From 445bfcdc5f6173a503372ffcae1802c33e05deed Mon Sep 17 00:00:00 2001 From: Huseyin INAN Date: Fri, 20 Nov 2015 16:27:13 +0200 Subject: [PATCH] Version 2 --- application/.htaccess | 1 + application/cache/.htaccess | 1 + application/cache/index.html | 10 + application/config/autoload.php | 116 + application/config/config.php | 363 + application/config/constants.php | 41 + application/config/database.php | 65 + application/config/doctypes.php | 15 + application/config/foreign_chars.php | 64 + application/config/hooks.php | 16 + application/config/index.html | 10 + application/config/migration.php | 41 + application/config/mimes.php | 106 + application/config/profiler.php | 17 + application/config/routes.php | 46 + application/config/smileys.php | 66 + application/config/user_agents.php | 178 + application/controllers/TechnicalService.php | 123 + application/controllers/account.php | 43 + application/controllers/car.php | 27 + application/controllers/dashboard.php | 27 + application/controllers/general.php | 52 + application/controllers/index.html | 10 + application/controllers/invoice.php | 28 + application/controllers/payment.php | 28 + application/controllers/plugins.php | 10 + application/controllers/product.php | 31 + application/controllers/project.php | 203 + application/controllers/test.php | 10 + application/controllers/user.php | 93 + application/core/index.html | 10 + application/errors/error_404.php | 62 + application/errors/error_db.php | 62 + application/errors/error_general.php | 62 + application/errors/error_php.php | 10 + application/errors/index.html | 10 + application/helpers/account_helper.php | 171 + application/helpers/car_helper.php | 28 + application/helpers/global_helper.php | 164 + application/helpers/index.html | 10 + application/helpers/invoice_helper.php | 217 + application/helpers/lang_helper.php | 691 ++ application/helpers/product_helper.php | 261 + application/helpers/project_helper.php | 338 + application/helpers/service_helper.php | 172 + application/helpers/user_helper.php | 392 + application/hooks/index.html | 10 + application/index.html | 10 + application/language/english/index.html | 10 + application/libraries/index.html | 10 + application/libraries/template.php | 26 + application/logs/index.html | 10 + application/models/index.html | 10 + application/third_party/index.html | 10 + application/views/account/account_view.php | 378 + .../views/account/address_print_view.php | 43 + application/views/account/dashboard_view.php | 63 + .../views/account/list_account_view.php | 45 + .../views/account/new_account_view.php | 230 + application/views/account/options_view.php | 66 + .../account/telephone_directory_view.php | 47 + application/views/car/add_car_view.php | 325 + application/views/car/car_view.php | 644 ++ application/views/car/dashboard_view.php | 34 + application/views/car/list_cars_view.php | 51 + application/views/dashboard.php | 226 + application/views/inc/blank_footer.php | 3 + application/views/inc/blank_header.php | 47 + application/views/inc/footer.php | 118 + application/views/inc/header.php | 383 + application/views/index.html | 10 + application/views/invoice/dashboard_view.php | 96 + .../views/invoice/invoice_list_view.php | 44 + application/views/invoice/invoice_view.php | 516 ++ .../views/invoice/new_invoice_view.php | 149 + application/views/login.php | 132 + application/views/payment/dashboard_view.php | 140 + .../views/payment/new_payment_view.php | 259 + .../views/payment/payment_list_view.php | 45 + application/views/payment/payment_view.php | 229 + application/views/plugins/dashboard_view.php | 34 + application/views/product/dashboard_view.php | 53 + .../views/product/list_product_view.php | 47 + .../views/product/new_product_view.php | 164 + application/views/product/options_view.php | 66 + application/views/product/product_view.php | 401 + application/views/system/about_view.php | 10 + application/views/system/map_events_view.php | 70 + application/views/system/map_view.php | 48 + application/views/test/dashboard_view.php | 20 + .../views/user/messagebox/bulk_view.php | 125 + .../views/user/messagebox/inbox_view.php | 278 + .../user/messagebox/new_message_view.php | 250 + .../views/user/messagebox/outbox_view.php | 38 + application/views/user/new_user_view.php | 156 + application/views/user/no_access.php | 6 + application/views/user/profile_view.php | 263 + application/views/user/task/new_task_view.php | 277 + .../views/user/task/outbound_task_view.php | 46 + application/views/user/task/task_view.php | 386 + application/views/user/user_list_view.php | 55 + application/views/user/user_view.php | 151 + config.php | 8 + configuration.php | 13 - exit.php | 63 - footer.php | 18 - header.php | 147 - include/class/barcode/README.txt | 12 - include/class/barcode/VERSION | 87 - include/class/barcode/barcode.php | 54 - include/class/barcode/barcode_show.php | 23 - include/class/class.upload.php | 5136 ------------ include/connect.php | 17 - include/current.php | 255 - include/fiche.php | 184 - include/functions.php | 55 - include/global.php | 174 - include/language.php | 35 - include/meta.php | 115 - include/product.php | 281 - include/user.php | 439 - index.php | 289 +- installation.php | 723 +- login.php | 108 - page/currents/add.php | 52 - page/currents/current.php | 104 - page/currents/list.php | 36 - page/fiche/fiche.php | 413 - page/fiche/list.php | 52 - page/fiche/new.php | 89 - page/help/global.php | 52 - page/help/index.php | 41 - page/help/user.php | 144 - page/logs/logs.php | 63 - page/products/add.php | 69 - page/products/list.php | 40 - page/products/product.php | 127 - page/settings/page_access.php | 65 - page/settings/settings.php | 56 - page/user/edit.php | 88 - page/user/message.php | 267 - page/user/message_new.php | 96 - page/user/profile.php | 54 - page/user/profile_change_ps.php | 85 - page/user/task.php | 375 - page/user/task_new.php | 108 - page/user/user_management.php | 114 - plugins/barcode/barcode.php | 59 + .../barcode/class/BCGArgumentException.php | 0 .../barcode/class/BCGBarcode.php | 10 +- .../barcode/class/BCGBarcode1D.php | 0 .../barcode/class/BCGColor.php | 0 .../barcode/class/BCGDrawException.php | 0 .../barcode/class/BCGDrawing.php | 0 .../barcode/class/BCGFont.php | 0 .../barcode/class/BCGFontFile.php | 0 .../barcode/class/BCGFontPhp.php | 0 .../barcode/class/BCGLabel.php | 0 .../barcode/class/BCGParseException.php | 0 .../barcode/class/BCGcodabar.barcode.php | 0 .../barcode/class/BCGcode11.barcode.php | 0 .../barcode/class/BCGcode128.barcode.php | 0 .../barcode/class/BCGcode39.barcode.php | 0 .../class/BCGcode39extended.barcode.php | 0 .../barcode/class/BCGcode93.barcode.php | 0 .../barcode/class/BCGean13.barcode.php | 19 +- .../barcode/class/BCGean8.barcode.php | 0 .../barcode/class/BCGgs1128.barcode.php | 0 .../barcode/class/BCGi25.barcode.php | 0 .../class/BCGintelligentmail.barcode.php | 0 .../barcode/class/BCGisbn.barcode.php | 0 .../barcode/class/BCGmsi.barcode.php | 0 .../barcode/class/BCGothercode.barcode.php | 0 .../barcode/class/BCGpostnet.barcode.php | 0 .../barcode/class/BCGs25.barcode.php | 0 .../barcode/class/BCGupca.barcode.php | 19 +- .../barcode/class/BCGupce.barcode.php | 0 .../barcode/class/BCGupcext2.barcode.php | 0 .../barcode/class/BCGupcext5.barcode.php | 0 .../barcode/class/JoinDraw.php | 4 +- .../barcode/class/drawer/BCGDraw.php | 0 .../barcode/class/drawer/BCGDrawJPG.php | 0 .../barcode/class/drawer/BCGDrawPNG.php | 0 .../class => plugins/barcode}/font/Arial.ttf | Bin plugins/barcode/index.php | 59 + plugins/excel_reader/Classes/PHPExcel.php | 823 ++ .../Classes/PHPExcel/Autoloader.php | 85 + .../PHPExcel/CachedObjectStorage/APC.php | 280 + .../CachedObjectStorage/CacheBase.php | 252 + .../PHPExcel/CachedObjectStorage/DiscISAM.php | 205 + .../PHPExcel/CachedObjectStorage/ICache.php | 112 + .../PHPExcel/CachedObjectStorage/Igbinary.php | 138 + .../PHPExcel/CachedObjectStorage/Memcache.php | 298 + .../PHPExcel/CachedObjectStorage/Memory.php | 109 + .../CachedObjectStorage/MemoryGZip.php | 123 + .../CachedObjectStorage/MemorySerialized.php | 123 + .../PHPExcel/CachedObjectStorage/PHPTemp.php | 192 + .../PHPExcel/CachedObjectStorage/SQLite.php | 270 + .../PHPExcel/CachedObjectStorage/SQLite3.php | 277 + .../PHPExcel/CachedObjectStorage/Wincache.php | 280 + .../PHPExcel/CachedObjectStorageFactory.php | 239 + .../Classes/PHPExcel/Calculation.php | 3811 +++++++++ .../Classes/PHPExcel/Calculation/Database.php | 725 ++ .../Classes/PHPExcel/Calculation/DateTime.php | 1447 ++++ .../PHPExcel/Calculation/Engineering.php | 2502 ++++++ .../PHPExcel/Calculation/Exception.php | 52 + .../PHPExcel/Calculation/ExceptionHandler.php | 49 + .../PHPExcel/Calculation/Financial.php | 2248 ++++++ .../PHPExcel/Calculation/FormulaParser.php | 614 ++ .../PHPExcel/Calculation/FormulaToken.php | 176 + .../Classes/PHPExcel/Calculation/Function.php | 149 + .../PHPExcel/Calculation/Functions.php | 813 ++ .../Classes/PHPExcel/Calculation/Logical.php | 288 + .../PHPExcel/Calculation/LookupRef.php | 808 ++ .../Classes/PHPExcel/Calculation/MathTrig.php | 1366 ++++ .../PHPExcel/Calculation/Statistical.php | 3644 +++++++++ .../Classes/PHPExcel/Calculation/TextData.php | 598 ++ .../PHPExcel/Calculation/Token/Stack.php | 73 + .../PHPExcel/Calculation/functionlist.txt | 351 + .../excel_reader/Classes/PHPExcel/Cell.php | 972 +++ .../PHPExcel/Cell/AdvancedValueBinder.php | 190 + .../Classes/PHPExcel/Cell/DataType.php | 114 + .../Classes/PHPExcel/Cell/DataValidation.php | 474 ++ .../PHPExcel/Cell/DefaultValueBinder.php | 106 + .../Classes/PHPExcel/Cell/Hyperlink.php | 127 + .../Classes/PHPExcel/Cell/IValueBinder.php | 46 + .../excel_reader/Classes/PHPExcel/Chart.php | 527 ++ .../Classes/PHPExcel/Chart/DataSeries.php | 354 + .../PHPExcel/Chart/DataSeriesValues.php | 321 + .../Classes/PHPExcel/Chart/Exception.php | 52 + .../Classes/PHPExcel/Chart/Layout.php | 417 + .../Classes/PHPExcel/Chart/Legend.php | 171 + .../Classes/PHPExcel/Chart/PlotArea.php | 125 + .../Chart/Renderer/PHP Charting Libraries.txt | 17 + .../PHPExcel/Chart/Renderer/jpgraph.php | 839 ++ .../Classes/PHPExcel/Chart/Title.php | 89 + .../excel_reader/Classes/PHPExcel/Comment.php | 317 + .../Classes/PHPExcel/DocumentProperties.php | 588 ++ .../Classes/PHPExcel/DocumentSecurity.php | 218 + .../Classes/PHPExcel/Exception.php | 52 + .../Classes/PHPExcel/HashTable.php | 202 + .../Classes/PHPExcel/IComparable.php | 43 + .../Classes/PHPExcel/IOFactory.php | 288 + .../Classes/PHPExcel/NamedRange.php | 245 + .../Classes/PHPExcel/Reader/CSV.php | 505 ++ .../PHPExcel/Reader/DefaultReadFilter.php | 58 + .../Classes/PHPExcel/Reader/Excel2003XML.php | 906 +++ .../Classes/PHPExcel/Reader/Excel2007.php | 2112 +++++ .../PHPExcel/Reader/Excel2007/Chart.php | 513 ++ .../PHPExcel/Reader/Excel2007/Theme.php | 124 + .../Classes/PHPExcel/Reader/Excel5.php | 6890 ++++++++++++++++ .../Classes/PHPExcel/Reader/Excel5/Escher.php | 640 ++ .../Classes/PHPExcel/Reader/Gnumeric.php | 982 +++ .../Classes/PHPExcel/Reader/HTML.php | 499 ++ .../Classes/PHPExcel/Reader/IReadFilter.php | 47 + .../Classes/PHPExcel/Reader/IReader.php | 53 + .../Classes/PHPExcel/Reader/OOCalc.php | 733 ++ .../Classes/PHPExcel/Reader/SYLK.php | 498 ++ .../Classes/PHPExcel/ReferenceHelper.php | 685 ++ .../Classes/PHPExcel/RichText.php | 196 + .../PHPExcel/RichText/ITextElement.php | 64 + .../Classes/PHPExcel/RichText/Run.php | 102 + .../Classes/PHPExcel/RichText/TextElement.php | 108 + .../Classes/PHPExcel/Settings.php | 332 + .../Classes/PHPExcel/Shared/CodePage.php | 101 + .../Classes/PHPExcel/Shared/Date.php | 356 + .../Classes/PHPExcel/Shared/Drawing.php | 272 + .../Classes/PHPExcel/Shared/Escher.php | 91 + .../PHPExcel/Shared/Escher/DgContainer.php | 83 + .../Escher/DgContainer/SpgrContainer.php | 109 + .../DgContainer/SpgrContainer/SpContainer.php | 395 + .../PHPExcel/Shared/Escher/DggContainer.php | 203 + .../Escher/DggContainer/BstoreContainer.php | 65 + .../DggContainer/BstoreContainer/BSE.php | 120 + .../DggContainer/BstoreContainer/BSE/Blip.php | 91 + .../Classes/PHPExcel/Shared/Excel5.php | 317 + .../Classes/PHPExcel/Shared/File.php | 139 + .../Classes/PHPExcel/Shared/Font.php | 775 ++ .../PHPExcel/Shared/JAMA/CHANGELOG.TXT | 16 + .../Shared/JAMA/CholeskyDecomposition.php | 149 + .../Shared/JAMA/EigenvalueDecomposition.php | 862 ++ .../PHPExcel/Shared/JAMA/LUDecomposition.php | 258 + .../Classes/PHPExcel/Shared/JAMA/Matrix.php | 1059 +++ .../PHPExcel/Shared/JAMA/QRDecomposition.php | 234 + .../JAMA/SingularValueDecomposition.php | 526 ++ .../Shared/JAMA/examples/LMQuadTest.php | 116 + .../JAMA/examples/LagrangeInterpolation.php | 59 + .../JAMA/examples/LagrangeInterpolation2.php | 59 + .../JAMA/examples/LevenbergMarquardt.php | 185 + .../JAMA/examples/MagicSquareExample.php | 182 + .../PHPExcel/Shared/JAMA/examples/Stats.php | 1605 ++++ .../Shared/JAMA/examples/benchmark.php | 263 + .../PHPExcel/Shared/JAMA/examples/polyfit.php | 73 + .../PHPExcel/Shared/JAMA/examples/tile.php | 78 + .../PHPExcel/Shared/JAMA/tests/TestMatrix.php | 415 + .../PHPExcel/Shared/JAMA/utils/Error.php | 82 + .../PHPExcel/Shared/JAMA/utils/Maths.php | 43 + .../Classes/PHPExcel/Shared/OLE.php | 531 ++ .../Shared/OLE/ChainedBlockStream.php | 229 + .../Classes/PHPExcel/Shared/OLE/PPS.php | 230 + .../Classes/PHPExcel/Shared/OLE/PPS/File.php | 84 + .../Classes/PHPExcel/Shared/OLE/PPS/Root.php | 467 ++ .../Classes/PHPExcel/Shared/OLERead.php | 317 + .../PHPExcel/Shared/PCLZip/gnu-lgpl.txt | 504 ++ .../PHPExcel/Shared/PCLZip/pclzip.lib.php | 5694 +++++++++++++ .../Classes/PHPExcel/Shared/PCLZip/readme.txt | 421 + .../PHPExcel/Shared/PasswordHasher.php | 67 + .../Classes/PHPExcel/Shared/String.php | 730 ++ .../Classes/PHPExcel/Shared/XMLWriter.php | 127 + .../Classes/PHPExcel/Shared/ZipArchive.php | 114 + .../PHPExcel/Shared/ZipStreamWrapper.php | 183 + .../PHPExcel/Shared/trend/bestFitClass.php | 432 + .../Shared/trend/exponentialBestFitClass.php | 148 + .../Shared/trend/linearBestFitClass.php | 111 + .../Shared/trend/logarithmicBestFitClass.php | 120 + .../Shared/trend/polynomialBestFitClass.php | 224 + .../Shared/trend/powerBestFitClass.php | 142 + .../PHPExcel/Shared/trend/trendClass.php | 156 + .../excel_reader/Classes/PHPExcel/Style.php | 684 ++ .../Classes/PHPExcel/Style/Alignment.php | 494 ++ .../Classes/PHPExcel/Style/Border.php | 388 + .../Classes/PHPExcel/Style/Borders.php | 512 ++ .../Classes/PHPExcel/Style/Color.php | 510 ++ .../Classes/PHPExcel/Style/Conditional.php | 277 + .../Classes/PHPExcel/Style/Fill.php | 409 + .../Classes/PHPExcel/Style/Font.php | 640 ++ .../Classes/PHPExcel/Style/NumberFormat.php | 741 ++ .../Classes/PHPExcel/Style/Protection.php | 290 + .../Classes/PHPExcel/Worksheet.php | 2795 +++++++ .../Classes/PHPExcel/Worksheet/AutoFilter.php | 855 ++ .../PHPExcel/Worksheet/AutoFilter/Column.php | 381 + .../Worksheet/AutoFilter/Column/Rule.php | 462 ++ .../PHPExcel/Worksheet/BaseDrawing.php | 485 ++ .../PHPExcel/Worksheet/CellIterator.php | 161 + .../PHPExcel/Worksheet/ColumnDimension.php | 266 + .../Classes/PHPExcel/Worksheet/Drawing.php | 148 + .../PHPExcel/Worksheet/Drawing/Shadow.php | 288 + .../PHPExcel/Worksheet/HeaderFooter.php | 465 ++ .../Worksheet/HeaderFooterDrawing.php | 350 + .../PHPExcel/Worksheet/MemoryDrawing.php | 200 + .../PHPExcel/Worksheet/PageMargins.php | 220 + .../Classes/PHPExcel/Worksheet/PageSetup.php | 798 ++ .../Classes/PHPExcel/Worksheet/Protection.php | 545 ++ .../Classes/PHPExcel/Worksheet/Row.php | 90 + .../PHPExcel/Worksheet/RowDimension.php | 265 + .../PHPExcel/Worksheet/RowIterator.php | 148 + .../Classes/PHPExcel/Worksheet/SheetView.php | 188 + .../Classes/PHPExcel/WorksheetIterator.php | 111 + .../Classes/PHPExcel/Writer/CSV.php | 339 + .../Classes/PHPExcel/Writer/Excel2007.php | 583 ++ .../PHPExcel/Writer/Excel2007/Chart.php | 1181 +++ .../PHPExcel/Writer/Excel2007/Comments.php | 268 + .../Writer/Excel2007/ContentTypes.php | 261 + .../PHPExcel/Writer/Excel2007/DocProps.php | 272 + .../PHPExcel/Writer/Excel2007/Drawing.php | 598 ++ .../PHPExcel/Writer/Excel2007/Rels.php | 417 + .../PHPExcel/Writer/Excel2007/StringTable.php | 319 + .../PHPExcel/Writer/Excel2007/Style.php | 701 ++ .../PHPExcel/Writer/Excel2007/Theme.php | 871 ++ .../PHPExcel/Writer/Excel2007/Workbook.php | 452 ++ .../PHPExcel/Writer/Excel2007/Worksheet.php | 1215 +++ .../PHPExcel/Writer/Excel2007/WriterPart.php | 81 + .../Classes/PHPExcel/Writer/Excel5.php | 961 +++ .../PHPExcel/Writer/Excel5/BIFFwriter.php | 255 + .../Classes/PHPExcel/Writer/Excel5/Escher.php | 537 ++ .../Classes/PHPExcel/Writer/Excel5/Font.php | 165 + .../Classes/PHPExcel/Writer/Excel5/Parser.php | 1583 ++++ .../PHPExcel/Writer/Excel5/Workbook.php | 1450 ++++ .../PHPExcel/Writer/Excel5/Worksheet.php | 2954 +++++++ .../Classes/PHPExcel/Writer/Excel5/Xf.php | 546 ++ .../Classes/PHPExcel/Writer/HTML.php | 1377 ++++ .../Classes/PHPExcel/Writer/IWriter.php | 45 + .../Classes/PHPExcel/Writer/PDF.php | 76 + .../Classes/PHPExcel/Writer/PDF/Core.php | 239 + .../Classes/PHPExcel/Writer/PDF/DomPDF.php | 128 + .../Classes/PHPExcel/Writer/PDF/mPDF.php | 135 + .../Classes/PHPExcel/Writer/PDF/tcPDF.php | 147 + .../Classes/PHPExcel/locale/cs/config | 47 + .../Classes/PHPExcel/locale/cs/functions | 438 + .../Classes/PHPExcel/locale/da/config | 48 + .../Classes/PHPExcel/locale/da/functions | 438 + .../Classes/PHPExcel/locale/de/config | 47 + .../Classes/PHPExcel/locale/de/functions | 438 + .../Classes/PHPExcel/locale/en/uk/config | 32 + .../Classes/PHPExcel/locale/es/config | 47 + .../Classes/PHPExcel/locale/es/functions | 438 + .../Classes/PHPExcel/locale/fi/config | 47 + .../Classes/PHPExcel/locale/fi/functions | 438 + .../Classes/PHPExcel/locale/fr/config | 47 + .../Classes/PHPExcel/locale/fr/functions | 438 + .../Classes/PHPExcel/locale/hu/config | 47 + .../Classes/PHPExcel/locale/hu/functions | 438 + .../Classes/PHPExcel/locale/it/config | 47 + .../Classes/PHPExcel/locale/it/functions | 438 + .../Classes/PHPExcel/locale/nl/config | 47 + .../Classes/PHPExcel/locale/nl/functions | 438 + .../Classes/PHPExcel/locale/no/config | 47 + .../Classes/PHPExcel/locale/no/functions | 438 + .../Classes/PHPExcel/locale/pl/config | 47 + .../Classes/PHPExcel/locale/pl/functions | 438 + .../Classes/PHPExcel/locale/pt/br/config | 47 + .../Classes/PHPExcel/locale/pt/br/functions | 408 + .../Classes/PHPExcel/locale/pt/config | 47 + .../Classes/PHPExcel/locale/pt/functions | 408 + .../Classes/PHPExcel/locale/ru/config | 47 + .../Classes/PHPExcel/locale/ru/functions | 438 + .../Classes/PHPExcel/locale/sv/config | 47 + .../Classes/PHPExcel/locale/sv/functions | 408 + .../Classes/PHPExcel/locale/tr/config | 47 + .../Classes/PHPExcel/locale/tr/functions | 438 + plugins/excel_reader/index.php | 44 + plugins/excel_reader/jd.xlsx | Bin 0 -> 8390 bytes system/.htaccess | 1 + system/core/Benchmark.php | 118 + system/core/CodeIgniter.php | 402 + system/core/Common.php | 564 ++ system/core/Config.php | 379 + system/core/Controller.php | 64 + system/core/Exceptions.php | 193 + system/core/Hooks.php | 248 + system/core/Input.php | 849 ++ system/core/Lang.php | 160 + system/core/Loader.php | 1248 +++ system/core/Model.php | 57 + system/core/Output.php | 574 ++ system/core/Router.php | 522 ++ system/core/Security.php | 875 ++ system/core/URI.php | 654 ++ system/core/Utf8.php | 165 + system/core/index.html | 10 + system/database/DB.php | 162 + system/database/DB_active_rec.php | 2045 +++++ system/database/DB_cache.php | 195 + system/database/DB_driver.php | 1410 ++++ system/database/DB_forge.php | 382 + system/database/DB_result.php | 410 + system/database/DB_utility.php | 414 + .../database/drivers/cubrid/cubrid_driver.php | 792 ++ .../database/drivers/cubrid/cubrid_forge.php | 288 + .../database/drivers/cubrid/cubrid_result.php | 202 + .../drivers/cubrid/cubrid_utility.php | 108 + system/database/drivers/cubrid/index.html | 10 + system/database/drivers/index.html | 10 + system/database/drivers/mssql/index.html | 10 + .../database/drivers/mssql/mssql_driver.php | 667 ++ system/database/drivers/mssql/mssql_forge.php | 248 + .../database/drivers/mssql/mssql_result.php | 169 + .../database/drivers/mssql/mssql_utility.php | 88 + system/database/drivers/mysql/index.html | 10 + .../database/drivers/mysql/mysql_driver.php | 779 ++ system/database/drivers/mysql/mysql_forge.php | 273 + .../database/drivers/mysql/mysql_result.php | 174 + .../database/drivers/mysql/mysql_utility.php | 210 + system/database/drivers/mysqli/index.html | 10 + .../database/drivers/mysqli/mysqli_driver.php | 776 ++ .../database/drivers/mysqli/mysqli_forge.php | 258 + .../database/drivers/mysqli/mysqli_result.php | 174 + .../drivers/mysqli/mysqli_utility.php | 87 + system/database/drivers/oci8/index.html | 10 + system/database/drivers/oci8/oci8_driver.php | 808 ++ system/database/drivers/oci8/oci8_forge.php | 248 + system/database/drivers/oci8/oci8_result.php | 217 + system/database/drivers/oci8/oci8_utility.php | 87 + system/database/drivers/odbc/index.html | 10 + system/database/drivers/odbc/odbc_driver.php | 637 ++ system/database/drivers/odbc/odbc_forge.php | 266 + system/database/drivers/odbc/odbc_result.php | 228 + system/database/drivers/odbc/odbc_utility.php | 103 + system/database/drivers/pdo/index.html | 10 + system/database/drivers/pdo/pdo_driver.php | 812 ++ system/database/drivers/pdo/pdo_forge.php | 266 + system/database/drivers/pdo/pdo_result.php | 183 + system/database/drivers/pdo/pdo_utility.php | 103 + system/database/drivers/postgre/index.html | 10 + .../drivers/postgre/postgre_driver.php | 703 ++ .../drivers/postgre/postgre_forge.php | 299 + .../drivers/postgre/postgre_result.php | 169 + .../drivers/postgre/postgre_utility.php | 88 + system/database/drivers/sqlite/index.html | 10 + .../database/drivers/sqlite/sqlite_driver.php | 658 ++ .../database/drivers/sqlite/sqlite_forge.php | 265 + .../database/drivers/sqlite/sqlite_result.php | 179 + .../drivers/sqlite/sqlite_utility.php | 96 + system/database/drivers/sqlsrv/index.html | 10 + .../database/drivers/sqlsrv/sqlsrv_driver.php | 599 ++ .../database/drivers/sqlsrv/sqlsrv_forge.php | 248 + .../database/drivers/sqlsrv/sqlsrv_result.php | 169 + .../drivers/sqlsrv/sqlsrv_utility.php | 88 + system/database/index.html | 10 + system/fonts/index.html | 10 + system/fonts/texb.ttf | Bin 0 -> 143830 bytes system/helpers/array_helper.php | 119 + system/helpers/captcha_helper.php | 246 + system/helpers/cookie_helper.php | 103 + system/helpers/date_helper.php | 611 ++ system/helpers/directory_helper.php | 80 + system/helpers/download_helper.php | 107 + system/helpers/email_helper.php | 62 + system/helpers/file_helper.php | 479 ++ system/helpers/form_helper.php | 1054 +++ system/helpers/html_helper.php | 436 + system/helpers/index.html | 10 + system/helpers/inflector_helper.php | 203 + system/helpers/language_helper.php | 58 + system/helpers/number_helper.php | 76 + system/helpers/path_helper.php | 72 + system/helpers/security_helper.php | 128 + system/helpers/smiley_helper.php | 281 + system/helpers/string_helper.php | 307 + system/helpers/text_helper.php | 535 ++ system/helpers/typography_helper.php | 93 + system/helpers/url_helper.php | 594 ++ system/helpers/xml_helper.php | 71 + system/index.html | 10 + system/language/english/calendar_lang.php | 51 + system/language/english/date_lang.php | 61 + system/language/english/db_lang.php | 29 + system/language/english/email_lang.php | 24 + .../language/english/form_validation_lang.php | 29 + system/language/english/ftp_lang.php | 18 + system/language/english/imglib_lang.php | 24 + system/language/english/index.html | 10 + system/language/english/migration_lang.php | 13 + system/language/english/number_lang.php | 10 + system/language/english/profiler_lang.php | 25 + system/language/english/unit_test_lang.php | 25 + system/language/english/upload_lang.php | 22 + system/language/index.html | 10 + system/libraries/Cache/Cache.php | 216 + system/libraries/Cache/drivers/Cache_apc.php | 151 + .../libraries/Cache/drivers/Cache_dummy.php | 129 + system/libraries/Cache/drivers/Cache_file.php | 195 + .../Cache/drivers/Cache_memcached.php | 218 + system/libraries/Calendar.php | 475 ++ system/libraries/Cart.php | 552 ++ system/libraries/Driver.php | 229 + system/libraries/Email.php | 2092 +++++ system/libraries/Encrypt.php | 547 ++ system/libraries/Form_validation.php | 1382 ++++ system/libraries/Ftp.php | 660 ++ system/libraries/Image_lib.php | 1537 ++++ system/libraries/Javascript.php | 871 ++ system/libraries/Log.php | 114 + system/libraries/Migration.php | 328 + system/libraries/Pagination.php | 340 + system/libraries/Parser.php | 212 + system/libraries/Profiler.php | 558 ++ system/libraries/Session.php | 780 ++ system/libraries/Sha1.php | 251 + system/libraries/Table.php | 531 ++ system/libraries/Trackback.php | 548 ++ system/libraries/Typography.php | 410 + system/libraries/Unit_test.php | 383 + system/libraries/Upload.php | 1136 +++ system/libraries/User_agent.php | 549 ++ system/libraries/Xmlrpc.php | 1423 ++++ system/libraries/Xmlrpcs.php | 612 ++ system/libraries/Zip.php | 423 + system/libraries/index.html | 10 + system/libraries/javascript/Jquery.php | 1071 +++ theme/css/app.css | 1611 ++++ theme/css/bootstrap-theme.css | 384 + theme/css/bootstrap-theme.min.css | 1 + theme/css/bootstrap.css | 6805 ++++++++++++++++ theme/css/bootstrap.min.css | 9 + theme/css/datepicker.css | 171 + theme/fonts/glyphicons-halflings-regular.eot | Bin 0 -> 14079 bytes theme/fonts/glyphicons-halflings-regular.svg | 228 + theme/fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 29512 bytes theme/fonts/glyphicons-halflings-regular.woff | Bin 0 -> 16448 bytes theme/images/barcode_scaner.png | Bin 22057 -> 0 bytes theme/images/foundation/left-arrow.png | Bin 522 -> 0 bytes theme/images/foundation/mask-black.png | Bin 526 -> 0 bytes theme/images/foundation/pause-black.png | Bin 288 -> 0 bytes theme/images/foundation/rotator-black.png | Bin 536 -> 0 bytes theme/images/foundation/timer-black.png | Bin 526 -> 0 bytes theme/images/icon/12/delete.png | Bin 347 -> 0 bytes theme/images/icon/12/edit.png | Bin 268 -> 0 bytes theme/images/icon/12/key.png | Bin 308 -> 0 bytes theme/images/icon/16/calendar_1.png | Bin 3270 -> 0 bytes theme/images/icon/16/clock.png | Bin 831 -> 0 bytes theme/images/icon/16/cur_dollar.png | Bin 3308 -> 0 bytes theme/images/icon/16/customers.png | Bin 474 -> 0 bytes theme/images/icon/16/invoice.png | Bin 695 -> 0 bytes theme/images/icon/16/list_num.png | Bin 3238 -> 0 bytes theme/images/icon/16/mail.png | Bin 641 -> 0 bytes theme/images/icon/16/percent.png | Bin 830 -> 0 bytes theme/images/icon/16/plus.png | Bin 415 -> 0 bytes theme/images/icon/16/trash.png | Bin 150 -> 0 bytes theme/images/icon/48/barcode.png | Bin 5836 -> 0 bytes theme/img/avatar.png | Bin 0 -> 44804 bytes .../right-arrow.png => img/bg-content.png} | Bin 3242 -> 2927 bytes theme/img/datatable/Sorting icons.psd | Bin 0 -> 27490 bytes theme/img/datatable/back_disabled.png | Bin 0 -> 1361 bytes theme/img/datatable/back_enabled.png | Bin 0 -> 1379 bytes theme/img/datatable/back_enabled_hover.png | Bin 0 -> 1375 bytes theme/img/datatable/favicon.ico | Bin 0 -> 894 bytes theme/img/datatable/forward_disabled.png | Bin 0 -> 1363 bytes theme/img/datatable/forward_enabled.png | Bin 0 -> 1380 bytes theme/img/datatable/forward_enabled_hover.png | Bin 0 -> 1379 bytes theme/img/datatable/sort_asc.png | Bin 0 -> 1118 bytes theme/img/datatable/sort_asc_disabled.png | Bin 0 -> 1050 bytes theme/img/datatable/sort_both.png | Bin 0 -> 1136 bytes theme/img/datatable/sort_desc.png | Bin 0 -> 1127 bytes theme/img/datatable/sort_desc_disabled.png | Bin 0 -> 1045 bytes theme/img/datatable/ui-bg.png | Bin 0 -> 110 bytes theme/img/markers/blank.png | Bin 0 -> 988 bytes .../user_male.png => img/markers/marker.png} | Bin 3857 -> 3771 bytes theme/img/markers/marker0.png | Bin 0 -> 1218 bytes theme/img/markers/marker00.png | Bin 0 -> 1227 bytes theme/img/markers/marker01.png | Bin 0 -> 1244 bytes theme/img/markers/marker02.png | Bin 0 -> 1296 bytes theme/img/markers/marker03.png | Bin 0 -> 1310 bytes theme/img/markers/marker04.png | Bin 0 -> 1259 bytes theme/img/markers/marker05.png | Bin 0 -> 1320 bytes theme/img/markers/marker06.png | Bin 0 -> 1323 bytes theme/img/markers/marker07.png | Bin 0 -> 1273 bytes theme/img/markers/marker08.png | Bin 0 -> 1317 bytes theme/img/markers/marker09.png | Bin 0 -> 1332 bytes theme/img/markers/marker1.png | Bin 0 -> 1158 bytes theme/img/markers/marker10.png | Bin 0 -> 1241 bytes theme/img/markers/marker11.png | Bin 0 -> 1160 bytes theme/img/markers/marker12.png | Bin 0 -> 1272 bytes theme/img/markers/marker13.png | Bin 0 -> 1260 bytes theme/img/markers/marker14.png | Bin 0 -> 1221 bytes theme/img/markers/marker15.png | Bin 0 -> 1276 bytes theme/img/markers/marker16.png | Bin 0 -> 1285 bytes theme/img/markers/marker17.png | Bin 0 -> 1253 bytes theme/img/markers/marker18.png | Bin 0 -> 1273 bytes theme/img/markers/marker19.png | Bin 0 -> 1292 bytes theme/img/markers/marker2.png | Bin 0 -> 1235 bytes theme/img/markers/marker20.png | Bin 0 -> 1306 bytes theme/img/markers/marker21.png | Bin 0 -> 1275 bytes theme/img/markers/marker22.png | Bin 0 -> 1233 bytes theme/img/markers/marker23.png | Bin 0 -> 1323 bytes theme/img/markers/marker24.png | Bin 0 -> 1292 bytes theme/img/markers/marker25.png | Bin 0 -> 1323 bytes theme/img/markers/marker26.png | Bin 0 -> 1340 bytes theme/img/markers/marker27.png | Bin 0 -> 1310 bytes theme/img/markers/marker28.png | Bin 0 -> 1327 bytes theme/img/markers/marker29.png | Bin 0 -> 1349 bytes theme/img/markers/marker3.png | Bin 0 -> 1244 bytes theme/img/markers/marker30.png | Bin 0 -> 1316 bytes theme/img/markers/marker31.png | Bin 0 -> 1266 bytes theme/img/markers/marker32.png | Bin 0 -> 1324 bytes theme/img/markers/marker33.png | Bin 0 -> 1244 bytes theme/img/markers/marker34.png | Bin 0 -> 1288 bytes theme/img/markers/marker35.png | Bin 0 -> 1338 bytes theme/img/markers/marker36.png | Bin 0 -> 1345 bytes theme/img/markers/marker37.png | Bin 0 -> 1301 bytes theme/img/markers/marker38.png | Bin 0 -> 1341 bytes theme/img/markers/marker39.png | Bin 0 -> 1361 bytes theme/img/markers/marker4.png | Bin 0 -> 1175 bytes theme/img/markers/marker40.png | Bin 0 -> 1258 bytes theme/img/markers/marker41.png | Bin 0 -> 1229 bytes theme/img/markers/marker42.png | Bin 0 -> 1291 bytes theme/img/markers/marker43.png | Bin 0 -> 1281 bytes theme/img/markers/marker44.png | Bin 0 -> 1195 bytes theme/img/markers/marker45.png | Bin 0 -> 1299 bytes theme/img/markers/marker46.png | Bin 0 -> 1296 bytes theme/img/markers/marker47.png | Bin 0 -> 1269 bytes theme/img/markers/marker48.png | Bin 0 -> 1296 bytes theme/img/markers/marker49.png | Bin 0 -> 1314 bytes theme/img/markers/marker5.png | Bin 0 -> 1249 bytes theme/img/markers/marker50.png | Bin 0 -> 1321 bytes theme/img/markers/marker51.png | Bin 0 -> 1273 bytes theme/img/markers/marker52.png | Bin 0 -> 1326 bytes theme/img/markers/marker53.png | Bin 0 -> 1333 bytes theme/img/markers/marker54.png | Bin 0 -> 1292 bytes theme/img/markers/marker55.png | Bin 0 -> 1247 bytes theme/img/markers/marker56.png | Bin 0 -> 1362 bytes theme/img/markers/marker57.png | Bin 0 -> 1307 bytes theme/img/markers/marker58.png | Bin 0 -> 1346 bytes theme/img/markers/marker59.png | Bin 0 -> 1364 bytes theme/img/markers/marker6.png | Bin 0 -> 1264 bytes theme/img/markers/marker60.png | Bin 0 -> 1333 bytes theme/img/markers/marker61.png | Bin 0 -> 1290 bytes theme/img/markers/marker62.png | Bin 0 -> 1346 bytes theme/img/markers/marker63.png | Bin 0 -> 1346 bytes theme/img/markers/marker64.png | Bin 0 -> 1307 bytes theme/img/markers/marker65.png | Bin 0 -> 1364 bytes theme/img/markers/marker66.png | Bin 0 -> 1263 bytes theme/img/markers/marker67.png | Bin 0 -> 1325 bytes theme/img/markers/marker68.png | Bin 0 -> 1364 bytes theme/img/markers/marker69.png | Bin 0 -> 1373 bytes theme/img/markers/marker7.png | Bin 0 -> 1212 bytes theme/img/markers/marker70.png | Bin 0 -> 1272 bytes theme/img/markers/marker71.png | Bin 0 -> 1253 bytes theme/img/markers/marker72.png | Bin 0 -> 1309 bytes theme/img/markers/marker73.png | Bin 0 -> 1301 bytes theme/img/markers/marker74.png | Bin 0 -> 1264 bytes theme/img/markers/marker75.png | Bin 0 -> 1307 bytes theme/img/markers/marker76.png | Bin 0 -> 1319 bytes theme/img/markers/marker77.png | Bin 0 -> 1207 bytes theme/img/markers/marker78.png | Bin 0 -> 1306 bytes theme/img/markers/marker79.png | Bin 0 -> 1328 bytes theme/img/markers/marker8.png | Bin 0 -> 1253 bytes theme/img/markers/marker80.png | Bin 0 -> 1323 bytes theme/img/markers/marker81.png | Bin 0 -> 1275 bytes theme/img/markers/marker82.png | Bin 0 -> 1325 bytes theme/img/markers/marker83.png | Bin 0 -> 1340 bytes theme/img/markers/marker84.png | Bin 0 -> 1296 bytes theme/img/markers/marker85.png | Bin 0 -> 1348 bytes theme/img/markers/marker86.png | Bin 0 -> 1359 bytes theme/img/markers/marker87.png | Bin 0 -> 1310 bytes theme/img/markers/marker88.png | Bin 0 -> 1258 bytes theme/img/markers/marker89.png | Bin 0 -> 1369 bytes theme/img/markers/marker9.png | Bin 0 -> 1269 bytes theme/img/markers/marker90.png | Bin 0 -> 1339 bytes theme/img/markers/marker91.png | Bin 0 -> 1299 bytes theme/img/markers/marker92.png | Bin 0 -> 1352 bytes theme/img/markers/marker93.png | Bin 0 -> 1364 bytes theme/img/markers/marker94.png | Bin 0 -> 1318 bytes theme/img/markers/marker95.png | Bin 0 -> 1367 bytes theme/img/markers/marker96.png | Bin 0 -> 1368 bytes theme/img/markers/marker97.png | Bin 0 -> 1332 bytes theme/img/markers/marker98.png | Bin 0 -> 1369 bytes theme/img/markers/marker99.png | Bin 0 -> 1271 bytes theme/index.html | 29 + theme/javascripts/app.js | 396 - theme/javascripts/foundation.js | 52 - .../jquery.foundation.accordion.js | 15 - theme/javascripts/jquery.foundation.alerts.js | 19 - .../javascripts/jquery.foundation.buttons.js | 45 - theme/javascripts/jquery.foundation.forms.js | 481 -- .../jquery.foundation.navigation.js | 30 - theme/javascripts/jquery.foundation.orbit.js | 633 -- theme/javascripts/jquery.foundation.reveal.js | 773 -- theme/javascripts/jquery.foundation.tabs.js | 36 - .../javascripts/jquery.foundation.tooltips.js | 183 - theme/javascripts/jquery.placeholder.js | 157 - theme/javascripts/modernizr.foundation.js | 4 - theme/js/app.js | 865 ++ theme/js/bootstrap-datepicker.js | 474 ++ theme/js/bootstrap.js | 1999 +++++ theme/js/bootstrap.min.js | 6 + theme/js/dataTable/as3/ZeroClipboard.as | 221 + theme/js/dataTable/as3/ZeroClipboardPdf.as | 310 + theme/js/dataTable/as3/lib/AlivePDF.swc | Bin 0 -> 131230 bytes theme/js/dataTable/css/TableTools.css | 321 + theme/js/dataTable/css/TableTools_JUI.css | 185 + theme/js/dataTable/images/background.png | Bin 0 -> 944 bytes theme/js/dataTable/images/collection.png | Bin 0 -> 1166 bytes .../js/dataTable/images/collection_hover.png | Bin 0 -> 1194 bytes theme/js/dataTable/images/copy.png | Bin 0 -> 2184 bytes theme/js/dataTable/images/copy_hover.png | Bin 0 -> 2797 bytes theme/js/dataTable/images/csv.png | Bin 0 -> 1607 bytes theme/js/dataTable/images/csv_hover.png | Bin 0 -> 1854 bytes theme/js/dataTable/images/pdf.png | Bin 0 -> 4325 bytes theme/js/dataTable/images/pdf_hover.png | Bin 0 -> 2786 bytes theme/js/dataTable/images/print.png | Bin 0 -> 2123 bytes theme/js/dataTable/images/print_hover.png | Bin 0 -> 2230 bytes theme/js/dataTable/images/psd/collection.psd | Bin 0 -> 25792 bytes .../js/dataTable/images/psd/copy document.psd | Bin 0 -> 104729 bytes theme/js/dataTable/images/psd/file_types.psd | Bin 0 -> 1090645 bytes theme/js/dataTable/images/psd/printer.psd | Bin 0 -> 119952 bytes theme/js/dataTable/images/xls.png | Bin 0 -> 1641 bytes theme/js/dataTable/images/xls_hover.png | Bin 0 -> 2061 bytes theme/js/dataTable/js/TableTools.js | 2476 ++++++ theme/js/dataTable/js/TableTools.min.js | 77 + theme/js/dataTable/js/TableTools.min.js.gz | Bin 0 -> 8785 bytes theme/js/dataTable/js/ZeroClipboard.js | 367 + theme/js/dataTable/swf/copy_csv_xls.swf | Bin 0 -> 2165 bytes theme/js/dataTable/swf/copy_csv_xls_pdf.swf | Bin 0 -> 58824 bytes theme/js/infobox_packed.js | 1 + .../{javascripts => js}/jquery.dataTables.js | 1525 ++-- theme/{javascripts => js}/jquery.js | 7114 +++++++++-------- .../jquery.validation.js} | 422 +- theme/language/english.php | 176 - theme/language/spanish.php | 99 - theme/language/turkish.php | 177 - theme/stylesheets/app.css | 215 - theme/stylesheets/foundation.css | 925 --- uploads/avatar/2.jpg | Bin 0 -> 177242 bytes uploads/avatar/3.jpg | Bin 0 -> 56594 bytes .../31/Basliksiz-e-tablo_20131031182018.xlsx | Bin 0 -> 3317 bytes .../31/Basliksiz-e-tablo_20131031182038.xlsx | Bin 0 -> 3317 bytes .../31/Basliksiz-e-tablo_20131031182624.xlsx | Bin 0 -> 3317 bytes .../31/Basliksiz-e-tablo_20131031182632.xlsx | Bin 0 -> 3317 bytes .../31/Basliksiz-e-tablo_20131031182647.xlsx | Bin 0 -> 3317 bytes .../31/Basliksiz-e-tablo_20131031184156.xlsx | Bin 0 -> 3317 bytes .../31/Basliksiz-e-tablo_20131031185609.xlsx | Bin 0 -> 3317 bytes .../31/Basliksiz-e-tablo_20131031185645.xlsx | Bin 0 -> 3317 bytes ...el_simple_new_location_20131031181627.xlsx | Bin 0 -> 3120 bytes ...el_simple_new_location_20131031181848.xlsx | Bin 0 -> 3120 bytes .../2013/10/31/test_20131031180233.xls | Bin 0 -> 416256 bytes .../2013/10/31/test_20131031180332.xls | Bin 0 -> 416256 bytes .../2013/10/31/test_20131031180358.xls | Bin 0 -> 416256 bytes .../2013/10/31/test_20131031181023.xls | Bin 0 -> 416256 bytes .../2013/10/31/test_20131031181238.xls | Bin 0 -> 416256 bytes .../projects/4/20131022181249_mustafa.png | Bin 0 -> 177242 bytes .../projects/4/20131022181504_mustafa.png | Bin 0 -> 177242 bytes uploads/file/projects/4/mustafa.png | Bin 0 -> 177242 bytes ...\245G\342\225\240\303\245 .pngMMMMM.png" | Bin 0 -> 56594 bytes .../20131022182709_mustafa.png | Bin 0 -> 177242 bytes .../20131026155353_1382792004965.jpg | Bin 0 -> 1342286 bytes .../20131026155504_1382792081329.jpg | Bin 0 -> 995548 bytes .../Proje-1/20131022185231_mustafa.png | Bin 0 -> 177242 bytes uploads/simple/excel_simple_new_location.xlsx | Bin 0 -> 3120 bytes .../2013/11/12/12_20131112234806.jpg | Bin 0 -> 45448 bytes .../Proje-5/Siverek-ilk-Okulu_75/mustafa.png | Bin 0 -> 177242 bytes ...duz-Alimpinari-ilkokulu_20131029180042.png | Bin 0 -> 84392 bytes ...duz-Alimpinari-ilkokulu_20131029180457.png | Bin 0 -> 84392 bytes .../Elkotek/Proje5/234234234/75/mustafa.png | Bin 0 -> 177242 bytes .../Proje-5/Siverek-ilk-Okulu_61/mustafa.png | Bin 0 -> 177242 bytes .../Siverek-ilk-Okulu_20131029110847.jpg | Bin 0 -> 16227 bytes .../Siverek-ilk-Okulu_20131029111003.jpg | Bin 0 -> 16227 bytes .../Siverek-ilk-Okulu_20131029111008.jpg | Bin 0 -> 16227 bytes .../Siverek-ilk-Okulu_20131029111131.jpg | Bin 0 -> 16227 bytes .../Siverek-ilk-Okulu_20131029111655.jpg | Bin 0 -> 25438 bytes .../TSE-Kahramanmaras_20131030133146.30 | Bin 0 -> 2076178 bytes user_guide/changelog.html | 1525 ++++ user_guide/database/active_record.html | 824 ++ user_guide/database/caching.html | 220 + user_guide/database/call_function.html | 118 + user_guide/database/configuration.html | 164 + user_guide/database/connecting.html | 188 + user_guide/database/examples.html | 217 + user_guide/database/fields.html | 163 + user_guide/database/forge.html | 234 + user_guide/database/helpers.html | 151 + user_guide/database/index.html | 99 + user_guide/database/queries.html | 158 + user_guide/database/results.html | 259 + user_guide/database/table_data.html | 113 + user_guide/database/transactions.html | 200 + user_guide/database/utilities.html | 314 + user_guide/doc_style/index.html | 87 + user_guide/doc_style/template.html | 128 + user_guide/general/alternative_php.html | 147 + user_guide/general/ancillary_classes.html | 117 + user_guide/general/autoloader.html | 100 + user_guide/general/caching.html | 115 + user_guide/general/cli.html | 150 + user_guide/general/common_functions.html | 127 + user_guide/general/controllers.html | 388 + user_guide/general/core_classes.html | 186 + user_guide/general/creating_drivers.html | 100 + user_guide/general/creating_libraries.html | 293 + user_guide/general/credits.html | 87 + user_guide/general/drivers.html | 104 + user_guide/general/environments.html | 126 + user_guide/general/errors.html | 140 + user_guide/general/helpers.html | 185 + user_guide/general/hooks.html | 165 + user_guide/general/libraries.html | 98 + user_guide/general/managing_apps.html | 133 + user_guide/general/models.html | 251 + user_guide/general/profiling.html | 181 + user_guide/general/quick_reference.html | 77 + user_guide/general/requirements.html | 82 + user_guide/general/reserved_names.html | 128 + user_guide/general/routing.html | 171 + user_guide/general/security.html | 164 + user_guide/general/styleguide.html | 679 ++ user_guide/general/urls.html | 151 + user_guide/general/views.html | 274 + user_guide/helpers/array_helper.html | 170 + user_guide/helpers/captcha_helper.html | 195 + user_guide/helpers/cookie_helper.html | 107 + user_guide/helpers/date_helper.html | 408 + user_guide/helpers/directory_helper.html | 143 + user_guide/helpers/download_helper.html | 112 + user_guide/helpers/email_helper.html | 102 + user_guide/helpers/file_helper.html | 179 + user_guide/helpers/form_helper.html | 484 ++ user_guide/helpers/html_helper.html | 390 + user_guide/helpers/inflector_helper.html | 151 + user_guide/helpers/language_helper.html | 98 + user_guide/helpers/number_helper.html | 113 + user_guide/helpers/path_helper.html | 106 + user_guide/helpers/security_helper.html | 132 + user_guide/helpers/smiley_helper.html | 215 + user_guide/helpers/string_helper.html | 189 + user_guide/helpers/text_helper.html | 211 + user_guide/helpers/typography_helper.html | 112 + user_guide/helpers/url_helper.html | 302 + user_guide/helpers/xml_helper.html | 105 + user_guide/images/appflowchart.gif | Bin 0 -> 12363 bytes user_guide/images/arrow.gif | Bin 0 -> 123 bytes user_guide/images/ci_logo.jpg | Bin 0 -> 5602 bytes user_guide/images/ci_logo_flame.jpg | Bin 0 -> 8589 bytes user_guide/images/ci_quick_ref.png | Bin 0 -> 94476 bytes .../codeigniter_1.7.1_helper_reference.pdf | Bin 0 -> 499096 bytes .../codeigniter_1.7.1_helper_reference.png | Bin 0 -> 67388 bytes .../codeigniter_1.7.1_library_reference.pdf | Bin 0 -> 666918 bytes .../codeigniter_1.7.1_library_reference.png | Bin 0 -> 111747 bytes user_guide/images/file.gif | Bin 0 -> 370 bytes user_guide/images/folder.gif | Bin 0 -> 570 bytes user_guide/images/nav_bg_darker.jpg | Bin 0 -> 445 bytes user_guide/images/nav_separator_darker.jpg | Bin 0 -> 304 bytes user_guide/images/nav_toggle_darker.jpg | Bin 0 -> 1917 bytes user_guide/images/reactor-bullet.png | Bin 0 -> 781 bytes user_guide/images/smile.gif | Bin 0 -> 1156 bytes user_guide/images/transparent.gif | Bin 0 -> 43 bytes user_guide/index.html | 98 + user_guide/installation/downloads.html | 120 + user_guide/installation/index.html | 108 + user_guide/installation/troubleshooting.html | 90 + user_guide/installation/upgrade_120.html | 92 + user_guide/installation/upgrade_130.html | 203 + user_guide/installation/upgrade_131.html | 102 + user_guide/installation/upgrade_132.html | 100 + user_guide/installation/upgrade_133.html | 112 + user_guide/installation/upgrade_140.html | 145 + user_guide/installation/upgrade_141.html | 148 + user_guide/installation/upgrade_150.html | 178 + user_guide/installation/upgrade_152.html | 111 + user_guide/installation/upgrade_153.html | 100 + user_guide/installation/upgrade_154.html | 116 + user_guide/installation/upgrade_160.html | 125 + user_guide/installation/upgrade_161.html | 98 + user_guide/installation/upgrade_162.html | 106 + user_guide/installation/upgrade_163.html | 99 + user_guide/installation/upgrade_170.html | 121 + user_guide/installation/upgrade_171.html | 98 + user_guide/installation/upgrade_172.html | 109 + user_guide/installation/upgrade_200.html | 131 + user_guide/installation/upgrade_201.html | 105 + user_guide/installation/upgrade_202.html | 97 + user_guide/installation/upgrade_203.html | 121 + user_guide/installation/upgrade_210.html | 89 + user_guide/installation/upgrade_211.html | 94 + user_guide/installation/upgrade_212.html | 84 + user_guide/installation/upgrade_213.html | 84 + user_guide/installation/upgrade_214.html | 84 + user_guide/installation/upgrade_b11.html | 144 + user_guide/installation/upgrading.html | 110 + user_guide/libraries/benchmark.html | 198 + user_guide/libraries/caching.html | 193 + user_guide/libraries/calendar.html | 249 + user_guide/libraries/cart.html | 346 + user_guide/libraries/config.html | 222 + user_guide/libraries/email.html | 307 + user_guide/libraries/encryption.html | 224 + user_guide/libraries/file_uploading.html | 451 ++ user_guide/libraries/form_validation.html | 1250 +++ user_guide/libraries/ftp.html | 315 + user_guide/libraries/image_lib.html | 667 ++ user_guide/libraries/input.html | 295 + user_guide/libraries/javascript.html | 247 + user_guide/libraries/language.html | 137 + user_guide/libraries/loader.html | 273 + user_guide/libraries/migration.html | 176 + user_guide/libraries/output.html | 177 + user_guide/libraries/pagination.html | 233 + user_guide/libraries/parser.html | 212 + user_guide/libraries/security.html | 135 + user_guide/libraries/sessions.html | 341 + user_guide/libraries/table.html | 315 + user_guide/libraries/trackback.html | 246 + user_guide/libraries/typography.html | 160 + user_guide/libraries/unit_testing.html | 226 + user_guide/libraries/uri.html | 252 + user_guide/libraries/user_agent.html | 226 + user_guide/libraries/xmlrpc.html | 519 ++ user_guide/libraries/zip.html | 288 + user_guide/license.html | 107 + user_guide/nav/hacks.txt | 10 + user_guide/nav/moo.fx.js | 83 + user_guide/nav/nav.js | 156 + user_guide/nav/prototype.lite.js | 127 + user_guide/nav/user_guide_menu.js | 4 + user_guide/overview/appflow.html | 95 + user_guide/overview/at_a_glance.html | 162 + user_guide/overview/cheatsheets.html | 83 + user_guide/overview/features.html | 118 + user_guide/overview/getting_started.html | 92 + user_guide/overview/goals.html | 98 + user_guide/overview/index.html | 84 + user_guide/overview/mvc.html | 100 + user_guide/toc.html | 229 + user_guide/tutorial/conclusion.html | 91 + user_guide/tutorial/create_news_items.html | 179 + user_guide/tutorial/hard_coded_pages.html | 158 + user_guide/tutorial/index.html | 101 + user_guide/tutorial/news_section.html | 230 + user_guide/tutorial/static_pages.html | 206 + user_guide/userguide.css | 415 + 979 files changed, 220537 insertions(+), 18979 deletions(-) create mode 100755 application/.htaccess create mode 100755 application/cache/.htaccess create mode 100755 application/cache/index.html create mode 100755 application/config/autoload.php create mode 100755 application/config/config.php create mode 100755 application/config/constants.php create mode 100755 application/config/database.php create mode 100755 application/config/doctypes.php create mode 100755 application/config/foreign_chars.php create mode 100755 application/config/hooks.php create mode 100755 application/config/index.html create mode 100755 application/config/migration.php create mode 100755 application/config/mimes.php create mode 100755 application/config/profiler.php create mode 100755 application/config/routes.php create mode 100755 application/config/smileys.php create mode 100755 application/config/user_agents.php create mode 100755 application/controllers/TechnicalService.php create mode 100755 application/controllers/account.php create mode 100755 application/controllers/car.php create mode 100755 application/controllers/dashboard.php create mode 100755 application/controllers/general.php create mode 100755 application/controllers/index.html create mode 100755 application/controllers/invoice.php create mode 100755 application/controllers/payment.php create mode 100755 application/controllers/plugins.php create mode 100755 application/controllers/product.php create mode 100755 application/controllers/project.php create mode 100755 application/controllers/test.php create mode 100755 application/controllers/user.php create mode 100755 application/core/index.html create mode 100755 application/errors/error_404.php create mode 100755 application/errors/error_db.php create mode 100755 application/errors/error_general.php create mode 100755 application/errors/error_php.php create mode 100755 application/errors/index.html create mode 100755 application/helpers/account_helper.php create mode 100755 application/helpers/car_helper.php create mode 100755 application/helpers/global_helper.php create mode 100755 application/helpers/index.html create mode 100755 application/helpers/invoice_helper.php create mode 100755 application/helpers/lang_helper.php create mode 100755 application/helpers/product_helper.php create mode 100755 application/helpers/project_helper.php create mode 100755 application/helpers/service_helper.php create mode 100755 application/helpers/user_helper.php create mode 100755 application/hooks/index.html create mode 100755 application/index.html create mode 100755 application/language/english/index.html create mode 100755 application/libraries/index.html create mode 100755 application/libraries/template.php create mode 100755 application/logs/index.html create mode 100755 application/models/index.html create mode 100755 application/third_party/index.html create mode 100755 application/views/account/account_view.php create mode 100755 application/views/account/address_print_view.php create mode 100755 application/views/account/dashboard_view.php create mode 100755 application/views/account/list_account_view.php create mode 100755 application/views/account/new_account_view.php create mode 100755 application/views/account/options_view.php create mode 100755 application/views/account/telephone_directory_view.php create mode 100755 application/views/car/add_car_view.php create mode 100755 application/views/car/car_view.php create mode 100755 application/views/car/dashboard_view.php create mode 100755 application/views/car/list_cars_view.php create mode 100755 application/views/dashboard.php create mode 100755 application/views/inc/blank_footer.php create mode 100755 application/views/inc/blank_header.php create mode 100755 application/views/inc/footer.php create mode 100755 application/views/inc/header.php create mode 100755 application/views/index.html create mode 100755 application/views/invoice/dashboard_view.php create mode 100644 application/views/invoice/invoice_list_view.php create mode 100755 application/views/invoice/invoice_view.php create mode 100755 application/views/invoice/new_invoice_view.php create mode 100755 application/views/login.php create mode 100755 application/views/payment/dashboard_view.php create mode 100755 application/views/payment/new_payment_view.php create mode 100644 application/views/payment/payment_list_view.php create mode 100755 application/views/payment/payment_view.php create mode 100755 application/views/plugins/dashboard_view.php create mode 100755 application/views/product/dashboard_view.php create mode 100755 application/views/product/list_product_view.php create mode 100755 application/views/product/new_product_view.php create mode 100755 application/views/product/options_view.php create mode 100755 application/views/product/product_view.php create mode 100755 application/views/system/about_view.php create mode 100755 application/views/system/map_events_view.php create mode 100755 application/views/system/map_view.php create mode 100755 application/views/test/dashboard_view.php create mode 100755 application/views/user/messagebox/bulk_view.php create mode 100755 application/views/user/messagebox/inbox_view.php create mode 100755 application/views/user/messagebox/new_message_view.php create mode 100755 application/views/user/messagebox/outbox_view.php create mode 100755 application/views/user/new_user_view.php create mode 100755 application/views/user/no_access.php create mode 100755 application/views/user/profile_view.php create mode 100755 application/views/user/task/new_task_view.php create mode 100755 application/views/user/task/outbound_task_view.php create mode 100755 application/views/user/task/task_view.php create mode 100755 application/views/user/user_list_view.php create mode 100755 application/views/user/user_view.php create mode 100755 config.php delete mode 100644 configuration.php delete mode 100644 exit.php delete mode 100644 footer.php delete mode 100644 header.php delete mode 100644 include/class/barcode/README.txt delete mode 100644 include/class/barcode/VERSION delete mode 100644 include/class/barcode/barcode.php delete mode 100644 include/class/barcode/barcode_show.php delete mode 100644 include/class/class.upload.php delete mode 100644 include/connect.php delete mode 100644 include/current.php delete mode 100644 include/fiche.php delete mode 100644 include/functions.php delete mode 100644 include/global.php delete mode 100644 include/language.php delete mode 100644 include/meta.php delete mode 100644 include/product.php delete mode 100644 include/user.php mode change 100644 => 100755 index.php mode change 100644 => 100755 installation.php delete mode 100644 login.php delete mode 100644 page/currents/add.php delete mode 100644 page/currents/current.php delete mode 100644 page/currents/list.php delete mode 100644 page/fiche/fiche.php delete mode 100644 page/fiche/list.php delete mode 100644 page/fiche/new.php delete mode 100644 page/help/global.php delete mode 100644 page/help/index.php delete mode 100644 page/help/user.php delete mode 100644 page/logs/logs.php delete mode 100644 page/products/add.php delete mode 100644 page/products/list.php delete mode 100644 page/products/product.php delete mode 100644 page/settings/page_access.php delete mode 100644 page/settings/settings.php delete mode 100644 page/user/edit.php delete mode 100644 page/user/message.php delete mode 100644 page/user/message_new.php delete mode 100644 page/user/profile.php delete mode 100644 page/user/profile_change_ps.php delete mode 100644 page/user/task.php delete mode 100644 page/user/task_new.php delete mode 100644 page/user/user_management.php create mode 100755 plugins/barcode/barcode.php rename {include/class => plugins}/barcode/class/BCGArgumentException.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGBarcode.php (97%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGBarcode1D.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGColor.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGDrawException.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGDrawing.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGFont.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGFontFile.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGFontPhp.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGLabel.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGParseException.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGcodabar.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGcode11.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGcode128.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGcode39.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGcode39extended.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGcode93.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGean13.barcode.php (94%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGean8.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGgs1128.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGi25.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGintelligentmail.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGisbn.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGmsi.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGothercode.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGpostnet.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGs25.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGupca.barcode.php (87%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGupce.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGupcext2.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/BCGupcext5.barcode.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/JoinDraw.php (98%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/drawer/BCGDraw.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/drawer/BCGDrawJPG.php (100%) mode change 100644 => 100755 rename {include/class => plugins}/barcode/class/drawer/BCGDrawPNG.php (100%) mode change 100644 => 100755 rename {include/class/barcode/class => plugins/barcode}/font/Arial.ttf (100%) mode change 100644 => 100755 create mode 100755 plugins/barcode/index.php create mode 100755 plugins/excel_reader/Classes/PHPExcel.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Autoloader.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/APC.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/CacheBase.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/ICache.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Igbinary.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Memcache.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Memory.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/SQLite.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/SQLite3.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Wincache.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/CachedObjectStorageFactory.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Database.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/DateTime.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Engineering.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Exception.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/ExceptionHandler.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Financial.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/FormulaParser.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/FormulaToken.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Function.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Functions.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Logical.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/LookupRef.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/MathTrig.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Statistical.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/TextData.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/Token/Stack.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Calculation/functionlist.txt create mode 100755 plugins/excel_reader/Classes/PHPExcel/Cell.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Cell/AdvancedValueBinder.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Cell/DataType.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Cell/DataValidation.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Cell/DefaultValueBinder.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Cell/Hyperlink.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Cell/IValueBinder.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/DataSeries.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/DataSeriesValues.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/Exception.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/Layout.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/Legend.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/PlotArea.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/Renderer/jpgraph.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Chart/Title.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Comment.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/DocumentProperties.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/DocumentSecurity.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Exception.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/HashTable.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/IComparable.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/IOFactory.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/NamedRange.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/CSV.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/DefaultReadFilter.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/Excel2003XML.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007/Chart.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007/Theme.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/Excel5.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/Excel5/Escher.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/Gnumeric.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/HTML.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/IReadFilter.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/IReader.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/OOCalc.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Reader/SYLK.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/ReferenceHelper.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/RichText.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/RichText/ITextElement.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/RichText/Run.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/RichText/TextElement.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Settings.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/CodePage.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Date.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Drawing.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Escher.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Excel5.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/File.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/Font.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/CHANGELOG.TXT create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/CholeskyDecomposition.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/LUDecomposition.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/Matrix.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/QRDecomposition.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/SingularValueDecomposition.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LMQuadTest.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LagrangeInterpolation.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LagrangeInterpolation2.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LevenbergMarquardt.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/MagicSquareExample.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/Stats.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/benchmark.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/polyfit.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/tile.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/tests/TestMatrix.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/utils/Error.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/utils/Maths.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/OLE.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS/File.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS/Root.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/OLERead.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/gnu-lgpl.txt create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/readme.txt create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/PasswordHasher.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/String.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/XMLWriter.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/ZipArchive.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/ZipStreamWrapper.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/trend/bestFitClass.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/trend/linearBestFitClass.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/trend/powerBestFitClass.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Shared/trend/trendClass.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/Alignment.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/Border.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/Borders.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/Color.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/Conditional.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/Fill.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/Font.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/NumberFormat.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Style/Protection.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter/Column.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/BaseDrawing.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/CellIterator.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/ColumnDimension.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/Drawing.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/Drawing/Shadow.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/HeaderFooter.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/MemoryDrawing.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/PageMargins.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/PageSetup.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/Protection.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/Row.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/RowDimension.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/RowIterator.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Worksheet/SheetView.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/WorksheetIterator.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/CSV.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Chart.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Comments.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/DocProps.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Drawing.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Rels.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/StringTable.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Style.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Theme.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Workbook.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Worksheet.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/WriterPart.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel5.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Escher.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Font.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Parser.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Workbook.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Worksheet.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Xf.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/HTML.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/IWriter.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/PDF.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/PDF/Core.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/PDF/DomPDF.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/PDF/mPDF.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/Writer/PDF/tcPDF.php create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/cs/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/cs/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/da/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/da/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/de/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/de/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/en/uk/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/es/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/es/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/fi/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/fi/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/fr/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/fr/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/hu/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/hu/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/it/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/it/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/nl/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/nl/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/no/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/no/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/pl/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/pl/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/pt/br/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/pt/br/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/pt/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/pt/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/ru/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/ru/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/sv/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/sv/functions create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/tr/config create mode 100755 plugins/excel_reader/Classes/PHPExcel/locale/tr/functions create mode 100755 plugins/excel_reader/index.php create mode 100755 plugins/excel_reader/jd.xlsx create mode 100755 system/.htaccess create mode 100755 system/core/Benchmark.php create mode 100755 system/core/CodeIgniter.php create mode 100755 system/core/Common.php create mode 100755 system/core/Config.php create mode 100755 system/core/Controller.php create mode 100755 system/core/Exceptions.php create mode 100755 system/core/Hooks.php create mode 100755 system/core/Input.php create mode 100755 system/core/Lang.php create mode 100755 system/core/Loader.php create mode 100755 system/core/Model.php create mode 100755 system/core/Output.php create mode 100755 system/core/Router.php create mode 100755 system/core/Security.php create mode 100755 system/core/URI.php create mode 100755 system/core/Utf8.php create mode 100755 system/core/index.html create mode 100755 system/database/DB.php create mode 100755 system/database/DB_active_rec.php create mode 100755 system/database/DB_cache.php create mode 100755 system/database/DB_driver.php create mode 100755 system/database/DB_forge.php create mode 100755 system/database/DB_result.php create mode 100755 system/database/DB_utility.php create mode 100755 system/database/drivers/cubrid/cubrid_driver.php create mode 100755 system/database/drivers/cubrid/cubrid_forge.php create mode 100755 system/database/drivers/cubrid/cubrid_result.php create mode 100755 system/database/drivers/cubrid/cubrid_utility.php create mode 100755 system/database/drivers/cubrid/index.html create mode 100755 system/database/drivers/index.html create mode 100755 system/database/drivers/mssql/index.html create mode 100755 system/database/drivers/mssql/mssql_driver.php create mode 100755 system/database/drivers/mssql/mssql_forge.php create mode 100755 system/database/drivers/mssql/mssql_result.php create mode 100755 system/database/drivers/mssql/mssql_utility.php create mode 100755 system/database/drivers/mysql/index.html create mode 100755 system/database/drivers/mysql/mysql_driver.php create mode 100755 system/database/drivers/mysql/mysql_forge.php create mode 100755 system/database/drivers/mysql/mysql_result.php create mode 100755 system/database/drivers/mysql/mysql_utility.php create mode 100755 system/database/drivers/mysqli/index.html create mode 100755 system/database/drivers/mysqli/mysqli_driver.php create mode 100755 system/database/drivers/mysqli/mysqli_forge.php create mode 100755 system/database/drivers/mysqli/mysqli_result.php create mode 100755 system/database/drivers/mysqli/mysqli_utility.php create mode 100755 system/database/drivers/oci8/index.html create mode 100755 system/database/drivers/oci8/oci8_driver.php create mode 100755 system/database/drivers/oci8/oci8_forge.php create mode 100755 system/database/drivers/oci8/oci8_result.php create mode 100755 system/database/drivers/oci8/oci8_utility.php create mode 100755 system/database/drivers/odbc/index.html create mode 100755 system/database/drivers/odbc/odbc_driver.php create mode 100755 system/database/drivers/odbc/odbc_forge.php create mode 100755 system/database/drivers/odbc/odbc_result.php create mode 100755 system/database/drivers/odbc/odbc_utility.php create mode 100755 system/database/drivers/pdo/index.html create mode 100755 system/database/drivers/pdo/pdo_driver.php create mode 100755 system/database/drivers/pdo/pdo_forge.php create mode 100755 system/database/drivers/pdo/pdo_result.php create mode 100755 system/database/drivers/pdo/pdo_utility.php create mode 100755 system/database/drivers/postgre/index.html create mode 100755 system/database/drivers/postgre/postgre_driver.php create mode 100755 system/database/drivers/postgre/postgre_forge.php create mode 100755 system/database/drivers/postgre/postgre_result.php create mode 100755 system/database/drivers/postgre/postgre_utility.php create mode 100755 system/database/drivers/sqlite/index.html create mode 100755 system/database/drivers/sqlite/sqlite_driver.php create mode 100755 system/database/drivers/sqlite/sqlite_forge.php create mode 100755 system/database/drivers/sqlite/sqlite_result.php create mode 100755 system/database/drivers/sqlite/sqlite_utility.php create mode 100755 system/database/drivers/sqlsrv/index.html create mode 100755 system/database/drivers/sqlsrv/sqlsrv_driver.php create mode 100755 system/database/drivers/sqlsrv/sqlsrv_forge.php create mode 100755 system/database/drivers/sqlsrv/sqlsrv_result.php create mode 100755 system/database/drivers/sqlsrv/sqlsrv_utility.php create mode 100755 system/database/index.html create mode 100755 system/fonts/index.html create mode 100755 system/fonts/texb.ttf create mode 100755 system/helpers/array_helper.php create mode 100755 system/helpers/captcha_helper.php create mode 100755 system/helpers/cookie_helper.php create mode 100755 system/helpers/date_helper.php create mode 100755 system/helpers/directory_helper.php create mode 100755 system/helpers/download_helper.php create mode 100755 system/helpers/email_helper.php create mode 100755 system/helpers/file_helper.php create mode 100755 system/helpers/form_helper.php create mode 100755 system/helpers/html_helper.php create mode 100755 system/helpers/index.html create mode 100755 system/helpers/inflector_helper.php create mode 100755 system/helpers/language_helper.php create mode 100755 system/helpers/number_helper.php create mode 100755 system/helpers/path_helper.php create mode 100755 system/helpers/security_helper.php create mode 100755 system/helpers/smiley_helper.php create mode 100755 system/helpers/string_helper.php create mode 100755 system/helpers/text_helper.php create mode 100755 system/helpers/typography_helper.php create mode 100755 system/helpers/url_helper.php create mode 100755 system/helpers/xml_helper.php create mode 100755 system/index.html create mode 100755 system/language/english/calendar_lang.php create mode 100755 system/language/english/date_lang.php create mode 100755 system/language/english/db_lang.php create mode 100755 system/language/english/email_lang.php create mode 100755 system/language/english/form_validation_lang.php create mode 100755 system/language/english/ftp_lang.php create mode 100755 system/language/english/imglib_lang.php create mode 100755 system/language/english/index.html create mode 100755 system/language/english/migration_lang.php create mode 100755 system/language/english/number_lang.php create mode 100755 system/language/english/profiler_lang.php create mode 100755 system/language/english/unit_test_lang.php create mode 100755 system/language/english/upload_lang.php create mode 100755 system/language/index.html create mode 100755 system/libraries/Cache/Cache.php create mode 100755 system/libraries/Cache/drivers/Cache_apc.php create mode 100755 system/libraries/Cache/drivers/Cache_dummy.php create mode 100755 system/libraries/Cache/drivers/Cache_file.php create mode 100755 system/libraries/Cache/drivers/Cache_memcached.php create mode 100755 system/libraries/Calendar.php create mode 100755 system/libraries/Cart.php create mode 100755 system/libraries/Driver.php create mode 100755 system/libraries/Email.php create mode 100755 system/libraries/Encrypt.php create mode 100755 system/libraries/Form_validation.php create mode 100755 system/libraries/Ftp.php create mode 100755 system/libraries/Image_lib.php create mode 100755 system/libraries/Javascript.php create mode 100755 system/libraries/Log.php create mode 100755 system/libraries/Migration.php create mode 100755 system/libraries/Pagination.php create mode 100755 system/libraries/Parser.php create mode 100755 system/libraries/Profiler.php create mode 100755 system/libraries/Session.php create mode 100755 system/libraries/Sha1.php create mode 100755 system/libraries/Table.php create mode 100755 system/libraries/Trackback.php create mode 100755 system/libraries/Typography.php create mode 100755 system/libraries/Unit_test.php create mode 100755 system/libraries/Upload.php create mode 100755 system/libraries/User_agent.php create mode 100755 system/libraries/Xmlrpc.php create mode 100755 system/libraries/Xmlrpcs.php create mode 100755 system/libraries/Zip.php create mode 100755 system/libraries/index.html create mode 100755 system/libraries/javascript/Jquery.php create mode 100755 theme/css/app.css create mode 100755 theme/css/bootstrap-theme.css create mode 100755 theme/css/bootstrap-theme.min.css create mode 100755 theme/css/bootstrap.css create mode 100755 theme/css/bootstrap.min.css create mode 100755 theme/css/datepicker.css create mode 100755 theme/fonts/glyphicons-halflings-regular.eot create mode 100755 theme/fonts/glyphicons-halflings-regular.svg create mode 100755 theme/fonts/glyphicons-halflings-regular.ttf create mode 100755 theme/fonts/glyphicons-halflings-regular.woff delete mode 100644 theme/images/barcode_scaner.png delete mode 100644 theme/images/foundation/left-arrow.png delete mode 100644 theme/images/foundation/mask-black.png delete mode 100644 theme/images/foundation/pause-black.png delete mode 100644 theme/images/foundation/rotator-black.png delete mode 100644 theme/images/foundation/timer-black.png delete mode 100644 theme/images/icon/12/delete.png delete mode 100644 theme/images/icon/12/edit.png delete mode 100644 theme/images/icon/12/key.png delete mode 100644 theme/images/icon/16/calendar_1.png delete mode 100644 theme/images/icon/16/clock.png delete mode 100644 theme/images/icon/16/cur_dollar.png delete mode 100644 theme/images/icon/16/customers.png delete mode 100644 theme/images/icon/16/invoice.png delete mode 100644 theme/images/icon/16/list_num.png delete mode 100644 theme/images/icon/16/mail.png delete mode 100644 theme/images/icon/16/percent.png delete mode 100644 theme/images/icon/16/plus.png delete mode 100644 theme/images/icon/16/trash.png delete mode 100644 theme/images/icon/48/barcode.png create mode 100644 theme/img/avatar.png rename theme/{images/foundation/right-arrow.png => img/bg-content.png} (82%) create mode 100644 theme/img/datatable/Sorting icons.psd create mode 100644 theme/img/datatable/back_disabled.png create mode 100644 theme/img/datatable/back_enabled.png create mode 100644 theme/img/datatable/back_enabled_hover.png create mode 100644 theme/img/datatable/favicon.ico create mode 100644 theme/img/datatable/forward_disabled.png create mode 100644 theme/img/datatable/forward_enabled.png create mode 100644 theme/img/datatable/forward_enabled_hover.png create mode 100644 theme/img/datatable/sort_asc.png create mode 100644 theme/img/datatable/sort_asc_disabled.png create mode 100644 theme/img/datatable/sort_both.png create mode 100644 theme/img/datatable/sort_desc.png create mode 100644 theme/img/datatable/sort_desc_disabled.png create mode 100644 theme/img/datatable/ui-bg.png create mode 100755 theme/img/markers/blank.png rename theme/{images/icon/16/user_male.png => img/markers/marker.png} (69%) mode change 100644 => 100755 create mode 100755 theme/img/markers/marker0.png create mode 100755 theme/img/markers/marker00.png create mode 100755 theme/img/markers/marker01.png create mode 100755 theme/img/markers/marker02.png create mode 100755 theme/img/markers/marker03.png create mode 100755 theme/img/markers/marker04.png create mode 100755 theme/img/markers/marker05.png create mode 100755 theme/img/markers/marker06.png create mode 100755 theme/img/markers/marker07.png create mode 100755 theme/img/markers/marker08.png create mode 100755 theme/img/markers/marker09.png create mode 100755 theme/img/markers/marker1.png create mode 100755 theme/img/markers/marker10.png create mode 100755 theme/img/markers/marker11.png create mode 100755 theme/img/markers/marker12.png create mode 100755 theme/img/markers/marker13.png create mode 100755 theme/img/markers/marker14.png create mode 100755 theme/img/markers/marker15.png create mode 100755 theme/img/markers/marker16.png create mode 100755 theme/img/markers/marker17.png create mode 100755 theme/img/markers/marker18.png create mode 100755 theme/img/markers/marker19.png create mode 100755 theme/img/markers/marker2.png create mode 100755 theme/img/markers/marker20.png create mode 100755 theme/img/markers/marker21.png create mode 100755 theme/img/markers/marker22.png create mode 100755 theme/img/markers/marker23.png create mode 100755 theme/img/markers/marker24.png create mode 100755 theme/img/markers/marker25.png create mode 100755 theme/img/markers/marker26.png create mode 100755 theme/img/markers/marker27.png create mode 100755 theme/img/markers/marker28.png create mode 100755 theme/img/markers/marker29.png create mode 100755 theme/img/markers/marker3.png create mode 100755 theme/img/markers/marker30.png create mode 100755 theme/img/markers/marker31.png create mode 100755 theme/img/markers/marker32.png create mode 100755 theme/img/markers/marker33.png create mode 100755 theme/img/markers/marker34.png create mode 100755 theme/img/markers/marker35.png create mode 100755 theme/img/markers/marker36.png create mode 100755 theme/img/markers/marker37.png create mode 100755 theme/img/markers/marker38.png create mode 100755 theme/img/markers/marker39.png create mode 100755 theme/img/markers/marker4.png create mode 100755 theme/img/markers/marker40.png create mode 100755 theme/img/markers/marker41.png create mode 100755 theme/img/markers/marker42.png create mode 100755 theme/img/markers/marker43.png create mode 100755 theme/img/markers/marker44.png create mode 100755 theme/img/markers/marker45.png create mode 100755 theme/img/markers/marker46.png create mode 100755 theme/img/markers/marker47.png create mode 100755 theme/img/markers/marker48.png create mode 100755 theme/img/markers/marker49.png create mode 100755 theme/img/markers/marker5.png create mode 100755 theme/img/markers/marker50.png create mode 100755 theme/img/markers/marker51.png create mode 100755 theme/img/markers/marker52.png create mode 100755 theme/img/markers/marker53.png create mode 100755 theme/img/markers/marker54.png create mode 100755 theme/img/markers/marker55.png create mode 100755 theme/img/markers/marker56.png create mode 100755 theme/img/markers/marker57.png create mode 100755 theme/img/markers/marker58.png create mode 100755 theme/img/markers/marker59.png create mode 100755 theme/img/markers/marker6.png create mode 100755 theme/img/markers/marker60.png create mode 100755 theme/img/markers/marker61.png create mode 100755 theme/img/markers/marker62.png create mode 100755 theme/img/markers/marker63.png create mode 100755 theme/img/markers/marker64.png create mode 100755 theme/img/markers/marker65.png create mode 100755 theme/img/markers/marker66.png create mode 100755 theme/img/markers/marker67.png create mode 100755 theme/img/markers/marker68.png create mode 100755 theme/img/markers/marker69.png create mode 100755 theme/img/markers/marker7.png create mode 100755 theme/img/markers/marker70.png create mode 100755 theme/img/markers/marker71.png create mode 100755 theme/img/markers/marker72.png create mode 100755 theme/img/markers/marker73.png create mode 100755 theme/img/markers/marker74.png create mode 100755 theme/img/markers/marker75.png create mode 100755 theme/img/markers/marker76.png create mode 100755 theme/img/markers/marker77.png create mode 100755 theme/img/markers/marker78.png create mode 100755 theme/img/markers/marker79.png create mode 100755 theme/img/markers/marker8.png create mode 100755 theme/img/markers/marker80.png create mode 100755 theme/img/markers/marker81.png create mode 100755 theme/img/markers/marker82.png create mode 100755 theme/img/markers/marker83.png create mode 100755 theme/img/markers/marker84.png create mode 100755 theme/img/markers/marker85.png create mode 100755 theme/img/markers/marker86.png create mode 100755 theme/img/markers/marker87.png create mode 100755 theme/img/markers/marker88.png create mode 100755 theme/img/markers/marker89.png create mode 100755 theme/img/markers/marker9.png create mode 100755 theme/img/markers/marker90.png create mode 100755 theme/img/markers/marker91.png create mode 100755 theme/img/markers/marker92.png create mode 100755 theme/img/markers/marker93.png create mode 100755 theme/img/markers/marker94.png create mode 100755 theme/img/markers/marker95.png create mode 100755 theme/img/markers/marker96.png create mode 100755 theme/img/markers/marker97.png create mode 100755 theme/img/markers/marker98.png create mode 100755 theme/img/markers/marker99.png create mode 100755 theme/index.html delete mode 100644 theme/javascripts/app.js delete mode 100644 theme/javascripts/foundation.js delete mode 100644 theme/javascripts/jquery.foundation.accordion.js delete mode 100644 theme/javascripts/jquery.foundation.alerts.js delete mode 100644 theme/javascripts/jquery.foundation.buttons.js delete mode 100644 theme/javascripts/jquery.foundation.forms.js delete mode 100644 theme/javascripts/jquery.foundation.navigation.js delete mode 100644 theme/javascripts/jquery.foundation.orbit.js delete mode 100644 theme/javascripts/jquery.foundation.reveal.js delete mode 100644 theme/javascripts/jquery.foundation.tabs.js delete mode 100644 theme/javascripts/jquery.foundation.tooltips.js delete mode 100644 theme/javascripts/jquery.placeholder.js delete mode 100644 theme/javascripts/modernizr.foundation.js create mode 100644 theme/js/app.js create mode 100755 theme/js/bootstrap-datepicker.js create mode 100755 theme/js/bootstrap.js create mode 100755 theme/js/bootstrap.min.js create mode 100755 theme/js/dataTable/as3/ZeroClipboard.as create mode 100755 theme/js/dataTable/as3/ZeroClipboardPdf.as create mode 100644 theme/js/dataTable/as3/lib/AlivePDF.swc create mode 100755 theme/js/dataTable/css/TableTools.css create mode 100755 theme/js/dataTable/css/TableTools_JUI.css create mode 100644 theme/js/dataTable/images/background.png create mode 100644 theme/js/dataTable/images/collection.png create mode 100644 theme/js/dataTable/images/collection_hover.png create mode 100755 theme/js/dataTable/images/copy.png create mode 100755 theme/js/dataTable/images/copy_hover.png create mode 100755 theme/js/dataTable/images/csv.png create mode 100755 theme/js/dataTable/images/csv_hover.png create mode 100644 theme/js/dataTable/images/pdf.png create mode 100644 theme/js/dataTable/images/pdf_hover.png create mode 100755 theme/js/dataTable/images/print.png create mode 100755 theme/js/dataTable/images/print_hover.png create mode 100644 theme/js/dataTable/images/psd/collection.psd create mode 100755 theme/js/dataTable/images/psd/copy document.psd create mode 100755 theme/js/dataTable/images/psd/file_types.psd create mode 100755 theme/js/dataTable/images/psd/printer.psd create mode 100755 theme/js/dataTable/images/xls.png create mode 100755 theme/js/dataTable/images/xls_hover.png create mode 100755 theme/js/dataTable/js/TableTools.js create mode 100644 theme/js/dataTable/js/TableTools.min.js create mode 100644 theme/js/dataTable/js/TableTools.min.js.gz create mode 100755 theme/js/dataTable/js/ZeroClipboard.js create mode 100644 theme/js/dataTable/swf/copy_csv_xls.swf create mode 100644 theme/js/dataTable/swf/copy_csv_xls_pdf.swf create mode 100644 theme/js/infobox_packed.js rename theme/{javascripts => js}/jquery.dataTables.js (90%) rename theme/{javascripts => js}/jquery.js (58%) rename theme/{javascripts/jquery.validate.js => js/jquery.validation.js} (77%) delete mode 100644 theme/language/english.php delete mode 100644 theme/language/spanish.php delete mode 100644 theme/language/turkish.php delete mode 100644 theme/stylesheets/app.css delete mode 100644 theme/stylesheets/foundation.css create mode 100644 uploads/avatar/2.jpg create mode 100644 uploads/avatar/3.jpg create mode 100644 uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182018.xlsx create mode 100644 uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182038.xlsx create mode 100644 uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182624.xlsx create mode 100644 uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182632.xlsx create mode 100644 uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182647.xlsx create mode 100644 uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031184156.xlsx create mode 100644 uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031185609.xlsx create mode 100644 uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031185645.xlsx create mode 100644 uploads/excel_reader/2013/10/31/excel_simple_new_location_20131031181627.xlsx create mode 100644 uploads/excel_reader/2013/10/31/excel_simple_new_location_20131031181848.xlsx create mode 100644 uploads/excel_reader/2013/10/31/test_20131031180233.xls create mode 100644 uploads/excel_reader/2013/10/31/test_20131031180332.xls create mode 100644 uploads/excel_reader/2013/10/31/test_20131031180358.xls create mode 100644 uploads/excel_reader/2013/10/31/test_20131031181023.xls create mode 100644 uploads/excel_reader/2013/10/31/test_20131031181238.xls create mode 100644 uploads/file/projects/4/20131022181249_mustafa.png create mode 100644 uploads/file/projects/4/20131022181504_mustafa.png create mode 100644 uploads/file/projects/4/mustafa.png create mode 100644 "uploads/file/projects/Deneme-Projesi-1/20131022182140_U\342\225\240\303\252G\342\225\240\303\245G\342\225\240\303\245G\342\225\240\303\245 .pngMMMMM.png" create mode 100644 uploads/file/projects/Deneme-Projesi-1/20131022182709_mustafa.png create mode 100644 uploads/file/projects/Deneme-Projesi-1/20131026155353_1382792004965.jpg create mode 100644 uploads/file/projects/Deneme-Projesi-1/20131026155504_1382792081329.jpg create mode 100644 uploads/file/projects/Proje-1/20131022185231_mustafa.png create mode 100644 uploads/simple/excel_simple_new_location.xlsx create mode 100644 uploads/tec_service/2013/11/12/12_20131112234806.jpg create mode 100644 uploads/work_order/2013/10/Proje-5/Siverek-ilk-Okulu_75/mustafa.png create mode 100644 uploads/work_order/Elkotek/2013/10/Meb-Projesi/Comuduz-Alimpinari-ilkokulu_76/Comuduz-Alimpinari-ilkokulu_20131029180042.png create mode 100644 uploads/work_order/Elkotek/2013/10/Meb-Projesi/Comuduz-Alimpinari-ilkokulu_77/Comuduz-Alimpinari-ilkokulu_20131029180457.png create mode 100644 uploads/work_order/Elkotek/Proje5/234234234/75/mustafa.png create mode 100644 uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_61/mustafa.png create mode 100644 uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029110847.jpg create mode 100644 uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111003.jpg create mode 100644 uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111008.jpg create mode 100644 uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111131.jpg create mode 100644 uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111655.jpg create mode 100644 uploads/work_order/Supercom/2013/10/Supercom/TSE-Kahramanmaras_87/TSE-Kahramanmaras_20131030133146.30 create mode 100755 user_guide/changelog.html create mode 100755 user_guide/database/active_record.html create mode 100755 user_guide/database/caching.html create mode 100755 user_guide/database/call_function.html create mode 100755 user_guide/database/configuration.html create mode 100755 user_guide/database/connecting.html create mode 100755 user_guide/database/examples.html create mode 100755 user_guide/database/fields.html create mode 100755 user_guide/database/forge.html create mode 100755 user_guide/database/helpers.html create mode 100755 user_guide/database/index.html create mode 100755 user_guide/database/queries.html create mode 100755 user_guide/database/results.html create mode 100755 user_guide/database/table_data.html create mode 100755 user_guide/database/transactions.html create mode 100755 user_guide/database/utilities.html create mode 100755 user_guide/doc_style/index.html create mode 100755 user_guide/doc_style/template.html create mode 100755 user_guide/general/alternative_php.html create mode 100755 user_guide/general/ancillary_classes.html create mode 100755 user_guide/general/autoloader.html create mode 100755 user_guide/general/caching.html create mode 100755 user_guide/general/cli.html create mode 100755 user_guide/general/common_functions.html create mode 100755 user_guide/general/controllers.html create mode 100755 user_guide/general/core_classes.html create mode 100755 user_guide/general/creating_drivers.html create mode 100755 user_guide/general/creating_libraries.html create mode 100755 user_guide/general/credits.html create mode 100755 user_guide/general/drivers.html create mode 100755 user_guide/general/environments.html create mode 100755 user_guide/general/errors.html create mode 100755 user_guide/general/helpers.html create mode 100755 user_guide/general/hooks.html create mode 100755 user_guide/general/libraries.html create mode 100755 user_guide/general/managing_apps.html create mode 100755 user_guide/general/models.html create mode 100755 user_guide/general/profiling.html create mode 100755 user_guide/general/quick_reference.html create mode 100755 user_guide/general/requirements.html create mode 100755 user_guide/general/reserved_names.html create mode 100755 user_guide/general/routing.html create mode 100755 user_guide/general/security.html create mode 100755 user_guide/general/styleguide.html create mode 100755 user_guide/general/urls.html create mode 100755 user_guide/general/views.html create mode 100755 user_guide/helpers/array_helper.html create mode 100755 user_guide/helpers/captcha_helper.html create mode 100755 user_guide/helpers/cookie_helper.html create mode 100755 user_guide/helpers/date_helper.html create mode 100755 user_guide/helpers/directory_helper.html create mode 100755 user_guide/helpers/download_helper.html create mode 100755 user_guide/helpers/email_helper.html create mode 100755 user_guide/helpers/file_helper.html create mode 100755 user_guide/helpers/form_helper.html create mode 100755 user_guide/helpers/html_helper.html create mode 100755 user_guide/helpers/inflector_helper.html create mode 100755 user_guide/helpers/language_helper.html create mode 100755 user_guide/helpers/number_helper.html create mode 100755 user_guide/helpers/path_helper.html create mode 100755 user_guide/helpers/security_helper.html create mode 100755 user_guide/helpers/smiley_helper.html create mode 100755 user_guide/helpers/string_helper.html create mode 100755 user_guide/helpers/text_helper.html create mode 100755 user_guide/helpers/typography_helper.html create mode 100755 user_guide/helpers/url_helper.html create mode 100755 user_guide/helpers/xml_helper.html create mode 100755 user_guide/images/appflowchart.gif create mode 100755 user_guide/images/arrow.gif create mode 100755 user_guide/images/ci_logo.jpg create mode 100755 user_guide/images/ci_logo_flame.jpg create mode 100755 user_guide/images/ci_quick_ref.png create mode 100755 user_guide/images/codeigniter_1.7.1_helper_reference.pdf create mode 100755 user_guide/images/codeigniter_1.7.1_helper_reference.png create mode 100755 user_guide/images/codeigniter_1.7.1_library_reference.pdf create mode 100755 user_guide/images/codeigniter_1.7.1_library_reference.png create mode 100755 user_guide/images/file.gif create mode 100755 user_guide/images/folder.gif create mode 100755 user_guide/images/nav_bg_darker.jpg create mode 100755 user_guide/images/nav_separator_darker.jpg create mode 100755 user_guide/images/nav_toggle_darker.jpg create mode 100755 user_guide/images/reactor-bullet.png create mode 100755 user_guide/images/smile.gif create mode 100755 user_guide/images/transparent.gif create mode 100755 user_guide/index.html create mode 100755 user_guide/installation/downloads.html create mode 100755 user_guide/installation/index.html create mode 100755 user_guide/installation/troubleshooting.html create mode 100755 user_guide/installation/upgrade_120.html create mode 100755 user_guide/installation/upgrade_130.html create mode 100755 user_guide/installation/upgrade_131.html create mode 100755 user_guide/installation/upgrade_132.html create mode 100755 user_guide/installation/upgrade_133.html create mode 100755 user_guide/installation/upgrade_140.html create mode 100755 user_guide/installation/upgrade_141.html create mode 100755 user_guide/installation/upgrade_150.html create mode 100755 user_guide/installation/upgrade_152.html create mode 100755 user_guide/installation/upgrade_153.html create mode 100755 user_guide/installation/upgrade_154.html create mode 100755 user_guide/installation/upgrade_160.html create mode 100755 user_guide/installation/upgrade_161.html create mode 100755 user_guide/installation/upgrade_162.html create mode 100755 user_guide/installation/upgrade_163.html create mode 100755 user_guide/installation/upgrade_170.html create mode 100755 user_guide/installation/upgrade_171.html create mode 100755 user_guide/installation/upgrade_172.html create mode 100755 user_guide/installation/upgrade_200.html create mode 100755 user_guide/installation/upgrade_201.html create mode 100755 user_guide/installation/upgrade_202.html create mode 100755 user_guide/installation/upgrade_203.html create mode 100755 user_guide/installation/upgrade_210.html create mode 100755 user_guide/installation/upgrade_211.html create mode 100755 user_guide/installation/upgrade_212.html create mode 100755 user_guide/installation/upgrade_213.html create mode 100755 user_guide/installation/upgrade_214.html create mode 100755 user_guide/installation/upgrade_b11.html create mode 100755 user_guide/installation/upgrading.html create mode 100755 user_guide/libraries/benchmark.html create mode 100755 user_guide/libraries/caching.html create mode 100755 user_guide/libraries/calendar.html create mode 100755 user_guide/libraries/cart.html create mode 100755 user_guide/libraries/config.html create mode 100755 user_guide/libraries/email.html create mode 100755 user_guide/libraries/encryption.html create mode 100755 user_guide/libraries/file_uploading.html create mode 100755 user_guide/libraries/form_validation.html create mode 100755 user_guide/libraries/ftp.html create mode 100755 user_guide/libraries/image_lib.html create mode 100755 user_guide/libraries/input.html create mode 100755 user_guide/libraries/javascript.html create mode 100755 user_guide/libraries/language.html create mode 100755 user_guide/libraries/loader.html create mode 100755 user_guide/libraries/migration.html create mode 100755 user_guide/libraries/output.html create mode 100755 user_guide/libraries/pagination.html create mode 100755 user_guide/libraries/parser.html create mode 100755 user_guide/libraries/security.html create mode 100755 user_guide/libraries/sessions.html create mode 100755 user_guide/libraries/table.html create mode 100755 user_guide/libraries/trackback.html create mode 100755 user_guide/libraries/typography.html create mode 100755 user_guide/libraries/unit_testing.html create mode 100755 user_guide/libraries/uri.html create mode 100755 user_guide/libraries/user_agent.html create mode 100755 user_guide/libraries/xmlrpc.html create mode 100755 user_guide/libraries/zip.html create mode 100755 user_guide/license.html create mode 100755 user_guide/nav/hacks.txt create mode 100755 user_guide/nav/moo.fx.js create mode 100755 user_guide/nav/nav.js create mode 100755 user_guide/nav/prototype.lite.js create mode 100755 user_guide/nav/user_guide_menu.js create mode 100755 user_guide/overview/appflow.html create mode 100755 user_guide/overview/at_a_glance.html create mode 100755 user_guide/overview/cheatsheets.html create mode 100755 user_guide/overview/features.html create mode 100755 user_guide/overview/getting_started.html create mode 100755 user_guide/overview/goals.html create mode 100755 user_guide/overview/index.html create mode 100755 user_guide/overview/mvc.html create mode 100755 user_guide/toc.html create mode 100755 user_guide/tutorial/conclusion.html create mode 100755 user_guide/tutorial/create_news_items.html create mode 100755 user_guide/tutorial/hard_coded_pages.html create mode 100755 user_guide/tutorial/index.html create mode 100755 user_guide/tutorial/news_section.html create mode 100755 user_guide/tutorial/static_pages.html create mode 100755 user_guide/userguide.css diff --git a/application/.htaccess b/application/.htaccess new file mode 100755 index 0000000..14249c5 --- /dev/null +++ b/application/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/application/cache/.htaccess b/application/cache/.htaccess new file mode 100755 index 0000000..3418e55 --- /dev/null +++ b/application/cache/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/application/cache/index.html b/application/cache/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/cache/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/config/autoload.php b/application/config/autoload.php new file mode 100755 index 0000000..615bd9a --- /dev/null +++ b/application/config/autoload.php @@ -0,0 +1,116 @@ + '', + 'xhtml1-strict' => '', + 'xhtml1-trans' => '', + 'xhtml1-frame' => '', + 'html5' => '', + 'html4-strict' => '', + 'html4-trans' => '', + 'html4-frame' => '' + ); + +/* End of file doctypes.php */ +/* Location: ./application/config/doctypes.php */ \ No newline at end of file diff --git a/application/config/foreign_chars.php b/application/config/foreign_chars.php new file mode 100755 index 0000000..14b0d73 --- /dev/null +++ b/application/config/foreign_chars.php @@ -0,0 +1,64 @@ + 'ae', + '/ö|œ/' => 'oe', + '/ü/' => 'ue', + '/Ä/' => 'Ae', + '/Ü/' => 'Ue', + '/Ö/' => 'Oe', + '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A', + '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a', + '/Ç|Ć|Ĉ|Ċ|Č/' => 'C', + '/ç|ć|ĉ|ċ|č/' => 'c', + '/Ð|Ď|Đ/' => 'D', + '/ð|ď|đ/' => 'd', + '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E', + '/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e', + '/Ĝ|Ğ|Ġ|Ģ/' => 'G', + '/ĝ|ğ|ġ|ģ/' => 'g', + '/Ĥ|Ħ/' => 'H', + '/ĥ|ħ/' => 'h', + '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I', + '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i', + '/Ĵ/' => 'J', + '/ĵ/' => 'j', + '/Ķ/' => 'K', + '/ķ/' => 'k', + '/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L', + '/ĺ|ļ|ľ|ŀ|ł/' => 'l', + '/Ñ|Ń|Ņ|Ň/' => 'N', + '/ñ|ń|ņ|ň|ʼn/' => 'n', + '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O', + '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o', + '/Ŕ|Ŗ|Ř/' => 'R', + '/ŕ|ŗ|ř/' => 'r', + '/Ś|Ŝ|Ş|Š/' => 'S', + '/ś|ŝ|ş|š|ſ/' => 's', + '/Ţ|Ť|Ŧ/' => 'T', + '/ţ|ť|ŧ/' => 't', + '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U', + '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u', + '/Ý|Ÿ|Ŷ/' => 'Y', + '/ý|ÿ|ŷ/' => 'y', + '/Ŵ/' => 'W', + '/ŵ/' => 'w', + '/Ź|Ż|Ž/' => 'Z', + '/ź|ż|ž/' => 'z', + '/Æ|Ǽ/' => 'AE', + '/ß/'=> 'ss', + '/IJ/' => 'IJ', + '/ij/' => 'ij', + '/Œ/' => 'OE', + '/ƒ/' => 'f' +); + +/* End of file foreign_chars.php */ +/* Location: ./application/config/foreign_chars.php */ \ No newline at end of file diff --git a/application/config/hooks.php b/application/config/hooks.php new file mode 100755 index 0000000..a4ad2be --- /dev/null +++ b/application/config/hooks.php @@ -0,0 +1,16 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/config/migration.php b/application/config/migration.php new file mode 100755 index 0000000..df42a3c --- /dev/null +++ b/application/config/migration.php @@ -0,0 +1,41 @@ +migration->latest() this is the version that schema will +| be upgraded / downgraded to. +| +*/ +$config['migration_version'] = 0; + + +/* +|-------------------------------------------------------------------------- +| Migrations Path +|-------------------------------------------------------------------------- +| +| Path to your migrations folder. +| Typically, it will be within your application path. +| Also, writing permission is required within the migrations path. +| +*/ +$config['migration_path'] = APPPATH . 'migrations/'; + + +/* End of file migration.php */ +/* Location: ./application/config/migration.php */ \ No newline at end of file diff --git a/application/config/mimes.php b/application/config/mimes.php new file mode 100755 index 0000000..100f7d4 --- /dev/null +++ b/application/config/mimes.php @@ -0,0 +1,106 @@ + 'application/mac-binhex40', + 'cpt' => 'application/mac-compactpro', + 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'), + 'bin' => 'application/macbinary', + 'dms' => 'application/octet-stream', + 'lha' => 'application/octet-stream', + 'lzh' => 'application/octet-stream', + 'exe' => array('application/octet-stream', 'application/x-msdownload'), + 'class' => 'application/octet-stream', + 'psd' => 'application/x-photoshop', + 'so' => 'application/octet-stream', + 'sea' => 'application/octet-stream', + 'dll' => 'application/octet-stream', + 'oda' => 'application/oda', + 'pdf' => array('application/pdf', 'application/x-download'), + 'ai' => 'application/postscript', + 'eps' => 'application/postscript', + 'ps' => 'application/postscript', + 'smi' => 'application/smil', + 'smil' => 'application/smil', + 'mif' => 'application/vnd.mif', + 'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'), + 'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint'), + 'wbxml' => 'application/wbxml', + 'wmlc' => 'application/wmlc', + 'dcr' => 'application/x-director', + 'dir' => 'application/x-director', + 'dxr' => 'application/x-director', + 'dvi' => 'application/x-dvi', + 'gtar' => 'application/x-gtar', + 'gz' => 'application/x-gzip', + 'php' => 'application/x-httpd-php', + 'php4' => 'application/x-httpd-php', + 'php3' => 'application/x-httpd-php', + 'phtml' => 'application/x-httpd-php', + 'phps' => 'application/x-httpd-php-source', + 'js' => 'application/x-javascript', + 'swf' => 'application/x-shockwave-flash', + 'sit' => 'application/x-stuffit', + 'tar' => 'application/x-tar', + 'tgz' => array('application/x-tar', 'application/x-gzip-compressed'), + 'xhtml' => 'application/xhtml+xml', + 'xht' => 'application/xhtml+xml', + 'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed'), + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mpga' => 'audio/mpeg', + 'mp2' => 'audio/mpeg', + 'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'), + 'aif' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'ram' => 'audio/x-pn-realaudio', + 'rm' => 'audio/x-pn-realaudio', + 'rpm' => 'audio/x-pn-realaudio-plugin', + 'ra' => 'audio/x-realaudio', + 'rv' => 'video/vnd.rn-realvideo', + 'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'), + 'bmp' => array('image/bmp', 'image/x-windows-bmp'), + 'gif' => 'image/gif', + 'jpeg' => array('image/jpeg', 'image/pjpeg'), + 'jpg' => array('image/jpeg', 'image/pjpeg'), + 'jpe' => array('image/jpeg', 'image/pjpeg'), + 'png' => array('image/png', 'image/x-png'), + 'tiff' => 'image/tiff', + 'tif' => 'image/tiff', + 'css' => 'text/css', + 'html' => 'text/html', + 'htm' => 'text/html', + 'shtml' => 'text/html', + 'txt' => 'text/plain', + 'text' => 'text/plain', + 'log' => array('text/plain', 'text/x-log'), + 'rtx' => 'text/richtext', + 'rtf' => 'text/rtf', + 'xml' => 'text/xml', + 'xsl' => 'text/xml', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpe' => 'video/mpeg', + 'qt' => 'video/quicktime', + 'mov' => 'video/quicktime', + 'avi' => 'video/x-msvideo', + 'movie' => 'video/x-sgi-movie', + 'doc' => 'application/msword', + 'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'), + 'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'), + 'word' => array('application/msword', 'application/octet-stream'), + 'xl' => 'application/excel', + 'eml' => 'message/rfc822', + 'json' => array('application/json', 'text/json') + ); + + +/* End of file mimes.php */ +/* Location: ./application/config/mimes.php */ diff --git a/application/config/profiler.php b/application/config/profiler.php new file mode 100755 index 0000000..f8a5b1a --- /dev/null +++ b/application/config/profiler.php @@ -0,0 +1,17 @@ + array('grin.gif', '19', '19', 'grin'), + ':lol:' => array('lol.gif', '19', '19', 'LOL'), + ':cheese:' => array('cheese.gif', '19', '19', 'cheese'), + ':)' => array('smile.gif', '19', '19', 'smile'), + ';-)' => array('wink.gif', '19', '19', 'wink'), + ';)' => array('wink.gif', '19', '19', 'wink'), + ':smirk:' => array('smirk.gif', '19', '19', 'smirk'), + ':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'), + ':-S' => array('confused.gif', '19', '19', 'confused'), + ':wow:' => array('surprise.gif', '19', '19', 'surprised'), + ':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'), + ':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'), + '%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'), + ';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'), + ':P' => array('raspberry.gif', '19', '19', 'raspberry'), + ':blank:' => array('blank.gif', '19', '19', 'blank stare'), + ':long:' => array('longface.gif', '19', '19', 'long face'), + ':ohh:' => array('ohh.gif', '19', '19', 'ohh'), + ':grrr:' => array('grrr.gif', '19', '19', 'grrr'), + ':gulp:' => array('gulp.gif', '19', '19', 'gulp'), + '8-/' => array('ohoh.gif', '19', '19', 'oh oh'), + ':down:' => array('downer.gif', '19', '19', 'downer'), + ':red:' => array('embarrassed.gif', '19', '19', 'red face'), + ':sick:' => array('sick.gif', '19', '19', 'sick'), + ':shut:' => array('shuteye.gif', '19', '19', 'shut eye'), + ':-/' => array('hmm.gif', '19', '19', 'hmmm'), + '>:(' => array('mad.gif', '19', '19', 'mad'), + ':mad:' => array('mad.gif', '19', '19', 'mad'), + '>:-(' => array('angry.gif', '19', '19', 'angry'), + ':angry:' => array('angry.gif', '19', '19', 'angry'), + ':zip:' => array('zip.gif', '19', '19', 'zipper'), + ':kiss:' => array('kiss.gif', '19', '19', 'kiss'), + ':ahhh:' => array('shock.gif', '19', '19', 'shock'), + ':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'), + ':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'), + ':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'), + ':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'), + ':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'), + ':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'), + ':vampire:' => array('vampire.gif', '19', '19', 'vampire'), + ':snake:' => array('snake.gif', '19', '19', 'snake'), + ':exclaim:' => array('exclaim.gif', '19', '19', 'excaim'), + ':question:' => array('question.gif', '19', '19', 'question') // no comma after last item + + ); + +/* End of file smileys.php */ +/* Location: ./application/config/smileys.php */ \ No newline at end of file diff --git a/application/config/user_agents.php b/application/config/user_agents.php new file mode 100755 index 0000000..e2d3c3a --- /dev/null +++ b/application/config/user_agents.php @@ -0,0 +1,178 @@ + 'Windows Longhorn', + 'windows nt 5.2' => 'Windows 2003', + 'windows nt 5.0' => 'Windows 2000', + 'windows nt 5.1' => 'Windows XP', + 'windows nt 4.0' => 'Windows NT 4.0', + 'winnt4.0' => 'Windows NT 4.0', + 'winnt 4.0' => 'Windows NT', + 'winnt' => 'Windows NT', + 'windows 98' => 'Windows 98', + 'win98' => 'Windows 98', + 'windows 95' => 'Windows 95', + 'win95' => 'Windows 95', + 'windows' => 'Unknown Windows OS', + 'os x' => 'Mac OS X', + 'ppc mac' => 'Power PC Mac', + 'freebsd' => 'FreeBSD', + 'ppc' => 'Macintosh', + 'linux' => 'Linux', + 'debian' => 'Debian', + 'sunos' => 'Sun Solaris', + 'beos' => 'BeOS', + 'apachebench' => 'ApacheBench', + 'aix' => 'AIX', + 'irix' => 'Irix', + 'osf' => 'DEC OSF', + 'hp-ux' => 'HP-UX', + 'netbsd' => 'NetBSD', + 'bsdi' => 'BSDi', + 'openbsd' => 'OpenBSD', + 'gnu' => 'GNU/Linux', + 'unix' => 'Unknown Unix OS' + ); + + +// The order of this array should NOT be changed. Many browsers return +// multiple browser types so we want to identify the sub-type first. +$browsers = array( + 'Flock' => 'Flock', + 'Chrome' => 'Chrome', + 'Opera' => 'Opera', + 'MSIE' => 'Internet Explorer', + 'Internet Explorer' => 'Internet Explorer', + 'Shiira' => 'Shiira', + 'Firefox' => 'Firefox', + 'Chimera' => 'Chimera', + 'Phoenix' => 'Phoenix', + 'Firebird' => 'Firebird', + 'Camino' => 'Camino', + 'Netscape' => 'Netscape', + 'OmniWeb' => 'OmniWeb', + 'Safari' => 'Safari', + 'Mozilla' => 'Mozilla', + 'Konqueror' => 'Konqueror', + 'icab' => 'iCab', + 'Lynx' => 'Lynx', + 'Links' => 'Links', + 'hotjava' => 'HotJava', + 'amaya' => 'Amaya', + 'IBrowse' => 'IBrowse' + ); + +$mobiles = array( + // legacy array, old values commented out + 'mobileexplorer' => 'Mobile Explorer', +// 'openwave' => 'Open Wave', +// 'opera mini' => 'Opera Mini', +// 'operamini' => 'Opera Mini', +// 'elaine' => 'Palm', + 'palmsource' => 'Palm', +// 'digital paths' => 'Palm', +// 'avantgo' => 'Avantgo', +// 'xiino' => 'Xiino', + 'palmscape' => 'Palmscape', +// 'nokia' => 'Nokia', +// 'ericsson' => 'Ericsson', +// 'blackberry' => 'BlackBerry', +// 'motorola' => 'Motorola' + + // Phones and Manufacturers + 'motorola' => "Motorola", + 'nokia' => "Nokia", + 'palm' => "Palm", + 'iphone' => "Apple iPhone", + 'ipad' => "iPad", + 'ipod' => "Apple iPod Touch", + 'sony' => "Sony Ericsson", + 'ericsson' => "Sony Ericsson", + 'blackberry' => "BlackBerry", + 'cocoon' => "O2 Cocoon", + 'blazer' => "Treo", + 'lg' => "LG", + 'amoi' => "Amoi", + 'xda' => "XDA", + 'mda' => "MDA", + 'vario' => "Vario", + 'htc' => "HTC", + 'samsung' => "Samsung", + 'sharp' => "Sharp", + 'sie-' => "Siemens", + 'alcatel' => "Alcatel", + 'benq' => "BenQ", + 'ipaq' => "HP iPaq", + 'mot-' => "Motorola", + 'playstation portable' => "PlayStation Portable", + 'hiptop' => "Danger Hiptop", + 'nec-' => "NEC", + 'panasonic' => "Panasonic", + 'philips' => "Philips", + 'sagem' => "Sagem", + 'sanyo' => "Sanyo", + 'spv' => "SPV", + 'zte' => "ZTE", + 'sendo' => "Sendo", + + // Operating Systems + 'symbian' => "Symbian", + 'SymbianOS' => "SymbianOS", + 'elaine' => "Palm", + 'palm' => "Palm", + 'series60' => "Symbian S60", + 'windows ce' => "Windows CE", + + // Browsers + 'obigo' => "Obigo", + 'netfront' => "Netfront Browser", + 'openwave' => "Openwave Browser", + 'mobilexplorer' => "Mobile Explorer", + 'operamini' => "Opera Mini", + 'opera mini' => "Opera Mini", + + // Other + 'digital paths' => "Digital Paths", + 'avantgo' => "AvantGo", + 'xiino' => "Xiino", + 'novarra' => "Novarra Transcoder", + 'vodafone' => "Vodafone", + 'docomo' => "NTT DoCoMo", + 'o2' => "O2", + + // Fallback + 'mobile' => "Generic Mobile", + 'wireless' => "Generic Mobile", + 'j2me' => "Generic Mobile", + 'midp' => "Generic Mobile", + 'cldc' => "Generic Mobile", + 'up.link' => "Generic Mobile", + 'up.browser' => "Generic Mobile", + 'smartphone' => "Generic Mobile", + 'cellphone' => "Generic Mobile" + ); + +// There are hundreds of bots but these are the most common. +$robots = array( + 'googlebot' => 'Googlebot', + 'msnbot' => 'MSNBot', + 'slurp' => 'Inktomi Slurp', + 'yahoo' => 'Yahoo', + 'askjeeves' => 'AskJeeves', + 'fastcrawler' => 'FastCrawler', + 'infoseek' => 'InfoSeek Robot 1.0', + 'lycos' => 'Lycos' + ); + +/* End of file user_agents.php */ +/* Location: ./application/config/user_agents.php */ \ No newline at end of file diff --git a/application/controllers/TechnicalService.php b/application/controllers/TechnicalService.php new file mode 100755 index 0000000..cf94d36 --- /dev/null +++ b/application/controllers/TechnicalService.php @@ -0,0 +1,123 @@ +template->view('TechnicalService/dashboard_view'); + } + + public function new_service() + { + $this->template->view('TechnicalService/new_service_view'); + } + + public function list_services() + { + $this->template->view('TechnicalService/list_services_view'); + } + + public function view($service_id) + { + $data['service_id'] = $service_id; + + $this->template->view('TechnicalService/view_view', $data); + } + + public function service_status_management() + { + $this->template->view('TechnicalService/service_status_management_view'); + } + + public function service_type_management() + { + $this->template->view('TechnicalService/service_type_management_view'); + } + + public function brand_type_management() + { + $this->template->view('TechnicalService/brand_type_management_view'); + } + + public function options_print_service_form_1() + { + $this->template->view('TechnicalService/options_print_service_form_1_view'); + } + + public function options_print_service_form_2() + { + $this->template->view('TechnicalService/options_print_service_form_2_view'); + } + + public function print1($service_id) + { + $data['service_id'] = $service_id; + + $this->template->blank_view('TechnicalService/print1_view', $data); + } + + public function print2($service_id) + { + $data['service_id'] = $service_id; + + $this->template->blank_view('TechnicalService/print2_view', $data); + } + + + public function settings() + { + $this->template->view('TechnicalService/settings_view'); + } + + public function chart() + { + $this->template->view('TechnicalService/chart_view'); + } + + public function graphic_report() + { + $this->template->view('TechnicalService/graphic_report_view'); + } + + public function day_summary() + { + $this->template->view('TechnicalService/r_day_summary_view'); + } + + public function hourly_summary() + { + $this->template->view('TechnicalService/r_hourly_summary_view'); + } + + + public function chart_profit_or_loss() + { + $this->template->view('TechnicalService/chart_profit_or_loss_view'); + } + + public function chart_profit_or_loss_for_day() + { + $this->template->view('TechnicalService/chart_profit_or_loss_for_day_view'); + } + + public function chart_density_map() + { + $this->template->view('TechnicalService/chart_density_map_view'); + } + + public function list_guarantee() + { + $this->template->view('TechnicalService/list_guarantee_view'); + } + + + + public function sendsms() + { + + } + +} + + + diff --git a/application/controllers/account.php b/application/controllers/account.php new file mode 100755 index 0000000..d41ce29 --- /dev/null +++ b/application/controllers/account.php @@ -0,0 +1,43 @@ +template->view('account/dashboard_view'); + } + + public function new_account() + { + $this->template->view('account/new_account_view'); + } + + public function list_account() + { + $this->template->view('account/list_account_view'); + } + + public function get_account($account_id) + { + $data['account_id'] = $account_id; + $this->template->view('account/account_view', $data); + } + + + public function telephone_directory() + { + $this->template->view('account/telephone_directory_view'); + } + + public function options() + { + $this->template->view('account/options_view'); + } + + public function address_print($account_id) + { + $data['account_id'] = $account_id; + $this->load->view('account/address_print_view', $data); + } + +} diff --git a/application/controllers/car.php b/application/controllers/car.php new file mode 100755 index 0000000..20c5634 --- /dev/null +++ b/application/controllers/car.php @@ -0,0 +1,27 @@ +template->view('car/dashboard_view'); + } + + public function add_car() + { + $this->template->view('car/add_car_view'); + } + + public function list_cars() + { + $this->template->view('car/list_cars_view'); + } + + public function view($car_id) + { + $data['car_id'] = $car_id; + $this->template->view('car/car_view',$data); + } + + +} diff --git a/application/controllers/dashboard.php b/application/controllers/dashboard.php new file mode 100755 index 0000000..ec48d76 --- /dev/null +++ b/application/controllers/dashboard.php @@ -0,0 +1,27 @@ + + * @see http://codeigniter.com/user_guide/general/urls.html + */ + public function index() + { + $this->template->view('dashboard'); + } +} + +/* End of file welcome.php */ +/* Location: ./application/controllers/welcome.php */ \ No newline at end of file diff --git a/application/controllers/general.php b/application/controllers/general.php new file mode 100755 index 0000000..4b40f7f --- /dev/null +++ b/application/controllers/general.php @@ -0,0 +1,52 @@ + + + + + + + '; + $data['option_group'] = 'dashboard'; + $data['option_key'] = 'dashboard-note'; + $data['option_value'] = urldecode($text); + update_option($data); + } + + public function map($latitude, $longitude) + { + $data['latitude'] = $latitude; + $data['longitude'] = $longitude; + $this->load->view('system/map_view', $data); + } + + public function map_events($latitude, $longitude) + { + $data['latitude'] = $latitude; + $data['longitude'] = $longitude; + $this->load->view('system/map_events_view', $data); + } + + public function about() + { + $this->template->view('system/about_view'); + } + +} diff --git a/application/controllers/index.html b/application/controllers/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/controllers/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/controllers/invoice.php b/application/controllers/invoice.php new file mode 100755 index 0000000..fb73272 --- /dev/null +++ b/application/controllers/invoice.php @@ -0,0 +1,28 @@ +template->view('invoice/dashboard_view'); + } + + public function new_invoice() + { + $this->template->view('invoice/new_invoice_view'); + } + + public function view($invoice_id) + { + $data['invoice_id'] = $invoice_id; + $this->template->view('invoice/invoice_view', $data); + } + + public function invoice_list() + { + $this->template->view('invoice/invoice_list_view'); + } + + + +} diff --git a/application/controllers/payment.php b/application/controllers/payment.php new file mode 100755 index 0000000..c23ead8 --- /dev/null +++ b/application/controllers/payment.php @@ -0,0 +1,28 @@ +template->view('payment/dashboard_view'); + } + + + public function new_payment() + { + $this->template->view('payment/new_payment_view'); + } + + public function payment_list() + { + $this->template->view('payment/payment_list_view'); + } + + public function view($payment_id) + { + $data['invoice_id'] = $payment_id; + $this->template->view('payment/payment_view',$data); + } + + +} diff --git a/application/controllers/plugins.php b/application/controllers/plugins.php new file mode 100755 index 0000000..0b35bad --- /dev/null +++ b/application/controllers/plugins.php @@ -0,0 +1,10 @@ +template->view('plugins/dashboard_view'); + } + +} diff --git a/application/controllers/product.php b/application/controllers/product.php new file mode 100755 index 0000000..cbef932 --- /dev/null +++ b/application/controllers/product.php @@ -0,0 +1,31 @@ +template->view('product/dashboard_view'); + } + + public function new_product() + { + $this->template->view('product/new_product_view'); + } + + public function list_product() + { + $this->template->view('product/list_product_view'); + } + + public function get_product($product_id) + { + $data['product_id'] = $product_id; + $this->template->view('product/product_view', $data); + } + + public function options() + { + $this->template->view('product/options_view'); + } + +} diff --git a/application/controllers/project.php b/application/controllers/project.php new file mode 100755 index 0000000..72d9d41 --- /dev/null +++ b/application/controllers/project.php @@ -0,0 +1,203 @@ +template->view('project/dashboard_view'); + } + + public function new_address_card() + { + $this->template->view('project/new_address_card_view'); + } + + public function list_address_card() + { + $this->template->view('project/list_address_card_view'); + } + + public function get_address_card($account_id) + { + $data['account_id'] = $account_id; + $this->template->view('project/get_address_card_view', $data); + } + + public function add_project() + { + $this->template->view('project/add_project_view'); + } + + public function list_project() + { + $this->template->view('project/list_project_card_view'); + } + + public function get_project($project_id) + { + $data['project_id'] = $project_id; + $this->template->view('project/get_project_view', $data); + } + + public function menu_project() + { + $this->template->view('project/menu_project_view'); + } + + public function menu_location() + { + $this->template->view('project/menu_location_view'); + } + + public function job_description() + { + $this->template->view('project/job_description_view'); + } + + + // work order + public function menu_work_order() + { + $this->template->view('project/menu_order_view'); + } + + public function new_work_order() + { + $this->template->view('project/new_work_order_view'); + } + + public function list_work_orders() + { + $this->template->view('project/list_work_orders_view'); + } + + public function get_work_order($work_order_id) + { + $data['work_order_id'] = $work_order_id; + $this->template->view('project/get_work_order_view', $data); + } + + public function ajax_get_project_item($project_id) + { + $this->db->where('project_id', $project_id); + $this->db->where('status', 1); + $query = $this->db->get('p_project_jobs')->result_array(); + ?> + + + template->view('project/map_creation_view'); + } + + public function map_creation_show() + { + $this->load->view('project/map_creation_show_view'); + } + + public function get_product_serial($code) + { + $this->db->where('code', $code); + $query = $this->db->get('products')->row_array(); + + if($query) + { + ?> + + + + + + + + + + + + + + template->view('project/excel_new_locations_view'); + } + + + public function show_photos() + { + $this->template->view('project/show_photos_view'); + } + +} diff --git a/application/controllers/test.php b/application/controllers/test.php new file mode 100755 index 0000000..8dd3061 --- /dev/null +++ b/application/controllers/test.php @@ -0,0 +1,10 @@ +template->view('test/dashboard_view'); + } + +} diff --git a/application/controllers/user.php b/application/controllers/user.php new file mode 100755 index 0000000..f1e2cd9 --- /dev/null +++ b/application/controllers/user.php @@ -0,0 +1,93 @@ +load->view('login'); + } + + public function logout() + { + $this->session->set_userdata('login', false); + redirect(site_url()); + } + + public function user_list() + { + $this->template->view('user/user_list_view'); + } + + + + public function new_user() + { + $this->template->view('user/new_user_view'); + } + + public function get_user($user_id='') + { + if($user_id == ''){exit('no access');} + $data['user_id'] = $user_id; + $this->template->view('user/user_view',$data); + } + + + function no_access($role) + { + $data['role'] = $role; + $this->template->view('user/no_access', $data); + } + + + function new_message() + { + $this->template->view('user/messagebox/new_message_view'); + } + + function inbox($message_id='') + { + $data['message_id'] = $message_id; + $this->template->view('user/messagebox/inbox_view',$data); + } + + function outbox() + { + $this->template->view('user/messagebox/outbox_view'); + } + + function bulk_message() + { + $this->template->view('user/messagebox/bulk_view'); + } + + + function new_task() + { + $this->template->view('user/task/new_task_view'); + } + + function task($task_id='') + { + $data['task_id'] = $task_id; + $this->template->view('user/task/task_view',$data); + } + + function outbound_tasks() + { + $this->template->view('user/task/outbound_task_view'); + } + + function profile($user_id='') + { + $data['user_id'] = $user_id; + $this->template->view('user/profile_view',$data); + } + + +} diff --git a/application/core/index.html b/application/core/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/core/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/errors/error_404.php b/application/errors/error_404.php new file mode 100755 index 0000000..792726a --- /dev/null +++ b/application/errors/error_404.php @@ -0,0 +1,62 @@ + + + +404 Page Not Found + + + +
+

+ +
+ + \ No newline at end of file diff --git a/application/errors/error_db.php b/application/errors/error_db.php new file mode 100755 index 0000000..b396cda --- /dev/null +++ b/application/errors/error_db.php @@ -0,0 +1,62 @@ + + + +Database Error + + + +
+

+ +
+ + \ No newline at end of file diff --git a/application/errors/error_general.php b/application/errors/error_general.php new file mode 100755 index 0000000..fd63ce2 --- /dev/null +++ b/application/errors/error_general.php @@ -0,0 +1,62 @@ + + + +Error + + + +
+

+ +
+ + \ No newline at end of file diff --git a/application/errors/error_php.php b/application/errors/error_php.php new file mode 100755 index 0000000..f085c20 --- /dev/null +++ b/application/errors/error_php.php @@ -0,0 +1,10 @@ +
+ +

A PHP Error was encountered

+ +

Severity:

+

Message:

+

Filename:

+

Line Number:

+ +
\ No newline at end of file diff --git a/application/errors/index.html b/application/errors/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/errors/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/helpers/account_helper.php b/application/helpers/account_helper.php new file mode 100755 index 0000000..9595178 --- /dev/null +++ b/application/helpers/account_helper.php @@ -0,0 +1,171 @@ +db->where('status', '1'); + $ci->db->where('code', $code); + if($account_id > 0) {$ci->db->where_not_in('id', $account_id);} + $query = $ci->db->get('accounts')->row_array(); + if($query) + { + return $query['id']; + } + else + { + return false; + } +} + + + +function add_account($data) +{ + $ci =& get_instance(); + + $ci->db->insert('accounts', $data); + return $account_id = $ci->db->insert_id(); +} + + +function update_account($id, $data) +{ + $ci =& get_instance(); + + $ci->db->where('id', $id); + $ci->db->update('accounts', $data); + + if($ci->db->affected_rows() > 0) + { + return 1; + } + else + { + return 0; + } +} + +function get_account($data) +{ + $ci =& get_instance(); + + if(is_array($data)) { $ci->db->where($data); }else { $ci->db->where('id', $data); } + return $query = $ci->db->get('accounts')->row_array(); +} + + +function get_account_balance($balance) +{ + $options['who_can_see_account_balance'] = get_option(array('option_group'=>'account', 'option_key'=>'who_can_see_account_balance')); + + if(get_the_current_user('role') > $options['who_can_see_account_balance']['option_value']) + { + return get_money(0); + } + else + { + return get_money($balance); + } +} + + +function get_account_list($data='') +{ + $ci =& get_instance(); + + $ci->db->where('status', 1); + $query = $ci->db->get('accounts')->result_array(); + + ?> + + + + + + + + + + + + + + + + + + + + + + + +
+ ' + data-account_code='' + data-account_name='' + data-account_name_surname='' + data-account_balance='' + data-account_phone='' + data-account_gsm='' + data-account_email='' + data-account_address='' + data-account_city='' + data-account_county='' + > + +
+ + + db->get('accounts')->result_array(); + $i = 0; + while($i < 100000) + { + if(!isset($accounts_query[$i])) + { + $i = 100000; + } + else + { + $accounts[$accounts_query[$i]['id']] = $accounts_query[$i]; + } + $i++; + } + + return @$accounts; +} + +?> \ No newline at end of file diff --git a/application/helpers/car_helper.php b/application/helpers/car_helper.php new file mode 100755 index 0000000..e1d463f --- /dev/null +++ b/application/helpers/car_helper.php @@ -0,0 +1,28 @@ +db->where('id', $car_id); + return $query = $ci->db->get('p_cars')->row_array(); +} + + +function add_car_item($array) +{ + $ci =& get_instance(); + $ci->db->insert('p_car_items', $array); + return $ci->db->insert_id(); +} + +function get_car_item($item_id) +{ + $ci =& get_instance(); + + $ci->db->where('id', $item_id); + return $query = $ci->db->get('p_car_items')->row_array(); +} + + +?> \ No newline at end of file diff --git a/application/helpers/global_helper.php b/application/helpers/global_helper.php new file mode 100755 index 0000000..acd6b22 --- /dev/null +++ b/application/helpers/global_helper.php @@ -0,0 +1,164 @@ + +
+ +

+

+
+ db->where('option_group', $data['option_group']); } + $ci->db->where('option_key', $data['option_key']); + $ci->db->delete('options'); + + if(!isset($data['option_value2'])){$data['option_value2'] = '';} + if(!isset($data['option_value3'])){$data['option_value3'] = '';} + + $ci->db->insert('options', $data); +} + +function get_option($data) +{ + $ci =& get_instance(); + + if(isset($data['option_group'])){$ci->db->where('option_group', $data['option_group']);} + $ci->db->where('option_key', $data['option_key']); + $query = $ci->db->get('options')->row_array(); + if($query) + { + return $query; + } + else + { + return false; + } +} + + + + + + +function get_barcode($text) +{ + return base_url('plugins/barcode/barcode.php?text='.$text); +} + +function get_print_barcode($text) +{ + return site_url('general/barcode/'.replace_text_for_utf8(strtolower($text))); +} + + + +function replace_text_for_utf8($text) { + $text = trim($text); + $search = array('Ç','ç','Ğ','ğ','ı','İ','Ö','ö','Ş','ş','Ü','ü',' '); + $replace = array('c','c','g','g','i','i','o','o','s','s','u','u','-'); + $new_text = str_replace($search,$replace,$text); + return $new_text; +} + + +function get_money($value) +{ + return number_format($value,2, '.', ''); +} + + + + +function add_date_time($date, $number, $type) +{ + $date = explode('-', $date); + + if($type=='d') + { + return date("Y-m-d", mktime(0, 0, 0, $date[1], $date[2]+$number, $date[0])); + } + else if($type=='m') + { + return date("Y-m-d", mktime(0, 0, 0, $date[1]+$number, $date[2], $date[0])); + } + else if($type=='Y') + { + return date("Y-m-d", mktime(0, 0, 0, $date[1], $date[2], $date[0]+$number)); + } +} + + + + +function days_left($date) +{ + $date1 = strtotime(date('Y-m-d')); + $date2 = strtotime(substr($date,0,10)); + $day = ($date1-$date2)/86400 ; + return str_replace('-', '', round($day)); +} + + + +function hours_left($date) +{ + $date1 = strtotime(date('Y-m-d H:i:s')); + $date2 = strtotime($date); + $day = ($date2-$date1)/3600 ; + return str_replace('', '', round($day)); +} + + + +function days_late($date) +{ + $date1 = strtotime(date('Y-m-d H:i:s')); + $date2 = strtotime($date); + $day = (($date1-$date2)/3600)/24 ; + return str_replace('', '', round($day)); +} + + + +function excel_reader($inputFileName) +{ + /** PHPExcel_IOFactory */ + include 'plugins/excel_reader/Classes/PHPExcel/IOFactory.php'; + + + //echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory to identify the format
'; + try { + $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); + } catch(Exception $e) { + die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); + } + + return $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); +} + +?> \ No newline at end of file diff --git a/application/helpers/index.html b/application/helpers/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/helpers/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/helpers/invoice_helper.php b/application/helpers/invoice_helper.php new file mode 100755 index 0000000..67160ba --- /dev/null +++ b/application/helpers/invoice_helper.php @@ -0,0 +1,217 @@ +db->insert('invoices', $data); + $insert_id = $ci->db->insert_id(); + + return $insert_id; +} + +function update_invoice($data) +{ + $ci=& get_instance(); + + $ci->db->where('id', $data['id']); + $ci->db->update('invoices', $data); + + if($ci->db->affected_rows() > 0) + { + return 1; + } + else + { + return 0; + } +} + + +function get_invoice($invoice_id) +{ + $ci =& get_instance(); + + $ci->db->where('id', $invoice_id); + return $query = $ci->db->get('invoices')->row_array(); +} + +function get_invoice_item($item_id, $data='') +{ + $ci =& get_instance(); + + $ci->db->where('id', $item_id); + if(is_array($data)) + { + $ci->db->where($data); + } + $query = $ci->db->get('invoice_items')->row_array(); + + if($query) + { + return $query; + } + else + { + return 0; + } +} + + +function add_item($data) +{ + $ci =& get_instance(); + + $invoice = get_invoice($data['invoice_id']); + + if(!isset($data['type'])) { $data['type'] = 'invoice'; } + + $data['date'] = date('Y-m-d H:i:s'); + $data['account_id'] = $invoice['account_id']; + $data['user_id'] = get_the_current_user('id'); + $data['in_out'] = $invoice['in_out']; + + if(!isset($data['total'])){ $data['total'] = $data['quantity'] * $data['quantity_price'];} + + $ci->db->insert('invoice_items', $data); + $insert_id = $ci->db->insert_id(); + + return $insert_id; +} + +function update_invoice_item($data) +{ + $ci =& get_instance(); + + $invoice = get_invoice($data['invoice_id']); + + $data['account_id'] = $invoice['account_id']; + $data['in_out'] = $invoice['in_out']; + + $ci->db->where('id', $data['id']); + $ci->db->update('invoice_items', $data); + if($ci->db->affected_rows() >0) + { + return 1; + } + else + { + return 0; + } +} + + +function calc_invoice_items($invoice_id) +{ + $invoice = get_invoice($invoice_id); + + $ci =& get_instance(); + //total + $ci->db->where('status', 1); + $ci->db->where('invoice_id', $invoice_id); + $ci->db->select_sum('total'); + $total = $ci->db->get('invoice_items')->row_array(); + //tax + $ci->db->where('status', 1); + $ci->db->where('invoice_id', $invoice_id); + $ci->db->select_sum('tax'); + $tax = $ci->db->get('invoice_items')->row_array(); + //sub_total + $ci->db->where('status', 1); + $ci->db->where('invoice_id', $invoice_id); + $ci->db->select_sum('sub_total'); + $sub_total = $ci->db->get('invoice_items')->row_array(); + //sub_total + $ci->db->where('status', 1); + $ci->db->where('invoice_id', $invoice_id); + $ci->db->select_sum('quantity'); + $quantity = $ci->db->get('invoice_items')->row_array(); + + $ci->db->where('id', $invoice_id); + if($invoice['in_out'] == 0) + { + $ci->db->update('invoices', array( + 'total'=>'-'.$total['total'], + 'tax'=>'-'.$tax['tax'], + 'grand_total'=>'-'.$sub_total['sub_total'], + 'quantity'=>$quantity['quantity'] + )); + } + else + { + $ci->db->update('invoices', array( + 'total'=>$total['total'], + 'tax'=>$tax['tax'], + 'grand_total'=>$sub_total['sub_total'], + 'quantity'=>$quantity['quantity'] + )); + } +} + + +function calc_account_balance($account_id) +{ + $ci =& get_instance(); + + $ci->db->where('status', 1); + $ci->db->where('account_id', $account_id); + $ci->db->select_sum('grand_total'); + $grand_total = $ci->db->get('invoices')->row_array(); + + $ci->db->where('id', $account_id); + $ci->db->update('accounts', array('balance'=>$grand_total['grand_total'])); +} + + +function get_text_in_out($in_out) +{ + if($in_out == 0) + { + return get_lang('input'); + } + elseif($in_out == 1) + { + return get_lang('output'); + } + else + { + return get_lang('Error!'); + } +} + + +function change_status_invoice($invoice_id, $data) +{ + $ci =& get_instance(); + $continue = true; + + if($data['status'] == 0){} + else if($data['status'] == 1){} + else{$continue = false;} + + if($continue == true) + { + $ci->db->where('id', $invoice_id); + $ci->db->update('invoices', array('status'=>$_GET['status'])); + + $ci->db->where('invoice_id', $invoice_id); + $ci->db->update('invoice_items', array('status'=>$_GET['status'])); + } + + $ci->db->where('invoice_id', $invoice_id); + $items = $ci->db->get('invoice_items')->result_array(); + foreach($items as $item) + { + calc_product($item['product_id']); + + $ci->db->where('id', $item['product_serial_id']); + $ci->db->update('product_serials', array('invoice_id'=>'')); + } +} + +?> \ No newline at end of file diff --git a/application/helpers/lang_helper.php b/application/helpers/lang_helper.php new file mode 100755 index 0000000..5de32b2 --- /dev/null +++ b/application/helpers/lang_helper.php @@ -0,0 +1,691 @@ + \ No newline at end of file diff --git a/application/helpers/product_helper.php b/application/helpers/product_helper.php new file mode 100755 index 0000000..90728d6 --- /dev/null +++ b/application/helpers/product_helper.php @@ -0,0 +1,261 @@ +db->where('status', '1'); + $ci->db->where('code', $code); + $query = $ci->db->get('products')->row_array(); + + if($query) + { + return $query['id']; + } + else + { + return false; + } +} + + +function add_product($data) +{ + $ci =& get_instance(); + $data['tax'] = $data['sale_price'] - ($data['sale_price'] / ('1.'.$data['tax_rate'])); + + + $data['price'] = $data['sale_price']; + $data['sale_price'] = $data['sale_price'] - $data['tax']; + + // Have barcode? + $ci->db->where('code', $data['code']); + $ci->db->where('status', '1'); + $query = $ci->db->get('products')->result_array(); + + if($query) + { + return 'There barcode code'; + return false; + } + + + // add product card + $ci->db->insert('products', $data); + return $ci->db->insert_id(); +} + + + + +function update_product($id, $data) +{ + $ci =& get_instance(); + + $data['tax'] = $data['sale_price'] * '0.'.$data['tax_rate']; + + $ci->db->where('id', $id); + $ci->db->update('products', $data); + + return true; +} + + + + + + +function get_product($data) +{ + $ci =& get_instance(); + + if(is_array($data)){$ci->db->where($data);} + else{$ci->db->where('id', $data);} + return $query = $ci->db->get('products')->row_array(); +} + + +function get_cost_price($cost_price) +{ + $options['who_can_see_cost_price'] = get_option(array('option_group'=>'product', 'option_key'=>'who_can_see_cost_price')); + if(get_the_current_user('role') > $options['who_can_see_cost_price']['option_value']) + { + return get_money('0'); + } + else + { + return get_money($cost_price); + } +} + + + +function calc_product($product_id) +{ + $ci =& get_instance(); + + $ci->db->where('product_id', $product_id); + $ci->db->where('status', 1); + $items = $ci->db->get('invoice_items')->result_array(); + + $i = 0; + $amount=0; + while($i < 1000000000) + { + if(isset($items[$i])) + { + $item = $items[$i]; + if($item['in_out'] == '1') + { + $amount = $amount - $item['quantity']; + //echo '-'.$amount; + } + else + { + $amount = $amount + $item['quantity']; + //echo '+'.$amount; + } + } + else + { + $i=1000000000; + } + $i++; + } + + $ci->db->where('id', $product_id); + $ci->db->update('products', array('amount'=>$amount)); +} + + +function get_product_amount($amount) +{ + return number_format($amount, 0); +} + + + +function get_product_list($data='') +{ + $ci =& get_instance(); + + $ci->db->where('status', 1); + $query = $ci->db->get('products')->result_array(); + + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ' + data-product_code='' + data-product_name='' + data-product_cost_price='' + data-product_sale_price='' + data-product_tax_rate='' + data-product_tax='' + data-product_price='' + data-product_amount='' + data-serial='' + > + + 0) : ?>%()
+ + + db->insert('product_serials',$array); + return $query = $ci->db->insert_id(); + } + +} + + +function get_product_serial_number($array) +{ + $ci =& get_instance(); + $ci->db->where($array); + $query = $ci->db->get('product_serials')->row_array(); + if($query) + { + return $query; + } + else + { + return 0; + } +} + + + +?> \ No newline at end of file diff --git a/application/helpers/project_helper.php b/application/helpers/project_helper.php new file mode 100755 index 0000000..7b2e351 --- /dev/null +++ b/application/helpers/project_helper.php @@ -0,0 +1,338 @@ +db->where('id', $account_id); + $query = $ci->db->get('p_p_locations')->row_array(); + return $query; +} + +function get_p_project_card($project_id) +{ + $ci =& get_instance(); + + $ci->db->where('id', $project_id); + $query = $ci->db->get('p_projects')->row_array(); + return $query; +} + +function get_p_project_job($job_id) +{ + $ci =& get_instance(); + + $ci->db->where('id', $job_id); + $query = $ci->db->get('p_project_jobs')->row_array(); + return $query; +} + +function get_p_work_order($work_order_id) +{ + $ci =& get_instance(); + + $ci->db->where('id', $work_order_id); + $query = $ci->db->get('p_p_orders')->row_array(); + return $query; +} + + +function get_p_project_cards() +{ + $ci =& get_instance(); + $projects = array(); + $query = $ci->db->get('p_projects')->result_array(); + $i = 0; + while($i < 100000) + { + if(!isset($query[$i])) + { + $i = 100000; + } + else + { + $projects[$query[$i]['id']] = $query[$i]; + } + $i++; + } + + return $projects; +} + +function get_p_project_card_list_for_array() +{ + $ci =& get_instance(); + $projects = array(); + $query = $ci->db->get('p_projects')->result_array(); + $i = 0; + while($i < 100000) + { + if(!isset($query[$i])) + { + $i = 100000; + } + else + { + $projects[$query[$i]['id']] = $query[$i]; + } + $i++; + } + + return $projects; +} + + +function get_p_location_card_list_for_array() +{ + $ci =& get_instance(); + $locations = array(); + $query = $ci->db->get('p_p_locations')->result_array(); + $i = 0; + while($i < 100000) + { + if(!isset($query[$i])) + { + $i = 100000; + } + else + { + $locations[$query[$i]['id']] = $query[$i]; + } + $i++; + } + + return $locations; +} + + + + +function get_project_list($data='') +{ + $ci =& get_instance(); + + $accounts = get_account_list_for_array(); + + $ci->db->where('status', 1); + $query = $ci->db->get('p_projects')->result_array(); + + ?> + + + + + + + + + + + + + + + + + + + + + + + +
+ ' + data-project_name='' + data-project_code='' + data-project_support_status='' + data-project_price='' + data-project_mileage_price='' + > + + + + + +
+ + + db->where('status', 1); + $locations = $ci->db->get('p_p_locations')->result_array(); + + ?> + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ' + data-location_name='' + data-location_project_id='' + > + +
+ + + db->insert('p_p_order_items', $data); + $insert_id = $ci->db->insert_id(); + + return $insert_id; +} + + +function delete_work_order_item($data) +{ + $ci =& get_instance(); + + $ci->db->where('id', $data['item_id']); + $ci->db->update('p_p_order_items', array('status'=>'0')); + + return $ci->db->affected_rows(); +} + + +function calc_order_items($work_order_id) +{ + $work_order = get_p_work_order($work_order_id); + + $ci =& get_instance(); + //total + $ci->db->where('status', 1); + $ci->db->where('work_order_id', $work_order_id); + $ci->db->select_sum('total'); + $total = $ci->db->get('p_p_order_items')->row_array(); + //tax + $ci->db->where('status', 1); + $ci->db->where('work_order_id', $work_order_id); + $ci->db->select_sum('tax'); + $tax = $ci->db->get('p_p_order_items')->row_array(); + //sub_total + $ci->db->where('status', 1); + $ci->db->where('work_order_id', $work_order_id); + $ci->db->select_sum('sub_total'); + $sub_total = $ci->db->get('p_p_order_items')->row_array(); + + + $ci->db->where('id', $work_order_id); + $ci->db->update('p_p_orders', array( + 'total'=>$total['total'], + 'tax'=>$tax['tax'], + 'grand_total'=>$sub_total['sub_total'] + )); +} + + +function p_order_fine($work_order_id) +{ + $ci =& get_instance(); + + $work_order = get_p_work_order($work_order_id); + + if($work_order['order_status'] != 'complete' and $work_order['criminal_status'] == '1' and $work_order['custom_criminal_status'] == '0') + { + $work_order['hours'] = hours_left($work_order['end_date']); + $ci->db->where('id', $work_order_id); + $ci->db->update('p_p_orders', array('hours'=>$work_order['hours'])); + + if($work_order['hours'] < 0) + { + $fine = $work_order['hourly_fines'] * str_replace('-', '', $work_order['hours']); + $ci->db->where('id', $work_order_id); + $ci->db->update('p_p_orders', array('fine'=>$fine)); + } + } + + if($work_order['custom_criminal_status'] == '1') + { + $fine = '0'; + $ci->db->where('id', $work_order_id); + $ci->db->update('p_p_orders', array('fine'=>$fine)); + } +} + + + +?> \ No newline at end of file diff --git a/application/helpers/service_helper.php b/application/helpers/service_helper.php new file mode 100755 index 0000000..9618e62 --- /dev/null +++ b/application/helpers/service_helper.php @@ -0,0 +1,172 @@ +db->where('id', $id); + $query = $ci->db->get('tec_services')->row_array(); + return $query; +} + +function add_service($data) +{ + $ci =& get_instance(); + + $ci->db->insert('tec_services', $data); + return $ci->db->insert_id(); +} + +function update_service($servie_id, $data) +{ + $ci =& get_instance(); + + $ci->db->where('id', $servie_id); + $ci->db->update('tec_services', $data); + if($ci->db->affected_rows() > 0) + { + return 1; + } + else + { + return 0; + } +} + +function get_tec_types($array, $order_by='') +{ + $ci =& get_instance(); + + $ci->db->where($array); + if($order_by != ''){ $ci->db->order_by('name', $order_by); } + return $ci->db->get('tec_type')->result_array(); +} + + +function get_tec_type_for_array() +{ + $ci =& get_instance(); + $tec_types = $ci->db->get('tec_type')->result_array(); + $i = 0; + while($i < 100000) + { + if(!isset($tec_types[$i])) + { + $i = 100000; + } + else + { + $return[$tec_types[$i]['id']] = $tec_types[$i]; + } + $i++; + } + + $return[0]['name'] = get_lang('OTHER'); + $return[-1]['name'] = get_lang('COMPLETED'); + + return $return; +} + + + + +function calc_sercice_status($type_id) +{ + $ci =& get_instance(); + $ci->db->where('status', 1); + if($type_id == -2) + { + $ci->db->where('service_status_id', -1); + $ci->db->where('delivery', 1); + } + else + { + $ci->db->where('delivery', 0); + $ci->db->where('service_status_id', $type_id); + } + return $query = $ci->db->get('tec_services')->num_rows(); +} + + + +function calc_service_items($service_id) +{ + $service = get_service($service_id); + + $ci =& get_instance(); + //total + $ci->db->where('status', 1); + $ci->db->where('service_id', $service_id); + $ci->db->select_sum('total'); + $total = $ci->db->get('tec_service_items')->row_array(); + //tax + $ci->db->where('status', 1); + $ci->db->where('service_id', $service_id); + $ci->db->select_sum('tax'); + $tax = $ci->db->get('tec_service_items')->row_array(); + //sub_total + $ci->db->where('status', 1); + $ci->db->where('service_id', $service_id); + $ci->db->select_sum('sub_total'); + $sub_total = $ci->db->get('tec_service_items')->row_array(); + + $sub_total['sub_total'] = $service['workmanship'] + $sub_total['sub_total']; + + + // cost + $ci->db->where('status', '1'); + $ci->db->select_sum('cost_price'); + $ci->db->where('service_id', $service_id); + $cost = $ci->db->get('tec_service_items')->row_array(); + $cost = $cost['cost_price'] + $service['expenses']; + + $ci->db->where('id', $service_id); + $ci->db->update('tec_services', array( + 'total'=>$total['total'], + 'tax'=>$tax['tax'], + 'grand_total'=>$sub_total['sub_total'], + 'balance'=>($sub_total['sub_total'] - $service['payment']), + 'cost'=>$cost, + 'profit'=>($sub_total['sub_total'] - $cost) + )); + + +} + + +function delete_service_item($data) +{ + $ci =& get_instance(); + + $ci->db->where('id', $data['item_id']); + $ci->db->update('tec_service_items', array('status'=>'0')); + + return $ci->db->affected_rows(); +} + + +function get_service_item($data) +{ + $ci =& get_instance(); + $ci->db->where($data); + $query = $ci->db->get('tec_service_items')->row_array(); + return $query; +} + + +function calc_warranty_date($date) +{ + $date1 = strtotime(date('Y-m-d')); + $date2 = strtotime($date); + $day = (($date2-$date1)/3600)/24 ; + return str_replace('', '', round($day)); +} + + +function service_send_mail($email) +{ + +} + + +?> \ No newline at end of file diff --git a/application/helpers/user_helper.php b/application/helpers/user_helper.php new file mode 100755 index 0000000..2abbc71 --- /dev/null +++ b/application/helpers/user_helper.php @@ -0,0 +1,392 @@ +db->where('status', '1'); + $ci->db->where('email', $data['email']); + $query = $ci->db->get('users')->result_array(); + if($query) + { + return get_lang('E-mail address is registered.'); + return false; + } + + + // add user card + $ci->db->insert('users', array( + 'email'=>$data['email'], + 'name'=>$data['name'], + 'surname'=>$data['surname'], + 'password'=>md5($data['password']), + 'role'=>$data['role'] + )); + return $ci->db->insert_id(); +} + +function update_user($user_id, $data) +{ + $ci =& get_instance(); + $array = array(); + + $ci->db->where('id', $user_id); + $ci->db->update('users', $data); + return true; +} + + + + +function get_user($data) +{ + $ci =& get_instance(); + + if(isset($data['id'])){$ci->db->where('id', $data['id']);} + if(isset($data['email'])){$ci->db->where('email', $data['email']);} + $query = $ci->db->get('users')->row_array(); + if($query) + { + $query['display_name'] = $query['name'].' '.$query['surname']; + $query['barcode'] = $query['id']; + return $query; + } + else{return false;} +} + + +function get_role_name($role) +{ + if($role == 5){ $user['role_name'] = get_lang('Staff'); } + else if($role == 4){ $user['role_name'] = get_lang('Authorized Personnel'); } + else if($role == 3){ $user['role_name'] = get_lang('Chief'); } + else if($role == 2){ $user['role_name'] = get_lang('Admin'); } + else if($role == 1){ $user['role_name'] = get_lang('Super Admin'); } + return $user['role_name']; +} + + + + +function get_the_current_user($data) +{ + $ci =& get_instance(); + $user = $ci->session->userdata('user'); + return $user[$data]; +} + +function the_current_user($data) +{ + echo get_the_current_user($data); +} + + + +function add_log($data) +{ + $ci =& get_instance(); + $data['user_id'] = get_the_current_user('id'); + if(isset($_POST['log_time'])) + { + $data['date'] = $_POST['log_time']; + } + elseif(!isset($data['date'])){$data['date'] = date("Y-m-d H:i:s"); } + + $data['ip'] = $ci->input->ip_address(); + $data['browser'] = $ci->agent->browser(); + $data['platform'] = $ci->agent->platform(); + + $ci->db->insert('user_logs', $data); +} + +function is_log() +{ + $ci =& get_instance(); + + $ci->db->where('date', $_POST['log_time']); + if(isset($_POST['log_type'])) { $ci->db->where('type', $_POST['log_type']); } + $ci->db->where('user_id', get_the_current_user('id')); + $query = $ci->db->get('user_logs')->result_array(); + if($query){ return false; } else {return true; } +} + + +function get_log_table($data, $order_by='ASC', $array=array()) +{ + $ci =& get_instance(); + + if(!isset($array['type'])){$array['type'] = true;} + if(!isset($array['user'])){$array['user'] = true;} + if(!isset($array['invoice_id'])){$array['invoice_id'] = true;} + ?> + + + + input->post('log_time'); + $log['type'] = 'user_reviews'; + $log['title'] = get_lang('User Reviews'); + $log['description'] = $ci->input->post('description'); + $log['user_id'] = get_the_current_user('id'); + + if(isset($data['other_id'])) { $log['other_id'] = $data['other_id']; } + if(isset($data['invoice_id'])) { $log['invoice_id'] = $data['invoice_id']; } + if(isset($data['product_id'])) { $log['product_id'] = $data['product_id']; } + if(isset($data['account_id'])) { $log['account_id'] = $data['account_id']; } + + add_log($log); + } + + if(isset($_POST['add_log_user_reviews'])) + { + ?> + + + +
+
+
+
+ +
+ + +
+
+
+
+
+ " /> + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + db->where($data); + $ci->db->order_by('id', $order_by); + $query = $ci->db->get('user_logs')->result_array(); + foreach($query as $log): + ?> + + + + + + + + + + + +
0):?>#
+ db->where('status', 1); + $query = $ci->db->get('users')->result_array(); + + ?> + + + + + + + + + + + + + + + + + + + +
+ ' + data-display_name=''> + +
+ + + db->where('top_id', $data['top_id']); + $ci->db->update('user_mess', array('inbox_view'=>'0')); + + $ci->db->where('id', $data['top_id']); + $ci->db->update('user_mess', array('inbox_view'=>'0', 'recent_activity'=>$data['recent_activity'])); + } + + $ci->db->insert('user_mess', $data); + return $ci->db->insert_id(); +} + +function calc_inbox() +{ + $ci =& get_instance(); + $ci->db->where('status', 1); + $ci->db->where_in('type', array('message','reply_message')); + $ci->db->where('inbox_view', '1'); + $ci->db->where('receiver_id', get_the_current_user('id')); + $ci->db->where('read', '['.get_the_current_user('id').']'); + $query = $ci->db->get('user_mess')->num_rows(); + + return $query; +} + + +function get_user_array() +{ + $i=0; + $ci =& get_instance(); + $query = $ci->db->get('users')->result_array(); + while($i < 10000) + { + if(isset($query[$i])) + { + if($query[$i]['avatar'] == ''){$query[$i]['avatar'] = 'theme/img/avatar.png';} + $data[$query[$i]['id']] = $query[$i]; + } + else + { + return $data; + $i = 10000; + } + $i++; + } +} + + + + +function add_task($data) +{ + $ci =& get_instance(); + $data['recent_activity'] = date("Y-m-d H:i:s"); + if(!isset($data['date'])){$data['date'] = date("Y-m-d H:i:s");} + if(!isset($data['type'])){$data['type'] = 'task';} + if(!isset($data['sender_id'])){$data['sender_id'] = get_the_current_user('id');} + if(!isset($data['read'])){$data['read'] = '['.$data['receiver_id'].']';} + + if($data['type'] == 'reply_task') + { + $data['title'] = 'RE: '.$data['title']; + + $ci->db->where('top_id', $data['top_id']); + $ci->db->update('user_mess', array('inbox_view'=>'0')); + + $ci->db->where('id', $data['top_id']); + $query = $ci->db->get('user_mess')->row_array(); + + // top_id recent activty date updated + $ci->db->where('id', $data['top_id']); + $ci->db->update('user_mess', array('recent_activity'=>$data['recent_activity'])); + + + if($query['sender_id'] == get_the_current_user('id')) + { + // top_id recent activty date updated + $ci->db->where('id', $data['top_id']); + $ci->db->update('user_mess', array('inbox_view'=>'0', 'recent_activity'=>$data['recent_activity'])); + } + } + + $data['recent_activity'] = date("Y-m-d H:i:s"); + $ci->db->insert('user_mess', $data); + return $ci->db->insert_id(); +} + + +function calc_task() +{ + $ci =& get_instance(); + $ci->db->where('status', 1); + $ci->db->where_in('type', array('task','reply_task')); + $ci->db->where('inbox_view', '1'); + $ci->db->where('receiver_id', get_the_current_user('id')); + $ci->db->where('read', '['.get_the_current_user('id').']'); + $query = $ci->db->get('user_mess')->num_rows(); + + return $query; +} + + + + + +?> \ No newline at end of file diff --git a/application/hooks/index.html b/application/hooks/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/hooks/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/index.html b/application/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/language/english/index.html b/application/language/english/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/language/english/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/libraries/index.html b/application/libraries/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/libraries/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/libraries/template.php b/application/libraries/template.php new file mode 100755 index 0000000..8ddd7fb --- /dev/null +++ b/application/libraries/template.php @@ -0,0 +1,26 @@ +load->view('inc/header', $data); + $ci->load->view($view, $data); + $ci->load->view('inc/footer', $data); + } + + public function blank_view($view, $data='') + { + $ci = & get_instance(); + + $ci->load->view('inc/blank_header', $data); + $ci->load->view($view, $data); + $ci->load->view('inc/blank_footer', $data); + } +} +?> \ No newline at end of file diff --git a/application/logs/index.html b/application/logs/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/logs/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/models/index.html b/application/models/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/models/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/third_party/index.html b/application/third_party/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/third_party/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/views/account/account_view.php b/application/views/account/account_view.php new file mode 100755 index 0000000..e152cbc --- /dev/null +++ b/application/views/account/account_view.php @@ -0,0 +1,378 @@ + +$account_id)); ?> + + + + +db->where('id', $account['id']); + $this->db->update('accounts', array('status'=>$_GET['status'])); +} +?> + + + +$account_id)); ?> + + + + + + + +
+ + + +
+ + + + + +
+
+
+ +$account_id)); + + +if(isset($_POST['update']) and is_log()) +{ + $continue = true; + $this->form_validation->set_rules('code', get_lang('Account Code'), 'min_length[3]|max_length[30]'); + $this->form_validation->set_rules('name', get_lang('Account Name'), 'required|min_length[3]|max_length[30]'); + $this->form_validation->set_rules('balance', get_lang('Balance'), 'numeric|max_length[10]'); + $this->form_validation->set_rules('phone', get_lang('Phone'), 'integer|max_length[20]'); + $this->form_validation->set_rules('gsm', get_lang('Gsm'), 'integer|max_length[20]'); + $this->form_validation->set_rules('email', get_lang('E-mail'), 'email|max_length[50]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $account['code'] = replace_text_for_utf8($this->input->post('code')); + $account['name'] = $this->input->post('name'); + $account['name_surname'] = $this->input->post('name_surname'); + $account['balance'] = $account['balance']; + $account['phone'] = $this->input->post('phone'); + $account['gsm'] = $this->input->post('gsm'); + $account['email'] = $this->input->post('email'); + $account['address'] = $this->input->post('address'); + $account['county'] = $this->input->post('county'); + $account['city'] = $this->input->post('city'); + $account['description'] = $this->input->post('description'); + + // if the barcode is empty, auto-create + if($account['code'] == '') + { + $account['code'] = replace_text_for_utf8($this->input->post('name')); + + // Have barcode? + for($i = is_account_code($account['code']); $i > 0; $i++) + { + $account['code'] = replace_text_for_utf8($this->input->post('name')).'-'.$i; + $i = is_account_code($account['code'], $account_id); + } + } + else + { + // Have barcode? + if(is_account_code($account['code'], $account_id)) + { + alertbox('alert-danger', get_lang('This barcode is found in the database.')); + $continue = false; + } + } + + + if($continue) + { + if(update_account($account['id'], $account)) + { + alertbox('alert-success', get_lang('Operation is Successful'), ''); + $log['date'] = $this->input->post('log_time'); + $log['type'] = 'account'; + $log['title'] = get_lang('Account'); + $log['description'] = get_lang('Account card has been updated.'); + $log['account_id'] = $account_id; + add_log($log); + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + + + + + } +} +?> + + +
+
+
+ +
+ +
+ + +
+ +
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+ + +
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+ +
+ + +
+
+ + + + 'account', 'option_key'=>'who_can_edit_account_card')); ?> + + +
+ " /> + + +
+ + +
+
+
+ +
+
+

+
+ +
Barkod Kodu
+ + + + + + +
+
+
+ + + + + +
+ + + + + + + + + + + + + + + db->where('status', 1); + $this->db->order_by('ID', 'DESC'); + $this->db->where('account_id', $account['id']); + $invoices = $this->db->get('invoices')->result_array(); + ?> + + + + + + + + + + + + + + db->where('status', 1); + $this->db->order_by('ID', 'DESC'); + $this->db->where('account_id', $account['id']); + $this->db->select_sum('grand_total'); + $grand_total = $this->db->get('invoices')->row_array(); + ?> + + + + + +
/
#
+
+ + + + + + + +
+ $account['id']), 'DESC'); ?> +
+ + + + + + + + +
\ No newline at end of file diff --git a/application/views/account/address_print_view.php b/application/views/account/address_print_view.php new file mode 100755 index 0000000..40464f0 --- /dev/null +++ b/application/views/account/address_print_view.php @@ -0,0 +1,43 @@ + +$account_id)); ?> + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + \ No newline at end of file diff --git a/application/views/account/dashboard_view.php b/application/views/account/dashboard_view.php new file mode 100755 index 0000000..d49fa92 --- /dev/null +++ b/application/views/account/dashboard_view.php @@ -0,0 +1,63 @@ + + + + +
+
+ + + + +
+
+ +
+
\ No newline at end of file diff --git a/application/views/account/list_account_view.php b/application/views/account/list_account_view.php new file mode 100755 index 0000000..768dcf7 --- /dev/null +++ b/application/views/account/list_account_view.php @@ -0,0 +1,45 @@ + + +
+
+ + + + + + + + + + + + + + + db->where('status', '1'); + $accounts = $this->db->get('accounts')->result_array(); + ?> + + + + + + + + + + + + + +
+ +
+
+ +
\ No newline at end of file diff --git a/application/views/account/new_account_view.php b/application/views/account/new_account_view.php new file mode 100755 index 0000000..032d8a9 --- /dev/null +++ b/application/views/account/new_account_view.php @@ -0,0 +1,230 @@ + + +
+
+ +form_validation->set_rules('code', get_lang('Account Code'), 'min_length[3]|max_length[30]'); + $this->form_validation->set_rules('name', get_lang('Account Name'), 'required|min_length[3]|max_length[30]'); + $this->form_validation->set_rules('balance', get_lang('Balance'), 'numeric|max_length[10]'); + $this->form_validation->set_rules('phone', get_lang('Phone'), 'integer|max_length[20]'); + $this->form_validation->set_rules('gsm', get_lang('Gsm'), 'integer|max_length[20]'); + $this->form_validation->set_rules('email', get_lang('E-mail'), 'email|max_length[50]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $account['code'] = replace_text_for_utf8($this->input->post('code')); + $account['name'] = $this->input->post('name'); + $account['name_surname'] = $this->input->post('name_surname'); + $account['balance'] = $this->input->post('balance'); + $account['phone'] = $this->input->post('phone'); + $account['gsm'] = $this->input->post('gsm'); + $account['email'] = $this->input->post('email'); + $account['address'] = $this->input->post('address'); + $account['county'] = $this->input->post('county'); + $account['city'] = $this->input->post('city'); + $account['description'] = $this->input->post('description'); + + // if the barcode is empty, auto-create + if($account['code'] == '') + { + $account['code'] = replace_text_for_utf8($this->input->post('name')); + + // Have barcode? + for($i = is_account_code($account['code']); $i > 0; $i++) + { + $account['code'] = replace_text_for_utf8($this->input->post('name')).'-'.$i; + $i = is_account_code($account['code']); + } + } + else + { + // Have barcode? + if(is_account_code($account['code'])) + { + alertbox('alert-danger', get_lang('This barcode is found in the database.')); + $continue = false; + } + } + + + if($continue) + { + $account_id = add_account($account); + if($account_id > 0) + { + alertbox('alert-success', get_lang('Operation is Successful'), ''); + $log['date'] = $this->input->post('log_time'); + $log['type'] = 'account'; + $log['title'] = get_lang('Account'); + $log['description'] = get_lang('Created a new account card.'); + $log['account_id'] = $account_id; + add_log($log); + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + + + + + } +} +?> + + +
+
+
+ +
+ +
+ + +
+ +
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+ + +
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ + +
+ +
+ + +
+
+ + +
+ " /> + + +
+
+
+
+ +

+
    +
  • +
  • +
  • +
+
+
+
+ +
\ No newline at end of file diff --git a/application/views/account/options_view.php b/application/views/account/options_view.php new file mode 100755 index 0000000..4f740ca --- /dev/null +++ b/application/views/account/options_view.php @@ -0,0 +1,66 @@ + + + + + + + +'account', 'option_key'=>'who_can_see_account_balance')); +$options['who_can_edit_account_card'] = get_option(array('option_group'=>'account', 'option_key'=>'who_can_edit_account_card')); +?> + +
+
+
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+
\ No newline at end of file diff --git a/application/views/account/telephone_directory_view.php b/application/views/account/telephone_directory_view.php new file mode 100755 index 0000000..048b310 --- /dev/null +++ b/application/views/account/telephone_directory_view.php @@ -0,0 +1,47 @@ + + +
+
+ + + + + + + + + + + + + + + + db->where('status', '1'); + $accounts = $this->db->get('accounts')->result_array(); + ?> + + + + + + + + + + + + + + +
+ +
+
+ +
\ No newline at end of file diff --git a/application/views/car/add_car_view.php b/application/views/car/add_car_view.php new file mode 100755 index 0000000..47a3805 --- /dev/null +++ b/application/views/car/add_car_view.php @@ -0,0 +1,325 @@ + + + + + + + + + + +
+ +
+
+ +form_validation->set_rules('name', get_lang('Car Name'), 'required'); + $this->form_validation->set_rules('plate', get_lang('Plate'), 'required'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $car['name'] = $this->input->post('name'); + $car['plate'] = $this->input->post('plate'); + $car['chassis_serial'] = $this->input->post('chassis_serial'); + $car['engine_serial'] = $this->input->post('engine_serial'); + $car['brand'] = $this->input->post('brand'); + $car['model'] = $this->input->post('model'); + $car['old_mileage'] = $this->input->post('old_mileage'); + $car['now_mileage'] = $this->input->post('old_mileage'); + $car['periodic_maintenance'] = $this->input->post('periodic_maintenance'); + $car['mpg'] = $this->input->post('mpg'); + $car['user_id'] = $this->input->post('user_id'); + $car_item['traffic_insurance'] = $this->input->post('traffic_insurance'); + $car_item['traffic_insurance_renovation'] = $this->input->post('traffic_insurance_renovation'); + $car_item['private_insurance'] = $this->input->post('private_insurance'); + $car_item['private_insurance_renovation'] = $this->input->post('private_insurance_renovation'); + $car_item['inspection'] = $this->input->post('inspection'); + $car_item['inspection_renovation'] = $this->input->post('inspection_renovation'); + $car_item['periodic_maintenance'] = $this->input->post('periodic_maintenance'); + $car_item['maintenance_start_km'] = $this->input->post('maintenance_start_km'); + + if($continue) + { + $this->db->insert('p_cars', $car); + $car_id = $this->db->insert_id(); + if($car_id > 0) + { + alertbox('alert-success', get_lang('Operation is Successful'), ''); + $log['date'] = $this->input->post('log_time'); + $log['type'] = 'p_car'; + $log['title'] = get_lang('Car'); + $log['description'] = get_lang('Data Added').' ['.$car_id.']'; + $log['other_id'] = 'p_car:'.$car_id; + add_log($log); + + + // item add + #traffic_insurance + $car_info['traffic_insurance_start_date'] = $car_item['traffic_insurance']; + $car_info['traffic_insurance_renovation'] = $car_item['traffic_insurance_renovation']; + $car_info['traffic_insurance_finish_date'] = add_date_time($car_info['traffic_insurance_start_date'], $car_info['traffic_insurance_renovation'], 'm'); + + #private_insurance + $car_info['private_insurance_start_date'] = $car_item['private_insurance']; + $car_info['private_insurance_renovation'] = $car_item['private_insurance_renovation']; + $car_info['private_insurance_finish_date'] = add_date_time($car_info['private_insurance_start_date'], $car_info['private_insurance_renovation'], 'm'); + + #inspection + $car_info['inspection_start_date'] = $car_item['inspection']; + $car_info['inspection_renovation'] = $car_item['inspection_renovation']; + $car_info['inspection_finish_date'] = add_date_time($car_info['inspection_start_date'], $car_info['inspection_renovation'], 'm'); + + + + //Periodic Maintenance + if($car_item['maintenance_start_km'] > 0) + { + $result = $car['old_mileage'] - $car_item['maintenance_start_km']; + $result = $car_item['periodic_maintenance'] - $result; + $maintenance_finish_km = $result + $car['old_mileage']; + } + else + { + $maintenance_finish_km = 0; + } + + $car_info['maintenance_start_km'] = $car_item['maintenance_start_km']; + $car_info['maintenance_finish_km'] = $maintenance_finish_km; + + + $this->db->where('id', $car_id); + $this->db->update('p_cars', $car_info); + + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + + + + + } +} +?> + + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+
+ +
+ + +
+ + +
+
+ +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+ +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+ + +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+ + +
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+ +
+
+ + +
+ +
+
+
+ " /> + + +
+
+
+ + +
+ +
+ + + \ No newline at end of file diff --git a/application/views/car/car_view.php b/application/views/car/car_view.php new file mode 100755 index 0000000..9cef3a0 --- /dev/null +++ b/application/views/car/car_view.php @@ -0,0 +1,644 @@ + + + + + + +db->where('id', $_GET['item_id']); + $this->db->update('p_car_items', array('status'=>'0')); + + alertbox('alert-danger', get_lang('Data Deleted')); +} + +if(isset($_GET['status'])) +{ + if($_GET['status'] == 0){}else if($_GET['status'] == 1){} else{exit('error! code:fg03mfd');} + + $this->db->where('id', $car['id']); + $this->db->update('p_cars', array('status'=>$_GET['status'])); + if($this->db->affected_rows() > 0) + { + $log['type'] = 'p_car'; + if($_GET['status'] == 0) + { + $log['title'] = get_lang('Deletion'); + $log['description'] = get_lang('Data Deleted').' ['.$car['id'].']'; + alertbox('alert-danger', get_lang('Data Deleted')); + } + else if($_GET['status'] == 1) + { + $log['title'] = get_lang('Activated'); + $log['description'] = get_lang('Data Activated').' ['.$car['id'].']'; + alertbox('alert-warning', get_lang('Data Activated')); + } + else { exit('error'); } + $log['other_id'] = 'p_car:'.$car['id']; + add_log($log); + } + $car = get_car($car_id); +} +?> + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + +
+ +
+
+ +form_validation->set_rules('name', get_lang('Car Name'), 'required'); + $this->form_validation->set_rules('plate', get_lang('Plate'), 'required'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $car['name'] = $this->input->post('name'); + $car['plate'] = $this->input->post('plate'); + $car['chassis_serial'] = $this->input->post('chassis_serial'); + $car['engine_serial'] = $this->input->post('engine_serial'); + $car['brand'] = $this->input->post('brand'); + $car['model'] = $this->input->post('model'); + $car['periodic_maintenance'] = $this->input->post('periodic_maintenance'); + $car['mpg'] = $this->input->post('mpg'); + $car['user_id'] = $this->input->post('user_id'); + $car_item['traffic_insurance'] = $this->input->post('traffic_insurance'); + $car_item['traffic_insurance_renovation'] = $this->input->post('traffic_insurance_renovation'); + $car_item['private_insurance'] = $this->input->post('private_insurance'); + $car_item['private_insurance_renovation'] = $this->input->post('private_insurance_renovation'); + $car_item['inspection'] = $this->input->post('inspection'); + $car_item['inspection_renovation'] = $this->input->post('inspection_renovation'); + $car_item['periodic_maintenance'] = $this->input->post('periodic_maintenance'); + $car_item['maintenance_start_km'] = $this->input->post('maintenance_start_km'); + + if($continue) + { + $this->db->where('id', $car['id']); + $this->db->update('p_cars', $car); + + + alertbox('alert-success', get_lang('Operation is Successful'), ''); + $log['date'] = $this->input->post('log_time'); + $log['type'] = 'p_car'; + $log['title'] = get_lang('Car'); + $log['description'] = get_lang('Data Updated').' ['.$car_id.']'; + $log['other_id'] = 'p_car:'.$car_id; + add_log($log); + + // item add + #traffic_insurance + $car_info['traffic_insurance_start_date'] = $car_item['traffic_insurance']; + $car_info['traffic_insurance_renovation'] = $car_item['traffic_insurance_renovation']; + $car_info['traffic_insurance_finish_date'] = add_date_time($car_info['traffic_insurance_start_date'], $car_info['traffic_insurance_renovation'], 'm'); + + #private_insurance + $car_info['private_insurance_start_date'] = $car_item['private_insurance']; + $car_info['private_insurance_renovation'] = $car_item['private_insurance_renovation']; + $car_info['private_insurance_finish_date'] = add_date_time($car_info['private_insurance_start_date'], $car_info['private_insurance_renovation'], 'm'); + + #inspection + $car_info['inspection_start_date'] = $car_item['inspection']; + $car_info['inspection_renovation'] = $car_item['inspection_renovation']; + $car_info['inspection_finish_date'] = add_date_time($car_info['inspection_start_date'], $car_info['inspection_renovation'], 'm'); + + + + //Periodic Maintenance + if($car_item['maintenance_start_km'] > 0) + { + $result = $car['old_mileage'] - $car_item['maintenance_start_km']; + $result = $car_item['periodic_maintenance'] - $result; + $maintenance_finish_km = $result + $car['old_mileage']; + } + else + { + $maintenance_finish_km = 0; + } + + $car_info['maintenance_start_km'] = $car_item['maintenance_start_km']; + $car_info['maintenance_finish_km'] = $maintenance_finish_km; + + + $this->db->where('id', $car_id); + $this->db->update('p_cars', $car_info); + + $car = get_car($car_id); + } + + } +} +?> + + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+
+ +
+ + + $car['user_id'])); ?> +
+ + +
+
+ +
+
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+ +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+ + +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+ + +
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+
+ + + +
+ + '2000-01-01 00:00:00'): ?> + + + + + + + + + + + + '2000-01-01 00:00:00'): ?> + + + + + + + + + + + + '2000-01-01 00:00:00'): ?> + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +
+
+ + +
+ +
+
+
+ + + + + + " /> + + +
+
+
+ +
+
+ + + + +
+form_validation->set_rules('attended_km', get_lang('Attended Km'), 'required'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $car_item['type'] = 'km'; + $car_item['date'] = $this->input->post('km_date'); + $car_item['description'] = $this->input->post('km_description'); + $car_item['car_id'] = $car['id']; + $car_item['km'] = $this->input->post('attended_km'); + $car_item['price'] = $this->input->post('km_mpg'); + $car_item['total'] = $car_item['km'] * $car_item['price']; + + $item_id = add_car_item($car_item); + if($item_id > 0) + { + alertbox('alert-success', get_lang('Data Added')); + + $log['date'] = $this->input->post('log_time'); + $log['type'] = 'p_car_item'; + $log['title'] = get_lang('Car'); + $log['description'] = $car_item['km'].' '.get_lang('Added Mileage').' ['.$car_id.']'; + $log['other_id'] = 'p_car:'.$car_id; + add_log($log); + } + + echo ''; + + + } +} +?> +
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+ " /> + + +
+ +
+
+ + +
+ + + +db->where('status', 1); +$this->db->where('car_id', $car['id']); +$this->db->select_sum('total'); +$sub_total = $this->db->get('p_car_items')->row_array(); + +$this->db->where('status', 1); +$this->db->where('type', 'km'); +$this->db->where('car_id', $car['id']); +$this->db->select_sum('km'); +$km = $this->db->get('p_car_items')->row_array(); +?> + +db->where('status', '1'); +$this->db->where('car_id', $car['id']); +$this->db->order_by('id', 'DESC'); +$query = $this->db->get('p_car_items')->result_array(); +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + db->where('id', $car['id']); + $this->db->update('p_cars', array('now_mileage'=>($car['old_mileage']+$km['km']))); + ?> + +
+ + + +
+ 'p_car:'.$car['id']), 'DESC'); ?> +
+ + +
+ +
+ + + \ No newline at end of file diff --git a/application/views/car/dashboard_view.php b/application/views/car/dashboard_view.php new file mode 100755 index 0000000..98d2ffe --- /dev/null +++ b/application/views/car/dashboard_view.php @@ -0,0 +1,34 @@ + + + + +
+ +
\ No newline at end of file diff --git a/application/views/car/list_cars_view.php b/application/views/car/list_cars_view.php new file mode 100755 index 0000000..bc860a4 --- /dev/null +++ b/application/views/car/list_cars_view.php @@ -0,0 +1,51 @@ + + + + +
+
+ + + + + + + + + + + + + + + + + db->where('status', '1'); + $cars = $this->db->get('p_cars')->result_array(); + ?> + + + + + + + + + + + + + + +
#/
+ +
+
+ +
\ No newline at end of file diff --git a/application/views/dashboard.php b/application/views/dashboard.php new file mode 100755 index 0000000..79ae3ab --- /dev/null +++ b/application/views/dashboard.php @@ -0,0 +1,226 @@ + + + + +
+ +
+ +
+
+ Not Defteri + +
+ +
+ + +
+ + + + +
+ db->where('status', 1); + $this->db->where_in('type', array('message','reply_message')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('date DESC, recent_activity DESC'); + $this->db->limit(10); + $query = $this->db->get('user_mess')->result_array(); + ?> + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ db->where('status', 1); + $this->db->where_in('type', array('task','reply_task')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $this->db->limit(10); + $query = $this->db->get('user_mess')->result_array(); + ?> + + + + + + + + + + + + + + + + +
+ + + +
+
+ diff --git a/application/views/inc/blank_footer.php b/application/views/inc/blank_footer.php new file mode 100755 index 0000000..a57a3db --- /dev/null +++ b/application/views/inc/blank_footer.php @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/application/views/inc/blank_header.php b/application/views/inc/blank_header.php new file mode 100755 index 0000000..b040b8d --- /dev/null +++ b/application/views/inc/blank_header.php @@ -0,0 +1,47 @@ +session->userdata('login') == false) +{ + redirect('user/login'); + exit; +} +?> + + + + + +TilPark! Açık Kaynak Kodlu Stok Takip ve Cari Otomasyonu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/application/views/inc/footer.php b/application/views/inc/footer.php new file mode 100755 index 0000000..4bab816 --- /dev/null +++ b/application/views/inc/footer.php @@ -0,0 +1,118 @@ +
+ +
+
+{elapsed_time} +'page_access', 'option_key'=>$page_name, 'option_value'=>$role)); + + add_log(array('type'=>'page_access', 'title'=>get_lang('Page Access'), 'description'=>get_lang('Changed the access settings page').' ['.$page_name.'/'.$role.']')); +} +function control_page() +{ + $ci =& get_instance(); + $page_name = $ci->uri->segment(1).'/'.$ci->uri->segment(2); + + $data['/'] = ''; + $data['user/logout'] = ''; + $data['user/profile'] = '1'; + $data['user/new_message'] = ''; + $data['user/inbox'] = ''; + $data['user/outbox'] = ''; + $data['user/new_task'] = ''; + $data['user/task'] = ''; + $data['user/outbound_tasks'] = ''; + $data['general/about'] = ''; + + if(isset($data[$page_name])) + { + ?> + + + + 'page_access', 'option_key'=>$page_name)); + ?> + + + + + + + + + + + + [değiştir] + + + + + + [değiştir] + + + +
+ + +
+ + \ No newline at end of file diff --git a/application/views/inc/header.php b/application/views/inc/header.php new file mode 100755 index 0000000..2451672 --- /dev/null +++ b/application/views/inc/header.php @@ -0,0 +1,383 @@ +session->userdata('login') == false) +{ + redirect('user/login'); + exit; +} +?> + + + + + +TilPark! Açık Kaynak Kodlu Stok Takip ve Cari Otomasyonu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/application/views/index.html b/application/views/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/application/views/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + \ No newline at end of file diff --git a/application/views/invoice/dashboard_view.php b/application/views/invoice/dashboard_view.php new file mode 100755 index 0000000..8c1ae4e --- /dev/null +++ b/application/views/invoice/dashboard_view.php @@ -0,0 +1,96 @@ + + + + + + + +
+
+ + + + +
+
+ +
+ db->where('status', 1); + $this->db->where('type','invoice'); + $this->db->order_by('date', 'DESC'); + $this->db->limit(10); + $query = $this->db->get('invoices')->result_array(); + ?> + + + + + + + + + + + + + + + + +
#
+ + + + + +
+
\ No newline at end of file diff --git a/application/views/invoice/invoice_list_view.php b/application/views/invoice/invoice_list_view.php new file mode 100644 index 0000000..a5b48f0 --- /dev/null +++ b/application/views/invoice/invoice_list_view.php @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + db->where('status', 1); + $this->db->where('type', 'invoice'); + $this->db->order_by('ID', 'DESC'); + $invoices = $this->db->get('invoices')->result_array(); + ?> + + + + + + + + + + + + + + +
/
#
diff --git a/application/views/invoice/invoice_view.php b/application/views/invoice/invoice_view.php new file mode 100755 index 0000000..ddf5da4 --- /dev/null +++ b/application/views/invoice/invoice_view.php @@ -0,0 +1,516 @@ + + + + + + + +$_GET['status'])); + + $data['type'] = 'invoice'; + $data['invoice_id'] = $invoice['id']; + $data['account_id'] = $invoice['account_id']; + $data['title'] = get_lang('Invoice'); + if($_GET['status'] == 0){$data['description'] = get_lang('Deleted Invoice.');}else{$data['description'] = get_lang('Activated bill again.');} + add_log($data); + $invoice = get_invoice($invoice_id); +} +?> + + + + + + +
+ + + + + + +
+ + + +
+
+
+ + + + + + + +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+
+
+ + +
+
+
+
+
+
+ +
+ + + + + + + + + + + +form_validation->set_rules('code', get_lang('Barcode Code'), 'required'); + $this->form_validation->set_rules('amount', get_lang('Amount'), 'required|digits'); + $this->form_validation->set_rules('quantity_price', get_lang('Quantity Price'), 'number'); + $this->form_validation->set_rules('tax_rate', get_lang('Tax Rate'), 'digits'); + + if($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $item['invoice_id'] = $invoice['id']; + + $product['code'] = $this->input->post('code'); + $item['quantity'] = $this->input->post('amount'); + $item['quantity_price'] = $this->input->post('quantity_price'); + $item['total'] = ''; + $item['tax_rate'] = $this->input->post('tax_rate'); + + $product = get_product(array('status'=>'1', 'code'=>$product['code'])); + + if(!$product) { alertbox('alert-danger', get_lang('Barcode Code Unknown.')); } + else + { + $item['product_id'] = $product['id']; + if($item['quantity'] < 1) { $item['quantity'] = 1; } + if($item['quantity_price'] == '') { $item['quantity_price'] = $product['sale_price']; } + if($item['tax_rate'] == '') { $item['tax_rate'] = $product['tax_rate']; } + + $item['total'] = $item['quantity'] * $item['quantity_price']; + $item['tax'] = $item['total'] / 100 * $item['tax_rate']; + $item['sub_total'] = ($item['total'] + $item['tax']); + $item['in_out'] = $invoice['in_out']; + + $item_id = add_item($item); + if($item_id > 0) + { + $data['type'] = 'invoice'; + $data['invoice_id'] = $invoice['id']; + $data['product_id'] = $product['id']; + $data['account_id'] = $invoice['account_id']; + $data['title'] = get_lang('Product Added'); + if($invoice['in_out'] == 0){$data['description'] = get_lang('Product purchase.');}else{$data['description'] = get_lang('Product sales.');} + add_log($data); + alertbox('alert-success', get_lang('Add a successful product.')); + calc_invoice_items($invoice['id']); + + + // serial control + if($product['serial'] == 1) + { + $serial['serial'] = $this->input->post('serial'); + + if($serial > 0) + { + $is_serial = get_product_serial_number(array('status'=>'1', 'product_id'=>$product['id'], 'serial'=>$serial['serial'])); + + if($is_serial > 0) + { + $this->db->where('id', $is_serial['id']); + $this->db->update('product_serials', array('invoice_id'=>$invoice_id)); + + // update item serial number + $this->db->where('id', $item_id); + $this->db->update('invoice_items', array( + 'product_serial_id'=>$is_serial['id'] + )); + } + else + { + add_product_serial_number(array( + 'status'=>1, + 'product_id'=>$product['id'], + 'serial'=>$serial['serial'], + 'invoice_id'=>$invoice['id'] + )); + + // update item serial number + $this->db->where('id', $item_id); + $this->db->update('invoice_items', array( + 'product_serial_id'=>$is_serial['id'] + )); + } + } + } + } + } + } +} + + +// delete item +if(isset($_GET['delete_item'])) +{ + $item = get_invoice_item($_GET['item_id']); + if($item['product_id'] > 0){ $product = get_product($item['product_id']);} else {$product['id'] = '0';} + + $this->db->where('id', $_GET['item_id']); + $this->db->update('invoice_items', array('status'=>'0')); + if($this->db->affected_rows() > 0) + { + $data['type']='item'; $data['invoice_id']=$invoice['id'];$data['product_id']=$product['id'];$data['account_id']=$invoice['account_id']; + $data['title'] = get_lang('Deletion'); + $data['description'] = get_lang('Product deletion.'); + add_log($data); + + alertbox('alert-danger', get_lang('Product movement has been deleted.').' ['.$product['code'].']'); + + + // is serial number has ben active + if($product['serial'] == 1) + { + if($item['product_serial_id'] > 0) + { + $this->db->where('id', $item['product_serial_id']); + $this->db->update('product_serials', array( + 'invoice_id'=>'' + )); + } + } + } +} +?> + +
+
+
+
+
+
+ + + +
+
+
+ + +
+
+
+
+ +
+ +
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+
+ + + +
+
+
+
+ + +
+
+
+ + " /> + + +
+
+
+
+ + + + + + + +
+db->where('status', 1); +$this->db->where('invoice_id', $invoice_id); +$items = $this->db->get('invoice_items')->result_array(); + +$invoice = get_invoice($invoice_id); + +?> + + + + + + + + + + + + + + + + + + 0) + { + $product = get_product($item['product_id']); + } + else + { + $product['id'] = ''; + $product['code'] = $item['product_code']; + $product['name'] = $item['product_name']; + } + // is serial number + $item_serial['serial'] = ''; + if($item['product_serial_id'] > 0) + { + $this->db->where('id', $item['product_serial_id']); + $item_serial = $this->db->get('product_serials')->row_array(); + } + ?> + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ 0): ?> + [] + + + + + 0): ?> + + + + + % ()
+ + + + +
+
+
+ + + + + +
+ $invoice['id']), 'ASC'); ?> +
+ + + + + +
+ + + + + + + + \ No newline at end of file diff --git a/application/views/invoice/new_invoice_view.php b/application/views/invoice/new_invoice_view.php new file mode 100755 index 0000000..dc86d34 --- /dev/null +++ b/application/views/invoice/new_invoice_view.php @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + +
+
+ +form_validation->set_rules('account_id', get_lang('Account Card'), 'required|digits'); + $this->form_validation->set_rules('account_name', get_lang('Account Name'), 'required|min_length[3]|max_length[30]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $invoice['date'] = $this->input->post('date').' '.date('H:i:s');; + $invoice['account_id'] = $this->input->post('account_id'); + $invoice['description'] = $this->input->post('description'); + + $invoice['type'] = 'invoice'; + if(isset($_GET['sell'])){$invoice['in_out'] = '1';} else if(isset($_GET['buy'])){$invoice['in_out'] = '0';} + + $invoice_id = add_invoice($invoice); + + if($invoice_id > 0) + { + $data['type'] = 'invoice'; + $data['invoice_id'] = $invoice_id; + $data['account_id'] = $invoice['account_id']; + $data['title'] = get_lang('New Receipt'); + $data['description'] = get_lang('Created a new receipt.').'['.$text['in_out'].']'; + add_log($data); + + alertbox('alert-success', get_lang('Operation is Successful')); + + redirect(site_url('invoice/view/'.$invoice_id)); + } + else { alertbox('alert-danger', get_lang('Error!')); } + } +} +?> + + +
+ +
+
+
+ +
+ + +
+
+
+
+ +
+
+ +
+
+
+ +
+ + +
+
+
+
+ + +
+ " /> + + +
+
+
+
+ +

+ +
+
+
+ +
+ + + \ No newline at end of file diff --git a/application/views/login.php b/application/views/login.php new file mode 100755 index 0000000..b70c5b5 --- /dev/null +++ b/application/views/login.php @@ -0,0 +1,132 @@ + + + + + +TilPark! Açık Kaynak Kodlu Stok Takip ve Cari Otomasyonu + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ + input->post('email'); + $data['password'] = $this->input->post('password'); + + $query = get_user($data); + if($query) + { + if($query['password'] == md5($data['password']) and $query['status'] == '1') + { + $this->session->set_userdata('login', true); + $this->session->set_userdata('user', $query); + + $log['type'] = 'login'; + $log['title'] = get_lang('Login'); + $log['description'] = get_lang('Debuted in the system'); + add_log($log); + + redirect(site_url()); + } + else + { + alertbox('alert-danger', get_lang('Login failed.')); + } + } + else + { + alertbox('alert-danger', get_lang('User not found.')); + } + } + ?> + + +
+ +
+
+ admin@tilpark.com / şifre: 123456', '', false); + } + ?> +
+
+ +
+
+
+ +
+ +
+ + +
+
+
+ +
+ + +
+
+ +
+ + +
+ +
+
+ +
+
+ + +
+
+
+ +

+
    +
  • +
  • +
  • +
  • +
  • +
+
+
+
+ +
+ +
+ + + diff --git a/application/views/payment/dashboard_view.php b/application/views/payment/dashboard_view.php new file mode 100755 index 0000000..70c2bca --- /dev/null +++ b/application/views/payment/dashboard_view.php @@ -0,0 +1,140 @@ + + + + + + +
+ +
+ +
+ db->where('status', 1); + $this->db->where('type','payment'); + $this->db->where('val_1', 'checks'); + $this->db->where('in_out', '0'); + $this->db->where('val_2 >', date('Y-m-d')); + $this->db->order_by('val_2', 'ASC'); + $this->db->limit(10); + $query = $this->db->get('invoices')->result_array(); + ?> + + + + + + + + + + + + + + + + +
+ + + + + +
+ db->where('status', 1); + $this->db->where('type','payment'); + $this->db->where('val_1', 'checks'); + $this->db->where('in_out', '1'); + $this->db->where('val_2 >', date('Y-m-d')); + $this->db->order_by('val_2', 'ASC'); + $this->db->limit(10); + $query = $this->db->get('invoices')->result_array(); + ?> + + + + + + + + + + + + + + + + +
+ + + + +
+
\ No newline at end of file diff --git a/application/views/payment/new_payment_view.php b/application/views/payment/new_payment_view.php new file mode 100755 index 0000000..93f9b3b --- /dev/null +++ b/application/views/payment/new_payment_view.php @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + +
+
+ +form_validation->set_rules('account_id', get_lang('Account Card'), 'required|digits'); + $this->form_validation->set_rules('account_name', get_lang('Account Name'), 'required|min_length[3]|max_length[30]'); + $this->form_validation->set_rules('payment', get_lang('Payment'), 'required|number|max_length[12]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $invoice['date'] = $this->input->post('date').' '.date('H:i:s');; + $invoice['account_id'] = $this->input->post('account_id'); + $invoice['description'] = $this->input->post('description'); + $post['payment'] = $this->input->post('payment'); + $invoice['val_1'] = $this->input->post('payment_type'); + $invoice['val_2'] = $this->input->post('fall_due_on'); + $invoice['val_3'] = $this->input->post('checks_serial_no'); + + $invoice['type'] = 'payment'; + if(isset($_GET['give_money'])){$invoice['in_out'] = '1';} else if(isset($_GET['get_money'])){$invoice['in_out'] = '0';} + + + $account = get_account($invoice['account_id']); + + if($invoice['in_out'] == '1') + { + $invoice['grand_total'] = $post['payment']; + } + else + { + $invoice['grand_total'] = '-'.$post['payment']; + } + + $invoice_id = add_invoice($invoice); + + if($invoice_id > 0) + { + calc_account_balance($invoice['account_id']); + $data['type'] = 'invoice'; + $data['invoice_id'] = $invoice_id; + $data['account_id'] = $invoice['account_id']; + $data['title'] = get_lang('New Receipt'); + $data['description'] = get_lang('New payment').' ['.$text['in_out'].']'; + add_log($data); + + alertbox('alert-success', get_lang('Operation is Successful')); + + redirect(site_url('payment/view/'.$invoice_id)); + + } + else { alertbox('alert-danger', get_lang('Error!')); } + } +} +?> + + +
+ +
+
+
+ +
+ + +
+
+
+
+ +
+
+ + +
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+ +
+
+
+ + + + + +
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+ +
+ +
+ +
+ + +
+
+
+
+ +
+ " /> + + +
+
+
+
+ +

+ +
+
+
+ +
+ + + \ No newline at end of file diff --git a/application/views/payment/payment_list_view.php b/application/views/payment/payment_list_view.php new file mode 100644 index 0000000..7f8ea17 --- /dev/null +++ b/application/views/payment/payment_list_view.php @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + db->where('status', 1); + $this->db->where('type', 'payment'); + if(isset($_GET['val_1'])){$this->db->where('val_1', $_GET['val_1']);} + $this->db->order_by('ID', 'DESC'); + $invoices = $this->db->get('invoices')->result_array(); + ?> + + + + + + + + + + + + + + +
/
#
diff --git a/application/views/payment/payment_view.php b/application/views/payment/payment_view.php new file mode 100755 index 0000000..059994f --- /dev/null +++ b/application/views/payment/payment_view.php @@ -0,0 +1,229 @@ + + + + + + + +$_GET['status'])); + + $data['type'] = 'invoice'; + $data['invoice_id'] = $invoice['id']; + $data['account_id'] = $invoice['account_id']; + $data['title'] = get_lang('Invoice'); + if($_GET['status'] == 0){$data['description'] = get_lang('Deleted Payment.');}else{$data['description'] = get_lang('Activated bill again.');} + add_log($data); + $invoice = get_invoice($invoice_id); +} +?> + + + + + + + +
+ + + +
+ + + +
+
+
+ + + + +
+ +
+
+
+ +
+ + +
+
+
+
+ +
+
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+
+ +
+
+
+ + + +
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+ +
+ + + + +
+ +
+ + +
+
+
+
+ +
+
+
+ +

+
+

+ + : + +
+
+
+
+ +
+ + + + + +
+ + + + + +
+ $invoice['id']), 'ASC'); ?> +
+ +
+ + \ No newline at end of file diff --git a/application/views/plugins/dashboard_view.php b/application/views/plugins/dashboard_view.php new file mode 100755 index 0000000..bf691cd --- /dev/null +++ b/application/views/plugins/dashboard_view.php @@ -0,0 +1,34 @@ + + + + + +db->where('option_group', 'plugins'); +$plugins = $this->db->get('options')->result_array(); +?> + + +
+
+ +
+ + + +
+ +
+
\ No newline at end of file diff --git a/application/views/product/dashboard_view.php b/application/views/product/dashboard_view.php new file mode 100755 index 0000000..8c5a8b8 --- /dev/null +++ b/application/views/product/dashboard_view.php @@ -0,0 +1,53 @@ + + + + +
+
+ + + + +
+
+ +
+
\ No newline at end of file diff --git a/application/views/product/list_product_view.php b/application/views/product/list_product_view.php new file mode 100755 index 0000000..1ab5da6 --- /dev/null +++ b/application/views/product/list_product_view.php @@ -0,0 +1,47 @@ + + +
+
+ + + + + + + + + + + + + + + + db->where('status', '1'); + $products = $this->db->get('products')->result_array(); + ?> + + + + + + + + + + + + + + +
%
+ +
+
+ +
\ No newline at end of file diff --git a/application/views/product/new_product_view.php b/application/views/product/new_product_view.php new file mode 100755 index 0000000..bd99d97 --- /dev/null +++ b/application/views/product/new_product_view.php @@ -0,0 +1,164 @@ + + + +
+
+ +form_validation->set_rules('code', get_lang('Barcode Code'), 'min_length[3]|max_length[30]'); + $this->form_validation->set_rules('name', get_lang('Product Name'), 'required|min_length[3]|max_length[30]'); + $this->form_validation->set_rules('cost_price', get_lang('Cost Price'), 'numeric|max_length[10]'); + $this->form_validation->set_rules('sale_price', get_lang('Sale Price'), 'numeric|max_length[10]'); + $this->form_validation->set_rules('tax_rate', get_lang('Tax Rate'), 'integer|max_length[10]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $product['code'] = replace_text_for_utf8($this->input->post('code')); + $product['name'] = $this->input->post('name'); + $product['description'] = $this->input->post('description'); + $product['cost_price'] = $this->input->post('cost_price'); + $product['sale_price'] = $this->input->post('sale_price'); + $product['tax_rate'] = $this->input->post('tax_rate'); + + // Have barcode? + // if the barcode is empty, auto-create + if($product['code'] == '') + { + $product['code'] = replace_text_for_utf8($this->input->post('name')); + + // Have barcode? + for($i = is_product_code($product['code']); $i > 0; $i++) + { + $product['code'] = replace_text_for_utf8($this->input->post('name')).'-'.$i; + $i = is_product_code($product['code']); + } + } + else + { + // Have barcode? + if(is_product_code($product['code'])) + { + alertbox('alert-danger', get_lang('This barcode is found in the database. Used for another product.')); + $continue = false; + } + } + + if($continue) + { + $product_id = add_product($product); + if($product_id > 0) + { + alertbox('alert-success', get_lang('Operation is Successful'), ''); + $log['date'] = $this->input->post('log_time'); + $log['type'] = 'product'; + $log['title'] = get_lang('Product'); + $log['description'] = get_lang('Created a new product line card.'); + $log['other_id'] = 'product:'.$product_id; + add_log($log); + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + + + + + } +} +?> + + +
+
+
+ +
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ % + +
+
+
+
+ +
+ " /> + + +
+
+
+
+ +

+
    +
  • +
  • +
  • +
  • +
+
+
+
+ +
\ No newline at end of file diff --git a/application/views/product/options_view.php b/application/views/product/options_view.php new file mode 100755 index 0000000..c1b9210 --- /dev/null +++ b/application/views/product/options_view.php @@ -0,0 +1,66 @@ + + + + + + + +'product', 'option_key'=>'who_can_see_cost_price')); +$options['who_can_edit_product_card'] = get_option(array('option_group'=>'product', 'option_key'=>'who_can_edit_product_card')); +?> + +
+
+
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+
\ No newline at end of file diff --git a/application/views/product/product_view.php b/application/views/product/product_view.php new file mode 100755 index 0000000..d976008 --- /dev/null +++ b/application/views/product/product_view.php @@ -0,0 +1,401 @@ + +$product_id)); ?> + + + + + + + 'delete', 'title'=>get_lang('Product Card'), 'description'=>get_lang('Product Card has been deleted.'), 'other_id'=>'product:'.$product['id'])); } + elseif($_GET['status'] == '1') { add_log(array('type'=>'delete', 'title'=>get_lang('Product Card'), 'description'=>get_lang('Deleted items activated the card again.'), 'other_id'=>'product:'.$product['id'])); } + else { exit('error'); } + + $this->db->where('id', $product['id']); + $this->db->update('products', array('status'=>$_GET['status'])); + $product = get_product(array('id'=>$product_id)); + ?> + + + + + + + + +form_validation->set_rules('code', get_lang('Barcode Code'), 'min_length[3]|max_length[30]'); + $this->form_validation->set_rules('name', get_lang('Product Name'), 'required|min_length[3]|max_length[30]'); + $this->form_validation->set_rules('cost_price', get_lang('Cost Price'), 'numeric|max_length[10]'); + $this->form_validation->set_rules('sale_price', get_lang('Sale Price'), 'numeric|max_length[10]'); + $this->form_validation->set_rules('tax_rate', get_lang('Tax Rate'), 'integer|max_length[10]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $product['code'] = $this->input->post('code'); + $product['name'] = $this->input->post('name'); + $product['description'] = $this->input->post('description'); + $product['cost_price'] = $this->input->post('cost_price'); + $product['sale_price'] = $this->input->post('sale_price'); + $product['tax_rate'] = $this->input->post('tax_rate'); + $product['serial'] = $this->input->post('serial'); + + // Have barcode? + $this->db->where('status', '1'); + $this->db->where_not_in('id', $product['id']); + $this->db->where('code', $product['code']); + $query = $this->db->get('products')->result_array(); + if($query) + { + alertbox('alert-danger', get_lang('This barcode is found in the database. Used for another product.')); + $continue = false; + } + + if($continue) + { + if(update_product($product['id'], $product)) + { + alertbox('alert-success', get_lang('Operation is Successful'), ''); + $log['date'] = $this->input->post('log_time'); + $log['type'] = 'product'; + $log['title'] = get_lang('Product'); + $log['description'] = get_lang('Product card has been updated.'); + $log['other_id'] = 'product:'.$product['id']; + add_log($log); + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + + } +} +?> + + + +
+ + + +
+ + + + + +
+
+
+ + +$product_id)); ?> +
+
+
+ +
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ % + +
+
+ +
+ + +
+
+
+ +
+ + 'product', 'option_key'=>'who_can_edit_product_card')); ?> + + " /> + + + + +
+
+
+
+
+
+

+
+ +
+ +
+ +
+ + + + +
+
+ + +
+ + + + +
+ +input->post('serial_number'); + + $is_serial = get_product_serial_number($serial); + if($is_serial == 0) + { + $serial_id = add_product_serial_number($serial); + + if($serial_id > 0) + { + alertbox('alert-success', get_lang('Data Added')); + } + } + else + { + alertbox('alert-warning', '['.$serial['serial'].'] '.get_lang('The serial number exists in the database.')); + } + + echo ''; +} + +if(isset($_GET['delete_serial'])) +{ + $serial_id = $_GET['serial_id']; + + $this->db->where('id', $serial_id); + $this->db->update('product_serials', array('status'=>'0')); + if($this->db->affected_rows() > 0) + { + alertbox('alert-danger', get_lang('Data Deleted')); + } + + echo ''; +} +?> + +
+
+
+
+ +
+ + +
+
+
+
+ +
+ " /> + + +
+
+
+ +db->where('status', 1); +$this->db->where('product_id', $product['id']); +$serials = $this->db->get('product_serials')->result_array(); +?> + + + + + + + + + + + + + + + + + + + +
+ 0): ?> + # + +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + db->where('status', 1); + $this->db->where('product_id', $product['id']); + $this->db->order_by('ID', 'ASC'); + $invoices = $this->db->get('invoice_items')->result_array(); + ?> + + + + + + + + + + + + + + + + + + +
/
#% ()
+
+ + + + + + + +
+ $product['id']), 'DESC'); ?> +
+ + + + + + + + + + + + +
\ No newline at end of file diff --git a/application/views/system/about_view.php b/application/views/system/about_view.php new file mode 100755 index 0000000..82fb84f --- /dev/null +++ b/application/views/system/about_view.php @@ -0,0 +1,10 @@ + +Güncel Sürüm : config->item('version'); ?> +
+Merhaba, ben Mustafa Tanrıverdi. Buradaki yazıyı okuduğunuza göre TilPark! projelerini geliştirdiğimi bilmektesiniz. PHP-MySQL ile yakından ilgilenmekteyim. CSS, jQuery ve HTML ise bunların başında yer almakta. Ayrıca C#-MsSQL ile uzunca bir öz geçmişim bulunmakta. +
+
+Uzun bir zaman önce TilPark! yapmak aklımdaydı, aslında 2005 yılından beri TilPark! kurmak ve ücretsiz bir sistemi dağıtmak istiyordum. Sonunda 2009 yılında TilPark! temelini yazdım. Bu güne kadar bir çok sürüm çıkardım ve sonunda kararlı sürüme ulaşabildik. TilPark!'ı tercih ettiğiniz için teşekkür ederim. + +

0 532 265 03 82

+

tanriverdi.ms@gmail.com

diff --git a/application/views/system/map_events_view.php b/application/views/system/map_events_view.php new file mode 100755 index 0000000..8797837 --- /dev/null +++ b/application/views/system/map_events_view.php @@ -0,0 +1,70 @@ + + + + + + Using closures in event listeners + + + + + +
+ + \ No newline at end of file diff --git a/application/views/system/map_view.php b/application/views/system/map_view.php new file mode 100755 index 0000000..41860eb --- /dev/null +++ b/application/views/system/map_view.php @@ -0,0 +1,48 @@ + + + + + + + + + +
+ + \ No newline at end of file diff --git a/application/views/test/dashboard_view.php b/application/views/test/dashboard_view.php new file mode 100755 index 0000000..773ec1f --- /dev/null +++ b/application/views/test/dashboard_view.php @@ -0,0 +1,20 @@ +db->where('option_group', 'plugins'); +$this->db->where('option_key', $this->uri->segment(1)); +$plugin = $this->db->get('options')->row_array(); +?> + + + + + + +
+
+

this is a plug-in.

+
+
\ No newline at end of file diff --git a/application/views/user/messagebox/bulk_view.php b/application/views/user/messagebox/bulk_view.php new file mode 100755 index 0000000..fba4864 --- /dev/null +++ b/application/views/user/messagebox/bulk_view.php @@ -0,0 +1,125 @@ + + + + +
+
+ + form_validation->set_rules('title', get_lang('Title'), 'required|min_length[3]|max_length[50]'); + $this->form_validation->set_rules('content', get_lang('Message'), 'required|min_length[3]|max_length[5000]'); + + if($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $this->db->where_not_in('id', get_the_current_user('id')); + if($_POST['role'] != 0){$this->db->where('role', $_POST['role']);} + $this->db->where('status', '1'); + $get_users = $this->db->get('users')->result_array(); + + + foreach($get_users as $get_user) + { + $data['receiver_id'] = $get_user['id']; + $data['title'] = $this->input->post('title'); + $data['content'] = $this->input->post('content'); + $message_id = add_message($data); + if($message_id > 0) + { + add_log(array('date'=>$_POST['log_time'], 'type'=>'message', 'title'=>get_lang('New Message'), 'description'=>get_lang('Send a new message').' ['.$get_user['name'].' '.$get_user['surname'].']')); + + } + } + + alertbox('alert-success', get_lang('Message has been sent.')); + } + } + ?> + + + +
+
+ + +
+
+ +
+ + +
+
+
+ + +
+ +
+ " /> + + +
+
+ +
+
+
+ + + + + + + + + db->where('status', 1); + $this->db->where_in('type', array('message','reply_message')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $this->db->limit(10); + $query = $this->db->get('user_mess')->result_array(); + + foreach($query as $q): + ?> + + + + + + +
+
+
+ + + \ No newline at end of file diff --git a/application/views/user/messagebox/inbox_view.php b/application/views/user/messagebox/inbox_view.php new file mode 100755 index 0000000..4601973 --- /dev/null +++ b/application/views/user/messagebox/inbox_view.php @@ -0,0 +1,278 @@ + + + + + + +db->where('id', $message_id); +$message = $this->db->get('user_mess')->row_array(); + +if(isset($_GET['delete']) and get_the_current_user('role') <= 2) +{ + $this->db->where('id', $_GET['delete']); + $this->db->update('user_mess', array('status'=>'0')); + + $this->db->where('top_id', $_GET['delete']); + $this->db->update('user_mess', array('status'=>'0')); + + $log['type'] = 'message'; + $log['other_id'] = 'message:'.$message['id']; + $log['title'] = get_lang('Message'); + $log['description'] = get_lang('Status Changed').' ['.$_GET['delete'].']'; + add_log($log); +} + +// reload information +$this->db->where('id', $message_id); +$message = $this->db->get('user_mess')->row_array(); + +if($message['top_id'] > 0){redirect(site_url('user/inbox/'.$message['top_id']));} + + +if($message['status'] == '0') +{ + alertbox('alert-warning', get_lang('This message has been deleted.'), '', false); +} + +// read message +if($message['read']=='['.get_the_current_user('id').']') +{ + if($message['receiver_id'] == get_the_current_user('id')) + { + $this->db->where('id', $message['id']); + $this->db->update('user_mess', array('read'=>'0', 'read_date'=>date("Y-m-d H:i:s"))); + } +} +?> + + + + + + + + + + + +
+
+ + form_validation->set_rules('content', get_lang('Message'), 'required|min_length[3]|max_length[1000]'); + + if($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + if($message['receiver_id'] == get_the_current_user('id')) + { + $data['receiver_id'] = $message['sender_id']; + $data['sender_id'] = $message['receiver_id']; + $data['read'] = '['.$message['sender_id'].']'; + } + elseif($message['sender_id'] == get_the_current_user('id')) + { + $data['receiver_id'] = $message['receiver_id']; + $data['sender_id'] = $message['sender_id']; + $data['read'] = '['.$message['receiver_id'].']'; + } + + $data['title'] = $message['title']; + $data['top_id'] = $message['id']; + $data['type'] = 'reply_message'; + $data['content'] = $this->input->post('content'); + $message_id = add_message($data); + if($message_id > 0) + { + add_log(array('date'=>$_POST['log_time'], 'type'=>'message', 'title'=>get_lang('New Message'), 'description'=>get_lang('Send a new message').' ['.$message['id'].']')); + alertbox('alert-success', get_lang('Message has been sent.')); + + + // If sending the same message to the recipient + if($message['receiver_id'] == get_the_current_user('id')) + { + $this->db->where('id', $message['id']); + $this->db->update('user_mess', array('inbox_view'=>'1', 'recent_activity'=>date("Y-m-d H:i:s"))); + } + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + } + ?> + +
+
+

+
+ +
+ +
+
+
+

+ +
+ + : , : + + +
+
+
+
+ +
+ + db->where('status', '1'); + $this->db->where('top_id', $message['id']); + $this->db->order_by('date', 'ASC'); + $replys = $this->db->get('user_mess')->result_array(); + ?> + + db->where('id', $reply['id']); + $this->db->update('user_mess', array('read'=>'0', 'read_date'=>date("Y-m-d H:i:s"))); + } + } + ?> +
+ + +
+
+
+

+ +
+ : , : +
+
+
+
+
+ + + +
+
+ +
+
+ + +
+ +
+ " /> + + +
+
+ + + +
+
+
+ + + + + + + + + db->where('status', 1); + $this->db->where_in('type', array('message','reply_message')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $this->db->limit(10); + $query = $this->db->get('user_mess')->result_array(); + + foreach($query as $q): + ?> + + + + + + +
+
+
+ + + +
+
+ + + + + + + + + + + db->where('status', 1); + $this->db->where_in('type', array('message','reply_message')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $query = $this->db->get('user_mess')->result_array(); + + foreach($query as $q): + ?> + + + + + + + + +
+ +
+
+ \ No newline at end of file diff --git a/application/views/user/messagebox/new_message_view.php b/application/views/user/messagebox/new_message_view.php new file mode 100755 index 0000000..6c0d351 --- /dev/null +++ b/application/views/user/messagebox/new_message_view.php @@ -0,0 +1,250 @@ + + + + + + + + + + + + +
+
+ + + $_GET['product_id'])); + $plus_content = ' +
+

'.get_lang('Product Card').': '.$product['name'].'

+ + '.$product['description'].' +
+
    +
  • '.get_lang('Barcode Code').': '.$product['code'].'
  • +
  • '.get_lang('the current amount of product').': '.round($product['amount']).'
  • +
+
+
'; + + $custom_title = get_lang('Product Card').': '.$product['name']; + } + + if(isset($_GET['account_id'])) + { + $account = get_account(array('id'=>$_GET['account_id'])); + $plus_content = ' +
+

'.get_lang('Product Card').': '.$account['name'].' '.$account['county'].'/'.$account['city'].'

+ + '.get_lang('phone').':'.$account['phone'].' '.get_lang('gsm').':'.$account['gsm'].' +
+
    +
  • '.get_lang('Barcode Code').': '.$account['code'].'
  • +
  • '.get_lang('Balance').': '.get_account_balance($account['balance']).'
  • +
+
+
'; + + $custom_title = get_lang('Account Card').': '.$account['name']; + } + + + if(isset($_GET['invoice_id'])) + { + $invoice = get_invoice($_GET['invoice_id']); + $account = get_account(array('id'=>$invoice['account_id'])); + $plus_content = ' +
+

'.get_lang('Invoice').': #'.$invoice['id'].' / '.$account['name'].'

+
+ + '; + + $this->db->where('status', 1); + $this->db->where('invoice_id', $invoice['id']); + $items = $this->db->get('invoice_items')->result_array(); + + $plus_content = $plus_content.' +
+ + + + + + + + + + + '; + foreach($items as $item): + + $product = get_product($item['product_id']); + + $plus_content = $plus_content.' + + + + + + + '; + endforeach; + + $plus_content = $plus_content.' + + + + + + + + + +
'.get_lang('Product Name').''.get_lang('Quantity').''.get_lang('Total').''.get_lang('Tax').''.get_lang('Sub Total').'
'.$product['code'].''.$item['quantity'].' * '.get_money($item['quantity_price']).''.get_money($item['total']).'% ('.$item['tax_rate'].') '.get_money($item['tax']).''.get_money($item['sub_total']).'
'.get_lang('Grand Total').''.$invoice['quantity'].''.get_money($invoice['total']).''.get_money($invoice['tax']).''.get_money($invoice['grand_total']).'
+
+
'; + + $custom_title = get_lang('Invoice').': #'.$invoice['id'].' ['.$account['name'].']'; + } + ?> + + + form_validation->set_rules('receiver_id', get_lang('Receiver'), 'required'); + $this->form_validation->set_rules('title', get_lang('Title'), 'required|min_length[3]|max_length[50]'); + $this->form_validation->set_rules('content', get_lang('Message'), 'required|min_length[3]|max_length[5000]'); + + if($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + + $data['receiver_id'] = $this->input->post('receiver_id'); + $data['title'] = $this->input->post('title'); + $data['content'] = $plus_content.$this->input->post('content'); + $message_id = add_message($data); + if($message_id > 0) + { + add_log(array('date'=>$_POST['log_time'], 'type'=>'message', 'title'=>get_lang('New Message'), 'description'=>get_lang('Send a new message').' ['.$_POST['display_name'].']')); + alertbox('alert-success', get_lang('Message has been sent.')); + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + } + ?> + + + +
+
+ + +
+ + +
+
+
+ +
+ + +
+
+ + + +
+ + +
+ + +
+ " /> + + +
+
+ +
+
+
+ + + + + + + + + db->where('status', 1); + $this->db->where_in('type', array('message','reply_message')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $this->db->limit(10); + $query = $this->db->get('user_mess')->result_array(); + + foreach($query as $q): + ?> + + + + + + +
+
+
+ + + \ No newline at end of file diff --git a/application/views/user/messagebox/outbox_view.php b/application/views/user/messagebox/outbox_view.php new file mode 100755 index 0000000..9203403 --- /dev/null +++ b/application/views/user/messagebox/outbox_view.php @@ -0,0 +1,38 @@ + + + + +
+
+ + + + + + + + + + + db->where('status', 1); + $this->db->where_in('type', array('message')); + $this->db->where('inbox_view', '1'); + $this->db->where('sender_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $query = $this->db->get('user_mess')->result_array(); + + foreach($query as $q): + ?> + + + + + + + + +
+ +
+
diff --git a/application/views/user/new_user_view.php b/application/views/user/new_user_view.php new file mode 100755 index 0000000..5885338 --- /dev/null +++ b/application/views/user/new_user_view.php @@ -0,0 +1,156 @@ + + + + + + +
+
+form_validation->set_rules('email', get_lang('E-mail'), 'required|min_length[3]|max_length[50]'); + $this->form_validation->set_rules('name', get_lang('Name'), 'required|min_length[2]|max_length[20]'); + $this->form_validation->set_rules('surname', get_lang('Surname'), 'required|min_length[2]|max_length[20]'); + $this->form_validation->set_rules('password', get_lang('Password'), 'required|min_length[4]|max_length[32]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $user['email'] = $this->input->post('email'); + $user['name'] = $this->input->post('name'); + $user['surname'] = $this->input->post('surname'); + $user['password'] = $this->input->post('password'); + $user['password_again'] = $this->input->post('password_again'); + $user['role'] = $this->input->post('role'); + + // Have user email? + $this->db->where('status', '1'); + $this->db->where('email', $user['email']); + $query = $this->db->get('users')->result_array(); + if($query) + { + alertbox('alert-danger', get_lang('E-mail address is registered.')); + $continue = false; + } + + if($user['password'] != $user['password_again']) + { + alertbox('alert-danger', get_lang('Passwords are not the same.')); + $continue = false; + } + + if($continue) + { + $user_id = add_user($user); + if($user_id > 0) + { + $log['type'] = 'user'; + $log['other_id'] = 'user_id:'.$user_id; + $log['title'] = get_lang('New User'); + $log['description'] = get_lang('New user created.').'['.$user_id.']' ; + add_log($log); + alertbox('alert-success', get_lang('Operation is Successful'), ''); + } + } + + + + + } +} +?> + + +
+
+
+ +
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+ + + +
+
+
+ + +
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+
+ +
+ + +
+
+
+
+ +

+
    +
  • +
  • +
  • +
  • +
+
+
+
+ +
\ No newline at end of file diff --git a/application/views/user/no_access.php b/application/views/user/no_access.php new file mode 100755 index 0000000..8d4a39b --- /dev/null +++ b/application/views/user/no_access.php @@ -0,0 +1,6 @@ +
+

+

+

+

:

+
\ No newline at end of file diff --git a/application/views/user/profile_view.php b/application/views/user/profile_view.php new file mode 100755 index 0000000..03cbcf5 --- /dev/null +++ b/application/views/user/profile_view.php @@ -0,0 +1,263 @@ + + +$user_id)); ?> + + +
+
+ + + + + + + + + + +
+ + +
+
+ form_validation->set_rules('email', get_lang('E-mail'), 'required|min_length[3]|max_length[50]'); + $this->form_validation->set_rules('name', get_lang('Name'), 'required|min_length[2]|max_length[20]'); + $this->form_validation->set_rules('surname', get_lang('Surname'), 'required|min_length[2]|max_length[20]'); + $this->form_validation->set_rules('password', get_lang('Password'), 'min_length[4]|max_length[32]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $data['email'] = $this->input->post('email'); + $data['name'] = $this->input->post('name'); + $data['surname'] = $this->input->post('surname'); + if($_POST['password'] != ''){ $data['password'] = md5($this->input->post('password')); } + $data['role'] = $this->input->post('role'); + + // Have barcode? + $this->db->where('status', '1'); + $this->db->where('email', $data['email']); + $this->db->where_not_in('id', $user['id']); + $query = $this->db->get('users')->result_array(); + if($query) + { + alertbox('alert-danger', get_lang('E-mail address is registered.')); + $continue = false; + } + + + if($continue) + { + if(update_user($user['id'], $data)) + { + alertbox('alert-success', get_lang('Operation is Successful'), ''); + $user = get_user(array('id'=>$user_id)); + ?> + + + +
+
+
+ +
+ +
+ + +
+
+
+ +
+ + > +
+
+ +
+
+
+ + +
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+
+ +
+ + + + +
+
+
+ + + + + +
+
+ + false)); ?> +
+ + + +
+ + + + + +
+
+
+
+ + + + 0) + { + echo "Return Code: " . $_FILES["avatar"]["error"] . "
"; + } + else + { + // eger /user klasoru yok ise olustur + if(!file_exists("uploads")){ mkdir("uploads"); } + + if(!file_exists("uploads/avatar")){ mkdir("uploads/avatar"); } + + move_uploaded_file($_FILES["avatar"]["tmp_name"],'uploads/avatar/'.$user['id'].'.jpg'); + + $this->db->where('id', $user['id']); + $this->db->update('users', array('avatar'=>'uploads/avatar/'.$user['id'].'.jpg')); + + $user = get_user(array('id'=>$user_id)); + + alertbox('alert-success', get_lang('Profile picture was uploaded successfully.')); + + $log['type'] = 'profile'; + $log['other_id'] = 'user:'.$user['id']; + $log['title'] = get_lang('Profile Photo'); + $log['description'] = get_lang('Profile Update'); + add_log($log); + + } + } + else + { + alertbox('alert-danger', '

Bilinmeyen bir hata oluştu.

+
    +
  • Lütfen resim dosyası yükleyiniz. (jpg, jpeg, gif, png)
  • +
  • Yüklemeye çalıştığınız resim dosyası 2 MB küçük olmalı
  • +
+ '); + } + } + ?> + +
+ + + + + +
+ + + +
+ + + +
+
+
+ diff --git a/application/views/user/task/new_task_view.php b/application/views/user/task/new_task_view.php new file mode 100755 index 0000000..b4d2667 --- /dev/null +++ b/application/views/user/task/new_task_view.php @@ -0,0 +1,277 @@ + + + + + + + + + + +
+
+ + + + $_GET['product_id'])); + $plus_content = ' +
+

'.get_lang('Product Card').': '.$product['name'].'

+ + '.$product['description'].' +
+
    +
  • '.get_lang('Barcode Code').': '.$product['code'].'
  • +
  • '.get_lang('the current amount of product').': '.round($product['amount']).'
  • +
+
+
'; + + $custom_title = get_lang('Product Card').': '.$product['name']; + } + + if(isset($_GET['account_id'])) + { + $account = get_account(array('id'=>$_GET['account_id'])); + $plus_content = ' +
+

'.get_lang('Product Card').': '.$account['name'].' '.$account['county'].'/'.$account['city'].'

+ + '.get_lang('phone').':'.$account['phone'].' '.get_lang('gsm').':'.$account['gsm'].' +
+
    +
  • '.get_lang('Barcode Code').': '.$account['code'].'
  • +
  • '.get_lang('Balance').': '.get_account_balance($account['balance']).'
  • +
+
+
'; + + $custom_title = get_lang('Account Card').': '.$account['name']; + } + ?> + + + form_validation->set_rules('receiver_id', get_lang('Receiver'), 'required'); + $this->form_validation->set_rules('title', get_lang('Title'), 'required|min_length[3]|max_length[50]'); + $this->form_validation->set_rules('content', get_lang('Message'), 'required|min_length[3]|max_length[5000]'); + + if($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $data['receiver_id'] = $this->input->post('receiver_id'); + $data['start_date'] = $this->input->post('start_date'); + $data['finish_date'] = $this->input->post('finish_date'); + $data['title'] = $this->input->post('title'); + $data['content'] = $plus_content.$this->input->post('content'); + $task_id = add_task($data); + if($task_id > 0) + { + add_log(array('date'=>$_POST['log_time'], 'type'=>'task', 'title'=>get_lang('New Task'), 'description'=>get_lang('Posted a new task').' ['.$_POST['display_name'].']')); + alertbox('alert-success', get_lang('The new task has been created.')); + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + } + + + if(isset($_GET['invoice_id'])) + { + $invoice = get_invoice($_GET['invoice_id']); + $account = get_account(array('id'=>$invoice['account_id'])); + $plus_content = ' +
+

'.get_lang('Invoice').': #'.$invoice['id'].' / '.$account['name'].'

+
+ + '; + + $this->db->where('status', 1); + $this->db->where('invoice_id', $invoice['id']); + $items = $this->db->get('invoice_items')->result_array(); + + $plus_content = $plus_content.' +
+ + + + + + + + + + + '; + foreach($items as $item): + + $product = get_product($item['product_id']); + + $plus_content = $plus_content.' + + + + + + + '; + endforeach; + + $plus_content = $plus_content.' + + + + + + + + + +
'.get_lang('Product Name').''.get_lang('Quantity').''.get_lang('Total').''.get_lang('Tax').''.get_lang('Sub Total').'
'.$product['code'].''.$item['quantity'].' * '.get_money($item['quantity_price']).''.get_money($item['total']).'% ('.$item['tax_rate'].') '.get_money($item['tax']).''.get_money($item['sub_total']).'
'.get_lang('Grand Total').''.$invoice['quantity'].''.get_money($invoice['total']).''.get_money($invoice['tax']).''.get_money($invoice['grand_total']).'
+
+
'; + + $custom_title = get_lang('Invoice').': #'.$invoice['id'].' ['.$account['name'].']'; + } + ?> + + + + +
+
+ + +
+ + +
+
+ +
+
+
+ +
+ + +
+
+
+
+
+ +
+ + +
+
+
+
+ + + +
+ +
+ + +
+
+ + + +
+ + +
+ +
+ " /> + + +
+
+ +
+
+
+ db->where('status', 1); + $this->db->where_in('type', array('task','reply_task')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $this->db->limit(10); + $query = $this->db->get('user_mess')->result_array(); + ?> + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + \ No newline at end of file diff --git a/application/views/user/task/outbound_task_view.php b/application/views/user/task/outbound_task_view.php new file mode 100755 index 0000000..ec4fd4b --- /dev/null +++ b/application/views/user/task/outbound_task_view.php @@ -0,0 +1,46 @@ + + + +
+
+ + + + + + + + + + + + + + db->where('status', 1); + $this->db->where_in('type', array('task','reply_task')); + $this->db->where('inbox_view', '1'); + $this->db->where('sender_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $query = $this->db->get('user_mess')->result_array(); + + foreach($query as $q): + + $q['task_status_text'] = ''; + if($q['task_status'] == 'open'){$q['task_status_text'] = get_lang('Open');}else{$q['task_status_text'] = get_lang('Close');} + ?> + + + + + + + + + + + +
+ +
+
\ No newline at end of file diff --git a/application/views/user/task/task_view.php b/application/views/user/task/task_view.php new file mode 100755 index 0000000..ea23c9d --- /dev/null +++ b/application/views/user/task/task_view.php @@ -0,0 +1,386 @@ + + + + + + +db->where('id', $task_id); +$task = $this->db->get('user_mess')->row_array(); + +// task redirect +if($task['top_id'] > 0){redirect(site_url('user/task/'.$task['top_id']));} + +// task status change +if(isset($_GET['task_status'])) +{ + $this->db->where('id', $task_id); + $this->db->update('user_mess', array('task_status'=>$_GET['task_status'])); + + if($task['receiver_id'] == get_the_current_user('id')) + { + $data['receiver_id'] = $task['sender_id']; + $data['sender_id'] = $task['receiver_id']; + $data['read'] = '['.$task['sender_id'].']'; + } + elseif($task['sender_id'] == get_the_current_user('id')) + { + $data['receiver_id'] = $task['receiver_id']; + $data['sender_id'] = $task['sender_id']; + $data['read'] = '['.$task['receiver_id'].']'; + } + + $data['title'] = $task['title']; + $data['top_id'] = $task['id']; + $data['type'] = 'reply_task'; + $data['start_date'] = $task['start_date']; + $data['finish_date'] = $task['finish_date']; + if($_GET['task_status']=='close'){$data['content'] = get_lang('This task was closed by me.');} + else if($_GET['task_status']=='open'){$data['content'] = get_lang('This task is re-opened by me.');} + add_task($data); + + // all task and children task status updated + $this->db->where('top_id', $task_id); + $this->db->update('user_mess', array('task_status'=>$_GET['task_status'])); +} + +// task information +$this->db->where('id', $task_id); +$task = $this->db->get('user_mess')->row_array(); + + + + + + + +// task status info +if(isset($_GET['status'])) +{ + if($task['sender_id'] == get_the_current_user('id')) + { + $this->db->where('id', $task['id']); + $this->db->update('user_mess', array('status'=>$_GET['status'])); + + // reload information + $this->db->where('id', $task_id); + $task = $this->db->get('user_mess')->row_array(); + + $log['type'] = 'task'; + $log['other_id'] = 'task:'.$task['id']; + $log['title'] = get_lang('Task Manager'); + $log['description'] = get_lang('Status Changed').' ['.$_GET['status'].']'; + add_log($log); + } + else + { + alertbox('alert-warning', get_lang('Change the status of the task of the task started.'), '', false); + } +} +if($task['status'] == '0') +{ + alertbox('alert-warning', get_lang('This task has been deleted.'), '', false); +} + + + +// read message +if($task['read']=='['.get_the_current_user('id').']') +{ + if($task['receiver_id'] == get_the_current_user('id')) + { + $this->db->where('id', $task['id']); + $this->db->update('user_mess', array('read'=>'0', 'read_date'=>date("Y-m-d H:i:s"))); + } +} + +if($task['receiver_id'] == get_the_current_user('id')) +{ + $this->db->where('id', $task['id']); + $this->db->update('user_mess', array('inbox_view'=>'1')); +} +?> + + + + + + + + + + + +
+
+ + form_validation->set_rules('content', get_lang('Message'), 'required|min_length[3]|max_length[1000]'); + + if($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + if($task['receiver_id'] == get_the_current_user('id')) + { + $data['receiver_id'] = $task['sender_id']; + $data['sender_id'] = $task['receiver_id']; + $data['read'] = '['.$task['sender_id'].']'; + } + elseif($task['sender_id'] == get_the_current_user('id')) + { + $data['receiver_id'] = $task['receiver_id']; + $data['sender_id'] = $task['sender_id']; + $data['read'] = '['.$task['receiver_id'].']'; + } + + $data['title'] = $task['title']; + $data['top_id'] = $task['id']; + $data['type'] = 'reply_task'; + $data['start_date'] = $task['start_date']; + $data['finish_date'] = $task['finish_date']; + $data['content'] = $this->input->post('content'); + $task_id = add_task($data); + if($task_id > 0) + { + add_log(array('date'=>$_POST['log_time'], 'type'=>'message', 'title'=>'New Message', 'description'=>'posted a new message reply['.$task['id'].']')); + alertbox('alert-success', get_lang('Message has been sent.')); + + } + else + { + alertbox('alert-danger', get_lang('Error!')); + } + } + } + ?> + + + + +
+
+
+
+

+ + [] + + [] + +

+

+ : / : +
+
+
+
+ +
+ +
+
+
+

+ +
+ + : , : + + +
+
+
+
+ +
+ + db->where('status', '1'); + $this->db->where('top_id', $task['id']); + $this->db->order_by('date', 'ASC'); + $replys = $this->db->get('user_mess')->result_array(); + ?> + + db->where('id', $reply['id']); + $this->db->update('user_mess', array('read'=>'0', 'read_date'=>date("Y-m-d H:i:s"))); + } + } + + // read message + if($reply['read']=='['.get_the_current_user('id').']') + { + if($task['receiver_id'] == get_the_current_user('id')) + { + $this->db->where('id', $reply['id']); + $this->db->update('user_mess', array('read'=>'0', 'inbox_view'=>'0', 'read_date'=>date("Y-m-d H:i:s"))); + } + } + ?> +
+ + +
+
+
+

+ +
+ : , : +
+
+
+
+
+ + + +
+
+ +
+
+ + +
+ +
+ " /> + + +
+
+ + + +
+
+
+ db->where('status', 1); + $this->db->where_in('type', array('task','reply_task')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $this->db->limit(10); + $query = $this->db->get('user_mess')->result_array(); + ?> + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + +
+
+ + + + + + + + + + + + + + db->where('status', 1); + $this->db->where_in('type', array('task','reply_task')); + $this->db->where('inbox_view', '1'); + $this->db->where('receiver_id', get_the_current_user('id')); + $this->db->order_by('recent_activity', 'DESC'); + $query = $this->db->get('user_mess')->result_array(); + + foreach($query as $q): + + $q['task_status_text'] = ''; + if($q['task_status'] == 'open'){$q['task_status_text'] = get_lang('Open');}else{$q['task_status_text'] = get_lang('Close');} + ?> + + + + + + + + + + + +
+ +
+
+ \ No newline at end of file diff --git a/application/views/user/user_list_view.php b/application/views/user/user_list_view.php new file mode 100755 index 0000000..215f301 --- /dev/null +++ b/application/views/user/user_list_view.php @@ -0,0 +1,55 @@ +db->where('status', 1); +$query = $this->db->get('users')->result_array(); +?> + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+
+
+
+ +
+
\ No newline at end of file diff --git a/application/views/user/user_view.php b/application/views/user/user_view.php new file mode 100755 index 0000000..8e5cffd --- /dev/null +++ b/application/views/user/user_view.php @@ -0,0 +1,151 @@ + 3): ?> + + +db->where('id', $user_id); + $this->db->update('users', array('status'=>$_GET['status'])); +} +?> + +$user_id)); ?> + + +
+
+ + + "'.get_lang('Activate').'"', '', false); ?> + + +form_validation->set_rules('email', get_lang('E-mail'), 'required|min_length[3]|max_length[50]'); + $this->form_validation->set_rules('name', get_lang('Name'), 'required|min_length[2]|max_length[20]'); + $this->form_validation->set_rules('surname', get_lang('Surname'), 'required|min_length[2]|max_length[20]'); + $this->form_validation->set_rules('password', get_lang('Password'), 'min_length[4]|max_length[32]'); + + if ($this->form_validation->run() == FALSE) + { + alertbox('alert-danger', '', validation_errors()); + } + else + { + $data['email'] = $this->input->post('email'); + $data['name'] = $this->input->post('name'); + $data['surname'] = $this->input->post('surname'); + if($_POST['password'] != ''){ $data['password'] = md5($this->input->post('password')); } + $data['role'] = $this->input->post('role'); + + // Have barcode? + $this->db->where('status', '1'); + $this->db->where('email', $data['email']); + $this->db->where_not_in('id', $user['id']); + $query = $this->db->get('users')->result_array(); + if($query) + { + alertbox('alert-danger', get_lang('E-mail address is registered.')); + $continue = false; + } + + + if($continue) + { + if(update_user($user['id'], $data)) + { + alertbox('alert-success', get_lang('Operation is Successful'), ''); + $user = get_user(array('id'=>$user_id)); + ?> + + + + +
+
+
+ +
+ +
+ + +
+
+
+ +
+ + > +
+
+ + + +
+
+
+ + +
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+
+ +
+ + + + + +
+
+
+
+ +

+
    +
  • +
  • +
  • +
  • +
+
+
+
+ +
+ \ No newline at end of file diff --git a/config.php b/config.php new file mode 100755 index 0000000..7e04d11 --- /dev/null +++ b/config.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/configuration.php b/configuration.php deleted file mode 100644 index 282b940..0000000 --- a/configuration.php +++ /dev/null @@ -1,13 +0,0 @@ - - - \ No newline at end of file diff --git a/exit.php b/exit.php deleted file mode 100644 index 2606349..0000000 --- a/exit.php +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - <?php config('name'); ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- -
-
- -
- -
-
\ No newline at end of file diff --git a/footer.php b/footer.php deleted file mode 100644 index cb3ce43..0000000 --- a/footer.php +++ /dev/null @@ -1,18 +0,0 @@ - -

- -
-
- - - -
-
- : stop(); ?> -
-
- -

-
- - diff --git a/header.php b/header.php deleted file mode 100644 index 6965152..0000000 --- a/header.php +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - <?php config('name'); ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
- -
-
- -
-
-

- -
-
- $page_access_level and $page_access_level > 0 ) - { - alert_box('alert', get_lang('Do not have permission to access this page')); - exit; - } - ?> -
-
- - - \ No newline at end of file diff --git a/include/class/barcode/README.txt b/include/class/barcode/README.txt deleted file mode 100644 index 1bdb958..0000000 --- a/include/class/barcode/README.txt +++ /dev/null @@ -1,12 +0,0 @@ -This script is free for personal use. The program is provide "AS IS" -without warranty of any kind. If you want to use it as -commercial use, you have to purchase it on -http://www.barcodephp.com -You must let the copyright intact. - -Ce script est gratuit pour usage personnel. Le programme est -fourni "TEL QUEL" sans aucune garantie que ce soit. -Si vous voulez l'utiliser pour un usage commercial, -vous devez l'acheter sur -http://www.barcodephp.com -Vous devez laisser les droits d'auteur intacts. \ No newline at end of file diff --git a/include/class/barcode/VERSION b/include/class/barcode/VERSION deleted file mode 100644 index b071b96..0000000 --- a/include/class/barcode/VERSION +++ /dev/null @@ -1,87 +0,0 @@ -v5.0.1 18 apr 2012 Fix Navigation support -v5.0.0 18 apr 2012 HTML5 support. Fix some exception file inclusion bugs. - Using space instead of tabs! Added support to change the boxfix. - Added support to Intelligent Mail. Better support for Postnet. Following standard for printing. - Added getters in GS1-128. -v4.1.0 3 aug 2011 Support for transparent background -v4.0.0 15 apr 2011 Brand new version which includes some breaking changes. - Now supports the possibility to add labels around the barcode really easily thanks to the method addLabel() - You can also specify the alignment of the label, rotation, etc. - If the label is bigger than the barcode itself, the image will get bigger to avoid text clipping. - Add the setRatio method for I25 barcodes - Fix EAN-13 and ISBN -v3.0.2 4 apr 2011 Fixing the test.php -v3.0.1 26 mar 2011 Minor fixes for IE9 -v3.0.0 21 mar 2011 Better support for failure instead of writing the error on the UI, an exception is being thrown. -v2.2.0 13 feb 2010 Added the support for GS1-128 (EAN-128). - Fix ISBN text support to be the right font. - Make sure the /html files are formatted. -v2.1.0 8 nov 2009 Added a way to change the DPI before saving (BCGDrawing::setDPI()). Set the value to null if you want to improve the performance and still have 72dpi. - But you can set it to 300 if you wish to print it. - You do not need an additional DLL for this. - Added a way to rotate in degree the barcode before saving (BCGDrawing::setRotationAngle()). - Added a verification if you have GD installed... So that way you know it before contacting support :) - Fix HTML display for Code 93 and Code 39 Extended buttons - You can now specify a specific table for Code 128. For instance, if you want to force to use the table B, you would write the following to parse - array(CODE128_B, 'The Text To Encode') - The default table selection for Code 128 is automatically chosen. - Fix many PHP4 errors. -v2.0.1Fix 28 jul 2009 Change UPC-E encoding from UTF-8 to ANSI -v2.0.1 21 may 2009 Fix the Code 128C, Fix EAN-8, EAN-13, UPC-A, UPC-E and Postnet padding, MSI checksum can be 1 or 2 - Fix JoinDraw class - Added GIF and WBMP support - Fix the Checksum Text displayed for ISBN - Fix padding for ISBN with setOffsetY - Fix Button in /html for IE8 -v2.0.0 23 apr 2008 The new version has been released... All the codes have been revamped to fit with - common file for 2D barcodes. Instead of using "setText()" method, the method - parse() is used. - Thickness is modified by the scale. - Code 128: it has been modified completely, no need to specify which encoding you want to - use, it will select it for you automatically and try to get the shortest barcode. - Codabar: you can't only put one letter as a barcode. - Code 93: supports now the extended full ASCII 0 to 127 - Code 39 extended has been added in a separate file since the extended - version of Code 39 is totally optional. - Codabar has been fixed for B and C letter - We got our real nice domain: http://www.barcodephp.com -v1.3.0 13 apr 2007 Remove ISBN from EAN-13 and a new file has been created to handle - ISBN-10 and ISBN-13. -v1.2.4 1 feb 2007 Fix Code128. There were some errors dealing with C table -v1.2.3pl1 11 mar 2006 Correct the EAN-13/ISBN file. There was a problem with displaying correctly an ISBN. -v1.2.3 8 feb 2006 Int for font is no longer deprecated and can be used. - Correct many labels' positions : ean8, ean13, upca, upce - Correct getWidth of Font. -v1.2.3b 5 jan 2006 Add separate checksum method to calculate and get this special number created and a way to display it with the label. - Correct code for PHP5.1 compatibility. Selecting a char by { } is now deprecated. Using of [ ] is used instead. - Correct checksum for Code11. In some case, the checksum was bad. - Correct problem displaying label with text under the baseline (letters such as p, g...). - SIZE_SPACING_FONT_END has been suppressed since the previous bug has been fixed. - Correct label if two barcode were generated with the same font. The font is now cloned immediately before using. - The FDrawing has new methods now, use setBarcode and draw instead of add_barcode and draw_all. Only one barcode per FDrawing is possible now. - Correct errors of othercode if no text font has been selected. - othercode was not working for PHP4 due to the lack of the str_split function. Now the function is emulated. - New file : JoinDraw allows you to join 2 graphic and align each of them. (Useful for UCPExt). PHP5 only - Currently Working on UPC-A label -v1.2.2 23 jul 2005 Correct checksum for i25 and s25 barcode (thanks to Gerald Pienkowski (Germany)) - Enhance rapidity for some barcode - Change almost all comment in files : the update 1.2.1 was in 2005, not in 2004 ;) -v1.2.1 27 jun 2005 The php code is now cleaner :) - Increase rapidity of execution - Type verifications in conditions - NEW support of exterior font (Arial, Courier, etc.) with a size that you can specify - Use PHP fonts is deprecated and they will be deleted in further versions. - Remove the "alt" text on the image (IE displays it as a tooltip) - Color class has been enhanced and accept new parameter for constructor - Now you don't have to provide a specific size of the image, it will be calculated automatically for barcodes and errors - Added the version number at the bottom of the script html. - Correcting code 128 to output code correctly when passing from code C to another code -v1.05 27 jun 2005 UPCext2 has been corrected. It could display a wrong barcode. - Correcting UPC-A, bad output when writting text -v1.04 2 apr 2005 Correcting some bugs and makes available for commercial usage : purchase it on http://www.barcodephp.com -v1.03 28 mar 2005 Correcting DrawChar -v1.02 8 mar 2005 Transforming PHPDOC and converting to XHTML1.0 Transitionnal - And adding a special option that check if you have PHP5 installed - Because to many people are writing to me that saying the script doesn't work (because they have PHP4). -v1.01 7 jul 2004 Correcting code39.barcode.php -v1.00 17 jun 2004 New :) \ No newline at end of file diff --git a/include/class/barcode/barcode.php b/include/class/barcode/barcode.php deleted file mode 100644 index 4a62caf..0000000 --- a/include/class/barcode/barcode.php +++ /dev/null @@ -1,54 +0,0 @@ -setScale(2); // Resolution - $code->setThickness(30); // Thickness - $code->setForegroundColor($color_black); // Color of bars - $code->setBackgroundColor($color_white); // Color of spaces - $code->setFont($font); // Font (or 0) - $code->parse($barcode); // Text -} catch(Exception $exception) { - $drawException = $exception; -} - -/* Here is the list of the arguments -1 - Filename (empty : display on screen) -2 - Background color */ -$drawing = new BCGDrawing('', $color_white); -if($drawException) { - $drawing->drawException($drawException); -} else { - $drawing->setBarcode($code); - $drawing->draw(); -} - -// Header that says it is an image (remove it if you save the barcode to a file) -header('Content-Type: image/png'); - -// Draw (or save) the image into PNG format. -$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); -?> \ No newline at end of file diff --git a/include/class/barcode/barcode_show.php b/include/class/barcode/barcode_show.php deleted file mode 100644 index 04de379..0000000 --- a/include/class/barcode/barcode_show.php +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/include/class/class.upload.php b/include/class/class.upload.php deleted file mode 100644 index 3f48dcc..0000000 --- a/include/class/class.upload.php +++ /dev/null @@ -1,5136 +0,0 @@ - - * @license http://opensource.org/licenses/gpl-license.php GNU Public License - * @copyright Colin Verot - * @package cmf - * @subpackage external - */ - -/** - * Class upload - * - * What does it do? - * - * It manages file uploads for you. In short, it manages the uploaded file, - * and allows you to do whatever you want with the file, especially if it - * is an image, and as many times as you want. - * - * It is the ideal class to quickly integrate file upload in your site. - * If the file is an image, you can convert, resize, crop it in many ways. - * You can also apply filters, add borders, text, watermarks, etc... - * That's all you need for a gallery script for instance. Supported formats - * are PNG, JPG, GIF and BMP. - * - * You can also use the class to work on local files, which is especially - * useful to use the image manipulation features. The class also supports - * Flash uploaders. - * - * The class works with PHP 4 and 5, and its error messages can - * be localized at will. - * - * How does it work? - * - * You instanciate the class with the $_FILES['my_field'] array - * where my_field is the field name from your upload form. - * The class will check if the original file has been uploaded - * to its temporary location (alternatively, you can instanciate - * the class with a local filename). - * - * You can then set a number of processing variables to act on the file. - * For instance, you can rename the file, and if it is an image, - * convert and resize it in many ways. - * You can also set what will the class do if the file already exists. - * - * Then you call the function {@link process} to actually perform the actions - * according to the processing parameters you set above. - * It will create new instances of the original file, - * so the original file remains the same between each process. - * The file will be manipulated, and copied to the given location. - * The processing variables will be reset once it is done. - * - * You can repeat setting up a new set of processing variables, - * and calling {@link process} again as many times as you want. - * When you have finished, you can call {@link clean} to delete - * the original uploaded file. - * - * If you don't set any processing parameters and call {@link process} - * just after instanciating the class. The uploaded file will be simply - * copied to the given location without any alteration or checks. - * - * Don't forget to add enctype="multipart/form-data" in your form - * tag
if you want your form to upload the file. - * - * How to use it?
- * Create a simple HTML file, with a form such as: - *
- * 
- *   
- *   
- * 
- * 
- * Create a file called upload.php: - *
- *  $handle = new upload($_FILES['image_field']);
- *  if ($handle->uploaded) {
- *      $handle->file_new_name_body   = 'image_resized';
- *      $handle->image_resize         = true;
- *      $handle->image_x              = 100;
- *      $handle->image_ratio_y        = true;
- *      $handle->process('/home/user/files/');
- *      if ($handle->processed) {
- *          echo 'image resized';
- *          $handle->clean();
- *      } else {
- *          echo 'error : ' . $handle->error;
- *      }
- *  }
- * 
- * - * How to process local files?
- * Use the class as following, the rest being the same as above: - *
- *  $handle = new upload('/home/user/myfile.jpg');
- * 
- * - * How to set the language?
- * Instantiate the class with a second argument being the language code: - *
- *  $handle = new upload($_FILES['image_field'], 'fr_FR');
- *  $handle = new upload('/home/user/myfile.jpg', 'fr_FR');
- * 
- * - * How to output the resulting file or picture directly to the browser?
- * Simply call {@link process}() without an argument (or with null as first argument): - *
- *  $handle = new upload($_FILES['image_field']);
- *  header('Content-type: ' . $handle->file_src_mime);
- *  echo $handle->Process();
- *  die();
- * 
- * Or if you want to force the download of the file: - *
- *  $handle = new upload($_FILES['image_field']);
- *  header('Content-type: ' . $handle->file_src_mime);
- *  header("Content-Disposition: attachment; filename=".rawurlencode($handle->file_src_name).";");
- *  echo $handle->Process();
- *  die();
- * 
- * - * Processing parameters (reset after each process) - *
    - *
  • {@link file_new_name_body} replaces the name body (default: null)
    - *
    $handle->file_new_name_body = 'new name';
  • - *
  • {@link file_name_body_add} appends to the name body (default: null)
    - *
    $handle->file_name_body_add = '_uploaded';
  • - *
  • {@link file_name_body_pre} prepends to the name body (default: null)
    - *
    $handle->file_name_body_pre = 'thumb_';
  • - *
  • {@link file_new_name_ext} replaces the file extension (default: null)
    - *
    $handle->file_new_name_ext = 'txt';
  • - *
  • {@link file_safe_name} formats the filename (spaces changed to _) (default: true)
    - *
    $handle->file_safe_name = true;
  • - *
  • {@link file_force_extension} forces an extension if there is't any (default: true)
    - *
    $handle->file_force_extension = true;
  • - *
  • {@link file_overwrite} sets behaviour if file already exists (default: false)
    - *
    $handle->file_overwrite = true;
  • - *
  • {@link file_auto_rename} automatically renames file if it already exists (default: true)
    - *
    $handle->file_auto_rename = true;
  • - *
  • {@link dir_auto_create} automatically creates destination directory if missing (default: true)
    - *
    $handle->auto_create_dir = true;
  • - *
  • {@link dir_auto_chmod} automatically attempts to chmod the destination directory if not writeable (default: true)
    - *
    $handle->dir_auto_chmod = true;
  • - *
  • {@link dir_chmod} chmod used when creating directory or if directory not writeable (default: 0777)
    - *
    $handle->dir_chmod = 0777;
  • - *
  • {@link file_max_size} sets maximum upload size (default: upload_max_filesize from php.ini)
    - *
    $handle->file_max_size = '1024'; // 1KB
  • - *
  • {@link mime_check} sets if the class check the MIME against the {@link allowed} list (default: true)
    - *
    $handle->mime_check = true;
  • - *
  • {@link no_script} sets if the class turns scripts into text files (default: true)
    - *
    $handle->no_script = false;
  • - *
  • {@link allowed} array of allowed mime-types (or one string). wildcard accepted, as in image/* (default: check {@link Init})
    - *
    $handle->allowed = array('application/pdf','application/msword', 'image/*');
  • - *
  • {@link forbidden} array of forbidden mime-types (or one string). wildcard accepted, as in image/* (default: check {@link Init})
    - *
    $handle->forbidden = array('application/*');
  • - *
- *
    - *
  • {@link image_convert} if set, image will be converted (possible values : ''|'png'|'jpeg'|'gif'|'bmp'; default: '')
    - *
    $handle->image_convert = 'jpg';
  • - *
  • {@link image_background_color} if set, will forcibly fill transparent areas with the color, in hexadecimal (default: null)
    - *
    $handle->image_background_color = '#FF00FF';
  • - *
  • {@link image_default_color} fallback color background color for non alpha-transparent output formats, such as JPEG or BMP, in hexadecimal (default: #FFFFFF)
    - *
    $handle->image_default_color = '#FF00FF';
  • - *
  • {@link jpeg_quality} sets the compression quality for JPEG images (default: 85)
    - *
    $handle->jpeg_quality = 50;
  • - *
  • {@link jpeg_size} if set to a size in bytes, will approximate {@link jpeg_quality} so the output image fits within the size (default: null)
    - *
    $handle->jpeg_size = 3072;
  • - *
- * The following eight settings can be used to invalidate an upload if the file is an image (note that open_basedir restrictions prevent the use of these settings) - *
    - *
  • {@link image_max_width} if set to a dimension in pixels, the upload will be invalid if the image width is greater (default: null)
    - *
    $handle->image_max_width = 200;
  • - *
  • {@link image_max_height} if set to a dimension in pixels, the upload will be invalid if the image height is greater (default: null)
    - *
    $handle->image_max_height = 100;
  • - *
  • {@link image_max_pixels} if set to a number of pixels, the upload will be invalid if the image number of pixels is greater (default: null)
    - *
    $handle->image_max_pixels = 50000;
  • - *
  • {@link image_max_ratio} if set to a aspect ratio (width/height), the upload will be invalid if the image apect ratio is greater (default: null)
    - *
    $handle->image_max_ratio = 1.5;
  • - *
  • {@link image_min_width} if set to a dimension in pixels, the upload will be invalid if the image width is lower (default: null)
    - *
    $handle->image_min_width = 100;
  • - *
  • {@link image_min_height} if set to a dimension in pixels, the upload will be invalid if the image height is lower (default: null)
    - *
    $handle->image_min_height = 500;
  • - *
  • {@link image_min_pixels} if set to a number of pixels, the upload will be invalid if the image number of pixels is lower (default: null)
    - *
    $handle->image_min_pixels = 20000;
  • - *
  • {@link image_min_ratio} if set to a aspect ratio (width/height), the upload will be invalid if the image apect ratio is lower (default: null)
    - *
    $handle->image_min_ratio = 0.5;
  • - *
- *
    - *
  • {@link image_resize} determines is an image will be resized (default: false)
    - *
    $handle->image_resize = true;
  • - *
- * The following variables are used only if {@link image_resize} == true - *
    - *
  • {@link image_x} destination image width (default: 150)
    - *
    $handle->image_x = 100;
  • - *
  • {@link image_y} destination image height (default: 150)
    - *
    $handle->image_y = 200;
  • - *
- * Use either one of the following - *
    - *
  • {@link image_ratio} if true, resize image conserving the original sizes ratio, using {@link image_x} AND {@link image_y} as max sizes if true (default: false)
    - *
    $handle->image_ratio = true;
  • - *
  • {@link image_ratio_crop} if true, resize image conserving the original sizes ratio, using {@link image_x} AND {@link image_y} as max sizes, and cropping excedent to fill the space. setting can also be a string, with one or more from 'TBLR', indicating which side of the image will be kept while cropping (default: false)
    - *
    $handle->image_ratio_crop = true;
  • - *
  • {@link image_ratio_fill} if true, resize image conserving the original sizes ratio, using {@link image_x} AND {@link image_y} as max sizes, fitting the image in the space and coloring the remaining space. setting can also be a string, with one or more from 'TBLR', indicating which side of the space the image will be in (default: false)
    - *
    $handle->image_ratio_fill = true;
  • - *
  • {@link image_ratio_no_zoom_in} same as {@link image_ratio}, but won't resize if the source image is smaller than {@link image_x} x {@link image_y} (default: false)
    - *
    $handle->image_ratio_no_zoom_in = true;
  • - *
  • {@link image_ratio_no_zoom_out} same as {@link image_ratio}, but won't resize if the source image is bigger than {@link image_x} x {@link image_y} (default: false)
    - *
    $handle->image_ratio_no_zoom_out = true;
  • - *
  • {@link image_ratio_x} if true, resize image, calculating {@link image_x} from {@link image_y} and conserving the original sizes ratio (default: false)
    - *
    $handle->image_ratio_x = true;
  • - *
  • {@link image_ratio_y} if true, resize image, calculating {@link image_y} from {@link image_x} and conserving the original sizes ratio (default: false)
    - *
    $handle->image_ratio_y = true;
  • - *
  • {@link image_ratio_pixels} if set to a long integer, resize image, calculating {@link image_y} and {@link image_x} to match a the number of pixels (default: false)
    - *
    $handle->image_ratio_pixels = 25000;
  • - *
- * The following image manipulations require GD2+ - *
    - *
  • {@link image_brightness} if set, corrects the brightness. value between -127 and 127 (default: null)
    - *
    $handle->image_brightness = 40;
  • - *
  • {@link image_contrast} if set, corrects the contrast. value between -127 and 127 (default: null)
    - *
    $handle->image_contrast = 50;
  • - *
  • {@link image_opacity} if set, changes the image opacity. value between 0 and 100 (default: null)
    - *
    $handle->image_opacity = 50;
  • - *
  • {@link image_tint_color} if set, will tint the image with a color, value as hexadecimal #FFFFFF (default: null)
    - *
    $handle->image_tint_color = '#FF0000';
  • - *
  • {@link image_overlay_color} if set, will add a colored overlay, value as hexadecimal #FFFFFF (default: null)
    - *
    $handle->image_overlay_color = '#FF0000';
  • - *
  • {@link image_overlay_opacity} used when {@link image_overlay_color} is set, determines the opacity (default: 50)
    - *
    $handle->image_overlay_opacity = 20;
  • - *
  • {@link image_negative} inverts the colors in the image (default: false)
    - *
    $handle->image_negative = true;
  • - *
  • {@link image_greyscale} transforms an image into greyscale (default: false)
    - *
    $handle->image_greyscale = true;
  • - *
  • {@link image_threshold} applies a threshold filter. value between -127 and 127 (default: null)
    - *
    $handle->image_threshold = 20;
  • - *
  • {@link image_unsharp} applies an unsharp mask, with alpha transparency support (default: false)
    - *
    $handle->image_unsharp = true;
  • - *
  • {@link image_unsharp_amount} unsharp mask amount, typically 50 - 200 (default: 80)
    - *
    $handle->image_unsharp_amount = 120;
  • - *
  • {@link image_unsharp_radius} unsharp mask radius, typically 0.5 - 1 (default: 0.5)
    - *
    $handle->image_unsharp_radius = 0.8;
  • - *
  • {@link image_unsharp_threshold} unsharp mask threshold, typically 0 - 5 (default: 1)
    - *
    $handle->image_unsharp_threshold = 0;
  • - *
- *
    - *
  • {@link image_text} creates a text label on the image, value is a string, with eventual replacement tokens (default: null)
    - *
    $handle->image_text = 'test';
  • - *
  • {@link image_text_direction} text label direction, either 'h' horizontal or 'v' vertical (default: 'h')
    - *
    $handle->image_text_direction = 'v';
  • - *
  • {@link image_text_color} text color for the text label, in hexadecimal (default: #FFFFFF)
    - *
    $handle->image_text_color = '#FF0000';
  • - *
  • {@link image_text_opacity} text opacity on the text label, integer between 0 and 100 (default: 100)
    - *
    $handle->image_text_opacity = 50;
  • - *
  • {@link image_text_background} text label background color, in hexadecimal (default: null)
    - *
    $handle->image_text_background = '#FFFFFF';
  • - *
  • {@link image_text_background_opacity} text label background opacity, integer between 0 and 100 (default: 100)
    - *
    $handle->image_text_background_opacity = 50;
  • - *
  • {@link image_text_font} built-in font for the text label, from 1 to 5. 1 is the smallest (default: 5)
    - *
    $handle->image_text_font = 4;
  • - *
  • {@link image_text_x} absolute text label position, in pixels from the left border. can be negative (default: null)
    - *
    $handle->image_text_x = 5;
  • - *
  • {@link image_text_y} absolute text label position, in pixels from the top border. can be negative (default: null)
    - *
    $handle->image_text_y = 5;
  • - *
  • {@link image_text_position} text label position withing the image, a combination of one or two from 'TBLR': top, bottom, left, right (default: null)
    - *
    $handle->image_text_position = 'LR';
  • - *
  • {@link image_text_padding} text label padding, in pixels. can be overridden by {@link image_text_padding_x} and {@link image_text_padding_y} (default: 0)
    - *
    $handle->image_text_padding = 5;
  • - *
  • {@link image_text_padding_x} text label horizontal padding (default: null)
    - *
    $handle->image_text_padding_x = 2;
  • - *
  • {@link image_text_padding_y} text label vertical padding (default: null)
    - *
    $handle->image_text_padding_y = 10;
  • - *
  • {@link image_text_alignment} text alignment when text has multiple lines, either 'L', 'C' or 'R' (default: 'C')
    - *
    $handle->image_text_alignment = 'R';
  • - *
  • {@link image_text_line_spacing} space between lines in pixels, when text has multiple lines (default: 0)
    - *
    $handle->image_text_line_spacing = 3;
  • - *
- *
    - *
  • {@link image_flip} flips image, wither 'h' horizontal or 'v' vertical (default: null)
    - *
    $handle->image_flip = 'h';
  • - *
  • {@link image_rotate} rotates image. possible values are 90, 180 and 270 (default: null)
    - *
    $handle->image_rotate = 90;
  • - *
  • {@link image_crop} crops image. accepts 4, 2 or 1 values as 'T R B L' or 'TB LR' or 'TBLR'. dimension can be 20, or 20px or 20% (default: null)
    - *
    $handle->image_crop = array(50,40,30,20); OR '-20 20%'...
  • - *
  • {@link image_precrop} crops image, before an eventual resizing. accepts 4, 2 or 1 values as 'T R B L' or 'TB LR' or 'TBLR'. dimension can be 20, or 20px or 20% (default: null)
    - *
    $handle->image_precrop = array(50,40,30,20); OR '-20 20%'...
  • - *
- *
    - *
  • {@link image_bevel} adds a bevel border to the image. value is thickness in pixels (default: null)
    - *
    $handle->image_bevel = 20;
  • - *
  • {@link image_bevel_color1} top and left bevel color, in hexadecimal (default: #FFFFFF)
    - *
    $handle->image_bevel_color1 = '#FFFFFF';
  • - *
  • {@link image_bevel_color2} bottom and right bevel color, in hexadecimal (default: #000000)
    - *
    $handle->image_bevel_color2 = '#000000';
  • - *
  • {@link image_border} adds a unicolor border to the image. accepts 4, 2 or 1 values as 'T R B L' or 'TB LR' or 'TBLR'. dimension can be 20, or 20px or 20% (default: null)
    - *
    $handle->image_border = '3px'; OR '-20 20%' OR array(3,2)...
  • - *
  • {@link image_border_color} border color, in hexadecimal (default: #FFFFFF)
    - *
    $handle->image_border_color = '#FFFFFF';
  • - *
  • {@link image_border_opacity} border opacity, integer between 0 and 100 (default: 100)
    - *
    $handle->image_border_opacity = 50;
  • - *
  • {@link image_border_transparent} adds a fading-to-transparent border to the image. accepts 4, 2 or 1 values as 'T R B L' or 'TB LR' or 'TBLR'. dimension can be 20, or 20px or 20% (default: null)
    - *
    $handle->image_border_transparent = '3px'; OR '-20 20%' OR array(3,2)...
  • - *
  • {@link image_frame} type of frame: 1=flat 2=crossed (default: null)
    - *
    $handle->image_frame = 2;
  • - *
  • {@link image_frame_colors} list of hex colors, in an array or a space separated string (default: '#FFFFFF #999999 #666666 #000000')
    - *
    $handle->image_frame_colors = array('#999999',  '#FF0000', '#666666', '#333333', '#000000');
  • - *
  • {@link image_frame_opacity} frame opacity, integer between 0 and 100 (default: 100)
    - *
    $handle->image_frame_opacity = 50;
  • - *
- *
    - *
  • {@link image_watermark} adds a watermark on the image, value is a local filename. accepted files are GIF, JPG, BMP, PNG and PNG alpha (default: null)
    - *
    $handle->image_watermark = 'watermark.png';
  • - *
  • {@link image_watermark_x} absolute watermark position, in pixels from the left border. can be negative (default: null)
    - *
    $handle->image_watermark_x = 5;
  • - *
  • {@link image_watermark_y} absolute watermark position, in pixels from the top border. can be negative (default: null)
    - *
    $handle->image_watermark_y = 5;
  • - *
  • {@link image_watermark_position} watermark position withing the image, a combination of one or two from 'TBLR': top, bottom, left, right (default: null)
    - *
    $handle->image_watermark_position = 'LR';
  • - *
  • {@link image_watermark_no_zoom_in} prevents the watermark to be resized up if it is smaller than the image (default: true)
    - *
    $handle->image_watermark_no_zoom_in = false;
  • - *
  • {@link image_watermark_no_zoom_out} prevents the watermark to be resized down if it is bigger than the image (default: false)
    - *
    $handle->image_watermark_no_zoom_out = true;
  • - *
- *
    - *
  • {@link image_reflection_height} if set, a reflection will be added. Format is either in pixels or percentage, such as 40, '40', '40px' or '40%' (default: null)
    - *
    $handle->image_reflection_height = '25%';
  • - *
  • {@link image_reflection_space} space in pixels between the source image and the reflection, can be negative (default: null)
    - *
    $handle->image_reflection_space = 3;
  • - *
  • {@link image_reflection_color} reflection background color, in hexadecimal. Now deprecated in favor of {@link image_default_color} (default: #FFFFFF)
    - *
    $handle->image_default_color = '#000000';
  • - *
  • {@link image_reflection_opacity} opacity level at which the reflection starts, integer between 0 and 100 (default: 60)
    - *
    $handle->image_reflection_opacity = 60;
  • - *
- * - * Values that can be read before calling {@link process}() - *
    - *
  • {@link file_src_name} Source file name
  • - *
  • {@link file_src_name_body} Source file name body
  • - *
  • {@link file_src_name_ext} Source file extension
  • - *
  • {@link file_src_pathname} Source file complete path and name
  • - *
  • {@link file_src_mime} Source file mime type
  • - *
  • {@link file_src_size} Source file size in bytes
  • - *
  • {@link file_src_error} Upload error code
  • - *
  • {@link file_is_image} Boolean flag, true if the file is a supported image type
  • - *
- * If the file is a supported image type (and open_basedir restrictions allow it) - *
    - *
  • {@link image_src_x} Source file width in pixels
  • - *
  • {@link image_src_y} Source file height in pixels
  • - *
  • {@link image_src_pixels} Source file number of pixels
  • - *
  • {@link image_src_type} Source file type (png, jpg, gif or bmp)
  • - *
  • {@link image_src_bits} Source file color depth
  • - *
- * - * Values that can be read after calling {@link process}() - *
    - *
  • {@link file_dst_path} Destination file path
  • - *
  • {@link file_dst_name_body} Destination file name body
  • - *
  • {@link file_dst_name_ext} Destination file extension
  • - *
  • {@link file_dst_name} Destination file name
  • - *
  • {@link file_dst_pathname} Destination file complete path and name
  • - *
- * If the file is a supported image type - *
    - *
  • {@link image_dst_x} Destination file width
  • - *
  • {@link image_dst_y} Destination file height
  • - *
  • {@link image_convert} Destination file format
  • - *
- * - * Requirements - * - * Most of the image operations require GD. GD2 is greatly recommended - * - * The class is compatible with PHP 4.3+, and compatible with PHP5 - * - * Changelog - *
    - *
  • v 0.31 11/04/2011
    - * - added application/x-rar MIME type
    - * - make sure exec() and ini_get_all()function are not disabled if we want to use them
    - * - make sure that we don't divide by zero when calculating JPEG size
    - * - {@link allowed} and {@link forbidden} can now accept strings
    - * - try to guess the file extension from the MIME type if there is no file extension
    - * - better class properties when changing the file extension
    - * - added {@link file_force_extension} to allow extension-less files if needed
    - * - better file safe conversion of the filename
    - * - allow shorthand byte values, such as 1K, 2M, 3G for {@link file_max_size} and {@link jpeg_size}
    - * - added {@link image_opacity} to change picture opacity
    - * - added {@link image_border_opacity} to allow semi-transparent borders
    - * - added {@link image_frame_opacity} to allow semi-transparent frames
    - * - added {@link image_border_transparent} to allow borders fading to transparent
    - * - duplicated {@link image_overlay_percent} into {@link image_overlay_opacity}
    - * - duplicated {@link image_text_percent} into {@link image_text_opacity}
    - * - duplicated {@link image_text_background_percent} into {@link image_text_background_opacity}
  • - *
  • v 0.30 05/09/2010
    - * - implemented an unsharp mask, with alpha transparency support, activated if {@link image_unsharp} is true. added {@link image_unsharp_amount}, {@link image_unsharp_radius}, and {@link image_unsharp_threshold}
    - * - added text/rtf MIME type, and no_script exception
    - * - corrected bug when {@link no_script} is activated and several process() are called
    - * - better error handling for finfo
    - * - display upload_max_filesize information from php.ini in the log
    - * - automatic extension for extension-less images
    - * - fixed {@link image_ratio_fill} top and left filling
    - * - fixed alphablending issue when applying a transparent PNG watermark on a transparent PNG
    - * - added {@link image_watermark_no_zoom_in} and {@link image_watermark_no_zoom_out} to allow the watermark to be resized down (or up) to fit in the image. By default, the watermark may be resized down, but not up.
  • - *
  • v 0.29 03/02/2010
    - * - added protection against malicious images
    - * - added zip and torrent MIME type
    - * - replaced split() with explode()
    - * - initialise image_dst_x/y with image_src_x/y
    - * - removed {@link mime_fileinfo}, {@link mime_file}, {@link mime_magic} and {@link mime_getimagesize} from the docs since they are used before {@link process}
    - * - added more extensions and MIME types
    - * - improved MIME type validation
    - * - improved logging
  • - *
  • v 0.28 10/08/2009
    - * - replaced ereg functions to be compatible with PHP 5.3
    - * - added flv MIME type
    - * - improved MIME type detection
    - * - added {@link file_name_body_pre} to prepend a string to the file name
    - * - added {@link mime_fileinfo}, {@link mime_file}, {@link mime_magic} and {@link mime_getimagesize} so that it is possible to deactivate some MIME type checking method
    - * - use exec() rather than shell_exec(), to play better with safe mode
    - * - added some error messages
    - * - fix bug when checking on conditions, {@link processed} wasn't propagated properly
  • - *
  • v 0.27 14/05/2009
    - * - look for the language files directory from __FILE__
    - * - deactivate {@link file_auto_rename} if {@link file_overwrite} is set
    - * - improved transparency replacement for true color images
    - * - fixed calls to newer version of UNIX file utility
    - * - fixed error when using PECL Fileinfo extension in SAFE MODE, and when using the finfo class
    - * - added {@link image_precrop} to crop the image before an eventual resizing
  • - *
  • v 0.26 13/11/2008
    - * - rewrote conversion from palette to true color to handle transparency better
    - * - fixed imagecopymergealpha() when the overlayed image is of wrong dimensions
    - * - fixed imagecreatenew() when the image to create have less than 1 pixels width or height
    - * - rewrote MIME type detection to be more secure and not rely on browser information; now using Fileinfo PECL extension, UNIX file() command, MIME magic, and getimagesize(), in that order
    - * - added support for Flash uploaders
    - * - some bug fixing and error handling
  • - *
  • v 0.25 17/11/2007
    - * - added translation files and mechanism to instantiate the class with a language different from English
    - * - added {@link forbidden} to set an array of forbidden MIME types
    - * - implemented support for simple wildcards in {@link allowed} and {@link forbidden}, such as image/*
    - * - preset the file extension to the desired conversion format when converting an image
    - * - added read and write support for BMP images
    - * - added a flag {@link file_is_image} to determine if the file is a supported image type
    - * - the class now provides some information about the image, before calling {@link process}(). Available are {@link image_src_x}, {@link image_src_y} and the newly introduced {@link image_src_bits}, {@link image_src_pixels} and {@link image_src_type}. Note that this will not work if open_basedir restrictions are in place
    - * - improved logging; now provides useful system information
    - * - added some more pre-processing checks for files that are images: {@link image_max_width}, {@link image_max_height}, {@link image_max_pixels}, {@link image_max_ratio}, {@link image_min_width}, {@link image_min_height}, {@link image_min_pixels} and {@link image_min_ratio}
    - * - added {@link image_ratio_pixels} to resize an image to a number of pixels, keeping aspect ratio
    - * - added {@link image_is_palette} and {@link image_is_transparent} and {@link image_transparent_color} for GIF images
    - * - added {@link image_default_color} to define a fallback color for non alpha-transparent output formats, such as JPEG or BMP
    - * - changed {@link image_background_color}, which now forces transparent areas to be painted
    - * - improved reflections and color overlays so that it works with alpha transparent images
    - * - {@link image_reflection_color} is now deprecated in favour of {@link image_default_color}
    - * - transparent PNGs are now processed in true color, and fully preserving the alpha channel when doing merges
    - * - transparent GIFs are now automatically detected. {@link preserve_transparency} is deprecated
    - * - transparent true color images can be saved as GIF while retaining transparency, semi transparent areas being merged with {@link image_default_color}
    - * - transparent true color images can be saved as JPG/BMP with the semi transparent areas being merged with {@link image_default_color}
    - * - fixed conversion of images to true color
    - * - the class can now output the uploaded files content as the return value of process() if the function is called with an empty or null argumenti, or no argument
  • - *
  • v 0.24 25/05/2007
    - * - added {@link image_background_color}, to set the default background color of an image
    - * - added possibility of using replacement tokens in text labels
    - * - changed default JPEG quality to 85
    - * - fixed a small bug when using greyscale filter and associated filters
    - * - added {@link image_ratio_fill} in order to fit an image within some dimensions and color the remaining space. Very similar to {@link image_ratio_crop}
    - * - improved the recursive creation of directories
    - * - the class now converts palette based images to true colors before doing graphic manipulations
  • - *
  • v 0.23 23/12/2006
    - * - fixed a bug when processing more than once the same uploaded file. If there is an open_basedir restriction, the class now creates a temporary file for the first call to process(). This file will be used for subsequent processes, and will be deleted upon calling clean()
  • - *
  • v 0.22 16/12/2006
    - * - added automatic creation of a temporary file if the upload directory is not within open_basedir
    - * - fixed a bug which was preventing to work on a local file by overwriting it with its processed copy
    - * - added MIME types video/x-ms-wmv and image/x-png and fixed PNG support for IE weird MIME types
    - * - modified {@link image_ratio_crop} so it can accept one or more from string 'TBLR', determining which side of the image is kept while cropping
    - * - added support for multiple lines in the text, using "\n" as a line break
    - * - added {@link image_text_line_spacing} which allow to set the space between several lines of text
    - * - added {@link image_text_alignment} which allow to set the alignment when text has several lines
    - * - {@link image_text_font} can now be set to the path of a GDF font to load external fonts
    - * - added {@link image_reflection_height} to create a reflection of the source image, which height is in pixels or percentage
    - * - added {@link image_reflection_space} to set the space in pixels between the source image and the reflection
    - * - added {@link image_reflection_color} to set the reflection background color
    - * - added {@link image_reflection_opacity} to set the initial level of opacity of the reflection
  • - *
  • v 0.21 30/09/2006
    - * - added {@link image_ratio_crop} which resizes within {@link image_x} and {@link image_y}, keeping ratio, but filling the space by cropping excedent of image
    - * - added {@link mime_check}, which default is true, to set checks against {@link allowed} MIME list
    - * - if MIME is empty, the class now triggers an error
    - * - color #000000 is OK for {@link image_text_color}, and related text transparency bug fixed
    - * - {@link gd_version}() now uses gd_info(), or else phpinfo()
    - * - fixed path issue when the destination path has no trailing slash on Windows systems
    - * - removed inline functions to be fully PHP5 compatible
  • - *
  • v 0.20 11/08/2006
    - * - added some more error checking and messages (GD presence, permissions...)
    - * - fix when uploading files without extension
    - * - changed values for {@link image_brightness} and {@link image_contrast} to be between -127 and 127
    - * - added {@link dir_auto_create} to automatically and recursively create destination directory if missing.
    - * - added {@link dir_auto_chmod} to automatically chmod the destination directory if not writeable.
    - * - added {@link dir_chmod} to set the default chmod to use.
    - * - added {@link image_crop} to crop images
    - * - added {@link image_negative} to invert the colors on the image
    - * - added {@link image_greyscale} to turn the image into greyscale
    - * - added {@link image_threshold} to apply a threshold filter on the image
    - * - added {@link image_bevel}, {@link image_bevel_color1} and {@link image_bevel_color2} to add a bevel border
    - * - added {@link image_border} and {@link image_border_color} to add a single color border
    - * - added {@link image_frame} and {@link image_frame_colors} to add a multicolored frame
  • - *
  • v 0.19 29/03/2006
    - * - class is now compatible i18n (thanks Sylwester).
    - * - the class can mow manipulate local files, not only uploaded files (instanciate the class with a local filename).
    - * - {@link file_safe_name} has been improved a bit.
    - * - added {@link image_brightness}, {@link image_contrast}, {@link image_tint_color}, {@link image_overlay_color} and {@link image_overlay_percent} to do color manipulation on the images.
    - * - added {@link image_text} and all derivated settings to add a text label on the image.
    - * - added {@link image_watermark} and all derivated settings to add a watermark image on the image.
    - * - added {@link image_flip} and {@link image_rotate} for more image manipulations
    - * - added {@link jpeg_size} to calculate the JPG compression quality in order to fit within one filesize.
  • - *
  • v 0.18 02/02/2006
    - * - added {@link no_script} to turn dangerous scripts into text files.
    - * - added {@link mime_magic_check} to set the class to use mime_magic.
    - * - added {@link preserve_transparency} *experimental*. Thanks Gregor.
    - * - fixed size and mime checking, wasn't working :/ Thanks Willem.
    - * - fixed memory leak when resizing images.
    - * - when resizing, it is not necessary anymore to set {@link image_convert}.
    - * - il is now possible to simply convert an image, with no resizing.
    - * - sets the default {@link file_max_size} to upload_max_filesize from php.ini. Thanks Edward
  • - *
  • v 0.17 28/05/2005
    - * - the class can be used with any version of GD.
    - * - added security check on the file with a list of mime-types.
    - * - changed the license to GPL v2 only
  • - *
  • v 0.16 19/05/2005
    - * - added {@link file_auto_rename} automatic file renaming if the same filename already exists.
    - * - added {@link file_safe_name} safe formatting of the filename (spaces to _underscores so far).
    - * - added some more error reporting to avoid crash if GD is not present
  • - *
  • v 0.15 16/04/2005
    - * - added JPEG compression quality setting. Thanks Vad
  • - *
  • v 0.14 14/03/2005
    - * - reworked the class file to allow parsing with phpDocumentor
  • - *
  • v 0.13 07/03/2005
    - * - fixed a bug with {@link image_ratio}. Thanks Justin.
    - * - added {@link image_ratio_no_zoom_in} and {@link image_ratio_no_zoom_out}
  • - *
  • v 0.12 21/01/2005
    - * - added {@link image_ratio} to resize within max values, keeping image ratio
  • - *
  • v 0.11 22/08/2003
    - * - update for GD2 (changed imageresized() into imagecopyresampled() and imagecreate() into imagecreatetruecolor())
  • - *
- * - * @package cmf - * @subpackage external - */ -class upload { - - - /** - * Class version - * - * @access public - * @var string - */ - var $version; - - /** - * Uploaded file name - * - * @access public - * @var string - */ - var $file_src_name; - - /** - * Uploaded file name body (i.e. without extension) - * - * @access public - * @var string - */ - var $file_src_name_body; - - /** - * Uploaded file name extension - * - * @access public - * @var string - */ - var $file_src_name_ext; - - /** - * Uploaded file MIME type - * - * @access public - * @var string - */ - var $file_src_mime; - - /** - * Uploaded file size, in bytes - * - * @access public - * @var double - */ - var $file_src_size; - - /** - * Holds eventual PHP error code from $_FILES - * - * @access public - * @var string - */ - var $file_src_error; - - /** - * Uloaded file name, including server path - * - * @access public - * @var string - */ - var $file_src_pathname; - - /** - * Uloaded file name temporary copy - * - * @access private - * @var string - */ - var $file_src_temp; - - /** - * Destination file name - * - * @access public - * @var string - */ - var $file_dst_path; - - /** - * Destination file name - * - * @access public - * @var string - */ - var $file_dst_name; - - /** - * Destination file name body (i.e. without extension) - * - * @access public - * @var string - */ - var $file_dst_name_body; - - /** - * Destination file extension - * - * @access public - * @var string - */ - var $file_dst_name_ext; - - /** - * Destination file name, including path - * - * @access public - * @var string - */ - var $file_dst_pathname; - - /** - * Source image width - * - * @access public - * @var integer - */ - var $image_src_x; - - /** - * Source image height - * - * @access public - * @var integer - */ - var $image_src_y; - - /** - * Source image color depth - * - * @access public - * @var integer - */ - var $image_src_bits; - - /** - * Number of pixels - * - * @access public - * @var long - */ - var $image_src_pixels; - - /** - * Type of image (png, gif, jpg or bmp) - * - * @access public - * @var string - */ - var $image_src_type; - - /** - * Destination image width - * - * @access public - * @var integer - */ - var $image_dst_x; - - /** - * Destination image height - * - * @access public - * @var integer - */ - var $image_dst_y; - - /** - * Supported image formats - * - * @access private - * @var array - */ - var $image_supported; - - /** - * Flag to determine if the source file is an image - * - * @access public - * @var boolean - */ - var $file_is_image; - - /** - * Flag set after instanciating the class - * - * Indicates if the file has been uploaded properly - * - * @access public - * @var bool - */ - var $uploaded; - - /** - * Flag stopping PHP upload checks - * - * Indicates whether we instanciated the class with a filename, in which case - * we will not check on the validity of the PHP *upload* - * - * This flag is automatically set to true when working on a local file - * - * Warning: for uploads, this flag MUST be set to false for security reason - * - * @access public - * @var bool - */ - var $no_upload_check; - - /** - * Flag set after calling a process - * - * Indicates if the processing, and copy of the resulting file went OK - * - * @access public - * @var bool - */ - var $processed; - - /** - * Holds eventual error message in plain english - * - * @access public - * @var string - */ - var $error; - - /** - * Holds an HTML formatted log - * - * @access public - * @var string - */ - var $log; - - - // overiddable processing variables - - - /** - * Set this variable to replace the name body (i.e. without extension) - * - * @access public - * @var string - */ - var $file_new_name_body; - - /** - * Set this variable to append a string to the file name body - * - * @access public - * @var string - */ - var $file_name_body_add; - - /** - * Set this variable to prepend a string to the file name body - * - * @access public - * @var string - */ - var $file_name_body_pre; - - /** - * Set this variable to change the file extension - * - * @access public - * @var string - */ - var $file_new_name_ext; - - /** - * Set this variable to format the filename (spaces changed to _) - * - * @access public - * @var boolean - */ - var $file_safe_name; - - /** - * Forces an extension if the source file doesn't have one - * - * If the file is an image, then the correct extension will be added - * Otherwise, a .txt extension will be chosen - * - * @access public - * @var boolean - */ - var $file_force_extension; - - /** - * Set this variable to false if you don't want to check the MIME against the allowed list - * - * This variable is set to true by default for security reason - * - * @access public - * @var boolean - */ - var $mime_check; - - /** - * Set this variable to false in the init() function if you don't want to check the MIME - * with Fileinfo PECL extension. On some systems, Fileinfo is known to be buggy, and you - * may want to deactivate it in the class code directly. - * - * You can also set it with the path of the magic database file. - * If set to true, the class will try to read the MAGIC environment variable - * and if it is empty, will default to '/usr/share/file/magic' - * If set to an empty string, it will call finfo_open without the path argument - * - * This variable is set to true by default for security reason - * - * @access public - * @var boolean - */ - var $mime_fileinfo; - - /** - * Set this variable to false in the init() function if you don't want to check the MIME - * with UNIX file() command - * - * This variable is set to true by default for security reason - * - * @access public - * @var boolean - */ - var $mime_file; - - /** - * Set this variable to false in the init() function if you don't want to check the MIME - * with the magic.mime file - * - * The function mime_content_type() will be deprecated, - * and this variable will be set to false in a future release - * - * This variable is set to true by default for security reason - * - * @access public - * @var boolean - */ - var $mime_magic; - - /** - * Set this variable to false in the init() function if you don't want to check the MIME - * with getimagesize() - * - * The class tries to get a MIME type from getimagesize() - * If no MIME is returned, it tries to guess the MIME type from the file type - * - * This variable is set to true by default for security reason - * - * @access public - * @var boolean - */ - var $mime_getimagesize; - - /** - * Set this variable to false if you don't want to turn dangerous scripts into simple text files - * - * @access public - * @var boolean - */ - var $no_script; - - /** - * Set this variable to true to allow automatic renaming of the file - * if the file already exists - * - * Default value is true - * - * For instance, on uploading foo.ext,
- * if foo.ext already exists, upload will be renamed foo_1.ext
- * and if foo_1.ext already exists, upload will be renamed foo_2.ext
- * - * Note that this option doesn't have any effect if {@link file_overwrite} is true - * - * @access public - * @var bool - */ - var $file_auto_rename; - - /** - * Set this variable to true to allow automatic creation of the destination - * directory if it is missing (works recursively) - * - * Default value is true - * - * @access public - * @var bool - */ - var $dir_auto_create; - - /** - * Set this variable to true to allow automatic chmod of the destination - * directory if it is not writeable - * - * Default value is true - * - * @access public - * @var bool - */ - var $dir_auto_chmod; - - /** - * Set this variable to the default chmod you want the class to use - * when creating directories, or attempting to write in a directory - * - * Default value is 0777 (without quotes) - * - * @access public - * @var bool - */ - var $dir_chmod; - - /** - * Set this variable tu true to allow overwriting of an existing file - * - * Default value is false, so no files will be overwritten - * - * @access public - * @var bool - */ - var $file_overwrite; - - /** - * Set this variable to change the maximum size in bytes for an uploaded file - * - * Default value is the value upload_max_filesize from php.ini - * - * Value in bytes (integer) or shorthand byte values (string) is allowed. - * The available options are K (for Kilobytes), M (for Megabytes) and G (for Gigabytes) - * - * @access public - * @var double - */ - var $file_max_size; - - /** - * Set this variable to true to resize the file if it is an image - * - * You will probably want to set {@link image_x} and {@link image_y}, and maybe one of the ratio variables - * - * Default value is false (no resizing) - * - * @access public - * @var bool - */ - var $image_resize; - - /** - * Set this variable to convert the file if it is an image - * - * Possibles values are : ''; 'png'; 'jpeg'; 'gif'; 'bmp' - * - * Default value is '' (no conversion)
- * If {@link resize} is true, {@link convert} will be set to the source file extension - * - * @access public - * @var string - */ - var $image_convert; - - /** - * Set this variable to the wanted (or maximum/minimum) width for the processed image, in pixels - * - * Default value is 150 - * - * @access public - * @var integer - */ - var $image_x; - - /** - * Set this variable to the wanted (or maximum/minimum) height for the processed image, in pixels - * - * Default value is 150 - * - * @access public - * @var integer - */ - var $image_y; - - /** - * Set this variable to keep the original size ratio to fit within {@link image_x} x {@link image_y} - * - * Default value is false - * - * @access public - * @var bool - */ - var $image_ratio; - - /** - * Set this variable to keep the original size ratio to fit within {@link image_x} x {@link image_y} - * - * The image will be resized as to fill the whole space, and excedent will be cropped - * - * Value can also be a string, one or more character from 'TBLR' (top, bottom, left and right) - * If set as a string, it determines which side of the image is kept while cropping. - * By default, the part of the image kept is in the center, i.e. it crops equally on both sides - * - * Default value is false - * - * @access public - * @var mixed - */ - var $image_ratio_crop; - - /** - * Set this variable to keep the original size ratio to fit within {@link image_x} x {@link image_y} - * - * The image will be resized to fit entirely in the space, and the rest will be colored. - * The default color is white, but can be set with {@link image_default_color} - * - * Value can also be a string, one or more character from 'TBLR' (top, bottom, left and right) - * If set as a string, it determines in which side of the space the image is displayed. - * By default, the image is displayed in the center, i.e. it fills the remaining space equally on both sides - * - * Default value is false - * - * @access public - * @var mixed - */ - var $image_ratio_fill; - - /** - * Set this variable to a number of pixels so that {@link image_x} and {@link image_y} are the best match possible - * - * The image will be resized to have approximatively the number of pixels - * The aspect ratio wil be conserved - * - * Default value is false - * - * @access public - * @var mixed - */ - var $image_ratio_pixels; - - /** - * Set this variable to keep the original size ratio to fit within {@link image_x} x {@link image_y}, - * but only if original image is bigger - * - * Default value is false - * - * @access public - * @var bool - */ - var $image_ratio_no_zoom_in; - - /** - * Set this variable to keep the original size ratio to fit within {@link image_x} x {@link image_y}, - * but only if original image is smaller - * - * Default value is false - * - * @access public - * @var bool - */ - var $image_ratio_no_zoom_out; - - /** - * Set this variable to calculate {@link image_x} automatically , using {@link image_y} and conserving ratio - * - * Default value is false - * - * @access public - * @var bool - */ - var $image_ratio_x; - - /** - * Set this variable to calculate {@link image_y} automatically , using {@link image_x} and conserving ratio - * - * Default value is false - * - * @access public - * @var bool - */ - var $image_ratio_y; - - /** - * Set this variable to set a maximum image width, above which the upload will be invalid - * - * Default value is null - * - * @access public - * @var integer - */ - var $image_max_width; - - /** - * Set this variable to set a maximum image height, above which the upload will be invalid - * - * Default value is null - * - * @access public - * @var integer - */ - var $image_max_height; - - /** - * Set this variable to set a maximum number of pixels for an image, above which the upload will be invalid - * - * Default value is null - * - * @access public - * @var long - */ - var $image_max_pixels; - - /** - * Set this variable to set a maximum image aspect ratio, above which the upload will be invalid - * - * Note that ratio = width / height - * - * Default value is null - * - * @access public - * @var float - */ - var $image_max_ratio; - - /** - * Set this variable to set a minimum image width, below which the upload will be invalid - * - * Default value is null - * - * @access public - * @var integer - */ - var $image_min_width; - - /** - * Set this variable to set a minimum image height, below which the upload will be invalid - * - * Default value is null - * - * @access public - * @var integer - */ - var $image_min_height; - - /** - * Set this variable to set a minimum number of pixels for an image, below which the upload will be invalid - * - * Default value is null - * - * @access public - * @var long - */ - var $image_min_pixels; - - /** - * Set this variable to set a minimum image aspect ratio, below which the upload will be invalid - * - * Note that ratio = width / height - * - * Default value is null - * - * @access public - * @var float - */ - var $image_min_ratio; - - /** - * Quality of JPEG created/converted destination image - * - * Default value is 85 - * - * @access public - * @var integer - */ - var $jpeg_quality; - - /** - * Determines the quality of the JPG image to fit a desired file size - * - * The JPG quality will be set between 1 and 100% - * The calculations are approximations. - * - * Value in bytes (integer) or shorthand byte values (string) is allowed. - * The available options are K (for Kilobytes), M (for Megabytes) and G (for Gigabytes) - * - * Default value is null (no calculations) - * - * @access public - * @var integer - */ - var $jpeg_size; - - /** - * Preserve transparency when resizing or converting an image (deprecated) - * - * Default value is automatically set to true for transparent GIFs - * This setting is now deprecated - * - * @access public - * @var integer - */ - var $preserve_transparency; - - /** - * Flag set to true when the image is transparent - * - * This is actually used only for transparent GIFs - * - * @access public - * @var boolean - */ - var $image_is_transparent; - - /** - * Transparent color in a palette - * - * This is actually used only for transparent GIFs - * - * @access public - * @var boolean - */ - var $image_transparent_color; - - /** - * Background color, used to paint transparent areas with - * - * If set, it will forcibly remove transparency by painting transparent areas with the color - * This setting will fill in all transparent areas in PNG and GIF, as opposed to {@link image_default_color} - * which will do so only in BMP, JPEG, and alpha transparent areas in transparent GIFs - * This setting overrides {@link image_default_color} - * - * Default value is null - * - * @access public - * @var string - */ - var $image_background_color; - - /** - * Default color for non alpha-transparent images - * - * This setting is to be used to define a background color for semi transparent areas - * of an alpha transparent when the output format doesn't support alpha transparency - * This is useful when, from an alpha transparent PNG image, or an image with alpha transparent features - * if you want to output it as a transparent GIFs for instance, you can set a blending color for transparent areas - * If you output in JPEG or BMP, this color will be used to fill in the previously transparent areas - * - * The default color white - * - * @access public - * @var boolean - */ - var $image_default_color; - - /** - * Flag set to true when the image is not true color - * - * @access public - * @var boolean - */ - var $image_is_palette; - - /** - * Corrects the image brightness - * - * Value can range between -127 and 127 - * - * Default value is null - * - * @access public - * @var integer - */ - var $image_brightness; - - /** - * Corrects the image contrast - * - * Value can range between -127 and 127 - * - * Default value is null - * - * @access public - * @var integer - */ - var $image_contrast; - - /** - * Changes the image opacity - * - * Value can range between 0 and 100 - * - * Default value is null - * - * @access public - * @var integer - */ - var $image_opacity; - - /** - * Applies threshold filter - * - * Value can range between -127 and 127 - * - * Default value is null - * - * @access public - * @var integer - */ - var $image_threshold; - - /** - * Applies a tint on the image - * - * Value is an hexadecimal color, such as #FFFFFF - * - * Default value is null - * - * @access public - * @var string; - */ - var $image_tint_color; - - /** - * Applies a colored overlay on the image - * - * Value is an hexadecimal color, such as #FFFFFF - * - * To use with {@link image_overlay_opacity} - * - * Default value is null - * - * @access public - * @var string; - */ - var $image_overlay_color; - - /** - * Sets the opacity for the colored overlay - * - * Value is a percentage, as an integer between 0 (transparent) and 100 (opaque) - * - * Unless used with {@link image_overlay_color}, this setting has no effect - * - * Default value is 50 - * - * @access public - * @var integer - */ - var $image_overlay_opacity; - - /** - * Soon to be deprecated old form of {@link image_overlay_opacity} - * - * @access public - * @var integer - */ - var $image_overlay_percent; - - /** - * Inverts the color of an image - * - * Default value is FALSE - * - * @access public - * @var boolean; - */ - var $image_negative; - - /** - * Turns the image into greyscale - * - * Default value is FALSE - * - * @access public - * @var boolean; - */ - var $image_greyscale; - - /** - * Applies an unsharp mask, with alpha transparency support - * - * Beware that this unsharp mask is quite resource-intensive - * - * Default value is FALSE - * - * @access public - * @var boolean; - */ - var $image_unsharp; - - /** - * Sets the unsharp mask amount - * - * Value is an integer between 0 and 500, typically between 50 and 200 - * - * Unless used with {@link image_unsharp}, this setting has no effect - * - * Default value is 80 - * - * @access public - * @var integer - */ - var $image_unsharp_amount; - - /** - * Sets the unsharp mask radius - * - * Value is an integer between 0 and 50, typically between 0.5 and 1 - * - * Unless used with {@link image_unsharp}, this setting has no effect - * - * Default value is 0.5 - * - * @access public - * @var integer - */ - var $image_unsharp_radius; - - /** - * Sets the unsharp mask threshold - * - * Value is an integer between 0 and 255, typically between 0 and 5 - * - * Unless used with {@link image_unsharp}, this setting has no effect - * - * Default value is 1 - * - * @access public - * @var integer - */ - var $image_unsharp_threshold; - - /** - * Adds a text label on the image - * - * Value is a string, any text. Text will not word-wrap, although you can use breaklines in your text "\n" - * - * If set, this setting allow the use of all other settings starting with image_text_ - * - * Replacement tokens can be used in the string: - *
-     * gd_version    src_name       src_name_body src_name_ext
-     * src_pathname  src_mime       src_x         src_y
-     * src_type      src_bits       src_pixels
-     * src_size      src_size_kb    src_size_mb   src_size_human
-     * dst_path      dst_name_body  dst_pathname
-     * dst_name      dst_name_ext   dst_x         dst_y
-     * date          time           host          server        ip
-     * 
- * The tokens must be enclosed in square brackets: [dst_x] will be replaced by the width of the picture - * - * Default value is null - * - * @access public - * @var string; - */ - var $image_text; - - /** - * Sets the text direction for the text label - * - * Value is either 'h' or 'v', as in horizontal and vertical - * - * Default value is h (horizontal) - * - * @access public - * @var string; - */ - var $image_text_direction; - - /** - * Sets the text color for the text label - * - * Value is an hexadecimal color, such as #FFFFFF - * - * Default value is #FFFFFF (white) - * - * @access public - * @var string; - */ - var $image_text_color; - - /** - * Sets the text opacity in the text label - * - * Value is a percentage, as an integer between 0 (transparent) and 100 (opaque) - * - * Default value is 100 - * - * @access public - * @var integer - */ - var $image_text_opacity; - - /** - * Soon to be deprecated old form of {@link image_text_opacity} - * - * @access public - * @var integer - */ - var $image_text_percent; - - /** - * Sets the text background color for the text label - * - * Value is an hexadecimal color, such as #FFFFFF - * - * Default value is null (no background) - * - * @access public - * @var string; - */ - var $image_text_background; - - /** - * Sets the text background opacity in the text label - * - * Value is a percentage, as an integer between 0 (transparent) and 100 (opaque) - * - * Default value is 100 - * - * @access public - * @var integer - */ - var $image_text_background_opacity; - - /** - * Soon to be deprecated old form of {@link image_text_background_opacity} - * - * @access public - * @var integer - */ - var $image_text_background_percent; - - /** - * Sets the text font in the text label - * - * Value is a an integer between 1 and 5 for GD built-in fonts. 1 is the smallest font, 5 the biggest - * Value can also be a string, which represents the path to a GDF font. The font will be loaded into GD, and used as a built-in font. - * - * Default value is 5 - * - * @access public - * @var mixed; - */ - var $image_text_font; - - /** - * Sets the text label position within the image - * - * Value is one or two out of 'TBLR' (top, bottom, left, right) - * - * The positions are as following: - *
-     *                        TL  T  TR
-     *                        L       R
-     *                        BL  B  BR
-     * 
- * - * Default value is null (centered, horizontal and vertical) - * - * Note that is {@link image_text_x} and {@link image_text_y} are used, this setting has no effect - * - * @access public - * @var string; - */ - var $image_text_position; - - /** - * Sets the text label absolute X position within the image - * - * Value is in pixels, representing the distance between the left of the image and the label - * If a negative value is used, it will represent the distance between the right of the image and the label - * - * Default value is null (so {@link image_text_position} is used) - * - * @access public - * @var integer - */ - var $image_text_x; - - /** - * Sets the text label absolute Y position within the image - * - * Value is in pixels, representing the distance between the top of the image and the label - * If a negative value is used, it will represent the distance between the bottom of the image and the label - * - * Default value is null (so {@link image_text_position} is used) - * - * @access public - * @var integer - */ - var $image_text_y; - - /** - * Sets the text label padding - * - * Value is in pixels, representing the distance between the text and the label background border - * - * Default value is 0 - * - * This setting can be overriden by {@link image_text_padding_x} and {@link image_text_padding_y} - * - * @access public - * @var integer - */ - var $image_text_padding; - - /** - * Sets the text label horizontal padding - * - * Value is in pixels, representing the distance between the text and the left and right label background borders - * - * Default value is null - * - * If set, this setting overrides the horizontal part of {@link image_text_padding} - * - * @access public - * @var integer - */ - var $image_text_padding_x; - - /** - * Sets the text label vertical padding - * - * Value is in pixels, representing the distance between the text and the top and bottom label background borders - * - * Default value is null - * - * If set, his setting overrides the vertical part of {@link image_text_padding} - * - * @access public - * @var integer - */ - var $image_text_padding_y; - - /** - * Sets the text alignment - * - * Value is a string, which can be either 'L', 'C' or 'R' - * - * Default value is 'C' - * - * This setting is relevant only if the text has several lines. - * - * @access public - * @var string; - */ - var $image_text_alignment; - - /** - * Sets the text line spacing - * - * Value is an integer, in pixels - * - * Default value is 0 - * - * This setting is relevant only if the text has several lines. - * - * @access public - * @var integer - */ - var $image_text_line_spacing; - - /** - * Sets the height of the reflection - * - * Value is an integer in pixels, or a string which format can be in pixels or percentage. - * For instance, values can be : 40, '40', '40px' or '40%' - * - * Default value is null, no reflection - * - * @access public - * @var mixed; - */ - var $image_reflection_height; - - /** - * Sets the space between the source image and its relection - * - * Value is an integer in pixels, which can be negative - * - * Default value is 2 - * - * This setting is relevant only if {@link image_reflection_height} is set - * - * @access public - * @var integer - */ - var $image_reflection_space; - - /** - * Sets the color of the reflection background (deprecated) - * - * Value is an hexadecimal color, such as #FFFFFF - * - * Default value is #FFFFFF - * - * This setting is relevant only if {@link image_reflection_height} is set - * - * This setting is now deprecated in favor of {@link image_default_color} - * - * @access public - * @var string; - */ - var $image_reflection_color; - - /** - * Sets the initial opacity of the reflection - * - * Value is an integer between 0 (no opacity) and 100 (full opacity). - * The reflection will start from {@link image_reflection_opacity} and end up at 0 - * - * Default value is 60 - * - * This setting is relevant only if {@link image_reflection_height} is set - * - * @access public - * @var integer - */ - var $image_reflection_opacity; - - /** - * Flips the image vertically or horizontally - * - * Value is either 'h' or 'v', as in horizontal and vertical - * - * Default value is null (no flip) - * - * @access public - * @var string; - */ - var $image_flip; - - /** - * Rotates the image by increments of 45 degrees - * - * Value is either 90, 180 or 270 - * - * Default value is null (no rotation) - * - * @access public - * @var string; - */ - var $image_rotate; - - /** - * Crops an image - * - * Values are four dimensions, or two, or one (CSS style) - * They represent the amount cropped top, right, bottom and left. - * These values can either be in an array, or a space separated string. - * Each value can be in pixels (with or without 'px'), or percentage (of the source image) - * - * For instance, are valid: - *
-     * $foo->image_crop = 20                  OR array(20);
-     * $foo->image_crop = '20px'              OR array('20px');
-     * $foo->image_crop = '20 40'             OR array('20', 40);
-     * $foo->image_crop = '-20 25%'           OR array(-20, '25%');
-     * $foo->image_crop = '20px 25%'          OR array('20px', '25%');
-     * $foo->image_crop = '20% 25%'           OR array('20%', '25%');
-     * $foo->image_crop = '20% 25% 10% 30%'   OR array('20%', '25%', '10%', '30%');
-     * $foo->image_crop = '20px 25px 2px 2px' OR array('20px', '25%px', '2px', '2px');
-     * $foo->image_crop = '20 25% 40px 10%'   OR array(20, '25%', '40px', '10%');
-     * 
- * - * If a value is negative, the image will be expanded, and the extra parts will be filled with black - * - * Default value is null (no cropping) - * - * @access public - * @var string OR array; - */ - var $image_crop; - - /** - * Crops an image, before an eventual resizing - * - * See {@link image_crop} for valid formats - * - * Default value is null (no cropping) - * - * @access public - * @var string OR array; - */ - var $image_precrop; - - /** - * Adds a bevel border on the image - * - * Value is a positive integer, representing the thickness of the bevel - * - * If the bevel colors are the same as the background, it makes a fade out effect - * - * Default value is null (no bevel) - * - * @access public - * @var integer - */ - var $image_bevel; - - /** - * Top and left bevel color - * - * Value is a color, in hexadecimal format - * This setting is used only if {@link image_bevel} is set - * - * Default value is #FFFFFF - * - * @access public - * @var string; - */ - var $image_bevel_color1; - - /** - * Right and bottom bevel color - * - * Value is a color, in hexadecimal format - * This setting is used only if {@link image_bevel} is set - * - * Default value is #000000 - * - * @access public - * @var string; - */ - var $image_bevel_color2; - - /** - * Adds a single-color border on the outer of the image - * - * Values are four dimensions, or two, or one (CSS style) - * They represent the border thickness top, right, bottom and left. - * These values can either be in an array, or a space separated string. - * Each value can be in pixels (with or without 'px'), or percentage (of the source image) - * - * See {@link image_crop} for valid formats - * - * If a value is negative, the image will be cropped. - * Note that the dimensions of the picture will be increased by the borders' thickness - * - * Default value is null (no border) - * - * @access public - * @var integer - */ - var $image_border; - - /** - * Border color - * - * Value is a color, in hexadecimal format. - * This setting is used only if {@link image_border} is set - * - * Default value is #FFFFFF - * - * @access public - * @var string; - */ - var $image_border_color; - - /** - * Sets the opacity for the borders - * - * Value is a percentage, as an integer between 0 (transparent) and 100 (opaque) - * - * Unless used with {@link image_border}, this setting has no effect - * - * Default value is 100 - * - * @access public - * @var integer - */ - var $image_border_opacity; - - /** - * Adds a fading-to-transparent border on the image - * - * Values are four dimensions, or two, or one (CSS style) - * They represent the border thickness top, right, bottom and left. - * These values can either be in an array, or a space separated string. - * Each value can be in pixels (with or without 'px'), or percentage (of the source image) - * - * See {@link image_crop} for valid formats - * - * Note that the dimensions of the picture will not be increased by the borders' thickness - * - * Default value is null (no border) - * - * @access public - * @var integer - */ - var $image_border_transparent; - - /** - * Adds a multi-color frame on the outer of the image - * - * Value is an integer. Two values are possible for now: - * 1 for flat border, meaning that the frame is mirrored horizontally and vertically - * 2 for crossed border, meaning that the frame will be inversed, as in a bevel effect - * - * The frame will be composed of colored lines set in {@link image_frame_colors} - * - * Note that the dimensions of the picture will be increased by the borders' thickness - * - * Default value is null (no frame) - * - * @access public - * @var integer - */ - var $image_frame; - - /** - * Sets the colors used to draw a frame - * - * Values is a list of n colors in hexadecimal format. - * These values can either be in an array, or a space separated string. - * - * The colors are listed in the following order: from the outset of the image to its center - * - * For instance, are valid: - *
-     * $foo->image_frame_colors = '#FFFFFF #999999 #666666 #000000';
-     * $foo->image_frame_colors = array('#FFFFFF', '#999999', '#666666', '#000000');
-     * 
- * - * This setting is used only if {@link image_frame} is set - * - * Default value is '#FFFFFF #999999 #666666 #000000' - * - * @access public - * @var string OR array; - */ - var $image_frame_colors; - - /** - * Sets the opacity for the frame - * - * Value is a percentage, as an integer between 0 (transparent) and 100 (opaque) - * - * Unless used with {@link image_frame}, this setting has no effect - * - * Default value is 100 - * - * @access public - * @var integer - */ - var $image_frame_opacity; - - /** - * Adds a watermark on the image - * - * Value is a local image filename, relative or absolute. GIF, JPG, BMP and PNG are supported, as well as PNG alpha. - * - * If set, this setting allow the use of all other settings starting with image_watermark_ - * - * Default value is null - * - * @access public - * @var string; - */ - var $image_watermark; - - /** - * Sets the watermarkposition within the image - * - * Value is one or two out of 'TBLR' (top, bottom, left, right) - * - * The positions are as following: TL T TR - * L R - * BL B BR - * - * Default value is null (centered, horizontal and vertical) - * - * Note that is {@link image_watermark_x} and {@link image_watermark_y} are used, this setting has no effect - * - * @access public - * @var string; - */ - var $image_watermark_position; - - /** - * Sets the watermark absolute X position within the image - * - * Value is in pixels, representing the distance between the top of the image and the watermark - * If a negative value is used, it will represent the distance between the bottom of the image and the watermark - * - * Default value is null (so {@link image_watermark_position} is used) - * - * @access public - * @var integer - */ - var $image_watermark_x; - - /** - * Sets the twatermark absolute Y position within the image - * - * Value is in pixels, representing the distance between the left of the image and the watermark - * If a negative value is used, it will represent the distance between the right of the image and the watermark - * - * Default value is null (so {@link image_watermark_position} is used) - * - * @access public - * @var integer - */ - var $image_watermark_y; - - /** - * Prevents the watermark to be resized up if it is smaller than the image - * - * If the watermark if smaller than the destination image, taking in account the desired watermark position - * then it will be resized up to fill in the image (minus the {@link image_watermark_x} or {@link image_watermark_y} values) - * - * If you don't want your watermark to be resized in any way, then - * set {@link image_watermark_no_zoom_in} and {@link image_watermark_no_zoom_out} to true - * If you want your watermark to be resized up or doan to fill in the image better, then - * set {@link image_watermark_no_zoom_in} and {@link image_watermark_no_zoom_out} to false - * - * Default value is true (so the watermark will not be resized up, which is the behaviour most people expect) - * - * @access public - * @var integer - */ - var $image_watermark_no_zoom_in; - - /** - * Prevents the watermark to be resized down if it is bigger than the image - * - * If the watermark if bigger than the destination image, taking in account the desired watermark position - * then it will be resized down to fit in the image (minus the {@link image_watermark_x} or {@link image_watermark_y} values) - * - * If you don't want your watermark to be resized in any way, then - * set {@link image_watermark_no_zoom_in} and {@link image_watermark_no_zoom_out} to true - * If you want your watermark to be resized up or doan to fill in the image better, then - * set {@link image_watermark_no_zoom_in} and {@link image_watermark_no_zoom_out} to false - * - * Default value is false (so the watermark may be shrinked to fit in the image) - * - * @access public - * @var integer - */ - var $image_watermark_no_zoom_out; - - /** - * List of MIME types per extension - * - * @access private - * @var array - */ - var $mime_types; - - /** - * Allowed MIME types - * - * Default is a selection of safe mime-types, but you might want to change it - * - * Simple wildcards are allowed, such as image/* or application/* - * If there is only one MIME type allowed, then it can be a string instead of an array - * - * @access public - * @var array OR string - */ - var $allowed; - - /** - * Forbidden MIME types - * - * Default is a selection of safe mime-types, but you might want to change it - * To only check for forbidden MIME types, and allow everything else, set {@link allowed} to array('* / *') without the spaces - * - * Simple wildcards are allowed, such as image/* or application/* - * If there is only one MIME type forbidden, then it can be a string instead of an array - * - * @access public - * @var array OR string - */ - var $forbidden; - - /** - * Array of translated error messages - * - * By default, the language is english (en_GB) - * Translations can be in separate files, in a lang/ subdirectory - * - * @access public - * @var array - */ - var $translation; - - /** - * Language selected for the translations - * - * By default, the language is english ("en_GB") - * - * @access public - * @var array - */ - var $language; - - /** - * Init or re-init all the processing variables to their default values - * - * This function is called in the constructor, and after each call of {@link process} - * - * @access private - */ - function init() { - - // overiddable variables - $this->file_new_name_body = null; // replace the name body - $this->file_name_body_add = null; // append to the name body - $this->file_name_body_pre = null; // prepend to the name body - $this->file_new_name_ext = null; // replace the file extension - $this->file_safe_name = true; // format safely the filename - $this->file_force_extension = true; // forces extension if there isn't one - $this->file_overwrite = false; // allows overwritting if the file already exists - $this->file_auto_rename = true; // auto-rename if the file already exists - $this->dir_auto_create = true; // auto-creates directory if missing - $this->dir_auto_chmod = true; // auto-chmod directory if not writeable - $this->dir_chmod = 0777; // default chmod to use - - $this->no_script = true; // turns scripts into test files - $this->mime_check = true; // checks the mime type against the allowed list - - // these are the different MIME detection methods. if one of these method doesn't work on your - // system, you can deactivate it here; just set it to false - $this->mime_fileinfo = true; // MIME detection with Fileinfo PECL extension - $this->mime_file = true; // MIME detection with UNIX file() command - $this->mime_magic = true; // MIME detection with mime_magic (mime_content_type()) - $this->mime_getimagesize = true; // MIME detection with getimagesize() - - // get the default max size from php.ini - $this->file_max_size_raw = trim(ini_get('upload_max_filesize')); - $this->file_max_size = $this->getsize($this->file_max_size_raw); - - $this->image_resize = false; // resize the image - $this->image_convert = ''; // convert. values :''; 'png'; 'jpeg'; 'gif'; 'bmp' - - $this->image_x = 150; - $this->image_y = 150; - $this->image_ratio = false; // keeps aspect ratio with x and y dimensions - $this->image_ratio_crop = false; // keeps aspect ratio with x and y dimensions, filling the space - $this->image_ratio_fill = false; // keeps aspect ratio with x and y dimensions, fitting the image in the space, and coloring the rest - $this->image_ratio_pixels = false; // keeps aspect ratio, calculating x and y so that the image is approx the set number of pixels - $this->image_ratio_no_zoom_in = false; - $this->image_ratio_no_zoom_out = false; - $this->image_ratio_x = false; // calculate the $image_x if true - $this->image_ratio_y = false; // calculate the $image_y if true - $this->jpeg_quality = 85; - $this->jpeg_size = null; - $this->preserve_transparency = false; - $this->image_is_transparent = false; - $this->image_transparent_color = null; - $this->image_background_color = null; - $this->image_default_color = '#ffffff'; - $this->image_is_palette = false; - - $this->image_max_width = null; - $this->image_max_height = null; - $this->image_max_pixels = null; - $this->image_max_ratio = null; - $this->image_min_width = null; - $this->image_min_height = null; - $this->image_min_pixels = null; - $this->image_min_ratio = null; - - $this->image_brightness = null; - $this->image_contrast = null; - $this->image_opacity = null; - $this->image_threshold = null; - $this->image_tint_color = null; - $this->image_overlay_color = null; - $this->image_overlay_opacity = null; - $this->image_overlay_percent = null; - $this->image_negative = false; - $this->image_greyscale = false; - $this->image_unsharp = false; - $this->image_unsharp_amount = 80; - $this->image_unsharp_radius = 0.5; - $this->image_unsharp_threshold = 1; - - $this->image_text = null; - $this->image_text_direction = null; - $this->image_text_color = '#FFFFFF'; - $this->image_text_opacity = 100; - $this->image_text_percent = 100; - $this->image_text_background = null; - $this->image_text_background_opacity = 100; - $this->image_text_background_percent = 100; - $this->image_text_font = 5; - $this->image_text_x = null; - $this->image_text_y = null; - $this->image_text_position = null; - $this->image_text_padding = 0; - $this->image_text_padding_x = null; - $this->image_text_padding_y = null; - $this->image_text_alignment = 'C'; - $this->image_text_line_spacing = 0; - - $this->image_reflection_height = null; - $this->image_reflection_space = 2; - $this->image_reflection_color = '#ffffff'; - $this->image_reflection_opacity = 60; - - $this->image_watermark = null; - $this->image_watermark_x = null; - $this->image_watermark_y = null; - $this->image_watermark_position = null; - $this->image_watermark_no_zoom_in = true; - $this->image_watermark_no_zoom_out = false; - - $this->image_flip = null; - $this->image_rotate = null; - $this->image_crop = null; - $this->image_precrop = null; - - $this->image_bevel = null; - $this->image_bevel_color1 = '#FFFFFF'; - $this->image_bevel_color2 = '#000000'; - $this->image_border = null; - $this->image_border_color = '#FFFFFF'; - $this->image_border_opacity = 100; - $this->image_border_transparent = null; - $this->image_frame = null; - $this->image_frame_colors = '#FFFFFF #999999 #666666 #000000'; - $this->image_frame_opacity = 100; - - $this->forbidden = array(); - $this->allowed = array( - 'application/arj', - 'application/excel', - 'application/gnutar', - 'application/mspowerpoint', - 'application/msword', - 'application/octet-stream', - 'application/onenote', - 'application/pdf', - 'application/plain', - 'application/postscript', - 'application/powerpoint', - 'application/rar', - 'application/rtf', - 'application/vnd.ms-excel', - 'application/vnd.ms-excel.addin.macroEnabled.12', - 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', - 'application/vnd.ms-excel.sheet.macroEnabled.12', - 'application/vnd.ms-excel.template.macroEnabled.12', - 'application/vnd.ms-office', - 'application/vnd.ms-officetheme', - 'application/vnd.ms-powerpoint', - 'application/vnd.ms-powerpoint.addin.macroEnabled.12', - 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', - 'application/vnd.ms-powerpoint.slide.macroEnabled.12', - 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', - 'application/vnd.ms-powerpoint.template.macroEnabled.12', - 'application/vnd.ms-word', - 'application/vnd.ms-word.document.macroEnabled.12', - 'application/vnd.ms-word.template.macroEnabled.12', - 'application/vnd.oasis.opendocument.chart', - 'application/vnd.oasis.opendocument.database', - 'application/vnd.oasis.opendocument.formula', - 'application/vnd.oasis.opendocument.graphics', - 'application/vnd.oasis.opendocument.graphics-template', - 'application/vnd.oasis.opendocument.image', - 'application/vnd.oasis.opendocument.presentation', - 'application/vnd.oasis.opendocument.presentation-template', - 'application/vnd.oasis.opendocument.spreadsheet', - 'application/vnd.oasis.opendocument.spreadsheet-template', - 'application/vnd.oasis.opendocument.text', - 'application/vnd.oasis.opendocument.text-master', - 'application/vnd.oasis.opendocument.text-template', - 'application/vnd.oasis.opendocument.text-web', - 'application/vnd.openofficeorg.extension', - 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'application/vocaltec-media-file', - 'application/wordperfect', - 'application/x-bittorrent', - 'application/x-bzip', - 'application/x-bzip2', - 'application/x-compressed', - 'application/x-excel', - 'application/x-gzip', - 'application/x-latex', - 'application/x-midi', - 'application/xml', - 'application/x-msexcel', - 'application/x-rar', - 'application/x-rar-compressed', - 'application/x-rtf', - 'application/x-shockwave-flash', - 'application/x-sit', - 'application/x-stuffit', - 'application/x-troff-msvideo', - 'application/x-zip', - 'application/x-zip-compressed', - 'application/zip', - 'audio/*', - 'image/*', - 'multipart/x-gzip', - 'multipart/x-zip', - 'text/plain', - 'text/rtf', - 'text/richtext', - 'text/xml', - 'video/*' - ); - - $this->mime_types = array( - 'jpg' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'gif' => 'image/gif', - 'png' => 'image/png', - 'bmp' => 'image/bmp', - 'flv' => 'video/x-flv', - 'js' => 'application/x-javascript', - 'json' => 'application/json', - 'tiff' => 'image/tiff', - 'css' => 'text/css', - 'xml' => 'application/xml', - 'doc' => 'application/msword', - 'docx' => 'application/msword', - 'xls' => 'application/vnd.ms-excel', - 'xlt' => 'application/vnd.ms-excel', - 'xlm' => 'application/vnd.ms-excel', - 'xld' => 'application/vnd.ms-excel', - 'xla' => 'application/vnd.ms-excel', - 'xlc' => 'application/vnd.ms-excel', - 'xlw' => 'application/vnd.ms-excel', - 'xll' => 'application/vnd.ms-excel', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pps' => 'application/vnd.ms-powerpoint', - 'rtf' => 'application/rtf', - 'pdf' => 'application/pdf', - 'html' => 'text/html', - 'htm' => 'text/html', - 'php' => 'text/html', - 'txt' => 'text/plain', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'mp3' => 'audio/mpeg3', - 'wav' => 'audio/wav', - 'aiff' => 'audio/aiff', - 'aif' => 'audio/aiff', - 'avi' => 'video/msvideo', - 'wmv' => 'video/x-ms-wmv', - 'mov' => 'video/quicktime', - 'zip' => 'application/zip', - 'tar' => 'application/x-tar', - 'swf' => 'application/x-shockwave-flash', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'oxt' => 'application/vnd.openofficeorg.extension', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'docm' => 'application/vnd.ms-word.document.macroEnabled.12', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', - 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12', - 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12', - 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12', - 'thmx' => 'application/vnd.ms-officetheme', - 'onetoc' => 'application/onenote', - 'onetoc2' => 'application/onenote', - 'onetmp' => 'application/onenote', - 'onepkg' => 'application/onenote', - ); - - } - - /** - * Constructor. Checks if the file has been uploaded - * - * The constructor takes $_FILES['form_field'] array as argument - * where form_field is the form field name - * - * The constructor will check if the file has been uploaded in its temporary location, and - * accordingly will set {@link uploaded} (and {@link error} is an error occurred) - * - * If the file has been uploaded, the constructor will populate all the variables holding the upload - * information (none of the processing class variables are used here). - * You can have access to information about the file (name, size, MIME type...). - * - * - * Alternatively, you can set the first argument to be a local filename (string) - * This allows processing of a local file, as if the file was uploaded - * - * The optional second argument allows you to set the language for the error messages - * - * @access private - * @param array $file $_FILES['form_field'] - * or string $file Local filename - * @param string $lang Optional language code - */ - function upload($file, $lang = 'en_GB') { - - $this->version = '0.31'; - - $this->file_src_name = ''; - $this->file_src_name_body = ''; - $this->file_src_name_ext = ''; - $this->file_src_mime = ''; - $this->file_src_size = ''; - $this->file_src_error = ''; - $this->file_src_pathname = ''; - $this->file_src_temp = ''; - - $this->file_dst_path = ''; - $this->file_dst_name = ''; - $this->file_dst_name_body = ''; - $this->file_dst_name_ext = ''; - $this->file_dst_pathname = ''; - - $this->image_src_x = null; - $this->image_src_y = null; - $this->image_src_bits = null; - $this->image_src_type = null; - $this->image_src_pixels = null; - $this->image_dst_x = 0; - $this->image_dst_y = 0; - - $this->uploaded = true; - $this->no_upload_check = false; - $this->processed = true; - $this->error = ''; - $this->log = ''; - $this->allowed = array(); - $this->forbidden = array(); - $this->file_is_image = false; - $this->init(); - $info = null; - $mime_from_browser = null; - - // sets default language - $this->translation = array(); - $this->translation['file_error'] = 'File error. Please try again.'; - $this->translation['local_file_missing'] = 'Local file doesn\'t exist.'; - $this->translation['local_file_not_readable'] = 'Local file is not readable.'; - $this->translation['uploaded_too_big_ini'] = 'File upload error (the uploaded file exceeds the upload_max_filesize directive in php.ini).'; - $this->translation['uploaded_too_big_html'] = 'File upload error (the uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form).'; - $this->translation['uploaded_partial'] = 'File upload error (the uploaded file was only partially uploaded).'; - $this->translation['uploaded_missing'] = 'File upload error (no file was uploaded).'; - $this->translation['uploaded_no_tmp_dir'] = 'File upload error (missing a temporary folder).'; - $this->translation['uploaded_cant_write'] = 'File upload error (failed to write file to disk).'; - $this->translation['uploaded_err_extension'] = 'File upload error (file upload stopped by extension).'; - $this->translation['uploaded_unknown'] = 'File upload error (unknown error code).'; - $this->translation['try_again'] = 'File upload error. Please try again.'; - $this->translation['file_too_big'] = 'File too big.'; - $this->translation['no_mime'] = 'MIME type can\'t be detected.'; - $this->translation['incorrect_file'] = 'Incorrect type of file.'; - $this->translation['image_too_wide'] = 'Image too wide.'; - $this->translation['image_too_narrow'] = 'Image too narrow.'; - $this->translation['image_too_high'] = 'Image too tall.'; - $this->translation['image_too_short'] = 'Image too short.'; - $this->translation['ratio_too_high'] = 'Image ratio too high (image too wide).'; - $this->translation['ratio_too_low'] = 'Image ratio too low (image too high).'; - $this->translation['too_many_pixels'] = 'Image has too many pixels.'; - $this->translation['not_enough_pixels'] = 'Image has not enough pixels.'; - $this->translation['file_not_uploaded'] = 'File not uploaded. Can\'t carry on a process.'; - $this->translation['already_exists'] = '%s already exists. Please change the file name.'; - $this->translation['temp_file_missing'] = 'No correct temp source file. Can\'t carry on a process.'; - $this->translation['source_missing'] = 'No correct uploaded source file. Can\'t carry on a process.'; - $this->translation['destination_dir'] = 'Destination directory can\'t be created. Can\'t carry on a process.'; - $this->translation['destination_dir_missing'] = 'Destination directory doesn\'t exist. Can\'t carry on a process.'; - $this->translation['destination_path_not_dir'] = 'Destination path is not a directory. Can\'t carry on a process.'; - $this->translation['destination_dir_write'] = 'Destination directory can\'t be made writeable. Can\'t carry on a process.'; - $this->translation['destination_path_write'] = 'Destination path is not a writeable. Can\'t carry on a process.'; - $this->translation['temp_file'] = 'Can\'t create the temporary file. Can\'t carry on a process.'; - $this->translation['source_not_readable'] = 'Source file is not readable. Can\'t carry on a process.'; - $this->translation['no_create_support'] = 'No create from %s support.'; - $this->translation['create_error'] = 'Error in creating %s image from source.'; - $this->translation['source_invalid'] = 'Can\'t read image source. Not an image?.'; - $this->translation['gd_missing'] = 'GD doesn\'t seem to be present.'; - $this->translation['watermark_no_create_support'] = 'No create from %s support, can\'t read watermark.'; - $this->translation['watermark_create_error'] = 'No %s read support, can\'t create watermark.'; - $this->translation['watermark_invalid'] = 'Unknown image format, can\'t read watermark.'; - $this->translation['file_create'] = 'No %s create support.'; - $this->translation['no_conversion_type'] = 'No conversion type defined.'; - $this->translation['copy_failed'] = 'Error copying file on the server. copy() failed.'; - $this->translation['reading_failed'] = 'Error reading the file.'; - - // determines the language - $this->lang = $lang; - if ($this->lang != 'en_GB' && file_exists(dirname(__FILE__).'/lang') && file_exists(dirname(__FILE__).'/lang/class.upload.' . $lang . '.php')) { - $translation = null; - include(dirname(__FILE__).'/lang/class.upload.' . $lang . '.php'); - if (is_array($translation)) { - $this->translation = array_merge($this->translation, $translation); - } else { - $this->lang = 'en_GB'; - } - } - - - // determines the supported MIME types, and matching image format - $this->image_supported = array(); - if ($this->gdversion()) { - if (imagetypes() & IMG_GIF) { - $this->image_supported['image/gif'] = 'gif'; - } - if (imagetypes() & IMG_JPG) { - $this->image_supported['image/jpg'] = 'jpg'; - $this->image_supported['image/jpeg'] = 'jpg'; - $this->image_supported['image/pjpeg'] = 'jpg'; - } - if (imagetypes() & IMG_PNG) { - $this->image_supported['image/png'] = 'png'; - $this->image_supported['image/x-png'] = 'png'; - } - if (imagetypes() & IMG_WBMP) { - $this->image_supported['image/bmp'] = 'bmp'; - $this->image_supported['image/x-ms-bmp'] = 'bmp'; - $this->image_supported['image/x-windows-bmp'] = 'bmp'; - } - } - - // display some system information - if (empty($this->log)) { - $this->log .= 'system information
'; - if (function_exists('ini_get_all')) { - $inis = ini_get_all(); - $open_basedir = (array_key_exists('open_basedir', $inis) && array_key_exists('local_value', $inis['open_basedir']) && !empty($inis['open_basedir']['local_value'])) ? $inis['open_basedir']['local_value'] : false; - } else { - $open_basedir = false; - } - $gd = $this->gdversion() ? $this->gdversion(true) : 'GD not present'; - $supported = trim((in_array('png', $this->image_supported) ? 'png' : '') . ' ' . (in_array('jpg', $this->image_supported) ? 'jpg' : '') . ' ' . (in_array('gif', $this->image_supported) ? 'gif' : '') . ' ' . (in_array('bmp', $this->image_supported) ? 'bmp' : '')); - $this->log .= '- class version : ' . $this->version . '
'; - $this->log .= '- operating system : ' . PHP_OS . '
'; - $this->log .= '- PHP version : ' . PHP_VERSION . '
'; - $this->log .= '- GD version : ' . $gd . '
'; - $this->log .= '- supported image types : ' . (!empty($supported) ? $supported : 'none') . '
'; - $this->log .= '- open_basedir : ' . (!empty($open_basedir) ? $open_basedir : 'no restriction') . '
'; - $this->log .= '- upload_max_filesize : ' . $this->file_max_size_raw . ' (' . $this->file_max_size . ' bytes)
'; - $this->log .= '- language : ' . $this->lang . '
'; - } - - if (!$file) { - $this->uploaded = false; - $this->error = $this->translate('file_error'); - } - - // check if we sent a local filename rather than a $_FILE element - if (!is_array($file)) { - if (empty($file)) { - $this->uploaded = false; - $this->error = $this->translate('file_error'); - } else { - $this->no_upload_check = TRUE; - // this is a local filename, i.e.not uploaded - $this->log .= '' . $this->translate("source is a local file") . ' ' . $file . '
'; - - if ($this->uploaded && !file_exists($file)) { - $this->uploaded = false; - $this->error = $this->translate('local_file_missing'); - } - - if ($this->uploaded && !is_readable($file)) { - $this->uploaded = false; - $this->error = $this->translate('local_file_not_readable'); - } - - if ($this->uploaded) { - $this->file_src_pathname = $file; - $this->file_src_name = basename($file); - $this->log .= '- local file name OK
'; - preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension); - if (is_array($extension) && sizeof($extension) > 0) { - $this->file_src_name_ext = strtolower($extension[1]); - $this->file_src_name_body = substr($this->file_src_name, 0, ((strlen($this->file_src_name) - strlen($this->file_src_name_ext)))-1); - } else { - $this->file_src_name_ext = ''; - $this->file_src_name_body = $this->file_src_name; - } - $this->file_src_size = (file_exists($file) ? filesize($file) : 0); - } - $this->file_src_error = 0; - } - } else { - // this is an element from $_FILE, i.e. an uploaded file - $this->log .= 'source is an uploaded file
'; - if ($this->uploaded) { - $this->file_src_error = trim($file['error']); - switch($this->file_src_error) { - case UPLOAD_ERR_OK: - // all is OK - $this->log .= '- upload OK
'; - break; - case UPLOAD_ERR_INI_SIZE: - $this->uploaded = false; - $this->error = $this->translate('uploaded_too_big_ini'); - break; - case UPLOAD_ERR_FORM_SIZE: - $this->uploaded = false; - $this->error = $this->translate('uploaded_too_big_html'); - break; - case UPLOAD_ERR_PARTIAL: - $this->uploaded = false; - $this->error = $this->translate('uploaded_partial'); - break; - case UPLOAD_ERR_NO_FILE: - $this->uploaded = false; - $this->error = $this->translate('uploaded_missing'); - break; - case @UPLOAD_ERR_NO_TMP_DIR: - $this->uploaded = false; - $this->error = $this->translate('uploaded_no_tmp_dir'); - break; - case @UPLOAD_ERR_CANT_WRITE: - $this->uploaded = false; - $this->error = $this->translate('uploaded_cant_write'); - break; - case @UPLOAD_ERR_EXTENSION: - $this->uploaded = false; - $this->error = $this->translate('uploaded_err_extension'); - break; - default: - $this->uploaded = false; - $this->error = $this->translate('uploaded_unknown') . ' ('.$this->file_src_error.')'; - } - } - - if ($this->uploaded) { - $this->file_src_pathname = $file['tmp_name']; - $this->file_src_name = $file['name']; - if ($this->file_src_name == '') { - $this->uploaded = false; - $this->error = $this->translate('try_again'); - } - } - - if ($this->uploaded) { - $this->log .= '- file name OK
'; - preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension); - if (is_array($extension) && sizeof($extension) > 0) { - $this->file_src_name_ext = strtolower($extension[1]); - $this->file_src_name_body = substr($this->file_src_name, 0, ((strlen($this->file_src_name) - strlen($this->file_src_name_ext)))-1); - } else { - $this->file_src_name_ext = ''; - $this->file_src_name_body = $this->file_src_name; - } - $this->file_src_size = $file['size']; - $mime_from_browser = $file['type']; - } - } - - if ($this->uploaded) { - $this->log .= 'determining MIME type
'; - $this->file_src_mime = null; - - // checks MIME type with Fileinfo PECL extension - if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === FALSE) { - if ($this->mime_fileinfo) { - $this->log .= '- Checking MIME type with Fileinfo PECL extension
'; - if (function_exists('finfo_open')) { - if ($this->mime_fileinfo !== '') { - if ($this->mime_fileinfo === true) { - if (getenv('MAGIC') === FALSE) { - if (substr(PHP_OS, 0, 3) == 'WIN') { - $path = realpath(ini_get('extension_dir') . '/../') . 'extras/magic'; - } else { - $path = '/usr/share/file/magic'; - } - $this->log .= '    MAGIC path defaults to ' . $path . '
'; - } else { - $path = getenv('MAGIC'); - $this->log .= '    MAGIC path is set to ' . $path . ' from MAGIC variable
'; - } - } else { - $path = $this->mime_fileinfo; - $this->log .= '    MAGIC path is set to ' . $path . '
'; - } - $f = @finfo_open(FILEINFO_MIME, $path); - } else { - $this->log .= '    MAGIC path will not be used
'; - $f = @finfo_open(FILEINFO_MIME); - } - if (is_resource($f)) { - $mime = finfo_file($f, realpath($this->file_src_pathname)); - finfo_close($f); - $this->file_src_mime = $mime; - $this->log .= '    MIME type detected as ' . $this->file_src_mime . ' by Fileinfo PECL extension
'; - if (preg_match("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", $this->file_src_mime)) { - $this->file_src_mime = preg_replace("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", '$1/$2', $this->file_src_mime); - $this->log .= '- MIME validated as ' . $this->file_src_mime . '
'; - } else { - $this->file_src_mime = null; - } - } else { - $this->log .= '    Fileinfo PECL extension failed (finfo_open)
'; - } - } elseif (@class_exists('finfo')) { - $f = new finfo( FILEINFO_MIME ); - if ($f) { - $this->file_src_mime = $f->file(realpath($this->file_src_pathname)); - $this->log .= '- MIME type detected as ' . $this->file_src_mime . ' by Fileinfo PECL extension
'; - if (preg_match("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", $this->file_src_mime)) { - $this->file_src_mime = preg_replace("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", '$1/$2', $this->file_src_mime); - $this->log .= '- MIME validated as ' . $this->file_src_mime . '
'; - } else { - $this->file_src_mime = null; - } - } else { - $this->log .= '    Fileinfo PECL extension failed (finfo)
'; - } - } else { - $this->log .= '    Fileinfo PECL extension not available
'; - } - } else { - $this->log .= '- Fileinfo PECL extension deactivated
'; - } - } - - // checks MIME type with shell if unix access is authorized - if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === FALSE) { - if ($this->mime_file) { - $this->log .= '- Checking MIME type with UNIX file() command
'; - if (substr(PHP_OS, 0, 3) != 'WIN') { - if (function_exists('exec')) { - if (strlen($mime = @exec("file -bi ".escapeshellarg($this->file_src_pathname))) != 0) { - $this->file_src_mime = trim($mime); - $this->log .= '    MIME type detected as ' . $this->file_src_mime . ' by UNIX file() command
'; - if (preg_match("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", $this->file_src_mime)) { - $this->file_src_mime = preg_replace("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", '$1/$2', $this->file_src_mime); - $this->log .= '- MIME validated as ' . $this->file_src_mime . '
'; - } else { - $this->file_src_mime = null; - } - } else { - $this->log .= '    UNIX file() command failed
'; - } - } else { - $this->log .= '    PHP exec() function is disabled
'; - } - } else { - $this->log .= '    UNIX file() command not availabled
'; - } - } else { - $this->log .= '- UNIX file() command is deactivated
'; - } - } - - // checks MIME type with mime_magic - if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === FALSE) { - if ($this->mime_magic) { - $this->log .= '- Checking MIME type with mime.magic file (mime_content_type())
'; - if (function_exists('mime_content_type')) { - $this->file_src_mime = mime_content_type($this->file_src_pathname); - $this->log .= '    MIME type detected as ' . $this->file_src_mime . ' by mime_content_type()
'; - if (preg_match("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", $this->file_src_mime)) { - $this->file_src_mime = preg_replace("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", '$1/$2', $this->file_src_mime); - $this->log .= '- MIME validated as ' . $this->file_src_mime . '
'; - } else { - $this->file_src_mime = null; - } - } else { - $this->log .= '    mime_content_type() is not available
'; - } - } else { - $this->log .= '- mime.magic file (mime_content_type()) is deactivated
'; - } - } - - // checks MIME type with getimagesize() - if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === FALSE) { - if ($this->mime_getimagesize) { - $this->log .= '- Checking MIME type with getimagesize()
'; - $info = getimagesize($this->file_src_pathname); - if (is_array($info) && array_key_exists('mime', $info)) { - $this->file_src_mime = trim($info['mime']); - if (empty($this->file_src_mime)) { - $this->log .= '    MIME empty, guessing from type
'; - $mime = (is_array($info) && array_key_exists(2, $info) ? $info[2] : null); // 1 = GIF, 2 = JPG, 3 = PNG - $this->file_src_mime = ($mime==IMAGETYPE_GIF ? 'image/gif' : ($mime==IMAGETYPE_JPEG ? 'image/jpeg' : ($mime==IMAGETYPE_PNG ? 'image/png' : ($mime==IMAGETYPE_BMP ? 'image/bmp' : null)))); - } - $this->log .= '    MIME type detected as ' . $this->file_src_mime . ' by PHP getimagesize() function
'; - if (preg_match("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", $this->file_src_mime)) { - $this->file_src_mime = preg_replace("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", '$1/$2', $this->file_src_mime); - $this->log .= '- MIME validated as ' . $this->file_src_mime . '
'; - } else { - $this->file_src_mime = null; - } - } else { - $this->log .= '    getimagesize() failed
'; - } - } else { - $this->log .= '- getimagesize() is deactivated
'; - } - } - - // default to MIME from browser (or Flash) - if (!empty($mime_from_browser) && !$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime)) { - $this->file_src_mime =$mime_from_browser; - $this->log .= '- MIME type detected as ' . $this->file_src_mime . ' by browser
'; - if (preg_match("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", $this->file_src_mime)) { - $this->file_src_mime = preg_replace("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", '$1/$2', $this->file_src_mime); - $this->log .= '- MIME validated as ' . $this->file_src_mime . '
'; - } else { - $this->file_src_mime = null; - } - } - - // we need to work some magic if we upload via Flash - if ($this->file_src_mime == 'application/octet-stream' || !$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === FALSE) { - if ($this->file_src_mime == 'application/octet-stream') $this->log .= '- Flash may be rewriting MIME as application/octet-stream
'; - $this->log .= '- Try to guess MIME type from file extension (' . $this->file_src_name_ext . '): '; - if (array_key_exists($this->file_src_name_ext, $this->mime_types)) $this->file_src_mime = $this->mime_types[$this->file_src_name_ext]; - if ($this->file_src_mime == 'application/octet-stream') { - $this->log .= 'doesn\'t look like anything known
'; - } else { - $this->log .= 'MIME type set to ' . $this->file_src_mime . '
'; - } - } - - if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === FALSE) { - $this->log .= '- MIME type couldn\'t be detected! (' . (string) $this->file_src_mime . ')
'; - } - - // determine whether the file is an image - if ($this->file_src_mime && is_string($this->file_src_mime) && !empty($this->file_src_mime) && array_key_exists($this->file_src_mime, $this->image_supported)) { - $this->file_is_image = true; - $this->image_src_type = $this->image_supported[$this->file_src_mime]; - } - - // if the file is an image, we gather some useful data - if ($this->file_is_image) { - if ($h = fopen($this->file_src_pathname, 'r')) { - fclose($h); - $info = getimagesize($this->file_src_pathname); - if (is_array($info)) { - $this->image_src_x = $info[0]; - $this->image_src_y = $info[1]; - $this->image_dst_x = $this->image_src_x; - $this->image_dst_y = $this->image_src_y; - $this->image_src_pixels = $this->image_src_x * $this->image_src_y; - $this->image_src_bits = array_key_exists('bits', $info) ? $info['bits'] : null; - } else { - $this->file_is_image = false; - $this->uploaded = false; - $this->log .= '- can\'t retrieve image information, image may have been tampered with
'; - $this->error = $this->translate('source_invalid'); - } - } else { - $this->log .= '- can\'t read source file directly. open_basedir restriction in place?
'; - } - } - - $this->log .= 'source variables
'; - $this->log .= '- You can use all these before calling process()
'; - $this->log .= '    file_src_name : ' . $this->file_src_name . '
'; - $this->log .= '    file_src_name_body : ' . $this->file_src_name_body . '
'; - $this->log .= '    file_src_name_ext : ' . $this->file_src_name_ext . '
'; - $this->log .= '    file_src_pathname : ' . $this->file_src_pathname . '
'; - $this->log .= '    file_src_mime : ' . $this->file_src_mime . '
'; - $this->log .= '    file_src_size : ' . $this->file_src_size . ' (max= ' . $this->file_max_size . ')
'; - $this->log .= '    file_src_error : ' . $this->file_src_error . '
'; - - if ($this->file_is_image) { - $this->log .= '- source file is an image
'; - $this->log .= '    image_src_x : ' . $this->image_src_x . '
'; - $this->log .= '    image_src_y : ' . $this->image_src_y . '
'; - $this->log .= '    image_src_pixels : ' . $this->image_src_pixels . '
'; - $this->log .= '    image_src_type : ' . $this->image_src_type . '
'; - $this->log .= '    image_src_bits : ' . $this->image_src_bits . '
'; - } - } - - } - - /** - * Returns the version of GD - * - * @access public - * @param boolean $full Optional flag to get precise version - * @return float GD version - */ - function gdversion($full = false) { - static $gd_version = null; - static $gd_full_version = null; - if ($gd_version === null) { - if (function_exists('gd_info')) { - $gd = gd_info(); - $gd = $gd["GD Version"]; - $regex = "/([\d\.]+)/i"; - } else { - ob_start(); - phpinfo(8); - $gd = ob_get_contents(); - ob_end_clean(); - $regex = "/\bgd\s+version\b[^\d\n\r]+?([\d\.]+)/i"; - } - if (preg_match($regex, $gd, $m)) { - $gd_full_version = (string) $m[1]; - $gd_version = (float) $m[1]; - } else { - $gd_full_version = 'none'; - $gd_version = 0; - } - } - if ($full) { - return $gd_full_version; - } else { - return $gd_version; - } - } - - /** - * Creates directories recursively - * - * @access private - * @param string $path Path to create - * @param integer $mode Optional permissions - * @return boolean Success - */ - function rmkdir($path, $mode = 0777) { - return is_dir($path) || ( $this->rmkdir(dirname($path), $mode) && $this->_mkdir($path, $mode) ); - } - - /** - * Creates directory - * - * @access private - * @param string $path Path to create - * @param integer $mode Optional permissions - * @return boolean Success - */ - function _mkdir($path, $mode = 0777) { - $old = umask(0); - $res = @mkdir($path, $mode); - umask($old); - return $res; - } - - /** - * Translate error messages - * - * @access private - * @param string $str Message to translate - * @param array $tokens Optional token values - * @return string Translated string - */ - function translate($str, $tokens = array()) { - if (array_key_exists($str, $this->translation)) $str = $this->translation[$str]; - if (is_array($tokens) && sizeof($tokens) > 0) $str = vsprintf($str, $tokens); - return $str; - } - - /** - * Decodes colors - * - * @access private - * @param string $color Color string - * @return array RGB colors - */ - function getcolors($color) { - $r = sscanf($color, "#%2x%2x%2x"); - $red = (array_key_exists(0, $r) && is_numeric($r[0]) ? $r[0] : 0); - $green = (array_key_exists(1, $r) && is_numeric($r[1]) ? $r[1] : 0); - $blue = (array_key_exists(2, $r) && is_numeric($r[2]) ? $r[2] : 0); - return array($red, $green, $blue); - } - - /** - * Decodes sizes - * - * @access private - * @param string $size Size in bytes, or shorthand byte options - * @return integer Size in bytes - */ - function getsize($size) { - $last = strtolower($size{strlen($size)-1}); - switch($last) { - case 'g': - $size *= 1024; - case 'm': - $size *= 1024; - case 'k': - $size *= 1024; - } - return $size; - } - - /** - * Decodes offsets - * - * @access private - * @param misc $offsets Offsets, as an integer, a string or an array - * @param integer $x Reference picture width - * @param integer $y Reference picture height - * @param boolean $round Round offsets before returning them - * @param boolean $negative Allow negative offsets to be returned - * @return array Array of four offsets (TRBL) - */ - function getoffsets($offsets, $x, $y, $round = true, $negative = true) { - if (!is_array($offsets)) $offsets = explode(' ', $offsets); - if (sizeof($offsets) == 4) { - $ct = $offsets[0]; $cr = $offsets[1]; $cb = $offsets[2]; $cl = $offsets[3]; - } else if (sizeof($offsets) == 2) { - $ct = $offsets[0]; $cr = $offsets[1]; $cb = $offsets[0]; $cl = $offsets[1]; - } else { - $ct = $offsets[0]; $cr = $offsets[0]; $cb = $offsets[0]; $cl = $offsets[0]; - } - if (strpos($ct, '%')>0) $ct = $y * (str_replace('%','',$ct) / 100); - if (strpos($cr, '%')>0) $cr = $x * (str_replace('%','',$cr) / 100); - if (strpos($cb, '%')>0) $cb = $y * (str_replace('%','',$cb) / 100); - if (strpos($cl, '%')>0) $cl = $x * (str_replace('%','',$cl) / 100); - if (strpos($ct, 'px')>0) $ct = str_replace('px','',$ct); - if (strpos($cr, 'px')>0) $cr = str_replace('px','',$cr); - if (strpos($cb, 'px')>0) $cb = str_replace('px','',$cb); - if (strpos($cl, 'px')>0) $cl = str_replace('px','',$cl); - $ct = (int) $ct; $cr = (int) $cr; $cb = (int) $cb; $cl = (int) $cl; - if ($round) { - $ct = round($ct); - $cr = round($cr); - $cb = round($cb); - $cl = round($cl); - } - if (!$negative) { - if ($ct < 0) $ct = 0; - if ($cr < 0) $cr = 0; - if ($cb < 0) $cb = 0; - if ($cl < 0) $cl = 0; - } - return array($ct, $cr, $cb, $cl); - } - - /** - * Creates a container image - * - * @access private - * @param integer $x Width - * @param integer $y Height - * @param boolean $fill Optional flag to draw the background color or not - * @param boolean $trsp Optional flag to set the background to be transparent - * @return resource Container image - */ - function imagecreatenew($x, $y, $fill = true, $trsp = false) { - if ($x < 1) $x = 1; if ($y < 1) $y = 1; - if ($this->gdversion() >= 2 && !$this->image_is_palette) { - // create a true color image - $dst_im = imagecreatetruecolor($x, $y); - // this preserves transparency in PNGs, in true color - if (empty($this->image_background_color) || $trsp) { - imagealphablending($dst_im, false ); - imagefilledrectangle($dst_im, 0, 0, $x, $y, imagecolorallocatealpha($dst_im, 0, 0, 0, 127)); - } - } else { - // creates a palette image - $dst_im = imagecreate($x, $y); - // preserves transparency for palette images, if the original image has transparency - if (($fill && $this->image_is_transparent && empty($this->image_background_color)) || $trsp) { - imagefilledrectangle($dst_im, 0, 0, $x, $y, $this->image_transparent_color); - imagecolortransparent($dst_im, $this->image_transparent_color); - } - } - // fills with background color if any is set - if ($fill && !empty($this->image_background_color) && !$trsp) { - list($red, $green, $blue) = $this->getcolors($this->image_background_color); - $background_color = imagecolorallocate($dst_im, $red, $green, $blue); - imagefilledrectangle($dst_im, 0, 0, $x, $y, $background_color); - } - return $dst_im; - } - - - /** - * Transfers an image from the container to the destination image - * - * @access private - * @param resource $src_im Container image - * @param resource $dst_im Destination image - * @return resource Destination image - */ - function imagetransfer($src_im, $dst_im) { - if (is_resource($dst_im)) imagedestroy($dst_im); - $dst_im = & $src_im; - return $dst_im; - } - - /** - * Merges two images - * - * If the output format is PNG, then we do it pixel per pixel to retain the alpha channel - * - * @access private - * @param resource $dst_img Destination image - * @param resource $src_img Overlay image - * @param int $dst_x x-coordinate of destination point - * @param int $dst_y y-coordinate of destination point - * @param int $src_x x-coordinate of source point - * @param int $src_y y-coordinate of source point - * @param int $src_w Source width - * @param int $src_h Source height - * @param int $pct Optional percentage of the overlay, between 0 and 100 (default: 100) - * @return resource Destination image - */ - function imagecopymergealpha(&$dst_im, &$src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct = 0) { - $dst_x = (int) $dst_x; - $dst_y = (int) $dst_y; - $src_x = (int) $src_x; - $src_y = (int) $src_y; - $src_w = (int) $src_w; - $src_h = (int) $src_h; - $pct = (int) $pct; - $dst_w = imagesx($dst_im); - $dst_h = imagesy($dst_im); - - for ($y = $src_y; $y < $src_h; $y++) { - for ($x = $src_x; $x < $src_w; $x++) { - - if ($x + $dst_x >= 0 && $x + $dst_x < $dst_w && $x + $src_x >= 0 && $x + $src_x < $src_w - && $y + $dst_y >= 0 && $y + $dst_y < $dst_h && $y + $src_y >= 0 && $y + $src_y < $src_h) { - - $dst_pixel = imagecolorsforindex($dst_im, imagecolorat($dst_im, $x + $dst_x, $y + $dst_y)); - $src_pixel = imagecolorsforindex($src_im, imagecolorat($src_im, $x + $src_x, $y + $src_y)); - - $src_alpha = 1 - ($src_pixel['alpha'] / 127); - $dst_alpha = 1 - ($dst_pixel['alpha'] / 127); - $opacity = $src_alpha * $pct / 100; - if ($dst_alpha >= $opacity) $alpha = $dst_alpha; - if ($dst_alpha < $opacity) $alpha = $opacity; - if ($alpha > 1) $alpha = 1; - - if ($opacity > 0) { - $dst_red = round(( ($dst_pixel['red'] * $dst_alpha * (1 - $opacity)) ) ); - $dst_green = round(( ($dst_pixel['green'] * $dst_alpha * (1 - $opacity)) ) ); - $dst_blue = round(( ($dst_pixel['blue'] * $dst_alpha * (1 - $opacity)) ) ); - $src_red = round((($src_pixel['red'] * $opacity)) ); - $src_green = round((($src_pixel['green'] * $opacity)) ); - $src_blue = round((($src_pixel['blue'] * $opacity)) ); - $red = round(($dst_red + $src_red ) / ($dst_alpha * (1 - $opacity) + $opacity)); - $green = round(($dst_green + $src_green) / ($dst_alpha * (1 - $opacity) + $opacity)); - $blue = round(($dst_blue + $src_blue ) / ($dst_alpha * (1 - $opacity) + $opacity)); - if ($red > 255) $red = 255; - if ($green > 255) $green = 255; - if ($blue > 255) $blue = 255; - $alpha = round((1 - $alpha) * 127); - $color = imagecolorallocatealpha($dst_im, $red, $green, $blue, $alpha); - imagesetpixel($dst_im, $x + $dst_x, $y + $dst_y, $color); - } - } - } - } - return true; - } - - - - /** - * Actually uploads the file, and act on it according to the set processing class variables - * - * This function copies the uploaded file to the given location, eventually performing actions on it. - * Typically, you can call {@link process} several times for the same file, - * for instance to create a resized image and a thumbnail of the same file. - * The original uploaded file remains intact in its temporary location, so you can use {@link process} several times. - * You will be able to delete the uploaded file with {@link clean} when you have finished all your {@link process} calls. - * - * According to the processing class variables set in the calling file, the file can be renamed, - * and if it is an image, can be resized or converted. - * - * When the processing is completed, and the file copied to its new location, the - * processing class variables will be reset to their default value. - * This allows you to set new properties, and perform another {@link process} on the same uploaded file - * - * If the function is called with a null or empty argument, then it will return the content of the picture - * - * It will set {@link processed} (and {@link error} is an error occurred) - * - * @access public - * @param string $server_path Optional path location of the uploaded file, with an ending slash - * @return string Optional content of the image - */ - function process($server_path = null) { - $this->error = ''; - $this->processed = true; - $return_mode = false; - $return_content = null; - - // clean up dst variables - $this->file_dst_path = ''; - $this->file_dst_pathname = ''; - $this->file_dst_name = ''; - $this->file_dst_name_body = ''; - $this->file_dst_name_ext = ''; - - // clean up some parameters - $this->file_max_size = $this->getsize($this->file_max_size); - $this->jpeg_size = $this->getsize($this->jpeg_size); - // some parameters are being deprecated, and replaced with others - if (is_null($this->image_overlay_opacity)) $this->image_overlay_opacity = $this->image_overlay_percent; - if ($this->image_text_opacity == 100) $this->image_text_opacity = $this->image_text_percent; - if ($this->image_text_background_opacity == 100) $this->image_text_background_opacity = $this->image_text_background_percent; - - // copy some variables as we need to keep them clean - $file_src_name = $this->file_src_name; - $file_src_name_body = $this->file_src_name_body; - $file_src_name_ext = $this->file_src_name_ext; - - if (!$this->uploaded) { - $this->error = $this->translate('file_not_uploaded'); - $this->processed = false; - } - - if ($this->processed) { - if (empty($server_path) || is_null($server_path)) { - $this->log .= 'process file and return the content
'; - $return_mode = true; - } else { - if(strtolower(substr(PHP_OS, 0, 3)) === 'win') { - if (substr($server_path, -1, 1) != '\\') $server_path = $server_path . '\\'; - } else { - if (substr($server_path, -1, 1) != '/') $server_path = $server_path . '/'; - } - $this->log .= 'process file to ' . $server_path . '
'; - } - } - - if ($this->processed) { - // checks file max size - if ($this->file_src_size > $this->file_max_size) { - $this->processed = false; - $this->error = $this->translate('file_too_big'); - } else { - $this->log .= '- file size OK
'; - } - } - - if ($this->processed) { - // if we have an image without extension, set it - if ($this->file_force_extension && $this->file_is_image && !$this->file_src_name_ext) $file_src_name_ext = $this->image_src_type; - // turn dangerous scripts into text files - if ($this->no_script) { - // if the file has no extension, we try to guess it from the MIME type - if ($this->file_force_extension && empty($file_src_name_ext)) { - if ($key = array_search($this->file_src_mime, $this->mime_types)) { - $file_src_name_ext = $key; - $file_src_name = $file_src_name_body . '.' . $file_src_name_ext; - $this->log .= '- file renamed as ' . $file_src_name_body . '.' . $file_src_name_ext . '!
'; - } - } - // if the file is text based, or has a dangerous extension, we rename it as .txt - if ((((substr($this->file_src_mime, 0, 5) == 'text/' && $this->file_src_mime != 'text/rtf') || strpos($this->file_src_mime, 'javascript') !== false) && (substr($file_src_name, -4) != '.txt')) - || preg_match('/\.(php|pl|py|cgi|asp|js)$/i', $this->file_src_name) - || $this->file_force_extension && empty($file_src_name_ext)) { - $this->file_src_mime = 'text/plain'; - if ($this->file_src_name_ext) $file_src_name_body = $file_src_name_body . '.' . $this->file_src_name_ext; - $file_src_name_ext = 'txt'; - $file_src_name = $file_src_name_body . '.' . $file_src_name_ext; - $this->log .= '- script renamed as ' . $file_src_name_body . '.' . $file_src_name_ext . '!
'; - } - } - - if ($this->mime_check && empty($this->file_src_mime)) { - $this->processed = false; - $this->error = $this->translate('no_mime'); - } else if ($this->mime_check && !empty($this->file_src_mime) && strpos($this->file_src_mime, '/') !== false) { - list($m1, $m2) = explode('/', $this->file_src_mime); - $allowed = false; - // check wether the mime type is allowed - if (!is_array($this->allowed)) $this->allowed = array($this->allowed); - foreach($this->allowed as $k => $v) { - list($v1, $v2) = explode('/', $v); - if (($v1 == '*' && $v2 == '*') || ($v1 == $m1 && ($v2 == $m2 || $v2 == '*'))) { - $allowed = true; - break; - } - } - // check wether the mime type is forbidden - if (!is_array($this->forbidden)) $this->forbidden = array($this->forbidden); - foreach($this->forbidden as $k => $v) { - list($v1, $v2) = explode('/', $v); - if (($v1 == '*' && $v2 == '*') || ($v1 == $m1 && ($v2 == $m2 || $v2 == '*'))) { - $allowed = false; - break; - } - } - if (!$allowed) { - $this->processed = false; - $this->error = $this->translate('incorrect_file'); - } else { - $this->log .= '- file mime OK : ' . $this->file_src_mime . '
'; - } - } else { - $this->log .= '- file mime (not checked) : ' . $this->file_src_mime . '
'; - } - - // if the file is an image, we can check on its dimensions - // these checks are not available if open_basedir restrictions are in place - if ($this->file_is_image) { - if (is_numeric($this->image_src_x) && is_numeric($this->image_src_y)) { - $ratio = $this->image_src_x / $this->image_src_y; - if (!is_null($this->image_max_width) && $this->image_src_x > $this->image_max_width) { - $this->processed = false; - $this->error = $this->translate('image_too_wide'); - } - if (!is_null($this->image_min_width) && $this->image_src_x < $this->image_min_width) { - $this->processed = false; - $this->error = $this->translate('image_too_narrow'); - } - if (!is_null($this->image_max_height) && $this->image_src_y > $this->image_max_height) { - $this->processed = false; - $this->error = $this->translate('image_too_high'); - } - if (!is_null($this->image_min_height) && $this->image_src_y < $this->image_min_height) { - $this->processed = false; - $this->error = $this->translate('image_too_short'); - } - if (!is_null($this->image_max_ratio) && $ratio > $this->image_max_ratio) { - $this->processed = false; - $this->error = $this->translate('ratio_too_high'); - } - if (!is_null($this->image_min_ratio) && $ratio < $this->image_min_ratio) { - $this->processed = false; - $this->error = $this->translate('ratio_too_low'); - } - if (!is_null($this->image_max_pixels) && $this->image_src_pixels > $this->image_max_pixels) { - $this->processed = false; - $this->error = $this->translate('too_many_pixels'); - } - if (!is_null($this->image_min_pixels) && $this->image_src_pixels < $this->image_min_pixels) { - $this->processed = false; - $this->error = $this->translate('not_enough_pixels'); - } - } else { - $this->log .= '- no image properties available, can\'t enforce dimension checks : ' . $this->file_src_mime . '
'; - } - } - } - - if ($this->processed) { - $this->file_dst_path = $server_path; - - // repopulate dst variables from src - $this->file_dst_name = $file_src_name; - $this->file_dst_name_body = $file_src_name_body; - $this->file_dst_name_ext = $file_src_name_ext; - if ($this->file_overwrite) $this->file_auto_rename = false; - - if ($this->image_convert && $this->file_is_image) { // if we convert as an image - if ($this->file_src_name_ext) $this->file_dst_name_ext = $this->image_convert; - $this->log .= '- new file name ext : ' . $this->image_convert . '
'; - } - if (!is_null($this->file_new_name_body)) { // rename file body - $this->file_dst_name_body = $this->file_new_name_body; - $this->log .= '- new file name body : ' . $this->file_new_name_body . '
'; - } - if (!is_null($this->file_new_name_ext)) { // rename file ext - $this->file_dst_name_ext = $this->file_new_name_ext; - $this->log .= '- new file name ext : ' . $this->file_new_name_ext . '
'; - } - if (!is_null($this->file_name_body_add)) { // append a string to the name - $this->file_dst_name_body = $this->file_dst_name_body . $this->file_name_body_add; - $this->log .= '- file name body append : ' . $this->file_name_body_add . '
'; - } - if (!is_null($this->file_name_body_pre)) { // prepend a string to the name - $this->file_dst_name_body = $this->file_name_body_pre . $this->file_dst_name_body; - $this->log .= '- file name body prepend : ' . $this->file_name_body_pre . '
'; - } - if ($this->file_safe_name) { // formats the name - $this->file_dst_name_body = strtr($this->file_dst_name_body, 'ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ', 'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'); - $this->file_dst_name_body = strtr($this->file_dst_name_body, array('Þ' => 'TH', 'þ' => 'th', 'Ð' => 'DH', 'ð' => 'dh', 'ß' => 'ss', 'Œ' => 'OE', 'œ' => 'oe', 'Æ' => 'AE', 'æ' => 'ae', 'µ' => 'u')); - $this->file_dst_name_body = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'), array('_', '.', ''), $this->file_dst_name_body); - $this->log .= '- file name safe format
'; - } - - $this->log .= '- destination variables
'; - if (empty($this->file_dst_path) || is_null($this->file_dst_path)) { - $this->log .= '    file_dst_path : n/a
'; - } else { - $this->log .= '    file_dst_path : ' . $this->file_dst_path . '
'; - } - $this->log .= '    file_dst_name_body : ' . $this->file_dst_name_body . '
'; - $this->log .= '    file_dst_name_ext : ' . $this->file_dst_name_ext . '
'; - - // do we do some image manipulation? - $image_manipulation = ($this->file_is_image && ( - $this->image_resize - || $this->image_convert != '' - || is_numeric($this->image_brightness) - || is_numeric($this->image_contrast) - || is_numeric($this->image_opacity) - || is_numeric($this->image_threshold) - || !empty($this->image_tint_color) - || !empty($this->image_overlay_color) - || $this->image_unsharp - || !empty($this->image_text) - || $this->image_greyscale - || $this->image_negative - || !empty($this->image_watermark) - || is_numeric($this->image_rotate) - || is_numeric($this->jpeg_size) - || !empty($this->image_flip) - || !empty($this->image_crop) - || !empty($this->image_precrop) - || !empty($this->image_border) - || !empty($this->image_border_transparent) - || $this->image_frame > 0 - || $this->image_bevel > 0 - || $this->image_reflection_height)); - - // set the destination file name - $this->file_dst_name = $this->file_dst_name_body . (!empty($this->file_dst_name_ext) ? '.' . $this->file_dst_name_ext : ''); - - if (!$return_mode) { - if (!$this->file_auto_rename) { - $this->log .= '- no auto_rename if same filename exists
'; - $this->file_dst_pathname = $this->file_dst_path . $this->file_dst_name; - } else { - $this->log .= '- checking for auto_rename
'; - $this->file_dst_pathname = $this->file_dst_path . $this->file_dst_name; - $body = $this->file_dst_name_body; - $ext = ''; - // if we have changed the extension, then we add our increment before - if ($file_src_name_ext != $this->file_src_name_ext) { - if (substr($this->file_dst_name_body, -1 - strlen($this->file_src_name_ext)) == '.' . $this->file_src_name_ext) { - $body = substr($this->file_dst_name_body, 0, strlen($this->file_dst_name_body) - 1 - strlen($this->file_src_name_ext)); - $ext = '.' . $this->file_src_name_ext; - } - } - $cpt = 1; - while (@file_exists($this->file_dst_pathname)) { - $this->file_dst_name_body = $body . '_' . $cpt . $ext; - $this->file_dst_name = $this->file_dst_name_body . (!empty($this->file_dst_name_ext) ? '.' . $this->file_dst_name_ext : ''); - $cpt++; - $this->file_dst_pathname = $this->file_dst_path . $this->file_dst_name; - } - if ($cpt>1) $this->log .= '    auto_rename to ' . $this->file_dst_name . '
'; - } - - $this->log .= '- destination file details
'; - $this->log .= '    file_dst_name : ' . $this->file_dst_name . '
'; - $this->log .= '    file_dst_pathname : ' . $this->file_dst_pathname . '
'; - - if ($this->file_overwrite) { - $this->log .= '- no overwrite checking
'; - } else { - if (@file_exists($this->file_dst_pathname)) { - $this->processed = false; - $this->error = $this->translate('already_exists', array($this->file_dst_name)); - } else { - $this->log .= '- ' . $this->file_dst_name . ' doesn\'t exist already
'; - } - } - } - } - - if ($this->processed) { - // if we have already moved the uploaded file, we use the temporary copy as source file, and check if it exists - if (!empty($this->file_src_temp)) { - $this->log .= '- use the temp file instead of the original file since it is a second process
'; - $this->file_src_pathname = $this->file_src_temp; - if (!file_exists($this->file_src_pathname)) { - $this->processed = false; - $this->error = $this->translate('temp_file_missing'); - } - // if we haven't a temp file, and that we do check on uploads, we use is_uploaded_file() - } else if (!$this->no_upload_check) { - if (!is_uploaded_file($this->file_src_pathname)) { - $this->processed = false; - $this->error = $this->translate('source_missing'); - } - // otherwise, if we don't check on uploaded files (local file for instance), we use file_exists() - } else { - if (!file_exists($this->file_src_pathname)) { - $this->processed = false; - $this->error = $this->translate('source_missing'); - } - } - - // checks if the destination directory exists, and attempt to create it - if (!$return_mode) { - if ($this->processed && !file_exists($this->file_dst_path)) { - if ($this->dir_auto_create) { - $this->log .= '- ' . $this->file_dst_path . ' doesn\'t exist. Attempting creation:'; - if (!$this->rmkdir($this->file_dst_path, $this->dir_chmod)) { - $this->log .= ' failed
'; - $this->processed = false; - $this->error = $this->translate('destination_dir'); - } else { - $this->log .= ' success
'; - } - } else { - $this->error = $this->translate('destination_dir_missing'); - } - } - - if ($this->processed && !is_dir($this->file_dst_path)) { - $this->processed = false; - $this->error = $this->translate('destination_path_not_dir'); - } - - // checks if the destination directory is writeable, and attempt to make it writeable - $hash = md5($this->file_dst_name_body . rand(1, 1000)); - if ($this->processed && !($f = @fopen($this->file_dst_path . $hash . (!empty($this->file_dst_name_ext) ? '.' . $this->file_dst_name_ext : ''), 'a+'))) { - if ($this->dir_auto_chmod) { - $this->log .= '- ' . $this->file_dst_path . ' is not writeable. Attempting chmod:'; - if (!@chmod($this->file_dst_path, $this->dir_chmod)) { - $this->log .= ' failed
'; - $this->processed = false; - $this->error = $this->translate('destination_dir_write'); - } else { - $this->log .= ' success
'; - if (!($f = @fopen($this->file_dst_path . $hash . (!empty($this->file_dst_name_ext) ? '.' . $this->file_dst_name_ext : ''), 'a+'))) { // we re-check - $this->processed = false; - $this->error = $this->translate('destination_dir_write'); - } else { - @fclose($f); - } - } - } else { - $this->processed = false; - $this->error = $this->translate('destination_path_write'); - } - } else { - if ($this->processed) @fclose($f); - @unlink($this->file_dst_path . $hash . (!empty($this->file_dst_name_ext) ? '.' . $this->file_dst_name_ext : '')); - } - - - // if we have an uploaded file, and if it is the first process, and if we can't access the file directly (open_basedir restriction) - // then we create a temp file that will be used as the source file in subsequent processes - // the third condition is there to check if the file is not accessible *directly* (it already has positively gone through is_uploaded_file(), so it exists) - if (!$this->no_upload_check && empty($this->file_src_temp) && !@file_exists($this->file_src_pathname)) { - $this->log .= '- attempting to use a temp file:'; - $hash = md5($this->file_dst_name_body . rand(1, 1000)); - if (move_uploaded_file($this->file_src_pathname, $this->file_dst_path . $hash . (!empty($this->file_dst_name_ext) ? '.' . $this->file_dst_name_ext : ''))) { - $this->file_src_pathname = $this->file_dst_path . $hash . (!empty($this->file_dst_name_ext) ? '.' . $this->file_dst_name_ext : ''); - $this->file_src_temp = $this->file_src_pathname; - $this->log .= ' file created
'; - $this->log .= '    temp file is: ' . $this->file_src_temp . '
'; - } else { - $this->log .= ' failed
'; - $this->processed = false; - $this->error = $this->translate('temp_file'); - } - } - } - } - - if ($this->processed) { - - // we do a quick check to ensure the file is really an image - // we can do this only now, as it would have failed before in case of open_basedir - if ($image_manipulation && !@getimagesize($this->file_src_pathname)) { - $this->log .= '- the file is not an image!
'; - $image_manipulation = false; - } - - if ($image_manipulation) { - - // checks if the source file is readable - if ($this->processed && !($f = @fopen($this->file_src_pathname, 'r'))) { - $this->processed = false; - $this->error = $this->translate('source_not_readable'); - } else { - @fclose($f); - } - - // we now do all the image manipulations - $this->log .= '- image resizing or conversion wanted
'; - if ($this->gdversion()) { - switch($this->image_src_type) { - case 'jpg': - if (!function_exists('imagecreatefromjpeg')) { - $this->processed = false; - $this->error = $this->translate('no_create_support', array('JPEG')); - } else { - $image_src = @imagecreatefromjpeg($this->file_src_pathname); - if (!$image_src) { - $this->processed = false; - $this->error = $this->translate('create_error', array('JPEG')); - } else { - $this->log .= '- source image is JPEG
'; - } - } - break; - case 'png': - if (!function_exists('imagecreatefrompng')) { - $this->processed = false; - $this->error = $this->translate('no_create_support', array('PNG')); - } else { - $image_src = @imagecreatefrompng($this->file_src_pathname); - if (!$image_src) { - $this->processed = false; - $this->error = $this->translate('create_error', array('PNG')); - } else { - $this->log .= '- source image is PNG
'; - } - } - break; - case 'gif': - if (!function_exists('imagecreatefromgif')) { - $this->processed = false; - $this->error = $this->translate('no_create_support', array('GIF')); - } else { - $image_src = @imagecreatefromgif($this->file_src_pathname); - if (!$image_src) { - $this->processed = false; - $this->error = $this->translate('create_error', array('GIF')); - } else { - $this->log .= '- source image is GIF
'; - } - } - break; - case 'bmp': - if (!method_exists($this, 'imagecreatefrombmp')) { - $this->processed = false; - $this->error = $this->translate('no_create_support', array('BMP')); - } else { - $image_src = @$this->imagecreatefrombmp($this->file_src_pathname); - if (!$image_src) { - $this->processed = false; - $this->error = $this->translate('create_error', array('BMP')); - } else { - $this->log .= '- source image is BMP
'; - } - } - break; - default: - $this->processed = false; - $this->error = $this->translate('source_invalid'); - } - } else { - $this->processed = false; - $this->error = $this->translate('gd_missing'); - } - - if ($this->processed && $image_src) { - - // we have to set image_convert if it is not already - if (empty($this->image_convert)) { - $this->log .= '- setting destination file type to ' . $this->image_src_type . '
'; - $this->image_convert = $this->image_src_type; - } - - if (!in_array($this->image_convert, $this->image_supported)) { - $this->image_convert = 'jpg'; - } - - // we set the default color to be the background color if we don't output in a transparent format - if ($this->image_convert != 'png' && $this->image_convert != 'gif' && !empty($this->image_default_color) && empty($this->image_background_color)) $this->image_background_color = $this->image_default_color; - if (!empty($this->image_background_color)) $this->image_default_color = $this->image_background_color; - if (empty($this->image_default_color)) $this->image_default_color = '#FFFFFF'; - - $this->image_src_x = imagesx($image_src); - $this->image_src_y = imagesy($image_src); - $gd_version = $this->gdversion(); - $ratio_crop = null; - - if (!imageistruecolor($image_src)) { // $this->image_src_type == 'gif' - $this->log .= '- image is detected as having a palette
'; - $this->image_is_palette = true; - $this->image_transparent_color = imagecolortransparent($image_src); - if ($this->image_transparent_color >= 0 && imagecolorstotal($image_src) > $this->image_transparent_color) { - $this->image_is_transparent = true; - $this->log .= '    palette image is detected as transparent
'; - } - // if the image has a palette (GIF), we convert it to true color, preserving transparency - $this->log .= '    convert palette image to true color
'; - $true_color = imagecreatetruecolor($this->image_src_x, $this->image_src_y); - imagealphablending($true_color, false); - imagesavealpha($true_color, true); - for ($x = 0; $x < $this->image_src_x; $x++) { - for ($y = 0; $y < $this->image_src_y; $y++) { - if ($this->image_transparent_color >= 0 && imagecolorat($image_src, $x, $y) == $this->image_transparent_color) { - imagesetpixel($true_color, $x, $y, 127 << 24); - } else { - $rgb = imagecolorsforindex($image_src, imagecolorat($image_src, $x, $y)); - imagesetpixel($true_color, $x, $y, ($rgb['alpha'] << 24) | ($rgb['red'] << 16) | ($rgb['green'] << 8) | $rgb['blue']); - } - } - } - $image_src = $this->imagetransfer($true_color, $image_src); - imagealphablending($image_src, false); - imagesavealpha($image_src, true); - $this->image_is_palette = false; - } - - - $image_dst = & $image_src; - - // pre-crop image, before resizing - if ((!empty($this->image_precrop))) { - list($ct, $cr, $cb, $cl) = $this->getoffsets($this->image_precrop, $this->image_src_x, $this->image_src_y, true, true); - $this->log .= '- pre-crop image : ' . $ct . ' ' . $cr . ' ' . $cb . ' ' . $cl . '
'; - $this->image_src_x = $this->image_src_x - $cl - $cr; - $this->image_src_y = $this->image_src_y - $ct - $cb; - if ($this->image_src_x < 1) $this->image_src_x = 1; - if ($this->image_src_y < 1) $this->image_src_y = 1; - $tmp = $this->imagecreatenew($this->image_src_x, $this->image_src_y); - - // we copy the image into the recieving image - imagecopy($tmp, $image_dst, 0, 0, $cl, $ct, $this->image_src_x, $this->image_src_y); - - // if we crop with negative margins, we have to make sure the extra bits are the right color, or transparent - if ($ct < 0 || $cr < 0 || $cb < 0 || $cl < 0 ) { - // use the background color if present - if (!empty($this->image_background_color)) { - list($red, $green, $blue) = $this->getcolors($this->image_background_color); - $fill = imagecolorallocate($tmp, $red, $green, $blue); - } else { - $fill = imagecolorallocatealpha($tmp, 0, 0, 0, 127); - } - // fills eventual negative margins - if ($ct < 0) imagefilledrectangle($tmp, 0, 0, $this->image_src_x, -$ct, $fill); - if ($cr < 0) imagefilledrectangle($tmp, $this->image_src_x + $cr, 0, $this->image_src_x, $this->image_src_y, $fill); - if ($cb < 0) imagefilledrectangle($tmp, 0, $this->image_src_y + $cb, $this->image_src_x, $this->image_src_y, $fill); - if ($cl < 0) imagefilledrectangle($tmp, 0, 0, -$cl, $this->image_src_y, $fill); - } - - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // resize image (and move image_src_x, image_src_y dimensions into image_dst_x, image_dst_y) - if ($this->image_resize) { - $this->log .= '- resizing...
'; - - if ($this->image_ratio_x) { - $this->log .= '    calculate x size
'; - $this->image_dst_x = round(($this->image_src_x * $this->image_y) / $this->image_src_y); - $this->image_dst_y = $this->image_y; - } else if ($this->image_ratio_y) { - $this->log .= '    calculate y size
'; - $this->image_dst_x = $this->image_x; - $this->image_dst_y = round(($this->image_src_y * $this->image_x) / $this->image_src_x); - } else if (is_numeric($this->image_ratio_pixels)) { - $this->log .= '    calculate x/y size to match a number of pixels
'; - $pixels = $this->image_src_y * $this->image_src_x; - $diff = sqrt($this->image_ratio_pixels / $pixels); - $this->image_dst_x = round($this->image_src_x * $diff); - $this->image_dst_y = round($this->image_src_y * $diff); - } else if ($this->image_ratio || $this->image_ratio_crop || $this->image_ratio_fill || $this->image_ratio_no_zoom_in || $this->image_ratio_no_zoom_out) { - $this->log .= '    check x/y sizes
'; - if ((!$this->image_ratio_no_zoom_in && !$this->image_ratio_no_zoom_out) - || ($this->image_ratio_no_zoom_in && ($this->image_src_x > $this->image_x || $this->image_src_y > $this->image_y)) - || ($this->image_ratio_no_zoom_out && $this->image_src_x < $this->image_x && $this->image_src_y < $this->image_y)) { - $this->image_dst_x = $this->image_x; - $this->image_dst_y = $this->image_y; - if ($this->image_ratio_crop) { - if (!is_string($this->image_ratio_crop)) $this->image_ratio_crop = ''; - $this->image_ratio_crop = strtolower($this->image_ratio_crop); - if (($this->image_src_x/$this->image_x) > ($this->image_src_y/$this->image_y)) { - $this->image_dst_y = $this->image_y; - $this->image_dst_x = intval($this->image_src_x*($this->image_y / $this->image_src_y)); - $ratio_crop = array(); - $ratio_crop['x'] = $this->image_dst_x - $this->image_x; - if (strpos($this->image_ratio_crop, 'l') !== false) { - $ratio_crop['l'] = 0; - $ratio_crop['r'] = $ratio_crop['x']; - } else if (strpos($this->image_ratio_crop, 'r') !== false) { - $ratio_crop['l'] = $ratio_crop['x']; - $ratio_crop['r'] = 0; - } else { - $ratio_crop['l'] = round($ratio_crop['x']/2); - $ratio_crop['r'] = $ratio_crop['x'] - $ratio_crop['l']; - } - $this->log .= '    ratio_crop_x : ' . $ratio_crop['x'] . ' (' . $ratio_crop['l'] . ';' . $ratio_crop['r'] . ')
'; - if (is_null($this->image_crop)) $this->image_crop = array(0, 0, 0, 0); - } else { - $this->image_dst_x = $this->image_x; - $this->image_dst_y = intval($this->image_src_y*($this->image_x / $this->image_src_x)); - $ratio_crop = array(); - $ratio_crop['y'] = $this->image_dst_y - $this->image_y; - if (strpos($this->image_ratio_crop, 't') !== false) { - $ratio_crop['t'] = 0; - $ratio_crop['b'] = $ratio_crop['y']; - } else if (strpos($this->image_ratio_crop, 'b') !== false) { - $ratio_crop['t'] = $ratio_crop['y']; - $ratio_crop['b'] = 0; - } else { - $ratio_crop['t'] = round($ratio_crop['y']/2); - $ratio_crop['b'] = $ratio_crop['y'] - $ratio_crop['t']; - } - $this->log .= '    ratio_crop_y : ' . $ratio_crop['y'] . ' (' . $ratio_crop['t'] . ';' . $ratio_crop['b'] . ')
'; - if (is_null($this->image_crop)) $this->image_crop = array(0, 0, 0, 0); - } - } else if ($this->image_ratio_fill) { - if (!is_string($this->image_ratio_fill)) $this->image_ratio_fill = ''; - $this->image_ratio_fill = strtolower($this->image_ratio_fill); - if (($this->image_src_x/$this->image_x) < ($this->image_src_y/$this->image_y)) { - $this->image_dst_y = $this->image_y; - $this->image_dst_x = intval($this->image_src_x*($this->image_y / $this->image_src_y)); - $ratio_crop = array(); - $ratio_crop['x'] = $this->image_dst_x - $this->image_x; - if (strpos($this->image_ratio_fill, 'l') !== false) { - $ratio_crop['l'] = 0; - $ratio_crop['r'] = $ratio_crop['x']; - } else if (strpos($this->image_ratio_fill, 'r') !== false) { - $ratio_crop['l'] = $ratio_crop['x']; - $ratio_crop['r'] = 0; - } else { - $ratio_crop['l'] = round($ratio_crop['x']/2); - $ratio_crop['r'] = $ratio_crop['x'] - $ratio_crop['l']; - } - $this->log .= '    ratio_fill_x : ' . $ratio_crop['x'] . ' (' . $ratio_crop['l'] . ';' . $ratio_crop['r'] . ')
'; - if (is_null($this->image_crop)) $this->image_crop = array(0, 0, 0, 0); - } else { - $this->image_dst_x = $this->image_x; - $this->image_dst_y = intval($this->image_src_y*($this->image_x / $this->image_src_x)); - $ratio_crop = array(); - $ratio_crop['y'] = $this->image_dst_y - $this->image_y; - if (strpos($this->image_ratio_fill, 't') !== false) { - $ratio_crop['t'] = 0; - $ratio_crop['b'] = $ratio_crop['y']; - } else if (strpos($this->image_ratio_fill, 'b') !== false) { - $ratio_crop['t'] = $ratio_crop['y']; - $ratio_crop['b'] = 0; - } else { - $ratio_crop['t'] = round($ratio_crop['y']/2); - $ratio_crop['b'] = $ratio_crop['y'] - $ratio_crop['t']; - } - $this->log .= '    ratio_fill_y : ' . $ratio_crop['y'] . ' (' . $ratio_crop['t'] . ';' . $ratio_crop['b'] . ')
'; - if (is_null($this->image_crop)) $this->image_crop = array(0, 0, 0, 0); - } - } else { - if (($this->image_src_x/$this->image_x) > ($this->image_src_y/$this->image_y)) { - $this->image_dst_x = $this->image_x; - $this->image_dst_y = intval($this->image_src_y*($this->image_x / $this->image_src_x)); - } else { - $this->image_dst_y = $this->image_y; - $this->image_dst_x = intval($this->image_src_x*($this->image_y / $this->image_src_y)); - } - } - } else { - $this->log .= '    doesn\'t calculate x/y sizes
'; - $this->image_dst_x = $this->image_src_x; - $this->image_dst_y = $this->image_src_y; - } - } else { - $this->log .= '    use plain sizes
'; - $this->image_dst_x = $this->image_x; - $this->image_dst_y = $this->image_y; - } - - if ($this->image_dst_x < 1) $this->image_dst_x = 1; - if ($this->image_dst_y < 1) $this->image_dst_y = 1; - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y); - - if ($gd_version >= 2) { - $res = imagecopyresampled($tmp, $image_src, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y, $this->image_src_x, $this->image_src_y); - } else { - $res = imagecopyresized($tmp, $image_src, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y, $this->image_src_x, $this->image_src_y); - } - - $this->log .= '    resized image object created
'; - $this->log .= '    image_src_x y : ' . $this->image_src_x . ' x ' . $this->image_src_y . '
'; - $this->log .= '    image_dst_x y : ' . $this->image_dst_x . ' x ' . $this->image_dst_y . '
'; - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - - } else { - $this->image_dst_x = $this->image_src_x; - $this->image_dst_y = $this->image_src_y; - } - - // crop image (and also crops if image_ratio_crop is used) - if ((!empty($this->image_crop) || !is_null($ratio_crop))) { - list($ct, $cr, $cb, $cl) = $this->getoffsets($this->image_crop, $this->image_dst_x, $this->image_dst_y, true, true); - // we adjust the cropping if we use image_ratio_crop - if (!is_null($ratio_crop)) { - if (array_key_exists('t', $ratio_crop)) $ct += $ratio_crop['t']; - if (array_key_exists('r', $ratio_crop)) $cr += $ratio_crop['r']; - if (array_key_exists('b', $ratio_crop)) $cb += $ratio_crop['b']; - if (array_key_exists('l', $ratio_crop)) $cl += $ratio_crop['l']; - } - $this->log .= '- crop image : ' . $ct . ' ' . $cr . ' ' . $cb . ' ' . $cl . '
'; - $this->image_dst_x = $this->image_dst_x - $cl - $cr; - $this->image_dst_y = $this->image_dst_y - $ct - $cb; - if ($this->image_dst_x < 1) $this->image_dst_x = 1; - if ($this->image_dst_y < 1) $this->image_dst_y = 1; - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y); - - // we copy the image into the recieving image - imagecopy($tmp, $image_dst, 0, 0, $cl, $ct, $this->image_dst_x, $this->image_dst_y); - - // if we crop with negative margins, we have to make sure the extra bits are the right color, or transparent - if ($ct < 0 || $cr < 0 || $cb < 0 || $cl < 0 ) { - // use the background color if present - if (!empty($this->image_background_color)) { - list($red, $green, $blue) = $this->getcolors($this->image_background_color); - $fill = imagecolorallocate($tmp, $red, $green, $blue); - } else { - $fill = imagecolorallocatealpha($tmp, 0, 0, 0, 127); - } - // fills eventual negative margins - if ($ct < 0) imagefilledrectangle($tmp, 0, 0, $this->image_dst_x, -$ct-1, $fill); - if ($cr < 0) imagefilledrectangle($tmp, $this->image_dst_x + $cr, 0, $this->image_dst_x, $this->image_dst_y, $fill); - if ($cb < 0) imagefilledrectangle($tmp, 0, $this->image_dst_y + $cb, $this->image_dst_x, $this->image_dst_y, $fill); - if ($cl < 0) imagefilledrectangle($tmp, 0, 0, -$cl-1, $this->image_dst_y, $fill); - } - - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // flip image - if ($gd_version >= 2 && !empty($this->image_flip)) { - $this->image_flip = strtolower($this->image_flip); - $this->log .= '- flip image : ' . $this->image_flip . '
'; - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y); - for ($x = 0; $x < $this->image_dst_x; $x++) { - for ($y = 0; $y < $this->image_dst_y; $y++){ - if (strpos($this->image_flip, 'v') !== false) { - imagecopy($tmp, $image_dst, $this->image_dst_x - $x - 1, $y, $x, $y, 1, 1); - } else { - imagecopy($tmp, $image_dst, $x, $this->image_dst_y - $y - 1, $x, $y, 1, 1); - } - } - } - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // rotate image - if ($gd_version >= 2 && is_numeric($this->image_rotate)) { - if (!in_array($this->image_rotate, array(0, 90, 180, 270))) $this->image_rotate = 0; - if ($this->image_rotate != 0) { - if ($this->image_rotate == 90 || $this->image_rotate == 270) { - $tmp = $this->imagecreatenew($this->image_dst_y, $this->image_dst_x); - } else { - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y); - } - $this->log .= '- rotate image : ' . $this->image_rotate . '
'; - for ($x = 0; $x < $this->image_dst_x; $x++) { - for ($y = 0; $y < $this->image_dst_y; $y++){ - if ($this->image_rotate == 90) { - imagecopy($tmp, $image_dst, $y, $x, $x, $this->image_dst_y - $y - 1, 1, 1); - } else if ($this->image_rotate == 180) { - imagecopy($tmp, $image_dst, $x, $y, $this->image_dst_x - $x - 1, $this->image_dst_y - $y - 1, 1, 1); - } else if ($this->image_rotate == 270) { - imagecopy($tmp, $image_dst, $y, $x, $this->image_dst_x - $x - 1, $y, 1, 1); - } else { - imagecopy($tmp, $image_dst, $x, $y, $x, $y, 1, 1); - } - } - } - if ($this->image_rotate == 90 || $this->image_rotate == 270) { - $t = $this->image_dst_y; - $this->image_dst_y = $this->image_dst_x; - $this->image_dst_x = $t; - } - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - } - - // unsharp mask - if ($gd_version >= 2 && $this->image_unsharp && is_numeric($this->image_unsharp_amount) && is_numeric($this->image_unsharp_radius) && is_numeric($this->image_unsharp_threshold)) { - // Unsharp Mask for PHP - version 2.1.1 - // Unsharp mask algorithm by Torstein Hønsi 2003-07. - // Used with permission - // Modified to support alpha transparency - if ($this->image_unsharp_amount > 500) $this->image_unsharp_amount = 500; - $this->image_unsharp_amount = $this->image_unsharp_amount * 0.016; - if ($this->image_unsharp_radius > 50) $this->image_unsharp_radius = 50; - $this->image_unsharp_radius = $this->image_unsharp_radius * 2; - if ($this->image_unsharp_threshold > 255) $this->image_unsharp_threshold = 255; - $this->image_unsharp_radius = abs(round($this->image_unsharp_radius)); - if ($this->image_unsharp_radius != 0) { - $this->image_dst_x = imagesx($image_dst); $this->image_dst_y = imagesy($image_dst); - $canvas = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y, false, true); - $blur = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y, false, true); - if (function_exists('imageconvolution')) { // PHP >= 5.1 - $matrix = array(array( 1, 2, 1 ), array( 2, 4, 2 ), array( 1, 2, 1 )); - imagecopy($blur, $image_dst, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y); - imageconvolution($blur, $matrix, 16, 0); - } else { - for ($i = 0; $i < $this->image_unsharp_radius; $i++) { - imagecopy($blur, $image_dst, 0, 0, 1, 0, $this->image_dst_x - 1, $this->image_dst_y); // left - $this->imagecopymergealpha($blur, $image_dst, 1, 0, 0, 0, $this->image_dst_x, $this->image_dst_y, 50); // right - $this->imagecopymergealpha($blur, $image_dst, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y, 50); // center - imagecopy($canvas, $blur, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y); - $this->imagecopymergealpha($blur, $canvas, 0, 0, 0, 1, $this->image_dst_x, $this->image_dst_y - 1, 33.33333 ); // up - $this->imagecopymergealpha($blur, $canvas, 0, 1, 0, 0, $this->image_dst_x, $this->image_dst_y, 25); // down - } - } - $p_new = array(); - if($this->image_unsharp_threshold>0) { - for ($x = 0; $x < $this->image_dst_x-1; $x++) { - for ($y = 0; $y < $this->image_dst_y; $y++) { - $p_orig = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $p_blur = imagecolorsforindex($blur, imagecolorat($blur, $x, $y)); - $p_new['red'] = (abs($p_orig['red'] - $p_blur['red']) >= $this->image_unsharp_threshold) ? max(0, min(255, ($this->image_unsharp_amount * ($p_orig['red'] - $p_blur['red'])) + $p_orig['red'])) : $p_orig['red']; - $p_new['green'] = (abs($p_orig['green'] - $p_blur['green']) >= $this->image_unsharp_threshold) ? max(0, min(255, ($this->image_unsharp_amount * ($p_orig['green'] - $p_blur['green'])) + $p_orig['green'])) : $p_orig['green']; - $p_new['blue'] = (abs($p_orig['blue'] - $p_blur['blue']) >= $this->image_unsharp_threshold) ? max(0, min(255, ($this->image_unsharp_amount * ($p_orig['blue'] - $p_blur['blue'])) + $p_orig['blue'])) : $p_orig['blue']; - if (($p_orig['red'] != $p_new['red']) || ($p_orig['green'] != $p_new['green']) || ($p_orig['blue'] != $p_new['blue'])) { - $color = imagecolorallocatealpha($image_dst, $p_new['red'], $p_new['green'], $p_new['blue'], $p_orig['alpha']); - imagesetpixel($image_dst, $x, $y, $color); - } - } - } - } else { - for ($x = 0; $x < $this->image_dst_x; $x++) { - for ($y = 0; $y < $this->image_dst_y; $y++) { - $p_orig = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $p_blur = imagecolorsforindex($blur, imagecolorat($blur, $x, $y)); - $p_new['red'] = ($this->image_unsharp_amount * ($p_orig['red'] - $p_blur['red'])) + $p_orig['red']; - if ($p_new['red']>255) { $p_new['red']=255; } elseif ($p_new['red']<0) { $p_new['red']=0; } - $p_new['green'] = ($this->image_unsharp_amount * ($p_orig['green'] - $p_blur['green'])) + $p_orig['green']; - if ($p_new['green']>255) { $p_new['green']=255; } elseif ($p_new['green']<0) { $p_new['green']=0; } - $p_new['blue'] = ($this->image_unsharp_amount * ($p_orig['blue'] - $p_blur['blue'])) + $p_orig['blue']; - if ($p_new['blue']>255) { $p_new['blue']=255; } elseif ($p_new['blue']<0) { $p_new['blue']=0; } - $color = imagecolorallocatealpha($image_dst, $p_new['red'], $p_new['green'], $p_new['blue'], $p_orig['alpha']); - imagesetpixel($image_dst, $x, $y, $color); - } - } - } - imagedestroy($canvas); - imagedestroy($blur); - } - } - - // add color overlay - if ($gd_version >= 2 && (is_numeric($this->image_overlay_opacity) && $this->image_overlay_opacity > 0 && !empty($this->image_overlay_color))) { - $this->log .= '- apply color overlay
'; - list($red, $green, $blue) = $this->getcolors($this->image_overlay_color); - $filter = imagecreatetruecolor($this->image_dst_x, $this->image_dst_y); - $color = imagecolorallocate($filter, $red, $green, $blue); - imagefilledrectangle($filter, 0, 0, $this->image_dst_x, $this->image_dst_y, $color); - $this->imagecopymergealpha($image_dst, $filter, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y, $this->image_overlay_opacity); - imagedestroy($filter); - } - - // add brightness, contrast and tint, turns to greyscale and inverts colors - if ($gd_version >= 2 && ($this->image_negative || $this->image_greyscale || is_numeric($this->image_threshold)|| is_numeric($this->image_brightness) || is_numeric($this->image_contrast) || !empty($this->image_tint_color))) { - $this->log .= '- apply tint, light, contrast correction, negative, greyscale and threshold
'; - if (!empty($this->image_tint_color)) list($tint_red, $tint_green, $tint_blue) = $this->getcolors($this->image_tint_color); - //imagealphablending($image_dst, true); - for($y=0; $y < $this->image_dst_y; $y++) { - for($x=0; $x < $this->image_dst_x; $x++) { - if ($this->image_greyscale) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $r = $g = $b = round((0.2125 * $pixel['red']) + (0.7154 * $pixel['green']) + (0.0721 * $pixel['blue'])); - $color = imagecolorallocatealpha($image_dst, $r, $g, $b, $pixel['alpha']); - imagesetpixel($image_dst, $x, $y, $color); - unset($color); unset($pixel); - } - if (is_numeric($this->image_threshold)) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $c = (round($pixel['red'] + $pixel['green'] + $pixel['blue']) / 3) - 127; - $r = $g = $b = ($c > $this->image_threshold ? 255 : 0); - $color = imagecolorallocatealpha($image_dst, $r, $g, $b, $pixel['alpha']); - imagesetpixel($image_dst, $x, $y, $color); - unset($color); unset($pixel); - } - if (is_numeric($this->image_brightness)) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $r = max(min(round($pixel['red'] + (($this->image_brightness * 2))), 255), 0); - $g = max(min(round($pixel['green'] + (($this->image_brightness * 2))), 255), 0); - $b = max(min(round($pixel['blue'] + (($this->image_brightness * 2))), 255), 0); - $color = imagecolorallocatealpha($image_dst, $r, $g, $b, $pixel['alpha']); - imagesetpixel($image_dst, $x, $y, $color); - unset($color); unset($pixel); - } - if (is_numeric($this->image_contrast)) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $r = max(min(round(($this->image_contrast + 128) * $pixel['red'] / 128), 255), 0); - $g = max(min(round(($this->image_contrast + 128) * $pixel['green'] / 128), 255), 0); - $b = max(min(round(($this->image_contrast + 128) * $pixel['blue'] / 128), 255), 0); - $color = imagecolorallocatealpha($image_dst, $r, $g, $b, $pixel['alpha']); - imagesetpixel($image_dst, $x, $y, $color); - unset($color); unset($pixel); - } - if (!empty($this->image_tint_color)) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $r = min(round($tint_red * $pixel['red'] / 169), 255); - $g = min(round($tint_green * $pixel['green'] / 169), 255); - $b = min(round($tint_blue * $pixel['blue'] / 169), 255); - $color = imagecolorallocatealpha($image_dst, $r, $g, $b, $pixel['alpha']); - imagesetpixel($image_dst, $x, $y, $color); - unset($color); unset($pixel); - } - if (!empty($this->image_negative)) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $r = round(255 - $pixel['red']); - $g = round(255 - $pixel['green']); - $b = round(255 - $pixel['blue']); - $color = imagecolorallocatealpha($image_dst, $r, $g, $b, $pixel['alpha']); - imagesetpixel($image_dst, $x, $y, $color); - unset($color); unset($pixel); - } - } - } - } - - // adds a border - if ($gd_version >= 2 && !empty($this->image_border)) { - list($ct, $cr, $cb, $cl) = $this->getoffsets($this->image_border, $this->image_dst_x, $this->image_dst_y, true, false); - $this->log .= '- add border : ' . $ct . ' ' . $cr . ' ' . $cb . ' ' . $cl . '
'; - $this->image_dst_x = $this->image_dst_x + $cl + $cr; - $this->image_dst_y = $this->image_dst_y + $ct + $cb; - if (!empty($this->image_border_color)) list($red, $green, $blue) = $this->getcolors($this->image_border_color); - $opacity = (is_numeric($this->image_border_opacity) ? (int) (127 - $this->image_border_opacity / 100 * 127): 0); - // we now create an image, that we fill with the border color - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y); - $background = imagecolorallocatealpha($tmp, $red, $green, $blue, $opacity); - imagefilledrectangle($tmp, 0, 0, $this->image_dst_x, $this->image_dst_y, $background); - // we then copy the source image into the new image, without merging so that only the border is actually kept - imagecopy($tmp, $image_dst, $cl, $ct, 0, 0, $this->image_dst_x - $cr - $cl, $this->image_dst_y - $cb - $ct); - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // adds a fading-to-transparent border - if ($gd_version >= 2 && !empty($this->image_border_transparent)) { - list($ct, $cr, $cb, $cl) = $this->getoffsets($this->image_border_transparent, $this->image_dst_x, $this->image_dst_y, true, false); - $this->log .= '- add transparent border : ' . $ct . ' ' . $cr . ' ' . $cb . ' ' . $cl . '
'; - // we now create an image, that we fill with the border color - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y); - // we then copy the source image into the new image, without the borders - imagecopy($tmp, $image_dst, $cl, $ct, $cl, $ct, $this->image_dst_x - $cr - $cl, $this->image_dst_y - $cb - $ct); - // we now add the top border - $opacity = 100; - for ($y = $ct - 1; $y >= 0; $y--) { - $il = (int) ($ct > 0 ? ($cl * ($y / $ct)) : 0); - $ir = (int) ($ct > 0 ? ($cr * ($y / $ct)) : 0); - for ($x = $il; $x < $this->image_dst_x - $ir; $x++) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $alpha = (1 - ($pixel['alpha'] / 127)) * $opacity / 100; - if ($alpha > 0) { - if ($alpha > 1) $alpha = 1; - $color = imagecolorallocatealpha($tmp, $pixel['red'] , $pixel['green'], $pixel['blue'], round((1 - $alpha) * 127)); - imagesetpixel($tmp, $x, $y, $color); - } - } - if ($opacity > 0) $opacity = $opacity - (100 / $ct); - } - // we now add the right border - $opacity = 100; - for ($x = $this->image_dst_x - $cr; $x < $this->image_dst_x; $x++) { - $it = (int) ($cr > 0 ? ($ct * (($this->image_dst_x - $x - 1) / $cr)) : 0); - $ib = (int) ($cr > 0 ? ($cb * (($this->image_dst_x - $x - 1) / $cr)) : 0); - for ($y = $it; $y < $this->image_dst_y - $ib; $y++) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $alpha = (1 - ($pixel['alpha'] / 127)) * $opacity / 100; - if ($alpha > 0) { - if ($alpha > 1) $alpha = 1; - $color = imagecolorallocatealpha($tmp, $pixel['red'] , $pixel['green'], $pixel['blue'], round((1 - $alpha) * 127)); - imagesetpixel($tmp, $x, $y, $color); - } - } - if ($opacity > 0) $opacity = $opacity - (100 / $cr); - } - // we now add the bottom border - $opacity = 100; - for ($y = $this->image_dst_y - $cb; $y < $this->image_dst_y; $y++) { - $il = (int) ($cb > 0 ? ($cl * (($this->image_dst_y - $y - 1) / $cb)) : 0); - $ir = (int) ($cb > 0 ? ($cr * (($this->image_dst_y - $y - 1) / $cb)) : 0); - for ($x = $il; $x < $this->image_dst_x - $ir; $x++) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $alpha = (1 - ($pixel['alpha'] / 127)) * $opacity / 100; - if ($alpha > 0) { - if ($alpha > 1) $alpha = 1; - $color = imagecolorallocatealpha($tmp, $pixel['red'] , $pixel['green'], $pixel['blue'], round((1 - $alpha) * 127)); - imagesetpixel($tmp, $x, $y, $color); - } - } - if ($opacity > 0) $opacity = $opacity - (100 / $cb); - } - // we now add the left border - $opacity = 100; - for ($x = $cl - 1; $x >= 0; $x--) { - $it = (int) ($cl > 0 ? ($ct * ($x / $cl)) : 0); - $ib = (int) ($cl > 0 ? ($cb * ($x / $cl)) : 0); - for ($y = $it; $y < $this->image_dst_y - $ib; $y++) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $alpha = (1 - ($pixel['alpha'] / 127)) * $opacity / 100; - if ($alpha > 0) { - if ($alpha > 1) $alpha = 1; - $color = imagecolorallocatealpha($tmp, $pixel['red'] , $pixel['green'], $pixel['blue'], round((1 - $alpha) * 127)); - imagesetpixel($tmp, $x, $y, $color); - } - } - if ($opacity > 0) $opacity = $opacity - (100 / $cl); - } - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // add frame border - if ($gd_version >= 2 && is_numeric($this->image_frame)) { - if (is_array($this->image_frame_colors)) { - $vars = $this->image_frame_colors; - $this->log .= '- add frame : ' . implode(' ', $this->image_frame_colors) . '
'; - } else { - $this->log .= '- add frame : ' . $this->image_frame_colors . '
'; - $vars = explode(' ', $this->image_frame_colors); - } - $nb = sizeof($vars); - $this->image_dst_x = $this->image_dst_x + ($nb * 2); - $this->image_dst_y = $this->image_dst_y + ($nb * 2); - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y); - imagecopy($tmp, $image_dst, $nb, $nb, 0, 0, $this->image_dst_x - ($nb * 2), $this->image_dst_y - ($nb * 2)); - $opacity = (is_numeric($this->image_frame_opacity) ? (int) (127 - $this->image_frame_opacity / 100 * 127): 0); - for ($i=0; $i<$nb; $i++) { - list($red, $green, $blue) = $this->getcolors($vars[$i]); - $c = imagecolorallocatealpha($tmp, $red, $green, $blue, $opacity); - if ($this->image_frame == 1) { - imageline($tmp, $i, $i, $this->image_dst_x - $i -1, $i, $c); - imageline($tmp, $this->image_dst_x - $i -1, $this->image_dst_y - $i -1, $this->image_dst_x - $i -1, $i, $c); - imageline($tmp, $this->image_dst_x - $i -1, $this->image_dst_y - $i -1, $i, $this->image_dst_y - $i -1, $c); - imageline($tmp, $i, $i, $i, $this->image_dst_y - $i -1, $c); - } else { - imageline($tmp, $i, $i, $this->image_dst_x - $i -1, $i, $c); - imageline($tmp, $this->image_dst_x - $nb + $i, $this->image_dst_y - $nb + $i, $this->image_dst_x - $nb + $i, $nb - $i, $c); - imageline($tmp, $this->image_dst_x - $nb + $i, $this->image_dst_y - $nb + $i, $nb - $i, $this->image_dst_y - $nb + $i, $c); - imageline($tmp, $i, $i, $i, $this->image_dst_y - $i -1, $c); - } - } - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // add bevel border - if ($gd_version >= 2 && $this->image_bevel > 0) { - if (empty($this->image_bevel_color1)) $this->image_bevel_color1 = '#FFFFFF'; - if (empty($this->image_bevel_color2)) $this->image_bevel_color2 = '#000000'; - list($red1, $green1, $blue1) = $this->getcolors($this->image_bevel_color1); - list($red2, $green2, $blue2) = $this->getcolors($this->image_bevel_color2); - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y); - imagecopy($tmp, $image_dst, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y); - imagealphablending($tmp, true); - for ($i=0; $i<$this->image_bevel; $i++) { - $alpha = round(($i / $this->image_bevel) * 127); - $c1 = imagecolorallocatealpha($tmp, $red1, $green1, $blue1, $alpha); - $c2 = imagecolorallocatealpha($tmp, $red2, $green2, $blue2, $alpha); - imageline($tmp, $i, $i, $this->image_dst_x - $i -1, $i, $c1); - imageline($tmp, $this->image_dst_x - $i -1, $this->image_dst_y - $i, $this->image_dst_x - $i -1, $i, $c2); - imageline($tmp, $this->image_dst_x - $i -1, $this->image_dst_y - $i -1, $i, $this->image_dst_y - $i -1, $c2); - imageline($tmp, $i, $i, $i, $this->image_dst_y - $i -1, $c1); - } - // we transfert tmp into image_dst - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // add watermark image - if ($this->image_watermark!='' && file_exists($this->image_watermark)) { - $this->log .= '- add watermark
'; - $this->image_watermark_position = strtolower($this->image_watermark_position); - $watermark_info = getimagesize($this->image_watermark); - $watermark_type = (array_key_exists(2, $watermark_info) ? $watermark_info[2] : null); // 1 = GIF, 2 = JPG, 3 = PNG - $watermark_checked = false; - if ($watermark_type == IMAGETYPE_GIF) { - if (!function_exists('imagecreatefromgif')) { - $this->error = $this->translate('watermark_no_create_support', array('GIF')); - } else { - $filter = @imagecreatefromgif($this->image_watermark); - if (!$filter) { - $this->error = $this->translate('watermark_create_error', array('GIF')); - } else { - $this->log .= '    watermark source image is GIF
'; - $watermark_checked = true; - } - } - } else if ($watermark_type == IMAGETYPE_JPEG) { - if (!function_exists('imagecreatefromjpeg')) { - $this->error = $this->translate('watermark_no_create_support', array('JPEG')); - } else { - $filter = @imagecreatefromjpeg($this->image_watermark); - if (!$filter) { - $this->error = $this->translate('watermark_create_error', array('JPEG')); - } else { - $this->log .= '    watermark source image is JPEG
'; - $watermark_checked = true; - } - } - } else if ($watermark_type == IMAGETYPE_PNG) { - if (!function_exists('imagecreatefrompng')) { - $this->error = $this->translate('watermark_no_create_support', array('PNG')); - } else { - $filter = @imagecreatefrompng($this->image_watermark); - if (!$filter) { - $this->error = $this->translate('watermark_create_error', array('PNG')); - } else { - $this->log .= '    watermark source image is PNG
'; - $watermark_checked = true; - } - } - } else if ($watermark_type == IMAGETYPE_BMP) { - if (!method_exists($this, 'imagecreatefrombmp')) { - $this->error = $this->translate('watermark_no_create_support', array('BMP')); - } else { - $filter = @$this->imagecreatefrombmp($this->image_watermark); - if (!$filter) { - $this->error = $this->translate('watermark_create_error', array('BMP')); - } else { - $this->log .= '    watermark source image is BMP
'; - $watermark_checked = true; - } - } - } else { - $this->error = $this->translate('watermark_invalid'); - } - if ($watermark_checked) { - $watermark_dst_width = $watermark_src_width = imagesx($filter); - $watermark_dst_height = $watermark_src_height = imagesy($filter); - - // if watermark is too large/tall, resize it first - if ((!$this->image_watermark_no_zoom_out && ($watermark_dst_width > $this->image_dst_x || $watermark_dst_height > $this->image_dst_y)) - || (!$this->image_watermark_no_zoom_in && $watermark_dst_width < $this->image_dst_x && $watermark_dst_height < $this->image_dst_y)) { - $canvas_width = $this->image_dst_x - abs($this->image_watermark_x); - $canvas_height = $this->image_dst_y - abs($this->image_watermark_y); - if (($watermark_src_width/$canvas_width) > ($watermark_src_height/$canvas_height)) { - $watermark_dst_width = $canvas_width; - $watermark_dst_height = intval($watermark_src_height*($canvas_width / $watermark_src_width)); - } else { - $watermark_dst_height = $canvas_height; - $watermark_dst_width = intval($watermark_src_width*($canvas_height / $watermark_src_height)); - } - $this->log .= '    watermark resized from '.$watermark_src_width.'x'.$watermark_src_height.' to '.$watermark_dst_width.'x'.$watermark_dst_height.'
'; - - } - // determine watermark position - $watermark_x = 0; - $watermark_y = 0; - if (is_numeric($this->image_watermark_x)) { - if ($this->image_watermark_x < 0) { - $watermark_x = $this->image_dst_x - $watermark_dst_width + $this->image_watermark_x; - } else { - $watermark_x = $this->image_watermark_x; - } - } else { - if (strpos($this->image_watermark_position, 'r') !== false) { - $watermark_x = $this->image_dst_x - $watermark_dst_width; - } else if (strpos($this->image_watermark_position, 'l') !== false) { - $watermark_x = 0; - } else { - $watermark_x = ($this->image_dst_x - $watermark_dst_width) / 2; - } - } - if (is_numeric($this->image_watermark_y)) { - if ($this->image_watermark_y < 0) { - $watermark_y = $this->image_dst_y - $watermark_dst_height + $this->image_watermark_y; - } else { - $watermark_y = $this->image_watermark_y; - } - } else { - if (strpos($this->image_watermark_position, 'b') !== false) { - $watermark_y = $this->image_dst_y - $watermark_dst_height; - } else if (strpos($this->image_watermark_position, 't') !== false) { - $watermark_y = 0; - } else { - $watermark_y = ($this->image_dst_y - $watermark_dst_height) / 2; - } - } - imagealphablending($image_dst, true); - imagecopyresampled($image_dst, $filter, $watermark_x, $watermark_y, 0, 0, $watermark_dst_width, $watermark_dst_height, $watermark_src_width, $watermark_src_height); - } else { - $this->error = $this->translate('watermark_invalid'); - } - } - - // add text - if (!empty($this->image_text)) { - $this->log .= '- add text
'; - - // calculate sizes in human readable format - $src_size = $this->file_src_size / 1024; - $src_size_mb = number_format($src_size / 1024, 1, ".", " "); - $src_size_kb = number_format($src_size, 1, ".", " "); - $src_size_human = ($src_size > 1024 ? $src_size_mb . " MB" : $src_size_kb . " kb"); - - $this->image_text = str_replace( - array('[src_name]', - '[src_name_body]', - '[src_name_ext]', - '[src_pathname]', - '[src_mime]', - '[src_size]', - '[src_size_kb]', - '[src_size_mb]', - '[src_size_human]', - '[src_x]', - '[src_y]', - '[src_pixels]', - '[src_type]', - '[src_bits]', - '[dst_path]', - '[dst_name_body]', - '[dst_name_ext]', - '[dst_name]', - '[dst_pathname]', - '[dst_x]', - '[dst_y]', - '[date]', - '[time]', - '[host]', - '[server]', - '[ip]', - '[gd_version]'), - array($this->file_src_name, - $this->file_src_name_body, - $this->file_src_name_ext, - $this->file_src_pathname, - $this->file_src_mime, - $this->file_src_size, - $src_size_kb, - $src_size_mb, - $src_size_human, - $this->image_src_x, - $this->image_src_y, - $this->image_src_pixels, - $this->image_src_type, - $this->image_src_bits, - $this->file_dst_path, - $this->file_dst_name_body, - $this->file_dst_name_ext, - $this->file_dst_name, - $this->file_dst_pathname, - $this->image_dst_x, - $this->image_dst_y, - date('Y-m-d'), - date('H:i:s'), - (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'n/a'), - (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'n/a'), - (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'n/a'), - $this->gdversion(true)), - $this->image_text); - - if (!is_numeric($this->image_text_padding)) $this->image_text_padding = 0; - if (!is_numeric($this->image_text_line_spacing)) $this->image_text_line_spacing = 0; - if (!is_numeric($this->image_text_padding_x)) $this->image_text_padding_x = $this->image_text_padding; - if (!is_numeric($this->image_text_padding_y)) $this->image_text_padding_y = $this->image_text_padding; - $this->image_text_position = strtolower($this->image_text_position); - $this->image_text_direction = strtolower($this->image_text_direction); - $this->image_text_alignment = strtolower($this->image_text_alignment); - - // if the font is a string, we assume that we might want to load a font - if (!is_numeric($this->image_text_font) && strlen($this->image_text_font) > 4 && substr(strtolower($this->image_text_font), -4) == '.gdf') { - $this->log .= '    try to load font ' . $this->image_text_font . '... '; - if ($this->image_text_font = @imageloadfont($this->image_text_font)) { - $this->log .= 'success
'; - } else { - $this->log .= 'error
'; - $this->image_text_font = 5; - } - } - - $text = explode("\n", $this->image_text); - $char_width = imagefontwidth($this->image_text_font); - $char_height = imagefontheight($this->image_text_font); - $text_height = 0; - $text_width = 0; - $line_height = 0; - $line_width = 0; - - foreach ($text as $k => $v) { - if ($this->image_text_direction == 'v') { - $h = ($char_width * strlen($v)); - if ($h > $text_height) $text_height = $h; - $line_width = $char_height; - $text_width += $line_width + ($k < (sizeof($text)-1) ? $this->image_text_line_spacing : 0); - } else { - $w = ($char_width * strlen($v)); - if ($w > $text_width) $text_width = $w; - $line_height = $char_height; - $text_height += $line_height + ($k < (sizeof($text)-1) ? $this->image_text_line_spacing : 0); - } - } - $text_width += (2 * $this->image_text_padding_x); - $text_height += (2 * $this->image_text_padding_y); - $text_x = 0; - $text_y = 0; - if (is_numeric($this->image_text_x)) { - if ($this->image_text_x < 0) { - $text_x = $this->image_dst_x - $text_width + $this->image_text_x; - } else { - $text_x = $this->image_text_x; - } - } else { - if (strpos($this->image_text_position, 'r') !== false) { - $text_x = $this->image_dst_x - $text_width; - } else if (strpos($this->image_text_position, 'l') !== false) { - $text_x = 0; - } else { - $text_x = ($this->image_dst_x - $text_width) / 2; - } - } - if (is_numeric($this->image_text_y)) { - if ($this->image_text_y < 0) { - $text_y = $this->image_dst_y - $text_height + $this->image_text_y; - } else { - $text_y = $this->image_text_y; - } - } else { - if (strpos($this->image_text_position, 'b') !== false) { - $text_y = $this->image_dst_y - $text_height; - } else if (strpos($this->image_text_position, 't') !== false) { - $text_y = 0; - } else { - $text_y = ($this->image_dst_y - $text_height) / 2; - } - } - - // add a background, maybe transparent - if (!empty($this->image_text_background)) { - list($red, $green, $blue) = $this->getcolors($this->image_text_background); - if ($gd_version >= 2 && (is_numeric($this->image_text_background_opacity)) && $this->image_text_background_opacity >= 0 && $this->image_text_background_opacity <= 100) { - $filter = imagecreatetruecolor($text_width, $text_height); - $background_color = imagecolorallocate($filter, $red, $green, $blue); - imagefilledrectangle($filter, 0, 0, $text_width, $text_height, $background_color); - $this->imagecopymergealpha($image_dst, $filter, $text_x, $text_y, 0, 0, $text_width, $text_height, $this->image_text_background_opacity); - imagedestroy($filter); - } else { - $background_color = imagecolorallocate($image_dst ,$red, $green, $blue); - imagefilledrectangle($image_dst, $text_x, $text_y, $text_x + $text_width, $text_y + $text_height, $background_color); - } - } - - $text_x += $this->image_text_padding_x; - $text_y += $this->image_text_padding_y; - $t_width = $text_width - (2 * $this->image_text_padding_x); - $t_height = $text_height - (2 * $this->image_text_padding_y); - list($red, $green, $blue) = $this->getcolors($this->image_text_color); - - // add the text, maybe transparent - if ($gd_version >= 2 && (is_numeric($this->image_text_opacity)) && $this->image_text_opacity >= 0 && $this->image_text_opacity <= 100) { - if ($t_width < 0) $t_width = 0; - if ($t_height < 0) $t_height = 0; - $filter = $this->imagecreatenew($t_width, $t_height, false, true); - $text_color = imagecolorallocate($filter ,$red, $green, $blue); - - foreach ($text as $k => $v) { - if ($this->image_text_direction == 'v') { - imagestringup($filter, - $this->image_text_font, - $k * ($line_width + ($k > 0 && $k < (sizeof($text)) ? $this->image_text_line_spacing : 0)), - $text_height - (2 * $this->image_text_padding_y) - ($this->image_text_alignment == 'l' ? 0 : (($t_height - strlen($v) * $char_width) / ($this->image_text_alignment == 'r' ? 1 : 2))) , - $v, - $text_color); - } else { - imagestring($filter, - $this->image_text_font, - ($this->image_text_alignment == 'l' ? 0 : (($t_width - strlen($v) * $char_width) / ($this->image_text_alignment == 'r' ? 1 : 2))), - $k * ($line_height + ($k > 0 && $k < (sizeof($text)) ? $this->image_text_line_spacing : 0)), - $v, - $text_color); - } - } - $this->imagecopymergealpha($image_dst, $filter, $text_x, $text_y, 0, 0, $t_width, $t_height, $this->image_text_opacity); - imagedestroy($filter); - - } else { - $text_color = imageColorAllocate($image_dst ,$red, $green, $blue); - foreach ($text as $k => $v) { - if ($this->image_text_direction == 'v') { - imagestringup($image_dst, - $this->image_text_font, - $text_x + $k * ($line_width + ($k > 0 && $k < (sizeof($text)) ? $this->image_text_line_spacing : 0)), - $text_y + $text_height - (2 * $this->image_text_padding_y) - ($this->image_text_alignment == 'l' ? 0 : (($t_height - strlen($v) * $char_width) / ($this->image_text_alignment == 'r' ? 1 : 2))), - $v, - $text_color); - } else { - imagestring($image_dst, - $this->image_text_font, - $text_x + ($this->image_text_alignment == 'l' ? 0 : (($t_width - strlen($v) * $char_width) / ($this->image_text_alignment == 'r' ? 1 : 2))), - $text_y + $k * ($line_height + ($k > 0 && $k < (sizeof($text)) ? $this->image_text_line_spacing : 0)), - $v, - $text_color); - } - } - } - } - - // add a reflection - if ($this->image_reflection_height) { - $this->log .= '- add reflection : ' . $this->image_reflection_height . '
'; - // we decode image_reflection_height, which can be a integer, a string in pixels or percentage - $image_reflection_height = $this->image_reflection_height; - if (strpos($image_reflection_height, '%')>0) $image_reflection_height = $this->image_dst_y * (str_replace('%','',$image_reflection_height / 100)); - if (strpos($image_reflection_height, 'px')>0) $image_reflection_height = str_replace('px','',$image_reflection_height); - $image_reflection_height = (int) $image_reflection_height; - if ($image_reflection_height > $this->image_dst_y) $image_reflection_height = $this->image_dst_y; - if (empty($this->image_reflection_opacity)) $this->image_reflection_opacity = 60; - // create the new destination image - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y + $image_reflection_height + $this->image_reflection_space, true); - $transparency = $this->image_reflection_opacity; - - // copy the original image - imagecopy($tmp, $image_dst, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y + ($this->image_reflection_space < 0 ? $this->image_reflection_space : 0)); - - // we have to make sure the extra bit is the right color, or transparent - if ($image_reflection_height + $this->image_reflection_space > 0) { - // use the background color if present - if (!empty($this->image_background_color)) { - list($red, $green, $blue) = $this->getcolors($this->image_background_color); - $fill = imagecolorallocate($tmp, $red, $green, $blue); - } else { - $fill = imagecolorallocatealpha($tmp, 0, 0, 0, 127); - } - // fill in from the edge of the extra bit - imagefill($tmp, round($this->image_dst_x / 2), $this->image_dst_y + $image_reflection_height + $this->image_reflection_space - 1, $fill); - } - - // copy the reflection - for ($y = 0; $y < $image_reflection_height; $y++) { - for ($x = 0; $x < $this->image_dst_x; $x++) { - $pixel_b = imagecolorsforindex($tmp, imagecolorat($tmp, $x, $y + $this->image_dst_y + $this->image_reflection_space)); - $pixel_o = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $this->image_dst_y - $y - 1 + ($this->image_reflection_space < 0 ? $this->image_reflection_space : 0))); - $alpha_o = 1 - ($pixel_o['alpha'] / 127); - $alpha_b = 1 - ($pixel_b['alpha'] / 127); - $opacity = $alpha_o * $transparency / 100; - if ($opacity > 0) { - $red = round((($pixel_o['red'] * $opacity) + ($pixel_b['red'] ) * $alpha_b) / ($alpha_b + $opacity)); - $green = round((($pixel_o['green'] * $opacity) + ($pixel_b['green']) * $alpha_b) / ($alpha_b + $opacity)); - $blue = round((($pixel_o['blue'] * $opacity) + ($pixel_b['blue'] ) * $alpha_b) / ($alpha_b + $opacity)); - $alpha = ($opacity + $alpha_b); - if ($alpha > 1) $alpha = 1; - $alpha = round((1 - $alpha) * 127); - $color = imagecolorallocatealpha($tmp, $red, $green, $blue, $alpha); - imagesetpixel($tmp, $x, $y + $this->image_dst_y + $this->image_reflection_space, $color); - } - } - if ($transparency > 0) $transparency = $transparency - ($this->image_reflection_opacity / $image_reflection_height); - } - - // copy the resulting image into the destination image - $this->image_dst_y = $this->image_dst_y + $image_reflection_height + $this->image_reflection_space; - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // change opacity - if ($gd_version >= 2 && is_numeric($this->image_opacity) && $this->image_opacity < 100) { - $this->log .= '- change opacity
'; - // create the new destination image - $tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y, true); - for($y=0; $y < $this->image_dst_y; $y++) { - for($x=0; $x < $this->image_dst_x; $x++) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $alpha = $pixel['alpha'] + round((127 - $pixel['alpha']) * (100 - $this->image_opacity) / 100); - if ($alpha > 127) $alpha = 127; - if ($alpha > 0) { - $color = imagecolorallocatealpha($tmp, $pixel['red'] , $pixel['green'], $pixel['blue'], $alpha); - imagesetpixel($tmp, $x, $y, $color); - } - } - } - // copy the resulting image into the destination image - $image_dst = $this->imagetransfer($tmp, $image_dst); - } - - // reduce the JPEG image to a set desired size - if (is_numeric($this->jpeg_size) && $this->jpeg_size > 0 && ($this->image_convert == 'jpeg' || $this->image_convert == 'jpg')) { - // inspired by: JPEGReducer class version 1, 25 November 2004, Author: Huda M ElMatsani, justhuda at netscape dot net - $this->log .= '- JPEG desired file size : ' . $this->jpeg_size . '
'; - // calculate size of each image. 75%, 50%, and 25% quality - ob_start(); imagejpeg($image_dst,'',75); $buffer = ob_get_contents(); ob_end_clean(); - $size75 = strlen($buffer); - ob_start(); imagejpeg($image_dst,'',50); $buffer = ob_get_contents(); ob_end_clean(); - $size50 = strlen($buffer); - ob_start(); imagejpeg($image_dst,'',25); $buffer = ob_get_contents(); ob_end_clean(); - $size25 = strlen($buffer); - - // make sure we won't divide by 0 - if ($size50 == $size25) $size50++; - if ($size75 == $size50 || $size75 == $size25) $size75++; - - // calculate gradient of size reduction by quality - $mgrad1 = 25 / ($size50-$size25); - $mgrad2 = 25 / ($size75-$size50); - $mgrad3 = 50 / ($size75-$size25); - $mgrad = ($mgrad1 + $mgrad2 + $mgrad3) / 3; - // result of approx. quality factor for expected size - $q_factor = round($mgrad * ($this->jpeg_size - $size50) + 50); - - if ($q_factor<1) { - $this->jpeg_quality=1; - } elseif ($q_factor>100) { - $this->jpeg_quality=100; - } else { - $this->jpeg_quality=$q_factor; - } - $this->log .= '    JPEG quality factor set to ' . $this->jpeg_quality . '
'; - } - - // converts image from true color, and fix transparency if needed - $this->log .= '- converting...
'; - switch($this->image_convert) { - case 'gif': - // if the image is true color, we convert it to a palette - if (imageistruecolor($image_dst)) { - $this->log .= '    true color to palette
'; - // creates a black and white mask - $mask = array(array()); - for ($x = 0; $x < $this->image_dst_x; $x++) { - for ($y = 0; $y < $this->image_dst_y; $y++) { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $mask[$x][$y] = $pixel['alpha']; - } - } - list($red, $green, $blue) = $this->getcolors($this->image_default_color); - // first, we merge the image with the background color, so we know which colors we will have - for ($x = 0; $x < $this->image_dst_x; $x++) { - for ($y = 0; $y < $this->image_dst_y; $y++) { - if ($mask[$x][$y] > 0){ - // we have some transparency. we combine the color with the default color - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - $alpha = ($mask[$x][$y] / 127); - $pixel['red'] = round(($pixel['red'] * (1 -$alpha) + $red * ($alpha))); - $pixel['green'] = round(($pixel['green'] * (1 -$alpha) + $green * ($alpha))); - $pixel['blue'] = round(($pixel['blue'] * (1 -$alpha) + $blue * ($alpha))); - $color = imagecolorallocate($image_dst, $pixel['red'], $pixel['green'], $pixel['blue']); - imagesetpixel($image_dst, $x, $y, $color); - } - } - } - // transforms the true color image into palette, with its merged default color - if (empty($this->image_background_color)) { - imagetruecolortopalette($image_dst, true, 255); - $transparency = imagecolorallocate($image_dst, 254, 1, 253); - imagecolortransparent($image_dst, $transparency); - // make the transparent areas transparent - for ($x = 0; $x < $this->image_dst_x; $x++) { - for ($y = 0; $y < $this->image_dst_y; $y++) { - // we test wether we have enough opacity to justify keeping the color - if ($mask[$x][$y] > 120) imagesetpixel($image_dst, $x, $y, $transparency); - } - } - } - unset($mask); - } - break; - case 'jpg': - case 'bmp': - // if the image doesn't support any transparency, then we merge it with the default color - $this->log .= '    fills in transparency with default color
'; - list($red, $green, $blue) = $this->getcolors($this->image_default_color); - $transparency = imagecolorallocate($image_dst, $red, $green, $blue); - // make the transaparent areas transparent - for ($x = 0; $x < $this->image_dst_x; $x++) { - for ($y = 0; $y < $this->image_dst_y; $y++) { - // we test wether we have some transparency, in which case we will merge the colors - if (imageistruecolor($image_dst)) { - $rgba = imagecolorat($image_dst, $x, $y); - $pixel = array('red' => ($rgba >> 16) & 0xFF, - 'green' => ($rgba >> 8) & 0xFF, - 'blue' => $rgba & 0xFF, - 'alpha' => ($rgba & 0x7F000000) >> 24); - } else { - $pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y)); - } - if ($pixel['alpha'] == 127) { - // we have full transparency. we make the pixel transparent - imagesetpixel($image_dst, $x, $y, $transparency); - } else if ($pixel['alpha'] > 0) { - // we have some transparency. we combine the color with the default color - $alpha = ($pixel['alpha'] / 127); - $pixel['red'] = round(($pixel['red'] * (1 -$alpha) + $red * ($alpha))); - $pixel['green'] = round(($pixel['green'] * (1 -$alpha) + $green * ($alpha))); - $pixel['blue'] = round(($pixel['blue'] * (1 -$alpha) + $blue * ($alpha))); - $color = imagecolorclosest($image_dst, $pixel['red'], $pixel['green'], $pixel['blue']); - imagesetpixel($image_dst, $x, $y, $color); - } - } - } - - break; - default: - break; - } - - // outputs image - $this->log .= '- saving image...
'; - switch($this->image_convert) { - case 'jpeg': - case 'jpg': - if (!$return_mode) { - $result = @imagejpeg($image_dst, $this->file_dst_pathname, $this->jpeg_quality); - } else { - ob_start(); - $result = @imagejpeg($image_dst, '', $this->jpeg_quality); - $return_content = ob_get_contents(); - ob_end_clean(); - } - if (!$result) { - $this->processed = false; - $this->error = $this->translate('file_create', array('JPEG')); - } else { - $this->log .= '    JPEG image created
'; - } - break; - case 'png': - imagealphablending( $image_dst, false ); - imagesavealpha( $image_dst, true ); - if (!$return_mode) { - $result = @imagepng($image_dst, $this->file_dst_pathname); - } else { - ob_start(); - $result = @imagepng($image_dst); - $return_content = ob_get_contents(); - ob_end_clean(); - } - if (!$result) { - $this->processed = false; - $this->error = $this->translate('file_create', array('PNG')); - } else { - $this->log .= '    PNG image created
'; - } - break; - case 'gif': - if (!$return_mode) { - $result = @imagegif($image_dst, $this->file_dst_pathname); - } else { - ob_start(); - $result = @imagegif($image_dst); - $return_content = ob_get_contents(); - ob_end_clean(); - } - if (!$result) { - $this->processed = false; - $this->error = $this->translate('file_create', array('GIF')); - } else { - $this->log .= '    GIF image created
'; - } - break; - case 'bmp': - if (!$return_mode) { - $result = $this->imagebmp($image_dst, $this->file_dst_pathname); - } else { - ob_start(); - $result = $this->imagebmp($image_dst); - $return_content = ob_get_contents(); - ob_end_clean(); - } - if (!$result) { - $this->processed = false; - $this->error = $this->translate('file_create', array('BMP')); - } else { - $this->log .= '    BMP image created
'; - } - break; - - default: - $this->processed = false; - $this->error = $this->translate('no_conversion_type'); - } - if ($this->processed) { - if (is_resource($image_src)) imagedestroy($image_src); - if (is_resource($image_dst)) imagedestroy($image_dst); - $this->log .= '    image objects destroyed
'; - } - } - - } else { - $this->log .= '- no image processing wanted
'; - - if (!$return_mode) { - // copy the file to its final destination. we don't use move_uploaded_file here - // if we happen to have open_basedir restrictions, it is a temp file that we copy, not the original uploaded file - if (!copy($this->file_src_pathname, $this->file_dst_pathname)) { - $this->processed = false; - $this->error = $this->translate('copy_failed'); - } - } else { - // returns the file, so that its content can be received by the caller - $return_content = @file_get_contents($this->file_src_pathname); - if ($return_content === FALSE) { - $this->processed = false; - $this->error = $this->translate('reading_failed'); - } - } - } - } - - if ($this->processed) { - $this->log .= '- process OK
'; - } else { - $this->log .= '- error: ' . $this->error . '
'; - } - - // we reinit all the vars - $this->init(); - - // we may return the image content - if ($return_mode) return $return_content; - - } - - /** - * Deletes the uploaded file from its temporary location - * - * When PHP uploads a file, it stores it in a temporary location. - * When you {@link process} the file, you actually copy the resulting file to the given location, it doesn't alter the original file. - * Once you have processed the file as many times as you wanted, you can delete the uploaded file. - * If there is open_basedir restrictions, the uploaded file is in fact a temporary file - * - * You might want not to use this function if you work on local files, as it will delete the source file - * - * @access public - */ - function clean() { - $this->log .= 'cleanup
'; - $this->log .= '- delete temp file ' . $this->file_src_pathname . '
'; - @unlink($this->file_src_pathname); - } - - - /** - * Opens a BMP image - * - * This function has been written by DHKold, and is used with permission of the author - * - * @access public - */ - function imagecreatefrombmp($filename) { - if (! $f1 = fopen($filename,"rb")) return false; - - $file = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14)); - if ($file['file_type'] != 19778) return false; - - $bmp = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'. - '/Vcompression/Vsize_bitmap/Vhoriz_resolution'. - '/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40)); - $bmp['colors'] = pow(2,$bmp['bits_per_pixel']); - if ($bmp['size_bitmap'] == 0) $bmp['size_bitmap'] = $file['file_size'] - $file['bitmap_offset']; - $bmp['bytes_per_pixel'] = $bmp['bits_per_pixel']/8; - $bmp['bytes_per_pixel2'] = ceil($bmp['bytes_per_pixel']); - $bmp['decal'] = ($bmp['width']*$bmp['bytes_per_pixel']/4); - $bmp['decal'] -= floor($bmp['width']*$bmp['bytes_per_pixel']/4); - $bmp['decal'] = 4-(4*$bmp['decal']); - if ($bmp['decal'] == 4) $bmp['decal'] = 0; - - $palette = array(); - if ($bmp['colors'] < 16777216) { - $palette = unpack('V'.$bmp['colors'], fread($f1,$bmp['colors']*4)); - } - - $im = fread($f1,$bmp['size_bitmap']); - $vide = chr(0); - - $res = imagecreatetruecolor($bmp['width'],$bmp['height']); - $P = 0; - $Y = $bmp['height']-1; - while ($Y >= 0) { - $X=0; - while ($X < $bmp['width']) { - if ($bmp['bits_per_pixel'] == 24) - $color = unpack("V",substr($im,$P,3).$vide); - elseif ($bmp['bits_per_pixel'] == 16) { - $color = unpack("n",substr($im,$P,2)); - $color[1] = $palette[$color[1]+1]; - } elseif ($bmp['bits_per_pixel'] == 8) { - $color = unpack("n",$vide.substr($im,$P,1)); - $color[1] = $palette[$color[1]+1]; - } elseif ($bmp['bits_per_pixel'] == 4) { - $color = unpack("n",$vide.substr($im,floor($P),1)); - if (($P*2)%2 == 0) $color[1] = ($color[1] >> 4) ; else $color[1] = ($color[1] & 0x0F); - $color[1] = $palette[$color[1]+1]; - } elseif ($bmp['bits_per_pixel'] == 1) { - $color = unpack("n",$vide.substr($im,floor($P),1)); - if (($P*8)%8 == 0) $color[1] = $color[1] >>7; - elseif (($P*8)%8 == 1) $color[1] = ($color[1] & 0x40)>>6; - elseif (($P*8)%8 == 2) $color[1] = ($color[1] & 0x20)>>5; - elseif (($P*8)%8 == 3) $color[1] = ($color[1] & 0x10)>>4; - elseif (($P*8)%8 == 4) $color[1] = ($color[1] & 0x8)>>3; - elseif (($P*8)%8 == 5) $color[1] = ($color[1] & 0x4)>>2; - elseif (($P*8)%8 == 6) $color[1] = ($color[1] & 0x2)>>1; - elseif (($P*8)%8 == 7) $color[1] = ($color[1] & 0x1); - $color[1] = $palette[$color[1]+1]; - } else - return FALSE; - imagesetpixel($res,$X,$Y,$color[1]); - $X++; - $P += $bmp['bytes_per_pixel']; - } - $Y--; - $P+=$bmp['decal']; - } - fclose($f1); - return $res; - } - - /** - * Saves a BMP image - * - * This function has been published on the PHP website, and can be used freely - * - * @access public - */ - function imagebmp(&$im, $filename = "") { - - if (!$im) return false; - $w = imagesx($im); - $h = imagesy($im); - $result = ''; - - // if the image is not true color, we convert it first - if (!imageistruecolor($im)) { - $tmp = imagecreatetruecolor($w, $h); - imagecopy($tmp, $im, 0, 0, 0, 0, $w, $h); - imagedestroy($im); - $im = & $tmp; - } - - $biBPLine = $w * 3; - $biStride = ($biBPLine + 3) & ~3; - $biSizeImage = $biStride * $h; - $bfOffBits = 54; - $bfSize = $bfOffBits + $biSizeImage; - - $result .= substr('BM', 0, 2); - $result .= pack ('VvvV', $bfSize, 0, 0, $bfOffBits); - $result .= pack ('VVVvvVVVVVV', 40, $w, $h, 1, 24, 0, $biSizeImage, 0, 0, 0, 0); - - $numpad = $biStride - $biBPLine; - for ($y = $h - 1; $y >= 0; --$y) { - for ($x = 0; $x < $w; ++$x) { - $col = imagecolorat ($im, $x, $y); - $result .= substr(pack ('V', $col), 0, 3); - } - for ($i = 0; $i < $numpad; ++$i) - $result .= pack ('C', 0); - } - - if($filename==""){ - echo $result; - } else { - $file = fopen($filename, "wb"); - fwrite($file, $result); - fclose($file); - } - return true; - } -} - -?> diff --git a/include/connect.php b/include/connect.php deleted file mode 100644 index bcd8173..0000000 --- a/include/connect.php +++ /dev/null @@ -1,17 +0,0 @@ - window.location = "installation.php"; '; -} -/* ---------------------------------------------- - MYSQL CONNTECT ----------------------------------------------- */ -$db_connect = @mysql_connect($db_host,$db_user_name,$db_password); -if(!$db_connect) -{ - echo'

No connection to the server.
'; - exit; -} -$db_select = mysql_select_db($db_name); -if(!$db_select){ echo '

The database was not found.
'; exit; } -?> \ No newline at end of file diff --git a/include/current.php b/include/current.php deleted file mode 100644 index 62ae671..0000000 --- a/include/current.php +++ /dev/null @@ -1,255 +0,0 @@ -currents WHERE status='publish' AND code='$code'")) > 0) - { alert_box('alert', get_lang('This current code exists in the database.')); return false; } - - mysql_query("INSERT INTO $database->currents - (code, name, balance) - VALUES - ('$code', '$name', '0.0000')"); - if(mysql_affected_rows() > 0) - { - return mysql_insert_id(); - } - else - { - alert_box('alert', mysql_error()); - } -} - - - -/* ---------------------------------------------- - ADD CURRENT ----------------------------------------------- */ -function update_current($id, $name) -{ - global $database; - - $id = safety_filter($id); - $name = safety_filter($name); - - if(strlen($name) < 3) { alert_box('alert', get_lang('Not Applicable Product Name')); return false; } - - $update = mysql_query("UPDATE $database->currents SET name='$name' WHERE id='$id'"); - if(mysql_affected_rows() > 0) - { return true; } - else { if($update) { return false; } else { return false; } } - -} - - - -/* ---------------------------------------------- - THE CURRENT ----------------------------------------------- */ -if(isset($_GET['current_id']) or isset($_POST['current_id'])) -{ - $current_id = 0; - if(isset($_GET['current_id'])) { $current_id = $_GET['current_id']; } - else if(isset($_POST['current_id'])) { $current_id = $_POST['current_id']; } - - $query_current = mysql_query("SELECT * FROM $database->currents WHERE id='$current_id'"); - while($list_current = mysql_fetch_assoc($query_current)) - { - $current['id'] = $list_current['id']; - $current['status'] = $list_current['status']; - $current['code'] = $list_current['code']; - $current['name'] = $list_current['name']; - $current['balance'] = $list_current['balance']; - } - - function get_the_current_card($value) - { - global $current; - return $current[$value]; - } - - function the_current_card($value) - { - echo get_the_current_card($value); - } -} - - - - -/* ---------------------------------------------- - CURRENT ----------------------------------------------- */ -function get_current_card($current_id, $value) -{ - global $database; - - $current_id = safety_filter($current_id); - - $query_current = mysql_query("SELECT * FROM $database->currents WHERE id='$current_id'"); - while($list_current = mysql_fetch_assoc($query_current)) - { - return $list_current[$value]; - } -} - -function current_card($current_id, $value) -{ - echo get_current_card($current_id, $value); -} - - - -/* ---------------------------------------------- - PRODUCT BOX ----------------------------------------------- */ -function box_current_list($current_id, $current_code) -{ - global $database; - - echo ' -
-

'.get_lang('Current List').'

- - - - - - - - - - - '; - - $query_currents = mysql_query("SELECT * FROM $database->currents WHERE status='publish'"); - while($list_currents = mysql_fetch_assoc($query_currents)) - { - $currents['id'] = $list_currents['id']; - $currents['status'] = $list_currents['status']; - $currents['code'] = $list_currents['code']; - $currents['name'] = $list_currents['name']; - $currents['balance'] = $list_currents['balance']; - - echo ' - - - - - - - '; - } - - echo ' - -
'.get_lang("Current Code").''.get_lang("Current Name").''.get_lang("Balance").'
'.$currents['code'].''.$currents['name'].''.get_mf($currents['balance']).'
- × -
'; - - echo ' - - '; -} - - - -/* ---------------------------------------------- - BOX CURRENT CARD ----------------------------------------------- */ -function box_current_card($current_id) -{ - global $database; - - $current_id = safety_filter($current_id); - - $query_current = mysql_query("SELECT * FROM $database->currents WHERE id='$current_id'"); - while($list_current = mysql_fetch_assoc($query_current)) - { - $current['id'] = $list_current['id']; - $current['status'] = $list_current['status']; - $current['code'] = $list_current['code']; - $current['name'] = $list_current['name']; - $current['balance'] = $list_current['balance']; - - } - - echo ' -
-

'.get_lang('Current Card').'

- -
-
'.get_lang('Current Code').'
: '.$current['code'] .'
-
-
-
'.get_lang('Current Name').'
: '.$current['name'] .'
-
- '; - ?> -
- -
- -
- × -
- '; -} - - - -/* ---------------------------------------------- - CALC CURRENT BALANCE ----------------------------------------------- */ -function calc_current_balance($current_id) -{ - global $database; - - $current_id = safety_filter($current_id); - - $balance = 0; - - $query_fiche = mysql_query("SELECT * FROM $database->fiche WHERE status='publish' AND current_id='$current_id'"); - while($list_fiche = mysql_fetch_assoc($query_fiche)) - { - $type = $list_fiche['type']; - $grand_total = $list_fiche['grand_total']; - - if($type == 'output') - { - $balance = $balance + $grand_total; - } - else if($type == 'input') - { - $balance = $balance - $grand_total; - } - } - - mysql_query("UPDATE $database->currents SET balance='$balance' WHERE id='$current_id'"); -} -?> \ No newline at end of file diff --git a/include/fiche.php b/include/fiche.php deleted file mode 100644 index 1fbcb4f..0000000 --- a/include/fiche.php +++ /dev/null @@ -1,184 +0,0 @@ -fiche - (type, date, current_id) - VALUES - ('$type', '$date', '$current_id')"); - if(mysql_affected_rows() > 0) - { - return mysql_insert_id(); - } - else - { - alert_box('alert', mysql_error()); - } -} - - - -/* ---------------------------------------------- - ADD ITEM ----------------------------------------------- */ -function add_fiche_item($fiche_id, $date, $type, $current_id, $product_id, $quantity, $price) -{ - global $database; - - $fiche_id = safety_filter($fiche_id); - $date = safety_filter($date); - $type = safety_filter($type); - $current_id = safety_filter($current_id); - $product_id = safety_filter($product_id); - $quantity = safety_filter($quantity); - $price = safety_filter($price); - - if(!is_money_format($price)) { alert_box('alert', get_lang('')); return false;} - - $total = $quantity * $price; - $cost_price = get_product($product_id, 'cost_price'); - - mysql_query("INSERT INTO $database->fiche_items - (date, type, fiche_id, current_id, product_id, quantity, cost_price, price, total) - VALUES - ('$date', '$type', '$fiche_id', '$current_id', '$product_id', '$quantity', '$cost_price', '$price', '$total')"); - if(mysql_affected_rows() > 0) - { - $item_id = mysql_insert_id(); - calc_fiche_total($fiche_id); - calc_current_balance($current_id); - calc_product_amount($product_id); - - return $item_id; - } - else - { - alert_box('alert', mysql_error()); - return false; - } -} - - - - -/* ---------------------------------------------- - THE FICHE ----------------------------------------------- */ -if(isset($_GET['fiche_id']) or isset($_POST['fiche_id'])) -{ - if(isset($_GET['fiche_id'])) { $fiche_id = safety_filter($_GET['fiche_id']); } - else if(isset($_POST['fiche_id'])) { $fiche_id = safety_filter($_POST['fiche_id']); } - - $query_fiche = mysql_query("SELECT * FROM $database->fiche WHERE id='$fiche_id'"); - while($list_fiche = mysql_fetch_assoc($query_fiche)) - { - $fiche['id'] = $list_fiche['id']; - $fiche['status'] = $list_fiche['status']; - $fiche['type'] = $list_fiche['type']; - $fiche['date'] = $list_fiche['date']; - $fiche['current_id'] = $list_fiche['current_id']; - $fiche['total'] = $list_fiche['total']; - $fiche['tax_rate'] = $list_fiche['tax_rate']; - $fiche['tax'] = $list_fiche['tax']; - $fiche['grand_total'] = $list_fiche['grand_total']; - $fiche['fiche_items'] = $list_fiche['fiche_items']; - } - - function get_the_fiche($value) - { - global $fiche; - return $fiche[$value]; - } - - function the_fiche($value) - { - echo get_the_fiche($value); - } -} - - - -/* ---------------------------------------------- - FICHE ----------------------------------------------- */ -function get_fiche($fiche_id, $value) -{ - global $database; - - $fiche_id = safety_filter($fiche_id); - - $query_fiche = mysql_query("SELECT * FROM $database->fiche WHERE id='$fiche_id'"); - while($list_fiche = mysql_fetch_assoc($query_fiche)) - { - return $list_fiche[$value]; - } -} - -function fiche($fiche_id, $value) -{ - echo get_fiche($fiche_id, $value); -} - - - -/* ---------------------------------------------- - FICHE ITEM ----------------------------------------------- */ -function get_fiche_item($item_id, $value) -{ - global $database; - - $item_id = safety_filter($item_id); - - $query_fiche_item = mysql_query("SELECT * FROM $database->fiche_items WHERE id='$item_id'"); - while($list_fiche_item = mysql_fetch_assoc($query_fiche_item)) - { - return $list_fiche_item[$value]; - } -} - -function fiche_item($item_id, $value) -{ - echo get_fiche_item($item_id, $value); -} - - - -/* ---------------------------------------------- - CALC FICHE TOTAL ----------------------------------------------- */ -function calc_fiche_total($fiche_id) -{ - global $database; - - $fiche_id = safety_filter($fiche_id); - - $total = 0; - $i = 0; - $query_fiche_items = mysql_query("SELECT * FROM $database->fiche_items WHERE status='publish' AND fiche_id='$fiche_id'"); - while($list_fiche_items = mysql_fetch_assoc($query_fiche_items)) - { - $i++; - $total = $total + $list_fiche_items['total']; - } - - $tax_rate = get_fiche($fiche_id, 'tax_rate'); - - $tax = ($total / 100) * $tax_rate; - - $grand_total = $total + $tax; - - mysql_query("UPDATE $database->fiche SET total='$total', tax='$tax', grand_total='$grand_total', fiche_items='$i' WHERE id='$fiche_id'"); - echo mysql_error(); -} -?> \ No newline at end of file diff --git a/include/functions.php b/include/functions.php deleted file mode 100644 index 2a65e42..0000000 --- a/include/functions.php +++ /dev/null @@ -1,55 +0,0 @@ -logs - (date, user_id, product_id, current_id, fiche_id, title, description) - VALUES - ('$date', '$user_id', '$product_id', '$current_id', '$fiche_id', '$title', '$description')"); - if(mysql_affected_rows() > 0) - { - return true; - } - else - { - echo mysql_error(); - return false; - } -} - - -/* ---------------------------------------------- - GET LOG ----------------------------------------------- */ -function get_log($date, $user_id, $title, $alert_box_status) -{ - global $database; - $date = safety_filter($date); - $user_id = safety_filter($user_id); - $title = safety_filter($title); - - if(mysql_num_rows(mysql_query("SELECT * FROM $database->logs WHERE date='$date' AND user_id='$user_id' AND title='$title'")) > 0) - { - if($alert_box_status == true) - { - alert_box('alert', get_lang('Worth repeating. Please Do not load the page again.')); - } - return true; - } - else - { - return false; - } -} -?> \ No newline at end of file diff --git a/include/global.php b/include/global.php deleted file mode 100644 index 0692c05..0000000 --- a/include/global.php +++ /dev/null @@ -1,174 +0,0 @@ -users = $prefix.'users'; - $this->meta = $prefix.'meta'; - $this->message = $prefix.'message'; - $this->logs = $prefix.'logs'; - $this->products = $prefix.'products'; - $this->currents = $prefix.'currents'; - $this->fiche = $prefix.'fiche'; - $this->fiche_items = $prefix.'fiche_items'; - } -} -$database = new database($prefix); - - -/* ---------------------------------------------- - CONFIG ----------------------------------------------- */ -function get_config($value) -{ - if($value == 'name'){ return 'User Management'; } - else if($value == 'datetime'){ return date("Y-m-d H:i:s"); } - else if($value == 'date'){ return date("Y-m-d"); } -} - -function config($value) -{ - echo get_config($value); -} - - - -/* ---------------------------------------------- - URL ----------------------------------------------- */ -function get_url($value) -{ - global $url; - if($value == '') { return $url; } - else { return $url.'/'.$value; } - -} - -function url($value) -{ - echo get_url($value); -} - - - -/* ---------------------------------------------- - OTHER ----------------------------------------------- */ - - /* ----- ALERT BOX ----- */ -function alert_box($type, $message) -{ - echo ' -
- '.$message.' - × -
- '; -} - - /* ----- SAFETY FILTER ----- */ -function safety_filter($value) -{ - return trim(mysql_real_escape_string(strip_tags($value))); -} - - - -/* ---------------------------------------------- - PAGE LOAD TIME ----------------------------------------------- */ -class page_load_time -{ - function start() - { - global $starting; - $mtime = microtime (); - $mtime = explode (' ', $mtime ); - $mtime = $mtime[1] + $mtime[0]; - $starting = $mtime; - } - function stop() - { - global $starting; - $mtime = microtime (); - $mtime = explode (' ', $mtime); - $mtime = $mtime[1] + $mtime[0]; - $stop = $mtime; - $total = round (($stop - $starting), 5); - return $total; - } -} -$page_load_time = new page_load_time; -$page_load_time->start(); - - -/* ---------------------------------------------- - MONEY FORMAT ----------------------------------------------- */ -function is_money_format($value) -{ - if(empty($value)) { return true; } - else - { - if(preg_match('/^[0-9]*\.?[0-9]+$/', $value)) { return true; } - else { return false; } - } -} - - -function get_mf($value) -{ - return number_format($value, 2); -} - -function mf($value) -{ - echo get_mf($value); -} - - - -/* ---------------------------------------------- - NUMBER FORMAT ----------------------------------------------- */ -function get_nf($value) -{ - return round($value); -} - -function nf($value) -{ - echo get_nf($value); -} - - - -/* ---------------------------------------------- - CHANGE NAVIGATION ----------------------------------------------- */ -function change_navigation($value) -{ - echo ''; -} - - - -/* ---------------------------------------------- - GO TO PAGE ----------------------------------------------- */ -function go_to_page($adress) -{ - echo ''; -} -?> \ No newline at end of file diff --git a/include/language.php b/include/language.php deleted file mode 100644 index 1618237..0000000 --- a/include/language.php +++ /dev/null @@ -1,35 +0,0 @@ - - \ No newline at end of file diff --git a/include/meta.php b/include/meta.php deleted file mode 100644 index b1c6980..0000000 --- a/include/meta.php +++ /dev/null @@ -1,115 +0,0 @@ -meta - (ref_id, title, meta_key, meta_value) - VALUES - ('$ref_id', '$title', '$meta_key', '$meta_value')"); - if(mysql_affected_rows() > 0) - { - return true; - } - else - { - echo mysql_error(); - return false; - } - } - - - /* ----- UPDATE META ----- */ - function update_meta($id, $ref_id, $title, $meta_key, $meta_value) - { - global $database; - $id = trim(mysql_real_escape_string(strip_tags($id))); - $ref_id = trim(mysql_real_escape_string(strip_tags($ref_id))); - $title = trim(mysql_real_escape_string(strip_tags($title))); - $meta_key = trim(mysql_real_escape_string(strip_tags($meta_key))); - $meta_value = trim(mysql_real_escape_string(strip_tags($meta_value))); - - if($id == '') - { - if(mysql_num_rows(mysql_query("SELECT * FROM $database->meta WHERE ref_id='$ref_id' AND title='$title' AND meta_key='$meta_key'")) > 0) - { - $update = mysql_query("UPDATE $database->meta SET - ref_id='$ref_id', - title='$title', - meta_key='$meta_key', - meta_value='$meta_value' - WHERE - ref_id='$ref_id' AND title='$title' AND meta_key='$meta_key'"); - if(mysql_affected_rows() > 0){ return true; } - else{ if($update) { return true; } else { return false; } } - - - } - else - { - return add_meta($ref_id, $title, $meta_key, $meta_value); - } - } - else - { - $update = mysql_query("UPDATE $database->meta SET - ref_id='$ref_id', - title='$title', - meta_key='$meta_key', - meta_value='$meta_value' - WHERE id='$id'"); - if(mysql_affected_rows() > 0){ return true; } - else{ if($update) { return true; } else { return false; } } - } - } - - /* ----- DELETE META ----- */ - function delete_meta($id, $title, $meta_key) - { - global $database; - $id = trim(mysql_real_escape_string(strip_tags($id))); - $title = trim(mysql_real_escape_string(strip_tags($title))); - $meta_key = trim(mysql_real_escape_string(strip_tags($meta_key))); - - if($id == '') - { - mysql_query("DELETE FROM $database->meta WHERE title='$title' AND meta_key='$meta_key'"); - if(mysql_affected_rows() > 0){ return true; } else { return false; } - } - else - { - mysql_query("DELETE FROM $database->meta WHERE id='$id'"); - if(mysql_affected_rows() > 0){ return true; } else { return false; } - } - } - - /* ----- GET META ----- */ - function get_meta($id, $ref_id, $title, $meta_key) - { - global $database; - $id = safety_filter($id); - $ref_id = safety_filter($ref_id); - $title = safety_filter($title); - $meta_key = safety_filter($meta_key); - $meta['meta_value'] = ''; - - if($id == ''){ $query = mysql_query("SELECT * FROM $database->meta WHERE ref_id='$ref_id' AND title='$title' AND meta_key='$meta_key'"); } - else{ $query = mysql_query("SELECT * FROM $database->meta WHERE id='$id'"); } - while($list = mysql_fetch_assoc($query)) - { - $meta['meta_value'] = $list['meta_value']; - } - - return $meta['meta_value']; - } - -?> \ No newline at end of file diff --git a/include/product.php b/include/product.php deleted file mode 100644 index 27187fd..0000000 --- a/include/product.php +++ /dev/null @@ -1,281 +0,0 @@ -products WHERE status='publish' AND code='$code'")) > 0) - { alert_box('alert', get_lang('This product code exists in the database.')); return false; } - - mysql_query("INSERT INTO $database->products - (code, name, cost_price, sale_price) - VALUES - ('$code', '$name', '$sale_price', '$cost_price')"); - if(mysql_affected_rows() > 0) - { - return mysql_insert_id(); - } - else - { - alert_box('alert', mysql_error()); - } -} - - -/* ---------------------------------------------- - UPDATE PRODUCT ----------------------------------------------- */ -function update_product($product_id, $code, $name, $cost_price, $sale_price) -{ - global $database; - - $code = safety_filter($code); - $name = safety_filter($name); - $cost_price = safety_filter($cost_price); - $sale_price = safety_filter($sale_price); - - if(strlen($code) < 3) { alert_box('alert', get_lang('Not Applicable Product Code')); return false; } - if(strlen($name) < 3) { alert_box('alert', get_lang('Not Applicable Product Name')); return false; } - if(!is_money_format($cost_price)) { alert_box('alert', get_lang('Cost Price Unavailable')); return false; } - if(!is_money_format($sale_price)) { alert_box('alert', get_lang('Sales Price Unavailable')); return false; } - - $update = mysql_query("UPDATE $database->products SET - code='$code', - name='$name', - cost_price='$cost_price', - sale_price='$sale_price' - WHERE - id='$product_id'"); - if(mysql_affected_rows() > 0) - { - return true; - } - else - { - if($update) { return false; } - else { return false; } - } - -} - - - -/* ---------------------------------------------- - THE PRODUCT ----------------------------------------------- */ -if(isset($_GET['product_id']) or isset($_POST['product_id'])) -{ - $product_id = 0; - if(isset($_GET['product_id'])) { $product_id = $_GET['product_id']; } - else if(isset($_POST['product_id'])) { $product_id = $_POST['product_id']; } - - $query_product = mysql_query("SELECT * FROM $database->products WHERE id='$product_id'"); - while($list_prodoct = mysql_fetch_assoc($query_product)) - { - $product['id'] = $list_prodoct['id']; - $product['status'] = $list_prodoct['status']; - $product['code'] = $list_prodoct['code']; - $product['name'] = $list_prodoct['name']; - $product['quantity'] = $list_prodoct['quantity']; - $product['cost_price'] = $list_prodoct['cost_price']; - $product['sale_price'] = $list_prodoct['sale_price']; - } - - function get_the_product($value) - { - global $product; - return $product[$value]; - } - - function the_product($value) - { - echo get_the_product($value); - } -} - - -/* ---------------------------------------------- - PRODUCT ----------------------------------------------- */ -function get_product($product_id, $value) -{ - global $database; - - $product_id = safety_filter($product_id); - - $query_product = mysql_query("SELECT * FROM $database->products WHERE id='$product_id'"); - while($list_prodoct = mysql_fetch_assoc($query_product)) - { - return $list_prodoct[$value]; - } -} - -function product($id, $value) -{ - echo get_product($product_id, $value); -} - - - -/* ---------------------------------------------- - PRODUCT BOX ----------------------------------------------- */ -function box_product_list($product_id, $product_code, $cost_price, $sale_price) -{ - global $database; - - echo ' -
- - - - - - - - - - - - '; - - $query_products = mysql_query("SELECT * FROM $database->products WHERE status='publish'"); - while($list_products = mysql_fetch_assoc($query_products)) - { - $products['id'] = $list_products['id']; - $products['status'] = $list_products['status']; - $products['code'] = $list_products['code']; - $products['name'] = $list_products['name']; - $products['cost_price'] = $list_products['cost_price']; - $products['sale_price'] = $list_products['sale_price']; - - echo ' - - - - - - - - '; - } - - echo ' - -
'.get_lang("Code").''.get_lang("Name").''.get_lang("Cost Price").''.get_lang("Sale Price").'
'.$products['code'].''.$products['name'].''.get_mf($products['cost_price']).''.get_mf($products['sale_price']).'
- × -
'; - - echo ' - - '; -} - - - -/* ---------------------------------------------- - BOX PRODUCT CARD ----------------------------------------------- */ -function box_product_card($product_id) -{ - global $database; - - $product_id = safety_filter($product_id); - - $query = mysql_query("SELECT * FROM $database->products WHERE id='$product_id'"); - while($list = mysql_fetch_assoc($query)) - { - $product['id'] = $list['id']; - $product['status'] = $list['status']; - $product['code'] = $list['code']; - $product['name'] = $list['name']; - $product['quantity'] = $list['quantity']; - - } - - echo ' -
-

'.get_lang('Product Card').'

- -
-
'.get_lang('Product Code').'
: '.$product['code'] .'
-
-
-
'.get_lang('Product Name').'
: '.$product['name'] .'
-
- '; - ?> -
- -
- -
- × -
- '; -} - - - -/* ---------------------------------------------- - CALC PRODUCT AMOUNT ----------------------------------------------- */ -function calc_product_amount($product_id) -{ - global $database; - - $product_id = safety_filter($product_id); - - $quantity = 0; - - $query_fiche_items = mysql_query("SELECT * FROM $database->fiche_items WHERE status='publish' AND product_id='$product_id'"); - while($list_fiche_items = mysql_fetch_assoc($query_fiche_items)) - { - $type = $list_fiche_items['type']; - $fiche_quantity = $list_fiche_items['quantity']; - - if($type == 'output') - { - $quantity = $quantity - $fiche_quantity; - } - else if($type == 'input') - { - $quantity = $quantity + $fiche_quantity; - } - } - - mysql_query("UPDATE $database->products SET quantity='$quantity' WHERE id='$product_id'"); - echo mysql_error(); -} -?> \ No newline at end of file diff --git a/include/user.php b/include/user.php deleted file mode 100644 index 452f6a0..0000000 --- a/include/user.php +++ /dev/null @@ -1,439 +0,0 @@ -users WHERE id='".$_SESSION['user_id']."'"); - while($x_list_user = mysql_fetch_assoc($x_query_user)) - { - $user['id'] = $x_list_user['id']; - $user['status'] = $x_list_user['status']; - $user['user_name'] = $x_list_user['user_name']; - $user['password'] = $x_list_user['password']; - $user['level'] = $x_list_user['level']; - $user['display_name'] = $x_list_user['display_name']; - - if(strlen($user['display_name']) < 1) { $user['display_name'] = $x_list_user['user_name']; } - } - - - - $user_id = $user['id']; - - function get_the_current_user($value) - { - global $user; - return $user[$value]; - } - - function the_current_user($value) - { - echo get_the_current_user($value); - } -} -else -{ - echo ''; - exit; -} -?> - 20) { $continue = false; alert_box('alert', get_lang('User Name').' 20 '.get_lang('Maximum Characters')); } - if(filter_var($user_name, FILTER_VALIDATE_EMAIL)) {} - else if(preg_match("/[^A-Za-z1-9]/i",$user_name)) { $continue = false; alert_box('alert', get_lang('User name incorrect')); } - if(strlen($password) < 3) { $continue = false; alert_box('alert', get_lang('Password').' 3 '.get_lang('Minimum Characters')); } - if(strlen($password) > 20) { $continue = false; alert_box('alert', get_lang('Password').' 20 '.get_lang('Maximum Characters')); } - if($password != $password_again) { $continue = false; alert_box('alert', get_lang('Passwords do not match')); } - if(mysql_num_rows(mysql_query("SELECT * FROM $database->users WHERE user_name='$user_name'")) > 0) - { $continue = false; alert_box('alert', get_lang('User name database found')); } - - $password = md5($password); - - if($continue == true) - { - mysql_query("INSERT INTO $database->users - (status, user_name, password, level) - VALUES - ('publish', '$user_name', '$password', '$level') - "); - if(mysql_affected_rows() > 0) - { - return mysql_insert_id(); - } - else - { - return false; - } - } -} - -/* ---------------------------------------------- - UPDATE USER ----------------------------------------------- */ -function update_user($user_id, $status, $user_name, $password, $level, $display_name) -{ - global $database; - $continue = true; - $user_name = safety_filter($user_name); - $password = safety_filter($password); - $level = safety_filter($level); - - if(strlen($user_name) < 3) { $continue = false; alert_box('alert', get_lang('User Name').' 3 '.get_lang('Minimum Characters')); } - if(strlen($user_name) > 20) { $continue = false; alert_box('alert', get_lang('User Name').' 20 '.get_lang('Maximum Characters')); } - if(filter_var($user_name, FILTER_VALIDATE_EMAIL)) {} - else if(preg_match("/[^A-Za-z1-9]/i",$user_name)) { $continue = false; alert_box('alert', get_lang('User name incorrect'));} - if(strlen($password) > 20) { $continue = false; alert_box('alert', get_lang('Password').' 20 '.get_lang('Maximum Characters')); } - - if($password == '') - { - $password = get_user(get_the_user('id'), 'password'); - } - else - { - $password = md5($password); - } - - if($continue == true) - { - mysql_query("UPDATE $database->users SET - status='$status', - user_name='$user_name', - password='$password', - level='$level' - WHERE - id='$user_id' - "); - if(mysql_affected_rows() > 0) - { - return true; - } - else - { - return false; - } - } -} - -/* ---------------------------------------------- - DELETE USER ----------------------------------------------- */ -function delete_user($user_id) -{ - global $database; - $user_id = safety_filter($user_id); - - mysql_query("UPDATE $database->users SET status='delete' WHERE id='$user_id'"); - if(mysql_affected_rows() > 0) - { - return true; - } -} - - -/* ---------------------------------------------- - GET THE USER ----------------------------------------------- */ -if(isset($_GET['user_id']) or isset($_POST['user_id'])) -{ - if(isset($_GET['user_id'])) { $user_id = safety_filter($_GET['user_id']); } - else if(isset($_POST['user_id'])) { $user_id = safety_filter($_POST['user_id']); } - - $query_users = mysql_query("SELECT * FROM $database->users WHERE id='$user_id'"); - while($list_users = mysql_fetch_assoc($query_users)) - { - $users['id'] = $list_users['id']; - $users['status'] = $list_users['status']; - $users['user_name'] = $list_users['user_name']; - $users['password'] = $list_users['password']; - $users['level'] = $list_users['level']; - $users['display_name'] = $list_users['display_name']; - - if(strlen($users['display_name']) < 1) { $users['display_name'] = $list_users['user_name']; } - } - - function get_the_user($value) - { - global $users; - return $users[$value]; - } - - function the_user($value) - { - echo get_the_user($value); - } -} - - -/* ---------------------------------------------- - GET USER ----------------------------------------------- */ -function get_user($user_id, $value) -{ - global $database; - - $query_users = mysql_query("SELECT * FROM $database->users WHERE id='$user_id'"); - while($list_users = mysql_fetch_assoc($query_users)) - { - $users['id'] = $list_users['id']; - $users['status'] = $list_users['status']; - $users['user_name'] = $list_users['user_name']; - $users['password'] = $list_users['password']; - $users['level'] = $list_users['level']; - $users['display_name'] = $list_users['display_name']; - - if(strlen($users['display_name']) < 1) { $users['display_name'] = $list_users['user_name']; } - } - - - return $users[$value]; -} - -function user($user_id, $value) -{ - echo get_user($user_id, $value); -} - - - -/* ---------------------------------------------- - BOX USER ----------------------------------------------- */ -function box_user($user_id) -{ - global $database; - $query_users = mysql_query("SELECT * FROM $database->users WHERE id='$user_id'"); - while($list_users = mysql_fetch_assoc($query_users)) - { - $users['id'] = $list_users['id']; - $users['status'] = $list_users['status']; - $users['user_name'] = $list_users['user_name']; - $users['password'] = $list_users['password']; - $users['level'] = $list_users['level']; - $users['display_name'] = $list_users['display_name']; - - if(strlen($users['display_name']) < 1) { $users['display_name'] = $list_users['user_name']; } - } - - echo ' -
- -
-
- -
-
-

'.$users['user_name'].' / '.$users['display_name'].'

-
-
-
- - × -
- '; -} -?> - - -message - (status, type, last_state, top_id, start_date, end_date, last_date, sender_id, receiver_id, inbox_id, title, description) - VALUES - ('publish', 'message', 'open', '$top_id', '$start_date', '', '$start_date', '$sender_id', '$receiver_id', '$receiver_id', '$title', '$description')"); - if(mysql_affected_rows() > 0) - { - return mysql_insert_id(); - } - else - { - echo mysql_error(); - return false; - } - -} - - - -/* ---------------------------------------------- - DELETE MESSAGE ----------------------------------------------- */ -function delete_message($delete_id) -{ - global $database; - $delete_id = safety_filter($delete_id); - $update = mysql_query("UPDATE $database->message SET status='delete' WHERE id='$delete_id'"); - if(mysql_affected_rows() > 0) - { - return true; - } - else - { - if($update){ return true; } - else { return false; } - } -} - - -/* ---------------------------------------------- - GET TOTAL MESSAGE ----------------------------------------------- */ -function get_total_message($last_state, $receiver_id) -{ - $last_state = safety_filter($last_state); - $receiver_id = safety_filter($receiver_id); - - global $database; - $total = mysql_num_rows(mysql_query("SELECT * FROM $database->message WHERE - status='publish' AND type='message' AND last_state='$last_state' AND inbox_id='$receiver_id' AND top_id='0' - OR - status='publish' AND type='message' AND last_state='$last_state' AND receiver_id='$receiver_id' AND top_id='0'")); - return $total; -} -function total_message($last_state, $receiver_id) -{ - echo get_total_message($last_state, $receiver_id); -} - - - -?> - - - -message - (status, type, last_state, top_id, start_date, end_date, last_date, sender_id, receiver_id, inbox_id, title, description, task_status) - VALUES - ('publish', 'task', 'open', '$top_id', '$start_date', '$end_date', '$start_date', '$sender_id', '$receiver_id', '$receiver_id', '$title', '$description', 'open')"); - if(mysql_affected_rows() > 0) - { - return mysql_insert_id(); - } - else - { - echo mysql_error(); - return false; - } - -} - - -/* ---------------------------------------------- - DELETE TASK ----------------------------------------------- */ -function delete_task($delete_id) -{ - global $database; - $delete_id = safety_filter($delete_id); - $update = mysql_query("UPDATE $database->message SET status='delete' WHERE id='$delete_id'"); - if(mysql_affected_rows() > 0) - { - return true; - } - else - { - return false; - } -} - - -/* ---------------------------------------------- - GET THE TASK ----------------------------------------------- */ -if(isset($_GET['task_id'])) -{ - $task_id = safety_filter($_GET['task_id']); - $query_task = mysql_query("SELECT * FROM $database->message WHERE type='task' AND id='$task_id'"); - while($list_task = mysql_fetch_assoc($query_task)) - { # while top message - $task['id'] = $list_task['id']; - $task['status'] = $list_task['status']; - $task['type'] = $list_task['type']; - $task['last_state'] = $list_task['last_state']; - $task['start_date'] = $list_task['start_date']; - $task['end_date'] = $list_task['end_date']; - $task['top_id'] = $list_task['top_id']; - $task['start_date'] = $list_task['start_date']; - $task['end_date'] = $list_task['end_date']; - $task['sender_id'] = $list_task['sender_id']; - $task['receiver_id'] = $list_task['receiver_id']; - $task['inbox_id'] = $list_task['inbox_id']; - $task['title'] = $list_task['title']; - $task['description'] = $list_task['description']; - $task['task_status'] = $list_task['task_status']; - } - - function get_the_task($value) - { - global $task; - return $task[$value]; - } - - function the_task($value) - { - echo get_the_task($value); - } -} - - - -/* ---------------------------------------------- - GET TOTAL TASK ----------------------------------------------- */ -function get_total_task($last_state, $receiver_id) -{ - $last_state = safety_filter($last_state); - $receiver_id = safety_filter($receiver_id); - - global $database; - $total = mysql_num_rows(mysql_query("SELECT * FROM $database->message WHERE status='publish' AND type='task' AND task_status='$last_state' AND inbox_id='$receiver_id' AND top_id='0'")); - return $total; -} -function total_task($last_state, $receiver_id) -{ - echo get_total_task($last_state, $receiver_id); -} -?> \ No newline at end of file diff --git a/index.php b/index.php old mode 100644 new mode 100755 index 5dff4c3..f4ac11a --- a/index.php +++ b/index.php @@ -1,84 +1,205 @@ - - - - - - -
-
- - - - - - - - - - - products WHERE status='publish'"); - while($list_products = mysql_fetch_assoc($query_products)) - { - echo ' - - - - - - - '; - } - ?> - -
 
'.$list_products['code'].''.$list_products['name'].''.get_nf($list_products['quantity']).'
-
-
- - - - - - - - - - - - message WHERE - status='publish' AND type='task' - AND inbox_id='".get_the_current_user('id')."' - AND top_id='0' - AND task_status='open' - OR - status='publish' AND type='task' - AND receiver_id='".get_the_current_user('id')."' - AND top_id='0' - AND task_status='open' - ORDER BY last_date DESC LIMIT 10"); - - while($list_message = mysql_fetch_assoc($query_message)) - { - $last_sate = ''; - if($list_message['last_state'] == 'open' and get_the_current_user('id') == $list_message['inbox_id']) { $last_sate = 'style="text-decoration:underline; font-weight:bold;"'; } - else if($list_message['last_state'] == 'close') { $last_sate = ''; } - - $username = get_user($list_message['sender_id'], 'display_name'); - - echo ' - - - - - '; - } - ?> - -
'.substr($username, 0, 6).''.substr($list_message['title'],0,30).'
-
-
- - - - \ No newline at end of file + - - - + + - - - - - + + - + + +TilPark! Açık Kaynak Kodlu Stok Takip ve Cari Otomasyonu + + + + + + + - - + + + - <?php config('name'); ?> - - - + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + - - -

- -
-
+
+ +
+

Kuruluma Hoşgeldiniz?

+

TilPark! kurulumu çok kolaydır. Bir kaç dakika içerisinde kurulumu tamamlayabilirsiniz.

+
+ +
+ + 20) { $continue = false; alert_box('alert', get_lang('User Name').' 20 '.get_lang('Maximum Characters'));} - if(filter_var($user_name, FILTER_VALIDATE_EMAIL)) {} - else if(preg_match("/[^A-Za-z1-9]/i",$user_name)) { $continue = false; alert_box('alert', get_lang('User name incorrect')); } - if(strlen($password) < 3) { $continue = false; alert_box('alert', get_lang('Password').' 3 '.get_lang('Minimum Characters')); } - if(strlen($password) > 20) { $continue = false; alert_box('alert', get_lang('Password').' 20 '.get_lang('Maximum Characters')); } - $password = md5($password); - - if($continue == true) + $continue = true; + $hostname = $_POST['hostname']; + $username = $_POST['username']; + $password = $_POST['password']; + $database = $_POST['database']; + + $dbprefix = $_POST['dbprefix']; + + $admin_email = $_POST['admin_email']; + $admin_pass = $_POST['admin_pass']; + + + $config_text = ''; + + + $con = @mysql_connect($hostname, $username, $password); + if(!$con) { - # configuration.php - $cnc_config_file = fopen( "configuration.php" , "w" ) or die ("Unable to open file!"); - $cnc_text = ' - - '; - fwrite ( $cnc_config_file , $cnc_text ) ; - fclose ( $cnc_config_file ); - - mysql_query("CREATE TABLE ".$prefix."users - ( - id INT NOT NULL AUTO_INCREMENT, - PRIMARY KEY(id), - status VARCHAR(20), - user_name VARCHAR(50), - password VARCHAR(100), - level CHAR(1), - display_name VARCHAR(50) - ) - CHARACTER SET utf8 COLLATE utf8_general_ci - "); - echo mysql_error(); - mysql_query("INSERT INTO ".$prefix."users - (status, user_name, password, level, display_name) - VALUES - ('publish', '$user_name', '$password', '1', '') - "); - - - - mysql_query("CREATE TABLE ".$prefix."meta - ( - id INT NOT NULL AUTO_INCREMENT, - PRIMARY KEY(id), - ref_id INT, - title VARCHAR(255), - meta_key VARCHAR(255), - meta_value VARCHAR(255) - ) - CHARACTER SET utf8 COLLATE utf8_general_ci - "); - echo mysql_error(); - mysql_query("INSERT INTO ".$prefix."meta - (ref_id, title, meta_key, meta_value) - VALUES - ('', 'settings', 'language', 'english.php')"); - - - - mysql_query("CREATE TABLE ".$prefix."message - ( - id INT NOT NULL AUTO_INCREMENT, - PRIMARY KEY(id), - status VARCHAR(20), - type VARCHAR(20), - last_state VARCHAR(20), - top_id INT, - start_date DATETIME, - end_date DATETIME, - last_date DATETIME, - sender_id INT, - receiver_id INT, - inbox_id INT, - title VARCHAR(255), - description TINYTEXT, - task_status VARCHAR(20) - ) - CHARACTER SET utf8 COLLATE utf8_general_ci - "); - echo mysql_error(); - - - - mysql_query("CREATE TABLE ".$prefix."logs - ( - id INT NOT NULL AUTO_INCREMENT, - PRIMARY KEY(id), - date DATETIME, - user_id INT, - product_id INT, - current_id INT, - fiche_id INT, - title VARCHAR(255), - description VARCHAR(255) - ) - CHARACTER SET utf8 COLLATE utf8_general_ci - "); - echo mysql_error(); - - - /* ----- PRODUCT ----- */ - mysql_query("CREATE TABLE ".$prefix."products - ( - id INT NOT NULL AUTO_INCREMENT, - PRIMARY KEY(id), - status VARCHAR(20) DEFAULT 'publish', - code VARCHAR(50), - name VARCHAR(50), - cost_price DECIMAL(15,4), - sale_price DECIMAL(15,4), - quantity DECIMAL(15,5) - ) - CHARACTER SET utf8 COLLATE utf8_general_ci - "); - echo mysql_error(); - - - /* ----- CURRENT ----- */ - mysql_query("CREATE TABLE ".$prefix."currents - ( - id INT NOT NULL AUTO_INCREMENT, - PRIMARY KEY(id), - status VARCHAR(20) DEFAULT 'publish', - code VARCHAR(50), - name VARCHAR(50), - balance DECIMAL(15,4) - ) - CHARACTER SET utf8 COLLATE utf8_general_ci - "); - echo mysql_error(); - - - /* ----- FICHE ----- */ - mysql_query("CREATE TABLE ".$prefix."fiche - ( - id INT NOT NULL AUTO_INCREMENT, - PRIMARY KEY(id), - status VARCHAR(20) DEFAULT 'publish', - type VARCHAR(20), - date DATETIME, - current_id INT, - total DECIMAL(15,4), - tax_rate INT(3), - tax DECIMAL(15,4), - grand_total DECIMAL(15,4), - fiche_items INT - ) - CHARACTER SET utf8 COLLATE utf8_general_ci - "); - echo mysql_error(); + alertbox('alert-danger', mysql_error()); + $continue = false; + } + + $db_select = mysql_select_db($database); + if(!$db_select) + { + alertbox('alert-danger',mysql_error()); + $continue = false; + } + + $write = true; + # veritabanı tablo isimleri + $t_accounts = $dbprefix.'accounts'; + $t_files = $dbprefix.'files'; + $t_invoices = $dbprefix.'invoices'; + $t_invoice_items = $dbprefix.'invoice_items'; + $t_options = $dbprefix.'options'; + $t_products = $dbprefix.'products'; + $t_product_serials = $dbprefix.'product_serials'; + $t_users = $dbprefix.'users'; + $t_user_logs = $dbprefix.'user_logs'; + $t_user_mess = $dbprefix.'user_mess'; + + + + /* -- ACCOUNTS -- */ + mysql_query("DROP TABLE $t_accounts"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_accounts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` int(11) NOT NULL DEFAULT '1', + `code` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `name` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `name_surname` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `balance` decimal(10,4) NOT NULL, + `phone` varchar(20) COLLATE utf8_turkish_ci NOT NULL, + `gsm` varchar(20) COLLATE utf8_turkish_ci NOT NULL, + `email` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `address` varchar(250) COLLATE utf8_turkish_ci NOT NULL, + `county` varchar(20) COLLATE utf8_turkish_ci NOT NULL, + `city` varchar(20) COLLATE utf8_turkish_ci NOT NULL, + `description` varchar(500) COLLATE utf8_turkish_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=25 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_files"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_files` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` int(1) NOT NULL DEFAULT '1', + `date` datetime NOT NULL, + `key` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `other_id` int(11) NOT NULL, + `file` varchar(500) COLLATE utf8_turkish_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=9 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_invoices"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_invoices` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` int(11) NOT NULL DEFAULT '1', + `date` datetime NOT NULL, + `type` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `in_out` int(1) NOT NULL, + `account_id` int(11) NOT NULL, + `description` varchar(250) COLLATE utf8_turkish_ci NOT NULL, + `quantity` int(11) NOT NULL, + `total` decimal(10,4) NOT NULL, + `tax` decimal(10,4) NOT NULL, + `discount` decimal(10,4) NOT NULL, + `grand_total` decimal(10,4) NOT NULL, + `user_id` int(11) NOT NULL, + `val_1` text COLLATE utf8_turkish_ci NOT NULL, + `val_2` text COLLATE utf8_turkish_ci NOT NULL, + `val_3` text COLLATE utf8_turkish_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=128 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_invoice_items"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_invoice_items` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` int(1) NOT NULL DEFAULT '1', + `date` datetime NOT NULL, + `type` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `in_out` int(1) NOT NULL DEFAULT '1', + `invoice_id` int(11) NOT NULL, + `account_id` int(11) NOT NULL, + `product_id` int(11) NOT NULL, + `product_serial_id` int(50) NOT NULL, + `cost_price` decimal(10,4) NOT NULL, + `quantity` int(11) NOT NULL, + `quantity_price` decimal(10,4) NOT NULL, + `total` decimal(10,4) NOT NULL, + `tax_rate` int(11) NOT NULL, + `tax` decimal(10,4) NOT NULL, + `sub_total` decimal(10,4) NOT NULL, + `user_id` int(11) NOT NULL, + `product_code` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `product_name` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=149 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_options"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_options` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `option_group` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `option_key` varchar(250) COLLATE utf8_turkish_ci NOT NULL, + `option_value` varchar(500) COLLATE utf8_turkish_ci NOT NULL, + `option_value2` varchar(500) COLLATE utf8_turkish_ci NOT NULL, + `option_value3` text COLLATE utf8_turkish_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=713 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_products"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_products` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` int(1) NOT NULL DEFAULT '1', + `code` varchar(50) CHARACTER SET utf8 NOT NULL, + `name` varchar(50) CHARACTER SET utf8 NOT NULL, + `description` varchar(200) CHARACTER SET utf8 NOT NULL, + `cost_price` decimal(10,2) NOT NULL, + `sale_price` decimal(10,2) NOT NULL, + `tax_rate` int(11) NOT NULL, + `tax` decimal(10,2) NOT NULL, + `price` decimal(10,2) NOT NULL, + `amount` decimal(10,2) NOT NULL, + `serial` int(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=58 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_product_serials"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_product_serials` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` int(1) NOT NULL DEFAULT '1', + `product_id` int(11) NOT NULL, + `serial` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `invoice_id` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=37 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_users"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` int(1) NOT NULL DEFAULT '1', + `email` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `name` varchar(20) COLLATE utf8_turkish_ci NOT NULL, + `surname` varchar(20) COLLATE utf8_turkish_ci NOT NULL, + `password` varchar(32) COLLATE utf8_turkish_ci NOT NULL, + `role` int(1) NOT NULL, + `avatar` varchar(250) COLLATE utf8_turkish_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=8 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_user_logs"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_user_logs` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `date` datetime NOT NULL, + `type` varchar(20) COLLATE utf8_turkish_ci NOT NULL, + `user_id` int(11) NOT NULL, + `other_id` varchar(30) COLLATE utf8_turkish_ci NOT NULL, + `title` varchar(100) COLLATE utf8_turkish_ci NOT NULL, + `description` varchar(250) COLLATE utf8_turkish_ci NOT NULL, + `product_id` int(11) NOT NULL, + `invoice_id` int(11) NOT NULL, + `account_id` int(11) NOT NULL, + `ip` varchar(15) COLLATE utf8_turkish_ci NOT NULL, + `browser` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `platform` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=1321 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + + /* -- FILES -- */ + mysql_query("DROP TABLE $t_user_mess"); + mysql_query("CREATE TABLE IF NOT EXISTS `$t_user_mess` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` int(1) NOT NULL DEFAULT '1', + `date` datetime NOT NULL, + `type` varchar(20) COLLATE utf8_turkish_ci NOT NULL, + `sender_id` int(11) NOT NULL, + `receiver_id` int(11) NOT NULL, + `top_id` int(11) NOT NULL, + `title` varchar(50) COLLATE utf8_turkish_ci NOT NULL, + `content` text COLLATE utf8_turkish_ci NOT NULL, + `read` varchar(20) COLLATE utf8_turkish_ci NOT NULL DEFAULT '0', + `read_date` datetime NOT NULL, + `inbox_view` int(1) NOT NULL DEFAULT '1', + `recent_activity` datetime NOT NULL, + `start_date` datetime NOT NULL, + `finish_date` datetime NOT NULL, + `task_status` varchar(20) COLLATE utf8_turkish_ci NOT NULL DEFAULT 'open', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=239 ; + "); + if(mysql_error()) { alert_box(mysql_error(), 'alert'); $write = false; } + + + + $admin_pass = md5($admin_pass); + mysql_query("INSERT INTO $t_users (email, name, surname, password, role) VALUES ('$admin_email', 'ADMIN', 'ADMIN', '$admin_pass', '1')"); + + + if($write) + { + $file_config = "config.php"; + if (!file_exists ("$file_config") ) + { + touch ($file_config); + } + $file_conntect = @fopen ("$file_config",'w'); + if(!$file_conntect) + { + alertbox('alert-danger','config.php dosyası açılmadı.'); + } - /* ----- FICHE ITEMS ----- */ - mysql_query("CREATE TABLE ".$prefix."fiche_items - ( - id INT NOT NULL AUTO_INCREMENT, - PRIMARY KEY(id), - status VARCHAR(20) DEFAULT 'publish', - type VARCHAR(20), - date DATETIME, - fiche_id INT, - current_id INT, - product_id INT, - quantity DECIMAL(15,4), - cost_price DECIMAL(15,4), - price DECIMAL(15,4), - total DECIMAL(15,4) - ) - CHARACTER SET utf8 COLLATE utf8_general_ci - "); - echo mysql_error(); - echo ''; + if (@fputs ($file_conntect, $config_text)) + { + echo ''; + } + else + { + alertbox('alert-danger','config.php dosyası açıldı fakat veri yazılamadı. [lütfen CMHOD değerlerini 777 yapın]'); + } + @fclose($file_conntect); } + + } ?> -
-
- - - -
-
-

- » -
-
- - - -
-
-

-
+ + +
+
+
+
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ + +
+
+
+ +
+ + +
+
+ +
+ +
+ + +
+
+ + +
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+
-
-
-
-
- - - - - - - - - - - - - - - - - -
-
-
-
- - - - - - - - -
-
-
-
-
- -
-
-
+ + - - -
-
- -
-
- \ No newline at end of file + + + \ No newline at end of file diff --git a/login.php b/login.php deleted file mode 100644 index eab741a..0000000 --- a/login.php +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - <?php config('name'); ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- -
-
- users WHERE user_name='$user_name' AND password='$password' AND status='publish'"); - if(mysql_num_rows($query_user) > 0) - { - while($list_user = mysql_fetch_assoc($query_user)) - { - $user_id = $list_user['id']; - } - $management_login = true; - $user_id = $user_id; - - $_SESSION["management_login"] = true; - $_SESSION['user_id'] = $user_id; - - echo ''; - } - else - { - alert_box('alert', get_lang('Username or password is incorrect.')); - } - } - ?> -
-
- - -
-
-
-
- - - - - - - - - - -

- -
-
-
-
\ No newline at end of file diff --git a/page/currents/add.php b/page/currents/add.php deleted file mode 100644 index 667af09..0000000 --- a/page/currents/add.php +++ /dev/null @@ -1,52 +0,0 @@ - - - - - 0) - { - add_log($datetime, $current_id, '', '', 'New Current', get_lang('Generated new current card')); - go_to_page('current.php?current_id='.$current_id.''); - } - } -} -?> - -
-
-
-
- - - - - - - - -
- -
-
-
-
- -
-
- - -
-
-
- - \ No newline at end of file diff --git a/page/currents/current.php b/page/currents/current.php deleted file mode 100644 index 1050b86..0000000 --- a/page/currents/current.php +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - -
-
-
-
    -
  • -
  • -
  • -
-
-
-
- - - - - -
-
- - -currents SET status='$status' WHERE id='".get_the_current_card('id')."'"); - - go_to_page('?current_id='.get_the_current_card('id').''); -} - - -if(isset($_POST['btn_update'])) -{ - $datetime = safety_filter($_POST['datetime']); - $code = safety_filter($_POST['code']); - $name = safety_filter($_POST['name']); - - if(update_current(get_the_current_card('id'), $name)) - { - go_to_page('?current_id='.get_the_current_card('id').'&success=update'); - } -} -?> - -
-
-
-
- - - - - - - - -

:

- -
- -
-
-
- -
- -
-

-
-
-
- -
-
- - -
-
-
- - \ No newline at end of file diff --git a/page/currents/list.php b/page/currents/list.php deleted file mode 100644 index 49052a0..0000000 --- a/page/currents/list.php +++ /dev/null @@ -1,36 +0,0 @@ - - - - -
-
- - - - - - - - - - - currents WHERE status='publish'"); - while($list_currents = mysql_fetch_assoc($query_currents)) - { - echo ' - - - - - - - '; - } - ?> - -
 
'.$list_currents['code'].''.$list_currents['name'].''.$list_currents['balance'].'
-
-
- - \ No newline at end of file diff --git a/page/fiche/fiche.php b/page/fiche/fiche.php deleted file mode 100644 index 0b1c934..0000000 --- a/page/fiche/fiche.php +++ /dev/null @@ -1,413 +0,0 @@ - - - - - - - 0) - { - add_log($datetime, '', $current_id, $fiche_id, 'New Fiche', 'Generated new fiche'); - go_to_page('fiche.php?fiche_id='.$fiche_id.''); - } - } -} -?> - -
-
-
-
    -
  • -
  • -
-
-
-
- - - - - -
-
- - -fiche SET status='$status', tax_rate='0' WHERE id='".get_the_fiche('id')."'"); - if($status == 'delete') { mysql_query("UPDATE $database->fiche_items SET status='$status' WHERE fiche_id='".get_the_fiche('id')."'"); } - - calc_current_balance(get_the_fiche('current_id')); - calc_fiche_total(get_the_fiche('id')); - - $query_fiche_items = mysql_query("SELECT * FROM $database->fiche_items WHERE fiche_id='".get_the_fiche('id')."'"); - while($list_fiche_items = mysql_fetch_assoc($query_fiche_items)) - { - calc_product_amount($list_fiche_items['product_id']); - } - - go_to_page('?fiche_id='.get_the_fiche('id').''); -} -?> - - - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - -products WHERE code='$product_code'"); - while($list_prodoct = mysql_fetch_assoc($query_product)) - { - $product['id'] = $list_prodoct['id']; - - if($price == '') - { - if(get_the_fiche('type') == 'input') { $price = $list_prodoct['cost_price']; } - else if(get_the_fiche('type') == 'output') { $price = $list_prodoct['sale_price']; } - } - } - - if($product['id'] == 0) - { - alert_box('alert', get_lang('Product card in the database has been found.').' ['.$product_code.']'); - $continue = false; - } - else - { - $product_id = $product['id']; - } - - if($continue == true) - { - if(!get_log($datetime, get_the_current_user('id'), 'Add Item', true)) - { - if(add_fiche_item(get_the_fiche('id'), get_the_fiche('date'), get_the_fiche('type'), get_the_fiche('current_id'), $product_id, $quantity, $price)) - { - add_log($datetime, $product_id, get_the_fiche('current_id'), get_the_fiche('id'), 'Add Item', 'Product added'); - go_to_page('fiche.php?fiche_id='.get_the_fiche('id').'&add_item_success='.$product_code.''); - } - } - } -} - -if(isset($_POST['update_subtotal'])) -{ - $tax_rate = safety_filter($_POST['tax_rate']); - mysql_query("UPDATE $database->fiche SET tax_rate='$tax_rate' WHERE id='".get_the_fiche('id')."'"); - calc_fiche_total($fiche_id); - go_to_page('?fiche_id='.get_the_fiche('id').'&success_update_tax'); -} -?> - - - - -
-
-
- -
-
- - - -
-
- - -
-
- -
-
- -
-
- - # - -
-
- -
-
- -
-
- -
-
- - - -
-
- -
-
- -
-
- - -
-
- - - -
- - -
-
- -
-
- - - -fiche_items SET status='delete' WHERE id='$delete_item_id'"); - if(mysql_affected_rows() > 0) - { - calc_fiche_total(get_the_fiche('id')); - calc_current_balance(get_the_fiche('current_id')); - calc_product_amount(get_fiche_item($delete_item_id, 'product_id')); - - add_log(get_config('datetime'), get_fiche_item($delete_item_id, 'product_id'), get_the_fiche('current_id'), get_the_fiche('id'), 'Delete Item', 'Product has been deleted.'); - - go_to_page('?fiche_id='.get_the_fiche('id').'&success_delete_item_id='.$delete_item_id.''); - } -} -?> - - - - - - - - - - - - - - - fiche_items WHERE status='publish' AND fiche_id='".get_the_fiche('id')."'"); - while($list_fiche_items = mysql_fetch_assoc($query_fiche_items)) - { - $fiche_items['id'] = $list_fiche_items['id']; - $fiche_items['status'] = $list_fiche_items['status']; - $fiche_items['type'] = $list_fiche_items['type']; - $fiche_items['date'] = $list_fiche_items['date']; - $fiche_items['fiche_id'] = $list_fiche_items['fiche_id']; - $fiche_items['current_id'] = $list_fiche_items['current_id']; - $fiche_items['product_id'] = $list_fiche_items['product_id']; - $fiche_items['quantity'] = $list_fiche_items['quantity']; - $fiche_items['cost_price'] = $list_fiche_items['cost_price']; - $fiche_items['price'] = $list_fiche_items['price']; - $fiche_items['total'] = $list_fiche_items['total']; - - $fiche_items['product_code'] = get_product($fiche_items['product_id'], 'code'); - - echo ' - - - - - - - - - '; - } - ?> - -
'.$fiche_items['product_code'].''.get_product($fiche_items['product_id'], 'name').''.round($fiche_items['quantity'],2).''.get_mf($fiche_items['price']).''.get_mf($fiche_items['total']).'
- - - -
-
-
- -
-
- - - -
-
- -
-
- -
-
- -
-
- - - -
-
- -
-
- -
-
- -
-
- - - -
-
- -
-
- -
-
- -
-
- - - -
-
- -
-
- -
-
- - -
-
- - -
- - -print();'; } ?> - - \ No newline at end of file diff --git a/page/fiche/list.php b/page/fiche/list.php deleted file mode 100644 index 90a95b1..0000000 --- a/page/fiche/list.php +++ /dev/null @@ -1,52 +0,0 @@ - - - - -fiche WHERE status='publish' AND current_id='".safety_filter($_GET['current_id'])."' ORDER BY id DESC"); - box_current_card($_GET['current_id']); - echo '

'.get_lang('Current Code').': '.get_current_card($_GET['current_id'], 'code').'

'; -} -else -{ - $query_fiche = mysql_query("SELECT * FROM $database->fiche WHERE status='publish' ORDER BY id DESC"); -} -?> - - - - - - - - - - - - - - - - - - - - - - - - '; - } - ?> - -
» '.$list_fiche['id'].' '.get_lang($list_fiche['type']).''.$list_fiche['date'].''.get_current_card($list_fiche['current_id'], 'code').''.get_mf($list_fiche['grand_total']).''.$list_fiche['fiche_items'].'
- - \ No newline at end of file diff --git a/page/fiche/new.php b/page/fiche/new.php deleted file mode 100644 index f4487d3..0000000 --- a/page/fiche/new.php +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - 0) - { - add_log($datetime, '', $current_id, $fiche_id, 'New Fiche', 'Generated new fiche'); - go_to_page('fiche.php?fiche_id='.$fiche_id.''); - } - } -} -?> - - -
-
-
- -
- - -
-
- - -
-
- -
-
- -
-
- -
-
-
-
- - - -
-
- -
-
- - -
-
- -
- -
-
-
-
- -
-
- - -
-
-
- - \ No newline at end of file diff --git a/page/help/global.php b/page/help/global.php deleted file mode 100644 index db81fce..0000000 --- a/page/help/global.php +++ /dev/null @@ -1,52 +0,0 @@ - - -
- -
- - -

get_url()

-

You can get the system URL info by using the function get_url(). This function returns the system URL address. Besides, it adds the parameter that it took to the end of the URL.

-

- echo get_url('');
- // http://localhost/management -

- echo get_url('theme');
- // http://localhost/management/theme -

- - -
- -

url()

-

url() function get_url() function then prints the result returned.

-

- url('');
- // http://localhost/management -

- url('theme');
- // http://localhost/management/theme -

- - -
- -

safety_filter()

-

The function safety_filter() checks the values that come from outside. This is a security function.

-

- $user_name = safety_filter($_POST['user_name']); -

- - - -
-
- - \ No newline at end of file diff --git a/page/help/index.php b/page/help/index.php deleted file mode 100644 index d3990b8..0000000 --- a/page/help/index.php +++ /dev/null @@ -1,41 +0,0 @@ - - - - - \ No newline at end of file diff --git a/page/help/user.php b/page/help/user.php deleted file mode 100644 index 355a27a..0000000 --- a/page/help/user.php +++ /dev/null @@ -1,144 +0,0 @@ - - -
- -
- - -

add_user()

-

If you use to add_user() function , you can add new users.

-

add_user($user_name, $password, $password_again, $level)

-

-

    -
  • $user_name : new user name
  • -
  • $password : new password
  • -
  • $password_again : new password again
  • -
  • $level : user level [1,2,3,4,5]
  • -
-

-

If this function is run correctly it rotates to the ID of the user which latest addition. But if it encounters any errors, the result is "false"

- -
- -

update_user()

-

You can update to a registered user, using to update_user() function.

-

update_user($user_id, $status, $user_name, $password, $level)

-

-

    -
  • $user_id : user ID
  • -
  • $status : user status [publish, delete]
  • -
  • $user_name : user name
  • -
  • $password : password
  • -
  • $level : user level [1,2,3,4,5]
  • -
-

-

If this fucntion is run correctly, the result is "true". If it encounters any errors, the result is "false". You can not change your passport if you leave empty to the passport change area.

- - -
- -

delete_user()

-

delete_user () function can delete a registered user.

-

delete_user($user_id)

-

-

    -
  • $user_id : user ID
  • -
-

-

This function is operating correctly, "true" is returned.

- - -
- -

get_user()

-

You can rotate to the database information of a registered user, using get_user() function. This function rotates to the results to query the values ​​as parameters in the database.

-

get_user($user_id, $value)

-

-

    -
  • $user_id : user ID
  • -
  • $value : database / table column name
  • -
-

-

You can rotate the downstairs values.

-

- $users['id']
- $users['status']
- $users['user_name']
- $users['password']
- $users['level']
-

- - -
- -

user()

-

user() function get_user() function then prints the result returned.

- - -
- -

get_the_user()

-

The function get_the_user() shows the info of the user within the process. In order for this function to run properly, one of the values $_GET['user_id'] or $_POST['user_id'] must be active. .

-

get_the_user($value)

-

-

    -
  • $value : database / table column name
  • -
-

-

You can rotate the downstairs values.

-

- $users['id']
- $users['status']
- $users['user_name']
- $users['password']
- $users['level']
-

- - -
- -

the_user()

-

the_user() function get_the_user() function then prints the result returned.

- - -
- -

get_the_current_user()

-

get the _current_user() function returns the logged in user information.

-

get_the_current_user($value)

-

-

    -
  • $value : database / table column name
  • -
-

-

You can rotate the downstairs values.

-

- $users['id']
- $users['status']
- $users['user_name']
- $users['password']
- $users['level']
-

- - -
- -

the_current_user()

-

The function the_current_user() displays the result on the screen that returns from the function get_the_current_user().

-
-
- - \ No newline at end of file diff --git a/page/logs/logs.php b/page/logs/logs.php deleted file mode 100644 index 0f4eb83..0000000 --- a/page/logs/logs.php +++ /dev/null @@ -1,63 +0,0 @@ - - - - -logs WHERE fiche_id='".safety_filter($_GET['fiche_id'])."'"); - echo '

'.get_lang('Fiche ID').': '.$_GET['fiche_id'].'

'; -} -else if(isset($_GET['current_id'])) -{ - $query_logs = mysql_query("SELECT * FROM $database->logs WHERE current_id='".safety_filter($_GET['current_id'])."'"); - box_current_card($_GET['current_id']); - echo '

'.get_lang('Current Code').': '.get_current_card($_GET['current_id'], 'code').'

'; -} -else if(isset($_GET['product_id'])) -{ - $query_logs = mysql_query("SELECT * FROM $database->logs WHERE product_id='".safety_filter($_GET['product_id'])."'"); - box_product_card($_GET['product_id']); - echo '

'.get_lang('Product Code').': '.get_product($_GET['product_id'], 'code').'

'; -} -else -{ - -} -?> - - - - - - - - - - - - - - - - - - - - - - - - - '; - } - ?> - -
'.$list_logs['date'].''.get_user($list_logs['user_id'], 'display_name').''.get_current_card($list_logs['current_id'], 'code').''.get_product($list_logs['product_id'], 'code').' '.$list_logs['fiche_id'].' '.get_lang($list_logs['description']).'
- - \ No newline at end of file diff --git a/page/products/add.php b/page/products/add.php deleted file mode 100644 index ef84507..0000000 --- a/page/products/add.php +++ /dev/null @@ -1,69 +0,0 @@ - - - - - 0) - { - add_log($datetime, $product_id, '', '', 'New Product', get_lang('Generated new product card')); - go_to_page('product.php?product_id='.$product_id.''); - } - } -} -?> - -
-
-
-
- - - - - - - - -
- -
- -
-
- - -
-
- - -
-
-
- -
-
- -
-
- -
-
- - -
-
-
- - \ No newline at end of file diff --git a/page/products/list.php b/page/products/list.php deleted file mode 100644 index c7e36af..0000000 --- a/page/products/list.php +++ /dev/null @@ -1,40 +0,0 @@ - - - - -
-
- - - - - - - - - - - - - products WHERE status='publish'"); - while($list_products = mysql_fetch_assoc($query_products)) - { - echo ' - - - - - - - - - '; - } - ?> - -
 
'.$list_products['code'].''.$list_products['name'].''.$list_products['quantity'].''.get_mf($list_products['cost_price']).''.get_mf($list_products['sale_price']).'
-
-
- - \ No newline at end of file diff --git a/page/products/product.php b/page/products/product.php deleted file mode 100644 index 492adb6..0000000 --- a/page/products/product.php +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - -
-
-
-
    -
  • -
  • -
-
-
-
- - - - - -
-
- - -products SET status='$status' WHERE id='".get_the_product('id')."'"); - if(mysql_affected_rows() > 0) - { - go_to_page('product.php?product_id='.$product_id.'&success=update'); - } - else - { - alert_box('alert', mysql_error()); - } -} - - -if(isset($_POST['btn_update'])) -{ - $datetime = safety_filter($_POST['datetime']); - $code = safety_filter($_POST['code']); - $name = safety_filter($_POST['name']); - $cost_price = safety_filter($_POST['cost_price']); - $sale_price = safety_filter($_POST['sale_price']); - - if(!get_log($datetime, get_the_current_user('id'), 'Update Product', false)) - { - if(update_product(get_the_product('id'), $code, $name, $cost_price, $sale_price)) - { - add_log($datetime, get_the_product('id'), '', 'Update Product', get_lang('Product card updated')); - go_to_page('product.php?product_id='.$product_id.'&success=update'); - } - } -} -?> - -
-
-
-
- - - - - - - - -
- -
- -
-
- - -
-
- - -
-
-
- -
-
-
- -
- -
-

-
-
-
- -
-
- - -
-
-
- - - \ No newline at end of file diff --git a/page/settings/page_access.php b/page/settings/page_access.php deleted file mode 100644 index 735e722..0000000 --- a/page/settings/page_access.php +++ /dev/null @@ -1,65 +0,0 @@ - - - -
-
- - window.location = "?page_name='.$get_page_name.'&success"; '; - } - } - if(isset($_GET['success'])) - { - alert_box('success', get_lang('Successful')); - } - ?> - -
-
- - - - -
-
-
-
-
-
-
- - -
-
- - -

- - - -

- -
-
-
-
- - -
-
- - \ No newline at end of file diff --git a/page/settings/settings.php b/page/settings/settings.php deleted file mode 100644 index 4b228a8..0000000 --- a/page/settings/settings.php +++ /dev/null @@ -1,56 +0,0 @@ - - - - -
-
- - - -
-
- - -
-
- window.location = "settings.php?success"; '; - } - } - ?> -
-
- -
-
-
-
- - - - - - - -

-
-
-
-
- - - \ No newline at end of file diff --git a/page/user/edit.php b/page/user/edit.php deleted file mode 100644 index 75daf7c..0000000 --- a/page/user/edit.php +++ /dev/null @@ -1,88 +0,0 @@ - - -
-
- - window.location = "?user_id='.get_the_user('id').'&success"; '; - } - } - } - - if(isset($_GET['success'])) - { - alert_box('success', get_lang('Successful')); - } - ?> - -
-
- - - - - - - - - - - - - -
-
- - -
-
- - -
-
- - -

- - - - -

- -
-
-
-
- - -
-
- - \ No newline at end of file diff --git a/page/user/message.php b/page/user/message.php deleted file mode 100644 index be9b783..0000000 --- a/page/user/message.php +++ /dev/null @@ -1,267 +0,0 @@ - - - -
-
    -
  • -
  • -
  • -
-
- -
-
- -

- -

- - - - - - - - - - - - message WHERE status='publish' AND type='message' - AND sender_id='".get_the_current_user('id')."' - AND top_id='0' - ORDER BY last_date DESC"); - } - else if($message_type == 'receiver') - { - $query_message = mysql_query("SELECT * FROM $database->message WHERE - status='publish' AND type='message' - AND inbox_id='".get_the_current_user('id')."' - AND top_id='0' - OR - status='publish' AND type='message' - AND receiver_id='".get_the_current_user('id')."' - AND top_id='0' - ORDER BY last_date DESC"); - } - else { alert_box('alert', get_lang('Wrong Message Type')); exit; } - - while($list_message = mysql_fetch_assoc($query_message)) - { - $last_sate = ''; - if($list_message['last_state'] == 'open' and get_the_current_user('id') == $list_message['inbox_id']) { $last_sate = 'style="text-decoration:underline; font-weight:bold;"'; } - else if($list_message['last_state'] == 'close') { $last_sate = ''; } - - if($message_type == 'sender'){ $username = get_user($list_message['receiver_id'], 'user_name'); } - else if($message_type == 'receiver'){ $username = get_user($list_message['sender_id'], 'user_name'); } - - echo ' - - - - - - - '; - } - ?> - -
'.substr($list_message['start_date'],0,16).''.substr($username, 0, 14).''.substr($list_message['title'],0,30).'
-
-
- message WHERE id='$message_id'"); - while($list_top_id = mysql_fetch_assoc($query_top_id)) - { - $top_id = $list_top_id['top_id']; - } - if($top_id > 0) {$message_id = $top_id;} - - - $query_message = mysql_query("SELECT * FROM $database->message WHERE type='message' AND id='$message_id'"); - while($list_message = mysql_fetch_assoc($query_message)) - { # while top message - $message['id'] = $list_message['id']; - $message['status'] = $list_message['status']; - $message['type'] = $list_message['type']; - $message['last_state'] = $list_message['last_state']; - $message['top_id'] = $list_message['top_id']; - $message['start_date'] = $list_message['start_date']; - $message['end_date'] = $list_message['end_date']; - $message['sender_id'] = $list_message['sender_id']; - $message['receiver_id'] = $list_message['receiver_id']; - $message['inbox_id'] = $list_message['inbox_id']; - $message['title'] = $list_message['title']; - $message['description'] = $list_message['description']; - - if(get_the_current_user('level') == 1) {} else { - if($message['sender_id'] == get_the_current_user('id') or $message['receiver_id'] == get_the_current_user('id')){} - else {alert_box('alert', get_lang('Are not authorized to read this message.')); exit;} } - - // Mark Read - if(get_the_current_user('id') == $message['inbox_id']) - { - mysql_query("UPDATE $database->message SET last_state='close' WHERE id='$message_id'"); - mysql_query("UPDATE $database->message SET last_state='close' WHERE top_id='$message_id'"); - } - - // DELETE MESSAGE - if(isset($_GET['delete_message_id'])) - { - $delete_message_id = safety_filter($_GET['delete_message_id']); - - if(delete_message($delete_message_id)) - { - alert_box('alert', get_lang('Deleted')); - } - } - ?> -
-
-
-
-
-
-
-
- - :
- - -
-
- - :
- - -
-
- -
-
-

-
-
- -
-
-
-
- - - -
-
-
- message SET last_state='open', inbox_id='$reply_message_receiver', last_date='$datetime' WHERE id='$message_id'"); - add_log($datetime, 'Reply Message', get_lang('Reply Message').' ['.get_user($reply_message_receiver, 'user_name').']'); - alert_box('success', get_lang('Successful')); - } - } - else {} - } - - $reply_message['inbox_id'] = ''; - $query_reply_message = mysql_query("SELECT * FROM $database->message WHERE status='publish' AND top_id='$message_id'"); - while($list_reply_message = mysql_fetch_assoc($query_reply_message)) - { # while reply messagee - $reply_message['id'] = $list_reply_message['id']; - $reply_message['status'] = $list_reply_message['status']; - $reply_message['type'] = $list_reply_message['type']; - $reply_message['last_state'] = $list_reply_message['last_state']; - $reply_message['top_id'] = $list_reply_message['top_id']; - $reply_message['start_date'] = $list_reply_message['start_date']; - $reply_message['end_date'] = $list_reply_message['end_date']; - $reply_message['sender_id'] = $list_reply_message['sender_id']; - $reply_message['receiver_id'] = $list_reply_message['receiver_id']; - $reply_message['inbox_id'] = $list_reply_message['inbox_id']; - $reply_message['title'] = $list_reply_message['title']; - $reply_message['description'] = $list_reply_message['description']; - ?> -
-
-
- -
-
- - :
- - -
-
-
-
- -
-
-
-
- - - -
-
- - -
- - message SET last_state='close' WHERE id='$message_id'"); - mysql_query("UPDATE $database->message SET last_state='close' WHERE top_id='$message_id'"); - } - - ?> -
- - - -
- window.location = "?message_type='.$message_type.'&message_id='.$message['id'].'"; '; - } - - ?> - -
-
- - \ No newline at end of file diff --git a/page/user/message_new.php b/page/user/message_new.php deleted file mode 100644 index 74ef7c5..0000000 --- a/page/user/message_new.php +++ /dev/null @@ -1,96 +0,0 @@ - - -
-
    -
  • -
  • -
  • -
-
- - - - - -
-
- - - -
-
- - - - - - - - - - - - - - - - -

- -
-
-
-
- -
-
- - - - - - - - - - - - users WHERE status='publish' ORDER BY id ASC"); - while($list_users = mysql_fetch_assoc($query_users)) - { - - if(get_meta('', $list_users['id'], 'user', 'display_name') != '') { $list_users['display_name'] = get_meta('', $list_users['id'], 'user', 'display_name'); } - else{ $list_users['display_name'] = $list_users['user_name']; } - - echo ' - - - - - - '; - } - ?> - -
'.$list_users['display_name'].''.$list_users['level'].'
- - - \ No newline at end of file diff --git a/page/user/profile.php b/page/user/profile.php deleted file mode 100644 index fe44eb3..0000000 --- a/page/user/profile.php +++ /dev/null @@ -1,54 +0,0 @@ - - -
-
    -
  • -
  • -
-
- -
-
- - users SET - display_name='$display_name' - WHERE - id='$user_id' - "); - if(mysql_affected_rows() > 0) - { - alert_box('success', get_lang('Successful')); - echo ''; - } - } - ?> - -
-
- - - - - - - - - - -

- -
-
-
-
- - -
-
- - \ No newline at end of file diff --git a/page/user/profile_change_ps.php b/page/user/profile_change_ps.php deleted file mode 100644 index a47c33a..0000000 --- a/page/user/profile_change_ps.php +++ /dev/null @@ -1,85 +0,0 @@ - - -
-
    -
  • -
  • -
-
- -
-
- - - -
-
- - - - - - - -
-
- - -
-
- - -
-
- -
- - - - - - - - - - -

- - - - -

- -
-
-
-
- - -
-
- - \ No newline at end of file diff --git a/page/user/task.php b/page/user/task.php deleted file mode 100644 index cf867dd..0000000 --- a/page/user/task.php +++ /dev/null @@ -1,375 +0,0 @@ - - - - - -
-
    -
  • -
  • -
  • -
-
- -
-
- -

- -

- - - - - - - - - - - - - message WHERE status='publish' AND type='task' - AND sender_id='".get_the_current_user('id')."' - AND top_id='0' - ORDER BY last_date DESC"); - } - else if($type == 'receiver') - { - $query_message = mysql_query("SELECT * FROM $database->message WHERE - status='publish' AND type='task' - AND inbox_id='".get_the_current_user('id')."' - AND top_id='0' - OR - status='publish' AND type='task' - AND receiver_id='".get_the_current_user('id')."' - AND top_id='0' - ORDER BY last_date DESC"); - } - else { alert_box('alert', get_lang('Wrong Message Type')); exit; } - - while($list_message = mysql_fetch_assoc($query_message)) - { - $last_sate = ''; - if($list_message['last_state'] == 'open' and get_the_current_user('id') == $list_message['inbox_id']) { $last_sate = 'style="text-decoration:underline; font-weight:bold;"'; } - else if($list_message['last_state'] == 'close') { $last_sate = ''; } - - if($type == 'sender'){ $username = get_user($list_message['receiver_id'], 'display_name'); } - else if($type == 'receiver'){ $username = get_user($list_message['sender_id'], 'display_name'); } - - echo ' - - - - - - - - '; - } - ?> - -
'.substr($list_message['start_date'],0,10).''.substr($username, 0, 6).''.$list_message['task_status'].''.substr($list_message['title'],0,30).'
-
-
- message WHERE id='$task_id'"); - while($list_top_id = mysql_fetch_assoc($query_top_id)) - { - $top_id = $list_top_id['top_id']; - } - if($top_id > 0) {$task_id = $top_id;} - - - // Task status change - if(isset($_GET['task_status'])) - { - $task_status = safety_filter($_GET['task_status']); - if($task_status == 'open'){}else if($task_status == 'close'){} else { exit; } - - mysql_query("UPDATE $database->message SET task_status='$task_status' WHERE id='$task_id'"); - if(mysql_affected_rows() > 0) - { - alert_box('success', get_lang('Successful').' ['.get_lang($task_status).']'); - add_task($task_id, get_config('datetime'), '', get_the_current_user('id'), get_the_task('receiver_id'), '', get_lang('Task Status').': '.get_lang($task_status)); - } - } - - - $query_message = mysql_query("SELECT * FROM $database->message WHERE type='task' AND id='$task_id'"); - while($list_message = mysql_fetch_assoc($query_message)) - { # while top message - $message['id'] = $list_message['id']; - $message['status'] = $list_message['status']; - $message['type'] = $list_message['type']; - $message['last_state'] = $list_message['last_state']; - $message['start_date'] = $list_message['start_date']; - $message['end_date'] = $list_message['end_date']; - $message['top_id'] = $list_message['top_id']; - $message['start_date'] = $list_message['start_date']; - $message['end_date'] = $list_message['end_date']; - $message['sender_id'] = $list_message['sender_id']; - $message['receiver_id'] = $list_message['receiver_id']; - $message['inbox_id'] = $list_message['inbox_id']; - $message['title'] = $list_message['title']; - $message['description'] = $list_message['description']; - $message['task_status'] = $list_message['task_status']; - - if(get_the_current_user('level') == 1) {} else { - if($message['sender_id'] == get_the_current_user('id') or $message['receiver_id'] == get_the_current_user('id')){} - else {alert_box('alert', get_lang('Are not authorized to read this task.')); exit;} } - - // Mark Read - if(get_the_current_user('id') == $message['inbox_id']) - { - mysql_query("UPDATE $database->message SET last_state='close' WHERE id='$task_id'"); - mysql_query("UPDATE $database->message SET last_state='close' WHERE top_id='$task_id'"); - } - - // DELETE MESSAGE - if(isset($_GET['delete_task_id'])) - { - $delete_task_id = safety_filter($_GET['delete_task_id']); - - if(delete_task($delete_task_id)) - { - add_log(get_config('datetime'), 'Task Delete', get_lang('Task deleted.').' ['.get_the_current_user('user_name').'] ['.$delete_task_id.']'); - alert_box('alert', get_lang('Deleted')); - } - } - ?> -
-
- - - - - -
-
-

-
-
-
-
-
-
-
-
- - :
- - -
-
- - :
- - -
-
- -
-
-

-
-
- : -
-
- : -
-
-

-
-
- -
-
-
-
- - - -
-
-
- message SET last_state='open', inbox_id='$reply_message_receiver', last_date='$datetime' WHERE id='$task_id'"); - add_log($datetime, 'Reply Task', get_lang('Reply Task').' ['.get_user($reply_message_receiver, 'user_name').']'); - alert_box('success', get_lang('Successful')); - } - } - else {} - } - - $reply_message['inbox_id'] = ''; - $query_reply_message = mysql_query("SELECT * FROM $database->message WHERE status='publish' AND top_id='$task_id'"); - while($list_reply_message = mysql_fetch_assoc($query_reply_message)) - { # while reply messagee - $reply_message['id'] = $list_reply_message['id']; - $reply_message['status'] = $list_reply_message['status']; - $reply_message['type'] = $list_reply_message['type']; - $reply_message['last_state'] = $list_reply_message['last_state']; - $reply_message['top_id'] = $list_reply_message['top_id']; - $reply_message['start_date'] = $list_reply_message['start_date']; - $reply_message['end_date'] = $list_reply_message['end_date']; - $reply_message['sender_id'] = $list_reply_message['sender_id']; - $reply_message['receiver_id'] = $list_reply_message['receiver_id']; - $reply_message['inbox_id'] = $list_reply_message['inbox_id']; - $reply_message['title'] = $list_reply_message['title']; - $reply_message['description'] = $list_reply_message['description']; - ?> -
-
-
- -
-
- - :
- - -
-
-

-
-
- -
-
-
-
- - - -
-
- - -
- - message SET last_state='close' WHERE id='$task_id'"); - mysql_query("UPDATE $database->message SET last_state='close' WHERE top_id='$task_id'"); - } - - ?> -
- - - -
- -

- - - - - - - - - - - - message WHERE status='publish' AND type='task' - AND sender_id='".get_the_current_user('id')."' - AND top_id='0' - AND task_status='open' - ORDER BY end_date ASC"); - } - else if($type == 'receiver') - { - $query_message = mysql_query("SELECT * FROM $database->message WHERE - status='publish' AND type='task' - AND inbox_id='".get_the_current_user('id')."' - AND top_id='0' - AND task_status='open' - OR - status='publish' AND type='task' - AND receiver_id='".get_the_current_user('id')."' - AND top_id='0' - AND task_status='open' - ORDER BY end_date ASC"); - } - else { alert_box('alert', get_lang('Wrong Message Type')); exit; } - - while($list_message = mysql_fetch_assoc($query_message)) - { - $last_sate = ''; - if($list_message['last_state'] == 'open' and get_the_current_user('id') == $list_message['inbox_id']) { $last_sate = 'style="text-decoration:underline; font-weight:bold;"'; } - else if($list_message['last_state'] == 'close') { $last_sate = ''; } - - if($type == 'sender'){ $username = get_user($list_message['receiver_id'], 'display_name'); } - else if($type == 'receiver'){ $username = get_user($list_message['sender_id'], 'display_name'); } - - echo ' - - - - - - - - '; - } - ?> - -
'.substr($list_message['end_date'],0,10).''.substr($username, 0, 6).''.$list_message['task_status'].''.substr($list_message['title'],0,30).'
-
- window.location = "?type='.$type.'&task_id='.$message['id'].'"; '; - } - - ?> - -
-
- - \ No newline at end of file diff --git a/page/user/task_new.php b/page/user/task_new.php deleted file mode 100644 index 325e1b9..0000000 --- a/page/user/task_new.php +++ /dev/null @@ -1,108 +0,0 @@ - - -
-
    -
  • -
  • -
  • -
-
- - - - - -
-
- - - -
-
- - - - - - -
-
- - -
-
- - -
-
- - - - - - - - - - - - -

- -
-
-
-
- -
-
- - - - - - - - - - - - users WHERE status='publish' ORDER BY id ASC"); - while($list_users = mysql_fetch_assoc($query_users)) - { - if(strlen($list_users['display_name']) < 1) { $list_users['display_name'] = $list_users['user_name']; } - - echo ' - - - - - - '; - } - ?> - -
'.$list_users['display_name'].''.$list_users['level'].'
- - - \ No newline at end of file diff --git a/page/user/user_management.php b/page/user/user_management.php deleted file mode 100644 index 416dfac..0000000 --- a/page/user/user_management.php +++ /dev/null @@ -1,114 +0,0 @@ - - -
-
- - - -
-
- - - - - - - - - - - - - - -

- - - - -

- -
-
-
-
- - - - - - - - - - - - - - - users WHERE status='publish' ORDER BY id ASC"); - while($list_users = mysql_fetch_assoc($query_users)) - { - echo ' - - - - - - - - '; - } - ?> - -
- - - - '.$list_users['user_name'].''.$list_users['level'].'
-
-
- - \ No newline at end of file diff --git a/plugins/barcode/barcode.php b/plugins/barcode/barcode.php new file mode 100755 index 0000000..c64d810 --- /dev/null +++ b/plugins/barcode/barcode.php @@ -0,0 +1,59 @@ +setScale(2); +$code->setThickness(30); +$code->setForegroundColor($color_black); +$code->setBackgroundColor($color_white); +$code->setFont($font); +$code->setStart(NULL); +$code->setTilde(true); +$code->parse($text); + +// Drawing Part +$drawing = new BCGDrawing('', $color_white); +$drawing->setBarcode($code); +$drawing->draw(); + +header('Content-Type: image/png'); + +$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); +?> + + + + + + \ No newline at end of file diff --git a/include/class/barcode/class/BCGArgumentException.php b/plugins/barcode/class/BCGArgumentException.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGArgumentException.php rename to plugins/barcode/class/BCGArgumentException.php diff --git a/include/class/barcode/class/BCGBarcode.php b/plugins/barcode/class/BCGBarcode.php old mode 100644 new mode 100755 similarity index 97% rename from include/class/barcode/class/BCGBarcode.php rename to plugins/barcode/class/BCGBarcode.php index 91023ef..d3cd72a --- a/include/class/barcode/class/BCGBarcode.php +++ b/plugins/barcode/class/BCGBarcode.php @@ -344,11 +344,11 @@ protected function drawPixel($im, $x, $y, $color = self::COLOR_FG) { */ protected function drawRectangle($im, $x1, $y1, $x2, $y2, $color = self::COLOR_FG) { if ($this->scale === 1) { - imagerectangle($im, - ($x1 + $this->offsetX) * $this->scale + $this->pushLabel[0], - ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1], - ($x2 + $this->offsetX) * $this->scale + $this->pushLabel[0], - ($y2 + $this->offsetY) * $this->scale + $this->pushLabel[1], + imagefilledrectangle($im, + ($x1 + $this->offsetX) + $this->pushLabel[0], + ($y1 + $this->offsetY) + $this->pushLabel[1], + ($x2 + $this->offsetX) + $this->pushLabel[0], + ($y2 + $this->offsetY) + $this->pushLabel[1], $this->getColor($im, $color)); } else { imagefilledrectangle($im, ($x1 + $this->offsetX) * $this->scale + $this->pushLabel[0], ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1], ($x2 + $this->offsetX) * $this->scale + $this->pushLabel[0] + $this->scale - 1, ($y1 + $this->offsetY) * $this->scale + $this->pushLabel[1] + $this->scale - 1, $this->getColor($im, $color)); diff --git a/include/class/barcode/class/BCGBarcode1D.php b/plugins/barcode/class/BCGBarcode1D.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGBarcode1D.php rename to plugins/barcode/class/BCGBarcode1D.php diff --git a/include/class/barcode/class/BCGColor.php b/plugins/barcode/class/BCGColor.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGColor.php rename to plugins/barcode/class/BCGColor.php diff --git a/include/class/barcode/class/BCGDrawException.php b/plugins/barcode/class/BCGDrawException.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGDrawException.php rename to plugins/barcode/class/BCGDrawException.php diff --git a/include/class/barcode/class/BCGDrawing.php b/plugins/barcode/class/BCGDrawing.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGDrawing.php rename to plugins/barcode/class/BCGDrawing.php diff --git a/include/class/barcode/class/BCGFont.php b/plugins/barcode/class/BCGFont.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGFont.php rename to plugins/barcode/class/BCGFont.php diff --git a/include/class/barcode/class/BCGFontFile.php b/plugins/barcode/class/BCGFontFile.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGFontFile.php rename to plugins/barcode/class/BCGFontFile.php diff --git a/include/class/barcode/class/BCGFontPhp.php b/plugins/barcode/class/BCGFontPhp.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGFontPhp.php rename to plugins/barcode/class/BCGFontPhp.php diff --git a/include/class/barcode/class/BCGLabel.php b/plugins/barcode/class/BCGLabel.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGLabel.php rename to plugins/barcode/class/BCGLabel.php diff --git a/include/class/barcode/class/BCGParseException.php b/plugins/barcode/class/BCGParseException.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGParseException.php rename to plugins/barcode/class/BCGParseException.php diff --git a/include/class/barcode/class/BCGcodabar.barcode.php b/plugins/barcode/class/BCGcodabar.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGcodabar.barcode.php rename to plugins/barcode/class/BCGcodabar.barcode.php diff --git a/include/class/barcode/class/BCGcode11.barcode.php b/plugins/barcode/class/BCGcode11.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGcode11.barcode.php rename to plugins/barcode/class/BCGcode11.barcode.php diff --git a/include/class/barcode/class/BCGcode128.barcode.php b/plugins/barcode/class/BCGcode128.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGcode128.barcode.php rename to plugins/barcode/class/BCGcode128.barcode.php diff --git a/include/class/barcode/class/BCGcode39.barcode.php b/plugins/barcode/class/BCGcode39.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGcode39.barcode.php rename to plugins/barcode/class/BCGcode39.barcode.php diff --git a/include/class/barcode/class/BCGcode39extended.barcode.php b/plugins/barcode/class/BCGcode39extended.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGcode39extended.barcode.php rename to plugins/barcode/class/BCGcode39extended.barcode.php diff --git a/include/class/barcode/class/BCGcode93.barcode.php b/plugins/barcode/class/BCGcode93.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGcode93.barcode.php rename to plugins/barcode/class/BCGcode93.barcode.php diff --git a/include/class/barcode/class/BCGean13.barcode.php b/plugins/barcode/class/BCGean13.barcode.php old mode 100644 new mode 100755 similarity index 94% rename from include/class/barcode/class/BCGean13.barcode.php rename to plugins/barcode/class/BCGean13.barcode.php index 1c6147a..bd07091 --- a/include/class/barcode/class/BCGean13.barcode.php +++ b/plugins/barcode/class/BCGean13.barcode.php @@ -24,6 +24,7 @@ class BCGean13 extends BCGBarcode1D { protected $labelLeft = null; protected $labelCenter1 = null; protected $labelCenter2 = null; + protected $alignLabel; /** * Constructor. @@ -62,6 +63,12 @@ public function __construct() { array(1, 0, 1, 1, 0), /* 8 */ array(1, 1, 0, 1, 0) /* 9 */ ); + + $this->alignDefaultLabel(true); + } + + public function alignDefaultLabel($align) { + $this->alignLabel = (bool)$align; } /** @@ -107,9 +114,7 @@ protected function addDefaultLabel() { $font = $this->font; $this->labelLeft = new BCGLabel(substr($label, 0, 1), $font, BCGLabel::POSITION_LEFT, BCGLabel::ALIGN_BOTTOM); - $labelLeftDimension = $this->labelLeft->getDimension(); - $this->labelLeft->setSpacing(8); - $this->labelLeft->setOffset($labelLeftDimension[1] / 2); + $this->labelLeft->setSpacing(4 * $this->scale); $this->labelCenter1 = new BCGLabel(substr($label, 1, 6), $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); $labelCenter1Dimension = $this->labelCenter1->getDimension(); @@ -119,6 +124,14 @@ protected function addDefaultLabel() { $labelCenter2Dimension = $this->labelCenter2->getDimension(); $this->labelCenter2->setOffset(($this->scale * 44 - $labelCenter1Dimension[0]) / 2 + $this->scale * 48); + if ($this->alignLabel) { + $labelDimension = $this->labelCenter1->getDimension(); + $this->labelLeft->setOffset($labelDimension[1]); + } else { + $labelDimension = $this->labelLeft->getDimension(); + $this->labelLeft->setOffset($labelDimension[1] / 2); + } + $this->addLabel($this->labelLeft); $this->addLabel($this->labelCenter1); $this->addLabel($this->labelCenter2); diff --git a/include/class/barcode/class/BCGean8.barcode.php b/plugins/barcode/class/BCGean8.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGean8.barcode.php rename to plugins/barcode/class/BCGean8.barcode.php diff --git a/include/class/barcode/class/BCGgs1128.barcode.php b/plugins/barcode/class/BCGgs1128.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGgs1128.barcode.php rename to plugins/barcode/class/BCGgs1128.barcode.php diff --git a/include/class/barcode/class/BCGi25.barcode.php b/plugins/barcode/class/BCGi25.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGi25.barcode.php rename to plugins/barcode/class/BCGi25.barcode.php diff --git a/include/class/barcode/class/BCGintelligentmail.barcode.php b/plugins/barcode/class/BCGintelligentmail.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGintelligentmail.barcode.php rename to plugins/barcode/class/BCGintelligentmail.barcode.php diff --git a/include/class/barcode/class/BCGisbn.barcode.php b/plugins/barcode/class/BCGisbn.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGisbn.barcode.php rename to plugins/barcode/class/BCGisbn.barcode.php diff --git a/include/class/barcode/class/BCGmsi.barcode.php b/plugins/barcode/class/BCGmsi.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGmsi.barcode.php rename to plugins/barcode/class/BCGmsi.barcode.php diff --git a/include/class/barcode/class/BCGothercode.barcode.php b/plugins/barcode/class/BCGothercode.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGothercode.barcode.php rename to plugins/barcode/class/BCGothercode.barcode.php diff --git a/include/class/barcode/class/BCGpostnet.barcode.php b/plugins/barcode/class/BCGpostnet.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGpostnet.barcode.php rename to plugins/barcode/class/BCGpostnet.barcode.php diff --git a/include/class/barcode/class/BCGs25.barcode.php b/plugins/barcode/class/BCGs25.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGs25.barcode.php rename to plugins/barcode/class/BCGs25.barcode.php diff --git a/include/class/barcode/class/BCGupca.barcode.php b/plugins/barcode/class/BCGupca.barcode.php old mode 100644 new mode 100755 similarity index 87% rename from include/class/barcode/class/BCGupca.barcode.php rename to plugins/barcode/class/BCGupca.barcode.php index ca9bb40..fd4648a --- a/include/class/barcode/class/BCGupca.barcode.php +++ b/plugins/barcode/class/BCGupca.barcode.php @@ -99,9 +99,7 @@ protected function addDefaultLabel() { $font = $this->font; $this->labelLeft = new BCGLabel(substr($label, 0, 1), $font, BCGLabel::POSITION_LEFT, BCGLabel::ALIGN_BOTTOM); - $labelLeftDimension = $this->labelLeft->getDimension(); - $this->labelLeft->setSpacing(8); - $this->labelLeft->setOffset($labelLeftDimension[1] / 2); + $this->labelLeft->setSpacing(4 * $this->scale); $this->labelCenter1 = new BCGLabel(substr($label, 1, 5), $font, BCGLabel::POSITION_BOTTOM, BCGLabel::ALIGN_LEFT); $labelCenter1Dimension = $this->labelCenter1->getDimension(); @@ -112,9 +110,18 @@ protected function addDefaultLabel() { $this->labelCenter2->setOffset(($this->scale * 44 - $labelCenter1Dimension[0]) / 2 + $this->scale * 45); $this->labelRight = new BCGLabel($this->keys[$this->checksumValue], $font, BCGLabel::POSITION_RIGHT, BCGLabel::ALIGN_BOTTOM); - $labelRightDimension = $this->labelRight->getDimension(); - $this->labelRight->setSpacing(8); - $this->labelRight->setOffset($labelRightDimension[1] / 2); + $this->labelRight->setSpacing(4 * $this->scale); + + if ($this->alignLabel) { + $labelDimension = $this->labelCenter1->getDimension(); + $this->labelLeft->setOffset($labelDimension[1]); + $this->labelRight->setOffset($labelDimension[1]); + } else { + $labelDimension = $this->labelLeft->getDimension(); + $this->labelLeft->setOffset($labelDimension[1] / 2); + $labelDimension = $this->labelLeft->getDimension(); + $this->labelRight->setOffset($labelDimension[1] / 2); + } $this->addLabel($this->labelLeft); $this->addLabel($this->labelCenter1); diff --git a/include/class/barcode/class/BCGupce.barcode.php b/plugins/barcode/class/BCGupce.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGupce.barcode.php rename to plugins/barcode/class/BCGupce.barcode.php diff --git a/include/class/barcode/class/BCGupcext2.barcode.php b/plugins/barcode/class/BCGupcext2.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGupcext2.barcode.php rename to plugins/barcode/class/BCGupcext2.barcode.php diff --git a/include/class/barcode/class/BCGupcext5.barcode.php b/plugins/barcode/class/BCGupcext5.barcode.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/BCGupcext5.barcode.php rename to plugins/barcode/class/BCGupcext5.barcode.php diff --git a/include/class/barcode/class/JoinDraw.php b/plugins/barcode/class/JoinDraw.php old mode 100644 new mode 100755 similarity index 98% rename from include/class/barcode/class/JoinDraw.php rename to plugins/barcode/class/JoinDraw.php index 2fca6b7..2d3c35f --- a/include/class/barcode/class/JoinDraw.php +++ b/plugins/barcode/class/JoinDraw.php @@ -3,7 +3,7 @@ *-------------------------------------------------------------------- * * Enable to join 2 BCGDrawing or 2 image object to make only one image. - * There are some options for alignement. + * There are some options for alignment. * *-------------------------------------------------------------------- * Copyright (C) Jean-Sebastien Goupil @@ -39,7 +39,7 @@ class JoinDraw { * @param mixed $image1 * @param mixed $image2 * @param BCGColor $background - * @param int space + * @param int $space * @param int $position * @param int $alignment */ diff --git a/include/class/barcode/class/drawer/BCGDraw.php b/plugins/barcode/class/drawer/BCGDraw.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/drawer/BCGDraw.php rename to plugins/barcode/class/drawer/BCGDraw.php diff --git a/include/class/barcode/class/drawer/BCGDrawJPG.php b/plugins/barcode/class/drawer/BCGDrawJPG.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/drawer/BCGDrawJPG.php rename to plugins/barcode/class/drawer/BCGDrawJPG.php diff --git a/include/class/barcode/class/drawer/BCGDrawPNG.php b/plugins/barcode/class/drawer/BCGDrawPNG.php old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/drawer/BCGDrawPNG.php rename to plugins/barcode/class/drawer/BCGDrawPNG.php diff --git a/include/class/barcode/class/font/Arial.ttf b/plugins/barcode/font/Arial.ttf old mode 100644 new mode 100755 similarity index 100% rename from include/class/barcode/class/font/Arial.ttf rename to plugins/barcode/font/Arial.ttf diff --git a/plugins/barcode/index.php b/plugins/barcode/index.php new file mode 100755 index 0000000..c64d810 --- /dev/null +++ b/plugins/barcode/index.php @@ -0,0 +1,59 @@ +setScale(2); +$code->setThickness(30); +$code->setForegroundColor($color_black); +$code->setBackgroundColor($color_white); +$code->setFont($font); +$code->setStart(NULL); +$code->setTilde(true); +$code->parse($text); + +// Drawing Part +$drawing = new BCGDrawing('', $color_white); +$drawing->setBarcode($code); +$drawing->draw(); + +header('Content-Type: image/png'); + +$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); +?> + + + + + + \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel.php b/plugins/excel_reader/Classes/PHPExcel.php new file mode 100755 index 0000000..f0b39e7 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel.php @@ -0,0 +1,823 @@ +_workSheetCollection = array(); + $this->_workSheetCollection[] = new PHPExcel_Worksheet($this); + $this->_activeSheetIndex = 0; + + // Create document properties + $this->_properties = new PHPExcel_DocumentProperties(); + + // Create document security + $this->_security = new PHPExcel_DocumentSecurity(); + + // Set named ranges + $this->_namedRanges = array(); + + // Create the cellXf supervisor + $this->_cellXfSupervisor = new PHPExcel_Style(true); + $this->_cellXfSupervisor->bindParent($this); + + // Create the default style + $this->addCellXf(new PHPExcel_Style); + $this->addCellStyleXf(new PHPExcel_Style); + } + + + /** + * Disconnect all worksheets from this PHPExcel workbook object, + * typically so that the PHPExcel object can be unset + * + */ + public function disconnectWorksheets() { + foreach($this->_workSheetCollection as $k => &$worksheet) { + $worksheet->disconnectCells(); + $this->_workSheetCollection[$k] = null; + } + unset($worksheet); + $this->_workSheetCollection = array(); + } + + /** + * Get properties + * + * @return PHPExcel_DocumentProperties + */ + public function getProperties() + { + return $this->_properties; + } + + /** + * Set properties + * + * @param PHPExcel_DocumentProperties $pValue + */ + public function setProperties(PHPExcel_DocumentProperties $pValue) + { + $this->_properties = $pValue; + } + + /** + * Get security + * + * @return PHPExcel_DocumentSecurity + */ + public function getSecurity() + { + return $this->_security; + } + + /** + * Set security + * + * @param PHPExcel_DocumentSecurity $pValue + */ + public function setSecurity(PHPExcel_DocumentSecurity $pValue) + { + $this->_security = $pValue; + } + + /** + * Get active sheet + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_workSheetCollection[$this->_activeSheetIndex]; + } + + /** + * Create sheet and add it to this workbook + * + * @param int|null $iSheetIndex Index where sheet should go (0,1,..., or null for last) + * @return PHPExcel_Worksheet + * @throws Exception + */ + public function createSheet($iSheetIndex = NULL) + { + $newSheet = new PHPExcel_Worksheet($this); + $this->addSheet($newSheet, $iSheetIndex); + return $newSheet; + } + + /** + * Chech if a sheet with a specified name already exists + * + * @param string $pSheetName Name of the worksheet to check + * @return boolean + */ + public function sheetNameExists($pSheetName) + { + return ($this->getSheetByName($pSheetName) !== NULL); + } + + /** + * Add sheet + * + * @param PHPExcel_Worksheet $pSheet + * @param int|null $iSheetIndex Index where sheet should go (0,1,..., or null for last) + * @return PHPExcel_Worksheet + * @throws Exception + */ + public function addSheet(PHPExcel_Worksheet $pSheet, $iSheetIndex = NULL) + { + if ($this->sheetNameExists($pSheet->getTitle())) { + throw new Exception("Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename this worksheet first."); + } + + if($iSheetIndex === NULL) { + if ($this->_activeSheetIndex < 0) { + $this->_activeSheetIndex = 0; + } + $this->_workSheetCollection[] = $pSheet; + } else { + // Insert the sheet at the requested index + array_splice( + $this->_workSheetCollection, + $iSheetIndex, + 0, + array($pSheet) + ); + + // Adjust active sheet index if necessary + if ($this->_activeSheetIndex >= $iSheetIndex) { + ++$this->_activeSheetIndex; + } + } + return $pSheet; + } + + /** + * Remove sheet by index + * + * @param int $pIndex Active sheet index + * @throws Exception + */ + public function removeSheetByIndex($pIndex = 0) + { + if ($pIndex > count($this->_workSheetCollection) - 1) { + throw new Exception("Sheet index is out of bounds."); + } else { + array_splice($this->_workSheetCollection, $pIndex, 1); + } + // Adjust active sheet index if necessary + if (($this->_activeSheetIndex >= $pIndex) && + ($pIndex > count($this->_workSheetCollection) - 1)) { + --$this->_activeSheetIndex; + } + + } + + /** + * Get sheet by index + * + * @param int $pIndex Sheet index + * @return PHPExcel_Worksheet + * @throws Exception + */ + public function getSheet($pIndex = 0) + { + if ($pIndex > count($this->_workSheetCollection) - 1) { + throw new Exception("Sheet index is out of bounds."); + } else { + return $this->_workSheetCollection[$pIndex]; + } + } + + /** + * Get all sheets + * + * @return PHPExcel_Worksheet[] + */ + public function getAllSheets() + { + return $this->_workSheetCollection; + } + + /** + * Get sheet by name + * + * @param string $pName Sheet name + * @return PHPExcel_Worksheet + * @throws Exception + */ + public function getSheetByName($pName = '') + { + $worksheetCount = count($this->_workSheetCollection); + for ($i = 0; $i < $worksheetCount; ++$i) { + if ($this->_workSheetCollection[$i]->getTitle() == $pName) { + return $this->_workSheetCollection[$i]; + } + } + + return null; + } + + /** + * Get index for sheet + * + * @param PHPExcel_Worksheet $pSheet + * @return Sheet index + * @throws Exception + */ + public function getIndex(PHPExcel_Worksheet $pSheet) + { + foreach ($this->_workSheetCollection as $key => $value) { + if ($value->getHashCode() == $pSheet->getHashCode()) { + return $key; + } + } + } + + /** + * Set index for sheet by sheet name. + * + * @param string $sheetName Sheet name to modify index for + * @param int $newIndex New index for the sheet + * @return New sheet index + * @throws Exception + */ + public function setIndexByName($sheetName, $newIndex) + { + $oldIndex = $this->getIndex($this->getSheetByName($sheetName)); + $pSheet = array_splice( + $this->_workSheetCollection, + $oldIndex, + 1 + ); + array_splice( + $this->_workSheetCollection, + $newIndex, + 0, + $pSheet + ); + return $newIndex; + } + + /** + * Get sheet count + * + * @return int + */ + public function getSheetCount() + { + return count($this->_workSheetCollection); + } + + /** + * Get active sheet index + * + * @return int Active sheet index + */ + public function getActiveSheetIndex() + { + return $this->_activeSheetIndex; + } + + /** + * Set active sheet index + * + * @param int $pIndex Active sheet index + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setActiveSheetIndex($pIndex = 0) + { + if ($pIndex > count($this->_workSheetCollection) - 1) { + throw new Exception("Active sheet index is out of bounds."); + } else { + $this->_activeSheetIndex = $pIndex; + } + return $this->getActiveSheet(); + } + + /** + * Set active sheet index by name + * + * @param string $pValue Sheet title + * @return PHPExcel_Worksheet + * @throws Exception + */ + public function setActiveSheetIndexByName($pValue = '') + { + if (($worksheet = $this->getSheetByName($pValue)) instanceof PHPExcel_Worksheet) { + $this->setActiveSheetIndex($this->getIndex($worksheet)); + return $worksheet; + } + + throw new Exception('Workbook does not contain sheet:' . $pValue); + } + + /** + * Get sheet names + * + * @return string[] + */ + public function getSheetNames() + { + $returnValue = array(); + $worksheetCount = $this->getSheetCount(); + for ($i = 0; $i < $worksheetCount; ++$i) { + $returnValue[] = $this->getSheet($i)->getTitle(); + } + + return $returnValue; + } + + /** + * Add external sheet + * + * @param PHPExcel_Worksheet $pSheet External sheet to add + * @param int|null $iSheetIndex Index where sheet should go (0,1,..., or null for last) + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function addExternalSheet(PHPExcel_Worksheet $pSheet, $iSheetIndex = null) { + if ($this->sheetNameExists($pSheet->getTitle())) { + throw new Exception("Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename the external sheet first."); + } + + // count how many cellXfs there are in this workbook currently, we will need this below + $countCellXfs = count($this->_cellXfCollection); + + // copy all the shared cellXfs from the external workbook and append them to the current + foreach ($pSheet->getParent()->getCellXfCollection() as $cellXf) { + $this->addCellXf(clone $cellXf); + } + + // move sheet to this workbook + $pSheet->rebindParent($this); + + // update the cellXfs + foreach ($pSheet->getCellCollection(false) as $cellID) { + $cell = $pSheet->getCell($cellID); + $cell->setXfIndex( $cell->getXfIndex() + $countCellXfs ); + } + + return $this->addSheet($pSheet, $iSheetIndex); + } + + /** + * Get named ranges + * + * @return PHPExcel_NamedRange[] + */ + public function getNamedRanges() { + return $this->_namedRanges; + } + + /** + * Add named range + * + * @param PHPExcel_NamedRange $namedRange + * @return PHPExcel + */ + public function addNamedRange(PHPExcel_NamedRange $namedRange) { + if ($namedRange->getScope() == null) { + // global scope + $this->_namedRanges[$namedRange->getName()] = $namedRange; + } else { + // local scope + $this->_namedRanges[$namedRange->getScope()->getTitle().'!'.$namedRange->getName()] = $namedRange; + } + return true; + } + + /** + * Get named range + * + * @param string $namedRange + * @param PHPExcel_Worksheet|null $pSheet Scope. Use null for global scope + * @return PHPExcel_NamedRange|null + */ + public function getNamedRange($namedRange, PHPExcel_Worksheet $pSheet = null) { + $returnValue = null; + + if ($namedRange != '' && ($namedRange !== NULL)) { + // first look for global defined name + if (isset($this->_namedRanges[$namedRange])) { + $returnValue = $this->_namedRanges[$namedRange]; + } + + // then look for local defined name (has priority over global defined name if both names exist) + if (($pSheet !== NULL) && isset($this->_namedRanges[$pSheet->getTitle() . '!' . $namedRange])) { + $returnValue = $this->_namedRanges[$pSheet->getTitle() . '!' . $namedRange]; + } + } + + return $returnValue; + } + + /** + * Remove named range + * + * @param string $namedRange + * @param PHPExcel_Worksheet|null $pSheet Scope: use null for global scope. + * @return PHPExcel + */ + public function removeNamedRange($namedRange, PHPExcel_Worksheet $pSheet = null) { + if ($pSheet === NULL) { + if (isset($this->_namedRanges[$namedRange])) { + unset($this->_namedRanges[$namedRange]); + } + } else { + if (isset($this->_namedRanges[$pSheet->getTitle() . '!' . $namedRange])) { + unset($this->_namedRanges[$pSheet->getTitle() . '!' . $namedRange]); + } + } + return $this; + } + + /** + * Get worksheet iterator + * + * @return PHPExcel_WorksheetIterator + */ + public function getWorksheetIterator() { + return new PHPExcel_WorksheetIterator($this); + } + + /** + * Copy workbook (!= clone!) + * + * @return PHPExcel + */ + public function copy() { + $copied = clone $this; + + $worksheetCount = count($this->_workSheetCollection); + for ($i = 0; $i < $worksheetCount; ++$i) { + $this->_workSheetCollection[$i] = $this->_workSheetCollection[$i]->copy(); + $this->_workSheetCollection[$i]->rebindParent($this); + } + + return $copied; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + foreach($this as $key => $val) { + if (is_object($val) || (is_array($val))) { + $this->{$key} = unserialize(serialize($val)); + } + } + } + + /** + * Get the workbook collection of cellXfs + * + * @return PHPExcel_Style[] + */ + public function getCellXfCollection() + { + return $this->_cellXfCollection; + } + + /** + * Get cellXf by index + * + * @param int $pIndex + * @return PHPExcel_Style + */ + public function getCellXfByIndex($pIndex = 0) + { + return $this->_cellXfCollection[$pIndex]; + } + + /** + * Get cellXf by hash code + * + * @param string $pValue + * @return PHPExcel_Style|false + */ + public function getCellXfByHashCode($pValue = '') + { + foreach ($this->_cellXfCollection as $cellXf) { + if ($cellXf->getHashCode() == $pValue) { + return $cellXf; + } + } + return false; + } + + /** + * Get default style + * + * @return PHPExcel_Style + * @throws Exception + */ + public function getDefaultStyle() + { + if (isset($this->_cellXfCollection[0])) { + return $this->_cellXfCollection[0]; + } + throw new Exception('No default style found for this workbook'); + } + + /** + * Add a cellXf to the workbook + * + * @param PHPExcel_Style $style + */ + public function addCellXf(PHPExcel_Style $style) + { + $this->_cellXfCollection[] = $style; + $style->setIndex(count($this->_cellXfCollection) - 1); + } + + /** + * Remove cellXf by index. It is ensured that all cells get their xf index updated. + * + * @param int $pIndex Index to cellXf + * @throws Exception + */ + public function removeCellXfByIndex($pIndex = 0) + { + if ($pIndex > count($this->_cellXfCollection) - 1) { + throw new Exception("CellXf index is out of bounds."); + } else { + // first remove the cellXf + array_splice($this->_cellXfCollection, $pIndex, 1); + + // then update cellXf indexes for cells + foreach ($this->_workSheetCollection as $worksheet) { + foreach ($worksheet->getCellCollection(false) as $cellID) { + $cell = $worksheet->getCell($cellID); + $xfIndex = $cell->getXfIndex(); + if ($xfIndex > $pIndex ) { + // decrease xf index by 1 + $cell->setXfIndex($xfIndex - 1); + } else if ($xfIndex == $pIndex) { + // set to default xf index 0 + $cell->setXfIndex(0); + } + } + } + } + } + + /** + * Get the cellXf supervisor + * + * @return PHPExcel_Style + */ + public function getCellXfSupervisor() + { + return $this->_cellXfSupervisor; + } + + /** + * Get the workbook collection of cellStyleXfs + * + * @return PHPExcel_Style[] + */ + public function getCellStyleXfCollection() + { + return $this->_cellStyleXfCollection; + } + + /** + * Get cellStyleXf by index + * + * @param int $pIndex + * @return PHPExcel_Style + */ + public function getCellStyleXfByIndex($pIndex = 0) + { + return $this->_cellStyleXfCollection[$pIndex]; + } + + /** + * Get cellStyleXf by hash code + * + * @param string $pValue + * @return PHPExcel_Style|false + */ + public function getCellStyleXfByHashCode($pValue = '') + { + foreach ($this->_cellXfStyleCollection as $cellStyleXf) { + if ($cellStyleXf->getHashCode() == $pValue) { + return $cellStyleXf; + } + } + return false; + } + + /** + * Add a cellStyleXf to the workbook + * + * @param PHPExcel_Style $pStyle + */ + public function addCellStyleXf(PHPExcel_Style $pStyle) + { + $this->_cellStyleXfCollection[] = $pStyle; + $pStyle->setIndex(count($this->_cellStyleXfCollection) - 1); + } + + /** + * Remove cellStyleXf by index + * + * @param int $pIndex + * @throws Exception + */ + public function removeCellStyleXfByIndex($pIndex = 0) + { + if ($pIndex > count($this->_cellStyleXfCollection) - 1) { + throw new Exception("CellStyleXf index is out of bounds."); + } else { + array_splice($this->_cellStyleXfCollection, $pIndex, 1); + } + } + + /** + * Eliminate all unneeded cellXf and afterwards update the xfIndex for all cells + * and columns in the workbook + */ + public function garbageCollect() + { + // how many references are there to each cellXf ? + $countReferencesCellXf = array(); + foreach ($this->_cellXfCollection as $index => $cellXf) { + $countReferencesCellXf[$index] = 0; + } + + foreach ($this->getWorksheetIterator() as $sheet) { + + // from cells + foreach ($sheet->getCellCollection(false) as $cellID) { + $cell = $sheet->getCell($cellID); + ++$countReferencesCellXf[$cell->getXfIndex()]; + } + + // from row dimensions + foreach ($sheet->getRowDimensions() as $rowDimension) { + if ($rowDimension->getXfIndex() !== null) { + ++$countReferencesCellXf[$rowDimension->getXfIndex()]; + } + } + + // from column dimensions + foreach ($sheet->getColumnDimensions() as $columnDimension) { + ++$countReferencesCellXf[$columnDimension->getXfIndex()]; + } + } + + // remove cellXfs without references and create mapping so we can update xfIndex + // for all cells and columns + $countNeededCellXfs = 0; + foreach ($this->_cellXfCollection as $index => $cellXf) { + if ($countReferencesCellXf[$index] > 0 || $index == 0) { // we must never remove the first cellXf + ++$countNeededCellXfs; + } else { + unset($this->_cellXfCollection[$index]); + } + $map[$index] = $countNeededCellXfs - 1; + } + $this->_cellXfCollection = array_values($this->_cellXfCollection); + + // update the index for all cellXfs + foreach ($this->_cellXfCollection as $i => $cellXf) { + $cellXf->setIndex($i); + } + + // make sure there is always at least one cellXf (there should be) + if (empty($this->_cellXfCollection)) { + $this->_cellXfCollection[] = new PHPExcel_Style(); + } + + // update the xfIndex for all cells, row dimensions, column dimensions + foreach ($this->getWorksheetIterator() as $sheet) { + + // for all cells + foreach ($sheet->getCellCollection(false) as $cellID) { + $cell = $sheet->getCell($cellID); + $cell->setXfIndex( $map[$cell->getXfIndex()] ); + } + + // for all row dimensions + foreach ($sheet->getRowDimensions() as $rowDimension) { + if ($rowDimension->getXfIndex() !== null) { + $rowDimension->setXfIndex( $map[$rowDimension->getXfIndex()] ); + } + } + + // for all column dimensions + foreach ($sheet->getColumnDimensions() as $columnDimension) { + $columnDimension->setXfIndex( $map[$columnDimension->getXfIndex()] ); + } + } + + // also do garbage collection for all the sheets + foreach ($this->getWorksheetIterator() as $sheet) { + $sheet->garbageCollect(); + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Autoloader.php b/plugins/excel_reader/Classes/PHPExcel/Autoloader.php new file mode 100755 index 0000000..1519327 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Autoloader.php @@ -0,0 +1,85 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + if (!apc_store($this->_cachePrefix.$this->_currentObjectID.'.cache',serialize($this->_currentObject),$this->_cacheTime)) { + $this->__destruct(); + throw new Exception('Failed to store cell '.$this->_currentObjectID.' in APC'); + } + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @access public + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + $this->_cellCache[$pCoord] = true; + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Is a value set in the current PHPExcel_CachedObjectStorage_ICache for an indexed cell? + * + * @access public + * @param string $pCoord Coordinate address of the cell to check + * @return void + * @return boolean + */ + public function isDataSet($pCoord) { + // Check if the requested entry is the current object, or exists in the cache + if (parent::isDataSet($pCoord)) { + if ($this->_currentObjectID == $pCoord) { + return true; + } + // Check if the requested entry still exists in apc + $success = apc_fetch($this->_cachePrefix.$pCoord.'.cache'); + if ($success === false) { + // Entry no longer exists in APC, so clear it from the cache array + parent::deleteCacheData($pCoord); + throw new Exception('Cell entry '.$pCoord.' no longer exists in APC'); + } + return true; + } + return false; + } // function isDataSet() + + + /** + * Get cell at a specific coordinate + * + * @access public + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + // Check if the entry that has been requested actually exists + if (parent::isDataSet($pCoord)) { + $obj = apc_fetch($this->_cachePrefix.$pCoord.'.cache'); + if ($obj === false) { + // Entry no longer exists in APC, so clear it from the cache array + parent::deleteCacheData($pCoord); + throw new Exception('Cell entry '.$pCoord.' no longer exists in APC'); + } + } else { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + $this->_currentObject = unserialize($obj); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Delete a cell in cache identified by coordinate address + * + * @access public + * @param string $pCoord Coordinate address of the cell to delete + * @throws Exception + */ + public function deleteCacheData($pCoord) { + // Delete the entry from APC + apc_delete($this->_cachePrefix.$pCoord.'.cache'); + + // Delete the entry from our cell address array + parent::deleteCacheData($pCoord); + } // function deleteCacheData() + + + /** + * Clone the cell collection + * + * @access public + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + parent::copyCellCollection($parent); + // Get a new id for the new file name + $baseUnique = $this->_getUniqueID(); + $newCachePrefix = substr(md5($baseUnique),0,8).'.'; + $cacheList = $this->getCellList(); + foreach($cacheList as $cellID) { + if ($cellID != $this->_currentObjectID) { + $obj = apc_fetch($this->_cachePrefix.$cellID.'.cache'); + if ($obj === false) { + // Entry no longer exists in APC, so clear it from the cache array + parent::deleteCacheData($cellID); + throw new Exception('Cell entry '.$cellID.' no longer exists in APC'); + } + if (!apc_store($newCachePrefix.$cellID.'.cache',$obj,$this->_cacheTime)) { + $this->__destruct(); + throw new Exception('Failed to store cell '.$cellID.' in APC'); + } + } + } + $this->_cachePrefix = $newCachePrefix; + } // function copyCellCollection() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if ($this->_currentObject !== NULL) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + + // Flush the APC cache + $this->__destruct(); + + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + } // function unsetWorksheetCells() + + + /** + * Initialise this new cell collection + * + * @param PHPExcel_Worksheet $parent The worksheet for this cell collection + * @param array of mixed $arguments Additional initialisation arguments + */ + public function __construct(PHPExcel_Worksheet $parent, $arguments) { + $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; + + if ($this->_cachePrefix === NULL) { + $baseUnique = $this->_getUniqueID(); + $this->_cachePrefix = substr(md5($baseUnique),0,8).'.'; + $this->_cacheTime = $cacheTime; + + parent::__construct($parent); + } + } // function __construct() + + + /** + * Destroy this cell collection + */ + public function __destruct() { + $cacheList = $this->getCellList(); + foreach($cacheList as $cellID) { + apc_delete($this->_cachePrefix.$cellID.'.cache'); + } + } // function __destruct() + + + /** + * Identify whether the caching method is currently available + * Some methods are dependent on the availability of certain extensions being enabled in the PHP build + * + * @return boolean + */ + public static function cacheMethodIsAvailable() { + if (!function_exists('apc_store')) { + return false; + } + if (apc_sma_info() === false) { + return false; + } + + return true; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/CacheBase.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/CacheBase.php new file mode 100755 index 0000000..d2eea08 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/CacheBase.php @@ -0,0 +1,252 @@ +_parent = $parent; + } // function __construct() + + + /** + * Is a value set in the current PHPExcel_CachedObjectStorage_ICache for an indexed cell? + * + * @param string $pCoord Coordinate address of the cell to check + * @return boolean + */ + public function isDataSet($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return true; + } + // Check if the requested entry exists in the cache + return isset($this->_cellCache[$pCoord]); + } // function isDataSet() + + + /** + * Add or Update a cell in cache + * + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function updateCacheData(PHPExcel_Cell $cell) { + return $this->addCacheData($cell->getCoordinate(),$cell); + } // function updateCacheData() + + + /** + * Delete a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to delete + * @throws Exception + */ + public function deleteCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + $this->_currentObject->detach(); + $this->_currentObjectID = $this->_currentObject = null; + } + + if (is_object($this->_cellCache[$pCoord])) { + $this->_cellCache[$pCoord]->detach(); + unset($this->_cellCache[$pCoord]); + } + $this->_currentCellIsDirty = false; + } // function deleteCacheData() + + + /** + * Get a list of all cell addresses currently held in cache + * + * @return array of string + */ + public function getCellList() { + return array_keys($this->_cellCache); + } // function getCellList() + + + /** + * Sort the list of all cell addresses currently held in cache by row and column + * + * @return void + */ + public function getSortedCellList() { + $sortKeys = array(); + foreach ($this->getCellList() as $coord) { + list($column,$row) = sscanf($coord,'%[A-Z]%d'); + $sortKeys[sprintf('%09d%3s',$row,$column)] = $coord; + } + ksort($sortKeys); + + return array_values($sortKeys); + } // function sortCellList() + + + + /** + * Get highest worksheet column and highest row that have cell records + * + * @return array Highest column name and highest row number + */ + public function getHighestRowAndColumn() + { + // Lookup highest column and highest row + $col = array('A' => '1A'); + $row = array(1); + foreach ($this->getCellList() as $coord) { + list($c,$r) = sscanf($coord,'%[A-Z]%d'); + $row[$r] = $r; + $col[$c] = strlen($c).$c; + } + if (!empty($row)) { + // Determine highest column and row + $highestRow = max($row); + $highestColumn = substr(max($col),1); + } + + return array( 'row' => $highestRow, + 'column' => $highestColumn + ); + } + + + /** + * Get highest worksheet column + * + * @return string Highest column name + */ + public function getHighestColumn() + { + $colRow = $this->getHighestRowAndColumn(); + return $colRow['column']; + } + + /** + * Get highest worksheet row + * + * @return int Highest row number + */ + public function getHighestRow() + { + $colRow = $this->getHighestRowAndColumn(); + return $colRow['row']; + } + + + /** + * Generate a unique ID for cache referencing + * + * @return string Unique Reference + */ + protected function _getUniqueID() { + if (function_exists('posix_getpid')) { + $baseUnique = posix_getpid(); + } else { + $baseUnique = mt_rand(); + } + return uniqid($baseUnique,true); + } + + /** + * Clone the cell collection + * + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + $this->_parent = $parent; + if (($this->_currentObject !== NULL) && (is_object($this->_currentObject))) { + $this->_currentObject->attach($parent); + } + } // function copyCellCollection() + + + /** + * Identify whether the caching method is currently available + * Some methods are dependent on the availability of certain extensions being enabled in the PHP build + * + * @return boolean + */ + public static function cacheMethodIsAvailable() { + return true; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php new file mode 100755 index 0000000..805dc06 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php @@ -0,0 +1,205 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + fseek($this->_fileHandle,0,SEEK_END); + $offset = ftell($this->_fileHandle); + fwrite($this->_fileHandle, serialize($this->_currentObject)); + $this->_cellCache[$this->_currentObjectID] = array('ptr' => $offset, + 'sz' => ftell($this->_fileHandle) - $offset + ); + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + // Check if the entry that has been requested actually exists + if (!isset($this->_cellCache[$pCoord])) { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + fseek($this->_fileHandle,$this->_cellCache[$pCoord]['ptr']); + $this->_currentObject = unserialize(fread($this->_fileHandle,$this->_cellCache[$pCoord]['sz'])); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Clone the cell collection + * + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + parent::copyCellCollection($parent); + // Get a new id for the new file name + $baseUnique = $this->_getUniqueID(); + $newFileName = $this->_cacheDirectory.'/PHPExcel.'.$baseUnique.'.cache'; + // Copy the existing cell cache file + copy ($this->_fileName,$newFileName); + $this->_fileName = $newFileName; + // Open the copied cell cache file + $this->_fileHandle = fopen($this->_fileName,'a+'); + } // function copyCellCollection() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + + // Close down the temporary cache file + $this->__destruct(); + } // function unsetWorksheetCells() + + + /** + * Initialise this new cell collection + * + * @param PHPExcel_Worksheet $parent The worksheet for this cell collection + * @param array of mixed $arguments Additional initialisation arguments + */ + public function __construct(PHPExcel_Worksheet $parent, $arguments) { + $this->_cacheDirectory = ((isset($arguments['dir'])) && ($arguments['dir'] !== NULL)) + ? $arguments['dir'] + : PHPExcel_Shared_File::sys_get_temp_dir(); + + parent::__construct($parent); + if (is_null($this->_fileHandle)) { + $baseUnique = $this->_getUniqueID(); + $this->_fileName = $this->_cacheDirectory.'/PHPExcel.'.$baseUnique.'.cache'; + $this->_fileHandle = fopen($this->_fileName,'a+'); + } + } // function __construct() + + + /** + * Destroy this cell collection + */ + public function __destruct() { + if (!is_null($this->_fileHandle)) { + fclose($this->_fileHandle); + unlink($this->_fileName); + } + $this->_fileHandle = null; + } // function __destruct() + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/ICache.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/ICache.php new file mode 100755 index 0000000..56f621a --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/ICache.php @@ -0,0 +1,112 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + $this->_cellCache[$this->_currentObjectID] = igbinary_serialize($this->_currentObject); + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + // Check if the entry that has been requested actually exists + if (!isset($this->_cellCache[$pCoord])) { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + $this->_currentObject = igbinary_unserialize($this->_cellCache[$pCoord]); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + } // function unsetWorksheetCells() + + + /** + * Identify whether the caching method is currently available + * Some methods are dependent on the availability of certain extensions being enabled in the PHP build + * + * @return boolean + */ + public static function cacheMethodIsAvailable() { + if (!function_exists('igbinary_serialize')) { + return false; + } + + return true; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Memcache.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Memcache.php new file mode 100755 index 0000000..23d6957 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Memcache.php @@ -0,0 +1,298 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + $obj = serialize($this->_currentObject); + if (!$this->_memcache->replace($this->_cachePrefix.$this->_currentObjectID.'.cache',$obj,NULL,$this->_cacheTime)) { + if (!$this->_memcache->add($this->_cachePrefix.$this->_currentObjectID.'.cache',$obj,NULL,$this->_cacheTime)) { + $this->__destruct(); + throw new Exception('Failed to store cell '.$this->_currentObjectID.' in MemCache'); + } + } + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + $this->_cellCache[$pCoord] = true; + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Is a value set in the current PHPExcel_CachedObjectStorage_ICache for an indexed cell? + * + * @param string $pCoord Coordinate address of the cell to check + * @return void + * @return boolean + */ + public function isDataSet($pCoord) { + // Check if the requested entry is the current object, or exists in the cache + if (parent::isDataSet($pCoord)) { + if ($this->_currentObjectID == $pCoord) { + return true; + } + // Check if the requested entry still exists in Memcache + $success = $this->_memcache->get($this->_cachePrefix.$pCoord.'.cache'); + if ($success === false) { + // Entry no longer exists in Memcache, so clear it from the cache array + parent::deleteCacheData($pCoord); + throw new Exception('Cell entry '.$pCoord.' no longer exists in MemCache'); + } + return true; + } + return false; + } // function isDataSet() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + // Check if the entry that has been requested actually exists + if (parent::isDataSet($pCoord)) { + $obj = $this->_memcache->get($this->_cachePrefix.$pCoord.'.cache'); + if ($obj === false) { + // Entry no longer exists in Memcache, so clear it from the cache array + parent::deleteCacheData($pCoord); + throw new Exception('Cell entry '.$pCoord.' no longer exists in MemCache'); + } + } else { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + $this->_currentObject = unserialize($obj); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Delete a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to delete + * @throws Exception + */ + public function deleteCacheData($pCoord) { + // Delete the entry from Memcache + $this->_memcache->delete($this->_cachePrefix.$pCoord.'.cache'); + + // Delete the entry from our cell address array + parent::deleteCacheData($pCoord); + } // function deleteCacheData() + + + /** + * Clone the cell collection + * + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + parent::copyCellCollection($parent); + // Get a new id for the new file name + $baseUnique = $this->_getUniqueID(); + $newCachePrefix = substr(md5($baseUnique),0,8).'.'; + $cacheList = $this->getCellList(); + foreach($cacheList as $cellID) { + if ($cellID != $this->_currentObjectID) { + $obj = $this->_memcache->get($this->_cachePrefix.$cellID.'.cache'); + if ($obj === false) { + // Entry no longer exists in Memcache, so clear it from the cache array + parent::deleteCacheData($cellID); + throw new Exception('Cell entry '.$cellID.' no longer exists in MemCache'); + } + if (!$this->_memcache->add($newCachePrefix.$cellID.'.cache',$obj,NULL,$this->_cacheTime)) { + $this->__destruct(); + throw new Exception('Failed to store cell '.$cellID.' in MemCache'); + } + } + } + $this->_cachePrefix = $newCachePrefix; + } // function copyCellCollection() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + + // Flush the Memcache cache + $this->__destruct(); + + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + } // function unsetWorksheetCells() + + + /** + * Initialise this new cell collection + * + * @param PHPExcel_Worksheet $parent The worksheet for this cell collection + * @param array of mixed $arguments Additional initialisation arguments + */ + public function __construct(PHPExcel_Worksheet $parent, $arguments) { + $memcacheServer = (isset($arguments['memcacheServer'])) ? $arguments['memcacheServer'] : 'localhost'; + $memcachePort = (isset($arguments['memcachePort'])) ? $arguments['memcachePort'] : 11211; + $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; + + if (is_null($this->_cachePrefix)) { + $baseUnique = $this->_getUniqueID(); + $this->_cachePrefix = substr(md5($baseUnique),0,8).'.'; + + // Set a new Memcache object and connect to the Memcache server + $this->_memcache = new Memcache(); + if (!$this->_memcache->addServer($memcacheServer, $memcachePort, false, 50, 5, 5, true, array($this, 'failureCallback'))) { + throw new Exception('Could not connect to MemCache server at '.$memcacheServer.':'.$memcachePort); + } + $this->_cacheTime = $cacheTime; + + parent::__construct($parent); + } + } // function __construct() + + + /** + * Memcache error handler + * + * @param string $host Memcache server + * @param integer $port Memcache port + * @throws Exception + */ + public function failureCallback($host, $port) { + throw new Exception('memcache '.$host.':'.$port.' failed'); + } + + + /** + * Destroy this cell collection + */ + public function __destruct() { + $cacheList = $this->getCellList(); + foreach($cacheList as $cellID) { + $this->_memcache->delete($this->_cachePrefix.$cellID.'.cache'); + } + } // function __destruct() + + /** + * Identify whether the caching method is currently available + * Some methods are dependent on the availability of certain extensions being enabled in the PHP build + * + * @return boolean + */ + public static function cacheMethodIsAvailable() { + if (!function_exists('memcache_add')) { + return false; + } + + return true; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Memory.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Memory.php new file mode 100755 index 0000000..36f42fb --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Memory.php @@ -0,0 +1,109 @@ +_cellCache[$pCoord] = $cell; + return $cell; + } // function addCacheData() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + // Check if the entry that has been requested actually exists + if (!isset($this->_cellCache[$pCoord])) { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Return requested entry + return $this->_cellCache[$pCoord]; + } // function getCacheData() + + + /** + * Clone the cell collection + * + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + parent::copyCellCollection($parent); + + $newCollection = array(); + foreach($this->_cellCache as $k => &$cell) { + $newCollection[$k] = clone $cell; + $newCollection[$k]->attach($parent); + } + + $this->_cellCache = $newCollection; + } + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + // Because cells are all stored as intact objects in memory, we need to detach each one from the parent + foreach($this->_cellCache as $k => &$cell) { + $cell->detach(); + $this->_cellCache[$k] = null; + } + unset($cell); + + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + } // function unsetWorksheetCells() + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php new file mode 100755 index 0000000..ee8e95e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php @@ -0,0 +1,123 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + $this->_cellCache[$this->_currentObjectID] = gzdeflate(serialize($this->_currentObject)); + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + // Check if the entry that has been requested actually exists + if (!isset($this->_cellCache[$pCoord])) { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + $this->_currentObject = unserialize(gzinflate($this->_cellCache[$pCoord])); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + } // function unsetWorksheetCells() + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php new file mode 100755 index 0000000..d6b09b5 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php @@ -0,0 +1,123 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + $this->_cellCache[$this->_currentObjectID] = serialize($this->_currentObject); + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + // Check if the entry that has been requested actually exists + if (!isset($this->_cellCache[$pCoord])) { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + $this->_currentObject = unserialize($this->_cellCache[$pCoord]); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + } // function unsetWorksheetCells() + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php new file mode 100755 index 0000000..8dbbe92 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php @@ -0,0 +1,192 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + fseek($this->_fileHandle,0,SEEK_END); + $offset = ftell($this->_fileHandle); + fwrite($this->_fileHandle, serialize($this->_currentObject)); + $this->_cellCache[$this->_currentObjectID] = array('ptr' => $offset, + 'sz' => ftell($this->_fileHandle) - $offset + ); + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + // Check if the entry that has been requested actually exists + if (!isset($this->_cellCache[$pCoord])) { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + fseek($this->_fileHandle,$this->_cellCache[$pCoord]['ptr']); + $this->_currentObject = unserialize(fread($this->_fileHandle,$this->_cellCache[$pCoord]['sz'])); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Clone the cell collection + * + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + parent::copyCellCollection($parent); + // Open a new stream for the cell cache data + $newFileHandle = fopen('php://temp/maxmemory:'.$this->_memoryCacheSize,'a+'); + // Copy the existing cell cache data to the new stream + fseek($this->_fileHandle,0); + while (!feof($this->_fileHandle)) { + fwrite($newFileHandle,fread($this->_fileHandle, 1024)); + } + $this->_fileHandle = $newFileHandle; + } // function copyCellCollection() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + + // Close down the php://temp file + $this->__destruct(); + } // function unsetWorksheetCells() + + + /** + * Initialise this new cell collection + * + * @param PHPExcel_Worksheet $parent The worksheet for this cell collection + * @param array of mixed $arguments Additional initialisation arguments + */ + public function __construct(PHPExcel_Worksheet $parent, $arguments) { + $this->_memoryCacheSize = (isset($arguments['memoryCacheSize'])) ? $arguments['memoryCacheSize'] : '1MB'; + + parent::__construct($parent); + if (is_null($this->_fileHandle)) { + $this->_fileHandle = fopen('php://temp/maxmemory:'.$this->_memoryCacheSize,'a+'); + } + } // function __construct() + + + /** + * Destroy this cell collection + */ + public function __destruct() { + if (!is_null($this->_fileHandle)) { + fclose($this->_fileHandle); + } + $this->_fileHandle = null; + } // function __destruct() + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/SQLite.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/SQLite.php new file mode 100755 index 0000000..e4bf469 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/SQLite.php @@ -0,0 +1,270 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + if (!$this->_DBHandle->queryExec("INSERT OR REPLACE INTO kvp_".$this->_TableName." VALUES('".$this->_currentObjectID."','".sqlite_escape_string(serialize($this->_currentObject))."')")) + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + $query = "SELECT value FROM kvp_".$this->_TableName." WHERE id='".$pCoord."'"; + $cellResultSet = $this->_DBHandle->query($query,SQLITE_ASSOC); + if ($cellResultSet === false) { + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); + } elseif ($cellResultSet->numRows() == 0) { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + + $cellResult = $cellResultSet->fetchSingle(); + $this->_currentObject = unserialize($cellResult); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Is a value set for an indexed cell? + * + * @param string $pCoord Coordinate address of the cell to check + * @return boolean + */ + public function isDataSet($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return true; + } + + // Check if the requested entry exists in the cache + $query = "SELECT id FROM kvp_".$this->_TableName." WHERE id='".$pCoord."'"; + $cellResultSet = $this->_DBHandle->query($query,SQLITE_ASSOC); + if ($cellResultSet === false) { + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); + } elseif ($cellResultSet->numRows() == 0) { + // Return null if requested entry doesn't exist in cache + return false; + } + return true; + } // function isDataSet() + + + /** + * Delete a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to delete + * @throws Exception + */ + public function deleteCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + $this->_currentObject->detach(); + $this->_currentObjectID = $this->_currentObject = null; + } + + // Check if the requested entry exists in the cache + $query = "DELETE FROM kvp_".$this->_TableName." WHERE id='".$pCoord."'"; + if (!$this->_DBHandle->queryExec($query)) + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); + + $this->_currentCellIsDirty = false; + } // function deleteCacheData() + + + /** + * Get a list of all cell addresses currently held in cache + * + * @return array of string + */ + public function getCellList() { + $query = "SELECT id FROM kvp_".$this->_TableName; + $cellIdsResult = $this->_DBHandle->unbufferedQuery($query,SQLITE_ASSOC); + if ($cellIdsResult === false) + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); + + $cellKeys = array(); + foreach($cellIdsResult as $row) { + $cellKeys[] = $row['id']; + } + + return $cellKeys; + } // function getCellList() + + + /** + * Clone the cell collection + * + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + // Get a new id for the new table name + $tableName = str_replace('.','_',$this->_getUniqueID()); + if (!$this->_DBHandle->queryExec('CREATE TABLE kvp_'.$tableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB) + AS SELECT * FROM kvp_'.$this->_TableName)) + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); + + // Copy the existing cell cache file + $this->_TableName = $tableName; + } // function copyCellCollection() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + + // Close down the temporary cache file + $this->__destruct(); + } // function unsetWorksheetCells() + + + /** + * Initialise this new cell collection + * + * @param PHPExcel_Worksheet $parent The worksheet for this cell collection + */ + public function __construct(PHPExcel_Worksheet $parent) { + parent::__construct($parent); + if (is_null($this->_DBHandle)) { + $this->_TableName = str_replace('.','_',$this->_getUniqueID()); + $_DBName = ':memory:'; + + $this->_DBHandle = new SQLiteDatabase($_DBName); + if ($this->_DBHandle === false) + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); + if (!$this->_DBHandle->queryExec('CREATE TABLE kvp_'.$this->_TableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); + } + } // function __construct() + + + /** + * Destroy this cell collection + */ + public function __destruct() { + $this->_DBHandle = null; + } // function __destruct() + + + /** + * Identify whether the caching method is currently available + * Some methods are dependent on the availability of certain extensions being enabled in the PHP build + * + * @return boolean + */ + public static function cacheMethodIsAvailable() { + if (!function_exists('sqlite_open')) { + return false; + } + + return true; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/SQLite3.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/SQLite3.php new file mode 100755 index 0000000..ead6e91 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/SQLite3.php @@ -0,0 +1,277 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + $query = $this->_DBHandle->prepare("INSERT OR REPLACE INTO kvp_".$this->_TableName." VALUES(:id,:data)"); + $query->bindValue('id',$this->_currentObjectID,SQLITE3_TEXT); + $query->bindValue('data',serialize($this->_currentObject),SQLITE3_BLOB); + $result = $query->execute(); + if ($result === false) + throw new Exception($this->_DBHandle->lastErrorMsg()); + $this->_currentCellIsDirty = false; + } + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + $query = "SELECT value FROM kvp_".$this->_TableName." WHERE id='".$pCoord."'"; + $cellResult = $this->_DBHandle->querySingle($query); + if ($cellResult === false) { + throw new Exception($this->_DBHandle->lastErrorMsg()); + } elseif (is_null($cellResult)) { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + + $this->_currentObject = unserialize($cellResult); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Is a value set for an indexed cell? + * + * @param string $pCoord Coordinate address of the cell to check + * @return boolean + */ + public function isDataSet($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return true; + } + + // Check if the requested entry exists in the cache + $query = "SELECT id FROM kvp_".$this->_TableName." WHERE id='".$pCoord."'"; + $cellResult = $this->_DBHandle->querySingle($query); + if ($cellResult === false) { + throw new Exception($this->_DBHandle->lastErrorMsg()); + } elseif (is_null($cellResult)) { + // Return null if requested entry doesn't exist in cache + return false; + } + return true; + } // function isDataSet() + + + /** + * Delete a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to delete + * @throws Exception + */ + public function deleteCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + $this->_currentObject->detach(); + $this->_currentObjectID = $this->_currentObject = null; + } + + // Check if the requested entry exists in the cache + $query = "DELETE FROM kvp_".$this->_TableName." WHERE id='".$pCoord."'"; + $result = $this->_DBHandle->exec($query); + if ($result === false) + throw new Exception($this->_DBHandle->lastErrorMsg()); + + $this->_currentCellIsDirty = false; + } // function deleteCacheData() + + + /** + * Get a list of all cell addresses currently held in cache + * + * @return array of string + */ + public function getCellList() { + $query = "SELECT id FROM kvp_".$this->_TableName; + $cellIdsResult = $this->_DBHandle->query($query); + if ($cellIdsResult === false) + throw new Exception($this->_DBHandle->lastErrorMsg()); + + $cellKeys = array(); + while ($row = $cellIdsResult->fetchArray(SQLITE3_ASSOC)) { + $cellKeys[] = $row['id']; + } + + return $cellKeys; + } // function getCellList() + + + /** + * Clone the cell collection + * + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + // Get a new id for the new table name + $tableName = str_replace('.','_',$this->_getUniqueID()); + if (!$this->_DBHandle->exec('CREATE TABLE kvp_'.$tableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB) + AS SELECT * FROM kvp_'.$this->_TableName)) + throw new Exception($this->_DBHandle->lastErrorMsg()); + + // Copy the existing cell cache file + $this->_TableName = $tableName; + } // function copyCellCollection() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + + // Close down the temporary cache file + $this->__destruct(); + } // function unsetWorksheetCells() + + + /** + * Initialise this new cell collection + * + * @param PHPExcel_Worksheet $parent The worksheet for this cell collection + */ + public function __construct(PHPExcel_Worksheet $parent) { + parent::__construct($parent); + if (is_null($this->_DBHandle)) { + $this->_TableName = str_replace('.','_',$this->_getUniqueID()); + $_DBName = ':memory:'; + + $this->_DBHandle = new SQLite3($_DBName); + if ($this->_DBHandle === false) + throw new Exception($this->_DBHandle->lastErrorMsg()); + if (!$this->_DBHandle->exec('CREATE TABLE kvp_'.$this->_TableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) + throw new Exception($this->_DBHandle->lastErrorMsg()); + } + } // function __construct() + + + /** + * Destroy this cell collection + */ + public function __destruct() { + if (!is_null($this->_DBHandle)) { + $this->_DBHandle->close(); + } + $this->_DBHandle = null; + } // function __destruct() + + + /** + * Identify whether the caching method is currently available + * Some methods are dependent on the availability of certain extensions being enabled in the PHP build + * + * @return boolean + */ + public static function cacheMethodIsAvailable() { + if (!class_exists('SQLite3',FALSE)) { + return false; + } + + return true; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Wincache.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Wincache.php new file mode 100755 index 0000000..ba8b045 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorage/Wincache.php @@ -0,0 +1,280 @@ +_currentCellIsDirty) { + $this->_currentObject->detach(); + + $obj = serialize($this->_currentObject); + if (wincache_ucache_exists($this->_cachePrefix.$this->_currentObjectID.'.cache')) { + if (!wincache_ucache_set($this->_cachePrefix.$this->_currentObjectID.'.cache', $obj, $this->_cacheTime)) { + $this->__destruct(); + throw new Exception('Failed to store cell '.$this->_currentObjectID.' in WinCache'); + } + } else { + if (!wincache_ucache_add($this->_cachePrefix.$this->_currentObjectID.'.cache', $obj, $this->_cacheTime)) { + $this->__destruct(); + throw new Exception('Failed to store cell '.$this->_currentObjectID.' in WinCache'); + } + } + $this->_currentCellIsDirty = false; + } + + $this->_currentObjectID = $this->_currentObject = null; + } // function _storeData() + + + /** + * Add or Update a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to update + * @param PHPExcel_Cell $cell Cell to update + * @return void + * @throws Exception + */ + public function addCacheData($pCoord, PHPExcel_Cell $cell) { + if (($pCoord !== $this->_currentObjectID) && ($this->_currentObjectID !== null)) { + $this->_storeData(); + } + $this->_cellCache[$pCoord] = true; + + $this->_currentObjectID = $pCoord; + $this->_currentObject = $cell; + $this->_currentCellIsDirty = true; + + return $cell; + } // function addCacheData() + + + /** + * Is a value set in the current PHPExcel_CachedObjectStorage_ICache for an indexed cell? + * + * @param string $pCoord Coordinate address of the cell to check + * @return boolean + */ + public function isDataSet($pCoord) { + // Check if the requested entry is the current object, or exists in the cache + if (parent::isDataSet($pCoord)) { + if ($this->_currentObjectID == $pCoord) { + return true; + } + // Check if the requested entry still exists in cache + $success = wincache_ucache_exists($this->_cachePrefix.$pCoord.'.cache'); + if ($success === false) { + // Entry no longer exists in Wincache, so clear it from the cache array + parent::deleteCacheData($pCoord); + throw new Exception('Cell entry '.$pCoord.' no longer exists in WinCache'); + } + return true; + } + return false; + } // function isDataSet() + + + /** + * Get cell at a specific coordinate + * + * @param string $pCoord Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found, or null if not found + */ + public function getCacheData($pCoord) { + if ($pCoord === $this->_currentObjectID) { + return $this->_currentObject; + } + $this->_storeData(); + + // Check if the entry that has been requested actually exists + $obj = null; + if (parent::isDataSet($pCoord)) { + $success = false; + $obj = wincache_ucache_get($this->_cachePrefix.$pCoord.'.cache', $success); + if ($success === false) { + // Entry no longer exists in WinCache, so clear it from the cache array + parent::deleteCacheData($pCoord); + throw new Exception('Cell entry '.$pCoord.' no longer exists in WinCache'); + } + } else { + // Return null if requested entry doesn't exist in cache + return null; + } + + // Set current entry to the requested entry + $this->_currentObjectID = $pCoord; + $this->_currentObject = unserialize($obj); + // Re-attach the parent worksheet + $this->_currentObject->attach($this->_parent); + + // Return requested entry + return $this->_currentObject; + } // function getCacheData() + + + /** + * Delete a cell in cache identified by coordinate address + * + * @param string $pCoord Coordinate address of the cell to delete + * @throws Exception + */ + public function deleteCacheData($pCoord) { + // Delete the entry from Wincache + wincache_ucache_delete($this->_cachePrefix.$pCoord.'.cache'); + + // Delete the entry from our cell address array + parent::deleteCacheData($pCoord); + } // function deleteCacheData() + + + /** + * Clone the cell collection + * + * @param PHPExcel_Worksheet $parent The new worksheet + * @return void + */ + public function copyCellCollection(PHPExcel_Worksheet $parent) { + parent::copyCellCollection($parent); + // Get a new id for the new file name + $baseUnique = $this->_getUniqueID(); + $newCachePrefix = substr(md5($baseUnique),0,8).'.'; + $cacheList = $this->getCellList(); + foreach($cacheList as $cellID) { + if ($cellID != $this->_currentObjectID) { + $success = false; + $obj = wincache_ucache_get($this->_cachePrefix.$cellID.'.cache', $success); + if ($success === false) { + // Entry no longer exists in WinCache, so clear it from the cache array + parent::deleteCacheData($cellID); + throw new Exception('Cell entry '.$cellID.' no longer exists in Wincache'); + } + if (!wincache_ucache_add($newCachePrefix.$cellID.'.cache', $obj, $this->_cacheTime)) { + $this->__destruct(); + throw new Exception('Failed to store cell '.$cellID.' in Wincache'); + } + } + } + $this->_cachePrefix = $newCachePrefix; + } // function copyCellCollection() + + + /** + * Clear the cell collection and disconnect from our parent + * + * @return void + */ + public function unsetWorksheetCells() { + if(!is_null($this->_currentObject)) { + $this->_currentObject->detach(); + $this->_currentObject = $this->_currentObjectID = null; + } + + // Flush the WinCache cache + $this->__destruct(); + + $this->_cellCache = array(); + + // detach ourself from the worksheet, so that it can then delete this object successfully + $this->_parent = null; + } // function unsetWorksheetCells() + + + /** + * Initialise this new cell collection + * + * @param PHPExcel_Worksheet $parent The worksheet for this cell collection + * @param array of mixed $arguments Additional initialisation arguments + */ + public function __construct(PHPExcel_Worksheet $parent, $arguments) { + $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; + + if (is_null($this->_cachePrefix)) { + $baseUnique = $this->_getUniqueID(); + $this->_cachePrefix = substr(md5($baseUnique),0,8).'.'; + $this->_cacheTime = $cacheTime; + + parent::__construct($parent); + } + } // function __construct() + + + /** + * Destroy this cell collection + */ + public function __destruct() { + $cacheList = $this->getCellList(); + foreach($cacheList as $cellID) { + wincache_ucache_delete($this->_cachePrefix.$cellID.'.cache'); + } + } // function __destruct() + + + /** + * Identify whether the caching method is currently available + * Some methods are dependent on the availability of certain extensions being enabled in the PHP build + * + * @return boolean + */ + public static function cacheMethodIsAvailable() { + if (!function_exists('wincache_ucache_add')) { + return false; + } + + return true; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorageFactory.php b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorageFactory.php new file mode 100755 index 0000000..51019f7 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/CachedObjectStorageFactory.php @@ -0,0 +1,239 @@ + array( + ), + self::cache_in_memory_gzip => array( + ), + self::cache_in_memory_serialized => array( + ), + self::cache_igbinary => array( + ), + self::cache_to_phpTemp => array( 'memoryCacheSize' => '1MB' + ), + self::cache_to_discISAM => array( 'dir' => NULL + ), + self::cache_to_apc => array( 'cacheTime' => 600 + ), + self::cache_to_memcache => array( 'memcacheServer' => 'localhost', + 'memcachePort' => 11211, + 'cacheTime' => 600 + ), + self::cache_to_wincache => array( 'cacheTime' => 600 + ), + self::cache_to_sqlite => array( + ), + self::cache_to_sqlite3 => array( + ), + ); + + + /** + * Arguments for the active cache storage method + * + * @var array of mixed array + */ + private static $_storageMethodParameters = array(); + + + /** + * Return the current cache storage method + * + * @return string|NULL + **/ + public static function getCacheStorageMethod() + { + return self::$_cacheStorageMethod; + } // function getCacheStorageMethod() + + + /** + * Return the current cache storage class + * + * @return PHPExcel_CachedObjectStorage_ICache|NULL + **/ + public static function getCacheStorageClass() + { + return self::$_cacheStorageClass; + } // function getCacheStorageClass() + + + /** + * Return the list of all possible cache storage methods + * + * @return string[] + **/ + public static function getAllCacheStorageMethods() + { + return self::$_storageMethods; + } // function getCacheStorageMethods() + + + /** + * Return the list of all available cache storage methods + * + * @return string[] + **/ + public static function getCacheStorageMethods() + { + $activeMethods = array(); + foreach(self::$_storageMethods as $storageMethod) { + $cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $storageMethod; + if (call_user_func(array($cacheStorageClass, 'cacheMethodIsAvailable'))) { + $activeMethods[] = $storageMethod; + } + } + return $activeMethods; + } // function getCacheStorageMethods() + + + /** + * Identify the cache storage method to use + * + * @param string $method Name of the method to use for cell cacheing + * @param array of mixed $arguments Additional arguments to pass to the cell caching class + * when instantiating + * @return boolean + **/ + public static function initialize($method = self::cache_in_memory, $arguments = array()) + { + if (!in_array($method,self::$_storageMethods)) { + return FALSE; + } + + $cacheStorageClass = 'PHPExcel_CachedObjectStorage_'.$method; + if (!call_user_func(array( $cacheStorageClass, + 'cacheMethodIsAvailable'))) { + return FALSE; + } + + self::$_storageMethodParameters[$method] = self::$_storageMethodDefaultParameters[$method]; + foreach($arguments as $k => $v) { + if (isset(self::$_storageMethodParameters[$method][$k])) { + self::$_storageMethodParameters[$method][$k] = $v; + } + } + + if (self::$_cacheStorageMethod === NULL) { + self::$_cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $method; + self::$_cacheStorageMethod = $method; + } + return TRUE; + } // function initialize() + + + /** + * Initialise the cache storage + * + * @param PHPExcel_Worksheet $parent Enable cell caching for this worksheet + * @return PHPExcel_CachedObjectStorage_ICache + **/ + public static function getInstance(PHPExcel_Worksheet $parent) + { + $cacheMethodIsAvailable = TRUE; + if (self::$_cacheStorageMethod === NULL) { + $cacheMethodIsAvailable = self::initialize(); + } + + if ($cacheMethodIsAvailable) { + $instance = new self::$_cacheStorageClass( $parent, + self::$_storageMethodParameters[self::$_cacheStorageMethod] + ); + if ($instance !== NULL) { + return $instance; + } + } + + return FALSE; + } // function getInstance() + +} \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation.php b/plugins/excel_reader/Classes/PHPExcel/Calculation.php new file mode 100755 index 0000000..65d4f3d --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation.php @@ -0,0 +1,3811 @@ +=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d{1,7})'); + // Named Range of cells + define('CALCULATION_REGEXP_NAMEDRANGE','((([^\s,!&%^\/\*\+<>=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?([_A-Z][_A-Z0-9\.]*)'); + } else { + // Cell reference (cell or range of cells, with or without a sheet reference) + define('CALCULATION_REGEXP_CELLREF','(((\w*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d+)'); + // Named Range of cells + define('CALCULATION_REGEXP_NAMEDRANGE','(((\w*)|(\'.*\')|(\".*\"))!)?([_A-Z][_A-Z0-9\.]*)'); + } +} + + +/** + * PHPExcel_Calculation (Singleton) + * + * @category PHPExcel + * @package PHPExcel_Calculation + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Calculation { + + /** Constants */ + /** Regular Expressions */ + // Numeric operand + const CALCULATION_REGEXP_NUMBER = '[-+]?\d*\.?\d+(e[-+]?\d+)?'; + // String operand + const CALCULATION_REGEXP_STRING = '"(?:[^"]|"")*"'; + // Opening bracket + const CALCULATION_REGEXP_OPENBRACE = '\('; + // Function (allow for the old @ symbol that could be used to prefix a function, but we'll ignore it) + const CALCULATION_REGEXP_FUNCTION = '@?([A-Z][A-Z0-9\.]*)[\s]*\('; + // Cell reference (cell or range of cells, with or without a sheet reference) + const CALCULATION_REGEXP_CELLREF = CALCULATION_REGEXP_CELLREF; + // Named Range of cells + const CALCULATION_REGEXP_NAMEDRANGE = CALCULATION_REGEXP_NAMEDRANGE; + // Error + const CALCULATION_REGEXP_ERROR = '\#[A-Z][A-Z0_\/]*[!\?]?'; + + + /** constants */ + const RETURN_ARRAY_AS_ERROR = 'error'; + const RETURN_ARRAY_AS_VALUE = 'value'; + const RETURN_ARRAY_AS_ARRAY = 'array'; + + private static $returnArrayAsType = self::RETURN_ARRAY_AS_VALUE; + + + /** + * Instance of this class + * + * @access private + * @var PHPExcel_Calculation + */ + private static $_instance; + + + /** + * Calculation cache + * + * @access private + * @var array + */ + private static $_calculationCache = array (); + + + /** + * Calculation cache enabled + * + * @access private + * @var boolean + */ + private static $_calculationCacheEnabled = true; + + + /** + * Calculation cache expiration time + * + * @access private + * @var float + */ + private static $_calculationCacheExpirationTime = 15; + + + /** + * List of operators that can be used within formulae + * The true/false value indicates whether it is a binary operator or a unary operator + * + * @access private + * @var array + */ + private static $_operators = array('+' => true, '-' => true, '*' => true, '/' => true, + '^' => true, '&' => true, '%' => false, '~' => false, + '>' => true, '<' => true, '=' => true, '>=' => true, + '<=' => true, '<>' => true, '|' => true, ':' => true + ); + + + /** + * List of binary operators (those that expect two operands) + * + * @access private + * @var array + */ + private static $_binaryOperators = array('+' => true, '-' => true, '*' => true, '/' => true, + '^' => true, '&' => true, '>' => true, '<' => true, + '=' => true, '>=' => true, '<=' => true, '<>' => true, + '|' => true, ':' => true + ); + + /** + * Flag to determine how formula errors should be handled + * If true, then a user error will be triggered + * If false, then an exception will be thrown + * + * @access public + * @var boolean + * + */ + public $suppressFormulaErrors = false; + + /** + * Error message for any error that was raised/thrown by the calculation engine + * + * @access public + * @var string + * + */ + public $formulaError = null; + + /** + * Flag to determine whether a debug log should be generated by the calculation engine + * If true, then a debug log will be generated + * If false, then a debug log will not be generated + * + * @access public + * @var boolean + * + */ + public $writeDebugLog = false; + + /** + * Flag to determine whether a debug log should be echoed by the calculation engine + * If true, then a debug log will be echoed + * If false, then a debug log will not be echoed + * A debug log can only be echoed if it is generated + * + * @access public + * @var boolean + * + */ + public $echoDebugLog = false; + + + /** + * An array of the nested cell references accessed by the calculation engine, used for the debug log + * + * @access private + * @var array of string + * + */ + private $debugLogStack = array(); + + /** + * The debug log generated by the calculation engine + * + * @access public + * @var array of string + * + */ + public $debugLog = array(); + private $_cyclicFormulaCount = 0; + private $_cyclicFormulaCell = ''; + public $cyclicFormulaCount = 0; + + + private $_savedPrecision = 12; + + + private static $_localeLanguage = 'en_us'; // US English (default locale) + private static $_validLocaleLanguages = array( 'en' // English (default language) + ); + private static $_localeArgumentSeparator = ','; + private static $_localeFunctions = array(); + public static $_localeBoolean = array( 'TRUE' => 'TRUE', + 'FALSE' => 'FALSE', + 'NULL' => 'NULL' + ); + + + // Constant conversion from text name/value to actual (datatyped) value + private static $_ExcelConstants = array('TRUE' => true, + 'FALSE' => false, + 'NULL' => null + ); + + // PHPExcel functions + private static $_PHPExcelFunctions = array( // PHPExcel functions + 'ABS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'abs', + 'argumentCount' => '1' + ), + 'ACCRINT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::ACCRINT', + 'argumentCount' => '4-7' + ), + 'ACCRINTM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::ACCRINTM', + 'argumentCount' => '3-5' + ), + 'ACOS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'acos', + 'argumentCount' => '1' + ), + 'ACOSH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'acosh', + 'argumentCount' => '1' + ), + 'ADDRESS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::CELL_ADDRESS', + 'argumentCount' => '2-5' + ), + 'AMORDEGRC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::AMORDEGRC', + 'argumentCount' => '6,7' + ), + 'AMORLINC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::AMORLINC', + 'argumentCount' => '6,7' + ), + 'AND' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, + 'functionCall' => 'PHPExcel_Calculation_Logical::LOGICAL_AND', + 'argumentCount' => '1+' + ), + 'AREAS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1' + ), + 'ASC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1' + ), + 'ASIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'asin', + 'argumentCount' => '1' + ), + 'ASINH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'asinh', + 'argumentCount' => '1' + ), + 'ATAN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'atan', + 'argumentCount' => '1' + ), + 'ATAN2' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::ATAN2', + 'argumentCount' => '2' + ), + 'ATANH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'atanh', + 'argumentCount' => '1' + ), + 'AVEDEV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::AVEDEV', + 'argumentCount' => '1+' + ), + 'AVERAGE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::AVERAGE', + 'argumentCount' => '1+' + ), + 'AVERAGEA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::AVERAGEA', + 'argumentCount' => '1+' + ), + 'AVERAGEIF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::AVERAGEIF', + 'argumentCount' => '2,3' + ), + 'AVERAGEIFS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '3+' + ), + 'BAHTTEXT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1' + ), + 'BESSELI' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::BESSELI', + 'argumentCount' => '2' + ), + 'BESSELJ' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::BESSELJ', + 'argumentCount' => '2' + ), + 'BESSELK' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::BESSELK', + 'argumentCount' => '2' + ), + 'BESSELY' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::BESSELY', + 'argumentCount' => '2' + ), + 'BETADIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::BETADIST', + 'argumentCount' => '3-5' + ), + 'BETAINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::BETAINV', + 'argumentCount' => '3-5' + ), + 'BIN2DEC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::BINTODEC', + 'argumentCount' => '1' + ), + 'BIN2HEX' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::BINTOHEX', + 'argumentCount' => '1,2' + ), + 'BIN2OCT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::BINTOOCT', + 'argumentCount' => '1,2' + ), + 'BINOMDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::BINOMDIST', + 'argumentCount' => '4' + ), + 'CEILING' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::CEILING', + 'argumentCount' => '2' + ), + 'CELL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1,2' + ), + 'CHAR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::CHARACTER', + 'argumentCount' => '1' + ), + 'CHIDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::CHIDIST', + 'argumentCount' => '2' + ), + 'CHIINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::CHIINV', + 'argumentCount' => '2' + ), + 'CHITEST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '2' + ), + 'CHOOSE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::CHOOSE', + 'argumentCount' => '2+' + ), + 'CLEAN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::TRIMNONPRINTABLE', + 'argumentCount' => '1' + ), + 'CODE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::ASCIICODE', + 'argumentCount' => '1' + ), + 'COLUMN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::COLUMN', + 'argumentCount' => '-1', + 'passByReference' => array(true) + ), + 'COLUMNS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::COLUMNS', + 'argumentCount' => '1' + ), + 'COMBIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::COMBIN', + 'argumentCount' => '2' + ), + 'COMPLEX' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::COMPLEX', + 'argumentCount' => '2,3' + ), + 'CONCATENATE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::CONCATENATE', + 'argumentCount' => '1+' + ), + 'CONFIDENCE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::CONFIDENCE', + 'argumentCount' => '3' + ), + 'CONVERT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::CONVERTUOM', + 'argumentCount' => '3' + ), + 'CORREL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::CORREL', + 'argumentCount' => '2' + ), + 'COS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'cos', + 'argumentCount' => '1' + ), + 'COSH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'cosh', + 'argumentCount' => '1' + ), + 'COUNT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::COUNT', + 'argumentCount' => '1+' + ), + 'COUNTA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::COUNTA', + 'argumentCount' => '1+' + ), + 'COUNTBLANK' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::COUNTBLANK', + 'argumentCount' => '1' + ), + 'COUNTIF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::COUNTIF', + 'argumentCount' => '2' + ), + 'COUNTIFS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '2' + ), + 'COUPDAYBS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::COUPDAYBS', + 'argumentCount' => '3,4' + ), + 'COUPDAYS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::COUPDAYS', + 'argumentCount' => '3,4' + ), + 'COUPDAYSNC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::COUPDAYSNC', + 'argumentCount' => '3,4' + ), + 'COUPNCD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::COUPNCD', + 'argumentCount' => '3,4' + ), + 'COUPNUM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::COUPNUM', + 'argumentCount' => '3,4' + ), + 'COUPPCD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::COUPPCD', + 'argumentCount' => '3,4' + ), + 'COVAR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::COVAR', + 'argumentCount' => '2' + ), + 'CRITBINOM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::CRITBINOM', + 'argumentCount' => '3' + ), + 'CUBEKPIMEMBER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '?' + ), + 'CUBEMEMBER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '?' + ), + 'CUBEMEMBERPROPERTY' => array('category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '?' + ), + 'CUBERANKEDMEMBER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '?' + ), + 'CUBESET' => array('category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '?' + ), + 'CUBESETCOUNT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '?' + ), + 'CUBEVALUE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '?' + ), + 'CUMIPMT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::CUMIPMT', + 'argumentCount' => '6' + ), + 'CUMPRINC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::CUMPRINC', + 'argumentCount' => '6' + ), + 'DATE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::DATE', + 'argumentCount' => '3' + ), + 'DATEDIF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::DATEDIF', + 'argumentCount' => '2,3' + ), + 'DATEVALUE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::DATEVALUE', + 'argumentCount' => '1' + ), + 'DAVERAGE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DAVERAGE', + 'argumentCount' => '3' + ), + 'DAY' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::DAYOFMONTH', + 'argumentCount' => '1' + ), + 'DAYS360' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::DAYS360', + 'argumentCount' => '2,3' + ), + 'DB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::DB', + 'argumentCount' => '4,5' + ), + 'DCOUNT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DCOUNT', + 'argumentCount' => '3' + ), + 'DCOUNTA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DCOUNTA', + 'argumentCount' => '3' + ), + 'DDB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::DDB', + 'argumentCount' => '4,5' + ), + 'DEC2BIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::DECTOBIN', + 'argumentCount' => '1,2' + ), + 'DEC2HEX' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::DECTOHEX', + 'argumentCount' => '1,2' + ), + 'DEC2OCT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::DECTOOCT', + 'argumentCount' => '1,2' + ), + 'DEGREES' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'rad2deg', + 'argumentCount' => '1' + ), + 'DELTA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::DELTA', + 'argumentCount' => '1,2' + ), + 'DEVSQ' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::DEVSQ', + 'argumentCount' => '1+' + ), + 'DGET' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DGET', + 'argumentCount' => '3' + ), + 'DISC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::DISC', + 'argumentCount' => '4,5' + ), + 'DMAX' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DMAX', + 'argumentCount' => '3' + ), + 'DMIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DMIN', + 'argumentCount' => '3' + ), + 'DOLLAR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::DOLLAR', + 'argumentCount' => '1,2' + ), + 'DOLLARDE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::DOLLARDE', + 'argumentCount' => '2' + ), + 'DOLLARFR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::DOLLARFR', + 'argumentCount' => '2' + ), + 'DPRODUCT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DPRODUCT', + 'argumentCount' => '3' + ), + 'DSTDEV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DSTDEV', + 'argumentCount' => '3' + ), + 'DSTDEVP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DSTDEVP', + 'argumentCount' => '3' + ), + 'DSUM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DSUM', + 'argumentCount' => '3' + ), + 'DURATION' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '5,6' + ), + 'DVAR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DVAR', + 'argumentCount' => '3' + ), + 'DVARP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, + 'functionCall' => 'PHPExcel_Calculation_Database::DVARP', + 'argumentCount' => '3' + ), + 'EDATE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::EDATE', + 'argumentCount' => '2' + ), + 'EFFECT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::EFFECT', + 'argumentCount' => '2' + ), + 'EOMONTH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::EOMONTH', + 'argumentCount' => '2' + ), + 'ERF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::ERF', + 'argumentCount' => '1,2' + ), + 'ERFC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::ERFC', + 'argumentCount' => '1' + ), + 'ERROR.TYPE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::ERROR_TYPE', + 'argumentCount' => '1' + ), + 'EVEN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::EVEN', + 'argumentCount' => '1' + ), + 'EXACT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '2' + ), + 'EXP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'exp', + 'argumentCount' => '1' + ), + 'EXPONDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::EXPONDIST', + 'argumentCount' => '3' + ), + 'FACT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::FACT', + 'argumentCount' => '1' + ), + 'FACTDOUBLE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::FACTDOUBLE', + 'argumentCount' => '1' + ), + 'FALSE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, + 'functionCall' => 'PHPExcel_Calculation_Logical::FALSE', + 'argumentCount' => '0' + ), + 'FDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '3' + ), + 'FIND' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::SEARCHSENSITIVE', + 'argumentCount' => '2,3' + ), + 'FINDB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::SEARCHSENSITIVE', + 'argumentCount' => '2,3' + ), + 'FINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '3' + ), + 'FISHER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::FISHER', + 'argumentCount' => '1' + ), + 'FISHERINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::FISHERINV', + 'argumentCount' => '1' + ), + 'FIXED' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::FIXEDFORMAT', + 'argumentCount' => '1-3' + ), + 'FLOOR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::FLOOR', + 'argumentCount' => '2' + ), + 'FORECAST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::FORECAST', + 'argumentCount' => '3' + ), + 'FREQUENCY' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '2' + ), + 'FTEST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '2' + ), + 'FV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::FV', + 'argumentCount' => '3-5' + ), + 'FVSCHEDULE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::FVSCHEDULE', + 'argumentCount' => '2' + ), + 'GAMMADIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::GAMMADIST', + 'argumentCount' => '4' + ), + 'GAMMAINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::GAMMAINV', + 'argumentCount' => '3' + ), + 'GAMMALN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::GAMMALN', + 'argumentCount' => '1' + ), + 'GCD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::GCD', + 'argumentCount' => '1+' + ), + 'GEOMEAN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::GEOMEAN', + 'argumentCount' => '1+' + ), + 'GESTEP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::GESTEP', + 'argumentCount' => '1,2' + ), + 'GETPIVOTDATA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '2+' + ), + 'GROWTH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::GROWTH', + 'argumentCount' => '1-4' + ), + 'HARMEAN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::HARMEAN', + 'argumentCount' => '1+' + ), + 'HEX2BIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::HEXTOBIN', + 'argumentCount' => '1,2' + ), + 'HEX2DEC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::HEXTODEC', + 'argumentCount' => '1' + ), + 'HEX2OCT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::HEXTOOCT', + 'argumentCount' => '1,2' + ), + 'HLOOKUP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '3,4' + ), + 'HOUR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::HOUROFDAY', + 'argumentCount' => '1' + ), + 'HYPERLINK' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::HYPERLINK', + 'argumentCount' => '1,2', + 'passCellReference'=> true + ), + 'HYPGEOMDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::HYPGEOMDIST', + 'argumentCount' => '4' + ), + 'IF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, + 'functionCall' => 'PHPExcel_Calculation_Logical::STATEMENT_IF', + 'argumentCount' => '1-3' + ), + 'IFERROR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, + 'functionCall' => 'PHPExcel_Calculation_Logical::IFERROR', + 'argumentCount' => '2' + ), + 'IMABS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMABS', + 'argumentCount' => '1' + ), + 'IMAGINARY' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMAGINARY', + 'argumentCount' => '1' + ), + 'IMARGUMENT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMARGUMENT', + 'argumentCount' => '1' + ), + 'IMCONJUGATE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMCONJUGATE', + 'argumentCount' => '1' + ), + 'IMCOS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMCOS', + 'argumentCount' => '1' + ), + 'IMDIV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMDIV', + 'argumentCount' => '2' + ), + 'IMEXP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMEXP', + 'argumentCount' => '1' + ), + 'IMLN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMLN', + 'argumentCount' => '1' + ), + 'IMLOG10' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMLOG10', + 'argumentCount' => '1' + ), + 'IMLOG2' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMLOG2', + 'argumentCount' => '1' + ), + 'IMPOWER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMPOWER', + 'argumentCount' => '2' + ), + 'IMPRODUCT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMPRODUCT', + 'argumentCount' => '1+' + ), + 'IMREAL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMREAL', + 'argumentCount' => '1' + ), + 'IMSIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMSIN', + 'argumentCount' => '1' + ), + 'IMSQRT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMSQRT', + 'argumentCount' => '1' + ), + 'IMSUB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMSUB', + 'argumentCount' => '2' + ), + 'IMSUM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::IMSUM', + 'argumentCount' => '1+' + ), + 'INDEX' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::INDEX', + 'argumentCount' => '1-4' + ), + 'INDIRECT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::INDIRECT', + 'argumentCount' => '1,2', + 'passCellReference'=> true + ), + 'INFO' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1' + ), + 'INT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::INT', + 'argumentCount' => '1' + ), + 'INTERCEPT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::INTERCEPT', + 'argumentCount' => '2' + ), + 'INTRATE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::INTRATE', + 'argumentCount' => '4,5' + ), + 'IPMT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::IPMT', + 'argumentCount' => '4-6' + ), + 'IRR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::IRR', + 'argumentCount' => '1,2' + ), + 'ISBLANK' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_BLANK', + 'argumentCount' => '1' + ), + 'ISERR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_ERR', + 'argumentCount' => '1' + ), + 'ISERROR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_ERROR', + 'argumentCount' => '1' + ), + 'ISEVEN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_EVEN', + 'argumentCount' => '1' + ), + 'ISLOGICAL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_LOGICAL', + 'argumentCount' => '1' + ), + 'ISNA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_NA', + 'argumentCount' => '1' + ), + 'ISNONTEXT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_NONTEXT', + 'argumentCount' => '1' + ), + 'ISNUMBER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_NUMBER', + 'argumentCount' => '1' + ), + 'ISODD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_ODD', + 'argumentCount' => '1' + ), + 'ISPMT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::ISPMT', + 'argumentCount' => '4' + ), + 'ISREF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1' + ), + 'ISTEXT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::IS_TEXT', + 'argumentCount' => '1' + ), + 'JIS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1' + ), + 'KURT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::KURT', + 'argumentCount' => '1+' + ), + 'LARGE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::LARGE', + 'argumentCount' => '2' + ), + 'LCM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::LCM', + 'argumentCount' => '1+' + ), + 'LEFT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::LEFT', + 'argumentCount' => '1,2' + ), + 'LEFTB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::LEFT', + 'argumentCount' => '1,2' + ), + 'LEN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::STRINGLENGTH', + 'argumentCount' => '1' + ), + 'LENB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::STRINGLENGTH', + 'argumentCount' => '1' + ), + 'LINEST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::LINEST', + 'argumentCount' => '1-4' + ), + 'LN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'log', + 'argumentCount' => '1' + ), + 'LOG' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::LOG_BASE', + 'argumentCount' => '1,2' + ), + 'LOG10' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'log10', + 'argumentCount' => '1' + ), + 'LOGEST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::LOGEST', + 'argumentCount' => '1-4' + ), + 'LOGINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::LOGINV', + 'argumentCount' => '3' + ), + 'LOGNORMDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::LOGNORMDIST', + 'argumentCount' => '3' + ), + 'LOOKUP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::LOOKUP', + 'argumentCount' => '2,3' + ), + 'LOWER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::LOWERCASE', + 'argumentCount' => '1' + ), + 'MATCH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::MATCH', + 'argumentCount' => '2,3' + ), + 'MAX' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::MAX', + 'argumentCount' => '1+' + ), + 'MAXA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::MAXA', + 'argumentCount' => '1+' + ), + 'MAXIF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::MAXIF', + 'argumentCount' => '2+' + ), + 'MDETERM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::MDETERM', + 'argumentCount' => '1' + ), + 'MDURATION' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '5,6' + ), + 'MEDIAN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::MEDIAN', + 'argumentCount' => '1+' + ), + 'MEDIANIF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '2+' + ), + 'MID' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::MID', + 'argumentCount' => '3' + ), + 'MIDB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::MID', + 'argumentCount' => '3' + ), + 'MIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::MIN', + 'argumentCount' => '1+' + ), + 'MINA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::MINA', + 'argumentCount' => '1+' + ), + 'MINIF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::MINIF', + 'argumentCount' => '2+' + ), + 'MINUTE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::MINUTEOFHOUR', + 'argumentCount' => '1' + ), + 'MINVERSE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::MINVERSE', + 'argumentCount' => '1' + ), + 'MIRR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::MIRR', + 'argumentCount' => '3' + ), + 'MMULT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::MMULT', + 'argumentCount' => '2' + ), + 'MOD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::MOD', + 'argumentCount' => '2' + ), + 'MODE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::MODE', + 'argumentCount' => '1+' + ), + 'MONTH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::MONTHOFYEAR', + 'argumentCount' => '1' + ), + 'MROUND' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::MROUND', + 'argumentCount' => '2' + ), + 'MULTINOMIAL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::MULTINOMIAL', + 'argumentCount' => '1+' + ), + 'N' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::N', + 'argumentCount' => '1' + ), + 'NA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::NA', + 'argumentCount' => '0' + ), + 'NEGBINOMDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::NEGBINOMDIST', + 'argumentCount' => '3' + ), + 'NETWORKDAYS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::NETWORKDAYS', + 'argumentCount' => '2+' + ), + 'NOMINAL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::NOMINAL', + 'argumentCount' => '2' + ), + 'NORMDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::NORMDIST', + 'argumentCount' => '4' + ), + 'NORMINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::NORMINV', + 'argumentCount' => '3' + ), + 'NORMSDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::NORMSDIST', + 'argumentCount' => '1' + ), + 'NORMSINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::NORMSINV', + 'argumentCount' => '1' + ), + 'NOT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, + 'functionCall' => 'PHPExcel_Calculation_Logical::NOT', + 'argumentCount' => '1' + ), + 'NOW' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::DATETIMENOW', + 'argumentCount' => '0' + ), + 'NPER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::NPER', + 'argumentCount' => '3-5' + ), + 'NPV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::NPV', + 'argumentCount' => '2+' + ), + 'OCT2BIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::OCTTOBIN', + 'argumentCount' => '1,2' + ), + 'OCT2DEC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::OCTTODEC', + 'argumentCount' => '1' + ), + 'OCT2HEX' => array('category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, + 'functionCall' => 'PHPExcel_Calculation_Engineering::OCTTOHEX', + 'argumentCount' => '1,2' + ), + 'ODD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::ODD', + 'argumentCount' => '1' + ), + 'ODDFPRICE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '8,9' + ), + 'ODDFYIELD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '8,9' + ), + 'ODDLPRICE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '7,8' + ), + 'ODDLYIELD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '7,8' + ), + 'OFFSET' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::OFFSET', + 'argumentCount' => '3,5', + 'passCellReference'=> true, + 'passByReference' => array(true) + ), + 'OR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, + 'functionCall' => 'PHPExcel_Calculation_Logical::LOGICAL_OR', + 'argumentCount' => '1+' + ), + 'PEARSON' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::CORREL', + 'argumentCount' => '2' + ), + 'PERCENTILE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::PERCENTILE', + 'argumentCount' => '2' + ), + 'PERCENTRANK' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::PERCENTRANK', + 'argumentCount' => '2,3' + ), + 'PERMUT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::PERMUT', + 'argumentCount' => '2' + ), + 'PHONETIC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1' + ), + 'PI' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'pi', + 'argumentCount' => '0' + ), + 'PMT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::PMT', + 'argumentCount' => '3-5' + ), + 'POISSON' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::POISSON', + 'argumentCount' => '3' + ), + 'POWER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::POWER', + 'argumentCount' => '2' + ), + 'PPMT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::PPMT', + 'argumentCount' => '4-6' + ), + 'PRICE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::PRICE', + 'argumentCount' => '6,7' + ), + 'PRICEDISC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::PRICEDISC', + 'argumentCount' => '4,5' + ), + 'PRICEMAT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::PRICEMAT', + 'argumentCount' => '5,6' + ), + 'PROB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '3,4' + ), + 'PRODUCT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::PRODUCT', + 'argumentCount' => '1+' + ), + 'PROPER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::PROPERCASE', + 'argumentCount' => '1' + ), + 'PV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::PV', + 'argumentCount' => '3-5' + ), + 'QUARTILE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::QUARTILE', + 'argumentCount' => '2' + ), + 'QUOTIENT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::QUOTIENT', + 'argumentCount' => '2' + ), + 'RADIANS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'deg2rad', + 'argumentCount' => '1' + ), + 'RAND' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::RAND', + 'argumentCount' => '0' + ), + 'RANDBETWEEN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::RAND', + 'argumentCount' => '2' + ), + 'RANK' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::RANK', + 'argumentCount' => '2,3' + ), + 'RATE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::RATE', + 'argumentCount' => '3-6' + ), + 'RECEIVED' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::RECEIVED', + 'argumentCount' => '4-5' + ), + 'REPLACE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::REPLACE', + 'argumentCount' => '4' + ), + 'REPLACEB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::REPLACE', + 'argumentCount' => '4' + ), + 'REPT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'str_repeat', + 'argumentCount' => '2' + ), + 'RIGHT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::RIGHT', + 'argumentCount' => '1,2' + ), + 'RIGHTB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::RIGHT', + 'argumentCount' => '1,2' + ), + 'ROMAN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::ROMAN', + 'argumentCount' => '1,2' + ), + 'ROUND' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'round', + 'argumentCount' => '2' + ), + 'ROUNDDOWN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::ROUNDDOWN', + 'argumentCount' => '2' + ), + 'ROUNDUP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::ROUNDUP', + 'argumentCount' => '2' + ), + 'ROW' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::ROW', + 'argumentCount' => '-1', + 'passByReference' => array(true) + ), + 'ROWS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::ROWS', + 'argumentCount' => '1' + ), + 'RSQ' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::RSQ', + 'argumentCount' => '2' + ), + 'RTD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1+' + ), + 'SEARCH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::SEARCHINSENSITIVE', + 'argumentCount' => '2,3' + ), + 'SEARCHB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::SEARCHINSENSITIVE', + 'argumentCount' => '2,3' + ), + 'SECOND' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::SECONDOFMINUTE', + 'argumentCount' => '1' + ), + 'SERIESSUM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SERIESSUM', + 'argumentCount' => '4' + ), + 'SIGN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SIGN', + 'argumentCount' => '1' + ), + 'SIN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'sin', + 'argumentCount' => '1' + ), + 'SINH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'sinh', + 'argumentCount' => '1' + ), + 'SKEW' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::SKEW', + 'argumentCount' => '1+' + ), + 'SLN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::SLN', + 'argumentCount' => '3' + ), + 'SLOPE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::SLOPE', + 'argumentCount' => '2' + ), + 'SMALL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::SMALL', + 'argumentCount' => '2' + ), + 'SQRT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'sqrt', + 'argumentCount' => '1' + ), + 'SQRTPI' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SQRTPI', + 'argumentCount' => '1' + ), + 'STANDARDIZE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::STANDARDIZE', + 'argumentCount' => '3' + ), + 'STDEV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::STDEV', + 'argumentCount' => '1+' + ), + 'STDEVA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::STDEVA', + 'argumentCount' => '1+' + ), + 'STDEVP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::STDEVP', + 'argumentCount' => '1+' + ), + 'STDEVPA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::STDEVPA', + 'argumentCount' => '1+' + ), + 'STEYX' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::STEYX', + 'argumentCount' => '2' + ), + 'SUBSTITUTE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::SUBSTITUTE', + 'argumentCount' => '3,4' + ), + 'SUBTOTAL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUBTOTAL', + 'argumentCount' => '2+' + ), + 'SUM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUM', + 'argumentCount' => '1+' + ), + 'SUMIF' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMIF', + 'argumentCount' => '2,3' + ), + 'SUMIFS' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '?' + ), + 'SUMPRODUCT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMPRODUCT', + 'argumentCount' => '1+' + ), + 'SUMSQ' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMSQ', + 'argumentCount' => '1+' + ), + 'SUMX2MY2' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMX2MY2', + 'argumentCount' => '2' + ), + 'SUMX2PY2' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMX2PY2', + 'argumentCount' => '2' + ), + 'SUMXMY2' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMXMY2', + 'argumentCount' => '2' + ), + 'SYD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::SYD', + 'argumentCount' => '4' + ), + 'T' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::RETURNSTRING', + 'argumentCount' => '1' + ), + 'TAN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'tan', + 'argumentCount' => '1' + ), + 'TANH' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'tanh', + 'argumentCount' => '1' + ), + 'TBILLEQ' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::TBILLEQ', + 'argumentCount' => '3' + ), + 'TBILLPRICE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::TBILLPRICE', + 'argumentCount' => '3' + ), + 'TBILLYIELD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::TBILLYIELD', + 'argumentCount' => '3' + ), + 'TDIST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::TDIST', + 'argumentCount' => '3' + ), + 'TEXT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::TEXTFORMAT', + 'argumentCount' => '2' + ), + 'TIME' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::TIME', + 'argumentCount' => '3' + ), + 'TIMEVALUE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::TIMEVALUE', + 'argumentCount' => '1' + ), + 'TINV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::TINV', + 'argumentCount' => '2' + ), + 'TODAY' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::DATENOW', + 'argumentCount' => '0' + ), + 'TRANSPOSE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::TRANSPOSE', + 'argumentCount' => '1' + ), + 'TREND' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::TREND', + 'argumentCount' => '1-4' + ), + 'TRIM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::TRIMSPACES', + 'argumentCount' => '1' + ), + 'TRIMMEAN' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::TRIMMEAN', + 'argumentCount' => '2' + ), + 'TRUE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, + 'functionCall' => 'PHPExcel_Calculation_Logical::TRUE', + 'argumentCount' => '0' + ), + 'TRUNC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, + 'functionCall' => 'PHPExcel_Calculation_MathTrig::TRUNC', + 'argumentCount' => '1,2' + ), + 'TTEST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '4' + ), + 'TYPE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::TYPE', + 'argumentCount' => '1' + ), + 'UPPER' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_TextData::UPPERCASE', + 'argumentCount' => '1' + ), + 'USDOLLAR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '2' + ), + 'VALUE' => array('category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '1' + ), + 'VAR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::VARFunc', + 'argumentCount' => '1+' + ), + 'VARA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::VARA', + 'argumentCount' => '1+' + ), + 'VARP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::VARP', + 'argumentCount' => '1+' + ), + 'VARPA' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::VARPA', + 'argumentCount' => '1+' + ), + 'VDB' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '5-7' + ), + 'VERSION' => array('category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, + 'functionCall' => 'PHPExcel_Calculation_Functions::VERSION', + 'argumentCount' => '0' + ), + 'VLOOKUP' => array('category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, + 'functionCall' => 'PHPExcel_Calculation_LookupRef::VLOOKUP', + 'argumentCount' => '3,4' + ), + 'WEEKDAY' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::DAYOFWEEK', + 'argumentCount' => '1,2' + ), + 'WEEKNUM' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::WEEKOFYEAR', + 'argumentCount' => '1,2' + ), + 'WEIBULL' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::WEIBULL', + 'argumentCount' => '4' + ), + 'WORKDAY' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::WORKDAY', + 'argumentCount' => '2+' + ), + 'XIRR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::XIRR', + 'argumentCount' => '2,3' + ), + 'XNPV' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::XNPV', + 'argumentCount' => '3' + ), + 'YEAR' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::YEAR', + 'argumentCount' => '1' + ), + 'YEARFRAC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, + 'functionCall' => 'PHPExcel_Calculation_DateTime::YEARFRAC', + 'argumentCount' => '2,3' + ), + 'YIELD' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', + 'argumentCount' => '6,7' + ), + 'YIELDDISC' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::YIELDDISC', + 'argumentCount' => '4,5' + ), + 'YIELDMAT' => array('category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, + 'functionCall' => 'PHPExcel_Calculation_Financial::YIELDMAT', + 'argumentCount' => '5,6' + ), + 'ZTEST' => array('category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, + 'functionCall' => 'PHPExcel_Calculation_Statistical::ZTEST', + 'argumentCount' => '2-3' + ) + ); + + + // Internal functions used for special control purposes + private static $_controlFunctions = array( + 'MKMATRIX' => array('argumentCount' => '*', + 'functionCall' => 'self::_mkMatrix' + ) + ); + + + + + private function __construct() { + $localeFileDirectory = PHPEXCEL_ROOT.'PHPExcel/locale/'; + foreach (glob($localeFileDirectory.'/*',GLOB_ONLYDIR) as $filename) { + $filename = substr($filename,strlen($localeFileDirectory)+1); + if ($filename != 'en') { + self::$_validLocaleLanguages[] = $filename; + } + } + + $setPrecision = (PHP_INT_SIZE == 4) ? 12 : 16; + $this->_savedPrecision = ini_get('precision'); + if ($this->_savedPrecision < $setPrecision) { + ini_set('precision',$setPrecision); + } + } // function __construct() + + + public function __destruct() { + if ($this->_savedPrecision != ini_get('precision')) { + ini_set('precision',$this->_savedPrecision); + } + } + + /** + * Get an instance of this class + * + * @access public + * @return PHPExcel_Calculation + */ + public static function getInstance() { + if (!isset(self::$_instance) || (self::$_instance === NULL)) { + self::$_instance = new PHPExcel_Calculation(); + } + + return self::$_instance; + } // function getInstance() + + + /** + * Flush the calculation cache for any existing instance of this class + * but only if a PHPExcel_Calculation instance exists + * + * @access public + * @return null + */ + public static function flushInstance() { + if (isset(self::$_instance) && (self::$_instance !== NULL)) { + self::$_instance->clearCalculationCache(); + } + } // function flushInstance() + + + /** + * __clone implementation. Cloning should not be allowed in a Singleton! + * + * @access public + * @throws Exception + */ + public final function __clone() { + throw new Exception ('Cloning a Singleton is not allowed!'); + } // function __clone() + + + /** + * Return the locale-specific translation of TRUE + * + * @access public + * @return string locale-specific translation of TRUE + */ + public static function getTRUE() { + return self::$_localeBoolean['TRUE']; + } + + /** + * Return the locale-specific translation of FALSE + * + * @access public + * @return string locale-specific translation of FALSE + */ + public static function getFALSE() { + return self::$_localeBoolean['FALSE']; + } + + /** + * Set the Array Return Type (Array or Value of first element in the array) + * + * @access public + * @param string $returnType Array return type + * @return boolean Success or failure + */ + public static function setArrayReturnType($returnType) { + if (($returnType == self::RETURN_ARRAY_AS_VALUE) || + ($returnType == self::RETURN_ARRAY_AS_ERROR) || + ($returnType == self::RETURN_ARRAY_AS_ARRAY)) { + self::$returnArrayAsType = $returnType; + return true; + } + return false; + } // function setExcelCalendar() + + + /** + * Return the Array Return Type (Array or Value of first element in the array) + * + * @access public + * @return string $returnType Array return type + */ + public static function getArrayReturnType() { + return self::$returnArrayAsType; + } // function getExcelCalendar() + + + /** + * Is calculation caching enabled? + * + * @access public + * @return boolean + */ + public function getCalculationCacheEnabled() { + return self::$_calculationCacheEnabled; + } // function getCalculationCacheEnabled() + + + /** + * Enable/disable calculation cache + * + * @access public + * @param boolean $pValue + */ + public function setCalculationCacheEnabled($pValue = true) { + self::$_calculationCacheEnabled = $pValue; + $this->clearCalculationCache(); + } // function setCalculationCacheEnabled() + + + /** + * Enable calculation cache + */ + public function enableCalculationCache() { + $this->setCalculationCacheEnabled(true); + } // function enableCalculationCache() + + + /** + * Disable calculation cache + */ + public function disableCalculationCache() { + $this->setCalculationCacheEnabled(false); + } // function disableCalculationCache() + + + /** + * Clear calculation cache + */ + public function clearCalculationCache() { + self::$_calculationCache = array(); + } // function clearCalculationCache() + + + /** + * Get calculation cache expiration time + * + * @return float + */ + public function getCalculationCacheExpirationTime() { + return self::$_calculationCacheExpirationTime; + } // getCalculationCacheExpirationTime() + + + /** + * Set calculation cache expiration time + * + * @param float $pValue + */ + public function setCalculationCacheExpirationTime($pValue = 15) { + self::$_calculationCacheExpirationTime = $pValue; + } // function setCalculationCacheExpirationTime() + + + + + /** + * Get the currently defined locale code + * + * @return string + */ + public function getLocale() { + return self::$_localeLanguage; + } // function getLocale() + + + /** + * Set the locale code + * + * @return boolean + */ + public function setLocale($locale='en_us') { + // Identify our locale and language + $language = $locale = strtolower($locale); + if (strpos($locale,'_') !== false) { + list($language) = explode('_',$locale); + } + + // Test whether we have any language data for this language (any locale) + if (in_array($language,self::$_validLocaleLanguages)) { + // initialise language/locale settings + self::$_localeFunctions = array(); + self::$_localeArgumentSeparator = ','; + self::$_localeBoolean = array('TRUE' => 'TRUE', 'FALSE' => 'FALSE', 'NULL' => 'NULL'); + // Default is English, if user isn't requesting english, then read the necessary data from the locale files + if ($locale != 'en_us') { + // Search for a file with a list of function names for locale + $functionNamesFile = PHPEXCEL_ROOT . 'PHPExcel'.DIRECTORY_SEPARATOR.'locale'.DIRECTORY_SEPARATOR.str_replace('_',DIRECTORY_SEPARATOR,$locale).DIRECTORY_SEPARATOR.'functions'; + if (!file_exists($functionNamesFile)) { + // If there isn't a locale specific function file, look for a language specific function file + $functionNamesFile = PHPEXCEL_ROOT . 'PHPExcel'.DIRECTORY_SEPARATOR.'locale'.DIRECTORY_SEPARATOR.$language.DIRECTORY_SEPARATOR.'functions'; + if (!file_exists($functionNamesFile)) { + return false; + } + } + // Retrieve the list of locale or language specific function names + $localeFunctions = file($functionNamesFile,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + foreach ($localeFunctions as $localeFunction) { + list($localeFunction) = explode('##',$localeFunction); // Strip out comments + if (strpos($localeFunction,'=') !== false) { + list($fName,$lfName) = explode('=',$localeFunction); + $fName = trim($fName); + $lfName = trim($lfName); + if ((isset(self::$_PHPExcelFunctions[$fName])) && ($lfName != '') && ($fName != $lfName)) { + self::$_localeFunctions[$fName] = $lfName; + } + } + } + // Default the TRUE and FALSE constants to the locale names of the TRUE() and FALSE() functions + if (isset(self::$_localeFunctions['TRUE'])) { self::$_localeBoolean['TRUE'] = self::$_localeFunctions['TRUE']; } + if (isset(self::$_localeFunctions['FALSE'])) { self::$_localeBoolean['FALSE'] = self::$_localeFunctions['FALSE']; } + + $configFile = PHPEXCEL_ROOT . 'PHPExcel'.DIRECTORY_SEPARATOR.'locale'.DIRECTORY_SEPARATOR.str_replace('_',DIRECTORY_SEPARATOR,$locale).DIRECTORY_SEPARATOR.'config'; + if (!file_exists($configFile)) { + $configFile = PHPEXCEL_ROOT . 'PHPExcel'.DIRECTORY_SEPARATOR.'locale'.DIRECTORY_SEPARATOR.$language.DIRECTORY_SEPARATOR.'config'; + } + if (file_exists($configFile)) { + $localeSettings = file($configFile,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + foreach ($localeSettings as $localeSetting) { + list($localeSetting) = explode('##',$localeSetting); // Strip out comments + if (strpos($localeSetting,'=') !== false) { + list($settingName,$settingValue) = explode('=',$localeSetting); + $settingName = strtoupper(trim($settingName)); + switch ($settingName) { + case 'ARGUMENTSEPARATOR' : + self::$_localeArgumentSeparator = trim($settingValue); + break; + } + } + } + } + } + + self::$functionReplaceFromExcel = self::$functionReplaceToExcel = + self::$functionReplaceFromLocale = self::$functionReplaceToLocale = null; + self::$_localeLanguage = $locale; + return true; + } + return false; + } // function setLocale() + + + + public static function _translateSeparator($fromSeparator,$toSeparator,$formula,&$inBraces) { + $strlen = mb_strlen($formula); + for ($i = 0; $i < $strlen; ++$i) { + $chr = mb_substr($formula,$i,1); + switch ($chr) { + case '{' : $inBraces = true; + break; + case '}' : $inBraces = false; + break; + case $fromSeparator : + if (!$inBraces) { + $formula = mb_substr($formula,0,$i).$toSeparator.mb_substr($formula,$i+1); + } + } + } + return $formula; + } + + private static function _translateFormula($from,$to,$formula,$fromSeparator,$toSeparator) { + // Convert any Excel function names to the required language + if (self::$_localeLanguage !== 'en_us') { + $inBraces = false; + // If there is the possibility of braces within a quoted string, then we don't treat those as matrix indicators + if (strpos($formula,'"') !== false) { + // So instead we skip replacing in any quoted strings by only replacing in every other array element after we've exploded + // the formula + $temp = explode('"',$formula); + $i = false; + foreach($temp as &$value) { + // Only count/replace in alternating array entries + if ($i = !$i) { + $value = preg_replace($from,$to,$value); + $value = self::_translateSeparator($fromSeparator,$toSeparator,$value,$inBraces); + } + } + unset($value); + // Then rebuild the formula string + $formula = implode('"',$temp); + } else { + // If there's no quoted strings, then we do a simple count/replace + $formula = preg_replace($from,$to,$formula); + $formula = self::_translateSeparator($fromSeparator,$toSeparator,$formula,$inBraces); + } + } + + return $formula; + } + + private static $functionReplaceFromExcel = null; + private static $functionReplaceToLocale = null; + + public function _translateFormulaToLocale($formula) { + if (self::$functionReplaceFromExcel === NULL) { + self::$functionReplaceFromExcel = array(); + foreach(array_keys(self::$_localeFunctions) as $excelFunctionName) { + self::$functionReplaceFromExcel[] = '/(@?[^\w\.])'.preg_quote($excelFunctionName).'([\s]*\()/Ui'; + } + foreach(array_keys(self::$_localeBoolean) as $excelBoolean) { + self::$functionReplaceFromExcel[] = '/(@?[^\w\.])'.preg_quote($excelBoolean).'([^\w\.])/Ui'; + } + + } + + if (self::$functionReplaceToLocale === NULL) { + self::$functionReplaceToLocale = array(); + foreach(array_values(self::$_localeFunctions) as $localeFunctionName) { + self::$functionReplaceToLocale[] = '$1'.trim($localeFunctionName).'$2'; + } + foreach(array_values(self::$_localeBoolean) as $localeBoolean) { + self::$functionReplaceToLocale[] = '$1'.trim($localeBoolean).'$2'; + } + } + + return self::_translateFormula(self::$functionReplaceFromExcel,self::$functionReplaceToLocale,$formula,',',self::$_localeArgumentSeparator); + } // function _translateFormulaToLocale() + + + private static $functionReplaceFromLocale = null; + private static $functionReplaceToExcel = null; + + public function _translateFormulaToEnglish($formula) { + if (self::$functionReplaceFromLocale === NULL) { + self::$functionReplaceFromLocale = array(); + foreach(array_values(self::$_localeFunctions) as $localeFunctionName) { + self::$functionReplaceFromLocale[] = '/(@?[^\w\.])'.preg_quote($localeFunctionName).'([\s]*\()/Ui'; + } + foreach(array_values(self::$_localeBoolean) as $excelBoolean) { + self::$functionReplaceFromLocale[] = '/(@?[^\w\.])'.preg_quote($excelBoolean).'([^\w\.])/Ui'; + } + } + + if (self::$functionReplaceToExcel === NULL) { + self::$functionReplaceToExcel = array(); + foreach(array_keys(self::$_localeFunctions) as $excelFunctionName) { + self::$functionReplaceToExcel[] = '$1'.trim($excelFunctionName).'$2'; + } + foreach(array_keys(self::$_localeBoolean) as $excelBoolean) { + self::$functionReplaceToExcel[] = '$1'.trim($excelBoolean).'$2'; + } + } + + return self::_translateFormula(self::$functionReplaceFromLocale,self::$functionReplaceToExcel,$formula,self::$_localeArgumentSeparator,','); + } // function _translateFormulaToEnglish() + + + public static function _localeFunc($function) { + if (self::$_localeLanguage !== 'en_us') { + $functionName = trim($function,'('); + if (isset(self::$_localeFunctions[$functionName])) { + $brace = ($functionName != $function); + $function = self::$_localeFunctions[$functionName]; + if ($brace) { $function .= '('; } + } + } + return $function; + } + + + + + /** + * Wrap string values in quotes + * + * @param mixed $value + * @return mixed + */ + public static function _wrapResult($value) { + if (is_string($value)) { + // Error values cannot be "wrapped" + if (preg_match('/^'.self::CALCULATION_REGEXP_ERROR.'$/i', $value, $match)) { + // Return Excel errors "as is" + return $value; + } + // Return strings wrapped in quotes + return '"'.$value.'"'; + // Convert numeric errors to NaN error + } else if((is_float($value)) && ((is_nan($value)) || (is_infinite($value)))) { + return PHPExcel_Calculation_Functions::NaN(); + } + + return $value; + } // function _wrapResult() + + + /** + * Remove quotes used as a wrapper to identify string values + * + * @param mixed $value + * @return mixed + */ + public static function _unwrapResult($value) { + if (is_string($value)) { + if ((isset($value{0})) && ($value{0} == '"') && (substr($value,-1) == '"')) { + return substr($value,1,-1); + } + // Convert numeric errors to NaN error + } else if((is_float($value)) && ((is_nan($value)) || (is_infinite($value)))) { + return PHPExcel_Calculation_Functions::NaN(); + } + return $value; + } // function _unwrapResult() + + + + + /** + * Calculate cell value (using formula from a cell ID) + * Retained for backward compatibility + * + * @access public + * @param PHPExcel_Cell $pCell Cell to calculate + * @return mixed + * @throws Exception + */ + public function calculate(PHPExcel_Cell $pCell = null) { + try { + return $this->calculateCellValue($pCell); + } catch (Exception $e) { + throw(new Exception($e->getMessage())); + } + } // function calculate() + + + /** + * Calculate the value of a cell formula + * + * @access public + * @param PHPExcel_Cell $pCell Cell to calculate + * @param Boolean $resetLog Flag indicating whether the debug log should be reset or not + * @return mixed + * @throws Exception + */ + public function calculateCellValue(PHPExcel_Cell $pCell = null, $resetLog = true) { + if ($resetLog) { + // Initialise the logging settings if requested + $this->formulaError = null; + $this->debugLog = $this->debugLogStack = array(); + $this->_cyclicFormulaCount = 1; + + $returnArrayAsType = self::$returnArrayAsType; + self::$returnArrayAsType = self::RETURN_ARRAY_AS_ARRAY; + } + + // Read the formula from the cell + if ($pCell === NULL) { + return NULL; + } + + if ($resetLog) { + self::$returnArrayAsType = $returnArrayAsType; + } + // Execute the calculation for the cell formula + try { + $result = self::_unwrapResult($this->_calculateFormulaValue($pCell->getValue(), $pCell->getCoordinate(), $pCell)); + } catch (Exception $e) { + throw(new Exception($e->getMessage())); + } + + if ((is_array($result)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) { + $testResult = PHPExcel_Calculation_Functions::flattenArray($result); + if (self::$returnArrayAsType == self::RETURN_ARRAY_AS_ERROR) { + return PHPExcel_Calculation_Functions::VALUE(); + } + // If there's only a single cell in the array, then we allow it + if (count($testResult) != 1) { + // If keys are numeric, then it's a matrix result rather than a cell range result, so we permit it + $r = array_keys($result); + $r = array_shift($r); + if (!is_numeric($r)) { return PHPExcel_Calculation_Functions::VALUE(); } + if (is_array($result[$r])) { + $c = array_keys($result[$r]); + $c = array_shift($c); + if (!is_numeric($c)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + } + $result = array_shift($testResult); + } + + if ($result === NULL) { + return 0; + } elseif((is_float($result)) && ((is_nan($result)) || (is_infinite($result)))) { + return PHPExcel_Calculation_Functions::NaN(); + } + return $result; + } // function calculateCellValue( + + + /** + * Validate and parse a formula string + * + * @param string $formula Formula to parse + * @return array + * @throws Exception + */ + public function parseFormula($formula) { + // Basic validation that this is indeed a formula + // We return an empty array if not + $formula = trim($formula); + if ((!isset($formula{0})) || ($formula{0} != '=')) return array(); + $formula = ltrim(substr($formula,1)); + if (!isset($formula{0})) return array(); + + // Parse the formula and return the token stack + return $this->_parseFormula($formula); + } // function parseFormula() + + + /** + * Calculate the value of a formula + * + * @param string $formula Formula to parse + * @return mixed + * @throws Exception + */ + public function calculateFormula($formula, $cellID=null, PHPExcel_Cell $pCell = null) { + // Initialise the logging settings + $this->formulaError = null; + $this->debugLog = $this->debugLogStack = array(); + + // Disable calculation cacheing because it only applies to cell calculations, not straight formulae + // But don't actually flush any cache + $resetCache = $this->getCalculationCacheEnabled(); + self::$_calculationCacheEnabled = false; + // Execute the calculation + try { + $result = self::_unwrapResult($this->_calculateFormulaValue($formula, $cellID, $pCell)); + } catch (Exception $e) { + throw(new Exception($e->getMessage())); + } + + // Reset calculation cacheing to its previous state + self::$_calculationCacheEnabled = $resetCache; + + return $result; + } // function calculateFormula() + + + /** + * Parse a cell formula and calculate its value + * + * @param string $formula The formula to parse and calculate + * @param string $cellID The ID (e.g. A3) of the cell that we are calculating + * @param PHPExcel_Cell $pCell Cell to calculate + * @return mixed + * @throws Exception + */ + public function _calculateFormulaValue($formula, $cellID=null, PHPExcel_Cell $pCell = null) { +// echo ''.$cellID.'
'; + $cellValue = ''; + + // Basic validation that this is indeed a formula + // We simply return the "cell value" (formula) if not + $formula = trim($formula); + if ($formula{0} != '=') return self::_wrapResult($formula); + $formula = ltrim(substr($formula,1)); + if (!isset($formula{0})) return self::_wrapResult($formula); + + $wsTitle = "\x00Wrk"; + if ($pCell !== NULL) { + $pCellParent = $pCell->getParent(); + if ($pCellParent !== NULL) { + $wsTitle = $pCellParent->getTitle(); + } + } + // Is calculation cacheing enabled? + if ($cellID !== NULL) { + if (self::$_calculationCacheEnabled) { + // Is the value present in calculation cache? +// echo 'Testing cache value
'; + if (isset(self::$_calculationCache[$wsTitle][$cellID])) { +// echo 'Value is in cache
'; + $this->_writeDebug('Testing cache value for cell '.$cellID); + // Is cache still valid? + if ((microtime(true) - self::$_calculationCache[$wsTitle][$cellID]['time']) < self::$_calculationCacheExpirationTime) { +// echo 'Cache time is still valid
'; + $this->_writeDebug('Retrieving value for '.$cellID.' from cache'); + // Return the cached result + $returnValue = self::$_calculationCache[$wsTitle][$cellID]['data']; +// echo 'Retrieving data value of '.$returnValue.' for '.$cellID.' from cache
'; + if (is_array($returnValue)) { + $returnValue = PHPExcel_Calculation_Functions::flattenArray($returnValue); + return array_shift($returnValue); + } + return $returnValue; + } else { +// echo 'Cache has expired
'; + $this->_writeDebug('Cache value for '.$cellID.' has expired'); + // Clear the cache if it's no longer valid + unset(self::$_calculationCache[$wsTitle][$cellID]); + } + } + } + } + + if ((in_array($wsTitle.'!'.$cellID,$this->debugLogStack)) && ($wsTitle != "\x00Wrk")) { + if ($this->cyclicFormulaCount <= 0) { + return $this->_raiseFormulaError('Cyclic Reference in Formula'); + } elseif (($this->_cyclicFormulaCount >= $this->cyclicFormulaCount) && + ($this->_cyclicFormulaCell == $wsTitle.'!'.$cellID)) { + return $cellValue; + } elseif ($this->_cyclicFormulaCell == $wsTitle.'!'.$cellID) { + ++$this->_cyclicFormulaCount; + if ($this->_cyclicFormulaCount >= $this->cyclicFormulaCount) { + return $cellValue; + } + } elseif ($this->_cyclicFormulaCell == '') { + $this->_cyclicFormulaCell = $wsTitle.'!'.$cellID; + if ($this->_cyclicFormulaCount >= $this->cyclicFormulaCount) { + return $cellValue; + } + } + } + $this->debugLogStack[] = $wsTitle.'!'.$cellID; + // Parse the formula onto the token stack and calculate the value + $cellValue = $this->_processTokenStack($this->_parseFormula($formula, $pCell), $cellID, $pCell); + array_pop($this->debugLogStack); + + // Save to calculation cache + if ($cellID !== NULL) { + if (self::$_calculationCacheEnabled) { + self::$_calculationCache[$wsTitle][$cellID]['time'] = microtime(true); + self::$_calculationCache[$wsTitle][$cellID]['data'] = $cellValue; + } + } + + // Return the calculated value + return $cellValue; + } // function _calculateFormulaValue() + + + /** + * Ensure that paired matrix operands are both matrices and of the same size + * + * @param mixed &$operand1 First matrix operand + * @param mixed &$operand2 Second matrix operand + * @param integer $resize Flag indicating whether the matrices should be resized to match + * and (if so), whether the smaller dimension should grow or the + * larger should shrink. + * 0 = no resize + * 1 = shrink to fit + * 2 = extend to fit + */ + private static function _checkMatrixOperands(&$operand1,&$operand2,$resize = 1) { + // Examine each of the two operands, and turn them into an array if they aren't one already + // Note that this function should only be called if one or both of the operand is already an array + if (!is_array($operand1)) { + list($matrixRows,$matrixColumns) = self::_getMatrixDimensions($operand2); + $operand1 = array_fill(0,$matrixRows,array_fill(0,$matrixColumns,$operand1)); + $resize = 0; + } elseif (!is_array($operand2)) { + list($matrixRows,$matrixColumns) = self::_getMatrixDimensions($operand1); + $operand2 = array_fill(0,$matrixRows,array_fill(0,$matrixColumns,$operand2)); + $resize = 0; + } + + list($matrix1Rows,$matrix1Columns) = self::_getMatrixDimensions($operand1); + list($matrix2Rows,$matrix2Columns) = self::_getMatrixDimensions($operand2); + if (($matrix1Rows == $matrix2Columns) && ($matrix2Rows == $matrix1Columns)) { + $resize = 1; + } + + if ($resize == 2) { + // Given two matrices of (potentially) unequal size, convert the smaller in each dimension to match the larger + self::_resizeMatricesExtend($operand1,$operand2,$matrix1Rows,$matrix1Columns,$matrix2Rows,$matrix2Columns); + } elseif ($resize == 1) { + // Given two matrices of (potentially) unequal size, convert the larger in each dimension to match the smaller + self::_resizeMatricesShrink($operand1,$operand2,$matrix1Rows,$matrix1Columns,$matrix2Rows,$matrix2Columns); + } + return array( $matrix1Rows,$matrix1Columns,$matrix2Rows,$matrix2Columns); + } // function _checkMatrixOperands() + + + /** + * Read the dimensions of a matrix, and re-index it with straight numeric keys starting from row 0, column 0 + * + * @param mixed &$matrix matrix operand + * @return array An array comprising the number of rows, and number of columns + */ + public static function _getMatrixDimensions(&$matrix) { + $matrixRows = count($matrix); + $matrixColumns = 0; + foreach($matrix as $rowKey => $rowValue) { + $matrixColumns = max(count($rowValue),$matrixColumns); + if (!is_array($rowValue)) { + $matrix[$rowKey] = array($rowValue); + } else { + $matrix[$rowKey] = array_values($rowValue); + } + } + $matrix = array_values($matrix); + return array($matrixRows,$matrixColumns); + } // function _getMatrixDimensions() + + + /** + * Ensure that paired matrix operands are both matrices of the same size + * + * @param mixed &$matrix1 First matrix operand + * @param mixed &$matrix2 Second matrix operand + */ + private static function _resizeMatricesShrink(&$matrix1,&$matrix2,$matrix1Rows,$matrix1Columns,$matrix2Rows,$matrix2Columns) { + if (($matrix2Columns < $matrix1Columns) || ($matrix2Rows < $matrix1Rows)) { + if ($matrix2Columns < $matrix1Columns) { + for ($i = 0; $i < $matrix1Rows; ++$i) { + for ($j = $matrix2Columns; $j < $matrix1Columns; ++$j) { + unset($matrix1[$i][$j]); + } + } + } + if ($matrix2Rows < $matrix1Rows) { + for ($i = $matrix2Rows; $i < $matrix1Rows; ++$i) { + unset($matrix1[$i]); + } + } + } + + if (($matrix1Columns < $matrix2Columns) || ($matrix1Rows < $matrix2Rows)) { + if ($matrix1Columns < $matrix2Columns) { + for ($i = 0; $i < $matrix2Rows; ++$i) { + for ($j = $matrix1Columns; $j < $matrix2Columns; ++$j) { + unset($matrix2[$i][$j]); + } + } + } + if ($matrix1Rows < $matrix2Rows) { + for ($i = $matrix1Rows; $i < $matrix2Rows; ++$i) { + unset($matrix2[$i]); + } + } + } + } // function _resizeMatricesShrink() + + + /** + * Ensure that paired matrix operands are both matrices of the same size + * + * @param mixed &$matrix1 First matrix operand + * @param mixed &$matrix2 Second matrix operand + */ + private static function _resizeMatricesExtend(&$matrix1,&$matrix2,$matrix1Rows,$matrix1Columns,$matrix2Rows,$matrix2Columns) { + if (($matrix2Columns < $matrix1Columns) || ($matrix2Rows < $matrix1Rows)) { + if ($matrix2Columns < $matrix1Columns) { + for ($i = 0; $i < $matrix2Rows; ++$i) { + $x = $matrix2[$i][$matrix2Columns-1]; + for ($j = $matrix2Columns; $j < $matrix1Columns; ++$j) { + $matrix2[$i][$j] = $x; + } + } + } + if ($matrix2Rows < $matrix1Rows) { + $x = $matrix2[$matrix2Rows-1]; + for ($i = 0; $i < $matrix1Rows; ++$i) { + $matrix2[$i] = $x; + } + } + } + + if (($matrix1Columns < $matrix2Columns) || ($matrix1Rows < $matrix2Rows)) { + if ($matrix1Columns < $matrix2Columns) { + for ($i = 0; $i < $matrix1Rows; ++$i) { + $x = $matrix1[$i][$matrix1Columns-1]; + for ($j = $matrix1Columns; $j < $matrix2Columns; ++$j) { + $matrix1[$i][$j] = $x; + } + } + } + if ($matrix1Rows < $matrix2Rows) { + $x = $matrix1[$matrix1Rows-1]; + for ($i = 0; $i < $matrix2Rows; ++$i) { + $matrix1[$i] = $x; + } + } + } + } // function _resizeMatricesExtend() + + + /** + * Format details of an operand for display in the log (based on operand type) + * + * @param mixed $value First matrix operand + * @return mixed + */ + private function _showValue($value) { + if ($this->writeDebugLog) { + $testArray = PHPExcel_Calculation_Functions::flattenArray($value); + if (count($testArray) == 1) { + $value = array_pop($testArray); + } + + if (is_array($value)) { + $returnMatrix = array(); + $pad = $rpad = ', '; + foreach($value as $row) { + if (is_array($row)) { + $returnMatrix[] = implode($pad,array_map(array($this,'_showValue'),$row)); + $rpad = '; '; + } else { + $returnMatrix[] = $this->_showValue($row); + } + } + return '{ '.implode($rpad,$returnMatrix).' }'; + } elseif(is_string($value) && (trim($value,'"') == $value)) { + return '"'.$value.'"'; + } elseif(is_bool($value)) { + return ($value) ? self::$_localeBoolean['TRUE'] : self::$_localeBoolean['FALSE']; + } + } + return PHPExcel_Calculation_Functions::flattenSingleValue($value); + } // function _showValue() + + + /** + * Format type and details of an operand for display in the log (based on operand type) + * + * @param mixed $value First matrix operand + * @return mixed + */ + private function _showTypeDetails($value) { + if ($this->writeDebugLog) { + $testArray = PHPExcel_Calculation_Functions::flattenArray($value); + if (count($testArray) == 1) { + $value = array_pop($testArray); + } + + if ($value === NULL) { + return 'a NULL value'; + } elseif (is_float($value)) { + $typeString = 'a floating point number'; + } elseif(is_int($value)) { + $typeString = 'an integer number'; + } elseif(is_bool($value)) { + $typeString = 'a boolean'; + } elseif(is_array($value)) { + $typeString = 'a matrix'; + } else { + if ($value == '') { + return 'an empty string'; + } elseif ($value{0} == '#') { + return 'a '.$value.' error'; + } else { + $typeString = 'a string'; + } + } + return $typeString.' with a value of '.$this->_showValue($value); + } + } // function _showTypeDetails() + + + private static function _convertMatrixReferences($formula) { + static $matrixReplaceFrom = array('{',';','}'); + static $matrixReplaceTo = array('MKMATRIX(MKMATRIX(','),MKMATRIX(','))'); + + // Convert any Excel matrix references to the MKMATRIX() function + if (strpos($formula,'{') !== false) { + // If there is the possibility of braces within a quoted string, then we don't treat those as matrix indicators + if (strpos($formula,'"') !== false) { + // So instead we skip replacing in any quoted strings by only replacing in every other array element after we've exploded + // the formula + $temp = explode('"',$formula); + // Open and Closed counts used for trapping mismatched braces in the formula + $openCount = $closeCount = 0; + $i = false; + foreach($temp as &$value) { + // Only count/replace in alternating array entries + if ($i = !$i) { + $openCount += substr_count($value,'{'); + $closeCount += substr_count($value,'}'); + $value = str_replace($matrixReplaceFrom,$matrixReplaceTo,$value); + } + } + unset($value); + // Then rebuild the formula string + $formula = implode('"',$temp); + } else { + // If there's no quoted strings, then we do a simple count/replace + $openCount = substr_count($formula,'{'); + $closeCount = substr_count($formula,'}'); + $formula = str_replace($matrixReplaceFrom,$matrixReplaceTo,$formula); + } + // Trap for mismatched braces and trigger an appropriate error + if ($openCount < $closeCount) { + if ($openCount > 0) { + return $this->_raiseFormulaError("Formula Error: Mismatched matrix braces '}'"); + } else { + return $this->_raiseFormulaError("Formula Error: Unexpected '}' encountered"); + } + } elseif ($openCount > $closeCount) { + if ($closeCount > 0) { + return $this->_raiseFormulaError("Formula Error: Mismatched matrix braces '{'"); + } else { + return $this->_raiseFormulaError("Formula Error: Unexpected '{' encountered"); + } + } + } + + return $formula; + } // function _convertMatrixReferences() + + + private static function _mkMatrix() { + return func_get_args(); + } // function _mkMatrix() + + + // Convert infix to postfix notation + private function _parseFormula($formula, PHPExcel_Cell $pCell = null) { + if (($formula = self::_convertMatrixReferences(trim($formula))) === false) { + return FALSE; + } + + // If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent worksheet), + // so we store the parent worksheet so that we can re-attach it when necessary + $pCellParent = ($pCell !== NULL) ? $pCell->getParent() : NULL; + + // Binary Operators + // These operators always work on two values + // Array key is the operator, the value indicates whether this is a left or right associative operator + $operatorAssociativity = array('^' => 0, // Exponentiation + '*' => 0, '/' => 0, // Multiplication and Division + '+' => 0, '-' => 0, // Addition and Subtraction + '&' => 0, // Concatenation + '|' => 0, ':' => 0, // Intersect and Range + '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0 // Comparison + ); + // Comparison (Boolean) Operators + // These operators work on two values, but always return a boolean result + $comparisonOperators = array('>' => true, '<' => true, '=' => true, '>=' => true, '<=' => true, '<>' => true); + + // Operator Precedence + // This list includes all valid operators, whether binary (including boolean) or unary (such as %) + // Array key is the operator, the value is its precedence + $operatorPrecedence = array(':' => 8, // Range + '|' => 7, // Intersect + '~' => 6, // Negation + '%' => 5, // Percentage + '^' => 4, // Exponentiation + '*' => 3, '/' => 3, // Multiplication and Division + '+' => 2, '-' => 2, // Addition and Subtraction + '&' => 1, // Concatenation + '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0 // Comparison + ); + + $regexpMatchString = '/^('.self::CALCULATION_REGEXP_FUNCTION. + '|'.self::CALCULATION_REGEXP_NUMBER. + '|'.self::CALCULATION_REGEXP_STRING. + '|'.self::CALCULATION_REGEXP_OPENBRACE. + '|'.self::CALCULATION_REGEXP_CELLREF. + '|'.self::CALCULATION_REGEXP_NAMEDRANGE. + '|'.self::CALCULATION_REGEXP_ERROR. + ')/si'; + + // Start with initialisation + $index = 0; + $stack = new PHPExcel_Calculation_Token_Stack; + $output = array(); + $expectingOperator = false; // We use this test in syntax-checking the expression to determine when a + // - is a negation or + is a positive operator rather than an operation + $expectingOperand = false; // We use this test in syntax-checking the expression to determine whether an operand + // should be null in a function call + // The guts of the lexical parser + // Loop through the formula extracting each operator and operand in turn + while(true) { +// echo 'Assessing Expression '.substr($formula, $index).'
'; + $opCharacter = $formula{$index}; // Get the first character of the value at the current index position +// echo 'Initial character of expression block is '.$opCharacter.'
'; + if ((isset($comparisonOperators[$opCharacter])) && (strlen($formula) > $index) && (isset($comparisonOperators[$formula{$index+1}]))) { + $opCharacter .= $formula{++$index}; +// echo 'Initial character of expression block is comparison operator '.$opCharacter.'
'; + } + + // Find out if we're currently at the beginning of a number, variable, cell reference, function, parenthesis or operand + $isOperandOrFunction = preg_match($regexpMatchString, substr($formula, $index), $match); +// echo '$isOperandOrFunction is '.(($isOperandOrFunction) ? 'True' : 'False').'
'; +// var_dump($match); + + if ($opCharacter == '-' && !$expectingOperator) { // Is it a negation instead of a minus? +// echo 'Element is a Negation operator
'; + $stack->push('Unary Operator','~'); // Put a negation on the stack + ++$index; // and drop the negation symbol + } elseif ($opCharacter == '%' && $expectingOperator) { +// echo 'Element is a Percentage operator
'; + $stack->push('Unary Operator','%'); // Put a percentage on the stack + ++$index; + } elseif ($opCharacter == '+' && !$expectingOperator) { // Positive (unary plus rather than binary operator plus) can be discarded? +// echo 'Element is a Positive number, not Plus operator
'; + ++$index; // Drop the redundant plus symbol + } elseif ((($opCharacter == '~') || ($opCharacter == '|')) && (!$isOperandOrFunction)) { // We have to explicitly deny a tilde or pipe, because they are legal + return $this->_raiseFormulaError("Formula Error: Illegal character '~'"); // on the stack but not in the input expression + + } elseif ((isset(self::$_operators[$opCharacter]) or $isOperandOrFunction) && $expectingOperator) { // Are we putting an operator on the stack? +// echo 'Element with value '.$opCharacter.' is an Operator
'; + while($stack->count() > 0 && + ($o2 = $stack->last()) && + isset(self::$_operators[$o2['value']]) && + @($operatorAssociativity[$opCharacter] ? $operatorPrecedence[$opCharacter] < $operatorPrecedence[$o2['value']] : $operatorPrecedence[$opCharacter] <= $operatorPrecedence[$o2['value']])) { + $output[] = $stack->pop(); // Swap operands and higher precedence operators from the stack to the output + } + $stack->push('Binary Operator',$opCharacter); // Finally put our current operator onto the stack + ++$index; + $expectingOperator = false; + + } elseif ($opCharacter == ')' && $expectingOperator) { // Are we expecting to close a parenthesis? +// echo 'Element is a Closing bracket
'; + $expectingOperand = false; + while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last ( + if ($o2 === NULL) return $this->_raiseFormulaError('Formula Error: Unexpected closing brace ")"'); + else $output[] = $o2; + } + $d = $stack->last(2); + if (preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $d['value'], $matches)) { // Did this parenthesis just close a function? + $functionName = $matches[1]; // Get the function name +// echo 'Closed Function is '.$functionName.'
'; + $d = $stack->pop(); + $argumentCount = $d['value']; // See how many arguments there were (argument count is the next value stored on the stack) +// if ($argumentCount == 0) { +// echo 'With no arguments
'; +// } elseif ($argumentCount == 1) { +// echo 'With 1 argument
'; +// } else { +// echo 'With '.$argumentCount.' arguments
'; +// } + $output[] = $d; // Dump the argument count on the output + $output[] = $stack->pop(); // Pop the function and push onto the output + if (isset(self::$_controlFunctions[$functionName])) { +// echo 'Built-in function '.$functionName.'
'; + $expectedArgumentCount = self::$_controlFunctions[$functionName]['argumentCount']; + $functionCall = self::$_controlFunctions[$functionName]['functionCall']; + } elseif (isset(self::$_PHPExcelFunctions[$functionName])) { +// echo 'PHPExcel function '.$functionName.'
'; + $expectedArgumentCount = self::$_PHPExcelFunctions[$functionName]['argumentCount']; + $functionCall = self::$_PHPExcelFunctions[$functionName]['functionCall']; + } else { // did we somehow push a non-function on the stack? this should never happen + return $this->_raiseFormulaError("Formula Error: Internal error, non-function on stack"); + } + // Check the argument count + $argumentCountError = false; + if (is_numeric($expectedArgumentCount)) { + if ($expectedArgumentCount < 0) { +// echo '$expectedArgumentCount is between 0 and '.abs($expectedArgumentCount).'
'; + if ($argumentCount > abs($expectedArgumentCount)) { + $argumentCountError = true; + $expectedArgumentCountString = 'no more than '.abs($expectedArgumentCount); + } + } else { +// echo '$expectedArgumentCount is numeric '.$expectedArgumentCount.'
'; + if ($argumentCount != $expectedArgumentCount) { + $argumentCountError = true; + $expectedArgumentCountString = $expectedArgumentCount; + } + } + } elseif ($expectedArgumentCount != '*') { + $isOperandOrFunction = preg_match('/(\d*)([-+,])(\d*)/',$expectedArgumentCount,$argMatch); +// print_r($argMatch); +// echo '
'; + switch ($argMatch[2]) { + case '+' : + if ($argumentCount < $argMatch[1]) { + $argumentCountError = true; + $expectedArgumentCountString = $argMatch[1].' or more '; + } + break; + case '-' : + if (($argumentCount < $argMatch[1]) || ($argumentCount > $argMatch[3])) { + $argumentCountError = true; + $expectedArgumentCountString = 'between '.$argMatch[1].' and '.$argMatch[3]; + } + break; + case ',' : + if (($argumentCount != $argMatch[1]) && ($argumentCount != $argMatch[3])) { + $argumentCountError = true; + $expectedArgumentCountString = 'either '.$argMatch[1].' or '.$argMatch[3]; + } + break; + } + } + if ($argumentCountError) { + return $this->_raiseFormulaError("Formula Error: Wrong number of arguments for $functionName() function: $argumentCount given, ".$expectedArgumentCountString." expected"); + } + } + ++$index; + + } elseif ($opCharacter == ',') { // Is this the separator for function arguments? +// echo 'Element is a Function argument separator
'; + while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last ( + if ($o2 === NULL) return $this->_raiseFormulaError("Formula Error: Unexpected ,"); + else $output[] = $o2; // pop the argument expression stuff and push onto the output + } + // If we've a comma when we're expecting an operand, then what we actually have is a null operand; + // so push a null onto the stack + if (($expectingOperand) || (!$expectingOperator)) { + $output[] = array('type' => 'NULL Value', 'value' => self::$_ExcelConstants['NULL'], 'reference' => null); + } + // make sure there was a function + $d = $stack->last(2); + if (!preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $d['value'], $matches)) + return $this->_raiseFormulaError("Formula Error: Unexpected ,"); + $d = $stack->pop(); + $stack->push($d['type'],++$d['value'],$d['reference']); // increment the argument count + $stack->push('Brace', '('); // put the ( back on, we'll need to pop back to it again + $expectingOperator = false; + $expectingOperand = true; + ++$index; + + } elseif ($opCharacter == '(' && !$expectingOperator) { +// echo 'Element is an Opening Bracket
'; + $stack->push('Brace', '('); + ++$index; + + } elseif ($isOperandOrFunction && !$expectingOperator) { // do we now have a function/variable/number? + $expectingOperator = true; + $expectingOperand = false; + $val = $match[1]; + $length = strlen($val); +// echo 'Element with value '.$val.' is an Operand, Variable, Constant, String, Number, Cell Reference or Function
'; + + if (preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $val, $matches)) { + $val = preg_replace('/\s/','',$val); +// echo 'Element '.$val.' is a Function
'; + if (isset(self::$_PHPExcelFunctions[strtoupper($matches[1])]) || isset(self::$_controlFunctions[strtoupper($matches[1])])) { // it's a function + $stack->push('Function', strtoupper($val)); + $ax = preg_match('/^\s*(\s*\))/i', substr($formula, $index+$length), $amatch); + if ($ax) { + $stack->push('Operand Count for Function '.strtoupper($val).')', 0); + $expectingOperator = true; + } else { + $stack->push('Operand Count for Function '.strtoupper($val).')', 1); + $expectingOperator = false; + } + $stack->push('Brace', '('); + } else { // it's a var w/ implicit multiplication + $output[] = array('type' => 'Value', 'value' => $matches[1], 'reference' => null); + } + } elseif (preg_match('/^'.self::CALCULATION_REGEXP_CELLREF.'$/i', $val, $matches)) { +// echo 'Element '.$val.' is a Cell reference
'; + // Watch for this case-change when modifying to allow cell references in different worksheets... + // Should only be applied to the actual cell column, not the worksheet name + + // If the last entry on the stack was a : operator, then we have a cell range reference + $testPrevOp = $stack->last(1); + if ($testPrevOp['value'] == ':') { + // If we have a worksheet reference, then we're playing with a 3D reference + if ($matches[2] == '') { + // Otherwise, we 'inherit' the worksheet reference from the start cell reference + // The start of the cell range reference should be the last entry in $output + $startCellRef = $output[count($output)-1]['value']; + preg_match('/^'.self::CALCULATION_REGEXP_CELLREF.'$/i', $startCellRef, $startMatches); + if ($startMatches[2] > '') { + $val = $startMatches[2].'!'.$val; + } + } else { + return $this->_raiseFormulaError("3D Range references are not yet supported"); + } + } + + $output[] = array('type' => 'Cell Reference', 'value' => $val, 'reference' => $val); +// $expectingOperator = false; + } else { // it's a variable, constant, string, number or boolean +// echo 'Element is a Variable, Constant, String, Number or Boolean
'; + // If the last entry on the stack was a : operator, then we may have a row or column range reference + $testPrevOp = $stack->last(1); + if ($testPrevOp['value'] == ':') { + $startRowColRef = $output[count($output)-1]['value']; + $rangeWS1 = ''; + if (strpos('!',$startRowColRef) !== false) { + list($rangeWS1,$startRowColRef) = explode('!',$startRowColRef); + } + if ($rangeWS1 != '') $rangeWS1 .= '!'; + $rangeWS2 = $rangeWS1; + if (strpos('!',$val) !== false) { + list($rangeWS2,$val) = explode('!',$val); + } + if ($rangeWS2 != '') $rangeWS2 .= '!'; + if ((is_integer($startRowColRef)) && (ctype_digit($val)) && + ($startRowColRef <= 1048576) && ($val <= 1048576)) { + // Row range + $endRowColRef = ($pCellParent !== NULL) ? $pCellParent->getHighestColumn() : 'XFD'; // Max 16,384 columns for Excel2007 + $output[count($output)-1]['value'] = $rangeWS1.'A'.$startRowColRef; + $val = $rangeWS2.$endRowColRef.$val; + } elseif ((ctype_alpha($startRowColRef)) && (ctype_alpha($val)) && + (strlen($startRowColRef) <= 3) && (strlen($val) <= 3)) { + // Column range + $endRowColRef = ($pCellParent !== NULL) ? $pCellParent->getHighestRow() : 1048576; // Max 1,048,576 rows for Excel2007 + $output[count($output)-1]['value'] = $rangeWS1.strtoupper($startRowColRef).'1'; + $val = $rangeWS2.$val.$endRowColRef; + } + } + + $localeConstant = false; + if ($opCharacter == '"') { +// echo 'Element is a String
'; + // UnEscape any quotes within the string + $val = self::_wrapResult(str_replace('""','"',self::_unwrapResult($val))); + } elseif (is_numeric($val)) { +// echo 'Element is a Number
'; + if ((strpos($val,'.') !== false) || (stripos($val,'e') !== false) || ($val > PHP_INT_MAX) || ($val < -PHP_INT_MAX)) { +// echo 'Casting '.$val.' to float
'; + $val = (float) $val; + } else { +// echo 'Casting '.$val.' to integer
'; + $val = (integer) $val; + } + } elseif (isset(self::$_ExcelConstants[trim(strtoupper($val))])) { + $excelConstant = trim(strtoupper($val)); +// echo 'Element '.$excelConstant.' is an Excel Constant
'; + $val = self::$_ExcelConstants[$excelConstant]; + } elseif (($localeConstant = array_search(trim(strtoupper($val)), self::$_localeBoolean)) !== false) { +// echo 'Element '.$localeConstant.' is an Excel Constant
'; + $val = self::$_ExcelConstants[$localeConstant]; + } + $details = array('type' => 'Value', 'value' => $val, 'reference' => null); + if ($localeConstant) { $details['localeValue'] = $localeConstant; } + $output[] = $details; + } + $index += $length; + + } elseif ($opCharacter == '$') { // absolute row or column range + ++$index; + } elseif ($opCharacter == ')') { // miscellaneous error checking + if ($expectingOperand) { + $output[] = array('type' => 'NULL Value', 'value' => self::$_ExcelConstants['NULL'], 'reference' => null); + $expectingOperand = false; + $expectingOperator = true; + } else { + return $this->_raiseFormulaError("Formula Error: Unexpected ')'"); + } + } elseif (isset(self::$_operators[$opCharacter]) && !$expectingOperator) { + return $this->_raiseFormulaError("Formula Error: Unexpected operator '$opCharacter'"); + } else { // I don't even want to know what you did to get here + return $this->_raiseFormulaError("Formula Error: An unexpected error occured"); + } + // Test for end of formula string + if ($index == strlen($formula)) { + // Did we end with an operator?. + // Only valid for the % unary operator + if ((isset(self::$_operators[$opCharacter])) && ($opCharacter != '%')) { + return $this->_raiseFormulaError("Formula Error: Operator '$opCharacter' has no operands"); + } else { + break; + } + } + // Ignore white space + while (($formula{$index} == "\n") || ($formula{$index} == "\r")) { + ++$index; + } + if ($formula{$index} == ' ') { + while ($formula{$index} == ' ') { + ++$index; + } + // If we're expecting an operator, but only have a space between the previous and next operands (and both are + // Cell References) then we have an INTERSECTION operator +// echo 'Possible Intersect Operator
'; + if (($expectingOperator) && (preg_match('/^'.self::CALCULATION_REGEXP_CELLREF.'.*/Ui', substr($formula, $index), $match)) && + ($output[count($output)-1]['type'] == 'Cell Reference')) { +// echo 'Element is an Intersect Operator
'; + while($stack->count() > 0 && + ($o2 = $stack->last()) && + isset(self::$_operators[$o2['value']]) && + @($operatorAssociativity[$opCharacter] ? $operatorPrecedence[$opCharacter] < $operatorPrecedence[$o2['value']] : $operatorPrecedence[$opCharacter] <= $operatorPrecedence[$o2['value']])) { + $output[] = $stack->pop(); // Swap operands and higher precedence operators from the stack to the output + } + $stack->push('Binary Operator','|'); // Put an Intersect Operator on the stack + $expectingOperator = false; + } + } + } + + while (($op = $stack->pop()) !== NULL) { // pop everything off the stack and push onto output + if ((is_array($opCharacter) && $opCharacter['value'] == '(') || ($opCharacter === '(')) + return $this->_raiseFormulaError("Formula Error: Expecting ')'"); // if there are any opening braces on the stack, then braces were unbalanced + $output[] = $op; + } + return $output; + } // function _parseFormula() + + + private static function _dataTestReference(&$operandData) + { + $operand = $operandData['value']; + if (($operandData['reference'] === NULL) && (is_array($operand))) { + $rKeys = array_keys($operand); + $rowKey = array_shift($rKeys); + $cKeys = array_keys(array_keys($operand[$rowKey])); + $colKey = array_shift($cKeys); + if (ctype_upper($colKey)) { + $operandData['reference'] = $colKey.$rowKey; + } + } + return $operand; + } + + // evaluate postfix notation + private function _processTokenStack($tokens, $cellID = null, PHPExcel_Cell $pCell = null) { + if ($tokens == false) return false; + + // If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent worksheet), + // so we store the parent worksheet so that we can re-attach it when necessary + $pCellParent = ($pCell !== NULL) ? $pCell->getParent() : null; + $stack = new PHPExcel_Calculation_Token_Stack; + + // Loop through each token in turn + foreach ($tokens as $tokenData) { +// print_r($tokenData); +// echo '
'; + $token = $tokenData['value']; +// echo 'Token is '.$token.'
'; + // if the token is a binary operator, pop the top two values off the stack, do the operation, and push the result back on the stack + if (isset(self::$_binaryOperators[$token])) { +// echo 'Token is a binary operator
'; + // We must have two operands, error if we don't + if (($operand2Data = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); + if (($operand1Data = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); + + $operand1 = self::_dataTestReference($operand1Data); + $operand2 = self::_dataTestReference($operand2Data); + + // Log what we're doing + if ($token == ':') { + $this->_writeDebug('Evaluating Range '.$this->_showValue($operand1Data['reference']).$token.$this->_showValue($operand2Data['reference'])); + } else { + $this->_writeDebug('Evaluating '.$this->_showValue($operand1).' '.$token.' '.$this->_showValue($operand2)); + } + + // Process the operation in the appropriate manner + switch ($token) { + // Comparison (Boolean) Operators + case '>' : // Greater than + case '<' : // Less than + case '>=' : // Greater than or Equal to + case '<=' : // Less than or Equal to + case '=' : // Equality + case '<>' : // Inequality + $this->_executeBinaryComparisonOperation($cellID,$operand1,$operand2,$token,$stack); + break; + // Binary Operators + case ':' : // Range + $sheet1 = $sheet2 = ''; + if (strpos($operand1Data['reference'],'!') !== false) { + list($sheet1,$operand1Data['reference']) = explode('!',$operand1Data['reference']); + } else { + $sheet1 = ($pCellParent !== NULL) ? $pCellParent->getTitle() : ''; + } + if (strpos($operand2Data['reference'],'!') !== false) { + list($sheet2,$operand2Data['reference']) = explode('!',$operand2Data['reference']); + } else { + $sheet2 = $sheet1; + } + if ($sheet1 == $sheet2) { + if ($operand1Data['reference'] === NULL) { + if ((trim($operand1Data['value']) != '') && (is_numeric($operand1Data['value']))) { + $operand1Data['reference'] = $pCell->getColumn().$operand1Data['value']; + } elseif (trim($operand1Data['reference']) == '') { + $operand1Data['reference'] = $pCell->getCoordinate(); + } else { + $operand1Data['reference'] = $operand1Data['value'].$pCell->getRow(); + } + } + if ($operand2Data['reference'] === NULL) { + if ((trim($operand2Data['value']) != '') && (is_numeric($operand2Data['value']))) { + $operand2Data['reference'] = $pCell->getColumn().$operand2Data['value']; + } elseif (trim($operand2Data['reference']) == '') { + $operand2Data['reference'] = $pCell->getCoordinate(); + } else { + $operand2Data['reference'] = $operand2Data['value'].$pCell->getRow(); + } + } + + $oData = array_merge(explode(':',$operand1Data['reference']),explode(':',$operand2Data['reference'])); + $oCol = $oRow = array(); + foreach($oData as $oDatum) { + $oCR = PHPExcel_Cell::coordinateFromString($oDatum); + $oCol[] = PHPExcel_Cell::columnIndexFromString($oCR[0]) - 1; + $oRow[] = $oCR[1]; + } + $cellRef = PHPExcel_Cell::stringFromColumnIndex(min($oCol)).min($oRow).':'.PHPExcel_Cell::stringFromColumnIndex(max($oCol)).max($oRow); + if ($pCellParent !== NULL) { + $cellValue = $this->extractCellRange($cellRef, $pCellParent->getParent()->getSheetByName($sheet1), false); + } else { + return $this->_raiseFormulaError('Unable to access Cell Reference'); + } + $stack->push('Cell Reference',$cellValue,$cellRef); + } else { + $stack->push('Error',PHPExcel_Calculation_Functions::REF(),null); + } + + break; + case '+' : // Addition + $this->_executeNumericBinaryOperation($cellID,$operand1,$operand2,$token,'plusEquals',$stack); + break; + case '-' : // Subtraction + $this->_executeNumericBinaryOperation($cellID,$operand1,$operand2,$token,'minusEquals',$stack); + break; + case '*' : // Multiplication + $this->_executeNumericBinaryOperation($cellID,$operand1,$operand2,$token,'arrayTimesEquals',$stack); + break; + case '/' : // Division + $this->_executeNumericBinaryOperation($cellID,$operand1,$operand2,$token,'arrayRightDivide',$stack); + break; + case '^' : // Exponential + $this->_executeNumericBinaryOperation($cellID,$operand1,$operand2,$token,'power',$stack); + break; + case '&' : // Concatenation + // If either of the operands is a matrix, we need to treat them both as matrices + // (converting the other operand to a matrix if need be); then perform the required + // matrix operation + if (is_bool($operand1)) { + $operand1 = ($operand1) ? self::$_localeBoolean['TRUE'] : self::$_localeBoolean['FALSE']; + } + if (is_bool($operand2)) { + $operand2 = ($operand2) ? self::$_localeBoolean['TRUE'] : self::$_localeBoolean['FALSE']; + } + if ((is_array($operand1)) || (is_array($operand2))) { + // Ensure that both operands are arrays/matrices + self::_checkMatrixOperands($operand1,$operand2,2); + try { + // Convert operand 1 from a PHP array to a matrix + $matrix = new PHPExcel_Shared_JAMA_Matrix($operand1); + // Perform the required operation against the operand 1 matrix, passing in operand 2 + $matrixResult = $matrix->concat($operand2); + $result = $matrixResult->getArray(); + } catch (Exception $ex) { + $this->_writeDebug('JAMA Matrix Exception: '.$ex->getMessage()); + $result = '#VALUE!'; + } + } else { + $result = '"'.str_replace('""','"',self::_unwrapResult($operand1,'"').self::_unwrapResult($operand2,'"')).'"'; + } + $this->_writeDebug('Evaluation Result is '.$this->_showTypeDetails($result)); + $stack->push('Value',$result); + break; + case '|' : // Intersect + $rowIntersect = array_intersect_key($operand1,$operand2); + $cellIntersect = $oCol = $oRow = array(); + foreach(array_keys($rowIntersect) as $row) { + $oRow[] = $row; + foreach($rowIntersect[$row] as $col => $data) { + $oCol[] = PHPExcel_Cell::columnIndexFromString($col) - 1; + $cellIntersect[$row] = array_intersect_key($operand1[$row],$operand2[$row]); + } + } + $cellRef = PHPExcel_Cell::stringFromColumnIndex(min($oCol)).min($oRow).':'.PHPExcel_Cell::stringFromColumnIndex(max($oCol)).max($oRow); + $this->_writeDebug('Evaluation Result is '.$this->_showTypeDetails($cellIntersect)); + $stack->push('Value',$cellIntersect,$cellRef); + break; + } + + // if the token is a unary operator, pop one value off the stack, do the operation, and push it back on + } elseif (($token === '~') || ($token === '%')) { +// echo 'Token is a unary operator
'; + if (($arg = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); + $arg = $arg['value']; + if ($token === '~') { +// echo 'Token is a negation operator
'; + $this->_writeDebug('Evaluating Negation of '.$this->_showValue($arg)); + $multiplier = -1; + } else { +// echo 'Token is a percentile operator
'; + $this->_writeDebug('Evaluating Percentile of '.$this->_showValue($arg)); + $multiplier = 0.01; + } + if (is_array($arg)) { + self::_checkMatrixOperands($arg,$multiplier,2); + try { + $matrix1 = new PHPExcel_Shared_JAMA_Matrix($arg); + $matrixResult = $matrix1->arrayTimesEquals($multiplier); + $result = $matrixResult->getArray(); + } catch (Exception $ex) { + $this->_writeDebug('JAMA Matrix Exception: '.$ex->getMessage()); + $result = '#VALUE!'; + } + $this->_writeDebug('Evaluation Result is '.$this->_showTypeDetails($result)); + $stack->push('Value',$result); + } else { + $this->_executeNumericBinaryOperation($cellID,$multiplier,$arg,'*','arrayTimesEquals',$stack); + } + + } elseif (preg_match('/^'.self::CALCULATION_REGEXP_CELLREF.'$/i', $token, $matches)) { + $cellRef = null; +// echo 'Element '.$token.' is a Cell reference
'; + if (isset($matches[8])) { +// echo 'Reference is a Range of cells
'; + if ($pCell === NULL) { +// We can't access the range, so return a REF error + $cellValue = PHPExcel_Calculation_Functions::REF(); + } else { + $cellRef = $matches[6].$matches[7].':'.$matches[9].$matches[10]; + if ($matches[2] > '') { + $matches[2] = trim($matches[2],"\"'"); + if ((strpos($matches[2],'[') !== false) || (strpos($matches[2],']') !== false)) { + // It's a Reference to an external workbook (not currently supported) + return $this->_raiseFormulaError('Unable to access External Workbook'); + } + $matches[2] = trim($matches[2],"\"'"); +// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'
'; + $this->_writeDebug('Evaluating Cell Range '.$cellRef.' in worksheet '.$matches[2]); + if ($pCellParent !== NULL) { + $cellValue = $this->extractCellRange($cellRef, $pCellParent->getParent()->getSheetByName($matches[2]), false); + } else { + return $this->_raiseFormulaError('Unable to access Cell Reference'); + } + $this->_writeDebug('Evaluation Result for cells '.$cellRef.' in worksheet '.$matches[2].' is '.$this->_showTypeDetails($cellValue)); +// $cellRef = $matches[2].'!'.$cellRef; + } else { +// echo '$cellRef='.$cellRef.' in current worksheet
'; + $this->_writeDebug('Evaluating Cell Range '.$cellRef.' in current worksheet'); + if ($pCellParent !== NULL) { + $cellValue = $this->extractCellRange($cellRef, $pCellParent, false); + } else { + return $this->_raiseFormulaError('Unable to access Cell Reference'); + } + $this->_writeDebug('Evaluation Result for cells '.$cellRef.' is '.$this->_showTypeDetails($cellValue)); + } + } + } else { +// echo 'Reference is a single Cell
'; + if ($pCell === NULL) { +// We can't access the cell, so return a REF error + $cellValue = PHPExcel_Calculation_Functions::REF(); + } else { + $cellRef = $matches[6].$matches[7]; + if ($matches[2] > '') { + $matches[2] = trim($matches[2],"\"'"); + if ((strpos($matches[2],'[') !== false) || (strpos($matches[2],']') !== false)) { + // It's a Reference to an external workbook (not currently supported) + return $this->_raiseFormulaError('Unable to access External Workbook'); + } +// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'
'; + $this->_writeDebug('Evaluating Cell '.$cellRef.' in worksheet '.$matches[2]); + if ($pCellParent !== NULL) { + if ($pCellParent->getParent()->getSheetByName($matches[2])->cellExists($cellRef)) { + $cellValue = $this->extractCellRange($cellRef, $pCellParent->getParent()->getSheetByName($matches[2]), false); + $pCell->attach($pCellParent); + } else { + $cellValue = null; + } + } else { + return $this->_raiseFormulaError('Unable to access Cell Reference'); + } + $this->_writeDebug('Evaluation Result for cell '.$cellRef.' in worksheet '.$matches[2].' is '.$this->_showTypeDetails($cellValue)); +// $cellRef = $matches[2].'!'.$cellRef; + } else { +// echo '$cellRef='.$cellRef.' in current worksheet
'; + $this->_writeDebug('Evaluating Cell '.$cellRef.' in current worksheet'); + if ($pCellParent->cellExists($cellRef)) { + $cellValue = $this->extractCellRange($cellRef, $pCellParent, false); + $pCell->attach($pCellParent); + } else { + $cellValue = null; + } + $this->_writeDebug('Evaluation Result for cell '.$cellRef.' is '.$this->_showTypeDetails($cellValue)); + } + } + } + $stack->push('Value',$cellValue,$cellRef); + + // if the token is a function, pop arguments off the stack, hand them to the function, and push the result back on + } elseif (preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $token, $matches)) { +// echo 'Token is a function
'; + $functionName = $matches[1]; + $argCount = $stack->pop(); + $argCount = $argCount['value']; + if ($functionName != 'MKMATRIX') { + $this->_writeDebug('Evaluating Function '.self::_localeFunc($functionName).'() with '.(($argCount == 0) ? 'no' : $argCount).' argument'.(($argCount == 1) ? '' : 's')); + } + if ((isset(self::$_PHPExcelFunctions[$functionName])) || (isset(self::$_controlFunctions[$functionName]))) { // function + if (isset(self::$_PHPExcelFunctions[$functionName])) { + $functionCall = self::$_PHPExcelFunctions[$functionName]['functionCall']; + $passByReference = isset(self::$_PHPExcelFunctions[$functionName]['passByReference']); + $passCellReference = isset(self::$_PHPExcelFunctions[$functionName]['passCellReference']); + } elseif (isset(self::$_controlFunctions[$functionName])) { + $functionCall = self::$_controlFunctions[$functionName]['functionCall']; + $passByReference = isset(self::$_controlFunctions[$functionName]['passByReference']); + $passCellReference = isset(self::$_controlFunctions[$functionName]['passCellReference']); + } + // get the arguments for this function +// echo 'Function '.$functionName.' expects '.$argCount.' arguments
'; + $args = $argArrayVals = array(); + for ($i = 0; $i < $argCount; ++$i) { + $arg = $stack->pop(); + $a = $argCount - $i - 1; + if (($passByReference) && + (isset(self::$_PHPExcelFunctions[$functionName]['passByReference'][$a])) && + (self::$_PHPExcelFunctions[$functionName]['passByReference'][$a])) { + if ($arg['reference'] === NULL) { + $args[] = $cellID; + if ($functionName != 'MKMATRIX') { $argArrayVals[] = $this->_showValue($cellID); } + } else { + $args[] = $arg['reference']; + if ($functionName != 'MKMATRIX') { $argArrayVals[] = $this->_showValue($arg['reference']); } + } + } else { + $args[] = self::_unwrapResult($arg['value']); + if ($functionName != 'MKMATRIX') { $argArrayVals[] = $this->_showValue($arg['value']); } + } + } + // Reverse the order of the arguments + krsort($args); + if (($passByReference) && ($argCount == 0)) { + $args[] = $cellID; + $argArrayVals[] = $this->_showValue($cellID); + } +// echo 'Arguments are: '; +// print_r($args); +// echo '
'; + if ($functionName != 'MKMATRIX') { + if ($this->writeDebugLog) { + krsort($argArrayVals); + $this->_writeDebug('Evaluating '. self::_localeFunc($functionName).'( '.implode(self::$_localeArgumentSeparator.' ',PHPExcel_Calculation_Functions::flattenArray($argArrayVals)).' )'); + } + } + // Process each argument in turn, building the return value as an array +// if (($argCount == 1) && (is_array($args[1])) && ($functionName != 'MKMATRIX')) { +// $operand1 = $args[1]; +// $this->_writeDebug('Argument is a matrix: '.$this->_showValue($operand1)); +// $result = array(); +// $row = 0; +// foreach($operand1 as $args) { +// if (is_array($args)) { +// foreach($args as $arg) { +// $this->_writeDebug('Evaluating '.self::_localeFunc($functionName).'( '.$this->_showValue($arg).' )'); +// $r = call_user_func_array($functionCall,$arg); +// $this->_writeDebug('Evaluation Result for '.self::_localeFunc($functionName).'() function call is '.$this->_showTypeDetails($r)); +// $result[$row][] = $r; +// } +// ++$row; +// } else { +// $this->_writeDebug('Evaluating '.self::_localeFunc($functionName).'( '.$this->_showValue($args).' )'); +// $r = call_user_func_array($functionCall,$args); +// $this->_writeDebug('Evaluation Result for '.self::_localeFunc($functionName).'() function call is '.$this->_showTypeDetails($r)); +// $result[] = $r; +// } +// } +// } else { + // Process the argument with the appropriate function call + if ($passCellReference) { + $args[] = $pCell; + } + if (strpos($functionCall,'::') !== false) { + $result = call_user_func_array(explode('::',$functionCall),$args); + } else { + foreach($args as &$arg) { + $arg = PHPExcel_Calculation_Functions::flattenSingleValue($arg); + } + unset($arg); + $result = call_user_func_array($functionCall,$args); + } +// } + if ($functionName != 'MKMATRIX') { + $this->_writeDebug('Evaluation Result for '.self::_localeFunc($functionName).'() function call is '.$this->_showTypeDetails($result)); + } + $stack->push('Value',self::_wrapResult($result)); + } + + } else { + // if the token is a number, boolean, string or an Excel error, push it onto the stack + if (isset(self::$_ExcelConstants[strtoupper($token)])) { + $excelConstant = strtoupper($token); +// echo 'Token is a PHPExcel constant: '.$excelConstant.'
'; + $stack->push('Constant Value',self::$_ExcelConstants[$excelConstant]); + $this->_writeDebug('Evaluating Constant '.$excelConstant.' as '.$this->_showTypeDetails(self::$_ExcelConstants[$excelConstant])); + } elseif ((is_numeric($token)) || ($token === NULL) || (is_bool($token)) || ($token == '') || ($token{0} == '"') || ($token{0} == '#')) { +// echo 'Token is a number, boolean, string, null or an Excel error
'; + $stack->push('Value',$token); + // if the token is a named range, push the named range name onto the stack + } elseif (preg_match('/^'.self::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $token, $matches)) { +// echo 'Token is a named range
'; + $namedRange = $matches[6]; +// echo 'Named Range is '.$namedRange.'
'; + $this->_writeDebug('Evaluating Named Range '.$namedRange); + $cellValue = $this->extractNamedRange($namedRange, ((null !== $pCell) ? $pCellParent : null), false); + $pCell->attach($pCellParent); + $this->_writeDebug('Evaluation Result for named range '.$namedRange.' is '.$this->_showTypeDetails($cellValue)); + $stack->push('Named Range',$cellValue,$namedRange); + } else { + return $this->_raiseFormulaError("undefined variable '$token'"); + } + } + } + // when we're out of tokens, the stack should have a single element, the final result + if ($stack->count() != 1) return $this->_raiseFormulaError("internal error"); + $output = $stack->pop(); + $output = $output['value']; + +// if ((is_array($output)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) { +// return array_shift(PHPExcel_Calculation_Functions::flattenArray($output)); +// } + return $output; + } // function _processTokenStack() + + + private function _validateBinaryOperand($cellID,&$operand,&$stack) { + // Numbers, matrices and booleans can pass straight through, as they're already valid + if (is_string($operand)) { + // We only need special validations for the operand if it is a string + // Start by stripping off the quotation marks we use to identify true excel string values internally + if ($operand > '' && $operand{0} == '"') { $operand = self::_unwrapResult($operand); } + // If the string is a numeric value, we treat it as a numeric, so no further testing + if (!is_numeric($operand)) { + // If not a numeric, test to see if the value is an Excel error, and so can't be used in normal binary operations + if ($operand > '' && $operand{0} == '#') { + $stack->push('Value', $operand); + $this->_writeDebug('Evaluation Result is '.$this->_showTypeDetails($operand)); + return false; + } elseif (!PHPExcel_Shared_String::convertToNumberIfFraction($operand)) { + // If not a numeric or a fraction, then it's a text string, and so can't be used in mathematical binary operations + $stack->push('Value', '#VALUE!'); + $this->_writeDebug('Evaluation Result is a '.$this->_showTypeDetails('#VALUE!')); + return false; + } + } + } + + // return a true if the value of the operand is one that we can use in normal binary operations + return true; + } // function _validateBinaryOperand() + + + private function _executeBinaryComparisonOperation($cellID,$operand1,$operand2,$operation,&$stack,$recursingArrays=false) { + // If we're dealing with matrix operations, we want a matrix result + if ((is_array($operand1)) || (is_array($operand2))) { + $result = array(); + if ((is_array($operand1)) && (!is_array($operand2))) { + foreach($operand1 as $x => $operandData) { + $this->_writeDebug('Evaluating Comparison '.$this->_showValue($operandData).' '.$operation.' '.$this->_showValue($operand2)); + $this->_executeBinaryComparisonOperation($cellID,$operandData,$operand2,$operation,$stack); + $r = $stack->pop(); + $result[$x] = $r['value']; + } + } elseif ((!is_array($operand1)) && (is_array($operand2))) { + foreach($operand2 as $x => $operandData) { + $this->_writeDebug('Evaluating Comparison '.$this->_showValue($operand1).' '.$operation.' '.$this->_showValue($operandData)); + $this->_executeBinaryComparisonOperation($cellID,$operand1,$operandData,$operation,$stack); + $r = $stack->pop(); + $result[$x] = $r['value']; + } + } else { + if (!$recursingArrays) { self::_checkMatrixOperands($operand1,$operand2,2); } + foreach($operand1 as $x => $operandData) { + $this->_writeDebug('Evaluating Comparison '.$this->_showValue($operandData).' '.$operation.' '.$this->_showValue($operand2[$x])); + $this->_executeBinaryComparisonOperation($cellID,$operandData,$operand2[$x],$operation,$stack,true); + $r = $stack->pop(); + $result[$x] = $r['value']; + } + } + // Log the result details + $this->_writeDebug('Comparison Evaluation Result is '.$this->_showTypeDetails($result)); + // And push the result onto the stack + $stack->push('Array',$result); + return true; + } + + // Simple validate the two operands if they are string values + if (is_string($operand1) && $operand1 > '' && $operand1{0} == '"') { $operand1 = self::_unwrapResult($operand1); } + if (is_string($operand2) && $operand2 > '' && $operand2{0} == '"') { $operand2 = self::_unwrapResult($operand2); } + + // execute the necessary operation + switch ($operation) { + // Greater than + case '>': + $result = ($operand1 > $operand2); + break; + // Less than + case '<': + $result = ($operand1 < $operand2); + break; + // Equality + case '=': + $result = ($operand1 == $operand2); + break; + // Greater than or equal + case '>=': + $result = ($operand1 >= $operand2); + break; + // Less than or equal + case '<=': + $result = ($operand1 <= $operand2); + break; + // Inequality + case '<>': + $result = ($operand1 != $operand2); + break; + } + + // Log the result details + $this->_writeDebug('Evaluation Result is '.$this->_showTypeDetails($result)); + // And push the result onto the stack + $stack->push('Value',$result); + return true; + } // function _executeBinaryComparisonOperation() + + + private function _executeNumericBinaryOperation($cellID,$operand1,$operand2,$operation,$matrixFunction,&$stack) { + // Validate the two operands + if (!$this->_validateBinaryOperand($cellID,$operand1,$stack)) return false; + if (!$this->_validateBinaryOperand($cellID,$operand2,$stack)) return false; + + $executeMatrixOperation = false; + // If either of the operands is a matrix, we need to treat them both as matrices + // (converting the other operand to a matrix if need be); then perform the required + // matrix operation + if ((is_array($operand1)) || (is_array($operand2))) { + // Ensure that both operands are arrays/matrices + $executeMatrixOperation = true; + $mSize = array(); + list($mSize[],$mSize[],$mSize[],$mSize[]) = self::_checkMatrixOperands($operand1,$operand2,2); + + // But if they're both single cell matrices, then we can treat them as simple values + if (array_sum($mSize) == 4) { + $executeMatrixOperation = false; + $operand1 = $operand1[0][0]; + $operand2 = $operand2[0][0]; + } + } + + if ($executeMatrixOperation) { + try { + // Convert operand 1 from a PHP array to a matrix + $matrix = new PHPExcel_Shared_JAMA_Matrix($operand1); + // Perform the required operation against the operand 1 matrix, passing in operand 2 + $matrixResult = $matrix->$matrixFunction($operand2); + $result = $matrixResult->getArray(); + } catch (Exception $ex) { + $this->_writeDebug('JAMA Matrix Exception: '.$ex->getMessage()); + $result = '#VALUE!'; + } + } else { + if ((PHPExcel_Calculation_Functions::getCompatibilityMode() != PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) && + ((is_string($operand1) && !is_numeric($operand1)) || (is_string($operand2) && !is_numeric($operand2)))) { + $result = PHPExcel_Calculation_Functions::VALUE(); + } else { + // If we're dealing with non-matrix operations, execute the necessary operation + switch ($operation) { + // Addition + case '+': + $result = $operand1+$operand2; + break; + // Subtraction + case '-': + $result = $operand1-$operand2; + break; + // Multiplication + case '*': + $result = $operand1*$operand2; + break; + // Division + case '/': + if ($operand2 == 0) { + // Trap for Divide by Zero error + $stack->push('Value','#DIV/0!'); + $this->_writeDebug('Evaluation Result is '.$this->_showTypeDetails('#DIV/0!')); + return false; + } else { + $result = $operand1/$operand2; + } + break; + // Power + case '^': + $result = pow($operand1,$operand2); + break; + } + } + } + + // Log the result details + $this->_writeDebug('Evaluation Result is '.$this->_showTypeDetails($result)); + // And push the result onto the stack + $stack->push('Value',$result); + return true; + } // function _executeNumericBinaryOperation() + + + private function _writeDebug($message) { + // Only write the debug log if logging is enabled + if ($this->writeDebugLog) { + if ($this->echoDebugLog) { + echo implode(' -> ',$this->debugLogStack).' -> '.$message,'
'; + } + $this->debugLog[] = implode(' -> ',$this->debugLogStack).' -> '.$message; + } + } // function _writeDebug() + + + // trigger an error, but nicely, if need be + protected function _raiseFormulaError($errorMessage) { + $this->formulaError = $errorMessage; + $this->debugLogStack = array(); + if (!$this->suppressFormulaErrors) throw new Exception($errorMessage); + trigger_error($errorMessage, E_USER_ERROR); + } // function _raiseFormulaError() + + + /** + * Extract range values + * + * @param string &$pRange String based range representation + * @param PHPExcel_Worksheet $pSheet Worksheet + * @return mixed Array of values in range if range contains more than one element. Otherwise, a single value is returned. + * @throws Exception + */ + public function extractCellRange(&$pRange = 'A1', PHPExcel_Worksheet $pSheet = null, $resetLog=true) { + // Return value + $returnValue = array (); + +// echo 'extractCellRange('.$pRange.')
'; + if ($pSheet !== NULL) { +// echo 'Passed sheet name is '.$pSheet->getTitle().'
'; +// echo 'Range reference is '.$pRange.'
'; + if (strpos ($pRange, '!') !== false) { +// echo '$pRange reference includes sheet reference
'; + $worksheetReference = PHPExcel_Worksheet::extractSheetTitle($pRange, true); + $pSheet = $pSheet->getParent()->getSheetByName($worksheetReference[0]); +// echo 'New sheet name is '.$pSheet->getTitle().'
'; + $pRange = $worksheetReference[1]; +// echo 'Adjusted Range reference is '.$pRange.'
'; + } + + // Extract range + $aReferences = PHPExcel_Cell::extractAllCellReferencesInRange($pRange); + $pRange = $pSheet->getTitle().'!'.$pRange; + if (!isset($aReferences[1])) { + // Single cell in range + list($currentCol,$currentRow) = sscanf($aReferences[0],'%[A-Z]%d'); + if ($pSheet->cellExists($aReferences[0])) { + $returnValue[$currentRow][$currentCol] = $pSheet->getCell($aReferences[0])->getCalculatedValue($resetLog); + } else { + $returnValue[$currentRow][$currentCol] = null; + } + } else { + // Extract cell data for all cells in the range + foreach ($aReferences as $reference) { + // Extract range + list($currentCol,$currentRow) = sscanf($reference,'%[A-Z]%d'); + + if ($pSheet->cellExists($reference)) { + $returnValue[$currentRow][$currentCol] = $pSheet->getCell($reference)->getCalculatedValue($resetLog); + } else { + $returnValue[$currentRow][$currentCol] = null; + } + } + } + } + + // Return + return $returnValue; + } // function extractCellRange() + + + /** + * Extract range values + * + * @param string &$pRange String based range representation + * @param PHPExcel_Worksheet $pSheet Worksheet + * @return mixed Array of values in range if range contains more than one element. Otherwise, a single value is returned. + * @throws Exception + */ + public function extractNamedRange(&$pRange = 'A1', PHPExcel_Worksheet $pSheet = null, $resetLog=true) { + // Return value + $returnValue = array (); + +// echo 'extractNamedRange('.$pRange.')
'; + if ($pSheet !== NULL) { +// echo 'Current sheet name is '.$pSheet->getTitle().'
'; +// echo 'Range reference is '.$pRange.'
'; + if (strpos ($pRange, '!') !== false) { +// echo '$pRange reference includes sheet reference
'; + $worksheetReference = PHPExcel_Worksheet::extractSheetTitle($pRange, true); + $pSheet = $pSheet->getParent()->getSheetByName($worksheetReference[0]); +// echo 'New sheet name is '.$pSheet->getTitle().'
'; + $pRange = $worksheetReference[1]; +// echo 'Adjusted Range reference is '.$pRange.'
'; + } + + // Named range? + $namedRange = PHPExcel_NamedRange::resolveRange($pRange, $pSheet); + if ($namedRange !== NULL) { + $pSheet = $namedRange->getWorksheet(); +// echo 'Named Range '.$pRange.' ('; + $pRange = $namedRange->getRange(); + $splitRange = PHPExcel_Cell::splitRange($pRange); + // Convert row and column references + if (ctype_alpha($splitRange[0][0])) { + $pRange = $splitRange[0][0] . '1:' . $splitRange[0][1] . $namedRange->getWorksheet()->getHighestRow(); + } elseif(ctype_digit($splitRange[0][0])) { + $pRange = 'A' . $splitRange[0][0] . ':' . $namedRange->getWorksheet()->getHighestColumn() . $splitRange[0][1]; + } +// echo $pRange.') is in sheet '.$namedRange->getWorksheet()->getTitle().'
'; + +// if ($pSheet->getTitle() != $namedRange->getWorksheet()->getTitle()) { +// if (!$namedRange->getLocalOnly()) { +// $pSheet = $namedRange->getWorksheet(); +// } else { +// return $returnValue; +// } +// } + } else { + return PHPExcel_Calculation_Functions::REF(); + } + + // Extract range + $aReferences = PHPExcel_Cell::extractAllCellReferencesInRange($pRange); +// var_dump($aReferences); + if (!isset($aReferences[1])) { + // Single cell (or single column or row) in range + list($currentCol,$currentRow) = PHPExcel_Cell::coordinateFromString($aReferences[0]); + if ($pSheet->cellExists($aReferences[0])) { + $returnValue[$currentRow][$currentCol] = $pSheet->getCell($aReferences[0])->getCalculatedValue($resetLog); + } else { + $returnValue[$currentRow][$currentCol] = null; + } + } else { + // Extract cell data for all cells in the range + foreach ($aReferences as $reference) { + // Extract range + list($currentCol,$currentRow) = PHPExcel_Cell::coordinateFromString($reference); +// echo 'NAMED RANGE: $currentCol='.$currentCol.' $currentRow='.$currentRow.'
'; + if ($pSheet->cellExists($reference)) { + $returnValue[$currentRow][$currentCol] = $pSheet->getCell($reference)->getCalculatedValue($resetLog); + } else { + $returnValue[$currentRow][$currentCol] = null; + } + } + } +// print_r($returnValue); +// echo '
'; + } + + // Return + return $returnValue; + } // function extractNamedRange() + + + /** + * Is a specific function implemented? + * + * @param string $pFunction Function Name + * @return boolean + */ + public function isImplemented($pFunction = '') { + $pFunction = strtoupper ($pFunction); + if (isset(self::$_PHPExcelFunctions[$pFunction])) { + return (self::$_PHPExcelFunctions[$pFunction]['functionCall'] != 'PHPExcel_Calculation_Functions::DUMMY'); + } else { + return false; + } + } // function isImplemented() + + + /** + * Get a list of all implemented functions as an array of function objects + * + * @return array of PHPExcel_Calculation_Function + */ + public function listFunctions() { + // Return value + $returnValue = array(); + // Loop functions + foreach(self::$_PHPExcelFunctions as $functionName => $function) { + if ($function['functionCall'] != 'PHPExcel_Calculation_Functions::DUMMY') { + $returnValue[$functionName] = new PHPExcel_Calculation_Function($function['category'], + $functionName, + $function['functionCall'] + ); + } + } + + // Return + return $returnValue; + } // function listFunctions() + + + /** + * Get a list of all Excel function names + * + * @return array + */ + public function listAllFunctionNames() { + return array_keys(self::$_PHPExcelFunctions); + } // function listAllFunctionNames() + + /** + * Get a list of implemented Excel function names + * + * @return array + */ + public function listFunctionNames() { + // Return value + $returnValue = array(); + // Loop functions + foreach(self::$_PHPExcelFunctions as $functionName => $function) { + if ($function['functionCall'] != 'PHPExcel_Calculation_Functions::DUMMY') { + $returnValue[] = $functionName; + } + } + + // Return + return $returnValue; + } // function listFunctionNames() + +} // class PHPExcel_Calculation + diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/Database.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/Database.php new file mode 100755 index 0000000..4a6c8f7 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/Database.php @@ -0,0 +1,725 @@ + $criteriaName) { + $testCondition = array(); + $testConditionCount = 0; + foreach($criteria as $row => $criterion) { + if ($criterion[$key] > '') { + $testCondition[] = '[:'.$criteriaName.']'.PHPExcel_Calculation_Functions::_ifCondition($criterion[$key]); + $testConditionCount++; + } + } + if ($testConditionCount > 1) { + $testConditions[] = 'OR('.implode(',',$testCondition).')'; + $testConditionsCount++; + } elseif($testConditionCount == 1) { + $testConditions[] = $testCondition[0]; + $testConditionsCount++; + } + } + + if ($testConditionsCount > 1) { + $testConditionSet = 'AND('.implode(',',$testConditions).')'; + } elseif($testConditionsCount == 1) { + $testConditionSet = $testConditions[0]; + } + + // Loop through each row of the database + foreach($database as $dataRow => $dataValues) { + // Substitute actual values from the database row for our [:placeholders] + $testConditionList = $testConditionSet; + foreach($criteriaNames as $key => $criteriaName) { + $k = array_search($criteriaName,$fieldNames); + if (isset($dataValues[$k])) { + $dataValue = $dataValues[$k]; + $dataValue = (is_string($dataValue)) ? PHPExcel_Calculation::_wrapResult(strtoupper($dataValue)) : $dataValue; + $testConditionList = str_replace('[:'.$criteriaName.']',$dataValue,$testConditionList); + } + } + // evaluate the criteria against the row data + $result = PHPExcel_Calculation::getInstance()->_calculateFormulaValue('='.$testConditionList); + // If the row failed to meet the criteria, remove it from the database + if (!$result) { + unset($database[$dataRow]); + } + } + + return $database; + } + + + /** + * DAVERAGE + * + * Averages the values in a column of a list or database that match conditions you specify. + * + * Excel Function: + * DAVERAGE(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DAVERAGE($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::AVERAGE($colData); + } // function DAVERAGE() + + + /** + * DCOUNT + * + * Counts the cells that contain numbers in a column of a list or database that match conditions + * that you specify. + * + * Excel Function: + * DCOUNT(database,[field],criteria) + * + * Excel Function: + * DAVERAGE(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return integer + * + * @TODO The field argument is optional. If field is omitted, DCOUNT counts all records in the + * database that match the criteria. + * + */ + public static function DCOUNT($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::COUNT($colData); + } // function DCOUNT() + + + /** + * DCOUNTA + * + * Counts the nonblank cells in a column of a list or database that match conditions that you specify. + * + * Excel Function: + * DCOUNTA(database,[field],criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return integer + * + * @TODO The field argument is optional. If field is omitted, DCOUNTA counts all records in the + * database that match the criteria. + * + */ + public static function DCOUNTA($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::COUNTA($colData); + } // function DCOUNTA() + + + /** + * DGET + * + * Extracts a single value from a column of a list or database that matches conditions that you + * specify. + * + * Excel Function: + * DGET(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return mixed + * + */ + public static function DGET($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + if (count($colData) > 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + + return $colData[0]; + } // function DGET() + + + /** + * DMAX + * + * Returns the largest number in a column of a list or database that matches conditions you that + * specify. + * + * Excel Function: + * DMAX(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DMAX($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::MAX($colData); + } // function DMAX() + + + /** + * DMIN + * + * Returns the smallest number in a column of a list or database that matches conditions you that + * specify. + * + * Excel Function: + * DMIN(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DMIN($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::MIN($colData); + } // function DMIN() + + + /** + * DPRODUCT + * + * Multiplies the values in a column of a list or database that match conditions that you specify. + * + * Excel Function: + * DPRODUCT(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DPRODUCT($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_MathTrig::PRODUCT($colData); + } // function DPRODUCT() + + + /** + * DSTDEV + * + * Estimates the standard deviation of a population based on a sample by using the numbers in a + * column of a list or database that match conditions that you specify. + * + * Excel Function: + * DSTDEV(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DSTDEV($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::STDEV($colData); + } // function DSTDEV() + + + /** + * DSTDEVP + * + * Calculates the standard deviation of a population based on the entire population by using the + * numbers in a column of a list or database that match conditions that you specify. + * + * Excel Function: + * DSTDEVP(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DSTDEVP($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::STDEVP($colData); + } // function DSTDEVP() + + + /** + * DSUM + * + * Adds the numbers in a column of a list or database that match conditions that you specify. + * + * Excel Function: + * DSUM(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DSUM($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_MathTrig::SUM($colData); + } // function DSUM() + + + /** + * DVAR + * + * Estimates the variance of a population based on a sample by using the numbers in a column + * of a list or database that match conditions that you specify. + * + * Excel Function: + * DVAR(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DVAR($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::VARFunc($colData); + } // function DVAR() + + + /** + * DVARP + * + * Calculates the variance of a population based on the entire population by using the numbers + * in a column of a list or database that match conditions that you specify. + * + * Excel Function: + * DVARP(database,field,criteria) + * + * @access public + * @category Database Functions + * @param mixed[] $database The range of cells that makes up the list or database. + * A database is a list of related data in which rows of related + * information are records, and columns of data are fields. The + * first row of the list contains labels for each column. + * @param string|integer $field Indicates which column is used in the function. Enter the + * column label enclosed between double quotation marks, such as + * "Age" or "Yield," or a number (without quotation marks) that + * represents the position of the column within the list: 1 for + * the first column, 2 for the second column, and so on. + * @param mixed[] $criteria The range of cells that contains the conditions you specify. + * You can use any range for the criteria argument, as long as it + * includes at least one column label and at least one cell below + * the column label in which you specify a condition for the + * column. + * @return float + * + */ + public static function DVARP($database,$field,$criteria) { + $field = self::__fieldExtract($database,$field); + if (is_null($field)) { + return NULL; + } + + // reduce the database to a set of rows that match all the criteria + $database = self::__filter($database,$criteria); + // extract an array of values for the requested column + $colData = array(); + foreach($database as $row) { + $colData[] = $row[$field]; + } + + // Return + return PHPExcel_Calculation_Statistical::VARP($colData); + } // function DVARP() + + +} // class PHPExcel_Calculation_Database diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/DateTime.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/DateTime.php new file mode 100755 index 0000000..3b5dc45 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/DateTime.php @@ -0,0 +1,1447 @@ +format('m'); + $oYear = (int) $PHPDateObject->format('Y'); + + $adjustmentMonthsString = (string) $adjustmentMonths; + if ($adjustmentMonths > 0) { + $adjustmentMonthsString = '+'.$adjustmentMonths; + } + if ($adjustmentMonths != 0) { + $PHPDateObject->modify($adjustmentMonthsString.' months'); + } + $nMonth = (int) $PHPDateObject->format('m'); + $nYear = (int) $PHPDateObject->format('Y'); + + $monthDiff = ($nMonth - $oMonth) + (($nYear - $oYear) * 12); + if ($monthDiff != $adjustmentMonths) { + $adjustDays = (int) $PHPDateObject->format('d'); + $adjustDaysString = '-'.$adjustDays.' days'; + $PHPDateObject->modify($adjustDaysString); + } + return $PHPDateObject; + } // function _adjustDateByMonths() + + + /** + * DATETIMENOW + * + * Returns the current date and time. + * The NOW function is useful when you need to display the current date and time on a worksheet or + * calculate a value based on the current date and time, and have that value updated each time you + * open the worksheet. + * + * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date + * and time format of your regional settings. PHPExcel does not change cell formatting in this way. + * + * Excel Function: + * NOW() + * + * @access public + * @category Date/Time Functions + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function DATETIMENOW() { + $saveTimeZone = date_default_timezone_get(); + date_default_timezone_set('UTC'); + $retValue = False; + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + $retValue = (float) PHPExcel_Shared_Date::PHPToExcel(time()); + break; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + $retValue = (integer) time(); + break; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + $retValue = new DateTime(); + break; + } + date_default_timezone_set($saveTimeZone); + + return $retValue; + } // function DATETIMENOW() + + + /** + * DATENOW + * + * Returns the current date. + * The NOW function is useful when you need to display the current date and time on a worksheet or + * calculate a value based on the current date and time, and have that value updated each time you + * open the worksheet. + * + * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date + * and time format of your regional settings. PHPExcel does not change cell formatting in this way. + * + * Excel Function: + * TODAY() + * + * @access public + * @category Date/Time Functions + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function DATENOW() { + $saveTimeZone = date_default_timezone_get(); + date_default_timezone_set('UTC'); + $retValue = False; + $excelDateTime = floor(PHPExcel_Shared_Date::PHPToExcel(time())); + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + $retValue = (float) $excelDateTime; + break; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + $retValue = (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateTime); + break; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + $retValue = PHPExcel_Shared_Date::ExcelToPHPObject($excelDateTime); + break; + } + date_default_timezone_set($saveTimeZone); + + return $retValue; + } // function DATENOW() + + + /** + * DATE + * + * The DATE function returns a value that represents a particular date. + * + * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date + * format of your regional settings. PHPExcel does not change cell formatting in this way. + * + * Excel Function: + * DATE(year,month,day) + * + * @access public + * @category Date/Time Functions + * @param integer $year The value of the year argument can include one to four digits. + * Excel interprets the year argument according to the configured + * date system: 1900 or 1904. + * If year is between 0 (zero) and 1899 (inclusive), Excel adds that + * value to 1900 to calculate the year. For example, DATE(108,1,2) + * returns January 2, 2008 (1900+108). + * If year is between 1900 and 9999 (inclusive), Excel uses that + * value as the year. For example, DATE(2008,1,2) returns January 2, + * 2008. + * If year is less than 0 or is 10000 or greater, Excel returns the + * #NUM! error value. + * @param integer $month A positive or negative integer representing the month of the year + * from 1 to 12 (January to December). + * If month is greater than 12, month adds that number of months to + * the first month in the year specified. For example, DATE(2008,14,2) + * returns the serial number representing February 2, 2009. + * If month is less than 1, month subtracts the magnitude of that + * number of months, plus 1, from the first month in the year + * specified. For example, DATE(2008,-3,2) returns the serial number + * representing September 2, 2007. + * @param integer $day A positive or negative integer representing the day of the month + * from 1 to 31. + * If day is greater than the number of days in the month specified, + * day adds that number of days to the first day in the month. For + * example, DATE(2008,1,35) returns the serial number representing + * February 4, 2008. + * If day is less than 1, day subtracts the magnitude that number of + * days, plus one, from the first day of the month specified. For + * example, DATE(2008,1,-15) returns the serial number representing + * December 16, 2007. + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function DATE($year = 0, $month = 1, $day = 1) { + $year = PHPExcel_Calculation_Functions::flattenSingleValue($year); + $month = PHPExcel_Calculation_Functions::flattenSingleValue($month); + $day = PHPExcel_Calculation_Functions::flattenSingleValue($day); + + $year = ($year !== NULL) ? PHPExcel_Shared_String::testStringAsNumeric($year) : 0; + $month = ($month !== NULL) ? PHPExcel_Shared_String::testStringAsNumeric($month) : 0; + $day = ($day !== NULL) ? PHPExcel_Shared_String::testStringAsNumeric($day) : 0; + if ((!is_numeric($year)) || + (!is_numeric($month)) || + (!is_numeric($day))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $year = (integer) $year; + $month = (integer) $month; + $day = (integer) $day; + + $baseYear = PHPExcel_Shared_Date::getExcelCalendar(); + // Validate parameters + if ($year < ($baseYear-1900)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ((($baseYear-1900) != 0) && ($year < $baseYear) && ($year >= 1900)) { + return PHPExcel_Calculation_Functions::NaN(); + } + + if (($year < $baseYear) && ($year >= ($baseYear-1900))) { + $year += 1900; + } + + if ($month < 1) { + // Handle year/month adjustment if month < 1 + --$month; + $year += ceil($month / 12) - 1; + $month = 13 - abs($month % 12); + } elseif ($month > 12) { + // Handle year/month adjustment if month > 12 + $year += floor($month / 12); + $month = ($month % 12); + } + + // Re-validate the year parameter after adjustments + if (($year < $baseYear) || ($year >= 10000)) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Execute function + $excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel($year, $month, $day); + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + return (float) $excelDateValue; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + return (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateValue); + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + return PHPExcel_Shared_Date::ExcelToPHPObject($excelDateValue); + } + } // function DATE() + + + /** + * TIME + * + * The TIME function returns a value that represents a particular time. + * + * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the time + * format of your regional settings. PHPExcel does not change cell formatting in this way. + * + * Excel Function: + * TIME(hour,minute,second) + * + * @access public + * @category Date/Time Functions + * @param integer $hour A number from 0 (zero) to 32767 representing the hour. + * Any value greater than 23 will be divided by 24 and the remainder + * will be treated as the hour value. For example, TIME(27,0,0) = + * TIME(3,0,0) = .125 or 3:00 AM. + * @param integer $minute A number from 0 to 32767 representing the minute. + * Any value greater than 59 will be converted to hours and minutes. + * For example, TIME(0,750,0) = TIME(12,30,0) = .520833 or 12:30 PM. + * @param integer $second A number from 0 to 32767 representing the second. + * Any value greater than 59 will be converted to hours, minutes, + * and seconds. For example, TIME(0,0,2000) = TIME(0,33,22) = .023148 + * or 12:33:20 AM + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function TIME($hour = 0, $minute = 0, $second = 0) { + $hour = PHPExcel_Calculation_Functions::flattenSingleValue($hour); + $minute = PHPExcel_Calculation_Functions::flattenSingleValue($minute); + $second = PHPExcel_Calculation_Functions::flattenSingleValue($second); + + if ($hour == '') { $hour = 0; } + if ($minute == '') { $minute = 0; } + if ($second == '') { $second = 0; } + + if ((!is_numeric($hour)) || (!is_numeric($minute)) || (!is_numeric($second))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $hour = (integer) $hour; + $minute = (integer) $minute; + $second = (integer) $second; + + if ($second < 0) { + $minute += floor($second / 60); + $second = 60 - abs($second % 60); + if ($second == 60) { $second = 0; } + } elseif ($second >= 60) { + $minute += floor($second / 60); + $second = $second % 60; + } + if ($minute < 0) { + $hour += floor($minute / 60); + $minute = 60 - abs($minute % 60); + if ($minute == 60) { $minute = 0; } + } elseif ($minute >= 60) { + $hour += floor($minute / 60); + $minute = $minute % 60; + } + + if ($hour > 23) { + $hour = $hour % 24; + } elseif ($hour < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Execute function + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + $date = 0; + $calendar = PHPExcel_Shared_Date::getExcelCalendar(); + if ($calendar != PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900) { + $date = 1; + } + return (float) PHPExcel_Shared_Date::FormattedPHPToExcel($calendar, 1, $date, $hour, $minute, $second); + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::FormattedPHPToExcel(1970, 1, 1, $hour, $minute, $second)); // -2147468400; // -2147472000 + 3600 + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + $dayAdjust = 0; + if ($hour < 0) { + $dayAdjust = floor($hour / 24); + $hour = 24 - abs($hour % 24); + if ($hour == 24) { $hour = 0; } + } elseif ($hour >= 24) { + $dayAdjust = floor($hour / 24); + $hour = $hour % 24; + } + $phpDateObject = new DateTime('1900-01-01 '.$hour.':'.$minute.':'.$second); + if ($dayAdjust != 0) { + $phpDateObject->modify($dayAdjust.' days'); + } + return $phpDateObject; + } + } // function TIME() + + + /** + * DATEVALUE + * + * Returns a value that represents a particular date. + * Use DATEVALUE to convert a date represented by a text string to an Excel or PHP date/time stamp + * value. + * + * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date + * format of your regional settings. PHPExcel does not change cell formatting in this way. + * + * Excel Function: + * DATEVALUE(dateValue) + * + * @access public + * @category Date/Time Functions + * @param string $dateValue Text that represents a date in a Microsoft Excel date format. + * For example, "1/30/2008" or "30-Jan-2008" are text strings within + * quotation marks that represent dates. Using the default date + * system in Excel for Windows, date_text must represent a date from + * January 1, 1900, to December 31, 9999. Using the default date + * system in Excel for the Macintosh, date_text must represent a date + * from January 1, 1904, to December 31, 9999. DATEVALUE returns the + * #VALUE! error value if date_text is out of this range. + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function DATEVALUE($dateValue = 1) { + $dateValue = trim(PHPExcel_Calculation_Functions::flattenSingleValue($dateValue),'"'); + // Strip any ordinals because they're allowed in Excel (English only) + $dateValue = preg_replace('/(\d)(st|nd|rd|th)([ -\/])/Ui','$1$3',$dateValue); + // Convert separators (/ . or space) to hyphens (should also handle dot used for ordinals in some countries, e.g. Denmark, Germany) + $dateValue = str_replace(array('/','.','-',' '),array(' ',' ',' ',' '),$dateValue); + + $yearFound = false; + $t1 = explode(' ',$dateValue); + foreach($t1 as &$t) { + if ((is_numeric($t)) && ($t > 31)) { + if ($yearFound) { + return PHPExcel_Calculation_Functions::VALUE(); + } else { + if ($t < 100) { $t += 1900; } + $yearFound = true; + } + } + } + if ((count($t1) == 1) && (strpos($t,':') != false)) { + // We've been fed a time value without any date + return 0.0; + } elseif (count($t1) == 2) { + // We only have two parts of the date: either day/month or month/year + if ($yearFound) { + array_unshift($t1,1); + } else { + array_push($t1,date('Y')); + } + } + unset($t); + $dateValue = implode(' ',$t1); + + $PHPDateArray = date_parse($dateValue); + if (($PHPDateArray === False) || ($PHPDateArray['error_count'] > 0)) { + $testVal1 = strtok($dateValue,'- '); + if ($testVal1 !== False) { + $testVal2 = strtok('- '); + if ($testVal2 !== False) { + $testVal3 = strtok('- '); + if ($testVal3 === False) { + $testVal3 = strftime('%Y'); + } + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + $PHPDateArray = date_parse($testVal1.'-'.$testVal2.'-'.$testVal3); + if (($PHPDateArray === False) || ($PHPDateArray['error_count'] > 0)) { + $PHPDateArray = date_parse($testVal2.'-'.$testVal1.'-'.$testVal3); + if (($PHPDateArray === False) || ($PHPDateArray['error_count'] > 0)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + } + + if (($PHPDateArray !== False) && ($PHPDateArray['error_count'] == 0)) { + // Execute function + if ($PHPDateArray['year'] == '') { $PHPDateArray['year'] = strftime('%Y'); } + if ($PHPDateArray['year'] < 1900) + return PHPExcel_Calculation_Functions::VALUE(); + if ($PHPDateArray['month'] == '') { $PHPDateArray['month'] = strftime('%m'); } + if ($PHPDateArray['day'] == '') { $PHPDateArray['day'] = strftime('%d'); } + $excelDateValue = floor(PHPExcel_Shared_Date::FormattedPHPToExcel($PHPDateArray['year'],$PHPDateArray['month'],$PHPDateArray['day'],$PHPDateArray['hour'],$PHPDateArray['minute'],$PHPDateArray['second'])); + + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + return (float) $excelDateValue; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + return (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateValue); + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + return new DateTime($PHPDateArray['year'].'-'.$PHPDateArray['month'].'-'.$PHPDateArray['day'].' 00:00:00'); + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function DATEVALUE() + + + /** + * TIMEVALUE + * + * Returns a value that represents a particular time. + * Use TIMEVALUE to convert a time represented by a text string to an Excel or PHP date/time stamp + * value. + * + * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the time + * format of your regional settings. PHPExcel does not change cell formatting in this way. + * + * Excel Function: + * TIMEVALUE(timeValue) + * + * @access public + * @category Date/Time Functions + * @param string $timeValue A text string that represents a time in any one of the Microsoft + * Excel time formats; for example, "6:45 PM" and "18:45" text strings + * within quotation marks that represent time. + * Date information in time_text is ignored. + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function TIMEVALUE($timeValue) { + $timeValue = trim(PHPExcel_Calculation_Functions::flattenSingleValue($timeValue),'"'); + $timeValue = str_replace(array('/','.'),array('-','-'),$timeValue); + + $PHPDateArray = date_parse($timeValue); + if (($PHPDateArray !== False) && ($PHPDateArray['error_count'] == 0)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel($PHPDateArray['year'],$PHPDateArray['month'],$PHPDateArray['day'],$PHPDateArray['hour'],$PHPDateArray['minute'],$PHPDateArray['second']); + } else { + $excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel(1900,1,1,$PHPDateArray['hour'],$PHPDateArray['minute'],$PHPDateArray['second']) - 1; + } + + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + return (float) $excelDateValue; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + return (integer) $phpDateValue = PHPExcel_Shared_Date::ExcelToPHP($excelDateValue+25569) - 3600;; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + return new DateTime('1900-01-01 '.$PHPDateArray['hour'].':'.$PHPDateArray['minute'].':'.$PHPDateArray['second']); + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function TIMEVALUE() + + + /** + * DATEDIF + * + * @param mixed $startDate Excel date serial value, PHP date/time stamp, PHP DateTime object + * or a standard date string + * @param mixed $endDate Excel date serial value, PHP date/time stamp, PHP DateTime object + * or a standard date string + * @param string $unit + * @return integer Interval between the dates + */ + public static function DATEDIF($startDate = 0, $endDate = 0, $unit = 'D') { + $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); + $endDate = PHPExcel_Calculation_Functions::flattenSingleValue($endDate); + $unit = strtoupper(PHPExcel_Calculation_Functions::flattenSingleValue($unit)); + + if (is_string($startDate = self::_getDateValue($startDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($endDate = self::_getDateValue($endDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Validate parameters + if ($startDate >= $endDate) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Execute function + $difference = $endDate - $startDate; + + $PHPStartDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($startDate); + $startDays = $PHPStartDateObject->format('j'); + $startMonths = $PHPStartDateObject->format('n'); + $startYears = $PHPStartDateObject->format('Y'); + + $PHPEndDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($endDate); + $endDays = $PHPEndDateObject->format('j'); + $endMonths = $PHPEndDateObject->format('n'); + $endYears = $PHPEndDateObject->format('Y'); + + $retVal = PHPExcel_Calculation_Functions::NaN(); + switch ($unit) { + case 'D': + $retVal = intval($difference); + break; + case 'M': + $retVal = intval($endMonths - $startMonths) + (intval($endYears - $startYears) * 12); + // We're only interested in full months + if ($endDays < $startDays) { + --$retVal; + } + break; + case 'Y': + $retVal = intval($endYears - $startYears); + // We're only interested in full months + if ($endMonths < $startMonths) { + --$retVal; + } elseif (($endMonths == $startMonths) && ($endDays < $startDays)) { + --$retVal; + } + break; + case 'MD': + if ($endDays < $startDays) { + $retVal = $endDays; + $PHPEndDateObject->modify('-'.$endDays.' days'); + $adjustDays = $PHPEndDateObject->format('j'); + if ($adjustDays > $startDays) { + $retVal += ($adjustDays - $startDays); + } + } else { + $retVal = $endDays - $startDays; + } + break; + case 'YM': + $retVal = intval($endMonths - $startMonths); + if ($retVal < 0) $retVal = 12 + $retVal; + // We're only interested in full months + if ($endDays < $startDays) { + --$retVal; + } + break; + case 'YD': + $retVal = intval($difference); + if ($endYears > $startYears) { + while ($endYears > $startYears) { + $PHPEndDateObject->modify('-1 year'); + $endYears = $PHPEndDateObject->format('Y'); + } + $retVal = $PHPEndDateObject->format('z') - $PHPStartDateObject->format('z'); + if ($retVal < 0) { $retVal += 365; } + } + break; + default: + $retVal = PHPExcel_Calculation_Functions::NaN(); + } + return $retVal; + } // function DATEDIF() + + + /** + * DAYS360 + * + * Returns the number of days between two dates based on a 360-day year (twelve 30-day months), + * which is used in some accounting calculations. Use this function to help compute payments if + * your accounting system is based on twelve 30-day months. + * + * Excel Function: + * DAYS360(startDate,endDate[,method]) + * + * @access public + * @category Date/Time Functions + * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param boolean $method US or European Method + * FALSE or omitted: U.S. (NASD) method. If the starting date is + * the last day of a month, it becomes equal to the 30th of the + * same month. If the ending date is the last day of a month and + * the starting date is earlier than the 30th of a month, the + * ending date becomes equal to the 1st of the next month; + * otherwise the ending date becomes equal to the 30th of the + * same month. + * TRUE: European method. Starting dates and ending dates that + * occur on the 31st of a month become equal to the 30th of the + * same month. + * @return integer Number of days between start date and end date + */ + public static function DAYS360($startDate = 0, $endDate = 0, $method = false) { + $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); + $endDate = PHPExcel_Calculation_Functions::flattenSingleValue($endDate); + + if (is_string($startDate = self::_getDateValue($startDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($endDate = self::_getDateValue($endDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Execute function + $PHPStartDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($startDate); + $startDay = $PHPStartDateObject->format('j'); + $startMonth = $PHPStartDateObject->format('n'); + $startYear = $PHPStartDateObject->format('Y'); + + $PHPEndDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($endDate); + $endDay = $PHPEndDateObject->format('j'); + $endMonth = $PHPEndDateObject->format('n'); + $endYear = $PHPEndDateObject->format('Y'); + + return self::_dateDiff360($startDay, $startMonth, $startYear, $endDay, $endMonth, $endYear, !$method); + } // function DAYS360() + + + /** + * YEARFRAC + * + * Calculates the fraction of the year represented by the number of whole days between two dates + * (the start_date and the end_date). + * Use the YEARFRAC worksheet function to identify the proportion of a whole year's benefits or + * obligations to assign to a specific term. + * + * Excel Function: + * YEARFRAC(startDate,endDate[,method]) + * + * @access public + * @category Date/Time Functions + * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param integer $method Method used for the calculation + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float fraction of the year + */ + public static function YEARFRAC($startDate = 0, $endDate = 0, $method = 0) { + $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); + $endDate = PHPExcel_Calculation_Functions::flattenSingleValue($endDate); + $method = PHPExcel_Calculation_Functions::flattenSingleValue($method); + + if (is_string($startDate = self::_getDateValue($startDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($endDate = self::_getDateValue($endDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (((is_numeric($method)) && (!is_string($method))) || ($method == '')) { + switch($method) { + case 0 : + return self::DAYS360($startDate,$endDate) / 360; + case 1 : + $days = self::DATEDIF($startDate,$endDate); + $startYear = self::YEAR($startDate); + $endYear = self::YEAR($endDate); + $years = $endYear - $startYear + 1; + $leapDays = 0; + if ($years == 1) { + if (self::_isLeapYear($endYear)) { + $startMonth = self::MONTHOFYEAR($startDate); + $endMonth = self::MONTHOFYEAR($endDate); + $endDay = self::DAYOFMONTH($endDate); + if (($startMonth < 3) || + (($endMonth * 100 + $endDay) >= (2 * 100 + 29))) { + $leapDays += 1; + } + } + } else { + for($year = $startYear; $year <= $endYear; ++$year) { + if ($year == $startYear) { + $startMonth = self::MONTHOFYEAR($startDate); + $startDay = self::DAYOFMONTH($startDate); + if ($startMonth < 3) { + $leapDays += (self::_isLeapYear($year)) ? 1 : 0; + } + } elseif($year == $endYear) { + $endMonth = self::MONTHOFYEAR($endDate); + $endDay = self::DAYOFMONTH($endDate); + if (($endMonth * 100 + $endDay) >= (2 * 100 + 29)) { + $leapDays += (self::_isLeapYear($year)) ? 1 : 0; + } + } else { + $leapDays += (self::_isLeapYear($year)) ? 1 : 0; + } + } + if ($years == 2) { + if (($leapDays == 0) && (self::_isLeapYear($startYear)) && ($days > 365)) { + $leapDays = 1; + } elseif ($days < 366) { + $years = 1; + } + } + $leapDays /= $years; + } + return $days / (365 + $leapDays); + case 2 : + return self::DATEDIF($startDate,$endDate) / 360; + case 3 : + return self::DATEDIF($startDate,$endDate) / 365; + case 4 : + return self::DAYS360($startDate,$endDate,True) / 360; + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function YEARFRAC() + + + /** + * NETWORKDAYS + * + * Returns the number of whole working days between start_date and end_date. Working days + * exclude weekends and any dates identified in holidays. + * Use NETWORKDAYS to calculate employee benefits that accrue based on the number of days + * worked during a specific term. + * + * Excel Function: + * NETWORKDAYS(startDate,endDate[,holidays[,holiday[,...]]]) + * + * @access public + * @category Date/Time Functions + * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param mixed $holidays,... Optional series of Excel date serial value (float), PHP date + * timestamp (integer), PHP DateTime object, or a standard date + * strings that will be excluded from the working calendar, such + * as state and federal holidays and floating holidays. + * @return integer Interval between the dates + */ + public static function NETWORKDAYS($startDate,$endDate) { + // Retrieve the mandatory start and end date that are referenced in the function definition + $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); + $endDate = PHPExcel_Calculation_Functions::flattenSingleValue($endDate); + // Flush the mandatory start and end date that are referenced in the function definition, and get the optional days + $dateArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + array_shift($dateArgs); + array_shift($dateArgs); + + // Validate the start and end dates + if (is_string($startDate = $sDate = self::_getDateValue($startDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $startDate = (float) floor($startDate); + if (is_string($endDate = $eDate = self::_getDateValue($endDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $endDate = (float) floor($endDate); + + if ($sDate > $eDate) { + $startDate = $eDate; + $endDate = $sDate; + } + + // Execute function + $startDoW = 6 - self::DAYOFWEEK($startDate,2); + if ($startDoW < 0) { $startDoW = 0; } + $endDoW = self::DAYOFWEEK($endDate,2); + if ($endDoW >= 6) { $endDoW = 0; } + + $wholeWeekDays = floor(($endDate - $startDate) / 7) * 5; + $partWeekDays = $endDoW + $startDoW; + if ($partWeekDays > 5) { + $partWeekDays -= 5; + } + + // Test any extra holiday parameters + $holidayCountedArray = array(); + foreach ($dateArgs as $holidayDate) { + if (is_string($holidayDate = self::_getDateValue($holidayDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (($holidayDate >= $startDate) && ($holidayDate <= $endDate)) { + if ((self::DAYOFWEEK($holidayDate,2) < 6) && (!in_array($holidayDate,$holidayCountedArray))) { + --$partWeekDays; + $holidayCountedArray[] = $holidayDate; + } + } + } + + if ($sDate > $eDate) { + return 0 - ($wholeWeekDays + $partWeekDays); + } + return $wholeWeekDays + $partWeekDays; + } // function NETWORKDAYS() + + + /** + * WORKDAY + * + * Returns the date that is the indicated number of working days before or after a date (the + * starting date). Working days exclude weekends and any dates identified as holidays. + * Use WORKDAY to exclude weekends or holidays when you calculate invoice due dates, expected + * delivery times, or the number of days of work performed. + * + * Excel Function: + * WORKDAY(startDate,endDays[,holidays[,holiday[,...]]]) + * + * @access public + * @category Date/Time Functions + * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param integer $endDays The number of nonweekend and nonholiday days before or after + * startDate. A positive value for days yields a future date; a + * negative value yields a past date. + * @param mixed $holidays,... Optional series of Excel date serial value (float), PHP date + * timestamp (integer), PHP DateTime object, or a standard date + * strings that will be excluded from the working calendar, such + * as state and federal holidays and floating holidays. + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function WORKDAY($startDate,$endDays) { + // Retrieve the mandatory start date and days that are referenced in the function definition + $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); + $endDays = PHPExcel_Calculation_Functions::flattenSingleValue($endDays); + // Flush the mandatory start date and days that are referenced in the function definition, and get the optional days + $dateArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + array_shift($dateArgs); + array_shift($dateArgs); + + if ((is_string($startDate = self::_getDateValue($startDate))) || (!is_numeric($endDays))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $startDate = (float) floor($startDate); + $endDays = (int) floor($endDays); + // If endDays is 0, we always return startDate + if ($endDays == 0) { return $startDate; } + + $decrementing = ($endDays < 0) ? True : False; + + // Adjust the start date if it falls over a weekend + + $startDoW = self::DAYOFWEEK($startDate,3); + if (self::DAYOFWEEK($startDate,3) >= 5) { + $startDate += ($decrementing) ? -$startDoW + 4: 7 - $startDoW; + ($decrementing) ? $endDays++ : $endDays--; + } + + // Add endDays + $endDate = (float) $startDate + (intval($endDays / 5) * 7) + ($endDays % 5); + + // Adjust the calculated end date if it falls over a weekend + $endDoW = self::DAYOFWEEK($endDate,3); + if ($endDoW >= 5) { + $endDate += ($decrementing) ? -$endDoW + 4: 7 - $endDoW; + } + + // Test any extra holiday parameters + if (!empty($dateArgs)) { + $holidayCountedArray = $holidayDates = array(); + foreach ($dateArgs as $holidayDate) { + if (($holidayDate !== NULL) && (trim($holidayDate) > '')) { + if (is_string($holidayDate = self::_getDateValue($holidayDate))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (self::DAYOFWEEK($holidayDate,3) < 5) { + $holidayDates[] = $holidayDate; + } + } + } + if ($decrementing) { + rsort($holidayDates, SORT_NUMERIC); + } else { + sort($holidayDates, SORT_NUMERIC); + } + foreach ($holidayDates as $holidayDate) { + if ($decrementing) { + if (($holidayDate <= $startDate) && ($holidayDate >= $endDate)) { + if (!in_array($holidayDate,$holidayCountedArray)) { + --$endDate; + $holidayCountedArray[] = $holidayDate; + } + } + } else { + if (($holidayDate >= $startDate) && ($holidayDate <= $endDate)) { + if (!in_array($holidayDate,$holidayCountedArray)) { + ++$endDate; + $holidayCountedArray[] = $holidayDate; + } + } + } + // Adjust the calculated end date if it falls over a weekend + $endDoW = self::DAYOFWEEK($endDate,3); + if ($endDoW >= 5) { + $endDate += ($decrementing) ? -$endDoW + 4: 7 - $endDoW; + } + + } + } + + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + return (float) $endDate; + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + return (integer) PHPExcel_Shared_Date::ExcelToPHP($endDate); + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + return PHPExcel_Shared_Date::ExcelToPHPObject($endDate); + } + } // function WORKDAY() + + + /** + * DAYOFMONTH + * + * Returns the day of the month, for a specified date. The day is given as an integer + * ranging from 1 to 31. + * + * Excel Function: + * DAY(dateValue) + * + * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @return int Day of the month + */ + public static function DAYOFMONTH($dateValue = 1) { + $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); + + if (is_string($dateValue = self::_getDateValue($dateValue))) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ($dateValue == 0.0) { + return 0; + } elseif ($dateValue < 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Execute function + $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); + + return (int) $PHPDateObject->format('j'); + } // function DAYOFMONTH() + + + /** + * DAYOFWEEK + * + * Returns the day of the week for a specified date. The day is given as an integer + * ranging from 0 to 7 (dependent on the requested style). + * + * Excel Function: + * WEEKDAY(dateValue[,style]) + * + * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param int $style A number that determines the type of return value + * 1 or omitted Numbers 1 (Sunday) through 7 (Saturday). + * 2 Numbers 1 (Monday) through 7 (Sunday). + * 3 Numbers 0 (Monday) through 6 (Sunday). + * @return int Day of the week value + */ + public static function DAYOFWEEK($dateValue = 1, $style = 1) { + $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); + $style = PHPExcel_Calculation_Functions::flattenSingleValue($style); + + if (!is_numeric($style)) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif (($style < 1) || ($style > 3)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $style = floor($style); + + if (is_string($dateValue = self::_getDateValue($dateValue))) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ($dateValue < 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Execute function + $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); + $DoW = $PHPDateObject->format('w'); + + $firstDay = 1; + switch ($style) { + case 1: ++$DoW; + break; + case 2: if ($DoW == 0) { $DoW = 7; } + break; + case 3: if ($DoW == 0) { $DoW = 7; } + $firstDay = 0; + --$DoW; + break; + } + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL) { + // Test for Excel's 1900 leap year, and introduce the error as required + if (($PHPDateObject->format('Y') == 1900) && ($PHPDateObject->format('n') <= 2)) { + --$DoW; + if ($DoW < $firstDay) { + $DoW += 7; + } + } + } + + return (int) $DoW; + } // function DAYOFWEEK() + + + /** + * WEEKOFYEAR + * + * Returns the week of the year for a specified date. + * The WEEKNUM function considers the week containing January 1 to be the first week of the year. + * However, there is a European standard that defines the first week as the one with the majority + * of days (four or more) falling in the new year. This means that for years in which there are + * three days or less in the first week of January, the WEEKNUM function returns week numbers + * that are incorrect according to the European standard. + * + * Excel Function: + * WEEKNUM(dateValue[,style]) + * + * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param boolean $method Week begins on Sunday or Monday + * 1 or omitted Week begins on Sunday. + * 2 Week begins on Monday. + * @return int Week Number + */ + public static function WEEKOFYEAR($dateValue = 1, $method = 1) { + $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); + $method = PHPExcel_Calculation_Functions::flattenSingleValue($method); + + if (!is_numeric($method)) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif (($method < 1) || ($method > 2)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $method = floor($method); + + if (is_string($dateValue = self::_getDateValue($dateValue))) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ($dateValue < 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Execute function + $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); + $dayOfYear = $PHPDateObject->format('z'); + $dow = $PHPDateObject->format('w'); + $PHPDateObject->modify('-'.$dayOfYear.' days'); + $dow = $PHPDateObject->format('w'); + $daysInFirstWeek = 7 - (($dow + (2 - $method)) % 7); + $dayOfYear -= $daysInFirstWeek; + $weekOfYear = ceil($dayOfYear / 7) + 1; + + return (int) $weekOfYear; + } // function WEEKOFYEAR() + + + /** + * MONTHOFYEAR + * + * Returns the month of a date represented by a serial number. + * The month is given as an integer, ranging from 1 (January) to 12 (December). + * + * Excel Function: + * MONTH(dateValue) + * + * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @return int Month of the year + */ + public static function MONTHOFYEAR($dateValue = 1) { + $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); + + if (is_string($dateValue = self::_getDateValue($dateValue))) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ($dateValue < 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Execute function + $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); + + return (int) $PHPDateObject->format('n'); + } // function MONTHOFYEAR() + + + /** + * YEAR + * + * Returns the year corresponding to a date. + * The year is returned as an integer in the range 1900-9999. + * + * Excel Function: + * YEAR(dateValue) + * + * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @return int Year + */ + public static function YEAR($dateValue = 1) { + $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); + + if (is_string($dateValue = self::_getDateValue($dateValue))) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ($dateValue < 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Execute function + $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); + + return (int) $PHPDateObject->format('Y'); + } // function YEAR() + + + /** + * HOUROFDAY + * + * Returns the hour of a time value. + * The hour is given as an integer, ranging from 0 (12:00 A.M.) to 23 (11:00 P.M.). + * + * Excel Function: + * HOUR(timeValue) + * + * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard time string + * @return int Hour + */ + public static function HOUROFDAY($timeValue = 0) { + $timeValue = PHPExcel_Calculation_Functions::flattenSingleValue($timeValue); + + if (!is_numeric($timeValue)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + $testVal = strtok($timeValue,'/-: '); + if (strlen($testVal) < strlen($timeValue)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + $timeValue = self::_getTimeValue($timeValue); + if (is_string($timeValue)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + // Execute function + if ($timeValue >= 1) { + $timeValue = fmod($timeValue,1); + } elseif ($timeValue < 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + $timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue); + + return (int) gmdate('G',$timeValue); + } // function HOUROFDAY() + + + /** + * MINUTEOFHOUR + * + * Returns the minutes of a time value. + * The minute is given as an integer, ranging from 0 to 59. + * + * Excel Function: + * MINUTE(timeValue) + * + * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard time string + * @return int Minute + */ + public static function MINUTEOFHOUR($timeValue = 0) { + $timeValue = $timeTester = PHPExcel_Calculation_Functions::flattenSingleValue($timeValue); + + if (!is_numeric($timeValue)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + $testVal = strtok($timeValue,'/-: '); + if (strlen($testVal) < strlen($timeValue)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + $timeValue = self::_getTimeValue($timeValue); + if (is_string($timeValue)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + // Execute function + if ($timeValue >= 1) { + $timeValue = fmod($timeValue,1); + } elseif ($timeValue < 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + $timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue); + + return (int) gmdate('i',$timeValue); + } // function MINUTEOFHOUR() + + + /** + * SECONDOFMINUTE + * + * Returns the seconds of a time value. + * The second is given as an integer in the range 0 (zero) to 59. + * + * Excel Function: + * SECOND(timeValue) + * + * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard time string + * @return int Second + */ + public static function SECONDOFMINUTE($timeValue = 0) { + $timeValue = PHPExcel_Calculation_Functions::flattenSingleValue($timeValue); + + if (!is_numeric($timeValue)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + $testVal = strtok($timeValue,'/-: '); + if (strlen($testVal) < strlen($timeValue)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + $timeValue = self::_getTimeValue($timeValue); + if (is_string($timeValue)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + // Execute function + if ($timeValue >= 1) { + $timeValue = fmod($timeValue,1); + } elseif ($timeValue < 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + $timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue); + + return (int) gmdate('s',$timeValue); + } // function SECONDOFMINUTE() + + + /** + * EDATE + * + * Returns the serial number that represents the date that is the indicated number of months + * before or after a specified date (the start_date). + * Use EDATE to calculate maturity dates or due dates that fall on the same day of the month + * as the date of issue. + * + * Excel Function: + * EDATE(dateValue,adjustmentMonths) + * + * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param int $adjustmentMonths The number of months before or after start_date. + * A positive value for months yields a future date; + * a negative value yields a past date. + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function EDATE($dateValue = 1, $adjustmentMonths = 0) { + $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); + $adjustmentMonths = PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths); + + if (!is_numeric($adjustmentMonths)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $adjustmentMonths = floor($adjustmentMonths); + + if (is_string($dateValue = self::_getDateValue($dateValue))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Execute function + $PHPDateObject = self::_adjustDateByMonths($dateValue,$adjustmentMonths); + + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + return (float) PHPExcel_Shared_Date::PHPToExcel($PHPDateObject); + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::PHPToExcel($PHPDateObject)); + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + return $PHPDateObject; + } + } // function EDATE() + + + /** + * EOMONTH + * + * Returns the date value for the last day of the month that is the indicated number of months + * before or after start_date. + * Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month. + * + * Excel Function: + * EOMONTH(dateValue,adjustmentMonths) + * + * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), + * PHP DateTime object, or a standard date string + * @param int $adjustmentMonths The number of months before or after start_date. + * A positive value for months yields a future date; + * a negative value yields a past date. + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function EOMONTH($dateValue = 1, $adjustmentMonths = 0) { + $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); + $adjustmentMonths = PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths); + + if (!is_numeric($adjustmentMonths)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $adjustmentMonths = floor($adjustmentMonths); + + if (is_string($dateValue = self::_getDateValue($dateValue))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Execute function + $PHPDateObject = self::_adjustDateByMonths($dateValue,$adjustmentMonths+1); + $adjustDays = (int) $PHPDateObject->format('d'); + $adjustDaysString = '-'.$adjustDays.' days'; + $PHPDateObject->modify($adjustDaysString); + + switch (PHPExcel_Calculation_Functions::getReturnDateType()) { + case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL : + return (float) PHPExcel_Shared_Date::PHPToExcel($PHPDateObject); + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC : + return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::PHPToExcel($PHPDateObject)); + case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT : + return $PHPDateObject; + } + } // function EOMONTH() + +} // class PHPExcel_Calculation_DateTime + diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/Engineering.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/Engineering.php new file mode 100755 index 0000000..cfaffaf --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/Engineering.php @@ -0,0 +1,2502 @@ + array( 'Group' => 'Mass', 'Unit Name' => 'Gram', 'AllowPrefix' => True ), + 'sg' => array( 'Group' => 'Mass', 'Unit Name' => 'Slug', 'AllowPrefix' => False ), + 'lbm' => array( 'Group' => 'Mass', 'Unit Name' => 'Pound mass (avoirdupois)', 'AllowPrefix' => False ), + 'u' => array( 'Group' => 'Mass', 'Unit Name' => 'U (atomic mass unit)', 'AllowPrefix' => True ), + 'ozm' => array( 'Group' => 'Mass', 'Unit Name' => 'Ounce mass (avoirdupois)', 'AllowPrefix' => False ), + 'm' => array( 'Group' => 'Distance', 'Unit Name' => 'Meter', 'AllowPrefix' => True ), + 'mi' => array( 'Group' => 'Distance', 'Unit Name' => 'Statute mile', 'AllowPrefix' => False ), + 'Nmi' => array( 'Group' => 'Distance', 'Unit Name' => 'Nautical mile', 'AllowPrefix' => False ), + 'in' => array( 'Group' => 'Distance', 'Unit Name' => 'Inch', 'AllowPrefix' => False ), + 'ft' => array( 'Group' => 'Distance', 'Unit Name' => 'Foot', 'AllowPrefix' => False ), + 'yd' => array( 'Group' => 'Distance', 'Unit Name' => 'Yard', 'AllowPrefix' => False ), + 'ang' => array( 'Group' => 'Distance', 'Unit Name' => 'Angstrom', 'AllowPrefix' => True ), + 'Pica' => array( 'Group' => 'Distance', 'Unit Name' => 'Pica (1/72 in)', 'AllowPrefix' => False ), + 'yr' => array( 'Group' => 'Time', 'Unit Name' => 'Year', 'AllowPrefix' => False ), + 'day' => array( 'Group' => 'Time', 'Unit Name' => 'Day', 'AllowPrefix' => False ), + 'hr' => array( 'Group' => 'Time', 'Unit Name' => 'Hour', 'AllowPrefix' => False ), + 'mn' => array( 'Group' => 'Time', 'Unit Name' => 'Minute', 'AllowPrefix' => False ), + 'sec' => array( 'Group' => 'Time', 'Unit Name' => 'Second', 'AllowPrefix' => True ), + 'Pa' => array( 'Group' => 'Pressure', 'Unit Name' => 'Pascal', 'AllowPrefix' => True ), + 'p' => array( 'Group' => 'Pressure', 'Unit Name' => 'Pascal', 'AllowPrefix' => True ), + 'atm' => array( 'Group' => 'Pressure', 'Unit Name' => 'Atmosphere', 'AllowPrefix' => True ), + 'at' => array( 'Group' => 'Pressure', 'Unit Name' => 'Atmosphere', 'AllowPrefix' => True ), + 'mmHg' => array( 'Group' => 'Pressure', 'Unit Name' => 'mm of Mercury', 'AllowPrefix' => True ), + 'N' => array( 'Group' => 'Force', 'Unit Name' => 'Newton', 'AllowPrefix' => True ), + 'dyn' => array( 'Group' => 'Force', 'Unit Name' => 'Dyne', 'AllowPrefix' => True ), + 'dy' => array( 'Group' => 'Force', 'Unit Name' => 'Dyne', 'AllowPrefix' => True ), + 'lbf' => array( 'Group' => 'Force', 'Unit Name' => 'Pound force', 'AllowPrefix' => False ), + 'J' => array( 'Group' => 'Energy', 'Unit Name' => 'Joule', 'AllowPrefix' => True ), + 'e' => array( 'Group' => 'Energy', 'Unit Name' => 'Erg', 'AllowPrefix' => True ), + 'c' => array( 'Group' => 'Energy', 'Unit Name' => 'Thermodynamic calorie', 'AllowPrefix' => True ), + 'cal' => array( 'Group' => 'Energy', 'Unit Name' => 'IT calorie', 'AllowPrefix' => True ), + 'eV' => array( 'Group' => 'Energy', 'Unit Name' => 'Electron volt', 'AllowPrefix' => True ), + 'ev' => array( 'Group' => 'Energy', 'Unit Name' => 'Electron volt', 'AllowPrefix' => True ), + 'HPh' => array( 'Group' => 'Energy', 'Unit Name' => 'Horsepower-hour', 'AllowPrefix' => False ), + 'hh' => array( 'Group' => 'Energy', 'Unit Name' => 'Horsepower-hour', 'AllowPrefix' => False ), + 'Wh' => array( 'Group' => 'Energy', 'Unit Name' => 'Watt-hour', 'AllowPrefix' => True ), + 'wh' => array( 'Group' => 'Energy', 'Unit Name' => 'Watt-hour', 'AllowPrefix' => True ), + 'flb' => array( 'Group' => 'Energy', 'Unit Name' => 'Foot-pound', 'AllowPrefix' => False ), + 'BTU' => array( 'Group' => 'Energy', 'Unit Name' => 'BTU', 'AllowPrefix' => False ), + 'btu' => array( 'Group' => 'Energy', 'Unit Name' => 'BTU', 'AllowPrefix' => False ), + 'HP' => array( 'Group' => 'Power', 'Unit Name' => 'Horsepower', 'AllowPrefix' => False ), + 'h' => array( 'Group' => 'Power', 'Unit Name' => 'Horsepower', 'AllowPrefix' => False ), + 'W' => array( 'Group' => 'Power', 'Unit Name' => 'Watt', 'AllowPrefix' => True ), + 'w' => array( 'Group' => 'Power', 'Unit Name' => 'Watt', 'AllowPrefix' => True ), + 'T' => array( 'Group' => 'Magnetism', 'Unit Name' => 'Tesla', 'AllowPrefix' => True ), + 'ga' => array( 'Group' => 'Magnetism', 'Unit Name' => 'Gauss', 'AllowPrefix' => True ), + 'C' => array( 'Group' => 'Temperature', 'Unit Name' => 'Celsius', 'AllowPrefix' => False ), + 'cel' => array( 'Group' => 'Temperature', 'Unit Name' => 'Celsius', 'AllowPrefix' => False ), + 'F' => array( 'Group' => 'Temperature', 'Unit Name' => 'Fahrenheit', 'AllowPrefix' => False ), + 'fah' => array( 'Group' => 'Temperature', 'Unit Name' => 'Fahrenheit', 'AllowPrefix' => False ), + 'K' => array( 'Group' => 'Temperature', 'Unit Name' => 'Kelvin', 'AllowPrefix' => False ), + 'kel' => array( 'Group' => 'Temperature', 'Unit Name' => 'Kelvin', 'AllowPrefix' => False ), + 'tsp' => array( 'Group' => 'Liquid', 'Unit Name' => 'Teaspoon', 'AllowPrefix' => False ), + 'tbs' => array( 'Group' => 'Liquid', 'Unit Name' => 'Tablespoon', 'AllowPrefix' => False ), + 'oz' => array( 'Group' => 'Liquid', 'Unit Name' => 'Fluid Ounce', 'AllowPrefix' => False ), + 'cup' => array( 'Group' => 'Liquid', 'Unit Name' => 'Cup', 'AllowPrefix' => False ), + 'pt' => array( 'Group' => 'Liquid', 'Unit Name' => 'U.S. Pint', 'AllowPrefix' => False ), + 'us_pt' => array( 'Group' => 'Liquid', 'Unit Name' => 'U.S. Pint', 'AllowPrefix' => False ), + 'uk_pt' => array( 'Group' => 'Liquid', 'Unit Name' => 'U.K. Pint', 'AllowPrefix' => False ), + 'qt' => array( 'Group' => 'Liquid', 'Unit Name' => 'Quart', 'AllowPrefix' => False ), + 'gal' => array( 'Group' => 'Liquid', 'Unit Name' => 'Gallon', 'AllowPrefix' => False ), + 'l' => array( 'Group' => 'Liquid', 'Unit Name' => 'Litre', 'AllowPrefix' => True ), + 'lt' => array( 'Group' => 'Liquid', 'Unit Name' => 'Litre', 'AllowPrefix' => True ) + ); + + /** + * Details of the Multiplier prefixes that can be used with Units of Measure in CONVERTUOM() + * + * @var mixed[] + */ + private static $_conversionMultipliers = array( 'Y' => array( 'multiplier' => 1E24, 'name' => 'yotta' ), + 'Z' => array( 'multiplier' => 1E21, 'name' => 'zetta' ), + 'E' => array( 'multiplier' => 1E18, 'name' => 'exa' ), + 'P' => array( 'multiplier' => 1E15, 'name' => 'peta' ), + 'T' => array( 'multiplier' => 1E12, 'name' => 'tera' ), + 'G' => array( 'multiplier' => 1E9, 'name' => 'giga' ), + 'M' => array( 'multiplier' => 1E6, 'name' => 'mega' ), + 'k' => array( 'multiplier' => 1E3, 'name' => 'kilo' ), + 'h' => array( 'multiplier' => 1E2, 'name' => 'hecto' ), + 'e' => array( 'multiplier' => 1E1, 'name' => 'deka' ), + 'd' => array( 'multiplier' => 1E-1, 'name' => 'deci' ), + 'c' => array( 'multiplier' => 1E-2, 'name' => 'centi' ), + 'm' => array( 'multiplier' => 1E-3, 'name' => 'milli' ), + 'u' => array( 'multiplier' => 1E-6, 'name' => 'micro' ), + 'n' => array( 'multiplier' => 1E-9, 'name' => 'nano' ), + 'p' => array( 'multiplier' => 1E-12, 'name' => 'pico' ), + 'f' => array( 'multiplier' => 1E-15, 'name' => 'femto' ), + 'a' => array( 'multiplier' => 1E-18, 'name' => 'atto' ), + 'z' => array( 'multiplier' => 1E-21, 'name' => 'zepto' ), + 'y' => array( 'multiplier' => 1E-24, 'name' => 'yocto' ) + ); + + /** + * Details of the Units of measure conversion factors, organised by group + * + * @var mixed[] + */ + private static $_unitConversions = array( 'Mass' => array( 'g' => array( 'g' => 1.0, + 'sg' => 6.85220500053478E-05, + 'lbm' => 2.20462291469134E-03, + 'u' => 6.02217000000000E+23, + 'ozm' => 3.52739718003627E-02 + ), + 'sg' => array( 'g' => 1.45938424189287E+04, + 'sg' => 1.0, + 'lbm' => 3.21739194101647E+01, + 'u' => 8.78866000000000E+27, + 'ozm' => 5.14782785944229E+02 + ), + 'lbm' => array( 'g' => 4.5359230974881148E+02, + 'sg' => 3.10810749306493E-02, + 'lbm' => 1.0, + 'u' => 2.73161000000000E+26, + 'ozm' => 1.60000023429410E+01 + ), + 'u' => array( 'g' => 1.66053100460465E-24, + 'sg' => 1.13782988532950E-28, + 'lbm' => 3.66084470330684E-27, + 'u' => 1.0, + 'ozm' => 5.85735238300524E-26 + ), + 'ozm' => array( 'g' => 2.83495152079732E+01, + 'sg' => 1.94256689870811E-03, + 'lbm' => 6.24999908478882E-02, + 'u' => 1.70725600000000E+25, + 'ozm' => 1.0 + ) + ), + 'Distance' => array( 'm' => array( 'm' => 1.0, + 'mi' => 6.21371192237334E-04, + 'Nmi' => 5.39956803455724E-04, + 'in' => 3.93700787401575E+01, + 'ft' => 3.28083989501312E+00, + 'yd' => 1.09361329797891E+00, + 'ang' => 1.00000000000000E+10, + 'Pica' => 2.83464566929116E+03 + ), + 'mi' => array( 'm' => 1.60934400000000E+03, + 'mi' => 1.0, + 'Nmi' => 8.68976241900648E-01, + 'in' => 6.33600000000000E+04, + 'ft' => 5.28000000000000E+03, + 'yd' => 1.76000000000000E+03, + 'ang' => 1.60934400000000E+13, + 'Pica' => 4.56191999999971E+06 + ), + 'Nmi' => array( 'm' => 1.85200000000000E+03, + 'mi' => 1.15077944802354E+00, + 'Nmi' => 1.0, + 'in' => 7.29133858267717E+04, + 'ft' => 6.07611548556430E+03, + 'yd' => 2.02537182785694E+03, + 'ang' => 1.85200000000000E+13, + 'Pica' => 5.24976377952723E+06 + ), + 'in' => array( 'm' => 2.54000000000000E-02, + 'mi' => 1.57828282828283E-05, + 'Nmi' => 1.37149028077754E-05, + 'in' => 1.0, + 'ft' => 8.33333333333333E-02, + 'yd' => 2.77777777686643E-02, + 'ang' => 2.54000000000000E+08, + 'Pica' => 7.19999999999955E+01 + ), + 'ft' => array( 'm' => 3.04800000000000E-01, + 'mi' => 1.89393939393939E-04, + 'Nmi' => 1.64578833693305E-04, + 'in' => 1.20000000000000E+01, + 'ft' => 1.0, + 'yd' => 3.33333333223972E-01, + 'ang' => 3.04800000000000E+09, + 'Pica' => 8.63999999999946E+02 + ), + 'yd' => array( 'm' => 9.14400000300000E-01, + 'mi' => 5.68181818368230E-04, + 'Nmi' => 4.93736501241901E-04, + 'in' => 3.60000000118110E+01, + 'ft' => 3.00000000000000E+00, + 'yd' => 1.0, + 'ang' => 9.14400000300000E+09, + 'Pica' => 2.59200000085023E+03 + ), + 'ang' => array( 'm' => 1.00000000000000E-10, + 'mi' => 6.21371192237334E-14, + 'Nmi' => 5.39956803455724E-14, + 'in' => 3.93700787401575E-09, + 'ft' => 3.28083989501312E-10, + 'yd' => 1.09361329797891E-10, + 'ang' => 1.0, + 'Pica' => 2.83464566929116E-07 + ), + 'Pica' => array( 'm' => 3.52777777777800E-04, + 'mi' => 2.19205948372629E-07, + 'Nmi' => 1.90484761219114E-07, + 'in' => 1.38888888888898E-02, + 'ft' => 1.15740740740748E-03, + 'yd' => 3.85802469009251E-04, + 'ang' => 3.52777777777800E+06, + 'Pica' => 1.0 + ) + ), + 'Time' => array( 'yr' => array( 'yr' => 1.0, + 'day' => 365.25, + 'hr' => 8766.0, + 'mn' => 525960.0, + 'sec' => 31557600.0 + ), + 'day' => array( 'yr' => 2.73785078713210E-03, + 'day' => 1.0, + 'hr' => 24.0, + 'mn' => 1440.0, + 'sec' => 86400.0 + ), + 'hr' => array( 'yr' => 1.14077116130504E-04, + 'day' => 4.16666666666667E-02, + 'hr' => 1.0, + 'mn' => 60.0, + 'sec' => 3600.0 + ), + 'mn' => array( 'yr' => 1.90128526884174E-06, + 'day' => 6.94444444444444E-04, + 'hr' => 1.66666666666667E-02, + 'mn' => 1.0, + 'sec' => 60.0 + ), + 'sec' => array( 'yr' => 3.16880878140289E-08, + 'day' => 1.15740740740741E-05, + 'hr' => 2.77777777777778E-04, + 'mn' => 1.66666666666667E-02, + 'sec' => 1.0 + ) + ), + 'Pressure' => array( 'Pa' => array( 'Pa' => 1.0, + 'p' => 1.0, + 'atm' => 9.86923299998193E-06, + 'at' => 9.86923299998193E-06, + 'mmHg' => 7.50061707998627E-03 + ), + 'p' => array( 'Pa' => 1.0, + 'p' => 1.0, + 'atm' => 9.86923299998193E-06, + 'at' => 9.86923299998193E-06, + 'mmHg' => 7.50061707998627E-03 + ), + 'atm' => array( 'Pa' => 1.01324996583000E+05, + 'p' => 1.01324996583000E+05, + 'atm' => 1.0, + 'at' => 1.0, + 'mmHg' => 760.0 + ), + 'at' => array( 'Pa' => 1.01324996583000E+05, + 'p' => 1.01324996583000E+05, + 'atm' => 1.0, + 'at' => 1.0, + 'mmHg' => 760.0 + ), + 'mmHg' => array( 'Pa' => 1.33322363925000E+02, + 'p' => 1.33322363925000E+02, + 'atm' => 1.31578947368421E-03, + 'at' => 1.31578947368421E-03, + 'mmHg' => 1.0 + ) + ), + 'Force' => array( 'N' => array( 'N' => 1.0, + 'dyn' => 1.0E+5, + 'dy' => 1.0E+5, + 'lbf' => 2.24808923655339E-01 + ), + 'dyn' => array( 'N' => 1.0E-5, + 'dyn' => 1.0, + 'dy' => 1.0, + 'lbf' => 2.24808923655339E-06 + ), + 'dy' => array( 'N' => 1.0E-5, + 'dyn' => 1.0, + 'dy' => 1.0, + 'lbf' => 2.24808923655339E-06 + ), + 'lbf' => array( 'N' => 4.448222, + 'dyn' => 4.448222E+5, + 'dy' => 4.448222E+5, + 'lbf' => 1.0 + ) + ), + 'Energy' => array( 'J' => array( 'J' => 1.0, + 'e' => 9.99999519343231E+06, + 'c' => 2.39006249473467E-01, + 'cal' => 2.38846190642017E-01, + 'eV' => 6.24145700000000E+18, + 'ev' => 6.24145700000000E+18, + 'HPh' => 3.72506430801000E-07, + 'hh' => 3.72506430801000E-07, + 'Wh' => 2.77777916238711E-04, + 'wh' => 2.77777916238711E-04, + 'flb' => 2.37304222192651E+01, + 'BTU' => 9.47815067349015E-04, + 'btu' => 9.47815067349015E-04 + ), + 'e' => array( 'J' => 1.00000048065700E-07, + 'e' => 1.0, + 'c' => 2.39006364353494E-08, + 'cal' => 2.38846305445111E-08, + 'eV' => 6.24146000000000E+11, + 'ev' => 6.24146000000000E+11, + 'HPh' => 3.72506609848824E-14, + 'hh' => 3.72506609848824E-14, + 'Wh' => 2.77778049754611E-11, + 'wh' => 2.77778049754611E-11, + 'flb' => 2.37304336254586E-06, + 'BTU' => 9.47815522922962E-11, + 'btu' => 9.47815522922962E-11 + ), + 'c' => array( 'J' => 4.18399101363672E+00, + 'e' => 4.18398900257312E+07, + 'c' => 1.0, + 'cal' => 9.99330315287563E-01, + 'eV' => 2.61142000000000E+19, + 'ev' => 2.61142000000000E+19, + 'HPh' => 1.55856355899327E-06, + 'hh' => 1.55856355899327E-06, + 'Wh' => 1.16222030532950E-03, + 'wh' => 1.16222030532950E-03, + 'flb' => 9.92878733152102E+01, + 'BTU' => 3.96564972437776E-03, + 'btu' => 3.96564972437776E-03 + ), + 'cal' => array( 'J' => 4.18679484613929E+00, + 'e' => 4.18679283372801E+07, + 'c' => 1.00067013349059E+00, + 'cal' => 1.0, + 'eV' => 2.61317000000000E+19, + 'ev' => 2.61317000000000E+19, + 'HPh' => 1.55960800463137E-06, + 'hh' => 1.55960800463137E-06, + 'Wh' => 1.16299914807955E-03, + 'wh' => 1.16299914807955E-03, + 'flb' => 9.93544094443283E+01, + 'BTU' => 3.96830723907002E-03, + 'btu' => 3.96830723907002E-03 + ), + 'eV' => array( 'J' => 1.60219000146921E-19, + 'e' => 1.60218923136574E-12, + 'c' => 3.82933423195043E-20, + 'cal' => 3.82676978535648E-20, + 'eV' => 1.0, + 'ev' => 1.0, + 'HPh' => 5.96826078912344E-26, + 'hh' => 5.96826078912344E-26, + 'Wh' => 4.45053000026614E-23, + 'wh' => 4.45053000026614E-23, + 'flb' => 3.80206452103492E-18, + 'BTU' => 1.51857982414846E-22, + 'btu' => 1.51857982414846E-22 + ), + 'ev' => array( 'J' => 1.60219000146921E-19, + 'e' => 1.60218923136574E-12, + 'c' => 3.82933423195043E-20, + 'cal' => 3.82676978535648E-20, + 'eV' => 1.0, + 'ev' => 1.0, + 'HPh' => 5.96826078912344E-26, + 'hh' => 5.96826078912344E-26, + 'Wh' => 4.45053000026614E-23, + 'wh' => 4.45053000026614E-23, + 'flb' => 3.80206452103492E-18, + 'BTU' => 1.51857982414846E-22, + 'btu' => 1.51857982414846E-22 + ), + 'HPh' => array( 'J' => 2.68451741316170E+06, + 'e' => 2.68451612283024E+13, + 'c' => 6.41616438565991E+05, + 'cal' => 6.41186757845835E+05, + 'eV' => 1.67553000000000E+25, + 'ev' => 1.67553000000000E+25, + 'HPh' => 1.0, + 'hh' => 1.0, + 'Wh' => 7.45699653134593E+02, + 'wh' => 7.45699653134593E+02, + 'flb' => 6.37047316692964E+07, + 'BTU' => 2.54442605275546E+03, + 'btu' => 2.54442605275546E+03 + ), + 'hh' => array( 'J' => 2.68451741316170E+06, + 'e' => 2.68451612283024E+13, + 'c' => 6.41616438565991E+05, + 'cal' => 6.41186757845835E+05, + 'eV' => 1.67553000000000E+25, + 'ev' => 1.67553000000000E+25, + 'HPh' => 1.0, + 'hh' => 1.0, + 'Wh' => 7.45699653134593E+02, + 'wh' => 7.45699653134593E+02, + 'flb' => 6.37047316692964E+07, + 'BTU' => 2.54442605275546E+03, + 'btu' => 2.54442605275546E+03 + ), + 'Wh' => array( 'J' => 3.59999820554720E+03, + 'e' => 3.59999647518369E+10, + 'c' => 8.60422069219046E+02, + 'cal' => 8.59845857713046E+02, + 'eV' => 2.24692340000000E+22, + 'ev' => 2.24692340000000E+22, + 'HPh' => 1.34102248243839E-03, + 'hh' => 1.34102248243839E-03, + 'Wh' => 1.0, + 'wh' => 1.0, + 'flb' => 8.54294774062316E+04, + 'BTU' => 3.41213254164705E+00, + 'btu' => 3.41213254164705E+00 + ), + 'wh' => array( 'J' => 3.59999820554720E+03, + 'e' => 3.59999647518369E+10, + 'c' => 8.60422069219046E+02, + 'cal' => 8.59845857713046E+02, + 'eV' => 2.24692340000000E+22, + 'ev' => 2.24692340000000E+22, + 'HPh' => 1.34102248243839E-03, + 'hh' => 1.34102248243839E-03, + 'Wh' => 1.0, + 'wh' => 1.0, + 'flb' => 8.54294774062316E+04, + 'BTU' => 3.41213254164705E+00, + 'btu' => 3.41213254164705E+00 + ), + 'flb' => array( 'J' => 4.21400003236424E-02, + 'e' => 4.21399800687660E+05, + 'c' => 1.00717234301644E-02, + 'cal' => 1.00649785509554E-02, + 'eV' => 2.63015000000000E+17, + 'ev' => 2.63015000000000E+17, + 'HPh' => 1.56974211145130E-08, + 'hh' => 1.56974211145130E-08, + 'Wh' => 1.17055614802000E-05, + 'wh' => 1.17055614802000E-05, + 'flb' => 1.0, + 'BTU' => 3.99409272448406E-05, + 'btu' => 3.99409272448406E-05 + ), + 'BTU' => array( 'J' => 1.05505813786749E+03, + 'e' => 1.05505763074665E+10, + 'c' => 2.52165488508168E+02, + 'cal' => 2.51996617135510E+02, + 'eV' => 6.58510000000000E+21, + 'ev' => 6.58510000000000E+21, + 'HPh' => 3.93015941224568E-04, + 'hh' => 3.93015941224568E-04, + 'Wh' => 2.93071851047526E-01, + 'wh' => 2.93071851047526E-01, + 'flb' => 2.50369750774671E+04, + 'BTU' => 1.0, + 'btu' => 1.0, + ), + 'btu' => array( 'J' => 1.05505813786749E+03, + 'e' => 1.05505763074665E+10, + 'c' => 2.52165488508168E+02, + 'cal' => 2.51996617135510E+02, + 'eV' => 6.58510000000000E+21, + 'ev' => 6.58510000000000E+21, + 'HPh' => 3.93015941224568E-04, + 'hh' => 3.93015941224568E-04, + 'Wh' => 2.93071851047526E-01, + 'wh' => 2.93071851047526E-01, + 'flb' => 2.50369750774671E+04, + 'BTU' => 1.0, + 'btu' => 1.0, + ) + ), + 'Power' => array( 'HP' => array( 'HP' => 1.0, + 'h' => 1.0, + 'W' => 7.45701000000000E+02, + 'w' => 7.45701000000000E+02 + ), + 'h' => array( 'HP' => 1.0, + 'h' => 1.0, + 'W' => 7.45701000000000E+02, + 'w' => 7.45701000000000E+02 + ), + 'W' => array( 'HP' => 1.34102006031908E-03, + 'h' => 1.34102006031908E-03, + 'W' => 1.0, + 'w' => 1.0 + ), + 'w' => array( 'HP' => 1.34102006031908E-03, + 'h' => 1.34102006031908E-03, + 'W' => 1.0, + 'w' => 1.0 + ) + ), + 'Magnetism' => array( 'T' => array( 'T' => 1.0, + 'ga' => 10000.0 + ), + 'ga' => array( 'T' => 0.0001, + 'ga' => 1.0 + ) + ), + 'Liquid' => array( 'tsp' => array( 'tsp' => 1.0, + 'tbs' => 3.33333333333333E-01, + 'oz' => 1.66666666666667E-01, + 'cup' => 2.08333333333333E-02, + 'pt' => 1.04166666666667E-02, + 'us_pt' => 1.04166666666667E-02, + 'uk_pt' => 8.67558516821960E-03, + 'qt' => 5.20833333333333E-03, + 'gal' => 1.30208333333333E-03, + 'l' => 4.92999408400710E-03, + 'lt' => 4.92999408400710E-03 + ), + 'tbs' => array( 'tsp' => 3.00000000000000E+00, + 'tbs' => 1.0, + 'oz' => 5.00000000000000E-01, + 'cup' => 6.25000000000000E-02, + 'pt' => 3.12500000000000E-02, + 'us_pt' => 3.12500000000000E-02, + 'uk_pt' => 2.60267555046588E-02, + 'qt' => 1.56250000000000E-02, + 'gal' => 3.90625000000000E-03, + 'l' => 1.47899822520213E-02, + 'lt' => 1.47899822520213E-02 + ), + 'oz' => array( 'tsp' => 6.00000000000000E+00, + 'tbs' => 2.00000000000000E+00, + 'oz' => 1.0, + 'cup' => 1.25000000000000E-01, + 'pt' => 6.25000000000000E-02, + 'us_pt' => 6.25000000000000E-02, + 'uk_pt' => 5.20535110093176E-02, + 'qt' => 3.12500000000000E-02, + 'gal' => 7.81250000000000E-03, + 'l' => 2.95799645040426E-02, + 'lt' => 2.95799645040426E-02 + ), + 'cup' => array( 'tsp' => 4.80000000000000E+01, + 'tbs' => 1.60000000000000E+01, + 'oz' => 8.00000000000000E+00, + 'cup' => 1.0, + 'pt' => 5.00000000000000E-01, + 'us_pt' => 5.00000000000000E-01, + 'uk_pt' => 4.16428088074541E-01, + 'qt' => 2.50000000000000E-01, + 'gal' => 6.25000000000000E-02, + 'l' => 2.36639716032341E-01, + 'lt' => 2.36639716032341E-01 + ), + 'pt' => array( 'tsp' => 9.60000000000000E+01, + 'tbs' => 3.20000000000000E+01, + 'oz' => 1.60000000000000E+01, + 'cup' => 2.00000000000000E+00, + 'pt' => 1.0, + 'us_pt' => 1.0, + 'uk_pt' => 8.32856176149081E-01, + 'qt' => 5.00000000000000E-01, + 'gal' => 1.25000000000000E-01, + 'l' => 4.73279432064682E-01, + 'lt' => 4.73279432064682E-01 + ), + 'us_pt' => array( 'tsp' => 9.60000000000000E+01, + 'tbs' => 3.20000000000000E+01, + 'oz' => 1.60000000000000E+01, + 'cup' => 2.00000000000000E+00, + 'pt' => 1.0, + 'us_pt' => 1.0, + 'uk_pt' => 8.32856176149081E-01, + 'qt' => 5.00000000000000E-01, + 'gal' => 1.25000000000000E-01, + 'l' => 4.73279432064682E-01, + 'lt' => 4.73279432064682E-01 + ), + 'uk_pt' => array( 'tsp' => 1.15266000000000E+02, + 'tbs' => 3.84220000000000E+01, + 'oz' => 1.92110000000000E+01, + 'cup' => 2.40137500000000E+00, + 'pt' => 1.20068750000000E+00, + 'us_pt' => 1.20068750000000E+00, + 'uk_pt' => 1.0, + 'qt' => 6.00343750000000E-01, + 'gal' => 1.50085937500000E-01, + 'l' => 5.68260698087162E-01, + 'lt' => 5.68260698087162E-01 + ), + 'qt' => array( 'tsp' => 1.92000000000000E+02, + 'tbs' => 6.40000000000000E+01, + 'oz' => 3.20000000000000E+01, + 'cup' => 4.00000000000000E+00, + 'pt' => 2.00000000000000E+00, + 'us_pt' => 2.00000000000000E+00, + 'uk_pt' => 1.66571235229816E+00, + 'qt' => 1.0, + 'gal' => 2.50000000000000E-01, + 'l' => 9.46558864129363E-01, + 'lt' => 9.46558864129363E-01 + ), + 'gal' => array( 'tsp' => 7.68000000000000E+02, + 'tbs' => 2.56000000000000E+02, + 'oz' => 1.28000000000000E+02, + 'cup' => 1.60000000000000E+01, + 'pt' => 8.00000000000000E+00, + 'us_pt' => 8.00000000000000E+00, + 'uk_pt' => 6.66284940919265E+00, + 'qt' => 4.00000000000000E+00, + 'gal' => 1.0, + 'l' => 3.78623545651745E+00, + 'lt' => 3.78623545651745E+00 + ), + 'l' => array( 'tsp' => 2.02840000000000E+02, + 'tbs' => 6.76133333333333E+01, + 'oz' => 3.38066666666667E+01, + 'cup' => 4.22583333333333E+00, + 'pt' => 2.11291666666667E+00, + 'us_pt' => 2.11291666666667E+00, + 'uk_pt' => 1.75975569552166E+00, + 'qt' => 1.05645833333333E+00, + 'gal' => 2.64114583333333E-01, + 'l' => 1.0, + 'lt' => 1.0 + ), + 'lt' => array( 'tsp' => 2.02840000000000E+02, + 'tbs' => 6.76133333333333E+01, + 'oz' => 3.38066666666667E+01, + 'cup' => 4.22583333333333E+00, + 'pt' => 2.11291666666667E+00, + 'us_pt' => 2.11291666666667E+00, + 'uk_pt' => 1.75975569552166E+00, + 'qt' => 1.05645833333333E+00, + 'gal' => 2.64114583333333E-01, + 'l' => 1.0, + 'lt' => 1.0 + ) + ) + ); + + + /** + * _parseComplex + * + * Parses a complex number into its real and imaginary parts, and an I or J suffix + * + * @param string $complexNumber The complex number + * @return string[] Indexed on "real", "imaginary" and "suffix" + */ + public static function _parseComplex($complexNumber) { + $workString = (string) $complexNumber; + + $realNumber = $imaginary = 0; + // Extract the suffix, if there is one + $suffix = substr($workString,-1); + if (!is_numeric($suffix)) { + $workString = substr($workString,0,-1); + } else { + $suffix = ''; + } + + // Split the input into its Real and Imaginary components + $leadingSign = 0; + if (strlen($workString) > 0) { + $leadingSign = (($workString{0} == '+') || ($workString{0} == '-')) ? 1 : 0; + } + $power = ''; + $realNumber = strtok($workString, '+-'); + if (strtoupper(substr($realNumber,-1)) == 'E') { + $power = strtok('+-'); + ++$leadingSign; + } + + $realNumber = substr($workString,0,strlen($realNumber)+strlen($power)+$leadingSign); + + if ($suffix != '') { + $imaginary = substr($workString,strlen($realNumber)); + + if (($imaginary == '') && (($realNumber == '') || ($realNumber == '+') || ($realNumber == '-'))) { + $imaginary = $realNumber.'1'; + $realNumber = '0'; + } else if ($imaginary == '') { + $imaginary = $realNumber; + $realNumber = '0'; + } elseif (($imaginary == '+') || ($imaginary == '-')) { + $imaginary .= '1'; + } + } + + return array( 'real' => $realNumber, + 'imaginary' => $imaginary, + 'suffix' => $suffix + ); + } // function _parseComplex() + + + /** + * _cleanComplex + * + * Cleans the leading characters in a complex number string + * + * @param string $complexNumber The complex number to clean + * @return string The "cleaned" complex number + */ + private static function _cleanComplex($complexNumber) { + if ($complexNumber{0} == '+') $complexNumber = substr($complexNumber,1); + if ($complexNumber{0} == '0') $complexNumber = substr($complexNumber,1); + if ($complexNumber{0} == '.') $complexNumber = '0'.$complexNumber; + if ($complexNumber{0} == '+') $complexNumber = substr($complexNumber,1); + return $complexNumber; + } + + + private static function _nbrConversionFormat($xVal,$places) { + if (!is_null($places)) { + if (strlen($xVal) <= $places) { + return substr(str_pad($xVal,$places,'0',STR_PAD_LEFT),-10); + } else { + return PHPExcel_Calculation_Functions::NaN(); + } + } + + return substr($xVal,-10); + } // function _nbrConversionFormat() + + + /** + * BESSELI + * + * Returns the modified Bessel function In(x), which is equivalent to the Bessel function evaluated + * for purely imaginary arguments + * + * Excel Function: + * BESSELI(x,ord) + * + * @access public + * @category Engineering Functions + * @param float $x The value at which to evaluate the function. + * If x is nonnumeric, BESSELI returns the #VALUE! error value. + * @param integer $ord The order of the Bessel function. + * If ord is not an integer, it is truncated. + * If $ord is nonnumeric, BESSELI returns the #VALUE! error value. + * If $ord < 0, BESSELI returns the #NUM! error value. + * @return float + * + */ + public static function BESSELI($x, $ord) { + $x = (is_null($x)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($x); + $ord = (is_null($ord)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($ord); + + if ((is_numeric($x)) && (is_numeric($ord))) { + $ord = floor($ord); + if ($ord < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + if (abs($x) <= 30) { + $fResult = $fTerm = pow($x / 2, $ord) / PHPExcel_Calculation_MathTrig::FACT($ord); + $ordK = 1; + $fSqrX = ($x * $x) / 4; + do { + $fTerm *= $fSqrX; + $fTerm /= ($ordK * ($ordK + $ord)); + $fResult += $fTerm; + } while ((abs($fTerm) > 1e-12) && (++$ordK < 100)); + } else { + $f_2_PI = 2 * M_PI; + + $fXAbs = abs($x); + $fResult = exp($fXAbs) / sqrt($f_2_PI * $fXAbs); + if (($ord & 1) && ($x < 0)) { + $fResult = -$fResult; + } + } + return (is_nan($fResult)) ? PHPExcel_Calculation_Functions::NaN() : $fResult; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function BESSELI() + + + /** + * BESSELJ + * + * Returns the Bessel function + * + * Excel Function: + * BESSELJ(x,ord) + * + * @access public + * @category Engineering Functions + * @param float $x The value at which to evaluate the function. + * If x is nonnumeric, BESSELJ returns the #VALUE! error value. + * @param integer $ord The order of the Bessel function. If n is not an integer, it is truncated. + * If $ord is nonnumeric, BESSELJ returns the #VALUE! error value. + * If $ord < 0, BESSELJ returns the #NUM! error value. + * @return float + * + */ + public static function BESSELJ($x, $ord) { + $x = (is_null($x)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($x); + $ord = (is_null($ord)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($ord); + + if ((is_numeric($x)) && (is_numeric($ord))) { + $ord = floor($ord); + if ($ord < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $fResult = 0; + if (abs($x) <= 30) { + $fResult = $fTerm = pow($x / 2, $ord) / PHPExcel_Calculation_MathTrig::FACT($ord); + $ordK = 1; + $fSqrX = ($x * $x) / -4; + do { + $fTerm *= $fSqrX; + $fTerm /= ($ordK * ($ordK + $ord)); + $fResult += $fTerm; + } while ((abs($fTerm) > 1e-12) && (++$ordK < 100)); + } else { + $f_PI_DIV_2 = M_PI / 2; + $f_PI_DIV_4 = M_PI / 4; + + $fXAbs = abs($x); + $fResult = sqrt(M_2DIVPI / $fXAbs) * cos($fXAbs - $ord * $f_PI_DIV_2 - $f_PI_DIV_4); + if (($ord & 1) && ($x < 0)) { + $fResult = -$fResult; + } + } + return (is_nan($fResult)) ? PHPExcel_Calculation_Functions::NaN() : $fResult; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function BESSELJ() + + + private static function _Besselk0($fNum) { + if ($fNum <= 2) { + $fNum2 = $fNum * 0.5; + $y = ($fNum2 * $fNum2); + $fRet = -log($fNum2) * self::BESSELI($fNum, 0) + + (-0.57721566 + $y * (0.42278420 + $y * (0.23069756 + $y * (0.3488590e-1 + $y * (0.262698e-2 + $y * + (0.10750e-3 + $y * 0.74e-5)))))); + } else { + $y = 2 / $fNum; + $fRet = exp(-$fNum) / sqrt($fNum) * + (1.25331414 + $y * (-0.7832358e-1 + $y * (0.2189568e-1 + $y * (-0.1062446e-1 + $y * + (0.587872e-2 + $y * (-0.251540e-2 + $y * 0.53208e-3)))))); + } + return $fRet; + } // function _Besselk0() + + + private static function _Besselk1($fNum) { + if ($fNum <= 2) { + $fNum2 = $fNum * 0.5; + $y = ($fNum2 * $fNum2); + $fRet = log($fNum2) * self::BESSELI($fNum, 1) + + (1 + $y * (0.15443144 + $y * (-0.67278579 + $y * (-0.18156897 + $y * (-0.1919402e-1 + $y * + (-0.110404e-2 + $y * (-0.4686e-4))))))) / $fNum; + } else { + $y = 2 / $fNum; + $fRet = exp(-$fNum) / sqrt($fNum) * + (1.25331414 + $y * (0.23498619 + $y * (-0.3655620e-1 + $y * (0.1504268e-1 + $y * (-0.780353e-2 + $y * + (0.325614e-2 + $y * (-0.68245e-3))))))); + } + return $fRet; + } // function _Besselk1() + + + /** + * BESSELK + * + * Returns the modified Bessel function Kn(x), which is equivalent to the Bessel functions evaluated + * for purely imaginary arguments. + * + * Excel Function: + * BESSELK(x,ord) + * + * @access public + * @category Engineering Functions + * @param float $x The value at which to evaluate the function. + * If x is nonnumeric, BESSELK returns the #VALUE! error value. + * @param integer $ord The order of the Bessel function. If n is not an integer, it is truncated. + * If $ord is nonnumeric, BESSELK returns the #VALUE! error value. + * If $ord < 0, BESSELK returns the #NUM! error value. + * @return float + * + */ + public static function BESSELK($x, $ord) { + $x = (is_null($x)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($x); + $ord = (is_null($ord)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($ord); + + if ((is_numeric($x)) && (is_numeric($ord))) { + if (($ord < 0) || ($x == 0.0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + + switch(floor($ord)) { + case 0 : return self::_Besselk0($x); + break; + case 1 : return self::_Besselk1($x); + break; + default : $fTox = 2 / $x; + $fBkm = self::_Besselk0($x); + $fBk = self::_Besselk1($x); + for ($n = 1; $n < $ord; ++$n) { + $fBkp = $fBkm + $n * $fTox * $fBk; + $fBkm = $fBk; + $fBk = $fBkp; + } + } + return (is_nan($fBk)) ? PHPExcel_Calculation_Functions::NaN() : $fBk; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function BESSELK() + + + private static function _Bessely0($fNum) { + if ($fNum < 8.0) { + $y = ($fNum * $fNum); + $f1 = -2957821389.0 + $y * (7062834065.0 + $y * (-512359803.6 + $y * (10879881.29 + $y * (-86327.92757 + $y * 228.4622733)))); + $f2 = 40076544269.0 + $y * (745249964.8 + $y * (7189466.438 + $y * (47447.26470 + $y * (226.1030244 + $y)))); + $fRet = $f1 / $f2 + 0.636619772 * self::BESSELJ($fNum, 0) * log($fNum); + } else { + $z = 8.0 / $fNum; + $y = ($z * $z); + $xx = $fNum - 0.785398164; + $f1 = 1 + $y * (-0.1098628627e-2 + $y * (0.2734510407e-4 + $y * (-0.2073370639e-5 + $y * 0.2093887211e-6))); + $f2 = -0.1562499995e-1 + $y * (0.1430488765e-3 + $y * (-0.6911147651e-5 + $y * (0.7621095161e-6 + $y * (-0.934945152e-7)))); + $fRet = sqrt(0.636619772 / $fNum) * (sin($xx) * $f1 + $z * cos($xx) * $f2); + } + return $fRet; + } // function _Bessely0() + + + private static function _Bessely1($fNum) { + if ($fNum < 8.0) { + $y = ($fNum * $fNum); + $f1 = $fNum * (-0.4900604943e13 + $y * (0.1275274390e13 + $y * (-0.5153438139e11 + $y * (0.7349264551e9 + $y * + (-0.4237922726e7 + $y * 0.8511937935e4))))); + $f2 = 0.2499580570e14 + $y * (0.4244419664e12 + $y * (0.3733650367e10 + $y * (0.2245904002e8 + $y * + (0.1020426050e6 + $y * (0.3549632885e3 + $y))))); + $fRet = $f1 / $f2 + 0.636619772 * ( self::BESSELJ($fNum, 1) * log($fNum) - 1 / $fNum); + } else { + $fRet = sqrt(0.636619772 / $fNum) * sin($fNum - 2.356194491); + } + return $fRet; + } // function _Bessely1() + + + /** + * BESSELY + * + * Returns the Bessel function, which is also called the Weber function or the Neumann function. + * + * Excel Function: + * BESSELY(x,ord) + * + * @access public + * @category Engineering Functions + * @param float $x The value at which to evaluate the function. + * If x is nonnumeric, BESSELK returns the #VALUE! error value. + * @param integer $ord The order of the Bessel function. If n is not an integer, it is truncated. + * If $ord is nonnumeric, BESSELK returns the #VALUE! error value. + * If $ord < 0, BESSELK returns the #NUM! error value. + * + * @return float + */ + public static function BESSELY($x, $ord) { + $x = (is_null($x)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($x); + $ord = (is_null($ord)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($ord); + + if ((is_numeric($x)) && (is_numeric($ord))) { + if (($ord < 0) || ($x == 0.0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + + switch(floor($ord)) { + case 0 : return self::_Bessely0($x); + break; + case 1 : return self::_Bessely1($x); + break; + default: $fTox = 2 / $x; + $fBym = self::_Bessely0($x); + $fBy = self::_Bessely1($x); + for ($n = 1; $n < $ord; ++$n) { + $fByp = $n * $fTox * $fBy - $fBym; + $fBym = $fBy; + $fBy = $fByp; + } + } + return (is_nan($fBy)) ? PHPExcel_Calculation_Functions::NaN() : $fBy; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function BESSELY() + + + /** + * BINTODEC + * + * Return a binary value as decimal. + * + * Excel Function: + * BIN2DEC(x) + * + * @access public + * @category Engineering Functions + * @param string $x The binary number (as a string) that you want to convert. The number + * cannot contain more than 10 characters (10 bits). The most significant + * bit of number is the sign bit. The remaining 9 bits are magnitude bits. + * Negative numbers are represented using two's-complement notation. + * If number is not a valid binary number, or if number contains more than + * 10 characters (10 bits), BIN2DEC returns the #NUM! error value. + * @return string + */ + public static function BINTODEC($x) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + + if (is_bool($x)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $x = (int) $x; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + $x = floor($x); + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[01]/',$x,$out)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (strlen($x) > 10) { + return PHPExcel_Calculation_Functions::NaN(); + } elseif (strlen($x) == 10) { + // Two's Complement + $x = substr($x,-9); + return '-'.(512-bindec($x)); + } + return bindec($x); + } // function BINTODEC() + + + /** + * BINTOHEX + * + * Return a binary value as hex. + * + * Excel Function: + * BIN2HEX(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x The binary number (as a string) that you want to convert. The number + * cannot contain more than 10 characters (10 bits). The most significant + * bit of number is the sign bit. The remaining 9 bits are magnitude bits. + * Negative numbers are represented using two's-complement notation. + * If number is not a valid binary number, or if number contains more than + * 10 characters (10 bits), BIN2HEX returns the #NUM! error value. + * @param integer $places The number of characters to use. If places is omitted, BIN2HEX uses the + * minimum number of characters necessary. Places is useful for padding the + * return value with leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, BIN2HEX returns the #VALUE! error value. + * If places is negative, BIN2HEX returns the #NUM! error value. + * @return string + */ + public static function BINTOHEX($x, $places=NULL) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $x = (int) $x; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + $x = floor($x); + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[01]/',$x,$out)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (strlen($x) > 10) { + return PHPExcel_Calculation_Functions::NaN(); + } elseif (strlen($x) == 10) { + // Two's Complement + return str_repeat('F',8).substr(strtoupper(dechex(bindec(substr($x,-9)))),-2); + } + $hexVal = (string) strtoupper(dechex(bindec($x))); + + return self::_nbrConversionFormat($hexVal,$places); + } // function BINTOHEX() + + + /** + * BINTOOCT + * + * Return a binary value as octal. + * + * Excel Function: + * BIN2OCT(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x The binary number (as a string) that you want to convert. The number + * cannot contain more than 10 characters (10 bits). The most significant + * bit of number is the sign bit. The remaining 9 bits are magnitude bits. + * Negative numbers are represented using two's-complement notation. + * If number is not a valid binary number, or if number contains more than + * 10 characters (10 bits), BIN2OCT returns the #NUM! error value. + * @param integer $places The number of characters to use. If places is omitted, BIN2OCT uses the + * minimum number of characters necessary. Places is useful for padding the + * return value with leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, BIN2OCT returns the #VALUE! error value. + * If places is negative, BIN2OCT returns the #NUM! error value. + * @return string + */ + public static function BINTOOCT($x, $places=NULL) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $x = (int) $x; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + $x = floor($x); + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[01]/',$x,$out)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (strlen($x) > 10) { + return PHPExcel_Calculation_Functions::NaN(); + } elseif (strlen($x) == 10) { + // Two's Complement + return str_repeat('7',7).substr(strtoupper(decoct(bindec(substr($x,-9)))),-3); + } + $octVal = (string) decoct(bindec($x)); + + return self::_nbrConversionFormat($octVal,$places); + } // function BINTOOCT() + + + /** + * DECTOBIN + * + * Return a decimal value as binary. + * + * Excel Function: + * DEC2BIN(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x The decimal integer you want to convert. If number is negative, + * valid place values are ignored and DEC2BIN returns a 10-character + * (10-bit) binary number in which the most significant bit is the sign + * bit. The remaining 9 bits are magnitude bits. Negative numbers are + * represented using two's-complement notation. + * If number < -512 or if number > 511, DEC2BIN returns the #NUM! error + * value. + * If number is nonnumeric, DEC2BIN returns the #VALUE! error value. + * If DEC2BIN requires more than places characters, it returns the #NUM! + * error value. + * @param integer $places The number of characters to use. If places is omitted, DEC2BIN uses + * the minimum number of characters necessary. Places is useful for + * padding the return value with leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, DEC2BIN returns the #VALUE! error value. + * If places is zero or negative, DEC2BIN returns the #NUM! error value. + * @return string + */ + public static function DECTOBIN($x, $places=NULL) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $x = (int) $x; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[-0123456789.]/',$x,$out)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) floor($x); + $r = decbin($x); + if (strlen($r) == 32) { + // Two's Complement + $r = substr($r,-10); + } elseif (strlen($r) > 11) { + return PHPExcel_Calculation_Functions::NaN(); + } + + return self::_nbrConversionFormat($r,$places); + } // function DECTOBIN() + + + /** + * DECTOHEX + * + * Return a decimal value as hex. + * + * Excel Function: + * DEC2HEX(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x The decimal integer you want to convert. If number is negative, + * places is ignored and DEC2HEX returns a 10-character (40-bit) + * hexadecimal number in which the most significant bit is the sign + * bit. The remaining 39 bits are magnitude bits. Negative numbers + * are represented using two's-complement notation. + * If number < -549,755,813,888 or if number > 549,755,813,887, + * DEC2HEX returns the #NUM! error value. + * If number is nonnumeric, DEC2HEX returns the #VALUE! error value. + * If DEC2HEX requires more than places characters, it returns the + * #NUM! error value. + * @param integer $places The number of characters to use. If places is omitted, DEC2HEX uses + * the minimum number of characters necessary. Places is useful for + * padding the return value with leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, DEC2HEX returns the #VALUE! error value. + * If places is zero or negative, DEC2HEX returns the #NUM! error value. + * @return string + */ + public static function DECTOHEX($x, $places=null) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $x = (int) $x; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[-0123456789.]/',$x,$out)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) floor($x); + $r = strtoupper(dechex($x)); + if (strlen($r) == 8) { + // Two's Complement + $r = 'FF'.$r; + } + + return self::_nbrConversionFormat($r,$places); + } // function DECTOHEX() + + + /** + * DECTOOCT + * + * Return an decimal value as octal. + * + * Excel Function: + * DEC2OCT(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x The decimal integer you want to convert. If number is negative, + * places is ignored and DEC2OCT returns a 10-character (30-bit) + * octal number in which the most significant bit is the sign bit. + * The remaining 29 bits are magnitude bits. Negative numbers are + * represented using two's-complement notation. + * If number < -536,870,912 or if number > 536,870,911, DEC2OCT + * returns the #NUM! error value. + * If number is nonnumeric, DEC2OCT returns the #VALUE! error value. + * If DEC2OCT requires more than places characters, it returns the + * #NUM! error value. + * @param integer $places The number of characters to use. If places is omitted, DEC2OCT uses + * the minimum number of characters necessary. Places is useful for + * padding the return value with leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, DEC2OCT returns the #VALUE! error value. + * If places is zero or negative, DEC2OCT returns the #NUM! error value. + * @return string + */ + public static function DECTOOCT($x, $places=null) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $x = (int) $x; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[-0123456789.]/',$x,$out)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) floor($x); + $r = decoct($x); + if (strlen($r) == 11) { + // Two's Complement + $r = substr($r,-10); + } + + return self::_nbrConversionFormat($r,$places); + } // function DECTOOCT() + + + /** + * HEXTOBIN + * + * Return a hex value as binary. + * + * Excel Function: + * HEX2BIN(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x the hexadecimal number you want to convert. Number cannot + * contain more than 10 characters. The most significant bit of + * number is the sign bit (40th bit from the right). The remaining + * 9 bits are magnitude bits. Negative numbers are represented + * using two's-complement notation. + * If number is negative, HEX2BIN ignores places and returns a + * 10-character binary number. + * If number is negative, it cannot be less than FFFFFFFE00, and + * if number is positive, it cannot be greater than 1FF. + * If number is not a valid hexadecimal number, HEX2BIN returns + * the #NUM! error value. + * If HEX2BIN requires more than places characters, it returns + * the #NUM! error value. + * @param integer $places The number of characters to use. If places is omitted, + * HEX2BIN uses the minimum number of characters necessary. Places + * is useful for padding the return value with leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, HEX2BIN returns the #VALUE! error value. + * If places is negative, HEX2BIN returns the #NUM! error value. + * @return string + */ + public static function HEXTOBIN($x, $places=null) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/',strtoupper($x),$out)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $binVal = decbin(hexdec($x)); + + return substr(self::_nbrConversionFormat($binVal,$places),-10); + } // function HEXTOBIN() + + + /** + * HEXTODEC + * + * Return a hex value as decimal. + * + * Excel Function: + * HEX2DEC(x) + * + * @access public + * @category Engineering Functions + * @param string $x The hexadecimal number you want to convert. This number cannot + * contain more than 10 characters (40 bits). The most significant + * bit of number is the sign bit. The remaining 39 bits are magnitude + * bits. Negative numbers are represented using two's-complement + * notation. + * If number is not a valid hexadecimal number, HEX2DEC returns the + * #NUM! error value. + * @return string + */ + public static function HEXTODEC($x) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + + if (is_bool($x)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/',strtoupper($x),$out)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return hexdec($x); + } // function HEXTODEC() + + + /** + * HEXTOOCT + * + * Return a hex value as octal. + * + * Excel Function: + * HEX2OCT(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x The hexadecimal number you want to convert. Number cannot + * contain more than 10 characters. The most significant bit of + * number is the sign bit. The remaining 39 bits are magnitude + * bits. Negative numbers are represented using two's-complement + * notation. + * If number is negative, HEX2OCT ignores places and returns a + * 10-character octal number. + * If number is negative, it cannot be less than FFE0000000, and + * if number is positive, it cannot be greater than 1FFFFFFF. + * If number is not a valid hexadecimal number, HEX2OCT returns + * the #NUM! error value. + * If HEX2OCT requires more than places characters, it returns + * the #NUM! error value. + * @param integer $places The number of characters to use. If places is omitted, HEX2OCT + * uses the minimum number of characters necessary. Places is + * useful for padding the return value with leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, HEX2OCT returns the #VALUE! error + * value. + * If places is negative, HEX2OCT returns the #NUM! error value. + * @return string + */ + public static function HEXTOOCT($x, $places=null) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) $x; + if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/',strtoupper($x),$out)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $octVal = decoct(hexdec($x)); + + return self::_nbrConversionFormat($octVal,$places); + } // function HEXTOOCT() + + + /** + * OCTTOBIN + * + * Return an octal value as binary. + * + * Excel Function: + * OCT2BIN(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x The octal number you want to convert. Number may not + * contain more than 10 characters. The most significant + * bit of number is the sign bit. The remaining 29 bits + * are magnitude bits. Negative numbers are represented + * using two's-complement notation. + * If number is negative, OCT2BIN ignores places and returns + * a 10-character binary number. + * If number is negative, it cannot be less than 7777777000, + * and if number is positive, it cannot be greater than 777. + * If number is not a valid octal number, OCT2BIN returns + * the #NUM! error value. + * If OCT2BIN requires more than places characters, it + * returns the #NUM! error value. + * @param integer $places The number of characters to use. If places is omitted, + * OCT2BIN uses the minimum number of characters necessary. + * Places is useful for padding the return value with + * leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, OCT2BIN returns the #VALUE! + * error value. + * If places is negative, OCT2BIN returns the #NUM! error + * value. + * @return string + */ + public static function OCTTOBIN($x, $places=null) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) $x; + if (preg_match_all('/[01234567]/',$x,$out) != strlen($x)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $r = decbin(octdec($x)); + + return self::_nbrConversionFormat($r,$places); + } // function OCTTOBIN() + + + /** + * OCTTODEC + * + * Return an octal value as decimal. + * + * Excel Function: + * OCT2DEC(x) + * + * @access public + * @category Engineering Functions + * @param string $x The octal number you want to convert. Number may not contain + * more than 10 octal characters (30 bits). The most significant + * bit of number is the sign bit. The remaining 29 bits are + * magnitude bits. Negative numbers are represented using + * two's-complement notation. + * If number is not a valid octal number, OCT2DEC returns the + * #NUM! error value. + * @return string + */ + public static function OCTTODEC($x) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + + if (is_bool($x)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) $x; + if (preg_match_all('/[01234567]/',$x,$out) != strlen($x)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return octdec($x); + } // function OCTTODEC() + + + /** + * OCTTOHEX + * + * Return an octal value as hex. + * + * Excel Function: + * OCT2HEX(x[,places]) + * + * @access public + * @category Engineering Functions + * @param string $x The octal number you want to convert. Number may not contain + * more than 10 octal characters (30 bits). The most significant + * bit of number is the sign bit. The remaining 29 bits are + * magnitude bits. Negative numbers are represented using + * two's-complement notation. + * If number is negative, OCT2HEX ignores places and returns a + * 10-character hexadecimal number. + * If number is not a valid octal number, OCT2HEX returns the + * #NUM! error value. + * If OCT2HEX requires more than places characters, it returns + * the #NUM! error value. + * @param integer $places The number of characters to use. If places is omitted, OCT2HEX + * uses the minimum number of characters necessary. Places is useful + * for padding the return value with leading 0s (zeros). + * If places is not an integer, it is truncated. + * If places is nonnumeric, OCT2HEX returns the #VALUE! error value. + * If places is negative, OCT2HEX returns the #NUM! error value. + * @return string + */ + public static function OCTTOHEX($x, $places=null) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); + + if (is_bool($x)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $x = (string) $x; + if (preg_match_all('/[01234567]/',$x,$out) != strlen($x)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $hexVal = strtoupper(dechex(octdec($x))); + + return self::_nbrConversionFormat($hexVal,$places); + } // function OCTTOHEX() + + + /** + * COMPLEX + * + * Converts real and imaginary coefficients into a complex number of the form x + yi or x + yj. + * + * Excel Function: + * COMPLEX(realNumber,imaginary[,places]) + * + * @access public + * @category Engineering Functions + * @param float $realNumber The real coefficient of the complex number. + * @param float $imaginary The imaginary coefficient of the complex number. + * @param string $suffix The suffix for the imaginary component of the complex number. + * If omitted, the suffix is assumed to be "i". + * @return string + */ + public static function COMPLEX($realNumber=0.0, $imaginary=0.0, $suffix='i') { + $realNumber = (is_null($realNumber)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($realNumber); + $imaginary = (is_null($imaginary)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($imaginary); + $suffix = (is_null($suffix)) ? 'i' : PHPExcel_Calculation_Functions::flattenSingleValue($suffix); + + if (((is_numeric($realNumber)) && (is_numeric($imaginary))) && + (($suffix == 'i') || ($suffix == 'j') || ($suffix == ''))) { + $realNumber = (float) $realNumber; + $imaginary = (float) $imaginary; + + if ($suffix == '') $suffix = 'i'; + if ($realNumber == 0.0) { + if ($imaginary == 0.0) { + return (string) '0'; + } elseif ($imaginary == 1.0) { + return (string) $suffix; + } elseif ($imaginary == -1.0) { + return (string) '-'.$suffix; + } + return (string) $imaginary.$suffix; + } elseif ($imaginary == 0.0) { + return (string) $realNumber; + } elseif ($imaginary == 1.0) { + return (string) $realNumber.'+'.$suffix; + } elseif ($imaginary == -1.0) { + return (string) $realNumber.'-'.$suffix; + } + if ($imaginary > 0) { $imaginary = (string) '+'.$imaginary; } + return (string) $realNumber.$imaginary.$suffix; + } + + return PHPExcel_Calculation_Functions::VALUE(); + } // function COMPLEX() + + + /** + * IMAGINARY + * + * Returns the imaginary coefficient of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMAGINARY(complexNumber) + * + * @access public + * @category Engineering Functions + * @param string $complexNumber The complex number for which you want the imaginary + * coefficient. + * @return float + */ + public static function IMAGINARY($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + return $parsedComplex['imaginary']; + } // function IMAGINARY() + + + /** + * IMREAL + * + * Returns the real coefficient of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMREAL(complexNumber) + * + * @access public + * @category Engineering Functions + * @param string $complexNumber The complex number for which you want the real coefficient. + * @return float + */ + public static function IMREAL($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + return $parsedComplex['real']; + } // function IMREAL() + + + /** + * IMABS + * + * Returns the absolute value (modulus) of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMABS(complexNumber) + * + * @param string $complexNumber The complex number for which you want the absolute value. + * @return float + */ + public static function IMABS($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + return sqrt(($parsedComplex['real'] * $parsedComplex['real']) + ($parsedComplex['imaginary'] * $parsedComplex['imaginary'])); + } // function IMABS() + + + /** + * IMARGUMENT + * + * Returns the argument theta of a complex number, i.e. the angle in radians from the real + * axis to the representation of the number in polar coordinates. + * + * Excel Function: + * IMARGUMENT(complexNumber) + * + * @param string $complexNumber The complex number for which you want the argument theta. + * @return float + */ + public static function IMARGUMENT($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + if ($parsedComplex['real'] == 0.0) { + if ($parsedComplex['imaginary'] == 0.0) { + return 0.0; + } elseif($parsedComplex['imaginary'] < 0.0) { + return M_PI / -2; + } else { + return M_PI / 2; + } + } elseif ($parsedComplex['real'] > 0.0) { + return atan($parsedComplex['imaginary'] / $parsedComplex['real']); + } elseif ($parsedComplex['imaginary'] < 0.0) { + return 0 - (M_PI - atan(abs($parsedComplex['imaginary']) / abs($parsedComplex['real']))); + } else { + return M_PI - atan($parsedComplex['imaginary'] / abs($parsedComplex['real'])); + } + } // function IMARGUMENT() + + + /** + * IMCONJUGATE + * + * Returns the complex conjugate of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMCONJUGATE(complexNumber) + * + * @param string $complexNumber The complex number for which you want the conjugate. + * @return string + */ + public static function IMCONJUGATE($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + if ($parsedComplex['imaginary'] == 0.0) { + return $parsedComplex['real']; + } else { + return self::_cleanComplex( self::COMPLEX( $parsedComplex['real'], + 0 - $parsedComplex['imaginary'], + $parsedComplex['suffix'] + ) + ); + } + } // function IMCONJUGATE() + + + /** + * IMCOS + * + * Returns the cosine of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMCOS(complexNumber) + * + * @param string $complexNumber The complex number for which you want the cosine. + * @return string|float + */ + public static function IMCOS($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + if ($parsedComplex['imaginary'] == 0.0) { + return cos($parsedComplex['real']); + } else { + return self::IMCONJUGATE(self::COMPLEX(cos($parsedComplex['real']) * cosh($parsedComplex['imaginary']),sin($parsedComplex['real']) * sinh($parsedComplex['imaginary']),$parsedComplex['suffix'])); + } + } // function IMCOS() + + + /** + * IMSIN + * + * Returns the sine of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMSIN(complexNumber) + * + * @param string $complexNumber The complex number for which you want the sine. + * @return string|float + */ + public static function IMSIN($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + if ($parsedComplex['imaginary'] == 0.0) { + return sin($parsedComplex['real']); + } else { + return self::COMPLEX(sin($parsedComplex['real']) * cosh($parsedComplex['imaginary']),cos($parsedComplex['real']) * sinh($parsedComplex['imaginary']),$parsedComplex['suffix']); + } + } // function IMSIN() + + + /** + * IMSQRT + * + * Returns the square root of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMSQRT(complexNumber) + * + * @param string $complexNumber The complex number for which you want the square root. + * @return string + */ + public static function IMSQRT($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + $theta = self::IMARGUMENT($complexNumber); + $d1 = cos($theta / 2); + $d2 = sin($theta / 2); + $r = sqrt(sqrt(($parsedComplex['real'] * $parsedComplex['real']) + ($parsedComplex['imaginary'] * $parsedComplex['imaginary']))); + + if ($parsedComplex['suffix'] == '') { + return self::COMPLEX($d1 * $r,$d2 * $r); + } else { + return self::COMPLEX($d1 * $r,$d2 * $r,$parsedComplex['suffix']); + } + } // function IMSQRT() + + + /** + * IMLN + * + * Returns the natural logarithm of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMLN(complexNumber) + * + * @param string $complexNumber The complex number for which you want the natural logarithm. + * @return string + */ + public static function IMLN($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + if (($parsedComplex['real'] == 0.0) && ($parsedComplex['imaginary'] == 0.0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $logR = log(sqrt(($parsedComplex['real'] * $parsedComplex['real']) + ($parsedComplex['imaginary'] * $parsedComplex['imaginary']))); + $t = self::IMARGUMENT($complexNumber); + + if ($parsedComplex['suffix'] == '') { + return self::COMPLEX($logR,$t); + } else { + return self::COMPLEX($logR,$t,$parsedComplex['suffix']); + } + } // function IMLN() + + + /** + * IMLOG10 + * + * Returns the common logarithm (base 10) of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMLOG10(complexNumber) + * + * @param string $complexNumber The complex number for which you want the common logarithm. + * @return string + */ + public static function IMLOG10($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + if (($parsedComplex['real'] == 0.0) && ($parsedComplex['imaginary'] == 0.0)) { + return PHPExcel_Calculation_Functions::NaN(); + } elseif (($parsedComplex['real'] > 0.0) && ($parsedComplex['imaginary'] == 0.0)) { + return log10($parsedComplex['real']); + } + + return self::IMPRODUCT(log10(EULER),self::IMLN($complexNumber)); + } // function IMLOG10() + + + /** + * IMLOG2 + * + * Returns the common logarithm (base 10) of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMLOG2(complexNumber) + * + * @param string $complexNumber The complex number for which you want the base-2 logarithm. + * @return string + */ + public static function IMLOG2($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + if (($parsedComplex['real'] == 0.0) && ($parsedComplex['imaginary'] == 0.0)) { + return PHPExcel_Calculation_Functions::NaN(); + } elseif (($parsedComplex['real'] > 0.0) && ($parsedComplex['imaginary'] == 0.0)) { + return log($parsedComplex['real'],2); + } + + return self::IMPRODUCT(log(EULER,2),self::IMLN($complexNumber)); + } // function IMLOG2() + + + /** + * IMEXP + * + * Returns the exponential of a complex number in x + yi or x + yj text format. + * + * Excel Function: + * IMEXP(complexNumber) + * + * @param string $complexNumber The complex number for which you want the exponential. + * @return string + */ + public static function IMEXP($complexNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + + $parsedComplex = self::_parseComplex($complexNumber); + + if (($parsedComplex['real'] == 0.0) && ($parsedComplex['imaginary'] == 0.0)) { + return '1'; + } + + $e = exp($parsedComplex['real']); + $eX = $e * cos($parsedComplex['imaginary']); + $eY = $e * sin($parsedComplex['imaginary']); + + if ($parsedComplex['suffix'] == '') { + return self::COMPLEX($eX,$eY); + } else { + return self::COMPLEX($eX,$eY,$parsedComplex['suffix']); + } + } // function IMEXP() + + + /** + * IMPOWER + * + * Returns a complex number in x + yi or x + yj text format raised to a power. + * + * Excel Function: + * IMPOWER(complexNumber,realNumber) + * + * @param string $complexNumber The complex number you want to raise to a power. + * @param float $realNumber The power to which you want to raise the complex number. + * @return string + */ + public static function IMPOWER($complexNumber,$realNumber) { + $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); + $realNumber = PHPExcel_Calculation_Functions::flattenSingleValue($realNumber); + + if (!is_numeric($realNumber)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + $parsedComplex = self::_parseComplex($complexNumber); + + $r = sqrt(($parsedComplex['real'] * $parsedComplex['real']) + ($parsedComplex['imaginary'] * $parsedComplex['imaginary'])); + $rPower = pow($r,$realNumber); + $theta = self::IMARGUMENT($complexNumber) * $realNumber; + if ($theta == 0) { + return 1; + } elseif ($parsedComplex['imaginary'] == 0.0) { + return self::COMPLEX($rPower * cos($theta),$rPower * sin($theta),$parsedComplex['suffix']); + } else { + return self::COMPLEX($rPower * cos($theta),$rPower * sin($theta),$parsedComplex['suffix']); + } + } // function IMPOWER() + + + /** + * IMDIV + * + * Returns the quotient of two complex numbers in x + yi or x + yj text format. + * + * Excel Function: + * IMDIV(complexDividend,complexDivisor) + * + * @param string $complexDividend The complex numerator or dividend. + * @param string $complexDivisor The complex denominator or divisor. + * @return string + */ + public static function IMDIV($complexDividend,$complexDivisor) { + $complexDividend = PHPExcel_Calculation_Functions::flattenSingleValue($complexDividend); + $complexDivisor = PHPExcel_Calculation_Functions::flattenSingleValue($complexDivisor); + + $parsedComplexDividend = self::_parseComplex($complexDividend); + $parsedComplexDivisor = self::_parseComplex($complexDivisor); + + if (($parsedComplexDividend['suffix'] != '') && ($parsedComplexDivisor['suffix'] != '') && + ($parsedComplexDividend['suffix'] != $parsedComplexDivisor['suffix'])) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (($parsedComplexDividend['suffix'] != '') && ($parsedComplexDivisor['suffix'] == '')) { + $parsedComplexDivisor['suffix'] = $parsedComplexDividend['suffix']; + } + + $d1 = ($parsedComplexDividend['real'] * $parsedComplexDivisor['real']) + ($parsedComplexDividend['imaginary'] * $parsedComplexDivisor['imaginary']); + $d2 = ($parsedComplexDividend['imaginary'] * $parsedComplexDivisor['real']) - ($parsedComplexDividend['real'] * $parsedComplexDivisor['imaginary']); + $d3 = ($parsedComplexDivisor['real'] * $parsedComplexDivisor['real']) + ($parsedComplexDivisor['imaginary'] * $parsedComplexDivisor['imaginary']); + + $r = $d1/$d3; + $i = $d2/$d3; + + if ($i > 0.0) { + return self::_cleanComplex($r.'+'.$i.$parsedComplexDivisor['suffix']); + } elseif ($i < 0.0) { + return self::_cleanComplex($r.$i.$parsedComplexDivisor['suffix']); + } else { + return $r; + } + } // function IMDIV() + + + /** + * IMSUB + * + * Returns the difference of two complex numbers in x + yi or x + yj text format. + * + * Excel Function: + * IMSUB(complexNumber1,complexNumber2) + * + * @param string $complexNumber1 The complex number from which to subtract complexNumber2. + * @param string $complexNumber2 The complex number to subtract from complexNumber1. + * @return string + */ + public static function IMSUB($complexNumber1,$complexNumber2) { + $complexNumber1 = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber1); + $complexNumber2 = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber2); + + $parsedComplex1 = self::_parseComplex($complexNumber1); + $parsedComplex2 = self::_parseComplex($complexNumber2); + + if ((($parsedComplex1['suffix'] != '') && ($parsedComplex2['suffix'] != '')) && + ($parsedComplex1['suffix'] != $parsedComplex2['suffix'])) { + return PHPExcel_Calculation_Functions::NaN(); + } elseif (($parsedComplex1['suffix'] == '') && ($parsedComplex2['suffix'] != '')) { + $parsedComplex1['suffix'] = $parsedComplex2['suffix']; + } + + $d1 = $parsedComplex1['real'] - $parsedComplex2['real']; + $d2 = $parsedComplex1['imaginary'] - $parsedComplex2['imaginary']; + + return self::COMPLEX($d1,$d2,$parsedComplex1['suffix']); + } // function IMSUB() + + + /** + * IMSUM + * + * Returns the sum of two or more complex numbers in x + yi or x + yj text format. + * + * Excel Function: + * IMSUM(complexNumber[,complexNumber[,...]]) + * + * @param string $complexNumber,... Series of complex numbers to add + * @return string + */ + public static function IMSUM() { + // Return value + $returnValue = self::_parseComplex('0'); + $activeSuffix = ''; + + // Loop through the arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + $parsedComplex = self::_parseComplex($arg); + + if ($activeSuffix == '') { + $activeSuffix = $parsedComplex['suffix']; + } elseif (($parsedComplex['suffix'] != '') && ($activeSuffix != $parsedComplex['suffix'])) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + $returnValue['real'] += $parsedComplex['real']; + $returnValue['imaginary'] += $parsedComplex['imaginary']; + } + + if ($returnValue['imaginary'] == 0.0) { $activeSuffix = ''; } + return self::COMPLEX($returnValue['real'],$returnValue['imaginary'],$activeSuffix); + } // function IMSUM() + + + /** + * IMPRODUCT + * + * Returns the product of two or more complex numbers in x + yi or x + yj text format. + * + * Excel Function: + * IMPRODUCT(complexNumber[,complexNumber[,...]]) + * + * @param string $complexNumber,... Series of complex numbers to multiply + * @return string + */ + public static function IMPRODUCT() { + // Return value + $returnValue = self::_parseComplex('1'); + $activeSuffix = ''; + + // Loop through the arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + $parsedComplex = self::_parseComplex($arg); + + $workValue = $returnValue; + if (($parsedComplex['suffix'] != '') && ($activeSuffix == '')) { + $activeSuffix = $parsedComplex['suffix']; + } elseif (($parsedComplex['suffix'] != '') && ($activeSuffix != $parsedComplex['suffix'])) { + return PHPExcel_Calculation_Functions::NaN(); + } + $returnValue['real'] = ($workValue['real'] * $parsedComplex['real']) - ($workValue['imaginary'] * $parsedComplex['imaginary']); + $returnValue['imaginary'] = ($workValue['real'] * $parsedComplex['imaginary']) + ($workValue['imaginary'] * $parsedComplex['real']); + } + + if ($returnValue['imaginary'] == 0.0) { $activeSuffix = ''; } + return self::COMPLEX($returnValue['real'],$returnValue['imaginary'],$activeSuffix); + } // function IMPRODUCT() + + + /** + * DELTA + * + * Tests whether two values are equal. Returns 1 if number1 = number2; returns 0 otherwise. + * Use this function to filter a set of values. For example, by summing several DELTA + * functions you calculate the count of equal pairs. This function is also known as the + * Kronecker Delta function. + * + * Excel Function: + * DELTA(a[,b]) + * + * @param float $a The first number. + * @param float $b The second number. If omitted, b is assumed to be zero. + * @return int + */ + public static function DELTA($a, $b=0) { + $a = PHPExcel_Calculation_Functions::flattenSingleValue($a); + $b = PHPExcel_Calculation_Functions::flattenSingleValue($b); + + return (int) ($a == $b); + } // function DELTA() + + + /** + * GESTEP + * + * Excel Function: + * GESTEP(number[,step]) + * + * Returns 1 if number >= step; returns 0 (zero) otherwise + * Use this function to filter a set of values. For example, by summing several GESTEP + * functions you calculate the count of values that exceed a threshold. + * + * @param float $number The value to test against step. + * @param float $step The threshold value. + * If you omit a value for step, GESTEP uses zero. + * @return int + */ + public static function GESTEP($number, $step=0) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + $step = PHPExcel_Calculation_Functions::flattenSingleValue($step); + + return (int) ($number >= $step); + } // function GESTEP() + + + // + // Private method to calculate the erf value + // + private static $_two_sqrtpi = 1.128379167095512574; + + public static function _erfVal($x) { + if (abs($x) > 2.2) { + return 1 - self::_erfcVal($x); + } + $sum = $term = $x; + $xsqr = ($x * $x); + $j = 1; + do { + $term *= $xsqr / $j; + $sum -= $term / (2 * $j + 1); + ++$j; + $term *= $xsqr / $j; + $sum += $term / (2 * $j + 1); + ++$j; + if ($sum == 0.0) { + break; + } + } while (abs($term / $sum) > PRECISION); + return self::$_two_sqrtpi * $sum; + } // function _erfVal() + + + /** + * ERF + * + * Returns the error function integrated between the lower and upper bound arguments. + * + * Note: In Excel 2007 or earlier, if you input a negative value for the upper or lower bound arguments, + * the function would return a #NUM! error. However, in Excel 2010, the function algorithm was + * improved, so that it can now calculate the function for both positive and negative ranges. + * PHPExcel follows Excel 2010 behaviour, and accepts nagative arguments. + * + * Excel Function: + * ERF(lower[,upper]) + * + * @param float $lower lower bound for integrating ERF + * @param float $upper upper bound for integrating ERF. + * If omitted, ERF integrates between zero and lower_limit + * @return float + */ + public static function ERF($lower, $upper = NULL) { + $lower = PHPExcel_Calculation_Functions::flattenSingleValue($lower); + $upper = PHPExcel_Calculation_Functions::flattenSingleValue($upper); + + if (is_numeric($lower)) { + if (is_null($upper)) { + return self::_erfVal($lower); + } + if (is_numeric($upper)) { + return self::_erfVal($upper) - self::_erfVal($lower); + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function ERF() + + + // + // Private method to calculate the erfc value + // + private static $_one_sqrtpi = 0.564189583547756287; + + private static function _erfcVal($x) { + if (abs($x) < 2.2) { + return 1 - self::_erfVal($x); + } + if ($x < 0) { + return 2 - self::ERFC(-$x); + } + $a = $n = 1; + $b = $c = $x; + $d = ($x * $x) + 0.5; + $q1 = $q2 = $b / $d; + $t = 0; + do { + $t = $a * $n + $b * $x; + $a = $b; + $b = $t; + $t = $c * $n + $d * $x; + $c = $d; + $d = $t; + $n += 0.5; + $q1 = $q2; + $q2 = $b / $d; + } while ((abs($q1 - $q2) / $q2) > PRECISION); + return self::$_one_sqrtpi * exp(-$x * $x) * $q2; + } // function _erfcVal() + + + /** + * ERFC + * + * Returns the complementary ERF function integrated between x and infinity + * + * Note: In Excel 2007 or earlier, if you input a negative value for the lower bound argument, + * the function would return a #NUM! error. However, in Excel 2010, the function algorithm was + * improved, so that it can now calculate the function for both positive and negative x values. + * PHPExcel follows Excel 2010 behaviour, and accepts nagative arguments. + * + * Excel Function: + * ERFC(x) + * + * @param float $x The lower bound for integrating ERFC + * @return float + */ + public static function ERFC($x) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + + if (is_numeric($x)) { + return self::_erfcVal($x); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function ERFC() + + + /** + * getConversionGroups + * Returns a list of the different conversion groups for UOM conversions + * + * @return array + */ + public static function getConversionGroups() { + $conversionGroups = array(); + foreach(self::$_conversionUnits as $conversionUnit) { + $conversionGroups[] = $conversionUnit['Group']; + } + return array_merge(array_unique($conversionGroups)); + } // function getConversionGroups() + + + /** + * getConversionGroupUnits + * Returns an array of units of measure, for a specified conversion group, or for all groups + * + * @param string $group The group whose units of measure you want to retrieve + * + * @return array + */ + public static function getConversionGroupUnits($group = NULL) { + $conversionGroups = array(); + foreach(self::$_conversionUnits as $conversionUnit => $conversionGroup) { + if ((is_null($group)) || ($conversionGroup['Group'] == $group)) { + $conversionGroups[$conversionGroup['Group']][] = $conversionUnit; + } + } + return $conversionGroups; + } // function getConversionGroupUnits() + + + /** + * getConversionGroupUnitDetails + * + * @return array + */ + public static function getConversionGroupUnitDetails($group = NULL) { + $conversionGroups = array(); + foreach(self::$_conversionUnits as $conversionUnit => $conversionGroup) { + if ((is_null($group)) || ($conversionGroup['Group'] == $group)) { + $conversionGroups[$conversionGroup['Group']][] = array( 'unit' => $conversionUnit, + 'description' => $conversionGroup['Unit Name'] + ); + } + } + return $conversionGroups; + } // function getConversionGroupUnitDetails() + + + /** + * getConversionMultipliers + * Returns an array of the Multiplier prefixes that can be used with Units of Measure in CONVERTUOM() + * + * @return array of mixed + */ + public static function getConversionMultipliers() { + return self::$_conversionMultipliers; + } // function getConversionGroups() + + + /** + * CONVERTUOM + * + * Converts a number from one measurement system to another. + * For example, CONVERT can translate a table of distances in miles to a table of distances + * in kilometers. + * + * Excel Function: + * CONVERT(value,fromUOM,toUOM) + * + * @param float $value The value in fromUOM to convert. + * @param string $fromUOM The units for value. + * @param string $toUOM The units for the result. + * + * @return float + */ + public static function CONVERTUOM($value, $fromUOM, $toUOM) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $fromUOM = PHPExcel_Calculation_Functions::flattenSingleValue($fromUOM); + $toUOM = PHPExcel_Calculation_Functions::flattenSingleValue($toUOM); + + if (!is_numeric($value)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $fromMultiplier = 1.0; + if (isset(self::$_conversionUnits[$fromUOM])) { + $unitGroup1 = self::$_conversionUnits[$fromUOM]['Group']; + } else { + $fromMultiplier = substr($fromUOM,0,1); + $fromUOM = substr($fromUOM,1); + if (isset(self::$_conversionMultipliers[$fromMultiplier])) { + $fromMultiplier = self::$_conversionMultipliers[$fromMultiplier]['multiplier']; + } else { + return PHPExcel_Calculation_Functions::NA(); + } + if ((isset(self::$_conversionUnits[$fromUOM])) && (self::$_conversionUnits[$fromUOM]['AllowPrefix'])) { + $unitGroup1 = self::$_conversionUnits[$fromUOM]['Group']; + } else { + return PHPExcel_Calculation_Functions::NA(); + } + } + $value *= $fromMultiplier; + + $toMultiplier = 1.0; + if (isset(self::$_conversionUnits[$toUOM])) { + $unitGroup2 = self::$_conversionUnits[$toUOM]['Group']; + } else { + $toMultiplier = substr($toUOM,0,1); + $toUOM = substr($toUOM,1); + if (isset(self::$_conversionMultipliers[$toMultiplier])) { + $toMultiplier = self::$_conversionMultipliers[$toMultiplier]['multiplier']; + } else { + return PHPExcel_Calculation_Functions::NA(); + } + if ((isset(self::$_conversionUnits[$toUOM])) && (self::$_conversionUnits[$toUOM]['AllowPrefix'])) { + $unitGroup2 = self::$_conversionUnits[$toUOM]['Group']; + } else { + return PHPExcel_Calculation_Functions::NA(); + } + } + if ($unitGroup1 != $unitGroup2) { + return PHPExcel_Calculation_Functions::NA(); + } + + if (($fromUOM == $toUOM) && ($fromMultiplier == $toMultiplier)) { + // We've already factored $fromMultiplier into the value, so we need + // to reverse it again + return $value / $fromMultiplier; + } elseif ($unitGroup1 == 'Temperature') { + if (($fromUOM == 'F') || ($fromUOM == 'fah')) { + if (($toUOM == 'F') || ($toUOM == 'fah')) { + return $value; + } else { + $value = (($value - 32) / 1.8); + if (($toUOM == 'K') || ($toUOM == 'kel')) { + $value += 273.15; + } + return $value; + } + } elseif ((($fromUOM == 'K') || ($fromUOM == 'kel')) && + (($toUOM == 'K') || ($toUOM == 'kel'))) { + return $value; + } elseif ((($fromUOM == 'C') || ($fromUOM == 'cel')) && + (($toUOM == 'C') || ($toUOM == 'cel'))) { + return $value; + } + if (($toUOM == 'F') || ($toUOM == 'fah')) { + if (($fromUOM == 'K') || ($fromUOM == 'kel')) { + $value -= 273.15; + } + return ($value * 1.8) + 32; + } + if (($toUOM == 'C') || ($toUOM == 'cel')) { + return $value - 273.15; + } + return $value + 273.15; + } + return ($value * self::$_unitConversions[$unitGroup1][$fromUOM][$toUOM]) / $toMultiplier; + } // function CONVERTUOM() + +} // class PHPExcel_Calculation_Engineering diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/Exception.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/Exception.php new file mode 100755 index 0000000..31aa287 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/Exception.php @@ -0,0 +1,52 @@ +line = $line; + $e->file = $file; + throw $e; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/ExceptionHandler.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/ExceptionHandler.php new file mode 100755 index 0000000..8b89a8f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/ExceptionHandler.php @@ -0,0 +1,49 @@ +format('d') == $testDate->format('t')); + } // function _lastDayOfMonth() + + + /** + * _firstDayOfMonth + * + * Returns a boolean TRUE/FALSE indicating if this date is the first date of the month + * + * @param DateTime $testDate The date for testing + * @return boolean + */ + private static function _firstDayOfMonth($testDate) + { + return ($testDate->format('d') == 1); + } // function _firstDayOfMonth() + + + private static function _coupFirstPeriodDate($settlement, $maturity, $frequency, $next) + { + $months = 12 / $frequency; + + $result = PHPExcel_Shared_Date::ExcelToPHPObject($maturity); + $eom = self::_lastDayOfMonth($result); + + while ($settlement < PHPExcel_Shared_Date::PHPToExcel($result)) { + $result->modify('-'.$months.' months'); + } + if ($next) { + $result->modify('+'.$months.' months'); + } + + if ($eom) { + $result->modify('-1 day'); + } + + return PHPExcel_Shared_Date::PHPToExcel($result); + } // function _coupFirstPeriodDate() + + + private static function _validFrequency($frequency) + { + if (($frequency == 1) || ($frequency == 2) || ($frequency == 4)) { + return true; + } + if ((PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) && + (($frequency == 6) || ($frequency == 12))) { + return true; + } + return false; + } // function _validFrequency() + + + /** + * _daysPerYear + * + * Returns the number of days in a specified year, as defined by the "basis" value + * + * @param integer $year The year against which we're testing + * @param integer $basis The type of day count: + * 0 or omitted US (NASD) 360 + * 1 Actual (365 or 366 in a leap year) + * 2 360 + * 3 365 + * 4 European 360 + * @return integer + */ + private static function _daysPerYear($year, $basis=0) + { + switch ($basis) { + case 0 : + case 2 : + case 4 : + $daysPerYear = 360; + break; + case 3 : + $daysPerYear = 365; + break; + case 1 : + $daysPerYear = (PHPExcel_Calculation_DateTime::_isLeapYear($year)) ? 366 : 365; + break; + default : + return PHPExcel_Calculation_Functions::NaN(); + } + return $daysPerYear; + } // function _daysPerYear() + + + private static function _interestAndPrincipal($rate=0, $per=0, $nper=0, $pv=0, $fv=0, $type=0) + { + $pmt = self::PMT($rate, $nper, $pv, $fv, $type); + $capital = $pv; + for ($i = 1; $i<= $per; ++$i) { + $interest = ($type && $i == 1) ? 0 : -$capital * $rate; + $principal = $pmt - $interest; + $capital += $principal; + } + return array($interest, $principal); + } // function _interestAndPrincipal() + + + /** + * ACCRINT + * + * Returns the accrued interest for a security that pays periodic interest. + * + * Excel Function: + * ACCRINT(issue,firstinterest,settlement,rate,par,frequency[,basis]) + * + * @access public + * @category Financial Functions + * @param mixed $issue The security's issue date. + * @param mixed $firstinterest The security's first interest date. + * @param mixed $settlement The security's settlement date. + * The security settlement date is the date after the issue date + * when the security is traded to the buyer. + * @param float $rate The security's annual coupon rate. + * @param float $par The security's par value. + * If you omit par, ACCRINT uses $1,000. + * @param integer $frequency the number of coupon payments per year. + * Valid frequency values are: + * 1 Annual + * 2 Semi-Annual + * 4 Quarterly + * If working in Gnumeric Mode, the following frequency options are + * also available + * 6 Bimonthly + * 12 Monthly + * @param integer $basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function ACCRINT($issue, $firstinterest, $settlement, $rate, $par=1000, $frequency=1, $basis=0) + { + $issue = PHPExcel_Calculation_Functions::flattenSingleValue($issue); + $firstinterest = PHPExcel_Calculation_Functions::flattenSingleValue($firstinterest); + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $par = (is_null($par)) ? 1000 : PHPExcel_Calculation_Functions::flattenSingleValue($par); + $frequency = (is_null($frequency)) ? 1 : PHPExcel_Calculation_Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if ((is_numeric($rate)) && (is_numeric($par))) { + $rate = (float) $rate; + $par = (float) $par; + if (($rate <= 0) || ($par <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysBetweenIssueAndSettlement = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $settlement, $basis); + if (!is_numeric($daysBetweenIssueAndSettlement)) { + // return date error + return $daysBetweenIssueAndSettlement; + } + + return $par * $rate * $daysBetweenIssueAndSettlement; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function ACCRINT() + + + /** + * ACCRINTM + * + * Returns the accrued interest for a security that pays interest at maturity. + * + * Excel Function: + * ACCRINTM(issue,settlement,rate[,par[,basis]]) + * + * @access public + * @category Financial Functions + * @param mixed issue The security's issue date. + * @param mixed settlement The security's settlement (or maturity) date. + * @param float rate The security's annual coupon rate. + * @param float par The security's par value. + * If you omit par, ACCRINT uses $1,000. + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function ACCRINTM($issue, $settlement, $rate, $par=1000, $basis=0) { + $issue = PHPExcel_Calculation_Functions::flattenSingleValue($issue); + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $par = (is_null($par)) ? 1000 : PHPExcel_Calculation_Functions::flattenSingleValue($par); + $basis = (is_null($basis)) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if ((is_numeric($rate)) && (is_numeric($par))) { + $rate = (float) $rate; + $par = (float) $par; + if (($rate <= 0) || ($par <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysBetweenIssueAndSettlement = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $settlement, $basis); + if (!is_numeric($daysBetweenIssueAndSettlement)) { + // return date error + return $daysBetweenIssueAndSettlement; + } + return $par * $rate * $daysBetweenIssueAndSettlement; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function ACCRINTM() + + + /** + * AMORDEGRC + * + * Returns the depreciation for each accounting period. + * This function is provided for the French accounting system. If an asset is purchased in + * the middle of the accounting period, the prorated depreciation is taken into account. + * The function is similar to AMORLINC, except that a depreciation coefficient is applied in + * the calculation depending on the life of the assets. + * This function will return the depreciation until the last period of the life of the assets + * or until the cumulated value of depreciation is greater than the cost of the assets minus + * the salvage value. + * + * Excel Function: + * AMORDEGRC(cost,purchased,firstPeriod,salvage,period,rate[,basis]) + * + * @access public + * @category Financial Functions + * @param float cost The cost of the asset. + * @param mixed purchased Date of the purchase of the asset. + * @param mixed firstPeriod Date of the end of the first period. + * @param mixed salvage The salvage value at the end of the life of the asset. + * @param float period The period. + * @param float rate Rate of depreciation. + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function AMORDEGRC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis=0) { + $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); + $purchased = PHPExcel_Calculation_Functions::flattenSingleValue($purchased); + $firstPeriod = PHPExcel_Calculation_Functions::flattenSingleValue($firstPeriod); + $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); + $period = floor(PHPExcel_Calculation_Functions::flattenSingleValue($period)); + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // The depreciation coefficients are: + // Life of assets (1/rate) Depreciation coefficient + // Less than 3 years 1 + // Between 3 and 4 years 1.5 + // Between 5 and 6 years 2 + // More than 6 years 2.5 + $fUsePer = 1.0 / $rate; + if ($fUsePer < 3.0) { + $amortiseCoeff = 1.0; + } elseif ($fUsePer < 5.0) { + $amortiseCoeff = 1.5; + } elseif ($fUsePer <= 6.0) { + $amortiseCoeff = 2.0; + } else { + $amortiseCoeff = 2.5; + } + + $rate *= $amortiseCoeff; + $fNRate = round(PHPExcel_Calculation_DateTime::YEARFRAC($purchased, $firstPeriod, $basis) * $rate * $cost,0); + $cost -= $fNRate; + $fRest = $cost - $salvage; + + for ($n = 0; $n < $period; ++$n) { + $fNRate = round($rate * $cost,0); + $fRest -= $fNRate; + + if ($fRest < 0.0) { + switch ($period - $n) { + case 0 : + case 1 : return round($cost * 0.5, 0); + break; + default : return 0.0; + break; + } + } + $cost -= $fNRate; + } + return $fNRate; + } // function AMORDEGRC() + + + /** + * AMORLINC + * + * Returns the depreciation for each accounting period. + * This function is provided for the French accounting system. If an asset is purchased in + * the middle of the accounting period, the prorated depreciation is taken into account. + * + * Excel Function: + * AMORLINC(cost,purchased,firstPeriod,salvage,period,rate[,basis]) + * + * @access public + * @category Financial Functions + * @param float cost The cost of the asset. + * @param mixed purchased Date of the purchase of the asset. + * @param mixed firstPeriod Date of the end of the first period. + * @param mixed salvage The salvage value at the end of the life of the asset. + * @param float period The period. + * @param float rate Rate of depreciation. + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function AMORLINC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis=0) { + $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); + $purchased = PHPExcel_Calculation_Functions::flattenSingleValue($purchased); + $firstPeriod = PHPExcel_Calculation_Functions::flattenSingleValue($firstPeriod); + $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); + $period = PHPExcel_Calculation_Functions::flattenSingleValue($period); + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + $fOneRate = $cost * $rate; + $fCostDelta = $cost - $salvage; + // Note, quirky variation for leap years on the YEARFRAC for this function + $purchasedYear = PHPExcel_Calculation_DateTime::YEAR($purchased); + $yearFrac = PHPExcel_Calculation_DateTime::YEARFRAC($purchased, $firstPeriod, $basis); + + if (($basis == 1) && ($yearFrac < 1) && (PHPExcel_Calculation_DateTime::_isLeapYear($purchasedYear))) { + $yearFrac *= 365 / 366; + } + + $f0Rate = $yearFrac * $rate * $cost; + $nNumOfFullPeriods = intval(($cost - $salvage - $f0Rate) / $fOneRate); + + if ($period == 0) { + return $f0Rate; + } elseif ($period <= $nNumOfFullPeriods) { + return $fOneRate; + } elseif ($period == ($nNumOfFullPeriods + 1)) { + return ($fCostDelta - $fOneRate * $nNumOfFullPeriods - $f0Rate); + } else { + return 0.0; + } + } // function AMORLINC() + + + /** + * COUPDAYBS + * + * Returns the number of days from the beginning of the coupon period to the settlement date. + * + * Excel Function: + * COUPDAYBS(settlement,maturity,frequency[,basis]) + * + * @access public + * @category Financial Functions + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue + * date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param mixed frequency the number of coupon payments per year. + * Valid frequency values are: + * 1 Annual + * 2 Semi-Annual + * 4 Quarterly + * If working in Gnumeric Mode, the following frequency options are + * also available + * 6 Bimonthly + * 12 Monthly + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function COUPDAYBS($settlement, $maturity, $frequency, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + if (is_string($settlement = PHPExcel_Calculation_DateTime::_getDateValue($settlement))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (($settlement > $maturity) || + (!self::_validFrequency($frequency)) || + (($basis < 0) || ($basis > 4))) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $daysPerYear = self::_daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement),$basis); + $prev = self::_coupFirstPeriodDate($settlement, $maturity, $frequency, False); + + return PHPExcel_Calculation_DateTime::YEARFRAC($prev, $settlement, $basis) * $daysPerYear; + } // function COUPDAYBS() + + + /** + * COUPDAYS + * + * Returns the number of days in the coupon period that contains the settlement date. + * + * Excel Function: + * COUPDAYS(settlement,maturity,frequency[,basis]) + * + * @access public + * @category Financial Functions + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue + * date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param mixed frequency the number of coupon payments per year. + * Valid frequency values are: + * 1 Annual + * 2 Semi-Annual + * 4 Quarterly + * If working in Gnumeric Mode, the following frequency options are + * also available + * 6 Bimonthly + * 12 Monthly + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function COUPDAYS($settlement, $maturity, $frequency, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + if (is_string($settlement = PHPExcel_Calculation_DateTime::_getDateValue($settlement))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (($settlement > $maturity) || + (!self::_validFrequency($frequency)) || + (($basis < 0) || ($basis > 4))) { + return PHPExcel_Calculation_Functions::NaN(); + } + + switch ($basis) { + case 3: // Actual/365 + return 365 / $frequency; + case 1: // Actual/actual + if ($frequency == 1) { + $daysPerYear = self::_daysPerYear(PHPExcel_Calculation_DateTime::YEAR($maturity),$basis); + return ($daysPerYear / $frequency); + } else { + $prev = self::_coupFirstPeriodDate($settlement, $maturity, $frequency, False); + $next = self::_coupFirstPeriodDate($settlement, $maturity, $frequency, True); + return ($next - $prev); + } + default: // US (NASD) 30/360, Actual/360 or European 30/360 + return 360 / $frequency; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function COUPDAYS() + + + /** + * COUPDAYSNC + * + * Returns the number of days from the settlement date to the next coupon date. + * + * Excel Function: + * COUPDAYSNC(settlement,maturity,frequency[,basis]) + * + * @access public + * @category Financial Functions + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue + * date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param mixed frequency the number of coupon payments per year. + * Valid frequency values are: + * 1 Annual + * 2 Semi-Annual + * 4 Quarterly + * If working in Gnumeric Mode, the following frequency options are + * also available + * 6 Bimonthly + * 12 Monthly + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function COUPDAYSNC($settlement, $maturity, $frequency, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + if (is_string($settlement = PHPExcel_Calculation_DateTime::_getDateValue($settlement))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (($settlement > $maturity) || + (!self::_validFrequency($frequency)) || + (($basis < 0) || ($basis > 4))) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $daysPerYear = self::_daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement),$basis); + $next = self::_coupFirstPeriodDate($settlement, $maturity, $frequency, True); + + return PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $next, $basis) * $daysPerYear; + } // function COUPDAYSNC() + + + /** + * COUPNCD + * + * Returns the next coupon date after the settlement date. + * + * Excel Function: + * COUPNCD(settlement,maturity,frequency[,basis]) + * + * @access public + * @category Financial Functions + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue + * date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param mixed frequency the number of coupon payments per year. + * Valid frequency values are: + * 1 Annual + * 2 Semi-Annual + * 4 Quarterly + * If working in Gnumeric Mode, the following frequency options are + * also available + * 6 Bimonthly + * 12 Monthly + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function COUPNCD($settlement, $maturity, $frequency, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + if (is_string($settlement = PHPExcel_Calculation_DateTime::_getDateValue($settlement))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (($settlement > $maturity) || + (!self::_validFrequency($frequency)) || + (($basis < 0) || ($basis > 4))) { + return PHPExcel_Calculation_Functions::NaN(); + } + + return self::_coupFirstPeriodDate($settlement, $maturity, $frequency, True); + } // function COUPNCD() + + + /** + * COUPNUM + * + * Returns the number of coupons payable between the settlement date and maturity date, + * rounded up to the nearest whole coupon. + * + * Excel Function: + * COUPNUM(settlement,maturity,frequency[,basis]) + * + * @access public + * @category Financial Functions + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue + * date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param mixed frequency the number of coupon payments per year. + * Valid frequency values are: + * 1 Annual + * 2 Semi-Annual + * 4 Quarterly + * If working in Gnumeric Mode, the following frequency options are + * also available + * 6 Bimonthly + * 12 Monthly + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return integer + */ + public static function COUPNUM($settlement, $maturity, $frequency, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + if (is_string($settlement = PHPExcel_Calculation_DateTime::_getDateValue($settlement))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (($settlement > $maturity) || + (!self::_validFrequency($frequency)) || + (($basis < 0) || ($basis > 4))) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $settlement = self::_coupFirstPeriodDate($settlement, $maturity, $frequency, True); + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis) * 365; + + switch ($frequency) { + case 1: // annual payments + return ceil($daysBetweenSettlementAndMaturity / 360); + case 2: // half-yearly + return ceil($daysBetweenSettlementAndMaturity / 180); + case 4: // quarterly + return ceil($daysBetweenSettlementAndMaturity / 90); + case 6: // bimonthly + return ceil($daysBetweenSettlementAndMaturity / 60); + case 12: // monthly + return ceil($daysBetweenSettlementAndMaturity / 30); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function COUPNUM() + + + /** + * COUPPCD + * + * Returns the previous coupon date before the settlement date. + * + * Excel Function: + * COUPPCD(settlement,maturity,frequency[,basis]) + * + * @access public + * @category Financial Functions + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue + * date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param mixed frequency the number of coupon payments per year. + * Valid frequency values are: + * 1 Annual + * 2 Semi-Annual + * 4 Quarterly + * If working in Gnumeric Mode, the following frequency options are + * also available + * 6 Bimonthly + * 12 Monthly + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, + * depending on the value of the ReturnDateType flag + */ + public static function COUPPCD($settlement, $maturity, $frequency, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + if (is_string($settlement = PHPExcel_Calculation_DateTime::_getDateValue($settlement))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (($settlement > $maturity) || + (!self::_validFrequency($frequency)) || + (($basis < 0) || ($basis > 4))) { + return PHPExcel_Calculation_Functions::NaN(); + } + + return self::_coupFirstPeriodDate($settlement, $maturity, $frequency, False); + } // function COUPPCD() + + + /** + * CUMIPMT + * + * Returns the cumulative interest paid on a loan between the start and end periods. + * + * Excel Function: + * CUMIPMT(rate,nper,pv,start,end[,type]) + * + * @access public + * @category Financial Functions + * @param float $rate The Interest rate + * @param integer $nper The total number of payment periods + * @param float $pv Present Value + * @param integer $start The first period in the calculation. + * Payment periods are numbered beginning with 1. + * @param integer $end The last period in the calculation. + * @param integer $type A number 0 or 1 and indicates when payments are due: + * 0 or omitted At the end of the period. + * 1 At the beginning of the period. + * @return float + */ + public static function CUMIPMT($rate, $nper, $pv, $start, $end, $type = 0) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); + $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); + $start = (int) PHPExcel_Calculation_Functions::flattenSingleValue($start); + $end = (int) PHPExcel_Calculation_Functions::flattenSingleValue($end); + $type = (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); + + // Validate parameters + if ($type != 0 && $type != 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($start < 1 || $start > $end) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Calculate + $interest = 0; + for ($per = $start; $per <= $end; ++$per) { + $interest += self::IPMT($rate, $per, $nper, $pv, 0, $type); + } + + return $interest; + } // function CUMIPMT() + + + /** + * CUMPRINC + * + * Returns the cumulative principal paid on a loan between the start and end periods. + * + * Excel Function: + * CUMPRINC(rate,nper,pv,start,end[,type]) + * + * @access public + * @category Financial Functions + * @param float $rate The Interest rate + * @param integer $nper The total number of payment periods + * @param float $pv Present Value + * @param integer $start The first period in the calculation. + * Payment periods are numbered beginning with 1. + * @param integer $end The last period in the calculation. + * @param integer $type A number 0 or 1 and indicates when payments are due: + * 0 or omitted At the end of the period. + * 1 At the beginning of the period. + * @return float + */ + public static function CUMPRINC($rate, $nper, $pv, $start, $end, $type = 0) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); + $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); + $start = (int) PHPExcel_Calculation_Functions::flattenSingleValue($start); + $end = (int) PHPExcel_Calculation_Functions::flattenSingleValue($end); + $type = (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); + + // Validate parameters + if ($type != 0 && $type != 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($start < 1 || $start > $end) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Calculate + $principal = 0; + for ($per = $start; $per <= $end; ++$per) { + $principal += self::PPMT($rate, $per, $nper, $pv, 0, $type); + } + + return $principal; + } // function CUMPRINC() + + + /** + * DB + * + * Returns the depreciation of an asset for a specified period using the + * fixed-declining balance method. + * This form of depreciation is used if you want to get a higher depreciation value + * at the beginning of the depreciation (as opposed to linear depreciation). The + * depreciation value is reduced with every depreciation period by the depreciation + * already deducted from the initial cost. + * + * Excel Function: + * DB(cost,salvage,life,period[,month]) + * + * @access public + * @category Financial Functions + * @param float cost Initial cost of the asset. + * @param float salvage Value at the end of the depreciation. + * (Sometimes called the salvage value of the asset) + * @param integer life Number of periods over which the asset is depreciated. + * (Sometimes called the useful life of the asset) + * @param integer period The period for which you want to calculate the + * depreciation. Period must use the same units as life. + * @param integer month Number of months in the first year. If month is omitted, + * it defaults to 12. + * @return float + */ + public static function DB($cost, $salvage, $life, $period, $month=12) { + $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); + $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); + $life = PHPExcel_Calculation_Functions::flattenSingleValue($life); + $period = PHPExcel_Calculation_Functions::flattenSingleValue($period); + $month = PHPExcel_Calculation_Functions::flattenSingleValue($month); + + // Validate + if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period)) && (is_numeric($month))) { + $cost = (float) $cost; + $salvage = (float) $salvage; + $life = (int) $life; + $period = (int) $period; + $month = (int) $month; + if ($cost == 0) { + return 0.0; + } elseif (($cost < 0) || (($salvage / $cost) < 0) || ($life <= 0) || ($period < 1) || ($month < 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + // Set Fixed Depreciation Rate + $fixedDepreciationRate = 1 - pow(($salvage / $cost), (1 / $life)); + $fixedDepreciationRate = round($fixedDepreciationRate, 3); + + // Loop through each period calculating the depreciation + $previousDepreciation = 0; + for ($per = 1; $per <= $period; ++$per) { + if ($per == 1) { + $depreciation = $cost * $fixedDepreciationRate * $month / 12; + } elseif ($per == ($life + 1)) { + $depreciation = ($cost - $previousDepreciation) * $fixedDepreciationRate * (12 - $month) / 12; + } else { + $depreciation = ($cost - $previousDepreciation) * $fixedDepreciationRate; + } + $previousDepreciation += $depreciation; + } + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + $depreciation = round($depreciation,2); + } + return $depreciation; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function DB() + + + /** + * DDB + * + * Returns the depreciation of an asset for a specified period using the + * double-declining balance method or some other method you specify. + * + * Excel Function: + * DDB(cost,salvage,life,period[,factor]) + * + * @access public + * @category Financial Functions + * @param float cost Initial cost of the asset. + * @param float salvage Value at the end of the depreciation. + * (Sometimes called the salvage value of the asset) + * @param integer life Number of periods over which the asset is depreciated. + * (Sometimes called the useful life of the asset) + * @param integer period The period for which you want to calculate the + * depreciation. Period must use the same units as life. + * @param float factor The rate at which the balance declines. + * If factor is omitted, it is assumed to be 2 (the + * double-declining balance method). + * @return float + */ + public static function DDB($cost, $salvage, $life, $period, $factor=2.0) { + $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); + $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); + $life = PHPExcel_Calculation_Functions::flattenSingleValue($life); + $period = PHPExcel_Calculation_Functions::flattenSingleValue($period); + $factor = PHPExcel_Calculation_Functions::flattenSingleValue($factor); + + // Validate + if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period)) && (is_numeric($factor))) { + $cost = (float) $cost; + $salvage = (float) $salvage; + $life = (int) $life; + $period = (int) $period; + $factor = (float) $factor; + if (($cost <= 0) || (($salvage / $cost) < 0) || ($life <= 0) || ($period < 1) || ($factor <= 0.0) || ($period > $life)) { + return PHPExcel_Calculation_Functions::NaN(); + } + // Set Fixed Depreciation Rate + $fixedDepreciationRate = 1 - pow(($salvage / $cost), (1 / $life)); + $fixedDepreciationRate = round($fixedDepreciationRate, 3); + + // Loop through each period calculating the depreciation + $previousDepreciation = 0; + for ($per = 1; $per <= $period; ++$per) { + $depreciation = min( ($cost - $previousDepreciation) * ($factor / $life), ($cost - $salvage - $previousDepreciation) ); + $previousDepreciation += $depreciation; + } + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + $depreciation = round($depreciation,2); + } + return $depreciation; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function DDB() + + + /** + * DISC + * + * Returns the discount rate for a security. + * + * Excel Function: + * DISC(settlement,maturity,price,redemption[,basis]) + * + * @access public + * @category Financial Functions + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue + * date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param integer price The security's price per $100 face value. + * @param integer redemption The security's redemption value per $100 face value. + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function DISC($settlement, $maturity, $price, $redemption, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $price = PHPExcel_Calculation_Functions::flattenSingleValue($price); + $redemption = PHPExcel_Calculation_Functions::flattenSingleValue($redemption); + $basis = PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if ((is_numeric($price)) && (is_numeric($redemption)) && (is_numeric($basis))) { + $price = (float) $price; + $redemption = (float) $redemption; + $basis = (int) $basis; + if (($price <= 0) || ($redemption <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + + return ((1 - $price / $redemption) / $daysBetweenSettlementAndMaturity); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function DISC() + + + /** + * DOLLARDE + * + * Converts a dollar price expressed as an integer part and a fraction + * part into a dollar price expressed as a decimal number. + * Fractional dollar numbers are sometimes used for security prices. + * + * Excel Function: + * DOLLARDE(fractional_dollar,fraction) + * + * @access public + * @category Financial Functions + * @param float $fractional_dollar Fractional Dollar + * @param integer $fraction Fraction + * @return float + */ + public static function DOLLARDE($fractional_dollar = Null, $fraction = 0) { + $fractional_dollar = PHPExcel_Calculation_Functions::flattenSingleValue($fractional_dollar); + $fraction = (int)PHPExcel_Calculation_Functions::flattenSingleValue($fraction); + + // Validate parameters + if (is_null($fractional_dollar) || $fraction < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($fraction == 0) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $dollars = floor($fractional_dollar); + $cents = fmod($fractional_dollar,1); + $cents /= $fraction; + $cents *= pow(10,ceil(log10($fraction))); + return $dollars + $cents; + } // function DOLLARDE() + + + /** + * DOLLARFR + * + * Converts a dollar price expressed as a decimal number into a dollar price + * expressed as a fraction. + * Fractional dollar numbers are sometimes used for security prices. + * + * Excel Function: + * DOLLARFR(decimal_dollar,fraction) + * + * @access public + * @category Financial Functions + * @param float $decimal_dollar Decimal Dollar + * @param integer $fraction Fraction + * @return float + */ + public static function DOLLARFR($decimal_dollar = Null, $fraction = 0) { + $decimal_dollar = PHPExcel_Calculation_Functions::flattenSingleValue($decimal_dollar); + $fraction = (int)PHPExcel_Calculation_Functions::flattenSingleValue($fraction); + + // Validate parameters + if (is_null($decimal_dollar) || $fraction < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($fraction == 0) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $dollars = floor($decimal_dollar); + $cents = fmod($decimal_dollar,1); + $cents *= $fraction; + $cents *= pow(10,-ceil(log10($fraction))); + return $dollars + $cents; + } // function DOLLARFR() + + + /** + * EFFECT + * + * Returns the effective interest rate given the nominal rate and the number of + * compounding payments per year. + * + * Excel Function: + * EFFECT(nominal_rate,npery) + * + * @access public + * @category Financial Functions + * @param float $nominal_rate Nominal interest rate + * @param integer $npery Number of compounding payments per year + * @return float + */ + public static function EFFECT($nominal_rate = 0, $npery = 0) { + $nominal_rate = PHPExcel_Calculation_Functions::flattenSingleValue($nominal_rate); + $npery = (int)PHPExcel_Calculation_Functions::flattenSingleValue($npery); + + // Validate parameters + if ($nominal_rate <= 0 || $npery < 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + + return pow((1 + $nominal_rate / $npery), $npery) - 1; + } // function EFFECT() + + + /** + * FV + * + * Returns the Future Value of a cash flow with constant payments and interest rate (annuities). + * + * Excel Function: + * FV(rate,nper,pmt[,pv[,type]]) + * + * @access public + * @category Financial Functions + * @param float $rate The interest rate per period + * @param int $nper Total number of payment periods in an annuity + * @param float $pmt The payment made each period: it cannot change over the + * life of the annuity. Typically, pmt contains principal + * and interest but no other fees or taxes. + * @param float $pv Present Value, or the lump-sum amount that a series of + * future payments is worth right now. + * @param integer $type A number 0 or 1 and indicates when payments are due: + * 0 or omitted At the end of the period. + * 1 At the beginning of the period. + * @return float + */ + public static function FV($rate = 0, $nper = 0, $pmt = 0, $pv = 0, $type = 0) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $nper = PHPExcel_Calculation_Functions::flattenSingleValue($nper); + $pmt = PHPExcel_Calculation_Functions::flattenSingleValue($pmt); + $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); + $type = PHPExcel_Calculation_Functions::flattenSingleValue($type); + + // Validate parameters + if ($type != 0 && $type != 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Calculate + if (!is_null($rate) && $rate != 0) { + return -$pv * pow(1 + $rate, $nper) - $pmt * (1 + $rate * $type) * (pow(1 + $rate, $nper) - 1) / $rate; + } else { + return -$pv - $pmt * $nper; + } + } // function FV() + + + /** + * FVSCHEDULE + * + */ + public static function FVSCHEDULE($principal, $schedule) { + $principal = PHPExcel_Calculation_Functions::flattenSingleValue($principal); + $schedule = PHPExcel_Calculation_Functions::flattenArray($schedule); + + foreach($schedule as $n) { + $principal *= 1 + $n; + } + + return $principal; + } // function FVSCHEDULE() + + + /** + * INTRATE + * + * Returns the interest rate for a fully invested security. + * + * Excel Function: + * INTRATE(settlement,maturity,investment,redemption[,basis]) + * + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param integer investment The amount invested in the security. + * @param integer redemption The amount to be received at maturity. + * @param integer basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function INTRATE($settlement, $maturity, $investment, $redemption, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $investment = PHPExcel_Calculation_Functions::flattenSingleValue($investment); + $redemption = PHPExcel_Calculation_Functions::flattenSingleValue($redemption); + $basis = PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if ((is_numeric($investment)) && (is_numeric($redemption)) && (is_numeric($basis))) { + $investment = (float) $investment; + $redemption = (float) $redemption; + $basis = (int) $basis; + if (($investment <= 0) || ($redemption <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + + return (($redemption / $investment) - 1) / ($daysBetweenSettlementAndMaturity); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function INTRATE() + + + /** + * IPMT + * + * Returns the interest payment for a given period for an investment based on periodic, constant payments and a constant interest rate. + * + * @param float $rate Interest rate per period + * @param int $per Period for which we want to find the interest + * @param int $nper Number of periods + * @param float $pv Present Value + * @param float $fv Future Value + * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period + * @return float + */ + public static function IPMT($rate, $per, $nper, $pv, $fv = 0, $type = 0) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $per = (int) PHPExcel_Calculation_Functions::flattenSingleValue($per); + $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); + $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); + $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); + $type = (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); + + // Validate parameters + if ($type != 0 && $type != 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($per <= 0 || $per > $nper) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Calculate + $interestAndPrincipal = self::_interestAndPrincipal($rate, $per, $nper, $pv, $fv, $type); + return $interestAndPrincipal[0]; + } // function IPMT() + + + public static function IRR($values, $guess = 0.1) { + if (!is_array($values)) return PHPExcel_Calculation_Functions::VALUE(); + $values = PHPExcel_Calculation_Functions::flattenArray($values); + $guess = PHPExcel_Calculation_Functions::flattenSingleValue($guess); + + // create an initial range, with a root somewhere between 0 and guess + $x1 = 0.0; + $x2 = $guess; + $f1 = self::NPV($x1, $values); + $f2 = self::NPV($x2, $values); + for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { + if (($f1 * $f2) < 0.0) break; + if (abs($f1) < abs($f2)) { + $f1 = self::NPV($x1 += 1.6 * ($x1 - $x2), $values); + } else { + $f2 = self::NPV($x2 += 1.6 * ($x2 - $x1), $values); + } + } + if (($f1 * $f2) > 0.0) return PHPExcel_Calculation_Functions::VALUE(); + + $f = self::NPV($x1, $values); + if ($f < 0.0) { + $rtb = $x1; + $dx = $x2 - $x1; + } else { + $rtb = $x2; + $dx = $x1 - $x2; + } + + for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { + $dx *= 0.5; + $x_mid = $rtb + $dx; + $f_mid = self::NPV($x_mid, $values); + if ($f_mid <= 0.0) $rtb = $x_mid; + if ((abs($f_mid) < FINANCIAL_PRECISION) || (abs($dx) < FINANCIAL_PRECISION)) return $x_mid; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function IRR() + + + /** + * ISPMT + * + * Returns the interest payment for an investment based on an interest rate and a constant payment schedule. + * + * Excel Function: + * =ISPMT(interest_rate, period, number_payments, PV) + * + * interest_rate is the interest rate for the investment + * + * period is the period to calculate the interest rate. It must be betweeen 1 and number_payments. + * + * number_payments is the number of payments for the annuity + * + * PV is the loan amount or present value of the payments + */ + public static function ISPMT() { + // Return value + $returnValue = 0; + + // Get the parameters + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + $interestRate = array_shift($aArgs); + $period = array_shift($aArgs); + $numberPeriods = array_shift($aArgs); + $principleRemaining = array_shift($aArgs); + + // Calculate + $principlePayment = ($principleRemaining * 1.0) / ($numberPeriods * 1.0); + for($i=0; $i <= $period; ++$i) { + $returnValue = $interestRate * $principleRemaining * -1; + $principleRemaining -= $principlePayment; + // principle needs to be 0 after the last payment, don't let floating point screw it up + if($i == $numberPeriods) { + $returnValue = 0; + } + } + return($returnValue); + } // function ISPMT() + + + public static function MIRR($values, $finance_rate, $reinvestment_rate) { + if (!is_array($values)) return PHPExcel_Calculation_Functions::VALUE(); + $values = PHPExcel_Calculation_Functions::flattenArray($values); + $finance_rate = PHPExcel_Calculation_Functions::flattenSingleValue($finance_rate); + $reinvestment_rate = PHPExcel_Calculation_Functions::flattenSingleValue($reinvestment_rate); + $n = count($values); + + $rr = 1.0 + $reinvestment_rate; + $fr = 1.0 + $finance_rate; + + $npv_pos = $npv_neg = 0.0; + foreach($values as $i => $v) { + if ($v >= 0) { + $npv_pos += $v / pow($rr, $i); + } else { + $npv_neg += $v / pow($fr, $i); + } + } + + if (($npv_neg == 0) || ($npv_pos == 0) || ($reinvestment_rate <= -1)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + $mirr = pow((-$npv_pos * pow($rr, $n)) + / ($npv_neg * ($rr)), (1.0 / ($n - 1))) - 1.0; + + return (is_finite($mirr) ? $mirr : PHPExcel_Calculation_Functions::VALUE()); + } // function MIRR() + + + /** + * NOMINAL + * + * Returns the nominal interest rate given the effective rate and the number of compounding payments per year. + * + * @param float $effect_rate Effective interest rate + * @param int $npery Number of compounding payments per year + * @return float + */ + public static function NOMINAL($effect_rate = 0, $npery = 0) { + $effect_rate = PHPExcel_Calculation_Functions::flattenSingleValue($effect_rate); + $npery = (int)PHPExcel_Calculation_Functions::flattenSingleValue($npery); + + // Validate parameters + if ($effect_rate <= 0 || $npery < 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Calculate + return $npery * (pow($effect_rate + 1, 1 / $npery) - 1); + } // function NOMINAL() + + + /** + * NPER + * + * Returns the number of periods for a cash flow with constant periodic payments (annuities), and interest rate. + * + * @param float $rate Interest rate per period + * @param int $pmt Periodic payment (annuity) + * @param float $pv Present Value + * @param float $fv Future Value + * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period + * @return float + */ + public static function NPER($rate = 0, $pmt = 0, $pv = 0, $fv = 0, $type = 0) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $pmt = PHPExcel_Calculation_Functions::flattenSingleValue($pmt); + $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); + $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); + $type = PHPExcel_Calculation_Functions::flattenSingleValue($type); + + // Validate parameters + if ($type != 0 && $type != 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Calculate + if (!is_null($rate) && $rate != 0) { + if ($pmt == 0 && $pv == 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return log(($pmt * (1 + $rate * $type) / $rate - $fv) / ($pv + $pmt * (1 + $rate * $type) / $rate)) / log(1 + $rate); + } else { + if ($pmt == 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return (-$pv -$fv) / $pmt; + } + } // function NPER() + + + /** + * NPV + * + * Returns the Net Present Value of a cash flow series given a discount rate. + * + * @param float Discount interest rate + * @param array Cash flow series + * @return float + */ + public static function NPV() { + // Return value + $returnValue = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + // Calculate + $rate = array_shift($aArgs); + for ($i = 1; $i <= count($aArgs); ++$i) { + // Is it a numeric value? + if (is_numeric($aArgs[$i - 1])) { + $returnValue += $aArgs[$i - 1] / pow(1 + $rate, $i); + } + } + + // Return + return $returnValue; + } // function NPV() + + + /** + * PMT + * + * Returns the constant payment (annuity) for a cash flow with a constant interest rate. + * + * @param float $rate Interest rate per period + * @param int $nper Number of periods + * @param float $pv Present Value + * @param float $fv Future Value + * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period + * @return float + */ + public static function PMT($rate = 0, $nper = 0, $pv = 0, $fv = 0, $type = 0) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $nper = PHPExcel_Calculation_Functions::flattenSingleValue($nper); + $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); + $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); + $type = PHPExcel_Calculation_Functions::flattenSingleValue($type); + + // Validate parameters + if ($type != 0 && $type != 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Calculate + if (!is_null($rate) && $rate != 0) { + return (-$fv - $pv * pow(1 + $rate, $nper)) / (1 + $rate * $type) / ((pow(1 + $rate, $nper) - 1) / $rate); + } else { + return (-$pv - $fv) / $nper; + } + } // function PMT() + + + /** + * PPMT + * + * Returns the interest payment for a given period for an investment based on periodic, constant payments and a constant interest rate. + * + * @param float $rate Interest rate per period + * @param int $per Period for which we want to find the interest + * @param int $nper Number of periods + * @param float $pv Present Value + * @param float $fv Future Value + * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period + * @return float + */ + public static function PPMT($rate, $per, $nper, $pv, $fv = 0, $type = 0) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $per = (int) PHPExcel_Calculation_Functions::flattenSingleValue($per); + $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); + $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); + $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); + $type = (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); + + // Validate parameters + if ($type != 0 && $type != 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($per <= 0 || $per > $nper) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Calculate + $interestAndPrincipal = self::_interestAndPrincipal($rate, $per, $nper, $pv, $fv, $type); + return $interestAndPrincipal[1]; + } // function PPMT() + + + public static function PRICE($settlement, $maturity, $rate, $yield, $redemption, $frequency, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $rate = (float) PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $yield = (float) PHPExcel_Calculation_Functions::flattenSingleValue($yield); + $redemption = (float) PHPExcel_Calculation_Functions::flattenSingleValue($redemption); + $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + if (is_string($settlement = PHPExcel_Calculation_DateTime::_getDateValue($settlement))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (($settlement > $maturity) || + (!self::_validFrequency($frequency)) || + (($basis < 0) || ($basis > 4))) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $dsc = self::COUPDAYSNC($settlement, $maturity, $frequency, $basis); + $e = self::COUPDAYS($settlement, $maturity, $frequency, $basis); + $n = self::COUPNUM($settlement, $maturity, $frequency, $basis); + $a = self::COUPDAYBS($settlement, $maturity, $frequency, $basis); + + $baseYF = 1.0 + ($yield / $frequency); + $rfp = 100 * ($rate / $frequency); + $de = $dsc / $e; + + $result = $redemption / pow($baseYF, (--$n + $de)); + for($k = 0; $k <= $n; ++$k) { + $result += $rfp / (pow($baseYF, ($k + $de))); + } + $result -= $rfp * ($a / $e); + + return $result; + } // function PRICE() + + + /** + * PRICEDISC + * + * Returns the price per $100 face value of a discounted security. + * + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param int discount The security's discount rate. + * @param int redemption The security's redemption value per $100 face value. + * @param int basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function PRICEDISC($settlement, $maturity, $discount, $redemption, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $discount = (float) PHPExcel_Calculation_Functions::flattenSingleValue($discount); + $redemption = (float) PHPExcel_Calculation_Functions::flattenSingleValue($redemption); + $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if ((is_numeric($discount)) && (is_numeric($redemption)) && (is_numeric($basis))) { + if (($discount <= 0) || ($redemption <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + + return $redemption * (1 - $discount * $daysBetweenSettlementAndMaturity); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function PRICEDISC() + + + /** + * PRICEMAT + * + * Returns the price per $100 face value of a security that pays interest at maturity. + * + * @param mixed settlement The security's settlement date. + * The security's settlement date is the date after the issue date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param mixed issue The security's issue date. + * @param int rate The security's interest rate at date of issue. + * @param int yield The security's annual yield. + * @param int basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function PRICEMAT($settlement, $maturity, $issue, $rate, $yield, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $issue = PHPExcel_Calculation_Functions::flattenSingleValue($issue); + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $yield = PHPExcel_Calculation_Functions::flattenSingleValue($yield); + $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if (is_numeric($rate) && is_numeric($yield)) { + if (($rate <= 0) || ($yield <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysPerYear = self::_daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement),$basis); + if (!is_numeric($daysPerYear)) { + return $daysPerYear; + } + $daysBetweenIssueAndSettlement = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $settlement, $basis); + if (!is_numeric($daysBetweenIssueAndSettlement)) { + // return date error + return $daysBetweenIssueAndSettlement; + } + $daysBetweenIssueAndSettlement *= $daysPerYear; + $daysBetweenIssueAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $maturity, $basis); + if (!is_numeric($daysBetweenIssueAndMaturity)) { + // return date error + return $daysBetweenIssueAndMaturity; + } + $daysBetweenIssueAndMaturity *= $daysPerYear; + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + $daysBetweenSettlementAndMaturity *= $daysPerYear; + + return ((100 + (($daysBetweenIssueAndMaturity / $daysPerYear) * $rate * 100)) / + (1 + (($daysBetweenSettlementAndMaturity / $daysPerYear) * $yield)) - + (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate * 100)); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function PRICEMAT() + + + /** + * PV + * + * Returns the Present Value of a cash flow with constant payments and interest rate (annuities). + * + * @param float $rate Interest rate per period + * @param int $nper Number of periods + * @param float $pmt Periodic payment (annuity) + * @param float $fv Future Value + * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period + * @return float + */ + public static function PV($rate = 0, $nper = 0, $pmt = 0, $fv = 0, $type = 0) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $nper = PHPExcel_Calculation_Functions::flattenSingleValue($nper); + $pmt = PHPExcel_Calculation_Functions::flattenSingleValue($pmt); + $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); + $type = PHPExcel_Calculation_Functions::flattenSingleValue($type); + + // Validate parameters + if ($type != 0 && $type != 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + + // Calculate + if (!is_null($rate) && $rate != 0) { + return (-$pmt * (1 + $rate * $type) * ((pow(1 + $rate, $nper) - 1) / $rate) - $fv) / pow(1 + $rate, $nper); + } else { + return -$fv - $pmt * $nper; + } + } // function PV() + + + /** + * RATE + * + * Returns the interest rate per period of an annuity. + * RATE is calculated by iteration and can have zero or more solutions. + * If the successive results of RATE do not converge to within 0.0000001 after 20 iterations, + * RATE returns the #NUM! error value. + * + * Excel Function: + * RATE(nper,pmt,pv[,fv[,type[,guess]]]) + * + * @access public + * @category Financial Functions + * @param float nper The total number of payment periods in an annuity. + * @param float pmt The payment made each period and cannot change over the life + * of the annuity. + * Typically, pmt includes principal and interest but no other + * fees or taxes. + * @param float pv The present value - the total amount that a series of future + * payments is worth now. + * @param float fv The future value, or a cash balance you want to attain after + * the last payment is made. If fv is omitted, it is assumed + * to be 0 (the future value of a loan, for example, is 0). + * @param integer type A number 0 or 1 and indicates when payments are due: + * 0 or omitted At the end of the period. + * 1 At the beginning of the period. + * @param float guess Your guess for what the rate will be. + * If you omit guess, it is assumed to be 10 percent. + * @return float + **/ + public static function RATE($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1) { + $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); + $pmt = PHPExcel_Calculation_Functions::flattenSingleValue($pmt); + $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); + $fv = (is_null($fv)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($fv); + $type = (is_null($type)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); + $guess = (is_null($guess)) ? 0.1 : PHPExcel_Calculation_Functions::flattenSingleValue($guess); + + $rate = $guess; + if (abs($rate) < FINANCIAL_PRECISION) { + $y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv; + } else { + $f = exp($nper * log(1 + $rate)); + $y = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv; + } + $y0 = $pv + $pmt * $nper + $fv; + $y1 = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv; + + // find root by secant method + $i = $x0 = 0.0; + $x1 = $rate; + while ((abs($y0 - $y1) > FINANCIAL_PRECISION) && ($i < FINANCIAL_MAX_ITERATIONS)) { + $rate = ($y1 * $x0 - $y0 * $x1) / ($y1 - $y0); + $x0 = $x1; + $x1 = $rate; + if (($nper * abs($pmt)) > ($pv - $fv)) + $x1 = abs($x1); + + if (abs($rate) < FINANCIAL_PRECISION) { + $y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv; + } else { + $f = exp($nper * log(1 + $rate)); + $y = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv; + } + + $y0 = $y1; + $y1 = $y; + ++$i; + } + return $rate; + } // function RATE() + + + /** + * RECEIVED + * + * Returns the price per $100 face value of a discounted security. + * + * @param mixed settlement The security's settlement date. + * The security settlement date is the date after the issue date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param int investment The amount invested in the security. + * @param int discount The security's discount rate. + * @param int basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function RECEIVED($settlement, $maturity, $investment, $discount, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $investment = (float) PHPExcel_Calculation_Functions::flattenSingleValue($investment); + $discount = (float) PHPExcel_Calculation_Functions::flattenSingleValue($discount); + $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if ((is_numeric($investment)) && (is_numeric($discount)) && (is_numeric($basis))) { + if (($investment <= 0) || ($discount <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + + return $investment / ( 1 - ($discount * $daysBetweenSettlementAndMaturity)); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function RECEIVED() + + + /** + * SLN + * + * Returns the straight-line depreciation of an asset for one period + * + * @param cost Initial cost of the asset + * @param salvage Value at the end of the depreciation + * @param life Number of periods over which the asset is depreciated + * @return float + */ + public static function SLN($cost, $salvage, $life) { + $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); + $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); + $life = PHPExcel_Calculation_Functions::flattenSingleValue($life); + + // Calculate + if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life))) { + if ($life < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return ($cost - $salvage) / $life; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SLN() + + + /** + * SYD + * + * Returns the sum-of-years' digits depreciation of an asset for a specified period. + * + * @param cost Initial cost of the asset + * @param salvage Value at the end of the depreciation + * @param life Number of periods over which the asset is depreciated + * @param period Period + * @return float + */ + public static function SYD($cost, $salvage, $life, $period) { + $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); + $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); + $life = PHPExcel_Calculation_Functions::flattenSingleValue($life); + $period = PHPExcel_Calculation_Functions::flattenSingleValue($period); + + // Calculate + if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period))) { + if (($life < 1) || ($period > $life)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return (($cost - $salvage) * ($life - $period + 1) * 2) / ($life * ($life + 1)); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SYD() + + + /** + * TBILLEQ + * + * Returns the bond-equivalent yield for a Treasury bill. + * + * @param mixed settlement The Treasury bill's settlement date. + * The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer. + * @param mixed maturity The Treasury bill's maturity date. + * The maturity date is the date when the Treasury bill expires. + * @param int discount The Treasury bill's discount rate. + * @return float + */ + public static function TBILLEQ($settlement, $maturity, $discount) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $discount = PHPExcel_Calculation_Functions::flattenSingleValue($discount); + + // Use TBILLPRICE for validation + $testValue = self::TBILLPRICE($settlement, $maturity, $discount); + if (is_string($testValue)) { + return $testValue; + } + + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + ++$maturity; + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity) * 360; + } else { + $daysBetweenSettlementAndMaturity = (PHPExcel_Calculation_DateTime::_getDateValue($maturity) - PHPExcel_Calculation_DateTime::_getDateValue($settlement)); + } + + return (365 * $discount) / (360 - $discount * $daysBetweenSettlementAndMaturity); + } // function TBILLEQ() + + + /** + * TBILLPRICE + * + * Returns the yield for a Treasury bill. + * + * @param mixed settlement The Treasury bill's settlement date. + * The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer. + * @param mixed maturity The Treasury bill's maturity date. + * The maturity date is the date when the Treasury bill expires. + * @param int discount The Treasury bill's discount rate. + * @return float + */ + public static function TBILLPRICE($settlement, $maturity, $discount) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $discount = PHPExcel_Calculation_Functions::flattenSingleValue($discount); + + if (is_string($maturity = PHPExcel_Calculation_DateTime::_getDateValue($maturity))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // Validate + if (is_numeric($discount)) { + if ($discount <= 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + ++$maturity; + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity) * 360; + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + } else { + $daysBetweenSettlementAndMaturity = (PHPExcel_Calculation_DateTime::_getDateValue($maturity) - PHPExcel_Calculation_DateTime::_getDateValue($settlement)); + } + + if ($daysBetweenSettlementAndMaturity > 360) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $price = 100 * (1 - (($discount * $daysBetweenSettlementAndMaturity) / 360)); + if ($price <= 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return $price; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function TBILLPRICE() + + + /** + * TBILLYIELD + * + * Returns the yield for a Treasury bill. + * + * @param mixed settlement The Treasury bill's settlement date. + * The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer. + * @param mixed maturity The Treasury bill's maturity date. + * The maturity date is the date when the Treasury bill expires. + * @param int price The Treasury bill's price per $100 face value. + * @return float + */ + public static function TBILLYIELD($settlement, $maturity, $price) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $price = PHPExcel_Calculation_Functions::flattenSingleValue($price); + + // Validate + if (is_numeric($price)) { + if ($price <= 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + ++$maturity; + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity) * 360; + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + } else { + $daysBetweenSettlementAndMaturity = (PHPExcel_Calculation_DateTime::_getDateValue($maturity) - PHPExcel_Calculation_DateTime::_getDateValue($settlement)); + } + + if ($daysBetweenSettlementAndMaturity > 360) { + return PHPExcel_Calculation_Functions::NaN(); + } + + return ((100 - $price) / $price) * (360 / $daysBetweenSettlementAndMaturity); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function TBILLYIELD() + + + public static function XIRR($values, $dates, $guess = 0.1) { + if ((!is_array($values)) && (!is_array($dates))) return PHPExcel_Calculation_Functions::VALUE(); + $values = PHPExcel_Calculation_Functions::flattenArray($values); + $dates = PHPExcel_Calculation_Functions::flattenArray($dates); + $guess = PHPExcel_Calculation_Functions::flattenSingleValue($guess); + if (count($values) != count($dates)) return PHPExcel_Calculation_Functions::NaN(); + + // create an initial range, with a root somewhere between 0 and guess + $x1 = 0.0; + $x2 = $guess; + $f1 = self::XNPV($x1, $values, $dates); + $f2 = self::XNPV($x2, $values, $dates); + for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { + if (($f1 * $f2) < 0.0) break; + if (abs($f1) < abs($f2)) { + $f1 = self::XNPV($x1 += 1.6 * ($x1 - $x2), $values, $dates); + } else { + $f2 = self::XNPV($x2 += 1.6 * ($x2 - $x1), $values, $dates); + } + } + if (($f1 * $f2) > 0.0) return PHPExcel_Calculation_Functions::VALUE(); + + $f = self::XNPV($x1, $values, $dates); + if ($f < 0.0) { + $rtb = $x1; + $dx = $x2 - $x1; + } else { + $rtb = $x2; + $dx = $x1 - $x2; + } + + for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { + $dx *= 0.5; + $x_mid = $rtb + $dx; + $f_mid = self::XNPV($x_mid, $values, $dates); + if ($f_mid <= 0.0) $rtb = $x_mid; + if ((abs($f_mid) < FINANCIAL_PRECISION) || (abs($dx) < FINANCIAL_PRECISION)) return $x_mid; + } + return PHPExcel_Calculation_Functions::VALUE(); + } + + + /** + * XNPV + * + * Returns the net present value for a schedule of cash flows that is not necessarily periodic. + * To calculate the net present value for a series of cash flows that is periodic, use the NPV function. + * + * Excel Function: + * =XNPV(rate,values,dates) + * + * @param float $rate The discount rate to apply to the cash flows. + * @param array of float $values A series of cash flows that corresponds to a schedule of payments in dates. The first payment is optional and corresponds to a cost or payment that occurs at the beginning of the investment. If the first value is a cost or payment, it must be a negative value. All succeeding payments are discounted based on a 365-day year. The series of values must contain at least one positive value and one negative value. + * @param array of mixed $dates A schedule of payment dates that corresponds to the cash flow payments. The first payment date indicates the beginning of the schedule of payments. All other dates must be later than this date, but they may occur in any order. + * @return float + */ + public static function XNPV($rate, $values, $dates) { + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + if (!is_numeric($rate)) return PHPExcel_Calculation_Functions::VALUE(); + if ((!is_array($values)) || (!is_array($dates))) return PHPExcel_Calculation_Functions::VALUE(); + $values = PHPExcel_Calculation_Functions::flattenArray($values); + $dates = PHPExcel_Calculation_Functions::flattenArray($dates); + $valCount = count($values); + if ($valCount != count($dates)) return PHPExcel_Calculation_Functions::NaN(); + if ((min($values) > 0) || (max($values) < 0)) return PHPExcel_Calculation_Functions::VALUE(); + + $xnpv = 0.0; + for ($i = 0; $i < $valCount; ++$i) { + if (!is_numeric($values[$i])) return PHPExcel_Calculation_Functions::VALUE(); + $xnpv += $values[$i] / pow(1 + $rate, PHPExcel_Calculation_DateTime::DATEDIF($dates[0],$dates[$i],'d') / 365); + } + return (is_finite($xnpv)) ? $xnpv : PHPExcel_Calculation_Functions::VALUE(); + } // function XNPV() + + + /** + * YIELDDISC + * + * Returns the annual yield of a security that pays interest at maturity. + * + * @param mixed settlement The security's settlement date. + * The security's settlement date is the date after the issue date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param int price The security's price per $100 face value. + * @param int redemption The security's redemption value per $100 face value. + * @param int basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function YIELDDISC($settlement, $maturity, $price, $redemption, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $price = PHPExcel_Calculation_Functions::flattenSingleValue($price); + $redemption = PHPExcel_Calculation_Functions::flattenSingleValue($redemption); + $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if (is_numeric($price) && is_numeric($redemption)) { + if (($price <= 0) || ($redemption <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysPerYear = self::_daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement),$basis); + if (!is_numeric($daysPerYear)) { + return $daysPerYear; + } + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity,$basis); + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + $daysBetweenSettlementAndMaturity *= $daysPerYear; + + return (($redemption - $price) / $price) * ($daysPerYear / $daysBetweenSettlementAndMaturity); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function YIELDDISC() + + + /** + * YIELDMAT + * + * Returns the annual yield of a security that pays interest at maturity. + * + * @param mixed settlement The security's settlement date. + * The security's settlement date is the date after the issue date when the security is traded to the buyer. + * @param mixed maturity The security's maturity date. + * The maturity date is the date when the security expires. + * @param mixed issue The security's issue date. + * @param int rate The security's interest rate at date of issue. + * @param int price The security's price per $100 face value. + * @param int basis The type of day count to use. + * 0 or omitted US (NASD) 30/360 + * 1 Actual/actual + * 2 Actual/360 + * 3 Actual/365 + * 4 European 30/360 + * @return float + */ + public static function YIELDMAT($settlement, $maturity, $issue, $rate, $price, $basis=0) { + $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); + $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); + $issue = PHPExcel_Calculation_Functions::flattenSingleValue($issue); + $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); + $price = PHPExcel_Calculation_Functions::flattenSingleValue($price); + $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); + + // Validate + if (is_numeric($rate) && is_numeric($price)) { + if (($rate <= 0) || ($price <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $daysPerYear = self::_daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement),$basis); + if (!is_numeric($daysPerYear)) { + return $daysPerYear; + } + $daysBetweenIssueAndSettlement = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $settlement, $basis); + if (!is_numeric($daysBetweenIssueAndSettlement)) { + // return date error + return $daysBetweenIssueAndSettlement; + } + $daysBetweenIssueAndSettlement *= $daysPerYear; + $daysBetweenIssueAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $maturity, $basis); + if (!is_numeric($daysBetweenIssueAndMaturity)) { + // return date error + return $daysBetweenIssueAndMaturity; + } + $daysBetweenIssueAndMaturity *= $daysPerYear; + $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); + if (!is_numeric($daysBetweenSettlementAndMaturity)) { + // return date error + return $daysBetweenSettlementAndMaturity; + } + $daysBetweenSettlementAndMaturity *= $daysPerYear; + + return ((1 + (($daysBetweenIssueAndMaturity / $daysPerYear) * $rate) - (($price / 100) + (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate))) / + (($price / 100) + (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate))) * + ($daysPerYear / $daysBetweenSettlementAndMaturity); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function YIELDMAT() + +} // class PHPExcel_Calculation_Financial diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/FormulaParser.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/FormulaParser.php new file mode 100755 index 0000000..7318a5b --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/FormulaParser.php @@ -0,0 +1,614 @@ +<"; + const OPERATORS_POSTFIX = "%"; + + /** + * Formula + * + * @var string + */ + private $_formula; + + /** + * Tokens + * + * @var PHPExcel_Calculation_FormulaToken[] + */ + private $_tokens = array(); + + /** + * Create a new PHPExcel_Calculation_FormulaParser + * + * @param string $pFormula Formula to parse + * @throws Exception + */ + public function __construct($pFormula = '') + { + // Check parameters + if (is_null($pFormula)) { + throw new Exception("Invalid parameter passed: formula"); + } + + // Initialise values + $this->_formula = trim($pFormula); + // Parse! + $this->_parseToTokens(); + } + + /** + * Get Formula + * + * @return string + */ + public function getFormula() { + return $this->_formula; + } + + /** + * Get Token + * + * @param int $pId Token id + * @return string + * @throws Exception + */ + public function getToken($pId = 0) { + if (isset($this->_tokens[$pId])) { + return $this->_tokens[$pId]; + } else { + throw new Exception("Token with id $pId does not exist."); + } + } + + /** + * Get Token count + * + * @return string + */ + public function getTokenCount() { + return count($this->_tokens); + } + + /** + * Get Tokens + * + * @return PHPExcel_Calculation_FormulaToken[] + */ + public function getTokens() { + return $this->_tokens; + } + + /** + * Parse to tokens + */ + private function _parseToTokens() { + // No attempt is made to verify formulas; assumes formulas are derived from Excel, where + // they can only exist if valid; stack overflows/underflows sunk as nulls without exceptions. + + // Check if the formula has a valid starting = + $formulaLength = strlen($this->_formula); + if ($formulaLength < 2 || $this->_formula{0} != '=') return; + + // Helper variables + $tokens1 = $tokens2 = $stack = array(); + $inString = $inPath = $inRange = $inError = false; + $token = $previousToken = $nextToken = null; + + $index = 1; + $value = ''; + + $ERRORS = array("#NULL!", "#DIV/0!", "#VALUE!", "#REF!", "#NAME?", "#NUM!", "#N/A"); + $COMPARATORS_MULTI = array(">=", "<=", "<>"); + + while ($index < $formulaLength) { + // state-dependent character evaluation (order is important) + + // double-quoted strings + // embeds are doubled + // end marks token + if ($inString) { + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::QUOTE_DOUBLE) { + if ((($index + 2) <= $formulaLength) && ($this->_formula{$index + 1} == PHPExcel_Calculation_FormulaParser::QUOTE_DOUBLE)) { + $value .= PHPExcel_Calculation_FormulaParser::QUOTE_DOUBLE; + ++$index; + } else { + $inString = false; + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_TEXT); + $value = ""; + } + } else { + $value .= $this->_formula{$index}; + } + ++$index; + continue; + } + + // single-quoted strings (links) + // embeds are double + // end does not mark a token + if ($inPath) { + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::QUOTE_SINGLE) { + if ((($index + 2) <= $formulaLength) && ($this->_formula{$index + 1} == PHPExcel_Calculation_FormulaParser::QUOTE_SINGLE)) { + $value .= PHPExcel_Calculation_FormulaParser::QUOTE_SINGLE; + ++$index; + } else { + $inPath = false; + } + } else { + $value .= $this->_formula{$index}; + } + ++$index; + continue; + } + + // bracked strings (R1C1 range index or linked workbook name) + // no embeds (changed to "()" by Excel) + // end does not mark a token + if ($inRange) { + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::BRACKET_CLOSE) { + $inRange = false; + } + $value .= $this->_formula{$index}; + ++$index; + continue; + } + + // error values + // end marks a token, determined from absolute list of values + if ($inError) { + $value .= $this->_formula{$index}; + ++$index; + if (in_array($value, $ERRORS)) { + $inError = false; + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_ERROR); + $value = ""; + } + continue; + } + + // scientific notation check + if (strpos(PHPExcel_Calculation_FormulaParser::OPERATORS_SN, $this->_formula{$index}) !== false) { + if (strlen($value) > 1) { + if (preg_match("/^[1-9]{1}(\.[0-9]+)?E{1}$/", $this->_formula{$index}) != 0) { + $value .= $this->_formula{$index}; + ++$index; + continue; + } + } + } + + // independent character evaluation (order not important) + + // establish state-dependent character evaluations + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::QUOTE_DOUBLE) { + if (strlen($value > 0)) { // unexpected + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN); + $value = ""; + } + $inString = true; + ++$index; + continue; + } + + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::QUOTE_SINGLE) { + if (strlen($value) > 0) { // unexpected + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN); + $value = ""; + } + $inPath = true; + ++$index; + continue; + } + + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::BRACKET_OPEN) { + $inRange = true; + $value .= PHPExcel_Calculation_FormulaParser::BRACKET_OPEN; + ++$index; + continue; + } + + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::ERROR_START) { + if (strlen($value) > 0) { // unexpected + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN); + $value = ""; + } + $inError = true; + $value .= PHPExcel_Calculation_FormulaParser::ERROR_START; + ++$index; + continue; + } + + // mark start and end of arrays and array rows + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::BRACE_OPEN) { + if (strlen($value) > 0) { // unexpected + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN); + $value = ""; + } + + $tmp = new PHPExcel_Calculation_FormulaToken("ARRAY", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); + $tokens1[] = $tmp; + $stack[] = clone $tmp; + + $tmp = new PHPExcel_Calculation_FormulaToken("ARRAYROW", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); + $tokens1[] = $tmp; + $stack[] = clone $tmp; + + ++$index; + continue; + } + + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::SEMICOLON) { + if (strlen($value) > 0) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + $value = ""; + } + + $tmp = array_pop($stack); + $tmp->setValue(""); + $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); + $tokens1[] = $tmp; + + $tmp = new PHPExcel_Calculation_FormulaToken(",", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_ARGUMENT); + $tokens1[] = $tmp; + + $tmp = new PHPExcel_Calculation_FormulaToken("ARRAYROW", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); + $tokens1[] = $tmp; + $stack[] = clone $tmp; + + ++$index; + continue; + } + + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::BRACE_CLOSE) { + if (strlen($value) > 0) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + $value = ""; + } + + $tmp = array_pop($stack); + $tmp->setValue(""); + $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); + $tokens1[] = $tmp; + + $tmp = array_pop($stack); + $tmp->setValue(""); + $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); + $tokens1[] = $tmp; + + ++$index; + continue; + } + + // trim white-space + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::WHITESPACE) { + if (strlen($value) > 0) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + $value = ""; + } + $tokens1[] = new PHPExcel_Calculation_FormulaToken("", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_WHITESPACE); + ++$index; + while (($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::WHITESPACE) && ($index < $formulaLength)) { + ++$index; + } + continue; + } + + // multi-character comparators + if (($index + 2) <= $formulaLength) { + if (in_array(substr($this->_formula, $index, 2), $COMPARATORS_MULTI)) { + if (strlen($value) > 0) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + $value = ""; + } + $tokens1[] = new PHPExcel_Calculation_FormulaToken(substr($this->_formula, $index, 2), PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_LOGICAL); + $index += 2; + continue; + } + } + + // standard infix operators + if (strpos(PHPExcel_Calculation_FormulaParser::OPERATORS_INFIX, $this->_formula{$index}) !== false) { + if (strlen($value) > 0) { + $tokens1[] =new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + $value = ""; + } + $tokens1[] = new PHPExcel_Calculation_FormulaToken($this->_formula{$index}, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX); + ++$index; + continue; + } + + // standard postfix operators (only one) + if (strpos(PHPExcel_Calculation_FormulaParser::OPERATORS_POSTFIX, $this->_formula{$index}) !== false) { + if (strlen($value) > 0) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + $value = ""; + } + $tokens1[] = new PHPExcel_Calculation_FormulaToken($this->_formula{$index}, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX); + ++$index; + continue; + } + + // start subexpression or function + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::PAREN_OPEN) { + if (strlen($value) > 0) { + $tmp = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); + $tokens1[] = $tmp; + $stack[] = clone $tmp; + $value = ""; + } else { + $tmp = new PHPExcel_Calculation_FormulaToken("", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); + $tokens1[] = $tmp; + $stack[] = clone $tmp; + } + ++$index; + continue; + } + + // function, subexpression, or array parameters, or operand unions + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::COMMA) { + if (strlen($value) > 0) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + $value = ""; + } + + $tmp = array_pop($stack); + $tmp->setValue(""); + $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); + $stack[] = $tmp; + + if ($tmp->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken(",", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_UNION); + } else { + $tokens1[] = new PHPExcel_Calculation_FormulaToken(",", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_ARGUMENT); + } + ++$index; + continue; + } + + // stop subexpression + if ($this->_formula{$index} == PHPExcel_Calculation_FormulaParser::PAREN_CLOSE) { + if (strlen($value) > 0) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + $value = ""; + } + + $tmp = array_pop($stack); + $tmp->setValue(""); + $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); + $tokens1[] = $tmp; + + ++$index; + continue; + } + + // token accumulation + $value .= $this->_formula{$index}; + ++$index; + } + + // dump remaining accumulation + if (strlen($value) > 0) { + $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); + } + + // move tokenList to new set, excluding unnecessary white-space tokens and converting necessary ones to intersections + $tokenCount = count($tokens1); + for ($i = 0; $i < $tokenCount; ++$i) { + $token = $tokens1[$i]; + if (isset($tokens1[$i - 1])) { + $previousToken = $tokens1[$i - 1]; + } else { + $previousToken = null; + } + if (isset($tokens1[$i + 1])) { + $nextToken = $tokens1[$i + 1]; + } else { + $nextToken = null; + } + + if (is_null($token)) { + continue; + } + + if ($token->getTokenType() != PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_WHITESPACE) { + $tokens2[] = $token; + continue; + } + + if (is_null($previousToken)) { + continue; + } + + if (! ( + (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) && ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || + (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || + ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND) + ) ) { + continue; + } + + if (is_null($nextToken)) { + continue; + } + + if (! ( + (($nextToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) && ($nextToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START)) || + (($nextToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($nextToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START)) || + ($nextToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND) + ) ) { + continue; + } + + $tokens2[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_INTERSECTION); + } + + // move tokens to final list, switching infix "-" operators to prefix when appropriate, switching infix "+" operators + // to noop when appropriate, identifying operand and infix-operator subtypes, and pulling "@" from function names + $this->_tokens = array(); + + $tokenCount = count($tokens2); + for ($i = 0; $i < $tokenCount; ++$i) { + $token = $tokens2[$i]; + if (isset($tokens2[$i - 1])) { + $previousToken = $tokens2[$i - 1]; + } else { + $previousToken = null; + } + if (isset($tokens2[$i + 1])) { + $nextToken = $tokens2[$i + 1]; + } else { + $nextToken = null; + } + + if (is_null($token)) { + continue; + } + + if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX && $token->getValue() == "-") { + if ($i == 0) { + $token->setTokenType(PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPREFIX); + } else if ( + (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) && ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || + (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || + ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX) || + ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND) + ) { + $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_MATH); + } else { + $token->setTokenType(PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPREFIX); + } + + $this->_tokens[] = $token; + continue; + } + + if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX && $token->getValue() == "+") { + if ($i == 0) { + continue; + } else if ( + (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) && ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || + (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || + ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX) || + ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND) + ) { + $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_MATH); + } else { + continue; + } + + $this->_tokens[] = $token; + continue; + } + + if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX && $token->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_NOTHING) { + if (strpos("<>=", substr($token->getValue(), 0, 1)) !== false) { + $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_LOGICAL); + } else if ($token->getValue() == "&") { + $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_CONCATENATION); + } else { + $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_MATH); + } + + $this->_tokens[] = $token; + continue; + } + + if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND && $token->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_NOTHING) { + if (!is_numeric($token->getValue())) { + if (strtoupper($token->getValue()) == "TRUE" || strtoupper($token->getValue() == "FALSE")) { + $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_LOGICAL); + } else { + $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_RANGE); + } + } else { + $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_NUMBER); + } + + $this->_tokens[] = $token; + continue; + } + + if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) { + if (strlen($token->getValue() > 0)) { + if (substr($token->getValue(), 0, 1) == "@") { + $token->setValue(substr($token->getValue(), 1)); + } + } + } + + $this->_tokens[] = $token; + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/FormulaToken.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/FormulaToken.php new file mode 100755 index 0000000..b8a2571 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/FormulaToken.php @@ -0,0 +1,176 @@ +_value = $pValue; + $this->_tokenType = $pTokenType; + $this->_tokenSubType = $pTokenSubType; + } + + /** + * Get Value + * + * @return string + */ + public function getValue() { + return $this->_value; + } + + /** + * Set Value + * + * @param string $value + */ + public function setValue($value) { + $this->_value = $value; + } + + /** + * Get Token Type (represented by TOKEN_TYPE_*) + * + * @return string + */ + public function getTokenType() { + return $this->_tokenType; + } + + /** + * Set Token Type + * + * @param string $value + */ + public function setTokenType($value = PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN) { + $this->_tokenType = $value; + } + + /** + * Get Token SubType (represented by TOKEN_SUBTYPE_*) + * + * @return string + */ + public function getTokenSubType() { + return $this->_tokenSubType; + } + + /** + * Set Token SubType + * + * @param string $value + */ + public function setTokenSubType($value = PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_NOTHING) { + $this->_tokenSubType = $value; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/Function.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/Function.php new file mode 100755 index 0000000..88f8c3b --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/Function.php @@ -0,0 +1,149 @@ +_category = $pCategory; + $this->_excelName = $pExcelName; + $this->_phpExcelName = $pPHPExcelName; + } else { + throw new Exception("Invalid parameters passed."); + } + } + + /** + * Get Category (represented by CATEGORY_*) + * + * @return string + */ + public function getCategory() { + return $this->_category; + } + + /** + * Set Category (represented by CATEGORY_*) + * + * @param string $value + * @throws Exception + */ + public function setCategory($value = null) { + if (!is_null($value)) { + $this->_category = $value; + } else { + throw new Exception("Invalid parameter passed."); + } + } + + /** + * Get Excel name + * + * @return string + */ + public function getExcelName() { + return $this->_excelName; + } + + /** + * Set Excel name + * + * @param string $value + */ + public function setExcelName($value) { + $this->_excelName = $value; + } + + /** + * Get PHPExcel name + * + * @return string + */ + public function getPHPExcelName() { + return $this->_phpExcelName; + } + + /** + * Set PHPExcel name + * + * @param string $value + */ + public function setPHPExcelName($value) { + $this->_phpExcelName = $value; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/Functions.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/Functions.php new file mode 100755 index 0000000..e0a5629 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/Functions.php @@ -0,0 +1,813 @@ + '#NULL!', + 'divisionbyzero' => '#DIV/0!', + 'value' => '#VALUE!', + 'reference' => '#REF!', + 'name' => '#NAME?', + 'num' => '#NUM!', + 'na' => '#N/A', + 'gettingdata' => '#GETTING_DATA' + ); + + + /** + * Set the Compatibility Mode + * + * @access public + * @category Function Configuration + * @param string $compatibilityMode Compatibility Mode + * Permitted values are: + * PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL 'Excel' + * PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC 'Gnumeric' + * PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE 'OpenOfficeCalc' + * @return boolean (Success or Failure) + */ + public static function setCompatibilityMode($compatibilityMode) { + if (($compatibilityMode == self::COMPATIBILITY_EXCEL) || + ($compatibilityMode == self::COMPATIBILITY_GNUMERIC) || + ($compatibilityMode == self::COMPATIBILITY_OPENOFFICE)) { + self::$compatibilityMode = $compatibilityMode; + return True; + } + return False; + } // function setCompatibilityMode() + + + /** + * Return the current Compatibility Mode + * + * @access public + * @category Function Configuration + * @return string Compatibility Mode + * Possible Return values are: + * PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL 'Excel' + * PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC 'Gnumeric' + * PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE 'OpenOfficeCalc' + */ + public static function getCompatibilityMode() { + return self::$compatibilityMode; + } // function getCompatibilityMode() + + + /** + * Set the Return Date Format used by functions that return a date/time (Excel, PHP Serialized Numeric or PHP Object) + * + * @access public + * @category Function Configuration + * @param string $returnDateType Return Date Format + * Permitted values are: + * PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC 'P' + * PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT 'O' + * PHPExcel_Calculation_Functions::RETURNDATE_EXCEL 'E' + * @return boolean Success or failure + */ + public static function setReturnDateType($returnDateType) { + if (($returnDateType == self::RETURNDATE_PHP_NUMERIC) || + ($returnDateType == self::RETURNDATE_PHP_OBJECT) || + ($returnDateType == self::RETURNDATE_EXCEL)) { + self::$ReturnDateType = $returnDateType; + return True; + } + return False; + } // function setReturnDateType() + + + /** + * Return the current Return Date Format for functions that return a date/time (Excel, PHP Serialized Numeric or PHP Object) + * + * @access public + * @category Function Configuration + * @return string Return Date Format + * Possible Return values are: + * PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC 'P' + * PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT 'O' + * PHPExcel_Calculation_Functions::RETURNDATE_EXCEL 'E' + */ + public static function getReturnDateType() { + return self::$ReturnDateType; + } // function getReturnDateType() + + + /** + * DUMMY + * + * @access public + * @category Error Returns + * @return string #Not Yet Implemented + */ + public static function DUMMY() { + return '#Not Yet Implemented'; + } // function DUMMY() + + + /** + * DIV0 + * + * @access public + * @category Error Returns + * @return string #Not Yet Implemented + */ + public static function DIV0() { + return self::$_errorCodes['divisionbyzero']; + } // function DIV0() + + + /** + * NA + * + * Excel Function: + * =NA() + * + * Returns the error value #N/A + * #N/A is the error value that means "no value is available." + * + * @access public + * @category Logical Functions + * @return string #N/A! + */ + public static function NA() { + return self::$_errorCodes['na']; + } // function NA() + + + /** + * NaN + * + * Returns the error value #NUM! + * + * @access public + * @category Error Returns + * @return string #NUM! + */ + public static function NaN() { + return self::$_errorCodes['num']; + } // function NaN() + + + /** + * NAME + * + * Returns the error value #NAME? + * + * @access public + * @category Error Returns + * @return string #NAME? + */ + public static function NAME() { + return self::$_errorCodes['name']; + } // function NAME() + + + /** + * REF + * + * Returns the error value #REF! + * + * @access public + * @category Error Returns + * @return string #REF! + */ + public static function REF() { + return self::$_errorCodes['reference']; + } // function REF() + + + /** + * NULL + * + * Returns the error value #NULL! + * + * @access public + * @category Error Returns + * @return string #REF! + */ + public static function NULL() { + return self::$_errorCodes['null']; + } // function NULL() + + + /** + * VALUE + * + * Returns the error value #VALUE! + * + * @access public + * @category Error Returns + * @return string #VALUE! + */ + public static function VALUE() { + return self::$_errorCodes['value']; + } // function VALUE() + + + public static function isMatrixValue($idx) { + return ((substr_count($idx,'.') <= 1) || (preg_match('/\.[A-Z]/',$idx) > 0)); + } + + + public static function isValue($idx) { + return (substr_count($idx,'.') == 0); + } + + + public static function isCellValue($idx) { + return (substr_count($idx,'.') > 1); + } + + + public static function _ifCondition($condition) { + $condition = PHPExcel_Calculation_Functions::flattenSingleValue($condition); + if (!in_array($condition{0},array('>', '<', '='))) { + if (!is_numeric($condition)) { $condition = PHPExcel_Calculation::_wrapResult(strtoupper($condition)); } + return '='.$condition; + } else { + preg_match('/([<>=]+)(.*)/',$condition,$matches); + list(,$operator,$operand) = $matches; + if (!is_numeric($operand)) { $operand = PHPExcel_Calculation::_wrapResult(strtoupper($operand)); } + return $operator.$operand; + } + } // function _ifCondition() + + + /** + * ERROR_TYPE + * + * @param mixed $value Value to check + * @return boolean + */ + public static function ERROR_TYPE($value = '') { + $value = self::flattenSingleValue($value); + + $i = 1; + foreach(self::$_errorCodes as $errorCode) { + if ($value === $errorCode) { + return $i; + } + ++$i; + } + return self::NA(); + } // function ERROR_TYPE() + + + /** + * IS_BLANK + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_BLANK($value = NULL) { + if (!is_null($value)) { + $value = self::flattenSingleValue($value); + } + + return is_null($value); + } // function IS_BLANK() + + + /** + * IS_ERR + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_ERR($value = '') { + $value = self::flattenSingleValue($value); + + return self::IS_ERROR($value) && (!self::IS_NA($value)); + } // function IS_ERR() + + + /** + * IS_ERROR + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_ERROR($value = '') { + $value = self::flattenSingleValue($value); + + if (!is_string($value)) + return false; + return in_array($value, array_values(self::$_errorCodes)); + } // function IS_ERROR() + + + /** + * IS_NA + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_NA($value = '') { + $value = self::flattenSingleValue($value); + + return ($value === self::NA()); + } // function IS_NA() + + + /** + * IS_EVEN + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_EVEN($value = NULL) { + $value = self::flattenSingleValue($value); + + if ($value === NULL) + return self::NAME(); + if ((is_bool($value)) || ((is_string($value)) && (!is_numeric($value)))) + return self::VALUE(); + return ($value % 2 == 0); + } // function IS_EVEN() + + + /** + * IS_ODD + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_ODD($value = NULL) { + $value = self::flattenSingleValue($value); + + if ($value === NULL) + return self::NAME(); + if ((is_bool($value)) || ((is_string($value)) && (!is_numeric($value)))) + return self::VALUE(); + return (abs($value) % 2 == 1); + } // function IS_ODD() + + + /** + * IS_NUMBER + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_NUMBER($value = NULL) { + $value = self::flattenSingleValue($value); + + if (is_string($value)) { + return False; + } + return is_numeric($value); + } // function IS_NUMBER() + + + /** + * IS_LOGICAL + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_LOGICAL($value = NULL) { + $value = self::flattenSingleValue($value); + + return is_bool($value); + } // function IS_LOGICAL() + + + /** + * IS_TEXT + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_TEXT($value = NULL) { + $value = self::flattenSingleValue($value); + + return (is_string($value) && !self::IS_ERROR($value)); + } // function IS_TEXT() + + + /** + * IS_NONTEXT + * + * @param mixed $value Value to check + * @return boolean + */ + public static function IS_NONTEXT($value = NULL) { + return !self::IS_TEXT($value); + } // function IS_NONTEXT() + + + /** + * VERSION + * + * @return string Version information + */ + public static function VERSION() { + return 'PHPExcel 1.7.8, 2012-10-12'; + } // function VERSION() + + + /** + * N + * + * Returns a value converted to a number + * + * @param value The value you want converted + * @return number N converts values listed in the following table + * If value is or refers to N returns + * A number That number + * A date The serial number of that date + * TRUE 1 + * FALSE 0 + * An error value The error value + * Anything else 0 + */ + public static function N($value = NULL) { + while (is_array($value)) { + $value = array_shift($value); + } + + switch (gettype($value)) { + case 'double' : + case 'float' : + case 'integer' : + return $value; + break; + case 'boolean' : + return (integer) $value; + break; + case 'string' : + // Errors + if ((strlen($value) > 0) && ($value{0} == '#')) { + return $value; + } + break; + } + return 0; + } // function N() + + + /** + * TYPE + * + * Returns a number that identifies the type of a value + * + * @param value The value you want tested + * @return number N converts values listed in the following table + * If value is or refers to N returns + * A number 1 + * Text 2 + * Logical Value 4 + * An error value 16 + * Array or Matrix 64 + */ + public static function TYPE($value = NULL) { + $value = self::flattenArrayIndexed($value); + if (is_array($value) && (count($value) > 1)) { + $a = array_keys($value); + $a = array_pop($a); + // Range of cells is an error + if (self::isCellValue($a)) { + return 16; + // Test for Matrix + } elseif (self::isMatrixValue($a)) { + return 64; + } + } elseif(empty($value)) { + // Empty Cell + return 1; + } + $value = self::flattenSingleValue($value); + + if (($value === NULL) || (is_float($value)) || (is_int($value))) { + return 1; + } elseif(is_bool($value)) { + return 4; + } elseif(is_array($value)) { + return 64; + break; + } elseif(is_string($value)) { + // Errors + if ((strlen($value) > 0) && ($value{0} == '#')) { + return 16; + } + return 2; + } + return 0; + } // function TYPE() + + + /** + * Convert a multi-dimensional array to a simple 1-dimensional array + * + * @param array $array Array to be flattened + * @return array Flattened array + */ + public static function flattenArray($array) { + if (!is_array($array)) { + return (array) $array; + } + + $arrayValues = array(); + foreach ($array as $value) { + if (is_array($value)) { + foreach ($value as $val) { + if (is_array($val)) { + foreach ($val as $v) { + $arrayValues[] = $v; + } + } else { + $arrayValues[] = $val; + } + } + } else { + $arrayValues[] = $value; + } + } + + return $arrayValues; + } // function flattenArray() + + + /** + * Convert a multi-dimensional array to a simple 1-dimensional array, but retain an element of indexing + * + * @param array $array Array to be flattened + * @return array Flattened array + */ + public static function flattenArrayIndexed($array) { + if (!is_array($array)) { + return (array) $array; + } + + $arrayValues = array(); + foreach ($array as $k1 => $value) { + if (is_array($value)) { + foreach ($value as $k2 => $val) { + if (is_array($val)) { + foreach ($val as $k3 => $v) { + $arrayValues[$k1.'.'.$k2.'.'.$k3] = $v; + } + } else { + $arrayValues[$k1.'.'.$k2] = $val; + } + } + } else { + $arrayValues[$k1] = $value; + } + } + + return $arrayValues; + } // function flattenArrayIndexed() + + + /** + * Convert an array to a single scalar value by extracting the first element + * + * @param mixed $value Array or scalar value + * @return mixed + */ + public static function flattenSingleValue($value = '') { + while (is_array($value)) { + $value = array_pop($value); + } + + return $value; + } // function flattenSingleValue() + +} // class PHPExcel_Calculation_Functions + + +// +// There are a few mathematical functions that aren't available on all versions of PHP for all platforms +// These functions aren't available in Windows implementations of PHP prior to version 5.3.0 +// So we test if they do exist for this version of PHP/operating platform; and if not we create them +// +if (!function_exists('acosh')) { + function acosh($x) { + return 2 * log(sqrt(($x + 1) / 2) + sqrt(($x - 1) / 2)); + } // function acosh() +} + +if (!function_exists('asinh')) { + function asinh($x) { + return log($x + sqrt(1 + $x * $x)); + } // function asinh() +} + +if (!function_exists('atanh')) { + function atanh($x) { + return (log(1 + $x) - log(1 - $x)) / 2; + } // function atanh() +} + +if (!function_exists('money_format')) { + function money_format($format, $number) { + $regex = array( '/%((?:[\^!\-]|\+|\(|\=.)*)([0-9]+)?(?:#([0-9]+))?', + '(?:\.([0-9]+))?([in%])/' + ); + $regex = implode('', $regex); + if (setlocale(LC_MONETARY, null) == '') { + setlocale(LC_MONETARY, ''); + } + $locale = localeconv(); + $number = floatval($number); + if (!preg_match($regex, $format, $fmatch)) { + trigger_error("No format specified or invalid format", E_USER_WARNING); + return $number; + } + $flags = array( 'fillchar' => preg_match('/\=(.)/', $fmatch[1], $match) ? $match[1] : ' ', + 'nogroup' => preg_match('/\^/', $fmatch[1]) > 0, + 'usesignal' => preg_match('/\+|\(/', $fmatch[1], $match) ? $match[0] : '+', + 'nosimbol' => preg_match('/\!/', $fmatch[1]) > 0, + 'isleft' => preg_match('/\-/', $fmatch[1]) > 0 + ); + $width = trim($fmatch[2]) ? (int)$fmatch[2] : 0; + $left = trim($fmatch[3]) ? (int)$fmatch[3] : 0; + $right = trim($fmatch[4]) ? (int)$fmatch[4] : $locale['int_frac_digits']; + $conversion = $fmatch[5]; + $positive = true; + if ($number < 0) { + $positive = false; + $number *= -1; + } + $letter = $positive ? 'p' : 'n'; + $prefix = $suffix = $cprefix = $csuffix = $signal = ''; + if (!$positive) { + $signal = $locale['negative_sign']; + switch (true) { + case $locale['n_sign_posn'] == 0 || $flags['usesignal'] == '(': + $prefix = '('; + $suffix = ')'; + break; + case $locale['n_sign_posn'] == 1: + $prefix = $signal; + break; + case $locale['n_sign_posn'] == 2: + $suffix = $signal; + break; + case $locale['n_sign_posn'] == 3: + $cprefix = $signal; + break; + case $locale['n_sign_posn'] == 4: + $csuffix = $signal; + break; + } + } + if (!$flags['nosimbol']) { + $currency = $cprefix; + $currency .= ($conversion == 'i' ? $locale['int_curr_symbol'] : $locale['currency_symbol']); + $currency .= $csuffix; + $currency = iconv('ISO-8859-1','UTF-8',$currency); + } else { + $currency = ''; + } + $space = $locale["{$letter}_sep_by_space"] ? ' ' : ''; + + if (!isset($locale['mon_decimal_point']) || empty($locale['mon_decimal_point'])) { + $locale['mon_decimal_point'] = (!isset($locale['decimal_point']) || empty($locale['decimal_point'])) ? + $locale['decimal_point'] : + '.'; + } + + $number = number_format($number, $right, $locale['mon_decimal_point'], $flags['nogroup'] ? '' : $locale['mon_thousands_sep'] ); + $number = explode($locale['mon_decimal_point'], $number); + + $n = strlen($prefix) + strlen($currency); + if ($left > 0 && $left > $n) { + if ($flags['isleft']) { + $number[0] .= str_repeat($flags['fillchar'], $left - $n); + } else { + $number[0] = str_repeat($flags['fillchar'], $left - $n) . $number[0]; + } + } + $number = implode($locale['mon_decimal_point'], $number); + if ($locale["{$letter}_cs_precedes"]) { + $number = $prefix . $currency . $space . $number . $suffix; + } else { + $number = $prefix . $number . $space . $currency . $suffix; + } + if ($width > 0) { + $number = str_pad($number, $width, $flags['fillchar'], $flags['isleft'] ? STR_PAD_RIGHT : STR_PAD_LEFT); + } + $format = str_replace($fmatch[0], $number, $format); + return $format; + } // function money_format() +} + + +// +// Strangely, PHP doesn't have a mb_str_replace multibyte function +// As we'll only ever use this function with UTF-8 characters, we can simply "hard-code" the character set +// +if ((!function_exists('mb_str_replace')) && + (function_exists('mb_substr')) && (function_exists('mb_strlen')) && (function_exists('mb_strpos'))) { + function mb_str_replace($search, $replace, $subject) { + if(is_array($subject)) { + $ret = array(); + foreach($subject as $key => $val) { + $ret[$key] = mb_str_replace($search, $replace, $val); + } + return $ret; + } + + foreach((array) $search as $key => $s) { + if($s == '') { + continue; + } + $r = !is_array($replace) ? $replace : (array_key_exists($key, $replace) ? $replace[$key] : ''); + $pos = mb_strpos($subject, $s, 0, 'UTF-8'); + while($pos !== false) { + $subject = mb_substr($subject, 0, $pos, 'UTF-8') . $r . mb_substr($subject, $pos + mb_strlen($s, 'UTF-8'), 65535, 'UTF-8'); + $pos = mb_strpos($subject, $s, $pos + mb_strlen($r, 'UTF-8'), 'UTF-8'); + } + } + return $subject; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/Logical.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/Logical.php new file mode 100755 index 0000000..80f2a26 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/Logical.php @@ -0,0 +1,288 @@ + $arg) { + // Is it a boolean value? + if (is_bool($arg)) { + $returnValue = $returnValue && $arg; + } elseif ((is_numeric($arg)) && (!is_string($arg))) { + $returnValue = $returnValue && ($arg != 0); + } elseif (is_string($arg)) { + $arg = strtoupper($arg); + if (($arg == 'TRUE') || ($arg == PHPExcel_Calculation::getTRUE())) { + $arg = TRUE; + } elseif (($arg == 'FALSE') || ($arg == PHPExcel_Calculation::getFALSE())) { + $arg = FALSE; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + $returnValue = $returnValue && ($arg != 0); + } + } + + // Return + if ($argCount < 0) { + return PHPExcel_Calculation_Functions::VALUE(); + } + return $returnValue; + } // function LOGICAL_AND() + + + /** + * LOGICAL_OR + * + * Returns boolean TRUE if any argument is TRUE; returns FALSE if all arguments are FALSE. + * + * Excel Function: + * =OR(logical1[,logical2[, ...]]) + * + * The arguments must evaluate to logical values such as TRUE or FALSE, or the arguments must be arrays + * or references that contain logical values. + * + * Boolean arguments are treated as True or False as appropriate + * Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False + * If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds + * the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value + * + * @access public + * @category Logical Functions + * @param mixed $arg,... Data values + * @return boolean The logical OR of the arguments. + */ + public static function LOGICAL_OR() { + // Return value + $returnValue = FALSE; + + // Loop through the arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + $argCount = -1; + foreach ($aArgs as $argCount => $arg) { + // Is it a boolean value? + if (is_bool($arg)) { + $returnValue = $returnValue || $arg; + } elseif ((is_numeric($arg)) && (!is_string($arg))) { + $returnValue = $returnValue || ($arg != 0); + } elseif (is_string($arg)) { + $arg = strtoupper($arg); + if (($arg == 'TRUE') || ($arg == PHPExcel_Calculation::getTRUE())) { + $arg = TRUE; + } elseif (($arg == 'FALSE') || ($arg == PHPExcel_Calculation::getFALSE())) { + $arg = FALSE; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + $returnValue = $returnValue || ($arg != 0); + } + } + + // Return + if ($argCount < 0) { + return PHPExcel_Calculation_Functions::VALUE(); + } + return $returnValue; + } // function LOGICAL_OR() + + + /** + * NOT + * + * Returns the boolean inverse of the argument. + * + * Excel Function: + * =NOT(logical) + * + * The argument must evaluate to a logical value such as TRUE or FALSE + * + * Boolean arguments are treated as True or False as appropriate + * Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False + * If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds + * the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value + * + * @access public + * @category Logical Functions + * @param mixed $logical A value or expression that can be evaluated to TRUE or FALSE + * @return boolean The boolean inverse of the argument. + */ + public static function NOT($logical=FALSE) { + $logical = PHPExcel_Calculation_Functions::flattenSingleValue($logical); + if (is_string($logical)) { + $logical = strtoupper($logical); + if (($logical == 'TRUE') || ($logical == PHPExcel_Calculation::getTRUE())) { + return FALSE; + } elseif (($logical == 'FALSE') || ($logical == PHPExcel_Calculation::getFALSE())) { + return TRUE; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + + return !$logical; + } // function NOT() + + /** + * STATEMENT_IF + * + * Returns one value if a condition you specify evaluates to TRUE and another value if it evaluates to FALSE. + * + * Excel Function: + * =IF(condition[,returnIfTrue[,returnIfFalse]]) + * + * Condition is any value or expression that can be evaluated to TRUE or FALSE. + * For example, A10=100 is a logical expression; if the value in cell A10 is equal to 100, + * the expression evaluates to TRUE. Otherwise, the expression evaluates to FALSE. + * This argument can use any comparison calculation operator. + * ReturnIfTrue is the value that is returned if condition evaluates to TRUE. + * For example, if this argument is the text string "Within budget" and the condition argument evaluates to TRUE, + * then the IF function returns the text "Within budget" + * If condition is TRUE and ReturnIfTrue is blank, this argument returns 0 (zero). To display the word TRUE, use + * the logical value TRUE for this argument. + * ReturnIfTrue can be another formula. + * ReturnIfFalse is the value that is returned if condition evaluates to FALSE. + * For example, if this argument is the text string "Over budget" and the condition argument evaluates to FALSE, + * then the IF function returns the text "Over budget". + * If condition is FALSE and ReturnIfFalse is omitted, then the logical value FALSE is returned. + * If condition is FALSE and ReturnIfFalse is blank, then the value 0 (zero) is returned. + * ReturnIfFalse can be another formula. + * + * @access public + * @category Logical Functions + * @param mixed $condition Condition to evaluate + * @param mixed $returnIfTrue Value to return when condition is true + * @param mixed $returnIfFalse Optional value to return when condition is false + * @return mixed The value of returnIfTrue or returnIfFalse determined by condition + */ + public static function STATEMENT_IF($condition = TRUE, $returnIfTrue = 0, $returnIfFalse = FALSE) { + $condition = (is_null($condition)) ? TRUE : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($condition); + $returnIfTrue = (is_null($returnIfTrue)) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($returnIfTrue); + $returnIfFalse = (is_null($returnIfFalse)) ? FALSE : PHPExcel_Calculation_Functions::flattenSingleValue($returnIfFalse); + + return ($condition) ? $returnIfTrue : $returnIfFalse; + } // function STATEMENT_IF() + + + /** + * IFERROR + * + * Excel Function: + * =IFERROR(testValue,errorpart) + * + * @access public + * @category Logical Functions + * @param mixed $testValue Value to check, is also the value returned when no error + * @param mixed $errorpart Value to return when testValue is an error condition + * @return mixed The value of errorpart or testValue determined by error condition + */ + public static function IFERROR($testValue = '', $errorpart = '') { + $testValue = (is_null($testValue)) ? '' : PHPExcel_Calculation_Functions::flattenSingleValue($testValue); + $errorpart = (is_null($errorpart)) ? '' : PHPExcel_Calculation_Functions::flattenSingleValue($errorpart); + + return self::STATEMENT_IF(PHPExcel_Calculation_Functions::IS_ERROR($testValue), $errorpart, $testValue); + } // function IFERROR() + +} // class PHPExcel_Calculation_Logical diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/LookupRef.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/LookupRef.php new file mode 100755 index 0000000..c824690 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/LookupRef.php @@ -0,0 +1,808 @@ + '') { + if (strpos($sheetText,' ') !== False) { $sheetText = "'".$sheetText."'"; } + $sheetText .='!'; + } + if ((!is_bool($referenceStyle)) || $referenceStyle) { + $rowRelative = $columnRelative = '$'; + $column = PHPExcel_Cell::stringFromColumnIndex($column-1); + if (($relativity == 2) || ($relativity == 4)) { $columnRelative = ''; } + if (($relativity == 3) || ($relativity == 4)) { $rowRelative = ''; } + return $sheetText.$columnRelative.$column.$rowRelative.$row; + } else { + if (($relativity == 2) || ($relativity == 4)) { $column = '['.$column.']'; } + if (($relativity == 3) || ($relativity == 4)) { $row = '['.$row.']'; } + return $sheetText.'R'.$row.'C'.$column; + } + } // function CELL_ADDRESS() + + + /** + * COLUMN + * + * Returns the column number of the given cell reference + * If the cell reference is a range of cells, COLUMN returns the column numbers of each column in the reference as a horizontal array. + * If cell reference is omitted, and the function is being called through the calculation engine, then it is assumed to be the + * reference of the cell in which the COLUMN function appears; otherwise this function returns 0. + * + * Excel Function: + * =COLUMN([cellAddress]) + * + * @param cellAddress A reference to a range of cells for which you want the column numbers + * @return integer or array of integer + */ + public static function COLUMN($cellAddress=Null) { + if (is_null($cellAddress) || trim($cellAddress) === '') { return 0; } + + if (is_array($cellAddress)) { + foreach($cellAddress as $columnKey => $value) { + $columnKey = preg_replace('/[^a-z]/i','',$columnKey); + return (integer) PHPExcel_Cell::columnIndexFromString($columnKey); + } + } else { + if (strpos($cellAddress,'!') !== false) { + list($sheet,$cellAddress) = explode('!',$cellAddress); + } + if (strpos($cellAddress,':') !== false) { + list($startAddress,$endAddress) = explode(':',$cellAddress); + $startAddress = preg_replace('/[^a-z]/i','',$startAddress); + $endAddress = preg_replace('/[^a-z]/i','',$endAddress); + $returnValue = array(); + do { + $returnValue[] = (integer) PHPExcel_Cell::columnIndexFromString($startAddress); + } while ($startAddress++ != $endAddress); + return $returnValue; + } else { + $cellAddress = preg_replace('/[^a-z]/i','',$cellAddress); + return (integer) PHPExcel_Cell::columnIndexFromString($cellAddress); + } + } + } // function COLUMN() + + + /** + * COLUMNS + * + * Returns the number of columns in an array or reference. + * + * Excel Function: + * =COLUMNS(cellAddress) + * + * @param cellAddress An array or array formula, or a reference to a range of cells for which you want the number of columns + * @return integer The number of columns in cellAddress + */ + public static function COLUMNS($cellAddress=Null) { + if (is_null($cellAddress) || $cellAddress === '') { + return 1; + } elseif (!is_array($cellAddress)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + $x = array_keys($cellAddress); + $x = array_shift($x); + $isMatrix = (is_numeric($x)); + list($columns,$rows) = PHPExcel_Calculation::_getMatrixDimensions($cellAddress); + + if ($isMatrix) { + return $rows; + } else { + return $columns; + } + } // function COLUMNS() + + + /** + * ROW + * + * Returns the row number of the given cell reference + * If the cell reference is a range of cells, ROW returns the row numbers of each row in the reference as a vertical array. + * If cell reference is omitted, and the function is being called through the calculation engine, then it is assumed to be the + * reference of the cell in which the ROW function appears; otherwise this function returns 0. + * + * Excel Function: + * =ROW([cellAddress]) + * + * @param cellAddress A reference to a range of cells for which you want the row numbers + * @return integer or array of integer + */ + public static function ROW($cellAddress=Null) { + if (is_null($cellAddress) || trim($cellAddress) === '') { return 0; } + + if (is_array($cellAddress)) { + foreach($cellAddress as $columnKey => $rowValue) { + foreach($rowValue as $rowKey => $cellValue) { + return (integer) preg_replace('/[^0-9]/i','',$rowKey); + } + } + } else { + if (strpos($cellAddress,'!') !== false) { + list($sheet,$cellAddress) = explode('!',$cellAddress); + } + if (strpos($cellAddress,':') !== false) { + list($startAddress,$endAddress) = explode(':',$cellAddress); + $startAddress = preg_replace('/[^0-9]/','',$startAddress); + $endAddress = preg_replace('/[^0-9]/','',$endAddress); + $returnValue = array(); + do { + $returnValue[][] = (integer) $startAddress; + } while ($startAddress++ != $endAddress); + return $returnValue; + } else { + list($cellAddress) = explode(':',$cellAddress); + return (integer) preg_replace('/[^0-9]/','',$cellAddress); + } + } + } // function ROW() + + + /** + * ROWS + * + * Returns the number of rows in an array or reference. + * + * Excel Function: + * =ROWS(cellAddress) + * + * @param cellAddress An array or array formula, or a reference to a range of cells for which you want the number of rows + * @return integer The number of rows in cellAddress + */ + public static function ROWS($cellAddress=Null) { + if (is_null($cellAddress) || $cellAddress === '') { + return 1; + } elseif (!is_array($cellAddress)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + $i = array_keys($cellAddress); + $isMatrix = (is_numeric(array_shift($i))); + list($columns,$rows) = PHPExcel_Calculation::_getMatrixDimensions($cellAddress); + + if ($isMatrix) { + return $columns; + } else { + return $rows; + } + } // function ROWS() + + + /** + * HYPERLINK + * + * Excel Function: + * =HYPERLINK(linkURL,displayName) + * + * @access public + * @category Logical Functions + * @param string $linkURL Value to check, is also the value returned when no error + * @param string $displayName Value to return when testValue is an error condition + * @return mixed The value of $displayName (or $linkURL if $displayName was blank) + */ + public static function HYPERLINK($linkURL = '', $displayName = null, PHPExcel_Cell $pCell = null) { + $args = func_get_args(); + $pCell = array_pop($args); + + $linkURL = (is_null($linkURL)) ? '' : PHPExcel_Calculation_Functions::flattenSingleValue($linkURL); + $displayName = (is_null($displayName)) ? '' : PHPExcel_Calculation_Functions::flattenSingleValue($displayName); + + if ((!is_object($pCell)) || (trim($linkURL) == '')) { + return PHPExcel_Calculation_Functions::REF(); + } + + if ((is_object($displayName)) || trim($displayName) == '') { + $displayName = $linkURL; + } + + $pCell->getHyperlink()->setUrl($linkURL); + + return $displayName; + } // function HYPERLINK() + + + /** + * INDIRECT + * + * Returns the reference specified by a text string. + * References are immediately evaluated to display their contents. + * + * Excel Function: + * =INDIRECT(cellAddress) + * + * NOTE - INDIRECT() does not yet support the optional a1 parameter introduced in Excel 2010 + * + * @param cellAddress An array or array formula, or a reference to a range of cells for which you want the number of rows + * @return mixed The cells referenced by cellAddress + * + * @todo Support for the optional a1 parameter introduced in Excel 2010 + * + */ + public static function INDIRECT($cellAddress=Null, PHPExcel_Cell $pCell = null) { + $cellAddress = PHPExcel_Calculation_Functions::flattenSingleValue($cellAddress); + if (is_null($cellAddress) || $cellAddress === '') { + return PHPExcel_Calculation_Functions::REF(); + } + + $cellAddress1 = $cellAddress; + $cellAddress2 = NULL; + if (strpos($cellAddress,':') !== false) { + list($cellAddress1,$cellAddress2) = explode(':',$cellAddress); + } + + if ((!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $cellAddress1, $matches)) || + ((!is_null($cellAddress2)) && (!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $cellAddress2, $matches)))) { + + if (!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $cellAddress1, $matches)) { + return PHPExcel_Calculation_Functions::REF(); + } + + if (strpos($cellAddress,'!') !== false) { + list($sheetName,$cellAddress) = explode('!',$cellAddress); + $pSheet = $pCell->getParent()->getParent()->getSheetByName($sheetName); + } else { + $pSheet = $pCell->getParent(); + } + + return PHPExcel_Calculation::getInstance()->extractNamedRange($cellAddress, $pSheet, False); + } + + if (strpos($cellAddress,'!') !== false) { + list($sheetName,$cellAddress) = explode('!',$cellAddress); + $pSheet = $pCell->getParent()->getParent()->getSheetByName($sheetName); + } else { + $pSheet = $pCell->getParent(); + } + + return PHPExcel_Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, False); + } // function INDIRECT() + + + /** + * OFFSET + * + * Returns a reference to a range that is a specified number of rows and columns from a cell or range of cells. + * The reference that is returned can be a single cell or a range of cells. You can specify the number of rows and + * the number of columns to be returned. + * + * Excel Function: + * =OFFSET(cellAddress, rows, cols, [height], [width]) + * + * @param cellAddress The reference from which you want to base the offset. Reference must refer to a cell or + * range of adjacent cells; otherwise, OFFSET returns the #VALUE! error value. + * @param rows The number of rows, up or down, that you want the upper-left cell to refer to. + * Using 5 as the rows argument specifies that the upper-left cell in the reference is + * five rows below reference. Rows can be positive (which means below the starting reference) + * or negative (which means above the starting reference). + * @param cols The number of columns, to the left or right, that you want the upper-left cell of the result + * to refer to. Using 5 as the cols argument specifies that the upper-left cell in the + * reference is five columns to the right of reference. Cols can be positive (which means + * to the right of the starting reference) or negative (which means to the left of the + * starting reference). + * @param height The height, in number of rows, that you want the returned reference to be. Height must be a positive number. + * @param width The width, in number of columns, that you want the returned reference to be. Width must be a positive number. + * @return string A reference to a cell or range of cells + */ + public static function OFFSET($cellAddress=Null,$rows=0,$columns=0,$height=null,$width=null) { + $rows = PHPExcel_Calculation_Functions::flattenSingleValue($rows); + $columns = PHPExcel_Calculation_Functions::flattenSingleValue($columns); + $height = PHPExcel_Calculation_Functions::flattenSingleValue($height); + $width = PHPExcel_Calculation_Functions::flattenSingleValue($width); + if ($cellAddress == Null) { + return 0; + } + + $args = func_get_args(); + $pCell = array_pop($args); + if (!is_object($pCell)) { + return PHPExcel_Calculation_Functions::REF(); + } + + $sheetName = null; + if (strpos($cellAddress,"!")) { + list($sheetName,$cellAddress) = explode("!",$cellAddress); + } + if (strpos($cellAddress,":")) { + list($startCell,$endCell) = explode(":",$cellAddress); + } else { + $startCell = $endCell = $cellAddress; + } + list($startCellColumn,$startCellRow) = PHPExcel_Cell::coordinateFromString($startCell); + list($endCellColumn,$endCellRow) = PHPExcel_Cell::coordinateFromString($endCell); + + $startCellRow += $rows; + $startCellColumn = PHPExcel_Cell::columnIndexFromString($startCellColumn) - 1; + $startCellColumn += $columns; + + if (($startCellRow <= 0) || ($startCellColumn < 0)) { + return PHPExcel_Calculation_Functions::REF(); + } + $endCellColumn = PHPExcel_Cell::columnIndexFromString($endCellColumn) - 1; + if (($width != null) && (!is_object($width))) { + $endCellColumn = $startCellColumn + $width - 1; + } else { + $endCellColumn += $columns; + } + $startCellColumn = PHPExcel_Cell::stringFromColumnIndex($startCellColumn); + + if (($height != null) && (!is_object($height))) { + $endCellRow = $startCellRow + $height - 1; + } else { + $endCellRow += $rows; + } + + if (($endCellRow <= 0) || ($endCellColumn < 0)) { + return PHPExcel_Calculation_Functions::REF(); + } + $endCellColumn = PHPExcel_Cell::stringFromColumnIndex($endCellColumn); + + $cellAddress = $startCellColumn.$startCellRow; + if (($startCellColumn != $endCellColumn) || ($startCellRow != $endCellRow)) { + $cellAddress .= ':'.$endCellColumn.$endCellRow; + } + + if ($sheetName !== null) { + $pSheet = $pCell->getParent()->getParent()->getSheetByName($sheetName); + } else { + $pSheet = $pCell->getParent(); + } + + return PHPExcel_Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, False); + } // function OFFSET() + + + /** + * CHOOSE + * + * Uses lookup_value to return a value from the list of value arguments. + * Use CHOOSE to select one of up to 254 values based on the lookup_value. + * + * Excel Function: + * =CHOOSE(index_num, value1, [value2], ...) + * + * @param index_num Specifies which value argument is selected. + * Index_num must be a number between 1 and 254, or a formula or reference to a cell containing a number + * between 1 and 254. + * @param value1... Value1 is required, subsequent values are optional. + * Between 1 to 254 value arguments from which CHOOSE selects a value or an action to perform based on + * index_num. The arguments can be numbers, cell references, defined names, formulas, functions, or + * text. + * @return mixed The selected value + */ + public static function CHOOSE() { + $chooseArgs = func_get_args(); + $chosenEntry = PHPExcel_Calculation_Functions::flattenArray(array_shift($chooseArgs)); + $entryCount = count($chooseArgs) - 1; + + if(is_array($chosenEntry)) { + $chosenEntry = array_shift($chosenEntry); + } + if ((is_numeric($chosenEntry)) && (!is_bool($chosenEntry))) { + --$chosenEntry; + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + $chosenEntry = floor($chosenEntry); + if (($chosenEntry <= 0) || ($chosenEntry > $entryCount)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (is_array($chooseArgs[$chosenEntry])) { + return PHPExcel_Calculation_Functions::flattenArray($chooseArgs[$chosenEntry]); + } else { + return $chooseArgs[$chosenEntry]; + } + } // function CHOOSE() + + + /** + * MATCH + * + * The MATCH function searches for a specified item in a range of cells + * + * Excel Function: + * =MATCH(lookup_value, lookup_array, [match_type]) + * + * @param lookup_value The value that you want to match in lookup_array + * @param lookup_array The range of cells being searched + * @param match_type The number -1, 0, or 1. -1 means above, 0 means exact match, 1 means below. If match_type is 1 or -1, the list has to be ordered. + * @return integer The relative position of the found item + */ + public static function MATCH($lookup_value, $lookup_array, $match_type=1) { + $lookup_array = PHPExcel_Calculation_Functions::flattenArray($lookup_array); + $lookup_value = PHPExcel_Calculation_Functions::flattenSingleValue($lookup_value); + $match_type = (is_null($match_type)) ? 1 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($match_type); + // MATCH is not case sensitive + $lookup_value = strtolower($lookup_value); + + // lookup_value type has to be number, text, or logical values + if ((!is_numeric($lookup_value)) && (!is_string($lookup_value)) && (!is_bool($lookup_value))) { + return PHPExcel_Calculation_Functions::NA(); + } + + // match_type is 0, 1 or -1 + if (($match_type !== 0) && ($match_type !== -1) && ($match_type !== 1)) { + return PHPExcel_Calculation_Functions::NA(); + } + + // lookup_array should not be empty + $lookupArraySize = count($lookup_array); + if ($lookupArraySize <= 0) { + return PHPExcel_Calculation_Functions::NA(); + } + + // lookup_array should contain only number, text, or logical values, or empty (null) cells + foreach($lookup_array as $i => $lookupArrayValue) { + // check the type of the value + if ((!is_numeric($lookupArrayValue)) && (!is_string($lookupArrayValue)) && + (!is_bool($lookupArrayValue)) && (!is_null($lookupArrayValue))) { + return PHPExcel_Calculation_Functions::NA(); + } + // convert strings to lowercase for case-insensitive testing + if (is_string($lookupArrayValue)) { + $lookup_array[$i] = strtolower($lookupArrayValue); + } + if ((is_null($lookupArrayValue)) && (($match_type == 1) || ($match_type == -1))) { + $lookup_array = array_slice($lookup_array,0,$i-1); + } + } + + // if match_type is 1 or -1, the list has to be ordered + if ($match_type == 1) { + asort($lookup_array); + $keySet = array_keys($lookup_array); + } elseif($match_type == -1) { + arsort($lookup_array); + $keySet = array_keys($lookup_array); + } + + // ** + // find the match + // ** + // loop on the cells +// var_dump($lookup_array); +// echo '
'; + foreach($lookup_array as $i => $lookupArrayValue) { + if (($match_type == 0) && ($lookupArrayValue == $lookup_value)) { + // exact match + return ++$i; + } elseif (($match_type == -1) && ($lookupArrayValue <= $lookup_value)) { +// echo '$i = '.$i.' => '; +// var_dump($lookupArrayValue); +// echo '
'; +// echo 'Keyset = '; +// var_dump($keySet); +// echo '
'; + $i = array_search($i,$keySet); +// echo '$i='.$i.'
'; + // if match_type is -1 <=> find the smallest value that is greater than or equal to lookup_value + if ($i < 1){ + // 1st cell was allready smaller than the lookup_value + break; + } else { + // the previous cell was the match + return $keySet[$i-1]+1; + } + } elseif (($match_type == 1) && ($lookupArrayValue >= $lookup_value)) { +// echo '$i = '.$i.' => '; +// var_dump($lookupArrayValue); +// echo '
'; +// echo 'Keyset = '; +// var_dump($keySet); +// echo '
'; + $i = array_search($i,$keySet); +// echo '$i='.$i.'
'; + // if match_type is 1 <=> find the largest value that is less than or equal to lookup_value + if ($i < 1){ + // 1st cell was allready bigger than the lookup_value + break; + } else { + // the previous cell was the match + return $keySet[$i-1]+1; + } + } + } + + // unsuccessful in finding a match, return #N/A error value + return PHPExcel_Calculation_Functions::NA(); + } // function MATCH() + + + /** + * INDEX + * + * Uses an index to choose a value from a reference or array + * + * Excel Function: + * =INDEX(range_array, row_num, [column_num]) + * + * @param range_array A range of cells or an array constant + * @param row_num The row in array from which to return a value. If row_num is omitted, column_num is required. + * @param column_num The column in array from which to return a value. If column_num is omitted, row_num is required. + * @return mixed the value of a specified cell or array of cells + */ + public static function INDEX($arrayValues,$rowNum = 0,$columnNum = 0) { + + if (($rowNum < 0) || ($columnNum < 0)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (!is_array($arrayValues)) { + return PHPExcel_Calculation_Functions::REF(); + } + + $rowKeys = array_keys($arrayValues); + $columnKeys = @array_keys($arrayValues[$rowKeys[0]]); + + if ($columnNum > count($columnKeys)) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ($columnNum == 0) { + if ($rowNum == 0) { + return $arrayValues; + } + $rowNum = $rowKeys[--$rowNum]; + $returnArray = array(); + foreach($arrayValues as $arrayColumn) { + if (is_array($arrayColumn)) { + if (isset($arrayColumn[$rowNum])) { + $returnArray[] = $arrayColumn[$rowNum]; + } else { + return $arrayValues[$rowNum]; + } + } else { + return $arrayValues[$rowNum]; + } + } + return $returnArray; + } + $columnNum = $columnKeys[--$columnNum]; + if ($rowNum > count($rowKeys)) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ($rowNum == 0) { + return $arrayValues[$columnNum]; + } + $rowNum = $rowKeys[--$rowNum]; + + return $arrayValues[$rowNum][$columnNum]; + } // function INDEX() + + + /** + * TRANSPOSE + * + * @param array $matrixData A matrix of values + * @return array + * + * Unlike the Excel TRANSPOSE function, which will only work on a single row or column, this function will transpose a full matrix. + */ + public static function TRANSPOSE($matrixData) { + $returnMatrix = array(); + if (!is_array($matrixData)) { $matrixData = array(array($matrixData)); } + + $column = 0; + foreach($matrixData as $matrixRow) { + $row = 0; + foreach($matrixRow as $matrixCell) { + $returnMatrix[$row][$column] = $matrixCell; + ++$row; + } + ++$column; + } + return $returnMatrix; + } // function TRANSPOSE() + + + private static function _vlookupSort($a,$b) { + $f = array_keys($a); + $firstColumn = array_shift($f); + if (strtolower($a[$firstColumn]) == strtolower($b[$firstColumn])) { + return 0; + } + return (strtolower($a[$firstColumn]) < strtolower($b[$firstColumn])) ? -1 : 1; + } // function _vlookupSort() + + + /** + * VLOOKUP + * The VLOOKUP function searches for value in the left-most column of lookup_array and returns the value in the same row based on the index_number. + * @param lookup_value The value that you want to match in lookup_array + * @param lookup_array The range of cells being searched + * @param index_number The column number in table_array from which the matching value must be returned. The first column is 1. + * @param not_exact_match Determines if you are looking for an exact match based on lookup_value. + * @return mixed The value of the found cell + */ + public static function VLOOKUP($lookup_value, $lookup_array, $index_number, $not_exact_match=true) { + $lookup_value = PHPExcel_Calculation_Functions::flattenSingleValue($lookup_value); + $index_number = PHPExcel_Calculation_Functions::flattenSingleValue($index_number); + $not_exact_match = PHPExcel_Calculation_Functions::flattenSingleValue($not_exact_match); + + // index_number must be greater than or equal to 1 + if ($index_number < 1) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + // index_number must be less than or equal to the number of columns in lookup_array + if ((!is_array($lookup_array)) || (empty($lookup_array))) { + return PHPExcel_Calculation_Functions::REF(); + } else { + $f = array_keys($lookup_array); + $firstRow = array_pop($f); + if ((!is_array($lookup_array[$firstRow])) || ($index_number > count($lookup_array[$firstRow]))) { + return PHPExcel_Calculation_Functions::REF(); + } else { + $columnKeys = array_keys($lookup_array[$firstRow]); + $returnColumn = $columnKeys[--$index_number]; + $firstColumn = array_shift($columnKeys); + } + } + + if (!$not_exact_match) { + uasort($lookup_array,array('self','_vlookupSort')); + } + + $rowNumber = $rowValue = False; + foreach($lookup_array as $rowKey => $rowData) { + if (strtolower($rowData[$firstColumn]) > strtolower($lookup_value)) { + break; + } + $rowNumber = $rowKey; + $rowValue = $rowData[$firstColumn]; + } + + if ($rowNumber !== false) { + if ((!$not_exact_match) && ($rowValue != $lookup_value)) { + // if an exact match is required, we have what we need to return an appropriate response + return PHPExcel_Calculation_Functions::NA(); + } else { + // otherwise return the appropriate value + return $lookup_array[$rowNumber][$returnColumn]; + } + } + + return PHPExcel_Calculation_Functions::NA(); + } // function VLOOKUP() + + + /** + * LOOKUP + * The LOOKUP function searches for value either from a one-row or one-column range or from an array. + * @param lookup_value The value that you want to match in lookup_array + * @param lookup_vector The range of cells being searched + * @param result_vector The column from which the matching value must be returned + * @return mixed The value of the found cell + */ + public static function LOOKUP($lookup_value, $lookup_vector, $result_vector=null) { + $lookup_value = PHPExcel_Calculation_Functions::flattenSingleValue($lookup_value); + + if (!is_array($lookup_vector)) { + return PHPExcel_Calculation_Functions::NA(); + } + $lookupRows = count($lookup_vector); + $l = array_keys($lookup_vector); + $l = array_shift($l); + $lookupColumns = count($lookup_vector[$l]); + if ((($lookupRows == 1) && ($lookupColumns > 1)) || (($lookupRows == 2) && ($lookupColumns != 2))) { + $lookup_vector = self::TRANSPOSE($lookup_vector); + $lookupRows = count($lookup_vector); + $l = array_keys($lookup_vector); + $lookupColumns = count($lookup_vector[array_shift($l)]); + } + + if (is_null($result_vector)) { + $result_vector = $lookup_vector; + } + $resultRows = count($result_vector); + $l = array_keys($result_vector); + $l = array_shift($l); + $resultColumns = count($result_vector[$l]); + if ((($resultRows == 1) && ($resultColumns > 1)) || (($resultRows == 2) && ($resultColumns != 2))) { + $result_vector = self::TRANSPOSE($result_vector); + $resultRows = count($result_vector); + $r = array_keys($result_vector); + $resultColumns = count($result_vector[array_shift($r)]); + } + + if ($lookupRows == 2) { + $result_vector = array_pop($lookup_vector); + $lookup_vector = array_shift($lookup_vector); + } + if ($lookupColumns != 2) { + foreach($lookup_vector as &$value) { + if (is_array($value)) { + $k = array_keys($value); + $key1 = $key2 = array_shift($k); + $key2++; + $dataValue1 = $value[$key1]; + } else { + $key1 = 0; + $key2 = 1; + $dataValue1 = $value; + } + $dataValue2 = array_shift($result_vector); + if (is_array($dataValue2)) { + $dataValue2 = array_shift($dataValue2); + } + $value = array($key1 => $dataValue1, $key2 => $dataValue2); + } + unset($value); + } + + return self::VLOOKUP($lookup_value,$lookup_vector,2); + } // function LOOKUP() + +} // class PHPExcel_Calculation_LookupRef diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/MathTrig.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/MathTrig.php new file mode 100755 index 0000000..79c573b --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/MathTrig.php @@ -0,0 +1,1366 @@ + 1; --$i) { + if (($value % $i) == 0) { + $factorArray = array_merge($factorArray,self::_factors($value / $i)); + $factorArray = array_merge($factorArray,self::_factors($i)); + if ($i <= sqrt($value)) { + break; + } + } + } + if (!empty($factorArray)) { + rsort($factorArray); + return $factorArray; + } else { + return array((integer) $value); + } + } // function _factors() + + + private static function _romanCut($num, $n) { + return ($num - ($num % $n ) ) / $n; + } // function _romanCut() + + + /** + * ATAN2 + * + * This function calculates the arc tangent of the two variables x and y. It is similar to + * calculating the arc tangent of y x, except that the signs of both arguments are used + * to determine the quadrant of the result. + * The arctangent is the angle from the x-axis to a line containing the origin (0, 0) and a + * point with coordinates (xCoordinate, yCoordinate). The angle is given in radians between + * -pi and pi, excluding -pi. + * + * Note that the Excel ATAN2() function accepts its arguments in the reverse order to the standard + * PHP atan2() function, so we need to reverse them here before calling the PHP atan() function. + * + * Excel Function: + * ATAN2(xCoordinate,yCoordinate) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param float $xCoordinate The x-coordinate of the point. + * @param float $yCoordinate The y-coordinate of the point. + * @return float The inverse tangent of the specified x- and y-coordinates. + */ + public static function ATAN2($xCoordinate = NULL, $yCoordinate = NULL) { + $xCoordinate = PHPExcel_Calculation_Functions::flattenSingleValue($xCoordinate); + $yCoordinate = PHPExcel_Calculation_Functions::flattenSingleValue($yCoordinate); + + $xCoordinate = ($xCoordinate !== NULL) ? $xCoordinate : 0.0; + $yCoordinate = ($yCoordinate !== NULL) ? $yCoordinate : 0.0; + + if (((is_numeric($xCoordinate)) || (is_bool($xCoordinate))) && + ((is_numeric($yCoordinate))) || (is_bool($yCoordinate))) { + $xCoordinate = (float) $xCoordinate; + $yCoordinate = (float) $yCoordinate; + + if (($xCoordinate == 0) && ($yCoordinate == 0)) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + return atan2($yCoordinate, $xCoordinate); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function ATAN2() + + + /** + * CEILING + * + * Returns number rounded up, away from zero, to the nearest multiple of significance. + * For example, if you want to avoid using pennies in your prices and your product is + * priced at $4.42, use the formula =CEILING(4.42,0.05) to round prices up to the + * nearest nickel. + * + * Excel Function: + * CEILING(number[,significance]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param float $number The number you want to round. + * @param float $significance The multiple to which you want to round. + * @return float Rounded Number + */ + public static function CEILING($number, $significance = NULL) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + $significance = PHPExcel_Calculation_Functions::flattenSingleValue($significance); + + if ((is_null($significance)) && + (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC)) { + $significance = $number/abs($number); + } + + if ((is_numeric($number)) && (is_numeric($significance))) { + if ($significance == 0.0) { + return 0.0; + } elseif (self::SIGN($number) == self::SIGN($significance)) { + return ceil($number / $significance) * $significance; + } else { + return PHPExcel_Calculation_Functions::NaN(); + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function CEILING() + + + /** + * COMBIN + * + * Returns the number of combinations for a given number of items. Use COMBIN to + * determine the total possible number of groups for a given number of items. + * + * Excel Function: + * COMBIN(numObjs,numInSet) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param int $numObjs Number of different objects + * @param int $numInSet Number of objects in each combination + * @return int Number of combinations + */ + public static function COMBIN($numObjs, $numInSet) { + $numObjs = PHPExcel_Calculation_Functions::flattenSingleValue($numObjs); + $numInSet = PHPExcel_Calculation_Functions::flattenSingleValue($numInSet); + + if ((is_numeric($numObjs)) && (is_numeric($numInSet))) { + if ($numObjs < $numInSet) { + return PHPExcel_Calculation_Functions::NaN(); + } elseif ($numInSet < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return round(self::FACT($numObjs) / self::FACT($numObjs - $numInSet)) / self::FACT($numInSet); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function COMBIN() + + + /** + * EVEN + * + * Returns number rounded up to the nearest even integer. + * You can use this function for processing items that come in twos. For example, + * a packing crate accepts rows of one or two items. The crate is full when + * the number of items, rounded up to the nearest two, matches the crate's + * capacity. + * + * Excel Function: + * EVEN(number) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param float $number Number to round + * @return int Rounded Number + */ + public static function EVEN($number) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + + if (is_null($number)) { + return 0; + } elseif (is_bool($number)) { + $number = (int) $number; + } + + if (is_numeric($number)) { + $significance = 2 * self::SIGN($number); + return (int) self::CEILING($number,$significance); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function EVEN() + + + /** + * FACT + * + * Returns the factorial of a number. + * The factorial of a number is equal to 1*2*3*...* number. + * + * Excel Function: + * FACT(factVal) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param float $factVal Factorial Value + * @return int Factorial + */ + public static function FACT($factVal) { + $factVal = PHPExcel_Calculation_Functions::flattenSingleValue($factVal); + + if (is_numeric($factVal)) { + if ($factVal < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + $factLoop = floor($factVal); + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + if ($factVal > $factLoop) { + return PHPExcel_Calculation_Functions::NaN(); + } + } + + $factorial = 1; + while ($factLoop > 1) { + $factorial *= $factLoop--; + } + return $factorial ; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function FACT() + + + /** + * FACTDOUBLE + * + * Returns the double factorial of a number. + * + * Excel Function: + * FACTDOUBLE(factVal) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param float $factVal Factorial Value + * @return int Double Factorial + */ + public static function FACTDOUBLE($factVal) { + $factLoop = PHPExcel_Calculation_Functions::flattenSingleValue($factVal); + + if (is_numeric($factLoop)) { + $factLoop = floor($factLoop); + if ($factVal < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + $factorial = 1; + while ($factLoop > 1) { + $factorial *= $factLoop--; + --$factLoop; + } + return $factorial ; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function FACTDOUBLE() + + + /** + * FLOOR + * + * Rounds number down, toward zero, to the nearest multiple of significance. + * + * Excel Function: + * FLOOR(number[,significance]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param float $number Number to round + * @param float $significance Significance + * @return float Rounded Number + */ + public static function FLOOR($number, $significance = NULL) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + $significance = PHPExcel_Calculation_Functions::flattenSingleValue($significance); + + if ((is_null($significance)) && (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC)) { + $significance = $number/abs($number); + } + + if ((is_numeric($number)) && (is_numeric($significance))) { + if ((float) $significance == 0.0) { + return PHPExcel_Calculation_Functions::DIV0(); + } + if (self::SIGN($number) == self::SIGN($significance)) { + return floor($number / $significance) * $significance; + } else { + return PHPExcel_Calculation_Functions::NaN(); + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function FLOOR() + + + /** + * GCD + * + * Returns the greatest common divisor of a series of numbers. + * The greatest common divisor is the largest integer that divides both + * number1 and number2 without a remainder. + * + * Excel Function: + * GCD(number1[,number2[, ...]]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @return integer Greatest Common Divisor + */ + public static function GCD() { + $returnValue = 1; + $allValuesFactors = array(); + // Loop through arguments + foreach(PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $value) { + if (!is_numeric($value)) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ($value == 0) { + continue; + } elseif($value < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + $myFactors = self::_factors($value); + $myCountedFactors = array_count_values($myFactors); + $allValuesFactors[] = $myCountedFactors; + } + $allValuesCount = count($allValuesFactors); + if ($allValuesCount == 0) { + return 0; + } + + $mergedArray = $allValuesFactors[0]; + for ($i=1;$i < $allValuesCount; ++$i) { + $mergedArray = array_intersect_key($mergedArray,$allValuesFactors[$i]); + } + $mergedArrayValues = count($mergedArray); + if ($mergedArrayValues == 0) { + return $returnValue; + } elseif ($mergedArrayValues > 1) { + foreach($mergedArray as $mergedKey => $mergedValue) { + foreach($allValuesFactors as $highestPowerTest) { + foreach($highestPowerTest as $testKey => $testValue) { + if (($testKey == $mergedKey) && ($testValue < $mergedValue)) { + $mergedArray[$mergedKey] = $testValue; + $mergedValue = $testValue; + } + } + } + } + + $returnValue = 1; + foreach($mergedArray as $key => $value) { + $returnValue *= pow($key,$value); + } + return $returnValue; + } else { + $keys = array_keys($mergedArray); + $key = $keys[0]; + $value = $mergedArray[$key]; + foreach($allValuesFactors as $testValue) { + foreach($testValue as $mergedKey => $mergedValue) { + if (($mergedKey == $key) && ($mergedValue < $value)) { + $value = $mergedValue; + } + } + } + return pow($key,$value); + } + } // function GCD() + + + /** + * INT + * + * Casts a floating point value to an integer + * + * Excel Function: + * INT(number) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param float $number Number to cast to an integer + * @return integer Integer value + */ + public static function INT($number) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + + if (is_null($number)) { + return 0; + } elseif (is_bool($number)) { + return (int) $number; + } + if (is_numeric($number)) { + return (int) floor($number); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function INT() + + + /** + * LCM + * + * Returns the lowest common multiplier of a series of numbers + * The least common multiple is the smallest positive integer that is a multiple + * of all integer arguments number1, number2, and so on. Use LCM to add fractions + * with different denominators. + * + * Excel Function: + * LCM(number1[,number2[, ...]]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @return int Lowest Common Multiplier + */ + public static function LCM() { + $returnValue = 1; + $allPoweredFactors = array(); + // Loop through arguments + foreach(PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $value) { + if (!is_numeric($value)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if ($value == 0) { + return 0; + } elseif ($value < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + $myFactors = self::_factors(floor($value)); + $myCountedFactors = array_count_values($myFactors); + $myPoweredFactors = array(); + foreach($myCountedFactors as $myCountedFactor => $myCountedPower) { + $myPoweredFactors[$myCountedFactor] = pow($myCountedFactor,$myCountedPower); + } + foreach($myPoweredFactors as $myPoweredValue => $myPoweredFactor) { + if (array_key_exists($myPoweredValue,$allPoweredFactors)) { + if ($allPoweredFactors[$myPoweredValue] < $myPoweredFactor) { + $allPoweredFactors[$myPoweredValue] = $myPoweredFactor; + } + } else { + $allPoweredFactors[$myPoweredValue] = $myPoweredFactor; + } + } + } + foreach($allPoweredFactors as $allPoweredFactor) { + $returnValue *= (integer) $allPoweredFactor; + } + return $returnValue; + } // function LCM() + + + /** + * LOG_BASE + * + * Returns the logarithm of a number to a specified base. The default base is 10. + * + * Excel Function: + * LOG(number[,base]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param float $value The positive real number for which you want the logarithm + * @param float $base The base of the logarithm. If base is omitted, it is assumed to be 10. + * @return float + */ + public static function LOG_BASE($number = NULL, $base = 10) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + $base = (is_null($base)) ? 10 : (float) PHPExcel_Calculation_Functions::flattenSingleValue($base); + + if ((!is_numeric($base)) || (!is_numeric($number))) + return PHPExcel_Calculation_Functions::VALUE(); + if (($base <= 0) || ($number <= 0)) + return PHPExcel_Calculation_Functions::NaN(); + return log($number, $base); + } // function LOG_BASE() + + + /** + * MDETERM + * + * Returns the matrix determinant of an array. + * + * Excel Function: + * MDETERM(array) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param array $matrixValues A matrix of values + * @return float + */ + public static function MDETERM($matrixValues) { + $matrixData = array(); + if (!is_array($matrixValues)) { $matrixValues = array(array($matrixValues)); } + + $row = $maxColumn = 0; + foreach($matrixValues as $matrixRow) { + if (!is_array($matrixRow)) { $matrixRow = array($matrixRow); } + $column = 0; + foreach($matrixRow as $matrixCell) { + if ((is_string($matrixCell)) || ($matrixCell === null)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $matrixData[$column][$row] = $matrixCell; + ++$column; + } + if ($column > $maxColumn) { $maxColumn = $column; } + ++$row; + } + if ($row != $maxColumn) { return PHPExcel_Calculation_Functions::VALUE(); } + + try { + $matrix = new PHPExcel_Shared_JAMA_Matrix($matrixData); + return $matrix->det(); + } catch (Exception $ex) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } // function MDETERM() + + + /** + * MINVERSE + * + * Returns the inverse matrix for the matrix stored in an array. + * + * Excel Function: + * MINVERSE(array) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param array $matrixValues A matrix of values + * @return array + */ + public static function MINVERSE($matrixValues) { + $matrixData = array(); + if (!is_array($matrixValues)) { $matrixValues = array(array($matrixValues)); } + + $row = $maxColumn = 0; + foreach($matrixValues as $matrixRow) { + if (!is_array($matrixRow)) { $matrixRow = array($matrixRow); } + $column = 0; + foreach($matrixRow as $matrixCell) { + if ((is_string($matrixCell)) || ($matrixCell === null)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $matrixData[$column][$row] = $matrixCell; + ++$column; + } + if ($column > $maxColumn) { $maxColumn = $column; } + ++$row; + } + if ($row != $maxColumn) { return PHPExcel_Calculation_Functions::VALUE(); } + + try { + $matrix = new PHPExcel_Shared_JAMA_Matrix($matrixData); + return $matrix->inverse()->getArray(); + } catch (Exception $ex) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } // function MINVERSE() + + + /** + * MMULT + * + * @param array $matrixData1 A matrix of values + * @param array $matrixData2 A matrix of values + * @return array + */ + public static function MMULT($matrixData1,$matrixData2) { + $matrixAData = $matrixBData = array(); + if (!is_array($matrixData1)) { $matrixData1 = array(array($matrixData1)); } + if (!is_array($matrixData2)) { $matrixData2 = array(array($matrixData2)); } + + $rowA = 0; + foreach($matrixData1 as $matrixRow) { + if (!is_array($matrixRow)) { $matrixRow = array($matrixRow); } + $columnA = 0; + foreach($matrixRow as $matrixCell) { + if ((is_string($matrixCell)) || ($matrixCell === null)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $matrixAData[$rowA][$columnA] = $matrixCell; + ++$columnA; + } + ++$rowA; + } + try { + $matrixA = new PHPExcel_Shared_JAMA_Matrix($matrixAData); + $rowB = 0; + foreach($matrixData2 as $matrixRow) { + if (!is_array($matrixRow)) { $matrixRow = array($matrixRow); } + $columnB = 0; + foreach($matrixRow as $matrixCell) { + if ((is_string($matrixCell)) || ($matrixCell === null)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $matrixBData[$rowB][$columnB] = $matrixCell; + ++$columnB; + } + ++$rowB; + } + $matrixB = new PHPExcel_Shared_JAMA_Matrix($matrixBData); + + if (($rowA != $columnB) || ($rowB != $columnA)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + return $matrixA->times($matrixB)->getArray(); + } catch (Exception $ex) { + return PHPExcel_Calculation_Functions::VALUE(); + } + } // function MMULT() + + + /** + * MOD + * + * @param int $a Dividend + * @param int $b Divisor + * @return int Remainder + */ + public static function MOD($a = 1, $b = 1) { + $a = PHPExcel_Calculation_Functions::flattenSingleValue($a); + $b = PHPExcel_Calculation_Functions::flattenSingleValue($b); + + if ($b == 0.0) { + return PHPExcel_Calculation_Functions::DIV0(); + } elseif (($a < 0.0) && ($b > 0.0)) { + return $b - fmod(abs($a),$b); + } elseif (($a > 0.0) && ($b < 0.0)) { + return $b + fmod($a,abs($b)); + } + + return fmod($a,$b); + } // function MOD() + + + /** + * MROUND + * + * Rounds a number to the nearest multiple of a specified value + * + * @param float $number Number to round + * @param int $multiple Multiple to which you want to round $number + * @return float Rounded Number + */ + public static function MROUND($number,$multiple) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + $multiple = PHPExcel_Calculation_Functions::flattenSingleValue($multiple); + + if ((is_numeric($number)) && (is_numeric($multiple))) { + if ($multiple == 0) { + return 0; + } + if ((self::SIGN($number)) == (self::SIGN($multiple))) { + $multiplier = 1 / $multiple; + return round($number * $multiplier) / $multiplier; + } + return PHPExcel_Calculation_Functions::NaN(); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function MROUND() + + + /** + * MULTINOMIAL + * + * Returns the ratio of the factorial of a sum of values to the product of factorials. + * + * @param array of mixed Data Series + * @return float + */ + public static function MULTINOMIAL() { + $summer = 0; + $divisor = 1; + // Loop through arguments + foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { + // Is it a numeric value? + if (is_numeric($arg)) { + if ($arg < 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + $summer += floor($arg); + $divisor *= self::FACT($arg); + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + + // Return + if ($summer > 0) { + $summer = self::FACT($summer); + return $summer / $divisor; + } + return 0; + } // function MULTINOMIAL() + + + /** + * ODD + * + * Returns number rounded up to the nearest odd integer. + * + * @param float $number Number to round + * @return int Rounded Number + */ + public static function ODD($number) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + + if (is_null($number)) { + return 1; + } elseif (is_bool($number)) { + $number = (int) $number; + } + + if (is_numeric($number)) { + $significance = self::SIGN($number); + if ($significance == 0) { + return 1; + } + + $result = self::CEILING($number,$significance); + if ($result == self::EVEN($result)) { + $result += $significance; + } + + return (int) $result; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function ODD() + + + /** + * POWER + * + * Computes x raised to the power y. + * + * @param float $x + * @param float $y + * @return float + */ + public static function POWER($x = 0, $y = 2) { + $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); + $y = PHPExcel_Calculation_Functions::flattenSingleValue($y); + + // Validate parameters + if ($x == 0.0 && $y == 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } elseif ($x == 0.0 && $y < 0.0) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + // Return + $result = pow($x, $y); + return (!is_nan($result) && !is_infinite($result)) ? $result : PHPExcel_Calculation_Functions::NaN(); + } // function POWER() + + + /** + * PRODUCT + * + * PRODUCT returns the product of all the values and cells referenced in the argument list. + * + * Excel Function: + * PRODUCT(value1[,value2[, ...]]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function PRODUCT() { + // Return value + $returnValue = null; + + // Loop through arguments + foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if (is_null($returnValue)) { + $returnValue = $arg; + } else { + $returnValue *= $arg; + } + } + } + + // Return + if (is_null($returnValue)) { + return 0; + } + return $returnValue; + } // function PRODUCT() + + + /** + * QUOTIENT + * + * QUOTIENT function returns the integer portion of a division. Numerator is the divided number + * and denominator is the divisor. + * + * Excel Function: + * QUOTIENT(value1[,value2[, ...]]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function QUOTIENT() { + // Return value + $returnValue = null; + + // Loop through arguments + foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if (is_null($returnValue)) { + $returnValue = ($arg == 0) ? 0 : $arg; + } else { + if (($returnValue == 0) || ($arg == 0)) { + $returnValue = 0; + } else { + $returnValue /= $arg; + } + } + } + } + + // Return + return intval($returnValue); + } // function QUOTIENT() + + + /** + * RAND + * + * @param int $min Minimal value + * @param int $max Maximal value + * @return int Random number + */ + public static function RAND($min = 0, $max = 0) { + $min = PHPExcel_Calculation_Functions::flattenSingleValue($min); + $max = PHPExcel_Calculation_Functions::flattenSingleValue($max); + + if ($min == 0 && $max == 0) { + return (rand(0,10000000)) / 10000000; + } else { + return rand($min, $max); + } + } // function RAND() + + + public static function ROMAN($aValue, $style=0) { + $aValue = PHPExcel_Calculation_Functions::flattenSingleValue($aValue); + $style = (is_null($style)) ? 0 : (integer) PHPExcel_Calculation_Functions::flattenSingleValue($style); + if ((!is_numeric($aValue)) || ($aValue < 0) || ($aValue >= 4000)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $aValue = (integer) $aValue; + if ($aValue == 0) { + return ''; + } + + $mill = Array('', 'M', 'MM', 'MMM', 'MMMM', 'MMMMM'); + $cent = Array('', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'); + $tens = Array('', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'); + $ones = Array('', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'); + + $roman = ''; + while ($aValue > 5999) { + $roman .= 'M'; + $aValue -= 1000; + } + $m = self::_romanCut($aValue, 1000); $aValue %= 1000; + $c = self::_romanCut($aValue, 100); $aValue %= 100; + $t = self::_romanCut($aValue, 10); $aValue %= 10; + + return $roman.$mill[$m].$cent[$c].$tens[$t].$ones[$aValue]; + } // function ROMAN() + + + /** + * ROUNDUP + * + * Rounds a number up to a specified number of decimal places + * + * @param float $number Number to round + * @param int $digits Number of digits to which you want to round $number + * @return float Rounded Number + */ + public static function ROUNDUP($number,$digits) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + $digits = PHPExcel_Calculation_Functions::flattenSingleValue($digits); + + if ((is_numeric($number)) && (is_numeric($digits))) { + $significance = pow(10,(int) $digits); + if ($number < 0.0) { + return floor($number * $significance) / $significance; + } else { + return ceil($number * $significance) / $significance; + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function ROUNDUP() + + + /** + * ROUNDDOWN + * + * Rounds a number down to a specified number of decimal places + * + * @param float $number Number to round + * @param int $digits Number of digits to which you want to round $number + * @return float Rounded Number + */ + public static function ROUNDDOWN($number,$digits) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + $digits = PHPExcel_Calculation_Functions::flattenSingleValue($digits); + + if ((is_numeric($number)) && (is_numeric($digits))) { + $significance = pow(10,(int) $digits); + if ($number < 0.0) { + return ceil($number * $significance) / $significance; + } else { + return floor($number * $significance) / $significance; + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function ROUNDDOWN() + + + /** + * SERIESSUM + * + * Returns the sum of a power series + * + * @param float $x Input value to the power series + * @param float $n Initial power to which you want to raise $x + * @param float $m Step by which to increase $n for each term in the series + * @param array of mixed Data Series + * @return float + */ + public static function SERIESSUM() { + // Return value + $returnValue = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + $x = array_shift($aArgs); + $n = array_shift($aArgs); + $m = array_shift($aArgs); + + if ((is_numeric($x)) && (is_numeric($n)) && (is_numeric($m))) { + // Calculate + $i = 0; + foreach($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $returnValue += $arg * pow($x,$n + ($m * $i++)); + } else { + return PHPExcel_Calculation_Functions::VALUE(); + } + } + // Return + return $returnValue; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SERIESSUM() + + + /** + * SIGN + * + * Determines the sign of a number. Returns 1 if the number is positive, zero (0) + * if the number is 0, and -1 if the number is negative. + * + * @param float $number Number to round + * @return int sign value + */ + public static function SIGN($number) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + + if (is_bool($number)) + return (int) $number; + if (is_numeric($number)) { + if ($number == 0.0) { + return 0; + } + return $number / abs($number); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SIGN() + + + /** + * SQRTPI + * + * Returns the square root of (number * pi). + * + * @param float $number Number + * @return float Square Root of Number * Pi + */ + public static function SQRTPI($number) { + $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); + + if (is_numeric($number)) { + if ($number < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return sqrt($number * M_PI) ; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SQRTPI() + + + /** + * SUBTOTAL + * + * Returns a subtotal in a list or database. + * + * @param int the number 1 to 11 that specifies which function to + * use in calculating subtotals within a list. + * @param array of mixed Data Series + * @return float + */ + public static function SUBTOTAL() { + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + // Calculate + $subtotal = array_shift($aArgs); + + if ((is_numeric($subtotal)) && (!is_string($subtotal))) { + switch($subtotal) { + case 1 : + return PHPExcel_Calculation_Statistical::AVERAGE($aArgs); + break; + case 2 : + return PHPExcel_Calculation_Statistical::COUNT($aArgs); + break; + case 3 : + return PHPExcel_Calculation_Statistical::COUNTA($aArgs); + break; + case 4 : + return PHPExcel_Calculation_Statistical::MAX($aArgs); + break; + case 5 : + return PHPExcel_Calculation_Statistical::MIN($aArgs); + break; + case 6 : + return self::PRODUCT($aArgs); + break; + case 7 : + return PHPExcel_Calculation_Statistical::STDEV($aArgs); + break; + case 8 : + return PHPExcel_Calculation_Statistical::STDEVP($aArgs); + break; + case 9 : + return self::SUM($aArgs); + break; + case 10 : + return PHPExcel_Calculation_Statistical::VARFunc($aArgs); + break; + case 11 : + return PHPExcel_Calculation_Statistical::VARP($aArgs); + break; + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SUBTOTAL() + + + /** + * SUM + * + * SUM computes the sum of all the values and cells referenced in the argument list. + * + * Excel Function: + * SUM(value1[,value2[, ...]]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function SUM() { + // Return value + $returnValue = 0; + + // Loop through the arguments + foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $returnValue += $arg; + } + } + + // Return + return $returnValue; + } // function SUM() + + + /** + * SUMIF + * + * Counts the number of cells that contain numbers within the list of arguments + * + * Excel Function: + * SUMIF(value1[,value2[, ...]],condition) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @param string $condition The criteria that defines which cells will be summed. + * @return float + */ + public static function SUMIF($aArgs,$condition,$sumArgs = array()) { + // Return value + $returnValue = 0; + + $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); + $sumArgs = PHPExcel_Calculation_Functions::flattenArray($sumArgs); + if (empty($sumArgs)) { + $sumArgs = $aArgs; + } + $condition = PHPExcel_Calculation_Functions::_ifCondition($condition); + // Loop through arguments + foreach ($aArgs as $key => $arg) { + if (!is_numeric($arg)) { $arg = PHPExcel_Calculation::_wrapResult(strtoupper($arg)); } + $testCondition = '='.$arg.$condition; + if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + // Is it a value within our criteria + $returnValue += $sumArgs[$key]; + } + } + + // Return + return $returnValue; + } // function SUMIF() + + + /** + * SUMPRODUCT + * + * Excel Function: + * SUMPRODUCT(value1[,value2[, ...]]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function SUMPRODUCT() { + $arrayList = func_get_args(); + + $wrkArray = PHPExcel_Calculation_Functions::flattenArray(array_shift($arrayList)); + $wrkCellCount = count($wrkArray); + + for ($i=0; $i< $wrkCellCount; ++$i) { + if ((!is_numeric($wrkArray[$i])) || (is_string($wrkArray[$i]))) { + $wrkArray[$i] = 0; + } + } + + foreach($arrayList as $matrixData) { + $array2 = PHPExcel_Calculation_Functions::flattenArray($matrixData); + $count = count($array2); + if ($wrkCellCount != $count) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + foreach ($array2 as $i => $val) { + if ((!is_numeric($val)) || (is_string($val))) { + $val = 0; + } + $wrkArray[$i] *= $val; + } + } + + return array_sum($wrkArray); + } // function SUMPRODUCT() + + + /** + * SUMSQ + * + * SUMSQ returns the sum of the squares of the arguments + * + * Excel Function: + * SUMSQ(value1[,value2[, ...]]) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function SUMSQ() { + // Return value + $returnValue = 0; + + // Loop through arguments + foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $returnValue += ($arg * $arg); + } + } + + // Return + return $returnValue; + } // function SUMSQ() + + + /** + * SUMX2MY2 + * + * @param mixed $value Value to check + * @return float + */ + public static function SUMX2MY2($matrixData1,$matrixData2) { + $array1 = PHPExcel_Calculation_Functions::flattenArray($matrixData1); + $array2 = PHPExcel_Calculation_Functions::flattenArray($matrixData2); + $count1 = count($array1); + $count2 = count($array2); + if ($count1 < $count2) { + $count = $count1; + } else { + $count = $count2; + } + + $result = 0; + for ($i = 0; $i < $count; ++$i) { + if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) && + ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) { + $result += ($array1[$i] * $array1[$i]) - ($array2[$i] * $array2[$i]); + } + } + + return $result; + } // function SUMX2MY2() + + + /** + * SUMX2PY2 + * + * @param mixed $value Value to check + * @return float + */ + public static function SUMX2PY2($matrixData1,$matrixData2) { + $array1 = PHPExcel_Calculation_Functions::flattenArray($matrixData1); + $array2 = PHPExcel_Calculation_Functions::flattenArray($matrixData2); + $count1 = count($array1); + $count2 = count($array2); + if ($count1 < $count2) { + $count = $count1; + } else { + $count = $count2; + } + + $result = 0; + for ($i = 0; $i < $count; ++$i) { + if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) && + ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) { + $result += ($array1[$i] * $array1[$i]) + ($array2[$i] * $array2[$i]); + } + } + + return $result; + } // function SUMX2PY2() + + + /** + * SUMXMY2 + * + * @param mixed $value Value to check + * @return float + */ + public static function SUMXMY2($matrixData1,$matrixData2) { + $array1 = PHPExcel_Calculation_Functions::flattenArray($matrixData1); + $array2 = PHPExcel_Calculation_Functions::flattenArray($matrixData2); + $count1 = count($array1); + $count2 = count($array2); + if ($count1 < $count2) { + $count = $count1; + } else { + $count = $count2; + } + + $result = 0; + for ($i = 0; $i < $count; ++$i) { + if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) && + ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) { + $result += ($array1[$i] - $array2[$i]) * ($array1[$i] - $array2[$i]); + } + } + + return $result; + } // function SUMXMY2() + + + /** + * TRUNC + * + * Truncates value to the number of fractional digits by number_digits. + * + * @param float $value + * @param int $digits + * @return float Truncated value + */ + public static function TRUNC($value = 0, $digits = 0) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $digits = PHPExcel_Calculation_Functions::flattenSingleValue($digits); + + // Validate parameters + if ((!is_numeric($value)) || (!is_numeric($digits))) + return PHPExcel_Calculation_Functions::VALUE(); + $digits = floor($digits); + + // Truncate + $adjust = pow(10, $digits); + + if (($digits > 0) && (rtrim(intval((abs($value) - abs(intval($value))) * $adjust),'0') < $adjust/10)) + return $value; + + return (intval($value * $adjust)) / $adjust; + } // function TRUNC() + +} // class PHPExcel_Calculation_MathTrig diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/Statistical.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/Statistical.php new file mode 100755 index 0000000..2fbb163 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/Statistical.php @@ -0,0 +1,3644 @@ + $value) { + if ((is_bool($value)) || (is_string($value)) || (is_null($value))) { + unset($array1[$key]); + unset($array2[$key]); + } + } + foreach($array2 as $key => $value) { + if ((is_bool($value)) || (is_string($value)) || (is_null($value))) { + unset($array1[$key]); + unset($array2[$key]); + } + } + $array1 = array_merge($array1); + $array2 = array_merge($array2); + + return True; + } // function _checkTrendArrays() + + + /** + * Beta function. + * + * @author Jaco van Kooten + * + * @param p require p>0 + * @param q require q>0 + * @return 0 if p<=0, q<=0 or p+q>2.55E305 to avoid errors and over/underflow + */ + private static function _beta($p, $q) { + if ($p <= 0.0 || $q <= 0.0 || ($p + $q) > LOG_GAMMA_X_MAX_VALUE) { + return 0.0; + } else { + return exp(self::_logBeta($p, $q)); + } + } // function _beta() + + + /** + * Incomplete beta function + * + * @author Jaco van Kooten + * @author Paul Meagher + * + * The computation is based on formulas from Numerical Recipes, Chapter 6.4 (W.H. Press et al, 1992). + * @param x require 0<=x<=1 + * @param p require p>0 + * @param q require q>0 + * @return 0 if x<0, p<=0, q<=0 or p+q>2.55E305 and 1 if x>1 to avoid errors and over/underflow + */ + private static function _incompleteBeta($x, $p, $q) { + if ($x <= 0.0) { + return 0.0; + } elseif ($x >= 1.0) { + return 1.0; + } elseif (($p <= 0.0) || ($q <= 0.0) || (($p + $q) > LOG_GAMMA_X_MAX_VALUE)) { + return 0.0; + } + $beta_gam = exp((0 - self::_logBeta($p, $q)) + $p * log($x) + $q * log(1.0 - $x)); + if ($x < ($p + 1.0) / ($p + $q + 2.0)) { + return $beta_gam * self::_betaFraction($x, $p, $q) / $p; + } else { + return 1.0 - ($beta_gam * self::_betaFraction(1 - $x, $q, $p) / $q); + } + } // function _incompleteBeta() + + + // Function cache for _logBeta function + private static $_logBetaCache_p = 0.0; + private static $_logBetaCache_q = 0.0; + private static $_logBetaCache_result = 0.0; + + /** + * The natural logarithm of the beta function. + * + * @param p require p>0 + * @param q require q>0 + * @return 0 if p<=0, q<=0 or p+q>2.55E305 to avoid errors and over/underflow + * @author Jaco van Kooten + */ + private static function _logBeta($p, $q) { + if ($p != self::$_logBetaCache_p || $q != self::$_logBetaCache_q) { + self::$_logBetaCache_p = $p; + self::$_logBetaCache_q = $q; + if (($p <= 0.0) || ($q <= 0.0) || (($p + $q) > LOG_GAMMA_X_MAX_VALUE)) { + self::$_logBetaCache_result = 0.0; + } else { + self::$_logBetaCache_result = self::_logGamma($p) + self::_logGamma($q) - self::_logGamma($p + $q); + } + } + return self::$_logBetaCache_result; + } // function _logBeta() + + + /** + * Evaluates of continued fraction part of incomplete beta function. + * Based on an idea from Numerical Recipes (W.H. Press et al, 1992). + * @author Jaco van Kooten + */ + private static function _betaFraction($x, $p, $q) { + $c = 1.0; + $sum_pq = $p + $q; + $p_plus = $p + 1.0; + $p_minus = $p - 1.0; + $h = 1.0 - $sum_pq * $x / $p_plus; + if (abs($h) < XMININ) { + $h = XMININ; + } + $h = 1.0 / $h; + $frac = $h; + $m = 1; + $delta = 0.0; + while ($m <= MAX_ITERATIONS && abs($delta-1.0) > PRECISION ) { + $m2 = 2 * $m; + // even index for d + $d = $m * ($q - $m) * $x / ( ($p_minus + $m2) * ($p + $m2)); + $h = 1.0 + $d * $h; + if (abs($h) < XMININ) { + $h = XMININ; + } + $h = 1.0 / $h; + $c = 1.0 + $d / $c; + if (abs($c) < XMININ) { + $c = XMININ; + } + $frac *= $h * $c; + // odd index for d + $d = -($p + $m) * ($sum_pq + $m) * $x / (($p + $m2) * ($p_plus + $m2)); + $h = 1.0 + $d * $h; + if (abs($h) < XMININ) { + $h = XMININ; + } + $h = 1.0 / $h; + $c = 1.0 + $d / $c; + if (abs($c) < XMININ) { + $c = XMININ; + } + $delta = $h * $c; + $frac *= $delta; + ++$m; + } + return $frac; + } // function _betaFraction() + + + /** + * logGamma function + * + * @version 1.1 + * @author Jaco van Kooten + * + * Original author was Jaco van Kooten. Ported to PHP by Paul Meagher. + * + * The natural logarithm of the gamma function.
+ * Based on public domain NETLIB (Fortran) code by W. J. Cody and L. Stoltz
+ * Applied Mathematics Division
+ * Argonne National Laboratory
+ * Argonne, IL 60439
+ *

+ * References: + *

    + *
  1. W. J. Cody and K. E. Hillstrom, 'Chebyshev Approximations for the Natural + * Logarithm of the Gamma Function,' Math. Comp. 21, 1967, pp. 198-203.
  2. + *
  3. K. E. Hillstrom, ANL/AMD Program ANLC366S, DGAMMA/DLGAMA, May, 1969.
  4. + *
  5. Hart, Et. Al., Computer Approximations, Wiley and sons, New York, 1968.
  6. + *
+ *

+ *

+ * From the original documentation: + *

+ *

+ * This routine calculates the LOG(GAMMA) function for a positive real argument X. + * Computation is based on an algorithm outlined in references 1 and 2. + * The program uses rational functions that theoretically approximate LOG(GAMMA) + * to at least 18 significant decimal digits. The approximation for X > 12 is from + * reference 3, while approximations for X < 12.0 are similar to those in reference + * 1, but are unpublished. The accuracy achieved depends on the arithmetic system, + * the compiler, the intrinsic functions, and proper selection of the + * machine-dependent constants. + *

+ *

+ * Error returns:
+ * The program returns the value XINF for X .LE. 0.0 or when overflow would occur. + * The computation is believed to be free of underflow and overflow. + *

+ * @return MAX_VALUE for x < 0.0 or when overflow would occur, i.e. x > 2.55E305 + */ + + // Function cache for logGamma + private static $_logGammaCache_result = 0.0; + private static $_logGammaCache_x = 0.0; + + private static function _logGamma($x) { + // Log Gamma related constants + static $lg_d1 = -0.5772156649015328605195174; + static $lg_d2 = 0.4227843350984671393993777; + static $lg_d4 = 1.791759469228055000094023; + + static $lg_p1 = array( 4.945235359296727046734888, + 201.8112620856775083915565, + 2290.838373831346393026739, + 11319.67205903380828685045, + 28557.24635671635335736389, + 38484.96228443793359990269, + 26377.48787624195437963534, + 7225.813979700288197698961 ); + static $lg_p2 = array( 4.974607845568932035012064, + 542.4138599891070494101986, + 15506.93864978364947665077, + 184793.2904445632425417223, + 1088204.76946882876749847, + 3338152.967987029735917223, + 5106661.678927352456275255, + 3074109.054850539556250927 ); + static $lg_p4 = array( 14745.02166059939948905062, + 2426813.369486704502836312, + 121475557.4045093227939592, + 2663432449.630976949898078, + 29403789566.34553899906876, + 170266573776.5398868392998, + 492612579337.743088758812, + 560625185622.3951465078242 ); + + static $lg_q1 = array( 67.48212550303777196073036, + 1113.332393857199323513008, + 7738.757056935398733233834, + 27639.87074403340708898585, + 54993.10206226157329794414, + 61611.22180066002127833352, + 36351.27591501940507276287, + 8785.536302431013170870835 ); + static $lg_q2 = array( 183.0328399370592604055942, + 7765.049321445005871323047, + 133190.3827966074194402448, + 1136705.821321969608938755, + 5267964.117437946917577538, + 13467014.54311101692290052, + 17827365.30353274213975932, + 9533095.591844353613395747 ); + static $lg_q4 = array( 2690.530175870899333379843, + 639388.5654300092398984238, + 41355999.30241388052042842, + 1120872109.61614794137657, + 14886137286.78813811542398, + 101680358627.2438228077304, + 341747634550.7377132798597, + 446315818741.9713286462081 ); + + static $lg_c = array( -0.001910444077728, + 8.4171387781295e-4, + -5.952379913043012e-4, + 7.93650793500350248e-4, + -0.002777777777777681622553, + 0.08333333333333333331554247, + 0.0057083835261 ); + + // Rough estimate of the fourth root of logGamma_xBig + static $lg_frtbig = 2.25e76; + static $pnt68 = 0.6796875; + + + if ($x == self::$_logGammaCache_x) { + return self::$_logGammaCache_result; + } + $y = $x; + if ($y > 0.0 && $y <= LOG_GAMMA_X_MAX_VALUE) { + if ($y <= EPS) { + $res = -log(y); + } elseif ($y <= 1.5) { + // --------------------- + // EPS .LT. X .LE. 1.5 + // --------------------- + if ($y < $pnt68) { + $corr = -log($y); + $xm1 = $y; + } else { + $corr = 0.0; + $xm1 = $y - 1.0; + } + if ($y <= 0.5 || $y >= $pnt68) { + $xden = 1.0; + $xnum = 0.0; + for ($i = 0; $i < 8; ++$i) { + $xnum = $xnum * $xm1 + $lg_p1[$i]; + $xden = $xden * $xm1 + $lg_q1[$i]; + } + $res = $corr + $xm1 * ($lg_d1 + $xm1 * ($xnum / $xden)); + } else { + $xm2 = $y - 1.0; + $xden = 1.0; + $xnum = 0.0; + for ($i = 0; $i < 8; ++$i) { + $xnum = $xnum * $xm2 + $lg_p2[$i]; + $xden = $xden * $xm2 + $lg_q2[$i]; + } + $res = $corr + $xm2 * ($lg_d2 + $xm2 * ($xnum / $xden)); + } + } elseif ($y <= 4.0) { + // --------------------- + // 1.5 .LT. X .LE. 4.0 + // --------------------- + $xm2 = $y - 2.0; + $xden = 1.0; + $xnum = 0.0; + for ($i = 0; $i < 8; ++$i) { + $xnum = $xnum * $xm2 + $lg_p2[$i]; + $xden = $xden * $xm2 + $lg_q2[$i]; + } + $res = $xm2 * ($lg_d2 + $xm2 * ($xnum / $xden)); + } elseif ($y <= 12.0) { + // ---------------------- + // 4.0 .LT. X .LE. 12.0 + // ---------------------- + $xm4 = $y - 4.0; + $xden = -1.0; + $xnum = 0.0; + for ($i = 0; $i < 8; ++$i) { + $xnum = $xnum * $xm4 + $lg_p4[$i]; + $xden = $xden * $xm4 + $lg_q4[$i]; + } + $res = $lg_d4 + $xm4 * ($xnum / $xden); + } else { + // --------------------------------- + // Evaluate for argument .GE. 12.0 + // --------------------------------- + $res = 0.0; + if ($y <= $lg_frtbig) { + $res = $lg_c[6]; + $ysq = $y * $y; + for ($i = 0; $i < 6; ++$i) + $res = $res / $ysq + $lg_c[$i]; + } + $res /= $y; + $corr = log($y); + $res = $res + log(SQRT2PI) - 0.5 * $corr; + $res += $y * ($corr - 1.0); + } + } else { + // -------------------------- + // Return for bad arguments + // -------------------------- + $res = MAX_VALUE; + } + // ------------------------------ + // Final adjustments and return + // ------------------------------ + self::$_logGammaCache_x = $x; + self::$_logGammaCache_result = $res; + return $res; + } // function _logGamma() + + + // + // Private implementation of the incomplete Gamma function + // + private static function _incompleteGamma($a,$x) { + static $max = 32; + $summer = 0; + for ($n=0; $n<=$max; ++$n) { + $divisor = $a; + for ($i=1; $i<=$n; ++$i) { + $divisor *= ($a + $i); + } + $summer += (pow($x,$n) / $divisor); + } + return pow($x,$a) * exp(0-$x) * $summer; + } // function _incompleteGamma() + + + // + // Private implementation of the Gamma function + // + private static function _gamma($data) { + if ($data == 0.0) return 0; + + static $p0 = 1.000000000190015; + static $p = array ( 1 => 76.18009172947146, + 2 => -86.50532032941677, + 3 => 24.01409824083091, + 4 => -1.231739572450155, + 5 => 1.208650973866179e-3, + 6 => -5.395239384953e-6 + ); + + $y = $x = $data; + $tmp = $x + 5.5; + $tmp -= ($x + 0.5) * log($tmp); + + $summer = $p0; + for ($j=1;$j<=6;++$j) { + $summer += ($p[$j] / ++$y); + } + return exp(0 - $tmp + log(SQRT2PI * $summer / $x)); + } // function _gamma() + + + /*************************************************************************** + * inverse_ncdf.php + * ------------------- + * begin : Friday, January 16, 2004 + * copyright : (C) 2004 Michael Nickerson + * email : nickersonm@yahoo.com + * + ***************************************************************************/ + private static function _inverse_ncdf($p) { + // Inverse ncdf approximation by Peter J. Acklam, implementation adapted to + // PHP by Michael Nickerson, using Dr. Thomas Ziegler's C implementation as + // a guide. http://home.online.no/~pjacklam/notes/invnorm/index.html + // I have not checked the accuracy of this implementation. Be aware that PHP + // will truncate the coeficcients to 14 digits. + + // You have permission to use and distribute this function freely for + // whatever purpose you want, but please show common courtesy and give credit + // where credit is due. + + // Input paramater is $p - probability - where 0 < p < 1. + + // Coefficients in rational approximations + static $a = array( 1 => -3.969683028665376e+01, + 2 => 2.209460984245205e+02, + 3 => -2.759285104469687e+02, + 4 => 1.383577518672690e+02, + 5 => -3.066479806614716e+01, + 6 => 2.506628277459239e+00 + ); + + static $b = array( 1 => -5.447609879822406e+01, + 2 => 1.615858368580409e+02, + 3 => -1.556989798598866e+02, + 4 => 6.680131188771972e+01, + 5 => -1.328068155288572e+01 + ); + + static $c = array( 1 => -7.784894002430293e-03, + 2 => -3.223964580411365e-01, + 3 => -2.400758277161838e+00, + 4 => -2.549732539343734e+00, + 5 => 4.374664141464968e+00, + 6 => 2.938163982698783e+00 + ); + + static $d = array( 1 => 7.784695709041462e-03, + 2 => 3.224671290700398e-01, + 3 => 2.445134137142996e+00, + 4 => 3.754408661907416e+00 + ); + + // Define lower and upper region break-points. + $p_low = 0.02425; //Use lower region approx. below this + $p_high = 1 - $p_low; //Use upper region approx. above this + + if (0 < $p && $p < $p_low) { + // Rational approximation for lower region. + $q = sqrt(-2 * log($p)); + return ((((($c[1] * $q + $c[2]) * $q + $c[3]) * $q + $c[4]) * $q + $c[5]) * $q + $c[6]) / + (((($d[1] * $q + $d[2]) * $q + $d[3]) * $q + $d[4]) * $q + 1); + } elseif ($p_low <= $p && $p <= $p_high) { + // Rational approximation for central region. + $q = $p - 0.5; + $r = $q * $q; + return ((((($a[1] * $r + $a[2]) * $r + $a[3]) * $r + $a[4]) * $r + $a[5]) * $r + $a[6]) * $q / + ((((($b[1] * $r + $b[2]) * $r + $b[3]) * $r + $b[4]) * $r + $b[5]) * $r + 1); + } elseif ($p_high < $p && $p < 1) { + // Rational approximation for upper region. + $q = sqrt(-2 * log(1 - $p)); + return -((((($c[1] * $q + $c[2]) * $q + $c[3]) * $q + $c[4]) * $q + $c[5]) * $q + $c[6]) / + (((($d[1] * $q + $d[2]) * $q + $d[3]) * $q + $d[4]) * $q + 1); + } + // If 0 < p < 1, return a null value + return PHPExcel_Calculation_Functions::NULL(); + } // function _inverse_ncdf() + + + private static function _inverse_ncdf2($prob) { + // Approximation of inverse standard normal CDF developed by + // B. Moro, "The Full Monte," Risk 8(2), Feb 1995, 57-58. + + $a1 = 2.50662823884; + $a2 = -18.61500062529; + $a3 = 41.39119773534; + $a4 = -25.44106049637; + + $b1 = -8.4735109309; + $b2 = 23.08336743743; + $b3 = -21.06224101826; + $b4 = 3.13082909833; + + $c1 = 0.337475482272615; + $c2 = 0.976169019091719; + $c3 = 0.160797971491821; + $c4 = 2.76438810333863E-02; + $c5 = 3.8405729373609E-03; + $c6 = 3.951896511919E-04; + $c7 = 3.21767881768E-05; + $c8 = 2.888167364E-07; + $c9 = 3.960315187E-07; + + $y = $prob - 0.5; + if (abs($y) < 0.42) { + $z = ($y * $y); + $z = $y * ((($a4 * $z + $a3) * $z + $a2) * $z + $a1) / (((($b4 * $z + $b3) * $z + $b2) * $z + $b1) * $z + 1); + } else { + if ($y > 0) { + $z = log(-log(1 - $prob)); + } else { + $z = log(-log($prob)); + } + $z = $c1 + $z * ($c2 + $z * ($c3 + $z * ($c4 + $z * ($c5 + $z * ($c6 + $z * ($c7 + $z * ($c8 + $z * $c9))))))); + if ($y < 0) { + $z = -$z; + } + } + return $z; + } // function _inverse_ncdf2() + + + private static function _inverse_ncdf3($p) { + // ALGORITHM AS241 APPL. STATIST. (1988) VOL. 37, NO. 3. + // Produces the normal deviate Z corresponding to a given lower + // tail area of P; Z is accurate to about 1 part in 10**16. + // + // This is a PHP version of the original FORTRAN code that can + // be found at http://lib.stat.cmu.edu/apstat/ + $split1 = 0.425; + $split2 = 5; + $const1 = 0.180625; + $const2 = 1.6; + + // coefficients for p close to 0.5 + $a0 = 3.3871328727963666080; + $a1 = 1.3314166789178437745E+2; + $a2 = 1.9715909503065514427E+3; + $a3 = 1.3731693765509461125E+4; + $a4 = 4.5921953931549871457E+4; + $a5 = 6.7265770927008700853E+4; + $a6 = 3.3430575583588128105E+4; + $a7 = 2.5090809287301226727E+3; + + $b1 = 4.2313330701600911252E+1; + $b2 = 6.8718700749205790830E+2; + $b3 = 5.3941960214247511077E+3; + $b4 = 2.1213794301586595867E+4; + $b5 = 3.9307895800092710610E+4; + $b6 = 2.8729085735721942674E+4; + $b7 = 5.2264952788528545610E+3; + + // coefficients for p not close to 0, 0.5 or 1. + $c0 = 1.42343711074968357734; + $c1 = 4.63033784615654529590; + $c2 = 5.76949722146069140550; + $c3 = 3.64784832476320460504; + $c4 = 1.27045825245236838258; + $c5 = 2.41780725177450611770E-1; + $c6 = 2.27238449892691845833E-2; + $c7 = 7.74545014278341407640E-4; + + $d1 = 2.05319162663775882187; + $d2 = 1.67638483018380384940; + $d3 = 6.89767334985100004550E-1; + $d4 = 1.48103976427480074590E-1; + $d5 = 1.51986665636164571966E-2; + $d6 = 5.47593808499534494600E-4; + $d7 = 1.05075007164441684324E-9; + + // coefficients for p near 0 or 1. + $e0 = 6.65790464350110377720; + $e1 = 5.46378491116411436990; + $e2 = 1.78482653991729133580; + $e3 = 2.96560571828504891230E-1; + $e4 = 2.65321895265761230930E-2; + $e5 = 1.24266094738807843860E-3; + $e6 = 2.71155556874348757815E-5; + $e7 = 2.01033439929228813265E-7; + + $f1 = 5.99832206555887937690E-1; + $f2 = 1.36929880922735805310E-1; + $f3 = 1.48753612908506148525E-2; + $f4 = 7.86869131145613259100E-4; + $f5 = 1.84631831751005468180E-5; + $f6 = 1.42151175831644588870E-7; + $f7 = 2.04426310338993978564E-15; + + $q = $p - 0.5; + + // computation for p close to 0.5 + if (abs($q) <= split1) { + $R = $const1 - $q * $q; + $z = $q * ((((((($a7 * $R + $a6) * $R + $a5) * $R + $a4) * $R + $a3) * $R + $a2) * $R + $a1) * $R + $a0) / + ((((((($b7 * $R + $b6) * $R + $b5) * $R + $b4) * $R + $b3) * $R + $b2) * $R + $b1) * $R + 1); + } else { + if ($q < 0) { + $R = $p; + } else { + $R = 1 - $p; + } + $R = pow(-log($R),2); + + // computation for p not close to 0, 0.5 or 1. + If ($R <= $split2) { + $R = $R - $const2; + $z = ((((((($c7 * $R + $c6) * $R + $c5) * $R + $c4) * $R + $c3) * $R + $c2) * $R + $c1) * $R + $c0) / + ((((((($d7 * $R + $d6) * $R + $d5) * $R + $d4) * $R + $d3) * $R + $d2) * $R + $d1) * $R + 1); + } else { + // computation for p near 0 or 1. + $R = $R - $split2; + $z = ((((((($e7 * $R + $e6) * $R + $e5) * $R + $e4) * $R + $e3) * $R + $e2) * $R + $e1) * $R + $e0) / + ((((((($f7 * $R + $f6) * $R + $f5) * $R + $f4) * $R + $f3) * $R + $f2) * $R + $f1) * $R + 1); + } + if ($q < 0) { + $z = -$z; + } + } + return $z; + } // function _inverse_ncdf3() + + + /** + * AVEDEV + * + * Returns the average of the absolute deviations of data points from their mean. + * AVEDEV is a measure of the variability in a data set. + * + * Excel Function: + * AVEDEV(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function AVEDEV() { + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + + // Return value + $returnValue = null; + + $aMean = self::AVERAGE($aArgs); + if ($aMean != PHPExcel_Calculation_Functions::DIV0()) { + $aCount = 0; + foreach ($aArgs as $k => $arg) { + if ((is_bool($arg)) && + ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { + $arg = (integer) $arg; + } + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if (is_null($returnValue)) { + $returnValue = abs($arg - $aMean); + } else { + $returnValue += abs($arg - $aMean); + } + ++$aCount; + } + } + + // Return + if ($aCount == 0) { + return PHPExcel_Calculation_Functions::DIV0(); + } + return $returnValue / $aCount; + } + return PHPExcel_Calculation_Functions::NaN(); + } // function AVEDEV() + + + /** + * AVERAGE + * + * Returns the average (arithmetic mean) of the arguments + * + * Excel Function: + * AVERAGE(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function AVERAGE() { + $returnValue = $aCount = 0; + + // Loop through arguments + foreach (PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()) as $k => $arg) { + if ((is_bool($arg)) && + ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { + $arg = (integer) $arg; + } + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if (is_null($returnValue)) { + $returnValue = $arg; + } else { + $returnValue += $arg; + } + ++$aCount; + } + } + + // Return + if ($aCount > 0) { + return $returnValue / $aCount; + } else { + return PHPExcel_Calculation_Functions::DIV0(); + } + } // function AVERAGE() + + + /** + * AVERAGEA + * + * Returns the average of its arguments, including numbers, text, and logical values + * + * Excel Function: + * AVERAGEA(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function AVERAGEA() { + // Return value + $returnValue = null; + + $aCount = 0; + // Loop through arguments + foreach (PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()) as $k => $arg) { + if ((is_bool($arg)) && + (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { + } else { + if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) { + if (is_bool($arg)) { + $arg = (integer) $arg; + } elseif (is_string($arg)) { + $arg = 0; + } + if (is_null($returnValue)) { + $returnValue = $arg; + } else { + $returnValue += $arg; + } + ++$aCount; + } + } + } + + // Return + if ($aCount > 0) { + return $returnValue / $aCount; + } else { + return PHPExcel_Calculation_Functions::DIV0(); + } + } // function AVERAGEA() + + + /** + * AVERAGEIF + * + * Returns the average value from a range of cells that contain numbers within the list of arguments + * + * Excel Function: + * AVERAGEIF(value1[,value2[, ...]],condition) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @param string $condition The criteria that defines which cells will be checked. + * @return float + */ + public static function AVERAGEIF($aArgs,$condition,$averageArgs = array()) { + // Return value + $returnValue = 0; + + $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); + $averageArgs = PHPExcel_Calculation_Functions::flattenArray($averageArgs); + if (empty($averageArgs)) { + $averageArgs = $aArgs; + } + $condition = PHPExcel_Calculation_Functions::_ifCondition($condition); + // Loop through arguments + $aCount = 0; + foreach ($aArgs as $key => $arg) { + if (!is_numeric($arg)) { $arg = PHPExcel_Calculation::_wrapResult(strtoupper($arg)); } + $testCondition = '='.$arg.$condition; + if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if ((is_null($returnValue)) || ($arg > $returnValue)) { + $returnValue += $arg; + ++$aCount; + } + } + } + + // Return + if ($aCount > 0) { + return $returnValue / $aCount; + } else { + return PHPExcel_Calculation_Functions::DIV0(); + } + } // function AVERAGEIF() + + + /** + * BETADIST + * + * Returns the beta distribution. + * + * @param float $value Value at which you want to evaluate the distribution + * @param float $alpha Parameter to the distribution + * @param float $beta Parameter to the distribution + * @param boolean $cumulative + * @return float + * + */ + public static function BETADIST($value,$alpha,$beta,$rMin=0,$rMax=1) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); + $beta = PHPExcel_Calculation_Functions::flattenSingleValue($beta); + $rMin = PHPExcel_Calculation_Functions::flattenSingleValue($rMin); + $rMax = PHPExcel_Calculation_Functions::flattenSingleValue($rMax); + + if ((is_numeric($value)) && (is_numeric($alpha)) && (is_numeric($beta)) && (is_numeric($rMin)) && (is_numeric($rMax))) { + if (($value < $rMin) || ($value > $rMax) || ($alpha <= 0) || ($beta <= 0) || ($rMin == $rMax)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($rMin > $rMax) { + $tmp = $rMin; + $rMin = $rMax; + $rMax = $tmp; + } + $value -= $rMin; + $value /= ($rMax - $rMin); + return self::_incompleteBeta($value,$alpha,$beta); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function BETADIST() + + + /** + * BETAINV + * + * Returns the inverse of the beta distribution. + * + * @param float $probability Probability at which you want to evaluate the distribution + * @param float $alpha Parameter to the distribution + * @param float $beta Parameter to the distribution + * @param boolean $cumulative + * @return float + * + */ + public static function BETAINV($probability,$alpha,$beta,$rMin=0,$rMax=1) { + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); + $beta = PHPExcel_Calculation_Functions::flattenSingleValue($beta); + $rMin = PHPExcel_Calculation_Functions::flattenSingleValue($rMin); + $rMax = PHPExcel_Calculation_Functions::flattenSingleValue($rMax); + + if ((is_numeric($probability)) && (is_numeric($alpha)) && (is_numeric($beta)) && (is_numeric($rMin)) && (is_numeric($rMax))) { + if (($alpha <= 0) || ($beta <= 0) || ($rMin == $rMax) || ($probability <= 0) || ($probability > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($rMin > $rMax) { + $tmp = $rMin; + $rMin = $rMax; + $rMax = $tmp; + } + $a = 0; + $b = 2; + + $i = 0; + while ((($b - $a) > PRECISION) && ($i++ < MAX_ITERATIONS)) { + $guess = ($a + $b) / 2; + $result = self::BETADIST($guess, $alpha, $beta); + if (($result == $probability) || ($result == 0)) { + $b = $a; + } elseif ($result > $probability) { + $b = $guess; + } else { + $a = $guess; + } + } + if ($i == MAX_ITERATIONS) { + return PHPExcel_Calculation_Functions::NA(); + } + return round($rMin + $guess * ($rMax - $rMin),12); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function BETAINV() + + + /** + * BINOMDIST + * + * Returns the individual term binomial distribution probability. Use BINOMDIST in problems with + * a fixed number of tests or trials, when the outcomes of any trial are only success or failure, + * when trials are independent, and when the probability of success is constant throughout the + * experiment. For example, BINOMDIST can calculate the probability that two of the next three + * babies born are male. + * + * @param float $value Number of successes in trials + * @param float $trials Number of trials + * @param float $probability Probability of success on each trial + * @param boolean $cumulative + * @return float + * + * @todo Cumulative distribution function + * + */ + public static function BINOMDIST($value, $trials, $probability, $cumulative) { + $value = floor(PHPExcel_Calculation_Functions::flattenSingleValue($value)); + $trials = floor(PHPExcel_Calculation_Functions::flattenSingleValue($trials)); + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + + if ((is_numeric($value)) && (is_numeric($trials)) && (is_numeric($probability))) { + if (($value < 0) || ($value > $trials)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (($probability < 0) || ($probability > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ((is_numeric($cumulative)) || (is_bool($cumulative))) { + if ($cumulative) { + $summer = 0; + for ($i = 0; $i <= $value; ++$i) { + $summer += PHPExcel_Calculation_MathTrig::COMBIN($trials,$i) * pow($probability,$i) * pow(1 - $probability,$trials - $i); + } + return $summer; + } else { + return PHPExcel_Calculation_MathTrig::COMBIN($trials,$value) * pow($probability,$value) * pow(1 - $probability,$trials - $value) ; + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function BINOMDIST() + + + /** + * CHIDIST + * + * Returns the one-tailed probability of the chi-squared distribution. + * + * @param float $value Value for the function + * @param float $degrees degrees of freedom + * @return float + */ + public static function CHIDIST($value, $degrees) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $degrees = floor(PHPExcel_Calculation_Functions::flattenSingleValue($degrees)); + + if ((is_numeric($value)) && (is_numeric($degrees))) { + if ($degrees < 1) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($value < 0) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + return 1; + } + return PHPExcel_Calculation_Functions::NaN(); + } + return 1 - (self::_incompleteGamma($degrees/2,$value/2) / self::_gamma($degrees/2)); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function CHIDIST() + + + /** + * CHIINV + * + * Returns the one-tailed probability of the chi-squared distribution. + * + * @param float $probability Probability for the function + * @param float $degrees degrees of freedom + * @return float + */ + public static function CHIINV($probability, $degrees) { + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + $degrees = floor(PHPExcel_Calculation_Functions::flattenSingleValue($degrees)); + + if ((is_numeric($probability)) && (is_numeric($degrees))) { + + $xLo = 100; + $xHi = 0; + + $x = $xNew = 1; + $dx = 1; + $i = 0; + + while ((abs($dx) > PRECISION) && ($i++ < MAX_ITERATIONS)) { + // Apply Newton-Raphson step + $result = self::CHIDIST($x, $degrees); + $error = $result - $probability; + if ($error == 0.0) { + $dx = 0; + } elseif ($error < 0.0) { + $xLo = $x; + } else { + $xHi = $x; + } + // Avoid division by zero + if ($result != 0.0) { + $dx = $error / $result; + $xNew = $x - $dx; + } + // If the NR fails to converge (which for example may be the + // case if the initial guess is too rough) we apply a bisection + // step to determine a more narrow interval around the root. + if (($xNew < $xLo) || ($xNew > $xHi) || ($result == 0.0)) { + $xNew = ($xLo + $xHi) / 2; + $dx = $xNew - $x; + } + $x = $xNew; + } + if ($i == MAX_ITERATIONS) { + return PHPExcel_Calculation_Functions::NA(); + } + return round($x,12); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function CHIINV() + + + /** + * CONFIDENCE + * + * Returns the confidence interval for a population mean + * + * @param float $alpha + * @param float $stdDev Standard Deviation + * @param float $size + * @return float + * + */ + public static function CONFIDENCE($alpha,$stdDev,$size) { + $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); + $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); + $size = floor(PHPExcel_Calculation_Functions::flattenSingleValue($size)); + + if ((is_numeric($alpha)) && (is_numeric($stdDev)) && (is_numeric($size))) { + if (($alpha <= 0) || ($alpha >= 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (($stdDev <= 0) || ($size < 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return self::NORMSINV(1 - $alpha / 2) * $stdDev / sqrt($size); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function CONFIDENCE() + + + /** + * CORREL + * + * Returns covariance, the average of the products of deviations for each data point pair. + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @return float + */ + public static function CORREL($yValues,$xValues=null) { + if ((is_null($xValues)) || (!is_array($yValues)) || (!is_array($xValues))) { + return PHPExcel_Calculation_Functions::VALUE(); + } + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues); + return $bestFitLinear->getCorrelation(); + } // function CORREL() + + + /** + * COUNT + * + * Counts the number of cells that contain numbers within the list of arguments + * + * Excel Function: + * COUNT(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return int + */ + public static function COUNT() { + // Return value + $returnValue = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + foreach ($aArgs as $k => $arg) { + if ((is_bool($arg)) && + ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { + $arg = (integer) $arg; + } + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + ++$returnValue; + } + } + + // Return + return $returnValue; + } // function COUNT() + + + /** + * COUNTA + * + * Counts the number of cells that are not empty within the list of arguments + * + * Excel Function: + * COUNTA(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return int + */ + public static function COUNTA() { + // Return value + $returnValue = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + // Is it a numeric, boolean or string value? + if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) { + ++$returnValue; + } + } + + // Return + return $returnValue; + } // function COUNTA() + + + /** + * COUNTBLANK + * + * Counts the number of empty cells within the list of arguments + * + * Excel Function: + * COUNTBLANK(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return int + */ + public static function COUNTBLANK() { + // Return value + $returnValue = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + // Is it a blank cell? + if ((is_null($arg)) || ((is_string($arg)) && ($arg == ''))) { + ++$returnValue; + } + } + + // Return + return $returnValue; + } // function COUNTBLANK() + + + /** + * COUNTIF + * + * Counts the number of cells that contain numbers within the list of arguments + * + * Excel Function: + * COUNTIF(value1[,value2[, ...]],condition) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @param string $condition The criteria that defines which cells will be counted. + * @return int + */ + public static function COUNTIF($aArgs,$condition) { + // Return value + $returnValue = 0; + + $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); + $condition = PHPExcel_Calculation_Functions::_ifCondition($condition); + // Loop through arguments + foreach ($aArgs as $arg) { + if (!is_numeric($arg)) { $arg = PHPExcel_Calculation::_wrapResult(strtoupper($arg)); } + $testCondition = '='.$arg.$condition; + if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + // Is it a value within our criteria + ++$returnValue; + } + } + + // Return + return $returnValue; + } // function COUNTIF() + + + /** + * COVAR + * + * Returns covariance, the average of the products of deviations for each data point pair. + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @return float + */ + public static function COVAR($yValues,$xValues) { + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues); + return $bestFitLinear->getCovariance(); + } // function COVAR() + + + /** + * CRITBINOM + * + * Returns the smallest value for which the cumulative binomial distribution is greater + * than or equal to a criterion value + * + * See http://support.microsoft.com/kb/828117/ for details of the algorithm used + * + * @param float $trials number of Bernoulli trials + * @param float $probability probability of a success on each trial + * @param float $alpha criterion value + * @return int + * + * @todo Warning. This implementation differs from the algorithm detailed on the MS + * web site in that $CumPGuessMinus1 = $CumPGuess - 1 rather than $CumPGuess - $PGuess + * This eliminates a potential endless loop error, but may have an adverse affect on the + * accuracy of the function (although all my tests have so far returned correct results). + * + */ + public static function CRITBINOM($trials, $probability, $alpha) { + $trials = floor(PHPExcel_Calculation_Functions::flattenSingleValue($trials)); + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); + + if ((is_numeric($trials)) && (is_numeric($probability)) && (is_numeric($alpha))) { + if ($trials < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (($probability < 0) || ($probability > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (($alpha < 0) || ($alpha > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($alpha <= 0.5) { + $t = sqrt(log(1 / ($alpha * $alpha))); + $trialsApprox = 0 - ($t + (2.515517 + 0.802853 * $t + 0.010328 * $t * $t) / (1 + 1.432788 * $t + 0.189269 * $t * $t + 0.001308 * $t * $t * $t)); + } else { + $t = sqrt(log(1 / pow(1 - $alpha,2))); + $trialsApprox = $t - (2.515517 + 0.802853 * $t + 0.010328 * $t * $t) / (1 + 1.432788 * $t + 0.189269 * $t * $t + 0.001308 * $t * $t * $t); + } + $Guess = floor($trials * $probability + $trialsApprox * sqrt($trials * $probability * (1 - $probability))); + if ($Guess < 0) { + $Guess = 0; + } elseif ($Guess > $trials) { + $Guess = $trials; + } + + $TotalUnscaledProbability = $UnscaledPGuess = $UnscaledCumPGuess = 0.0; + $EssentiallyZero = 10e-12; + + $m = floor($trials * $probability); + ++$TotalUnscaledProbability; + if ($m == $Guess) { ++$UnscaledPGuess; } + if ($m <= $Guess) { ++$UnscaledCumPGuess; } + + $PreviousValue = 1; + $Done = False; + $k = $m + 1; + while ((!$Done) && ($k <= $trials)) { + $CurrentValue = $PreviousValue * ($trials - $k + 1) * $probability / ($k * (1 - $probability)); + $TotalUnscaledProbability += $CurrentValue; + if ($k == $Guess) { $UnscaledPGuess += $CurrentValue; } + if ($k <= $Guess) { $UnscaledCumPGuess += $CurrentValue; } + if ($CurrentValue <= $EssentiallyZero) { $Done = True; } + $PreviousValue = $CurrentValue; + ++$k; + } + + $PreviousValue = 1; + $Done = False; + $k = $m - 1; + while ((!$Done) && ($k >= 0)) { + $CurrentValue = $PreviousValue * $k + 1 * (1 - $probability) / (($trials - $k) * $probability); + $TotalUnscaledProbability += $CurrentValue; + if ($k == $Guess) { $UnscaledPGuess += $CurrentValue; } + if ($k <= $Guess) { $UnscaledCumPGuess += $CurrentValue; } + if ($CurrentValue <= $EssentiallyZero) { $Done = True; } + $PreviousValue = $CurrentValue; + --$k; + } + + $PGuess = $UnscaledPGuess / $TotalUnscaledProbability; + $CumPGuess = $UnscaledCumPGuess / $TotalUnscaledProbability; + +// $CumPGuessMinus1 = $CumPGuess - $PGuess; + $CumPGuessMinus1 = $CumPGuess - 1; + + while (True) { + if (($CumPGuessMinus1 < $alpha) && ($CumPGuess >= $alpha)) { + return $Guess; + } elseif (($CumPGuessMinus1 < $alpha) && ($CumPGuess < $alpha)) { + $PGuessPlus1 = $PGuess * ($trials - $Guess) * $probability / $Guess / (1 - $probability); + $CumPGuessMinus1 = $CumPGuess; + $CumPGuess = $CumPGuess + $PGuessPlus1; + $PGuess = $PGuessPlus1; + ++$Guess; + } elseif (($CumPGuessMinus1 >= $alpha) && ($CumPGuess >= $alpha)) { + $PGuessMinus1 = $PGuess * $Guess * (1 - $probability) / ($trials - $Guess + 1) / $probability; + $CumPGuess = $CumPGuessMinus1; + $CumPGuessMinus1 = $CumPGuessMinus1 - $PGuess; + $PGuess = $PGuessMinus1; + --$Guess; + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function CRITBINOM() + + + /** + * DEVSQ + * + * Returns the sum of squares of deviations of data points from their sample mean. + * + * Excel Function: + * DEVSQ(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function DEVSQ() { + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + + // Return value + $returnValue = null; + + $aMean = self::AVERAGE($aArgs); + if ($aMean != PHPExcel_Calculation_Functions::DIV0()) { + $aCount = -1; + foreach ($aArgs as $k => $arg) { + // Is it a numeric value? + if ((is_bool($arg)) && + ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { + $arg = (integer) $arg; + } + if ((is_numeric($arg)) && (!is_string($arg))) { + if (is_null($returnValue)) { + $returnValue = pow(($arg - $aMean),2); + } else { + $returnValue += pow(($arg - $aMean),2); + } + ++$aCount; + } + } + + // Return + if (is_null($returnValue)) { + return PHPExcel_Calculation_Functions::NaN(); + } else { + return $returnValue; + } + } + return self::NA(); + } // function DEVSQ() + + + /** + * EXPONDIST + * + * Returns the exponential distribution. Use EXPONDIST to model the time between events, + * such as how long an automated bank teller takes to deliver cash. For example, you can + * use EXPONDIST to determine the probability that the process takes at most 1 minute. + * + * @param float $value Value of the function + * @param float $lambda The parameter value + * @param boolean $cumulative + * @return float + */ + public static function EXPONDIST($value, $lambda, $cumulative) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $lambda = PHPExcel_Calculation_Functions::flattenSingleValue($lambda); + $cumulative = PHPExcel_Calculation_Functions::flattenSingleValue($cumulative); + + if ((is_numeric($value)) && (is_numeric($lambda))) { + if (($value < 0) || ($lambda < 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ((is_numeric($cumulative)) || (is_bool($cumulative))) { + if ($cumulative) { + return 1 - exp(0-$value*$lambda); + } else { + return $lambda * exp(0-$value*$lambda); + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function EXPONDIST() + + + /** + * FISHER + * + * Returns the Fisher transformation at x. This transformation produces a function that + * is normally distributed rather than skewed. Use this function to perform hypothesis + * testing on the correlation coefficient. + * + * @param float $value + * @return float + */ + public static function FISHER($value) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + + if (is_numeric($value)) { + if (($value <= -1) || ($value >= 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return 0.5 * log((1+$value)/(1-$value)); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function FISHER() + + + /** + * FISHERINV + * + * Returns the inverse of the Fisher transformation. Use this transformation when + * analyzing correlations between ranges or arrays of data. If y = FISHER(x), then + * FISHERINV(y) = x. + * + * @param float $value + * @return float + */ + public static function FISHERINV($value) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + + if (is_numeric($value)) { + return (exp(2 * $value) - 1) / (exp(2 * $value) + 1); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function FISHERINV() + + + /** + * FORECAST + * + * Calculates, or predicts, a future value by using existing values. The predicted value is a y-value for a given x-value. + * + * @param float Value of X for which we want to find Y + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @return float + */ + public static function FORECAST($xValue,$yValues,$xValues) { + $xValue = PHPExcel_Calculation_Functions::flattenSingleValue($xValue); + if (!is_numeric($xValue)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues); + return $bestFitLinear->getValueOfYForX($xValue); + } // function FORECAST() + + + /** + * GAMMADIST + * + * Returns the gamma distribution. + * + * @param float $value Value at which you want to evaluate the distribution + * @param float $a Parameter to the distribution + * @param float $b Parameter to the distribution + * @param boolean $cumulative + * @return float + * + */ + public static function GAMMADIST($value,$a,$b,$cumulative) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $a = PHPExcel_Calculation_Functions::flattenSingleValue($a); + $b = PHPExcel_Calculation_Functions::flattenSingleValue($b); + + if ((is_numeric($value)) && (is_numeric($a)) && (is_numeric($b))) { + if (($value < 0) || ($a <= 0) || ($b <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ((is_numeric($cumulative)) || (is_bool($cumulative))) { + if ($cumulative) { + return self::_incompleteGamma($a,$value / $b) / self::_gamma($a); + } else { + return (1 / (pow($b,$a) * self::_gamma($a))) * pow($value,$a-1) * exp(0-($value / $b)); + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function GAMMADIST() + + + /** + * GAMMAINV + * + * Returns the inverse of the beta distribution. + * + * @param float $probability Probability at which you want to evaluate the distribution + * @param float $alpha Parameter to the distribution + * @param float $beta Parameter to the distribution + * @return float + * + */ + public static function GAMMAINV($probability,$alpha,$beta) { + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); + $beta = PHPExcel_Calculation_Functions::flattenSingleValue($beta); + + if ((is_numeric($probability)) && (is_numeric($alpha)) && (is_numeric($beta))) { + if (($alpha <= 0) || ($beta <= 0) || ($probability < 0) || ($probability > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $xLo = 0; + $xHi = $alpha * $beta * 5; + + $x = $xNew = 1; + $error = $pdf = 0; + $dx = 1024; + $i = 0; + + while ((abs($dx) > PRECISION) && ($i++ < MAX_ITERATIONS)) { + // Apply Newton-Raphson step + $error = self::GAMMADIST($x, $alpha, $beta, True) - $probability; + if ($error < 0.0) { + $xLo = $x; + } else { + $xHi = $x; + } + $pdf = self::GAMMADIST($x, $alpha, $beta, False); + // Avoid division by zero + if ($pdf != 0.0) { + $dx = $error / $pdf; + $xNew = $x - $dx; + } + // If the NR fails to converge (which for example may be the + // case if the initial guess is too rough) we apply a bisection + // step to determine a more narrow interval around the root. + if (($xNew < $xLo) || ($xNew > $xHi) || ($pdf == 0.0)) { + $xNew = ($xLo + $xHi) / 2; + $dx = $xNew - $x; + } + $x = $xNew; + } + if ($i == MAX_ITERATIONS) { + return PHPExcel_Calculation_Functions::NA(); + } + return $x; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function GAMMAINV() + + + /** + * GAMMALN + * + * Returns the natural logarithm of the gamma function. + * + * @param float $value + * @return float + */ + public static function GAMMALN($value) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + + if (is_numeric($value)) { + if ($value <= 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return log(self::_gamma($value)); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function GAMMALN() + + + /** + * GEOMEAN + * + * Returns the geometric mean of an array or range of positive data. For example, you + * can use GEOMEAN to calculate average growth rate given compound interest with + * variable rates. + * + * Excel Function: + * GEOMEAN(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function GEOMEAN() { + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + $aMean = PHPExcel_Calculation_MathTrig::PRODUCT($aArgs); + if (is_numeric($aMean) && ($aMean > 0)) { + $aCount = self::COUNT($aArgs) ; + if (self::MIN($aArgs) > 0) { + return pow($aMean, (1 / $aCount)); + } + } + return PHPExcel_Calculation_Functions::NaN(); + } // GEOMEAN() + + + /** + * GROWTH + * + * Returns values along a predicted emponential trend + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @param array of mixed Values of X for which we want to find Y + * @param boolean A logical value specifying whether to force the intersect to equal 0. + * @return array of float + */ + public static function GROWTH($yValues,$xValues=array(),$newValues=array(),$const=True) { + $yValues = PHPExcel_Calculation_Functions::flattenArray($yValues); + $xValues = PHPExcel_Calculation_Functions::flattenArray($xValues); + $newValues = PHPExcel_Calculation_Functions::flattenArray($newValues); + $const = (is_null($const)) ? True : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($const); + + $bestFitExponential = trendClass::calculate(trendClass::TREND_EXPONENTIAL,$yValues,$xValues,$const); + if (empty($newValues)) { + $newValues = $bestFitExponential->getXValues(); + } + + $returnArray = array(); + foreach($newValues as $xValue) { + $returnArray[0][] = $bestFitExponential->getValueOfYForX($xValue); + } + + return $returnArray; + } // function GROWTH() + + + /** + * HARMEAN + * + * Returns the harmonic mean of a data set. The harmonic mean is the reciprocal of the + * arithmetic mean of reciprocals. + * + * Excel Function: + * HARMEAN(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function HARMEAN() { + // Return value + $returnValue = PHPExcel_Calculation_Functions::NA(); + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + if (self::MIN($aArgs) < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + $aCount = 0; + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if ($arg <= 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (is_null($returnValue)) { + $returnValue = (1 / $arg); + } else { + $returnValue += (1 / $arg); + } + ++$aCount; + } + } + + // Return + if ($aCount > 0) { + return 1 / ($returnValue / $aCount); + } else { + return $returnValue; + } + } // function HARMEAN() + + + /** + * HYPGEOMDIST + * + * Returns the hypergeometric distribution. HYPGEOMDIST returns the probability of a given number of + * sample successes, given the sample size, population successes, and population size. + * + * @param float $sampleSuccesses Number of successes in the sample + * @param float $sampleNumber Size of the sample + * @param float $populationSuccesses Number of successes in the population + * @param float $populationNumber Population size + * @return float + * + */ + public static function HYPGEOMDIST($sampleSuccesses, $sampleNumber, $populationSuccesses, $populationNumber) { + $sampleSuccesses = floor(PHPExcel_Calculation_Functions::flattenSingleValue($sampleSuccesses)); + $sampleNumber = floor(PHPExcel_Calculation_Functions::flattenSingleValue($sampleNumber)); + $populationSuccesses = floor(PHPExcel_Calculation_Functions::flattenSingleValue($populationSuccesses)); + $populationNumber = floor(PHPExcel_Calculation_Functions::flattenSingleValue($populationNumber)); + + if ((is_numeric($sampleSuccesses)) && (is_numeric($sampleNumber)) && (is_numeric($populationSuccesses)) && (is_numeric($populationNumber))) { + if (($sampleSuccesses < 0) || ($sampleSuccesses > $sampleNumber) || ($sampleSuccesses > $populationSuccesses)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (($sampleNumber <= 0) || ($sampleNumber > $populationNumber)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (($populationSuccesses <= 0) || ($populationSuccesses > $populationNumber)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return PHPExcel_Calculation_MathTrig::COMBIN($populationSuccesses,$sampleSuccesses) * + PHPExcel_Calculation_MathTrig::COMBIN($populationNumber - $populationSuccesses,$sampleNumber - $sampleSuccesses) / + PHPExcel_Calculation_MathTrig::COMBIN($populationNumber,$sampleNumber); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function HYPGEOMDIST() + + + /** + * INTERCEPT + * + * Calculates the point at which a line will intersect the y-axis by using existing x-values and y-values. + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @return float + */ + public static function INTERCEPT($yValues,$xValues) { + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues); + return $bestFitLinear->getIntersect(); + } // function INTERCEPT() + + + /** + * KURT + * + * Returns the kurtosis of a data set. Kurtosis characterizes the relative peakedness + * or flatness of a distribution compared with the normal distribution. Positive + * kurtosis indicates a relatively peaked distribution. Negative kurtosis indicates a + * relatively flat distribution. + * + * @param array Data Series + * @return float + */ + public static function KURT() { + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + $mean = self::AVERAGE($aArgs); + $stdDev = self::STDEV($aArgs); + + if ($stdDev > 0) { + $count = $summer = 0; + // Loop through arguments + foreach ($aArgs as $k => $arg) { + if ((is_bool($arg)) && + (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { + } else { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $summer += pow((($arg - $mean) / $stdDev),4) ; + ++$count; + } + } + } + + // Return + if ($count > 3) { + return $summer * ($count * ($count+1) / (($count-1) * ($count-2) * ($count-3))) - (3 * pow($count-1,2) / (($count-2) * ($count-3))); + } + } + return PHPExcel_Calculation_Functions::DIV0(); + } // function KURT() + + + /** + * LARGE + * + * Returns the nth largest value in a data set. You can use this function to + * select a value based on its relative standing. + * + * Excel Function: + * LARGE(value1[,value2[, ...]],entry) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @param int $entry Position (ordered from the largest) in the array or range of data to return + * @return float + * + */ + public static function LARGE() { + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + // Calculate + $entry = floor(array_pop($aArgs)); + + if ((is_numeric($entry)) && (!is_string($entry))) { + $mArgs = array(); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $mArgs[] = $arg; + } + } + $count = self::COUNT($mArgs); + $entry = floor(--$entry); + if (($entry < 0) || ($entry >= $count) || ($count == 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + rsort($mArgs); + return $mArgs[$entry]; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function LARGE() + + + /** + * LINEST + * + * Calculates the statistics for a line by using the "least squares" method to calculate a straight line that best fits your data, + * and then returns an array that describes the line. + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @param boolean A logical value specifying whether to force the intersect to equal 0. + * @param boolean A logical value specifying whether to return additional regression statistics. + * @return array + */ + public static function LINEST($yValues,$xValues=null,$const=True,$stats=False) { + $const = (is_null($const)) ? True : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($const); + $stats = (is_null($stats)) ? False : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($stats); + if (is_null($xValues)) $xValues = range(1,count(PHPExcel_Calculation_Functions::flattenArray($yValues))); + + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return 0; + } + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues,$const); + if ($stats) { + return array( array( $bestFitLinear->getSlope(), + $bestFitLinear->getSlopeSE(), + $bestFitLinear->getGoodnessOfFit(), + $bestFitLinear->getF(), + $bestFitLinear->getSSRegression(), + ), + array( $bestFitLinear->getIntersect(), + $bestFitLinear->getIntersectSE(), + $bestFitLinear->getStdevOfResiduals(), + $bestFitLinear->getDFResiduals(), + $bestFitLinear->getSSResiduals() + ) + ); + } else { + return array( $bestFitLinear->getSlope(), + $bestFitLinear->getIntersect() + ); + } + } // function LINEST() + + + /** + * LOGEST + * + * Calculates an exponential curve that best fits the X and Y data series, + * and then returns an array that describes the line. + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @param boolean A logical value specifying whether to force the intersect to equal 0. + * @param boolean A logical value specifying whether to return additional regression statistics. + * @return array + */ + public static function LOGEST($yValues,$xValues=null,$const=True,$stats=False) { + $const = (is_null($const)) ? True : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($const); + $stats = (is_null($stats)) ? False : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($stats); + if (is_null($xValues)) $xValues = range(1,count(PHPExcel_Calculation_Functions::flattenArray($yValues))); + + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + foreach($yValues as $value) { + if ($value <= 0.0) { + return PHPExcel_Calculation_Functions::NaN(); + } + } + + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return 1; + } + + $bestFitExponential = trendClass::calculate(trendClass::TREND_EXPONENTIAL,$yValues,$xValues,$const); + if ($stats) { + return array( array( $bestFitExponential->getSlope(), + $bestFitExponential->getSlopeSE(), + $bestFitExponential->getGoodnessOfFit(), + $bestFitExponential->getF(), + $bestFitExponential->getSSRegression(), + ), + array( $bestFitExponential->getIntersect(), + $bestFitExponential->getIntersectSE(), + $bestFitExponential->getStdevOfResiduals(), + $bestFitExponential->getDFResiduals(), + $bestFitExponential->getSSResiduals() + ) + ); + } else { + return array( $bestFitExponential->getSlope(), + $bestFitExponential->getIntersect() + ); + } + } // function LOGEST() + + + /** + * LOGINV + * + * Returns the inverse of the normal cumulative distribution + * + * @param float $value + * @return float + * + * @todo Try implementing P J Acklam's refinement algorithm for greater + * accuracy if I can get my head round the mathematics + * (as described at) http://home.online.no/~pjacklam/notes/invnorm/ + */ + public static function LOGINV($probability, $mean, $stdDev) { + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); + $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); + + if ((is_numeric($probability)) && (is_numeric($mean)) && (is_numeric($stdDev))) { + if (($probability < 0) || ($probability > 1) || ($stdDev <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return exp($mean + $stdDev * self::NORMSINV($probability)); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function LOGINV() + + + /** + * LOGNORMDIST + * + * Returns the cumulative lognormal distribution of x, where ln(x) is normally distributed + * with parameters mean and standard_dev. + * + * @param float $value + * @return float + */ + public static function LOGNORMDIST($value, $mean, $stdDev) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); + $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); + + if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) { + if (($value <= 0) || ($stdDev <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return self::NORMSDIST((log($value) - $mean) / $stdDev); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function LOGNORMDIST() + + + /** + * MAX + * + * MAX returns the value of the element of the values passed that has the highest value, + * with negative numbers considered smaller than positive numbers. + * + * Excel Function: + * MAX(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function MAX() { + // Return value + $returnValue = null; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if ((is_null($returnValue)) || ($arg > $returnValue)) { + $returnValue = $arg; + } + } + } + + // Return + if(is_null($returnValue)) { + return 0; + } + return $returnValue; + } // function MAX() + + + /** + * MAXA + * + * Returns the greatest value in a list of arguments, including numbers, text, and logical values + * + * Excel Function: + * MAXA(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function MAXA() { + // Return value + $returnValue = null; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) { + if (is_bool($arg)) { + $arg = (integer) $arg; + } elseif (is_string($arg)) { + $arg = 0; + } + if ((is_null($returnValue)) || ($arg > $returnValue)) { + $returnValue = $arg; + } + } + } + + // Return + if(is_null($returnValue)) { + return 0; + } + return $returnValue; + } // function MAXA() + + + /** + * MAXIF + * + * Counts the maximum value within a range of cells that contain numbers within the list of arguments + * + * Excel Function: + * MAXIF(value1[,value2[, ...]],condition) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @param string $condition The criteria that defines which cells will be checked. + * @return float + */ + public static function MAXIF($aArgs,$condition,$sumArgs = array()) { + // Return value + $returnValue = null; + + $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); + $sumArgs = PHPExcel_Calculation_Functions::flattenArray($sumArgs); + if (empty($sumArgs)) { + $sumArgs = $aArgs; + } + $condition = PHPExcel_Calculation_Functions::_ifCondition($condition); + // Loop through arguments + foreach ($aArgs as $key => $arg) { + if (!is_numeric($arg)) { $arg = PHPExcel_Calculation::_wrapResult(strtoupper($arg)); } + $testCondition = '='.$arg.$condition; + if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if ((is_null($returnValue)) || ($arg > $returnValue)) { + $returnValue = $arg; + } + } + } + + // Return + return $returnValue; + } // function MAXIF() + + + /** + * MEDIAN + * + * Returns the median of the given numbers. The median is the number in the middle of a set of numbers. + * + * Excel Function: + * MEDIAN(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function MEDIAN() { + // Return value + $returnValue = PHPExcel_Calculation_Functions::NaN(); + + $mArgs = array(); + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $mArgs[] = $arg; + } + } + + $mValueCount = count($mArgs); + if ($mValueCount > 0) { + sort($mArgs,SORT_NUMERIC); + $mValueCount = $mValueCount / 2; + if ($mValueCount == floor($mValueCount)) { + $returnValue = ($mArgs[$mValueCount--] + $mArgs[$mValueCount]) / 2; + } else { + $mValueCount == floor($mValueCount); + $returnValue = $mArgs[$mValueCount]; + } + } + + // Return + return $returnValue; + } // function MEDIAN() + + + /** + * MIN + * + * MIN returns the value of the element of the values passed that has the smallest value, + * with negative numbers considered smaller than positive numbers. + * + * Excel Function: + * MIN(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function MIN() { + // Return value + $returnValue = null; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if ((is_null($returnValue)) || ($arg < $returnValue)) { + $returnValue = $arg; + } + } + } + + // Return + if(is_null($returnValue)) { + return 0; + } + return $returnValue; + } // function MIN() + + + /** + * MINA + * + * Returns the smallest value in a list of arguments, including numbers, text, and logical values + * + * Excel Function: + * MINA(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function MINA() { + // Return value + $returnValue = null; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) { + if (is_bool($arg)) { + $arg = (integer) $arg; + } elseif (is_string($arg)) { + $arg = 0; + } + if ((is_null($returnValue)) || ($arg < $returnValue)) { + $returnValue = $arg; + } + } + } + + // Return + if(is_null($returnValue)) { + return 0; + } + return $returnValue; + } // function MINA() + + + /** + * MINIF + * + * Returns the minimum value within a range of cells that contain numbers within the list of arguments + * + * Excel Function: + * MINIF(value1[,value2[, ...]],condition) + * + * @access public + * @category Mathematical and Trigonometric Functions + * @param mixed $arg,... Data values + * @param string $condition The criteria that defines which cells will be checked. + * @return float + */ + public static function MINIF($aArgs,$condition,$sumArgs = array()) { + // Return value + $returnValue = null; + + $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); + $sumArgs = PHPExcel_Calculation_Functions::flattenArray($sumArgs); + if (empty($sumArgs)) { + $sumArgs = $aArgs; + } + $condition = PHPExcel_Calculation_Functions::_ifCondition($condition); + // Loop through arguments + foreach ($aArgs as $key => $arg) { + if (!is_numeric($arg)) { $arg = PHPExcel_Calculation::_wrapResult(strtoupper($arg)); } + $testCondition = '='.$arg.$condition; + if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if ((is_null($returnValue)) || ($arg < $returnValue)) { + $returnValue = $arg; + } + } + } + + // Return + return $returnValue; + } // function MINIF() + + + // + // Special variant of array_count_values that isn't limited to strings and integers, + // but can work with floating point numbers as values + // + private static function _modeCalc($data) { + $frequencyArray = array(); + foreach($data as $datum) { + $found = False; + foreach($frequencyArray as $key => $value) { + if ((string) $value['value'] == (string) $datum) { + ++$frequencyArray[$key]['frequency']; + $found = True; + break; + } + } + if (!$found) { + $frequencyArray[] = array('value' => $datum, + 'frequency' => 1 ); + } + } + + foreach($frequencyArray as $key => $value) { + $frequencyList[$key] = $value['frequency']; + $valueList[$key] = $value['value']; + } + array_multisort($frequencyList, SORT_DESC, $valueList, SORT_ASC, SORT_NUMERIC, $frequencyArray); + + if ($frequencyArray[0]['frequency'] == 1) { + return PHPExcel_Calculation_Functions::NA(); + } + return $frequencyArray[0]['value']; + } // function _modeCalc() + + + /** + * MODE + * + * Returns the most frequently occurring, or repetitive, value in an array or range of data + * + * Excel Function: + * MODE(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function MODE() { + // Return value + $returnValue = PHPExcel_Calculation_Functions::NA(); + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + $mArgs = array(); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $mArgs[] = $arg; + } + } + + if (!empty($mArgs)) { + return self::_modeCalc($mArgs); + } + + // Return + return $returnValue; + } // function MODE() + + + /** + * NEGBINOMDIST + * + * Returns the negative binomial distribution. NEGBINOMDIST returns the probability that + * there will be number_f failures before the number_s-th success, when the constant + * probability of a success is probability_s. This function is similar to the binomial + * distribution, except that the number of successes is fixed, and the number of trials is + * variable. Like the binomial, trials are assumed to be independent. + * + * @param float $failures Number of Failures + * @param float $successes Threshold number of Successes + * @param float $probability Probability of success on each trial + * @return float + * + */ + public static function NEGBINOMDIST($failures, $successes, $probability) { + $failures = floor(PHPExcel_Calculation_Functions::flattenSingleValue($failures)); + $successes = floor(PHPExcel_Calculation_Functions::flattenSingleValue($successes)); + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + + if ((is_numeric($failures)) && (is_numeric($successes)) && (is_numeric($probability))) { + if (($failures < 0) || ($successes < 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (($probability < 0) || ($probability > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { + if (($failures + $successes - 1) <= 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + } + return (PHPExcel_Calculation_MathTrig::COMBIN($failures + $successes - 1,$successes - 1)) * (pow($probability,$successes)) * (pow(1 - $probability,$failures)) ; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function NEGBINOMDIST() + + + /** + * NORMDIST + * + * Returns the normal distribution for the specified mean and standard deviation. This + * function has a very wide range of applications in statistics, including hypothesis + * testing. + * + * @param float $value + * @param float $mean Mean Value + * @param float $stdDev Standard Deviation + * @param boolean $cumulative + * @return float + * + */ + public static function NORMDIST($value, $mean, $stdDev, $cumulative) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); + $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); + + if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) { + if ($stdDev < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ((is_numeric($cumulative)) || (is_bool($cumulative))) { + if ($cumulative) { + return 0.5 * (1 + PHPExcel_Calculation_Engineering::_erfVal(($value - $mean) / ($stdDev * sqrt(2)))); + } else { + return (1 / (SQRT2PI * $stdDev)) * exp(0 - (pow($value - $mean,2) / (2 * ($stdDev * $stdDev)))); + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function NORMDIST() + + + /** + * NORMINV + * + * Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation. + * + * @param float $value + * @param float $mean Mean Value + * @param float $stdDev Standard Deviation + * @return float + * + */ + public static function NORMINV($probability,$mean,$stdDev) { + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); + $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); + + if ((is_numeric($probability)) && (is_numeric($mean)) && (is_numeric($stdDev))) { + if (($probability < 0) || ($probability > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ($stdDev < 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return (self::_inverse_ncdf($probability) * $stdDev) + $mean; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function NORMINV() + + + /** + * NORMSDIST + * + * Returns the standard normal cumulative distribution function. The distribution has + * a mean of 0 (zero) and a standard deviation of one. Use this function in place of a + * table of standard normal curve areas. + * + * @param float $value + * @return float + */ + public static function NORMSDIST($value) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + + return self::NORMDIST($value, 0, 1, True); + } // function NORMSDIST() + + + /** + * NORMSINV + * + * Returns the inverse of the standard normal cumulative distribution + * + * @param float $value + * @return float + */ + public static function NORMSINV($value) { + return self::NORMINV($value, 0, 1); + } // function NORMSINV() + + + /** + * PERCENTILE + * + * Returns the nth percentile of values in a range.. + * + * Excel Function: + * PERCENTILE(value1[,value2[, ...]],entry) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @param float $entry Percentile value in the range 0..1, inclusive. + * @return float + */ + public static function PERCENTILE() { + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + // Calculate + $entry = array_pop($aArgs); + + if ((is_numeric($entry)) && (!is_string($entry))) { + if (($entry < 0) || ($entry > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $mArgs = array(); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $mArgs[] = $arg; + } + } + $mValueCount = count($mArgs); + if ($mValueCount > 0) { + sort($mArgs); + $count = self::COUNT($mArgs); + $index = $entry * ($count-1); + $iBase = floor($index); + if ($index == $iBase) { + return $mArgs[$index]; + } else { + $iNext = $iBase + 1; + $iProportion = $index - $iBase; + return $mArgs[$iBase] + (($mArgs[$iNext] - $mArgs[$iBase]) * $iProportion) ; + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function PERCENTILE() + + + /** + * PERCENTRANK + * + * Returns the rank of a value in a data set as a percentage of the data set. + * + * @param array of number An array of, or a reference to, a list of numbers. + * @param number The number whose rank you want to find. + * @param number The number of significant digits for the returned percentage value. + * @return float + */ + public static function PERCENTRANK($valueSet,$value,$significance=3) { + $valueSet = PHPExcel_Calculation_Functions::flattenArray($valueSet); + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $significance = (is_null($significance)) ? 3 : (integer) PHPExcel_Calculation_Functions::flattenSingleValue($significance); + + foreach($valueSet as $key => $valueEntry) { + if (!is_numeric($valueEntry)) { + unset($valueSet[$key]); + } + } + sort($valueSet,SORT_NUMERIC); + $valueCount = count($valueSet); + if ($valueCount == 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + + $valueAdjustor = $valueCount - 1; + if (($value < $valueSet[0]) || ($value > $valueSet[$valueAdjustor])) { + return PHPExcel_Calculation_Functions::NA(); + } + + $pos = array_search($value,$valueSet); + if ($pos === False) { + $pos = 0; + $testValue = $valueSet[0]; + while ($testValue < $value) { + $testValue = $valueSet[++$pos]; + } + --$pos; + $pos += (($value - $valueSet[$pos]) / ($testValue - $valueSet[$pos])); + } + + return round($pos / $valueAdjustor,$significance); + } // function PERCENTRANK() + + + /** + * PERMUT + * + * Returns the number of permutations for a given number of objects that can be + * selected from number objects. A permutation is any set or subset of objects or + * events where internal order is significant. Permutations are different from + * combinations, for which the internal order is not significant. Use this function + * for lottery-style probability calculations. + * + * @param int $numObjs Number of different objects + * @param int $numInSet Number of objects in each permutation + * @return int Number of permutations + */ + public static function PERMUT($numObjs,$numInSet) { + $numObjs = PHPExcel_Calculation_Functions::flattenSingleValue($numObjs); + $numInSet = PHPExcel_Calculation_Functions::flattenSingleValue($numInSet); + + if ((is_numeric($numObjs)) && (is_numeric($numInSet))) { + $numInSet = floor($numInSet); + if ($numObjs < $numInSet) { + return PHPExcel_Calculation_Functions::NaN(); + } + return round(PHPExcel_Calculation_MathTrig::FACT($numObjs) / PHPExcel_Calculation_MathTrig::FACT($numObjs - $numInSet)); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function PERMUT() + + + /** + * POISSON + * + * Returns the Poisson distribution. A common application of the Poisson distribution + * is predicting the number of events over a specific time, such as the number of + * cars arriving at a toll plaza in 1 minute. + * + * @param float $value + * @param float $mean Mean Value + * @param boolean $cumulative + * @return float + * + */ + public static function POISSON($value, $mean, $cumulative) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); + + if ((is_numeric($value)) && (is_numeric($mean))) { + if (($value <= 0) || ($mean <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ((is_numeric($cumulative)) || (is_bool($cumulative))) { + if ($cumulative) { + $summer = 0; + for ($i = 0; $i <= floor($value); ++$i) { + $summer += pow($mean,$i) / PHPExcel_Calculation_MathTrig::FACT($i); + } + return exp(0-$mean) * $summer; + } else { + return (exp(0-$mean) * pow($mean,$value)) / PHPExcel_Calculation_MathTrig::FACT($value); + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function POISSON() + + + /** + * QUARTILE + * + * Returns the quartile of a data set. + * + * Excel Function: + * QUARTILE(value1[,value2[, ...]],entry) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @param int $entry Quartile value in the range 1..3, inclusive. + * @return float + */ + public static function QUARTILE() { + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + // Calculate + $entry = floor(array_pop($aArgs)); + + if ((is_numeric($entry)) && (!is_string($entry))) { + $entry /= 4; + if (($entry < 0) || ($entry > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + return self::PERCENTILE($aArgs,$entry); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function QUARTILE() + + + /** + * RANK + * + * Returns the rank of a number in a list of numbers. + * + * @param number The number whose rank you want to find. + * @param array of number An array of, or a reference to, a list of numbers. + * @param mixed Order to sort the values in the value set + * @return float + */ + public static function RANK($value,$valueSet,$order=0) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $valueSet = PHPExcel_Calculation_Functions::flattenArray($valueSet); + $order = (is_null($order)) ? 0 : (integer) PHPExcel_Calculation_Functions::flattenSingleValue($order); + + foreach($valueSet as $key => $valueEntry) { + if (!is_numeric($valueEntry)) { + unset($valueSet[$key]); + } + } + + if ($order == 0) { + rsort($valueSet,SORT_NUMERIC); + } else { + sort($valueSet,SORT_NUMERIC); + } + $pos = array_search($value,$valueSet); + if ($pos === False) { + return PHPExcel_Calculation_Functions::NA(); + } + + return ++$pos; + } // function RANK() + + + /** + * RSQ + * + * Returns the square of the Pearson product moment correlation coefficient through data points in known_y's and known_x's. + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @return float + */ + public static function RSQ($yValues,$xValues) { + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues); + return $bestFitLinear->getGoodnessOfFit(); + } // function RSQ() + + + /** + * SKEW + * + * Returns the skewness of a distribution. Skewness characterizes the degree of asymmetry + * of a distribution around its mean. Positive skewness indicates a distribution with an + * asymmetric tail extending toward more positive values. Negative skewness indicates a + * distribution with an asymmetric tail extending toward more negative values. + * + * @param array Data Series + * @return float + */ + public static function SKEW() { + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + $mean = self::AVERAGE($aArgs); + $stdDev = self::STDEV($aArgs); + + $count = $summer = 0; + // Loop through arguments + foreach ($aArgs as $k => $arg) { + if ((is_bool($arg)) && + (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { + } else { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $summer += pow((($arg - $mean) / $stdDev),3) ; + ++$count; + } + } + } + + // Return + if ($count > 2) { + return $summer * ($count / (($count-1) * ($count-2))); + } + return PHPExcel_Calculation_Functions::DIV0(); + } // function SKEW() + + + /** + * SLOPE + * + * Returns the slope of the linear regression line through data points in known_y's and known_x's. + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @return float + */ + public static function SLOPE($yValues,$xValues) { + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues); + return $bestFitLinear->getSlope(); + } // function SLOPE() + + + /** + * SMALL + * + * Returns the nth smallest value in a data set. You can use this function to + * select a value based on its relative standing. + * + * Excel Function: + * SMALL(value1[,value2[, ...]],entry) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @param int $entry Position (ordered from the smallest) in the array or range of data to return + * @return float + */ + public static function SMALL() { + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + // Calculate + $entry = array_pop($aArgs); + + if ((is_numeric($entry)) && (!is_string($entry))) { + $mArgs = array(); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $mArgs[] = $arg; + } + } + $count = self::COUNT($mArgs); + $entry = floor(--$entry); + if (($entry < 0) || ($entry >= $count) || ($count == 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + sort($mArgs); + return $mArgs[$entry]; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SMALL() + + + /** + * STANDARDIZE + * + * Returns a normalized value from a distribution characterized by mean and standard_dev. + * + * @param float $value Value to normalize + * @param float $mean Mean Value + * @param float $stdDev Standard Deviation + * @return float Standardized value + */ + public static function STANDARDIZE($value,$mean,$stdDev) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); + $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); + + if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) { + if ($stdDev <= 0) { + return PHPExcel_Calculation_Functions::NaN(); + } + return ($value - $mean) / $stdDev ; + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function STANDARDIZE() + + + /** + * STDEV + * + * Estimates standard deviation based on a sample. The standard deviation is a measure of how + * widely values are dispersed from the average value (the mean). + * + * Excel Function: + * STDEV(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function STDEV() { + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + + // Return value + $returnValue = null; + + $aMean = self::AVERAGE($aArgs); + if (!is_null($aMean)) { + $aCount = -1; + foreach ($aArgs as $k => $arg) { + if ((is_bool($arg)) && + ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { + $arg = (integer) $arg; + } + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if (is_null($returnValue)) { + $returnValue = pow(($arg - $aMean),2); + } else { + $returnValue += pow(($arg - $aMean),2); + } + ++$aCount; + } + } + + // Return + if (($aCount > 0) && ($returnValue >= 0)) { + return sqrt($returnValue / $aCount); + } + } + return PHPExcel_Calculation_Functions::DIV0(); + } // function STDEV() + + + /** + * STDEVA + * + * Estimates standard deviation based on a sample, including numbers, text, and logical values + * + * Excel Function: + * STDEVA(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function STDEVA() { + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + + // Return value + $returnValue = null; + + $aMean = self::AVERAGEA($aArgs); + if (!is_null($aMean)) { + $aCount = -1; + foreach ($aArgs as $k => $arg) { + if ((is_bool($arg)) && + (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { + } else { + // Is it a numeric value? + if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) { + if (is_bool($arg)) { + $arg = (integer) $arg; + } elseif (is_string($arg)) { + $arg = 0; + } + if (is_null($returnValue)) { + $returnValue = pow(($arg - $aMean),2); + } else { + $returnValue += pow(($arg - $aMean),2); + } + ++$aCount; + } + } + } + + // Return + if (($aCount > 0) && ($returnValue >= 0)) { + return sqrt($returnValue / $aCount); + } + } + return PHPExcel_Calculation_Functions::DIV0(); + } // function STDEVA() + + + /** + * STDEVP + * + * Calculates standard deviation based on the entire population + * + * Excel Function: + * STDEVP(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function STDEVP() { + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + + // Return value + $returnValue = null; + + $aMean = self::AVERAGE($aArgs); + if (!is_null($aMean)) { + $aCount = 0; + foreach ($aArgs as $k => $arg) { + if ((is_bool($arg)) && + ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { + $arg = (integer) $arg; + } + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + if (is_null($returnValue)) { + $returnValue = pow(($arg - $aMean),2); + } else { + $returnValue += pow(($arg - $aMean),2); + } + ++$aCount; + } + } + + // Return + if (($aCount > 0) && ($returnValue >= 0)) { + return sqrt($returnValue / $aCount); + } + } + return PHPExcel_Calculation_Functions::DIV0(); + } // function STDEVP() + + + /** + * STDEVPA + * + * Calculates standard deviation based on the entire population, including numbers, text, and logical values + * + * Excel Function: + * STDEVPA(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function STDEVPA() { + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + + // Return value + $returnValue = null; + + $aMean = self::AVERAGEA($aArgs); + if (!is_null($aMean)) { + $aCount = 0; + foreach ($aArgs as $k => $arg) { + if ((is_bool($arg)) && + (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { + } else { + // Is it a numeric value? + if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) { + if (is_bool($arg)) { + $arg = (integer) $arg; + } elseif (is_string($arg)) { + $arg = 0; + } + if (is_null($returnValue)) { + $returnValue = pow(($arg - $aMean),2); + } else { + $returnValue += pow(($arg - $aMean),2); + } + ++$aCount; + } + } + } + + // Return + if (($aCount > 0) && ($returnValue >= 0)) { + return sqrt($returnValue / $aCount); + } + } + return PHPExcel_Calculation_Functions::DIV0(); + } // function STDEVPA() + + + /** + * STEYX + * + * Returns the standard error of the predicted y-value for each x in the regression. + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @return float + */ + public static function STEYX($yValues,$xValues) { + if (!self::_checkTrendArrays($yValues,$xValues)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + $yValueCount = count($yValues); + $xValueCount = count($xValues); + + if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { + return PHPExcel_Calculation_Functions::NA(); + } elseif ($yValueCount == 1) { + return PHPExcel_Calculation_Functions::DIV0(); + } + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues); + return $bestFitLinear->getStdevOfResiduals(); + } // function STEYX() + + + /** + * TDIST + * + * Returns the probability of Student's T distribution. + * + * @param float $value Value for the function + * @param float $degrees degrees of freedom + * @param float $tails number of tails (1 or 2) + * @return float + */ + public static function TDIST($value, $degrees, $tails) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $degrees = floor(PHPExcel_Calculation_Functions::flattenSingleValue($degrees)); + $tails = floor(PHPExcel_Calculation_Functions::flattenSingleValue($tails)); + + if ((is_numeric($value)) && (is_numeric($degrees)) && (is_numeric($tails))) { + if (($value < 0) || ($degrees < 1) || ($tails < 1) || ($tails > 2)) { + return PHPExcel_Calculation_Functions::NaN(); + } + // tdist, which finds the probability that corresponds to a given value + // of t with k degrees of freedom. This algorithm is translated from a + // pascal function on p81 of "Statistical Computing in Pascal" by D + // Cooke, A H Craven & G M Clark (1985: Edward Arnold (Pubs.) Ltd: + // London). The above Pascal algorithm is itself a translation of the + // fortran algoritm "AS 3" by B E Cooper of the Atlas Computer + // Laboratory as reported in (among other places) "Applied Statistics + // Algorithms", editied by P Griffiths and I D Hill (1985; Ellis + // Horwood Ltd.; W. Sussex, England). + $tterm = $degrees; + $ttheta = atan2($value,sqrt($tterm)); + $tc = cos($ttheta); + $ts = sin($ttheta); + $tsum = 0; + + if (($degrees % 2) == 1) { + $ti = 3; + $tterm = $tc; + } else { + $ti = 2; + $tterm = 1; + } + + $tsum = $tterm; + while ($ti < $degrees) { + $tterm *= $tc * $tc * ($ti - 1) / $ti; + $tsum += $tterm; + $ti += 2; + } + $tsum *= $ts; + if (($degrees % 2) == 1) { $tsum = M_2DIVPI * ($tsum + $ttheta); } + $tValue = 0.5 * (1 + $tsum); + if ($tails == 1) { + return 1 - abs($tValue); + } else { + return 1 - abs((1 - $tValue) - $tValue); + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function TDIST() + + + /** + * TINV + * + * Returns the one-tailed probability of the chi-squared distribution. + * + * @param float $probability Probability for the function + * @param float $degrees degrees of freedom + * @return float + */ + public static function TINV($probability, $degrees) { + $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); + $degrees = floor(PHPExcel_Calculation_Functions::flattenSingleValue($degrees)); + + if ((is_numeric($probability)) && (is_numeric($degrees))) { + $xLo = 100; + $xHi = 0; + + $x = $xNew = 1; + $dx = 1; + $i = 0; + + while ((abs($dx) > PRECISION) && ($i++ < MAX_ITERATIONS)) { + // Apply Newton-Raphson step + $result = self::TDIST($x, $degrees, 2); + $error = $result - $probability; + if ($error == 0.0) { + $dx = 0; + } elseif ($error < 0.0) { + $xLo = $x; + } else { + $xHi = $x; + } + // Avoid division by zero + if ($result != 0.0) { + $dx = $error / $result; + $xNew = $x - $dx; + } + // If the NR fails to converge (which for example may be the + // case if the initial guess is too rough) we apply a bisection + // step to determine a more narrow interval around the root. + if (($xNew < $xLo) || ($xNew > $xHi) || ($result == 0.0)) { + $xNew = ($xLo + $xHi) / 2; + $dx = $xNew - $x; + } + $x = $xNew; + } + if ($i == MAX_ITERATIONS) { + return PHPExcel_Calculation_Functions::NA(); + } + return round($x,12); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function TINV() + + + /** + * TREND + * + * Returns values along a linear trend + * + * @param array of mixed Data Series Y + * @param array of mixed Data Series X + * @param array of mixed Values of X for which we want to find Y + * @param boolean A logical value specifying whether to force the intersect to equal 0. + * @return array of float + */ + public static function TREND($yValues,$xValues=array(),$newValues=array(),$const=True) { + $yValues = PHPExcel_Calculation_Functions::flattenArray($yValues); + $xValues = PHPExcel_Calculation_Functions::flattenArray($xValues); + $newValues = PHPExcel_Calculation_Functions::flattenArray($newValues); + $const = (is_null($const)) ? True : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($const); + + $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR,$yValues,$xValues,$const); + if (empty($newValues)) { + $newValues = $bestFitLinear->getXValues(); + } + + $returnArray = array(); + foreach($newValues as $xValue) { + $returnArray[0][] = $bestFitLinear->getValueOfYForX($xValue); + } + + return $returnArray; + } // function TREND() + + + /** + * TRIMMEAN + * + * Returns the mean of the interior of a data set. TRIMMEAN calculates the mean + * taken by excluding a percentage of data points from the top and bottom tails + * of a data set. + * + * Excel Function: + * TRIMEAN(value1[,value2[, ...]],$discard) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @param float $discard Percentage to discard + * @return float + */ + public static function TRIMMEAN() { + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + + // Calculate + $percent = array_pop($aArgs); + + if ((is_numeric($percent)) && (!is_string($percent))) { + if (($percent < 0) || ($percent > 1)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $mArgs = array(); + foreach ($aArgs as $arg) { + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $mArgs[] = $arg; + } + } + $discard = floor(self::COUNT($mArgs) * $percent / 2); + sort($mArgs); + for ($i=0; $i < $discard; ++$i) { + array_pop($mArgs); + array_shift($mArgs); + } + return self::AVERAGE($mArgs); + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function TRIMMEAN() + + + /** + * VARFunc + * + * Estimates variance based on a sample. + * + * Excel Function: + * VAR(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function VARFunc() { + // Return value + $returnValue = PHPExcel_Calculation_Functions::DIV0(); + + $summerA = $summerB = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + $aCount = 0; + foreach ($aArgs as $arg) { + if (is_bool($arg)) { $arg = (integer) $arg; } + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $summerA += ($arg * $arg); + $summerB += $arg; + ++$aCount; + } + } + + // Return + if ($aCount > 1) { + $summerA *= $aCount; + $summerB *= $summerB; + $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1)); + } + return $returnValue; + } // function VARFunc() + + + /** + * VARA + * + * Estimates variance based on a sample, including numbers, text, and logical values + * + * Excel Function: + * VARA(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function VARA() { + // Return value + $returnValue = PHPExcel_Calculation_Functions::DIV0(); + + $summerA = $summerB = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + $aCount = 0; + foreach ($aArgs as $k => $arg) { + if ((is_string($arg)) && + (PHPExcel_Calculation_Functions::isValue($k))) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ((is_string($arg)) && + (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { + } else { + // Is it a numeric value? + if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) { + if (is_bool($arg)) { + $arg = (integer) $arg; + } elseif (is_string($arg)) { + $arg = 0; + } + $summerA += ($arg * $arg); + $summerB += $arg; + ++$aCount; + } + } + } + + // Return + if ($aCount > 1) { + $summerA *= $aCount; + $summerB *= $summerB; + $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1)); + } + return $returnValue; + } // function VARA() + + + /** + * VARP + * + * Calculates variance based on the entire population + * + * Excel Function: + * VARP(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function VARP() { + // Return value + $returnValue = PHPExcel_Calculation_Functions::DIV0(); + + $summerA = $summerB = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + $aCount = 0; + foreach ($aArgs as $arg) { + if (is_bool($arg)) { $arg = (integer) $arg; } + // Is it a numeric value? + if ((is_numeric($arg)) && (!is_string($arg))) { + $summerA += ($arg * $arg); + $summerB += $arg; + ++$aCount; + } + } + + // Return + if ($aCount > 0) { + $summerA *= $aCount; + $summerB *= $summerB; + $returnValue = ($summerA - $summerB) / ($aCount * $aCount); + } + return $returnValue; + } // function VARP() + + + /** + * VARPA + * + * Calculates variance based on the entire population, including numbers, text, and logical values + * + * Excel Function: + * VARPA(value1[,value2[, ...]]) + * + * @access public + * @category Statistical Functions + * @param mixed $arg,... Data values + * @return float + */ + public static function VARPA() { + // Return value + $returnValue = PHPExcel_Calculation_Functions::DIV0(); + + $summerA = $summerB = 0; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); + $aCount = 0; + foreach ($aArgs as $k => $arg) { + if ((is_string($arg)) && + (PHPExcel_Calculation_Functions::isValue($k))) { + return PHPExcel_Calculation_Functions::VALUE(); + } elseif ((is_string($arg)) && + (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { + } else { + // Is it a numeric value? + if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) { + if (is_bool($arg)) { + $arg = (integer) $arg; + } elseif (is_string($arg)) { + $arg = 0; + } + $summerA += ($arg * $arg); + $summerB += $arg; + ++$aCount; + } + } + } + + // Return + if ($aCount > 0) { + $summerA *= $aCount; + $summerB *= $summerB; + $returnValue = ($summerA - $summerB) / ($aCount * $aCount); + } + return $returnValue; + } // function VARPA() + + + /** + * WEIBULL + * + * Returns the Weibull distribution. Use this distribution in reliability + * analysis, such as calculating a device's mean time to failure. + * + * @param float $value + * @param float $alpha Alpha Parameter + * @param float $beta Beta Parameter + * @param boolean $cumulative + * @return float + * + */ + public static function WEIBULL($value, $alpha, $beta, $cumulative) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); + $beta = PHPExcel_Calculation_Functions::flattenSingleValue($beta); + + if ((is_numeric($value)) && (is_numeric($alpha)) && (is_numeric($beta))) { + if (($value < 0) || ($alpha <= 0) || ($beta <= 0)) { + return PHPExcel_Calculation_Functions::NaN(); + } + if ((is_numeric($cumulative)) || (is_bool($cumulative))) { + if ($cumulative) { + return 1 - exp(0 - pow($value / $beta,$alpha)); + } else { + return ($alpha / pow($beta,$alpha)) * pow($value,$alpha - 1) * exp(0 - pow($value / $beta,$alpha)); + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function WEIBULL() + + + /** + * ZTEST + * + * Returns the Weibull distribution. Use this distribution in reliability + * analysis, such as calculating a device's mean time to failure. + * + * @param float $value + * @param float $alpha Alpha Parameter + * @param float $beta Beta Parameter + * @param boolean $cumulative + * @return float + * + */ + public static function ZTEST($dataSet, $m0, $sigma=null) { + $dataSet = PHPExcel_Calculation_Functions::flattenArrayIndexed($dataSet); + $m0 = PHPExcel_Calculation_Functions::flattenSingleValue($m0); + $sigma = PHPExcel_Calculation_Functions::flattenSingleValue($sigma); + + if (is_null($sigma)) { + $sigma = self::STDEV($dataSet); + } + $n = count($dataSet); + + return 1 - self::NORMSDIST((self::AVERAGE($dataSet) - $m0)/($sigma/SQRT($n))); + } // function ZTEST() + +} // class PHPExcel_Calculation_Statistical diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/TextData.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/TextData.php new file mode 100755 index 0000000..3289645 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/TextData.php @@ -0,0 +1,598 @@ +=0 && ord($c{0}) <= 127) + return ord($c{0}); + if (ord($c{0}) >= 192 && ord($c{0}) <= 223) + return (ord($c{0})-192)*64 + (ord($c{1})-128); + if (ord($c{0}) >= 224 && ord($c{0}) <= 239) + return (ord($c{0})-224)*4096 + (ord($c{1})-128)*64 + (ord($c{2})-128); + if (ord($c{0}) >= 240 && ord($c{0}) <= 247) + return (ord($c{0})-240)*262144 + (ord($c{1})-128)*4096 + (ord($c{2})-128)*64 + (ord($c{3})-128); + if (ord($c{0}) >= 248 && ord($c{0}) <= 251) + return (ord($c{0})-248)*16777216 + (ord($c{1})-128)*262144 + (ord($c{2})-128)*4096 + (ord($c{3})-128)*64 + (ord($c{4})-128); + if (ord($c{0}) >= 252 && ord($c{0}) <= 253) + return (ord($c{0})-252)*1073741824 + (ord($c{1})-128)*16777216 + (ord($c{2})-128)*262144 + (ord($c{3})-128)*4096 + (ord($c{4})-128)*64 + (ord($c{5})-128); + if (ord($c{0}) >= 254 && ord($c{0}) <= 255) //error + return PHPExcel_Calculation_Functions::VALUE(); + return 0; + } // function _uniord() + + /** + * CHARACTER + * + * @param string $character Value + * @return int + */ + public static function CHARACTER($character) { + $character = PHPExcel_Calculation_Functions::flattenSingleValue($character); + + if ((!is_numeric($character)) || ($character < 0)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (function_exists('mb_convert_encoding')) { + return mb_convert_encoding('&#'.intval($character).';', 'UTF-8', 'HTML-ENTITIES'); + } else { + return chr(intval($character)); + } + } + + + /** + * TRIMNONPRINTABLE + * + * @param mixed $value Value to check + * @return string + */ + public static function TRIMNONPRINTABLE($stringValue = '') { + $stringValue = PHPExcel_Calculation_Functions::flattenSingleValue($stringValue); + + if (is_bool($stringValue)) { + return ($stringValue) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (self::$_invalidChars == Null) { + self::$_invalidChars = range(chr(0),chr(31)); + } + + if (is_string($stringValue) || is_numeric($stringValue)) { + return str_replace(self::$_invalidChars,'',trim($stringValue,"\x00..\x1F")); + } + return NULL; + } // function TRIMNONPRINTABLE() + + + /** + * TRIMSPACES + * + * @param mixed $value Value to check + * @return string + */ + public static function TRIMSPACES($stringValue = '') { + $stringValue = PHPExcel_Calculation_Functions::flattenSingleValue($stringValue); + + if (is_bool($stringValue)) { + return ($stringValue) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (is_string($stringValue) || is_numeric($stringValue)) { + return trim(preg_replace('/ +/',' ',trim($stringValue,' '))); + } + return NULL; + } // function TRIMSPACES() + + + /** + * ASCIICODE + * + * @param string $character Value + * @return int + */ + public static function ASCIICODE($characters) { + if (($characters === NULL) || ($characters === '')) + return PHPExcel_Calculation_Functions::VALUE(); + $characters = PHPExcel_Calculation_Functions::flattenSingleValue($characters); + if (is_bool($characters)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $characters = (int) $characters; + } else { + $characters = ($characters) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + } + + $character = $characters; + if ((function_exists('mb_strlen')) && (function_exists('mb_substr'))) { + if (mb_strlen($characters, 'UTF-8') > 1) { $character = mb_substr($characters, 0, 1, 'UTF-8'); } + return self::_uniord($character); + } else { + if (strlen($characters) > 0) { $character = substr($characters, 0, 1); } + return ord($character); + } + } // function ASCIICODE() + + + /** + * CONCATENATE + * + * @return string + */ + public static function CONCATENATE() { + // Return value + $returnValue = ''; + + // Loop through arguments + $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); + foreach ($aArgs as $arg) { + if (is_bool($arg)) { + if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { + $arg = (int) $arg; + } else { + $arg = ($arg) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + } + $returnValue .= $arg; + } + + // Return + return $returnValue; + } // function CONCATENATE() + + + /** + * DOLLAR + * + * This function converts a number to text using currency format, with the decimals rounded to the specified place. + * The format used is $#,##0.00_);($#,##0.00).. + * + * @param float $value The value to format + * @param int $decimals The number of digits to display to the right of the decimal point. + * If decimals is negative, number is rounded to the left of the decimal point. + * If you omit decimals, it is assumed to be 2 + * @return string + */ + public static function DOLLAR($value = 0, $decimals = 2) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $decimals = is_null($decimals) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($decimals); + + // Validate parameters + if (!is_numeric($value) || !is_numeric($decimals)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $decimals = floor($decimals); + + if ($decimals > 0) { + return money_format('%.'.$decimals.'n',$value); + } else { + $round = pow(10,abs($decimals)); + if ($value < 0) { $round = 0-$round; } + $value = PHPExcel_Calculation_MathTrig::MROUND($value,$round); + // The implementation of money_format used if the standard PHP function is not available can't handle decimal places of 0, + // so we display to 1 dp and chop off that character and the decimal separator using substr + return substr(money_format('%.1n',$value),0,-2); + } + } // function DOLLAR() + + + /** + * SEARCHSENSITIVE + * + * @param string $needle The string to look for + * @param string $haystack The string in which to look + * @param int $offset Offset within $haystack + * @return string + */ + public static function SEARCHSENSITIVE($needle,$haystack,$offset=1) { + $needle = PHPExcel_Calculation_Functions::flattenSingleValue($needle); + $haystack = PHPExcel_Calculation_Functions::flattenSingleValue($haystack); + $offset = PHPExcel_Calculation_Functions::flattenSingleValue($offset); + + if (!is_bool($needle)) { + if (is_bool($haystack)) { + $haystack = ($haystack) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (($offset > 0) && (PHPExcel_Shared_String::CountCharacters($haystack) > $offset)) { + if (PHPExcel_Shared_String::CountCharacters($needle) == 0) { + return $offset; + } + if (function_exists('mb_strpos')) { + $pos = mb_strpos($haystack, $needle, --$offset, 'UTF-8'); + } else { + $pos = strpos($haystack, $needle, --$offset); + } + if ($pos !== false) { + return ++$pos; + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SEARCHSENSITIVE() + + + /** + * SEARCHINSENSITIVE + * + * @param string $needle The string to look for + * @param string $haystack The string in which to look + * @param int $offset Offset within $haystack + * @return string + */ + public static function SEARCHINSENSITIVE($needle,$haystack,$offset=1) { + $needle = PHPExcel_Calculation_Functions::flattenSingleValue($needle); + $haystack = PHPExcel_Calculation_Functions::flattenSingleValue($haystack); + $offset = PHPExcel_Calculation_Functions::flattenSingleValue($offset); + + if (!is_bool($needle)) { + if (is_bool($haystack)) { + $haystack = ($haystack) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (($offset > 0) && (PHPExcel_Shared_String::CountCharacters($haystack) > $offset)) { + if (PHPExcel_Shared_String::CountCharacters($needle) == 0) { + return $offset; + } + if (function_exists('mb_stripos')) { + $pos = mb_stripos($haystack, $needle, --$offset,'UTF-8'); + } else { + $pos = stripos($haystack, $needle, --$offset); + } + if ($pos !== false) { + return ++$pos; + } + } + } + return PHPExcel_Calculation_Functions::VALUE(); + } // function SEARCHINSENSITIVE() + + + /** + * FIXEDFORMAT + * + * @param mixed $value Value to check + * @return boolean + */ + public static function FIXEDFORMAT($value, $decimals = 2, $no_commas = FALSE) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $decimals = PHPExcel_Calculation_Functions::flattenSingleValue($decimals); + $no_commas = PHPExcel_Calculation_Functions::flattenSingleValue($no_commas); + + // Validate parameters + if (!is_numeric($value) || !is_numeric($decimals)) { + return PHPExcel_Calculation_Functions::NaN(); + } + $decimals = floor($decimals); + + $valueResult = round($value,$decimals); + if ($decimals < 0) { $decimals = 0; } + if (!$no_commas) { + $valueResult = number_format($valueResult,$decimals); + } + + return (string) $valueResult; + } // function FIXEDFORMAT() + + + /** + * LEFT + * + * @param string $value Value + * @param int $chars Number of characters + * @return string + */ + public static function LEFT($value = '', $chars = 1) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $chars = PHPExcel_Calculation_Functions::flattenSingleValue($chars); + + if ($chars < 0) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (is_bool($value)) { + $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (function_exists('mb_substr')) { + return mb_substr($value, 0, $chars, 'UTF-8'); + } else { + return substr($value, 0, $chars); + } + } // function LEFT() + + + /** + * MID + * + * @param string $value Value + * @param int $start Start character + * @param int $chars Number of characters + * @return string + */ + public static function MID($value = '', $start = 1, $chars = null) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $start = PHPExcel_Calculation_Functions::flattenSingleValue($start); + $chars = PHPExcel_Calculation_Functions::flattenSingleValue($chars); + + if (($start < 1) || ($chars < 0)) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (is_bool($value)) { + $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (function_exists('mb_substr')) { + return mb_substr($value, --$start, $chars, 'UTF-8'); + } else { + return substr($value, --$start, $chars); + } + } // function MID() + + + /** + * RIGHT + * + * @param string $value Value + * @param int $chars Number of characters + * @return string + */ + public static function RIGHT($value = '', $chars = 1) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $chars = PHPExcel_Calculation_Functions::flattenSingleValue($chars); + + if ($chars < 0) { + return PHPExcel_Calculation_Functions::VALUE(); + } + + if (is_bool($value)) { + $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if ((function_exists('mb_substr')) && (function_exists('mb_strlen'))) { + return mb_substr($value, mb_strlen($value, 'UTF-8') - $chars, $chars, 'UTF-8'); + } else { + return substr($value, strlen($value) - $chars); + } + } // function RIGHT() + + + /** + * STRINGLENGTH + * + * @param string $value Value + * @param int $chars Number of characters + * @return string + */ + public static function STRINGLENGTH($value = '') { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + + if (is_bool($value)) { + $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (function_exists('mb_strlen')) { + return mb_strlen($value, 'UTF-8'); + } else { + return strlen($value); + } + } // function STRINGLENGTH() + + + /** + * LOWERCASE + * + * Converts a string value to upper case. + * + * @param string $mixedCaseString + * @return string + */ + public static function LOWERCASE($mixedCaseString) { + $mixedCaseString = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString); + + if (is_bool($mixedCaseString)) { + $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (function_exists('mb_convert_case')) { + return mb_convert_case($mixedCaseString, MB_CASE_LOWER, 'UTF-8'); + } else { + return strtoupper($mixedCaseString); + } + } // function LOWERCASE() + + + /** + * UPPERCASE + * + * Converts a string value to upper case. + * + * @param string $mixedCaseString + * @return string + */ + public static function UPPERCASE($mixedCaseString) { + $mixedCaseString = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString); + + if (is_bool($mixedCaseString)) { + $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (function_exists('mb_convert_case')) { + return mb_convert_case($mixedCaseString, MB_CASE_UPPER, 'UTF-8'); + } else { + return strtoupper($mixedCaseString); + } + } // function UPPERCASE() + + + /** + * PROPERCASE + * + * Converts a string value to upper case. + * + * @param string $mixedCaseString + * @return string + */ + public static function PROPERCASE($mixedCaseString) { + $mixedCaseString = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString); + + if (is_bool($mixedCaseString)) { + $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); + } + + if (function_exists('mb_convert_case')) { + return mb_convert_case($mixedCaseString, MB_CASE_TITLE, 'UTF-8'); + } else { + return ucwords($mixedCaseString); + } + } // function PROPERCASE() + + + /** + * REPLACE + * + * @param string $value Value + * @param int $start Start character + * @param int $chars Number of characters + * @return string + */ + public static function REPLACE($oldText = '', $start = 1, $chars = null, $newText) { + $oldText = PHPExcel_Calculation_Functions::flattenSingleValue($oldText); + $start = PHPExcel_Calculation_Functions::flattenSingleValue($start); + $chars = PHPExcel_Calculation_Functions::flattenSingleValue($chars); + $newText = PHPExcel_Calculation_Functions::flattenSingleValue($newText); + + $left = self::LEFT($oldText,$start-1); + $right = self::RIGHT($oldText,self::STRINGLENGTH($oldText)-($start+$chars)+1); + + return $left.$newText.$right; + } // function REPLACE() + + + /** + * SUBSTITUTE + * + * @param string $text Value + * @param string $fromText From Value + * @param string $toText To Value + * @param integer $instance Instance Number + * @return string + */ + public static function SUBSTITUTE($text = '', $fromText = '', $toText = '', $instance = 0) { + $text = PHPExcel_Calculation_Functions::flattenSingleValue($text); + $fromText = PHPExcel_Calculation_Functions::flattenSingleValue($fromText); + $toText = PHPExcel_Calculation_Functions::flattenSingleValue($toText); + $instance = floor(PHPExcel_Calculation_Functions::flattenSingleValue($instance)); + + if ($instance == 0) { + if(function_exists('mb_str_replace')) { + return mb_str_replace($fromText,$toText,$text); + } else { + return str_replace($fromText,$toText,$text); + } + } else { + $pos = -1; + while($instance > 0) { + if (function_exists('mb_strpos')) { + $pos = mb_strpos($text, $fromText, $pos+1, 'UTF-8'); + } else { + $pos = strpos($text, $fromText, $pos+1); + } + if ($pos === false) { + break; + } + --$instance; + } + if ($pos !== false) { + if (function_exists('mb_strlen')) { + return self::REPLACE($text,++$pos,mb_strlen($fromText, 'UTF-8'),$toText); + } else { + return self::REPLACE($text,++$pos,strlen($fromText),$toText); + } + } + } + + return $text; + } // function SUBSTITUTE() + + + /** + * RETURNSTRING + * + * @param mixed $value Value to check + * @return boolean + */ + public static function RETURNSTRING($testValue = '') { + $testValue = PHPExcel_Calculation_Functions::flattenSingleValue($testValue); + + if (is_string($testValue)) { + return $testValue; + } + return Null; + } // function RETURNSTRING() + + + /** + * TEXTFORMAT + * + * @param mixed $value Value to check + * @return boolean + */ + public static function TEXTFORMAT($value,$format) { + $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); + $format = PHPExcel_Calculation_Functions::flattenSingleValue($format); + + if ((is_string($value)) && (!is_numeric($value)) && PHPExcel_Shared_Date::isDateTimeFormatCode($format)) { + $value = PHPExcel_Calculation_DateTime::DATEVALUE($value); + } + + return (string) PHPExcel_Style_NumberFormat::toFormattedString($value,$format); + } // function TEXTFORMAT() + +} // class PHPExcel_Calculation_TextData diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/Token/Stack.php b/plugins/excel_reader/Classes/PHPExcel/Calculation/Token/Stack.php new file mode 100755 index 0000000..ea7efa0 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/Token/Stack.php @@ -0,0 +1,73 @@ +_count; + } // function count() + + + public function push($type,$value,$reference=null) { + $this->_stack[$this->_count++] = array('type' => $type, + 'value' => $value, + 'reference' => $reference + ); + if ($type == 'Function') { + $localeFunction = PHPExcel_Calculation::_localeFunc($value); + if ($localeFunction != $value) { + $this->_stack[($this->_count - 1)]['localeValue'] = $localeFunction; + } + } + } // function push() + + + public function pop() { + if ($this->_count > 0) { + return $this->_stack[--$this->_count]; + } + return null; + } // function pop() + + + public function last($n=1) { + if ($this->_count-$n < 0) { + return null; + } + return $this->_stack[$this->_count-$n]; + } // function last() + + + function __construct() { + } + +} // class PHPExcel_Calculation_Token_Stack diff --git a/plugins/excel_reader/Classes/PHPExcel/Calculation/functionlist.txt b/plugins/excel_reader/Classes/PHPExcel/Calculation/functionlist.txt new file mode 100755 index 0000000..67dbd49 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Calculation/functionlist.txt @@ -0,0 +1,351 @@ +ABS +ACCRINT +ACCRINTM +ACOS +ACOSH +ADDRESS +AMORDEGRC +AMORLINC +AND +AREAS +ASC +ASIN +ASINH +ATAN +ATAN2 +ATANH +AVEDEV +AVERAGE +AVERAGEA +AVERAGEIF +AVERAGEIFS +BAHTTEXT +BESSELI +BESSELJ +BESSELK +BESSELY +BETADIST +BETAINV +BIN2DEC +BIN2HEX +BIN2OCT +BINOMDIST +CEILING +CELL +CHAR +CHIDIST +CHIINV +CHITEST +CHOOSE +CLEAN +CODE +COLUMN +COLUMNS +COMBIN +COMPLEX +CONCATENATE +CONFIDENCE +CONVERT +CORREL +COS +COSH +COUNT +COUNTA +COUNTBLANK +COUNTIF +COUNTIFS +COUPDAYBS +COUPDAYBS +COUPDAYSNC +COUPNCD +COUPNUM +COUPPCD +COVAR +CRITBINOM +CUBEKPIMEMBER +CUBEMEMBER +CUBEMEMBERPROPERTY +CUBERANKEDMEMBER +CUBESET +CUBESETCOUNT +CUBEVALUE +CUMIPMT +CUMPRINC +DATE +DATEDIF +DATEVALUE +DAVERAGE +DAY +DAYS360 +DB +DCOUNT +DCOUNTA +DDB +DEC2BIN +DEC2HEX +DEC2OCT +DEGREES +DELTA +DEVSQ +DGET +DISC +DMAX +DMIN +DOLLAR +DOLLARDE +DOLLARFR +DPRODUCT +DSTDEV +DSTDEVP +DSUM +DURATION +DVAR +DVARP +EDATE +EFFECT +EOMONTH +ERF +ERFC +ERROR.TYPE +EVEN +EXACT +EXP +EXPONDIST +FACT +FACTDOUBLE +FALSE +FDIST +FIND +FINDB +FINV +FISHER +FISHERINV +FIXED +FLOOR +FORECAST +FREQUENCY +FTEST +FV +FVSCHEDULE +GAMAMDIST +GAMMAINV +GAMMALN +GCD +GEOMEAN +GESTEP +GETPIVOTDATA +GROWTH +HARMEAN +HEX2BIN +HEX2OCT +HLOOKUP +HOUR +HYPERLINK +HYPGEOMDIST +IF +IFERROR +IMABS +IMAGINARY +IMARGUMENT +IMCONJUGATE +IMCOS +IMEXP +IMLN +IMLOG10 +IMLOG2 +IMPOWER +IMPRODUCT +IMREAL +IMSIN +IMSQRT +IMSUB +IMSUM +INDEX +INDIRECT +INFO +INT +INTERCEPT +INTRATE +IPMT +IRR +ISBLANK +ISERR +ISERROR +ISEVEN +ISLOGICAL +ISNA +ISNONTEXT +ISNUMBER +ISODD +ISPMT +ISREF +ISTEXT +JIS +KURT +LARGE +LCM +LEFT +LEFTB +LEN +LENB +LINEST +LN +LOG +LOG10 +LOGEST +LOGINV +LOGNORMDIST +LOOKUP +LOWER +MATCH +MAX +MAXA +MDETERM +MDURATION +MEDIAN +MID +MIDB +MIN +MINA +MINUTE +MINVERSE +MIRR +MMULT +MOD +MODE +MONTH +MROUND +MULTINOMIAL +N +NA +NEGBINOMDIST +NETWORKDAYS +NOMINAL +NORMDIST +NORMINV +NORMSDIST +NORMSINV +NOT +NOW +NPER +NPV +OCT2BIN +OCT2DEC +OCT2HEX +ODD +ODDFPRICE +ODDFYIELD +ODDLPRICE +ODDLYIELD +OFFSET +OR +PEARSON +PERCENTILE +PERCENTRANK +PERMUT +PHONETIC +PI +PMT +POISSON +POWER +PPMT +PRICE +PRICEDISC +PRICEMAT +PROB +PRODUCT +PROPER +PV +QUARTILE +QUOTIENT +RADIANS +RAND +RANDBETWEEN +RANK +RATE +RECEIVED +REPLACE +REPLACEB +REPT +RIGHT +RIGHTB +ROMAN +ROUND +ROUNDDOWN +ROUNDUP +ROW +ROWS +RSQ +RTD +SEARCH +SEARCHB +SECOND +SERIESSUM +SIGN +SIN +SINH +SKEW +SLN +SLOPE +SMALL +SQRT +SQRTPI +STANDARDIZE +STDEV +STDEVA +STDEVP +STDEVPA +STEYX +SUBSTITUTE +SUBTOTAL +SUM +SUMIF +SUMIFS +SUMPRODUCT +SUMSQ +SUMX2MY2 +SUMX2PY2 +SUMXMY2 +SYD +T +TAN +TANH +TBILLEQ +TBILLPRICE +TBILLYIELD +TDIST +TEXT +TIME +TIMEVALUE +TINV +TODAY +TRANSPOSE +TREND +TRIM +TRIMMEAN +TRUE +TRUNC +TTEST +TYPE +UPPER +USDOLLAR +VALUE +VAR +VARA +VARP +VARPA +VDB +VERSION +VLOOKUP +WEEKDAY +WEEKNUM +WEIBULL +WORKDAY +XIRR +XNPV +YEAR +YEARFRAC +YIELD +YIELDDISC +YIELDMAT +ZTEST diff --git a/plugins/excel_reader/Classes/PHPExcel/Cell.php b/plugins/excel_reader/Classes/PHPExcel/Cell.php new file mode 100755 index 0000000..75996f2 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Cell.php @@ -0,0 +1,972 @@ +_parent->getCellCacheController()->updateCacheData($this); + return $this; + } + + public function detach() { + $this->_parent = NULL; + } + + public function attach($parent) { + $this->_parent = $parent; + } + + + /** + * Create a new Cell + * + * @param string $pColumn + * @param int $pRow + * @param mixed $pValue + * @param string $pDataType + * @param PHPExcel_Worksheet $pSheet + * @throws PHPExcel_Exception + */ + public function __construct($pColumn = 'A', $pRow = 1, $pValue = NULL, $pDataType = NULL, PHPExcel_Worksheet $pSheet = NULL) + { + // Initialise cell coordinate + $this->_column = strtoupper($pColumn); + $this->_row = $pRow; + + // Initialise cell value + $this->_value = $pValue; + + // Set worksheet + $this->_parent = $pSheet; + + // Set datatype? + if ($pDataType !== NULL) { + if ($pDataType == PHPExcel_Cell_DataType::TYPE_STRING2) + $pDataType = PHPExcel_Cell_DataType::TYPE_STRING; + $this->_dataType = $pDataType; + } else { + if (!self::getValueBinder()->bindValue($this, $pValue)) { + throw new PHPExcel_Exception("Value could not be bound to cell."); + } + } + + // set default index to cellXf + $this->_xfIndex = 0; + } + + /** + * Get cell coordinate column + * + * @return string + */ + public function getColumn() + { + return $this->_column; + } + + /** + * Get cell coordinate row + * + * @return int + */ + public function getRow() + { + return $this->_row; + } + + /** + * Get cell coordinate + * + * @return string + */ + public function getCoordinate() + { + return $this->_column . $this->_row; + } + + /** + * Get cell value + * + * @return mixed + */ + public function getValue() + { + return $this->_value; + } + + /** + * Get cell value with formatting + * + * @return string + */ + public function getFormattedValue() + { + return (string) PHPExcel_Style_NumberFormat::toFormattedString( + $this->getCalculatedValue(), + $this->_parent->getParent()->getCellXfByIndex($this->getXfIndex()) + ->getNumberFormat()->getFormatCode() + ); + } + + /** + * Set cell value + * + * Sets the value for a cell, automatically determining the datatype using the value binder + * + * @param mixed $pValue Value + * @return PHPExcel_Cell + * @throws PHPExcel_Exception + */ + public function setValue($pValue = NULL) + { + if (!self::getValueBinder()->bindValue($this, $pValue)) { + throw new PHPExcel_Exception("Value could not be bound to cell."); + } + return $this; + } + + /** + * Set the value for a cell, with the explicit data type passed to the method (bypassing any use of the value binder) + * + * @param mixed $pValue Value + * @param string $pDataType Explicit data type + * @return PHPExcel_Cell + * @throws PHPExcel_Exception + */ + public function setValueExplicit($pValue = NULL, $pDataType = PHPExcel_Cell_DataType::TYPE_STRING) + { + // set the value according to data type + switch ($pDataType) { + case PHPExcel_Cell_DataType::TYPE_STRING2: + $pDataType = PHPExcel_Cell_DataType::TYPE_STRING; + case PHPExcel_Cell_DataType::TYPE_STRING: + case PHPExcel_Cell_DataType::TYPE_NULL: + case PHPExcel_Cell_DataType::TYPE_INLINE: + $this->_value = PHPExcel_Cell_DataType::checkString($pValue); + break; + case PHPExcel_Cell_DataType::TYPE_NUMERIC: + $this->_value = (float)$pValue; + break; + case PHPExcel_Cell_DataType::TYPE_FORMULA: + $this->_value = (string)$pValue; + break; + case PHPExcel_Cell_DataType::TYPE_BOOL: + $this->_value = (bool)$pValue; + break; + case PHPExcel_Cell_DataType::TYPE_ERROR: + $this->_value = PHPExcel_Cell_DataType::checkErrorCode($pValue); + break; + default: + throw new PHPExcel_Exception('Invalid datatype: ' . $pDataType); + break; + } + + // set the datatype + $this->_dataType = $pDataType; + + return $this->notifyCacheController(); + } + + /** + * Get calculated cell value + * + * @deprecated Since version 1.7.8 for planned changes to cell for array formula handling + * + * @return mixed + * @throws PHPExcel_Exception + */ + public function getCalculatedValue($resetLog = TRUE) + { +// echo 'Cell '.$this->getCoordinate().' value is a '.$this->_dataType.' with a value of '.$this->getValue().'
'; + if ($this->_dataType == PHPExcel_Cell_DataType::TYPE_FORMULA) { + try { +// echo 'Cell value for '.$this->getCoordinate().' is a formula: Calculating value
'; + $result = PHPExcel_Calculation::getInstance()->calculateCellValue($this,$resetLog); +// echo $this->getCoordinate().' calculation result is '.$result.'
'; + } catch ( Exception $ex ) { + if (($ex->getMessage() === 'Unable to access External Workbook') && ($this->_calculatedValue !== NULL)) { +// echo 'Returning fallback value of '.$this->_calculatedValue.' for cell '.$this->getCoordinate().'
'; + return $this->_calculatedValue; // Fallback for calculations referencing external files. + } +// echo 'Calculation Exception: '.$ex->getMessage().'
'; + $result = '#N/A'; + throw( + new PHPExcel_Exception( + $this->getParent()->getTitle().'!'.$this->getCoordinate().' -> '.$ex->getMessage() + ) + ); + } + + if ($result === '#Not Yet Implemented') { +// echo 'Returning fallback value of '.$this->_calculatedValue.' for cell '.$this->getCoordinate().'
'; + return $this->_calculatedValue; // Fallback if calculation engine does not support the formula. + } +// echo 'Returning calculated value of '.$result.' for cell '.$this->getCoordinate().'
'; + return $result; + } + +// if ($this->_value === NULL) { +// echo 'Cell '.$this->getCoordinate().' has no value, formula or otherwise
'; +// return NULL; +// } +// echo 'Cell value for '.$this->getCoordinate().' is not a formula: Returning data value of '.$this->_value.'
'; + return $this->_value; + } + + /** + * Set old calculated value (cached) + * + * @param mixed $pValue Value + * @return PHPExcel_Cell + */ + public function setCalculatedValue($pValue = NULL) + { + if ($pValue !== NULL) { + $this->_calculatedValue = (is_numeric($pValue)) ? (float) $pValue : $pValue; + } + + return $this->notifyCacheController(); + } + + /** + * Get old calculated value (cached) + * This returns the value last calculated by MS Excel or whichever spreadsheet program was used to + * create the original spreadsheet file. + * Note that this value is not guaranteed to refelect the actual calculated value because it is + * possible that auto-calculation was disabled in the original spreadsheet, and underlying data + * values used by the formula have changed since it was last calculated. + * + * @return mixed + */ + public function getOldCalculatedValue() + { + return $this->_calculatedValue; + } + + /** + * Get cell data type + * + * @return string + */ + public function getDataType() + { + return $this->_dataType; + } + + /** + * Set cell data type + * + * @param string $pDataType + * @return PHPExcel_Cell + */ + public function setDataType($pDataType = PHPExcel_Cell_DataType::TYPE_STRING) + { + if ($pDataType == PHPExcel_Cell_DataType::TYPE_STRING2) + $pDataType = PHPExcel_Cell_DataType::TYPE_STRING; + + $this->_dataType = $pDataType; + + return $this->notifyCacheController(); + } + + /** + * Does this cell contain Data validation rules? + * + * @return boolean + * @throws PHPExcel_Exception + */ + public function hasDataValidation() + { + if (!isset($this->_parent)) { + throw new PHPExcel_Exception('Cannot check for data validation when cell is not bound to a worksheet'); + } + + return $this->_parent->dataValidationExists($this->getCoordinate()); + } + + /** + * Get Data validation rules + * + * @return PHPExcel_Cell_DataValidation + * @throws PHPExcel_Exception + */ + public function getDataValidation() + { + if (!isset($this->_parent)) { + throw new PHPExcel_Exception('Cannot get data validation for cell that is not bound to a worksheet'); + } + + return $this->_parent->getDataValidation($this->getCoordinate()); + } + + /** + * Set Data validation rules + * + * @param PHPExcel_Cell_DataValidation $pDataValidation + * @return PHPExcel_Cell + * @throws PHPExcel_Exception + */ + public function setDataValidation(PHPExcel_Cell_DataValidation $pDataValidation = NULL) + { + if (!isset($this->_parent)) { + throw new PHPExcel_Exception('Cannot set data validation for cell that is not bound to a worksheet'); + } + + $this->_parent->setDataValidation($this->getCoordinate(), $pDataValidation); + + return $this->notifyCacheController(); + } + + /** + * Does this cell contain a Hyperlink? + * + * @return boolean + * @throws PHPExcel_Exception + */ + public function hasHyperlink() + { + if (!isset($this->_parent)) { + throw new PHPExcel_Exception('Cannot check for hyperlink when cell is not bound to a worksheet'); + } + + return $this->_parent->hyperlinkExists($this->getCoordinate()); + } + + /** + * Get Hyperlink + * + * @return PHPExcel_Cell_Hyperlink + * @throws PHPExcel_Exception + */ + public function getHyperlink() + { + if (!isset($this->_parent)) { + throw new PHPExcel_Exception('Cannot get hyperlink for cell that is not bound to a worksheet'); + } + + return $this->_parent->getHyperlink($this->getCoordinate()); + } + + /** + * Set Hyperlink + * + * @param PHPExcel_Cell_Hyperlink $pHyperlink + * @return PHPExcel_Cell + * @throws PHPExcel_Exception + */ + public function setHyperlink(PHPExcel_Cell_Hyperlink $pHyperlink = NULL) + { + if (!isset($this->_parent)) { + throw new PHPExcel_Exception('Cannot set hyperlink for cell that is not bound to a worksheet'); + } + + $this->_parent->setHyperlink($this->getCoordinate(), $pHyperlink); + + return $this->notifyCacheController(); + } + + /** + * Get parent worksheet + * + * @return PHPExcel_Worksheet + */ + public function getParent() { + return $this->_parent; + } + + /** + * Re-bind parent + * + * @param PHPExcel_Worksheet $parent + * @return PHPExcel_Cell + */ + public function rebindParent(PHPExcel_Worksheet $parent) { + $this->_parent = $parent; + + return $this->notifyCacheController(); + } + + /** + * Is cell in a specific range? + * + * @param string $pRange Cell range (e.g. A1:A1) + * @return boolean + */ + public function isInRange($pRange = 'A1:A1') + { + list($rangeStart,$rangeEnd) = self::rangeBoundaries($pRange); + + // Translate properties + $myColumn = self::columnIndexFromString($this->getColumn()); + $myRow = $this->getRow(); + + // Verify if cell is in range + return (($rangeStart[0] <= $myColumn) && ($rangeEnd[0] >= $myColumn) && + ($rangeStart[1] <= $myRow) && ($rangeEnd[1] >= $myRow) + ); + } + + /** + * Coordinate from string + * + * @param string $pCoordinateString + * @return array Array containing column and row (indexes 0 and 1) + * @throws PHPExcel_Exception + */ + public static function coordinateFromString($pCoordinateString = 'A1') + { + if (preg_match("/^([$]?[A-Z]{1,3})([$]?\d{1,7})$/", $pCoordinateString, $matches)) { + return array($matches[1],$matches[2]); + } elseif ((strpos($pCoordinateString,':') !== FALSE) || (strpos($pCoordinateString,',') !== FALSE)) { + throw new PHPExcel_Exception('Cell coordinate string can not be a range of cells'); + } elseif ($pCoordinateString == '') { + throw new PHPExcel_Exception('Cell coordinate can not be zero-length string'); + } + + throw new PHPExcel_Exception('Invalid cell coordinate '.$pCoordinateString); + } + + /** + * Make string row, column or cell coordinate absolute + * + * @param string $pCoordinateString e.g. 'A' or '1' or 'A1' + * Note that this value can be a row or column reference as well as a cell reference + * @return string Absolute coordinate e.g. '$A' or '$1' or '$A$1' + * @throws PHPExcel_Exception + */ + public static function absoluteReference($pCoordinateString = 'A1') + { + if (strpos($pCoordinateString,':') === FALSE && strpos($pCoordinateString,',') === FALSE) { + // Split out any worksheet name from the reference + $worksheet = ''; + $cellAddress = explode('!',$pCoordinateString); + if (count($cellAddress) > 1) { + list($worksheet,$pCoordinateString) = $cellAddress; + } + if ($worksheet > '') $worksheet .= '!'; + + // Create absolute coordinate + if (ctype_digit($pCoordinateString)) { + return $worksheet . '$' . $pCoordinateString; + } elseif (ctype_alpha($pCoordinateString)) { + return $worksheet . '$' . strtoupper($pCoordinateString); + } + return $worksheet . self::absoluteCoordinate($pCoordinateString); + } + + throw new PHPExcel_Exception('Cell coordinate string can not be a range of cells'); + } + + /** + * Make string coordinate absolute + * + * @param string $pCoordinateString e.g. 'A1' + * @return string Absolute coordinate e.g. '$A$1' + * @throws PHPExcel_Exception + */ + public static function absoluteCoordinate($pCoordinateString = 'A1') + { + if (strpos($pCoordinateString,':') === FALSE && strpos($pCoordinateString,',') === FALSE) { + // Split out any worksheet name from the coordinate + $worksheet = ''; + $cellAddress = explode('!',$pCoordinateString); + if (count($cellAddress) > 1) { + list($worksheet,$pCoordinateString) = $cellAddress; + } + if ($worksheet > '') $worksheet .= '!'; + + // Create absolute coordinate + list($column, $row) = self::coordinateFromString($pCoordinateString); + $column = ltrim($column,'$'); + $row = ltrim($row,'$'); + return $worksheet . '$' . $column . '$' . $row; + } + + throw new PHPExcel_Exception('Cell coordinate string can not be a range of cells'); + } + + /** + * Split range into coordinate strings + * + * @param string $pRange e.g. 'B4:D9' or 'B4:D9,H2:O11' or 'B4' + * @return array Array containg one or more arrays containing one or two coordinate strings + * e.g. array('B4','D9') or array(array('B4','D9'),array('H2','O11')) + * or array('B4') + */ + public static function splitRange($pRange = 'A1:A1') + { + // Ensure $pRange is a valid range + if(empty($pRange)) { + $pRange = self::DEFAULT_RANGE; + } + + $exploded = explode(',', $pRange); + $counter = count($exploded); + for ($i = 0; $i < $counter; ++$i) { + $exploded[$i] = explode(':', $exploded[$i]); + } + return $exploded; + } + + /** + * Build range from coordinate strings + * + * @param array $pRange Array containg one or more arrays containing one or two coordinate strings + * @return string String representation of $pRange + * @throws PHPExcel_Exception + */ + public static function buildRange($pRange) + { + // Verify range + if (!is_array($pRange) || empty($pRange) || !is_array($pRange[0])) { + throw new PHPExcel_Exception('Range does not contain any information'); + } + + // Build range + $imploded = array(); + $counter = count($pRange); + for ($i = 0; $i < $counter; ++$i) { + $pRange[$i] = implode(':', $pRange[$i]); + } + $imploded = implode(',', $pRange); + + return $imploded; + } + + /** + * Calculate range boundaries + * + * @param string $pRange Cell range (e.g. A1:A1) + * @return array Range coordinates array(Start Cell, End Cell) + * where Start Cell and End Cell are arrays (Column Number, Row Number) + */ + public static function rangeBoundaries($pRange = 'A1:A1') + { + // Ensure $pRange is a valid range + if(empty($pRange)) { + $pRange = self::DEFAULT_RANGE; + } + + // Uppercase coordinate + $pRange = strtoupper($pRange); + + // Extract range + if (strpos($pRange, ':') === FALSE) { + $rangeA = $rangeB = $pRange; + } else { + list($rangeA, $rangeB) = explode(':', $pRange); + } + + // Calculate range outer borders + $rangeStart = self::coordinateFromString($rangeA); + $rangeEnd = self::coordinateFromString($rangeB); + + // Translate column into index + $rangeStart[0] = self::columnIndexFromString($rangeStart[0]); + $rangeEnd[0] = self::columnIndexFromString($rangeEnd[0]); + + return array($rangeStart, $rangeEnd); + } + + /** + * Calculate range dimension + * + * @param string $pRange Cell range (e.g. A1:A1) + * @return array Range dimension (width, height) + */ + public static function rangeDimension($pRange = 'A1:A1') + { + // Calculate range outer borders + list($rangeStart,$rangeEnd) = self::rangeBoundaries($pRange); + + return array( ($rangeEnd[0] - $rangeStart[0] + 1), ($rangeEnd[1] - $rangeStart[1] + 1) ); + } + + /** + * Calculate range boundaries + * + * @param string $pRange Cell range (e.g. A1:A1) + * @return array Range coordinates array(Start Cell, End Cell) + * where Start Cell and End Cell are arrays (Column ID, Row Number) + */ + public static function getRangeBoundaries($pRange = 'A1:A1') + { + // Ensure $pRange is a valid range + if(empty($pRange)) { + $pRange = self::DEFAULT_RANGE; + } + + // Uppercase coordinate + $pRange = strtoupper($pRange); + + // Extract range + if (strpos($pRange, ':') === FALSE) { + $rangeA = $rangeB = $pRange; + } else { + list($rangeA, $rangeB) = explode(':', $pRange); + } + + return array( self::coordinateFromString($rangeA), self::coordinateFromString($rangeB)); + } + + /** + * Column index from string + * + * @param string $pString + * @return int Column index (base 1 !!!) + * @throws Exception + */ + public static function columnIndexFromString($pString = 'A') + { + // Using a lookup cache adds a slight memory overhead, but boosts speed + // caching using a static within the method is faster than a class static, + // though it's additional memory overhead + static $_indexCache = array(); + + if (isset($_indexCache[$pString])) + return $_indexCache[$pString]; + + // It's surprising how costly the strtoupper() and ord() calls actually are, so we use a lookup array rather than use ord() + // and make it case insensitive to get rid of the strtoupper() as well. Because it's a static, there's no significant + // memory overhead either + static $_columnLookup = array( + 'A' => 1, 'B' => 2, 'C' => 3, 'D' => 4, 'E' => 5, 'F' => 6, 'G' => 7, 'H' => 8, 'I' => 9, 'J' => 10, 'K' => 11, 'L' => 12, 'M' => 13, + 'N' => 14, 'O' => 15, 'P' => 16, 'Q' => 17, 'R' => 18, 'S' => 19, 'T' => 20, 'U' => 21, 'V' => 22, 'W' => 23, 'X' => 24, 'Y' => 25, 'Z' => 26, + 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5, 'f' => 6, 'g' => 7, 'h' => 8, 'i' => 9, 'j' => 10, 'k' => 11, 'l' => 12, 'm' => 13, + 'n' => 14, 'o' => 15, 'p' => 16, 'q' => 17, 'r' => 18, 's' => 19, 't' => 20, 'u' => 21, 'v' => 22, 'w' => 23, 'x' => 24, 'y' => 25, 'z' => 26 + ); + + // We also use the language construct isset() rather than the more costly strlen() function to match the length of $pString + // for improved performance + if (isset($pString{0})) { + if (!isset($pString{1})) { + $_indexCache[$pString] = $_columnLookup[$pString]; + return $_indexCache[$pString]; + } elseif(!isset($pString{2})) { + $_indexCache[$pString] = $_columnLookup[$pString{0}] * 26 + $_columnLookup[$pString{1}]; + return $_indexCache[$pString]; + } elseif(!isset($pString{3})) { + $_indexCache[$pString] = $_columnLookup[$pString{0}] * 676 + $_columnLookup[$pString{1}] * 26 + $_columnLookup[$pString{2}]; + return $_indexCache[$pString]; + } + } + throw new PHPExcel_Exception("Column string index can not be " . ((isset($pString{0})) ? "longer than 3 characters" : "empty")); + } + + /** + * String from columnindex + * + * @param int $pColumnIndex Column index (base 0 !!!) + * @return string + */ + public static function stringFromColumnIndex($pColumnIndex = 0) + { + // Using a lookup cache adds a slight memory overhead, but boosts speed + // caching using a static within the method is faster than a class static, + // though it's additional memory overhead + static $_indexCache = array(); + + if (!isset($_indexCache[$pColumnIndex])) { + // Determine column string + if ($pColumnIndex < 26) { + $_indexCache[$pColumnIndex] = chr(65 + $pColumnIndex); + } elseif ($pColumnIndex < 702) { + $_indexCache[$pColumnIndex] = chr(64 + ($pColumnIndex / 26)) . + chr(65 + $pColumnIndex % 26); + } else { + $_indexCache[$pColumnIndex] = chr(64 + (($pColumnIndex - 26) / 676)) . + chr(65 + ((($pColumnIndex - 26) % 676) / 26)) . + chr(65 + $pColumnIndex % 26); + } + } + return $_indexCache[$pColumnIndex]; + } + + /** + * Extract all cell references in range + * + * @param string $pRange Range (e.g. A1 or A1:C10 or A1:E10 A20:E25) + * @return array Array containing single cell references + */ + public static function extractAllCellReferencesInRange($pRange = 'A1') { + // Returnvalue + $returnValue = array(); + + // Explode spaces + $cellBlocks = explode(' ', str_replace('$', '', strtoupper($pRange))); + foreach ($cellBlocks as $cellBlock) { + // Single cell? + if (strpos($cellBlock,':') === FALSE && strpos($cellBlock,',') === FALSE) { + $returnValue[] = $cellBlock; + continue; + } + + // Range... + $ranges = self::splitRange($cellBlock); + foreach($ranges as $range) { + // Single cell? + if (!isset($range[1])) { + $returnValue[] = $range[0]; + continue; + } + + // Range... + list($rangeStart, $rangeEnd) = $range; + list($startCol, $startRow) = sscanf($rangeStart,'%[A-Z]%d'); + list($endCol, $endRow) = sscanf($rangeEnd,'%[A-Z]%d'); + $endCol++; + + // Current data + $currentCol = $startCol; + $currentRow = $startRow; + + // Loop cells + while ($currentCol != $endCol) { + while ($currentRow <= $endRow) { + $returnValue[] = $currentCol.$currentRow; + ++$currentRow; + } + ++$currentCol; + $currentRow = $startRow; + } + } + } + + // Sort the result by column and row + $sortKeys = array(); + foreach (array_unique($returnValue) as $coord) { + list($column,$row) = sscanf($coord,'%[A-Z]%d'); + $sortKeys[sprintf('%3s%09d',$column,$row)] = $coord; + } + ksort($sortKeys); + + // Return value + return array_values($sortKeys); + } + + /** + * Compare 2 cells + * + * @param PHPExcel_Cell $a Cell a + * @param PHPExcel_Cell $a Cell b + * @return int Result of comparison (always -1 or 1, never zero!) + */ + public static function compareCells(PHPExcel_Cell $a, PHPExcel_Cell $b) + { + if ($a->_row < $b->_row) { + return -1; + } elseif ($a->_row > $b->_row) { + return 1; + } elseif (self::columnIndexFromString($a->_column) < self::columnIndexFromString($b->_column)) { + return -1; + } else { + return 1; + } + } + + /** + * Get value binder to use + * + * @return PHPExcel_Cell_IValueBinder + */ + public static function getValueBinder() { + if (self::$_valueBinder === NULL) { + self::$_valueBinder = new PHPExcel_Cell_DefaultValueBinder(); + } + + return self::$_valueBinder; + } + + /** + * Set value binder to use + * + * @param PHPExcel_Cell_IValueBinder $binder + * @throws Exception + */ + public static function setValueBinder(PHPExcel_Cell_IValueBinder $binder = NULL) { + if ($binder === NULL) { + throw new Exception("A PHPExcel_Cell_IValueBinder is required for PHPExcel to function correctly."); + } + + self::$_valueBinder = $binder; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } + + /** + * Get index to cellXf + * + * @return int + */ + public function getXfIndex() + { + return $this->_xfIndex; + } + + /** + * Set index to cellXf + * + * @param int $pValue + * @return PHPExcel_Cell + */ + public function setXfIndex($pValue = 0) + { + $this->_xfIndex = $pValue; + + return $this->notifyCacheController(); + } + + /** + * @deprecated Since version 1.7.8 for planned changes to cell for array formula handling + */ + public function setFormulaAttributes($pAttributes) + { + $this->_formulaAttributes = $pAttributes; + return $this; + } + + /** + * @deprecated Since version 1.7.8 for planned changes to cell for array formula handling + */ + public function getFormulaAttributes() + { + return $this->_formulaAttributes; + } + + /** + * Convert to string + * + * @return string + */ + public function __toString() + { + return (string) $this->getValue(); + } + +} + diff --git a/plugins/excel_reader/Classes/PHPExcel/Cell/AdvancedValueBinder.php b/plugins/excel_reader/Classes/PHPExcel/Cell/AdvancedValueBinder.php new file mode 100755 index 0000000..3603f5e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Cell/AdvancedValueBinder.php @@ -0,0 +1,190 @@ +setValueExplicit( TRUE, PHPExcel_Cell_DataType::TYPE_BOOL); + return true; + } elseif($value == PHPExcel_Calculation::getFALSE()) { + $cell->setValueExplicit( FALSE, PHPExcel_Cell_DataType::TYPE_BOOL); + return true; + } + + // Check for number in scientific format + if (preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NUMBER.'$/', $value)) { + $cell->setValueExplicit( (float) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); + return true; + } + + // Check for fraction + if (preg_match('/^([+-]?) *([0-9]*)\s?\/\s*([0-9]*)$/', $value, $matches)) { + // Convert value to number + $value = $matches[2] / $matches[3]; + if ($matches[1] == '-') $value = 0 - $value; + $cell->setValueExplicit( (float) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); + // Set style + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getNumberFormat()->setFormatCode( '??/??' ); + return true; + } elseif (preg_match('/^([+-]?)([0-9]*) +([0-9]*)\s?\/\s*([0-9]*)$/', $value, $matches)) { + // Convert value to number + $value = $matches[2] + ($matches[3] / $matches[4]); + if ($matches[1] == '-') $value = 0 - $value; + $cell->setValueExplicit( (float) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); + // Set style + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getNumberFormat()->setFormatCode( '# ??/??' ); + return true; + } + + // Check for percentage + if (preg_match('/^\-?[0-9]*\.?[0-9]*\s?\%$/', $value)) { + // Convert value to number + $value = (float) str_replace('%', '', $value) / 100; + $cell->setValueExplicit( $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); + // Set style + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00 ); + return true; + } + + // Check for currency + $currencyCode = PHPExcel_Shared_String::getCurrencyCode(); + if (preg_match('/^'.preg_quote($currencyCode).' *(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$/', $value)) { + // Convert value to number + $value = (float) trim(str_replace(array($currencyCode,','), '', $value)); + $cell->setValueExplicit( $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); + // Set style + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getNumberFormat()->setFormatCode( + str_replace('$', $currencyCode, PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE ) + ); + return true; + } elseif (preg_match('/^\$ *(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$/', $value)) { + // Convert value to number + $value = (float) trim(str_replace(array('$',','), '', $value)); + $cell->setValueExplicit( $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); + // Set style + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE ); + return true; + } + + // Check for time without seconds e.g. '9:45', '09:45' + if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d$/', $value)) { + // Convert value to number + list($h, $m) = explode(':', $value); + $days = $h / 24 + $m / 1440; + $cell->setValueExplicit($days, PHPExcel_Cell_DataType::TYPE_NUMERIC); + // Set style + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME3 ); + return true; + } + + // Check for time with seconds '9:45:59', '09:45:59' + if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/', $value)) { + // Convert value to number + list($h, $m, $s) = explode(':', $value); + $days = $h / 24 + $m / 1440 + $s / 86400; + // Convert value to number + $cell->setValueExplicit($days, PHPExcel_Cell_DataType::TYPE_NUMERIC); + // Set style + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4 ); + return true; + } + + // Check for datetime, e.g. '2008-12-31', '2008-12-31 15:59', '2008-12-31 15:59:10' + if (($d = PHPExcel_Shared_Date::stringToExcel($value)) !== false) { + // Convert value to number + $cell->setValueExplicit($d, PHPExcel_Cell_DataType::TYPE_NUMERIC); + // Determine style. Either there is a time part or not. Look for ':' + if (strpos($value, ':') !== false) { + $formatCode = 'yyyy-mm-dd h:mm'; + } else { + $formatCode = 'yyyy-mm-dd'; + } + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getNumberFormat()->setFormatCode($formatCode); + return true; + } + + // Check for newline character "\n" + if (strpos($value, "\n") !== FALSE) { + $value = PHPExcel_Shared_String::SanitizeUTF8($value); + $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING); + // Set style + $cell->getParent()->getStyle( $cell->getCoordinate() ) + ->getAlignment()->setWrapText(TRUE); + return true; + } + } + + // Not bound yet? Use parent... + return parent::bindValue($cell, $value); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Cell/DataType.php b/plugins/excel_reader/Classes/PHPExcel/Cell/DataType.php new file mode 100755 index 0000000..a833a5a --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Cell/DataType.php @@ -0,0 +1,114 @@ + 0, '#DIV/0!' => 1, '#VALUE!' => 2, '#REF!' => 3, '#NAME?' => 4, '#NUM!' => 5, '#N/A' => 6); + + /** + * Get list of error codes + * + * @return array + */ + public static function getErrorCodes() { + return self::$_errorCodes; + } + + /** + * DataType for value + * + * @deprecated Replaced by PHPExcel_Cell_IValueBinder infrastructure + * @param mixed $pValue + * @return int + */ + public static function dataTypeForValue($pValue = null) { + return PHPExcel_Cell_DefaultValueBinder::dataTypeForValue($pValue); + } + + /** + * Check a string that it satisfies Excel requirements + * + * @param mixed Value to sanitize to an Excel string + * @return mixed Sanitized value + */ + public static function checkString($pValue = null) + { + if ($pValue instanceof PHPExcel_RichText) { + // TODO: Sanitize Rich-Text string (max. character count is 32,767) + return $pValue; + } + + // string must never be longer than 32,767 characters, truncate if necessary + $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 32767); + + // we require that newline is represented as "\n" in core, not as "\r\n" or "\r" + $pValue = str_replace(array("\r\n", "\r"), "\n", $pValue); + + return $pValue; + } + + /** + * Check a value that it is a valid error code + * + * @param mixed Value to sanitize to an Excel error code + * @return string Sanitized value + */ + public static function checkErrorCode($pValue = null) + { + $pValue = (string)$pValue; + + if ( !array_key_exists($pValue, self::$_errorCodes) ) { + $pValue = '#NULL!'; + } + + return $pValue; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Cell/DataValidation.php b/plugins/excel_reader/Classes/PHPExcel/Cell/DataValidation.php new file mode 100755 index 0000000..01b1edb --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Cell/DataValidation.php @@ -0,0 +1,474 @@ +_formula1 = ''; + $this->_formula2 = ''; + $this->_type = PHPExcel_Cell_DataValidation::TYPE_NONE; + $this->_errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP; + $this->_operator = ''; + $this->_allowBlank = false; + $this->_showDropDown = false; + $this->_showInputMessage = false; + $this->_showErrorMessage = false; + $this->_errorTitle = ''; + $this->_error = ''; + $this->_promptTitle = ''; + $this->_prompt = ''; + } + + /** + * Get Formula 1 + * + * @return string + */ + public function getFormula1() { + return $this->_formula1; + } + + /** + * Set Formula 1 + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setFormula1($value = '') { + $this->_formula1 = $value; + return $this; + } + + /** + * Get Formula 2 + * + * @return string + */ + public function getFormula2() { + return $this->_formula2; + } + + /** + * Set Formula 2 + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setFormula2($value = '') { + $this->_formula2 = $value; + return $this; + } + + /** + * Get Type + * + * @return string + */ + public function getType() { + return $this->_type; + } + + /** + * Set Type + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setType($value = PHPExcel_Cell_DataValidation::TYPE_NONE) { + $this->_type = $value; + return $this; + } + + /** + * Get Error style + * + * @return string + */ + public function getErrorStyle() { + return $this->_errorStyle; + } + + /** + * Set Error style + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setErrorStyle($value = PHPExcel_Cell_DataValidation::STYLE_STOP) { + $this->_errorStyle = $value; + return $this; + } + + /** + * Get Operator + * + * @return string + */ + public function getOperator() { + return $this->_operator; + } + + /** + * Set Operator + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setOperator($value = '') { + $this->_operator = $value; + return $this; + } + + /** + * Get Allow Blank + * + * @return boolean + */ + public function getAllowBlank() { + return $this->_allowBlank; + } + + /** + * Set Allow Blank + * + * @param boolean $value + * @return PHPExcel_Cell_DataValidation + */ + public function setAllowBlank($value = false) { + $this->_allowBlank = $value; + return $this; + } + + /** + * Get Show DropDown + * + * @return boolean + */ + public function getShowDropDown() { + return $this->_showDropDown; + } + + /** + * Set Show DropDown + * + * @param boolean $value + * @return PHPExcel_Cell_DataValidation + */ + public function setShowDropDown($value = false) { + $this->_showDropDown = $value; + return $this; + } + + /** + * Get Show InputMessage + * + * @return boolean + */ + public function getShowInputMessage() { + return $this->_showInputMessage; + } + + /** + * Set Show InputMessage + * + * @param boolean $value + * @return PHPExcel_Cell_DataValidation + */ + public function setShowInputMessage($value = false) { + $this->_showInputMessage = $value; + return $this; + } + + /** + * Get Show ErrorMessage + * + * @return boolean + */ + public function getShowErrorMessage() { + return $this->_showErrorMessage; + } + + /** + * Set Show ErrorMessage + * + * @param boolean $value + * @return PHPExcel_Cell_DataValidation + */ + public function setShowErrorMessage($value = false) { + $this->_showErrorMessage = $value; + return $this; + } + + /** + * Get Error title + * + * @return string + */ + public function getErrorTitle() { + return $this->_errorTitle; + } + + /** + * Set Error title + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setErrorTitle($value = '') { + $this->_errorTitle = $value; + return $this; + } + + /** + * Get Error + * + * @return string + */ + public function getError() { + return $this->_error; + } + + /** + * Set Error + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setError($value = '') { + $this->_error = $value; + return $this; + } + + /** + * Get Prompt title + * + * @return string + */ + public function getPromptTitle() { + return $this->_promptTitle; + } + + /** + * Set Prompt title + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setPromptTitle($value = '') { + $this->_promptTitle = $value; + return $this; + } + + /** + * Get Prompt + * + * @return string + */ + public function getPrompt() { + return $this->_prompt; + } + + /** + * Set Prompt + * + * @param string $value + * @return PHPExcel_Cell_DataValidation + */ + public function setPrompt($value = '') { + $this->_prompt = $value; + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_formula1 + . $this->_formula2 + . $this->_type = PHPExcel_Cell_DataValidation::TYPE_NONE + . $this->_errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP + . $this->_operator + . ($this->_allowBlank ? 't' : 'f') + . ($this->_showDropDown ? 't' : 'f') + . ($this->_showInputMessage ? 't' : 'f') + . ($this->_showErrorMessage ? 't' : 'f') + . $this->_errorTitle + . $this->_error + . $this->_promptTitle + . $this->_prompt + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Cell/DefaultValueBinder.php b/plugins/excel_reader/Classes/PHPExcel/Cell/DefaultValueBinder.php new file mode 100755 index 0000000..f520cc5 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Cell/DefaultValueBinder.php @@ -0,0 +1,106 @@ +setValueExplicit( $value, self::dataTypeForValue($value) ); + + // Done! + return true; + } + + /** + * DataType for value + * + * @param mixed $pValue + * @return int + */ + public static function dataTypeForValue($pValue = null) { + // Match the value against a few data types + if (is_null($pValue)) { + return PHPExcel_Cell_DataType::TYPE_NULL; + + } elseif ($pValue === '') { + return PHPExcel_Cell_DataType::TYPE_STRING; + + } elseif ($pValue instanceof PHPExcel_RichText) { + return PHPExcel_Cell_DataType::TYPE_INLINE; + + } elseif ($pValue{0} === '=' && strlen($pValue) > 1) { + return PHPExcel_Cell_DataType::TYPE_FORMULA; + + } elseif (is_bool($pValue)) { + return PHPExcel_Cell_DataType::TYPE_BOOL; + + } elseif (is_float($pValue) || is_int($pValue)) { + return PHPExcel_Cell_DataType::TYPE_NUMERIC; + + } elseif (preg_match('/^\-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)$/', $pValue)) { + return PHPExcel_Cell_DataType::TYPE_NUMERIC; + + } elseif (is_string($pValue) && array_key_exists($pValue, PHPExcel_Cell_DataType::getErrorCodes())) { + return PHPExcel_Cell_DataType::TYPE_ERROR; + + } else { + return PHPExcel_Cell_DataType::TYPE_STRING; + + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Cell/Hyperlink.php b/plugins/excel_reader/Classes/PHPExcel/Cell/Hyperlink.php new file mode 100755 index 0000000..9dc1304 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Cell/Hyperlink.php @@ -0,0 +1,127 @@ +_url = $pUrl; + $this->_tooltip = $pTooltip; + } + + /** + * Get URL + * + * @return string + */ + public function getUrl() { + return $this->_url; + } + + /** + * Set URL + * + * @param string $value + * @return PHPExcel_Cell_Hyperlink + */ + public function setUrl($value = '') { + $this->_url = $value; + return $this; + } + + /** + * Get tooltip + * + * @return string + */ + public function getTooltip() { + return $this->_tooltip; + } + + /** + * Set tooltip + * + * @param string $value + * @return PHPExcel_Cell_Hyperlink + */ + public function setTooltip($value = '') { + $this->_tooltip = $value; + return $this; + } + + /** + * Is this hyperlink internal? (to another sheet) + * + * @return boolean + */ + public function isInternal() { + return strpos($this->_url, 'sheet://') !== false; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_url + . $this->_tooltip + . __CLASS__ + ); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Cell/IValueBinder.php b/plugins/excel_reader/Classes/PHPExcel/Cell/IValueBinder.php new file mode 100755 index 0000000..4070b67 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Cell/IValueBinder.php @@ -0,0 +1,46 @@ +_name = $name; + $this->_title = $title; + $this->_legend = $legend; + $this->_xAxisLabel = $xAxisLabel; + $this->_yAxisLabel = $yAxisLabel; + $this->_plotArea = $plotArea; + $this->_plotVisibleOnly = $plotVisibleOnly; + $this->_displayBlanksAs = $displayBlanksAs; + } + + /** + * Get Name + * + * @return string + */ + public function getName() { + return $this->_name; + } + + /** + * Get Worksheet + * + * @return PHPExcel_Worksheet + */ + public function getWorksheet() { + return $this->_worksheet; + } + + /** + * Set Worksheet + * + * @param PHPExcel_Worksheet $pValue + * @throws Exception + * @return PHPExcel_Chart + */ + public function setWorksheet(PHPExcel_Worksheet $pValue = null) { + $this->_worksheet = $pValue; + + return $this; + } + + /** + * Get Title + * + * @return PHPExcel_Chart_Title + */ + public function getTitle() { + return $this->_title; + } + + /** + * Set Title + * + * @param PHPExcel_Chart_Title $title + * @return PHPExcel_Chart + */ + public function setTitle(PHPExcel_Chart_Title $title) { + $this->_title = $title; + + return $this; + } + + /** + * Get Legend + * + * @return PHPExcel_Chart_Legend + */ + public function getLegend() { + return $this->_legend; + } + + /** + * Set Legend + * + * @param PHPExcel_Chart_Legend $legend + * @return PHPExcel_Chart + */ + public function setLegend(PHPExcel_Chart_Legend $legend) { + $this->_legend = $legend; + + return $this; + } + + /** + * Get X-Axis Label + * + * @return PHPExcel_Chart_Title + */ + public function getXAxisLabel() { + return $this->_xAxisLabel; + } + + /** + * Set X-Axis Label + * + * @param PHPExcel_Chart_Title $label + * @return PHPExcel_Chart + */ + public function setXAxisLabel(PHPExcel_Chart_Title $label) { + $this->_xAxisLabel = $label; + + return $this; + } + + /** + * Get Y-Axis Label + * + * @return PHPExcel_Chart_Title + */ + public function getYAxisLabel() { + return $this->_yAxisLabel; + } + + /** + * Set Y-Axis Label + * + * @param PHPExcel_Chart_Title $label + * @return PHPExcel_Chart + */ + public function setYAxisLabel(PHPExcel_Chart_Title $label) { + $this->_yAxisLabel = $label; + + return $this; + } + + /** + * Get Plot Area + * + * @return PHPExcel_Chart_PlotArea + */ + public function getPlotArea() { + return $this->_plotArea; + } + + /** + * Get Plot Visible Only + * + * @return boolean + */ + public function getPlotVisibleOnly() { + return $this->_plotVisibleOnly; + } + + /** + * Set Plot Visible Only + * + * @param boolean $plotVisibleOnly + * @return PHPExcel_Chart + */ + public function setPlotVisibleOnly($plotVisibleOnly = true) { + $this->_plotVisibleOnly = $plotVisibleOnly; + + return $this; + } + + /** + * Get Display Blanks as + * + * @return string + */ + public function getDisplayBlanksAs() { + return $this->_displayBlanksAs; + } + + /** + * Set Display Blanks as + * + * @param string $displayBlanksAs + * @return PHPExcel_Chart + */ + public function setDisplayBlanksAs($displayBlanksAs = '0') { + $this->_displayBlanksAs = $displayBlanksAs; + } + + + /** + * Set the Top Left position for the chart + * + * @param string $cell + * @param integer $xOffset + * @param integer $yOffset + * @return PHPExcel_Chart + */ + public function setTopLeftPosition($cell, $xOffset=null, $yOffset=null) { + $this->_topLeftCellRef = $cell; + if (!is_null($xOffset)) + $this->setTopLeftXOffset($xOffset); + if (!is_null($yOffset)) + $this->setTopLeftYOffset($yOffset); + + return $this; + } + + /** + * Get the top left position of the chart + * + * @return array an associative array containing the cell address, X-Offset and Y-Offset from the top left of that cell + */ + public function getTopLeftPosition() { + return array( 'cell' => $this->_topLeftCellRef, + 'xOffset' => $this->_topLeftXOffset, + 'yOffset' => $this->_topLeftYOffset + ); + } + + /** + * Get the cell address where the top left of the chart is fixed + * + * @return string + */ + public function getTopLeftCell() { + return $this->_topLeftCellRef; + } + + /** + * Set the Top Left cell position for the chart + * + * @param string $cell + * @return PHPExcel_Chart + */ + public function setTopLeftCell($cell) { + $this->_topLeftCellRef = $cell; + + return $this; + } + + public function setTopLeftOffset($xOffset=null,$yOffset=null) { + if (!is_null($xOffset)) + $this->setTopLeftXOffset($xOffset); + if (!is_null($yOffset)) + $this->setTopLeftYOffset($yOffset); + + return $this; + } + + public function getTopLeftOffset() { + return array( 'X' => $this->_topLeftXOffset, + 'Y' => $this->_topLeftYOffset + ); + } + + public function setTopLeftXOffset($xOffset) { + $this->_topLeftXOffset = $xOffset; + + return $this; + } + + public function getTopLeftXOffset() { + return $this->_topLeftXOffset; + } + + public function setTopLeftYOffset($yOffset) { + $this->_topLeftYOffset = $yOffset; + + return $this; + } + + public function getTopLeftYOffset() { + return $this->_topLeftYOffset; + } + + /** + * Set the Bottom Right position of the chart + * + * @param string $cell + * @param integer $xOffset + * @param integer $yOffset + * @return PHPExcel_Chart + */ + public function setBottomRightPosition($cell, $xOffset=null, $yOffset=null) { + $this->_bottomRightCellRef = $cell; + if (!is_null($xOffset)) + $this->setBottomRightXOffset($xOffset); + if (!is_null($yOffset)) + $this->setBottomRightYOffset($yOffset); + + return $this; + } + + /** + * Get the bottom right position of the chart + * + * @return array an associative array containing the cell address, X-Offset and Y-Offset from the top left of that cell + */ + public function getBottomRightPosition() { + return array( 'cell' => $this->_bottomRightCellRef, + 'xOffset' => $this->_bottomRightXOffset, + 'yOffset' => $this->_bottomRightYOffset + ); + } + + public function setBottomRightCell($cell) { + $this->_bottomRightCellRef = $cell; + + return $this; + } + + /** + * Get the cell address where the bottom right of the chart is fixed + * + * @return string + */ + public function getBottomRightCell() { + return $this->_bottomRightCellRef; + } + + public function setBottomRightOffset($xOffset=null,$yOffset=null) { + if (!is_null($xOffset)) + $this->setBottomRightXOffset($xOffset); + if (!is_null($yOffset)) + $this->setBottomRightYOffset($yOffset); + + return $this; + } + + public function getBottomRightOffset() { + return array( 'X' => $this->_bottomRightXOffset, + 'Y' => $this->_bottomRightYOffset + ); + } + + public function setBottomRightXOffset($xOffset) { + $this->_bottomRightXOffset = $xOffset; + + return $this; + } + + public function getBottomRightXOffset() { + return $this->_bottomRightXOffset; + } + + public function setBottomRightYOffset($yOffset) { + $this->_bottomRightYOffset = $yOffset; + + return $this; + } + + public function getBottomRightYOffset() { + return $this->_bottomRightYOffset; + } + + + public function refresh() { + if ($this->_worksheet !== NULL) { + $this->_plotArea->refresh($this->_worksheet); + } + } + + public function render($outputDestination = null) { + $libraryName = PHPExcel_Settings::getChartRendererName(); + if (is_null($libraryName)) { + return false; + } + // Ensure that data series values are up-to-date before we render + $this->refresh(); + + $libraryPath = PHPExcel_Settings::getChartRendererPath(); + $includePath = str_replace('\\','/',get_include_path()); + $rendererPath = str_replace('\\','/',$libraryPath); + if (strpos($rendererPath,$includePath) === false) { + set_include_path(get_include_path() . PATH_SEPARATOR . $libraryPath); + } + + $rendererName = 'PHPExcel_Chart_Renderer_'.$libraryName; + $renderer = new $rendererName($this); + + if ($outputDestination == 'php://output') { + $outputDestination = null; + } + return $renderer->render($outputDestination); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/DataSeries.php b/plugins/excel_reader/Classes/PHPExcel/Chart/DataSeries.php new file mode 100755 index 0000000..16e5e23 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/DataSeries.php @@ -0,0 +1,354 @@ +_plotType = $plotType; + $this->_plotGrouping = $plotGrouping; + $this->_plotOrder = $plotOrder; + $keys = array_keys($plotValues); + $this->_plotValues = $plotValues; + if ((count($plotLabel) == 0) || (is_null($plotLabel[$keys[0]]))) { + $plotLabel[$keys[0]] = new PHPExcel_Chart_DataSeriesValues(); + } + + $this->_plotLabel = $plotLabel; + if ((count($plotCategory) == 0) || (is_null($plotCategory[$keys[0]]))) { + $plotCategory[$keys[0]] = new PHPExcel_Chart_DataSeriesValues(); + } + $this->_plotCategory = $plotCategory; + $this->_smoothLine = $smoothLine; + $this->_plotStyle = $plotStyle; + } + + /** + * Get Plot Type + * + * @return string + */ + public function getPlotType() { + return $this->_plotType; + } + + /** + * Set Plot Type + * + * @param string $plotType + */ + public function setPlotType($plotType = '') { + $this->_plotType = $plotType; + } + + /** + * Get Plot Grouping Type + * + * @return string + */ + public function getPlotGrouping() { + return $this->_plotGrouping; + } + + /** + * Set Plot Grouping Type + * + * @param string $groupingType + */ + public function setPlotGrouping($groupingType = null) { + $this->_plotGrouping = $groupingType; + } + + /** + * Get Plot Direction + * + * @return string + */ + public function getPlotDirection() { + return $this->_plotDirection; + } + + /** + * Set Plot Direction + * + * @param string $plotDirection + */ + public function setPlotDirection($plotDirection = null) { + $this->_plotDirection = $plotDirection; + } + + /** + * Get Plot Order + * + * @return string + */ + public function getPlotOrder() { + return $this->_plotOrder; + } + + /** + * Get Plot Labels + * + * @return array of PHPExcel_Chart_DataSeriesValues + */ + public function getPlotLabels() { + return $this->_plotLabel; + } + + /** + * Get Plot Label by Index + * + * @return PHPExcel_Chart_DataSeriesValues + */ + public function getPlotLabelByIndex($index) { + $keys = array_keys($this->_plotLabel); + if (in_array($index,$keys)) { + return $this->_plotLabel[$index]; + } elseif(isset($keys[$index])) { + return $this->_plotLabel[$keys[$index]]; + } + return false; + } + + /** + * Get Plot Categories + * + * @return array of PHPExcel_Chart_DataSeriesValues + */ + public function getPlotCategories() { + return $this->_plotCategory; + } + + /** + * Get Plot Category by Index + * + * @return PHPExcel_Chart_DataSeriesValues + */ + public function getPlotCategoryByIndex($index) { + $keys = array_keys($this->_plotCategory); + if (in_array($index,$keys)) { + return $this->_plotCategory[$index]; + } elseif(isset($keys[$index])) { + return $this->_plotCategory[$keys[$index]]; + } + return false; + } + + /** + * Get Plot Style + * + * @return string + */ + public function getPlotStyle() { + return $this->_plotStyle; + } + + /** + * Set Plot Style + * + * @param string $plotStyle + */ + public function setPlotStyle($plotStyle = null) { + $this->_plotStyle = $plotStyle; + } + + /** + * Get Plot Values + * + * @return array of PHPExcel_Chart_DataSeriesValues + */ + public function getPlotValues() { + return $this->_plotValues; + } + + /** + * Get Plot Values by Index + * + * @return PHPExcel_Chart_DataSeriesValues + */ + public function getPlotValuesByIndex($index) { + $keys = array_keys($this->_plotValues); + if (in_array($index,$keys)) { + return $this->_plotValues[$index]; + } elseif(isset($keys[$index])) { + return $this->_plotValues[$keys[$index]]; + } + return false; + } + + /** + * Get Number of Plot Series + * + * @return integer + */ + public function getPlotSeriesCount() { + return count($this->_plotValues); + } + + /** + * Get Smooth Line + * + * @return boolean + */ + public function getSmoothLine() { + return $this->_smoothLine; + } + + /** + * Set Smooth Line + * + * @param boolean $smoothLine + */ + public function setSmoothLine($smoothLine = TRUE) { + $this->_smoothLine = $smoothLine; + } + + public function refresh(PHPExcel_Worksheet $worksheet) { + foreach($this->_plotValues as $plotValues) { + if ($plotValues !== NULL) + $plotValues->refresh($worksheet, TRUE); + } + foreach($this->_plotLabel as $plotValues) { + if ($plotValues !== NULL) + $plotValues->refresh($worksheet, TRUE); + } + foreach($this->_plotCategory as $plotValues) { + if ($plotValues !== NULL) + $plotValues->refresh($worksheet, FALSE); + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/DataSeriesValues.php b/plugins/excel_reader/Classes/PHPExcel/Chart/DataSeriesValues.php new file mode 100755 index 0000000..e49d0c7 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/DataSeriesValues.php @@ -0,0 +1,321 @@ +setDataType($dataType); + $this->_dataSource = $dataSource; + $this->_formatCode = $formatCode; + $this->_pointCount = $pointCount; + $this->_dataValues = $dataValues; + $this->_marker = $marker; + } + + /** + * Get Series Data Type + * + * @return string + */ + public function getDataType() { + return $this->_dataType; + } + + /** + * Set Series Data Type + * + * @param string $dataType Datatype of this data series + * Typical values are: + * PHPExcel_Chart_DataSeriesValues::DATASERIES_TYPE_STRING + * Normally used for axis point values + * PHPExcel_Chart_DataSeriesValues::DATASERIES_TYPE_NUMBER + * Normally used for chart data values + * @return PHPExcel_Chart_DataSeriesValues + */ + public function setDataType($dataType = self::DATASERIES_TYPE_NUMBER) { + if (!in_array($dataType, self::$_dataTypeValues)) { + throw new PHPExcel_Chart_Exception('Invalid datatype for chart data series values'); + } + $this->_dataType = $dataType; + + return $this; + } + + /** + * Get Series Data Source (formula) + * + * @return string + */ + public function getDataSource() { + return $this->_dataSource; + } + + /** + * Set Series Data Source (formula) + * + * @param string $dataSource + * @return PHPExcel_Chart_DataSeriesValues + */ + public function setDataSource($dataSource = null, $refreshDataValues = true) { + $this->_dataSource = $dataSource; + + if ($refreshDataValues) { + // TO DO + } + + return $this; + } + + /** + * Get Point Marker + * + * @return string + */ + public function getPointMarker() { + return $this->_marker; + } + + /** + * Set Point Marker + * + * @param string $marker + * @return PHPExcel_Chart_DataSeriesValues + */ + public function setPointMarker($marker = null) { + $this->_marker = $marker; + + return $this; + } + + /** + * Get Series Format Code + * + * @return string + */ + public function getFormatCode() { + return $this->_formatCode; + } + + /** + * Set Series Format Code + * + * @param string $formatCode + * @return PHPExcel_Chart_DataSeriesValues + */ + public function setFormatCode($formatCode = null) { + $this->_formatCode = $formatCode; + + return $this; + } + + /** + * Get Series Point Count + * + * @return integer + */ + public function getPointCount() { + return $this->_pointCount; + } + + /** + * Identify if the Data Series is a multi-level or a simple series + * + * @return boolean + */ + public function isMultiLevelSeries() { + if (count($this->_dataValues) > 0) { + return is_array($this->_dataValues[0]); + } + return null; + } + + /** + * Return the level count of a multi-level Data Series + * + * @return boolean + */ + public function multiLevelCount() { + $levelCount = 0; + foreach($this->_dataValues as $dataValueSet) { + $levelCount = max($levelCount,count($dataValueSet)); + } + return $levelCount; + } + + /** + * Get Series Data Values + * + * @return array of mixed + */ + public function getDataValues() { + return $this->_dataValues; + } + + /** + * Get the first Series Data value + * + * @return mixed + */ + public function getDataValue() { + $count = count($this->_dataValues); + if ($count == 0) { + return null; + } elseif ($count == 1) { + return $this->_dataValues[0]; + } + return $this->_dataValues; + } + + /** + * Set Series Data Values + * + * @param array $dataValues + * @param boolean $refreshDataSource + * TRUE - refresh the value of _dataSource based on the values of $dataValues + * FALSE - don't change the value of _dataSource + * @return PHPExcel_Chart_DataSeriesValues + */ + public function setDataValues($dataValues = array(), $refreshDataSource = TRUE) { + $this->_dataValues = PHPExcel_Calculation_Functions::flattenArray($dataValues); + $this->_pointCount = count($dataValues); + + if ($refreshDataSource) { + // TO DO + } + + return $this; + } + + private function _stripNulls($var) { + return $var !== NULL; + } + + public function refresh(PHPExcel_Worksheet $worksheet, $flatten = TRUE) { + if ($this->_dataSource !== NULL) { + $calcEngine = PHPExcel_Calculation::getInstance(); + $newDataValues = PHPExcel_Calculation::_unwrapResult( + $calcEngine->_calculateFormulaValue( + '='.$this->_dataSource, + NULL, + $worksheet->getCell('A1') + ) + ); + if ($flatten) { + $this->_dataValues = PHPExcel_Calculation_Functions::flattenArray($newDataValues); + } else { + $cellRange = explode('!',$this->_dataSource); + if (count($cellRange) > 1) { + list(,$cellRange) = $cellRange; + } + + $dimensions = PHPExcel_Cell::rangeDimension(str_replace('$','',$cellRange)); + if (($dimensions[0] == 1) || ($dimensions[1] == 1)) { + $this->_dataValues = PHPExcel_Calculation_Functions::flattenArray($newDataValues); + } else { + $newArray = array_values(array_shift($newDataValues)); + foreach($newArray as $i => $newDataSet) { + $newArray[$i] = array($newDataSet); + } + + foreach($newDataValues as $newDataSet) { + $i = 0; + foreach($newDataSet as $newDataVal) { + array_unshift($newArray[$i++],$newDataVal); + } + } + $this->_dataValues = $newArray; + } + } + $this->_pointCount = count($this->_dataValues); + } + + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/Exception.php b/plugins/excel_reader/Classes/PHPExcel/Chart/Exception.php new file mode 100755 index 0000000..984d5f9 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/Exception.php @@ -0,0 +1,52 @@ +line = $line; + $e->file = $file; + throw $e; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/Layout.php b/plugins/excel_reader/Classes/PHPExcel/Chart/Layout.php new file mode 100755 index 0000000..d128382 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/Layout.php @@ -0,0 +1,417 @@ +_layoutTarget = $layout['layoutTarget']; } + if (isset($layout['xMode'])) { $this->_xMode = $layout['xMode']; } + if (isset($layout['yMode'])) { $this->_yMode = $layout['yMode']; } + if (isset($layout['x'])) { $this->_xPos = (float) $layout['x']; } + if (isset($layout['y'])) { $this->_yPos = (float) $layout['y']; } + if (isset($layout['w'])) { $this->_width = (float) $layout['w']; } + if (isset($layout['h'])) { $this->_height = (float) $layout['h']; } + } + + /** + * Get Layout Target + * + * @return string + */ + public function getLayoutTarget() { + return $this->_layoutTarget; + } + + /** + * Set Layout Target + * + * @param Layout Target $value + */ + public function setLayoutTarget($value) { + $this->_layoutTarget = $value; + } + + /** + * Get X-Mode + * + * @return string + */ + public function getXMode() { + return $this->_xMode; + } + + /** + * Set X-Mode + * + * @param X-Mode $value + */ + public function setXMode($value) { + $this->_xMode = $value; + } + + /** + * Get Y-Mode + * + * @return string + */ + public function getYMode() { + return $this->_xMode; + } + + /** + * Set Y-Mode + * + * @param Y-Mode $value + */ + public function setYMode($value) { + $this->_xMode = $value; + } + + /** + * Get X-Position + * + * @return number + */ + public function getXPosition() { + return $this->_xPos; + } + + /** + * Set X-Position + * + * @param X-Position $value + */ + public function setXPosition($value) { + $this->_xPos = $value; + } + + /** + * Get Y-Position + * + * @return number + */ + public function getYPosition() { + return $this->_yPos; + } + + /** + * Set Y-Position + * + * @param Y-Position $value + */ + public function setYPosition($value) { + $this->_yPos = $value; + } + + /** + * Get Width + * + * @return number + */ + public function getWidth() { + return $this->_width; + } + + /** + * Set Width + * + * @param Width $value + */ + public function setWidth($value) { + $this->_width = $value; + } + + /** + * Get Height + * + * @return number + */ + public function getHeight() { + return $this->_height; + } + + /** + * Set Height + * + * @param Height $value + */ + public function setHeight($value) { + $this->_height = $value; + } + + + /** + * Get show legend key + * + * @return boolean + */ + public function getShowLegendKey() { + return $this->_showLegendKey; + } + + /** + * Set show legend key + * Specifies that legend keys should be shown in data labels. + * + * @param boolean $value Show legend key + */ + public function setShowLegendKey($value) { + $this->_showLegendKey = $value; + } + + /** + * Get show value + * + * @return boolean + */ + public function getShowVal() { + return $this->_showVal; + } + + /** + * Set show val + * Specifies that the value should be shown in data labels. + * + * @param boolean $value Show val + */ + public function setShowVal($value) { + $this->_showVal = $value; + } + + /** + * Get show category name + * + * @return boolean + */ + public function getShowCatName() { + return $this->_showCatName; + } + + /** + * Set show cat name + * Specifies that the category name should be shown in data labels. + * + * @param boolean $value Show cat name + */ + public function setShowCatName($value) { + $this->_showCatName = $value; + } + + /** + * Get show data series name + * + * @return boolean + */ + public function getShowSerName() { + return $this->_showSerName; + } + + /** + * Set show ser name + * Specifies that the series name should be shown in data labels. + * + * @param boolean $value Show ser name + */ + public function setShowSerName($value) { + $this->_showSerName = $value; + } + + /** + * Get show percentage + * + * @return boolean + */ + public function getShowPercent() { + return $this->_showPercent; + } + + /** + * Set show percentage + * Specifies that the percentage should be shown in data labels. + * + * @param boolean $value Show percentage + */ + public function setShowPercent($value) { + $this->_showPercent = $value; + } + + /** + * Get show bubble size + * + * @return boolean + */ + public function getShowBubbleSize() { + return $this->_showBubbleSize; + } + + /** + * Set show bubble size + * Specifies that the bubble size should be shown in data labels. + * + * @param boolean $value Show bubble size + */ + public function setShowBubbleSize($value) { + $this->_showBubbleSize = $value; + } + + /** + * Get show leader lines + * + * @return boolean + */ + public function getShowLeaderLines() { + return $this->_showLeaderLines; + } + + /** + * Set show leader lines + * Specifies that leader lines should be shown in data labels. + * + * @param boolean $value Show leader lines + */ + public function setShowLeaderLines($value) { + $this->_showLeaderLines = $value; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/Legend.php b/plugins/excel_reader/Classes/PHPExcel/Chart/Legend.php new file mode 100755 index 0000000..0ccd77e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/Legend.php @@ -0,0 +1,171 @@ + self::POSITION_BOTTOM, + self::xlLegendPositionCorner => self::POSITION_TOPRIGHT, + self::xlLegendPositionCustom => '??', + self::xlLegendPositionLeft => self::POSITION_LEFT, + self::xlLegendPositionRight => self::POSITION_RIGHT, + self::xlLegendPositionTop => self::POSITION_TOP + ); + + /** + * Legend position + * + * @var string + */ + private $_position = self::POSITION_RIGHT; + + /** + * Allow overlay of other elements? + * + * @var boolean + */ + private $_overlay = TRUE; + + /** + * Legend Layout + * + * @var PHPExcel_Chart_Layout + */ + private $_layout = NULL; + + + /** + * Create a new PHPExcel_Chart_Legend + */ + public function __construct($position = self::POSITION_RIGHT, PHPExcel_Chart_Layout $layout = NULL, $overlay = FALSE) + { + $this->setPosition($position); + $this->_layout = $layout; + $this->setOverlay($overlay); + } + + /** + * Get legend position as an excel string value + * + * @return string + */ + public function getPosition() { + return $this->_position; + } + + /** + * Get legend position using an excel string value + * + * @param string $position + */ + public function setPosition($position = self::POSITION_RIGHT) { + if (!in_array($position,self::$_positionXLref)) { + return false; + } + + $this->_position = $position; + return true; + } + + /** + * Get legend position as an Excel internal numeric value + * + * @return number + */ + public function getPositionXL() { + return array_search($this->_position,self::$_positionXLref); + } + + /** + * Set legend position using an Excel internal numeric value + * + * @param number $positionXL + */ + public function setPositionXL($positionXL = self::xlLegendPositionRight) { + if (!array_key_exists($positionXL,self::$_positionXLref)) { + return false; + } + + $this->_position = self::$_positionXLref[$positionXL]; + return true; + } + + /** + * Get allow overlay of other elements? + * + * @return boolean + */ + public function getOverlay() { + return $this->_overlay; + } + + /** + * Set allow overlay of other elements? + * + * @param boolean $overlay + * @return boolean + */ + public function setOverlay($overlay = FALSE) { + if (!is_bool($overlay)) { + return false; + } + + $this->_overlay = $overlay; + return true; + } + + /** + * Get Layout + * + * @return PHPExcel_Chart_Layout + */ + public function getLayout() { + return $this->_layout; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/PlotArea.php b/plugins/excel_reader/Classes/PHPExcel/Chart/PlotArea.php new file mode 100755 index 0000000..134ee59 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/PlotArea.php @@ -0,0 +1,125 @@ +_layout = $layout; + $this->_plotSeries = $plotSeries; + } + + /** + * Get Layout + * + * @return PHPExcel_Chart_Layout + */ + public function getLayout() { + return $this->_layout; + } + + /** + * Get Number of Plot Groups + * + * @return array of PHPExcel_Chart_DataSeries + */ + public function getPlotGroupCount() { + return count($this->_plotSeries); + } + + /** + * Get Number of Plot Series + * + * @return integer + */ + public function getPlotSeriesCount() { + $seriesCount = 0; + foreach($this->_plotSeries as $plot) { + $seriesCount += $plot->getPlotSeriesCount(); + } + return $seriesCount; + } + + /** + * Get Plot Series + * + * @return array of PHPExcel_Chart_DataSeries + */ + public function getPlotGroup() { + return $this->_plotSeries; + } + + /** + * Get Plot Series by Index + * + * @return PHPExcel_Chart_DataSeries + */ + public function getPlotGroupByIndex($index) { + return $this->_plotSeries[$index]; + } + + /** + * Set Plot Series + * + * @param array of PHPExcel_Chart_DataSeries + */ + public function setPlotSeries($plotSeries = array()) { + $this->_plotSeries = $plotSeries; + } + + public function refresh(PHPExcel_Worksheet $worksheet) { + foreach($this->_plotSeries as $plotSeries) { + $plotSeries->refresh($worksheet); + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt b/plugins/excel_reader/Classes/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt new file mode 100755 index 0000000..faaa61d --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt @@ -0,0 +1,17 @@ +ChartDirector + http://www.advsofteng.com/cdphp.html + +GraPHPite + http://graphpite.sourceforge.net/ + +JpGraph + http://www.aditus.nu/jpgraph/ + +LibChart + http://naku.dohcrew.com/libchart/pages/introduction/ + +pChart + http://pchart.sourceforge.net/ + +TeeChart + http://www.steema.com/products/teechart/overview.html diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/Renderer/jpgraph.php b/plugins/excel_reader/Classes/PHPExcel/Chart/Renderer/jpgraph.php new file mode 100755 index 0000000..889fd9f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/Renderer/jpgraph.php @@ -0,0 +1,839 @@ + MARK_DIAMOND, + 'square' => MARK_SQUARE, + 'triangle' => MARK_UTRIANGLE, + 'x' => MARK_X, + 'star' => MARK_STAR, + 'dot' => MARK_FILLEDCIRCLE, + 'dash' => MARK_DTRIANGLE, + 'circle' => MARK_CIRCLE, + 'plus' => MARK_CROSS + ); + + + private $_chart = null; + + private $_graph = null; + + private static $_plotColour = 0; + + private static $_plotMark = 0; + + + private function _formatPointMarker($seriesPlot,$markerID) { + $plotMarkKeys = array_keys(self::$_markSet); + if (is_null($markerID)) { + // Use default plot marker (next marker in the series) + self::$_plotMark %= count(self::$_markSet); + $seriesPlot->mark->SetType(self::$_markSet[$plotMarkKeys[self::$_plotMark++]]); + } elseif ($markerID !== 'none') { + // Use specified plot marker (if it exists) + if (isset(self::$_markSet[$markerID])) { + $seriesPlot->mark->SetType(self::$_markSet[$markerID]); + } else { + // If the specified plot marker doesn't exist, use default plot marker (next marker in the series) + self::$_plotMark %= count(self::$_markSet); + $seriesPlot->mark->SetType(self::$_markSet[$plotMarkKeys[self::$_plotMark++]]); + } + } else { + // Hide plot marker + $seriesPlot->mark->Hide(); + } + $seriesPlot->mark->SetColor(self::$_colourSet[self::$_plotColour]); + $seriesPlot->mark->SetFillColor(self::$_colourSet[self::$_plotColour]); + $seriesPlot->SetColor(self::$_colourSet[self::$_plotColour++]); + + return $seriesPlot; + } // function _formatPointMarker() + + + private function _formatDataSetLabels($groupID, $datasetLabels, $labelCount, $rotation = '') { + $datasetLabelFormatCode = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getFormatCode(); + if (!is_null($datasetLabelFormatCode)) { + // Retrieve any label formatting code + $datasetLabelFormatCode = stripslashes($datasetLabelFormatCode); + } + + $testCurrentIndex = 0; + foreach($datasetLabels as $i => $datasetLabel) { + array_reverse($datasetLabel); + + if (is_array($datasetLabel)) { + if ($rotation == 'bar') { + $datasetLabel = array_reverse($datasetLabel); + $datasetLabels[$i] = implode(" ",$datasetLabel); + } else { + $datasetLabels[$i] = implode("\n",$datasetLabel); + } + } else { + // Format labels according to any formatting code + if (!is_null($datasetLabelFormatCode)) { + $datasetLabels[$i] = PHPExcel_Style_NumberFormat::toFormattedString($datasetLabel,$datasetLabelFormatCode); + } + } + ++$testCurrentIndex; + } + + return $datasetLabels; + } // function _formatDataSetLabels() + + + private function _percentageSumCalculation($groupID,$seriesCount) { + // Adjust our values to a percentage value across all series in the group + for($i = 0; $i < $seriesCount; ++$i) { + if ($i == 0) { + $sumValues = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); + } else { + $nextValues = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); + foreach($nextValues as $k => $value) { + if (isset($sumValues[$k])) { + $sumValues[$k] += $value; + } else { + $sumValues[$k] = $value; + } + } + } + } + + return $sumValues; + } // function _percentageSumCalculation() + + + private function _percentageAdjustValues($dataValues,$sumValues) { + foreach($dataValues as $k => $dataValue) { + $dataValues[$k] = $dataValue / $sumValues[$k] * 100; + } + + return $dataValues; + } // function _percentageAdjustValues() + + + private function _getCaption($captionElement) { + // Read any caption + $caption = (!is_null($captionElement)) ? $captionElement->getCaption() : NULL; + // Test if we have a title caption to display + if (!is_null($caption)) { + // If we do, it could be a plain string or an array + if (is_array($caption)) { + // Implode an array to a plain string + $caption = implode('',$caption); + } + } + return $caption; + } // function _getCaption() + + + private function _renderTitle() { + $title = $this->_getCaption($this->_chart->getTitle()); + if (!is_null($title)) { + $this->_graph->title->Set($title); + } + } // function _renderTitle() + + + private function _renderLegend() { + $legend = $this->_chart->getLegend(); + if (!is_null($legend)) { + $legendPosition = $legend->getPosition(); + $legendOverlay = $legend->getOverlay(); + switch ($legendPosition) { + case 'r' : + $this->_graph->legend->SetPos(0.01,0.5,'right','center'); // right + $this->_graph->legend->SetColumns(1); + break; + case 'l' : + $this->_graph->legend->SetPos(0.01,0.5,'left','center'); // left + $this->_graph->legend->SetColumns(1); + break; + case 't' : + $this->_graph->legend->SetPos(0.5,0.01,'center','top'); // top + break; + case 'b' : + $this->_graph->legend->SetPos(0.5,0.99,'center','bottom'); // bottom + break; + default : + $this->_graph->legend->SetPos(0.01,0.01,'right','top'); // top-right + $this->_graph->legend->SetColumns(1); + break; + } + } else { + $this->_graph->legend->Hide(); + } + } // function _renderLegend() + + + private function _renderCartesianPlotArea($type='textlin') { + $this->_graph = new Graph(self::$_width,self::$_height); + $this->_graph->SetScale($type); + + $this->_renderTitle(); + + // Rotate for bar rather than column chart + $rotation = $this->_chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotDirection(); + $reverse = ($rotation == 'bar') ? true : false; + + $xAxisLabel = $this->_chart->getXAxisLabel(); + if (!is_null($xAxisLabel)) { + $title = $this->_getCaption($xAxisLabel); + if (!is_null($title)) { + $this->_graph->xaxis->SetTitle($title,'center'); + $this->_graph->xaxis->title->SetMargin(35); + if ($reverse) { + $this->_graph->xaxis->title->SetAngle(90); + $this->_graph->xaxis->title->SetMargin(90); + } + } + } + + $yAxisLabel = $this->_chart->getYAxisLabel(); + if (!is_null($yAxisLabel)) { + $title = $this->_getCaption($yAxisLabel); + if (!is_null($title)) { + $this->_graph->yaxis->SetTitle($title,'center'); + if ($reverse) { + $this->_graph->yaxis->title->SetAngle(0); + $this->_graph->yaxis->title->SetMargin(-55); + } + } + } + } // function _renderCartesianPlotArea() + + + private function _renderPiePlotArea($doughnut = False) { + $this->_graph = new PieGraph(self::$_width,self::$_height); + + $this->_renderTitle(); + } // function _renderPiePlotArea() + + + private function _renderRadarPlotArea() { + $this->_graph = new RadarGraph(self::$_width,self::$_height); + $this->_graph->SetScale('lin'); + + $this->_renderTitle(); + } // function _renderRadarPlotArea() + + + private function _renderPlotLine($groupID, $filled = false, $combination = false, $dimensions = '2d') { + $grouping = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping(); + + $labelCount = count($this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount()); + if ($labelCount > 0) { + $datasetLabels = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues(); + $datasetLabels = $this->_formatDataSetLabels($groupID, $datasetLabels, $labelCount); + $this->_graph->xaxis->SetTickLabels($datasetLabels); + } + + $seriesCount = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); + $seriesPlots = array(); + if ($grouping == 'percentStacked') { + $sumValues = $this->_percentageSumCalculation($groupID,$seriesCount); + } + + // Loop through each data series in turn + for($i = 0; $i < $seriesCount; ++$i) { + $dataValues = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); + $marker = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker(); + + if ($grouping == 'percentStacked') { + $dataValues = $this->_percentageAdjustValues($dataValues,$sumValues); + } + + // Fill in any missing values in the $dataValues array + $testCurrentIndex = 0; + foreach($dataValues as $k => $dataValue) { + while($k != $testCurrentIndex) { + $dataValues[$testCurrentIndex] = null; + ++$testCurrentIndex; + } + ++$testCurrentIndex; + } + + $seriesPlot = new LinePlot($dataValues); + if ($combination) { + $seriesPlot->SetBarCenter(); + } + + if ($filled) { + $seriesPlot->SetFilled(true); + $seriesPlot->SetColor('black'); + $seriesPlot->SetFillColor(self::$_colourSet[self::$_plotColour++]); + } else { + // Set the appropriate plot marker + $this->_formatPointMarker($seriesPlot,$marker); + } + $dataLabel = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue(); + $seriesPlot->SetLegend($dataLabel); + + $seriesPlots[] = $seriesPlot; + } + + if ($grouping == 'standard') { + $groupPlot = $seriesPlots; + } else { + $groupPlot = new AccLinePlot($seriesPlots); + } + $this->_graph->Add($groupPlot); + } // function _renderPlotLine() + + + private function _renderPlotBar($groupID, $dimensions = '2d') { + $rotation = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotDirection(); + // Rotate for bar rather than column chart + if (($groupID == 0) && ($rotation == 'bar')) { + $this->_graph->Set90AndMargin(); + } + $grouping = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping(); + + $labelCount = count($this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount()); + if ($labelCount > 0) { + $datasetLabels = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues(); + $datasetLabels = $this->_formatDataSetLabels($groupID, $datasetLabels, $labelCount, $rotation); + // Rotate for bar rather than column chart + if ($rotation == 'bar') { + $datasetLabels = array_reverse($datasetLabels); + $this->_graph->yaxis->SetPos('max'); + $this->_graph->yaxis->SetLabelAlign('center','top'); + $this->_graph->yaxis->SetLabelSide(SIDE_RIGHT); + } + $this->_graph->xaxis->SetTickLabels($datasetLabels); + } + + + $seriesCount = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); + $seriesPlots = array(); + if ($grouping == 'percentStacked') { + $sumValues = $this->_percentageSumCalculation($groupID,$seriesCount); + } + + // Loop through each data series in turn + for($j = 0; $j < $seriesCount; ++$j) { + $dataValues = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($j)->getDataValues(); + if ($grouping == 'percentStacked') { + $dataValues = $this->_percentageAdjustValues($dataValues,$sumValues); + } + + // Fill in any missing values in the $dataValues array + $testCurrentIndex = 0; + foreach($dataValues as $k => $dataValue) { + while($k != $testCurrentIndex) { + $dataValues[$testCurrentIndex] = null; + ++$testCurrentIndex; + } + ++$testCurrentIndex; + } + + // Reverse the $dataValues order for bar rather than column chart + if ($rotation == 'bar') { + $dataValues = array_reverse($dataValues); + } + $seriesPlot = new BarPlot($dataValues); + $seriesPlot->SetColor('black'); + $seriesPlot->SetFillColor(self::$_colourSet[self::$_plotColour++]); + if ($dimensions == '3d') { + $seriesPlot->SetShadow(); + } + if (!$this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($j)) { + $dataLabel = ''; + } else { + $dataLabel = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($j)->getDataValue(); + } + $seriesPlot->SetLegend($dataLabel); + + $seriesPlots[] = $seriesPlot; + } + // Reverse the plot order for bar rather than column chart + if (($rotation == 'bar') && (!($grouping == 'percentStacked'))) { + $seriesPlots = array_reverse($seriesPlots); + } + + if ($grouping == 'clustered') { + $groupPlot = new GroupBarPlot($seriesPlots); + } elseif ($grouping == 'standard') { + $groupPlot = new GroupBarPlot($seriesPlots); + } else { + $groupPlot = new AccBarPlot($seriesPlots); + if ($dimensions == '3d') { + $groupPlot->SetShadow(); + } + } + + $this->_graph->Add($groupPlot); + } // function _renderPlotBar() + + + private function _renderPlotScatter($groupID,$bubble) { + $grouping = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping(); + $scatterStyle = $bubbleSize = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle(); + + $seriesCount = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); + $seriesPlots = array(); + + // Loop through each data series in turn + for($i = 0; $i < $seriesCount; ++$i) { + $dataValuesY = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); + $dataValuesX = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); + + foreach($dataValuesY as $k => $dataValueY) { + $dataValuesY[$k] = $k; + } + + $seriesPlot = new ScatterPlot($dataValuesX,$dataValuesY); + if ($scatterStyle == 'lineMarker') { + $seriesPlot->SetLinkPoints(); + $seriesPlot->link->SetColor(self::$_colourSet[self::$_plotColour]); + } elseif ($scatterStyle == 'smoothMarker') { + $spline = new Spline($dataValuesY,$dataValuesX); + list($splineDataY,$splineDataX) = $spline->Get(count($dataValuesX) * self::$_width / 20); + $lplot = new LinePlot($splineDataX,$splineDataY); + $lplot->SetColor(self::$_colourSet[self::$_plotColour]); + + $this->_graph->Add($lplot); + } + + if ($bubble) { + $this->_formatPointMarker($seriesPlot,'dot'); + $seriesPlot->mark->SetColor('black'); + $seriesPlot->mark->SetSize($bubbleSize); + } else { + $marker = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker(); + $this->_formatPointMarker($seriesPlot,$marker); + } + $dataLabel = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue(); + $seriesPlot->SetLegend($dataLabel); + + $this->_graph->Add($seriesPlot); + } + } // function _renderPlotScatter() + + + private function _renderPlotRadar($groupID) { + $radarStyle = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle(); + + $seriesCount = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); + $seriesPlots = array(); + + // Loop through each data series in turn + for($i = 0; $i < $seriesCount; ++$i) { + $dataValuesY = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); + $dataValuesX = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); + $marker = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker(); + + $dataValues = array(); + foreach($dataValuesY as $k => $dataValueY) { + $dataValues[$k] = implode(' ',array_reverse($dataValueY)); + } + $tmp = array_shift($dataValues); + $dataValues[] = $tmp; + $tmp = array_shift($dataValuesX); + $dataValuesX[] = $tmp; + + $this->_graph->SetTitles(array_reverse($dataValues)); + + $seriesPlot = new RadarPlot(array_reverse($dataValuesX)); + + $dataLabel = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue(); + $seriesPlot->SetColor(self::$_colourSet[self::$_plotColour++]); + if ($radarStyle == 'filled') { + $seriesPlot->SetFillColor(self::$_colourSet[self::$_plotColour]); + } + $this->_formatPointMarker($seriesPlot,$marker); + $seriesPlot->SetLegend($dataLabel); + + $this->_graph->Add($seriesPlot); + } + } // function _renderPlotRadar() + + + private function _renderPlotContour($groupID) { + $contourStyle = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle(); + + $seriesCount = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); + $seriesPlots = array(); + + $dataValues = array(); + // Loop through each data series in turn + for($i = 0; $i < $seriesCount; ++$i) { + $dataValuesY = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); + $dataValuesX = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); + + $dataValues[$i] = $dataValuesX; + } + $seriesPlot = new ContourPlot($dataValues); + + $this->_graph->Add($seriesPlot); + } // function _renderPlotContour() + + + private function _renderPlotStock($groupID) { + $seriesCount = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); + $plotOrder = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotOrder(); + $seriesPlots = array(); + + $dataValues = array(); + // Loop through each data series in turn + for($i = 0; $i < $seriesCount; ++$i) { + $dataValuesY = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); + $dataValuesX = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); + + foreach($dataValuesX as $j => $dataValueX) + $dataValues[$j][$plotOrder[$i]] = $dataValueX; + } + + $seriesPlot = new StockPlot($dataValues); + + $this->_graph->Add($seriesPlot); + } // function _renderPlotStock() + + + private function _renderAreaChart($groupCount, $dimensions = '2d') { + require_once('jpgraph_line.php'); + + $this->_renderCartesianPlotArea(); + + for($i = 0; $i < $groupCount; ++$i) { + $this->_renderPlotLine($i,True,False,$dimensions); + } + } // function _renderAreaChart() + + + private function _renderLineChart($groupCount, $dimensions = '2d') { + require_once('jpgraph_line.php'); + + $this->_renderCartesianPlotArea(); + + for($i = 0; $i < $groupCount; ++$i) { + $this->_renderPlotLine($i,False,False,$dimensions); + } + } // function _renderLineChart() + + + private function _renderBarChart($groupCount, $dimensions = '2d') { + require_once('jpgraph_bar.php'); + + $this->_renderCartesianPlotArea(); + + for($i = 0; $i < $groupCount; ++$i) { + $this->_renderPlotBar($i,$dimensions); + } + } // function _renderBarChart() + + + private function _renderScatterChart($groupCount) { + require_once('jpgraph_scatter.php'); + require_once('jpgraph_regstat.php'); + require_once('jpgraph_line.php'); + + $this->_renderCartesianPlotArea('linlin'); + + for($i = 0; $i < $groupCount; ++$i) { + $this->_renderPlotScatter($i,false); + } + } // function _renderScatterChart() + + + private function _renderBubbleChart($groupCount) { + require_once('jpgraph_scatter.php'); + + $this->_renderCartesianPlotArea('linlin'); + + for($i = 0; $i < $groupCount; ++$i) { + $this->_renderPlotScatter($i,true); + } + } // function _renderBubbleChart() + + + private function _renderPieChart($groupCount, $dimensions = '2d', $doughnut = False, $multiplePlots = False) { + require_once('jpgraph_pie.php'); + if ($dimensions == '3d') { + require_once('jpgraph_pie3d.php'); + } + + $this->_renderPiePlotArea($doughnut); + + $iLimit = ($multiplePlots) ? $groupCount : 1; + for($groupID = 0; $groupID < $iLimit; ++$groupID) { + $grouping = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping(); + $exploded = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle(); + if ($groupID == 0) { + $labelCount = count($this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount()); + if ($labelCount > 0) { + $datasetLabels = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues(); + $datasetLabels = $this->_formatDataSetLabels($groupID, $datasetLabels, $labelCount); + } + } + + $seriesCount = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); + $seriesPlots = array(); + // For pie charts, we only display the first series: doughnut charts generally display all series + $jLimit = ($multiplePlots) ? $seriesCount : 1; + // Loop through each data series in turn + for($j = 0; $j < $jLimit; ++$j) { + $dataValues = $this->_chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($j)->getDataValues(); + + // Fill in any missing values in the $dataValues array + $testCurrentIndex = 0; + foreach($dataValues as $k => $dataValue) { + while($k != $testCurrentIndex) { + $dataValues[$testCurrentIndex] = null; + ++$testCurrentIndex; + } + ++$testCurrentIndex; + } + + if ($dimensions == '3d') { + $seriesPlot = new PiePlot3D($dataValues); + } else { + if ($doughnut) { + $seriesPlot = new PiePlotC($dataValues); + } else { + $seriesPlot = new PiePlot($dataValues); + } + } + + if ($multiplePlots) { + $seriesPlot->SetSize(($jLimit-$j) / ($jLimit * 4)); + } + + if ($doughnut) { + $seriesPlot->SetMidColor('white'); + } + + $seriesPlot->SetColor(self::$_colourSet[self::$_plotColour++]); + if (count($datasetLabels) > 0) + $seriesPlot->SetLabels(array_fill(0,count($datasetLabels),'')); + if ($dimensions != '3d') { + $seriesPlot->SetGuideLines(false); + } + if ($j == 0) { + if ($exploded) { + $seriesPlot->ExplodeAll(); + } + $seriesPlot->SetLegends($datasetLabels); + } + + $this->_graph->Add($seriesPlot); + } + } + } // function _renderPieChart() + + + private function _renderRadarChart($groupCount) { + require_once('jpgraph_radar.php'); + + $this->_renderRadarPlotArea(); + + for($groupID = 0; $groupID < $groupCount; ++$groupID) { + $this->_renderPlotRadar($groupID); + } + } // function _renderRadarChart() + + + private function _renderStockChart($groupCount) { + require_once('jpgraph_stock.php'); + + $this->_renderCartesianPlotArea(); + + for($groupID = 0; $groupID < $groupCount; ++$i) { + $this->_renderPlotStock($groupID); + } + } // function _renderStockChart() + + + private function _renderContourChart($groupCount,$dimensions) { + require_once('jpgraph_contour.php'); + + $this->_renderCartesianPlotArea('intint'); + + for($i = 0; $i < $groupCount; ++$i) { + $this->_renderPlotContour($i); + } + } // function _renderContourChart() + + + private function _renderCombinationChart($groupCount,$dimensions,$outputDestination) { + require_once('jpgraph_line.php'); + require_once('jpgraph_bar.php'); + require_once('jpgraph_scatter.php'); + require_once('jpgraph_regstat.php'); + require_once('jpgraph_line.php'); + + $this->_renderCartesianPlotArea(); + + for($i = 0; $i < $groupCount; ++$i) { + $dimensions = null; + $chartType = $this->_chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + switch ($chartType) { + case 'area3DChart' : + $dimensions = '3d'; + case 'areaChart' : + $this->_renderPlotLine($i,True,True,$dimensions); + break; + case 'bar3DChart' : + $dimensions = '3d'; + case 'barChart' : + $this->_renderPlotBar($i,$dimensions); + break; + case 'line3DChart' : + $dimensions = '3d'; + case 'lineChart' : + $this->_renderPlotLine($i,False,True,$dimensions); + break; + case 'scatterChart' : + $this->_renderPlotScatter($i,false); + break; + case 'bubbleChart' : + $this->_renderPlotScatter($i,true); + break; + default : + $this->_graph = null; + return false; + } + } + + $this->_renderLegend(); + + $this->_graph->Stroke($outputDestination); + return true; + } // function _renderCombinationChart() + + + public function render($outputDestination) { + self::$_plotColour = 0; + + $groupCount = $this->_chart->getPlotArea()->getPlotGroupCount(); + + $dimensions = null; + if ($groupCount == 1) { + $chartType = $this->_chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); + } else { + $chartTypes = array(); + for($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $this->_chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + } + $chartTypes = array_unique($chartTypes); + if (count($chartTypes) == 1) { + $chartType = array_pop($chartTypes); + } elseif (count($chartTypes) == 0) { + echo 'Chart is not yet implemented
'; + return false; + } else { + return $this->_renderCombinationChart($groupCount,$dimensions,$outputDestination); + } + } + + switch ($chartType) { + case 'area3DChart' : + $dimensions = '3d'; + case 'areaChart' : + $this->_renderAreaChart($groupCount,$dimensions); + break; + case 'bar3DChart' : + $dimensions = '3d'; + case 'barChart' : + $this->_renderBarChart($groupCount,$dimensions); + break; + case 'line3DChart' : + $dimensions = '3d'; + case 'lineChart' : + $this->_renderLineChart($groupCount,$dimensions); + break; + case 'pie3DChart' : + $dimensions = '3d'; + case 'pieChart' : + $this->_renderPieChart($groupCount,$dimensions,False,False); + break; + case 'doughnut3DChart' : + $dimensions = '3d'; + case 'doughnutChart' : + $this->_renderPieChart($groupCount,$dimensions,True,True); + break; + case 'scatterChart' : + $this->_renderScatterChart($groupCount); + break; + case 'bubbleChart' : + $this->_renderBubbleChart($groupCount); + break; + case 'radarChart' : + $this->_renderRadarChart($groupCount); + break; + case 'surface3DChart' : + $dimensions = '3d'; + case 'surfaceChart' : + $this->_renderContourChart($groupCount,$dimensions); + break; + case 'stockChart' : + $this->_renderStockChart($groupCount,$dimensions); + break; + default : + echo $chartType.' is not yet implemented
'; + return false; + } + $this->_renderLegend(); + + $this->_graph->Stroke($outputDestination); + return true; + } // function render() + + + /** + * Create a new PHPExcel_Chart_Renderer_jpgraph + */ + public function __construct(PHPExcel_Chart $chart) + { + $this->_graph = null; + $this->_chart = $chart; + } // function __construct() + +} // PHPExcel_Chart_Renderer_jpgraph diff --git a/plugins/excel_reader/Classes/PHPExcel/Chart/Title.php b/plugins/excel_reader/Classes/PHPExcel/Chart/Title.php new file mode 100755 index 0000000..ef26f46 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Chart/Title.php @@ -0,0 +1,89 @@ +_caption = $caption; + $this->_layout = $layout; + } + + /** + * Get caption + * + * @return string + */ + public function getCaption() { + return $this->_caption; + } + + /** + * Set caption + * + * @param string $caption + */ + public function setCaption($caption = null) { + $this->_caption = $caption; + } + + /** + * Get Layout + * + * @return PHPExcel_Chart_Layout + */ + public function getLayout() { + return $this->_layout; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Comment.php b/plugins/excel_reader/Classes/PHPExcel/Comment.php new file mode 100755 index 0000000..4ba239f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Comment.php @@ -0,0 +1,317 @@ +_author = 'Author'; + $this->_text = new PHPExcel_RichText(); + $this->_fillColor = new PHPExcel_Style_Color('FFFFFFE1'); + $this->_alignment = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; + } + + /** + * Get Author + * + * @return string + */ + public function getAuthor() { + return $this->_author; + } + + /** + * Set Author + * + * @param string $pValue + * @return PHPExcel_Comment + */ + public function setAuthor($pValue = '') { + $this->_author = $pValue; + return $this; + } + + /** + * Get Rich text comment + * + * @return PHPExcel_RichText + */ + public function getText() { + return $this->_text; + } + + /** + * Set Rich text comment + * + * @param PHPExcel_RichText $pValue + * @return PHPExcel_Comment + */ + public function setText(PHPExcel_RichText $pValue) { + $this->_text = $pValue; + return $this; + } + + /** + * Get comment width (CSS style, i.e. XXpx or YYpt) + * + * @return string + */ + public function getWidth() { + return $this->_width; + } + + /** + * Set comment width (CSS style, i.e. XXpx or YYpt) + * + * @param string $value + * @return PHPExcel_Comment + */ + public function setWidth($value = '96pt') { + $this->_width = $value; + return $this; + } + + /** + * Get comment height (CSS style, i.e. XXpx or YYpt) + * + * @return string + */ + public function getHeight() { + return $this->_height; + } + + /** + * Set comment height (CSS style, i.e. XXpx or YYpt) + * + * @param string $value + * @return PHPExcel_Comment + */ + public function setHeight($value = '55.5pt') { + $this->_height = $value; + return $this; + } + + /** + * Get left margin (CSS style, i.e. XXpx or YYpt) + * + * @return string + */ + public function getMarginLeft() { + return $this->_marginLeft; + } + + /** + * Set left margin (CSS style, i.e. XXpx or YYpt) + * + * @param string $value + * @return PHPExcel_Comment + */ + public function setMarginLeft($value = '59.25pt') { + $this->_marginLeft = $value; + return $this; + } + + /** + * Get top margin (CSS style, i.e. XXpx or YYpt) + * + * @return string + */ + public function getMarginTop() { + return $this->_marginTop; + } + + /** + * Set top margin (CSS style, i.e. XXpx or YYpt) + * + * @param string $value + * @return PHPExcel_Comment + */ + public function setMarginTop($value = '1.5pt') { + $this->_marginTop = $value; + return $this; + } + + /** + * Is the comment visible by default? + * + * @return boolean + */ + public function getVisible() { + return $this->_visible; + } + + /** + * Set comment default visibility + * + * @param boolean $value + * @return PHPExcel_Comment + */ + public function setVisible($value = false) { + $this->_visible = $value; + return $this; + } + + /** + * Get fill color + * + * @return PHPExcel_Style_Color + */ + public function getFillColor() { + return $this->_fillColor; + } + + /** + * Set Alignment + * + * @param string $pValue + * @return PHPExcel_Comment + */ + public function setAlignment($pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL) { + $this->_alignment = $pValue; + return $this; + } + + /** + * Get Alignment + * + * @return string + */ + public function getAlignment() { + return $this->_alignment; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_author + . $this->_text->getHashCode() + . $this->_width + . $this->_height + . $this->_marginLeft + . $this->_marginTop + . ($this->_visible ? 1 : 0) + . $this->_fillColor->getHashCode() + . $this->_alignment + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/DocumentProperties.php b/plugins/excel_reader/Classes/PHPExcel/DocumentProperties.php new file mode 100755 index 0000000..1f4cad2 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/DocumentProperties.php @@ -0,0 +1,588 @@ +_lastModifiedBy = $this->_creator; + $this->_created = time(); + $this->_modified = time(); + } + + /** + * Get Creator + * + * @return string + */ + public function getCreator() { + return $this->_creator; + } + + /** + * Set Creator + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setCreator($pValue = '') { + $this->_creator = $pValue; + return $this; + } + + /** + * Get Last Modified By + * + * @return string + */ + public function getLastModifiedBy() { + return $this->_lastModifiedBy; + } + + /** + * Set Last Modified By + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setLastModifiedBy($pValue = '') { + $this->_lastModifiedBy = $pValue; + return $this; + } + + /** + * Get Created + * + * @return datetime + */ + public function getCreated() { + return $this->_created; + } + + /** + * Set Created + * + * @param datetime $pValue + * @return PHPExcel_DocumentProperties + */ + public function setCreated($pValue = null) { + if ($pValue === NULL) { + $pValue = time(); + } elseif (is_string($pValue)) { + if (is_numeric($pValue)) { + $pValue = intval($pValue); + } else { + $pValue = strtotime($pValue); + } + } + + $this->_created = $pValue; + return $this; + } + + /** + * Get Modified + * + * @return datetime + */ + public function getModified() { + return $this->_modified; + } + + /** + * Set Modified + * + * @param datetime $pValue + * @return PHPExcel_DocumentProperties + */ + public function setModified($pValue = null) { + if ($pValue === NULL) { + $pValue = time(); + } elseif (is_string($pValue)) { + if (is_numeric($pValue)) { + $pValue = intval($pValue); + } else { + $pValue = strtotime($pValue); + } + } + + $this->_modified = $pValue; + return $this; + } + + /** + * Get Title + * + * @return string + */ + public function getTitle() { + return $this->_title; + } + + /** + * Set Title + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setTitle($pValue = '') { + $this->_title = $pValue; + return $this; + } + + /** + * Get Description + * + * @return string + */ + public function getDescription() { + return $this->_description; + } + + /** + * Set Description + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setDescription($pValue = '') { + $this->_description = $pValue; + return $this; + } + + /** + * Get Subject + * + * @return string + */ + public function getSubject() { + return $this->_subject; + } + + /** + * Set Subject + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setSubject($pValue = '') { + $this->_subject = $pValue; + return $this; + } + + /** + * Get Keywords + * + * @return string + */ + public function getKeywords() { + return $this->_keywords; + } + + /** + * Set Keywords + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setKeywords($pValue = '') { + $this->_keywords = $pValue; + return $this; + } + + /** + * Get Category + * + * @return string + */ + public function getCategory() { + return $this->_category; + } + + /** + * Set Category + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setCategory($pValue = '') { + $this->_category = $pValue; + return $this; + } + + /** + * Get Company + * + * @return string + */ + public function getCompany() { + return $this->_company; + } + + /** + * Set Company + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setCompany($pValue = '') { + $this->_company = $pValue; + return $this; + } + + /** + * Get Manager + * + * @return string + */ + public function getManager() { + return $this->_manager; + } + + /** + * Set Manager + * + * @param string $pValue + * @return PHPExcel_DocumentProperties + */ + public function setManager($pValue = '') { + $this->_manager = $pValue; + return $this; + } + + /** + * Get a List of Custom Property Names + * + * @return array of string + */ + public function getCustomProperties() { + return array_keys($this->_customProperties); + } + + /** + * Check if a Custom Property is defined + * + * @param string $propertyName + * @return boolean + */ + public function isCustomPropertySet($propertyName) { + return isset($this->_customProperties[$propertyName]); + } + + /** + * Get a Custom Property Value + * + * @param string $propertyName + * @return string + */ + public function getCustomPropertyValue($propertyName) { + if (isset($this->_customProperties[$propertyName])) { + return $this->_customProperties[$propertyName]['value']; + } + + } + + /** + * Get a Custom Property Type + * + * @param string $propertyName + * @return string + */ + public function getCustomPropertyType($propertyName) { + if (isset($this->_customProperties[$propertyName])) { + return $this->_customProperties[$propertyName]['type']; + } + + } + + /** + * Set a Custom Property + * + * @param string $propertyName + * @param mixed $propertyValue + * @param string $propertyType + * 'i' : Integer + * 'f' : Floating Point + * 's' : String + * 'd' : Date/Time + * 'b' : Boolean + * @return PHPExcel_DocumentProperties + */ + public function setCustomProperty($propertyName,$propertyValue='',$propertyType=NULL) { + if (($propertyType === NULL) || (!in_array($propertyType,array(self::PROPERTY_TYPE_INTEGER, + self::PROPERTY_TYPE_FLOAT, + self::PROPERTY_TYPE_STRING, + self::PROPERTY_TYPE_DATE, + self::PROPERTY_TYPE_BOOLEAN)))) { + if ($propertyValue === NULL) { + $propertyType = self::PROPERTY_TYPE_STRING; + } elseif (is_float($propertyValue)) { + $propertyType = self::PROPERTY_TYPE_FLOAT; + } elseif(is_int($propertyValue)) { + $propertyType = self::PROPERTY_TYPE_INTEGER; + } elseif (is_bool($propertyValue)) { + $propertyType = self::PROPERTY_TYPE_BOOLEAN; + } else { + $propertyType = self::PROPERTY_TYPE_STRING; + } + } + + $this->_customProperties[$propertyName] = array('value' => $propertyValue, 'type' => $propertyType); + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } + + public static function convertProperty($propertyValue,$propertyType) { + switch ($propertyType) { + case 'empty' : // Empty + return ''; + break; + case 'null' : // Null + return NULL; + break; + case 'i1' : // 1-Byte Signed Integer + case 'i2' : // 2-Byte Signed Integer + case 'i4' : // 4-Byte Signed Integer + case 'i8' : // 8-Byte Signed Integer + case 'int' : // Integer + return (int) $propertyValue; + break; + case 'ui1' : // 1-Byte Unsigned Integer + case 'ui2' : // 2-Byte Unsigned Integer + case 'ui4' : // 4-Byte Unsigned Integer + case 'ui8' : // 8-Byte Unsigned Integer + case 'uint' : // Unsigned Integer + return abs((int) $propertyValue); + break; + case 'r4' : // 4-Byte Real Number + case 'r8' : // 8-Byte Real Number + case 'decimal' : // Decimal + return (float) $propertyValue; + break; + case 'lpstr' : // LPSTR + case 'lpwstr' : // LPWSTR + case 'bstr' : // Basic String + return $propertyValue; + break; + case 'date' : // Date and Time + case 'filetime' : // File Time + return strtotime($propertyValue); + break; + case 'bool' : // Boolean + return ($propertyValue == 'true') ? True : False; + break; + case 'cy' : // Currency + case 'error' : // Error Status Code + case 'vector' : // Vector + case 'array' : // Array + case 'blob' : // Binary Blob + case 'oblob' : // Binary Blob Object + case 'stream' : // Binary Stream + case 'ostream' : // Binary Stream Object + case 'storage' : // Binary Storage + case 'ostorage' : // Binary Storage Object + case 'vstream' : // Binary Versioned Stream + case 'clsid' : // Class ID + case 'cf' : // Clipboard Data + return $propertyValue; + break; + } + return $propertyValue; + } + + public static function convertPropertyType($propertyType) { + switch ($propertyType) { + case 'i1' : // 1-Byte Signed Integer + case 'i2' : // 2-Byte Signed Integer + case 'i4' : // 4-Byte Signed Integer + case 'i8' : // 8-Byte Signed Integer + case 'int' : // Integer + case 'ui1' : // 1-Byte Unsigned Integer + case 'ui2' : // 2-Byte Unsigned Integer + case 'ui4' : // 4-Byte Unsigned Integer + case 'ui8' : // 8-Byte Unsigned Integer + case 'uint' : // Unsigned Integer + return self::PROPERTY_TYPE_INTEGER; + break; + case 'r4' : // 4-Byte Real Number + case 'r8' : // 8-Byte Real Number + case 'decimal' : // Decimal + return self::PROPERTY_TYPE_FLOAT; + break; + case 'empty' : // Empty + case 'null' : // Null + case 'lpstr' : // LPSTR + case 'lpwstr' : // LPWSTR + case 'bstr' : // Basic String + return self::PROPERTY_TYPE_STRING; + break; + case 'date' : // Date and Time + case 'filetime' : // File Time + return self::PROPERTY_TYPE_DATE; + break; + case 'bool' : // Boolean + return self::PROPERTY_TYPE_BOOLEAN; + break; + case 'cy' : // Currency + case 'error' : // Error Status Code + case 'vector' : // Vector + case 'array' : // Array + case 'blob' : // Binary Blob + case 'oblob' : // Binary Blob Object + case 'stream' : // Binary Stream + case 'ostream' : // Binary Stream Object + case 'storage' : // Binary Storage + case 'ostorage' : // Binary Storage Object + case 'vstream' : // Binary Versioned Stream + case 'clsid' : // Class ID + case 'cf' : // Clipboard Data + return self::PROPERTY_TYPE_UNKNOWN; + break; + } + return self::PROPERTY_TYPE_UNKNOWN; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/DocumentSecurity.php b/plugins/excel_reader/Classes/PHPExcel/DocumentSecurity.php new file mode 100755 index 0000000..32bcb93 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/DocumentSecurity.php @@ -0,0 +1,218 @@ +_lockRevision = false; + $this->_lockStructure = false; + $this->_lockWindows = false; + $this->_revisionsPassword = ''; + $this->_workbookPassword = ''; + } + + /** + * Is some sort of dcument security enabled? + * + * @return boolean + */ + function isSecurityEnabled() { + return $this->_lockRevision || + $this->_lockStructure || + $this->_lockWindows; + } + + /** + * Get LockRevision + * + * @return boolean + */ + function getLockRevision() { + return $this->_lockRevision; + } + + /** + * Set LockRevision + * + * @param boolean $pValue + * @return PHPExcel_DocumentSecurity + */ + function setLockRevision($pValue = false) { + $this->_lockRevision = $pValue; + return $this; + } + + /** + * Get LockStructure + * + * @return boolean + */ + function getLockStructure() { + return $this->_lockStructure; + } + + /** + * Set LockStructure + * + * @param boolean $pValue + * @return PHPExcel_DocumentSecurity + */ + function setLockStructure($pValue = false) { + $this->_lockStructure = $pValue; + return $this; + } + + /** + * Get LockWindows + * + * @return boolean + */ + function getLockWindows() { + return $this->_lockWindows; + } + + /** + * Set LockWindows + * + * @param boolean $pValue + * @return PHPExcel_DocumentSecurity + */ + function setLockWindows($pValue = false) { + $this->_lockWindows = $pValue; + return $this; + } + + /** + * Get RevisionsPassword (hashed) + * + * @return string + */ + function getRevisionsPassword() { + return $this->_revisionsPassword; + } + + /** + * Set RevisionsPassword + * + * @param string $pValue + * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true + * @return PHPExcel_DocumentSecurity + */ + function setRevisionsPassword($pValue = '', $pAlreadyHashed = false) { + if (!$pAlreadyHashed) { + $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue); + } + $this->_revisionsPassword = $pValue; + return $this; + } + + /** + * Get WorkbookPassword (hashed) + * + * @return string + */ + function getWorkbookPassword() { + return $this->_workbookPassword; + } + + /** + * Set WorkbookPassword + * + * @param string $pValue + * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true + * @return PHPExcel_DocumentSecurity + */ + function setWorkbookPassword($pValue = '', $pAlreadyHashed = false) { + if (!$pAlreadyHashed) { + $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue); + } + $this->_workbookPassword = $pValue; + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Exception.php b/plugins/excel_reader/Classes/PHPExcel/Exception.php new file mode 100755 index 0000000..454eaaa --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Exception.php @@ -0,0 +1,52 @@ +line = $line; + $e->file = $file; + throw $e; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/HashTable.php b/plugins/excel_reader/Classes/PHPExcel/HashTable.php new file mode 100755 index 0000000..ca15e6e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/HashTable.php @@ -0,0 +1,202 @@ +addFromSource($pSource); + } + } + + /** + * Add HashTable items from source + * + * @param PHPExcel_IComparable[] $pSource Source array to create HashTable from + * @throws Exception + */ + public function addFromSource($pSource = null) { + // Check if an array was passed + if ($pSource == null) { + return; + } else if (!is_array($pSource)) { + throw new Exception('Invalid array parameter passed.'); + } + + foreach ($pSource as $item) { + $this->add($item); + } + } + + /** + * Add HashTable item + * + * @param PHPExcel_IComparable $pSource Item to add + * @throws Exception + */ + public function add(PHPExcel_IComparable $pSource = null) { + $hash = $pSource->getHashCode(); + if (!isset($this->_items[$hash])) { + $this->_items[$hash] = $pSource; + $this->_keyMap[count($this->_items) - 1] = $hash; + } + } + + /** + * Remove HashTable item + * + * @param PHPExcel_IComparable $pSource Item to remove + * @throws Exception + */ + public function remove(PHPExcel_IComparable $pSource = null) { + $hash = $pSource->getHashCode(); + if (isset($this->_items[$hash])) { + unset($this->_items[$hash]); + + $deleteKey = -1; + foreach ($this->_keyMap as $key => $value) { + if ($deleteKey >= 0) { + $this->_keyMap[$key - 1] = $value; + } + + if ($value == $hash) { + $deleteKey = $key; + } + } + unset($this->_keyMap[count($this->_keyMap) - 1]); + } + } + + /** + * Clear HashTable + * + */ + public function clear() { + $this->_items = array(); + $this->_keyMap = array(); + } + + /** + * Count + * + * @return int + */ + public function count() { + return count($this->_items); + } + + /** + * Get index for hash code + * + * @param string $pHashCode + * @return int Index + */ + public function getIndexForHashCode($pHashCode = '') { + return array_search($pHashCode, $this->_keyMap); + } + + /** + * Get by index + * + * @param int $pIndex + * @return PHPExcel_IComparable + * + */ + public function getByIndex($pIndex = 0) { + if (isset($this->_keyMap[$pIndex])) { + return $this->getByHashCode( $this->_keyMap[$pIndex] ); + } + + return null; + } + + /** + * Get by hashcode + * + * @param string $pHashCode + * @return PHPExcel_IComparable + * + */ + public function getByHashCode($pHashCode = '') { + if (isset($this->_items[$pHashCode])) { + return $this->_items[$pHashCode]; + } + + return null; + } + + /** + * HashTable to array + * + * @return PHPExcel_IComparable[] + */ + public function toArray() { + return $this->_items; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/IComparable.php b/plugins/excel_reader/Classes/PHPExcel/IComparable.php new file mode 100755 index 0000000..1c87f39 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/IComparable.php @@ -0,0 +1,43 @@ + 'IWriter', 'path' => 'PHPExcel/Writer/{0}.php', 'class' => 'PHPExcel_Writer_{0}' ), + array( 'type' => 'IReader', 'path' => 'PHPExcel/Reader/{0}.php', 'class' => 'PHPExcel_Reader_{0}' ) + ); + + /** + * Autoresolve classes + * + * @var array + * @access private + * @static + */ + private static $_autoResolveClasses = array( + 'Excel2007', + 'Excel5', + 'Excel2003XML', + 'OOCalc', + 'SYLK', + 'Gnumeric', + 'HTML', + 'CSV', + ); + + /** + * Private constructor for PHPExcel_IOFactory + */ + private function __construct() { } + + /** + * Get search locations + * + * @static + * @access public + * @return array + */ + public static function getSearchLocations() { + return self::$_searchLocations; + } // function getSearchLocations() + + /** + * Set search locations + * + * @static + * @access public + * @param array $value + * @throws Exception + */ + public static function setSearchLocations($value) { + if (is_array($value)) { + self::$_searchLocations = $value; + } else { + throw new Exception('Invalid parameter passed.'); + } + } // function setSearchLocations() + + /** + * Add search location + * + * @static + * @access public + * @param string $type Example: IWriter + * @param string $location Example: PHPExcel/Writer/{0}.php + * @param string $classname Example: PHPExcel_Writer_{0} + */ + public static function addSearchLocation($type = '', $location = '', $classname = '') { + self::$_searchLocations[] = array( 'type' => $type, 'path' => $location, 'class' => $classname ); + } // function addSearchLocation() + + /** + * Create PHPExcel_Writer_IWriter + * + * @static + * @access public + * @param PHPExcel $phpExcel + * @param string $writerType Example: Excel2007 + * @return PHPExcel_Writer_IWriter + * @throws Exception + */ + public static function createWriter(PHPExcel $phpExcel, $writerType = '') { + // Search type + $searchType = 'IWriter'; + + // Include class + foreach (self::$_searchLocations as $searchLocation) { + if ($searchLocation['type'] == $searchType) { + $className = str_replace('{0}', $writerType, $searchLocation['class']); + + $instance = new $className($phpExcel); + if ($instance !== NULL) { + return $instance; + } + } + } + + // Nothing found... + throw new Exception("No $searchType found for type $writerType"); + } // function createWriter() + + /** + * Create PHPExcel_Reader_IReader + * + * @static + * @access public + * @param string $readerType Example: Excel2007 + * @return PHPExcel_Reader_IReader + * @throws Exception + */ + public static function createReader($readerType = '') { + // Search type + $searchType = 'IReader'; + + // Include class + foreach (self::$_searchLocations as $searchLocation) { + if ($searchLocation['type'] == $searchType) { + $className = str_replace('{0}', $readerType, $searchLocation['class']); + + $instance = new $className(); + if ($instance !== NULL) { + return $instance; + } + } + } + + // Nothing found... + throw new Exception("No $searchType found for type $readerType"); + } // function createReader() + + /** + * Loads PHPExcel from file using automatic PHPExcel_Reader_IReader resolution + * + * @static + * @access public + * @param string $pFileName The name of the spreadsheet file + * @return PHPExcel + * @throws Exception + */ + public static function load($pFilename) { + $reader = self::createReaderForFile($pFilename); + return $reader->load($pFilename); + } // function load() + + /** + * Identify file type using automatic PHPExcel_Reader_IReader resolution + * + * @static + * @access public + * @param string $pFileName The name of the spreadsheet file to identify + * @return string + * @throws Exception + */ + public static function identify($pFilename) { + $reader = self::createReaderForFile($pFilename); + $className = get_class($reader); + $classType = explode('_',$className); + unset($reader); + return array_pop($classType); + } // function identify() + + /** + * Create PHPExcel_Reader_IReader for file using automatic PHPExcel_Reader_IReader resolution + * + * @static + * @access public + * @param string $pFileName The name of the spreadsheet file + * @return PHPExcel_Reader_IReader + * @throws Exception + */ + public static function createReaderForFile($pFilename) { + + // First, lucky guess by inspecting file extension + $pathinfo = pathinfo($pFilename); + + $extensionType = NULL; + if (isset($pathinfo['extension'])) { + switch (strtolower($pathinfo['extension'])) { + case 'xlsx': // Excel (OfficeOpenXML) Spreadsheet + case 'xlsm': // Excel (OfficeOpenXML) Macro Spreadsheet (macros will be discarded) + case 'xltx': // Excel (OfficeOpenXML) Template + case 'xltm': // Excel (OfficeOpenXML) Macro Template (macros will be discarded) + $extensionType = 'Excel2007'; + break; + case 'xls': // Excel (BIFF) Spreadsheet + case 'xlt': // Excel (BIFF) Template + $extensionType = 'Excel5'; + break; + case 'ods': // Open/Libre Offic Calc + case 'ots': // Open/Libre Offic Calc Template + $extensionType = 'OOCalc'; + break; + case 'slk': + $extensionType = 'SYLK'; + break; + case 'xml': // Excel 2003 SpreadSheetML + $extensionType = 'Excel2003XML'; + break; + case 'gnumeric': + $extensionType = 'Gnumeric'; + break; + case 'htm': + case 'html': + $extensionType = 'HTML'; + break; + case 'csv': + // Do nothing + // We must not try to use CSV reader since it loads + // all files including Excel files etc. + break; + default: + break; + } + + if ($extensionType !== NULL) { + $reader = self::createReader($extensionType); + // Let's see if we are lucky + if (isset($reader) && $reader->canRead($pFilename)) { + return $reader; + } + } + } + + // If we reach here then "lucky guess" didn't give any result + // Try walking through all the options in self::$_autoResolveClasses + foreach (self::$_autoResolveClasses as $autoResolveClass) { + // Ignore our original guess, we know that won't work + if ($autoResolveClass !== $extensionType) { + $reader = self::createReader($autoResolveClass); + if ($reader->canRead($pFilename)) { + return $reader; + } + } + } + + throw new Exception('Unable to identify a reader for this file'); + } // function createReaderForFile() +} diff --git a/plugins/excel_reader/Classes/PHPExcel/NamedRange.php b/plugins/excel_reader/Classes/PHPExcel/NamedRange.php new file mode 100755 index 0000000..3debd41 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/NamedRange.php @@ -0,0 +1,245 @@ +_worksheet) + * + * @var bool + */ + private $_localOnly; + + /** + * Scope + * + * @var PHPExcel_Worksheet + */ + private $_scope; + + /** + * Create a new NamedRange + * + * @param string $pName + * @param PHPExcel_Worksheet $pWorksheet + * @param string $pRange + * @param bool $pLocalOnly + * @param PHPExcel_Worksheet|null $pScope Scope. Only applies when $pLocalOnly = true. Null for global scope. + */ + public function __construct($pName = null, PHPExcel_Worksheet $pWorksheet, $pRange = 'A1', $pLocalOnly = false, $pScope = null) + { + // Validate data + if (($pName === NULL) || ($pWorksheet === NULL) || ($pRange === NULL)) { + throw new Exception('Parameters can not be null.'); + } + + // Set local members + $this->_name = $pName; + $this->_worksheet = $pWorksheet; + $this->_range = $pRange; + $this->_localOnly = $pLocalOnly; + $this->_scope = ($pLocalOnly == true) ? + (($pScope == null) ? $pWorksheet : $pScope) : null; + } + + /** + * Get name + * + * @return string + */ + public function getName() { + return $this->_name; + } + + /** + * Set name + * + * @param string $value + * @return PHPExcel_NamedRange + */ + public function setName($value = null) { + if ($value !== NULL) { + // Old title + $oldTitle = $this->_name; + + // Re-attach + if ($this->_worksheet !== NULL) { + $this->_worksheet->getParent()->removeNamedRange($this->_name,$this->_worksheet); + } + $this->_name = $value; + + if ($this->_worksheet !== NULL) { + $this->_worksheet->getParent()->addNamedRange($this); + } + + // New title + $newTitle = $this->_name; + PHPExcel_ReferenceHelper::getInstance()->updateNamedFormulas($this->_worksheet->getParent(), $oldTitle, $newTitle); + } + return $this; + } + + /** + * Get worksheet + * + * @return PHPExcel_Worksheet + */ + public function getWorksheet() { + return $this->_worksheet; + } + + /** + * Set worksheet + * + * @param PHPExcel_Worksheet $value + * @return PHPExcel_NamedRange + */ + public function setWorksheet(PHPExcel_Worksheet $value = null) { + if ($value !== NULL) { + $this->_worksheet = $value; + } + return $this; + } + + /** + * Get range + * + * @return string + */ + public function getRange() { + return $this->_range; + } + + /** + * Set range + * + * @param string $value + * @return PHPExcel_NamedRange + */ + public function setRange($value = null) { + if ($value !== NULL) { + $this->_range = $value; + } + return $this; + } + + /** + * Get localOnly + * + * @return bool + */ + public function getLocalOnly() { + return $this->_localOnly; + } + + /** + * Set localOnly + * + * @param bool $value + * @return PHPExcel_NamedRange + */ + public function setLocalOnly($value = false) { + $this->_localOnly = $value; + $this->_scope = $value ? $this->_worksheet : null; + return $this; + } + + /** + * Get scope + * + * @return PHPExcel_Worksheet|null + */ + public function getScope() { + return $this->_scope; + } + + /** + * Set scope + * + * @param PHPExcel_Worksheet|null $value + * @return PHPExcel_NamedRange + */ + public function setScope(PHPExcel_Worksheet $value = null) { + $this->_scope = $value; + $this->_localOnly = ($value == null) ? false : true; + return $this; + } + + /** + * Resolve a named range to a regular cell range + * + * @param string $pNamedRange Named range + * @param PHPExcel_Worksheet|null $pSheet Scope. Use null for global scope + * @return PHPExcel_NamedRange + */ + public static function resolveRange($pNamedRange = '', PHPExcel_Worksheet $pSheet) { + return $pSheet->getParent()->getNamedRange($pNamedRange, $pSheet); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/CSV.php b/plugins/excel_reader/Classes/PHPExcel/Reader/CSV.php new file mode 100755 index 0000000..2739e3c --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/CSV.php @@ -0,0 +1,505 @@ +_readFilter = new PHPExcel_Reader_DefaultReadFilter(); + } // function __construct() + + + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @access public + * @param string $pFileName + * @return boolean + * @throws Exception + */ + public function canRead($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + return true; + } // function canRead() + + + /** + * Read filter + * + * @access public + * @return PHPExcel_Reader_IReadFilter + */ + public function getReadFilter() { + return $this->_readFilter; + } // function getReadFilter() + + + /** + * Set read filter + * + * @access public + * @param PHPExcel_Reader_IReadFilter $pValue + */ + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { + $this->_readFilter = $pValue; + return $this; + } // function setReadFilter() + + + /** + * Set input encoding + * + * @access public + * @param string $pValue Input encoding + */ + public function setInputEncoding($pValue = 'UTF-8') + { + $this->_inputEncoding = $pValue; + return $this; + } // function setInputEncoding() + + + /** + * Get input encoding + * + * @access public + * @return string + */ + public function getInputEncoding() + { + return $this->_inputEncoding; + } // function getInputEncoding() + + + /** + * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) + * + * @access public + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetInfo($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Open file + $fileHandle = fopen($pFilename, 'r'); + if ($fileHandle === false) { + throw new Exception("Could not open file " . $pFilename . " for reading."); + } + + // Skip BOM, if any + switch ($this->_inputEncoding) { + case 'UTF-8': + fgets($fileHandle, 4) == "\xEF\xBB\xBF" ? + fseek($fileHandle, 3) : fseek($fileHandle, 0); + break; + case 'UTF-16LE': + fgets($fileHandle, 3) == "\xFF\xFE" ? + fseek($fileHandle, 2) : fseek($fileHandle, 0); + break; + case 'UTF-16BE': + fgets($fileHandle, 3) == "\xFE\xFF" ? + fseek($fileHandle, 2) : fseek($fileHandle, 0); + break; + case 'UTF-32LE': + fgets($fileHandle, 5) == "\xFF\xFE\x00\x00" ? + fseek($fileHandle, 4) : fseek($fileHandle, 0); + break; + case 'UTF-32BE': + fgets($fileHandle, 5) == "\x00\x00\xFE\xFF" ? + fseek($fileHandle, 4) : fseek($fileHandle, 0); + break; + default: + break; + } + + $escapeEnclosures = array( "\\" . $this->_enclosure, $this->_enclosure . $this->_enclosure ); + + $worksheetInfo = array(); + $worksheetInfo[0]['worksheetName'] = 'Worksheet'; + $worksheetInfo[0]['lastColumnLetter'] = 'A'; + $worksheetInfo[0]['lastColumnIndex'] = 0; + $worksheetInfo[0]['totalRows'] = 0; + $worksheetInfo[0]['totalColumns'] = 0; + + // Loop through each line of the file in turn + while (($rowData = fgetcsv($fileHandle, 0, $this->_delimiter, $this->_enclosure)) !== FALSE) { + $worksheetInfo[0]['totalRows']++; + $worksheetInfo[0]['lastColumnIndex'] = max($worksheetInfo[0]['lastColumnIndex'], count($rowData) - 1); + } + + $worksheetInfo[0]['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']); + $worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1; + + // Close file + fclose($fileHandle); + + return $worksheetInfo; + } + + + /** + * Loads PHPExcel from file + * + * @access public + * @param string $pFilename + * @return PHPExcel + * @throws Exception + */ + public function load($pFilename) + { + // Create new PHPExcel + $objPHPExcel = new PHPExcel(); + + // Load into this instance + return $this->loadIntoExisting($pFilename, $objPHPExcel); + } // function load() + + + /** + * Loads PHPExcel from file into PHPExcel instance + * + * @access public + * @param string $pFilename + * @param PHPExcel $objPHPExcel + * @return PHPExcel + * @throws Exception + */ + public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Create new PHPExcel + while ($objPHPExcel->getSheetCount() <= $this->_sheetIndex) { + $objPHPExcel->createSheet(); + } + $sheet = $objPHPExcel->setActiveSheetIndex( $this->_sheetIndex ); + + $lineEnding = ini_get('auto_detect_line_endings'); + ini_set('auto_detect_line_endings', true); + + // Open file + $fileHandle = fopen($pFilename, 'r'); + if ($fileHandle === false) { + throw new Exception("Could not open file $pFilename for reading."); + } + + // Skip BOM, if any + switch ($this->_inputEncoding) { + case 'UTF-8': + fgets($fileHandle, 4) == "\xEF\xBB\xBF" ? + fseek($fileHandle, 3) : fseek($fileHandle, 0); + break; + case 'UTF-16LE': + fgets($fileHandle, 3) == "\xFF\xFE" ? + fseek($fileHandle, 2) : fseek($fileHandle, 0); + break; + case 'UTF-16BE': + fgets($fileHandle, 3) == "\xFE\xFF" ? + fseek($fileHandle, 2) : fseek($fileHandle, 0); + break; + case 'UTF-32LE': + fgets($fileHandle, 5) == "\xFF\xFE\x00\x00" ? + fseek($fileHandle, 4) : fseek($fileHandle, 0); + break; + case 'UTF-32BE': + fgets($fileHandle, 5) == "\x00\x00\xFE\xFF" ? + fseek($fileHandle, 4) : fseek($fileHandle, 0); + break; + default: + break; + } + + $escapeEnclosures = array( "\\" . $this->_enclosure, + $this->_enclosure . $this->_enclosure + ); + + // Set our starting row based on whether we're in contiguous mode or not + $currentRow = 1; + if ($this->_contiguous) { + $currentRow = ($this->_contiguousRow == -1) ? $sheet->getHighestRow(): $this->_contiguousRow; + } + + // Loop through each line of the file in turn + while (($rowData = fgetcsv($fileHandle, 0, $this->_delimiter, $this->_enclosure)) !== FALSE) { + $columnLetter = 'A'; + foreach($rowData as $rowDatum) { + if ($rowDatum != '' && $this->_readFilter->readCell($columnLetter, $currentRow)) { + // Unescape enclosures + $rowDatum = str_replace($escapeEnclosures, $this->_enclosure, $rowDatum); + + // Convert encoding if necessary + if ($this->_inputEncoding !== 'UTF-8') { + $rowDatum = PHPExcel_Shared_String::ConvertEncoding($rowDatum, 'UTF-8', $this->_inputEncoding); + } + + // Set cell value + $sheet->getCell($columnLetter . $currentRow)->setValue($rowDatum); + } + ++$columnLetter; + } + ++$currentRow; + } + + // Close file + fclose($fileHandle); + + if ($this->_contiguous) { + $this->_contiguousRow = $currentRow; + } + + ini_set('auto_detect_line_endings', $lineEnding); + + // Return + return $objPHPExcel; + } // function loadIntoExisting() + + + /** + * Get delimiter + * + * @access public + * @return string + */ + public function getDelimiter() { + return $this->_delimiter; + } // function getDelimiter() + + + /** + * Set delimiter + * + * @access public + * @param string $pValue Delimiter, defaults to , + * @return PHPExcel_Reader_CSV + */ + public function setDelimiter($pValue = ',') { + $this->_delimiter = $pValue; + return $this; + } // function setDelimiter() + + + /** + * Get enclosure + * + * @access public + * @return string + */ + public function getEnclosure() { + return $this->_enclosure; + } // function getEnclosure() + + + /** + * Set enclosure + * + * @access public + * @param string $pValue Enclosure, defaults to " + * @return PHPExcel_Reader_CSV + */ + public function setEnclosure($pValue = '"') { + if ($pValue == '') { + $pValue = '"'; + } + $this->_enclosure = $pValue; + return $this; + } // function setEnclosure() + + + /** + * Get line ending + * + * @access public + * @return string + */ + public function getLineEnding() { + return $this->_lineEnding; + } // function getLineEnding() + + + /** + * Set line ending + * + * @access public + * @param string $pValue Line ending, defaults to OS line ending (PHP_EOL) + * @return PHPExcel_Reader_CSV + */ + public function setLineEnding($pValue = PHP_EOL) { + $this->_lineEnding = $pValue; + return $this; + } // function setLineEnding() + + + /** + * Get sheet index + * + * @access public + * @return int + */ + public function getSheetIndex() { + return $this->_sheetIndex; + } // function getSheetIndex() + + + /** + * Set sheet index + * + * @access public + * @param int $pValue Sheet index + * @return PHPExcel_Reader_CSV + */ + public function setSheetIndex($pValue = 0) { + $this->_sheetIndex = $pValue; + return $this; + } // function setSheetIndex() + + + /** + * Set Contiguous + * + * @access public + * @param string $pValue Input encoding + */ + public function setContiguous($contiguous = false) + { + $this->_contiguous = (bool)$contiguous; + if (!$contiguous) { + $this->_contiguousRow = -1; + } + + return $this; + } // function setInputEncoding() + + + /** + * Get Contiguous + * + * @access public + * @return boolean + */ + public function getContiguous() { + return $this->_contiguous; + } // function getSheetIndex() + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/DefaultReadFilter.php b/plugins/excel_reader/Classes/PHPExcel/Reader/DefaultReadFilter.php new file mode 100755 index 0000000..276b974 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/DefaultReadFilter.php @@ -0,0 +1,58 @@ +_readFilter = new PHPExcel_Reader_DefaultReadFilter(); + } + + + /** + * Read data only? + * + * @return boolean + */ + public function getReadDataOnly() { + return $this->_readDataOnly; + } + + + /** + * Set read data only + * + * @param boolean $pValue + * @return PHPExcel_Reader_Excel2003XML + */ + public function setReadDataOnly($pValue = false) { + $this->_readDataOnly = $pValue; + return $this; + } + + + /** + * Get which sheets to load + * + * @return mixed + */ + public function getLoadSheetsOnly() + { + return $this->_loadSheetsOnly; + } + + + /** + * Set which sheets to load + * + * @param mixed $value + * @return PHPExcel_Reader_Excel2003XML + */ + public function setLoadSheetsOnly($value = null) + { + $this->_loadSheetsOnly = is_array($value) ? + $value : array($value); + return $this; + } + + + /** + * Set all sheets to load + * + * @return PHPExcel_Reader_Excel2003XML + */ + public function setLoadAllSheets() + { + $this->_loadSheetsOnly = null; + return $this; + } + + + /** + * Read filter + * + * @return PHPExcel_Reader_IReadFilter + */ + public function getReadFilter() { + return $this->_readFilter; + } + + + /** + * Set read filter + * + * @param PHPExcel_Reader_IReadFilter $pValue + * @return PHPExcel_Reader_Excel2003XML + */ + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { + $this->_readFilter = $pValue; + return $this; + } + + + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @param string $pFileName + * @return boolean + * @throws Exception + */ + public function canRead($pFilename) + { + + // Office xmlns:o="urn:schemas-microsoft-com:office:office" + // Excel xmlns:x="urn:schemas-microsoft-com:office:excel" + // XML Spreadsheet xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" + // Spreadsheet component xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" + // XML schema xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" + // XML data type xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" + // MS-persist recordset xmlns:rs="urn:schemas-microsoft-com:rowset" + // Rowset xmlns:z="#RowsetSchema" + // + + $signature = array( + '' + ); + + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Read sample data (first 2 KB will do) + $fh = fopen($pFilename, 'r'); + $data = fread($fh, 2048); + fclose($fh); + + $valid = true; + foreach($signature as $match) { + // every part of the signature must be present + if (strpos($data, $match) === false) { + $valid = false; + break; + } + } + + // Retrieve charset encoding + if(preg_match('//um',$data,$matches)) { + $this->_charSet = strtoupper($matches[1]); + } +// echo 'Character Set is ',$this->_charSet,'
'; + + return $valid; + } + + + /** + * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetNames($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + if (!$this->canRead($pFilename)) { + throw new Exception($pFilename . " is an Invalid Spreadsheet file."); + } + + $worksheetNames = array(); + + $xml = simplexml_load_file($pFilename); + $namespaces = $xml->getNamespaces(true); + + $xml_ss = $xml->children($namespaces['ss']); + foreach($xml_ss->Worksheet as $worksheet) { + $worksheet_ss = $worksheet->attributes($namespaces['ss']); + $worksheetNames[] = self::_convertStringEncoding((string) $worksheet_ss['Name'],$this->_charSet); + } + + return $worksheetNames; + } + + + /** + * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetInfo($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $worksheetInfo = array(); + + $xml = simplexml_load_file($pFilename); + $namespaces = $xml->getNamespaces(true); + + $worksheetID = 1; + $xml_ss = $xml->children($namespaces['ss']); + foreach($xml_ss->Worksheet as $worksheet) { + $worksheet_ss = $worksheet->attributes($namespaces['ss']); + + $tmpInfo = array(); + $tmpInfo['worksheetName'] = ''; + $tmpInfo['lastColumnLetter'] = 'A'; + $tmpInfo['lastColumnIndex'] = 0; + $tmpInfo['totalRows'] = 0; + $tmpInfo['totalColumns'] = 0; + + if (isset($worksheet_ss['Name'])) { + $tmpInfo['worksheetName'] = (string) $worksheet_ss['Name']; + } else { + $tmpInfo['worksheetName'] = "Worksheet_{$worksheetID}"; + } + + if (isset($worksheet->Table->Row)) { + $rowIndex = 0; + + foreach($worksheet->Table->Row as $rowData) { + $columnIndex = 0; + $rowHasData = false; + + foreach($rowData->Cell as $cell) { + if (isset($cell->Data)) { + $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex); + $rowHasData = true; + } + + ++$columnIndex; + } + + ++$rowIndex; + + if ($rowHasData) { + $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex); + } + } + } + + $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; + + $worksheetInfo[] = $tmpInfo; + ++$worksheetID; + } + + return $worksheetInfo; + } + + + /** + * Loads PHPExcel from file + * + * @param string $pFilename + * @return PHPExcel + * @throws Exception + */ + public function load($pFilename) + { + // Create new PHPExcel + $objPHPExcel = new PHPExcel(); + + // Load into this instance + return $this->loadIntoExisting($pFilename, $objPHPExcel); + } + + + private static function identifyFixedStyleValue($styleList,&$styleAttributeValue) { + $styleAttributeValue = strtolower($styleAttributeValue); + foreach($styleList as $style) { + if ($styleAttributeValue == strtolower($style)) { + $styleAttributeValue = $style; + return true; + } + } + return false; + } + + + /** + * pixel units to excel width units(units of 1/256th of a character width) + * @param pxs + * @return + */ + private static function _pixel2WidthUnits($pxs) { + $UNIT_OFFSET_MAP = array(0, 36, 73, 109, 146, 182, 219); + + $widthUnits = 256 * ($pxs / 7); + $widthUnits += $UNIT_OFFSET_MAP[($pxs % 7)]; + return $widthUnits; + } + + + /** + * excel width units(units of 1/256th of a character width) to pixel units + * @param widthUnits + * @return + */ + private static function _widthUnits2Pixel($widthUnits) { + $pixels = ($widthUnits / 256) * 7; + $offsetWidthUnits = $widthUnits % 256; + $pixels += round($offsetWidthUnits / (256 / 7)); + return $pixels; + } + + + private static function _hex2str($hex) { + return chr(hexdec($hex[1])); + } + + + /** + * Loads PHPExcel from file into PHPExcel instance + * + * @param string $pFilename + * @param PHPExcel $objPHPExcel + * @return PHPExcel + * @throws Exception + */ + public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) + { + $fromFormats = array('\-', '\ '); + $toFormats = array('-', ' '); + + $underlineStyles = array ( + PHPExcel_Style_Font::UNDERLINE_NONE, + PHPExcel_Style_Font::UNDERLINE_DOUBLE, + PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING, + PHPExcel_Style_Font::UNDERLINE_SINGLE, + PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING + ); + $verticalAlignmentStyles = array ( + PHPExcel_Style_Alignment::VERTICAL_BOTTOM, + PHPExcel_Style_Alignment::VERTICAL_TOP, + PHPExcel_Style_Alignment::VERTICAL_CENTER, + PHPExcel_Style_Alignment::VERTICAL_JUSTIFY + ); + $horizontalAlignmentStyles = array ( + PHPExcel_Style_Alignment::HORIZONTAL_GENERAL, + PHPExcel_Style_Alignment::HORIZONTAL_LEFT, + PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, + PHPExcel_Style_Alignment::HORIZONTAL_CENTER, + PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS, + PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY + ); + + $timezoneObj = new DateTimeZone('Europe/London'); + $GMT = new DateTimeZone('UTC'); + + + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + if (!$this->canRead($pFilename)) { + throw new Exception($pFilename . " is an Invalid Spreadsheet file."); + } + + $xml = simplexml_load_file($pFilename); + $namespaces = $xml->getNamespaces(true); + + $docProps = $objPHPExcel->getProperties(); + if (isset($xml->DocumentProperties[0])) { + foreach($xml->DocumentProperties[0] as $propertyName => $propertyValue) { + switch ($propertyName) { + case 'Title' : + $docProps->setTitle(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + case 'Subject' : + $docProps->setSubject(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + case 'Author' : + $docProps->setCreator(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + case 'Created' : + $creationDate = strtotime($propertyValue); + $docProps->setCreated($creationDate); + break; + case 'LastAuthor' : + $docProps->setLastModifiedBy(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + case 'LastSaved' : + $lastSaveDate = strtotime($propertyValue); + $docProps->setModified($lastSaveDate); + break; + case 'Company' : + $docProps->setCompany(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + case 'Category' : + $docProps->setCategory(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + case 'Manager' : + $docProps->setManager(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + case 'Keywords' : + $docProps->setKeywords(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + case 'Description' : + $docProps->setDescription(self::_convertStringEncoding($propertyValue,$this->_charSet)); + break; + } + } + } + if (isset($xml->CustomDocumentProperties)) { + foreach($xml->CustomDocumentProperties[0] as $propertyName => $propertyValue) { + $propertyAttributes = $propertyValue->attributes($namespaces['dt']); + $propertyName = preg_replace_callback('/_x([0-9a-z]{4})_/','PHPExcel_Reader_Excel2003XML::_hex2str',$propertyName); + $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_UNKNOWN; + switch((string) $propertyAttributes) { + case 'string' : + $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_STRING; + $propertyValue = trim($propertyValue); + break; + case 'boolean' : + $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN; + $propertyValue = (bool) $propertyValue; + break; + case 'integer' : + $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_INTEGER; + $propertyValue = intval($propertyValue); + break; + case 'float' : + $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_FLOAT; + $propertyValue = floatval($propertyValue); + break; + case 'dateTime.tz' : + $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE; + $propertyValue = strtotime(trim($propertyValue)); + break; + } + $docProps->setCustomProperty($propertyName,$propertyValue,$propertyType); + } + } + + foreach($xml->Styles[0] as $style) { + $style_ss = $style->attributes($namespaces['ss']); + $styleID = (string) $style_ss['ID']; +// echo 'Style ID = '.$styleID.'
'; + if ($styleID == 'Default') { + $this->_styles['Default'] = array(); + } else { + $this->_styles[$styleID] = $this->_styles['Default']; + } + foreach ($style as $styleType => $styleData) { + $styleAttributes = $styleData->attributes($namespaces['ss']); +// echo $styleType.'
'; + switch ($styleType) { + case 'Alignment' : + foreach($styleAttributes as $styleAttributeKey => $styleAttributeValue) { +// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; + $styleAttributeValue = (string) $styleAttributeValue; + switch ($styleAttributeKey) { + case 'Vertical' : + if (self::identifyFixedStyleValue($verticalAlignmentStyles,$styleAttributeValue)) { + $this->_styles[$styleID]['alignment']['vertical'] = $styleAttributeValue; + } + break; + case 'Horizontal' : + if (self::identifyFixedStyleValue($horizontalAlignmentStyles,$styleAttributeValue)) { + $this->_styles[$styleID]['alignment']['horizontal'] = $styleAttributeValue; + } + break; + case 'WrapText' : + $this->_styles[$styleID]['alignment']['wrap'] = true; + break; + } + } + break; + case 'Borders' : + foreach($styleData->Border as $borderStyle) { + $borderAttributes = $borderStyle->attributes($namespaces['ss']); + $thisBorder = array(); + foreach($borderAttributes as $borderStyleKey => $borderStyleValue) { +// echo $borderStyleKey.' = '.$borderStyleValue.'
'; + switch ($borderStyleKey) { + case 'LineStyle' : + $thisBorder['style'] = PHPExcel_Style_Border::BORDER_MEDIUM; +// $thisBorder['style'] = $borderStyleValue; + break; + case 'Weight' : +// $thisBorder['style'] = $borderStyleValue; + break; + case 'Position' : + $borderPosition = strtolower($borderStyleValue); + break; + case 'Color' : + $borderColour = substr($borderStyleValue,1); + $thisBorder['color']['rgb'] = $borderColour; + break; + } + } + if (!empty($thisBorder)) { + if (($borderPosition == 'left') || ($borderPosition == 'right') || ($borderPosition == 'top') || ($borderPosition == 'bottom')) { + $this->_styles[$styleID]['borders'][$borderPosition] = $thisBorder; + } + } + } + break; + case 'Font' : + foreach($styleAttributes as $styleAttributeKey => $styleAttributeValue) { +// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; + $styleAttributeValue = (string) $styleAttributeValue; + switch ($styleAttributeKey) { + case 'FontName' : + $this->_styles[$styleID]['font']['name'] = $styleAttributeValue; + break; + case 'Size' : + $this->_styles[$styleID]['font']['size'] = $styleAttributeValue; + break; + case 'Color' : + $this->_styles[$styleID]['font']['color']['rgb'] = substr($styleAttributeValue,1); + break; + case 'Bold' : + $this->_styles[$styleID]['font']['bold'] = true; + break; + case 'Italic' : + $this->_styles[$styleID]['font']['italic'] = true; + break; + case 'Underline' : + if (self::identifyFixedStyleValue($underlineStyles,$styleAttributeValue)) { + $this->_styles[$styleID]['font']['underline'] = $styleAttributeValue; + } + break; + } + } + break; + case 'Interior' : + foreach($styleAttributes as $styleAttributeKey => $styleAttributeValue) { +// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; + switch ($styleAttributeKey) { + case 'Color' : + $this->_styles[$styleID]['fill']['color']['rgb'] = substr($styleAttributeValue,1); + break; + } + } + break; + case 'NumberFormat' : + foreach($styleAttributes as $styleAttributeKey => $styleAttributeValue) { +// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; + $styleAttributeValue = str_replace($fromFormats,$toFormats,$styleAttributeValue); + switch ($styleAttributeValue) { + case 'Short Date' : + $styleAttributeValue = 'dd/mm/yyyy'; + break; + } + if ($styleAttributeValue > '') { + $this->_styles[$styleID]['numberformat']['code'] = $styleAttributeValue; + } + } + break; + case 'Protection' : + foreach($styleAttributes as $styleAttributeKey => $styleAttributeValue) { +// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; + } + break; + } + } +// print_r($this->_styles[$styleID]); +// echo '
'; + } +// echo '
'; + + $worksheetID = 0; + $xml_ss = $xml->children($namespaces['ss']); + + foreach($xml_ss->Worksheet as $worksheet) { + $worksheet_ss = $worksheet->attributes($namespaces['ss']); + + if ((isset($this->_loadSheetsOnly)) && (isset($worksheet_ss['Name'])) && + (!in_array($worksheet_ss['Name'], $this->_loadSheetsOnly))) { + continue; + } + +// echo '

Worksheet: ',$worksheet_ss['Name'],'

'; +// + // Create new Worksheet + $objPHPExcel->createSheet(); + $objPHPExcel->setActiveSheetIndex($worksheetID); + if (isset($worksheet_ss['Name'])) { + $worksheetName = self::_convertStringEncoding((string) $worksheet_ss['Name'],$this->_charSet); + // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in + // formula cells... during the load, all formulae should be correct, and we're simply bringing + // the worksheet name in line with the formula, not the reverse + $objPHPExcel->getActiveSheet()->setTitle($worksheetName,false); + } + + $columnID = 'A'; + if (isset($worksheet->Table->Column)) { + foreach($worksheet->Table->Column as $columnData) { + $columnData_ss = $columnData->attributes($namespaces['ss']); + if (isset($columnData_ss['Index'])) { + $columnID = PHPExcel_Cell::stringFromColumnIndex($columnData_ss['Index']-1); + } + if (isset($columnData_ss['Width'])) { + $columnWidth = $columnData_ss['Width']; +// echo 'Setting column width for '.$columnID.' to '.$columnWidth.'
'; + $objPHPExcel->getActiveSheet()->getColumnDimension($columnID)->setWidth($columnWidth / 5.4); + } + ++$columnID; + } + } + + $rowID = 1; + if (isset($worksheet->Table->Row)) { + foreach($worksheet->Table->Row as $rowData) { + $rowHasData = false; + $row_ss = $rowData->attributes($namespaces['ss']); + if (isset($row_ss['Index'])) { + $rowID = (integer) $row_ss['Index']; + } +// echo 'Row '.$rowID.'
'; + + $columnID = 'A'; + foreach($rowData->Cell as $cell) { + + $cell_ss = $cell->attributes($namespaces['ss']); + if (isset($cell_ss['Index'])) { + $columnID = PHPExcel_Cell::stringFromColumnIndex($cell_ss['Index']-1); + } + $cellRange = $columnID.$rowID; + + if ($this->getReadFilter() !== NULL) { + if (!$this->getReadFilter()->readCell($columnID, $rowID, $worksheetName)) { + continue; + } + } + + if ((isset($cell_ss['MergeAcross'])) || (isset($cell_ss['MergeDown']))) { + $columnTo = $columnID; + if (isset($cell_ss['MergeAcross'])) { + $columnTo = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($columnID) + $cell_ss['MergeAcross'] -1); + } + $rowTo = $rowID; + if (isset($cell_ss['MergeDown'])) { + $rowTo = $rowTo + $cell_ss['MergeDown']; + } + $cellRange .= ':'.$columnTo.$rowTo; + $objPHPExcel->getActiveSheet()->mergeCells($cellRange); + } + + $cellIsSet = $hasCalculatedValue = false; + $cellDataFormula = ''; + if (isset($cell_ss['Formula'])) { + $cellDataFormula = $cell_ss['Formula']; + // added this as a check for array formulas + if (isset($cell_ss['ArrayRange'])) { + $cellDataCSEFormula = $cell_ss['ArrayRange']; +// echo "found an array formula at ".$columnID.$rowID."
"; + } + $hasCalculatedValue = true; + } + if (isset($cell->Data)) { + $cellValue = $cellData = $cell->Data; + $type = PHPExcel_Cell_DataType::TYPE_NULL; + $cellData_ss = $cellData->attributes($namespaces['ss']); + if (isset($cellData_ss['Type'])) { + $cellDataType = $cellData_ss['Type']; + switch ($cellDataType) { + /* + const TYPE_STRING = 's'; + const TYPE_FORMULA = 'f'; + const TYPE_NUMERIC = 'n'; + const TYPE_BOOL = 'b'; + const TYPE_NULL = 'null'; + const TYPE_INLINE = 'inlineStr'; + const TYPE_ERROR = 'e'; + */ + case 'String' : + $cellValue = self::_convertStringEncoding($cellValue,$this->_charSet); + $type = PHPExcel_Cell_DataType::TYPE_STRING; + break; + case 'Number' : + $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; + $cellValue = (float) $cellValue; + if (floor($cellValue) == $cellValue) { + $cellValue = (integer) $cellValue; + } + break; + case 'Boolean' : + $type = PHPExcel_Cell_DataType::TYPE_BOOL; + $cellValue = ($cellValue != 0); + break; + case 'DateTime' : + $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; + $cellValue = PHPExcel_Shared_Date::PHPToExcel(strtotime($cellValue)); + break; + case 'Error' : + $type = PHPExcel_Cell_DataType::TYPE_ERROR; + break; + } + } + + if ($hasCalculatedValue) { +// echo 'FORMULA
'; + $type = PHPExcel_Cell_DataType::TYPE_FORMULA; + $columnNumber = PHPExcel_Cell::columnIndexFromString($columnID); + if (substr($cellDataFormula,0,3) == 'of:') { + $cellDataFormula = substr($cellDataFormula,3); +// echo 'Before: ',$cellDataFormula,'
'; + $temp = explode('"',$cellDataFormula); + $key = false; + foreach($temp as &$value) { + // Only replace in alternate array entries (i.e. non-quoted blocks) + if ($key = !$key) { + $value = str_replace(array('[.','.',']'),'',$value); + } + } + } else { + // Convert R1C1 style references to A1 style references (but only when not quoted) +// echo 'Before: ',$cellDataFormula,'
'; + $temp = explode('"',$cellDataFormula); + $key = false; + foreach($temp as &$value) { + // Only replace in alternate array entries (i.e. non-quoted blocks) + if ($key = !$key) { + preg_match_all('/(R(\[?-?\d*\]?))(C(\[?-?\d*\]?))/',$value, $cellReferences,PREG_SET_ORDER+PREG_OFFSET_CAPTURE); + // Reverse the matches array, otherwise all our offsets will become incorrect if we modify our way + // through the formula from left to right. Reversing means that we work right to left.through + // the formula + $cellReferences = array_reverse($cellReferences); + // Loop through each R1C1 style reference in turn, converting it to its A1 style equivalent, + // then modify the formula to use that new reference + foreach($cellReferences as $cellReference) { + $rowReference = $cellReference[2][0]; + // Empty R reference is the current row + if ($rowReference == '') $rowReference = $rowID; + // Bracketed R references are relative to the current row + if ($rowReference{0} == '[') $rowReference = $rowID + trim($rowReference,'[]'); + $columnReference = $cellReference[4][0]; + // Empty C reference is the current column + if ($columnReference == '') $columnReference = $columnNumber; + // Bracketed C references are relative to the current column + if ($columnReference{0} == '[') $columnReference = $columnNumber + trim($columnReference,'[]'); + $A1CellReference = PHPExcel_Cell::stringFromColumnIndex($columnReference-1).$rowReference; + $value = substr_replace($value,$A1CellReference,$cellReference[0][1],strlen($cellReference[0][0])); + } + } + } + } + unset($value); + // Then rebuild the formula string + $cellDataFormula = implode('"',$temp); +// echo 'After: ',$cellDataFormula,'
'; + } + +// echo 'Cell '.$columnID.$rowID.' is a '.$type.' with a value of '.(($hasCalculatedValue) ? $cellDataFormula : $cellValue).'
'; +// + $objPHPExcel->getActiveSheet()->getCell($columnID.$rowID)->setValueExplicit((($hasCalculatedValue) ? $cellDataFormula : $cellValue),$type); + if ($hasCalculatedValue) { +// echo 'Formula result is '.$cellValue.'
'; + $objPHPExcel->getActiveSheet()->getCell($columnID.$rowID)->setCalculatedValue($cellValue); + } + $cellIsSet = $rowHasData = true; + } + + if (isset($cell->Comment)) { +// echo 'comment found
'; + $commentAttributes = $cell->Comment->attributes($namespaces['ss']); + $author = 'unknown'; + if (isset($commentAttributes->Author)) { + $author = (string)$commentAttributes->Author; +// echo 'Author: ',$author,'
'; + } + $node = $cell->Comment->Data->asXML(); +// $annotation = str_replace('html:','',substr($node,49,-10)); +// echo $annotation,'
'; + $annotation = strip_tags($node); +// echo 'Annotation: ',$annotation,'
'; + $objPHPExcel->getActiveSheet()->getComment( $columnID.$rowID ) + ->setAuthor(self::_convertStringEncoding($author ,$this->_charSet)) + ->setText($this->_parseRichText($annotation) ); + } + + if (($cellIsSet) && (isset($cell_ss['StyleID']))) { + $style = (string) $cell_ss['StyleID']; +// echo 'Cell style for '.$columnID.$rowID.' is '.$style.'
'; + if ((isset($this->_styles[$style])) && (!empty($this->_styles[$style]))) { +// echo 'Cell '.$columnID.$rowID.'
'; +// print_r($this->_styles[$style]); +// echo '
'; + if (!$objPHPExcel->getActiveSheet()->cellExists($columnID.$rowID)) { + $objPHPExcel->getActiveSheet()->getCell($columnID.$rowID)->setValue(NULL); + } + $objPHPExcel->getActiveSheet()->getStyle($cellRange)->applyFromArray($this->_styles[$style]); + } + } + ++$columnID; + } + + if ($rowHasData) { + if (isset($row_ss['StyleID'])) { + $rowStyle = $row_ss['StyleID']; + } + if (isset($row_ss['Height'])) { + $rowHeight = $row_ss['Height']; +// echo 'Setting row height to '.$rowHeight.'
'; + $objPHPExcel->getActiveSheet()->getRowDimension($rowID)->setRowHeight($rowHeight); + } + } + + ++$rowID; + } + } + ++$worksheetID; + } + + // Return + return $objPHPExcel; + } + + + private static function _convertStringEncoding($string,$charset) { + if ($charset != 'UTF-8') { + return PHPExcel_Shared_String::ConvertEncoding($string,'UTF-8',$charset); + } + return $string; + } + + + private function _parseRichText($is = '') { + $value = new PHPExcel_RichText(); + + $value->createText(self::_convertStringEncoding($is,$this->_charSet)); + + return $value; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007.php b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007.php new file mode 100755 index 0000000..fbb9158 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007.php @@ -0,0 +1,2112 @@ +_readFilter = new PHPExcel_Reader_DefaultReadFilter(); + $this->_referenceHelper = PHPExcel_ReferenceHelper::getInstance(); + } + + + /** + * Read data only? + * If this is true, then the Reader will only read data values for cells, it will not read any formatting information. + * If false (the default) it will read data and formatting. + * + * @return boolean + */ + public function getReadDataOnly() { + return $this->_readDataOnly; + } + + + /** + * Set read data only + * Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information. + * Set to false (the default) to advise the Reader to read both data and formatting for cells. + * + * @param boolean $pValue + * + * @return PHPExcel_Reader_Excel2007 + */ + public function setReadDataOnly($pValue = FALSE) { + $this->_readDataOnly = $pValue; + return $this; + } + + + /** + * Read charts in workbook? + * If this is true, then the Reader will include any charts that exist in the workbook. + * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value. + * If false (the default) it will ignore any charts defined in the workbook file. + * + * @return boolean + */ + public function getIncludeCharts() { + return $this->_includeCharts; + } + + + /** + * Set read charts in workbook + * Set to true, to advise the Reader to include any charts that exist in the workbook. + * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value. + * Set to false (the default) to discard charts. + * + * @param boolean $pValue + * + * @return PHPExcel_Reader_Excel2007 + */ + public function setIncludeCharts($pValue = FALSE) { + $this->_includeCharts = (boolean) $pValue; + return $this; + } + + + /** + * Get which sheets to load + * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null + * indicating that all worksheets in the workbook should be loaded. + * + * @return mixed + */ + public function getLoadSheetsOnly() + { + return $this->_loadSheetsOnly; + } + + + /** + * Set which sheets to load + * + * @param mixed $value + * This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name. + * If NULL, then it tells the Reader to read all worksheets in the workbook + * + * @return PHPExcel_Reader_Excel2007 + */ + public function setLoadSheetsOnly($value = NULL) + { + $this->_loadSheetsOnly = is_array($value) ? + $value : array($value); + return $this; + } + + + /** + * Set all sheets to load + * Tells the Reader to load all worksheets from the workbook. + * + * @return PHPExcel_Reader_Excel2007 + */ + public function setLoadAllSheets() + { + $this->_loadSheetsOnly = NULL; + return $this; + } + + + /** + * Read filter + * + * @return PHPExcel_Reader_IReadFilter + */ + public function getReadFilter() { + return $this->_readFilter; + } + + + /** + * Set read filter + * + * @param PHPExcel_Reader_IReadFilter $pValue + * @return PHPExcel_Reader_Excel2007 + */ + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { + $this->_readFilter = $pValue; + return $this; + } + + + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @param string $pFileName + * @return boolean + * @throws Exception + */ + public function canRead($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Check if zip class exists + if (!class_exists('ZipArchive',FALSE)) { + throw new Exception("ZipArchive library is not enabled"); + } + + $xl = false; + // Load file + $zip = new ZipArchive; + if ($zip->open($pFilename) === true) { + // check if it is an OOXML archive + $rels = simplexml_load_string($this->_getFromZipArchive($zip, "_rels/.rels")); + if ($rels !== false) { + foreach ($rels->Relationship as $rel) { + switch ($rel["Type"]) { + case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument": + if (basename($rel["Target"]) == 'workbook.xml') { + $xl = true; + } + break; + + } + } + } + $zip->close(); + } + + return $xl; + } + + + /** + * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetInfo($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $worksheetInfo = array(); + + $zip = new ZipArchive; + $zip->open($pFilename); + + $rels = simplexml_load_string($this->_getFromZipArchive($zip, "_rels/.rels")); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + foreach ($rels->Relationship as $rel) { + if ($rel["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument") { + $dir = dirname($rel["Target"]); + $relsWorkbook = simplexml_load_string($this->_getFromZipArchive($zip, "$dir/_rels/" . basename($rel["Target"]) . ".rels")); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + $relsWorkbook->registerXPathNamespace("rel", "http://schemas.openxmlformats.org/package/2006/relationships"); + + $worksheets = array(); + foreach ($relsWorkbook->Relationship as $ele) { + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet") { + $worksheets[(string) $ele["Id"]] = $ele["Target"]; + } + } + + $xmlWorkbook = simplexml_load_string($this->_getFromZipArchive($zip, "{$rel['Target']}")); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + if ($xmlWorkbook->sheets) { + $dir = dirname($rel["Target"]); + foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { + $tmpInfo = array(); + $tmpInfo['worksheetName'] = (string) $eleSheet["name"]; + $tmpInfo['lastColumnLetter'] = 'A'; + $tmpInfo['lastColumnIndex'] = 0; + $tmpInfo['totalRows'] = 0; + $tmpInfo['totalColumns'] = 0; + + $fileWorksheet = $worksheets[(string) self::array_item($eleSheet->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "id")]; + $xmlSheet = simplexml_load_string($this->_getFromZipArchive($zip, "$dir/$fileWorksheet")); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + if ($xmlSheet && $xmlSheet->sheetData && $xmlSheet->sheetData->row) { + foreach ($xmlSheet->sheetData->row as $row) { + foreach ($row->c as $c) { + $r = (string) $c["r"]; + $coordinates = PHPExcel_Cell::coordinateFromString($r); + + $rowIndex = $coordinates[1]; + $columnIndex = PHPExcel_Cell::columnIndexFromString($coordinates[0]) - 1; + + $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex); + $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex); + } + } + } + + $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; + + $worksheetInfo[] = $tmpInfo; + } + } + } + } + + $zip->close(); + + return $worksheetInfo; + } + + + private static function _castToBool($c) { +// echo 'Initial Cast to Boolean
'; + $value = isset($c->v) ? (string) $c->v : NULL; + if ($value == '0') { + return FALSE; + } elseif ($value == '1') { + return TRUE; + } else { + return (bool)$c->v; + } + return $value; + } // function _castToBool() + + + private static function _castToError($c) { +// echo 'Initial Cast to Error
'; + return isset($c->v) ? (string) $c->v : NULL; + } // function _castToError() + + + private static function _castToString($c) { +// echo 'Initial Cast to String
'; + return isset($c->v) ? (string) $c->v : NULL; + } // function _castToString() + + + private function _castToFormula($c,$r,&$cellDataType,&$value,&$calculatedValue,&$sharedFormulas,$castBaseType) { +// echo 'Formula
'; +// echo '$c->f is '.$c->f.'
'; + $cellDataType = 'f'; + $value = "={$c->f}"; + $calculatedValue = self::$castBaseType($c); + + // Shared formula? + if (isset($c->f['t']) && strtolower((string)$c->f['t']) == 'shared') { +// echo 'SHARED FORMULA
'; + $instance = (string)$c->f['si']; + +// echo 'Instance ID = '.$instance.'
'; +// +// echo 'Shared Formula Array:
';
+//			print_r($sharedFormulas);
+//			echo '
'; + if (!isset($sharedFormulas[(string)$c->f['si']])) { +// echo 'SETTING NEW SHARED FORMULA
'; +// echo 'Master is '.$r.'
'; +// echo 'Formula is '.$value.'
'; + $sharedFormulas[$instance] = array( 'master' => $r, + 'formula' => $value + ); +// echo 'New Shared Formula Array:
';
+//				print_r($sharedFormulas);
+//				echo '
'; + } else { +// echo 'GETTING SHARED FORMULA
'; +// echo 'Master is '.$sharedFormulas[$instance]['master'].'
'; +// echo 'Formula is '.$sharedFormulas[$instance]['formula'].'
'; + $master = PHPExcel_Cell::coordinateFromString($sharedFormulas[$instance]['master']); + $current = PHPExcel_Cell::coordinateFromString($r); + + $difference = array(0, 0); + $difference[0] = PHPExcel_Cell::columnIndexFromString($current[0]) - PHPExcel_Cell::columnIndexFromString($master[0]); + $difference[1] = $current[1] - $master[1]; + + $value = $this->_referenceHelper->updateFormulaReferences( $sharedFormulas[$instance]['formula'], + 'A1', + $difference[0], + $difference[1] + ); +// echo 'Adjusted Formula is '.$value.'
'; + } + } + } + + + public function _getFromZipArchive(ZipArchive $archive, $fileName = '') + { + // Root-relative paths + if (strpos($fileName, '//') !== false) + { + $fileName = substr($fileName, strpos($fileName, '//') + 1); + } + $fileName = PHPExcel_Shared_File::realpath($fileName); + + // Apache POI fixes + $contents = $archive->getFromName($fileName); + if ($contents === false) + { + $contents = $archive->getFromName(substr($fileName, 1)); + } + + return $contents; + } + + + /** + * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetNames($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $worksheetNames = array(); + + $zip = new ZipArchive; + $zip->open($pFilename); + + $rels = simplexml_load_string($this->_getFromZipArchive($zip, "_rels/.rels")); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + foreach ($rels->Relationship as $rel) { + switch ($rel["Type"]) { + case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument": + $xmlWorkbook = simplexml_load_string($this->_getFromZipArchive($zip, "{$rel['Target']}")); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + + if ($xmlWorkbook->sheets) { + foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { + // Check if sheet should be skipped + $worksheetNames[] = (string) $eleSheet["name"]; + } + } + } + } + + $zip->close(); + + return $worksheetNames; + } + + + /** + * Loads PHPExcel from file + * + * @param string $pFilename + * @throws Exception + */ + public function load($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Initialisations + $excel = new PHPExcel; + $excel->removeSheetByIndex(0); + if (!$this->_readDataOnly) { + $excel->removeCellStyleXfByIndex(0); // remove the default style + $excel->removeCellXfByIndex(0); // remove the default style + } + $zip = new ZipArchive; + $zip->open($pFilename); + + // Read the theme first, because we need the colour scheme when reading the styles + $wbRels = simplexml_load_string($this->_getFromZipArchive($zip, "xl/_rels/workbook.xml.rels")); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + foreach ($wbRels->Relationship as $rel) { + switch ($rel["Type"]) { + case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme": + $themeOrderArray = array('lt1','dk1','lt2','dk2'); + $themeOrderAdditional = count($themeOrderArray); + + $xmlTheme = simplexml_load_string($this->_getFromZipArchive($zip, "xl/{$rel['Target']}")); + if (is_object($xmlTheme)) { + $xmlThemeName = $xmlTheme->attributes(); + $xmlTheme = $xmlTheme->children("http://schemas.openxmlformats.org/drawingml/2006/main"); + $themeName = (string)$xmlThemeName['name']; + + $colourScheme = $xmlTheme->themeElements->clrScheme->attributes(); + $colourSchemeName = (string)$colourScheme['name']; + $colourScheme = $xmlTheme->themeElements->clrScheme->children("http://schemas.openxmlformats.org/drawingml/2006/main"); + + $themeColours = array(); + foreach ($colourScheme as $k => $xmlColour) { + $themePos = array_search($k,$themeOrderArray); + if ($themePos === false) { + $themePos = $themeOrderAdditional++; + } + if (isset($xmlColour->sysClr)) { + $xmlColourData = $xmlColour->sysClr->attributes(); + $themeColours[$themePos] = $xmlColourData['lastClr']; + } elseif (isset($xmlColour->srgbClr)) { + $xmlColourData = $xmlColour->srgbClr->attributes(); + $themeColours[$themePos] = $xmlColourData['val']; + } + } + self::$_theme = new PHPExcel_Reader_Excel2007_Theme($themeName,$colourSchemeName,$themeColours); + } + break; + } + } + + $rels = simplexml_load_string($this->_getFromZipArchive($zip, "_rels/.rels")); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + foreach ($rels->Relationship as $rel) { + switch ($rel["Type"]) { + case "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties": + $xmlCore = simplexml_load_string($this->_getFromZipArchive($zip, "{$rel['Target']}")); + if (is_object($xmlCore)) { + $xmlCore->registerXPathNamespace("dc", "http://purl.org/dc/elements/1.1/"); + $xmlCore->registerXPathNamespace("dcterms", "http://purl.org/dc/terms/"); + $xmlCore->registerXPathNamespace("cp", "http://schemas.openxmlformats.org/package/2006/metadata/core-properties"); + $docProps = $excel->getProperties(); + $docProps->setCreator((string) self::array_item($xmlCore->xpath("dc:creator"))); + $docProps->setLastModifiedBy((string) self::array_item($xmlCore->xpath("cp:lastModifiedBy"))); + $docProps->setCreated(strtotime(self::array_item($xmlCore->xpath("dcterms:created")))); //! respect xsi:type + $docProps->setModified(strtotime(self::array_item($xmlCore->xpath("dcterms:modified")))); //! respect xsi:type + $docProps->setTitle((string) self::array_item($xmlCore->xpath("dc:title"))); + $docProps->setDescription((string) self::array_item($xmlCore->xpath("dc:description"))); + $docProps->setSubject((string) self::array_item($xmlCore->xpath("dc:subject"))); + $docProps->setKeywords((string) self::array_item($xmlCore->xpath("cp:keywords"))); + $docProps->setCategory((string) self::array_item($xmlCore->xpath("cp:category"))); + } + break; + + case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties": + $xmlCore = simplexml_load_string($this->_getFromZipArchive($zip, "{$rel['Target']}")); + if (is_object($xmlCore)) { + $docProps = $excel->getProperties(); + if (isset($xmlCore->Company)) + $docProps->setCompany((string) $xmlCore->Company); + if (isset($xmlCore->Manager)) + $docProps->setManager((string) $xmlCore->Manager); + } + break; + + case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties": + $xmlCore = simplexml_load_string($this->_getFromZipArchive($zip, "{$rel['Target']}")); + if (is_object($xmlCore)) { + $docProps = $excel->getProperties(); + foreach ($xmlCore as $xmlProperty) { + $cellDataOfficeAttributes = $xmlProperty->attributes(); + if (isset($cellDataOfficeAttributes['name'])) { + $propertyName = (string) $cellDataOfficeAttributes['name']; + $cellDataOfficeChildren = $xmlProperty->children('http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); + $attributeType = $cellDataOfficeChildren->getName(); + $attributeValue = (string) $cellDataOfficeChildren->{$attributeType}; + $attributeValue = PHPExcel_DocumentProperties::convertProperty($attributeValue,$attributeType); + $attributeType = PHPExcel_DocumentProperties::convertPropertyType($attributeType); + $docProps->setCustomProperty($propertyName,$attributeValue,$attributeType); + } + } + } + break; + + case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument": + $dir = dirname($rel["Target"]); + $relsWorkbook = simplexml_load_string($this->_getFromZipArchive($zip, "$dir/_rels/" . basename($rel["Target"]) . ".rels")); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + $relsWorkbook->registerXPathNamespace("rel", "http://schemas.openxmlformats.org/package/2006/relationships"); + + $sharedStrings = array(); + $xpath = self::array_item($relsWorkbook->xpath("rel:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings']")); + $xmlStrings = simplexml_load_string($this->_getFromZipArchive($zip, "$dir/$xpath[Target]")); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + if (isset($xmlStrings) && isset($xmlStrings->si)) { + foreach ($xmlStrings->si as $val) { + if (isset($val->t)) { + $sharedStrings[] = PHPExcel_Shared_String::ControlCharacterOOXML2PHP( (string) $val->t ); + } elseif (isset($val->r)) { + $sharedStrings[] = $this->_parseRichText($val); + } + } + } + + $worksheets = array(); + foreach ($relsWorkbook->Relationship as $ele) { + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet") { + $worksheets[(string) $ele["Id"]] = $ele["Target"]; + } + } + + $styles = array(); + $cellStyles = array(); + $xpath = self::array_item($relsWorkbook->xpath("rel:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles']")); + $xmlStyles = simplexml_load_string($this->_getFromZipArchive($zip, "$dir/$xpath[Target]")); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + $numFmts = null; + if ($xmlStyles && $xmlStyles->numFmts[0]) { + $numFmts = $xmlStyles->numFmts[0]; + } + if (isset($numFmts) && ($numFmts !== NULL)) { + $numFmts->registerXPathNamespace("sml", "http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + } + if (!$this->_readDataOnly && $xmlStyles) { + foreach ($xmlStyles->cellXfs->xf as $xf) { + $numFmt = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; + + if ($xf["numFmtId"]) { + if (isset($numFmts)) { + $tmpNumFmt = self::array_item($numFmts->xpath("sml:numFmt[@numFmtId=$xf[numFmtId]]")); + + if (isset($tmpNumFmt["formatCode"])) { + $numFmt = (string) $tmpNumFmt["formatCode"]; + } + } + + if ((int)$xf["numFmtId"] < 164) { + $numFmt = PHPExcel_Style_NumberFormat::builtInFormatCode((int)$xf["numFmtId"]); + } + } + //$numFmt = str_replace('mm', 'i', $numFmt); + //$numFmt = str_replace('h', 'H', $numFmt); + + $style = (object) array( + "numFmt" => $numFmt, + "font" => $xmlStyles->fonts->font[intval($xf["fontId"])], + "fill" => $xmlStyles->fills->fill[intval($xf["fillId"])], + "border" => $xmlStyles->borders->border[intval($xf["borderId"])], + "alignment" => $xf->alignment, + "protection" => $xf->protection, + ); + $styles[] = $style; + + // add style to cellXf collection + $objStyle = new PHPExcel_Style; + self::_readStyle($objStyle, $style); + $excel->addCellXf($objStyle); + } + + foreach ($xmlStyles->cellStyleXfs->xf as $xf) { + $numFmt = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; + if ($numFmts && $xf["numFmtId"]) { + $tmpNumFmt = self::array_item($numFmts->xpath("sml:numFmt[@numFmtId=$xf[numFmtId]]")); + if (isset($tmpNumFmt["formatCode"])) { + $numFmt = (string) $tmpNumFmt["formatCode"]; + } else if ((int)$xf["numFmtId"] < 165) { + $numFmt = PHPExcel_Style_NumberFormat::builtInFormatCode((int)$xf["numFmtId"]); + } + } + + $cellStyle = (object) array( + "numFmt" => $numFmt, + "font" => $xmlStyles->fonts->font[intval($xf["fontId"])], + "fill" => $xmlStyles->fills->fill[intval($xf["fillId"])], + "border" => $xmlStyles->borders->border[intval($xf["borderId"])], + "alignment" => $xf->alignment, + "protection" => $xf->protection, + ); + $cellStyles[] = $cellStyle; + + // add style to cellStyleXf collection + $objStyle = new PHPExcel_Style; + self::_readStyle($objStyle, $cellStyle); + $excel->addCellStyleXf($objStyle); + } + } + + $dxfs = array(); + if (!$this->_readDataOnly && $xmlStyles) { + // Conditional Styles + if ($xmlStyles->dxfs) { + foreach ($xmlStyles->dxfs->dxf as $dxf) { + $style = new PHPExcel_Style(FALSE, TRUE); + self::_readStyle($style, $dxf); + $dxfs[] = $style; + } + } + // Cell Styles + if ($xmlStyles->cellStyles) { + foreach ($xmlStyles->cellStyles->cellStyle as $cellStyle) { + if (intval($cellStyle['builtinId']) == 0) { + if (isset($cellStyles[intval($cellStyle['xfId'])])) { + // Set default style + $style = new PHPExcel_Style; + self::_readStyle($style, $cellStyles[intval($cellStyle['xfId'])]); + + // normal style, currently not using it for anything + } + } + } + } + } + + $xmlWorkbook = simplexml_load_string($this->_getFromZipArchive($zip, "{$rel['Target']}")); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + + // Set base date + if ($xmlWorkbook->workbookPr) { + PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900); + if (isset($xmlWorkbook->workbookPr['date1904'])) { + $date1904 = (string)$xmlWorkbook->workbookPr['date1904']; + if ($date1904 == "true" || $date1904 == "1") { + PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_MAC_1904); + } + } + } + + $sheetId = 0; // keep track of new sheet id in final workbook + $oldSheetId = -1; // keep track of old sheet id in final workbook + $countSkippedSheets = 0; // keep track of number of skipped sheets + $mapSheetId = array(); // mapping of sheet ids from old to new + + + $charts = $chartDetails = array(); + + if ($xmlWorkbook->sheets) { + foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { + ++$oldSheetId; + + // Check if sheet should be skipped + if (isset($this->_loadSheetsOnly) && !in_array((string) $eleSheet["name"], $this->_loadSheetsOnly)) { + ++$countSkippedSheets; + $mapSheetId[$oldSheetId] = null; + continue; + } + + // Map old sheet id in original workbook to new sheet id. + // They will differ if loadSheetsOnly() is being used + $mapSheetId[$oldSheetId] = $oldSheetId - $countSkippedSheets; + + // Load sheet + $docSheet = $excel->createSheet(); + // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet + // references in formula cells... during the load, all formulae should be correct, + // and we're simply bringing the worksheet name in line with the formula, not the + // reverse + $docSheet->setTitle((string) $eleSheet["name"],false); + $fileWorksheet = $worksheets[(string) self::array_item($eleSheet->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "id")]; + $xmlSheet = simplexml_load_string($this->_getFromZipArchive($zip, "$dir/$fileWorksheet")); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + + $sharedFormulas = array(); + + if (isset($eleSheet["state"]) && (string) $eleSheet["state"] != '') { + $docSheet->setSheetState( (string) $eleSheet["state"] ); + } + + if (isset($xmlSheet->sheetViews) && isset($xmlSheet->sheetViews->sheetView)) { + if (isset($xmlSheet->sheetViews->sheetView['zoomScale'])) { + $docSheet->getSheetView()->setZoomScale( intval($xmlSheet->sheetViews->sheetView['zoomScale']) ); + } + + if (isset($xmlSheet->sheetViews->sheetView['zoomScaleNormal'])) { + $docSheet->getSheetView()->setZoomScaleNormal( intval($xmlSheet->sheetViews->sheetView['zoomScaleNormal']) ); + } + + if (isset($xmlSheet->sheetViews->sheetView['view'])) { + $docSheet->getSheetView()->setView((string) $xmlSheet->sheetViews->sheetView['view']); + } + + if (isset($xmlSheet->sheetViews->sheetView['showGridLines'])) { + $docSheet->setShowGridLines((string)$xmlSheet->sheetViews->sheetView['showGridLines'] ? true : false); + } + + if (isset($xmlSheet->sheetViews->sheetView['showRowColHeaders'])) { + $docSheet->setShowRowColHeaders((string)$xmlSheet->sheetViews->sheetView['showRowColHeaders'] ? true : false); + } + + if (isset($xmlSheet->sheetViews->sheetView['rightToLeft'])) { + $docSheet->setRightToLeft((string)$xmlSheet->sheetViews->sheetView['rightToLeft'] ? true : false); + } + + if (isset($xmlSheet->sheetViews->sheetView->pane)) { + if (isset($xmlSheet->sheetViews->sheetView->pane['topLeftCell'])) { + $docSheet->freezePane( (string)$xmlSheet->sheetViews->sheetView->pane['topLeftCell'] ); + } else { + $xSplit = 0; + $ySplit = 0; + + if (isset($xmlSheet->sheetViews->sheetView->pane['xSplit'])) { + $xSplit = 1 + intval($xmlSheet->sheetViews->sheetView->pane['xSplit']); + } + + if (isset($xmlSheet->sheetViews->sheetView->pane['ySplit'])) { + $ySplit = 1 + intval($xmlSheet->sheetViews->sheetView->pane['ySplit']); + } + + $docSheet->freezePaneByColumnAndRow($xSplit, $ySplit); + } + } + + if (isset($xmlSheet->sheetViews->sheetView->selection)) { + if (isset($xmlSheet->sheetViews->sheetView->selection['sqref'])) { + $sqref = (string)$xmlSheet->sheetViews->sheetView->selection['sqref']; + $sqref = explode(' ', $sqref); + $sqref = $sqref[0]; + $docSheet->setSelectedCells($sqref); + } + } + + } + + if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr->tabColor)) { + if (isset($xmlSheet->sheetPr->tabColor['rgb'])) { + $docSheet->getTabColor()->setARGB( (string)$xmlSheet->sheetPr->tabColor['rgb'] ); + } + } + + if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr->outlinePr)) { + if (isset($xmlSheet->sheetPr->outlinePr['summaryRight']) && $xmlSheet->sheetPr->outlinePr['summaryRight'] == false) { + $docSheet->setShowSummaryRight(false); + } else { + $docSheet->setShowSummaryRight(true); + } + + if (isset($xmlSheet->sheetPr->outlinePr['summaryBelow']) && $xmlSheet->sheetPr->outlinePr['summaryBelow'] == false) { + $docSheet->setShowSummaryBelow(false); + } else { + $docSheet->setShowSummaryBelow(true); + } + } + + if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr->pageSetUpPr)) { + if (isset($xmlSheet->sheetPr->pageSetUpPr['fitToPage']) && $xmlSheet->sheetPr->pageSetUpPr['fitToPage'] == false) { + $docSheet->getPageSetup()->setFitToPage(false); + } else { + $docSheet->getPageSetup()->setFitToPage(true); + } + } + + if (isset($xmlSheet->sheetFormatPr)) { + if (isset($xmlSheet->sheetFormatPr['customHeight']) && ((string)$xmlSheet->sheetFormatPr['customHeight'] == '1' || strtolower((string)$xmlSheet->sheetFormatPr['customHeight']) == 'true') && isset($xmlSheet->sheetFormatPr['defaultRowHeight'])) { + $docSheet->getDefaultRowDimension()->setRowHeight( (float)$xmlSheet->sheetFormatPr['defaultRowHeight'] ); + } + if (isset($xmlSheet->sheetFormatPr['defaultColWidth'])) { + $docSheet->getDefaultColumnDimension()->setWidth( (float)$xmlSheet->sheetFormatPr['defaultColWidth'] ); + } + if (isset($xmlSheet->sheetFormatPr['zeroHeight']) && + ((string)$xmlSheet->sheetFormatPr['zeroHeight'] == '1')) { + $docSheet->getDefaultRowDimension()->setzeroHeight(true); + } + } + + if (isset($xmlSheet->cols) && !$this->_readDataOnly) { + foreach ($xmlSheet->cols->col as $col) { + for ($i = intval($col["min"]) - 1; $i < intval($col["max"]); ++$i) { + if ($col["style"] && !$this->_readDataOnly) { + $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setXfIndex(intval($col["style"])); + } + if ($col["bestFit"]) { + //$docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setAutoSize(true); + } + if ($col["hidden"]) { + $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setVisible(false); + } + if ($col["collapsed"]) { + $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setCollapsed(true); + } + if ($col["outlineLevel"] > 0) { + $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setOutlineLevel(intval($col["outlineLevel"])); + } + $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setWidth(floatval($col["width"])); + + if (intval($col["max"]) == 16384) { + break; + } + } + } + } + + if (isset($xmlSheet->printOptions) && !$this->_readDataOnly) { + if ($xmlSheet->printOptions['gridLinesSet'] == 'true' && $xmlSheet->printOptions['gridLinesSet'] == '1') { + $docSheet->setShowGridlines(true); + } + + if ($xmlSheet->printOptions['gridLines'] == 'true' || $xmlSheet->printOptions['gridLines'] == '1') { + $docSheet->setPrintGridlines(true); + } + + if ($xmlSheet->printOptions['horizontalCentered']) { + $docSheet->getPageSetup()->setHorizontalCentered(true); + } + if ($xmlSheet->printOptions['verticalCentered']) { + $docSheet->getPageSetup()->setVerticalCentered(true); + } + } + + if ($xmlSheet && $xmlSheet->sheetData && $xmlSheet->sheetData->row) { + foreach ($xmlSheet->sheetData->row as $row) { + if ($row["ht"] && !$this->_readDataOnly) { + $docSheet->getRowDimension(intval($row["r"]))->setRowHeight(floatval($row["ht"])); + } + if ($row["hidden"] && !$this->_readDataOnly) { + $docSheet->getRowDimension(intval($row["r"]))->setVisible(false); + } + if ($row["collapsed"]) { + $docSheet->getRowDimension(intval($row["r"]))->setCollapsed(true); + } + if ($row["outlineLevel"] > 0) { + $docSheet->getRowDimension(intval($row["r"]))->setOutlineLevel(intval($row["outlineLevel"])); + } + if ($row["s"] && !$this->_readDataOnly) { + $docSheet->getRowDimension(intval($row["r"]))->setXfIndex(intval($row["s"])); + } + + foreach ($row->c as $c) { + $r = (string) $c["r"]; + $cellDataType = (string) $c["t"]; + $value = null; + $calculatedValue = null; + + // Read cell? + if ($this->getReadFilter() !== NULL) { + $coordinates = PHPExcel_Cell::coordinateFromString($r); + + if (!$this->getReadFilter()->readCell($coordinates[0], $coordinates[1], $docSheet->getTitle())) { + continue; + } + } + + // echo 'Reading cell '.$coordinates[0].$coordinates[1].'
'; + // print_r($c); + // echo '
'; + // echo 'Cell Data Type is '.$cellDataType.': '; + // + // Read cell! + switch ($cellDataType) { + case "s": + // echo 'String
'; + if ((string)$c->v != '') { + $value = $sharedStrings[intval($c->v)]; + + if ($value instanceof PHPExcel_RichText) { + $value = clone $value; + } + } else { + $value = ''; + } + + break; + case "b": + // echo 'Boolean
'; + if (!isset($c->f)) { + $value = self::_castToBool($c); + } else { + // Formula + $this->_castToFormula($c,$r,$cellDataType,$value,$calculatedValue,$sharedFormulas,'_castToBool'); + if (isset($c->f['t'])) { + $att = array(); + $att = $c->f; + $docSheet->getCell($r)->setFormulaAttributes($att); + } + // echo '$calculatedValue = '.$calculatedValue.'
'; + } + break; + case "inlineStr": + // echo 'Inline String
'; + $value = $this->_parseRichText($c->is); + + break; + case "e": + // echo 'Error
'; + if (!isset($c->f)) { + $value = self::_castToError($c); + } else { + // Formula + $this->_castToFormula($c,$r,$cellDataType,$value,$calculatedValue,$sharedFormulas,'_castToError'); + // echo '$calculatedValue = '.$calculatedValue.'
'; + } + + break; + + default: + // echo 'Default
'; + if (!isset($c->f)) { + // echo 'Not a Formula
'; + $value = self::_castToString($c); + } else { + // echo 'Treat as Formula
'; + // Formula + $this->_castToFormula($c,$r,$cellDataType,$value,$calculatedValue,$sharedFormulas,'_castToString'); + // echo '$calculatedValue = '.$calculatedValue.'
'; + } + + break; + } + // echo 'Value is '.$value.'
'; + + // Check for numeric values + if (is_numeric($value) && $cellDataType != 's') { + if ($value == (int)$value) $value = (int)$value; + elseif ($value == (float)$value) $value = (float)$value; + elseif ($value == (double)$value) $value = (double)$value; + } + + // Rich text? + if ($value instanceof PHPExcel_RichText && $this->_readDataOnly) { + $value = $value->getPlainText(); + } + + $cell = $docSheet->getCell($r); + // Assign value + if ($cellDataType != '') { + $cell->setValueExplicit($value, $cellDataType); + } else { + $cell->setValue($value); + } + if ($calculatedValue !== NULL) { + $cell->setCalculatedValue($calculatedValue); + } + + // Style information? + if ($c["s"] && !$this->_readDataOnly) { + // no style index means 0, it seems + $cell->setXfIndex(isset($styles[intval($c["s"])]) ? + intval($c["s"]) : 0); + } + } + } + } + + $conditionals = array(); + if (!$this->_readDataOnly && $xmlSheet && $xmlSheet->conditionalFormatting) { + foreach ($xmlSheet->conditionalFormatting as $conditional) { + foreach ($conditional->cfRule as $cfRule) { + if ( + ( + (string)$cfRule["type"] == PHPExcel_Style_Conditional::CONDITION_NONE || + (string)$cfRule["type"] == PHPExcel_Style_Conditional::CONDITION_CELLIS || + (string)$cfRule["type"] == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT || + (string)$cfRule["type"] == PHPExcel_Style_Conditional::CONDITION_EXPRESSION + ) && isset($dxfs[intval($cfRule["dxfId"])]) + ) { + $conditionals[(string) $conditional["sqref"]][intval($cfRule["priority"])] = $cfRule; + } + } + } + + foreach ($conditionals as $ref => $cfRules) { + ksort($cfRules); + $conditionalStyles = array(); + foreach ($cfRules as $cfRule) { + $objConditional = new PHPExcel_Style_Conditional(); + $objConditional->setConditionType((string)$cfRule["type"]); + $objConditional->setOperatorType((string)$cfRule["operator"]); + + if ((string)$cfRule["text"] != '') { + $objConditional->setText((string)$cfRule["text"]); + } + + if (count($cfRule->formula) > 1) { + foreach ($cfRule->formula as $formula) { + $objConditional->addCondition((string)$formula); + } + } else { + $objConditional->addCondition((string)$cfRule->formula); + } + $objConditional->setStyle(clone $dxfs[intval($cfRule["dxfId"])]); + $conditionalStyles[] = $objConditional; + } + + // Extract all cell references in $ref + $aReferences = PHPExcel_Cell::extractAllCellReferencesInRange($ref); + foreach ($aReferences as $reference) { + $docSheet->getStyle($reference)->setConditionalStyles($conditionalStyles); + } + } + } + + $aKeys = array("sheet", "objects", "scenarios", "formatCells", "formatColumns", "formatRows", "insertColumns", "insertRows", "insertHyperlinks", "deleteColumns", "deleteRows", "selectLockedCells", "sort", "autoFilter", "pivotTables", "selectUnlockedCells"); + if (!$this->_readDataOnly && $xmlSheet && $xmlSheet->sheetProtection) { + foreach ($aKeys as $key) { + $method = "set" . ucfirst($key); + $docSheet->getProtection()->$method($xmlSheet->sheetProtection[$key] == "true"); + } + } + + if (!$this->_readDataOnly && $xmlSheet && $xmlSheet->sheetProtection) { + $docSheet->getProtection()->setPassword((string) $xmlSheet->sheetProtection["password"], true); + if ($xmlSheet->protectedRanges->protectedRange) { + foreach ($xmlSheet->protectedRanges->protectedRange as $protectedRange) { + $docSheet->protectCells((string) $protectedRange["sqref"], (string) $protectedRange["password"], true); + } + } + } + + if ($xmlSheet && $xmlSheet->autoFilter && !$this->_readDataOnly) { + $autoFilter = $docSheet->getAutoFilter(); + $autoFilter->setRange((string) $xmlSheet->autoFilter["ref"]); + foreach ($xmlSheet->autoFilter->filterColumn as $filterColumn) { + $column = $autoFilter->getColumnByOffset((integer) $filterColumn["colId"]); + // Check for standard filters + if ($filterColumn->filters) { + $column->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER); + $filters = $filterColumn->filters; + if ((isset($filters["blank"])) && ($filters["blank"] == 1)) { + $column->createRule()->setRule( + NULL, // Operator is undefined, but always treated as EQUAL + '' + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_FILTER); + } + // Standard filters are always an OR join, so no join rule needs to be set + // Entries can be either filter elements + foreach ($filters->filter as $filterRule) { + $column->createRule()->setRule( + NULL, // Operator is undefined, but always treated as EQUAL + (string) $filterRule["val"] + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_FILTER); + } + // Or Date Group elements + foreach ($filters->dateGroupItem as $dateGroupItem) { + $column->createRule()->setRule( + NULL, // Operator is undefined, but always treated as EQUAL + array( + 'year' => (string) $dateGroupItem["year"], + 'month' => (string) $dateGroupItem["month"], + 'day' => (string) $dateGroupItem["day"], + 'hour' => (string) $dateGroupItem["hour"], + 'minute' => (string) $dateGroupItem["minute"], + 'second' => (string) $dateGroupItem["second"], + ), + (string) $dateGroupItem["dateTimeGrouping"] + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP); + } + } + // Check for custom filters + if ($filterColumn->customFilters) { + $column->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER); + $customFilters = $filterColumn->customFilters; + // Custom filters can an AND or an OR join; + // and there should only ever be one or two entries + if ((isset($customFilters["and"])) && ($customFilters["and"] == 1)) { + $column->setJoin(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND); + } + foreach ($customFilters->customFilter as $filterRule) { + $column->createRule()->setRule( + (string) $filterRule["operator"], + (string) $filterRule["val"] + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + } + } + // Check for dynamic filters + if ($filterColumn->dynamicFilter) { + $column->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER); + // We should only ever have one dynamic filter + foreach ($filterColumn->dynamicFilter as $filterRule) { + $column->createRule()->setRule( + NULL, // Operator is undefined, but always treated as EQUAL + (string) $filterRule["val"], + (string) $filterRule["type"] + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); + if (isset($filterRule["val"])) { + $column->setAttribute('val',(string) $filterRule["val"]); + } + if (isset($filterRule["maxVal"])) { + $column->setAttribute('maxVal',(string) $filterRule["maxVal"]); + } + } + } + // Check for dynamic filters + if ($filterColumn->top10) { + $column->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER); + // We should only ever have one top10 filter + foreach ($filterColumn->top10 as $filterRule) { + $column->createRule()->setRule( + (((isset($filterRule["percent"])) && ($filterRule["percent"] == 1)) + ? PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT + : PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE + ), + (string) $filterRule["val"], + (((isset($filterRule["top"])) && ($filterRule["top"] == 1)) + ? PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP + : PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM + ) + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_TOPTENFILTER); + } + } + } + } + + if ($xmlSheet && $xmlSheet->mergeCells && $xmlSheet->mergeCells->mergeCell && !$this->_readDataOnly) { + foreach ($xmlSheet->mergeCells->mergeCell as $mergeCell) { + $mergeRef = (string) $mergeCell["ref"]; + if (strpos($mergeRef,':') !== FALSE) { + $docSheet->mergeCells((string) $mergeCell["ref"]); + } + } + } + + if ($xmlSheet && $xmlSheet->pageMargins && !$this->_readDataOnly) { + $docPageMargins = $docSheet->getPageMargins(); + $docPageMargins->setLeft(floatval($xmlSheet->pageMargins["left"])); + $docPageMargins->setRight(floatval($xmlSheet->pageMargins["right"])); + $docPageMargins->setTop(floatval($xmlSheet->pageMargins["top"])); + $docPageMargins->setBottom(floatval($xmlSheet->pageMargins["bottom"])); + $docPageMargins->setHeader(floatval($xmlSheet->pageMargins["header"])); + $docPageMargins->setFooter(floatval($xmlSheet->pageMargins["footer"])); + } + + if ($xmlSheet && $xmlSheet->pageSetup && !$this->_readDataOnly) { + $docPageSetup = $docSheet->getPageSetup(); + + if (isset($xmlSheet->pageSetup["orientation"])) { + $docPageSetup->setOrientation((string) $xmlSheet->pageSetup["orientation"]); + } + if (isset($xmlSheet->pageSetup["paperSize"])) { + $docPageSetup->setPaperSize(intval($xmlSheet->pageSetup["paperSize"])); + } + if (isset($xmlSheet->pageSetup["scale"])) { + $docPageSetup->setScale(intval($xmlSheet->pageSetup["scale"]), false); + } + if (isset($xmlSheet->pageSetup["fitToHeight"]) && intval($xmlSheet->pageSetup["fitToHeight"]) >= 0) { + $docPageSetup->setFitToHeight(intval($xmlSheet->pageSetup["fitToHeight"]), false); + } + if (isset($xmlSheet->pageSetup["fitToWidth"]) && intval($xmlSheet->pageSetup["fitToWidth"]) >= 0) { + $docPageSetup->setFitToWidth(intval($xmlSheet->pageSetup["fitToWidth"]), false); + } + if (isset($xmlSheet->pageSetup["firstPageNumber"]) && isset($xmlSheet->pageSetup["useFirstPageNumber"]) && + ((string)$xmlSheet->pageSetup["useFirstPageNumber"] == 'true' || (string)$xmlSheet->pageSetup["useFirstPageNumber"] == '1')) { + $docPageSetup->setFirstPageNumber(intval($xmlSheet->pageSetup["firstPageNumber"])); + } + } + + if ($xmlSheet && $xmlSheet->headerFooter && !$this->_readDataOnly) { + $docHeaderFooter = $docSheet->getHeaderFooter(); + + if (isset($xmlSheet->headerFooter["differentOddEven"]) && + ((string)$xmlSheet->headerFooter["differentOddEven"] == 'true' || (string)$xmlSheet->headerFooter["differentOddEven"] == '1')) { + $docHeaderFooter->setDifferentOddEven(true); + } else { + $docHeaderFooter->setDifferentOddEven(false); + } + if (isset($xmlSheet->headerFooter["differentFirst"]) && + ((string)$xmlSheet->headerFooter["differentFirst"] == 'true' || (string)$xmlSheet->headerFooter["differentFirst"] == '1')) { + $docHeaderFooter->setDifferentFirst(true); + } else { + $docHeaderFooter->setDifferentFirst(false); + } + if (isset($xmlSheet->headerFooter["scaleWithDoc"]) && + ((string)$xmlSheet->headerFooter["scaleWithDoc"] == 'false' || (string)$xmlSheet->headerFooter["scaleWithDoc"] == '0')) { + $docHeaderFooter->setScaleWithDocument(false); + } else { + $docHeaderFooter->setScaleWithDocument(true); + } + if (isset($xmlSheet->headerFooter["alignWithMargins"]) && + ((string)$xmlSheet->headerFooter["alignWithMargins"] == 'false' || (string)$xmlSheet->headerFooter["alignWithMargins"] == '0')) { + $docHeaderFooter->setAlignWithMargins(false); + } else { + $docHeaderFooter->setAlignWithMargins(true); + } + + $docHeaderFooter->setOddHeader((string) $xmlSheet->headerFooter->oddHeader); + $docHeaderFooter->setOddFooter((string) $xmlSheet->headerFooter->oddFooter); + $docHeaderFooter->setEvenHeader((string) $xmlSheet->headerFooter->evenHeader); + $docHeaderFooter->setEvenFooter((string) $xmlSheet->headerFooter->evenFooter); + $docHeaderFooter->setFirstHeader((string) $xmlSheet->headerFooter->firstHeader); + $docHeaderFooter->setFirstFooter((string) $xmlSheet->headerFooter->firstFooter); + } + + if ($xmlSheet && $xmlSheet->rowBreaks && $xmlSheet->rowBreaks->brk && !$this->_readDataOnly) { + foreach ($xmlSheet->rowBreaks->brk as $brk) { + if ($brk["man"]) { + $docSheet->setBreak("A$brk[id]", PHPExcel_Worksheet::BREAK_ROW); + } + } + } + if ($xmlSheet && $xmlSheet->colBreaks && $xmlSheet->colBreaks->brk && !$this->_readDataOnly) { + foreach ($xmlSheet->colBreaks->brk as $brk) { + if ($brk["man"]) { + $docSheet->setBreak(PHPExcel_Cell::stringFromColumnIndex((string) $brk["id"]) . "1", PHPExcel_Worksheet::BREAK_COLUMN); + } + } + } + + if ($xmlSheet && $xmlSheet->dataValidations && !$this->_readDataOnly) { + foreach ($xmlSheet->dataValidations->dataValidation as $dataValidation) { + // Uppercase coordinate + $range = strtoupper($dataValidation["sqref"]); + $rangeSet = explode(' ',$range); + foreach($rangeSet as $range) { + $stRange = $docSheet->shrinkRangeToFit($range); + + // Extract all cell references in $range + $aReferences = PHPExcel_Cell::extractAllCellReferencesInRange($stRange); + foreach ($aReferences as $reference) { + // Create validation + $docValidation = $docSheet->getCell($reference)->getDataValidation(); + $docValidation->setType((string) $dataValidation["type"]); + $docValidation->setErrorStyle((string) $dataValidation["errorStyle"]); + $docValidation->setOperator((string) $dataValidation["operator"]); + $docValidation->setAllowBlank($dataValidation["allowBlank"] != 0); + $docValidation->setShowDropDown($dataValidation["showDropDown"] == 0); + $docValidation->setShowInputMessage($dataValidation["showInputMessage"] != 0); + $docValidation->setShowErrorMessage($dataValidation["showErrorMessage"] != 0); + $docValidation->setErrorTitle((string) $dataValidation["errorTitle"]); + $docValidation->setError((string) $dataValidation["error"]); + $docValidation->setPromptTitle((string) $dataValidation["promptTitle"]); + $docValidation->setPrompt((string) $dataValidation["prompt"]); + $docValidation->setFormula1((string) $dataValidation->formula1); + $docValidation->setFormula2((string) $dataValidation->formula2); + } + } + } + } + + // Add hyperlinks + $hyperlinks = array(); + if (!$this->_readDataOnly) { + // Locate hyperlink relations + if ($zip->locateName(dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")) { + $relsWorksheet = simplexml_load_string($this->_getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels") ); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + foreach ($relsWorksheet->Relationship as $ele) { + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink") { + $hyperlinks[(string)$ele["Id"]] = (string)$ele["Target"]; + } + } + } + + // Loop through hyperlinks + if ($xmlSheet && $xmlSheet->hyperlinks) { + foreach ($xmlSheet->hyperlinks->hyperlink as $hyperlink) { + // Link url + $linkRel = $hyperlink->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + + foreach (PHPExcel_Cell::extractAllCellReferencesInRange($hyperlink['ref']) as $cellReference) { + $cell = $docSheet->getCell( $cellReference ); + if (isset($linkRel['id'])) { + $cell->getHyperlink()->setUrl( $hyperlinks[ (string)$linkRel['id'] ] ); + } + if (isset($hyperlink['location'])) { + $cell->getHyperlink()->setUrl( 'sheet://' . (string)$hyperlink['location'] ); + } + + // Tooltip + if (isset($hyperlink['tooltip'])) { + $cell->getHyperlink()->setTooltip( (string)$hyperlink['tooltip'] ); + } + } + } + } + } + + // Add comments + $comments = array(); + $vmlComments = array(); + if (!$this->_readDataOnly) { + // Locate comment relations + if ($zip->locateName(dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")) { + $relsWorksheet = simplexml_load_string($this->_getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels") ); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + foreach ($relsWorksheet->Relationship as $ele) { + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments") { + $comments[(string)$ele["Id"]] = (string)$ele["Target"]; + } + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing") { + $vmlComments[(string)$ele["Id"]] = (string)$ele["Target"]; + } + } + } + + // Loop through comments + foreach ($comments as $relName => $relPath) { + // Load comments file + $relPath = PHPExcel_Shared_File::realpath(dirname("$dir/$fileWorksheet") . "/" . $relPath); + $commentsFile = simplexml_load_string($this->_getFromZipArchive($zip, $relPath) ); + + // Utility variables + $authors = array(); + + // Loop through authors + foreach ($commentsFile->authors->author as $author) { + $authors[] = (string)$author; + } + + // Loop through contents + foreach ($commentsFile->commentList->comment as $comment) { + $docSheet->getComment( (string)$comment['ref'] )->setAuthor( $authors[(string)$comment['authorId']] ); + $docSheet->getComment( (string)$comment['ref'] )->setText( $this->_parseRichText($comment->text) ); + } + } + + // Loop through VML comments + foreach ($vmlComments as $relName => $relPath) { + // Load VML comments file + $relPath = PHPExcel_Shared_File::realpath(dirname("$dir/$fileWorksheet") . "/" . $relPath); + $vmlCommentsFile = simplexml_load_string( $this->_getFromZipArchive($zip, $relPath) ); + $vmlCommentsFile->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); + + $shapes = $vmlCommentsFile->xpath('//v:shape'); + foreach ($shapes as $shape) { + $shape->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); + + if (isset($shape['style'])) { + $style = (string)$shape['style']; + $fillColor = strtoupper( substr( (string)$shape['fillcolor'], 1 ) ); + $column = null; + $row = null; + + $clientData = $shape->xpath('.//x:ClientData'); + if (is_array($clientData) && !empty($clientData)) { + $clientData = $clientData[0]; + + if ( isset($clientData['ObjectType']) && (string)$clientData['ObjectType'] == 'Note' ) { + $temp = $clientData->xpath('.//x:Row'); + if (is_array($temp)) $row = $temp[0]; + + $temp = $clientData->xpath('.//x:Column'); + if (is_array($temp)) $column = $temp[0]; + } + } + + if (($column !== NULL) && ($row !== NULL)) { + // Set comment properties + $comment = $docSheet->getCommentByColumnAndRow((string) $column, $row + 1); + $comment->getFillColor()->setRGB( $fillColor ); + + // Parse style + $styleArray = explode(';', str_replace(' ', '', $style)); + foreach ($styleArray as $stylePair) { + $stylePair = explode(':', $stylePair); + + if ($stylePair[0] == 'margin-left') $comment->setMarginLeft($stylePair[1]); + if ($stylePair[0] == 'margin-top') $comment->setMarginTop($stylePair[1]); + if ($stylePair[0] == 'width') $comment->setWidth($stylePair[1]); + if ($stylePair[0] == 'height') $comment->setHeight($stylePair[1]); + if ($stylePair[0] == 'visibility') $comment->setVisible( $stylePair[1] == 'visible' ); + + } + } + } + } + } + + // Header/footer images + if ($xmlSheet && $xmlSheet->legacyDrawingHF && !$this->_readDataOnly) { + if ($zip->locateName(dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")) { + $relsWorksheet = simplexml_load_string($this->_getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels") ); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + $vmlRelationship = ''; + + foreach ($relsWorksheet->Relationship as $ele) { + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing") { + $vmlRelationship = self::dir_add("$dir/$fileWorksheet", $ele["Target"]); + } + } + + if ($vmlRelationship != '') { + // Fetch linked images + $relsVML = simplexml_load_string($this->_getFromZipArchive($zip, dirname($vmlRelationship) . '/_rels/' . basename($vmlRelationship) . '.rels' )); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + $drawings = array(); + foreach ($relsVML->Relationship as $ele) { + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image") { + $drawings[(string) $ele["Id"]] = self::dir_add($vmlRelationship, $ele["Target"]); + } + } + + // Fetch VML document + $vmlDrawing = simplexml_load_string($this->_getFromZipArchive($zip, $vmlRelationship)); + $vmlDrawing->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); + + $hfImages = array(); + + $shapes = $vmlDrawing->xpath('//v:shape'); + foreach ($shapes as $shape) { + $shape->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); + $imageData = $shape->xpath('//v:imagedata'); + $imageData = $imageData[0]; + + $imageData = $imageData->attributes('urn:schemas-microsoft-com:office:office'); + $style = self::toCSSArray( (string)$shape['style'] ); + + $hfImages[ (string)$shape['id'] ] = new PHPExcel_Worksheet_HeaderFooterDrawing(); + if (isset($imageData['title'])) { + $hfImages[ (string)$shape['id'] ]->setName( (string)$imageData['title'] ); + } + + $hfImages[ (string)$shape['id'] ]->setPath("zip://$pFilename#" . $drawings[(string)$imageData['relid']], false); + $hfImages[ (string)$shape['id'] ]->setResizeProportional(false); + $hfImages[ (string)$shape['id'] ]->setWidth($style['width']); + $hfImages[ (string)$shape['id'] ]->setHeight($style['height']); + $hfImages[ (string)$shape['id'] ]->setOffsetX($style['margin-left']); + $hfImages[ (string)$shape['id'] ]->setOffsetY($style['margin-top']); + $hfImages[ (string)$shape['id'] ]->setResizeProportional(true); + } + + $docSheet->getHeaderFooter()->setImages($hfImages); + } + } + } + + } + +// TODO: Autoshapes from twoCellAnchors! + if ($zip->locateName(dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")) { + $relsWorksheet = simplexml_load_string($this->_getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels") ); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + $drawings = array(); + foreach ($relsWorksheet->Relationship as $ele) { + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing") { + $drawings[(string) $ele["Id"]] = self::dir_add("$dir/$fileWorksheet", $ele["Target"]); + } + } + if ($xmlSheet->drawing && !$this->_readDataOnly) { + foreach ($xmlSheet->drawing as $drawing) { + $fileDrawing = $drawings[(string) self::array_item($drawing->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "id")]; + $relsDrawing = simplexml_load_string($this->_getFromZipArchive($zip, dirname($fileDrawing) . "/_rels/" . basename($fileDrawing) . ".rels") ); //~ http://schemas.openxmlformats.org/package/2006/relationships"); + $images = array(); + + if ($relsDrawing && $relsDrawing->Relationship) { + foreach ($relsDrawing->Relationship as $ele) { + if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image") { + $images[(string) $ele["Id"]] = self::dir_add($fileDrawing, $ele["Target"]); + } elseif ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart") { + if ($this->_includeCharts) { + $charts[self::dir_add($fileDrawing, $ele["Target"])] = array('id' => (string) $ele["Id"], + 'sheet' => $docSheet->getTitle() + ); + } + } + } + } + $xmlDrawing = simplexml_load_string($this->_getFromZipArchive($zip, $fileDrawing))->children("http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"); + + if ($xmlDrawing->oneCellAnchor) { + foreach ($xmlDrawing->oneCellAnchor as $oneCellAnchor) { + if ($oneCellAnchor->pic->blipFill) { + $blip = $oneCellAnchor->pic->blipFill->children("http://schemas.openxmlformats.org/drawingml/2006/main")->blip; + $xfrm = $oneCellAnchor->pic->spPr->children("http://schemas.openxmlformats.org/drawingml/2006/main")->xfrm; + $outerShdw = $oneCellAnchor->pic->spPr->children("http://schemas.openxmlformats.org/drawingml/2006/main")->effectLst->outerShdw; + $objDrawing = new PHPExcel_Worksheet_Drawing; + $objDrawing->setName((string) self::array_item($oneCellAnchor->pic->nvPicPr->cNvPr->attributes(), "name")); + $objDrawing->setDescription((string) self::array_item($oneCellAnchor->pic->nvPicPr->cNvPr->attributes(), "descr")); + $objDrawing->setPath("zip://$pFilename#" . $images[(string) self::array_item($blip->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "embed")], false); + $objDrawing->setCoordinates(PHPExcel_Cell::stringFromColumnIndex((string) $oneCellAnchor->from->col) . ($oneCellAnchor->from->row + 1)); + $objDrawing->setOffsetX(PHPExcel_Shared_Drawing::EMUToPixels($oneCellAnchor->from->colOff)); + $objDrawing->setOffsetY(PHPExcel_Shared_Drawing::EMUToPixels($oneCellAnchor->from->rowOff)); + $objDrawing->setResizeProportional(false); + $objDrawing->setWidth(PHPExcel_Shared_Drawing::EMUToPixels(self::array_item($oneCellAnchor->ext->attributes(), "cx"))); + $objDrawing->setHeight(PHPExcel_Shared_Drawing::EMUToPixels(self::array_item($oneCellAnchor->ext->attributes(), "cy"))); + if ($xfrm) { + $objDrawing->setRotation(PHPExcel_Shared_Drawing::angleToDegrees(self::array_item($xfrm->attributes(), "rot"))); + } + if ($outerShdw) { + $shadow = $objDrawing->getShadow(); + $shadow->setVisible(true); + $shadow->setBlurRadius(PHPExcel_Shared_Drawing::EMUTopixels(self::array_item($outerShdw->attributes(), "blurRad"))); + $shadow->setDistance(PHPExcel_Shared_Drawing::EMUTopixels(self::array_item($outerShdw->attributes(), "dist"))); + $shadow->setDirection(PHPExcel_Shared_Drawing::angleToDegrees(self::array_item($outerShdw->attributes(), "dir"))); + $shadow->setAlignment((string) self::array_item($outerShdw->attributes(), "algn")); + $shadow->getColor()->setRGB(self::array_item($outerShdw->srgbClr->attributes(), "val")); + $shadow->setAlpha(self::array_item($outerShdw->srgbClr->alpha->attributes(), "val") / 1000); + } + $objDrawing->setWorksheet($docSheet); + } else { + // ? Can charts be positioned with a oneCellAnchor ? + $coordinates = PHPExcel_Cell::stringFromColumnIndex((string) $oneCellAnchor->from->col) . ($oneCellAnchor->from->row + 1); + $offsetX = PHPExcel_Shared_Drawing::EMUToPixels($oneCellAnchor->from->colOff); + $offsetY = PHPExcel_Shared_Drawing::EMUToPixels($oneCellAnchor->from->rowOff); + $width = PHPExcel_Shared_Drawing::EMUToPixels(self::array_item($oneCellAnchor->ext->attributes(), "cx")); + $height = PHPExcel_Shared_Drawing::EMUToPixels(self::array_item($oneCellAnchor->ext->attributes(), "cy")); + } + } + } + if ($xmlDrawing->twoCellAnchor) { + foreach ($xmlDrawing->twoCellAnchor as $twoCellAnchor) { + if ($twoCellAnchor->pic->blipFill) { + $blip = $twoCellAnchor->pic->blipFill->children("http://schemas.openxmlformats.org/drawingml/2006/main")->blip; + $xfrm = $twoCellAnchor->pic->spPr->children("http://schemas.openxmlformats.org/drawingml/2006/main")->xfrm; + $outerShdw = $twoCellAnchor->pic->spPr->children("http://schemas.openxmlformats.org/drawingml/2006/main")->effectLst->outerShdw; + $objDrawing = new PHPExcel_Worksheet_Drawing; + $objDrawing->setName((string) self::array_item($twoCellAnchor->pic->nvPicPr->cNvPr->attributes(), "name")); + $objDrawing->setDescription((string) self::array_item($twoCellAnchor->pic->nvPicPr->cNvPr->attributes(), "descr")); + $objDrawing->setPath("zip://$pFilename#" . $images[(string) self::array_item($blip->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "embed")], false); + $objDrawing->setCoordinates(PHPExcel_Cell::stringFromColumnIndex((string) $twoCellAnchor->from->col) . ($twoCellAnchor->from->row + 1)); + $objDrawing->setOffsetX(PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->from->colOff)); + $objDrawing->setOffsetY(PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->from->rowOff)); + $objDrawing->setResizeProportional(false); + + $objDrawing->setWidth(PHPExcel_Shared_Drawing::EMUToPixels(self::array_item($xfrm->ext->attributes(), "cx"))); + $objDrawing->setHeight(PHPExcel_Shared_Drawing::EMUToPixels(self::array_item($xfrm->ext->attributes(), "cy"))); + + if ($xfrm) { + $objDrawing->setRotation(PHPExcel_Shared_Drawing::angleToDegrees(self::array_item($xfrm->attributes(), "rot"))); + } + if ($outerShdw) { + $shadow = $objDrawing->getShadow(); + $shadow->setVisible(true); + $shadow->setBlurRadius(PHPExcel_Shared_Drawing::EMUTopixels(self::array_item($outerShdw->attributes(), "blurRad"))); + $shadow->setDistance(PHPExcel_Shared_Drawing::EMUTopixels(self::array_item($outerShdw->attributes(), "dist"))); + $shadow->setDirection(PHPExcel_Shared_Drawing::angleToDegrees(self::array_item($outerShdw->attributes(), "dir"))); + $shadow->setAlignment((string) self::array_item($outerShdw->attributes(), "algn")); + $shadow->getColor()->setRGB(self::array_item($outerShdw->srgbClr->attributes(), "val")); + $shadow->setAlpha(self::array_item($outerShdw->srgbClr->alpha->attributes(), "val") / 1000); + } + $objDrawing->setWorksheet($docSheet); + } elseif(($this->_includeCharts) && ($twoCellAnchor->graphicFrame)) { + $fromCoordinate = PHPExcel_Cell::stringFromColumnIndex((string) $twoCellAnchor->from->col) . ($twoCellAnchor->from->row + 1); + $fromOffsetX = PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->from->colOff); + $fromOffsetY = PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->from->rowOff); + $toCoordinate = PHPExcel_Cell::stringFromColumnIndex((string) $twoCellAnchor->to->col) . ($twoCellAnchor->to->row + 1); + $toOffsetX = PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->to->colOff); + $toOffsetY = PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->to->rowOff); + $graphic = $twoCellAnchor->graphicFrame->children("http://schemas.openxmlformats.org/drawingml/2006/main")->graphic; + $chartRef = $graphic->graphicData->children("http://schemas.openxmlformats.org/drawingml/2006/chart")->chart; + $thisChart = (string) $chartRef->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"); + + $chartDetails[$docSheet->getTitle().'!'.$thisChart] = + array( 'fromCoordinate' => $fromCoordinate, + 'fromOffsetX' => $fromOffsetX, + 'fromOffsetY' => $fromOffsetY, + 'toCoordinate' => $toCoordinate, + 'toOffsetX' => $toOffsetX, + 'toOffsetY' => $toOffsetY, + 'worksheetTitle' => $docSheet->getTitle() + ); + } + } + } + + } + } + } + + // Loop through definedNames + if ($xmlWorkbook->definedNames) { + foreach ($xmlWorkbook->definedNames->definedName as $definedName) { + // Extract range + $extractedRange = (string)$definedName; + $extractedRange = preg_replace('/\'(\w+)\'\!/', '', $extractedRange); + if (($spos = strpos($extractedRange,'!')) !== false) { + $extractedRange = substr($extractedRange,0,$spos).str_replace('$', '', substr($extractedRange,$spos)); + } else { + $extractedRange = str_replace('$', '', $extractedRange); + } + + // Valid range? + if (stripos((string)$definedName, '#REF!') !== FALSE || $extractedRange == '') { + continue; + } + + // Some definedNames are only applicable if we are on the same sheet... + if ((string)$definedName['localSheetId'] != '' && (string)$definedName['localSheetId'] == $sheetId) { + // Switch on type + switch ((string)$definedName['name']) { + + case '_xlnm._FilterDatabase': + if ((string)$definedName['hidden'] !== '1') { + $docSheet->getAutoFilter()->setRange($extractedRange); + } + break; + + case '_xlnm.Print_Titles': + // Split $extractedRange + $extractedRange = explode(',', $extractedRange); + + // Set print titles + foreach ($extractedRange as $range) { + $matches = array(); + + // check for repeating columns, e g. 'A:A' or 'A:D' + if (preg_match('/^([A-Z]+)\:([A-Z]+)$/', $range, $matches)) { + $docSheet->getPageSetup()->setColumnsToRepeatAtLeft(array($matches[1], $matches[2])); + } + // check for repeating rows, e.g. '1:1' or '1:5' + elseif (preg_match('/^(\d+)\:(\d+)$/', $range, $matches)) { + $docSheet->getPageSetup()->setRowsToRepeatAtTop(array($matches[1], $matches[2])); + } + } + break; + + case '_xlnm.Print_Area': + $rangeSets = explode(',', $extractedRange); // FIXME: what if sheetname contains comma? + $newRangeSets = array(); + foreach($rangeSets as $rangeSet) { + $range = explode('!', $rangeSet); // FIXME: what if sheetname contains exclamation mark? + $rangeSet = isset($range[1]) ? $range[1] : $range[0]; + $newRangeSets[] = str_replace('$', '', $rangeSet); + } + $docSheet->getPageSetup()->setPrintArea(implode(',',$newRangeSets)); + break; + + default: + break; + } + } + } + } + + // Next sheet id + ++$sheetId; + } + + // Loop through definedNames + if ($xmlWorkbook->definedNames) { + foreach ($xmlWorkbook->definedNames->definedName as $definedName) { + // Extract range + $extractedRange = (string)$definedName; + $extractedRange = preg_replace('/\'(\w+)\'\!/', '', $extractedRange); + if (($spos = strpos($extractedRange,'!')) !== false) { + $extractedRange = substr($extractedRange,0,$spos).str_replace('$', '', substr($extractedRange,$spos)); + } else { + $extractedRange = str_replace('$', '', $extractedRange); + } + + // Valid range? + if (stripos((string)$definedName, '#REF!') !== false || $extractedRange == '') { + continue; + } + + // Some definedNames are only applicable if we are on the same sheet... + if ((string)$definedName['localSheetId'] != '') { + // Local defined name + // Switch on type + switch ((string)$definedName['name']) { + + case '_xlnm._FilterDatabase': + case '_xlnm.Print_Titles': + case '_xlnm.Print_Area': + break; + + default: + $range = explode('!', (string)$definedName); + if (count($range) == 2) { + $range[0] = str_replace("''", "'", $range[0]); + $range[0] = str_replace("'", "", $range[0]); + if ($worksheet = $docSheet->getParent()->getSheetByName($range[0])) { + $extractedRange = str_replace('$', '', $range[1]); + $scope = $docSheet->getParent()->getSheet((string)$definedName['localSheetId']); + + $excel->addNamedRange( new PHPExcel_NamedRange((string)$definedName['name'], $worksheet, $extractedRange, true, $scope) ); + } + } + break; + } + } else if (!isset($definedName['localSheetId'])) { + // "Global" definedNames + $locatedSheet = null; + $extractedSheetName = ''; + if (strpos( (string)$definedName, '!' ) !== false) { + // Extract sheet name + $extractedSheetName = PHPExcel_Worksheet::extractSheetTitle( (string)$definedName, true ); + $extractedSheetName = $extractedSheetName[0]; + + // Locate sheet + $locatedSheet = $excel->getSheetByName($extractedSheetName); + + // Modify range + $range = explode('!', $extractedRange); + $extractedRange = isset($range[1]) ? $range[1] : $range[0]; + } + + if ($locatedSheet !== NULL) { + $excel->addNamedRange( new PHPExcel_NamedRange((string)$definedName['name'], $locatedSheet, $extractedRange, false) ); + } + } + } + } + } + + if (!$this->_readDataOnly) { + // active sheet index + $activeTab = intval($xmlWorkbook->bookViews->workbookView["activeTab"]); // refers to old sheet index + + // keep active sheet index if sheet is still loaded, else first sheet is set as the active + if (isset($mapSheetId[$activeTab]) && $mapSheetId[$activeTab] !== null) { + $excel->setActiveSheetIndex($mapSheetId[$activeTab]); + } else { + if ($excel->getSheetCount() == 0) { + $excel->createSheet(); + } + $excel->setActiveSheetIndex(0); + } + } + break; + } + + } + + + if (!$this->_readDataOnly) { + $contentTypes = simplexml_load_string($this->_getFromZipArchive($zip, "[Content_Types].xml")); + foreach ($contentTypes->Override as $contentType) { + switch ($contentType["ContentType"]) { + case "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": + if ($this->_includeCharts) { + $chartEntryRef = ltrim($contentType['PartName'],'/'); + $chartElements = simplexml_load_string($this->_getFromZipArchive($zip, $chartEntryRef)); + $objChart = PHPExcel_Reader_Excel2007_Chart::readChart($chartElements,basename($chartEntryRef,'.xml')); + +// echo 'Chart ',$chartEntryRef,'
'; +// var_dump($charts[$chartEntryRef]); +// + if (isset($charts[$chartEntryRef])) { + $chartPositionRef = $charts[$chartEntryRef]['sheet'].'!'.$charts[$chartEntryRef]['id']; +// echo 'Position Ref ',$chartPositionRef,'
'; + if (isset($chartDetails[$chartPositionRef])) { +// var_dump($chartDetails[$chartPositionRef]); + + $excel->getSheetByName($charts[$chartEntryRef]['sheet'])->addChart($objChart); + $objChart->setWorksheet($excel->getSheetByName($charts[$chartEntryRef]['sheet'])); + $objChart->setTopLeftPosition( $chartDetails[$chartPositionRef]['fromCoordinate'], + $chartDetails[$chartPositionRef]['fromOffsetX'], + $chartDetails[$chartPositionRef]['fromOffsetY'] + ); + $objChart->setBottomRightPosition( $chartDetails[$chartPositionRef]['toCoordinate'], + $chartDetails[$chartPositionRef]['toOffsetX'], + $chartDetails[$chartPositionRef]['toOffsetY'] + ); + } + } + } + } + } + } + + $zip->close(); + + return $excel; + } + + + private static function _readColor($color, $background=FALSE) { + if (isset($color["rgb"])) { + return (string)$color["rgb"]; + } else if (isset($color["indexed"])) { + return PHPExcel_Style_Color::indexedColor($color["indexed"]-7,$background)->getARGB(); + } else if (isset($color["theme"])) { + if (self::$_theme !== NULL) { + $returnColour = self::$_theme->getColourByIndex((int)$color["theme"]); + if (isset($color["tint"])) { + $tintAdjust = (float) $color["tint"]; + $returnColour = PHPExcel_Style_Color::changeBrightness($returnColour, $tintAdjust); + } + return 'FF'.$returnColour; + } + } + + if ($background) { + return 'FFFFFFFF'; + } + return 'FF000000'; + } + + + private static function _readStyle($docStyle, $style) { + // format code +// if (isset($style->numFmt)) { +// if (isset($style->numFmt['formatCode'])) { +// $docStyle->getNumberFormat()->setFormatCode((string) $style->numFmt['formatCode']); +// } else { + $docStyle->getNumberFormat()->setFormatCode($style->numFmt); +// } +// } + + // font + if (isset($style->font)) { + $docStyle->getFont()->setName((string) $style->font->name["val"]); + $docStyle->getFont()->setSize((string) $style->font->sz["val"]); + if (isset($style->font->b)) { + $docStyle->getFont()->setBold(!isset($style->font->b["val"]) || $style->font->b["val"] == 'true' || $style->font->b["val"] == '1'); + } + if (isset($style->font->i)) { + $docStyle->getFont()->setItalic(!isset($style->font->i["val"]) || $style->font->i["val"] == 'true' || $style->font->i["val"] == '1'); + } + if (isset($style->font->strike)) { + $docStyle->getFont()->setStrikethrough(!isset($style->font->strike["val"]) || $style->font->strike["val"] == 'true' || $style->font->strike["val"] == '1'); + } + $docStyle->getFont()->getColor()->setARGB(self::_readColor($style->font->color)); + + if (isset($style->font->u) && !isset($style->font->u["val"])) { + $docStyle->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); + } else if (isset($style->font->u) && isset($style->font->u["val"])) { + $docStyle->getFont()->setUnderline((string)$style->font->u["val"]); + } + + if (isset($style->font->vertAlign) && isset($style->font->vertAlign["val"])) { + $vertAlign = strtolower((string)$style->font->vertAlign["val"]); + if ($vertAlign == 'superscript') { + $docStyle->getFont()->setSuperScript(true); + } + if ($vertAlign == 'subscript') { + $docStyle->getFont()->setSubScript(true); + } + } + } + + // fill + if (isset($style->fill)) { + if ($style->fill->gradientFill) { + $gradientFill = $style->fill->gradientFill[0]; + if(!empty($gradientFill["type"])) { + $docStyle->getFill()->setFillType((string) $gradientFill["type"]); + } + $docStyle->getFill()->setRotation(floatval($gradientFill["degree"])); + $gradientFill->registerXPathNamespace("sml", "http://schemas.openxmlformats.org/spreadsheetml/2006/main"); + $docStyle->getFill()->getStartColor()->setARGB(self::_readColor( self::array_item($gradientFill->xpath("sml:stop[@position=0]"))->color) ); + $docStyle->getFill()->getEndColor()->setARGB(self::_readColor( self::array_item($gradientFill->xpath("sml:stop[@position=1]"))->color) ); + } elseif ($style->fill->patternFill) { + $patternType = (string)$style->fill->patternFill["patternType"] != '' ? (string)$style->fill->patternFill["patternType"] : 'solid'; + $docStyle->getFill()->setFillType($patternType); + if ($style->fill->patternFill->fgColor) { + $docStyle->getFill()->getStartColor()->setARGB(self::_readColor($style->fill->patternFill->fgColor,true)); + } else { + $docStyle->getFill()->getStartColor()->setARGB('FF000000'); + } + if ($style->fill->patternFill->bgColor) { + $docStyle->getFill()->getEndColor()->setARGB(self::_readColor($style->fill->patternFill->bgColor,true)); + } + } + } + + // border + if (isset($style->border)) { + $diagonalUp = false; + $diagonalDown = false; + if ($style->border["diagonalUp"] == 'true' || $style->border["diagonalUp"] == 1) { + $diagonalUp = true; + } + if ($style->border["diagonalDown"] == 'true' || $style->border["diagonalDown"] == 1) { + $diagonalDown = true; + } + if ($diagonalUp == false && $diagonalDown == false) { + $docStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_NONE); + } elseif ($diagonalUp == true && $diagonalDown == false) { + $docStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_UP); + } elseif ($diagonalUp == false && $diagonalDown == true) { + $docStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_DOWN); + } elseif ($diagonalUp == true && $diagonalDown == true) { + $docStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_BOTH); + } + self::_readBorder($docStyle->getBorders()->getLeft(), $style->border->left); + self::_readBorder($docStyle->getBorders()->getRight(), $style->border->right); + self::_readBorder($docStyle->getBorders()->getTop(), $style->border->top); + self::_readBorder($docStyle->getBorders()->getBottom(), $style->border->bottom); + self::_readBorder($docStyle->getBorders()->getDiagonal(), $style->border->diagonal); + } + + // alignment + if (isset($style->alignment)) { + $docStyle->getAlignment()->setHorizontal((string) $style->alignment["horizontal"]); + $docStyle->getAlignment()->setVertical((string) $style->alignment["vertical"]); + + $textRotation = 0; + if ((int)$style->alignment["textRotation"] <= 90) { + $textRotation = (int)$style->alignment["textRotation"]; + } else if ((int)$style->alignment["textRotation"] > 90) { + $textRotation = 90 - (int)$style->alignment["textRotation"]; + } + + $docStyle->getAlignment()->setTextRotation(intval($textRotation)); + $docStyle->getAlignment()->setWrapText( (string)$style->alignment["wrapText"] == "true" || (string)$style->alignment["wrapText"] == "1" ); + $docStyle->getAlignment()->setShrinkToFit( (string)$style->alignment["shrinkToFit"] == "true" || (string)$style->alignment["shrinkToFit"] == "1" ); + $docStyle->getAlignment()->setIndent( intval((string)$style->alignment["indent"]) > 0 ? intval((string)$style->alignment["indent"]) : 0 ); + } + + // protection + if (isset($style->protection)) { + if (isset($style->protection['locked'])) { + if ((string)$style->protection['locked'] == 'true') { + $docStyle->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_PROTECTED); + } else { + $docStyle->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); + } + } + + if (isset($style->protection['hidden'])) { + if ((string)$style->protection['hidden'] == 'true') { + $docStyle->getProtection()->setHidden(PHPExcel_Style_Protection::PROTECTION_PROTECTED); + } else { + $docStyle->getProtection()->setHidden(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); + } + } + } + } + + + private static function _readBorder($docBorder, $eleBorder) { + if (isset($eleBorder["style"])) { + $docBorder->setBorderStyle((string) $eleBorder["style"]); + } + if (isset($eleBorder->color)) { + $docBorder->getColor()->setARGB(self::_readColor($eleBorder->color)); + } + } + + + private function _parseRichText($is = null) { + $value = new PHPExcel_RichText(); + + if (isset($is->t)) { + $value->createText( PHPExcel_Shared_String::ControlCharacterOOXML2PHP( (string) $is->t ) ); + } else { + foreach ($is->r as $run) { + if (!isset($run->rPr)) { + $objText = $value->createText( PHPExcel_Shared_String::ControlCharacterOOXML2PHP( (string) $run->t ) ); + + } else { + $objText = $value->createTextRun( PHPExcel_Shared_String::ControlCharacterOOXML2PHP( (string) $run->t ) ); + + if (isset($run->rPr->rFont["val"])) { + $objText->getFont()->setName((string) $run->rPr->rFont["val"]); + } + + if (isset($run->rPr->sz["val"])) { + $objText->getFont()->setSize((string) $run->rPr->sz["val"]); + } + + if (isset($run->rPr->color)) { + $objText->getFont()->setColor( new PHPExcel_Style_Color( self::_readColor($run->rPr->color) ) ); + } + + if ( (isset($run->rPr->b["val"]) && ((string) $run->rPr->b["val"] == 'true' || (string) $run->rPr->b["val"] == '1')) + || (isset($run->rPr->b) && !isset($run->rPr->b["val"])) ) { + $objText->getFont()->setBold(true); + } + + if ( (isset($run->rPr->i["val"]) && ((string) $run->rPr->i["val"] == 'true' || (string) $run->rPr->i["val"] == '1')) + || (isset($run->rPr->i) && !isset($run->rPr->i["val"])) ) { + $objText->getFont()->setItalic(true); + } + + if (isset($run->rPr->vertAlign) && isset($run->rPr->vertAlign["val"])) { + $vertAlign = strtolower((string)$run->rPr->vertAlign["val"]); + if ($vertAlign == 'superscript') { + $objText->getFont()->setSuperScript(true); + } + if ($vertAlign == 'subscript') { + $objText->getFont()->setSubScript(true); + } + } + + if (isset($run->rPr->u) && !isset($run->rPr->u["val"])) { + $objText->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); + } else if (isset($run->rPr->u) && isset($run->rPr->u["val"])) { + $objText->getFont()->setUnderline((string)$run->rPr->u["val"]); + } + + if ( (isset($run->rPr->strike["val"]) && ((string) $run->rPr->strike["val"] == 'true' || (string) $run->rPr->strike["val"] == '1')) + || (isset($run->rPr->strike) && !isset($run->rPr->strike["val"])) ) { + $objText->getFont()->setStrikethrough(true); + } + } + } + } + + return $value; + } + + + private static function array_item($array, $key = 0) { + return (isset($array[$key]) ? $array[$key] : null); + } + + + private static function dir_add($base, $add) { + return preg_replace('~[^/]+/\.\./~', '', dirname($base) . "/$add"); + } + + + private static function toCSSArray($style) { + $style = str_replace(array("\r","\n"), "", $style); + + $temp = explode(';', $style); + $style = array(); + foreach ($temp as $item) { + $item = explode(':', $item); + + if (strpos($item[1], 'px') !== false) { + $item[1] = str_replace('px', '', $item[1]); + } + if (strpos($item[1], 'pt') !== false) { + $item[1] = str_replace('pt', '', $item[1]); + $item[1] = PHPExcel_Shared_Font::fontSizeToPixels($item[1]); + } + if (strpos($item[1], 'in') !== false) { + $item[1] = str_replace('in', '', $item[1]); + $item[1] = PHPExcel_Shared_Font::inchSizeToPixels($item[1]); + } + if (strpos($item[1], 'cm') !== false) { + $item[1] = str_replace('cm', '', $item[1]); + $item[1] = PHPExcel_Shared_Font::centimeterSizeToPixels($item[1]); + } + + $style[$item[0]] = $item[1]; + } + + return $style; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007/Chart.php b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007/Chart.php new file mode 100755 index 0000000..f4d38bd --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007/Chart.php @@ -0,0 +1,513 @@ +attributes(); + if (isset($attributes[$name])) { + if ($format == 'string') { + return (string) $attributes[$name]; + } elseif ($format == 'integer') { + return (integer) $attributes[$name]; + } elseif ($format == 'boolean') { + return (boolean) ($attributes[$name] == '0') ? false : true; + } else { + return (float) $attributes[$name]; + } + } + return null; + } // function _getAttribute() + + + private static function _readColor($color,$background=false) { + if (isset($color["rgb"])) { + return (string)$color["rgb"]; + } else if (isset($color["indexed"])) { + return PHPExcel_Style_Color::indexedColor($color["indexed"]-7,$background)->getARGB(); + } + } + + + public static function readChart($chartElements,$chartName) { + $namespacesChartMeta = $chartElements->getNamespaces(true); + $chartElementsC = $chartElements->children($namespacesChartMeta['c']); + + $XaxisLabel = $YaxisLabel = $legend = $title = NULL; + $dispBlanksAs = $plotVisOnly = NULL; + + foreach($chartElementsC as $chartElementKey => $chartElement) { + switch ($chartElementKey) { + case "chart": + foreach($chartElement as $chartDetailsKey => $chartDetails) { + $chartDetailsC = $chartDetails->children($namespacesChartMeta['c']); + switch ($chartDetailsKey) { + case "plotArea": + $plotAreaLayout = $XaxisLable = $YaxisLable = null; + $plotSeries = $plotAttributes = array(); + foreach($chartDetails as $chartDetailKey => $chartDetail) { + switch ($chartDetailKey) { + case "layout": + $plotAreaLayout = self::_chartLayoutDetails($chartDetail,$namespacesChartMeta,'plotArea'); + break; + case "catAx": + if (isset($chartDetail->title)) { + $XaxisLabel = self::_chartTitle($chartDetail->title->children($namespacesChartMeta['c']),$namespacesChartMeta,'cat'); + } + break; + case "dateAx": + if (isset($chartDetail->title)) { + $XaxisLabel = self::_chartTitle($chartDetail->title->children($namespacesChartMeta['c']),$namespacesChartMeta,'cat'); + } + break; + case "valAx": + if (isset($chartDetail->title)) { + $YaxisLabel = self::_chartTitle($chartDetail->title->children($namespacesChartMeta['c']),$namespacesChartMeta,'cat'); + } + break; + case "barChart": + case "bar3DChart": + $barDirection = self::_getAttribute($chartDetail->barDir, 'val', 'string'); + $plotSer = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotSer->setPlotDirection($barDirection); + $plotSeries[] = $plotSer; + $plotAttributes = self::_readChartAttributes($chartDetail); + break; + case "lineChart": + case "line3DChart": + $plotSeries[] = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotAttributes = self::_readChartAttributes($chartDetail); + break; + case "areaChart": + case "area3DChart": + $plotSeries[] = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotAttributes = self::_readChartAttributes($chartDetail); + break; + case "doughnutChart": + case "pieChart": + case "pie3DChart": + $explosion = isset($chartDetail->ser->explosion); + $plotSer = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotSer->setPlotStyle($explosion); + $plotSeries[] = $plotSer; + $plotAttributes = self::_readChartAttributes($chartDetail); + break; + case "scatterChart": + $scatterStyle = self::_getAttribute($chartDetail->scatterStyle, 'val', 'string'); + $plotSer = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotSer->setPlotStyle($scatterStyle); + $plotSeries[] = $plotSer; + $plotAttributes = self::_readChartAttributes($chartDetail); + break; + case "bubbleChart": + $bubbleScale = self::_getAttribute($chartDetail->bubbleScale, 'val', 'integer'); + $plotSer = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotSer->setPlotStyle($bubbleScale); + $plotSeries[] = $plotSer; + $plotAttributes = self::_readChartAttributes($chartDetail); + break; + case "radarChart": + $radarStyle = self::_getAttribute($chartDetail->radarStyle, 'val', 'string'); + $plotSer = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotSer->setPlotStyle($radarStyle); + $plotSeries[] = $plotSer; + $plotAttributes = self::_readChartAttributes($chartDetail); + break; + case "surfaceChart": + case "surface3DChart": + $wireFrame = self::_getAttribute($chartDetail->wireframe, 'val', 'boolean'); + $plotSer = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotSer->setPlotStyle($wireFrame); + $plotSeries[] = $plotSer; + $plotAttributes = self::_readChartAttributes($chartDetail); + break; + case "stockChart": + $plotSeries[] = self::_chartDataSeries($chartDetail,$namespacesChartMeta,$chartDetailKey); + $plotAttributes = self::_readChartAttributes($plotAreaLayout); + break; + } + } + if ($plotAreaLayout == NULL) { + $plotAreaLayout = new PHPExcel_Chart_Layout(); + } + $plotArea = new PHPExcel_Chart_PlotArea($plotAreaLayout,$plotSeries); + self::_setChartAttributes($plotAreaLayout,$plotAttributes); + break; + case "plotVisOnly": + $plotVisOnly = self::_getAttribute($chartDetails, 'val', 'string'); + break; + case "dispBlanksAs": + $dispBlanksAs = self::_getAttribute($chartDetails, 'val', 'string'); + break; + case "title": + $title = self::_chartTitle($chartDetails,$namespacesChartMeta,'title'); + break; + case "legend": + $legendPos = 'r'; + $legendLayout = null; + $legendOverlay = false; + foreach($chartDetails as $chartDetailKey => $chartDetail) { + switch ($chartDetailKey) { + case "legendPos": + $legendPos = self::_getAttribute($chartDetail, 'val', 'string'); + break; + case "overlay": + $legendOverlay = self::_getAttribute($chartDetail, 'val', 'boolean'); + break; + case "layout": + $legendLayout = self::_chartLayoutDetails($chartDetail,$namespacesChartMeta,'legend'); + break; + } + } + $legend = new PHPExcel_Chart_Legend($legendPos, $legendLayout, $legendOverlay); + break; + } + } + } + } + $chart = new PHPExcel_Chart($chartName,$title,$legend,$plotArea,$plotVisOnly,$dispBlanksAs,$XaxisLabel,$YaxisLabel); + + return $chart; + } // function readChart() + + + private static function _chartTitle($titleDetails,$namespacesChartMeta,$type) { + $caption = array(); + $titleLayout = null; + foreach($titleDetails as $titleDetailKey => $chartDetail) { + switch ($titleDetailKey) { + case "tx": + $titleDetails = $chartDetail->rich->children($namespacesChartMeta['a']); + foreach($titleDetails as $titleKey => $titleDetail) { + switch ($titleKey) { + case "p": + $titleDetailPart = $titleDetail->children($namespacesChartMeta['a']); + $caption[] = self::_parseRichText($titleDetailPart); + } + } + break; + case "layout": + $titleLayout = self::_chartLayoutDetails($chartDetail,$namespacesChartMeta); + break; + } + } + + return new PHPExcel_Chart_Title($caption, $titleLayout); + } // function _chartTitle() + + + private static function _chartLayoutDetails($chartDetail,$namespacesChartMeta) { + if (!isset($chartDetail->manualLayout)) { + return null; + } + $details = $chartDetail->manualLayout->children($namespacesChartMeta['c']); + if (is_null($details)) { + return null; + } + $layout = array(); + foreach($details as $detailKey => $detail) { +// echo $detailKey,' => ',self::_getAttribute($detail, 'val', 'string'),PHP_EOL; + $layout[$detailKey] = self::_getAttribute($detail, 'val', 'string'); + } + return new PHPExcel_Chart_Layout($layout); + } // function _chartLayoutDetails() + + + private static function _chartDataSeries($chartDetail,$namespacesChartMeta,$plotType) { + $multiSeriesType = NULL; + $smoothLine = false; + $seriesLabel = $seriesCategory = $seriesValues = $plotOrder = array(); + + $seriesDetailSet = $chartDetail->children($namespacesChartMeta['c']); + foreach($seriesDetailSet as $seriesDetailKey => $seriesDetails) { + switch ($seriesDetailKey) { + case "grouping": + $multiSeriesType = self::_getAttribute($chartDetail->grouping, 'val', 'string'); + break; + case "ser": + $marker = NULL; + foreach($seriesDetails as $seriesKey => $seriesDetail) { + switch ($seriesKey) { + case "idx": + $seriesIndex = self::_getAttribute($seriesDetail, 'val', 'integer'); + break; + case "order": + $seriesOrder = self::_getAttribute($seriesDetail, 'val', 'integer'); + $plotOrder[$seriesIndex] = $seriesOrder; + break; + case "tx": + $seriesLabel[$seriesIndex] = self::_chartDataSeriesValueSet($seriesDetail,$namespacesChartMeta); + break; + case "marker": + $marker = self::_getAttribute($seriesDetail->symbol, 'val', 'string'); + break; + case "smooth": + $smoothLine = self::_getAttribute($seriesDetail, 'val', 'boolean'); + break; + case "cat": + $seriesCategory[$seriesIndex] = self::_chartDataSeriesValueSet($seriesDetail,$namespacesChartMeta); + break; + case "val": + $seriesValues[$seriesIndex] = self::_chartDataSeriesValueSet($seriesDetail,$namespacesChartMeta,$marker); + break; + case "xVal": + $seriesCategory[$seriesIndex] = self::_chartDataSeriesValueSet($seriesDetail,$namespacesChartMeta,$marker); + break; + case "yVal": + $seriesValues[$seriesIndex] = self::_chartDataSeriesValueSet($seriesDetail,$namespacesChartMeta,$marker); + break; + } + } + } + } + return new PHPExcel_Chart_DataSeries($plotType,$multiSeriesType,$plotOrder,$seriesLabel,$seriesCategory,$seriesValues,$smoothLine); + } // function _chartDataSeries() + + + private static function _chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker = null, $smoothLine = false) { + if (isset($seriesDetail->strRef)) { + $seriesSource = (string) $seriesDetail->strRef->f; + $seriesData = self::_chartDataSeriesValues($seriesDetail->strRef->strCache->children($namespacesChartMeta['c']),'s'); + + return new PHPExcel_Chart_DataSeriesValues('String',$seriesSource,$seriesData['formatCode'],$seriesData['pointCount'],$seriesData['dataValues'],$marker,$smoothLine); + } elseif (isset($seriesDetail->numRef)) { + $seriesSource = (string) $seriesDetail->numRef->f; + $seriesData = self::_chartDataSeriesValues($seriesDetail->numRef->numCache->children($namespacesChartMeta['c'])); + + return new PHPExcel_Chart_DataSeriesValues('Number',$seriesSource,$seriesData['formatCode'],$seriesData['pointCount'],$seriesData['dataValues'],$marker,$smoothLine); + } elseif (isset($seriesDetail->multiLvlStrRef)) { + $seriesSource = (string) $seriesDetail->multiLvlStrRef->f; + $seriesData = self::_chartDataSeriesValuesMultiLevel($seriesDetail->multiLvlStrRef->multiLvlStrCache->children($namespacesChartMeta['c']),'s'); + $seriesData['pointCount'] = count($seriesData['dataValues']); + + return new PHPExcel_Chart_DataSeriesValues('String',$seriesSource,$seriesData['formatCode'],$seriesData['pointCount'],$seriesData['dataValues'],$marker,$smoothLine); + } elseif (isset($seriesDetail->multiLvlNumRef)) { + $seriesSource = (string) $seriesDetail->multiLvlNumRef->f; + $seriesData = self::_chartDataSeriesValuesMultiLevel($seriesDetail->multiLvlNumRef->multiLvlNumCache->children($namespacesChartMeta['c']),'s'); + $seriesData['pointCount'] = count($seriesData['dataValues']); + + return new PHPExcel_Chart_DataSeriesValues('String',$seriesSource,$seriesData['formatCode'],$seriesData['pointCount'],$seriesData['dataValues'],$marker,$smoothLine); + } + return null; + } // function _chartDataSeriesValueSet() + + + private static function _chartDataSeriesValues($seriesValueSet,$dataType='n') { + $seriesVal = array(); + $formatCode = ''; + $pointCount = 0; + + foreach($seriesValueSet as $seriesValueIdx => $seriesValue) { + switch ($seriesValueIdx) { + case 'ptCount': + $pointCount = self::_getAttribute($seriesValue, 'val', 'integer'); + break; + case 'formatCode': + $formatCode = (string) $seriesValue; + break; + case 'pt': + $pointVal = self::_getAttribute($seriesValue, 'idx', 'integer'); + if ($dataType == 's') { + $seriesVal[$pointVal] = (string) $seriesValue->v; + } else { + $seriesVal[$pointVal] = (float) $seriesValue->v; + } + break; + } + } + + return array( 'formatCode' => $formatCode, + 'pointCount' => $pointCount, + 'dataValues' => $seriesVal + ); + } // function _chartDataSeriesValues() + + + private static function _chartDataSeriesValuesMultiLevel($seriesValueSet,$dataType='n') { + $seriesVal = array(); + $formatCode = ''; + $pointCount = 0; + + foreach($seriesValueSet->lvl as $seriesLevelIdx => $seriesLevel) { + foreach($seriesLevel as $seriesValueIdx => $seriesValue) { + switch ($seriesValueIdx) { + case 'ptCount': + $pointCount = self::_getAttribute($seriesValue, 'val', 'integer'); + break; + case 'formatCode': + $formatCode = (string) $seriesValue; + break; + case 'pt': + $pointVal = self::_getAttribute($seriesValue, 'idx', 'integer'); + if ($dataType == 's') { + $seriesVal[$pointVal][] = (string) $seriesValue->v; + } else { + $seriesVal[$pointVal][] = (float) $seriesValue->v; + } + break; + } + } + } + + return array( 'formatCode' => $formatCode, + 'pointCount' => $pointCount, + 'dataValues' => $seriesVal + ); + } // function _chartDataSeriesValuesMultiLevel() + + private static function _parseRichText($titleDetailPart = null) { + $value = new PHPExcel_RichText(); + + foreach($titleDetailPart as $titleDetailElementKey => $titleDetailElement) { + if (isset($titleDetailElement->t)) { + $objText = $value->createTextRun( (string) $titleDetailElement->t ); + } + if (isset($titleDetailElement->rPr)) { + if (isset($titleDetailElement->rPr->rFont["val"])) { + $objText->getFont()->setName((string) $titleDetailElement->rPr->rFont["val"]); + } + + $fontSize = (self::_getAttribute($titleDetailElement->rPr, 'sz', 'integer')); + if (!is_null($fontSize)) { + $objText->getFont()->setSize(floor($fontSize / 100)); + } + + $fontColor = (self::_getAttribute($titleDetailElement->rPr, 'color', 'string')); + if (!is_null($fontColor)) { + $objText->getFont()->setColor( new PHPExcel_Style_Color( self::_readColor($fontColor) ) ); + } + + $bold = self::_getAttribute($titleDetailElement->rPr, 'b', 'boolean'); + if (!is_null($bold)) { + $objText->getFont()->setBold($bold); + } + + $italic = self::_getAttribute($titleDetailElement->rPr, 'i', 'boolean'); + if (!is_null($italic)) { + $objText->getFont()->setItalic($italic); + } + + $baseline = self::_getAttribute($titleDetailElement->rPr, 'baseline', 'integer'); + if (!is_null($baseline)) { + if ($baseline > 0) { + $objText->getFont()->setSuperScript(true); + } elseif($baseline < 0) { + $objText->getFont()->setSubScript(true); + } + } + + $underscore = (self::_getAttribute($titleDetailElement->rPr, 'u', 'string')); + if (!is_null($underscore)) { + if ($underscore == 'sng') { + $objText->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); + } elseif($underscore == 'dbl') { + $objText->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_DOUBLE); + } else { + $objText->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_NONE); + } + } + + $strikethrough = (self::_getAttribute($titleDetailElement->rPr, 's', 'string')); + if (!is_null($strikethrough)) { + if ($strikethrough == 'noStrike') { + $objText->getFont()->setStrikethrough(false); + } else { + $objText->getFont()->setStrikethrough(true); + } + } + } + } + + return $value; + } + + private static function _readChartAttributes($chartDetail) { + $plotAttributes = array(); + if (isset($chartDetail->dLbls)) { + if (isset($chartDetail->dLbls->howLegendKey)) { + $plotAttributes['showLegendKey'] = self::_getAttribute($chartDetail->dLbls->showLegendKey, 'val', 'string'); + } + if (isset($chartDetail->dLbls->showVal)) { + $plotAttributes['showVal'] = self::_getAttribute($chartDetail->dLbls->showVal, 'val', 'string'); + } + if (isset($chartDetail->dLbls->showCatName)) { + $plotAttributes['showCatName'] = self::_getAttribute($chartDetail->dLbls->showCatName, 'val', 'string'); + } + if (isset($chartDetail->dLbls->showSerName)) { + $plotAttributes['showSerName'] = self::_getAttribute($chartDetail->dLbls->showSerName, 'val', 'string'); + } + if (isset($chartDetail->dLbls->showPercent)) { + $plotAttributes['showPercent'] = self::_getAttribute($chartDetail->dLbls->showPercent, 'val', 'string'); + } + if (isset($chartDetail->dLbls->showBubbleSize)) { + $plotAttributes['showBubbleSize'] = self::_getAttribute($chartDetail->dLbls->showBubbleSize, 'val', 'string'); + } + if (isset($chartDetail->dLbls->showLeaderLines)) { + $plotAttributes['showLeaderLines'] = self::_getAttribute($chartDetail->dLbls->showLeaderLines, 'val', 'string'); + } + } + + return $plotAttributes; + } + + private static function _setChartAttributes($plotArea,$plotAttributes) + { + foreach($plotAttributes as $plotAttributeKey => $plotAttributeValue) { + switch($plotAttributeKey) { + case 'showLegendKey' : + $plotArea->setShowLegendKey($plotAttributeValue); + break; + case 'showVal' : + $plotArea->setShowVal($plotAttributeValue); + break; + case 'showCatName' : + $plotArea->setShowCatName($plotAttributeValue); + break; + case 'showSerName' : + $plotArea->setShowSerName($plotAttributeValue); + break; + case 'showPercent' : + $plotArea->setShowPercent($plotAttributeValue); + break; + case 'showBubbleSize' : + $plotArea->setShowBubbleSize($plotAttributeValue); + break; + case 'showLeaderLines' : + $plotArea->setShowLeaderLines($plotAttributeValue); + break; + } + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007/Theme.php b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007/Theme.php new file mode 100755 index 0000000..6b38fa7 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel2007/Theme.php @@ -0,0 +1,124 @@ +_themeName = $themeName; + $this->_colourSchemeName = $colourSchemeName; + $this->_colourMap = $colourMap; + } + + /** + * Get Theme Name + * + * @return string + */ + public function getThemeName() + { + return $this->_themeName; + } + + /** + * Get colour Scheme Name + * + * @return string + */ + public function getColourSchemeName() { + return $this->_colourSchemeName; + } + + /** + * Get colour Map Value by Position + * + * @return string + */ + public function getColourByIndex($index=0) { + if (isset($this->_colourMap[$index])) { + return $this->_colourMap[$index]; + } + return null; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/Excel5.php b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel5.php new file mode 100755 index 0000000..5356542 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel5.php @@ -0,0 +1,6890 @@ +_data + * + * @var int + */ + private $_dataSize; + + /** + * Current position in stream + * + * @var integer + */ + private $_pos; + + /** + * Workbook to be returned by the reader. + * + * @var PHPExcel + */ + private $_phpExcel; + + /** + * Worksheet that is currently being built by the reader. + * + * @var PHPExcel_Worksheet + */ + private $_phpSheet; + + /** + * BIFF version + * + * @var int + */ + private $_version; + + /** + * Codepage set in the Excel file being read. Only important for BIFF5 (Excel 5.0 - Excel 95) + * For BIFF8 (Excel 97 - Excel 2003) this will always have the value 'UTF-16LE' + * + * @var string + */ + private $_codepage; + + /** + * Shared formats + * + * @var array + */ + private $_formats; + + /** + * Shared fonts + * + * @var array + */ + private $_objFonts; + + /** + * Color palette + * + * @var array + */ + private $_palette; + + /** + * Worksheets + * + * @var array + */ + private $_sheets; + + /** + * External books + * + * @var array + */ + private $_externalBooks; + + /** + * REF structures. Only applies to BIFF8. + * + * @var array + */ + private $_ref; + + /** + * External names + * + * @var array + */ + private $_externalNames; + + /** + * Defined names + * + * @var array + */ + private $_definedname; + + /** + * Shared strings. Only applies to BIFF8. + * + * @var array + */ + private $_sst; + + /** + * Panes are frozen? (in sheet currently being read). See WINDOW2 record. + * + * @var boolean + */ + private $_frozen; + + /** + * Fit printout to number of pages? (in sheet currently being read). See SHEETPR record. + * + * @var boolean + */ + private $_isFitToPages; + + /** + * Objects. One OBJ record contributes with one entry. + * + * @var array + */ + private $_objs; + + /** + * Text Objects. One TXO record corresponds with one entry. + * + * @var array + */ + private $_textObjects; + + /** + * Cell Annotations (BIFF8) + * + * @var array + */ + private $_cellNotes; + + /** + * The combined MSODRAWINGGROUP data + * + * @var string + */ + private $_drawingGroupData; + + /** + * The combined MSODRAWING data (per sheet) + * + * @var string + */ + private $_drawingData; + + /** + * Keep track of XF index + * + * @var int + */ + private $_xfIndex; + + /** + * Mapping of XF index (that is a cell XF) to final index in cellXf collection + * + * @var array + */ + private $_mapCellXfIndex; + + /** + * Mapping of XF index (that is a style XF) to final index in cellStyleXf collection + * + * @var array + */ + private $_mapCellStyleXfIndex; + + /** + * The shared formulas in a sheet. One SHAREDFMLA record contributes with one value. + * + * @var array + */ + private $_sharedFormulas; + + /** + * The shared formula parts in a sheet. One FORMULA record contributes with one value if it + * refers to a shared formula. + * + * @var array + */ + private $_sharedFormulaParts; + + + /** + * Create a new PHPExcel_Reader_Excel5 instance + */ + public function __construct() { + $this->_readFilter = new PHPExcel_Reader_DefaultReadFilter(); + } + + + /** + * Read data only? + * If this is true, then the Reader will only read data values for cells, it will not read any formatting information. + * If false (the default) it will read data and formatting. + * + * @return boolean + */ + public function getReadDataOnly() + { + return $this->_readDataOnly; + } + + + /** + * Set read data only + * Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information. + * Set to false (the default) to advise the Reader to read both data and formatting for cells. + * + * @param boolean $pValue + * + * @return PHPExcel_Reader_Excel5 + */ + public function setReadDataOnly($pValue = false) + { + $this->_readDataOnly = $pValue; + return $this; + } + + + /** + * Get which sheets to load + * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null + * indicating that all worksheets in the workbook should be loaded. + * + * @return mixed + */ + public function getLoadSheetsOnly() + { + return $this->_loadSheetsOnly; + } + + + /** + * Set which sheets to load + * + * @param mixed $value + * This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name. + * If NULL, then it tells the Reader to read all worksheets in the workbook + * + * @return PHPExcel_Reader_Excel5 + */ + public function setLoadSheetsOnly($value = null) + { + $this->_loadSheetsOnly = is_array($value) ? + $value : array($value); + return $this; + } + + + /** + * Set all sheets to load + * Tells the Reader to load all worksheets from the workbook. + * + * @return PHPExcel_Reader_Excel5 + */ + public function setLoadAllSheets() + { + $this->_loadSheetsOnly = null; + return $this; + } + + + /** + * Read filter + * + * @return PHPExcel_Reader_IReadFilter + */ + public function getReadFilter() { + return $this->_readFilter; + } + + + /** + * Set read filter + * + * @param PHPExcel_Reader_IReadFilter $pValue + * @return PHPExcel_Reader_Excel5 + */ + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { + $this->_readFilter = $pValue; + return $this; + } + + + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @param string $pFileName + * @return boolean + * @throws Exception + */ + public function canRead($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + try { + // Use ParseXL for the hard work. + $ole = new PHPExcel_Shared_OLERead(); + + // get excel data + $res = $ole->read($pFilename); + return true; + + } catch (Exception $e) { + return false; + } + } + + + /** + * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetNames($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $worksheetNames = array(); + + // Read the OLE file + $this->_loadOLE($pFilename); + + // total byte size of Excel data (workbook global substream + sheet substreams) + $this->_dataSize = strlen($this->_data); + + $this->_pos = 0; + $this->_sheets = array(); + + // Parse Workbook Global Substream + while ($this->_pos < $this->_dataSize) { + $code = self::_GetInt2d($this->_data, $this->_pos); + + switch ($code) { + case self::XLS_Type_BOF: $this->_readBof(); break; + case self::XLS_Type_SHEET: $this->_readSheet(); break; + case self::XLS_Type_EOF: $this->_readDefault(); break 2; + default: $this->_readDefault(); break; + } + } + + foreach ($this->_sheets as $sheet) { + if ($sheet['sheetType'] != 0x00) { + // 0x00: Worksheet, 0x02: Chart, 0x06: Visual Basic module + continue; + } + + $worksheetNames[] = $sheet['name']; + } + + return $worksheetNames; + } + + + /** + * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetInfo($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $worksheetInfo = array(); + + // Read the OLE file + $this->_loadOLE($pFilename); + + // total byte size of Excel data (workbook global substream + sheet substreams) + $this->_dataSize = strlen($this->_data); + + // initialize + $this->_pos = 0; + $this->_sheets = array(); + + // Parse Workbook Global Substream + while ($this->_pos < $this->_dataSize) { + $code = self::_GetInt2d($this->_data, $this->_pos); + + switch ($code) { + case self::XLS_Type_BOF: $this->_readBof(); break; + case self::XLS_Type_SHEET: $this->_readSheet(); break; + case self::XLS_Type_EOF: $this->_readDefault(); break 2; + default: $this->_readDefault(); break; + } + } + + // Parse the individual sheets + foreach ($this->_sheets as $sheet) { + + if ($sheet['sheetType'] != 0x00) { + // 0x00: Worksheet + // 0x02: Chart + // 0x06: Visual Basic module + continue; + } + + $tmpInfo = array(); + $tmpInfo['worksheetName'] = $sheet['name']; + $tmpInfo['lastColumnLetter'] = 'A'; + $tmpInfo['lastColumnIndex'] = 0; + $tmpInfo['totalRows'] = 0; + $tmpInfo['totalColumns'] = 0; + + $this->_pos = $sheet['offset']; + + while ($this->_pos <= $this->_dataSize - 4) { + $code = self::_GetInt2d($this->_data, $this->_pos); + + switch ($code) { + case self::XLS_Type_RK: + case self::XLS_Type_LABELSST: + case self::XLS_Type_NUMBER: + case self::XLS_Type_FORMULA: + case self::XLS_Type_BOOLERR: + case self::XLS_Type_LABEL: + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + $rowIndex = self::_GetInt2d($recordData, 0) + 1; + $columnIndex = self::_GetInt2d($recordData, 2); + + $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex); + $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex); + break; + case self::XLS_Type_BOF: $this->_readBof(); break; + case self::XLS_Type_EOF: $this->_readDefault(); break 2; + default: $this->_readDefault(); break; + } + } + + $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; + + $worksheetInfo[] = $tmpInfo; + } + + return $worksheetInfo; + } + + + /** + * Loads PHPExcel from file + * + * @param string $pFilename + * @return PHPExcel + * @throws Exception + */ + public function load($pFilename) + { + // Read the OLE file + $this->_loadOLE($pFilename); + + // Initialisations + $this->_phpExcel = new PHPExcel; + $this->_phpExcel->removeSheetByIndex(0); // remove 1st sheet + if (!$this->_readDataOnly) { + $this->_phpExcel->removeCellStyleXfByIndex(0); // remove the default style + $this->_phpExcel->removeCellXfByIndex(0); // remove the default style + } + + // Read the summary information stream (containing meta data) + $this->_readSummaryInformation(); + + // Read the Additional document summary information stream (containing application-specific meta data) + $this->_readDocumentSummaryInformation(); + + // total byte size of Excel data (workbook global substream + sheet substreams) + $this->_dataSize = strlen($this->_data); + + // initialize + $this->_pos = 0; + $this->_codepage = 'CP1252'; + $this->_formats = array(); + $this->_objFonts = array(); + $this->_palette = array(); + $this->_sheets = array(); + $this->_externalBooks = array(); + $this->_ref = array(); + $this->_definedname = array(); + $this->_sst = array(); + $this->_drawingGroupData = ''; + $this->_xfIndex = ''; + $this->_mapCellXfIndex = array(); + $this->_mapCellStyleXfIndex = array(); + + // Parse Workbook Global Substream + while ($this->_pos < $this->_dataSize) { + $code = self::_GetInt2d($this->_data, $this->_pos); + + switch ($code) { + case self::XLS_Type_BOF: $this->_readBof(); break; + case self::XLS_Type_FILEPASS: $this->_readFilepass(); break; + case self::XLS_Type_CODEPAGE: $this->_readCodepage(); break; + case self::XLS_Type_DATEMODE: $this->_readDateMode(); break; + case self::XLS_Type_FONT: $this->_readFont(); break; + case self::XLS_Type_FORMAT: $this->_readFormat(); break; + case self::XLS_Type_XF: $this->_readXf(); break; + case self::XLS_Type_XFEXT: $this->_readXfExt(); break; + case self::XLS_Type_STYLE: $this->_readStyle(); break; + case self::XLS_Type_PALETTE: $this->_readPalette(); break; + case self::XLS_Type_SHEET: $this->_readSheet(); break; + case self::XLS_Type_EXTERNALBOOK: $this->_readExternalBook(); break; + case self::XLS_Type_EXTERNNAME: $this->_readExternName(); break; + case self::XLS_Type_EXTERNSHEET: $this->_readExternSheet(); break; + case self::XLS_Type_DEFINEDNAME: $this->_readDefinedName(); break; + case self::XLS_Type_MSODRAWINGGROUP: $this->_readMsoDrawingGroup(); break; + case self::XLS_Type_SST: $this->_readSst(); break; + case self::XLS_Type_EOF: $this->_readDefault(); break 2; + default: $this->_readDefault(); break; + } + } + + // Resolve indexed colors for font, fill, and border colors + // Cannot be resolved already in XF record, because PALETTE record comes afterwards + if (!$this->_readDataOnly) { + foreach ($this->_objFonts as $objFont) { + if (isset($objFont->colorIndex)) { + $color = self::_readColor($objFont->colorIndex,$this->_palette,$this->_version); + $objFont->getColor()->setRGB($color['rgb']); + } + } + + foreach ($this->_phpExcel->getCellXfCollection() as $objStyle) { + // fill start and end color + $fill = $objStyle->getFill(); + + if (isset($fill->startcolorIndex)) { + $startColor = self::_readColor($fill->startcolorIndex,$this->_palette,$this->_version); + $fill->getStartColor()->setRGB($startColor['rgb']); + } + + if (isset($fill->endcolorIndex)) { + $endColor = self::_readColor($fill->endcolorIndex,$this->_palette,$this->_version); + $fill->getEndColor()->setRGB($endColor['rgb']); + } + + // border colors + $top = $objStyle->getBorders()->getTop(); + $right = $objStyle->getBorders()->getRight(); + $bottom = $objStyle->getBorders()->getBottom(); + $left = $objStyle->getBorders()->getLeft(); + $diagonal = $objStyle->getBorders()->getDiagonal(); + + if (isset($top->colorIndex)) { + $borderTopColor = self::_readColor($top->colorIndex,$this->_palette,$this->_version); + $top->getColor()->setRGB($borderTopColor['rgb']); + } + + if (isset($right->colorIndex)) { + $borderRightColor = self::_readColor($right->colorIndex,$this->_palette,$this->_version); + $right->getColor()->setRGB($borderRightColor['rgb']); + } + + if (isset($bottom->colorIndex)) { + $borderBottomColor = self::_readColor($bottom->colorIndex,$this->_palette,$this->_version); + $bottom->getColor()->setRGB($borderBottomColor['rgb']); + } + + if (isset($left->colorIndex)) { + $borderLeftColor = self::_readColor($left->colorIndex,$this->_palette,$this->_version); + $left->getColor()->setRGB($borderLeftColor['rgb']); + } + + if (isset($diagonal->colorIndex)) { + $borderDiagonalColor = self::_readColor($diagonal->colorIndex,$this->_palette,$this->_version); + $diagonal->getColor()->setRGB($borderDiagonalColor['rgb']); + } + } + } + + // treat MSODRAWINGGROUP records, workbook-level Escher + if (!$this->_readDataOnly && $this->_drawingGroupData) { + $escherWorkbook = new PHPExcel_Shared_Escher(); + $reader = new PHPExcel_Reader_Excel5_Escher($escherWorkbook); + $escherWorkbook = $reader->load($this->_drawingGroupData); + + // debug Escher stream + //$debug = new Debug_Escher(new PHPExcel_Shared_Escher()); + //$debug->load($this->_drawingGroupData); + } + + // Parse the individual sheets + foreach ($this->_sheets as $sheet) { + + if ($sheet['sheetType'] != 0x00) { + // 0x00: Worksheet, 0x02: Chart, 0x06: Visual Basic module + continue; + } + + // check if sheet should be skipped + if (isset($this->_loadSheetsOnly) && !in_array($sheet['name'], $this->_loadSheetsOnly)) { + continue; + } + + // add sheet to PHPExcel object + $this->_phpSheet = $this->_phpExcel->createSheet(); + // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in formula + // cells... during the load, all formulae should be correct, and we're simply bringing the worksheet + // name in line with the formula, not the reverse + $this->_phpSheet->setTitle($sheet['name'],false); + $this->_phpSheet->setSheetState($sheet['sheetState']); + + $this->_pos = $sheet['offset']; + + // Initialize isFitToPages. May change after reading SHEETPR record. + $this->_isFitToPages = false; + + // Initialize drawingData + $this->_drawingData = ''; + + // Initialize objs + $this->_objs = array(); + + // Initialize shared formula parts + $this->_sharedFormulaParts = array(); + + // Initialize shared formulas + $this->_sharedFormulas = array(); + + // Initialize text objs + $this->_textObjects = array(); + + // Initialize cell annotations + $this->_cellNotes = array(); + $this->textObjRef = -1; + + while ($this->_pos <= $this->_dataSize - 4) { + $code = self::_GetInt2d($this->_data, $this->_pos); + + switch ($code) { + case self::XLS_Type_BOF: $this->_readBof(); break; + case self::XLS_Type_PRINTGRIDLINES: $this->_readPrintGridlines(); break; + case self::XLS_Type_DEFAULTROWHEIGHT: $this->_readDefaultRowHeight(); break; + case self::XLS_Type_SHEETPR: $this->_readSheetPr(); break; + case self::XLS_Type_HORIZONTALPAGEBREAKS: $this->_readHorizontalPageBreaks(); break; + case self::XLS_Type_VERTICALPAGEBREAKS: $this->_readVerticalPageBreaks(); break; + case self::XLS_Type_HEADER: $this->_readHeader(); break; + case self::XLS_Type_FOOTER: $this->_readFooter(); break; + case self::XLS_Type_HCENTER: $this->_readHcenter(); break; + case self::XLS_Type_VCENTER: $this->_readVcenter(); break; + case self::XLS_Type_LEFTMARGIN: $this->_readLeftMargin(); break; + case self::XLS_Type_RIGHTMARGIN: $this->_readRightMargin(); break; + case self::XLS_Type_TOPMARGIN: $this->_readTopMargin(); break; + case self::XLS_Type_BOTTOMMARGIN: $this->_readBottomMargin(); break; + case self::XLS_Type_PAGESETUP: $this->_readPageSetup(); break; + case self::XLS_Type_PROTECT: $this->_readProtect(); break; + case self::XLS_Type_SCENPROTECT: $this->_readScenProtect(); break; + case self::XLS_Type_OBJECTPROTECT: $this->_readObjectProtect(); break; + case self::XLS_Type_PASSWORD: $this->_readPassword(); break; + case self::XLS_Type_DEFCOLWIDTH: $this->_readDefColWidth(); break; + case self::XLS_Type_COLINFO: $this->_readColInfo(); break; + case self::XLS_Type_DIMENSION: $this->_readDefault(); break; + case self::XLS_Type_ROW: $this->_readRow(); break; + case self::XLS_Type_DBCELL: $this->_readDefault(); break; + case self::XLS_Type_RK: $this->_readRk(); break; + case self::XLS_Type_LABELSST: $this->_readLabelSst(); break; + case self::XLS_Type_MULRK: $this->_readMulRk(); break; + case self::XLS_Type_NUMBER: $this->_readNumber(); break; + case self::XLS_Type_FORMULA: $this->_readFormula(); break; + case self::XLS_Type_SHAREDFMLA: $this->_readSharedFmla(); break; + case self::XLS_Type_BOOLERR: $this->_readBoolErr(); break; + case self::XLS_Type_MULBLANK: $this->_readMulBlank(); break; + case self::XLS_Type_LABEL: $this->_readLabel(); break; + case self::XLS_Type_BLANK: $this->_readBlank(); break; + case self::XLS_Type_MSODRAWING: $this->_readMsoDrawing(); break; + case self::XLS_Type_OBJ: $this->_readObj(); break; + case self::XLS_Type_WINDOW2: $this->_readWindow2(); break; + case self::XLS_Type_SCL: $this->_readScl(); break; + case self::XLS_Type_PANE: $this->_readPane(); break; + case self::XLS_Type_SELECTION: $this->_readSelection(); break; + case self::XLS_Type_MERGEDCELLS: $this->_readMergedCells(); break; + case self::XLS_Type_HYPERLINK: $this->_readHyperLink(); break; + case self::XLS_Type_DATAVALIDATIONS: $this->_readDataValidations(); break; + case self::XLS_Type_DATAVALIDATION: $this->_readDataValidation(); break; + case self::XLS_Type_SHEETLAYOUT: $this->_readSheetLayout(); break; + case self::XLS_Type_SHEETPROTECTION: $this->_readSheetProtection(); break; + case self::XLS_Type_RANGEPROTECTION: $this->_readRangeProtection(); break; + case self::XLS_Type_NOTE: $this->_readNote(); break; + //case self::XLS_Type_IMDATA: $this->_readImData(); break; + case self::XLS_Type_TXO: $this->_readTextObject(); break; + case self::XLS_Type_CONTINUE: $this->_readContinue(); break; + case self::XLS_Type_EOF: $this->_readDefault(); break 2; + default: $this->_readDefault(); break; + } + + } + + // treat MSODRAWING records, sheet-level Escher + if (!$this->_readDataOnly && $this->_drawingData) { + $escherWorksheet = new PHPExcel_Shared_Escher(); + $reader = new PHPExcel_Reader_Excel5_Escher($escherWorksheet); + $escherWorksheet = $reader->load($this->_drawingData); + + // debug Escher stream + //$debug = new Debug_Escher(new PHPExcel_Shared_Escher()); + //$debug->load($this->_drawingData); + + // get all spContainers in one long array, so they can be mapped to OBJ records + $allSpContainers = $escherWorksheet->getDgContainer()->getSpgrContainer()->getAllSpContainers(); + } + + // treat OBJ records + foreach ($this->_objs as $n => $obj) { +// echo '
Object reference is ',$n,'
'; +// var_dump($obj); +// echo '
'; + + // the first shape container never has a corresponding OBJ record, hence $n + 1 + if (isset($allSpContainers[$n + 1]) && is_object($allSpContainers[$n + 1])) { + $spContainer = $allSpContainers[$n + 1]; + + // we skip all spContainers that are a part of a group shape since we cannot yet handle those + if ($spContainer->getNestingLevel() > 1) { + continue; + } + + // calculate the width and height of the shape + list($startColumn, $startRow) = PHPExcel_Cell::coordinateFromString($spContainer->getStartCoordinates()); + list($endColumn, $endRow) = PHPExcel_Cell::coordinateFromString($spContainer->getEndCoordinates()); + + $startOffsetX = $spContainer->getStartOffsetX(); + $startOffsetY = $spContainer->getStartOffsetY(); + $endOffsetX = $spContainer->getEndOffsetX(); + $endOffsetY = $spContainer->getEndOffsetY(); + + $width = PHPExcel_Shared_Excel5::getDistanceX($this->_phpSheet, $startColumn, $startOffsetX, $endColumn, $endOffsetX); + $height = PHPExcel_Shared_Excel5::getDistanceY($this->_phpSheet, $startRow, $startOffsetY, $endRow, $endOffsetY); + + // calculate offsetX and offsetY of the shape + $offsetX = $startOffsetX * PHPExcel_Shared_Excel5::sizeCol($this->_phpSheet, $startColumn) / 1024; + $offsetY = $startOffsetY * PHPExcel_Shared_Excel5::sizeRow($this->_phpSheet, $startRow) / 256; + + switch ($obj['otObjType']) { + case 0x19: + // Note +// echo 'Cell Annotation Object
'; +// echo 'Object ID is ',$obj['idObjID'],'
'; +// + if (isset($this->_cellNotes[$obj['idObjID']])) { + $cellNote = $this->_cellNotes[$obj['idObjID']]; + + if (isset($this->_textObjects[$obj['idObjID']])) { + $textObject = $this->_textObjects[$obj['idObjID']]; + $this->_cellNotes[$obj['idObjID']]['objTextData'] = $textObject; + } + } + break; + + case 0x08: +// echo 'Picture Object
'; + // picture + + // get index to BSE entry (1-based) + $BSEindex = $spContainer->getOPT(0x0104); + $BSECollection = $escherWorkbook->getDggContainer()->getBstoreContainer()->getBSECollection(); + $BSE = $BSECollection[$BSEindex - 1]; + $blipType = $BSE->getBlipType(); + + // need check because some blip types are not supported by Escher reader such as EMF + if ($blip = $BSE->getBlip()) { + $ih = imagecreatefromstring($blip->getData()); + $drawing = new PHPExcel_Worksheet_MemoryDrawing(); + $drawing->setImageResource($ih); + + // width, height, offsetX, offsetY + $drawing->setResizeProportional(false); + $drawing->setWidth($width); + $drawing->setHeight($height); + $drawing->setOffsetX($offsetX); + $drawing->setOffsetY($offsetY); + + switch ($blipType) { + case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG: + $drawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG); + $drawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_JPEG); + break; + + case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG: + $drawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG); + $drawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_PNG); + break; + } + + $drawing->setWorksheet($this->_phpSheet); + $drawing->setCoordinates($spContainer->getStartCoordinates()); + } + + break; + + default: + // other object type + break; + + } + } + } + + // treat SHAREDFMLA records + if ($this->_version == self::XLS_BIFF8) { + foreach ($this->_sharedFormulaParts as $cell => $baseCell) { + list($column, $row) = PHPExcel_Cell::coordinateFromString($cell); + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($column, $row, $this->_phpSheet->getTitle()) ) { + $formula = $this->_getFormulaFromStructure($this->_sharedFormulas[$baseCell], $cell); + $this->_phpSheet->getCell($cell)->setValueExplicit('=' . $formula, PHPExcel_Cell_DataType::TYPE_FORMULA); + } + } + } + + if (!empty($this->_cellNotes)) { + foreach($this->_cellNotes as $note => $noteDetails) { + if (!isset($noteDetails['objTextData'])) { + if (isset($this->_textObjects[$note])) { + $textObject = $this->_textObjects[$note]; + $noteDetails['objTextData'] = $textObject; + } else { + $noteDetails['objTextData']['text'] = ''; + } + } +// echo 'Cell annotation ',$note,'
'; +// var_dump($noteDetails); +// echo '
'; + $cellAddress = str_replace('$','',$noteDetails['cellRef']); + $this->_phpSheet->getComment( $cellAddress ) + ->setAuthor( $noteDetails['author'] ) + ->setText($this->_parseRichText($noteDetails['objTextData']['text']) ); + } + } + } + + // add the named ranges (defined names) + foreach ($this->_definedname as $definedName) { + if ($definedName['isBuiltInName']) { + switch ($definedName['name']) { + + case pack('C', 0x06): + // print area + // in general, formula looks like this: Foo!$C$7:$J$66,Bar!$A$1:$IV$2 + + $ranges = explode(',', $definedName['formula']); // FIXME: what if sheetname contains comma? + + $extractedRanges = array(); + foreach ($ranges as $range) { + // $range should look like one of these + // Foo!$C$7:$J$66 + // Bar!$A$1:$IV$2 + + $explodes = explode('!', $range); // FIXME: what if sheetname contains exclamation mark? + $sheetName = $explodes[0]; + + if (count($explodes) == 2) { + $extractedRanges[] = str_replace('$', '', $explodes[1]); // C7:J66 + } + } + if ($docSheet = $this->_phpExcel->getSheetByName($sheetName)) { + $docSheet->getPageSetup()->setPrintArea(implode(',', $extractedRanges)); // C7:J66,A1:IV2 + } + break; + + case pack('C', 0x07): + // print titles (repeating rows) + // Assuming BIFF8, there are 3 cases + // 1. repeating rows + // formula looks like this: Sheet!$A$1:$IV$2 + // rows 1-2 repeat + // 2. repeating columns + // formula looks like this: Sheet!$A$1:$B$65536 + // columns A-B repeat + // 3. both repeating rows and repeating columns + // formula looks like this: Sheet!$A$1:$B$65536,Sheet!$A$1:$IV$2 + + $ranges = explode(',', $definedName['formula']); // FIXME: what if sheetname contains comma? + + foreach ($ranges as $range) { + // $range should look like this one of these + // Sheet!$A$1:$B$65536 + // Sheet!$A$1:$IV$2 + + $explodes = explode('!', $range); + + if (count($explodes) == 2) { + if ($docSheet = $this->_phpExcel->getSheetByName($explodes[0])) { + + $extractedRange = $explodes[1]; + $extractedRange = str_replace('$', '', $extractedRange); + + $coordinateStrings = explode(':', $extractedRange); + if (count($coordinateStrings) == 2) { + list($firstColumn, $firstRow) = PHPExcel_Cell::coordinateFromString($coordinateStrings[0]); + list($lastColumn, $lastRow) = PHPExcel_Cell::coordinateFromString($coordinateStrings[1]); + + if ($firstColumn == 'A' and $lastColumn == 'IV') { + // then we have repeating rows + $docSheet->getPageSetup()->setRowsToRepeatAtTop(array($firstRow, $lastRow)); + } elseif ($firstRow == 1 and $lastRow == 65536) { + // then we have repeating columns + $docSheet->getPageSetup()->setColumnsToRepeatAtLeft(array($firstColumn, $lastColumn)); + } + } + } + } + } + break; + + } + } else { + // Extract range + $explodes = explode('!', $definedName['formula']); + + if (count($explodes) == 2) { + if (($docSheet = $this->_phpExcel->getSheetByName($explodes[0])) || + ($docSheet = $this->_phpExcel->getSheetByName(trim($explodes[0],"'")))) { + $extractedRange = $explodes[1]; + $extractedRange = str_replace('$', '', $extractedRange); + + $localOnly = ($definedName['scope'] == 0) ? false : true; + + $scope = ($definedName['scope'] == 0) ? + null : $this->_phpExcel->getSheetByName($this->_sheets[$definedName['scope'] - 1]['name']); + + $this->_phpExcel->addNamedRange( new PHPExcel_NamedRange((string)$definedName['name'], $docSheet, $extractedRange, $localOnly, $scope) ); + } + } else { + // Named Value + // TODO Provide support for named values + } + } + } + + return $this->_phpExcel; + } + + + /** + * Use OLE reader to extract the relevant data streams from the OLE file + * + * @param string $pFilename + */ + private function _loadOLE($pFilename) + { + // OLE reader + $ole = new PHPExcel_Shared_OLERead(); + + // get excel data, + $res = $ole->read($pFilename); + // Get workbook data: workbook stream + sheet streams + $this->_data = $ole->getStream($ole->wrkbook); + + // Get summary information data + $this->_summaryInformation = $ole->getStream($ole->summaryInformation); + + // Get additional document summary information data + $this->_documentSummaryInformation = $ole->getStream($ole->documentSummaryInformation); + + // Get user-defined property data +// $this->_userDefinedProperties = $ole->getUserDefinedProperties(); + } + + + /** + * Read summary information + */ + private function _readSummaryInformation() + { + if (!isset($this->_summaryInformation)) { + return; + } + + // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark) + // offset: 2; size: 2; + // offset: 4; size: 2; OS version + // offset: 6; size: 2; OS indicator + // offset: 8; size: 16 + // offset: 24; size: 4; section count + $secCount = self::_GetInt4d($this->_summaryInformation, 24); + + // offset: 28; size: 16; first section's class id: e0 85 9f f2 f9 4f 68 10 ab 91 08 00 2b 27 b3 d9 + // offset: 44; size: 4 + $secOffset = self::_GetInt4d($this->_summaryInformation, 44); + + // section header + // offset: $secOffset; size: 4; section length + $secLength = self::_GetInt4d($this->_summaryInformation, $secOffset); + + // offset: $secOffset+4; size: 4; property count + $countProperties = self::_GetInt4d($this->_summaryInformation, $secOffset+4); + + // initialize code page (used to resolve string values) + $codePage = 'CP1252'; + + // offset: ($secOffset+8); size: var + // loop through property decarations and properties + for ($i = 0; $i < $countProperties; ++$i) { + + // offset: ($secOffset+8) + (8 * $i); size: 4; property ID + $id = self::_GetInt4d($this->_summaryInformation, ($secOffset+8) + (8 * $i)); + + // Use value of property id as appropriate + // offset: ($secOffset+12) + (8 * $i); size: 4; offset from beginning of section (48) + $offset = self::_GetInt4d($this->_summaryInformation, ($secOffset+12) + (8 * $i)); + + $type = self::_GetInt4d($this->_summaryInformation, $secOffset + $offset); + + // initialize property value + $value = null; + + // extract property value based on property type + switch ($type) { + case 0x02: // 2 byte signed integer + $value = self::_GetInt2d($this->_summaryInformation, $secOffset + 4 + $offset); + break; + + case 0x03: // 4 byte signed integer + $value = self::_GetInt4d($this->_summaryInformation, $secOffset + 4 + $offset); + break; + + case 0x13: // 4 byte unsigned integer + // not needed yet, fix later if necessary + break; + + case 0x1E: // null-terminated string prepended by dword string length + $byteLength = self::_GetInt4d($this->_summaryInformation, $secOffset + 4 + $offset); + $value = substr($this->_summaryInformation, $secOffset + 8 + $offset, $byteLength); + $value = PHPExcel_Shared_String::ConvertEncoding($value, 'UTF-8', $codePage); + $value = rtrim($value); + break; + + case 0x40: // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + // PHP-time + $value = PHPExcel_Shared_OLE::OLE2LocalDate(substr($this->_summaryInformation, $secOffset + 4 + $offset, 8)); + break; + + case 0x47: // Clipboard format + // not needed yet, fix later if necessary + break; + } + + switch ($id) { + case 0x01: // Code Page + $codePage = PHPExcel_Shared_CodePage::NumberToName($value); + break; + + case 0x02: // Title + $this->_phpExcel->getProperties()->setTitle($value); + break; + + case 0x03: // Subject + $this->_phpExcel->getProperties()->setSubject($value); + break; + + case 0x04: // Author (Creator) + $this->_phpExcel->getProperties()->setCreator($value); + break; + + case 0x05: // Keywords + $this->_phpExcel->getProperties()->setKeywords($value); + break; + + case 0x06: // Comments (Description) + $this->_phpExcel->getProperties()->setDescription($value); + break; + + case 0x07: // Template + // Not supported by PHPExcel + break; + + case 0x08: // Last Saved By (LastModifiedBy) + $this->_phpExcel->getProperties()->setLastModifiedBy($value); + break; + + case 0x09: // Revision + // Not supported by PHPExcel + break; + + case 0x0A: // Total Editing Time + // Not supported by PHPExcel + break; + + case 0x0B: // Last Printed + // Not supported by PHPExcel + break; + + case 0x0C: // Created Date/Time + $this->_phpExcel->getProperties()->setCreated($value); + break; + + case 0x0D: // Modified Date/Time + $this->_phpExcel->getProperties()->setModified($value); + break; + + case 0x0E: // Number of Pages + // Not supported by PHPExcel + break; + + case 0x0F: // Number of Words + // Not supported by PHPExcel + break; + + case 0x10: // Number of Characters + // Not supported by PHPExcel + break; + + case 0x11: // Thumbnail + // Not supported by PHPExcel + break; + + case 0x12: // Name of creating application + // Not supported by PHPExcel + break; + + case 0x13: // Security + // Not supported by PHPExcel + break; + + } + } + } + + + /** + * Read additional document summary information + */ + private function _readDocumentSummaryInformation() + { + if (!isset($this->_documentSummaryInformation)) { + return; + } + + // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark) + // offset: 2; size: 2; + // offset: 4; size: 2; OS version + // offset: 6; size: 2; OS indicator + // offset: 8; size: 16 + // offset: 24; size: 4; section count + $secCount = self::_GetInt4d($this->_documentSummaryInformation, 24); +// echo '$secCount = ',$secCount,'
'; + + // offset: 28; size: 16; first section's class id: 02 d5 cd d5 9c 2e 1b 10 93 97 08 00 2b 2c f9 ae + // offset: 44; size: 4; first section offset + $secOffset = self::_GetInt4d($this->_documentSummaryInformation, 44); +// echo '$secOffset = ',$secOffset,'
'; + + // section header + // offset: $secOffset; size: 4; section length + $secLength = self::_GetInt4d($this->_documentSummaryInformation, $secOffset); +// echo '$secLength = ',$secLength,'
'; + + // offset: $secOffset+4; size: 4; property count + $countProperties = self::_GetInt4d($this->_documentSummaryInformation, $secOffset+4); +// echo '$countProperties = ',$countProperties,'
'; + + // initialize code page (used to resolve string values) + $codePage = 'CP1252'; + + // offset: ($secOffset+8); size: var + // loop through property decarations and properties + for ($i = 0; $i < $countProperties; ++$i) { +// echo 'Property ',$i,'
'; + // offset: ($secOffset+8) + (8 * $i); size: 4; property ID + $id = self::_GetInt4d($this->_documentSummaryInformation, ($secOffset+8) + (8 * $i)); +// echo 'ID is ',$id,'
'; + + // Use value of property id as appropriate + // offset: 60 + 8 * $i; size: 4; offset from beginning of section (48) + $offset = self::_GetInt4d($this->_documentSummaryInformation, ($secOffset+12) + (8 * $i)); + + $type = self::_GetInt4d($this->_documentSummaryInformation, $secOffset + $offset); +// echo 'Type is ',$type,', '; + + // initialize property value + $value = null; + + // extract property value based on property type + switch ($type) { + case 0x02: // 2 byte signed integer + $value = self::_GetInt2d($this->_documentSummaryInformation, $secOffset + 4 + $offset); + break; + + case 0x03: // 4 byte signed integer + $value = self::_GetInt4d($this->_documentSummaryInformation, $secOffset + 4 + $offset); + break; + + case 0x0B: // Boolean + $value = self::_GetInt2d($this->_documentSummaryInformation, $secOffset + 4 + $offset); + $value = ($value == 0 ? false : true); + break; + + case 0x13: // 4 byte unsigned integer + // not needed yet, fix later if necessary + break; + + case 0x1E: // null-terminated string prepended by dword string length + $byteLength = self::_GetInt4d($this->_documentSummaryInformation, $secOffset + 4 + $offset); + $value = substr($this->_documentSummaryInformation, $secOffset + 8 + $offset, $byteLength); + $value = PHPExcel_Shared_String::ConvertEncoding($value, 'UTF-8', $codePage); + $value = rtrim($value); + break; + + case 0x40: // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + // PHP-Time + $value = PHPExcel_Shared_OLE::OLE2LocalDate(substr($this->_documentSummaryInformation, $secOffset + 4 + $offset, 8)); + break; + + case 0x47: // Clipboard format + // not needed yet, fix later if necessary + break; + } + + switch ($id) { + case 0x01: // Code Page + $codePage = PHPExcel_Shared_CodePage::NumberToName($value); + break; + + case 0x02: // Category + $this->_phpExcel->getProperties()->setCategory($value); + break; + + case 0x03: // Presentation Target + // Not supported by PHPExcel + break; + + case 0x04: // Bytes + // Not supported by PHPExcel + break; + + case 0x05: // Lines + // Not supported by PHPExcel + break; + + case 0x06: // Paragraphs + // Not supported by PHPExcel + break; + + case 0x07: // Slides + // Not supported by PHPExcel + break; + + case 0x08: // Notes + // Not supported by PHPExcel + break; + + case 0x09: // Hidden Slides + // Not supported by PHPExcel + break; + + case 0x0A: // MM Clips + // Not supported by PHPExcel + break; + + case 0x0B: // Scale Crop + // Not supported by PHPExcel + break; + + case 0x0C: // Heading Pairs + // Not supported by PHPExcel + break; + + case 0x0D: // Titles of Parts + // Not supported by PHPExcel + break; + + case 0x0E: // Manager + $this->_phpExcel->getProperties()->setManager($value); + break; + + case 0x0F: // Company + $this->_phpExcel->getProperties()->setCompany($value); + break; + + case 0x10: // Links up-to-date + // Not supported by PHPExcel + break; + + } + } + } + + + /** + * Reads a general type of BIFF record. Does nothing except for moving stream pointer forward to next record. + */ + private function _readDefault() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); +// $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + } + + + /** + * The NOTE record specifies a comment associated with a particular cell. In Excel 95 (BIFF7) and earlier versions, + * this record stores a note (cell note). This feature was significantly enhanced in Excel 97. + */ + private function _readNote() + { +// echo 'Read Cell Annotation
'; + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_readDataOnly) { + return; + } + + $cellAddress = $this->_readBIFF8CellAddress(substr($recordData, 0, 4)); + if ($this->_version == self::XLS_BIFF8) { + $noteObjID = self::_GetInt2d($recordData, 6); + $noteAuthor = self::_readUnicodeStringLong(substr($recordData, 8)); + $noteAuthor = $noteAuthor['value']; +// echo 'Note Address=',$cellAddress,'
'; +// echo 'Note Object ID=',$noteObjID,'
'; +// echo 'Note Author=',$noteAuthor,'
'; +// + $this->_cellNotes[$noteObjID] = array('cellRef' => $cellAddress, + 'objectID' => $noteObjID, + 'author' => $noteAuthor + ); + } else { + $extension = false; + if ($cellAddress == '$B$65536') { + // If the address row is -1 and the column is 0, (which translates as $B$65536) then this is a continuation + // note from the previous cell annotation. We're not yet handling this, so annotations longer than the + // max 2048 bytes will probably throw a wobbly. + $row = self::_GetInt2d($recordData, 0); + $extension = true; + $cellAddress = array_pop(array_keys($this->_phpSheet->getComments())); + } +// echo 'Note Address=',$cellAddress,'
'; + + $cellAddress = str_replace('$','',$cellAddress); + $noteLength = self::_GetInt2d($recordData, 4); + $noteText = trim(substr($recordData, 6)); +// echo 'Note Length=',$noteLength,'
'; +// echo 'Note Text=',$noteText,'
'; + + if ($extension) { + // Concatenate this extension with the currently set comment for the cell + $comment = $this->_phpSheet->getComment( $cellAddress ); + $commentText = $comment->getText()->getPlainText(); + $comment->setText($this->_parseRichText($commentText.$noteText) ); + } else { + // Set comment for the cell + $this->_phpSheet->getComment( $cellAddress ) +// ->setAuthor( $author ) + ->setText($this->_parseRichText($noteText) ); + } + } + + } + + + /** + * The TEXT Object record contains the text associated with a cell annotation. + */ + private function _readTextObject() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_readDataOnly) { + return; + } + + // recordData consists of an array of subrecords looking like this: + // grbit: 2 bytes; Option Flags + // rot: 2 bytes; rotation + // cchText: 2 bytes; length of the text (in the first continue record) + // cbRuns: 2 bytes; length of the formatting (in the second continue record) + // followed by the continuation records containing the actual text and formatting + $grbitOpts = self::_GetInt2d($recordData, 0); + $rot = self::_GetInt2d($recordData, 2); + $cchText = self::_GetInt2d($recordData, 10); + $cbRuns = self::_GetInt2d($recordData, 12); + $text = $this->_getSplicedRecordData(); + + $this->_textObjects[$this->textObjRef] = array( + 'text' => substr($text["recordData"],$text["spliceOffsets"][0]+1,$cchText), + 'format' => substr($text["recordData"],$text["spliceOffsets"][1],$cbRuns), + 'alignment' => $grbitOpts, + 'rotation' => $rot + ); + +// echo '_readTextObject()
'; +// var_dump($this->_textObjects[$this->textObjRef]); +// echo '
'; + } + + + /** + * Read BOF + */ + private function _readBof() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 2; size: 2; type of the following data + $substreamType = self::_GetInt2d($recordData, 2); + + switch ($substreamType) { + case self::XLS_WorkbookGlobals: + $version = self::_GetInt2d($recordData, 0); + if (($version != self::XLS_BIFF8) && ($version != self::XLS_BIFF7)) { + throw new Exception('Cannot read this Excel file. Version is too old.'); + } + $this->_version = $version; + break; + + case self::XLS_Worksheet: + // do not use this version information for anything + // it is unreliable (OpenOffice doc, 5.8), use only version information from the global stream + break; + + default: + // substream, e.g. chart + // just skip the entire substream + do { + $code = self::_GetInt2d($this->_data, $this->_pos); + $this->_readDefault(); + } while ($code != self::XLS_Type_EOF && $this->_pos < $this->_dataSize); + break; + } + } + + + /** + * FILEPASS + * + * This record is part of the File Protection Block. It + * contains information about the read/write password of the + * file. All record contents following this record will be + * encrypted. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readFilepass() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); +// $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + throw new Exception('Cannot read encrypted file'); + } + + + /** + * CODEPAGE + * + * This record stores the text encoding used to write byte + * strings, stored as MS Windows code page identifier. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readCodepage() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; code page identifier + $codepage = self::_GetInt2d($recordData, 0); + + $this->_codepage = PHPExcel_Shared_CodePage::NumberToName($codepage); + } + + + /** + * DATEMODE + * + * This record specifies the base date for displaying date + * values. All dates are stored as count of days past this + * base date. In BIFF2-BIFF4 this record is part of the + * Calculation Settings Block. In BIFF5-BIFF8 it is + * stored in the Workbook Globals Substream. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readDateMode() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; 0 = base 1900, 1 = base 1904 + PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900); + if (ord($recordData{0}) == 1) { + PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_MAC_1904); + } + } + + + /** + * Read a FONT record + */ + private function _readFont() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + $objFont = new PHPExcel_Style_Font(); + + // offset: 0; size: 2; height of the font (in twips = 1/20 of a point) + $size = self::_GetInt2d($recordData, 0); + $objFont->setSize($size / 20); + + // offset: 2; size: 2; option flags + // bit: 0; mask 0x0001; bold (redundant in BIFF5-BIFF8) + // bit: 1; mask 0x0002; italic + $isItalic = (0x0002 & self::_GetInt2d($recordData, 2)) >> 1; + if ($isItalic) $objFont->setItalic(true); + + // bit: 2; mask 0x0004; underlined (redundant in BIFF5-BIFF8) + // bit: 3; mask 0x0008; strike + $isStrike = (0x0008 & self::_GetInt2d($recordData, 2)) >> 3; + if ($isStrike) $objFont->setStrikethrough(true); + + // offset: 4; size: 2; colour index + $colorIndex = self::_GetInt2d($recordData, 4); + $objFont->colorIndex = $colorIndex; + + // offset: 6; size: 2; font weight + $weight = self::_GetInt2d($recordData, 6); + switch ($weight) { + case 0x02BC: + $objFont->setBold(true); + break; + } + + // offset: 8; size: 2; escapement type + $escapement = self::_GetInt2d($recordData, 8); + switch ($escapement) { + case 0x0001: + $objFont->setSuperScript(true); + break; + case 0x0002: + $objFont->setSubScript(true); + break; + } + + // offset: 10; size: 1; underline type + $underlineType = ord($recordData{10}); + switch ($underlineType) { + case 0x00: + break; // no underline + case 0x01: + $objFont->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); + break; + case 0x02: + $objFont->setUnderline(PHPExcel_Style_Font::UNDERLINE_DOUBLE); + break; + case 0x21: + $objFont->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING); + break; + case 0x22: + $objFont->setUnderline(PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING); + break; + } + + // offset: 11; size: 1; font family + // offset: 12; size: 1; character set + // offset: 13; size: 1; not used + // offset: 14; size: var; font name + if ($this->_version == self::XLS_BIFF8) { + $string = self::_readUnicodeStringShort(substr($recordData, 14)); + } else { + $string = $this->_readByteStringShort(substr($recordData, 14)); + } + $objFont->setName($string['value']); + + $this->_objFonts[] = $objFont; + } + } + + + /** + * FORMAT + * + * This record contains information about a number format. + * All FORMAT records occur together in a sequential list. + * + * In BIFF2-BIFF4 other records referencing a FORMAT record + * contain a zero-based index into this list. From BIFF5 on + * the FORMAT record contains the index itself that will be + * used by other records. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readFormat() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + $indexCode = self::_GetInt2d($recordData, 0); + + if ($this->_version == self::XLS_BIFF8) { + $string = self::_readUnicodeStringLong(substr($recordData, 2)); + } else { + // BIFF7 + $string = $this->_readByteStringShort(substr($recordData, 2)); + } + + $formatString = $string['value']; + $this->_formats[$indexCode] = $formatString; + } + } + + + /** + * XF - Extended Format + * + * This record contains formatting information for cells, rows, columns or styles. + * According to http://support.microsoft.com/kb/147732 there are always at least 15 cell style XF + * and 1 cell XF. + * Inspection of Excel files generated by MS Office Excel shows that XF records 0-14 are cell style XF + * and XF record 15 is a cell XF + * We only read the first cell style XF and skip the remaining cell style XF records + * We read all cell XF records. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readXf() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + $objStyle = new PHPExcel_Style(); + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; Index to FONT record + if (self::_GetInt2d($recordData, 0) < 4) { + $fontIndex = self::_GetInt2d($recordData, 0); + } else { + // this has to do with that index 4 is omitted in all BIFF versions for some strange reason + // check the OpenOffice documentation of the FONT record + $fontIndex = self::_GetInt2d($recordData, 0) - 1; + } + $objStyle->setFont($this->_objFonts[$fontIndex]); + + // offset: 2; size: 2; Index to FORMAT record + $numberFormatIndex = self::_GetInt2d($recordData, 2); + if (isset($this->_formats[$numberFormatIndex])) { + // then we have user-defined format code + $numberformat = array('code' => $this->_formats[$numberFormatIndex]); + } elseif (($code = PHPExcel_Style_NumberFormat::builtInFormatCode($numberFormatIndex)) !== '') { + // then we have built-in format code + $numberformat = array('code' => $code); + } else { + // we set the general format code + $numberformat = array('code' => 'General'); + } + $objStyle->getNumberFormat()->setFormatCode($numberformat['code']); + + // offset: 4; size: 2; XF type, cell protection, and parent style XF + // bit 2-0; mask 0x0007; XF_TYPE_PROT + $xfTypeProt = self::_GetInt2d($recordData, 4); + // bit 0; mask 0x01; 1 = cell is locked + $isLocked = (0x01 & $xfTypeProt) >> 0; + $objStyle->getProtection()->setLocked($isLocked ? + PHPExcel_Style_Protection::PROTECTION_INHERIT : PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); + + // bit 1; mask 0x02; 1 = Formula is hidden + $isHidden = (0x02 & $xfTypeProt) >> 1; + $objStyle->getProtection()->setHidden($isHidden ? + PHPExcel_Style_Protection::PROTECTION_PROTECTED : PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); + + // bit 2; mask 0x04; 0 = Cell XF, 1 = Cell Style XF + $isCellStyleXf = (0x04 & $xfTypeProt) >> 2; + + // offset: 6; size: 1; Alignment and text break + // bit 2-0, mask 0x07; horizontal alignment + $horAlign = (0x07 & ord($recordData{6})) >> 0; + switch ($horAlign) { + case 0: + $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_GENERAL); + break; + case 1: + $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); + break; + case 2: + $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); + break; + case 3: + $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); + break; + case 5: + $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY); + break; + case 6: + $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS); + break; + } + // bit 3, mask 0x08; wrap text + $wrapText = (0x08 & ord($recordData{6})) >> 3; + switch ($wrapText) { + case 0: + $objStyle->getAlignment()->setWrapText(false); + break; + case 1: + $objStyle->getAlignment()->setWrapText(true); + break; + } + // bit 6-4, mask 0x70; vertical alignment + $vertAlign = (0x70 & ord($recordData{6})) >> 4; + switch ($vertAlign) { + case 0: + $objStyle->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP); + break; + case 1: + $objStyle->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); + break; + case 2: + $objStyle->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_BOTTOM); + break; + case 3: + $objStyle->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_JUSTIFY); + break; + } + + if ($this->_version == self::XLS_BIFF8) { + // offset: 7; size: 1; XF_ROTATION: Text rotation angle + $angle = ord($recordData{7}); + $rotation = 0; + if ($angle <= 90) { + $rotation = $angle; + } else if ($angle <= 180) { + $rotation = 90 - $angle; + } else if ($angle == 255) { + $rotation = -165; + } + $objStyle->getAlignment()->setTextRotation($rotation); + + // offset: 8; size: 1; Indentation, shrink to cell size, and text direction + // bit: 3-0; mask: 0x0F; indent level + $indent = (0x0F & ord($recordData{8})) >> 0; + $objStyle->getAlignment()->setIndent($indent); + + // bit: 4; mask: 0x10; 1 = shrink content to fit into cell + $shrinkToFit = (0x10 & ord($recordData{8})) >> 4; + switch ($shrinkToFit) { + case 0: + $objStyle->getAlignment()->setShrinkToFit(false); + break; + case 1: + $objStyle->getAlignment()->setShrinkToFit(true); + break; + } + + // offset: 9; size: 1; Flags used for attribute groups + + // offset: 10; size: 4; Cell border lines and background area + // bit: 3-0; mask: 0x0000000F; left style + if ($bordersLeftStyle = self::_mapBorderStyle((0x0000000F & self::_GetInt4d($recordData, 10)) >> 0)) { + $objStyle->getBorders()->getLeft()->setBorderStyle($bordersLeftStyle); + } + // bit: 7-4; mask: 0x000000F0; right style + if ($bordersRightStyle = self::_mapBorderStyle((0x000000F0 & self::_GetInt4d($recordData, 10)) >> 4)) { + $objStyle->getBorders()->getRight()->setBorderStyle($bordersRightStyle); + } + // bit: 11-8; mask: 0x00000F00; top style + if ($bordersTopStyle = self::_mapBorderStyle((0x00000F00 & self::_GetInt4d($recordData, 10)) >> 8)) { + $objStyle->getBorders()->getTop()->setBorderStyle($bordersTopStyle); + } + // bit: 15-12; mask: 0x0000F000; bottom style + if ($bordersBottomStyle = self::_mapBorderStyle((0x0000F000 & self::_GetInt4d($recordData, 10)) >> 12)) { + $objStyle->getBorders()->getBottom()->setBorderStyle($bordersBottomStyle); + } + // bit: 22-16; mask: 0x007F0000; left color + $objStyle->getBorders()->getLeft()->colorIndex = (0x007F0000 & self::_GetInt4d($recordData, 10)) >> 16; + + // bit: 29-23; mask: 0x3F800000; right color + $objStyle->getBorders()->getRight()->colorIndex = (0x3F800000 & self::_GetInt4d($recordData, 10)) >> 23; + + // bit: 30; mask: 0x40000000; 1 = diagonal line from top left to right bottom + $diagonalDown = (0x40000000 & self::_GetInt4d($recordData, 10)) >> 30 ? + true : false; + + // bit: 31; mask: 0x80000000; 1 = diagonal line from bottom left to top right + $diagonalUp = (0x80000000 & self::_GetInt4d($recordData, 10)) >> 31 ? + true : false; + + if ($diagonalUp == false && $diagonalDown == false) { + $objStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_NONE); + } elseif ($diagonalUp == true && $diagonalDown == false) { + $objStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_UP); + } elseif ($diagonalUp == false && $diagonalDown == true) { + $objStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_DOWN); + } elseif ($diagonalUp == true && $diagonalDown == true) { + $objStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_BOTH); + } + + // offset: 14; size: 4; + // bit: 6-0; mask: 0x0000007F; top color + $objStyle->getBorders()->getTop()->colorIndex = (0x0000007F & self::_GetInt4d($recordData, 14)) >> 0; + + // bit: 13-7; mask: 0x00003F80; bottom color + $objStyle->getBorders()->getBottom()->colorIndex = (0x00003F80 & self::_GetInt4d($recordData, 14)) >> 7; + + // bit: 20-14; mask: 0x001FC000; diagonal color + $objStyle->getBorders()->getDiagonal()->colorIndex = (0x001FC000 & self::_GetInt4d($recordData, 14)) >> 14; + + // bit: 24-21; mask: 0x01E00000; diagonal style + if ($bordersDiagonalStyle = self::_mapBorderStyle((0x01E00000 & self::_GetInt4d($recordData, 14)) >> 21)) { + $objStyle->getBorders()->getDiagonal()->setBorderStyle($bordersDiagonalStyle); + } + + // bit: 31-26; mask: 0xFC000000 fill pattern + if ($fillType = self::_mapFillPattern((0xFC000000 & self::_GetInt4d($recordData, 14)) >> 26)) { + $objStyle->getFill()->setFillType($fillType); + } + // offset: 18; size: 2; pattern and background colour + // bit: 6-0; mask: 0x007F; color index for pattern color + $objStyle->getFill()->startcolorIndex = (0x007F & self::_GetInt2d($recordData, 18)) >> 0; + + // bit: 13-7; mask: 0x3F80; color index for pattern background + $objStyle->getFill()->endcolorIndex = (0x3F80 & self::_GetInt2d($recordData, 18)) >> 7; + } else { + // BIFF5 + + // offset: 7; size: 1; Text orientation and flags + $orientationAndFlags = ord($recordData{7}); + + // bit: 1-0; mask: 0x03; XF_ORIENTATION: Text orientation + $xfOrientation = (0x03 & $orientationAndFlags) >> 0; + switch ($xfOrientation) { + case 0: + $objStyle->getAlignment()->setTextRotation(0); + break; + case 1: + $objStyle->getAlignment()->setTextRotation(-165); + break; + case 2: + $objStyle->getAlignment()->setTextRotation(90); + break; + case 3: + $objStyle->getAlignment()->setTextRotation(-90); + break; + } + + // offset: 8; size: 4; cell border lines and background area + $borderAndBackground = self::_GetInt4d($recordData, 8); + + // bit: 6-0; mask: 0x0000007F; color index for pattern color + $objStyle->getFill()->startcolorIndex = (0x0000007F & $borderAndBackground) >> 0; + + // bit: 13-7; mask: 0x00003F80; color index for pattern background + $objStyle->getFill()->endcolorIndex = (0x00003F80 & $borderAndBackground) >> 7; + + // bit: 21-16; mask: 0x003F0000; fill pattern + $objStyle->getFill()->setFillType(self::_mapFillPattern((0x003F0000 & $borderAndBackground) >> 16)); + + // bit: 24-22; mask: 0x01C00000; bottom line style + $objStyle->getBorders()->getBottom()->setBorderStyle(self::_mapBorderStyle((0x01C00000 & $borderAndBackground) >> 22)); + + // bit: 31-25; mask: 0xFE000000; bottom line color + $objStyle->getBorders()->getBottom()->colorIndex = (0xFE000000 & $borderAndBackground) >> 25; + + // offset: 12; size: 4; cell border lines + $borderLines = self::_GetInt4d($recordData, 12); + + // bit: 2-0; mask: 0x00000007; top line style + $objStyle->getBorders()->getTop()->setBorderStyle(self::_mapBorderStyle((0x00000007 & $borderLines) >> 0)); + + // bit: 5-3; mask: 0x00000038; left line style + $objStyle->getBorders()->getLeft()->setBorderStyle(self::_mapBorderStyle((0x00000038 & $borderLines) >> 3)); + + // bit: 8-6; mask: 0x000001C0; right line style + $objStyle->getBorders()->getRight()->setBorderStyle(self::_mapBorderStyle((0x000001C0 & $borderLines) >> 6)); + + // bit: 15-9; mask: 0x0000FE00; top line color index + $objStyle->getBorders()->getTop()->colorIndex = (0x0000FE00 & $borderLines) >> 9; + + // bit: 22-16; mask: 0x007F0000; left line color index + $objStyle->getBorders()->getLeft()->colorIndex = (0x007F0000 & $borderLines) >> 16; + + // bit: 29-23; mask: 0x3F800000; right line color index + $objStyle->getBorders()->getRight()->colorIndex = (0x3F800000 & $borderLines) >> 23; + } + + // add cellStyleXf or cellXf and update mapping + if ($isCellStyleXf) { + // we only read one style XF record which is always the first + if ($this->_xfIndex == 0) { + $this->_phpExcel->addCellStyleXf($objStyle); + $this->_mapCellStyleXfIndex[$this->_xfIndex] = 0; + } + } else { + // we read all cell XF records + $this->_phpExcel->addCellXf($objStyle); + $this->_mapCellXfIndex[$this->_xfIndex] = count($this->_phpExcel->getCellXfCollection()) - 1; + } + + // update XF index for when we read next record + ++$this->_xfIndex; + } + } + + + /** + * + */ + private function _readXfExt() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; 0x087D = repeated header + + // offset: 2; size: 2 + + // offset: 4; size: 8; not used + + // offset: 12; size: 2; record version + + // offset: 14; size: 2; index to XF record which this record modifies + $ixfe = self::_GetInt2d($recordData, 14); + + // offset: 16; size: 2; not used + + // offset: 18; size: 2; number of extension properties that follow + $cexts = self::_GetInt2d($recordData, 18); + + // start reading the actual extension data + $offset = 20; + while ($offset < $length) { + // extension type + $extType = self::_GetInt2d($recordData, $offset); + + // extension length + $cb = self::_GetInt2d($recordData, $offset + 2); + + // extension data + $extData = substr($recordData, $offset + 4, $cb); + + switch ($extType) { + case 4: // fill start color + $xclfType = self::_GetInt2d($extData, 0); // color type + $xclrValue = substr($extData, 4, 4); // color value (value based on color type) + + if ($xclfType == 2) { + $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); + + // modify the relevant style property + if ( isset($this->_mapCellXfIndex[$ixfe]) ) { + $fill = $this->_phpExcel->getCellXfByIndex($this->_mapCellXfIndex[$ixfe])->getFill(); + $fill->getStartColor()->setRGB($rgb); + unset($fill->startcolorIndex); // normal color index does not apply, discard + } + } + break; + + case 5: // fill end color + $xclfType = self::_GetInt2d($extData, 0); // color type + $xclrValue = substr($extData, 4, 4); // color value (value based on color type) + + if ($xclfType == 2) { + $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); + + // modify the relevant style property + if ( isset($this->_mapCellXfIndex[$ixfe]) ) { + $fill = $this->_phpExcel->getCellXfByIndex($this->_mapCellXfIndex[$ixfe])->getFill(); + $fill->getEndColor()->setRGB($rgb); + unset($fill->endcolorIndex); // normal color index does not apply, discard + } + } + break; + + case 7: // border color top + $xclfType = self::_GetInt2d($extData, 0); // color type + $xclrValue = substr($extData, 4, 4); // color value (value based on color type) + + if ($xclfType == 2) { + $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); + + // modify the relevant style property + if ( isset($this->_mapCellXfIndex[$ixfe]) ) { + $top = $this->_phpExcel->getCellXfByIndex($this->_mapCellXfIndex[$ixfe])->getBorders()->getTop(); + $top->getColor()->setRGB($rgb); + unset($top->colorIndex); // normal color index does not apply, discard + } + } + break; + + case 8: // border color bottom + $xclfType = self::_GetInt2d($extData, 0); // color type + $xclrValue = substr($extData, 4, 4); // color value (value based on color type) + + if ($xclfType == 2) { + $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); + + // modify the relevant style property + if ( isset($this->_mapCellXfIndex[$ixfe]) ) { + $bottom = $this->_phpExcel->getCellXfByIndex($this->_mapCellXfIndex[$ixfe])->getBorders()->getBottom(); + $bottom->getColor()->setRGB($rgb); + unset($bottom->colorIndex); // normal color index does not apply, discard + } + } + break; + + case 9: // border color left + $xclfType = self::_GetInt2d($extData, 0); // color type + $xclrValue = substr($extData, 4, 4); // color value (value based on color type) + + if ($xclfType == 2) { + $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); + + // modify the relevant style property + if ( isset($this->_mapCellXfIndex[$ixfe]) ) { + $left = $this->_phpExcel->getCellXfByIndex($this->_mapCellXfIndex[$ixfe])->getBorders()->getLeft(); + $left->getColor()->setRGB($rgb); + unset($left->colorIndex); // normal color index does not apply, discard + } + } + break; + + case 10: // border color right + $xclfType = self::_GetInt2d($extData, 0); // color type + $xclrValue = substr($extData, 4, 4); // color value (value based on color type) + + if ($xclfType == 2) { + $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); + + // modify the relevant style property + if ( isset($this->_mapCellXfIndex[$ixfe]) ) { + $right = $this->_phpExcel->getCellXfByIndex($this->_mapCellXfIndex[$ixfe])->getBorders()->getRight(); + $right->getColor()->setRGB($rgb); + unset($right->colorIndex); // normal color index does not apply, discard + } + } + break; + + case 11: // border color diagonal + $xclfType = self::_GetInt2d($extData, 0); // color type + $xclrValue = substr($extData, 4, 4); // color value (value based on color type) + + if ($xclfType == 2) { + $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); + + // modify the relevant style property + if ( isset($this->_mapCellXfIndex[$ixfe]) ) { + $diagonal = $this->_phpExcel->getCellXfByIndex($this->_mapCellXfIndex[$ixfe])->getBorders()->getDiagonal(); + $diagonal->getColor()->setRGB($rgb); + unset($diagonal->colorIndex); // normal color index does not apply, discard + } + } + break; + + case 13: // font color + $xclfType = self::_GetInt2d($extData, 0); // color type + $xclrValue = substr($extData, 4, 4); // color value (value based on color type) + + if ($xclfType == 2) { + $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); + + // modify the relevant style property + if ( isset($this->_mapCellXfIndex[$ixfe]) ) { + $font = $this->_phpExcel->getCellXfByIndex($this->_mapCellXfIndex[$ixfe])->getFont(); + $font->getColor()->setRGB($rgb); + unset($font->colorIndex); // normal color index does not apply, discard + } + } + break; + } + + $offset += $cb; + } + } + + } + + + /** + * Read STYLE record + */ + private function _readStyle() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; index to XF record and flag for built-in style + $ixfe = self::_GetInt2d($recordData, 0); + + // bit: 11-0; mask 0x0FFF; index to XF record + $xfIndex = (0x0FFF & $ixfe) >> 0; + + // bit: 15; mask 0x8000; 0 = user-defined style, 1 = built-in style + $isBuiltIn = (bool) ((0x8000 & $ixfe) >> 15); + + if ($isBuiltIn) { + // offset: 2; size: 1; identifier for built-in style + $builtInId = ord($recordData{2}); + + switch ($builtInId) { + case 0x00: + // currently, we are not using this for anything + break; + + default: + break; + } + + } else { + // user-defined; not supported by PHPExcel + } + } + } + + + /** + * Read PALETTE record + */ + private function _readPalette() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; number of following colors + $nm = self::_GetInt2d($recordData, 0); + + // list of RGB colors + for ($i = 0; $i < $nm; ++$i) { + $rgb = substr($recordData, 2 + 4 * $i, 4); + $this->_palette[] = self::_readRGB($rgb); + } + } + } + + + /** + * SHEET + * + * This record is located in the Workbook Globals + * Substream and represents a sheet inside the workbook. + * One SHEET record is written for each sheet. It stores the + * sheet name and a stream offset to the BOF record of the + * respective Sheet Substream within the Workbook Stream. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readSheet() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 4; absolute stream position of the BOF record of the sheet + $rec_offset = self::_GetInt4d($recordData, 0); + + // offset: 4; size: 1; sheet state + switch (ord($recordData{4})) { + case 0x00: $sheetState = PHPExcel_Worksheet::SHEETSTATE_VISIBLE; break; + case 0x01: $sheetState = PHPExcel_Worksheet::SHEETSTATE_HIDDEN; break; + case 0x02: $sheetState = PHPExcel_Worksheet::SHEETSTATE_VERYHIDDEN; break; + default: $sheetState = PHPExcel_Worksheet::SHEETSTATE_VISIBLE; break; + } + + // offset: 5; size: 1; sheet type + $sheetType = ord($recordData{5}); + + // offset: 6; size: var; sheet name + if ($this->_version == self::XLS_BIFF8) { + $string = self::_readUnicodeStringShort(substr($recordData, 6)); + $rec_name = $string['value']; + } elseif ($this->_version == self::XLS_BIFF7) { + $string = $this->_readByteStringShort(substr($recordData, 6)); + $rec_name = $string['value']; + } + + $this->_sheets[] = array( + 'name' => $rec_name, + 'offset' => $rec_offset, + 'sheetState' => $sheetState, + 'sheetType' => $sheetType, + ); + } + + + /** + * Read EXTERNALBOOK record + */ + private function _readExternalBook() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset within record data + $offset = 0; + + // there are 4 types of records + if (strlen($recordData) > 4) { + // external reference + // offset: 0; size: 2; number of sheet names ($nm) + $nm = self::_GetInt2d($recordData, 0); + $offset += 2; + + // offset: 2; size: var; encoded URL without sheet name (Unicode string, 16-bit length) + $encodedUrlString = self::_readUnicodeStringLong(substr($recordData, 2)); + $offset += $encodedUrlString['size']; + + // offset: var; size: var; list of $nm sheet names (Unicode strings, 16-bit length) + $externalSheetNames = array(); + for ($i = 0; $i < $nm; ++$i) { + $externalSheetNameString = self::_readUnicodeStringLong(substr($recordData, $offset)); + $externalSheetNames[] = $externalSheetNameString['value']; + $offset += $externalSheetNameString['size']; + } + + // store the record data + $this->_externalBooks[] = array( + 'type' => 'external', + 'encodedUrl' => $encodedUrlString['value'], + 'externalSheetNames' => $externalSheetNames, + ); + + } elseif (substr($recordData, 2, 2) == pack('CC', 0x01, 0x04)) { + // internal reference + // offset: 0; size: 2; number of sheet in this document + // offset: 2; size: 2; 0x01 0x04 + $this->_externalBooks[] = array( + 'type' => 'internal', + ); + } elseif (substr($recordData, 0, 4) == pack('vCC', 0x0001, 0x01, 0x3A)) { + // add-in function + // offset: 0; size: 2; 0x0001 + $this->_externalBooks[] = array( + 'type' => 'addInFunction', + ); + } elseif (substr($recordData, 0, 2) == pack('v', 0x0000)) { + // DDE links, OLE links + // offset: 0; size: 2; 0x0000 + // offset: 2; size: var; encoded source document name + $this->_externalBooks[] = array( + 'type' => 'DDEorOLE', + ); + } + } + + + /** + * Read EXTERNNAME record. + */ + private function _readExternName() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // external sheet references provided for named cells + if ($this->_version == self::XLS_BIFF8) { + // offset: 0; size: 2; options + $options = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; + + // offset: 4; size: 2; not used + + // offset: 6; size: var + $nameString = self::_readUnicodeStringShort(substr($recordData, 6)); + + // offset: var; size: var; formula data + $offset = 6 + $nameString['size']; + $formula = $this->_getFormulaFromStructure(substr($recordData, $offset)); + + $this->_externalNames[] = array( + 'name' => $nameString['value'], + 'formula' => $formula, + ); + } + } + + + /** + * Read EXTERNSHEET record + */ + private function _readExternSheet() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // external sheet references provided for named cells + if ($this->_version == self::XLS_BIFF8) { + // offset: 0; size: 2; number of following ref structures + $nm = self::_GetInt2d($recordData, 0); + for ($i = 0; $i < $nm; ++$i) { + $this->_ref[] = array( + // offset: 2 + 6 * $i; index to EXTERNALBOOK record + 'externalBookIndex' => self::_GetInt2d($recordData, 2 + 6 * $i), + // offset: 4 + 6 * $i; index to first sheet in EXTERNALBOOK record + 'firstSheetIndex' => self::_GetInt2d($recordData, 4 + 6 * $i), + // offset: 6 + 6 * $i; index to last sheet in EXTERNALBOOK record + 'lastSheetIndex' => self::_GetInt2d($recordData, 6 + 6 * $i), + ); + } + } + } + + + /** + * DEFINEDNAME + * + * This record is part of a Link Table. It contains the name + * and the token array of an internal defined name. Token + * arrays of defined names contain tokens with aberrant + * token classes. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readDefinedName() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_version == self::XLS_BIFF8) { + // retrieves named cells + + // offset: 0; size: 2; option flags + $opts = self::_GetInt2d($recordData, 0); + + // bit: 5; mask: 0x0020; 0 = user-defined name, 1 = built-in-name + $isBuiltInName = (0x0020 & $opts) >> 5; + + // offset: 2; size: 1; keyboard shortcut + + // offset: 3; size: 1; length of the name (character count) + $nlen = ord($recordData{3}); + + // offset: 4; size: 2; size of the formula data (it can happen that this is zero) + // note: there can also be additional data, this is not included in $flen + $flen = self::_GetInt2d($recordData, 4); + + // offset: 8; size: 2; 0=Global name, otherwise index to sheet (1-based) + $scope = self::_GetInt2d($recordData, 8); + + // offset: 14; size: var; Name (Unicode string without length field) + $string = self::_readUnicodeString(substr($recordData, 14), $nlen); + + // offset: var; size: $flen; formula data + $offset = 14 + $string['size']; + $formulaStructure = pack('v', $flen) . substr($recordData, $offset); + + try { + $formula = $this->_getFormulaFromStructure($formulaStructure); + } catch (Exception $e) { + $formula = ''; + } + + $this->_definedname[] = array( + 'isBuiltInName' => $isBuiltInName, + 'name' => $string['value'], + 'formula' => $formula, + 'scope' => $scope, + ); + } + } + + + /** + * Read MSODRAWINGGROUP record + */ + private function _readMsoDrawingGroup() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + + // get spliced record data + $splicedRecordData = $this->_getSplicedRecordData(); + $recordData = $splicedRecordData['recordData']; + + $this->_drawingGroupData .= $recordData; + } + + + /** + * SST - Shared String Table + * + * This record contains a list of all strings used anywhere + * in the workbook. Each string occurs only once. The + * workbook uses indexes into the list to reference the + * strings. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + **/ + private function _readSst() + { + // offset within (spliced) record data + $pos = 0; + + // get spliced record data + $splicedRecordData = $this->_getSplicedRecordData(); + + $recordData = $splicedRecordData['recordData']; + $spliceOffsets = $splicedRecordData['spliceOffsets']; + + // offset: 0; size: 4; total number of strings in the workbook + $pos += 4; + + // offset: 4; size: 4; number of following strings ($nm) + $nm = self::_GetInt4d($recordData, 4); + $pos += 4; + + // loop through the Unicode strings (16-bit length) + for ($i = 0; $i < $nm; ++$i) { + + // number of characters in the Unicode string + $numChars = self::_GetInt2d($recordData, $pos); + $pos += 2; + + // option flags + $optionFlags = ord($recordData{$pos}); + ++$pos; + + // bit: 0; mask: 0x01; 0 = compressed; 1 = uncompressed + $isCompressed = (($optionFlags & 0x01) == 0) ; + + // bit: 2; mask: 0x02; 0 = ordinary; 1 = Asian phonetic + $hasAsian = (($optionFlags & 0x04) != 0); + + // bit: 3; mask: 0x03; 0 = ordinary; 1 = Rich-Text + $hasRichText = (($optionFlags & 0x08) != 0); + + if ($hasRichText) { + // number of Rich-Text formatting runs + $formattingRuns = self::_GetInt2d($recordData, $pos); + $pos += 2; + } + + if ($hasAsian) { + // size of Asian phonetic setting + $extendedRunLength = self::_GetInt4d($recordData, $pos); + $pos += 4; + } + + // expected byte length of character array if not split + $len = ($isCompressed) ? $numChars : $numChars * 2; + + // look up limit position + foreach ($spliceOffsets as $spliceOffset) { + // it can happen that the string is empty, therefore we need + // <= and not just < + if ($pos <= $spliceOffset) { + $limitpos = $spliceOffset; + break; + } + } + + if ($pos + $len <= $limitpos) { + // character array is not split between records + + $retstr = substr($recordData, $pos, $len); + $pos += $len; + + } else { + // character array is split between records + + // first part of character array + $retstr = substr($recordData, $pos, $limitpos - $pos); + + $bytesRead = $limitpos - $pos; + + // remaining characters in Unicode string + $charsLeft = $numChars - (($isCompressed) ? $bytesRead : ($bytesRead / 2)); + + $pos = $limitpos; + + // keep reading the characters + while ($charsLeft > 0) { + + // look up next limit position, in case the string span more than one continue record + foreach ($spliceOffsets as $spliceOffset) { + if ($pos < $spliceOffset) { + $limitpos = $spliceOffset; + break; + } + } + + // repeated option flags + // OpenOffice.org documentation 5.21 + $option = ord($recordData{$pos}); + ++$pos; + + if ($isCompressed && ($option == 0)) { + // 1st fragment compressed + // this fragment compressed + $len = min($charsLeft, $limitpos - $pos); + $retstr .= substr($recordData, $pos, $len); + $charsLeft -= $len; + $isCompressed = true; + + } elseif (!$isCompressed && ($option != 0)) { + // 1st fragment uncompressed + // this fragment uncompressed + $len = min($charsLeft * 2, $limitpos - $pos); + $retstr .= substr($recordData, $pos, $len); + $charsLeft -= $len / 2; + $isCompressed = false; + + } elseif (!$isCompressed && ($option == 0)) { + // 1st fragment uncompressed + // this fragment compressed + $len = min($charsLeft, $limitpos - $pos); + for ($j = 0; $j < $len; ++$j) { + $retstr .= $recordData{$pos + $j} . chr(0); + } + $charsLeft -= $len; + $isCompressed = false; + + } else { + // 1st fragment compressed + // this fragment uncompressed + $newstr = ''; + for ($j = 0; $j < strlen($retstr); ++$j) { + $newstr .= $retstr[$j] . chr(0); + } + $retstr = $newstr; + $len = min($charsLeft * 2, $limitpos - $pos); + $retstr .= substr($recordData, $pos, $len); + $charsLeft -= $len / 2; + $isCompressed = false; + } + + $pos += $len; + } + } + + // convert to UTF-8 + $retstr = self::_encodeUTF16($retstr, $isCompressed); + + // read additional Rich-Text information, if any + $fmtRuns = array(); + if ($hasRichText) { + // list of formatting runs + for ($j = 0; $j < $formattingRuns; ++$j) { + // first formatted character; zero-based + $charPos = self::_GetInt2d($recordData, $pos + $j * 4); + + // index to font record + $fontIndex = self::_GetInt2d($recordData, $pos + 2 + $j * 4); + + $fmtRuns[] = array( + 'charPos' => $charPos, + 'fontIndex' => $fontIndex, + ); + } + $pos += 4 * $formattingRuns; + } + + // read additional Asian phonetics information, if any + if ($hasAsian) { + // For Asian phonetic settings, we skip the extended string data + $pos += $extendedRunLength; + } + + // store the shared sting + $this->_sst[] = array( + 'value' => $retstr, + 'fmtRuns' => $fmtRuns, + ); + } + + // _getSplicedRecordData() takes care of moving current position in data stream + } + + + /** + * Read PRINTGRIDLINES record + */ + private function _readPrintGridlines() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_version == self::XLS_BIFF8 && !$this->_readDataOnly) { + // offset: 0; size: 2; 0 = do not print sheet grid lines; 1 = print sheet gridlines + $printGridlines = (bool) self::_GetInt2d($recordData, 0); + $this->_phpSheet->setPrintGridlines($printGridlines); + } + } + + + /** + * Read DEFAULTROWHEIGHT record + */ + private function _readDefaultRowHeight() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; option flags + // offset: 2; size: 2; default height for unused rows, (twips 1/20 point) + $height = self::_GetInt2d($recordData, 2); + $this->_phpSheet->getDefaultRowDimension()->setRowHeight($height / 20); + } + + + /** + * Read SHEETPR record + */ + private function _readSheetPr() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2 + + // bit: 6; mask: 0x0040; 0 = outline buttons above outline group + $isSummaryBelow = (0x0040 & self::_GetInt2d($recordData, 0)) >> 6; + $this->_phpSheet->setShowSummaryBelow($isSummaryBelow); + + // bit: 7; mask: 0x0080; 0 = outline buttons left of outline group + $isSummaryRight = (0x0080 & self::_GetInt2d($recordData, 0)) >> 7; + $this->_phpSheet->setShowSummaryRight($isSummaryRight); + + // bit: 8; mask: 0x100; 0 = scale printout in percent, 1 = fit printout to number of pages + // this corresponds to radio button setting in page setup dialog in Excel + $this->_isFitToPages = (bool) ((0x0100 & self::_GetInt2d($recordData, 0)) >> 8); + } + + + /** + * Read HORIZONTALPAGEBREAKS record + */ + private function _readHorizontalPageBreaks() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_version == self::XLS_BIFF8 && !$this->_readDataOnly) { + + // offset: 0; size: 2; number of the following row index structures + $nm = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 6 * $nm; list of $nm row index structures + for ($i = 0; $i < $nm; ++$i) { + $r = self::_GetInt2d($recordData, 2 + 6 * $i); + $cf = self::_GetInt2d($recordData, 2 + 6 * $i + 2); + $cl = self::_GetInt2d($recordData, 2 + 6 * $i + 4); + + // not sure why two column indexes are necessary? + $this->_phpSheet->setBreakByColumnAndRow($cf, $r, PHPExcel_Worksheet::BREAK_ROW); + } + } + } + + + /** + * Read VERTICALPAGEBREAKS record + */ + private function _readVerticalPageBreaks() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_version == self::XLS_BIFF8 && !$this->_readDataOnly) { + // offset: 0; size: 2; number of the following column index structures + $nm = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 6 * $nm; list of $nm row index structures + for ($i = 0; $i < $nm; ++$i) { + $c = self::_GetInt2d($recordData, 2 + 6 * $i); + $rf = self::_GetInt2d($recordData, 2 + 6 * $i + 2); + $rl = self::_GetInt2d($recordData, 2 + 6 * $i + 4); + + // not sure why two row indexes are necessary? + $this->_phpSheet->setBreakByColumnAndRow($c, $rf, PHPExcel_Worksheet::BREAK_COLUMN); + } + } + } + + + /** + * Read HEADER record + */ + private function _readHeader() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: var + // realized that $recordData can be empty even when record exists + if ($recordData) { + if ($this->_version == self::XLS_BIFF8) { + $string = self::_readUnicodeStringLong($recordData); + } else { + $string = $this->_readByteStringShort($recordData); + } + + $this->_phpSheet->getHeaderFooter()->setOddHeader($string['value']); + $this->_phpSheet->getHeaderFooter()->setEvenHeader($string['value']); + } + } + } + + + /** + * Read FOOTER record + */ + private function _readFooter() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: var + // realized that $recordData can be empty even when record exists + if ($recordData) { + if ($this->_version == self::XLS_BIFF8) { + $string = self::_readUnicodeStringLong($recordData); + } else { + $string = $this->_readByteStringShort($recordData); + } + $this->_phpSheet->getHeaderFooter()->setOddFooter($string['value']); + $this->_phpSheet->getHeaderFooter()->setEvenFooter($string['value']); + } + } + } + + + /** + * Read HCENTER record + */ + private function _readHcenter() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; 0 = print sheet left aligned, 1 = print sheet centered horizontally + $isHorizontalCentered = (bool) self::_GetInt2d($recordData, 0); + + $this->_phpSheet->getPageSetup()->setHorizontalCentered($isHorizontalCentered); + } + } + + + /** + * Read VCENTER record + */ + private function _readVcenter() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; 0 = print sheet aligned at top page border, 1 = print sheet vertically centered + $isVerticalCentered = (bool) self::_GetInt2d($recordData, 0); + + $this->_phpSheet->getPageSetup()->setVerticalCentered($isVerticalCentered); + } + } + + + /** + * Read LEFTMARGIN record + */ + private function _readLeftMargin() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 8 + $this->_phpSheet->getPageMargins()->setLeft(self::_extractNumber($recordData)); + } + } + + + /** + * Read RIGHTMARGIN record + */ + private function _readRightMargin() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 8 + $this->_phpSheet->getPageMargins()->setRight(self::_extractNumber($recordData)); + } + } + + + /** + * Read TOPMARGIN record + */ + private function _readTopMargin() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 8 + $this->_phpSheet->getPageMargins()->setTop(self::_extractNumber($recordData)); + } + } + + + /** + * Read BOTTOMMARGIN record + */ + private function _readBottomMargin() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 8 + $this->_phpSheet->getPageMargins()->setBottom(self::_extractNumber($recordData)); + } + } + + + /** + * Read PAGESETUP record + */ + private function _readPageSetup() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; paper size + $paperSize = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; scaling factor + $scale = self::_GetInt2d($recordData, 2); + + // offset: 6; size: 2; fit worksheet width to this number of pages, 0 = use as many as needed + $fitToWidth = self::_GetInt2d($recordData, 6); + + // offset: 8; size: 2; fit worksheet height to this number of pages, 0 = use as many as needed + $fitToHeight = self::_GetInt2d($recordData, 8); + + // offset: 10; size: 2; option flags + + // bit: 1; mask: 0x0002; 0=landscape, 1=portrait + $isPortrait = (0x0002 & self::_GetInt2d($recordData, 10)) >> 1; + + // bit: 2; mask: 0x0004; 1= paper size, scaling factor, paper orient. not init + // when this bit is set, do not use flags for those properties + $isNotInit = (0x0004 & self::_GetInt2d($recordData, 10)) >> 2; + + if (!$isNotInit) { + $this->_phpSheet->getPageSetup()->setPaperSize($paperSize); + switch ($isPortrait) { + case 0: $this->_phpSheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); break; + case 1: $this->_phpSheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT); break; + } + + $this->_phpSheet->getPageSetup()->setScale($scale, false); + $this->_phpSheet->getPageSetup()->setFitToPage((bool) $this->_isFitToPages); + $this->_phpSheet->getPageSetup()->setFitToWidth($fitToWidth, false); + $this->_phpSheet->getPageSetup()->setFitToHeight($fitToHeight, false); + } + + // offset: 16; size: 8; header margin (IEEE 754 floating-point value) + $marginHeader = self::_extractNumber(substr($recordData, 16, 8)); + $this->_phpSheet->getPageMargins()->setHeader($marginHeader); + + // offset: 24; size: 8; footer margin (IEEE 754 floating-point value) + $marginFooter = self::_extractNumber(substr($recordData, 24, 8)); + $this->_phpSheet->getPageMargins()->setFooter($marginFooter); + } + } + + + /** + * PROTECT - Sheet protection (BIFF2 through BIFF8) + * if this record is omitted, then it also means no sheet protection + */ + private function _readProtect() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_readDataOnly) { + return; + } + + // offset: 0; size: 2; + + // bit 0, mask 0x01; 1 = sheet is protected + $bool = (0x01 & self::_GetInt2d($recordData, 0)) >> 0; + $this->_phpSheet->getProtection()->setSheet((bool)$bool); + } + + + /** + * SCENPROTECT + */ + private function _readScenProtect() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_readDataOnly) { + return; + } + + // offset: 0; size: 2; + + // bit: 0, mask 0x01; 1 = scenarios are protected + $bool = (0x01 & self::_GetInt2d($recordData, 0)) >> 0; + + $this->_phpSheet->getProtection()->setScenarios((bool)$bool); + } + + + /** + * OBJECTPROTECT + */ + private function _readObjectProtect() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_readDataOnly) { + return; + } + + // offset: 0; size: 2; + + // bit: 0, mask 0x01; 1 = objects are protected + $bool = (0x01 & self::_GetInt2d($recordData, 0)) >> 0; + + $this->_phpSheet->getProtection()->setObjects((bool)$bool); + } + + + /** + * PASSWORD - Sheet protection (hashed) password (BIFF2 through BIFF8) + */ + private function _readPassword() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; 16-bit hash value of password + $password = strtoupper(dechex(self::_GetInt2d($recordData, 0))); // the hashed password + $this->_phpSheet->getProtection()->setPassword($password, true); + } + } + + + /** + * Read DEFCOLWIDTH record + */ + private function _readDefColWidth() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; default column width + $width = self::_GetInt2d($recordData, 0); + if ($width != 8) { + $this->_phpSheet->getDefaultColumnDimension()->setWidth($width); + } + } + + + /** + * Read COLINFO record + */ + private function _readColInfo() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; index to first column in range + $fc = self::_GetInt2d($recordData, 0); // first column index + + // offset: 2; size: 2; index to last column in range + $lc = self::_GetInt2d($recordData, 2); // first column index + + // offset: 4; size: 2; width of the column in 1/256 of the width of the zero character + $width = self::_GetInt2d($recordData, 4); + + // offset: 6; size: 2; index to XF record for default column formatting + $xfIndex = self::_GetInt2d($recordData, 6); + + // offset: 8; size: 2; option flags + + // bit: 0; mask: 0x0001; 1= columns are hidden + $isHidden = (0x0001 & self::_GetInt2d($recordData, 8)) >> 0; + + // bit: 10-8; mask: 0x0700; outline level of the columns (0 = no outline) + $level = (0x0700 & self::_GetInt2d($recordData, 8)) >> 8; + + // bit: 12; mask: 0x1000; 1 = collapsed + $isCollapsed = (0x1000 & self::_GetInt2d($recordData, 8)) >> 12; + + // offset: 10; size: 2; not used + + for ($i = $fc; $i <= $lc; ++$i) { + if ($lc == 255 || $lc == 256) { + $this->_phpSheet->getDefaultColumnDimension()->setWidth($width / 256); + break; + } + $this->_phpSheet->getColumnDimensionByColumn($i)->setWidth($width / 256); + $this->_phpSheet->getColumnDimensionByColumn($i)->setVisible(!$isHidden); + $this->_phpSheet->getColumnDimensionByColumn($i)->setOutlineLevel($level); + $this->_phpSheet->getColumnDimensionByColumn($i)->setCollapsed($isCollapsed); + $this->_phpSheet->getColumnDimensionByColumn($i)->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + } + } + + + /** + * ROW + * + * This record contains the properties of a single row in a + * sheet. Rows and cells in a sheet are divided into blocks + * of 32 rows. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readRow() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; index of this row + $r = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; index to column of the first cell which is described by a cell record + + // offset: 4; size: 2; index to column of the last cell which is described by a cell record, increased by 1 + + // offset: 6; size: 2; + + // bit: 14-0; mask: 0x7FFF; height of the row, in twips = 1/20 of a point + $height = (0x7FFF & self::_GetInt2d($recordData, 6)) >> 0; + + // bit: 15: mask: 0x8000; 0 = row has custom height; 1= row has default height + $useDefaultHeight = (0x8000 & self::_GetInt2d($recordData, 6)) >> 15; + + if (!$useDefaultHeight) { + $this->_phpSheet->getRowDimension($r + 1)->setRowHeight($height / 20); + } + + // offset: 8; size: 2; not used + + // offset: 10; size: 2; not used in BIFF5-BIFF8 + + // offset: 12; size: 4; option flags and default row formatting + + // bit: 2-0: mask: 0x00000007; outline level of the row + $level = (0x00000007 & self::_GetInt4d($recordData, 12)) >> 0; + $this->_phpSheet->getRowDimension($r + 1)->setOutlineLevel($level); + + // bit: 4; mask: 0x00000010; 1 = outline group start or ends here... and is collapsed + $isCollapsed = (0x00000010 & self::_GetInt4d($recordData, 12)) >> 4; + $this->_phpSheet->getRowDimension($r + 1)->setCollapsed($isCollapsed); + + // bit: 5; mask: 0x00000020; 1 = row is hidden + $isHidden = (0x00000020 & self::_GetInt4d($recordData, 12)) >> 5; + $this->_phpSheet->getRowDimension($r + 1)->setVisible(!$isHidden); + + // bit: 7; mask: 0x00000080; 1 = row has explicit format + $hasExplicitFormat = (0x00000080 & self::_GetInt4d($recordData, 12)) >> 7; + + // bit: 27-16; mask: 0x0FFF0000; only applies when hasExplicitFormat = 1; index to XF record + $xfIndex = (0x0FFF0000 & self::_GetInt4d($recordData, 12)) >> 16; + + if ($hasExplicitFormat) { + $this->_phpSheet->getRowDimension($r + 1)->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + } + } + + + /** + * Read RK record + * This record represents a cell that contains an RK value + * (encoded integer or floating-point value). If a + * floating-point value cannot be encoded to an RK value, + * a NUMBER record will be written. This record replaces the + * record INTEGER written in BIFF2. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readRk() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; index to row + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; index to column + $column = self::_GetInt2d($recordData, 2); + $columnString = PHPExcel_Cell::stringFromColumnIndex($column); + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + // offset: 4; size: 2; index to XF record + $xfIndex = self::_GetInt2d($recordData, 4); + + // offset: 6; size: 4; RK value + $rknum = self::_GetInt4d($recordData, 6); + $numValue = self::_GetIEEE754($rknum); + + $cell = $this->_phpSheet->getCell($columnString . ($row + 1)); + if (!$this->_readDataOnly) { + // add style information + $cell->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + + // add cell + $cell->setValueExplicit($numValue, PHPExcel_Cell_DataType::TYPE_NUMERIC); + } + } + + + /** + * Read LABELSST record + * This record represents a cell that contains a string. It + * replaces the LABEL record and RSTRING record used in + * BIFF2-BIFF5. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readLabelSst() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; index to row + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; index to column + $column = self::_GetInt2d($recordData, 2); + $columnString = PHPExcel_Cell::stringFromColumnIndex($column); + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + // offset: 4; size: 2; index to XF record + $xfIndex = self::_GetInt2d($recordData, 4); + + // offset: 6; size: 4; index to SST record + $index = self::_GetInt4d($recordData, 6); + + // add cell + if (($fmtRuns = $this->_sst[$index]['fmtRuns']) && !$this->_readDataOnly) { + // then we should treat as rich text + $richText = new PHPExcel_RichText(); + $charPos = 0; + $sstCount = count($this->_sst[$index]['fmtRuns']); + for ($i = 0; $i <= $sstCount; ++$i) { + if (isset($fmtRuns[$i])) { + $text = PHPExcel_Shared_String::Substring($this->_sst[$index]['value'], $charPos, $fmtRuns[$i]['charPos'] - $charPos); + $charPos = $fmtRuns[$i]['charPos']; + } else { + $text = PHPExcel_Shared_String::Substring($this->_sst[$index]['value'], $charPos, PHPExcel_Shared_String::CountCharacters($this->_sst[$index]['value'])); + } + + if (PHPExcel_Shared_String::CountCharacters($text) > 0) { + if ($i == 0) { // first text run, no style + $richText->createText($text); + } else { + $textRun = $richText->createTextRun($text); + if (isset($fmtRuns[$i - 1])) { + if ($fmtRuns[$i - 1]['fontIndex'] < 4) { + $fontIndex = $fmtRuns[$i - 1]['fontIndex']; + } else { + // this has to do with that index 4 is omitted in all BIFF versions for some strange reason + // check the OpenOffice documentation of the FONT record + $fontIndex = $fmtRuns[$i - 1]['fontIndex'] - 1; + } + $textRun->setFont(clone $this->_objFonts[$fontIndex]); + } + } + } + } + $cell = $this->_phpSheet->getCell($columnString . ($row + 1)); + $cell->setValueExplicit($richText, PHPExcel_Cell_DataType::TYPE_STRING); + } else { + $cell = $this->_phpSheet->getCell($columnString . ($row + 1)); + $cell->setValueExplicit($this->_sst[$index]['value'], PHPExcel_Cell_DataType::TYPE_STRING); + } + + if (!$this->_readDataOnly) { + // add style information + $cell->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + } + } + + + /** + * Read MULRK record + * This record represents a cell range containing RK value + * cells. All cells are located in the same row. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readMulRk() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; index to row + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; index to first column + $colFirst = self::_GetInt2d($recordData, 2); + + // offset: var; size: 2; index to last column + $colLast = self::_GetInt2d($recordData, $length - 2); + $columns = $colLast - $colFirst + 1; + + // offset within record data + $offset = 4; + + for ($i = 0; $i < $columns; ++$i) { + $columnString = PHPExcel_Cell::stringFromColumnIndex($colFirst + $i); + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + + // offset: var; size: 2; index to XF record + $xfIndex = self::_GetInt2d($recordData, $offset); + + // offset: var; size: 4; RK value + $numValue = self::_GetIEEE754(self::_GetInt4d($recordData, $offset + 2)); + $cell = $this->_phpSheet->getCell($columnString . ($row + 1)); + if (!$this->_readDataOnly) { + // add style + $cell->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + + // add cell value + $cell->setValueExplicit($numValue, PHPExcel_Cell_DataType::TYPE_NUMERIC); + } + + $offset += 6; + } + } + + + /** + * Read NUMBER record + * This record represents a cell that contains a + * floating-point value. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readNumber() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; index to row + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size 2; index to column + $column = self::_GetInt2d($recordData, 2); + $columnString = PHPExcel_Cell::stringFromColumnIndex($column); + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + // offset 4; size: 2; index to XF record + $xfIndex = self::_GetInt2d($recordData, 4); + + $numValue = self::_extractNumber(substr($recordData, 6, 8)); + + $cell = $this->_phpSheet->getCell($columnString . ($row + 1)); + if (!$this->_readDataOnly) { + // add cell style + $cell->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + + // add cell value + $cell->setValueExplicit($numValue, PHPExcel_Cell_DataType::TYPE_NUMERIC); + } + } + + + /** + * Read FORMULA record + perhaps a following STRING record if formula result is a string + * This record contains the token array and the result of a + * formula cell. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readFormula() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; row index + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; col index + $column = self::_GetInt2d($recordData, 2); + $columnString = PHPExcel_Cell::stringFromColumnIndex($column); + + // offset: 20: size: variable; formula structure + $formulaStructure = substr($recordData, 20); + + // offset: 14: size: 2; option flags, recalculate always, recalculate on open etc. + $options = self::_GetInt2d($recordData, 14); + + // bit: 0; mask: 0x0001; 1 = recalculate always + // bit: 1; mask: 0x0002; 1 = calculate on open + // bit: 2; mask: 0x0008; 1 = part of a shared formula + $isPartOfSharedFormula = (bool) (0x0008 & $options); + + // WARNING: + // We can apparently not rely on $isPartOfSharedFormula. Even when $isPartOfSharedFormula = true + // the formula data may be ordinary formula data, therefore we need to check + // explicitly for the tExp token (0x01) + $isPartOfSharedFormula = $isPartOfSharedFormula && ord($formulaStructure{2}) == 0x01; + + if ($isPartOfSharedFormula) { + // part of shared formula which means there will be a formula with a tExp token and nothing else + // get the base cell, grab tExp token + $baseRow = self::_GetInt2d($formulaStructure, 3); + $baseCol = self::_GetInt2d($formulaStructure, 5); + $this->_baseCell = PHPExcel_Cell::stringFromColumnIndex($baseCol). ($baseRow + 1); + } + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + + if ($isPartOfSharedFormula) { + // formula is added to this cell after the sheet has been read + $this->_sharedFormulaParts[$columnString . ($row + 1)] = $this->_baseCell; + } + + // offset: 16: size: 4; not used + + // offset: 4; size: 2; XF index + $xfIndex = self::_GetInt2d($recordData, 4); + + // offset: 6; size: 8; result of the formula + if ( (ord($recordData{6}) == 0) + && (ord($recordData{12}) == 255) + && (ord($recordData{13}) == 255) ) { + + // String formula. Result follows in appended STRING record + $dataType = PHPExcel_Cell_DataType::TYPE_STRING; + + // read possible SHAREDFMLA record + $code = self::_GetInt2d($this->_data, $this->_pos); + if ($code == self::XLS_Type_SHAREDFMLA) { + $this->_readSharedFmla(); + } + + // read STRING record + $value = $this->_readString(); + + } elseif ((ord($recordData{6}) == 1) + && (ord($recordData{12}) == 255) + && (ord($recordData{13}) == 255)) { + + // Boolean formula. Result is in +2; 0=false, 1=true + $dataType = PHPExcel_Cell_DataType::TYPE_BOOL; + $value = (bool) ord($recordData{8}); + + } elseif ((ord($recordData{6}) == 2) + && (ord($recordData{12}) == 255) + && (ord($recordData{13}) == 255)) { + + // Error formula. Error code is in +2 + $dataType = PHPExcel_Cell_DataType::TYPE_ERROR; + $value = self::_mapErrorCode(ord($recordData{8})); + + } elseif ((ord($recordData{6}) == 3) + && (ord($recordData{12}) == 255) + && (ord($recordData{13}) == 255)) { + + // Formula result is a null string + $dataType = PHPExcel_Cell_DataType::TYPE_NULL; + $value = ''; + + } else { + + // forumla result is a number, first 14 bytes like _NUMBER record + $dataType = PHPExcel_Cell_DataType::TYPE_NUMERIC; + $value = self::_extractNumber(substr($recordData, 6, 8)); + + } + + $cell = $this->_phpSheet->getCell($columnString . ($row + 1)); + if (!$this->_readDataOnly) { + // add cell style + $cell->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + + // store the formula + if (!$isPartOfSharedFormula) { + // not part of shared formula + // add cell value. If we can read formula, populate with formula, otherwise just used cached value + try { + if ($this->_version != self::XLS_BIFF8) { + throw new Exception('Not BIFF8. Can only read BIFF8 formulas'); + } + $formula = $this->_getFormulaFromStructure($formulaStructure); // get formula in human language + $cell->setValueExplicit('=' . $formula, PHPExcel_Cell_DataType::TYPE_FORMULA); + + } catch (Exception $e) { + $cell->setValueExplicit($value, $dataType); + } + } else { + if ($this->_version == self::XLS_BIFF8) { + // do nothing at this point, formula id added later in the code + } else { + $cell->setValueExplicit($value, $dataType); + } + } + + // store the cached calculated value + $cell->setCalculatedValue($value); + } + } + + + /** + * Read a SHAREDFMLA record. This function just stores the binary shared formula in the reader, + * which usually contains relative references. + * These will be used to construct the formula in each shared formula part after the sheet is read. + */ + private function _readSharedFmla() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0, size: 6; cell range address of the area used by the shared formula, not used for anything + $cellRange = substr($recordData, 0, 6); + $cellRange = $this->_readBIFF5CellRangeAddressFixed($cellRange); // note: even BIFF8 uses BIFF5 syntax + + // offset: 6, size: 1; not used + + // offset: 7, size: 1; number of existing FORMULA records for this shared formula + $no = ord($recordData{7}); + + // offset: 8, size: var; Binary token array of the shared formula + $formula = substr($recordData, 8); + + // at this point we only store the shared formula for later use + $this->_sharedFormulas[$this->_baseCell] = $formula; + + } + + + /** + * Read a STRING record from current stream position and advance the stream pointer to next record + * This record is used for storing result from FORMULA record when it is a string, and + * it occurs directly after the FORMULA record + * + * @return string The string contents as UTF-8 + */ + private function _readString() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_version == self::XLS_BIFF8) { + $string = self::_readUnicodeStringLong($recordData); + $value = $string['value']; + } else { + $string = $this->_readByteStringLong($recordData); + $value = $string['value']; + } + + return $value; + } + + + /** + * Read BOOLERR record + * This record represents a Boolean value or error value + * cell. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readBoolErr() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; row index + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; column index + $column = self::_GetInt2d($recordData, 2); + $columnString = PHPExcel_Cell::stringFromColumnIndex($column); + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + // offset: 4; size: 2; index to XF record + $xfIndex = self::_GetInt2d($recordData, 4); + + // offset: 6; size: 1; the boolean value or error value + $boolErr = ord($recordData{6}); + + // offset: 7; size: 1; 0=boolean; 1=error + $isError = ord($recordData{7}); + + $cell = $this->_phpSheet->getCell($columnString . ($row + 1)); + switch ($isError) { + case 0: // boolean + $value = (bool) $boolErr; + + // add cell value + $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_BOOL); + break; + + case 1: // error type + $value = self::_mapErrorCode($boolErr); + + // add cell value + $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_ERROR); + break; + } + + if (!$this->_readDataOnly) { + // add cell style + $cell->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + } + } + + + /** + * Read MULBLANK record + * This record represents a cell range of empty cells. All + * cells are located in the same row + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readMulBlank() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; index to row + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; index to first column + $fc = self::_GetInt2d($recordData, 2); + + // offset: 4; size: 2 x nc; list of indexes to XF records + // add style information + if (!$this->_readDataOnly) { + for ($i = 0; $i < $length / 2 - 3; ++$i) { + $columnString = PHPExcel_Cell::stringFromColumnIndex($fc + $i); + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + $xfIndex = self::_GetInt2d($recordData, 4 + 2 * $i); + $this->_phpSheet->getCell($columnString . ($row + 1))->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + } + } + + // offset: 6; size 2; index to last column (not needed) + } + + + /** + * Read LABEL record + * This record represents a cell that contains a string. In + * BIFF8 it is usually replaced by the LABELSST record. + * Excel still uses this record, if it copies unformatted + * text cells to the clipboard. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readLabel() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; index to row + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; index to column + $column = self::_GetInt2d($recordData, 2); + $columnString = PHPExcel_Cell::stringFromColumnIndex($column); + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + // offset: 4; size: 2; XF index + $xfIndex = self::_GetInt2d($recordData, 4); + + // add cell value + // todo: what if string is very long? continue record + if ($this->_version == self::XLS_BIFF8) { + $string = self::_readUnicodeStringLong(substr($recordData, 6)); + $value = $string['value']; + } else { + $string = $this->_readByteStringLong(substr($recordData, 6)); + $value = $string['value']; + } + $cell = $this->_phpSheet->getCell($columnString . ($row + 1)); + $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING); + + if (!$this->_readDataOnly) { + // add cell style + $cell->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + } + } + + + /** + * Read BLANK record + */ + private function _readBlank() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; row index + $row = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; col index + $col = self::_GetInt2d($recordData, 2); + $columnString = PHPExcel_Cell::stringFromColumnIndex($col); + + // Read cell? + if (($this->getReadFilter() !== NULL) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->_phpSheet->getTitle()) ) { + // offset: 4; size: 2; XF index + $xfIndex = self::_GetInt2d($recordData, 4); + + // add style information + if (!$this->_readDataOnly) { + $this->_phpSheet->getCell($columnString . ($row + 1))->setXfIndex($this->_mapCellXfIndex[$xfIndex]); + } + } + + } + + + /** + * Read MSODRAWING record + */ + private function _readMsoDrawing() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + + // get spliced record data + $splicedRecordData = $this->_getSplicedRecordData(); + $recordData = $splicedRecordData['recordData']; + + $this->_drawingData .= $recordData; + } + + + /** + * Read OBJ record + */ + private function _readObj() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_readDataOnly || $this->_version != self::XLS_BIFF8) { + return; + } + + // recordData consists of an array of subrecords looking like this: + // ft: 2 bytes; ftCmo type (0x15) + // cb: 2 bytes; size in bytes of ftCmo data + // ot: 2 bytes; Object Type + // id: 2 bytes; Object id number + // grbit: 2 bytes; Option Flags + // data: var; subrecord data + + // for now, we are just interested in the second subrecord containing the object type + $ftCmoType = self::_GetInt2d($recordData, 0); + $cbCmoSize = self::_GetInt2d($recordData, 2); + $otObjType = self::_GetInt2d($recordData, 4); + $idObjID = self::_GetInt2d($recordData, 6); + $grbitOpts = self::_GetInt2d($recordData, 6); + + $this->_objs[] = array( + 'ftCmoType' => $ftCmoType, + 'cbCmoSize' => $cbCmoSize, + 'otObjType' => $otObjType, + 'idObjID' => $idObjID, + 'grbitOpts' => $grbitOpts + ); + $this->textObjRef = $idObjID; + +// echo '_readObj()
'; +// var_dump(end($this->_objs)); +// echo '
'; + } + + + /** + * Read WINDOW2 record + */ + private function _readWindow2() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; option flags + $options = self::_GetInt2d($recordData, 0); + + // bit: 1; mask: 0x0002; 0 = do not show gridlines, 1 = show gridlines + $showGridlines = (bool) ((0x0002 & $options) >> 1); + $this->_phpSheet->setShowGridlines($showGridlines); + + // bit: 2; mask: 0x0004; 0 = do not show headers, 1 = show headers + $showRowColHeaders = (bool) ((0x0004 & $options) >> 2); + $this->_phpSheet->setShowRowColHeaders($showRowColHeaders); + + // bit: 3; mask: 0x0008; 0 = panes are not frozen, 1 = panes are frozen + $this->_frozen = (bool) ((0x0008 & $options) >> 3); + + // bit: 6; mask: 0x0040; 0 = columns from left to right, 1 = columns from right to left + $this->_phpSheet->setRightToLeft((bool)((0x0040 & $options) >> 6)); + + // bit: 10; mask: 0x0400; 0 = sheet not active, 1 = sheet active + $isActive = (bool) ((0x0400 & $options) >> 10); + if ($isActive) { + $this->_phpExcel->setActiveSheetIndex($this->_phpExcel->getIndex($this->_phpSheet)); + } + } + + + /** + * Read SCL record + */ + private function _readScl() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // offset: 0; size: 2; numerator of the view magnification + $numerator = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; numerator of the view magnification + $denumerator = self::_GetInt2d($recordData, 2); + + // set the zoom scale (in percent) + $this->_phpSheet->getSheetView()->setZoomScale($numerator * 100 / $denumerator); + } + + + /** + * Read PANE record + */ + private function _readPane() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; position of vertical split + $px = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; position of horizontal split + $py = self::_GetInt2d($recordData, 2); + + if ($this->_frozen) { + // frozen panes + $this->_phpSheet->freezePane(PHPExcel_Cell::stringFromColumnIndex($px) . ($py + 1)); + } else { + // unfrozen panes; split windows; not supported by PHPExcel core + } + } + } + + + /** + * Read SELECTION record. There is one such record for each pane in the sheet. + */ + private function _readSelection() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 1; pane identifier + $paneId = ord($recordData{0}); + + // offset: 1; size: 2; index to row of the active cell + $r = self::_GetInt2d($recordData, 1); + + // offset: 3; size: 2; index to column of the active cell + $c = self::_GetInt2d($recordData, 3); + + // offset: 5; size: 2; index into the following cell range list to the + // entry that contains the active cell + $index = self::_GetInt2d($recordData, 5); + + // offset: 7; size: var; cell range address list containing all selected cell ranges + $data = substr($recordData, 7); + $cellRangeAddressList = $this->_readBIFF5CellRangeAddressList($data); // note: also BIFF8 uses BIFF5 syntax + + $selectedCells = $cellRangeAddressList['cellRangeAddresses'][0]; + + // first row '1' + last row '16384' indicates that full column is selected (apparently also in BIFF8!) + if (preg_match('/^([A-Z]+1\:[A-Z]+)16384$/', $selectedCells)) { + $selectedCells = preg_replace('/^([A-Z]+1\:[A-Z]+)16384$/', '${1}1048576', $selectedCells); + } + + // first row '1' + last row '65536' indicates that full column is selected + if (preg_match('/^([A-Z]+1\:[A-Z]+)65536$/', $selectedCells)) { + $selectedCells = preg_replace('/^([A-Z]+1\:[A-Z]+)65536$/', '${1}1048576', $selectedCells); + } + + // first column 'A' + last column 'IV' indicates that full row is selected + if (preg_match('/^(A[0-9]+\:)IV([0-9]+)$/', $selectedCells)) { + $selectedCells = preg_replace('/^(A[0-9]+\:)IV([0-9]+)$/', '${1}XFD${2}', $selectedCells); + } + + $this->_phpSheet->setSelectedCells($selectedCells); + } + } + + + private function _includeCellRangeFiltered($cellRangeAddress) + { + $includeCellRange = true; + if ($this->getReadFilter() !== NULL) { + $includeCellRange = false; + $rangeBoundaries = PHPExcel_Cell::getRangeBoundaries($cellRangeAddress); + $rangeBoundaries[1][0]++; + for ($row = $rangeBoundaries[0][1]; $row <= $rangeBoundaries[1][1]; $row++) { + for ($column = $rangeBoundaries[0][0]; $column != $rangeBoundaries[1][0]; $column++) { + if ($this->getReadFilter()->readCell($column, $row, $this->_phpSheet->getTitle())) { + $includeCellRange = true; + break 2; + } + } + } + } + return $includeCellRange; + } + + + /** + * MERGEDCELLS + * + * This record contains the addresses of merged cell ranges + * in the current sheet. + * + * -- "OpenOffice.org's Documentation of the Microsoft + * Excel File Format" + */ + private function _readMergedCells() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_version == self::XLS_BIFF8 && !$this->_readDataOnly) { + $cellRangeAddressList = $this->_readBIFF8CellRangeAddressList($recordData); + foreach ($cellRangeAddressList['cellRangeAddresses'] as $cellRangeAddress) { + if ((strpos($cellRangeAddress,':') !== FALSE) && + ($this->_includeCellRangeFiltered($cellRangeAddress))) { + $this->_phpSheet->mergeCells($cellRangeAddress); + } + } + } + } + + + /** + * Read HYPERLINK record + */ + private function _readHyperLink() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer forward to next record + $this->_pos += 4 + $length; + + if (!$this->_readDataOnly) { + // offset: 0; size: 8; cell range address of all cells containing this hyperlink + try { + $cellRange = $this->_readBIFF8CellRangeAddressFixed($recordData, 0, 8); + } catch (Exception $e) { + return; + } + + // offset: 8, size: 16; GUID of StdLink + + // offset: 24, size: 4; unknown value + + // offset: 28, size: 4; option flags + + // bit: 0; mask: 0x00000001; 0 = no link or extant, 1 = file link or URL + $isFileLinkOrUrl = (0x00000001 & self::_GetInt2d($recordData, 28)) >> 0; + + // bit: 1; mask: 0x00000002; 0 = relative path, 1 = absolute path or URL + $isAbsPathOrUrl = (0x00000001 & self::_GetInt2d($recordData, 28)) >> 1; + + // bit: 2 (and 4); mask: 0x00000014; 0 = no description + $hasDesc = (0x00000014 & self::_GetInt2d($recordData, 28)) >> 2; + + // bit: 3; mask: 0x00000008; 0 = no text, 1 = has text + $hasText = (0x00000008 & self::_GetInt2d($recordData, 28)) >> 3; + + // bit: 7; mask: 0x00000080; 0 = no target frame, 1 = has target frame + $hasFrame = (0x00000080 & self::_GetInt2d($recordData, 28)) >> 7; + + // bit: 8; mask: 0x00000100; 0 = file link or URL, 1 = UNC path (inc. server name) + $isUNC = (0x00000100 & self::_GetInt2d($recordData, 28)) >> 8; + + // offset within record data + $offset = 32; + + if ($hasDesc) { + // offset: 32; size: var; character count of description text + $dl = self::_GetInt4d($recordData, 32); + // offset: 36; size: var; character array of description text, no Unicode string header, always 16-bit characters, zero terminated + $desc = self::_encodeUTF16(substr($recordData, 36, 2 * ($dl - 1)), false); + $offset += 4 + 2 * $dl; + } + if ($hasFrame) { + $fl = self::_GetInt4d($recordData, $offset); + $offset += 4 + 2 * $fl; + } + + // detect type of hyperlink (there are 4 types) + $hyperlinkType = null; + + if ($isUNC) { + $hyperlinkType = 'UNC'; + } else if (!$isFileLinkOrUrl) { + $hyperlinkType = 'workbook'; + } else if (ord($recordData{$offset}) == 0x03) { + $hyperlinkType = 'local'; + } else if (ord($recordData{$offset}) == 0xE0) { + $hyperlinkType = 'URL'; + } + + switch ($hyperlinkType) { + case 'URL': + // section 5.58.2: Hyperlink containing a URL + // e.g. http://example.org/index.php + + // offset: var; size: 16; GUID of URL Moniker + $offset += 16; + // offset: var; size: 4; size (in bytes) of character array of the URL including trailing zero word + $us = self::_GetInt4d($recordData, $offset); + $offset += 4; + // offset: var; size: $us; character array of the URL, no Unicode string header, always 16-bit characters, zero-terminated + $url = self::_encodeUTF16(substr($recordData, $offset, $us - 2), false); + $url .= $hasText ? '#' : ''; + $offset += $us; + break; + + case 'local': + // section 5.58.3: Hyperlink to local file + // examples: + // mydoc.txt + // ../../somedoc.xls#Sheet!A1 + + // offset: var; size: 16; GUI of File Moniker + $offset += 16; + + // offset: var; size: 2; directory up-level count. + $upLevelCount = self::_GetInt2d($recordData, $offset); + $offset += 2; + + // offset: var; size: 4; character count of the shortened file path and name, including trailing zero word + $sl = self::_GetInt4d($recordData, $offset); + $offset += 4; + + // offset: var; size: sl; character array of the shortened file path and name in 8.3-DOS-format (compressed Unicode string) + $shortenedFilePath = substr($recordData, $offset, $sl); + $shortenedFilePath = self::_encodeUTF16($shortenedFilePath, true); + $shortenedFilePath = substr($shortenedFilePath, 0, -1); // remove trailing zero + + $offset += $sl; + + // offset: var; size: 24; unknown sequence + $offset += 24; + + // extended file path + // offset: var; size: 4; size of the following file link field including string lenth mark + $sz = self::_GetInt4d($recordData, $offset); + $offset += 4; + + // only present if $sz > 0 + if ($sz > 0) { + // offset: var; size: 4; size of the character array of the extended file path and name + $xl = self::_GetInt4d($recordData, $offset); + $offset += 4; + + // offset: var; size 2; unknown + $offset += 2; + + // offset: var; size $xl; character array of the extended file path and name. + $extendedFilePath = substr($recordData, $offset, $xl); + $extendedFilePath = self::_encodeUTF16($extendedFilePath, false); + $offset += $xl; + } + + // construct the path + $url = str_repeat('..\\', $upLevelCount); + $url .= ($sz > 0) ? + $extendedFilePath : $shortenedFilePath; // use extended path if available + $url .= $hasText ? '#' : ''; + + break; + + + case 'UNC': + // section 5.58.4: Hyperlink to a File with UNC (Universal Naming Convention) Path + // todo: implement + return; + + case 'workbook': + // section 5.58.5: Hyperlink to the Current Workbook + // e.g. Sheet2!B1:C2, stored in text mark field + $url = 'sheet://'; + break; + + default: + return; + + } + + if ($hasText) { + // offset: var; size: 4; character count of text mark including trailing zero word + $tl = self::_GetInt4d($recordData, $offset); + $offset += 4; + // offset: var; size: var; character array of the text mark without the # sign, no Unicode header, always 16-bit characters, zero-terminated + $text = self::_encodeUTF16(substr($recordData, $offset, 2 * ($tl - 1)), false); + $url .= $text; + } + + // apply the hyperlink to all the relevant cells + foreach (PHPExcel_Cell::extractAllCellReferencesInRange($cellRange) as $coordinate) { + $this->_phpSheet->getCell($coordinate)->getHyperLink()->setUrl($url); + } + } + } + + + /** + * Read DATAVALIDATIONS record + */ + private function _readDataValidations() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer forward to next record + $this->_pos += 4 + $length; + } + + + /** + * Read DATAVALIDATION record + */ + private function _readDataValidation() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer forward to next record + $this->_pos += 4 + $length; + + if ($this->_readDataOnly) { + return; + } + + // offset: 0; size: 4; Options + $options = self::_GetInt4d($recordData, 0); + + // bit: 0-3; mask: 0x0000000F; type + $type = (0x0000000F & $options) >> 0; + switch ($type) { + case 0x00: $type = PHPExcel_Cell_DataValidation::TYPE_NONE; break; + case 0x01: $type = PHPExcel_Cell_DataValidation::TYPE_WHOLE; break; + case 0x02: $type = PHPExcel_Cell_DataValidation::TYPE_DECIMAL; break; + case 0x03: $type = PHPExcel_Cell_DataValidation::TYPE_LIST; break; + case 0x04: $type = PHPExcel_Cell_DataValidation::TYPE_DATE; break; + case 0x05: $type = PHPExcel_Cell_DataValidation::TYPE_TIME; break; + case 0x06: $type = PHPExcel_Cell_DataValidation::TYPE_TEXTLENGTH; break; + case 0x07: $type = PHPExcel_Cell_DataValidation::TYPE_CUSTOM; break; + } + + // bit: 4-6; mask: 0x00000070; error type + $errorStyle = (0x00000070 & $options) >> 4; + switch ($errorStyle) { + case 0x00: $errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP; break; + case 0x01: $errorStyle = PHPExcel_Cell_DataValidation::STYLE_WARNING; break; + case 0x02: $errorStyle = PHPExcel_Cell_DataValidation::STYLE_INFORMATION; break; + } + + // bit: 7; mask: 0x00000080; 1= formula is explicit (only applies to list) + // I have only seen cases where this is 1 + $explicitFormula = (0x00000080 & $options) >> 7; + + // bit: 8; mask: 0x00000100; 1= empty cells allowed + $allowBlank = (0x00000100 & $options) >> 8; + + // bit: 9; mask: 0x00000200; 1= suppress drop down arrow in list type validity + $suppressDropDown = (0x00000200 & $options) >> 9; + + // bit: 18; mask: 0x00040000; 1= show prompt box if cell selected + $showInputMessage = (0x00040000 & $options) >> 18; + + // bit: 19; mask: 0x00080000; 1= show error box if invalid values entered + $showErrorMessage = (0x00080000 & $options) >> 19; + + // bit: 20-23; mask: 0x00F00000; condition operator + $operator = (0x00F00000 & $options) >> 20; + switch ($operator) { + case 0x00: $operator = PHPExcel_Cell_DataValidation::OPERATOR_BETWEEN ; break; + case 0x01: $operator = PHPExcel_Cell_DataValidation::OPERATOR_NOTBETWEEN ; break; + case 0x02: $operator = PHPExcel_Cell_DataValidation::OPERATOR_EQUAL ; break; + case 0x03: $operator = PHPExcel_Cell_DataValidation::OPERATOR_NOTEQUAL ; break; + case 0x04: $operator = PHPExcel_Cell_DataValidation::OPERATOR_GREATERTHAN ; break; + case 0x05: $operator = PHPExcel_Cell_DataValidation::OPERATOR_LESSTHAN ; break; + case 0x06: $operator = PHPExcel_Cell_DataValidation::OPERATOR_GREATERTHANOREQUAL; break; + case 0x07: $operator = PHPExcel_Cell_DataValidation::OPERATOR_LESSTHANOREQUAL ; break; + } + + // offset: 4; size: var; title of the prompt box + $offset = 4; + $string = self::_readUnicodeStringLong(substr($recordData, $offset)); + $promptTitle = $string['value'] !== chr(0) ? + $string['value'] : ''; + $offset += $string['size']; + + // offset: var; size: var; title of the error box + $string = self::_readUnicodeStringLong(substr($recordData, $offset)); + $errorTitle = $string['value'] !== chr(0) ? + $string['value'] : ''; + $offset += $string['size']; + + // offset: var; size: var; text of the prompt box + $string = self::_readUnicodeStringLong(substr($recordData, $offset)); + $prompt = $string['value'] !== chr(0) ? + $string['value'] : ''; + $offset += $string['size']; + + // offset: var; size: var; text of the error box + $string = self::_readUnicodeStringLong(substr($recordData, $offset)); + $error = $string['value'] !== chr(0) ? + $string['value'] : ''; + $offset += $string['size']; + + // offset: var; size: 2; size of the formula data for the first condition + $sz1 = self::_GetInt2d($recordData, $offset); + $offset += 2; + + // offset: var; size: 2; not used + $offset += 2; + + // offset: var; size: $sz1; formula data for first condition (without size field) + $formula1 = substr($recordData, $offset, $sz1); + $formula1 = pack('v', $sz1) . $formula1; // prepend the length + try { + $formula1 = $this->_getFormulaFromStructure($formula1); + + // in list type validity, null characters are used as item separators + if ($type == PHPExcel_Cell_DataValidation::TYPE_LIST) { + $formula1 = str_replace(chr(0), ',', $formula1); + } + } catch (Exception $e) { + return; + } + $offset += $sz1; + + // offset: var; size: 2; size of the formula data for the first condition + $sz2 = self::_GetInt2d($recordData, $offset); + $offset += 2; + + // offset: var; size: 2; not used + $offset += 2; + + // offset: var; size: $sz2; formula data for second condition (without size field) + $formula2 = substr($recordData, $offset, $sz2); + $formula2 = pack('v', $sz2) . $formula2; // prepend the length + try { + $formula2 = $this->_getFormulaFromStructure($formula2); + } catch (Exception $e) { + return; + } + $offset += $sz2; + + // offset: var; size: var; cell range address list with + $cellRangeAddressList = $this->_readBIFF8CellRangeAddressList(substr($recordData, $offset)); + $cellRangeAddresses = $cellRangeAddressList['cellRangeAddresses']; + + foreach ($cellRangeAddresses as $cellRange) { + $stRange = $this->_phpSheet->shrinkRangeToFit($cellRange); + $stRange = PHPExcel_Cell::extractAllCellReferencesInRange($stRange); + foreach ($stRange as $coordinate) { + $objValidation = $this->_phpSheet->getCell($coordinate)->getDataValidation(); + $objValidation->setType($type); + $objValidation->setErrorStyle($errorStyle); + $objValidation->setAllowBlank((bool)$allowBlank); + $objValidation->setShowInputMessage((bool)$showInputMessage); + $objValidation->setShowErrorMessage((bool)$showErrorMessage); + $objValidation->setShowDropDown(!$suppressDropDown); + $objValidation->setOperator($operator); + $objValidation->setErrorTitle($errorTitle); + $objValidation->setError($error); + $objValidation->setPromptTitle($promptTitle); + $objValidation->setPrompt($prompt); + $objValidation->setFormula1($formula1); + $objValidation->setFormula2($formula2); + } + } + + } + + + /** + * Read SHEETLAYOUT record. Stores sheet tab color information. + */ + private function _readSheetLayout() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // local pointer in record data + $offset = 0; + + if (!$this->_readDataOnly) { + // offset: 0; size: 2; repeated record identifier 0x0862 + + // offset: 2; size: 10; not used + + // offset: 12; size: 4; size of record data + // Excel 2003 uses size of 0x14 (documented), Excel 2007 uses size of 0x28 (not documented?) + $sz = self::_GetInt4d($recordData, 12); + + switch ($sz) { + case 0x14: + // offset: 16; size: 2; color index for sheet tab + $colorIndex = self::_GetInt2d($recordData, 16); + $color = self::_readColor($colorIndex,$this->_palette,$this->_version); + $this->_phpSheet->getTabColor()->setRGB($color['rgb']); + break; + + case 0x28: + // TODO: Investigate structure for .xls SHEETLAYOUT record as saved by MS Office Excel 2007 + return; + break; + } + } + } + + + /** + * Read SHEETPROTECTION record (FEATHEADR) + */ + private function _readSheetProtection() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + if ($this->_readDataOnly) { + return; + } + + // offset: 0; size: 2; repeated record header + + // offset: 2; size: 2; FRT cell reference flag (=0 currently) + + // offset: 4; size: 8; Currently not used and set to 0 + + // offset: 12; size: 2; Shared feature type index (2=Enhanced Protetion, 4=SmartTag) + $isf = self::_GetInt2d($recordData, 12); + if ($isf != 2) { + return; + } + + // offset: 14; size: 1; =1 since this is a feat header + + // offset: 15; size: 4; size of rgbHdrSData + + // rgbHdrSData, assume "Enhanced Protection" + // offset: 19; size: 2; option flags + $options = self::_GetInt2d($recordData, 19); + + // bit: 0; mask 0x0001; 1 = user may edit objects, 0 = users must not edit objects + $bool = (0x0001 & $options) >> 0; + $this->_phpSheet->getProtection()->setObjects(!$bool); + + // bit: 1; mask 0x0002; edit scenarios + $bool = (0x0002 & $options) >> 1; + $this->_phpSheet->getProtection()->setScenarios(!$bool); + + // bit: 2; mask 0x0004; format cells + $bool = (0x0004 & $options) >> 2; + $this->_phpSheet->getProtection()->setFormatCells(!$bool); + + // bit: 3; mask 0x0008; format columns + $bool = (0x0008 & $options) >> 3; + $this->_phpSheet->getProtection()->setFormatColumns(!$bool); + + // bit: 4; mask 0x0010; format rows + $bool = (0x0010 & $options) >> 4; + $this->_phpSheet->getProtection()->setFormatRows(!$bool); + + // bit: 5; mask 0x0020; insert columns + $bool = (0x0020 & $options) >> 5; + $this->_phpSheet->getProtection()->setInsertColumns(!$bool); + + // bit: 6; mask 0x0040; insert rows + $bool = (0x0040 & $options) >> 6; + $this->_phpSheet->getProtection()->setInsertRows(!$bool); + + // bit: 7; mask 0x0080; insert hyperlinks + $bool = (0x0080 & $options) >> 7; + $this->_phpSheet->getProtection()->setInsertHyperlinks(!$bool); + + // bit: 8; mask 0x0100; delete columns + $bool = (0x0100 & $options) >> 8; + $this->_phpSheet->getProtection()->setDeleteColumns(!$bool); + + // bit: 9; mask 0x0200; delete rows + $bool = (0x0200 & $options) >> 9; + $this->_phpSheet->getProtection()->setDeleteRows(!$bool); + + // bit: 10; mask 0x0400; select locked cells + $bool = (0x0400 & $options) >> 10; + $this->_phpSheet->getProtection()->setSelectLockedCells(!$bool); + + // bit: 11; mask 0x0800; sort cell range + $bool = (0x0800 & $options) >> 11; + $this->_phpSheet->getProtection()->setSort(!$bool); + + // bit: 12; mask 0x1000; auto filter + $bool = (0x1000 & $options) >> 12; + $this->_phpSheet->getProtection()->setAutoFilter(!$bool); + + // bit: 13; mask 0x2000; pivot tables + $bool = (0x2000 & $options) >> 13; + $this->_phpSheet->getProtection()->setPivotTables(!$bool); + + // bit: 14; mask 0x4000; select unlocked cells + $bool = (0x4000 & $options) >> 14; + $this->_phpSheet->getProtection()->setSelectUnlockedCells(!$bool); + + // offset: 21; size: 2; not used + } + + + /** + * Read RANGEPROTECTION record + * Reading of this record is based on Microsoft Office Excel 97-2000 Binary File Format Specification, + * where it is referred to as FEAT record + */ + private function _readRangeProtection() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // move stream pointer to next record + $this->_pos += 4 + $length; + + // local pointer in record data + $offset = 0; + + if (!$this->_readDataOnly) { + $offset += 12; + + // offset: 12; size: 2; shared feature type, 2 = enhanced protection, 4 = smart tag + $isf = self::_GetInt2d($recordData, 12); + if ($isf != 2) { + // we only read FEAT records of type 2 + return; + } + $offset += 2; + + $offset += 5; + + // offset: 19; size: 2; count of ref ranges this feature is on + $cref = self::_GetInt2d($recordData, 19); + $offset += 2; + + $offset += 6; + + // offset: 27; size: 8 * $cref; list of cell ranges (like in hyperlink record) + $cellRanges = array(); + for ($i = 0; $i < $cref; ++$i) { + try { + $cellRange = $this->_readBIFF8CellRangeAddressFixed(substr($recordData, 27 + 8 * $i, 8)); + } catch (Exception $e) { + return; + } + $cellRanges[] = $cellRange; + $offset += 8; + } + + // offset: var; size: var; variable length of feature specific data + $rgbFeat = substr($recordData, $offset); + $offset += 4; + + // offset: var; size: 4; the encrypted password (only 16-bit although field is 32-bit) + $wPassword = self::_GetInt4d($recordData, $offset); + $offset += 4; + + // Apply range protection to sheet + if ($cellRanges) { + $this->_phpSheet->protectCells(implode(' ', $cellRanges), strtoupper(dechex($wPassword)), true); + } + } + } + + + /** + * Read IMDATA record + */ + private function _readImData() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + + // get spliced record data + $splicedRecordData = $this->_getSplicedRecordData(); + $recordData = $splicedRecordData['recordData']; + + // UNDER CONSTRUCTION + + // offset: 0; size: 2; image format + $cf = self::_GetInt2d($recordData, 0); + + // offset: 2; size: 2; environment from which the file was written + $env = self::_GetInt2d($recordData, 2); + + // offset: 4; size: 4; length of the image data + $lcb = self::_GetInt4d($recordData, 4); + + // offset: 8; size: var; image data + $iData = substr($recordData, 8); + + switch ($cf) { + case 0x09: // Windows bitmap format + // BITMAPCOREINFO + // 1. BITMAPCOREHEADER + // offset: 0; size: 4; bcSize, Specifies the number of bytes required by the structure + $bcSize = self::_GetInt4d($iData, 0); +// var_dump($bcSize); + + // offset: 4; size: 2; bcWidth, specifies the width of the bitmap, in pixels + $bcWidth = self::_GetInt2d($iData, 4); +// var_dump($bcWidth); + + // offset: 6; size: 2; bcHeight, specifies the height of the bitmap, in pixels. + $bcHeight = self::_GetInt2d($iData, 6); +// var_dump($bcHeight); + $ih = imagecreatetruecolor($bcWidth, $bcHeight); + + // offset: 8; size: 2; bcPlanes, specifies the number of planes for the target device. This value must be 1 + + // offset: 10; size: 2; bcBitCount specifies the number of bits-per-pixel. This value must be 1, 4, 8, or 24 + $bcBitCount = self::_GetInt2d($iData, 10); +// var_dump($bcBitCount); + + $rgbString = substr($iData, 12); + $rgbTriples = array(); + while (strlen($rgbString) > 0) { + $rgbTriples[] = unpack('Cb/Cg/Cr', $rgbString); + $rgbString = substr($rgbString, 3); + } + $x = 0; + $y = 0; + foreach ($rgbTriples as $i => $rgbTriple) { + $color = imagecolorallocate($ih, $rgbTriple['r'], $rgbTriple['g'], $rgbTriple['b']); + imagesetpixel($ih, $x, $bcHeight - 1 - $y, $color); + $x = ($x + 1) % $bcWidth; + $y = $y + floor(($x + 1) / $bcWidth); + } + //imagepng($ih, 'image.png'); + + $drawing = new PHPExcel_Worksheet_Drawing(); + $drawing->setPath($filename); + $drawing->setWorksheet($this->_phpSheet); + + break; + + case 0x02: // Windows metafile or Macintosh PICT format + case 0x0e: // native format + default; + break; + + } + + // _getSplicedRecordData() takes care of moving current position in data stream + } + + + /** + * Read a free CONTINUE record. Free CONTINUE record may be a camouflaged MSODRAWING record + * When MSODRAWING data on a sheet exceeds 8224 bytes, CONTINUE records are used instead. Undocumented. + * In this case, we must treat the CONTINUE record as a MSODRAWING record + */ + private function _readContinue() + { + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $recordData = substr($this->_data, $this->_pos + 4, $length); + + // check if we are reading drawing data + // this is in case a free CONTINUE record occurs in other circumstances we are unaware of + if ($this->_drawingData == '') { + // move stream pointer to next record + $this->_pos += 4 + $length; + + return; + } + + // check if record data is at least 4 bytes long, otherwise there is no chance this is MSODRAWING data + if ($length < 4) { + // move stream pointer to next record + $this->_pos += 4 + $length; + + return; + } + + // dirty check to see if CONTINUE record could be a camouflaged MSODRAWING record + // look inside CONTINUE record to see if it looks like a part of an Escher stream + // we know that Escher stream may be split at least at + // 0xF003 MsofbtSpgrContainer + // 0xF004 MsofbtSpContainer + // 0xF00D MsofbtClientTextbox + $validSplitPoints = array(0xF003, 0xF004, 0xF00D); // add identifiers if we find more + + $splitPoint = self::_GetInt2d($recordData, 2); + if (in_array($splitPoint, $validSplitPoints)) { + // get spliced record data (and move pointer to next record) + $splicedRecordData = $this->_getSplicedRecordData(); + $this->_drawingData .= $splicedRecordData['recordData']; + + return; + } + + // move stream pointer to next record + $this->_pos += 4 + $length; + + } + + + /** + * Reads a record from current position in data stream and continues reading data as long as CONTINUE + * records are found. Splices the record data pieces and returns the combined string as if record data + * is in one piece. + * Moves to next current position in data stream to start of next record different from a CONtINUE record + * + * @return array + */ + private function _getSplicedRecordData() + { + $data = ''; + $spliceOffsets = array(); + + $i = 0; + $spliceOffsets[0] = 0; + + do { + ++$i; + + // offset: 0; size: 2; identifier + $identifier = self::_GetInt2d($this->_data, $this->_pos); + // offset: 2; size: 2; length + $length = self::_GetInt2d($this->_data, $this->_pos + 2); + $data .= substr($this->_data, $this->_pos + 4, $length); + + $spliceOffsets[$i] = $spliceOffsets[$i - 1] + $length; + + $this->_pos += 4 + $length; + $nextIdentifier = self::_GetInt2d($this->_data, $this->_pos); + } + while ($nextIdentifier == self::XLS_Type_CONTINUE); + + $splicedData = array( + 'recordData' => $data, + 'spliceOffsets' => $spliceOffsets, + ); + + return $splicedData; + + } + + + /** + * Convert formula structure into human readable Excel formula like 'A3+A5*5' + * + * @param string $formulaStructure The complete binary data for the formula + * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas + * @return string Human readable formula + */ + private function _getFormulaFromStructure($formulaStructure, $baseCell = 'A1') + { + // offset: 0; size: 2; size of the following formula data + $sz = self::_GetInt2d($formulaStructure, 0); + + // offset: 2; size: sz + $formulaData = substr($formulaStructure, 2, $sz); + + // for debug: dump the formula data + //echo ''; + //echo 'size: ' . $sz . "\n"; + //echo 'the entire formula data: '; + //Debug::dump($formulaData); + //echo "\n----\n"; + + // offset: 2 + sz; size: variable (optional) + if (strlen($formulaStructure) > 2 + $sz) { + $additionalData = substr($formulaStructure, 2 + $sz); + + // for debug: dump the additional data + //echo 'the entire additional data: '; + //Debug::dump($additionalData); + //echo "\n----\n"; + + } else { + $additionalData = ''; + } + + return $this->_getFormulaFromData($formulaData, $additionalData, $baseCell); + } + + + /** + * Take formula data and additional data for formula and return human readable formula + * + * @param string $formulaData The binary data for the formula itself + * @param string $additionalData Additional binary data going with the formula + * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas + * @return string Human readable formula + */ + private function _getFormulaFromData($formulaData, $additionalData = '', $baseCell = 'A1') + { + // start parsing the formula data + $tokens = array(); + + while (strlen($formulaData) > 0 and $token = $this->_getNextToken($formulaData, $baseCell)) { + $tokens[] = $token; + $formulaData = substr($formulaData, $token['size']); + + // for debug: dump the token + //var_dump($token); + } + + $formulaString = $this->_createFormulaFromTokens($tokens, $additionalData); + + return $formulaString; + } + + + /** + * Take array of tokens together with additional data for formula and return human readable formula + * + * @param array $tokens + * @param array $additionalData Additional binary data going with the formula + * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas + * @return string Human readable formula + */ + private function _createFormulaFromTokens($tokens, $additionalData) + { + // empty formula? + if (empty($tokens)) { + return ''; + } + + $formulaStrings = array(); + foreach ($tokens as $token) { + // initialize spaces + $space0 = isset($space0) ? $space0 : ''; // spaces before next token, not tParen + $space1 = isset($space1) ? $space1 : ''; // carriage returns before next token, not tParen + $space2 = isset($space2) ? $space2 : ''; // spaces before opening parenthesis + $space3 = isset($space3) ? $space3 : ''; // carriage returns before opening parenthesis + $space4 = isset($space4) ? $space4 : ''; // spaces before closing parenthesis + $space5 = isset($space5) ? $space5 : ''; // carriage returns before closing parenthesis + + switch ($token['name']) { + case 'tAdd': // addition + case 'tConcat': // addition + case 'tDiv': // division + case 'tEQ': // equality + case 'tGE': // greater than or equal + case 'tGT': // greater than + case 'tIsect': // intersection + case 'tLE': // less than or equal + case 'tList': // less than or equal + case 'tLT': // less than + case 'tMul': // multiplication + case 'tNE': // multiplication + case 'tPower': // power + case 'tRange': // range + case 'tSub': // subtraction + $op2 = array_pop($formulaStrings); + $op1 = array_pop($formulaStrings); + $formulaStrings[] = "$op1$space1$space0{$token['data']}$op2"; + unset($space0, $space1); + break; + case 'tUplus': // unary plus + case 'tUminus': // unary minus + $op = array_pop($formulaStrings); + $formulaStrings[] = "$space1$space0{$token['data']}$op"; + unset($space0, $space1); + break; + case 'tPercent': // percent sign + $op = array_pop($formulaStrings); + $formulaStrings[] = "$op$space1$space0{$token['data']}"; + unset($space0, $space1); + break; + case 'tAttrVolatile': // indicates volatile function + case 'tAttrIf': + case 'tAttrSkip': + case 'tAttrChoose': + // token is only important for Excel formula evaluator + // do nothing + break; + case 'tAttrSpace': // space / carriage return + // space will be used when next token arrives, do not alter formulaString stack + switch ($token['data']['spacetype']) { + case 'type0': + $space0 = str_repeat(' ', $token['data']['spacecount']); + break; + case 'type1': + $space1 = str_repeat("\n", $token['data']['spacecount']); + break; + case 'type2': + $space2 = str_repeat(' ', $token['data']['spacecount']); + break; + case 'type3': + $space3 = str_repeat("\n", $token['data']['spacecount']); + break; + case 'type4': + $space4 = str_repeat(' ', $token['data']['spacecount']); + break; + case 'type5': + $space5 = str_repeat("\n", $token['data']['spacecount']); + break; + } + break; + case 'tAttrSum': // SUM function with one parameter + $op = array_pop($formulaStrings); + $formulaStrings[] = "{$space1}{$space0}SUM($op)"; + unset($space0, $space1); + break; + case 'tFunc': // function with fixed number of arguments + case 'tFuncV': // function with variable number of arguments + if ($token['data']['function'] != '') { + // normal function + $ops = array(); // array of operators + for ($i = 0; $i < $token['data']['args']; ++$i) { + $ops[] = array_pop($formulaStrings); + } + $ops = array_reverse($ops); + $formulaStrings[] = "$space1$space0{$token['data']['function']}(" . implode(',', $ops) . ")"; + unset($space0, $space1); + } else { + // add-in function + $ops = array(); // array of operators + for ($i = 0; $i < $token['data']['args'] - 1; ++$i) { + $ops[] = array_pop($formulaStrings); + } + $ops = array_reverse($ops); + $function = array_pop($formulaStrings); + $formulaStrings[] = "$space1$space0$function(" . implode(',', $ops) . ")"; + unset($space0, $space1); + } + break; + case 'tParen': // parenthesis + $expression = array_pop($formulaStrings); + $formulaStrings[] = "$space3$space2($expression$space5$space4)"; + unset($space2, $space3, $space4, $space5); + break; + case 'tArray': // array constant + $constantArray = self::_readBIFF8ConstantArray($additionalData); + $formulaStrings[] = $space1 . $space0 . $constantArray['value']; + $additionalData = substr($additionalData, $constantArray['size']); // bite of chunk of additional data + unset($space0, $space1); + break; + case 'tMemArea': + // bite off chunk of additional data + $cellRangeAddressList = $this->_readBIFF8CellRangeAddressList($additionalData); + $additionalData = substr($additionalData, $cellRangeAddressList['size']); + $formulaStrings[] = "$space1$space0{$token['data']}"; + unset($space0, $space1); + break; + case 'tArea': // cell range address + case 'tBool': // boolean + case 'tErr': // error code + case 'tInt': // integer + case 'tMemErr': + case 'tMemFunc': + case 'tMissArg': + case 'tName': + case 'tNameX': + case 'tNum': // number + case 'tRef': // single cell reference + case 'tRef3d': // 3d cell reference + case 'tArea3d': // 3d cell range reference + case 'tRefN': + case 'tAreaN': + case 'tStr': // string + $formulaStrings[] = "$space1$space0{$token['data']}"; + unset($space0, $space1); + break; + } + } + $formulaString = $formulaStrings[0]; + + // for debug: dump the human readable formula + //echo '----' . "\n"; + //echo 'Formula: ' . $formulaString; + + return $formulaString; + } + + + /** + * Fetch next token from binary formula data + * + * @param string Formula data + * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas + * @return array + * @throws Exception + */ + private function _getNextToken($formulaData, $baseCell = 'A1') + { + // offset: 0; size: 1; token id + $id = ord($formulaData[0]); // token id + $name = false; // initialize token name + + switch ($id) { + case 0x03: $name = 'tAdd'; $size = 1; $data = '+'; break; + case 0x04: $name = 'tSub'; $size = 1; $data = '-'; break; + case 0x05: $name = 'tMul'; $size = 1; $data = '*'; break; + case 0x06: $name = 'tDiv'; $size = 1; $data = '/'; break; + case 0x07: $name = 'tPower'; $size = 1; $data = '^'; break; + case 0x08: $name = 'tConcat'; $size = 1; $data = '&'; break; + case 0x09: $name = 'tLT'; $size = 1; $data = '<'; break; + case 0x0A: $name = 'tLE'; $size = 1; $data = '<='; break; + case 0x0B: $name = 'tEQ'; $size = 1; $data = '='; break; + case 0x0C: $name = 'tGE'; $size = 1; $data = '>='; break; + case 0x0D: $name = 'tGT'; $size = 1; $data = '>'; break; + case 0x0E: $name = 'tNE'; $size = 1; $data = '<>'; break; + case 0x0F: $name = 'tIsect'; $size = 1; $data = ' '; break; + case 0x10: $name = 'tList'; $size = 1; $data = ','; break; + case 0x11: $name = 'tRange'; $size = 1; $data = ':'; break; + case 0x12: $name = 'tUplus'; $size = 1; $data = '+'; break; + case 0x13: $name = 'tUminus'; $size = 1; $data = '-'; break; + case 0x14: $name = 'tPercent'; $size = 1; $data = '%'; break; + case 0x15: // parenthesis + $name = 'tParen'; + $size = 1; + $data = null; + break; + case 0x16: // missing argument + $name = 'tMissArg'; + $size = 1; + $data = ''; + break; + case 0x17: // string + $name = 'tStr'; + // offset: 1; size: var; Unicode string, 8-bit string length + $string = self::_readUnicodeStringShort(substr($formulaData, 1)); + $size = 1 + $string['size']; + $data = self::_UTF8toExcelDoubleQuoted($string['value']); + break; + case 0x19: // Special attribute + // offset: 1; size: 1; attribute type flags: + switch (ord($formulaData[1])) { + case 0x01: + $name = 'tAttrVolatile'; + $size = 4; + $data = null; + break; + case 0x02: + $name = 'tAttrIf'; + $size = 4; + $data = null; + break; + case 0x04: + $name = 'tAttrChoose'; + // offset: 2; size: 2; number of choices in the CHOOSE function ($nc, number of parameters decreased by 1) + $nc = self::_GetInt2d($formulaData, 2); + // offset: 4; size: 2 * $nc + // offset: 4 + 2 * $nc; size: 2 + $size = 2 * $nc + 6; + $data = null; + break; + case 0x08: + $name = 'tAttrSkip'; + $size = 4; + $data = null; + break; + case 0x10: + $name = 'tAttrSum'; + $size = 4; + $data = null; + break; + case 0x40: + case 0x41: + $name = 'tAttrSpace'; + $size = 4; + // offset: 2; size: 2; space type and position + switch (ord($formulaData[2])) { + case 0x00: + $spacetype = 'type0'; + break; + case 0x01: + $spacetype = 'type1'; + break; + case 0x02: + $spacetype = 'type2'; + break; + case 0x03: + $spacetype = 'type3'; + break; + case 0x04: + $spacetype = 'type4'; + break; + case 0x05: + $spacetype = 'type5'; + break; + default: + throw new Exception('Unrecognized space type in tAttrSpace token'); + break; + } + // offset: 3; size: 1; number of inserted spaces/carriage returns + $spacecount = ord($formulaData[3]); + + $data = array('spacetype' => $spacetype, 'spacecount' => $spacecount); + break; + default: + throw new Exception('Unrecognized attribute flag in tAttr token'); + break; + } + break; + case 0x1C: // error code + // offset: 1; size: 1; error code + $name = 'tErr'; + $size = 2; + $data = self::_mapErrorCode(ord($formulaData[1])); + break; + case 0x1D: // boolean + // offset: 1; size: 1; 0 = false, 1 = true; + $name = 'tBool'; + $size = 2; + $data = ord($formulaData[1]) ? 'TRUE' : 'FALSE'; + break; + case 0x1E: // integer + // offset: 1; size: 2; unsigned 16-bit integer + $name = 'tInt'; + $size = 3; + $data = self::_GetInt2d($formulaData, 1); + break; + case 0x1F: // number + // offset: 1; size: 8; + $name = 'tNum'; + $size = 9; + $data = self::_extractNumber(substr($formulaData, 1)); + $data = str_replace(',', '.', (string)$data); // in case non-English locale + break; + case 0x20: // array constant + case 0x40: + case 0x60: + // offset: 1; size: 7; not used + $name = 'tArray'; + $size = 8; + $data = null; + break; + case 0x21: // function with fixed number of arguments + case 0x41: + case 0x61: + $name = 'tFunc'; + $size = 3; + // offset: 1; size: 2; index to built-in sheet function + switch (self::_GetInt2d($formulaData, 1)) { + case 2: $function = 'ISNA'; $args = 1; break; + case 3: $function = 'ISERROR'; $args = 1; break; + case 10: $function = 'NA'; $args = 0; break; + case 15: $function = 'SIN'; $args = 1; break; + case 16: $function = 'COS'; $args = 1; break; + case 17: $function = 'TAN'; $args = 1; break; + case 18: $function = 'ATAN'; $args = 1; break; + case 19: $function = 'PI'; $args = 0; break; + case 20: $function = 'SQRT'; $args = 1; break; + case 21: $function = 'EXP'; $args = 1; break; + case 22: $function = 'LN'; $args = 1; break; + case 23: $function = 'LOG10'; $args = 1; break; + case 24: $function = 'ABS'; $args = 1; break; + case 25: $function = 'INT'; $args = 1; break; + case 26: $function = 'SIGN'; $args = 1; break; + case 27: $function = 'ROUND'; $args = 2; break; + case 30: $function = 'REPT'; $args = 2; break; + case 31: $function = 'MID'; $args = 3; break; + case 32: $function = 'LEN'; $args = 1; break; + case 33: $function = 'VALUE'; $args = 1; break; + case 34: $function = 'TRUE'; $args = 0; break; + case 35: $function = 'FALSE'; $args = 0; break; + case 38: $function = 'NOT'; $args = 1; break; + case 39: $function = 'MOD'; $args = 2; break; + case 40: $function = 'DCOUNT'; $args = 3; break; + case 41: $function = 'DSUM'; $args = 3; break; + case 42: $function = 'DAVERAGE'; $args = 3; break; + case 43: $function = 'DMIN'; $args = 3; break; + case 44: $function = 'DMAX'; $args = 3; break; + case 45: $function = 'DSTDEV'; $args = 3; break; + case 48: $function = 'TEXT'; $args = 2; break; + case 61: $function = 'MIRR'; $args = 3; break; + case 63: $function = 'RAND'; $args = 0; break; + case 65: $function = 'DATE'; $args = 3; break; + case 66: $function = 'TIME'; $args = 3; break; + case 67: $function = 'DAY'; $args = 1; break; + case 68: $function = 'MONTH'; $args = 1; break; + case 69: $function = 'YEAR'; $args = 1; break; + case 71: $function = 'HOUR'; $args = 1; break; + case 72: $function = 'MINUTE'; $args = 1; break; + case 73: $function = 'SECOND'; $args = 1; break; + case 74: $function = 'NOW'; $args = 0; break; + case 75: $function = 'AREAS'; $args = 1; break; + case 76: $function = 'ROWS'; $args = 1; break; + case 77: $function = 'COLUMNS'; $args = 1; break; + case 83: $function = 'TRANSPOSE'; $args = 1; break; + case 86: $function = 'TYPE'; $args = 1; break; + case 97: $function = 'ATAN2'; $args = 2; break; + case 98: $function = 'ASIN'; $args = 1; break; + case 99: $function = 'ACOS'; $args = 1; break; + case 105: $function = 'ISREF'; $args = 1; break; + case 111: $function = 'CHAR'; $args = 1; break; + case 112: $function = 'LOWER'; $args = 1; break; + case 113: $function = 'UPPER'; $args = 1; break; + case 114: $function = 'PROPER'; $args = 1; break; + case 117: $function = 'EXACT'; $args = 2; break; + case 118: $function = 'TRIM'; $args = 1; break; + case 119: $function = 'REPLACE'; $args = 4; break; + case 121: $function = 'CODE'; $args = 1; break; + case 126: $function = 'ISERR'; $args = 1; break; + case 127: $function = 'ISTEXT'; $args = 1; break; + case 128: $function = 'ISNUMBER'; $args = 1; break; + case 129: $function = 'ISBLANK'; $args = 1; break; + case 130: $function = 'T'; $args = 1; break; + case 131: $function = 'N'; $args = 1; break; + case 140: $function = 'DATEVALUE'; $args = 1; break; + case 141: $function = 'TIMEVALUE'; $args = 1; break; + case 142: $function = 'SLN'; $args = 3; break; + case 143: $function = 'SYD'; $args = 4; break; + case 162: $function = 'CLEAN'; $args = 1; break; + case 163: $function = 'MDETERM'; $args = 1; break; + case 164: $function = 'MINVERSE'; $args = 1; break; + case 165: $function = 'MMULT'; $args = 2; break; + case 184: $function = 'FACT'; $args = 1; break; + case 189: $function = 'DPRODUCT'; $args = 3; break; + case 190: $function = 'ISNONTEXT'; $args = 1; break; + case 195: $function = 'DSTDEVP'; $args = 3; break; + case 196: $function = 'DVARP'; $args = 3; break; + case 198: $function = 'ISLOGICAL'; $args = 1; break; + case 199: $function = 'DCOUNTA'; $args = 3; break; + case 207: $function = 'REPLACEB'; $args = 4; break; + case 210: $function = 'MIDB'; $args = 3; break; + case 211: $function = 'LENB'; $args = 1; break; + case 212: $function = 'ROUNDUP'; $args = 2; break; + case 213: $function = 'ROUNDDOWN'; $args = 2; break; + case 214: $function = 'ASC'; $args = 1; break; + case 215: $function = 'DBCS'; $args = 1; break; + case 221: $function = 'TODAY'; $args = 0; break; + case 229: $function = 'SINH'; $args = 1; break; + case 230: $function = 'COSH'; $args = 1; break; + case 231: $function = 'TANH'; $args = 1; break; + case 232: $function = 'ASINH'; $args = 1; break; + case 233: $function = 'ACOSH'; $args = 1; break; + case 234: $function = 'ATANH'; $args = 1; break; + case 235: $function = 'DGET'; $args = 3; break; + case 244: $function = 'INFO'; $args = 1; break; + case 252: $function = 'FREQUENCY'; $args = 2; break; + case 261: $function = 'ERROR.TYPE'; $args = 1; break; + case 271: $function = 'GAMMALN'; $args = 1; break; + case 273: $function = 'BINOMDIST'; $args = 4; break; + case 274: $function = 'CHIDIST'; $args = 2; break; + case 275: $function = 'CHIINV'; $args = 2; break; + case 276: $function = 'COMBIN'; $args = 2; break; + case 277: $function = 'CONFIDENCE'; $args = 3; break; + case 278: $function = 'CRITBINOM'; $args = 3; break; + case 279: $function = 'EVEN'; $args = 1; break; + case 280: $function = 'EXPONDIST'; $args = 3; break; + case 281: $function = 'FDIST'; $args = 3; break; + case 282: $function = 'FINV'; $args = 3; break; + case 283: $function = 'FISHER'; $args = 1; break; + case 284: $function = 'FISHERINV'; $args = 1; break; + case 285: $function = 'FLOOR'; $args = 2; break; + case 286: $function = 'GAMMADIST'; $args = 4; break; + case 287: $function = 'GAMMAINV'; $args = 3; break; + case 288: $function = 'CEILING'; $args = 2; break; + case 289: $function = 'HYPGEOMDIST'; $args = 4; break; + case 290: $function = 'LOGNORMDIST'; $args = 3; break; + case 291: $function = 'LOGINV'; $args = 3; break; + case 292: $function = 'NEGBINOMDIST'; $args = 3; break; + case 293: $function = 'NORMDIST'; $args = 4; break; + case 294: $function = 'NORMSDIST'; $args = 1; break; + case 295: $function = 'NORMINV'; $args = 3; break; + case 296: $function = 'NORMSINV'; $args = 1; break; + case 297: $function = 'STANDARDIZE'; $args = 3; break; + case 298: $function = 'ODD'; $args = 1; break; + case 299: $function = 'PERMUT'; $args = 2; break; + case 300: $function = 'POISSON'; $args = 3; break; + case 301: $function = 'TDIST'; $args = 3; break; + case 302: $function = 'WEIBULL'; $args = 4; break; + case 303: $function = 'SUMXMY2'; $args = 2; break; + case 304: $function = 'SUMX2MY2'; $args = 2; break; + case 305: $function = 'SUMX2PY2'; $args = 2; break; + case 306: $function = 'CHITEST'; $args = 2; break; + case 307: $function = 'CORREL'; $args = 2; break; + case 308: $function = 'COVAR'; $args = 2; break; + case 309: $function = 'FORECAST'; $args = 3; break; + case 310: $function = 'FTEST'; $args = 2; break; + case 311: $function = 'INTERCEPT'; $args = 2; break; + case 312: $function = 'PEARSON'; $args = 2; break; + case 313: $function = 'RSQ'; $args = 2; break; + case 314: $function = 'STEYX'; $args = 2; break; + case 315: $function = 'SLOPE'; $args = 2; break; + case 316: $function = 'TTEST'; $args = 4; break; + case 325: $function = 'LARGE'; $args = 2; break; + case 326: $function = 'SMALL'; $args = 2; break; + case 327: $function = 'QUARTILE'; $args = 2; break; + case 328: $function = 'PERCENTILE'; $args = 2; break; + case 331: $function = 'TRIMMEAN'; $args = 2; break; + case 332: $function = 'TINV'; $args = 2; break; + case 337: $function = 'POWER'; $args = 2; break; + case 342: $function = 'RADIANS'; $args = 1; break; + case 343: $function = 'DEGREES'; $args = 1; break; + case 346: $function = 'COUNTIF'; $args = 2; break; + case 347: $function = 'COUNTBLANK'; $args = 1; break; + case 350: $function = 'ISPMT'; $args = 4; break; + case 351: $function = 'DATEDIF'; $args = 3; break; + case 352: $function = 'DATESTRING'; $args = 1; break; + case 353: $function = 'NUMBERSTRING'; $args = 2; break; + case 360: $function = 'PHONETIC'; $args = 1; break; + case 368: $function = 'BAHTTEXT'; $args = 1; break; + default: + throw new Exception('Unrecognized function in formula'); + break; + } + $data = array('function' => $function, 'args' => $args); + break; + case 0x22: // function with variable number of arguments + case 0x42: + case 0x62: + $name = 'tFuncV'; + $size = 4; + // offset: 1; size: 1; number of arguments + $args = ord($formulaData[1]); + // offset: 2: size: 2; index to built-in sheet function + $index = self::_GetInt2d($formulaData, 2); + switch ($index) { + case 0: $function = 'COUNT'; break; + case 1: $function = 'IF'; break; + case 4: $function = 'SUM'; break; + case 5: $function = 'AVERAGE'; break; + case 6: $function = 'MIN'; break; + case 7: $function = 'MAX'; break; + case 8: $function = 'ROW'; break; + case 9: $function = 'COLUMN'; break; + case 11: $function = 'NPV'; break; + case 12: $function = 'STDEV'; break; + case 13: $function = 'DOLLAR'; break; + case 14: $function = 'FIXED'; break; + case 28: $function = 'LOOKUP'; break; + case 29: $function = 'INDEX'; break; + case 36: $function = 'AND'; break; + case 37: $function = 'OR'; break; + case 46: $function = 'VAR'; break; + case 49: $function = 'LINEST'; break; + case 50: $function = 'TREND'; break; + case 51: $function = 'LOGEST'; break; + case 52: $function = 'GROWTH'; break; + case 56: $function = 'PV'; break; + case 57: $function = 'FV'; break; + case 58: $function = 'NPER'; break; + case 59: $function = 'PMT'; break; + case 60: $function = 'RATE'; break; + case 62: $function = 'IRR'; break; + case 64: $function = 'MATCH'; break; + case 70: $function = 'WEEKDAY'; break; + case 78: $function = 'OFFSET'; break; + case 82: $function = 'SEARCH'; break; + case 100: $function = 'CHOOSE'; break; + case 101: $function = 'HLOOKUP'; break; + case 102: $function = 'VLOOKUP'; break; + case 109: $function = 'LOG'; break; + case 115: $function = 'LEFT'; break; + case 116: $function = 'RIGHT'; break; + case 120: $function = 'SUBSTITUTE'; break; + case 124: $function = 'FIND'; break; + case 125: $function = 'CELL'; break; + case 144: $function = 'DDB'; break; + case 148: $function = 'INDIRECT'; break; + case 167: $function = 'IPMT'; break; + case 168: $function = 'PPMT'; break; + case 169: $function = 'COUNTA'; break; + case 183: $function = 'PRODUCT'; break; + case 193: $function = 'STDEVP'; break; + case 194: $function = 'VARP'; break; + case 197: $function = 'TRUNC'; break; + case 204: $function = 'USDOLLAR'; break; + case 205: $function = 'FINDB'; break; + case 206: $function = 'SEARCHB'; break; + case 208: $function = 'LEFTB'; break; + case 209: $function = 'RIGHTB'; break; + case 216: $function = 'RANK'; break; + case 219: $function = 'ADDRESS'; break; + case 220: $function = 'DAYS360'; break; + case 222: $function = 'VDB'; break; + case 227: $function = 'MEDIAN'; break; + case 228: $function = 'SUMPRODUCT'; break; + case 247: $function = 'DB'; break; + case 255: $function = ''; break; + case 269: $function = 'AVEDEV'; break; + case 270: $function = 'BETADIST'; break; + case 272: $function = 'BETAINV'; break; + case 317: $function = 'PROB'; break; + case 318: $function = 'DEVSQ'; break; + case 319: $function = 'GEOMEAN'; break; + case 320: $function = 'HARMEAN'; break; + case 321: $function = 'SUMSQ'; break; + case 322: $function = 'KURT'; break; + case 323: $function = 'SKEW'; break; + case 324: $function = 'ZTEST'; break; + case 329: $function = 'PERCENTRANK'; break; + case 330: $function = 'MODE'; break; + case 336: $function = 'CONCATENATE'; break; + case 344: $function = 'SUBTOTAL'; break; + case 345: $function = 'SUMIF'; break; + case 354: $function = 'ROMAN'; break; + case 358: $function = 'GETPIVOTDATA'; break; + case 359: $function = 'HYPERLINK'; break; + case 361: $function = 'AVERAGEA'; break; + case 362: $function = 'MAXA'; break; + case 363: $function = 'MINA'; break; + case 364: $function = 'STDEVPA'; break; + case 365: $function = 'VARPA'; break; + case 366: $function = 'STDEVA'; break; + case 367: $function = 'VARA'; break; + default: + throw new Exception('Unrecognized function in formula'); + break; + } + $data = array('function' => $function, 'args' => $args); + break; + case 0x23: // index to defined name + case 0x43: + case 0x63: + $name = 'tName'; + $size = 5; + // offset: 1; size: 2; one-based index to definedname record + $definedNameIndex = self::_GetInt2d($formulaData, 1) - 1; + // offset: 2; size: 2; not used + $data = $this->_definedname[$definedNameIndex]['name']; + break; + case 0x24: // single cell reference e.g. A5 + case 0x44: + case 0x64: + $name = 'tRef'; + $size = 5; + $data = $this->_readBIFF8CellAddress(substr($formulaData, 1, 4)); + break; + case 0x25: // cell range reference to cells in the same sheet (2d) + case 0x45: + case 0x65: + $name = 'tArea'; + $size = 9; + $data = $this->_readBIFF8CellRangeAddress(substr($formulaData, 1, 8)); + break; + case 0x26: // Constant reference sub-expression + case 0x46: + case 0x66: + $name = 'tMemArea'; + // offset: 1; size: 4; not used + // offset: 5; size: 2; size of the following subexpression + $subSize = self::_GetInt2d($formulaData, 5); + $size = 7 + $subSize; + $data = $this->_getFormulaFromData(substr($formulaData, 7, $subSize)); + break; + case 0x27: // Deleted constant reference sub-expression + case 0x47: + case 0x67: + $name = 'tMemErr'; + // offset: 1; size: 4; not used + // offset: 5; size: 2; size of the following subexpression + $subSize = self::_GetInt2d($formulaData, 5); + $size = 7 + $subSize; + $data = $this->_getFormulaFromData(substr($formulaData, 7, $subSize)); + break; + case 0x29: // Variable reference sub-expression + case 0x49: + case 0x69: + $name = 'tMemFunc'; + // offset: 1; size: 2; size of the following sub-expression + $subSize = self::_GetInt2d($formulaData, 1); + $size = 3 + $subSize; + $data = $this->_getFormulaFromData(substr($formulaData, 3, $subSize)); + break; + + case 0x2C: // Relative 2d cell reference reference, used in shared formulas and some other places + case 0x4C: + case 0x6C: + $name = 'tRefN'; + $size = 5; + $data = $this->_readBIFF8CellAddressB(substr($formulaData, 1, 4), $baseCell); + break; + + case 0x2D: // Relative 2d range reference + case 0x4D: + case 0x6D: + $name = 'tAreaN'; + $size = 9; + $data = $this->_readBIFF8CellRangeAddressB(substr($formulaData, 1, 8), $baseCell); + break; + + case 0x39: // External name + case 0x59: + case 0x79: + $name = 'tNameX'; + $size = 7; + // offset: 1; size: 2; index to REF entry in EXTERNSHEET record + // offset: 3; size: 2; one-based index to DEFINEDNAME or EXTERNNAME record + $index = self::_GetInt2d($formulaData, 3); + // assume index is to EXTERNNAME record + $data = $this->_externalNames[$index - 1]['name']; + // offset: 5; size: 2; not used + break; + + case 0x3A: // 3d reference to cell + case 0x5A: + case 0x7A: + $name = 'tRef3d'; + $size = 7; + + try { + // offset: 1; size: 2; index to REF entry + $sheetRange = $this->_readSheetRangeByRefIndex(self::_GetInt2d($formulaData, 1)); + // offset: 3; size: 4; cell address + $cellAddress = $this->_readBIFF8CellAddress(substr($formulaData, 3, 4)); + + $data = "$sheetRange!$cellAddress"; + } catch (Exception $e) { + // deleted sheet reference + $data = '#REF!'; + } + + break; + case 0x3B: // 3d reference to cell range + case 0x5B: + case 0x7B: + $name = 'tArea3d'; + $size = 11; + + try { + // offset: 1; size: 2; index to REF entry + $sheetRange = $this->_readSheetRangeByRefIndex(self::_GetInt2d($formulaData, 1)); + // offset: 3; size: 8; cell address + $cellRangeAddress = $this->_readBIFF8CellRangeAddress(substr($formulaData, 3, 8)); + + $data = "$sheetRange!$cellRangeAddress"; + } catch (Exception $e) { + // deleted sheet reference + $data = '#REF!'; + } + + break; + // Unknown cases // don't know how to deal with + default: + throw new Exception('Unrecognized token ' . sprintf('%02X', $id) . ' in formula'); + break; + } + + return array( + 'id' => $id, + 'name' => $name, + 'size' => $size, + 'data' => $data, + ); + } + + + /** + * Reads a cell address in BIFF8 e.g. 'A2' or '$A$2' + * section 3.3.4 + * + * @param string $cellAddressStructure + * @return string + */ + private function _readBIFF8CellAddress($cellAddressStructure) + { + // offset: 0; size: 2; index to row (0... 65535) (or offset (-32768... 32767)) + $row = self::_GetInt2d($cellAddressStructure, 0) + 1; + + // offset: 2; size: 2; index to column or column offset + relative flags + + // bit: 7-0; mask 0x00FF; column index + $column = PHPExcel_Cell::stringFromColumnIndex(0x00FF & self::_GetInt2d($cellAddressStructure, 2)); + + // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) + if (!(0x4000 & self::_GetInt2d($cellAddressStructure, 2))) { + $column = '$' . $column; + } + // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) + if (!(0x8000 & self::_GetInt2d($cellAddressStructure, 2))) { + $row = '$' . $row; + } + + return $column . $row; + } + + + /** + * Reads a cell address in BIFF8 for shared formulas. Uses positive and negative values for row and column + * to indicate offsets from a base cell + * section 3.3.4 + * + * @param string $cellAddressStructure + * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas + * @return string + */ + private function _readBIFF8CellAddressB($cellAddressStructure, $baseCell = 'A1') + { + list($baseCol, $baseRow) = PHPExcel_Cell::coordinateFromString($baseCell); + $baseCol = PHPExcel_Cell::columnIndexFromString($baseCol) - 1; + + // offset: 0; size: 2; index to row (0... 65535) (or offset (-32768... 32767)) + $rowIndex = self::_GetInt2d($cellAddressStructure, 0); + $row = self::_GetInt2d($cellAddressStructure, 0) + 1; + + // offset: 2; size: 2; index to column or column offset + relative flags + + // bit: 7-0; mask 0x00FF; column index + $colIndex = 0x00FF & self::_GetInt2d($cellAddressStructure, 2); + + // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) + if (!(0x4000 & self::_GetInt2d($cellAddressStructure, 2))) { + $column = PHPExcel_Cell::stringFromColumnIndex($colIndex); + $column = '$' . $column; + } else { + $colIndex = ($colIndex <= 127) ? $colIndex : $colIndex - 256; + $column = PHPExcel_Cell::stringFromColumnIndex($baseCol + $colIndex); + } + + // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) + if (!(0x8000 & self::_GetInt2d($cellAddressStructure, 2))) { + $row = '$' . $row; + } else { + $rowIndex = ($rowIndex <= 32767) ? $rowIndex : $rowIndex - 65536; + $row = $baseRow + $rowIndex; + } + + return $column . $row; + } + + + /** + * Reads a cell range address in BIFF5 e.g. 'A2:B6' or 'A1' + * always fixed range + * section 2.5.14 + * + * @param string $subData + * @return string + * @throws Exception + */ + private function _readBIFF5CellRangeAddressFixed($subData) + { + // offset: 0; size: 2; index to first row + $fr = self::_GetInt2d($subData, 0) + 1; + + // offset: 2; size: 2; index to last row + $lr = self::_GetInt2d($subData, 2) + 1; + + // offset: 4; size: 1; index to first column + $fc = ord($subData{4}); + + // offset: 5; size: 1; index to last column + $lc = ord($subData{5}); + + // check values + if ($fr > $lr || $fc > $lc) { + throw new Exception('Not a cell range address'); + } + + // column index to letter + $fc = PHPExcel_Cell::stringFromColumnIndex($fc); + $lc = PHPExcel_Cell::stringFromColumnIndex($lc); + + if ($fr == $lr and $fc == $lc) { + return "$fc$fr"; + } + return "$fc$fr:$lc$lr"; + } + + + /** + * Reads a cell range address in BIFF8 e.g. 'A2:B6' or 'A1' + * always fixed range + * section 2.5.14 + * + * @param string $subData + * @return string + * @throws Exception + */ + private function _readBIFF8CellRangeAddressFixed($subData) + { + // offset: 0; size: 2; index to first row + $fr = self::_GetInt2d($subData, 0) + 1; + + // offset: 2; size: 2; index to last row + $lr = self::_GetInt2d($subData, 2) + 1; + + // offset: 4; size: 2; index to first column + $fc = self::_GetInt2d($subData, 4); + + // offset: 6; size: 2; index to last column + $lc = self::_GetInt2d($subData, 6); + + // check values + if ($fr > $lr || $fc > $lc) { + throw new Exception('Not a cell range address'); + } + + // column index to letter + $fc = PHPExcel_Cell::stringFromColumnIndex($fc); + $lc = PHPExcel_Cell::stringFromColumnIndex($lc); + + if ($fr == $lr and $fc == $lc) { + return "$fc$fr"; + } + return "$fc$fr:$lc$lr"; + } + + + /** + * Reads a cell range address in BIFF8 e.g. 'A2:B6' or '$A$2:$B$6' + * there are flags indicating whether column/row index is relative + * section 3.3.4 + * + * @param string $subData + * @return string + */ + private function _readBIFF8CellRangeAddress($subData) + { + // todo: if cell range is just a single cell, should this funciton + // not just return e.g. 'A1' and not 'A1:A1' ? + + // offset: 0; size: 2; index to first row (0... 65535) (or offset (-32768... 32767)) + $fr = self::_GetInt2d($subData, 0) + 1; + + // offset: 2; size: 2; index to last row (0... 65535) (or offset (-32768... 32767)) + $lr = self::_GetInt2d($subData, 2) + 1; + + // offset: 4; size: 2; index to first column or column offset + relative flags + + // bit: 7-0; mask 0x00FF; column index + $fc = PHPExcel_Cell::stringFromColumnIndex(0x00FF & self::_GetInt2d($subData, 4)); + + // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) + if (!(0x4000 & self::_GetInt2d($subData, 4))) { + $fc = '$' . $fc; + } + + // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) + if (!(0x8000 & self::_GetInt2d($subData, 4))) { + $fr = '$' . $fr; + } + + // offset: 6; size: 2; index to last column or column offset + relative flags + + // bit: 7-0; mask 0x00FF; column index + $lc = PHPExcel_Cell::stringFromColumnIndex(0x00FF & self::_GetInt2d($subData, 6)); + + // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) + if (!(0x4000 & self::_GetInt2d($subData, 6))) { + $lc = '$' . $lc; + } + + // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) + if (!(0x8000 & self::_GetInt2d($subData, 6))) { + $lr = '$' . $lr; + } + + return "$fc$fr:$lc$lr"; + } + + + /** + * Reads a cell range address in BIFF8 for shared formulas. Uses positive and negative values for row and column + * to indicate offsets from a base cell + * section 3.3.4 + * + * @param string $subData + * @param string $baseCell Base cell + * @return string Cell range address + */ + private function _readBIFF8CellRangeAddressB($subData, $baseCell = 'A1') + { + list($baseCol, $baseRow) = PHPExcel_Cell::coordinateFromString($baseCell); + $baseCol = PHPExcel_Cell::columnIndexFromString($baseCol) - 1; + + // TODO: if cell range is just a single cell, should this funciton + // not just return e.g. 'A1' and not 'A1:A1' ? + + // offset: 0; size: 2; first row + $frIndex = self::_GetInt2d($subData, 0); // adjust below + + // offset: 2; size: 2; relative index to first row (0... 65535) should be treated as offset (-32768... 32767) + $lrIndex = self::_GetInt2d($subData, 2); // adjust below + + // offset: 4; size: 2; first column with relative/absolute flags + + // bit: 7-0; mask 0x00FF; column index + $fcIndex = 0x00FF & self::_GetInt2d($subData, 4); + + // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) + if (!(0x4000 & self::_GetInt2d($subData, 4))) { + // absolute column index + $fc = PHPExcel_Cell::stringFromColumnIndex($fcIndex); + $fc = '$' . $fc; + } else { + // column offset + $fcIndex = ($fcIndex <= 127) ? $fcIndex : $fcIndex - 256; + $fc = PHPExcel_Cell::stringFromColumnIndex($baseCol + $fcIndex); + } + + // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) + if (!(0x8000 & self::_GetInt2d($subData, 4))) { + // absolute row index + $fr = $frIndex + 1; + $fr = '$' . $fr; + } else { + // row offset + $frIndex = ($frIndex <= 32767) ? $frIndex : $frIndex - 65536; + $fr = $baseRow + $frIndex; + } + + // offset: 6; size: 2; last column with relative/absolute flags + + // bit: 7-0; mask 0x00FF; column index + $lcIndex = 0x00FF & self::_GetInt2d($subData, 6); + $lcIndex = ($lcIndex <= 127) ? $lcIndex : $lcIndex - 256; + $lc = PHPExcel_Cell::stringFromColumnIndex($baseCol + $lcIndex); + + // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) + if (!(0x4000 & self::_GetInt2d($subData, 6))) { + // absolute column index + $lc = PHPExcel_Cell::stringFromColumnIndex($lcIndex); + $lc = '$' . $lc; + } else { + // column offset + $lcIndex = ($lcIndex <= 127) ? $lcIndex : $lcIndex - 256; + $lc = PHPExcel_Cell::stringFromColumnIndex($baseCol + $lcIndex); + } + + // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) + if (!(0x8000 & self::_GetInt2d($subData, 6))) { + // absolute row index + $lr = $lrIndex + 1; + $lr = '$' . $lr; + } else { + // row offset + $lrIndex = ($lrIndex <= 32767) ? $lrIndex : $lrIndex - 65536; + $lr = $baseRow + $lrIndex; + } + + return "$fc$fr:$lc$lr"; + } + + + /** + * Read BIFF8 cell range address list + * section 2.5.15 + * + * @param string $subData + * @return array + */ + private function _readBIFF8CellRangeAddressList($subData) + { + $cellRangeAddresses = array(); + + // offset: 0; size: 2; number of the following cell range addresses + $nm = self::_GetInt2d($subData, 0); + + $offset = 2; + // offset: 2; size: 8 * $nm; list of $nm (fixed) cell range addresses + for ($i = 0; $i < $nm; ++$i) { + $cellRangeAddresses[] = $this->_readBIFF8CellRangeAddressFixed(substr($subData, $offset, 8)); + $offset += 8; + } + + return array( + 'size' => 2 + 8 * $nm, + 'cellRangeAddresses' => $cellRangeAddresses, + ); + } + + + /** + * Read BIFF5 cell range address list + * section 2.5.15 + * + * @param string $subData + * @return array + */ + private function _readBIFF5CellRangeAddressList($subData) + { + $cellRangeAddresses = array(); + + // offset: 0; size: 2; number of the following cell range addresses + $nm = self::_GetInt2d($subData, 0); + + $offset = 2; + // offset: 2; size: 6 * $nm; list of $nm (fixed) cell range addresses + for ($i = 0; $i < $nm; ++$i) { + $cellRangeAddresses[] = $this->_readBIFF5CellRangeAddressFixed(substr($subData, $offset, 6)); + $offset += 6; + } + + return array( + 'size' => 2 + 6 * $nm, + 'cellRangeAddresses' => $cellRangeAddresses, + ); + } + + + /** + * Get a sheet range like Sheet1:Sheet3 from REF index + * Note: If there is only one sheet in the range, one gets e.g Sheet1 + * It can also happen that the REF structure uses the -1 (FFFF) code to indicate deleted sheets, + * in which case an exception is thrown + * + * @param int $index + * @return string|false + * @throws Exception + */ + private function _readSheetRangeByRefIndex($index) + { + if (isset($this->_ref[$index])) { + + $type = $this->_externalBooks[$this->_ref[$index]['externalBookIndex']]['type']; + + switch ($type) { + case 'internal': + // check if we have a deleted 3d reference + if ($this->_ref[$index]['firstSheetIndex'] == 0xFFFF or $this->_ref[$index]['lastSheetIndex'] == 0xFFFF) { + throw new Exception('Deleted sheet reference'); + } + + // we have normal sheet range (collapsed or uncollapsed) + $firstSheetName = $this->_sheets[$this->_ref[$index]['firstSheetIndex']]['name']; + $lastSheetName = $this->_sheets[$this->_ref[$index]['lastSheetIndex']]['name']; + + if ($firstSheetName == $lastSheetName) { + // collapsed sheet range + $sheetRange = $firstSheetName; + } else { + $sheetRange = "$firstSheetName:$lastSheetName"; + } + + // escape the single-quotes + $sheetRange = str_replace("'", "''", $sheetRange); + + // if there are special characters, we need to enclose the range in single-quotes + // todo: check if we have identified the whole set of special characters + // it seems that the following characters are not accepted for sheet names + // and we may assume that they are not present: []*/:\? + if (preg_match("/[ !\"@#£$%&{()}<>=+'|^,;-]/", $sheetRange)) { + $sheetRange = "'$sheetRange'"; + } + + return $sheetRange; + break; + + default: + // TODO: external sheet support + throw new Exception('Excel5 reader only supports internal sheets in fomulas'); + break; + } + } + return false; + } + + + /** + * read BIFF8 constant value array from array data + * returns e.g. array('value' => '{1,2;3,4}', 'size' => 40} + * section 2.5.8 + * + * @param string $arrayData + * @return array + */ + private static function _readBIFF8ConstantArray($arrayData) + { + // offset: 0; size: 1; number of columns decreased by 1 + $nc = ord($arrayData[0]); + + // offset: 1; size: 2; number of rows decreased by 1 + $nr = self::_GetInt2d($arrayData, 1); + $size = 3; // initialize + $arrayData = substr($arrayData, 3); + + // offset: 3; size: var; list of ($nc + 1) * ($nr + 1) constant values + $matrixChunks = array(); + for ($r = 1; $r <= $nr + 1; ++$r) { + $items = array(); + for ($c = 1; $c <= $nc + 1; ++$c) { + $constant = self::_readBIFF8Constant($arrayData); + $items[] = $constant['value']; + $arrayData = substr($arrayData, $constant['size']); + $size += $constant['size']; + } + $matrixChunks[] = implode(',', $items); // looks like e.g. '1,"hello"' + } + $matrix = '{' . implode(';', $matrixChunks) . '}'; + + return array( + 'value' => $matrix, + 'size' => $size, + ); + } + + + /** + * read BIFF8 constant value which may be 'Empty Value', 'Number', 'String Value', 'Boolean Value', 'Error Value' + * section 2.5.7 + * returns e.g. array('value' => '5', 'size' => 9) + * + * @param string $valueData + * @return array + */ + private static function _readBIFF8Constant($valueData) + { + // offset: 0; size: 1; identifier for type of constant + $identifier = ord($valueData[0]); + + switch ($identifier) { + case 0x00: // empty constant (what is this?) + $value = ''; + $size = 9; + break; + case 0x01: // number + // offset: 1; size: 8; IEEE 754 floating-point value + $value = self::_extractNumber(substr($valueData, 1, 8)); + $size = 9; + break; + case 0x02: // string value + // offset: 1; size: var; Unicode string, 16-bit string length + $string = self::_readUnicodeStringLong(substr($valueData, 1)); + $value = '"' . $string['value'] . '"'; + $size = 1 + $string['size']; + break; + case 0x04: // boolean + // offset: 1; size: 1; 0 = FALSE, 1 = TRUE + if (ord($valueData[1])) { + $value = 'TRUE'; + } else { + $value = 'FALSE'; + } + $size = 9; + break; + case 0x10: // error code + // offset: 1; size: 1; error code + $value = self::_mapErrorCode(ord($valueData[1])); + $size = 9; + break; + } + return array( + 'value' => $value, + 'size' => $size, + ); + } + + + /** + * Extract RGB color + * OpenOffice.org's Documentation of the Microsoft Excel File Format, section 2.5.4 + * + * @param string $rgb Encoded RGB value (4 bytes) + * @return array + */ + private static function _readRGB($rgb) + { + // offset: 0; size 1; Red component + $r = ord($rgb{0}); + + // offset: 1; size: 1; Green component + $g = ord($rgb{1}); + + // offset: 2; size: 1; Blue component + $b = ord($rgb{2}); + + // HEX notation, e.g. 'FF00FC' + $rgb = sprintf('%02X%02X%02X', $r, $g, $b); + + return array('rgb' => $rgb); + } + + + /** + * Read byte string (8-bit string length) + * OpenOffice documentation: 2.5.2 + * + * @param string $subData + * @return array + */ + private function _readByteStringShort($subData) + { + // offset: 0; size: 1; length of the string (character count) + $ln = ord($subData[0]); + + // offset: 1: size: var; character array (8-bit characters) + $value = $this->_decodeCodepage(substr($subData, 1, $ln)); + + return array( + 'value' => $value, + 'size' => 1 + $ln, // size in bytes of data structure + ); + } + + + /** + * Read byte string (16-bit string length) + * OpenOffice documentation: 2.5.2 + * + * @param string $subData + * @return array + */ + private function _readByteStringLong($subData) + { + // offset: 0; size: 2; length of the string (character count) + $ln = self::_GetInt2d($subData, 0); + + // offset: 2: size: var; character array (8-bit characters) + $value = $this->_decodeCodepage(substr($subData, 2)); + + //return $string; + return array( + 'value' => $value, + 'size' => 2 + $ln, // size in bytes of data structure + ); + } + + + /** + * Extracts an Excel Unicode short string (8-bit string length) + * OpenOffice documentation: 2.5.3 + * function will automatically find out where the Unicode string ends. + * + * @param string $subData + * @return array + */ + private static function _readUnicodeStringShort($subData) + { + $value = ''; + + // offset: 0: size: 1; length of the string (character count) + $characterCount = ord($subData[0]); + + $string = self::_readUnicodeString(substr($subData, 1), $characterCount); + + // add 1 for the string length + $string['size'] += 1; + + return $string; + } + + + /** + * Extracts an Excel Unicode long string (16-bit string length) + * OpenOffice documentation: 2.5.3 + * this function is under construction, needs to support rich text, and Asian phonetic settings + * + * @param string $subData + * @return array + */ + private static function _readUnicodeStringLong($subData) + { + $value = ''; + + // offset: 0: size: 2; length of the string (character count) + $characterCount = self::_GetInt2d($subData, 0); + + $string = self::_readUnicodeString(substr($subData, 2), $characterCount); + + // add 2 for the string length + $string['size'] += 2; + + return $string; + } + + + /** + * Read Unicode string with no string length field, but with known character count + * this function is under construction, needs to support rich text, and Asian phonetic settings + * OpenOffice.org's Documentation of the Microsoft Excel File Format, section 2.5.3 + * + * @param string $subData + * @param int $characterCount + * @return array + */ + private static function _readUnicodeString($subData, $characterCount) + { + $value = ''; + + // offset: 0: size: 1; option flags + + // bit: 0; mask: 0x01; character compression (0 = compressed 8-bit, 1 = uncompressed 16-bit) + $isCompressed = !((0x01 & ord($subData[0])) >> 0); + + // bit: 2; mask: 0x04; Asian phonetic settings + $hasAsian = (0x04) & ord($subData[0]) >> 2; + + // bit: 3; mask: 0x08; Rich-Text settings + $hasRichText = (0x08) & ord($subData[0]) >> 3; + + // offset: 1: size: var; character array + // this offset assumes richtext and Asian phonetic settings are off which is generally wrong + // needs to be fixed + $value = self::_encodeUTF16(substr($subData, 1, $isCompressed ? $characterCount : 2 * $characterCount), $isCompressed); + + return array( + 'value' => $value, + 'size' => $isCompressed ? 1 + $characterCount : 1 + 2 * $characterCount, // the size in bytes including the option flags + ); + } + + + /** + * Convert UTF-8 string to string surounded by double quotes. Used for explicit string tokens in formulas. + * Example: hello"world --> "hello""world" + * + * @param string $value UTF-8 encoded string + * @return string + */ + private static function _UTF8toExcelDoubleQuoted($value) + { + return '"' . str_replace('"', '""', $value) . '"'; + } + + + /** + * Reads first 8 bytes of a string and return IEEE 754 float + * + * @param string $data Binary string that is at least 8 bytes long + * @return float + */ + private static function _extractNumber($data) + { + $rknumhigh = self::_GetInt4d($data, 4); + $rknumlow = self::_GetInt4d($data, 0); + $sign = ($rknumhigh & 0x80000000) >> 31; + $exp = (($rknumhigh & 0x7ff00000) >> 20) - 1023; + $mantissa = (0x100000 | ($rknumhigh & 0x000fffff)); + $mantissalow1 = ($rknumlow & 0x80000000) >> 31; + $mantissalow2 = ($rknumlow & 0x7fffffff); + $value = $mantissa / pow( 2 , (20 - $exp)); + + if ($mantissalow1 != 0) { + $value += 1 / pow (2 , (21 - $exp)); + } + + $value += $mantissalow2 / pow (2 , (52 - $exp)); + if ($sign) { + $value *= -1; + } + + return $value; + } + + + private static function _GetIEEE754($rknum) + { + if (($rknum & 0x02) != 0) { + $value = $rknum >> 2; + } else { + // changes by mmp, info on IEEE754 encoding from + // research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html + // The RK format calls for using only the most significant 30 bits + // of the 64 bit floating point value. The other 34 bits are assumed + // to be 0 so we use the upper 30 bits of $rknum as follows... + $sign = ($rknum & 0x80000000) >> 31; + $exp = ($rknum & 0x7ff00000) >> 20; + $mantissa = (0x100000 | ($rknum & 0x000ffffc)); + $value = $mantissa / pow( 2 , (20- ($exp - 1023))); + if ($sign) { + $value = -1 * $value; + } + //end of changes by mmp + } + if (($rknum & 0x01) != 0) { + $value /= 100; + } + return $value; + } + + + /** + * Get UTF-8 string from (compressed or uncompressed) UTF-16 string + * + * @param string $string + * @param bool $compressed + * @return string + */ + private static function _encodeUTF16($string, $compressed = '') + { + if ($compressed) { + $string = self::_uncompressByteString($string); + } + + return PHPExcel_Shared_String::ConvertEncoding($string, 'UTF-8', 'UTF-16LE'); + } + + + /** + * Convert UTF-16 string in compressed notation to uncompressed form. Only used for BIFF8. + * + * @param string $string + * @return string + */ + private static function _uncompressByteString($string) + { + $uncompressedString = ''; + $strLen = strlen($string); + for ($i = 0; $i < $strLen; ++$i) { + $uncompressedString .= $string[$i] . "\0"; + } + + return $uncompressedString; + } + + + /** + * Convert string to UTF-8. Only used for BIFF5. + * + * @param string $string + * @return string + */ + private function _decodeCodepage($string) + { + return PHPExcel_Shared_String::ConvertEncoding($string, 'UTF-8', $this->_codepage); + } + + + /** + * Read 16-bit unsigned integer + * + * @param string $data + * @param int $pos + * @return int + */ + public static function _GetInt2d($data, $pos) + { + return ord($data[$pos]) | (ord($data[$pos+1]) << 8); + } + + + /** + * Read 32-bit signed integer + * + * @param string $data + * @param int $pos + * @return int + */ + public static function _GetInt4d($data, $pos) + { + // FIX: represent numbers correctly on 64-bit system + // http://sourceforge.net/tracker/index.php?func=detail&aid=1487372&group_id=99160&atid=623334 + // Hacked by Andreas Rehm 2006 to ensure correct result of the <<24 block on 32 and 64bit systems + $_or_24 = ord($data[$pos + 3]); + if ($_or_24 >= 128) { + // negative number + $_ord_24 = -abs((256 - $_or_24) << 24); + } else { + $_ord_24 = ($_or_24 & 127) << 24; + } + return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | $_ord_24; + } + + + /** + * Read color + * + * @param int $color Indexed color + * @param array $palette Color palette + * @return array RGB color value, example: array('rgb' => 'FF0000') + */ + private static function _readColor($color,$palette,$version) + { + if ($color <= 0x07 || $color >= 0x40) { + // special built-in color + return self::_mapBuiltInColor($color); + } elseif (isset($palette) && isset($palette[$color - 8])) { + // palette color, color index 0x08 maps to pallete index 0 + return $palette[$color - 8]; + } else { + // default color table + if ($version == self::XLS_BIFF8) { + return self::_mapColor($color); + } else { + // BIFF5 + return self::_mapColorBIFF5($color); + } + } + + return $color; + } + + + /** + * Map border style + * OpenOffice documentation: 2.5.11 + * + * @param int $index + * @return string + */ + private static function _mapBorderStyle($index) + { + switch ($index) { + case 0x00: return PHPExcel_Style_Border::BORDER_NONE; + case 0x01: return PHPExcel_Style_Border::BORDER_THIN; + case 0x02: return PHPExcel_Style_Border::BORDER_MEDIUM; + case 0x03: return PHPExcel_Style_Border::BORDER_DASHED; + case 0x04: return PHPExcel_Style_Border::BORDER_DOTTED; + case 0x05: return PHPExcel_Style_Border::BORDER_THICK; + case 0x06: return PHPExcel_Style_Border::BORDER_DOUBLE; + case 0x07: return PHPExcel_Style_Border::BORDER_HAIR; + case 0x08: return PHPExcel_Style_Border::BORDER_MEDIUMDASHED; + case 0x09: return PHPExcel_Style_Border::BORDER_DASHDOT; + case 0x0A: return PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT; + case 0x0B: return PHPExcel_Style_Border::BORDER_DASHDOTDOT; + case 0x0C: return PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT; + case 0x0D: return PHPExcel_Style_Border::BORDER_SLANTDASHDOT; + default: return PHPExcel_Style_Border::BORDER_NONE; + } + } + + + /** + * Get fill pattern from index + * OpenOffice documentation: 2.5.12 + * + * @param int $index + * @return string + */ + private static function _mapFillPattern($index) + { + switch ($index) { + case 0x00: return PHPExcel_Style_Fill::FILL_NONE; + case 0x01: return PHPExcel_Style_Fill::FILL_SOLID; + case 0x02: return PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY; + case 0x03: return PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY; + case 0x04: return PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY; + case 0x05: return PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL; + case 0x06: return PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL; + case 0x07: return PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN; + case 0x08: return PHPExcel_Style_Fill::FILL_PATTERN_DARKUP; + case 0x09: return PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID; + case 0x0A: return PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS; + case 0x0B: return PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL; + case 0x0C: return PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL; + case 0x0D: return PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN; + case 0x0E: return PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP; + case 0x0F: return PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID; + case 0x10: return PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS; + case 0x11: return PHPExcel_Style_Fill::FILL_PATTERN_GRAY125; + case 0x12: return PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625; + default: return PHPExcel_Style_Fill::FILL_NONE; + } + } + + + /** + * Map error code, e.g. '#N/A' + * + * @param int $subData + * @return string + */ + private static function _mapErrorCode($subData) + { + switch ($subData) { + case 0x00: return '#NULL!'; break; + case 0x07: return '#DIV/0!'; break; + case 0x0F: return '#VALUE!'; break; + case 0x17: return '#REF!'; break; + case 0x1D: return '#NAME?'; break; + case 0x24: return '#NUM!'; break; + case 0x2A: return '#N/A'; break; + default: return false; + } + } + + + /** + * Map built-in color to RGB value + * + * @param int $color Indexed color + * @return array + */ + private static function _mapBuiltInColor($color) + { + switch ($color) { + case 0x00: return array('rgb' => '000000'); + case 0x01: return array('rgb' => 'FFFFFF'); + case 0x02: return array('rgb' => 'FF0000'); + case 0x03: return array('rgb' => '00FF00'); + case 0x04: return array('rgb' => '0000FF'); + case 0x05: return array('rgb' => 'FFFF00'); + case 0x06: return array('rgb' => 'FF00FF'); + case 0x07: return array('rgb' => '00FFFF'); + case 0x40: return array('rgb' => '000000'); // system window text color + case 0x41: return array('rgb' => 'FFFFFF'); // system window background color + default: return array('rgb' => '000000'); + } + } + + + /** + * Map color array from BIFF5 built-in color index + * + * @param int $subData + * @return array + */ + private static function _mapColorBIFF5($subData) + { + switch ($subData) { + case 0x08: return array('rgb' => '000000'); + case 0x09: return array('rgb' => 'FFFFFF'); + case 0x0A: return array('rgb' => 'FF0000'); + case 0x0B: return array('rgb' => '00FF00'); + case 0x0C: return array('rgb' => '0000FF'); + case 0x0D: return array('rgb' => 'FFFF00'); + case 0x0E: return array('rgb' => 'FF00FF'); + case 0x0F: return array('rgb' => '00FFFF'); + case 0x10: return array('rgb' => '800000'); + case 0x11: return array('rgb' => '008000'); + case 0x12: return array('rgb' => '000080'); + case 0x13: return array('rgb' => '808000'); + case 0x14: return array('rgb' => '800080'); + case 0x15: return array('rgb' => '008080'); + case 0x16: return array('rgb' => 'C0C0C0'); + case 0x17: return array('rgb' => '808080'); + case 0x18: return array('rgb' => '8080FF'); + case 0x19: return array('rgb' => '802060'); + case 0x1A: return array('rgb' => 'FFFFC0'); + case 0x1B: return array('rgb' => 'A0E0F0'); + case 0x1C: return array('rgb' => '600080'); + case 0x1D: return array('rgb' => 'FF8080'); + case 0x1E: return array('rgb' => '0080C0'); + case 0x1F: return array('rgb' => 'C0C0FF'); + case 0x20: return array('rgb' => '000080'); + case 0x21: return array('rgb' => 'FF00FF'); + case 0x22: return array('rgb' => 'FFFF00'); + case 0x23: return array('rgb' => '00FFFF'); + case 0x24: return array('rgb' => '800080'); + case 0x25: return array('rgb' => '800000'); + case 0x26: return array('rgb' => '008080'); + case 0x27: return array('rgb' => '0000FF'); + case 0x28: return array('rgb' => '00CFFF'); + case 0x29: return array('rgb' => '69FFFF'); + case 0x2A: return array('rgb' => 'E0FFE0'); + case 0x2B: return array('rgb' => 'FFFF80'); + case 0x2C: return array('rgb' => 'A6CAF0'); + case 0x2D: return array('rgb' => 'DD9CB3'); + case 0x2E: return array('rgb' => 'B38FEE'); + case 0x2F: return array('rgb' => 'E3E3E3'); + case 0x30: return array('rgb' => '2A6FF9'); + case 0x31: return array('rgb' => '3FB8CD'); + case 0x32: return array('rgb' => '488436'); + case 0x33: return array('rgb' => '958C41'); + case 0x34: return array('rgb' => '8E5E42'); + case 0x35: return array('rgb' => 'A0627A'); + case 0x36: return array('rgb' => '624FAC'); + case 0x37: return array('rgb' => '969696'); + case 0x38: return array('rgb' => '1D2FBE'); + case 0x39: return array('rgb' => '286676'); + case 0x3A: return array('rgb' => '004500'); + case 0x3B: return array('rgb' => '453E01'); + case 0x3C: return array('rgb' => '6A2813'); + case 0x3D: return array('rgb' => '85396A'); + case 0x3E: return array('rgb' => '4A3285'); + case 0x3F: return array('rgb' => '424242'); + default: return array('rgb' => '000000'); + } + } + + + /** + * Map color array from BIFF8 built-in color index + * + * @param int $subData + * @return array + */ + private static function _mapColor($subData) + { + switch ($subData) { + case 0x08: return array('rgb' => '000000'); + case 0x09: return array('rgb' => 'FFFFFF'); + case 0x0A: return array('rgb' => 'FF0000'); + case 0x0B: return array('rgb' => '00FF00'); + case 0x0C: return array('rgb' => '0000FF'); + case 0x0D: return array('rgb' => 'FFFF00'); + case 0x0E: return array('rgb' => 'FF00FF'); + case 0x0F: return array('rgb' => '00FFFF'); + case 0x10: return array('rgb' => '800000'); + case 0x11: return array('rgb' => '008000'); + case 0x12: return array('rgb' => '000080'); + case 0x13: return array('rgb' => '808000'); + case 0x14: return array('rgb' => '800080'); + case 0x15: return array('rgb' => '008080'); + case 0x16: return array('rgb' => 'C0C0C0'); + case 0x17: return array('rgb' => '808080'); + case 0x18: return array('rgb' => '9999FF'); + case 0x19: return array('rgb' => '993366'); + case 0x1A: return array('rgb' => 'FFFFCC'); + case 0x1B: return array('rgb' => 'CCFFFF'); + case 0x1C: return array('rgb' => '660066'); + case 0x1D: return array('rgb' => 'FF8080'); + case 0x1E: return array('rgb' => '0066CC'); + case 0x1F: return array('rgb' => 'CCCCFF'); + case 0x20: return array('rgb' => '000080'); + case 0x21: return array('rgb' => 'FF00FF'); + case 0x22: return array('rgb' => 'FFFF00'); + case 0x23: return array('rgb' => '00FFFF'); + case 0x24: return array('rgb' => '800080'); + case 0x25: return array('rgb' => '800000'); + case 0x26: return array('rgb' => '008080'); + case 0x27: return array('rgb' => '0000FF'); + case 0x28: return array('rgb' => '00CCFF'); + case 0x29: return array('rgb' => 'CCFFFF'); + case 0x2A: return array('rgb' => 'CCFFCC'); + case 0x2B: return array('rgb' => 'FFFF99'); + case 0x2C: return array('rgb' => '99CCFF'); + case 0x2D: return array('rgb' => 'FF99CC'); + case 0x2E: return array('rgb' => 'CC99FF'); + case 0x2F: return array('rgb' => 'FFCC99'); + case 0x30: return array('rgb' => '3366FF'); + case 0x31: return array('rgb' => '33CCCC'); + case 0x32: return array('rgb' => '99CC00'); + case 0x33: return array('rgb' => 'FFCC00'); + case 0x34: return array('rgb' => 'FF9900'); + case 0x35: return array('rgb' => 'FF6600'); + case 0x36: return array('rgb' => '666699'); + case 0x37: return array('rgb' => '969696'); + case 0x38: return array('rgb' => '003366'); + case 0x39: return array('rgb' => '339966'); + case 0x3A: return array('rgb' => '003300'); + case 0x3B: return array('rgb' => '333300'); + case 0x3C: return array('rgb' => '993300'); + case 0x3D: return array('rgb' => '993366'); + case 0x3E: return array('rgb' => '333399'); + case 0x3F: return array('rgb' => '333333'); + default: return array('rgb' => '000000'); + } + } + + + private function _parseRichText($is = '') { + $value = new PHPExcel_RichText(); + + $value->createText($is); + + return $value; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/Excel5/Escher.php b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel5/Escher.php new file mode 100755 index 0000000..e167655 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/Excel5/Escher.php @@ -0,0 +1,640 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Reader_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Reader_Excel5_Escher + * + * @category PHPExcel + * @package PHPExcel_Reader_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Reader_Excel5_Escher +{ + const DGGCONTAINER = 0xF000; + const BSTORECONTAINER = 0xF001; + const DGCONTAINER = 0xF002; + const SPGRCONTAINER = 0xF003; + const SPCONTAINER = 0xF004; + const DGG = 0xF006; + const BSE = 0xF007; + const DG = 0xF008; + const SPGR = 0xF009; + const SP = 0xF00A; + const OPT = 0xF00B; + const CLIENTTEXTBOX = 0xF00D; + const CLIENTANCHOR = 0xF010; + const CLIENTDATA = 0xF011; + const BLIPJPEG = 0xF01D; + const BLIPPNG = 0xF01E; + const SPLITMENUCOLORS = 0xF11E; + const TERTIARYOPT = 0xF122; + + /** + * Escher stream data (binary) + * + * @var string + */ + private $_data; + + /** + * Size in bytes of the Escher stream data + * + * @var int + */ + private $_dataSize; + + /** + * Current position of stream pointer in Escher stream data + * + * @var int + */ + private $_pos; + + /** + * The object to be returned by the reader. Modified during load. + * + * @var mixed + */ + private $_object; + + /** + * Create a new PHPExcel_Reader_Excel5_Escher instance + * + * @param mixed $object + */ + public function __construct($object) + { + $this->_object = $object; + } + + /** + * Load Escher stream data. May be a partial Escher stream. + * + * @param string $data + */ + public function load($data) + { + $this->_data = $data; + + // total byte size of Excel data (workbook global substream + sheet substreams) + $this->_dataSize = strlen($this->_data); + + $this->_pos = 0; + + // Parse Escher stream + while ($this->_pos < $this->_dataSize) { + + // offset: 2; size: 2: Record Type + $fbt = PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos + 2); + + switch ($fbt) { + case self::DGGCONTAINER: $this->_readDggContainer(); break; + case self::DGG: $this->_readDgg(); break; + case self::BSTORECONTAINER: $this->_readBstoreContainer(); break; + case self::BSE: $this->_readBSE(); break; + case self::BLIPJPEG: $this->_readBlipJPEG(); break; + case self::BLIPPNG: $this->_readBlipPNG(); break; + case self::OPT: $this->_readOPT(); break; + case self::TERTIARYOPT: $this->_readTertiaryOPT(); break; + case self::SPLITMENUCOLORS: $this->_readSplitMenuColors(); break; + case self::DGCONTAINER: $this->_readDgContainer(); break; + case self::DG: $this->_readDg(); break; + case self::SPGRCONTAINER: $this->_readSpgrContainer(); break; + case self::SPCONTAINER: $this->_readSpContainer(); break; + case self::SPGR: $this->_readSpgr(); break; + case self::SP: $this->_readSp(); break; + case self::CLIENTTEXTBOX: $this->_readClientTextbox(); break; + case self::CLIENTANCHOR: $this->_readClientAnchor(); break; + case self::CLIENTDATA: $this->_readClientData(); break; + default: $this->_readDefault(); break; + } + } + + return $this->_object; + } + + /** + * Read a generic record + */ + private function _readDefault() + { + // offset 0; size: 2; recVer and recInstance + $verInstance = PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos); + + // offset: 2; size: 2: Record Type + $fbt = PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos + 2); + + // bit: 0-3; mask: 0x000F; recVer + $recVer = (0x000F & $verInstance) >> 0; + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read DggContainer record (Drawing Group Container) + */ + private function _readDggContainer() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + // record is a container, read contents + $dggContainer = new PHPExcel_Shared_Escher_DggContainer(); + $this->_object->setDggContainer($dggContainer); + $reader = new PHPExcel_Reader_Excel5_Escher($dggContainer); + $reader->load($recordData); + } + + /** + * Read Dgg record (Drawing Group) + */ + private function _readDgg() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read BstoreContainer record (Blip Store Container) + */ + private function _readBstoreContainer() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + // record is a container, read contents + $bstoreContainer = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer(); + $this->_object->setBstoreContainer($bstoreContainer); + $reader = new PHPExcel_Reader_Excel5_Escher($bstoreContainer); + $reader->load($recordData); + } + + /** + * Read BSE record + */ + private function _readBSE() + { + // offset: 0; size: 2; recVer and recInstance + + // bit: 4-15; mask: 0xFFF0; recInstance + $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4; + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + // add BSE to BstoreContainer + $BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE(); + $this->_object->addBSE($BSE); + + $BSE->setBLIPType($recInstance); + + // offset: 0; size: 1; btWin32 (MSOBLIPTYPE) + $btWin32 = ord($recordData[0]); + + // offset: 1; size: 1; btWin32 (MSOBLIPTYPE) + $btMacOS = ord($recordData[1]); + + // offset: 2; size: 16; MD4 digest + $rgbUid = substr($recordData, 2, 16); + + // offset: 18; size: 2; tag + $tag = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 18); + + // offset: 20; size: 4; size of BLIP in bytes + $size = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 20); + + // offset: 24; size: 4; number of references to this BLIP + $cRef = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 24); + + // offset: 28; size: 4; MSOFO file offset + $foDelay = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 28); + + // offset: 32; size: 1; unused1 + $unused1 = ord($recordData{32}); + + // offset: 33; size: 1; size of nameData in bytes (including null terminator) + $cbName = ord($recordData{33}); + + // offset: 34; size: 1; unused2 + $unused2 = ord($recordData{34}); + + // offset: 35; size: 1; unused3 + $unused3 = ord($recordData{35}); + + // offset: 36; size: $cbName; nameData + $nameData = substr($recordData, 36, $cbName); + + // offset: 36 + $cbName, size: var; the BLIP data + $blipData = substr($recordData, 36 + $cbName); + + // record is a container, read contents + $reader = new PHPExcel_Reader_Excel5_Escher($BSE); + $reader->load($blipData); + } + + /** + * Read BlipJPEG record. Holds raw JPEG image data + */ + private function _readBlipJPEG() + { + // offset: 0; size: 2; recVer and recInstance + + // bit: 4-15; mask: 0xFFF0; recInstance + $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4; + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + $pos = 0; + + // offset: 0; size: 16; rgbUid1 (MD4 digest of) + $rgbUid1 = substr($recordData, 0, 16); + $pos += 16; + + // offset: 16; size: 16; rgbUid2 (MD4 digest), only if $recInstance = 0x46B or 0x6E3 + if (in_array($recInstance, array(0x046B, 0x06E3))) { + $rgbUid2 = substr($recordData, 16, 16); + $pos += 16; + } + + // offset: var; size: 1; tag + $tag = ord($recordData{$pos}); + $pos += 1; + + // offset: var; size: var; the raw image data + $data = substr($recordData, $pos); + + $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(); + $blip->setData($data); + + $this->_object->setBlip($blip); + } + + /** + * Read BlipPNG record. Holds raw PNG image data + */ + private function _readBlipPNG() + { + // offset: 0; size: 2; recVer and recInstance + + // bit: 4-15; mask: 0xFFF0; recInstance + $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4; + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + $pos = 0; + + // offset: 0; size: 16; rgbUid1 (MD4 digest of) + $rgbUid1 = substr($recordData, 0, 16); + $pos += 16; + + // offset: 16; size: 16; rgbUid2 (MD4 digest), only if $recInstance = 0x46B or 0x6E3 + if ($recInstance == 0x06E1) { + $rgbUid2 = substr($recordData, 16, 16); + $pos += 16; + } + + // offset: var; size: 1; tag + $tag = ord($recordData{$pos}); + $pos += 1; + + // offset: var; size: var; the raw image data + $data = substr($recordData, $pos); + + $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(); + $blip->setData($data); + + $this->_object->setBlip($blip); + } + + /** + * Read OPT record. This record may occur within DggContainer record or SpContainer + */ + private function _readOPT() + { + // offset: 0; size: 2; recVer and recInstance + + // bit: 4-15; mask: 0xFFF0; recInstance + $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4; + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + $this->_readOfficeArtRGFOPTE($recordData, $recInstance); + } + + /** + * Read TertiaryOPT record + */ + private function _readTertiaryOPT() + { + // offset: 0; size: 2; recVer and recInstance + + // bit: 4-15; mask: 0xFFF0; recInstance + $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4; + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read SplitMenuColors record + */ + private function _readSplitMenuColors() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read DgContainer record (Drawing Container) + */ + private function _readDgContainer() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + // record is a container, read contents + $dgContainer = new PHPExcel_Shared_Escher_DgContainer(); + $this->_object->setDgContainer($dgContainer); + $reader = new PHPExcel_Reader_Excel5_Escher($dgContainer); + $escher = $reader->load($recordData); + } + + /** + * Read Dg record (Drawing) + */ + private function _readDg() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read SpgrContainer record (Shape Group Container) + */ + private function _readSpgrContainer() + { + // context is either context DgContainer or SpgrContainer + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + // record is a container, read contents + $spgrContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer(); + + if ($this->_object instanceof PHPExcel_Shared_Escher_DgContainer) { + // DgContainer + $this->_object->setSpgrContainer($spgrContainer); + } else { + // SpgrContainer + $this->_object->addChild($spgrContainer); + } + + $reader = new PHPExcel_Reader_Excel5_Escher($spgrContainer); + $escher = $reader->load($recordData); + } + + /** + * Read SpContainer record (Shape Container) + */ + private function _readSpContainer() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // add spContainer to spgrContainer + $spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer(); + $this->_object->addChild($spContainer); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + // record is a container, read contents + $reader = new PHPExcel_Reader_Excel5_Escher($spContainer); + $escher = $reader->load($recordData); + } + + /** + * Read Spgr record (Shape Group) + */ + private function _readSpgr() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read Sp record (Shape) + */ + private function _readSp() + { + // offset: 0; size: 2; recVer and recInstance + + // bit: 4-15; mask: 0xFFF0; recInstance + $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4; + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read ClientTextbox record + */ + private function _readClientTextbox() + { + // offset: 0; size: 2; recVer and recInstance + + // bit: 4-15; mask: 0xFFF0; recInstance + $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4; + + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read ClientAnchor record. This record holds information about where the shape is anchored in worksheet + */ + private function _readClientAnchor() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + + // offset: 2; size: 2; upper-left corner column index (0-based) + $c1 = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 2); + + // offset: 4; size: 2; upper-left corner horizontal offset in 1/1024 of column width + $startOffsetX = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 4); + + // offset: 6; size: 2; upper-left corner row index (0-based) + $r1 = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 6); + + // offset: 8; size: 2; upper-left corner vertical offset in 1/256 of row height + $startOffsetY = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 8); + + // offset: 10; size: 2; bottom-right corner column index (0-based) + $c2 = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 10); + + // offset: 12; size: 2; bottom-right corner horizontal offset in 1/1024 of column width + $endOffsetX = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 12); + + // offset: 14; size: 2; bottom-right corner row index (0-based) + $r2 = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 14); + + // offset: 16; size: 2; bottom-right corner vertical offset in 1/256 of row height + $endOffsetY = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 16); + + // set the start coordinates + $this->_object->setStartCoordinates(PHPExcel_Cell::stringFromColumnIndex($c1) . ($r1 + 1)); + + // set the start offsetX + $this->_object->setStartOffsetX($startOffsetX); + + // set the start offsetY + $this->_object->setStartOffsetY($startOffsetY); + + // set the end coordinates + $this->_object->setEndCoordinates(PHPExcel_Cell::stringFromColumnIndex($c2) . ($r2 + 1)); + + // set the end offsetX + $this->_object->setEndOffsetX($endOffsetX); + + // set the end offsetY + $this->_object->setEndOffsetY($endOffsetY); + } + + /** + * Read ClientData record + */ + private function _readClientData() + { + $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4); + $recordData = substr($this->_data, $this->_pos + 8, $length); + + // move stream pointer to next record + $this->_pos += 8 + $length; + } + + /** + * Read OfficeArtRGFOPTE table of property-value pairs + * + * @param string $data Binary data + * @param int $n Number of properties + */ + private function _readOfficeArtRGFOPTE($data, $n) { + + $splicedComplexData = substr($data, 6 * $n); + + // loop through property-value pairs + for ($i = 0; $i < $n; ++$i) { + // read 6 bytes at a time + $fopte = substr($data, 6 * $i, 6); + + // offset: 0; size: 2; opid + $opid = PHPExcel_Reader_Excel5::_GetInt2d($fopte, 0); + + // bit: 0-13; mask: 0x3FFF; opid.opid + $opidOpid = (0x3FFF & $opid) >> 0; + + // bit: 14; mask 0x4000; 1 = value in op field is BLIP identifier + $opidFBid = (0x4000 & $opid) >> 14; + + // bit: 15; mask 0x8000; 1 = this is a complex property, op field specifies size of complex data + $opidFComplex = (0x8000 & $opid) >> 15; + + // offset: 2; size: 4; the value for this property + $op = PHPExcel_Reader_Excel5::_GetInt4d($fopte, 2); + + if ($opidFComplex) { + $complexData = substr($splicedComplexData, 0, $op); + $splicedComplexData = substr($splicedComplexData, $op); + + // we store string value with complex data + $value = $complexData; + } else { + // we store integer value + $value = $op; + } + + $this->_object->setOPT($opidOpid, $value); + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/Gnumeric.php b/plugins/excel_reader/Classes/PHPExcel/Reader/Gnumeric.php new file mode 100755 index 0000000..5d82f22 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/Gnumeric.php @@ -0,0 +1,982 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** PHPExcel root directory */ +if (!defined('PHPEXCEL_ROOT')) { + /** + * @ignore + */ + define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../'); + require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); +} + +/** + * PHPExcel_Reader_Gnumeric + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Reader_Gnumeric implements PHPExcel_Reader_IReader +{ + /** + * Read data only? + * Identifies whether the Reader should only read data values for cells, and ignore any formatting information; + * or whether it should read both data and formatting + * + * @var boolean + */ + private $_readDataOnly = false; + + /** + * Restrict which sheets should be loaded? + * This property holds an array of worksheet names to be loaded. If null, then all worksheets will be loaded. + * + * @var array of string + */ + private $_loadSheetsOnly = null; + + /** + * Formats + * + * @var array + */ + private $_styles = array(); + + /** + * Shared Expressions + * + * @var array + */ + private $_expressions = array(); + + private $_referenceHelper = null; + + /** + * PHPExcel_Reader_IReadFilter instance + * + * @var PHPExcel_Reader_IReadFilter + */ + private $_readFilter = null; + + + /** + * Create a new PHPExcel_Reader_Gnumeric + */ + public function __construct() { + $this->_readFilter = new PHPExcel_Reader_DefaultReadFilter(); + $this->_referenceHelper = PHPExcel_ReferenceHelper::getInstance(); + } + + + /** + * Read data only? + * If this is true, then the Reader will only read data values for cells, it will not read any formatting information. + * If false (the default) it will read data and formatting. + * + * @return boolean + */ + public function getReadDataOnly() { + return $this->_readDataOnly; + } + + + /** + * Set read data only + * Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information. + * Set to false (the default) to advise the Reader to read both data and formatting for cells. + * + * @param boolean $pValue + * + * @return PHPExcel_Reader_Gnumeric + */ + public function setReadDataOnly($pValue = false) { + $this->_readDataOnly = $pValue; + return $this; + } + + + /** + * Get which sheets to load + * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null + * indicating that all worksheets in the workbook should be loaded. + * + * @return mixed + */ + public function getLoadSheetsOnly() + { + return $this->_loadSheetsOnly; + } + + + /** + * Set which sheets to load + * + * @param mixed $value + * This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name. + * If NULL, then it tells the Reader to read all worksheets in the workbook + * + * @return PHPExcel_Reader_Gnumeric + */ + public function setLoadSheetsOnly($value = null) + { + $this->_loadSheetsOnly = is_array($value) ? + $value : array($value); + return $this; + } + + + /** + * Set all sheets to load + * Tells the Reader to load all worksheets from the workbook. + * + * @return PHPExcel_Reader_Gnumeric + */ + public function setLoadAllSheets() + { + $this->_loadSheetsOnly = null; + return $this; + } + + + /** + * Read filter + * + * @return PHPExcel_Reader_IReadFilter + */ + public function getReadFilter() { + return $this->_readFilter; + } + + + /** + * Set read filter + * + * @param PHPExcel_Reader_IReadFilter $pValue + * @return PHPExcel_Reader_Gnumeric + */ + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { + $this->_readFilter = $pValue; + return $this; + } + + + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @param string $pFileName + * @return boolean + * @throws Exception + */ + public function canRead($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Check if gzlib functions are available + if (!function_exists('gzread')) { + throw new Exception("gzlib library is not enabled"); + } + + // Read signature data (first 3 bytes) + $fh = fopen($pFilename, 'r'); + $data = fread($fh, 2); + fclose($fh); + + if ($data != chr(0x1F).chr(0x8B)) { + return false; + } + + return true; + } + + + /** + * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetInfo($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $gFileData = $this->_gzfileGetContents($pFilename); + + $xml = simplexml_load_string($gFileData); + $namespacesMeta = $xml->getNamespaces(true); + + $gnmXML = $xml->children($namespacesMeta['gnm']); + + $worksheetInfo = array(); + + foreach ($gnmXML->Sheets->Sheet as $sheet) { + $tmpInfo = array(); + $tmpInfo['worksheetName'] = (string) $sheet->Name; + $tmpInfo['lastColumnLetter'] = 'A'; + $tmpInfo['lastColumnIndex'] = 0; + $tmpInfo['totalRows'] = 0; + $tmpInfo['totalColumns'] = 0; + + foreach ($sheet->Cells->Cell as $cell) { + $cellAttributes = $cell->attributes(); + + $rowIndex = (int) $cellAttributes->Row + 1; + $columnIndex = (int) $cellAttributes->Col; + + $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex); + $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex); + } + + $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; + + $worksheetInfo[] = $tmpInfo; + } + + return $worksheetInfo; + } + + + private function _gzfileGetContents($filename) { + $file = @gzopen($filename, 'rb'); + if ($file !== false) { + $data = ''; + while (!gzeof($file)) { + $data .= gzread($file, 1024); + } + gzclose($file); + } + return $data; + } + + + /** + * Loads PHPExcel from file + * + * @param string $pFilename + * @return PHPExcel + * @throws Exception + */ + public function load($pFilename) + { + // Create new PHPExcel + $objPHPExcel = new PHPExcel(); + + // Load into this instance + return $this->loadIntoExisting($pFilename, $objPHPExcel); + } + + + /** + * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetNames($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $gFileData = $this->_gzfileGetContents($pFilename); + + $xml = simplexml_load_string($gFileData); + $namespacesMeta = $xml->getNamespaces(true); + + $gnmXML = $xml->children($namespacesMeta['gnm']); + + $worksheetNames = array(); + + foreach($gnmXML->Sheets->Sheet as $sheet) { + $worksheetNames[] = (string) $sheet->Name; + } + + return $worksheetNames; + } + + + /** + * Loads PHPExcel from file into PHPExcel instance + * + * @param string $pFilename + * @param PHPExcel $objPHPExcel + * @return PHPExcel + * @throws Exception + */ + public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $timezoneObj = new DateTimeZone('Europe/London'); + $GMT = new DateTimeZone('UTC'); + + $gFileData = $this->_gzfileGetContents($pFilename); + +// echo '<pre>'; +// echo htmlentities($gFileData,ENT_QUOTES,'UTF-8'); +// echo '</pre><hr />'; +// + $xml = simplexml_load_string($gFileData); + $namespacesMeta = $xml->getNamespaces(true); + +// var_dump($namespacesMeta); +// + $gnmXML = $xml->children($namespacesMeta['gnm']); + + $docProps = $objPHPExcel->getProperties(); + // Document Properties are held differently, depending on the version of Gnumeric + if (isset($namespacesMeta['office'])) { + $officeXML = $xml->children($namespacesMeta['office']); + $officeDocXML = $officeXML->{'document-meta'}; + $officeDocMetaXML = $officeDocXML->meta; + + foreach($officeDocMetaXML as $officePropertyData) { + + $officePropertyDC = array(); + if (isset($namespacesMeta['dc'])) { + $officePropertyDC = $officePropertyData->children($namespacesMeta['dc']); + } + foreach($officePropertyDC as $propertyName => $propertyValue) { + $propertyValue = (string) $propertyValue; + switch ($propertyName) { + case 'title' : + $docProps->setTitle(trim($propertyValue)); + break; + case 'subject' : + $docProps->setSubject(trim($propertyValue)); + break; + case 'creator' : + $docProps->setCreator(trim($propertyValue)); + $docProps->setLastModifiedBy(trim($propertyValue)); + break; + case 'date' : + $creationDate = strtotime(trim($propertyValue)); + $docProps->setCreated($creationDate); + $docProps->setModified($creationDate); + break; + case 'description' : + $docProps->setDescription(trim($propertyValue)); + break; + } + } + $officePropertyMeta = array(); + if (isset($namespacesMeta['meta'])) { + $officePropertyMeta = $officePropertyData->children($namespacesMeta['meta']); + } + foreach($officePropertyMeta as $propertyName => $propertyValue) { + $attributes = $propertyValue->attributes($namespacesMeta['meta']); + $propertyValue = (string) $propertyValue; + switch ($propertyName) { + case 'keyword' : + $docProps->setKeywords(trim($propertyValue)); + break; + case 'initial-creator' : + $docProps->setCreator(trim($propertyValue)); + $docProps->setLastModifiedBy(trim($propertyValue)); + break; + case 'creation-date' : + $creationDate = strtotime(trim($propertyValue)); + $docProps->setCreated($creationDate); + $docProps->setModified($creationDate); + break; + case 'user-defined' : + list(,$attrName) = explode(':',$attributes['name']); + switch ($attrName) { + case 'publisher' : + $docProps->setCompany(trim($propertyValue)); + break; + case 'category' : + $docProps->setCategory(trim($propertyValue)); + break; + case 'manager' : + $docProps->setManager(trim($propertyValue)); + break; + } + break; + } + } + } + } elseif (isset($gnmXML->Summary)) { + foreach($gnmXML->Summary->Item as $summaryItem) { + $propertyName = $summaryItem->name; + $propertyValue = $summaryItem->{'val-string'}; + switch ($propertyName) { + case 'title' : + $docProps->setTitle(trim($propertyValue)); + break; + case 'comments' : + $docProps->setDescription(trim($propertyValue)); + break; + case 'keywords' : + $docProps->setKeywords(trim($propertyValue)); + break; + case 'category' : + $docProps->setCategory(trim($propertyValue)); + break; + case 'manager' : + $docProps->setManager(trim($propertyValue)); + break; + case 'author' : + $docProps->setCreator(trim($propertyValue)); + $docProps->setLastModifiedBy(trim($propertyValue)); + break; + case 'company' : + $docProps->setCompany(trim($propertyValue)); + break; + } + } + } + + $worksheetID = 0; + foreach($gnmXML->Sheets->Sheet as $sheet) { + $worksheetName = (string) $sheet->Name; +// echo '<b>Worksheet: ',$worksheetName,'</b><br />'; + if ((isset($this->_loadSheetsOnly)) && (!in_array($worksheetName, $this->_loadSheetsOnly))) { + continue; + } + + $maxRow = $maxCol = 0; + + // Create new Worksheet + $objPHPExcel->createSheet(); + $objPHPExcel->setActiveSheetIndex($worksheetID); + // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in formula + // cells... during the load, all formulae should be correct, and we're simply bringing the worksheet + // name in line with the formula, not the reverse + $objPHPExcel->getActiveSheet()->setTitle($worksheetName,false); + + if ((!$this->_readDataOnly) && (isset($sheet->PrintInformation))) { + if (isset($sheet->PrintInformation->Margins)) { + foreach($sheet->PrintInformation->Margins->children('gnm',TRUE) as $key => $margin) { + $marginAttributes = $margin->attributes(); + $marginSize = 72 / 100; // Default + switch($marginAttributes['PrefUnit']) { + case 'mm' : + $marginSize = intval($marginAttributes['Points']) / 100; + break; + } + switch($key) { + case 'top' : + $objPHPExcel->getActiveSheet()->getPageMargins()->setTop($marginSize); + break; + case 'bottom' : + $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom($marginSize); + break; + case 'left' : + $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft($marginSize); + break; + case 'right' : + $objPHPExcel->getActiveSheet()->getPageMargins()->setRight($marginSize); + break; + case 'header' : + $objPHPExcel->getActiveSheet()->getPageMargins()->setHeader($marginSize); + break; + case 'footer' : + $objPHPExcel->getActiveSheet()->getPageMargins()->setFooter($marginSize); + break; + } + } + } + } + + foreach($sheet->Cells->Cell as $cell) { + $cellAttributes = $cell->attributes(); + $row = (int) $cellAttributes->Row + 1; + $column = (int) $cellAttributes->Col; + + if ($row > $maxRow) $maxRow = $row; + if ($column > $maxCol) $maxCol = $column; + + $column = PHPExcel_Cell::stringFromColumnIndex($column); + + // Read cell? + if ($this->getReadFilter() !== NULL) { + if (!$this->getReadFilter()->readCell($column, $row, $worksheetName)) { + continue; + } + } + + $ValueType = $cellAttributes->ValueType; + $ExprID = (string) $cellAttributes->ExprID; +// echo 'Cell ',$column,$row,'<br />'; +// echo 'Type is ',$ValueType,'<br />'; +// echo 'Value is ',$cell,'<br />'; + $type = PHPExcel_Cell_DataType::TYPE_FORMULA; + if ($ExprID > '') { + if (((string) $cell) > '') { + + $this->_expressions[$ExprID] = array( 'column' => $cellAttributes->Col, + 'row' => $cellAttributes->Row, + 'formula' => (string) $cell + ); +// echo 'NEW EXPRESSION ',$ExprID,'<br />'; + } else { + $expression = $this->_expressions[$ExprID]; + + $cell = $this->_referenceHelper->updateFormulaReferences( $expression['formula'], + 'A1', + $cellAttributes->Col - $expression['column'], + $cellAttributes->Row - $expression['row'], + $worksheetName + ); +// echo 'SHARED EXPRESSION ',$ExprID,'<br />'; +// echo 'New Value is ',$cell,'<br />'; + } + $type = PHPExcel_Cell_DataType::TYPE_FORMULA; + } else { + switch($ValueType) { + case '10' : // NULL + $type = PHPExcel_Cell_DataType::TYPE_NULL; + break; + case '20' : // Boolean + $type = PHPExcel_Cell_DataType::TYPE_BOOL; + $cell = ($cell == 'TRUE') ? True : False; + break; + case '30' : // Integer + $cell = intval($cell); + case '40' : // Float + $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; + break; + case '50' : // Error + $type = PHPExcel_Cell_DataType::TYPE_ERROR; + break; + case '60' : // String + $type = PHPExcel_Cell_DataType::TYPE_STRING; + break; + case '70' : // Cell Range + case '80' : // Array + } + } + $objPHPExcel->getActiveSheet()->getCell($column.$row)->setValueExplicit($cell,$type); + } + + if ((!$this->_readDataOnly) && (isset($sheet->Objects))) { + foreach($sheet->Objects->children('gnm',TRUE) as $key => $comment) { + $commentAttributes = $comment->attributes(); + // Only comment objects are handled at the moment + if ($commentAttributes->Text) { + $objPHPExcel->getActiveSheet()->getComment( (string)$commentAttributes->ObjectBound ) + ->setAuthor( (string)$commentAttributes->Author ) + ->setText($this->_parseRichText((string)$commentAttributes->Text) ); + } + } + } +// echo '$maxCol=',$maxCol,'; $maxRow=',$maxRow,'<br />'; +// + foreach($sheet->Styles->StyleRegion as $styleRegion) { + $styleAttributes = $styleRegion->attributes(); + if (($styleAttributes['startRow'] <= $maxRow) && + ($styleAttributes['startCol'] <= $maxCol)) { + + $startColumn = PHPExcel_Cell::stringFromColumnIndex((int) $styleAttributes['startCol']); + $startRow = $styleAttributes['startRow'] + 1; + + $endColumn = ($styleAttributes['endCol'] > $maxCol) ? $maxCol : (int) $styleAttributes['endCol']; + $endColumn = PHPExcel_Cell::stringFromColumnIndex($endColumn); + $endRow = ($styleAttributes['endRow'] > $maxRow) ? $maxRow : $styleAttributes['endRow']; + $endRow += 1; + $cellRange = $startColumn.$startRow.':'.$endColumn.$endRow; +// echo $cellRange,'<br />'; + + $styleAttributes = $styleRegion->Style->attributes(); +// var_dump($styleAttributes); +// echo '<br />'; + + // We still set the number format mask for date/time values, even if _readDataOnly is true + if ((!$this->_readDataOnly) || + (PHPExcel_Shared_Date::isDateTimeFormatCode($styleArray['numberformat']['code']))) { + $styleArray = array(); + $styleArray['numberformat']['code'] = (string) $styleAttributes['Format']; + // If _readDataOnly is false, we set all formatting information + if (!$this->_readDataOnly) { + switch($styleAttributes['HAlign']) { + case '1' : + $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; + break; + case '2' : + $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_LEFT; + break; + case '4' : + $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_RIGHT; + break; + case '8' : + $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_CENTER; + break; + case '16' : + case '64' : + $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS; + break; + case '32' : + $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY; + break; + } + + switch($styleAttributes['VAlign']) { + case '1' : + $styleArray['alignment']['vertical'] = PHPExcel_Style_Alignment::VERTICAL_TOP; + break; + case '2' : + $styleArray['alignment']['vertical'] = PHPExcel_Style_Alignment::VERTICAL_BOTTOM; + break; + case '4' : + $styleArray['alignment']['vertical'] = PHPExcel_Style_Alignment::VERTICAL_CENTER; + break; + case '8' : + $styleArray['alignment']['vertical'] = PHPExcel_Style_Alignment::VERTICAL_JUSTIFY; + break; + } + + $styleArray['alignment']['wrap'] = ($styleAttributes['WrapText'] == '1') ? True : False; + $styleArray['alignment']['shrinkToFit'] = ($styleAttributes['ShrinkToFit'] == '1') ? True : False; + $styleArray['alignment']['indent'] = (intval($styleAttributes["Indent"]) > 0) ? $styleAttributes["indent"] : 0; + + $RGB = self::_parseGnumericColour($styleAttributes["Fore"]); + $styleArray['font']['color']['rgb'] = $RGB; + $RGB = self::_parseGnumericColour($styleAttributes["Back"]); + $shade = $styleAttributes["Shade"]; + if (($RGB != '000000') || ($shade != '0')) { + $styleArray['fill']['color']['rgb'] = $styleArray['fill']['startcolor']['rgb'] = $RGB; + $RGB2 = self::_parseGnumericColour($styleAttributes["PatternColor"]); + $styleArray['fill']['endcolor']['rgb'] = $RGB2; + switch($shade) { + case '1' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_SOLID; + break; + case '2' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR; + break; + case '3' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_GRADIENT_PATH; + break; + case '4' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN; + break; + case '5' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY; + break; + case '6' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID; + break; + case '7' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL; + break; + case '8' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS; + break; + case '9' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKUP; + break; + case '10' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL; + break; + case '11' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625; + break; + case '12' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_GRAY125; + break; + case '13' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN; + break; + case '14' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY; + break; + case '15' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID; + break; + case '16' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL; + break; + case '17' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS; + break; + case '18' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP; + break; + case '19' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL; + break; + case '20' : + $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY; + break; + } + } + + $fontAttributes = $styleRegion->Style->Font->attributes(); +// var_dump($fontAttributes); +// echo '<br />'; + $styleArray['font']['name'] = (string) $styleRegion->Style->Font; + $styleArray['font']['size'] = intval($fontAttributes['Unit']); + $styleArray['font']['bold'] = ($fontAttributes['Bold'] == '1') ? True : False; + $styleArray['font']['italic'] = ($fontAttributes['Italic'] == '1') ? True : False; + $styleArray['font']['strike'] = ($fontAttributes['StrikeThrough'] == '1') ? True : False; + switch($fontAttributes['Underline']) { + case '1' : + $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_SINGLE; + break; + case '2' : + $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_DOUBLE; + break; + case '3' : + $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING; + break; + case '4' : + $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING; + break; + default : + $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_NONE; + break; + } + switch($fontAttributes['Script']) { + case '1' : + $styleArray['font']['superScript'] = True; + break; + case '-1' : + $styleArray['font']['subScript'] = True; + break; + } + + if (isset($styleRegion->Style->StyleBorder)) { + if (isset($styleRegion->Style->StyleBorder->Top)) { + $styleArray['borders']['top'] = self::_parseBorderAttributes($styleRegion->Style->StyleBorder->Top->attributes()); + } + if (isset($styleRegion->Style->StyleBorder->Bottom)) { + $styleArray['borders']['bottom'] = self::_parseBorderAttributes($styleRegion->Style->StyleBorder->Bottom->attributes()); + } + if (isset($styleRegion->Style->StyleBorder->Left)) { + $styleArray['borders']['left'] = self::_parseBorderAttributes($styleRegion->Style->StyleBorder->Left->attributes()); + } + if (isset($styleRegion->Style->StyleBorder->Right)) { + $styleArray['borders']['right'] = self::_parseBorderAttributes($styleRegion->Style->StyleBorder->Right->attributes()); + } + if ((isset($styleRegion->Style->StyleBorder->Diagonal)) && (isset($styleRegion->Style->StyleBorder->{'Rev-Diagonal'}))) { + $styleArray['borders']['diagonal'] = self::_parseBorderAttributes($styleRegion->Style->StyleBorder->Diagonal->attributes()); + $styleArray['borders']['diagonaldirection'] = PHPExcel_Style_Borders::DIAGONAL_BOTH; + } elseif (isset($styleRegion->Style->StyleBorder->Diagonal)) { + $styleArray['borders']['diagonal'] = self::_parseBorderAttributes($styleRegion->Style->StyleBorder->Diagonal->attributes()); + $styleArray['borders']['diagonaldirection'] = PHPExcel_Style_Borders::DIAGONAL_UP; + } elseif (isset($styleRegion->Style->StyleBorder->{'Rev-Diagonal'})) { + $styleArray['borders']['diagonal'] = self::_parseBorderAttributes($styleRegion->Style->StyleBorder->{'Rev-Diagonal'}->attributes()); + $styleArray['borders']['diagonaldirection'] = PHPExcel_Style_Borders::DIAGONAL_DOWN; + } + } + if (isset($styleRegion->Style->HyperLink)) { + // TO DO + $hyperlink = $styleRegion->Style->HyperLink->attributes(); + } + } +// var_dump($styleArray); +// echo '<br />'; + $objPHPExcel->getActiveSheet()->getStyle($cellRange)->applyFromArray($styleArray); + } + } + } + + if ((!$this->_readDataOnly) && (isset($sheet->Cols))) { + // Column Widths + $columnAttributes = $sheet->Cols->attributes(); + $defaultWidth = $columnAttributes['DefaultSizePts'] / 5.4; + $c = 0; + foreach($sheet->Cols->ColInfo as $columnOverride) { + $columnAttributes = $columnOverride->attributes(); + $column = $columnAttributes['No']; + $columnWidth = $columnAttributes['Unit'] / 5.4; + $hidden = ((isset($columnAttributes['Hidden'])) && ($columnAttributes['Hidden'] == '1')) ? true : false; + $columnCount = (isset($columnAttributes['Count'])) ? $columnAttributes['Count'] : 1; + while ($c < $column) { + $objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($c))->setWidth($defaultWidth); + ++$c; + } + while (($c < ($column+$columnCount)) && ($c <= $maxCol)) { + $objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($c))->setWidth($columnWidth); + if ($hidden) { + $objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($c))->setVisible(false); + } + ++$c; + } + } + while ($c <= $maxCol) { + $objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($c))->setWidth($defaultWidth); + ++$c; + } + } + + if ((!$this->_readDataOnly) && (isset($sheet->Rows))) { + // Row Heights + $rowAttributes = $sheet->Rows->attributes(); + $defaultHeight = $rowAttributes['DefaultSizePts']; + $r = 0; + + foreach($sheet->Rows->RowInfo as $rowOverride) { + $rowAttributes = $rowOverride->attributes(); + $row = $rowAttributes['No']; + $rowHeight = $rowAttributes['Unit']; + $hidden = ((isset($rowAttributes['Hidden'])) && ($rowAttributes['Hidden'] == '1')) ? true : false; + $rowCount = (isset($rowAttributes['Count'])) ? $rowAttributes['Count'] : 1; + while ($r < $row) { + ++$r; + $objPHPExcel->getActiveSheet()->getRowDimension($r)->setRowHeight($defaultHeight); + } + while (($r < ($row+$rowCount)) && ($r < $maxRow)) { + ++$r; + $objPHPExcel->getActiveSheet()->getRowDimension($r)->setRowHeight($rowHeight); + if ($hidden) { + $objPHPExcel->getActiveSheet()->getRowDimension($r)->setVisible(false); + } + } + } + while ($r < $maxRow) { + ++$r; + $objPHPExcel->getActiveSheet()->getRowDimension($r)->setRowHeight($defaultHeight); + } + } + + // Handle Merged Cells in this worksheet + if (isset($sheet->MergedRegions)) { + foreach($sheet->MergedRegions->Merge as $mergeCells) { + if (strpos($mergeCells,':') !== FALSE) { + $objPHPExcel->getActiveSheet()->mergeCells($mergeCells); + } + } + } + + $worksheetID++; + } + + // Loop through definedNames (global named ranges) + if (isset($gnmXML->Names)) { + foreach($gnmXML->Names->Name as $namedRange) { + $name = (string) $namedRange->name; + $range = (string) $namedRange->value; + if (stripos($range, '#REF!') !== false) { + continue; + } + + $range = explode('!',$range); + $range[0] = trim($range[0],"'");; + if ($worksheet = $objPHPExcel->getSheetByName($range[0])) { + $extractedRange = str_replace('$', '', $range[1]); + $objPHPExcel->addNamedRange( new PHPExcel_NamedRange($name, $worksheet, $extractedRange) ); + } + } + } + + + // Return + return $objPHPExcel; + } + + + private static function _parseBorderAttributes($borderAttributes) + { + $styleArray = array(); + + if (isset($borderAttributes["Color"])) { + $RGB = self::_parseGnumericColour($borderAttributes["Color"]); + $styleArray['color']['rgb'] = $RGB; + } + + switch ($borderAttributes["Style"]) { + case '0' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_NONE; + break; + case '1' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + case '2' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUM; + break; + case '4' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_DASHED; + break; + case '5' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_THICK; + break; + case '6' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_DOUBLE; + break; + case '7' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_DOTTED; + break; + case '9' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_DASHDOT; + break; + case '10' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT; + break; + case '11' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_DASHDOTDOT; + break; + case '12' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT; + break; + case '13' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT; + break; + case '3' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_SLANTDASHDOT; + break; + case '8' : + $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUMDASHED; + break; + } + return $styleArray; + } + + + private function _parseRichText($is = '') { + $value = new PHPExcel_RichText(); + + $value->createText($is); + + return $value; + } + + + private static function _parseGnumericColour($gnmColour) { + list($gnmR,$gnmG,$gnmB) = explode(':',$gnmColour); + $gnmR = substr(str_pad($gnmR,4,'0',STR_PAD_RIGHT),0,2); + $gnmG = substr(str_pad($gnmG,4,'0',STR_PAD_RIGHT),0,2); + $gnmB = substr(str_pad($gnmB,4,'0',STR_PAD_RIGHT),0,2); + $RGB = $gnmR.$gnmG.$gnmB; +// echo 'Excel Colour: ',$RGB,'<br />'; + return $RGB; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/HTML.php b/plugins/excel_reader/Classes/PHPExcel/Reader/HTML.php new file mode 100755 index 0000000..d6068ea --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/HTML.php @@ -0,0 +1,499 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** PHPExcel root directory */ +if (!defined('PHPEXCEL_ROOT')) { + /** + * @ignore + */ + define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../'); + require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); +} + +/** + * PHPExcel_Reader_HTML + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Reader_HTML implements PHPExcel_Reader_IReader +{ + /** + * Input encoding + * + * @var string + */ + private $_inputEncoding = 'ANSI'; + + /** + * Sheet index to read + * + * @var int + */ + private $_sheetIndex = 0; + + /** + * Formats + * + * @var array + */ + private $_formats = array( 'h1' => array( 'font' => array( 'bold' => true, + 'size' => 24, + ), + ), // Bold, 24pt + 'h2' => array( 'font' => array( 'bold' => true, + 'size' => 18, + ), + ), // Bold, 18pt + 'h3' => array( 'font' => array( 'bold' => true, + 'size' => 13.5, + ), + ), // Bold, 13.5pt + 'h4' => array( 'font' => array( 'bold' => true, + 'size' => 12, + ), + ), // Bold, 12pt + 'h5' => array( 'font' => array( 'bold' => true, + 'size' => 10, + ), + ), // Bold, 10pt + 'h6' => array( 'font' => array( 'bold' => true, + 'size' => 7.5, + ), + ), // Bold, 7.5pt + 'a' => array( 'font' => array( 'underline' => true, + 'color' => array( 'argb' => PHPExcel_Style_Color::COLOR_BLUE, + ), + ), + ), // Blue underlined + 'hr' => array( 'borders' => array( 'bottom' => array( 'style' => PHPExcel_Style_Border::BORDER_THIN, + 'color' => array( PHPExcel_Style_Color::COLOR_BLACK, + ), + ), + ), + ), // Bottom border + ); + + /** + * PHPExcel_Reader_IReadFilter instance + * + * @var PHPExcel_Reader_IReadFilter + */ + private $_readFilter = null; + + + /** + * Create a new PHPExcel_Reader_HTML + */ + public function __construct() { + $this->_readFilter = new PHPExcel_Reader_DefaultReadFilter(); + } + + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @param string $pFileName + * @return boolean + * @throws Exception + */ + public function canRead($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Read sample data (first 2 KB will do) + $fh = fopen($pFilename, 'r'); + $data = fread($fh, 2048); + fclose($fh); + + return true; + } + + /** + * Loads PHPExcel from file + * + * @param string $pFilename + * @return PHPExcel + * @throws Exception + */ + public function load($pFilename) + { + // Create new PHPExcel + $objPHPExcel = new PHPExcel(); + + // Load into this instance + return $this->loadIntoExisting($pFilename, $objPHPExcel); + } + + /** + * Read filter + * + * @return PHPExcel_Reader_IReadFilter + */ + public function getReadFilter() { + return $this->_readFilter; + } + + /** + * Set read filter + * + * @param PHPExcel_Reader_IReadFilter $pValue + */ + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { + $this->_readFilter = $pValue; + return $this; + } + + /** + * Set input encoding + * + * @param string $pValue Input encoding + */ + public function setInputEncoding($pValue = 'ANSI') + { + $this->_inputEncoding = $pValue; + return $this; + } + + /** + * Get input encoding + * + * @return string + */ + public function getInputEncoding() + { + return $this->_inputEncoding; + } + + // Data Array used for testing only, should write to PHPExcel object on completion of tests + private $_dataArray = array(); + + private $_tableLevel = 0; + private $_nestedColumn = array('A'); + + private function _setTableStartColumn($column) { + if ($this->_tableLevel == 0) + $column = 'A'; + ++$this->_tableLevel; + $this->_nestedColumn[$this->_tableLevel] = $column; + + return $this->_nestedColumn[$this->_tableLevel]; + } + + private function _getTableStartColumn() { + return $this->_nestedColumn[$this->_tableLevel]; + } + + private function _releaseTableStartColumn() { + --$this->_tableLevel; + return array_pop($this->_nestedColumn); + } + + private function _flushCell($sheet,$column,$row,&$cellContent) { + if (is_string($cellContent)) { + // Simple String content + if (trim($cellContent) > '') { + // Only actually write it if there's content in the string + echo 'FLUSH CELL: ' , $column , $row , ' => ' , $cellContent , '<br />'; + // Write to worksheet to be done here... + // ... we return the cell so we can mess about with styles more easily + $cell = $sheet->setCellValue($column.$row,$cellContent,true); + $this->_dataArray[$row][$column] = $cellContent; + } + } else { + // We have a Rich Text run + // TODO + $this->_dataArray[$row][$column] = 'RICH TEXT: ' . $cellContent; + } + $cellContent = (string) ''; + } + + private function _processDomElement(DOMNode $element, $sheet, &$row, &$column, &$cellContent){ + foreach($element->childNodes as $child){ + if ($child instanceOf DOMText) { + $domText = preg_replace('/\s+/',' ',trim($child->nodeValue)); + if (is_string($cellContent)) { + // simply append the text if the cell content is a plain text string + $cellContent .= $domText; + } else { + // but if we have a rich text run instead, we need to append it correctly + // TODO + } + } elseif($child instanceOf DOMElement) { + echo '<b>DOM ELEMENT: </b>' , strtoupper($child->nodeName) , '<br />'; + + $attributeArray = array(); + foreach($child->attributes as $attribute) { + echo '<b>ATTRIBUTE: </b>' , $attribute->name , ' => ' , $attribute->value , '<br />'; + $attributeArray[$attribute->name] = $attribute->value; + } + + switch($child->nodeName) { + case 'meta' : + foreach($attributeArray as $attributeName => $attributeValue) { + switch($attributeName) { + case 'content': + // TODO + // Extract character set, so we can convert to UTF-8 if required + break; + } + } + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + break; + case 'title' : + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + $sheet->setTitle($cellContent); + $cellContent = ''; + break; + case 'span' : + case 'div' : + case 'font' : + case 'i' : + case 'em' : + case 'strong': + case 'b' : + echo 'STYLING, SPAN OR DIV<br />'; + if ($cellContent > '') + $cellContent .= ' '; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + if ($cellContent > '') + $cellContent .= ' '; + echo 'END OF STYLING, SPAN OR DIV<br />'; + break; + case 'hr' : + $this->_flushCell($sheet,$column,$row,$cellContent); + ++$row; + if (isset($this->_formats[$child->nodeName])) { + $sheet->getStyle($column.$row)->applyFromArray($this->_formats[$child->nodeName]); + } else { + $cellContent = '----------'; + $this->_flushCell($sheet,$column,$row,$cellContent); + } + ++$row; + case 'br' : + if ($this->_tableLevel > 0) { + // If we're inside a table, replace with a \n + $cellContent .= "\n"; + } else { + // Otherwise flush our existing content and move the row cursor on + $this->_flushCell($sheet,$column,$row,$cellContent); + ++$row; + } + echo 'HARD LINE BREAK: ' , '<br />'; + break; + case 'a' : + echo 'START OF HYPERLINK: ' , '<br />'; + foreach($attributeArray as $attributeName => $attributeValue) { + switch($attributeName) { + case 'href': + echo 'Link to ' , $attributeValue , '<br />'; + $sheet->getCell($column.$row)->getHyperlink()->setUrl($attributeValue); + if (isset($this->_formats[$child->nodeName])) { + $sheet->getStyle($column.$row)->applyFromArray($this->_formats[$child->nodeName]); + } + break; + } + } + $cellContent .= ' '; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + echo 'END OF HYPERLINK:' , '<br />'; + break; + case 'h1' : + case 'h2' : + case 'h3' : + case 'h4' : + case 'h5' : + case 'h6' : + case 'ol' : + case 'ul' : + case 'p' : + if ($this->_tableLevel > 0) { + // If we're inside a table, replace with a \n + $cellContent .= "\n"; + echo 'LIST ENTRY: ' , '<br />'; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + echo 'END OF LIST ENTRY:' , '<br />'; + } else { + if ($cellContent > '') { + $this->_flushCell($sheet,$column,$row,$cellContent); + $row += 2; + } + echo 'START OF PARAGRAPH: ' , '<br />'; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + echo 'END OF PARAGRAPH:' , '<br />'; + $this->_flushCell($sheet,$column,$row,$cellContent); + + if (isset($this->_formats[$child->nodeName])) { + $sheet->getStyle($column.$row)->applyFromArray($this->_formats[$child->nodeName]); + } + + $row += 2; + $column = 'A'; + } + break; + case 'li' : + if ($this->_tableLevel > 0) { + // If we're inside a table, replace with a \n + $cellContent .= "\n"; + echo 'LIST ENTRY: ' , '<br />'; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + echo 'END OF LIST ENTRY:' , '<br />'; + } else { + if ($cellContent > '') { + $this->_flushCell($sheet,$column,$row,$cellContent); + } + ++$row; + echo 'LIST ENTRY: ' , '<br />'; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + echo 'END OF LIST ENTRY:' , '<br />'; + $this->_flushCell($sheet,$column,$row,$cellContent); + $column = 'A'; + } + break; + case 'table' : + $this->_flushCell($sheet,$column,$row,$cellContent); + $column = $this->_setTableStartColumn($column); + echo 'START OF TABLE LEVEL ' , $this->_tableLevel , '<br />'; + if ($this->_tableLevel > 1) + --$row; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + echo 'END OF TABLE LEVEL ' , $this->_tableLevel , '<br />'; + $column = $this->_releaseTableStartColumn(); + if ($this->_tableLevel > 1) { + ++$column; + } else { + ++$row; + } + break; + case 'thead' : + case 'tbody' : + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + break; + case 'tr' : + ++$row; + $column = $this->_getTableStartColumn(); + $cellContent = ''; + echo 'START OF TABLE ' , $this->_tableLevel , ' ROW<br />'; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + echo 'END OF TABLE ' , $this->_tableLevel , ' ROW<br />'; + break; + case 'th' : + case 'td' : + echo 'START OF TABLE ' , $this->_tableLevel , ' CELL<br />'; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + echo 'END OF TABLE ' , $this->_tableLevel , ' CELL<br />'; + $this->_flushCell($sheet,$column,$row,$cellContent); + ++$column; + break; + case 'body' : + $row = 1; + $column = 'A'; + $content = ''; + $this->_tableLevel = 0; + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + break; + default: + $this->_processDomElement($child,$sheet,$row,$column,$cellContent); + } + } + } + } + + /** + * Loads PHPExcel from file into PHPExcel instance + * + * @param string $pFilename + * @param PHPExcel $objPHPExcel + * @return PHPExcel + * @throws Exception + */ + public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + if (!is_file($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! The given file is not a regular file."); + } + + // Create new PHPExcel + while ($objPHPExcel->getSheetCount() <= $this->_sheetIndex) { + $objPHPExcel->createSheet(); + } + $objPHPExcel->setActiveSheetIndex( $this->_sheetIndex ); + + // Create a new DOM object + $dom = new domDocument; + // Load the HTML file into the DOM object + $loaded = $dom->loadHTMLFile($pFilename); + if ($loaded === false) { + throw new Exception('Failed to load ',$pFilename,' as a DOM Document'); + } + + // Discard white space + $dom->preserveWhiteSpace = false; + + + $row = 0; + $column = 'A'; + $content = ''; + $this->_processDomElement($dom,$objPHPExcel->getActiveSheet(),$row,$column,$content); + + echo '<hr />'; + var_dump($this->_dataArray); + + // Return + return $objPHPExcel; + } + + /** + * Get sheet index + * + * @return int + */ + public function getSheetIndex() { + return $this->_sheetIndex; + } + + /** + * Set sheet index + * + * @param int $pValue Sheet index + * @return PHPExcel_Reader_HTML + */ + public function setSheetIndex($pValue = 0) { + $this->_sheetIndex = $pValue; + return $this; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/IReadFilter.php b/plugins/excel_reader/Classes/PHPExcel/Reader/IReadFilter.php new file mode 100755 index 0000000..50e92c8 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/IReadFilter.php @@ -0,0 +1,47 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Reader_IReadFilter + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +interface PHPExcel_Reader_IReadFilter +{ + /** + * Should this cell be read? + * + * @param $column String column index + * @param $row Row index + * @param $worksheetName Optional worksheet name + * @return boolean + */ + public function readCell($column, $row, $worksheetName = ''); +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/IReader.php b/plugins/excel_reader/Classes/PHPExcel/Reader/IReader.php new file mode 100755 index 0000000..1c98847 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/IReader.php @@ -0,0 +1,53 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Reader_IReader + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +interface PHPExcel_Reader_IReader +{ + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @param string $pFileName + * @return boolean + */ + public function canRead($pFilename); + + /** + * Loads PHPExcel from file + * + * @param string $pFileName + * @throws Exception + */ + public function load($pFilename); +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/OOCalc.php b/plugins/excel_reader/Classes/PHPExcel/Reader/OOCalc.php new file mode 100755 index 0000000..22ad117 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/OOCalc.php @@ -0,0 +1,733 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** PHPExcel root directory */ +if (!defined('PHPEXCEL_ROOT')) { + /** + * @ignore + */ + define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../'); + require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); +} + +/** + * PHPExcel_Reader_OOCalc + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Reader_OOCalc implements PHPExcel_Reader_IReader +{ + /** + * Read data only? + * Identifies whether the Reader should only read data values for cells, and ignore any formatting information; + * or whether it should read both data and formatting + * + * @var boolean + */ + private $_readDataOnly = false; + + /** + * Restrict which sheets should be loaded? + * This property holds an array of worksheet names to be loaded. If null, then all worksheets will be loaded. + * + * @var array of string + */ + private $_loadSheetsOnly = null; + + /** + * Formats + * + * @var array + */ + private $_styles = array(); + + /** + * PHPExcel_Reader_IReadFilter instance + * + * @var PHPExcel_Reader_IReadFilter + */ + private $_readFilter = null; + + + /** + * Create a new PHPExcel_Reader_OOCalc + */ + public function __construct() { + $this->_readFilter = new PHPExcel_Reader_DefaultReadFilter(); + } + + + /** + * Read data only? + * If this is true, then the Reader will only read data values for cells, it will not read any formatting information. + * If false (the default) it will read data and formatting. + * + * @return boolean + */ + public function getReadDataOnly() { + return $this->_readDataOnly; + } + + + /** + * Set read data only + * Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information. + * Set to false (the default) to advise the Reader to read both data and formatting for cells. + * + * @param boolean $pValue + * @return PHPExcel_Reader_OOCalc + */ + public function setReadDataOnly($pValue = false) { + $this->_readDataOnly = $pValue; + return $this; + } + + + /** + * Get which sheets to load + * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null + * indicating that all worksheets in the workbook should be loaded. + * + * @return mixed + */ + public function getLoadSheetsOnly() + { + return $this->_loadSheetsOnly; + } + + + /** + * Set which sheets to load + * + * @param mixed $value + * This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name. + * If NULL, then it tells the Reader to read all worksheets in the workbook + * + * @return PHPExcel_Reader_OOCalc + */ + public function setLoadSheetsOnly($value = null) + { + $this->_loadSheetsOnly = is_array($value) ? + $value : array($value); + return $this; + } + + + /** + * Set all sheets to load + * Tells the Reader to load all worksheets from the workbook. + * + * @return PHPExcel_Reader_OOCalc + */ + public function setLoadAllSheets() + { + $this->_loadSheetsOnly = null; + return $this; + } + + + /** + * Read filter + * + * @return PHPExcel_Reader_IReadFilter + */ + public function getReadFilter() { + return $this->_readFilter; + } + + + /** + * Set read filter + * + * @param PHPExcel_Reader_IReadFilter $pValue + * @return PHPExcel_Reader_OOCalc + */ + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { + $this->_readFilter = $pValue; + return $this; + } + + + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @param string $pFileName + * @return boolean + * @throws Exception + */ + public function canRead($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Check if zip class exists + if (!class_exists('ZipArchive',FALSE)) { + throw new Exception("ZipArchive library is not enabled"); + } + + // Load file + $zip = new ZipArchive; + if ($zip->open($pFilename) === true) { + // check if it is an OOXML archive + $stat = $zip->statName('mimetype'); + if ($stat && ($stat['size'] <= 255)) { + $mimeType = $zip->getFromName($stat['name']); + } else { + $zip->close(); + return FALSE; + } + + $zip->close(); + + return ($mimeType === 'application/vnd.oasis.opendocument.spreadsheet'); + } + + return FALSE; + } + + + /** + * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetNames($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $worksheetNames = array(); + + $zip = new ZipArchive; + if ($zip->open($pFilename) === true) { + + $xml = simplexml_load_string($zip->getFromName("content.xml")); + $namespacesContent = $xml->getNamespaces(true); + + $workbook = $xml->children($namespacesContent['office']); + foreach($workbook->body->spreadsheet as $workbookData) { + $workbookData = $workbookData->children($namespacesContent['table']); + foreach($workbookData->table as $worksheetDataSet) { + $worksheetDataAttributes = $worksheetDataSet->attributes($namespacesContent['table']); + + $worksheetNames[] = $worksheetDataAttributes['name']; + } + } + } + + return $worksheetNames; + } + + + /** + * Loads PHPExcel from file + * + * @param string $pFilename + * @return PHPExcel + * @throws Exception + */ + public function load($pFilename) + { + // Create new PHPExcel + $objPHPExcel = new PHPExcel(); + + // Load into this instance + return $this->loadIntoExisting($pFilename, $objPHPExcel); + } + + + private static function identifyFixedStyleValue($styleList,&$styleAttributeValue) { + $styleAttributeValue = strtolower($styleAttributeValue); + foreach($styleList as $style) { + if ($styleAttributeValue == strtolower($style)) { + $styleAttributeValue = $style; + return true; + } + } + return false; + } + + + /** + * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetInfo($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $worksheetInfo = array(); + + $zip = new ZipArchive; + if ($zip->open($pFilename) === true) { + + $xml = simplexml_load_string($zip->getFromName("content.xml")); + $namespacesContent = $xml->getNamespaces(true); + + $workbook = $xml->children($namespacesContent['office']); + foreach($workbook->body->spreadsheet as $workbookData) { + $workbookData = $workbookData->children($namespacesContent['table']); + foreach($workbookData->table as $worksheetDataSet) { + $worksheetData = $worksheetDataSet->children($namespacesContent['table']); + $worksheetDataAttributes = $worksheetDataSet->attributes($namespacesContent['table']); + + $tmpInfo = array(); + $tmpInfo['worksheetName'] = (string) $worksheetDataAttributes['name']; + $tmpInfo['lastColumnLetter'] = 'A'; + $tmpInfo['lastColumnIndex'] = 0; + $tmpInfo['totalRows'] = 0; + $tmpInfo['totalColumns'] = 0; + + $rowIndex = 0; + foreach ($worksheetData as $key => $rowData) { + switch ($key) { + case 'table-row' : + $rowDataTableAttributes = $rowData->attributes($namespacesContent['table']); + $rowRepeats = (isset($rowDataTableAttributes['number-rows-repeated'])) ? + $rowDataTableAttributes['number-rows-repeated'] : 1; + $columnIndex = 0; + + foreach ($rowData as $key => $cellData) { + $cellDataTableAttributes = $cellData->attributes($namespacesContent['table']); + $colRepeats = (isset($cellDataTableAttributes['number-columns-repeated'])) ? + $cellDataTableAttributes['number-columns-repeated'] : 1; + $cellDataOfficeAttributes = $cellData->attributes($namespacesContent['office']); + if (isset($cellDataOfficeAttributes['value-type'])) { + $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex + $colRepeats - 1); + $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex + $rowRepeats); + } + $columnIndex += $colRepeats; + } + $rowIndex += $rowRepeats; + break; + } + } + + $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; + + $worksheetInfo[] = $tmpInfo; + } + } + } + + return $worksheetInfo; + } + + + /** + * Loads PHPExcel from file into PHPExcel instance + * + * @param string $pFilename + * @param PHPExcel $objPHPExcel + * @return PHPExcel + * @throws Exception + */ + public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + $timezoneObj = new DateTimeZone('Europe/London'); + $GMT = new DateTimeZone('UTC'); + + $zip = new ZipArchive; + if ($zip->open($pFilename) === true) { +// echo '<h1>Meta Information</h1>'; + $xml = simplexml_load_string($zip->getFromName("meta.xml")); + $namespacesMeta = $xml->getNamespaces(true); +// echo '<pre>'; +// print_r($namespacesMeta); +// echo '</pre><hr />'; + + $docProps = $objPHPExcel->getProperties(); + $officeProperty = $xml->children($namespacesMeta['office']); + foreach($officeProperty as $officePropertyData) { + $officePropertyDC = array(); + if (isset($namespacesMeta['dc'])) { + $officePropertyDC = $officePropertyData->children($namespacesMeta['dc']); + } + foreach($officePropertyDC as $propertyName => $propertyValue) { + switch ($propertyName) { + case 'title' : + $docProps->setTitle($propertyValue); + break; + case 'subject' : + $docProps->setSubject($propertyValue); + break; + case 'creator' : + $docProps->setCreator($propertyValue); + $docProps->setLastModifiedBy($propertyValue); + break; + case 'date' : + $creationDate = strtotime($propertyValue); + $docProps->setCreated($creationDate); + $docProps->setModified($creationDate); + break; + case 'description' : + $docProps->setDescription($propertyValue); + break; + } + } + $officePropertyMeta = array(); + if (isset($namespacesMeta['dc'])) { + $officePropertyMeta = $officePropertyData->children($namespacesMeta['meta']); + } + foreach($officePropertyMeta as $propertyName => $propertyValue) { + $propertyValueAttributes = $propertyValue->attributes($namespacesMeta['meta']); + switch ($propertyName) { + case 'initial-creator' : + $docProps->setCreator($propertyValue); + break; + case 'keyword' : + $docProps->setKeywords($propertyValue); + break; + case 'creation-date' : + $creationDate = strtotime($propertyValue); + $docProps->setCreated($creationDate); + break; + case 'user-defined' : + $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_STRING; + foreach ($propertyValueAttributes as $key => $value) { + if ($key == 'name') { + $propertyValueName = (string) $value; + } elseif($key == 'value-type') { + switch ($value) { + case 'date' : + $propertyValue = PHPExcel_DocumentProperties::convertProperty($propertyValue,'date'); + $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE; + break; + case 'boolean' : + $propertyValue = PHPExcel_DocumentProperties::convertProperty($propertyValue,'bool'); + $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN; + break; + case 'float' : + $propertyValue = PHPExcel_DocumentProperties::convertProperty($propertyValue,'r4'); + $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_FLOAT; + break; + default : + $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_STRING; + } + } + } + $docProps->setCustomProperty($propertyValueName,$propertyValue,$propertyValueType); + break; + } + } + } + + +// echo '<h1>Workbook Content</h1>'; + $xml = simplexml_load_string($zip->getFromName("content.xml")); + $namespacesContent = $xml->getNamespaces(true); +// echo '<pre>'; +// print_r($namespacesContent); +// echo '</pre><hr />'; + + $workbook = $xml->children($namespacesContent['office']); + foreach($workbook->body->spreadsheet as $workbookData) { + $workbookData = $workbookData->children($namespacesContent['table']); + $worksheetID = 0; + foreach($workbookData->table as $worksheetDataSet) { + $worksheetData = $worksheetDataSet->children($namespacesContent['table']); +// print_r($worksheetData); +// echo '<br />'; + $worksheetDataAttributes = $worksheetDataSet->attributes($namespacesContent['table']); +// print_r($worksheetDataAttributes); +// echo '<br />'; + if ((isset($this->_loadSheetsOnly)) && (isset($worksheetDataAttributes['name'])) && + (!in_array($worksheetDataAttributes['name'], $this->_loadSheetsOnly))) { + continue; + } + +// echo '<h2>Worksheet '.$worksheetDataAttributes['name'].'</h2>'; + // Create new Worksheet + $objPHPExcel->createSheet(); + $objPHPExcel->setActiveSheetIndex($worksheetID); + if (isset($worksheetDataAttributes['name'])) { + $worksheetName = (string) $worksheetDataAttributes['name']; + // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in + // formula cells... during the load, all formulae should be correct, and we're simply + // bringing the worksheet name in line with the formula, not the reverse + $objPHPExcel->getActiveSheet()->setTitle($worksheetName,false); + } + + $rowID = 1; + foreach($worksheetData as $key => $rowData) { +// echo '<b>'.$key.'</b><br />'; + switch ($key) { + case 'table-header-rows': + foreach ($rowData as $key=>$cellData) { + $rowData = $cellData; + break; + } + case 'table-row' : + $rowDataTableAttributes = $rowData->attributes($namespacesContent['table']); + $rowRepeats = (isset($rowDataTableAttributes['number-rows-repeated'])) ? + $rowDataTableAttributes['number-rows-repeated'] : 1; + $columnID = 'A'; + foreach($rowData as $key => $cellData) { + if ($this->getReadFilter() !== NULL) { + if (!$this->getReadFilter()->readCell($columnID, $rowID, $worksheetName)) { + continue; + } + } + +// echo '<b>'.$columnID.$rowID.'</b><br />'; + $cellDataText = (isset($namespacesContent['text'])) ? + $cellData->children($namespacesContent['text']) : + ''; + $cellDataOffice = $cellData->children($namespacesContent['office']); + $cellDataOfficeAttributes = $cellData->attributes($namespacesContent['office']); + $cellDataTableAttributes = $cellData->attributes($namespacesContent['table']); + +// echo 'Office Attributes: '; +// print_r($cellDataOfficeAttributes); +// echo '<br />Table Attributes: '; +// print_r($cellDataTableAttributes); +// echo '<br />Cell Data Text'; +// print_r($cellDataText); +// echo '<br />'; +// + $type = $formatting = $hyperlink = null; + $hasCalculatedValue = false; + $cellDataFormula = ''; + if (isset($cellDataTableAttributes['formula'])) { + $cellDataFormula = $cellDataTableAttributes['formula']; + $hasCalculatedValue = true; + } + + if (isset($cellDataOffice->annotation)) { +// echo 'Cell has comment<br />'; + $annotationText = $cellDataOffice->annotation->children($namespacesContent['text']); + $textArray = array(); + foreach($annotationText as $t) { + foreach($t->span as $text) { + $textArray[] = (string)$text; + } + } + $text = implode("\n",$textArray); +// echo $text,'<br />'; + $objPHPExcel->getActiveSheet()->getComment( $columnID.$rowID ) +// ->setAuthor( $author ) + ->setText($this->_parseRichText($text) ); + } + + if (isset($cellDataText->p)) { + // Consolidate if there are multiple p records (maybe with spans as well) + $dataArray = array(); + // Text can have multiple text:p and within those, multiple text:span. + // text:p newlines, but text:span does not. + // Also, here we assume there is no text data is span fields are specified, since + // we have no way of knowing proper positioning anyway. + foreach ($cellDataText->p as $pData) { + if (isset($pData->span)) { + // span sections do not newline, so we just create one large string here + $spanSection = ""; + foreach ($pData->span as $spanData) { + $spanSection .= $spanData; + } + array_push($dataArray, $spanSection); + } else { + array_push($dataArray, $pData); + } + } + $allCellDataText = implode($dataArray, "\n"); + +// echo 'Value Type is '.$cellDataOfficeAttributes['value-type'].'<br />'; + switch ($cellDataOfficeAttributes['value-type']) { + case 'string' : + $type = PHPExcel_Cell_DataType::TYPE_STRING; + $dataValue = $allCellDataText; + if (isset($dataValue->a)) { + $dataValue = $dataValue->a; + $cellXLinkAttributes = $dataValue->attributes($namespacesContent['xlink']); + $hyperlink = $cellXLinkAttributes['href']; + } + break; + case 'boolean' : + $type = PHPExcel_Cell_DataType::TYPE_BOOL; + $dataValue = ($allCellDataText == 'TRUE') ? True : False; + break; + case 'percentage' : + $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; + $dataValue = (float) $cellDataOfficeAttributes['value']; + if (floor($dataValue) == $dataValue) { + $dataValue = (integer) $dataValue; + } + $formatting = PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00; + break; + case 'currency' : + $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; + $dataValue = (float) $cellDataOfficeAttributes['value']; + if (floor($dataValue) == $dataValue) { + $dataValue = (integer) $dataValue; + } + $formatting = PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE; + break; + case 'float' : + $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; + $dataValue = (float) $cellDataOfficeAttributes['value']; + if (floor($dataValue) == $dataValue) { + if ($dataValue = (integer) $dataValue) + $dataValue = (integer) $dataValue; + else + $dataValue = (float) $dataValue; + } + break; + case 'date' : + $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; + $dateObj = new DateTime($cellDataOfficeAttributes['date-value'], $GMT); + $dateObj->setTimeZone($timezoneObj); + list($year,$month,$day,$hour,$minute,$second) = explode(' ',$dateObj->format('Y m d H i s')); + $dataValue = PHPExcel_Shared_Date::FormattedPHPToExcel($year,$month,$day,$hour,$minute,$second); + if ($dataValue != floor($dataValue)) { + $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15.' '.PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4; + } else { + $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15; + } + break; + case 'time' : + $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; + $dataValue = PHPExcel_Shared_Date::PHPToExcel(strtotime('01-01-1970 '.implode(':',sscanf($cellDataOfficeAttributes['time-value'],'PT%dH%dM%dS')))); + $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4; + break; + } +// echo 'Data value is '.$dataValue.'<br />'; +// if ($hyperlink !== NULL) { +// echo 'Hyperlink is '.$hyperlink.'<br />'; +// } + } else { + $type = PHPExcel_Cell_DataType::TYPE_NULL; + $dataValue = NULL; + } + + if ($hasCalculatedValue) { + $type = PHPExcel_Cell_DataType::TYPE_FORMULA; +// echo 'Formula: '.$cellDataFormula.'<br />'; + $cellDataFormula = substr($cellDataFormula,strpos($cellDataFormula,':=')+1); + $temp = explode('"',$cellDataFormula); + $tKey = false; + foreach($temp as &$value) { + // Only replace in alternate array entries (i.e. non-quoted blocks) + if ($tKey = !$tKey) { + $value = preg_replace('/\[\.(.*):\.(.*)\]/Ui','$1:$2',$value); + $value = preg_replace('/\[\.(.*)\]/Ui','$1',$value); + $value = PHPExcel_Calculation::_translateSeparator(';',',',$value,$inBraces); + } + } + unset($value); + // Then rebuild the formula string + $cellDataFormula = implode('"',$temp); +// echo 'Adjusted Formula: '.$cellDataFormula.'<br />'; + } + + $colRepeats = (isset($cellDataTableAttributes['number-columns-repeated'])) ? + $cellDataTableAttributes['number-columns-repeated'] : 1; + if ($type !== NULL) { + for ($i = 0; $i < $colRepeats; ++$i) { + if ($i > 0) { + ++$columnID; + } + if ($type !== PHPExcel_Cell_DataType::TYPE_NULL) { + for ($rowAdjust = 0; $rowAdjust < $rowRepeats; ++$rowAdjust) { + $rID = $rowID + $rowAdjust; + $objPHPExcel->getActiveSheet()->getCell($columnID.$rID)->setValueExplicit((($hasCalculatedValue) ? $cellDataFormula : $dataValue),$type); + if ($hasCalculatedValue) { +// echo 'Forumla result is '.$dataValue.'<br />'; + $objPHPExcel->getActiveSheet()->getCell($columnID.$rID)->setCalculatedValue($dataValue); + } + if ($formatting !== NULL) { + $objPHPExcel->getActiveSheet()->getStyle($columnID.$rID)->getNumberFormat()->setFormatCode($formatting); + } else { + $objPHPExcel->getActiveSheet()->getStyle($columnID.$rID)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL); + } + if ($hyperlink !== NULL) { + $objPHPExcel->getActiveSheet()->getCell($columnID.$rID)->getHyperlink()->setUrl($hyperlink); + } + } + } + } + } + + // Merged cells + if ((isset($cellDataTableAttributes['number-columns-spanned'])) || (isset($cellDataTableAttributes['number-rows-spanned']))) { + if (($type !== PHPExcel_Cell_DataType::TYPE_NULL) || (!$this->_readDataOnly)) { + $columnTo = $columnID; + if (isset($cellDataTableAttributes['number-columns-spanned'])) { + $columnTo = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($columnID) + $cellDataTableAttributes['number-columns-spanned'] -2); + } + $rowTo = $rowID; + if (isset($cellDataTableAttributes['number-rows-spanned'])) { + $rowTo = $rowTo + $cellDataTableAttributes['number-rows-spanned'] - 1; + } + $cellRange = $columnID.$rowID.':'.$columnTo.$rowTo; + $objPHPExcel->getActiveSheet()->mergeCells($cellRange); + } + } + + ++$columnID; + } + $rowID += $rowRepeats; + break; + } + } + ++$worksheetID; + } + } + + } + + // Return + return $objPHPExcel; + } + + + private function _parseRichText($is = '') { + $value = new PHPExcel_RichText(); + + $value->createText($is); + + return $value; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Reader/SYLK.php b/plugins/excel_reader/Classes/PHPExcel/Reader/SYLK.php new file mode 100755 index 0000000..47d5703 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Reader/SYLK.php @@ -0,0 +1,498 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** PHPExcel root directory */ +if (!defined('PHPEXCEL_ROOT')) { + /** + * @ignore + */ + define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../'); + require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); +} + +/** + * PHPExcel_Reader_SYLK + * + * @category PHPExcel + * @package PHPExcel_Reader + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Reader_SYLK implements PHPExcel_Reader_IReader +{ + /** + * Input encoding + * + * @var string + */ + private $_inputEncoding = 'ANSI'; + + /** + * Sheet index to read + * + * @var int + */ + private $_sheetIndex = 0; + + /** + * Formats + * + * @var array + */ + private $_formats = array(); + + /** + * Format Count + * + * @var int + */ + private $_format = 0; + + /** + * PHPExcel_Reader_IReadFilter instance + * + * @var PHPExcel_Reader_IReadFilter + */ + private $_readFilter = null; + + + /** + * Create a new PHPExcel_Reader_SYLK + */ + public function __construct() { + $this->_readFilter = new PHPExcel_Reader_DefaultReadFilter(); + } + + + /** + * Can the current PHPExcel_Reader_IReader read the file? + * + * @param string $pFileName + * @return boolean + * @throws Exception + */ + public function canRead($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Read sample data (first 2 KB will do) + $fh = fopen($pFilename, 'r'); + $data = fread($fh, 2048); + fclose($fh); + + // Count delimiters in file + $delimiterCount = substr_count($data, ';'); + if ($delimiterCount < 1) { + return false; + } + + // Analyze first line looking for ID; signature + $lines = explode("\n", $data); + if (substr($lines[0],0,4) != 'ID;P') { + return false; + } + + return true; + } + + + /** + * Read filter + * + * @return PHPExcel_Reader_IReadFilter + */ + public function getReadFilter() { + return $this->_readFilter; + } + + + /** + * Set read filter + * + * @param PHPExcel_Reader_IReadFilter $pValue + */ + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { + $this->_readFilter = $pValue; + return $this; + } + + + /** + * Set input encoding + * + * @param string $pValue Input encoding + */ + public function setInputEncoding($pValue = 'ANSI') + { + $this->_inputEncoding = $pValue; + return $this; + } + + + /** + * Get input encoding + * + * @return string + */ + public function getInputEncoding() + { + return $this->_inputEncoding; + } + + + /** + * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) + * + * @param string $pFilename + * @throws Exception + */ + public function listWorksheetInfo($pFilename) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Open file + $fileHandle = fopen($pFilename, 'r'); + if ($fileHandle === false) { + throw new Exception("Could not open file " . $pFilename . " for reading."); + } + + $worksheetInfo = array(); + $worksheetInfo[0]['worksheetName'] = 'Worksheet'; + $worksheetInfo[0]['lastColumnLetter'] = 'A'; + $worksheetInfo[0]['lastColumnIndex'] = 0; + $worksheetInfo[0]['totalRows'] = 0; + $worksheetInfo[0]['totalColumns'] = 0; + + // Loop through file + $rowData = array(); + + // loop through one row (line) at a time in the file + $rowIndex = 0; + while (($rowData = fgets($fileHandle)) !== FALSE) { + $columnIndex = 0; + + // convert SYLK encoded $rowData to UTF-8 + $rowData = PHPExcel_Shared_String::SYLKtoUTF8($rowData); + + // explode each row at semicolons while taking into account that literal semicolon (;) + // is escaped like this (;;) + $rowData = explode("\t",str_replace('?',';',str_replace(';',"\t",str_replace(';;','?',rtrim($rowData))))); + + $dataType = array_shift($rowData); + if ($dataType == 'C') { + // Read cell value data + foreach($rowData as $rowDatum) { + switch($rowDatum{0}) { + case 'C' : + case 'X' : + $columnIndex = substr($rowDatum,1) - 1; + break; + case 'R' : + case 'Y' : + $rowIndex = substr($rowDatum,1); + break; + } + + $worksheetInfo[0]['totalRows'] = max($worksheetInfo[0]['totalRows'], $rowIndex); + $worksheetInfo[0]['lastColumnIndex'] = max($worksheetInfo[0]['lastColumnIndex'], $columnIndex); + } + } + } + + $worksheetInfo[0]['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']); + $worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1; + + // Close file + fclose($fileHandle); + + return $worksheetInfo; + } + + + /** + * Loads PHPExcel from file + * + * @param string $pFilename + * @return PHPExcel + * @throws Exception + */ + public function load($pFilename) + { + // Create new PHPExcel + $objPHPExcel = new PHPExcel(); + + // Load into this instance + return $this->loadIntoExisting($pFilename, $objPHPExcel); + } + + + /** + * Loads PHPExcel from file into PHPExcel instance + * + * @param string $pFilename + * @param PHPExcel $objPHPExcel + * @return PHPExcel + * @throws Exception + */ + public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) + { + // Check if file exists + if (!file_exists($pFilename)) { + throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); + } + + // Create new PHPExcel + while ($objPHPExcel->getSheetCount() <= $this->_sheetIndex) { + $objPHPExcel->createSheet(); + } + $objPHPExcel->setActiveSheetIndex( $this->_sheetIndex ); + + $fromFormats = array('\-', '\ '); + $toFormats = array('-', ' '); + + // Open file + $fileHandle = fopen($pFilename, 'r'); + if ($fileHandle === false) { + throw new Exception("Could not open file $pFilename for reading."); + } + + // Loop through file + $rowData = array(); + $column = $row = ''; + + // loop through one row (line) at a time in the file + while (($rowData = fgets($fileHandle)) !== FALSE) { + + // convert SYLK encoded $rowData to UTF-8 + $rowData = PHPExcel_Shared_String::SYLKtoUTF8($rowData); + + // explode each row at semicolons while taking into account that literal semicolon (;) + // is escaped like this (;;) + $rowData = explode("\t",str_replace('¤',';',str_replace(';',"\t",str_replace(';;','¤',rtrim($rowData))))); + + $dataType = array_shift($rowData); + // Read shared styles + if ($dataType == 'P') { + $formatArray = array(); + foreach($rowData as $rowDatum) { + switch($rowDatum{0}) { + case 'P' : $formatArray['numberformat']['code'] = str_replace($fromFormats,$toFormats,substr($rowDatum,1)); + break; + case 'E' : + case 'F' : $formatArray['font']['name'] = substr($rowDatum,1); + break; + case 'L' : $formatArray['font']['size'] = substr($rowDatum,1); + break; + case 'S' : $styleSettings = substr($rowDatum,1); + for ($i=0;$i<strlen($styleSettings);++$i) { + switch ($styleSettings{$i}) { + case 'I' : $formatArray['font']['italic'] = true; + break; + case 'D' : $formatArray['font']['bold'] = true; + break; + case 'T' : $formatArray['borders']['top']['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + case 'B' : $formatArray['borders']['bottom']['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + case 'L' : $formatArray['borders']['left']['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + case 'R' : $formatArray['borders']['right']['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + } + } + break; + } + } + $this->_formats['P'.$this->_format++] = $formatArray; + // Read cell value data + } elseif ($dataType == 'C') { + $hasCalculatedValue = false; + $cellData = $cellDataFormula = ''; + foreach($rowData as $rowDatum) { + switch($rowDatum{0}) { + case 'C' : + case 'X' : $column = substr($rowDatum,1); + break; + case 'R' : + case 'Y' : $row = substr($rowDatum,1); + break; + case 'K' : $cellData = substr($rowDatum,1); + break; + case 'E' : $cellDataFormula = '='.substr($rowDatum,1); + // Convert R1C1 style references to A1 style references (but only when not quoted) + $temp = explode('"',$cellDataFormula); + $key = false; + foreach($temp as &$value) { + // Only count/replace in alternate array entries + if ($key = !$key) { + preg_match_all('/(R(\[?-?\d*\]?))(C(\[?-?\d*\]?))/',$value, $cellReferences,PREG_SET_ORDER+PREG_OFFSET_CAPTURE); + // Reverse the matches array, otherwise all our offsets will become incorrect if we modify our way + // through the formula from left to right. Reversing means that we work right to left.through + // the formula + $cellReferences = array_reverse($cellReferences); + // Loop through each R1C1 style reference in turn, converting it to its A1 style equivalent, + // then modify the formula to use that new reference + foreach($cellReferences as $cellReference) { + $rowReference = $cellReference[2][0]; + // Empty R reference is the current row + if ($rowReference == '') $rowReference = $row; + // Bracketed R references are relative to the current row + if ($rowReference{0} == '[') $rowReference = $row + trim($rowReference,'[]'); + $columnReference = $cellReference[4][0]; + // Empty C reference is the current column + if ($columnReference == '') $columnReference = $column; + // Bracketed C references are relative to the current column + if ($columnReference{0} == '[') $columnReference = $column + trim($columnReference,'[]'); + $A1CellReference = PHPExcel_Cell::stringFromColumnIndex($columnReference-1).$rowReference; + + $value = substr_replace($value,$A1CellReference,$cellReference[0][1],strlen($cellReference[0][0])); + } + } + } + unset($value); + // Then rebuild the formula string + $cellDataFormula = implode('"',$temp); + $hasCalculatedValue = true; + break; + } + } + $columnLetter = PHPExcel_Cell::stringFromColumnIndex($column-1); + $cellData = PHPExcel_Calculation::_unwrapResult($cellData); + + // Set cell value + $objPHPExcel->getActiveSheet()->getCell($columnLetter.$row)->setValue(($hasCalculatedValue) ? $cellDataFormula : $cellData); + if ($hasCalculatedValue) { + $cellData = PHPExcel_Calculation::_unwrapResult($cellData); + $objPHPExcel->getActiveSheet()->getCell($columnLetter.$row)->setCalculatedValue($cellData); + } + // Read cell formatting + } elseif ($dataType == 'F') { + $formatStyle = $columnWidth = $styleSettings = ''; + $styleData = array(); + foreach($rowData as $rowDatum) { + switch($rowDatum{0}) { + case 'C' : + case 'X' : $column = substr($rowDatum,1); + break; + case 'R' : + case 'Y' : $row = substr($rowDatum,1); + break; + case 'P' : $formatStyle = $rowDatum; + break; + case 'W' : list($startCol,$endCol,$columnWidth) = explode(' ',substr($rowDatum,1)); + break; + case 'S' : $styleSettings = substr($rowDatum,1); + for ($i=0;$i<strlen($styleSettings);++$i) { + switch ($styleSettings{$i}) { + case 'I' : $styleData['font']['italic'] = true; + break; + case 'D' : $styleData['font']['bold'] = true; + break; + case 'T' : $styleData['borders']['top']['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + case 'B' : $styleData['borders']['bottom']['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + case 'L' : $styleData['borders']['left']['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + case 'R' : $styleData['borders']['right']['style'] = PHPExcel_Style_Border::BORDER_THIN; + break; + } + } + break; + } + } + if (($formatStyle > '') && ($column > '') && ($row > '')) { + $columnLetter = PHPExcel_Cell::stringFromColumnIndex($column-1); + $objPHPExcel->getActiveSheet()->getStyle($columnLetter.$row)->applyFromArray($this->_formats[$formatStyle]); + } + if ((!empty($styleData)) && ($column > '') && ($row > '')) { + $columnLetter = PHPExcel_Cell::stringFromColumnIndex($column-1); + $objPHPExcel->getActiveSheet()->getStyle($columnLetter.$row)->applyFromArray($styleData); + } + if ($columnWidth > '') { + if ($startCol == $endCol) { + $startCol = PHPExcel_Cell::stringFromColumnIndex($startCol-1); + $objPHPExcel->getActiveSheet()->getColumnDimension($startCol)->setWidth($columnWidth); + } else { + $startCol = PHPExcel_Cell::stringFromColumnIndex($startCol-1); + $endCol = PHPExcel_Cell::stringFromColumnIndex($endCol-1); + $objPHPExcel->getActiveSheet()->getColumnDimension($startCol)->setWidth($columnWidth); + do { + $objPHPExcel->getActiveSheet()->getColumnDimension(++$startCol)->setWidth($columnWidth); + } while ($startCol != $endCol); + } + } + } else { + foreach($rowData as $rowDatum) { + switch($rowDatum{0}) { + case 'C' : + case 'X' : $column = substr($rowDatum,1); + break; + case 'R' : + case 'Y' : $row = substr($rowDatum,1); + break; + } + } + } + } + + // Close file + fclose($fileHandle); + + // Return + return $objPHPExcel; + } + + + /** + * Get sheet index + * + * @return int + */ + public function getSheetIndex() { + return $this->_sheetIndex; + } + + + /** + * Set sheet index + * + * @param int $pValue Sheet index + * @return PHPExcel_Reader_SYLK + */ + public function setSheetIndex($pValue = 0) { + $this->_sheetIndex = $pValue; + return $this; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/ReferenceHelper.php b/plugins/excel_reader/Classes/PHPExcel/ReferenceHelper.php new file mode 100755 index 0000000..9113591 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/ReferenceHelper.php @@ -0,0 +1,685 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_ReferenceHelper (Singleton) + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_ReferenceHelper +{ + /** Constants */ + /** Regular Expressions */ + const REFHELPER_REGEXP_CELLREF = '((\w*|\'[^!]*\')!)?(?<![:a-z\$])(\$?[a-z]{1,3}\$?\d+)(?=[^:!\d\'])'; + const REFHELPER_REGEXP_CELLRANGE = '((\w*|\'[^!]*\')!)?(\$?[a-z]{1,3}\$?\d+):(\$?[a-z]{1,3}\$?\d+)'; + const REFHELPER_REGEXP_ROWRANGE = '((\w*|\'[^!]*\')!)?(\$?\d+):(\$?\d+)'; + const REFHELPER_REGEXP_COLRANGE = '((\w*|\'[^!]*\')!)?(\$?[a-z]{1,3}):(\$?[a-z]{1,3})'; + + /** + * Instance of this class + * + * @var PHPExcel_ReferenceHelper + */ + private static $_instance; + + /** + * Get an instance of this class + * + * @return PHPExcel_ReferenceHelper + */ + public static function getInstance() { + if (!isset(self::$_instance) || (self::$_instance === NULL)) { + self::$_instance = new PHPExcel_ReferenceHelper(); + } + + return self::$_instance; + } + + /** + * Create a new PHPExcel_ReferenceHelper + */ + protected function __construct() { + } + + /** + * Insert a new column, updating all possible related data + * + * @param int $pBefore Insert before this one + * @param int $pNumCols Number of columns to insert + * @param int $pNumRows Number of rows to insert + * @throws Exception + */ + public function insertNewBefore($pBefore = 'A1', $pNumCols = 0, $pNumRows = 0, PHPExcel_Worksheet $pSheet = null) { + $aCellCollection = $pSheet->getCellCollection(); + + // Get coordinates of $pBefore + $beforeColumn = 'A'; + $beforeRow = 1; + list($beforeColumn, $beforeRow) = PHPExcel_Cell::coordinateFromString( $pBefore ); + + + // Clear cells if we are removing columns or rows + $highestColumn = $pSheet->getHighestColumn(); + $highestRow = $pSheet->getHighestRow(); + + // 1. Clear column strips if we are removing columns + if ($pNumCols < 0 && PHPExcel_Cell::columnIndexFromString($beforeColumn) - 2 + $pNumCols > 0) { + for ($i = 1; $i <= $highestRow - 1; ++$i) { + for ($j = PHPExcel_Cell::columnIndexFromString($beforeColumn) - 1 + $pNumCols; $j <= PHPExcel_Cell::columnIndexFromString($beforeColumn) - 2; ++$j) { + $coordinate = PHPExcel_Cell::stringFromColumnIndex($j) . $i; + $pSheet->removeConditionalStyles($coordinate); + if ($pSheet->cellExists($coordinate)) { + $pSheet->getCell($coordinate)->setValueExplicit('', PHPExcel_Cell_DataType::TYPE_NULL); + $pSheet->getCell($coordinate)->setXfIndex(0); + } + } + } + } + + // 2. Clear row strips if we are removing rows + if ($pNumRows < 0 && $beforeRow - 1 + $pNumRows > 0) { + for ($i = PHPExcel_Cell::columnIndexFromString($beforeColumn) - 1; $i <= PHPExcel_Cell::columnIndexFromString($highestColumn) - 1; ++$i) { + for ($j = $beforeRow + $pNumRows; $j <= $beforeRow - 1; ++$j) { + $coordinate = PHPExcel_Cell::stringFromColumnIndex($i) . $j; + $pSheet->removeConditionalStyles($coordinate); + if ($pSheet->cellExists($coordinate)) { + $pSheet->getCell($coordinate)->setValueExplicit('', PHPExcel_Cell_DataType::TYPE_NULL); + $pSheet->getCell($coordinate)->setXfIndex(0); + } + } + } + } + + + // Loop through cells, bottom-up, and change cell coordinates + while (($cellID = ($pNumCols < 0 || $pNumRows < 0) ? array_shift($aCellCollection) : array_pop($aCellCollection))) { + $cell = $pSheet->getCell($cellID); + + // New coordinates + $newCoordinates = PHPExcel_Cell::stringFromColumnIndex( PHPExcel_Cell::columnIndexFromString($cell->getColumn()) - 1 + $pNumCols ) . ($cell->getRow() + $pNumRows); + + // Should the cell be updated? Move value and cellXf index from one cell to another. + if ((PHPExcel_Cell::columnIndexFromString( $cell->getColumn() ) >= PHPExcel_Cell::columnIndexFromString($beforeColumn)) && + ($cell->getRow() >= $beforeRow)) { + + // Update cell styles + $pSheet->getCell($newCoordinates)->setXfIndex($cell->getXfIndex()); + $cell->setXfIndex(0); + + // Insert this cell at its new location + if ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA) { + // Formula should be adjusted + $pSheet->getCell($newCoordinates) + ->setValue($this->updateFormulaReferences($cell->getValue(), + $pBefore, $pNumCols, $pNumRows, $pSheet->getTitle())); + } else { + // Formula should not be adjusted + $pSheet->getCell($newCoordinates)->setValue($cell->getValue()); + } + + // Clear the original cell + $pSheet->getCell($cell->getCoordinate())->setValue(''); + + } else { + /* We don't need to update styles for rows/columns before our insertion position, + but we do still need to adjust any formulae in those cells */ + if ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA) { + // Formula should be adjusted + $cell->setValue($this->updateFormulaReferences($cell->getValue(), + $pBefore, $pNumCols, $pNumRows, $pSheet->getTitle())); + } + + } + } + + + // Duplicate styles for the newly inserted cells + $highestColumn = $pSheet->getHighestColumn(); + $highestRow = $pSheet->getHighestRow(); + + if ($pNumCols > 0 && PHPExcel_Cell::columnIndexFromString($beforeColumn) - 2 > 0) { + for ($i = $beforeRow; $i <= $highestRow - 1; ++$i) { + + // Style + $coordinate = PHPExcel_Cell::stringFromColumnIndex( PHPExcel_Cell::columnIndexFromString($beforeColumn) - 2 ) . $i; + if ($pSheet->cellExists($coordinate)) { + $xfIndex = $pSheet->getCell($coordinate)->getXfIndex(); + $conditionalStyles = $pSheet->conditionalStylesExists($coordinate) ? + $pSheet->getConditionalStyles($coordinate) : false; + for ($j = PHPExcel_Cell::columnIndexFromString($beforeColumn) - 1; $j <= PHPExcel_Cell::columnIndexFromString($beforeColumn) - 2 + $pNumCols; ++$j) { + $pSheet->getCellByColumnAndRow($j, $i)->setXfIndex($xfIndex); + if ($conditionalStyles) { + $cloned = array(); + foreach ($conditionalStyles as $conditionalStyle) { + $cloned[] = clone $conditionalStyle; + } + $pSheet->setConditionalStyles(PHPExcel_Cell::stringFromColumnIndex($j) . $i, $cloned); + } + } + } + + } + } + + if ($pNumRows > 0 && $beforeRow - 1 > 0) { + for ($i = PHPExcel_Cell::columnIndexFromString($beforeColumn) - 1; $i <= PHPExcel_Cell::columnIndexFromString($highestColumn) - 1; ++$i) { + + // Style + $coordinate = PHPExcel_Cell::stringFromColumnIndex($i) . ($beforeRow - 1); + if ($pSheet->cellExists($coordinate)) { + $xfIndex = $pSheet->getCell($coordinate)->getXfIndex(); + $conditionalStyles = $pSheet->conditionalStylesExists($coordinate) ? + $pSheet->getConditionalStyles($coordinate) : false; + for ($j = $beforeRow; $j <= $beforeRow - 1 + $pNumRows; ++$j) { + $pSheet->getCell(PHPExcel_Cell::stringFromColumnIndex($i) . $j)->setXfIndex($xfIndex); + if ($conditionalStyles) { + $cloned = array(); + foreach ($conditionalStyles as $conditionalStyle) { + $cloned[] = clone $conditionalStyle; + } + $pSheet->setConditionalStyles(PHPExcel_Cell::stringFromColumnIndex($i) . $j, $cloned); + } + } + } + } + } + + + // Update worksheet: column dimensions + $aColumnDimensions = array_reverse($pSheet->getColumnDimensions(), true); + if (!empty($aColumnDimensions)) { + foreach ($aColumnDimensions as $objColumnDimension) { + $newReference = $this->updateCellReference($objColumnDimension->getColumnIndex() . '1', $pBefore, $pNumCols, $pNumRows); + list($newReference) = PHPExcel_Cell::coordinateFromString($newReference); + if ($objColumnDimension->getColumnIndex() != $newReference) { + $objColumnDimension->setColumnIndex($newReference); + } + } + $pSheet->refreshColumnDimensions(); + } + + + // Update worksheet: row dimensions + $aRowDimensions = array_reverse($pSheet->getRowDimensions(), true); + if (!empty($aRowDimensions)) { + foreach ($aRowDimensions as $objRowDimension) { + $newReference = $this->updateCellReference('A' . $objRowDimension->getRowIndex(), $pBefore, $pNumCols, $pNumRows); + list(, $newReference) = PHPExcel_Cell::coordinateFromString($newReference); + if ($objRowDimension->getRowIndex() != $newReference) { + $objRowDimension->setRowIndex($newReference); + } + } + $pSheet->refreshRowDimensions(); + + $copyDimension = $pSheet->getRowDimension($beforeRow - 1); + for ($i = $beforeRow; $i <= $beforeRow - 1 + $pNumRows; ++$i) { + $newDimension = $pSheet->getRowDimension($i); + $newDimension->setRowHeight($copyDimension->getRowHeight()); + $newDimension->setVisible($copyDimension->getVisible()); + $newDimension->setOutlineLevel($copyDimension->getOutlineLevel()); + $newDimension->setCollapsed($copyDimension->getCollapsed()); + } + } + + + // Update worksheet: breaks + $aBreaks = array_reverse($pSheet->getBreaks(), true); + foreach ($aBreaks as $key => $value) { + $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); + if ($key != $newReference) { + $pSheet->setBreak( $newReference, $value ); + $pSheet->setBreak( $key, PHPExcel_Worksheet::BREAK_NONE ); + } + } + + // Update worksheet: comments + $aComments = $pSheet->getComments(); + $aNewComments = array(); // the new array of all comments + foreach ($aComments as $key => &$value) { + $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); + $aNewComments[$newReference] = $value; + } + $pSheet->setComments($aNewComments); // replace the comments array + + // Update worksheet: hyperlinks + $aHyperlinkCollection = array_reverse($pSheet->getHyperlinkCollection(), true); + foreach ($aHyperlinkCollection as $key => $value) { + $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); + if ($key != $newReference) { + $pSheet->setHyperlink( $newReference, $value ); + $pSheet->setHyperlink( $key, null ); + } + } + + + // Update worksheet: data validations + $aDataValidationCollection = array_reverse($pSheet->getDataValidationCollection(), true); + foreach ($aDataValidationCollection as $key => $value) { + $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); + if ($key != $newReference) { + $pSheet->setDataValidation( $newReference, $value ); + $pSheet->setDataValidation( $key, null ); + } + } + + + // Update worksheet: merge cells + $aMergeCells = $pSheet->getMergeCells(); + $aNewMergeCells = array(); // the new array of all merge cells + foreach ($aMergeCells as $key => &$value) { + $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); + $aNewMergeCells[$newReference] = $newReference; + } + $pSheet->setMergeCells($aNewMergeCells); // replace the merge cells array + + + // Update worksheet: protected cells + $aProtectedCells = array_reverse($pSheet->getProtectedCells(), true); + foreach ($aProtectedCells as $key => $value) { + $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); + if ($key != $newReference) { + $pSheet->protectCells( $newReference, $value, true ); + $pSheet->unprotectCells( $key ); + } + } + + + // Update worksheet: autofilter + $autoFilter = $pSheet->getAutoFilter(); + $autoFilterRange = $autoFilter->getRange(); + if (!empty($autoFilterRange)) { + if ($pNumCols != 0) { + $autoFilterColumns = array_keys($autoFilter->getColumns()); + if (count($autoFilterColumns) > 0) { + list($column,$row) = sscanf($pBefore,'%[A-Z]%d'); + $columnIndex = PHPExcel_Cell::columnIndexFromString($column); + list($rangeStart,$rangeEnd) = PHPExcel_Cell::rangeBoundaries($autoFilterRange); + if ($columnIndex <= $rangeEnd[0]) { + if ($pNumCols < 0) { + // If we're actually deleting any columns that fall within the autofilter range, + // then we delete any rules for those columns + $deleteColumn = $columnIndex + $pNumCols - 1; + $deleteCount = abs($pNumCols); + for ($i = 1; $i <= $deleteCount; ++$i) { + if (in_array(PHPExcel_Cell::stringFromColumnIndex($deleteColumn),$autoFilterColumns)) { + $autoFilter->clearColumn(PHPExcel_Cell::stringFromColumnIndex($deleteColumn)); + } + ++$deleteColumn; + } + } + $startCol = ($columnIndex > $rangeStart[0]) ? $columnIndex : $rangeStart[0]; + + // Shuffle columns in autofilter range + if ($pNumCols > 0) { + // For insert, we shuffle from end to beginning to avoid overwriting + $startColID = PHPExcel_Cell::stringFromColumnIndex($startCol-1); + $toColID = PHPExcel_Cell::stringFromColumnIndex($startCol+$pNumCols-1); + $endColID = PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0]); + + $startColRef = $startCol; + $endColRef = $rangeEnd[0]; + $toColRef = $rangeEnd[0]+$pNumCols; + + do { + $autoFilter->shiftColumn(PHPExcel_Cell::stringFromColumnIndex($endColRef-1),PHPExcel_Cell::stringFromColumnIndex($toColRef-1)); + --$endColRef; + --$toColRef; + } while ($startColRef <= $endColRef); + } else { + // For delete, we shuffle from beginning to end to avoid overwriting + $startColID = PHPExcel_Cell::stringFromColumnIndex($startCol-1); + $toColID = PHPExcel_Cell::stringFromColumnIndex($startCol+$pNumCols-1); + $endColID = PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0]); + do { + $autoFilter->shiftColumn($startColID,$toColID); + ++$startColID; + ++$toColID; + } while ($startColID != $endColID); + } + } + } + } + $pSheet->setAutoFilter( $this->updateCellReference($autoFilterRange, $pBefore, $pNumCols, $pNumRows) ); + } + + + // Update worksheet: freeze pane + if ($pSheet->getFreezePane() != '') { + $pSheet->freezePane( $this->updateCellReference($pSheet->getFreezePane(), $pBefore, $pNumCols, $pNumRows) ); + } + + + // Page setup + if ($pSheet->getPageSetup()->isPrintAreaSet()) { + $pSheet->getPageSetup()->setPrintArea( $this->updateCellReference($pSheet->getPageSetup()->getPrintArea(), $pBefore, $pNumCols, $pNumRows) ); + } + + + // Update worksheet: drawings + $aDrawings = $pSheet->getDrawingCollection(); + foreach ($aDrawings as $objDrawing) { + $newReference = $this->updateCellReference($objDrawing->getCoordinates(), $pBefore, $pNumCols, $pNumRows); + if ($objDrawing->getCoordinates() != $newReference) { + $objDrawing->setCoordinates($newReference); + } + } + + + // Update workbook: named ranges + if (count($pSheet->getParent()->getNamedRanges()) > 0) { + foreach ($pSheet->getParent()->getNamedRanges() as $namedRange) { + if ($namedRange->getWorksheet()->getHashCode() == $pSheet->getHashCode()) { + $namedRange->setRange( + $this->updateCellReference($namedRange->getRange(), $pBefore, $pNumCols, $pNumRows) + ); + } + } + } + + // Garbage collect + $pSheet->garbageCollect(); + } + + /** + * Update references within formulas + * + * @param string $pFormula Formula to update + * @param int $pBefore Insert before this one + * @param int $pNumCols Number of columns to insert + * @param int $pNumRows Number of rows to insert + * @return string Updated formula + * @throws Exception + */ + public function updateFormulaReferences($pFormula = '', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0, $sheetName = '') { + // Update cell references in the formula + $formulaBlocks = explode('"',$pFormula); + $i = false; + foreach($formulaBlocks as &$formulaBlock) { + // Ignore blocks that were enclosed in quotes (alternating entries in the $formulaBlocks array after the explode) + if ($i = !$i) { + $adjustCount = 0; + $newCellTokens = $cellTokens = array(); + // Search for row ranges (e.g. 'Sheet1'!3:5 or 3:5) with or without $ absolutes (e.g. $3:5) + $matchCount = preg_match_all('/'.self::REFHELPER_REGEXP_ROWRANGE.'/i', ' '.$formulaBlock.' ', $matches, PREG_SET_ORDER); + if ($matchCount > 0) { + foreach($matches as $match) { + $fromString = ($match[2] > '') ? $match[2].'!' : ''; + $fromString .= $match[3].':'.$match[4]; + $modified3 = substr($this->updateCellReference('$A'.$match[3],$pBefore,$pNumCols,$pNumRows),2); + $modified4 = substr($this->updateCellReference('$A'.$match[4],$pBefore,$pNumCols,$pNumRows),2); + + if ($match[3].':'.$match[4] !== $modified3.':'.$modified4) { + if (($match[2] == '') || (trim($match[2],"'") == $sheetName)) { + $toString = ($match[2] > '') ? $match[2].'!' : ''; + $toString .= $modified3.':'.$modified4; + // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more + $column = 100000; + $row = 10000000+trim($match[3],'$'); + $cellIndex = $column.$row; + + $newCellTokens[$cellIndex] = preg_quote($toString); + $cellTokens[$cellIndex] = '/(?<!\d)'.preg_quote($fromString).'(?!\d)/i'; + ++$adjustCount; + } + } + } + } + // Search for column ranges (e.g. 'Sheet1'!C:E or C:E) with or without $ absolutes (e.g. $C:E) + $matchCount = preg_match_all('/'.self::REFHELPER_REGEXP_COLRANGE.'/i', ' '.$formulaBlock.' ', $matches, PREG_SET_ORDER); + if ($matchCount > 0) { + foreach($matches as $match) { + $fromString = ($match[2] > '') ? $match[2].'!' : ''; + $fromString .= $match[3].':'.$match[4]; + $modified3 = substr($this->updateCellReference($match[3].'$1',$pBefore,$pNumCols,$pNumRows),0,-2); + $modified4 = substr($this->updateCellReference($match[4].'$1',$pBefore,$pNumCols,$pNumRows),0,-2); + + if ($match[3].':'.$match[4] !== $modified3.':'.$modified4) { + if (($match[2] == '') || (trim($match[2],"'") == $sheetName)) { + $toString = ($match[2] > '') ? $match[2].'!' : ''; + $toString .= $modified3.':'.$modified4; + // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more + $column = PHPExcel_Cell::columnIndexFromString(trim($match[3],'$')) + 100000; + $row = 10000000; + $cellIndex = $column.$row; + + $newCellTokens[$cellIndex] = preg_quote($toString); + $cellTokens[$cellIndex] = '/(?<![A-Z])'.preg_quote($fromString).'(?![A-Z])/i'; + ++$adjustCount; + } + } + } + } + // Search for cell ranges (e.g. 'Sheet1'!A3:C5 or A3:C5) with or without $ absolutes (e.g. $A1:C$5) + $matchCount = preg_match_all('/'.self::REFHELPER_REGEXP_CELLRANGE.'/i', ' '.$formulaBlock.' ', $matches, PREG_SET_ORDER); + if ($matchCount > 0) { + foreach($matches as $match) { + $fromString = ($match[2] > '') ? $match[2].'!' : ''; + $fromString .= $match[3].':'.$match[4]; + $modified3 = $this->updateCellReference($match[3],$pBefore,$pNumCols,$pNumRows); + $modified4 = $this->updateCellReference($match[4],$pBefore,$pNumCols,$pNumRows); + + if ($match[3].$match[4] !== $modified3.$modified4) { + if (($match[2] == '') || (trim($match[2],"'") == $sheetName)) { + $toString = ($match[2] > '') ? $match[2].'!' : ''; + $toString .= $modified3.':'.$modified4; + list($column,$row) = PHPExcel_Cell::coordinateFromString($match[3]); + // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more + $column = PHPExcel_Cell::columnIndexFromString(trim($column,'$')) + 100000; + $row = trim($row,'$') + 10000000; + $cellIndex = $column.$row; + + $newCellTokens[$cellIndex] = preg_quote($toString); + $cellTokens[$cellIndex] = '/(?<![A-Z])'.preg_quote($fromString).'(?!\d)/i'; + ++$adjustCount; + } + } + } + } + // Search for cell references (e.g. 'Sheet1'!A3 or C5) with or without $ absolutes (e.g. $A1 or C$5) + $matchCount = preg_match_all('/'.self::REFHELPER_REGEXP_CELLREF.'/i', ' '.$formulaBlock.' ', $matches, PREG_SET_ORDER); + if ($matchCount > 0) { + foreach($matches as $match) { + $fromString = ($match[2] > '') ? $match[2].'!' : ''; + $fromString .= $match[3]; + $modified3 = $this->updateCellReference($match[3],$pBefore,$pNumCols,$pNumRows); + + if ($match[3] !== $modified3) { + if (($match[2] == '') || (trim($match[2],"'") == $sheetName)) { + $toString = ($match[2] > '') ? $match[2].'!' : ''; + $toString .= $modified3; + list($column,$row) = PHPExcel_Cell::coordinateFromString($match[3]); + // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more + $column = PHPExcel_Cell::columnIndexFromString(trim($column,'$')) + 100000; + $row = trim($row,'$') + 10000000; + $cellIndex = $column.$row; + + $newCellTokens[$cellIndex] = preg_quote($toString); + $cellTokens[$cellIndex] = '/(?<![A-Z])'.preg_quote($fromString).'(?!\d)/i'; + ++$adjustCount; + } + } + } + } + if ($adjustCount > 0) { + krsort($cellTokens); + krsort($newCellTokens); + // Update cell references in the formula + $formulaBlock = str_replace('\\','',preg_replace($cellTokens,$newCellTokens,$formulaBlock)); + } + } + } + unset($formulaBlock); + + // Then rebuild the formula string + return implode('"',$formulaBlocks); + } + + /** + * Update cell reference + * + * @param string $pCellRange Cell range + * @param int $pBefore Insert before this one + * @param int $pNumCols Number of columns to increment + * @param int $pNumRows Number of rows to increment + * @return string Updated cell range + * @throws Exception + */ + public function updateCellReference($pCellRange = 'A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0) { + // Is it in another worksheet? Will not have to update anything. + if (strpos($pCellRange, "!") !== false) { + return $pCellRange; + // Is it a range or a single cell? + } elseif (strpos($pCellRange, ':') === false && strpos($pCellRange, ',') === false) { + // Single cell + return $this->_updateSingleCellReference($pCellRange, $pBefore, $pNumCols, $pNumRows); + } elseif (strpos($pCellRange, ':') !== false || strpos($pCellRange, ',') !== false) { + // Range + return $this->_updateCellRange($pCellRange, $pBefore, $pNumCols, $pNumRows); + } else { + // Return original + return $pCellRange; + } + } + + /** + * Update named formulas (i.e. containing worksheet references / named ranges) + * + * @param PHPExcel $pPhpExcel Object to update + * @param string $oldName Old name (name to replace) + * @param string $newName New name + */ + public function updateNamedFormulas(PHPExcel $pPhpExcel, $oldName = '', $newName = '') { + if ($oldName == '') { + return; + } + + foreach ($pPhpExcel->getWorksheetIterator() as $sheet) { + foreach ($sheet->getCellCollection(false) as $cellID) { + $cell = $sheet->getCell($cellID); + if (($cell !== NULL) && ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA)) { + $formula = $cell->getValue(); + if (strpos($formula, $oldName) !== false) { + $formula = str_replace("'" . $oldName . "'!", "'" . $newName . "'!", $formula); + $formula = str_replace($oldName . "!", $newName . "!", $formula); + $cell->setValueExplicit($formula, PHPExcel_Cell_DataType::TYPE_FORMULA); + } + } + } + } + } + + /** + * Update cell range + * + * @param string $pCellRange Cell range (e.g. 'B2:D4', 'B:C' or '2:3') + * @param int $pBefore Insert before this one + * @param int $pNumCols Number of columns to increment + * @param int $pNumRows Number of rows to increment + * @return string Updated cell range + * @throws Exception + */ + private function _updateCellRange($pCellRange = 'A1:A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0) { + if (strpos($pCellRange,':') !== false || strpos($pCellRange, ',') !== false) { + // Update range + $range = PHPExcel_Cell::splitRange($pCellRange); + $ic = count($range); + for ($i = 0; $i < $ic; ++$i) { + $jc = count($range[$i]); + for ($j = 0; $j < $jc; ++$j) { + if (ctype_alpha($range[$i][$j])) { + $r = PHPExcel_Cell::coordinateFromString($this->_updateSingleCellReference($range[$i][$j].'1', $pBefore, $pNumCols, $pNumRows)); + $range[$i][$j] = $r[0]; + } elseif(ctype_digit($range[$i][$j])) { + $r = PHPExcel_Cell::coordinateFromString($this->_updateSingleCellReference('A'.$range[$i][$j], $pBefore, $pNumCols, $pNumRows)); + $range[$i][$j] = $r[1]; + } else { + $range[$i][$j] = $this->_updateSingleCellReference($range[$i][$j], $pBefore, $pNumCols, $pNumRows); + } + } + } + + // Recreate range string + return PHPExcel_Cell::buildRange($range); + } else { + throw new Exception("Only cell ranges may be passed to this method."); + } + } + + /** + * Update single cell reference + * + * @param string $pCellReference Single cell reference + * @param int $pBefore Insert before this one + * @param int $pNumCols Number of columns to increment + * @param int $pNumRows Number of rows to increment + * @return string Updated cell reference + * @throws Exception + */ + private function _updateSingleCellReference($pCellReference = 'A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0) { + if (strpos($pCellReference, ':') === false && strpos($pCellReference, ',') === false) { + // Get coordinates of $pBefore + list($beforeColumn, $beforeRow) = PHPExcel_Cell::coordinateFromString( $pBefore ); + + // Get coordinates of $pCellReference + list($newColumn, $newRow) = PHPExcel_Cell::coordinateFromString( $pCellReference ); + + // Verify which parts should be updated + $updateColumn = (($newColumn{0} != '$') && ($beforeColumn{0} != '$') && + PHPExcel_Cell::columnIndexFromString($newColumn) >= PHPExcel_Cell::columnIndexFromString($beforeColumn)); + + $updateRow = (($newRow{0} != '$') && ($beforeRow{0} != '$') && + $newRow >= $beforeRow); + + // Create new column reference + if ($updateColumn) { + $newColumn = PHPExcel_Cell::stringFromColumnIndex( PHPExcel_Cell::columnIndexFromString($newColumn) - 1 + $pNumCols ); + } + + // Create new row reference + if ($updateRow) { + $newRow = $newRow + $pNumRows; + } + + // Return new reference + return $newColumn . $newRow; + } else { + throw new Exception("Only single cell references may be passed to this method."); + } + } + + /** + * __clone implementation. Cloning should not be allowed in a Singleton! + * + * @throws Exception + */ + public final function __clone() { + throw new Exception("Cloning a Singleton is not allowed!"); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/RichText.php b/plugins/excel_reader/Classes/PHPExcel/RichText.php new file mode 100755 index 0000000..17af169 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/RichText.php @@ -0,0 +1,196 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_RichText + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_RichText + * + * @category PHPExcel + * @package PHPExcel_RichText + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_RichText implements PHPExcel_IComparable +{ + /** + * Rich text elements + * + * @var PHPExcel_RichText_ITextElement[] + */ + private $_richTextElements; + + /** + * Create a new PHPExcel_RichText instance + * + * @param PHPExcel_Cell $pParent + * @throws Exception + */ + public function __construct(PHPExcel_Cell $pCell = null) + { + // Initialise variables + $this->_richTextElements = array(); + + // Rich-Text string attached to cell? + if ($pCell !== NULL) { + // Add cell text and style + if ($pCell->getValue() != "") { + $objRun = new PHPExcel_RichText_Run($pCell->getValue()); + $objRun->setFont(clone $pCell->getParent()->getStyle($pCell->getCoordinate())->getFont()); + $this->addText($objRun); + } + + // Set parent value + $pCell->setValueExplicit($this, PHPExcel_Cell_DataType::TYPE_STRING); + } + } + + /** + * Add text + * + * @param PHPExcel_RichText_ITextElement $pText Rich text element + * @throws Exception + * @return PHPExcel_RichText + */ + public function addText(PHPExcel_RichText_ITextElement $pText = null) + { + $this->_richTextElements[] = $pText; + return $this; + } + + /** + * Create text + * + * @param string $pText Text + * @return PHPExcel_RichText_TextElement + * @throws Exception + */ + public function createText($pText = '') + { + $objText = new PHPExcel_RichText_TextElement($pText); + $this->addText($objText); + return $objText; + } + + /** + * Create text run + * + * @param string $pText Text + * @return PHPExcel_RichText_Run + * @throws Exception + */ + public function createTextRun($pText = '') + { + $objText = new PHPExcel_RichText_Run($pText); + $this->addText($objText); + return $objText; + } + + /** + * Get plain text + * + * @return string + */ + public function getPlainText() + { + // Return value + $returnValue = ''; + + // Loop through all PHPExcel_RichText_ITextElement + foreach ($this->_richTextElements as $text) { + $returnValue .= $text->getText(); + } + + // Return + return $returnValue; + } + + /** + * Convert to string + * + * @return string + */ + public function __toString() { + return $this->getPlainText(); + } + + /** + * Get Rich Text elements + * + * @return PHPExcel_RichText_ITextElement[] + */ + public function getRichTextElements() + { + return $this->_richTextElements; + } + + /** + * Set Rich Text elements + * + * @param PHPExcel_RichText_ITextElement[] $pElements Array of elements + * @throws Exception + * @return PHPExcel_RichText + */ + public function setRichTextElements($pElements = null) + { + if (is_array($pElements)) { + $this->_richTextElements = $pElements; + } else { + throw new Exception("Invalid PHPExcel_RichText_ITextElement[] array passed."); + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + $hashElements = ''; + foreach ($this->_richTextElements as $element) { + $hashElements .= $element->getHashCode(); + } + + return md5( + $hashElements + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/RichText/ITextElement.php b/plugins/excel_reader/Classes/PHPExcel/RichText/ITextElement.php new file mode 100755 index 0000000..4c65863 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/RichText/ITextElement.php @@ -0,0 +1,64 @@ +<?php +/** + * PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_RichText + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_RichText_ITextElement + * + * @category PHPExcel + * @package PHPExcel_RichText + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +interface PHPExcel_RichText_ITextElement +{ + /** + * Get text + * + * @return string Text + */ + public function getText(); + + /** + * Set text + * + * @param $pText string Text + * @return PHPExcel_RichText_ITextElement + */ + public function setText($pText = ''); + + /** + * Get font + * + * @return PHPExcel_Style_Font + */ + public function getFont(); + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode(); +} diff --git a/plugins/excel_reader/Classes/PHPExcel/RichText/Run.php b/plugins/excel_reader/Classes/PHPExcel/RichText/Run.php new file mode 100755 index 0000000..9e33786 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/RichText/Run.php @@ -0,0 +1,102 @@ +<?php +/** + * PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_RichText + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_RichText_Run + * + * @category PHPExcel + * @package PHPExcel_RichText + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_RichText_Run extends PHPExcel_RichText_TextElement implements PHPExcel_RichText_ITextElement +{ + /** + * Font + * + * @var PHPExcel_Style_Font + */ + private $_font; + + /** + * Create a new PHPExcel_RichText_Run instance + * + * @param string $pText Text + */ + public function __construct($pText = '') + { + // Initialise variables + $this->setText($pText); + $this->_font = new PHPExcel_Style_Font(); + } + + /** + * Get font + * + * @return PHPExcel_Style_Font + */ + public function getFont() { + return $this->_font; + } + + /** + * Set font + * + * @param PHPExcel_Style_Font $pFont Font + * @throws Exception + * @return PHPExcel_RichText_ITextElement + */ + public function setFont(PHPExcel_Style_Font $pFont = null) { + $this->_font = $pFont; + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->getText() + . $this->_font->getHashCode() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/RichText/TextElement.php b/plugins/excel_reader/Classes/PHPExcel/RichText/TextElement.php new file mode 100755 index 0000000..5b9edd0 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/RichText/TextElement.php @@ -0,0 +1,108 @@ +<?php +/** + * PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_RichText + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_RichText_TextElement + * + * @category PHPExcel + * @package PHPExcel_RichText + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_RichText_TextElement implements PHPExcel_RichText_ITextElement +{ + /** + * Text + * + * @var string + */ + private $_text; + + /** + * Create a new PHPExcel_RichText_TextElement instance + * + * @param string $pText Text + */ + public function __construct($pText = '') + { + // Initialise variables + $this->_text = $pText; + } + + /** + * Get text + * + * @return string Text + */ + public function getText() { + return $this->_text; + } + + /** + * Set text + * + * @param $pText string Text + * @return PHPExcel_RichText_ITextElement + */ + public function setText($pText = '') { + $this->_text = $pText; + return $this; + } + + /** + * Get font + * + * @return PHPExcel_Style_Font + */ + public function getFont() { + return null; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_text + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Settings.php b/plugins/excel_reader/Classes/PHPExcel/Settings.php new file mode 100755 index 0000000..6659b90 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Settings.php @@ -0,0 +1,332 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Settings + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** PHPExcel root directory */ +if (!defined('PHPEXCEL_ROOT')) { + /** + * @ignore + */ + define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../'); + require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); +} + + +class PHPExcel_Settings +{ + /** constants */ + /** Available Zip library classes */ + const PCLZIP = 'PHPExcel_Shared_ZipArchive'; + const ZIPARCHIVE = 'ZipArchive'; + + /** Optional Chart Rendering libraries */ + const CHART_RENDERER_JPGRAPH = 'jpgraph'; + + /** Optional PDF Rendering libraries */ + const PDF_RENDERER_TCPDF = 'tcPDF'; + const PDF_RENDERER_DOMPDF = 'DomPDF'; + const PDF_RENDERER_MPDF = 'mPDF'; + + + private static $_chartRenderers = array( + self::CHART_RENDERER_JPGRAPH, + ); + + private static $_pdfRenderers = array( + self::PDF_RENDERER_TCPDF, + self::PDF_RENDERER_DOMPDF, + self::PDF_RENDERER_MPDF, + ); + + + /** + * Name of the class used for Zip file management + * e.g. + * ZipArchive + * + * @var string + */ + private static $_zipClass = self::ZIPARCHIVE; + + + /** + * Name of the external Library used for rendering charts + * e.g. + * jpgraph + * + * @var string + */ + private static $_chartRendererName = NULL; + + /** + * Directory Path to the external Library used for rendering charts + * + * @var string + */ + private static $_chartRendererPath = NULL; + + + /** + * Name of the external Library used for rendering PDF files + * e.g. + * mPDF + * + * @var string + */ + private static $_pdfRendererName = NULL; + + /** + * Directory Path to the external Library used for rendering PDF files + * + * @var string + */ + private static $_pdfRendererPath = NULL; + + + /** + * Set the Zip handler Class that PHPExcel should use for Zip file management (PCLZip or ZipArchive) + * + * @param string $zipClass The Zip handler class that PHPExcel should use for Zip file management + * e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive + * @return boolean Success or failure + */ + public static function setZipClass($zipClass) { + if (($zipClass === self::PCLZIP) || + ($zipClass === self::ZIPARCHIVE)) { + self::$_zipClass = $zipClass; + return TRUE; + } + return FALSE; + } // function setZipClass() + + + /** + * Return the name of the Zip handler Class that PHPExcel is configured to use (PCLZip or ZipArchive) + * for Zip file management + * + * @return string Name of the Zip handler Class that PHPExcel is configured to use + * for Zip file management + * e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive + */ + public static function getZipClass() { + return self::$_zipClass; + } // function getZipClass() + + + /** + * Return the name of the method that is currently configured for cell cacheing + * + * @return string Name of the cacheing method + */ + public static function getCacheStorageMethod() { + return PHPExcel_CachedObjectStorageFactory::getCacheStorageMethod(); + } // function getCacheStorageMethod() + + + /** + * Return the name of the class that is currently being used for cell cacheing + * + * @return string Name of the class currently being used for cacheing + */ + public static function getCacheStorageClass() { + return PHPExcel_CachedObjectStorageFactory::getCacheStorageClass(); + } // function getCacheStorageClass() + + + /** + * Set the method that should be used for cell cacheing + * + * @param string $method Name of the cacheing method + * @param array $arguments Optional configuration arguments for the cacheing method + * @return boolean Success or failure + */ + public static function setCacheStorageMethod($method = PHPExcel_CachedObjectStorageFactory::cache_in_memory, + $arguments = array()) { + return PHPExcel_CachedObjectStorageFactory::initialize($method, $arguments); + } // function setCacheStorageMethod() + + + /** + * Set the locale code to use for formula translations and any special formatting + * + * @param string $locale The locale code to use (e.g. "fr" or "pt_br" or "en_uk") + * @return boolean Success or failure + */ + public static function setLocale($locale='en_us') { + return PHPExcel_Calculation::getInstance()->setLocale($locale); + } // function setLocale() + + + /** + * Set details of the external library that PHPExcel should use for rendering charts + * + * @param string $libraryName Internal reference name of the library + * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH + * @param string $libraryBaseDir Directory path to the library's base folder + * @return boolean Success or failure + */ + public static function setChartRenderer($libraryName, $libraryBaseDir) { + if (!self::setChartRendererName($libraryName)) + return FALSE; + return self::setChartRendererPath($libraryBaseDir); + } // function setChartRenderer() + + + /** + * Identify to PHPExcel the external library to use for rendering charts + * + * @param string $libraryName Internal reference name of the library + * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH + * @return boolean Success or failure + */ + public static function setChartRendererName($libraryName) { + if (!in_array($libraryName,self::$_chartRenderers)) { + return FALSE; + } + + self::$_chartRendererName = $libraryName; + + return TRUE; + } // function setChartRendererName() + + + /** + * Tell PHPExcel where to find the external library to use for rendering charts + * + * @param string $libraryBaseDir Directory path to the library's base folder + * @return boolean Success or failure + */ + public static function setChartRendererPath($libraryBaseDir) { + if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) { + return FALSE; + } + self::$_chartRendererPath = $libraryBaseDir; + + return TRUE; + } // function setChartRendererPath() + + + /** + * Return the Chart Rendering Library that PHPExcel is currently configured to use (e.g. jpgraph) + * + * @return string|NULL Internal reference name of the Chart Rendering Library that PHPExcel is + * currently configured to use + * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH + */ + public static function getChartRendererName() { + return self::$_chartRendererName; + } // function getChartRendererName() + + + /** + * Return the directory path to the Chart Rendering Library that PHPExcel is currently configured to use + * + * @return string|NULL Directory Path to the Chart Rendering Library that PHPExcel is + * currently configured to use + */ + public static function getChartRendererPath() { + return self::$_chartRendererPath; + } // function getChartRendererPath() + + + /** + * Set details of the external library that PHPExcel should use for rendering PDF files + * + * @param string $libraryName Internal reference name of the library + * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, + * PHPExcel_Settings::PDF_RENDERER_DOMPDF + * or PHPExcel_Settings::PDF_RENDERER_MPDF + * @param string $libraryBaseDir Directory path to the library's base folder + * @return boolean Success or failure + */ + public static function setPdfRenderer($libraryName, $libraryBaseDir) { + if (!self::setPdfRendererName($libraryName)) + return FALSE; + return self::setPdfRendererPath($libraryBaseDir); + } // function setPdfRenderer() + + + /** + * Identify to PHPExcel the external library to use for rendering PDF files + * + * @param string $libraryName Internal reference name of the library + * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, + * PHPExcel_Settings::PDF_RENDERER_DOMPDF + * or PHPExcel_Settings::PDF_RENDERER_MPDF + * @return boolean Success or failure + */ + public static function setPdfRendererName($libraryName) { + if (!in_array($libraryName,self::$_pdfRenderers)) { + return FALSE; + } + + self::$_pdfRendererName = $libraryName; + + return TRUE; + } // function setPdfRendererName() + + + /** + * Tell PHPExcel where to find the external library to use for rendering PDF files + * + * @param string $libraryBaseDir Directory path to the library's base folder + * @return boolean Success or failure + */ + public static function setPdfRendererPath($libraryBaseDir) { + if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) { + return FALSE; + } + self::$_pdfRendererPath = $libraryBaseDir; + + return TRUE; + } // function setPdfRendererPath() + + + /** + * Return the PDF Rendering Library that PHPExcel is currently configured to use (e.g. dompdf) + * + * @return string|NULL Internal reference name of the PDF Rendering Library that PHPExcel is + * currently configured to use + * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, + * PHPExcel_Settings::PDF_RENDERER_DOMPDF + * or PHPExcel_Settings::PDF_RENDERER_MPDF + */ + public static function getPdfRendererName() { + return self::$_pdfRendererName; + } // function getPdfRendererName() + + + /** + * Return the directory path to the PDF Rendering Library that PHPExcel is currently configured to use + * + * @return string|NULL Directory Path to the PDF Rendering Library that PHPExcel is + * currently configured to use + */ + public static function getPdfRendererPath() { + return self::$_pdfRendererPath; + } // function getPdfRendererPath() + +} \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/CodePage.php b/plugins/excel_reader/Classes/PHPExcel/Shared/CodePage.php new file mode 100755 index 0000000..5660e11 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/CodePage.php @@ -0,0 +1,101 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_CodePage + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_CodePage +{ + /** + * Convert Microsoft Code Page Identifier to Code Page Name which iconv + * and mbstring understands + * + * @param int $number Microsoft Code Page Indentifier + * @return string Code Page Name + * @throws Exception + */ + public static function NumberToName($codePage = '1252') + { + switch ($codePage) { + case 367: return 'ASCII'; break; // ASCII + case 437: return 'CP437'; break; // OEM US + case 720: throw new Exception('Code page 720 not supported.'); + break; // OEM Arabic + case 737: return 'CP737'; break; // OEM Greek + case 775: return 'CP775'; break; // OEM Baltic + case 850: return 'CP850'; break; // OEM Latin I + case 852: return 'CP852'; break; // OEM Latin II (Central European) + case 855: return 'CP855'; break; // OEM Cyrillic + case 857: return 'CP857'; break; // OEM Turkish + case 858: return 'CP858'; break; // OEM Multilingual Latin I with Euro + case 860: return 'CP860'; break; // OEM Portugese + case 861: return 'CP861'; break; // OEM Icelandic + case 862: return 'CP862'; break; // OEM Hebrew + case 863: return 'CP863'; break; // OEM Canadian (French) + case 864: return 'CP864'; break; // OEM Arabic + case 865: return 'CP865'; break; // OEM Nordic + case 866: return 'CP866'; break; // OEM Cyrillic (Russian) + case 869: return 'CP869'; break; // OEM Greek (Modern) + case 874: return 'CP874'; break; // ANSI Thai + case 932: return 'CP932'; break; // ANSI Japanese Shift-JIS + case 936: return 'CP936'; break; // ANSI Chinese Simplified GBK + case 949: return 'CP949'; break; // ANSI Korean (Wansung) + case 950: return 'CP950'; break; // ANSI Chinese Traditional BIG5 + case 1200: return 'UTF-16LE'; break; // UTF-16 (BIFF8) + case 1250: return 'CP1250'; break; // ANSI Latin II (Central European) + case 1251: return 'CP1251'; break; // ANSI Cyrillic + case 0: // CodePage is not always correctly set when the xls file was saved by Apple's Numbers program + case 1252: return 'CP1252'; break; // ANSI Latin I (BIFF4-BIFF7) + case 1253: return 'CP1253'; break; // ANSI Greek + case 1254: return 'CP1254'; break; // ANSI Turkish + case 1255: return 'CP1255'; break; // ANSI Hebrew + case 1256: return 'CP1256'; break; // ANSI Arabic + case 1257: return 'CP1257'; break; // ANSI Baltic + case 1258: return 'CP1258'; break; // ANSI Vietnamese + case 1361: return 'CP1361'; break; // ANSI Korean (Johab) + case 10000: return 'MAC'; break; // Apple Roman + case 10006: return 'MACGREEK'; break; // Macintosh Greek + case 10007: return 'MACCYRILLIC'; break; // Macintosh Cyrillic + case 10029: return 'MACCENTRALEUROPE'; break; // Macintosh Central Europe + case 10079: return 'MACICELAND'; break; // Macintosh Icelandic + case 10081: return 'MACTURKISH'; break; // Macintosh Turkish + case 32768: return 'MAC'; break; // Apple Roman + case 32769: throw new Exception('Code page 32769 not supported.'); + break; // ANSI Latin I (BIFF2-BIFF3) + case 65000: return 'UTF-7'; break; // Unicode (UTF-7) + case 65001: return 'UTF-8'; break; // Unicode (UTF-8) + } + + throw new Exception('Unknown codepage: ' . $codePage); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Date.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Date.php new file mode 100755 index 0000000..2c1ab00 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Date.php @@ -0,0 +1,356 @@ +<?php + +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_Date + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Date +{ + /** constants */ + const CALENDAR_WINDOWS_1900 = 1900; // Base date of 1st Jan 1900 = 1.0 + const CALENDAR_MAC_1904 = 1904; // Base date of 2nd Jan 1904 = 1.0 + + /* + * Names of the months of the year, indexed by shortname + * Planned usage for locale settings + * + * @public + * @var string[] + */ + public static $_monthNames = array( 'Jan' => 'January', + 'Feb' => 'February', + 'Mar' => 'March', + 'Apr' => 'April', + 'May' => 'May', + 'Jun' => 'June', + 'Jul' => 'July', + 'Aug' => 'August', + 'Sep' => 'September', + 'Oct' => 'October', + 'Nov' => 'November', + 'Dec' => 'December' + ); + + /* + * Base calendar year to use for calculations + * + * @private + * @var int + */ + private static $ExcelBaseDate = self::CALENDAR_WINDOWS_1900; + + /* + * Object type for PHP Date/Time values + * + * @private + * @var string + */ + public static $dateTimeObjectType = 'DateTime'; + + + /** + * Set the Excel calendar (Windows 1900 or Mac 1904) + * + * @param integer $baseDate Excel base date + * @return boolean Success or failure + */ + public static function setExcelCalendar($baseDate) { + if (($baseDate == self::CALENDAR_WINDOWS_1900) || + ($baseDate == self::CALENDAR_MAC_1904)) { + self::$ExcelBaseDate = $baseDate; + return TRUE; + } + return FALSE; + } // function setExcelCalendar() + + + /** + * Return the Excel calendar (Windows 1900 or Mac 1904) + * + * @return integer $baseDate Excel base date + */ + public static function getExcelCalendar() { + return self::$ExcelBaseDate; + } // function getExcelCalendar() + + + /** + * Convert a date from Excel to PHP + * + * @param long $dateValue Excel date/time value + * @return long PHP serialized date/time + */ + public static function ExcelToPHP($dateValue = 0) { + if (self::$ExcelBaseDate == self::CALENDAR_WINDOWS_1900) { + $myExcelBaseDate = 25569; + // Adjust for the spurious 29-Feb-1900 (Day 60) + if ($dateValue < 60) { + --$myExcelBaseDate; + } + } else { + $myExcelBaseDate = 24107; + } + + // Perform conversion + if ($dateValue >= 1) { + $utcDays = $dateValue - $myExcelBaseDate; + $returnValue = round($utcDays * 86400); + if (($returnValue <= PHP_INT_MAX) && ($returnValue >= -PHP_INT_MAX)) { + $returnValue = (integer) $returnValue; + } + } else { + $hours = round($dateValue * 24); + $mins = round($dateValue * 1440) - round($hours * 60); + $secs = round($dateValue * 86400) - round($hours * 3600) - round($mins * 60); + $returnValue = (integer) gmmktime($hours, $mins, $secs); + } + + // Return + return $returnValue; + } // function ExcelToPHP() + + + /** + * Convert a date from Excel to a PHP Date/Time object + * + * @param long $dateValue Excel date/time value + * @return long PHP date/time object + */ + public static function ExcelToPHPObject($dateValue = 0) { + $dateTime = self::ExcelToPHP($dateValue); + $days = floor($dateTime / 86400); + $time = round((($dateTime / 86400) - $days) * 86400); + $hours = round($time / 3600); + $minutes = round($time / 60) - ($hours * 60); + $seconds = round($time) - ($hours * 3600) - ($minutes * 60); + + $dateObj = date_create('1-Jan-1970+'.$days.' days'); + $dateObj->setTime($hours,$minutes,$seconds); + + return $dateObj; + } // function ExcelToPHPObject() + + + /** + * Convert a date from PHP to Excel + * + * @param mixed $dateValue PHP serialized date/time or date object + * @return mixed Excel date/time value + * or boolean FALSE on failure + */ + public static function PHPToExcel($dateValue = 0) { + $saveTimeZone = date_default_timezone_get(); + date_default_timezone_set('UTC'); + $retValue = FALSE; + if ((is_object($dateValue)) && ($dateValue instanceof self::$dateTimeObjectType)) { + $retValue = self::FormattedPHPToExcel( $dateValue->format('Y'), $dateValue->format('m'), $dateValue->format('d'), + $dateValue->format('H'), $dateValue->format('i'), $dateValue->format('s') + ); + } elseif (is_numeric($dateValue)) { + $retValue = self::FormattedPHPToExcel( date('Y',$dateValue), date('m',$dateValue), date('d',$dateValue), + date('H',$dateValue), date('i',$dateValue), date('s',$dateValue) + ); + } + date_default_timezone_set($saveTimeZone); + + return $retValue; + } // function PHPToExcel() + + + /** + * FormattedPHPToExcel + * + * @param long $year + * @param long $month + * @param long $day + * @param long $hours + * @param long $minutes + * @param long $seconds + * @return long Excel date/time value + */ + public static function FormattedPHPToExcel($year, $month, $day, $hours=0, $minutes=0, $seconds=0) { + if (self::$ExcelBaseDate == self::CALENDAR_WINDOWS_1900) { + // + // Fudge factor for the erroneous fact that the year 1900 is treated as a Leap Year in MS Excel + // This affects every date following 28th February 1900 + // + $excel1900isLeapYear = TRUE; + if (($year == 1900) && ($month <= 2)) { $excel1900isLeapYear = FALSE; } + $myExcelBaseDate = 2415020; + } else { + $myExcelBaseDate = 2416481; + $excel1900isLeapYear = FALSE; + } + + // Julian base date Adjustment + if ($month > 2) { + $month -= 3; + } else { + $month += 9; + --$year; + } + + // Calculate the Julian Date, then subtract the Excel base date (JD 2415020 = 31-Dec-1899 Giving Excel Date of 0) + $century = substr($year,0,2); + $decade = substr($year,2,2); + $excelDate = floor((146097 * $century) / 4) + floor((1461 * $decade) / 4) + floor((153 * $month + 2) / 5) + $day + 1721119 - $myExcelBaseDate + $excel1900isLeapYear; + + $excelTime = (($hours * 3600) + ($minutes * 60) + $seconds) / 86400; + + return (float) $excelDate + $excelTime; + } // function FormattedPHPToExcel() + + + /** + * Is a given cell a date/time? + * + * @param PHPExcel_Cell $pCell + * @return boolean + */ + public static function isDateTime(PHPExcel_Cell $pCell) { + return self::isDateTimeFormat( + $pCell->getParent()->getStyle( + $pCell->getCoordinate() + )->getNumberFormat() + ); + } // function isDateTime() + + + /** + * Is a given number format a date/time? + * + * @param PHPExcel_Style_NumberFormat $pFormat + * @return boolean + */ + public static function isDateTimeFormat(PHPExcel_Style_NumberFormat $pFormat) { + return self::isDateTimeFormatCode($pFormat->getFormatCode()); + } // function isDateTimeFormat() + + + private static $possibleDateFormatCharacters = 'eymdHs'; + + /** + * Is a given number format code a date/time? + * + * @param string $pFormatCode + * @return boolean + */ + public static function isDateTimeFormatCode($pFormatCode = '') { + // Switch on formatcode + switch ($pFormatCode) { + // General contains an epoch letter 'e', so we trap for it explicitly here + case PHPExcel_Style_NumberFormat::FORMAT_GENERAL: + return FALSE; + // Explicitly defined date formats + case PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYSLASH: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYMINUS: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_DMMINUS: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_MYMINUS: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME1: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME2: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME3: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME5: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME6: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME7: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME8: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX14: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX16: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX17: + case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX22: + return TRUE; + } + + // Typically number, currency or accounting (or occasionally fraction) formats + if ((substr($pFormatCode,0,1) == '_') || (substr($pFormatCode,0,2) == '0 ')) { + return FALSE; + } + // Try checking for any of the date formatting characters that don't appear within square braces + if (preg_match('/(^|\])[^\[]*['.self::$possibleDateFormatCharacters.']/i',$pFormatCode)) { + // We might also have a format mask containing quoted strings... + // we don't want to test for any of our characters within the quoted blocks + if (strpos($pFormatCode,'"') !== FALSE) { + $i = FALSE; + foreach(explode('"',$pFormatCode) as $subVal) { + // Only test in alternate array entries (the non-quoted blocks) + if (($i = !$i) && (preg_match('/(^|\])[^\[]*['.self::$possibleDateFormatCharacters.']/i',$subVal))) { + return TRUE; + } + } + return FALSE; + } + return TRUE; + } + + // No date... + return FALSE; + } // function isDateTimeFormatCode() + + + /** + * Convert a date/time string to Excel time + * + * @param string $dateValue Examples: '2009-12-31', '2009-12-31 15:59', '2009-12-31 15:59:10' + * @return float|FALSE Excel date/time serial value + */ + public static function stringToExcel($dateValue = '') { + if (strlen($dateValue) < 2) + return FALSE; + if (!preg_match('/^(\d{1,4}[ \.\/\-][A-Z]{3,9}([ \.\/\-]\d{1,4})?|[A-Z]{3,9}[ \.\/\-]\d{1,4}([ \.\/\-]\d{1,4})?|\d{1,4}[ \.\/\-]\d{1,4}([ \.\/\-]\d{1,4})?)( \d{1,2}:\d{1,2}(:\d{1,2})?)?$/iu', $dateValue)) + return FALSE; + + $dateValueNew = PHPExcel_Calculation_DateTime::DATEVALUE($dateValue); + + if ($dateValueNew === PHPExcel_Calculation_Functions::VALUE()) { + return FALSE; + } else { + if (strpos($dateValue, ':') !== FALSE) { + $timeValue = PHPExcel_Calculation_DateTime::TIMEVALUE($dateValue); + if ($timeValue === PHPExcel_Calculation_Functions::VALUE()) { + return FALSE; + } + $dateValueNew += $timeValue; + } + return $dateValueNew; + } + + + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Drawing.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Drawing.php new file mode 100755 index 0000000..9401000 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Drawing.php @@ -0,0 +1,272 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_Drawing + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Drawing +{ + /** + * Convert pixels to EMU + * + * @param int $pValue Value in pixels + * @return int Value in EMU + */ + public static function pixelsToEMU($pValue = 0) { + return round($pValue * 9525); + } + + /** + * Convert EMU to pixels + * + * @param int $pValue Value in EMU + * @return int Value in pixels + */ + public static function EMUToPixels($pValue = 0) { + if ($pValue != 0) { + return round($pValue / 9525); + } else { + return 0; + } + } + + /** + * Convert pixels to column width. Exact algorithm not known. + * By inspection of a real Excel file using Calibri 11, one finds 1000px ~ 142.85546875 + * This gives a conversion factor of 7. Also, we assume that pixels and font size are proportional. + * + * @param int $pValue Value in pixels + * @param PHPExcel_Style_Font $pDefaultFont Default font of the workbook + * @return int Value in cell dimension + */ + public static function pixelsToCellDimension($pValue = 0, PHPExcel_Style_Font $pDefaultFont) { + // Font name and size + $name = $pDefaultFont->getName(); + $size = $pDefaultFont->getSize(); + + if (isset(PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size])) { + // Exact width can be determined + $colWidth = $pValue + * PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size]['width'] + / PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size]['px']; + } else { + // We don't have data for this particular font and size, use approximation by + // extrapolating from Calibri 11 + $colWidth = $pValue * 11 + * PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['width'] + / PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['px'] / $size; + } + + return $colWidth; + } + + /** + * Convert column width from (intrinsic) Excel units to pixels + * + * @param float $pValue Value in cell dimension + * @param PHPExcel_Style_Font $pDefaultFont Default font of the workbook + * @return int Value in pixels + */ + public static function cellDimensionToPixels($pValue = 0, PHPExcel_Style_Font $pDefaultFont) { + // Font name and size + $name = $pDefaultFont->getName(); + $size = $pDefaultFont->getSize(); + + if (isset(PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size])) { + // Exact width can be determined + $colWidth = $pValue + * PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size]['px'] + / PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size]['width']; + + } else { + // We don't have data for this particular font and size, use approximation by + // extrapolating from Calibri 11 + $colWidth = $pValue * $size + * PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['px'] + / PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['width'] / 11; + } + + // Round pixels to closest integer + $colWidth = (int) round($colWidth); + + return $colWidth; + } + + /** + * Convert pixels to points + * + * @param int $pValue Value in pixels + * @return int Value in points + */ + public static function pixelsToPoints($pValue = 0) { + return $pValue * 0.67777777; + } + + /** + * Convert points to pixels + * + * @param int $pValue Value in points + * @return int Value in pixels + */ + public static function pointsToPixels($pValue = 0) { + if ($pValue != 0) { + return (int) ceil($pValue * 1.333333333); + } else { + return 0; + } + } + + /** + * Convert degrees to angle + * + * @param int $pValue Degrees + * @return int Angle + */ + public static function degreesToAngle($pValue = 0) { + return (int)round($pValue * 60000); + } + + /** + * Convert angle to degrees + * + * @param int $pValue Angle + * @return int Degrees + */ + public static function angleToDegrees($pValue = 0) { + if ($pValue != 0) { + return round($pValue / 60000); + } else { + return 0; + } + } + + /** + * Create a new image from file. By alexander at alexauto dot nl + * + * @link http://www.php.net/manual/en/function.imagecreatefromwbmp.php#86214 + * @param string $filename Path to Windows DIB (BMP) image + * @return resource + */ + public static function imagecreatefrombmp($p_sFile) + { + // Load the image into a string + $file = fopen($p_sFile,"rb"); + $read = fread($file,10); + while(!feof($file)&&($read<>"")) + $read .= fread($file,1024); + + $temp = unpack("H*",$read); + $hex = $temp[1]; + $header = substr($hex,0,108); + + // Process the header + // Structure: http://www.fastgraph.com/help/bmp_header_format.html + if (substr($header,0,4)=="424d") + { + // Cut it in parts of 2 bytes + $header_parts = str_split($header,2); + + // Get the width 4 bytes + $width = hexdec($header_parts[19].$header_parts[18]); + + // Get the height 4 bytes + $height = hexdec($header_parts[23].$header_parts[22]); + + // Unset the header params + unset($header_parts); + } + + // Define starting X and Y + $x = 0; + $y = 1; + + // Create newimage + $image = imagecreatetruecolor($width,$height); + + // Grab the body from the image + $body = substr($hex,108); + + // Calculate if padding at the end-line is needed + // Divided by two to keep overview. + // 1 byte = 2 HEX-chars + $body_size = (strlen($body)/2); + $header_size = ($width*$height); + + // Use end-line padding? Only when needed + $usePadding = ($body_size>($header_size*3)+4); + + // Using a for-loop with index-calculation instaid of str_split to avoid large memory consumption + // Calculate the next DWORD-position in the body + for ($i=0;$i<$body_size;$i+=3) + { + // Calculate line-ending and padding + if ($x>=$width) + { + // If padding needed, ignore image-padding + // Shift i to the ending of the current 32-bit-block + if ($usePadding) + $i += $width%4; + + // Reset horizontal position + $x = 0; + + // Raise the height-position (bottom-up) + $y++; + + // Reached the image-height? Break the for-loop + if ($y>$height) + break; + } + + // Calculation of the RGB-pixel (defined as BGR in image-data) + // Define $i_pos as absolute position in the body + $i_pos = $i*2; + $r = hexdec($body[$i_pos+4].$body[$i_pos+5]); + $g = hexdec($body[$i_pos+2].$body[$i_pos+3]); + $b = hexdec($body[$i_pos].$body[$i_pos+1]); + + // Calculate and draw the pixel + $color = imagecolorallocate($image,$r,$g,$b); + imagesetpixel($image,$x,$height-$y,$color); + + // Raise the horizontal position + $x++; + } + + // Unset the body / free the memory + unset($body); + + // Return image-object + return $image; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Escher.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher.php new file mode 100755 index 0000000..ecd8216 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher.php @@ -0,0 +1,91 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Escher + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Escher +{ + /** + * Drawing Group Container + * + * @var PHPExcel_Shared_Escher_DggContainer + */ + private $_dggContainer; + + /** + * Drawing Container + * + * @var PHPExcel_Shared_Escher_DgContainer + */ + private $_dgContainer; + + /** + * Get Drawing Group Container + * + * @return PHPExcel_Shared_Escher_DgContainer + */ + public function getDggContainer() + { + return $this->_dggContainer; + } + + /** + * Set Drawing Group Container + * + * @param PHPExcel_Shared_Escher_DggContainer $dggContainer + */ + public function setDggContainer($dggContainer) + { + return $this->_dggContainer = $dggContainer; + } + + /** + * Get Drawing Container + * + * @return PHPExcel_Shared_Escher_DgContainer + */ + public function getDgContainer() + { + return $this->_dgContainer; + } + + /** + * Set Drawing Container + * + * @param PHPExcel_Shared_Escher_DgContainer $dgContainer + */ + public function setDgContainer($dgContainer) + { + return $this->_dgContainer = $dgContainer; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer.php new file mode 100755 index 0000000..adbe429 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer.php @@ -0,0 +1,83 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Escher_DgContainer + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Escher_DgContainer +{ + /** + * Drawing index, 1-based. + * + * @var int + */ + private $_dgId; + + /** + * Last shape index in this drawing + * + * @var int + */ + private $_lastSpId; + + private $_spgrContainer = null; + + public function getDgId() + { + return $this->_dgId; + } + + public function setDgId($value) + { + $this->_dgId = $value; + } + + public function getLastSpId() + { + return $this->_lastSpId; + } + + public function setLastSpId($value) + { + $this->_lastSpId = $value; + } + + public function getSpgrContainer() + { + return $this->_spgrContainer; + } + + public function setSpgrContainer($spgrContainer) + { + return $this->_spgrContainer = $spgrContainer; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php new file mode 100755 index 0000000..ea0235e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php @@ -0,0 +1,109 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Escher_DgContainer_SpgrContainer + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Escher_DgContainer_SpgrContainer +{ + /** + * Parent Shape Group Container + * + * @var PHPExcel_Shared_Escher_DgContainer_SpgrContainer + */ + private $_parent; + + /** + * Shape Container collection + * + * @var array + */ + private $_children = array(); + + /** + * Set parent Shape Group Container + * + * @param PHPExcel_Shared_Escher_DgContainer_SpgrContainer $parent + */ + public function setParent($parent) + { + $this->_parent = $parent; + } + + /** + * Get the parent Shape Group Container if any + * + * @return PHPExcel_Shared_Escher_DgContainer_SpgrContainer|null + */ + public function getParent() + { + return $this->_parent; + } + + /** + * Add a child. This will be either spgrContainer or spContainer + * + * @param mixed $child + */ + public function addChild($child) + { + $this->_children[] = $child; + $child->setParent($this); + } + + /** + * Get collection of Shape Containers + */ + public function getChildren() + { + return $this->_children; + } + + /** + * Recursively get all spContainers within this spgrContainer + * + * @return PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer[] + */ + public function getAllSpContainers() + { + $allSpContainers = array(); + + foreach ($this->_children as $child) { + if ($child instanceof PHPExcel_Shared_Escher_DgContainer_SpgrContainer) { + $allSpContainers = array_merge($allSpContainers, $child->getAllSpContainers()); + } else { + $allSpContainers[] = $child; + } + } + + return $allSpContainers; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php new file mode 100755 index 0000000..cb4988c --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php @@ -0,0 +1,395 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer +{ + /** + * Parent Shape Group Container + * + * @var PHPExcel_Shared_Escher_DgContainer_SpgrContainer + */ + private $_parent; + + /** + * Is this a group shape? + * + * @var boolean + */ + private $_spgr = false; + + /** + * Shape type + * + * @var int + */ + private $_spType; + + /** + * Shape flag + * + * @var int + */ + private $_spFlag; + + /** + * Shape index (usually group shape has index 0, and the rest: 1,2,3...) + * + * @var boolean + */ + private $_spId; + + /** + * Array of options + * + * @var array + */ + private $_OPT; + + /** + * Cell coordinates of upper-left corner of shape, e.g. 'A1' + * + * @var string + */ + private $_startCoordinates; + + /** + * Horizontal offset of upper-left corner of shape measured in 1/1024 of column width + * + * @var int + */ + private $_startOffsetX; + + /** + * Vertical offset of upper-left corner of shape measured in 1/256 of row height + * + * @var int + */ + private $_startOffsetY; + + /** + * Cell coordinates of bottom-right corner of shape, e.g. 'B2' + * + * @var string + */ + private $_endCoordinates; + + /** + * Horizontal offset of bottom-right corner of shape measured in 1/1024 of column width + * + * @var int + */ + private $_endOffsetX; + + /** + * Vertical offset of bottom-right corner of shape measured in 1/256 of row height + * + * @var int + */ + private $_endOffsetY; + + /** + * Set parent Shape Group Container + * + * @param PHPExcel_Shared_Escher_DgContainer_SpgrContainer $parent + */ + public function setParent($parent) + { + $this->_parent = $parent; + } + + /** + * Get the parent Shape Group Container + * + * @return PHPExcel_Shared_Escher_DgContainer_SpgrContainer + */ + public function getParent() + { + return $this->_parent; + } + + /** + * Set whether this is a group shape + * + * @param boolean $value + */ + public function setSpgr($value = false) + { + $this->_spgr = $value; + } + + /** + * Get whether this is a group shape + * + * @return boolean + */ + public function getSpgr() + { + return $this->_spgr; + } + + /** + * Set the shape type + * + * @param int $value + */ + public function setSpType($value) + { + $this->_spType = $value; + } + + /** + * Get the shape type + * + * @return int + */ + public function getSpType() + { + return $this->_spType; + } + + /** + * Set the shape flag + * + * @param int $value + */ + public function setSpFlag($value) + { + $this->_spFlag = $value; + } + + /** + * Get the shape flag + * + * @return int + */ + public function getSpFlag() + { + return $this->_spFlag; + } + + /** + * Set the shape index + * + * @param int $value + */ + public function setSpId($value) + { + $this->_spId = $value; + } + + /** + * Get the shape index + * + * @return int + */ + public function getSpId() + { + return $this->_spId; + } + + /** + * Set an option for the Shape Group Container + * + * @param int $property The number specifies the option + * @param mixed $value + */ + public function setOPT($property, $value) + { + $this->_OPT[$property] = $value; + } + + /** + * Get an option for the Shape Group Container + * + * @param int $property The number specifies the option + * @return mixed + */ + public function getOPT($property) + { + if (isset($this->_OPT[$property])) { + return $this->_OPT[$property]; + } + return null; + } + + /** + * Get the collection of options + * + * @return array + */ + public function getOPTCollection() + { + return $this->_OPT; + } + + /** + * Set cell coordinates of upper-left corner of shape + * + * @param string $value + */ + public function setStartCoordinates($value = 'A1') + { + $this->_startCoordinates = $value; + } + + /** + * Get cell coordinates of upper-left corner of shape + * + * @return string + */ + public function getStartCoordinates() + { + return $this->_startCoordinates; + } + + /** + * Set offset in x-direction of upper-left corner of shape measured in 1/1024 of column width + * + * @param int $startOffsetX + */ + public function setStartOffsetX($startOffsetX = 0) + { + $this->_startOffsetX = $startOffsetX; + } + + /** + * Get offset in x-direction of upper-left corner of shape measured in 1/1024 of column width + * + * @return int + */ + public function getStartOffsetX() + { + return $this->_startOffsetX; + } + + /** + * Set offset in y-direction of upper-left corner of shape measured in 1/256 of row height + * + * @param int $startOffsetY + */ + public function setStartOffsetY($startOffsetY = 0) + { + $this->_startOffsetY = $startOffsetY; + } + + /** + * Get offset in y-direction of upper-left corner of shape measured in 1/256 of row height + * + * @return int + */ + public function getStartOffsetY() + { + return $this->_startOffsetY; + } + + /** + * Set cell coordinates of bottom-right corner of shape + * + * @param string $value + */ + public function setEndCoordinates($value = 'A1') + { + $this->_endCoordinates = $value; + } + + /** + * Get cell coordinates of bottom-right corner of shape + * + * @return string + */ + public function getEndCoordinates() + { + return $this->_endCoordinates; + } + + /** + * Set offset in x-direction of bottom-right corner of shape measured in 1/1024 of column width + * + * @param int $startOffsetX + */ + public function setEndOffsetX($endOffsetX = 0) + { + $this->_endOffsetX = $endOffsetX; + } + + /** + * Get offset in x-direction of bottom-right corner of shape measured in 1/1024 of column width + * + * @return int + */ + public function getEndOffsetX() + { + return $this->_endOffsetX; + } + + /** + * Set offset in y-direction of bottom-right corner of shape measured in 1/256 of row height + * + * @param int $endOffsetY + */ + public function setEndOffsetY($endOffsetY = 0) + { + $this->_endOffsetY = $endOffsetY; + } + + /** + * Get offset in y-direction of bottom-right corner of shape measured in 1/256 of row height + * + * @return int + */ + public function getEndOffsetY() + { + return $this->_endOffsetY; + } + + /** + * Get the nesting level of this spContainer. This is the number of spgrContainers between this spContainer and + * the dgContainer. A value of 1 = immediately within first spgrContainer + * Higher nesting level occurs if and only if spContainer is part of a shape group + * + * @return int Nesting level + */ + public function getNestingLevel() + { + $nestingLevel = 0; + + $parent = $this->getParent(); + while ($parent instanceof PHPExcel_Shared_Escher_DgContainer_SpgrContainer) { + ++$nestingLevel; + $parent = $parent->getParent(); + } + + return $nestingLevel; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer.php new file mode 100755 index 0000000..4fddbdf --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer.php @@ -0,0 +1,203 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Escher_DggContainer + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Escher_DggContainer +{ + /** + * Maximum shape index of all shapes in all drawings increased by one + * + * @var int + */ + private $_spIdMax; + + /** + * Total number of drawings saved + * + * @var int + */ + private $_cDgSaved; + + /** + * Total number of shapes saved (including group shapes) + * + * @var int + */ + private $_cSpSaved; + + /** + * BLIP Store Container + * + * @var PHPExcel_Shared_Escher_DggContainer_BstoreContainer + */ + private $_bstoreContainer; + + /** + * Array of options for the drawing group + * + * @var array + */ + private $_OPT = array(); + + /** + * Array of identifier clusters containg information about the maximum shape identifiers + * + * @var array + */ + private $_IDCLs = array(); + + /** + * Get maximum shape index of all shapes in all drawings (plus one) + * + * @return int + */ + public function getSpIdMax() + { + return $this->_spIdMax; + } + + /** + * Set maximum shape index of all shapes in all drawings (plus one) + * + * @param int + */ + public function setSpIdMax($value) + { + $this->_spIdMax = $value; + } + + /** + * Get total number of drawings saved + * + * @return int + */ + public function getCDgSaved() + { + return $this->_cDgSaved; + } + + /** + * Set total number of drawings saved + * + * @param int + */ + public function setCDgSaved($value) + { + $this->_cDgSaved = $value; + } + + /** + * Get total number of shapes saved (including group shapes) + * + * @return int + */ + public function getCSpSaved() + { + return $this->_cSpSaved; + } + + /** + * Set total number of shapes saved (including group shapes) + * + * @param int + */ + public function setCSpSaved($value) + { + $this->_cSpSaved = $value; + } + + /** + * Get BLIP Store Container + * + * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer + */ + public function getBstoreContainer() + { + return $this->_bstoreContainer; + } + + /** + * Set BLIP Store Container + * + * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer $bstoreContainer + */ + public function setBstoreContainer($bstoreContainer) + { + $this->_bstoreContainer = $bstoreContainer; + } + + /** + * Set an option for the drawing group + * + * @param int $property The number specifies the option + * @param mixed $value + */ + public function setOPT($property, $value) + { + $this->_OPT[$property] = $value; + } + + /** + * Get an option for the drawing group + * + * @param int $property The number specifies the option + * @return mixed + */ + public function getOPT($property) + { + if (isset($this->_OPT[$property])) { + return $this->_OPT[$property]; + } + return null; + } + + /** + * Get identifier clusters + * + * @return array + */ + public function getIDCLs() + { + return $this->_IDCLs; + } + + /** + * Set identifier clusters. array(<drawingId> => <max shape id>, ...) + * + * @param array $pValue + */ + public function setIDCLs($pValue) + { + $this->_IDCLs = $pValue; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php new file mode 100755 index 0000000..428c76e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php @@ -0,0 +1,65 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Escher_DggContainer_BstoreContainer + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Escher_DggContainer_BstoreContainer +{ + /** + * BLIP Store Entries. Each of them holds one BLIP (Big Large Image or Picture) + * + * @var array + */ + private $_BSECollection = array(); + + /** + * Add a BLIP Store Entry + * + * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE $BSE + */ + public function addBSE($BSE) + { + $this->_BSECollection[] = $BSE; + $BSE->setParent($this); + } + + /** + * Get the collection of BLIP Store Entries + * + * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE[] + */ + public function getBSECollection() + { + return $this->_BSECollection; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php new file mode 100755 index 0000000..1f10ae1 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php @@ -0,0 +1,120 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE +{ + const BLIPTYPE_ERROR = 0x00; + const BLIPTYPE_UNKNOWN = 0x01; + const BLIPTYPE_EMF = 0x02; + const BLIPTYPE_WMF = 0x03; + const BLIPTYPE_PICT = 0x04; + const BLIPTYPE_JPEG = 0x05; + const BLIPTYPE_PNG = 0x06; + const BLIPTYPE_DIB = 0x07; + const BLIPTYPE_TIFF = 0x11; + const BLIPTYPE_CMYKJPEG = 0x12; + + /** + * The parent BLIP Store Entry Container + * + * @var PHPExcel_Shared_Escher_DggContainer_BstoreContainer + */ + private $_parent; + + /** + * The BLIP (Big Large Image or Picture) + * + * @var PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip + */ + private $_blip; + + /** + * The BLIP type + * + * @var int + */ + private $_blipType; + + /** + * Set parent BLIP Store Entry Container + * + * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer $parent + */ + public function setParent($parent) + { + $this->_parent = $parent; + } + + /** + * Get the BLIP + * + * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip + */ + public function getBlip() + { + return $this->_blip; + } + + /** + * Set the BLIP + * + * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip $blip + */ + public function setBlip($blip) + { + $this->_blip = $blip; + $blip->setParent($this); + } + + /** + * Get the BLIP type + * + * @return int + */ + public function getBlipType() + { + return $this->_blipType; + } + + /** + * Set the BLIP type + * + * @param int + */ + public function setBlipType($blipType) + { + $this->_blipType = $blipType; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php new file mode 100755 index 0000000..0d28a6b --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php @@ -0,0 +1,91 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip + * + * @category PHPExcel + * @package PHPExcel_Shared_Escher + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip +{ + /** + * The parent BSE + * + * @var PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE + */ + private $_parent; + + /** + * Raw image data + * + * @var string + */ + private $_data; + + /** + * Get the raw image data + * + * @return string + */ + public function getData() + { + return $this->_data; + } + + /** + * Set the raw image data + * + * @param string + */ + public function setData($data) + { + $this->_data = $data; + } + + /** + * Set parent BSE + * + * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE $parent + */ + public function setParent($parent) + { + $this->_parent = $parent; + } + + /** + * Get parent BSE + * + * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE $parent + */ + public function getParent() + { + return $this->_parent; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Excel5.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Excel5.php new file mode 100755 index 0000000..629f621 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Excel5.php @@ -0,0 +1,317 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_Excel5 + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Excel5 +{ + /** + * Get the width of a column in pixels. We use the relationship y = ceil(7x) where + * x is the width in intrinsic Excel units (measuring width in number of normal characters) + * This holds for Arial 10 + * + * @param PHPExcel_Worksheet $sheet The sheet + * @param integer $col The column + * @return integer The width in pixels + */ + public static function sizeCol($sheet, $col = 'A') + { + // default font of the workbook + $font = $sheet->getParent()->getDefaultStyle()->getFont(); + + $columnDimensions = $sheet->getColumnDimensions(); + + // first find the true column width in pixels (uncollapsed and unhidden) + if ( isset($columnDimensions[$col]) and $columnDimensions[$col]->getWidth() != -1 ) { + + // then we have column dimension with explicit width + $columnDimension = $columnDimensions[$col]; + $width = $columnDimension->getWidth(); + $pixelWidth = PHPExcel_Shared_Drawing::cellDimensionToPixels($width, $font); + + } else if ($sheet->getDefaultColumnDimension()->getWidth() != -1) { + + // then we have default column dimension with explicit width + $defaultColumnDimension = $sheet->getDefaultColumnDimension(); + $width = $defaultColumnDimension->getWidth(); + $pixelWidth = PHPExcel_Shared_Drawing::cellDimensionToPixels($width, $font); + + } else { + + // we don't even have any default column dimension. Width depends on default font + $pixelWidth = PHPExcel_Shared_Font::getDefaultColumnWidthByFont($font, true); + } + + // now find the effective column width in pixels + if (isset($columnDimensions[$col]) and !$columnDimensions[$col]->getVisible()) { + $effectivePixelWidth = 0; + } else { + $effectivePixelWidth = $pixelWidth; + } + + return $effectivePixelWidth; + } + + /** + * Convert the height of a cell from user's units to pixels. By interpolation + * the relationship is: y = 4/3x. If the height hasn't been set by the user we + * use the default value. If the row is hidden we use a value of zero. + * + * @param PHPExcel_Worksheet $sheet The sheet + * @param integer $row The row index (1-based) + * @return integer The width in pixels + */ + public static function sizeRow($sheet, $row = 1) + { + // default font of the workbook + $font = $sheet->getParent()->getDefaultStyle()->getFont(); + + $rowDimensions = $sheet->getRowDimensions(); + + // first find the true row height in pixels (uncollapsed and unhidden) + if ( isset($rowDimensions[$row]) and $rowDimensions[$row]->getRowHeight() != -1) { + + // then we have a row dimension + $rowDimension = $rowDimensions[$row]; + $rowHeight = $rowDimension->getRowHeight(); + $pixelRowHeight = (int) ceil(4 * $rowHeight / 3); // here we assume Arial 10 + + } else if ($sheet->getDefaultRowDimension()->getRowHeight() != -1) { + + // then we have a default row dimension with explicit height + $defaultRowDimension = $sheet->getDefaultRowDimension(); + $rowHeight = $defaultRowDimension->getRowHeight(); + $pixelRowHeight = PHPExcel_Shared_Drawing::pointsToPixels($rowHeight); + + } else { + + // we don't even have any default row dimension. Height depends on default font + $pointRowHeight = PHPExcel_Shared_Font::getDefaultRowHeightByFont($font); + $pixelRowHeight = PHPExcel_Shared_Font::fontSizeToPixels($pointRowHeight); + + } + + // now find the effective row height in pixels + if ( isset($rowDimensions[$row]) and !$rowDimensions[$row]->getVisible() ) { + $effectivePixelRowHeight = 0; + } else { + $effectivePixelRowHeight = $pixelRowHeight; + } + + return $effectivePixelRowHeight; + } + + /** + * Get the horizontal distance in pixels between two anchors + * The distanceX is found as sum of all the spanning columns widths minus correction for the two offsets + * + * @param PHPExcel_Worksheet $sheet + * @param string $startColumn + * @param integer $startOffset Offset within start cell measured in 1/1024 of the cell width + * @param string $endColumn + * @param integer $endOffset Offset within end cell measured in 1/1024 of the cell width + * @return integer Horizontal measured in pixels + */ + public static function getDistanceX(PHPExcel_Worksheet $sheet, $startColumn = 'A', $startOffsetX = 0, $endColumn = 'A', $endOffsetX = 0) + { + $distanceX = 0; + + // add the widths of the spanning columns + $startColumnIndex = PHPExcel_Cell::columnIndexFromString($startColumn) - 1; // 1-based + $endColumnIndex = PHPExcel_Cell::columnIndexFromString($endColumn) - 1; // 1-based + for ($i = $startColumnIndex; $i <= $endColumnIndex; ++$i) { + $distanceX += self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($i)); + } + + // correct for offsetX in startcell + $distanceX -= (int) floor(self::sizeCol($sheet, $startColumn) * $startOffsetX / 1024); + + // correct for offsetX in endcell + $distanceX -= (int) floor(self::sizeCol($sheet, $endColumn) * (1 - $endOffsetX / 1024)); + + return $distanceX; + } + + /** + * Get the vertical distance in pixels between two anchors + * The distanceY is found as sum of all the spanning rows minus two offsets + * + * @param PHPExcel_Worksheet $sheet + * @param string $startRow (1-based) + * @param integer $startOffset Offset within start cell measured in 1/256 of the cell height + * @param string $endRow (1-based) + * @param integer $endOffset Offset within end cell measured in 1/256 of the cell height + * @return integer Vertical distance measured in pixels + */ + public static function getDistanceY(PHPExcel_Worksheet $sheet, $startRow = 1, $startOffsetY = 0, $endRow = 1, $endOffsetY = 0) + { + $distanceY = 0; + + // add the widths of the spanning rows + for ($row = $startRow; $row <= $endRow; ++$row) { + $distanceY += self::sizeRow($sheet, $row); + } + + // correct for offsetX in startcell + $distanceY -= (int) floor(self::sizeRow($sheet, $startRow) * $startOffsetY / 256); + + // correct for offsetX in endcell + $distanceY -= (int) floor(self::sizeRow($sheet, $endRow) * (1 - $endOffsetY / 256)); + + return $distanceY; + } + + /** + * Convert 1-cell anchor coordinates to 2-cell anchor coordinates + * This function is ported from PEAR Spreadsheet_Writer_Excel with small modifications + * + * Calculate the vertices that define the position of the image as required by + * the OBJ record. + * + * +------------+------------+ + * | A | B | + * +-----+------------+------------+ + * | |(x1,y1) | | + * | 1 |(A1)._______|______ | + * | | | | | + * | | | | | + * +-----+----| BITMAP |-----+ + * | | | | | + * | 2 | |______________. | + * | | | (B2)| + * | | | (x2,y2)| + * +---- +------------+------------+ + * + * Example of a bitmap that covers some of the area from cell A1 to cell B2. + * + * Based on the width and height of the bitmap we need to calculate 8 vars: + * $col_start, $row_start, $col_end, $row_end, $x1, $y1, $x2, $y2. + * The width and height of the cells are also variable and have to be taken into + * account. + * The values of $col_start and $row_start are passed in from the calling + * function. The values of $col_end and $row_end are calculated by subtracting + * the width and height of the bitmap from the width and height of the + * underlying cells. + * The vertices are expressed as a percentage of the underlying cell width as + * follows (rhs values are in pixels): + * + * x1 = X / W *1024 + * y1 = Y / H *256 + * x2 = (X-1) / W *1024 + * y2 = (Y-1) / H *256 + * + * Where: X is distance from the left side of the underlying cell + * Y is distance from the top of the underlying cell + * W is the width of the cell + * H is the height of the cell + * + * @param PHPExcel_Worksheet $sheet + * @param string $coordinates E.g. 'A1' + * @param integer $offsetX Horizontal offset in pixels + * @param integer $offsetY Vertical offset in pixels + * @param integer $width Width in pixels + * @param integer $height Height in pixels + * @return array + */ + public static function oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height) + { + list($column, $row) = PHPExcel_Cell::coordinateFromString($coordinates); + $col_start = PHPExcel_Cell::columnIndexFromString($column) - 1; + $row_start = $row - 1; + + $x1 = $offsetX; + $y1 = $offsetY; + + // Initialise end cell to the same as the start cell + $col_end = $col_start; // Col containing lower right corner of object + $row_end = $row_start; // Row containing bottom right corner of object + + // Zero the specified offset if greater than the cell dimensions + if ($x1 >= self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_start))) { + $x1 = 0; + } + if ($y1 >= self::sizeRow($sheet, $row_start + 1)) { + $y1 = 0; + } + + $width = $width + $x1 -1; + $height = $height + $y1 -1; + + // Subtract the underlying cell widths to find the end cell of the image + while ($width >= self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_end))) { + $width -= self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_end)); + ++$col_end; + } + + // Subtract the underlying cell heights to find the end cell of the image + while ($height >= self::sizeRow($sheet, $row_end + 1)) { + $height -= self::sizeRow($sheet, $row_end + 1); + ++$row_end; + } + + // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a cell + // with zero height or width. + if (self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_start)) == 0) { + return; + } + if (self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_end)) == 0) { + return; + } + if (self::sizeRow($sheet, $row_start + 1) == 0) { + return; + } + if (self::sizeRow($sheet, $row_end + 1) == 0) { + return; + } + + // Convert the pixel values to the percentage value expected by Excel + $x1 = $x1 / self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_start)) * 1024; + $y1 = $y1 / self::sizeRow($sheet, $row_start + 1) * 256; + $x2 = ($width + 1) / self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object + $y2 = ($height + 1) / self::sizeRow($sheet, $row_end + 1) * 256; // Distance to bottom of object + + $startCoordinates = PHPExcel_Cell::stringFromColumnIndex($col_start) . ($row_start + 1); + $endCoordinates = PHPExcel_Cell::stringFromColumnIndex($col_end) . ($row_end + 1); + + $twoAnchor = array( + 'startCoordinates' => $startCoordinates, + 'startOffsetX' => $x1, + 'startOffsetY' => $y1, + 'endCoordinates' => $endCoordinates, + 'endOffsetX' => $x2, + 'endOffsetY' => $y2, + ); + + return $twoAnchor; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/File.php b/plugins/excel_reader/Classes/PHPExcel/Shared/File.php new file mode 100755 index 0000000..575ac3c --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/File.php @@ -0,0 +1,139 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_File + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_File +{ + /** + * Verify if a file exists + * + * @param string $pFilename Filename + * @return bool + */ + public static function file_exists($pFilename) { + // Sick construction, but it seems that + // file_exists returns strange values when + // doing the original file_exists on ZIP archives... + if ( strtolower(substr($pFilename, 0, 3)) == 'zip' ) { + // Open ZIP file and verify if the file exists + $zipFile = substr($pFilename, 6, strpos($pFilename, '#') - 6); + $archiveFile = substr($pFilename, strpos($pFilename, '#') + 1); + + $zip = new ZipArchive(); + if ($zip->open($zipFile) === true) { + $returnValue = ($zip->getFromName($archiveFile) !== false); + $zip->close(); + return $returnValue; + } else { + return false; + } + } else { + // Regular file_exists + return file_exists($pFilename); + } + } + + /** + * Returns canonicalized absolute pathname, also for ZIP archives + * + * @param string $pFilename + * @return string + */ + public static function realpath($pFilename) { + // Returnvalue + $returnValue = ''; + + // Try using realpath() + if (file_exists($pFilename)) { + $returnValue = realpath($pFilename); + } + + // Found something? + if ($returnValue == '' || ($returnValue === NULL)) { + $pathArray = explode('/' , $pFilename); + while(in_array('..', $pathArray) && $pathArray[0] != '..') { + for ($i = 0; $i < count($pathArray); ++$i) { + if ($pathArray[$i] == '..' && $i > 0) { + unset($pathArray[$i]); + unset($pathArray[$i - 1]); + break; + } + } + } + $returnValue = implode('/', $pathArray); + } + + // Return + return $returnValue; + } + + /** + * Get the systems temporary directory. + * + * @return string + */ + public static function sys_get_temp_dir() + { + // sys_get_temp_dir is only available since PHP 5.2.1 + // http://php.net/manual/en/function.sys-get-temp-dir.php#94119 + + if ( !function_exists('sys_get_temp_dir')) { + if ($temp = getenv('TMP') ) { + if ((!empty($temp)) && (file_exists($temp))) { return realpath($temp); } + } + if ($temp = getenv('TEMP') ) { + if ((!empty($temp)) && (file_exists($temp))) { return realpath($temp); } + } + if ($temp = getenv('TMPDIR') ) { + if ((!empty($temp)) && (file_exists($temp))) { return realpath($temp); } + } + + // trick for creating a file in system's temporary dir + // without knowing the path of the system's temporary dir + $temp = tempnam(__FILE__, ''); + if (file_exists($temp)) { + unlink($temp); + return realpath(dirname($temp)); + } + + return null; + } + + // use ordinary built-in PHP function + // There should be no problem with the 5.2.4 Suhosin realpath() bug, because this line should only + // be called if we're running 5.2.1 or earlier + return realpath(sys_get_temp_dir()); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/Font.php b/plugins/excel_reader/Classes/PHPExcel/Shared/Font.php new file mode 100755 index 0000000..3d0662e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/Font.php @@ -0,0 +1,775 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_Font + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_Font +{ + /* Methods for resolving autosize value */ + const AUTOSIZE_METHOD_APPROX = 'approx'; + const AUTOSIZE_METHOD_EXACT = 'exact'; + + private static $_autoSizeMethods = array( + self::AUTOSIZE_METHOD_APPROX, + self::AUTOSIZE_METHOD_EXACT, + ); + + /** Character set codes used by BIFF5-8 in Font records */ + const CHARSET_ANSI_LATIN = 0x00; + const CHARSET_SYSTEM_DEFAULT = 0x01; + const CHARSET_SYMBOL = 0x02; + const CHARSET_APPLE_ROMAN = 0x4D; + const CHARSET_ANSI_JAPANESE_SHIFTJIS = 0x80; + const CHARSET_ANSI_KOREAN_HANGUL = 0x81; + const CHARSET_ANSI_KOREAN_JOHAB = 0x82; + const CHARSET_ANSI_CHINESE_SIMIPLIFIED = 0x86; // gb2312 + const CHARSET_ANSI_CHINESE_TRADITIONAL = 0x88; // big5 + const CHARSET_ANSI_GREEK = 0xA1; + const CHARSET_ANSI_TURKISH = 0xA2; + const CHARSET_ANSI_VIETNAMESE = 0xA3; + const CHARSET_ANSI_HEBREW = 0xB1; + const CHARSET_ANSI_ARABIC = 0xB2; + const CHARSET_ANSI_BALTIC = 0xBA; + const CHARSET_ANSI_CYRILLIC = 0xCC; + const CHARSET_ANSI_THAI = 0xDD; + const CHARSET_ANSI_LATIN_II = 0xEE; + const CHARSET_OEM_LATIN_I = 0xFF; + + // XXX: Constants created! + /** Font filenames */ + const ARIAL = 'arial.ttf'; + const ARIAL_BOLD = 'arialbd.ttf'; + const ARIAL_ITALIC = 'ariali.ttf'; + const ARIAL_BOLD_ITALIC = 'arialbi.ttf'; + + const CALIBRI = 'CALIBRI.TTF'; + const CALIBRI_BOLD = 'CALIBRIB.TTF'; + const CALIBRI_ITALIC = 'CALIBRII.TTF'; + const CALIBRI_BOLD_ITALIC = 'CALIBRIZ.TTF'; + + const COMIC_SANS_MS = 'comic.ttf'; + const COMIC_SANS_MS_BOLD = 'comicbd.ttf'; + + const COURIER_NEW = 'cour.ttf'; + const COURIER_NEW_BOLD = 'courbd.ttf'; + const COURIER_NEW_ITALIC = 'couri.ttf'; + const COURIER_NEW_BOLD_ITALIC = 'courbi.ttf'; + + const GEORGIA = 'georgia.ttf'; + const GEORGIA_BOLD = 'georgiab.ttf'; + const GEORGIA_ITALIC = 'georgiai.ttf'; + const GEORGIA_BOLD_ITALIC = 'georgiaz.ttf'; + + const IMPACT = 'impact.ttf'; + + const LIBERATION_SANS = 'LiberationSans-Regular.ttf'; + const LIBERATION_SANS_BOLD = 'LiberationSans-Bold.ttf'; + const LIBERATION_SANS_ITALIC = 'LiberationSans-Italic.ttf'; + const LIBERATION_SANS_BOLD_ITALIC = 'LiberationSans-BoldItalic.ttf'; + + const LUCIDA_CONSOLE = 'lucon.ttf'; + const LUCIDA_SANS_UNICODE = 'l_10646.ttf'; + + const MICROSOFT_SANS_SERIF = 'micross.ttf'; + + const PALATINO_LINOTYPE = 'pala.ttf'; + const PALATINO_LINOTYPE_BOLD = 'palab.ttf'; + const PALATINO_LINOTYPE_ITALIC = 'palai.ttf'; + const PALATINO_LINOTYPE_BOLD_ITALIC = 'palabi.ttf'; + + const SYMBOL = 'symbol.ttf'; + + const TAHOMA = 'tahoma.ttf'; + const TAHOMA_BOLD = 'tahomabd.ttf'; + + const TIMES_NEW_ROMAN = 'times.ttf'; + const TIMES_NEW_ROMAN_BOLD = 'timesbd.ttf'; + const TIMES_NEW_ROMAN_ITALIC = 'timesi.ttf'; + const TIMES_NEW_ROMAN_BOLD_ITALIC = 'timesbi.ttf'; + + const TREBUCHET_MS = 'trebuc.ttf'; + const TREBUCHET_MS_BOLD = 'trebucbd.ttf'; + const TREBUCHET_MS_ITALIC = 'trebucit.ttf'; + const TREBUCHET_MS_BOLD_ITALIC = 'trebucbi.ttf'; + + const VERDANA = 'verdana.ttf'; + const VERDANA_BOLD = 'verdanab.ttf'; + const VERDANA_ITALIC = 'verdanai.ttf'; + const VERDANA_BOLD_ITALIC = 'verdanaz.ttf'; + + /** + * AutoSize method + * + * @var string + */ + private static $autoSizeMethod = self::AUTOSIZE_METHOD_APPROX; + + /** + * Path to folder containing TrueType font .ttf files + * + * @var string + */ + private static $trueTypeFontPath = null; + + /** + * How wide is a default column for a given default font and size? + * Empirical data found by inspecting real Excel files and reading off the pixel width + * in Microsoft Office Excel 2007. + * + * @var array + */ + public static $defaultColumnWidths = array( + 'Arial' => array( + 1 => array('px' => 24, 'width' => 12.00000000), + 2 => array('px' => 24, 'width' => 12.00000000), + 3 => array('px' => 32, 'width' => 10.66406250), + 4 => array('px' => 32, 'width' => 10.66406250), + 5 => array('px' => 40, 'width' => 10.00000000), + 6 => array('px' => 48, 'width' => 9.59765625), + 7 => array('px' => 48, 'width' => 9.59765625), + 8 => array('px' => 56, 'width' => 9.33203125), + 9 => array('px' => 64, 'width' => 9.14062500), + 10 => array('px' => 64, 'width' => 9.14062500), + ), + 'Calibri' => array( + 1 => array('px' => 24, 'width' => 12.00000000), + 2 => array('px' => 24, 'width' => 12.00000000), + 3 => array('px' => 32, 'width' => 10.66406250), + 4 => array('px' => 32, 'width' => 10.66406250), + 5 => array('px' => 40, 'width' => 10.00000000), + 6 => array('px' => 48, 'width' => 9.59765625), + 7 => array('px' => 48, 'width' => 9.59765625), + 8 => array('px' => 56, 'width' => 9.33203125), + 9 => array('px' => 56, 'width' => 9.33203125), + 10 => array('px' => 64, 'width' => 9.14062500), + 11 => array('px' => 64, 'width' => 9.14062500), + ), + 'Verdana' => array( + 1 => array('px' => 24, 'width' => 12.00000000), + 2 => array('px' => 24, 'width' => 12.00000000), + 3 => array('px' => 32, 'width' => 10.66406250), + 4 => array('px' => 32, 'width' => 10.66406250), + 5 => array('px' => 40, 'width' => 10.00000000), + 6 => array('px' => 48, 'width' => 9.59765625), + 7 => array('px' => 48, 'width' => 9.59765625), + 8 => array('px' => 64, 'width' => 9.14062500), + 9 => array('px' => 72, 'width' => 9.00000000), + 10 => array('px' => 72, 'width' => 9.00000000), + ), + ); + + /** + * Set autoSize method + * + * @param string $pValue + * @return boolean Success or failure + */ + public static function setAutoSizeMethod($pValue = self::AUTOSIZE_METHOD_APPROX) + { + if (!in_array($pValue,self::$_autoSizeMethods)) { + return FALSE; + } + + self::$autoSizeMethod = $pValue; + + return TRUE; + } + + /** + * Get autoSize method + * + * @return string + */ + public static function getAutoSizeMethod() + { + return self::$autoSizeMethod; + } + + /** + * Set the path to the folder containing .ttf files. There should be a trailing slash. + * Typical locations on variout some platforms: + * <ul> + * <li>C:/Windows/Fonts/</li> + * <li>/usr/share/fonts/truetype/</li> + * <li>~/.fonts/</li> + * </ul> + * + * @param string $pValue + */ + public static function setTrueTypeFontPath($pValue = '') + { + self::$trueTypeFontPath = $pValue; + } + + /** + * Get the path to the folder containing .ttf files. + * + * @return string + */ + public static function getTrueTypeFontPath() + { + return self::$trueTypeFontPath; + } + + /** + * Calculate an (approximate) OpenXML column width, based on font size and text contained + * + * @param int $fontSize Font size (in pixels or points) + * @param bool $fontSizeInPixels Is the font size specified in pixels (true) or in points (false) ? + * @param string $cellText Text to calculate width + * @param int $rotation Rotation angle + * @return int Column width + */ + public static function calculateColumnWidth(PHPExcel_Style_Font $font, $cellText = '', $rotation = 0, PHPExcel_Style_Font $defaultFont = null) { + + // If it is rich text, use plain text + if ($cellText instanceof PHPExcel_RichText) { + $cellText = $cellText->getPlainText(); + } + + // Special case if there are one or more newline characters ("\n") + if (strpos($cellText, "\n") !== false) { + $lineTexts = explode("\n", $cellText); + $lineWitdhs = array(); + foreach ($lineTexts as $lineText) { + $lineWidths[] = self::calculateColumnWidth($font, $lineText, $rotation = 0, $defaultFont); + } + return max($lineWidths); // width of longest line in cell + } + + // Try to get the exact text width in pixels + try { + // If autosize method is set to 'approx', use approximation + if (self::$autoSizeMethod == self::AUTOSIZE_METHOD_APPROX) { + throw new Exception('AutoSize method is set to approx'); + } + + // Width of text in pixels excl. padding + $columnWidth = self::getTextWidthPixelsExact($cellText, $font, $rotation); + + // Excel adds some padding, use 1.07 of the width of an 'n' glyph + $columnWidth += ceil(self::getTextWidthPixelsExact('0', $font, 0) * 1.07); // pixels incl. padding + + } catch (Exception $e) { + // Width of text in pixels excl. padding, approximation + $columnWidth = self::getTextWidthPixelsApprox($cellText, $font, $rotation); + + // Excel adds some padding, just use approx width of 'n' glyph + $columnWidth += self::getTextWidthPixelsApprox('n', $font, 0); + } + + // Convert from pixel width to column width + $columnWidth = PHPExcel_Shared_Drawing::pixelsToCellDimension($columnWidth, $defaultFont); + + // Return + return round($columnWidth, 6); + } + + /** + * Get GD text width in pixels for a string of text in a certain font at a certain rotation angle + * + * @param string $text + * @param PHPExcel_Style_Font + * @param int $rotation + * @return int + * @throws Exception + */ + public static function getTextWidthPixelsExact($text, PHPExcel_Style_Font $font, $rotation = 0) { + if (!function_exists('imagettfbbox')) { + throw new Exception('GD library needs to be enabled'); + } + + // font size should really be supplied in pixels in GD2, + // but since GD2 seems to assume 72dpi, pixels and points are the same + $fontFile = self::getTrueTypeFontFileFromFont($font); + $textBox = imagettfbbox($font->getSize(), $rotation, $fontFile, $text); + + // Get corners positions + $lowerLeftCornerX = $textBox[0]; + $lowerLeftCornerY = $textBox[1]; + $lowerRightCornerX = $textBox[2]; + $lowerRightCornerY = $textBox[3]; + $upperRightCornerX = $textBox[4]; + $upperRightCornerY = $textBox[5]; + $upperLeftCornerX = $textBox[6]; + $upperLeftCornerY = $textBox[7]; + + // Consider the rotation when calculating the width + $textWidth = max($lowerRightCornerX - $upperLeftCornerX, $upperRightCornerX - $lowerLeftCornerX); + + return $textWidth; + } + + /** + * Get approximate width in pixels for a string of text in a certain font at a certain rotation angle + * + * @param string $columnText + * @param PHPExcel_Style_Font $font + * @param int $rotation + * @return int Text width in pixels (no padding added) + */ + public static function getTextWidthPixelsApprox($columnText, PHPExcel_Style_Font $font = null, $rotation = 0) + { + $fontName = $font->getName(); + $fontSize = $font->getSize(); + + // Calculate column width in pixels. We assume fixed glyph width. Result varies with font name and size. + switch ($fontName) { + case 'Calibri': + // value 8.26 was found via interpolation by inspecting real Excel files with Calibri 11 font. + $columnWidth = (int) (8.26 * PHPExcel_Shared_String::CountCharacters($columnText)); + $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size + break; + + case 'Arial': + // value 7 was found via interpolation by inspecting real Excel files with Arial 10 font. + $columnWidth = (int) (7 * PHPExcel_Shared_String::CountCharacters($columnText)); + $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size + break; + + case 'Verdana': + // value 8 was found via interpolation by inspecting real Excel files with Verdana 10 font. + $columnWidth = (int) (8 * PHPExcel_Shared_String::CountCharacters($columnText)); + $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size + break; + + default: + // just assume Calibri + $columnWidth = (int) (8.26 * PHPExcel_Shared_String::CountCharacters($columnText)); + $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size + break; + } + + // Calculate approximate rotated column width + if ($rotation !== 0) { + if ($rotation == -165) { + // stacked text + $columnWidth = 4; // approximation + } else { + // rotated text + $columnWidth = $columnWidth * cos(deg2rad($rotation)) + + $fontSize * abs(sin(deg2rad($rotation))) / 5; // approximation + } + } + + // pixel width is an integer + $columnWidth = (int) $columnWidth; + return $columnWidth; + } + + /** + * Calculate an (approximate) pixel size, based on a font points size + * + * @param int $fontSizeInPoints Font size (in points) + * @return int Font size (in pixels) + */ + public static function fontSizeToPixels($fontSizeInPoints = 11) { + return (int) ((4 / 3) * $fontSizeInPoints); + } + + /** + * Calculate an (approximate) pixel size, based on inch size + * + * @param int $sizeInInch Font size (in inch) + * @return int Size (in pixels) + */ + public static function inchSizeToPixels($sizeInInch = 1) { + return ($sizeInInch * 96); + } + + /** + * Calculate an (approximate) pixel size, based on centimeter size + * + * @param int $sizeInCm Font size (in centimeters) + * @return int Size (in pixels) + */ + public static function centimeterSizeToPixels($sizeInCm = 1) { + return ($sizeInCm * 37.795275591); + } + + /** + * Returns the font path given the font + * + * @param PHPExcel_Style_Font + * @return string Path to TrueType font file + */ + public static function getTrueTypeFontFileFromFont($font) { + if (!file_exists(self::$trueTypeFontPath) || !is_dir(self::$trueTypeFontPath)) { + throw new Exception('Valid directory to TrueType Font files not specified'); + } + + $name = $font->getName(); + $bold = $font->getBold(); + $italic = $font->getItalic(); + + // Check if we can map font to true type font file + switch ($name) { + case 'Arial': + $fontFile = ( + $bold ? ($italic ? self::ARIAL_BOLD_ITALIC : self::ARIAL_BOLD) + : ($italic ? self::ARIAL_ITALIC : self::ARIAL) + ); + break; + + case 'Calibri': + $fontFile = ( + $bold ? ($italic ? self::CALIBRI_BOLD_ITALIC : self::CALIBRI_BOLD) + : ($italic ? self::CALIBRI_ITALIC : self::CALIBRI) + ); + break; + + case 'Courier New': + $fontFile = ( + $bold ? ($italic ? self::COURIER_NEW_BOLD_ITALIC : self::COURIER_NEW_BOLD) + : ($italic ? self::COURIER_NEW_ITALIC : self::COURIER_NEW) + ); + break; + + case 'Comic Sans MS': + $fontFile = ( + $bold ? self::COMIC_SANS_MS_BOLD : self::COMIC_SANS_MS + ); + break; + + case 'Georgia': + $fontFile = ( + $bold ? ($italic ? self::GEORGIA_BOLD_ITALIC : self::GEORGIA_BOLD) + : ($italic ? self::GEORGIA_ITALIC : self::GEORGIA) + ); + break; + + case 'Impact': + $fontFile = self::IMPACT; + break; + + case 'Liberation Sans': + $fontFile = ( + $bold ? ($italic ? self::LIBERATION_SANS_BOLD_ITALIC : self::LIBERATION_SANS_BOLD) + : ($italic ? self::LIBERATION_SANS_ITALIC : self::LIBERATION_SANS) + ); + break; + + case 'Lucida Console': + $fontFile = self::LUCIDA_CONSOLE; + break; + + case 'Lucida Sans Unicode': + $fontFile = self::LUCIDA_SANS_UNICODE; + break; + + case 'Microsoft Sans Serif': + $fontFile = self::MICROSOFT_SANS_SERIF; + break; + + case 'Palatino Linotype': + $fontFile = ( + $bold ? ($italic ? self::PALATINO_LINOTYPE_BOLD_ITALIC : self::PALATINO_LINOTYPE_BOLD) + : ($italic ? self::PALATINO_LINOTYPE_ITALIC : self::PALATINO_LINOTYPE) + ); + break; + + case 'Symbol': + $fontFile = self::SYMBOL; + break; + + case 'Tahoma': + $fontFile = ( + $bold ? self::TAHOMA_BOLD : self::TAHOMA + ); + break; + + case 'Times New Roman': + $fontFile = ( + $bold ? ($italic ? self::TIMES_NEW_ROMAN_BOLD_ITALIC : self::TIMES_NEW_ROMAN_BOLD) + : ($italic ? self::TIMES_NEW_ROMAN_ITALIC : self::TIMES_NEW_ROMAN) + ); + break; + + case 'Trebuchet MS': + $fontFile = ( + $bold ? ($italic ? self::TREBUCHET_MS_BOLD_ITALIC : self::TREBUCHET_MS_BOLD) + : ($italic ? self::TREBUCHET_MS_ITALIC : self::TREBUCHET_MS) + ); + break; + + case 'Verdana': + $fontFile = ( + $bold ? ($italic ? self::VERDANA_BOLD_ITALIC : self::VERDANA_BOLD) + : ($italic ? self::VERDANA_ITALIC : self::VERDANA) + ); + break; + + default: + throw new Exception('Unknown font name "'. $name .'". Cannot map to TrueType font file'); + break; + } + + $fontFile = self::$trueTypeFontPath . $fontFile; + + // Check if file actually exists + if (!file_exists($fontFile)) { + throw New Exception('TrueType Font file not found'); + } + + return $fontFile; + } + + /** + * Returns the associated charset for the font name. + * + * @param string $name Font name + * @return int Character set code + */ + public static function getCharsetFromFontName($name) + { + switch ($name) { + // Add more cases. Check FONT records in real Excel files. + case 'EucrosiaUPC': return self::CHARSET_ANSI_THAI; + case 'Wingdings': return self::CHARSET_SYMBOL; + case 'Wingdings 2': return self::CHARSET_SYMBOL; + case 'Wingdings 3': return self::CHARSET_SYMBOL; + default: return self::CHARSET_ANSI_LATIN; + } + } + + /** + * Get the effective column width for columns without a column dimension or column with width -1 + * For example, for Calibri 11 this is 9.140625 (64 px) + * + * @param PHPExcel_Style_Font $font The workbooks default font + * @param boolean $pPixels true = return column width in pixels, false = return in OOXML units + * @return mixed Column width + */ + public static function getDefaultColumnWidthByFont(PHPExcel_Style_Font $font, $pPixels = false) + { + if (isset(self::$defaultColumnWidths[$font->getName()][$font->getSize()])) { + // Exact width can be determined + $columnWidth = $pPixels ? + self::$defaultColumnWidths[$font->getName()][$font->getSize()]['px'] + : self::$defaultColumnWidths[$font->getName()][$font->getSize()]['width']; + + } else { + // We don't have data for this particular font and size, use approximation by + // extrapolating from Calibri 11 + $columnWidth = $pPixels ? + self::$defaultColumnWidths['Calibri'][11]['px'] + : self::$defaultColumnWidths['Calibri'][11]['width']; + $columnWidth = $columnWidth * $font->getSize() / 11; + + // Round pixels to closest integer + if ($pPixels) { + $columnWidth = (int) round($columnWidth); + } + } + + return $columnWidth; + } + + /** + * Get the effective row height for rows without a row dimension or rows with height -1 + * For example, for Calibri 11 this is 15 points + * + * @param PHPExcel_Style_Font $font The workbooks default font + * @return float Row height in points + */ + public static function getDefaultRowHeightByFont(PHPExcel_Style_Font $font) + { + switch ($font->getName()) { + case 'Arial': + switch ($font->getSize()) { + case 10: + // inspection of Arial 10 workbook says 12.75pt ~17px + $rowHeight = 12.75; + break; + + case 9: + // inspection of Arial 9 workbook says 12.00pt ~16px + $rowHeight = 12; + break; + + case 8: + // inspection of Arial 8 workbook says 11.25pt ~15px + $rowHeight = 11.25; + break; + + case 7: + // inspection of Arial 7 workbook says 9.00pt ~12px + $rowHeight = 9; + break; + + case 6: + case 5: + // inspection of Arial 5,6 workbook says 8.25pt ~11px + $rowHeight = 8.25; + break; + + case 4: + // inspection of Arial 4 workbook says 6.75pt ~9px + $rowHeight = 6.75; + break; + + case 3: + // inspection of Arial 3 workbook says 6.00pt ~8px + $rowHeight = 6; + break; + + case 2: + case 1: + // inspection of Arial 1,2 workbook says 5.25pt ~7px + $rowHeight = 5.25; + break; + + default: + // use Arial 10 workbook as an approximation, extrapolation + $rowHeight = 12.75 * $font->getSize() / 10; + break; + } + break; + + case 'Calibri': + switch ($font->getSize()) { + case 11: + // inspection of Calibri 11 workbook says 15.00pt ~20px + $rowHeight = 15; + break; + + case 10: + // inspection of Calibri 10 workbook says 12.75pt ~17px + $rowHeight = 12.75; + break; + + case 9: + // inspection of Calibri 9 workbook says 12.00pt ~16px + $rowHeight = 12; + break; + + case 8: + // inspection of Calibri 8 workbook says 11.25pt ~15px + $rowHeight = 11.25; + break; + + case 7: + // inspection of Calibri 7 workbook says 9.00pt ~12px + $rowHeight = 9; + break; + + case 6: + case 5: + // inspection of Calibri 5,6 workbook says 8.25pt ~11px + $rowHeight = 8.25; + break; + + case 4: + // inspection of Calibri 4 workbook says 6.75pt ~9px + $rowHeight = 6.75; + break; + + case 3: + // inspection of Calibri 3 workbook says 6.00pt ~8px + $rowHeight = 6.00; + break; + + case 2: + case 1: + // inspection of Calibri 1,2 workbook says 5.25pt ~7px + $rowHeight = 5.25; + break; + + default: + // use Calibri 11 workbook as an approximation, extrapolation + $rowHeight = 15 * $font->getSize() / 11; + break; + } + break; + + case 'Verdana': + switch ($font->getSize()) { + case 10: + // inspection of Verdana 10 workbook says 12.75pt ~17px + $rowHeight = 12.75; + break; + + case 9: + // inspection of Verdana 9 workbook says 11.25pt ~15px + $rowHeight = 11.25; + break; + + case 8: + // inspection of Verdana 8 workbook says 10.50pt ~14px + $rowHeight = 10.50; + break; + + case 7: + // inspection of Verdana 7 workbook says 9.00pt ~12px + $rowHeight = 9.00; + break; + + case 6: + case 5: + // inspection of Verdana 5,6 workbook says 8.25pt ~11px + $rowHeight = 8.25; + break; + + case 4: + // inspection of Verdana 4 workbook says 6.75pt ~9px + $rowHeight = 6.75; + break; + + case 3: + // inspection of Verdana 3 workbook says 6.00pt ~8px + $rowHeight = 6; + break; + + case 2: + case 1: + // inspection of Verdana 1,2 workbook says 5.25pt ~7px + $rowHeight = 5.25; + break; + + default: + // use Verdana 10 workbook as an approximation, extrapolation + $rowHeight = 12.75 * $font->getSize() / 10; + break; + } + break; + + default: + // just use Calibri as an approximation + $rowHeight = 15 * $font->getSize() / 11; + break; + } + + return $rowHeight; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/CHANGELOG.TXT b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/CHANGELOG.TXT new file mode 100755 index 0000000..1c18a5d --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/CHANGELOG.TXT @@ -0,0 +1,16 @@ +Mar 1, 2005 11:15 AST by PM + ++ For consistency, renamed Math.php to Maths.java, utils to util, + tests to test, docs to doc - + ++ Removed conditional logic from top of Matrix class. + ++ Switched to using hypo function in Maths.php for all php-hypot calls. + NOTE TO SELF: Need to make sure that all decompositions have been + switched over to using the bundled hypo. + +Feb 25, 2005 at 10:00 AST by PM + ++ Recommend using simpler Error.php instead of JAMA_Error.php but + can be persuaded otherwise. + diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/CholeskyDecomposition.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/CholeskyDecomposition.php new file mode 100755 index 0000000..9d064f9 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/CholeskyDecomposition.php @@ -0,0 +1,149 @@ +<?php +/** + * @package JAMA + * + * Cholesky decomposition class + * + * For a symmetric, positive definite matrix A, the Cholesky decomposition + * is an lower triangular matrix L so that A = L*L'. + * + * If the matrix is not symmetric or positive definite, the constructor + * returns a partial decomposition and sets an internal flag that may + * be queried by the isSPD() method. + * + * @author Paul Meagher + * @author Michael Bommarito + * @version 1.2 + */ +class CholeskyDecomposition { + + /** + * Decomposition storage + * @var array + * @access private + */ + private $L = array(); + + /** + * Matrix row and column dimension + * @var int + * @access private + */ + private $m; + + /** + * Symmetric positive definite flag + * @var boolean + * @access private + */ + private $isspd = true; + + + /** + * CholeskyDecomposition + * + * Class constructor - decomposes symmetric positive definite matrix + * @param mixed Matrix square symmetric positive definite matrix + */ + public function __construct($A = null) { + if ($A instanceof Matrix) { + $this->L = $A->getArray(); + $this->m = $A->getRowDimension(); + + for($i = 0; $i < $this->m; ++$i) { + for($j = $i; $j < $this->m; ++$j) { + for($sum = $this->L[$i][$j], $k = $i - 1; $k >= 0; --$k) { + $sum -= $this->L[$i][$k] * $this->L[$j][$k]; + } + if ($i == $j) { + if ($sum >= 0) { + $this->L[$i][$i] = sqrt($sum); + } else { + $this->isspd = false; + } + } else { + if ($this->L[$i][$i] != 0) { + $this->L[$j][$i] = $sum / $this->L[$i][$i]; + } + } + } + + for ($k = $i+1; $k < $this->m; ++$k) { + $this->L[$i][$k] = 0.0; + } + } + } else { + throw new Exception(JAMAError(ArgumentTypeException)); + } + } // function __construct() + + + /** + * Is the matrix symmetric and positive definite? + * + * @return boolean + */ + public function isSPD() { + return $this->isspd; + } // function isSPD() + + + /** + * getL + * + * Return triangular factor. + * @return Matrix Lower triangular matrix + */ + public function getL() { + return new Matrix($this->L); + } // function getL() + + + /** + * Solve A*X = B + * + * @param $B Row-equal matrix + * @return Matrix L * L' * X = B + */ + public function solve($B = null) { + if ($B instanceof Matrix) { + if ($B->getRowDimension() == $this->m) { + if ($this->isspd) { + $X = $B->getArrayCopy(); + $nx = $B->getColumnDimension(); + + for ($k = 0; $k < $this->m; ++$k) { + for ($i = $k + 1; $i < $this->m; ++$i) { + for ($j = 0; $j < $nx; ++$j) { + $X[$i][$j] -= $X[$k][$j] * $this->L[$i][$k]; + } + } + for ($j = 0; $j < $nx; ++$j) { + $X[$k][$j] /= $this->L[$k][$k]; + } + } + + for ($k = $this->m - 1; $k >= 0; --$k) { + for ($j = 0; $j < $nx; ++$j) { + $X[$k][$j] /= $this->L[$k][$k]; + } + for ($i = 0; $i < $k; ++$i) { + for ($j = 0; $j < $nx; ++$j) { + $X[$i][$j] -= $X[$k][$j] * $this->L[$k][$i]; + } + } + } + + return new Matrix($X, $this->m, $nx); + } else { + throw new Exception(JAMAError(MatrixSPDException)); + } + } else { + throw new Exception(JAMAError(MatrixDimensionException)); + } + } else { + throw new Exception(JAMAError(ArgumentTypeException)); + } + } // function solve() + +} // class CholeskyDecomposition diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php new file mode 100755 index 0000000..2a696d0 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php @@ -0,0 +1,862 @@ +<?php +/** + * @package JAMA + * + * Class to obtain eigenvalues and eigenvectors of a real matrix. + * + * If A is symmetric, then A = V*D*V' where the eigenvalue matrix D + * is diagonal and the eigenvector matrix V is orthogonal (i.e. + * A = V.times(D.times(V.transpose())) and V.times(V.transpose()) + * equals the identity matrix). + * + * If A is not symmetric, then the eigenvalue matrix D is block diagonal + * with the real eigenvalues in 1-by-1 blocks and any complex eigenvalues, + * lambda + i*mu, in 2-by-2 blocks, [lambda, mu; -mu, lambda]. The + * columns of V represent the eigenvectors in the sense that A*V = V*D, + * i.e. A.times(V) equals V.times(D). The matrix V may be badly + * conditioned, or even singular, so the validity of the equation + * A = V*D*inverse(V) depends upon V.cond(). + * + * @author Paul Meagher + * @license PHP v3.0 + * @version 1.1 + */ +class EigenvalueDecomposition { + + /** + * Row and column dimension (square matrix). + * @var int + */ + private $n; + + /** + * Internal symmetry flag. + * @var int + */ + private $issymmetric; + + /** + * Arrays for internal storage of eigenvalues. + * @var array + */ + private $d = array(); + private $e = array(); + + /** + * Array for internal storage of eigenvectors. + * @var array + */ + private $V = array(); + + /** + * Array for internal storage of nonsymmetric Hessenberg form. + * @var array + */ + private $H = array(); + + /** + * Working storage for nonsymmetric algorithm. + * @var array + */ + private $ort; + + /** + * Used for complex scalar division. + * @var float + */ + private $cdivr; + private $cdivi; + + + /** + * Symmetric Householder reduction to tridiagonal form. + * + * @access private + */ + private function tred2 () { + // This is derived from the Algol procedures tred2 by + // Bowdler, Martin, Reinsch, and Wilkinson, Handbook for + // Auto. Comp., Vol.ii-Linear Algebra, and the corresponding + // Fortran subroutine in EISPACK. + $this->d = $this->V[$this->n-1]; + // Householder reduction to tridiagonal form. + for ($i = $this->n-1; $i > 0; --$i) { + $i_ = $i -1; + // Scale to avoid under/overflow. + $h = $scale = 0.0; + $scale += array_sum(array_map(abs, $this->d)); + if ($scale == 0.0) { + $this->e[$i] = $this->d[$i_]; + $this->d = array_slice($this->V[$i_], 0, $i_); + for ($j = 0; $j < $i; ++$j) { + $this->V[$j][$i] = $this->V[$i][$j] = 0.0; + } + } else { + // Generate Householder vector. + for ($k = 0; $k < $i; ++$k) { + $this->d[$k] /= $scale; + $h += pow($this->d[$k], 2); + } + $f = $this->d[$i_]; + $g = sqrt($h); + if ($f > 0) { + $g = -$g; + } + $this->e[$i] = $scale * $g; + $h = $h - $f * $g; + $this->d[$i_] = $f - $g; + for ($j = 0; $j < $i; ++$j) { + $this->e[$j] = 0.0; + } + // Apply similarity transformation to remaining columns. + for ($j = 0; $j < $i; ++$j) { + $f = $this->d[$j]; + $this->V[$j][$i] = $f; + $g = $this->e[$j] + $this->V[$j][$j] * $f; + for ($k = $j+1; $k <= $i_; ++$k) { + $g += $this->V[$k][$j] * $this->d[$k]; + $this->e[$k] += $this->V[$k][$j] * $f; + } + $this->e[$j] = $g; + } + $f = 0.0; + for ($j = 0; $j < $i; ++$j) { + $this->e[$j] /= $h; + $f += $this->e[$j] * $this->d[$j]; + } + $hh = $f / (2 * $h); + for ($j=0; $j < $i; ++$j) { + $this->e[$j] -= $hh * $this->d[$j]; + } + for ($j = 0; $j < $i; ++$j) { + $f = $this->d[$j]; + $g = $this->e[$j]; + for ($k = $j; $k <= $i_; ++$k) { + $this->V[$k][$j] -= ($f * $this->e[$k] + $g * $this->d[$k]); + } + $this->d[$j] = $this->V[$i-1][$j]; + $this->V[$i][$j] = 0.0; + } + } + $this->d[$i] = $h; + } + + // Accumulate transformations. + for ($i = 0; $i < $this->n-1; ++$i) { + $this->V[$this->n-1][$i] = $this->V[$i][$i]; + $this->V[$i][$i] = 1.0; + $h = $this->d[$i+1]; + if ($h != 0.0) { + for ($k = 0; $k <= $i; ++$k) { + $this->d[$k] = $this->V[$k][$i+1] / $h; + } + for ($j = 0; $j <= $i; ++$j) { + $g = 0.0; + for ($k = 0; $k <= $i; ++$k) { + $g += $this->V[$k][$i+1] * $this->V[$k][$j]; + } + for ($k = 0; $k <= $i; ++$k) { + $this->V[$k][$j] -= $g * $this->d[$k]; + } + } + } + for ($k = 0; $k <= $i; ++$k) { + $this->V[$k][$i+1] = 0.0; + } + } + + $this->d = $this->V[$this->n-1]; + $this->V[$this->n-1] = array_fill(0, $j, 0.0); + $this->V[$this->n-1][$this->n-1] = 1.0; + $this->e[0] = 0.0; + } + + + /** + * Symmetric tridiagonal QL algorithm. + * + * This is derived from the Algol procedures tql2, by + * Bowdler, Martin, Reinsch, and Wilkinson, Handbook for + * Auto. Comp., Vol.ii-Linear Algebra, and the corresponding + * Fortran subroutine in EISPACK. + * + * @access private + */ + private function tql2() { + for ($i = 1; $i < $this->n; ++$i) { + $this->e[$i-1] = $this->e[$i]; + } + $this->e[$this->n-1] = 0.0; + $f = 0.0; + $tst1 = 0.0; + $eps = pow(2.0,-52.0); + + for ($l = 0; $l < $this->n; ++$l) { + // Find small subdiagonal element + $tst1 = max($tst1, abs($this->d[$l]) + abs($this->e[$l])); + $m = $l; + while ($m < $this->n) { + if (abs($this->e[$m]) <= $eps * $tst1) + break; + ++$m; + } + // If m == l, $this->d[l] is an eigenvalue, + // otherwise, iterate. + if ($m > $l) { + $iter = 0; + do { + // Could check iteration count here. + $iter += 1; + // Compute implicit shift + $g = $this->d[$l]; + $p = ($this->d[$l+1] - $g) / (2.0 * $this->e[$l]); + $r = hypo($p, 1.0); + if ($p < 0) + $r *= -1; + $this->d[$l] = $this->e[$l] / ($p + $r); + $this->d[$l+1] = $this->e[$l] * ($p + $r); + $dl1 = $this->d[$l+1]; + $h = $g - $this->d[$l]; + for ($i = $l + 2; $i < $this->n; ++$i) + $this->d[$i] -= $h; + $f += $h; + // Implicit QL transformation. + $p = $this->d[$m]; + $c = 1.0; + $c2 = $c3 = $c; + $el1 = $this->e[$l + 1]; + $s = $s2 = 0.0; + for ($i = $m-1; $i >= $l; --$i) { + $c3 = $c2; + $c2 = $c; + $s2 = $s; + $g = $c * $this->e[$i]; + $h = $c * $p; + $r = hypo($p, $this->e[$i]); + $this->e[$i+1] = $s * $r; + $s = $this->e[$i] / $r; + $c = $p / $r; + $p = $c * $this->d[$i] - $s * $g; + $this->d[$i+1] = $h + $s * ($c * $g + $s * $this->d[$i]); + // Accumulate transformation. + for ($k = 0; $k < $this->n; ++$k) { + $h = $this->V[$k][$i+1]; + $this->V[$k][$i+1] = $s * $this->V[$k][$i] + $c * $h; + $this->V[$k][$i] = $c * $this->V[$k][$i] - $s * $h; + } + } + $p = -$s * $s2 * $c3 * $el1 * $this->e[$l] / $dl1; + $this->e[$l] = $s * $p; + $this->d[$l] = $c * $p; + // Check for convergence. + } while (abs($this->e[$l]) > $eps * $tst1); + } + $this->d[$l] = $this->d[$l] + $f; + $this->e[$l] = 0.0; + } + + // Sort eigenvalues and corresponding vectors. + for ($i = 0; $i < $this->n - 1; ++$i) { + $k = $i; + $p = $this->d[$i]; + for ($j = $i+1; $j < $this->n; ++$j) { + if ($this->d[$j] < $p) { + $k = $j; + $p = $this->d[$j]; + } + } + if ($k != $i) { + $this->d[$k] = $this->d[$i]; + $this->d[$i] = $p; + for ($j = 0; $j < $this->n; ++$j) { + $p = $this->V[$j][$i]; + $this->V[$j][$i] = $this->V[$j][$k]; + $this->V[$j][$k] = $p; + } + } + } + } + + + /** + * Nonsymmetric reduction to Hessenberg form. + * + * This is derived from the Algol procedures orthes and ortran, + * by Martin and Wilkinson, Handbook for Auto. Comp., + * Vol.ii-Linear Algebra, and the corresponding + * Fortran subroutines in EISPACK. + * + * @access private + */ + private function orthes () { + $low = 0; + $high = $this->n-1; + + for ($m = $low+1; $m <= $high-1; ++$m) { + // Scale column. + $scale = 0.0; + for ($i = $m; $i <= $high; ++$i) { + $scale = $scale + abs($this->H[$i][$m-1]); + } + if ($scale != 0.0) { + // Compute Householder transformation. + $h = 0.0; + for ($i = $high; $i >= $m; --$i) { + $this->ort[$i] = $this->H[$i][$m-1] / $scale; + $h += $this->ort[$i] * $this->ort[$i]; + } + $g = sqrt($h); + if ($this->ort[$m] > 0) { + $g *= -1; + } + $h -= $this->ort[$m] * $g; + $this->ort[$m] -= $g; + // Apply Householder similarity transformation + // H = (I -u * u' / h) * H * (I -u * u') / h) + for ($j = $m; $j < $this->n; ++$j) { + $f = 0.0; + for ($i = $high; $i >= $m; --$i) { + $f += $this->ort[$i] * $this->H[$i][$j]; + } + $f /= $h; + for ($i = $m; $i <= $high; ++$i) { + $this->H[$i][$j] -= $f * $this->ort[$i]; + } + } + for ($i = 0; $i <= $high; ++$i) { + $f = 0.0; + for ($j = $high; $j >= $m; --$j) { + $f += $this->ort[$j] * $this->H[$i][$j]; + } + $f = $f / $h; + for ($j = $m; $j <= $high; ++$j) { + $this->H[$i][$j] -= $f * $this->ort[$j]; + } + } + $this->ort[$m] = $scale * $this->ort[$m]; + $this->H[$m][$m-1] = $scale * $g; + } + } + + // Accumulate transformations (Algol's ortran). + for ($i = 0; $i < $this->n; ++$i) { + for ($j = 0; $j < $this->n; ++$j) { + $this->V[$i][$j] = ($i == $j ? 1.0 : 0.0); + } + } + for ($m = $high-1; $m >= $low+1; --$m) { + if ($this->H[$m][$m-1] != 0.0) { + for ($i = $m+1; $i <= $high; ++$i) { + $this->ort[$i] = $this->H[$i][$m-1]; + } + for ($j = $m; $j <= $high; ++$j) { + $g = 0.0; + for ($i = $m; $i <= $high; ++$i) { + $g += $this->ort[$i] * $this->V[$i][$j]; + } + // Double division avoids possible underflow + $g = ($g / $this->ort[$m]) / $this->H[$m][$m-1]; + for ($i = $m; $i <= $high; ++$i) { + $this->V[$i][$j] += $g * $this->ort[$i]; + } + } + } + } + } + + + /** + * Performs complex division. + * + * @access private + */ + private function cdiv($xr, $xi, $yr, $yi) { + if (abs($yr) > abs($yi)) { + $r = $yi / $yr; + $d = $yr + $r * $yi; + $this->cdivr = ($xr + $r * $xi) / $d; + $this->cdivi = ($xi - $r * $xr) / $d; + } else { + $r = $yr / $yi; + $d = $yi + $r * $yr; + $this->cdivr = ($r * $xr + $xi) / $d; + $this->cdivi = ($r * $xi - $xr) / $d; + } + } + + + /** + * Nonsymmetric reduction from Hessenberg to real Schur form. + * + * Code is derived from the Algol procedure hqr2, + * by Martin and Wilkinson, Handbook for Auto. Comp., + * Vol.ii-Linear Algebra, and the corresponding + * Fortran subroutine in EISPACK. + * + * @access private + */ + private function hqr2 () { + // Initialize + $nn = $this->n; + $n = $nn - 1; + $low = 0; + $high = $nn - 1; + $eps = pow(2.0, -52.0); + $exshift = 0.0; + $p = $q = $r = $s = $z = 0; + // Store roots isolated by balanc and compute matrix norm + $norm = 0.0; + + for ($i = 0; $i < $nn; ++$i) { + if (($i < $low) OR ($i > $high)) { + $this->d[$i] = $this->H[$i][$i]; + $this->e[$i] = 0.0; + } + for ($j = max($i-1, 0); $j < $nn; ++$j) { + $norm = $norm + abs($this->H[$i][$j]); + } + } + + // Outer loop over eigenvalue index + $iter = 0; + while ($n >= $low) { + // Look for single small sub-diagonal element + $l = $n; + while ($l > $low) { + $s = abs($this->H[$l-1][$l-1]) + abs($this->H[$l][$l]); + if ($s == 0.0) { + $s = $norm; + } + if (abs($this->H[$l][$l-1]) < $eps * $s) { + break; + } + --$l; + } + // Check for convergence + // One root found + if ($l == $n) { + $this->H[$n][$n] = $this->H[$n][$n] + $exshift; + $this->d[$n] = $this->H[$n][$n]; + $this->e[$n] = 0.0; + --$n; + $iter = 0; + // Two roots found + } else if ($l == $n-1) { + $w = $this->H[$n][$n-1] * $this->H[$n-1][$n]; + $p = ($this->H[$n-1][$n-1] - $this->H[$n][$n]) / 2.0; + $q = $p * $p + $w; + $z = sqrt(abs($q)); + $this->H[$n][$n] = $this->H[$n][$n] + $exshift; + $this->H[$n-1][$n-1] = $this->H[$n-1][$n-1] + $exshift; + $x = $this->H[$n][$n]; + // Real pair + if ($q >= 0) { + if ($p >= 0) { + $z = $p + $z; + } else { + $z = $p - $z; + } + $this->d[$n-1] = $x + $z; + $this->d[$n] = $this->d[$n-1]; + if ($z != 0.0) { + $this->d[$n] = $x - $w / $z; + } + $this->e[$n-1] = 0.0; + $this->e[$n] = 0.0; + $x = $this->H[$n][$n-1]; + $s = abs($x) + abs($z); + $p = $x / $s; + $q = $z / $s; + $r = sqrt($p * $p + $q * $q); + $p = $p / $r; + $q = $q / $r; + // Row modification + for ($j = $n-1; $j < $nn; ++$j) { + $z = $this->H[$n-1][$j]; + $this->H[$n-1][$j] = $q * $z + $p * $this->H[$n][$j]; + $this->H[$n][$j] = $q * $this->H[$n][$j] - $p * $z; + } + // Column modification + for ($i = 0; $i <= n; ++$i) { + $z = $this->H[$i][$n-1]; + $this->H[$i][$n-1] = $q * $z + $p * $this->H[$i][$n]; + $this->H[$i][$n] = $q * $this->H[$i][$n] - $p * $z; + } + // Accumulate transformations + for ($i = $low; $i <= $high; ++$i) { + $z = $this->V[$i][$n-1]; + $this->V[$i][$n-1] = $q * $z + $p * $this->V[$i][$n]; + $this->V[$i][$n] = $q * $this->V[$i][$n] - $p * $z; + } + // Complex pair + } else { + $this->d[$n-1] = $x + $p; + $this->d[$n] = $x + $p; + $this->e[$n-1] = $z; + $this->e[$n] = -$z; + } + $n = $n - 2; + $iter = 0; + // No convergence yet + } else { + // Form shift + $x = $this->H[$n][$n]; + $y = 0.0; + $w = 0.0; + if ($l < $n) { + $y = $this->H[$n-1][$n-1]; + $w = $this->H[$n][$n-1] * $this->H[$n-1][$n]; + } + // Wilkinson's original ad hoc shift + if ($iter == 10) { + $exshift += $x; + for ($i = $low; $i <= $n; ++$i) { + $this->H[$i][$i] -= $x; + } + $s = abs($this->H[$n][$n-1]) + abs($this->H[$n-1][$n-2]); + $x = $y = 0.75 * $s; + $w = -0.4375 * $s * $s; + } + // MATLAB's new ad hoc shift + if ($iter == 30) { + $s = ($y - $x) / 2.0; + $s = $s * $s + $w; + if ($s > 0) { + $s = sqrt($s); + if ($y < $x) { + $s = -$s; + } + $s = $x - $w / (($y - $x) / 2.0 + $s); + for ($i = $low; $i <= $n; ++$i) { + $this->H[$i][$i] -= $s; + } + $exshift += $s; + $x = $y = $w = 0.964; + } + } + // Could check iteration count here. + $iter = $iter + 1; + // Look for two consecutive small sub-diagonal elements + $m = $n - 2; + while ($m >= $l) { + $z = $this->H[$m][$m]; + $r = $x - $z; + $s = $y - $z; + $p = ($r * $s - $w) / $this->H[$m+1][$m] + $this->H[$m][$m+1]; + $q = $this->H[$m+1][$m+1] - $z - $r - $s; + $r = $this->H[$m+2][$m+1]; + $s = abs($p) + abs($q) + abs($r); + $p = $p / $s; + $q = $q / $s; + $r = $r / $s; + if ($m == $l) { + break; + } + if (abs($this->H[$m][$m-1]) * (abs($q) + abs($r)) < + $eps * (abs($p) * (abs($this->H[$m-1][$m-1]) + abs($z) + abs($this->H[$m+1][$m+1])))) { + break; + } + --$m; + } + for ($i = $m + 2; $i <= $n; ++$i) { + $this->H[$i][$i-2] = 0.0; + if ($i > $m+2) { + $this->H[$i][$i-3] = 0.0; + } + } + // Double QR step involving rows l:n and columns m:n + for ($k = $m; $k <= $n-1; ++$k) { + $notlast = ($k != $n-1); + if ($k != $m) { + $p = $this->H[$k][$k-1]; + $q = $this->H[$k+1][$k-1]; + $r = ($notlast ? $this->H[$k+2][$k-1] : 0.0); + $x = abs($p) + abs($q) + abs($r); + if ($x != 0.0) { + $p = $p / $x; + $q = $q / $x; + $r = $r / $x; + } + } + if ($x == 0.0) { + break; + } + $s = sqrt($p * $p + $q * $q + $r * $r); + if ($p < 0) { + $s = -$s; + } + if ($s != 0) { + if ($k != $m) { + $this->H[$k][$k-1] = -$s * $x; + } elseif ($l != $m) { + $this->H[$k][$k-1] = -$this->H[$k][$k-1]; + } + $p = $p + $s; + $x = $p / $s; + $y = $q / $s; + $z = $r / $s; + $q = $q / $p; + $r = $r / $p; + // Row modification + for ($j = $k; $j < $nn; ++$j) { + $p = $this->H[$k][$j] + $q * $this->H[$k+1][$j]; + if ($notlast) { + $p = $p + $r * $this->H[$k+2][$j]; + $this->H[$k+2][$j] = $this->H[$k+2][$j] - $p * $z; + } + $this->H[$k][$j] = $this->H[$k][$j] - $p * $x; + $this->H[$k+1][$j] = $this->H[$k+1][$j] - $p * $y; + } + // Column modification + for ($i = 0; $i <= min($n, $k+3); ++$i) { + $p = $x * $this->H[$i][$k] + $y * $this->H[$i][$k+1]; + if ($notlast) { + $p = $p + $z * $this->H[$i][$k+2]; + $this->H[$i][$k+2] = $this->H[$i][$k+2] - $p * $r; + } + $this->H[$i][$k] = $this->H[$i][$k] - $p; + $this->H[$i][$k+1] = $this->H[$i][$k+1] - $p * $q; + } + // Accumulate transformations + for ($i = $low; $i <= $high; ++$i) { + $p = $x * $this->V[$i][$k] + $y * $this->V[$i][$k+1]; + if ($notlast) { + $p = $p + $z * $this->V[$i][$k+2]; + $this->V[$i][$k+2] = $this->V[$i][$k+2] - $p * $r; + } + $this->V[$i][$k] = $this->V[$i][$k] - $p; + $this->V[$i][$k+1] = $this->V[$i][$k+1] - $p * $q; + } + } // ($s != 0) + } // k loop + } // check convergence + } // while ($n >= $low) + + // Backsubstitute to find vectors of upper triangular form + if ($norm == 0.0) { + return; + } + + for ($n = $nn-1; $n >= 0; --$n) { + $p = $this->d[$n]; + $q = $this->e[$n]; + // Real vector + if ($q == 0) { + $l = $n; + $this->H[$n][$n] = 1.0; + for ($i = $n-1; $i >= 0; --$i) { + $w = $this->H[$i][$i] - $p; + $r = 0.0; + for ($j = $l; $j <= $n; ++$j) { + $r = $r + $this->H[$i][$j] * $this->H[$j][$n]; + } + if ($this->e[$i] < 0.0) { + $z = $w; + $s = $r; + } else { + $l = $i; + if ($this->e[$i] == 0.0) { + if ($w != 0.0) { + $this->H[$i][$n] = -$r / $w; + } else { + $this->H[$i][$n] = -$r / ($eps * $norm); + } + // Solve real equations + } else { + $x = $this->H[$i][$i+1]; + $y = $this->H[$i+1][$i]; + $q = ($this->d[$i] - $p) * ($this->d[$i] - $p) + $this->e[$i] * $this->e[$i]; + $t = ($x * $s - $z * $r) / $q; + $this->H[$i][$n] = $t; + if (abs($x) > abs($z)) { + $this->H[$i+1][$n] = (-$r - $w * $t) / $x; + } else { + $this->H[$i+1][$n] = (-$s - $y * $t) / $z; + } + } + // Overflow control + $t = abs($this->H[$i][$n]); + if (($eps * $t) * $t > 1) { + for ($j = $i; $j <= $n; ++$j) { + $this->H[$j][$n] = $this->H[$j][$n] / $t; + } + } + } + } + // Complex vector + } else if ($q < 0) { + $l = $n-1; + // Last vector component imaginary so matrix is triangular + if (abs($this->H[$n][$n-1]) > abs($this->H[$n-1][$n])) { + $this->H[$n-1][$n-1] = $q / $this->H[$n][$n-1]; + $this->H[$n-1][$n] = -($this->H[$n][$n] - $p) / $this->H[$n][$n-1]; + } else { + $this->cdiv(0.0, -$this->H[$n-1][$n], $this->H[$n-1][$n-1] - $p, $q); + $this->H[$n-1][$n-1] = $this->cdivr; + $this->H[$n-1][$n] = $this->cdivi; + } + $this->H[$n][$n-1] = 0.0; + $this->H[$n][$n] = 1.0; + for ($i = $n-2; $i >= 0; --$i) { + // double ra,sa,vr,vi; + $ra = 0.0; + $sa = 0.0; + for ($j = $l; $j <= $n; ++$j) { + $ra = $ra + $this->H[$i][$j] * $this->H[$j][$n-1]; + $sa = $sa + $this->H[$i][$j] * $this->H[$j][$n]; + } + $w = $this->H[$i][$i] - $p; + if ($this->e[$i] < 0.0) { + $z = $w; + $r = $ra; + $s = $sa; + } else { + $l = $i; + if ($this->e[$i] == 0) { + $this->cdiv(-$ra, -$sa, $w, $q); + $this->H[$i][$n-1] = $this->cdivr; + $this->H[$i][$n] = $this->cdivi; + } else { + // Solve complex equations + $x = $this->H[$i][$i+1]; + $y = $this->H[$i+1][$i]; + $vr = ($this->d[$i] - $p) * ($this->d[$i] - $p) + $this->e[$i] * $this->e[$i] - $q * $q; + $vi = ($this->d[$i] - $p) * 2.0 * $q; + if ($vr == 0.0 & $vi == 0.0) { + $vr = $eps * $norm * (abs($w) + abs($q) + abs($x) + abs($y) + abs($z)); + } + $this->cdiv($x * $r - $z * $ra + $q * $sa, $x * $s - $z * $sa - $q * $ra, $vr, $vi); + $this->H[$i][$n-1] = $this->cdivr; + $this->H[$i][$n] = $this->cdivi; + if (abs($x) > (abs($z) + abs($q))) { + $this->H[$i+1][$n-1] = (-$ra - $w * $this->H[$i][$n-1] + $q * $this->H[$i][$n]) / $x; + $this->H[$i+1][$n] = (-$sa - $w * $this->H[$i][$n] - $q * $this->H[$i][$n-1]) / $x; + } else { + $this->cdiv(-$r - $y * $this->H[$i][$n-1], -$s - $y * $this->H[$i][$n], $z, $q); + $this->H[$i+1][$n-1] = $this->cdivr; + $this->H[$i+1][$n] = $this->cdivi; + } + } + // Overflow control + $t = max(abs($this->H[$i][$n-1]),abs($this->H[$i][$n])); + if (($eps * $t) * $t > 1) { + for ($j = $i; $j <= $n; ++$j) { + $this->H[$j][$n-1] = $this->H[$j][$n-1] / $t; + $this->H[$j][$n] = $this->H[$j][$n] / $t; + } + } + } // end else + } // end for + } // end else for complex case + } // end for + + // Vectors of isolated roots + for ($i = 0; $i < $nn; ++$i) { + if ($i < $low | $i > $high) { + for ($j = $i; $j < $nn; ++$j) { + $this->V[$i][$j] = $this->H[$i][$j]; + } + } + } + + // Back transformation to get eigenvectors of original matrix + for ($j = $nn-1; $j >= $low; --$j) { + for ($i = $low; $i <= $high; ++$i) { + $z = 0.0; + for ($k = $low; $k <= min($j,$high); ++$k) { + $z = $z + $this->V[$i][$k] * $this->H[$k][$j]; + } + $this->V[$i][$j] = $z; + } + } + } // end hqr2 + + + /** + * Constructor: Check for symmetry, then construct the eigenvalue decomposition + * + * @access public + * @param A Square matrix + * @return Structure to access D and V. + */ + public function __construct($Arg) { + $this->A = $Arg->getArray(); + $this->n = $Arg->getColumnDimension(); + + $issymmetric = true; + for ($j = 0; ($j < $this->n) & $issymmetric; ++$j) { + for ($i = 0; ($i < $this->n) & $issymmetric; ++$i) { + $issymmetric = ($this->A[$i][$j] == $this->A[$j][$i]); + } + } + + if ($issymmetric) { + $this->V = $this->A; + // Tridiagonalize. + $this->tred2(); + // Diagonalize. + $this->tql2(); + } else { + $this->H = $this->A; + $this->ort = array(); + // Reduce to Hessenberg form. + $this->orthes(); + // Reduce Hessenberg to real Schur form. + $this->hqr2(); + } + } + + + /** + * Return the eigenvector matrix + * + * @access public + * @return V + */ + public function getV() { + return new Matrix($this->V, $this->n, $this->n); + } + + + /** + * Return the real parts of the eigenvalues + * + * @access public + * @return real(diag(D)) + */ + public function getRealEigenvalues() { + return $this->d; + } + + + /** + * Return the imaginary parts of the eigenvalues + * + * @access public + * @return imag(diag(D)) + */ + public function getImagEigenvalues() { + return $this->e; + } + + + /** + * Return the block diagonal eigenvalue matrix + * + * @access public + * @return D + */ + public function getD() { + for ($i = 0; $i < $this->n; ++$i) { + $D[$i] = array_fill(0, $this->n, 0.0); + $D[$i][$i] = $this->d[$i]; + if ($this->e[$i] == 0) { + continue; + } + $o = ($this->e[$i] > 0) ? $i + 1 : $i - 1; + $D[$i][$o] = $this->e[$i]; + } + return new Matrix($D); + } + +} // class EigenvalueDecomposition diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/LUDecomposition.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/LUDecomposition.php new file mode 100755 index 0000000..6c797a6 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/LUDecomposition.php @@ -0,0 +1,258 @@ +<?php +/** + * @package JAMA + * + * For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n + * unit lower triangular matrix L, an n-by-n upper triangular matrix U, + * and a permutation vector piv of length m so that A(piv,:) = L*U. + * If m < n, then L is m-by-m and U is m-by-n. + * + * The LU decompostion with pivoting always exists, even if the matrix is + * singular, so the constructor will never fail. The primary use of the + * LU decomposition is in the solution of square systems of simultaneous + * linear equations. This will fail if isNonsingular() returns false. + * + * @author Paul Meagher + * @author Bartosz Matosiuk + * @author Michael Bommarito + * @version 1.1 + * @license PHP v3.0 + */ +class PHPExcel_Shared_JAMA_LUDecomposition { + + const MatrixSingularException = "Can only perform operation on singular matrix."; + const MatrixSquareException = "Mismatched Row dimension"; + + /** + * Decomposition storage + * @var array + */ + private $LU = array(); + + /** + * Row dimension. + * @var int + */ + private $m; + + /** + * Column dimension. + * @var int + */ + private $n; + + /** + * Pivot sign. + * @var int + */ + private $pivsign; + + /** + * Internal storage of pivot vector. + * @var array + */ + private $piv = array(); + + + /** + * LU Decomposition constructor. + * + * @param $A Rectangular matrix + * @return Structure to access L, U and piv. + */ + public function __construct($A) { + if ($A instanceof PHPExcel_Shared_JAMA_Matrix) { + // Use a "left-looking", dot-product, Crout/Doolittle algorithm. + $this->LU = $A->getArray(); + $this->m = $A->getRowDimension(); + $this->n = $A->getColumnDimension(); + for ($i = 0; $i < $this->m; ++$i) { + $this->piv[$i] = $i; + } + $this->pivsign = 1; + $LUrowi = $LUcolj = array(); + + // Outer loop. + for ($j = 0; $j < $this->n; ++$j) { + // Make a copy of the j-th column to localize references. + for ($i = 0; $i < $this->m; ++$i) { + $LUcolj[$i] = &$this->LU[$i][$j]; + } + // Apply previous transformations. + for ($i = 0; $i < $this->m; ++$i) { + $LUrowi = $this->LU[$i]; + // Most of the time is spent in the following dot product. + $kmax = min($i,$j); + $s = 0.0; + for ($k = 0; $k < $kmax; ++$k) { + $s += $LUrowi[$k] * $LUcolj[$k]; + } + $LUrowi[$j] = $LUcolj[$i] -= $s; + } + // Find pivot and exchange if necessary. + $p = $j; + for ($i = $j+1; $i < $this->m; ++$i) { + if (abs($LUcolj[$i]) > abs($LUcolj[$p])) { + $p = $i; + } + } + if ($p != $j) { + for ($k = 0; $k < $this->n; ++$k) { + $t = $this->LU[$p][$k]; + $this->LU[$p][$k] = $this->LU[$j][$k]; + $this->LU[$j][$k] = $t; + } + $k = $this->piv[$p]; + $this->piv[$p] = $this->piv[$j]; + $this->piv[$j] = $k; + $this->pivsign = $this->pivsign * -1; + } + // Compute multipliers. + if (($j < $this->m) && ($this->LU[$j][$j] != 0.0)) { + for ($i = $j+1; $i < $this->m; ++$i) { + $this->LU[$i][$j] /= $this->LU[$j][$j]; + } + } + } + } else { + throw new Exception(PHPExcel_Shared_JAMA_Matrix::ArgumentTypeException); + } + } // function __construct() + + + /** + * Get lower triangular factor. + * + * @return array Lower triangular factor + */ + public function getL() { + for ($i = 0; $i < $this->m; ++$i) { + for ($j = 0; $j < $this->n; ++$j) { + if ($i > $j) { + $L[$i][$j] = $this->LU[$i][$j]; + } elseif ($i == $j) { + $L[$i][$j] = 1.0; + } else { + $L[$i][$j] = 0.0; + } + } + } + return new PHPExcel_Shared_JAMA_Matrix($L); + } // function getL() + + + /** + * Get upper triangular factor. + * + * @return array Upper triangular factor + */ + public function getU() { + for ($i = 0; $i < $this->n; ++$i) { + for ($j = 0; $j < $this->n; ++$j) { + if ($i <= $j) { + $U[$i][$j] = $this->LU[$i][$j]; + } else { + $U[$i][$j] = 0.0; + } + } + } + return new PHPExcel_Shared_JAMA_Matrix($U); + } // function getU() + + + /** + * Return pivot permutation vector. + * + * @return array Pivot vector + */ + public function getPivot() { + return $this->piv; + } // function getPivot() + + + /** + * Alias for getPivot + * + * @see getPivot + */ + public function getDoublePivot() { + return $this->getPivot(); + } // function getDoublePivot() + + + /** + * Is the matrix nonsingular? + * + * @return true if U, and hence A, is nonsingular. + */ + public function isNonsingular() { + for ($j = 0; $j < $this->n; ++$j) { + if ($this->LU[$j][$j] == 0) { + return false; + } + } + return true; + } // function isNonsingular() + + + /** + * Count determinants + * + * @return array d matrix deterninat + */ + public function det() { + if ($this->m == $this->n) { + $d = $this->pivsign; + for ($j = 0; $j < $this->n; ++$j) { + $d *= $this->LU[$j][$j]; + } + return $d; + } else { + throw new Exception(PHPExcel_Shared_JAMA_Matrix::MatrixDimensionException); + } + } // function det() + + + /** + * Solve A*X = B + * + * @param $B A Matrix with as many rows as A and any number of columns. + * @return X so that L*U*X = B(piv,:) + * @exception IllegalArgumentException Matrix row dimensions must agree. + * @exception RuntimeException Matrix is singular. + */ + public function solve($B) { + if ($B->getRowDimension() == $this->m) { + if ($this->isNonsingular()) { + // Copy right hand side with pivoting + $nx = $B->getColumnDimension(); + $X = $B->getMatrix($this->piv, 0, $nx-1); + // Solve L*Y = B(piv,:) + for ($k = 0; $k < $this->n; ++$k) { + for ($i = $k+1; $i < $this->n; ++$i) { + for ($j = 0; $j < $nx; ++$j) { + $X->A[$i][$j] -= $X->A[$k][$j] * $this->LU[$i][$k]; + } + } + } + // Solve U*X = Y; + for ($k = $this->n-1; $k >= 0; --$k) { + for ($j = 0; $j < $nx; ++$j) { + $X->A[$k][$j] /= $this->LU[$k][$k]; + } + for ($i = 0; $i < $k; ++$i) { + for ($j = 0; $j < $nx; ++$j) { + $X->A[$i][$j] -= $X->A[$k][$j] * $this->LU[$i][$k]; + } + } + } + return $X; + } else { + throw new Exception(self::MatrixSingularException); + } + } else { + throw new Exception(self::MatrixSquareException); + } + } // function solve() + +} // class PHPExcel_Shared_JAMA_LUDecomposition diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/Matrix.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/Matrix.php new file mode 100755 index 0000000..aae40e4 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/Matrix.php @@ -0,0 +1,1059 @@ +<?php +/** + * @package JAMA + */ + +/** PHPExcel root directory */ +if (!defined('PHPEXCEL_ROOT')) { + /** + * @ignore + */ + define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../../'); + require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); +} + + +/* + * Matrix class + * + * @author Paul Meagher + * @author Michael Bommarito + * @author Lukasz Karapuda + * @author Bartek Matosiuk + * @version 1.8 + * @license PHP v3.0 + * @see http://math.nist.gov/javanumerics/jama/ + */ +class PHPExcel_Shared_JAMA_Matrix { + + + const PolymorphicArgumentException = "Invalid argument pattern for polymorphic function."; + const ArgumentTypeException = "Invalid argument type."; + const ArgumentBoundsException = "Invalid argument range."; + const MatrixDimensionException = "Matrix dimensions are not equal."; + const ArrayLengthException = "Array length must be a multiple of m."; + + /** + * Matrix storage + * + * @var array + * @access public + */ + public $A = array(); + + /** + * Matrix row dimension + * + * @var int + * @access private + */ + private $m; + + /** + * Matrix column dimension + * + * @var int + * @access private + */ + private $n; + + + /** + * Polymorphic constructor + * + * As PHP has no support for polymorphic constructors, we hack our own sort of polymorphism using func_num_args, func_get_arg, and gettype. In essence, we're just implementing a simple RTTI filter and calling the appropriate constructor. + */ + public function __construct() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + //Rectangular matrix - m x n initialized from 2D array + case 'array': + $this->m = count($args[0]); + $this->n = count($args[0][0]); + $this->A = $args[0]; + break; + //Square matrix - n x n + case 'integer': + $this->m = $args[0]; + $this->n = $args[0]; + $this->A = array_fill(0, $this->m, array_fill(0, $this->n, 0)); + break; + //Rectangular matrix - m x n + case 'integer,integer': + $this->m = $args[0]; + $this->n = $args[1]; + $this->A = array_fill(0, $this->m, array_fill(0, $this->n, 0)); + break; + //Rectangular matrix - m x n initialized from packed array + case 'array,integer': + $this->m = $args[1]; + if ($this->m != 0) { + $this->n = count($args[0]) / $this->m; + } else { + $this->n = 0; + } + if (($this->m * $this->n) == count($args[0])) { + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $this->A[$i][$j] = $args[0][$i + $j * $this->m]; + } + } + } else { + throw new Exception(self::ArrayLengthException); + } + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function __construct() + + + /** + * getArray + * + * @return array Matrix array + */ + public function getArray() { + return $this->A; + } // function getArray() + + + /** + * getRowDimension + * + * @return int Row dimension + */ + public function getRowDimension() { + return $this->m; + } // function getRowDimension() + + + /** + * getColumnDimension + * + * @return int Column dimension + */ + public function getColumnDimension() { + return $this->n; + } // function getColumnDimension() + + + /** + * get + * + * Get the i,j-th element of the matrix. + * @param int $i Row position + * @param int $j Column position + * @return mixed Element (int/float/double) + */ + public function get($i = null, $j = null) { + return $this->A[$i][$j]; + } // function get() + + + /** + * getMatrix + * + * Get a submatrix + * @param int $i0 Initial row index + * @param int $iF Final row index + * @param int $j0 Initial column index + * @param int $jF Final column index + * @return Matrix Submatrix + */ + public function getMatrix() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + //A($i0...; $j0...) + case 'integer,integer': + list($i0, $j0) = $args; + if ($i0 >= 0) { $m = $this->m - $i0; } else { throw new Exception(self::ArgumentBoundsException); } + if ($j0 >= 0) { $n = $this->n - $j0; } else { throw new Exception(self::ArgumentBoundsException); } + $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); + for($i = $i0; $i < $this->m; ++$i) { + for($j = $j0; $j < $this->n; ++$j) { + $R->set($i, $j, $this->A[$i][$j]); + } + } + return $R; + break; + //A($i0...$iF; $j0...$jF) + case 'integer,integer,integer,integer': + list($i0, $iF, $j0, $jF) = $args; + if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) { $m = $iF - $i0; } else { throw new Exception(self::ArgumentBoundsException); } + if (($jF > $j0) && ($this->n >= $jF) && ($j0 >= 0)) { $n = $jF - $j0; } else { throw new Exception(self::ArgumentBoundsException); } + $R = new PHPExcel_Shared_JAMA_Matrix($m+1, $n+1); + for($i = $i0; $i <= $iF; ++$i) { + for($j = $j0; $j <= $jF; ++$j) { + $R->set($i - $i0, $j - $j0, $this->A[$i][$j]); + } + } + return $R; + break; + //$R = array of row indices; $C = array of column indices + case 'array,array': + list($RL, $CL) = $args; + if (count($RL) > 0) { $m = count($RL); } else { throw new Exception(self::ArgumentBoundsException); } + if (count($CL) > 0) { $n = count($CL); } else { throw new Exception(self::ArgumentBoundsException); } + $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); + for($i = 0; $i < $m; ++$i) { + for($j = 0; $j < $n; ++$j) { + $R->set($i - $i0, $j - $j0, $this->A[$RL[$i]][$CL[$j]]); + } + } + return $R; + break; + //$RL = array of row indices; $CL = array of column indices + case 'array,array': + list($RL, $CL) = $args; + if (count($RL) > 0) { $m = count($RL); } else { throw new Exception(self::ArgumentBoundsException); } + if (count($CL) > 0) { $n = count($CL); } else { throw new Exception(self::ArgumentBoundsException); } + $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); + for($i = 0; $i < $m; ++$i) { + for($j = 0; $j < $n; ++$j) { + $R->set($i, $j, $this->A[$RL[$i]][$CL[$j]]); + } + } + return $R; + break; + //A($i0...$iF); $CL = array of column indices + case 'integer,integer,array': + list($i0, $iF, $CL) = $args; + if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) { $m = $iF - $i0; } else { throw new Exception(self::ArgumentBoundsException); } + if (count($CL) > 0) { $n = count($CL); } else { throw new Exception(self::ArgumentBoundsException); } + $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); + for($i = $i0; $i < $iF; ++$i) { + for($j = 0; $j < $n; ++$j) { + $R->set($i - $i0, $j, $this->A[$RL[$i]][$j]); + } + } + return $R; + break; + //$RL = array of row indices + case 'array,integer,integer': + list($RL, $j0, $jF) = $args; + if (count($RL) > 0) { $m = count($RL); } else { throw new Exception(self::ArgumentBoundsException); } + if (($jF >= $j0) && ($this->n >= $jF) && ($j0 >= 0)) { $n = $jF - $j0; } else { throw new Exception(self::ArgumentBoundsException); } + $R = new PHPExcel_Shared_JAMA_Matrix($m, $n+1); + for($i = 0; $i < $m; ++$i) { + for($j = $j0; $j <= $jF; ++$j) { + $R->set($i, $j - $j0, $this->A[$RL[$i]][$j]); + } + } + return $R; + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function getMatrix() + + + /** + * checkMatrixDimensions + * + * Is matrix B the same size? + * @param Matrix $B Matrix B + * @return boolean + */ + public function checkMatrixDimensions($B = null) { + if ($B instanceof PHPExcel_Shared_JAMA_Matrix) { + if (($this->m == $B->getRowDimension()) && ($this->n == $B->getColumnDimension())) { + return true; + } else { + throw new Exception(self::MatrixDimensionException); + } + } else { + throw new Exception(self::ArgumentTypeException); + } + } // function checkMatrixDimensions() + + + + /** + * set + * + * Set the i,j-th element of the matrix. + * @param int $i Row position + * @param int $j Column position + * @param mixed $c Int/float/double value + * @return mixed Element (int/float/double) + */ + public function set($i = null, $j = null, $c = null) { + // Optimized set version just has this + $this->A[$i][$j] = $c; + } // function set() + + + /** + * identity + * + * Generate an identity matrix. + * @param int $m Row dimension + * @param int $n Column dimension + * @return Matrix Identity matrix + */ + public function identity($m = null, $n = null) { + return $this->diagonal($m, $n, 1); + } // function identity() + + + /** + * diagonal + * + * Generate a diagonal matrix + * @param int $m Row dimension + * @param int $n Column dimension + * @param mixed $c Diagonal value + * @return Matrix Diagonal matrix + */ + public function diagonal($m = null, $n = null, $c = 1) { + $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); + for($i = 0; $i < $m; ++$i) { + $R->set($i, $i, $c); + } + return $R; + } // function diagonal() + + + /** + * getMatrixByRow + * + * Get a submatrix by row index/range + * @param int $i0 Initial row index + * @param int $iF Final row index + * @return Matrix Submatrix + */ + public function getMatrixByRow($i0 = null, $iF = null) { + if (is_int($i0)) { + if (is_int($iF)) { + return $this->getMatrix($i0, 0, $iF + 1, $this->n); + } else { + return $this->getMatrix($i0, 0, $i0 + 1, $this->n); + } + } else { + throw new Exception(self::ArgumentTypeException); + } + } // function getMatrixByRow() + + + /** + * getMatrixByCol + * + * Get a submatrix by column index/range + * @param int $i0 Initial column index + * @param int $iF Final column index + * @return Matrix Submatrix + */ + public function getMatrixByCol($j0 = null, $jF = null) { + if (is_int($j0)) { + if (is_int($jF)) { + return $this->getMatrix(0, $j0, $this->m, $jF + 1); + } else { + return $this->getMatrix(0, $j0, $this->m, $j0 + 1); + } + } else { + throw new Exception(self::ArgumentTypeException); + } + } // function getMatrixByCol() + + + /** + * transpose + * + * Tranpose matrix + * @return Matrix Transposed matrix + */ + public function transpose() { + $R = new PHPExcel_Shared_JAMA_Matrix($this->n, $this->m); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $R->set($j, $i, $this->A[$i][$j]); + } + } + return $R; + } // function transpose() + + + /** + * trace + * + * Sum of diagonal elements + * @return float Sum of diagonal elements + */ + public function trace() { + $s = 0; + $n = min($this->m, $this->n); + for($i = 0; $i < $n; ++$i) { + $s += $this->A[$i][$i]; + } + return $s; + } // function trace() + + + /** + * uminus + * + * Unary minus matrix -A + * @return Matrix Unary minus matrix + */ + public function uminus() { + } // function uminus() + + + /** + * plus + * + * A + B + * @param mixed $B Matrix/Array + * @return Matrix Sum + */ + public function plus() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $M->set($i, $j, $M->get($i, $j) + $this->A[$i][$j]); + } + } + return $M; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function plus() + + + /** + * plusEquals + * + * A = A + B + * @param mixed $B Matrix/Array + * @return Matrix Sum + */ + public function plusEquals() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $validValues = True; + $value = $M->get($i, $j); + if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { + $this->A[$i][$j] = trim($this->A[$i][$j],'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); + } + if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { + $value = trim($value,'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); + } + if ($validValues) { + $this->A[$i][$j] += $value; + } else { + $this->A[$i][$j] = PHPExcel_Calculation_Functions::NaN(); + } + } + } + return $this; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function plusEquals() + + + /** + * minus + * + * A - B + * @param mixed $B Matrix/Array + * @return Matrix Sum + */ + public function minus() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $M->set($i, $j, $M->get($i, $j) - $this->A[$i][$j]); + } + } + return $M; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function minus() + + + /** + * minusEquals + * + * A = A - B + * @param mixed $B Matrix/Array + * @return Matrix Sum + */ + public function minusEquals() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $validValues = True; + $value = $M->get($i, $j); + if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { + $this->A[$i][$j] = trim($this->A[$i][$j],'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); + } + if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { + $value = trim($value,'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); + } + if ($validValues) { + $this->A[$i][$j] -= $value; + } else { + $this->A[$i][$j] = PHPExcel_Calculation_Functions::NaN(); + } + } + } + return $this; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function minusEquals() + + + /** + * arrayTimes + * + * Element-by-element multiplication + * Cij = Aij * Bij + * @param mixed $B Matrix/Array + * @return Matrix Matrix Cij + */ + public function arrayTimes() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $M->set($i, $j, $M->get($i, $j) * $this->A[$i][$j]); + } + } + return $M; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function arrayTimes() + + + /** + * arrayTimesEquals + * + * Element-by-element multiplication + * Aij = Aij * Bij + * @param mixed $B Matrix/Array + * @return Matrix Matrix Aij + */ + public function arrayTimesEquals() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $validValues = True; + $value = $M->get($i, $j); + if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { + $this->A[$i][$j] = trim($this->A[$i][$j],'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); + } + if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { + $value = trim($value,'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); + } + if ($validValues) { + $this->A[$i][$j] *= $value; + } else { + $this->A[$i][$j] = PHPExcel_Calculation_Functions::NaN(); + } + } + } + return $this; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function arrayTimesEquals() + + + /** + * arrayRightDivide + * + * Element-by-element right division + * A / B + * @param Matrix $B Matrix B + * @return Matrix Division result + */ + public function arrayRightDivide() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $validValues = True; + $value = $M->get($i, $j); + if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { + $this->A[$i][$j] = trim($this->A[$i][$j],'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); + } + if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { + $value = trim($value,'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); + } + if ($validValues) { + if ($value == 0) { + // Trap for Divide by Zero error + $M->set($i, $j, '#DIV/0!'); + } else { + $M->set($i, $j, $this->A[$i][$j] / $value); + } + } else { + $M->set($i, $j, PHPExcel_Calculation_Functions::NaN()); + } + } + } + return $M; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function arrayRightDivide() + + + /** + * arrayRightDivideEquals + * + * Element-by-element right division + * Aij = Aij / Bij + * @param mixed $B Matrix/Array + * @return Matrix Matrix Aij + */ + public function arrayRightDivideEquals() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $this->A[$i][$j] = $this->A[$i][$j] / $M->get($i, $j); + } + } + return $M; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function arrayRightDivideEquals() + + + /** + * arrayLeftDivide + * + * Element-by-element Left division + * A / B + * @param Matrix $B Matrix B + * @return Matrix Division result + */ + public function arrayLeftDivide() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $M->set($i, $j, $M->get($i, $j) / $this->A[$i][$j]); + } + } + return $M; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function arrayLeftDivide() + + + /** + * arrayLeftDivideEquals + * + * Element-by-element Left division + * Aij = Aij / Bij + * @param mixed $B Matrix/Array + * @return Matrix Matrix Aij + */ + public function arrayLeftDivideEquals() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $this->A[$i][$j] = $M->get($i, $j) / $this->A[$i][$j]; + } + } + return $M; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function arrayLeftDivideEquals() + + + /** + * times + * + * Matrix multiplication + * @param mixed $n Matrix/Array/Scalar + * @return Matrix Product + */ + public function times() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $B = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + if ($this->n == $B->m) { + $C = new PHPExcel_Shared_JAMA_Matrix($this->m, $B->n); + for($j = 0; $j < $B->n; ++$j) { + for ($k = 0; $k < $this->n; ++$k) { + $Bcolj[$k] = $B->A[$k][$j]; + } + for($i = 0; $i < $this->m; ++$i) { + $Arowi = $this->A[$i]; + $s = 0; + for($k = 0; $k < $this->n; ++$k) { + $s += $Arowi[$k] * $Bcolj[$k]; + } + $C->A[$i][$j] = $s; + } + } + return $C; + } else { + throw new Exception(JAMAError(MatrixDimensionMismatch)); + } + break; + case 'array': + $B = new PHPExcel_Shared_JAMA_Matrix($args[0]); + if ($this->n == $B->m) { + $C = new PHPExcel_Shared_JAMA_Matrix($this->m, $B->n); + for($i = 0; $i < $C->m; ++$i) { + for($j = 0; $j < $C->n; ++$j) { + $s = "0"; + for($k = 0; $k < $C->n; ++$k) { + $s += $this->A[$i][$k] * $B->A[$k][$j]; + } + $C->A[$i][$j] = $s; + } + } + return $C; + } else { + throw new Exception(JAMAError(MatrixDimensionMismatch)); + } + return $M; + break; + case 'integer': + $C = new PHPExcel_Shared_JAMA_Matrix($this->A); + for($i = 0; $i < $C->m; ++$i) { + for($j = 0; $j < $C->n; ++$j) { + $C->A[$i][$j] *= $args[0]; + } + } + return $C; + break; + case 'double': + $C = new PHPExcel_Shared_JAMA_Matrix($this->m, $this->n); + for($i = 0; $i < $C->m; ++$i) { + for($j = 0; $j < $C->n; ++$j) { + $C->A[$i][$j] = $args[0] * $this->A[$i][$j]; + } + } + return $C; + break; + case 'float': + $C = new PHPExcel_Shared_JAMA_Matrix($this->A); + for($i = 0; $i < $C->m; ++$i) { + for($j = 0; $j < $C->n; ++$j) { + $C->A[$i][$j] *= $args[0]; + } + } + return $C; + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function times() + + + /** + * power + * + * A = A ^ B + * @param mixed $B Matrix/Array + * @return Matrix Sum + */ + public function power() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + break; + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $validValues = True; + $value = $M->get($i, $j); + if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { + $this->A[$i][$j] = trim($this->A[$i][$j],'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); + } + if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { + $value = trim($value,'"'); + $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); + } + if ($validValues) { + $this->A[$i][$j] = pow($this->A[$i][$j],$value); + } else { + $this->A[$i][$j] = PHPExcel_Calculation_Functions::NaN(); + } + } + } + return $this; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function power() + + + /** + * concat + * + * A = A & B + * @param mixed $B Matrix/Array + * @return Matrix Sum + */ + public function concat() { + if (func_num_args() > 0) { + $args = func_get_args(); + $match = implode(",", array_map('gettype', $args)); + + switch($match) { + case 'object': + if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { $M = $args[0]; } else { throw new Exception(self::ArgumentTypeException); } + case 'array': + $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); + break; + default: + throw new Exception(self::PolymorphicArgumentException); + break; + } + $this->checkMatrixDimensions($M); + for($i = 0; $i < $this->m; ++$i) { + for($j = 0; $j < $this->n; ++$j) { + $this->A[$i][$j] = trim($this->A[$i][$j],'"').trim($M->get($i, $j),'"'); + } + } + return $this; + } else { + throw new Exception(self::PolymorphicArgumentException); + } + } // function concat() + + + /** + * Solve A*X = B. + * + * @param Matrix $B Right hand side + * @return Matrix ... Solution if A is square, least squares solution otherwise + */ + public function solve($B) { + if ($this->m == $this->n) { + $LU = new PHPExcel_Shared_JAMA_LUDecomposition($this); + return $LU->solve($B); + } else { + $QR = new QRDecomposition($this); + return $QR->solve($B); + } + } // function solve() + + + /** + * Matrix inverse or pseudoinverse. + * + * @return Matrix ... Inverse(A) if A is square, pseudoinverse otherwise. + */ + public function inverse() { + return $this->solve($this->identity($this->m, $this->m)); + } // function inverse() + + + /** + * det + * + * Calculate determinant + * @return float Determinant + */ + public function det() { + $L = new PHPExcel_Shared_JAMA_LUDecomposition($this); + return $L->det(); + } // function det() + + +} // class PHPExcel_Shared_JAMA_Matrix diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/QRDecomposition.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/QRDecomposition.php new file mode 100755 index 0000000..49293d7 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/QRDecomposition.php @@ -0,0 +1,234 @@ +<?php +/** + * @package JAMA + * + * For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n + * orthogonal matrix Q and an n-by-n upper triangular matrix R so that + * A = Q*R. + * + * The QR decompostion always exists, even if the matrix does not have + * full rank, so the constructor will never fail. The primary use of the + * QR decomposition is in the least squares solution of nonsquare systems + * of simultaneous linear equations. This will fail if isFullRank() + * returns false. + * + * @author Paul Meagher + * @license PHP v3.0 + * @version 1.1 + */ +class PHPExcel_Shared_JAMA_QRDecomposition { + + const MatrixRankException = "Can only perform operation on full-rank matrix."; + + /** + * Array for internal storage of decomposition. + * @var array + */ + private $QR = array(); + + /** + * Row dimension. + * @var integer + */ + private $m; + + /** + * Column dimension. + * @var integer + */ + private $n; + + /** + * Array for internal storage of diagonal of R. + * @var array + */ + private $Rdiag = array(); + + + /** + * QR Decomposition computed by Householder reflections. + * + * @param matrix $A Rectangular matrix + * @return Structure to access R and the Householder vectors and compute Q. + */ + public function __construct($A) { + if($A instanceof PHPExcel_Shared_JAMA_Matrix) { + // Initialize. + $this->QR = $A->getArrayCopy(); + $this->m = $A->getRowDimension(); + $this->n = $A->getColumnDimension(); + // Main loop. + for ($k = 0; $k < $this->n; ++$k) { + // Compute 2-norm of k-th column without under/overflow. + $nrm = 0.0; + for ($i = $k; $i < $this->m; ++$i) { + $nrm = hypo($nrm, $this->QR[$i][$k]); + } + if ($nrm != 0.0) { + // Form k-th Householder vector. + if ($this->QR[$k][$k] < 0) { + $nrm = -$nrm; + } + for ($i = $k; $i < $this->m; ++$i) { + $this->QR[$i][$k] /= $nrm; + } + $this->QR[$k][$k] += 1.0; + // Apply transformation to remaining columns. + for ($j = $k+1; $j < $this->n; ++$j) { + $s = 0.0; + for ($i = $k; $i < $this->m; ++$i) { + $s += $this->QR[$i][$k] * $this->QR[$i][$j]; + } + $s = -$s/$this->QR[$k][$k]; + for ($i = $k; $i < $this->m; ++$i) { + $this->QR[$i][$j] += $s * $this->QR[$i][$k]; + } + } + } + $this->Rdiag[$k] = -$nrm; + } + } else { + throw new Exception(PHPExcel_Shared_JAMA_Matrix::ArgumentTypeException); + } + } // function __construct() + + + /** + * Is the matrix full rank? + * + * @return boolean true if R, and hence A, has full rank, else false. + */ + public function isFullRank() { + for ($j = 0; $j < $this->n; ++$j) { + if ($this->Rdiag[$j] == 0) { + return false; + } + } + return true; + } // function isFullRank() + + + /** + * Return the Householder vectors + * + * @return Matrix Lower trapezoidal matrix whose columns define the reflections + */ + public function getH() { + for ($i = 0; $i < $this->m; ++$i) { + for ($j = 0; $j < $this->n; ++$j) { + if ($i >= $j) { + $H[$i][$j] = $this->QR[$i][$j]; + } else { + $H[$i][$j] = 0.0; + } + } + } + return new PHPExcel_Shared_JAMA_Matrix($H); + } // function getH() + + + /** + * Return the upper triangular factor + * + * @return Matrix upper triangular factor + */ + public function getR() { + for ($i = 0; $i < $this->n; ++$i) { + for ($j = 0; $j < $this->n; ++$j) { + if ($i < $j) { + $R[$i][$j] = $this->QR[$i][$j]; + } elseif ($i == $j) { + $R[$i][$j] = $this->Rdiag[$i]; + } else { + $R[$i][$j] = 0.0; + } + } + } + return new PHPExcel_Shared_JAMA_Matrix($R); + } // function getR() + + + /** + * Generate and return the (economy-sized) orthogonal factor + * + * @return Matrix orthogonal factor + */ + public function getQ() { + for ($k = $this->n-1; $k >= 0; --$k) { + for ($i = 0; $i < $this->m; ++$i) { + $Q[$i][$k] = 0.0; + } + $Q[$k][$k] = 1.0; + for ($j = $k; $j < $this->n; ++$j) { + if ($this->QR[$k][$k] != 0) { + $s = 0.0; + for ($i = $k; $i < $this->m; ++$i) { + $s += $this->QR[$i][$k] * $Q[$i][$j]; + } + $s = -$s/$this->QR[$k][$k]; + for ($i = $k; $i < $this->m; ++$i) { + $Q[$i][$j] += $s * $this->QR[$i][$k]; + } + } + } + } + /* + for($i = 0; $i < count($Q); ++$i) { + for($j = 0; $j < count($Q); ++$j) { + if(! isset($Q[$i][$j]) ) { + $Q[$i][$j] = 0; + } + } + } + */ + return new PHPExcel_Shared_JAMA_Matrix($Q); + } // function getQ() + + + /** + * Least squares solution of A*X = B + * + * @param Matrix $B A Matrix with as many rows as A and any number of columns. + * @return Matrix Matrix that minimizes the two norm of Q*R*X-B. + */ + public function solve($B) { + if ($B->getRowDimension() == $this->m) { + if ($this->isFullRank()) { + // Copy right hand side + $nx = $B->getColumnDimension(); + $X = $B->getArrayCopy(); + // Compute Y = transpose(Q)*B + for ($k = 0; $k < $this->n; ++$k) { + for ($j = 0; $j < $nx; ++$j) { + $s = 0.0; + for ($i = $k; $i < $this->m; ++$i) { + $s += $this->QR[$i][$k] * $X[$i][$j]; + } + $s = -$s/$this->QR[$k][$k]; + for ($i = $k; $i < $this->m; ++$i) { + $X[$i][$j] += $s * $this->QR[$i][$k]; + } + } + } + // Solve R*X = Y; + for ($k = $this->n-1; $k >= 0; --$k) { + for ($j = 0; $j < $nx; ++$j) { + $X[$k][$j] /= $this->Rdiag[$k]; + } + for ($i = 0; $i < $k; ++$i) { + for ($j = 0; $j < $nx; ++$j) { + $X[$i][$j] -= $X[$k][$j]* $this->QR[$i][$k]; + } + } + } + $X = new PHPExcel_Shared_JAMA_Matrix($X); + return ($X->getMatrix(0, $this->n-1, 0, $nx)); + } else { + throw new Exception(self::MatrixRankException); + } + } else { + throw new Exception(PHPExcel_Shared_JAMA_Matrix::MatrixDimensionException); + } + } // function solve() + +} // PHPExcel_Shared_JAMA_class QRDecomposition diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/SingularValueDecomposition.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/SingularValueDecomposition.php new file mode 100755 index 0000000..a4b096c --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/SingularValueDecomposition.php @@ -0,0 +1,526 @@ +<?php +/** + * @package JAMA + * + * For an m-by-n matrix A with m >= n, the singular value decomposition is + * an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and + * an n-by-n orthogonal matrix V so that A = U*S*V'. + * + * The singular values, sigma[$k] = S[$k][$k], are ordered so that + * sigma[0] >= sigma[1] >= ... >= sigma[n-1]. + * + * The singular value decompostion always exists, so the constructor will + * never fail. The matrix condition number and the effective numerical + * rank can be computed from this decomposition. + * + * @author Paul Meagher + * @license PHP v3.0 + * @version 1.1 + */ +class SingularValueDecomposition { + + /** + * Internal storage of U. + * @var array + */ + private $U = array(); + + /** + * Internal storage of V. + * @var array + */ + private $V = array(); + + /** + * Internal storage of singular values. + * @var array + */ + private $s = array(); + + /** + * Row dimension. + * @var int + */ + private $m; + + /** + * Column dimension. + * @var int + */ + private $n; + + + /** + * Construct the singular value decomposition + * + * Derived from LINPACK code. + * + * @param $A Rectangular matrix + * @return Structure to access U, S and V. + */ + public function __construct($Arg) { + + // Initialize. + $A = $Arg->getArrayCopy(); + $this->m = $Arg->getRowDimension(); + $this->n = $Arg->getColumnDimension(); + $nu = min($this->m, $this->n); + $e = array(); + $work = array(); + $wantu = true; + $wantv = true; + $nct = min($this->m - 1, $this->n); + $nrt = max(0, min($this->n - 2, $this->m)); + + // Reduce A to bidiagonal form, storing the diagonal elements + // in s and the super-diagonal elements in e. + for ($k = 0; $k < max($nct,$nrt); ++$k) { + + if ($k < $nct) { + // Compute the transformation for the k-th column and + // place the k-th diagonal in s[$k]. + // Compute 2-norm of k-th column without under/overflow. + $this->s[$k] = 0; + for ($i = $k; $i < $this->m; ++$i) { + $this->s[$k] = hypo($this->s[$k], $A[$i][$k]); + } + if ($this->s[$k] != 0.0) { + if ($A[$k][$k] < 0.0) { + $this->s[$k] = -$this->s[$k]; + } + for ($i = $k; $i < $this->m; ++$i) { + $A[$i][$k] /= $this->s[$k]; + } + $A[$k][$k] += 1.0; + } + $this->s[$k] = -$this->s[$k]; + } + + for ($j = $k + 1; $j < $this->n; ++$j) { + if (($k < $nct) & ($this->s[$k] != 0.0)) { + // Apply the transformation. + $t = 0; + for ($i = $k; $i < $this->m; ++$i) { + $t += $A[$i][$k] * $A[$i][$j]; + } + $t = -$t / $A[$k][$k]; + for ($i = $k; $i < $this->m; ++$i) { + $A[$i][$j] += $t * $A[$i][$k]; + } + // Place the k-th row of A into e for the + // subsequent calculation of the row transformation. + $e[$j] = $A[$k][$j]; + } + } + + if ($wantu AND ($k < $nct)) { + // Place the transformation in U for subsequent back + // multiplication. + for ($i = $k; $i < $this->m; ++$i) { + $this->U[$i][$k] = $A[$i][$k]; + } + } + + if ($k < $nrt) { + // Compute the k-th row transformation and place the + // k-th super-diagonal in e[$k]. + // Compute 2-norm without under/overflow. + $e[$k] = 0; + for ($i = $k + 1; $i < $this->n; ++$i) { + $e[$k] = hypo($e[$k], $e[$i]); + } + if ($e[$k] != 0.0) { + if ($e[$k+1] < 0.0) { + $e[$k] = -$e[$k]; + } + for ($i = $k + 1; $i < $this->n; ++$i) { + $e[$i] /= $e[$k]; + } + $e[$k+1] += 1.0; + } + $e[$k] = -$e[$k]; + if (($k+1 < $this->m) AND ($e[$k] != 0.0)) { + // Apply the transformation. + for ($i = $k+1; $i < $this->m; ++$i) { + $work[$i] = 0.0; + } + for ($j = $k+1; $j < $this->n; ++$j) { + for ($i = $k+1; $i < $this->m; ++$i) { + $work[$i] += $e[$j] * $A[$i][$j]; + } + } + for ($j = $k + 1; $j < $this->n; ++$j) { + $t = -$e[$j] / $e[$k+1]; + for ($i = $k + 1; $i < $this->m; ++$i) { + $A[$i][$j] += $t * $work[$i]; + } + } + } + if ($wantv) { + // Place the transformation in V for subsequent + // back multiplication. + for ($i = $k + 1; $i < $this->n; ++$i) { + $this->V[$i][$k] = $e[$i]; + } + } + } + } + + // Set up the final bidiagonal matrix or order p. + $p = min($this->n, $this->m + 1); + if ($nct < $this->n) { + $this->s[$nct] = $A[$nct][$nct]; + } + if ($this->m < $p) { + $this->s[$p-1] = 0.0; + } + if ($nrt + 1 < $p) { + $e[$nrt] = $A[$nrt][$p-1]; + } + $e[$p-1] = 0.0; + // If required, generate U. + if ($wantu) { + for ($j = $nct; $j < $nu; ++$j) { + for ($i = 0; $i < $this->m; ++$i) { + $this->U[$i][$j] = 0.0; + } + $this->U[$j][$j] = 1.0; + } + for ($k = $nct - 1; $k >= 0; --$k) { + if ($this->s[$k] != 0.0) { + for ($j = $k + 1; $j < $nu; ++$j) { + $t = 0; + for ($i = $k; $i < $this->m; ++$i) { + $t += $this->U[$i][$k] * $this->U[$i][$j]; + } + $t = -$t / $this->U[$k][$k]; + for ($i = $k; $i < $this->m; ++$i) { + $this->U[$i][$j] += $t * $this->U[$i][$k]; + } + } + for ($i = $k; $i < $this->m; ++$i ) { + $this->U[$i][$k] = -$this->U[$i][$k]; + } + $this->U[$k][$k] = 1.0 + $this->U[$k][$k]; + for ($i = 0; $i < $k - 1; ++$i) { + $this->U[$i][$k] = 0.0; + } + } else { + for ($i = 0; $i < $this->m; ++$i) { + $this->U[$i][$k] = 0.0; + } + $this->U[$k][$k] = 1.0; + } + } + } + + // If required, generate V. + if ($wantv) { + for ($k = $this->n - 1; $k >= 0; --$k) { + if (($k < $nrt) AND ($e[$k] != 0.0)) { + for ($j = $k + 1; $j < $nu; ++$j) { + $t = 0; + for ($i = $k + 1; $i < $this->n; ++$i) { + $t += $this->V[$i][$k]* $this->V[$i][$j]; + } + $t = -$t / $this->V[$k+1][$k]; + for ($i = $k + 1; $i < $this->n; ++$i) { + $this->V[$i][$j] += $t * $this->V[$i][$k]; + } + } + } + for ($i = 0; $i < $this->n; ++$i) { + $this->V[$i][$k] = 0.0; + } + $this->V[$k][$k] = 1.0; + } + } + + // Main iteration loop for the singular values. + $pp = $p - 1; + $iter = 0; + $eps = pow(2.0, -52.0); + + while ($p > 0) { + // Here is where a test for too many iterations would go. + // This section of the program inspects for negligible + // elements in the s and e arrays. On completion the + // variables kase and k are set as follows: + // kase = 1 if s(p) and e[k-1] are negligible and k<p + // kase = 2 if s(k) is negligible and k<p + // kase = 3 if e[k-1] is negligible, k<p, and + // s(k), ..., s(p) are not negligible (qr step). + // kase = 4 if e(p-1) is negligible (convergence). + for ($k = $p - 2; $k >= -1; --$k) { + if ($k == -1) { + break; + } + if (abs($e[$k]) <= $eps * (abs($this->s[$k]) + abs($this->s[$k+1]))) { + $e[$k] = 0.0; + break; + } + } + if ($k == $p - 2) { + $kase = 4; + } else { + for ($ks = $p - 1; $ks >= $k; --$ks) { + if ($ks == $k) { + break; + } + $t = ($ks != $p ? abs($e[$ks]) : 0.) + ($ks != $k + 1 ? abs($e[$ks-1]) : 0.); + if (abs($this->s[$ks]) <= $eps * $t) { + $this->s[$ks] = 0.0; + break; + } + } + if ($ks == $k) { + $kase = 3; + } else if ($ks == $p-1) { + $kase = 1; + } else { + $kase = 2; + $k = $ks; + } + } + ++$k; + + // Perform the task indicated by kase. + switch ($kase) { + // Deflate negligible s(p). + case 1: + $f = $e[$p-2]; + $e[$p-2] = 0.0; + for ($j = $p - 2; $j >= $k; --$j) { + $t = hypo($this->s[$j],$f); + $cs = $this->s[$j] / $t; + $sn = $f / $t; + $this->s[$j] = $t; + if ($j != $k) { + $f = -$sn * $e[$j-1]; + $e[$j-1] = $cs * $e[$j-1]; + } + if ($wantv) { + for ($i = 0; $i < $this->n; ++$i) { + $t = $cs * $this->V[$i][$j] + $sn * $this->V[$i][$p-1]; + $this->V[$i][$p-1] = -$sn * $this->V[$i][$j] + $cs * $this->V[$i][$p-1]; + $this->V[$i][$j] = $t; + } + } + } + break; + // Split at negligible s(k). + case 2: + $f = $e[$k-1]; + $e[$k-1] = 0.0; + for ($j = $k; $j < $p; ++$j) { + $t = hypo($this->s[$j], $f); + $cs = $this->s[$j] / $t; + $sn = $f / $t; + $this->s[$j] = $t; + $f = -$sn * $e[$j]; + $e[$j] = $cs * $e[$j]; + if ($wantu) { + for ($i = 0; $i < $this->m; ++$i) { + $t = $cs * $this->U[$i][$j] + $sn * $this->U[$i][$k-1]; + $this->U[$i][$k-1] = -$sn * $this->U[$i][$j] + $cs * $this->U[$i][$k-1]; + $this->U[$i][$j] = $t; + } + } + } + break; + // Perform one qr step. + case 3: + // Calculate the shift. + $scale = max(max(max(max( + abs($this->s[$p-1]),abs($this->s[$p-2])),abs($e[$p-2])), + abs($this->s[$k])), abs($e[$k])); + $sp = $this->s[$p-1] / $scale; + $spm1 = $this->s[$p-2] / $scale; + $epm1 = $e[$p-2] / $scale; + $sk = $this->s[$k] / $scale; + $ek = $e[$k] / $scale; + $b = (($spm1 + $sp) * ($spm1 - $sp) + $epm1 * $epm1) / 2.0; + $c = ($sp * $epm1) * ($sp * $epm1); + $shift = 0.0; + if (($b != 0.0) || ($c != 0.0)) { + $shift = sqrt($b * $b + $c); + if ($b < 0.0) { + $shift = -$shift; + } + $shift = $c / ($b + $shift); + } + $f = ($sk + $sp) * ($sk - $sp) + $shift; + $g = $sk * $ek; + // Chase zeros. + for ($j = $k; $j < $p-1; ++$j) { + $t = hypo($f,$g); + $cs = $f/$t; + $sn = $g/$t; + if ($j != $k) { + $e[$j-1] = $t; + } + $f = $cs * $this->s[$j] + $sn * $e[$j]; + $e[$j] = $cs * $e[$j] - $sn * $this->s[$j]; + $g = $sn * $this->s[$j+1]; + $this->s[$j+1] = $cs * $this->s[$j+1]; + if ($wantv) { + for ($i = 0; $i < $this->n; ++$i) { + $t = $cs * $this->V[$i][$j] + $sn * $this->V[$i][$j+1]; + $this->V[$i][$j+1] = -$sn * $this->V[$i][$j] + $cs * $this->V[$i][$j+1]; + $this->V[$i][$j] = $t; + } + } + $t = hypo($f,$g); + $cs = $f/$t; + $sn = $g/$t; + $this->s[$j] = $t; + $f = $cs * $e[$j] + $sn * $this->s[$j+1]; + $this->s[$j+1] = -$sn * $e[$j] + $cs * $this->s[$j+1]; + $g = $sn * $e[$j+1]; + $e[$j+1] = $cs * $e[$j+1]; + if ($wantu && ($j < $this->m - 1)) { + for ($i = 0; $i < $this->m; ++$i) { + $t = $cs * $this->U[$i][$j] + $sn * $this->U[$i][$j+1]; + $this->U[$i][$j+1] = -$sn * $this->U[$i][$j] + $cs * $this->U[$i][$j+1]; + $this->U[$i][$j] = $t; + } + } + } + $e[$p-2] = $f; + $iter = $iter + 1; + break; + // Convergence. + case 4: + // Make the singular values positive. + if ($this->s[$k] <= 0.0) { + $this->s[$k] = ($this->s[$k] < 0.0 ? -$this->s[$k] : 0.0); + if ($wantv) { + for ($i = 0; $i <= $pp; ++$i) { + $this->V[$i][$k] = -$this->V[$i][$k]; + } + } + } + // Order the singular values. + while ($k < $pp) { + if ($this->s[$k] >= $this->s[$k+1]) { + break; + } + $t = $this->s[$k]; + $this->s[$k] = $this->s[$k+1]; + $this->s[$k+1] = $t; + if ($wantv AND ($k < $this->n - 1)) { + for ($i = 0; $i < $this->n; ++$i) { + $t = $this->V[$i][$k+1]; + $this->V[$i][$k+1] = $this->V[$i][$k]; + $this->V[$i][$k] = $t; + } + } + if ($wantu AND ($k < $this->m-1)) { + for ($i = 0; $i < $this->m; ++$i) { + $t = $this->U[$i][$k+1]; + $this->U[$i][$k+1] = $this->U[$i][$k]; + $this->U[$i][$k] = $t; + } + } + ++$k; + } + $iter = 0; + --$p; + break; + } // end switch + } // end while + + } // end constructor + + + /** + * Return the left singular vectors + * + * @access public + * @return U + */ + public function getU() { + return new Matrix($this->U, $this->m, min($this->m + 1, $this->n)); + } + + + /** + * Return the right singular vectors + * + * @access public + * @return V + */ + public function getV() { + return new Matrix($this->V); + } + + + /** + * Return the one-dimensional array of singular values + * + * @access public + * @return diagonal of S. + */ + public function getSingularValues() { + return $this->s; + } + + + /** + * Return the diagonal matrix of singular values + * + * @access public + * @return S + */ + public function getS() { + for ($i = 0; $i < $this->n; ++$i) { + for ($j = 0; $j < $this->n; ++$j) { + $S[$i][$j] = 0.0; + } + $S[$i][$i] = $this->s[$i]; + } + return new Matrix($S); + } + + + /** + * Two norm + * + * @access public + * @return max(S) + */ + public function norm2() { + return $this->s[0]; + } + + + /** + * Two norm condition number + * + * @access public + * @return max(S)/min(S) + */ + public function cond() { + return $this->s[0] / $this->s[min($this->m, $this->n) - 1]; + } + + + /** + * Effective numerical matrix rank + * + * @access public + * @return Number of nonnegligible singular values. + */ + public function rank() { + $eps = pow(2.0, -52.0); + $tol = max($this->m, $this->n) * $this->s[0] * $eps; + $r = 0; + for ($i = 0; $i < count($this->s); ++$i) { + if ($this->s[$i] > $tol) { + ++$r; + } + } + return $r; + } + +} // class SingularValueDecomposition diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LMQuadTest.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LMQuadTest.php new file mode 100755 index 0000000..2f316de --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LMQuadTest.php @@ -0,0 +1,116 @@ +<?php +/** + * quadratic (p-o)'S'S(p-o) + * solve for o, S + * S is a single scale factor + */ +class LMQuadTest { + + /** + * @param array[] $x + * @param array[] $a + */ + function val($x, $a) { + if (count($a) != 3) die ("Wrong number of elements in array a"); + if (count($x) != 2) die ("Wrong number of elements in array x"); + + $ox = $a[0]; + $oy = $a[1]; + $s = $a[2]; + + $sdx = $s * ($x[0] - $ox); + $sdy = $s * ($x[1] - $oy); + + return ($sdx * $sdx) + ($sdy * $sdy); + } // function val() + + + /** + * z = (p-o)'S'S(p-o) + * dz/dp = 2S'S(p-o) + * + * z = (s*(px-ox))^2 + (s*(py-oy))^2 + * dz/dox = -2(s*(px-ox))*s + * dz/ds = 2*s*[(px-ox)^2 + (py-oy)^2] + * + * z = (s*dx)^2 + (s*dy)^2 + * dz/ds = 2(s*dx)*dx + 2(s*dy)*dy + * + * @param array[] $x + * @param array[] $a + * @param int $a_k + * @param array[] $a + */ + function grad($x, $a, $a_k) { + if (count($a) != 3) die ("Wrong number of elements in array a"); + if (count($x) != 2) die ("Wrong number of elements in array x"); + if ($a_k < 3) die ("a_k=".$a_k); + + $ox = $a[0]; + $oy = $a[1]; + $s = $a[2]; + + $dx = ($x[0] - $ox); + $dy = ($x[1] - $oy); + + if ($a_k == 0) + return -2.*$s*$s*$dx; + elseif ($a_k == 1) + return -2.*$s*$s*$dy; + else + return 2.*$s*($dx*$dx + $dy*$dy); + } // function grad() + + + /** + * @return array[] $a + */ + function initial() { + $a[0] = 0.05; + $a[1] = 0.1; + $a[2] = 1.0; + + return $a; + } // function initial() + + + /** + * @return Object[] $a + */ + function testdata() { + $npts = 25; + + $a[0] = 0.; + $a[1] = 0.; + $a[2] = 0.9; + + $i = 0; + + for ($r = -2; $r <= 2; ++$r) { + for ($c = -2; $c <= 2; ++$c) { + $x[$i][0] = $c; + $x[$i][1] = $r; + $y[$i] = $this->val($x[$i], $a); + print("Quad ".$c.",".$r." -> ".$y[$i]."<br />"); + $s[$i] = 1.; + ++$i; + } + } + print("quad x= "); + + $qx = new Matrix($x); + $qx->print(10, 2); + + print("quad y= "); + $qy = new Matrix($y, $npts); + $qy->print(10, 2); + + $o[0] = $x; + $o[1] = $a; + $o[2] = $y; + $o[3] = $s; + + return $o; + } // function testdata() + +} // class LMQuadTest diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LagrangeInterpolation.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LagrangeInterpolation.php new file mode 100755 index 0000000..5b74286 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LagrangeInterpolation.php @@ -0,0 +1,59 @@ +<?php + +require_once "../Matrix.php"; + +/** + * Given n points (x0,y0)...(xn-1,yn-1), the following methid computes + * the polynomial factors of the n-1't degree polynomial passing through + * the n points. + * + * Example: Passing in three points (2,3) (1,4) and (3,7) will produce + * the results [2.5, -8.5, 10] which means that the points are on the + * curve y = 2.5x² - 8.5x + 10. + * + * @see http://geosoft.no/software/lagrange/LagrangeInterpolation.java.html + * @author Jacob Dreyer + * @author Paul Meagher (port to PHP and minor changes) + * + * @param x[] float + * @param y[] float + */ +class LagrangeInterpolation { + + public function findPolynomialFactors($x, $y) { + $n = count($x); + + $data = array(); // double[n][n]; + $rhs = array(); // double[n]; + + for ($i = 0; $i < $n; ++$i) { + $v = 1; + for ($j = 0; $j < $n; ++$j) { + $data[$i][$n-$j-1] = $v; + $v *= $x[$i]; + } + $rhs[$i] = $y[$i]; + } + + // Solve m * s = b + $m = new Matrix($data); + $b = new Matrix($rhs, $n); + + $s = $m->solve($b); + + return $s->getRowPackedCopy(); + } // function findPolynomialFactors() + +} // class LagrangeInterpolation + + +$x = array(2.0, 1.0, 3.0); +$y = array(3.0, 4.0, 7.0); + +$li = new LagrangeInterpolation; +$f = $li->findPolynomialFactors($x, $y); + + +for ($i = 0; $i < 3; ++$i) { + echo $f[$i]."<br />"; +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LagrangeInterpolation2.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LagrangeInterpolation2.php new file mode 100755 index 0000000..e7529c5 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LagrangeInterpolation2.php @@ -0,0 +1,59 @@ +<?php + +require_once "../Matrix.php"; + +/** + * Given n points (x0,y0)...(xn-1,yn-1), the following method computes + * the polynomial factors of the n-1't degree polynomial passing through + * the n points. + * + * Example: Passing in three points (2,3) (1,4) and (3,7) will produce + * the results [2.5, -8.5, 10] which means that the points are on the + * curve y = 2.5x² - 8.5x + 10. + * + * @see http://geosoft.no/software/lagrange/LagrangeInterpolation.java.html + * @see http://source.freehep.org/jcvsweb/ilc/LCSIM/wdview/lcsim/src/org/lcsim/fit/polynomial/PolynomialFitter.java + * @author Jacob Dreyer + * @author Paul Meagher (port to PHP and minor changes) + * + * @param x[] float + * @param y[] float + */ +class LagrangeInterpolation { + + public function findPolynomialFactors($x, $y) { + $n = count($x); + + $data = array(); // double[n][n]; + $rhs = array(); // double[n]; + + for ($i = 0; $i < $n; ++$i) { + $v = 1; + for ($j = 0; $j < $n; ++$j) { + $data[$i][$n-$j-1] = $v; + $v *= $x[$i]; + } + $rhs[$i] = $y[$i]; + } + + // Solve m * s = b + $m = new Matrix($data); + $b = new Matrix($rhs, $n); + + $s = $m->solve($b); + + return $s->getRowPackedCopy(); + } // function findPolynomialFactors() + +} // class LagrangeInterpolation + + +$x = array(2.0, 1.0, 3.0); +$y = array(3.0, 4.0, 7.0); + +$li = new LagrangeInterpolation; +$f = $li->findPolynomialFactors($x, $y); + +for ($i = 0; $i < 3; ++$i) { + echo $f[$i]."<br />"; +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LevenbergMarquardt.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LevenbergMarquardt.php new file mode 100755 index 0000000..7cfd5f8 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/LevenbergMarquardt.php @@ -0,0 +1,185 @@ +<?php + +// Levenberg-Marquardt in PHP + +// http://www.idiom.com/~zilla/Computer/Javanumeric/LM.java + +class LevenbergMarquardt { + + /** + * Calculate the current sum-squared-error + * + * Chi-squared is the distribution of squared Gaussian errors, + * thus the name. + * + * @param double[][] $x + * @param double[] $a + * @param double[] $y, + * @param double[] $s, + * @param object $f + */ + function chiSquared($x, $a, $y, $s, $f) { + $npts = count($y); + $sum = 0.0; + + for ($i = 0; $i < $npts; ++$i) { + $d = $y[$i] - $f->val($x[$i], $a); + $d = $d / $s[$i]; + $sum = $sum + ($d*$d); + } + + return $sum; + } // function chiSquared() + + + /** + * Minimize E = sum {(y[k] - f(x[k],a)) / s[k]}^2 + * The individual errors are optionally scaled by s[k]. + * Note that LMfunc implements the value and gradient of f(x,a), + * NOT the value and gradient of E with respect to a! + * + * @param x array of domain points, each may be multidimensional + * @param y corresponding array of values + * @param a the parameters/state of the model + * @param vary false to indicate the corresponding a[k] is to be held fixed + * @param s2 sigma^2 for point i + * @param lambda blend between steepest descent (lambda high) and + * jump to bottom of quadratic (lambda zero). + * Start with 0.001. + * @param termepsilon termination accuracy (0.01) + * @param maxiter stop and return after this many iterations if not done + * @param verbose set to zero (no prints), 1, 2 + * + * @return the new lambda for future iterations. + * Can use this and maxiter to interleave the LM descent with some other + * task, setting maxiter to something small. + */ + function solve($x, $a, $y, $s, $vary, $f, $lambda, $termepsilon, $maxiter, $verbose) { + $npts = count($y); + $nparm = count($a); + + if ($verbose > 0) { + print("solve x[".count($x)."][".count($x[0])."]"); + print(" a[".count($a)."]"); + println(" y[".count(length)."]"); + } + + $e0 = $this->chiSquared($x, $a, $y, $s, $f); + + //double lambda = 0.001; + $done = false; + + // g = gradient, H = hessian, d = step to minimum + // H d = -g, solve for d + $H = array(); + $g = array(); + + //double[] d = new double[nparm]; + + $oos2 = array(); + + for($i = 0; $i < $npts; ++$i) { + $oos2[$i] = 1./($s[$i]*$s[$i]); + } + $iter = 0; + $term = 0; // termination count test + + do { + ++$iter; + + // hessian approximation + for( $r = 0; $r < $nparm; ++$r) { + for( $c = 0; $c < $nparm; ++$c) { + for( $i = 0; $i < $npts; ++$i) { + if ($i == 0) $H[$r][$c] = 0.; + $xi = $x[$i]; + $H[$r][$c] += ($oos2[$i] * $f->grad($xi, $a, $r) * $f->grad($xi, $a, $c)); + } //npts + } //c + } //r + + // boost diagonal towards gradient descent + for( $r = 0; $r < $nparm; ++$r) + $H[$r][$r] *= (1. + $lambda); + + // gradient + for( $r = 0; $r < $nparm; ++$r) { + for( $i = 0; $i < $npts; ++$i) { + if ($i == 0) $g[$r] = 0.; + $xi = $x[$i]; + $g[$r] += ($oos2[$i] * ($y[$i]-$f->val($xi,$a)) * $f->grad($xi, $a, $r)); + } + } //npts + + // scale (for consistency with NR, not necessary) + if ($false) { + for( $r = 0; $r < $nparm; ++$r) { + $g[$r] = -0.5 * $g[$r]; + for( $c = 0; $c < $nparm; ++$c) { + $H[$r][$c] *= 0.5; + } + } + } + + // solve H d = -g, evaluate error at new location + //double[] d = DoubleMatrix.solve(H, g); +// double[] d = (new Matrix(H)).lu().solve(new Matrix(g, nparm)).getRowPackedCopy(); + //double[] na = DoubleVector.add(a, d); +// double[] na = (new Matrix(a, nparm)).plus(new Matrix(d, nparm)).getRowPackedCopy(); +// double e1 = chiSquared(x, na, y, s, f); + +// if (verbose > 0) { +// System.out.println("\n\niteration "+iter+" lambda = "+lambda); +// System.out.print("a = "); +// (new Matrix(a, nparm)).print(10, 2); +// if (verbose > 1) { +// System.out.print("H = "); +// (new Matrix(H)).print(10, 2); +// System.out.print("g = "); +// (new Matrix(g, nparm)).print(10, 2); +// System.out.print("d = "); +// (new Matrix(d, nparm)).print(10, 2); +// } +// System.out.print("e0 = " + e0 + ": "); +// System.out.print("moved from "); +// (new Matrix(a, nparm)).print(10, 2); +// System.out.print("e1 = " + e1 + ": "); +// if (e1 < e0) { +// System.out.print("to "); +// (new Matrix(na, nparm)).print(10, 2); +// } else { +// System.out.println("move rejected"); +// } +// } + + // termination test (slightly different than NR) +// if (Math.abs(e1-e0) > termepsilon) { +// term = 0; +// } else { +// term++; +// if (term == 4) { +// System.out.println("terminating after " + iter + " iterations"); +// done = true; +// } +// } +// if (iter >= maxiter) done = true; + + // in the C++ version, found that changing this to e1 >= e0 + // was not a good idea. See comment there. + // +// if (e1 > e0 || Double.isNaN(e1)) { // new location worse than before +// lambda *= 10.; +// } else { // new location better, accept new parameters +// lambda *= 0.1; +// e0 = e1; +// // simply assigning a = na will not get results copied back to caller +// for( int i = 0; i < nparm; i++ ) { +// if (vary[i]) a[i] = na[i]; +// } +// } + } while(!$done); + + return $lambda; + } // function solve() + +} // class LevenbergMarquardt diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/MagicSquareExample.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/MagicSquareExample.php new file mode 100755 index 0000000..e6c93d0 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/MagicSquareExample.php @@ -0,0 +1,182 @@ +<?php +/** +* @package JAMA +*/ + +require_once "../Matrix.php"; + +/** +* Example of use of Matrix Class, featuring magic squares. +*/ +class MagicSquareExample { + + /** + * Generate magic square test matrix. + * @param int n dimension of matrix + */ + function magic($n) { + + // Odd order + + if (($n % 2) == 1) { + $a = ($n+1)/2; + $b = ($n+1); + for ($j = 0; $j < $n; ++$j) + for ($i = 0; $i < $n; ++$i) + $M[$i][$j] = $n*(($i+$j+$a) % $n) + (($i+2*$j+$b) % $n) + 1; + + // Doubly Even Order + + } else if (($n % 4) == 0) { + for ($j = 0; $j < $n; ++$j) { + for ($i = 0; $i < $n; ++$i) { + if ((($i+1)/2)%2 == (($j+1)/2)%2) + $M[$i][$j] = $n*$n-$n*$i-$j; + else + $M[$i][$j] = $n*$i+$j+1; + } + } + + // Singly Even Order + + } else { + + $p = $n/2; + $k = ($n-2)/4; + $A = $this->magic($p); + $M = array(); + for ($j = 0; $j < $p; ++$j) { + for ($i = 0; $i < $p; ++$i) { + $aij = $A->get($i,$j); + $M[$i][$j] = $aij; + $M[$i][$j+$p] = $aij + 2*$p*$p; + $M[$i+$p][$j] = $aij + 3*$p*$p; + $M[$i+$p][$j+$p] = $aij + $p*$p; + } + } + + for ($i = 0; $i < $p; ++$i) { + for ($j = 0; $j < $k; ++$j) { + $t = $M[$i][$j]; + $M[$i][$j] = $M[$i+$p][$j]; + $M[$i+$p][$j] = $t; + } + for ($j = $n-$k+1; $j < $n; ++$j) { + $t = $M[$i][$j]; + $M[$i][$j] = $M[$i+$p][$j]; + $M[$i+$p][$j] = $t; + } + } + + $t = $M[$k][0]; $M[$k][0] = $M[$k+$p][0]; $M[$k+$p][0] = $t; + $t = $M[$k][$k]; $M[$k][$k] = $M[$k+$p][$k]; $M[$k+$p][$k] = $t; + + } + + return new Matrix($M); + + } + + /** + * Simple function to replicate PHP 5 behaviour + */ + function microtime_float() { + list($usec, $sec) = explode(" ", microtime()); + return ((float)$usec + (float)$sec); + } + + /** + * Tests LU, QR, SVD and symmetric Eig decompositions. + * + * n = order of magic square. + * trace = diagonal sum, should be the magic sum, (n^3 + n)/2. + * max_eig = maximum eigenvalue of (A + A')/2, should equal trace. + * rank = linear algebraic rank, should equal n if n is odd, + * be less than n if n is even. + * cond = L_2 condition number, ratio of singular values. + * lu_res = test of LU factorization, norm1(L*U-A(p,:))/(n*eps). + * qr_res = test of QR factorization, norm1(Q*R-A)/(n*eps). + */ + function main() { + ?> + <p>Test of Matrix Class, using magic squares.</p> + <p>See MagicSquareExample.main() for an explanation.</p> + <table border='1' cellspacing='0' cellpadding='4'> + <tr> + <th>n</th> + <th>trace</th> + <th>max_eig</th> + <th>rank</th> + <th>cond</th> + <th>lu_res</th> + <th>qr_res</th> + </tr> + <?php + $start_time = $this->microtime_float(); + $eps = pow(2.0,-52.0); + for ($n = 3; $n <= 6; ++$n) { + echo "<tr>"; + + echo "<td align='right'>$n</td>"; + + $M = $this->magic($n); + $t = (int) $M->trace(); + + echo "<td align='right'>$t</td>"; + + $O = $M->plus($M->transpose()); + $E = new EigenvalueDecomposition($O->times(0.5)); + $d = $E->getRealEigenvalues(); + + echo "<td align='right'>".$d[$n-1]."</td>"; + + $r = $M->rank(); + + echo "<td align='right'>".$r."</td>"; + + $c = $M->cond(); + + if ($c < 1/$eps) + echo "<td align='right'>".sprintf("%.3f",$c)."</td>"; + else + echo "<td align='right'>Inf</td>"; + + $LU = new LUDecomposition($M); + $L = $LU->getL(); + $U = $LU->getU(); + $p = $LU->getPivot(); + // Java version: R = L.times(U).minus(M.getMatrix(p,0,n-1)); + $S = $L->times($U); + $R = $S->minus($M->getMatrix($p,0,$n-1)); + $res = $R->norm1()/($n*$eps); + + echo "<td align='right'>".sprintf("%.3f",$res)."</td>"; + + $QR = new QRDecomposition($M); + $Q = $QR->getQ(); + $R = $QR->getR(); + $S = $Q->times($R); + $R = $S->minus($M); + $res = $R->norm1()/($n*$eps); + + echo "<td align='right'>".sprintf("%.3f",$res)."</td>"; + + echo "</tr>"; + + } + echo "<table>"; + echo "<br />"; + + $stop_time = $this->microtime_float(); + $etime = $stop_time - $start_time; + + echo "<p>Elapsed time is ". sprintf("%.4f",$etime) ." seconds.</p>"; + + } + +} + +$magic = new MagicSquareExample(); +$magic->main(); + +?> diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/Stats.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/Stats.php new file mode 100755 index 0000000..38bc4b7 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/Stats.php @@ -0,0 +1,1605 @@ +<?php +// +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2003 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.0 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Authors: Jesus M. Castagnetto <jmcastagnetto@php.net> | +// +----------------------------------------------------------------------+ +// +// $Id: Stats.php,v 1.15 2003/06/01 11:40:30 jmcastagnetto Exp $ +// + +include_once 'PEAR.php'; + +/** +* @package Math_Stats +*/ + +// Constants for defining the statistics to calculate /*{{{*/ +/** +* STATS_BASIC to generate the basic descriptive statistics +*/ +define('STATS_BASIC', 1); +/** +* STATS_FULL to generate also higher moments, mode, median, etc. +*/ +define('STATS_FULL', 2); +/*}}}*/ + +// Constants describing the data set format /*{{{*/ +/** +* STATS_DATA_SIMPLE for an array of numeric values. This is the default. +* e.g. $data = array(2,3,4,5,1,1,6); +*/ +define('STATS_DATA_SIMPLE', 0); +/** +* STATS_DATA_CUMMULATIVE for an associative array of frequency values, +* where in each array entry, the index is the data point and the +* value the count (frequency): +* e.g. $data = array(3=>4, 2.3=>5, 1.25=>6, 0.5=>3) +*/ +define('STATS_DATA_CUMMULATIVE', 1); +/*}}}*/ + +// Constants defining how to handle nulls /*{{{*/ +/** +* STATS_REJECT_NULL, reject data sets with null values. This is the default. +* Any non-numeric value is considered a null in this context. +*/ +define('STATS_REJECT_NULL', -1); +/** +* STATS_IGNORE_NULL, ignore null values and prune them from the data. +* Any non-numeric value is considered a null in this context. +*/ +define('STATS_IGNORE_NULL', -2); +/** +* STATS_USE_NULL_AS_ZERO, assign the value of 0 (zero) to null values. +* Any non-numeric value is considered a null in this context. +*/ +define('STATS_USE_NULL_AS_ZERO', -3); +/*}}}*/ + +/** +* A class to calculate descriptive statistics from a data set. +* Data sets can be simple arrays of data, or a cummulative hash. +* The second form is useful when passing large data set, +* for example the data set: +* +* <pre> +* $data1 = array (1,2,1,1,1,1,3,3,4.1,3,2,2,4.1,1,1,2,3,3,2,2,1,1,2,2); +* </pre> +* +* can be epxressed more compactly as: +* +* <pre> +* $data2 = array('1'=>9, '2'=>8, '3'=>5, '4.1'=>2); +* </pre> +* +* Example of use: +* +* <pre> +* include_once 'Math/Stats.php'; +* $s = new Math_Stats(); +* $s->setData($data1); +* // or +* // $s->setData($data2, STATS_DATA_CUMMULATIVE); +* $stats = $s->calcBasic(); +* echo 'Mean: '.$stats['mean'].' StDev: '.$stats['stdev'].' <br />\n'; +* +* // using data with nulls +* // first ignoring them: +* $data3 = array(1.2, 'foo', 2.4, 3.1, 4.2, 3.2, null, 5.1, 6.2); +* $s->setNullOption(STATS_IGNORE_NULL); +* $s->setData($data3); +* $stats3 = $s->calcFull(); +* +* // and then assuming nulls == 0 +* $s->setNullOption(STATS_USE_NULL_AS_ZERO); +* $s->setData($data3); +* $stats3 = $s->calcFull(); +* </pre> +* +* Originally this class was part of NumPHP (Numeric PHP package) +* +* @author Jesus M. Castagnetto <jmcastagnetto@php.net> +* @version 0.8 +* @access public +* @package Math_Stats +*/ +class Base {/*{{{*/ + // properties /*{{{*/ + + /** + * The simple or cummulative data set. + * Null by default. + * + * @access private + * @var array + */ + public $_data = null; + + /** + * Expanded data set. Only set when cummulative data + * is being used. Null by default. + * + * @access private + * @var array + */ + public $_dataExpanded = null; + + /** + * Flag for data type, one of STATS_DATA_SIMPLE or + * STATS_DATA_CUMMULATIVE. Null by default. + * + * @access private + * @var int + */ + public $_dataOption = null; + + /** + * Flag for null handling options. One of STATS_REJECT_NULL, + * STATS_IGNORE_NULL or STATS_USE_NULL_AS_ZERO + * + * @access private + * @var int + */ + public $_nullOption; + + /** + * Array for caching result values, should be reset + * when using setData() + * + * @access private + * @var array + */ + public $_calculatedValues = array(); + + /*}}}*/ + + /** + * Constructor for the class + * + * @access public + * @param optional int $nullOption how to handle null values + * @return object Math_Stats + */ + function Math_Stats($nullOption=STATS_REJECT_NULL) {/*{{{*/ + $this->_nullOption = $nullOption; + }/*}}}*/ + + /** + * Sets and verifies the data, checking for nulls and using + * the current null handling option + * + * @access public + * @param array $arr the data set + * @param optional int $opt data format: STATS_DATA_CUMMULATIVE or STATS_DATA_SIMPLE (default) + * @return mixed true on success, a PEAR_Error object otherwise + */ + function setData($arr, $opt=STATS_DATA_SIMPLE) {/*{{{*/ + if (!is_array($arr)) { + return PEAR::raiseError('invalid data, an array of numeric data was expected'); + } + $this->_data = null; + $this->_dataExpanded = null; + $this->_dataOption = null; + $this->_calculatedValues = array(); + if ($opt == STATS_DATA_SIMPLE) { + $this->_dataOption = $opt; + $this->_data = array_values($arr); + } else if ($opt == STATS_DATA_CUMMULATIVE) { + $this->_dataOption = $opt; + $this->_data = $arr; + $this->_dataExpanded = array(); + } + return $this->_validate(); + }/*}}}*/ + + /** + * Returns the data which might have been modified + * according to the current null handling options. + * + * @access public + * @param boolean $expanded whether to return a expanded list, default is false + * @return mixed array of data on success, a PEAR_Error object otherwise + * @see _validate() + */ + function getData($expanded=false) {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if ($this->_dataOption == STATS_DATA_CUMMULATIVE && $expanded) { + return $this->_dataExpanded; + } else { + return $this->_data; + } + }/*}}}*/ + + /** + * Sets the null handling option. + * Must be called before assigning a new data set containing null values + * + * @access public + * @return mixed true on success, a PEAR_Error object otherwise + * @see _validate() + */ + function setNullOption($nullOption) {/*{{{*/ + if ($nullOption == STATS_REJECT_NULL + || $nullOption == STATS_IGNORE_NULL + || $nullOption == STATS_USE_NULL_AS_ZERO) { + $this->_nullOption = $nullOption; + return true; + } else { + return PEAR::raiseError('invalid null handling option expecting: '. + 'STATS_REJECT_NULL, STATS_IGNORE_NULL or STATS_USE_NULL_AS_ZERO'); + } + }/*}}}*/ + + /** + * Transforms the data by substracting each entry from the mean and + * dividing by its standard deviation. This will reset all pre-calculated + * values to their original (unset) defaults. + * + * @access public + * @return mixed true on success, a PEAR_Error object otherwise + * @see mean() + * @see stDev() + * @see setData() + */ + function studentize() {/*{{{*/ + $mean = $this->mean(); + if (PEAR::isError($mean)) { + return $mean; + } + $std = $this->stDev(); + if (PEAR::isError($std)) { + return $std; + } + if ($std == 0) { + return PEAR::raiseError('cannot studentize data, standard deviation is zero.'); + } + $arr = array(); + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + foreach ($this->_data as $val=>$freq) { + $newval = ($val - $mean) / $std; + $arr["$newval"] = $freq; + } + } else { + foreach ($this->_data as $val) { + $newval = ($val - $mean) / $std; + $arr[] = $newval; + } + } + return $this->setData($arr, $this->_dataOption); + }/*}}}*/ + + /** + * Transforms the data by substracting each entry from the mean. + * This will reset all pre-calculated values to their original (unset) defaults. + * + * @access public + * @return mixed true on success, a PEAR_Error object otherwise + * @see mean() + * @see setData() + */ + function center() {/*{{{*/ + $mean = $this->mean(); + if (PEAR::isError($mean)) { + return $mean; + } + $arr = array(); + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + foreach ($this->_data as $val=>$freq) { + $newval = $val - $mean; + $arr["$newval"] = $freq; + } + } else { + foreach ($this->_data as $val) { + $newval = $val - $mean; + $arr[] = $newval; + } + } + return $this->setData($arr, $this->_dataOption); + }/*}}}*/ + + /** + * Calculates the basic or full statistics for the data set + * + * @access public + * @param int $mode one of STATS_BASIC or STATS_FULL + * @param boolean $returnErrorObject whether the raw PEAR_Error (when true, default), + * or only the error message will be returned (when false), if an error happens. + * @return mixed an associative array of statistics on success, a PEAR_Error object otherwise + * @see calcBasic() + * @see calcFull() + */ + function calc($mode, $returnErrorObject=true) {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if ($mode == STATS_BASIC) { + return $this->calcBasic($returnErrorObject); + } elseif ($mode == STATS_FULL) { + return $this->calcFull($returnErrorObject); + } else { + return PEAR::raiseError('incorrect mode, expected STATS_BASIC or STATS_FULL'); + } + }/*}}}*/ + + /** + * Calculates a basic set of statistics + * + * @access public + * @param boolean $returnErrorObject whether the raw PEAR_Error (when true, default), + * or only the error message will be returned (when false), if an error happens. + * @return mixed an associative array of statistics on success, a PEAR_Error object otherwise + * @see calc() + * @see calcFull() + */ + function calcBasic($returnErrorObject=true) {/*{{{*/ + return array ( + 'min' => $this->__format($this->min(), $returnErrorObject), + 'max' => $this->__format($this->max(), $returnErrorObject), + 'sum' => $this->__format($this->sum(), $returnErrorObject), + 'sum2' => $this->__format($this->sum2(), $returnErrorObject), + 'count' => $this->__format($this->count(), $returnErrorObject), + 'mean' => $this->__format($this->mean(), $returnErrorObject), + 'stdev' => $this->__format($this->stDev(), $returnErrorObject), + 'variance' => $this->__format($this->variance(), $returnErrorObject), + 'range' => $this->__format($this->range(), $returnErrorObject) + ); + }/*}}}*/ + + /** + * Calculates a full set of statistics + * + * @access public + * @param boolean $returnErrorObject whether the raw PEAR_Error (when true, default), + * or only the error message will be returned (when false), if an error happens. + * @return mixed an associative array of statistics on success, a PEAR_Error object otherwise + * @see calc() + * @see calcBasic() + */ + function calcFull($returnErrorObject=true) {/*{{{*/ + return array ( + 'min' => $this->__format($this->min(), $returnErrorObject), + 'max' => $this->__format($this->max(), $returnErrorObject), + 'sum' => $this->__format($this->sum(), $returnErrorObject), + 'sum2' => $this->__format($this->sum2(), $returnErrorObject), + 'count' => $this->__format($this->count(), $returnErrorObject), + 'mean' => $this->__format($this->mean(), $returnErrorObject), + 'median' => $this->__format($this->median(), $returnErrorObject), + 'mode' => $this->__format($this->mode(), $returnErrorObject), + 'midrange' => $this->__format($this->midrange(), $returnErrorObject), + 'geometric_mean' => $this->__format($this->geometricMean(), $returnErrorObject), + 'harmonic_mean' => $this->__format($this->harmonicMean(), $returnErrorObject), + 'stdev' => $this->__format($this->stDev(), $returnErrorObject), + 'absdev' => $this->__format($this->absDev(), $returnErrorObject), + 'variance' => $this->__format($this->variance(), $returnErrorObject), + 'range' => $this->__format($this->range(), $returnErrorObject), + 'std_error_of_mean' => $this->__format($this->stdErrorOfMean(), $returnErrorObject), + 'skewness' => $this->__format($this->skewness(), $returnErrorObject), + 'kurtosis' => $this->__format($this->kurtosis(), $returnErrorObject), + 'coeff_of_variation' => $this->__format($this->coeffOfVariation(), $returnErrorObject), + 'sample_central_moments' => array ( + 1 => $this->__format($this->sampleCentralMoment(1), $returnErrorObject), + 2 => $this->__format($this->sampleCentralMoment(2), $returnErrorObject), + 3 => $this->__format($this->sampleCentralMoment(3), $returnErrorObject), + 4 => $this->__format($this->sampleCentralMoment(4), $returnErrorObject), + 5 => $this->__format($this->sampleCentralMoment(5), $returnErrorObject) + ), + 'sample_raw_moments' => array ( + 1 => $this->__format($this->sampleRawMoment(1), $returnErrorObject), + 2 => $this->__format($this->sampleRawMoment(2), $returnErrorObject), + 3 => $this->__format($this->sampleRawMoment(3), $returnErrorObject), + 4 => $this->__format($this->sampleRawMoment(4), $returnErrorObject), + 5 => $this->__format($this->sampleRawMoment(5), $returnErrorObject) + ), + 'frequency' => $this->__format($this->frequency(), $returnErrorObject), + 'quartiles' => $this->__format($this->quartiles(), $returnErrorObject), + 'interquartile_range' => $this->__format($this->interquartileRange(), $returnErrorObject), + 'interquartile_mean' => $this->__format($this->interquartileMean(), $returnErrorObject), + 'quartile_deviation' => $this->__format($this->quartileDeviation(), $returnErrorObject), + 'quartile_variation_coefficient' => $this->__format($this->quartileVariationCoefficient(), $returnErrorObject), + 'quartile_skewness_coefficient' => $this->__format($this->quartileSkewnessCoefficient(), $returnErrorObject) + ); + }/*}}}*/ + + /** + * Calculates the minimum of a data set. + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the minimum value on success, a PEAR_Error object otherwise + * @see calc() + * @see max() + */ + function min() {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (!array_key_exists('min', $this->_calculatedValues)) { + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + $min = min(array_keys($this->_data)); + } else { + $min = min($this->_data); + } + $this->_calculatedValues['min'] = $min; + } + return $this->_calculatedValues['min']; + }/*}}}*/ + + /** + * Calculates the maximum of a data set. + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the maximum value on success, a PEAR_Error object otherwise + * @see calc() + * @see min() + */ + function max() {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (!array_key_exists('max', $this->_calculatedValues)) { + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + $max = max(array_keys($this->_data)); + } else { + $max = max($this->_data); + } + $this->_calculatedValues['max'] = $max; + } + return $this->_calculatedValues['max']; + }/*}}}*/ + + /** + * Calculates SUM { xi } + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the sum on success, a PEAR_Error object otherwise + * @see calc() + * @see sum2() + * @see sumN() + */ + function sum() {/*{{{*/ + if (!array_key_exists('sum', $this->_calculatedValues)) { + $sum = $this->sumN(1); + if (PEAR::isError($sum)) { + return $sum; + } else { + $this->_calculatedValues['sum'] = $sum; + } + } + return $this->_calculatedValues['sum']; + }/*}}}*/ + + /** + * Calculates SUM { (xi)^2 } + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the sum on success, a PEAR_Error object otherwise + * @see calc() + * @see sum() + * @see sumN() + */ + function sum2() {/*{{{*/ + if (!array_key_exists('sum2', $this->_calculatedValues)) { + $sum2 = $this->sumN(2); + if (PEAR::isError($sum2)) { + return $sum2; + } else { + $this->_calculatedValues['sum2'] = $sum2; + } + } + return $this->_calculatedValues['sum2']; + }/*}}}*/ + + /** + * Calculates SUM { (xi)^n } + * Handles cummulative data sets correctly + * + * @access public + * @param numeric $n the exponent + * @return mixed the sum on success, a PEAR_Error object otherwise + * @see calc() + * @see sum() + * @see sum2() + */ + function sumN($n) {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + $sumN = 0; + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + foreach($this->_data as $val=>$freq) { + $sumN += $freq * pow((double)$val, (double)$n); + } + } else { + foreach($this->_data as $val) { + $sumN += pow((double)$val, (double)$n); + } + } + return $sumN; + }/*}}}*/ + + /** + * Calculates PROD { (xi) }, (the product of all observations) + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the product on success, a PEAR_Error object otherwise + * @see productN() + */ + function product() {/*{{{*/ + if (!array_key_exists('product', $this->_calculatedValues)) { + $product = $this->productN(1); + if (PEAR::isError($product)) { + return $product; + } else { + $this->_calculatedValues['product'] = $product; + } + } + return $this->_calculatedValues['product']; + }/*}}}*/ + + /** + * Calculates PROD { (xi)^n }, which is the product of all observations + * Handles cummulative data sets correctly + * + * @access public + * @param numeric $n the exponent + * @return mixed the product on success, a PEAR_Error object otherwise + * @see product() + */ + function productN($n) {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + $prodN = 1.0; + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + foreach($this->_data as $val=>$freq) { + if ($val == 0) { + return 0.0; + } + $prodN *= $freq * pow((double)$val, (double)$n); + } + } else { + foreach($this->_data as $val) { + if ($val == 0) { + return 0.0; + } + $prodN *= pow((double)$val, (double)$n); + } + } + return $prodN; + + }/*}}}*/ + + /** + * Calculates the number of data points in the set + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the count on success, a PEAR_Error object otherwise + * @see calc() + */ + function count() {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (!array_key_exists('count', $this->_calculatedValues)) { + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + $count = count($this->_dataExpanded); + } else { + $count = count($this->_data); + } + $this->_calculatedValues['count'] = $count; + } + return $this->_calculatedValues['count']; + }/*}}}*/ + + /** + * Calculates the mean (average) of the data points in the set + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the mean value on success, a PEAR_Error object otherwise + * @see calc() + * @see sum() + * @see count() + */ + function mean() {/*{{{*/ + if (!array_key_exists('mean', $this->_calculatedValues)) { + $sum = $this->sum(); + if (PEAR::isError($sum)) { + return $sum; + } + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + $this->_calculatedValues['mean'] = $sum / $count; + } + return $this->_calculatedValues['mean']; + }/*}}}*/ + + /** + * Calculates the range of the data set = max - min + * + * @access public + * @return mixed the value of the range on success, a PEAR_Error object otherwise. + */ + function range() {/*{{{*/ + if (!array_key_exists('range', $this->_calculatedValues)) { + $min = $this->min(); + if (PEAR::isError($min)) { + return $min; + } + $max = $this->max(); + if (PEAR::isError($max)) { + return $max; + } + $this->_calculatedValues['range'] = $max - $min; + } + return $this->_calculatedValues['range']; + + }/*}}}*/ + + /** + * Calculates the variance (unbiased) of the data points in the set + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the variance value on success, a PEAR_Error object otherwise + * @see calc() + * @see __sumdiff() + * @see count() + */ + function variance() {/*{{{*/ + if (!array_key_exists('variance', $this->_calculatedValues)) { + $variance = $this->__calcVariance(); + if (PEAR::isError($variance)) { + return $variance; + } + $this->_calculatedValues['variance'] = $variance; + } + return $this->_calculatedValues['variance']; + }/*}}}*/ + + /** + * Calculates the standard deviation (unbiased) of the data points in the set + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the standard deviation on success, a PEAR_Error object otherwise + * @see calc() + * @see variance() + */ + function stDev() {/*{{{*/ + if (!array_key_exists('stDev', $this->_calculatedValues)) { + $variance = $this->variance(); + if (PEAR::isError($variance)) { + return $variance; + } + $this->_calculatedValues['stDev'] = sqrt($variance); + } + return $this->_calculatedValues['stDev']; + }/*}}}*/ + + /** + * Calculates the variance (unbiased) of the data points in the set + * given a fixed mean (average) value. Not used in calcBasic(), calcFull() + * or calc(). + * Handles cummulative data sets correctly + * + * @access public + * @param numeric $mean the fixed mean value + * @return mixed the variance on success, a PEAR_Error object otherwise + * @see __sumdiff() + * @see count() + * @see variance() + */ + function varianceWithMean($mean) {/*{{{*/ + return $this->__calcVariance($mean); + }/*}}}*/ + + /** + * Calculates the standard deviation (unbiased) of the data points in the set + * given a fixed mean (average) value. Not used in calcBasic(), calcFull() + * or calc(). + * Handles cummulative data sets correctly + * + * @access public + * @param numeric $mean the fixed mean value + * @return mixed the standard deviation on success, a PEAR_Error object otherwise + * @see varianceWithMean() + * @see stDev() + */ + function stDevWithMean($mean) {/*{{{*/ + $varianceWM = $this->varianceWithMean($mean); + if (PEAR::isError($varianceWM)) { + return $varianceWM; + } + return sqrt($varianceWM); + }/*}}}*/ + + /** + * Calculates the absolute deviation of the data points in the set + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the absolute deviation on success, a PEAR_Error object otherwise + * @see calc() + * @see __sumabsdev() + * @see count() + * @see absDevWithMean() + */ + function absDev() {/*{{{*/ + if (!array_key_exists('absDev', $this->_calculatedValues)) { + $absDev = $this->__calcAbsoluteDeviation(); + if (PEAR::isError($absdev)) { + return $absdev; + } + $this->_calculatedValues['absDev'] = $absDev; + } + return $this->_calculatedValues['absDev']; + }/*}}}*/ + + /** + * Calculates the absolute deviation of the data points in the set + * given a fixed mean (average) value. Not used in calcBasic(), calcFull() + * or calc(). + * Handles cummulative data sets correctly + * + * @access public + * @param numeric $mean the fixed mean value + * @return mixed the absolute deviation on success, a PEAR_Error object otherwise + * @see __sumabsdev() + * @see absDev() + */ + function absDevWithMean($mean) {/*{{{*/ + return $this->__calcAbsoluteDeviation($mean); + }/*}}}*/ + + /** + * Calculates the skewness of the data distribution in the set + * The skewness measures the degree of asymmetry of a distribution, + * and is related to the third central moment of a distribution. + * A normal distribution has a skewness = 0 + * A distribution with a tail off towards the high end of the scale + * (positive skew) has a skewness > 0 + * A distribution with a tail off towards the low end of the scale + * (negative skew) has a skewness < 0 + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the skewness value on success, a PEAR_Error object otherwise + * @see __sumdiff() + * @see count() + * @see stDev() + * @see calc() + */ + function skewness() {/*{{{*/ + if (!array_key_exists('skewness', $this->_calculatedValues)) { + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + $stDev = $this->stDev(); + if (PEAR::isError($stDev)) { + return $stDev; + } + $sumdiff3 = $this->__sumdiff(3); + if (PEAR::isError($sumdiff3)) { + return $sumdiff3; + } + $this->_calculatedValues['skewness'] = ($sumdiff3 / ($count * pow($stDev, 3))); + } + return $this->_calculatedValues['skewness']; + }/*}}}*/ + + /** + * Calculates the kurtosis of the data distribution in the set + * The kurtosis measures the degrees of peakedness of a distribution. + * It is also called the "excess" or "excess coefficient", and is + * a normalized form of the fourth central moment of a distribution. + * A normal distributions has kurtosis = 0 + * A narrow and peaked (leptokurtic) distribution has a + * kurtosis > 0 + * A flat and wide (platykurtic) distribution has a kurtosis < 0 + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the kurtosis value on success, a PEAR_Error object otherwise + * @see __sumdiff() + * @see count() + * @see stDev() + * @see calc() + */ + function kurtosis() {/*{{{*/ + if (!array_key_exists('kurtosis', $this->_calculatedValues)) { + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + $stDev = $this->stDev(); + if (PEAR::isError($stDev)) { + return $stDev; + } + $sumdiff4 = $this->__sumdiff(4); + if (PEAR::isError($sumdiff4)) { + return $sumdiff4; + } + $this->_calculatedValues['kurtosis'] = ($sumdiff4 / ($count * pow($stDev, 4))) - 3; + } + return $this->_calculatedValues['kurtosis']; + }/*}}}*/ + + /** + * Calculates the median of a data set. + * The median is the value such that half of the points are below it + * in a sorted data set. + * If the number of values is odd, it is the middle item. + * If the number of values is even, is the average of the two middle items. + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the median value on success, a PEAR_Error object otherwise + * @see count() + * @see calc() + */ + function median() {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (!array_key_exists('median', $this->_calculatedValues)) { + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + $arr =& $this->_dataExpanded; + } else { + $arr =& $this->_data; + } + $n = $this->count(); + if (PEAR::isError($n)) { + return $n; + } + $h = intval($n / 2); + if ($n % 2 == 0) { + $median = ($arr[$h] + $arr[$h - 1]) / 2; + } else { + $median = $arr[$h + 1]; + } + $this->_calculatedValues['median'] = $median; + } + return $this->_calculatedValues['median']; + }/*}}}*/ + + /** + * Calculates the mode of a data set. + * The mode is the value with the highest frequency in the data set. + * There can be more than one mode. + * Handles cummulative data sets correctly + * + * @access public + * @return mixed an array of mode value on success, a PEAR_Error object otherwise + * @see frequency() + * @see calc() + */ + function mode() {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (!array_key_exists('mode', $this->_calculatedValues)) { + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + $arr = $this->_data; + } else { + $arr = $this->frequency(); + } + arsort($arr); + $mcount = 1; + foreach ($arr as $val=>$freq) { + if ($mcount == 1) { + $mode = array($val); + $mfreq = $freq; + ++$mcount; + continue; + } + if ($mfreq == $freq) + $mode[] = $val; + if ($mfreq > $freq) + break; + } + $this->_calculatedValues['mode'] = $mode; + } + return $this->_calculatedValues['mode']; + }/*}}}*/ + + /** + * Calculates the midrange of a data set. + * The midrange is the average of the minimum and maximum of the data set. + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the midrange value on success, a PEAR_Error object otherwise + * @see min() + * @see max() + * @see calc() + */ + function midrange() {/*{{{*/ + if (!array_key_exists('midrange', $this->_calculatedValues)) { + $min = $this->min(); + if (PEAR::isError($min)) { + return $min; + } + $max = $this->max(); + if (PEAR::isError($max)) { + return $max; + } + $this->_calculatedValues['midrange'] = (($max + $min) / 2); + } + return $this->_calculatedValues['midrange']; + }/*}}}*/ + + /** + * Calculates the geometrical mean of the data points in the set + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the geometrical mean value on success, a PEAR_Error object otherwise + * @see calc() + * @see product() + * @see count() + */ + function geometricMean() {/*{{{*/ + if (!array_key_exists('geometricMean', $this->_calculatedValues)) { + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + $prod = $this->product(); + if (PEAR::isError($prod)) { + return $prod; + } + if ($prod == 0.0) { + return 0.0; + } + if ($prod < 0) { + return PEAR::raiseError('The product of the data set is negative, geometric mean undefined.'); + } + $this->_calculatedValues['geometricMean'] = pow($prod , 1 / $count); + } + return $this->_calculatedValues['geometricMean']; + }/*}}}*/ + + /** + * Calculates the harmonic mean of the data points in the set + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the harmonic mean value on success, a PEAR_Error object otherwise + * @see calc() + * @see count() + */ + function harmonicMean() {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (!array_key_exists('harmonicMean', $this->_calculatedValues)) { + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + $invsum = 0.0; + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + foreach($this->_data as $val=>$freq) { + if ($val == 0) { + return PEAR::raiseError('cannot calculate a '. + 'harmonic mean with data values of zero.'); + } + $invsum += $freq / $val; + } + } else { + foreach($this->_data as $val) { + if ($val == 0) { + return PEAR::raiseError('cannot calculate a '. + 'harmonic mean with data values of zero.'); + } + $invsum += 1 / $val; + } + } + $this->_calculatedValues['harmonicMean'] = $count / $invsum; + } + return $this->_calculatedValues['harmonicMean']; + }/*}}}*/ + + /** + * Calculates the nth central moment (m{n}) of a data set. + * + * The definition of a sample central moment is: + * + * m{n} = 1/N * SUM { (xi - avg)^n } + * + * where: N = sample size, avg = sample mean. + * + * @access public + * @param integer $n moment to calculate + * @return mixed the numeric value of the moment on success, PEAR_Error otherwise + */ + function sampleCentralMoment($n) {/*{{{*/ + if (!is_int($n) || $n < 1) { + return PEAR::isError('moment must be a positive integer >= 1.'); + } + + if ($n == 1) { + return 0; + } + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + if ($count == 0) { + return PEAR::raiseError("Cannot calculate {$n}th sample moment, ". + 'there are zero data entries'); + } + $sum = $this->__sumdiff($n); + if (PEAR::isError($sum)) { + return $sum; + } + return ($sum / $count); + }/*}}}*/ + + /** + * Calculates the nth raw moment (m{n}) of a data set. + * + * The definition of a sample central moment is: + * + * m{n} = 1/N * SUM { xi^n } + * + * where: N = sample size, avg = sample mean. + * + * @access public + * @param integer $n moment to calculate + * @return mixed the numeric value of the moment on success, PEAR_Error otherwise + */ + function sampleRawMoment($n) {/*{{{*/ + if (!is_int($n) || $n < 1) { + return PEAR::isError('moment must be a positive integer >= 1.'); + } + + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + if ($count == 0) { + return PEAR::raiseError("Cannot calculate {$n}th raw moment, ". + 'there are zero data entries.'); + } + $sum = $this->sumN($n); + if (PEAR::isError($sum)) { + return $sum; + } + return ($sum / $count); + }/*}}}*/ + + + /** + * Calculates the coefficient of variation of a data set. + * The coefficient of variation measures the spread of a set of data + * as a proportion of its mean. It is often expressed as a percentage. + * Handles cummulative data sets correctly + * + * @access public + * @return mixed the coefficient of variation on success, a PEAR_Error object otherwise + * @see stDev() + * @see mean() + * @see calc() + */ + function coeffOfVariation() {/*{{{*/ + if (!array_key_exists('coeffOfVariation', $this->_calculatedValues)) { + $mean = $this->mean(); + if (PEAR::isError($mean)) { + return $mean; + } + if ($mean == 0.0) { + return PEAR::raiseError('cannot calculate the coefficient '. + 'of variation, mean of sample is zero'); + } + $stDev = $this->stDev(); + if (PEAR::isError($stDev)) { + return $stDev; + } + + $this->_calculatedValues['coeffOfVariation'] = $stDev / $mean; + } + return $this->_calculatedValues['coeffOfVariation']; + }/*}}}*/ + + /** + * Calculates the standard error of the mean. + * It is the standard deviation of the sampling distribution of + * the mean. The formula is: + * + * S.E. Mean = SD / (N)^(1/2) + * + * This formula does not assume a normal distribution, and shows + * that the size of the standard error of the mean is inversely + * proportional to the square root of the sample size. + * + * @access public + * @return mixed the standard error of the mean on success, a PEAR_Error object otherwise + * @see stDev() + * @see count() + * @see calc() + */ + function stdErrorOfMean() {/*{{{*/ + if (!array_key_exists('stdErrorOfMean', $this->_calculatedValues)) { + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + $stDev = $this->stDev(); + if (PEAR::isError($stDev)) { + return $stDev; + } + $this->_calculatedValues['stdErrorOfMean'] = $stDev / sqrt($count); + } + return $this->_calculatedValues['stdErrorOfMean']; + }/*}}}*/ + + /** + * Calculates the value frequency table of a data set. + * Handles cummulative data sets correctly + * + * @access public + * @return mixed an associative array of value=>frequency items on success, a PEAR_Error object otherwise + * @see min() + * @see max() + * @see calc() + */ + function frequency() {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (!array_key_exists('frequency', $this->_calculatedValues)) { + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + $freq = $this->_data; + } else { + $freq = array(); + foreach ($this->_data as $val) { + $freq["$val"]++; + } + ksort($freq); + } + $this->_calculatedValues['frequency'] = $freq; + } + return $this->_calculatedValues['frequency']; + }/*}}}*/ + + /** + * The quartiles are defined as the values that divide a sorted + * data set into four equal-sized subsets, and correspond to the + * 25th, 50th, and 75th percentiles. + * + * @access public + * @return mixed an associative array of quartiles on success, a PEAR_Error otherwise + * @see percentile() + */ + function quartiles() {/*{{{*/ + if (!array_key_exists('quartiles', $this->_calculatedValues)) { + $q1 = $this->percentile(25); + if (PEAR::isError($q1)) { + return $q1; + } + $q2 = $this->percentile(50); + if (PEAR::isError($q2)) { + return $q2; + } + $q3 = $this->percentile(75); + if (PEAR::isError($q3)) { + return $q3; + } + $this->_calculatedValues['quartiles'] = array ( + '25' => $q1, + '50' => $q2, + '75' => $q3 + ); + } + return $this->_calculatedValues['quartiles']; + }/*}}}*/ + + /** + * The interquartile mean is defined as the mean of the values left + * after discarding the lower 25% and top 25% ranked values, i.e.: + * + * interquart mean = mean(<P(25),P(75)>) + * + * where: P = percentile + * + * @todo need to double check the equation + * @access public + * @return mixed a numeric value on success, a PEAR_Error otherwise + * @see quartiles() + */ + function interquartileMean() {/*{{{*/ + if (!array_key_exists('interquartileMean', $this->_calculatedValues)) { + $quart = $this->quartiles(); + if (PEAR::isError($quart)) { + return $quart; + } + $q3 = $quart['75']; + $q1 = $quart['25']; + $sum = 0; + $n = 0; + foreach ($this->getData(true) as $val) { + if ($val >= $q1 && $val <= $q3) { + $sum += $val; + ++$n; + } + } + if ($n == 0) { + return PEAR::raiseError('error calculating interquartile mean, '. + 'empty interquartile range of values.'); + } + $this->_calculatedValues['interquartileMean'] = $sum / $n; + } + return $this->_calculatedValues['interquartileMean']; + }/*}}}*/ + + /** + * The interquartile range is the distance between the 75th and 25th + * percentiles. Basically the range of the middle 50% of the data set, + * and thus is not affected by outliers or extreme values. + * + * interquart range = P(75) - P(25) + * + * where: P = percentile + * + * @access public + * @return mixed a numeric value on success, a PEAR_Error otherwise + * @see quartiles() + */ + function interquartileRange() {/*{{{*/ + if (!array_key_exists('interquartileRange', $this->_calculatedValues)) { + $quart = $this->quartiles(); + if (PEAR::isError($quart)) { + return $quart; + } + $q3 = $quart['75']; + $q1 = $quart['25']; + $this->_calculatedValues['interquartileRange'] = $q3 - $q1; + } + return $this->_calculatedValues['interquartileRange']; + }/*}}}*/ + + /** + * The quartile deviation is half of the interquartile range value + * + * quart dev = (P(75) - P(25)) / 2 + * + * where: P = percentile + * + * @access public + * @return mixed a numeric value on success, a PEAR_Error otherwise + * @see quartiles() + * @see interquartileRange() + */ + function quartileDeviation() {/*{{{*/ + if (!array_key_exists('quartileDeviation', $this->_calculatedValues)) { + $iqr = $this->interquartileRange(); + if (PEAR::isError($iqr)) { + return $iqr; + } + $this->_calculatedValues['quartileDeviation'] = $iqr / 2; + } + return $this->_calculatedValues['quartileDeviation']; + }/*}}}*/ + + /** + * The quartile variation coefficient is defines as follows: + * + * quart var coeff = 100 * (P(75) - P(25)) / (P(75) + P(25)) + * + * where: P = percentile + * + * @todo need to double check the equation + * @access public + * @return mixed a numeric value on success, a PEAR_Error otherwise + * @see quartiles() + */ + function quartileVariationCoefficient() {/*{{{*/ + if (!array_key_exists('quartileVariationCoefficient', $this->_calculatedValues)) { + $quart = $this->quartiles(); + if (PEAR::isError($quart)) { + return $quart; + } + $q3 = $quart['75']; + $q1 = $quart['25']; + $d = $q3 - $q1; + $s = $q3 + $q1; + $this->_calculatedValues['quartileVariationCoefficient'] = 100 * $d / $s; + } + return $this->_calculatedValues['quartileVariationCoefficient']; + }/*}}}*/ + + /** + * The quartile skewness coefficient (also known as Bowley Skewness), + * is defined as follows: + * + * quart skewness coeff = (P(25) - 2*P(50) + P(75)) / (P(75) - P(25)) + * + * where: P = percentile + * + * @todo need to double check the equation + * @access public + * @return mixed a numeric value on success, a PEAR_Error otherwise + * @see quartiles() + */ + function quartileSkewnessCoefficient() {/*{{{*/ + if (!array_key_exists('quartileSkewnessCoefficient', $this->_calculatedValues)) { + $quart = $this->quartiles(); + if (PEAR::isError($quart)) { + return $quart; + } + $q3 = $quart['75']; + $q2 = $quart['50']; + $q1 = $quart['25']; + $d = $q3 - 2*$q2 + $q1; + $s = $q3 - $q1; + $this->_calculatedValues['quartileSkewnessCoefficient'] = $d / $s; + } + return $this->_calculatedValues['quartileSkewnessCoefficient']; + }/*}}}*/ + + /** + * The pth percentile is the value such that p% of the a sorted data set + * is smaller than it, and (100 - p)% of the data is larger. + * + * A quick algorithm to pick the appropriate value from a sorted data + * set is as follows: + * + * - Count the number of values: n + * - Calculate the position of the value in the data list: i = p * (n + 1) + * - if i is an integer, return the data at that position + * - if i < 1, return the minimum of the data set + * - if i > n, return the maximum of the data set + * - otherwise, average the entries at adjacent positions to i + * + * The median is the 50th percentile value. + * + * @todo need to double check generality of the algorithm + * + * @access public + * @param numeric $p the percentile to estimate, e.g. 25 for 25th percentile + * @return mixed a numeric value on success, a PEAR_Error otherwise + * @see quartiles() + * @see median() + */ + function percentile($p) {/*{{{*/ + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + $data =& $this->_dataExpanded; + } else { + $data =& $this->_data; + } + $obsidx = $p * ($count + 1) / 100; + if (intval($obsidx) == $obsidx) { + return $data[($obsidx - 1)]; + } elseif ($obsidx < 1) { + return $data[0]; + } elseif ($obsidx > $count) { + return $data[($count - 1)]; + } else { + $left = floor($obsidx - 1); + $right = ceil($obsidx - 1); + return ($data[$left] + $data[$right]) / 2; + } + }/*}}}*/ + + // private methods + + /** + * Utility function to calculate: SUM { (xi - mean)^n } + * + * @access private + * @param numeric $power the exponent + * @param optional double $mean the data set mean value + * @return mixed the sum on success, a PEAR_Error object otherwise + * + * @see stDev() + * @see variaceWithMean(); + * @see skewness(); + * @see kurtosis(); + */ + function __sumdiff($power, $mean=null) {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (is_null($mean)) { + $mean = $this->mean(); + if (PEAR::isError($mean)) { + return $mean; + } + } + $sdiff = 0; + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + foreach ($this->_data as $val=>$freq) { + $sdiff += $freq * pow((double)($val - $mean), (double)$power); + } + } else { + foreach ($this->_data as $val) + $sdiff += pow((double)($val - $mean), (double)$power); + } + return $sdiff; + }/*}}}*/ + + /** + * Utility function to calculate the variance with or without + * a fixed mean + * + * @access private + * @param $mean the fixed mean to use, null as default + * @return mixed a numeric value on success, a PEAR_Error otherwise + * @see variance() + * @see varianceWithMean() + */ + function __calcVariance($mean = null) {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + $sumdiff2 = $this->__sumdiff(2, $mean); + if (PEAR::isError($sumdiff2)) { + return $sumdiff2; + } + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + if ($count == 1) { + return PEAR::raiseError('cannot calculate variance of a singe data point'); + } + return ($sumdiff2 / ($count - 1)); + }/*}}}*/ + + /** + * Utility function to calculate the absolute deviation with or without + * a fixed mean + * + * @access private + * @param $mean the fixed mean to use, null as default + * @return mixed a numeric value on success, a PEAR_Error otherwise + * @see absDev() + * @see absDevWithMean() + */ + function __calcAbsoluteDeviation($mean = null) {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + $count = $this->count(); + if (PEAR::isError($count)) { + return $count; + } + $sumabsdev = $this->__sumabsdev($mean); + if (PEAR::isError($sumabsdev)) { + return $sumabsdev; + } + return $sumabsdev / $count; + }/*}}}*/ + + /** + * Utility function to calculate: SUM { | xi - mean | } + * + * @access private + * @param optional double $mean the mean value for the set or population + * @return mixed the sum on success, a PEAR_Error object otherwise + * + * @see absDev() + * @see absDevWithMean() + */ + function __sumabsdev($mean=null) {/*{{{*/ + if ($this->_data == null) { + return PEAR::raiseError('data has not been set'); + } + if (is_null($mean)) { + $mean = $this->mean(); + } + $sdev = 0; + if ($this->_dataOption == STATS_DATA_CUMMULATIVE) { + foreach ($this->_data as $val=>$freq) { + $sdev += $freq * abs($val - $mean); + } + } else { + foreach ($this->_data as $val) { + $sdev += abs($val - $mean); + } + } + return $sdev; + }/*}}}*/ + + /** + * Utility function to format a PEAR_Error to be used by calc(), + * calcBasic() and calcFull() + * + * @access private + * @param mixed $v value to be formatted + * @param boolean $returnErrorObject whether the raw PEAR_Error (when true, default), + * or only the error message will be returned (when false) + * @return mixed if the value is a PEAR_Error object, and $useErrorObject + * is false, then a string with the error message will be returned, + * otherwise the value will not be modified and returned as passed. + */ + function __format($v, $useErrorObject=true) {/*{{{*/ + if (PEAR::isError($v) && $useErrorObject == false) { + return $v->getMessage(); + } else { + return $v; + } + }/*}}}*/ + + /** + * Utility function to validate the data and modify it + * according to the current null handling option + * + * @access private + * @return mixed true on success, a PEAR_Error object otherwise + * + * @see setData() + */ + function _validate() {/*{{{*/ + $flag = ($this->_dataOption == STATS_DATA_CUMMULATIVE); + foreach ($this->_data as $key=>$value) { + $d = ($flag) ? $key : $value; + $v = ($flag) ? $value : $key; + if (!is_numeric($d)) { + switch ($this->_nullOption) { + case STATS_IGNORE_NULL : + unset($this->_data["$key"]); + break; + case STATS_USE_NULL_AS_ZERO: + if ($flag) { + unset($this->_data["$key"]); + $this->_data[0] += $v; + } else { + $this->_data[$key] = 0; + } + break; + case STATS_REJECT_NULL : + default: + return PEAR::raiseError('data rejected, contains NULL values'); + break; + } + } + } + if ($flag) { + ksort($this->_data); + $this->_dataExpanded = array(); + foreach ($this->_data as $val=>$freq) { + $this->_dataExpanded = array_pad($this->_dataExpanded, count($this->_dataExpanded) + $freq, $val); + } + sort($this->_dataExpanded); + } else { + sort($this->_data); + } + return true; + }/*}}}*/ + +}/*}}}*/ + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: fdm=marker: + +?> diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/benchmark.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/benchmark.php new file mode 100755 index 0000000..1b963b4 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/benchmark.php @@ -0,0 +1,263 @@ +<?php + +error_reporting(E_ALL); + +/** + * @package JAMA + */ + +require_once '../Matrix.php'; +require_once 'Stats.php'; + + +/** + * Example of use of Matrix Class, featuring magic squares. + */ +class Benchmark { + public $stat; + + + /** + * Simple function to replicate PHP 5 behaviour + */ + function microtime_float() { + list($usec, $sec) = explode(" ", microtime()); + + return ((float)$usec + (float)$sec); + } // function microtime_float() + + + function displayStats($times = null) { + $this->stat->setData($times); + $stats = $this->stat->calcFull(); + + echo '<table style="margin-left:32px;">'; + echo '<tr><td style="text-align:right;"><b>n:</b><td style="text-align:right;">' . $stats['count'] . ' </td></tr>'; + echo '<tr><td style="text-align:right;"><b>Mean:</b><td style="text-align:right;">' . $stats['mean'] . ' </td></tr>'; + echo '<tr><td style="text-align:right;"><b>Min.:</b><td style="text-align:right;">' . $stats['min'] . ' </td></tr>'; + echo '<tr><td style="text-align:right;"><b>Max.:</b><td style="text-align:right;">' . $stats['max'] . ' </td></tr>'; + echo '<tr><td style="text-align:right;"><b>&sigma;:</b><td style="text-align:right;">' . $stats['stdev'] . ' </td></tr>'; + echo '<tr><td style="text-align:right;"><b>Variance:</b><td style="text-align:right;">' . $stats['variance'] . ' </td></tr>'; + echo '<tr><td style="text-align:right;"><b>Range:</b><td style="text-align:right;">' . $stats['range'] . ' </td></tr>'; + echo '</table>'; + + return $stats; + } // function displayStats() + + + function runEig($n = 4, $t = 100) { + $times = array(); + + for ($i = 0; $i < $t; ++$i) { + $M = Matrix::random($n, $n); + $start_time = $this->microtime_float(); + $E = new EigenvalueDecomposition($M); + $stop_time = $this->microtime_float(); + $times[] = $stop_time - $start_time; + } + + return $times; + } // function runEig() + + + function runLU($n = 4, $t = 100) { + $times = array(); + + for ($i = 0; $i < $t; ++$i) { + $M = Matrix::random($n, $n); + $start_time = $this->microtime_float(); + $E = new LUDecomposition($M); + $stop_time = $this->microtime_float(); + $times[] = $stop_time - $start_time; + } + + return $times; + } // function runLU() + + + function runQR($n = 4, $t = 100) { + $times = array(); + + for ($i = 0; $i < $t; ++$i) { + $M = Matrix::random($n, $n); + $start_time = $this->microtime_float(); + $E = new QRDecomposition($M); + $stop_time = $this->microtime_float(); + $times[] = $stop_time - $start_time; + } + + return $times; + } // function runQR() + + + function runCholesky($n = 4, $t = 100) { + $times = array(); + + for ($i = 0; $i < $t; ++$i) { + $M = Matrix::random($n, $n); + $start_time = $this->microtime_float(); + $E = new CholeskyDecomposition($M); + $stop_time = $this->microtime_float(); + $times[] = $stop_time - $start_time; + } + + return $times; + } // function runCholesky() + + + function runSVD($n = 4, $t = 100) { + $times = array(); + + for ($i = 0; $i < $t; ++$i) { + $M = Matrix::random($n, $n); + $start_time = $this->microtime_float(); + $E = new SingularValueDecomposition($M); + $stop_time = $this->microtime_float(); + $times[] = $stop_time - $start_time; + } + + return $times; + } // function runSVD() + + + function run() { + $n = 8; + $t = 16; + $sum = 0; + echo "<b>Cholesky decomposition: $t random {$n}x{$n} matrices</b><br />"; + $r = $this->displayStats($this->runCholesky($n, $t)); + $sum += $r['mean'] * $n; + + echo '<hr />'; + + echo "<b>Eigenvalue decomposition: $t random {$n}x{$n} matrices</b><br />"; + $r = $this->displayStats($this->runEig($n, $t)); + $sum += $r['mean'] * $n; + + echo '<hr />'; + + echo "<b>LU decomposition: $t random {$n}x{$n} matrices</b><br />"; + $r = $this->displayStats($this->runLU($n, $t)); + $sum += $r['mean'] * $n; + + echo '<hr />'; + + echo "<b>QR decomposition: $t random {$n}x{$n} matrices</b><br />"; + $r = $this->displayStats($this->runQR($n, $t)); + $sum += $r['mean'] * $n; + + echo '<hr />'; + + echo "<b>Singular Value decomposition: $t random {$n}x{$n} matrices</b><br />"; + $r = $this->displayStats($this->runSVD($n, $t)); + $sum += $r['mean'] * $n; + + return $sum; + } // function run() + + + public function __construct() { + $this->stat = new Base(); + } // function Benchmark() + +} // class Benchmark (end MagicSquareExample) + + +$benchmark = new Benchmark(); + +switch($_REQUEST['decomposition']) { + case 'cholesky': + $m = array(); + for ($i = 2; $i <= 8; $i *= 2) { + $t = 32 / $i; + echo "<b>Cholesky decomposition: $t random {$i}x{$i} matrices</b><br />"; + $s = $benchmark->displayStats($benchmark->runCholesky($i, $t)); + $m[$i] = $s['mean']; + echo "<br />"; + } + echo '<pre>'; + foreach($m as $x => $y) { + echo "$x\t" . 1000*$y . "\n"; + } + echo '</pre>'; + break; + case 'eigenvalue': + $m = array(); + for ($i = 2; $i <= 8; $i *= 2) { + $t = 32 / $i; + echo "<b>Eigenvalue decomposition: $t random {$i}x{$i} matrices</b><br />"; + $s = $benchmark->displayStats($benchmark->runEig($i, $t)); + $m[$i] = $s['mean']; + echo "<br />"; + } + echo '<pre>'; + foreach($m as $x => $y) { + echo "$x\t" . 1000*$y . "\n"; + } + echo '</pre>'; + break; + case 'lu': + $m = array(); + for ($i = 2; $i <= 8; $i *= 2) { + $t = 32 / $i; + echo "<b>LU decomposition: $t random {$i}x{$i} matrices</b><br />"; + $s = $benchmark->displayStats($benchmark->runLU($i, $t)); + $m[$i] = $s['mean']; + echo "<br />"; + } + echo '<pre>'; + foreach($m as $x => $y) { + echo "$x\t" . 1000*$y . "\n"; + } + echo '</pre>'; + break; + case 'qr': + $m = array(); + for ($i = 2; $i <= 8; $i *= 2) { + $t = 32 / $i; + echo "<b>QR decomposition: $t random {$i}x{$i} matrices</b><br />"; + $s = $benchmark->displayStats($benchmark->runQR($i, $t)); + $m[$i] = $s['mean']; + echo "<br />"; + } + echo '<pre>'; + foreach($m as $x => $y) { + echo "$x\t" . 1000*$y . "\n"; + } + echo '</pre>'; + break; + case 'svd': + $m = array(); + for($i = 2; $i <= 8; $i *= 2) { + $t = 32 / $i; + echo "<b>Singular value decomposition: $t random {$i}x{$i} matrices</b><br />"; + $s = $benchmark->displayStats($benchmark->runSVD($i, $t)); + $m[$i] = $s['mean']; + echo "<br />"; + } + echo '<pre>'; + foreach($m as $x => $y) { + echo "$x\t" . 1000*$y . "\n"; + } + echo '</pre>'; + break; + case 'all': + $s = $benchmark->run(); + print("<br /><b>Total<b>: {$s}s<br />"); + break; + default: + ?> + <ul> + <li><a href="benchmark.php?decomposition=all">Complete Benchmark</a> + <ul> + <li><a href="benchmark.php?decomposition=cholesky">Cholesky</a></li> + <li><a href="benchmark.php?decomposition=eigenvalue">Eigenvalue</a></li> + <li><a href="benchmark.php?decomposition=lu">LU</a></li> + <li><a href="benchmark.php?decomposition=qr">QR</a></li> + <li><a href="benchmark.php?decomposition=svd">Singular Value</a></li> + </ul> + </li> + </ul> + <?php + break; +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/polyfit.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/polyfit.php new file mode 100755 index 0000000..bc02fd6 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/polyfit.php @@ -0,0 +1,73 @@ +<?php +require_once "../Matrix.php"; +/* +* @package JAMA +* @author Michael Bommarito +* @author Paul Meagher +* @version 0.1 +* +* Function to fit an order n polynomial function through +* a series of x-y data points using least squares. +* +* @param $X array x values +* @param $Y array y values +* @param $n int order of polynomial to be used for fitting +* @returns array $coeffs of polynomial coefficients +* Pre-Conditions: the system is not underdetermined: sizeof($X) > $n+1 +*/ +function polyfit($X, $Y, $n) { + for ($i = 0; $i < sizeof($X); ++$i) + for ($j = 0; $j <= $n; ++$j) + $A[$i][$j] = pow($X[$i], $j); + for ($i=0; $i < sizeof($Y); ++$i) + $B[$i] = array($Y[$i]); + $matrixA = new Matrix($A); + $matrixB = new Matrix($B); + $C = $matrixA->solve($matrixB); + return $C->getMatrix(0, $n, 0, 1); +} + +function printpoly( $C = null ) { + for($i = $C->m - 1; $i >= 0; --$i) { + $r = $C->get($i, 0); + if ( abs($r) <= pow(10, -9) ) + $r = 0; + if ($i == $C->m - 1) + echo $r . "x<sup>$i</sup>"; + else if ($i < $C->m - 1) + echo " + " . $r . "x<sup>$i</sup>"; + else if ($i == 0) + echo " + " . $r; + } +} + +$X = array(0,1,2,3,4,5); +$Y = array(4,3,12,67,228, 579); +$points = new Matrix(array($X, $Y)); +$points->toHTML(); +printpoly(polyfit($X, $Y, 4)); + +echo '<hr />'; + +$X = array(0,1,2,3,4,5); +$Y = array(1,2,5,10,17, 26); +$points = new Matrix(array($X, $Y)); +$points->toHTML(); +printpoly(polyfit($X, $Y, 2)); + +echo '<hr />'; + +$X = array(0,1,2,3,4,5,6); +$Y = array(-90,-104,-178,-252,-26, 1160, 4446); +$points = new Matrix(array($X, $Y)); +$points->toHTML(); +printpoly(polyfit($X, $Y, 5)); + +echo '<hr />'; + +$X = array(0,1,2,3,4); +$Y = array(mt_rand(0, 10), mt_rand(40, 80), mt_rand(240, 400), mt_rand(1800, 2215), mt_rand(8000, 9000)); +$points = new Matrix(array($X, $Y)); +$points->toHTML(); +printpoly(polyfit($X, $Y, 3)); +?> diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/tile.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/tile.php new file mode 100755 index 0000000..7a47ea5 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/examples/tile.php @@ -0,0 +1,78 @@ +<?php + +include "../Matrix.php"; + +/** +* Tiling of matrix X in [rowWise by colWise] dimension. Tiling +* creates a larger matrix than the original data X. Example, if +* X is to be tiled in a [3 x 4] manner, then: +* +* / \ +* | X X X X | +* C = | X X X X | +* | X X X X | +* \ / +* +* @param X Matrix +* @param rowWise int +* @param colWise int +* @return Matrix +*/ + +function tile(&$X, $rowWise, $colWise){ + + $xArray = $X->getArray(); + print_r($xArray); + + $countRow = 0; + $countColumn = 0; + + $m = $X->getRowDimension(); + $n = $X->getColumnDimension(); + + if( $rowWise<1 || $colWise<1 ){ + die("tile : Array index is out-of-bound."); + } + + $newRowDim = $m*$rowWise; + $newColDim = $n*$colWise; + + $result = array(); + + for($i=0 ; $i<$newRowDim; ++$i) { + + $holder = array(); + + for($j=0 ; $j<$newColDim ; ++$j) { + + $holder[$j] = $xArray[$countRow][$countColumn++]; + + // reset the column-index to zero to avoid reference to out-of-bound index in xArray[][] + + if($countColumn == $n) { $countColumn = 0; } + + } // end for + + ++$countRow; + + // reset the row-index to zero to avoid reference to out-of-bound index in xArray[][] + + if($countRow == $m) { $countRow = 0; } + + $result[$i] = $holder; + + } // end for + + return new Matrix($result); + +} + + +$X =array(1,2,3,4,5,6,7,8,9); +$nRow = 3; +$nCol = 3; +$tiled_matrix = tile(new Matrix($X), $nRow, $nCol); +echo "<pre>"; +print_r($tiled_matrix); +echo "</pre>"; +?> diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/tests/TestMatrix.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/tests/TestMatrix.php new file mode 100755 index 0000000..5290ceb --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/tests/TestMatrix.php @@ -0,0 +1,415 @@ +<?php + +require_once "../Matrix.php"; + +class TestMatrix { + + function TestMatrix() { + + // define test variables + + $errorCount = 0; + $warningCount = 0; + $columnwise = array(1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.); + $rowwise = array(1.,4.,7.,10.,2.,5.,8.,11.,3.,6.,9.,12.); + $avals = array(array(1.,4.,7.,10.),array(2.,5.,8.,11.),array(3.,6.,9.,12.)); + $rankdef = $avals; + $tvals = array(array(1.,2.,3.),array(4.,5.,6.),array(7.,8.,9.),array(10.,11.,12.)); + $subavals = array(array(5.,8.,11.),array(6.,9.,12.)); + $rvals = array(array(1.,4.,7.),array(2.,5.,8.,11.),array(3.,6.,9.,12.)); + $pvals = array(array(1.,1.,1.),array(1.,2.,3.),array(1.,3.,6.)); + $ivals = array(array(1.,0.,0.,0.),array(0.,1.,0.,0.),array(0.,0.,1.,0.)); + $evals = array(array(0.,1.,0.,0.),array(1.,0.,2.e-7,0.),array(0.,-2.e-7,0.,1.),array(0.,0.,1.,0.)); + $square = array(array(166.,188.,210.),array(188.,214.,240.),array(210.,240.,270.)); + $sqSolution = array(array(13.),array(15.)); + $condmat = array(array(1.,3.),array(7.,9.)); + $rows = 3; + $cols = 4; + $invalidID = 5; /* should trigger bad shape for construction with val */ + $raggedr = 0; /* (raggedr,raggedc) should be out of bounds in ragged array */ + $raggedc = 4; + $validID = 3; /* leading dimension of intended test Matrices */ + $nonconformld = 4; /* leading dimension which is valid, but nonconforming */ + $ib = 1; /* index ranges for sub Matrix */ + $ie = 2; + $jb = 1; + $je = 3; + $rowindexset = array(1,2); + $badrowindexset = array(1,3); + $columnindexset = array(1,2,3); + $badcolumnindexset = array(1,2,4); + $columnsummax = 33.; + $rowsummax = 30.; + $sumofdiagonals = 15; + $sumofsquares = 650; + + /** + * Test matrix methods + */ + + /** + * Constructors and constructor-like methods: + * + * Matrix(double[], int) + * Matrix(double[][]) + * Matrix(int, int) + * Matrix(int, int, double) + * Matrix(int, int, double[][]) + * constructWithCopy(double[][]) + * random(int,int) + * identity(int) + */ + echo "<p>Testing constructors and constructor-like methods...</p>"; + + $A = new Matrix($columnwise, 3); + if($A instanceof Matrix) { + $this->try_success("Column-packed constructor..."); + } else + $errorCount = $this->try_failure($errorCount, "Column-packed constructor...", "Unable to construct Matrix"); + + $T = new Matrix($tvals); + if($T instanceof Matrix) + $this->try_success("2D array constructor..."); + else + $errorCount = $this->try_failure($errorCount, "2D array constructor...", "Unable to construct Matrix"); + + $A = new Matrix($columnwise, $validID); + $B = new Matrix($avals); + $tmp = $B->get(0,0); + $avals[0][0] = 0.0; + $C = $B->minus($A); + $avals[0][0] = $tmp; + $B = Matrix::constructWithCopy($avals); + $tmp = $B->get(0,0); + $avals[0][0] = 0.0; + /** check that constructWithCopy behaves properly **/ + if ( ( $tmp - $B->get(0,0) ) != 0.0 ) + $errorCount = $this->try_failure($errorCount,"constructWithCopy... ","copy not effected... data visible outside"); + else + $this->try_success("constructWithCopy... ",""); + + $I = new Matrix($ivals); + if ( $this->checkMatrices($I,Matrix::identity(3,4)) ) + $this->try_success("identity... ",""); + else + $errorCount = $this->try_failure($errorCount,"identity... ","identity Matrix not successfully created"); + + /** + * Access Methods: + * + * getColumnDimension() + * getRowDimension() + * getArray() + * getArrayCopy() + * getColumnPackedCopy() + * getRowPackedCopy() + * get(int,int) + * getMatrix(int,int,int,int) + * getMatrix(int,int,int[]) + * getMatrix(int[],int,int) + * getMatrix(int[],int[]) + * set(int,int,double) + * setMatrix(int,int,int,int,Matrix) + * setMatrix(int,int,int[],Matrix) + * setMatrix(int[],int,int,Matrix) + * setMatrix(int[],int[],Matrix) + */ + print "<p>Testing access methods...</p>"; + + $B = new Matrix($avals); + if($B->getRowDimension() == $rows) + $this->try_success("getRowDimension..."); + else + $errorCount = $this->try_failure($errorCount, "getRowDimension..."); + + if($B->getColumnDimension() == $cols) + $this->try_success("getColumnDimension..."); + else + $errorCount = $this->try_failure($errorCount, "getColumnDimension..."); + + $barray = $B->getArray(); + if($this->checkArrays($barray, $avals)) + $this->try_success("getArray..."); + else + $errorCount = $this->try_failure($errorCount, "getArray..."); + + $bpacked = $B->getColumnPackedCopy(); + if($this->checkArrays($bpacked, $columnwise)) + $this->try_success("getColumnPackedCopy..."); + else + $errorCount = $this->try_failure($errorCount, "getColumnPackedCopy..."); + + $bpacked = $B->getRowPackedCopy(); + if($this->checkArrays($bpacked, $rowwise)) + $this->try_success("getRowPackedCopy..."); + else + $errorCount = $this->try_failure($errorCount, "getRowPackedCopy..."); + + /** + * Array-like methods: + * minus + * minusEquals + * plus + * plusEquals + * arrayLeftDivide + * arrayLeftDivideEquals + * arrayRightDivide + * arrayRightDivideEquals + * arrayTimes + * arrayTimesEquals + * uminus + */ + print "<p>Testing array-like methods...</p>"; + + /** + * I/O methods: + * read + * print + * serializable: + * writeObject + * readObject + */ + print "<p>Testing I/O methods...</p>"; + + /** + * Test linear algebra methods + */ + echo "<p>Testing linear algebra methods...<p>"; + + $A = new Matrix($columnwise, 3); + if( $this->checkMatrices($A->transpose(), $T) ) + $this->try_success("Transpose check..."); + else + $errorCount = $this->try_failure($errorCount, "Transpose check...", "Matrices are not equal"); + + if($this->checkScalars($A->norm1(), $columnsummax)) + $this->try_success("Maximum column sum..."); + else + $errorCount = $this->try_failure($errorCount, "Maximum column sum...", "Incorrect: " . $A->norm1() . " != " . $columnsummax); + + if($this->checkScalars($A->normInf(), $rowsummax)) + $this->try_success("Maximum row sum..."); + else + $errorCount = $this->try_failure($errorCount, "Maximum row sum...", "Incorrect: " . $A->normInf() . " != " . $rowsummax ); + + if($this->checkScalars($A->normF(), sqrt($sumofsquares))) + $this->try_success("Frobenius norm..."); + else + $errorCount = $this->try_failure($errorCount, "Frobenius norm...", "Incorrect:" . $A->normF() . " != " . sqrt($sumofsquares)); + + if($this->checkScalars($A->trace(), $sumofdiagonals)) + $this->try_success("Matrix trace..."); + else + $errorCount = $this->try_failure($errorCount, "Matrix trace...", "Incorrect: " . $A->trace() . " != " . $sumofdiagonals); + + $B = $A->getMatrix(0, $A->getRowDimension(), 0, $A->getRowDimension()); + if( $B->det() == 0 ) + $this->try_success("Matrix determinant..."); + else + $errorCount = $this->try_failure($errorCount, "Matrix determinant...", "Incorrect: " . $B->det() . " != " . 0); + + $A = new Matrix($columnwise,3); + $SQ = new Matrix($square); + if ($this->checkMatrices($SQ, $A->times($A->transpose()))) + $this->try_success("times(Matrix)..."); + else { + $errorCount = $this->try_failure($errorCount, "times(Matrix)...", "Unable to multiply matrices"); + $SQ->toHTML(); + $AT->toHTML(); + } + + $A = new Matrix($columnwise, 4); + + $QR = $A->qr(); + $R = $QR->getR(); + $Q = $QR->getQ(); + if($this->checkMatrices($A, $Q->times($R))) + $this->try_success("QRDecomposition...",""); + else + $errorCount = $this->try_failure($errorCount,"QRDecomposition...","incorrect qr decomposition calculation"); + + $A = new Matrix($columnwise, 4); + $SVD = $A->svd(); + $U = $SVD->getU(); + $S = $SVD->getS(); + $V = $SVD->getV(); + if ($this->checkMatrices($A, $U->times($S->times($V->transpose())))) + $this->try_success("SingularValueDecomposition...",""); + else + $errorCount = $this->try_failure($errorCount,"SingularValueDecomposition...","incorrect singular value decomposition calculation"); + + $n = $A->getColumnDimension(); + $A = $A->getMatrix(0,$n-1,0,$n-1); + $A->set(0,0,0.); + + $LU = $A->lu(); + $L = $LU->getL(); + if ( $this->checkMatrices($A->getMatrix($LU->getPivot(),0,$n-1), $L->times($LU->getU())) ) + $this->try_success("LUDecomposition...",""); + else + $errorCount = $this->try_failure($errorCount,"LUDecomposition...","incorrect LU decomposition calculation"); + + $X = $A->inverse(); + if ( $this->checkMatrices($A->times($X),Matrix::identity(3,3)) ) + $this->try_success("inverse()...",""); + else + $errorCount = $this->try_failure($errorCount, "inverse()...","incorrect inverse calculation"); + + $DEF = new Matrix($rankdef); + if($this->checkScalars($DEF->rank(), min($DEF->getRowDimension(), $DEF->getColumnDimension())-1)) + $this->try_success("Rank..."); + else + $this->try_failure("Rank...", "incorrect rank calculation"); + + $B = new Matrix($condmat); + $SVD = $B->svd(); + $singularvalues = $SVD->getSingularValues(); + if($this->checkScalars($B->cond(), $singularvalues[0]/$singularvalues[min($B->getRowDimension(), $B->getColumnDimension())-1])) + $this->try_success("Condition number..."); + else + $this->try_failure("Condition number...", "incorrect condition number calculation"); + + $SUB = new Matrix($subavals); + $O = new Matrix($SUB->getRowDimension(),1,1.0); + $SOL = new Matrix($sqSolution); + $SQ = $SUB->getMatrix(0,$SUB->getRowDimension()-1,0,$SUB->getRowDimension()-1); + if ( $this->checkMatrices($SQ->solve($SOL),$O) ) + $this->try_success("solve()...",""); + else + $errorCount = $this->try_failure($errorCount,"solve()...","incorrect lu solve calculation"); + + $A = new Matrix($pvals); + $Chol = $A->chol(); + $L = $Chol->getL(); + if ( $this->checkMatrices($A, $L->times($L->transpose())) ) + $this->try_success("CholeskyDecomposition...",""); + else + $errorCount = $this->try_failure($errorCount,"CholeskyDecomposition...","incorrect Cholesky decomposition calculation"); + + $X = $Chol->solve(Matrix::identity(3,3)); + if ( $this->checkMatrices($A->times($X), Matrix::identity(3,3)) ) + $this->try_success("CholeskyDecomposition solve()...",""); + else + $errorCount = $this->try_failure($errorCount,"CholeskyDecomposition solve()...","incorrect Choleskydecomposition solve calculation"); + + $Eig = $A->eig(); + $D = $Eig->getD(); + $V = $Eig->getV(); + if( $this->checkMatrices($A->times($V),$V->times($D)) ) + $this->try_success("EigenvalueDecomposition (symmetric)...",""); + else + $errorCount = $this->try_failure($errorCount,"EigenvalueDecomposition (symmetric)...","incorrect symmetric Eigenvalue decomposition calculation"); + + $A = new Matrix($evals); + $Eig = $A->eig(); + $D = $Eig->getD(); + $V = $Eig->getV(); + if ( $this->checkMatrices($A->times($V),$V->times($D)) ) + $this->try_success("EigenvalueDecomposition (nonsymmetric)...",""); + else + $errorCount = $this->try_failure($errorCount,"EigenvalueDecomposition (nonsymmetric)...","incorrect nonsymmetric Eigenvalue decomposition calculation"); + + print("<b>{$errorCount} total errors</b>."); + } + + /** + * Print appropriate messages for successful outcome try + * @param string $s + * @param string $e + */ + function try_success($s, $e = "") { + print "> ". $s ."success<br />"; + if ($e != "") + print "> Message: ". $e ."<br />"; + } + + /** + * Print appropriate messages for unsuccessful outcome try + * @param int $count + * @param string $s + * @param string $e + * @return int incremented counter + */ + function try_failure($count, $s, $e="") { + print "> ". $s ."*** failure ***<br />> Message: ". $e ."<br />"; + return ++$count; + } + + /** + * Print appropriate messages for unsuccessful outcome try + * @param int $count + * @param string $s + * @param string $e + * @return int incremented counter + */ + function try_warning($count, $s, $e="") { + print "> ". $s ."*** warning ***<br />> Message: ". $e ."<br />"; + return ++$count; + } + + /** + * Check magnitude of difference of "scalars". + * @param float $x + * @param float $y + */ + function checkScalars($x, $y) { + $eps = pow(2.0,-52.0); + if ($x == 0 & abs($y) < 10*$eps) return; + if ($y == 0 & abs($x) < 10*$eps) return; + if (abs($x-$y) > 10 * $eps * max(abs($x),abs($y))) + return false; + else + return true; + } + + /** + * Check norm of difference of "vectors". + * @param float $x[] + * @param float $y[] + */ + function checkVectors($x, $y) { + $nx = count($x); + $ny = count($y); + if ($nx == $ny) + for($i=0; $i < $nx; ++$i) + $this->checkScalars($x[$i],$y[$i]); + else + die("Attempt to compare vectors of different lengths"); + } + + /** + * Check norm of difference of "arrays". + * @param float $x[][] + * @param float $y[][] + */ + function checkArrays($x, $y) { + $A = new Matrix($x); + $B = new Matrix($y); + return $this->checkMatrices($A,$B); + } + + /** + * Check norm of difference of "matrices". + * @param matrix $X + * @param matrix $Y + */ + function checkMatrices($X = null, $Y = null) { + if( $X == null || $Y == null ) + return false; + + $eps = pow(2.0,-52.0); + if ($X->norm1() == 0. & $Y->norm1() < 10*$eps) return true; + if ($Y->norm1() == 0. & $X->norm1() < 10*$eps) return true; + + $A = $X->minus($Y); + + if ($A->norm1() > 1000 * $eps * max($X->norm1(),$Y->norm1())) + die("The norm of (X-Y) is too large: ".$A->norm1()); + else + return true; + } + +} + +$test = new TestMatrix; +?> diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/utils/Error.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/utils/Error.php new file mode 100755 index 0000000..e73252b --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/utils/Error.php @@ -0,0 +1,82 @@ +<?php +/** + * @package JAMA + * + * Error handling + * @author Michael Bommarito + * @version 01292005 + */ + +//Language constant +define('JAMALANG', 'EN'); + + +//All errors may be defined by the following format: +//define('ExceptionName', N); +//$error['lang'][ExceptionName] = 'Error message'; +$error = array(); + +/* +I've used Babelfish and a little poor knowledge of Romance/Germanic languages for the translations here. +Feel free to correct anything that looks amiss to you. +*/ + +define('PolymorphicArgumentException', -1); +$error['EN'][PolymorphicArgumentException] = "Invalid argument pattern for polymorphic function."; +$error['FR'][PolymorphicArgumentException] = "Modèle inadmissible d'argument pour la fonction polymorphe.". +$error['DE'][PolymorphicArgumentException] = "Unzulässiges Argumentmuster für polymorphe Funktion."; + +define('ArgumentTypeException', -2); +$error['EN'][ArgumentTypeException] = "Invalid argument type."; +$error['FR'][ArgumentTypeException] = "Type inadmissible d'argument."; +$error['DE'][ArgumentTypeException] = "Unzulässige Argumentart."; + +define('ArgumentBoundsException', -3); +$error['EN'][ArgumentBoundsException] = "Invalid argument range."; +$error['FR'][ArgumentBoundsException] = "Gamme inadmissible d'argument."; +$error['DE'][ArgumentBoundsException] = "Unzulässige Argumentstrecke."; + +define('MatrixDimensionException', -4); +$error['EN'][MatrixDimensionException] = "Matrix dimensions are not equal."; +$error['FR'][MatrixDimensionException] = "Les dimensions de Matrix ne sont pas égales."; +$error['DE'][MatrixDimensionException] = "Matrixmaße sind nicht gleich."; + +define('PrecisionLossException', -5); +$error['EN'][PrecisionLossException] = "Significant precision loss detected."; +$error['FR'][PrecisionLossException] = "Perte significative de précision détectée."; +$error['DE'][PrecisionLossException] = "Bedeutender Präzision Verlust ermittelte."; + +define('MatrixSPDException', -6); +$error['EN'][MatrixSPDException] = "Can only perform operation on symmetric positive definite matrix."; +$error['FR'][MatrixSPDException] = "Perte significative de précision détectée."; +$error['DE'][MatrixSPDException] = "Bedeutender Präzision Verlust ermittelte."; + +define('MatrixSingularException', -7); +$error['EN'][MatrixSingularException] = "Can only perform operation on singular matrix."; + +define('MatrixRankException', -8); +$error['EN'][MatrixRankException] = "Can only perform operation on full-rank matrix."; + +define('ArrayLengthException', -9); +$error['EN'][ArrayLengthException] = "Array length must be a multiple of m."; + +define('RowLengthException', -10); +$error['EN'][RowLengthException] = "All rows must have the same length."; + +/** + * Custom error handler + * @param int $num Error number + */ +function JAMAError($errorNumber = null) { + global $error; + + if (isset($errorNumber)) { + if (isset($error[JAMALANG][$errorNumber])) { + return $error[JAMALANG][$errorNumber]; + } else { + return $error['EN'][$errorNumber]; + } + } else { + return ("Invalid argument to JAMAError()"); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/utils/Maths.php b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/utils/Maths.php new file mode 100755 index 0000000..f5e2a37 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/JAMA/utils/Maths.php @@ -0,0 +1,43 @@ +<?php +/** + * @package JAMA + * + * Pythagorean Theorem: + * + * a = 3 + * b = 4 + * r = sqrt(square(a) + square(b)) + * r = 5 + * + * r = sqrt(a^2 + b^2) without under/overflow. + */ +function hypo($a, $b) { + if (abs($a) > abs($b)) { + $r = $b / $a; + $r = abs($a) * sqrt(1 + $r * $r); + } elseif ($b != 0) { + $r = $a / $b; + $r = abs($b) * sqrt(1 + $r * $r); + } else { + $r = 0.0; + } + return $r; +} // function hypo() + + +/** + * Mike Bommarito's version. + * Compute n-dimensional hyotheneuse. + * +function hypot() { + $s = 0; + foreach (func_get_args() as $d) { + if (is_numeric($d)) { + $s += pow($d, 2); + } else { + throw new Exception(JAMAError(ArgumentTypeException)); + } + } + return sqrt($s); +} +*/ diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/OLE.php b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE.php new file mode 100755 index 0000000..a5c8dd1 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE.php @@ -0,0 +1,531 @@ +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4: */ +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2002 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.02 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Author: Xavier Noguer <xnoguer@php.net> | +// | Based on OLE::Storage_Lite by Kawai, Takanori | +// +----------------------------------------------------------------------+ +// +// $Id: OLE.php,v 1.13 2007/03/07 14:38:25 schmidt Exp $ + + +/** +* Array for storing OLE instances that are accessed from +* OLE_ChainedBlockStream::stream_open(). +* @var array +*/ +$GLOBALS['_OLE_INSTANCES'] = array(); + +/** +* OLE package base class. +* +* @author Xavier Noguer <xnoguer@php.net> +* @author Christian Schmidt <schmidt@php.net> +* @category PHPExcel +* @package PHPExcel_Shared_OLE +*/ +class PHPExcel_Shared_OLE +{ + const OLE_PPS_TYPE_ROOT = 5; + const OLE_PPS_TYPE_DIR = 1; + const OLE_PPS_TYPE_FILE = 2; + const OLE_DATA_SIZE_SMALL = 0x1000; + const OLE_LONG_INT_SIZE = 4; + const OLE_PPS_SIZE = 0x80; + + /** + * The file handle for reading an OLE container + * @var resource + */ + public $_file_handle; + + /** + * Array of PPS's found on the OLE container + * @var array + */ + public $_list = array(); + + /** + * Root directory of OLE container + * @var OLE_PPS_Root + */ + public $root; + + /** + * Big Block Allocation Table + * @var array (blockId => nextBlockId) + */ + public $bbat; + + /** + * Short Block Allocation Table + * @var array (blockId => nextBlockId) + */ + public $sbat; + + /** + * Size of big blocks. This is usually 512. + * @var int number of octets per block. + */ + public $bigBlockSize; + + /** + * Size of small blocks. This is usually 64. + * @var int number of octets per block + */ + public $smallBlockSize; + + /** + * Reads an OLE container from the contents of the file given. + * + * @acces public + * @param string $file + * @return mixed true on success, PEAR_Error on failure + */ + public function read($file) + { + $fh = fopen($file, "r"); + if (!$fh) { + throw new Exception("Can't open file $file"); + } + $this->_file_handle = $fh; + + $signature = fread($fh, 8); + if ("\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" != $signature) { + throw new Exception("File doesn't seem to be an OLE container."); + } + fseek($fh, 28); + if (fread($fh, 2) != "\xFE\xFF") { + // This shouldn't be a problem in practice + throw new Exception("Only Little-Endian encoding is supported."); + } + // Size of blocks and short blocks in bytes + $this->bigBlockSize = pow(2, self::_readInt2($fh)); + $this->smallBlockSize = pow(2, self::_readInt2($fh)); + + // Skip UID, revision number and version number + fseek($fh, 44); + // Number of blocks in Big Block Allocation Table + $bbatBlockCount = self::_readInt4($fh); + + // Root chain 1st block + $directoryFirstBlockId = self::_readInt4($fh); + + // Skip unused bytes + fseek($fh, 56); + // Streams shorter than this are stored using small blocks + $this->bigBlockThreshold = self::_readInt4($fh); + // Block id of first sector in Short Block Allocation Table + $sbatFirstBlockId = self::_readInt4($fh); + // Number of blocks in Short Block Allocation Table + $sbbatBlockCount = self::_readInt4($fh); + // Block id of first sector in Master Block Allocation Table + $mbatFirstBlockId = self::_readInt4($fh); + // Number of blocks in Master Block Allocation Table + $mbbatBlockCount = self::_readInt4($fh); + $this->bbat = array(); + + // Remaining 4 * 109 bytes of current block is beginning of Master + // Block Allocation Table + $mbatBlocks = array(); + for ($i = 0; $i < 109; ++$i) { + $mbatBlocks[] = self::_readInt4($fh); + } + + // Read rest of Master Block Allocation Table (if any is left) + $pos = $this->_getBlockOffset($mbatFirstBlockId); + for ($i = 0; $i < $mbbatBlockCount; ++$i) { + fseek($fh, $pos); + for ($j = 0; $j < $this->bigBlockSize / 4 - 1; ++$j) { + $mbatBlocks[] = self::_readInt4($fh); + } + // Last block id in each block points to next block + $pos = $this->_getBlockOffset(self::_readInt4($fh)); + } + + // Read Big Block Allocation Table according to chain specified by + // $mbatBlocks + for ($i = 0; $i < $bbatBlockCount; ++$i) { + $pos = $this->_getBlockOffset($mbatBlocks[$i]); + fseek($fh, $pos); + for ($j = 0 ; $j < $this->bigBlockSize / 4; ++$j) { + $this->bbat[] = self::_readInt4($fh); + } + } + + // Read short block allocation table (SBAT) + $this->sbat = array(); + $shortBlockCount = $sbbatBlockCount * $this->bigBlockSize / 4; + $sbatFh = $this->getStream($sbatFirstBlockId); + for ($blockId = 0; $blockId < $shortBlockCount; ++$blockId) { + $this->sbat[$blockId] = self::_readInt4($sbatFh); + } + fclose($sbatFh); + + $this->_readPpsWks($directoryFirstBlockId); + + return true; + } + + /** + * @param int block id + * @param int byte offset from beginning of file + * @access public + */ + public function _getBlockOffset($blockId) + { + return 512 + $blockId * $this->bigBlockSize; + } + + /** + * Returns a stream for use with fread() etc. External callers should + * use PHPExcel_Shared_OLE_PPS_File::getStream(). + * @param int|PPS block id or PPS + * @return resource read-only stream + */ + public function getStream($blockIdOrPps) + { + static $isRegistered = false; + if (!$isRegistered) { + stream_wrapper_register('ole-chainedblockstream', + 'PHPExcel_Shared_OLE_ChainedBlockStream'); + $isRegistered = true; + } + + // Store current instance in global array, so that it can be accessed + // in OLE_ChainedBlockStream::stream_open(). + // Object is removed from self::$instances in OLE_Stream::close(). + $GLOBALS['_OLE_INSTANCES'][] = $this; + $instanceId = end(array_keys($GLOBALS['_OLE_INSTANCES'])); + + $path = 'ole-chainedblockstream://oleInstanceId=' . $instanceId; + if ($blockIdOrPps instanceof PHPExcel_Shared_OLE_PPS) { + $path .= '&blockId=' . $blockIdOrPps->_StartBlock; + $path .= '&size=' . $blockIdOrPps->Size; + } else { + $path .= '&blockId=' . $blockIdOrPps; + } + return fopen($path, 'r'); + } + + /** + * Reads a signed char. + * @param resource file handle + * @return int + * @access public + */ + private static function _readInt1($fh) + { + list(, $tmp) = unpack("c", fread($fh, 1)); + return $tmp; + } + + /** + * Reads an unsigned short (2 octets). + * @param resource file handle + * @return int + * @access public + */ + private static function _readInt2($fh) + { + list(, $tmp) = unpack("v", fread($fh, 2)); + return $tmp; + } + + /** + * Reads an unsigned long (4 octets). + * @param resource file handle + * @return int + * @access public + */ + private static function _readInt4($fh) + { + list(, $tmp) = unpack("V", fread($fh, 4)); + return $tmp; + } + + /** + * Gets information about all PPS's on the OLE container from the PPS WK's + * creates an OLE_PPS object for each one. + * + * @access public + * @param integer the block id of the first block + * @return mixed true on success, PEAR_Error on failure + */ + public function _readPpsWks($blockId) + { + $fh = $this->getStream($blockId); + for ($pos = 0; ; $pos += 128) { + fseek($fh, $pos, SEEK_SET); + $nameUtf16 = fread($fh, 64); + $nameLength = self::_readInt2($fh); + $nameUtf16 = substr($nameUtf16, 0, $nameLength - 2); + // Simple conversion from UTF-16LE to ISO-8859-1 + $name = str_replace("\x00", "", $nameUtf16); + $type = self::_readInt1($fh); + switch ($type) { + case self::OLE_PPS_TYPE_ROOT: + $pps = new PHPExcel_Shared_OLE_PPS_Root(null, null, array()); + $this->root = $pps; + break; + case self::OLE_PPS_TYPE_DIR: + $pps = new PHPExcel_Shared_OLE_PPS(null, null, null, null, null, + null, null, null, null, array()); + break; + case self::OLE_PPS_TYPE_FILE: + $pps = new PHPExcel_Shared_OLE_PPS_File($name); + break; + default: + continue; + } + fseek($fh, 1, SEEK_CUR); + $pps->Type = $type; + $pps->Name = $name; + $pps->PrevPps = self::_readInt4($fh); + $pps->NextPps = self::_readInt4($fh); + $pps->DirPps = self::_readInt4($fh); + fseek($fh, 20, SEEK_CUR); + $pps->Time1st = self::OLE2LocalDate(fread($fh, 8)); + $pps->Time2nd = self::OLE2LocalDate(fread($fh, 8)); + $pps->_StartBlock = self::_readInt4($fh); + $pps->Size = self::_readInt4($fh); + $pps->No = count($this->_list); + $this->_list[] = $pps; + + // check if the PPS tree (starting from root) is complete + if (isset($this->root) && + $this->_ppsTreeComplete($this->root->No)) { + + break; + } + } + fclose($fh); + + // Initialize $pps->children on directories + foreach ($this->_list as $pps) { + if ($pps->Type == self::OLE_PPS_TYPE_DIR || $pps->Type == self::OLE_PPS_TYPE_ROOT) { + $nos = array($pps->DirPps); + $pps->children = array(); + while ($nos) { + $no = array_pop($nos); + if ($no != -1) { + $childPps = $this->_list[$no]; + $nos[] = $childPps->PrevPps; + $nos[] = $childPps->NextPps; + $pps->children[] = $childPps; + } + } + } + } + + return true; + } + + /** + * It checks whether the PPS tree is complete (all PPS's read) + * starting with the given PPS (not necessarily root) + * + * @access public + * @param integer $index The index of the PPS from which we are checking + * @return boolean Whether the PPS tree for the given PPS is complete + */ + public function _ppsTreeComplete($index) + { + return isset($this->_list[$index]) && + ($pps = $this->_list[$index]) && + ($pps->PrevPps == -1 || + $this->_ppsTreeComplete($pps->PrevPps)) && + ($pps->NextPps == -1 || + $this->_ppsTreeComplete($pps->NextPps)) && + ($pps->DirPps == -1 || + $this->_ppsTreeComplete($pps->DirPps)); + } + + /** + * Checks whether a PPS is a File PPS or not. + * If there is no PPS for the index given, it will return false. + * + * @access public + * @param integer $index The index for the PPS + * @return bool true if it's a File PPS, false otherwise + */ + public function isFile($index) + { + if (isset($this->_list[$index])) { + return ($this->_list[$index]->Type == self::OLE_PPS_TYPE_FILE); + } + return false; + } + + /** + * Checks whether a PPS is a Root PPS or not. + * If there is no PPS for the index given, it will return false. + * + * @access public + * @param integer $index The index for the PPS. + * @return bool true if it's a Root PPS, false otherwise + */ + public function isRoot($index) + { + if (isset($this->_list[$index])) { + return ($this->_list[$index]->Type == self::OLE_PPS_TYPE_ROOT); + } + return false; + } + + /** + * Gives the total number of PPS's found in the OLE container. + * + * @access public + * @return integer The total number of PPS's found in the OLE container + */ + public function ppsTotal() + { + return count($this->_list); + } + + /** + * Gets data from a PPS + * If there is no PPS for the index given, it will return an empty string. + * + * @access public + * @param integer $index The index for the PPS + * @param integer $position The position from which to start reading + * (relative to the PPS) + * @param integer $length The amount of bytes to read (at most) + * @return string The binary string containing the data requested + * @see OLE_PPS_File::getStream() + */ + public function getData($index, $position, $length) + { + // if position is not valid return empty string + if (!isset($this->_list[$index]) || ($position >= $this->_list[$index]->Size) || ($position < 0)) { + return ''; + } + $fh = $this->getStream($this->_list[$index]); + $data = stream_get_contents($fh, $length, $position); + fclose($fh); + return $data; + } + + /** + * Gets the data length from a PPS + * If there is no PPS for the index given, it will return 0. + * + * @access public + * @param integer $index The index for the PPS + * @return integer The amount of bytes in data the PPS has + */ + public function getDataLength($index) + { + if (isset($this->_list[$index])) { + return $this->_list[$index]->Size; + } + return 0; + } + + /** + * Utility function to transform ASCII text to Unicode + * + * @access public + * @static + * @param string $ascii The ASCII string to transform + * @return string The string in Unicode + */ + public static function Asc2Ucs($ascii) + { + $rawname = ''; + for ($i = 0; $i < strlen($ascii); ++$i) { + $rawname .= $ascii{$i} . "\x00"; + } + return $rawname; + } + + /** + * Utility function + * Returns a string for the OLE container with the date given + * + * @access public + * @static + * @param integer $date A timestamp + * @return string The string for the OLE container + */ + public static function LocalDate2OLE($date = null) + { + if (!isset($date)) { + return "\x00\x00\x00\x00\x00\x00\x00\x00"; + } + + // factor used for separating numbers into 4 bytes parts + $factor = pow(2, 32); + + // days from 1-1-1601 until the beggining of UNIX era + $days = 134774; + // calculate seconds + $big_date = $days*24*3600 + gmmktime(date("H",$date),date("i",$date),date("s",$date), + date("m",$date),date("d",$date),date("Y",$date)); + // multiply just to make MS happy + $big_date *= 10000000; + + $high_part = floor($big_date / $factor); + // lower 4 bytes + $low_part = floor((($big_date / $factor) - $high_part) * $factor); + + // Make HEX string + $res = ''; + + for ($i = 0; $i < 4; ++$i) { + $hex = $low_part % 0x100; + $res .= pack('c', $hex); + $low_part /= 0x100; + } + for ($i = 0; $i < 4; ++$i) { + $hex = $high_part % 0x100; + $res .= pack('c', $hex); + $high_part /= 0x100; + } + return $res; + } + + /** + * Returns a timestamp from an OLE container's date + * + * @access public + * @static + * @param integer $string A binary string with the encoded date + * @return string The timestamp corresponding to the string + */ + public static function OLE2LocalDate($string) + { + if (strlen($string) != 8) { + return new PEAR_Error("Expecting 8 byte string"); + } + + // factor used for separating numbers into 4 bytes parts + $factor = pow(2,32); + list(, $high_part) = unpack('V', substr($string, 4, 4)); + list(, $low_part) = unpack('V', substr($string, 0, 4)); + + $big_date = ($high_part * $factor) + $low_part; + // translate to seconds + $big_date /= 10000000; + + // days from 1-1-1601 until the beggining of UNIX era + $days = 134774; + + // translate to seconds from beggining of UNIX era + $big_date -= $days * 24 * 3600; + return floor($big_date); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php new file mode 100755 index 0000000..4e233ad --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php @@ -0,0 +1,229 @@ +<?php +/** + * PHPExcel + * + * Copyright (C) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_OLE + * @copyright Copyright (c) 2006 - 2007 Christian Schmidt + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +/** + * PHPExcel_Shared_OLE_ChainedBlockStream + * + * Stream wrapper for reading data stored in an OLE file. Implements methods + * for PHP's stream_wrapper_register(). For creating streams using this + * wrapper, use PHPExcel_Shared_OLE_PPS_File::getStream(). + * + * @category PHPExcel + * @package PHPExcel_Shared_OLE + */ +class PHPExcel_Shared_OLE_ChainedBlockStream +{ + /** + * The OLE container of the file that is being read. + * @var OLE + */ + public $ole; + + /** + * Parameters specified by fopen(). + * @var array + */ + public $params; + + /** + * The binary data of the file. + * @var string + */ + public $data; + + /** + * The file pointer. + * @var int byte offset + */ + public $pos; + + /** + * Implements support for fopen(). + * For creating streams using this wrapper, use OLE_PPS_File::getStream(). + * + * @param string $path resource name including scheme, e.g. + * ole-chainedblockstream://oleInstanceId=1 + * @param string $mode only "r" is supported + * @param int $options mask of STREAM_REPORT_ERRORS and STREAM_USE_PATH + * @param string &$openedPath absolute path of the opened stream (out parameter) + * @return bool true on success + */ + public function stream_open($path, $mode, $options, &$openedPath) + { + if ($mode != 'r') { + if ($options & STREAM_REPORT_ERRORS) { + trigger_error('Only reading is supported', E_USER_WARNING); + } + return false; + } + + // 25 is length of "ole-chainedblockstream://" + parse_str(substr($path, 25), $this->params); + if (!isset($this->params['oleInstanceId'], + $this->params['blockId'], + $GLOBALS['_OLE_INSTANCES'][$this->params['oleInstanceId']])) { + + if ($options & STREAM_REPORT_ERRORS) { + trigger_error('OLE stream not found', E_USER_WARNING); + } + return false; + } + $this->ole = $GLOBALS['_OLE_INSTANCES'][$this->params['oleInstanceId']]; + + $blockId = $this->params['blockId']; + $this->data = ''; + if (isset($this->params['size']) && + $this->params['size'] < $this->ole->bigBlockThreshold && + $blockId != $this->ole->root->_StartBlock) { + + // Block id refers to small blocks + $rootPos = $this->ole->_getBlockOffset($this->ole->root->_StartBlock); + while ($blockId != -2) { + $pos = $rootPos + $blockId * $this->ole->bigBlockSize; + $blockId = $this->ole->sbat[$blockId]; + fseek($this->ole->_file_handle, $pos); + $this->data .= fread($this->ole->_file_handle, $this->ole->bigBlockSize); + } + } else { + // Block id refers to big blocks + while ($blockId != -2) { + $pos = $this->ole->_getBlockOffset($blockId); + fseek($this->ole->_file_handle, $pos); + $this->data .= fread($this->ole->_file_handle, $this->ole->bigBlockSize); + $blockId = $this->ole->bbat[$blockId]; + } + } + if (isset($this->params['size'])) { + $this->data = substr($this->data, 0, $this->params['size']); + } + + if ($options & STREAM_USE_PATH) { + $openedPath = $path; + } + + return true; + } + + /** + * Implements support for fclose(). + * + */ + public function stream_close() + { + $this->ole = null; + unset($GLOBALS['_OLE_INSTANCES']); + } + + /** + * Implements support for fread(), fgets() etc. + * + * @param int $count maximum number of bytes to read + * @return string + */ + public function stream_read($count) + { + if ($this->stream_eof()) { + return false; + } + $s = substr($this->data, $this->pos, $count); + $this->pos += $count; + return $s; + } + + /** + * Implements support for feof(). + * + * @return bool TRUE if the file pointer is at EOF; otherwise FALSE + */ + public function stream_eof() + { + $eof = $this->pos >= strlen($this->data); + // Workaround for bug in PHP 5.0.x: http://bugs.php.net/27508 + if (version_compare(PHP_VERSION, '5.0', '>=') && + version_compare(PHP_VERSION, '5.1', '<')) { + + $eof = !$eof; + } + return $eof; + } + + /** + * Returns the position of the file pointer, i.e. its offset into the file + * stream. Implements support for ftell(). + * + * @return int + */ + public function stream_tell() + { + return $this->pos; + } + + /** + * Implements support for fseek(). + * + * @param int $offset byte offset + * @param int $whence SEEK_SET, SEEK_CUR or SEEK_END + * @return bool + */ + public function stream_seek($offset, $whence) + { + if ($whence == SEEK_SET && $offset >= 0) { + $this->pos = $offset; + } elseif ($whence == SEEK_CUR && -$offset <= $this->pos) { + $this->pos += $offset; + } elseif ($whence == SEEK_END && -$offset <= sizeof($this->data)) { + $this->pos = strlen($this->data) + $offset; + } else { + return false; + } + return true; + } + + /** + * Implements support for fstat(). Currently the only supported field is + * "size". + * @return array + */ + public function stream_stat() + { + return array( + 'size' => strlen($this->data), + ); + } + + // Methods used by stream_wrapper_register() that are not implemented: + // bool stream_flush ( void ) + // int stream_write ( string data ) + // bool rename ( string path_from, string path_to ) + // bool mkdir ( string path, int mode, int options ) + // bool rmdir ( string path, int options ) + // bool dir_opendir ( string path, int options ) + // array url_stat ( string path, int flags ) + // string dir_readdir ( void ) + // bool dir_rewinddir ( void ) + // bool dir_closedir ( void ) +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS.php b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS.php new file mode 100755 index 0000000..4db0ae4 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS.php @@ -0,0 +1,230 @@ +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4: */ +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2002 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.02 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Author: Xavier Noguer <xnoguer@php.net> | +// | Based on OLE::Storage_Lite by Kawai, Takanori | +// +----------------------------------------------------------------------+ +// +// $Id: PPS.php,v 1.7 2007/02/13 21:00:42 schmidt Exp $ + + +/** +* Class for creating PPS's for OLE containers +* +* @author Xavier Noguer <xnoguer@php.net> +* @category PHPExcel +* @package PHPExcel_Shared_OLE +*/ +class PHPExcel_Shared_OLE_PPS +{ + /** + * The PPS index + * @var integer + */ + public $No; + + /** + * The PPS name (in Unicode) + * @var string + */ + public $Name; + + /** + * The PPS type. Dir, Root or File + * @var integer + */ + public $Type; + + /** + * The index of the previous PPS + * @var integer + */ + public $PrevPps; + + /** + * The index of the next PPS + * @var integer + */ + public $NextPps; + + /** + * The index of it's first child if this is a Dir or Root PPS + * @var integer + */ + public $DirPps; + + /** + * A timestamp + * @var integer + */ + public $Time1st; + + /** + * A timestamp + * @var integer + */ + public $Time2nd; + + /** + * Starting block (small or big) for this PPS's data inside the container + * @var integer + */ + public $_StartBlock; + + /** + * The size of the PPS's data (in bytes) + * @var integer + */ + public $Size; + + /** + * The PPS's data (only used if it's not using a temporary file) + * @var string + */ + public $_data; + + /** + * Array of child PPS's (only used by Root and Dir PPS's) + * @var array + */ + public $children = array(); + + /** + * Pointer to OLE container + * @var OLE + */ + public $ole; + + /** + * The constructor + * + * @access public + * @param integer $No The PPS index + * @param string $name The PPS name + * @param integer $type The PPS type. Dir, Root or File + * @param integer $prev The index of the previous PPS + * @param integer $next The index of the next PPS + * @param integer $dir The index of it's first child if this is a Dir or Root PPS + * @param integer $time_1st A timestamp + * @param integer $time_2nd A timestamp + * @param string $data The (usually binary) source data of the PPS + * @param array $children Array containing children PPS for this PPS + */ + public function __construct($No, $name, $type, $prev, $next, $dir, $time_1st, $time_2nd, $data, $children) + { + $this->No = $No; + $this->Name = $name; + $this->Type = $type; + $this->PrevPps = $prev; + $this->NextPps = $next; + $this->DirPps = $dir; + $this->Time1st = $time_1st; + $this->Time2nd = $time_2nd; + $this->_data = $data; + $this->children = $children; + if ($data != '') { + $this->Size = strlen($data); + } else { + $this->Size = 0; + } + } + + /** + * Returns the amount of data saved for this PPS + * + * @access public + * @return integer The amount of data (in bytes) + */ + public function _DataLen() + { + if (!isset($this->_data)) { + return 0; + } + //if (isset($this->_PPS_FILE)) { + // fseek($this->_PPS_FILE, 0); + // $stats = fstat($this->_PPS_FILE); + // return $stats[7]; + //} else { + return strlen($this->_data); + //} + } + + /** + * Returns a string with the PPS's WK (What is a WK?) + * + * @access public + * @return string The binary string + */ + public function _getPpsWk() + { + $ret = str_pad($this->Name,64,"\x00"); + + $ret .= pack("v", strlen($this->Name) + 2) // 66 + . pack("c", $this->Type) // 67 + . pack("c", 0x00) //UK // 68 + . pack("V", $this->PrevPps) //Prev // 72 + . pack("V", $this->NextPps) //Next // 76 + . pack("V", $this->DirPps) //Dir // 80 + . "\x00\x09\x02\x00" // 84 + . "\x00\x00\x00\x00" // 88 + . "\xc0\x00\x00\x00" // 92 + . "\x00\x00\x00\x46" // 96 // Seems to be ok only for Root + . "\x00\x00\x00\x00" // 100 + . PHPExcel_Shared_OLE::LocalDate2OLE($this->Time1st) // 108 + . PHPExcel_Shared_OLE::LocalDate2OLE($this->Time2nd) // 116 + . pack("V", isset($this->_StartBlock)? + $this->_StartBlock:0) // 120 + . pack("V", $this->Size) // 124 + . pack("V", 0); // 128 + return $ret; + } + + /** + * Updates index and pointers to previous, next and children PPS's for this + * PPS. I don't think it'll work with Dir PPS's. + * + * @access public + * @param array &$raList Reference to the array of PPS's for the whole OLE + * container + * @return integer The index for this PPS + */ + public static function _savePpsSetPnt(&$raList, $to_save, $depth = 0) + { + if ( !is_array($to_save) || (empty($to_save)) ) { + return 0xFFFFFFFF; + } elseif( count($to_save) == 1 ) { + $cnt = count($raList); + // If the first entry, it's the root... Don't clone it! + $raList[$cnt] = ( $depth == 0 ) ? $to_save[0] : clone $to_save[0]; + $raList[$cnt]->No = $cnt; + $raList[$cnt]->PrevPps = 0xFFFFFFFF; + $raList[$cnt]->NextPps = 0xFFFFFFFF; + $raList[$cnt]->DirPps = self::_savePpsSetPnt($raList, @$raList[$cnt]->children, $depth++); + } else { + $iPos = floor(count($to_save) / 2); + $aPrev = array_slice($to_save, 0, $iPos); + $aNext = array_slice($to_save, $iPos + 1); + $cnt = count($raList); + // If the first entry, it's the root... Don't clone it! + $raList[$cnt] = ( $depth == 0 ) ? $to_save[$iPos] : clone $to_save[$iPos]; + $raList[$cnt]->No = $cnt; + $raList[$cnt]->PrevPps = self::_savePpsSetPnt($raList, $aPrev, $depth++); + $raList[$cnt]->NextPps = self::_savePpsSetPnt($raList, $aNext, $depth++); + $raList[$cnt]->DirPps = self::_savePpsSetPnt($raList, @$raList[$cnt]->children, $depth++); + + } + return $cnt; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS/File.php b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS/File.php new file mode 100755 index 0000000..f061f56 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS/File.php @@ -0,0 +1,84 @@ +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4: */ +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2002 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.02 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Author: Xavier Noguer <xnoguer@php.net> | +// | Based on OLE::Storage_Lite by Kawai, Takanori | +// +----------------------------------------------------------------------+ +// +// $Id: File.php,v 1.11 2007/02/13 21:00:42 schmidt Exp $ + + +/** +* Class for creating File PPS's for OLE containers +* +* @author Xavier Noguer <xnoguer@php.net> +* @category PHPExcel +* @package PHPExcel_Shared_OLE +*/ +class PHPExcel_Shared_OLE_PPS_File extends PHPExcel_Shared_OLE_PPS + { + /** + * The constructor + * + * @access public + * @param string $name The name of the file (in Unicode) + * @see OLE::Asc2Ucs() + */ + public function __construct($name) + { + parent::__construct( + null, + $name, + PHPExcel_Shared_OLE::OLE_PPS_TYPE_FILE, + null, + null, + null, + null, + null, + '', + array()); + } + + /** + * Initialization method. Has to be called right after OLE_PPS_File(). + * + * @access public + * @return mixed true on success + */ + public function init() + { + return true; + } + + /** + * Append data to PPS + * + * @access public + * @param string $data The data to append + */ + public function append($data) + { + $this->_data .= $data; + } + + /** + * Returns a stream for reading this file using fread() etc. + * @return resource a read-only stream + */ + public function getStream() + { + $this->ole->getStream($this); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS/Root.php b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS/Root.php new file mode 100755 index 0000000..7046a0a --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/OLE/PPS/Root.php @@ -0,0 +1,467 @@ +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4: */ +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2002 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.02 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Author: Xavier Noguer <xnoguer@php.net> | +// | Based on OLE::Storage_Lite by Kawai, Takanori | +// +----------------------------------------------------------------------+ +// +// $Id: Root.php,v 1.9 2005/04/23 21:53:49 dufuz Exp $ + + +/** +* Class for creating Root PPS's for OLE containers +* +* @author Xavier Noguer <xnoguer@php.net> +* @category PHPExcel +* @package PHPExcel_Shared_OLE +*/ +class PHPExcel_Shared_OLE_PPS_Root extends PHPExcel_Shared_OLE_PPS + { + + /** + * Directory for temporary files + * @var string + */ + protected $_tmp_dir = NULL; + + /** + * @param integer $time_1st A timestamp + * @param integer $time_2nd A timestamp + */ + public function __construct($time_1st, $time_2nd, $raChild) + { + $this->_tempDir = PHPExcel_Shared_File::sys_get_temp_dir(); + + parent::__construct( + null, + PHPExcel_Shared_OLE::Asc2Ucs('Root Entry'), + PHPExcel_Shared_OLE::OLE_PPS_TYPE_ROOT, + null, + null, + null, + $time_1st, + $time_2nd, + null, + $raChild); + } + + /** + * Method for saving the whole OLE container (including files). + * In fact, if called with an empty argument (or '-'), it saves to a + * temporary file and then outputs it's contents to stdout. + * If a resource pointer to a stream created by fopen() is passed + * it will be used, but you have to close such stream by yourself. + * + * @param string|resource $filename The name of the file or stream where to save the OLE container. + * @access public + * @return mixed true on success + */ + public function save($filename) + { + // Initial Setting for saving + $this->_BIG_BLOCK_SIZE = pow(2, + ((isset($this->_BIG_BLOCK_SIZE))? self::_adjust2($this->_BIG_BLOCK_SIZE) : 9)); + $this->_SMALL_BLOCK_SIZE= pow(2, + ((isset($this->_SMALL_BLOCK_SIZE))? self::_adjust2($this->_SMALL_BLOCK_SIZE): 6)); + + if (is_resource($filename)) { + $this->_FILEH_ = $filename; + } else if ($filename == '-' || $filename == '') { + if ($this->_tmp_dir === NULL) + $this->_tmp_dir = PHPExcel_Shared_File::sys_get_temp_dir(); + $this->_tmp_filename = tempnam($this->_tmp_dir, "OLE_PPS_Root"); + $this->_FILEH_ = fopen($this->_tmp_filename,"w+b"); + if ($this->_FILEH_ == false) { + throw new Exception("Can't create temporary file."); + } + } else { + $this->_FILEH_ = fopen($filename, "wb"); + } + if ($this->_FILEH_ == false) { + throw new Exception("Can't open $filename. It may be in use or protected."); + } + // Make an array of PPS's (for Save) + $aList = array(); + PHPExcel_Shared_OLE_PPS::_savePpsSetPnt($aList, array($this)); + // calculate values for header + list($iSBDcnt, $iBBcnt, $iPPScnt) = $this->_calcSize($aList); //, $rhInfo); + // Save Header + $this->_saveHeader($iSBDcnt, $iBBcnt, $iPPScnt); + + // Make Small Data string (write SBD) + $this->_data = $this->_makeSmallData($aList); + + // Write BB + $this->_saveBigData($iSBDcnt, $aList); + // Write PPS + $this->_savePps($aList); + // Write Big Block Depot and BDList and Adding Header informations + $this->_saveBbd($iSBDcnt, $iBBcnt, $iPPScnt); + + if (!is_resource($filename)) { + fclose($this->_FILEH_); + } + + return true; + } + + /** + * Calculate some numbers + * + * @access public + * @param array $raList Reference to an array of PPS's + * @return array The array of numbers + */ + public function _calcSize(&$raList) + { + // Calculate Basic Setting + list($iSBDcnt, $iBBcnt, $iPPScnt) = array(0,0,0); + $iSmallLen = 0; + $iSBcnt = 0; + $iCount = count($raList); + for ($i = 0; $i < $iCount; ++$i) { + if ($raList[$i]->Type == PHPExcel_Shared_OLE::OLE_PPS_TYPE_FILE) { + $raList[$i]->Size = $raList[$i]->_DataLen(); + if ($raList[$i]->Size < PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) { + $iSBcnt += floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE) + + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0); + } else { + $iBBcnt += (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) + + (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0)); + } + } + } + $iSmallLen = $iSBcnt * $this->_SMALL_BLOCK_SIZE; + $iSlCnt = floor($this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE); + $iSBDcnt = floor($iSBcnt / $iSlCnt) + (($iSBcnt % $iSlCnt)? 1:0); + $iBBcnt += (floor($iSmallLen / $this->_BIG_BLOCK_SIZE) + + (( $iSmallLen % $this->_BIG_BLOCK_SIZE)? 1: 0)); + $iCnt = count($raList); + $iBdCnt = $this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_PPS_SIZE; + $iPPScnt = (floor($iCnt/$iBdCnt) + (($iCnt % $iBdCnt)? 1: 0)); + + return array($iSBDcnt, $iBBcnt, $iPPScnt); + } + + /** + * Helper function for caculating a magic value for block sizes + * + * @access public + * @param integer $i2 The argument + * @see save() + * @return integer + */ + private static function _adjust2($i2) + { + $iWk = log($i2)/log(2); + return ($iWk > floor($iWk))? floor($iWk)+1:$iWk; + } + + /** + * Save OLE header + * + * @access public + * @param integer $iSBDcnt + * @param integer $iBBcnt + * @param integer $iPPScnt + */ + public function _saveHeader($iSBDcnt, $iBBcnt, $iPPScnt) + { + $FILE = $this->_FILEH_; + + // Calculate Basic Setting + $iBlCnt = $this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE; + $i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE; + + $iBdExL = 0; + $iAll = $iBBcnt + $iPPScnt + $iSBDcnt; + $iAllW = $iAll; + $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0); + $iBdCnt = floor(($iAll + $iBdCntW) / $iBlCnt) + ((($iAllW+$iBdCntW) % $iBlCnt)? 1: 0); + + // Calculate BD count + if ($iBdCnt > $i1stBdL) { + while (1) { + ++$iBdExL; + ++$iAllW; + $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0); + $iBdCnt = floor(($iAllW + $iBdCntW) / $iBlCnt) + ((($iAllW+$iBdCntW) % $iBlCnt)? 1: 0); + if ($iBdCnt <= ($iBdExL*$iBlCnt+ $i1stBdL)) { + break; + } + } + } + + // Save Header + fwrite($FILE, + "\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" + . "\x00\x00\x00\x00" + . "\x00\x00\x00\x00" + . "\x00\x00\x00\x00" + . "\x00\x00\x00\x00" + . pack("v", 0x3b) + . pack("v", 0x03) + . pack("v", -2) + . pack("v", 9) + . pack("v", 6) + . pack("v", 0) + . "\x00\x00\x00\x00" + . "\x00\x00\x00\x00" + . pack("V", $iBdCnt) + . pack("V", $iBBcnt+$iSBDcnt) //ROOT START + . pack("V", 0) + . pack("V", 0x1000) + . pack("V", $iSBDcnt ? 0 : -2) //Small Block Depot + . pack("V", $iSBDcnt) + ); + // Extra BDList Start, Count + if ($iBdCnt < $i1stBdL) { + fwrite($FILE, + pack("V", -2) // Extra BDList Start + . pack("V", 0) // Extra BDList Count + ); + } else { + fwrite($FILE, pack("V", $iAll+$iBdCnt) . pack("V", $iBdExL)); + } + + // BDList + for ($i = 0; $i < $i1stBdL && $i < $iBdCnt; ++$i) { + fwrite($FILE, pack("V", $iAll+$i)); + } + if ($i < $i1stBdL) { + $jB = $i1stBdL - $i; + for ($j = 0; $j < $jB; ++$j) { + fwrite($FILE, (pack("V", -1))); + } + } + } + + /** + * Saving big data (PPS's with data bigger than PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) + * + * @access public + * @param integer $iStBlk + * @param array &$raList Reference to array of PPS's + */ + public function _saveBigData($iStBlk, &$raList) + { + $FILE = $this->_FILEH_; + + // cycle through PPS's + $iCount = count($raList); + for ($i = 0; $i < $iCount; ++$i) { + if ($raList[$i]->Type != PHPExcel_Shared_OLE::OLE_PPS_TYPE_DIR) { + $raList[$i]->Size = $raList[$i]->_DataLen(); + if (($raList[$i]->Size >= PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) || + (($raList[$i]->Type == PHPExcel_Shared_OLE::OLE_PPS_TYPE_ROOT) && isset($raList[$i]->_data))) + { + // Write Data + //if (isset($raList[$i]->_PPS_FILE)) { + // $iLen = 0; + // fseek($raList[$i]->_PPS_FILE, 0); // To The Top + // while($sBuff = fread($raList[$i]->_PPS_FILE, 4096)) { + // $iLen += strlen($sBuff); + // fwrite($FILE, $sBuff); + // } + //} else { + fwrite($FILE, $raList[$i]->_data); + //} + + if ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE) { + fwrite($FILE, str_repeat("\x00", $this->_BIG_BLOCK_SIZE - ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE))); + } + // Set For PPS + $raList[$i]->_StartBlock = $iStBlk; + $iStBlk += + (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) + + (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0)); + } + // Close file for each PPS, and unlink it + //if (isset($raList[$i]->_PPS_FILE)) { + // fclose($raList[$i]->_PPS_FILE); + // $raList[$i]->_PPS_FILE = null; + // unlink($raList[$i]->_tmp_filename); + //} + } + } + } + + /** + * get small data (PPS's with data smaller than PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) + * + * @access public + * @param array &$raList Reference to array of PPS's + */ + public function _makeSmallData(&$raList) + { + $sRes = ''; + $FILE = $this->_FILEH_; + $iSmBlk = 0; + + $iCount = count($raList); + for ($i = 0; $i < $iCount; ++$i) { + // Make SBD, small data string + if ($raList[$i]->Type == PHPExcel_Shared_OLE::OLE_PPS_TYPE_FILE) { + if ($raList[$i]->Size <= 0) { + continue; + } + if ($raList[$i]->Size < PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) { + $iSmbCnt = floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE) + + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0); + // Add to SBD + $jB = $iSmbCnt - 1; + for ($j = 0; $j < $jB; ++$j) { + fwrite($FILE, pack("V", $j+$iSmBlk+1)); + } + fwrite($FILE, pack("V", -2)); + + //// Add to Data String(this will be written for RootEntry) + //if ($raList[$i]->_PPS_FILE) { + // fseek($raList[$i]->_PPS_FILE, 0); // To The Top + // while ($sBuff = fread($raList[$i]->_PPS_FILE, 4096)) { + // $sRes .= $sBuff; + // } + //} else { + $sRes .= $raList[$i]->_data; + //} + if ($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE) { + $sRes .= str_repeat("\x00",$this->_SMALL_BLOCK_SIZE - ($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)); + } + // Set for PPS + $raList[$i]->_StartBlock = $iSmBlk; + $iSmBlk += $iSmbCnt; + } + } + } + $iSbCnt = floor($this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE); + if ($iSmBlk % $iSbCnt) { + $iB = $iSbCnt - ($iSmBlk % $iSbCnt); + for ($i = 0; $i < $iB; ++$i) { + fwrite($FILE, pack("V", -1)); + } + } + return $sRes; + } + + /** + * Saves all the PPS's WKs + * + * @access public + * @param array $raList Reference to an array with all PPS's + */ + public function _savePps(&$raList) + { + // Save each PPS WK + $iC = count($raList); + for ($i = 0; $i < $iC; ++$i) { + fwrite($this->_FILEH_, $raList[$i]->_getPpsWk()); + } + // Adjust for Block + $iCnt = count($raList); + $iBCnt = $this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_PPS_SIZE; + if ($iCnt % $iBCnt) { + fwrite($this->_FILEH_, str_repeat("\x00",($iBCnt - ($iCnt % $iBCnt)) * PHPExcel_Shared_OLE::OLE_PPS_SIZE)); + } + } + + /** + * Saving Big Block Depot + * + * @access public + * @param integer $iSbdSize + * @param integer $iBsize + * @param integer $iPpsCnt + */ + public function _saveBbd($iSbdSize, $iBsize, $iPpsCnt) + { + $FILE = $this->_FILEH_; + // Calculate Basic Setting + $iBbCnt = $this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE; + $i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE; + + $iBdExL = 0; + $iAll = $iBsize + $iPpsCnt + $iSbdSize; + $iAllW = $iAll; + $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0); + $iBdCnt = floor(($iAll + $iBdCntW) / $iBbCnt) + ((($iAllW+$iBdCntW) % $iBbCnt)? 1: 0); + // Calculate BD count + if ($iBdCnt >$i1stBdL) { + while (1) { + ++$iBdExL; + ++$iAllW; + $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0); + $iBdCnt = floor(($iAllW + $iBdCntW) / $iBbCnt) + ((($iAllW+$iBdCntW) % $iBbCnt)? 1: 0); + if ($iBdCnt <= ($iBdExL*$iBbCnt+ $i1stBdL)) { + break; + } + } + } + + // Making BD + // Set for SBD + if ($iSbdSize > 0) { + for ($i = 0; $i < ($iSbdSize - 1); ++$i) { + fwrite($FILE, pack("V", $i+1)); + } + fwrite($FILE, pack("V", -2)); + } + // Set for B + for ($i = 0; $i < ($iBsize - 1); ++$i) { + fwrite($FILE, pack("V", $i+$iSbdSize+1)); + } + fwrite($FILE, pack("V", -2)); + + // Set for PPS + for ($i = 0; $i < ($iPpsCnt - 1); ++$i) { + fwrite($FILE, pack("V", $i+$iSbdSize+$iBsize+1)); + } + fwrite($FILE, pack("V", -2)); + // Set for BBD itself ( 0xFFFFFFFD : BBD) + for ($i = 0; $i < $iBdCnt; ++$i) { + fwrite($FILE, pack("V", 0xFFFFFFFD)); + } + // Set for ExtraBDList + for ($i = 0; $i < $iBdExL; ++$i) { + fwrite($FILE, pack("V", 0xFFFFFFFC)); + } + // Adjust for Block + if (($iAllW + $iBdCnt) % $iBbCnt) { + $iBlock = ($iBbCnt - (($iAllW + $iBdCnt) % $iBbCnt)); + for ($i = 0; $i < $iBlock; ++$i) { + fwrite($FILE, pack("V", -1)); + } + } + // Extra BDList + if ($iBdCnt > $i1stBdL) { + $iN=0; + $iNb=0; + for ($i = $i1stBdL;$i < $iBdCnt; $i++, ++$iN) { + if ($iN >= ($iBbCnt - 1)) { + $iN = 0; + ++$iNb; + fwrite($FILE, pack("V", $iAll+$iBdCnt+$iNb)); + } + fwrite($FILE, pack("V", $iBsize+$iSbdSize+$iPpsCnt+$i)); + } + if (($iBdCnt-$i1stBdL) % ($iBbCnt-1)) { + $iB = ($iBbCnt - 1) - (($iBdCnt - $i1stBdL) % ($iBbCnt - 1)); + for ($i = 0; $i < $iB; ++$i) { + fwrite($FILE, pack("V", -1)); + } + } + fwrite($FILE, pack("V", -2)); + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/OLERead.php b/plugins/excel_reader/Classes/PHPExcel/Shared/OLERead.php new file mode 100755 index 0000000..2a5eb7d --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/OLERead.php @@ -0,0 +1,317 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +define('IDENTIFIER_OLE', pack('CCCCCCCC', 0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1)); + +class PHPExcel_Shared_OLERead { + private $data = ''; + + // OLE identifier + const IDENTIFIER_OLE = IDENTIFIER_OLE; + + // Size of a sector = 512 bytes + const BIG_BLOCK_SIZE = 0x200; + + // Size of a short sector = 64 bytes + const SMALL_BLOCK_SIZE = 0x40; + + // Size of a directory entry always = 128 bytes + const PROPERTY_STORAGE_BLOCK_SIZE = 0x80; + + // Minimum size of a standard stream = 4096 bytes, streams smaller than this are stored as short streams + const SMALL_BLOCK_THRESHOLD = 0x1000; + + // header offsets + const NUM_BIG_BLOCK_DEPOT_BLOCKS_POS = 0x2c; + const ROOT_START_BLOCK_POS = 0x30; + const SMALL_BLOCK_DEPOT_BLOCK_POS = 0x3c; + const EXTENSION_BLOCK_POS = 0x44; + const NUM_EXTENSION_BLOCK_POS = 0x48; + const BIG_BLOCK_DEPOT_BLOCKS_POS = 0x4c; + + // property storage offsets (directory offsets) + const SIZE_OF_NAME_POS = 0x40; + const TYPE_POS = 0x42; + const START_BLOCK_POS = 0x74; + const SIZE_POS = 0x78; + + + + public $wrkbook = null; + public $summaryInformation = null; + public $documentSummaryInformation = null; + + + /** + * Read the file + * + * @param $sFileName string Filename + * @throws Exception + */ + public function read($sFileName) + { + // Check if file exists and is readable + if(!is_readable($sFileName)) { + throw new Exception("Could not open " . $sFileName . " for reading! File does not exist, or it is not readable."); + } + + // Get the file data + $this->data = file_get_contents($sFileName); + + // Check OLE identifier + if (substr($this->data, 0, 8) != self::IDENTIFIER_OLE) { + throw new Exception('The filename ' . $sFileName . ' is not recognised as an OLE file'); + } + + // Total number of sectors used for the SAT + $this->numBigBlockDepotBlocks = self::_GetInt4d($this->data, self::NUM_BIG_BLOCK_DEPOT_BLOCKS_POS); + + // SecID of the first sector of the directory stream + $this->rootStartBlock = self::_GetInt4d($this->data, self::ROOT_START_BLOCK_POS); + + // SecID of the first sector of the SSAT (or -2 if not extant) + $this->sbdStartBlock = self::_GetInt4d($this->data, self::SMALL_BLOCK_DEPOT_BLOCK_POS); + + // SecID of the first sector of the MSAT (or -2 if no additional sectors are used) + $this->extensionBlock = self::_GetInt4d($this->data, self::EXTENSION_BLOCK_POS); + + // Total number of sectors used by MSAT + $this->numExtensionBlocks = self::_GetInt4d($this->data, self::NUM_EXTENSION_BLOCK_POS); + + $bigBlockDepotBlocks = array(); + $pos = self::BIG_BLOCK_DEPOT_BLOCKS_POS; + + $bbdBlocks = $this->numBigBlockDepotBlocks; + + if ($this->numExtensionBlocks != 0) { + $bbdBlocks = (self::BIG_BLOCK_SIZE - self::BIG_BLOCK_DEPOT_BLOCKS_POS)/4; + } + + for ($i = 0; $i < $bbdBlocks; ++$i) { + $bigBlockDepotBlocks[$i] = self::_GetInt4d($this->data, $pos); + $pos += 4; + } + + for ($j = 0; $j < $this->numExtensionBlocks; ++$j) { + $pos = ($this->extensionBlock + 1) * self::BIG_BLOCK_SIZE; + $blocksToRead = min($this->numBigBlockDepotBlocks - $bbdBlocks, self::BIG_BLOCK_SIZE / 4 - 1); + + for ($i = $bbdBlocks; $i < $bbdBlocks + $blocksToRead; ++$i) { + $bigBlockDepotBlocks[$i] = self::_GetInt4d($this->data, $pos); + $pos += 4; + } + + $bbdBlocks += $blocksToRead; + if ($bbdBlocks < $this->numBigBlockDepotBlocks) { + $this->extensionBlock = self::_GetInt4d($this->data, $pos); + } + } + + $pos = $index = 0; + $this->bigBlockChain = array(); + + $bbs = self::BIG_BLOCK_SIZE / 4; + for ($i = 0; $i < $this->numBigBlockDepotBlocks; ++$i) { + $pos = ($bigBlockDepotBlocks[$i] + 1) * self::BIG_BLOCK_SIZE; + + for ($j = 0 ; $j < $bbs; ++$j) { + $this->bigBlockChain[$index] = self::_GetInt4d($this->data, $pos); + $pos += 4 ; + ++$index; + } + } + + $pos = $index = 0; + $sbdBlock = $this->sbdStartBlock; + $this->smallBlockChain = array(); + + while ($sbdBlock != -2) { + $pos = ($sbdBlock + 1) * self::BIG_BLOCK_SIZE; + + for ($j = 0; $j < $bbs; ++$j) { + $this->smallBlockChain[$index] = self::_GetInt4d($this->data, $pos); + $pos += 4; + ++$index; + } + + $sbdBlock = $this->bigBlockChain[$sbdBlock]; + } + + // read the directory stream + $block = $this->rootStartBlock; + $this->entry = $this->_readData($block); + + $this->_readPropertySets(); + } + + /** + * Extract binary stream data + * + * @return string + */ + public function getStream($stream) + { + if ($stream === NULL) { + return null; + } + + $streamData = ''; + + if ($this->props[$stream]['size'] < self::SMALL_BLOCK_THRESHOLD) { + $rootdata = $this->_readData($this->props[$this->rootentry]['startBlock']); + + $block = $this->props[$stream]['startBlock']; + + while ($block != -2) { + $pos = $block * self::SMALL_BLOCK_SIZE; + $streamData .= substr($rootdata, $pos, self::SMALL_BLOCK_SIZE); + + $block = $this->smallBlockChain[$block]; + } + + return $streamData; + } else { + $numBlocks = $this->props[$stream]['size'] / self::BIG_BLOCK_SIZE; + if ($this->props[$stream]['size'] % self::BIG_BLOCK_SIZE != 0) { + ++$numBlocks; + } + + if ($numBlocks == 0) return ''; + + $block = $this->props[$stream]['startBlock']; + + while ($block != -2) { + $pos = ($block + 1) * self::BIG_BLOCK_SIZE; + $streamData .= substr($this->data, $pos, self::BIG_BLOCK_SIZE); + $block = $this->bigBlockChain[$block]; + } + + return $streamData; + } + } + + /** + * Read a standard stream (by joining sectors using information from SAT) + * + * @param int $bl Sector ID where the stream starts + * @return string Data for standard stream + */ + private function _readData($bl) + { + $block = $bl; + $data = ''; + + while ($block != -2) { + $pos = ($block + 1) * self::BIG_BLOCK_SIZE; + $data .= substr($this->data, $pos, self::BIG_BLOCK_SIZE); + $block = $this->bigBlockChain[$block]; + } + return $data; + } + + /** + * Read entries in the directory stream. + */ + private function _readPropertySets() { + $offset = 0; + + // loop through entires, each entry is 128 bytes + $entryLen = strlen($this->entry); + while ($offset < $entryLen) { + // entry data (128 bytes) + $d = substr($this->entry, $offset, self::PROPERTY_STORAGE_BLOCK_SIZE); + + // size in bytes of name + $nameSize = ord($d[self::SIZE_OF_NAME_POS]) | (ord($d[self::SIZE_OF_NAME_POS+1]) << 8); + + // type of entry + $type = ord($d[self::TYPE_POS]); + + // sectorID of first sector or short sector, if this entry refers to a stream (the case with workbook) + // sectorID of first sector of the short-stream container stream, if this entry is root entry + $startBlock = self::_GetInt4d($d, self::START_BLOCK_POS); + + $size = self::_GetInt4d($d, self::SIZE_POS); + + $name = str_replace("\x00", "", substr($d,0,$nameSize)); + + $this->props[] = array ( + 'name' => $name, + 'type' => $type, + 'startBlock' => $startBlock, + 'size' => $size); + + // Workbook directory entry (BIFF5 uses Book, BIFF8 uses Workbook) + if (($name == 'Workbook') || ($name == 'Book') || ($name == 'WORKBOOK') || ($name == 'BOOK')) { + $this->wrkbook = count($this->props) - 1; + } + + // Root entry + if ($name == 'Root Entry' || $name == 'ROOT ENTRY' || $name == 'R') { + $this->rootentry = count($this->props) - 1; + } + + // Summary information + if ($name == chr(5) . 'SummaryInformation') { +// echo 'Summary Information<br />'; + $this->summaryInformation = count($this->props) - 1; + } + + // Additional Document Summary information + if ($name == chr(5) . 'DocumentSummaryInformation') { +// echo 'Document Summary Information<br />'; + $this->documentSummaryInformation = count($this->props) - 1; + } + + $offset += self::PROPERTY_STORAGE_BLOCK_SIZE; + } + + } + + /** + * Read 4 bytes of data at specified position + * + * @param string $data + * @param int $pos + * @return int + */ + private static function _GetInt4d($data, $pos) + { + // FIX: represent numbers correctly on 64-bit system + // http://sourceforge.net/tracker/index.php?func=detail&aid=1487372&group_id=99160&atid=623334 + // Hacked by Andreas Rehm 2006 to ensure correct result of the <<24 block on 32 and 64bit systems + $_or_24 = ord($data[$pos + 3]); + if ($_or_24 >= 128) { + // negative number + $_ord_24 = -abs((256 - $_or_24) << 24); + } else { + $_ord_24 = ($_or_24 & 127) << 24; + } + return ord($data[$pos]) | (ord($data[$pos + 1]) << 8) | (ord($data[$pos + 2]) << 16) | $_ord_24; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/gnu-lgpl.txt b/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/gnu-lgpl.txt new file mode 100755 index 0000000..b1e3f5a --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/gnu-lgpl.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php b/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php new file mode 100755 index 0000000..e7facc1 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php @@ -0,0 +1,5694 @@ +<?php +// -------------------------------------------------------------------------------- +// PhpConcept Library - Zip Module 2.8.2 +// -------------------------------------------------------------------------------- +// License GNU/LGPL - Vincent Blavet - August 2009 +// http://www.phpconcept.net +// -------------------------------------------------------------------------------- +// +// Presentation : +// PclZip is a PHP library that manage ZIP archives. +// So far tests show that archives generated by PclZip are readable by +// WinZip application and other tools. +// +// Description : +// See readme.txt and http://www.phpconcept.net +// +// Warning : +// This library and the associated files are non commercial, non professional +// work. +// It should not have unexpected results. However if any damage is caused by +// this software the author can not be responsible. +// The use of this software is at the risk of the user. +// +// -------------------------------------------------------------------------------- +// $Id: pclzip.lib.php,v 1.60 2009/09/30 21:01:04 vblavet Exp $ +// -------------------------------------------------------------------------------- + + // ----- Constants + if (!defined('PCLZIP_READ_BLOCK_SIZE')) { + define( 'PCLZIP_READ_BLOCK_SIZE', 2048 ); + } + + // ----- File list separator + // In version 1.x of PclZip, the separator for file list is a space + // (which is not a very smart choice, specifically for windows paths !). + // A better separator should be a comma (,). This constant gives you the + // abilty to change that. + // However notice that changing this value, may have impact on existing + // scripts, using space separated filenames. + // Recommanded values for compatibility with older versions : + //define( 'PCLZIP_SEPARATOR', ' ' ); + // Recommanded values for smart separation of filenames. + if (!defined('PCLZIP_SEPARATOR')) { + define( 'PCLZIP_SEPARATOR', ',' ); + } + + // ----- Error configuration + // 0 : PclZip Class integrated error handling + // 1 : PclError external library error handling. By enabling this + // you must ensure that you have included PclError library. + // [2,...] : reserved for futur use + if (!defined('PCLZIP_ERROR_EXTERNAL')) { + define( 'PCLZIP_ERROR_EXTERNAL', 0 ); + } + + // ----- Optional static temporary directory + // By default temporary files are generated in the script current + // path. + // If defined : + // - MUST BE terminated by a '/'. + // - MUST be a valid, already created directory + // Samples : + // define( 'PCLZIP_TEMPORARY_DIR', '/temp/' ); + // define( 'PCLZIP_TEMPORARY_DIR', 'C:/Temp/' ); + if (!defined('PCLZIP_TEMPORARY_DIR')) { + define( 'PCLZIP_TEMPORARY_DIR', '' ); + } + + // ----- Optional threshold ratio for use of temporary files + // Pclzip sense the size of the file to add/extract and decide to + // use or not temporary file. The algorythm is looking for + // memory_limit of PHP and apply a ratio. + // threshold = memory_limit * ratio. + // Recommended values are under 0.5. Default 0.47. + // Samples : + // define( 'PCLZIP_TEMPORARY_FILE_RATIO', 0.5 ); + if (!defined('PCLZIP_TEMPORARY_FILE_RATIO')) { + define( 'PCLZIP_TEMPORARY_FILE_RATIO', 0.47 ); + } + +// -------------------------------------------------------------------------------- +// ***** UNDER THIS LINE NOTHING NEEDS TO BE MODIFIED ***** +// -------------------------------------------------------------------------------- + + // ----- Global variables + $g_pclzip_version = "2.8.2"; + + // ----- Error codes + // -1 : Unable to open file in binary write mode + // -2 : Unable to open file in binary read mode + // -3 : Invalid parameters + // -4 : File does not exist + // -5 : Filename is too long (max. 255) + // -6 : Not a valid zip file + // -7 : Invalid extracted file size + // -8 : Unable to create directory + // -9 : Invalid archive extension + // -10 : Invalid archive format + // -11 : Unable to delete file (unlink) + // -12 : Unable to rename file (rename) + // -13 : Invalid header checksum + // -14 : Invalid archive size + define( 'PCLZIP_ERR_USER_ABORTED', 2 ); + define( 'PCLZIP_ERR_NO_ERROR', 0 ); + define( 'PCLZIP_ERR_WRITE_OPEN_FAIL', -1 ); + define( 'PCLZIP_ERR_READ_OPEN_FAIL', -2 ); + define( 'PCLZIP_ERR_INVALID_PARAMETER', -3 ); + define( 'PCLZIP_ERR_MISSING_FILE', -4 ); + define( 'PCLZIP_ERR_FILENAME_TOO_LONG', -5 ); + define( 'PCLZIP_ERR_INVALID_ZIP', -6 ); + define( 'PCLZIP_ERR_BAD_EXTRACTED_FILE', -7 ); + define( 'PCLZIP_ERR_DIR_CREATE_FAIL', -8 ); + define( 'PCLZIP_ERR_BAD_EXTENSION', -9 ); + define( 'PCLZIP_ERR_BAD_FORMAT', -10 ); + define( 'PCLZIP_ERR_DELETE_FILE_FAIL', -11 ); + define( 'PCLZIP_ERR_RENAME_FILE_FAIL', -12 ); + define( 'PCLZIP_ERR_BAD_CHECKSUM', -13 ); + define( 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP', -14 ); + define( 'PCLZIP_ERR_MISSING_OPTION_VALUE', -15 ); + define( 'PCLZIP_ERR_INVALID_OPTION_VALUE', -16 ); + define( 'PCLZIP_ERR_ALREADY_A_DIRECTORY', -17 ); + define( 'PCLZIP_ERR_UNSUPPORTED_COMPRESSION', -18 ); + define( 'PCLZIP_ERR_UNSUPPORTED_ENCRYPTION', -19 ); + define( 'PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE', -20 ); + define( 'PCLZIP_ERR_DIRECTORY_RESTRICTION', -21 ); + + // ----- Options values + define( 'PCLZIP_OPT_PATH', 77001 ); + define( 'PCLZIP_OPT_ADD_PATH', 77002 ); + define( 'PCLZIP_OPT_REMOVE_PATH', 77003 ); + define( 'PCLZIP_OPT_REMOVE_ALL_PATH', 77004 ); + define( 'PCLZIP_OPT_SET_CHMOD', 77005 ); + define( 'PCLZIP_OPT_EXTRACT_AS_STRING', 77006 ); + define( 'PCLZIP_OPT_NO_COMPRESSION', 77007 ); + define( 'PCLZIP_OPT_BY_NAME', 77008 ); + define( 'PCLZIP_OPT_BY_INDEX', 77009 ); + define( 'PCLZIP_OPT_BY_EREG', 77010 ); + define( 'PCLZIP_OPT_BY_PREG', 77011 ); + define( 'PCLZIP_OPT_COMMENT', 77012 ); + define( 'PCLZIP_OPT_ADD_COMMENT', 77013 ); + define( 'PCLZIP_OPT_PREPEND_COMMENT', 77014 ); + define( 'PCLZIP_OPT_EXTRACT_IN_OUTPUT', 77015 ); + define( 'PCLZIP_OPT_REPLACE_NEWER', 77016 ); + define( 'PCLZIP_OPT_STOP_ON_ERROR', 77017 ); + // Having big trouble with crypt. Need to multiply 2 long int + // which is not correctly supported by PHP ... + //define( 'PCLZIP_OPT_CRYPT', 77018 ); + define( 'PCLZIP_OPT_EXTRACT_DIR_RESTRICTION', 77019 ); + define( 'PCLZIP_OPT_TEMP_FILE_THRESHOLD', 77020 ); + define( 'PCLZIP_OPT_ADD_TEMP_FILE_THRESHOLD', 77020 ); // alias + define( 'PCLZIP_OPT_TEMP_FILE_ON', 77021 ); + define( 'PCLZIP_OPT_ADD_TEMP_FILE_ON', 77021 ); // alias + define( 'PCLZIP_OPT_TEMP_FILE_OFF', 77022 ); + define( 'PCLZIP_OPT_ADD_TEMP_FILE_OFF', 77022 ); // alias + + // ----- File description attributes + define( 'PCLZIP_ATT_FILE_NAME', 79001 ); + define( 'PCLZIP_ATT_FILE_NEW_SHORT_NAME', 79002 ); + define( 'PCLZIP_ATT_FILE_NEW_FULL_NAME', 79003 ); + define( 'PCLZIP_ATT_FILE_MTIME', 79004 ); + define( 'PCLZIP_ATT_FILE_CONTENT', 79005 ); + define( 'PCLZIP_ATT_FILE_COMMENT', 79006 ); + + // ----- Call backs values + define( 'PCLZIP_CB_PRE_EXTRACT', 78001 ); + define( 'PCLZIP_CB_POST_EXTRACT', 78002 ); + define( 'PCLZIP_CB_PRE_ADD', 78003 ); + define( 'PCLZIP_CB_POST_ADD', 78004 ); + /* For futur use + define( 'PCLZIP_CB_PRE_LIST', 78005 ); + define( 'PCLZIP_CB_POST_LIST', 78006 ); + define( 'PCLZIP_CB_PRE_DELETE', 78007 ); + define( 'PCLZIP_CB_POST_DELETE', 78008 ); + */ + + // -------------------------------------------------------------------------------- + // Class : PclZip + // Description : + // PclZip is the class that represent a Zip archive. + // The public methods allow the manipulation of the archive. + // Attributes : + // Attributes must not be accessed directly. + // Methods : + // PclZip() : Object creator + // create() : Creates the Zip archive + // listContent() : List the content of the Zip archive + // extract() : Extract the content of the archive + // properties() : List the properties of the archive + // -------------------------------------------------------------------------------- + class PclZip + { + // ----- Filename of the zip file + var $zipname = ''; + + // ----- File descriptor of the zip file + var $zip_fd = 0; + + // ----- Internal error handling + var $error_code = 1; + var $error_string = ''; + + // ----- Current status of the magic_quotes_runtime + // This value store the php configuration for magic_quotes + // The class can then disable the magic_quotes and reset it after + var $magic_quotes_status; + + // -------------------------------------------------------------------------------- + // Function : PclZip() + // Description : + // Creates a PclZip object and set the name of the associated Zip archive + // filename. + // Note that no real action is taken, if the archive does not exist it is not + // created. Use create() for that. + // -------------------------------------------------------------------------------- + function PclZip($p_zipname) + { + + // ----- Tests the zlib + if (!function_exists('gzopen')) + { + die('Abort '.basename(__FILE__).' : Missing zlib extensions'); + } + + // ----- Set the attributes + $this->zipname = $p_zipname; + $this->zip_fd = 0; + $this->magic_quotes_status = -1; + + // ----- Return + return; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : + // create($p_filelist, $p_add_dir="", $p_remove_dir="") + // create($p_filelist, $p_option, $p_option_value, ...) + // Description : + // This method supports two different synopsis. The first one is historical. + // This method creates a Zip Archive. The Zip file is created in the + // filesystem. The files and directories indicated in $p_filelist + // are added in the archive. See the parameters description for the + // supported format of $p_filelist. + // When a directory is in the list, the directory and its content is added + // in the archive. + // In this synopsis, the function takes an optional variable list of + // options. See bellow the supported options. + // Parameters : + // $p_filelist : An array containing file or directory names, or + // a string containing one filename or one directory name, or + // a string containing a list of filenames and/or directory + // names separated by spaces. + // $p_add_dir : A path to add before the real path of the archived file, + // in order to have it memorized in the archive. + // $p_remove_dir : A path to remove from the real path of the file to archive, + // in order to have a shorter path memorized in the archive. + // When $p_add_dir and $p_remove_dir are set, $p_remove_dir + // is removed first, before $p_add_dir is added. + // Options : + // PCLZIP_OPT_ADD_PATH : + // PCLZIP_OPT_REMOVE_PATH : + // PCLZIP_OPT_REMOVE_ALL_PATH : + // PCLZIP_OPT_COMMENT : + // PCLZIP_CB_PRE_ADD : + // PCLZIP_CB_POST_ADD : + // Return Values : + // 0 on failure, + // The list of the added files, with a status of the add action. + // (see PclZip::listContent() for list entry format) + // -------------------------------------------------------------------------------- + function create($p_filelist) + { + $v_result=1; + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Set default values + $v_options = array(); + $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE; + + // ----- Look for variable options arguments + $v_size = func_num_args(); + + // ----- Look for arguments + if ($v_size > 1) { + // ----- Get the arguments + $v_arg_list = func_get_args(); + + // ----- Remove from the options list the first argument + array_shift($v_arg_list); + $v_size--; + + // ----- Look for first arg + if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { + + // ----- Parse the options + $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, + array (PCLZIP_OPT_REMOVE_PATH => 'optional', + PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', + PCLZIP_OPT_ADD_PATH => 'optional', + PCLZIP_CB_PRE_ADD => 'optional', + PCLZIP_CB_POST_ADD => 'optional', + PCLZIP_OPT_NO_COMPRESSION => 'optional', + PCLZIP_OPT_COMMENT => 'optional', + PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', + PCLZIP_OPT_TEMP_FILE_ON => 'optional', + PCLZIP_OPT_TEMP_FILE_OFF => 'optional' + //, PCLZIP_OPT_CRYPT => 'optional' + )); + if ($v_result != 1) { + return 0; + } + } + + // ----- Look for 2 args + // Here we need to support the first historic synopsis of the + // method. + else { + + // ----- Get the first argument + $v_options[PCLZIP_OPT_ADD_PATH] = $v_arg_list[0]; + + // ----- Look for the optional second argument + if ($v_size == 2) { + $v_options[PCLZIP_OPT_REMOVE_PATH] = $v_arg_list[1]; + } + else if ($v_size > 2) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, + "Invalid number / type of arguments"); + return 0; + } + } + } + + // ----- Look for default option values + $this->privOptionDefaultThreshold($v_options); + + // ----- Init + $v_string_list = array(); + $v_att_list = array(); + $v_filedescr_list = array(); + $p_result_list = array(); + + // ----- Look if the $p_filelist is really an array + if (is_array($p_filelist)) { + + // ----- Look if the first element is also an array + // This will mean that this is a file description entry + if (isset($p_filelist[0]) && is_array($p_filelist[0])) { + $v_att_list = $p_filelist; + } + + // ----- The list is a list of string names + else { + $v_string_list = $p_filelist; + } + } + + // ----- Look if the $p_filelist is a string + else if (is_string($p_filelist)) { + // ----- Create a list from the string + $v_string_list = explode(PCLZIP_SEPARATOR, $p_filelist); + } + + // ----- Invalid variable type for $p_filelist + else { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist"); + return 0; + } + + // ----- Reformat the string list + if (sizeof($v_string_list) != 0) { + foreach ($v_string_list as $v_string) { + if ($v_string != '') { + $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string; + } + else { + } + } + } + + // ----- For each file in the list check the attributes + $v_supported_attributes + = array ( PCLZIP_ATT_FILE_NAME => 'mandatory' + ,PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional' + ,PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional' + ,PCLZIP_ATT_FILE_MTIME => 'optional' + ,PCLZIP_ATT_FILE_CONTENT => 'optional' + ,PCLZIP_ATT_FILE_COMMENT => 'optional' + ); + foreach ($v_att_list as $v_entry) { + $v_result = $this->privFileDescrParseAtt($v_entry, + $v_filedescr_list[], + $v_options, + $v_supported_attributes); + if ($v_result != 1) { + return 0; + } + } + + // ----- Expand the filelist (expand directories) + $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options); + if ($v_result != 1) { + return 0; + } + + // ----- Call the create fct + $v_result = $this->privCreate($v_filedescr_list, $p_result_list, $v_options); + if ($v_result != 1) { + return 0; + } + + // ----- Return + return $p_result_list; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : + // add($p_filelist, $p_add_dir="", $p_remove_dir="") + // add($p_filelist, $p_option, $p_option_value, ...) + // Description : + // This method supports two synopsis. The first one is historical. + // This methods add the list of files in an existing archive. + // If a file with the same name already exists, it is added at the end of the + // archive, the first one is still present. + // If the archive does not exist, it is created. + // Parameters : + // $p_filelist : An array containing file or directory names, or + // a string containing one filename or one directory name, or + // a string containing a list of filenames and/or directory + // names separated by spaces. + // $p_add_dir : A path to add before the real path of the archived file, + // in order to have it memorized in the archive. + // $p_remove_dir : A path to remove from the real path of the file to archive, + // in order to have a shorter path memorized in the archive. + // When $p_add_dir and $p_remove_dir are set, $p_remove_dir + // is removed first, before $p_add_dir is added. + // Options : + // PCLZIP_OPT_ADD_PATH : + // PCLZIP_OPT_REMOVE_PATH : + // PCLZIP_OPT_REMOVE_ALL_PATH : + // PCLZIP_OPT_COMMENT : + // PCLZIP_OPT_ADD_COMMENT : + // PCLZIP_OPT_PREPEND_COMMENT : + // PCLZIP_CB_PRE_ADD : + // PCLZIP_CB_POST_ADD : + // Return Values : + // 0 on failure, + // The list of the added files, with a status of the add action. + // (see PclZip::listContent() for list entry format) + // -------------------------------------------------------------------------------- + function add($p_filelist) + { + $v_result=1; + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Set default values + $v_options = array(); + $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE; + + // ----- Look for variable options arguments + $v_size = func_num_args(); + + // ----- Look for arguments + if ($v_size > 1) { + // ----- Get the arguments + $v_arg_list = func_get_args(); + + // ----- Remove form the options list the first argument + array_shift($v_arg_list); + $v_size--; + + // ----- Look for first arg + if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { + + // ----- Parse the options + $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, + array (PCLZIP_OPT_REMOVE_PATH => 'optional', + PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', + PCLZIP_OPT_ADD_PATH => 'optional', + PCLZIP_CB_PRE_ADD => 'optional', + PCLZIP_CB_POST_ADD => 'optional', + PCLZIP_OPT_NO_COMPRESSION => 'optional', + PCLZIP_OPT_COMMENT => 'optional', + PCLZIP_OPT_ADD_COMMENT => 'optional', + PCLZIP_OPT_PREPEND_COMMENT => 'optional', + PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', + PCLZIP_OPT_TEMP_FILE_ON => 'optional', + PCLZIP_OPT_TEMP_FILE_OFF => 'optional' + //, PCLZIP_OPT_CRYPT => 'optional' + )); + if ($v_result != 1) { + return 0; + } + } + + // ----- Look for 2 args + // Here we need to support the first historic synopsis of the + // method. + else { + + // ----- Get the first argument + $v_options[PCLZIP_OPT_ADD_PATH] = $v_add_path = $v_arg_list[0]; + + // ----- Look for the optional second argument + if ($v_size == 2) { + $v_options[PCLZIP_OPT_REMOVE_PATH] = $v_arg_list[1]; + } + else if ($v_size > 2) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); + + // ----- Return + return 0; + } + } + } + + // ----- Look for default option values + $this->privOptionDefaultThreshold($v_options); + + // ----- Init + $v_string_list = array(); + $v_att_list = array(); + $v_filedescr_list = array(); + $p_result_list = array(); + + // ----- Look if the $p_filelist is really an array + if (is_array($p_filelist)) { + + // ----- Look if the first element is also an array + // This will mean that this is a file description entry + if (isset($p_filelist[0]) && is_array($p_filelist[0])) { + $v_att_list = $p_filelist; + } + + // ----- The list is a list of string names + else { + $v_string_list = $p_filelist; + } + } + + // ----- Look if the $p_filelist is a string + else if (is_string($p_filelist)) { + // ----- Create a list from the string + $v_string_list = explode(PCLZIP_SEPARATOR, $p_filelist); + } + + // ----- Invalid variable type for $p_filelist + else { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type '".gettype($p_filelist)."' for p_filelist"); + return 0; + } + + // ----- Reformat the string list + if (sizeof($v_string_list) != 0) { + foreach ($v_string_list as $v_string) { + $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string; + } + } + + // ----- For each file in the list check the attributes + $v_supported_attributes + = array ( PCLZIP_ATT_FILE_NAME => 'mandatory' + ,PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional' + ,PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional' + ,PCLZIP_ATT_FILE_MTIME => 'optional' + ,PCLZIP_ATT_FILE_CONTENT => 'optional' + ,PCLZIP_ATT_FILE_COMMENT => 'optional' + ); + foreach ($v_att_list as $v_entry) { + $v_result = $this->privFileDescrParseAtt($v_entry, + $v_filedescr_list[], + $v_options, + $v_supported_attributes); + if ($v_result != 1) { + return 0; + } + } + + // ----- Expand the filelist (expand directories) + $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options); + if ($v_result != 1) { + return 0; + } + + // ----- Call the create fct + $v_result = $this->privAdd($v_filedescr_list, $p_result_list, $v_options); + if ($v_result != 1) { + return 0; + } + + // ----- Return + return $p_result_list; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : listContent() + // Description : + // This public method, gives the list of the files and directories, with their + // properties. + // The properties of each entries in the list are (used also in other functions) : + // filename : Name of the file. For a create or add action it is the filename + // given by the user. For an extract function it is the filename + // of the extracted file. + // stored_filename : Name of the file / directory stored in the archive. + // size : Size of the stored file. + // compressed_size : Size of the file's data compressed in the archive + // (without the headers overhead) + // mtime : Last known modification date of the file (UNIX timestamp) + // comment : Comment associated with the file + // folder : true | false + // index : index of the file in the archive + // status : status of the action (depending of the action) : + // Values are : + // ok : OK ! + // filtered : the file / dir is not extracted (filtered by user) + // already_a_directory : the file can not be extracted because a + // directory with the same name already exists + // write_protected : the file can not be extracted because a file + // with the same name already exists and is + // write protected + // newer_exist : the file was not extracted because a newer file exists + // path_creation_fail : the file is not extracted because the folder + // does not exist and can not be created + // write_error : the file was not extracted because there was a + // error while writing the file + // read_error : the file was not extracted because there was a error + // while reading the file + // invalid_header : the file was not extracted because of an archive + // format error (bad file header) + // Note that each time a method can continue operating when there + // is an action error on a file, the error is only logged in the file status. + // Return Values : + // 0 on an unrecoverable failure, + // The list of the files in the archive. + // -------------------------------------------------------------------------------- + function listContent() + { + $v_result=1; + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Check archive + if (!$this->privCheckFormat()) { + return(0); + } + + // ----- Call the extracting fct + $p_list = array(); + if (($v_result = $this->privList($p_list)) != 1) + { + unset($p_list); + return(0); + } + + // ----- Return + return $p_list; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : + // extract($p_path="./", $p_remove_path="") + // extract([$p_option, $p_option_value, ...]) + // Description : + // This method supports two synopsis. The first one is historical. + // This method extract all the files / directories from the archive to the + // folder indicated in $p_path. + // If you want to ignore the 'root' part of path of the memorized files + // you can indicate this in the optional $p_remove_path parameter. + // By default, if a newer file with the same name already exists, the + // file is not extracted. + // + // If both PCLZIP_OPT_PATH and PCLZIP_OPT_ADD_PATH aoptions + // are used, the path indicated in PCLZIP_OPT_ADD_PATH is append + // at the end of the path value of PCLZIP_OPT_PATH. + // Parameters : + // $p_path : Path where the files and directories are to be extracted + // $p_remove_path : First part ('root' part) of the memorized path + // (if any similar) to remove while extracting. + // Options : + // PCLZIP_OPT_PATH : + // PCLZIP_OPT_ADD_PATH : + // PCLZIP_OPT_REMOVE_PATH : + // PCLZIP_OPT_REMOVE_ALL_PATH : + // PCLZIP_CB_PRE_EXTRACT : + // PCLZIP_CB_POST_EXTRACT : + // Return Values : + // 0 or a negative value on failure, + // The list of the extracted files, with a status of the action. + // (see PclZip::listContent() for list entry format) + // -------------------------------------------------------------------------------- + function extract() + { + $v_result=1; + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Check archive + if (!$this->privCheckFormat()) { + return(0); + } + + // ----- Set default values + $v_options = array(); +// $v_path = "./"; + $v_path = ''; + $v_remove_path = ""; + $v_remove_all_path = false; + + // ----- Look for variable options arguments + $v_size = func_num_args(); + + // ----- Default values for option + $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; + + // ----- Look for arguments + if ($v_size > 0) { + // ----- Get the arguments + $v_arg_list = func_get_args(); + + // ----- Look for first arg + if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { + + // ----- Parse the options + $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, + array (PCLZIP_OPT_PATH => 'optional', + PCLZIP_OPT_REMOVE_PATH => 'optional', + PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', + PCLZIP_OPT_ADD_PATH => 'optional', + PCLZIP_CB_PRE_EXTRACT => 'optional', + PCLZIP_CB_POST_EXTRACT => 'optional', + PCLZIP_OPT_SET_CHMOD => 'optional', + PCLZIP_OPT_BY_NAME => 'optional', + PCLZIP_OPT_BY_EREG => 'optional', + PCLZIP_OPT_BY_PREG => 'optional', + PCLZIP_OPT_BY_INDEX => 'optional', + PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', + PCLZIP_OPT_EXTRACT_IN_OUTPUT => 'optional', + PCLZIP_OPT_REPLACE_NEWER => 'optional' + ,PCLZIP_OPT_STOP_ON_ERROR => 'optional' + ,PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional', + PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', + PCLZIP_OPT_TEMP_FILE_ON => 'optional', + PCLZIP_OPT_TEMP_FILE_OFF => 'optional' + )); + if ($v_result != 1) { + return 0; + } + + // ----- Set the arguments + if (isset($v_options[PCLZIP_OPT_PATH])) { + $v_path = $v_options[PCLZIP_OPT_PATH]; + } + if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { + $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; + } + if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { + $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; + } + if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { + // ----- Check for '/' in last path char + if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) { + $v_path .= '/'; + } + $v_path .= $v_options[PCLZIP_OPT_ADD_PATH]; + } + } + + // ----- Look for 2 args + // Here we need to support the first historic synopsis of the + // method. + else { + + // ----- Get the first argument + $v_path = $v_arg_list[0]; + + // ----- Look for the optional second argument + if ($v_size == 2) { + $v_remove_path = $v_arg_list[1]; + } + else if ($v_size > 2) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); + + // ----- Return + return 0; + } + } + } + + // ----- Look for default option values + $this->privOptionDefaultThreshold($v_options); + + // ----- Trace + + // ----- Call the extracting fct + $p_list = array(); + $v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, + $v_remove_all_path, $v_options); + if ($v_result < 1) { + unset($p_list); + return(0); + } + + // ----- Return + return $p_list; + } + // -------------------------------------------------------------------------------- + + + // -------------------------------------------------------------------------------- + // Function : + // extractByIndex($p_index, $p_path="./", $p_remove_path="") + // extractByIndex($p_index, [$p_option, $p_option_value, ...]) + // Description : + // This method supports two synopsis. The first one is historical. + // This method is doing a partial extract of the archive. + // The extracted files or folders are identified by their index in the + // archive (from 0 to n). + // Note that if the index identify a folder, only the folder entry is + // extracted, not all the files included in the archive. + // Parameters : + // $p_index : A single index (integer) or a string of indexes of files to + // extract. The form of the string is "0,4-6,8-12" with only numbers + // and '-' for range or ',' to separate ranges. No spaces or ';' + // are allowed. + // $p_path : Path where the files and directories are to be extracted + // $p_remove_path : First part ('root' part) of the memorized path + // (if any similar) to remove while extracting. + // Options : + // PCLZIP_OPT_PATH : + // PCLZIP_OPT_ADD_PATH : + // PCLZIP_OPT_REMOVE_PATH : + // PCLZIP_OPT_REMOVE_ALL_PATH : + // PCLZIP_OPT_EXTRACT_AS_STRING : The files are extracted as strings and + // not as files. + // The resulting content is in a new field 'content' in the file + // structure. + // This option must be used alone (any other options are ignored). + // PCLZIP_CB_PRE_EXTRACT : + // PCLZIP_CB_POST_EXTRACT : + // Return Values : + // 0 on failure, + // The list of the extracted files, with a status of the action. + // (see PclZip::listContent() for list entry format) + // -------------------------------------------------------------------------------- + //function extractByIndex($p_index, options...) + function extractByIndex($p_index) + { + $v_result=1; + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Check archive + if (!$this->privCheckFormat()) { + return(0); + } + + // ----- Set default values + $v_options = array(); +// $v_path = "./"; + $v_path = ''; + $v_remove_path = ""; + $v_remove_all_path = false; + + // ----- Look for variable options arguments + $v_size = func_num_args(); + + // ----- Default values for option + $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; + + // ----- Look for arguments + if ($v_size > 1) { + // ----- Get the arguments + $v_arg_list = func_get_args(); + + // ----- Remove form the options list the first argument + array_shift($v_arg_list); + $v_size--; + + // ----- Look for first arg + if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { + + // ----- Parse the options + $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, + array (PCLZIP_OPT_PATH => 'optional', + PCLZIP_OPT_REMOVE_PATH => 'optional', + PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', + PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', + PCLZIP_OPT_ADD_PATH => 'optional', + PCLZIP_CB_PRE_EXTRACT => 'optional', + PCLZIP_CB_POST_EXTRACT => 'optional', + PCLZIP_OPT_SET_CHMOD => 'optional', + PCLZIP_OPT_REPLACE_NEWER => 'optional' + ,PCLZIP_OPT_STOP_ON_ERROR => 'optional' + ,PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional', + PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', + PCLZIP_OPT_TEMP_FILE_ON => 'optional', + PCLZIP_OPT_TEMP_FILE_OFF => 'optional' + )); + if ($v_result != 1) { + return 0; + } + + // ----- Set the arguments + if (isset($v_options[PCLZIP_OPT_PATH])) { + $v_path = $v_options[PCLZIP_OPT_PATH]; + } + if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { + $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; + } + if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { + $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; + } + if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { + // ----- Check for '/' in last path char + if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) { + $v_path .= '/'; + } + $v_path .= $v_options[PCLZIP_OPT_ADD_PATH]; + } + if (!isset($v_options[PCLZIP_OPT_EXTRACT_AS_STRING])) { + $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; + } + else { + } + } + + // ----- Look for 2 args + // Here we need to support the first historic synopsis of the + // method. + else { + + // ----- Get the first argument + $v_path = $v_arg_list[0]; + + // ----- Look for the optional second argument + if ($v_size == 2) { + $v_remove_path = $v_arg_list[1]; + } + else if ($v_size > 2) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); + + // ----- Return + return 0; + } + } + } + + // ----- Trace + + // ----- Trick + // Here I want to reuse extractByRule(), so I need to parse the $p_index + // with privParseOptions() + $v_arg_trick = array (PCLZIP_OPT_BY_INDEX, $p_index); + $v_options_trick = array(); + $v_result = $this->privParseOptions($v_arg_trick, sizeof($v_arg_trick), $v_options_trick, + array (PCLZIP_OPT_BY_INDEX => 'optional' )); + if ($v_result != 1) { + return 0; + } + $v_options[PCLZIP_OPT_BY_INDEX] = $v_options_trick[PCLZIP_OPT_BY_INDEX]; + + // ----- Look for default option values + $this->privOptionDefaultThreshold($v_options); + + // ----- Call the extracting fct + if (($v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options)) < 1) { + return(0); + } + + // ----- Return + return $p_list; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : + // delete([$p_option, $p_option_value, ...]) + // Description : + // This method removes files from the archive. + // If no parameters are given, then all the archive is emptied. + // Parameters : + // None or optional arguments. + // Options : + // PCLZIP_OPT_BY_INDEX : + // PCLZIP_OPT_BY_NAME : + // PCLZIP_OPT_BY_EREG : + // PCLZIP_OPT_BY_PREG : + // Return Values : + // 0 on failure, + // The list of the files which are still present in the archive. + // (see PclZip::listContent() for list entry format) + // -------------------------------------------------------------------------------- + function delete() + { + $v_result=1; + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Check archive + if (!$this->privCheckFormat()) { + return(0); + } + + // ----- Set default values + $v_options = array(); + + // ----- Look for variable options arguments + $v_size = func_num_args(); + + // ----- Look for arguments + if ($v_size > 0) { + // ----- Get the arguments + $v_arg_list = func_get_args(); + + // ----- Parse the options + $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, + array (PCLZIP_OPT_BY_NAME => 'optional', + PCLZIP_OPT_BY_EREG => 'optional', + PCLZIP_OPT_BY_PREG => 'optional', + PCLZIP_OPT_BY_INDEX => 'optional' )); + if ($v_result != 1) { + return 0; + } + } + + // ----- Magic quotes trick + $this->privDisableMagicQuotes(); + + // ----- Call the delete fct + $v_list = array(); + if (($v_result = $this->privDeleteByRule($v_list, $v_options)) != 1) { + $this->privSwapBackMagicQuotes(); + unset($v_list); + return(0); + } + + // ----- Magic quotes trick + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_list; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : deleteByIndex() + // Description : + // ***** Deprecated ***** + // delete(PCLZIP_OPT_BY_INDEX, $p_index) should be prefered. + // -------------------------------------------------------------------------------- + function deleteByIndex($p_index) + { + + $p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index); + + // ----- Return + return $p_list; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : properties() + // Description : + // This method gives the properties of the archive. + // The properties are : + // nb : Number of files in the archive + // comment : Comment associated with the archive file + // status : not_exist, ok + // Parameters : + // None + // Return Values : + // 0 on failure, + // An array with the archive properties. + // -------------------------------------------------------------------------------- + function properties() + { + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Magic quotes trick + $this->privDisableMagicQuotes(); + + // ----- Check archive + if (!$this->privCheckFormat()) { + $this->privSwapBackMagicQuotes(); + return(0); + } + + // ----- Default properties + $v_prop = array(); + $v_prop['comment'] = ''; + $v_prop['nb'] = 0; + $v_prop['status'] = 'not_exist'; + + // ----- Look if file exists + if (@is_file($this->zipname)) + { + // ----- Open the zip file + if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) + { + $this->privSwapBackMagicQuotes(); + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); + + // ----- Return + return 0; + } + + // ----- Read the central directory informations + $v_central_dir = array(); + if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) + { + $this->privSwapBackMagicQuotes(); + return 0; + } + + // ----- Close the zip file + $this->privCloseFd(); + + // ----- Set the user attributes + $v_prop['comment'] = $v_central_dir['comment']; + $v_prop['nb'] = $v_central_dir['entries']; + $v_prop['status'] = 'ok'; + } + + // ----- Magic quotes trick + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_prop; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : duplicate() + // Description : + // This method creates an archive by copying the content of an other one. If + // the archive already exist, it is replaced by the new one without any warning. + // Parameters : + // $p_archive : The filename of a valid archive, or + // a valid PclZip object. + // Return Values : + // 1 on success. + // 0 or a negative value on error (error code). + // -------------------------------------------------------------------------------- + function duplicate($p_archive) + { + $v_result = 1; + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Look if the $p_archive is a PclZip object + if ((is_object($p_archive)) && (get_class($p_archive) == 'pclzip')) + { + + // ----- Duplicate the archive + $v_result = $this->privDuplicate($p_archive->zipname); + } + + // ----- Look if the $p_archive is a string (so a filename) + else if (is_string($p_archive)) + { + + // ----- Check that $p_archive is a valid zip file + // TBC : Should also check the archive format + if (!is_file($p_archive)) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "No file with filename '".$p_archive."'"); + $v_result = PCLZIP_ERR_MISSING_FILE; + } + else { + // ----- Duplicate the archive + $v_result = $this->privDuplicate($p_archive); + } + } + + // ----- Invalid variable + else + { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add"); + $v_result = PCLZIP_ERR_INVALID_PARAMETER; + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : merge() + // Description : + // This method merge the $p_archive_to_add archive at the end of the current + // one ($this). + // If the archive ($this) does not exist, the merge becomes a duplicate. + // If the $p_archive_to_add archive does not exist, the merge is a success. + // Parameters : + // $p_archive_to_add : It can be directly the filename of a valid zip archive, + // or a PclZip object archive. + // Return Values : + // 1 on success, + // 0 or negative values on error (see below). + // -------------------------------------------------------------------------------- + function merge($p_archive_to_add) + { + $v_result = 1; + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Check archive + if (!$this->privCheckFormat()) { + return(0); + } + + // ----- Look if the $p_archive_to_add is a PclZip object + if ((is_object($p_archive_to_add)) && (get_class($p_archive_to_add) == 'pclzip')) + { + + // ----- Merge the archive + $v_result = $this->privMerge($p_archive_to_add); + } + + // ----- Look if the $p_archive_to_add is a string (so a filename) + else if (is_string($p_archive_to_add)) + { + + // ----- Create a temporary archive + $v_object_archive = new PclZip($p_archive_to_add); + + // ----- Merge the archive + $v_result = $this->privMerge($v_object_archive); + } + + // ----- Invalid variable + else + { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add"); + $v_result = PCLZIP_ERR_INVALID_PARAMETER; + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + + + // -------------------------------------------------------------------------------- + // Function : errorCode() + // Description : + // Parameters : + // -------------------------------------------------------------------------------- + function errorCode() + { + if (PCLZIP_ERROR_EXTERNAL == 1) { + return(PclErrorCode()); + } + else { + return($this->error_code); + } + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : errorName() + // Description : + // Parameters : + // -------------------------------------------------------------------------------- + function errorName($p_with_code=false) + { + $v_name = array ( PCLZIP_ERR_NO_ERROR => 'PCLZIP_ERR_NO_ERROR', + PCLZIP_ERR_WRITE_OPEN_FAIL => 'PCLZIP_ERR_WRITE_OPEN_FAIL', + PCLZIP_ERR_READ_OPEN_FAIL => 'PCLZIP_ERR_READ_OPEN_FAIL', + PCLZIP_ERR_INVALID_PARAMETER => 'PCLZIP_ERR_INVALID_PARAMETER', + PCLZIP_ERR_MISSING_FILE => 'PCLZIP_ERR_MISSING_FILE', + PCLZIP_ERR_FILENAME_TOO_LONG => 'PCLZIP_ERR_FILENAME_TOO_LONG', + PCLZIP_ERR_INVALID_ZIP => 'PCLZIP_ERR_INVALID_ZIP', + PCLZIP_ERR_BAD_EXTRACTED_FILE => 'PCLZIP_ERR_BAD_EXTRACTED_FILE', + PCLZIP_ERR_DIR_CREATE_FAIL => 'PCLZIP_ERR_DIR_CREATE_FAIL', + PCLZIP_ERR_BAD_EXTENSION => 'PCLZIP_ERR_BAD_EXTENSION', + PCLZIP_ERR_BAD_FORMAT => 'PCLZIP_ERR_BAD_FORMAT', + PCLZIP_ERR_DELETE_FILE_FAIL => 'PCLZIP_ERR_DELETE_FILE_FAIL', + PCLZIP_ERR_RENAME_FILE_FAIL => 'PCLZIP_ERR_RENAME_FILE_FAIL', + PCLZIP_ERR_BAD_CHECKSUM => 'PCLZIP_ERR_BAD_CHECKSUM', + PCLZIP_ERR_INVALID_ARCHIVE_ZIP => 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP', + PCLZIP_ERR_MISSING_OPTION_VALUE => 'PCLZIP_ERR_MISSING_OPTION_VALUE', + PCLZIP_ERR_INVALID_OPTION_VALUE => 'PCLZIP_ERR_INVALID_OPTION_VALUE', + PCLZIP_ERR_UNSUPPORTED_COMPRESSION => 'PCLZIP_ERR_UNSUPPORTED_COMPRESSION', + PCLZIP_ERR_UNSUPPORTED_ENCRYPTION => 'PCLZIP_ERR_UNSUPPORTED_ENCRYPTION' + ,PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE => 'PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE' + ,PCLZIP_ERR_DIRECTORY_RESTRICTION => 'PCLZIP_ERR_DIRECTORY_RESTRICTION' + ); + + if (isset($v_name[$this->error_code])) { + $v_value = $v_name[$this->error_code]; + } + else { + $v_value = 'NoName'; + } + + if ($p_with_code) { + return($v_value.' ('.$this->error_code.')'); + } + else { + return($v_value); + } + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : errorInfo() + // Description : + // Parameters : + // -------------------------------------------------------------------------------- + function errorInfo($p_full=false) + { + if (PCLZIP_ERROR_EXTERNAL == 1) { + return(PclErrorString()); + } + else { + if ($p_full) { + return($this->errorName(true)." : ".$this->error_string); + } + else { + return($this->error_string." [code ".$this->error_code."]"); + } + } + } + // -------------------------------------------------------------------------------- + + +// -------------------------------------------------------------------------------- +// ***** UNDER THIS LINE ARE DEFINED PRIVATE INTERNAL FUNCTIONS ***** +// ***** ***** +// ***** THESES FUNCTIONS MUST NOT BE USED DIRECTLY ***** +// -------------------------------------------------------------------------------- + + + + // -------------------------------------------------------------------------------- + // Function : privCheckFormat() + // Description : + // This method check that the archive exists and is a valid zip archive. + // Several level of check exists. (futur) + // Parameters : + // $p_level : Level of check. Default 0. + // 0 : Check the first bytes (magic codes) (default value)) + // 1 : 0 + Check the central directory (futur) + // 2 : 1 + Check each file header (futur) + // Return Values : + // true on success, + // false on error, the error code is set. + // -------------------------------------------------------------------------------- + function privCheckFormat($p_level=0) + { + $v_result = true; + + // ----- Reset the file system cache + clearstatcache(); + + // ----- Reset the error handler + $this->privErrorReset(); + + // ----- Look if the file exits + if (!is_file($this->zipname)) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "Missing archive file '".$this->zipname."'"); + return(false); + } + + // ----- Check that the file is readeable + if (!is_readable($this->zipname)) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to read archive '".$this->zipname."'"); + return(false); + } + + // ----- Check the magic code + // TBC + + // ----- Check the central header + // TBC + + // ----- Check each file header + // TBC + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privParseOptions() + // Description : + // This internal methods reads the variable list of arguments ($p_options_list, + // $p_size) and generate an array with the options and values ($v_result_list). + // $v_requested_options contains the options that can be present and those that + // must be present. + // $v_requested_options is an array, with the option value as key, and 'optional', + // or 'mandatory' as value. + // Parameters : + // See above. + // Return Values : + // 1 on success. + // 0 on failure. + // -------------------------------------------------------------------------------- + function privParseOptions(&$p_options_list, $p_size, &$v_result_list, $v_requested_options=false) + { + $v_result=1; + + // ----- Read the options + $i=0; + while ($i<$p_size) { + + // ----- Check if the option is supported + if (!isset($v_requested_options[$p_options_list[$i]])) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid optional parameter '".$p_options_list[$i]."' for this method"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Look for next option + switch ($p_options_list[$i]) { + // ----- Look for options that request a path value + case PCLZIP_OPT_PATH : + case PCLZIP_OPT_REMOVE_PATH : + case PCLZIP_OPT_ADD_PATH : + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Get the value + $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], FALSE); + $i++; + break; + + case PCLZIP_OPT_TEMP_FILE_THRESHOLD : + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + return PclZip::errorCode(); + } + + // ----- Check for incompatible options + if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_OFF])) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'"); + return PclZip::errorCode(); + } + + // ----- Check the value + $v_value = $p_options_list[$i+1]; + if ((!is_integer($v_value)) || ($v_value<0)) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Integer expected for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + return PclZip::errorCode(); + } + + // ----- Get the value (and convert it in bytes) + $v_result_list[$p_options_list[$i]] = $v_value*1048576; + $i++; + break; + + case PCLZIP_OPT_TEMP_FILE_ON : + // ----- Check for incompatible options + if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_OFF])) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'"); + return PclZip::errorCode(); + } + + $v_result_list[$p_options_list[$i]] = true; + break; + + case PCLZIP_OPT_TEMP_FILE_OFF : + // ----- Check for incompatible options + if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_ON])) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_ON'"); + return PclZip::errorCode(); + } + // ----- Check for incompatible options + if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_THRESHOLD])) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_THRESHOLD'"); + return PclZip::errorCode(); + } + + $v_result_list[$p_options_list[$i]] = true; + break; + + case PCLZIP_OPT_EXTRACT_DIR_RESTRICTION : + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Get the value + if ( is_string($p_options_list[$i+1]) + && ($p_options_list[$i+1] != '')) { + $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], FALSE); + $i++; + } + else { + } + break; + + // ----- Look for options that request an array of string for value + case PCLZIP_OPT_BY_NAME : + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Get the value + if (is_string($p_options_list[$i+1])) { + $v_result_list[$p_options_list[$i]][0] = $p_options_list[$i+1]; + } + else if (is_array($p_options_list[$i+1])) { + $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; + } + else { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + $i++; + break; + + // ----- Look for options that request an EREG or PREG expression + case PCLZIP_OPT_BY_EREG : + // ereg() is deprecated starting with PHP 5.3. Move PCLZIP_OPT_BY_EREG + // to PCLZIP_OPT_BY_PREG + $p_options_list[$i] = PCLZIP_OPT_BY_PREG; + case PCLZIP_OPT_BY_PREG : + //case PCLZIP_OPT_CRYPT : + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Get the value + if (is_string($p_options_list[$i+1])) { + $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; + } + else { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + $i++; + break; + + // ----- Look for options that takes a string + case PCLZIP_OPT_COMMENT : + case PCLZIP_OPT_ADD_COMMENT : + case PCLZIP_OPT_PREPEND_COMMENT : + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, + "Missing parameter value for option '" + .PclZipUtilOptionText($p_options_list[$i]) + ."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Get the value + if (is_string($p_options_list[$i+1])) { + $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; + } + else { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, + "Wrong parameter value for option '" + .PclZipUtilOptionText($p_options_list[$i]) + ."'"); + + // ----- Return + return PclZip::errorCode(); + } + $i++; + break; + + // ----- Look for options that request an array of index + case PCLZIP_OPT_BY_INDEX : + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Get the value + $v_work_list = array(); + if (is_string($p_options_list[$i+1])) { + + // ----- Remove spaces + $p_options_list[$i+1] = strtr($p_options_list[$i+1], ' ', ''); + + // ----- Parse items + $v_work_list = explode(",", $p_options_list[$i+1]); + } + else if (is_integer($p_options_list[$i+1])) { + $v_work_list[0] = $p_options_list[$i+1].'-'.$p_options_list[$i+1]; + } + else if (is_array($p_options_list[$i+1])) { + $v_work_list = $p_options_list[$i+1]; + } + else { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Value must be integer, string or array for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Reduce the index list + // each index item in the list must be a couple with a start and + // an end value : [0,3], [5-5], [8-10], ... + // ----- Check the format of each item + $v_sort_flag=false; + $v_sort_value=0; + for ($j=0; $j<sizeof($v_work_list); $j++) { + // ----- Explode the item + $v_item_list = explode("-", $v_work_list[$j]); + $v_size_item_list = sizeof($v_item_list); + + // ----- TBC : Here we might check that each item is a + // real integer ... + + // ----- Look for single value + if ($v_size_item_list == 1) { + // ----- Set the option value + $v_result_list[$p_options_list[$i]][$j]['start'] = $v_item_list[0]; + $v_result_list[$p_options_list[$i]][$j]['end'] = $v_item_list[0]; + } + elseif ($v_size_item_list == 2) { + // ----- Set the option value + $v_result_list[$p_options_list[$i]][$j]['start'] = $v_item_list[0]; + $v_result_list[$p_options_list[$i]][$j]['end'] = $v_item_list[1]; + } + else { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Too many values in index range for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + + // ----- Look for list sort + if ($v_result_list[$p_options_list[$i]][$j]['start'] < $v_sort_value) { + $v_sort_flag=true; + + // ----- TBC : An automatic sort should be writen ... + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Invalid order of index range for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + $v_sort_value = $v_result_list[$p_options_list[$i]][$j]['start']; + } + + // ----- Sort the items + if ($v_sort_flag) { + // TBC : To Be Completed + } + + // ----- Next option + $i++; + break; + + // ----- Look for options that request no value + case PCLZIP_OPT_REMOVE_ALL_PATH : + case PCLZIP_OPT_EXTRACT_AS_STRING : + case PCLZIP_OPT_NO_COMPRESSION : + case PCLZIP_OPT_EXTRACT_IN_OUTPUT : + case PCLZIP_OPT_REPLACE_NEWER : + case PCLZIP_OPT_STOP_ON_ERROR : + $v_result_list[$p_options_list[$i]] = true; + break; + + // ----- Look for options that request an octal value + case PCLZIP_OPT_SET_CHMOD : + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Get the value + $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; + $i++; + break; + + // ----- Look for options that request a call-back + case PCLZIP_CB_PRE_EXTRACT : + case PCLZIP_CB_POST_EXTRACT : + case PCLZIP_CB_PRE_ADD : + case PCLZIP_CB_POST_ADD : + /* for futur use + case PCLZIP_CB_PRE_DELETE : + case PCLZIP_CB_POST_DELETE : + case PCLZIP_CB_PRE_LIST : + case PCLZIP_CB_POST_LIST : + */ + // ----- Check the number of parameters + if (($i+1) >= $p_size) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Get the value + $v_function_name = $p_options_list[$i+1]; + + // ----- Check that the value is a valid existing function + if (!function_exists($v_function_name)) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Function '".$v_function_name."()' is not an existing function for option '".PclZipUtilOptionText($p_options_list[$i])."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Set the attribute + $v_result_list[$p_options_list[$i]] = $v_function_name; + $i++; + break; + + default : + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, + "Unknown parameter '" + .$p_options_list[$i]."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Next options + $i++; + } + + // ----- Look for mandatory options + if ($v_requested_options !== false) { + for ($key=reset($v_requested_options); $key=key($v_requested_options); $key=next($v_requested_options)) { + // ----- Look for mandatory option + if ($v_requested_options[$key] == 'mandatory') { + // ----- Look if present + if (!isset($v_result_list[$key])) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")"); + + // ----- Return + return PclZip::errorCode(); + } + } + } + } + + // ----- Look for default values + if (!isset($v_result_list[PCLZIP_OPT_TEMP_FILE_THRESHOLD])) { + + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privOptionDefaultThreshold() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privOptionDefaultThreshold(&$p_options) + { + $v_result=1; + + if (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) + || isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) { + return $v_result; + } + + // ----- Get 'memory_limit' configuration value + $v_memory_limit = ini_get('memory_limit'); + $v_memory_limit = trim($v_memory_limit); + $last = strtolower(substr($v_memory_limit, -1)); + + if($last == 'g') + //$v_memory_limit = $v_memory_limit*1024*1024*1024; + $v_memory_limit = $v_memory_limit*1073741824; + if($last == 'm') + //$v_memory_limit = $v_memory_limit*1024*1024; + $v_memory_limit = $v_memory_limit*1048576; + if($last == 'k') + $v_memory_limit = $v_memory_limit*1024; + + $p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] = floor($v_memory_limit*PCLZIP_TEMPORARY_FILE_RATIO); + + + // ----- Sanity check : No threshold if value lower than 1M + if ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] < 1048576) { + unset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privFileDescrParseAtt() + // Description : + // Parameters : + // Return Values : + // 1 on success. + // 0 on failure. + // -------------------------------------------------------------------------------- + function privFileDescrParseAtt(&$p_file_list, &$p_filedescr, $v_options, $v_requested_options=false) + { + $v_result=1; + + // ----- For each file in the list check the attributes + foreach ($p_file_list as $v_key => $v_value) { + + // ----- Check if the option is supported + if (!isset($v_requested_options[$v_key])) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file attribute '".$v_key."' for this file"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Look for attribute + switch ($v_key) { + case PCLZIP_ATT_FILE_NAME : + if (!is_string($v_value)) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); + return PclZip::errorCode(); + } + + $p_filedescr['filename'] = PclZipUtilPathReduction($v_value); + + if ($p_filedescr['filename'] == '') { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty filename for attribute '".PclZipUtilOptionText($v_key)."'"); + return PclZip::errorCode(); + } + + break; + + case PCLZIP_ATT_FILE_NEW_SHORT_NAME : + if (!is_string($v_value)) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); + return PclZip::errorCode(); + } + + $p_filedescr['new_short_name'] = PclZipUtilPathReduction($v_value); + + if ($p_filedescr['new_short_name'] == '') { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty short filename for attribute '".PclZipUtilOptionText($v_key)."'"); + return PclZip::errorCode(); + } + break; + + case PCLZIP_ATT_FILE_NEW_FULL_NAME : + if (!is_string($v_value)) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); + return PclZip::errorCode(); + } + + $p_filedescr['new_full_name'] = PclZipUtilPathReduction($v_value); + + if ($p_filedescr['new_full_name'] == '') { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty full filename for attribute '".PclZipUtilOptionText($v_key)."'"); + return PclZip::errorCode(); + } + break; + + // ----- Look for options that takes a string + case PCLZIP_ATT_FILE_COMMENT : + if (!is_string($v_value)) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); + return PclZip::errorCode(); + } + + $p_filedescr['comment'] = $v_value; + break; + + case PCLZIP_ATT_FILE_MTIME : + if (!is_integer($v_value)) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". Integer expected for attribute '".PclZipUtilOptionText($v_key)."'"); + return PclZip::errorCode(); + } + + $p_filedescr['mtime'] = $v_value; + break; + + case PCLZIP_ATT_FILE_CONTENT : + $p_filedescr['content'] = $v_value; + break; + + default : + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, + "Unknown parameter '".$v_key."'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Look for mandatory options + if ($v_requested_options !== false) { + for ($key=reset($v_requested_options); $key=key($v_requested_options); $key=next($v_requested_options)) { + // ----- Look for mandatory option + if ($v_requested_options[$key] == 'mandatory') { + // ----- Look if present + if (!isset($p_file_list[$key])) { + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")"); + return PclZip::errorCode(); + } + } + } + } + + // end foreach + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privFileDescrExpand() + // Description : + // This method look for each item of the list to see if its a file, a folder + // or a string to be added as file. For any other type of files (link, other) + // just ignore the item. + // Then prepare the information that will be stored for that file. + // When its a folder, expand the folder with all the files that are in that + // folder (recursively). + // Parameters : + // Return Values : + // 1 on success. + // 0 on failure. + // -------------------------------------------------------------------------------- + function privFileDescrExpand(&$p_filedescr_list, &$p_options) + { + $v_result=1; + + // ----- Create a result list + $v_result_list = array(); + + // ----- Look each entry + for ($i=0; $i<sizeof($p_filedescr_list); $i++) { + + // ----- Get filedescr + $v_descr = $p_filedescr_list[$i]; + + // ----- Reduce the filename + $v_descr['filename'] = PclZipUtilTranslateWinPath($v_descr['filename'], false); + $v_descr['filename'] = PclZipUtilPathReduction($v_descr['filename']); + + // ----- Look for real file or folder + if (file_exists($v_descr['filename'])) { + if (@is_file($v_descr['filename'])) { + $v_descr['type'] = 'file'; + } + else if (@is_dir($v_descr['filename'])) { + $v_descr['type'] = 'folder'; + } + else if (@is_link($v_descr['filename'])) { + // skip + continue; + } + else { + // skip + continue; + } + } + + // ----- Look for string added as file + else if (isset($v_descr['content'])) { + $v_descr['type'] = 'virtual_file'; + } + + // ----- Missing file + else { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "File '".$v_descr['filename']."' does not exist"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Calculate the stored filename + $this->privCalculateStoredFilename($v_descr, $p_options); + + // ----- Add the descriptor in result list + $v_result_list[sizeof($v_result_list)] = $v_descr; + + // ----- Look for folder + if ($v_descr['type'] == 'folder') { + // ----- List of items in folder + $v_dirlist_descr = array(); + $v_dirlist_nb = 0; + if ($v_folder_handler = @opendir($v_descr['filename'])) { + while (($v_item_handler = @readdir($v_folder_handler)) !== false) { + + // ----- Skip '.' and '..' + if (($v_item_handler == '.') || ($v_item_handler == '..')) { + continue; + } + + // ----- Compose the full filename + $v_dirlist_descr[$v_dirlist_nb]['filename'] = $v_descr['filename'].'/'.$v_item_handler; + + // ----- Look for different stored filename + // Because the name of the folder was changed, the name of the + // files/sub-folders also change + if (($v_descr['stored_filename'] != $v_descr['filename']) + && (!isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH]))) { + if ($v_descr['stored_filename'] != '') { + $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_descr['stored_filename'].'/'.$v_item_handler; + } + else { + $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_item_handler; + } + } + + $v_dirlist_nb++; + } + + @closedir($v_folder_handler); + } + else { + // TBC : unable to open folder in read mode + } + + // ----- Expand each element of the list + if ($v_dirlist_nb != 0) { + // ----- Expand + if (($v_result = $this->privFileDescrExpand($v_dirlist_descr, $p_options)) != 1) { + return $v_result; + } + + // ----- Concat the resulting list + $v_result_list = array_merge($v_result_list, $v_dirlist_descr); + } + else { + } + + // ----- Free local array + unset($v_dirlist_descr); + } + } + + // ----- Get the result list + $p_filedescr_list = $v_result_list; + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privCreate() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privCreate($p_filedescr_list, &$p_result_list, &$p_options) + { + $v_result=1; + $v_list_detail = array(); + + // ----- Magic quotes trick + $this->privDisableMagicQuotes(); + + // ----- Open the file in write mode + if (($v_result = $this->privOpenFd('wb')) != 1) + { + // ----- Return + return $v_result; + } + + // ----- Add the list of files + $v_result = $this->privAddList($p_filedescr_list, $p_result_list, $p_options); + + // ----- Close + $this->privCloseFd(); + + // ----- Magic quotes trick + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privAdd() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privAdd($p_filedescr_list, &$p_result_list, &$p_options) + { + $v_result=1; + $v_list_detail = array(); + + // ----- Look if the archive exists or is empty + if ((!is_file($this->zipname)) || (filesize($this->zipname) == 0)) + { + + // ----- Do a create + $v_result = $this->privCreate($p_filedescr_list, $p_result_list, $p_options); + + // ----- Return + return $v_result; + } + // ----- Magic quotes trick + $this->privDisableMagicQuotes(); + + // ----- Open the zip file + if (($v_result=$this->privOpenFd('rb')) != 1) + { + // ----- Magic quotes trick + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_result; + } + + // ----- Read the central directory informations + $v_central_dir = array(); + if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) + { + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + return $v_result; + } + + // ----- Go to beginning of File + @rewind($this->zip_fd); + + // ----- Creates a temporay file + $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; + + // ----- Open the temporary file in write mode + if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0) + { + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Copy the files from the archive to the temporary file + // TBC : Here I should better append the file and go back to erase the central dir + $v_size = $v_central_dir['offset']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = fread($this->zip_fd, $v_read_size); + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Swap the file descriptor + // Here is a trick : I swap the temporary fd with the zip fd, in order to use + // the following methods on the temporary fil and not the real archive + $v_swap = $this->zip_fd; + $this->zip_fd = $v_zip_temp_fd; + $v_zip_temp_fd = $v_swap; + + // ----- Add the files + $v_header_list = array(); + if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1) + { + fclose($v_zip_temp_fd); + $this->privCloseFd(); + @unlink($v_zip_temp_name); + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_result; + } + + // ----- Store the offset of the central dir + $v_offset = @ftell($this->zip_fd); + + // ----- Copy the block of file headers from the old archive + $v_size = $v_central_dir['size']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($v_zip_temp_fd, $v_read_size); + @fwrite($this->zip_fd, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Create the Central Dir files header + for ($i=0, $v_count=0; $i<sizeof($v_header_list); $i++) + { + // ----- Create the file header + if ($v_header_list[$i]['status'] == 'ok') { + if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) { + fclose($v_zip_temp_fd); + $this->privCloseFd(); + @unlink($v_zip_temp_name); + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_result; + } + $v_count++; + } + + // ----- Transform the header to a 'usable' info + $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); + } + + // ----- Zip file comment + $v_comment = $v_central_dir['comment']; + if (isset($p_options[PCLZIP_OPT_COMMENT])) { + $v_comment = $p_options[PCLZIP_OPT_COMMENT]; + } + if (isset($p_options[PCLZIP_OPT_ADD_COMMENT])) { + $v_comment = $v_comment.$p_options[PCLZIP_OPT_ADD_COMMENT]; + } + if (isset($p_options[PCLZIP_OPT_PREPEND_COMMENT])) { + $v_comment = $p_options[PCLZIP_OPT_PREPEND_COMMENT].$v_comment; + } + + // ----- Calculate the size of the central header + $v_size = @ftell($this->zip_fd)-$v_offset; + + // ----- Create the central dir footer + if (($v_result = $this->privWriteCentralHeader($v_count+$v_central_dir['entries'], $v_size, $v_offset, $v_comment)) != 1) + { + // ----- Reset the file list + unset($v_header_list); + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_result; + } + + // ----- Swap back the file descriptor + $v_swap = $this->zip_fd; + $this->zip_fd = $v_zip_temp_fd; + $v_zip_temp_fd = $v_swap; + + // ----- Close + $this->privCloseFd(); + + // ----- Close the temporary file + @fclose($v_zip_temp_fd); + + // ----- Magic quotes trick + $this->privSwapBackMagicQuotes(); + + // ----- Delete the zip file + // TBC : I should test the result ... + @unlink($this->zipname); + + // ----- Rename the temporary file + // TBC : I should test the result ... + //@rename($v_zip_temp_name, $this->zipname); + PclZipUtilRename($v_zip_temp_name, $this->zipname); + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privOpenFd() + // Description : + // Parameters : + // -------------------------------------------------------------------------------- + function privOpenFd($p_mode) + { + $v_result=1; + + // ----- Look if already open + if ($this->zip_fd != 0) + { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Zip file \''.$this->zipname.'\' already open'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Open the zip file + if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0) + { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in '.$p_mode.' mode'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privCloseFd() + // Description : + // Parameters : + // -------------------------------------------------------------------------------- + function privCloseFd() + { + $v_result=1; + + if ($this->zip_fd != 0) + @fclose($this->zip_fd); + $this->zip_fd = 0; + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privAddList() + // Description : + // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is + // different from the real path of the file. This is usefull if you want to have PclTar + // running in any directory, and memorize relative path from an other directory. + // Parameters : + // $p_list : An array containing the file or directory names to add in the tar + // $p_result_list : list of added files with their properties (specially the status field) + // $p_add_dir : Path to add in the filename path archived + // $p_remove_dir : Path to remove in the filename path archived + // Return Values : + // -------------------------------------------------------------------------------- +// function privAddList($p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options) + function privAddList($p_filedescr_list, &$p_result_list, &$p_options) + { + $v_result=1; + + // ----- Add the files + $v_header_list = array(); + if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1) + { + // ----- Return + return $v_result; + } + + // ----- Store the offset of the central dir + $v_offset = @ftell($this->zip_fd); + + // ----- Create the Central Dir files header + for ($i=0,$v_count=0; $i<sizeof($v_header_list); $i++) + { + // ----- Create the file header + if ($v_header_list[$i]['status'] == 'ok') { + if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) { + // ----- Return + return $v_result; + } + $v_count++; + } + + // ----- Transform the header to a 'usable' info + $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); + } + + // ----- Zip file comment + $v_comment = ''; + if (isset($p_options[PCLZIP_OPT_COMMENT])) { + $v_comment = $p_options[PCLZIP_OPT_COMMENT]; + } + + // ----- Calculate the size of the central header + $v_size = @ftell($this->zip_fd)-$v_offset; + + // ----- Create the central dir footer + if (($v_result = $this->privWriteCentralHeader($v_count, $v_size, $v_offset, $v_comment)) != 1) + { + // ----- Reset the file list + unset($v_header_list); + + // ----- Return + return $v_result; + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privAddFileList() + // Description : + // Parameters : + // $p_filedescr_list : An array containing the file description + // or directory names to add in the zip + // $p_result_list : list of added files with their properties (specially the status field) + // Return Values : + // -------------------------------------------------------------------------------- + function privAddFileList($p_filedescr_list, &$p_result_list, &$p_options) + { + $v_result=1; + $v_header = array(); + + // ----- Recuperate the current number of elt in list + $v_nb = sizeof($p_result_list); + + // ----- Loop on the files + for ($j=0; ($j<sizeof($p_filedescr_list)) && ($v_result==1); $j++) { + // ----- Format the filename + $p_filedescr_list[$j]['filename'] + = PclZipUtilTranslateWinPath($p_filedescr_list[$j]['filename'], false); + + + // ----- Skip empty file names + // TBC : Can this be possible ? not checked in DescrParseAtt ? + if ($p_filedescr_list[$j]['filename'] == "") { + continue; + } + + // ----- Check the filename + if ( ($p_filedescr_list[$j]['type'] != 'virtual_file') + && (!file_exists($p_filedescr_list[$j]['filename']))) { + PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "File '".$p_filedescr_list[$j]['filename']."' does not exist"); + return PclZip::errorCode(); + } + + // ----- Look if it is a file or a dir with no all path remove option + // or a dir with all its path removed +// if ( (is_file($p_filedescr_list[$j]['filename'])) +// || ( is_dir($p_filedescr_list[$j]['filename']) + if ( ($p_filedescr_list[$j]['type'] == 'file') + || ($p_filedescr_list[$j]['type'] == 'virtual_file') + || ( ($p_filedescr_list[$j]['type'] == 'folder') + && ( !isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH]) + || !$p_options[PCLZIP_OPT_REMOVE_ALL_PATH])) + ) { + + // ----- Add the file + $v_result = $this->privAddFile($p_filedescr_list[$j], $v_header, + $p_options); + if ($v_result != 1) { + return $v_result; + } + + // ----- Store the file infos + $p_result_list[$v_nb++] = $v_header; + } + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privAddFile() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privAddFile($p_filedescr, &$p_header, &$p_options) + { + $v_result=1; + + // ----- Working variable + $p_filename = $p_filedescr['filename']; + + // TBC : Already done in the fileAtt check ... ? + if ($p_filename == "") { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file list parameter (invalid or empty list)"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Look for a stored different filename + /* TBC : Removed + if (isset($p_filedescr['stored_filename'])) { + $v_stored_filename = $p_filedescr['stored_filename']; + } + else { + $v_stored_filename = $p_filedescr['stored_filename']; + } + */ + + // ----- Set the file properties + clearstatcache(); + $p_header['version'] = 20; + $p_header['version_extracted'] = 10; + $p_header['flag'] = 0; + $p_header['compression'] = 0; + $p_header['crc'] = 0; + $p_header['compressed_size'] = 0; + $p_header['filename_len'] = strlen($p_filename); + $p_header['extra_len'] = 0; + $p_header['disk'] = 0; + $p_header['internal'] = 0; + $p_header['offset'] = 0; + $p_header['filename'] = $p_filename; +// TBC : Removed $p_header['stored_filename'] = $v_stored_filename; + $p_header['stored_filename'] = $p_filedescr['stored_filename']; + $p_header['extra'] = ''; + $p_header['status'] = 'ok'; + $p_header['index'] = -1; + + // ----- Look for regular file + if ($p_filedescr['type']=='file') { + $p_header['external'] = 0x00000000; + $p_header['size'] = filesize($p_filename); + } + + // ----- Look for regular folder + else if ($p_filedescr['type']=='folder') { + $p_header['external'] = 0x00000010; + $p_header['mtime'] = filemtime($p_filename); + $p_header['size'] = filesize($p_filename); + } + + // ----- Look for virtual file + else if ($p_filedescr['type'] == 'virtual_file') { + $p_header['external'] = 0x00000000; + $p_header['size'] = strlen($p_filedescr['content']); + } + + + // ----- Look for filetime + if (isset($p_filedescr['mtime'])) { + $p_header['mtime'] = $p_filedescr['mtime']; + } + else if ($p_filedescr['type'] == 'virtual_file') { + $p_header['mtime'] = time(); + } + else { + $p_header['mtime'] = filemtime($p_filename); + } + + // ------ Look for file comment + if (isset($p_filedescr['comment'])) { + $p_header['comment_len'] = strlen($p_filedescr['comment']); + $p_header['comment'] = $p_filedescr['comment']; + } + else { + $p_header['comment_len'] = 0; + $p_header['comment'] = ''; + } + + // ----- Look for pre-add callback + if (isset($p_options[PCLZIP_CB_PRE_ADD])) { + + // ----- Generate a local information + $v_local_header = array(); + $this->privConvertHeader2FileInfo($p_header, $v_local_header); + + // ----- Call the callback + // Here I do not use call_user_func() because I need to send a reference to the + // header. +// eval('$v_result = '.$p_options[PCLZIP_CB_PRE_ADD].'(PCLZIP_CB_PRE_ADD, $v_local_header);'); + $v_result = $p_options[PCLZIP_CB_PRE_ADD](PCLZIP_CB_PRE_ADD, $v_local_header); + if ($v_result == 0) { + // ----- Change the file status + $p_header['status'] = "skipped"; + $v_result = 1; + } + + // ----- Update the informations + // Only some fields can be modified + if ($p_header['stored_filename'] != $v_local_header['stored_filename']) { + $p_header['stored_filename'] = PclZipUtilPathReduction($v_local_header['stored_filename']); + } + } + + // ----- Look for empty stored filename + if ($p_header['stored_filename'] == "") { + $p_header['status'] = "filtered"; + } + + // ----- Check the path length + if (strlen($p_header['stored_filename']) > 0xFF) { + $p_header['status'] = 'filename_too_long'; + } + + // ----- Look if no error, or file not skipped + if ($p_header['status'] == 'ok') { + + // ----- Look for a file + if ($p_filedescr['type'] == 'file') { + // ----- Look for using temporary file to zip + if ( (!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) + && (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON]) + || (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) + && ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_header['size'])) ) ) { + $v_result = $this->privAddFileUsingTempFile($p_filedescr, $p_header, $p_options); + if ($v_result < PCLZIP_ERR_NO_ERROR) { + return $v_result; + } + } + + // ----- Use "in memory" zip algo + else { + + // ----- Open the source file + if (($v_file = @fopen($p_filename, "rb")) == 0) { + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode"); + return PclZip::errorCode(); + } + + // ----- Read the file content + $v_content = @fread($v_file, $p_header['size']); + + // ----- Close the file + @fclose($v_file); + + // ----- Calculate the CRC + $p_header['crc'] = @crc32($v_content); + + // ----- Look for no compression + if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { + // ----- Set header parameters + $p_header['compressed_size'] = $p_header['size']; + $p_header['compression'] = 0; + } + + // ----- Look for normal compression + else { + // ----- Compress the content + $v_content = @gzdeflate($v_content); + + // ----- Set header parameters + $p_header['compressed_size'] = strlen($v_content); + $p_header['compression'] = 8; + } + + // ----- Call the header generation + if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { + @fclose($v_file); + return $v_result; + } + + // ----- Write the compressed (or not) content + @fwrite($this->zip_fd, $v_content, $p_header['compressed_size']); + + } + + } + + // ----- Look for a virtual file (a file from string) + else if ($p_filedescr['type'] == 'virtual_file') { + + $v_content = $p_filedescr['content']; + + // ----- Calculate the CRC + $p_header['crc'] = @crc32($v_content); + + // ----- Look for no compression + if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { + // ----- Set header parameters + $p_header['compressed_size'] = $p_header['size']; + $p_header['compression'] = 0; + } + + // ----- Look for normal compression + else { + // ----- Compress the content + $v_content = @gzdeflate($v_content); + + // ----- Set header parameters + $p_header['compressed_size'] = strlen($v_content); + $p_header['compression'] = 8; + } + + // ----- Call the header generation + if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { + @fclose($v_file); + return $v_result; + } + + // ----- Write the compressed (or not) content + @fwrite($this->zip_fd, $v_content, $p_header['compressed_size']); + } + + // ----- Look for a directory + else if ($p_filedescr['type'] == 'folder') { + // ----- Look for directory last '/' + if (@substr($p_header['stored_filename'], -1) != '/') { + $p_header['stored_filename'] .= '/'; + } + + // ----- Set the file properties + $p_header['size'] = 0; + //$p_header['external'] = 0x41FF0010; // Value for a folder : to be checked + $p_header['external'] = 0x00000010; // Value for a folder : to be checked + + // ----- Call the header generation + if (($v_result = $this->privWriteFileHeader($p_header)) != 1) + { + return $v_result; + } + } + } + + // ----- Look for post-add callback + if (isset($p_options[PCLZIP_CB_POST_ADD])) { + + // ----- Generate a local information + $v_local_header = array(); + $this->privConvertHeader2FileInfo($p_header, $v_local_header); + + // ----- Call the callback + // Here I do not use call_user_func() because I need to send a reference to the + // header. +// eval('$v_result = '.$p_options[PCLZIP_CB_POST_ADD].'(PCLZIP_CB_POST_ADD, $v_local_header);'); + $v_result = $p_options[PCLZIP_CB_POST_ADD](PCLZIP_CB_POST_ADD, $v_local_header); + if ($v_result == 0) { + // ----- Ignored + $v_result = 1; + } + + // ----- Update the informations + // Nothing can be modified + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privAddFileUsingTempFile() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privAddFileUsingTempFile($p_filedescr, &$p_header, &$p_options) + { + $v_result=PCLZIP_ERR_NO_ERROR; + + // ----- Working variable + $p_filename = $p_filedescr['filename']; + + + // ----- Open the source file + if (($v_file = @fopen($p_filename, "rb")) == 0) { + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode"); + return PclZip::errorCode(); + } + + // ----- Creates a compressed temporary file + $v_gzip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.gz'; + if (($v_file_compressed = @gzopen($v_gzip_temp_name, "wb")) == 0) { + fclose($v_file); + PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary write mode'); + return PclZip::errorCode(); + } + + // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks + $v_size = filesize($p_filename); + while ($v_size != 0) { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($v_file, $v_read_size); + //$v_binary_data = pack('a'.$v_read_size, $v_buffer); + @gzputs($v_file_compressed, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Close the file + @fclose($v_file); + @gzclose($v_file_compressed); + + // ----- Check the minimum file size + if (filesize($v_gzip_temp_name) < 18) { + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'gzip temporary file \''.$v_gzip_temp_name.'\' has invalid filesize - should be minimum 18 bytes'); + return PclZip::errorCode(); + } + + // ----- Extract the compressed attributes + if (($v_file_compressed = @fopen($v_gzip_temp_name, "rb")) == 0) { + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); + return PclZip::errorCode(); + } + + // ----- Read the gzip file header + $v_binary_data = @fread($v_file_compressed, 10); + $v_data_header = unpack('a1id1/a1id2/a1cm/a1flag/Vmtime/a1xfl/a1os', $v_binary_data); + + // ----- Check some parameters + $v_data_header['os'] = bin2hex($v_data_header['os']); + + // ----- Read the gzip file footer + @fseek($v_file_compressed, filesize($v_gzip_temp_name)-8); + $v_binary_data = @fread($v_file_compressed, 8); + $v_data_footer = unpack('Vcrc/Vcompressed_size', $v_binary_data); + + // ----- Set the attributes + $p_header['compression'] = ord($v_data_header['cm']); + //$p_header['mtime'] = $v_data_header['mtime']; + $p_header['crc'] = $v_data_footer['crc']; + $p_header['compressed_size'] = filesize($v_gzip_temp_name)-18; + + // ----- Close the file + @fclose($v_file_compressed); + + // ----- Call the header generation + if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { + return $v_result; + } + + // ----- Add the compressed data + if (($v_file_compressed = @fopen($v_gzip_temp_name, "rb")) == 0) + { + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); + return PclZip::errorCode(); + } + + // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks + fseek($v_file_compressed, 10); + $v_size = $p_header['compressed_size']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($v_file_compressed, $v_read_size); + //$v_binary_data = pack('a'.$v_read_size, $v_buffer); + @fwrite($this->zip_fd, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Close the file + @fclose($v_file_compressed); + + // ----- Unlink the temporary file + @unlink($v_gzip_temp_name); + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privCalculateStoredFilename() + // Description : + // Based on file descriptor properties and global options, this method + // calculate the filename that will be stored in the archive. + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privCalculateStoredFilename(&$p_filedescr, &$p_options) + { + $v_result=1; + + // ----- Working variables + $p_filename = $p_filedescr['filename']; + if (isset($p_options[PCLZIP_OPT_ADD_PATH])) { + $p_add_dir = $p_options[PCLZIP_OPT_ADD_PATH]; + } + else { + $p_add_dir = ''; + } + if (isset($p_options[PCLZIP_OPT_REMOVE_PATH])) { + $p_remove_dir = $p_options[PCLZIP_OPT_REMOVE_PATH]; + } + else { + $p_remove_dir = ''; + } + if (isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { + $p_remove_all_dir = $p_options[PCLZIP_OPT_REMOVE_ALL_PATH]; + } + else { + $p_remove_all_dir = 0; + } + + + // ----- Look for full name change + if (isset($p_filedescr['new_full_name'])) { + // ----- Remove drive letter if any + $v_stored_filename = PclZipUtilTranslateWinPath($p_filedescr['new_full_name']); + } + + // ----- Look for path and/or short name change + else { + + // ----- Look for short name change + // Its when we cahnge just the filename but not the path + if (isset($p_filedescr['new_short_name'])) { + $v_path_info = pathinfo($p_filename); + $v_dir = ''; + if ($v_path_info['dirname'] != '') { + $v_dir = $v_path_info['dirname'].'/'; + } + $v_stored_filename = $v_dir.$p_filedescr['new_short_name']; + } + else { + // ----- Calculate the stored filename + $v_stored_filename = $p_filename; + } + + // ----- Look for all path to remove + if ($p_remove_all_dir) { + $v_stored_filename = basename($p_filename); + } + // ----- Look for partial path remove + else if ($p_remove_dir != "") { + if (substr($p_remove_dir, -1) != '/') + $p_remove_dir .= "/"; + + if ( (substr($p_filename, 0, 2) == "./") + || (substr($p_remove_dir, 0, 2) == "./")) { + + if ( (substr($p_filename, 0, 2) == "./") + && (substr($p_remove_dir, 0, 2) != "./")) { + $p_remove_dir = "./".$p_remove_dir; + } + if ( (substr($p_filename, 0, 2) != "./") + && (substr($p_remove_dir, 0, 2) == "./")) { + $p_remove_dir = substr($p_remove_dir, 2); + } + } + + $v_compare = PclZipUtilPathInclusion($p_remove_dir, + $v_stored_filename); + if ($v_compare > 0) { + if ($v_compare == 2) { + $v_stored_filename = ""; + } + else { + $v_stored_filename = substr($v_stored_filename, + strlen($p_remove_dir)); + } + } + } + + // ----- Remove drive letter if any + $v_stored_filename = PclZipUtilTranslateWinPath($v_stored_filename); + + // ----- Look for path to add + if ($p_add_dir != "") { + if (substr($p_add_dir, -1) == "/") + $v_stored_filename = $p_add_dir.$v_stored_filename; + else + $v_stored_filename = $p_add_dir."/".$v_stored_filename; + } + } + + // ----- Filename (reduce the path of stored name) + $v_stored_filename = PclZipUtilPathReduction($v_stored_filename); + $p_filedescr['stored_filename'] = $v_stored_filename; + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privWriteFileHeader() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privWriteFileHeader(&$p_header) + { + $v_result=1; + + // ----- Store the offset position of the file + $p_header['offset'] = ftell($this->zip_fd); + + // ----- Transform UNIX mtime to DOS format mdate/mtime + $v_date = getdate($p_header['mtime']); + $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; + $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; + + // ----- Packed data + $v_binary_data = pack("VvvvvvVVVvv", 0x04034b50, + $p_header['version_extracted'], $p_header['flag'], + $p_header['compression'], $v_mtime, $v_mdate, + $p_header['crc'], $p_header['compressed_size'], + $p_header['size'], + strlen($p_header['stored_filename']), + $p_header['extra_len']); + + // ----- Write the first 148 bytes of the header in the archive + fputs($this->zip_fd, $v_binary_data, 30); + + // ----- Write the variable fields + if (strlen($p_header['stored_filename']) != 0) + { + fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); + } + if ($p_header['extra_len'] != 0) + { + fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privWriteCentralFileHeader() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privWriteCentralFileHeader(&$p_header) + { + $v_result=1; + + // TBC + //for(reset($p_header); $key = key($p_header); next($p_header)) { + //} + + // ----- Transform UNIX mtime to DOS format mdate/mtime + $v_date = getdate($p_header['mtime']); + $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; + $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; + + + // ----- Packed data + $v_binary_data = pack("VvvvvvvVVVvvvvvVV", 0x02014b50, + $p_header['version'], $p_header['version_extracted'], + $p_header['flag'], $p_header['compression'], + $v_mtime, $v_mdate, $p_header['crc'], + $p_header['compressed_size'], $p_header['size'], + strlen($p_header['stored_filename']), + $p_header['extra_len'], $p_header['comment_len'], + $p_header['disk'], $p_header['internal'], + $p_header['external'], $p_header['offset']); + + // ----- Write the 42 bytes of the header in the zip file + fputs($this->zip_fd, $v_binary_data, 46); + + // ----- Write the variable fields + if (strlen($p_header['stored_filename']) != 0) + { + fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); + } + if ($p_header['extra_len'] != 0) + { + fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']); + } + if ($p_header['comment_len'] != 0) + { + fputs($this->zip_fd, $p_header['comment'], $p_header['comment_len']); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privWriteCentralHeader() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privWriteCentralHeader($p_nb_entries, $p_size, $p_offset, $p_comment) + { + $v_result=1; + + // ----- Packed data + $v_binary_data = pack("VvvvvVVv", 0x06054b50, 0, 0, $p_nb_entries, + $p_nb_entries, $p_size, + $p_offset, strlen($p_comment)); + + // ----- Write the 22 bytes of the header in the zip file + fputs($this->zip_fd, $v_binary_data, 22); + + // ----- Write the variable fields + if (strlen($p_comment) != 0) + { + fputs($this->zip_fd, $p_comment, strlen($p_comment)); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privList() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privList(&$p_list) + { + $v_result=1; + + // ----- Magic quotes trick + $this->privDisableMagicQuotes(); + + // ----- Open the zip file + if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) + { + // ----- Magic quotes trick + $this->privSwapBackMagicQuotes(); + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read the central directory informations + $v_central_dir = array(); + if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) + { + $this->privSwapBackMagicQuotes(); + return $v_result; + } + + // ----- Go to beginning of Central Dir + @rewind($this->zip_fd); + if (@fseek($this->zip_fd, $v_central_dir['offset'])) + { + $this->privSwapBackMagicQuotes(); + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read each entry + for ($i=0; $i<$v_central_dir['entries']; $i++) + { + // ----- Read the file header + if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) + { + $this->privSwapBackMagicQuotes(); + return $v_result; + } + $v_header['index'] = $i; + + // ----- Get the only interesting attributes + $this->privConvertHeader2FileInfo($v_header, $p_list[$i]); + unset($v_header); + } + + // ----- Close the zip file + $this->privCloseFd(); + + // ----- Magic quotes trick + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privConvertHeader2FileInfo() + // Description : + // This function takes the file informations from the central directory + // entries and extract the interesting parameters that will be given back. + // The resulting file infos are set in the array $p_info + // $p_info['filename'] : Filename with full path. Given by user (add), + // extracted in the filesystem (extract). + // $p_info['stored_filename'] : Stored filename in the archive. + // $p_info['size'] = Size of the file. + // $p_info['compressed_size'] = Compressed size of the file. + // $p_info['mtime'] = Last modification date of the file. + // $p_info['comment'] = Comment associated with the file. + // $p_info['folder'] = true/false : indicates if the entry is a folder or not. + // $p_info['status'] = status of the action on the file. + // $p_info['crc'] = CRC of the file content. + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privConvertHeader2FileInfo($p_header, &$p_info) + { + $v_result=1; + + // ----- Get the interesting attributes + $v_temp_path = PclZipUtilPathReduction($p_header['filename']); + $p_info['filename'] = $v_temp_path; + $v_temp_path = PclZipUtilPathReduction($p_header['stored_filename']); + $p_info['stored_filename'] = $v_temp_path; + $p_info['size'] = $p_header['size']; + $p_info['compressed_size'] = $p_header['compressed_size']; + $p_info['mtime'] = $p_header['mtime']; + $p_info['comment'] = $p_header['comment']; + $p_info['folder'] = (($p_header['external']&0x00000010)==0x00000010); + $p_info['index'] = $p_header['index']; + $p_info['status'] = $p_header['status']; + $p_info['crc'] = $p_header['crc']; + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privExtractByRule() + // Description : + // Extract a file or directory depending of rules (by index, by name, ...) + // Parameters : + // $p_file_list : An array where will be placed the properties of each + // extracted file + // $p_path : Path to add while writing the extracted files + // $p_remove_path : Path to remove (from the file memorized path) while writing the + // extracted files. If the path does not match the file path, + // the file is extracted with its memorized path. + // $p_remove_path does not apply to 'list' mode. + // $p_path and $p_remove_path are commulative. + // Return Values : + // 1 on success,0 or less on error (see error code list) + // -------------------------------------------------------------------------------- + function privExtractByRule(&$p_file_list, $p_path, $p_remove_path, $p_remove_all_path, &$p_options) + { + $v_result=1; + + // ----- Magic quotes trick + $this->privDisableMagicQuotes(); + + // ----- Check the path + if ( ($p_path == "") + || ( (substr($p_path, 0, 1) != "/") + && (substr($p_path, 0, 3) != "../") + && (substr($p_path,1,2)!=":/"))) + $p_path = "./".$p_path; + + // ----- Reduce the path last (and duplicated) '/' + if (($p_path != "./") && ($p_path != "/")) + { + // ----- Look for the path end '/' + while (substr($p_path, -1) == "/") + { + $p_path = substr($p_path, 0, strlen($p_path)-1); + } + } + + // ----- Look for path to remove format (should end by /) + if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/')) + { + $p_remove_path .= '/'; + } + $p_remove_path_size = strlen($p_remove_path); + + // ----- Open the zip file + if (($v_result = $this->privOpenFd('rb')) != 1) + { + $this->privSwapBackMagicQuotes(); + return $v_result; + } + + // ----- Read the central directory informations + $v_central_dir = array(); + if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) + { + // ----- Close the zip file + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + + return $v_result; + } + + // ----- Start at beginning of Central Dir + $v_pos_entry = $v_central_dir['offset']; + + // ----- Read each entry + $j_start = 0; + for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) + { + + // ----- Read next Central dir entry + @rewind($this->zip_fd); + if (@fseek($this->zip_fd, $v_pos_entry)) + { + // ----- Close the zip file + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read the file header + $v_header = array(); + if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) + { + // ----- Close the zip file + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + + return $v_result; + } + + // ----- Store the index + $v_header['index'] = $i; + + // ----- Store the file position + $v_pos_entry = ftell($this->zip_fd); + + // ----- Look for the specific extract rules + $v_extract = false; + + // ----- Look for extract by name rule + if ( (isset($p_options[PCLZIP_OPT_BY_NAME])) + && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) { + + // ----- Look if the filename is in the list + for ($j=0; ($j<sizeof($p_options[PCLZIP_OPT_BY_NAME])) && (!$v_extract); $j++) { + + // ----- Look for a directory + if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") { + + // ----- Look if the directory is in the filename path + if ( (strlen($v_header['stored_filename']) > strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) + && (substr($v_header['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) { + $v_extract = true; + } + } + // ----- Look for a filename + elseif ($v_header['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) { + $v_extract = true; + } + } + } + + // ----- Look for extract by ereg rule + // ereg() is deprecated with PHP 5.3 + /* + else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) + && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { + + if (ereg($p_options[PCLZIP_OPT_BY_EREG], $v_header['stored_filename'])) { + $v_extract = true; + } + } + */ + + // ----- Look for extract by preg rule + else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) + && ($p_options[PCLZIP_OPT_BY_PREG] != "")) { + + if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header['stored_filename'])) { + $v_extract = true; + } + } + + // ----- Look for extract by index rule + else if ( (isset($p_options[PCLZIP_OPT_BY_INDEX])) + && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { + + // ----- Look if the index is in the list + for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_extract); $j++) { + + if (($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) { + $v_extract = true; + } + if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) { + $j_start = $j+1; + } + + if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) { + break; + } + } + } + + // ----- Look for no rule, which means extract all the archive + else { + $v_extract = true; + } + + // ----- Check compression method + if ( ($v_extract) + && ( ($v_header['compression'] != 8) + && ($v_header['compression'] != 0))) { + $v_header['status'] = 'unsupported_compression'; + + // ----- Look for PCLZIP_OPT_STOP_ON_ERROR + if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) + && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { + + $this->privSwapBackMagicQuotes(); + + PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_COMPRESSION, + "Filename '".$v_header['stored_filename']."' is " + ."compressed by an unsupported compression " + ."method (".$v_header['compression'].") "); + + return PclZip::errorCode(); + } + } + + // ----- Check encrypted files + if (($v_extract) && (($v_header['flag'] & 1) == 1)) { + $v_header['status'] = 'unsupported_encryption'; + + // ----- Look for PCLZIP_OPT_STOP_ON_ERROR + if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) + && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { + + $this->privSwapBackMagicQuotes(); + + PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_ENCRYPTION, + "Unsupported encryption for " + ." filename '".$v_header['stored_filename'] + ."'"); + + return PclZip::errorCode(); + } + } + + // ----- Look for real extraction + if (($v_extract) && ($v_header['status'] != 'ok')) { + $v_result = $this->privConvertHeader2FileInfo($v_header, + $p_file_list[$v_nb_extracted++]); + if ($v_result != 1) { + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + return $v_result; + } + + $v_extract = false; + } + + // ----- Look for real extraction + if ($v_extract) + { + + // ----- Go to the file position + @rewind($this->zip_fd); + if (@fseek($this->zip_fd, $v_header['offset'])) + { + // ----- Close the zip file + $this->privCloseFd(); + + $this->privSwapBackMagicQuotes(); + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Look for extraction as string + if ($p_options[PCLZIP_OPT_EXTRACT_AS_STRING]) { + + $v_string = ''; + + // ----- Extracting the file + $v_result1 = $this->privExtractFileAsString($v_header, $v_string, $p_options); + if ($v_result1 < 1) { + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + return $v_result1; + } + + // ----- Get the only interesting attributes + if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1) + { + // ----- Close the zip file + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + + return $v_result; + } + + // ----- Set the file content + $p_file_list[$v_nb_extracted]['content'] = $v_string; + + // ----- Next extracted file + $v_nb_extracted++; + + // ----- Look for user callback abort + if ($v_result1 == 2) { + break; + } + } + // ----- Look for extraction in standard output + elseif ( (isset($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) + && ($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) { + // ----- Extracting the file in standard output + $v_result1 = $this->privExtractFileInOutput($v_header, $p_options); + if ($v_result1 < 1) { + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + return $v_result1; + } + + // ----- Get the only interesting attributes + if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + return $v_result; + } + + // ----- Look for user callback abort + if ($v_result1 == 2) { + break; + } + } + // ----- Look for normal extraction + else { + // ----- Extracting the file + $v_result1 = $this->privExtractFile($v_header, + $p_path, $p_remove_path, + $p_remove_all_path, + $p_options); + if ($v_result1 < 1) { + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + return $v_result1; + } + + // ----- Get the only interesting attributes + if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) + { + // ----- Close the zip file + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + + return $v_result; + } + + // ----- Look for user callback abort + if ($v_result1 == 2) { + break; + } + } + } + } + + // ----- Close the zip file + $this->privCloseFd(); + $this->privSwapBackMagicQuotes(); + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privExtractFile() + // Description : + // Parameters : + // Return Values : + // + // 1 : ... ? + // PCLZIP_ERR_USER_ABORTED(2) : User ask for extraction stop in callback + // -------------------------------------------------------------------------------- + function privExtractFile(&$p_entry, $p_path, $p_remove_path, $p_remove_all_path, &$p_options) + { + $v_result=1; + + // ----- Read the file header + if (($v_result = $this->privReadFileHeader($v_header)) != 1) + { + // ----- Return + return $v_result; + } + + + // ----- Check that the file header is coherent with $p_entry info + if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { + // TBC + } + + // ----- Look for all path to remove + if ($p_remove_all_path == true) { + // ----- Look for folder entry that not need to be extracted + if (($p_entry['external']&0x00000010)==0x00000010) { + + $p_entry['status'] = "filtered"; + + return $v_result; + } + + // ----- Get the basename of the path + $p_entry['filename'] = basename($p_entry['filename']); + } + + // ----- Look for path to remove + else if ($p_remove_path != "") + { + if (PclZipUtilPathInclusion($p_remove_path, $p_entry['filename']) == 2) + { + + // ----- Change the file status + $p_entry['status'] = "filtered"; + + // ----- Return + return $v_result; + } + + $p_remove_path_size = strlen($p_remove_path); + if (substr($p_entry['filename'], 0, $p_remove_path_size) == $p_remove_path) + { + + // ----- Remove the path + $p_entry['filename'] = substr($p_entry['filename'], $p_remove_path_size); + + } + } + + // ----- Add the path + if ($p_path != '') { + $p_entry['filename'] = $p_path."/".$p_entry['filename']; + } + + // ----- Check a base_dir_restriction + if (isset($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION])) { + $v_inclusion + = PclZipUtilPathInclusion($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION], + $p_entry['filename']); + if ($v_inclusion == 0) { + + PclZip::privErrorLog(PCLZIP_ERR_DIRECTORY_RESTRICTION, + "Filename '".$p_entry['filename']."' is " + ."outside PCLZIP_OPT_EXTRACT_DIR_RESTRICTION"); + + return PclZip::errorCode(); + } + } + + // ----- Look for pre-extract callback + if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { + + // ----- Generate a local information + $v_local_header = array(); + $this->privConvertHeader2FileInfo($p_entry, $v_local_header); + + // ----- Call the callback + // Here I do not use call_user_func() because I need to send a reference to the + // header. +// eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); + $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); + if ($v_result == 0) { + // ----- Change the file status + $p_entry['status'] = "skipped"; + $v_result = 1; + } + + // ----- Look for abort result + if ($v_result == 2) { + // ----- This status is internal and will be changed in 'skipped' + $p_entry['status'] = "aborted"; + $v_result = PCLZIP_ERR_USER_ABORTED; + } + + // ----- Update the informations + // Only some fields can be modified + $p_entry['filename'] = $v_local_header['filename']; + } + + + // ----- Look if extraction should be done + if ($p_entry['status'] == 'ok') { + + // ----- Look for specific actions while the file exist + if (file_exists($p_entry['filename'])) + { + + // ----- Look if file is a directory + if (is_dir($p_entry['filename'])) + { + + // ----- Change the file status + $p_entry['status'] = "already_a_directory"; + + // ----- Look for PCLZIP_OPT_STOP_ON_ERROR + // For historical reason first PclZip implementation does not stop + // when this kind of error occurs. + if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) + && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { + + PclZip::privErrorLog(PCLZIP_ERR_ALREADY_A_DIRECTORY, + "Filename '".$p_entry['filename']."' is " + ."already used by an existing directory"); + + return PclZip::errorCode(); + } + } + // ----- Look if file is write protected + else if (!is_writeable($p_entry['filename'])) + { + + // ----- Change the file status + $p_entry['status'] = "write_protected"; + + // ----- Look for PCLZIP_OPT_STOP_ON_ERROR + // For historical reason first PclZip implementation does not stop + // when this kind of error occurs. + if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) + && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { + + PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, + "Filename '".$p_entry['filename']."' exists " + ."and is write protected"); + + return PclZip::errorCode(); + } + } + + // ----- Look if the extracted file is older + else if (filemtime($p_entry['filename']) > $p_entry['mtime']) + { + // ----- Change the file status + if ( (isset($p_options[PCLZIP_OPT_REPLACE_NEWER])) + && ($p_options[PCLZIP_OPT_REPLACE_NEWER]===true)) { + } + else { + $p_entry['status'] = "newer_exist"; + + // ----- Look for PCLZIP_OPT_STOP_ON_ERROR + // For historical reason first PclZip implementation does not stop + // when this kind of error occurs. + if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) + && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { + + PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, + "Newer version of '".$p_entry['filename']."' exists " + ."and option PCLZIP_OPT_REPLACE_NEWER is not selected"); + + return PclZip::errorCode(); + } + } + } + else { + } + } + + // ----- Check the directory availability and create it if necessary + else { + if ((($p_entry['external']&0x00000010)==0x00000010) || (substr($p_entry['filename'], -1) == '/')) + $v_dir_to_check = $p_entry['filename']; + else if (!strstr($p_entry['filename'], "/")) + $v_dir_to_check = ""; + else + $v_dir_to_check = dirname($p_entry['filename']); + + if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external']&0x00000010)==0x00000010))) != 1) { + + // ----- Change the file status + $p_entry['status'] = "path_creation_fail"; + + // ----- Return + //return $v_result; + $v_result = 1; + } + } + } + + // ----- Look if extraction should be done + if ($p_entry['status'] == 'ok') { + + // ----- Do the extraction (if not a folder) + if (!(($p_entry['external']&0x00000010)==0x00000010)) + { + // ----- Look for not compressed file + if ($p_entry['compression'] == 0) { + + // ----- Opening destination file + if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) + { + + // ----- Change the file status + $p_entry['status'] = "write_error"; + + // ----- Return + return $v_result; + } + + + // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks + $v_size = $p_entry['compressed_size']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($this->zip_fd, $v_read_size); + /* Try to speed up the code + $v_binary_data = pack('a'.$v_read_size, $v_buffer); + @fwrite($v_dest_file, $v_binary_data, $v_read_size); + */ + @fwrite($v_dest_file, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Closing the destination file + fclose($v_dest_file); + + // ----- Change the file mtime + touch($p_entry['filename'], $p_entry['mtime']); + + + } + else { + // ----- TBC + // Need to be finished + if (($p_entry['flag'] & 1) == 1) { + PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_ENCRYPTION, 'File \''.$p_entry['filename'].'\' is encrypted. Encrypted files are not supported.'); + return PclZip::errorCode(); + } + + + // ----- Look for using temporary file to unzip + if ( (!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) + && (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON]) + || (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) + && ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_entry['size'])) ) ) { + $v_result = $this->privExtractFileUsingTempFile($p_entry, $p_options); + if ($v_result < PCLZIP_ERR_NO_ERROR) { + return $v_result; + } + } + + // ----- Look for extract in memory + else { + + + // ----- Read the compressed file in a buffer (one shot) + $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); + + // ----- Decompress the file + $v_file_content = @gzinflate($v_buffer); + unset($v_buffer); + if ($v_file_content === FALSE) { + + // ----- Change the file status + // TBC + $p_entry['status'] = "error"; + + return $v_result; + } + + // ----- Opening destination file + if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { + + // ----- Change the file status + $p_entry['status'] = "write_error"; + + return $v_result; + } + + // ----- Write the uncompressed data + @fwrite($v_dest_file, $v_file_content, $p_entry['size']); + unset($v_file_content); + + // ----- Closing the destination file + @fclose($v_dest_file); + + } + + // ----- Change the file mtime + @touch($p_entry['filename'], $p_entry['mtime']); + } + + // ----- Look for chmod option + if (isset($p_options[PCLZIP_OPT_SET_CHMOD])) { + + // ----- Change the mode of the file + @chmod($p_entry['filename'], $p_options[PCLZIP_OPT_SET_CHMOD]); + } + + } + } + + // ----- Change abort status + if ($p_entry['status'] == "aborted") { + $p_entry['status'] = "skipped"; + } + + // ----- Look for post-extract callback + elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { + + // ----- Generate a local information + $v_local_header = array(); + $this->privConvertHeader2FileInfo($p_entry, $v_local_header); + + // ----- Call the callback + // Here I do not use call_user_func() because I need to send a reference to the + // header. +// eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); + $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); + + // ----- Look for abort result + if ($v_result == 2) { + $v_result = PCLZIP_ERR_USER_ABORTED; + } + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privExtractFileUsingTempFile() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privExtractFileUsingTempFile(&$p_entry, &$p_options) + { + $v_result=1; + + // ----- Creates a temporary file + $v_gzip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.gz'; + if (($v_dest_file = @fopen($v_gzip_temp_name, "wb")) == 0) { + fclose($v_file); + PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary write mode'); + return PclZip::errorCode(); + } + + + // ----- Write gz file format header + $v_binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($p_entry['compression']), Chr(0x00), time(), Chr(0x00), Chr(3)); + @fwrite($v_dest_file, $v_binary_data, 10); + + // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks + $v_size = $p_entry['compressed_size']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($this->zip_fd, $v_read_size); + //$v_binary_data = pack('a'.$v_read_size, $v_buffer); + @fwrite($v_dest_file, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Write gz file format footer + $v_binary_data = pack('VV', $p_entry['crc'], $p_entry['size']); + @fwrite($v_dest_file, $v_binary_data, 8); + + // ----- Close the temporary file + @fclose($v_dest_file); + + // ----- Opening destination file + if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { + $p_entry['status'] = "write_error"; + return $v_result; + } + + // ----- Open the temporary gz file + if (($v_src_file = @gzopen($v_gzip_temp_name, 'rb')) == 0) { + @fclose($v_dest_file); + $p_entry['status'] = "read_error"; + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); + return PclZip::errorCode(); + } + + + // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks + $v_size = $p_entry['size']; + while ($v_size != 0) { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @gzread($v_src_file, $v_read_size); + //$v_binary_data = pack('a'.$v_read_size, $v_buffer); + @fwrite($v_dest_file, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + @fclose($v_dest_file); + @gzclose($v_src_file); + + // ----- Delete the temporary file + @unlink($v_gzip_temp_name); + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privExtractFileInOutput() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privExtractFileInOutput(&$p_entry, &$p_options) + { + $v_result=1; + + // ----- Read the file header + if (($v_result = $this->privReadFileHeader($v_header)) != 1) { + return $v_result; + } + + + // ----- Check that the file header is coherent with $p_entry info + if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { + // TBC + } + + // ----- Look for pre-extract callback + if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { + + // ----- Generate a local information + $v_local_header = array(); + $this->privConvertHeader2FileInfo($p_entry, $v_local_header); + + // ----- Call the callback + // Here I do not use call_user_func() because I need to send a reference to the + // header. +// eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); + $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); + if ($v_result == 0) { + // ----- Change the file status + $p_entry['status'] = "skipped"; + $v_result = 1; + } + + // ----- Look for abort result + if ($v_result == 2) { + // ----- This status is internal and will be changed in 'skipped' + $p_entry['status'] = "aborted"; + $v_result = PCLZIP_ERR_USER_ABORTED; + } + + // ----- Update the informations + // Only some fields can be modified + $p_entry['filename'] = $v_local_header['filename']; + } + + // ----- Trace + + // ----- Look if extraction should be done + if ($p_entry['status'] == 'ok') { + + // ----- Do the extraction (if not a folder) + if (!(($p_entry['external']&0x00000010)==0x00000010)) { + // ----- Look for not compressed file + if ($p_entry['compressed_size'] == $p_entry['size']) { + + // ----- Read the file in a buffer (one shot) + $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); + + // ----- Send the file to the output + echo $v_buffer; + unset($v_buffer); + } + else { + + // ----- Read the compressed file in a buffer (one shot) + $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); + + // ----- Decompress the file + $v_file_content = gzinflate($v_buffer); + unset($v_buffer); + + // ----- Send the file to the output + echo $v_file_content; + unset($v_file_content); + } + } + } + + // ----- Change abort status + if ($p_entry['status'] == "aborted") { + $p_entry['status'] = "skipped"; + } + + // ----- Look for post-extract callback + elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { + + // ----- Generate a local information + $v_local_header = array(); + $this->privConvertHeader2FileInfo($p_entry, $v_local_header); + + // ----- Call the callback + // Here I do not use call_user_func() because I need to send a reference to the + // header. +// eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); + $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); + + // ----- Look for abort result + if ($v_result == 2) { + $v_result = PCLZIP_ERR_USER_ABORTED; + } + } + + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privExtractFileAsString() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privExtractFileAsString(&$p_entry, &$p_string, &$p_options) + { + $v_result=1; + + // ----- Read the file header + $v_header = array(); + if (($v_result = $this->privReadFileHeader($v_header)) != 1) + { + // ----- Return + return $v_result; + } + + + // ----- Check that the file header is coherent with $p_entry info + if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { + // TBC + } + + // ----- Look for pre-extract callback + if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { + + // ----- Generate a local information + $v_local_header = array(); + $this->privConvertHeader2FileInfo($p_entry, $v_local_header); + + // ----- Call the callback + // Here I do not use call_user_func() because I need to send a reference to the + // header. +// eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); + $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); + if ($v_result == 0) { + // ----- Change the file status + $p_entry['status'] = "skipped"; + $v_result = 1; + } + + // ----- Look for abort result + if ($v_result == 2) { + // ----- This status is internal and will be changed in 'skipped' + $p_entry['status'] = "aborted"; + $v_result = PCLZIP_ERR_USER_ABORTED; + } + + // ----- Update the informations + // Only some fields can be modified + $p_entry['filename'] = $v_local_header['filename']; + } + + + // ----- Look if extraction should be done + if ($p_entry['status'] == 'ok') { + + // ----- Do the extraction (if not a folder) + if (!(($p_entry['external']&0x00000010)==0x00000010)) { + // ----- Look for not compressed file + // if ($p_entry['compressed_size'] == $p_entry['size']) + if ($p_entry['compression'] == 0) { + + // ----- Reading the file + $p_string = @fread($this->zip_fd, $p_entry['compressed_size']); + } + else { + + // ----- Reading the file + $v_data = @fread($this->zip_fd, $p_entry['compressed_size']); + + // ----- Decompress the file + if (($p_string = @gzinflate($v_data)) === FALSE) { + // TBC + } + } + + // ----- Trace + } + else { + // TBC : error : can not extract a folder in a string + } + + } + + // ----- Change abort status + if ($p_entry['status'] == "aborted") { + $p_entry['status'] = "skipped"; + } + + // ----- Look for post-extract callback + elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { + + // ----- Generate a local information + $v_local_header = array(); + $this->privConvertHeader2FileInfo($p_entry, $v_local_header); + + // ----- Swap the content to header + $v_local_header['content'] = $p_string; + $p_string = ''; + + // ----- Call the callback + // Here I do not use call_user_func() because I need to send a reference to the + // header. +// eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); + $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); + + // ----- Swap back the content to header + $p_string = $v_local_header['content']; + unset($v_local_header['content']); + + // ----- Look for abort result + if ($v_result == 2) { + $v_result = PCLZIP_ERR_USER_ABORTED; + } + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privReadFileHeader() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privReadFileHeader(&$p_header) + { + $v_result=1; + + // ----- Read the 4 bytes signature + $v_binary_data = @fread($this->zip_fd, 4); + $v_data = unpack('Vid', $v_binary_data); + + // ----- Check signature + if ($v_data['id'] != 0x04034b50) + { + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read the first 42 bytes of the header + $v_binary_data = fread($this->zip_fd, 26); + + // ----- Look for invalid block size + if (strlen($v_binary_data) != 26) + { + $p_header['filename'] = ""; + $p_header['status'] = "invalid_header"; + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data)); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Extract the values + $v_data = unpack('vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $v_binary_data); + + // ----- Get filename + $p_header['filename'] = fread($this->zip_fd, $v_data['filename_len']); + + // ----- Get extra_fields + if ($v_data['extra_len'] != 0) { + $p_header['extra'] = fread($this->zip_fd, $v_data['extra_len']); + } + else { + $p_header['extra'] = ''; + } + + // ----- Extract properties + $p_header['version_extracted'] = $v_data['version']; + $p_header['compression'] = $v_data['compression']; + $p_header['size'] = $v_data['size']; + $p_header['compressed_size'] = $v_data['compressed_size']; + $p_header['crc'] = $v_data['crc']; + $p_header['flag'] = $v_data['flag']; + $p_header['filename_len'] = $v_data['filename_len']; + + // ----- Recuperate date in UNIX format + $p_header['mdate'] = $v_data['mdate']; + $p_header['mtime'] = $v_data['mtime']; + if ($p_header['mdate'] && $p_header['mtime']) + { + // ----- Extract time + $v_hour = ($p_header['mtime'] & 0xF800) >> 11; + $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; + $v_seconde = ($p_header['mtime'] & 0x001F)*2; + + // ----- Extract date + $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; + $v_month = ($p_header['mdate'] & 0x01E0) >> 5; + $v_day = $p_header['mdate'] & 0x001F; + + // ----- Get UNIX date format + $p_header['mtime'] = @mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); + + } + else + { + $p_header['mtime'] = time(); + } + + // TBC + //for(reset($v_data); $key = key($v_data); next($v_data)) { + //} + + // ----- Set the stored filename + $p_header['stored_filename'] = $p_header['filename']; + + // ----- Set the status field + $p_header['status'] = "ok"; + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privReadCentralFileHeader() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privReadCentralFileHeader(&$p_header) + { + $v_result=1; + + // ----- Read the 4 bytes signature + $v_binary_data = @fread($this->zip_fd, 4); + $v_data = unpack('Vid', $v_binary_data); + + // ----- Check signature + if ($v_data['id'] != 0x02014b50) + { + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read the first 42 bytes of the header + $v_binary_data = fread($this->zip_fd, 42); + + // ----- Look for invalid block size + if (strlen($v_binary_data) != 42) + { + $p_header['filename'] = ""; + $p_header['status'] = "invalid_header"; + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data)); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Extract the values + $p_header = unpack('vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $v_binary_data); + + // ----- Get filename + if ($p_header['filename_len'] != 0) + $p_header['filename'] = fread($this->zip_fd, $p_header['filename_len']); + else + $p_header['filename'] = ''; + + // ----- Get extra + if ($p_header['extra_len'] != 0) + $p_header['extra'] = fread($this->zip_fd, $p_header['extra_len']); + else + $p_header['extra'] = ''; + + // ----- Get comment + if ($p_header['comment_len'] != 0) + $p_header['comment'] = fread($this->zip_fd, $p_header['comment_len']); + else + $p_header['comment'] = ''; + + // ----- Extract properties + + // ----- Recuperate date in UNIX format + //if ($p_header['mdate'] && $p_header['mtime']) + // TBC : bug : this was ignoring time with 0/0/0 + if (1) + { + // ----- Extract time + $v_hour = ($p_header['mtime'] & 0xF800) >> 11; + $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; + $v_seconde = ($p_header['mtime'] & 0x001F)*2; + + // ----- Extract date + $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; + $v_month = ($p_header['mdate'] & 0x01E0) >> 5; + $v_day = $p_header['mdate'] & 0x001F; + + // ----- Get UNIX date format + $p_header['mtime'] = @mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); + + } + else + { + $p_header['mtime'] = time(); + } + + // ----- Set the stored filename + $p_header['stored_filename'] = $p_header['filename']; + + // ----- Set default status to ok + $p_header['status'] = 'ok'; + + // ----- Look if it is a directory + if (substr($p_header['filename'], -1) == '/') { + //$p_header['external'] = 0x41FF0010; + $p_header['external'] = 0x00000010; + } + + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privCheckFileHeaders() + // Description : + // Parameters : + // Return Values : + // 1 on success, + // 0 on error; + // -------------------------------------------------------------------------------- + function privCheckFileHeaders(&$p_local_header, &$p_central_header) + { + $v_result=1; + + // ----- Check the static values + // TBC + if ($p_local_header['filename'] != $p_central_header['filename']) { + } + if ($p_local_header['version_extracted'] != $p_central_header['version_extracted']) { + } + if ($p_local_header['flag'] != $p_central_header['flag']) { + } + if ($p_local_header['compression'] != $p_central_header['compression']) { + } + if ($p_local_header['mtime'] != $p_central_header['mtime']) { + } + if ($p_local_header['filename_len'] != $p_central_header['filename_len']) { + } + + // ----- Look for flag bit 3 + if (($p_local_header['flag'] & 8) == 8) { + $p_local_header['size'] = $p_central_header['size']; + $p_local_header['compressed_size'] = $p_central_header['compressed_size']; + $p_local_header['crc'] = $p_central_header['crc']; + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privReadEndCentralDir() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privReadEndCentralDir(&$p_central_dir) + { + $v_result=1; + + // ----- Go to the end of the zip file + $v_size = filesize($this->zipname); + @fseek($this->zip_fd, $v_size); + if (@ftell($this->zip_fd) != $v_size) + { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to go to the end of the archive \''.$this->zipname.'\''); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- First try : look if this is an archive with no commentaries (most of the time) + // in this case the end of central dir is at 22 bytes of the file end + $v_found = 0; + if ($v_size > 26) { + @fseek($this->zip_fd, $v_size-22); + if (($v_pos = @ftell($this->zip_fd)) != ($v_size-22)) + { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\''); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read for bytes + $v_binary_data = @fread($this->zip_fd, 4); + $v_data = @unpack('Vid', $v_binary_data); + + // ----- Check signature + if ($v_data['id'] == 0x06054b50) { + $v_found = 1; + } + + $v_pos = ftell($this->zip_fd); + } + + // ----- Go back to the maximum possible size of the Central Dir End Record + if (!$v_found) { + $v_maximum_size = 65557; // 0xFFFF + 22; + if ($v_maximum_size > $v_size) + $v_maximum_size = $v_size; + @fseek($this->zip_fd, $v_size-$v_maximum_size); + if (@ftell($this->zip_fd) != ($v_size-$v_maximum_size)) + { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\''); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read byte per byte in order to find the signature + $v_pos = ftell($this->zip_fd); + $v_bytes = 0x00000000; + while ($v_pos < $v_size) + { + // ----- Read a byte + $v_byte = @fread($this->zip_fd, 1); + + // ----- Add the byte + //$v_bytes = ($v_bytes << 8) | Ord($v_byte); + // Note we mask the old value down such that once shifted we can never end up with more than a 32bit number + // Otherwise on systems where we have 64bit integers the check below for the magic number will fail. + $v_bytes = ( ($v_bytes & 0xFFFFFF) << 8) | Ord($v_byte); + + // ----- Compare the bytes + if ($v_bytes == 0x504b0506) + { + $v_pos++; + break; + } + + $v_pos++; + } + + // ----- Look if not found end of central dir + if ($v_pos == $v_size) + { + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Unable to find End of Central Dir Record signature"); + + // ----- Return + return PclZip::errorCode(); + } + } + + // ----- Read the first 18 bytes of the header + $v_binary_data = fread($this->zip_fd, 18); + + // ----- Look for invalid block size + if (strlen($v_binary_data) != 18) + { + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid End of Central Dir Record size : ".strlen($v_binary_data)); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Extract the values + $v_data = unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', $v_binary_data); + + // ----- Check the global size + if (($v_pos + $v_data['comment_size'] + 18) != $v_size) { + + // ----- Removed in release 2.2 see readme file + // The check of the file size is a little too strict. + // Some bugs where found when a zip is encrypted/decrypted with 'crypt'. + // While decrypted, zip has training 0 bytes + if (0) { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, + 'The central dir is not at the end of the archive.' + .' Some trailing bytes exists after the archive.'); + + // ----- Return + return PclZip::errorCode(); + } + } + + // ----- Get comment + if ($v_data['comment_size'] != 0) { + $p_central_dir['comment'] = fread($this->zip_fd, $v_data['comment_size']); + } + else + $p_central_dir['comment'] = ''; + + $p_central_dir['entries'] = $v_data['entries']; + $p_central_dir['disk_entries'] = $v_data['disk_entries']; + $p_central_dir['offset'] = $v_data['offset']; + $p_central_dir['size'] = $v_data['size']; + $p_central_dir['disk'] = $v_data['disk']; + $p_central_dir['disk_start'] = $v_data['disk_start']; + + // TBC + //for(reset($p_central_dir); $key = key($p_central_dir); next($p_central_dir)) { + //} + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privDeleteByRule() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privDeleteByRule(&$p_result_list, &$p_options) + { + $v_result=1; + $v_list_detail = array(); + + // ----- Open the zip file + if (($v_result=$this->privOpenFd('rb')) != 1) + { + // ----- Return + return $v_result; + } + + // ----- Read the central directory informations + $v_central_dir = array(); + if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) + { + $this->privCloseFd(); + return $v_result; + } + + // ----- Go to beginning of File + @rewind($this->zip_fd); + + // ----- Scan all the files + // ----- Start at beginning of Central Dir + $v_pos_entry = $v_central_dir['offset']; + @rewind($this->zip_fd); + if (@fseek($this->zip_fd, $v_pos_entry)) + { + // ----- Close the zip file + $this->privCloseFd(); + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read each entry + $v_header_list = array(); + $j_start = 0; + for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) + { + + // ----- Read the file header + $v_header_list[$v_nb_extracted] = array(); + if (($v_result = $this->privReadCentralFileHeader($v_header_list[$v_nb_extracted])) != 1) + { + // ----- Close the zip file + $this->privCloseFd(); + + return $v_result; + } + + + // ----- Store the index + $v_header_list[$v_nb_extracted]['index'] = $i; + + // ----- Look for the specific extract rules + $v_found = false; + + // ----- Look for extract by name rule + if ( (isset($p_options[PCLZIP_OPT_BY_NAME])) + && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) { + + // ----- Look if the filename is in the list + for ($j=0; ($j<sizeof($p_options[PCLZIP_OPT_BY_NAME])) && (!$v_found); $j++) { + + // ----- Look for a directory + if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") { + + // ----- Look if the directory is in the filename path + if ( (strlen($v_header_list[$v_nb_extracted]['stored_filename']) > strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) + && (substr($v_header_list[$v_nb_extracted]['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) { + $v_found = true; + } + elseif ( (($v_header_list[$v_nb_extracted]['external']&0x00000010)==0x00000010) /* Indicates a folder */ + && ($v_header_list[$v_nb_extracted]['stored_filename'].'/' == $p_options[PCLZIP_OPT_BY_NAME][$j])) { + $v_found = true; + } + } + // ----- Look for a filename + elseif ($v_header_list[$v_nb_extracted]['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) { + $v_found = true; + } + } + } + + // ----- Look for extract by ereg rule + // ereg() is deprecated with PHP 5.3 + /* + else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) + && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { + + if (ereg($p_options[PCLZIP_OPT_BY_EREG], $v_header_list[$v_nb_extracted]['stored_filename'])) { + $v_found = true; + } + } + */ + + // ----- Look for extract by preg rule + else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) + && ($p_options[PCLZIP_OPT_BY_PREG] != "")) { + + if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header_list[$v_nb_extracted]['stored_filename'])) { + $v_found = true; + } + } + + // ----- Look for extract by index rule + else if ( (isset($p_options[PCLZIP_OPT_BY_INDEX])) + && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { + + // ----- Look if the index is in the list + for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_found); $j++) { + + if (($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) { + $v_found = true; + } + if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) { + $j_start = $j+1; + } + + if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) { + break; + } + } + } + else { + $v_found = true; + } + + // ----- Look for deletion + if ($v_found) + { + unset($v_header_list[$v_nb_extracted]); + } + else + { + $v_nb_extracted++; + } + } + + // ----- Look if something need to be deleted + if ($v_nb_extracted > 0) { + + // ----- Creates a temporay file + $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; + + // ----- Creates a temporary zip archive + $v_temp_zip = new PclZip($v_zip_temp_name); + + // ----- Open the temporary zip file in write mode + if (($v_result = $v_temp_zip->privOpenFd('wb')) != 1) { + $this->privCloseFd(); + + // ----- Return + return $v_result; + } + + // ----- Look which file need to be kept + for ($i=0; $i<sizeof($v_header_list); $i++) { + + // ----- Calculate the position of the header + @rewind($this->zip_fd); + if (@fseek($this->zip_fd, $v_header_list[$i]['offset'])) { + // ----- Close the zip file + $this->privCloseFd(); + $v_temp_zip->privCloseFd(); + @unlink($v_zip_temp_name); + + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Read the file header + $v_local_header = array(); + if (($v_result = $this->privReadFileHeader($v_local_header)) != 1) { + // ----- Close the zip file + $this->privCloseFd(); + $v_temp_zip->privCloseFd(); + @unlink($v_zip_temp_name); + + // ----- Return + return $v_result; + } + + // ----- Check that local file header is same as central file header + if ($this->privCheckFileHeaders($v_local_header, + $v_header_list[$i]) != 1) { + // TBC + } + unset($v_local_header); + + // ----- Write the file header + if (($v_result = $v_temp_zip->privWriteFileHeader($v_header_list[$i])) != 1) { + // ----- Close the zip file + $this->privCloseFd(); + $v_temp_zip->privCloseFd(); + @unlink($v_zip_temp_name); + + // ----- Return + return $v_result; + } + + // ----- Read/write the data block + if (($v_result = PclZipUtilCopyBlock($this->zip_fd, $v_temp_zip->zip_fd, $v_header_list[$i]['compressed_size'])) != 1) { + // ----- Close the zip file + $this->privCloseFd(); + $v_temp_zip->privCloseFd(); + @unlink($v_zip_temp_name); + + // ----- Return + return $v_result; + } + } + + // ----- Store the offset of the central dir + $v_offset = @ftell($v_temp_zip->zip_fd); + + // ----- Re-Create the Central Dir files header + for ($i=0; $i<sizeof($v_header_list); $i++) { + // ----- Create the file header + if (($v_result = $v_temp_zip->privWriteCentralFileHeader($v_header_list[$i])) != 1) { + $v_temp_zip->privCloseFd(); + $this->privCloseFd(); + @unlink($v_zip_temp_name); + + // ----- Return + return $v_result; + } + + // ----- Transform the header to a 'usable' info + $v_temp_zip->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); + } + + + // ----- Zip file comment + $v_comment = ''; + if (isset($p_options[PCLZIP_OPT_COMMENT])) { + $v_comment = $p_options[PCLZIP_OPT_COMMENT]; + } + + // ----- Calculate the size of the central header + $v_size = @ftell($v_temp_zip->zip_fd)-$v_offset; + + // ----- Create the central dir footer + if (($v_result = $v_temp_zip->privWriteCentralHeader(sizeof($v_header_list), $v_size, $v_offset, $v_comment)) != 1) { + // ----- Reset the file list + unset($v_header_list); + $v_temp_zip->privCloseFd(); + $this->privCloseFd(); + @unlink($v_zip_temp_name); + + // ----- Return + return $v_result; + } + + // ----- Close + $v_temp_zip->privCloseFd(); + $this->privCloseFd(); + + // ----- Delete the zip file + // TBC : I should test the result ... + @unlink($this->zipname); + + // ----- Rename the temporary file + // TBC : I should test the result ... + //@rename($v_zip_temp_name, $this->zipname); + PclZipUtilRename($v_zip_temp_name, $this->zipname); + + // ----- Destroy the temporary archive + unset($v_temp_zip); + } + + // ----- Remove every files : reset the file + else if ($v_central_dir['entries'] != 0) { + $this->privCloseFd(); + + if (($v_result = $this->privOpenFd('wb')) != 1) { + return $v_result; + } + + if (($v_result = $this->privWriteCentralHeader(0, 0, 0, '')) != 1) { + return $v_result; + } + + $this->privCloseFd(); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privDirCheck() + // Description : + // Check if a directory exists, if not it creates it and all the parents directory + // which may be useful. + // Parameters : + // $p_dir : Directory path to check. + // Return Values : + // 1 : OK + // -1 : Unable to create directory + // -------------------------------------------------------------------------------- + function privDirCheck($p_dir, $p_is_dir=false) + { + $v_result = 1; + + + // ----- Remove the final '/' + if (($p_is_dir) && (substr($p_dir, -1)=='/')) + { + $p_dir = substr($p_dir, 0, strlen($p_dir)-1); + } + + // ----- Check the directory availability + if ((is_dir($p_dir)) || ($p_dir == "")) + { + return 1; + } + + // ----- Extract parent directory + $p_parent_dir = dirname($p_dir); + + // ----- Just a check + if ($p_parent_dir != $p_dir) + { + // ----- Look for parent directory + if ($p_parent_dir != "") + { + if (($v_result = $this->privDirCheck($p_parent_dir)) != 1) + { + return $v_result; + } + } + } + + // ----- Create the directory + if (!@mkdir($p_dir, 0777)) + { + // ----- Error log + PclZip::privErrorLog(PCLZIP_ERR_DIR_CREATE_FAIL, "Unable to create directory '$p_dir'"); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privMerge() + // Description : + // If $p_archive_to_add does not exist, the function exit with a success result. + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privMerge(&$p_archive_to_add) + { + $v_result=1; + + // ----- Look if the archive_to_add exists + if (!is_file($p_archive_to_add->zipname)) + { + + // ----- Nothing to merge, so merge is a success + $v_result = 1; + + // ----- Return + return $v_result; + } + + // ----- Look if the archive exists + if (!is_file($this->zipname)) + { + + // ----- Do a duplicate + $v_result = $this->privDuplicate($p_archive_to_add->zipname); + + // ----- Return + return $v_result; + } + + // ----- Open the zip file + if (($v_result=$this->privOpenFd('rb')) != 1) + { + // ----- Return + return $v_result; + } + + // ----- Read the central directory informations + $v_central_dir = array(); + if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) + { + $this->privCloseFd(); + return $v_result; + } + + // ----- Go to beginning of File + @rewind($this->zip_fd); + + // ----- Open the archive_to_add file + if (($v_result=$p_archive_to_add->privOpenFd('rb')) != 1) + { + $this->privCloseFd(); + + // ----- Return + return $v_result; + } + + // ----- Read the central directory informations + $v_central_dir_to_add = array(); + if (($v_result = $p_archive_to_add->privReadEndCentralDir($v_central_dir_to_add)) != 1) + { + $this->privCloseFd(); + $p_archive_to_add->privCloseFd(); + + return $v_result; + } + + // ----- Go to beginning of File + @rewind($p_archive_to_add->zip_fd); + + // ----- Creates a temporay file + $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; + + // ----- Open the temporary file in write mode + if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0) + { + $this->privCloseFd(); + $p_archive_to_add->privCloseFd(); + + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Copy the files from the archive to the temporary file + // TBC : Here I should better append the file and go back to erase the central dir + $v_size = $v_central_dir['offset']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = fread($this->zip_fd, $v_read_size); + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Copy the files from the archive_to_add into the temporary file + $v_size = $v_central_dir_to_add['offset']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = fread($p_archive_to_add->zip_fd, $v_read_size); + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Store the offset of the central dir + $v_offset = @ftell($v_zip_temp_fd); + + // ----- Copy the block of file headers from the old archive + $v_size = $v_central_dir['size']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($this->zip_fd, $v_read_size); + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Copy the block of file headers from the archive_to_add + $v_size = $v_central_dir_to_add['size']; + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($p_archive_to_add->zip_fd, $v_read_size); + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Merge the file comments + $v_comment = $v_central_dir['comment'].' '.$v_central_dir_to_add['comment']; + + // ----- Calculate the size of the (new) central header + $v_size = @ftell($v_zip_temp_fd)-$v_offset; + + // ----- Swap the file descriptor + // Here is a trick : I swap the temporary fd with the zip fd, in order to use + // the following methods on the temporary fil and not the real archive fd + $v_swap = $this->zip_fd; + $this->zip_fd = $v_zip_temp_fd; + $v_zip_temp_fd = $v_swap; + + // ----- Create the central dir footer + if (($v_result = $this->privWriteCentralHeader($v_central_dir['entries']+$v_central_dir_to_add['entries'], $v_size, $v_offset, $v_comment)) != 1) + { + $this->privCloseFd(); + $p_archive_to_add->privCloseFd(); + @fclose($v_zip_temp_fd); + $this->zip_fd = null; + + // ----- Reset the file list + unset($v_header_list); + + // ----- Return + return $v_result; + } + + // ----- Swap back the file descriptor + $v_swap = $this->zip_fd; + $this->zip_fd = $v_zip_temp_fd; + $v_zip_temp_fd = $v_swap; + + // ----- Close + $this->privCloseFd(); + $p_archive_to_add->privCloseFd(); + + // ----- Close the temporary file + @fclose($v_zip_temp_fd); + + // ----- Delete the zip file + // TBC : I should test the result ... + @unlink($this->zipname); + + // ----- Rename the temporary file + // TBC : I should test the result ... + //@rename($v_zip_temp_name, $this->zipname); + PclZipUtilRename($v_zip_temp_name, $this->zipname); + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privDuplicate() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privDuplicate($p_archive_filename) + { + $v_result=1; + + // ----- Look if the $p_archive_filename exists + if (!is_file($p_archive_filename)) + { + + // ----- Nothing to duplicate, so duplicate is a success. + $v_result = 1; + + // ----- Return + return $v_result; + } + + // ----- Open the zip file + if (($v_result=$this->privOpenFd('wb')) != 1) + { + // ----- Return + return $v_result; + } + + // ----- Open the temporary file in write mode + if (($v_zip_temp_fd = @fopen($p_archive_filename, 'rb')) == 0) + { + $this->privCloseFd(); + + PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive file \''.$p_archive_filename.'\' in binary write mode'); + + // ----- Return + return PclZip::errorCode(); + } + + // ----- Copy the files from the archive to the temporary file + // TBC : Here I should better append the file and go back to erase the central dir + $v_size = filesize($p_archive_filename); + while ($v_size != 0) + { + $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = fread($v_zip_temp_fd, $v_read_size); + @fwrite($this->zip_fd, $v_buffer, $v_read_size); + $v_size -= $v_read_size; + } + + // ----- Close + $this->privCloseFd(); + + // ----- Close the temporary file + @fclose($v_zip_temp_fd); + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privErrorLog() + // Description : + // Parameters : + // -------------------------------------------------------------------------------- + function privErrorLog($p_error_code=0, $p_error_string='') + { + if (PCLZIP_ERROR_EXTERNAL == 1) { + PclError($p_error_code, $p_error_string); + } + else { + $this->error_code = $p_error_code; + $this->error_string = $p_error_string; + } + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privErrorReset() + // Description : + // Parameters : + // -------------------------------------------------------------------------------- + function privErrorReset() + { + if (PCLZIP_ERROR_EXTERNAL == 1) { + PclErrorReset(); + } + else { + $this->error_code = 0; + $this->error_string = ''; + } + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privDisableMagicQuotes() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privDisableMagicQuotes() + { + $v_result=1; + + // ----- Look if function exists + if ( (!function_exists("get_magic_quotes_runtime")) + || (!function_exists("set_magic_quotes_runtime"))) { + return $v_result; + } + + // ----- Look if already done + if ($this->magic_quotes_status != -1) { + return $v_result; + } + + // ----- Get and memorize the magic_quote value + $this->magic_quotes_status = @get_magic_quotes_runtime(); + + // ----- Disable magic_quotes + if ($this->magic_quotes_status == 1) { + @set_magic_quotes_runtime(0); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : privSwapBackMagicQuotes() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function privSwapBackMagicQuotes() + { + $v_result=1; + + // ----- Look if function exists + if ( (!function_exists("get_magic_quotes_runtime")) + || (!function_exists("set_magic_quotes_runtime"))) { + return $v_result; + } + + // ----- Look if something to do + if ($this->magic_quotes_status != -1) { + return $v_result; + } + + // ----- Swap back magic_quotes + if ($this->magic_quotes_status == 1) { + @set_magic_quotes_runtime($this->magic_quotes_status); + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + } + // End of class + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : PclZipUtilPathReduction() + // Description : + // Parameters : + // Return Values : + // -------------------------------------------------------------------------------- + function PclZipUtilPathReduction($p_dir) + { + $v_result = ""; + + // ----- Look for not empty path + if ($p_dir != "") { + // ----- Explode path by directory names + $v_list = explode("/", $p_dir); + + // ----- Study directories from last to first + $v_skip = 0; + for ($i=sizeof($v_list)-1; $i>=0; $i--) { + // ----- Look for current path + if ($v_list[$i] == ".") { + // ----- Ignore this directory + // Should be the first $i=0, but no check is done + } + else if ($v_list[$i] == "..") { + $v_skip++; + } + else if ($v_list[$i] == "") { + // ----- First '/' i.e. root slash + if ($i == 0) { + $v_result = "/".$v_result; + if ($v_skip > 0) { + // ----- It is an invalid path, so the path is not modified + // TBC + $v_result = $p_dir; + $v_skip = 0; + } + } + // ----- Last '/' i.e. indicates a directory + else if ($i == (sizeof($v_list)-1)) { + $v_result = $v_list[$i]; + } + // ----- Double '/' inside the path + else { + // ----- Ignore only the double '//' in path, + // but not the first and last '/' + } + } + else { + // ----- Look for item to skip + if ($v_skip > 0) { + $v_skip--; + } + else { + $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?"/".$v_result:""); + } + } + } + + // ----- Look for skip + if ($v_skip > 0) { + while ($v_skip > 0) { + $v_result = '../'.$v_result; + $v_skip--; + } + } + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : PclZipUtilPathInclusion() + // Description : + // This function indicates if the path $p_path is under the $p_dir tree. Or, + // said in an other way, if the file or sub-dir $p_path is inside the dir + // $p_dir. + // The function indicates also if the path is exactly the same as the dir. + // This function supports path with duplicated '/' like '//', but does not + // support '.' or '..' statements. + // Parameters : + // Return Values : + // 0 if $p_path is not inside directory $p_dir + // 1 if $p_path is inside directory $p_dir + // 2 if $p_path is exactly the same as $p_dir + // -------------------------------------------------------------------------------- + function PclZipUtilPathInclusion($p_dir, $p_path) + { + $v_result = 1; + + // ----- Look for path beginning by ./ + if ( ($p_dir == '.') + || ((strlen($p_dir) >=2) && (substr($p_dir, 0, 2) == './'))) { + $p_dir = PclZipUtilTranslateWinPath(getcwd(), FALSE).'/'.substr($p_dir, 1); + } + if ( ($p_path == '.') + || ((strlen($p_path) >=2) && (substr($p_path, 0, 2) == './'))) { + $p_path = PclZipUtilTranslateWinPath(getcwd(), FALSE).'/'.substr($p_path, 1); + } + + // ----- Explode dir and path by directory separator + $v_list_dir = explode("/", $p_dir); + $v_list_dir_size = sizeof($v_list_dir); + $v_list_path = explode("/", $p_path); + $v_list_path_size = sizeof($v_list_path); + + // ----- Study directories paths + $i = 0; + $j = 0; + while (($i < $v_list_dir_size) && ($j < $v_list_path_size) && ($v_result)) { + + // ----- Look for empty dir (path reduction) + if ($v_list_dir[$i] == '') { + $i++; + continue; + } + if ($v_list_path[$j] == '') { + $j++; + continue; + } + + // ----- Compare the items + if (($v_list_dir[$i] != $v_list_path[$j]) && ($v_list_dir[$i] != '') && ( $v_list_path[$j] != '')) { + $v_result = 0; + } + + // ----- Next items + $i++; + $j++; + } + + // ----- Look if everything seems to be the same + if ($v_result) { + // ----- Skip all the empty items + while (($j < $v_list_path_size) && ($v_list_path[$j] == '')) $j++; + while (($i < $v_list_dir_size) && ($v_list_dir[$i] == '')) $i++; + + if (($i >= $v_list_dir_size) && ($j >= $v_list_path_size)) { + // ----- There are exactly the same + $v_result = 2; + } + else if ($i < $v_list_dir_size) { + // ----- The path is shorter than the dir + $v_result = 0; + } + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : PclZipUtilCopyBlock() + // Description : + // Parameters : + // $p_mode : read/write compression mode + // 0 : src & dest normal + // 1 : src gzip, dest normal + // 2 : src normal, dest gzip + // 3 : src & dest gzip + // Return Values : + // -------------------------------------------------------------------------------- + function PclZipUtilCopyBlock($p_src, $p_dest, $p_size, $p_mode=0) + { + $v_result = 1; + + if ($p_mode==0) + { + while ($p_size != 0) + { + $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($p_src, $v_read_size); + @fwrite($p_dest, $v_buffer, $v_read_size); + $p_size -= $v_read_size; + } + } + else if ($p_mode==1) + { + while ($p_size != 0) + { + $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @gzread($p_src, $v_read_size); + @fwrite($p_dest, $v_buffer, $v_read_size); + $p_size -= $v_read_size; + } + } + else if ($p_mode==2) + { + while ($p_size != 0) + { + $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @fread($p_src, $v_read_size); + @gzwrite($p_dest, $v_buffer, $v_read_size); + $p_size -= $v_read_size; + } + } + else if ($p_mode==3) + { + while ($p_size != 0) + { + $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); + $v_buffer = @gzread($p_src, $v_read_size); + @gzwrite($p_dest, $v_buffer, $v_read_size); + $p_size -= $v_read_size; + } + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : PclZipUtilRename() + // Description : + // This function tries to do a simple rename() function. If it fails, it + // tries to copy the $p_src file in a new $p_dest file and then unlink the + // first one. + // Parameters : + // $p_src : Old filename + // $p_dest : New filename + // Return Values : + // 1 on success, 0 on failure. + // -------------------------------------------------------------------------------- + function PclZipUtilRename($p_src, $p_dest) + { + $v_result = 1; + + // ----- Try to rename the files + if (!@rename($p_src, $p_dest)) { + + // ----- Try to copy & unlink the src + if (!@copy($p_src, $p_dest)) { + $v_result = 0; + } + else if (!@unlink($p_src)) { + $v_result = 0; + } + } + + // ----- Return + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : PclZipUtilOptionText() + // Description : + // Translate option value in text. Mainly for debug purpose. + // Parameters : + // $p_option : the option value. + // Return Values : + // The option text value. + // -------------------------------------------------------------------------------- + function PclZipUtilOptionText($p_option) + { + + $v_list = get_defined_constants(); + for (reset($v_list); $v_key = key($v_list); next($v_list)) { + $v_prefix = substr($v_key, 0, 10); + if (( ($v_prefix == 'PCLZIP_OPT') + || ($v_prefix == 'PCLZIP_CB_') + || ($v_prefix == 'PCLZIP_ATT')) + && ($v_list[$v_key] == $p_option)) { + return $v_key; + } + } + + $v_result = 'Unknown'; + + return $v_result; + } + // -------------------------------------------------------------------------------- + + // -------------------------------------------------------------------------------- + // Function : PclZipUtilTranslateWinPath() + // Description : + // Translate windows path by replacing '\' by '/' and optionally removing + // drive letter. + // Parameters : + // $p_path : path to translate. + // $p_remove_disk_letter : true | false + // Return Values : + // The path translated. + // -------------------------------------------------------------------------------- + function PclZipUtilTranslateWinPath($p_path, $p_remove_disk_letter=true) + { + if (stristr(php_uname(), 'windows')) { + // ----- Look for potential disk letter + if (($p_remove_disk_letter) && (($v_position = strpos($p_path, ':')) != false)) { + $p_path = substr($p_path, $v_position+1); + } + // ----- Change potential windows directory separator + if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) { + $p_path = strtr($p_path, '\\', '/'); + } + } + return $p_path; + } + // -------------------------------------------------------------------------------- + + +?> diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/readme.txt b/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/readme.txt new file mode 100755 index 0000000..d1b11e2 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/PCLZip/readme.txt @@ -0,0 +1,421 @@ +// -------------------------------------------------------------------------------- +// PclZip 2.8.2 - readme.txt +// -------------------------------------------------------------------------------- +// License GNU/LGPL - August 2009 +// Vincent Blavet - vincent@phpconcept.net +// http://www.phpconcept.net +// -------------------------------------------------------------------------------- +// $Id: readme.txt,v 1.60 2009/09/30 20:35:21 vblavet Exp $ +// -------------------------------------------------------------------------------- + + + +0 - Sommaire +============ + 1 - Introduction + 2 - What's new + 3 - Corrected bugs + 4 - Known bugs or limitations + 5 - License + 6 - Warning + 7 - Documentation + 8 - Author + 9 - Contribute + +1 - Introduction +================ + + PclZip is a library that allow you to manage a Zip archive. + + Full documentation about PclZip can be found here : http://www.phpconcept.net/pclzip + +2 - What's new +============== + + Version 2.8.2 : + - PCLZIP_CB_PRE_EXTRACT and PCLZIP_CB_POST_EXTRACT are now supported with + extraction as a string (PCLZIP_OPT_EXTRACT_AS_STRING). The string + can also be modified in the post-extract call back. + **Bugs correction : + - PCLZIP_OPT_REMOVE_ALL_PATH was not working correctly + - Remove use of eval() and do direct call to callback functions + - Correct support of 64bits systems (Thanks to WordPress team) + + Version 2.8.1 : + - Move option PCLZIP_OPT_BY_EREG to PCLZIP_OPT_BY_PREG because ereg() is + deprecated in PHP 5.3. When using option PCLZIP_OPT_BY_EREG, PclZip will + automatically replace it by PCLZIP_OPT_BY_PREG. + + Version 2.8 : + - Improve extraction of zip archive for large files by using temporary files + This feature is working like the one defined in r2.7. + Options are renamed : PCLZIP_OPT_TEMP_FILE_ON, PCLZIP_OPT_TEMP_FILE_OFF, + PCLZIP_OPT_TEMP_FILE_THRESHOLD + - Add a ratio constant PCLZIP_TEMPORARY_FILE_RATIO to configure the auto + sense of temporary file use. + - Bug correction : Reduce filepath in returned file list to remove ennoying + './/' preambule in file path. + + Version 2.7 : + - Improve creation of zip archive for large files : + PclZip will now autosense the configured memory and use temporary files + when large file is suspected. + This feature can also ne triggered by manual options in create() and add() + methods. 'PCLZIP_OPT_ADD_TEMP_FILE_ON' force the use of temporary files, + 'PCLZIP_OPT_ADD_TEMP_FILE_OFF' disable the autosense technic, + 'PCLZIP_OPT_ADD_TEMP_FILE_THRESHOLD' allow for configuration of a size + threshold to use temporary files. + Using "temporary files" rather than "memory" might take more time, but + might give the ability to zip very large files : + Tested on my win laptop with a 88Mo file : + Zip "in-memory" : 18sec (max_execution_time=30, memory_limit=180Mo) + Zip "tmporary-files" : 23sec (max_execution_time=30, memory_limit=30Mo) + - Replace use of mktime() by time() to limit the E_STRICT error messages. + - Bug correction : When adding files with full windows path (drive letter) + PclZip is now working. Before, if the drive letter is not the default + path, PclZip was not able to add the file. + + Version 2.6 : + - Code optimisation + - New attributes PCLZIP_ATT_FILE_COMMENT gives the ability to + add a comment for a specific file. (Don't really know if this is usefull) + - New attribute PCLZIP_ATT_FILE_CONTENT gives the ability to add a string + as a file. + - New attribute PCLZIP_ATT_FILE_MTIME modify the timestamp associated with + a file. + - Correct a bug. Files archived with a timestamp with 0h0m0s were extracted + with current time + - Add CRC value in the informations returned back for each file after an + action. + - Add missing closedir() statement. + - When adding a folder, and removing the path of this folder, files were + incorrectly added with a '/' at the beginning. Which means files are + related to root in unix systems. Corrected. + - Add conditional if before constant definition. This will allow users + to redefine constants without changing the file, and then improve + upgrade of pclzip code for new versions. + + Version 2.5 : + - Introduce the ability to add file/folder with individual properties (file descriptor). + This gives for example the ability to change the filename of a zipped file. + . Able to add files individually + . Able to change full name + . Able to change short name + . Compatible with global options + - New attributes : PCLZIP_ATT_FILE_NAME, PCLZIP_ATT_FILE_NEW_SHORT_NAME, PCLZIP_ATT_FILE_NEW_FULL_NAME + - New error code : PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE + - Add a security control feature. PclZip can extract any file in any folder + of a system. People may use this to upload a zip file and try to override + a system file. The PCLZIP_OPT_EXTRACT_DIR_RESTRICTION will give the + ability to forgive any directory transversal behavior. + - New PCLZIP_OPT_EXTRACT_DIR_RESTRICTION : check extraction path + - New error code : PCLZIP_ERR_DIRECTORY_RESTRICTION + - Modification in PclZipUtilPathInclusion() : dir and path beginning with ./ will be prepend + by current path (getcwd()) + + Version 2.4 : + - Code improvment : try to speed up the code by removing unusefull call to pack() + - Correct bug in delete() : delete() should be called with no argument. This was not + the case in 2.3. This is corrected in 2.4. + - Correct a bug in path_inclusion function. When the path has several '../../', the + result was bad. + - Add a check for magic_quotes_runtime configuration. If enabled, PclZip will + disable it while working and det it back to its original value. + This resolve a lots of bad formated archive errors. + - Bug correction : PclZip now correctly unzip file in some specific situation, + when compressed content has same size as uncompressed content. + - Bug correction : When selecting option 'PCLZIP_OPT_REMOVE_ALL_PATH', + directories are not any more created. + - Code improvment : correct unclosed opendir(), better handling of . and .. in + loops. + + + Version 2.3 : + - Correct a bug with PHP5 : affecting the value 0xFE49FFE0 to a variable does not + give the same result in PHP4 and PHP5 .... + + Version 2.2 : + - Try development of PCLZIP_OPT_CRYPT ..... + However this becomes to a stop. To crypt/decrypt I need to multiply 2 long integers, + the result (greater than a long) is not supported by PHP. Even the use of bcmath + functions does not help. I did not find yet a solution ...; + - Add missing '/' at end of directory entries + - Check is a file is encrypted or not. Returns status 'unsupported_encryption' and/or + error code PCLZIP_ERR_UNSUPPORTED_ENCRYPTION. + - Corrected : Bad "version need to extract" field in local file header + - Add private method privCheckFileHeaders() in order to check local and central + file headers. PclZip is now supporting purpose bit flag bit 3. Purpose bit flag bit 3 gives + the ability to have a local file header without size, compressed size and crc filled. + - Add a generic status 'error' for file status + - Add control of compression type. PclZip only support deflate compression method. + Before v2.2, PclZip does not check the compression method used in an archive while + extracting. With v2.2 PclZip returns a new error status for a file using an unsupported + compression method. New status is "unsupported_compression". New error code is + PCLZIP_ERR_UNSUPPORTED_COMPRESSION. + - Add optional attribute PCLZIP_OPT_STOP_ON_ERROR. This will stop the extract of files + when errors like 'a folder with same name exists' or 'a newer file exists' or + 'a write protected file' exists, rather than set a status for the concerning file + and resume the extract of the zip. + - Add optional attribute PCLZIP_OPT_REPLACE_NEWER. This will force, during an extract' the + replacement of the file, even if a newer version of the file exists. + Note that today if a file with the same name already exists but is older it will be + replaced by the extracted one. + - Improve PclZipUtilOption() + - Support of zip archive with trailing bytes. Before 2.2, PclZip checks that the central + directory structure is the last data in the archive. Crypt encryption/decryption of + zip archive put trailing 0 bytes after decryption. PclZip is now supporting this. + + Version 2.1 : + - Add the ability to abort the extraction by using a user callback function. + The user can now return the value '2' in its callback which indicates to stop the + extraction. For a pre call-back extract is stopped before the extration of the current + file. For a post call back, the extraction is stopped after. + - Add the ability to extract a file (or several files) directly in the standard output. + This is done by the new parameter PCLZIP_OPT_EXTRACT_IN_OUTPUT with method extract(). + - Add support for parameters PCLZIP_OPT_COMMENT, PCLZIP_OPT_ADD_COMMENT, + PCLZIP_OPT_PREPEND_COMMENT. This will create, replace, add, or prepend comments + in the zip archive. + - When merging two archives, the comments are not any more lost, but merged, with a + blank space separator. + - Corrected bug : Files are not deleted when all files are asked to be deleted. + - Corrected bug : Folders with name '0' made PclZip to abort the create or add feature. + + + Version 2.0 : + ***** Warning : Some new features may break the backward compatibility for your scripts. + Please carefully read the readme file. + - Add the ability to delete by Index, name and regular expression. This feature is + performed by the method delete(), which uses the optional parameters + PCLZIP_OPT_BY_INDEX, PCLZIP_OPT_BY_NAME, PCLZIP_OPT_BY_EREG or PCLZIP_OPT_BY_PREG. + - Add the ability to extract by regular expression. To extract by regexp you must use the method + extract(), with the option PCLZIP_OPT_BY_EREG or PCLZIP_OPT_BY_PREG + (depending if you want to use ereg() or preg_match() syntax) followed by the + regular expression pattern. + - Add the ability to extract by index, directly with the extract() method. This is a + code improvment of the extractByIndex() method. + - Add the ability to extract by name. To extract by name you must use the method + extract(), with the option PCLZIP_OPT_BY_NAME followed by the filename to + extract or an array of filenames to extract. To extract all a folder, use the folder + name rather than the filename with a '/' at the end. + - Add the ability to add files without compression. This is done with a new attribute + which is PCLZIP_OPT_NO_COMPRESSION. + - Add the attribute PCLZIP_OPT_EXTRACT_AS_STRING, which allow to extract a file directly + in a string without using any file (or temporary file). + - Add constant PCLZIP_SEPARATOR for static configuration of filename separators in a single string. + The default separator is now a comma (,) and not any more a blank space. + THIS BREAK THE BACKWARD COMPATIBILITY : Please check if this may have an impact with + your script. + - Improve algorythm performance by removing the use of temporary files when adding or + extracting files in an archive. + - Add (correct) detection of empty filename zipping. This can occurs when the removed + path is the same + as a zipped dir. The dir is not zipped (['status'] = filtered), only its content. + - Add better support for windows paths (thanks for help from manus@manusfreedom.com). + - Corrected bug : When the archive file already exists with size=0, the add() method + fails. Corrected in 2.0. + - Remove the use of OS_WINDOWS constant. Use php_uname() function rather. + - Control the order of index ranges in extract by index feature. + - Change the internal management of folders (better handling of internal flag). + + + Version 1.3 : + - Removing the double include check. This is now done by include_once() and require_once() + PHP directives. + - Changing the error handling mecanism : Remove the use of an external error library. + The former PclError...() functions are replaced by internal equivalent methods. + By changing the environment variable PCLZIP_ERROR_EXTERNAL you can still use the former library. + Introducing the use of constants for error codes rather than integer values. This will help + in futur improvment. + Introduction of error handling functions like errorCode(), errorName() and errorInfo(). + - Remove the deprecated use of calling function with arguments passed by reference. + - Add the calling of extract(), extractByIndex(), create() and add() functions + with variable options rather than fixed arguments. + - Add the ability to remove all the file path while extracting or adding, + without any need to specify the path to remove. + This is available for extract(), extractByIndex(), create() and add() functionS by using + the new variable options parameters : + - PCLZIP_OPT_REMOVE_ALL_PATH : by indicating this option while calling the fct. + - Ability to change the mode of a file after the extraction (chmod()). + This is available for extract() and extractByIndex() functionS by using + the new variable options parameters. + - PCLZIP_OPT_SET_CHMOD : by setting the value of this option. + - Ability to definition call-back options. These call-back will be called during the adding, + or the extracting of file (extract(), extractByIndex(), create() and add() functions) : + - PCLZIP_CB_PRE_EXTRACT : will be called before each extraction of a file. The user + can trigerred the change the filename of the extracted file. The user can triggered the + skip of the extraction. This is adding a 'skipped' status in the file list result value. + - PCLZIP_CB_POST_EXTRACT : will be called after each extraction of a file. + Nothing can be triggered from that point. + - PCLZIP_CB_PRE_ADD : will be called before each add of a file. The user + can trigerred the change the stored filename of the added file. The user can triggered the + skip of the add. This is adding a 'skipped' status in the file list result value. + - PCLZIP_CB_POST_ADD : will be called after each add of a file. + Nothing can be triggered from that point. + - Two status are added in the file list returned as function result : skipped & filename_too_long + 'skipped' is used when a call-back function ask for skipping the file. + 'filename_too_long' is used while adding a file with a too long filename to archive (the file is + not added) + - Adding the function PclZipUtilPathInclusion(), that check the inclusion of a path into + a directory. + - Add a check of the presence of the archive file before some actions (like list, ...) + - Add the initialisation of field "index" in header array. This means that by + default index will be -1 when not explicitly set by the methods. + + Version 1.2 : + - Adding a duplicate function. + - Adding a merge function. The merge function is a "quick merge" function, + it just append the content of an archive at the end of the first one. There + is no check for duplicate files or more recent files. + - Improve the search of the central directory end. + + Version 1.1.2 : + + - Changing the license of PclZip. PclZip is now released under the GNU / LGPL license + (see License section). + - Adding the optional support of a static temporary directory. You will need to configure + the constant PCLZIP_TEMPORARY_DIR if you want to use this feature. + - Improving the rename() function. In some cases rename() does not work (different + Filesystems), so it will be replaced by a copy() + unlink() functions. + + Version 1.1.1 : + + - Maintenance release, no new feature. + + Version 1.1 : + + - New method Add() : adding files in the archive + - New method ExtractByIndex() : partial extract of the archive, files are identified by + their index in the archive + - New method DeleteByIndex() : delete some files/folder entries from the archive, + files are identified by their index in the archive. + - Adding a test of the zlib extension presence. If not present abort the script. + + Version 1.0.1 : + + - No new feature + + +3 - Corrected bugs +================== + + Corrected in Version 2.0 : + - Corrected : During an extraction, if a call-back fucntion is used and try to skip + a file, all the extraction process is stopped. + + Corrected in Version 1.3 : + - Corrected : Support of static synopsis for method extract() is broken. + - Corrected : invalid size of archive content field (0xFF) should be (0xFFFF). + - Corrected : When an extract is done with a remove_path parameter, the entry for + the directory with exactly the same path is not skipped/filtered. + - Corrected : extractByIndex() and deleteByIndex() were not managing index in the + right way. For example indexes '1,3-5,11' will only extract files 1 and 11. This + is due to a sort of the index resulting table that puts 11 before 3-5 (sort on + string and not interger). The sort is temporarilly removed, this means that + you must provide a sorted list of index ranges. + + Corrected in Version 1.2 : + + - Nothing. + + Corrected in Version 1.1.2 : + + - Corrected : Winzip is unable to delete or add new files in a PclZip created archives. + + Corrected in Version 1.1.1 : + + - Corrected : When archived file is not compressed (0% compression), the + extract method fails. + + Corrected in Version 1.1 : + + - Corrected : Adding a complete tree of folder may result in a bad archive + creation. + + Corrected in Version 1.0.1 : + + - Corrected : Error while compressing files greater than PCLZIP_READ_BLOCK_SIZE (default=1024). + + +4 - Known bugs or limitations +============================= + + Please publish bugs reports in SourceForge : + http://sourceforge.net/tracker/?group_id=40254&atid=427564 + + In Version 2.x : + - PclZip does only support file uncompressed or compressed with deflate (compression method 8) + - PclZip does not support password protected zip archive + - Some concern were seen when changing mtime of a file while archiving. + Seems to be linked to Daylight Saving Time (PclTest_changing_mtime). + + In Version 1.2 : + + - merge() methods does not check for duplicate files or last date of modifications. + + In Version 1.1 : + + - Limitation : Using 'extract' fields in the file header in the zip archive is not supported. + - WinZip is unable to delete a single file in a PclZip created archive. It is also unable to + add a file in a PclZip created archive. (Corrected in v.1.2) + + In Version 1.0.1 : + + - Adding a complete tree of folder may result in a bad archive + creation. (Corrected in V.1.1). + - Path given to methods must be in the unix format (/) and not the Windows format (\). + Workaround : Use only / directory separators. + - PclZip is using temporary files that are sometime the name of the file with a .tmp or .gz + added suffix. Files with these names may already exist and may be overwritten. + Workaround : none. + - PclZip does not check if the zlib extension is present. If it is absent, the zip + file is not created and the lib abort without warning. + Workaround : enable the zlib extension on the php install + + In Version 1.0 : + + - Error while compressing files greater than PCLZIP_READ_BLOCK_SIZE (default=1024). + (Corrected in v.1.0.1) + - Limitation : Multi-disk zip archive are not supported. + + +5 - License +=========== + + Since version 1.1.2, PclZip Library is released under GNU/LGPL license. + This library is free, so you can use it at no cost. + + HOWEVER, if you release a script, an application, a library or any kind of + code using PclZip library (or a part of it), YOU MUST : + - Indicate in the documentation (or a readme file), that your work + uses PclZip Library, and make a reference to the author and the web site + http://www.phpconcept.net + - Gives the ability to the final user to update the PclZip libary. + + I will also appreciate that you send me a mail (vincent@phpconcept.net), just to + be aware that someone is using PclZip. + + For more information about GNU/LGPL license : http://www.gnu.org + +6 - Warning +================= + + This library and the associated files are non commercial, non professional work. + It should not have unexpected results. However if any damage is caused by this software + the author can not be responsible. + The use of this software is at the risk of the user. + +7 - Documentation +================= + PclZip User Manuel is available in English on PhpConcept : http://www.phpconcept.net/pclzip/man/en/index.php + A Russian translation was done by Feskov Kuzma : http://php.russofile.ru/ru/authors/unsort/zip/ + +8 - Author +========== + + This software was written by Vincent Blavet (vincent@phpconcept.net) on its leasure time. + +9 - Contribute +============== + If you want to contribute to the development of PclZip, please contact vincent@phpconcept.net. + If you can help in financing PhpConcept hosting service, please go to + http://www.phpconcept.net/soutien.php diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/PasswordHasher.php b/plugins/excel_reader/Classes/PHPExcel/Shared/PasswordHasher.php new file mode 100755 index 0000000..65317d5 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/PasswordHasher.php @@ -0,0 +1,67 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_PasswordHasher + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_PasswordHasher +{ + /** + * Create a password hash from a given string. + * + * This method is based on the algorithm provided by + * Daniel Rentz of OpenOffice and the PEAR package + * Spreadsheet_Excel_Writer by Xavier Noguer <xnoguer@rezebra.com>. + * + * @param string $pPassword Password to hash + * @return string Hashed password + */ + public static function hashPassword($pPassword = '') { + $password = 0x0000; + $i = 1; // char position + + // split the plain text password in its component characters + $chars = preg_split('//', $pPassword, -1, PREG_SPLIT_NO_EMPTY); + foreach ($chars as $char) { + $value = ord($char) << $i; // shifted ASCII value + $rotated_bits = $value >> 15; // rotated bits beyond bit 15 + $value &= 0x7fff; // first 15 bits + $password ^= ($value | $rotated_bits); + ++$i; + } + + $password ^= strlen($pPassword); + $password ^= 0xCE4B; + + return(strtoupper(dechex($password))); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/String.php b/plugins/excel_reader/Classes/PHPExcel/Shared/String.php new file mode 100755 index 0000000..a62a681 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/String.php @@ -0,0 +1,730 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_String + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_String +{ + /** Constants */ + /** Regular Expressions */ + // Fraction + const STRING_REGEXP_FRACTION = '(-?)(\d+)\s+(\d+\/\d+)'; + + + /** + * Control characters array + * + * @var string[] + */ + private static $_controlCharacters = array(); + + /** + * SYLK Characters array + * + * $var array + */ + private static $_SYLKCharacters = array(); + + /** + * Decimal separator + * + * @var string + */ + private static $_decimalSeparator; + + /** + * Thousands separator + * + * @var string + */ + private static $_thousandsSeparator; + + /** + * Currency code + * + * @var string + */ + private static $_currencyCode; + + /** + * Is mbstring extension avalable? + * + * @var boolean + */ + private static $_isMbstringEnabled; + + /** + * Is iconv extension avalable? + * + * @var boolean + */ + private static $_isIconvEnabled; + + /** + * Build control characters array + */ + private static function _buildControlCharacters() { + for ($i = 0; $i <= 31; ++$i) { + if ($i != 9 && $i != 10 && $i != 13) { + $find = '_x' . sprintf('%04s' , strtoupper(dechex($i))) . '_'; + $replace = chr($i); + self::$_controlCharacters[$find] = $replace; + } + } + } + + /** + * Build SYLK characters array + */ + private static function _buildSYLKCharacters() + { + self::$_SYLKCharacters = array( + "\x1B 0" => chr(0), + "\x1B 1" => chr(1), + "\x1B 2" => chr(2), + "\x1B 3" => chr(3), + "\x1B 4" => chr(4), + "\x1B 5" => chr(5), + "\x1B 6" => chr(6), + "\x1B 7" => chr(7), + "\x1B 8" => chr(8), + "\x1B 9" => chr(9), + "\x1B :" => chr(10), + "\x1B ;" => chr(11), + "\x1B <" => chr(12), + "\x1B :" => chr(13), + "\x1B >" => chr(14), + "\x1B ?" => chr(15), + "\x1B!0" => chr(16), + "\x1B!1" => chr(17), + "\x1B!2" => chr(18), + "\x1B!3" => chr(19), + "\x1B!4" => chr(20), + "\x1B!5" => chr(21), + "\x1B!6" => chr(22), + "\x1B!7" => chr(23), + "\x1B!8" => chr(24), + "\x1B!9" => chr(25), + "\x1B!:" => chr(26), + "\x1B!;" => chr(27), + "\x1B!<" => chr(28), + "\x1B!=" => chr(29), + "\x1B!>" => chr(30), + "\x1B!?" => chr(31), + "\x1B'?" => chr(127), + "\x1B(0" => '€', // 128 in CP1252 + "\x1B(2" => '‚', // 130 in CP1252 + "\x1B(3" => 'ƒ', // 131 in CP1252 + "\x1B(4" => '„', // 132 in CP1252 + "\x1B(5" => '…', // 133 in CP1252 + "\x1B(6" => '†', // 134 in CP1252 + "\x1B(7" => '‡', // 135 in CP1252 + "\x1B(8" => 'ˆ', // 136 in CP1252 + "\x1B(9" => '‰', // 137 in CP1252 + "\x1B(:" => 'Š', // 138 in CP1252 + "\x1B(;" => '‹', // 139 in CP1252 + "\x1BNj" => 'Œ', // 140 in CP1252 + "\x1B(>" => 'Ž', // 142 in CP1252 + "\x1B)1" => '‘', // 145 in CP1252 + "\x1B)2" => '’', // 146 in CP1252 + "\x1B)3" => '“', // 147 in CP1252 + "\x1B)4" => '”', // 148 in CP1252 + "\x1B)5" => '•', // 149 in CP1252 + "\x1B)6" => '–', // 150 in CP1252 + "\x1B)7" => '—', // 151 in CP1252 + "\x1B)8" => '˜', // 152 in CP1252 + "\x1B)9" => '™', // 153 in CP1252 + "\x1B):" => 'š', // 154 in CP1252 + "\x1B);" => '›', // 155 in CP1252 + "\x1BNz" => 'œ', // 156 in CP1252 + "\x1B)>" => 'ž', // 158 in CP1252 + "\x1B)?" => 'Ÿ', // 159 in CP1252 + "\x1B*0" => ' ', // 160 in CP1252 + "\x1BN!" => '¡', // 161 in CP1252 + "\x1BN\"" => '¢', // 162 in CP1252 + "\x1BN#" => '£', // 163 in CP1252 + "\x1BN(" => '¤', // 164 in CP1252 + "\x1BN%" => '¥', // 165 in CP1252 + "\x1B*6" => '¦', // 166 in CP1252 + "\x1BN'" => '§', // 167 in CP1252 + "\x1BNH " => '¨', // 168 in CP1252 + "\x1BNS" => '©', // 169 in CP1252 + "\x1BNc" => 'ª', // 170 in CP1252 + "\x1BN+" => '«', // 171 in CP1252 + "\x1B*<" => '¬', // 172 in CP1252 + "\x1B*=" => '­', // 173 in CP1252 + "\x1BNR" => '®', // 174 in CP1252 + "\x1B*?" => '¯', // 175 in CP1252 + "\x1BN0" => '°', // 176 in CP1252 + "\x1BN1" => '±', // 177 in CP1252 + "\x1BN2" => '²', // 178 in CP1252 + "\x1BN3" => '³', // 179 in CP1252 + "\x1BNB " => '´', // 180 in CP1252 + "\x1BN5" => 'µ', // 181 in CP1252 + "\x1BN6" => '¶', // 182 in CP1252 + "\x1BN7" => '·', // 183 in CP1252 + "\x1B+8" => '¸', // 184 in CP1252 + "\x1BNQ" => '¹', // 185 in CP1252 + "\x1BNk" => 'º', // 186 in CP1252 + "\x1BN;" => '»', // 187 in CP1252 + "\x1BN<" => '¼', // 188 in CP1252 + "\x1BN=" => '½', // 189 in CP1252 + "\x1BN>" => '¾', // 190 in CP1252 + "\x1BN?" => '¿', // 191 in CP1252 + "\x1BNAA" => 'À', // 192 in CP1252 + "\x1BNBA" => 'Á', // 193 in CP1252 + "\x1BNCA" => 'Â', // 194 in CP1252 + "\x1BNDA" => 'Ã', // 195 in CP1252 + "\x1BNHA" => 'Ä', // 196 in CP1252 + "\x1BNJA" => 'Å', // 197 in CP1252 + "\x1BNa" => 'Æ', // 198 in CP1252 + "\x1BNKC" => 'Ç', // 199 in CP1252 + "\x1BNAE" => 'È', // 200 in CP1252 + "\x1BNBE" => 'É', // 201 in CP1252 + "\x1BNCE" => 'Ê', // 202 in CP1252 + "\x1BNHE" => 'Ë', // 203 in CP1252 + "\x1BNAI" => 'Ì', // 204 in CP1252 + "\x1BNBI" => 'Í', // 205 in CP1252 + "\x1BNCI" => 'Î', // 206 in CP1252 + "\x1BNHI" => 'Ï', // 207 in CP1252 + "\x1BNb" => 'Ð', // 208 in CP1252 + "\x1BNDN" => 'Ñ', // 209 in CP1252 + "\x1BNAO" => 'Ò', // 210 in CP1252 + "\x1BNBO" => 'Ó', // 211 in CP1252 + "\x1BNCO" => 'Ô', // 212 in CP1252 + "\x1BNDO" => 'Õ', // 213 in CP1252 + "\x1BNHO" => 'Ö', // 214 in CP1252 + "\x1B-7" => '×', // 215 in CP1252 + "\x1BNi" => 'Ø', // 216 in CP1252 + "\x1BNAU" => 'Ù', // 217 in CP1252 + "\x1BNBU" => 'Ú', // 218 in CP1252 + "\x1BNCU" => 'Û', // 219 in CP1252 + "\x1BNHU" => 'Ü', // 220 in CP1252 + "\x1B-=" => 'Ý', // 221 in CP1252 + "\x1BNl" => 'Þ', // 222 in CP1252 + "\x1BN{" => 'ß', // 223 in CP1252 + "\x1BNAa" => 'à', // 224 in CP1252 + "\x1BNBa" => 'á', // 225 in CP1252 + "\x1BNCa" => 'â', // 226 in CP1252 + "\x1BNDa" => 'ã', // 227 in CP1252 + "\x1BNHa" => 'ä', // 228 in CP1252 + "\x1BNJa" => 'å', // 229 in CP1252 + "\x1BNq" => 'æ', // 230 in CP1252 + "\x1BNKc" => 'ç', // 231 in CP1252 + "\x1BNAe" => 'è', // 232 in CP1252 + "\x1BNBe" => 'é', // 233 in CP1252 + "\x1BNCe" => 'ê', // 234 in CP1252 + "\x1BNHe" => 'ë', // 235 in CP1252 + "\x1BNAi" => 'ì', // 236 in CP1252 + "\x1BNBi" => 'í', // 237 in CP1252 + "\x1BNCi" => 'î', // 238 in CP1252 + "\x1BNHi" => 'ï', // 239 in CP1252 + "\x1BNs" => 'ð', // 240 in CP1252 + "\x1BNDn" => 'ñ', // 241 in CP1252 + "\x1BNAo" => 'ò', // 242 in CP1252 + "\x1BNBo" => 'ó', // 243 in CP1252 + "\x1BNCo" => 'ô', // 244 in CP1252 + "\x1BNDo" => 'õ', // 245 in CP1252 + "\x1BNHo" => 'ö', // 246 in CP1252 + "\x1B/7" => '÷', // 247 in CP1252 + "\x1BNy" => 'ø', // 248 in CP1252 + "\x1BNAu" => 'ù', // 249 in CP1252 + "\x1BNBu" => 'ú', // 250 in CP1252 + "\x1BNCu" => 'û', // 251 in CP1252 + "\x1BNHu" => 'ü', // 252 in CP1252 + "\x1B/=" => 'ý', // 253 in CP1252 + "\x1BN|" => 'þ', // 254 in CP1252 + "\x1BNHy" => 'ÿ', // 255 in CP1252 + ); + } + + /** + * Get whether mbstring extension is available + * + * @return boolean + */ + public static function getIsMbstringEnabled() + { + if (isset(self::$_isMbstringEnabled)) { + return self::$_isMbstringEnabled; + } + + self::$_isMbstringEnabled = function_exists('mb_convert_encoding') ? + true : false; + + return self::$_isMbstringEnabled; + } + + /** + * Get whether iconv extension is available + * + * @return boolean + */ + public static function getIsIconvEnabled() + { + if (isset(self::$_isIconvEnabled)) { + return self::$_isIconvEnabled; + } + + // Fail if iconv doesn't exist + if (!function_exists('iconv')) { + self::$_isIconvEnabled = false; + return false; + } + + // Sometimes iconv is not working, and e.g. iconv('UTF-8', 'UTF-16LE', 'x') just returns false, + if (!@iconv('UTF-8', 'UTF-16LE', 'x')) { + self::$_isIconvEnabled = false; + return false; + } + + // Sometimes iconv_substr('A', 0, 1, 'UTF-8') just returns false in PHP 5.2.0 + // we cannot use iconv in that case either (http://bugs.php.net/bug.php?id=37773) + if (!@iconv_substr('A', 0, 1, 'UTF-8')) { + self::$_isIconvEnabled = false; + return false; + } + + // CUSTOM: IBM AIX iconv() does not work + if ( defined('PHP_OS') && @stristr(PHP_OS, 'AIX') + && defined('ICONV_IMPL') && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) + && defined('ICONV_VERSION') && (@strcasecmp(ICONV_VERSION, 'unknown') == 0) ) + { + self::$_isIconvEnabled = false; + return false; + } + + // If we reach here no problems were detected with iconv + self::$_isIconvEnabled = true; + return true; + } + + public static function buildCharacterSets() { + if(empty(self::$_controlCharacters)) { + self::_buildControlCharacters(); + } + if(empty(self::$_SYLKCharacters)) { + self::_buildSYLKCharacters(); + } + } + + /** + * Convert from OpenXML escaped control character to PHP control character + * + * Excel 2007 team: + * ---------------- + * That's correct, control characters are stored directly in the shared-strings table. + * We do encode characters that cannot be represented in XML using the following escape sequence: + * _xHHHH_ where H represents a hexadecimal character in the character's value... + * So you could end up with something like _x0008_ in a string (either in a cell value (<v>) + * element or in the shared string <t> element. + * + * @param string $value Value to unescape + * @return string + */ + public static function ControlCharacterOOXML2PHP($value = '') { + return str_replace( array_keys(self::$_controlCharacters), array_values(self::$_controlCharacters), $value ); + } + + /** + * Convert from PHP control character to OpenXML escaped control character + * + * Excel 2007 team: + * ---------------- + * That's correct, control characters are stored directly in the shared-strings table. + * We do encode characters that cannot be represented in XML using the following escape sequence: + * _xHHHH_ where H represents a hexadecimal character in the character's value... + * So you could end up with something like _x0008_ in a string (either in a cell value (<v>) + * element or in the shared string <t> element. + * + * @param string $value Value to escape + * @return string + */ + public static function ControlCharacterPHP2OOXML($value = '') { + return str_replace( array_values(self::$_controlCharacters), array_keys(self::$_controlCharacters), $value ); + } + + /** + * Try to sanitize UTF8, stripping invalid byte sequences. Not perfect. Does not surrogate characters. + * + * @param string $value + * @return string + */ + public static function SanitizeUTF8($value) + { + if (self::getIsIconvEnabled()) { + $value = @iconv('UTF-8', 'UTF-8', $value); + return $value; + } + + if (self::getIsMbstringEnabled()) { + $value = mb_convert_encoding($value, 'UTF-8', 'UTF-8'); + return $value; + } + + // else, no conversion + return $value; + } + + /** + * Check if a string contains UTF8 data + * + * @param string $value + * @return boolean + */ + public static function IsUTF8($value = '') { + return utf8_encode(utf8_decode($value)) === $value; + } + + /** + * Formats a numeric value as a string for output in various output writers forcing + * point as decimal separator in case locale is other than English. + * + * @param mixed $value + * @return string + */ + public static function FormatNumber($value) { + if (is_float($value)) { + return str_replace(',', '.', $value); + } + return (string) $value; + } + + /** + * Converts a UTF-8 string into BIFF8 Unicode string data (8-bit string length) + * Writes the string using uncompressed notation, no rich text, no Asian phonetics + * If mbstring extension is not available, ASCII is assumed, and compressed notation is used + * although this will give wrong results for non-ASCII strings + * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3 + * + * @param string $value UTF-8 encoded string + * @return string + */ + public static function UTF8toBIFF8UnicodeShort($value, $arrcRuns = array()) + { + // character count + $ln = self::CountCharacters($value, 'UTF-8'); + + // option flags + if(empty($arrcRuns)){ + $opt = (self::getIsIconvEnabled() || self::getIsMbstringEnabled()) ? + 0x0001 : 0x0000; + $data = pack('CC', $ln, $opt); + // characters + $data .= self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); + } + else { + $data = pack('vC', $ln, 0x08); + $data .= pack('v', count($arrcRuns)); + // characters + $data .= $value; + foreach ($arrcRuns as $cRun){ + $data .= pack('v', $cRun['strlen']); + $data .= pack('v', $cRun['fontidx']); + } + } + return $data; + } + + /** + * Converts a UTF-8 string into BIFF8 Unicode string data (16-bit string length) + * Writes the string using uncompressed notation, no rich text, no Asian phonetics + * If mbstring extension is not available, ASCII is assumed, and compressed notation is used + * although this will give wrong results for non-ASCII strings + * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3 + * + * @param string $value UTF-8 encoded string + * @return string + */ + public static function UTF8toBIFF8UnicodeLong($value) + { + // character count + $ln = self::CountCharacters($value, 'UTF-8'); + + // option flags + $opt = (self::getIsIconvEnabled() || self::getIsMbstringEnabled()) ? + 0x0001 : 0x0000; + + // characters + $chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); + + $data = pack('vC', $ln, $opt) . $chars; + return $data; + } + + /** + * Convert string from one encoding to another. First try iconv, then mbstring, or no convertion + * + * @param string $value + * @param string $to Encoding to convert to, e.g. 'UTF-8' + * @param string $from Encoding to convert from, e.g. 'UTF-16LE' + * @return string + */ + public static function ConvertEncoding($value, $to, $from) + { + if (self::getIsIconvEnabled()) { + $value = iconv($from, $to, $value); + return $value; + } + + if (self::getIsMbstringEnabled()) { + $value = mb_convert_encoding($value, $to, $from); + return $value; + } + if($from == 'UTF-16LE'){ + return self::utf16_decode($value, false); + }else if($from == 'UTF-16BE'){ + return self::utf16_decode($value); + } + // else, no conversion + return $value; + } + + /** + * Decode UTF-16 encoded strings. + * + * Can handle both BOM'ed data and un-BOM'ed data. + * Assumes Big-Endian byte order if no BOM is available. + * This function was taken from http://php.net/manual/en/function.utf8-decode.php + * and $bom_be parameter added. + * + * @param string $str UTF-16 encoded data to decode. + * @return string UTF-8 / ISO encoded data. + * @access public + * @version 0.2 / 2010-05-13 + * @author Rasmus Andersson {@link http://rasmusandersson.se/} + * @author vadik56 + */ + public static function utf16_decode( $str, $bom_be=true ) { + if( strlen($str) < 2 ) return $str; + $c0 = ord($str{0}); + $c1 = ord($str{1}); + if( $c0 == 0xfe && $c1 == 0xff ) { $str = substr($str,2); } + elseif( $c0 == 0xff && $c1 == 0xfe ) { $str = substr($str,2); $bom_be = false; } + $len = strlen($str); + $newstr = ''; + for($i=0;$i<$len;$i+=2) { + if( $bom_be ) { $val = ord($str{$i}) << 4; $val += ord($str{$i+1}); } + else { $val = ord($str{$i+1}) << 4; $val += ord($str{$i}); } + $newstr .= ($val == 0x228) ? "\n" : chr($val); + } + return $newstr; + } + + /** + * Get character count. First try mbstring, then iconv, finally strlen + * + * @param string $value + * @param string $enc Encoding + * @return int Character count + */ + public static function CountCharacters($value, $enc = 'UTF-8') + { + if (self::getIsIconvEnabled()) { + return iconv_strlen($value, $enc); + } + + if (self::getIsMbstringEnabled()) { + return mb_strlen($value, $enc); + } + + // else strlen + return strlen($value); + } + + /** + * Get a substring of a UTF-8 encoded string + * + * @param string $pValue UTF-8 encoded string + * @param int $start Start offset + * @param int $length Maximum number of characters in substring + * @return string + */ + public static function Substring($pValue = '', $pStart = 0, $pLength = 0) + { + if (self::getIsIconvEnabled()) { + return iconv_substr($pValue, $pStart, $pLength, 'UTF-8'); + } + + if (self::getIsMbstringEnabled()) { + return mb_substr($pValue, $pStart, $pLength, 'UTF-8'); + } + + // else substr + return substr($pValue, $pStart, $pLength); + } + + + /** + * Identify whether a string contains a fractional numeric value, + * and convert it to a numeric if it is + * + * @param string &$operand string value to test + * @return boolean + */ + public static function convertToNumberIfFraction(&$operand) { + if (preg_match('/^'.self::STRING_REGEXP_FRACTION.'$/i', $operand, $match)) { + $sign = ($match[1] == '-') ? '-' : '+'; + $fractionFormula = '='.$sign.$match[2].$sign.$match[3]; + $operand = PHPExcel_Calculation::getInstance()->_calculateFormulaValue($fractionFormula); + return true; + } + return false; + } // function convertToNumberIfFraction() + + /** + * Get the decimal separator. If it has not yet been set explicitly, try to obtain number + * formatting information from locale. + * + * @return string + */ + public static function getDecimalSeparator() + { + if (!isset(self::$_decimalSeparator)) { + $localeconv = localeconv(); + self::$_decimalSeparator = ($localeconv['decimal_point'] != '') + ? $localeconv['decimal_point'] : $localeconv['mon_decimal_point']; + + if (self::$_decimalSeparator == '') { + // Default to . + self::$_decimalSeparator = '.'; + } + } + return self::$_decimalSeparator; + } + + /** + * Set the decimal separator. Only used by PHPExcel_Style_NumberFormat::toFormattedString() + * to format output by PHPExcel_Writer_HTML and PHPExcel_Writer_PDF + * + * @param string $pValue Character for decimal separator + */ + public static function setDecimalSeparator($pValue = '.') + { + self::$_decimalSeparator = $pValue; + } + + /** + * Get the thousands separator. If it has not yet been set explicitly, try to obtain number + * formatting information from locale. + * + * @return string + */ + public static function getThousandsSeparator() + { + if (!isset(self::$_thousandsSeparator)) { + $localeconv = localeconv(); + self::$_thousandsSeparator = ($localeconv['thousands_sep'] != '') + ? $localeconv['thousands_sep'] : $localeconv['mon_thousands_sep']; + } + return self::$_thousandsSeparator; + } + + /** + * Set the thousands separator. Only used by PHPExcel_Style_NumberFormat::toFormattedString() + * to format output by PHPExcel_Writer_HTML and PHPExcel_Writer_PDF + * + * @param string $pValue Character for thousands separator + */ + public static function setThousandsSeparator($pValue = ',') + { + self::$_thousandsSeparator = $pValue; + } + + /** + * Get the currency code. If it has not yet been set explicitly, try to obtain the + * symbol information from locale. + * + * @return string + */ + public static function getCurrencyCode() + { + if (!isset(self::$_currencyCode)) { + $localeconv = localeconv(); + self::$_currencyCode = ($localeconv['currency_symbol'] != '') + ? $localeconv['currency_symbol'] : $localeconv['int_curr_symbol']; + + if (self::$_currencyCode == '') { + // Default to $ + self::$_currencyCode = '$'; + } + } + return self::$_currencyCode; + } + + /** + * Set the currency code. Only used by PHPExcel_Style_NumberFormat::toFormattedString() + * to format output by PHPExcel_Writer_HTML and PHPExcel_Writer_PDF + * + * @param string $pValue Character for currency code + */ + public static function setCurrencyCode($pValue = '$') + { + self::$_currencyCode = $pValue; + } + + /** + * Convert SYLK encoded string to UTF-8 + * + * @param string $pValue + * @return string UTF-8 encoded string + */ + public static function SYLKtoUTF8($pValue = '') + { + // If there is no escape character in the string there is nothing to do + if (strpos($pValue, '') === false) { + return $pValue; + } + + foreach (self::$_SYLKCharacters as $k => $v) { + $pValue = str_replace($k, $v, $pValue); + } + + return $pValue; + } + + /** + * Retrieve any leading numeric part of a string, or return the full string if no leading numeric + * (handles basic integer or float, but not exponent or non decimal) + * + * @param string $value + * @return mixed string or only the leading numeric part of the string + */ + public static function testStringAsNumeric($value) + { + if (is_numeric($value)) + return $value; + $v = floatval($value); + return (is_numeric(substr($value,0,strlen($v)))) ? $v : $value; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/XMLWriter.php b/plugins/excel_reader/Classes/PHPExcel/Shared/XMLWriter.php new file mode 100755 index 0000000..403c099 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/XMLWriter.php @@ -0,0 +1,127 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +if (!defined('DATE_W3C')) { + define('DATE_W3C', 'Y-m-d\TH:i:sP'); +} + +if (!defined('DEBUGMODE_ENABLED')) { + define('DEBUGMODE_ENABLED', false); +} + + +/** + * PHPExcel_Shared_XMLWriter + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_XMLWriter extends XMLWriter { + /** Temporary storage method */ + const STORAGE_MEMORY = 1; + const STORAGE_DISK = 2; + + /** + * Temporary filename + * + * @var string + */ + private $_tempFileName = ''; + + /** + * Create a new PHPExcel_Shared_XMLWriter instance + * + * @param int $pTemporaryStorage Temporary storage location + * @param string $pTemporaryStorageFolder Temporary storage folder + */ + public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = NULL) { + // Open temporary storage + if ($pTemporaryStorage == self::STORAGE_MEMORY) { + $this->openMemory(); + } else { + // Create temporary filename + if ($pTemporaryStorageFolder === NULL) + $pTemporaryStorageFolder = PHPExcel_Shared_File::sys_get_temp_dir(); + $this->_tempFileName = @tempnam($pTemporaryStorageFolder, 'xml'); + + // Open storage + if ($this->openUri($this->_tempFileName) === false) { + // Fallback to memory... + $this->openMemory(); + } + } + + // Set default values + if (DEBUGMODE_ENABLED) { + $this->setIndent(true); + } + } + + /** + * Destructor + */ + public function __destruct() { + // Unlink temporary files + if ($this->_tempFileName != '') { + @unlink($this->_tempFileName); + } + } + + /** + * Get written data + * + * @return $data + */ + public function getData() { + if ($this->_tempFileName == '') { + return $this->outputMemory(true); + } else { + $this->flush(); + return file_get_contents($this->_tempFileName); + } + } + + /** + * Fallback method for writeRaw, introduced in PHP 5.2 + * + * @param string $text + * @return string + */ + public function writeRawData($text) + { + if (is_array($text)) { + $text = implode("\n",$text); + } + + if (method_exists($this, 'writeRaw')) { + return $this->writeRaw(htmlspecialchars($text)); + } + + return $this->text($text); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/ZipArchive.php b/plugins/excel_reader/Classes/PHPExcel/Shared/ZipArchive.php new file mode 100755 index 0000000..56d7c39 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/ZipArchive.php @@ -0,0 +1,114 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_ZipArchive + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +if (!defined('PCLZIP_TEMPORARY_DIR')) { + define('PCLZIP_TEMPORARY_DIR', PHPExcel_Shared_File::sys_get_temp_dir()); +} +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/PCLZip/pclzip.lib.php'; + + +/** + * PHPExcel_Shared_ZipArchive + * + * @category PHPExcel + * @package PHPExcel_Shared_ZipArchive + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_ZipArchive +{ + + /** constants */ + const OVERWRITE = 'OVERWRITE'; + const CREATE = 'CREATE'; + + + /** + * Temporary storage directory + * + * @var string + */ + private $_tempDir; + + /** + * Zip Archive Stream Handle + * + * @var string + */ + private $_zip; + + + /** + * Open a new zip archive + * + * @param string $fileName Filename for the zip archive + * @return boolean + */ + public function open($fileName) + { + $this->_tempDir = PHPExcel_Shared_File::sys_get_temp_dir(); + + $this->_zip = new PclZip($fileName); + + return true; + } + + + /** + * Close this zip archive + * + */ + public function close() + { + } + + + /** + * Add a new file to the zip archive from a string of raw data. + * + * @param string $localname Directory/Name of the file to add to the zip archive + * @param string $contents String of data to add to the zip archive + */ + public function addFromString($localname, $contents) + { + $filenameParts = pathinfo($localname); + + $handle = fopen($this->_tempDir.'/'.$filenameParts["basename"], "wb"); + fwrite($handle, $contents); + fclose($handle); + + $res = $this->_zip->add($this->_tempDir.'/'.$filenameParts["basename"], + PCLZIP_OPT_REMOVE_PATH, $this->_tempDir, + PCLZIP_OPT_ADD_PATH, $filenameParts["dirname"] + ); + if ($res == 0) { + throw new Exception("Error zipping files : " . $this->_zip->errorInfo(true)); + } + + unlink($this->_tempDir.'/'.$filenameParts["basename"]); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/ZipStreamWrapper.php b/plugins/excel_reader/Classes/PHPExcel/Shared/ZipStreamWrapper.php new file mode 100755 index 0000000..58d7e02 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/ZipStreamWrapper.php @@ -0,0 +1,183 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_ZipStreamWrapper + * + * @category PHPExcel + * @package PHPExcel_Shared + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Shared_ZipStreamWrapper { + /** + * Internal ZipAcrhive + * + * @var ZipAcrhive + */ + private $_archive; + + /** + * Filename in ZipAcrhive + * + * @var string + */ + private $_fileNameInArchive = ''; + + /** + * Position in file + * + * @var int + */ + private $_position = 0; + + /** + * Data + * + * @var mixed + */ + private $_data = ''; + + /** + * Register wrapper + */ + public static function register() { + @stream_wrapper_unregister("zip"); + @stream_wrapper_register("zip", __CLASS__); + } + + /** + * Implements support for fopen(). + * + * @param string $path resource name including scheme, e.g. + * @param string $mode only "r" is supported + * @param int $options mask of STREAM_REPORT_ERRORS and STREAM_USE_PATH + * @param string &$openedPath absolute path of the opened stream (out parameter) + * @return bool true on success + */ + public function stream_open($path, $mode, $options, &$opened_path) { + // Check for mode + if ($mode{0} != 'r') { + throw new Exception('Mode ' . $mode . ' is not supported. Only read mode is supported.'); + } + + $pos = strrpos($path, '#'); + $url['host'] = substr($path, 6, $pos - 6); // 6: strlen('zip://') + $url['fragment'] = substr($path, $pos + 1); + + // Open archive + $this->_archive = new ZipArchive(); + $this->_archive->open($url['host']); + + $this->_fileNameInArchive = $url['fragment']; + $this->_position = 0; + $this->_data = $this->_archive->getFromName( $this->_fileNameInArchive ); + + return true; + } + + /** + * Implements support for fstat(). + * + * @return boolean + */ + public function stream_stat() { + return $this->_archive->statName( $this->_fileNameInArchive ); + } + + /** + * Implements support for fread(), fgets() etc. + * + * @param int $count maximum number of bytes to read + * @return string + */ + function stream_read($count) { + $ret = substr($this->_data, $this->_position, $count); + $this->_position += strlen($ret); + return $ret; + } + + /** + * Returns the position of the file pointer, i.e. its offset into the file + * stream. Implements support for ftell(). + * + * @return int + */ + public function stream_tell() { + return $this->_position; + } + + /** + * EOF stream + * + * @return bool + */ + public function stream_eof() { + return $this->_position >= strlen($this->_data); + } + + /** + * Seek stream + * + * @param int $offset byte offset + * @param int $whence SEEK_SET, SEEK_CUR or SEEK_END + * @return bool + */ + public function stream_seek($offset, $whence) { + switch ($whence) { + case SEEK_SET: + if ($offset < strlen($this->_data) && $offset >= 0) { + $this->_position = $offset; + return true; + } else { + return false; + } + break; + + case SEEK_CUR: + if ($offset >= 0) { + $this->_position += $offset; + return true; + } else { + return false; + } + break; + + case SEEK_END: + if (strlen($this->_data) + $offset >= 0) { + $this->_position = strlen($this->_data) + $offset; + return true; + } else { + return false; + } + break; + + default: + return false; + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/trend/bestFitClass.php b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/bestFitClass.php new file mode 100755 index 0000000..d86424f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/bestFitClass.php @@ -0,0 +1,432 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Best_Fit + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Best_Fit +{ + /** + * Indicator flag for a calculation error + * + * @var boolean + **/ + protected $_error = False; + + /** + * Algorithm type to use for best-fit + * + * @var string + **/ + protected $_bestFitType = 'undetermined'; + + /** + * Number of entries in the sets of x- and y-value arrays + * + * @var int + **/ + protected $_valueCount = 0; + + /** + * X-value dataseries of values + * + * @var float[] + **/ + protected $_xValues = array(); + + /** + * Y-value dataseries of values + * + * @var float[] + **/ + protected $_yValues = array(); + + /** + * Flag indicating whether values should be adjusted to Y=0 + * + * @var boolean + **/ + protected $_adjustToZero = False; + + /** + * Y-value series of best-fit values + * + * @var float[] + **/ + protected $_yBestFitValues = array(); + + protected $_goodnessOfFit = 1; + + protected $_stdevOfResiduals = 0; + + protected $_covariance = 0; + + protected $_correlation = 0; + + protected $_SSRegression = 0; + + protected $_SSResiduals = 0; + + protected $_DFResiduals = 0; + + protected $_F = 0; + + protected $_slope = 0; + + protected $_slopeSE = 0; + + protected $_intersect = 0; + + protected $_intersectSE = 0; + + protected $_Xoffset = 0; + + protected $_Yoffset = 0; + + + public function getError() { + return $this->_error; + } // function getBestFitType() + + + public function getBestFitType() { + return $this->_bestFitType; + } // function getBestFitType() + + + /** + * Return the Y-Value for a specified value of X + * + * @param float $xValue X-Value + * @return float Y-Value + */ + public function getValueOfYForX($xValue) { + return False; + } // function getValueOfYForX() + + + /** + * Return the X-Value for a specified value of Y + * + * @param float $yValue Y-Value + * @return float X-Value + */ + public function getValueOfXForY($yValue) { + return False; + } // function getValueOfXForY() + + + /** + * Return the original set of X-Values + * + * @return float[] X-Values + */ + public function getXValues() { + return $this->_xValues; + } // function getValueOfXForY() + + + /** + * Return the Equation of the best-fit line + * + * @param int $dp Number of places of decimal precision to display + * @return string + */ + public function getEquation($dp=0) { + return False; + } // function getEquation() + + + /** + * Return the Slope of the line + * + * @param int $dp Number of places of decimal precision to display + * @return string + */ + public function getSlope($dp=0) { + if ($dp != 0) { + return round($this->_slope,$dp); + } + return $this->_slope; + } // function getSlope() + + + /** + * Return the standard error of the Slope + * + * @param int $dp Number of places of decimal precision to display + * @return string + */ + public function getSlopeSE($dp=0) { + if ($dp != 0) { + return round($this->_slopeSE,$dp); + } + return $this->_slopeSE; + } // function getSlopeSE() + + + /** + * Return the Value of X where it intersects Y = 0 + * + * @param int $dp Number of places of decimal precision to display + * @return string + */ + public function getIntersect($dp=0) { + if ($dp != 0) { + return round($this->_intersect,$dp); + } + return $this->_intersect; + } // function getIntersect() + + + /** + * Return the standard error of the Intersect + * + * @param int $dp Number of places of decimal precision to display + * @return string + */ + public function getIntersectSE($dp=0) { + if ($dp != 0) { + return round($this->_intersectSE,$dp); + } + return $this->_intersectSE; + } // function getIntersectSE() + + + /** + * Return the goodness of fit for this regression + * + * @param int $dp Number of places of decimal precision to return + * @return float + */ + public function getGoodnessOfFit($dp=0) { + if ($dp != 0) { + return round($this->_goodnessOfFit,$dp); + } + return $this->_goodnessOfFit; + } // function getGoodnessOfFit() + + + public function getGoodnessOfFitPercent($dp=0) { + if ($dp != 0) { + return round($this->_goodnessOfFit * 100,$dp); + } + return $this->_goodnessOfFit * 100; + } // function getGoodnessOfFitPercent() + + + /** + * Return the standard deviation of the residuals for this regression + * + * @param int $dp Number of places of decimal precision to return + * @return float + */ + public function getStdevOfResiduals($dp=0) { + if ($dp != 0) { + return round($this->_stdevOfResiduals,$dp); + } + return $this->_stdevOfResiduals; + } // function getStdevOfResiduals() + + + public function getSSRegression($dp=0) { + if ($dp != 0) { + return round($this->_SSRegression,$dp); + } + return $this->_SSRegression; + } // function getSSRegression() + + + public function getSSResiduals($dp=0) { + if ($dp != 0) { + return round($this->_SSResiduals,$dp); + } + return $this->_SSResiduals; + } // function getSSResiduals() + + + public function getDFResiduals($dp=0) { + if ($dp != 0) { + return round($this->_DFResiduals,$dp); + } + return $this->_DFResiduals; + } // function getDFResiduals() + + + public function getF($dp=0) { + if ($dp != 0) { + return round($this->_F,$dp); + } + return $this->_F; + } // function getF() + + + public function getCovariance($dp=0) { + if ($dp != 0) { + return round($this->_covariance,$dp); + } + return $this->_covariance; + } // function getCovariance() + + + public function getCorrelation($dp=0) { + if ($dp != 0) { + return round($this->_correlation,$dp); + } + return $this->_correlation; + } // function getCorrelation() + + + public function getYBestFitValues() { + return $this->_yBestFitValues; + } // function getYBestFitValues() + + + protected function _calculateGoodnessOfFit($sumX,$sumY,$sumX2,$sumY2,$sumXY,$meanX,$meanY, $const) { + $SSres = $SScov = $SScor = $SStot = $SSsex = 0.0; + foreach($this->_xValues as $xKey => $xValue) { + $bestFitY = $this->_yBestFitValues[$xKey] = $this->getValueOfYForX($xValue); + + $SSres += ($this->_yValues[$xKey] - $bestFitY) * ($this->_yValues[$xKey] - $bestFitY); + if ($const) { + $SStot += ($this->_yValues[$xKey] - $meanY) * ($this->_yValues[$xKey] - $meanY); + } else { + $SStot += $this->_yValues[$xKey] * $this->_yValues[$xKey]; + } + $SScov += ($this->_xValues[$xKey] - $meanX) * ($this->_yValues[$xKey] - $meanY); + if ($const) { + $SSsex += ($this->_xValues[$xKey] - $meanX) * ($this->_xValues[$xKey] - $meanX); + } else { + $SSsex += $this->_xValues[$xKey] * $this->_xValues[$xKey]; + } + } + + $this->_SSResiduals = $SSres; + $this->_DFResiduals = $this->_valueCount - 1 - $const; + + if ($this->_DFResiduals == 0.0) { + $this->_stdevOfResiduals = 0.0; + } else { + $this->_stdevOfResiduals = sqrt($SSres / $this->_DFResiduals); + } + if (($SStot == 0.0) || ($SSres == $SStot)) { + $this->_goodnessOfFit = 1; + } else { + $this->_goodnessOfFit = 1 - ($SSres / $SStot); + } + + $this->_SSRegression = $this->_goodnessOfFit * $SStot; + $this->_covariance = $SScov / $this->_valueCount; + $this->_correlation = ($this->_valueCount * $sumXY - $sumX * $sumY) / sqrt(($this->_valueCount * $sumX2 - pow($sumX,2)) * ($this->_valueCount * $sumY2 - pow($sumY,2))); + $this->_slopeSE = $this->_stdevOfResiduals / sqrt($SSsex); + $this->_intersectSE = $this->_stdevOfResiduals * sqrt(1 / ($this->_valueCount - ($sumX * $sumX) / $sumX2)); + if ($this->_SSResiduals != 0.0) { + if ($this->_DFResiduals == 0.0) { + $this->_F = 0.0; + } else { + $this->_F = $this->_SSRegression / ($this->_SSResiduals / $this->_DFResiduals); + } + } else { + if ($this->_DFResiduals == 0.0) { + $this->_F = 0.0; + } else { + $this->_F = $this->_SSRegression / $this->_DFResiduals; + } + } + } // function _calculateGoodnessOfFit() + + + protected function _leastSquareFit($yValues, $xValues, $const) { + // calculate sums + $x_sum = array_sum($xValues); + $y_sum = array_sum($yValues); + $meanX = $x_sum / $this->_valueCount; + $meanY = $y_sum / $this->_valueCount; + $mBase = $mDivisor = $xx_sum = $xy_sum = $yy_sum = 0.0; + for($i = 0; $i < $this->_valueCount; ++$i) { + $xy_sum += $xValues[$i] * $yValues[$i]; + $xx_sum += $xValues[$i] * $xValues[$i]; + $yy_sum += $yValues[$i] * $yValues[$i]; + + if ($const) { + $mBase += ($xValues[$i] - $meanX) * ($yValues[$i] - $meanY); + $mDivisor += ($xValues[$i] - $meanX) * ($xValues[$i] - $meanX); + } else { + $mBase += $xValues[$i] * $yValues[$i]; + $mDivisor += $xValues[$i] * $xValues[$i]; + } + } + + // calculate slope +// $this->_slope = (($this->_valueCount * $xy_sum) - ($x_sum * $y_sum)) / (($this->_valueCount * $xx_sum) - ($x_sum * $x_sum)); + $this->_slope = $mBase / $mDivisor; + + // calculate intersect +// $this->_intersect = ($y_sum - ($this->_slope * $x_sum)) / $this->_valueCount; + if ($const) { + $this->_intersect = $meanY - ($this->_slope * $meanX); + } else { + $this->_intersect = 0; + } + + $this->_calculateGoodnessOfFit($x_sum,$y_sum,$xx_sum,$yy_sum,$xy_sum,$meanX,$meanY,$const); + } // function _leastSquareFit() + + + /** + * Define the regression + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + function __construct($yValues, $xValues=array(), $const=True) { + // Calculate number of points + $nY = count($yValues); + $nX = count($xValues); + + // Define X Values if necessary + if ($nX == 0) { + $xValues = range(1,$nY); + $nX = $nY; + } elseif ($nY != $nX) { + // Ensure both arrays of points are the same size + $this->_error = True; + return False; + } + + $this->_valueCount = $nY; + $this->_xValues = $xValues; + $this->_yValues = $yValues; + } // function __construct() + +} // class bestFit diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php new file mode 100755 index 0000000..cc44678 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php @@ -0,0 +1,148 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +require_once(PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'); + + +/** + * PHPExcel_Exponential_Best_Fit + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Exponential_Best_Fit extends PHPExcel_Best_Fit +{ + /** + * Algorithm type to use for best-fit + * (Name of this trend class) + * + * @var string + **/ + protected $_bestFitType = 'exponential'; + + + /** + * Return the Y-Value for a specified value of X + * + * @param float $xValue X-Value + * @return float Y-Value + **/ + public function getValueOfYForX($xValue) { + return $this->getIntersect() * pow($this->getSlope(),($xValue - $this->_Xoffset)); + } // function getValueOfYForX() + + + /** + * Return the X-Value for a specified value of Y + * + * @param float $yValue Y-Value + * @return float X-Value + **/ + public function getValueOfXForY($yValue) { + return log(($yValue + $this->_Yoffset) / $this->getIntersect()) / log($this->getSlope()); + } // function getValueOfXForY() + + + /** + * Return the Equation of the best-fit line + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getEquation($dp=0) { + $slope = $this->getSlope($dp); + $intersect = $this->getIntersect($dp); + + return 'Y = '.$intersect.' * '.$slope.'^X'; + } // function getEquation() + + + /** + * Return the Slope of the line + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getSlope($dp=0) { + if ($dp != 0) { + return round(exp($this->_slope),$dp); + } + return exp($this->_slope); + } // function getSlope() + + + /** + * Return the Value of X where it intersects Y = 0 + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getIntersect($dp=0) { + if ($dp != 0) { + return round(exp($this->_intersect),$dp); + } + return exp($this->_intersect); + } // function getIntersect() + + + /** + * Execute the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + private function _exponential_regression($yValues, $xValues, $const) { + foreach($yValues as &$value) { + if ($value < 0.0) { + $value = 0 - log(abs($value)); + } elseif ($value > 0.0) { + $value = log($value); + } + } + unset($value); + + $this->_leastSquareFit($yValues, $xValues, $const); + } // function _exponential_regression() + + + /** + * Define the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + function __construct($yValues, $xValues=array(), $const=True) { + if (parent::__construct($yValues, $xValues) !== False) { + $this->_exponential_regression($yValues, $xValues, $const); + } + } // function __construct() + +} // class exponentialBestFit \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/trend/linearBestFitClass.php b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/linearBestFitClass.php new file mode 100755 index 0000000..9aa44fe --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/linearBestFitClass.php @@ -0,0 +1,111 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +require_once(PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'); + + +/** + * PHPExcel_Linear_Best_Fit + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Linear_Best_Fit extends PHPExcel_Best_Fit +{ + /** + * Algorithm type to use for best-fit + * (Name of this trend class) + * + * @var string + **/ + protected $_bestFitType = 'linear'; + + + /** + * Return the Y-Value for a specified value of X + * + * @param float $xValue X-Value + * @return float Y-Value + **/ + public function getValueOfYForX($xValue) { + return $this->getIntersect() + $this->getSlope() * $xValue; + } // function getValueOfYForX() + + + /** + * Return the X-Value for a specified value of Y + * + * @param float $yValue Y-Value + * @return float X-Value + **/ + public function getValueOfXForY($yValue) { + return ($yValue - $this->getIntersect()) / $this->getSlope(); + } // function getValueOfXForY() + + + /** + * Return the Equation of the best-fit line + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getEquation($dp=0) { + $slope = $this->getSlope($dp); + $intersect = $this->getIntersect($dp); + + return 'Y = '.$intersect.' + '.$slope.' * X'; + } // function getEquation() + + + /** + * Execute the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + private function _linear_regression($yValues, $xValues, $const) { + $this->_leastSquareFit($yValues, $xValues,$const); + } // function _linear_regression() + + + /** + * Define the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + function __construct($yValues, $xValues=array(), $const=True) { + if (parent::__construct($yValues, $xValues) !== False) { + $this->_linear_regression($yValues, $xValues, $const); + } + } // function __construct() + +} // class linearBestFit \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php new file mode 100755 index 0000000..38aaa88 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php @@ -0,0 +1,120 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +require_once(PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'); + + +/** + * PHPExcel_Logarithmic_Best_Fit + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Logarithmic_Best_Fit extends PHPExcel_Best_Fit +{ + /** + * Algorithm type to use for best-fit + * (Name of this trend class) + * + * @var string + **/ + protected $_bestFitType = 'logarithmic'; + + + /** + * Return the Y-Value for a specified value of X + * + * @param float $xValue X-Value + * @return float Y-Value + **/ + public function getValueOfYForX($xValue) { + return $this->getIntersect() + $this->getSlope() * log($xValue - $this->_Xoffset); + } // function getValueOfYForX() + + + /** + * Return the X-Value for a specified value of Y + * + * @param float $yValue Y-Value + * @return float X-Value + **/ + public function getValueOfXForY($yValue) { + return exp(($yValue - $this->getIntersect()) / $this->getSlope()); + } // function getValueOfXForY() + + + /** + * Return the Equation of the best-fit line + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getEquation($dp=0) { + $slope = $this->getSlope($dp); + $intersect = $this->getIntersect($dp); + + return 'Y = '.$intersect.' + '.$slope.' * log(X)'; + } // function getEquation() + + + /** + * Execute the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + private function _logarithmic_regression($yValues, $xValues, $const) { + foreach($xValues as &$value) { + if ($value < 0.0) { + $value = 0 - log(abs($value)); + } elseif ($value > 0.0) { + $value = log($value); + } + } + unset($value); + + $this->_leastSquareFit($yValues, $xValues, $const); + } // function _logarithmic_regression() + + + /** + * Define the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + function __construct($yValues, $xValues=array(), $const=True) { + if (parent::__construct($yValues, $xValues) !== False) { + $this->_logarithmic_regression($yValues, $xValues, $const); + } + } // function __construct() + +} // class logarithmicBestFit \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php new file mode 100755 index 0000000..7c05faf --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php @@ -0,0 +1,224 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'; +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/JAMA/Matrix.php'; + + +/** + * PHPExcel_Polynomial_Best_Fit + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Polynomial_Best_Fit extends PHPExcel_Best_Fit +{ + /** + * Algorithm type to use for best-fit + * (Name of this trend class) + * + * @var string + **/ + protected $_bestFitType = 'polynomial'; + + /** + * Polynomial order + * + * @protected + * @var int + **/ + protected $_order = 0; + + + /** + * Return the order of this polynomial + * + * @return int + **/ + public function getOrder() { + return $this->_order; + } // function getOrder() + + + /** + * Return the Y-Value for a specified value of X + * + * @param float $xValue X-Value + * @return float Y-Value + **/ + public function getValueOfYForX($xValue) { + $retVal = $this->getIntersect(); + $slope = $this->getSlope(); + foreach($slope as $key => $value) { + if ($value != 0.0) { + $retVal += $value * pow($xValue, $key + 1); + } + } + return $retVal; + } // function getValueOfYForX() + + + /** + * Return the X-Value for a specified value of Y + * + * @param float $yValue Y-Value + * @return float X-Value + **/ + public function getValueOfXForY($yValue) { + return ($yValue - $this->getIntersect()) / $this->getSlope(); + } // function getValueOfXForY() + + + /** + * Return the Equation of the best-fit line + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getEquation($dp=0) { + $slope = $this->getSlope($dp); + $intersect = $this->getIntersect($dp); + + $equation = 'Y = '.$intersect; + foreach($slope as $key => $value) { + if ($value != 0.0) { + $equation .= ' + '.$value.' * X'; + if ($key > 0) { + $equation .= '^'.($key + 1); + } + } + } + return $equation; + } // function getEquation() + + + /** + * Return the Slope of the line + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getSlope($dp=0) { + if ($dp != 0) { + $coefficients = array(); + foreach($this->_slope as $coefficient) { + $coefficients[] = round($coefficient,$dp); + } + return $coefficients; + } + return $this->_slope; + } // function getSlope() + + + public function getCoefficients($dp=0) { + return array_merge(array($this->getIntersect($dp)),$this->getSlope($dp)); + } // function getCoefficients() + + + /** + * Execute the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param int $order Order of Polynomial for this regression + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + private function _polynomial_regression($order, $yValues, $xValues, $const) { + // calculate sums + $x_sum = array_sum($xValues); + $y_sum = array_sum($yValues); + $xx_sum = $xy_sum = 0; + for($i = 0; $i < $this->_valueCount; ++$i) { + $xy_sum += $xValues[$i] * $yValues[$i]; + $xx_sum += $xValues[$i] * $xValues[$i]; + $yy_sum += $yValues[$i] * $yValues[$i]; + } + /* + * This routine uses logic from the PHP port of polyfit version 0.1 + * written by Michael Bommarito and Paul Meagher + * + * The function fits a polynomial function of order $order through + * a series of x-y data points using least squares. + * + */ + for ($i = 0; $i < $this->_valueCount; ++$i) { + for ($j = 0; $j <= $order; ++$j) { + $A[$i][$j] = pow($xValues[$i], $j); + } + } + for ($i=0; $i < $this->_valueCount; ++$i) { + $B[$i] = array($yValues[$i]); + } + $matrixA = new Matrix($A); + $matrixB = new Matrix($B); + $C = $matrixA->solve($matrixB); + + $coefficients = array(); + for($i = 0; $i < $C->m; ++$i) { + $r = $C->get($i, 0); + if (abs($r) <= pow(10, -9)) { + $r = 0; + } + $coefficients[] = $r; + } + + $this->_intersect = array_shift($coefficients); + $this->_slope = $coefficients; + + $this->_calculateGoodnessOfFit($x_sum,$y_sum,$xx_sum,$yy_sum,$xy_sum); + foreach($this->_xValues as $xKey => $xValue) { + $this->_yBestFitValues[$xKey] = $this->getValueOfYForX($xValue); + } + } // function _polynomial_regression() + + + /** + * Define the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param int $order Order of Polynomial for this regression + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + function __construct($order, $yValues, $xValues=array(), $const=True) { + if (parent::__construct($yValues, $xValues) !== False) { + if ($order < $this->_valueCount) { + $this->_bestFitType .= '_'.$order; + $this->_order = $order; + $this->_polynomial_regression($order, $yValues, $xValues, $const); + if (($this->getGoodnessOfFit() < 0.0) || ($this->getGoodnessOfFit() > 1.0)) { + $this->_error = True; + } + } else { + $this->_error = True; + } + } + } // function __construct() + +} // class polynomialBestFit \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/trend/powerBestFitClass.php b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/powerBestFitClass.php new file mode 100755 index 0000000..20b3674 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/powerBestFitClass.php @@ -0,0 +1,142 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'; + + +/** + * PHPExcel_Power_Best_Fit + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Power_Best_Fit extends PHPExcel_Best_Fit +{ + /** + * Algorithm type to use for best-fit + * (Name of this trend class) + * + * @var string + **/ + protected $_bestFitType = 'power'; + + + /** + * Return the Y-Value for a specified value of X + * + * @param float $xValue X-Value + * @return float Y-Value + **/ + public function getValueOfYForX($xValue) { + return $this->getIntersect() * pow(($xValue - $this->_Xoffset),$this->getSlope()); + } // function getValueOfYForX() + + + /** + * Return the X-Value for a specified value of Y + * + * @param float $yValue Y-Value + * @return float X-Value + **/ + public function getValueOfXForY($yValue) { + return pow((($yValue + $this->_Yoffset) / $this->getIntersect()),(1 / $this->getSlope())); + } // function getValueOfXForY() + + + /** + * Return the Equation of the best-fit line + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getEquation($dp=0) { + $slope = $this->getSlope($dp); + $intersect = $this->getIntersect($dp); + + return 'Y = '.$intersect.' * X^'.$slope; + } // function getEquation() + + + /** + * Return the Value of X where it intersects Y = 0 + * + * @param int $dp Number of places of decimal precision to display + * @return string + **/ + public function getIntersect($dp=0) { + if ($dp != 0) { + return round(exp($this->_intersect),$dp); + } + return exp($this->_intersect); + } // function getIntersect() + + + /** + * Execute the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + private function _power_regression($yValues, $xValues, $const) { + foreach($xValues as &$value) { + if ($value < 0.0) { + $value = 0 - log(abs($value)); + } elseif ($value > 0.0) { + $value = log($value); + } + } + unset($value); + foreach($yValues as &$value) { + if ($value < 0.0) { + $value = 0 - log(abs($value)); + } elseif ($value > 0.0) { + $value = log($value); + } + } + unset($value); + + $this->_leastSquareFit($yValues, $xValues, $const); + } // function _power_regression() + + + /** + * Define the regression and calculate the goodness of fit for a set of X and Y data values + * + * @param float[] $yValues The set of Y-values for this regression + * @param float[] $xValues The set of X-values for this regression + * @param boolean $const + */ + function __construct($yValues, $xValues=array(), $const=True) { + if (parent::__construct($yValues, $xValues) !== False) { + $this->_power_regression($yValues, $xValues, $const); + } + } // function __construct() + +} // class powerBestFit \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Shared/trend/trendClass.php b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/trendClass.php new file mode 100755 index 0000000..63ccc04 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Shared/trend/trendClass.php @@ -0,0 +1,156 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/linearBestFitClass.php'; +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/logarithmicBestFitClass.php'; +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/exponentialBestFitClass.php'; +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/powerBestFitClass.php'; +require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/polynomialBestFitClass.php'; + + +/** + * PHPExcel_trendClass + * + * @category PHPExcel + * @package PHPExcel_Shared_Trend + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class trendClass +{ + const TREND_LINEAR = 'Linear'; + const TREND_LOGARITHMIC = 'Logarithmic'; + const TREND_EXPONENTIAL = 'Exponential'; + const TREND_POWER = 'Power'; + const TREND_POLYNOMIAL_2 = 'Polynomial_2'; + const TREND_POLYNOMIAL_3 = 'Polynomial_3'; + const TREND_POLYNOMIAL_4 = 'Polynomial_4'; + const TREND_POLYNOMIAL_5 = 'Polynomial_5'; + const TREND_POLYNOMIAL_6 = 'Polynomial_6'; + const TREND_BEST_FIT = 'Bestfit'; + const TREND_BEST_FIT_NO_POLY = 'Bestfit_no_Polynomials'; + + /** + * Names of the best-fit trend analysis methods + * + * @var string[] + **/ + private static $_trendTypes = array( self::TREND_LINEAR, + self::TREND_LOGARITHMIC, + self::TREND_EXPONENTIAL, + self::TREND_POWER + ); + /** + * Names of the best-fit trend polynomial orders + * + * @var string[] + **/ + private static $_trendTypePolyOrders = array( self::TREND_POLYNOMIAL_2, + self::TREND_POLYNOMIAL_3, + self::TREND_POLYNOMIAL_4, + self::TREND_POLYNOMIAL_5, + self::TREND_POLYNOMIAL_6 + ); + + /** + * Cached results for each method when trying to identify which provides the best fit + * + * @var PHPExcel_Best_Fit[] + **/ + private static $_trendCache = array(); + + + public static function calculate($trendType=self::TREND_BEST_FIT, $yValues, $xValues=array(), $const=True) { + // Calculate number of points in each dataset + $nY = count($yValues); + $nX = count($xValues); + + // Define X Values if necessary + if ($nX == 0) { + $xValues = range(1,$nY); + $nX = $nY; + } elseif ($nY != $nX) { + // Ensure both arrays of points are the same size + trigger_error("trend(): Number of elements in coordinate arrays do not match.", E_USER_ERROR); + } + + $key = md5($trendType.$const.serialize($yValues).serialize($xValues)); + // Determine which trend method has been requested + switch ($trendType) { + // Instantiate and return the class for the requested trend method + case self::TREND_LINEAR : + case self::TREND_LOGARITHMIC : + case self::TREND_EXPONENTIAL : + case self::TREND_POWER : + if (!isset(self::$_trendCache[$key])) { + $className = 'PHPExcel_'.$trendType.'_Best_Fit'; + self::$_trendCache[$key] = new $className($yValues,$xValues,$const); + } + return self::$_trendCache[$key]; + break; + case self::TREND_POLYNOMIAL_2 : + case self::TREND_POLYNOMIAL_3 : + case self::TREND_POLYNOMIAL_4 : + case self::TREND_POLYNOMIAL_5 : + case self::TREND_POLYNOMIAL_6 : + if (!isset(self::$_trendCache[$key])) { + $order = substr($trendType,-1); + self::$_trendCache[$key] = new PHPExcel_Polynomial_Best_Fit($order,$yValues,$xValues,$const); + } + return self::$_trendCache[$key]; + break; + case self::TREND_BEST_FIT : + case self::TREND_BEST_FIT_NO_POLY : + // If the request is to determine the best fit regression, then we test each trend line in turn + // Start by generating an instance of each available trend method + foreach(self::$_trendTypes as $trendMethod) { + $className = 'PHPExcel_'.$trendMethod.'BestFit'; + $bestFit[$trendMethod] = new $className($yValues,$xValues,$const); + $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit(); + } + if ($trendType != self::TREND_BEST_FIT_NO_POLY) { + foreach(self::$_trendTypePolyOrders as $trendMethod) { + $order = substr($trendMethod,-1); + $bestFit[$trendMethod] = new PHPExcel_Polynomial_Best_Fit($order,$yValues,$xValues,$const); + if ($bestFit[$trendMethod]->getError()) { + unset($bestFit[$trendMethod]); + } else { + $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit(); + } + } + } + // Determine which of our trend lines is the best fit, and then we return the instance of that trend class + arsort($bestFitValue); + $bestFitType = key($bestFitValue); + return $bestFit[$bestFitType]; + break; + default : + return false; + } + } // function calculate() + +} // class trendClass \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Style.php b/plugins/excel_reader/Classes/PHPExcel/Style.php new file mode 100755 index 0000000..2fdef0e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style.php @@ -0,0 +1,684 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style implements PHPExcel_IComparable +{ + /** + * Font + * + * @var PHPExcel_Style_Font + */ + private $_font; + + /** + * Fill + * + * @var PHPExcel_Style_Fill + */ + private $_fill; + + /** + * Borders + * + * @var PHPExcel_Style_Borders + */ + private $_borders; + + /** + * Alignment + * + * @var PHPExcel_Style_Alignment + */ + private $_alignment; + + /** + * Number Format + * + * @var PHPExcel_Style_NumberFormat + */ + private $_numberFormat; + + /** + * Conditional styles + * + * @var PHPExcel_Style_Conditional[] + */ + private $_conditionalStyles; + + /** + * Protection + * + * @var PHPExcel_Style_Protection + */ + private $_protection; + + /** + * Style supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for style supervisor + * + * @var PHPExcel + */ + private $_parent; + + /** + * Index of style in collection. Only used for real style. + * + * @var int + */ + private $_index; + + /** + * Create a new PHPExcel_Style + * + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + // Initialise values + $this->_conditionalStyles = array(); + $this->_font = new PHPExcel_Style_Font($isSupervisor, $isConditional); + $this->_fill = new PHPExcel_Style_Fill($isSupervisor, $isConditional); + $this->_borders = new PHPExcel_Style_Borders($isSupervisor, $isConditional); + $this->_alignment = new PHPExcel_Style_Alignment($isSupervisor, $isConditional); + $this->_numberFormat = new PHPExcel_Style_NumberFormat($isSupervisor, $isConditional); + $this->_protection = new PHPExcel_Style_Protection($isSupervisor, $isConditional); + + // bind parent if we are a supervisor + if ($isSupervisor) { + $this->_font->bindParent($this); + $this->_fill->bindParent($this); + $this->_borders->bindParent($this); + $this->_alignment->bindParent($this); + $this->_numberFormat->bindParent($this); + $this->_protection->bindParent($this); + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param PHPExcel $parent + * @return PHPExcel_Style + */ + public function bindParent($parent) + { + $this->_parent = $parent; + return $this; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style + */ + public function getSharedComponent() + { + $activeSheet = $this->getActiveSheet(); + $selectedCell = $this->getActiveCell(); // e.g. 'A1' + + if ($activeSheet->cellExists($selectedCell)) { + $xfIndex = $activeSheet->getCell($selectedCell)->getXfIndex(); + } else { + $xfIndex = 0; + } + + return $this->_parent->getCellXfByIndex($xfIndex); + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->_parent->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->_parent->getActiveSheet()->getActiveCell(); + } + + /** + * Get parent. Only used for style supervisor + * + * @return PHPExcel + */ + public function getParent() + { + return $this->_parent; + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->applyFromArray( + * array( + * 'font' => array( + * 'name' => 'Arial', + * 'bold' => true, + * 'italic' => false, + * 'underline' => PHPExcel_Style_Font::UNDERLINE_DOUBLE, + * 'strike' => false, + * 'color' => array( + * 'rgb' => '808080' + * ) + * ), + * 'borders' => array( + * 'bottom' => array( + * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, + * 'color' => array( + * 'rgb' => '808080' + * ) + * ), + * 'top' => array( + * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, + * 'color' => array( + * 'rgb' => '808080' + * ) + * ) + * ) + * ) + * ); + * </code> + * + * @param array $pStyles Array containing style information + * @param boolean $pAdvanced Advanced mode for setting borders. + * @throws Exception + * @return PHPExcel_Style + */ + public function applyFromArray($pStyles = null, $pAdvanced = true) { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + + $pRange = $this->getSelectedCells(); + + // Uppercase coordinate + $pRange = strtoupper($pRange); + + // Is it a cell range or a single cell? + if (strpos($pRange, ':') === false) { + $rangeA = $pRange; + $rangeB = $pRange; + } else { + list($rangeA, $rangeB) = explode(':', $pRange); + } + + // Calculate range outer borders + $rangeStart = PHPExcel_Cell::coordinateFromString($rangeA); + $rangeEnd = PHPExcel_Cell::coordinateFromString($rangeB); + + // Translate column into index + $rangeStart[0] = PHPExcel_Cell::columnIndexFromString($rangeStart[0]) - 1; + $rangeEnd[0] = PHPExcel_Cell::columnIndexFromString($rangeEnd[0]) - 1; + + // Make sure we can loop upwards on rows and columns + if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) { + $tmp = $rangeStart; + $rangeStart = $rangeEnd; + $rangeEnd = $tmp; + } + + // ADVANCED MODE: + + if ($pAdvanced && isset($pStyles['borders'])) { + + // 'allborders' is a shorthand property for 'outline' and 'inside' and + // it applies to components that have not been set explicitly + if (isset($pStyles['borders']['allborders'])) { + foreach (array('outline', 'inside') as $component) { + if (!isset($pStyles['borders'][$component])) { + $pStyles['borders'][$component] = $pStyles['borders']['allborders']; + } + } + unset($pStyles['borders']['allborders']); // not needed any more + } + + // 'outline' is a shorthand property for 'top', 'right', 'bottom', 'left' + // it applies to components that have not been set explicitly + if (isset($pStyles['borders']['outline'])) { + foreach (array('top', 'right', 'bottom', 'left') as $component) { + if (!isset($pStyles['borders'][$component])) { + $pStyles['borders'][$component] = $pStyles['borders']['outline']; + } + } + unset($pStyles['borders']['outline']); // not needed any more + } + + // 'inside' is a shorthand property for 'vertical' and 'horizontal' + // it applies to components that have not been set explicitly + if (isset($pStyles['borders']['inside'])) { + foreach (array('vertical', 'horizontal') as $component) { + if (!isset($pStyles['borders'][$component])) { + $pStyles['borders'][$component] = $pStyles['borders']['inside']; + } + } + unset($pStyles['borders']['inside']); // not needed any more + } + + // width and height characteristics of selection, 1, 2, or 3 (for 3 or more) + $xMax = min($rangeEnd[0] - $rangeStart[0] + 1, 3); + $yMax = min($rangeEnd[1] - $rangeStart[1] + 1, 3); + + // loop through up to 3 x 3 = 9 regions + for ($x = 1; $x <= $xMax; ++$x) { + // start column index for region + $colStart = ($x == 3) ? + PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0]) + : PHPExcel_Cell::stringFromColumnIndex($rangeStart[0] + $x - 1); + + // end column index for region + $colEnd = ($x == 1) ? + PHPExcel_Cell::stringFromColumnIndex($rangeStart[0]) + : PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0] - $xMax + $x); + + for ($y = 1; $y <= $yMax; ++$y) { + + // which edges are touching the region + $edges = array(); + + // are we at left edge + if ($x == 1) { + $edges[] = 'left'; + } + + // are we at right edge + if ($x == $xMax) { + $edges[] = 'right'; + } + + // are we at top edge? + if ($y == 1) { + $edges[] = 'top'; + } + + // are we at bottom edge? + if ($y == $yMax) { + $edges[] = 'bottom'; + } + + // start row index for region + $rowStart = ($y == 3) ? + $rangeEnd[1] : $rangeStart[1] + $y - 1; + + // end row index for region + $rowEnd = ($y == 1) ? + $rangeStart[1] : $rangeEnd[1] - $yMax + $y; + + // build range for region + $range = $colStart . $rowStart . ':' . $colEnd . $rowEnd; + + // retrieve relevant style array for region + $regionStyles = $pStyles; + unset($regionStyles['borders']['inside']); + + // what are the inner edges of the region when looking at the selection + $innerEdges = array_diff( array('top', 'right', 'bottom', 'left'), $edges ); + + // inner edges that are not touching the region should take the 'inside' border properties if they have been set + foreach ($innerEdges as $innerEdge) { + switch ($innerEdge) { + case 'top': + case 'bottom': + // should pick up 'horizontal' border property if set + if (isset($pStyles['borders']['horizontal'])) { + $regionStyles['borders'][$innerEdge] = $pStyles['borders']['horizontal']; + } else { + unset($regionStyles['borders'][$innerEdge]); + } + break; + case 'left': + case 'right': + // should pick up 'vertical' border property if set + if (isset($pStyles['borders']['vertical'])) { + $regionStyles['borders'][$innerEdge] = $pStyles['borders']['vertical']; + } else { + unset($regionStyles['borders'][$innerEdge]); + } + break; + } + } + + // apply region style to region by calling applyFromArray() in simple mode + $this->getActiveSheet()->getStyle($range)->applyFromArray($regionStyles, false); + } + } + return $this; + } + + // SIMPLE MODE: + + // Selection type, inspect + if (preg_match('/^[A-Z]+1:[A-Z]+1048576$/', $pRange)) { + $selectionType = 'COLUMN'; + } else if (preg_match('/^A[0-9]+:XFD[0-9]+$/', $pRange)) { + $selectionType = 'ROW'; + } else { + $selectionType = 'CELL'; + } + + // First loop through columns, rows, or cells to find out which styles are affected by this operation + switch ($selectionType) { + case 'COLUMN': + $oldXfIndexes = array(); + for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { + $oldXfIndexes[$this->getActiveSheet()->getColumnDimensionByColumn($col)->getXfIndex()] = true; + } + break; + + case 'ROW': + $oldXfIndexes = array(); + for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { + if ($this->getActiveSheet()->getRowDimension($row)->getXfIndex() == null) { + $oldXfIndexes[0] = true; // row without explicit style should be formatted based on default style + } else { + $oldXfIndexes[$this->getActiveSheet()->getRowDimension($row)->getXfIndex()] = true; + } + } + break; + + case 'CELL': + $oldXfIndexes = array(); + for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { + for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { + $oldXfIndexes[$this->getActiveSheet()->getCellByColumnAndRow($col, $row)->getXfIndex()] = true; + } + } + break; + } + + // clone each of the affected styles, apply the style arrray, and add the new styles to the workbook + $workbook = $this->getActiveSheet()->getParent(); + foreach ($oldXfIndexes as $oldXfIndex => $dummy) { + $style = $workbook->getCellXfByIndex($oldXfIndex); + $newStyle = clone $style; + $newStyle->applyFromArray($pStyles); + + if ($existingStyle = $workbook->getCellXfByHashCode($newStyle->getHashCode())) { + // there is already such cell Xf in our collection + $newXfIndexes[$oldXfIndex] = $existingStyle->getIndex(); + } else { + // we don't have such a cell Xf, need to add + $workbook->addCellXf($newStyle); + $newXfIndexes[$oldXfIndex] = $newStyle->getIndex(); + } + } + + // Loop through columns, rows, or cells again and update the XF index + switch ($selectionType) { + case 'COLUMN': + for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { + $columnDimension = $this->getActiveSheet()->getColumnDimensionByColumn($col); + $oldXfIndex = $columnDimension->getXfIndex(); + $columnDimension->setXfIndex($newXfIndexes[$oldXfIndex]); + } + break; + + case 'ROW': + for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { + $rowDimension = $this->getActiveSheet()->getRowDimension($row); + $oldXfIndex = $rowDimension->getXfIndex() === null ? + 0 : $rowDimension->getXfIndex(); // row without explicit style should be formatted based on default style + $rowDimension->setXfIndex($newXfIndexes[$oldXfIndex]); + } + break; + + case 'CELL': + for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { + for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { + $cell = $this->getActiveSheet()->getCellByColumnAndRow($col, $row); + $oldXfIndex = $cell->getXfIndex(); + $cell->setXfIndex($newXfIndexes[$oldXfIndex]); + } + } + break; + } + + } else { + // not a supervisor, just apply the style array directly on style object + if (array_key_exists('fill', $pStyles)) { + $this->getFill()->applyFromArray($pStyles['fill']); + } + if (array_key_exists('font', $pStyles)) { + $this->getFont()->applyFromArray($pStyles['font']); + } + if (array_key_exists('borders', $pStyles)) { + $this->getBorders()->applyFromArray($pStyles['borders']); + } + if (array_key_exists('alignment', $pStyles)) { + $this->getAlignment()->applyFromArray($pStyles['alignment']); + } + if (array_key_exists('numberformat', $pStyles)) { + $this->getNumberFormat()->applyFromArray($pStyles['numberformat']); + } + if (array_key_exists('protection', $pStyles)) { + $this->getProtection()->applyFromArray($pStyles['protection']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get Fill + * + * @return PHPExcel_Style_Fill + */ + public function getFill() { + return $this->_fill; + } + + /** + * Get Font + * + * @return PHPExcel_Style_Font + */ + public function getFont() { + return $this->_font; + } + + /** + * Set font + * + * @param PHPExcel_Style_Font $font + * @return PHPExcel_Style + */ + public function setFont(PHPExcel_Style_Font $font) + { + $this->_font = $font; + return $this; + } + + /** + * Get Borders + * + * @return PHPExcel_Style_Borders + */ + public function getBorders() { + return $this->_borders; + } + + /** + * Get Alignment + * + * @return PHPExcel_Style_Alignment + */ + public function getAlignment() { + return $this->_alignment; + } + + /** + * Get Number Format + * + * @return PHPExcel_Style_NumberFormat + */ + public function getNumberFormat() { + return $this->_numberFormat; + } + + /** + * Get Conditional Styles. Only used on supervisor. + * + * @return PHPExcel_Style_Conditional[] + */ + public function getConditionalStyles() { + return $this->getActiveSheet()->getConditionalStyles($this->getActiveCell()); + } + + /** + * Set Conditional Styles. Only used on supervisor. + * + * @param PHPExcel_Style_Conditional[] $pValue Array of condtional styles + * @return PHPExcel_Style + */ + public function setConditionalStyles($pValue = null) { + if (is_array($pValue)) { + $this->getActiveSheet()->setConditionalStyles($this->getSelectedCells(), $pValue); + } + return $this; + } + + /** + * Get Protection + * + * @return PHPExcel_Style_Protection + */ + public function getProtection() { + return $this->_protection; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + $hashConditionals = ''; + foreach ($this->_conditionalStyles as $conditional) { + $hashConditionals .= $conditional->getHashCode(); + } + + return md5( + $this->_fill->getHashCode() + . $this->_font->getHashCode() + . $this->_borders->getHashCode() + . $this->_alignment->getHashCode() + . $this->_numberFormat->getHashCode() + . $hashConditionals + . $this->_protection->getHashCode() + . __CLASS__ + ); + } + + /** + * Get own index in style collection + * + * @return int + */ + public function getIndex() + { + return $this->_index; + } + + /** + * Set own index in style collection + * + * @param int $pValue + */ + public function setIndex($pValue) + { + $this->_index = $pValue; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/Alignment.php b/plugins/excel_reader/Classes/PHPExcel/Style/Alignment.php new file mode 100755 index 0000000..81ca387 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/Alignment.php @@ -0,0 +1,494 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style_Alignment + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_Alignment implements PHPExcel_IComparable +{ + /* Horizontal alignment styles */ + const HORIZONTAL_GENERAL = 'general'; + const HORIZONTAL_LEFT = 'left'; + const HORIZONTAL_RIGHT = 'right'; + const HORIZONTAL_CENTER = 'center'; + const HORIZONTAL_CENTER_CONTINUOUS = 'centerContinuous'; + const HORIZONTAL_JUSTIFY = 'justify'; + + /* Vertical alignment styles */ + const VERTICAL_BOTTOM = 'bottom'; + const VERTICAL_TOP = 'top'; + const VERTICAL_CENTER = 'center'; + const VERTICAL_JUSTIFY = 'justify'; + + /** + * Horizontal + * + * @var string + */ + private $_horizontal = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; + + /** + * Vertical + * + * @var string + */ + private $_vertical = PHPExcel_Style_Alignment::VERTICAL_BOTTOM; + + /** + * Text rotation + * + * @var int + */ + private $_textRotation = 0; + + /** + * Wrap text + * + * @var boolean + */ + private $_wrapText = false; + + /** + * Shrink to fit + * + * @var boolean + */ + private $_shrinkToFit = false; + + /** + * Indent - only possible with horizontal alignment left and right + * + * @var int + */ + private $_indent = 0; + + /** + * Parent Borders + * + * @var _parentPropertyName string + */ + private $_parentPropertyName; + + /** + * Supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for supervisor + * + * @var PHPExcel_Style + */ + private $_parent; + + /** + * Create a new PHPExcel_Style_Alignment + * + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + if ($isConditional) { + $this->_horizontal = NULL; + $this->_vertical = NULL; + $this->_textRotation = NULL; + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param PHPExcel $parent + * @return PHPExcel_Style_Alignment + */ + public function bindParent($parent) + { + $this->_parent = $parent; + return $this; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style_Alignment + */ + public function getSharedComponent() + { + return $this->_parent->getSharedComponent()->getAlignment(); + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->getActiveSheet()->getActiveCell(); + } + + /** + * Build style array from subcomponents + * + * @param array $array + * @return array + */ + public function getStyleArray($array) + { + return array('alignment' => $array); + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()->applyFromArray( + * array( + * 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, + * 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, + * 'rotation' => 0, + * 'wrap' => true + * ) + * ); + * </code> + * + * @param array $pStyles Array containing style information + * @throws Exception + * @return PHPExcel_Style_Alignment + */ + public function applyFromArray($pStyles = null) { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); + } else { + if (array_key_exists('horizontal', $pStyles)) { + $this->setHorizontal($pStyles['horizontal']); + } + if (array_key_exists('vertical', $pStyles)) { + $this->setVertical($pStyles['vertical']); + } + if (array_key_exists('rotation', $pStyles)) { + $this->setTextRotation($pStyles['rotation']); + } + if (array_key_exists('wrap', $pStyles)) { + $this->setWrapText($pStyles['wrap']); + } + if (array_key_exists('shrinkToFit', $pStyles)) { + $this->setShrinkToFit($pStyles['shrinkToFit']); + } + if (array_key_exists('indent', $pStyles)) { + $this->setIndent($pStyles['indent']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get Horizontal + * + * @return string + */ + public function getHorizontal() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHorizontal(); + } + return $this->_horizontal; + } + + /** + * Set Horizontal + * + * @param string $pValue + * @return PHPExcel_Style_Alignment + */ + public function setHorizontal($pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL) { + if ($pValue == '') { + $pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; + } + + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('horizontal' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } + else { + $this->_horizontal = $pValue; + } + return $this; + } + + /** + * Get Vertical + * + * @return string + */ + public function getVertical() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getVertical(); + } + return $this->_vertical; + } + + /** + * Set Vertical + * + * @param string $pValue + * @return PHPExcel_Style_Alignment + */ + public function setVertical($pValue = PHPExcel_Style_Alignment::VERTICAL_BOTTOM) { + if ($pValue == '') { + $pValue = PHPExcel_Style_Alignment::VERTICAL_BOTTOM; + } + + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('vertical' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_vertical = $pValue; + } + return $this; + } + + /** + * Get TextRotation + * + * @return int + */ + public function getTextRotation() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getTextRotation(); + } + return $this->_textRotation; + } + + /** + * Set TextRotation + * + * @param int $pValue + * @throws Exception + * @return PHPExcel_Style_Alignment + */ + public function setTextRotation($pValue = 0) { + // Excel2007 value 255 => PHPExcel value -165 + if ($pValue == 255) { + $pValue = -165; + } + + // Set rotation + if ( ($pValue >= -90 && $pValue <= 90) || $pValue == -165 ) { + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('rotation' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_textRotation = $pValue; + } + } else { + throw new Exception("Text rotation should be a value between -90 and 90."); + } + + return $this; + } + + /** + * Get Wrap Text + * + * @return boolean + */ + public function getWrapText() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getWrapText(); + } + return $this->_wrapText; + } + + /** + * Set Wrap Text + * + * @param boolean $pValue + * @return PHPExcel_Style_Alignment + */ + public function setWrapText($pValue = false) { + if ($pValue == '') { + $pValue = false; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('wrap' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_wrapText = $pValue; + } + return $this; + } + + /** + * Get Shrink to fit + * + * @return boolean + */ + public function getShrinkToFit() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getShrinkToFit(); + } + return $this->_shrinkToFit; + } + + /** + * Set Shrink to fit + * + * @param boolean $pValue + * @return PHPExcel_Style_Alignment + */ + public function setShrinkToFit($pValue = false) { + if ($pValue == '') { + $pValue = false; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('shrinkToFit' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_shrinkToFit = $pValue; + } + return $this; + } + + /** + * Get indent + * + * @return int + */ + public function getIndent() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getIndent(); + } + return $this->_indent; + } + + /** + * Set indent + * + * @param int $pValue + * @return PHPExcel_Style_Alignment + */ + public function setIndent($pValue = 0) { + if ($pValue > 0) { + if ($this->getHorizontal() != self::HORIZONTAL_GENERAL && $this->getHorizontal() != self::HORIZONTAL_LEFT && $this->getHorizontal() != self::HORIZONTAL_RIGHT) { + $pValue = 0; // indent not supported + } + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('indent' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_indent = $pValue; + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHashCode(); + } + return md5( + $this->_horizontal + . $this->_vertical + . $this->_textRotation + . ($this->_wrapText ? 't' : 'f') + . ($this->_shrinkToFit ? 't' : 'f') + . $this->_indent + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/Border.php b/plugins/excel_reader/Classes/PHPExcel/Style/Border.php new file mode 100755 index 0000000..6f8767f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/Border.php @@ -0,0 +1,388 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style_Border + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_Border implements PHPExcel_IComparable +{ + /* Border style */ + const BORDER_NONE = 'none'; + const BORDER_DASHDOT = 'dashDot'; + const BORDER_DASHDOTDOT = 'dashDotDot'; + const BORDER_DASHED = 'dashed'; + const BORDER_DOTTED = 'dotted'; + const BORDER_DOUBLE = 'double'; + const BORDER_HAIR = 'hair'; + const BORDER_MEDIUM = 'medium'; + const BORDER_MEDIUMDASHDOT = 'mediumDashDot'; + const BORDER_MEDIUMDASHDOTDOT = 'mediumDashDotDot'; + const BORDER_MEDIUMDASHED = 'mediumDashed'; + const BORDER_SLANTDASHDOT = 'slantDashDot'; + const BORDER_THICK = 'thick'; + const BORDER_THIN = 'thin'; + + /** + * Border style + * + * @var string + */ + private $_borderStyle = PHPExcel_Style_Border::BORDER_NONE; + + /** + * Border color + * + * @var PHPExcel_Style_Color + */ + private $_color; + + /** + * Supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for supervisor + * + * @var PHPExcel_Style_Borders + */ + private $_parent; + + /** + * Parent property name + * + * @var string + */ + private $_parentPropertyName; + + /** + * Create a new PHPExcel_Style_Border + * + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + // Initialise values + $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor); + + // bind parent if we are a supervisor + if ($isSupervisor) { + $this->_color->bindParent($this, '_color'); + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param PHPExcel_Style_Borders $parent + * @param string $parentPropertyName + * @return PHPExcel_Style_Border + */ + public function bindParent($parent, $parentPropertyName) + { + $this->_parent = $parent; + $this->_parentPropertyName = $parentPropertyName; + return $this; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style_Border + * @throws Exception + */ + public function getSharedComponent() + { + switch ($this->_parentPropertyName) { + case '_allBorders': + case '_horizontal': + case '_inside': + case '_outline': + case '_vertical': + throw new Exception('Cannot get shared component for a pseudo-border.'); + break; + + case '_bottom': + return $this->_parent->getSharedComponent()->getBottom(); + break; + + case '_diagonal': + return $this->_parent->getSharedComponent()->getDiagonal(); + break; + + case '_left': + return $this->_parent->getSharedComponent()->getLeft(); + break; + + case '_right': + return $this->_parent->getSharedComponent()->getRight(); + break; + + case '_top': + return $this->_parent->getSharedComponent()->getTop(); + break; + + } + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->getActiveSheet()->getActiveCell(); + } + + /** + * Build style array from subcomponents + * + * @param array $array + * @return array + */ + public function getStyleArray($array) + { + switch ($this->_parentPropertyName) { + case '_allBorders': + $key = 'allborders'; + break; + + case '_bottom': + $key = 'bottom'; + break; + + case '_diagonal': + $key = 'diagonal'; + break; + + case '_horizontal': + $key = 'horizontal'; + break; + + case '_inside': + $key = 'inside'; + break; + + case '_left': + $key = 'left'; + break; + + case '_outline': + $key = 'outline'; + break; + + case '_right': + $key = 'right'; + break; + + case '_top': + $key = 'top'; + break; + + case '_vertical': + $key = 'vertical'; + break; + } + return $this->_parent->getStyleArray(array($key => $array)); + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->getTop()->applyFromArray( + * array( + * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, + * 'color' => array( + * 'rgb' => '808080' + * ) + * ) + * ); + * </code> + * + * @param array $pStyles Array containing style information + * @throws Exception + * @return PHPExcel_Style_Border + */ + public function applyFromArray($pStyles = null) { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); + } else { + if (array_key_exists('style', $pStyles)) { + $this->setBorderStyle($pStyles['style']); + } + if (array_key_exists('color', $pStyles)) { + $this->getColor()->applyFromArray($pStyles['color']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get Border style + * + * @return string + */ + public function getBorderStyle() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getBorderStyle(); + } + return $this->_borderStyle; + } + + /** + * Set Border style + * + * @param string $pValue + * @return PHPExcel_Style_Border + */ + public function setBorderStyle($pValue = PHPExcel_Style_Border::BORDER_NONE) { + + if ($pValue == '') { + $pValue = PHPExcel_Style_Border::BORDER_NONE; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('style' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_borderStyle = $pValue; + } + return $this; + } + + /** + * Get Border Color + * + * @return PHPExcel_Style_Color + */ + public function getColor() { + return $this->_color; + } + + /** + * Set Border Color + * + * @param PHPExcel_Style_Color $pValue + * @throws Exception + * @return PHPExcel_Style_Border + */ + public function setColor(PHPExcel_Style_Color $pValue = null) { + // make sure parameter is a real color and not a supervisor + $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; + + if ($this->_isSupervisor) { + $styleArray = $this->getColor()->getStyleArray(array('argb' => $color->getARGB())); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_color = $color; + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHashCode(); + } + return md5( + $this->_borderStyle + . $this->_color->getHashCode() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/Borders.php b/plugins/excel_reader/Classes/PHPExcel/Style/Borders.php new file mode 100755 index 0000000..d8a3196 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/Borders.php @@ -0,0 +1,512 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style_Borders + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_Borders implements PHPExcel_IComparable +{ + /* Diagonal directions */ + const DIAGONAL_NONE = 0; + const DIAGONAL_UP = 1; + const DIAGONAL_DOWN = 2; + const DIAGONAL_BOTH = 3; + + /** + * Left + * + * @var PHPExcel_Style_Border + */ + private $_left; + + /** + * Right + * + * @var PHPExcel_Style_Border + */ + private $_right; + + /** + * Top + * + * @var PHPExcel_Style_Border + */ + private $_top; + + /** + * Bottom + * + * @var PHPExcel_Style_Border + */ + private $_bottom; + + /** + * Diagonal + * + * @var PHPExcel_Style_Border + */ + private $_diagonal; + + /** + * DiagonalDirection + * + * @var int + */ + private $_diagonalDirection; + + /** + * All borders psedo-border. Only applies to supervisor. + * + * @var PHPExcel_Style_Border + */ + private $_allBorders; + + /** + * Outline psedo-border. Only applies to supervisor. + * + * @var PHPExcel_Style_Border + */ + private $_outline; + + /** + * Inside psedo-border. Only applies to supervisor. + * + * @var PHPExcel_Style_Border + */ + private $_inside; + + /** + * Vertical pseudo-border. Only applies to supervisor. + * + * @var PHPExcel_Style_Border + */ + private $_vertical; + + /** + * Horizontal pseudo-border. Only applies to supervisor. + * + * @var PHPExcel_Style_Border + */ + private $_horizontal; + + /** + * Parent Borders + * + * @var _parentPropertyName string + */ + private $_parentPropertyName; + + /** + * Supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for supervisor + * + * @var PHPExcel_Style + */ + private $_parent; + + /** + * Create a new PHPExcel_Style_Borders + * + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + // Initialise values + $this->_left = new PHPExcel_Style_Border($isSupervisor, $isConditional); + $this->_right = new PHPExcel_Style_Border($isSupervisor, $isConditional); + $this->_top = new PHPExcel_Style_Border($isSupervisor, $isConditional); + $this->_bottom = new PHPExcel_Style_Border($isSupervisor, $isConditional); + $this->_diagonal = new PHPExcel_Style_Border($isSupervisor, $isConditional); + $this->_diagonalDirection = PHPExcel_Style_Borders::DIAGONAL_NONE; + + // Specially for supervisor + if ($isSupervisor) { + // Initialize pseudo-borders + $this->_allBorders = new PHPExcel_Style_Border(true); + $this->_outline = new PHPExcel_Style_Border(true); + $this->_inside = new PHPExcel_Style_Border(true); + $this->_vertical = new PHPExcel_Style_Border(true); + $this->_horizontal = new PHPExcel_Style_Border(true); + + // bind parent if we are a supervisor + $this->_left->bindParent($this, '_left'); + $this->_right->bindParent($this, '_right'); + $this->_top->bindParent($this, '_top'); + $this->_bottom->bindParent($this, '_bottom'); + $this->_diagonal->bindParent($this, '_diagonal'); + $this->_allBorders->bindParent($this, '_allBorders'); + $this->_outline->bindParent($this, '_outline'); + $this->_inside->bindParent($this, '_inside'); + $this->_vertical->bindParent($this, '_vertical'); + $this->_horizontal->bindParent($this, '_horizontal'); + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param PHPExcel_Style $parent + * @return PHPExcel_Style_Borders + */ + public function bindParent($parent) + { + $this->_parent = $parent; + return $this; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style_Borders + */ + public function getSharedComponent() + { + return $this->_parent->getSharedComponent()->getBorders(); + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->getActiveSheet()->getActiveCell(); + } + + /** + * Build style array from subcomponents + * + * @param array $array + * @return array + */ + public function getStyleArray($array) + { + return array('borders' => $array); + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray( + * array( + * 'bottom' => array( + * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, + * 'color' => array( + * 'rgb' => '808080' + * ) + * ), + * 'top' => array( + * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, + * 'color' => array( + * 'rgb' => '808080' + * ) + * ) + * ) + * ); + * </code> + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray( + * array( + * 'allborders' => array( + * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, + * 'color' => array( + * 'rgb' => '808080' + * ) + * ) + * ) + * ); + * </code> + * + * @param array $pStyles Array containing style information + * @throws Exception + * @return PHPExcel_Style_Borders + */ + public function applyFromArray($pStyles = null) { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); + } else { + if (array_key_exists('left', $pStyles)) { + $this->getLeft()->applyFromArray($pStyles['left']); + } + if (array_key_exists('right', $pStyles)) { + $this->getRight()->applyFromArray($pStyles['right']); + } + if (array_key_exists('top', $pStyles)) { + $this->getTop()->applyFromArray($pStyles['top']); + } + if (array_key_exists('bottom', $pStyles)) { + $this->getBottom()->applyFromArray($pStyles['bottom']); + } + if (array_key_exists('diagonal', $pStyles)) { + $this->getDiagonal()->applyFromArray($pStyles['diagonal']); + } + if (array_key_exists('diagonaldirection', $pStyles)) { + $this->setDiagonalDirection($pStyles['diagonaldirection']); + } + if (array_key_exists('allborders', $pStyles)) { + $this->getLeft()->applyFromArray($pStyles['allborders']); + $this->getRight()->applyFromArray($pStyles['allborders']); + $this->getTop()->applyFromArray($pStyles['allborders']); + $this->getBottom()->applyFromArray($pStyles['allborders']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get Left + * + * @return PHPExcel_Style_Border + */ + public function getLeft() { + return $this->_left; + } + + /** + * Get Right + * + * @return PHPExcel_Style_Border + */ + public function getRight() { + return $this->_right; + } + + /** + * Get Top + * + * @return PHPExcel_Style_Border + */ + public function getTop() { + return $this->_top; + } + + /** + * Get Bottom + * + * @return PHPExcel_Style_Border + */ + public function getBottom() { + return $this->_bottom; + } + + /** + * Get Diagonal + * + * @return PHPExcel_Style_Border + */ + public function getDiagonal() { + return $this->_diagonal; + } + + /** + * Get AllBorders (pseudo-border). Only applies to supervisor. + * + * @return PHPExcel_Style_Border + * @throws Exception + */ + public function getAllBorders() { + if (!$this->_isSupervisor) { + throw new Exception('Can only get pseudo-border for supervisor.'); + } + return $this->_allBorders; + } + + /** + * Get Outline (pseudo-border). Only applies to supervisor. + * + * @return boolean + * @throws Exception + */ + public function getOutline() { + if (!$this->_isSupervisor) { + throw new Exception('Can only get pseudo-border for supervisor.'); + } + return $this->_outline; + } + + /** + * Get Inside (pseudo-border). Only applies to supervisor. + * + * @return boolean + * @throws Exception + */ + public function getInside() { + if (!$this->_isSupervisor) { + throw new Exception('Can only get pseudo-border for supervisor.'); + } + return $this->_inside; + } + + /** + * Get Vertical (pseudo-border). Only applies to supervisor. + * + * @return PHPExcel_Style_Border + * @throws Exception + */ + public function getVertical() { + if (!$this->_isSupervisor) { + throw new Exception('Can only get pseudo-border for supervisor.'); + } + return $this->_vertical; + } + + /** + * Get Horizontal (pseudo-border). Only applies to supervisor. + * + * @return PHPExcel_Style_Border + * @throws Exception + */ + public function getHorizontal() { + if (!$this->_isSupervisor) { + throw new Exception('Can only get pseudo-border for supervisor.'); + } + return $this->_horizontal; + } + + /** + * Get DiagonalDirection + * + * @return int + */ + public function getDiagonalDirection() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getDiagonalDirection(); + } + return $this->_diagonalDirection; + } + + /** + * Set DiagonalDirection + * + * @param int $pValue + * @return PHPExcel_Style_Borders + */ + public function setDiagonalDirection($pValue = PHPExcel_Style_Borders::DIAGONAL_NONE) { + if ($pValue == '') { + $pValue = PHPExcel_Style_Borders::DIAGONAL_NONE; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('diagonaldirection' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_diagonalDirection = $pValue; + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHashcode(); + } + return md5( + $this->getLeft()->getHashCode() + . $this->getRight()->getHashCode() + . $this->getTop()->getHashCode() + . $this->getBottom()->getHashCode() + . $this->getDiagonal()->getHashCode() + . $this->getDiagonalDirection() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/Color.php b/plugins/excel_reader/Classes/PHPExcel/Style/Color.php new file mode 100755 index 0000000..1c0f3f6 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/Color.php @@ -0,0 +1,510 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style_Color + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_Color implements PHPExcel_IComparable +{ + /* Colors */ + const COLOR_BLACK = 'FF000000'; + const COLOR_WHITE = 'FFFFFFFF'; + const COLOR_RED = 'FFFF0000'; + const COLOR_DARKRED = 'FF800000'; + const COLOR_BLUE = 'FF0000FF'; + const COLOR_DARKBLUE = 'FF000080'; + const COLOR_GREEN = 'FF00FF00'; + const COLOR_DARKGREEN = 'FF008000'; + const COLOR_YELLOW = 'FFFFFF00'; + const COLOR_DARKYELLOW = 'FF808000'; + + /** + * Indexed colors array + * + * @var array + */ + private static $_indexedColors; + + /** + * ARGB - Alpha RGB + * + * @var string + */ + private $_argb = NULL; + + /** + * Supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for supervisor + * + * @var mixed + */ + private $_parent; + + /** + * Parent property name + * + * @var string + */ + private $_parentPropertyName; + + + /** + * Create a new PHPExcel_Style_Color + * + * @param string $pARGB ARGB value for the colour + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($pARGB = PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + // Initialise values + if (!$isConditional) { + $this->_argb = $pARGB; + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param mixed $parent + * @param string $parentPropertyName + * @return PHPExcel_Style_Color + */ + public function bindParent($parent, $parentPropertyName) + { + $this->_parent = $parent; + $this->_parentPropertyName = $parentPropertyName; + return $this; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style_Color + */ + public function getSharedComponent() + { + switch ($this->_parentPropertyName) { + case '_endColor': + return $this->_parent->getSharedComponent()->getEndColor(); break; + case '_color': + return $this->_parent->getSharedComponent()->getColor(); break; + case '_startColor': + return $this->_parent->getSharedComponent()->getStartColor(); break; + } + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->getActiveSheet()->getActiveCell(); + } + + /** + * Build style array from subcomponents + * + * @param array $array + * @return array + */ + public function getStyleArray($array) + { + switch ($this->_parentPropertyName) { + case '_endColor': + $key = 'endcolor'; + break; + case '_color': + $key = 'color'; + break; + case '_startColor': + $key = 'startcolor'; + break; + + } + return $this->_parent->getStyleArray(array($key => $array)); + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->getColor()->applyFromArray( array('rgb' => '808080') ); + * </code> + * + * @param array $pStyles Array containing style information + * @throws Exception + * @return PHPExcel_Style_Color + */ + public function applyFromArray($pStyles = NULL) { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); + } else { + if (array_key_exists('rgb', $pStyles)) { + $this->setRGB($pStyles['rgb']); + } + if (array_key_exists('argb', $pStyles)) { + $this->setARGB($pStyles['argb']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get ARGB + * + * @return string + */ + public function getARGB() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getARGB(); + } + return $this->_argb; + } + + /** + * Set ARGB + * + * @param string $pValue + * @return PHPExcel_Style_Color + */ + public function setARGB($pValue = PHPExcel_Style_Color::COLOR_BLACK) { + if ($pValue == '') { + $pValue = PHPExcel_Style_Color::COLOR_BLACK; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('argb' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_argb = $pValue; + } + return $this; + } + + /** + * Get RGB + * + * @return string + */ + public function getRGB() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getRGB(); + } + return substr($this->_argb, 2); + } + + /** + * Set RGB + * + * @param string $pValue RGB value + * @return PHPExcel_Style_Color + */ + public function setRGB($pValue = '000000') { + if ($pValue == '') { + $pValue = '000000'; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('argb' => 'FF' . $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_argb = 'FF' . $pValue; + } + return $this; + } + + /** + * Get a specified colour component of an RGB value + * + * @private + * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE + * @param int $offset Position within the RGB value to extract + * @param boolean $hex Flag indicating whether the component should be returned as a hex or a + * decimal value + * @return string The extracted colour component + */ + private static function _getColourComponent($RGB,$offset,$hex=TRUE) { + $colour = substr($RGB, $offset, 2); + if (!$hex) + $colour = hexdec($colour); + return $colour; + } + + /** + * Get the red colour component of an RGB value + * + * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE + * @param boolean $hex Flag indicating whether the component should be returned as a hex or a + * decimal value + * @return string The red colour component + */ + public static function getRed($RGB,$hex=TRUE) { + if (strlen($RGB) == 8) { + return self::_getColourComponent($RGB, 2, $hex); + } elseif (strlen($RGB) == 6) { + return self::_getColourComponent($RGB, 0, $hex); + } + } + + /** + * Get the green colour component of an RGB value + * + * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE + * @param boolean $hex Flag indicating whether the component should be returned as a hex or a + * decimal value + * @return string The green colour component + */ + public static function getGreen($RGB,$hex=TRUE) { + if (strlen($RGB) == 8) { + return self::_getColourComponent($RGB, 4, $hex); + } elseif (strlen($RGB) == 6) { + return self::_getColourComponent($RGB, 2, $hex); + } + } + + /** + * Get the blue colour component of an RGB value + * + * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE + * @param boolean $hex Flag indicating whether the component should be returned as a hex or a + * decimal value + * @return string The blue colour component + */ + public static function getBlue($RGB,$hex=TRUE) { + if (strlen($RGB) == 8) { + return self::_getColourComponent($RGB, 6, $hex); + } elseif (strlen($RGB) == 6) { + return self::_getColourComponent($RGB, 4, $hex); + } + } + + /** + * Adjust the brightness of a color + * + * @param string $hex The colour as an RGBA or RGB value (e.g. FF00CCCC or CCDDEE) + * @param float $adjustPercentage The percentage by which to adjust the colour as a float from -1 to 1 + * @return string The adjusted colour as an RGBA or RGB value (e.g. FF00CCCC or CCDDEE) + */ + public static function changeBrightness($hex, $adjustPercentage) { + $rgba = (strlen($hex) == 8); + + $red = self::getRed($hex, FALSE); + $green = self::getGreen($hex, FALSE); + $blue = self::getBlue($hex, FALSE); + if ($adjustPercentage > 0) { + $red += (255 - $red) * $adjustPercentage; + $green += (255 - $green) * $adjustPercentage; + $blue += (255 - $blue) * $adjustPercentage; + } else { + $red += $red * $adjustPercentage; + $green += $green * $adjustPercentage; + $blue += $blue * $adjustPercentage; + } + + if ($red < 0) $red = 0; + elseif ($red > 255) $red = 255; + if ($green < 0) $green = 0; + elseif ($green > 255) $green = 255; + if ($blue < 0) $blue = 0; + elseif ($blue > 255) $blue = 255; + + $rgb = strtoupper( str_pad(dechex($red), 2, '0', 0) . + str_pad(dechex($green), 2, '0', 0) . + str_pad(dechex($blue), 2, '0', 0) + ); + return (($rgba) ? 'FF' : '') . $rgb; + } + + /** + * Get indexed color + * + * @param int $pIndex Index entry point into the colour array + * @param boolean $background Flag to indicate whether default background or foreground colour + * should be returned if the indexed colour doesn't exist + * @return PHPExcel_Style_Color + */ + public static function indexedColor($pIndex, $background=FALSE) { + // Clean parameter + $pIndex = intval($pIndex); + + // Indexed colors + if (is_null(self::$_indexedColors)) { + self::$_indexedColors = array( + 1 => 'FF000000', // System Colour #1 - Black + 2 => 'FFFFFFFF', // System Colour #2 - White + 3 => 'FFFF0000', // System Colour #3 - Red + 4 => 'FF00FF00', // System Colour #4 - Green + 5 => 'FF0000FF', // System Colour #5 - Blue + 6 => 'FFFFFF00', // System Colour #6 - Yellow + 7 => 'FFFF00FF', // System Colour #7- Magenta + 8 => 'FF00FFFF', // System Colour #8- Cyan + 9 => 'FF800000', // Standard Colour #9 + 10 => 'FF008000', // Standard Colour #10 + 11 => 'FF000080', // Standard Colour #11 + 12 => 'FF808000', // Standard Colour #12 + 13 => 'FF800080', // Standard Colour #13 + 14 => 'FF008080', // Standard Colour #14 + 15 => 'FFC0C0C0', // Standard Colour #15 + 16 => 'FF808080', // Standard Colour #16 + 17 => 'FF9999FF', // Chart Fill Colour #17 + 18 => 'FF993366', // Chart Fill Colour #18 + 19 => 'FFFFFFCC', // Chart Fill Colour #19 + 20 => 'FFCCFFFF', // Chart Fill Colour #20 + 21 => 'FF660066', // Chart Fill Colour #21 + 22 => 'FFFF8080', // Chart Fill Colour #22 + 23 => 'FF0066CC', // Chart Fill Colour #23 + 24 => 'FFCCCCFF', // Chart Fill Colour #24 + 25 => 'FF000080', // Chart Line Colour #25 + 26 => 'FFFF00FF', // Chart Line Colour #26 + 27 => 'FFFFFF00', // Chart Line Colour #27 + 28 => 'FF00FFFF', // Chart Line Colour #28 + 29 => 'FF800080', // Chart Line Colour #29 + 30 => 'FF800000', // Chart Line Colour #30 + 31 => 'FF008080', // Chart Line Colour #31 + 32 => 'FF0000FF', // Chart Line Colour #32 + 33 => 'FF00CCFF', // Standard Colour #33 + 34 => 'FFCCFFFF', // Standard Colour #34 + 35 => 'FFCCFFCC', // Standard Colour #35 + 36 => 'FFFFFF99', // Standard Colour #36 + 37 => 'FF99CCFF', // Standard Colour #37 + 38 => 'FFFF99CC', // Standard Colour #38 + 39 => 'FFCC99FF', // Standard Colour #39 + 40 => 'FFFFCC99', // Standard Colour #40 + 41 => 'FF3366FF', // Standard Colour #41 + 42 => 'FF33CCCC', // Standard Colour #42 + 43 => 'FF99CC00', // Standard Colour #43 + 44 => 'FFFFCC00', // Standard Colour #44 + 45 => 'FFFF9900', // Standard Colour #45 + 46 => 'FFFF6600', // Standard Colour #46 + 47 => 'FF666699', // Standard Colour #47 + 48 => 'FF969696', // Standard Colour #48 + 49 => 'FF003366', // Standard Colour #49 + 50 => 'FF339966', // Standard Colour #50 + 51 => 'FF003300', // Standard Colour #51 + 52 => 'FF333300', // Standard Colour #52 + 53 => 'FF993300', // Standard Colour #53 + 54 => 'FF993366', // Standard Colour #54 + 55 => 'FF333399', // Standard Colour #55 + 56 => 'FF333333' // Standard Colour #56 + ); + } + + if (array_key_exists($pIndex, self::$_indexedColors)) { + return new PHPExcel_Style_Color(self::$_indexedColors[$pIndex]); + } + + if ($background) { + return new PHPExcel_Style_Color('FFFFFFFF'); + } + return new PHPExcel_Style_Color('FF000000'); + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHashCode(); + } + return md5( + $this->_argb + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/Conditional.php b/plugins/excel_reader/Classes/PHPExcel/Style/Conditional.php new file mode 100755 index 0000000..d9f7dd4 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/Conditional.php @@ -0,0 +1,277 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style_Conditional + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_Conditional implements PHPExcel_IComparable +{ + /* Condition types */ + const CONDITION_NONE = 'none'; + const CONDITION_CELLIS = 'cellIs'; + const CONDITION_CONTAINSTEXT = 'containsText'; + const CONDITION_EXPRESSION = 'expression'; + + /* Operator types */ + const OPERATOR_NONE = ''; + const OPERATOR_BEGINSWITH = 'beginsWith'; + const OPERATOR_ENDSWITH = 'endsWith'; + const OPERATOR_EQUAL = 'equal'; + const OPERATOR_GREATERTHAN = 'greaterThan'; + const OPERATOR_GREATERTHANOREQUAL = 'greaterThanOrEqual'; + const OPERATOR_LESSTHAN = 'lessThan'; + const OPERATOR_LESSTHANOREQUAL = 'lessThanOrEqual'; + const OPERATOR_NOTEQUAL = 'notEqual'; + const OPERATOR_CONTAINSTEXT = 'containsText'; + const OPERATOR_NOTCONTAINS = 'notContains'; + const OPERATOR_BETWEEN = 'between'; + + /** + * Condition type + * + * @var int + */ + private $_conditionType; + + /** + * Operator type + * + * @var int + */ + private $_operatorType; + + /** + * Text + * + * @var string + */ + private $_text; + + /** + * Condition + * + * @var string[] + */ + private $_condition = array(); + + /** + * Style + * + * @var PHPExcel_Style + */ + private $_style; + + /** + * Create a new PHPExcel_Style_Conditional + */ + public function __construct() + { + // Initialise values + $this->_conditionType = PHPExcel_Style_Conditional::CONDITION_NONE; + $this->_operatorType = PHPExcel_Style_Conditional::OPERATOR_NONE; + $this->_text = null; + $this->_condition = array(); + $this->_style = new PHPExcel_Style(FALSE, TRUE); + } + + /** + * Get Condition type + * + * @return string + */ + public function getConditionType() { + return $this->_conditionType; + } + + /** + * Set Condition type + * + * @param string $pValue PHPExcel_Style_Conditional condition type + * @return PHPExcel_Style_Conditional + */ + public function setConditionType($pValue = PHPExcel_Style_Conditional::CONDITION_NONE) { + $this->_conditionType = $pValue; + return $this; + } + + /** + * Get Operator type + * + * @return string + */ + public function getOperatorType() { + return $this->_operatorType; + } + + /** + * Set Operator type + * + * @param string $pValue PHPExcel_Style_Conditional operator type + * @return PHPExcel_Style_Conditional + */ + public function setOperatorType($pValue = PHPExcel_Style_Conditional::OPERATOR_NONE) { + $this->_operatorType = $pValue; + return $this; + } + + /** + * Get text + * + * @return string + */ + public function getText() { + return $this->_text; + } + + /** + * Set text + * + * @param string $value + * @return PHPExcel_Style_Conditional + */ + public function setText($value = null) { + $this->_text = $value; + return $this; + } + + /** + * Get Condition + * + * @deprecated Deprecated, use getConditions instead + * @return string + */ + public function getCondition() { + if (isset($this->_condition[0])) { + return $this->_condition[0]; + } + + return ''; + } + + /** + * Set Condition + * + * @deprecated Deprecated, use setConditions instead + * @param string $pValue Condition + * @return PHPExcel_Style_Conditional + */ + public function setCondition($pValue = '') { + if (!is_array($pValue)) + $pValue = array($pValue); + + return $this->setConditions($pValue); + } + + /** + * Get Conditions + * + * @return string[] + */ + public function getConditions() { + return $this->_condition; + } + + /** + * Set Conditions + * + * @param string[] $pValue Condition + * @return PHPExcel_Style_Conditional + */ + public function setConditions($pValue) { + if (!is_array($pValue)) + $pValue = array($pValue); + + $this->_condition = $pValue; + return $this; + } + + /** + * Add Condition + * + * @param string $pValue Condition + * @return PHPExcel_Style_Conditional + */ + public function addCondition($pValue = '') { + $this->_condition[] = $pValue; + return $this; + } + + /** + * Get Style + * + * @return PHPExcel_Style + */ + public function getStyle() { + return $this->_style; + } + + /** + * Set Style + * + * @param PHPExcel_Style $pValue + * @throws Exception + * @return PHPExcel_Style_Conditional + */ + public function setStyle(PHPExcel_Style $pValue = null) { + $this->_style = $pValue; + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_conditionType + . $this->_operatorType + . implode(';', $this->_condition) + . $this->_style->getHashCode() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/Fill.php b/plugins/excel_reader/Classes/PHPExcel/Style/Fill.php new file mode 100755 index 0000000..afede65 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/Fill.php @@ -0,0 +1,409 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style_Fill + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_Fill implements PHPExcel_IComparable +{ + /* Fill types */ + const FILL_NONE = 'none'; + const FILL_SOLID = 'solid'; + const FILL_GRADIENT_LINEAR = 'linear'; + const FILL_GRADIENT_PATH = 'path'; + const FILL_PATTERN_DARKDOWN = 'darkDown'; + const FILL_PATTERN_DARKGRAY = 'darkGray'; + const FILL_PATTERN_DARKGRID = 'darkGrid'; + const FILL_PATTERN_DARKHORIZONTAL = 'darkHorizontal'; + const FILL_PATTERN_DARKTRELLIS = 'darkTrellis'; + const FILL_PATTERN_DARKUP = 'darkUp'; + const FILL_PATTERN_DARKVERTICAL = 'darkVertical'; + const FILL_PATTERN_GRAY0625 = 'gray0625'; + const FILL_PATTERN_GRAY125 = 'gray125'; + const FILL_PATTERN_LIGHTDOWN = 'lightDown'; + const FILL_PATTERN_LIGHTGRAY = 'lightGray'; + const FILL_PATTERN_LIGHTGRID = 'lightGrid'; + const FILL_PATTERN_LIGHTHORIZONTAL = 'lightHorizontal'; + const FILL_PATTERN_LIGHTTRELLIS = 'lightTrellis'; + const FILL_PATTERN_LIGHTUP = 'lightUp'; + const FILL_PATTERN_LIGHTVERTICAL = 'lightVertical'; + const FILL_PATTERN_MEDIUMGRAY = 'mediumGray'; + + /** + * Fill type + * + * @var string + */ + private $_fillType = PHPExcel_Style_Fill::FILL_NONE; + + /** + * Rotation + * + * @var double + */ + private $_rotation = 0; + + /** + * Start color + * + * @var PHPExcel_Style_Color + */ + private $_startColor; + + /** + * End color + * + * @var PHPExcel_Style_Color + */ + private $_endColor; + + /** + * Parent Borders + * + * @var _parentPropertyName string + */ + private $_parentPropertyName; + + /** + * Supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for supervisor + * + * @var PHPExcel_Style + */ + private $_parent; + + /** + * Create a new PHPExcel_Style_Fill + * + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + // Initialise values + if ($isConditional) { + $this->_fillType = NULL; + } + $this->_startColor = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_WHITE, $isSupervisor, $isConditional); + $this->_endColor = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor, $isConditional); + + // bind parent if we are a supervisor + if ($isSupervisor) { + $this->_startColor->bindParent($this, '_startColor'); + $this->_endColor->bindParent($this, '_endColor'); + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param PHPExcel_Style $parent + * @return PHPExcel_Style_Fill + */ + public function bindParent($parent) + { + $this->_parent = $parent; + return $this; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style_Fill + */ + public function getSharedComponent() + { + return $this->_parent->getSharedComponent()->getFill(); + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->getActiveSheet()->getActiveCell(); + } + + /** + * Build style array from subcomponents + * + * @param array $array + * @return array + */ + public function getStyleArray($array) + { + return array('fill' => $array); + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFill()->applyFromArray( + * array( + * 'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR, + * 'rotation' => 0, + * 'startcolor' => array( + * 'rgb' => '000000' + * ), + * 'endcolor' => array( + * 'argb' => 'FFFFFFFF' + * ) + * ) + * ); + * </code> + * + * @param array $pStyles Array containing style information + * @throws Exception + * @return PHPExcel_Style_Fill + */ + public function applyFromArray($pStyles = null) { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); + } else { + if (array_key_exists('type', $pStyles)) { + $this->setFillType($pStyles['type']); + } + if (array_key_exists('rotation', $pStyles)) { + $this->setRotation($pStyles['rotation']); + } + if (array_key_exists('startcolor', $pStyles)) { + $this->getStartColor()->applyFromArray($pStyles['startcolor']); + } + if (array_key_exists('endcolor', $pStyles)) { + $this->getEndColor()->applyFromArray($pStyles['endcolor']); + } + if (array_key_exists('color', $pStyles)) { + $this->getStartColor()->applyFromArray($pStyles['color']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get Fill Type + * + * @return string + */ + public function getFillType() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getFillType(); + } + return $this->_fillType; + } + + /** + * Set Fill Type + * + * @param string $pValue PHPExcel_Style_Fill fill type + * @return PHPExcel_Style_Fill + */ + public function setFillType($pValue = PHPExcel_Style_Fill::FILL_NONE) { + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('type' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_fillType = $pValue; + } + return $this; + } + + /** + * Get Rotation + * + * @return double + */ + public function getRotation() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getRotation(); + } + return $this->_rotation; + } + + /** + * Set Rotation + * + * @param double $pValue + * @return PHPExcel_Style_Fill + */ + public function setRotation($pValue = 0) { + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('rotation' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_rotation = $pValue; + } + return $this; + } + + /** + * Get Start Color + * + * @return PHPExcel_Style_Color + */ + public function getStartColor() { + return $this->_startColor; + } + + /** + * Set Start Color + * + * @param PHPExcel_Style_Color $pValue + * @throws Exception + * @return PHPExcel_Style_Fill + */ + public function setStartColor(PHPExcel_Style_Color $pValue = null) { + // make sure parameter is a real color and not a supervisor + $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; + + if ($this->_isSupervisor) { + $styleArray = $this->getStartColor()->getStyleArray(array('argb' => $color->getARGB())); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_startColor = $color; + } + return $this; + } + + /** + * Get End Color + * + * @return PHPExcel_Style_Color + */ + public function getEndColor() { + return $this->_endColor; + } + + /** + * Set End Color + * + * @param PHPExcel_Style_Color $pValue + * @throws Exception + * @return PHPExcel_Style_Fill + */ + public function setEndColor(PHPExcel_Style_Color $pValue = null) { + // make sure parameter is a real color and not a supervisor + $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; + + if ($this->_isSupervisor) { + $styleArray = $this->getEndColor()->getStyleArray(array('argb' => $color->getARGB())); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_endColor = $color; + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHashCode(); + } + return md5( + $this->getFillType() + . $this->getRotation() + . $this->getStartColor()->getHashCode() + . $this->getEndColor()->getHashCode() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/Font.php b/plugins/excel_reader/Classes/PHPExcel/Style/Font.php new file mode 100755 index 0000000..59ae773 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/Font.php @@ -0,0 +1,640 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style_Font + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_Font implements PHPExcel_IComparable +{ + /* Underline types */ + const UNDERLINE_NONE = 'none'; + const UNDERLINE_DOUBLE = 'double'; + const UNDERLINE_DOUBLEACCOUNTING = 'doubleAccounting'; + const UNDERLINE_SINGLE = 'single'; + const UNDERLINE_SINGLEACCOUNTING = 'singleAccounting'; + + /** + * Font Name + * + * @var string + */ + private $_name = 'Calibri'; + + /** + * Font Size + * + * @var float + */ + private $_size = 11; + + /** + * Bold + * + * @var boolean + */ + private $_bold = false; + + /** + * Italic + * + * @var boolean + */ + private $_italic = false; + + /** + * Superscript + * + * @var boolean + */ + private $_superScript = false; + + /** + * Subscript + * + * @var boolean + */ + private $_subScript = false; + + /** + * Underline + * + * @var string + */ + private $_underline = self::UNDERLINE_NONE; + + /** + * Strikethrough + * + * @var boolean + */ + private $_strikethrough = false; + + /** + * Foreground color + * + * @var PHPExcel_Style_Color + */ + private $_color; + + /** + * Parent Borders + * + * @var _parentPropertyName string + */ + private $_parentPropertyName; + + /** + * Supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for supervisor + * + * @var PHPExcel_Style + */ + private $_parent; + + /** + * Create a new PHPExcel_Style_Font + * + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + // Initialise values + if ($isConditional) { + $this->_name = NULL; + $this->_size = NULL; + $this->_bold = NULL; + $this->_italic = NULL; + $this->_superScript = NULL; + $this->_subScript = NULL; + $this->_underline = NULL; + $this->_strikethrough = NULL; + $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor, $isConditional); + } else { + $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor); + } + // bind parent if we are a supervisor + if ($isSupervisor) { + $this->_color->bindParent($this, '_color'); + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param PHPExcel_Style $parent + * @return PHPExcel_Style_Font + */ + public function bindParent($parent) + { + $this->_parent = $parent; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style_Font + */ + public function getSharedComponent() + { + return $this->_parent->getSharedComponent()->getFont(); + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->getActiveSheet()->getActiveCell(); + } + + /** + * Build style array from subcomponents + * + * @param array $array + * @return array + */ + public function getStyleArray($array) + { + return array('font' => $array); + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->applyFromArray( + * array( + * 'name' => 'Arial', + * 'bold' => true, + * 'italic' => false, + * 'underline' => PHPExcel_Style_Font::UNDERLINE_DOUBLE, + * 'strike' => false, + * 'color' => array( + * 'rgb' => '808080' + * ) + * ) + * ); + * </code> + * + * @param array $pStyles Array containing style information + * @throws Exception + * @return PHPExcel_Style_Font + */ + public function applyFromArray($pStyles = null) { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); + } else { + if (array_key_exists('name', $pStyles)) { + $this->setName($pStyles['name']); + } + if (array_key_exists('bold', $pStyles)) { + $this->setBold($pStyles['bold']); + } + if (array_key_exists('italic', $pStyles)) { + $this->setItalic($pStyles['italic']); + } + if (array_key_exists('superScript', $pStyles)) { + $this->setSuperScript($pStyles['superScript']); + } + if (array_key_exists('subScript', $pStyles)) { + $this->setSubScript($pStyles['subScript']); + } + if (array_key_exists('underline', $pStyles)) { + $this->setUnderline($pStyles['underline']); + } + if (array_key_exists('strike', $pStyles)) { + $this->setStrikethrough($pStyles['strike']); + } + if (array_key_exists('color', $pStyles)) { + $this->getColor()->applyFromArray($pStyles['color']); + } + if (array_key_exists('size', $pStyles)) { + $this->setSize($pStyles['size']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get Name + * + * @return string + */ + public function getName() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getName(); + } + return $this->_name; + } + + /** + * Set Name + * + * @param string $pValue + * @return PHPExcel_Style_Font + */ + public function setName($pValue = 'Calibri') { + if ($pValue == '') { + $pValue = 'Calibri'; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('name' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_name = $pValue; + } + return $this; + } + + /** + * Get Size + * + * @return double + */ + public function getSize() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getSize(); + } + return $this->_size; + } + + /** + * Set Size + * + * @param double $pValue + * @return PHPExcel_Style_Font + */ + public function setSize($pValue = 10) { + if ($pValue == '') { + $pValue = 10; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('size' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_size = $pValue; + } + return $this; + } + + /** + * Get Bold + * + * @return boolean + */ + public function getBold() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getBold(); + } + return $this->_bold; + } + + /** + * Set Bold + * + * @param boolean $pValue + * @return PHPExcel_Style_Font + */ + public function setBold($pValue = false) { + if ($pValue == '') { + $pValue = false; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('bold' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_bold = $pValue; + } + return $this; + } + + /** + * Get Italic + * + * @return boolean + */ + public function getItalic() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getItalic(); + } + return $this->_italic; + } + + /** + * Set Italic + * + * @param boolean $pValue + * @return PHPExcel_Style_Font + */ + public function setItalic($pValue = false) { + if ($pValue == '') { + $pValue = false; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('italic' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_italic = $pValue; + } + return $this; + } + + /** + * Get SuperScript + * + * @return boolean + */ + public function getSuperScript() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getSuperScript(); + } + return $this->_superScript; + } + + /** + * Set SuperScript + * + * @param boolean $pValue + * @return PHPExcel_Style_Font + */ + public function setSuperScript($pValue = false) { + if ($pValue == '') { + $pValue = false; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('superScript' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_superScript = $pValue; + $this->_subScript = !$pValue; + } + return $this; + } + + /** + * Get SubScript + * + * @return boolean + */ + public function getSubScript() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getSubScript(); + } + return $this->_subScript; + } + + /** + * Set SubScript + * + * @param boolean $pValue + * @return PHPExcel_Style_Font + */ + public function setSubScript($pValue = false) { + if ($pValue == '') { + $pValue = false; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('subScript' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_subScript = $pValue; + $this->_superScript = !$pValue; + } + return $this; + } + + /** + * Get Underline + * + * @return string + */ + public function getUnderline() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getUnderline(); + } + return $this->_underline; + } + + /** + * Set Underline + * + * @param string|boolean $pValue PHPExcel_Style_Font underline type + * If a boolean is passed, then true equates to UNDERLINE_SINGLE, + * false equates to UNDERLINE_NONE + * @return PHPExcel_Style_Font + */ + public function setUnderline($pValue = self::UNDERLINE_NONE) { + if (is_bool($pValue)) { + $pValue = ($pValue) ? self::UNDERLINE_SINGLE : self::UNDERLINE_NONE; + } elseif ($pValue == '') { + $pValue = self::UNDERLINE_NONE; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('underline' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_underline = $pValue; + } + return $this; + } + + /** + * Get Striketrough + * + * @deprecated Use getStrikethrough() instead. + * @return boolean + */ + public function getStriketrough() { + return $this->getStrikethrough(); + } + + /** + * Set Striketrough + * + * @deprecated Use setStrikethrough() instead. + * @param boolean $pValue + * @return PHPExcel_Style_Font + */ + public function setStriketrough($pValue = false) { + return $this->setStrikethrough($pValue); + } + + /** + * Get Strikethrough + * + * @return boolean + */ + public function getStrikethrough() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getStrikethrough(); + } + return $this->_strikethrough; + } + + /** + * Set Strikethrough + * + * @param boolean $pValue + * @return PHPExcel_Style_Font + */ + public function setStrikethrough($pValue = false) { + if ($pValue == '') { + $pValue = false; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('strike' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_strikethrough = $pValue; + } + return $this; + } + + /** + * Get Color + * + * @return PHPExcel_Style_Color + */ + public function getColor() { + return $this->_color; + } + + /** + * Set Color + * + * @param PHPExcel_Style_Color $pValue + * @throws Exception + * @return PHPExcel_Style_Font + */ + public function setColor(PHPExcel_Style_Color $pValue = null) { + // make sure parameter is a real color and not a supervisor + $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; + + if ($this->_isSupervisor) { + $styleArray = $this->getColor()->getStyleArray(array('argb' => $color->getARGB())); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_color = $color; + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHashCode(); + } + return md5( + $this->_name + . $this->_size + . ($this->_bold ? 't' : 'f') + . ($this->_italic ? 't' : 'f') + . ($this->_superScript ? 't' : 'f') + . ($this->_subScript ? 't' : 'f') + . $this->_underline + . ($this->_strikethrough ? 't' : 'f') + . $this->_color->getHashCode() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/NumberFormat.php b/plugins/excel_reader/Classes/PHPExcel/Style/NumberFormat.php new file mode 100755 index 0000000..19e064e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/NumberFormat.php @@ -0,0 +1,741 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Style_NumberFormat + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_NumberFormat implements PHPExcel_IComparable +{ + /* Pre-defined formats */ + const FORMAT_GENERAL = 'General'; + + const FORMAT_TEXT = '@'; + + const FORMAT_NUMBER = '0'; + const FORMAT_NUMBER_00 = '0.00'; + const FORMAT_NUMBER_COMMA_SEPARATED1 = '#,##0.00'; + const FORMAT_NUMBER_COMMA_SEPARATED2 = '#,##0.00_-'; + + const FORMAT_PERCENTAGE = '0%'; + const FORMAT_PERCENTAGE_00 = '0.00%'; + + const FORMAT_DATE_YYYYMMDD2 = 'yyyy-mm-dd'; + const FORMAT_DATE_YYYYMMDD = 'yy-mm-dd'; + const FORMAT_DATE_DDMMYYYY = 'dd/mm/yy'; + const FORMAT_DATE_DMYSLASH = 'd/m/y'; + const FORMAT_DATE_DMYMINUS = 'd-m-y'; + const FORMAT_DATE_DMMINUS = 'd-m'; + const FORMAT_DATE_MYMINUS = 'm-y'; + const FORMAT_DATE_XLSX14 = 'mm-dd-yy'; + const FORMAT_DATE_XLSX15 = 'd-mmm-yy'; + const FORMAT_DATE_XLSX16 = 'd-mmm'; + const FORMAT_DATE_XLSX17 = 'mmm-yy'; + const FORMAT_DATE_XLSX22 = 'm/d/yy h:mm'; + const FORMAT_DATE_DATETIME = 'd/m/y h:mm'; + const FORMAT_DATE_TIME1 = 'h:mm AM/PM'; + const FORMAT_DATE_TIME2 = 'h:mm:ss AM/PM'; + const FORMAT_DATE_TIME3 = 'h:mm'; + const FORMAT_DATE_TIME4 = 'h:mm:ss'; + const FORMAT_DATE_TIME5 = 'mm:ss'; + const FORMAT_DATE_TIME6 = 'h:mm:ss'; + const FORMAT_DATE_TIME7 = 'i:s.S'; + const FORMAT_DATE_TIME8 = 'h:mm:ss;@'; + const FORMAT_DATE_YYYYMMDDSLASH = 'yy/mm/dd;@'; + + const FORMAT_CURRENCY_USD_SIMPLE = '"$"#,##0.00_-'; + const FORMAT_CURRENCY_USD = '$#,##0_-'; + const FORMAT_CURRENCY_EUR_SIMPLE = '[$EUR ]#,##0.00_-'; + + /** + * Excel built-in number formats + * + * @var array + */ + private static $_builtInFormats; + + /** + * Excel built-in number formats (flipped, for faster lookups) + * + * @var array + */ + private static $_flippedBuiltInFormats; + + /** + * Format Code + * + * @var string + */ + private $_formatCode = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; + + /** + * Built-in format Code + * + * @var string + */ + private $_builtInFormatCode = 0; + + /** + * Parent Borders + * + * @var _parentPropertyName string + */ + private $_parentPropertyName; + + /** + * Supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for supervisor + * + * @var PHPExcel_Style + */ + private $_parent; + + /** + * Create a new PHPExcel_Style_NumberFormat + * + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + if ($isConditional) { + $this->_formatCode = NULL; + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param PHPExcel_Style $parent + * @return PHPExcel_Style_NumberFormat + */ + public function bindParent($parent) + { + $this->_parent = $parent; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style_NumberFormat + */ + public function getSharedComponent() + { + return $this->_parent->getSharedComponent()->getNumberFormat(); + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->getActiveSheet()->getActiveCell(); + } + + /** + * Build style array from subcomponents + * + * @param array $array + * @return array + */ + public function getStyleArray($array) + { + return array('numberformat' => $array); + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getNumberFormat()->applyFromArray( + * array( + * 'code' => PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE + * ) + * ); + * </code> + * + * @param array $pStyles Array containing style information + * @throws Exception + * @return PHPExcel_Style_NumberFormat + */ + public function applyFromArray($pStyles = null) + { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); + } else { + if (array_key_exists('code', $pStyles)) { + $this->setFormatCode($pStyles['code']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get Format Code + * + * @return string + */ + public function getFormatCode() + { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getFormatCode(); + } + if ($this->_builtInFormatCode !== false) + { + return self::builtInFormatCode($this->_builtInFormatCode); + } + return $this->_formatCode; + } + + /** + * Set Format Code + * + * @param string $pValue + * @return PHPExcel_Style_NumberFormat + */ + public function setFormatCode($pValue = PHPExcel_Style_NumberFormat::FORMAT_GENERAL) + { + if ($pValue == '') { + $pValue = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; + } + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('code' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_formatCode = $pValue; + $this->_builtInFormatCode = self::builtInFormatCodeIndex($pValue); + } + return $this; + } + + /** + * Get Built-In Format Code + * + * @return int + */ + public function getBuiltInFormatCode() + { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getBuiltInFormatCode(); + } + return $this->_builtInFormatCode; + } + + /** + * Set Built-In Format Code + * + * @param int $pValue + * @return PHPExcel_Style_NumberFormat + */ + public function setBuiltInFormatCode($pValue = 0) + { + + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('code' => self::builtInFormatCode($pValue))); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_builtInFormatCode = $pValue; + $this->_formatCode = self::builtInFormatCode($pValue); + } + return $this; + } + + /** + * Fill built-in format codes + */ + private static function fillBuiltInFormatCodes() + { + // Built-in format codes + if (is_null(self::$_builtInFormats)) { + self::$_builtInFormats = array(); + + // General + self::$_builtInFormats[0] = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; + self::$_builtInFormats[1] = '0'; + self::$_builtInFormats[2] = '0.00'; + self::$_builtInFormats[3] = '#,##0'; + self::$_builtInFormats[4] = '#,##0.00'; + + self::$_builtInFormats[9] = '0%'; + self::$_builtInFormats[10] = '0.00%'; + self::$_builtInFormats[11] = '0.00E+00'; + self::$_builtInFormats[12] = '# ?/?'; + self::$_builtInFormats[13] = '# ??/??'; + self::$_builtInFormats[14] = 'mm-dd-yy'; + self::$_builtInFormats[15] = 'd-mmm-yy'; + self::$_builtInFormats[16] = 'd-mmm'; + self::$_builtInFormats[17] = 'mmm-yy'; + self::$_builtInFormats[18] = 'h:mm AM/PM'; + self::$_builtInFormats[19] = 'h:mm:ss AM/PM'; + self::$_builtInFormats[20] = 'h:mm'; + self::$_builtInFormats[21] = 'h:mm:ss'; + self::$_builtInFormats[22] = 'm/d/yy h:mm'; + + self::$_builtInFormats[37] = '#,##0 ;(#,##0)'; + self::$_builtInFormats[38] = '#,##0 ;[Red](#,##0)'; + self::$_builtInFormats[39] = '#,##0.00;(#,##0.00)'; + self::$_builtInFormats[40] = '#,##0.00;[Red](#,##0.00)'; + + self::$_builtInFormats[44] = '_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)'; + self::$_builtInFormats[45] = 'mm:ss'; + self::$_builtInFormats[46] = '[h]:mm:ss'; + self::$_builtInFormats[47] = 'mmss.0'; + self::$_builtInFormats[48] = '##0.0E+0'; + self::$_builtInFormats[49] = '@'; + + // CHT + self::$_builtInFormats[27] = '[$-404]e/m/d'; + self::$_builtInFormats[30] = 'm/d/yy'; + self::$_builtInFormats[36] = '[$-404]e/m/d'; + self::$_builtInFormats[50] = '[$-404]e/m/d'; + self::$_builtInFormats[57] = '[$-404]e/m/d'; + + // THA + self::$_builtInFormats[59] = 't0'; + self::$_builtInFormats[60] = 't0.00'; + self::$_builtInFormats[61] = 't#,##0'; + self::$_builtInFormats[62] = 't#,##0.00'; + self::$_builtInFormats[67] = 't0%'; + self::$_builtInFormats[68] = 't0.00%'; + self::$_builtInFormats[69] = 't# ?/?'; + self::$_builtInFormats[70] = 't# ??/??'; + + // Flip array (for faster lookups) + self::$_flippedBuiltInFormats = array_flip(self::$_builtInFormats); + } + } + + /** + * Get built-in format code + * + * @param int $pIndex + * @return string + */ + public static function builtInFormatCode($pIndex) + { + // Clean parameter + $pIndex = intval($pIndex); + + // Ensure built-in format codes are available + self::fillBuiltInFormatCodes(); + + // Lookup format code + if (isset(self::$_builtInFormats[$pIndex])) { + return self::$_builtInFormats[$pIndex]; + } + + return ''; + } + + /** + * Get built-in format code index + * + * @param string $formatCode + * @return int|boolean + */ + public static function builtInFormatCodeIndex($formatCode) + { + // Ensure built-in format codes are available + self::fillBuiltInFormatCodes(); + + // Lookup format code + if (isset(self::$_flippedBuiltInFormats[$formatCode])) { + return self::$_flippedBuiltInFormats[$formatCode]; + } + + return false; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() + { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHashCode(); + } + return md5( + $this->_formatCode + . $this->_builtInFormatCode + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() + { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } + + /** + * Search/replace values to convert Excel date/time format masks to PHP format masks + * + * @var array + */ + private static $_dateFormatReplacements = array( + // first remove escapes related to non-format characters + '\\' => '', + // 12-hour suffix + 'am/pm' => 'A', + // 4-digit year + 'e' => 'Y', + 'yyyy' => 'Y', + // 2-digit year + 'yy' => 'y', + // first letter of month - no php equivalent + 'mmmmm' => 'M', + // full month name + 'mmmm' => 'F', + // short month name + 'mmm' => 'M', + // mm is minutes if time or month w/leading zero + ':mm' => ':i', + // month leading zero + 'mm' => 'm', + // month no leading zero + 'm' => 'n', + // full day of week name + 'dddd' => 'l', + // short day of week name + 'ddd' => 'D', + // days leading zero + 'dd' => 'd', + // days no leading zero + 'd' => 'j', + // seconds + 'ss' => 's', + // fractional seconds - no php equivalent + '.s' => '' + ); + /** + * Search/replace values to convert Excel date/time format masks hours to PHP format masks (24 hr clock) + * + * @var array + */ + private static $_dateFormatReplacements24 = array( + 'hh' => 'H', + 'h' => 'G' + ); + /** + * Search/replace values to convert Excel date/time format masks hours to PHP format masks (12 hr clock) + * + * @var array + */ + private static $_dateFormatReplacements12 = array( + 'hh' => 'h', + 'h' => 'g' + ); + + /** + * Convert a value in a pre-defined format to a PHP string + * + * @param mixed $value Value to format + * @param string $format Format code + * @param array $callBack Callback function for additional formatting of string + * @return string Formatted string + */ + public static function toFormattedString($value = '', $format = '', $callBack = null) + { + // For now we do not treat strings although section 4 of a format code affects strings + if (!is_numeric($value)) return $value; + + // For 'General' format code, we just pass the value although this is not entirely the way Excel does it, + // it seems to round numbers to a total of 10 digits. + if (($format === PHPExcel_Style_NumberFormat::FORMAT_GENERAL) || ($format === PHPExcel_Style_NumberFormat::FORMAT_TEXT)) { + return $value; + } + + // Get the sections, there can be up to four sections + $sections = explode(';', $format); + + // Fetch the relevant section depending on whether number is positive, negative, or zero? + // Text not supported yet. + // Here is how the sections apply to various values in Excel: + // 1 section: [POSITIVE/NEGATIVE/ZERO/TEXT] + // 2 sections: [POSITIVE/ZERO/TEXT] [NEGATIVE] + // 3 sections: [POSITIVE/TEXT] [NEGATIVE] [ZERO] + // 4 sections: [POSITIVE] [NEGATIVE] [ZERO] [TEXT] + switch (count($sections)) { + case 1: + $format = $sections[0]; + break; + + case 2: + $format = ($value >= 0) ? $sections[0] : $sections[1]; + $value = abs($value); // Use the absolute value + break; + + case 3: + $format = ($value > 0) ? + $sections[0] : ( ($value < 0) ? + $sections[1] : $sections[2]); + $value = abs($value); // Use the absolute value + break; + + case 4: + $format = ($value > 0) ? + $sections[0] : ( ($value < 0) ? + $sections[1] : $sections[2]); + $value = abs($value); // Use the absolute value + break; + + default: + // something is wrong, just use first section + $format = $sections[0]; + break; + } + + // Save format with color information for later use below + $formatColor = $format; + + // Strip color information + $color_regex = '/^\\[[a-zA-Z]+\\]/'; + $format = preg_replace($color_regex, '', $format); + + // Let's begin inspecting the format and converting the value to a formatted string + if (preg_match('/^(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy]/i', $format)) { // datetime format + // dvc: convert Excel formats to PHP date formats + + // strip off first part containing e.g. [$-F800] or [$USD-409] + // general syntax: [$<Currency string>-<language info>] + // language info is in hexadecimal + $format = preg_replace('/^(\[\$[A-Z]*-[0-9A-F]*\])/i', '', $format); + + // OpenOffice.org uses upper-case number formats, e.g. 'YYYY', convert to lower-case + $format = strtolower($format); + + $format = strtr($format,self::$_dateFormatReplacements); + if (!strpos($format,'A')) { // 24-hour time format + $format = strtr($format,self::$_dateFormatReplacements24); + } else { // 12-hour time format + $format = strtr($format,self::$_dateFormatReplacements12); + } + + $dateObj = PHPExcel_Shared_Date::ExcelToPHPObject($value); + $value = $dateObj->format($format); + + } else if (preg_match('/%$/', $format)) { // % number format + if ($format === self::FORMAT_PERCENTAGE) { + $value = round( (100 * $value), 0) . '%'; + } else { + if (preg_match('/\.[#0]+/i', $format, $m)) { + $s = substr($m[0], 0, 1) . (strlen($m[0]) - 1); + $format = str_replace($m[0], $s, $format); + } + if (preg_match('/^[#0]+/', $format, $m)) { + $format = str_replace($m[0], strlen($m[0]), $format); + } + $format = '%' . str_replace('%', 'f%%', $format); + + $value = sprintf($format, 100 * $value); + } + + } else { + if ($format === self::FORMAT_CURRENCY_EUR_SIMPLE) { + $value = 'EUR ' . sprintf('%1.2f', $value); + + } else { + // In Excel formats, "_" is used to add spacing, which we can't do in HTML + $format = preg_replace('/_./', '', $format); + + // Some non-number characters are escaped with \, which we don't need + $format = preg_replace("/\\\\/", '', $format); + + // Some non-number strings are quoted, so we'll get rid of the quotes, likewise any positional * symbols + $format = str_replace(array('"','*'), '', $format); + + // Find out if we need thousands separator + // This is indicated by a comma enclosed by a digit placeholder: + // #,# or 0,0 + $useThousands = preg_match('/(#,#|0,0)/', $format); + if ($useThousands) { + $format = preg_replace('/0,0/', '00', $format); + $format = preg_replace('/#,#/', '##', $format); + } + + // Scale thousands, millions,... + // This is indicated by a number of commas after a digit placeholder: + // #, or 0.0,, + $scale = 1; // same as no scale + $matches = array(); + if (preg_match('/(#|0)(,+)/', $format, $matches)) { + $scale = pow(1000, strlen($matches[2])); + + // strip the commas + $format = preg_replace('/0,+/', '0', $format); + $format = preg_replace('/#,+/', '#', $format); + } + + if (preg_match('/#?.*\?\/\?/', $format, $m)) { + //echo 'Format mask is fractional '.$format.' <br />'; + if ($value != (int)$value) { + $sign = ($value < 0) ? '-' : ''; + + $integerPart = floor(abs($value)); + $decimalPart = trim(fmod(abs($value),1),'0.'); + $decimalLength = strlen($decimalPart); + $decimalDivisor = pow(10,$decimalLength); + + $GCD = PHPExcel_Calculation_MathTrig::GCD($decimalPart,$decimalDivisor); + + $adjustedDecimalPart = $decimalPart/$GCD; + $adjustedDecimalDivisor = $decimalDivisor/$GCD; + + if ((strpos($format,'0') !== false) || (strpos($format,'#') !== false) || (substr($format,0,3) == '? ?')) { + if ($integerPart == 0) { $integerPart = ''; } + $value = "$sign$integerPart $adjustedDecimalPart/$adjustedDecimalDivisor"; + } else { + $adjustedDecimalPart += $integerPart * $adjustedDecimalDivisor; + $value = "$sign$adjustedDecimalPart/$adjustedDecimalDivisor"; + } + } + + } else { + // Handle the number itself + + // scale number + $value = $value / $scale; + + // Strip # + $format = preg_replace('/\\#/', '', $format); + + $n = "/\[[^\]]+\]/"; + $m = preg_replace($n, '', $format); + $number_regex = "/(0+)(\.?)(0*)/"; + if (preg_match($number_regex, $m, $matches)) { + $left = $matches[1]; + $dec = $matches[2]; + $right = $matches[3]; + + // minimun width of formatted number (including dot) + $minWidth = strlen($left) + strlen($dec) + strlen($right); + + if ($useThousands) { + $value = number_format( + $value + , strlen($right) + , PHPExcel_Shared_String::getDecimalSeparator() + , PHPExcel_Shared_String::getThousandsSeparator() + ); + } else { + $sprintf_pattern = "%0$minWidth." . strlen($right) . "f"; + $value = sprintf($sprintf_pattern, $value); + } + + $value = preg_replace($number_regex, $value, $format); + } + } + if (preg_match('/\[\$(.*)\]/u', $format, $m)) { + // Currency or Accounting + $currencyFormat = $m[0]; + $currencyCode = $m[1]; + list($currencyCode) = explode('-',$currencyCode); + if ($currencyCode == '') { + $currencyCode = PHPExcel_Shared_String::getCurrencyCode(); + } + $value = preg_replace('/\[\$([^\]]*)\]/u',$currencyCode,$value); + } + } + } + + // Additional formatting provided by callback function + if ($callBack !== null) { + list($writerInstance, $function) = $callBack; + $value = $writerInstance->$function($value, $formatColor); + } + + return $value; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Style/Protection.php b/plugins/excel_reader/Classes/PHPExcel/Style/Protection.php new file mode 100755 index 0000000..477742b --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Style/Protection.php @@ -0,0 +1,290 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.4.5, 2007-08-23 + */ + + +/** + * PHPExcel_Style_Protection + * + * @category PHPExcel + * @package PHPExcel_Style + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Style_Protection implements PHPExcel_IComparable +{ + /** Protection styles */ + const PROTECTION_INHERIT = 'inherit'; + const PROTECTION_PROTECTED = 'protected'; + const PROTECTION_UNPROTECTED = 'unprotected'; + + /** + * Locked + * + * @var string + */ + private $_locked; + + /** + * Hidden + * + * @var string + */ + private $_hidden; + + /** + * Parent Borders + * + * @var _parentPropertyName string + */ + private $_parentPropertyName; + + /** + * Supervisor? + * + * @var boolean + */ + private $_isSupervisor; + + /** + * Parent. Only used for supervisor + * + * @var PHPExcel_Style + */ + private $_parent; + + /** + * Create a new PHPExcel_Style_Protection + * + * @param boolean $isSupervisor Flag indicating if this is a supervisor or not + * Leave this value at default unless you understand exactly what + * its ramifications are + * @param boolean $isConditional Flag indicating if this is a conditional style or not + * Leave this value at default unless you understand exactly what + * its ramifications are + */ + public function __construct($isSupervisor = false, $isConditional = false) + { + // Supervisor? + $this->_isSupervisor = $isSupervisor; + + // Initialise values + if (!$isConditional) { + $this->_locked = self::PROTECTION_INHERIT; + $this->_hidden = self::PROTECTION_INHERIT; + } + } + + /** + * Bind parent. Only used for supervisor + * + * @param PHPExcel_Style $parent + * @return PHPExcel_Style_Protection + */ + public function bindParent($parent) + { + $this->_parent = $parent; + return $this; + } + + /** + * Is this a supervisor or a real style component? + * + * @return boolean + */ + public function getIsSupervisor() + { + return $this->_isSupervisor; + } + + /** + * Get the shared style component for the currently active cell in currently active sheet. + * Only used for style supervisor + * + * @return PHPExcel_Style_Protection + */ + public function getSharedComponent() + { + return $this->_parent->getSharedComponent()->getProtection(); + } + + /** + * Get the currently active sheet. Only used for supervisor + * + * @return PHPExcel_Worksheet + */ + public function getActiveSheet() + { + return $this->_parent->getActiveSheet(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getSelectedCells() + { + return $this->getActiveSheet()->getSelectedCells(); + } + + /** + * Get the currently active cell coordinate in currently active sheet. + * Only used for supervisor + * + * @return string E.g. 'A1' + */ + public function getActiveCell() + { + return $this->getActiveSheet()->getActiveCell(); + } + + /** + * Build style array from subcomponents + * + * @param array $array + * @return array + */ + public function getStyleArray($array) + { + return array('protection' => $array); + } + + /** + * Apply styles from array + * + * <code> + * $objPHPExcel->getActiveSheet()->getStyle('B2')->getLocked()->applyFromArray( array('locked' => true, 'hidden' => false) ); + * </code> + * + * @param array $pStyles Array containing style information + * @throws Exception + * @return PHPExcel_Style_Protection + */ + public function applyFromArray($pStyles = null) { + if (is_array($pStyles)) { + if ($this->_isSupervisor) { + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); + } else { + if (array_key_exists('locked', $pStyles)) { + $this->setLocked($pStyles['locked']); + } + if (array_key_exists('hidden', $pStyles)) { + $this->setHidden($pStyles['hidden']); + } + } + } else { + throw new Exception("Invalid style array passed."); + } + return $this; + } + + /** + * Get locked + * + * @return string + */ + public function getLocked() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getLocked(); + } + return $this->_locked; + } + + /** + * Set locked + * + * @param string $pValue + * @return PHPExcel_Style_Protection + */ + public function setLocked($pValue = self::PROTECTION_INHERIT) { + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('locked' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_locked = $pValue; + } + return $this; + } + + /** + * Get hidden + * + * @return string + */ + public function getHidden() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHidden(); + } + return $this->_hidden; + } + + /** + * Set hidden + * + * @param string $pValue + * @return PHPExcel_Style_Protection + */ + public function setHidden($pValue = self::PROTECTION_INHERIT) { + if ($this->_isSupervisor) { + $styleArray = $this->getStyleArray(array('hidden' => $pValue)); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->_hidden = $pValue; + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + if ($this->_isSupervisor) { + return $this->getSharedComponent()->getHashCode(); + } + return md5( + $this->_locked + . $this->_hidden + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if ((is_object($value)) && ($key != '_parent')) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet.php new file mode 100755 index 0000000..17ed5da --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet.php @@ -0,0 +1,2795 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet implements PHPExcel_IComparable +{ + /* Break types */ + const BREAK_NONE = 0; + const BREAK_ROW = 1; + const BREAK_COLUMN = 2; + + /* Sheet state */ + const SHEETSTATE_VISIBLE = 'visible'; + const SHEETSTATE_HIDDEN = 'hidden'; + const SHEETSTATE_VERYHIDDEN = 'veryHidden'; + + /** + * Invalid characters in sheet title + * + * @var array + */ + private static $_invalidCharacters = array('*', ':', '/', '\\', '?', '[', ']'); + + /** + * Parent spreadsheet + * + * @var PHPExcel + */ + private $_parent; + + /** + * Cacheable collection of cells + * + * @var PHPExcel_CachedObjectStorage_xxx + */ + private $_cellCollection = null; + + /** + * Collection of row dimensions + * + * @var PHPExcel_Worksheet_RowDimension[] + */ + private $_rowDimensions = array(); + + /** + * Default row dimension + * + * @var PHPExcel_Worksheet_RowDimension + */ + private $_defaultRowDimension = null; + + /** + * Collection of column dimensions + * + * @var PHPExcel_Worksheet_ColumnDimension[] + */ + private $_columnDimensions = array(); + + /** + * Default column dimension + * + * @var PHPExcel_Worksheet_ColumnDimension + */ + private $_defaultColumnDimension = null; + + /** + * Collection of drawings + * + * @var PHPExcel_Worksheet_BaseDrawing[] + */ + private $_drawingCollection = null; + + /** + * Collection of Chart objects + * + * @var PHPExcel_Chart[] + */ + private $_chartCollection = array(); + + /** + * Worksheet title + * + * @var string + */ + private $_title; + + /** + * Sheet state + * + * @var string + */ + private $_sheetState; + + /** + * Page setup + * + * @var PHPExcel_Worksheet_PageSetup + */ + private $_pageSetup; + + /** + * Page margins + * + * @var PHPExcel_Worksheet_PageMargins + */ + private $_pageMargins; + + /** + * Page header/footer + * + * @var PHPExcel_Worksheet_HeaderFooter + */ + private $_headerFooter; + + /** + * Sheet view + * + * @var PHPExcel_Worksheet_SheetView + */ + private $_sheetView; + + /** + * Protection + * + * @var PHPExcel_Worksheet_Protection + */ + private $_protection; + + /** + * Collection of styles + * + * @var PHPExcel_Style[] + */ + private $_styles = array(); + + /** + * Conditional styles. Indexed by cell coordinate, e.g. 'A1' + * + * @var array + */ + private $_conditionalStylesCollection = array(); + + /** + * Is the current cell collection sorted already? + * + * @var boolean + */ + private $_cellCollectionIsSorted = false; + + /** + * Collection of breaks + * + * @var array + */ + private $_breaks = array(); + + /** + * Collection of merged cell ranges + * + * @var array + */ + private $_mergeCells = array(); + + /** + * Collection of protected cell ranges + * + * @var array + */ + private $_protectedCells = array(); + + /** + * Autofilter Range and selection + * + * @var PHPExcel_Worksheet_AutoFilter + */ + private $_autoFilter = NULL; + + /** + * Freeze pane + * + * @var string + */ + private $_freezePane = ''; + + /** + * Show gridlines? + * + * @var boolean + */ + private $_showGridlines = true; + + /** + * Print gridlines? + * + * @var boolean + */ + private $_printGridlines = false; + + /** + * Show row and column headers? + * + * @var boolean + */ + private $_showRowColHeaders = true; + + /** + * Show summary below? (Row/Column outline) + * + * @var boolean + */ + private $_showSummaryBelow = true; + + /** + * Show summary right? (Row/Column outline) + * + * @var boolean + */ + private $_showSummaryRight = true; + + /** + * Collection of comments + * + * @var PHPExcel_Comment[] + */ + private $_comments = array(); + + /** + * Active cell. (Only one!) + * + * @var string + */ + private $_activeCell = 'A1'; + + /** + * Selected cells + * + * @var string + */ + private $_selectedCells = 'A1'; + + /** + * Cached highest column + * + * @var string + */ + private $_cachedHighestColumn = 'A'; + + /** + * Cached highest row + * + * @var int + */ + private $_cachedHighestRow = 1; + + /** + * Right-to-left? + * + * @var boolean + */ + private $_rightToLeft = false; + + /** + * Hyperlinks. Indexed by cell coordinate, e.g. 'A1' + * + * @var array + */ + private $_hyperlinkCollection = array(); + + /** + * Data validation objects. Indexed by cell coordinate, e.g. 'A1' + * + * @var array + */ + private $_dataValidationCollection = array(); + + /** + * Tab color + * + * @var PHPExcel_Style_Color + */ + private $_tabColor; + + /** + * Dirty flag + * + * @var boolean + */ + private $_dirty = true; + + /** + * Hash + * + * @var string + */ + private $_hash = null; + + /** + * Create a new worksheet + * + * @param PHPExcel $pParent + * @param string $pTitle + */ + public function __construct(PHPExcel $pParent = null, $pTitle = 'Worksheet') + { + // Set parent and title + $this->_parent = $pParent; + $this->setTitle($pTitle, FALSE); + $this->setSheetState(PHPExcel_Worksheet::SHEETSTATE_VISIBLE); + + $this->_cellCollection = PHPExcel_CachedObjectStorageFactory::getInstance($this); + + // Set page setup + $this->_pageSetup = new PHPExcel_Worksheet_PageSetup(); + + // Set page margins + $this->_pageMargins = new PHPExcel_Worksheet_PageMargins(); + + // Set page header/footer + $this->_headerFooter = new PHPExcel_Worksheet_HeaderFooter(); + + // Set sheet view + $this->_sheetView = new PHPExcel_Worksheet_SheetView(); + + // Drawing collection + $this->_drawingCollection = new ArrayObject(); + + // Chart collection + $this->_chartCollection = new ArrayObject(); + + // Protection + $this->_protection = new PHPExcel_Worksheet_Protection(); + + // Default row dimension + $this->_defaultRowDimension = new PHPExcel_Worksheet_RowDimension(NULL); + + // Default column dimension + $this->_defaultColumnDimension = new PHPExcel_Worksheet_ColumnDimension(NULL); + + $this->_autoFilter = new PHPExcel_Worksheet_AutoFilter(NULL, $this); + } + + + /** + * Disconnect all cells from this PHPExcel_Worksheet object, + * typically so that the worksheet object can be unset + * + */ + public function disconnectCells() { + $this->_cellCollection->unsetWorksheetCells(); + $this->_cellCollection = null; + + // detach ourself from the workbook, so that it can then delete this worksheet successfully + $this->_parent = null; + } + + /** + * Return the cache controller for the cell collection + * + * @return PHPExcel_CachedObjectStorage_xxx + */ + public function getCellCacheController() { + return $this->_cellCollection; + } // function getCellCacheController() + + + /** + * Get array of invalid characters for sheet title + * + * @return array + */ + public static function getInvalidCharacters() + { + return self::$_invalidCharacters; + } + + /** + * Check sheet title for valid Excel syntax + * + * @param string $pValue The string to check + * @return string The valid string + * @throws Exception + */ + private static function _checkSheetTitle($pValue) + { + // Some of the printable ASCII characters are invalid: * : / \ ? [ ] + if (str_replace(self::$_invalidCharacters, '', $pValue) !== $pValue) { + throw new Exception('Invalid character found in sheet title'); + } + + // Maximum 31 characters allowed for sheet title + if (PHPExcel_Shared_String::CountCharacters($pValue) > 31) { + throw new Exception('Maximum 31 characters allowed in sheet title.'); + } + + return $pValue; + } + + /** + * Get collection of cells + * + * @param boolean $pSorted Also sort the cell collection? + * @return PHPExcel_Cell[] + */ + public function getCellCollection($pSorted = true) + { + if ($pSorted) { + // Re-order cell collection + return $this->sortCellCollection(); + } + if ($this->_cellCollection !== NULL) { + return $this->_cellCollection->getCellList(); + } + return array(); + } + + /** + * Sort collection of cells + * + * @return PHPExcel_Worksheet + */ + public function sortCellCollection() + { + if ($this->_cellCollection !== NULL) { + return $this->_cellCollection->getSortedCellList(); + } + return array(); + } + + /** + * Get collection of row dimensions + * + * @return PHPExcel_Worksheet_RowDimension[] + */ + public function getRowDimensions() + { + return $this->_rowDimensions; + } + + /** + * Get default row dimension + * + * @return PHPExcel_Worksheet_RowDimension + */ + public function getDefaultRowDimension() + { + return $this->_defaultRowDimension; + } + + /** + * Get collection of column dimensions + * + * @return PHPExcel_Worksheet_ColumnDimension[] + */ + public function getColumnDimensions() + { + return $this->_columnDimensions; + } + + /** + * Get default column dimension + * + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function getDefaultColumnDimension() + { + return $this->_defaultColumnDimension; + } + + /** + * Get collection of drawings + * + * @return PHPExcel_Worksheet_BaseDrawing[] + */ + public function getDrawingCollection() + { + return $this->_drawingCollection; + } + + /** + * Get collection of charts + * + * @return PHPExcel_Chart[] + */ + public function getChartCollection() + { + return $this->_chartCollection; + } + + /** + * Add chart + * + * @param PHPExcel_Chart $pChart + * @param int|null $iChartIndex Index where chart should go (0,1,..., or null for last) + * @return PHPExcel_Chart + * @throws Exception + */ + public function addChart(PHPExcel_Chart $pChart = null, $iChartIndex = null) + { + $pChart->setWorksheet($this); + if (is_null($iChartIndex)) { + $this->_chartCollection[] = $pChart; + } else { + // Insert the chart at the requested index + array_splice($this->_chartCollection, $iChartIndex, 0, array($pChart)); + } + + return $pChart; + } + + /** + * Return the count of charts on this worksheet + * + * @return int The number of charts + * @throws Exception + */ + public function getChartCount() + { + return count($this->_chartCollection); + } + + /** + * Get a chart by its index position + * + * @param string $index Chart index position + * @return false|PHPExcel_Chart + * @throws Exception + */ + public function getChartByIndex($index = null) + { + $chartCount = count($this->_chartCollection); + if ($chartCount == 0) { + return false; + } + if (is_null($index)) { + $index = --$chartCount; + } + if (!isset($this->_chartCollection[$index])) { + return false; + } + + return $this->_chartCollection[$index]; + } + + /** + * Return an array of the names of charts on this worksheet + * + * @return string[] The names of charts + * @throws Exception + */ + public function getChartNames() + { + $chartNames = array(); + foreach($this->_chartCollection as $chart) { + $chartNames[] = $chart->getName(); + } + return $chartNames; + } + + /** + * Get a chart by name + * + * @param string $chartName Chart name + * @return false|PHPExcel_Chart + * @throws Exception + */ + public function getChartByName($chartName = '') + { + $chartCount = count($this->_chartCollection); + if ($chartCount == 0) { + return false; + } + foreach($this->_chartCollection as $index => $chart) { + if ($chart->getName() == $chartName) { + return $this->_chartCollection[$index]; + } + } + return false; + } + + /** + * Refresh column dimensions + * + * @return PHPExcel_Worksheet + */ + public function refreshColumnDimensions() + { + $currentColumnDimensions = $this->getColumnDimensions(); + $newColumnDimensions = array(); + + foreach ($currentColumnDimensions as $objColumnDimension) { + $newColumnDimensions[$objColumnDimension->getColumnIndex()] = $objColumnDimension; + } + + $this->_columnDimensions = $newColumnDimensions; + + return $this; + } + + /** + * Refresh row dimensions + * + * @return PHPExcel_Worksheet + */ + public function refreshRowDimensions() + { + $currentRowDimensions = $this->getRowDimensions(); + $newRowDimensions = array(); + + foreach ($currentRowDimensions as $objRowDimension) { + $newRowDimensions[$objRowDimension->getRowIndex()] = $objRowDimension; + } + + $this->_rowDimensions = $newRowDimensions; + + return $this; + } + + /** + * Calculate worksheet dimension + * + * @return string String containing the dimension of this worksheet + */ + public function calculateWorksheetDimension() + { + // Return + return 'A1' . ':' . $this->getHighestColumn() . $this->getHighestRow(); + } + + /** + * Calculate worksheet data dimension + * + * @return string String containing the dimension of this worksheet that actually contain data + */ + public function calculateWorksheetDataDimension() + { + // Return + return 'A1' . ':' . $this->getHighestDataColumn() . $this->getHighestDataRow(); + } + + /** + * Calculate widths for auto-size columns + * + * @param boolean $calculateMergeCells Calculate merge cell width + * @return PHPExcel_Worksheet; + */ + public function calculateColumnWidths($calculateMergeCells = false) + { + // initialize $autoSizes array + $autoSizes = array(); + foreach ($this->getColumnDimensions() as $colDimension) { + if ($colDimension->getAutoSize()) { + $autoSizes[$colDimension->getColumnIndex()] = -1; + } + } + + // There is only something to do if there are some auto-size columns + if (!empty($autoSizes)) { + + // build list of cells references that participate in a merge + $isMergeCell = array(); + foreach ($this->getMergeCells() as $cells) { + foreach (PHPExcel_Cell::extractAllCellReferencesInRange($cells) as $cellReference) { + $isMergeCell[$cellReference] = true; + } + } + + // loop through all cells in the worksheet + foreach ($this->getCellCollection(false) as $cellID) { + $cell = $this->getCell($cellID); + if (isset($autoSizes[$cell->getColumn()])) { + // Determine width if cell does not participate in a merge + if (!isset($isMergeCell[$cell->getCoordinate()])) { + // Calculated value + $cellValue = $cell->getCalculatedValue(); + + // To formatted string + $cellValue = PHPExcel_Style_NumberFormat::toFormattedString($cellValue, $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode()); + + $autoSizes[$cell->getColumn()] = max( + (float)$autoSizes[$cell->getColumn()], + (float)PHPExcel_Shared_Font::calculateColumnWidth( + $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont(), + $cellValue, + $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getAlignment()->getTextRotation(), + $this->getDefaultStyle()->getFont() + ) + ); + } + } + } + + // adjust column widths + foreach ($autoSizes as $columnIndex => $width) { + if ($width == -1) $width = $this->getDefaultColumnDimension()->getWidth(); + $this->getColumnDimension($columnIndex)->setWidth($width); + } + } + + return $this; + } + + /** + * Get parent + * + * @return PHPExcel + */ + public function getParent() { + return $this->_parent; + } + + /** + * Re-bind parent + * + * @param PHPExcel $parent + * @return PHPExcel_Worksheet + */ + public function rebindParent(PHPExcel $parent) { + $namedRanges = $this->_parent->getNamedRanges(); + foreach ($namedRanges as $namedRange) { + $parent->addNamedRange($namedRange); + } + + $this->_parent->removeSheetByIndex( + $this->_parent->getIndex($this) + ); + $this->_parent = $parent; + + return $this; + } + + /** + * Get title + * + * @return string + */ + public function getTitle() + { + return $this->_title; + } + + /** + * Set title + * + * @param string $pValue String containing the dimension of this worksheet + * @param string $updateFormulaCellReferences boolean Flag indicating whether cell references in formulae should + * be updated to reflect the new sheet name. + * This should be left as the default true, unless you are + * certain that no formula cells on any worksheet contain + * references to this worksheet + * @return PHPExcel_Worksheet + */ + public function setTitle($pValue = 'Worksheet', $updateFormulaCellReferences = true) + { + // Is this a 'rename' or not? + if ($this->getTitle() == $pValue) { + return $this; + } + + // Syntax check + self::_checkSheetTitle($pValue); + + // Old title + $oldTitle = $this->getTitle(); + + if ($this->getParent()) { + // Is there already such sheet name? + if ($this->getParent()->sheetNameExists($pValue)) { + // Use name, but append with lowest possible integer + + if (PHPExcel_Shared_String::CountCharacters($pValue) > 29) { + $pValue = PHPExcel_Shared_String::Substring($pValue,0,29); + } + $i = 1; + while ($this->getParent()->sheetNameExists($pValue . ' ' . $i)) { + ++$i; + if ($i == 10) { + if (PHPExcel_Shared_String::CountCharacters($pValue) > 28) { + $pValue = PHPExcel_Shared_String::Substring($pValue,0,28); + } + } elseif ($i == 100) { + if (PHPExcel_Shared_String::CountCharacters($pValue) > 27) { + $pValue = PHPExcel_Shared_String::Substring($pValue,0,27); + } + } + } + + $altTitle = $pValue . ' ' . $i; + return $this->setTitle($altTitle,$updateFormulaCellReferences); + } + } + + // Set title + $this->_title = $pValue; + $this->_dirty = true; + + if ($this->getParent()) { + // New title + $newTitle = $this->getTitle(); + if ($updateFormulaCellReferences) + PHPExcel_ReferenceHelper::getInstance()->updateNamedFormulas($this->getParent(), $oldTitle, $newTitle); + } + + return $this; + } + + /** + * Get sheet state + * + * @return string Sheet state (visible, hidden, veryHidden) + */ + public function getSheetState() { + return $this->_sheetState; + } + + /** + * Set sheet state + * + * @param string $value Sheet state (visible, hidden, veryHidden) + * @return PHPExcel_Worksheet + */ + public function setSheetState($value = PHPExcel_Worksheet::SHEETSTATE_VISIBLE) { + $this->_sheetState = $value; + return $this; + } + + /** + * Get page setup + * + * @return PHPExcel_Worksheet_PageSetup + */ + public function getPageSetup() + { + return $this->_pageSetup; + } + + /** + * Set page setup + * + * @param PHPExcel_Worksheet_PageSetup $pValue + * @return PHPExcel_Worksheet + */ + public function setPageSetup(PHPExcel_Worksheet_PageSetup $pValue) + { + $this->_pageSetup = $pValue; + return $this; + } + + /** + * Get page margins + * + * @return PHPExcel_Worksheet_PageMargins + */ + public function getPageMargins() + { + return $this->_pageMargins; + } + + /** + * Set page margins + * + * @param PHPExcel_Worksheet_PageMargins $pValue + * @return PHPExcel_Worksheet + */ + public function setPageMargins(PHPExcel_Worksheet_PageMargins $pValue) + { + $this->_pageMargins = $pValue; + return $this; + } + + /** + * Get page header/footer + * + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function getHeaderFooter() + { + return $this->_headerFooter; + } + + /** + * Set page header/footer + * + * @param PHPExcel_Worksheet_HeaderFooter $pValue + * @return PHPExcel_Worksheet + */ + public function setHeaderFooter(PHPExcel_Worksheet_HeaderFooter $pValue) + { + $this->_headerFooter = $pValue; + return $this; + } + + /** + * Get sheet view + * + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function getSheetView() + { + return $this->_sheetView; + } + + /** + * Set sheet view + * + * @param PHPExcel_Worksheet_SheetView $pValue + * @return PHPExcel_Worksheet + */ + public function setSheetView(PHPExcel_Worksheet_SheetView $pValue) + { + $this->_sheetView = $pValue; + return $this; + } + + /** + * Get Protection + * + * @return PHPExcel_Worksheet_Protection + */ + public function getProtection() + { + return $this->_protection; + } + + /** + * Set Protection + * + * @param PHPExcel_Worksheet_Protection $pValue + * @return PHPExcel_Worksheet + */ + public function setProtection(PHPExcel_Worksheet_Protection $pValue) + { + $this->_protection = $pValue; + $this->_dirty = true; + + return $this; + } + + /** + * Get highest worksheet column + * + * @return string Highest column name + */ + public function getHighestColumn() + { + return $this->_cachedHighestColumn; + } + + /** + * Get highest worksheet column that contains data + * + * @return string Highest column name that contains data + */ + public function getHighestDataColumn() + { + return $this->_cellCollection->getHighestColumn(); + } + + /** + * Get highest worksheet row + * + * @return int Highest row number + */ + public function getHighestRow() + { + return $this->_cachedHighestRow; + } + + /** + * Get highest worksheet row that contains data + * + * @return string Highest row number that contains data + */ + public function getHighestDataRow() + { + return $this->_cellCollection->getHighestRow(); + } + + /** + * Get highest worksheet column and highest row that have cell records + * + * @return array Highest column name and highest row number + */ + public function getHighestRowAndColumn() + { + return $this->_cellCollection->getHighestRowAndColumn(); + } + + /** + * Set a cell value + * + * @param string $pCoordinate Coordinate of the cell + * @param mixed $pValue Value of the cell + * @param bool $returnCell Return the worksheet (false, default) or the cell (true) + * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified + */ + public function setCellValue($pCoordinate = 'A1', $pValue = null, $returnCell = false) + { + $cell = $this->getCell($pCoordinate)->setValue($pValue); + return ($returnCell) ? $cell : $this; + } + + /** + * Set a cell value by using numeric cell coordinates + * + * @param string $pColumn Numeric column coordinate of the cell + * @param string $pRow Numeric row coordinate of the cell + * @param mixed $pValue Value of the cell + * @param bool $returnCell Return the worksheet (false, default) or the cell (true) + * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified + */ + public function setCellValueByColumnAndRow($pColumn = 0, $pRow = 1, $pValue = null, $returnCell = false) + { + $cell = $this->getCell(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow)->setValue($pValue); + return ($returnCell) ? $cell : $this; + } + + /** + * Set a cell value + * + * @param string $pCoordinate Coordinate of the cell + * @param mixed $pValue Value of the cell + * @param string $pDataType Explicit data type + * @param bool $returnCell Return the worksheet (false, default) or the cell (true) + * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified + */ + public function setCellValueExplicit($pCoordinate = 'A1', $pValue = null, $pDataType = PHPExcel_Cell_DataType::TYPE_STRING, $returnCell = false) + { + // Set value + $cell = $this->getCell($pCoordinate)->setValueExplicit($pValue, $pDataType); + return ($returnCell) ? $cell : $this; + } + + /** + * Set a cell value by using numeric cell coordinates + * + * @param string $pColumn Numeric column coordinate of the cell + * @param string $pRow Numeric row coordinate of the cell + * @param mixed $pValue Value of the cell + * @param string $pDataType Explicit data type + * @param bool $returnCell Return the worksheet (false, default) or the cell (true) + * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified + */ + public function setCellValueExplicitByColumnAndRow($pColumn = 0, $pRow = 1, $pValue = null, $pDataType = PHPExcel_Cell_DataType::TYPE_STRING, $returnCell = false) + { + $cell = $this->getCell(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow)->setValueExplicit($pValue, $pDataType); + return ($returnCell) ? $cell : $this; + } + + /** + * Get cell at a specific coordinate + * + * @param string $pCoordinate Coordinate of the cell + * @throws Exception + * @return PHPExcel_Cell Cell that was found + */ + public function getCell($pCoordinate = 'A1') + { + // Check cell collection + if ($this->_cellCollection->isDataSet($pCoordinate)) { + return $this->_cellCollection->getCacheData($pCoordinate); + } + + // Worksheet reference? + if (strpos($pCoordinate, '!') !== false) { + $worksheetReference = PHPExcel_Worksheet::extractSheetTitle($pCoordinate, true); + return $this->getParent()->getSheetByName($worksheetReference[0])->getCell($worksheetReference[1]); + } + + // Named range? + if ((!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $pCoordinate, $matches)) && + (preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $pCoordinate, $matches))) { + $namedRange = PHPExcel_NamedRange::resolveRange($pCoordinate, $this); + if ($namedRange !== NULL) { + $pCoordinate = $namedRange->getRange(); + return $namedRange->getWorksheet()->getCell($pCoordinate); + } + } + + // Uppercase coordinate + $pCoordinate = strtoupper($pCoordinate); + + if (strpos($pCoordinate,':') !== false || strpos($pCoordinate,',') !== false) { + throw new Exception('Cell coordinate can not be a range of cells.'); + } elseif (strpos($pCoordinate,'$') !== false) { + throw new Exception('Cell coordinate must not be absolute.'); + } else { + // Create new cell object + + // Coordinates + $aCoordinates = PHPExcel_Cell::coordinateFromString($pCoordinate); + + $cell = $this->_cellCollection->addCacheData($pCoordinate,new PHPExcel_Cell($aCoordinates[0], $aCoordinates[1], null, PHPExcel_Cell_DataType::TYPE_NULL, $this)); + $this->_cellCollectionIsSorted = false; + + if (PHPExcel_Cell::columnIndexFromString($this->_cachedHighestColumn) < PHPExcel_Cell::columnIndexFromString($aCoordinates[0])) + $this->_cachedHighestColumn = $aCoordinates[0]; + + $this->_cachedHighestRow = max($this->_cachedHighestRow,$aCoordinates[1]); + + // Cell needs appropriate xfIndex + $rowDimensions = $this->getRowDimensions(); + $columnDimensions = $this->getColumnDimensions(); + + if ( isset($rowDimensions[$aCoordinates[1]]) && $rowDimensions[$aCoordinates[1]]->getXfIndex() !== null ) { + // then there is a row dimension with explicit style, assign it to the cell + $cell->setXfIndex($rowDimensions[$aCoordinates[1]]->getXfIndex()); + } else if ( isset($columnDimensions[$aCoordinates[0]]) ) { + // then there is a column dimension, assign it to the cell + $cell->setXfIndex($columnDimensions[$aCoordinates[0]]->getXfIndex()); + } else { + // set to default index + $cell->setXfIndex(0); + } + + return $cell; + } + } + + /** + * Get cell at a specific coordinate by using numeric cell coordinates + * + * @param string $pColumn Numeric column coordinate of the cell + * @param string $pRow Numeric row coordinate of the cell + * @return PHPExcel_Cell Cell that was found + */ + public function getCellByColumnAndRow($pColumn = 0, $pRow = 1) + { + $columnLetter = PHPExcel_Cell::stringFromColumnIndex($pColumn); + $coordinate = $columnLetter . $pRow; + + if (!$this->_cellCollection->isDataSet($coordinate)) { + $cell = $this->_cellCollection->addCacheData($coordinate, new PHPExcel_Cell($columnLetter, $pRow, null, PHPExcel_Cell_DataType::TYPE_NULL, $this)); + $this->_cellCollectionIsSorted = false; + + if (PHPExcel_Cell::columnIndexFromString($this->_cachedHighestColumn) < $pColumn) + $this->_cachedHighestColumn = $columnLetter; + + $this->_cachedHighestRow = max($this->_cachedHighestRow,$pRow); + + return $cell; + } + + return $this->_cellCollection->getCacheData($coordinate); + } + + /** + * Cell at a specific coordinate exists? + * + * @param string $pCoordinate Coordinate of the cell + * @throws Exception + * @return boolean + */ + public function cellExists($pCoordinate = 'A1') + { + // Worksheet reference? + if (strpos($pCoordinate, '!') !== false) { + $worksheetReference = PHPExcel_Worksheet::extractSheetTitle($pCoordinate, true); + return $this->getParent()->getSheetByName($worksheetReference[0])->cellExists($worksheetReference[1]); + } + + // Named range? + if ((!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $pCoordinate, $matches)) && + (preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $pCoordinate, $matches))) { + $namedRange = PHPExcel_NamedRange::resolveRange($pCoordinate, $this); + if ($namedRange !== NULL) { + $pCoordinate = $namedRange->getRange(); + if ($this->getHashCode() != $namedRange->getWorksheet()->getHashCode()) { + if (!$namedRange->getLocalOnly()) { + return $namedRange->getWorksheet()->cellExists($pCoordinate); + } else { + throw new Exception('Named range ' . $namedRange->getName() . ' is not accessible from within sheet ' . $this->getTitle()); + } + } + } + } + + // Uppercase coordinate + $pCoordinate = strtoupper($pCoordinate); + + if (strpos($pCoordinate,':') !== false || strpos($pCoordinate,',') !== false) { + throw new Exception('Cell coordinate can not be a range of cells.'); + } elseif (strpos($pCoordinate,'$') !== false) { + throw new Exception('Cell coordinate must not be absolute.'); + } else { + // Coordinates + $aCoordinates = PHPExcel_Cell::coordinateFromString($pCoordinate); + + // Cell exists? + return $this->_cellCollection->isDataSet($pCoordinate); + } + } + + /** + * Cell at a specific coordinate by using numeric cell coordinates exists? + * + * @param string $pColumn Numeric column coordinate of the cell + * @param string $pRow Numeric row coordinate of the cell + * @return boolean + */ + public function cellExistsByColumnAndRow($pColumn = 0, $pRow = 1) + { + return $this->cellExists(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); + } + + /** + * Get row dimension at a specific row + * + * @param int $pRow Numeric index of the row + * @return PHPExcel_Worksheet_RowDimension + */ + public function getRowDimension($pRow = 1) + { + // Found + $found = null; + + // Get row dimension + if (!isset($this->_rowDimensions[$pRow])) { + $this->_rowDimensions[$pRow] = new PHPExcel_Worksheet_RowDimension($pRow); + + $this->_cachedHighestRow = max($this->_cachedHighestRow,$pRow); + } + return $this->_rowDimensions[$pRow]; + } + + /** + * Get column dimension at a specific column + * + * @param string $pColumn String index of the column + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function getColumnDimension($pColumn = 'A') + { + // Uppercase coordinate + $pColumn = strtoupper($pColumn); + + // Fetch dimensions + if (!isset($this->_columnDimensions[$pColumn])) { + $this->_columnDimensions[$pColumn] = new PHPExcel_Worksheet_ColumnDimension($pColumn); + + if (PHPExcel_Cell::columnIndexFromString($this->_cachedHighestColumn) < PHPExcel_Cell::columnIndexFromString($pColumn)) + $this->_cachedHighestColumn = $pColumn; + } + return $this->_columnDimensions[$pColumn]; + } + + /** + * Get column dimension at a specific column by using numeric cell coordinates + * + * @param string $pColumn Numeric column coordinate of the cell + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function getColumnDimensionByColumn($pColumn = 0) + { + return $this->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($pColumn)); + } + + /** + * Get styles + * + * @return PHPExcel_Style[] + */ + public function getStyles() + { + return $this->_styles; + } + + /** + * Get default style of workbork. + * + * @deprecated + * @return PHPExcel_Style + * @throws Exception + */ + public function getDefaultStyle() + { + return $this->_parent->getDefaultStyle(); + } + + /** + * Set default style - should only be used by PHPExcel_IReader implementations! + * + * @deprecated + * @param PHPExcel_Style $pValue + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setDefaultStyle(PHPExcel_Style $pValue) + { + $this->_parent->getDefaultStyle()->applyFromArray(array( + 'font' => array( + 'name' => $pValue->getFont()->getName(), + 'size' => $pValue->getFont()->getSize(), + ), + )); + return $this; + } + + /** + * Get style for cell + * + * @param string $pCellCoordinate Cell coordinate to get style for + * @return PHPExcel_Style + * @throws Exception + */ + public function getStyle($pCellCoordinate = 'A1') + { + // set this sheet as active + $this->_parent->setActiveSheetIndex($this->_parent->getIndex($this)); + + // set cell coordinate as active + $this->setSelectedCells($pCellCoordinate); + + return $this->_parent->getCellXfSupervisor(); + } + + /** + * Get conditional styles for a cell + * + * @param string $pCoordinate + * @return PHPExcel_Style_Conditional[] + */ + public function getConditionalStyles($pCoordinate = 'A1') + { + if (!isset($this->_conditionalStylesCollection[$pCoordinate])) { + $this->_conditionalStylesCollection[$pCoordinate] = array(); + } + return $this->_conditionalStylesCollection[$pCoordinate]; + } + + /** + * Do conditional styles exist for this cell? + * + * @param string $pCoordinate + * @return boolean + */ + public function conditionalStylesExists($pCoordinate = 'A1') + { + if (isset($this->_conditionalStylesCollection[$pCoordinate])) { + return true; + } + return false; + } + + /** + * Removes conditional styles for a cell + * + * @param string $pCoordinate + * @return PHPExcel_Worksheet + */ + public function removeConditionalStyles($pCoordinate = 'A1') + { + unset($this->_conditionalStylesCollection[$pCoordinate]); + return $this; + } + + /** + * Get collection of conditional styles + * + * @return array + */ + public function getConditionalStylesCollection() + { + return $this->_conditionalStylesCollection; + } + + /** + * Set conditional styles + * + * @param $pCoordinate string E.g. 'A1' + * @param $pValue PHPExcel_Style_Conditional[] + * @return PHPExcel_Worksheet + */ + public function setConditionalStyles($pCoordinate = 'A1', $pValue) + { + $this->_conditionalStylesCollection[$pCoordinate] = $pValue; + return $this; + } + + /** + * Get style for cell by using numeric cell coordinates + * + * @param int $pColumn Numeric column coordinate of the cell + * @param int $pRow Numeric row coordinate of the cell + * @return PHPExcel_Style + */ + public function getStyleByColumnAndRow($pColumn = 0, $pRow = 1) + { + return $this->getStyle(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); + } + + /** + * Set shared cell style to a range of cells + * + * Please note that this will overwrite existing cell styles for cells in range! + * + * @deprecated + * @param PHPExcel_Style $pSharedCellStyle Cell style to share + * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setSharedStyle(PHPExcel_Style $pSharedCellStyle = null, $pRange = '') + { + $this->duplicateStyle($pSharedCellStyle, $pRange); + return $this; + } + + /** + * Duplicate cell style to a range of cells + * + * Please note that this will overwrite existing cell styles for cells in range! + * + * @param PHPExcel_Style $pCellStyle Cell style to duplicate + * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function duplicateStyle(PHPExcel_Style $pCellStyle = null, $pRange = '') + { + // make sure we have a real style and not supervisor + $style = $pCellStyle->getIsSupervisor() ? $pCellStyle->getSharedComponent() : $pCellStyle; + + // Add the style to the workbook if necessary + $workbook = $this->_parent; + if ($existingStyle = $this->_parent->getCellXfByHashCode($pCellStyle->getHashCode())) { + // there is already such cell Xf in our collection + $xfIndex = $existingStyle->getIndex(); + } else { + // we don't have such a cell Xf, need to add + $workbook->addCellXf($pCellStyle); + $xfIndex = $pCellStyle->getIndex(); + } + + // Uppercase coordinate + $pRange = strtoupper($pRange); + + // Is it a cell range or a single cell? + $rangeA = ''; + $rangeB = ''; + if (strpos($pRange, ':') === false) { + $rangeA = $pRange; + $rangeB = $pRange; + } else { + list($rangeA, $rangeB) = explode(':', $pRange); + } + + // Calculate range outer borders + $rangeStart = PHPExcel_Cell::coordinateFromString($rangeA); + $rangeEnd = PHPExcel_Cell::coordinateFromString($rangeB); + + // Translate column into index + $rangeStart[0] = PHPExcel_Cell::columnIndexFromString($rangeStart[0]) - 1; + $rangeEnd[0] = PHPExcel_Cell::columnIndexFromString($rangeEnd[0]) - 1; + + // Make sure we can loop upwards on rows and columns + if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) { + $tmp = $rangeStart; + $rangeStart = $rangeEnd; + $rangeEnd = $tmp; + } + + // Loop through cells and apply styles + for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { + for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { + $this->getCell(PHPExcel_Cell::stringFromColumnIndex($col) . $row)->setXfIndex($xfIndex); + } + } + + return $this; + } + + /** + * Duplicate conditional style to a range of cells + * + * Please note that this will overwrite existing cell styles for cells in range! + * + * @param array of PHPExcel_Style_Conditional $pCellStyle Cell style to duplicate + * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function duplicateConditionalStyle(array $pCellStyle = null, $pRange = '') + { + foreach($pCellStyle as $cellStyle) { + if (!is_a($cellStyle,'PHPExcel_Style_Conditional')) { + throw new Exception('Style is not a conditional style'); + } + } + + // Uppercase coordinate + $pRange = strtoupper($pRange); + + // Is it a cell range or a single cell? + $rangeA = ''; + $rangeB = ''; + if (strpos($pRange, ':') === false) { + $rangeA = $pRange; + $rangeB = $pRange; + } else { + list($rangeA, $rangeB) = explode(':', $pRange); + } + + // Calculate range outer borders + $rangeStart = PHPExcel_Cell::coordinateFromString($rangeA); + $rangeEnd = PHPExcel_Cell::coordinateFromString($rangeB); + + // Translate column into index + $rangeStart[0] = PHPExcel_Cell::columnIndexFromString($rangeStart[0]) - 1; + $rangeEnd[0] = PHPExcel_Cell::columnIndexFromString($rangeEnd[0]) - 1; + + // Make sure we can loop upwards on rows and columns + if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) { + $tmp = $rangeStart; + $rangeStart = $rangeEnd; + $rangeEnd = $tmp; + } + + // Loop through cells and apply styles + for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { + for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { + $this->setConditionalStyles(PHPExcel_Cell::stringFromColumnIndex($col) . $row, $pCellStyle); + } + } + + return $this; + } + + /** + * Duplicate cell style array to a range of cells + * + * Please note that this will overwrite existing cell styles for cells in range, + * if they are in the styles array. For example, if you decide to set a range of + * cells to font bold, only include font bold in the styles array. + * + * @deprecated + * @param array $pStyles Array containing style information + * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") + * @param boolean $pAdvanced Advanced mode for setting borders. + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function duplicateStyleArray($pStyles = null, $pRange = '', $pAdvanced = true) + { + $this->getStyle($pRange)->applyFromArray($pStyles, $pAdvanced); + return $this; + } + + /** + * Set break on a cell + * + * @param string $pCell Cell coordinate (e.g. A1) + * @param int $pBreak Break type (type of PHPExcel_Worksheet::BREAK_*) + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setBreak($pCell = 'A1', $pBreak = PHPExcel_Worksheet::BREAK_NONE) + { + // Uppercase coordinate + $pCell = strtoupper($pCell); + + if ($pCell != '') { + $this->_breaks[$pCell] = $pBreak; + } else { + throw new Exception('No cell coordinate specified.'); + } + + return $this; + } + + /** + * Set break on a cell by using numeric cell coordinates + * + * @param integer $pColumn Numeric column coordinate of the cell + * @param integer $pRow Numeric row coordinate of the cell + * @param integer $pBreak Break type (type of PHPExcel_Worksheet::BREAK_*) + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setBreakByColumnAndRow($pColumn = 0, $pRow = 1, $pBreak = PHPExcel_Worksheet::BREAK_NONE) + { + return $this->setBreak(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow, $pBreak); + } + + /** + * Get breaks + * + * @return array[] + */ + public function getBreaks() + { + return $this->_breaks; + } + + /** + * Set merge on a cell range + * + * @param string $pRange Cell range (e.g. A1:E1) + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function mergeCells($pRange = 'A1:A1') + { + // Uppercase coordinate + $pRange = strtoupper($pRange); + + if (strpos($pRange,':') !== false) { + $this->_mergeCells[$pRange] = $pRange; + + // make sure cells are created + + // get the cells in the range + $aReferences = PHPExcel_Cell::extractAllCellReferencesInRange($pRange); + + // create upper left cell if it does not already exist + $upperLeft = $aReferences[0]; + if (!$this->cellExists($upperLeft)) { + $this->getCell($upperLeft)->setValueExplicit(null, PHPExcel_Cell_DataType::TYPE_NULL); + } + + // create or blank out the rest of the cells in the range + $count = count($aReferences); + for ($i = 1; $i < $count; $i++) { + $this->getCell($aReferences[$i])->setValueExplicit(null, PHPExcel_Cell_DataType::TYPE_NULL); + } + + } else { + throw new Exception('Merge must be set on a range of cells.'); + } + + return $this; + } + + /** + * Set merge on a cell range by using numeric cell coordinates + * + * @param int $pColumn1 Numeric column coordinate of the first cell + * @param int $pRow1 Numeric row coordinate of the first cell + * @param int $pColumn2 Numeric column coordinate of the last cell + * @param int $pRow2 Numeric row coordinate of the last cell + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function mergeCellsByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1) + { + $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; + return $this->mergeCells($cellRange); + } + + /** + * Remove merge on a cell range + * + * @param string $pRange Cell range (e.g. A1:E1) + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function unmergeCells($pRange = 'A1:A1') + { + // Uppercase coordinate + $pRange = strtoupper($pRange); + + if (strpos($pRange,':') !== false) { + if (isset($this->_mergeCells[$pRange])) { + unset($this->_mergeCells[$pRange]); + } else { + throw new Exception('Cell range ' . $pRange . ' not known as merged.'); + } + } else { + throw new Exception('Merge can only be removed from a range of cells.'); + } + + return $this; + } + + /** + * Remove merge on a cell range by using numeric cell coordinates + * + * @param int $pColumn1 Numeric column coordinate of the first cell + * @param int $pRow1 Numeric row coordinate of the first cell + * @param int $pColumn2 Numeric column coordinate of the last cell + * @param int $pRow2 Numeric row coordinate of the last cell + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function unmergeCellsByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1) + { + $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; + return $this->unmergeCells($cellRange); + } + + /** + * Get merge cells array. + * + * @return array[] + */ + public function getMergeCells() + { + return $this->_mergeCells; + } + + /** + * Set merge cells array for the entire sheet. Use instead mergeCells() to merge + * a single cell range. + * + * @param array + */ + public function setMergeCells($pValue = array()) + { + $this->_mergeCells = $pValue; + + return $this; + } + + /** + * Set protection on a cell range + * + * @param string $pRange Cell (e.g. A1) or cell range (e.g. A1:E1) + * @param string $pPassword Password to unlock the protection + * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function protectCells($pRange = 'A1', $pPassword = '', $pAlreadyHashed = false) + { + // Uppercase coordinate + $pRange = strtoupper($pRange); + + if (!$pAlreadyHashed) { + $pPassword = PHPExcel_Shared_PasswordHasher::hashPassword($pPassword); + } + $this->_protectedCells[$pRange] = $pPassword; + + return $this; + } + + /** + * Set protection on a cell range by using numeric cell coordinates + * + * @param int $pColumn1 Numeric column coordinate of the first cell + * @param int $pRow1 Numeric row coordinate of the first cell + * @param int $pColumn2 Numeric column coordinate of the last cell + * @param int $pRow2 Numeric row coordinate of the last cell + * @param string $pPassword Password to unlock the protection + * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function protectCellsByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1, $pPassword = '', $pAlreadyHashed = false) + { + $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; + return $this->protectCells($cellRange, $pPassword, $pAlreadyHashed); + } + + /** + * Remove protection on a cell range + * + * @param string $pRange Cell (e.g. A1) or cell range (e.g. A1:E1) + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function unprotectCells($pRange = 'A1') + { + // Uppercase coordinate + $pRange = strtoupper($pRange); + + if (isset($this->_protectedCells[$pRange])) { + unset($this->_protectedCells[$pRange]); + } else { + throw new Exception('Cell range ' . $pRange . ' not known as protected.'); + } + return $this; + } + + /** + * Remove protection on a cell range by using numeric cell coordinates + * + * @param int $pColumn1 Numeric column coordinate of the first cell + * @param int $pRow1 Numeric row coordinate of the first cell + * @param int $pColumn2 Numeric column coordinate of the last cell + * @param int $pRow2 Numeric row coordinate of the last cell + * @param string $pPassword Password to unlock the protection + * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function unprotectCellsByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1, $pPassword = '', $pAlreadyHashed = false) + { + $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; + return $this->unprotectCells($cellRange, $pPassword, $pAlreadyHashed); + } + + /** + * Get protected cells + * + * @return array[] + */ + public function getProtectedCells() + { + return $this->_protectedCells; + } + + /** + * Get Autofilter + * + * @return PHPExcel_Worksheet_AutoFilter + */ + public function getAutoFilter() + { + return $this->_autoFilter; + } + + /** + * Set AutoFilter + * + * @param PHPExcel_Worksheet_AutoFilter|string $pValue + * A simple string containing a Cell range like 'A1:E10' is permitted for backward compatibility + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setAutoFilter($pValue) + { + if (is_string($pValue)) { + $this->_autoFilter->setRange($pValue); + } elseif(is_object($pValue) && ($pValue instanceof PHPExcel_Worksheet_AutoFilter)) { + $this->_autoFilter = $pValue; + } + return $this; + } + + /** + * Set Autofilter Range by using numeric cell coordinates + * + * @param int $pColumn1 Numeric column coordinate of the first cell + * @param int $pRow1 Numeric row coordinate of the first cell + * @param int $pColumn2 Numeric column coordinate of the second cell + * @param int $pRow2 Numeric row coordinate of the second cell + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setAutoFilterByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1) + { + return $this->setAutoFilter( + PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 + . ':' . + PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2 + ); + } + + /** + * Remove autofilter + * + * @return PHPExcel_Worksheet + */ + public function removeAutoFilter() + { + $this->_autoFilter->setRange(NULL); + return $this; + } + + /** + * Get Freeze Pane + * + * @return string + */ + public function getFreezePane() + { + return $this->_freezePane; + } + + /** + * Freeze Pane + * + * @param string $pCell Cell (i.e. A2) + * Examples: + * A2 will freeze the rows above cell A2 (i.e row 1) + * B1 will freeze the columns to the left of cell B1 (i.e column A) + * B2 will freeze the rows above and to the left of cell A2 + * (i.e row 1 and column A) + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function freezePane($pCell = '') + { + // Uppercase coordinate + $pCell = strtoupper($pCell); + + if (strpos($pCell,':') === false && strpos($pCell,',') === false) { + $this->_freezePane = $pCell; + } else { + throw new Exception('Freeze pane can not be set on a range of cells.'); + } + return $this; + } + + /** + * Freeze Pane by using numeric cell coordinates + * + * @param int $pColumn Numeric column coordinate of the cell + * @param int $pRow Numeric row coordinate of the cell + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function freezePaneByColumnAndRow($pColumn = 0, $pRow = 1) + { + return $this->freezePane(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); + } + + /** + * Unfreeze Pane + * + * @return PHPExcel_Worksheet + */ + public function unfreezePane() + { + return $this->freezePane(''); + } + + /** + * Insert a new row, updating all possible related data + * + * @param int $pBefore Insert before this one + * @param int $pNumRows Number of rows to insert + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function insertNewRowBefore($pBefore = 1, $pNumRows = 1) { + if ($pBefore >= 1) { + $objReferenceHelper = PHPExcel_ReferenceHelper::getInstance(); + $objReferenceHelper->insertNewBefore('A' . $pBefore, 0, $pNumRows, $this); + } else { + throw new Exception("Rows can only be inserted before at least row 1."); + } + return $this; + } + + /** + * Insert a new column, updating all possible related data + * + * @param int $pBefore Insert before this one + * @param int $pNumCols Number of columns to insert + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function insertNewColumnBefore($pBefore = 'A', $pNumCols = 1) { + if (!is_numeric($pBefore)) { + $objReferenceHelper = PHPExcel_ReferenceHelper::getInstance(); + $objReferenceHelper->insertNewBefore($pBefore . '1', $pNumCols, 0, $this); + } else { + throw new Exception("Column references should not be numeric."); + } + return $this; + } + + /** + * Insert a new column, updating all possible related data + * + * @param int $pBefore Insert before this one (numeric column coordinate of the cell) + * @param int $pNumCols Number of columns to insert + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function insertNewColumnBeforeByIndex($pBefore = 0, $pNumCols = 1) { + if ($pBefore >= 0) { + return $this->insertNewColumnBefore(PHPExcel_Cell::stringFromColumnIndex($pBefore), $pNumCols); + } else { + throw new Exception("Columns can only be inserted before at least column A (0)."); + } + } + + /** + * Delete a row, updating all possible related data + * + * @param int $pRow Remove starting with this one + * @param int $pNumRows Number of rows to remove + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function removeRow($pRow = 1, $pNumRows = 1) { + if ($pRow >= 1) { + $objReferenceHelper = PHPExcel_ReferenceHelper::getInstance(); + $objReferenceHelper->insertNewBefore('A' . ($pRow + $pNumRows), 0, -$pNumRows, $this); + } else { + throw new Exception("Rows to be deleted should at least start from row 1."); + } + return $this; + } + + /** + * Remove a column, updating all possible related data + * + * @param int $pColumn Remove starting with this one + * @param int $pNumCols Number of columns to remove + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function removeColumn($pColumn = 'A', $pNumCols = 1) { + if (!is_numeric($pColumn)) { + $pColumn = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($pColumn) - 1 + $pNumCols); + $objReferenceHelper = PHPExcel_ReferenceHelper::getInstance(); + $objReferenceHelper->insertNewBefore($pColumn . '1', -$pNumCols, 0, $this); + } else { + throw new Exception("Column references should not be numeric."); + } + return $this; + } + + /** + * Remove a column, updating all possible related data + * + * @param int $pColumn Remove starting with this one (numeric column coordinate of the cell) + * @param int $pNumCols Number of columns to remove + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function removeColumnByIndex($pColumn = 0, $pNumCols = 1) { + if ($pColumn >= 0) { + return $this->removeColumn(PHPExcel_Cell::stringFromColumnIndex($pColumn), $pNumCols); + } else { + throw new Exception("Columns to be deleted should at least start from column 0"); + } + } + + /** + * Show gridlines? + * + * @return boolean + */ + public function getShowGridlines() { + return $this->_showGridlines; + } + + /** + * Set show gridlines + * + * @param boolean $pValue Show gridlines (true/false) + * @return PHPExcel_Worksheet + */ + public function setShowGridlines($pValue = false) { + $this->_showGridlines = $pValue; + return $this; + } + + /** + * Print gridlines? + * + * @return boolean + */ + public function getPrintGridlines() { + return $this->_printGridlines; + } + + /** + * Set print gridlines + * + * @param boolean $pValue Print gridlines (true/false) + * @return PHPExcel_Worksheet + */ + public function setPrintGridlines($pValue = false) { + $this->_printGridlines = $pValue; + return $this; + } + + /** + * Show row and column headers? + * + * @return boolean + */ + public function getShowRowColHeaders() { + return $this->_showRowColHeaders; + } + + /** + * Set show row and column headers + * + * @param boolean $pValue Show row and column headers (true/false) + * @return PHPExcel_Worksheet + */ + public function setShowRowColHeaders($pValue = false) { + $this->_showRowColHeaders = $pValue; + return $this; + } + + /** + * Show summary below? (Row/Column outlining) + * + * @return boolean + */ + public function getShowSummaryBelow() { + return $this->_showSummaryBelow; + } + + /** + * Set show summary below + * + * @param boolean $pValue Show summary below (true/false) + * @return PHPExcel_Worksheet + */ + public function setShowSummaryBelow($pValue = true) { + $this->_showSummaryBelow = $pValue; + return $this; + } + + /** + * Show summary right? (Row/Column outlining) + * + * @return boolean + */ + public function getShowSummaryRight() { + return $this->_showSummaryRight; + } + + /** + * Set show summary right + * + * @param boolean $pValue Show summary right (true/false) + * @return PHPExcel_Worksheet + */ + public function setShowSummaryRight($pValue = true) { + $this->_showSummaryRight = $pValue; + return $this; + } + + /** + * Get comments + * + * @return PHPExcel_Comment[] + */ + public function getComments() + { + return $this->_comments; + } + + /** + * Set comments array for the entire sheet. + * + * @param array of PHPExcel_Comment + * @return PHPExcel_Worksheet + */ + public function setComments($pValue = array()) + { + $this->_comments = $pValue; + + return $this; + } + + /** + * Get comment for cell + * + * @param string $pCellCoordinate Cell coordinate to get comment for + * @return PHPExcel_Comment + * @throws Exception + */ + public function getComment($pCellCoordinate = 'A1') + { + // Uppercase coordinate + $pCellCoordinate = strtoupper($pCellCoordinate); + + if (strpos($pCellCoordinate,':') !== false || strpos($pCellCoordinate,',') !== false) { + throw new Exception('Cell coordinate string can not be a range of cells.'); + } else if (strpos($pCellCoordinate,'$') !== false) { + throw new Exception('Cell coordinate string must not be absolute.'); + } else if ($pCellCoordinate == '') { + throw new Exception('Cell coordinate can not be zero-length string.'); + } else { + // Check if we already have a comment for this cell. + // If not, create a new comment. + if (isset($this->_comments[$pCellCoordinate])) { + return $this->_comments[$pCellCoordinate]; + } else { + $newComment = new PHPExcel_Comment(); + $this->_comments[$pCellCoordinate] = $newComment; + return $newComment; + } + } + } + + /** + * Get comment for cell by using numeric cell coordinates + * + * @param int $pColumn Numeric column coordinate of the cell + * @param int $pRow Numeric row coordinate of the cell + * @return PHPExcel_Comment + */ + public function getCommentByColumnAndRow($pColumn = 0, $pRow = 1) + { + return $this->getComment(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); + } + + /** + * Get selected cell + * + * @deprecated + * @return string + */ + public function getSelectedCell() + { + return $this->getSelectedCells(); + } + + /** + * Get active cell + * + * @return string Example: 'A1' + */ + public function getActiveCell() + { + return $this->_activeCell; + } + + /** + * Get selected cells + * + * @return string + */ + public function getSelectedCells() + { + return $this->_selectedCells; + } + + /** + * Selected cell + * + * @param string $pCoordinate Cell (i.e. A1) + * @return PHPExcel_Worksheet + */ + public function setSelectedCell($pCoordinate = 'A1') + { + return $this->setSelectedCells($pCoordinate); + } + + /** + * Select a range of cells. + * + * @param string $pCoordinate Cell range, examples: 'A1', 'B2:G5', 'A:C', '3:6' + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setSelectedCells($pCoordinate = 'A1') + { + // Uppercase coordinate + $pCoordinate = strtoupper($pCoordinate); + + // Convert 'A' to 'A:A' + $pCoordinate = preg_replace('/^([A-Z]+)$/', '${1}:${1}', $pCoordinate); + + // Convert '1' to '1:1' + $pCoordinate = preg_replace('/^([0-9]+)$/', '${1}:${1}', $pCoordinate); + + // Convert 'A:C' to 'A1:C1048576' + $pCoordinate = preg_replace('/^([A-Z]+):([A-Z]+)$/', '${1}1:${2}1048576', $pCoordinate); + + // Convert '1:3' to 'A1:XFD3' + $pCoordinate = preg_replace('/^([0-9]+):([0-9]+)$/', 'A${1}:XFD${2}', $pCoordinate); + + if (strpos($pCoordinate,':') !== false || strpos($pCoordinate,',') !== false) { + list($first, ) = PHPExcel_Cell::splitRange($pCoordinate); + $this->_activeCell = $first[0]; + } else { + $this->_activeCell = $pCoordinate; + } + $this->_selectedCells = $pCoordinate; + return $this; + } + + /** + * Selected cell by using numeric cell coordinates + * + * @param int $pColumn Numeric column coordinate of the cell + * @param int $pRow Numeric row coordinate of the cell + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function setSelectedCellByColumnAndRow($pColumn = 0, $pRow = 1) + { + return $this->setSelectedCells(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); + } + + /** + * Get right-to-left + * + * @return boolean + */ + public function getRightToLeft() { + return $this->_rightToLeft; + } + + /** + * Set right-to-left + * + * @param boolean $value Right-to-left true/false + * @return PHPExcel_Worksheet + */ + public function setRightToLeft($value = false) { + $this->_rightToLeft = $value; + return $this; + } + + /** + * Fill worksheet from values in array + * + * @param array $source Source array + * @param mixed $nullValue Value in source array that stands for blank cell + * @param string $startCell Insert array starting from this cell address as the top left coordinate + * @param boolean $strictNullComparison Apply strict comparison when testing for null values in the array + * @throws Exception + * @return PHPExcel_Worksheet + */ + public function fromArray($source = null, $nullValue = null, $startCell = 'A1', $strictNullComparison = false) { + if (is_array($source)) { + // Convert a 1-D array to 2-D (for ease of looping) + if (!is_array(end($source))) { + $source = array($source); + } + + // start coordinate + list ($startColumn, $startRow) = PHPExcel_Cell::coordinateFromString($startCell); + + // Loop through $source + foreach ($source as $rowData) { + $currentColumn = $startColumn; + foreach($rowData as $cellValue) { + if ($strictNullComparison) { + if ($cellValue !== $nullValue) { + // Set cell value + $this->getCell($currentColumn . $startRow)->setValue($cellValue); + } + } else { + if ($cellValue != $nullValue) { + // Set cell value + $this->getCell($currentColumn . $startRow)->setValue($cellValue); + } + } + ++$currentColumn; + } + ++$startRow; + } + } else { + throw new Exception("Parameter \$source should be an array."); + } + return $this; + } + + /** + * Create array from a range of cells + * + * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") + * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist + * @param boolean $calculateFormulas Should formulas be calculated? + * @param boolean $formatData Should formatting be applied to cell values? + * @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero + * True - Return rows and columns indexed by their actual row and column IDs + * @return array + */ + public function rangeToArray($pRange = 'A1', $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) { + // Returnvalue + $returnValue = array(); + + // Identify the range that we need to extract from the worksheet + list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($pRange); + $minCol = PHPExcel_Cell::stringFromColumnIndex($rangeStart[0] -1); + $minRow = $rangeStart[1]; + $maxCol = PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0] -1); + $maxRow = $rangeEnd[1]; + + $maxCol++; + + // Loop through rows + $r = -1; + for ($row = $minRow; $row <= $maxRow; ++$row) { + $rRef = ($returnCellRef) ? $row : ++$r; + $c = -1; + // Loop through columns in the current row + for ($col = $minCol; $col != $maxCol; ++$col) { + $cRef = ($returnCellRef) ? $col : ++$c; + // Using getCell() will create a new cell if it doesn't already exist. We don't want that to happen + // so we test and retrieve directly against _cellCollection + if ($this->_cellCollection->isDataSet($col.$row)) { + // Cell exists + $cell = $this->_cellCollection->getCacheData($col.$row); + if ($cell->getValue() !== null) { + if ($cell->getValue() instanceof PHPExcel_RichText) { + $returnValue[$rRef][$cRef] = $cell->getValue()->getPlainText(); + } else { + if ($calculateFormulas) { + $returnValue[$rRef][$cRef] = $cell->getCalculatedValue(); + } else { + $returnValue[$rRef][$cRef] = $cell->getValue(); + } + } + + if ($formatData) { + $style = $this->_parent->getCellXfByIndex($cell->getXfIndex()); + $returnValue[$rRef][$cRef] = PHPExcel_Style_NumberFormat::toFormattedString($returnValue[$rRef][$cRef], $style->getNumberFormat()->getFormatCode()); + } + } else { + // Cell holds a NULL + $returnValue[$rRef][$cRef] = $nullValue; + } + } else { + // Cell doesn't exist + $returnValue[$rRef][$cRef] = $nullValue; + } + } + } + + // Return + return $returnValue; + } + + + /** + * Create array from a range of cells + * + * @param string $pNamedRange Name of the Named Range + * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist + * @param boolean $calculateFormulas Should formulas be calculated? + * @param boolean $formatData Should formatting be applied to cell values? + * @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero + * True - Return rows and columns indexed by their actual row and column IDs + * @return array + * @throws Exception + */ + public function namedRangeToArray($pNamedRange = '', $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) { + $namedRange = PHPExcel_NamedRange::resolveRange($pNamedRange, $this); + if ($namedRange !== NULL) { + $pWorkSheet = $namedRange->getWorksheet(); + $pCellRange = $namedRange->getRange(); + + return $pWorkSheet->rangeToArray( $pCellRange, + $nullValue, $calculateFormulas, $formatData, $returnCellRef); + } + + throw new Exception('Named Range '.$pNamedRange.' does not exist.'); + } + + + /** + * Create array from worksheet + * + * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist + * @param boolean $calculateFormulas Should formulas be calculated? + * @param boolean $formatData Should formatting be applied to cell values? + * @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero + * True - Return rows and columns indexed by their actual row and column IDs + * @return array + */ + public function toArray($nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) { + // Garbage collect... + $this->garbageCollect(); + + // Identify the range that we need to extract from the worksheet + $maxCol = $this->getHighestColumn(); + $maxRow = $this->getHighestRow(); + // Return + return $this->rangeToArray( 'A1:'.$maxCol.$maxRow, + $nullValue, $calculateFormulas, $formatData, $returnCellRef); + } + + /** + * Get row iterator + * + * @param integer $startRow The row number at which to start iterating + * @return PHPExcel_Worksheet_RowIterator + */ + public function getRowIterator($startRow = 1) { + return new PHPExcel_Worksheet_RowIterator($this,$startRow); + } + + /** + * Run PHPExcel garabage collector. + * + * @return PHPExcel_Worksheet + */ + public function garbageCollect() { + // Build a reference table from images +// $imageCoordinates = array(); +// $iterator = $this->getDrawingCollection()->getIterator(); +// while ($iterator->valid()) { +// $imageCoordinates[$iterator->current()->getCoordinates()] = true; +// +// $iterator->next(); +// } +// + // Lookup highest column and highest row if cells are cleaned + $colRow = $this->_cellCollection->getHighestRowAndColumn(); + $highestRow = $colRow['row']; + $highestColumn = PHPExcel_Cell::columnIndexFromString($colRow['column']); + + // Loop through column dimensions + foreach ($this->_columnDimensions as $dimension) { + $highestColumn = max($highestColumn,PHPExcel_Cell::columnIndexFromString($dimension->getColumnIndex())); + } + + // Loop through row dimensions + foreach ($this->_rowDimensions as $dimension) { + $highestRow = max($highestRow,$dimension->getRowIndex()); + } + + // Cache values + if ($highestColumn < 0) { + $this->_cachedHighestColumn = 'A'; + } else { + $this->_cachedHighestColumn = PHPExcel_Cell::stringFromColumnIndex(--$highestColumn); + } + $this->_cachedHighestRow = $highestRow; + + // Return + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + if ($this->_dirty) { + $this->_hash = md5( $this->_title . + $this->_autoFilter . + ($this->_protection->isProtectionEnabled() ? 't' : 'f') . + __CLASS__ + ); + $this->_dirty = false; + } + return $this->_hash; + } + + /** + * Extract worksheet title from range. + * + * Example: extractSheetTitle("testSheet!A1") ==> 'A1' + * Example: extractSheetTitle("'testSheet 1'!A1", true) ==> array('testSheet 1', 'A1'); + * + * @param string $pRange Range to extract title from + * @param bool $returnRange Return range? (see example) + * @return mixed + */ + public static function extractSheetTitle($pRange, $returnRange = false) { + // Sheet title included? + if (($sep = strpos($pRange, '!')) === false) { + return ''; + } + + if ($returnRange) { + return array( trim(substr($pRange, 0, $sep),"'"), + substr($pRange, $sep + 1) + ); + } + + return substr($pRange, $sep + 1); + } + + /** + * Get hyperlink + * + * @param string $pCellCoordinate Cell coordinate to get hyperlink for + */ + public function getHyperlink($pCellCoordinate = 'A1') + { + // return hyperlink if we already have one + if (isset($this->_hyperlinkCollection[$pCellCoordinate])) { + return $this->_hyperlinkCollection[$pCellCoordinate]; + } + + // else create hyperlink + $this->_hyperlinkCollection[$pCellCoordinate] = new PHPExcel_Cell_Hyperlink(); + return $this->_hyperlinkCollection[$pCellCoordinate]; + } + + /** + * Set hyperlnk + * + * @param string $pCellCoordinate Cell coordinate to insert hyperlink + * @param PHPExcel_Cell_Hyperlink $pHyperlink + * @return PHPExcel_Worksheet + */ + public function setHyperlink($pCellCoordinate = 'A1', PHPExcel_Cell_Hyperlink $pHyperlink = null) + { + if ($pHyperlink === null) { + unset($this->_hyperlinkCollection[$pCellCoordinate]); + } else { + $this->_hyperlinkCollection[$pCellCoordinate] = $pHyperlink; + } + return $this; + } + + /** + * Hyperlink at a specific coordinate exists? + * + * @param string $pCoordinate + * @return boolean + */ + public function hyperlinkExists($pCoordinate = 'A1') + { + return isset($this->_hyperlinkCollection[$pCoordinate]); + } + + /** + * Get collection of hyperlinks + * + * @return PHPExcel_Cell_Hyperlink[] + */ + public function getHyperlinkCollection() + { + return $this->_hyperlinkCollection; + } + + /** + * Get data validation + * + * @param string $pCellCoordinate Cell coordinate to get data validation for + */ + public function getDataValidation($pCellCoordinate = 'A1') + { + // return data validation if we already have one + if (isset($this->_dataValidationCollection[$pCellCoordinate])) { + return $this->_dataValidationCollection[$pCellCoordinate]; + } + + // else create data validation + $this->_dataValidationCollection[$pCellCoordinate] = new PHPExcel_Cell_DataValidation(); + return $this->_dataValidationCollection[$pCellCoordinate]; + } + + /** + * Set data validation + * + * @param string $pCellCoordinate Cell coordinate to insert data validation + * @param PHPExcel_Cell_DataValidation $pDataValidation + * @return PHPExcel_Worksheet + */ + public function setDataValidation($pCellCoordinate = 'A1', PHPExcel_Cell_DataValidation $pDataValidation = null) + { + if ($pDataValidation === null) { + unset($this->_dataValidationCollection[$pCellCoordinate]); + } else { + $this->_dataValidationCollection[$pCellCoordinate] = $pDataValidation; + } + return $this; + } + + /** + * Data validation at a specific coordinate exists? + * + * @param string $pCoordinate + * @return boolean + */ + public function dataValidationExists($pCoordinate = 'A1') + { + return isset($this->_dataValidationCollection[$pCoordinate]); + } + + /** + * Get collection of data validations + * + * @return PHPExcel_Cell_DataValidation[] + */ + public function getDataValidationCollection() + { + return $this->_dataValidationCollection; + } + + /** + * Accepts a range, returning it as a range that falls within the current highest row and column of the worksheet + * + * @param string $range + * @return string Adjusted range value + */ + public function shrinkRangeToFit($range) { + $maxCol = $this->getHighestColumn(); + $maxRow = $this->getHighestRow(); + $maxCol = PHPExcel_Cell::columnIndexFromString($maxCol); + + $rangeBlocks = explode(' ',$range); + foreach ($rangeBlocks as &$rangeSet) { + $rangeBoundaries = PHPExcel_Cell::getRangeBoundaries($rangeSet); + + if (PHPExcel_Cell::columnIndexFromString($rangeBoundaries[0][0]) > $maxCol) { $rangeBoundaries[0][0] = PHPExcel_Cell::stringFromColumnIndex($maxCol); } + if ($rangeBoundaries[0][1] > $maxRow) { $rangeBoundaries[0][1] = $maxRow; } + if (PHPExcel_Cell::columnIndexFromString($rangeBoundaries[1][0]) > $maxCol) { $rangeBoundaries[1][0] = PHPExcel_Cell::stringFromColumnIndex($maxCol); } + if ($rangeBoundaries[1][1] > $maxRow) { $rangeBoundaries[1][1] = $maxRow; } + $rangeSet = $rangeBoundaries[0][0].$rangeBoundaries[0][1].':'.$rangeBoundaries[1][0].$rangeBoundaries[1][1]; + } + unset($rangeSet); + $stRange = implode(' ',$rangeBlocks); + + return $stRange; + } + + + /** + * Get tab color + * + * @return PHPExcel_Style_Color + */ + public function getTabColor() + { + if ($this->_tabColor === NULL) + $this->_tabColor = new PHPExcel_Style_Color(); + + return $this->_tabColor; + } + + /** + * Reset tab color + * + * @return PHPExcel_Worksheet + */ + public function resetTabColor() + { + $this->_tabColor = null; + unset($this->_tabColor); + + return $this; + } + + /** + * Tab color set? + * + * @return boolean + */ + public function isTabColorSet() + { + return ($this->_tabColor !== NULL); + } + + /** + * Copy worksheet (!= clone!) + * + * @return PHPExcel_Worksheet + */ + public function copy() { + $copied = clone $this; + + return $copied; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + foreach ($this as $key => $val) { + if ($key == '_parent') { + continue; + } + + if (is_object($val) || (is_array($val))) { + if ($key == '_cellCollection') { + $newCollection = clone $this->_cellCollection; + $newCollection->copyCellCollection($this); + $this->_cellCollection = $newCollection; + } elseif ($key == '_drawingCollection') { + $newCollection = clone $this->_drawingCollection; + $this->_drawingCollection = $newCollection; + } elseif (($key == '_autoFilter') && (is_a($this->_autoFilter,'PHPExcel_Worksheet_AutoFilter'))) { + $newAutoFilter = clone $this->_autoFilter; + $this->_autoFilter = $newAutoFilter; + $this->_autoFilter->setParent($this); + } else { + $this->{$key} = unserialize(serialize($val)); + } + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter.php new file mode 100755 index 0000000..e6ea6f2 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter.php @@ -0,0 +1,855 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_AutoFilter + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_AutoFilter +{ + /** + * Autofilter Worksheet + * + * @var PHPExcel_Worksheet + */ + private $_workSheet = NULL; + + + /** + * Autofilter Range + * + * @var string + */ + private $_range = ''; + + + /** + * Autofilter Column Ruleset + * + * @var array of PHPExcel_Worksheet_AutoFilter_Column + */ + private $_columns = array(); + + + /** + * Create a new PHPExcel_Worksheet_AutoFilter + */ + public function __construct($pRange = '', PHPExcel_Worksheet $pSheet = NULL) + { + $this->_range = $pRange; + $this->_workSheet = $pSheet; + } + + /** + * Get AutoFilter Parent Worksheet + * + * @return PHPExcel_Worksheet + */ + public function getParent() { + return $this->_workSheet; + } + + /** + * Set AutoFilter Parent Worksheet + * + * @param PHPExcel_Worksheet + * @return PHPExcel_Worksheet_AutoFilter + */ + public function setParent(PHPExcel_Worksheet $pSheet = NULL) { + $this->_workSheet = $pSheet; + + return $this; + } + + /** + * Get AutoFilter Range + * + * @return string + */ + public function getRange() { + return $this->_range; + } + + /** + * Set AutoFilter Range + * + * @param string $pRange Cell range (i.e. A1:E10) + * @throws PHPExcel_Exception + * @return PHPExcel_Worksheet_AutoFilter + */ + public function setRange($pRange = '') { + // Uppercase coordinate + $cellAddress = explode('!',strtoupper($pRange)); + if (count($cellAddress) > 1) { + list($worksheet,$pRange) = $cellAddress; + } + + if (strpos($pRange,':') !== FALSE) { + $this->_range = $pRange; + } elseif(empty($pRange)) { + $this->_range = ''; + } else { + throw new PHPExcel_Exception('Autofilter must be set on a range of cells.'); + } + + if (empty($pRange)) { + // Discard all column rules + $this->_columns = array(); + } else { + // Discard any column rules that are no longer valid within this range + list($rangeStart,$rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->_range); + foreach($this->_columns as $key => $value) { + $colIndex = PHPExcel_Cell::columnIndexFromString($key); + if (($rangeStart[0] > $colIndex) || ($rangeEnd[0] < $colIndex)) { + unset($this->_columns[$key]); + } + } + } + + return $this; + } + + /** + * Get all AutoFilter Columns + * + * @throws PHPExcel_Exception + * @return array of PHPExcel_Worksheet_AutoFilter_Column + */ + public function getColumns() { + return $this->_columns; + } + + /** + * Validate that the specified column is in the AutoFilter range + * + * @param string $column Column name (e.g. A) + * @throws PHPExcel_Exception + * @return integer The column offset within the autofilter range + */ + public function testColumnInRange($column) { + if (empty($this->_range)) { + throw new PHPExcel_Exception("No autofilter range is defined."); + } + + $columnIndex = PHPExcel_Cell::columnIndexFromString($column); + list($rangeStart,$rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->_range); + if (($rangeStart[0] > $columnIndex) || ($rangeEnd[0] < $columnIndex)) { + throw new PHPExcel_Exception("Column is outside of current autofilter range."); + } + + return $columnIndex - $rangeStart[0]; + } + + /** + * Get a specified AutoFilter Column Offset within the defined AutoFilter range + * + * @param string $pColumn Column name (e.g. A) + * @throws PHPExcel_Exception + * @return integer The offset of the specified column within the autofilter range + */ + public function getColumnOffset($pColumn) { + return $this->testColumnInRange($pColumn); + } + + /** + * Get a specified AutoFilter Column + * + * @param string $pColumn Column name (e.g. A) + * @throws PHPExcel_Exception + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function getColumn($pColumn) { + $this->testColumnInRange($pColumn); + + if (!isset($this->_columns[$pColumn])) { + $this->_columns[$pColumn] = new PHPExcel_Worksheet_AutoFilter_Column($pColumn, $this); + } + + return $this->_columns[$pColumn]; + } + + /** + * Get a specified AutoFilter Column by it's offset + * + * @param integer $pColumnOffset Column offset within range (starting from 0) + * @throws PHPExcel_Exception + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function getColumnByOffset($pColumnOffset = 0) { + list($rangeStart,$rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->_range); + $pColumn = PHPExcel_Cell::stringFromColumnIndex($rangeStart[0] + $pColumnOffset - 1); + + return $this->getColumn($pColumn); + } + + /** + * Set AutoFilter + * + * @param PHPExcel_Worksheet_AutoFilter_Column|string $pColumn + * A simple string containing a Column ID like 'A' is permitted + * @throws PHPExcel_Exception + * @return PHPExcel_Worksheet_AutoFilter + */ + public function setColumn($pColumn) + { + if ((is_string($pColumn)) && (!empty($pColumn))) { + $column = $pColumn; + } elseif(is_object($pColumn) && ($pColumn instanceof PHPExcel_Worksheet_AutoFilter_Column)) { + $column = $pColumn->getColumnIndex(); + } else { + throw new PHPExcel_Exception("Column is not within the autofilter range."); + } + $this->testColumnInRange($column); + + if (is_string($pColumn)) { + $this->_columns[$pColumn] = new PHPExcel_Worksheet_AutoFilter_Column($pColumn, $this); + } elseif(is_object($pColumn) && ($pColumn instanceof PHPExcel_Worksheet_AutoFilter_Column)) { + $pColumn->setParent($this); + $this->_columns[$column] = $pColumn; + } + ksort($this->_columns); + + return $this; + } + + /** + * Clear a specified AutoFilter Column + * + * @param string $pColumn Column name (e.g. A) + * @throws PHPExcel_Exception + * @return PHPExcel_Worksheet_AutoFilter + */ + public function clearColumn($pColumn) { + $this->testColumnInRange($pColumn); + + if (isset($this->_columns[$pColumn])) { + unset($this->_columns[$pColumn]); + } + + return $this; + } + + /** + * Shift an AutoFilter Column Rule to a different column + * + * Note: This method bypasses validation of the destination column to ensure it is within this AutoFilter range. + * Nor does it verify whether any column rule already exists at $toColumn, but will simply overrideany existing value. + * Use with caution. + * + * @param string $fromColumn Column name (e.g. A) + * @param string $toColumn Column name (e.g. B) + * @return PHPExcel_Worksheet_AutoFilter + */ + public function shiftColumn($fromColumn=NULL,$toColumn=NULL) { + $fromColumn = strtoupper($fromColumn); + $toColumn = strtoupper($toColumn); + + if (($fromColumn !== NULL) && (isset($this->_columns[$fromColumn])) && ($toColumn !== NULL)) { + $this->_columns[$fromColumn]->setParent(); + $this->_columns[$fromColumn]->setColumnIndex($toColumn); + $this->_columns[$toColumn] = $this->_columns[$fromColumn]; + $this->_columns[$toColumn]->setParent($this); + unset($this->_columns[$fromColumn]); + + ksort($this->_columns); + } + + return $this; + } + + + /** + * Test if cell value is in the defined set of values + * + * @param mixed $cellValue + * @param mixed[] $dataSet + * @return boolean + */ + private static function _filterTestInSimpleDataSet($cellValue,$dataSet) + { + $dataSetValues = $dataSet['filterValues']; + $blanks = $dataSet['blanks']; + if (($cellValue == '') || ($cellValue === NULL)) { + return $blanks; + } + return in_array($cellValue,$dataSetValues); + } + + /** + * Test if cell value is in the defined set of Excel date values + * + * @param mixed $cellValue + * @param mixed[] $dataSet + * @return boolean + */ + private static function _filterTestInDateGroupSet($cellValue,$dataSet) + { + $dateSet = $dataSet['filterValues']; + $blanks = $dataSet['blanks']; + if (($cellValue == '') || ($cellValue === NULL)) { + return $blanks; + } + + if (is_numeric($cellValue)) { + $dateValue = PHPExcel_Shared_Date::ExcelToPHP($cellValue); + if ($cellValue < 1) { + // Just the time part + $dtVal = date('His',$dateValue); + $dateSet = $dateSet['time']; + } elseif($cellValue == floor($cellValue)) { + // Just the date part + $dtVal = date('Ymd',$dateValue); + $dateSet = $dateSet['date']; + } else { + // date and time parts + $dtVal = date('YmdHis',$dateValue); + $dateSet = $dateSet['dateTime']; + } + foreach($dateSet as $dateValue) { + // Use of substr to extract value at the appropriate group level + if (substr($dtVal,0,strlen($dateValue)) == $dateValue) + return TRUE; + } + } + + return FALSE; + } + + /** + * Test if cell value is within a set of values defined by a ruleset + * + * @param mixed $cellValue + * @param mixed[] $dataSet + * @return boolean + */ + private static function _filterTestInCustomDataSet($cellValue,$ruleSet) + { + $dataSet = $ruleSet['filterRules']; + $join = $ruleSet['join']; + $customRuleForBlanks = isset($ruleSet['customRuleForBlanks']) ? $ruleSet['customRuleForBlanks'] : FALSE; + + if (!$customRuleForBlanks) { + // Blank cells are always ignored, so return a FALSE + if (($cellValue == '') || ($cellValue === NULL)) { + return FALSE; + } + } + $returnVal = ($join == PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND); + foreach($dataSet as $rule) { + if (is_numeric($rule['value'])) { + // Numeric values are tested using the appropriate operator + switch ($rule['operator']) { + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL : + $retVal = ($cellValue == $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_NOTEQUAL : + $retVal = ($cellValue != $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN : + $retVal = ($cellValue > $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL : + $retVal = ($cellValue >= $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN : + $retVal = ($cellValue < $rule['value']); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL : + $retVal = ($cellValue <= $rule['value']); + break; + } + } elseif($rule['value'] == '') { + switch ($rule['operator']) { + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL : + $retVal = (($cellValue == '') || ($cellValue === NULL)); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_NOTEQUAL : + $retVal = (($cellValue != '') && ($cellValue !== NULL)); + break; + default : + $retVal = TRUE; + break; + } + } else { + // String values are always tested for equality, factoring in for wildcards (hence a regexp test) + $retVal = preg_match('/^'.$rule['value'].'$/i',$cellValue); + } + // If there are multiple conditions, then we need to test both using the appropriate join operator + switch ($join) { + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_OR : + $returnVal = $returnVal || $retVal; + // Break as soon as we have a TRUE match for OR joins, + // to avoid unnecessary additional code execution + if ($returnVal) + return $returnVal; + break; + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND : + $returnVal = $returnVal && $retVal; + break; + } + } + + return $returnVal; + } + + /** + * Test if cell date value is matches a set of values defined by a set of months + * + * @param mixed $cellValue + * @param mixed[] $dataSet + * @return boolean + */ + private static function _filterTestInPeriodDateSet($cellValue,$monthSet) + { + // Blank cells are always ignored, so return a FALSE + if (($cellValue == '') || ($cellValue === NULL)) { + return FALSE; + } + + if (is_numeric($cellValue)) { + $dateValue = date('m',PHPExcel_Shared_Date::ExcelToPHP($cellValue)); + if (in_array($dateValue,$monthSet)) { + return TRUE; + } + } + + return FALSE; + } + + /** + * Search/Replace arrays to convert Excel wildcard syntax to a regexp syntax for preg_matching + * + * @var array + */ + private static $_fromReplace = array('\*', '\?', '~~', '~.*', '~.?'); + private static $_toReplace = array('.*', '.', '~', '\*', '\?'); + + + /** + * Convert a dynamic rule daterange to a custom filter range expression for ease of calculation + * + * @param string $dynamicRuleType + * @param PHPExcel_Worksheet_AutoFilter_Column $filterColumn + * @return mixed[] + */ + private function _dynamicFilterDateRange($dynamicRuleType, &$filterColumn) + { + $rDateType = PHPExcel_Calculation_Functions::getReturnDateType(); + PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC); + $val = $maxVal = NULL; + + $ruleValues = array(); + $baseDate = PHPExcel_Calculation_DateTime::DATENOW(); + // Calculate start/end dates for the required date range based on current date + switch ($dynamicRuleType) { + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK : + $baseDate = strtotime('-7 days',$baseDate); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK : + $baseDate = strtotime('-7 days',$baseDate); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH : + $baseDate = strtotime('-1 month',gmmktime(0,0,0,1,date('m',$baseDate),date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH : + $baseDate = strtotime('+1 month',gmmktime(0,0,0,1,date('m',$baseDate),date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER : + $baseDate = strtotime('-3 month',gmmktime(0,0,0,1,date('m',$baseDate),date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER : + $baseDate = strtotime('+3 month',gmmktime(0,0,0,1,date('m',$baseDate),date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR : + $baseDate = strtotime('-1 year',gmmktime(0,0,0,1,date('m',$baseDate),date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR : + $baseDate = strtotime('+1 year',gmmktime(0,0,0,1,date('m',$baseDate),date('Y',$baseDate))); + break; + } + + switch ($dynamicRuleType) { + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_TODAY : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW : + $maxVal = (int) PHPExcel_Shared_Date::PHPtoExcel(strtotime('+1 day',$baseDate)); + $val = (int) PHPExcel_Shared_Date::PHPToExcel($baseDate); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE : + $maxVal = (int) PHPExcel_Shared_Date::PHPtoExcel(strtotime('+1 day',$baseDate)); + $val = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0,0,0,1,1,date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR : + $maxVal = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0,0,0,31,12,date('Y',$baseDate))); + ++$maxVal; + $val = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0,0,0,1,1,date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER : + $thisMonth = date('m',$baseDate); + $thisQuarter = floor(--$thisMonth / 3); + $maxVal = (int) PHPExcel_Shared_Date::PHPtoExcel(gmmktime(0,0,0,date('t',$baseDate),(1+$thisQuarter)*3,date('Y',$baseDate))); + ++$maxVal; + $val = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0,0,0,1,1+$thisQuarter*3,date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH : + $maxVal = (int) PHPExcel_Shared_Date::PHPtoExcel(gmmktime(0,0,0,date('t',$baseDate),date('m',$baseDate),date('Y',$baseDate))); + ++$maxVal; + $val = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0,0,0,1,date('m',$baseDate),date('Y',$baseDate))); + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK : + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK : + $dayOfWeek = date('w',$baseDate); + $val = (int) PHPExcel_Shared_Date::PHPToExcel($baseDate) - $dayOfWeek; + $maxVal = $val + 7; + break; + } + + switch ($dynamicRuleType) { + // Adjust Today dates for Yesterday and Tomorrow + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY : + --$maxVal; + --$val; + break; + case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW : + ++$maxVal; + ++$val; + break; + } + + // Set the filter column rule attributes ready for writing + $filterColumn->setAttributes(array( 'val' => $val, + 'maxVal' => $maxVal + ) + ); + + // Set the rules for identifying rows for hide/show + $ruleValues[] = array( 'operator' => PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, + 'value' => $val + ); + $ruleValues[] = array( 'operator' => PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN, + 'value' => $maxVal + ); + PHPExcel_Calculation_Functions::setReturnDateType($rDateType); + + return array( + 'method' => '_filterTestInCustomDataSet', + 'arguments' => array( 'filterRules' => $ruleValues, + 'join' => PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND + ) + ); + } + + private function _calculateTopTenValue($columnID,$startRow,$endRow,$ruleType,$ruleValue) { + $range = $columnID.$startRow.':'.$columnID.$endRow; + $dataValues = PHPExcel_Calculation_Functions::flattenArray( + $this->_workSheet->rangeToArray($range,NULL,TRUE,FALSE) + ); + + $dataValues = array_filter($dataValues); + if ($ruleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) { + rsort($dataValues); + } else { + sort($dataValues); + } + + return array_pop(array_slice($dataValues,0,$ruleValue)); + } + + /** + * Apply the AutoFilter rules to the AutoFilter Range + * + * @throws PHPExcel_Exception + * @return PHPExcel_Worksheet_AutoFilter + */ + public function showHideRows() + { + list($rangeStart,$rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->_range); + + // The heading row should always be visible +// echo 'AutoFilter Heading Row ',$rangeStart[1],' is always SHOWN',PHP_EOL; + $this->_workSheet->getRowDimension($rangeStart[1])->setVisible(TRUE); + + $columnFilterTests = array(); + foreach($this->_columns as $columnID => $filterColumn) { + $rules = $filterColumn->getRules(); + switch ($filterColumn->getFilterType()) { + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER : + $ruleValues = array(); + // Build a list of the filter value selections + foreach($rules as $rule) { + $ruleType = $rule->getRuleType(); + $ruleValues[] = $rule->getValue(); + } + // Test if we want to include blanks in our filter criteria + $blanks = FALSE; + $ruleDataSet = array_filter($ruleValues); + if (count($ruleValues) != count($ruleDataSet)) + $blanks = TRUE; + if ($ruleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_FILTER) { + // Filter on absolute values + $columnFilterTests[$columnID] = array( + 'method' => '_filterTestInSimpleDataSet', + 'arguments' => array( 'filterValues' => $ruleDataSet, + 'blanks' => $blanks + ) + ); + } else { + // Filter on date group values + $arguments = array(); + foreach($ruleDataSet as $ruleValue) { + $date = $time = ''; + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR] !== '')) + $date .= sprintf('%04d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH] != '')) + $date .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY] !== '')) + $date .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR] !== '')) + $time .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE] !== '')) + $time .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE]); + if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND])) && + ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND] !== '')) + $time .= sprintf('%02d',$ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND]); + $dateTime = $date . $time; + $arguments['date'][] = $date; + $arguments['time'][] = $time; + $arguments['dateTime'][] = $dateTime; + } + // Remove empty elements + $arguments['date'] = array_filter($arguments['date']); + $arguments['time'] = array_filter($arguments['time']); + $arguments['dateTime'] = array_filter($arguments['dateTime']); + $columnFilterTests[$columnID] = array( + 'method' => '_filterTestInDateGroupSet', + 'arguments' => array( 'filterValues' => $arguments, + 'blanks' => $blanks + ) + ); + } + break; + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER : + $customRuleForBlanks = FALSE; + $ruleValues = array(); + // Build a list of the filter value selections + foreach($rules as $rule) { + $ruleType = $rule->getRuleType(); + $ruleValue = $rule->getValue(); + if (!is_numeric($ruleValue)) { + // Convert to a regexp allowing for regexp reserved characters, wildcards and escaped wildcards + $ruleValue = preg_quote($ruleValue); + $ruleValue = str_replace(self::$_fromReplace,self::$_toReplace,$ruleValue); + if (trim($ruleValue) == '') { + $customRuleForBlanks = TRUE; + $ruleValue = trim($ruleValue); + } + } + $ruleValues[] = array( 'operator' => $rule->getOperator(), + 'value' => $ruleValue + ); + } + $join = $filterColumn->getJoin(); + $columnFilterTests[$columnID] = array( + 'method' => '_filterTestInCustomDataSet', + 'arguments' => array( 'filterRules' => $ruleValues, + 'join' => $join, + 'customRuleForBlanks' => $customRuleForBlanks + ) + ); + break; + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER : + $ruleValues = array(); + foreach($rules as $rule) { + // We should only ever have one Dynamic Filter Rule anyway + $dynamicRuleType = $rule->getGrouping(); + if (($dynamicRuleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE) || + ($dynamicRuleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE)) { + // Number (Average) based + // Calculate the average + $averageFormula = '=AVERAGE('.$columnID.($rangeStart[1]+1).':'.$columnID.$rangeEnd[1].')'; + $average = PHPExcel_Calculation::getInstance()->calculateFormula($averageFormula,NULL,$this->_workSheet->getCell('A1')); + // Set above/below rule based on greaterThan or LessTan + $operator = ($dynamicRuleType === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE) + ? PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN + : PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN; + $ruleValues[] = array( 'operator' => $operator, + 'value' => $average + ); + $columnFilterTests[$columnID] = array( + 'method' => '_filterTestInCustomDataSet', + 'arguments' => array( 'filterRules' => $ruleValues, + 'join' => PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_OR + ) + ); + } else { + // Date based + if ($dynamicRuleType{0} == 'M' || $dynamicRuleType{0} == 'Q') { + // Month or Quarter + list($periodType,$period) = sscanf($dynamicRuleType,'%[A-Z]%d'); + if ($periodType == 'M') { + $ruleValues = array($period); + } else { + --$period; + $periodEnd = (1+$period)*3; + $periodStart = 1+$period*3; + $ruleValues = range($periodStart,periodEnd); + } + $columnFilterTests[$columnID] = array( + 'method' => '_filterTestInPeriodDateSet', + 'arguments' => $ruleValues + ); + $filterColumn->setAttributes(array()); + } else { + // Date Range + $columnFilterTests[$columnID] = $this->_dynamicFilterDateRange($dynamicRuleType, $filterColumn); + break; + } + } + } + break; + case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER : + $ruleValues = array(); + $dataRowCount = $rangeEnd[1] - $rangeStart[1]; + foreach($rules as $rule) { + // We should only ever have one Dynamic Filter Rule anyway + $toptenRuleType = $rule->getGrouping(); + $ruleValue = $rule->getValue(); + $ruleOperator = $rule->getOperator(); + } + if ($ruleOperator === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) { + $ruleValue = floor($ruleValue * ($dataRowCount / 100)); + } + if ($ruleValue < 1) $ruleValue = 1; + if ($ruleValue > 500) $ruleValue = 500; + + $maxVal = $this->_calculateTopTenValue($columnID,$rangeStart[1]+1,$rangeEnd[1],$toptenRuleType,$ruleValue); + + $operator = ($toptenRuleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) + ? PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL + : PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL; + $ruleValues[] = array( 'operator' => $operator, + 'value' => $maxVal + ); + $columnFilterTests[$columnID] = array( + 'method' => '_filterTestInCustomDataSet', + 'arguments' => array( 'filterRules' => $ruleValues, + 'join' => PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_OR + ) + ); + $filterColumn->setAttributes( + array('maxVal' => $maxVal) + ); + break; + } + } + +// echo 'Column Filter Test CRITERIA',PHP_EOL; +// var_dump($columnFilterTests); +// + // Execute the column tests for each row in the autoFilter range to determine show/hide, + for ($row = $rangeStart[1]+1; $row <= $rangeEnd[1]; ++$row) { +// echo 'Testing Row = ',$row,PHP_EOL; + $result = TRUE; + foreach($columnFilterTests as $columnID => $columnFilterTest) { +// echo 'Testing cell ',$columnID.$row,PHP_EOL; + $cellValue = $this->_workSheet->getCell($columnID.$row)->getCalculatedValue(); +// echo 'Value is ',$cellValue,PHP_EOL; + // Execute the filter test + $result = $result && + call_user_func_array( + array('PHPExcel_Worksheet_AutoFilter',$columnFilterTest['method']), + array( + $cellValue, + $columnFilterTest['arguments'] + ) + ); +// echo (($result) ? 'VALID' : 'INVALID'),PHP_EOL; + // If filter test has resulted in FALSE, exit the loop straightaway rather than running any more tests + if (!$result) + break; + } + // Set show/hide for the row based on the result of the autoFilter result +// echo (($result) ? 'SHOW' : 'HIDE'),PHP_EOL; + $this->_workSheet->getRowDimension($row)->setVisible($result); + } + + return $this; + } + + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + if ($key == '_workSheet') { + // Detach from worksheet + $this->$key = NULL; + } else { + $this->$key = clone $value; + } + } elseif ((is_array($value)) && ($key == '_columns')) { + // The columns array of PHPExcel_Worksheet_AutoFilter objects + $this->$key = array(); + foreach ($value as $k => $v) { + $this->$key[$k] = clone $v; + // attach the new cloned Column to this new cloned Autofilter object + $this->$key[$k]->setParent($this); + } + } else { + $this->$key = $value; + } + } + } + + /** + * toString method replicates previous behavior by returning the range if object is + * referenced as a property of its parent. + */ + public function __toString() { + return (string) $this->_range; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter/Column.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter/Column.php new file mode 100755 index 0000000..bb70ec6 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter/Column.php @@ -0,0 +1,381 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_AutoFilter_Column + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_AutoFilter_Column +{ + const AUTOFILTER_FILTERTYPE_FILTER = 'filters'; + const AUTOFILTER_FILTERTYPE_CUSTOMFILTER = 'customFilters'; + // Supports no more than 2 rules, with an And/Or join criteria + // if more than 1 rule is defined + const AUTOFILTER_FILTERTYPE_DYNAMICFILTER = 'dynamicFilter'; + // Even though the filter rule is constant, the filtered data can vary + // e.g. filtered by date = TODAY + const AUTOFILTER_FILTERTYPE_TOPTENFILTER = 'top10'; + + private static $_filterTypes = array( + // Currently we're not handling + // colorFilter + // extLst + // iconFilter + self::AUTOFILTER_FILTERTYPE_FILTER, + self::AUTOFILTER_FILTERTYPE_CUSTOMFILTER, + self::AUTOFILTER_FILTERTYPE_DYNAMICFILTER, + self::AUTOFILTER_FILTERTYPE_TOPTENFILTER, + ); + + /* Multiple Rule Connections */ + const AUTOFILTER_COLUMN_JOIN_AND = 'and'; + const AUTOFILTER_COLUMN_JOIN_OR = 'or'; + + private static $_ruleJoins = array( + self::AUTOFILTER_COLUMN_JOIN_AND, + self::AUTOFILTER_COLUMN_JOIN_OR, + ); + + /** + * Autofilter + * + * @var PHPExcel_Worksheet_AutoFilter + */ + private $_parent = NULL; + + + /** + * Autofilter Column Index + * + * @var string + */ + private $_columnIndex = ''; + + + /** + * Autofilter Column Filter Type + * + * @var string + */ + private $_filterType = self::AUTOFILTER_FILTERTYPE_FILTER; + + + /** + * Autofilter Multiple Rules And/Or + * + * @var string + */ + private $_join = self::AUTOFILTER_COLUMN_JOIN_OR; + + + /** + * Autofilter Column Rules + * + * @var array of PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + private $_ruleset = array(); + + + /** + * Autofilter Column Dynamic Attributes + * + * @var array of mixed + */ + private $_attributes = array(); + + + /** + * Create a new PHPExcel_Worksheet_AutoFilter_Column + */ + public function __construct($pColumn, PHPExcel_Worksheet_AutoFilter $pParent = NULL) + { + $this->_columnIndex = $pColumn; + $this->_parent = $pParent; + } + + /** + * Get AutoFilter Column Index + * + * @return string + */ + public function getColumnIndex() { + return $this->_columnIndex; + } + + /** + * Set AutoFilter Column Index + * + * @param string $pColumn Column (e.g. A) + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function setColumnIndex($pColumn) { + // Uppercase coordinate + $pColumn = strtoupper($pColumn); + if ($this->_parent !== NULL) { + $this->_parent->testColumnInRange($pColumn); + } + + $this->_columnIndex = $pColumn; + + return $this; + } + + /** + * Get this Column's AutoFilter Parent + * + * @return PHPExcel_Worksheet_AutoFilter + */ + public function getParent() { + return $this->_parent; + } + + /** + * Set this Column's AutoFilter Parent + * + * @param PHPExcel_Worksheet_AutoFilter + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function setParent(PHPExcel_Worksheet_AutoFilter $pParent = NULL) { + $this->_parent = $pParent; + + return $this; + } + + /** + * Get AutoFilter Type + * + * @return string + */ + public function getFilterType() { + return $this->_filterType; + } + + /** + * Set AutoFilter Type + * + * @param string $pFilterType + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function setFilterType($pFilterType = self::AUTOFILTER_FILTERTYPE_FILTER) { + if (!in_array($pFilterType,self::$_filterTypes)) { + throw new PHPExcel_Exception('Invalid filter type for column AutoFilter.'); + } + + $this->_filterType = $pFilterType; + + return $this; + } + + /** + * Get AutoFilter Multiple Rules And/Or Join + * + * @return string + */ + public function getJoin() { + return $this->_join; + } + + /** + * Set AutoFilter Multiple Rules And/Or + * + * @param string $pJoin And/Or + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function setJoin($pJoin = self::AUTOFILTER_COLUMN_JOIN_OR) { + // Lowercase And/Or + $pJoin = strtolower($pJoin); + if (!in_array($pJoin,self::$_ruleJoins)) { + throw new PHPExcel_Exception('Invalid rule connection for column AutoFilter.'); + } + + $this->_join = $pJoin; + + return $this; + } + + /** + * Set AutoFilter Attributes + * + * @param string[] $pAttributes + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function setAttributes($pAttributes = array()) { + $this->_attributes = $pAttributes; + + return $this; + } + + /** + * Set An AutoFilter Attribute + * + * @param string $pName Attribute Name + * @param string $pValue Attribute Value + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function setAttribute($pName, $pValue) { + $this->_attributes[$pName] = $pValue; + + return $this; + } + + /** + * Get AutoFilter Column Attributes + * + * @return string + */ + public function getAttributes() { + return $this->_attributes; + } + + /** + * Get specific AutoFilter Column Attribute + * + * @param string $pName Attribute Name + * @return string + */ + public function getAttribute($pName) { + if (isset($this->_attributes[$pName])) + return $this->_attributes[$pName]; + return NULL; + } + + /** + * Get all AutoFilter Column Rules + * + * @throws PHPExcel_Exception + * @return array of PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function getRules() { + return $this->_ruleset; + } + + /** + * Get a specified AutoFilter Column Rule + * + * @param integer $pIndex Rule index in the ruleset array + * @return PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function getRule($pIndex) { + if (!isset($this->_ruleset[$pIndex])) { + $this->_ruleset[$pIndex] = new PHPExcel_Worksheet_AutoFilter_Column_Rule($this); + } + return $this->_ruleset[$pIndex]; + } + + /** + * Create a new AutoFilter Column Rule in the ruleset + * + * @return PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function createRule() { + $this->_ruleset[] = new PHPExcel_Worksheet_AutoFilter_Column_Rule($this); + + return end($this->_ruleset); + } + + /** + * Add a new AutoFilter Column Rule to the ruleset + * + * @param PHPExcel_Worksheet_AutoFilter_Column_Rule $pRule + * @param boolean $returnRule Flag indicating whether the rule object or the column object should be returned + * @return PHPExcel_Worksheet_AutoFilter_Column|PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function addRule(PHPExcel_Worksheet_AutoFilter_Column_Rule $pRule, $returnRule=TRUE) { + $pRule->setParent($this); + $this->_ruleset[] = $pRule; + + return ($returnRule) ? $pRule : $this; + } + + /** + * Delete a specified AutoFilter Column Rule + * If the number of rules is reduced to 1, then we reset And/Or logic to Or + * + * @param integer $pIndex Rule index in the ruleset array + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function deleteRule($pIndex) { + if (isset($this->_ruleset[$pIndex])) { + unset($this->_ruleset[$pIndex]); + // If we've just deleted down to a single rule, then reset And/Or joining to Or + if (count($this->_ruleset) <= 1) { + $this->setJoin(self::AUTOFILTER_COLUMN_JOIN_OR); + } + } + + return $this; + } + + /** + * Delete all AutoFilter Column Rules + * + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function clearRules() { + $this->_ruleset = array(); + $this->setJoin(self::AUTOFILTER_COLUMN_JOIN_OR); + + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + if ($key == '_parent') { + // Detach from autofilter parent + $this->$key = NULL; + } else { + $this->$key = clone $value; + } + } elseif ((is_array($value)) && ($key == '_ruleset')) { + // The columns array of PHPExcel_Worksheet_AutoFilter objects + $this->$key = array(); + foreach ($value as $k => $v) { + $this->$key[$k] = clone $v; + // attach the new cloned Rule to this new cloned Autofilter Cloned object + $this->$key[$k]->setParent($this); + } + } else { + $this->$key = $value; + } + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php new file mode 100755 index 0000000..209012c --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php @@ -0,0 +1,462 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_AutoFilter_Column_Rule + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_AutoFilter_Column_Rule +{ + const AUTOFILTER_RULETYPE_FILTER = 'filter'; + const AUTOFILTER_RULETYPE_DATEGROUP = 'dateGroupItem'; + const AUTOFILTER_RULETYPE_CUSTOMFILTER = 'customFilter'; + const AUTOFILTER_RULETYPE_DYNAMICFILTER = 'dynamicFilter'; + const AUTOFILTER_RULETYPE_TOPTENFILTER = 'top10Filter'; + + private static $_ruleTypes = array( + // Currently we're not handling + // colorFilter + // extLst + // iconFilter + self::AUTOFILTER_RULETYPE_FILTER, + self::AUTOFILTER_RULETYPE_DATEGROUP, + self::AUTOFILTER_RULETYPE_CUSTOMFILTER, + self::AUTOFILTER_RULETYPE_DYNAMICFILTER, + self::AUTOFILTER_RULETYPE_TOPTENFILTER, + ); + + const AUTOFILTER_RULETYPE_DATEGROUP_YEAR = 'year'; + const AUTOFILTER_RULETYPE_DATEGROUP_MONTH = 'month'; + const AUTOFILTER_RULETYPE_DATEGROUP_DAY = 'day'; + const AUTOFILTER_RULETYPE_DATEGROUP_HOUR = 'hour'; + const AUTOFILTER_RULETYPE_DATEGROUP_MINUTE = 'minute'; + const AUTOFILTER_RULETYPE_DATEGROUP_SECOND = 'second'; + + private static $_dateTimeGroups = array( + self::AUTOFILTER_RULETYPE_DATEGROUP_YEAR, + self::AUTOFILTER_RULETYPE_DATEGROUP_MONTH, + self::AUTOFILTER_RULETYPE_DATEGROUP_DAY, + self::AUTOFILTER_RULETYPE_DATEGROUP_HOUR, + self::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE, + self::AUTOFILTER_RULETYPE_DATEGROUP_SECOND, + ); + + const AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY = 'yesterday'; + const AUTOFILTER_RULETYPE_DYNAMIC_TODAY = 'today'; + const AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW = 'tomorrow'; + const AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE = 'yearToDate'; + const AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR = 'thisYear'; + const AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER = 'thisQuarter'; + const AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH = 'thisMonth'; + const AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK = 'thisWeek'; + const AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR = 'lastYear'; + const AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER = 'lastQuarter'; + const AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH = 'lastMonth'; + const AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK = 'lastWeek'; + const AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR = 'nextYear'; + const AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER = 'nextQuarter'; + const AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH = 'nextMonth'; + const AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK = 'nextWeek'; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1 = 'M1'; + const AUTOFILTER_RULETYPE_DYNAMIC_JANUARY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2 = 'M2'; + const AUTOFILTER_RULETYPE_DYNAMIC_FEBRUARY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3 = 'M3'; + const AUTOFILTER_RULETYPE_DYNAMIC_MARCH = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4 = 'M4'; + const AUTOFILTER_RULETYPE_DYNAMIC_APRIL = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5 = 'M5'; + const AUTOFILTER_RULETYPE_DYNAMIC_MAY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6 = 'M6'; + const AUTOFILTER_RULETYPE_DYNAMIC_JUNE = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7 = 'M7'; + const AUTOFILTER_RULETYPE_DYNAMIC_JULY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8 = 'M8'; + const AUTOFILTER_RULETYPE_DYNAMIC_AUGUST = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9 = 'M9'; + const AUTOFILTER_RULETYPE_DYNAMIC_SEPTEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10 = 'M10'; + const AUTOFILTER_RULETYPE_DYNAMIC_OCTOBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11 = 'M11'; + const AUTOFILTER_RULETYPE_DYNAMIC_NOVEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11; + const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12 = 'M12'; + const AUTOFILTER_RULETYPE_DYNAMIC_DECEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12; + const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_1 = 'Q1'; + const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_2 = 'Q2'; + const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_3 = 'Q3'; + const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_4 = 'Q4'; + const AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE = 'aboveAverage'; + const AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE = 'belowAverage'; + + private static $_dynamicTypes = array( + self::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY, + self::AUTOFILTER_RULETYPE_DYNAMIC_TODAY, + self::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW, + self::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE, + self::AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR, + self::AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER, + self::AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH, + self::AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK, + self::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR, + self::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER, + self::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH, + self::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK, + self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR, + self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER, + self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH, + self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11, + self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12, + self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_1, + self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_2, + self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_3, + self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_4, + self::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE, + self::AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE, + ); + + /* + * The only valid filter rule operators for filter and customFilter types are: + * <xsd:enumeration value="equal"/> + * <xsd:enumeration value="lessThan"/> + * <xsd:enumeration value="lessThanOrEqual"/> + * <xsd:enumeration value="notEqual"/> + * <xsd:enumeration value="greaterThanOrEqual"/> + * <xsd:enumeration value="greaterThan"/> + */ + const AUTOFILTER_COLUMN_RULE_EQUAL = 'equal'; + const AUTOFILTER_COLUMN_RULE_NOTEQUAL = 'notEqual'; + const AUTOFILTER_COLUMN_RULE_GREATERTHAN = 'greaterThan'; + const AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL = 'greaterThanOrEqual'; + const AUTOFILTER_COLUMN_RULE_LESSTHAN = 'lessThan'; + const AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL = 'lessThanOrEqual'; + + private static $_operators = array( + self::AUTOFILTER_COLUMN_RULE_EQUAL, + self::AUTOFILTER_COLUMN_RULE_NOTEQUAL, + self::AUTOFILTER_COLUMN_RULE_GREATERTHAN, + self::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, + self::AUTOFILTER_COLUMN_RULE_LESSTHAN, + self::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL, + ); + + const AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE = 'byValue'; + const AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT = 'byPercent'; + + private static $_topTenValue = array( + self::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE, + self::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT, + ); + + const AUTOFILTER_COLUMN_RULE_TOPTEN_TOP = 'top'; + const AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM = 'bottom'; + + private static $_topTenType = array( + self::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP, + self::AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM, + ); + + + /* Rule Operators (Numeric, Boolean etc) */ +// const AUTOFILTER_COLUMN_RULE_BETWEEN = 'between'; // greaterThanOrEqual 1 && lessThanOrEqual 2 + /* Rule Operators (Numeric Special) which are translated to standard numeric operators with calculated values */ +// const AUTOFILTER_COLUMN_RULE_TOPTEN = 'topTen'; // greaterThan calculated value +// const AUTOFILTER_COLUMN_RULE_TOPTENPERCENT = 'topTenPercent'; // greaterThan calculated value +// const AUTOFILTER_COLUMN_RULE_ABOVEAVERAGE = 'aboveAverage'; // Value is calculated as the average +// const AUTOFILTER_COLUMN_RULE_BELOWAVERAGE = 'belowAverage'; // Value is calculated as the average + /* Rule Operators (String) which are set as wild-carded values */ +// const AUTOFILTER_COLUMN_RULE_BEGINSWITH = 'beginsWith'; // A* +// const AUTOFILTER_COLUMN_RULE_ENDSWITH = 'endsWith'; // *Z +// const AUTOFILTER_COLUMN_RULE_CONTAINS = 'contains'; // *B* +// const AUTOFILTER_COLUMN_RULE_DOESNTCONTAIN = 'notEqual'; // notEqual *B* + /* Rule Operators (Date Special) which are translated to standard numeric operators with calculated values */ +// const AUTOFILTER_COLUMN_RULE_BEFORE = 'lessThan'; +// const AUTOFILTER_COLUMN_RULE_AFTER = 'greaterThan'; +// const AUTOFILTER_COLUMN_RULE_YESTERDAY = 'yesterday'; +// const AUTOFILTER_COLUMN_RULE_TODAY = 'today'; +// const AUTOFILTER_COLUMN_RULE_TOMORROW = 'tomorrow'; +// const AUTOFILTER_COLUMN_RULE_LASTWEEK = 'lastWeek'; +// const AUTOFILTER_COLUMN_RULE_THISWEEK = 'thisWeek'; +// const AUTOFILTER_COLUMN_RULE_NEXTWEEK = 'nextWeek'; +// const AUTOFILTER_COLUMN_RULE_LASTMONTH = 'lastMonth'; +// const AUTOFILTER_COLUMN_RULE_THISMONTH = 'thisMonth'; +// const AUTOFILTER_COLUMN_RULE_NEXTMONTH = 'nextMonth'; +// const AUTOFILTER_COLUMN_RULE_LASTQUARTER = 'lastQuarter'; +// const AUTOFILTER_COLUMN_RULE_THISQUARTER = 'thisQuarter'; +// const AUTOFILTER_COLUMN_RULE_NEXTQUARTER = 'nextQuarter'; +// const AUTOFILTER_COLUMN_RULE_LASTYEAR = 'lastYear'; +// const AUTOFILTER_COLUMN_RULE_THISYEAR = 'thisYear'; +// const AUTOFILTER_COLUMN_RULE_NEXTYEAR = 'nextYear'; +// const AUTOFILTER_COLUMN_RULE_YEARTODATE = 'yearToDate'; // <dynamicFilter val="40909" type="yearToDate" maxVal="41113"/> +// const AUTOFILTER_COLUMN_RULE_ALLDATESINMONTH = 'allDatesInMonth'; // <dynamicFilter type="M2"/> for Month/February +// const AUTOFILTER_COLUMN_RULE_ALLDATESINQUARTER = 'allDatesInQuarter'; // <dynamicFilter type="Q2"/> for Quarter 2 + + /** + * Autofilter Column + * + * @var PHPExcel_Worksheet_AutoFilter_Column + */ + private $_parent = NULL; + + + /** + * Autofilter Rule Type + * + * @var string + */ + private $_ruleType = self::AUTOFILTER_RULETYPE_FILTER; + + + /** + * Autofilter Rule Value + * + * @var string + */ + private $_value = ''; + + /** + * Autofilter Rule Operator + * + * @var string + */ + private $_operator = ''; + + /** + * DateTimeGrouping Group Value + * + * @var string + */ + private $_grouping = ''; + + + /** + * Create a new PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function __construct(PHPExcel_Worksheet_AutoFilter_Column $pParent = NULL) + { + $this->_parent = $pParent; + } + + /** + * Get AutoFilter Rule Type + * + * @return string + */ + public function getRuleType() { + return $this->_ruleType; + } + + /** + * Set AutoFilter Rule Type + * + * @param string $pRuleType + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function setRuleType($pRuleType = self::AUTOFILTER_RULETYPE_FILTER) { + if (!in_array($pRuleType,self::$_ruleTypes)) { + throw new PHPExcel_Exception('Invalid rule type for column AutoFilter Rule.'); + } + + $this->_ruleType = $pRuleType; + + return $this; + } + + /** + * Get AutoFilter Rule Value + * + * @return string + */ + public function getValue() { + return $this->_value; + } + + /** + * Set AutoFilter Rule Value + * + * @param string|string[] $pValue + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function setValue($pValue = '') { + if (is_array($pValue)) { + $grouping = -1; + foreach($pValue as $key => $value) { + // Validate array entries + if (!in_array($key,self::$_dateTimeGroups)) { + // Remove any invalid entries from the value array + unset($pValue[$key]); + } else { + // Work out what the dateTime grouping will be + $grouping = max($grouping,array_search($key,self::$_dateTimeGroups)); + } + } + if (count($pValue) == 0) { + throw new PHPExcel_Exception('Invalid rule value for column AutoFilter Rule.'); + } + // Set the dateTime grouping that we've anticipated + $this->setGrouping(self::$_dateTimeGroups[$grouping]); + } + $this->_value = $pValue; + + return $this; + } + + /** + * Get AutoFilter Rule Operator + * + * @return string + */ + public function getOperator() { + return $this->_operator; + } + + /** + * Set AutoFilter Rule Operator + * + * @param string $pOperator + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function setOperator($pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL) { + if (empty($pOperator)) + $pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL; + if ((!in_array($pOperator,self::$_operators)) && + (!in_array($pOperator,self::$_topTenValue))) { + throw new PHPExcel_Exception('Invalid operator for column AutoFilter Rule.'); + } + $this->_operator = $pOperator; + + return $this; + } + + /** + * Get AutoFilter Rule Grouping + * + * @return string + */ + public function getGrouping() { + return $this->_grouping; + } + + /** + * Set AutoFilter Rule Grouping + * + * @param string $pGrouping + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function setGrouping($pGrouping = NULL) { + if (($pGrouping !== NULL) && + (!in_array($pGrouping,self::$_dateTimeGroups)) && + (!in_array($pGrouping,self::$_dynamicTypes)) && + (!in_array($pGrouping,self::$_topTenType))) { + throw new PHPExcel_Exception('Invalid rule type for column AutoFilter Rule.'); + } + + $this->_grouping = $pGrouping; + + return $this; + } + + /** + * Set AutoFilter Rule + * + * @param string $pOperator + * @param string|string[] $pValue + * @param string $pGrouping + * @throws Exception + * @return PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function setRule($pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL, $pValue = '', $pGrouping = NULL) { + $this->setOperator($pOperator); + $this->setValue($pValue); + // Only set grouping if it's been passed in as a user-supplied argument, + // otherwise we're calculating it when we setValue() and don't want to overwrite that + // If the user supplies an argumnet for grouping, then on their own head be it + if ($pGrouping !== NULL) + $this->setGrouping($pGrouping); + + return $this; + } + + /** + * Get this Rule's AutoFilter Column Parent + * + * @return PHPExcel_Worksheet_AutoFilter_Column + */ + public function getParent() { + return $this->_parent; + } + + /** + * Set this Rule's AutoFilter Column Parent + * + * @param PHPExcel_Worksheet_AutoFilter_Column + * @return PHPExcel_Worksheet_AutoFilter_Column_Rule + */ + public function setParent(PHPExcel_Worksheet_AutoFilter_Column $pParent = NULL) { + $this->_parent = $pParent; + + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + if ($key == '_parent') { + // Detach from autofilter column parent + $this->$key = NULL; + } else { + $this->$key = clone $value; + } + } else { + $this->$key = $value; + } + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/BaseDrawing.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/BaseDrawing.php new file mode 100755 index 0000000..1e6725a --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/BaseDrawing.php @@ -0,0 +1,485 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_BaseDrawing + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable +{ + /** + * Image counter + * + * @var int + */ + private static $_imageCounter = 0; + + /** + * Image index + * + * @var int + */ + private $_imageIndex = 0; + + /** + * Name + * + * @var string + */ + protected $_name; + + /** + * Description + * + * @var string + */ + protected $_description; + + /** + * Worksheet + * + * @var PHPExcel_Worksheet + */ + protected $_worksheet; + + /** + * Coordinates + * + * @var string + */ + protected $_coordinates; + + /** + * Offset X + * + * @var int + */ + protected $_offsetX; + + /** + * Offset Y + * + * @var int + */ + protected $_offsetY; + + /** + * Width + * + * @var int + */ + protected $_width; + + /** + * Height + * + * @var int + */ + protected $_height; + + /** + * Proportional resize + * + * @var boolean + */ + protected $_resizeProportional; + + /** + * Rotation + * + * @var int + */ + protected $_rotation; + + /** + * Shadow + * + * @var PHPExcel_Worksheet_Drawing_Shadow + */ + protected $_shadow; + + /** + * Create a new PHPExcel_Worksheet_BaseDrawing + */ + public function __construct() + { + // Initialise values + $this->_name = ''; + $this->_description = ''; + $this->_worksheet = null; + $this->_coordinates = 'A1'; + $this->_offsetX = 0; + $this->_offsetY = 0; + $this->_width = 0; + $this->_height = 0; + $this->_resizeProportional = true; + $this->_rotation = 0; + $this->_shadow = new PHPExcel_Worksheet_Drawing_Shadow(); + + // Set image index + self::$_imageCounter++; + $this->_imageIndex = self::$_imageCounter; + } + + /** + * Get image index + * + * @return int + */ + public function getImageIndex() { + return $this->_imageIndex; + } + + /** + * Get Name + * + * @return string + */ + public function getName() { + return $this->_name; + } + + /** + * Set Name + * + * @param string $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setName($pValue = '') { + $this->_name = $pValue; + return $this; + } + + /** + * Get Description + * + * @return string + */ + public function getDescription() { + return $this->_description; + } + + /** + * Set Description + * + * @param string $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setDescription($pValue = '') { + $this->_description = $pValue; + return $this; + } + + /** + * Get Worksheet + * + * @return PHPExcel_Worksheet + */ + public function getWorksheet() { + return $this->_worksheet; + } + + /** + * Set Worksheet + * + * @param PHPExcel_Worksheet $pValue + * @param bool $pOverrideOld If a Worksheet has already been assigned, overwrite it and remove image from old Worksheet? + * @throws Exception + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setWorksheet(PHPExcel_Worksheet $pValue = null, $pOverrideOld = false) { + if (is_null($this->_worksheet)) { + // Add drawing to PHPExcel_Worksheet + $this->_worksheet = $pValue; + $this->_worksheet->getCell($this->_coordinates); + $this->_worksheet->getDrawingCollection()->append($this); + } else { + if ($pOverrideOld) { + // Remove drawing from old PHPExcel_Worksheet + $iterator = $this->_worksheet->getDrawingCollection()->getIterator(); + + while ($iterator->valid()) { + if ($iterator->current()->getHashCode() == $this->getHashCode()) { + $this->_worksheet->getDrawingCollection()->offsetUnset( $iterator->key() ); + $this->_worksheet = null; + break; + } + } + + // Set new PHPExcel_Worksheet + $this->setWorksheet($pValue); + } else { + throw new Exception("A PHPExcel_Worksheet has already been assigned. Drawings can only exist on one PHPExcel_Worksheet."); + } + } + return $this; + } + + /** + * Get Coordinates + * + * @return string + */ + public function getCoordinates() { + return $this->_coordinates; + } + + /** + * Set Coordinates + * + * @param string $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setCoordinates($pValue = 'A1') { + $this->_coordinates = $pValue; + return $this; + } + + /** + * Get OffsetX + * + * @return int + */ + public function getOffsetX() { + return $this->_offsetX; + } + + /** + * Set OffsetX + * + * @param int $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setOffsetX($pValue = 0) { + $this->_offsetX = $pValue; + return $this; + } + + /** + * Get OffsetY + * + * @return int + */ + public function getOffsetY() { + return $this->_offsetY; + } + + /** + * Set OffsetY + * + * @param int $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setOffsetY($pValue = 0) { + $this->_offsetY = $pValue; + return $this; + } + + /** + * Get Width + * + * @return int + */ + public function getWidth() { + return $this->_width; + } + + /** + * Set Width + * + * @param int $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setWidth($pValue = 0) { + // Resize proportional? + if ($this->_resizeProportional && $pValue != 0) { + $ratio = $this->_height / $this->_width; + $this->_height = round($ratio * $pValue); + } + + // Set width + $this->_width = $pValue; + + return $this; + } + + /** + * Get Height + * + * @return int + */ + public function getHeight() { + return $this->_height; + } + + /** + * Set Height + * + * @param int $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setHeight($pValue = 0) { + // Resize proportional? + if ($this->_resizeProportional && $pValue != 0) { + $ratio = $this->_width / $this->_height; + $this->_width = round($ratio * $pValue); + } + + // Set height + $this->_height = $pValue; + + return $this; + } + + /** + * Set width and height with proportional resize + * Example: + * <code> + * $objDrawing->setResizeProportional(true); + * $objDrawing->setWidthAndHeight(160,120); + * </code> + * + * @author Vincent@luo MSN:kele_100@hotmail.com + * @param int $width + * @param int $height + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setWidthAndHeight($width = 0, $height = 0) { + $xratio = $width / $this->_width; + $yratio = $height / $this->_height; + if ($this->_resizeProportional && !($width == 0 || $height == 0)) { + if (($xratio * $this->_height) < $height) { + $this->_height = ceil($xratio * $this->_height); + $this->_width = $width; + } else { + $this->_width = ceil($yratio * $this->_width); + $this->_height = $height; + } + } + return $this; + } + + /** + * Get ResizeProportional + * + * @return boolean + */ + public function getResizeProportional() { + return $this->_resizeProportional; + } + + /** + * Set ResizeProportional + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setResizeProportional($pValue = true) { + $this->_resizeProportional = $pValue; + return $this; + } + + /** + * Get Rotation + * + * @return int + */ + public function getRotation() { + return $this->_rotation; + } + + /** + * Set Rotation + * + * @param int $pValue + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setRotation($pValue = 0) { + $this->_rotation = $pValue; + return $this; + } + + /** + * Get Shadow + * + * @return PHPExcel_Worksheet_Drawing_Shadow + */ + public function getShadow() { + return $this->_shadow; + } + + /** + * Set Shadow + * + * @param PHPExcel_Worksheet_Drawing_Shadow $pValue + * @throws Exception + * @return PHPExcel_Worksheet_BaseDrawing + */ + public function setShadow(PHPExcel_Worksheet_Drawing_Shadow $pValue = null) { + $this->_shadow = $pValue; + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_name + . $this->_description + . $this->_worksheet->getHashCode() + . $this->_coordinates + . $this->_offsetX + . $this->_offsetY + . $this->_width + . $this->_height + . $this->_rotation + . $this->_shadow->getHashCode() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/CellIterator.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/CellIterator.php new file mode 100755 index 0000000..a612d55 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/CellIterator.php @@ -0,0 +1,161 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_CellIterator + * + * Used to iterate rows in a PHPExcel_Worksheet + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_CellIterator implements Iterator +{ + /** + * PHPExcel_Worksheet to iterate + * + * @var PHPExcel_Worksheet + */ + private $_subject; + + /** + * Row index + * + * @var int + */ + private $_rowIndex; + + /** + * Current iterator position + * + * @var int + */ + private $_position = 0; + + /** + * Loop only existing cells + * + * @var boolean + */ + private $_onlyExistingCells = true; + + /** + * Create a new cell iterator + * + * @param PHPExcel_Worksheet $subject + * @param int $rowIndex + */ + public function __construct(PHPExcel_Worksheet $subject = null, $rowIndex = 1) { + // Set subject and row index + $this->_subject = $subject; + $this->_rowIndex = $rowIndex; + } + + /** + * Destructor + */ + public function __destruct() { + unset($this->_subject); + } + + /** + * Rewind iterator + */ + public function rewind() { + $this->_position = 0; + } + + /** + * Current PHPExcel_Cell + * + * @return PHPExcel_Cell + */ + public function current() { + return $this->_subject->getCellByColumnAndRow($this->_position, $this->_rowIndex); + } + + /** + * Current key + * + * @return int + */ + public function key() { + return $this->_position; + } + + /** + * Next value + */ + public function next() { + ++$this->_position; + } + + /** + * Are there any more PHPExcel_Cell instances available? + * + * @return boolean + */ + public function valid() { + // columnIndexFromString() returns an index based at one, + // treat it as a count when comparing it to the base zero + // position. + $columnCount = PHPExcel_Cell::columnIndexFromString($this->_subject->getHighestColumn()); + + if ($this->_onlyExistingCells) { + // If we aren't looking at an existing cell, either + // because the first column doesn't exist or next() has + // been called onto a nonexistent cell, then loop until we + // find one, or pass the last column. + while ($this->_position < $columnCount && + !$this->_subject->cellExistsByColumnAndRow($this->_position, $this->_rowIndex)) { + ++$this->_position; + } + } + + return $this->_position < $columnCount; + } + + /** + * Get loop only existing cells + * + * @return boolean + */ + public function getIterateOnlyExistingCells() { + return $this->_onlyExistingCells; + } + + /** + * Set the iterator to loop only existing cells + * + * @param boolean $value + */ + public function setIterateOnlyExistingCells($value = true) { + $this->_onlyExistingCells = $value; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/ColumnDimension.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/ColumnDimension.php new file mode 100755 index 0000000..0915a35 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/ColumnDimension.php @@ -0,0 +1,266 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_ColumnDimension + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_ColumnDimension +{ + /** + * Column index + * + * @var int + */ + private $_columnIndex; + + /** + * Column width + * + * When this is set to a negative value, the column width should be ignored by IWriter + * + * @var double + */ + private $_width = -1; + + /** + * Auto size? + * + * @var bool + */ + private $_autoSize = false; + + /** + * Visible? + * + * @var bool + */ + private $_visible = true; + + /** + * Outline level + * + * @var int + */ + private $_outlineLevel = 0; + + /** + * Collapsed + * + * @var bool + */ + private $_collapsed = false; + + /** + * Index to cellXf + * + * @var int + */ + private $_xfIndex; + + /** + * Create a new PHPExcel_Worksheet_ColumnDimension + * + * @param string $pIndex Character column index + */ + public function __construct($pIndex = 'A') + { + // Initialise values + $this->_columnIndex = $pIndex; + + // set default index to cellXf + $this->_xfIndex = 0; + } + + /** + * Get ColumnIndex + * + * @return string + */ + public function getColumnIndex() { + return $this->_columnIndex; + } + + /** + * Set ColumnIndex + * + * @param string $pValue + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function setColumnIndex($pValue) { + $this->_columnIndex = $pValue; + return $this; + } + + /** + * Get Width + * + * @return double + */ + public function getWidth() { + return $this->_width; + } + + /** + * Set Width + * + * @param double $pValue + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function setWidth($pValue = -1) { + $this->_width = $pValue; + return $this; + } + + /** + * Get Auto Size + * + * @return bool + */ + public function getAutoSize() { + return $this->_autoSize; + } + + /** + * Set Auto Size + * + * @param bool $pValue + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function setAutoSize($pValue = false) { + $this->_autoSize = $pValue; + return $this; + } + + /** + * Get Visible + * + * @return bool + */ + public function getVisible() { + return $this->_visible; + } + + /** + * Set Visible + * + * @param bool $pValue + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function setVisible($pValue = true) { + $this->_visible = $pValue; + return $this; + } + + /** + * Get Outline Level + * + * @return int + */ + public function getOutlineLevel() { + return $this->_outlineLevel; + } + + /** + * Set Outline Level + * + * Value must be between 0 and 7 + * + * @param int $pValue + * @throws Exception + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function setOutlineLevel($pValue) { + if ($pValue < 0 || $pValue > 7) { + throw new Exception("Outline level must range between 0 and 7."); + } + + $this->_outlineLevel = $pValue; + return $this; + } + + /** + * Get Collapsed + * + * @return bool + */ + public function getCollapsed() { + return $this->_collapsed; + } + + /** + * Set Collapsed + * + * @param bool $pValue + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function setCollapsed($pValue = true) { + $this->_collapsed = $pValue; + return $this; + } + + /** + * Get index to cellXf + * + * @return int + */ + public function getXfIndex() + { + return $this->_xfIndex; + } + + /** + * Set index to cellXf + * + * @param int $pValue + * @return PHPExcel_Worksheet_ColumnDimension + */ + public function setXfIndex($pValue = 0) + { + $this->_xfIndex = $pValue; + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/Drawing.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/Drawing.php new file mode 100755 index 0000000..1d4e4b5 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/Drawing.php @@ -0,0 +1,148 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet_Drawing + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_Drawing + * + * @category PHPExcel + * @package PHPExcel_Worksheet_Drawing + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_Drawing extends PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable +{ + /** + * Path + * + * @var string + */ + private $_path; + + /** + * Create a new PHPExcel_Worksheet_Drawing + */ + public function __construct() + { + // Initialise values + $this->_path = ''; + + // Initialize parent + parent::__construct(); + } + + /** + * Get Filename + * + * @return string + */ + public function getFilename() { + return basename($this->_path); + } + + /** + * Get indexed filename (using image index) + * + * @return string + */ + public function getIndexedFilename() { + $fileName = $this->getFilename(); + $fileName = str_replace(' ', '_', $fileName); + return str_replace('.' . $this->getExtension(), '', $fileName) . $this->getImageIndex() . '.' . $this->getExtension(); + } + + /** + * Get Extension + * + * @return string + */ + public function getExtension() { + $exploded = explode(".", basename($this->_path)); + return $exploded[count($exploded) - 1]; + } + + /** + * Get Path + * + * @return string + */ + public function getPath() { + return $this->_path; + } + + /** + * Set Path + * + * @param string $pValue File path + * @param boolean $pVerifyFile Verify file + * @throws Exception + * @return PHPExcel_Worksheet_Drawing + */ + public function setPath($pValue = '', $pVerifyFile = true) { + if ($pVerifyFile) { + if (file_exists($pValue)) { + $this->_path = $pValue; + + if ($this->_width == 0 && $this->_height == 0) { + // Get width/height + list($this->_width, $this->_height) = getimagesize($pValue); + } + } else { + throw new Exception("File $pValue not found!"); + } + } else { + $this->_path = $pValue; + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_path + . parent::getHashCode() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/Drawing/Shadow.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/Drawing/Shadow.php new file mode 100755 index 0000000..d4a5373 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/Drawing/Shadow.php @@ -0,0 +1,288 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet_Drawing + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_Drawing_Shadow + * + * @category PHPExcel + * @package PHPExcel_Worksheet_Drawing + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_Drawing_Shadow implements PHPExcel_IComparable +{ + /* Shadow alignment */ + const SHADOW_BOTTOM = 'b'; + const SHADOW_BOTTOM_LEFT = 'bl'; + const SHADOW_BOTTOM_RIGHT = 'br'; + const SHADOW_CENTER = 'ctr'; + const SHADOW_LEFT = 'l'; + const SHADOW_TOP = 't'; + const SHADOW_TOP_LEFT = 'tl'; + const SHADOW_TOP_RIGHT = 'tr'; + + /** + * Visible + * + * @var boolean + */ + private $_visible; + + /** + * Blur radius + * + * Defaults to 6 + * + * @var int + */ + private $_blurRadius; + + /** + * Shadow distance + * + * Defaults to 2 + * + * @var int + */ + private $_distance; + + /** + * Shadow direction (in degrees) + * + * @var int + */ + private $_direction; + + /** + * Shadow alignment + * + * @var int + */ + private $_alignment; + + /** + * Color + * + * @var PHPExcel_Style_Color + */ + private $_color; + + /** + * Alpha + * + * @var int + */ + private $_alpha; + + /** + * Create a new PHPExcel_Worksheet_Drawing_Shadow + */ + public function __construct() + { + // Initialise values + $this->_visible = false; + $this->_blurRadius = 6; + $this->_distance = 2; + $this->_direction = 0; + $this->_alignment = PHPExcel_Worksheet_Drawing_Shadow::SHADOW_BOTTOM_RIGHT; + $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK); + $this->_alpha = 50; + } + + /** + * Get Visible + * + * @return boolean + */ + public function getVisible() { + return $this->_visible; + } + + /** + * Set Visible + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Drawing_Shadow + */ + public function setVisible($pValue = false) { + $this->_visible = $pValue; + return $this; + } + + /** + * Get Blur radius + * + * @return int + */ + public function getBlurRadius() { + return $this->_blurRadius; + } + + /** + * Set Blur radius + * + * @param int $pValue + * @return PHPExcel_Worksheet_Drawing_Shadow + */ + public function setBlurRadius($pValue = 6) { + $this->_blurRadius = $pValue; + return $this; + } + + /** + * Get Shadow distance + * + * @return int + */ + public function getDistance() { + return $this->_distance; + } + + /** + * Set Shadow distance + * + * @param int $pValue + * @return PHPExcel_Worksheet_Drawing_Shadow + */ + public function setDistance($pValue = 2) { + $this->_distance = $pValue; + return $this; + } + + /** + * Get Shadow direction (in degrees) + * + * @return int + */ + public function getDirection() { + return $this->_direction; + } + + /** + * Set Shadow direction (in degrees) + * + * @param int $pValue + * @return PHPExcel_Worksheet_Drawing_Shadow + */ + public function setDirection($pValue = 0) { + $this->_direction = $pValue; + return $this; + } + + /** + * Get Shadow alignment + * + * @return int + */ + public function getAlignment() { + return $this->_alignment; + } + + /** + * Set Shadow alignment + * + * @param int $pValue + * @return PHPExcel_Worksheet_Drawing_Shadow + */ + public function setAlignment($pValue = 0) { + $this->_alignment = $pValue; + return $this; + } + + /** + * Get Color + * + * @return PHPExcel_Style_Color + */ + public function getColor() { + return $this->_color; + } + + /** + * Set Color + * + * @param PHPExcel_Style_Color $pValue + * @throws Exception + * @return PHPExcel_Worksheet_Drawing_Shadow + */ + public function setColor(PHPExcel_Style_Color $pValue = null) { + $this->_color = $pValue; + return $this; + } + + /** + * Get Alpha + * + * @return int + */ + public function getAlpha() { + return $this->_alpha; + } + + /** + * Set Alpha + * + * @param int $pValue + * @return PHPExcel_Worksheet_Drawing_Shadow + */ + public function setAlpha($pValue = 0) { + $this->_alpha = $pValue; + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + ($this->_visible ? 't' : 'f') + . $this->_blurRadius + . $this->_distance + . $this->_direction + . $this->_alignment + . $this->_color->getHashCode() + . $this->_alpha + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/HeaderFooter.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/HeaderFooter.php new file mode 100755 index 0000000..e2524e1 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/HeaderFooter.php @@ -0,0 +1,465 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_HeaderFooter + * + * <code> + * Header/Footer Formatting Syntax taken from Office Open XML Part 4 - Markup Language Reference, page 1970: + * + * There are a number of formatting codes that can be written inline with the actual header / footer text, which + * affect the formatting in the header or footer. + * + * Example: This example shows the text "Center Bold Header" on the first line (center section), and the date on + * the second line (center section). + * &CCenter &"-,Bold"Bold&"-,Regular"Header_x000A_&D + * + * General Rules: + * There is no required order in which these codes must appear. + * + * The first occurrence of the following codes turns the formatting ON, the second occurrence turns it OFF again: + * - strikethrough + * - superscript + * - subscript + * Superscript and subscript cannot both be ON at same time. Whichever comes first wins and the other is ignored, + * while the first is ON. + * &L - code for "left section" (there are three header / footer locations, "left", "center", and "right"). When + * two or more occurrences of this section marker exist, the contents from all markers are concatenated, in the + * order of appearance, and placed into the left section. + * &P - code for "current page #" + * &N - code for "total pages" + * &font size - code for "text font size", where font size is a font size in points. + * &K - code for "text font color" + * RGB Color is specified as RRGGBB + * Theme Color is specifed as TTSNN where TT is the theme color Id, S is either "+" or "-" of the tint/shade + * value, NN is the tint/shade value. + * &S - code for "text strikethrough" on / off + * &X - code for "text super script" on / off + * &Y - code for "text subscript" on / off + * &C - code for "center section". When two or more occurrences of this section marker exist, the contents + * from all markers are concatenated, in the order of appearance, and placed into the center section. + * + * &D - code for "date" + * &T - code for "time" + * &G - code for "picture as background" + * &U - code for "text single underline" + * &E - code for "double underline" + * &R - code for "right section". When two or more occurrences of this section marker exist, the contents + * from all markers are concatenated, in the order of appearance, and placed into the right section. + * &Z - code for "this workbook's file path" + * &F - code for "this workbook's file name" + * &A - code for "sheet tab name" + * &+ - code for add to page #. + * &- - code for subtract from page #. + * &"font name,font type" - code for "text font name" and "text font type", where font name and font type + * are strings specifying the name and type of the font, separated by a comma. When a hyphen appears in font + * name, it means "none specified". Both of font name and font type can be localized values. + * &"-,Bold" - code for "bold font style" + * &B - also means "bold font style". + * &"-,Regular" - code for "regular font style" + * &"-,Italic" - code for "italic font style" + * &I - also means "italic font style" + * &"-,Bold Italic" code for "bold italic font style" + * &O - code for "outline style" + * &H - code for "shadow style" + * </code> + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_HeaderFooter +{ + /* Header/footer image location */ + const IMAGE_HEADER_LEFT = 'LH'; + const IMAGE_HEADER_CENTER = 'CH'; + const IMAGE_HEADER_RIGHT = 'RH'; + const IMAGE_FOOTER_LEFT = 'LF'; + const IMAGE_FOOTER_CENTER = 'CF'; + const IMAGE_FOOTER_RIGHT = 'RF'; + + /** + * OddHeader + * + * @var string + */ + private $_oddHeader = ''; + + /** + * OddFooter + * + * @var string + */ + private $_oddFooter = ''; + + /** + * EvenHeader + * + * @var string + */ + private $_evenHeader = ''; + + /** + * EvenFooter + * + * @var string + */ + private $_evenFooter = ''; + + /** + * FirstHeader + * + * @var string + */ + private $_firstHeader = ''; + + /** + * FirstFooter + * + * @var string + */ + private $_firstFooter = ''; + + /** + * Different header for Odd/Even, defaults to false + * + * @var boolean + */ + private $_differentOddEven = false; + + /** + * Different header for first page, defaults to false + * + * @var boolean + */ + private $_differentFirst = false; + + /** + * Scale with document, defaults to true + * + * @var boolean + */ + private $_scaleWithDocument = true; + + /** + * Align with margins, defaults to true + * + * @var boolean + */ + private $_alignWithMargins = true; + + /** + * Header/footer images + * + * @var PHPExcel_Worksheet_HeaderFooterDrawing[] + */ + private $_headerFooterImages = array(); + + /** + * Create a new PHPExcel_Worksheet_HeaderFooter + */ + public function __construct() + { + } + + /** + * Get OddHeader + * + * @return string + */ + public function getOddHeader() { + return $this->_oddHeader; + } + + /** + * Set OddHeader + * + * @param string $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setOddHeader($pValue) { + $this->_oddHeader = $pValue; + return $this; + } + + /** + * Get OddFooter + * + * @return string + */ + public function getOddFooter() { + return $this->_oddFooter; + } + + /** + * Set OddFooter + * + * @param string $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setOddFooter($pValue) { + $this->_oddFooter = $pValue; + return $this; + } + + /** + * Get EvenHeader + * + * @return string + */ + public function getEvenHeader() { + return $this->_evenHeader; + } + + /** + * Set EvenHeader + * + * @param string $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setEvenHeader($pValue) { + $this->_evenHeader = $pValue; + return $this; + } + + /** + * Get EvenFooter + * + * @return string + */ + public function getEvenFooter() { + return $this->_evenFooter; + } + + /** + * Set EvenFooter + * + * @param string $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setEvenFooter($pValue) { + $this->_evenFooter = $pValue; + return $this; + } + + /** + * Get FirstHeader + * + * @return string + */ + public function getFirstHeader() { + return $this->_firstHeader; + } + + /** + * Set FirstHeader + * + * @param string $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setFirstHeader($pValue) { + $this->_firstHeader = $pValue; + return $this; + } + + /** + * Get FirstFooter + * + * @return string + */ + public function getFirstFooter() { + return $this->_firstFooter; + } + + /** + * Set FirstFooter + * + * @param string $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setFirstFooter($pValue) { + $this->_firstFooter = $pValue; + return $this; + } + + /** + * Get DifferentOddEven + * + * @return boolean + */ + public function getDifferentOddEven() { + return $this->_differentOddEven; + } + + /** + * Set DifferentOddEven + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setDifferentOddEven($pValue = false) { + $this->_differentOddEven = $pValue; + return $this; + } + + /** + * Get DifferentFirst + * + * @return boolean + */ + public function getDifferentFirst() { + return $this->_differentFirst; + } + + /** + * Set DifferentFirst + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setDifferentFirst($pValue = false) { + $this->_differentFirst = $pValue; + return $this; + } + + /** + * Get ScaleWithDocument + * + * @return boolean + */ + public function getScaleWithDocument() { + return $this->_scaleWithDocument; + } + + /** + * Set ScaleWithDocument + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setScaleWithDocument($pValue = true) { + $this->_scaleWithDocument = $pValue; + return $this; + } + + /** + * Get AlignWithMargins + * + * @return boolean + */ + public function getAlignWithMargins() { + return $this->_alignWithMargins; + } + + /** + * Set AlignWithMargins + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setAlignWithMargins($pValue = true) { + $this->_alignWithMargins = $pValue; + return $this; + } + + /** + * Add header/footer image + * + * @param PHPExcel_Worksheet_HeaderFooterDrawing $image + * @param string $location + * @throws Exception + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function addImage(PHPExcel_Worksheet_HeaderFooterDrawing $image = null, $location = self::IMAGE_HEADER_LEFT) { + $this->_headerFooterImages[$location] = $image; + return $this; + } + + /** + * Remove header/footer image + * + * @param string $location + * @throws Exception + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function removeImage($location = self::IMAGE_HEADER_LEFT) { + if (isset($this->_headerFooterImages[$location])) { + unset($this->_headerFooterImages[$location]); + } + return $this; + } + + /** + * Set header/footer images + * + * @param PHPExcel_Worksheet_HeaderFooterDrawing[] $images + * @throws Exception + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setImages($images) { + if (!is_array($images)) { + throw new Exception('Invalid parameter!'); + } + + $this->_headerFooterImages = $images; + return $this; + } + + /** + * Get header/footer images + * + * @return PHPExcel_Worksheet_HeaderFooterDrawing[] + */ + public function getImages() { + // Sort array + $images = array(); + if (isset($this->_headerFooterImages[self::IMAGE_HEADER_LEFT])) $images[self::IMAGE_HEADER_LEFT] = $this->_headerFooterImages[self::IMAGE_HEADER_LEFT]; + if (isset($this->_headerFooterImages[self::IMAGE_HEADER_CENTER])) $images[self::IMAGE_HEADER_CENTER] = $this->_headerFooterImages[self::IMAGE_HEADER_CENTER]; + if (isset($this->_headerFooterImages[self::IMAGE_HEADER_RIGHT])) $images[self::IMAGE_HEADER_RIGHT] = $this->_headerFooterImages[self::IMAGE_HEADER_RIGHT]; + if (isset($this->_headerFooterImages[self::IMAGE_FOOTER_LEFT])) $images[self::IMAGE_FOOTER_LEFT] = $this->_headerFooterImages[self::IMAGE_FOOTER_LEFT]; + if (isset($this->_headerFooterImages[self::IMAGE_FOOTER_CENTER])) $images[self::IMAGE_FOOTER_CENTER] = $this->_headerFooterImages[self::IMAGE_FOOTER_CENTER]; + if (isset($this->_headerFooterImages[self::IMAGE_FOOTER_RIGHT])) $images[self::IMAGE_FOOTER_RIGHT] = $this->_headerFooterImages[self::IMAGE_FOOTER_RIGHT]; + $this->_headerFooterImages = $images; + + return $this->_headerFooterImages; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php new file mode 100755 index 0000000..94672da --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php @@ -0,0 +1,350 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_HeaderFooterDrawing + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_HeaderFooterDrawing extends PHPExcel_Worksheet_Drawing implements PHPExcel_IComparable +{ + /** + * Path + * + * @var string + */ + private $_path; + + /** + * Name + * + * @var string + */ + protected $_name; + + /** + * Offset X + * + * @var int + */ + protected $_offsetX; + + /** + * Offset Y + * + * @var int + */ + protected $_offsetY; + + /** + * Width + * + * @var int + */ + protected $_width; + + /** + * Height + * + * @var int + */ + protected $_height; + + /** + * Proportional resize + * + * @var boolean + */ + protected $_resizeProportional; + + /** + * Create a new PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function __construct() + { + // Initialise values + $this->_path = ''; + $this->_name = ''; + $this->_offsetX = 0; + $this->_offsetY = 0; + $this->_width = 0; + $this->_height = 0; + $this->_resizeProportional = true; + } + + /** + * Get Name + * + * @return string + */ + public function getName() { + return $this->_name; + } + + /** + * Set Name + * + * @param string $pValue + * @return PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function setName($pValue = '') { + $this->_name = $pValue; + return $this; + } + + /** + * Get OffsetX + * + * @return int + */ + public function getOffsetX() { + return $this->_offsetX; + } + + /** + * Set OffsetX + * + * @param int $pValue + * @return PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function setOffsetX($pValue = 0) { + $this->_offsetX = $pValue; + return $this; + } + + /** + * Get OffsetY + * + * @return int + */ + public function getOffsetY() { + return $this->_offsetY; + } + + /** + * Set OffsetY + * + * @param int $pValue + * @return PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function setOffsetY($pValue = 0) { + $this->_offsetY = $pValue; + return $this; + } + + /** + * Get Width + * + * @return int + */ + public function getWidth() { + return $this->_width; + } + + /** + * Set Width + * + * @param int $pValue + * @return PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function setWidth($pValue = 0) { + // Resize proportional? + if ($this->_resizeProportional && $pValue != 0) { + $ratio = $this->_width / $this->_height; + $this->_height = round($ratio * $pValue); + } + + // Set width + $this->_width = $pValue; + + return $this; + } + + /** + * Get Height + * + * @return int + */ + public function getHeight() { + return $this->_height; + } + + /** + * Set Height + * + * @param int $pValue + * @return PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function setHeight($pValue = 0) { + // Resize proportional? + if ($this->_resizeProportional && $pValue != 0) { + $ratio = $this->_width / $this->_height; + $this->_width = round($ratio * $pValue); + } + + // Set height + $this->_height = $pValue; + + return $this; + } + + /** + * Set width and height with proportional resize + * Example: + * <code> + * $objDrawing->setResizeProportional(true); + * $objDrawing->setWidthAndHeight(160,120); + * </code> + * + * @author Vincent@luo MSN:kele_100@hotmail.com + * @param int $width + * @param int $height + * @return PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function setWidthAndHeight($width = 0, $height = 0) { + $xratio = $width / $this->_width; + $yratio = $height / $this->_height; + if ($this->_resizeProportional && !($width == 0 || $height == 0)) { + if (($xratio * $this->_height) < $height) { + $this->_height = ceil($xratio * $this->_height); + $this->_width = $width; + } else { + $this->_width = ceil($yratio * $this->_width); + $this->_height = $height; + } + } + return $this; + } + + /** + * Get ResizeProportional + * + * @return boolean + */ + public function getResizeProportional() { + return $this->_resizeProportional; + } + + /** + * Set ResizeProportional + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function setResizeProportional($pValue = true) { + $this->_resizeProportional = $pValue; + return $this; + } + + /** + * Get Filename + * + * @return string + */ + public function getFilename() { + return basename($this->_path); + } + + /** + * Get Extension + * + * @return string + */ + public function getExtension() { + $parts = explode(".", basename($this->_path)); + return end($parts); + } + + /** + * Get Path + * + * @return string + */ + public function getPath() { + return $this->_path; + } + + /** + * Set Path + * + * @param string $pValue File path + * @param boolean $pVerifyFile Verify file + * @throws Exception + * @return PHPExcel_Worksheet_HeaderFooterDrawing + */ + public function setPath($pValue = '', $pVerifyFile = true) { + if ($pVerifyFile) { + if (file_exists($pValue)) { + $this->_path = $pValue; + + if ($this->_width == 0 && $this->_height == 0) { + // Get width/height + list($this->_width, $this->_height) = getimagesize($pValue); + } + } else { + throw new Exception("File $pValue not found!"); + } + } else { + $this->_path = $pValue; + } + return $this; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_path + . $this->_name + . $this->_offsetX + . $this->_offsetY + . $this->_width + . $this->_height + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/MemoryDrawing.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/MemoryDrawing.php new file mode 100755 index 0000000..223a29f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/MemoryDrawing.php @@ -0,0 +1,200 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_MemoryDrawing + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_MemoryDrawing extends PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable +{ + /* Rendering functions */ + const RENDERING_DEFAULT = 'imagepng'; + const RENDERING_PNG = 'imagepng'; + const RENDERING_GIF = 'imagegif'; + const RENDERING_JPEG = 'imagejpeg'; + + /* MIME types */ + const MIMETYPE_DEFAULT = 'image/png'; + const MIMETYPE_PNG = 'image/png'; + const MIMETYPE_GIF = 'image/gif'; + const MIMETYPE_JPEG = 'image/jpeg'; + + /** + * Image resource + * + * @var resource + */ + private $_imageResource; + + /** + * Rendering function + * + * @var string + */ + private $_renderingFunction; + + /** + * Mime type + * + * @var string + */ + private $_mimeType; + + /** + * Unique name + * + * @var string + */ + private $_uniqueName; + + /** + * Create a new PHPExcel_Worksheet_MemoryDrawing + */ + public function __construct() + { + // Initialise values + $this->_imageResource = null; + $this->_renderingFunction = self::RENDERING_DEFAULT; + $this->_mimeType = self::MIMETYPE_DEFAULT; + $this->_uniqueName = md5(rand(0, 9999). time() . rand(0, 9999)); + + // Initialize parent + parent::__construct(); + } + + /** + * Get image resource + * + * @return resource + */ + public function getImageResource() { + return $this->_imageResource; + } + + /** + * Set image resource + * + * @param $value resource + * @return PHPExcel_Worksheet_MemoryDrawing + */ + public function setImageResource($value = null) { + $this->_imageResource = $value; + + if (!is_null($this->_imageResource)) { + // Get width/height + $this->_width = imagesx($this->_imageResource); + $this->_height = imagesy($this->_imageResource); + } + return $this; + } + + /** + * Get rendering function + * + * @return string + */ + public function getRenderingFunction() { + return $this->_renderingFunction; + } + + /** + * Set rendering function + * + * @param string $value + * @return PHPExcel_Worksheet_MemoryDrawing + */ + public function setRenderingFunction($value = PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT) { + $this->_renderingFunction = $value; + return $this; + } + + /** + * Get mime type + * + * @return string + */ + public function getMimeType() { + return $this->_mimeType; + } + + /** + * Set mime type + * + * @param string $value + * @return PHPExcel_Worksheet_MemoryDrawing + */ + public function setMimeType($value = PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT) { + $this->_mimeType = $value; + return $this; + } + + /** + * Get indexed filename (using image index) + * + * @return string + */ + public function getIndexedFilename() { + $extension = strtolower($this->getMimeType()); + $extension = explode('/', $extension); + $extension = $extension[1]; + + return $this->_uniqueName . $this->getImageIndex() . '.' . $extension; + } + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() { + return md5( + $this->_renderingFunction + . $this->_mimeType + . $this->_uniqueName + . parent::getHashCode() + . __CLASS__ + ); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/PageMargins.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/PageMargins.php new file mode 100755 index 0000000..7d31a5f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/PageMargins.php @@ -0,0 +1,220 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_PageMargins + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_PageMargins +{ + /** + * Left + * + * @var double + */ + private $_left = 0.7; + + /** + * Right + * + * @var double + */ + private $_right = 0.7; + + /** + * Top + * + * @var double + */ + private $_top = 0.75; + + /** + * Bottom + * + * @var double + */ + private $_bottom = 0.75; + + /** + * Header + * + * @var double + */ + private $_header = 0.3; + + /** + * Footer + * + * @var double + */ + private $_footer = 0.3; + + /** + * Create a new PHPExcel_Worksheet_PageMargins + */ + public function __construct() + { + } + + /** + * Get Left + * + * @return double + */ + public function getLeft() { + return $this->_left; + } + + /** + * Set Left + * + * @param double $pValue + * @return PHPExcel_Worksheet_PageMargins + */ + public function setLeft($pValue) { + $this->_left = $pValue; + return $this; + } + + /** + * Get Right + * + * @return double + */ + public function getRight() { + return $this->_right; + } + + /** + * Set Right + * + * @param double $pValue + * @return PHPExcel_Worksheet_PageMargins + */ + public function setRight($pValue) { + $this->_right = $pValue; + return $this; + } + + /** + * Get Top + * + * @return double + */ + public function getTop() { + return $this->_top; + } + + /** + * Set Top + * + * @param double $pValue + * @return PHPExcel_Worksheet_PageMargins + */ + public function setTop($pValue) { + $this->_top = $pValue; + return $this; + } + + /** + * Get Bottom + * + * @return double + */ + public function getBottom() { + return $this->_bottom; + } + + /** + * Set Bottom + * + * @param double $pValue + * @return PHPExcel_Worksheet_PageMargins + */ + public function setBottom($pValue) { + $this->_bottom = $pValue; + return $this; + } + + /** + * Get Header + * + * @return double + */ + public function getHeader() { + return $this->_header; + } + + /** + * Set Header + * + * @param double $pValue + * @return PHPExcel_Worksheet_PageMargins + */ + public function setHeader($pValue) { + $this->_header = $pValue; + return $this; + } + + /** + * Get Footer + * + * @return double + */ + public function getFooter() { + return $this->_footer; + } + + /** + * Set Footer + * + * @param double $pValue + * @return PHPExcel_Worksheet_PageMargins + */ + public function setFooter($pValue) { + $this->_footer = $pValue; + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/PageSetup.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/PageSetup.php new file mode 100755 index 0000000..693f1c6 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/PageSetup.php @@ -0,0 +1,798 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_PageSetup + * + * <code> + * Paper size taken from Office Open XML Part 4 - Markup Language Reference, page 1988: + * + * 1 = Letter paper (8.5 in. by 11 in.) + * 2 = Letter small paper (8.5 in. by 11 in.) + * 3 = Tabloid paper (11 in. by 17 in.) + * 4 = Ledger paper (17 in. by 11 in.) + * 5 = Legal paper (8.5 in. by 14 in.) + * 6 = Statement paper (5.5 in. by 8.5 in.) + * 7 = Executive paper (7.25 in. by 10.5 in.) + * 8 = A3 paper (297 mm by 420 mm) + * 9 = A4 paper (210 mm by 297 mm) + * 10 = A4 small paper (210 mm by 297 mm) + * 11 = A5 paper (148 mm by 210 mm) + * 12 = B4 paper (250 mm by 353 mm) + * 13 = B5 paper (176 mm by 250 mm) + * 14 = Folio paper (8.5 in. by 13 in.) + * 15 = Quarto paper (215 mm by 275 mm) + * 16 = Standard paper (10 in. by 14 in.) + * 17 = Standard paper (11 in. by 17 in.) + * 18 = Note paper (8.5 in. by 11 in.) + * 19 = #9 envelope (3.875 in. by 8.875 in.) + * 20 = #10 envelope (4.125 in. by 9.5 in.) + * 21 = #11 envelope (4.5 in. by 10.375 in.) + * 22 = #12 envelope (4.75 in. by 11 in.) + * 23 = #14 envelope (5 in. by 11.5 in.) + * 24 = C paper (17 in. by 22 in.) + * 25 = D paper (22 in. by 34 in.) + * 26 = E paper (34 in. by 44 in.) + * 27 = DL envelope (110 mm by 220 mm) + * 28 = C5 envelope (162 mm by 229 mm) + * 29 = C3 envelope (324 mm by 458 mm) + * 30 = C4 envelope (229 mm by 324 mm) + * 31 = C6 envelope (114 mm by 162 mm) + * 32 = C65 envelope (114 mm by 229 mm) + * 33 = B4 envelope (250 mm by 353 mm) + * 34 = B5 envelope (176 mm by 250 mm) + * 35 = B6 envelope (176 mm by 125 mm) + * 36 = Italy envelope (110 mm by 230 mm) + * 37 = Monarch envelope (3.875 in. by 7.5 in.). + * 38 = 6 3/4 envelope (3.625 in. by 6.5 in.) + * 39 = US standard fanfold (14.875 in. by 11 in.) + * 40 = German standard fanfold (8.5 in. by 12 in.) + * 41 = German legal fanfold (8.5 in. by 13 in.) + * 42 = ISO B4 (250 mm by 353 mm) + * 43 = Japanese double postcard (200 mm by 148 mm) + * 44 = Standard paper (9 in. by 11 in.) + * 45 = Standard paper (10 in. by 11 in.) + * 46 = Standard paper (15 in. by 11 in.) + * 47 = Invite envelope (220 mm by 220 mm) + * 50 = Letter extra paper (9.275 in. by 12 in.) + * 51 = Legal extra paper (9.275 in. by 15 in.) + * 52 = Tabloid extra paper (11.69 in. by 18 in.) + * 53 = A4 extra paper (236 mm by 322 mm) + * 54 = Letter transverse paper (8.275 in. by 11 in.) + * 55 = A4 transverse paper (210 mm by 297 mm) + * 56 = Letter extra transverse paper (9.275 in. by 12 in.) + * 57 = SuperA/SuperA/A4 paper (227 mm by 356 mm) + * 58 = SuperB/SuperB/A3 paper (305 mm by 487 mm) + * 59 = Letter plus paper (8.5 in. by 12.69 in.) + * 60 = A4 plus paper (210 mm by 330 mm) + * 61 = A5 transverse paper (148 mm by 210 mm) + * 62 = JIS B5 transverse paper (182 mm by 257 mm) + * 63 = A3 extra paper (322 mm by 445 mm) + * 64 = A5 extra paper (174 mm by 235 mm) + * 65 = ISO B5 extra paper (201 mm by 276 mm) + * 66 = A2 paper (420 mm by 594 mm) + * 67 = A3 transverse paper (297 mm by 420 mm) + * 68 = A3 extra transverse paper (322 mm by 445 mm) + * </code> + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_PageSetup +{ + /* Paper size */ + const PAPERSIZE_LETTER = 1; + const PAPERSIZE_LETTER_SMALL = 2; + const PAPERSIZE_TABLOID = 3; + const PAPERSIZE_LEDGER = 4; + const PAPERSIZE_LEGAL = 5; + const PAPERSIZE_STATEMENT = 6; + const PAPERSIZE_EXECUTIVE = 7; + const PAPERSIZE_A3 = 8; + const PAPERSIZE_A4 = 9; + const PAPERSIZE_A4_SMALL = 10; + const PAPERSIZE_A5 = 11; + const PAPERSIZE_B4 = 12; + const PAPERSIZE_B5 = 13; + const PAPERSIZE_FOLIO = 14; + const PAPERSIZE_QUARTO = 15; + const PAPERSIZE_STANDARD_1 = 16; + const PAPERSIZE_STANDARD_2 = 17; + const PAPERSIZE_NOTE = 18; + const PAPERSIZE_NO9_ENVELOPE = 19; + const PAPERSIZE_NO10_ENVELOPE = 20; + const PAPERSIZE_NO11_ENVELOPE = 21; + const PAPERSIZE_NO12_ENVELOPE = 22; + const PAPERSIZE_NO14_ENVELOPE = 23; + const PAPERSIZE_C = 24; + const PAPERSIZE_D = 25; + const PAPERSIZE_E = 26; + const PAPERSIZE_DL_ENVELOPE = 27; + const PAPERSIZE_C5_ENVELOPE = 28; + const PAPERSIZE_C3_ENVELOPE = 29; + const PAPERSIZE_C4_ENVELOPE = 30; + const PAPERSIZE_C6_ENVELOPE = 31; + const PAPERSIZE_C65_ENVELOPE = 32; + const PAPERSIZE_B4_ENVELOPE = 33; + const PAPERSIZE_B5_ENVELOPE = 34; + const PAPERSIZE_B6_ENVELOPE = 35; + const PAPERSIZE_ITALY_ENVELOPE = 36; + const PAPERSIZE_MONARCH_ENVELOPE = 37; + const PAPERSIZE_6_3_4_ENVELOPE = 38; + const PAPERSIZE_US_STANDARD_FANFOLD = 39; + const PAPERSIZE_GERMAN_STANDARD_FANFOLD = 40; + const PAPERSIZE_GERMAN_LEGAL_FANFOLD = 41; + const PAPERSIZE_ISO_B4 = 42; + const PAPERSIZE_JAPANESE_DOUBLE_POSTCARD = 43; + const PAPERSIZE_STANDARD_PAPER_1 = 44; + const PAPERSIZE_STANDARD_PAPER_2 = 45; + const PAPERSIZE_STANDARD_PAPER_3 = 46; + const PAPERSIZE_INVITE_ENVELOPE = 47; + const PAPERSIZE_LETTER_EXTRA_PAPER = 48; + const PAPERSIZE_LEGAL_EXTRA_PAPER = 49; + const PAPERSIZE_TABLOID_EXTRA_PAPER = 50; + const PAPERSIZE_A4_EXTRA_PAPER = 51; + const PAPERSIZE_LETTER_TRANSVERSE_PAPER = 52; + const PAPERSIZE_A4_TRANSVERSE_PAPER = 53; + const PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER = 54; + const PAPERSIZE_SUPERA_SUPERA_A4_PAPER = 55; + const PAPERSIZE_SUPERB_SUPERB_A3_PAPER = 56; + const PAPERSIZE_LETTER_PLUS_PAPER = 57; + const PAPERSIZE_A4_PLUS_PAPER = 58; + const PAPERSIZE_A5_TRANSVERSE_PAPER = 59; + const PAPERSIZE_JIS_B5_TRANSVERSE_PAPER = 60; + const PAPERSIZE_A3_EXTRA_PAPER = 61; + const PAPERSIZE_A5_EXTRA_PAPER = 62; + const PAPERSIZE_ISO_B5_EXTRA_PAPER = 63; + const PAPERSIZE_A2_PAPER = 64; + const PAPERSIZE_A3_TRANSVERSE_PAPER = 65; + const PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER = 66; + + /* Page orientation */ + const ORIENTATION_DEFAULT = 'default'; + const ORIENTATION_LANDSCAPE = 'landscape'; + const ORIENTATION_PORTRAIT = 'portrait'; + + /* Print Range Set Method */ + const SETPRINTRANGE_OVERWRITE = 'O'; + const SETPRINTRANGE_INSERT = 'I'; + + + /** + * Paper size + * + * @var int + */ + private $_paperSize = PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER; + + /** + * Orientation + * + * @var string + */ + private $_orientation = PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT; + + /** + * Scale (Print Scale) + * + * Print scaling. Valid values range from 10 to 400 + * This setting is overridden when fitToWidth and/or fitToHeight are in use + * + * @var int? + */ + private $_scale = 100; + + /** + * Fit To Page + * Whether scale or fitToWith / fitToHeight applies + * + * @var boolean + */ + private $_fitToPage = FALSE; + + /** + * Fit To Height + * Number of vertical pages to fit on + * + * @var int? + */ + private $_fitToHeight = 1; + + /** + * Fit To Width + * Number of horizontal pages to fit on + * + * @var int? + */ + private $_fitToWidth = 1; + + /** + * Columns to repeat at left + * + * @var array Containing start column and end column, empty array if option unset + */ + private $_columnsToRepeatAtLeft = array('', ''); + + /** + * Rows to repeat at top + * + * @var array Containing start row number and end row number, empty array if option unset + */ + private $_rowsToRepeatAtTop = array(0, 0); + + /** + * Center page horizontally + * + * @var boolean + */ + private $_horizontalCentered = FALSE; + + /** + * Center page vertically + * + * @var boolean + */ + private $_verticalCentered = FALSE; + + /** + * Print area + * + * @var string + */ + private $_printArea = NULL; + + /** + * First page number + * + * @var int + */ + private $_firstPageNumber = NULL; + + /** + * Create a new PHPExcel_Worksheet_PageSetup + */ + public function __construct() + { + } + + /** + * Get Paper Size + * + * @return int + */ + public function getPaperSize() { + return $this->_paperSize; + } + + /** + * Set Paper Size + * + * @param int $pValue + * @return PHPExcel_Worksheet_PageSetup + */ + public function setPaperSize($pValue = PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER) { + $this->_paperSize = $pValue; + return $this; + } + + /** + * Get Orientation + * + * @return string + */ + public function getOrientation() { + return $this->_orientation; + } + + /** + * Set Orientation + * + * @param string $pValue + * @return PHPExcel_Worksheet_PageSetup + */ + public function setOrientation($pValue = PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) { + $this->_orientation = $pValue; + return $this; + } + + /** + * Get Scale + * + * @return int? + */ + public function getScale() { + return $this->_scale; + } + + /** + * Set Scale + * + * Print scaling. Valid values range from 10 to 400 + * This setting is overridden when fitToWidth and/or fitToHeight are in use + * + * @param int? $pValue + * @param boolean $pUpdate Update fitToPage so scaling applies rather than fitToHeight / fitToWidth + * @return PHPExcel_Worksheet_PageSetup + * @throws Exception + */ + public function setScale($pValue = 100, $pUpdate = true) { + // Microsoft Office Excel 2007 only allows setting a scale between 10 and 400 via the user interface, + // but it is apparently still able to handle any scale >= 0, where 0 results in 100 + if (($pValue >= 0) || is_null($pValue)) { + $this->_scale = $pValue; + if ($pUpdate) { + $this->_fitToPage = false; + } + } else { + throw new Exception("Scale must not be negative"); + } + return $this; + } + + /** + * Get Fit To Page + * + * @return boolean + */ + public function getFitToPage() { + return $this->_fitToPage; + } + + /** + * Set Fit To Page + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_PageSetup + */ + public function setFitToPage($pValue = TRUE) { + $this->_fitToPage = $pValue; + return $this; + } + + /** + * Get Fit To Height + * + * @return int? + */ + public function getFitToHeight() { + return $this->_fitToHeight; + } + + /** + * Set Fit To Height + * + * @param int? $pValue + * @param boolean $pUpdate Update fitToPage so it applies rather than scaling + * @return PHPExcel_Worksheet_PageSetup + */ + public function setFitToHeight($pValue = 1, $pUpdate = TRUE) { + $this->_fitToHeight = $pValue; + if ($pUpdate) { + $this->_fitToPage = TRUE; + } + return $this; + } + + /** + * Get Fit To Width + * + * @return int? + */ + public function getFitToWidth() { + return $this->_fitToWidth; + } + + /** + * Set Fit To Width + * + * @param int? $pValue + * @param boolean $pUpdate Update fitToPage so it applies rather than scaling + * @return PHPExcel_Worksheet_PageSetup + */ + public function setFitToWidth($pValue = 1, $pUpdate = TRUE) { + $this->_fitToWidth = $pValue; + if ($pUpdate) { + $this->_fitToPage = TRUE; + } + return $this; + } + + /** + * Is Columns to repeat at left set? + * + * @return boolean + */ + public function isColumnsToRepeatAtLeftSet() { + if (is_array($this->_columnsToRepeatAtLeft)) { + if ($this->_columnsToRepeatAtLeft[0] != '' && $this->_columnsToRepeatAtLeft[1] != '') { + return true; + } + } + + return false; + } + + /** + * Get Columns to repeat at left + * + * @return array Containing start column and end column, empty array if option unset + */ + public function getColumnsToRepeatAtLeft() { + return $this->_columnsToRepeatAtLeft; + } + + /** + * Set Columns to repeat at left + * + * @param array $pValue Containing start column and end column, empty array if option unset + * @return PHPExcel_Worksheet_PageSetup + */ + public function setColumnsToRepeatAtLeft($pValue = null) { + if (is_array($pValue)) { + $this->_columnsToRepeatAtLeft = $pValue; + } + return $this; + } + + /** + * Set Columns to repeat at left by start and end + * + * @param string $pStart + * @param string $pEnd + * @return PHPExcel_Worksheet_PageSetup + */ + public function setColumnsToRepeatAtLeftByStartAndEnd($pStart = 'A', $pEnd = 'A') { + $this->_columnsToRepeatAtLeft = array($pStart, $pEnd); + return $this; + } + + /** + * Is Rows to repeat at top set? + * + * @return boolean + */ + public function isRowsToRepeatAtTopSet() { + if (is_array($this->_rowsToRepeatAtTop)) { + if ($this->_rowsToRepeatAtTop[0] != 0 && $this->_rowsToRepeatAtTop[1] != 0) { + return true; + } + } + + return false; + } + + /** + * Get Rows to repeat at top + * + * @return array Containing start column and end column, empty array if option unset + */ + public function getRowsToRepeatAtTop() { + return $this->_rowsToRepeatAtTop; + } + + /** + * Set Rows to repeat at top + * + * @param array $pValue Containing start column and end column, empty array if option unset + * @return PHPExcel_Worksheet_PageSetup + */ + public function setRowsToRepeatAtTop($pValue = null) { + if (is_array($pValue)) { + $this->_rowsToRepeatAtTop = $pValue; + } + return $this; + } + + /** + * Set Rows to repeat at top by start and end + * + * @param int $pStart + * @param int $pEnd + * @return PHPExcel_Worksheet_PageSetup + */ + public function setRowsToRepeatAtTopByStartAndEnd($pStart = 1, $pEnd = 1) { + $this->_rowsToRepeatAtTop = array($pStart, $pEnd); + return $this; + } + + /** + * Get center page horizontally + * + * @return bool + */ + public function getHorizontalCentered() { + return $this->_horizontalCentered; + } + + /** + * Set center page horizontally + * + * @param bool $value + * @return PHPExcel_Worksheet_PageSetup + */ + public function setHorizontalCentered($value = false) { + $this->_horizontalCentered = $value; + return $this; + } + + /** + * Get center page vertically + * + * @return bool + */ + public function getVerticalCentered() { + return $this->_verticalCentered; + } + + /** + * Set center page vertically + * + * @param bool $value + * @return PHPExcel_Worksheet_PageSetup + */ + public function setVerticalCentered($value = false) { + $this->_verticalCentered = $value; + return $this; + } + + /** + * Get print area + * + * @param int $index Identifier for a specific print area range if several ranges have been set + * Default behaviour, or a index value of 0, will return all ranges as a comma-separated string + * Otherwise, the specific range identified by the value of $index will be returned + * Print areas are numbered from 1 + * @throws Exception + * @return string + */ + public function getPrintArea($index = 0) { + if ($index == 0) { + return $this->_printArea; + } + $printAreas = explode(',',$this->_printArea); + if (isset($printAreas[$index-1])) { + return $printAreas[$index-1]; + } + throw new Exception("Requested Print Area does not exist"); + } + + /** + * Is print area set? + * + * @param int $index Identifier for a specific print area range if several ranges have been set + * Default behaviour, or an index value of 0, will identify whether any print range is set + * Otherwise, existence of the range identified by the value of $index will be returned + * Print areas are numbered from 1 + * @return boolean + */ + public function isPrintAreaSet($index = 0) { + if ($index == 0) { + return !is_null($this->_printArea); + } + $printAreas = explode(',',$this->_printArea); + return isset($printAreas[$index-1]); + } + + /** + * Clear a print area + * + * @param int $index Identifier for a specific print area range if several ranges have been set + * Default behaviour, or an index value of 0, will clear all print ranges that are set + * Otherwise, the range identified by the value of $index will be removed from the series + * Print areas are numbered from 1 + * @return PHPExcel_Worksheet_PageSetup + */ + public function clearPrintArea($index = 0) { + if ($index == 0) { + $this->_printArea = NULL; + } else { + $printAreas = explode(',',$this->_printArea); + if (isset($printAreas[$index-1])) { + unset($printAreas[$index-1]); + $this->_printArea = implode(',',$printAreas); + } + } + + return $this; + } + + /** + * Set print area. e.g. 'A1:D10' or 'A1:D10,G5:M20' + * + * @param string $value + * @param int $index Identifier for a specific print area range allowing several ranges to be set + * When the method is "O"verwrite, then a positive integer index will overwrite that indexed + * entry in the print areas list; a negative index value will identify which entry to + * overwrite working bacward through the print area to the list, with the last entry as -1. + * Specifying an index value of 0, will overwrite <b>all</b> existing print ranges. + * When the method is "I"nsert, then a positive index will insert after that indexed entry in + * the print areas list, while a negative index will insert before the indexed entry. + * Specifying an index value of 0, will always append the new print range at the end of the + * list. + * Print areas are numbered from 1 + * @param string $method Determines the method used when setting multiple print areas + * Default behaviour, or the "O" method, overwrites existing print area + * The "I" method, inserts the new print area before any specified index, or at the end of the list + * @return PHPExcel_Worksheet_PageSetup + * @throws Exception + */ + public function setPrintArea($value, $index = 0, $method = self::SETPRINTRANGE_OVERWRITE) { + if (strpos($value,'!') !== false) { + throw new Exception('Cell coordinate must not specify a worksheet.'); + } elseif (strpos($value,':') === false) { + throw new Exception('Cell coordinate must be a range of cells.'); + } elseif (strpos($value,'$') !== false) { + throw new Exception('Cell coordinate must not be absolute.'); + } + $value = strtoupper($value); + + if ($method == self::SETPRINTRANGE_OVERWRITE) { + if ($index == 0) { + $this->_printArea = $value; + } else { + $printAreas = explode(',',$this->_printArea); + if($index < 0) { + $index = count($printAreas) - abs($index) + 1; + } + if (($index <= 0) || ($index > count($printAreas))) { + throw new Exception('Invalid index for setting print range.'); + } + $printAreas[$index-1] = $value; + $this->_printArea = implode(',',$printAreas); + } + } elseif($method == self::SETPRINTRANGE_INSERT) { + if ($index == 0) { + $this->_printArea .= ($this->_printArea == '') ? $value : ','.$value; + } else { + $printAreas = explode(',',$this->_printArea); + if($index < 0) { + $index = abs($index) - 1; + } + if ($index > count($printAreas)) { + throw new Exception('Invalid index for setting print range.'); + } + $printAreas = array_merge(array_slice($printAreas,0,$index),array($value),array_slice($printAreas,$index)); + $this->_printArea = implode(',',$printAreas); + } + } else { + throw new Exception('Invalid method for setting print range.'); + } + + return $this; + } + + /** + * Add a new print area (e.g. 'A1:D10' or 'A1:D10,G5:M20') to the list of print areas + * + * @param string $value + * @param int $index Identifier for a specific print area range allowing several ranges to be set + * A positive index will insert after that indexed entry in the print areas list, while a + * negative index will insert before the indexed entry. + * Specifying an index value of 0, will always append the new print range at the end of the + * list. + * Print areas are numbered from 1 + * @return PHPExcel_Worksheet_PageSetup + * @throws Exception + */ + public function addPrintArea($value, $index = -1) { + return $this->setPrintArea($value, $index, self::SETPRINTRANGE_INSERT); + } + + /** + * Set print area + * + * @param int $column1 Column 1 + * @param int $row1 Row 1 + * @param int $column2 Column 2 + * @param int $row2 Row 2 + * @param int $index Identifier for a specific print area range allowing several ranges to be set + * When the method is "O"verwrite, then a positive integer index will overwrite that indexed + * entry in the print areas list; a negative index value will identify which entry to + * overwrite working bacward through the print area to the list, with the last entry as -1. + * Specifying an index value of 0, will overwrite <b>all</b> existing print ranges. + * When the method is "I"nsert, then a positive index will insert after that indexed entry in + * the print areas list, while a negative index will insert before the indexed entry. + * Specifying an index value of 0, will always append the new print range at the end of the + * list. + * Print areas are numbered from 1 + * @param string $method Determines the method used when setting multiple print areas + * Default behaviour, or the "O" method, overwrites existing print area + * The "I" method, inserts the new print area before any specified index, or at the end of the list + * @return PHPExcel_Worksheet_PageSetup + * @throws Exception + */ + public function setPrintAreaByColumnAndRow($column1, $row1, $column2, $row2, $index = 0, $method = self::SETPRINTRANGE_OVERWRITE) + { + return $this->setPrintArea(PHPExcel_Cell::stringFromColumnIndex($column1) . $row1 . ':' . PHPExcel_Cell::stringFromColumnIndex($column2) . $row2, $index, $method); + } + + /** + * Add a new print area to the list of print areas + * + * @param int $column1 Start Column for the print area + * @param int $row1 Start Row for the print area + * @param int $column2 End Column for the print area + * @param int $row2 End Row for the print area + * @param int $index Identifier for a specific print area range allowing several ranges to be set + * A positive index will insert after that indexed entry in the print areas list, while a + * negative index will insert before the indexed entry. + * Specifying an index value of 0, will always append the new print range at the end of the + * list. + * Print areas are numbered from 1 + * @return PHPExcel_Worksheet_PageSetup + * @throws Exception + */ + public function addPrintAreaByColumnAndRow($column1, $row1, $column2, $row2, $index = -1) + { + return $this->setPrintArea(PHPExcel_Cell::stringFromColumnIndex($column1) . $row1 . ':' . PHPExcel_Cell::stringFromColumnIndex($column2) . $row2, $index, self::SETPRINTRANGE_INSERT); + } + + /** + * Get first page number + * + * @return int + */ + public function getFirstPageNumber() { + return $this->_firstPageNumber; + } + + /** + * Set first page number + * + * @param int $value + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function setFirstPageNumber($value = null) { + $this->_firstPageNumber = $value; + return $this; + } + + /** + * Reset first page number + * + * @return PHPExcel_Worksheet_HeaderFooter + */ + public function resetFirstPageNumber() { + return $this->setFirstPageNumber(null); + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/Protection.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/Protection.php new file mode 100755 index 0000000..e7c3436 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/Protection.php @@ -0,0 +1,545 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_Protection + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_Protection +{ + /** + * Sheet + * + * @var boolean + */ + private $_sheet = false; + + /** + * Objects + * + * @var boolean + */ + private $_objects = false; + + /** + * Scenarios + * + * @var boolean + */ + private $_scenarios = false; + + /** + * Format cells + * + * @var boolean + */ + private $_formatCells = false; + + /** + * Format columns + * + * @var boolean + */ + private $_formatColumns = false; + + /** + * Format rows + * + * @var boolean + */ + private $_formatRows = false; + + /** + * Insert columns + * + * @var boolean + */ + private $_insertColumns = false; + + /** + * Insert rows + * + * @var boolean + */ + private $_insertRows = false; + + /** + * Insert hyperlinks + * + * @var boolean + */ + private $_insertHyperlinks = false; + + /** + * Delete columns + * + * @var boolean + */ + private $_deleteColumns = false; + + /** + * Delete rows + * + * @var boolean + */ + private $_deleteRows = false; + + /** + * Select locked cells + * + * @var boolean + */ + private $_selectLockedCells = false; + + /** + * Sort + * + * @var boolean + */ + private $_sort = false; + + /** + * AutoFilter + * + * @var boolean + */ + private $_autoFilter = false; + + /** + * Pivot tables + * + * @var boolean + */ + private $_pivotTables = false; + + /** + * Select unlocked cells + * + * @var boolean + */ + private $_selectUnlockedCells = false; + + /** + * Password + * + * @var string + */ + private $_password = ''; + + /** + * Create a new PHPExcel_Worksheet_Protection + */ + public function __construct() + { + } + + /** + * Is some sort of protection enabled? + * + * @return boolean + */ + function isProtectionEnabled() { + return $this->_sheet || + $this->_objects || + $this->_scenarios || + $this->_formatCells || + $this->_formatColumns || + $this->_formatRows || + $this->_insertColumns || + $this->_insertRows || + $this->_insertHyperlinks || + $this->_deleteColumns || + $this->_deleteRows || + $this->_selectLockedCells || + $this->_sort || + $this->_autoFilter || + $this->_pivotTables || + $this->_selectUnlockedCells; + } + + /** + * Get Sheet + * + * @return boolean + */ + function getSheet() { + return $this->_sheet; + } + + /** + * Set Sheet + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setSheet($pValue = false) { + $this->_sheet = $pValue; + return $this; + } + + /** + * Get Objects + * + * @return boolean + */ + function getObjects() { + return $this->_objects; + } + + /** + * Set Objects + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setObjects($pValue = false) { + $this->_objects = $pValue; + return $this; + } + + /** + * Get Scenarios + * + * @return boolean + */ + function getScenarios() { + return $this->_scenarios; + } + + /** + * Set Scenarios + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setScenarios($pValue = false) { + $this->_scenarios = $pValue; + return $this; + } + + /** + * Get FormatCells + * + * @return boolean + */ + function getFormatCells() { + return $this->_formatCells; + } + + /** + * Set FormatCells + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setFormatCells($pValue = false) { + $this->_formatCells = $pValue; + return $this; + } + + /** + * Get FormatColumns + * + * @return boolean + */ + function getFormatColumns() { + return $this->_formatColumns; + } + + /** + * Set FormatColumns + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setFormatColumns($pValue = false) { + $this->_formatColumns = $pValue; + return $this; + } + + /** + * Get FormatRows + * + * @return boolean + */ + function getFormatRows() { + return $this->_formatRows; + } + + /** + * Set FormatRows + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setFormatRows($pValue = false) { + $this->_formatRows = $pValue; + return $this; + } + + /** + * Get InsertColumns + * + * @return boolean + */ + function getInsertColumns() { + return $this->_insertColumns; + } + + /** + * Set InsertColumns + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setInsertColumns($pValue = false) { + $this->_insertColumns = $pValue; + return $this; + } + + /** + * Get InsertRows + * + * @return boolean + */ + function getInsertRows() { + return $this->_insertRows; + } + + /** + * Set InsertRows + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setInsertRows($pValue = false) { + $this->_insertRows = $pValue; + return $this; + } + + /** + * Get InsertHyperlinks + * + * @return boolean + */ + function getInsertHyperlinks() { + return $this->_insertHyperlinks; + } + + /** + * Set InsertHyperlinks + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setInsertHyperlinks($pValue = false) { + $this->_insertHyperlinks = $pValue; + return $this; + } + + /** + * Get DeleteColumns + * + * @return boolean + */ + function getDeleteColumns() { + return $this->_deleteColumns; + } + + /** + * Set DeleteColumns + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setDeleteColumns($pValue = false) { + $this->_deleteColumns = $pValue; + return $this; + } + + /** + * Get DeleteRows + * + * @return boolean + */ + function getDeleteRows() { + return $this->_deleteRows; + } + + /** + * Set DeleteRows + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setDeleteRows($pValue = false) { + $this->_deleteRows = $pValue; + return $this; + } + + /** + * Get SelectLockedCells + * + * @return boolean + */ + function getSelectLockedCells() { + return $this->_selectLockedCells; + } + + /** + * Set SelectLockedCells + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setSelectLockedCells($pValue = false) { + $this->_selectLockedCells = $pValue; + return $this; + } + + /** + * Get Sort + * + * @return boolean + */ + function getSort() { + return $this->_sort; + } + + /** + * Set Sort + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setSort($pValue = false) { + $this->_sort = $pValue; + return $this; + } + + /** + * Get AutoFilter + * + * @return boolean + */ + function getAutoFilter() { + return $this->_autoFilter; + } + + /** + * Set AutoFilter + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setAutoFilter($pValue = false) { + $this->_autoFilter = $pValue; + return $this; + } + + /** + * Get PivotTables + * + * @return boolean + */ + function getPivotTables() { + return $this->_pivotTables; + } + + /** + * Set PivotTables + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setPivotTables($pValue = false) { + $this->_pivotTables = $pValue; + return $this; + } + + /** + * Get SelectUnlockedCells + * + * @return boolean + */ + function getSelectUnlockedCells() { + return $this->_selectUnlockedCells; + } + + /** + * Set SelectUnlockedCells + * + * @param boolean $pValue + * @return PHPExcel_Worksheet_Protection + */ + function setSelectUnlockedCells($pValue = false) { + $this->_selectUnlockedCells = $pValue; + return $this; + } + + /** + * Get Password (hashed) + * + * @return string + */ + function getPassword() { + return $this->_password; + } + + /** + * Set Password + * + * @param string $pValue + * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true + * @return PHPExcel_Worksheet_Protection + */ + function setPassword($pValue = '', $pAlreadyHashed = false) { + if (!$pAlreadyHashed) { + $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue); + } + $this->_password = $pValue; + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/Row.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/Row.php new file mode 100755 index 0000000..ba9d853 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/Row.php @@ -0,0 +1,90 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_Row + * + * Represents a row in PHPExcel_Worksheet, used by PHPExcel_Worksheet_RowIterator + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_Row +{ + /** + * PHPExcel_Worksheet + * + * @var PHPExcel_Worksheet + */ + private $_parent; + + /** + * Row index + * + * @var int + */ + private $_rowIndex = 0; + + /** + * Create a new row + * + * @param PHPExcel_Worksheet $parent + * @param int $rowIndex + */ + public function __construct(PHPExcel_Worksheet $parent = null, $rowIndex = 1) { + // Set parent and row index + $this->_parent = $parent; + $this->_rowIndex = $rowIndex; + } + + /** + * Destructor + */ + public function __destruct() { + unset($this->_parent); + } + + /** + * Get row index + * + * @return int + */ + public function getRowIndex() { + return $this->_rowIndex; + } + + /** + * Get cell iterator + * + * @return PHPExcel_Worksheet_CellIterator + */ + public function getCellIterator() { + return new PHPExcel_Worksheet_CellIterator($this->_parent, $this->_rowIndex); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/RowDimension.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/RowDimension.php new file mode 100755 index 0000000..7bacabd --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/RowDimension.php @@ -0,0 +1,265 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_RowDimension + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_RowDimension +{ + /** + * Row index + * + * @var int + */ + private $_rowIndex; + + /** + * Row height (in pt) + * + * When this is set to a negative value, the row height should be ignored by IWriter + * + * @var double + */ + private $_rowHeight = -1; + + /** + * ZeroHeight for Row? + * + * @var bool + */ + private $_zeroHeight = false; + + /** + * Visible? + * + * @var bool + */ + private $_visible = true; + + /** + * Outline level + * + * @var int + */ + private $_outlineLevel = 0; + + /** + * Collapsed + * + * @var bool + */ + private $_collapsed = false; + + /** + * Index to cellXf. Null value means row has no explicit cellXf format. + * + * @var int|null + */ + private $_xfIndex; + + /** + * Create a new PHPExcel_Worksheet_RowDimension + * + * @param int $pIndex Numeric row index + */ + public function __construct($pIndex = 0) + { + // Initialise values + $this->_rowIndex = $pIndex; + + // set row dimension as unformatted by default + $this->_xfIndex = null; + } + + /** + * Get Row Index + * + * @return int + */ + public function getRowIndex() { + return $this->_rowIndex; + } + + /** + * Set Row Index + * + * @param int $pValue + * @return PHPExcel_Worksheet_RowDimension + */ + public function setRowIndex($pValue) { + $this->_rowIndex = $pValue; + return $this; + } + + /** + * Get Row Height + * + * @return double + */ + public function getRowHeight() { + return $this->_rowHeight; + } + + /** + * Set Row Height + * + * @param double $pValue + * @return PHPExcel_Worksheet_RowDimension + */ + public function setRowHeight($pValue = -1) { + $this->_rowHeight = $pValue; + return $this; + } + + /** + * Get ZeroHeight + * + * @return bool + */ + public function getzeroHeight() { + return $this->_zeroHeight; + } + + /** + * Set ZeroHeight + * + * @param bool $pValue + * @return PHPExcel_Worksheet_RowDimension + */ + public function setzeroHeight($pValue = false) { + $this->_zeroHeight = $pValue; + return $this; + } + + /** + * Get Visible + * + * @return bool + */ + public function getVisible() { + return $this->_visible; + } + + /** + * Set Visible + * + * @param bool $pValue + * @return PHPExcel_Worksheet_RowDimension + */ + public function setVisible($pValue = true) { + $this->_visible = $pValue; + return $this; + } + + /** + * Get Outline Level + * + * @return int + */ + public function getOutlineLevel() { + return $this->_outlineLevel; + } + + /** + * Set Outline Level + * + * Value must be between 0 and 7 + * + * @param int $pValue + * @throws Exception + * @return PHPExcel_Worksheet_RowDimension + */ + public function setOutlineLevel($pValue) { + if ($pValue < 0 || $pValue > 7) { + throw new Exception("Outline level must range between 0 and 7."); + } + + $this->_outlineLevel = $pValue; + return $this; + } + + /** + * Get Collapsed + * + * @return bool + */ + public function getCollapsed() { + return $this->_collapsed; + } + + /** + * Set Collapsed + * + * @param bool $pValue + * @return PHPExcel_Worksheet_RowDimension + */ + public function setCollapsed($pValue = true) { + $this->_collapsed = $pValue; + return $this; + } + + /** + * Get index to cellXf + * + * @return int + */ + public function getXfIndex() + { + return $this->_xfIndex; + } + + /** + * Set index to cellXf + * + * @param int $pValue + * @return PHPExcel_Worksheet_RowDimension + */ + public function setXfIndex($pValue = 0) + { + $this->_xfIndex = $pValue; + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/RowIterator.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/RowIterator.php new file mode 100755 index 0000000..c8e832e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/RowIterator.php @@ -0,0 +1,148 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_RowIterator + * + * Used to iterate rows in a PHPExcel_Worksheet + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_RowIterator implements Iterator +{ + /** + * PHPExcel_Worksheet to iterate + * + * @var PHPExcel_Worksheet + */ + private $_subject; + + /** + * Current iterator position + * + * @var int + */ + private $_position = 1; + + /** + * Start position + * + * @var int + */ + private $_startRow = 1; + + + /** + * Create a new row iterator + * + * @param PHPExcel_Worksheet $subject The worksheet to iterate over + * @param integer $startRow The row number at which to start iterating + */ + public function __construct(PHPExcel_Worksheet $subject = null, $startRow = 1) { + // Set subject + $this->_subject = $subject; + $this->resetStart($startRow); + } + + /** + * Destructor + */ + public function __destruct() { + unset($this->_subject); + } + + /** + * (Re)Set the start row and the current row pointer + * + * @param integer $startRow The row number at which to start iterating + */ + public function resetStart($startRow = 1) { + $this->_startRow = $startRow; + $this->seek($startRow); + } + + /** + * Set the row pointer to the selected row + * + * @param integer $row The row number to set the current pointer at + */ + public function seek($row = 1) { + $this->_position = $row; + } + + /** + * Rewind the iterator to the starting row + */ + public function rewind() { + $this->_position = $this->_startRow; + } + + /** + * Return the current row in this worksheet + * + * @return PHPExcel_Worksheet_Row + */ + public function current() { + return new PHPExcel_Worksheet_Row($this->_subject, $this->_position); + } + + /** + * Return the current iterator key + * + * @return int + */ + public function key() { + return $this->_position; + } + + /** + * Set the iterator to its next value + */ + public function next() { + ++$this->_position; + } + + /** + * Set the iterator to its previous value + */ + public function prev() { + if ($this->_position > 1) + --$this->_position; + } + + /** + * Indicate if more rows exist in the worksheet + * + * @return boolean + */ + public function valid() { + return $this->_position <= $this->_subject->getHighestRow(); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Worksheet/SheetView.php b/plugins/excel_reader/Classes/PHPExcel/Worksheet/SheetView.php new file mode 100755 index 0000000..bdaf323 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Worksheet/SheetView.php @@ -0,0 +1,188 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Worksheet_SheetView + * + * @category PHPExcel + * @package PHPExcel_Worksheet + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Worksheet_SheetView +{ + + /* Sheet View types */ + const SHEETVIEW_NORMAL = 'normal'; + const SHEETVIEW_PAGE_LAYOUT = 'pageLayout'; + const SHEETVIEW_PAGE_BREAK_PREVIEW = 'pageBreakPreview'; + + private static $_sheetViewTypes = array( + self::SHEETVIEW_NORMAL, + self::SHEETVIEW_PAGE_LAYOUT, + self::SHEETVIEW_PAGE_BREAK_PREVIEW, + ); + + /** + * ZoomScale + * + * Valid values range from 10 to 400. + * + * @var int + */ + private $_zoomScale = 100; + + /** + * ZoomScaleNormal + * + * Valid values range from 10 to 400. + * + * @var int + */ + private $_zoomScaleNormal = 100; + + /** + * View + * + * Valid values range from 10 to 400. + * + * @var string + */ + private $_sheetviewType = self::SHEETVIEW_NORMAL; + + /** + * Create a new PHPExcel_Worksheet_SheetView + */ + public function __construct() + { + } + + /** + * Get ZoomScale + * + * @return int + */ + public function getZoomScale() { + return $this->_zoomScale; + } + + /** + * Set ZoomScale + * + * Valid values range from 10 to 400. + * + * @param int $pValue + * @throws Exception + * @return PHPExcel_Worksheet_SheetView + */ + public function setZoomScale($pValue = 100) { + // Microsoft Office Excel 2007 only allows setting a scale between 10 and 400 via the user interface, + // but it is apparently still able to handle any scale >= 1 + if (($pValue >= 1) || is_null($pValue)) { + $this->_zoomScale = $pValue; + } else { + throw new Exception("Scale must be greater than or equal to 1."); + } + return $this; + } + + /** + * Get ZoomScaleNormal + * + * @return int + */ + public function getZoomScaleNormal() { + return $this->_zoomScaleNormal; + } + + /** + * Set ZoomScale + * + * Valid values range from 10 to 400. + * + * @param int $pValue + * @throws Exception + * @return PHPExcel_Worksheet_SheetView + */ + public function setZoomScaleNormal($pValue = 100) { + if (($pValue >= 1) || is_null($pValue)) { + $this->_zoomScaleNormal = $pValue; + } else { + throw new Exception("Scale must be greater than or equal to 1."); + } + return $this; + } + + /** + * Get View + * + * @return string + */ + public function getView() { + return $this->_sheetviewType; + } + + /** + * Set View + * + * Valid values are + * 'normal' self::SHEETVIEW_NORMAL + * 'pageLayout' self::SHEETVIEW_PAGE_LAYOUT + * 'pageBreakPreview' self::SHEETVIEW_PAGE_BREAK_PREVIEW + * + * @param string $pValue + * @throws Exception + * @return PHPExcel_Worksheet_SheetView + */ + public function setView($pValue = NULL) { + // MS Excel 2007 allows setting the view to 'normal', 'pageLayout' or 'pageBreakPreview' + // via the user interface + if ($pValue === NULL) + $pValue = self::SHEETVIEW_NORMAL; + if (in_array($pValue, self::$_sheetViewTypes)) { + $this->_sheetviewType = $pValue; + } else { + throw new Exception("Invalid sheetview layout type."); + } + + return $this; + } + + /** + * Implement PHP __clone to create a deep clone, not just a shallow copy. + */ + public function __clone() { + $vars = get_object_vars($this); + foreach ($vars as $key => $value) { + if (is_object($value)) { + $this->$key = clone $value; + } else { + $this->$key = $value; + } + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/WorksheetIterator.php b/plugins/excel_reader/Classes/PHPExcel/WorksheetIterator.php new file mode 100755 index 0000000..9eff538 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/WorksheetIterator.php @@ -0,0 +1,111 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_WorksheetIterator + * + * Used to iterate worksheets in PHPExcel + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_WorksheetIterator implements Iterator +{ + /** + * Spreadsheet to iterate + * + * @var PHPExcel + */ + private $_subject; + + /** + * Current iterator position + * + * @var int + */ + private $_position = 0; + + /** + * Create a new worksheet iterator + * + * @param PHPExcel $subject + */ + public function __construct(PHPExcel $subject = null) { + // Set subject + $this->_subject = $subject; + } + + /** + * Destructor + */ + public function __destruct() { + unset($this->_subject); + } + + /** + * Rewind iterator + */ + public function rewind() { + $this->_position = 0; + } + + /** + * Current PHPExcel_Worksheet + * + * @return PHPExcel_Worksheet + */ + public function current() { + return $this->_subject->getSheet($this->_position); + } + + /** + * Current key + * + * @return int + */ + public function key() { + return $this->_position; + } + + /** + * Next value + */ + public function next() { + ++$this->_position; + } + + /** + * More PHPExcel_Worksheet instances available? + * + * @return boolean + */ + public function valid() { + return $this->_position < $this->_subject->getSheetCount(); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/CSV.php b/plugins/excel_reader/Classes/PHPExcel/Writer/CSV.php new file mode 100755 index 0000000..11a399e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/CSV.php @@ -0,0 +1,339 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_CSV + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_CSV implements PHPExcel_Writer_IWriter { + /** + * PHPExcel object + * + * @var PHPExcel + */ + private $_phpExcel; + + /** + * Delimiter + * + * @var string + */ + private $_delimiter = ','; + + /** + * Enclosure + * + * @var string + */ + private $_enclosure = '"'; + + /** + * Line ending + * + * @var string + */ + private $_lineEnding = PHP_EOL; + + /** + * Sheet index to write + * + * @var int + */ + private $_sheetIndex = 0; + + /** + * Pre-calculate formulas + * + * @var boolean + */ + private $_preCalculateFormulas = true; + + /** + * Whether to write a BOM (for UTF8). + * + * @var boolean + */ + private $_useBOM = false; + + /** + * Whether to write a fully Excel compatible CSV file. + * + * @var boolean + */ + private $_excelCompatibility = false; + + /** + * Create a new PHPExcel_Writer_CSV + * + * @param PHPExcel $phpExcel PHPExcel object + */ + public function __construct(PHPExcel $phpExcel) { + $this->_phpExcel = $phpExcel; + } + + /** + * Save PHPExcel to file + * + * @param string $pFilename + * @throws Exception + */ + public function save($pFilename = null) { + // Fetch sheet + $sheet = $this->_phpExcel->getSheet($this->_sheetIndex); + + $saveDebugLog = PHPExcel_Calculation::getInstance()->writeDebugLog; + PHPExcel_Calculation::getInstance()->writeDebugLog = false; + $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); + PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); + + // Open file + $fileHandle = fopen($pFilename, 'wb+'); + if ($fileHandle === false) { + throw new Exception("Could not open file $pFilename for writing."); + } + + if ($this->_excelCompatibility) { + // Write the UTF-16LE BOM code + fwrite($fileHandle, "\xFF\xFE"); // Excel uses UTF-16LE encoding + $this->setEnclosure(); // Default enclosure is " + $this->setDelimiter("\t"); // Excel delimiter is a TAB + } elseif ($this->_useBOM) { + // Write the UTF-8 BOM code + fwrite($fileHandle, "\xEF\xBB\xBF"); + } + + // Identify the range that we need to extract from the worksheet + $maxCol = $sheet->getHighestColumn(); + $maxRow = $sheet->getHighestRow(); + + // Write rows to file + for($row = 1; $row <= $maxRow; ++$row) { + // Convert the row to an array... + $cellsArray = $sheet->rangeToArray('A'.$row.':'.$maxCol.$row,'', $this->_preCalculateFormulas); + // ... and write to the file + $this->_writeLine($fileHandle, $cellsArray[0]); + } + + // Close file + fclose($fileHandle); + + PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType); + PHPExcel_Calculation::getInstance()->writeDebugLog = $saveDebugLog; + } + + /** + * Get delimiter + * + * @return string + */ + public function getDelimiter() { + return $this->_delimiter; + } + + /** + * Set delimiter + * + * @param string $pValue Delimiter, defaults to , + * @return PHPExcel_Writer_CSV + */ + public function setDelimiter($pValue = ',') { + $this->_delimiter = $pValue; + return $this; + } + + /** + * Get enclosure + * + * @return string + */ + public function getEnclosure() { + return $this->_enclosure; + } + + /** + * Set enclosure + * + * @param string $pValue Enclosure, defaults to " + * @return PHPExcel_Writer_CSV + */ + public function setEnclosure($pValue = '"') { + if ($pValue == '') { + $pValue = null; + } + $this->_enclosure = $pValue; + return $this; + } + + /** + * Get line ending + * + * @return string + */ + public function getLineEnding() { + return $this->_lineEnding; + } + + /** + * Set line ending + * + * @param string $pValue Line ending, defaults to OS line ending (PHP_EOL) + * @return PHPExcel_Writer_CSV + */ + public function setLineEnding($pValue = PHP_EOL) { + $this->_lineEnding = $pValue; + return $this; + } + + /** + * Get whether BOM should be used + * + * @return boolean + */ + public function getUseBOM() { + return $this->_useBOM; + } + + /** + * Set whether BOM should be used + * + * @param boolean $pValue Use UTF-8 byte-order mark? Defaults to false + * @return PHPExcel_Writer_CSV + */ + public function setUseBOM($pValue = false) { + $this->_useBOM = $pValue; + return $this; + } + + /** + * Get whether the file should be saved with full Excel Compatibility + * + * @return boolean + */ + public function getExcelCompatibility() { + return $this->_excelCompatibility; + } + + /** + * Set whether the file should be saved with full Excel Compatibility + * + * @param boolean $pValue Set the file to be written as a fully Excel compatible csv file + * Note that this overrides other settings such as useBOM, enclosure and delimiter + * @return PHPExcel_Writer_CSV + */ + public function setExcelCompatibility($pValue = false) { + $this->_excelCompatibility = $pValue; + return $this; + } + + /** + * Get sheet index + * + * @return int + */ + public function getSheetIndex() { + return $this->_sheetIndex; + } + + /** + * Set sheet index + * + * @param int $pValue Sheet index + * @return PHPExcel_Writer_CSV + */ + public function setSheetIndex($pValue = 0) { + $this->_sheetIndex = $pValue; + return $this; + } + + /** + * Write line to CSV file + * + * @param mixed $pFileHandle PHP filehandle + * @param array $pValues Array containing values in a row + * @throws Exception + */ + private function _writeLine($pFileHandle = null, $pValues = null) { + if (is_array($pValues)) { + // No leading delimiter + $writeDelimiter = false; + + // Build the line + $line = ''; + + foreach ($pValues as $element) { + // Escape enclosures + $element = str_replace($this->_enclosure, $this->_enclosure . $this->_enclosure, $element); + + // Add delimiter + if ($writeDelimiter) { + $line .= $this->_delimiter; + } else { + $writeDelimiter = true; + } + + // Add enclosed string + $line .= $this->_enclosure . $element . $this->_enclosure; + } + + // Add line ending + $line .= $this->_lineEnding; + + // Write to file + if ($this->_excelCompatibility) { + fwrite($pFileHandle, mb_convert_encoding($line,"UTF-16LE","UTF-8")); + } else { + fwrite($pFileHandle, $line); + } + } else { + throw new Exception("Invalid data row passed to CSV writer."); + } + } + + /** + * Get Pre-Calculate Formulas + * + * @return boolean + */ + public function getPreCalculateFormulas() { + return $this->_preCalculateFormulas; + } + + /** + * Set Pre-Calculate Formulas + * + * @param boolean $pValue Pre-Calculate Formulas? + * @return PHPExcel_Writer_CSV + */ + public function setPreCalculateFormulas($pValue = true) { + $this->_preCalculateFormulas = $pValue; + return $this; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007.php new file mode 100755 index 0000000..6a1b988 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007.php @@ -0,0 +1,583 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007 + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007 implements PHPExcel_Writer_IWriter +{ + /** + * Write charts that are defined in the workbook? + * Identifies whether the Writer should write definitions for any charts that exist in the PHPExcel object; + * + * @var boolean + */ + private $_includeCharts = false; + + /** + * Pre-calculate formulas + * + * @var boolean + */ + private $_preCalculateFormulas = true; + + /** + * Office2003 compatibility + * + * @var boolean + */ + private $_office2003compatibility = false; + + /** + * Private writer parts + * + * @var PHPExcel_Writer_Excel2007_WriterPart[] + */ + private $_writerParts = array(); + + /** + * Private PHPExcel + * + * @var PHPExcel + */ + private $_spreadSheet; + + /** + * Private string table + * + * @var string[] + */ + private $_stringTable = array(); + + /** + * Private unique PHPExcel_Style_Conditional HashTable + * + * @var PHPExcel_HashTable + */ + private $_stylesConditionalHashTable; + + /** + * Private unique PHPExcel_Style_Fill HashTable + * + * @var PHPExcel_HashTable + */ + private $_fillHashTable; + + /** + * Private unique PHPExcel_Style_Font HashTable + * + * @var PHPExcel_HashTable + */ + private $_fontHashTable; + + /** + * Private unique PHPExcel_Style_Borders HashTable + * + * @var PHPExcel_HashTable + */ + private $_bordersHashTable ; + + /** + * Private unique PHPExcel_Style_NumberFormat HashTable + * + * @var PHPExcel_HashTable + */ + private $_numFmtHashTable; + + /** + * Private unique PHPExcel_Worksheet_BaseDrawing HashTable + * + * @var PHPExcel_HashTable + */ + private $_drawingHashTable; + + /** + * Use disk caching where possible? + * + * @var boolean + */ + private $_useDiskCaching = false; + + /** + * Disk caching directory + * + * @var string + */ + private $_diskCachingDirectory = './'; + + /** + * Create a new PHPExcel_Writer_Excel2007 + * + * @param PHPExcel $pPHPExcel + */ + public function __construct(PHPExcel $pPHPExcel = null) + { + // Assign PHPExcel + $this->setPHPExcel($pPHPExcel); + + $writerPartsArray = array( 'stringtable' => 'PHPExcel_Writer_Excel2007_StringTable', + 'contenttypes' => 'PHPExcel_Writer_Excel2007_ContentTypes', + 'docprops' => 'PHPExcel_Writer_Excel2007_DocProps', + 'rels' => 'PHPExcel_Writer_Excel2007_Rels', + 'theme' => 'PHPExcel_Writer_Excel2007_Theme', + 'style' => 'PHPExcel_Writer_Excel2007_Style', + 'workbook' => 'PHPExcel_Writer_Excel2007_Workbook', + 'worksheet' => 'PHPExcel_Writer_Excel2007_Worksheet', + 'drawing' => 'PHPExcel_Writer_Excel2007_Drawing', + 'comments' => 'PHPExcel_Writer_Excel2007_Comments', + 'chart' => 'PHPExcel_Writer_Excel2007_Chart', + ); + + // Initialise writer parts + // and Assign their parent IWriters + foreach ($writerPartsArray as $writer => $class) { + $this->_writerParts[$writer] = new $class($this); + } + + $hashTablesArray = array( '_stylesConditionalHashTable', '_fillHashTable', '_fontHashTable', + '_bordersHashTable', '_numFmtHashTable', '_drawingHashTable' + ); + + // Set HashTable variables + foreach ($hashTablesArray as $tableName) { + $this->$tableName = new PHPExcel_HashTable(); + } + } + + /** + * Get writer part + * + * @param string $pPartName Writer part name + * @return PHPExcel_Writer_Excel2007_WriterPart + */ + public function getWriterPart($pPartName = '') { + if ($pPartName != '' && isset($this->_writerParts[strtolower($pPartName)])) { + return $this->_writerParts[strtolower($pPartName)]; + } else { + return null; + } + } + + /** + * Save PHPExcel to file + * + * @param string $pFilename + * @throws Exception + */ + public function save($pFilename = null) + { + if ($this->_spreadSheet !== NULL) { + // garbage collect + $this->_spreadSheet->garbageCollect(); + + // If $pFilename is php://output or php://stdout, make it a temporary file... + $originalFilename = $pFilename; + if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') { + $pFilename = @tempnam(PHPExcel_Shared_File::sys_get_temp_dir(), 'phpxltmp'); + if ($pFilename == '') { + $pFilename = $originalFilename; + } + } + + $saveDebugLog = PHPExcel_Calculation::getInstance()->writeDebugLog; + PHPExcel_Calculation::getInstance()->writeDebugLog = false; + $saveDateReturnType = PHPExcel_Calculation_Functions::getReturnDateType(); + PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL); + + // Create string lookup table + $this->_stringTable = array(); + for ($i = 0; $i < $this->_spreadSheet->getSheetCount(); ++$i) { + $this->_stringTable = $this->getWriterPart('StringTable')->createStringTable($this->_spreadSheet->getSheet($i), $this->_stringTable); + } + + // Create styles dictionaries + $this->_stylesConditionalHashTable->addFromSource( $this->getWriterPart('Style')->allConditionalStyles($this->_spreadSheet) ); + $this->_fillHashTable->addFromSource( $this->getWriterPart('Style')->allFills($this->_spreadSheet) ); + $this->_fontHashTable->addFromSource( $this->getWriterPart('Style')->allFonts($this->_spreadSheet) ); + $this->_bordersHashTable->addFromSource( $this->getWriterPart('Style')->allBorders($this->_spreadSheet) ); + $this->_numFmtHashTable->addFromSource( $this->getWriterPart('Style')->allNumberFormats($this->_spreadSheet) ); + + // Create drawing dictionary + $this->_drawingHashTable->addFromSource( $this->getWriterPart('Drawing')->allDrawings($this->_spreadSheet) ); + + // Create new ZIP file and open it for writing + $zipClass = PHPExcel_Settings::getZipClass(); + $objZip = new $zipClass(); + + // Retrieve OVERWRITE and CREATE constants from the instantiated zip class + // This method of accessing constant values from a dynamic class should work with all appropriate versions of PHP + $ro = new ReflectionObject($objZip); + $zipOverWrite = $ro->getConstant('OVERWRITE'); + $zipCreate = $ro->getConstant('CREATE'); + + if (file_exists($pFilename)) { + unlink($pFilename); + } + // Try opening the ZIP file + if ($objZip->open($pFilename, $zipOverWrite) !== true) { + if ($objZip->open($pFilename, $zipCreate) !== true) { + throw new Exception("Could not open " . $pFilename . " for writing."); + } + } + + // Add [Content_Types].xml to ZIP file + $objZip->addFromString('[Content_Types].xml', $this->getWriterPart('ContentTypes')->writeContentTypes($this->_spreadSheet, $this->_includeCharts)); + + // Add relationships to ZIP file + $objZip->addFromString('_rels/.rels', $this->getWriterPart('Rels')->writeRelationships($this->_spreadSheet)); + $objZip->addFromString('xl/_rels/workbook.xml.rels', $this->getWriterPart('Rels')->writeWorkbookRelationships($this->_spreadSheet)); + + // Add document properties to ZIP file + $objZip->addFromString('docProps/app.xml', $this->getWriterPart('DocProps')->writeDocPropsApp($this->_spreadSheet)); + $objZip->addFromString('docProps/core.xml', $this->getWriterPart('DocProps')->writeDocPropsCore($this->_spreadSheet)); + $customPropertiesPart = $this->getWriterPart('DocProps')->writeDocPropsCustom($this->_spreadSheet); + if ($customPropertiesPart !== NULL) { + $objZip->addFromString('docProps/custom.xml', $customPropertiesPart); + } + + // Add theme to ZIP file + $objZip->addFromString('xl/theme/theme1.xml', $this->getWriterPart('Theme')->writeTheme($this->_spreadSheet)); + + // Add string table to ZIP file + $objZip->addFromString('xl/sharedStrings.xml', $this->getWriterPart('StringTable')->writeStringTable($this->_stringTable)); + + // Add styles to ZIP file + $objZip->addFromString('xl/styles.xml', $this->getWriterPart('Style')->writeStyles($this->_spreadSheet)); + + // Add workbook to ZIP file + $objZip->addFromString('xl/workbook.xml', $this->getWriterPart('Workbook')->writeWorkbook($this->_spreadSheet, $this->_preCalculateFormulas)); + + $chartCount = 0; + // Add worksheets + for ($i = 0; $i < $this->_spreadSheet->getSheetCount(); ++$i) { + $objZip->addFromString('xl/worksheets/sheet' . ($i + 1) . '.xml', $this->getWriterPart('Worksheet')->writeWorksheet($this->_spreadSheet->getSheet($i), $this->_stringTable, $this->_includeCharts)); + if ($this->_includeCharts) { + $charts = $this->_spreadSheet->getSheet($i)->getChartCollection(); + if (count($charts) > 0) { + foreach($charts as $chart) { + $objZip->addFromString('xl/charts/chart' . ($chartCount + 1) . '.xml', $this->getWriterPart('Chart')->writeChart($chart)); + $chartCount++; + } + } + } + } + + $chartRef1 = $chartRef2 = 0; + // Add worksheet relationships (drawings, ...) + for ($i = 0; $i < $this->_spreadSheet->getSheetCount(); ++$i) { + + // Add relationships + $objZip->addFromString('xl/worksheets/_rels/sheet' . ($i + 1) . '.xml.rels', $this->getWriterPart('Rels')->writeWorksheetRelationships($this->_spreadSheet->getSheet($i), ($i + 1), $this->_includeCharts)); + + $drawings = $this->_spreadSheet->getSheet($i)->getDrawingCollection(); + $drawingCount = count($drawings); + if ($this->_includeCharts) { + $chartCount = $this->_spreadSheet->getSheet($i)->getChartCount(); + } + + // Add drawing and image relationship parts + if (($drawingCount > 0) || ($chartCount > 0)) { + // Drawing relationships + $objZip->addFromString('xl/drawings/_rels/drawing' . ($i + 1) . '.xml.rels', $this->getWriterPart('Rels')->writeDrawingRelationships($this->_spreadSheet->getSheet($i),$chartRef1, $this->_includeCharts)); + + // Drawings + $objZip->addFromString('xl/drawings/drawing' . ($i + 1) . '.xml', $this->getWriterPart('Drawing')->writeDrawings($this->_spreadSheet->getSheet($i),$chartRef2,$this->_includeCharts)); + } + + // Add comment relationship parts + if (count($this->_spreadSheet->getSheet($i)->getComments()) > 0) { + // VML Comments + $objZip->addFromString('xl/drawings/vmlDrawing' . ($i + 1) . '.vml', $this->getWriterPart('Comments')->writeVMLComments($this->_spreadSheet->getSheet($i))); + + // Comments + $objZip->addFromString('xl/comments' . ($i + 1) . '.xml', $this->getWriterPart('Comments')->writeComments($this->_spreadSheet->getSheet($i))); + } + + // Add header/footer relationship parts + if (count($this->_spreadSheet->getSheet($i)->getHeaderFooter()->getImages()) > 0) { + // VML Drawings + $objZip->addFromString('xl/drawings/vmlDrawingHF' . ($i + 1) . '.vml', $this->getWriterPart('Drawing')->writeVMLHeaderFooterImages($this->_spreadSheet->getSheet($i))); + + // VML Drawing relationships + $objZip->addFromString('xl/drawings/_rels/vmlDrawingHF' . ($i + 1) . '.vml.rels', $this->getWriterPart('Rels')->writeHeaderFooterDrawingRelationships($this->_spreadSheet->getSheet($i))); + + // Media + foreach ($this->_spreadSheet->getSheet($i)->getHeaderFooter()->getImages() as $image) { + $objZip->addFromString('xl/media/' . $image->getIndexedFilename(), file_get_contents($image->getPath())); + } + } + } + + // Add media + for ($i = 0; $i < $this->getDrawingHashTable()->count(); ++$i) { + if ($this->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_Drawing) { + $imageContents = null; + $imagePath = $this->getDrawingHashTable()->getByIndex($i)->getPath(); + + if (strpos($imagePath, 'zip://') !== false) { + $imagePath = substr($imagePath, 6); + $imagePathSplitted = explode('#', $imagePath); + + $imageZip = new ZipArchive(); + $imageZip->open($imagePathSplitted[0]); + $imageContents = $imageZip->getFromName($imagePathSplitted[1]); + $imageZip->close(); + unset($imageZip); + } else { + $imageContents = file_get_contents($imagePath); + } + + $objZip->addFromString('xl/media/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents); + } else if ($this->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_MemoryDrawing) { + ob_start(); + call_user_func( + $this->getDrawingHashTable()->getByIndex($i)->getRenderingFunction(), + $this->getDrawingHashTable()->getByIndex($i)->getImageResource() + ); + $imageContents = ob_get_contents(); + ob_end_clean(); + + $objZip->addFromString('xl/media/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents); + } + } + + PHPExcel_Calculation_Functions::setReturnDateType($saveDateReturnType); + PHPExcel_Calculation::getInstance()->writeDebugLog = $saveDebugLog; + + // Close file + if ($objZip->close() === false) { + throw new Exception("Could not close zip file $pFilename."); + } + + // If a temporary file was used, copy it to the correct file stream + if ($originalFilename != $pFilename) { + if (copy($pFilename, $originalFilename) === false) { + throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename."); + } + @unlink($pFilename); + } + } else { + throw new Exception("PHPExcel object unassigned."); + } + } + + /** + * Get PHPExcel object + * + * @return PHPExcel + * @throws Exception + */ + public function getPHPExcel() { + if ($this->_spreadSheet !== null) { + return $this->_spreadSheet; + } else { + throw new Exception("No PHPExcel assigned."); + } + } + + /** + * Set PHPExcel object + * + * @param PHPExcel $pPHPExcel PHPExcel object + * @throws Exception + * @return PHPExcel_Writer_Excel2007 + */ + public function setPHPExcel(PHPExcel $pPHPExcel = null) { + $this->_spreadSheet = $pPHPExcel; + return $this; + } + + /** + * Get string table + * + * @return string[] + */ + public function getStringTable() { + return $this->_stringTable; + } + + /** + * Get PHPExcel_Style_Conditional HashTable + * + * @return PHPExcel_HashTable + */ + public function getStylesConditionalHashTable() { + return $this->_stylesConditionalHashTable; + } + + /** + * Get PHPExcel_Style_Fill HashTable + * + * @return PHPExcel_HashTable + */ + public function getFillHashTable() { + return $this->_fillHashTable; + } + + /** + * Get PHPExcel_Style_Font HashTable + * + * @return PHPExcel_HashTable + */ + public function getFontHashTable() { + return $this->_fontHashTable; + } + + /** + * Get PHPExcel_Style_Borders HashTable + * + * @return PHPExcel_HashTable + */ + public function getBordersHashTable() { + return $this->_bordersHashTable; + } + + /** + * Get PHPExcel_Style_NumberFormat HashTable + * + * @return PHPExcel_HashTable + */ + public function getNumFmtHashTable() { + return $this->_numFmtHashTable; + } + + /** + * Get PHPExcel_Worksheet_BaseDrawing HashTable + * + * @return PHPExcel_HashTable + */ + public function getDrawingHashTable() { + return $this->_drawingHashTable; + } + + /** + * Write charts in workbook? + * If this is true, then the Writer will write definitions for any charts that exist in the PHPExcel object. + * If false (the default) it will ignore any charts defined in the PHPExcel object. + * + * @return boolean + */ + public function getIncludeCharts() { + return $this->_includeCharts; + } + + /** + * Set write charts in workbook + * Set to true, to advise the Writer to include any charts that exist in the PHPExcel object. + * Set to false (the default) to ignore charts. + * + * @param boolean $pValue + * + * @return PHPExcel_Writer_Excel2007 + */ + public function setIncludeCharts($pValue = false) { + $this->_includeCharts = (boolean) $pValue; + return $this; + } + + /** + * Get Pre-Calculate Formulas + * + * @return boolean + */ + public function getPreCalculateFormulas() { + return $this->_preCalculateFormulas; + } + + /** + * Set Pre-Calculate Formulas + * + * @param boolean $pValue Pre-Calculate Formulas? + */ + public function setPreCalculateFormulas($pValue = true) { + $this->_preCalculateFormulas = $pValue; + } + + /** + * Get Office2003 compatibility + * + * @return boolean + */ + public function getOffice2003Compatibility() { + return $this->_office2003compatibility; + } + + /** + * Set Pre-Calculate Formulas + * + * @param boolean $pValue Office2003 compatibility? + * @return PHPExcel_Writer_Excel2007 + */ + public function setOffice2003Compatibility($pValue = false) { + $this->_office2003compatibility = $pValue; + return $this; + } + + /** + * Get use disk caching where possible? + * + * @return boolean + */ + public function getUseDiskCaching() { + return $this->_useDiskCaching; + } + + /** + * Set use disk caching where possible? + * + * @param boolean $pValue + * @param string $pDirectory Disk caching directory + * @throws Exception Exception when directory does not exist + * @return PHPExcel_Writer_Excel2007 + */ + public function setUseDiskCaching($pValue = false, $pDirectory = null) { + $this->_useDiskCaching = $pValue; + + if ($pDirectory !== NULL) { + if (is_dir($pDirectory)) { + $this->_diskCachingDirectory = $pDirectory; + } else { + throw new Exception("Directory does not exist: $pDirectory"); + } + } + return $this; + } + + /** + * Get disk caching directory + * + * @return string + */ + public function getDiskCachingDirectory() { + return $this->_diskCachingDirectory; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Chart.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Chart.php new file mode 100755 index 0000000..d181d51 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Chart.php @@ -0,0 +1,1181 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_Chart + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_Chart extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Write charts to XML format + * + * @param PHPExcel_Chart $pChart + * @return string XML Output + * @throws Exception + */ + public function writeChart(PHPExcel_Chart $pChart = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + // Ensure that data series values are up-to-date before we save + $pChart->refresh(); + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // c:chartSpace + $objWriter->startElement('c:chartSpace'); + $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); + $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); + $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + + $objWriter->startElement('c:date1904'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + $objWriter->startElement('c:lang'); + $objWriter->writeAttribute('val', "en-GB"); + $objWriter->endElement(); + $objWriter->startElement('c:roundedCorners'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + $this->_writeAlternateContent($objWriter); + + $objWriter->startElement('c:chart'); + + $this->_writeTitle($pChart->getTitle(), $objWriter); + + $objWriter->startElement('c:autoTitleDeleted'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + $this->_writePlotArea($pChart->getPlotArea(), + $pChart->getXAxisLabel(), + $pChart->getYAxisLabel(), + $objWriter, + $pChart->getWorksheet() + ); + + $this->_writeLegend($pChart->getLegend(), $objWriter); + + + $objWriter->startElement('c:plotVisOnly'); + $objWriter->writeAttribute('val', 1); + $objWriter->endElement(); + + $objWriter->startElement('c:dispBlanksAs'); + $objWriter->writeAttribute('val', "gap"); + $objWriter->endElement(); + + $objWriter->startElement('c:showDLblsOverMax'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + $objWriter->endElement(); + + $this->_writePrintSettings($objWriter); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write Chart Title + * + * @param PHPExcel_Chart_Title $title + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writeTitle(PHPExcel_Chart_Title $title = null, $objWriter) + { + if (is_null($title)) { + return; + } + + $objWriter->startElement('c:title'); + $objWriter->startElement('c:tx'); + $objWriter->startElement('c:rich'); + + $objWriter->startElement('a:bodyPr'); + $objWriter->endElement(); + + $objWriter->startElement('a:lstStyle'); + $objWriter->endElement(); + + $objWriter->startElement('a:p'); + + $caption = $title->getCaption(); + if ((is_array($caption)) && (count($caption) > 0)) + $caption = $caption[0]; + $this->getParentWriter()->getWriterPart('stringtable')->writeRichTextForCharts($objWriter, $caption, 'a'); + + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + + $layout = $title->getLayout(); + $this->_writeLayout($layout, $objWriter); + + $objWriter->startElement('c:overlay'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write Chart Legend + * + * @param PHPExcel_Chart_Legend $legend + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writeLegend(PHPExcel_Chart_Legend $legend = null, $objWriter) + { + if (is_null($legend)) { + return; + } + + $objWriter->startElement('c:legend'); + + $objWriter->startElement('c:legendPos'); + $objWriter->writeAttribute('val', $legend->getPosition()); + $objWriter->endElement(); + + $layout = $legend->getLayout(); + $this->_writeLayout($layout, $objWriter); + + $objWriter->startElement('c:overlay'); + $objWriter->writeAttribute('val', ($legend->getOverlay()) ? '1' : '0'); + $objWriter->endElement(); + + $objWriter->startElement('c:txPr'); + $objWriter->startElement('a:bodyPr'); + $objWriter->endElement(); + + $objWriter->startElement('a:lstStyle'); + $objWriter->endElement(); + + $objWriter->startElement('a:p'); + $objWriter->startElement('a:pPr'); + $objWriter->writeAttribute('rtl', 0); + + $objWriter->startElement('a:defRPr'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('a:endParaRPr'); + $objWriter->writeAttribute('lang', "en-US"); + $objWriter->endElement(); + + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write Chart Plot Area + * + * @param PHPExcel_Chart_PlotArea $plotArea + * @param PHPExcel_Chart_Title $xAxisLabel + * @param PHPExcel_Chart_Title $yAxisLabel + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writePlotArea(PHPExcel_Chart_PlotArea $plotArea, + PHPExcel_Chart_Title $xAxisLabel = NULL, + PHPExcel_Chart_Title $yAxisLabel = NULL, + $objWriter, + PHPExcel_Worksheet $pSheet) + { + if (is_null($plotArea)) { + return; + } + + $id1 = $id2 = 0; + $objWriter->startElement('c:plotArea'); + + $layout = $plotArea->getLayout(); + + $this->_writeLayout($layout, $objWriter); + + $chartTypes = self::_getChartType($plotArea); + $catIsMultiLevelSeries = $valIsMultiLevelSeries = FALSE; + $plotGroupingType = ''; + foreach($chartTypes as $chartType) { + $objWriter->startElement('c:'.$chartType); + + $groupCount = $plotArea->getPlotGroupCount(); + for($i = 0; $i < $groupCount; ++$i) { + $plotGroup = $plotArea->getPlotGroupByIndex($i); + $groupType = $plotGroup->getPlotType(); + if ($groupType == $chartType) { + + $plotStyle = $plotGroup->getPlotStyle(); + if ($groupType === PHPExcel_Chart_DataSeries::TYPE_RADARCHART) { + $objWriter->startElement('c:radarStyle'); + $objWriter->writeAttribute('val', $plotStyle ); + $objWriter->endElement(); + } elseif ($groupType === PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART) { + $objWriter->startElement('c:scatterStyle'); + $objWriter->writeAttribute('val', $plotStyle ); + $objWriter->endElement(); + } + + $this->_writePlotGroup($plotGroup, $chartType, $objWriter, $catIsMultiLevelSeries, $valIsMultiLevelSeries, $plotGroupingType, $pSheet); + } + } + + $this->_writeDataLbls($objWriter, $layout); + + if ($chartType === PHPExcel_Chart_DataSeries::TYPE_LINECHART) { + // Line only, Line3D can't be smoothed + + $objWriter->startElement('c:smooth'); + $objWriter->writeAttribute('val', (integer) $plotGroup->getSmoothLine() ); + $objWriter->endElement(); + } elseif (($chartType === PHPExcel_Chart_DataSeries::TYPE_BARCHART) || + ($chartType === PHPExcel_Chart_DataSeries::TYPE_BARCHART_3D)) { + + $objWriter->startElement('c:gapWidth'); + $objWriter->writeAttribute('val', 150 ); + $objWriter->endElement(); + + if ($plotGroupingType == 'percentStacked' || + $plotGroupingType == 'stacked') { + + $objWriter->startElement('c:overlap'); + $objWriter->writeAttribute('val', 100 ); + $objWriter->endElement(); + } + } elseif ($chartType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { + + $objWriter->startElement('c:bubbleScale'); + $objWriter->writeAttribute('val', 25 ); + $objWriter->endElement(); + + $objWriter->startElement('c:showNegBubbles'); + $objWriter->writeAttribute('val', 0 ); + $objWriter->endElement(); + } elseif ($chartType === PHPExcel_Chart_DataSeries::TYPE_STOCKCHART) { + + $objWriter->startElement('c:hiLowLines'); + $objWriter->endElement(); + } + + // Generate 2 unique numbers to use for axId values +// $id1 = $id2 = rand(10000000,99999999); +// do { +// $id2 = rand(10000000,99999999); +// } while ($id1 == $id2); + $id1 = '75091328'; + $id2 = '75089408'; + + if (($chartType !== PHPExcel_Chart_DataSeries::TYPE_PIECHART) && + ($chartType !== PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) && + ($chartType !== PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { + + $objWriter->startElement('c:axId'); + $objWriter->writeAttribute('val', $id1 ); + $objWriter->endElement(); + $objWriter->startElement('c:axId'); + $objWriter->writeAttribute('val', $id2 ); + $objWriter->endElement(); + } else { + $objWriter->startElement('c:firstSliceAng'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + if ($chartType === PHPExcel_Chart_DataSeries::TYPE_DONUTCHART) { + + $objWriter->startElement('c:holeSize'); + $objWriter->writeAttribute('val', 50); + $objWriter->endElement(); + } + } + + $objWriter->endElement(); + } + + if (($chartType !== PHPExcel_Chart_DataSeries::TYPE_PIECHART) && + ($chartType !== PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) && + ($chartType !== PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { + + if ($chartType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { + $this->_writeValAx($objWriter,$plotArea,$xAxisLabel,$chartType,$id1,$id2,$catIsMultiLevelSeries); + } else { + $this->_writeCatAx($objWriter,$plotArea,$xAxisLabel,$chartType,$id1,$id2,$catIsMultiLevelSeries); + } + + $this->_writeValAx($objWriter,$plotArea,$yAxisLabel,$chartType,$id1,$id2,$valIsMultiLevelSeries); + } + + $objWriter->endElement(); + } + + /** + * Write Data Labels + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Chart_Layout $chartLayout Chart layout + * @throws Exception + */ + private function _writeDataLbls($objWriter, $chartLayout) + { + $objWriter->startElement('c:dLbls'); + + $objWriter->startElement('c:showLegendKey'); + $showLegendKey = (empty($chartLayout)) ? 0 : $chartLayout->getShowLegendKey(); + $objWriter->writeAttribute('val', ((empty($showLegendKey)) ? 0 : 1) ); + $objWriter->endElement(); + + + $objWriter->startElement('c:showVal'); + $showVal = (empty($chartLayout)) ? 0 : $chartLayout->getShowVal(); + $objWriter->writeAttribute('val', ((empty($showVal)) ? 0 : 1) ); + $objWriter->endElement(); + + $objWriter->startElement('c:showCatName'); + $showCatName = (empty($chartLayout)) ? 0 : $chartLayout->getShowCatName(); + $objWriter->writeAttribute('val', ((empty($showCatName)) ? 0 : 1) ); + $objWriter->endElement(); + + $objWriter->startElement('c:showSerName'); + $showSerName = (empty($chartLayout)) ? 0 : $chartLayout->getShowSerName(); + $objWriter->writeAttribute('val', ((empty($showSerName)) ? 0 : 1) ); + $objWriter->endElement(); + + $objWriter->startElement('c:showPercent'); + $showPercent = (empty($chartLayout)) ? 0 : $chartLayout->getShowPercent(); + $objWriter->writeAttribute('val', ((empty($showPercent)) ? 0 : 1) ); + $objWriter->endElement(); + + $objWriter->startElement('c:showBubbleSize'); + $showBubbleSize = (empty($chartLayout)) ? 0 : $chartLayout->getShowBubbleSize(); + $objWriter->writeAttribute('val', ((empty($showBubbleSize)) ? 0 : 1) ); + $objWriter->endElement(); + + $objWriter->startElement('c:showLeaderLines'); + $showLeaderLines = (empty($chartLayout)) ? 1 : $chartLayout->getShowLeaderLines(); + $objWriter->writeAttribute('val', ((empty($showLeaderLines)) ? 0 : 1) ); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write Category Axis + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Chart_PlotArea $plotArea + * @param PHPExcel_Chart_Title $xAxisLabel + * @param string $groupType Chart type + * @param string $id1 + * @param string $id2 + * @param boolean $isMultiLevelSeries + * @throws Exception + */ + private function _writeCatAx($objWriter, PHPExcel_Chart_PlotArea $plotArea, $xAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries) + { + $objWriter->startElement('c:catAx'); + + if ($id1 > 0) { + $objWriter->startElement('c:axId'); + $objWriter->writeAttribute('val', $id1); + $objWriter->endElement(); + } + + $objWriter->startElement('c:scaling'); + $objWriter->startElement('c:orientation'); + $objWriter->writeAttribute('val', "minMax"); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('c:delete'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + $objWriter->startElement('c:axPos'); + $objWriter->writeAttribute('val', "b"); + $objWriter->endElement(); + + if (!is_null($xAxisLabel)) { + $objWriter->startElement('c:title'); + $objWriter->startElement('c:tx'); + $objWriter->startElement('c:rich'); + + $objWriter->startElement('a:bodyPr'); + $objWriter->endElement(); + + $objWriter->startElement('a:lstStyle'); + $objWriter->endElement(); + + $objWriter->startElement('a:p'); + $objWriter->startElement('a:r'); + + $caption = $xAxisLabel->getCaption(); + if (is_array($caption)) + $caption = $caption[0]; + $objWriter->startElement('a:t'); +// $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML( $caption )); + $objWriter->endElement(); + + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('c:overlay'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + $layout = $xAxisLabel->getLayout(); + $this->_writeLayout($layout, $objWriter); + + $objWriter->endElement(); + + } + + $objWriter->startElement('c:numFmt'); + $objWriter->writeAttribute('formatCode', "General"); + $objWriter->writeAttribute('sourceLinked', 1); + $objWriter->endElement(); + + $objWriter->startElement('c:majorTickMark'); + $objWriter->writeAttribute('val', "out"); + $objWriter->endElement(); + + $objWriter->startElement('c:minorTickMark'); + $objWriter->writeAttribute('val', "none"); + $objWriter->endElement(); + + $objWriter->startElement('c:tickLblPos'); + $objWriter->writeAttribute('val', "nextTo"); + $objWriter->endElement(); + + if ($id2 > 0) { + $objWriter->startElement('c:crossAx'); + $objWriter->writeAttribute('val', $id2); + $objWriter->endElement(); + + $objWriter->startElement('c:crosses'); + $objWriter->writeAttribute('val', "autoZero"); + $objWriter->endElement(); + } + + $objWriter->startElement('c:auto'); + $objWriter->writeAttribute('val', 1); + $objWriter->endElement(); + + $objWriter->startElement('c:lblAlgn'); + $objWriter->writeAttribute('val', "ctr"); + $objWriter->endElement(); + + $objWriter->startElement('c:lblOffset'); + $objWriter->writeAttribute('val', 100); + $objWriter->endElement(); + + if ($isMultiLevelSeries) { + $objWriter->startElement('c:noMultiLvlLbl'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + } + $objWriter->endElement(); + + } + + + /** + * Write Value Axis + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Chart_PlotArea $plotArea + * @param PHPExcel_Chart_Title $yAxisLabel + * @param string $groupType Chart type + * @param string $id1 + * @param string $id2 + * @param boolean $isMultiLevelSeries + * @throws Exception + */ + private function _writeValAx($objWriter, PHPExcel_Chart_PlotArea $plotArea, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries) + { + $objWriter->startElement('c:valAx'); + + if ($id2 > 0) { + $objWriter->startElement('c:axId'); + $objWriter->writeAttribute('val', $id2); + $objWriter->endElement(); + } + + $objWriter->startElement('c:scaling'); + $objWriter->startElement('c:orientation'); + $objWriter->writeAttribute('val', "minMax"); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('c:delete'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + $objWriter->startElement('c:axPos'); + $objWriter->writeAttribute('val', "l"); + $objWriter->endElement(); + + $objWriter->startElement('c:majorGridlines'); + $objWriter->endElement(); + + if (!is_null($yAxisLabel)) { + $objWriter->startElement('c:title'); + $objWriter->startElement('c:tx'); + $objWriter->startElement('c:rich'); + + $objWriter->startElement('a:bodyPr'); + $objWriter->endElement(); + + $objWriter->startElement('a:lstStyle'); + $objWriter->endElement(); + + $objWriter->startElement('a:p'); + $objWriter->startElement('a:r'); + + $caption = $yAxisLabel->getCaption(); + if (is_array($caption)) + $caption = $caption[0]; + $objWriter->startElement('a:t'); +// $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML( $caption )); + $objWriter->endElement(); + + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('c:overlay'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { + $layout = $yAxisLabel->getLayout(); + $this->_writeLayout($layout, $objWriter); + } + + $objWriter->endElement(); + } + + $objWriter->startElement('c:numFmt'); + $objWriter->writeAttribute('formatCode', "General"); + $objWriter->writeAttribute('sourceLinked', 1); + $objWriter->endElement(); + + $objWriter->startElement('c:majorTickMark'); + $objWriter->writeAttribute('val', "out"); + $objWriter->endElement(); + + $objWriter->startElement('c:minorTickMark'); + $objWriter->writeAttribute('val', "none"); + $objWriter->endElement(); + + $objWriter->startElement('c:tickLblPos'); + $objWriter->writeAttribute('val', "nextTo"); + $objWriter->endElement(); + + if ($id1 > 0) { + $objWriter->startElement('c:crossAx'); + $objWriter->writeAttribute('val', $id2); + $objWriter->endElement(); + + $objWriter->startElement('c:crosses'); + $objWriter->writeAttribute('val', "autoZero"); + $objWriter->endElement(); + + $objWriter->startElement('c:crossBetween'); + $objWriter->writeAttribute('val', "midCat"); + $objWriter->endElement(); + } + + if ($isMultiLevelSeries) { + if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { + $objWriter->startElement('c:noMultiLvlLbl'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + } + } + $objWriter->endElement(); + + } + + + /** + * Get the data series type(s) for a chart plot series + * + * @param PHPExcel_Chart_PlotArea $plotArea + * @return string|array + * @throws Exception + */ + private static function _getChartType($plotArea) + { + $groupCount = $plotArea->getPlotGroupCount(); + + if ($groupCount == 1) { + $chartType = array($plotArea->getPlotGroupByIndex(0)->getPlotType()); + } else { + $chartTypes = array(); + for($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $plotArea->getPlotGroupByIndex($i)->getPlotType(); + } + $chartType = array_unique($chartTypes); + if (count($chartTypes) == 0) { + throw new Exception('Chart is not yet implemented'); + } + } + + return $chartType; + } + + /** + * Write Plot Group (series of related plots) + * + * @param PHPExcel_Chart_DataSeries $plotGroup + * @param string $groupType Type of plot for dataseries + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param boolean &$catIsMultiLevelSeries Is category a multi-series category + * @param boolean &$valIsMultiLevelSeries Is value set a multi-series set + * @param string &$plotGroupingType Type of grouping for multi-series values + * @param PHPExcel_Worksheet $pSheet + * @throws Exception + */ + private function _writePlotGroup( $plotGroup, + $groupType, + $objWriter, + &$catIsMultiLevelSeries, + &$valIsMultiLevelSeries, + &$plotGroupingType, + PHPExcel_Worksheet $pSheet + ) + { + if (is_null($plotGroup)) { + return; + } + + if (($groupType == PHPExcel_Chart_DataSeries::TYPE_BARCHART) || + ($groupType == PHPExcel_Chart_DataSeries::TYPE_BARCHART_3D)) { + $objWriter->startElement('c:barDir'); + $objWriter->writeAttribute('val', $plotGroup->getPlotDirection()); + $objWriter->endElement(); + } + + if (!is_null($plotGroup->getPlotGrouping())) { + $plotGroupingType = $plotGroup->getPlotGrouping(); + $objWriter->startElement('c:grouping'); + $objWriter->writeAttribute('val', $plotGroupingType); + $objWriter->endElement(); + } + + // Get these details before the loop, because we can use the count to check for varyColors + $plotSeriesOrder = $plotGroup->getPlotOrder(); + $plotSeriesCount = count($plotSeriesOrder); + + if (($groupType !== PHPExcel_Chart_DataSeries::TYPE_RADARCHART) && + ($groupType !== PHPExcel_Chart_DataSeries::TYPE_STOCKCHART)) { + + if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_LINECHART) { + if (($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART) || + ($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) || + ($groupType == PHPExcel_Chart_DataSeries::TYPE_DONUTCHART) || + ($plotSeriesCount > 1)) { + $objWriter->startElement('c:varyColors'); + $objWriter->writeAttribute('val', 1); + $objWriter->endElement(); + } else { + $objWriter->startElement('c:varyColors'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + } + } + } + + foreach($plotSeriesOrder as $plotSeriesIdx => $plotSeriesRef) { + $objWriter->startElement('c:ser'); + + $objWriter->startElement('c:idx'); + $objWriter->writeAttribute('val', $plotSeriesIdx); + $objWriter->endElement(); + + $objWriter->startElement('c:order'); + $objWriter->writeAttribute('val', $plotSeriesRef); + $objWriter->endElement(); + + if (($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART) || + ($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) || + ($groupType == PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { + + $objWriter->startElement('c:dPt'); + $objWriter->startElement('c:idx'); + $objWriter->writeAttribute('val', 3); + $objWriter->endElement(); + + $objWriter->startElement('c:bubble3D'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + + $objWriter->startElement('c:spPr'); + $objWriter->startElement('a:solidFill'); + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', 'FF9900'); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + } + + // Labels + $plotSeriesLabel = $plotGroup->getPlotLabelByIndex($plotSeriesRef); + if ($plotSeriesLabel && ($plotSeriesLabel->getPointCount() > 0)) { + $objWriter->startElement('c:tx'); + $objWriter->startElement('c:strRef'); + $this->_writePlotSeriesLabel($plotSeriesLabel, $objWriter); + $objWriter->endElement(); + $objWriter->endElement(); + } + + // Formatting for the points + if ($groupType == PHPExcel_Chart_DataSeries::TYPE_LINECHART) { + $objWriter->startElement('c:spPr'); + $objWriter->startElement('a:ln'); + $objWriter->writeAttribute('w', 12700); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $plotSeriesValues = $plotGroup->getPlotValuesByIndex($plotSeriesRef); + if ($plotSeriesValues) { + $plotSeriesMarker = $plotSeriesValues->getPointMarker(); + if ($plotSeriesMarker) { + $objWriter->startElement('c:marker'); + $objWriter->startElement('c:symbol'); + $objWriter->writeAttribute('val', $plotSeriesMarker); + $objWriter->endElement(); + + if ($plotSeriesMarker !== 'none') { + $objWriter->startElement('c:size'); + $objWriter->writeAttribute('val', 3); + $objWriter->endElement(); + } + $objWriter->endElement(); + } + } + + if (($groupType === PHPExcel_Chart_DataSeries::TYPE_BARCHART) || + ($groupType === PHPExcel_Chart_DataSeries::TYPE_BARCHART_3D) || + ($groupType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART)) { + + $objWriter->startElement('c:invertIfNegative'); + $objWriter->writeAttribute('val', 0); + $objWriter->endElement(); + } + + // Category Labels + $plotSeriesCategory = $plotGroup->getPlotCategoryByIndex($plotSeriesRef); + if ($plotSeriesCategory && ($plotSeriesCategory->getPointCount() > 0)) { + $catIsMultiLevelSeries = $catIsMultiLevelSeries || $plotSeriesCategory->isMultiLevelSeries(); + + if (($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART) || + ($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) || + ($groupType == PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { + + if (!is_null($plotGroup->getPlotStyle())) { + $plotStyle = $plotGroup->getPlotStyle(); + if ($plotStyle) { + $objWriter->startElement('c:explosion'); + $objWriter->writeAttribute('val', 25); + $objWriter->endElement(); + } + } + } + + if (($groupType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) || + ($groupType === PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART)) { + $objWriter->startElement('c:xVal'); + } else { + $objWriter->startElement('c:cat'); + } + + $this->_writePlotSeriesValues($plotSeriesCategory, $objWriter, $groupType, 'str', $pSheet); + $objWriter->endElement(); + } + + // Values + if ($plotSeriesValues) { + $valIsMultiLevelSeries = $valIsMultiLevelSeries || $plotSeriesValues->isMultiLevelSeries(); + + if (($groupType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) || + ($groupType === PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART)) { + $objWriter->startElement('c:yVal'); + } else { + $objWriter->startElement('c:val'); + } + + $this->_writePlotSeriesValues($plotSeriesValues, $objWriter, $groupType, 'num', $pSheet); + $objWriter->endElement(); + } + + if ($groupType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { + $this->_writeBubbles($plotSeriesValues, $objWriter, $pSheet); + } + + $objWriter->endElement(); + + } + } + + /** + * Write Plot Series Label + * + * @param PHPExcel_Chart_DataSeriesValues $plotSeriesLabel + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writePlotSeriesLabel($plotSeriesLabel, $objWriter) + { + if (is_null($plotSeriesLabel)) { + return; + } + + $objWriter->startElement('c:f'); + $objWriter->writeRawData($plotSeriesLabel->getDataSource()); + $objWriter->endElement(); + + $objWriter->startElement('c:strCache'); + $objWriter->startElement('c:ptCount'); + $objWriter->writeAttribute('val', $plotSeriesLabel->getPointCount() ); + $objWriter->endElement(); + + foreach($plotSeriesLabel->getDataValues() as $plotLabelKey => $plotLabelValue) { + $objWriter->startElement('c:pt'); + $objWriter->writeAttribute('idx', $plotLabelKey ); + + $objWriter->startElement('c:v'); + $objWriter->writeRawData( $plotLabelValue ); + $objWriter->endElement(); + $objWriter->endElement(); + } + $objWriter->endElement(); + + } + + /** + * Write Plot Series Values + * + * @param PHPExcel_Chart_DataSeriesValues $plotSeriesValues + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string $groupType Type of plot for dataseries + * @param string $dataType Datatype of series values + * @param PHPExcel_Worksheet $pSheet + * @throws Exception + */ + private function _writePlotSeriesValues( $plotSeriesValues, + $objWriter, + $groupType, + $dataType='str', + PHPExcel_Worksheet $pSheet + ) + { + if (is_null($plotSeriesValues)) { + return; + } + + if ($plotSeriesValues->isMultiLevelSeries()) { + $levelCount = $plotSeriesValues->multiLevelCount(); + + $objWriter->startElement('c:multiLvlStrRef'); + + $objWriter->startElement('c:f'); + $objWriter->writeRawData( $plotSeriesValues->getDataSource() ); + $objWriter->endElement(); + + $objWriter->startElement('c:multiLvlStrCache'); + + $objWriter->startElement('c:ptCount'); + $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount() ); + $objWriter->endElement(); + + for ($level = 0; $level < $levelCount; ++$level) { + $objWriter->startElement('c:lvl'); + + foreach($plotSeriesValues->getDataValues() as $plotSeriesKey => $plotSeriesValue) { + if (isset($plotSeriesValue[$level])) { + $objWriter->startElement('c:pt'); + $objWriter->writeAttribute('idx', $plotSeriesKey ); + + $objWriter->startElement('c:v'); + $objWriter->writeRawData( $plotSeriesValue[$level] ); + $objWriter->endElement(); + $objWriter->endElement(); + } + } + + $objWriter->endElement(); + } + + $objWriter->endElement(); + + $objWriter->endElement(); + } else { + $objWriter->startElement('c:'.$dataType.'Ref'); + + $objWriter->startElement('c:f'); + $objWriter->writeRawData( $plotSeriesValues->getDataSource() ); + $objWriter->endElement(); + + $objWriter->startElement('c:'.$dataType.'Cache'); + + if (($groupType != PHPExcel_Chart_DataSeries::TYPE_PIECHART) && + ($groupType != PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) && + ($groupType != PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { + + if (($plotSeriesValues->getFormatCode() !== NULL) && + ($plotSeriesValues->getFormatCode() !== '')) { + $objWriter->startElement('c:formatCode'); + $objWriter->writeRawData( $plotSeriesValues->getFormatCode() ); + $objWriter->endElement(); + } + } + + $objWriter->startElement('c:ptCount'); + $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount() ); + $objWriter->endElement(); + + $dataValues = $plotSeriesValues->getDataValues(); + if (!empty($dataValues)) { + if (is_array($dataValues)) { + foreach($dataValues as $plotSeriesKey => $plotSeriesValue) { + $objWriter->startElement('c:pt'); + $objWriter->writeAttribute('idx', $plotSeriesKey ); + + $objWriter->startElement('c:v'); + $objWriter->writeRawData( $plotSeriesValue ); + $objWriter->endElement(); + $objWriter->endElement(); + } + } + } + + $objWriter->endElement(); + + $objWriter->endElement(); + } + } + + /** + * Write Bubble Chart Details + * + * @param PHPExcel_Chart_DataSeriesValues $plotSeriesValues + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writeBubbles($plotSeriesValues, $objWriter, PHPExcel_Worksheet $pSheet) + { + if (is_null($plotSeriesValues)) { + return; + } + + $objWriter->startElement('c:bubbleSize'); + $objWriter->startElement('c:numLit'); + + $objWriter->startElement('c:formatCode'); + $objWriter->writeRawData( 'General' ); + $objWriter->endElement(); + + $objWriter->startElement('c:ptCount'); + $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount() ); + $objWriter->endElement(); + + $dataValues = $plotSeriesValues->getDataValues(); + if (!empty($dataValues)) { + if (is_array($dataValues)) { + foreach($dataValues as $plotSeriesKey => $plotSeriesValue) { + $objWriter->startElement('c:pt'); + $objWriter->writeAttribute('idx', $plotSeriesKey ); + $objWriter->startElement('c:v'); + $objWriter->writeRawData( 1 ); + $objWriter->endElement(); + $objWriter->endElement(); + } + } + } + + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('c:bubble3D'); + $objWriter->writeAttribute('val', 0 ); + $objWriter->endElement(); + } + + /** + * Write Layout + * + * @param PHPExcel_Chart_Layout $layout + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writeLayout(PHPExcel_Chart_Layout $layout = NULL, $objWriter) + { + $objWriter->startElement('c:layout'); + + if (!is_null($layout)) { + $objWriter->startElement('c:manualLayout'); + + $layoutTarget = $layout->getLayoutTarget(); + if (!is_null($layoutTarget)) { + $objWriter->startElement('c:layoutTarget'); + $objWriter->writeAttribute('val', $layoutTarget); + $objWriter->endElement(); + } + + $xMode = $layout->getXMode(); + if (!is_null($xMode)) { + $objWriter->startElement('c:xMode'); + $objWriter->writeAttribute('val', $xMode); + $objWriter->endElement(); + } + + $yMode = $layout->getYMode(); + if (!is_null($yMode)) { + $objWriter->startElement('c:yMode'); + $objWriter->writeAttribute('val', $yMode); + $objWriter->endElement(); + } + + $x = $layout->getXPosition(); + if (!is_null($x)) { + $objWriter->startElement('c:x'); + $objWriter->writeAttribute('val', $x); + $objWriter->endElement(); + } + + $y = $layout->getYPosition(); + if (!is_null($y)) { + $objWriter->startElement('c:y'); + $objWriter->writeAttribute('val', $y); + $objWriter->endElement(); + } + + $w = $layout->getWidth(); + if (!is_null($w)) { + $objWriter->startElement('c:w'); + $objWriter->writeAttribute('val', $w); + $objWriter->endElement(); + } + + $h = $layout->getHeight(); + if (!is_null($h)) { + $objWriter->startElement('c:h'); + $objWriter->writeAttribute('val', $h); + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + + /** + * Write Alternate Content block + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writeAlternateContent($objWriter) + { + $objWriter->startElement('mc:AlternateContent'); + $objWriter->writeAttribute('xmlns:mc', 'http://schemas.openxmlformats.org/markup-compatibility/2006'); + + $objWriter->startElement('mc:Choice'); + $objWriter->writeAttribute('xmlns:c14', 'http://schemas.microsoft.com/office/drawing/2007/8/2/chart'); + $objWriter->writeAttribute('Requires', 'c14'); + + $objWriter->startElement('c14:style'); + $objWriter->writeAttribute('val', '102'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('mc:Fallback'); + $objWriter->startElement('c:style'); + $objWriter->writeAttribute('val', '2'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write Printer Settings + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writePrintSettings($objWriter) + { + $objWriter->startElement('c:printSettings'); + + $objWriter->startElement('c:headerFooter'); + $objWriter->endElement(); + + $objWriter->startElement('c:pageMargins'); + $objWriter->writeAttribute('footer', 0.3); + $objWriter->writeAttribute('header', 0.3); + $objWriter->writeAttribute('r', 0.7); + $objWriter->writeAttribute('l', 0.7); + $objWriter->writeAttribute('t', 0.75); + $objWriter->writeAttribute('b', 0.75); + $objWriter->endElement(); + + $objWriter->startElement('c:pageSetup'); + $objWriter->writeAttribute('orientation', "portrait"); + $objWriter->endElement(); + + $objWriter->endElement(); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Comments.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Comments.php new file mode 100755 index 0000000..ec8a270 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Comments.php @@ -0,0 +1,268 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_Comments + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_Comments extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Write comments to XML format + * + * @param PHPExcel_Worksheet $pWorksheet + * @return string XML Output + * @throws Exception + */ + public function writeComments(PHPExcel_Worksheet $pWorksheet = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Comments cache + $comments = $pWorksheet->getComments(); + + // Authors cache + $authors = array(); + $authorId = 0; + foreach ($comments as $comment) { + if (!isset($authors[$comment->getAuthor()])) { + $authors[$comment->getAuthor()] = $authorId++; + } + } + + // comments + $objWriter->startElement('comments'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + + // Loop through authors + $objWriter->startElement('authors'); + foreach ($authors as $author => $index) { + $objWriter->writeElement('author', $author); + } + $objWriter->endElement(); + + // Loop through comments + $objWriter->startElement('commentList'); + foreach ($comments as $key => $value) { + $this->_writeComment($objWriter, $key, $value, $authors); + } + $objWriter->endElement(); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write comment to XML format + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string $pCellReference Cell reference + * @param PHPExcel_Comment $pComment Comment + * @param array $pAuthors Array of authors + * @throws Exception + */ + public function _writeComment(PHPExcel_Shared_XMLWriter $objWriter = null, $pCellReference = 'A1', PHPExcel_Comment $pComment = null, $pAuthors = null) + { + // comment + $objWriter->startElement('comment'); + $objWriter->writeAttribute('ref', $pCellReference); + $objWriter->writeAttribute('authorId', $pAuthors[$pComment->getAuthor()]); + + // text + $objWriter->startElement('text'); + $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $pComment->getText()); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write VML comments to XML format + * + * @param PHPExcel_Worksheet $pWorksheet + * @return string XML Output + * @throws Exception + */ + public function writeVMLComments(PHPExcel_Worksheet $pWorksheet = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Comments cache + $comments = $pWorksheet->getComments(); + + // xml + $objWriter->startElement('xml'); + $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml'); + $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); + $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel'); + + // o:shapelayout + $objWriter->startElement('o:shapelayout'); + $objWriter->writeAttribute('v:ext', 'edit'); + + // o:idmap + $objWriter->startElement('o:idmap'); + $objWriter->writeAttribute('v:ext', 'edit'); + $objWriter->writeAttribute('data', '1'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // v:shapetype + $objWriter->startElement('v:shapetype'); + $objWriter->writeAttribute('id', '_x0000_t202'); + $objWriter->writeAttribute('coordsize', '21600,21600'); + $objWriter->writeAttribute('o:spt', '202'); + $objWriter->writeAttribute('path', 'm,l,21600r21600,l21600,xe'); + + // v:stroke + $objWriter->startElement('v:stroke'); + $objWriter->writeAttribute('joinstyle', 'miter'); + $objWriter->endElement(); + + // v:path + $objWriter->startElement('v:path'); + $objWriter->writeAttribute('gradientshapeok', 't'); + $objWriter->writeAttribute('o:connecttype', 'rect'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // Loop through comments + foreach ($comments as $key => $value) { + $this->_writeVMLComment($objWriter, $key, $value); + } + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write VML comment to XML format + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string $pCellReference Cell reference + * @param PHPExcel_Comment $pComment Comment + * @throws Exception + */ + public function _writeVMLComment(PHPExcel_Shared_XMLWriter $objWriter = null, $pCellReference = 'A1', PHPExcel_Comment $pComment = null) + { + // Metadata + list($column, $row) = PHPExcel_Cell::coordinateFromString($pCellReference); + $column = PHPExcel_Cell::columnIndexFromString($column); + $id = 1024 + $column + $row; + $id = substr($id, 0, 4); + + // v:shape + $objWriter->startElement('v:shape'); + $objWriter->writeAttribute('id', '_x0000_s' . $id); + $objWriter->writeAttribute('type', '#_x0000_t202'); + $objWriter->writeAttribute('style', 'position:absolute;margin-left:' . $pComment->getMarginLeft() . ';margin-top:' . $pComment->getMarginTop() . ';width:' . $pComment->getWidth() . ';height:' . $pComment->getHeight() . ';z-index:1;visibility:' . ($pComment->getVisible() ? 'visible' : 'hidden')); + $objWriter->writeAttribute('fillcolor', '#' . $pComment->getFillColor()->getRGB()); + $objWriter->writeAttribute('o:insetmode', 'auto'); + + // v:fill + $objWriter->startElement('v:fill'); + $objWriter->writeAttribute('color2', '#' . $pComment->getFillColor()->getRGB()); + $objWriter->endElement(); + + // v:shadow + $objWriter->startElement('v:shadow'); + $objWriter->writeAttribute('on', 't'); + $objWriter->writeAttribute('color', 'black'); + $objWriter->writeAttribute('obscured', 't'); + $objWriter->endElement(); + + // v:path + $objWriter->startElement('v:path'); + $objWriter->writeAttribute('o:connecttype', 'none'); + $objWriter->endElement(); + + // v:textbox + $objWriter->startElement('v:textbox'); + $objWriter->writeAttribute('style', 'mso-direction-alt:auto'); + + // div + $objWriter->startElement('div'); + $objWriter->writeAttribute('style', 'text-align:left'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // x:ClientData + $objWriter->startElement('x:ClientData'); + $objWriter->writeAttribute('ObjectType', 'Note'); + + // x:MoveWithCells + $objWriter->writeElement('x:MoveWithCells', ''); + + // x:SizeWithCells + $objWriter->writeElement('x:SizeWithCells', ''); + + // x:Anchor + //$objWriter->writeElement('x:Anchor', $column . ', 15, ' . ($row - 2) . ', 10, ' . ($column + 4) . ', 15, ' . ($row + 5) . ', 18'); + + // x:AutoFill + $objWriter->writeElement('x:AutoFill', 'False'); + + // x:Row + $objWriter->writeElement('x:Row', ($row - 1)); + + // x:Column + $objWriter->writeElement('x:Column', ($column - 1)); + + $objWriter->endElement(); + + $objWriter->endElement(); + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php new file mode 100755 index 0000000..a6ee53c --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php @@ -0,0 +1,261 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_ContentTypes + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_ContentTypes extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Write content types to XML format + * + * @param PHPExcel $pPHPExcel + * @param boolean $includeCharts Flag indicating if we should include drawing details for charts + * @return string XML Output + * @throws Exception + */ + public function writeContentTypes(PHPExcel $pPHPExcel = null, $includeCharts = FALSE) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Types + $objWriter->startElement('Types'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types'); + + // Theme + $this->_writeOverrideContentType( + $objWriter, '/xl/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml' + ); + + // Styles + $this->_writeOverrideContentType( + $objWriter, '/xl/styles.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml' + ); + + // Rels + $this->_writeDefaultContentType( + $objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml' + ); + + // XML + $this->_writeDefaultContentType( + $objWriter, 'xml', 'application/xml' + ); + + // VML + $this->_writeDefaultContentType( + $objWriter, 'vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing' + ); + + // Workbook + $this->_writeOverrideContentType( + $objWriter, '/xl/workbook.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml' + ); + + // DocProps + $this->_writeOverrideContentType( + $objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml' + ); + + $this->_writeOverrideContentType( + $objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml' + ); + + $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties(); + if (!empty($customPropertyList)) { + $this->_writeOverrideContentType( + $objWriter, '/docProps/custom.xml', 'application/vnd.openxmlformats-officedocument.custom-properties+xml' + ); + } + + // Worksheets + $sheetCount = $pPHPExcel->getSheetCount(); + for ($i = 0; $i < $sheetCount; ++$i) { + $this->_writeOverrideContentType( + $objWriter, '/xl/worksheets/sheet' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml' + ); + } + + // Shared strings + $this->_writeOverrideContentType( + $objWriter, '/xl/sharedStrings.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml' + ); + + // Add worksheet relationship content types + $chart = 1; + for ($i = 0; $i < $sheetCount; ++$i) { + $drawings = $pPHPExcel->getSheet($i)->getDrawingCollection(); + $drawingCount = count($drawings); + $chartCount = ($includeCharts) ? $pPHPExcel->getSheet($i)->getChartCount() : 0; + + // We need a drawing relationship for the worksheet if we have either drawings or charts + if (($drawingCount > 0) || ($chartCount > 0)) { + $this->_writeOverrideContentType( + $objWriter, '/xl/drawings/drawing' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.drawing+xml' + ); + } + + // If we have charts, then we need a chart relationship for every individual chart + if ($chartCount > 0) { + for ($c = 0; $c < $chartCount; ++$c) { + $this->_writeOverrideContentType( + $objWriter, '/xl/charts/chart' . $chart++ . '.xml', 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml' + ); + } + } + } + + // Comments + for ($i = 0; $i < $sheetCount; ++$i) { + if (count($pPHPExcel->getSheet($i)->getComments()) > 0) { + $this->_writeOverrideContentType( + $objWriter, '/xl/comments' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml' + ); + } + } + + // Add media content-types + $aMediaContentTypes = array(); + $mediaCount = $this->getParentWriter()->getDrawingHashTable()->count(); + for ($i = 0; $i < $mediaCount; ++$i) { + $extension = ''; + $mimeType = ''; + + if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_Drawing) { + $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension()); + $mimeType = $this->_getImageMimeType( $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath() ); + } else if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_MemoryDrawing) { + $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType()); + $extension = explode('/', $extension); + $extension = $extension[1]; + + $mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType(); + } + + if (!isset( $aMediaContentTypes[$extension]) ) { + $aMediaContentTypes[$extension] = $mimeType; + + $this->_writeDefaultContentType( + $objWriter, $extension, $mimeType + ); + } + } + + $sheetCount = $pPHPExcel->getSheetCount(); + for ($i = 0; $i < $sheetCount; ++$i) { + if (count($pPHPExcel->getSheet()->getHeaderFooter()->getImages()) > 0) { + foreach ($pPHPExcel->getSheet()->getHeaderFooter()->getImages() as $image) { + if (!isset( $aMediaContentTypes[strtolower($image->getExtension())]) ) { + $aMediaContentTypes[strtolower($image->getExtension())] = $this->_getImageMimeType( $image->getPath() ); + + $this->_writeDefaultContentType( + $objWriter, strtolower($image->getExtension()), $aMediaContentTypes[strtolower($image->getExtension())] + ); + } + } + } + } + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Get image mime type + * + * @param string $pFile Filename + * @return string Mime Type + * @throws Exception + */ + private function _getImageMimeType($pFile = '') + { + if (PHPExcel_Shared_File::file_exists($pFile)) { + $image = getimagesize($pFile); + return image_type_to_mime_type($image[2]); + } else { + throw new Exception("File $pFile does not exist"); + } + } + + /** + * Write Default content type + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string $pPartname Part name + * @param string $pContentType Content type + * @throws Exception + */ + private function _writeDefaultContentType(PHPExcel_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') + { + if ($pPartname != '' && $pContentType != '') { + // Write content type + $objWriter->startElement('Default'); + $objWriter->writeAttribute('Extension', $pPartname); + $objWriter->writeAttribute('ContentType', $pContentType); + $objWriter->endElement(); + } else { + throw new Exception("Invalid parameters passed."); + } + } + + /** + * Write Override content type + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string $pPartname Part name + * @param string $pContentType Content type + * @throws Exception + */ + private function _writeOverrideContentType(PHPExcel_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') + { + if ($pPartname != '' && $pContentType != '') { + // Write content type + $objWriter->startElement('Override'); + $objWriter->writeAttribute('PartName', $pPartname); + $objWriter->writeAttribute('ContentType', $pContentType); + $objWriter->endElement(); + } else { + throw new Exception("Invalid parameters passed."); + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/DocProps.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/DocProps.php new file mode 100755 index 0000000..84dd06b --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/DocProps.php @@ -0,0 +1,272 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_DocProps + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_DocProps extends PHPExcel_Writer_Excel2007_WriterPart +{ +/** + * Write docProps/app.xml to XML format + * + * @param PHPExcel $pPHPExcel + * @return string XML Output + * @throws Exception + */ + public function writeDocPropsApp(PHPExcel $pPHPExcel = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Properties + $objWriter->startElement('Properties'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties'); + $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); + + // Application + $objWriter->writeElement('Application', 'Microsoft Excel'); + + // DocSecurity + $objWriter->writeElement('DocSecurity', '0'); + + // ScaleCrop + $objWriter->writeElement('ScaleCrop', 'false'); + + // HeadingPairs + $objWriter->startElement('HeadingPairs'); + + // Vector + $objWriter->startElement('vt:vector'); + $objWriter->writeAttribute('size', '2'); + $objWriter->writeAttribute('baseType', 'variant'); + + // Variant + $objWriter->startElement('vt:variant'); + $objWriter->writeElement('vt:lpstr', 'Worksheets'); + $objWriter->endElement(); + + // Variant + $objWriter->startElement('vt:variant'); + $objWriter->writeElement('vt:i4', $pPHPExcel->getSheetCount()); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // TitlesOfParts + $objWriter->startElement('TitlesOfParts'); + + // Vector + $objWriter->startElement('vt:vector'); + $objWriter->writeAttribute('size', $pPHPExcel->getSheetCount()); + $objWriter->writeAttribute('baseType', 'lpstr'); + + $sheetCount = $pPHPExcel->getSheetCount(); + for ($i = 0; $i < $sheetCount; ++$i) { + $objWriter->writeElement('vt:lpstr', $pPHPExcel->getSheet($i)->getTitle()); + } + + $objWriter->endElement(); + + $objWriter->endElement(); + + // Company + $objWriter->writeElement('Company', $pPHPExcel->getProperties()->getCompany()); + + // Company + $objWriter->writeElement('Manager', $pPHPExcel->getProperties()->getManager()); + + // LinksUpToDate + $objWriter->writeElement('LinksUpToDate', 'false'); + + // SharedDoc + $objWriter->writeElement('SharedDoc', 'false'); + + // HyperlinksChanged + $objWriter->writeElement('HyperlinksChanged', 'false'); + + // AppVersion + $objWriter->writeElement('AppVersion', '12.0000'); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write docProps/core.xml to XML format + * + * @param PHPExcel $pPHPExcel + * @return string XML Output + * @throws Exception + */ + public function writeDocPropsCore(PHPExcel $pPHPExcel = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // cp:coreProperties + $objWriter->startElement('cp:coreProperties'); + $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties'); + $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); + $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/'); + $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/'); + $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); + + // dc:creator + $objWriter->writeElement('dc:creator', $pPHPExcel->getProperties()->getCreator()); + + // cp:lastModifiedBy + $objWriter->writeElement('cp:lastModifiedBy', $pPHPExcel->getProperties()->getLastModifiedBy()); + + // dcterms:created + $objWriter->startElement('dcterms:created'); + $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF'); + $objWriter->writeRawData(date(DATE_W3C, $pPHPExcel->getProperties()->getCreated())); + $objWriter->endElement(); + + // dcterms:modified + $objWriter->startElement('dcterms:modified'); + $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF'); + $objWriter->writeRawData(date(DATE_W3C, $pPHPExcel->getProperties()->getModified())); + $objWriter->endElement(); + + // dc:title + $objWriter->writeElement('dc:title', $pPHPExcel->getProperties()->getTitle()); + + // dc:description + $objWriter->writeElement('dc:description', $pPHPExcel->getProperties()->getDescription()); + + // dc:subject + $objWriter->writeElement('dc:subject', $pPHPExcel->getProperties()->getSubject()); + + // cp:keywords + $objWriter->writeElement('cp:keywords', $pPHPExcel->getProperties()->getKeywords()); + + // cp:category + $objWriter->writeElement('cp:category', $pPHPExcel->getProperties()->getCategory()); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write docProps/custom.xml to XML format + * + * @param PHPExcel $pPHPExcel + * @return string XML Output + * @throws Exception + */ + public function writeDocPropsCustom(PHPExcel $pPHPExcel = null) + { + $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties(); + if (empty($customPropertyList)) { + return; + } + + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // cp:coreProperties + $objWriter->startElement('Properties'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties'); + $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); + + + foreach($customPropertyList as $key => $customProperty) { + $propertyValue = $pPHPExcel->getProperties()->getCustomPropertyValue($customProperty); + $propertyType = $pPHPExcel->getProperties()->getCustomPropertyType($customProperty); + + $objWriter->startElement('property'); + $objWriter->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}'); + $objWriter->writeAttribute('pid', $key+2); + $objWriter->writeAttribute('name', $customProperty); + + switch($propertyType) { + case 'i' : + $objWriter->writeElement('vt:i4', $propertyValue); + break; + case 'f' : + $objWriter->writeElement('vt:r8', $propertyValue); + break; + case 'b' : + $objWriter->writeElement('vt:bool', ($propertyValue) ? 'true' : 'false'); + break; + case 'd' : + $objWriter->startElement('vt:filetime'); + $objWriter->writeRawData(date(DATE_W3C, $propertyValue)); + $objWriter->endElement(); + break; + default : + $objWriter->writeElement('vt:lpwstr', $propertyValue); + break; + } + + $objWriter->endElement(); + } + + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Drawing.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Drawing.php new file mode 100755 index 0000000..9b618c5 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Drawing.php @@ -0,0 +1,598 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_Drawing + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_Drawing extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Write drawings to XML format + * + * @param PHPExcel_Worksheet $pWorksheet + * @param int &$chartRef Chart ID + * @param boolean $includeCharts Flag indicating if we should include drawing details for charts + * @return string XML Output + * @throws Exception + */ + public function writeDrawings(PHPExcel_Worksheet $pWorksheet = null, &$chartRef, $includeCharts = FALSE) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // xdr:wsDr + $objWriter->startElement('xdr:wsDr'); + $objWriter->writeAttribute('xmlns:xdr', 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'); + $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); + + // Loop through images and write drawings + $i = 1; + $iterator = $pWorksheet->getDrawingCollection()->getIterator(); + while ($iterator->valid()) { + $this->_writeDrawing($objWriter, $iterator->current(), $i); + + $iterator->next(); + ++$i; + } + + if ($includeCharts) { + $chartCount = $pWorksheet->getChartCount(); + // Loop through charts and write the chart position + if ($chartCount > 0) { + for ($c = 0; $c < $chartCount; ++$c) { + $this->_writeChart($objWriter, $pWorksheet->getChartByIndex($c), $c+$i); + } + } + } + + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write drawings to XML format + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Chart $pChart + * @param int $pRelationId + * @throws Exception + */ + public function _writeChart(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Chart $pChart = null, $pRelationId = -1) + { + $tl = $pChart->getTopLeftPosition(); + $tl['colRow'] = PHPExcel_Cell::coordinateFromString($tl['cell']); + $br = $pChart->getBottomRightPosition(); + $br['colRow'] = PHPExcel_Cell::coordinateFromString($br['cell']); + + $objWriter->startElement('xdr:twoCellAnchor'); + + $objWriter->startElement('xdr:from'); + $objWriter->writeElement('xdr:col', PHPExcel_Cell::columnIndexFromString($tl['colRow'][0]) - 1); + $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($tl['xOffset'])); + $objWriter->writeElement('xdr:row', $tl['colRow'][1] - 1); + $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($tl['yOffset'])); + $objWriter->endElement(); + $objWriter->startElement('xdr:to'); + $objWriter->writeElement('xdr:col', PHPExcel_Cell::columnIndexFromString($br['colRow'][0]) - 1); + $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($br['xOffset'])); + $objWriter->writeElement('xdr:row', $br['colRow'][1] - 1); + $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($br['yOffset'])); + $objWriter->endElement(); + + $objWriter->startElement('xdr:graphicFrame'); + $objWriter->writeAttribute('macro', ''); + $objWriter->startElement('xdr:nvGraphicFramePr'); + $objWriter->startElement('xdr:cNvPr'); + $objWriter->writeAttribute('name', 'Chart '.$pRelationId); + $objWriter->writeAttribute('id', 1025 * $pRelationId); + $objWriter->endElement(); + $objWriter->startElement('xdr:cNvGraphicFramePr'); + $objWriter->startElement('a:graphicFrameLocks'); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('xdr:xfrm'); + $objWriter->startElement('a:off'); + $objWriter->writeAttribute('x', '0'); + $objWriter->writeAttribute('y', '0'); + $objWriter->endElement(); + $objWriter->startElement('a:ext'); + $objWriter->writeAttribute('cx', '0'); + $objWriter->writeAttribute('cy', '0'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('a:graphic'); + $objWriter->startElement('a:graphicData'); + $objWriter->writeAttribute('uri', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); + $objWriter->startElement('c:chart'); + $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); + $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('r:id', 'rId'.$pRelationId); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('xdr:clientData'); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write drawings to XML format + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet_BaseDrawing $pDrawing + * @param int $pRelationId + * @throws Exception + */ + public function _writeDrawing(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet_BaseDrawing $pDrawing = null, $pRelationId = -1) + { + if ($pRelationId >= 0) { + // xdr:oneCellAnchor + $objWriter->startElement('xdr:oneCellAnchor'); + // Image location + $aCoordinates = PHPExcel_Cell::coordinateFromString($pDrawing->getCoordinates()); + $aCoordinates[0] = PHPExcel_Cell::columnIndexFromString($aCoordinates[0]); + + // xdr:from + $objWriter->startElement('xdr:from'); + $objWriter->writeElement('xdr:col', $aCoordinates[0] - 1); + $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getOffsetX())); + $objWriter->writeElement('xdr:row', $aCoordinates[1] - 1); + $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getOffsetY())); + $objWriter->endElement(); + + // xdr:ext + $objWriter->startElement('xdr:ext'); + $objWriter->writeAttribute('cx', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getWidth())); + $objWriter->writeAttribute('cy', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getHeight())); + $objWriter->endElement(); + + // xdr:pic + $objWriter->startElement('xdr:pic'); + + // xdr:nvPicPr + $objWriter->startElement('xdr:nvPicPr'); + + // xdr:cNvPr + $objWriter->startElement('xdr:cNvPr'); + $objWriter->writeAttribute('id', $pRelationId); + $objWriter->writeAttribute('name', $pDrawing->getName()); + $objWriter->writeAttribute('descr', $pDrawing->getDescription()); + $objWriter->endElement(); + + // xdr:cNvPicPr + $objWriter->startElement('xdr:cNvPicPr'); + + // a:picLocks + $objWriter->startElement('a:picLocks'); + $objWriter->writeAttribute('noChangeAspect', '1'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // xdr:blipFill + $objWriter->startElement('xdr:blipFill'); + + // a:blip + $objWriter->startElement('a:blip'); + $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('r:embed', 'rId' . $pRelationId); + $objWriter->endElement(); + + // a:stretch + $objWriter->startElement('a:stretch'); + $objWriter->writeElement('a:fillRect', null); + $objWriter->endElement(); + + $objWriter->endElement(); + + // xdr:spPr + $objWriter->startElement('xdr:spPr'); + + // a:xfrm + $objWriter->startElement('a:xfrm'); + $objWriter->writeAttribute('rot', PHPExcel_Shared_Drawing::degreesToAngle($pDrawing->getRotation())); + $objWriter->endElement(); + + // a:prstGeom + $objWriter->startElement('a:prstGeom'); + $objWriter->writeAttribute('prst', 'rect'); + + // a:avLst + $objWriter->writeElement('a:avLst', null); + + $objWriter->endElement(); + +// // a:solidFill +// $objWriter->startElement('a:solidFill'); + +// // a:srgbClr +// $objWriter->startElement('a:srgbClr'); +// $objWriter->writeAttribute('val', 'FFFFFF'); + +///* SHADE +// // a:shade +// $objWriter->startElement('a:shade'); +// $objWriter->writeAttribute('val', '85000'); +// $objWriter->endElement(); +//*/ + +// $objWriter->endElement(); + +// $objWriter->endElement(); +/* + // a:ln + $objWriter->startElement('a:ln'); + $objWriter->writeAttribute('w', '88900'); + $objWriter->writeAttribute('cap', 'sq'); + + // a:solidFill + $objWriter->startElement('a:solidFill'); + + // a:srgbClr + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', 'FFFFFF'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:miter + $objWriter->startElement('a:miter'); + $objWriter->writeAttribute('lim', '800000'); + $objWriter->endElement(); + + $objWriter->endElement(); +*/ + + if ($pDrawing->getShadow()->getVisible()) { + // a:effectLst + $objWriter->startElement('a:effectLst'); + + // a:outerShdw + $objWriter->startElement('a:outerShdw'); + $objWriter->writeAttribute('blurRad', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getShadow()->getBlurRadius())); + $objWriter->writeAttribute('dist', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getShadow()->getDistance())); + $objWriter->writeAttribute('dir', PHPExcel_Shared_Drawing::degreesToAngle($pDrawing->getShadow()->getDirection())); + $objWriter->writeAttribute('algn', $pDrawing->getShadow()->getAlignment()); + $objWriter->writeAttribute('rotWithShape', '0'); + + // a:srgbClr + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', $pDrawing->getShadow()->getColor()->getRGB()); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', $pDrawing->getShadow()->getAlpha() * 1000); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + } +/* + + // a:scene3d + $objWriter->startElement('a:scene3d'); + + // a:camera + $objWriter->startElement('a:camera'); + $objWriter->writeAttribute('prst', 'orthographicFront'); + $objWriter->endElement(); + + // a:lightRig + $objWriter->startElement('a:lightRig'); + $objWriter->writeAttribute('rig', 'twoPt'); + $objWriter->writeAttribute('dir', 't'); + + // a:rot + $objWriter->startElement('a:rot'); + $objWriter->writeAttribute('lat', '0'); + $objWriter->writeAttribute('lon', '0'); + $objWriter->writeAttribute('rev', '0'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); +*/ +/* + // a:sp3d + $objWriter->startElement('a:sp3d'); + + // a:bevelT + $objWriter->startElement('a:bevelT'); + $objWriter->writeAttribute('w', '25400'); + $objWriter->writeAttribute('h', '19050'); + $objWriter->endElement(); + + // a:contourClr + $objWriter->startElement('a:contourClr'); + + // a:srgbClr + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', 'FFFFFF'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); +*/ + $objWriter->endElement(); + + $objWriter->endElement(); + + // xdr:clientData + $objWriter->writeElement('xdr:clientData', null); + + $objWriter->endElement(); + } else { + throw new Exception("Invalid parameters passed."); + } + } + + /** + * Write VML header/footer images to XML format + * + * @param PHPExcel_Worksheet $pWorksheet + * @return string XML Output + * @throws Exception + */ + public function writeVMLHeaderFooterImages(PHPExcel_Worksheet $pWorksheet = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Header/footer images + $images = $pWorksheet->getHeaderFooter()->getImages(); + + // xml + $objWriter->startElement('xml'); + $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml'); + $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); + $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel'); + + // o:shapelayout + $objWriter->startElement('o:shapelayout'); + $objWriter->writeAttribute('v:ext', 'edit'); + + // o:idmap + $objWriter->startElement('o:idmap'); + $objWriter->writeAttribute('v:ext', 'edit'); + $objWriter->writeAttribute('data', '1'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // v:shapetype + $objWriter->startElement('v:shapetype'); + $objWriter->writeAttribute('id', '_x0000_t75'); + $objWriter->writeAttribute('coordsize', '21600,21600'); + $objWriter->writeAttribute('o:spt', '75'); + $objWriter->writeAttribute('o:preferrelative', 't'); + $objWriter->writeAttribute('path', 'm@4@5l@4@11@9@11@9@5xe'); + $objWriter->writeAttribute('filled', 'f'); + $objWriter->writeAttribute('stroked', 'f'); + + // v:stroke + $objWriter->startElement('v:stroke'); + $objWriter->writeAttribute('joinstyle', 'miter'); + $objWriter->endElement(); + + // v:formulas + $objWriter->startElement('v:formulas'); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'if lineDrawn pixelLineWidth 0'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'sum @0 1 0'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'sum 0 0 @1'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'prod @2 1 2'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelWidth'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelHeight'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'sum @0 0 1'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'prod @6 1 2'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelWidth'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'sum @8 21600 0'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelHeight'); + $objWriter->endElement(); + + // v:f + $objWriter->startElement('v:f'); + $objWriter->writeAttribute('eqn', 'sum @10 21600 0'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // v:path + $objWriter->startElement('v:path'); + $objWriter->writeAttribute('o:extrusionok', 'f'); + $objWriter->writeAttribute('gradientshapeok', 't'); + $objWriter->writeAttribute('o:connecttype', 'rect'); + $objWriter->endElement(); + + // o:lock + $objWriter->startElement('o:lock'); + $objWriter->writeAttribute('v:ext', 'edit'); + $objWriter->writeAttribute('aspectratio', 't'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // Loop through images + foreach ($images as $key => $value) { + $this->_writeVMLHeaderFooterImage($objWriter, $key, $value); + } + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write VML comment to XML format + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string $pReference Reference + * @param PHPExcel_Worksheet_HeaderFooterDrawing $pImage Image + * @throws Exception + */ + public function _writeVMLHeaderFooterImage(PHPExcel_Shared_XMLWriter $objWriter = null, $pReference = '', PHPExcel_Worksheet_HeaderFooterDrawing $pImage = null) + { + // Calculate object id + preg_match('{(\d+)}', md5($pReference), $m); + $id = 1500 + (substr($m[1], 0, 2) * 1); + + // Calculate offset + $width = $pImage->getWidth(); + $height = $pImage->getHeight(); + $marginLeft = $pImage->getOffsetX(); + $marginTop = $pImage->getOffsetY(); + + // v:shape + $objWriter->startElement('v:shape'); + $objWriter->writeAttribute('id', $pReference); + $objWriter->writeAttribute('o:spid', '_x0000_s' . $id); + $objWriter->writeAttribute('type', '#_x0000_t75'); + $objWriter->writeAttribute('style', "position:absolute;margin-left:{$marginLeft}px;margin-top:{$marginTop}px;width:{$width}px;height:{$height}px;z-index:1"); + + // v:imagedata + $objWriter->startElement('v:imagedata'); + $objWriter->writeAttribute('o:relid', 'rId' . $pReference); + $objWriter->writeAttribute('o:title', $pImage->getName()); + $objWriter->endElement(); + + // o:lock + $objWriter->startElement('o:lock'); + $objWriter->writeAttribute('v:ext', 'edit'); + $objWriter->writeAttribute('rotation', 't'); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + + /** + * Get an array of all drawings + * + * @param PHPExcel $pPHPExcel + * @return PHPExcel_Worksheet_Drawing[] All drawings in PHPExcel + * @throws Exception + */ + public function allDrawings(PHPExcel $pPHPExcel = null) + { + // Get an array of all drawings + $aDrawings = array(); + + // Loop through PHPExcel + $sheetCount = $pPHPExcel->getSheetCount(); + for ($i = 0; $i < $sheetCount; ++$i) { + // Loop through images and add to array + $iterator = $pPHPExcel->getSheet($i)->getDrawingCollection()->getIterator(); + while ($iterator->valid()) { + $aDrawings[] = $iterator->current(); + + $iterator->next(); + } + } + + return $aDrawings; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Rels.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Rels.php new file mode 100755 index 0000000..ff550a6 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Rels.php @@ -0,0 +1,417 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_Rels + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_Rels extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Write relationships to XML format + * + * @param PHPExcel $pPHPExcel + * @return string XML Output + * @throws Exception + */ + public function writeRelationships(PHPExcel $pPHPExcel = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Relationships + $objWriter->startElement('Relationships'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + + $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties(); + if (!empty($customPropertyList)) { + // Relationship docProps/app.xml + $this->_writeRelationship( + $objWriter, + 4, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties', + 'docProps/custom.xml' + ); + + } + + // Relationship docProps/app.xml + $this->_writeRelationship( + $objWriter, + 3, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties', + 'docProps/app.xml' + ); + + // Relationship docProps/core.xml + $this->_writeRelationship( + $objWriter, + 2, + 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', + 'docProps/core.xml' + ); + + // Relationship xl/workbook.xml + $this->_writeRelationship( + $objWriter, + 1, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument', + 'xl/workbook.xml' + ); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write workbook relationships to XML format + * + * @param PHPExcel $pPHPExcel + * @return string XML Output + * @throws Exception + */ + public function writeWorkbookRelationships(PHPExcel $pPHPExcel = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Relationships + $objWriter->startElement('Relationships'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + + // Relationship styles.xml + $this->_writeRelationship( + $objWriter, + 1, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', + 'styles.xml' + ); + + // Relationship theme/theme1.xml + $this->_writeRelationship( + $objWriter, + 2, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', + 'theme/theme1.xml' + ); + + // Relationship sharedStrings.xml + $this->_writeRelationship( + $objWriter, + 3, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', + 'sharedStrings.xml' + ); + + // Relationships with sheets + $sheetCount = $pPHPExcel->getSheetCount(); + for ($i = 0; $i < $sheetCount; ++$i) { + $this->_writeRelationship( + $objWriter, + ($i + 1 + 3), + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', + 'worksheets/sheet' . ($i + 1) . '.xml' + ); + } + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write worksheet relationships to XML format + * + * Numbering is as follows: + * rId1 - Drawings + * rId_hyperlink_x - Hyperlinks + * + * @param PHPExcel_Worksheet $pWorksheet + * @param int $pWorksheetId + * @param boolean $includeCharts Flag indicating if we should write charts + * @return string XML Output + * @throws Exception + */ + public function writeWorksheetRelationships(PHPExcel_Worksheet $pWorksheet = null, $pWorksheetId = 1, $includeCharts = FALSE) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Relationships + $objWriter->startElement('Relationships'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + + // Write drawing relationships? + $d = 0; + if ($includeCharts) { + $charts = $pWorksheet->getChartCollection(); + } else { + $charts = array(); + } + if (($pWorksheet->getDrawingCollection()->count() > 0) || + (count($charts) > 0)) { + $this->_writeRelationship( + $objWriter, + ++$d, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing', + '../drawings/drawing' . $pWorksheetId . '.xml' + ); + } + + // Write chart relationships? +// $chartCount = 0; +// $charts = $pWorksheet->getChartCollection(); +// echo 'Chart Rels: ' , count($charts) , '<br />'; +// if (count($charts) > 0) { +// foreach($charts as $chart) { +// $this->_writeRelationship( +// $objWriter, +// ++$d, +// 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', +// '../charts/chart' . ++$chartCount . '.xml' +// ); +// } +// } +// + // Write hyperlink relationships? + $i = 1; + foreach ($pWorksheet->getHyperlinkCollection() as $hyperlink) { + if (!$hyperlink->isInternal()) { + $this->_writeRelationship( + $objWriter, + '_hyperlink_' . $i, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink', + $hyperlink->getUrl(), + 'External' + ); + + ++$i; + } + } + + // Write comments relationship? + $i = 1; + if (count($pWorksheet->getComments()) > 0) { + $this->_writeRelationship( + $objWriter, + '_comments_vml' . $i, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing', + '../drawings/vmlDrawing' . $pWorksheetId . '.vml' + ); + + $this->_writeRelationship( + $objWriter, + '_comments' . $i, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments', + '../comments' . $pWorksheetId . '.xml' + ); + } + + // Write header/footer relationship? + $i = 1; + if (count($pWorksheet->getHeaderFooter()->getImages()) > 0) { + $this->_writeRelationship( + $objWriter, + '_headerfooter_vml' . $i, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing', + '../drawings/vmlDrawingHF' . $pWorksheetId . '.vml' + ); + } + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write drawing relationships to XML format + * + * @param PHPExcel_Worksheet $pWorksheet + * @param int &$chartRef Chart ID + * @param boolean $includeCharts Flag indicating if we should write charts + * @return string XML Output + * @throws Exception + */ + public function writeDrawingRelationships(PHPExcel_Worksheet $pWorksheet = null, &$chartRef, $includeCharts = FALSE) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Relationships + $objWriter->startElement('Relationships'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + + // Loop through images and write relationships + $i = 1; + $iterator = $pWorksheet->getDrawingCollection()->getIterator(); + while ($iterator->valid()) { + if ($iterator->current() instanceof PHPExcel_Worksheet_Drawing + || $iterator->current() instanceof PHPExcel_Worksheet_MemoryDrawing) { + // Write relationship for image drawing + $this->_writeRelationship( + $objWriter, + $i, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', + '../media/' . str_replace(' ', '', $iterator->current()->getIndexedFilename()) + ); + } + + $iterator->next(); + ++$i; + } + + if ($includeCharts) { + // Loop through charts and write relationships + $chartCount = $pWorksheet->getChartCount(); + if ($chartCount > 0) { + for ($c = 0; $c < $chartCount; ++$c) { + $this->_writeRelationship( + $objWriter, + $i++, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', + '../charts/chart' . ++$chartRef . '.xml' + ); + } + } + } + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write header/footer drawing relationships to XML format + * + * @param PHPExcel_Worksheet $pWorksheet + * @return string XML Output + * @throws Exception + */ + public function writeHeaderFooterDrawingRelationships(PHPExcel_Worksheet $pWorksheet = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Relationships + $objWriter->startElement('Relationships'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + + // Loop through images and write relationships + foreach ($pWorksheet->getHeaderFooter()->getImages() as $key => $value) { + // Write relationship for image drawing + $this->_writeRelationship( + $objWriter, + $key, + 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', + '../media/' . $value->getIndexedFilename() + ); + } + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write Override content type + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param int $pId Relationship ID. rId will be prepended! + * @param string $pType Relationship type + * @param string $pTarget Relationship target + * @param string $pTargetMode Relationship target mode + * @throws Exception + */ + private function _writeRelationship(PHPExcel_Shared_XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '') + { + if ($pType != '' && $pTarget != '') { + // Write relationship + $objWriter->startElement('Relationship'); + $objWriter->writeAttribute('Id', 'rId' . $pId); + $objWriter->writeAttribute('Type', $pType); + $objWriter->writeAttribute('Target', $pTarget); + + if ($pTargetMode != '') { + $objWriter->writeAttribute('TargetMode', $pTargetMode); + } + + $objWriter->endElement(); + } else { + throw new Exception("Invalid parameters passed."); + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/StringTable.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/StringTable.php new file mode 100755 index 0000000..e9fb660 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/StringTable.php @@ -0,0 +1,319 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_StringTable + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_StringTable extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Create worksheet stringtable + * + * @param PHPExcel_Worksheet $pSheet Worksheet + * @param string[] $pExistingTable Existing table to eventually merge with + * @return string[] String table for worksheet + * @throws Exception + */ + public function createStringTable($pSheet = null, $pExistingTable = null) + { + if ($pSheet !== NULL) { + // Create string lookup table + $aStringTable = array(); + $cellCollection = null; + $aFlippedStringTable = null; // For faster lookup + + // Is an existing table given? + if (($pExistingTable !== NULL) && is_array($pExistingTable)) { + $aStringTable = $pExistingTable; + } + + // Fill index array + $aFlippedStringTable = $this->flipStringTable($aStringTable); + + // Loop through cells + foreach ($pSheet->getCellCollection() as $cellID) { + $cell = $pSheet->getCell($cellID); + $cellValue = $cell->getValue(); + if (!is_object($cellValue) && + ($cellValue !== NULL) && + $cellValue !== '' && + !isset($aFlippedStringTable[$cellValue]) && + ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_STRING || $cell->getDataType() == PHPExcel_Cell_DataType::TYPE_STRING2 || $cell->getDataType() == PHPExcel_Cell_DataType::TYPE_NULL)) { + $aStringTable[] = $cellValue; + $aFlippedStringTable[$cellValue] = true; + } elseif ($cellValue instanceof PHPExcel_RichText && + ($cellValue !== NULL) && + !isset($aFlippedStringTable[$cellValue->getHashCode()])) { + $aStringTable[] = $cellValue; + $aFlippedStringTable[$cellValue->getHashCode()] = true; + } + } + + // Return + return $aStringTable; + } else { + throw new Exception("Invalid PHPExcel_Worksheet object passed."); + } + } + + /** + * Write string table to XML format + * + * @param string[] $pStringTable + * @return string XML Output + * @throws Exception + */ + public function writeStringTable($pStringTable = null) + { + if ($pStringTable !== NULL) { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // String table + $objWriter->startElement('sst'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + $objWriter->writeAttribute('uniqueCount', count($pStringTable)); + + // Loop through string table + foreach ($pStringTable as $textElement) { + $objWriter->startElement('si'); + + if (! $textElement instanceof PHPExcel_RichText) { + $textToWrite = PHPExcel_Shared_String::ControlCharacterPHP2OOXML( $textElement ); + $objWriter->startElement('t'); + if ($textToWrite !== trim($textToWrite)) { + $objWriter->writeAttribute('xml:space', 'preserve'); + } + $objWriter->writeRawData($textToWrite); + $objWriter->endElement(); + } else if ($textElement instanceof PHPExcel_RichText) { + $this->writeRichText($objWriter, $textElement); + } + + $objWriter->endElement(); + } + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } else { + throw new Exception("Invalid string table array passed."); + } + } + + /** + * Write Rich Text + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_RichText $pRichText Rich text + * @param string $prefix Optional Namespace prefix + * @throws Exception + */ + public function writeRichText(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_RichText $pRichText = null, $prefix=NULL) + { + if ($prefix !== NULL) + $prefix .= ':'; + // Loop through rich text elements + $elements = $pRichText->getRichTextElements(); + foreach ($elements as $element) { + // r + $objWriter->startElement($prefix.'r'); + + // rPr + if ($element instanceof PHPExcel_RichText_Run) { + // rPr + $objWriter->startElement($prefix.'rPr'); + + // rFont + $objWriter->startElement($prefix.'rFont'); + $objWriter->writeAttribute('val', $element->getFont()->getName()); + $objWriter->endElement(); + + // Bold + $objWriter->startElement($prefix.'b'); + $objWriter->writeAttribute('val', ($element->getFont()->getBold() ? 'true' : 'false')); + $objWriter->endElement(); + + // Italic + $objWriter->startElement($prefix.'i'); + $objWriter->writeAttribute('val', ($element->getFont()->getItalic() ? 'true' : 'false')); + $objWriter->endElement(); + + // Superscript / subscript + if ($element->getFont()->getSuperScript() || $element->getFont()->getSubScript()) { + $objWriter->startElement($prefix.'vertAlign'); + if ($element->getFont()->getSuperScript()) { + $objWriter->writeAttribute('val', 'superscript'); + } else if ($element->getFont()->getSubScript()) { + $objWriter->writeAttribute('val', 'subscript'); + } + $objWriter->endElement(); + } + + // Strikethrough + $objWriter->startElement($prefix.'strike'); + $objWriter->writeAttribute('val', ($element->getFont()->getStrikethrough() ? 'true' : 'false')); + $objWriter->endElement(); + + // Color + $objWriter->startElement($prefix.'color'); + $objWriter->writeAttribute('rgb', $element->getFont()->getColor()->getARGB()); + $objWriter->endElement(); + + // Size + $objWriter->startElement($prefix.'sz'); + $objWriter->writeAttribute('val', $element->getFont()->getSize()); + $objWriter->endElement(); + + // Underline + $objWriter->startElement($prefix.'u'); + $objWriter->writeAttribute('val', $element->getFont()->getUnderline()); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + // t + $objWriter->startElement($prefix.'t'); + $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML( $element->getText() )); + $objWriter->endElement(); + + $objWriter->endElement(); + } + } + + /** + * Write Rich Text + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string|PHPExcel_RichText $pRichText text string or Rich text + * @param string $prefix Optional Namespace prefix + * @throws Exception + */ + public function writeRichTextForCharts(PHPExcel_Shared_XMLWriter $objWriter = null, $pRichText = null, $prefix=NULL) + { + if (!$pRichText instanceof PHPExcel_RichText) { + $textRun = $pRichText; + $pRichText = new PHPExcel_RichText(); + $pRichText->createTextRun($textRun); + } + + if ($prefix !== NULL) + $prefix .= ':'; + // Loop through rich text elements + $elements = $pRichText->getRichTextElements(); + foreach ($elements as $element) { + // r + $objWriter->startElement($prefix.'r'); + + // rPr + $objWriter->startElement($prefix.'rPr'); + + // Bold + $objWriter->writeAttribute('b', ($element->getFont()->getBold() ? 1 : 0)); + // Italic + $objWriter->writeAttribute('i', ($element->getFont()->getItalic() ? 1 : 0)); + // Underline + $underlineType = $element->getFont()->getUnderline(); + switch($underlineType) { + case 'single' : + $underlineType = 'sng'; + break; + case 'double' : + $underlineType = 'dbl'; + break; + } + $objWriter->writeAttribute('u', $underlineType); + // Strikethrough + $objWriter->writeAttribute('strike', ($element->getFont()->getStrikethrough() ? 'sngStrike' : 'noStrike')); + + // rFont + $objWriter->startElement($prefix.'latin'); + $objWriter->writeAttribute('typeface', $element->getFont()->getName()); + $objWriter->endElement(); + + // Superscript / subscript +// if ($element->getFont()->getSuperScript() || $element->getFont()->getSubScript()) { +// $objWriter->startElement($prefix.'vertAlign'); +// if ($element->getFont()->getSuperScript()) { +// $objWriter->writeAttribute('val', 'superscript'); +// } else if ($element->getFont()->getSubScript()) { +// $objWriter->writeAttribute('val', 'subscript'); +// } +// $objWriter->endElement(); +// } +// + $objWriter->endElement(); + + // t + $objWriter->startElement($prefix.'t'); +// $objWriter->writeAttribute('xml:space', 'preserve'); // Excel2010 accepts, Excel2007 complains + $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML( $element->getText() )); + $objWriter->endElement(); + + $objWriter->endElement(); + } + } + + /** + * Flip string table (for index searching) + * + * @param array $stringTable Stringtable + * @return array + */ + public function flipStringTable($stringTable = array()) { + // Return value + $returnValue = array(); + + // Loop through stringtable and add flipped items to $returnValue + foreach ($stringTable as $key => $value) { + if (! $value instanceof PHPExcel_RichText) { + $returnValue[$value] = $key; + } else if ($value instanceof PHPExcel_RichText) { + $returnValue[$value->getHashCode()] = $key; + } + } + + // Return + return $returnValue; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Style.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Style.php new file mode 100755 index 0000000..b24deba --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Style.php @@ -0,0 +1,701 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_Style + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_Style extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Write styles to XML format + * + * @param PHPExcel $pPHPExcel + * @return string XML Output + * @throws Exception + */ + public function writeStyles(PHPExcel $pPHPExcel = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // styleSheet + $objWriter->startElement('styleSheet'); + $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + + // numFmts + $objWriter->startElement('numFmts'); + $objWriter->writeAttribute('count', $this->getParentWriter()->getNumFmtHashTable()->count()); + + // numFmt + for ($i = 0; $i < $this->getParentWriter()->getNumFmtHashTable()->count(); ++$i) { + $this->_writeNumFmt($objWriter, $this->getParentWriter()->getNumFmtHashTable()->getByIndex($i), $i); + } + + $objWriter->endElement(); + + // fonts + $objWriter->startElement('fonts'); + $objWriter->writeAttribute('count', $this->getParentWriter()->getFontHashTable()->count()); + + // font + for ($i = 0; $i < $this->getParentWriter()->getFontHashTable()->count(); ++$i) { + $this->_writeFont($objWriter, $this->getParentWriter()->getFontHashTable()->getByIndex($i)); + } + + $objWriter->endElement(); + + // fills + $objWriter->startElement('fills'); + $objWriter->writeAttribute('count', $this->getParentWriter()->getFillHashTable()->count()); + + // fill + for ($i = 0; $i < $this->getParentWriter()->getFillHashTable()->count(); ++$i) { + $this->_writeFill($objWriter, $this->getParentWriter()->getFillHashTable()->getByIndex($i)); + } + + $objWriter->endElement(); + + // borders + $objWriter->startElement('borders'); + $objWriter->writeAttribute('count', $this->getParentWriter()->getBordersHashTable()->count()); + + // border + for ($i = 0; $i < $this->getParentWriter()->getBordersHashTable()->count(); ++$i) { + $this->_writeBorder($objWriter, $this->getParentWriter()->getBordersHashTable()->getByIndex($i)); + } + + $objWriter->endElement(); + + // cellStyleXfs + $objWriter->startElement('cellStyleXfs'); + $objWriter->writeAttribute('count', 1); + + // xf + $objWriter->startElement('xf'); + $objWriter->writeAttribute('numFmtId', 0); + $objWriter->writeAttribute('fontId', 0); + $objWriter->writeAttribute('fillId', 0); + $objWriter->writeAttribute('borderId', 0); + $objWriter->endElement(); + + $objWriter->endElement(); + + // cellXfs + $objWriter->startElement('cellXfs'); + $objWriter->writeAttribute('count', count($pPHPExcel->getCellXfCollection())); + + // xf + foreach ($pPHPExcel->getCellXfCollection() as $cellXf) { + $this->_writeCellStyleXf($objWriter, $cellXf, $pPHPExcel); + } + + $objWriter->endElement(); + + // cellStyles + $objWriter->startElement('cellStyles'); + $objWriter->writeAttribute('count', 1); + + // cellStyle + $objWriter->startElement('cellStyle'); + $objWriter->writeAttribute('name', 'Normal'); + $objWriter->writeAttribute('xfId', 0); + $objWriter->writeAttribute('builtinId', 0); + $objWriter->endElement(); + + $objWriter->endElement(); + + // dxfs + $objWriter->startElement('dxfs'); + $objWriter->writeAttribute('count', $this->getParentWriter()->getStylesConditionalHashTable()->count()); + + // dxf + for ($i = 0; $i < $this->getParentWriter()->getStylesConditionalHashTable()->count(); ++$i) { + $this->_writeCellStyleDxf($objWriter, $this->getParentWriter()->getStylesConditionalHashTable()->getByIndex($i)->getStyle()); + } + + $objWriter->endElement(); + + // tableStyles + $objWriter->startElement('tableStyles'); + $objWriter->writeAttribute('defaultTableStyle', 'TableStyleMedium9'); + $objWriter->writeAttribute('defaultPivotStyle', 'PivotTableStyle1'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write Fill + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Style_Fill $pFill Fill style + * @throws Exception + */ + private function _writeFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) + { + // Check if this is a pattern type or gradient type + if ($pFill->getFillType() === PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR || + $pFill->getFillType() === PHPExcel_Style_Fill::FILL_GRADIENT_PATH) { + // Gradient fill + $this->_writeGradientFill($objWriter, $pFill); + } elseif($pFill->getFillType() !== NULL) { + // Pattern fill + $this->_writePatternFill($objWriter, $pFill); + } + } + + /** + * Write Gradient Fill + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Style_Fill $pFill Fill style + * @throws Exception + */ + private function _writeGradientFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) + { + // fill + $objWriter->startElement('fill'); + + // gradientFill + $objWriter->startElement('gradientFill'); + $objWriter->writeAttribute('type', $pFill->getFillType()); + $objWriter->writeAttribute('degree', $pFill->getRotation()); + + // stop + $objWriter->startElement('stop'); + $objWriter->writeAttribute('position', '0'); + + // color + $objWriter->startElement('color'); + $objWriter->writeAttribute('rgb', $pFill->getStartColor()->getARGB()); + $objWriter->endElement(); + + $objWriter->endElement(); + + // stop + $objWriter->startElement('stop'); + $objWriter->writeAttribute('position', '1'); + + // color + $objWriter->startElement('color'); + $objWriter->writeAttribute('rgb', $pFill->getEndColor()->getARGB()); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write Pattern Fill + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Style_Fill $pFill Fill style + * @throws Exception + */ + private function _writePatternFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) + { + // fill + $objWriter->startElement('fill'); + + // patternFill + $objWriter->startElement('patternFill'); + $objWriter->writeAttribute('patternType', $pFill->getFillType()); + + if ($pFill->getFillType() !== PHPExcel_Style_Fill::FILL_NONE) { + // fgColor + if ($pFill->getStartColor()->getARGB()) { + $objWriter->startElement('fgColor'); + $objWriter->writeAttribute('rgb', $pFill->getStartColor()->getARGB()); + $objWriter->endElement(); + } + } + if ($pFill->getFillType() !== PHPExcel_Style_Fill::FILL_NONE) { + // bgColor + if ($pFill->getEndColor()->getARGB()) { + $objWriter->startElement('bgColor'); + $objWriter->writeAttribute('rgb', $pFill->getEndColor()->getARGB()); + $objWriter->endElement(); + } + } + + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write Font + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Style_Font $pFont Font style + * @throws Exception + */ + private function _writeFont(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Font $pFont = null) + { + // font + $objWriter->startElement('font'); + // Weird! The order of these elements actually makes a difference when opening Excel2007 + // files in Excel2003 with the compatibility pack. It's not documented behaviour, + // and makes for a real WTF! + + // Bold. We explicitly write this element also when false (like MS Office Excel 2007 does + // for conditional formatting). Otherwise it will apparently not be picked up in conditional + // formatting style dialog + if ($pFont->getBold() !== NULL) { + $objWriter->startElement('b'); + $objWriter->writeAttribute('val', $pFont->getBold() ? '1' : '0'); + $objWriter->endElement(); + } + + // Italic + if ($pFont->getItalic() !== NULL) { + $objWriter->startElement('i'); + $objWriter->writeAttribute('val', $pFont->getItalic() ? '1' : '0'); + $objWriter->endElement(); + } + + // Strikethrough + if ($pFont->getStrikethrough() !== NULL) { + $objWriter->startElement('strike'); + $objWriter->writeAttribute('val', $pFont->getStrikethrough() ? '1' : '0'); + $objWriter->endElement(); + } + + // Underline + if ($pFont->getUnderline() !== NULL) { + $objWriter->startElement('u'); + $objWriter->writeAttribute('val', $pFont->getUnderline()); + $objWriter->endElement(); + } + + // Superscript / subscript + if ($pFont->getSuperScript() === TRUE || $pFont->getSubScript() === TRUE) { + $objWriter->startElement('vertAlign'); + if ($pFont->getSuperScript() === TRUE) { + $objWriter->writeAttribute('val', 'superscript'); + } else if ($pFont->getSubScript() === TRUE) { + $objWriter->writeAttribute('val', 'subscript'); + } + $objWriter->endElement(); + } + + // Size + if ($pFont->getSize() !== NULL) { + $objWriter->startElement('sz'); + $objWriter->writeAttribute('val', $pFont->getSize()); + $objWriter->endElement(); + } + + // Foreground color + if ($pFont->getColor()->getARGB() !== NULL) { + $objWriter->startElement('color'); + $objWriter->writeAttribute('rgb', $pFont->getColor()->getARGB()); + $objWriter->endElement(); + } + + // Name + if ($pFont->getName() !== NULL) { + $objWriter->startElement('name'); + $objWriter->writeAttribute('val', $pFont->getName()); + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + + /** + * Write Border + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Style_Borders $pBorders Borders style + * @throws Exception + */ + private function _writeBorder(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Borders $pBorders = null) + { + // Write border + $objWriter->startElement('border'); + // Diagonal? + switch ($pBorders->getDiagonalDirection()) { + case PHPExcel_Style_Borders::DIAGONAL_UP: + $objWriter->writeAttribute('diagonalUp', 'true'); + $objWriter->writeAttribute('diagonalDown', 'false'); + break; + case PHPExcel_Style_Borders::DIAGONAL_DOWN: + $objWriter->writeAttribute('diagonalUp', 'false'); + $objWriter->writeAttribute('diagonalDown', 'true'); + break; + case PHPExcel_Style_Borders::DIAGONAL_BOTH: + $objWriter->writeAttribute('diagonalUp', 'true'); + $objWriter->writeAttribute('diagonalDown', 'true'); + break; + } + + // BorderPr + $this->_writeBorderPr($objWriter, 'left', $pBorders->getLeft()); + $this->_writeBorderPr($objWriter, 'right', $pBorders->getRight()); + $this->_writeBorderPr($objWriter, 'top', $pBorders->getTop()); + $this->_writeBorderPr($objWriter, 'bottom', $pBorders->getBottom()); + $this->_writeBorderPr($objWriter, 'diagonal', $pBorders->getDiagonal()); + $objWriter->endElement(); + } + + /** + * Write Cell Style Xf + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Style $pStyle Style + * @param PHPExcel $pPHPExcel Workbook + * @throws Exception + */ + private function _writeCellStyleXf(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style $pStyle = null, PHPExcel $pPHPExcel = null) + { + // xf + $objWriter->startElement('xf'); + $objWriter->writeAttribute('xfId', 0); + $objWriter->writeAttribute('fontId', (int)$this->getParentWriter()->getFontHashTable()->getIndexForHashCode($pStyle->getFont()->getHashCode())); + + if ($pStyle->getNumberFormat()->getBuiltInFormatCode() === false) { + $objWriter->writeAttribute('numFmtId', (int)($this->getParentWriter()->getNumFmtHashTable()->getIndexForHashCode($pStyle->getNumberFormat()->getHashCode()) + 164) ); + } else { + $objWriter->writeAttribute('numFmtId', (int)$pStyle->getNumberFormat()->getBuiltInFormatCode()); + } + + $objWriter->writeAttribute('fillId', (int)$this->getParentWriter()->getFillHashTable()->getIndexForHashCode($pStyle->getFill()->getHashCode())); + $objWriter->writeAttribute('borderId', (int)$this->getParentWriter()->getBordersHashTable()->getIndexForHashCode($pStyle->getBorders()->getHashCode())); + + // Apply styles? + $objWriter->writeAttribute('applyFont', ($pPHPExcel->getDefaultStyle()->getFont()->getHashCode() != $pStyle->getFont()->getHashCode()) ? '1' : '0'); + $objWriter->writeAttribute('applyNumberFormat', ($pPHPExcel->getDefaultStyle()->getNumberFormat()->getHashCode() != $pStyle->getNumberFormat()->getHashCode()) ? '1' : '0'); + $objWriter->writeAttribute('applyFill', ($pPHPExcel->getDefaultStyle()->getFill()->getHashCode() != $pStyle->getFill()->getHashCode()) ? '1' : '0'); + $objWriter->writeAttribute('applyBorder', ($pPHPExcel->getDefaultStyle()->getBorders()->getHashCode() != $pStyle->getBorders()->getHashCode()) ? '1' : '0'); + $objWriter->writeAttribute('applyAlignment', ($pPHPExcel->getDefaultStyle()->getAlignment()->getHashCode() != $pStyle->getAlignment()->getHashCode()) ? '1' : '0'); + if ($pStyle->getProtection()->getLocked() != PHPExcel_Style_Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { + $objWriter->writeAttribute('applyProtection', 'true'); + } + + // alignment + $objWriter->startElement('alignment'); + $objWriter->writeAttribute('horizontal', $pStyle->getAlignment()->getHorizontal()); + $objWriter->writeAttribute('vertical', $pStyle->getAlignment()->getVertical()); + + $textRotation = 0; + if ($pStyle->getAlignment()->getTextRotation() >= 0) { + $textRotation = $pStyle->getAlignment()->getTextRotation(); + } else if ($pStyle->getAlignment()->getTextRotation() < 0) { + $textRotation = 90 - $pStyle->getAlignment()->getTextRotation(); + } + $objWriter->writeAttribute('textRotation', $textRotation); + + $objWriter->writeAttribute('wrapText', ($pStyle->getAlignment()->getWrapText() ? 'true' : 'false')); + $objWriter->writeAttribute('shrinkToFit', ($pStyle->getAlignment()->getShrinkToFit() ? 'true' : 'false')); + + if ($pStyle->getAlignment()->getIndent() > 0) { + $objWriter->writeAttribute('indent', $pStyle->getAlignment()->getIndent()); + } + $objWriter->endElement(); + + // protection + if ($pStyle->getProtection()->getLocked() != PHPExcel_Style_Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { + $objWriter->startElement('protection'); + if ($pStyle->getProtection()->getLocked() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { + $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); + } + if ($pStyle->getProtection()->getHidden() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { + $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); + } + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + + /** + * Write Cell Style Dxf + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Style $pStyle Style + * @throws Exception + */ + private function _writeCellStyleDxf(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style $pStyle = null) + { + // dxf + $objWriter->startElement('dxf'); + + // font + $this->_writeFont($objWriter, $pStyle->getFont()); + + // numFmt + $this->_writeNumFmt($objWriter, $pStyle->getNumberFormat()); + + // fill + $this->_writeFill($objWriter, $pStyle->getFill()); + + // alignment + $objWriter->startElement('alignment'); + if ($pStyle->getAlignment()->getHorizontal() !== NULL) { + $objWriter->writeAttribute('horizontal', $pStyle->getAlignment()->getHorizontal()); + } + if ($pStyle->getAlignment()->getVertical() !== NULL) { + $objWriter->writeAttribute('vertical', $pStyle->getAlignment()->getVertical()); + } + + if ($pStyle->getAlignment()->getTextRotation() !== NULL) { + $textRotation = 0; + if ($pStyle->getAlignment()->getTextRotation() >= 0) { + $textRotation = $pStyle->getAlignment()->getTextRotation(); + } else if ($pStyle->getAlignment()->getTextRotation() < 0) { + $textRotation = 90 - $pStyle->getAlignment()->getTextRotation(); + } + $objWriter->writeAttribute('textRotation', $textRotation); + } + $objWriter->endElement(); + + // border + $this->_writeBorder($objWriter, $pStyle->getBorders()); + + // protection + if (($pStyle->getProtection()->getLocked() !== NULL) || + ($pStyle->getProtection()->getHidden() !== NULL)) { + if ($pStyle->getProtection()->getLocked() !== PHPExcel_Style_Protection::PROTECTION_INHERIT || + $pStyle->getProtection()->getHidden() !== PHPExcel_Style_Protection::PROTECTION_INHERIT) { + $objWriter->startElement('protection'); + if (($pStyle->getProtection()->getLocked() !== NULL) && + ($pStyle->getProtection()->getLocked() !== PHPExcel_Style_Protection::PROTECTION_INHERIT)) { + $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); + } + if (($pStyle->getProtection()->getHidden() !== NULL) && + ($pStyle->getProtection()->getHidden() !== PHPExcel_Style_Protection::PROTECTION_INHERIT)) { + $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); + } + $objWriter->endElement(); + } + } + + $objWriter->endElement(); + } + + /** + * Write BorderPr + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string $pName Element name + * @param PHPExcel_Style_Border $pBorder Border style + * @throws Exception + */ + private function _writeBorderPr(PHPExcel_Shared_XMLWriter $objWriter = null, $pName = 'left', PHPExcel_Style_Border $pBorder = null) + { + // Write BorderPr + if ($pBorder->getBorderStyle() != PHPExcel_Style_Border::BORDER_NONE) { + $objWriter->startElement($pName); + $objWriter->writeAttribute('style', $pBorder->getBorderStyle()); + + // color + $objWriter->startElement('color'); + $objWriter->writeAttribute('rgb', $pBorder->getColor()->getARGB()); + $objWriter->endElement(); + + $objWriter->endElement(); + } + } + + /** + * Write NumberFormat + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Style_NumberFormat $pNumberFormat Number Format + * @param int $pId Number Format identifier + * @throws Exception + */ + private function _writeNumFmt(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_NumberFormat $pNumberFormat = null, $pId = 0) + { + // Translate formatcode + $formatCode = $pNumberFormat->getFormatCode(); + + // numFmt + if ($formatCode !== NULL) { + $objWriter->startElement('numFmt'); + $objWriter->writeAttribute('numFmtId', ($pId + 164)); + $objWriter->writeAttribute('formatCode', $formatCode); + $objWriter->endElement(); + } + } + + /** + * Get an array of all styles + * + * @param PHPExcel $pPHPExcel + * @return PHPExcel_Style[] All styles in PHPExcel + * @throws Exception + */ + public function allStyles(PHPExcel $pPHPExcel = null) + { + $aStyles = $pPHPExcel->getCellXfCollection(); + + return $aStyles; + } + + /** + * Get an array of all conditional styles + * + * @param PHPExcel $pPHPExcel + * @return PHPExcel_Style_Conditional[] All conditional styles in PHPExcel + * @throws Exception + */ + public function allConditionalStyles(PHPExcel $pPHPExcel = null) + { + // Get an array of all styles + $aStyles = array(); + + $sheetCount = $pPHPExcel->getSheetCount(); + for ($i = 0; $i < $sheetCount; ++$i) { + foreach ($pPHPExcel->getSheet($i)->getConditionalStylesCollection() as $conditionalStyles) { + foreach ($conditionalStyles as $conditionalStyle) { + $aStyles[] = $conditionalStyle; + } + } + } + + return $aStyles; + } + + /** + * Get an array of all fills + * + * @param PHPExcel $pPHPExcel + * @return PHPExcel_Style_Fill[] All fills in PHPExcel + * @throws Exception + */ + public function allFills(PHPExcel $pPHPExcel = null) + { + // Get an array of unique fills + $aFills = array(); + + // Two first fills are predefined + $fill0 = new PHPExcel_Style_Fill(); + $fill0->setFillType(PHPExcel_Style_Fill::FILL_NONE); + $aFills[] = $fill0; + + $fill1 = new PHPExcel_Style_Fill(); + $fill1->setFillType(PHPExcel_Style_Fill::FILL_PATTERN_GRAY125); + $aFills[] = $fill1; + // The remaining fills + $aStyles = $this->allStyles($pPHPExcel); + foreach ($aStyles as $style) { + if (!array_key_exists($style->getFill()->getHashCode(), $aFills)) { + $aFills[ $style->getFill()->getHashCode() ] = $style->getFill(); + } + } + + return $aFills; + } + + /** + * Get an array of all fonts + * + * @param PHPExcel $pPHPExcel + * @return PHPExcel_Style_Font[] All fonts in PHPExcel + * @throws Exception + */ + public function allFonts(PHPExcel $pPHPExcel = null) + { + // Get an array of unique fonts + $aFonts = array(); + $aStyles = $this->allStyles($pPHPExcel); + + foreach ($aStyles as $style) { + if (!array_key_exists($style->getFont()->getHashCode(), $aFonts)) { + $aFonts[ $style->getFont()->getHashCode() ] = $style->getFont(); + } + } + + return $aFonts; + } + + /** + * Get an array of all borders + * + * @param PHPExcel $pPHPExcel + * @return PHPExcel_Style_Borders[] All borders in PHPExcel + * @throws Exception + */ + public function allBorders(PHPExcel $pPHPExcel = null) + { + // Get an array of unique borders + $aBorders = array(); + $aStyles = $this->allStyles($pPHPExcel); + + foreach ($aStyles as $style) { + if (!array_key_exists($style->getBorders()->getHashCode(), $aBorders)) { + $aBorders[ $style->getBorders()->getHashCode() ] = $style->getBorders(); + } + } + + return $aBorders; + } + + /** + * Get an array of all number formats + * + * @param PHPExcel $pPHPExcel + * @return PHPExcel_Style_NumberFormat[] All number formats in PHPExcel + * @throws Exception + */ + public function allNumberFormats(PHPExcel $pPHPExcel = null) + { + // Get an array of unique number formats + $aNumFmts = array(); + $aStyles = $this->allStyles($pPHPExcel); + + foreach ($aStyles as $style) { + if ($style->getNumberFormat()->getBuiltInFormatCode() === false && !array_key_exists($style->getNumberFormat()->getHashCode(), $aNumFmts)) { + $aNumFmts[ $style->getNumberFormat()->getHashCode() ] = $style->getNumberFormat(); + } + } + + return $aNumFmts; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Theme.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Theme.php new file mode 100755 index 0000000..e067efe --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Theme.php @@ -0,0 +1,871 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_DocProps + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_Theme extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Map of Major fonts to write + * @static array of string + * + */ + private static $_majorFonts = array( + 'Jpan' => 'MS Pゴシック', + 'Hang' => '맑은 고딕', + 'Hans' => '宋体', + 'Hant' => '新細明體', + 'Arab' => 'Times New Roman', + 'Hebr' => 'Times New Roman', + 'Thai' => 'Tahoma', + 'Ethi' => 'Nyala', + 'Beng' => 'Vrinda', + 'Gujr' => 'Shruti', + 'Khmr' => 'MoolBoran', + 'Knda' => 'Tunga', + 'Guru' => 'Raavi', + 'Cans' => 'Euphemia', + 'Cher' => 'Plantagenet Cherokee', + 'Yiii' => 'Microsoft Yi Baiti', + 'Tibt' => 'Microsoft Himalaya', + 'Thaa' => 'MV Boli', + 'Deva' => 'Mangal', + 'Telu' => 'Gautami', + 'Taml' => 'Latha', + 'Syrc' => 'Estrangelo Edessa', + 'Orya' => 'Kalinga', + 'Mlym' => 'Kartika', + 'Laoo' => 'DokChampa', + 'Sinh' => 'Iskoola Pota', + 'Mong' => 'Mongolian Baiti', + 'Viet' => 'Times New Roman', + 'Uigh' => 'Microsoft Uighur', + 'Geor' => 'Sylfaen', + ); + + /** + * Map of Minor fonts to write + * @static array of string + * + */ + private static $_minorFonts = array( + 'Jpan' => 'MS Pゴシック', + 'Hang' => '맑은 고딕', + 'Hans' => '宋体', + 'Hant' => '新細明體', + 'Arab' => 'Arial', + 'Hebr' => 'Arial', + 'Thai' => 'Tahoma', + 'Ethi' => 'Nyala', + 'Beng' => 'Vrinda', + 'Gujr' => 'Shruti', + 'Khmr' => 'DaunPenh', + 'Knda' => 'Tunga', + 'Guru' => 'Raavi', + 'Cans' => 'Euphemia', + 'Cher' => 'Plantagenet Cherokee', + 'Yiii' => 'Microsoft Yi Baiti', + 'Tibt' => 'Microsoft Himalaya', + 'Thaa' => 'MV Boli', + 'Deva' => 'Mangal', + 'Telu' => 'Gautami', + 'Taml' => 'Latha', + 'Syrc' => 'Estrangelo Edessa', + 'Orya' => 'Kalinga', + 'Mlym' => 'Kartika', + 'Laoo' => 'DokChampa', + 'Sinh' => 'Iskoola Pota', + 'Mong' => 'Mongolian Baiti', + 'Viet' => 'Arial', + 'Uigh' => 'Microsoft Uighur', + 'Geor' => 'Sylfaen', + ); + + /** + * Map of core colours + * @static array of string + * + */ + private static $_colourScheme = array( + 'dk2' => '1F497D', + 'lt2' => 'EEECE1', + 'accent1' => '4F81BD', + 'accent2' => 'C0504D', + 'accent3' => '9BBB59', + 'accent4' => '8064A2', + 'accent5' => '4BACC6', + 'accent6' => 'F79646', + 'hlink' => '0000FF', + 'folHlink' => '800080', + ); + + /** + * Write theme to XML format + * + * @param PHPExcel $pPHPExcel + * @return string XML Output + * @throws Exception + */ + public function writeTheme(PHPExcel $pPHPExcel = null) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // a:theme + $objWriter->startElement('a:theme'); + $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); + $objWriter->writeAttribute('name', 'Office Theme'); + + // a:themeElements + $objWriter->startElement('a:themeElements'); + + // a:clrScheme + $objWriter->startElement('a:clrScheme'); + $objWriter->writeAttribute('name', 'Office'); + + // a:dk1 + $objWriter->startElement('a:dk1'); + + // a:sysClr + $objWriter->startElement('a:sysClr'); + $objWriter->writeAttribute('val', 'windowText'); + $objWriter->writeAttribute('lastClr', '000000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:lt1 + $objWriter->startElement('a:lt1'); + + // a:sysClr + $objWriter->startElement('a:sysClr'); + $objWriter->writeAttribute('val', 'window'); + $objWriter->writeAttribute('lastClr', 'FFFFFF'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:dk2 + $this->_writeColourScheme($objWriter); + + $objWriter->endElement(); + + // a:fontScheme + $objWriter->startElement('a:fontScheme'); + $objWriter->writeAttribute('name', 'Office'); + + // a:majorFont + $objWriter->startElement('a:majorFont'); + $this->_writeFonts($objWriter, 'Cambria', self::$_majorFonts); + $objWriter->endElement(); + + // a:minorFont + $objWriter->startElement('a:minorFont'); + $this->_writeFonts($objWriter, 'Calibri', self::$_minorFonts); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:fmtScheme + $objWriter->startElement('a:fmtScheme'); + $objWriter->writeAttribute('name', 'Office'); + + // a:fillStyleLst + $objWriter->startElement('a:fillStyleLst'); + + // a:solidFill + $objWriter->startElement('a:solidFill'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gradFill + $objWriter->startElement('a:gradFill'); + $objWriter->writeAttribute('rotWithShape', '1'); + + // a:gsLst + $objWriter->startElement('a:gsLst'); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '0'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:tint + $objWriter->startElement('a:tint'); + $objWriter->writeAttribute('val', '50000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '300000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '35000'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:tint + $objWriter->startElement('a:tint'); + $objWriter->writeAttribute('val', '37000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '300000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '100000'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:tint + $objWriter->startElement('a:tint'); + $objWriter->writeAttribute('val', '15000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '350000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:lin + $objWriter->startElement('a:lin'); + $objWriter->writeAttribute('ang', '16200000'); + $objWriter->writeAttribute('scaled', '1'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gradFill + $objWriter->startElement('a:gradFill'); + $objWriter->writeAttribute('rotWithShape', '1'); + + // a:gsLst + $objWriter->startElement('a:gsLst'); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '0'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:shade + $objWriter->startElement('a:shade'); + $objWriter->writeAttribute('val', '51000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '130000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '80000'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:shade + $objWriter->startElement('a:shade'); + $objWriter->writeAttribute('val', '93000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '130000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '100000'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:shade + $objWriter->startElement('a:shade'); + $objWriter->writeAttribute('val', '94000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '135000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:lin + $objWriter->startElement('a:lin'); + $objWriter->writeAttribute('ang', '16200000'); + $objWriter->writeAttribute('scaled', '0'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:lnStyleLst + $objWriter->startElement('a:lnStyleLst'); + + // a:ln + $objWriter->startElement('a:ln'); + $objWriter->writeAttribute('w', '9525'); + $objWriter->writeAttribute('cap', 'flat'); + $objWriter->writeAttribute('cmpd', 'sng'); + $objWriter->writeAttribute('algn', 'ctr'); + + // a:solidFill + $objWriter->startElement('a:solidFill'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:shade + $objWriter->startElement('a:shade'); + $objWriter->writeAttribute('val', '95000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '105000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:prstDash + $objWriter->startElement('a:prstDash'); + $objWriter->writeAttribute('val', 'solid'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:ln + $objWriter->startElement('a:ln'); + $objWriter->writeAttribute('w', '25400'); + $objWriter->writeAttribute('cap', 'flat'); + $objWriter->writeAttribute('cmpd', 'sng'); + $objWriter->writeAttribute('algn', 'ctr'); + + // a:solidFill + $objWriter->startElement('a:solidFill'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:prstDash + $objWriter->startElement('a:prstDash'); + $objWriter->writeAttribute('val', 'solid'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:ln + $objWriter->startElement('a:ln'); + $objWriter->writeAttribute('w', '38100'); + $objWriter->writeAttribute('cap', 'flat'); + $objWriter->writeAttribute('cmpd', 'sng'); + $objWriter->writeAttribute('algn', 'ctr'); + + // a:solidFill + $objWriter->startElement('a:solidFill'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:prstDash + $objWriter->startElement('a:prstDash'); + $objWriter->writeAttribute('val', 'solid'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + + + // a:effectStyleLst + $objWriter->startElement('a:effectStyleLst'); + + // a:effectStyle + $objWriter->startElement('a:effectStyle'); + + // a:effectLst + $objWriter->startElement('a:effectLst'); + + // a:outerShdw + $objWriter->startElement('a:outerShdw'); + $objWriter->writeAttribute('blurRad', '40000'); + $objWriter->writeAttribute('dist', '20000'); + $objWriter->writeAttribute('dir', '5400000'); + $objWriter->writeAttribute('rotWithShape', '0'); + + // a:srgbClr + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', '000000'); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', '38000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:effectStyle + $objWriter->startElement('a:effectStyle'); + + // a:effectLst + $objWriter->startElement('a:effectLst'); + + // a:outerShdw + $objWriter->startElement('a:outerShdw'); + $objWriter->writeAttribute('blurRad', '40000'); + $objWriter->writeAttribute('dist', '23000'); + $objWriter->writeAttribute('dir', '5400000'); + $objWriter->writeAttribute('rotWithShape', '0'); + + // a:srgbClr + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', '000000'); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', '35000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:effectStyle + $objWriter->startElement('a:effectStyle'); + + // a:effectLst + $objWriter->startElement('a:effectLst'); + + // a:outerShdw + $objWriter->startElement('a:outerShdw'); + $objWriter->writeAttribute('blurRad', '40000'); + $objWriter->writeAttribute('dist', '23000'); + $objWriter->writeAttribute('dir', '5400000'); + $objWriter->writeAttribute('rotWithShape', '0'); + + // a:srgbClr + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', '000000'); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', '35000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:scene3d + $objWriter->startElement('a:scene3d'); + + // a:camera + $objWriter->startElement('a:camera'); + $objWriter->writeAttribute('prst', 'orthographicFront'); + + // a:rot + $objWriter->startElement('a:rot'); + $objWriter->writeAttribute('lat', '0'); + $objWriter->writeAttribute('lon', '0'); + $objWriter->writeAttribute('rev', '0'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:lightRig + $objWriter->startElement('a:lightRig'); + $objWriter->writeAttribute('rig', 'threePt'); + $objWriter->writeAttribute('dir', 't'); + + // a:rot + $objWriter->startElement('a:rot'); + $objWriter->writeAttribute('lat', '0'); + $objWriter->writeAttribute('lon', '0'); + $objWriter->writeAttribute('rev', '1200000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:sp3d + $objWriter->startElement('a:sp3d'); + + // a:bevelT + $objWriter->startElement('a:bevelT'); + $objWriter->writeAttribute('w', '63500'); + $objWriter->writeAttribute('h', '25400'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:bgFillStyleLst + $objWriter->startElement('a:bgFillStyleLst'); + + // a:solidFill + $objWriter->startElement('a:solidFill'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gradFill + $objWriter->startElement('a:gradFill'); + $objWriter->writeAttribute('rotWithShape', '1'); + + // a:gsLst + $objWriter->startElement('a:gsLst'); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '0'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:tint + $objWriter->startElement('a:tint'); + $objWriter->writeAttribute('val', '40000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '350000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '40000'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:tint + $objWriter->startElement('a:tint'); + $objWriter->writeAttribute('val', '45000'); + $objWriter->endElement(); + + // a:shade + $objWriter->startElement('a:shade'); + $objWriter->writeAttribute('val', '99000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '350000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '100000'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:shade + $objWriter->startElement('a:shade'); + $objWriter->writeAttribute('val', '20000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '255000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:path + $objWriter->startElement('a:path'); + $objWriter->writeAttribute('path', 'circle'); + + // a:fillToRect + $objWriter->startElement('a:fillToRect'); + $objWriter->writeAttribute('l', '50000'); + $objWriter->writeAttribute('t', '-80000'); + $objWriter->writeAttribute('r', '50000'); + $objWriter->writeAttribute('b', '180000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gradFill + $objWriter->startElement('a:gradFill'); + $objWriter->writeAttribute('rotWithShape', '1'); + + // a:gsLst + $objWriter->startElement('a:gsLst'); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '0'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:tint + $objWriter->startElement('a:tint'); + $objWriter->writeAttribute('val', '80000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '300000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:gs + $objWriter->startElement('a:gs'); + $objWriter->writeAttribute('pos', '100000'); + + // a:schemeClr + $objWriter->startElement('a:schemeClr'); + $objWriter->writeAttribute('val', 'phClr'); + + // a:shade + $objWriter->startElement('a:shade'); + $objWriter->writeAttribute('val', '30000'); + $objWriter->endElement(); + + // a:satMod + $objWriter->startElement('a:satMod'); + $objWriter->writeAttribute('val', '200000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:path + $objWriter->startElement('a:path'); + $objWriter->writeAttribute('path', 'circle'); + + // a:fillToRect + $objWriter->startElement('a:fillToRect'); + $objWriter->writeAttribute('l', '50000'); + $objWriter->writeAttribute('t', '50000'); + $objWriter->writeAttribute('r', '50000'); + $objWriter->writeAttribute('b', '50000'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:objectDefaults + $objWriter->writeElement('a:objectDefaults', null); + + // a:extraClrSchemeLst + $objWriter->writeElement('a:extraClrSchemeLst', null); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write fonts to XML format + * + * @param PHPExcel_Shared_XMLWriter $objWriter + * @param string $latinFont + * @param array of string $fontSet + * @return string XML Output + * @throws Exception + */ + private function _writeFonts($objWriter, $latinFont, $fontSet) + { + // a:latin + $objWriter->startElement('a:latin'); + $objWriter->writeAttribute('typeface', $latinFont); + $objWriter->endElement(); + + // a:ea + $objWriter->startElement('a:ea'); + $objWriter->writeAttribute('typeface', ''); + $objWriter->endElement(); + + // a:cs + $objWriter->startElement('a:cs'); + $objWriter->writeAttribute('typeface', ''); + $objWriter->endElement(); + + foreach($fontSet as $fontScript => $typeface) { + $objWriter->startElement('a:font'); + $objWriter->writeAttribute('script', $fontScript); + $objWriter->writeAttribute('typeface', $typeface); + $objWriter->endElement(); + } + + } + + /** + * Write colour scheme to XML format + * + * @param PHPExcel_Shared_XMLWriter $objWriter + * @return string XML Output + * @throws Exception + */ + private function _writeColourScheme($objWriter) + { + foreach(self::$_colourScheme as $colourName => $colourValue) { + $objWriter->startElement('a:'.$colourName); + + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', $colourValue); + $objWriter->endElement(); + + $objWriter->endElement(); + } + + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Workbook.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Workbook.php new file mode 100755 index 0000000..bbd2f92 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Workbook.php @@ -0,0 +1,452 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_Workbook + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_Workbook extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Write workbook to XML format + * + * @param PHPExcel $pPHPExcel + * @param boolean $recalcRequired Indicate whether formulas should be recalculated before writing + * @return string XML Output + * @throws Exception + */ + public function writeWorkbook(PHPExcel $pPHPExcel = null, $recalcRequired = FALSE) + { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // workbook + $objWriter->startElement('workbook'); + $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + + // fileVersion + $this->_writeFileVersion($objWriter); + + // workbookPr + $this->_writeWorkbookPr($objWriter); + + // workbookProtection + $this->_writeWorkbookProtection($objWriter, $pPHPExcel); + + // bookViews + if ($this->getParentWriter()->getOffice2003Compatibility() === false) { + $this->_writeBookViews($objWriter, $pPHPExcel); + } + + // sheets + $this->_writeSheets($objWriter, $pPHPExcel); + + // definedNames + $this->_writeDefinedNames($objWriter, $pPHPExcel); + + // calcPr + $this->_writeCalcPr($objWriter,$recalcRequired); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } + + /** + * Write file version + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writeFileVersion(PHPExcel_Shared_XMLWriter $objWriter = null) + { + $objWriter->startElement('fileVersion'); + $objWriter->writeAttribute('appName', 'xl'); + $objWriter->writeAttribute('lastEdited', '4'); + $objWriter->writeAttribute('lowestEdited', '4'); + $objWriter->writeAttribute('rupBuild', '4505'); + $objWriter->endElement(); + } + + /** + * Write WorkbookPr + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @throws Exception + */ + private function _writeWorkbookPr(PHPExcel_Shared_XMLWriter $objWriter = null) + { + $objWriter->startElement('workbookPr'); + + if (PHPExcel_Shared_Date::getExcelCalendar() == PHPExcel_Shared_Date::CALENDAR_MAC_1904) { + $objWriter->writeAttribute('date1904', '1'); + } + + $objWriter->writeAttribute('codeName', 'ThisWorkbook'); + + $objWriter->endElement(); + } + + /** + * Write BookViews + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel $pPHPExcel + * @throws Exception + */ + private function _writeBookViews(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel = null) + { + // bookViews + $objWriter->startElement('bookViews'); + + // workbookView + $objWriter->startElement('workbookView'); + + $objWriter->writeAttribute('activeTab', $pPHPExcel->getActiveSheetIndex()); + $objWriter->writeAttribute('autoFilterDateGrouping', '1'); + $objWriter->writeAttribute('firstSheet', '0'); + $objWriter->writeAttribute('minimized', '0'); + $objWriter->writeAttribute('showHorizontalScroll', '1'); + $objWriter->writeAttribute('showSheetTabs', '1'); + $objWriter->writeAttribute('showVerticalScroll', '1'); + $objWriter->writeAttribute('tabRatio', '600'); + $objWriter->writeAttribute('visibility', 'visible'); + + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write WorkbookProtection + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel $pPHPExcel + * @throws Exception + */ + private function _writeWorkbookProtection(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel = null) + { + if ($pPHPExcel->getSecurity()->isSecurityEnabled()) { + $objWriter->startElement('workbookProtection'); + $objWriter->writeAttribute('lockRevision', ($pPHPExcel->getSecurity()->getLockRevision() ? 'true' : 'false')); + $objWriter->writeAttribute('lockStructure', ($pPHPExcel->getSecurity()->getLockStructure() ? 'true' : 'false')); + $objWriter->writeAttribute('lockWindows', ($pPHPExcel->getSecurity()->getLockWindows() ? 'true' : 'false')); + + if ($pPHPExcel->getSecurity()->getRevisionsPassword() != '') { + $objWriter->writeAttribute('revisionsPassword', $pPHPExcel->getSecurity()->getRevisionsPassword()); + } + + if ($pPHPExcel->getSecurity()->getWorkbookPassword() != '') { + $objWriter->writeAttribute('workbookPassword', $pPHPExcel->getSecurity()->getWorkbookPassword()); + } + + $objWriter->endElement(); + } + } + + /** + * Write calcPr + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param boolean $recalcRequired Indicate whether formulas should be recalculated before writing + * @throws Exception + */ + private function _writeCalcPr(PHPExcel_Shared_XMLWriter $objWriter = null, $recalcRequired = TRUE) + { + $objWriter->startElement('calcPr'); + + $objWriter->writeAttribute('calcId', '124519'); + $objWriter->writeAttribute('calcMode', 'auto'); + // fullCalcOnLoad isn't needed if we've recalculating for the save + $objWriter->writeAttribute('fullCalcOnLoad', ($recalcRequired) ? '0' : '1'); + + $objWriter->endElement(); + } + + /** + * Write sheets + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel $pPHPExcel + * @throws Exception + */ + private function _writeSheets(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel = null) + { + // Write sheets + $objWriter->startElement('sheets'); + $sheetCount = $pPHPExcel->getSheetCount(); + for ($i = 0; $i < $sheetCount; ++$i) { + // sheet + $this->_writeSheet( + $objWriter, + $pPHPExcel->getSheet($i)->getTitle(), + ($i + 1), + ($i + 1 + 3), + $pPHPExcel->getSheet($i)->getSheetState() + ); + } + + $objWriter->endElement(); + } + + /** + * Write sheet + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param string $pSheetname Sheet name + * @param int $pSheetId Sheet id + * @param int $pRelId Relationship ID + * @param string $sheetState Sheet state (visible, hidden, veryHidden) + * @throws Exception + */ + private function _writeSheet(PHPExcel_Shared_XMLWriter $objWriter = null, $pSheetname = '', $pSheetId = 1, $pRelId = 1, $sheetState = 'visible') + { + if ($pSheetname != '') { + // Write sheet + $objWriter->startElement('sheet'); + $objWriter->writeAttribute('name', $pSheetname); + $objWriter->writeAttribute('sheetId', $pSheetId); + if ($sheetState != 'visible' && $sheetState != '') { + $objWriter->writeAttribute('state', $sheetState); + } + $objWriter->writeAttribute('r:id', 'rId' . $pRelId); + $objWriter->endElement(); + } else { + throw new Exception("Invalid parameters passed."); + } + } + + /** + * Write Defined Names + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel $pPHPExcel + * @throws Exception + */ + private function _writeDefinedNames(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel = null) + { + // Write defined names + $objWriter->startElement('definedNames'); + + // Named ranges + if (count($pPHPExcel->getNamedRanges()) > 0) { + // Named ranges + $this->_writeNamedRanges($objWriter, $pPHPExcel); + } + + // Other defined names + $sheetCount = $pPHPExcel->getSheetCount(); + for ($i = 0; $i < $sheetCount; ++$i) { + // definedName for autoFilter + $this->_writeDefinedNameForAutofilter($objWriter, $pPHPExcel->getSheet($i), $i); + + // definedName for Print_Titles + $this->_writeDefinedNameForPrintTitles($objWriter, $pPHPExcel->getSheet($i), $i); + + // definedName for Print_Area + $this->_writeDefinedNameForPrintArea($objWriter, $pPHPExcel->getSheet($i), $i); + } + + $objWriter->endElement(); + } + + /** + * Write named ranges + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel $pPHPExcel + * @throws Exception + */ + private function _writeNamedRanges(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel) + { + // Loop named ranges + $namedRanges = $pPHPExcel->getNamedRanges(); + foreach ($namedRanges as $namedRange) { + $this->_writeDefinedNameForNamedRange($objWriter, $namedRange); + } + } + + /** + * Write Defined Name for named range + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_NamedRange $pNamedRange + * @throws Exception + */ + private function _writeDefinedNameForNamedRange(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_NamedRange $pNamedRange) + { + // definedName for named range + $objWriter->startElement('definedName'); + $objWriter->writeAttribute('name', $pNamedRange->getName()); + if ($pNamedRange->getLocalOnly()) { + $objWriter->writeAttribute('localSheetId', $pNamedRange->getScope()->getParent()->getIndex($pNamedRange->getScope())); + } + + // Create absolute coordinate and write as raw text + $range = PHPExcel_Cell::splitRange($pNamedRange->getRange()); + for ($i = 0; $i < count($range); $i++) { + $range[$i][0] = '\'' . str_replace("'", "''", $pNamedRange->getWorksheet()->getTitle()) . '\'!' . PHPExcel_Cell::absoluteReference($range[$i][0]); + if (isset($range[$i][1])) { + $range[$i][1] = PHPExcel_Cell::absoluteReference($range[$i][1]); + } + } + $range = PHPExcel_Cell::buildRange($range); + + $objWriter->writeRawData($range); + + $objWriter->endElement(); + } + + /** + * Write Defined Name for autoFilter + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet + * @param int $pSheetId + * @throws Exception + */ + private function _writeDefinedNameForAutofilter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0) + { + // definedName for autoFilter + $autoFilterRange = $pSheet->getAutoFilter()->getRange(); + if (!empty($autoFilterRange)) { + $objWriter->startElement('definedName'); + $objWriter->writeAttribute('name', '_xlnm._FilterDatabase'); + $objWriter->writeAttribute('localSheetId', $pSheetId); + $objWriter->writeAttribute('hidden', '1'); + + // Create absolute coordinate and write as raw text + $range = PHPExcel_Cell::splitRange($autoFilterRange); + $range = $range[0]; + // Strip any worksheet ref so we can make the cell ref absolute + if (strpos($range[0],'!') !== false) { + list($ws,$range[0]) = explode('!',$range[0]); + } + + $range[0] = PHPExcel_Cell::absoluteCoordinate($range[0]); + $range[1] = PHPExcel_Cell::absoluteCoordinate($range[1]); + $range = implode(':', $range); + + $objWriter->writeRawData('\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . $range); + + $objWriter->endElement(); + } + } + + /** + * Write Defined Name for PrintTitles + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet + * @param int $pSheetId + * @throws Exception + */ + private function _writeDefinedNameForPrintTitles(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0) + { + // definedName for PrintTitles + if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet() || $pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) { + $objWriter->startElement('definedName'); + $objWriter->writeAttribute('name', '_xlnm.Print_Titles'); + $objWriter->writeAttribute('localSheetId', $pSheetId); + + // Setting string + $settingString = ''; + + // Columns to repeat + if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet()) { + $repeat = $pSheet->getPageSetup()->getColumnsToRepeatAtLeft(); + + $settingString .= '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!$' . $repeat[0] . ':$' . $repeat[1]; + } + + // Rows to repeat + if ($pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) { + if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet()) { + $settingString .= ','; + } + + $repeat = $pSheet->getPageSetup()->getRowsToRepeatAtTop(); + + $settingString .= '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!$' . $repeat[0] . ':$' . $repeat[1]; + } + + $objWriter->writeRawData($settingString); + + $objWriter->endElement(); + } + } + + /** + * Write Defined Name for PrintTitles + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet + * @param int $pSheetId + * @throws Exception + */ + private function _writeDefinedNameForPrintArea(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0) + { + // definedName for PrintArea + if ($pSheet->getPageSetup()->isPrintAreaSet()) { + $objWriter->startElement('definedName'); + $objWriter->writeAttribute('name', '_xlnm.Print_Area'); + $objWriter->writeAttribute('localSheetId', $pSheetId); + + // Setting string + $settingString = ''; + + // Print area + $printArea = PHPExcel_Cell::splitRange($pSheet->getPageSetup()->getPrintArea()); + + $chunks = array(); + foreach ($printArea as $printAreaRect) { + $printAreaRect[0] = PHPExcel_Cell::absoluteReference($printAreaRect[0]); + $printAreaRect[1] = PHPExcel_Cell::absoluteReference($printAreaRect[1]); + $chunks[] = '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . implode(':', $printAreaRect); + } + + $objWriter->writeRawData(implode(',', $chunks)); + + $objWriter->endElement(); + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Worksheet.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Worksheet.php new file mode 100755 index 0000000..f720af3 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/Worksheet.php @@ -0,0 +1,1215 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_Worksheet + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel2007_Worksheet extends PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Write worksheet to XML format + * + * @param PHPExcel_Worksheet $pSheet + * @param string[] $pStringTable + * @param boolean $includeCharts Flag indicating if we should write charts + * @return string XML Output + * @throws Exception + */ + public function writeWorksheet($pSheet = null, $pStringTable = null, $includeCharts = FALSE) + { + if (!is_null($pSheet)) { + // Create XML writer + $objWriter = null; + if ($this->getParentWriter()->getUseDiskCaching()) { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + } else { + $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); + } + + // XML header + $objWriter->startDocument('1.0','UTF-8','yes'); + + // Worksheet + $objWriter->startElement('worksheet'); + $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + + // sheetPr + $this->_writeSheetPr($objWriter, $pSheet); + + // Dimension + $this->_writeDimension($objWriter, $pSheet); + + // sheetViews + $this->_writeSheetViews($objWriter, $pSheet); + + // sheetFormatPr + $this->_writeSheetFormatPr($objWriter, $pSheet); + + // cols + $this->_writeCols($objWriter, $pSheet); + + // sheetData + $this->_writeSheetData($objWriter, $pSheet, $pStringTable); + + // sheetProtection + $this->_writeSheetProtection($objWriter, $pSheet); + + // protectedRanges + $this->_writeProtectedRanges($objWriter, $pSheet); + + // autoFilter + $this->_writeAutoFilter($objWriter, $pSheet); + + // mergeCells + $this->_writeMergeCells($objWriter, $pSheet); + + // conditionalFormatting + $this->_writeConditionalFormatting($objWriter, $pSheet); + + // dataValidations + $this->_writeDataValidations($objWriter, $pSheet); + + // hyperlinks + $this->_writeHyperlinks($objWriter, $pSheet); + + // Print options + $this->_writePrintOptions($objWriter, $pSheet); + + // Page margins + $this->_writePageMargins($objWriter, $pSheet); + + // Page setup + $this->_writePageSetup($objWriter, $pSheet); + + // Header / footer + $this->_writeHeaderFooter($objWriter, $pSheet); + + // Breaks + $this->_writeBreaks($objWriter, $pSheet); + + // Drawings and/or Charts + $this->_writeDrawings($objWriter, $pSheet, $includeCharts); + + // LegacyDrawing + $this->_writeLegacyDrawing($objWriter, $pSheet); + + // LegacyDrawingHF + $this->_writeLegacyDrawingHF($objWriter, $pSheet); + + $objWriter->endElement(); + + // Return + return $objWriter->getData(); + } else { + throw new Exception("Invalid PHPExcel_Worksheet object passed."); + } + } + + /** + * Write SheetPr + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeSheetPr(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // sheetPr + $objWriter->startElement('sheetPr'); + //$objWriter->writeAttribute('codeName', $pSheet->getTitle()); + $autoFilterRange = $pSheet->getAutoFilter()->getRange(); + if (!empty($autoFilterRange)) { + $objWriter->writeAttribute('filterMode', 1); + $pSheet->getAutoFilter()->showHideRows(); + } + + // tabColor + if ($pSheet->isTabColorSet()) { + $objWriter->startElement('tabColor'); + $objWriter->writeAttribute('rgb', $pSheet->getTabColor()->getARGB()); + $objWriter->endElement(); + } + + // outlinePr + $objWriter->startElement('outlinePr'); + $objWriter->writeAttribute('summaryBelow', ($pSheet->getShowSummaryBelow() ? '1' : '0')); + $objWriter->writeAttribute('summaryRight', ($pSheet->getShowSummaryRight() ? '1' : '0')); + $objWriter->endElement(); + + // pageSetUpPr + if ($pSheet->getPageSetup()->getFitToPage()) { + $objWriter->startElement('pageSetUpPr'); + $objWriter->writeAttribute('fitToPage', '1'); + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + + /** + * Write Dimension + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeDimension(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // dimension + $objWriter->startElement('dimension'); + $objWriter->writeAttribute('ref', $pSheet->calculateWorksheetDimension()); + $objWriter->endElement(); + } + + /** + * Write SheetViews + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeSheetViews(PHPExcel_Shared_XMLWriter $objWriter = NULL, PHPExcel_Worksheet $pSheet = NULL) + { + // sheetViews + $objWriter->startElement('sheetViews'); + + // Sheet selected? + $sheetSelected = false; + if ($this->getParentWriter()->getPHPExcel()->getIndex($pSheet) == $this->getParentWriter()->getPHPExcel()->getActiveSheetIndex()) + $sheetSelected = true; + + + // sheetView + $objWriter->startElement('sheetView'); + $objWriter->writeAttribute('tabSelected', $sheetSelected ? '1' : '0'); + $objWriter->writeAttribute('workbookViewId', '0'); + + // Zoom scales + if ($pSheet->getSheetView()->getZoomScale() != 100) { + $objWriter->writeAttribute('zoomScale', $pSheet->getSheetView()->getZoomScale()); + } + if ($pSheet->getSheetView()->getZoomScaleNormal() != 100) { + $objWriter->writeAttribute('zoomScaleNormal', $pSheet->getSheetView()->getZoomScaleNormal()); + } + + // View Layout Type + if ($pSheet->getSheetView()->getView() !== PHPExcel_Worksheet_SheetView::SHEETVIEW_NORMAL) { + $objWriter->writeAttribute('view', $pSheet->getSheetView()->getView()); + } + + // Gridlines + if ($pSheet->getShowGridlines()) { + $objWriter->writeAttribute('showGridLines', 'true'); + } else { + $objWriter->writeAttribute('showGridLines', 'false'); + } + + // Row and column headers + if ($pSheet->getShowRowColHeaders()) { + $objWriter->writeAttribute('showRowColHeaders', '1'); + } else { + $objWriter->writeAttribute('showRowColHeaders', '0'); + } + + // Right-to-left + if ($pSheet->getRightToLeft()) { + $objWriter->writeAttribute('rightToLeft', 'true'); + } + + $activeCell = $pSheet->getActiveCell(); + + // Pane + $pane = ''; + $topLeftCell = $pSheet->getFreezePane(); + if (($topLeftCell != '') && ($topLeftCell != 'A1')) { + $activeCell = $topLeftCell; + // Calculate freeze coordinates + $xSplit = $ySplit = 0; + + list($xSplit, $ySplit) = PHPExcel_Cell::coordinateFromString($topLeftCell); + $xSplit = PHPExcel_Cell::columnIndexFromString($xSplit); + + // pane + $pane = 'topRight'; + $objWriter->startElement('pane'); + if ($xSplit > 1) + $objWriter->writeAttribute('xSplit', $xSplit - 1); + if ($ySplit > 1) { + $objWriter->writeAttribute('ySplit', $ySplit - 1); + $pane = ($xSplit > 1) ? 'bottomRight' : 'bottomLeft'; + } + $objWriter->writeAttribute('topLeftCell', $topLeftCell); + $objWriter->writeAttribute('activePane', $pane); + $objWriter->writeAttribute('state', 'frozen'); + $objWriter->endElement(); + + if (($xSplit > 1) && ($ySplit > 1)) { + // Write additional selections if more than two panes (ie both an X and a Y split) + $objWriter->startElement('selection'); $objWriter->writeAttribute('pane', 'topRight'); $objWriter->endElement(); + $objWriter->startElement('selection'); $objWriter->writeAttribute('pane', 'bottomLeft'); $objWriter->endElement(); + } + } + + // Selection +// if ($pane != '') { + // Only need to write selection element if we have a split pane + // We cheat a little by over-riding the active cell selection, setting it to the split cell + $objWriter->startElement('selection'); + if ($pane != '') { + $objWriter->writeAttribute('pane', $pane); + } + $objWriter->writeAttribute('activeCell', $activeCell); + $objWriter->writeAttribute('sqref', $activeCell); + $objWriter->endElement(); +// } + + $objWriter->endElement(); + + $objWriter->endElement(); + } + + /** + * Write SheetFormatPr + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeSheetFormatPr(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // sheetFormatPr + $objWriter->startElement('sheetFormatPr'); + + // Default row height + if ($pSheet->getDefaultRowDimension()->getRowHeight() >= 0) { + $objWriter->writeAttribute('customHeight', 'true'); + $objWriter->writeAttribute('defaultRowHeight', PHPExcel_Shared_String::FormatNumber($pSheet->getDefaultRowDimension()->getRowHeight())); + } else { + $objWriter->writeAttribute('defaultRowHeight', '14.4'); + } + + // Set Zero Height row + if ((string)$pSheet->getDefaultRowDimension()->getzeroHeight() == '1' || + strtolower((string)$pSheet->getDefaultRowDimension()->getzeroHeight()) == 'true' ) { + $objWriter->writeAttribute('zeroHeight', '1'); + } + + // Default column width + if ($pSheet->getDefaultColumnDimension()->getWidth() >= 0) { + $objWriter->writeAttribute('defaultColWidth', PHPExcel_Shared_String::FormatNumber($pSheet->getDefaultColumnDimension()->getWidth())); + } + + // Outline level - row + $outlineLevelRow = 0; + foreach ($pSheet->getRowDimensions() as $dimension) { + if ($dimension->getOutlineLevel() > $outlineLevelRow) { + $outlineLevelRow = $dimension->getOutlineLevel(); + } + } + $objWriter->writeAttribute('outlineLevelRow', (int)$outlineLevelRow); + + // Outline level - column + $outlineLevelCol = 0; + foreach ($pSheet->getColumnDimensions() as $dimension) { + if ($dimension->getOutlineLevel() > $outlineLevelCol) { + $outlineLevelCol = $dimension->getOutlineLevel(); + } + } + $objWriter->writeAttribute('outlineLevelCol', (int)$outlineLevelCol); + + $objWriter->endElement(); + } + + /** + * Write Cols + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeCols(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // cols + if (count($pSheet->getColumnDimensions()) > 0) { + $objWriter->startElement('cols'); + + $pSheet->calculateColumnWidths(); + + // Loop through column dimensions + foreach ($pSheet->getColumnDimensions() as $colDimension) { + // col + $objWriter->startElement('col'); + $objWriter->writeAttribute('min', PHPExcel_Cell::columnIndexFromString($colDimension->getColumnIndex())); + $objWriter->writeAttribute('max', PHPExcel_Cell::columnIndexFromString($colDimension->getColumnIndex())); + + if ($colDimension->getWidth() < 0) { + // No width set, apply default of 10 + $objWriter->writeAttribute('width', '9.10'); + } else { + // Width set + $objWriter->writeAttribute('width', PHPExcel_Shared_String::FormatNumber($colDimension->getWidth())); + } + + // Column visibility + if ($colDimension->getVisible() == false) { + $objWriter->writeAttribute('hidden', 'true'); + } + + // Auto size? + if ($colDimension->getAutoSize()) { + $objWriter->writeAttribute('bestFit', 'true'); + } + + // Custom width? + if ($colDimension->getWidth() != $pSheet->getDefaultColumnDimension()->getWidth()) { + $objWriter->writeAttribute('customWidth', 'true'); + } + + // Collapsed + if ($colDimension->getCollapsed() == true) { + $objWriter->writeAttribute('collapsed', 'true'); + } + + // Outline level + if ($colDimension->getOutlineLevel() > 0) { + $objWriter->writeAttribute('outlineLevel', $colDimension->getOutlineLevel()); + } + + // Style + $objWriter->writeAttribute('style', $colDimension->getXfIndex()); + + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + } + + /** + * Write SheetProtection + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeSheetProtection(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // sheetProtection + $objWriter->startElement('sheetProtection'); + + if ($pSheet->getProtection()->getPassword() != '') { + $objWriter->writeAttribute('password', $pSheet->getProtection()->getPassword()); + } + + $objWriter->writeAttribute('sheet', ($pSheet->getProtection()->getSheet() ? 'true' : 'false')); + $objWriter->writeAttribute('objects', ($pSheet->getProtection()->getObjects() ? 'true' : 'false')); + $objWriter->writeAttribute('scenarios', ($pSheet->getProtection()->getScenarios() ? 'true' : 'false')); + $objWriter->writeAttribute('formatCells', ($pSheet->getProtection()->getFormatCells() ? 'true' : 'false')); + $objWriter->writeAttribute('formatColumns', ($pSheet->getProtection()->getFormatColumns() ? 'true' : 'false')); + $objWriter->writeAttribute('formatRows', ($pSheet->getProtection()->getFormatRows() ? 'true' : 'false')); + $objWriter->writeAttribute('insertColumns', ($pSheet->getProtection()->getInsertColumns() ? 'true' : 'false')); + $objWriter->writeAttribute('insertRows', ($pSheet->getProtection()->getInsertRows() ? 'true' : 'false')); + $objWriter->writeAttribute('insertHyperlinks', ($pSheet->getProtection()->getInsertHyperlinks() ? 'true' : 'false')); + $objWriter->writeAttribute('deleteColumns', ($pSheet->getProtection()->getDeleteColumns() ? 'true' : 'false')); + $objWriter->writeAttribute('deleteRows', ($pSheet->getProtection()->getDeleteRows() ? 'true' : 'false')); + $objWriter->writeAttribute('selectLockedCells', ($pSheet->getProtection()->getSelectLockedCells() ? 'true' : 'false')); + $objWriter->writeAttribute('sort', ($pSheet->getProtection()->getSort() ? 'true' : 'false')); + $objWriter->writeAttribute('autoFilter', ($pSheet->getProtection()->getAutoFilter() ? 'true' : 'false')); + $objWriter->writeAttribute('pivotTables', ($pSheet->getProtection()->getPivotTables() ? 'true' : 'false')); + $objWriter->writeAttribute('selectUnlockedCells', ($pSheet->getProtection()->getSelectUnlockedCells() ? 'true' : 'false')); + $objWriter->endElement(); + } + + /** + * Write ConditionalFormatting + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeConditionalFormatting(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // Conditional id + $id = 1; + + // Loop through styles in the current worksheet + foreach ($pSheet->getConditionalStylesCollection() as $cellCoordinate => $conditionalStyles) { + foreach ($conditionalStyles as $conditional) { + // WHY was this again? + // if ($this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode( $conditional->getHashCode() ) == '') { + // continue; + // } + if ($conditional->getConditionType() != PHPExcel_Style_Conditional::CONDITION_NONE) { + // conditionalFormatting + $objWriter->startElement('conditionalFormatting'); + $objWriter->writeAttribute('sqref', $cellCoordinate); + + // cfRule + $objWriter->startElement('cfRule'); + $objWriter->writeAttribute('type', $conditional->getConditionType()); + $objWriter->writeAttribute('dxfId', $this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode( $conditional->getHashCode() )); + $objWriter->writeAttribute('priority', $id++); + + if (($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CELLIS + || + $conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT) + && $conditional->getOperatorType() != PHPExcel_Style_Conditional::OPERATOR_NONE) { + $objWriter->writeAttribute('operator', $conditional->getOperatorType()); + } + + if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT + && !is_null($conditional->getText())) { + $objWriter->writeAttribute('text', $conditional->getText()); + } + + if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT + && $conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_CONTAINSTEXT + && !is_null($conditional->getText())) { + $objWriter->writeElement('formula', 'NOT(ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . ')))'); + } else if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT + && $conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_BEGINSWITH + && !is_null($conditional->getText())) { + $objWriter->writeElement('formula', 'LEFT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"'); + } else if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT + && $conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_ENDSWITH + && !is_null($conditional->getText())) { + $objWriter->writeElement('formula', 'RIGHT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"'); + } else if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT + && $conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_NOTCONTAINS + && !is_null($conditional->getText())) { + $objWriter->writeElement('formula', 'ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . '))'); + } else if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CELLIS + || $conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT + || $conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_EXPRESSION) { + foreach ($conditional->getConditions() as $formula) { + // Formula + $objWriter->writeElement('formula', $formula); + } + } + + $objWriter->endElement(); + + $objWriter->endElement(); + } + } + } + } + + /** + * Write DataValidations + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeDataValidations(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // Datavalidation collection + $dataValidationCollection = $pSheet->getDataValidationCollection(); + + // Write data validations? + if (!empty($dataValidationCollection)) { + $objWriter->startElement('dataValidations'); + $objWriter->writeAttribute('count', count($dataValidationCollection)); + + foreach ($dataValidationCollection as $coordinate => $dv) { + $objWriter->startElement('dataValidation'); + + if ($dv->getType() != '') { + $objWriter->writeAttribute('type', $dv->getType()); + } + + if ($dv->getErrorStyle() != '') { + $objWriter->writeAttribute('errorStyle', $dv->getErrorStyle()); + } + + if ($dv->getOperator() != '') { + $objWriter->writeAttribute('operator', $dv->getOperator()); + } + + $objWriter->writeAttribute('allowBlank', ($dv->getAllowBlank() ? '1' : '0')); + $objWriter->writeAttribute('showDropDown', (!$dv->getShowDropDown() ? '1' : '0')); + $objWriter->writeAttribute('showInputMessage', ($dv->getShowInputMessage() ? '1' : '0')); + $objWriter->writeAttribute('showErrorMessage', ($dv->getShowErrorMessage() ? '1' : '0')); + + if ($dv->getErrorTitle() !== '') { + $objWriter->writeAttribute('errorTitle', $dv->getErrorTitle()); + } + if ($dv->getError() !== '') { + $objWriter->writeAttribute('error', $dv->getError()); + } + if ($dv->getPromptTitle() !== '') { + $objWriter->writeAttribute('promptTitle', $dv->getPromptTitle()); + } + if ($dv->getPrompt() !== '') { + $objWriter->writeAttribute('prompt', $dv->getPrompt()); + } + + $objWriter->writeAttribute('sqref', $coordinate); + + if ($dv->getFormula1() !== '') { + $objWriter->writeElement('formula1', $dv->getFormula1()); + } + if ($dv->getFormula2() !== '') { + $objWriter->writeElement('formula2', $dv->getFormula2()); + } + + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + } + + /** + * Write Hyperlinks + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeHyperlinks(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // Hyperlink collection + $hyperlinkCollection = $pSheet->getHyperlinkCollection(); + + // Relation ID + $relationId = 1; + + // Write hyperlinks? + if (!empty($hyperlinkCollection)) { + $objWriter->startElement('hyperlinks'); + + foreach ($hyperlinkCollection as $coordinate => $hyperlink) { + $objWriter->startElement('hyperlink'); + + $objWriter->writeAttribute('ref', $coordinate); + if (!$hyperlink->isInternal()) { + $objWriter->writeAttribute('r:id', 'rId_hyperlink_' . $relationId); + ++$relationId; + } else { + $objWriter->writeAttribute('location', str_replace('sheet://', '', $hyperlink->getUrl())); + } + + if ($hyperlink->getTooltip() != '') { + $objWriter->writeAttribute('tooltip', $hyperlink->getTooltip()); + } + + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + } + + /** + * Write ProtectedRanges + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeProtectedRanges(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + if (count($pSheet->getProtectedCells()) > 0) { + // protectedRanges + $objWriter->startElement('protectedRanges'); + + // Loop protectedRanges + foreach ($pSheet->getProtectedCells() as $protectedCell => $passwordHash) { + // protectedRange + $objWriter->startElement('protectedRange'); + $objWriter->writeAttribute('name', 'p' . md5($protectedCell)); + $objWriter->writeAttribute('sqref', $protectedCell); + $objWriter->writeAttribute('password', $passwordHash); + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + } + + /** + * Write MergeCells + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeMergeCells(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + if (count($pSheet->getMergeCells()) > 0) { + // mergeCells + $objWriter->startElement('mergeCells'); + + // Loop mergeCells + foreach ($pSheet->getMergeCells() as $mergeCell) { + // mergeCell + $objWriter->startElement('mergeCell'); + $objWriter->writeAttribute('ref', $mergeCell); + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + } + + /** + * Write PrintOptions + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writePrintOptions(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // printOptions + $objWriter->startElement('printOptions'); + + $objWriter->writeAttribute('gridLines', ($pSheet->getPrintGridlines() ? 'true': 'false')); + $objWriter->writeAttribute('gridLinesSet', 'true'); + + if ($pSheet->getPageSetup()->getHorizontalCentered()) { + $objWriter->writeAttribute('horizontalCentered', 'true'); + } + + if ($pSheet->getPageSetup()->getVerticalCentered()) { + $objWriter->writeAttribute('verticalCentered', 'true'); + } + + $objWriter->endElement(); + } + + /** + * Write PageMargins + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writePageMargins(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // pageMargins + $objWriter->startElement('pageMargins'); + $objWriter->writeAttribute('left', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getLeft())); + $objWriter->writeAttribute('right', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getRight())); + $objWriter->writeAttribute('top', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getTop())); + $objWriter->writeAttribute('bottom', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getBottom())); + $objWriter->writeAttribute('header', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getHeader())); + $objWriter->writeAttribute('footer', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getFooter())); + $objWriter->endElement(); + } + + /** + * Write AutoFilter + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeAutoFilter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + $autoFilterRange = $pSheet->getAutoFilter()->getRange(); + if (!empty($autoFilterRange)) { + // autoFilter + $objWriter->startElement('autoFilter'); + + // Strip any worksheet reference from the filter coordinates + $range = PHPExcel_Cell::splitRange($autoFilterRange); + $range = $range[0]; + // Strip any worksheet ref + if (strpos($range[0],'!') !== false) { + list($ws,$range[0]) = explode('!',$range[0]); + } + $range = implode(':', $range); + + $objWriter->writeAttribute('ref', str_replace('$','',$range)); + + $columns = $pSheet->getAutoFilter()->getColumns(); + if (count($columns > 0)) { + foreach($columns as $columnID => $column) { + $rules = $column->getRules(); + if (count($rules > 0)) { + $objWriter->startElement('filterColumn'); + $objWriter->writeAttribute('colId', $pSheet->getAutoFilter()->getColumnOffset($columnID)); + + $objWriter->startElement( $column->getFilterType()); + if ($column->getJoin() == PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND) { + $objWriter->writeAttribute('and', 1); + } + + foreach ($rules as $rule) { + if (($column->getFilterType() === PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER) && + ($rule->getOperator() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL) && + ($rule->getValue() === '')) { + // Filter rule for Blanks + $objWriter->writeAttribute('blank', 1); + } elseif($rule->getRuleType() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER) { + // Dynamic Filter Rule + $objWriter->writeAttribute('type', $rule->getGrouping()); + $val = $column->getAttribute('val'); + if ($val !== NULL) { + $objWriter->writeAttribute('val', $val); + } + $maxVal = $column->getAttribute('maxVal'); + if ($maxVal !== NULL) { + $objWriter->writeAttribute('maxVal', $maxVal); + } + } elseif($rule->getRuleType() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_TOPTENFILTER) { + // Top 10 Filter Rule + $objWriter->writeAttribute('val', $rule->getValue()); + $objWriter->writeAttribute('percent', (($rule->getOperator() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) ? '1' : '0')); + $objWriter->writeAttribute('top', (($rule->getGrouping() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) ? '1': '0')); + } else { + // Filter, DateGroupItem or CustomFilter + $objWriter->startElement($rule->getRuleType()); + + if ($rule->getOperator() !== PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL) { + $objWriter->writeAttribute('operator', $rule->getOperator()); + } + if ($rule->getRuleType() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP) { + // Date Group filters + foreach($rule->getValue() as $key => $value) { + if ($value > '') $objWriter->writeAttribute($key, $value); + } + $objWriter->writeAttribute('dateTimeGrouping', $rule->getGrouping()); + } else { + $objWriter->writeAttribute('val', $rule->getValue()); + } + + $objWriter->endElement(); + } + } + + $objWriter->endElement(); + + $objWriter->endElement(); + } + } + } + + $objWriter->endElement(); + } + } + + /** + * Write PageSetup + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writePageSetup(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // pageSetup + $objWriter->startElement('pageSetup'); + $objWriter->writeAttribute('paperSize', $pSheet->getPageSetup()->getPaperSize()); + $objWriter->writeAttribute('orientation', $pSheet->getPageSetup()->getOrientation()); + + if (!is_null($pSheet->getPageSetup()->getScale())) { + $objWriter->writeAttribute('scale', $pSheet->getPageSetup()->getScale()); + } + if (!is_null($pSheet->getPageSetup()->getFitToHeight())) { + $objWriter->writeAttribute('fitToHeight', $pSheet->getPageSetup()->getFitToHeight()); + } else { + $objWriter->writeAttribute('fitToHeight', '0'); + } + if (!is_null($pSheet->getPageSetup()->getFitToWidth())) { + $objWriter->writeAttribute('fitToWidth', $pSheet->getPageSetup()->getFitToWidth()); + } else { + $objWriter->writeAttribute('fitToWidth', '0'); + } + if (!is_null($pSheet->getPageSetup()->getFirstPageNumber())) { + $objWriter->writeAttribute('firstPageNumber', $pSheet->getPageSetup()->getFirstPageNumber()); + $objWriter->writeAttribute('useFirstPageNumber', '1'); + } + + $objWriter->endElement(); + } + + /** + * Write Header / Footer + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeHeaderFooter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // headerFooter + $objWriter->startElement('headerFooter'); + $objWriter->writeAttribute('differentOddEven', ($pSheet->getHeaderFooter()->getDifferentOddEven() ? 'true' : 'false')); + $objWriter->writeAttribute('differentFirst', ($pSheet->getHeaderFooter()->getDifferentFirst() ? 'true' : 'false')); + $objWriter->writeAttribute('scaleWithDoc', ($pSheet->getHeaderFooter()->getScaleWithDocument() ? 'true' : 'false')); + $objWriter->writeAttribute('alignWithMargins', ($pSheet->getHeaderFooter()->getAlignWithMargins() ? 'true' : 'false')); + + $objWriter->writeElement('oddHeader', $pSheet->getHeaderFooter()->getOddHeader()); + $objWriter->writeElement('oddFooter', $pSheet->getHeaderFooter()->getOddFooter()); + $objWriter->writeElement('evenHeader', $pSheet->getHeaderFooter()->getEvenHeader()); + $objWriter->writeElement('evenFooter', $pSheet->getHeaderFooter()->getEvenFooter()); + $objWriter->writeElement('firstHeader', $pSheet->getHeaderFooter()->getFirstHeader()); + $objWriter->writeElement('firstFooter', $pSheet->getHeaderFooter()->getFirstFooter()); + $objWriter->endElement(); + } + + /** + * Write Breaks + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeBreaks(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // Get row and column breaks + $aRowBreaks = array(); + $aColumnBreaks = array(); + foreach ($pSheet->getBreaks() as $cell => $breakType) { + if ($breakType == PHPExcel_Worksheet::BREAK_ROW) { + $aRowBreaks[] = $cell; + } else if ($breakType == PHPExcel_Worksheet::BREAK_COLUMN) { + $aColumnBreaks[] = $cell; + } + } + + // rowBreaks + if (!empty($aRowBreaks)) { + $objWriter->startElement('rowBreaks'); + $objWriter->writeAttribute('count', count($aRowBreaks)); + $objWriter->writeAttribute('manualBreakCount', count($aRowBreaks)); + + foreach ($aRowBreaks as $cell) { + $coords = PHPExcel_Cell::coordinateFromString($cell); + + $objWriter->startElement('brk'); + $objWriter->writeAttribute('id', $coords[1]); + $objWriter->writeAttribute('man', '1'); + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + + // Second, write column breaks + if (!empty($aColumnBreaks)) { + $objWriter->startElement('colBreaks'); + $objWriter->writeAttribute('count', count($aColumnBreaks)); + $objWriter->writeAttribute('manualBreakCount', count($aColumnBreaks)); + + foreach ($aColumnBreaks as $cell) { + $coords = PHPExcel_Cell::coordinateFromString($cell); + + $objWriter->startElement('brk'); + $objWriter->writeAttribute('id', PHPExcel_Cell::columnIndexFromString($coords[0]) - 1); + $objWriter->writeAttribute('man', '1'); + $objWriter->endElement(); + } + + $objWriter->endElement(); + } + } + + /** + * Write SheetData + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @param string[] $pStringTable String table + * @throws Exception + */ + private function _writeSheetData(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pStringTable = null) + { + if (is_array($pStringTable)) { + // Flipped stringtable, for faster index searching + $aFlippedStringTable = $this->getParentWriter()->getWriterPart('stringtable')->flipStringTable($pStringTable); + + // sheetData + $objWriter->startElement('sheetData'); + + // Get column count + $colCount = PHPExcel_Cell::columnIndexFromString($pSheet->getHighestColumn()); + + // Highest row number + $highestRow = $pSheet->getHighestRow(); + + // Loop through cells + $cellsByRow = array(); + foreach ($pSheet->getCellCollection() as $cellID) { + $cellAddress = PHPExcel_Cell::coordinateFromString($cellID); + $cellsByRow[$cellAddress[1]][] = $cellID; + } + + $currentRow = 0; + while($currentRow++ < $highestRow) { + // Get row dimension + $rowDimension = $pSheet->getRowDimension($currentRow); + + // Write current row? + $writeCurrentRow = isset($cellsByRow[$currentRow]) || + $rowDimension->getRowHeight() >= 0 || + $rowDimension->getVisible() == false || + $rowDimension->getCollapsed() == true || + $rowDimension->getOutlineLevel() > 0 || + $rowDimension->getXfIndex() !== null; + + if ($writeCurrentRow) { + // Start a new row + $objWriter->startElement('row'); + $objWriter->writeAttribute('r', $currentRow); + $objWriter->writeAttribute('spans', '1:' . $colCount); + + // Row dimensions + if ($rowDimension->getRowHeight() >= 0) { + $objWriter->writeAttribute('customHeight', '1'); + $objWriter->writeAttribute('ht', PHPExcel_Shared_String::FormatNumber($rowDimension->getRowHeight())); + } + + // Row visibility + if ($rowDimension->getVisible() == false) { + $objWriter->writeAttribute('hidden', 'true'); + } + + // Collapsed + if ($rowDimension->getCollapsed() == true) { + $objWriter->writeAttribute('collapsed', 'true'); + } + + // Outline level + if ($rowDimension->getOutlineLevel() > 0) { + $objWriter->writeAttribute('outlineLevel', $rowDimension->getOutlineLevel()); + } + + // Style + if ($rowDimension->getXfIndex() !== null) { + $objWriter->writeAttribute('s', $rowDimension->getXfIndex()); + $objWriter->writeAttribute('customFormat', '1'); + } + + // Write cells + if (isset($cellsByRow[$currentRow])) { + foreach($cellsByRow[$currentRow] as $cellAddress) { + // Write cell + $this->_writeCell($objWriter, $pSheet, $cellAddress, $pStringTable, $aFlippedStringTable); + } + } + + // End row + $objWriter->endElement(); + } + } + + $objWriter->endElement(); + } else { + throw new Exception("Invalid parameters passed."); + } + } + + /** + * Write Cell + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @param PHPExcel_Cell $pCellAddress Cell Address + * @param string[] $pStringTable String table + * @param string[] $pFlippedStringTable String table (flipped), for faster index searching + * @throws Exception + */ + private function _writeCell(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pCellAddress = null, $pStringTable = null, $pFlippedStringTable = null) + { + if (is_array($pStringTable) && is_array($pFlippedStringTable)) { + // Cell + $pCell = $pSheet->getCell($pCellAddress); + $objWriter->startElement('c'); + $objWriter->writeAttribute('r', $pCellAddress); + + // Sheet styles + if ($pCell->getXfIndex() != '') { + $objWriter->writeAttribute('s', $pCell->getXfIndex()); + } + + // If cell value is supplied, write cell value + $cellValue = $pCell->getValue(); + if (is_object($cellValue) || $cellValue !== '') { + // Map type + $mappedType = $pCell->getDataType(); + + // Write data type depending on its type + switch (strtolower($mappedType)) { + case 'inlinestr': // Inline string + case 's': // String + case 'b': // Boolean + $objWriter->writeAttribute('t', $mappedType); + break; + case 'f': // Formula + $calculatedValue = null; + if ($this->getParentWriter()->getPreCalculateFormulas()) { + $calculatedValue = $pCell->getCalculatedValue(); + } else { + $calculatedValue = $cellValue; + } + if (is_string($calculatedValue)) { + $objWriter->writeAttribute('t', 'str'); + } + break; + case 'e': // Error + $objWriter->writeAttribute('t', $mappedType); + } + + // Write data depending on its type + switch (strtolower($mappedType)) { + case 'inlinestr': // Inline string + if (! $cellValue instanceof PHPExcel_RichText) { + $objWriter->writeElement('t', PHPExcel_Shared_String::ControlCharacterPHP2OOXML( htmlspecialchars($cellValue) ) ); + } else if ($cellValue instanceof PHPExcel_RichText) { + $objWriter->startElement('is'); + $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $cellValue); + $objWriter->endElement(); + } + + break; + case 's': // String + if (! $cellValue instanceof PHPExcel_RichText) { + if (isset($pFlippedStringTable[$cellValue])) { + $objWriter->writeElement('v', $pFlippedStringTable[$cellValue]); + } + } else if ($cellValue instanceof PHPExcel_RichText) { + $objWriter->writeElement('v', $pFlippedStringTable[$cellValue->getHashCode()]); + } + + break; + case 'f': // Formula + $attributes = $pCell->getFormulaAttributes(); + if($attributes['t'] == 'array') { + $objWriter->startElement('f'); + $objWriter->writeAttribute('t', 'array'); + $objWriter->writeAttribute('ref', $pCellAddress); + $objWriter->writeAttribute('aca', '1'); + $objWriter->writeAttribute('ca', '1'); + $objWriter->text(substr($cellValue, 1)); + $objWriter->endElement(); + } else { + $objWriter->writeElement('f', substr($cellValue, 1)); + } + if ($this->getParentWriter()->getOffice2003Compatibility() === false) { + if ($this->getParentWriter()->getPreCalculateFormulas()) { + $calculatedValue = $pCell->getCalculatedValue(); + if (!is_array($calculatedValue) && substr($calculatedValue, 0, 1) != '#') { + $objWriter->writeElement('v', PHPExcel_Shared_String::FormatNumber($calculatedValue)); + } else { + $objWriter->writeElement('v', '0'); + } + } else { + $objWriter->writeElement('v', '0'); + } + } + break; + case 'n': // Numeric + // force point as decimal separator in case current locale uses comma + $objWriter->writeElement('v', str_replace(',', '.', $cellValue)); + break; + case 'b': // Boolean + $objWriter->writeElement('v', ($cellValue ? '1' : '0')); + break; + case 'e': // Error + if (substr($cellValue, 0, 1) == '=') { + $objWriter->writeElement('f', substr($cellValue, 1)); + $objWriter->writeElement('v', substr($cellValue, 1)); + } else { + $objWriter->writeElement('v', $cellValue); + } + + break; + } + } + + $objWriter->endElement(); + } else { + throw new Exception("Invalid parameters passed."); + } + } + + /** + * Write Drawings + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @param boolean $includeCharts Flag indicating if we should include drawing details for charts + * @throws Exception + */ + private function _writeDrawings(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $includeCharts = FALSE) + { + $chartCount = ($includeCharts) ? $pSheet->getChartCollection()->count() : 0; + // If sheet contains drawings, add the relationships + if (($pSheet->getDrawingCollection()->count() > 0) || + ($chartCount > 0)) { + $objWriter->startElement('drawing'); + $objWriter->writeAttribute('r:id', 'rId1'); + $objWriter->endElement(); + } + } + + /** + * Write LegacyDrawing + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeLegacyDrawing(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // If sheet contains comments, add the relationships + if (count($pSheet->getComments()) > 0) { + $objWriter->startElement('legacyDrawing'); + $objWriter->writeAttribute('r:id', 'rId_comments_vml1'); + $objWriter->endElement(); + } + } + + /** + * Write LegacyDrawingHF + * + * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer + * @param PHPExcel_Worksheet $pSheet Worksheet + * @throws Exception + */ + private function _writeLegacyDrawingHF(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) + { + // If sheet contains images, add the relationships + if (count($pSheet->getHeaderFooter()->getImages()) > 0) { + $objWriter->startElement('legacyDrawingHF'); + $objWriter->writeAttribute('r:id', 'rId_headerfooter_vml1'); + $objWriter->endElement(); + } + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/WriterPart.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/WriterPart.php new file mode 100755 index 0000000..3f50691 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel2007/WriterPart.php @@ -0,0 +1,81 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel2007_WriterPart + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel2007 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +abstract class PHPExcel_Writer_Excel2007_WriterPart +{ + /** + * Parent IWriter object + * + * @var PHPExcel_Writer_IWriter + */ + private $_parentWriter; + + /** + * Set parent IWriter object + * + * @param PHPExcel_Writer_IWriter $pWriter + * @throws Exception + */ + public function setParentWriter(PHPExcel_Writer_IWriter $pWriter = null) { + $this->_parentWriter = $pWriter; + } + + /** + * Get parent IWriter object + * + * @return PHPExcel_Writer_IWriter + * @throws Exception + */ + public function getParentWriter() { + if (!is_null($this->_parentWriter)) { + return $this->_parentWriter; + } else { + throw new Exception("No parent PHPExcel_Writer_IWriter assigned."); + } + } + + /** + * Set parent IWriter object + * + * @param PHPExcel_Writer_IWriter $pWriter + * @throws Exception + */ + public function __construct(PHPExcel_Writer_IWriter $pWriter = null) { + if (!is_null($pWriter)) { + $this->_parentWriter = $pWriter; + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5.php new file mode 100755 index 0000000..9297c78 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5.php @@ -0,0 +1,961 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel5 + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel5 implements PHPExcel_Writer_IWriter +{ + /** + * Pre-calculate formulas + * + * @var boolean + */ + private $_preCalculateFormulas = true; + + /** + * PHPExcel object + * + * @var PHPExcel + */ + private $_phpExcel; + + /** + * Total number of shared strings in workbook + * + * @var int + */ + private $_str_total = 0; + + /** + * Number of unique shared strings in workbook + * + * @var int + */ + private $_str_unique = 0; + + /** + * Array of unique shared strings in workbook + * + * @var array + */ + private $_str_table = array(); + + /** + * Color cache. Mapping between RGB value and color index. + * + * @var array + */ + private $_colors; + + /** + * Formula parser + * + * @var PHPExcel_Writer_Excel5_Parser + */ + private $_parser; + + /** + * Identifier clusters for drawings. Used in MSODRAWINGGROUP record. + * + * @var array + */ + private $_IDCLs; + + /** + * Basic OLE object summary information + * + * @var array + */ + private $_summaryInformation; + + /** + * Extended OLE object document summary information + * + * @var array + */ + private $_documentSummaryInformation; + + /** + * Create a new PHPExcel_Writer_Excel5 + * + * @param PHPExcel $phpExcel PHPExcel object + */ + public function __construct(PHPExcel $phpExcel) { + $this->_phpExcel = $phpExcel; + + $this->_parser = new PHPExcel_Writer_Excel5_Parser(); + } + + /** + * Save PHPExcel to file + * + * @param string $pFilename + * @throws Exception + */ + public function save($pFilename = null) { + + // garbage collect + $this->_phpExcel->garbageCollect(); + + $saveDebugLog = PHPExcel_Calculation::getInstance()->writeDebugLog; + PHPExcel_Calculation::getInstance()->writeDebugLog = false; + $saveDateReturnType = PHPExcel_Calculation_Functions::getReturnDateType(); + PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL); + + // initialize colors array + $this->_colors = array(); + + // Initialise workbook writer + $this->_writerWorkbook = new PHPExcel_Writer_Excel5_Workbook($this->_phpExcel, + $this->_str_total, $this->_str_unique, $this->_str_table, + $this->_colors, $this->_parser); + + // Initialise worksheet writers + $countSheets = $this->_phpExcel->getSheetCount(); + for ($i = 0; $i < $countSheets; ++$i) { + $this->_writerWorksheets[$i] = new PHPExcel_Writer_Excel5_Worksheet($this->_str_total, $this->_str_unique, + $this->_str_table, $this->_colors, + $this->_parser, + $this->_preCalculateFormulas, + $this->_phpExcel->getSheet($i)); + } + + // build Escher objects. Escher objects for workbooks needs to be build before Escher object for workbook. + $this->_buildWorksheetEschers(); + $this->_buildWorkbookEscher(); + + // add 15 identical cell style Xfs + // for now, we use the first cellXf instead of cellStyleXf + $cellXfCollection = $this->_phpExcel->getCellXfCollection(); + for ($i = 0; $i < 15; ++$i) { + $this->_writerWorkbook->addXfWriter($cellXfCollection[0], true); + } + + // add all the cell Xfs + foreach ($this->_phpExcel->getCellXfCollection() as $style) { + $this->_writerWorkbook->addXfWriter($style, false); + } + + // add fonts from rich text eleemnts + for ($i = 0; $i < $countSheets; ++$i) { + foreach ($this->_writerWorksheets[$i]->_phpSheet->getCellCollection() as $cellID) { + $cell = $this->_writerWorksheets[$i]->_phpSheet->getCell($cellID); + $cVal = $cell->getValue(); + if ($cVal instanceof PHPExcel_RichText) { + $elements = $cVal->getRichTextElements(); + foreach ($elements as $element) { + if ($element instanceof PHPExcel_RichText_Run) { + $font = $element->getFont(); + $this->_writerWorksheets[$i]->_fntHashIndex[$font->getHashCode()] = $this->_writerWorkbook->_addFont($font); + } + } + } + } + } + + // initialize OLE file + $workbookStreamName = 'Workbook'; + $OLE = new PHPExcel_Shared_OLE_PPS_File(PHPExcel_Shared_OLE::Asc2Ucs($workbookStreamName)); + + // Write the worksheet streams before the global workbook stream, + // because the byte sizes of these are needed in the global workbook stream + $worksheetSizes = array(); + for ($i = 0; $i < $countSheets; ++$i) { + $this->_writerWorksheets[$i]->close(); + $worksheetSizes[] = $this->_writerWorksheets[$i]->_datasize; + } + + // add binary data for global workbook stream + $OLE->append( $this->_writerWorkbook->writeWorkbook($worksheetSizes) ); + + // add binary data for sheet streams + for ($i = 0; $i < $countSheets; ++$i) { + $OLE->append($this->_writerWorksheets[$i]->getData()); + } + + $this->_documentSummaryInformation = $this->_writeDocumentSummaryInformation(); + // initialize OLE Document Summary Information + if(isset($this->_documentSummaryInformation) && !empty($this->_documentSummaryInformation)){ + $OLE_DocumentSummaryInformation = new PHPExcel_Shared_OLE_PPS_File(PHPExcel_Shared_OLE::Asc2Ucs(chr(5) . 'DocumentSummaryInformation')); + $OLE_DocumentSummaryInformation->append($this->_documentSummaryInformation); + } + + $this->_summaryInformation = $this->_writeSummaryInformation(); + // initialize OLE Summary Information + if(isset($this->_summaryInformation) && !empty($this->_summaryInformation)){ + $OLE_SummaryInformation = new PHPExcel_Shared_OLE_PPS_File(PHPExcel_Shared_OLE::Asc2Ucs(chr(5) . 'SummaryInformation')); + $OLE_SummaryInformation->append($this->_summaryInformation); + } + + // define OLE Parts + $arrRootData = array($OLE); + // initialize OLE Properties file + if(isset($OLE_SummaryInformation)){ + $arrRootData[] = $OLE_SummaryInformation; + } + // initialize OLE Extended Properties file + if(isset($OLE_DocumentSummaryInformation)){ + $arrRootData[] = $OLE_DocumentSummaryInformation; + } + + $root = new PHPExcel_Shared_OLE_PPS_Root(time(), time(), $arrRootData); + // save the OLE file + $res = $root->save($pFilename); + + PHPExcel_Calculation_Functions::setReturnDateType($saveDateReturnType); + PHPExcel_Calculation::getInstance()->writeDebugLog = $saveDebugLog; + } + + /** + * Set temporary storage directory + * + * @deprecated + * @param string $pValue Temporary storage directory + * @throws Exception Exception when directory does not exist + * @return PHPExcel_Writer_Excel5 + */ + public function setTempDir($pValue = '') { + return $this; + } + + /** + * Get Pre-Calculate Formulas + * + * @return boolean + */ + public function getPreCalculateFormulas() { + return $this->_preCalculateFormulas; + } + + /** + * Set Pre-Calculate Formulas + * + * @param boolean $pValue Pre-Calculate Formulas? + */ + public function setPreCalculateFormulas($pValue = true) { + $this->_preCalculateFormulas = $pValue; + } + + /** + * Build the Worksheet Escher objects + * + */ + private function _buildWorksheetEschers() + { + // 1-based index to BstoreContainer + $blipIndex = 0; + $lastReducedSpId = 0; + $lastSpId = 0; + + foreach ($this->_phpExcel->getAllsheets() as $sheet) { + // sheet index + $sheetIndex = $sheet->getParent()->getIndex($sheet); + + $escher = null; + + // check if there are any shapes for this sheet + $filterRange = $sheet->getAutoFilter()->getRange(); + if (count($sheet->getDrawingCollection()) == 0 && empty($filterRange)) { + continue; + } + + // create intermediate Escher object + $escher = new PHPExcel_Shared_Escher(); + + // dgContainer + $dgContainer = new PHPExcel_Shared_Escher_DgContainer(); + + // set the drawing index (we use sheet index + 1) + $dgId = $sheet->getParent()->getIndex($sheet) + 1; + $dgContainer->setDgId($dgId); + $escher->setDgContainer($dgContainer); + + // spgrContainer + $spgrContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer(); + $dgContainer->setSpgrContainer($spgrContainer); + + // add one shape which is the group shape + $spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer(); + $spContainer->setSpgr(true); + $spContainer->setSpType(0); + $spContainer->setSpId(($sheet->getParent()->getIndex($sheet) + 1) << 10); + $spgrContainer->addChild($spContainer); + + // add the shapes + + $countShapes[$sheetIndex] = 0; // count number of shapes (minus group shape), in sheet + + foreach ($sheet->getDrawingCollection() as $drawing) { + ++$blipIndex; + + ++$countShapes[$sheetIndex]; + + // add the shape + $spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer(); + + // set the shape type + $spContainer->setSpType(0x004B); + // set the shape flag + $spContainer->setSpFlag(0x02); + + // set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index) + $reducedSpId = $countShapes[$sheetIndex]; + $spId = $reducedSpId + | ($sheet->getParent()->getIndex($sheet) + 1) << 10; + $spContainer->setSpId($spId); + + // keep track of last reducedSpId + $lastReducedSpId = $reducedSpId; + + // keep track of last spId + $lastSpId = $spId; + + // set the BLIP index + $spContainer->setOPT(0x4104, $blipIndex); + + // set coordinates and offsets, client anchor + $coordinates = $drawing->getCoordinates(); + $offsetX = $drawing->getOffsetX(); + $offsetY = $drawing->getOffsetY(); + $width = $drawing->getWidth(); + $height = $drawing->getHeight(); + + $twoAnchor = PHPExcel_Shared_Excel5::oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height); + + $spContainer->setStartCoordinates($twoAnchor['startCoordinates']); + $spContainer->setStartOffsetX($twoAnchor['startOffsetX']); + $spContainer->setStartOffsetY($twoAnchor['startOffsetY']); + $spContainer->setEndCoordinates($twoAnchor['endCoordinates']); + $spContainer->setEndOffsetX($twoAnchor['endOffsetX']); + $spContainer->setEndOffsetY($twoAnchor['endOffsetY']); + + $spgrContainer->addChild($spContainer); + } + + // AutoFilters + if(!empty($filterRange)){ + $rangeBounds = PHPExcel_Cell::rangeBoundaries($filterRange); + $iNumColStart = $rangeBounds[0][0]; + $iNumColEnd = $rangeBounds[1][0]; + + $iInc = $iNumColStart; + while($iInc <= $iNumColEnd){ + ++$countShapes[$sheetIndex]; + + // create an Drawing Object for the dropdown + $oDrawing = new PHPExcel_Worksheet_BaseDrawing(); + // get the coordinates of drawing + $cDrawing = PHPExcel_Cell::stringFromColumnIndex($iInc - 1) . $rangeBounds[0][1]; + $oDrawing->setCoordinates($cDrawing); + $oDrawing->setWorksheet($sheet); + + // add the shape + $spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer(); + // set the shape type + $spContainer->setSpType(0x00C9); + // set the shape flag + $spContainer->setSpFlag(0x01); + + // set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index) + $reducedSpId = $countShapes[$sheetIndex]; + $spId = $reducedSpId + | ($sheet->getParent()->getIndex($sheet) + 1) << 10; + $spContainer->setSpId($spId); + + // keep track of last reducedSpId + $lastReducedSpId = $reducedSpId; + + // keep track of last spId + $lastSpId = $spId; + + $spContainer->setOPT(0x007F, 0x01040104); // Protection -> fLockAgainstGrouping + $spContainer->setOPT(0x00BF, 0x00080008); // Text -> fFitTextToShape + $spContainer->setOPT(0x01BF, 0x00010000); // Fill Style -> fNoFillHitTest + $spContainer->setOPT(0x01FF, 0x00080000); // Line Style -> fNoLineDrawDash + $spContainer->setOPT(0x03BF, 0x000A0000); // Group Shape -> fPrint + + // set coordinates and offsets, client anchor + $endCoordinates = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::stringFromColumnIndex($iInc - 1)); + $endCoordinates .= $rangeBounds[0][1] + 1; + + $spContainer->setStartCoordinates($cDrawing); + $spContainer->setStartOffsetX(0); + $spContainer->setStartOffsetY(0); + $spContainer->setEndCoordinates($endCoordinates); + $spContainer->setEndOffsetX(0); + $spContainer->setEndOffsetY(0); + + $spgrContainer->addChild($spContainer); + $iInc++; + } + } + + // identifier clusters, used for workbook Escher object + $this->_IDCLs[$dgId] = $lastReducedSpId; + + // set last shape index + $dgContainer->setLastSpId($lastSpId); + + // set the Escher object + $this->_writerWorksheets[$sheetIndex]->setEscher($escher); + } + } + + /** + * Build the Escher object corresponding to the MSODRAWINGGROUP record + */ + private function _buildWorkbookEscher() + { + $escher = null; + + // any drawings in this workbook? + $found = false; + foreach ($this->_phpExcel->getAllSheets() as $sheet) { + if (count($sheet->getDrawingCollection()) > 0) { + $found = true; + break; + } + } + + // nothing to do if there are no drawings + if (!$found) { + return; + } + + // if we reach here, then there are drawings in the workbook + $escher = new PHPExcel_Shared_Escher(); + + // dggContainer + $dggContainer = new PHPExcel_Shared_Escher_DggContainer(); + $escher->setDggContainer($dggContainer); + + // set IDCLs (identifier clusters) + $dggContainer->setIDCLs($this->_IDCLs); + + // this loop is for determining maximum shape identifier of all drawing + $spIdMax = 0; + $totalCountShapes = 0; + $countDrawings = 0; + + foreach ($this->_phpExcel->getAllsheets() as $sheet) { + $sheetCountShapes = 0; // count number of shapes (minus group shape), in sheet + + if (count($sheet->getDrawingCollection()) > 0) { + ++$countDrawings; + + foreach ($sheet->getDrawingCollection() as $drawing) { + ++$sheetCountShapes; + ++$totalCountShapes; + + $spId = $sheetCountShapes + | ($this->_phpExcel->getIndex($sheet) + 1) << 10; + $spIdMax = max($spId, $spIdMax); + } + } + } + + $dggContainer->setSpIdMax($spIdMax + 1); + $dggContainer->setCDgSaved($countDrawings); + $dggContainer->setCSpSaved($totalCountShapes + $countDrawings); // total number of shapes incl. one group shapes per drawing + + // bstoreContainer + $bstoreContainer = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer(); + $dggContainer->setBstoreContainer($bstoreContainer); + + // the BSE's (all the images) + foreach ($this->_phpExcel->getAllsheets() as $sheet) { + foreach ($sheet->getDrawingCollection() as $drawing) { + if ($drawing instanceof PHPExcel_Worksheet_Drawing) { + + $filename = $drawing->getPath(); + + list($imagesx, $imagesy, $imageFormat) = getimagesize($filename); + + switch ($imageFormat) { + + case 1: // GIF, not supported by BIFF8, we convert to PNG + $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG; + ob_start(); + imagepng(imagecreatefromgif($filename)); + $blipData = ob_get_contents(); + ob_end_clean(); + break; + + case 2: // JPEG + $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG; + $blipData = file_get_contents($filename); + break; + + case 3: // PNG + $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG; + $blipData = file_get_contents($filename); + break; + + case 6: // Windows DIB (BMP), we convert to PNG + $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG; + ob_start(); + imagepng(PHPExcel_Shared_Drawing::imagecreatefrombmp($filename)); + $blipData = ob_get_contents(); + ob_end_clean(); + break; + + default: continue 2; + + } + + $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(); + $blip->setData($blipData); + + $BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE(); + $BSE->setBlipType($blipType); + $BSE->setBlip($blip); + + $bstoreContainer->addBSE($BSE); + + } else if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) { + + switch ($drawing->getRenderingFunction()) { + + case PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG: + $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG; + $renderingFunction = 'imagejpeg'; + break; + + case PHPExcel_Worksheet_MemoryDrawing::RENDERING_GIF: + case PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG: + case PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT: + $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG; + $renderingFunction = 'imagepng'; + break; + + } + + ob_start(); + call_user_func($renderingFunction, $drawing->getImageResource()); + $blipData = ob_get_contents(); + ob_end_clean(); + + $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(); + $blip->setData($blipData); + + $BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE(); + $BSE->setBlipType($blipType); + $BSE->setBlip($blip); + + $bstoreContainer->addBSE($BSE); + } + } + } + + // Set the Escher object + $this->_writerWorkbook->setEscher($escher); + } + + /** + * Build the OLE Part for DocumentSummary Information + * @return string + */ + private function _writeDocumentSummaryInformation(){ + + // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark) + $data = pack('v', 0xFFFE); + // offset: 2; size: 2; + $data .= pack('v', 0x0000); + // offset: 4; size: 2; OS version + $data .= pack('v', 0x0106); + // offset: 6; size: 2; OS indicator + $data .= pack('v', 0x0002); + // offset: 8; size: 16 + $data .= pack('VVVV', 0x00, 0x00, 0x00, 0x00); + // offset: 24; size: 4; section count + $data .= pack('V', 0x0001); + + // offset: 28; size: 16; first section's class id: 02 d5 cd d5 9c 2e 1b 10 93 97 08 00 2b 2c f9 ae + $data .= pack('vvvvvvvv', 0xD502, 0xD5CD, 0x2E9C, 0x101B, 0x9793, 0x0008, 0x2C2B, 0xAEF9); + // offset: 44; size: 4; offset of the start + $data .= pack('V', 0x30); + + // SECTION + $dataSection = array(); + $dataSection_NumProps = 0; + $dataSection_Summary = ''; + $dataSection_Content = ''; + + // GKPIDDSI_CODEPAGE: CodePage + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x01), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x02), // 2 byte signed integer + 'data' => array('data' => 1252)); + $dataSection_NumProps++; + + // GKPIDDSI_CATEGORY : Category + if($this->_phpExcel->getProperties()->getCategory()){ + $dataProp = $this->_phpExcel->getProperties()->getCategory(); + $dataProp = 'Test result file'; + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x02), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x1E), + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + } + // GKPIDDSI_VERSION :Version of the application that wrote the property storage + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x17), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x03), + 'data' => array('pack' => 'V', 'data' => 0x000C0000)); + $dataSection_NumProps++; + // GKPIDDSI_SCALE : FALSE + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0B), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x0B), + 'data' => array('data' => false)); + $dataSection_NumProps++; + // GKPIDDSI_LINKSDIRTY : True if any of the values for the linked properties have changed outside of the application + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x10), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x0B), + 'data' => array('data' => false)); + $dataSection_NumProps++; + // GKPIDDSI_SHAREDOC : FALSE + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x13), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x0B), + 'data' => array('data' => false)); + $dataSection_NumProps++; + // GKPIDDSI_HYPERLINKSCHANGED : True if any of the values for the _PID_LINKS (hyperlink text) have changed outside of the application + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x16), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x0B), + 'data' => array('data' => false)); + $dataSection_NumProps++; + + // GKPIDDSI_DOCSPARTS + // MS-OSHARED p75 (2.3.3.2.2.1) + // Structure is VtVecUnalignedLpstrValue (2.3.3.1.9) + // cElements + $dataProp = pack('v', 0x0001); + $dataProp .= pack('v', 0x0000); + // array of UnalignedLpstr + // cch + $dataProp .= pack('v', 0x000A); + $dataProp .= pack('v', 0x0000); + // value + $dataProp .= 'Worksheet'.chr(0); + + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0D), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x101E), + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + + // GKPIDDSI_HEADINGPAIR + // VtVecHeadingPairValue + // cElements + $dataProp = pack('v', 0x0002); + $dataProp .= pack('v', 0x0000); + // Array of vtHeadingPair + // vtUnalignedString - headingString + // stringType + $dataProp .= pack('v', 0x001E); + // padding + $dataProp .= pack('v', 0x0000); + // UnalignedLpstr + // cch + $dataProp .= pack('v', 0x0013); + $dataProp .= pack('v', 0x0000); + // value + $dataProp .= 'Feuilles de calcul'; + // vtUnalignedString - headingParts + // wType : 0x0003 = 32 bit signed integer + $dataProp .= pack('v', 0x0300); + // padding + $dataProp .= pack('v', 0x0000); + // value + $dataProp .= pack('v', 0x0100); + $dataProp .= pack('v', 0x0000); + $dataProp .= pack('v', 0x0000); + $dataProp .= pack('v', 0x0000); + + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0C), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x100C), + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + + // 4 Section Length + // 4 Property count + // 8 * $dataSection_NumProps (8 = ID (4) + OffSet(4)) + $dataSection_Content_Offset = 8 + $dataSection_NumProps * 8; + foreach ($dataSection as $dataProp){ + // Summary + $dataSection_Summary .= pack($dataProp['summary']['pack'], $dataProp['summary']['data']); + // Offset + $dataSection_Summary .= pack($dataProp['offset']['pack'], $dataSection_Content_Offset); + // DataType + $dataSection_Content .= pack($dataProp['type']['pack'], $dataProp['type']['data']); + // Data + if($dataProp['type']['data'] == 0x02){ // 2 byte signed integer + $dataSection_Content .= pack('V', $dataProp['data']['data']); + + $dataSection_Content_Offset += 4 + 4; + } + elseif($dataProp['type']['data'] == 0x03){ // 4 byte signed integer + $dataSection_Content .= pack('V', $dataProp['data']['data']); + + $dataSection_Content_Offset += 4 + 4; + } + elseif($dataProp['type']['data'] == 0x0B){ // Boolean + if($dataProp['data']['data'] == false){ + $dataSection_Content .= pack('V', 0x0000); + } else { + $dataSection_Content .= pack('V', 0x0001); + } + $dataSection_Content_Offset += 4 + 4; + } + elseif($dataProp['type']['data'] == 0x1E){ // null-terminated string prepended by dword string length + // Null-terminated string + $dataProp['data']['data'] .= chr(0); + $dataProp['data']['length'] += 1; + // Complete the string with null string for being a %4 + $dataProp['data']['length'] = $dataProp['data']['length'] + ((4 - $dataProp['data']['length'] % 4)==4 ? 0 : (4 - $dataProp['data']['length'] % 4)); + $dataProp['data']['data'] = str_pad($dataProp['data']['data'], $dataProp['data']['length'], chr(0), STR_PAD_RIGHT); + + $dataSection_Content .= pack('V', $dataProp['data']['length']); + $dataSection_Content .= $dataProp['data']['data']; + + $dataSection_Content_Offset += 4 + 4 + strlen($dataProp['data']['data']); + } + elseif($dataProp['type']['data'] == 0x40){ // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + $dataSection_Content .= $dataProp['data']['data']; + + $dataSection_Content_Offset += 4 + 8; + } + else { + // Data Type Not Used at the moment + $dataSection_Content .= $dataProp['data']['data']; + + $dataSection_Content_Offset += 4 + $dataProp['data']['length']; + } + } + // Now $dataSection_Content_Offset contains the size of the content + + // section header + // offset: $secOffset; size: 4; section length + // + x Size of the content (summary + content) + $data .= pack('V', $dataSection_Content_Offset); + // offset: $secOffset+4; size: 4; property count + $data .= pack('V', $dataSection_NumProps); + // Section Summary + $data .= $dataSection_Summary; + // Section Content + $data .= $dataSection_Content; + + return $data; + } + + /** + * Build the OLE Part for Summary Information + * @return string + */ + private function _writeSummaryInformation(){ + // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark) + $data = pack('v', 0xFFFE); + // offset: 2; size: 2; + $data .= pack('v', 0x0000); + // offset: 4; size: 2; OS version + $data .= pack('v', 0x0106); + // offset: 6; size: 2; OS indicator + $data .= pack('v', 0x0002); + // offset: 8; size: 16 + $data .= pack('VVVV', 0x00, 0x00, 0x00, 0x00); + // offset: 24; size: 4; section count + $data .= pack('V', 0x0001); + + // offset: 28; size: 16; first section's class id: e0 85 9f f2 f9 4f 68 10 ab 91 08 00 2b 27 b3 d9 + $data .= pack('vvvvvvvv', 0x85E0, 0xF29F, 0x4FF9, 0x1068, 0x91AB, 0x0008, 0x272B, 0xD9B3); + // offset: 44; size: 4; offset of the start + $data .= pack('V', 0x30); + + // SECTION + $dataSection = array(); + $dataSection_NumProps = 0; + $dataSection_Summary = ''; + $dataSection_Content = ''; + + // CodePage : CP-1252 + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x01), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x02), // 2 byte signed integer + 'data' => array('data' => 1252)); + $dataSection_NumProps++; + + // Title + if($this->_phpExcel->getProperties()->getTitle()){ + $dataProp = $this->_phpExcel->getProperties()->getTitle(); + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x02), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + } + // Subject + if($this->_phpExcel->getProperties()->getSubject()){ + $dataProp = $this->_phpExcel->getProperties()->getSubject(); + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x03), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + } + // Author (Creator) + if($this->_phpExcel->getProperties()->getCreator()){ + $dataProp = $this->_phpExcel->getProperties()->getCreator(); + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x04), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + } + // Keywords + if($this->_phpExcel->getProperties()->getKeywords()){ + $dataProp = $this->_phpExcel->getProperties()->getKeywords(); + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x05), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + } + // Comments (Description) + if($this->_phpExcel->getProperties()->getDescription()){ + $dataProp = $this->_phpExcel->getProperties()->getDescription(); + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x06), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + } + // Last Saved By (LastModifiedBy) + if($this->_phpExcel->getProperties()->getLastModifiedBy()){ + $dataProp = $this->_phpExcel->getProperties()->getLastModifiedBy(); + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x08), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length + 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); + $dataSection_NumProps++; + } + // Created Date/Time + if($this->_phpExcel->getProperties()->getCreated()){ + $dataProp = $this->_phpExcel->getProperties()->getCreated(); + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0C), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x40), // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + 'data' => array('data' => PHPExcel_Shared_OLE::LocalDate2OLE($dataProp))); + $dataSection_NumProps++; + } + // Modified Date/Time + if($this->_phpExcel->getProperties()->getModified()){ + $dataProp = $this->_phpExcel->getProperties()->getModified(); + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0D), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x40), // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + 'data' => array('data' => PHPExcel_Shared_OLE::LocalDate2OLE($dataProp))); + $dataSection_NumProps++; + } + // Security + $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x13), + 'offset' => array('pack' => 'V'), + 'type' => array('pack' => 'V', 'data' => 0x03), // 4 byte signed integer + 'data' => array('data' => 0x00)); + $dataSection_NumProps++; + + + // 4 Section Length + // 4 Property count + // 8 * $dataSection_NumProps (8 = ID (4) + OffSet(4)) + $dataSection_Content_Offset = 8 + $dataSection_NumProps * 8; + foreach ($dataSection as $dataProp){ + // Summary + $dataSection_Summary .= pack($dataProp['summary']['pack'], $dataProp['summary']['data']); + // Offset + $dataSection_Summary .= pack($dataProp['offset']['pack'], $dataSection_Content_Offset); + // DataType + $dataSection_Content .= pack($dataProp['type']['pack'], $dataProp['type']['data']); + // Data + if($dataProp['type']['data'] == 0x02){ // 2 byte signed integer + $dataSection_Content .= pack('V', $dataProp['data']['data']); + + $dataSection_Content_Offset += 4 + 4; + } + elseif($dataProp['type']['data'] == 0x03){ // 4 byte signed integer + $dataSection_Content .= pack('V', $dataProp['data']['data']); + + $dataSection_Content_Offset += 4 + 4; + } + elseif($dataProp['type']['data'] == 0x1E){ // null-terminated string prepended by dword string length + // Null-terminated string + $dataProp['data']['data'] .= chr(0); + $dataProp['data']['length'] += 1; + // Complete the string with null string for being a %4 + $dataProp['data']['length'] = $dataProp['data']['length'] + ((4 - $dataProp['data']['length'] % 4)==4 ? 0 : (4 - $dataProp['data']['length'] % 4)); + $dataProp['data']['data'] = str_pad($dataProp['data']['data'], $dataProp['data']['length'], chr(0), STR_PAD_RIGHT); + + $dataSection_Content .= pack('V', $dataProp['data']['length']); + $dataSection_Content .= $dataProp['data']['data']; + + $dataSection_Content_Offset += 4 + 4 + strlen($dataProp['data']['data']); + } + elseif($dataProp['type']['data'] == 0x40){ // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + $dataSection_Content .= $dataProp['data']['data']; + + $dataSection_Content_Offset += 4 + 8; + } + else { + // Data Type Not Used at the moment + } + } + // Now $dataSection_Content_Offset contains the size of the content + + // section header + // offset: $secOffset; size: 4; section length + // + x Size of the content (summary + content) + $data .= pack('V', $dataSection_Content_Offset); + // offset: $secOffset+4; size: 4; property count + $data .= pack('V', $dataSection_NumProps); + // Section Summary + $data .= $dataSection_Summary; + // Section Content + $data .= $dataSection_Content; + + return $data; + } +} \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php new file mode 100755 index 0000000..b678225 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php @@ -0,0 +1,255 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +// Original file header of PEAR::Spreadsheet_Excel_Writer_BIFFwriter (used as the base for this class): +// ----------------------------------------------------------------------------------------- +// * Module written/ported by Xavier Noguer <xnoguer@rezebra.com> +// * +// * The majority of this is _NOT_ my code. I simply ported it from the +// * PERL Spreadsheet::WriteExcel module. +// * +// * The author of the Spreadsheet::WriteExcel module is John McNamara +// * <jmcnamara@cpan.org> +// * +// * I _DO_ maintain this code, and John McNamara has nothing to do with the +// * porting of this code to PHP. Any questions directly related to this +// * class library should be directed to me. +// * +// * License Information: +// * +// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets +// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com +// * +// * This library is free software; you can redistribute it and/or +// * modify it under the terms of the GNU Lesser General Public +// * License as published by the Free Software Foundation; either +// * version 2.1 of the License, or (at your option) any later version. +// * +// * This library is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * Lesser General Public License for more details. +// * +// * You should have received a copy of the GNU Lesser General Public +// * License along with this library; if not, write to the Free Software +// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// */ + + +/** + * PHPExcel_Writer_Excel5_BIFFwriter + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel5_BIFFwriter +{ + /** + * The byte order of this architecture. 0 => little endian, 1 => big endian + * @var integer + */ + private static $_byte_order; + + /** + * The string containing the data of the BIFF stream + * @var string + */ + public $_data; + + /** + * The size of the data in bytes. Should be the same as strlen($this->_data) + * @var integer + */ + public $_datasize; + + /** + * The maximum length for a BIFF record (excluding record header and length field). See _addContinue() + * @var integer + * @see _addContinue() + */ + public $_limit = 8224; + + /** + * Constructor + */ + public function __construct() + { + $this->_data = ''; + $this->_datasize = 0; +// $this->_limit = 8224; + } + + /** + * Determine the byte order and store it as class data to avoid + * recalculating it for each call to new(). + * + * @return int + */ + public static function getByteOrder() + { + if (!isset(self::$_byte_order)) { + // Check if "pack" gives the required IEEE 64bit float + $teststr = pack("d", 1.2345); + $number = pack("C8", 0x8D, 0x97, 0x6E, 0x12, 0x83, 0xC0, 0xF3, 0x3F); + if ($number == $teststr) { + $byte_order = 0; // Little Endian + } elseif ($number == strrev($teststr)){ + $byte_order = 1; // Big Endian + } else { + // Give up. I'll fix this in a later version. + throw new Exception("Required floating point format not supported on this platform."); + } + self::$_byte_order = $byte_order; + } + + return self::$_byte_order; + } + + /** + * General storage function + * + * @param string $data binary data to append + * @access private + */ + function _append($data) + { + if (strlen($data) - 4 > $this->_limit) { + $data = $this->_addContinue($data); + } + $this->_data .= $data; + $this->_datasize += strlen($data); + } + + /** + * General storage function like _append, but returns string instead of modifying $this->_data + * + * @param string $data binary data to write + * @return string + */ + public function writeData($data) + { + if (strlen($data) - 4 > $this->_limit) { + $data = $this->_addContinue($data); + } + $this->_datasize += strlen($data); + + return $data; + } + + /** + * Writes Excel BOF record to indicate the beginning of a stream or + * sub-stream in the BIFF file. + * + * @param integer $type Type of BIFF file to write: 0x0005 Workbook, + * 0x0010 Worksheet. + * @access private + */ + function _storeBof($type) + { + $record = 0x0809; // Record identifier (BIFF5-BIFF8) + $length = 0x0010; + + // by inspection of real files, MS Office Excel 2007 writes the following + $unknown = pack("VV", 0x000100D1, 0x00000406); + + $build = 0x0DBB; // Excel 97 + $year = 0x07CC; // Excel 97 + + $version = 0x0600; // BIFF8 + + $header = pack("vv", $record, $length); + $data = pack("vvvv", $version, $type, $build, $year); + $this->_append($header . $data . $unknown); + } + + /** + * Writes Excel EOF record to indicate the end of a BIFF stream. + * + * @access private + */ + function _storeEof() + { + $record = 0x000A; // Record identifier + $length = 0x0000; // Number of bytes to follow + + $header = pack("vv", $record, $length); + $this->_append($header); + } + + /** + * Writes Excel EOF record to indicate the end of a BIFF stream. + * + * @access private + */ + public function writeEof() + { + $record = 0x000A; // Record identifier + $length = 0x0000; // Number of bytes to follow + $header = pack("vv", $record, $length); + return $this->writeData($header); + } + + /** + * Excel limits the size of BIFF records. In Excel 5 the limit is 2084 bytes. In + * Excel 97 the limit is 8228 bytes. Records that are longer than these limits + * must be split up into CONTINUE blocks. + * + * This function takes a long BIFF record and inserts CONTINUE records as + * necessary. + * + * @param string $data The original binary data to be written + * @return string A very convenient string of continue blocks + * @access private + */ + function _addContinue($data) + { + $limit = $this->_limit; + $record = 0x003C; // Record identifier + + // The first 2080/8224 bytes remain intact. However, we have to change + // the length field of the record. + $tmp = substr($data, 0, 2) . pack("v", $limit) . substr($data, 4, $limit); + + $header = pack("vv", $record, $limit); // Headers for continue records + + // Retrieve chunks of 2080/8224 bytes +4 for the header. + $data_length = strlen($data); + for ($i = $limit + 4; $i < ($data_length - $limit); $i += $limit) { + $tmp .= $header; + $tmp .= substr($data, $i, $limit); + } + + // Retrieve the last chunk of data + $header = pack("vv", $record, strlen($data) - $i); + $tmp .= $header; + $tmp .= substr($data, $i, strlen($data) - $i); + + return $tmp; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Escher.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Escher.php new file mode 100755 index 0000000..94b769a --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Escher.php @@ -0,0 +1,537 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Shared_Escher_DggContainer_BstoreContainer + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel5_Escher +{ + /** + * The object we are writing + */ + private $_object; + + /** + * The written binary data + */ + private $_data; + + /** + * Shape offsets. Positions in binary stream where a new shape record begins + * + * @var array + */ + private $_spOffsets; + + /** + * Shape types. + * + * @var array + */ + private $_spTypes; + + /** + * Constructor + * + * @param mixed + */ + public function __construct($object) + { + $this->_object = $object; + } + + /** + * Process the object to be written + */ + public function close() + { + // initialize + $this->_data = ''; + + switch (get_class($this->_object)) { + + case 'PHPExcel_Shared_Escher': + if ($dggContainer = $this->_object->getDggContainer()) { + $writer = new PHPExcel_Writer_Excel5_Escher($dggContainer); + $this->_data = $writer->close(); + } else if ($dgContainer = $this->_object->getDgContainer()) { + $writer = new PHPExcel_Writer_Excel5_Escher($dgContainer); + $this->_data = $writer->close(); + $this->_spOffsets = $writer->getSpOffsets(); + $this->_spTypes = $writer->getSpTypes(); + } + break; + + case 'PHPExcel_Shared_Escher_DggContainer': + // this is a container record + + // initialize + $innerData = ''; + + // write the dgg + $recVer = 0x0; + $recInstance = 0x0000; + $recType = 0xF006; + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + // dgg data + $dggData = + pack('VVVV' + , $this->_object->getSpIdMax() // maximum shape identifier increased by one + , $this->_object->getCDgSaved() + 1 // number of file identifier clusters increased by one + , $this->_object->getCSpSaved() + , $this->_object->getCDgSaved() // count total number of drawings saved + ); + + // add file identifier clusters (one per drawing) + $IDCLs = $this->_object->getIDCLs(); + + foreach ($IDCLs as $dgId => $maxReducedSpId) { + $dggData .= pack('VV', $dgId, $maxReducedSpId + 1); + } + + $header = pack('vvV', $recVerInstance, $recType, strlen($dggData)); + $innerData .= $header . $dggData; + + // write the bstoreContainer + if ($bstoreContainer = $this->_object->getBstoreContainer()) { + $writer = new PHPExcel_Writer_Excel5_Escher($bstoreContainer); + $innerData .= $writer->close(); + } + + // write the record + $recVer = 0xF; + $recInstance = 0x0000; + $recType = 0xF000; + $length = strlen($innerData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $this->_data = $header . $innerData; + break; + + case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer': + // this is a container record + + // initialize + $innerData = ''; + + // treat the inner data + if ($BSECollection = $this->_object->getBSECollection()) { + foreach ($BSECollection as $BSE) { + $writer = new PHPExcel_Writer_Excel5_Escher($BSE); + $innerData .= $writer->close(); + } + } + + // write the record + $recVer = 0xF; + $recInstance = count($this->_object->getBSECollection()); + $recType = 0xF001; + $length = strlen($innerData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $this->_data = $header . $innerData; + break; + + case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE': + // this is a semi-container record + + // initialize + $innerData = ''; + + // here we treat the inner data + if ($blip = $this->_object->getBlip()) { + $writer = new PHPExcel_Writer_Excel5_Escher($blip); + $innerData .= $writer->close(); + } + + // initialize + $data = ''; + + $btWin32 = $this->_object->getBlipType(); + $btMacOS = $this->_object->getBlipType(); + $data .= pack('CC', $btWin32, $btMacOS); + + $rgbUid = pack('VVVV', 0,0,0,0); // todo + $data .= $rgbUid; + + $tag = 0; + $size = strlen($innerData); + $cRef = 1; + $foDelay = 0; //todo + $unused1 = 0x0; + $cbName = 0x0; + $unused2 = 0x0; + $unused3 = 0x0; + $data .= pack('vVVVCCCC', $tag, $size, $cRef, $foDelay, $unused1, $cbName, $unused2, $unused3); + + $data .= $innerData; + + // write the record + $recVer = 0x2; + $recInstance = $this->_object->getBlipType(); + $recType = 0xF007; + $length = strlen($data); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $this->_data = $header; + + $this->_data .= $data; + break; + + case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip': + // this is an atom record + + // write the record + switch ($this->_object->getParent()->getBlipType()) { + + case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG: + // initialize + $innerData = ''; + + $rgbUid1 = pack('VVVV', 0,0,0,0); // todo + $innerData .= $rgbUid1; + + $tag = 0xFF; // todo + $innerData .= pack('C', $tag); + + $innerData .= $this->_object->getData(); + + $recVer = 0x0; + $recInstance = 0x46A; + $recType = 0xF01D; + $length = strlen($innerData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $this->_data = $header; + + $this->_data .= $innerData; + break; + + case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG: + // initialize + $innerData = ''; + + $rgbUid1 = pack('VVVV', 0,0,0,0); // todo + $innerData .= $rgbUid1; + + $tag = 0xFF; // todo + $innerData .= pack('C', $tag); + + $innerData .= $this->_object->getData(); + + $recVer = 0x0; + $recInstance = 0x6E0; + $recType = 0xF01E; + $length = strlen($innerData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $this->_data = $header; + + $this->_data .= $innerData; + break; + + } + break; + + case 'PHPExcel_Shared_Escher_DgContainer': + // this is a container record + + // initialize + $innerData = ''; + + // write the dg + $recVer = 0x0; + $recInstance = $this->_object->getDgId(); + $recType = 0xF008; + $length = 8; + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + // number of shapes in this drawing (including group shape) + $countShapes = count($this->_object->getSpgrContainer()->getChildren()); + $innerData .= $header . pack('VV', $countShapes, $this->_object->getLastSpId()); + //$innerData .= $header . pack('VV', 0, 0); + + // write the spgrContainer + if ($spgrContainer = $this->_object->getSpgrContainer()) { + $writer = new PHPExcel_Writer_Excel5_Escher($spgrContainer); + $innerData .= $writer->close(); + + // get the shape offsets relative to the spgrContainer record + $spOffsets = $writer->getSpOffsets(); + $spTypes = $writer->getSpTypes(); + + // save the shape offsets relative to dgContainer + foreach ($spOffsets as & $spOffset) { + $spOffset += 24; // add length of dgContainer header data (8 bytes) plus dg data (16 bytes) + } + + $this->_spOffsets = $spOffsets; + $this->_spTypes = $spTypes; + } + + // write the record + $recVer = 0xF; + $recInstance = 0x0000; + $recType = 0xF002; + $length = strlen($innerData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $this->_data = $header . $innerData; + break; + + case 'PHPExcel_Shared_Escher_DgContainer_SpgrContainer': + // this is a container record + + // initialize + $innerData = ''; + + // initialize spape offsets + $totalSize = 8; + $spOffsets = array(); + $spTypes = array(); + + // treat the inner data + foreach ($this->_object->getChildren() as $spContainer) { + $writer = new PHPExcel_Writer_Excel5_Escher($spContainer); + $spData = $writer->close(); + $innerData .= $spData; + + // save the shape offsets (where new shape records begin) + $totalSize += strlen($spData); + $spOffsets[] = $totalSize; + + $spTypes = array_merge($spTypes, $writer->getSpTypes()); + } + + // write the record + $recVer = 0xF; + $recInstance = 0x0000; + $recType = 0xF003; + $length = strlen($innerData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $this->_data = $header . $innerData; + $this->_spOffsets = $spOffsets; + $this->_spTypes = $spTypes; + break; + + case 'PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer': + // initialize + $data = ''; + + // build the data + + // write group shape record, if necessary? + if ($this->_object->getSpgr()) { + $recVer = 0x1; + $recInstance = 0x0000; + $recType = 0xF009; + $length = 0x00000010; + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $data .= $header . pack('VVVV', 0,0,0,0); + } + $this->_spTypes[] = ($this->_object->getSpType()); + + // write the shape record + $recVer = 0x2; + $recInstance = $this->_object->getSpType(); // shape type + $recType = 0xF00A; + $length = 0x00000008; + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $data .= $header . pack('VV', $this->_object->getSpId(), $this->_object->getSpgr() ? 0x0005 : 0x0A00); + + + // the options + if ($this->_object->getOPTCollection()) { + $optData = ''; + + $recVer = 0x3; + $recInstance = count($this->_object->getOPTCollection()); + $recType = 0xF00B; + foreach ($this->_object->getOPTCollection() as $property => $value) { + $optData .= pack('vV', $property, $value); + } + $length = strlen($optData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + $data .= $header . $optData; + } + + // the client anchor + if ($this->_object->getStartCoordinates()) { + $clientAnchorData = ''; + + $recVer = 0x0; + $recInstance = 0x0; + $recType = 0xF010; + + // start coordinates + list($column, $row) = PHPExcel_Cell::coordinateFromString($this->_object->getStartCoordinates()); + $c1 = PHPExcel_Cell::columnIndexFromString($column) - 1; + $r1 = $row - 1; + + // start offsetX + $startOffsetX = $this->_object->getStartOffsetX(); + + // start offsetY + $startOffsetY = $this->_object->getStartOffsetY(); + + // end coordinates + list($column, $row) = PHPExcel_Cell::coordinateFromString($this->_object->getEndCoordinates()); + $c2 = PHPExcel_Cell::columnIndexFromString($column) - 1; + $r2 = $row - 1; + + // end offsetX + $endOffsetX = $this->_object->getEndOffsetX(); + + // end offsetY + $endOffsetY = $this->_object->getEndOffsetY(); + + $clientAnchorData = pack('vvvvvvvvv', $this->_object->getSpFlag(), + $c1, $startOffsetX, $r1, $startOffsetY, + $c2, $endOffsetX, $r2, $endOffsetY); + + $length = strlen($clientAnchorData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + $data .= $header . $clientAnchorData; + } + + // the client data, just empty for now + if (!$this->_object->getSpgr()) { + $clientDataData = ''; + + $recVer = 0x0; + $recInstance = 0x0; + $recType = 0xF011; + + $length = strlen($clientDataData); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + $data .= $header . $clientDataData; + } + + // write the record + $recVer = 0xF; + $recInstance = 0x0000; + $recType = 0xF004; + $length = strlen($data); + + $recVerInstance = $recVer; + $recVerInstance |= $recInstance << 4; + + $header = pack('vvV', $recVerInstance, $recType, $length); + + $this->_data = $header . $data; + break; + + } + + return $this->_data; + } + + /** + * Gets the shape offsets + * + * @return array + */ + public function getSpOffsets() + { + return $this->_spOffsets; + } + + /** + * Gets the shape types + * + * @return array + */ + public function getSpTypes() + { + return $this->_spTypes; + } + + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Font.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Font.php new file mode 100755 index 0000000..f67dd11 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Font.php @@ -0,0 +1,165 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_Excel5_Font + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel5_Font +{ + /** + * Color index + * + * @var int + */ + private $_colorIndex; + + /** + * Font + * + * @var PHPExcel_Style_Font + */ + private $_font; + + /** + * Constructor + * + * @param PHPExcel_Style_Font $font + */ + public function __construct(PHPExcel_Style_Font $font = null) + { + $this->_colorIndex = 0x7FFF; + $this->_font = $font; + } + + /** + * Set the color index + * + * @param int $colorIndex + */ + public function setColorIndex($colorIndex) + { + $this->_colorIndex = $colorIndex; + } + + /** + * Get font record data + * + * @return string + */ + public function writeFont() + { + $font_outline = 0; + $font_shadow = 0; + + $icv = $this->_colorIndex; // Index to color palette + if ($this->_font->getSuperScript()) { + $sss = 1; + } else if ($this->_font->getSubScript()) { + $sss = 2; + } else { + $sss = 0; + } + $bFamily = 0; // Font family + $bCharSet = PHPExcel_Shared_Font::getCharsetFromFontName($this->_font->getName()); // Character set + + $record = 0x31; // Record identifier + $reserved = 0x00; // Reserved + $grbit = 0x00; // Font attributes + if ($this->_font->getItalic()) { + $grbit |= 0x02; + } + if ($this->_font->getStrikethrough()) { + $grbit |= 0x08; + } + if ($font_outline) { + $grbit |= 0x10; + } + if ($font_shadow) { + $grbit |= 0x20; + } + + $data = pack("vvvvvCCCC", + $this->_font->getSize() * 20, // Fontsize (in twips) + $grbit, + $icv, // Colour + self::_mapBold($this->_font->getBold()), // Font weight + $sss, // Superscript/Subscript + self::_mapUnderline($this->_font->getUnderline()), + $bFamily, + $bCharSet, + $reserved + ); + $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($this->_font->getName()); + + $length = strlen($data); + $header = pack("vv", $record, $length); + + return($header . $data); + } + + /** + * Map to BIFF5-BIFF8 codes for bold + * + * @param boolean $bold + * @return int + */ + private static function _mapBold($bold) { + if ($bold) { + return 0x2BC; // 700 = Bold font weight + } + return 0x190; // 400 = Normal font weight + } + + /** + * Map of BIFF2-BIFF8 codes for underline styles + * @static array of int + * + */ + private static $_mapUnderline = array( PHPExcel_Style_Font::UNDERLINE_NONE => 0x00, + PHPExcel_Style_Font::UNDERLINE_SINGLE => 0x01, + PHPExcel_Style_Font::UNDERLINE_DOUBLE => 0x02, + PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING => 0x21, + PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING => 0x22, + ); + /** + * Map underline + * + * @param string + * @return int + */ + private static function _mapUnderline($underline) { + if (isset(self::$_mapUnderline[$underline])) + return self::$_mapUnderline[$underline]; + return 0x00; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Parser.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Parser.php new file mode 100755 index 0000000..88b777e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Parser.php @@ -0,0 +1,1583 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +// Original file header of PEAR::Spreadsheet_Excel_Writer_Parser (used as the base for this class): +// ----------------------------------------------------------------------------------------- +// * Class for parsing Excel formulas +// * +// * License Information: +// * +// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets +// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com +// * +// * This library is free software; you can redistribute it and/or +// * modify it under the terms of the GNU Lesser General Public +// * License as published by the Free Software Foundation; either +// * version 2.1 of the License, or (at your option) any later version. +// * +// * This library is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * Lesser General Public License for more details. +// * +// * You should have received a copy of the GNU Lesser General Public +// * License along with this library; if not, write to the Free Software +// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// */ + + +/** + * PHPExcel_Writer_Excel5_Parser + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel5_Parser +{ + /** Constants */ + // Sheet title in unquoted form + // Invalid sheet title characters cannot occur in the sheet title: + // *:/\?[] + // Moreover, there are valid sheet title characters that cannot occur in unquoted form (there may be more?) + // +-% '^&<>=,;#()"{} + const REGEX_SHEET_TITLE_UNQUOTED = '[^\*\:\/\\\\\?\[\]\+\-\% \\\'\^\&\<\>\=\,\;\#\(\)\"\{\}]+'; + + // Sheet title in quoted form (without surrounding quotes) + // Invalid sheet title characters cannot occur in the sheet title: + // *:/\?[] (usual invalid sheet title characters) + // Single quote is represented as a pair '' + const REGEX_SHEET_TITLE_QUOTED = '(([^\*\:\/\\\\\?\[\]\\\'])+|(\\\'\\\')+)+'; + + /** + * The index of the character we are currently looking at + * @var integer + */ + public $_current_char; + + /** + * The token we are working on. + * @var string + */ + public $_current_token; + + /** + * The formula to parse + * @var string + */ + public $_formula; + + /** + * The character ahead of the current char + * @var string + */ + public $_lookahead; + + /** + * The parse tree to be generated + * @var string + */ + public $_parse_tree; + + /** + * Array of external sheets + * @var array + */ + public $_ext_sheets; + + /** + * Array of sheet references in the form of REF structures + * @var array + */ + public $_references; + + /** + * The class constructor + * + */ + public function __construct() + { + $this->_current_char = 0; + $this->_current_token = ''; // The token we are working on. + $this->_formula = ''; // The formula to parse. + $this->_lookahead = ''; // The character ahead of the current char. + $this->_parse_tree = ''; // The parse tree to be generated. + $this->_initializeHashes(); // Initialize the hashes: ptg's and function's ptg's + $this->_ext_sheets = array(); + $this->_references = array(); + } + + /** + * Initialize the ptg and function hashes. + * + * @access private + */ + function _initializeHashes() + { + // The Excel ptg indices + $this->ptg = array( + 'ptgExp' => 0x01, + 'ptgTbl' => 0x02, + 'ptgAdd' => 0x03, + 'ptgSub' => 0x04, + 'ptgMul' => 0x05, + 'ptgDiv' => 0x06, + 'ptgPower' => 0x07, + 'ptgConcat' => 0x08, + 'ptgLT' => 0x09, + 'ptgLE' => 0x0A, + 'ptgEQ' => 0x0B, + 'ptgGE' => 0x0C, + 'ptgGT' => 0x0D, + 'ptgNE' => 0x0E, + 'ptgIsect' => 0x0F, + 'ptgUnion' => 0x10, + 'ptgRange' => 0x11, + 'ptgUplus' => 0x12, + 'ptgUminus' => 0x13, + 'ptgPercent' => 0x14, + 'ptgParen' => 0x15, + 'ptgMissArg' => 0x16, + 'ptgStr' => 0x17, + 'ptgAttr' => 0x19, + 'ptgSheet' => 0x1A, + 'ptgEndSheet' => 0x1B, + 'ptgErr' => 0x1C, + 'ptgBool' => 0x1D, + 'ptgInt' => 0x1E, + 'ptgNum' => 0x1F, + 'ptgArray' => 0x20, + 'ptgFunc' => 0x21, + 'ptgFuncVar' => 0x22, + 'ptgName' => 0x23, + 'ptgRef' => 0x24, + 'ptgArea' => 0x25, + 'ptgMemArea' => 0x26, + 'ptgMemErr' => 0x27, + 'ptgMemNoMem' => 0x28, + 'ptgMemFunc' => 0x29, + 'ptgRefErr' => 0x2A, + 'ptgAreaErr' => 0x2B, + 'ptgRefN' => 0x2C, + 'ptgAreaN' => 0x2D, + 'ptgMemAreaN' => 0x2E, + 'ptgMemNoMemN' => 0x2F, + 'ptgNameX' => 0x39, + 'ptgRef3d' => 0x3A, + 'ptgArea3d' => 0x3B, + 'ptgRefErr3d' => 0x3C, + 'ptgAreaErr3d' => 0x3D, + 'ptgArrayV' => 0x40, + 'ptgFuncV' => 0x41, + 'ptgFuncVarV' => 0x42, + 'ptgNameV' => 0x43, + 'ptgRefV' => 0x44, + 'ptgAreaV' => 0x45, + 'ptgMemAreaV' => 0x46, + 'ptgMemErrV' => 0x47, + 'ptgMemNoMemV' => 0x48, + 'ptgMemFuncV' => 0x49, + 'ptgRefErrV' => 0x4A, + 'ptgAreaErrV' => 0x4B, + 'ptgRefNV' => 0x4C, + 'ptgAreaNV' => 0x4D, + 'ptgMemAreaNV' => 0x4E, + 'ptgMemNoMemN' => 0x4F, + 'ptgFuncCEV' => 0x58, + 'ptgNameXV' => 0x59, + 'ptgRef3dV' => 0x5A, + 'ptgArea3dV' => 0x5B, + 'ptgRefErr3dV' => 0x5C, + 'ptgAreaErr3d' => 0x5D, + 'ptgArrayA' => 0x60, + 'ptgFuncA' => 0x61, + 'ptgFuncVarA' => 0x62, + 'ptgNameA' => 0x63, + 'ptgRefA' => 0x64, + 'ptgAreaA' => 0x65, + 'ptgMemAreaA' => 0x66, + 'ptgMemErrA' => 0x67, + 'ptgMemNoMemA' => 0x68, + 'ptgMemFuncA' => 0x69, + 'ptgRefErrA' => 0x6A, + 'ptgAreaErrA' => 0x6B, + 'ptgRefNA' => 0x6C, + 'ptgAreaNA' => 0x6D, + 'ptgMemAreaNA' => 0x6E, + 'ptgMemNoMemN' => 0x6F, + 'ptgFuncCEA' => 0x78, + 'ptgNameXA' => 0x79, + 'ptgRef3dA' => 0x7A, + 'ptgArea3dA' => 0x7B, + 'ptgRefErr3dA' => 0x7C, + 'ptgAreaErr3d' => 0x7D + ); + + // Thanks to Michael Meeks and Gnumeric for the initial arg values. + // + // The following hash was generated by "function_locale.pl" in the distro. + // Refer to function_locale.pl for non-English function names. + // + // The array elements are as follow: + // ptg: The Excel function ptg code. + // args: The number of arguments that the function takes: + // >=0 is a fixed number of arguments. + // -1 is a variable number of arguments. + // class: The reference, value or array class of the function args. + // vol: The function is volatile. + // + $this->_functions = array( + // function ptg args class vol + 'COUNT' => array( 0, -1, 0, 0 ), + 'IF' => array( 1, -1, 1, 0 ), + 'ISNA' => array( 2, 1, 1, 0 ), + 'ISERROR' => array( 3, 1, 1, 0 ), + 'SUM' => array( 4, -1, 0, 0 ), + 'AVERAGE' => array( 5, -1, 0, 0 ), + 'MIN' => array( 6, -1, 0, 0 ), + 'MAX' => array( 7, -1, 0, 0 ), + 'ROW' => array( 8, -1, 0, 0 ), + 'COLUMN' => array( 9, -1, 0, 0 ), + 'NA' => array( 10, 0, 0, 0 ), + 'NPV' => array( 11, -1, 1, 0 ), + 'STDEV' => array( 12, -1, 0, 0 ), + 'DOLLAR' => array( 13, -1, 1, 0 ), + 'FIXED' => array( 14, -1, 1, 0 ), + 'SIN' => array( 15, 1, 1, 0 ), + 'COS' => array( 16, 1, 1, 0 ), + 'TAN' => array( 17, 1, 1, 0 ), + 'ATAN' => array( 18, 1, 1, 0 ), + 'PI' => array( 19, 0, 1, 0 ), + 'SQRT' => array( 20, 1, 1, 0 ), + 'EXP' => array( 21, 1, 1, 0 ), + 'LN' => array( 22, 1, 1, 0 ), + 'LOG10' => array( 23, 1, 1, 0 ), + 'ABS' => array( 24, 1, 1, 0 ), + 'INT' => array( 25, 1, 1, 0 ), + 'SIGN' => array( 26, 1, 1, 0 ), + 'ROUND' => array( 27, 2, 1, 0 ), + 'LOOKUP' => array( 28, -1, 0, 0 ), + 'INDEX' => array( 29, -1, 0, 1 ), + 'REPT' => array( 30, 2, 1, 0 ), + 'MID' => array( 31, 3, 1, 0 ), + 'LEN' => array( 32, 1, 1, 0 ), + 'VALUE' => array( 33, 1, 1, 0 ), + 'TRUE' => array( 34, 0, 1, 0 ), + 'FALSE' => array( 35, 0, 1, 0 ), + 'AND' => array( 36, -1, 0, 0 ), + 'OR' => array( 37, -1, 0, 0 ), + 'NOT' => array( 38, 1, 1, 0 ), + 'MOD' => array( 39, 2, 1, 0 ), + 'DCOUNT' => array( 40, 3, 0, 0 ), + 'DSUM' => array( 41, 3, 0, 0 ), + 'DAVERAGE' => array( 42, 3, 0, 0 ), + 'DMIN' => array( 43, 3, 0, 0 ), + 'DMAX' => array( 44, 3, 0, 0 ), + 'DSTDEV' => array( 45, 3, 0, 0 ), + 'VAR' => array( 46, -1, 0, 0 ), + 'DVAR' => array( 47, 3, 0, 0 ), + 'TEXT' => array( 48, 2, 1, 0 ), + 'LINEST' => array( 49, -1, 0, 0 ), + 'TREND' => array( 50, -1, 0, 0 ), + 'LOGEST' => array( 51, -1, 0, 0 ), + 'GROWTH' => array( 52, -1, 0, 0 ), + 'PV' => array( 56, -1, 1, 0 ), + 'FV' => array( 57, -1, 1, 0 ), + 'NPER' => array( 58, -1, 1, 0 ), + 'PMT' => array( 59, -1, 1, 0 ), + 'RATE' => array( 60, -1, 1, 0 ), + 'MIRR' => array( 61, 3, 0, 0 ), + 'IRR' => array( 62, -1, 0, 0 ), + 'RAND' => array( 63, 0, 1, 1 ), + 'MATCH' => array( 64, -1, 0, 0 ), + 'DATE' => array( 65, 3, 1, 0 ), + 'TIME' => array( 66, 3, 1, 0 ), + 'DAY' => array( 67, 1, 1, 0 ), + 'MONTH' => array( 68, 1, 1, 0 ), + 'YEAR' => array( 69, 1, 1, 0 ), + 'WEEKDAY' => array( 70, -1, 1, 0 ), + 'HOUR' => array( 71, 1, 1, 0 ), + 'MINUTE' => array( 72, 1, 1, 0 ), + 'SECOND' => array( 73, 1, 1, 0 ), + 'NOW' => array( 74, 0, 1, 1 ), + 'AREAS' => array( 75, 1, 0, 1 ), + 'ROWS' => array( 76, 1, 0, 1 ), + 'COLUMNS' => array( 77, 1, 0, 1 ), + 'OFFSET' => array( 78, -1, 0, 1 ), + 'SEARCH' => array( 82, -1, 1, 0 ), + 'TRANSPOSE' => array( 83, 1, 1, 0 ), + 'TYPE' => array( 86, 1, 1, 0 ), + 'ATAN2' => array( 97, 2, 1, 0 ), + 'ASIN' => array( 98, 1, 1, 0 ), + 'ACOS' => array( 99, 1, 1, 0 ), + 'CHOOSE' => array( 100, -1, 1, 0 ), + 'HLOOKUP' => array( 101, -1, 0, 0 ), + 'VLOOKUP' => array( 102, -1, 0, 0 ), + 'ISREF' => array( 105, 1, 0, 0 ), + 'LOG' => array( 109, -1, 1, 0 ), + 'CHAR' => array( 111, 1, 1, 0 ), + 'LOWER' => array( 112, 1, 1, 0 ), + 'UPPER' => array( 113, 1, 1, 0 ), + 'PROPER' => array( 114, 1, 1, 0 ), + 'LEFT' => array( 115, -1, 1, 0 ), + 'RIGHT' => array( 116, -1, 1, 0 ), + 'EXACT' => array( 117, 2, 1, 0 ), + 'TRIM' => array( 118, 1, 1, 0 ), + 'REPLACE' => array( 119, 4, 1, 0 ), + 'SUBSTITUTE' => array( 120, -1, 1, 0 ), + 'CODE' => array( 121, 1, 1, 0 ), + 'FIND' => array( 124, -1, 1, 0 ), + 'CELL' => array( 125, -1, 0, 1 ), + 'ISERR' => array( 126, 1, 1, 0 ), + 'ISTEXT' => array( 127, 1, 1, 0 ), + 'ISNUMBER' => array( 128, 1, 1, 0 ), + 'ISBLANK' => array( 129, 1, 1, 0 ), + 'T' => array( 130, 1, 0, 0 ), + 'N' => array( 131, 1, 0, 0 ), + 'DATEVALUE' => array( 140, 1, 1, 0 ), + 'TIMEVALUE' => array( 141, 1, 1, 0 ), + 'SLN' => array( 142, 3, 1, 0 ), + 'SYD' => array( 143, 4, 1, 0 ), + 'DDB' => array( 144, -1, 1, 0 ), + 'INDIRECT' => array( 148, -1, 1, 1 ), + 'CALL' => array( 150, -1, 1, 0 ), + 'CLEAN' => array( 162, 1, 1, 0 ), + 'MDETERM' => array( 163, 1, 2, 0 ), + 'MINVERSE' => array( 164, 1, 2, 0 ), + 'MMULT' => array( 165, 2, 2, 0 ), + 'IPMT' => array( 167, -1, 1, 0 ), + 'PPMT' => array( 168, -1, 1, 0 ), + 'COUNTA' => array( 169, -1, 0, 0 ), + 'PRODUCT' => array( 183, -1, 0, 0 ), + 'FACT' => array( 184, 1, 1, 0 ), + 'DPRODUCT' => array( 189, 3, 0, 0 ), + 'ISNONTEXT' => array( 190, 1, 1, 0 ), + 'STDEVP' => array( 193, -1, 0, 0 ), + 'VARP' => array( 194, -1, 0, 0 ), + 'DSTDEVP' => array( 195, 3, 0, 0 ), + 'DVARP' => array( 196, 3, 0, 0 ), + 'TRUNC' => array( 197, -1, 1, 0 ), + 'ISLOGICAL' => array( 198, 1, 1, 0 ), + 'DCOUNTA' => array( 199, 3, 0, 0 ), + 'USDOLLAR' => array( 204, -1, 1, 0 ), + 'FINDB' => array( 205, -1, 1, 0 ), + 'SEARCHB' => array( 206, -1, 1, 0 ), + 'REPLACEB' => array( 207, 4, 1, 0 ), + 'LEFTB' => array( 208, -1, 1, 0 ), + 'RIGHTB' => array( 209, -1, 1, 0 ), + 'MIDB' => array( 210, 3, 1, 0 ), + 'LENB' => array( 211, 1, 1, 0 ), + 'ROUNDUP' => array( 212, 2, 1, 0 ), + 'ROUNDDOWN' => array( 213, 2, 1, 0 ), + 'ASC' => array( 214, 1, 1, 0 ), + 'DBCS' => array( 215, 1, 1, 0 ), + 'RANK' => array( 216, -1, 0, 0 ), + 'ADDRESS' => array( 219, -1, 1, 0 ), + 'DAYS360' => array( 220, -1, 1, 0 ), + 'TODAY' => array( 221, 0, 1, 1 ), + 'VDB' => array( 222, -1, 1, 0 ), + 'MEDIAN' => array( 227, -1, 0, 0 ), + 'SUMPRODUCT' => array( 228, -1, 2, 0 ), + 'SINH' => array( 229, 1, 1, 0 ), + 'COSH' => array( 230, 1, 1, 0 ), + 'TANH' => array( 231, 1, 1, 0 ), + 'ASINH' => array( 232, 1, 1, 0 ), + 'ACOSH' => array( 233, 1, 1, 0 ), + 'ATANH' => array( 234, 1, 1, 0 ), + 'DGET' => array( 235, 3, 0, 0 ), + 'INFO' => array( 244, 1, 1, 1 ), + 'DB' => array( 247, -1, 1, 0 ), + 'FREQUENCY' => array( 252, 2, 0, 0 ), + 'ERROR.TYPE' => array( 261, 1, 1, 0 ), + 'REGISTER.ID' => array( 267, -1, 1, 0 ), + 'AVEDEV' => array( 269, -1, 0, 0 ), + 'BETADIST' => array( 270, -1, 1, 0 ), + 'GAMMALN' => array( 271, 1, 1, 0 ), + 'BETAINV' => array( 272, -1, 1, 0 ), + 'BINOMDIST' => array( 273, 4, 1, 0 ), + 'CHIDIST' => array( 274, 2, 1, 0 ), + 'CHIINV' => array( 275, 2, 1, 0 ), + 'COMBIN' => array( 276, 2, 1, 0 ), + 'CONFIDENCE' => array( 277, 3, 1, 0 ), + 'CRITBINOM' => array( 278, 3, 1, 0 ), + 'EVEN' => array( 279, 1, 1, 0 ), + 'EXPONDIST' => array( 280, 3, 1, 0 ), + 'FDIST' => array( 281, 3, 1, 0 ), + 'FINV' => array( 282, 3, 1, 0 ), + 'FISHER' => array( 283, 1, 1, 0 ), + 'FISHERINV' => array( 284, 1, 1, 0 ), + 'FLOOR' => array( 285, 2, 1, 0 ), + 'GAMMADIST' => array( 286, 4, 1, 0 ), + 'GAMMAINV' => array( 287, 3, 1, 0 ), + 'CEILING' => array( 288, 2, 1, 0 ), + 'HYPGEOMDIST' => array( 289, 4, 1, 0 ), + 'LOGNORMDIST' => array( 290, 3, 1, 0 ), + 'LOGINV' => array( 291, 3, 1, 0 ), + 'NEGBINOMDIST' => array( 292, 3, 1, 0 ), + 'NORMDIST' => array( 293, 4, 1, 0 ), + 'NORMSDIST' => array( 294, 1, 1, 0 ), + 'NORMINV' => array( 295, 3, 1, 0 ), + 'NORMSINV' => array( 296, 1, 1, 0 ), + 'STANDARDIZE' => array( 297, 3, 1, 0 ), + 'ODD' => array( 298, 1, 1, 0 ), + 'PERMUT' => array( 299, 2, 1, 0 ), + 'POISSON' => array( 300, 3, 1, 0 ), + 'TDIST' => array( 301, 3, 1, 0 ), + 'WEIBULL' => array( 302, 4, 1, 0 ), + 'SUMXMY2' => array( 303, 2, 2, 0 ), + 'SUMX2MY2' => array( 304, 2, 2, 0 ), + 'SUMX2PY2' => array( 305, 2, 2, 0 ), + 'CHITEST' => array( 306, 2, 2, 0 ), + 'CORREL' => array( 307, 2, 2, 0 ), + 'COVAR' => array( 308, 2, 2, 0 ), + 'FORECAST' => array( 309, 3, 2, 0 ), + 'FTEST' => array( 310, 2, 2, 0 ), + 'INTERCEPT' => array( 311, 2, 2, 0 ), + 'PEARSON' => array( 312, 2, 2, 0 ), + 'RSQ' => array( 313, 2, 2, 0 ), + 'STEYX' => array( 314, 2, 2, 0 ), + 'SLOPE' => array( 315, 2, 2, 0 ), + 'TTEST' => array( 316, 4, 2, 0 ), + 'PROB' => array( 317, -1, 2, 0 ), + 'DEVSQ' => array( 318, -1, 0, 0 ), + 'GEOMEAN' => array( 319, -1, 0, 0 ), + 'HARMEAN' => array( 320, -1, 0, 0 ), + 'SUMSQ' => array( 321, -1, 0, 0 ), + 'KURT' => array( 322, -1, 0, 0 ), + 'SKEW' => array( 323, -1, 0, 0 ), + 'ZTEST' => array( 324, -1, 0, 0 ), + 'LARGE' => array( 325, 2, 0, 0 ), + 'SMALL' => array( 326, 2, 0, 0 ), + 'QUARTILE' => array( 327, 2, 0, 0 ), + 'PERCENTILE' => array( 328, 2, 0, 0 ), + 'PERCENTRANK' => array( 329, -1, 0, 0 ), + 'MODE' => array( 330, -1, 2, 0 ), + 'TRIMMEAN' => array( 331, 2, 0, 0 ), + 'TINV' => array( 332, 2, 1, 0 ), + 'CONCATENATE' => array( 336, -1, 1, 0 ), + 'POWER' => array( 337, 2, 1, 0 ), + 'RADIANS' => array( 342, 1, 1, 0 ), + 'DEGREES' => array( 343, 1, 1, 0 ), + 'SUBTOTAL' => array( 344, -1, 0, 0 ), + 'SUMIF' => array( 345, -1, 0, 0 ), + 'COUNTIF' => array( 346, 2, 0, 0 ), + 'COUNTBLANK' => array( 347, 1, 0, 0 ), + 'ISPMT' => array( 350, 4, 1, 0 ), + 'DATEDIF' => array( 351, 3, 1, 0 ), + 'DATESTRING' => array( 352, 1, 1, 0 ), + 'NUMBERSTRING' => array( 353, 2, 1, 0 ), + 'ROMAN' => array( 354, -1, 1, 0 ), + 'GETPIVOTDATA' => array( 358, -1, 0, 0 ), + 'HYPERLINK' => array( 359, -1, 1, 0 ), + 'PHONETIC' => array( 360, 1, 0, 0 ), + 'AVERAGEA' => array( 361, -1, 0, 0 ), + 'MAXA' => array( 362, -1, 0, 0 ), + 'MINA' => array( 363, -1, 0, 0 ), + 'STDEVPA' => array( 364, -1, 0, 0 ), + 'VARPA' => array( 365, -1, 0, 0 ), + 'STDEVA' => array( 366, -1, 0, 0 ), + 'VARA' => array( 367, -1, 0, 0 ), + 'BAHTTEXT' => array( 368, 1, 0, 0 ), + ); + } + + /** + * Convert a token to the proper ptg value. + * + * @access private + * @param mixed $token The token to convert. + * @return mixed the converted token on success + */ + function _convert($token) + { + if (preg_match("/\"([^\"]|\"\"){0,255}\"/", $token)) { + return $this->_convertString($token); + + } elseif (is_numeric($token)) { + return $this->_convertNumber($token); + + // match references like A1 or $A$1 + } elseif (preg_match('/^\$?([A-Ia-i]?[A-Za-z])\$?(\d+)$/',$token)) { + return $this->_convertRef2d($token); + + // match external references like Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1 + } elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?[A-Ia-i]?[A-Za-z]\\$?(\d+)$/u",$token)) { + return $this->_convertRef3d($token); + + // match external references like 'Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1 + } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?[A-Ia-i]?[A-Za-z]\\$?(\d+)$/u",$token)) { + return $this->_convertRef3d($token); + + // match ranges like A1:B2 or $A$1:$B$2 + } elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)\:(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)$/', $token)) { + return $this->_convertRange2d($token); + + // match external ranges like Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2 + } elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?([A-Ia-i]?[A-Za-z])?\\$?(\d+)\:\\$?([A-Ia-i]?[A-Za-z])?\\$?(\d+)$/u",$token)) { + return $this->_convertRange3d($token); + + // match external ranges like 'Sheet1'!A1:B2 or 'Sheet1:Sheet2'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1:Sheet2'!$A$1:$B$2 + } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?([A-Ia-i]?[A-Za-z])?\\$?(\d+)\:\\$?([A-Ia-i]?[A-Za-z])?\\$?(\d+)$/u",$token)) { + return $this->_convertRange3d($token); + + // operators (including parentheses) + } elseif (isset($this->ptg[$token])) { + return pack("C", $this->ptg[$token]); + + // match error codes + } elseif (preg_match("/^#[A-Z0\/]{3,5}[!?]{1}$/", $token) or $token == '#N/A') { + return $this->_convertError($token); + + // commented so argument number can be processed correctly. See toReversePolish(). + /*elseif (preg_match("/[A-Z0-9\xc0-\xdc\.]+/",$token)) + { + return($this->_convertFunction($token,$this->_func_args)); + }*/ + + // if it's an argument, ignore the token (the argument remains) + } elseif ($token == 'arg') { + return ''; + } + + // TODO: use real error codes + throw new Exception("Unknown token $token"); + } + + /** + * Convert a number token to ptgInt or ptgNum + * + * @access private + * @param mixed $num an integer or double for conversion to its ptg value + */ + function _convertNumber($num) + { + // Integer in the range 0..2**16-1 + if ((preg_match("/^\d+$/", $num)) and ($num <= 65535)) { + return pack("Cv", $this->ptg['ptgInt'], $num); + } else { // A float + if (PHPExcel_Writer_Excel5_BIFFwriter::getByteOrder()) { // if it's Big Endian + $num = strrev($num); + } + return pack("Cd", $this->ptg['ptgNum'], $num); + } + } + + /** + * Convert a string token to ptgStr + * + * @access private + * @param string $string A string for conversion to its ptg value. + * @return mixed the converted token on success + */ + function _convertString($string) + { + // chop away beggining and ending quotes + $string = substr($string, 1, strlen($string) - 2); + if (strlen($string) > 255) { + throw new Exception("String is too long"); + } + + return pack('C', $this->ptg['ptgStr']) . PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($string); + } + + /** + * Convert a function to a ptgFunc or ptgFuncVarV depending on the number of + * args that it takes. + * + * @access private + * @param string $token The name of the function for convertion to ptg value. + * @param integer $num_args The number of arguments the function receives. + * @return string The packed ptg for the function + */ + function _convertFunction($token, $num_args) + { + $args = $this->_functions[$token][1]; +// $volatile = $this->_functions[$token][3]; + + // Fixed number of args eg. TIME($i,$j,$k). + if ($args >= 0) { + return pack("Cv", $this->ptg['ptgFuncV'], $this->_functions[$token][0]); + } + // Variable number of args eg. SUM($i,$j,$k, ..). + if ($args == -1) { + return pack("CCv", $this->ptg['ptgFuncVarV'], $num_args, $this->_functions[$token][0]); + } + } + + /** + * Convert an Excel range such as A1:D4 to a ptgRefV. + * + * @access private + * @param string $range An Excel range in the A1:A2 + * @param int $class + */ + function _convertRange2d($range, $class=0) + { + + // TODO: possible class value 0,1,2 check Formula.pm + // Split the range into 2 cell refs + if (preg_match('/^(\$)?([A-Ia-i]?[A-Za-z])(\$)?(\d+)\:(\$)?([A-Ia-i]?[A-Za-z])(\$)?(\d+)$/', $range)) { + list($cell1, $cell2) = explode(':', $range); + } else { + // TODO: use real error codes + throw new Exception("Unknown range separator"); + } + + // Convert the cell references + list($row1, $col1) = $this->_cellToPackedRowcol($cell1); + list($row2, $col2) = $this->_cellToPackedRowcol($cell2); + + // The ptg value depends on the class of the ptg. + if ($class == 0) { + $ptgArea = pack("C", $this->ptg['ptgArea']); + } elseif ($class == 1) { + $ptgArea = pack("C", $this->ptg['ptgAreaV']); + } elseif ($class == 2) { + $ptgArea = pack("C", $this->ptg['ptgAreaA']); + } else { + // TODO: use real error codes + throw new Exception("Unknown class $class"); + } + return $ptgArea . $row1 . $row2 . $col1. $col2; + } + + /** + * Convert an Excel 3d range such as "Sheet1!A1:D4" or "Sheet1:Sheet2!A1:D4" to + * a ptgArea3d. + * + * @access private + * @param string $token An Excel range in the Sheet1!A1:A2 format. + * @return mixed The packed ptgArea3d token on success. + */ + function _convertRange3d($token) + { +// $class = 0; // formulas like Sheet1!$A$1:$A$2 in list type data validation need this class (0x3B) + + // Split the ref at the ! symbol + list($ext_ref, $range) = explode('!', $token); + + // Convert the external reference part (different for BIFF8) + $ext_ref = $this->_getRefIndex($ext_ref); + + // Split the range into 2 cell refs + list($cell1, $cell2) = explode(':', $range); + + // Convert the cell references + if (preg_match("/^(\\$)?[A-Ia-i]?[A-Za-z](\\$)?(\d+)$/", $cell1)) { + list($row1, $col1) = $this->_cellToPackedRowcol($cell1); + list($row2, $col2) = $this->_cellToPackedRowcol($cell2); + } else { // It's a rows range (like 26:27) + list($row1, $col1, $row2, $col2) = $this->_rangeToPackedRange($cell1.':'.$cell2); + } + + // The ptg value depends on the class of the ptg. +// if ($class == 0) { + $ptgArea = pack("C", $this->ptg['ptgArea3d']); +// } elseif ($class == 1) { +// $ptgArea = pack("C", $this->ptg['ptgArea3dV']); +// } elseif ($class == 2) { +// $ptgArea = pack("C", $this->ptg['ptgArea3dA']); +// } else { +// throw new Exception("Unknown class $class"); +// } + + return $ptgArea . $ext_ref . $row1 . $row2 . $col1. $col2; + } + + /** + * Convert an Excel reference such as A1, $B2, C$3 or $D$4 to a ptgRefV. + * + * @access private + * @param string $cell An Excel cell reference + * @return string The cell in packed() format with the corresponding ptg + */ + function _convertRef2d($cell) + { +// $class = 2; // as far as I know, this is magick. + + // Convert the cell reference + $cell_array = $this->_cellToPackedRowcol($cell); + list($row, $col) = $cell_array; + + // The ptg value depends on the class of the ptg. +// if ($class == 0) { +// $ptgRef = pack("C", $this->ptg['ptgRef']); +// } elseif ($class == 1) { +// $ptgRef = pack("C", $this->ptg['ptgRefV']); +// } elseif ($class == 2) { + $ptgRef = pack("C", $this->ptg['ptgRefA']); +// } else { +// // TODO: use real error codes +// throw new Exception("Unknown class $class"); +// } + return $ptgRef.$row.$col; + } + + /** + * Convert an Excel 3d reference such as "Sheet1!A1" or "Sheet1:Sheet2!A1" to a + * ptgRef3d. + * + * @access private + * @param string $cell An Excel cell reference + * @return mixed The packed ptgRef3d token on success. + */ + function _convertRef3d($cell) + { +// $class = 2; // as far as I know, this is magick. + + // Split the ref at the ! symbol + list($ext_ref, $cell) = explode('!', $cell); + + // Convert the external reference part (different for BIFF8) + $ext_ref = $this->_getRefIndex($ext_ref); + + // Convert the cell reference part + list($row, $col) = $this->_cellToPackedRowcol($cell); + + // The ptg value depends on the class of the ptg. +// if ($class == 0) { +// $ptgRef = pack("C", $this->ptg['ptgRef3d']); +// } elseif ($class == 1) { +// $ptgRef = pack("C", $this->ptg['ptgRef3dV']); +// } elseif ($class == 2) { + $ptgRef = pack("C", $this->ptg['ptgRef3dA']); +// } else { +// throw new Exception("Unknown class $class"); +// } + + return $ptgRef . $ext_ref. $row . $col; + } + + /** + * Convert an error code to a ptgErr + * + * @access private + * @param string $errorCode The error code for conversion to its ptg value + * @return string The error code ptgErr + */ + function _convertError($errorCode) + { + switch ($errorCode) { + case '#NULL!': return pack("C", 0x00); + case '#DIV/0!': return pack("C", 0x07); + case '#VALUE!': return pack("C", 0x0F); + case '#REF!': return pack("C", 0x17); + case '#NAME?': return pack("C", 0x1D); + case '#NUM!': return pack("C", 0x24); + case '#N/A': return pack("C", 0x2A); + } + return pack("C", 0xFF); + } + + /** + * Convert the sheet name part of an external reference, for example "Sheet1" or + * "Sheet1:Sheet2", to a packed structure. + * + * @access private + * @param string $ext_ref The name of the external reference + * @return string The reference index in packed() format + */ + function _packExtRef($ext_ref) + { + $ext_ref = preg_replace("/^'/", '', $ext_ref); // Remove leading ' if any. + $ext_ref = preg_replace("/'$/", '', $ext_ref); // Remove trailing ' if any. + + // Check if there is a sheet range eg., Sheet1:Sheet2. + if (preg_match("/:/", $ext_ref)) { + list($sheet_name1, $sheet_name2) = explode(':', $ext_ref); + + $sheet1 = $this->_getSheetIndex($sheet_name1); + if ($sheet1 == -1) { + throw new Exception("Unknown sheet name $sheet_name1 in formula"); + } + $sheet2 = $this->_getSheetIndex($sheet_name2); + if ($sheet2 == -1) { + throw new Exception("Unknown sheet name $sheet_name2 in formula"); + } + + // Reverse max and min sheet numbers if necessary + if ($sheet1 > $sheet2) { + list($sheet1, $sheet2) = array($sheet2, $sheet1); + } + } else { // Single sheet name only. + $sheet1 = $this->_getSheetIndex($ext_ref); + if ($sheet1 == -1) { + throw new Exception("Unknown sheet name $ext_ref in formula"); + } + $sheet2 = $sheet1; + } + + // References are stored relative to 0xFFFF. + $offset = -1 - $sheet1; + + return pack('vdvv', $offset, 0x00, $sheet1, $sheet2); + } + + /** + * Look up the REF index that corresponds to an external sheet name + * (or range). If it doesn't exist yet add it to the workbook's references + * array. It assumes all sheet names given must exist. + * + * @access private + * @param string $ext_ref The name of the external reference + * @return mixed The reference index in packed() format on success + */ + function _getRefIndex($ext_ref) + { + $ext_ref = preg_replace("/^'/", '', $ext_ref); // Remove leading ' if any. + $ext_ref = preg_replace("/'$/", '', $ext_ref); // Remove trailing ' if any. + $ext_ref = str_replace('\'\'', '\'', $ext_ref); // Replace escaped '' with ' + + // Check if there is a sheet range eg., Sheet1:Sheet2. + if (preg_match("/:/", $ext_ref)) { + list($sheet_name1, $sheet_name2) = explode(':', $ext_ref); + + $sheet1 = $this->_getSheetIndex($sheet_name1); + if ($sheet1 == -1) { + throw new Exception("Unknown sheet name $sheet_name1 in formula"); + } + $sheet2 = $this->_getSheetIndex($sheet_name2); + if ($sheet2 == -1) { + throw new Exception("Unknown sheet name $sheet_name2 in formula"); + } + + // Reverse max and min sheet numbers if necessary + if ($sheet1 > $sheet2) { + list($sheet1, $sheet2) = array($sheet2, $sheet1); + } + } else { // Single sheet name only. + $sheet1 = $this->_getSheetIndex($ext_ref); + if ($sheet1 == -1) { + throw new Exception("Unknown sheet name $ext_ref in formula"); + } + $sheet2 = $sheet1; + } + + // assume all references belong to this document + $supbook_index = 0x00; + $ref = pack('vvv', $supbook_index, $sheet1, $sheet2); + $total_references = count($this->_references); + $index = -1; + for ($i = 0; $i < $total_references; ++$i) { + if ($ref == $this->_references[$i]) { + $index = $i; + break; + } + } + // if REF was not found add it to references array + if ($index == -1) { + $this->_references[$total_references] = $ref; + $index = $total_references; + } + + return pack('v', $index); + } + + /** + * Look up the index that corresponds to an external sheet name. The hash of + * sheet names is updated by the addworksheet() method of the + * PHPExcel_Writer_Excel5_Workbook class. + * + * @access private + * @param string $sheet_name Sheet name + * @return integer The sheet index, -1 if the sheet was not found + */ + function _getSheetIndex($sheet_name) + { + if (!isset($this->_ext_sheets[$sheet_name])) { + return -1; + } else { + return $this->_ext_sheets[$sheet_name]; + } + } + + /** + * This method is used to update the array of sheet names. It is + * called by the addWorksheet() method of the + * PHPExcel_Writer_Excel5_Workbook class. + * + * @access public + * @see PHPExcel_Writer_Excel5_Workbook::addWorksheet() + * @param string $name The name of the worksheet being added + * @param integer $index The index of the worksheet being added + */ + function setExtSheet($name, $index) + { + $this->_ext_sheets[$name] = $index; + } + + /** + * pack() row and column into the required 3 or 4 byte format. + * + * @access private + * @param string $cell The Excel cell reference to be packed + * @return array Array containing the row and column in packed() format + */ + function _cellToPackedRowcol($cell) + { + $cell = strtoupper($cell); + list($row, $col, $row_rel, $col_rel) = $this->_cellToRowcol($cell); + if ($col >= 256) { + throw new Exception("Column in: $cell greater than 255"); + } + // FIXME: change for BIFF8 + if ($row >= 16384) { + throw new Exception("Row in: $cell greater than 16384 "); + } + + // Set the high bits to indicate if row or col are relative. + $col |= $col_rel << 14; + $col |= $row_rel << 15; + $col = pack('v', $col); + + $row = pack('v', $row); + + return array($row, $col); + } + + /** + * pack() row range into the required 3 or 4 byte format. + * Just using maximum col/rows, which is probably not the correct solution + * + * @access private + * @param string $range The Excel range to be packed + * @return array Array containing (row1,col1,row2,col2) in packed() format + */ + function _rangeToPackedRange($range) + { + preg_match('/(\$)?(\d+)\:(\$)?(\d+)/', $range, $match); + // return absolute rows if there is a $ in the ref + $row1_rel = empty($match[1]) ? 1 : 0; + $row1 = $match[2]; + $row2_rel = empty($match[3]) ? 1 : 0; + $row2 = $match[4]; + // Convert 1-index to zero-index + --$row1; + --$row2; + // Trick poor inocent Excel + $col1 = 0; + $col2 = 16383; // FIXME: maximum possible value for Excel 5 (change this!!!) + + // FIXME: this changes for BIFF8 + if (($row1 >= 16384) or ($row2 >= 16384)) { + throw new Exception("Row in: $range greater than 16384 "); + } + + // Set the high bits to indicate if rows are relative. + $col1 |= $row1_rel << 15; + $col2 |= $row2_rel << 15; + $col1 = pack('v', $col1); + $col2 = pack('v', $col2); + + $row1 = pack('v', $row1); + $row2 = pack('v', $row2); + + return array($row1, $col1, $row2, $col2); + } + + /** + * Convert an Excel cell reference such as A1 or $B2 or C$3 or $D$4 to a zero + * indexed row and column number. Also returns two (0,1) values to indicate + * whether the row or column are relative references. + * + * @access private + * @param string $cell The Excel cell reference in A1 format. + * @return array + */ + function _cellToRowcol($cell) + { + preg_match('/(\$)?([A-I]?[A-Z])(\$)?(\d+)/',$cell,$match); + // return absolute column if there is a $ in the ref + $col_rel = empty($match[1]) ? 1 : 0; + $col_ref = $match[2]; + $row_rel = empty($match[3]) ? 1 : 0; + $row = $match[4]; + + // Convert base26 column string to a number. + $expn = strlen($col_ref) - 1; + $col = 0; + $col_ref_length = strlen($col_ref); + for ($i = 0; $i < $col_ref_length; ++$i) { + $col += (ord($col_ref{$i}) - 64) * pow(26, $expn); + --$expn; + } + + // Convert 1-index to zero-index + --$row; + --$col; + + return array($row, $col, $row_rel, $col_rel); + } + + /** + * Advance to the next valid token. + * + * @access private + */ + function _advance() + { + $i = $this->_current_char; + $formula_length = strlen($this->_formula); + // eat up white spaces + if ($i < $formula_length) { + while ($this->_formula{$i} == " ") { + ++$i; + } + + if ($i < ($formula_length - 1)) { + $this->_lookahead = $this->_formula{$i+1}; + } + $token = ''; + } + + while ($i < $formula_length) { + $token .= $this->_formula{$i}; + + if ($i < ($formula_length - 1)) { + $this->_lookahead = $this->_formula{$i+1}; + } else { + $this->_lookahead = ''; + } + + if ($this->_match($token) != '') { + //if ($i < strlen($this->_formula) - 1) { + // $this->_lookahead = $this->_formula{$i+1}; + //} + $this->_current_char = $i + 1; + $this->_current_token = $token; + return 1; + } + + if ($i < ($formula_length - 2)) { + $this->_lookahead = $this->_formula{$i+2}; + } else { // if we run out of characters _lookahead becomes empty + $this->_lookahead = ''; + } + ++$i; + } + //die("Lexical error ".$this->_current_char); + } + + /** + * Checks if it's a valid token. + * + * @access private + * @param mixed $token The token to check. + * @return mixed The checked token or false on failure + */ + function _match($token) + { + switch($token) { + case "+": + case "-": + case "*": + case "/": + case "(": + case ")": + case ",": + case ";": + case ">=": + case "<=": + case "=": + case "<>": + case "^": + case "&": + case "%": + return $token; + break; + case ">": + if ($this->_lookahead == '=') { // it's a GE token + break; + } + return $token; + break; + case "<": + // it's a LE or a NE token + if (($this->_lookahead == '=') or ($this->_lookahead == '>')) { + break; + } + return $token; + break; + default: + // if it's a reference A1 or $A$1 or $A1 or A$1 + if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$token) and + !preg_match("/[0-9]/",$this->_lookahead) and + ($this->_lookahead != ':') and ($this->_lookahead != '.') and + ($this->_lookahead != '!')) + { + return $token; + } + // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1) + elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?[A-Ia-i]?[A-Za-z]\\$?[0-9]+$/u",$token) and + !preg_match("/[0-9]/",$this->_lookahead) and + ($this->_lookahead != ':') and ($this->_lookahead != '.')) + { + return $token; + } + // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1) + elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?[A-Ia-i]?[A-Za-z]\\$?[0-9]+$/u",$token) and + !preg_match("/[0-9]/",$this->_lookahead) and + ($this->_lookahead != ':') and ($this->_lookahead != '.')) + { + return $token; + } + // if it's a range A1:A2 or $A$1:$A$2 + elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/', $token) and + !preg_match("/[0-9]/",$this->_lookahead)) + { + return $token; + } + // If it's an external range like Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2 + elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u",$token) and + !preg_match("/[0-9]/",$this->_lookahead)) + { + return $token; + } + // If it's an external range like 'Sheet1'!A1:B2 or 'Sheet1:Sheet2'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1:Sheet2'!$A$1:$B$2 + elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u",$token) and + !preg_match("/[0-9]/",$this->_lookahead)) + { + return $token; + } + // If it's a number (check that it's not a sheet name or range) + elseif (is_numeric($token) and + (!is_numeric($token.$this->_lookahead) or ($this->_lookahead == '')) and + ($this->_lookahead != '!') and ($this->_lookahead != ':')) + { + return $token; + } + // If it's a string (of maximum 255 characters) + elseif (preg_match("/\"([^\"]|\"\"){0,255}\"/",$token) and $this->_lookahead != '"' and (substr_count($token, '"')%2 == 0)) + { + return $token; + } + // If it's an error code + elseif (preg_match("/^#[A-Z0\/]{3,5}[!?]{1}$/", $token) or $token == '#N/A') + { + return $token; + } + // if it's a function call + elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$token) and ($this->_lookahead == "(")) + { + return $token; + } + // It's an argument of some description (e.g. a named range), + // precise nature yet to be determined + elseif(substr($token,-1) == ')') { + return $token; + } + return ''; + } + } + + /** + * The parsing method. It parses a formula. + * + * @access public + * @param string $formula The formula to parse, without the initial equal + * sign (=). + * @return mixed true on success + */ + function parse($formula) + { + $this->_current_char = 0; + $this->_formula = $formula; + $this->_lookahead = isset($formula{1}) ? $formula{1} : ''; + $this->_advance(); + $this->_parse_tree = $this->_condition(); + return true; + } + + /** + * It parses a condition. It assumes the following rule: + * Cond -> Expr [(">" | "<") Expr] + * + * @access private + * @return mixed The parsed ptg'd tree on success + */ + function _condition() + { + $result = $this->_expression(); + if ($this->_current_token == "<") { + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgLT', $result, $result2); + } elseif ($this->_current_token == ">") { + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgGT', $result, $result2); + } elseif ($this->_current_token == "<=") { + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgLE', $result, $result2); + } elseif ($this->_current_token == ">=") { + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgGE', $result, $result2); + } elseif ($this->_current_token == "=") { + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgEQ', $result, $result2); + } elseif ($this->_current_token == "<>") { + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgNE', $result, $result2); + } elseif ($this->_current_token == "&") { + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgConcat', $result, $result2); + } + return $result; + } + + /** + * It parses a expression. It assumes the following rule: + * Expr -> Term [("+" | "-") Term] + * -> "string" + * -> "-" Term : Negative value + * -> "+" Term : Positive value + * -> Error code + * + * @access private + * @return mixed The parsed ptg'd tree on success + */ + function _expression() + { + // If it's a string return a string node + if (preg_match("/\"([^\"]|\"\"){0,255}\"/", $this->_current_token)) { + $tmp = str_replace('""', '"', $this->_current_token); + if (($tmp == '"') || ($tmp == '')) $tmp = '""'; // Trap for "" that has been used for an empty string + $result = $this->_createTree($tmp, '', ''); + $this->_advance(); + return $result; + // If it's an error code + } elseif (preg_match("/^#[A-Z0\/]{3,5}[!?]{1}$/", $this->_current_token) or $this->_current_token == '#N/A'){ + $result = $this->_createTree($this->_current_token, 'ptgErr', ''); + $this->_advance(); + return $result; + // If it's a negative value + } elseif ($this->_current_token == "-") { + // catch "-" Term + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgUminus', $result2, ''); + return $result; + // If it's a positive value + } elseif ($this->_current_token == "+") { + // catch "+" Term + $this->_advance(); + $result2 = $this->_expression(); + $result = $this->_createTree('ptgUplus', $result2, ''); + return $result; + } + $result = $this->_term(); + while (($this->_current_token == "+") or + ($this->_current_token == "-") or + ($this->_current_token == "^")) { + /**/ + if ($this->_current_token == "+") { + $this->_advance(); + $result2 = $this->_term(); + $result = $this->_createTree('ptgAdd', $result, $result2); + } elseif ($this->_current_token == "-") { + $this->_advance(); + $result2 = $this->_term(); + $result = $this->_createTree('ptgSub', $result, $result2); + } else { + $this->_advance(); + $result2 = $this->_term(); + $result = $this->_createTree('ptgPower', $result, $result2); + } + } + return $result; + } + + /** + * This function just introduces a ptgParen element in the tree, so that Excel + * doesn't get confused when working with a parenthesized formula afterwards. + * + * @access private + * @see _fact() + * @return array The parsed ptg'd tree + */ + function _parenthesizedExpression() + { + $result = $this->_createTree('ptgParen', $this->_expression(), ''); + return $result; + } + + /** + * It parses a term. It assumes the following rule: + * Term -> Fact [("*" | "/") Fact] + * + * @access private + * @return mixed The parsed ptg'd tree on success + */ + function _term() + { + $result = $this->_fact(); + while (($this->_current_token == "*") or + ($this->_current_token == "/")) { + /**/ + if ($this->_current_token == "*") { + $this->_advance(); + $result2 = $this->_fact(); + $result = $this->_createTree('ptgMul', $result, $result2); + } else { + $this->_advance(); + $result2 = $this->_fact(); + $result = $this->_createTree('ptgDiv', $result, $result2); + } + } + return $result; + } + + /** + * It parses a factor. It assumes the following rule: + * Fact -> ( Expr ) + * | CellRef + * | CellRange + * | Number + * | Function + * + * @access private + * @return mixed The parsed ptg'd tree on success + */ + function _fact() + { + if ($this->_current_token == "(") { + $this->_advance(); // eat the "(" + $result = $this->_parenthesizedExpression(); + if ($this->_current_token != ")") { + throw new Exception("')' token expected."); + } + $this->_advance(); // eat the ")" + return $result; + } + // if it's a reference + if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$this->_current_token)) + { + $result = $this->_createTree($this->_current_token, '', ''); + $this->_advance(); + return $result; + } + // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1) + elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?[A-Ia-i]?[A-Za-z]\\$?[0-9]+$/u",$this->_current_token)) + { + $result = $this->_createTree($this->_current_token, '', ''); + $this->_advance(); + return $result; + } + // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1) + elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?[A-Ia-i]?[A-Za-z]\\$?[0-9]+$/u",$this->_current_token)) + { + $result = $this->_createTree($this->_current_token, '', ''); + $this->_advance(); + return $result; + } + // if it's a range A1:B2 or $A$1:$B$2 + elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/',$this->_current_token) or + preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/',$this->_current_token)) + { + // must be an error? + $result = $this->_createTree($this->_current_token, '', ''); + $this->_advance(); + return $result; + } + // If it's an external range (Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2) + elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u",$this->_current_token)) + { + // must be an error? + //$result = $this->_current_token; + $result = $this->_createTree($this->_current_token, '', ''); + $this->_advance(); + return $result; + } + // If it's an external range ('Sheet1'!A1:B2 or 'Sheet1'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1'!$A$1:$B$2) + elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u",$this->_current_token)) + { + // must be an error? + //$result = $this->_current_token; + $result = $this->_createTree($this->_current_token, '', ''); + $this->_advance(); + return $result; + } + // If it's a number or a percent + elseif (is_numeric($this->_current_token)) + { + if($this->_lookahead == '%'){ + $result = $this->_createTree('ptgPercent', $this->_current_token, ''); + } else { + $result = $this->_createTree($this->_current_token, '', ''); + } + $this->_advance(); + return $result; + } + // if it's a function call + elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$this->_current_token)) + { + $result = $this->_func(); + return $result; + } + throw new Exception("Syntax error: ".$this->_current_token. + ", lookahead: ".$this->_lookahead. + ", current char: ".$this->_current_char); + } + + /** + * It parses a function call. It assumes the following rule: + * Func -> ( Expr [,Expr]* ) + * + * @access private + * @return mixed The parsed ptg'd tree on success + */ + function _func() + { + $num_args = 0; // number of arguments received + $function = strtoupper($this->_current_token); + $result = ''; // initialize result + $this->_advance(); + $this->_advance(); // eat the "(" + while ($this->_current_token != ')') { + /**/ + if ($num_args > 0) { + if ($this->_current_token == "," or + $this->_current_token == ";") + { + $this->_advance(); // eat the "," or ";" + } else { + throw new Exception("Syntax error: comma expected in ". + "function $function, arg #{$num_args}"); + } + $result2 = $this->_condition(); + $result = $this->_createTree('arg', $result, $result2); + } else { // first argument + $result2 = $this->_condition(); + $result = $this->_createTree('arg', '', $result2); + } + ++$num_args; + } + if (!isset($this->_functions[$function])) { + throw new Exception("Function $function() doesn't exist"); + } + $args = $this->_functions[$function][1]; + // If fixed number of args eg. TIME($i,$j,$k). Check that the number of args is valid. + if (($args >= 0) and ($args != $num_args)) { + throw new Exception("Incorrect number of arguments in function $function() "); + } + + $result = $this->_createTree($function, $result, $num_args); + $this->_advance(); // eat the ")" + return $result; + } + + /** + * Creates a tree. In fact an array which may have one or two arrays (sub-trees) + * as elements. + * + * @access private + * @param mixed $value The value of this node. + * @param mixed $left The left array (sub-tree) or a final node. + * @param mixed $right The right array (sub-tree) or a final node. + * @return array A tree + */ + function _createTree($value, $left, $right) + { + return array('value' => $value, 'left' => $left, 'right' => $right); + } + + /** + * Builds a string containing the tree in reverse polish notation (What you + * would use in a HP calculator stack). + * The following tree: + * + * + + * / \ + * 2 3 + * + * produces: "23+" + * + * The following tree: + * + * + + * / \ + * 3 * + * / \ + * 6 A1 + * + * produces: "36A1*+" + * + * In fact all operands, functions, references, etc... are written as ptg's + * + * @access public + * @param array $tree The optional tree to convert. + * @return string The tree in reverse polish notation + */ + function toReversePolish($tree = array()) + { + $polish = ""; // the string we are going to return + if (empty($tree)) { // If it's the first call use _parse_tree + $tree = $this->_parse_tree; + } + + if (is_array($tree['left'])) { + $converted_tree = $this->toReversePolish($tree['left']); + $polish .= $converted_tree; + } elseif ($tree['left'] != '') { // It's a final node + $converted_tree = $this->_convert($tree['left']); + $polish .= $converted_tree; + } + if (is_array($tree['right'])) { + $converted_tree = $this->toReversePolish($tree['right']); + $polish .= $converted_tree; + } elseif ($tree['right'] != '') { // It's a final node + $converted_tree = $this->_convert($tree['right']); + $polish .= $converted_tree; + } + // if it's a function convert it here (so we can set it's arguments) + if (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/",$tree['value']) and + !preg_match('/^([A-Ia-i]?[A-Za-z])(\d+)$/',$tree['value']) and + !preg_match("/^[A-Ia-i]?[A-Za-z](\d+)\.\.[A-Ia-i]?[A-Za-z](\d+)$/",$tree['value']) and + !is_numeric($tree['value']) and + !isset($this->ptg[$tree['value']])) + { + // left subtree for a function is always an array. + if ($tree['left'] != '') { + $left_tree = $this->toReversePolish($tree['left']); + } else { + $left_tree = ''; + } + // add it's left subtree and return. + return $left_tree.$this->_convertFunction($tree['value'], $tree['right']); + } else { + $converted_tree = $this->_convert($tree['value']); + } + $polish .= $converted_tree; + return $polish; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Workbook.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Workbook.php new file mode 100755 index 0000000..2e177ce --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Workbook.php @@ -0,0 +1,1450 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +// Original file header of PEAR::Spreadsheet_Excel_Writer_Workbook (used as the base for this class): +// ----------------------------------------------------------------------------------------- +// /* +// * Module written/ported by Xavier Noguer <xnoguer@rezebra.com> +// * +// * The majority of this is _NOT_ my code. I simply ported it from the +// * PERL Spreadsheet::WriteExcel module. +// * +// * The author of the Spreadsheet::WriteExcel module is John McNamara +// * <jmcnamara@cpan.org> +// * +// * I _DO_ maintain this code, and John McNamara has nothing to do with the +// * porting of this code to PHP. Any questions directly related to this +// * class library should be directed to me. +// * +// * License Information: +// * +// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets +// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com +// * +// * This library is free software; you can redistribute it and/or +// * modify it under the terms of the GNU Lesser General Public +// * License as published by the Free Software Foundation; either +// * version 2.1 of the License, or (at your option) any later version. +// * +// * This library is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * Lesser General Public License for more details. +// * +// * You should have received a copy of the GNU Lesser General Public +// * License along with this library; if not, write to the Free Software +// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// */ + + +/** + * PHPExcel_Writer_Excel5_Workbook + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel5_Workbook extends PHPExcel_Writer_Excel5_BIFFwriter +{ + /** + * Formula parser + * + * @var PHPExcel_Writer_Excel5_Parser + */ + private $_parser; + + /** + * The BIFF file size for the workbook. + * @var integer + * @see _calcSheetOffsets() + */ + public $_biffsize; + + /** + * XF Writers + * @var PHPExcel_Writer_Excel5_Xf[] + */ + private $_xfWriters = array(); + + /** + * Array containing the colour palette + * @var array + */ + public $_palette; + + /** + * The codepage indicates the text encoding used for strings + * @var integer + */ + public $_codepage; + + /** + * The country code used for localization + * @var integer + */ + public $_country_code; + + /** + * Workbook + * @var PHPExcel + */ + private $_phpExcel; + + /** + * Fonts writers + * + * @var PHPExcel_Writer_Excel5_Font[] + */ + private $_fontWriters = array(); + + /** + * Added fonts. Maps from font's hash => index in workbook + * + * @var array + */ + private $_addedFonts = array(); + + /** + * Shared number formats + * + * @var array + */ + private $_numberFormats = array(); + + /** + * Added number formats. Maps from numberFormat's hash => index in workbook + * + * @var array + */ + private $_addedNumberFormats = array(); + + /** + * Sizes of the binary worksheet streams + * + * @var array + */ + private $_worksheetSizes = array(); + + /** + * Offsets of the binary worksheet streams relative to the start of the global workbook stream + * + * @var array + */ + private $_worksheetOffsets = array(); + + /** + * Total number of shared strings in workbook + * + * @var int + */ + private $_str_total; + + /** + * Number of unique shared strings in workbook + * + * @var int + */ + private $_str_unique; + + /** + * Array of unique shared strings in workbook + * + * @var array + */ + private $_str_table; + + /** + * Color cache + */ + private $_colors; + + /** + * Escher object corresponding to MSODRAWINGGROUP + * + * @var PHPExcel_Shared_Escher + */ + private $_escher; + + + /** + * Class constructor + * + * @param PHPExcel $phpExcel The Workbook + * @param int &$str_total Total number of strings + * @param int &$str_unique Total number of unique strings + * @param array &$str_table String Table + * @param array &$colors Colour Table + * @param mixed $parser The formula parser created for the Workbook + */ + public function __construct(PHPExcel $phpExcel = null, + &$str_total, &$str_unique, &$str_table, &$colors, + $parser ) + { + // It needs to call its parent's constructor explicitly + parent::__construct(); + + $this->_parser = $parser; + $this->_biffsize = 0; + $this->_palette = array(); + $this->_country_code = -1; + + $this->_str_total = &$str_total; + $this->_str_unique = &$str_unique; + $this->_str_table = &$str_table; + $this->_colors = &$colors; + $this->_setPaletteXl97(); + + $this->_phpExcel = $phpExcel; + + // set BIFFwriter limit for CONTINUE records + // $this->_limit = 8224; + $this->_codepage = 0x04B0; + + // Add empty sheets and Build color cache + $countSheets = $phpExcel->getSheetCount(); + for ($i = 0; $i < $countSheets; ++$i) { + $phpSheet = $phpExcel->getSheet($i); + + $this->_parser->setExtSheet($phpSheet->getTitle(), $i); // Register worksheet name with parser + + $supbook_index = 0x00; + $ref = pack('vvv', $supbook_index, $i, $i); + $this->_parser->_references[] = $ref; // Register reference with parser + + // Sheet tab colors? + if ($phpSheet->isTabColorSet()) { + $this->_addColor($phpSheet->getTabColor()->getRGB()); + } + } + + } + + /** + * Add a new XF writer + * + * @param PHPExcel_Style + * @param boolean Is it a style XF? + * @return int Index to XF record + */ + public function addXfWriter($style, $isStyleXf = false) + { + $xfWriter = new PHPExcel_Writer_Excel5_Xf($style); + $xfWriter->setIsStyleXf($isStyleXf); + + // Add the font if not already added + $fontIndex = $this->_addFont($style->getFont()); + + // Assign the font index to the xf record + $xfWriter->setFontIndex($fontIndex); + + // Background colors, best to treat these after the font so black will come after white in custom palette + $xfWriter->setFgColor($this->_addColor($style->getFill()->getStartColor()->getRGB())); + $xfWriter->setBgColor($this->_addColor($style->getFill()->getEndColor()->getRGB())); + $xfWriter->setBottomColor($this->_addColor($style->getBorders()->getBottom()->getColor()->getRGB())); + $xfWriter->setTopColor($this->_addColor($style->getBorders()->getTop()->getColor()->getRGB())); + $xfWriter->setRightColor($this->_addColor($style->getBorders()->getRight()->getColor()->getRGB())); + $xfWriter->setLeftColor($this->_addColor($style->getBorders()->getLeft()->getColor()->getRGB())); + $xfWriter->setDiagColor($this->_addColor($style->getBorders()->getDiagonal()->getColor()->getRGB())); + + // Add the number format if it is not a built-in one and not already added + if ($style->getNumberFormat()->getBuiltInFormatCode() === false) { + $numberFormatHashCode = $style->getNumberFormat()->getHashCode(); + + if (isset($this->_addedNumberFormats[$numberFormatHashCode])) { + $numberFormatIndex = $this->_addedNumberFormats[$numberFormatHashCode]; + } else { + $numberFormatIndex = 164 + count($this->_numberFormats); + $this->_numberFormats[$numberFormatIndex] = $style->getNumberFormat(); + $this->_addedNumberFormats[$numberFormatHashCode] = $numberFormatIndex; + } + } else { + $numberFormatIndex = (int) $style->getNumberFormat()->getBuiltInFormatCode(); + } + + // Assign the number format index to xf record + $xfWriter->setNumberFormatIndex($numberFormatIndex); + + $this->_xfWriters[] = $xfWriter; + + $xfIndex = count($this->_xfWriters) - 1; + return $xfIndex; + } + + /** + * Add a font to added fonts + * + * @param PHPExcel_Style_Font $font + * @return int Index to FONT record + */ + public function _addFont(PHPExcel_Style_Font $font) + { + $fontHashCode = $font->getHashCode(); + if(isset($this->_addedFonts[$fontHashCode])){ + $fontIndex = $this->_addedFonts[$fontHashCode]; + } else { + $countFonts = count($this->_fontWriters); + $fontIndex = ($countFonts < 4) ? $countFonts : $countFonts + 1; + + $fontWriter = new PHPExcel_Writer_Excel5_Font($font); + $fontWriter->setColorIndex($this->_addColor($font->getColor()->getRGB())); + $this->_fontWriters[] = $fontWriter; + + $this->_addedFonts[$fontHashCode] = $fontIndex; + } + return $fontIndex; + } + /** + * Alter color palette adding a custom color + * + * @param string $rgb E.g. 'FF00AA' + * @return int Color index + */ + private function _addColor($rgb) { + if (!isset($this->_colors[$rgb])) { + if (count($this->_colors) < 57) { + // then we add a custom color altering the palette + $colorIndex = 8 + count($this->_colors); + $this->_palette[$colorIndex] = + array( + hexdec(substr($rgb, 0, 2)), + hexdec(substr($rgb, 2, 2)), + hexdec(substr($rgb, 4)), + 0 + ); + $this->_colors[$rgb] = $colorIndex; + } else { + // no room for more custom colors, just map to black + $colorIndex = 0; + } + } else { + // fetch already added custom color + $colorIndex = $this->_colors[$rgb]; + } + + return $colorIndex; + } + + /** + * Sets the colour palette to the Excel 97+ default. + * + * @access private + */ + function _setPaletteXl97() + { + $this->_palette = array( + 0x08 => array(0x00, 0x00, 0x00, 0x00), + 0x09 => array(0xff, 0xff, 0xff, 0x00), + 0x0A => array(0xff, 0x00, 0x00, 0x00), + 0x0B => array(0x00, 0xff, 0x00, 0x00), + 0x0C => array(0x00, 0x00, 0xff, 0x00), + 0x0D => array(0xff, 0xff, 0x00, 0x00), + 0x0E => array(0xff, 0x00, 0xff, 0x00), + 0x0F => array(0x00, 0xff, 0xff, 0x00), + 0x10 => array(0x80, 0x00, 0x00, 0x00), + 0x11 => array(0x00, 0x80, 0x00, 0x00), + 0x12 => array(0x00, 0x00, 0x80, 0x00), + 0x13 => array(0x80, 0x80, 0x00, 0x00), + 0x14 => array(0x80, 0x00, 0x80, 0x00), + 0x15 => array(0x00, 0x80, 0x80, 0x00), + 0x16 => array(0xc0, 0xc0, 0xc0, 0x00), + 0x17 => array(0x80, 0x80, 0x80, 0x00), + 0x18 => array(0x99, 0x99, 0xff, 0x00), + 0x19 => array(0x99, 0x33, 0x66, 0x00), + 0x1A => array(0xff, 0xff, 0xcc, 0x00), + 0x1B => array(0xcc, 0xff, 0xff, 0x00), + 0x1C => array(0x66, 0x00, 0x66, 0x00), + 0x1D => array(0xff, 0x80, 0x80, 0x00), + 0x1E => array(0x00, 0x66, 0xcc, 0x00), + 0x1F => array(0xcc, 0xcc, 0xff, 0x00), + 0x20 => array(0x00, 0x00, 0x80, 0x00), + 0x21 => array(0xff, 0x00, 0xff, 0x00), + 0x22 => array(0xff, 0xff, 0x00, 0x00), + 0x23 => array(0x00, 0xff, 0xff, 0x00), + 0x24 => array(0x80, 0x00, 0x80, 0x00), + 0x25 => array(0x80, 0x00, 0x00, 0x00), + 0x26 => array(0x00, 0x80, 0x80, 0x00), + 0x27 => array(0x00, 0x00, 0xff, 0x00), + 0x28 => array(0x00, 0xcc, 0xff, 0x00), + 0x29 => array(0xcc, 0xff, 0xff, 0x00), + 0x2A => array(0xcc, 0xff, 0xcc, 0x00), + 0x2B => array(0xff, 0xff, 0x99, 0x00), + 0x2C => array(0x99, 0xcc, 0xff, 0x00), + 0x2D => array(0xff, 0x99, 0xcc, 0x00), + 0x2E => array(0xcc, 0x99, 0xff, 0x00), + 0x2F => array(0xff, 0xcc, 0x99, 0x00), + 0x30 => array(0x33, 0x66, 0xff, 0x00), + 0x31 => array(0x33, 0xcc, 0xcc, 0x00), + 0x32 => array(0x99, 0xcc, 0x00, 0x00), + 0x33 => array(0xff, 0xcc, 0x00, 0x00), + 0x34 => array(0xff, 0x99, 0x00, 0x00), + 0x35 => array(0xff, 0x66, 0x00, 0x00), + 0x36 => array(0x66, 0x66, 0x99, 0x00), + 0x37 => array(0x96, 0x96, 0x96, 0x00), + 0x38 => array(0x00, 0x33, 0x66, 0x00), + 0x39 => array(0x33, 0x99, 0x66, 0x00), + 0x3A => array(0x00, 0x33, 0x00, 0x00), + 0x3B => array(0x33, 0x33, 0x00, 0x00), + 0x3C => array(0x99, 0x33, 0x00, 0x00), + 0x3D => array(0x99, 0x33, 0x66, 0x00), + 0x3E => array(0x33, 0x33, 0x99, 0x00), + 0x3F => array(0x33, 0x33, 0x33, 0x00), + ); + } + + /** + * Assemble worksheets into a workbook and send the BIFF data to an OLE + * storage. + * + * @param array $pWorksheetSizes The sizes in bytes of the binary worksheet streams + * @return string Binary data for workbook stream + */ + public function writeWorkbook($pWorksheetSizes = null) + { + $this->_worksheetSizes = $pWorksheetSizes; + + // Calculate the number of selected worksheet tabs and call the finalization + // methods for each worksheet + $total_worksheets = $this->_phpExcel->getSheetCount(); + + // Add part 1 of the Workbook globals, what goes before the SHEET records + $this->_storeBof(0x0005); + $this->_writeCodepage(); + $this->_writeWindow1(); + + $this->_writeDatemode(); + $this->_writeAllFonts(); + $this->_writeAllNumFormats(); + $this->_writeAllXfs(); + $this->_writeAllStyles(); + $this->_writePalette(); + + // Prepare part 3 of the workbook global stream, what goes after the SHEET records + $part3 = ''; + if ($this->_country_code != -1) { + $part3 .= $this->_writeCountry(); + } + $part3 .= $this->_writeRecalcId(); + + $part3 .= $this->_writeSupbookInternal(); + /* TODO: store external SUPBOOK records and XCT and CRN records + in case of external references for BIFF8 */ + $part3 .= $this->_writeExternsheetBiff8(); + $part3 .= $this->_writeAllDefinedNamesBiff8(); + $part3 .= $this->_writeMsoDrawingGroup(); + $part3 .= $this->_writeSharedStringsTable(); + + $part3 .= $this->writeEof(); + + // Add part 2 of the Workbook globals, the SHEET records + $this->_calcSheetOffsets(); + for ($i = 0; $i < $total_worksheets; ++$i) { + $this->_writeBoundsheet($this->_phpExcel->getSheet($i), $this->_worksheetOffsets[$i]); + } + + // Add part 3 of the Workbook globals + $this->_data .= $part3; + + return $this->_data; + } + + /** + * Calculate offsets for Worksheet BOF records. + * + * @access private + */ + function _calcSheetOffsets() + { + $boundsheet_length = 10; // fixed length for a BOUNDSHEET record + + // size of Workbook globals part 1 + 3 + $offset = $this->_datasize; + + // add size of Workbook globals part 2, the length of the SHEET records + $total_worksheets = count($this->_phpExcel->getAllSheets()); + foreach ($this->_phpExcel->getWorksheetIterator() as $sheet) { + $offset += $boundsheet_length + strlen(PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($sheet->getTitle())); + } + + // add the sizes of each of the Sheet substreams, respectively + for ($i = 0; $i < $total_worksheets; ++$i) { + $this->_worksheetOffsets[$i] = $offset; + $offset += $this->_worksheetSizes[$i]; + } + $this->_biffsize = $offset; + } + + /** + * Store the Excel FONT records. + */ + private function _writeAllFonts() + { + foreach ($this->_fontWriters as $fontWriter) { + $this->_append($fontWriter->writeFont()); + } + } + + /** + * Store user defined numerical formats i.e. FORMAT records + */ + private function _writeAllNumFormats() + { + foreach ($this->_numberFormats as $numberFormatIndex => $numberFormat) { + $this->_writeNumFormat($numberFormat->getFormatCode(), $numberFormatIndex); + } + } + + /** + * Write all XF records. + */ + private function _writeAllXfs() + { + foreach ($this->_xfWriters as $xfWriter) { + $this->_append($xfWriter->writeXf()); + } + } + + /** + * Write all STYLE records. + */ + private function _writeAllStyles() + { + $this->_writeStyle(); + } + + /** + * Write the EXTERNCOUNT and EXTERNSHEET records. These are used as indexes for + * the NAME records. + */ + private function _writeExterns() + { + $countSheets = $this->_phpExcel->getSheetCount(); + // Create EXTERNCOUNT with number of worksheets + $this->_writeExterncount($countSheets); + + // Create EXTERNSHEET for each worksheet + for ($i = 0; $i < $countSheets; ++$i) { + $this->_writeExternsheet($this->_phpExcel->getSheet($i)->getTitle()); + } + } + + /** + * Write the NAME record to define the print area and the repeat rows and cols. + */ + private function _writeNames() + { + // total number of sheets + $total_worksheets = $this->_phpExcel->getSheetCount(); + + // Create the print area NAME records + for ($i = 0; $i < $total_worksheets; ++$i) { + $sheetSetup = $this->_phpExcel->getSheet($i)->getPageSetup(); + // Write a Name record if the print area has been defined + if ($sheetSetup->isPrintAreaSet()) { + // Print area + $printArea = PHPExcel_Cell::splitRange($sheetSetup->getPrintArea()); + $printArea = $printArea[0]; + $printArea[0] = PHPExcel_Cell::coordinateFromString($printArea[0]); + $printArea[1] = PHPExcel_Cell::coordinateFromString($printArea[1]); + + $print_rowmin = $printArea[0][1] - 1; + $print_rowmax = $printArea[1][1] - 1; + $print_colmin = PHPExcel_Cell::columnIndexFromString($printArea[0][0]) - 1; + $print_colmax = PHPExcel_Cell::columnIndexFromString($printArea[1][0]) - 1; + + $this->_writeNameShort( + $i, // sheet index + 0x06, // NAME type + $print_rowmin, + $print_rowmax, + $print_colmin, + $print_colmax + ); + } + } + + // Create the print title NAME records + for ($i = 0; $i < $total_worksheets; ++$i) { + $sheetSetup = $this->_phpExcel->getSheet($i)->getPageSetup(); + + // simultaneous repeatColumns repeatRows + if ($sheetSetup->isColumnsToRepeatAtLeftSet() && $sheetSetup->isRowsToRepeatAtTopSet()) { + $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); + $colmin = PHPExcel_Cell::columnIndexFromString($repeat[0]) - 1; + $colmax = PHPExcel_Cell::columnIndexFromString($repeat[1]) - 1; + + $repeat = $sheetSetup->getRowsToRepeatAtTop(); + $rowmin = $repeat[0] - 1; + $rowmax = $repeat[1] - 1; + + $this->_writeNameLong( + $i, // sheet index + 0x07, // NAME type + $rowmin, + $rowmax, + $colmin, + $colmax + ); + + // (exclusive) either repeatColumns or repeatRows + } else if ($sheetSetup->isColumnsToRepeatAtLeftSet() || $sheetSetup->isRowsToRepeatAtTopSet()) { + + // Columns to repeat + if ($sheetSetup->isColumnsToRepeatAtLeftSet()) { + $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); + $colmin = PHPExcel_Cell::columnIndexFromString($repeat[0]) - 1; + $colmax = PHPExcel_Cell::columnIndexFromString($repeat[1]) - 1; + } else { + $colmin = 0; + $colmax = 255; + } + + // Rows to repeat + if ($sheetSetup->isRowsToRepeatAtTopSet()) { + $repeat = $sheetSetup->getRowsToRepeatAtTop(); + $rowmin = $repeat[0] - 1; + $rowmax = $repeat[1] - 1; + } else { + $rowmin = 0; + $rowmax = 16383; + } + + $this->_writeNameShort( + $i, // sheet index + 0x07, // NAME type + $rowmin, + $rowmax, + $colmin, + $colmax + ); + } + } + } + + /** + * Writes all the DEFINEDNAME records (BIFF8). + * So far this is only used for repeating rows/columns (print titles) and print areas + */ + private function _writeAllDefinedNamesBiff8() + { + $chunk = ''; + + // Named ranges + if (count($this->_phpExcel->getNamedRanges()) > 0) { + // Loop named ranges + $namedRanges = $this->_phpExcel->getNamedRanges(); + foreach ($namedRanges as $namedRange) { + + // Create absolute coordinate + $range = PHPExcel_Cell::splitRange($namedRange->getRange()); + for ($i = 0; $i < count($range); $i++) { + $range[$i][0] = '\'' . str_replace("'", "''", $namedRange->getWorksheet()->getTitle()) . '\'!' . PHPExcel_Cell::absoluteCoordinate($range[$i][0]); + if (isset($range[$i][1])) { + $range[$i][1] = PHPExcel_Cell::absoluteCoordinate($range[$i][1]); + } + } + $range = PHPExcel_Cell::buildRange($range); // e.g. Sheet1!$A$1:$B$2 + + // parse formula + try { + $error = $this->_parser->parse($range); + $formulaData = $this->_parser->toReversePolish(); + + // make sure tRef3d is of type tRef3dR (0x3A) + if (isset($formulaData{0}) and ($formulaData{0} == "\x7A" or $formulaData{0} == "\x5A")) { + $formulaData = "\x3A" . substr($formulaData, 1); + } + + if ($namedRange->getLocalOnly()) { + // local scope + $scope = $this->_phpExcel->getIndex($namedRange->getScope()) + 1; + } else { + // global scope + $scope = 0; + } + $chunk .= $this->writeData($this->_writeDefinedNameBiff8($namedRange->getName(), $formulaData, $scope, false)); + + } catch(Exception $e) { + // do nothing + } + } + } + + // total number of sheets + $total_worksheets = $this->_phpExcel->getSheetCount(); + + // write the print titles (repeating rows, columns), if any + for ($i = 0; $i < $total_worksheets; ++$i) { + $sheetSetup = $this->_phpExcel->getSheet($i)->getPageSetup(); + // simultaneous repeatColumns repeatRows + if ($sheetSetup->isColumnsToRepeatAtLeftSet() && $sheetSetup->isRowsToRepeatAtTopSet()) { + $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); + $colmin = PHPExcel_Cell::columnIndexFromString($repeat[0]) - 1; + $colmax = PHPExcel_Cell::columnIndexFromString($repeat[1]) - 1; + + $repeat = $sheetSetup->getRowsToRepeatAtTop(); + $rowmin = $repeat[0] - 1; + $rowmax = $repeat[1] - 1; + + // construct formula data manually + $formulaData = pack('Cv', 0x29, 0x17); // tMemFunc + $formulaData .= pack('Cvvvvv', 0x3B, $i, 0, 65535, $colmin, $colmax); // tArea3d + $formulaData .= pack('Cvvvvv', 0x3B, $i, $rowmin, $rowmax, 0, 255); // tArea3d + $formulaData .= pack('C', 0x10); // tList + + // store the DEFINEDNAME record + $chunk .= $this->writeData($this->_writeDefinedNameBiff8(pack('C', 0x07), $formulaData, $i + 1, true)); + + // (exclusive) either repeatColumns or repeatRows + } else if ($sheetSetup->isColumnsToRepeatAtLeftSet() || $sheetSetup->isRowsToRepeatAtTopSet()) { + + // Columns to repeat + if ($sheetSetup->isColumnsToRepeatAtLeftSet()) { + $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); + $colmin = PHPExcel_Cell::columnIndexFromString($repeat[0]) - 1; + $colmax = PHPExcel_Cell::columnIndexFromString($repeat[1]) - 1; + } else { + $colmin = 0; + $colmax = 255; + } + // Rows to repeat + if ($sheetSetup->isRowsToRepeatAtTopSet()) { + $repeat = $sheetSetup->getRowsToRepeatAtTop(); + $rowmin = $repeat[0] - 1; + $rowmax = $repeat[1] - 1; + } else { + $rowmin = 0; + $rowmax = 65535; + } + + // construct formula data manually because parser does not recognize absolute 3d cell references + $formulaData = pack('Cvvvvv', 0x3B, $i, $rowmin, $rowmax, $colmin, $colmax); + + // store the DEFINEDNAME record + $chunk .= $this->writeData($this->_writeDefinedNameBiff8(pack('C', 0x07), $formulaData, $i + 1, true)); + } + } + + // write the print areas, if any + for ($i = 0; $i < $total_worksheets; ++$i) { + $sheetSetup = $this->_phpExcel->getSheet($i)->getPageSetup(); + if ($sheetSetup->isPrintAreaSet()) { + // Print area, e.g. A3:J6,H1:X20 + $printArea = PHPExcel_Cell::splitRange($sheetSetup->getPrintArea()); + $countPrintArea = count($printArea); + + $formulaData = ''; + for ($j = 0; $j < $countPrintArea; ++$j) { + $printAreaRect = $printArea[$j]; // e.g. A3:J6 + $printAreaRect[0] = PHPExcel_Cell::coordinateFromString($printAreaRect[0]); + $printAreaRect[1] = PHPExcel_Cell::coordinateFromString($printAreaRect[1]); + + $print_rowmin = $printAreaRect[0][1] - 1; + $print_rowmax = $printAreaRect[1][1] - 1; + $print_colmin = PHPExcel_Cell::columnIndexFromString($printAreaRect[0][0]) - 1; + $print_colmax = PHPExcel_Cell::columnIndexFromString($printAreaRect[1][0]) - 1; + + // construct formula data manually because parser does not recognize absolute 3d cell references + $formulaData .= pack('Cvvvvv', 0x3B, $i, $print_rowmin, $print_rowmax, $print_colmin, $print_colmax); + + if ($j > 0) { + $formulaData .= pack('C', 0x10); // list operator token ',' + } + } + + // store the DEFINEDNAME record + $chunk .= $this->writeData($this->_writeDefinedNameBiff8(pack('C', 0x06), $formulaData, $i + 1, true)); + } + } + + // write autofilters, if any + for ($i = 0; $i < $total_worksheets; ++$i) { + $sheetAutoFilter = $this->_phpExcel->getSheet($i)->getAutoFilter(); + $autoFilterRange = $sheetAutoFilter->getRange(); + if(!empty($autoFilterRange)) { + $rangeBounds = PHPExcel_Cell::rangeBoundaries($autoFilterRange); + + //Autofilter built in name + $name = pack('C', 0x0D); + + $chunk .= $this->writeData($this->_writeShortNameBiff8($name, $i + 1, $rangeBounds, true)); + } + } + + return $chunk; + } + + /** + * Write a DEFINEDNAME record for BIFF8 using explicit binary formula data + * + * @param string $name The name in UTF-8 + * @param string $formulaData The binary formula data + * @param string $sheetIndex 1-based sheet index the defined name applies to. 0 = global + * @param boolean $isBuiltIn Built-in name? + * @return string Complete binary record data + */ + private function _writeDefinedNameBiff8($name, $formulaData, $sheetIndex = 0, $isBuiltIn = false) + { + $record = 0x0018; + + // option flags + $options = $isBuiltIn ? 0x20 : 0x00; + + // length of the name, character count + $nlen = PHPExcel_Shared_String::CountCharacters($name); + + // name with stripped length field + $name = substr(PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($name), 2); + + // size of the formula (in bytes) + $sz = strlen($formulaData); + + // combine the parts + $data = pack('vCCvvvCCCC', $options, 0, $nlen, $sz, 0, $sheetIndex, 0, 0, 0, 0) + . $name . $formulaData; + $length = strlen($data); + + $header = pack('vv', $record, $length); + + return $header . $data; + } + + /** + * Write a short NAME record + * + * @param string $name + * @param string $sheetIndex 1-based sheet index the defined name applies to. 0 = global + * @param int[][] $range rangeboundaries + * @param bool $isHidden + * @return string Complete binary record data + * */ + private function _writeShortNameBiff8($name, $sheetIndex = 0, $rangeBounds, $isHidden = false){ + $record = 0x0018; + + // option flags + $options = ($isHidden ? 0x21 : 0x00); + + $extra = pack('Cvvvvv', + 0x3B, + $sheetIndex - 1, + $rangeBounds[0][1] - 1, + $rangeBounds[1][1] - 1, + $rangeBounds[0][0] - 1, + $rangeBounds[1][0] - 1); + + // size of the formula (in bytes) + $sz = strlen($extra); + + // combine the parts + $data = pack('vCCvvvCCCCC', $options, 0, 1, $sz, 0, $sheetIndex, 0, 0, 0, 0, 0) + . $name . $extra; + $length = strlen($data); + + $header = pack('vv', $record, $length); + + return $header . $data; + } + + /** + * Stores the CODEPAGE biff record. + */ + private function _writeCodepage() + { + $record = 0x0042; // Record identifier + $length = 0x0002; // Number of bytes to follow + $cv = $this->_codepage; // The code page + + $header = pack('vv', $record, $length); + $data = pack('v', $cv); + + $this->_append($header . $data); + } + + /** + * Write Excel BIFF WINDOW1 record. + */ + private function _writeWindow1() + { + $record = 0x003D; // Record identifier + $length = 0x0012; // Number of bytes to follow + + $xWn = 0x0000; // Horizontal position of window + $yWn = 0x0000; // Vertical position of window + $dxWn = 0x25BC; // Width of window + $dyWn = 0x1572; // Height of window + + $grbit = 0x0038; // Option flags + + // not supported by PHPExcel, so there is only one selected sheet, the active + $ctabsel = 1; // Number of workbook tabs selected + + $wTabRatio = 0x0258; // Tab to scrollbar ratio + + // not supported by PHPExcel, set to 0 + $itabFirst = 0; // 1st displayed worksheet + $itabCur = $this->_phpExcel->getActiveSheetIndex(); // Active worksheet + + $header = pack("vv", $record, $length); + $data = pack("vvvvvvvvv", $xWn, $yWn, $dxWn, $dyWn, + $grbit, + $itabCur, $itabFirst, + $ctabsel, $wTabRatio); + $this->_append($header . $data); + } + + /** + * Writes Excel BIFF BOUNDSHEET record. + * + * @param PHPExcel_Worksheet $sheet Worksheet name + * @param integer $offset Location of worksheet BOF + */ + private function _writeBoundsheet($sheet, $offset) + { + $sheetname = $sheet->getTitle(); + $record = 0x0085; // Record identifier + + // sheet state + switch ($sheet->getSheetState()) { + case PHPExcel_Worksheet::SHEETSTATE_VISIBLE: $ss = 0x00; break; + case PHPExcel_Worksheet::SHEETSTATE_HIDDEN: $ss = 0x01; break; + case PHPExcel_Worksheet::SHEETSTATE_VERYHIDDEN: $ss = 0x02; break; + default: $ss = 0x00; break; + } + + // sheet type + $st = 0x00; + + $grbit = 0x0000; // Visibility and sheet type + + $data = pack("VCC", $offset, $ss, $st); + $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($sheetname); + + $length = strlen($data); + $header = pack("vv", $record, $length); + $this->_append($header . $data); + } + + /** + * Write Internal SUPBOOK record + */ + private function _writeSupbookInternal() + { + $record = 0x01AE; // Record identifier + $length = 0x0004; // Bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("vv", $this->_phpExcel->getSheetCount(), 0x0401); + return $this->writeData($header . $data); + } + + /** + * Writes the Excel BIFF EXTERNSHEET record. These references are used by + * formulas. + * + */ + private function _writeExternsheetBiff8() + { + $total_references = count($this->_parser->_references); + $record = 0x0017; // Record identifier + $length = 2 + 6 * $total_references; // Number of bytes to follow + + $supbook_index = 0; // FIXME: only using internal SUPBOOK record + $header = pack("vv", $record, $length); + $data = pack('v', $total_references); + for ($i = 0; $i < $total_references; ++$i) { + $data .= $this->_parser->_references[$i]; + } + return $this->writeData($header . $data); + } + + /** + * Write Excel BIFF STYLE records. + */ + private function _writeStyle() + { + $record = 0x0293; // Record identifier + $length = 0x0004; // Bytes to follow + + $ixfe = 0x8000; // Index to cell style XF + $BuiltIn = 0x00; // Built-in style + $iLevel = 0xff; // Outline style level + + $header = pack("vv", $record, $length); + $data = pack("vCC", $ixfe, $BuiltIn, $iLevel); + $this->_append($header . $data); + } + + /** + * Writes Excel FORMAT record for non "built-in" numerical formats. + * + * @param string $format Custom format string + * @param integer $ifmt Format index code + */ + private function _writeNumFormat($format, $ifmt) + { + $record = 0x041E; // Record identifier + + $numberFormatString = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($format); + $length = 2 + strlen($numberFormatString); // Number of bytes to follow + + + $header = pack("vv", $record, $length); + $data = pack("v", $ifmt) . $numberFormatString; + $this->_append($header . $data); + } + + /** + * Write DATEMODE record to indicate the date system in use (1904 or 1900). + */ + private function _writeDatemode() + { + $record = 0x0022; // Record identifier + $length = 0x0002; // Bytes to follow + + $f1904 = (PHPExcel_Shared_Date::getExcelCalendar() == PHPExcel_Shared_Date::CALENDAR_MAC_1904) ? + 1 : 0; // Flag for 1904 date system + + $header = pack("vv", $record, $length); + $data = pack("v", $f1904); + $this->_append($header . $data); + } + + /** + * Write BIFF record EXTERNCOUNT to indicate the number of external sheet + * references in the workbook. + * + * Excel only stores references to external sheets that are used in NAME. + * The workbook NAME record is required to define the print area and the repeat + * rows and columns. + * + * A similar method is used in Worksheet.php for a slightly different purpose. + * + * @param integer $cxals Number of external references + */ + private function _writeExterncount($cxals) + { + $record = 0x0016; // Record identifier + $length = 0x0002; // Number of bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("v", $cxals); + $this->_append($header . $data); + } + + /** + * Writes the Excel BIFF EXTERNSHEET record. These references are used by + * formulas. NAME record is required to define the print area and the repeat + * rows and columns. + * + * A similar method is used in Worksheet.php for a slightly different purpose. + * + * @param string $sheetname Worksheet name + */ + private function _writeExternsheet($sheetname) + { + $record = 0x0017; // Record identifier + $length = 0x02 + strlen($sheetname); // Number of bytes to follow + + $cch = strlen($sheetname); // Length of sheet name + $rgch = 0x03; // Filename encoding + + $header = pack("vv", $record, $length); + $data = pack("CC", $cch, $rgch); + $this->_append($header . $data . $sheetname); + } + + /** + * Store the NAME record in the short format that is used for storing the print + * area, repeat rows only and repeat columns only. + * + * @param integer $index Sheet index + * @param integer $type Built-in name type + * @param integer $rowmin Start row + * @param integer $rowmax End row + * @param integer $colmin Start colum + * @param integer $colmax End column + */ + private function _writeNameShort($index, $type, $rowmin, $rowmax, $colmin, $colmax) + { + $record = 0x0018; // Record identifier + $length = 0x0024; // Number of bytes to follow + + $grbit = 0x0020; // Option flags + $chKey = 0x00; // Keyboard shortcut + $cch = 0x01; // Length of text name + $cce = 0x0015; // Length of text definition + $ixals = $index + 1; // Sheet index + $itab = $ixals; // Equal to ixals + $cchCustMenu = 0x00; // Length of cust menu text + $cchDescription = 0x00; // Length of description text + $cchHelptopic = 0x00; // Length of help topic text + $cchStatustext = 0x00; // Length of status bar text + $rgch = $type; // Built-in name type + + $unknown03 = 0x3b; + $unknown04 = 0xffff-$index; + $unknown05 = 0x0000; + $unknown06 = 0x0000; + $unknown07 = 0x1087; + $unknown08 = 0x8005; + + $header = pack("vv", $record, $length); + $data = pack("v", $grbit); + $data .= pack("C", $chKey); + $data .= pack("C", $cch); + $data .= pack("v", $cce); + $data .= pack("v", $ixals); + $data .= pack("v", $itab); + $data .= pack("C", $cchCustMenu); + $data .= pack("C", $cchDescription); + $data .= pack("C", $cchHelptopic); + $data .= pack("C", $cchStatustext); + $data .= pack("C", $rgch); + $data .= pack("C", $unknown03); + $data .= pack("v", $unknown04); + $data .= pack("v", $unknown05); + $data .= pack("v", $unknown06); + $data .= pack("v", $unknown07); + $data .= pack("v", $unknown08); + $data .= pack("v", $index); + $data .= pack("v", $index); + $data .= pack("v", $rowmin); + $data .= pack("v", $rowmax); + $data .= pack("C", $colmin); + $data .= pack("C", $colmax); + $this->_append($header . $data); + } + + /** + * Store the NAME record in the long format that is used for storing the repeat + * rows and columns when both are specified. This shares a lot of code with + * _writeNameShort() but we use a separate method to keep the code clean. + * Code abstraction for reuse can be carried too far, and I should know. ;-) + * + * @param integer $index Sheet index + * @param integer $type Built-in name type + * @param integer $rowmin Start row + * @param integer $rowmax End row + * @param integer $colmin Start colum + * @param integer $colmax End column + */ + private function _writeNameLong($index, $type, $rowmin, $rowmax, $colmin, $colmax) + { + $record = 0x0018; // Record identifier + $length = 0x003d; // Number of bytes to follow + $grbit = 0x0020; // Option flags + $chKey = 0x00; // Keyboard shortcut + $cch = 0x01; // Length of text name + $cce = 0x002e; // Length of text definition + $ixals = $index + 1; // Sheet index + $itab = $ixals; // Equal to ixals + $cchCustMenu = 0x00; // Length of cust menu text + $cchDescription = 0x00; // Length of description text + $cchHelptopic = 0x00; // Length of help topic text + $cchStatustext = 0x00; // Length of status bar text + $rgch = $type; // Built-in name type + + $unknown01 = 0x29; + $unknown02 = 0x002b; + $unknown03 = 0x3b; + $unknown04 = 0xffff-$index; + $unknown05 = 0x0000; + $unknown06 = 0x0000; + $unknown07 = 0x1087; + $unknown08 = 0x8008; + + $header = pack("vv", $record, $length); + $data = pack("v", $grbit); + $data .= pack("C", $chKey); + $data .= pack("C", $cch); + $data .= pack("v", $cce); + $data .= pack("v", $ixals); + $data .= pack("v", $itab); + $data .= pack("C", $cchCustMenu); + $data .= pack("C", $cchDescription); + $data .= pack("C", $cchHelptopic); + $data .= pack("C", $cchStatustext); + $data .= pack("C", $rgch); + $data .= pack("C", $unknown01); + $data .= pack("v", $unknown02); + // Column definition + $data .= pack("C", $unknown03); + $data .= pack("v", $unknown04); + $data .= pack("v", $unknown05); + $data .= pack("v", $unknown06); + $data .= pack("v", $unknown07); + $data .= pack("v", $unknown08); + $data .= pack("v", $index); + $data .= pack("v", $index); + $data .= pack("v", 0x0000); + $data .= pack("v", 0x3fff); + $data .= pack("C", $colmin); + $data .= pack("C", $colmax); + // Row definition + $data .= pack("C", $unknown03); + $data .= pack("v", $unknown04); + $data .= pack("v", $unknown05); + $data .= pack("v", $unknown06); + $data .= pack("v", $unknown07); + $data .= pack("v", $unknown08); + $data .= pack("v", $index); + $data .= pack("v", $index); + $data .= pack("v", $rowmin); + $data .= pack("v", $rowmax); + $data .= pack("C", 0x00); + $data .= pack("C", 0xff); + // End of data + $data .= pack("C", 0x10); + $this->_append($header . $data); + } + + /** + * Stores the COUNTRY record for localization + * + * @return string + */ + private function _writeCountry() + { + $record = 0x008C; // Record identifier + $length = 4; // Number of bytes to follow + + $header = pack('vv', $record, $length); + /* using the same country code always for simplicity */ + $data = pack('vv', $this->_country_code, $this->_country_code); + //$this->_append($header . $data); + return $this->writeData($header . $data); + } + + /** + * Write the RECALCID record + * + * @return string + */ + private function _writeRecalcId() + { + $record = 0x01C1; // Record identifier + $length = 8; // Number of bytes to follow + + $header = pack('vv', $record, $length); + + // by inspection of real Excel files, MS Office Excel 2007 writes this + $data = pack('VV', 0x000001C1, 0x00001E667); + + return $this->writeData($header . $data); + } + + /** + * Stores the PALETTE biff record. + */ + private function _writePalette() + { + $aref = $this->_palette; + + $record = 0x0092; // Record identifier + $length = 2 + 4 * count($aref); // Number of bytes to follow + $ccv = count($aref); // Number of RGB values to follow + $data = ''; // The RGB data + + // Pack the RGB data + foreach ($aref as $color) { + foreach ($color as $byte) { + $data .= pack("C",$byte); + } + } + + $header = pack("vvv", $record, $length, $ccv); + $this->_append($header . $data); + } + + /** + * Handling of the SST continue blocks is complicated by the need to include an + * additional continuation byte depending on whether the string is split between + * blocks or whether it starts at the beginning of the block. (There are also + * additional complications that will arise later when/if Rich Strings are + * supported). + * + * The Excel documentation says that the SST record should be followed by an + * EXTSST record. The EXTSST record is a hash table that is used to optimise + * access to SST. However, despite the documentation it doesn't seem to be + * required so we will ignore it. + * + * @return string Binary data + */ + private function _writeSharedStringsTable() + { + // maximum size of record data (excluding record header) + $continue_limit = 8224; + + // initialize array of record data blocks + $recordDatas = array(); + + // start SST record data block with total number of strings, total number of unique strings + $recordData = pack("VV", $this->_str_total, $this->_str_unique); + + // loop through all (unique) strings in shared strings table + foreach (array_keys($this->_str_table) as $string) { + + // here $string is a BIFF8 encoded string + + // length = character count + $headerinfo = unpack("vlength/Cencoding", $string); + + // currently, this is always 1 = uncompressed + $encoding = $headerinfo["encoding"]; + + // initialize finished writing current $string + $finished = false; + + while ($finished === false) { + + // normally, there will be only one cycle, but if string cannot immediately be written as is + // there will be need for more than one cylcle, if string longer than one record data block, there + // may be need for even more cycles + + if (strlen($recordData) + strlen($string) <= $continue_limit) { + // then we can write the string (or remainder of string) without any problems + $recordData .= $string; + + if (strlen($recordData) + strlen($string) == $continue_limit) { + // we close the record data block, and initialize a new one + $recordDatas[] = $recordData; + $recordData = ''; + } + + // we are finished writing this string + $finished = true; + } else { + // special treatment writing the string (or remainder of the string) + // If the string is very long it may need to be written in more than one CONTINUE record. + + // check how many bytes more there is room for in the current record + $space_remaining = $continue_limit - strlen($recordData); + + // minimum space needed + // uncompressed: 2 byte string length length field + 1 byte option flags + 2 byte character + // compressed: 2 byte string length length field + 1 byte option flags + 1 byte character + $min_space_needed = ($encoding == 1) ? 5 : 4; + + // We have two cases + // 1. space remaining is less than minimum space needed + // here we must waste the space remaining and move to next record data block + // 2. space remaining is greater than or equal to minimum space needed + // here we write as much as we can in the current block, then move to next record data block + + // 1. space remaining is less than minimum space needed + if ($space_remaining < $min_space_needed) { + // we close the block, store the block data + $recordDatas[] = $recordData; + + // and start new record data block where we start writing the string + $recordData = ''; + + // 2. space remaining is greater than or equal to minimum space needed + } else { + // initialize effective remaining space, for Unicode strings this may need to be reduced by 1, see below + $effective_space_remaining = $space_remaining; + + // for uncompressed strings, sometimes effective space remaining is reduced by 1 + if ( $encoding == 1 && (strlen($string) - $space_remaining) % 2 == 1 ) { + --$effective_space_remaining; + } + + // one block fininshed, store the block data + $recordData .= substr($string, 0, $effective_space_remaining); + + $string = substr($string, $effective_space_remaining); // for next cycle in while loop + $recordDatas[] = $recordData; + + // start new record data block with the repeated option flags + $recordData = pack('C', $encoding); + } + } + } + } + + // Store the last record data block unless it is empty + // if there was no need for any continue records, this will be the for SST record data block itself + if (strlen($recordData) > 0) { + $recordDatas[] = $recordData; + } + + // combine into one chunk with all the blocks SST, CONTINUE,... + $chunk = ''; + foreach ($recordDatas as $i => $recordData) { + // first block should have the SST record header, remaing should have CONTINUE header + $record = ($i == 0) ? 0x00FC : 0x003C; + + $header = pack("vv", $record, strlen($recordData)); + $data = $header . $recordData; + + $chunk .= $this->writeData($data); + } + + return $chunk; + } + + /** + * Writes the MSODRAWINGGROUP record if needed. Possibly split using CONTINUE records. + */ + private function _writeMsoDrawingGroup() + { + // write the Escher stream if necessary + if (isset($this->_escher)) { + $writer = new PHPExcel_Writer_Excel5_Escher($this->_escher); + $data = $writer->close(); + + $record = 0x00EB; + $length = strlen($data); + $header = pack("vv", $record, $length); + + return $this->writeData($header . $data); + + } else { + return ''; + } + } + + /** + * Get Escher object + * + * @return PHPExcel_Shared_Escher + */ + public function getEscher() + { + return $this->_escher; + } + + /** + * Set Escher object + * + * @param PHPExcel_Shared_Escher $pValue + */ + public function setEscher(PHPExcel_Shared_Escher $pValue = null) + { + $this->_escher = $pValue; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Worksheet.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Worksheet.php new file mode 100755 index 0000000..9aa5083 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Worksheet.php @@ -0,0 +1,2954 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +// Original file header of PEAR::Spreadsheet_Excel_Writer_Worksheet (used as the base for this class): +// ----------------------------------------------------------------------------------------- +// /* +// * Module written/ported by Xavier Noguer <xnoguer@rezebra.com> +// * +// * The majority of this is _NOT_ my code. I simply ported it from the +// * PERL Spreadsheet::WriteExcel module. +// * +// * The author of the Spreadsheet::WriteExcel module is John McNamara +// * <jmcnamara@cpan.org> +// * +// * I _DO_ maintain this code, and John McNamara has nothing to do with the +// * porting of this code to PHP. Any questions directly related to this +// * class library should be directed to me. +// * +// * License Information: +// * +// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets +// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com +// * +// * This library is free software; you can redistribute it and/or +// * modify it under the terms of the GNU Lesser General Public +// * License as published by the Free Software Foundation; either +// * version 2.1 of the License, or (at your option) any later version. +// * +// * This library is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * Lesser General Public License for more details. +// * +// * You should have received a copy of the GNU Lesser General Public +// * License along with this library; if not, write to the Free Software +// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// */ + + +/** + * PHPExcel_Writer_Excel5_Worksheet + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel5_Worksheet extends PHPExcel_Writer_Excel5_BIFFwriter +{ + /** + * Formula parser + * + * @var PHPExcel_Writer_Excel5_Parser + */ + private $_parser; + + /** + * Maximum number of characters for a string (LABEL record in BIFF5) + * @var integer + */ + public $_xls_strmax; + + /** + * Array containing format information for columns + * @var array + */ + public $_colinfo; + + /** + * Array containing the selected area for the worksheet + * @var array + */ + public $_selection; + + /** + * The active pane for the worksheet + * @var integer + */ + public $_active_pane; + + /** + * Whether to use outline. + * @var integer + */ + public $_outline_on; + + /** + * Auto outline styles. + * @var bool + */ + public $_outline_style; + + /** + * Whether to have outline summary below. + * @var bool + */ + public $_outline_below; + + /** + * Whether to have outline summary at the right. + * @var bool + */ + public $_outline_right; + + /** + * Reference to the total number of strings in the workbook + * @var integer + */ + public $_str_total; + + /** + * Reference to the number of unique strings in the workbook + * @var integer + */ + public $_str_unique; + + /** + * Reference to the array containing all the unique strings in the workbook + * @var array + */ + public $_str_table; + + /** + * Color cache + */ + private $_colors; + + /** + * Index of first used row (at least 0) + * @var int + */ + private $_firstRowIndex; + + /** + * Index of last used row. (no used rows means -1) + * @var int + */ + private $_lastRowIndex; + + /** + * Index of first used column (at least 0) + * @var int + */ + private $_firstColumnIndex; + + /** + * Index of last used column (no used columns means -1) + * @var int + */ + private $_lastColumnIndex; + + /** + * Sheet object + * @var PHPExcel_Worksheet + */ + public $_phpSheet; + + /** + * Count cell style Xfs + * + * @var int + */ + private $_countCellStyleXfs; + + /** + * Escher object corresponding to MSODRAWING + * + * @var PHPExcel_Shared_Escher + */ + private $_escher; + + /** + * Array of font hashes associated to FONT records index + * + * @var array + */ + public $_fntHashIndex; + + /** + * Constructor + * + * @param int &$str_total Total number of strings + * @param int &$str_unique Total number of unique strings + * @param array &$str_table String Table + * @param array &$colors Colour Table + * @param mixed $parser The formula parser created for the Workbook + * @param boolean $preCalculateFormulas Flag indicating whether formulas should be calculated or just written + * @param string $phpSheet The worksheet to write + * @param PHPExcel_Worksheet $phpSheet + */ + public function __construct(&$str_total, &$str_unique, &$str_table, &$colors, + $parser, $preCalculateFormulas, $phpSheet) + { + // It needs to call its parent's constructor explicitly + parent::__construct(); + + // change BIFFwriter limit for CONTINUE records +// $this->_limit = 8224; + + + $this->_preCalculateFormulas = $preCalculateFormulas; + $this->_str_total = &$str_total; + $this->_str_unique = &$str_unique; + $this->_str_table = &$str_table; + $this->_colors = &$colors; + $this->_parser = $parser; + + $this->_phpSheet = $phpSheet; + + //$this->ext_sheets = array(); + //$this->offset = 0; + $this->_xls_strmax = 255; + $this->_colinfo = array(); + $this->_selection = array(0,0,0,0); + $this->_active_pane = 3; + + $this->_print_headers = 0; + + $this->_outline_style = 0; + $this->_outline_below = 1; + $this->_outline_right = 1; + $this->_outline_on = 1; + + $this->_fntHashIndex = array(); + + // calculate values for DIMENSIONS record + $minR = 1; + $minC = 'A'; + + $maxR = $this->_phpSheet->getHighestRow(); + $maxC = $this->_phpSheet->getHighestColumn(); + + // Determine lowest and highest column and row +// $this->_firstRowIndex = ($minR > 65535) ? 65535 : $minR; + $this->_lastRowIndex = ($maxR > 65535) ? 65535 : $maxR ; + + $this->_firstColumnIndex = PHPExcel_Cell::columnIndexFromString($minC); + $this->_lastColumnIndex = PHPExcel_Cell::columnIndexFromString($maxC); + +// if ($this->_firstColumnIndex > 255) $this->_firstColumnIndex = 255; + if ($this->_lastColumnIndex > 255) $this->_lastColumnIndex = 255; + + $this->_countCellStyleXfs = count($phpSheet->getParent()->getCellStyleXfCollection()); + } + + /** + * Add data to the beginning of the workbook (note the reverse order) + * and to the end of the workbook. + * + * @access public + * @see PHPExcel_Writer_Excel5_Workbook::storeWorkbook() + */ + function close() + { + $_phpSheet = $this->_phpSheet; + + $num_sheets = $_phpSheet->getParent()->getSheetCount(); + + // Write BOF record + $this->_storeBof(0x0010); + + // Write PRINTHEADERS + $this->_writePrintHeaders(); + + // Write PRINTGRIDLINES + $this->_writePrintGridlines(); + + // Write GRIDSET + $this->_writeGridset(); + + // Calculate column widths + $_phpSheet->calculateColumnWidths(); + + // Column dimensions + if (($defaultWidth = $_phpSheet->getDefaultColumnDimension()->getWidth()) < 0) { + $defaultWidth = PHPExcel_Shared_Font::getDefaultColumnWidthByFont($_phpSheet->getParent()->getDefaultStyle()->getFont()); + } + + $columnDimensions = $_phpSheet->getColumnDimensions(); + $maxCol = $this->_lastColumnIndex -1; + for ($i = 0; $i <= $maxCol; ++$i) { + $hidden = 0; + $level = 0; + $xfIndex = 15; // there are 15 cell style Xfs + + $width = $defaultWidth; + + $columnLetter = PHPExcel_Cell::stringFromColumnIndex($i); + if (isset($columnDimensions[$columnLetter])) { + $columnDimension = $columnDimensions[$columnLetter]; + if ($columnDimension->getWidth() >= 0) { + $width = $columnDimension->getWidth(); + } + $hidden = $columnDimension->getVisible() ? 0 : 1; + $level = $columnDimension->getOutlineLevel(); + $xfIndex = $columnDimension->getXfIndex() + 15; // there are 15 cell style Xfs + } + + // Components of _colinfo: + // $firstcol first column on the range + // $lastcol last column on the range + // $width width to set + // $xfIndex The optional cell style Xf index to apply to the columns + // $hidden The optional hidden atribute + // $level The optional outline level + $this->_colinfo[] = array($i, $i, $width, $xfIndex, $hidden, $level); + } + + // Write GUTS + $this->_writeGuts(); + + // Write DEFAULTROWHEIGHT + $this->_writeDefaultRowHeight(); + + // Write WSBOOL + $this->_writeWsbool(); + + // Write horizontal and vertical page breaks + $this->_writeBreaks(); + + // Write page header + $this->_writeHeader(); + + // Write page footer + $this->_writeFooter(); + + // Write page horizontal centering + $this->_writeHcenter(); + + // Write page vertical centering + $this->_writeVcenter(); + + // Write left margin + $this->_writeMarginLeft(); + + // Write right margin + $this->_writeMarginRight(); + + // Write top margin + $this->_writeMarginTop(); + + // Write bottom margin + $this->_writeMarginBottom(); + + // Write page setup + $this->_writeSetup(); + + // Write sheet protection + $this->_writeProtect(); + + // Write SCENPROTECT + $this->_writeScenProtect(); + + // Write OBJECTPROTECT + $this->_writeObjectProtect(); + + // Write sheet password + $this->_writePassword(); + + // Write DEFCOLWIDTH record + $this->_writeDefcol(); + + // Write the COLINFO records if they exist + if (!empty($this->_colinfo)) { + $colcount = count($this->_colinfo); + for ($i = 0; $i < $colcount; ++$i) { + $this->_writeColinfo($this->_colinfo[$i]); + } + } + $autoFilterRange = $_phpSheet->getAutoFilter()->getRange(); + if (!empty($autoFilterRange)) { + // Write AUTOFILTERINFO + $this->_writeAutoFilterInfo(); + } + + // Write sheet dimensions + $this->_writeDimensions(); + + // Row dimensions + foreach ($_phpSheet->getRowDimensions() as $rowDimension) { + $xfIndex = $rowDimension->getXfIndex() + 15; // there are 15 cellXfs + $this->_writeRow( $rowDimension->getRowIndex() - 1, $rowDimension->getRowHeight(), $xfIndex, ($rowDimension->getVisible() ? '0' : '1'), $rowDimension->getOutlineLevel() ); + } + + // Write Cells + foreach ($_phpSheet->getCellCollection() as $cellID) { + $cell = $_phpSheet->getCell($cellID); + $row = $cell->getRow() - 1; + $column = PHPExcel_Cell::columnIndexFromString($cell->getColumn()) - 1; + + // Don't break Excel! +// if ($row + 1 > 65536 or $column + 1 > 256) { + if ($row > 65535 || $column > 255) { + break; + } + + // Write cell value + $xfIndex = $cell->getXfIndex() + 15; // there are 15 cell style Xfs + + $cVal = $cell->getValue(); + if ($cVal instanceof PHPExcel_RichText) { + // $this->_writeString($row, $column, $cVal->getPlainText(), $xfIndex); + $arrcRun = array(); + $str_len = strlen($cVal->getPlainText()); + $str_pos = 0; + $elements = $cVal->getRichTextElements(); + foreach ($elements as $element) { + // FONT Index + if ($element instanceof PHPExcel_RichText_Run) { + $str_fontidx = $this->_fntHashIndex[$element->getFont()->getHashCode()]; + } + else { + $str_fontidx = 0; + } + $arrcRun[] = array('strlen' => $str_pos, 'fontidx' => $str_fontidx); + // Position FROM + $str_pos += strlen($element->getText()); + } + $this->_writeRichTextString($row, $column, $cVal->getPlainText(), $xfIndex, $arrcRun); + } else { + switch ($cell->getDatatype()) { + case PHPExcel_Cell_DataType::TYPE_STRING: + case PHPExcel_Cell_DataType::TYPE_NULL: + if ($cVal === '' || $cVal === null) { + $this->_writeBlank($row, $column, $xfIndex); + } else { + $this->_writeString($row, $column, $cVal, $xfIndex); + } + break; + + case PHPExcel_Cell_DataType::TYPE_NUMERIC: + $this->_writeNumber($row, $column, $cVal, $xfIndex); + break; + + case PHPExcel_Cell_DataType::TYPE_FORMULA: + $calculatedValue = $this->_preCalculateFormulas ? + $cell->getCalculatedValue() : null; + $this->_writeFormula($row, $column, $cVal, $xfIndex, $calculatedValue); + break; + + case PHPExcel_Cell_DataType::TYPE_BOOL: + $this->_writeBoolErr($row, $column, $cVal, 0, $xfIndex); + break; + + case PHPExcel_Cell_DataType::TYPE_ERROR: + $this->_writeBoolErr($row, $column, self::_mapErrorCode($cVal), 1, $xfIndex); + break; + + } + } + } + + // Append + $this->_writeMsoDrawing(); + + $this->_writeWindow2(); + $this->_writeZoom(); + if ($_phpSheet->getFreezePane()) { + $this->_writePanes(); + } + $this->_writeSelection(); + $this->_writeMergedCells(); + + // Hyperlinks + foreach ($_phpSheet->getHyperLinkCollection() as $coordinate => $hyperlink) { + list($column, $row) = PHPExcel_Cell::coordinateFromString($coordinate); + + $url = $hyperlink->getUrl(); + + if ( strpos($url, 'sheet://') !== false ) { + // internal to current workbook + $url = str_replace('sheet://', 'internal:', $url); + + } else if ( preg_match('/^(http:|https:|ftp:|mailto:)/', $url) ) { + // URL + // $url = $url; + + } else { + // external (local file) + $url = 'external:' . $url; + } + + $this->_writeUrl($row - 1, PHPExcel_Cell::columnIndexFromString($column) - 1, $url); + } + + $this->_writeDataValidity(); + $this->_writeSheetLayout(); + $this->_writeSheetProtection(); + $this->_writeRangeProtection(); + + $this->_storeEof(); + } + + /** + * Write a cell range address in BIFF8 + * always fixed range + * See section 2.5.14 in OpenOffice.org's Documentation of the Microsoft Excel File Format + * + * @param string $range E.g. 'A1' or 'A1:B6' + * @return string Binary data + */ + private function _writeBIFF8CellRangeAddressFixed($range = 'A1') + { + $explodes = explode(':', $range); + + // extract first cell, e.g. 'A1' + $firstCell = $explodes[0]; + + // extract last cell, e.g. 'B6' + if (count($explodes) == 1) { + $lastCell = $firstCell; + } else { + $lastCell = $explodes[1]; + } + + $firstCellCoordinates = PHPExcel_Cell::coordinateFromString($firstCell); // e.g. array(0, 1) + $lastCellCoordinates = PHPExcel_Cell::coordinateFromString($lastCell); // e.g. array(1, 6) + + return(pack('vvvv', + $firstCellCoordinates[1] - 1, + $lastCellCoordinates[1] - 1, + PHPExcel_Cell::columnIndexFromString($firstCellCoordinates[0]) - 1, + PHPExcel_Cell::columnIndexFromString($lastCellCoordinates[0]) - 1 + )); + } + + /** + * Retrieves data from memory in one chunk, or from disk in $buffer + * sized chunks. + * + * @return string The data + */ + function getData() + { + $buffer = 4096; + + // Return data stored in memory + if (isset($this->_data)) { + $tmp = $this->_data; + unset($this->_data); + return $tmp; + } + // No data to return + return false; + } + + /** + * Set the option to print the row and column headers on the printed page. + * + * @access public + * @param integer $print Whether to print the headers or not. Defaults to 1 (print). + */ + function printRowColHeaders($print = 1) + { + $this->_print_headers = $print; + } + + /** + * This method sets the properties for outlining and grouping. The defaults + * correspond to Excel's defaults. + * + * @param bool $visible + * @param bool $symbols_below + * @param bool $symbols_right + * @param bool $auto_style + */ + function setOutline($visible = true, $symbols_below = true, $symbols_right = true, $auto_style = false) + { + $this->_outline_on = $visible; + $this->_outline_below = $symbols_below; + $this->_outline_right = $symbols_right; + $this->_outline_style = $auto_style; + + // Ensure this is a boolean vale for Window2 + if ($this->_outline_on) { + $this->_outline_on = 1; + } + } + + /** + * Write a double to the specified row and column (zero indexed). + * An integer can be written as a double. Excel will display an + * integer. $format is optional. + * + * Returns 0 : normal termination + * -2 : row or column out of range + * + * @param integer $row Zero indexed row + * @param integer $col Zero indexed column + * @param float $num The number to write + * @param mixed $xfIndex The optional XF format + * @return integer + */ + private function _writeNumber($row, $col, $num, $xfIndex) + { + $record = 0x0203; // Record identifier + $length = 0x000E; // Number of bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("vvv", $row, $col, $xfIndex); + $xl_double = pack("d", $num); + if (self::getByteOrder()) { // if it's Big Endian + $xl_double = strrev($xl_double); + } + + $this->_append($header.$data.$xl_double); + return(0); + } + + /** + * Write a LABELSST record or a LABEL record. Which one depends on BIFF version + * + * @param int $row Row index (0-based) + * @param int $col Column index (0-based) + * @param string $str The string + * @param int $xfIndex Index to XF record + */ + private function _writeString($row, $col, $str, $xfIndex) + { + $this->_writeLabelSst($row, $col, $str, $xfIndex); + } + /** + * Write a LABELSST record or a LABEL record. Which one depends on BIFF version + * It differs from _writeString by the writing of rich text strings. + * @param int $row Row index (0-based) + * @param int $col Column index (0-based) + * @param string $str The string + * @param mixed $xfIndex The XF format index for the cell + * @param array $arrcRun Index to Font record and characters beginning + */ + private function _writeRichTextString($row, $col, $str, $xfIndex, $arrcRun){ + $record = 0x00FD; // Record identifier + $length = 0x000A; // Bytes to follow + + $str = PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($str, $arrcRun); + + /* check if string is already present */ + if (!isset($this->_str_table[$str])) { + $this->_str_table[$str] = $this->_str_unique++; + } + $this->_str_total++; + + $header = pack('vv', $record, $length); + $data = pack('vvvV', $row, $col, $xfIndex, $this->_str_table[$str]); + $this->_append($header.$data); + } + + /** + * Write a string to the specified row and column (zero indexed). + * NOTE: there is an Excel 5 defined limit of 255 characters. + * $format is optional. + * Returns 0 : normal termination + * -2 : row or column out of range + * -3 : long string truncated to 255 chars + * + * @access public + * @param integer $row Zero indexed row + * @param integer $col Zero indexed column + * @param string $str The string to write + * @param mixed $xfIndex The XF format index for the cell + * @return integer + */ + private function _writeLabel($row, $col, $str, $xfIndex) + { + $strlen = strlen($str); + $record = 0x0204; // Record identifier + $length = 0x0008 + $strlen; // Bytes to follow + + $str_error = 0; + + if ($strlen > $this->_xls_strmax) { // LABEL must be < 255 chars + $str = substr($str, 0, $this->_xls_strmax); + $length = 0x0008 + $this->_xls_strmax; + $strlen = $this->_xls_strmax; + $str_error = -3; + } + + $header = pack("vv", $record, $length); + $data = pack("vvvv", $row, $col, $xfIndex, $strlen); + $this->_append($header . $data . $str); + return($str_error); + } + + /** + * Write a string to the specified row and column (zero indexed). + * This is the BIFF8 version (no 255 chars limit). + * $format is optional. + * Returns 0 : normal termination + * -2 : row or column out of range + * -3 : long string truncated to 255 chars + * + * @access public + * @param integer $row Zero indexed row + * @param integer $col Zero indexed column + * @param string $str The string to write + * @param mixed $xfIndex The XF format index for the cell + * @return integer + */ + private function _writeLabelSst($row, $col, $str, $xfIndex) + { + $record = 0x00FD; // Record identifier + $length = 0x000A; // Bytes to follow + + $str = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($str); + + /* check if string is already present */ + if (!isset($this->_str_table[$str])) { + $this->_str_table[$str] = $this->_str_unique++; + } + $this->_str_total++; + + $header = pack('vv', $record, $length); + $data = pack('vvvV', $row, $col, $xfIndex, $this->_str_table[$str]); + $this->_append($header.$data); + } + + /** + * Writes a note associated with the cell given by the row and column. + * NOTE records don't have a length limit. + * + * @param integer $row Zero indexed row + * @param integer $col Zero indexed column + * @param string $note The note to write + */ + private function _writeNote($row, $col, $note) + { + $note_length = strlen($note); + $record = 0x001C; // Record identifier + $max_length = 2048; // Maximun length for a NOTE record + + // Length for this record is no more than 2048 + 6 + $length = 0x0006 + min($note_length, 2048); + $header = pack("vv", $record, $length); + $data = pack("vvv", $row, $col, $note_length); + $this->_append($header . $data . substr($note, 0, 2048)); + + for ($i = $max_length; $i < $note_length; $i += $max_length) { + $chunk = substr($note, $i, $max_length); + $length = 0x0006 + strlen($chunk); + $header = pack("vv", $record, $length); + $data = pack("vvv", -1, 0, strlen($chunk)); + $this->_append($header.$data.$chunk); + } + return(0); + } + + /** + * Write a blank cell to the specified row and column (zero indexed). + * A blank cell is used to specify formatting without adding a string + * or a number. + * + * A blank cell without a format serves no purpose. Therefore, we don't write + * a BLANK record unless a format is specified. + * + * Returns 0 : normal termination (including no format) + * -1 : insufficient number of arguments + * -2 : row or column out of range + * + * @param integer $row Zero indexed row + * @param integer $col Zero indexed column + * @param mixed $xfIndex The XF format index + */ + function _writeBlank($row, $col, $xfIndex) + { + $record = 0x0201; // Record identifier + $length = 0x0006; // Number of bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("vvv", $row, $col, $xfIndex); + $this->_append($header . $data); + return 0; + } + + /** + * Write a boolean or an error type to the specified row and column (zero indexed) + * + * @param int $row Row index (0-based) + * @param int $col Column index (0-based) + * @param int $value + * @param boolean $isError Error or Boolean? + * @param int $xfIndex + */ + private function _writeBoolErr($row, $col, $value, $isError, $xfIndex) + { + $record = 0x0205; + $length = 8; + + $header = pack("vv", $record, $length); + $data = pack("vvvCC", $row, $col, $xfIndex, $value, $isError); + $this->_append($header . $data); + return 0; + } + + /** + * Write a formula to the specified row and column (zero indexed). + * The textual representation of the formula is passed to the parser in + * Parser.php which returns a packed binary string. + * + * Returns 0 : normal termination + * -1 : formula errors (bad formula) + * -2 : row or column out of range + * + * @param integer $row Zero indexed row + * @param integer $col Zero indexed column + * @param string $formula The formula text string + * @param mixed $xfIndex The XF format index + * @param mixed $calculatedValue Calculated value + * @return integer + */ + private function _writeFormula($row, $col, $formula, $xfIndex, $calculatedValue) + { + $record = 0x0006; // Record identifier + + // Initialize possible additional value for STRING record that should be written after the FORMULA record? + $stringValue = null; + + // calculated value + if (isset($calculatedValue)) { + // Since we can't yet get the data type of the calculated value, + // we use best effort to determine data type + if (is_bool($calculatedValue)) { + // Boolean value + $num = pack('CCCvCv', 0x01, 0x00, (int)$calculatedValue, 0x00, 0x00, 0xFFFF); + } elseif (is_int($calculatedValue) || is_float($calculatedValue)) { + // Numeric value + $num = pack('d', $calculatedValue); + } elseif (is_string($calculatedValue)) { + if (array_key_exists($calculatedValue, PHPExcel_Cell_DataType::getErrorCodes())) { + // Error value + $num = pack('CCCvCv', 0x02, 0x00, self::_mapErrorCode($calculatedValue), 0x00, 0x00, 0xFFFF); + } elseif ($calculatedValue === '') { + // Empty string (and BIFF8) + $num = pack('CCCvCv', 0x03, 0x00, 0x00, 0x00, 0x00, 0xFFFF); + } else { + // Non-empty string value (or empty string BIFF5) + $stringValue = $calculatedValue; + $num = pack('CCCvCv', 0x00, 0x00, 0x00, 0x00, 0x00, 0xFFFF); + } + } else { + // We are really not supposed to reach here + $num = pack('d', 0x00); + } + } else { + $num = pack('d', 0x00); + } + + $grbit = 0x03; // Option flags + $unknown = 0x0000; // Must be zero + + // Strip the '=' or '@' sign at the beginning of the formula string + if ($formula{0} == '=') { + $formula = substr($formula,1); + } else { + // Error handling + $this->_writeString($row, $col, 'Unrecognised character for formula'); + return -1; + } + + // Parse the formula using the parser in Parser.php + try { + $error = $this->_parser->parse($formula); + $formula = $this->_parser->toReversePolish(); + + $formlen = strlen($formula); // Length of the binary string + $length = 0x16 + $formlen; // Length of the record data + + $header = pack("vv", $record, $length); + + $data = pack("vvv", $row, $col, $xfIndex) + . $num + . pack("vVv", $grbit, $unknown, $formlen); + $this->_append($header . $data . $formula); + + // Append also a STRING record if necessary + if ($stringValue !== null) { + $this->_writeStringRecord($stringValue); + } + + return 0; + + } catch (Exception $e) { + // do nothing + } + + } + + /** + * Write a STRING record. This + * + * @param string $stringValue + */ + private function _writeStringRecord($stringValue) + { + $record = 0x0207; // Record identifier + $data = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($stringValue); + + $length = strlen($data); + $header = pack('vv', $record, $length); + + $this->_append($header . $data); + } + + /** + * Write a hyperlink. + * This is comprised of two elements: the visible label and + * the invisible link. The visible label is the same as the link unless an + * alternative string is specified. The label is written using the + * _writeString() method. Therefore the 255 characters string limit applies. + * $string and $format are optional. + * + * The hyperlink can be to a http, ftp, mail, internal sheet (not yet), or external + * directory url. + * + * Returns 0 : normal termination + * -2 : row or column out of range + * -3 : long string truncated to 255 chars + * + * @param integer $row Row + * @param integer $col Column + * @param string $url URL string + * @return integer + */ + private function _writeUrl($row, $col, $url) + { + // Add start row and col to arg list + return($this->_writeUrlRange($row, $col, $row, $col, $url)); + } + + /** + * This is the more general form of _writeUrl(). It allows a hyperlink to be + * written to a range of cells. This function also decides the type of hyperlink + * to be written. These are either, Web (http, ftp, mailto), Internal + * (Sheet1!A1) or external ('c:\temp\foo.xls#Sheet1!A1'). + * + * @access private + * @see _writeUrl() + * @param integer $row1 Start row + * @param integer $col1 Start column + * @param integer $row2 End row + * @param integer $col2 End column + * @param string $url URL string + * @return integer + */ + function _writeUrlRange($row1, $col1, $row2, $col2, $url) + { + // Check for internal/external sheet links or default to web link + if (preg_match('[^internal:]', $url)) { + return($this->_writeUrlInternal($row1, $col1, $row2, $col2, $url)); + } + if (preg_match('[^external:]', $url)) { + return($this->_writeUrlExternal($row1, $col1, $row2, $col2, $url)); + } + return($this->_writeUrlWeb($row1, $col1, $row2, $col2, $url)); + } + + /** + * Used to write http, ftp and mailto hyperlinks. + * The link type ($options) is 0x03 is the same as absolute dir ref without + * sheet. However it is differentiated by the $unknown2 data stream. + * + * @access private + * @see _writeUrl() + * @param integer $row1 Start row + * @param integer $col1 Start column + * @param integer $row2 End row + * @param integer $col2 End column + * @param string $url URL string + * @return integer + */ + function _writeUrlWeb($row1, $col1, $row2, $col2, $url) + { + $record = 0x01B8; // Record identifier + $length = 0x00000; // Bytes to follow + + // Pack the undocumented parts of the hyperlink stream + $unknown1 = pack("H*", "D0C9EA79F9BACE118C8200AA004BA90B02000000"); + $unknown2 = pack("H*", "E0C9EA79F9BACE118C8200AA004BA90B"); + + // Pack the option flags + $options = pack("V", 0x03); + + // Convert URL to a null terminated wchar string + $url = join("\0", preg_split("''", $url, -1, PREG_SPLIT_NO_EMPTY)); + $url = $url . "\0\0\0"; + + // Pack the length of the URL + $url_len = pack("V", strlen($url)); + + // Calculate the data length + $length = 0x34 + strlen($url); + + // Pack the header data + $header = pack("vv", $record, $length); + $data = pack("vvvv", $row1, $row2, $col1, $col2); + + // Write the packed data + $this->_append($header . $data . + $unknown1 . $options . + $unknown2 . $url_len . $url); + return 0; + } + + /** + * Used to write internal reference hyperlinks such as "Sheet1!A1". + * + * @access private + * @see _writeUrl() + * @param integer $row1 Start row + * @param integer $col1 Start column + * @param integer $row2 End row + * @param integer $col2 End column + * @param string $url URL string + * @return integer + */ + function _writeUrlInternal($row1, $col1, $row2, $col2, $url) + { + $record = 0x01B8; // Record identifier + $length = 0x00000; // Bytes to follow + + // Strip URL type + $url = preg_replace('/^internal:/', '', $url); + + // Pack the undocumented parts of the hyperlink stream + $unknown1 = pack("H*", "D0C9EA79F9BACE118C8200AA004BA90B02000000"); + + // Pack the option flags + $options = pack("V", 0x08); + + // Convert the URL type and to a null terminated wchar string + $url .= "\0"; + + // character count + $url_len = PHPExcel_Shared_String::CountCharacters($url); + $url_len = pack('V', $url_len); + + $url = PHPExcel_Shared_String::ConvertEncoding($url, 'UTF-16LE', 'UTF-8'); + + // Calculate the data length + $length = 0x24 + strlen($url); + + // Pack the header data + $header = pack("vv", $record, $length); + $data = pack("vvvv", $row1, $row2, $col1, $col2); + + // Write the packed data + $this->_append($header . $data . + $unknown1 . $options . + $url_len . $url); + return 0; + } + + /** + * Write links to external directory names such as 'c:\foo.xls', + * c:\foo.xls#Sheet1!A1', '../../foo.xls'. and '../../foo.xls#Sheet1!A1'. + * + * Note: Excel writes some relative links with the $dir_long string. We ignore + * these cases for the sake of simpler code. + * + * @access private + * @see _writeUrl() + * @param integer $row1 Start row + * @param integer $col1 Start column + * @param integer $row2 End row + * @param integer $col2 End column + * @param string $url URL string + * @return integer + */ + function _writeUrlExternal($row1, $col1, $row2, $col2, $url) + { + // Network drives are different. We will handle them separately + // MS/Novell network drives and shares start with \\ + if (preg_match('[^external:\\\\]', $url)) { + return; //($this->_writeUrlExternal_net($row1, $col1, $row2, $col2, $url, $str, $format)); + } + + $record = 0x01B8; // Record identifier + $length = 0x00000; // Bytes to follow + + // Strip URL type and change Unix dir separator to Dos style (if needed) + // + $url = preg_replace('/^external:/', '', $url); + $url = preg_replace('/\//', "\\", $url); + + // Determine if the link is relative or absolute: + // relative if link contains no dir separator, "somefile.xls" + // relative if link starts with up-dir, "..\..\somefile.xls" + // otherwise, absolute + + $absolute = 0x00; // relative path + if ( preg_match('/^[A-Z]:/', $url) ) { + $absolute = 0x02; // absolute path on Windows, e.g. C:\... + } + $link_type = 0x01 | $absolute; + + // Determine if the link contains a sheet reference and change some of the + // parameters accordingly. + // Split the dir name and sheet name (if it exists) + $dir_long = $url; + if (preg_match("/\#/", $url)) { + $link_type |= 0x08; + } + + + // Pack the link type + $link_type = pack("V", $link_type); + + // Calculate the up-level dir count e.g.. (..\..\..\ == 3) + $up_count = preg_match_all("/\.\.\\\/", $dir_long, $useless); + $up_count = pack("v", $up_count); + + // Store the short dos dir name (null terminated) + $dir_short = preg_replace("/\.\.\\\/", '', $dir_long) . "\0"; + + // Store the long dir name as a wchar string (non-null terminated) + $dir_long = $dir_long . "\0"; + + // Pack the lengths of the dir strings + $dir_short_len = pack("V", strlen($dir_short) ); + $dir_long_len = pack("V", strlen($dir_long) ); + $stream_len = pack("V", 0);//strlen($dir_long) + 0x06); + + // Pack the undocumented parts of the hyperlink stream + $unknown1 = pack("H*",'D0C9EA79F9BACE118C8200AA004BA90B02000000' ); + $unknown2 = pack("H*",'0303000000000000C000000000000046' ); + $unknown3 = pack("H*",'FFFFADDE000000000000000000000000000000000000000'); + $unknown4 = pack("v", 0x03 ); + + // Pack the main data stream + $data = pack("vvvv", $row1, $row2, $col1, $col2) . + $unknown1 . + $link_type . + $unknown2 . + $up_count . + $dir_short_len. + $dir_short . + $unknown3 . + $stream_len ;/*. + $dir_long_len . + $unknown4 . + $dir_long . + $sheet_len . + $sheet ;*/ + + // Pack the header data + $length = strlen($data); + $header = pack("vv", $record, $length); + + // Write the packed data + $this->_append($header. $data); + return 0; + } + + /** + * This method is used to set the height and format for a row. + * + * @param integer $row The row to set + * @param integer $height Height we are giving to the row. + * Use null to set XF without setting height + * @param integer $xfIndex The optional cell style Xf index to apply to the columns + * @param bool $hidden The optional hidden attribute + * @param integer $level The optional outline level for row, in range [0,7] + */ + private function _writeRow($row, $height, $xfIndex, $hidden = false, $level = 0) + { + $record = 0x0208; // Record identifier + $length = 0x0010; // Number of bytes to follow + + $colMic = 0x0000; // First defined column + $colMac = 0x0000; // Last defined column + $irwMac = 0x0000; // Used by Excel to optimise loading + $reserved = 0x0000; // Reserved + $grbit = 0x0000; // Option flags + $ixfe = $xfIndex; + + if ( $height < 0 ){ + $height = null; + } + + // Use _writeRow($row, null, $XF) to set XF format without setting height + if ($height != null) { + $miyRw = $height * 20; // row height + } else { + $miyRw = 0xff; // default row height is 256 + } + + // Set the options flags. fUnsynced is used to show that the font and row + // heights are not compatible. This is usually the case for WriteExcel. + // The collapsed flag 0x10 doesn't seem to be used to indicate that a row + // is collapsed. Instead it is used to indicate that the previous row is + // collapsed. The zero height flag, 0x20, is used to collapse a row. + + $grbit |= $level; + if ($hidden) { + $grbit |= 0x0020; + } + if ($height !== null) { + $grbit |= 0x0040; // fUnsynced + } + if ($xfIndex !== 0xF) { + $grbit |= 0x0080; + } + $grbit |= 0x0100; + + $header = pack("vv", $record, $length); + $data = pack("vvvvvvvv", $row, $colMic, $colMac, $miyRw, + $irwMac,$reserved, $grbit, $ixfe); + $this->_append($header.$data); + } + + /** + * Writes Excel DIMENSIONS to define the area in which there is data. + */ + private function _writeDimensions() + { + $record = 0x0200; // Record identifier + + $length = 0x000E; + $data = pack('VVvvv' + , $this->_firstRowIndex + , $this->_lastRowIndex + 1 + , $this->_firstColumnIndex + , $this->_lastColumnIndex + 1 + , 0x0000 // reserved + ); + + $header = pack("vv", $record, $length); + $this->_append($header.$data); + } + + /** + * Write BIFF record Window2. + */ + private function _writeWindow2() + { + $record = 0x023E; // Record identifier + $length = 0x0012; + + $grbit = 0x00B6; // Option flags + $rwTop = 0x0000; // Top row visible in window + $colLeft = 0x0000; // Leftmost column visible in window + + + // The options flags that comprise $grbit + $fDspFmla = 0; // 0 - bit + $fDspGrid = $this->_phpSheet->getShowGridlines() ? 1 : 0; // 1 + $fDspRwCol = $this->_phpSheet->getShowRowColHeaders() ? 1 : 0; // 2 + $fFrozen = $this->_phpSheet->getFreezePane() ? 1 : 0; // 3 + $fDspZeros = 1; // 4 + $fDefaultHdr = 1; // 5 + $fArabic = $this->_phpSheet->getRightToLeft() ? 1 : 0; // 6 + $fDspGuts = $this->_outline_on; // 7 + $fFrozenNoSplit = 0; // 0 - bit + // no support in PHPExcel for selected sheet, therefore sheet is only selected if it is the active sheet + $fSelected = ($this->_phpSheet === $this->_phpSheet->getParent()->getActiveSheet()) ? 1 : 0; + $fPaged = 1; // 2 + + $grbit = $fDspFmla; + $grbit |= $fDspGrid << 1; + $grbit |= $fDspRwCol << 2; + $grbit |= $fFrozen << 3; + $grbit |= $fDspZeros << 4; + $grbit |= $fDefaultHdr << 5; + $grbit |= $fArabic << 6; + $grbit |= $fDspGuts << 7; + $grbit |= $fFrozenNoSplit << 8; + $grbit |= $fSelected << 9; + $grbit |= $fPaged << 10; + + $header = pack("vv", $record, $length); + $data = pack("vvv", $grbit, $rwTop, $colLeft); + + // FIXME !!! + $rgbHdr = 0x0040; // Row/column heading and gridline color index + $zoom_factor_page_break = 0x0000; + $zoom_factor_normal = 0x0000; + $data .= pack("vvvvV", $rgbHdr, 0x0000, $zoom_factor_page_break, $zoom_factor_normal, 0x00000000); + + $this->_append($header.$data); + } + + /** + * Write BIFF record DEFAULTROWHEIGHT. + */ + private function _writeDefaultRowHeight() + { + $defaultRowHeight = $this->_phpSheet->getDefaultRowDimension()->getRowHeight(); + + if ($defaultRowHeight < 0) { + return; + } + + // convert to twips + $defaultRowHeight = (int) 20 * $defaultRowHeight; + + $record = 0x0225; // Record identifier + $length = 0x0004; // Number of bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("vv", 1, $defaultRowHeight); + $this->_append($header . $data); + } + + /** + * Write BIFF record DEFCOLWIDTH if COLINFO records are in use. + */ + private function _writeDefcol() + { + $defaultColWidth = 8; + + $record = 0x0055; // Record identifier + $length = 0x0002; // Number of bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("v", $defaultColWidth); + $this->_append($header . $data); + } + + /** + * Write BIFF record COLINFO to define column widths + * + * Note: The SDK says the record length is 0x0B but Excel writes a 0x0C + * length record. + * + * @param array $col_array This is the only parameter received and is composed of the following: + * 0 => First formatted column, + * 1 => Last formatted column, + * 2 => Col width (8.43 is Excel default), + * 3 => The optional XF format of the column, + * 4 => Option flags. + * 5 => Optional outline level + */ + private function _writeColinfo($col_array) + { + if (isset($col_array[0])) { + $colFirst = $col_array[0]; + } + if (isset($col_array[1])) { + $colLast = $col_array[1]; + } + if (isset($col_array[2])) { + $coldx = $col_array[2]; + } else { + $coldx = 8.43; + } + if (isset($col_array[3])) { + $xfIndex = $col_array[3]; + } else { + $xfIndex = 15; + } + if (isset($col_array[4])) { + $grbit = $col_array[4]; + } else { + $grbit = 0; + } + if (isset($col_array[5])) { + $level = $col_array[5]; + } else { + $level = 0; + } + $record = 0x007D; // Record identifier + $length = 0x000C; // Number of bytes to follow + + $coldx *= 256; // Convert to units of 1/256 of a char + + $ixfe = $xfIndex; + $reserved = 0x0000; // Reserved + + $level = max(0, min($level, 7)); + $grbit |= $level << 8; + + $header = pack("vv", $record, $length); + $data = pack("vvvvvv", $colFirst, $colLast, $coldx, + $ixfe, $grbit, $reserved); + $this->_append($header.$data); + } + + /** + * Write BIFF record SELECTION. + */ + private function _writeSelection() + { + // look up the selected cell range + $selectedCells = $this->_phpSheet->getSelectedCells(); + $selectedCells = PHPExcel_Cell::splitRange($this->_phpSheet->getSelectedCells()); + $selectedCells = $selectedCells[0]; + if (count($selectedCells) == 2) { + list($first, $last) = $selectedCells; + } else { + $first = $selectedCells[0]; + $last = $selectedCells[0]; + } + + list($colFirst, $rwFirst) = PHPExcel_Cell::coordinateFromString($first); + $colFirst = PHPExcel_Cell::columnIndexFromString($colFirst) - 1; // base 0 column index + --$rwFirst; // base 0 row index + + list($colLast, $rwLast) = PHPExcel_Cell::coordinateFromString($last); + $colLast = PHPExcel_Cell::columnIndexFromString($colLast) - 1; // base 0 column index + --$rwLast; // base 0 row index + + // make sure we are not out of bounds + $colFirst = min($colFirst, 255); + $colLast = min($colLast, 255); + + $rwFirst = min($rwFirst, 65535); + $rwLast = min($rwLast, 65535); + + $record = 0x001D; // Record identifier + $length = 0x000F; // Number of bytes to follow + + $pnn = $this->_active_pane; // Pane position + $rwAct = $rwFirst; // Active row + $colAct = $colFirst; // Active column + $irefAct = 0; // Active cell ref + $cref = 1; // Number of refs + + if (!isset($rwLast)) { + $rwLast = $rwFirst; // Last row in reference + } + if (!isset($colLast)) { + $colLast = $colFirst; // Last col in reference + } + + // Swap last row/col for first row/col as necessary + if ($rwFirst > $rwLast) { + list($rwFirst, $rwLast) = array($rwLast, $rwFirst); + } + + if ($colFirst > $colLast) { + list($colFirst, $colLast) = array($colLast, $colFirst); + } + + $header = pack("vv", $record, $length); + $data = pack("CvvvvvvCC", $pnn, $rwAct, $colAct, + $irefAct, $cref, + $rwFirst, $rwLast, + $colFirst, $colLast); + $this->_append($header . $data); + } + + /** + * Store the MERGEDCELLS records for all ranges of merged cells + */ + private function _writeMergedCells() + { + $mergeCells = $this->_phpSheet->getMergeCells(); + $countMergeCells = count($mergeCells); + + if ($countMergeCells == 0) { + return; + } + + // maximum allowed number of merged cells per record + $maxCountMergeCellsPerRecord = 1027; + + // record identifier + $record = 0x00E5; + + // counter for total number of merged cells treated so far by the writer + $i = 0; + + // counter for number of merged cells written in record currently being written + $j = 0; + + // initialize record data + $recordData = ''; + + // loop through the merged cells + foreach ($mergeCells as $mergeCell) { + ++$i; + ++$j; + + // extract the row and column indexes + $range = PHPExcel_Cell::splitRange($mergeCell); + list($first, $last) = $range[0]; + list($firstColumn, $firstRow) = PHPExcel_Cell::coordinateFromString($first); + list($lastColumn, $lastRow) = PHPExcel_Cell::coordinateFromString($last); + + $recordData .= pack('vvvv', $firstRow - 1, $lastRow - 1, PHPExcel_Cell::columnIndexFromString($firstColumn) - 1, PHPExcel_Cell::columnIndexFromString($lastColumn) - 1); + + // flush record if we have reached limit for number of merged cells, or reached final merged cell + if ($j == $maxCountMergeCellsPerRecord or $i == $countMergeCells) { + $recordData = pack('v', $j) . $recordData; + $length = strlen($recordData); + $header = pack('vv', $record, $length); + $this->_append($header . $recordData); + + // initialize for next record, if any + $recordData = ''; + $j = 0; + } + } + } + + /** + * Write SHEETLAYOUT record + */ + private function _writeSheetLayout() + { + if (!$this->_phpSheet->isTabColorSet()) { + return; + } + + $recordData = pack( + 'vvVVVvv' + , 0x0862 + , 0x0000 // unused + , 0x00000000 // unused + , 0x00000000 // unused + , 0x00000014 // size of record data + , $this->_colors[$this->_phpSheet->getTabColor()->getRGB()] // color index + , 0x0000 // unused + ); + + $length = strlen($recordData); + + $record = 0x0862; // Record identifier + $header = pack('vv', $record, $length); + $this->_append($header . $recordData); + } + + /** + * Write SHEETPROTECTION + */ + private function _writeSheetProtection() + { + // record identifier + $record = 0x0867; + + // prepare options + $options = (int) !$this->_phpSheet->getProtection()->getObjects() + | (int) !$this->_phpSheet->getProtection()->getScenarios() << 1 + | (int) !$this->_phpSheet->getProtection()->getFormatCells() << 2 + | (int) !$this->_phpSheet->getProtection()->getFormatColumns() << 3 + | (int) !$this->_phpSheet->getProtection()->getFormatRows() << 4 + | (int) !$this->_phpSheet->getProtection()->getInsertColumns() << 5 + | (int) !$this->_phpSheet->getProtection()->getInsertRows() << 6 + | (int) !$this->_phpSheet->getProtection()->getInsertHyperlinks() << 7 + | (int) !$this->_phpSheet->getProtection()->getDeleteColumns() << 8 + | (int) !$this->_phpSheet->getProtection()->getDeleteRows() << 9 + | (int) !$this->_phpSheet->getProtection()->getSelectLockedCells() << 10 + | (int) !$this->_phpSheet->getProtection()->getSort() << 11 + | (int) !$this->_phpSheet->getProtection()->getAutoFilter() << 12 + | (int) !$this->_phpSheet->getProtection()->getPivotTables() << 13 + | (int) !$this->_phpSheet->getProtection()->getSelectUnlockedCells() << 14 ; + + // record data + $recordData = pack( + 'vVVCVVvv' + , 0x0867 // repeated record identifier + , 0x0000 // not used + , 0x0000 // not used + , 0x00 // not used + , 0x01000200 // unknown data + , 0xFFFFFFFF // unknown data + , $options // options + , 0x0000 // not used + ); + + $length = strlen($recordData); + $header = pack('vv', $record, $length); + + $this->_append($header . $recordData); + } + + /** + * Write BIFF record RANGEPROTECTION + * + * Openoffice.org's Documentaion of the Microsoft Excel File Format uses term RANGEPROTECTION for these records + * Microsoft Office Excel 97-2007 Binary File Format Specification uses term FEAT for these records + */ + private function _writeRangeProtection() + { + foreach ($this->_phpSheet->getProtectedCells() as $range => $password) { + // number of ranges, e.g. 'A1:B3 C20:D25' + $cellRanges = explode(' ', $range); + $cref = count($cellRanges); + + $recordData = pack( + 'vvVVvCVvVv', + 0x0868, + 0x00, + 0x0000, + 0x0000, + 0x02, + 0x0, + 0x0000, + $cref, + 0x0000, + 0x00 + ); + + foreach ($cellRanges as $cellRange) { + $recordData .= $this->_writeBIFF8CellRangeAddressFixed($cellRange); + } + + // the rgbFeat structure + $recordData .= pack( + 'VV', + 0x0000, + hexdec($password) + ); + + $recordData .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong('p' . md5($recordData)); + + $length = strlen($recordData); + + $record = 0x0868; // Record identifier + $header = pack("vv", $record, $length); + $this->_append($header . $recordData); + } + } + + /** + * Write BIFF record EXTERNCOUNT to indicate the number of external sheet + * references in a worksheet. + * + * Excel only stores references to external sheets that are used in formulas. + * For simplicity we store references to all the sheets in the workbook + * regardless of whether they are used or not. This reduces the overall + * complexity and eliminates the need for a two way dialogue between the formula + * parser the worksheet objects. + * + * @param integer $count The number of external sheet references in this worksheet + */ + private function _writeExterncount($count) + { + $record = 0x0016; // Record identifier + $length = 0x0002; // Number of bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("v", $count); + $this->_append($header . $data); + } + + /** + * Writes the Excel BIFF EXTERNSHEET record. These references are used by + * formulas. A formula references a sheet name via an index. Since we store a + * reference to all of the external worksheets the EXTERNSHEET index is the same + * as the worksheet index. + * + * @param string $sheetname The name of a external worksheet + */ + private function _writeExternsheet($sheetname) + { + $record = 0x0017; // Record identifier + + // References to the current sheet are encoded differently to references to + // external sheets. + // + if ($this->_phpSheet->getTitle() == $sheetname) { + $sheetname = ''; + $length = 0x02; // The following 2 bytes + $cch = 1; // The following byte + $rgch = 0x02; // Self reference + } else { + $length = 0x02 + strlen($sheetname); + $cch = strlen($sheetname); + $rgch = 0x03; // Reference to a sheet in the current workbook + } + + $header = pack("vv", $record, $length); + $data = pack("CC", $cch, $rgch); + $this->_append($header . $data . $sheetname); + } + + /** + * Writes the Excel BIFF PANE record. + * The panes can either be frozen or thawed (unfrozen). + * Frozen panes are specified in terms of an integer number of rows and columns. + * Thawed panes are specified in terms of Excel's units for rows and columns. + */ + private function _writePanes() + { + $panes = array(); + if ($freezePane = $this->_phpSheet->getFreezePane()) { + list($column, $row) = PHPExcel_Cell::coordinateFromString($freezePane); + $panes[0] = $row - 1; + $panes[1] = PHPExcel_Cell::columnIndexFromString($column) - 1; + } else { + // thaw panes + return; + } + + $y = isset($panes[0]) ? $panes[0] : null; + $x = isset($panes[1]) ? $panes[1] : null; + $rwTop = isset($panes[2]) ? $panes[2] : null; + $colLeft = isset($panes[3]) ? $panes[3] : null; + if (count($panes) > 4) { // if Active pane was received + $pnnAct = $panes[4]; + } else { + $pnnAct = null; + } + $record = 0x0041; // Record identifier + $length = 0x000A; // Number of bytes to follow + + // Code specific to frozen or thawed panes. + if ($this->_phpSheet->getFreezePane()) { + // Set default values for $rwTop and $colLeft + if (!isset($rwTop)) { + $rwTop = $y; + } + if (!isset($colLeft)) { + $colLeft = $x; + } + } else { + // Set default values for $rwTop and $colLeft + if (!isset($rwTop)) { + $rwTop = 0; + } + if (!isset($colLeft)) { + $colLeft = 0; + } + + // Convert Excel's row and column units to the internal units. + // The default row height is 12.75 + // The default column width is 8.43 + // The following slope and intersection values were interpolated. + // + $y = 20*$y + 255; + $x = 113.879*$x + 390; + } + + + // Determine which pane should be active. There is also the undocumented + // option to override this should it be necessary: may be removed later. + // + if (!isset($pnnAct)) { + if ($x != 0 && $y != 0) { + $pnnAct = 0; // Bottom right + } + if ($x != 0 && $y == 0) { + $pnnAct = 1; // Top right + } + if ($x == 0 && $y != 0) { + $pnnAct = 2; // Bottom left + } + if ($x == 0 && $y == 0) { + $pnnAct = 3; // Top left + } + } + + $this->_active_pane = $pnnAct; // Used in _writeSelection + + $header = pack("vv", $record, $length); + $data = pack("vvvvv", $x, $y, $rwTop, $colLeft, $pnnAct); + $this->_append($header . $data); + } + + /** + * Store the page setup SETUP BIFF record. + */ + private function _writeSetup() + { + $record = 0x00A1; // Record identifier + $length = 0x0022; // Number of bytes to follow + + $iPaperSize = $this->_phpSheet->getPageSetup()->getPaperSize(); // Paper size + + $iScale = $this->_phpSheet->getPageSetup()->getScale() ? + $this->_phpSheet->getPageSetup()->getScale() : 100; // Print scaling factor + + $iPageStart = 0x01; // Starting page number + $iFitWidth = (int) $this->_phpSheet->getPageSetup()->getFitToWidth(); // Fit to number of pages wide + $iFitHeight = (int) $this->_phpSheet->getPageSetup()->getFitToHeight(); // Fit to number of pages high + $grbit = 0x00; // Option flags + $iRes = 0x0258; // Print resolution + $iVRes = 0x0258; // Vertical print resolution + + $numHdr = $this->_phpSheet->getPageMargins()->getHeader(); // Header Margin + + $numFtr = $this->_phpSheet->getPageMargins()->getFooter(); // Footer Margin + $iCopies = 0x01; // Number of copies + + $fLeftToRight = 0x0; // Print over then down + + // Page orientation + $fLandscape = ($this->_phpSheet->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? + 0x0 : 0x1; + + $fNoPls = 0x0; // Setup not read from printer + $fNoColor = 0x0; // Print black and white + $fDraft = 0x0; // Print draft quality + $fNotes = 0x0; // Print notes + $fNoOrient = 0x0; // Orientation not set + $fUsePage = 0x0; // Use custom starting page + + $grbit = $fLeftToRight; + $grbit |= $fLandscape << 1; + $grbit |= $fNoPls << 2; + $grbit |= $fNoColor << 3; + $grbit |= $fDraft << 4; + $grbit |= $fNotes << 5; + $grbit |= $fNoOrient << 6; + $grbit |= $fUsePage << 7; + + $numHdr = pack("d", $numHdr); + $numFtr = pack("d", $numFtr); + if (self::getByteOrder()) { // if it's Big Endian + $numHdr = strrev($numHdr); + $numFtr = strrev($numFtr); + } + + $header = pack("vv", $record, $length); + $data1 = pack("vvvvvvvv", $iPaperSize, + $iScale, + $iPageStart, + $iFitWidth, + $iFitHeight, + $grbit, + $iRes, + $iVRes); + $data2 = $numHdr.$numFtr; + $data3 = pack("v", $iCopies); + $this->_append($header . $data1 . $data2 . $data3); + } + + /** + * Store the header caption BIFF record. + */ + private function _writeHeader() + { + $record = 0x0014; // Record identifier + + /* removing for now + // need to fix character count (multibyte!) + if (strlen($this->_phpSheet->getHeaderFooter()->getOddHeader()) <= 255) { + $str = $this->_phpSheet->getHeaderFooter()->getOddHeader(); // header string + } else { + $str = ''; + } + */ + + $recordData = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($this->_phpSheet->getHeaderFooter()->getOddHeader()); + $length = strlen($recordData); + + $header = pack("vv", $record, $length); + + $this->_append($header . $recordData); + } + + /** + * Store the footer caption BIFF record. + */ + private function _writeFooter() + { + $record = 0x0015; // Record identifier + + /* removing for now + // need to fix character count (multibyte!) + if (strlen($this->_phpSheet->getHeaderFooter()->getOddFooter()) <= 255) { + $str = $this->_phpSheet->getHeaderFooter()->getOddFooter(); + } else { + $str = ''; + } + */ + + $recordData = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($this->_phpSheet->getHeaderFooter()->getOddFooter()); + $length = strlen($recordData); + + $header = pack("vv", $record, $length); + + $this->_append($header . $recordData); + } + + /** + * Store the horizontal centering HCENTER BIFF record. + * + * @access private + */ + private function _writeHcenter() + { + $record = 0x0083; // Record identifier + $length = 0x0002; // Bytes to follow + + $fHCenter = $this->_phpSheet->getPageSetup()->getHorizontalCentered() ? 1 : 0; // Horizontal centering + + $header = pack("vv", $record, $length); + $data = pack("v", $fHCenter); + + $this->_append($header.$data); + } + + /** + * Store the vertical centering VCENTER BIFF record. + */ + private function _writeVcenter() + { + $record = 0x0084; // Record identifier + $length = 0x0002; // Bytes to follow + + $fVCenter = $this->_phpSheet->getPageSetup()->getVerticalCentered() ? 1 : 0; // Horizontal centering + + $header = pack("vv", $record, $length); + $data = pack("v", $fVCenter); + $this->_append($header . $data); + } + + /** + * Store the LEFTMARGIN BIFF record. + */ + private function _writeMarginLeft() + { + $record = 0x0026; // Record identifier + $length = 0x0008; // Bytes to follow + + $margin = $this->_phpSheet->getPageMargins()->getLeft(); // Margin in inches + + $header = pack("vv", $record, $length); + $data = pack("d", $margin); + if (self::getByteOrder()) { // if it's Big Endian + $data = strrev($data); + } + + $this->_append($header . $data); + } + + /** + * Store the RIGHTMARGIN BIFF record. + */ + private function _writeMarginRight() + { + $record = 0x0027; // Record identifier + $length = 0x0008; // Bytes to follow + + $margin = $this->_phpSheet->getPageMargins()->getRight(); // Margin in inches + + $header = pack("vv", $record, $length); + $data = pack("d", $margin); + if (self::getByteOrder()) { // if it's Big Endian + $data = strrev($data); + } + + $this->_append($header . $data); + } + + /** + * Store the TOPMARGIN BIFF record. + */ + private function _writeMarginTop() + { + $record = 0x0028; // Record identifier + $length = 0x0008; // Bytes to follow + + $margin = $this->_phpSheet->getPageMargins()->getTop(); // Margin in inches + + $header = pack("vv", $record, $length); + $data = pack("d", $margin); + if (self::getByteOrder()) { // if it's Big Endian + $data = strrev($data); + } + + $this->_append($header . $data); + } + + /** + * Store the BOTTOMMARGIN BIFF record. + */ + private function _writeMarginBottom() + { + $record = 0x0029; // Record identifier + $length = 0x0008; // Bytes to follow + + $margin = $this->_phpSheet->getPageMargins()->getBottom(); // Margin in inches + + $header = pack("vv", $record, $length); + $data = pack("d", $margin); + if (self::getByteOrder()) { // if it's Big Endian + $data = strrev($data); + } + + $this->_append($header . $data); + } + + /** + * Write the PRINTHEADERS BIFF record. + */ + private function _writePrintHeaders() + { + $record = 0x002a; // Record identifier + $length = 0x0002; // Bytes to follow + + $fPrintRwCol = $this->_print_headers; // Boolean flag + + $header = pack("vv", $record, $length); + $data = pack("v", $fPrintRwCol); + $this->_append($header . $data); + } + + /** + * Write the PRINTGRIDLINES BIFF record. Must be used in conjunction with the + * GRIDSET record. + */ + private function _writePrintGridlines() + { + $record = 0x002b; // Record identifier + $length = 0x0002; // Bytes to follow + + $fPrintGrid = $this->_phpSheet->getPrintGridlines() ? 1 : 0; // Boolean flag + + $header = pack("vv", $record, $length); + $data = pack("v", $fPrintGrid); + $this->_append($header . $data); + } + + /** + * Write the GRIDSET BIFF record. Must be used in conjunction with the + * PRINTGRIDLINES record. + */ + private function _writeGridset() + { + $record = 0x0082; // Record identifier + $length = 0x0002; // Bytes to follow + + $fGridSet = !$this->_phpSheet->getPrintGridlines(); // Boolean flag + + $header = pack("vv", $record, $length); + $data = pack("v", $fGridSet); + $this->_append($header . $data); + } + + /** + * Write the AUTOFILTERINFO BIFF record. This is used to configure the number of autofilter select used in the sheet. + */ + private function _writeAutoFilterInfo(){ + $record = 0x009D; // Record identifier + $length = 0x0002; // Bytes to follow + + $rangeBounds = PHPExcel_Cell::rangeBoundaries($this->_phpSheet->getAutoFilter()->getRange()); + $iNumFilters = 1 + $rangeBounds[1][0] - $rangeBounds[0][0]; + + $header = pack("vv", $record, $length); + $data = pack("v", $iNumFilters); + $this->_append($header . $data); + } + + /** + * Write the GUTS BIFF record. This is used to configure the gutter margins + * where Excel outline symbols are displayed. The visibility of the gutters is + * controlled by a flag in WSBOOL. + * + * @see _writeWsbool() + */ + private function _writeGuts() + { + $record = 0x0080; // Record identifier + $length = 0x0008; // Bytes to follow + + $dxRwGut = 0x0000; // Size of row gutter + $dxColGut = 0x0000; // Size of col gutter + + // determine maximum row outline level + $maxRowOutlineLevel = 0; + foreach ($this->_phpSheet->getRowDimensions() as $rowDimension) { + $maxRowOutlineLevel = max($maxRowOutlineLevel, $rowDimension->getOutlineLevel()); + } + + $col_level = 0; + + // Calculate the maximum column outline level. The equivalent calculation + // for the row outline level is carried out in _writeRow(). + $colcount = count($this->_colinfo); + for ($i = 0; $i < $colcount; ++$i) { + $col_level = max($this->_colinfo[$i][5], $col_level); + } + + // Set the limits for the outline levels (0 <= x <= 7). + $col_level = max(0, min($col_level, 7)); + + // The displayed level is one greater than the max outline levels + if ($maxRowOutlineLevel) { + ++$maxRowOutlineLevel; + } + if ($col_level) { + ++$col_level; + } + + $header = pack("vv", $record, $length); + $data = pack("vvvv", $dxRwGut, $dxColGut, $maxRowOutlineLevel, $col_level); + + $this->_append($header.$data); + } + + /** + * Write the WSBOOL BIFF record, mainly for fit-to-page. Used in conjunction + * with the SETUP record. + */ + private function _writeWsbool() + { + $record = 0x0081; // Record identifier + $length = 0x0002; // Bytes to follow + $grbit = 0x0000; + + // The only option that is of interest is the flag for fit to page. So we + // set all the options in one go. + // + // Set the option flags + $grbit |= 0x0001; // Auto page breaks visible + if ($this->_outline_style) { + $grbit |= 0x0020; // Auto outline styles + } + if ($this->_phpSheet->getShowSummaryBelow()) { + $grbit |= 0x0040; // Outline summary below + } + if ($this->_phpSheet->getShowSummaryRight()) { + $grbit |= 0x0080; // Outline summary right + } + if ($this->_phpSheet->getPageSetup()->getFitToPage()) { + $grbit |= 0x0100; // Page setup fit to page + } + if ($this->_outline_on) { + $grbit |= 0x0400; // Outline symbols displayed + } + + $header = pack("vv", $record, $length); + $data = pack("v", $grbit); + $this->_append($header . $data); + } + + /** + * Write the HORIZONTALPAGEBREAKS and VERTICALPAGEBREAKS BIFF records. + */ + private function _writeBreaks() + { + // initialize + $vbreaks = array(); + $hbreaks = array(); + + foreach ($this->_phpSheet->getBreaks() as $cell => $breakType) { + // Fetch coordinates + $coordinates = PHPExcel_Cell::coordinateFromString($cell); + + // Decide what to do by the type of break + switch ($breakType) { + case PHPExcel_Worksheet::BREAK_COLUMN: + // Add to list of vertical breaks + $vbreaks[] = PHPExcel_Cell::columnIndexFromString($coordinates[0]) - 1; + break; + + case PHPExcel_Worksheet::BREAK_ROW: + // Add to list of horizontal breaks + $hbreaks[] = $coordinates[1]; + break; + + case PHPExcel_Worksheet::BREAK_NONE: + default: + // Nothing to do + break; + } + } + + //horizontal page breaks + if (!empty($hbreaks)) { + + // Sort and filter array of page breaks + sort($hbreaks, SORT_NUMERIC); + if ($hbreaks[0] == 0) { // don't use first break if it's 0 + array_shift($hbreaks); + } + + $record = 0x001b; // Record identifier + $cbrk = count($hbreaks); // Number of page breaks + $length = 2 + 6 * $cbrk; // Bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("v", $cbrk); + + // Append each page break + foreach ($hbreaks as $hbreak) { + $data .= pack("vvv", $hbreak, 0x0000, 0x00ff); + } + + $this->_append($header . $data); + } + + // vertical page breaks + if (!empty($vbreaks)) { + + // 1000 vertical pagebreaks appears to be an internal Excel 5 limit. + // It is slightly higher in Excel 97/200, approx. 1026 + $vbreaks = array_slice($vbreaks, 0, 1000); + + // Sort and filter array of page breaks + sort($vbreaks, SORT_NUMERIC); + if ($vbreaks[0] == 0) { // don't use first break if it's 0 + array_shift($vbreaks); + } + + $record = 0x001a; // Record identifier + $cbrk = count($vbreaks); // Number of page breaks + $length = 2 + 6 * $cbrk; // Bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("v", $cbrk); + + // Append each page break + foreach ($vbreaks as $vbreak) { + $data .= pack("vvv", $vbreak, 0x0000, 0xffff); + } + + $this->_append($header . $data); + } + } + + /** + * Set the Biff PROTECT record to indicate that the worksheet is protected. + */ + private function _writeProtect() + { + // Exit unless sheet protection has been specified + if (!$this->_phpSheet->getProtection()->getSheet()) { + return; + } + + $record = 0x0012; // Record identifier + $length = 0x0002; // Bytes to follow + + $fLock = 1; // Worksheet is protected + + $header = pack("vv", $record, $length); + $data = pack("v", $fLock); + + $this->_append($header.$data); + } + + /** + * Write SCENPROTECT + */ + private function _writeScenProtect() + { + // Exit if sheet protection is not active + if (!$this->_phpSheet->getProtection()->getSheet()) { + return; + } + + // Exit if scenarios are not protected + if (!$this->_phpSheet->getProtection()->getScenarios()) { + return; + } + + $record = 0x00DD; // Record identifier + $length = 0x0002; // Bytes to follow + + $header = pack('vv', $record, $length); + $data = pack('v', 1); + + $this->_append($header . $data); + } + + /** + * Write OBJECTPROTECT + */ + private function _writeObjectProtect() + { + // Exit if sheet protection is not active + if (!$this->_phpSheet->getProtection()->getSheet()) { + return; + } + + // Exit if objects are not protected + if (!$this->_phpSheet->getProtection()->getObjects()) { + return; + } + + $record = 0x0063; // Record identifier + $length = 0x0002; // Bytes to follow + + $header = pack('vv', $record, $length); + $data = pack('v', 1); + + $this->_append($header . $data); + } + + /** + * Write the worksheet PASSWORD record. + */ + private function _writePassword() + { + // Exit unless sheet protection and password have been specified + if (!$this->_phpSheet->getProtection()->getSheet() || !$this->_phpSheet->getProtection()->getPassword()) { + return; + } + + $record = 0x0013; // Record identifier + $length = 0x0002; // Bytes to follow + + $wPassword = hexdec($this->_phpSheet->getProtection()->getPassword()); // Encoded password + + $header = pack("vv", $record, $length); + $data = pack("v", $wPassword); + + $this->_append($header . $data); + } + + /** + * Insert a 24bit bitmap image in a worksheet. + * + * @access public + * @param integer $row The row we are going to insert the bitmap into + * @param integer $col The column we are going to insert the bitmap into + * @param mixed $bitmap The bitmap filename or GD-image resource + * @param integer $x The horizontal position (offset) of the image inside the cell. + * @param integer $y The vertical position (offset) of the image inside the cell. + * @param float $scale_x The horizontal scale + * @param float $scale_y The vertical scale + */ + function insertBitmap($row, $col, $bitmap, $x = 0, $y = 0, $scale_x = 1, $scale_y = 1) + { + $bitmap_array = (is_resource($bitmap) ? $this->_processBitmapGd($bitmap) : $this->_processBitmap($bitmap)); + list($width, $height, $size, $data) = $bitmap_array; //$this->_processBitmap($bitmap); + + // Scale the frame of the image. + $width *= $scale_x; + $height *= $scale_y; + + // Calculate the vertices of the image and write the OBJ record + $this->_positionImage($col, $row, $x, $y, $width, $height); + + // Write the IMDATA record to store the bitmap data + $record = 0x007f; + $length = 8 + $size; + $cf = 0x09; + $env = 0x01; + $lcb = $size; + + $header = pack("vvvvV", $record, $length, $cf, $env, $lcb); + $this->_append($header.$data); + } + + /** + * Calculate the vertices that define the position of the image as required by + * the OBJ record. + * + * +------------+------------+ + * | A | B | + * +-----+------------+------------+ + * | |(x1,y1) | | + * | 1 |(A1)._______|______ | + * | | | | | + * | | | | | + * +-----+----| BITMAP |-----+ + * | | | | | + * | 2 | |______________. | + * | | | (B2)| + * | | | (x2,y2)| + * +---- +------------+------------+ + * + * Example of a bitmap that covers some of the area from cell A1 to cell B2. + * + * Based on the width and height of the bitmap we need to calculate 8 vars: + * $col_start, $row_start, $col_end, $row_end, $x1, $y1, $x2, $y2. + * The width and height of the cells are also variable and have to be taken into + * account. + * The values of $col_start and $row_start are passed in from the calling + * function. The values of $col_end and $row_end are calculated by subtracting + * the width and height of the bitmap from the width and height of the + * underlying cells. + * The vertices are expressed as a percentage of the underlying cell width as + * follows (rhs values are in pixels): + * + * x1 = X / W *1024 + * y1 = Y / H *256 + * x2 = (X-1) / W *1024 + * y2 = (Y-1) / H *256 + * + * Where: X is distance from the left side of the underlying cell + * Y is distance from the top of the underlying cell + * W is the width of the cell + * H is the height of the cell + * The SDK incorrectly states that the height should be expressed as a + * percentage of 1024. + * + * @access private + * @param integer $col_start Col containing upper left corner of object + * @param integer $row_start Row containing top left corner of object + * @param integer $x1 Distance to left side of object + * @param integer $y1 Distance to top of object + * @param integer $width Width of image frame + * @param integer $height Height of image frame + */ + function _positionImage($col_start, $row_start, $x1, $y1, $width, $height) + { + // Initialise end cell to the same as the start cell + $col_end = $col_start; // Col containing lower right corner of object + $row_end = $row_start; // Row containing bottom right corner of object + + // Zero the specified offset if greater than the cell dimensions + if ($x1 >= PHPExcel_Shared_Excel5::sizeCol($this->_phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_start))) { + $x1 = 0; + } + if ($y1 >= PHPExcel_Shared_Excel5::sizeRow($this->_phpSheet, $row_start + 1)) { + $y1 = 0; + } + + $width = $width + $x1 -1; + $height = $height + $y1 -1; + + // Subtract the underlying cell widths to find the end cell of the image + while ($width >= PHPExcel_Shared_Excel5::sizeCol($this->_phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_end))) { + $width -= PHPExcel_Shared_Excel5::sizeCol($this->_phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_end)); + ++$col_end; + } + + // Subtract the underlying cell heights to find the end cell of the image + while ($height >= PHPExcel_Shared_Excel5::sizeRow($this->_phpSheet, $row_end + 1)) { + $height -= PHPExcel_Shared_Excel5::sizeRow($this->_phpSheet, $row_end + 1); + ++$row_end; + } + + // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a cell + // with zero eight or width. + // + if (PHPExcel_Shared_Excel5::sizeCol($this->_phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_start)) == 0) { + return; + } + if (PHPExcel_Shared_Excel5::sizeCol($this->_phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_end)) == 0) { + return; + } + if (PHPExcel_Shared_Excel5::sizeRow($this->_phpSheet, $row_start + 1) == 0) { + return; + } + if (PHPExcel_Shared_Excel5::sizeRow($this->_phpSheet, $row_end + 1) == 0) { + return; + } + + // Convert the pixel values to the percentage value expected by Excel + $x1 = $x1 / PHPExcel_Shared_Excel5::sizeCol($this->_phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_start)) * 1024; + $y1 = $y1 / PHPExcel_Shared_Excel5::sizeRow($this->_phpSheet, $row_start + 1) * 256; + $x2 = $width / PHPExcel_Shared_Excel5::sizeCol($this->_phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object + $y2 = $height / PHPExcel_Shared_Excel5::sizeRow($this->_phpSheet, $row_end + 1) * 256; // Distance to bottom of object + + $this->_writeObjPicture($col_start, $x1, + $row_start, $y1, + $col_end, $x2, + $row_end, $y2); + } + + /** + * Store the OBJ record that precedes an IMDATA record. This could be generalise + * to support other Excel objects. + * + * @param integer $colL Column containing upper left corner of object + * @param integer $dxL Distance from left side of cell + * @param integer $rwT Row containing top left corner of object + * @param integer $dyT Distance from top of cell + * @param integer $colR Column containing lower right corner of object + * @param integer $dxR Distance from right of cell + * @param integer $rwB Row containing bottom right corner of object + * @param integer $dyB Distance from bottom of cell + */ + private function _writeObjPicture($colL,$dxL,$rwT,$dyT,$colR,$dxR,$rwB,$dyB) + { + $record = 0x005d; // Record identifier + $length = 0x003c; // Bytes to follow + + $cObj = 0x0001; // Count of objects in file (set to 1) + $OT = 0x0008; // Object type. 8 = Picture + $id = 0x0001; // Object ID + $grbit = 0x0614; // Option flags + + $cbMacro = 0x0000; // Length of FMLA structure + $Reserved1 = 0x0000; // Reserved + $Reserved2 = 0x0000; // Reserved + + $icvBack = 0x09; // Background colour + $icvFore = 0x09; // Foreground colour + $fls = 0x00; // Fill pattern + $fAuto = 0x00; // Automatic fill + $icv = 0x08; // Line colour + $lns = 0xff; // Line style + $lnw = 0x01; // Line weight + $fAutoB = 0x00; // Automatic border + $frs = 0x0000; // Frame style + $cf = 0x0009; // Image format, 9 = bitmap + $Reserved3 = 0x0000; // Reserved + $cbPictFmla = 0x0000; // Length of FMLA structure + $Reserved4 = 0x0000; // Reserved + $grbit2 = 0x0001; // Option flags + $Reserved5 = 0x0000; // Reserved + + + $header = pack("vv", $record, $length); + $data = pack("V", $cObj); + $data .= pack("v", $OT); + $data .= pack("v", $id); + $data .= pack("v", $grbit); + $data .= pack("v", $colL); + $data .= pack("v", $dxL); + $data .= pack("v", $rwT); + $data .= pack("v", $dyT); + $data .= pack("v", $colR); + $data .= pack("v", $dxR); + $data .= pack("v", $rwB); + $data .= pack("v", $dyB); + $data .= pack("v", $cbMacro); + $data .= pack("V", $Reserved1); + $data .= pack("v", $Reserved2); + $data .= pack("C", $icvBack); + $data .= pack("C", $icvFore); + $data .= pack("C", $fls); + $data .= pack("C", $fAuto); + $data .= pack("C", $icv); + $data .= pack("C", $lns); + $data .= pack("C", $lnw); + $data .= pack("C", $fAutoB); + $data .= pack("v", $frs); + $data .= pack("V", $cf); + $data .= pack("v", $Reserved3); + $data .= pack("v", $cbPictFmla); + $data .= pack("v", $Reserved4); + $data .= pack("v", $grbit2); + $data .= pack("V", $Reserved5); + + $this->_append($header . $data); + } + + /** + * Convert a GD-image into the internal format. + * + * @access private + * @param resource $image The image to process + * @return array Array with data and properties of the bitmap + */ + function _processBitmapGd($image) { + $width = imagesx($image); + $height = imagesy($image); + + $data = pack("Vvvvv", 0x000c, $width, $height, 0x01, 0x18); + for ($j=$height; $j--; ) { + for ($i=0; $i < $width; ++$i) { + $color = imagecolorsforindex($image, imagecolorat($image, $i, $j)); + foreach (array("red", "green", "blue") as $key) { + $color[$key] = $color[$key] + round((255 - $color[$key]) * $color["alpha"] / 127); + } + $data .= chr($color["blue"]) . chr($color["green"]) . chr($color["red"]); + } + if (3*$width % 4) { + $data .= str_repeat("\x00", 4 - 3*$width % 4); + } + } + + return array($width, $height, strlen($data), $data); + } + + /** + * Convert a 24 bit bitmap into the modified internal format used by Windows. + * This is described in BITMAPCOREHEADER and BITMAPCOREINFO structures in the + * MSDN library. + * + * @access private + * @param string $bitmap The bitmap to process + * @return array Array with data and properties of the bitmap + */ + function _processBitmap($bitmap) + { + // Open file. + $bmp_fd = @fopen($bitmap,"rb"); + if (!$bmp_fd) { + throw new Exception("Couldn't import $bitmap"); + } + + // Slurp the file into a string. + $data = fread($bmp_fd, filesize($bitmap)); + + // Check that the file is big enough to be a bitmap. + if (strlen($data) <= 0x36) { + throw new Exception("$bitmap doesn't contain enough data.\n"); + } + + // The first 2 bytes are used to identify the bitmap. + $identity = unpack("A2ident", $data); + if ($identity['ident'] != "BM") { + throw new Exception("$bitmap doesn't appear to be a valid bitmap image.\n"); + } + + // Remove bitmap data: ID. + $data = substr($data, 2); + + // Read and remove the bitmap size. This is more reliable than reading + // the data size at offset 0x22. + // + $size_array = unpack("Vsa", substr($data, 0, 4)); + $size = $size_array['sa']; + $data = substr($data, 4); + $size -= 0x36; // Subtract size of bitmap header. + $size += 0x0C; // Add size of BIFF header. + + // Remove bitmap data: reserved, offset, header length. + $data = substr($data, 12); + + // Read and remove the bitmap width and height. Verify the sizes. + $width_and_height = unpack("V2", substr($data, 0, 8)); + $width = $width_and_height[1]; + $height = $width_and_height[2]; + $data = substr($data, 8); + if ($width > 0xFFFF) { + throw new Exception("$bitmap: largest image width supported is 65k.\n"); + } + if ($height > 0xFFFF) { + throw new Exception("$bitmap: largest image height supported is 65k.\n"); + } + + // Read and remove the bitmap planes and bpp data. Verify them. + $planes_and_bitcount = unpack("v2", substr($data, 0, 4)); + $data = substr($data, 4); + if ($planes_and_bitcount[2] != 24) { // Bitcount + throw new Exception("$bitmap isn't a 24bit true color bitmap.\n"); + } + if ($planes_and_bitcount[1] != 1) { + throw new Exception("$bitmap: only 1 plane supported in bitmap image.\n"); + } + + // Read and remove the bitmap compression. Verify compression. + $compression = unpack("Vcomp", substr($data, 0, 4)); + $data = substr($data, 4); + + //$compression = 0; + if ($compression['comp'] != 0) { + throw new Exception("$bitmap: compression not supported in bitmap image.\n"); + } + + // Remove bitmap data: data size, hres, vres, colours, imp. colours. + $data = substr($data, 20); + + // Add the BITMAPCOREHEADER data + $header = pack("Vvvvv", 0x000c, $width, $height, 0x01, 0x18); + $data = $header . $data; + + return (array($width, $height, $size, $data)); + } + + /** + * Store the window zoom factor. This should be a reduced fraction but for + * simplicity we will store all fractions with a numerator of 100. + */ + private function _writeZoom() + { + // If scale is 100 we don't need to write a record + if ($this->_phpSheet->getSheetView()->getZoomScale() == 100) { + return; + } + + $record = 0x00A0; // Record identifier + $length = 0x0004; // Bytes to follow + + $header = pack("vv", $record, $length); + $data = pack("vv", $this->_phpSheet->getSheetView()->getZoomScale(), 100); + $this->_append($header . $data); + } + + /** + * Get Escher object + * + * @return PHPExcel_Shared_Escher + */ + public function getEscher() + { + return $this->_escher; + } + + /** + * Set Escher object + * + * @param PHPExcel_Shared_Escher $pValue + */ + public function setEscher(PHPExcel_Shared_Escher $pValue = null) + { + $this->_escher = $pValue; + } + + /** + * Write MSODRAWING record + */ + private function _writeMsoDrawing() + { + // write the Escher stream if necessary + if (isset($this->_escher)) { + $writer = new PHPExcel_Writer_Excel5_Escher($this->_escher); + $data = $writer->close(); + $spOffsets = $writer->getSpOffsets(); + $spTypes = $writer->getSpTypes(); + // write the neccesary MSODRAWING, OBJ records + + // split the Escher stream + $spOffsets[0] = 0; + $nm = count($spOffsets) - 1; // number of shapes excluding first shape + for ($i = 1; $i <= $nm; ++$i) { + // MSODRAWING record + $record = 0x00EC; // Record identifier + + // chunk of Escher stream for one shape + $dataChunk = substr($data, $spOffsets[$i -1], $spOffsets[$i] - $spOffsets[$i - 1]); + + $length = strlen($dataChunk); + $header = pack("vv", $record, $length); + + $this->_append($header . $dataChunk); + + // OBJ record + $record = 0x005D; // record identifier + $objData = ''; + + // ftCmo + if($spTypes[$i] == 0x00C9){ + // Add ftCmo (common object data) subobject + $objData .= + pack('vvvvvVVV' + , 0x0015 // 0x0015 = ftCmo + , 0x0012 // length of ftCmo data + , 0x0014 // object type, 0x0014 = filter + , $i // object id number, Excel seems to use 1-based index, local for the sheet + , 0x2101 // option flags, 0x2001 is what OpenOffice.org uses + , 0 // reserved + , 0 // reserved + , 0 // reserved + ); + + // Add ftSbs Scroll bar subobject + $objData .= pack('vv', 0x00C, 0x0014); + $objData .= pack('H*', '0000000000000000640001000A00000010000100'); + // Add ftLbsData (List box data) subobject + $objData .= pack('vv', 0x0013, 0x1FEE); + $objData .= pack('H*', '00000000010001030000020008005700'); + } + else { + // Add ftCmo (common object data) subobject + $objData .= + pack('vvvvvVVV' + , 0x0015 // 0x0015 = ftCmo + , 0x0012 // length of ftCmo data + , 0x0008 // object type, 0x0008 = picture + , $i // object id number, Excel seems to use 1-based index, local for the sheet + , 0x6011 // option flags, 0x6011 is what OpenOffice.org uses + , 0 // reserved + , 0 // reserved + , 0 // reserved + ); + } + + // ftEnd + $objData .= + pack('vv' + , 0x0000 // 0x0000 = ftEnd + , 0x0000 // length of ftEnd data + ); + + $length = strlen($objData); + $header = pack('vv', $record, $length); + $this->_append($header . $objData); + } + } + } + + /** + * Store the DATAVALIDATIONS and DATAVALIDATION records. + */ + private function _writeDataValidity() + { + // Datavalidation collection + $dataValidationCollection = $this->_phpSheet->getDataValidationCollection(); + + // Write data validations? + if (!empty($dataValidationCollection)) { + + // DATAVALIDATIONS record + $record = 0x01B2; // Record identifier + $length = 0x0012; // Bytes to follow + + $grbit = 0x0000; // Prompt box at cell, no cached validity data at DV records + $horPos = 0x00000000; // Horizontal position of prompt box, if fixed position + $verPos = 0x00000000; // Vertical position of prompt box, if fixed position + $objId = 0xFFFFFFFF; // Object identifier of drop down arrow object, or -1 if not visible + + $header = pack('vv', $record, $length); + $data = pack('vVVVV', $grbit, $horPos, $verPos, $objId, + count($dataValidationCollection)); + $this->_append($header.$data); + + // DATAVALIDATION records + $record = 0x01BE; // Record identifier + + foreach ($dataValidationCollection as $cellCoordinate => $dataValidation) { + // initialize record data + $data = ''; + + // options + $options = 0x00000000; + + // data type + $type = $dataValidation->getType(); + switch ($type) { + case PHPExcel_Cell_DataValidation::TYPE_NONE: $type = 0x00; break; + case PHPExcel_Cell_DataValidation::TYPE_WHOLE: $type = 0x01; break; + case PHPExcel_Cell_DataValidation::TYPE_DECIMAL: $type = 0x02; break; + case PHPExcel_Cell_DataValidation::TYPE_LIST: $type = 0x03; break; + case PHPExcel_Cell_DataValidation::TYPE_DATE: $type = 0x04; break; + case PHPExcel_Cell_DataValidation::TYPE_TIME: $type = 0x05; break; + case PHPExcel_Cell_DataValidation::TYPE_TEXTLENGTH: $type = 0x06; break; + case PHPExcel_Cell_DataValidation::TYPE_CUSTOM: $type = 0x07; break; + } + $options |= $type << 0; + + // error style + $errorStyle = $dataValidation->getType(); + switch ($errorStyle) { + case PHPExcel_Cell_DataValidation::STYLE_STOP: $errorStyle = 0x00; break; + case PHPExcel_Cell_DataValidation::STYLE_WARNING: $errorStyle = 0x01; break; + case PHPExcel_Cell_DataValidation::STYLE_INFORMATION: $errorStyle = 0x02; break; + } + $options |= $errorStyle << 4; + + // explicit formula? + if ($type == 0x03 && preg_match('/^\".*\"$/', $dataValidation->getFormula1())) { + $options |= 0x01 << 7; + } + + // empty cells allowed + $options |= $dataValidation->getAllowBlank() << 8; + + // show drop down + $options |= (!$dataValidation->getShowDropDown()) << 9; + + // show input message + $options |= $dataValidation->getShowInputMessage() << 18; + + // show error message + $options |= $dataValidation->getShowErrorMessage() << 19; + + // condition operator + $operator = $dataValidation->getOperator(); + switch ($operator) { + case PHPExcel_Cell_DataValidation::OPERATOR_BETWEEN: $operator = 0x00 ; break; + case PHPExcel_Cell_DataValidation::OPERATOR_NOTBETWEEN: $operator = 0x01 ; break; + case PHPExcel_Cell_DataValidation::OPERATOR_EQUAL: $operator = 0x02 ; break; + case PHPExcel_Cell_DataValidation::OPERATOR_NOTEQUAL: $operator = 0x03 ; break; + case PHPExcel_Cell_DataValidation::OPERATOR_GREATERTHAN: $operator = 0x04 ; break; + case PHPExcel_Cell_DataValidation::OPERATOR_LESSTHAN: $operator = 0x05 ; break; + case PHPExcel_Cell_DataValidation::OPERATOR_GREATERTHANOREQUAL: $operator = 0x06; break; + case PHPExcel_Cell_DataValidation::OPERATOR_LESSTHANOREQUAL: $operator = 0x07 ; break; + } + $options |= $operator << 20; + + $data = pack('V', $options); + + // prompt title + $promptTitle = $dataValidation->getPromptTitle() !== '' ? + $dataValidation->getPromptTitle() : chr(0); + $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($promptTitle); + + // error title + $errorTitle = $dataValidation->getErrorTitle() !== '' ? + $dataValidation->getErrorTitle() : chr(0); + $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($errorTitle); + + // prompt text + $prompt = $dataValidation->getPrompt() !== '' ? + $dataValidation->getPrompt() : chr(0); + $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($prompt); + + // error text + $error = $dataValidation->getError() !== '' ? + $dataValidation->getError() : chr(0); + $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($error); + + // formula 1 + try { + $formula1 = $dataValidation->getFormula1(); + if ($type == 0x03) { // list type + $formula1 = str_replace(',', chr(0), $formula1); + } + $this->_parser->parse($formula1); + $formula1 = $this->_parser->toReversePolish(); + $sz1 = strlen($formula1); + + } catch(Exception $e) { + $sz1 = 0; + $formula1 = ''; + } + $data .= pack('vv', $sz1, 0x0000); + $data .= $formula1; + + // formula 2 + try { + $formula2 = $dataValidation->getFormula2(); + if ($formula2 === '') { + throw new Exception('No formula2'); + } + $this->_parser->parse($formula2); + $formula2 = $this->_parser->toReversePolish(); + $sz2 = strlen($formula2); + + } catch(Exception $e) { + $sz2 = 0; + $formula2 = ''; + } + $data .= pack('vv', $sz2, 0x0000); + $data .= $formula2; + + // cell range address list + $data .= pack('v', 0x0001); + $data .= $this->_writeBIFF8CellRangeAddressFixed($cellCoordinate); + + $length = strlen($data); + $header = pack("vv", $record, $length); + + $this->_append($header . $data); + } + } + } + + /** + * Map Error code + * + * @param string $errorCode + * @return int + */ + private static function _mapErrorCode($errorCode) { + switch ($errorCode) { + case '#NULL!': return 0x00; + case '#DIV/0!': return 0x07; + case '#VALUE!': return 0x0F; + case '#REF!': return 0x17; + case '#NAME?': return 0x1D; + case '#NUM!': return 0x24; + case '#N/A': return 0x2A; + } + + return 0; + } + +} \ No newline at end of file diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Xf.php b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Xf.php new file mode 100755 index 0000000..06fb1d9 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/Excel5/Xf.php @@ -0,0 +1,546 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + +// Original file header of PEAR::Spreadsheet_Excel_Writer_Format (used as the base for this class): +// ----------------------------------------------------------------------------------------- +// /* +// * Module written/ported by Xavier Noguer <xnoguer@rezebra.com> +// * +// * The majority of this is _NOT_ my code. I simply ported it from the +// * PERL Spreadsheet::WriteExcel module. +// * +// * The author of the Spreadsheet::WriteExcel module is John McNamara +// * <jmcnamara@cpan.org> +// * +// * I _DO_ maintain this code, and John McNamara has nothing to do with the +// * porting of this code to PHP. Any questions directly related to this +// * class library should be directed to me. +// * +// * License Information: +// * +// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets +// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com +// * +// * This library is free software; you can redistribute it and/or +// * modify it under the terms of the GNU Lesser General Public +// * License as published by the Free Software Foundation; either +// * version 2.1 of the License, or (at your option) any later version. +// * +// * This library is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * Lesser General Public License for more details. +// * +// * You should have received a copy of the GNU Lesser General Public +// * License along with this library; if not, write to the Free Software +// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// */ + + +/** + * PHPExcel_Writer_Excel5_Xf + * + * @category PHPExcel + * @package PHPExcel_Writer_Excel5 + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_Excel5_Xf +{ + /** + * Style XF or a cell XF ? + * + * @var boolean + */ + private $_isStyleXf; + + /** + * Index to the FONT record. Index 4 does not exist + * @var integer + */ + private $_fontIndex; + + /** + * An index (2 bytes) to a FORMAT record (number format). + * @var integer + */ + public $_numberFormatIndex; + + /** + * 1 bit, apparently not used. + * @var integer + */ + public $_text_justlast; + + /** + * The cell's foreground color. + * @var integer + */ + public $_fg_color; + + /** + * The cell's background color. + * @var integer + */ + public $_bg_color; + + /** + * Color of the bottom border of the cell. + * @var integer + */ + public $_bottom_color; + + /** + * Color of the top border of the cell. + * @var integer + */ + public $_top_color; + + /** + * Color of the left border of the cell. + * @var integer + */ + public $_left_color; + + /** + * Color of the right border of the cell. + * @var integer + */ + public $_right_color; + + /** + * Constructor + * + * @access public + * @param PHPExcel_Style The XF format + */ + public function __construct(PHPExcel_Style $style = null) + { + $this->_isStyleXf = false; + $this->_fontIndex = 0; + + $this->_numberFormatIndex = 0; + + $this->_text_justlast = 0; + + $this->_fg_color = 0x40; + $this->_bg_color = 0x41; + + $this->_diag = 0; + + $this->_bottom_color = 0x40; + $this->_top_color = 0x40; + $this->_left_color = 0x40; + $this->_right_color = 0x40; + $this->_diag_color = 0x40; + $this->_style = $style; + + } + + + /** + * Generate an Excel BIFF XF record (style or cell). + * + * @return string The XF record + */ + function writeXf() + { + // Set the type of the XF record and some of the attributes. + if ($this->_isStyleXf) { + $style = 0xFFF5; + } else { + $style = self::_mapLocked($this->_style->getProtection()->getLocked()); + $style |= self::_mapHidden($this->_style->getProtection()->getHidden()) << 1; + } + + // Flags to indicate if attributes have been set. + $atr_num = ($this->_numberFormatIndex != 0)?1:0; + $atr_fnt = ($this->_fontIndex != 0)?1:0; + $atr_alc = ((int) $this->_style->getAlignment()->getWrapText())?1:0; + $atr_bdr = (self::_mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) || + self::_mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) || + self::_mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()) || + self::_mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()))?1:0; + $atr_pat = (($this->_fg_color != 0x40) || + ($this->_bg_color != 0x41) || + self::_mapFillType($this->_style->getFill()->getFillType()))?1:0; + $atr_prot = self::_mapLocked($this->_style->getProtection()->getLocked()) + | self::_mapHidden($this->_style->getProtection()->getHidden()); + + // Zero the default border colour if the border has not been set. + if (self::_mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) == 0) { + $this->_bottom_color = 0; + } + if (self::_mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) == 0) { + $this->_top_color = 0; + } + if (self::_mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()) == 0) { + $this->_right_color = 0; + } + if (self::_mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()) == 0) { + $this->_left_color = 0; + } + if (self::_mapBorderStyle($this->_style->getBorders()->getDiagonal()->getBorderStyle()) == 0) { + $this->_diag_color = 0; + } + + $record = 0x00E0; // Record identifier + $length = 0x0014; // Number of bytes to follow + + $ifnt = $this->_fontIndex; // Index to FONT record + $ifmt = $this->_numberFormatIndex; // Index to FORMAT record + + $align = $this->_mapHAlign($this->_style->getAlignment()->getHorizontal()); // Alignment + $align |= (int) $this->_style->getAlignment()->getWrapText() << 3; + $align |= self::_mapVAlign($this->_style->getAlignment()->getVertical()) << 4; + $align |= $this->_text_justlast << 7; + + $used_attrib = $atr_num << 2; + $used_attrib |= $atr_fnt << 3; + $used_attrib |= $atr_alc << 4; + $used_attrib |= $atr_bdr << 5; + $used_attrib |= $atr_pat << 6; + $used_attrib |= $atr_prot << 7; + + $icv = $this->_fg_color; // fg and bg pattern colors + $icv |= $this->_bg_color << 7; + + $border1 = self::_mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()); // Border line style and color + $border1 |= self::_mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()) << 4; + $border1 |= self::_mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) << 8; + $border1 |= self::_mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) << 12; + $border1 |= $this->_left_color << 16; + $border1 |= $this->_right_color << 23; + + $diagonalDirection = $this->_style->getBorders()->getDiagonalDirection(); + $diag_tl_to_rb = $diagonalDirection == PHPExcel_Style_Borders::DIAGONAL_BOTH + || $diagonalDirection == PHPExcel_Style_Borders::DIAGONAL_DOWN; + $diag_tr_to_lb = $diagonalDirection == PHPExcel_Style_Borders::DIAGONAL_BOTH + || $diagonalDirection == PHPExcel_Style_Borders::DIAGONAL_UP; + $border1 |= $diag_tl_to_rb << 30; + $border1 |= $diag_tr_to_lb << 31; + + $border2 = $this->_top_color; // Border color + $border2 |= $this->_bottom_color << 7; + $border2 |= $this->_diag_color << 14; + $border2 |= self::_mapBorderStyle($this->_style->getBorders()->getDiagonal()->getBorderStyle()) << 21; + $border2 |= self::_mapFillType($this->_style->getFill()->getFillType()) << 26; + + $header = pack("vv", $record, $length); + + //BIFF8 options: identation, shrinkToFit and text direction + $biff8_options = $this->_style->getAlignment()->getIndent(); + $biff8_options |= (int) $this->_style->getAlignment()->getShrinkToFit() << 4; + + $data = pack("vvvC", $ifnt, $ifmt, $style, $align); + $data .= pack("CCC" + , self::_mapTextRotation($this->_style->getAlignment()->getTextRotation()) + , $biff8_options + , $used_attrib + ); + $data .= pack("VVv", $border1, $border2, $icv); + + return($header . $data); + } + + /** + * Is this a style XF ? + * + * @param boolean $value + */ + public function setIsStyleXf($value) + { + $this->_isStyleXf = $value; + } + + /** + * Sets the cell's bottom border color + * + * @access public + * @param int $colorIndex Color index + */ + function setBottomColor($colorIndex) + { + $this->_bottom_color = $colorIndex; + } + + /** + * Sets the cell's top border color + * + * @access public + * @param int $colorIndex Color index + */ + function setTopColor($colorIndex) + { + $this->_top_color = $colorIndex; + } + + /** + * Sets the cell's left border color + * + * @access public + * @param int $colorIndex Color index + */ + function setLeftColor($colorIndex) + { + $this->_left_color = $colorIndex; + } + + /** + * Sets the cell's right border color + * + * @access public + * @param int $colorIndex Color index + */ + function setRightColor($colorIndex) + { + $this->_right_color = $colorIndex; + } + + /** + * Sets the cell's diagonal border color + * + * @access public + * @param int $colorIndex Color index + */ + function setDiagColor($colorIndex) + { + $this->_diag_color = $colorIndex; + } + + + /** + * Sets the cell's foreground color + * + * @access public + * @param int $colorIndex Color index + */ + function setFgColor($colorIndex) + { + $this->_fg_color = $colorIndex; + } + + /** + * Sets the cell's background color + * + * @access public + * @param int $colorIndex Color index + */ + function setBgColor($colorIndex) + { + $this->_bg_color = $colorIndex; + } + + /** + * Sets the index to the number format record + * It can be date, time, currency, etc... + * + * @access public + * @param integer $numberFormatIndex Index to format record + */ + function setNumberFormatIndex($numberFormatIndex) + { + $this->_numberFormatIndex = $numberFormatIndex; + } + + /** + * Set the font index. + * + * @param int $value Font index, note that value 4 does not exist + */ + public function setFontIndex($value) + { + $this->_fontIndex = $value; + } + + /** + * Map of BIFF2-BIFF8 codes for border styles + * @static array of int + * + */ + private static $_mapBorderStyle = array ( PHPExcel_Style_Border::BORDER_NONE => 0x00, + PHPExcel_Style_Border::BORDER_THIN => 0x01, + PHPExcel_Style_Border::BORDER_MEDIUM => 0x02, + PHPExcel_Style_Border::BORDER_DASHED => 0x03, + PHPExcel_Style_Border::BORDER_DOTTED => 0x04, + PHPExcel_Style_Border::BORDER_THICK => 0x05, + PHPExcel_Style_Border::BORDER_DOUBLE => 0x06, + PHPExcel_Style_Border::BORDER_HAIR => 0x07, + PHPExcel_Style_Border::BORDER_MEDIUMDASHED => 0x08, + PHPExcel_Style_Border::BORDER_DASHDOT => 0x09, + PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT => 0x0A, + PHPExcel_Style_Border::BORDER_DASHDOTDOT => 0x0B, + PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT => 0x0C, + PHPExcel_Style_Border::BORDER_SLANTDASHDOT => 0x0D, + ); + + /** + * Map border style + * + * @param string $borderStyle + * @return int + */ + private static function _mapBorderStyle($borderStyle) { + if (isset(self::$_mapBorderStyle[$borderStyle])) + return self::$_mapBorderStyle[$borderStyle]; + return 0x00; + } + + /** + * Map of BIFF2-BIFF8 codes for fill types + * @static array of int + * + */ + private static $_mapFillType = array( PHPExcel_Style_Fill::FILL_NONE => 0x00, + PHPExcel_Style_Fill::FILL_SOLID => 0x01, + PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY => 0x02, + PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY => 0x03, + PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY => 0x04, + PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL => 0x05, + PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL => 0x06, + PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN => 0x07, + PHPExcel_Style_Fill::FILL_PATTERN_DARKUP => 0x08, + PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID => 0x09, + PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS => 0x0A, + PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL => 0x0B, + PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL => 0x0C, + PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN => 0x0D, + PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP => 0x0E, + PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID => 0x0F, + PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS => 0x10, + PHPExcel_Style_Fill::FILL_PATTERN_GRAY125 => 0x11, + PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625 => 0x12, + PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR => 0x00, // does not exist in BIFF8 + PHPExcel_Style_Fill::FILL_GRADIENT_PATH => 0x00, // does not exist in BIFF8 + ); + /** + * Map fill type + * + * @param string $fillType + * @return int + */ + private static function _mapFillType($fillType) { + if (isset(self::$_mapFillType[$fillType])) + return self::$_mapFillType[$fillType]; + return 0x00; + } + + /** + * Map of BIFF2-BIFF8 codes for horizontal alignment + * @static array of int + * + */ + private static $_mapHAlign = array( PHPExcel_Style_Alignment::HORIZONTAL_GENERAL => 0, + PHPExcel_Style_Alignment::HORIZONTAL_LEFT => 1, + PHPExcel_Style_Alignment::HORIZONTAL_CENTER => 2, + PHPExcel_Style_Alignment::HORIZONTAL_RIGHT => 3, + PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY => 5, + PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS => 6, + ); + /** + * Map to BIFF2-BIFF8 codes for horizontal alignment + * + * @param string $hAlign + * @return int + */ + private function _mapHAlign($hAlign) + { + if (isset(self::$_mapHAlign[$hAlign])) + return self::$_mapHAlign[$hAlign]; + return 0; + } + + /** + * Map of BIFF2-BIFF8 codes for vertical alignment + * @static array of int + * + */ + private static $_mapVAlign = array( PHPExcel_Style_Alignment::VERTICAL_TOP => 0, + PHPExcel_Style_Alignment::VERTICAL_CENTER => 1, + PHPExcel_Style_Alignment::VERTICAL_BOTTOM => 2, + PHPExcel_Style_Alignment::VERTICAL_JUSTIFY => 3, + ); + /** + * Map to BIFF2-BIFF8 codes for vertical alignment + * + * @param string $vAlign + * @return int + */ + private static function _mapVAlign($vAlign) { + if (isset(self::$_mapVAlign[$vAlign])) + return self::$_mapVAlign[$vAlign]; + return 2; + } + + /** + * Map to BIFF8 codes for text rotation angle + * + * @param int $textRotation + * @return int + */ + private static function _mapTextRotation($textRotation) { + if ($textRotation >= 0) { + return $textRotation; + } + if ($textRotation == -165) { + return 255; + } + if ($textRotation < 0) { + return 90 - $textRotation; + } + } + + /** + * Map locked + * + * @param string + * @return int + */ + private static function _mapLocked($locked) { + switch ($locked) { + case PHPExcel_Style_Protection::PROTECTION_INHERIT: return 1; + case PHPExcel_Style_Protection::PROTECTION_PROTECTED: return 1; + case PHPExcel_Style_Protection::PROTECTION_UNPROTECTED: return 0; + default: return 1; + } + } + + /** + * Map hidden + * + * @param string + * @return int + */ + private static function _mapHidden($hidden) { + switch ($hidden) { + case PHPExcel_Style_Protection::PROTECTION_INHERIT: return 0; + case PHPExcel_Style_Protection::PROTECTION_PROTECTED: return 1; + case PHPExcel_Style_Protection::PROTECTION_UNPROTECTED: return 0; + default: return 0; + } + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/HTML.php b/plugins/excel_reader/Classes/PHPExcel/Writer/HTML.php new file mode 100755 index 0000000..f0aafaf --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/HTML.php @@ -0,0 +1,1377 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_HTML + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_HTML implements PHPExcel_Writer_IWriter { + /** + * PHPExcel object + * + * @var PHPExcel + */ + protected $_phpExcel; + + /** + * Sheet index to write + * + * @var int + */ + private $_sheetIndex = 0; + + /** + * Pre-calculate formulas + * + * @var boolean + */ + private $_preCalculateFormulas = true; + + /** + * Images root + * + * @var string + */ + private $_imagesRoot = '.'; + + /** + * Use inline CSS? + * + * @var boolean + */ + private $_useInlineCss = false; + + /** + * Array of CSS styles + * + * @var array + */ + private $_cssStyles = null; + + /** + * Array of column widths in points + * + * @var array + */ + private $_columnWidths = null; + + /** + * Default font + * + * @var PHPExcel_Style_Font + */ + private $_defaultFont; + + /** + * Flag whether spans have been calculated + * + * @var boolean + */ + private $_spansAreCalculated = false; + + /** + * Excel cells that should not be written as HTML cells + * + * @var array + */ + private $_isSpannedCell = array(); + + /** + * Excel cells that are upper-left corner in a cell merge + * + * @var array + */ + private $_isBaseCell = array(); + + /** + * Excel rows that should not be written as HTML rows + * + * @var array + */ + private $_isSpannedRow = array(); + + /** + * Is the current writer creating PDF? + * + * @var boolean + */ + protected $_isPdf = false; + + /** + * Generate the Navigation block + * + * @var boolean + */ + private $_generateSheetNavigationBlock = true; + + /** + * Create a new PHPExcel_Writer_HTML + * + * @param PHPExcel $phpExcel PHPExcel object + */ + public function __construct(PHPExcel $phpExcel) { + $this->_phpExcel = $phpExcel; + $this->_defaultFont = $this->_phpExcel->getDefaultStyle()->getFont(); + } + + /** + * Save PHPExcel to file + * + * @param string $pFilename + * @throws Exception + */ + public function save($pFilename = null) { + // garbage collect + $this->_phpExcel->garbageCollect(); + + $saveDebugLog = PHPExcel_Calculation::getInstance()->writeDebugLog; + PHPExcel_Calculation::getInstance()->writeDebugLog = false; + $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); + PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); + + // Build CSS + $this->buildCSS(!$this->_useInlineCss); + + // Open file + $fileHandle = fopen($pFilename, 'wb+'); + if ($fileHandle === false) { + throw new Exception("Could not open file $pFilename for writing."); + } + + // Write headers + fwrite($fileHandle, $this->generateHTMLHeader(!$this->_useInlineCss)); + + // Write navigation (tabs) + if ((!$this->_isPdf) && ($this->_generateSheetNavigationBlock)) { + fwrite($fileHandle, $this->generateNavigation()); + } + + // Write data + fwrite($fileHandle, $this->generateSheetData()); + + // Write footer + fwrite($fileHandle, $this->generateHTMLFooter()); + + // Close file + fclose($fileHandle); + + PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType); + PHPExcel_Calculation::getInstance()->writeDebugLog = $saveDebugLog; + } + + /** + * Map VAlign + * + * @param string $vAlign Vertical alignment + * @return string + */ + private function _mapVAlign($vAlign) { + switch ($vAlign) { + case PHPExcel_Style_Alignment::VERTICAL_BOTTOM: return 'bottom'; + case PHPExcel_Style_Alignment::VERTICAL_TOP: return 'top'; + case PHPExcel_Style_Alignment::VERTICAL_CENTER: + case PHPExcel_Style_Alignment::VERTICAL_JUSTIFY: return 'middle'; + default: return 'baseline'; + } + } + + /** + * Map HAlign + * + * @param string $hAlign Horizontal alignment + * @return string|false + */ + private function _mapHAlign($hAlign) { + switch ($hAlign) { + case PHPExcel_Style_Alignment::HORIZONTAL_GENERAL: return false; + case PHPExcel_Style_Alignment::HORIZONTAL_LEFT: return 'left'; + case PHPExcel_Style_Alignment::HORIZONTAL_RIGHT: return 'right'; + case PHPExcel_Style_Alignment::HORIZONTAL_CENTER: + case PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS: return 'center'; + case PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY: return 'justify'; + default: return false; + } + } + + /** + * Map border style + * + * @param int $borderStyle Sheet index + * @return string + */ + private function _mapBorderStyle($borderStyle) { + switch ($borderStyle) { + case PHPExcel_Style_Border::BORDER_NONE: return 'none'; + case PHPExcel_Style_Border::BORDER_DASHDOT: return '1px dashed'; + case PHPExcel_Style_Border::BORDER_DASHDOTDOT: return '1px dotted'; + case PHPExcel_Style_Border::BORDER_DASHED: return '1px dashed'; + case PHPExcel_Style_Border::BORDER_DOTTED: return '1px dotted'; + case PHPExcel_Style_Border::BORDER_DOUBLE: return '3px double'; + case PHPExcel_Style_Border::BORDER_HAIR: return '1px solid'; + case PHPExcel_Style_Border::BORDER_MEDIUM: return '2px solid'; + case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT: return '2px dashed'; + case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT: return '2px dotted'; + case PHPExcel_Style_Border::BORDER_MEDIUMDASHED: return '2px dashed'; + case PHPExcel_Style_Border::BORDER_SLANTDASHDOT: return '2px dashed'; + case PHPExcel_Style_Border::BORDER_THICK: return '3px solid'; + case PHPExcel_Style_Border::BORDER_THIN: return '1px solid'; + default: return '1px solid'; // map others to thin + } + } + + /** + * Get sheet index + * + * @return int + */ + public function getSheetIndex() { + return $this->_sheetIndex; + } + + /** + * Set sheet index + * + * @param int $pValue Sheet index + * @return PHPExcel_Writer_HTML + */ + public function setSheetIndex($pValue = 0) { + $this->_sheetIndex = $pValue; + return $this; + } + + /** + * Get sheet index + * + * @return boolean + */ + public function getGenerateSheetNavigationBlock() { + return $this->_generateSheetNavigationBlock; + } + + /** + * Set sheet index + * + * @param boolean $pValue Flag indicating whether the sheet navigation block should be generated or not + * @return PHPExcel_Writer_HTML + */ + public function setGenerateSheetNavigationBlock($pValue = true) { + $this->_generateSheetNavigationBlock = (bool) $pValue; + return $this; + } + + /** + * Write all sheets (resets sheetIndex to NULL) + */ + public function writeAllSheets() { + $this->_sheetIndex = null; + return $this; + } + + /** + * Generate HTML header + * + * @param boolean $pIncludeStyles Include styles? + * @return string + * @throws Exception + */ + public function generateHTMLHeader($pIncludeStyles = false) { + // PHPExcel object known? + if (is_null($this->_phpExcel)) { + throw new Exception('Internal PHPExcel object not set to an instance of an object.'); + } + + // Construct HTML + $properties = $this->_phpExcel->getProperties(); + $html = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">' . PHP_EOL; + $html .= '<!-- Generated by PHPExcel - http://www.phpexcel.net -->' . PHP_EOL; + $html .= '<html>' . PHP_EOL; + $html .= ' <head>' . PHP_EOL; + $html .= ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8">' . PHP_EOL; + if ($properties->getTitle() > '') + $html .= ' <title>' . htmlspecialchars($properties->getTitle()) . '</title>' . PHP_EOL; + + if ($properties->getCreator() > '') + $html .= ' <meta name="author" content="' . htmlspecialchars($properties->getCreator()) . '" />' . PHP_EOL; + if ($properties->getTitle() > '') + $html .= ' <meta name="title" content="' . htmlspecialchars($properties->getTitle()) . '" />' . PHP_EOL; + if ($properties->getDescription() > '') + $html .= ' <meta name="description" content="' . htmlspecialchars($properties->getDescription()) . '" />' . PHP_EOL; + if ($properties->getSubject() > '') + $html .= ' <meta name="subject" content="' . htmlspecialchars($properties->getSubject()) . '" />' . PHP_EOL; + if ($properties->getKeywords() > '') + $html .= ' <meta name="keywords" content="' . htmlspecialchars($properties->getKeywords()) . '" />' . PHP_EOL; + if ($properties->getCategory() > '') + $html .= ' <meta name="category" content="' . htmlspecialchars($properties->getCategory()) . '" />' . PHP_EOL; + if ($properties->getCompany() > '') + $html .= ' <meta name="company" content="' . htmlspecialchars($properties->getCompany()) . '" />' . PHP_EOL; + if ($properties->getManager() > '') + $html .= ' <meta name="manager" content="' . htmlspecialchars($properties->getManager()) . '" />' . PHP_EOL; + + if ($pIncludeStyles) { + $html .= $this->generateStyles(true); + } + + $html .= ' </head>' . PHP_EOL; + $html .= '' . PHP_EOL; + $html .= ' <body>' . PHP_EOL; + + // Return + return $html; + } + + /** + * Generate sheet data + * + * @return string + * @throws Exception + */ + public function generateSheetData() { + // PHPExcel object known? + if (is_null($this->_phpExcel)) { + throw new Exception('Internal PHPExcel object not set to an instance of an object.'); + } + + // Ensure that Spans have been calculated? + if (!$this->_spansAreCalculated) { + $this->_calculateSpans(); + } + + // Fetch sheets + $sheets = array(); + if (is_null($this->_sheetIndex)) { + $sheets = $this->_phpExcel->getAllSheets(); + } else { + $sheets[] = $this->_phpExcel->getSheet($this->_sheetIndex); + } + + // Construct HTML + $html = ''; + + // Loop all sheets + $sheetId = 0; + foreach ($sheets as $sheet) { + // Write table header + $html .= $this->_generateTableHeader($sheet); + + // Get worksheet dimension + $dimension = explode(':', $sheet->calculateWorksheetDimension()); + $dimension[0] = PHPExcel_Cell::coordinateFromString($dimension[0]); + $dimension[0][0] = PHPExcel_Cell::columnIndexFromString($dimension[0][0]) - 1; + $dimension[1] = PHPExcel_Cell::coordinateFromString($dimension[1]); + $dimension[1][0] = PHPExcel_Cell::columnIndexFromString($dimension[1][0]) - 1; + + // row min,max + $rowMin = $dimension[0][1]; + $rowMax = $dimension[1][1]; + + // calculate start of <tbody>, <thead> + $tbodyStart = $rowMin; + $tbodyEnd = $rowMax; + $theadStart = $theadEnd = 0; // default: no <thead> no </thead> + if ($sheet->getPageSetup()->isRowsToRepeatAtTopSet()) { + $rowsToRepeatAtTop = $sheet->getPageSetup()->getRowsToRepeatAtTop(); + + // we can only support repeating rows that start at top row + if ($rowsToRepeatAtTop[0] == 1) { + $theadStart = $rowsToRepeatAtTop[0]; + $theadEnd = $rowsToRepeatAtTop[1]; + $tbodyStart = $rowsToRepeatAtTop[1] + 1; + } + } + + // Loop through cells + $row = $rowMin-1; + while($row++ < $rowMax) { + // <thead> ? + if ($row == $theadStart) { + $html .= ' <thead>' . PHP_EOL; + } + + // <tbody> ? + if ($row == $tbodyStart) { + $html .= ' <tbody>' . PHP_EOL; + } + + // Write row if there are HTML table cells in it + if ( !isset($this->_isSpannedRow[$sheet->getParent()->getIndex($sheet)][$row]) ) { + // Start a new rowData + $rowData = array(); + // Loop through columns + $column = $dimension[0][0] - 1; + while($column++ < $dimension[1][0]) { + // Cell exists? + if ($sheet->cellExistsByColumnAndRow($column, $row)) { + $rowData[$column] = $sheet->getCellByColumnAndRow($column, $row); + } else { + $rowData[$column] = ''; + } + } + $html .= $this->_generateRow($sheet, $rowData, $row - 1); + } + + // </thead> ? + if ($row == $theadEnd) { + $html .= ' </thead>' . PHP_EOL; + } + + // </tbody> ? + if ($row == $tbodyEnd) { + $html .= ' </tbody>' . PHP_EOL; + } + } + + // Write table footer + $html .= $this->_generateTableFooter(); + + // Writing PDF? + if ($this->_isPdf) { + if (is_null($this->_sheetIndex) && $sheetId + 1 < $this->_phpExcel->getSheetCount()) { + $html .= '<div style="page-break-before:always" />'; + } + } + + // Next sheet + ++$sheetId; + } + + // Return + return $html; + } + + /** + * Generate sheet tabs + * + * @return string + * @throws Exception + */ + public function generateNavigation() + { + // PHPExcel object known? + if (is_null($this->_phpExcel)) { + throw new Exception('Internal PHPExcel object not set to an instance of an object.'); + } + + // Fetch sheets + $sheets = array(); + if (is_null($this->_sheetIndex)) { + $sheets = $this->_phpExcel->getAllSheets(); + } else { + $sheets[] = $this->_phpExcel->getSheet($this->_sheetIndex); + } + + // Construct HTML + $html = ''; + + // Only if there are more than 1 sheets + if (count($sheets) > 1) { + // Loop all sheets + $sheetId = 0; + + $html .= '<ul class="navigation">' . PHP_EOL; + + foreach ($sheets as $sheet) { + $html .= ' <li class="sheet' . $sheetId . '"><a href="#sheet' . $sheetId . '">' . $sheet->getTitle() . '</a></li>' . PHP_EOL; + ++$sheetId; + } + + $html .= '</ul>' . PHP_EOL; + } + + return $html; + } + + /** + * Generate image tag in cell + * + * @param PHPExcel_Worksheet $pSheet PHPExcel_Worksheet + * @param string $coordinates Cell coordinates + * @return string + * @throws Exception + */ + private function _writeImageTagInCell(PHPExcel_Worksheet $pSheet, $coordinates) { + // Construct HTML + $html = ''; + + // Write images + foreach ($pSheet->getDrawingCollection() as $drawing) { + if ($drawing instanceof PHPExcel_Worksheet_Drawing) { + if ($drawing->getCoordinates() == $coordinates) { + $filename = $drawing->getPath(); + + // Strip off eventual '.' + if (substr($filename, 0, 1) == '.') { + $filename = substr($filename, 1); + } + + // Prepend images root + $filename = $this->getImagesRoot() . $filename; + + // Strip off eventual '.' + if (substr($filename, 0, 1) == '.' && substr($filename, 0, 2) != './') { + $filename = substr($filename, 1); + } + + // Convert UTF8 data to PCDATA + $filename = htmlspecialchars($filename); + + $html .= PHP_EOL; + $html .= ' <img style="position: relative; left: ' . $drawing->getOffsetX() . 'px; top: ' . $drawing->getOffsetY() . 'px; width: ' . $drawing->getWidth() . 'px; height: ' . $drawing->getHeight() . 'px;" src="' . $filename . '" border="0" width="' . $drawing->getWidth() . '" height="' . $drawing->getHeight() . '" />' . PHP_EOL; + } + } + } + + // Return + return $html; + } + + /** + * Generate CSS styles + * + * @param boolean $generateSurroundingHTML Generate surrounding HTML tags? (<style> and </style>) + * @return string + * @throws Exception + */ + public function generateStyles($generateSurroundingHTML = true) { + // PHPExcel object known? + if (is_null($this->_phpExcel)) { + throw new Exception('Internal PHPExcel object not set to an instance of an object.'); + } + + // Build CSS + $css = $this->buildCSS($generateSurroundingHTML); + + // Construct HTML + $html = ''; + + // Start styles + if ($generateSurroundingHTML) { + $html .= ' <style type="text/css">' . PHP_EOL; + $html .= ' html { ' . $this->_assembleCSS($css['html']) . ' }' . PHP_EOL; + } + + // Write all other styles + foreach ($css as $styleName => $styleDefinition) { + if ($styleName != 'html') { + $html .= ' ' . $styleName . ' { ' . $this->_assembleCSS($styleDefinition) . ' }' . PHP_EOL; + } + } + + // End styles + if ($generateSurroundingHTML) { + $html .= ' </style>' . PHP_EOL; + } + + // Return + return $html; + } + + /** + * Build CSS styles + * + * @param boolean $generateSurroundingHTML Generate surrounding HTML style? (html { }) + * @return array + * @throws Exception + */ + public function buildCSS($generateSurroundingHTML = true) { + // PHPExcel object known? + if (is_null($this->_phpExcel)) { + throw new Exception('Internal PHPExcel object not set to an instance of an object.'); + } + + // Cached? + if (!is_null($this->_cssStyles)) { + return $this->_cssStyles; + } + + // Ensure that spans have been calculated + if (!$this->_spansAreCalculated) { + $this->_calculateSpans(); + } + + // Construct CSS + $css = array(); + + // Start styles + if ($generateSurroundingHTML) { + // html { } + $css['html']['font-family'] = 'Calibri, Arial, Helvetica, sans-serif'; + $css['html']['font-size'] = '11pt'; + $css['html']['background-color'] = 'white'; + } + + + // table { } + $css['table']['border-collapse'] = 'collapse'; + if (!$this->_isPdf) { + $css['table']['page-break-after'] = 'always'; + } + + // .gridlines td { } + $css['.gridlines td']['border'] = '1px dotted black'; + + // .b {} + $css['.b']['text-align'] = 'center'; // BOOL + + // .e {} + $css['.e']['text-align'] = 'center'; // ERROR + + // .f {} + $css['.f']['text-align'] = 'right'; // FORMULA + + // .inlineStr {} + $css['.inlineStr']['text-align'] = 'left'; // INLINE + + // .n {} + $css['.n']['text-align'] = 'right'; // NUMERIC + + // .s {} + $css['.s']['text-align'] = 'left'; // STRING + + // Calculate cell style hashes + foreach ($this->_phpExcel->getCellXfCollection() as $index => $style) { + $css['td.style' . $index] = $this->_createCSSStyle( $style ); + } + + // Fetch sheets + $sheets = array(); + if (is_null($this->_sheetIndex)) { + $sheets = $this->_phpExcel->getAllSheets(); + } else { + $sheets[] = $this->_phpExcel->getSheet($this->_sheetIndex); + } + + // Build styles per sheet + foreach ($sheets as $sheet) { + // Calculate hash code + $sheetIndex = $sheet->getParent()->getIndex($sheet); + + // Build styles + // Calculate column widths + $sheet->calculateColumnWidths(); + + // col elements, initialize + $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()) - 1; + $column = -1; + while($column++ < $highestColumnIndex) { + $this->_columnWidths[$sheetIndex][$column] = 42; // approximation + $css['table.sheet' . $sheetIndex . ' col.col' . $column]['width'] = '42pt'; + } + + // col elements, loop through columnDimensions and set width + foreach ($sheet->getColumnDimensions() as $columnDimension) { + if (($width = PHPExcel_Shared_Drawing::cellDimensionToPixels($columnDimension->getWidth(), $this->_defaultFont)) >= 0) { + $width = PHPExcel_Shared_Drawing::pixelsToPoints($width); + $column = PHPExcel_Cell::columnIndexFromString($columnDimension->getColumnIndex()) - 1; + $this->_columnWidths[$sheetIndex][$column] = $width; + $css['table.sheet' . $sheetIndex . ' col.col' . $column]['width'] = $width . 'pt'; + + if ($columnDimension->getVisible() === false) { + $css['table.sheet' . $sheetIndex . ' col.col' . $column]['visibility'] = 'collapse'; + $css['table.sheet' . $sheetIndex . ' col.col' . $column]['*display'] = 'none'; // target IE6+7 + } + } + } + + // Default row height + $rowDimension = $sheet->getDefaultRowDimension(); + + // table.sheetN tr { } + $css['table.sheet' . $sheetIndex . ' tr'] = array(); + + if ($rowDimension->getRowHeight() == -1) { + $pt_height = PHPExcel_Shared_Font::getDefaultRowHeightByFont($this->_phpExcel->getDefaultStyle()->getFont()); + } else { + $pt_height = $rowDimension->getRowHeight(); + } + $css['table.sheet' . $sheetIndex . ' tr']['height'] = $pt_height . 'pt'; + if ($rowDimension->getVisible() === false) { + $css['table.sheet' . $sheetIndex . ' tr']['display'] = 'none'; + $css['table.sheet' . $sheetIndex . ' tr']['visibility'] = 'hidden'; + } + + // Calculate row heights + foreach ($sheet->getRowDimensions() as $rowDimension) { + $row = $rowDimension->getRowIndex() - 1; + + // table.sheetN tr.rowYYYYYY { } + $css['table.sheet' . $sheetIndex . ' tr.row' . $row] = array(); + + if ($rowDimension->getRowHeight() == -1) { + $pt_height = PHPExcel_Shared_Font::getDefaultRowHeightByFont($this->_phpExcel->getDefaultStyle()->getFont()); + } else { + $pt_height = $rowDimension->getRowHeight(); + } + $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['height'] = $pt_height . 'pt'; + if ($rowDimension->getVisible() === false) { + $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['display'] = 'none'; + $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['visibility'] = 'hidden'; + } + } + } + + // Cache + if (is_null($this->_cssStyles)) { + $this->_cssStyles = $css; + } + + // Return + return $css; + } + + /** + * Create CSS style + * + * @param PHPExcel_Style $pStyle PHPExcel_Style + * @return array + */ + private function _createCSSStyle(PHPExcel_Style $pStyle) { + // Construct CSS + $css = ''; + + // Create CSS + $css = array_merge( + $this->_createCSSStyleAlignment($pStyle->getAlignment()) + , $this->_createCSSStyleBorders($pStyle->getBorders()) + , $this->_createCSSStyleFont($pStyle->getFont()) + , $this->_createCSSStyleFill($pStyle->getFill()) + ); + + // Return + return $css; + } + + /** + * Create CSS style (PHPExcel_Style_Alignment) + * + * @param PHPExcel_Style_Alignment $pStyle PHPExcel_Style_Alignment + * @return array + */ + private function _createCSSStyleAlignment(PHPExcel_Style_Alignment $pStyle) { + // Construct CSS + $css = array(); + + // Create CSS + $css['vertical-align'] = $this->_mapVAlign($pStyle->getVertical()); + if ($textAlign = $this->_mapHAlign($pStyle->getHorizontal())) { + $css['text-align'] = $textAlign; + if(in_array($textAlign,array('left','right'))) + $css['padding-'.$textAlign] = (string)((int)$pStyle->getIndent() * 9).'px'; + } + + // Return + return $css; + } + + /** + * Create CSS style (PHPExcel_Style_Font) + * + * @param PHPExcel_Style_Font $pStyle PHPExcel_Style_Font + * @return array + */ + private function _createCSSStyleFont(PHPExcel_Style_Font $pStyle) { + // Construct CSS + $css = array(); + + // Create CSS + if ($pStyle->getBold()) { + $css['font-weight'] = 'bold'; + } + if ($pStyle->getUnderline() != PHPExcel_Style_Font::UNDERLINE_NONE && $pStyle->getStrikethrough()) { + $css['text-decoration'] = 'underline line-through'; + } else if ($pStyle->getUnderline() != PHPExcel_Style_Font::UNDERLINE_NONE) { + $css['text-decoration'] = 'underline'; + } else if ($pStyle->getStrikethrough()) { + $css['text-decoration'] = 'line-through'; + } + if ($pStyle->getItalic()) { + $css['font-style'] = 'italic'; + } + + $css['color'] = '#' . $pStyle->getColor()->getRGB(); + $css['font-family'] = '\'' . $pStyle->getName() . '\''; + $css['font-size'] = $pStyle->getSize() . 'pt'; + + // Return + return $css; + } + + /** + * Create CSS style (PHPExcel_Style_Borders) + * + * @param PHPExcel_Style_Borders $pStyle PHPExcel_Style_Borders + * @return array + */ + private function _createCSSStyleBorders(PHPExcel_Style_Borders $pStyle) { + // Construct CSS + $css = array(); + + // Create CSS + $css['border-bottom'] = $this->_createCSSStyleBorder($pStyle->getBottom()); + $css['border-top'] = $this->_createCSSStyleBorder($pStyle->getTop()); + $css['border-left'] = $this->_createCSSStyleBorder($pStyle->getLeft()); + $css['border-right'] = $this->_createCSSStyleBorder($pStyle->getRight()); + + // Return + return $css; + } + + /** + * Create CSS style (PHPExcel_Style_Border) + * + * @param PHPExcel_Style_Border $pStyle PHPExcel_Style_Border + * @return string + */ + private function _createCSSStyleBorder(PHPExcel_Style_Border $pStyle) { + // Create CSS + $css = $this->_mapBorderStyle($pStyle->getBorderStyle()) . ' #' . $pStyle->getColor()->getRGB(); + + // Return + return $css; + } + + /** + * Create CSS style (PHPExcel_Style_Fill) + * + * @param PHPExcel_Style_Fill $pStyle PHPExcel_Style_Fill + * @return array + */ + private function _createCSSStyleFill(PHPExcel_Style_Fill $pStyle) { + // Construct HTML + $css = array(); + + // Create CSS + $value = $pStyle->getFillType() == PHPExcel_Style_Fill::FILL_NONE ? + 'white' : '#' . $pStyle->getStartColor()->getRGB(); + $css['background-color'] = $value; + + // Return + return $css; + } + + /** + * Generate HTML footer + */ + public function generateHTMLFooter() { + // Construct HTML + $html = ''; + $html .= ' </body>' . PHP_EOL; + $html .= '</html>' . PHP_EOL; + + // Return + return $html; + } + + /** + * Generate table header + * + * @param PHPExcel_Worksheet $pSheet The worksheet for the table we are writing + * @return string + * @throws Exception + */ + private function _generateTableHeader($pSheet) { + $sheetIndex = $pSheet->getParent()->getIndex($pSheet); + + // Construct HTML + $html = ''; + + if (!$this->_useInlineCss) { + $gridlines = $pSheet->getShowGridLines() ? ' gridlines' : ''; + $html .= ' <table border="0" cellpadding="0" cellspacing="0" id="sheet' . $sheetIndex . '" class="sheet' . $sheetIndex . $gridlines . '">' . PHP_EOL; + } else { + $style = isset($this->_cssStyles['table']) ? + $this->_assembleCSS($this->_cssStyles['table']) : ''; + + if ($this->_isPdf && $pSheet->getShowGridLines()) { + $html .= ' <table border="1" cellpadding="1" id="sheet' . $sheetIndex . '" cellspacing="4" style="' . $style . '">' . PHP_EOL; + } else { + $html .= ' <table border="0" cellpadding="1" id="sheet' . $sheetIndex . '" cellspacing="4" style="' . $style . '">' . PHP_EOL; + } + } + + // Write <col> elements + $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($pSheet->getHighestColumn()) - 1; + $i = -1; + while($i++ < $highestColumnIndex) { + if (!$this->_isPdf) { + if (!$this->_useInlineCss) { + $html .= ' <col class="col' . $i . '">' . PHP_EOL; + } else { + $style = isset($this->_cssStyles['table.sheet' . $sheetIndex . ' col.col' . $i]) ? + $this->_assembleCSS($this->_cssStyles['table.sheet' . $sheetIndex . ' col.col' . $i]) : ''; + $html .= ' <col style="' . $style . '">' . PHP_EOL; + } + } + } + + // Return + return $html; + } + + /** + * Generate table footer + * + * @throws Exception + */ + private function _generateTableFooter() { + // Construct HTML + $html = ''; + $html .= ' </table>' . PHP_EOL; + + // Return + return $html; + } + + /** + * Generate row + * + * @param PHPExcel_Worksheet $pSheet PHPExcel_Worksheet + * @param array $pValues Array containing cells in a row + * @param int $pRow Row number (0-based) + * @return string + * @throws Exception + */ + private function _generateRow(PHPExcel_Worksheet $pSheet, $pValues = null, $pRow = 0) { + if (is_array($pValues)) { + // Construct HTML + $html = ''; + + // Sheet index + $sheetIndex = $pSheet->getParent()->getIndex($pSheet); + + // DomPDF and breaks + if ($this->_isPdf && count($pSheet->getBreaks()) > 0) { + $breaks = $pSheet->getBreaks(); + + // check if a break is needed before this row + if (isset($breaks['A' . $pRow])) { + // close table: </table> + $html .= $this->_generateTableFooter(); + + // insert page break + $html .= '<div style="page-break-before:always" />'; + + // open table again: <table> + <col> etc. + $html .= $this->_generateTableHeader($pSheet); + } + } + + // Write row start + if (!$this->_useInlineCss) { + $html .= ' <tr class="row' . $pRow . '">' . PHP_EOL; + } else { + $style = isset($this->_cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]) + ? $this->_assembleCSS($this->_cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]) : ''; + + $html .= ' <tr style="' . $style . '">' . PHP_EOL; + } + + // Write cells + $colNum = 0; + foreach ($pValues as $cell) { + $coordinate = PHPExcel_Cell::stringFromColumnIndex($colNum) . ($pRow + 1); + + if (!$this->_useInlineCss) { + $cssClass = ''; + $cssClass = 'column' . $colNum; + } else { + $cssClass = array(); + if (isset($this->_cssStyles['table.sheet' . $sheetIndex . ' td.column' . $colNum])) { + $this->_cssStyles['table.sheet' . $sheetIndex . ' td.column' . $colNum]; + } + } + $colSpan = 1; + $rowSpan = 1; + + // initialize + $cellData = ''; + + // PHPExcel_Cell + if ($cell instanceof PHPExcel_Cell) { + if (is_null($cell->getParent())) { + $cell->attach($pSheet); + } + // Value + if ($cell->getValue() instanceof PHPExcel_RichText) { + // Loop through rich text elements + $elements = $cell->getValue()->getRichTextElements(); + foreach ($elements as $element) { + // Rich text start? + if ($element instanceof PHPExcel_RichText_Run) { + $cellData .= '<span style="' . $this->_assembleCSS($this->_createCSSStyleFont($element->getFont())) . '">'; + + if ($element->getFont()->getSuperScript()) { + $cellData .= '<sup>'; + } else if ($element->getFont()->getSubScript()) { + $cellData .= '<sub>'; + } + } + + // Convert UTF8 data to PCDATA + $cellText = $element->getText(); + $cellData .= htmlspecialchars($cellText); + + if ($element instanceof PHPExcel_RichText_Run) { + if ($element->getFont()->getSuperScript()) { + $cellData .= '</sup>'; + } else if ($element->getFont()->getSubScript()) { + $cellData .= '</sub>'; + } + + $cellData .= '</span>'; + } + } + } else { + if ($this->_preCalculateFormulas) { + $cellData = PHPExcel_Style_NumberFormat::toFormattedString( + $cell->getCalculatedValue(), + $pSheet->getParent()->getCellXfByIndex( $cell->getXfIndex() )->getNumberFormat()->getFormatCode(), + array($this, 'formatColor') + ); + } else { + $cellData = PHPExcel_Style_NumberFormat::ToFormattedString( + $cell->getValue(), + $pSheet->getParent()->getCellXfByIndex( $cell->getXfIndex() )->getNumberFormat()->getFormatCode(), + array($this, 'formatColor') + ); + } + $cellData = htmlspecialchars($cellData); + if ($pSheet->getParent()->getCellXfByIndex( $cell->getXfIndex() )->getFont()->getSuperScript()) { + $cellData = '<sup>'.$cellData.'</sup>'; + } elseif ($pSheet->getParent()->getCellXfByIndex( $cell->getXfIndex() )->getFont()->getSubScript()) { + $cellData = '<sub>'.$cellData.'</sub>'; + } + } + + // Converts the cell content so that spaces occuring at beginning of each new line are replaced by &nbsp; + // Example: " Hello\n to the world" is converted to "&nbsp;&nbsp;Hello\n&nbsp;to the world" + $cellData = preg_replace("/(?m)(?:^|\\G) /", '&nbsp;', $cellData); + + // convert newline "\n" to '<br>' + $cellData = nl2br($cellData); + + // Extend CSS class? + if (!$this->_useInlineCss) { + $cssClass .= ' style' . $cell->getXfIndex(); + $cssClass .= ' ' . $cell->getDataType(); + } else { + if (isset($this->_cssStyles['td.style' . $cell->getXfIndex()])) { + $cssClass = array_merge($cssClass, $this->_cssStyles['td.style' . $cell->getXfIndex()]); + } + + // General horizontal alignment: Actual horizontal alignment depends on dataType + $sharedStyle = $pSheet->getParent()->getCellXfByIndex( $cell->getXfIndex() ); + if ($sharedStyle->getAlignment()->getHorizontal() == PHPExcel_Style_Alignment::HORIZONTAL_GENERAL + && isset($this->_cssStyles['.' . $cell->getDataType()]['text-align'])) + { + $cssClass['text-align'] = $this->_cssStyles['.' . $cell->getDataType()]['text-align']; + } + } + } + + // Hyperlink? + if ($pSheet->hyperlinkExists($coordinate) && !$pSheet->getHyperlink($coordinate)->isInternal()) { + $cellData = '<a href="' . htmlspecialchars($pSheet->getHyperlink($coordinate)->getUrl()) . '" title="' . htmlspecialchars($pSheet->getHyperlink($coordinate)->getTooltip()) . '">' . $cellData . '</a>'; + } + + // Should the cell be written or is it swallowed by a rowspan or colspan? + $writeCell = ! ( isset($this->_isSpannedCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum]) + && $this->_isSpannedCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum] ); + + // Colspan and Rowspan + $colspan = 1; + $rowspan = 1; + if (isset($this->_isBaseCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum])) { + $spans = $this->_isBaseCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum]; + $rowSpan = $spans['rowspan']; + $colSpan = $spans['colspan']; + } + + // Write + if ($writeCell) { + // Column start + $html .= ' <td'; + if (!$this->_useInlineCss) { + $html .= ' class="' . $cssClass . '"'; + } else { + //** Necessary redundant code for the sake of PHPExcel_Writer_PDF ** + // We must explicitly write the width of the <td> element because TCPDF + // does not recognize e.g. <col style="width:42pt"> + $width = 0; + $i = $colNum - 1; + $e = $colNum + $colSpan - 1; + while($i++ < $e) { + if (isset($this->_columnWidths[$sheetIndex][$i])) { + $width += $this->_columnWidths[$sheetIndex][$i]; + } + } + $cssClass['width'] = $width . 'pt'; + + // We must also explicitly write the height of the <td> element because TCPDF + // does not recognize e.g. <tr style="height:50pt"> + if (isset($this->_cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]['height'])) { + $height = $this->_cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]['height']; + $cssClass['height'] = $height; + } + //** end of redundant code ** + + $html .= ' style="' . $this->_assembleCSS($cssClass) . '"'; + } + if ($colSpan > 1) { + $html .= ' colspan="' . $colSpan . '"'; + } + if ($rowSpan > 1) { + $html .= ' rowspan="' . $rowSpan . '"'; + } + $html .= '>'; + + // Image? + $html .= $this->_writeImageTagInCell($pSheet, $coordinate); + + // Cell data + $html .= $cellData; + + // Column end + $html .= '</td>' . PHP_EOL; + } + + // Next column + ++$colNum; + } + + // Write row end + $html .= ' </tr>' . PHP_EOL; + + // Return + return $html; + } else { + throw new Exception("Invalid parameters passed."); + } + } + + /** + * Takes array where of CSS properties / values and converts to CSS string + * + * @param array + * @return string + */ + private function _assembleCSS($pValue = array()) + { + $pairs = array(); + foreach ($pValue as $property => $value) { + $pairs[] = $property . ':' . $value; + } + $string = implode('; ', $pairs); + + return $string; + } + + /** + * Get Pre-Calculate Formulas + * + * @return boolean + */ + public function getPreCalculateFormulas() { + return $this->_preCalculateFormulas; + } + + /** + * Set Pre-Calculate Formulas + * + * @param boolean $pValue Pre-Calculate Formulas? + * @return PHPExcel_Writer_HTML + */ + public function setPreCalculateFormulas($pValue = true) { + $this->_preCalculateFormulas = $pValue; + return $this; + } + + /** + * Get images root + * + * @return string + */ + public function getImagesRoot() { + return $this->_imagesRoot; + } + + /** + * Set images root + * + * @param string $pValue + * @return PHPExcel_Writer_HTML + */ + public function setImagesRoot($pValue = '.') { + $this->_imagesRoot = $pValue; + return $this; + } + + /** + * Get use inline CSS? + * + * @return boolean + */ + public function getUseInlineCss() { + return $this->_useInlineCss; + } + + /** + * Set use inline CSS? + * + * @param boolean $pValue + * @return PHPExcel_Writer_HTML + */ + public function setUseInlineCss($pValue = false) { + $this->_useInlineCss = $pValue; + return $this; + } + + /** + * Add color to formatted string as inline style + * + * @param string $pValue Plain formatted value without color + * @param string $pFormat Format code + * @return string + */ + public function formatColor($pValue, $pFormat) + { + // Color information, e.g. [Red] is always at the beginning + $color = null; // initialize + $matches = array(); + + $color_regex = '/^\\[[a-zA-Z]+\\]/'; + if (preg_match($color_regex, $pFormat, $matches)) { + $color = str_replace('[', '', $matches[0]); + $color = str_replace(']', '', $color); + $color = strtolower($color); + } + + // convert to PCDATA + $value = htmlspecialchars($pValue); + + // color span tag + if ($color !== null) { + $value = '<span style="color:' . $color . '">' . $value . '</span>'; + } + + return $value; + } + + /** + * Calculate information about HTML colspan and rowspan which is not always the same as Excel's + */ + private function _calculateSpans() + { + // Identify all cells that should be omitted in HTML due to cell merge. + // In HTML only the upper-left cell should be written and it should have + // appropriate rowspan / colspan attribute + $sheetIndexes = $this->_sheetIndex !== null ? + array($this->_sheetIndex) : range(0, $this->_phpExcel->getSheetCount() - 1); + + foreach ($sheetIndexes as $sheetIndex) { + $sheet = $this->_phpExcel->getSheet($sheetIndex); + + $candidateSpannedRow = array(); + + // loop through all Excel merged cells + foreach ($sheet->getMergeCells() as $cells) { + list($cells, ) = PHPExcel_Cell::splitRange($cells); + $first = $cells[0]; + $last = $cells[1]; + + list($fc, $fr) = PHPExcel_Cell::coordinateFromString($first); + $fc = PHPExcel_Cell::columnIndexFromString($fc) - 1; + + list($lc, $lr) = PHPExcel_Cell::coordinateFromString($last); + $lc = PHPExcel_Cell::columnIndexFromString($lc) - 1; + + // loop through the individual cells in the individual merge + $r = $fr - 1; + while($r++ < $lr) { + // also, flag this row as a HTML row that is candidate to be omitted + $candidateSpannedRow[$r] = $r; + + $c = $fc - 1; + while($c++ < $lc) { + if ( !($c == $fc && $r == $fr) ) { + // not the upper-left cell (should not be written in HTML) + $this->_isSpannedCell[$sheetIndex][$r][$c] = array( + 'baseCell' => array($fr, $fc), + ); + } else { + // upper-left is the base cell that should hold the colspan/rowspan attribute + $this->_isBaseCell[$sheetIndex][$r][$c] = array( + 'xlrowspan' => $lr - $fr + 1, // Excel rowspan + 'rowspan' => $lr - $fr + 1, // HTML rowspan, value may change + 'xlcolspan' => $lc - $fc + 1, // Excel colspan + 'colspan' => $lc - $fc + 1, // HTML colspan, value may change + ); + } + } + } + } + + // Identify which rows should be omitted in HTML. These are the rows where all the cells + // participate in a merge and the where base cells are somewhere above. + $countColumns = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); + foreach ($candidateSpannedRow as $rowIndex) { + if (isset($this->_isSpannedCell[$sheetIndex][$rowIndex])) { + if (count($this->_isSpannedCell[$sheetIndex][$rowIndex]) == $countColumns) { + $this->_isSpannedRow[$sheetIndex][$rowIndex] = $rowIndex; + }; + } + } + + // For each of the omitted rows we found above, the affected rowspans should be subtracted by 1 + if ( isset($this->_isSpannedRow[$sheetIndex]) ) { + foreach ($this->_isSpannedRow[$sheetIndex] as $rowIndex) { + $adjustedBaseCells = array(); + $c = -1; + $e = $countColumns - 1; + while($c++ < $e) { + $baseCell = $this->_isSpannedCell[$sheetIndex][$rowIndex][$c]['baseCell']; + + if ( !in_array($baseCell, $adjustedBaseCells) ) { + // subtract rowspan by 1 + --$this->_isBaseCell[$sheetIndex][ $baseCell[0] ][ $baseCell[1] ]['rowspan']; + $adjustedBaseCells[] = $baseCell; + } + } + } + } + + // TODO: Same for columns + } + + // We have calculated the spans + $this->_spansAreCalculated = true; + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/IWriter.php b/plugins/excel_reader/Classes/PHPExcel/Writer/IWriter.php new file mode 100755 index 0000000..af97f07 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/IWriter.php @@ -0,0 +1,45 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_IWriter + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +interface PHPExcel_Writer_IWriter +{ + /** + * Save PHPExcel to file + * + * @param string $pFilename + * @throws Exception + */ + public function save($pFilename = null); +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/PDF.php b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF.php new file mode 100755 index 0000000..7c10445 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF.php @@ -0,0 +1,76 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_PDF + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_PDF { + + private $_renderer = NULL; + + /** + * Create a new PHPExcel_Writer_PDF + * + * @param PHPExcel $phpExcel PHPExcel object + */ + public function __construct(PHPExcel $phpExcel) { + + $pdfLibraryName = PHPExcel_Settings::getPdfRendererName(); + if (is_null($pdfLibraryName)) { + throw new Exception("PDF Rendering library has not been defined."); + } + + $pdfLibraryPath = PHPExcel_Settings::getPdfRendererPath(); + if (is_null($pdfLibraryName)) { + throw new Exception("PDF Rendering library path has not been defined."); + } + $includePath = str_replace('\\','/',get_include_path()); + $rendererPath = str_replace('\\','/',$pdfLibraryPath); + if (strpos($rendererPath,$includePath) === false) { + set_include_path(get_include_path() . PATH_SEPARATOR . $pdfLibraryPath); + } + + $rendererName = 'PHPExcel_Writer_PDF_'.$pdfLibraryName; + $this->_renderer = new $rendererName($phpExcel); + } + + + public function __call($name, $arguments) + { + if ($this->_renderer === NULL) { + throw new Exception("PDF Renderer has not been defined."); + } + + return call_user_func_array(array($this->_renderer,$name),$arguments); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/Core.php b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/Core.php new file mode 100755 index 0000000..b9154ac --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/Core.php @@ -0,0 +1,239 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** + * PHPExcel_Writer_PDF_Core + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +abstract class PHPExcel_Writer_PDF_Core extends PHPExcel_Writer_HTML { + /** + * Temporary storage directory + * + * @var string + */ + private $_tempDir = ''; + + /** + * Font + * + * @var string + */ + private $_font = 'freesans'; + + /** + * Orientation (Over-ride) + * + * @var string + */ + private $_orientation = null; + + /** + * Paper size (Over-ride) + * + * @var int + */ + private $_paperSize = null; + + + /** + * Paper Sizes xRef List + * + * @var array + */ + protected static $_paperSizes = array( + // Excel Paper Size TCPDF Paper Size + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER => 'LETTER', // (8.5 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_SMALL => 'LETTER', // (8.5 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_TABLOID => array(792.00,1224.00), // (11 in. by 17 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEDGER => array(1224.00,792.00), // (17 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEGAL => 'LEGAL', // (8.5 in. by 14 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_STATEMENT => array(396.00,612.00), // (5.5 in. by 8.5 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_EXECUTIVE => 'EXECUTIVE', // (7.25 in. by 10.5 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3 => 'A3', // (297 mm by 420 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4 => 'A4', // (210 mm by 297 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_SMALL => 'A4', // (210 mm by 297 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5 => 'A5', // (148 mm by 210 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_B4 => 'B4', // (250 mm by 353 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_B5 => 'B5', // (176 mm by 250 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_FOLIO => 'FOLIO', // (8.5 in. by 13 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_QUARTO => array(609.45,779.53), // (215 mm by 275 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_1 => array(720.00,1008.00), // (10 in. by 14 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_2 => array(792.00,1224.00), // (11 in. by 17 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_NOTE => 'LETTER', // (8.5 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO9_ENVELOPE => array(279.00,639.00), // (3.875 in. by 8.875 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO10_ENVELOPE => array(297.00,684.00), // (4.125 in. by 9.5 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO11_ENVELOPE => array(324.00,747.00), // (4.5 in. by 10.375 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO12_ENVELOPE => array(342.00,792.00), // (4.75 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO14_ENVELOPE => array(360.00,828.00), // (5 in. by 11.5 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_C => array(1224.00,1584.00), // (17 in. by 22 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_D => array(1584.00,2448.00), // (22 in. by 34 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_E => array(2448.00,3168.00), // (34 in. by 44 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_DL_ENVELOPE => array(311.81,623.62), // (110 mm by 220 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_C5_ENVELOPE => 'C5', // (162 mm by 229 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_C3_ENVELOPE => 'C3', // (324 mm by 458 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_C4_ENVELOPE => 'C4', // (229 mm by 324 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_C6_ENVELOPE => 'C6', // (114 mm by 162 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_C65_ENVELOPE => array(323.15,649.13), // (114 mm by 229 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_B4_ENVELOPE => 'B4', // (250 mm by 353 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_B5_ENVELOPE => 'B5', // (176 mm by 250 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_B6_ENVELOPE => array(498.90,354.33), // (176 mm by 125 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_ITALY_ENVELOPE => array(311.81,651.97), // (110 mm by 230 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_MONARCH_ENVELOPE => array(279.00,540.00), // (3.875 in. by 7.5 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_6_3_4_ENVELOPE => array(261.00,468.00), // (3.625 in. by 6.5 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_US_STANDARD_FANFOLD => array(1071.00,792.00), // (14.875 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD => array(612.00,864.00), // (8.5 in. by 12 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD => 'FOLIO', // (8.5 in. by 13 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_ISO_B4 => 'B4', // (250 mm by 353 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD => array(566.93,419.53), // (200 mm by 148 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_1 => array(648.00,792.00), // (9 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_2 => array(720.00,792.00), // (10 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_3 => array(1080.00,792.00), // (15 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_INVITE_ENVELOPE => array(623.62,623.62), // (220 mm by 220 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER => array(667.80,864.00), // (9.275 in. by 12 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER => array(667.80,1080.00), // (9.275 in. by 15 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER => array(841.68,1296.00), // (11.69 in. by 18 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_EXTRA_PAPER => array(668.98,912.76), // (236 mm by 322 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER => array(595.80,792.00), // (8.275 in. by 11 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER => 'A4', // (210 mm by 297 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER => array(667.80,864.00), // (9.275 in. by 12 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER => array(643.46,1009.13), // (227 mm by 356 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER => array(864.57,1380.47), // (305 mm by 487 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_PLUS_PAPER => array(612.00,913.68), // (8.5 in. by 12.69 in.) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_PLUS_PAPER => array(595.28,935.43), // (210 mm by 330 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER => 'A5', // (148 mm by 210 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER => array(515.91,728.50), // (182 mm by 257 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_EXTRA_PAPER => array(912.76,1261.42), // (322 mm by 445 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5_EXTRA_PAPER => array(493.23,666.14), // (174 mm by 235 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER => array(569.76,782.36), // (201 mm by 276 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A2_PAPER => 'A2', // (420 mm by 594 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER => 'A3', // (297 mm by 420 mm) + PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER => array(912.76,1261.42) // (322 mm by 445 mm) + ); + + /** + * Create a new PHPExcel_Writer_PDF + * + * @param PHPExcel $phpExcel PHPExcel object + */ + public function __construct(PHPExcel $phpExcel) { + parent::__construct($phpExcel); + $this->setUseInlineCss(true); + $this->_tempDir = PHPExcel_Shared_File::sys_get_temp_dir(); + } + + /** + * Get Font + * + * @return string + */ + public function getFont() { + return $this->_font; + } + + /** + * Set font. Examples: + * 'arialunicid0-chinese-simplified' + * 'arialunicid0-chinese-traditional' + * 'arialunicid0-korean' + * 'arialunicid0-japanese' + * + * @param string $fontName + */ + public function setFont($fontName) { + $this->_font = $fontName; + return $this; + } + + /** + * Get Paper Size + * + * @return int + */ + public function getPaperSize() { + return $this->_paperSize; + } + + /** + * Set Paper Size + * + * @param int $pValue + * @return PHPExcel_Writer_PDF + */ + public function setPaperSize($pValue = PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER) { + $this->_paperSize = $pValue; + return $this; + } + + /** + * Get Orientation + * + * @return string + */ + public function getOrientation() { + return $this->_orientation; + } + + /** + * Set Orientation + * + * @param string $pValue + * @return PHPExcel_Writer_PDF + */ + public function setOrientation($pValue = PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) { + $this->_orientation = $pValue; + return $this; + } + + /** + * Get temporary storage directory + * + * @return string + */ + public function getTempDir() { + return $this->_tempDir; + } + + /** + * Set temporary storage directory + * + * @param string $pValue Temporary storage directory + * @throws Exception Exception when directory does not exist + * @return PHPExcel_Writer_PDF + */ + public function setTempDir($pValue = '') { + if (is_dir($pValue)) { + $this->_tempDir = $pValue; + } else { + throw new Exception("Directory does not exist: $pValue"); + } + return $this; + } +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/DomPDF.php b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/DomPDF.php new file mode 100755 index 0000000..a8ab4ef --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/DomPDF.php @@ -0,0 +1,128 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** Require DomPDF library */ +$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/dompdf_config.inc.php'; +if (file_exists($pdfRendererClassFile)) { + require_once $pdfRendererClassFile; +} else { + throw new Exception('Unable to load PDF Rendering library'); +} + +/** + * PHPExcel_Writer_PDF_DomPDF + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_PDF_DomPDF extends PHPExcel_Writer_PDF_Core implements PHPExcel_Writer_IWriter { + /** + * Create a new PHPExcel_Writer_PDF + * + * @param PHPExcel $phpExcel PHPExcel object + */ + public function __construct(PHPExcel $phpExcel) { + parent::__construct($phpExcel); + } + + /** + * Save PHPExcel to file + * + * @param string $pFileName + * @throws Exception + */ + public function save($pFilename = null) { + // garbage collect + $this->_phpExcel->garbageCollect(); + + $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); + PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); + + // Open file + $fileHandle = fopen($pFilename, 'w'); + if ($fileHandle === false) { + throw new Exception("Could not open file $pFilename for writing."); + } + + // Set PDF + $this->_isPdf = true; + // Build CSS + $this->buildCSS(true); + + // Default PDF paper size + $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) + + // Check for paper size and page orientation + if (is_null($this->getSheetIndex())) { + $orientation = ($this->_phpExcel->getSheet(0)->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + $printPaperSize = $this->_phpExcel->getSheet(0)->getPageSetup()->getPaperSize(); + $printMargins = $this->_phpExcel->getSheet(0)->getPageMargins(); + } else { + $orientation = ($this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + $printPaperSize = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); + $printMargins = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageMargins(); + } + + // Override Page Orientation + if (!is_null($this->getOrientation())) { + $orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) ? + PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT : $this->getOrientation(); + } + // Override Paper Size + if (!is_null($this->getPaperSize())) { + $printPaperSize = $this->getPaperSize(); + } + + if (isset(self::$_paperSizes[$printPaperSize])) { + $paperSize = self::$_paperSizes[$printPaperSize]; + } + + $orientation = ($orientation == 'L') ? 'landscape' : 'portrait'; + + // Create PDF + $pdf = new DOMPDF(); + $pdf->set_paper(strtolower($paperSize), $orientation); + + $pdf->load_html( + $this->generateHTMLHeader(false) . + $this->generateSheetData() . + $this->generateHTMLFooter() + ); + $pdf->render(); + + // Write to file + fwrite($fileHandle, $pdf->output()); + + // Close file + fclose($fileHandle); + + PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/mPDF.php b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/mPDF.php new file mode 100755 index 0000000..5f9f2a3 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/mPDF.php @@ -0,0 +1,135 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** Require mPDF library */ +$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/mpdf.php'; +if (file_exists($pdfRendererClassFile)) { + require_once $pdfRendererClassFile; +} else { + throw new Exception('Unable to load PDF Rendering library'); +} + +/** + * PHPExcel_Writer_PDF_mPDF + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_PDF_mPDF extends PHPExcel_Writer_PDF_Core implements PHPExcel_Writer_IWriter { + /** + * Create a new PHPExcel_Writer_PDF + * + * @param PHPExcel $phpExcel PHPExcel object + */ + public function __construct(PHPExcel $phpExcel) { + parent::__construct($phpExcel); + } + + /** + * Save PHPExcel to file + * + * @param string $pFileName + * @throws Exception + */ + public function save($pFilename = null) { + // garbage collect + $this->_phpExcel->garbageCollect(); + + $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); + PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); + + // Open file + $fileHandle = fopen($pFilename, 'w'); + if ($fileHandle === false) { + throw new Exception("Could not open file $pFilename for writing."); + } + + // Set PDF + $this->_isPdf = true; + // Build CSS + $this->buildCSS(true); + + // Default PDF paper size + $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) + + // Check for paper size and page orientation + if (is_null($this->getSheetIndex())) { + $orientation = ($this->_phpExcel->getSheet(0)->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + $printPaperSize = $this->_phpExcel->getSheet(0)->getPageSetup()->getPaperSize(); + $printMargins = $this->_phpExcel->getSheet(0)->getPageMargins(); + } else { + $orientation = ($this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + $printPaperSize = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); + $printMargins = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageMargins(); + } + $this->setOrientation($orientation); + + // Override Page Orientation + if (!is_null($this->getOrientation())) { + $orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) ? + PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT : $this->getOrientation(); + } + $orientation = strtoupper($orientation); + + // Override Paper Size + if (!is_null($this->getPaperSize())) { + $printPaperSize = $this->getPaperSize(); + } + + if (isset(self::$_paperSizes[$printPaperSize])) { + $paperSize = self::$_paperSizes[$printPaperSize]; + } + + // Create PDF + $pdf = new mpdf(); + $pdf->_setPageSize(strtoupper($paperSize), $orientation); + $pdf->DefOrientation = $orientation; + // Document info + $pdf->SetTitle($this->_phpExcel->getProperties()->getTitle()); + $pdf->SetAuthor($this->_phpExcel->getProperties()->getCreator()); + $pdf->SetSubject($this->_phpExcel->getProperties()->getSubject()); + $pdf->SetKeywords($this->_phpExcel->getProperties()->getKeywords()); + $pdf->SetCreator($this->_phpExcel->getProperties()->getCreator()); + + $pdf->WriteHTML( + $this->generateHTMLHeader(false) . + $this->generateSheetData() . + $this->generateHTMLFooter() + ); + + // Write to file + fwrite($fileHandle, $pdf->Output('','S')); + + // Close file + fclose($fileHandle); + + PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/tcPDF.php b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/tcPDF.php new file mode 100755 index 0000000..d77ab91 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/Writer/PDF/tcPDF.php @@ -0,0 +1,147 @@ +<?php +/** + * PHPExcel + * + * Copyright (c) 2006 - 2012 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version 1.7.8, 2012-10-12 + */ + + +/** Require tcPDF library */ +$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/tcpdf.php'; +if (file_exists($pdfRendererClassFile)) { + $k_path_url = PHPExcel_Settings::getPdfRendererPath(); + require_once $pdfRendererClassFile; +} else { + throw new Exception('Unable to load PDF Rendering library'); +} + +/** + * PHPExcel_Writer_PDF_tcPDF + * + * @category PHPExcel + * @package PHPExcel_Writer + * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) + */ +class PHPExcel_Writer_PDF_tcPDF extends PHPExcel_Writer_PDF_Core implements PHPExcel_Writer_IWriter { + /** + * Create a new PHPExcel_Writer_PDF + * + * @param PHPExcel $phpExcel PHPExcel object + */ + public function __construct(PHPExcel $phpExcel) { + parent::__construct($phpExcel); + } + + /** + * Save PHPExcel to file + * + * @param string $pFileName + * @throws Exception + */ + public function save($pFilename = null) { + // garbage collect + $this->_phpExcel->garbageCollect(); + + $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); + PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); + + // Open file + $fileHandle = fopen($pFilename, 'w'); + if ($fileHandle === false) { + throw new Exception("Could not open file $pFilename for writing."); + } + + // Set PDF + $this->_isPdf = true; + // Build CSS + $this->buildCSS(true); + + // Default PDF paper size + $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) + + // Check for paper size and page orientation + if (is_null($this->getSheetIndex())) { + $orientation = ($this->_phpExcel->getSheet(0)->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + $printPaperSize = $this->_phpExcel->getSheet(0)->getPageSetup()->getPaperSize(); + $printMargins = $this->_phpExcel->getSheet(0)->getPageMargins(); + } else { + $orientation = ($this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + $printPaperSize = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); + $printMargins = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageMargins(); + } + + // Override Page Orientation + if (!is_null($this->getOrientation())) { + $orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? + 'L' : 'P'; + } + // Override Paper Size + if (!is_null($this->getPaperSize())) { + $printPaperSize = $this->getPaperSize(); + } + + + if (isset(self::$_paperSizes[$printPaperSize])) { + $paperSize = self::$_paperSizes[$printPaperSize]; + } + + + // Create PDF + $pdf = new TCPDF($orientation, 'pt', $paperSize); + $pdf->setFontSubsetting(false); + // Set margins, converting inches to points (using 72 dpi) + $pdf->SetMargins($printMargins->getLeft() * 72,$printMargins->getTop() * 72,$printMargins->getRight() * 72); + $pdf->SetAutoPageBreak(true,$printMargins->getBottom() * 72); +// $pdf->setHeaderMargin($printMargins->getHeader() * 72); +// $pdf->setFooterMargin($printMargins->getFooter() * 72); + + $pdf->setPrintHeader(false); + $pdf->setPrintFooter(false); + + $pdf->AddPage(); + + // Set the appropriate font + $pdf->SetFont($this->getFont()); + $pdf->writeHTML( + $this->generateHTMLHeader(false) . + $this->generateSheetData() . + $this->generateHTMLFooter() + ); + + // Document info + $pdf->SetTitle($this->_phpExcel->getProperties()->getTitle()); + $pdf->SetAuthor($this->_phpExcel->getProperties()->getCreator()); + $pdf->SetSubject($this->_phpExcel->getProperties()->getSubject()); + $pdf->SetKeywords($this->_phpExcel->getProperties()->getKeywords()); + $pdf->SetCreator($this->_phpExcel->getProperties()->getCreator()); + + // Write to file + fwrite($fileHandle, $pdf->output($pFilename, 'S')); + + // Close file + fclose($fileHandle); + + PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType); + } + +} diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/cs/config b/plugins/excel_reader/Classes/PHPExcel/locale/cs/config new file mode 100755 index 0000000..38a4412 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/cs/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = Kč + + +## +## Excel Error Codes (For future use) +## +NULL = #NULL! +DIV0 = #DIV/0! +VALUE = #HODNOTA! +REF = #REF! +NAME = #NÁZEV? +NUM = #NUM! +NA = #N/A diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/cs/functions b/plugins/excel_reader/Classes/PHPExcel/locale/cs/functions new file mode 100755 index 0000000..992dc37 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/cs/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Funkce doplňků a automatizace +## +GETPIVOTDATA = ZÍSKATKONTDATA ## Vrátí data uložená v kontingenční tabulce. Pomocí funkce ZÍSKATKONTDATA můžete načíst souhrnná data z kontingenční tabulky, pokud jsou tato data v kontingenční sestavě zobrazena. + + +## +## Cube functions Funkce pro práci s krychlemi +## +CUBEKPIMEMBER = CUBEKPIMEMBER ## Vrátí název, vlastnost a velikost klíčového ukazatele výkonu (KUV) a zobrazí v buňce název a vlastnost. Klíčový ukazatel výkonu je kvantifikovatelná veličina, například hrubý měsíční zisk nebo čtvrtletní obrat na zaměstnance, která se používá pro sledování výkonnosti organizace. +CUBEMEMBER = CUBEMEMBER ## Vrátí člen nebo n-tici v hierarchii krychle. Slouží k ověření, zda v krychli existuje člen nebo n-tice. +CUBEMEMBERPROPERTY = CUBEMEMBERPROPERTY ## Vrátí hodnotu vlastnosti člena v krychli. Slouží k ověření, zda v krychli existuje člen s daným názvem, a k vrácení konkrétní vlastnosti tohoto člena. +CUBERANKEDMEMBER = CUBERANKEDMEMBER ## Vrátí n-tý nebo pořadový člen sady. Použijte ji pro vrácení jednoho nebo více prvků sady, například obchodníka s nejvyšším obratem nebo deseti nejlepších studentů. +CUBESET = CUBESET ## Definuje vypočtenou sadu členů nebo n-tic odesláním výrazu sady do krychle na serveru, který vytvoří sadu a potom ji vrátí do aplikace Microsoft Office Excel. +CUBESETCOUNT = CUBESETCOUNT ## Vrátí počet položek v množině +CUBEVALUE = CUBEVALUE ## Vrátí úhrnnou hodnotu z krychle. + + +## +## Database functions Funkce databáze +## +DAVERAGE = DPRŮMĚR ## Vrátí průměr vybraných položek databáze. +DCOUNT = DPOČET ## Spočítá buňky databáze obsahující čísla. +DCOUNTA = DPOČET2 ## Spočítá buňky databáze, které nejsou prázdné. +DGET = DZÍSKAT ## Extrahuje z databáze jeden záznam splňující zadaná kritéria. +DMAX = DMAX ## Vrátí maximální hodnotu z vybraných položek databáze. +DMIN = DMIN ## Vrátí minimální hodnotu z vybraných položek databáze. +DPRODUCT = DSOUČIN ## Vynásobí hodnoty určitého pole záznamů v databázi, které splňují daná kritéria. +DSTDEV = DSMODCH.VÝBĚR ## Odhadne směrodatnou odchylku výběru vybraných položek databáze. +DSTDEVP = DSMODCH ## Vypočte směrodatnou odchylku základního souboru vybraných položek databáze. +DSUM = DSUMA ## Sečte čísla ve sloupcovém poli záznamů databáze, která splňují daná kritéria. +DVAR = DVAR.VÝBĚR ## Odhadne rozptyl výběru vybraných položek databáze. +DVARP = DVAR ## Vypočte rozptyl základního souboru vybraných položek databáze. + + +## +## Date and time functions Funkce data a času +## +DATE = DATUM ## Vrátí pořadové číslo určitého data. +DATEVALUE = DATUMHODN ## Převede datum ve formě textu na pořadové číslo. +DAY = DEN ## Převede pořadové číslo na den v měsíci. +DAYS360 = ROK360 ## Vrátí počet dní mezi dvěma daty na základě roku s 360 dny. +EDATE = EDATE ## Vrátí pořadové číslo data, které označuje určený počet měsíců před nebo po počátečním datu. +EOMONTH = EOMONTH ## Vrátí pořadové číslo posledního dne měsíce před nebo po zadaném počtu měsíců. +HOUR = HODINA ## Převede pořadové číslo na hodinu. +MINUTE = MINUTA ## Převede pořadové číslo na minutu. +MONTH = MĚSÍC ## Převede pořadové číslo na měsíc. +NETWORKDAYS = NETWORKDAYS ## Vrátí počet celých pracovních dní mezi dvěma daty. +NOW = NYNÍ ## Vrátí pořadové číslo aktuálního data a času. +SECOND = SEKUNDA ## Převede pořadové číslo na sekundu. +TIME = ČAS ## Vrátí pořadové číslo určitého času. +TIMEVALUE = ČASHODN ## Převede čas ve formě textu na pořadové číslo. +TODAY = DNES ## Vrátí pořadové číslo dnešního data. +WEEKDAY = DENTÝDNE ## Převede pořadové číslo na den v týdnu. +WEEKNUM = WEEKNUM ## Převede pořadové číslo na číslo představující číselnou pozici týdne v roce. +WORKDAY = WORKDAY ## Vrátí pořadové číslo data před nebo po zadaném počtu pracovních dní. +YEAR = ROK ## Převede pořadové číslo na rok. +YEARFRAC = YEARFRAC ## Vrátí část roku vyjádřenou zlomkem a představující počet celých dní mezi počátečním a koncovým datem. + + +## +## Engineering functions Inženýrské funkce (Technické funkce) +## +BESSELI = BESSELI ## Vrátí modifikovanou Besselovu funkci In(x). +BESSELJ = BESSELJ ## Vrátí modifikovanou Besselovu funkci Jn(x). +BESSELK = BESSELK ## Vrátí modifikovanou Besselovu funkci Kn(x). +BESSELY = BESSELY ## Vrátí Besselovu funkci Yn(x). +BIN2DEC = BIN2DEC ## Převede binární číslo na desítkové. +BIN2HEX = BIN2HEX ## Převede binární číslo na šestnáctkové. +BIN2OCT = BIN2OCT ## Převede binární číslo na osmičkové. +COMPLEX = COMPLEX ## Převede reálnou a imaginární část na komplexní číslo. +CONVERT = CONVERT ## Převede číslo do jiného jednotkového měrného systému. +DEC2BIN = DEC2BIN ## Převede desítkového čísla na dvojkové +DEC2HEX = DEC2HEX ## Převede desítkové číslo na šestnáctkové. +DEC2OCT = DEC2OCT ## Převede desítkové číslo na osmičkové. +DELTA = DELTA ## Testuje rovnost dvou hodnot. +ERF = ERF ## Vrátí chybovou funkci. +ERFC = ERFC ## Vrátí doplňkovou chybovou funkci. +GESTEP = GESTEP ## Testuje, zda je číslo větší než mezní hodnota. +HEX2BIN = HEX2BIN ## Převede šestnáctkové číslo na binární. +HEX2DEC = HEX2DEC ## Převede šestnáctkové číslo na desítkové. +HEX2OCT = HEX2OCT ## Převede šestnáctkové číslo na osmičkové. +IMABS = IMABS ## Vrátí absolutní hodnotu (modul) komplexního čísla. +IMAGINARY = IMAGINARY ## Vrátí imaginární část komplexního čísla. +IMARGUMENT = IMARGUMENT ## Vrátí argument théta, úhel vyjádřený v radiánech. +IMCONJUGATE = IMCONJUGATE ## Vrátí komplexně sdružené číslo ke komplexnímu číslu. +IMCOS = IMCOS ## Vrátí kosinus komplexního čísla. +IMDIV = IMDIV ## Vrátí podíl dvou komplexních čísel. +IMEXP = IMEXP ## Vrátí exponenciální tvar komplexního čísla. +IMLN = IMLN ## Vrátí přirozený logaritmus komplexního čísla. +IMLOG10 = IMLOG10 ## Vrátí dekadický logaritmus komplexního čísla. +IMLOG2 = IMLOG2 ## Vrátí logaritmus komplexního čísla při základu 2. +IMPOWER = IMPOWER ## Vrátí komplexní číslo umocněné na celé číslo. +IMPRODUCT = IMPRODUCT ## Vrátí součin komplexních čísel. +IMREAL = IMREAL ## Vrátí reálnou část komplexního čísla. +IMSIN = IMSIN ## Vrátí sinus komplexního čísla. +IMSQRT = IMSQRT ## Vrátí druhou odmocninu komplexního čísla. +IMSUB = IMSUB ## Vrátí rozdíl mezi dvěma komplexními čísly. +IMSUM = IMSUM ## Vrátí součet dvou komplexních čísel. +OCT2BIN = OCT2BIN ## Převede osmičkové číslo na binární. +OCT2DEC = OCT2DEC ## Převede osmičkové číslo na desítkové. +OCT2HEX = OCT2HEX ## Převede osmičkové číslo na šestnáctkové. + + +## +## Financial functions Finanční funkce +## +ACCRINT = ACCRINT ## Vrátí nahromaděný úrok z cenného papíru, ze kterého je úrok placen v pravidelných termínech. +ACCRINTM = ACCRINTM ## Vrátí nahromaděný úrok z cenného papíru, ze kterého je úrok placen k datu splatnosti. +AMORDEGRC = AMORDEGRC ## Vrátí lineární amortizaci v každém účetním období pomocí koeficientu amortizace. +AMORLINC = AMORLINC ## Vrátí lineární amortizaci v každém účetním období. +COUPDAYBS = COUPDAYBS ## Vrátí počet dnů od začátku období placení kupónů do data splatnosti. +COUPDAYS = COUPDAYS ## Vrátí počet dnů v období placení kupónů, které obsahuje den zúčtování. +COUPDAYSNC = COUPDAYSNC ## Vrátí počet dnů od data zúčtování do následujícího data placení kupónu. +COUPNCD = COUPNCD ## Vrátí následující datum placení kupónu po datu zúčtování. +COUPNUM = COUPNUM ## Vrátí počet kupónů splatných mezi datem zúčtování a datem splatnosti. +COUPPCD = COUPPCD ## Vrátí předchozí datum placení kupónu před datem zúčtování. +CUMIPMT = CUMIPMT ## Vrátí kumulativní úrok splacený mezi dvěma obdobími. +CUMPRINC = CUMPRINC ## Vrátí kumulativní jistinu splacenou mezi dvěma obdobími půjčky. +DB = ODPIS.ZRYCH ## Vrátí odpis aktiva za určité období pomocí degresivní metody odpisu s pevným zůstatkem. +DDB = ODPIS.ZRYCH2 ## Vrátí odpis aktiva za určité období pomocí dvojité degresivní metody odpisu nebo jiné metody, kterou zadáte. +DISC = DISC ## Vrátí diskontní sazbu cenného papíru. +DOLLARDE = DOLLARDE ## Převede částku v korunách vyjádřenou zlomkem na částku v korunách vyjádřenou desetinným číslem. +DOLLARFR = DOLLARFR ## Převede částku v korunách vyjádřenou desetinným číslem na částku v korunách vyjádřenou zlomkem. +DURATION = DURATION ## Vrátí roční dobu cenného papíru s pravidelnými úrokovými sazbami. +EFFECT = EFFECT ## Vrátí efektivní roční úrokovou sazbu. +FV = BUDHODNOTA ## Vrátí budoucí hodnotu investice. +FVSCHEDULE = FVSCHEDULE ## Vrátí budoucí hodnotu počáteční jistiny po použití série sazeb složitého úroku. +INTRATE = INTRATE ## Vrátí úrokovou sazbu plně investovaného cenného papíru. +IPMT = PLATBA.ÚROK ## Vrátí výšku úroku investice za dané období. +IRR = MÍRA.VÝNOSNOSTI ## Vrátí vnitřní výnosové procento série peněžních toků. +ISPMT = ISPMT ## Vypočte výši úroku z investice zaplaceného během určitého období. +MDURATION = MDURATION ## Vrátí Macauleyho modifikovanou dobu cenného papíru o nominální hodnotě 100 Kč. +MIRR = MOD.MÍRA.VÝNOSNOSTI ## Vrátí vnitřní sazbu výnosu, přičemž kladné a záporné hodnoty peněžních prostředků jsou financovány podle různých sazeb. +NOMINAL = NOMINAL ## Vrátí nominální roční úrokovou sazbu. +NPER = POČET.OBDOBÍ ## Vrátí počet období pro investici. +NPV = ČISTÁ.SOUČHODNOTA ## Vrátí čistou současnou hodnotu investice vypočítanou na základě série pravidelných peněžních toků a diskontní sazby. +ODDFPRICE = ODDFPRICE ## Vrátí cenu cenného papíru o nominální hodnotě 100 Kč s odlišným prvním obdobím. +ODDFYIELD = ODDFYIELD ## Vrátí výnos cenného papíru s odlišným prvním obdobím. +ODDLPRICE = ODDLPRICE ## Vrátí cenu cenného papíru o nominální hodnotě 100 Kč s odlišným posledním obdobím. +ODDLYIELD = ODDLYIELD ## Vrátí výnos cenného papíru s odlišným posledním obdobím. +PMT = PLATBA ## Vrátí hodnotu pravidelné splátky anuity. +PPMT = PLATBA.ZÁKLAD ## Vrátí hodnotu splátky jistiny pro zadanou investici za dané období. +PRICE = PRICE ## Vrátí cenu cenného papíru o nominální hodnotě 100 Kč, ze kterého je úrok placen v pravidelných termínech. +PRICEDISC = PRICEDISC ## Vrátí cenu diskontního cenného papíru o nominální hodnotě 100 Kč. +PRICEMAT = PRICEMAT ## Vrátí cenu cenného papíru o nominální hodnotě 100 Kč, ze kterého je úrok placen k datu splatnosti. +PV = SOUČHODNOTA ## Vrátí současnou hodnotu investice. +RATE = ÚROKOVÁ.MÍRA ## Vrátí úrokovou sazbu vztaženou na období anuity. +RECEIVED = RECEIVED ## Vrátí částku obdrženou k datu splatnosti plně investovaného cenného papíru. +SLN = ODPIS.LIN ## Vrátí přímé odpisy aktiva pro jedno období. +SYD = ODPIS.NELIN ## Vrátí směrné číslo ročních odpisů aktiva pro zadané období. +TBILLEQ = TBILLEQ ## Vrátí výnos směnky státní pokladny ekvivalentní výnosu obligace. +TBILLPRICE = TBILLPRICE ## Vrátí cenu směnky státní pokladny o nominální hodnotě 100 Kč. +TBILLYIELD = TBILLYIELD ## Vrátí výnos směnky státní pokladny. +VDB = ODPIS.ZA.INT ## Vrátí odpis aktiva pro určité období nebo část období pomocí degresivní metody odpisu. +XIRR = XIRR ## Vrátí vnitřní výnosnost pro harmonogram peněžních toků, který nemusí být nutně periodický. +XNPV = XNPV ## Vrátí čistou současnou hodnotu pro harmonogram peněžních toků, který nemusí být nutně periodický. +YIELD = YIELD ## Vrátí výnos cenného papíru, ze kterého je úrok placen v pravidelných termínech. +YIELDDISC = YIELDDISC ## Vrátí roční výnos diskontního cenného papíru, například směnky státní pokladny. +YIELDMAT = YIELDMAT ## Vrátí roční výnos cenného papíru, ze kterého je úrok placen k datu splatnosti. + + +## +## Information functions Informační funkce +## +CELL = POLÍČKO ## Vrátí informace o formátování, umístění nebo obsahu buňky. +ERROR.TYPE = CHYBA.TYP ## Vrátí číslo odpovídající typu chyby. +INFO = O.PROSTŘEDÍ ## Vrátí informace o aktuálním pracovním prostředí. +ISBLANK = JE.PRÁZDNÉ ## Vrátí hodnotu PRAVDA, pokud se argument hodnota odkazuje na prázdnou buňku. +ISERR = JE.CHYBA ## Vrátí hodnotu PRAVDA, pokud je argument hodnota libovolná chybová hodnota (kromě #N/A). +ISERROR = JE.CHYBHODN ## Vrátí hodnotu PRAVDA, pokud je argument hodnota libovolná chybová hodnota. +ISEVEN = ISEVEN ## Vrátí hodnotu PRAVDA, pokud je číslo sudé. +ISLOGICAL = JE.LOGHODN ## Vrátí hodnotu PRAVDA, pokud je argument hodnota logická hodnota. +ISNA = JE.NEDEF ## Vrátí hodnotu PRAVDA, pokud je argument hodnota chybová hodnota #N/A. +ISNONTEXT = JE.NETEXT ## Vrátí hodnotu PRAVDA, pokud argument hodnota není text. +ISNUMBER = JE.ČÍSLO ## Vrátí hodnotu PRAVDA, pokud je argument hodnota číslo. +ISODD = ISODD ## Vrátí hodnotu PRAVDA, pokud je číslo liché. +ISREF = JE.ODKAZ ## Vrátí hodnotu PRAVDA, pokud je argument hodnota odkaz. +ISTEXT = JE.TEXT ## Vrátí hodnotu PRAVDA, pokud je argument hodnota text. +N = N ## Vrátí hodnotu převedenou na číslo. +NA = NEDEF ## Vrátí chybovou hodnotu #N/A. +TYPE = TYP ## Vrátí číslo označující datový typ hodnoty. + + +## +## Logical functions Logické funkce +## +AND = A ## Vrátí hodnotu PRAVDA, mají-li všechny argumenty hodnotu PRAVDA. +FALSE = NEPRAVDA ## Vrátí logickou hodnotu NEPRAVDA. +IF = KDYŽ ## Určí, který logický test má proběhnout. +IFERROR = IFERROR ## Pokud je vzorec vyhodnocen jako chyba, vrátí zadanou hodnotu. V opačném případě vrátí výsledek vzorce. +NOT = NE ## Provede logickou negaci argumentu funkce. +OR = NEBO ## Vrátí hodnotu PRAVDA, je-li alespoň jeden argument roven hodnotě PRAVDA. +TRUE = PRAVDA ## Vrátí logickou hodnotu PRAVDA. + + +## +## Lookup and reference functions Vyhledávací funkce +## +ADDRESS = ODKAZ ## Vrátí textový odkaz na jednu buňku listu. +AREAS = POČET.BLOKŮ ## Vrátí počet oblastí v odkazu. +CHOOSE = ZVOLIT ## Zvolí hodnotu ze seznamu hodnot. +COLUMN = SLOUPEC ## Vrátí číslo sloupce odkazu. +COLUMNS = SLOUPCE ## Vrátí počet sloupců v odkazu. +HLOOKUP = VVYHLEDAT ## Prohledá horní řádek matice a vrátí hodnotu určené buňky. +HYPERLINK = HYPERTEXTOVÝ.ODKAZ ## Vytvoří zástupce nebo odkaz, který otevře dokument uložený na síťovém serveru, v síti intranet nebo Internet. +INDEX = INDEX ## Pomocí rejstříku zvolí hodnotu z odkazu nebo matice. +INDIRECT = NEPŘÍMÝ.ODKAZ ## Vrátí odkaz určený textovou hodnotou. +LOOKUP = VYHLEDAT ## Vyhledá hodnoty ve vektoru nebo matici. +MATCH = POZVYHLEDAT ## Vyhledá hodnoty v odkazu nebo matici. +OFFSET = POSUN ## Vrátí posun odkazu od zadaného odkazu. +ROW = ŘÁDEK ## Vrátí číslo řádku odkazu. +ROWS = ŘÁDKY ## Vrátí počet řádků v odkazu. +RTD = RTD ## Načte data reálného času z programu, který podporuje automatizaci modelu COM (Automatizace: Způsob práce s objekty určité aplikace z jiné aplikace nebo nástroje pro vývoj. Automatizace (dříve nazývaná automatizace OLE) je počítačovým standardem a je funkcí modelu COM (Component Object Model).). +TRANSPOSE = TRANSPOZICE ## Vrátí transponovanou matici. +VLOOKUP = SVYHLEDAT ## Prohledá první sloupec matice, přesune kurzor v řádku a vrátí hodnotu buňky. + + +## +## Math and trigonometry functions Matematické a trigonometrické funkce +## +ABS = ABS ## Vrátí absolutní hodnotu čísla. +ACOS = ARCCOS ## Vrátí arkuskosinus čísla. +ACOSH = ARCCOSH ## Vrátí hyperbolický arkuskosinus čísla. +ASIN = ARCSIN ## Vrátí arkussinus čísla. +ASINH = ARCSINH ## Vrátí hyperbolický arkussinus čísla. +ATAN = ARCTG ## Vrátí arkustangens čísla. +ATAN2 = ARCTG2 ## Vrátí arkustangens x-ové a y-ové souřadnice. +ATANH = ARCTGH ## Vrátí hyperbolický arkustangens čísla. +CEILING = ZAOKR.NAHORU ## Zaokrouhlí číslo na nejbližší celé číslo nebo na nejbližší násobek zadané hodnoty. +COMBIN = KOMBINACE ## Vrátí počet kombinací pro daný počet položek. +COS = COS ## Vrátí kosinus čísla. +COSH = COSH ## Vrátí hyperbolický kosinus čísla. +DEGREES = DEGREES ## Převede radiány na stupně. +EVEN = ZAOKROUHLIT.NA.SUDÉ ## Zaokrouhlí číslo nahoru na nejbližší celé sudé číslo. +EXP = EXP ## Vrátí základ přirozeného logaritmu e umocněný na zadané číslo. +FACT = FAKTORIÁL ## Vrátí faktoriál čísla. +FACTDOUBLE = FACTDOUBLE ## Vrátí dvojitý faktoriál čísla. +FLOOR = ZAOKR.DOLŮ ## Zaokrouhlí číslo dolů, směrem k nule. +GCD = GCD ## Vrátí největší společný dělitel. +INT = CELÁ.ČÁST ## Zaokrouhlí číslo dolů na nejbližší celé číslo. +LCM = LCM ## Vrátí nejmenší společný násobek. +LN = LN ## Vrátí přirozený logaritmus čísla. +LOG = LOGZ ## Vrátí logaritmus čísla při zadaném základu. +LOG10 = LOG ## Vrátí dekadický logaritmus čísla. +MDETERM = DETERMINANT ## Vrátí determinant matice. +MINVERSE = INVERZE ## Vrátí inverzní matici. +MMULT = SOUČIN.MATIC ## Vrátí součin dvou matic. +MOD = MOD ## Vrátí zbytek po dělení. +MROUND = MROUND ## Vrátí číslo zaokrouhlené na požadovaný násobek. +MULTINOMIAL = MULTINOMIAL ## Vrátí mnohočlen z množiny čísel. +ODD = ZAOKROUHLIT.NA.LICHÉ ## Zaokrouhlí číslo nahoru na nejbližší celé liché číslo. +PI = PI ## Vrátí hodnotu čísla pí. +POWER = POWER ## Umocní číslo na zadanou mocninu. +PRODUCT = SOUČIN ## Vynásobí argumenty funkce. +QUOTIENT = QUOTIENT ## Vrátí celou část dělení. +RADIANS = RADIANS ## Převede stupně na radiány. +RAND = NÁHČÍSLO ## Vrátí náhodné číslo mezi 0 a 1. +RANDBETWEEN = RANDBETWEEN ## Vrátí náhodné číslo mezi zadanými čísly. +ROMAN = ROMAN ## Převede arabskou číslici na římskou ve formátu textu. +ROUND = ZAOKROUHLIT ## Zaokrouhlí číslo na zadaný počet číslic. +ROUNDDOWN = ROUNDDOWN ## Zaokrouhlí číslo dolů, směrem k nule. +ROUNDUP = ROUNDUP ## Zaokrouhlí číslo nahoru, směrem od nuly. +SERIESSUM = SERIESSUM ## Vrátí součet mocninné řady určené podle vzorce. +SIGN = SIGN ## Vrátí znaménko čísla. +SIN = SIN ## Vrátí sinus daného úhlu. +SINH = SINH ## Vrátí hyperbolický sinus čísla. +SQRT = ODMOCNINA ## Vrátí kladnou druhou odmocninu. +SQRTPI = SQRTPI ## Vrátí druhou odmocninu výrazu (číslo * pí). +SUBTOTAL = SUBTOTAL ## Vrátí souhrn v seznamu nebo databázi. +SUM = SUMA ## Sečte argumenty funkce. +SUMIF = SUMIF ## Sečte buňky vybrané podle zadaných kritérií. +SUMIFS = SUMIFS ## Sečte buňky určené více zadanými podmínkami. +SUMPRODUCT = SOUČIN.SKALÁRNÍ ## Vrátí součet součinů odpovídajících prvků matic. +SUMSQ = SUMA.ČTVERCŮ ## Vrátí součet čtverců argumentů. +SUMX2MY2 = SUMX2MY2 ## Vrátí součet rozdílu čtverců odpovídajících hodnot ve dvou maticích. +SUMX2PY2 = SUMX2PY2 ## Vrátí součet součtu čtverců odpovídajících hodnot ve dvou maticích. +SUMXMY2 = SUMXMY2 ## Vrátí součet čtverců rozdílů odpovídajících hodnot ve dvou maticích. +TAN = TGTG ## Vrátí tangens čísla. +TANH = TGH ## Vrátí hyperbolický tangens čísla. +TRUNC = USEKNOUT ## Zkrátí číslo na celé číslo. + + +## +## Statistical functions Statistické funkce +## +AVEDEV = PRŮMODCHYLKA ## Vrátí průměrnou hodnotu absolutních odchylek datových bodů od jejich střední hodnoty. +AVERAGE = PRŮMĚR ## Vrátí průměrnou hodnotu argumentů. +AVERAGEA = AVERAGEA ## Vrátí průměrnou hodnotu argumentů včetně čísel, textu a logických hodnot. +AVERAGEIF = AVERAGEIF ## Vrátí průměrnou hodnotu (aritmetický průměr) všech buněk v oblasti, které vyhovují příslušné podmínce. +AVERAGEIFS = AVERAGEIFS ## Vrátí průměrnou hodnotu (aritmetický průměr) všech buněk vyhovujících několika podmínkám. +BETADIST = BETADIST ## Vrátí hodnotu součtového rozdělení beta. +BETAINV = BETAINV ## Vrátí inverzní hodnotu součtového rozdělení pro zadané rozdělení beta. +BINOMDIST = BINOMDIST ## Vrátí hodnotu binomického rozdělení pravděpodobnosti jednotlivých veličin. +CHIDIST = CHIDIST ## Vrátí jednostrannou pravděpodobnost rozdělení chí-kvadrát. +CHIINV = CHIINV ## Vrátí hodnotu funkce inverzní k distribuční funkci jednostranné pravděpodobnosti rozdělení chí-kvadrát. +CHITEST = CHITEST ## Vrátí test nezávislosti. +CONFIDENCE = CONFIDENCE ## Vrátí interval spolehlivosti pro střední hodnotu základního souboru. +CORREL = CORREL ## Vrátí korelační koeficient mezi dvěma množinami dat. +COUNT = POČET ## Vrátí počet čísel v seznamu argumentů. +COUNTA = POČET2 ## Vrátí počet hodnot v seznamu argumentů. +COUNTBLANK = COUNTBLANK ## Spočítá počet prázdných buněk v oblasti. +COUNTIF = COUNTIF ## Spočítá buňky v oblasti, které odpovídají zadaným kritériím. +COUNTIFS = COUNTIFS ## Spočítá buňky v oblasti, které odpovídají více kritériím. +COVAR = COVAR ## Vrátí hodnotu kovariance, průměrnou hodnotu součinů párových odchylek +CRITBINOM = CRITBINOM ## Vrátí nejmenší hodnotu, pro kterou má součtové binomické rozdělení hodnotu větší nebo rovnu hodnotě kritéria. +DEVSQ = DEVSQ ## Vrátí součet čtverců odchylek. +EXPONDIST = EXPONDIST ## Vrátí hodnotu exponenciálního rozdělení. +FDIST = FDIST ## Vrátí hodnotu rozdělení pravděpodobnosti F. +FINV = FINV ## Vrátí hodnotu inverzní funkce k distribuční funkci rozdělení F. +FISHER = FISHER ## Vrátí hodnotu Fisherovy transformace. +FISHERINV = FISHERINV ## Vrátí hodnotu inverzní funkce k Fisherově transformaci. +FORECAST = FORECAST ## Vrátí hodnotu lineárního trendu. +FREQUENCY = ČETNOSTI ## Vrátí četnost rozdělení jako svislou matici. +FTEST = FTEST ## Vrátí výsledek F-testu. +GAMMADIST = GAMMADIST ## Vrátí hodnotu rozdělení gama. +GAMMAINV = GAMMAINV ## Vrátí hodnotu inverzní funkce k distribuční funkci součtového rozdělení gama. +GAMMALN = GAMMALN ## Vrátí přirozený logaritmus funkce gama, Γ(x). +GEOMEAN = GEOMEAN ## Vrátí geometrický průměr. +GROWTH = LOGLINTREND ## Vrátí hodnoty exponenciálního trendu. +HARMEAN = HARMEAN ## Vrátí harmonický průměr. +HYPGEOMDIST = HYPGEOMDIST ## Vrátí hodnotu hypergeometrického rozdělení. +INTERCEPT = INTERCEPT ## Vrátí úsek lineární regresní čáry. +KURT = KURT ## Vrátí hodnotu excesu množiny dat. +LARGE = LARGE ## Vrátí k-tou největší hodnotu množiny dat. +LINEST = LINREGRESE ## Vrátí parametry lineárního trendu. +LOGEST = LOGLINREGRESE ## Vrátí parametry exponenciálního trendu. +LOGINV = LOGINV ## Vrátí inverzní funkci k distribuční funkci logaritmicko-normálního rozdělení. +LOGNORMDIST = LOGNORMDIST ## Vrátí hodnotu součtového logaritmicko-normálního rozdělení. +MAX = MAX ## Vrátí maximální hodnotu seznamu argumentů. +MAXA = MAXA ## Vrátí maximální hodnotu seznamu argumentů včetně čísel, textu a logických hodnot. +MEDIAN = MEDIAN ## Vrátí střední hodnotu zadaných čísel. +MIN = MIN ## Vrátí minimální hodnotu seznamu argumentů. +MINA = MINA ## Vrátí nejmenší hodnotu v seznamu argumentů včetně čísel, textu a logických hodnot. +MODE = MODE ## Vrátí hodnotu, která se v množině dat vyskytuje nejčastěji. +NEGBINOMDIST = NEGBINOMDIST ## Vrátí hodnotu negativního binomického rozdělení. +NORMDIST = NORMDIST ## Vrátí hodnotu normálního součtového rozdělení. +NORMINV = NORMINV ## Vrátí inverzní funkci k funkci normálního součtového rozdělení. +NORMSDIST = NORMSDIST ## Vrátí hodnotu standardního normálního součtového rozdělení. +NORMSINV = NORMSINV ## Vrátí inverzní funkci k funkci standardního normálního součtového rozdělení. +PEARSON = PEARSON ## Vrátí Pearsonův výsledný momentový korelační koeficient. +PERCENTILE = PERCENTIL ## Vrátí hodnotu k-tého percentilu hodnot v oblasti. +PERCENTRANK = PERCENTRANK ## Vrátí pořadí hodnoty v množině dat vyjádřené procentuální částí množiny dat. +PERMUT = PERMUTACE ## Vrátí počet permutací pro zadaný počet objektů. +POISSON = POISSON ## Vrátí hodnotu distribuční funkce Poissonova rozdělení. +PROB = PROB ## Vrátí pravděpodobnost výskytu hodnot v oblasti mezi dvěma mezními hodnotami. +QUARTILE = QUARTIL ## Vrátí hodnotu kvartilu množiny dat. +RANK = RANK ## Vrátí pořadí čísla v seznamu čísel. +RSQ = RKQ ## Vrátí druhou mocninu Pearsonova výsledného momentového korelačního koeficientu. +SKEW = SKEW ## Vrátí zešikmení rozdělení. +SLOPE = SLOPE ## Vrátí směrnici lineární regresní čáry. +SMALL = SMALL ## Vrátí k-tou nejmenší hodnotu množiny dat. +STANDARDIZE = STANDARDIZE ## Vrátí normalizovanou hodnotu. +STDEV = SMODCH.VÝBĚR ## Vypočte směrodatnou odchylku výběru. +STDEVA = STDEVA ## Vypočte směrodatnou odchylku výběru včetně čísel, textu a logických hodnot. +STDEVP = SMODCH ## Vypočte směrodatnou odchylku základního souboru. +STDEVPA = STDEVPA ## Vypočte směrodatnou odchylku základního souboru včetně čísel, textu a logických hodnot. +STEYX = STEYX ## Vrátí standardní chybu předpovězené hodnoty y pro každou hodnotu x v regresi. +TDIST = TDIST ## Vrátí hodnotu Studentova t-rozdělení. +TINV = TINV ## Vrátí inverzní funkci k distribuční funkci Studentova t-rozdělení. +TREND = LINTREND ## Vrátí hodnoty lineárního trendu. +TRIMMEAN = TRIMMEAN ## Vrátí střední hodnotu vnitřní části množiny dat. +TTEST = TTEST ## Vrátí pravděpodobnost spojenou se Studentovým t-testem. +VAR = VAR.VÝBĚR ## Vypočte rozptyl výběru. +VARA = VARA ## Vypočte rozptyl výběru včetně čísel, textu a logických hodnot. +VARP = VAR ## Vypočte rozptyl základního souboru. +VARPA = VARPA ## Vypočte rozptyl základního souboru včetně čísel, textu a logických hodnot. +WEIBULL = WEIBULL ## Vrátí hodnotu Weibullova rozdělení. +ZTEST = ZTEST ## Vrátí jednostrannou P-hodnotu z-testu. + + +## +## Text functions Textové funkce +## +ASC = ASC ## Změní znaky s plnou šířkou (dvoubajtové)v řetězci znaků na znaky s poloviční šířkou (jednobajtové). +BAHTTEXT = BAHTTEXT ## Převede číslo na text ve formátu, měny ß (baht). +CHAR = ZNAK ## Vrátí znak určený číslem kódu. +CLEAN = VYČISTIT ## Odebere z textu všechny netisknutelné znaky. +CODE = KÓD ## Vrátí číselný kód prvního znaku zadaného textového řetězce. +CONCATENATE = CONCATENATE ## Spojí několik textových položek do jedné. +DOLLAR = KČ ## Převede číslo na text ve formátu měny Kč (česká koruna). +EXACT = STEJNÉ ## Zkontroluje, zda jsou dvě textové hodnoty shodné. +FIND = NAJÍT ## Nalezne textovou hodnotu uvnitř jiné (rozlišuje malá a velká písmena). +FINDB = FINDB ## Nalezne textovou hodnotu uvnitř jiné (rozlišuje malá a velká písmena). +FIXED = ZAOKROUHLIT.NA.TEXT ## Zformátuje číslo jako text s pevným počtem desetinných míst. +JIS = JIS ## Změní znaky s poloviční šířkou (jednobajtové) v řetězci znaků na znaky s plnou šířkou (dvoubajtové). +LEFT = ZLEVA ## Vrátí první znaky textové hodnoty umístěné nejvíce vlevo. +LEFTB = LEFTB ## Vrátí první znaky textové hodnoty umístěné nejvíce vlevo. +LEN = DÉLKA ## Vrátí počet znaků textového řetězce. +LENB = LENB ## Vrátí počet znaků textového řetězce. +LOWER = MALÁ ## Převede text na malá písmena. +MID = ČÁST ## Vrátí určitý počet znaků textového řetězce počínaje zadaným místem. +MIDB = MIDB ## Vrátí určitý počet znaků textového řetězce počínaje zadaným místem. +PHONETIC = ZVUKOVÉ ## Extrahuje fonetické znaky (furigana) z textového řetězce. +PROPER = VELKÁ2 ## Převede první písmeno každého slova textové hodnoty na velké. +REPLACE = NAHRADIT ## Nahradí znaky uvnitř textu. +REPLACEB = NAHRADITB ## Nahradí znaky uvnitř textu. +REPT = OPAKOVAT ## Zopakuje text podle zadaného počtu opakování. +RIGHT = ZPRAVA ## Vrátí první znaky textové hodnoty umístěné nejvíce vpravo. +RIGHTB = RIGHTB ## Vrátí první znaky textové hodnoty umístěné nejvíce vpravo. +SEARCH = HLEDAT ## Nalezne textovou hodnotu uvnitř jiné (malá a velká písmena nejsou rozlišována). +SEARCHB = SEARCHB ## Nalezne textovou hodnotu uvnitř jiné (malá a velká písmena nejsou rozlišována). +SUBSTITUTE = DOSADIT ## V textovém řetězci nahradí starý text novým. +T = T ## Převede argumenty na text. +TEXT = HODNOTA.NA.TEXT ## Zformátuje číslo a převede ho na text. +TRIM = PROČISTIT ## Odstraní z textu mezery. +UPPER = VELKÁ ## Převede text na velká písmena. +VALUE = HODNOTA ## Převede textový argument na číslo. diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/da/config b/plugins/excel_reader/Classes/PHPExcel/locale/da/config new file mode 100755 index 0000000..49292f1 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/da/config @@ -0,0 +1,48 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = kr + + + +## +## Excel Error Codes (For future use) +## +NULL = #NUL! +DIV0 = #DIVISION/0! +VALUE = #VÆRDI! +REF = #REFERENCE! +NAME = #NAVN? +NUM = #NUM! +NA = #I/T diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/da/functions b/plugins/excel_reader/Classes/PHPExcel/locale/da/functions new file mode 100755 index 0000000..affc19a --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/da/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Tilføjelsesprogram- og automatiseringsfunktioner +## +GETPIVOTDATA = HENTPIVOTDATA ## Returnerer data, der er lagret i en pivottabelrapport + + +## +## Cube functions Kubefunktioner +## +CUBEKPIMEMBER = KUBE.KPI.MEDLEM ## Returnerer navn, egenskab og mål for en KPI-indikator og viser navnet og egenskaben i cellen. En KPI-indikator er en målbar størrelse, f.eks. bruttooverskud pr. måned eller personaleudskiftning pr. kvartal, der bruges til at overvåge en organisations præstationer. +CUBEMEMBER = KUBE.MEDLEM ## Returnerer et medlem eller en tupel fra kubehierarkiet. Bruges til at validere, om et medlem eller en tupel findes i kuben. +CUBEMEMBERPROPERTY = KUBEMEDLEM.EGENSKAB ## Returnerer værdien af en egenskab for et medlem i kuben. Bruges til at validere, om et medlemsnavn findes i kuben, og returnere den angivne egenskab for medlemmet. +CUBERANKEDMEMBER = KUBEMEDLEM.RANG ## Returnerer det n'te eller rangordnede medlem i et sæt. Bruges til at returnere et eller flere elementer i et sæt, f.eks. topsælgere eller de 10 bedste elever. +CUBESET = KUBESÆT ## Definerer et beregnet sæt medlemmer eller tupler ved at sende et sætudtryk til kuben på serveren, som opretter sættet og returnerer det til Microsoft Office Excel. +CUBESETCOUNT = KUBESÆT.TÆL ## Returnerer antallet af elementer i et sæt. +CUBEVALUE = KUBEVÆRDI ## Returnerer en sammenlagt (aggregeret) værdi fra en kube. + + +## +## Database functions Databasefunktioner +## +DAVERAGE = DMIDDEL ## Returnerer gennemsnittet af markerede databaseposter +DCOUNT = DTÆL ## Tæller de celler, der indeholder tal, i en database +DCOUNTA = DTÆLV ## Tæller udfyldte celler i en database +DGET = DHENT ## Uddrager en enkelt post, der opfylder de angivne kriterier, fra en database +DMAX = DMAKS ## Returnerer den største værdi blandt markerede databaseposter +DMIN = DMIN ## Returnerer den mindste værdi blandt markerede databaseposter +DPRODUCT = DPRODUKT ## Ganger værdierne i et bestemt felt med poster, der opfylder kriterierne i en database +DSTDEV = DSTDAFV ## Beregner et skøn over standardafvigelsen baseret på en stikprøve af markerede databaseposter +DSTDEVP = DSTDAFVP ## Beregner standardafvigelsen baseret på hele populationen af markerede databaseposter +DSUM = DSUM ## Sammenlægger de tal i feltkolonnen i databasen, der opfylder kriterierne +DVAR = DVARIANS ## Beregner varians baseret på en stikprøve af markerede databaseposter +DVARP = DVARIANSP ## Beregner varians baseret på hele populationen af markerede databaseposter + + +## +## Date and time functions Dato- og klokkeslætsfunktioner +## +DATE = DATO ## Returnerer serienummeret for en bestemt dato +DATEVALUE = DATOVÆRDI ## Konverterer en dato i form af tekst til et serienummer +DAY = DAG ## Konverterer et serienummer til en dag i måneden +DAYS360 = DAGE360 ## Beregner antallet af dage mellem to datoer på grundlag af et år med 360 dage +EDATE = EDATO ## Returnerer serienummeret for den dato, der ligger det angivne antal måneder før eller efter startdatoen +EOMONTH = SLUT.PÅ.MÅNED ## Returnerer serienummeret på den sidste dag i måneden før eller efter et angivet antal måneder +HOUR = TIME ## Konverterer et serienummer til en time +MINUTE = MINUT ## Konverterer et serienummer til et minut +MONTH = MÅNED ## Konverterer et serienummer til en måned +NETWORKDAYS = ANTAL.ARBEJDSDAGE ## Returnerer antallet af hele arbejdsdage mellem to datoer +NOW = NU ## Returnerer serienummeret for den aktuelle dato eller det aktuelle klokkeslæt +SECOND = SEKUND ## Konverterer et serienummer til et sekund +TIME = KLOKKESLÆT ## Returnerer serienummeret for et bestemt klokkeslæt +TIMEVALUE = TIDSVÆRDI ## Konverterer et klokkeslæt i form af tekst til et serienummer +TODAY = IDAG ## Returnerer serienummeret for dags dato +WEEKDAY = UGEDAG ## Konverterer et serienummer til en ugedag +WEEKNUM = UGE.NR ## Konverterer et serienummer til et tal, der angiver ugenummeret i året +WORKDAY = ARBEJDSDAG ## Returnerer serienummeret for dagen før eller efter det angivne antal arbejdsdage +YEAR = ÅR ## Konverterer et serienummer til et år +YEARFRAC = ÅR.BRØK ## Returnerer årsbrøken, der repræsenterer antallet af hele dage mellem startdato og slutdato + + +## +## Engineering functions Tekniske funktioner +## +BESSELI = BESSELI ## Returnerer den modificerede Bessel-funktion In(x) +BESSELJ = BESSELJ ## Returnerer Bessel-funktionen Jn(x) +BESSELK = BESSELK ## Returnerer den modificerede Bessel-funktion Kn(x) +BESSELY = BESSELY ## Returnerer Bessel-funktionen Yn(x) +BIN2DEC = BIN.TIL.DEC ## Konverterer et binært tal til et decimaltal +BIN2HEX = BIN.TIL.HEX ## Konverterer et binært tal til et heksadecimalt tal +BIN2OCT = BIN.TIL.OKT ## Konverterer et binært tal til et oktaltal. +COMPLEX = KOMPLEKS ## Konverterer reelle og imaginære koefficienter til et komplekst tal +CONVERT = KONVERTER ## Konverterer et tal fra én måleenhed til en anden +DEC2BIN = DEC.TIL.BIN ## Konverterer et decimaltal til et binært tal +DEC2HEX = DEC.TIL.HEX ## Konverterer et decimaltal til et heksadecimalt tal +DEC2OCT = DEC.TIL.OKT ## Konverterer et decimaltal til et oktaltal +DELTA = DELTA ## Tester, om to værdier er ens +ERF = FEJLFUNK ## Returner fejlfunktionen +ERFC = FEJLFUNK.KOMP ## Returnerer den komplementære fejlfunktion +GESTEP = GETRIN ## Tester, om et tal er større end en grænseværdi +HEX2BIN = HEX.TIL.BIN ## Konverterer et heksadecimalt tal til et binært tal +HEX2DEC = HEX.TIL.DEC ## Konverterer et decimaltal til et heksadecimalt tal +HEX2OCT = HEX.TIL.OKT ## Konverterer et heksadecimalt tal til et oktaltal +IMABS = IMAGABS ## Returnerer den absolutte værdi (modulus) for et komplekst tal +IMAGINARY = IMAGINÆR ## Returnerer den imaginære koefficient for et komplekst tal +IMARGUMENT = IMAGARGUMENT ## Returnerer argumentet theta, en vinkel udtrykt i radianer +IMCONJUGATE = IMAGKONJUGERE ## Returnerer den komplekse konjugation af et komplekst tal +IMCOS = IMAGCOS ## Returnerer et komplekst tals cosinus +IMDIV = IMAGDIV ## Returnerer kvotienten for to komplekse tal +IMEXP = IMAGEKSP ## Returnerer et komplekst tals eksponentialfunktion +IMLN = IMAGLN ## Returnerer et komplekst tals naturlige logaritme +IMLOG10 = IMAGLOG10 ## Returnerer et komplekst tals sædvanlige logaritme (titalslogaritme) +IMLOG2 = IMAGLOG2 ## Returnerer et komplekst tals sædvanlige logaritme (totalslogaritme) +IMPOWER = IMAGPOTENS ## Returnerer et komplekst tal opløftet i en heltalspotens +IMPRODUCT = IMAGPRODUKT ## Returnerer produktet af komplekse tal +IMREAL = IMAGREELT ## Returnerer den reelle koefficient for et komplekst tal +IMSIN = IMAGSIN ## Returnerer et komplekst tals sinus +IMSQRT = IMAGKVROD ## Returnerer et komplekst tals kvadratrod +IMSUB = IMAGSUB ## Returnerer forskellen mellem to komplekse tal +IMSUM = IMAGSUM ## Returnerer summen af komplekse tal +OCT2BIN = OKT.TIL.BIN ## Konverterer et oktaltal til et binært tal +OCT2DEC = OKT.TIL.DEC ## Konverterer et oktaltal til et decimaltal +OCT2HEX = OKT.TIL.HEX ## Konverterer et oktaltal til et heksadecimalt tal + + +## +## Financial functions Finansielle funktioner +## +ACCRINT = PÅLØBRENTE ## Returnerer den påløbne rente for et værdipapir med periodiske renteudbetalinger +ACCRINTM = PÅLØBRENTE.UDLØB ## Returnerer den påløbne rente for et værdipapir, hvor renteudbetalingen finder sted ved papirets udløb +AMORDEGRC = AMORDEGRC ## Returnerer afskrivningsbeløbet for hver regnskabsperiode ved hjælp af en afskrivningskoefficient +AMORLINC = AMORLINC ## Returnerer afskrivningsbeløbet for hver regnskabsperiode +COUPDAYBS = KUPONDAGE.SA ## Returnerer antallet af dage fra starten af kuponperioden til afregningsdatoen +COUPDAYS = KUPONDAGE.A ## Returnerer antallet af dage fra begyndelsen af kuponperioden til afregningsdatoen +COUPDAYSNC = KUPONDAGE.ANK ## Returnerer antallet af dage i den kuponperiode, der indeholder afregningsdatoen +COUPNCD = KUPONDAG.NÆSTE ## Returnerer den næste kupondato efter afregningsdatoen +COUPNUM = KUPONBETALINGER ## Returnerer antallet af kuponudbetalinger mellem afregnings- og udløbsdatoen +COUPPCD = KUPONDAG.FORRIGE ## Returnerer den forrige kupondato før afregningsdatoen +CUMIPMT = AKKUM.RENTE ## Returnerer den akkumulerede rente, der betales på et lån mellem to perioder +CUMPRINC = AKKUM.HOVEDSTOL ## Returnerer den akkumulerede nedbringelse af hovedstol mellem to perioder +DB = DB ## Returnerer afskrivningen på et aktiv i en angivet periode ved anvendelse af saldometoden +DDB = DSA ## Returnerer afskrivningsbeløbet for et aktiv over en bestemt periode ved anvendelse af dobbeltsaldometoden eller en anden afskrivningsmetode, som du angiver +DISC = DISKONTO ## Returnerer et værdipapirs diskonto +DOLLARDE = KR.DECIMAL ## Konverterer en kronepris udtrykt som brøk til en kronepris udtrykt som decimaltal +DOLLARFR = KR.BRØK ## Konverterer en kronepris udtrykt som decimaltal til en kronepris udtrykt som brøk +DURATION = VARIGHED ## Returnerer den årlige løbetid for et værdipapir med periodiske renteudbetalinger +EFFECT = EFFEKTIV.RENTE ## Returnerer den årlige effektive rente +FV = FV ## Returnerer fremtidsværdien af en investering +FVSCHEDULE = FVTABEL ## Returnerer den fremtidige værdi af en hovedstol, når der er tilskrevet rente og rentes rente efter forskellige rentesatser +INTRATE = RENTEFOD ## Returnerer renten på et fuldt ud investeret værdipapir +IPMT = R.YDELSE ## Returnerer renten fra en investering for en given periode +IRR = IA ## Returnerer den interne rente for en række pengestrømme +ISPMT = ISPMT ## Beregner den betalte rente i løbet af en bestemt investeringsperiode +MDURATION = MVARIGHED ## Returnerer Macauleys modificerede løbetid for et værdipapir med en formodet pari på kr. 100 +MIRR = MIA ## Returnerer den interne forrentning, hvor positive og negative pengestrømme finansieres til forskellig rente +NOMINAL = NOMINEL ## Returnerer den årlige nominelle rente +NPER = NPER ## Returnerer antallet af perioder for en investering +NPV = NUTIDSVÆRDI ## Returnerer nettonutidsværdien for en investering baseret på en række periodiske pengestrømme og en diskonteringssats +ODDFPRICE = ULIGE.KURS.PÅLYDENDE ## Returnerer kursen pr. kr. 100 nominel værdi for et værdipapir med en ulige (kort eller lang) første periode +ODDFYIELD = ULIGE.FØRSTE.AFKAST ## Returnerer afkastet for et værdipapir med ulige første periode +ODDLPRICE = ULIGE.SIDSTE.KURS ## Returnerer kursen pr. kr. 100 nominel værdi for et værdipapir med ulige sidste periode +ODDLYIELD = ULIGE.SIDSTE.AFKAST ## Returnerer afkastet for et værdipapir med ulige sidste periode +PMT = YDELSE ## Returnerer renten fra en investering for en given periode +PPMT = H.YDELSE ## Returnerer ydelsen på hovedstolen for en investering i en given periode +PRICE = KURS ## Returnerer kursen pr. kr 100 nominel værdi for et værdipapir med periodiske renteudbetalinger +PRICEDISC = KURS.DISKONTO ## Returnerer kursen pr. kr 100 nominel værdi for et diskonteret værdipapir +PRICEMAT = KURS.UDLØB ## Returnerer kursen pr. kr 100 nominel værdi for et værdipapir, hvor renten udbetales ved papirets udløb +PV = NV ## Returnerer den nuværende værdi af en investering +RATE = RENTE ## Returnerer renten i hver periode for en annuitet +RECEIVED = MODTAGET.VED.UDLØB ## Returnerer det beløb, der modtages ved udløbet af et fuldt ud investeret værdipapir +SLN = LA ## Returnerer den lineære afskrivning for et aktiv i en enkelt periode +SYD = ÅRSAFSKRIVNING ## Returnerer den årlige afskrivning på et aktiv i en bestemt periode +TBILLEQ = STATSOBLIGATION ## Returnerer det obligationsækvivalente afkast for en statsobligation +TBILLPRICE = STATSOBLIGATION.KURS ## Returnerer kursen pr. kr 100 nominel værdi for en statsobligation +TBILLYIELD = STATSOBLIGATION.AFKAST ## Returnerer en afkastet på en statsobligation +VDB = VSA ## Returnerer afskrivningen på et aktiv i en angivet periode, herunder delperioder, ved brug af dobbeltsaldometoden +XIRR = INTERN.RENTE ## Returnerer den interne rente for en plan over pengestrømme, der ikke behøver at være periodiske +XNPV = NETTO.NUTIDSVÆRDI ## Returnerer nutidsværdien for en plan over pengestrømme, der ikke behøver at være periodiske +YIELD = AFKAST ## Returnerer afkastet for et værdipapir med periodiske renteudbetalinger +YIELDDISC = AFKAST.DISKONTO ## Returnerer det årlige afkast for et diskonteret værdipapir, f.eks. en statsobligation +YIELDMAT = AFKAST.UDLØBSDATO ## Returnerer det årlige afkast for et værdipapir, hvor renten udbetales ved papirets udløb + + +## +## Information functions Informationsfunktioner +## +CELL = CELLE ## Returnerer oplysninger om formatering, placering eller indhold af en celle +ERROR.TYPE = FEJLTYPE ## Returnerer et tal, der svarer til en fejltype +INFO = INFO ## Returnerer oplysninger om det aktuelle operativmiljø +ISBLANK = ER.TOM ## Returnerer SAND, hvis værdien er tom +ISERR = ER.FJL ## Returnerer SAND, hvis værdien er en fejlværdi undtagen #I/T +ISERROR = ER.FEJL ## Returnerer SAND, hvis værdien er en fejlværdi +ISEVEN = ER.LIGE ## Returnerer SAND, hvis tallet er lige +ISLOGICAL = ER.LOGISK ## Returnerer SAND, hvis værdien er en logisk værdi +ISNA = ER.IKKE.TILGÆNGELIG ## Returnerer SAND, hvis værdien er fejlværdien #I/T +ISNONTEXT = ER.IKKE.TEKST ## Returnerer SAND, hvis værdien ikke er tekst +ISNUMBER = ER.TAL ## Returnerer SAND, hvis værdien er et tal +ISODD = ER.ULIGE ## Returnerer SAND, hvis tallet er ulige +ISREF = ER.REFERENCE ## Returnerer SAND, hvis værdien er en reference +ISTEXT = ER.TEKST ## Returnerer SAND, hvis værdien er tekst +N = TAL ## Returnerer en værdi konverteret til et tal +NA = IKKE.TILGÆNGELIG ## Returnerer fejlværdien #I/T +TYPE = VÆRDITYPE ## Returnerer et tal, der angiver datatypen for en værdi + + +## +## Logical functions Logiske funktioner +## +AND = OG ## Returnerer SAND, hvis alle argumenterne er sande +FALSE = FALSK ## Returnerer den logiske værdi FALSK +IF = HVIS ## Angiver en logisk test, der skal udføres +IFERROR = HVIS.FEJL ## Returnerer en værdi, du angiver, hvis en formel evauleres som en fejl. Returnerer i modsat fald resultatet af formlen +NOT = IKKE ## Vender argumentets logik om +OR = ELLER ## Returneret værdien SAND, hvis mindst ét argument er sandt +TRUE = SAND ## Returnerer den logiske værdi SAND + + +## +## Lookup and reference functions Opslags- og referencefunktioner +## +ADDRESS = ADRESSE ## Returnerer en reference som tekst til en enkelt celle i et regneark +AREAS = OMRÅDER ## Returnerer antallet af områder i en reference +CHOOSE = VÆLG ## Vælger en værdi på en liste med værdier +COLUMN = KOLONNE ## Returnerer kolonnenummeret i en reference +COLUMNS = KOLONNER ## Returnerer antallet af kolonner i en reference +HLOOKUP = VOPSLAG ## Søger i den øverste række af en matrix og returnerer værdien af den angivne celle +HYPERLINK = HYPERLINK ## Opretter en genvej kaldet et hyperlink, der åbner et dokument, som er lagret på en netværksserver, på et intranet eller på internettet +INDEX = INDEKS ## Anvender et indeks til at vælge en værdi fra en reference eller en matrix +INDIRECT = INDIREKTE ## Returnerer en reference, der er angivet af en tekstværdi +LOOKUP = SLÅ.OP ## Søger værdier i en vektor eller en matrix +MATCH = SAMMENLIGN ## Søger værdier i en reference eller en matrix +OFFSET = FORSKYDNING ## Returnerer en reference forskudt i forhold til en given reference +ROW = RÆKKE ## Returnerer rækkenummeret for en reference +ROWS = RÆKKER ## Returnerer antallet af rækker i en reference +RTD = RTD ## Henter realtidsdata fra et program, der understøtter COM-automatisering (Automation: En metode til at arbejde med objekter fra et andet program eller udviklingsværktøj. Automation, som tidligere blev kaldt OLE Automation, er en industristandard og en funktion i COM (Component Object Model).) +TRANSPOSE = TRANSPONER ## Returnerer en transponeret matrix +VLOOKUP = LOPSLAG ## Søger i øverste række af en matrix og flytter på tværs af rækken for at returnere en celleværdi + + +## +## Math and trigonometry functions Matematiske og trigonometriske funktioner +## +ABS = ABS ## Returnerer den absolutte værdi af et tal +ACOS = ARCCOS ## Returnerer et tals arcus cosinus +ACOSH = ARCCOSH ## Returnerer den inverse hyperbolske cosinus af tal +ASIN = ARCSIN ## Returnerer et tals arcus sinus +ASINH = ARCSINH ## Returnerer den inverse hyperbolske sinus for tal +ATAN = ARCTAN ## Returnerer et tals arcus tangens +ATAN2 = ARCTAN2 ## Returnerer de angivne x- og y-koordinaters arcus tangens +ATANH = ARCTANH ## Returnerer et tals inverse hyperbolske tangens +CEILING = AFRUND.LOFT ## Afrunder et tal til nærmeste heltal eller til nærmeste multiplum af betydning +COMBIN = KOMBIN ## Returnerer antallet af kombinationer for et givet antal objekter +COS = COS ## Returnerer et tals cosinus +COSH = COSH ## Returnerer den inverse hyperbolske cosinus af et tal +DEGREES = GRADER ## Konverterer radianer til grader +EVEN = LIGE ## Runder et tal op til nærmeste lige heltal +EXP = EKSP ## Returnerer e opløftet til en potens af et angivet tal +FACT = FAKULTET ## Returnerer et tals fakultet +FACTDOUBLE = DOBBELT.FAKULTET ## Returnerer et tals dobbelte fakultet +FLOOR = AFRUND.GULV ## Runder et tal ned mod nul +GCD = STØRSTE.FÆLLES.DIVISOR ## Returnerer den største fælles divisor +INT = HELTAL ## Nedrunder et tal til det nærmeste heltal +LCM = MINDSTE.FÆLLES.MULTIPLUM ## Returnerer det mindste fælles multiplum +LN = LN ## Returnerer et tals naturlige logaritme +LOG = LOG ## Returnerer logaritmen for et tal på grundlag af et angivet grundtal +LOG10 = LOG10 ## Returnerer titalslogaritmen af et tal +MDETERM = MDETERM ## Returnerer determinanten for en matrix +MINVERSE = MINVERT ## Returnerer den inverse matrix for en matrix +MMULT = MPRODUKT ## Returnerer matrixproduktet af to matrixer +MOD = REST ## Returnerer restværdien fra division +MROUND = MAFRUND ## Returnerer et tal afrundet til det ønskede multiplum +MULTINOMIAL = MULTINOMIAL ## Returnerer et multinomialt talsæt +ODD = ULIGE ## Runder et tal op til nærmeste ulige heltal +PI = PI ## Returnerer værdien af pi +POWER = POTENS ## Returnerer resultatet af et tal opløftet til en potens +PRODUCT = PRODUKT ## Multiplicerer argumenterne +QUOTIENT = KVOTIENT ## Returnerer heltalsdelen ved division +RADIANS = RADIANER ## Konverterer grader til radianer +RAND = SLUMP ## Returnerer et tilfældigt tal mellem 0 og 1 +RANDBETWEEN = SLUMP.MELLEM ## Returnerer et tilfældigt tal mellem de tal, der angives +ROMAN = ROMERTAL ## Konverterer et arabertal til romertal som tekst +ROUND = AFRUND ## Afrunder et tal til et angivet antal decimaler +ROUNDDOWN = RUND.NED ## Runder et tal ned mod nul +ROUNDUP = RUND.OP ## Runder et tal op, væk fra 0 (nul) +SERIESSUM = SERIESUM ## Returnerer summen af en potensserie baseret på en formel +SIGN = FORTEGN ## Returnerer et tals fortegn +SIN = SIN ## Returnerer en given vinkels sinusværdi +SINH = SINH ## Returnerer den hyperbolske sinus af et tal +SQRT = KVROD ## Returnerer en positiv kvadratrod +SQRTPI = KVRODPI ## Returnerer kvadratroden af (tal * pi;) +SUBTOTAL = SUBTOTAL ## Returnerer en subtotal på en liste eller i en database +SUM = SUM ## Lægger argumenterne sammen +SUMIF = SUM.HVIS ## Lægger de celler sammen, der er specificeret af et givet kriterium. +SUMIFS = SUM.HVISER ## Lægger de celler i et område sammen, der opfylder flere kriterier. +SUMPRODUCT = SUMPRODUKT ## Returnerer summen af produkter af ens matrixkomponenter +SUMSQ = SUMKV ## Returnerer summen af argumenternes kvadrater +SUMX2MY2 = SUMX2MY2 ## Returnerer summen af differensen mellem kvadrater af ens værdier i to matrixer +SUMX2PY2 = SUMX2PY2 ## Returnerer summen af summen af kvadrater af tilsvarende værdier i to matrixer +SUMXMY2 = SUMXMY2 ## Returnerer summen af kvadrater af differenser mellem ens værdier i to matrixer +TAN = TAN ## Returnerer et tals tangens +TANH = TANH ## Returnerer et tals hyperbolske tangens +TRUNC = AFKORT ## Afkorter et tal til et heltal + + +## +## Statistical functions Statistiske funktioner +## +AVEDEV = MAD ## Returnerer den gennemsnitlige numeriske afvigelse fra stikprøvens middelværdi +AVERAGE = MIDDEL ## Returnerer middelværdien af argumenterne +AVERAGEA = MIDDELV ## Returnerer middelværdien af argumenterne og medtager tal, tekst og logiske værdier +AVERAGEIF = MIDDEL.HVIS ## Returnerer gennemsnittet (den aritmetiske middelværdi) af alle de celler, der opfylder et givet kriterium, i et område +AVERAGEIFS = MIDDEL.HVISER ## Returnerer gennemsnittet (den aritmetiske middelværdi) af alle de celler, der opfylder flere kriterier. +BETADIST = BETAFORDELING ## Returnerer den kumulative betafordelingsfunktion +BETAINV = BETAINV ## Returnerer den inverse kumulative fordelingsfunktion for en angivet betafordeling +BINOMDIST = BINOMIALFORDELING ## Returnerer punktsandsynligheden for binomialfordelingen +CHIDIST = CHIFORDELING ## Returnerer fraktilsandsynligheden for en chi2-fordeling +CHIINV = CHIINV ## Returnerer den inverse fraktilsandsynlighed for en chi2-fordeling +CHITEST = CHITEST ## Foretager en test for uafhængighed +CONFIDENCE = KONFIDENSINTERVAL ## Returnerer et konfidensinterval for en population +CORREL = KORRELATION ## Returnerer korrelationskoefficienten mellem to datasæt +COUNT = TÆL ## Tæller antallet af tal på en liste med argumenter +COUNTA = TÆLV ## Tæller antallet af værdier på en liste med argumenter +COUNTBLANK = ANTAL.BLANKE ## Tæller antallet af tomme celler i et område +COUNTIF = TÆLHVIS ## Tæller antallet af celler, som opfylder de givne kriterier, i et område +COUNTIFS = TÆL.HVISER ## Tæller antallet af de celler, som opfylder flere kriterier, i et område +COVAR = KOVARIANS ## Beregner kovariansen mellem to stokastiske variabler +CRITBINOM = KRITBINOM ## Returnerer den mindste værdi for x, for hvilken det gælder, at fordelingsfunktionen er mindre end eller lig med kriterieværdien. +DEVSQ = SAK ## Returnerer summen af de kvadrerede afvigelser fra middelværdien +EXPONDIST = EKSPFORDELING ## Returnerer eksponentialfordelingen +FDIST = FFORDELING ## Returnerer fraktilsandsynligheden for F-fordelingen +FINV = FINV ## Returnerer den inverse fraktilsandsynlighed for F-fordelingen +FISHER = FISHER ## Returnerer Fisher-transformationen +FISHERINV = FISHERINV ## Returnerer den inverse Fisher-transformation +FORECAST = PROGNOSE ## Returnerer en prognoseværdi baseret på lineær tendens +FREQUENCY = FREKVENS ## Returnerer en frekvensfordeling i en søjlevektor +FTEST = FTEST ## Returnerer resultatet af en F-test til sammenligning af varians +GAMMADIST = GAMMAFORDELING ## Returnerer fordelingsfunktionen for gammafordelingen +GAMMAINV = GAMMAINV ## Returnerer den inverse fordelingsfunktion for gammafordelingen +GAMMALN = GAMMALN ## Returnerer den naturlige logaritme til gammafordelingen, G(x) +GEOMEAN = GEOMIDDELVÆRDI ## Returnerer det geometriske gennemsnit +GROWTH = FORØGELSE ## Returnerer værdier langs en eksponentiel tendens +HARMEAN = HARMIDDELVÆRDI ## Returnerer det harmoniske gennemsnit +HYPGEOMDIST = HYPGEOFORDELING ## Returnerer punktsandsynligheden i en hypergeometrisk fordeling +INTERCEPT = SKÆRING ## Returnerer afskæringsværdien på y-aksen i en lineær regression +KURT = TOPSTEJL ## Returnerer kurtosisværdien for en stokastisk variabel +LARGE = STOR ## Returnerer den k'te største værdi i et datasæt +LINEST = LINREGR ## Returnerer parameterestimaterne for en lineær tendens +LOGEST = LOGREGR ## Returnerer parameterestimaterne for en eksponentiel tendens +LOGINV = LOGINV ## Returnerer den inverse fordelingsfunktion for lognormalfordelingen +LOGNORMDIST = LOGNORMFORDELING ## Returnerer fordelingsfunktionen for lognormalfordelingen +MAX = MAKS ## Returnerer den maksimale værdi på en liste med argumenter. +MAXA = MAKSV ## Returnerer den maksimale værdi på en liste med argumenter og medtager tal, tekst og logiske værdier +MEDIAN = MEDIAN ## Returnerer medianen for de angivne tal +MIN = MIN ## Returnerer den mindste værdi på en liste med argumenter. +MINA = MINV ## Returnerer den mindste værdi på en liste med argumenter og medtager tal, tekst og logiske værdier +MODE = HYPPIGST ## Returnerer den hyppigste værdi i et datasæt +NEGBINOMDIST = NEGBINOMFORDELING ## Returnerer den negative binomialfordeling +NORMDIST = NORMFORDELING ## Returnerer fordelingsfunktionen for normalfordelingen +NORMINV = NORMINV ## Returnerer den inverse fordelingsfunktion for normalfordelingen +NORMSDIST = STANDARDNORMFORDELING ## Returnerer fordelingsfunktionen for standardnormalfordelingen +NORMSINV = STANDARDNORMINV ## Returnerer den inverse fordelingsfunktion for standardnormalfordelingen +PEARSON = PEARSON ## Returnerer Pearsons korrelationskoefficient +PERCENTILE = FRAKTIL ## Returnerer den k'te fraktil for datasættet +PERCENTRANK = PROCENTPLADS ## Returnerer den procentuelle rang for en given værdi i et datasæt +PERMUT = PERMUT ## Returnerer antallet af permutationer for et givet sæt objekter +POISSON = POISSON ## Returnerer fordelingsfunktionen for en Poisson-fordeling +PROB = SANDSYNLIGHED ## Returnerer intervalsandsynligheden +QUARTILE = KVARTIL ## Returnerer kvartilen i et givet datasæt +RANK = PLADS ## Returnerer rangen for et tal på en liste med tal +RSQ = FORKLARINGSGRAD ## Returnerer R2-værdien fra en simpel lineær regression +SKEW = SKÆVHED ## Returnerer skævheden for en stokastisk variabel +SLOPE = HÆLDNING ## Returnerer estimatet på hældningen fra en simpel lineær regression +SMALL = MINDSTE ## Returnerer den k'te mindste værdi i datasættet +STANDARDIZE = STANDARDISER ## Returnerer en standardiseret værdi +STDEV = STDAFV ## Estimerer standardafvigelsen på basis af en stikprøve +STDEVA = STDAFVV ## Beregner standardafvigelsen på basis af en prøve og medtager tal, tekst og logiske værdier +STDEVP = STDAFVP ## Beregner standardafvigelsen på basis af en hel population +STDEVPA = STDAFVPV ## Beregner standardafvigelsen på basis af en hel population og medtager tal, tekst og logiske værdier +STEYX = STFYX ## Returnerer standardafvigelsen for de estimerede y-værdier i den simple lineære regression +TDIST = TFORDELING ## Returnerer fordelingsfunktionen for Student's t-fordeling +TINV = TINV ## Returnerer den inverse fordelingsfunktion for Student's t-fordeling +TREND = TENDENS ## Returnerer værdi under antagelse af en lineær tendens +TRIMMEAN = TRIMMIDDELVÆRDI ## Returnerer den trimmede middelværdi for datasættet +TTEST = TTEST ## Returnerer den sandsynlighed, der er forbundet med Student's t-test +VAR = VARIANS ## Beregner variansen på basis af en prøve +VARA = VARIANSV ## Beregner variansen på basis af en prøve og medtager tal, tekst og logiske værdier +VARP = VARIANSP ## Beregner variansen på basis af hele populationen +VARPA = VARIANSPV ## Beregner variansen på basis af hele populationen og medtager tal, tekst og logiske værdier +WEIBULL = WEIBULL ## Returnerer fordelingsfunktionen for Weibull-fordelingen +ZTEST = ZTEST ## Returnerer sandsynlighedsværdien ved en en-sidet z-test + + +## +## Text functions Tekstfunktioner +## +ASC = ASC ## Ændrer engelske tegn i fuld bredde (dobbelt-byte) eller katakana i en tegnstreng til tegn i halv bredde (enkelt-byte) +BAHTTEXT = BAHTTEKST ## Konverterer et tal til tekst ved hjælp af valutaformatet ß (baht) +CHAR = TEGN ## Returnerer det tegn, der svarer til kodenummeret +CLEAN = RENS ## Fjerner alle tegn, der ikke kan udskrives, fra tekst +CODE = KODE ## Returnerer en numerisk kode for det første tegn i en tekststreng +CONCATENATE = SAMMENKÆDNING ## Sammenkæder adskillige tekstelementer til ét tekstelement +DOLLAR = KR ## Konverterer et tal til tekst ved hjælp af valutaformatet kr. (kroner) +EXACT = EKSAKT ## Kontrollerer, om to tekstværdier er identiske +FIND = FIND ## Søger efter en tekstværdi i en anden tekstværdi (der skelnes mellem store og små bogstaver) +FINDB = FINDB ## Søger efter en tekstværdi i en anden tekstværdi (der skelnes mellem store og små bogstaver) +FIXED = FAST ## Formaterer et tal som tekst med et fast antal decimaler +JIS = JIS ## Ændrer engelske tegn i halv bredde (enkelt-byte) eller katakana i en tegnstreng til tegn i fuld bredde (dobbelt-byte) +LEFT = VENSTRE ## Returnerer tegnet længst til venstre i en tekstværdi +LEFTB = VENSTREB ## Returnerer tegnet længst til venstre i en tekstværdi +LEN = LÆNGDE ## Returnerer antallet af tegn i en tekststreng +LENB = LÆNGDEB ## Returnerer antallet af tegn i en tekststreng +LOWER = SMÅ.BOGSTAVER ## Konverterer tekst til små bogstaver +MID = MIDT ## Returnerer et bestemt antal tegn fra en tekststreng fra og med den angivne startposition +MIDB = MIDTB ## Returnerer et bestemt antal tegn fra en tekststreng fra og med den angivne startposition +PHONETIC = FONETISK ## Uddrager de fonetiske (furigana) tegn fra en tekststreng +PROPER = STORT.FORBOGSTAV ## Konverterer første bogstav i hvert ord i teksten til stort bogstav +REPLACE = ERSTAT ## Erstatter tegn i tekst +REPLACEB = ERSTATB ## Erstatter tegn i tekst +REPT = GENTAG ## Gentager tekst et givet antal gange +RIGHT = HØJRE ## Returnerer tegnet længste til højre i en tekstværdi +RIGHTB = HØJREB ## Returnerer tegnet længste til højre i en tekstværdi +SEARCH = SØG ## Søger efter en tekstværdi i en anden tekstværdi (der skelnes ikke mellem store og små bogstaver) +SEARCHB = SØGB ## Søger efter en tekstværdi i en anden tekstværdi (der skelnes ikke mellem store og små bogstaver) +SUBSTITUTE = UDSKIFT ## Udskifter gammel tekst med ny tekst i en tekststreng +T = T ## Konverterer argumenterne til tekst +TEXT = TEKST ## Formaterer et tal og konverterer det til tekst +TRIM = FJERN.OVERFLØDIGE.BLANKE ## Fjerner mellemrum fra tekst +UPPER = STORE.BOGSTAVER ## Konverterer tekst til store bogstaver +VALUE = VÆRDI ## Konverterer et tekstargument til et tal diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/de/config b/plugins/excel_reader/Classes/PHPExcel/locale/de/config new file mode 100755 index 0000000..9519349 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/de/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = € + + +## +## Excel Error Codes (For future use) +## +NULL = #NULL! +DIV0 = #DIV/0! +VALUE = #WERT! +REF = #BEZUG! +NAME = #NAME? +NUM = #ZAHL! +NA = #NV diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/de/functions b/plugins/excel_reader/Classes/PHPExcel/locale/de/functions new file mode 100755 index 0000000..1c19c5b --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/de/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Add-In- und Automatisierungsfunktionen +## +GETPIVOTDATA = PIVOTDATENZUORDNEN ## In einem PivotTable-Bericht gespeicherte Daten werden zurückgegeben. + + +## +## Cube functions Cubefunktionen +## +CUBEKPIMEMBER = CUBEKPIELEMENT ## Gibt Name, Eigenschaft und Measure eines Key Performance Indicators (KPI) zurück und zeigt den Namen und die Eigenschaft in der Zelle an. Ein KPI ist ein quantifizierbares Maß, wie z. B. der monatliche Bruttogewinn oder die vierteljährliche Mitarbeiterfluktuation, mit dessen Hilfe das Leistungsverhalten eines Unternehmens überwacht werden kann. +CUBEMEMBER = CUBEELEMENT ## Gibt ein Element oder ein Tuple in einer Cubehierarchie zurück. Wird verwendet, um zu überprüfen, ob das Element oder Tuple im Cube vorhanden ist. +CUBEMEMBERPROPERTY = CUBEELEMENTEIGENSCHAFT ## Gibt den Wert einer Elementeigenschaft im Cube zurück. Wird verwendet, um zu überprüfen, ob ein Elementname im Cube vorhanden ist, und um die für dieses Element angegebene Eigenschaft zurückzugeben. +CUBERANKEDMEMBER = CUBERANGELEMENT ## Gibt das n-te oder n-rangige Element in einer Menge zurück. Wird verwendet, um mindestens ein Element in einer Menge zurückzugeben, wie z. B. bester Vertriebsmitarbeiter oder 10 beste Kursteilnehmer. +CUBESET = CUBEMENGE ## Definiert eine berechnete Menge Elemente oder Tuples durch Senden eines Mengenausdrucks an den Cube auf dem Server, der die Menge erstellt und an Microsoft Office Excel zurückgibt. +CUBESETCOUNT = CUBEMENGENANZAHL ## Gibt die Anzahl der Elemente in einer Menge zurück. +CUBEVALUE = CUBEWERT ## Gibt einen Aggregatwert aus einem Cube zurück. + + +## +## Database functions Datenbankfunktionen +## +DAVERAGE = DBMITTELWERT ## Gibt den Mittelwert der ausgewählten Datenbankeinträge zurück +DCOUNT = DBANZAHL ## Zählt die Zellen mit Zahlen in einer Datenbank +DCOUNTA = DBANZAHL2 ## Zählt nicht leere Zellen in einer Datenbank +DGET = DBAUSZUG ## Extrahiert aus einer Datenbank einen einzelnen Datensatz, der den angegebenen Kriterien entspricht +DMAX = DBMAX ## Gibt den größten Wert aus ausgewählten Datenbankeinträgen zurück +DMIN = DBMIN ## Gibt den kleinsten Wert aus ausgewählten Datenbankeinträgen zurück +DPRODUCT = DBPRODUKT ## Multipliziert die Werte in einem bestimmten Feld mit Datensätzen, die den Kriterien in einer Datenbank entsprechen +DSTDEV = DBSTDABW ## Schätzt die Standardabweichung auf der Grundlage einer Stichprobe aus ausgewählten Datenbankeinträgen +DSTDEVP = DBSTDABWN ## Berechnet die Standardabweichung auf der Grundlage der Grundgesamtheit ausgewählter Datenbankeinträge +DSUM = DBSUMME ## Addiert die Zahlen in der Feldspalte mit Datensätzen in der Datenbank, die den Kriterien entsprechen +DVAR = DBVARIANZ ## Schätzt die Varianz auf der Grundlage ausgewählter Datenbankeinträge +DVARP = DBVARIANZEN ## Berechnet die Varianz auf der Grundlage der Grundgesamtheit ausgewählter Datenbankeinträge + + +## +## Date and time functions Datums- und Zeitfunktionen +## +DATE = DATUM ## Gibt die fortlaufende Zahl eines bestimmten Datums zurück +DATEVALUE = DATWERT ## Wandelt ein Datum in Form von Text in eine fortlaufende Zahl um +DAY = TAG ## Wandelt eine fortlaufende Zahl in den Tag des Monats um +DAYS360 = TAGE360 ## Berechnet die Anzahl der Tage zwischen zwei Datumsangaben ausgehend von einem Jahr, das 360 Tage hat +EDATE = EDATUM ## Gibt die fortlaufende Zahl des Datums zurück, bei dem es sich um die angegebene Anzahl von Monaten vor oder nach dem Anfangstermin handelt +EOMONTH = MONATSENDE ## Gibt die fortlaufende Zahl des letzten Tags des Monats vor oder nach einer festgelegten Anzahl von Monaten zurück +HOUR = STUNDE ## Wandelt eine fortlaufende Zahl in eine Stunde um +MINUTE = MINUTE ## Wandelt eine fortlaufende Zahl in eine Minute um +MONTH = MONAT ## Wandelt eine fortlaufende Zahl in einen Monat um +NETWORKDAYS = NETTOARBEITSTAGE ## Gibt die Anzahl von ganzen Arbeitstagen zwischen zwei Datumswerten zurück +NOW = JETZT ## Gibt die fortlaufende Zahl des aktuellen Datums und der aktuellen Uhrzeit zurück +SECOND = SEKUNDE ## Wandelt eine fortlaufende Zahl in eine Sekunde um +TIME = ZEIT ## Gibt die fortlaufende Zahl einer bestimmten Uhrzeit zurück +TIMEVALUE = ZEITWERT ## Wandelt eine Uhrzeit in Form von Text in eine fortlaufende Zahl um +TODAY = HEUTE ## Gibt die fortlaufende Zahl des heutigen Datums zurück +WEEKDAY = WOCHENTAG ## Wandelt eine fortlaufende Zahl in den Wochentag um +WEEKNUM = KALENDERWOCHE ## Wandelt eine fortlaufende Zahl in eine Zahl um, die angibt, in welche Woche eines Jahres das angegebene Datum fällt +WORKDAY = ARBEITSTAG ## Gibt die fortlaufende Zahl des Datums vor oder nach einer bestimmten Anzahl von Arbeitstagen zurück +YEAR = JAHR ## Wandelt eine fortlaufende Zahl in ein Jahr um +YEARFRAC = BRTEILJAHRE ## Gibt die Anzahl der ganzen Tage zwischen Ausgangsdatum und Enddatum in Bruchteilen von Jahren zurück + + +## +## Engineering functions Konstruktionsfunktionen +## +BESSELI = BESSELI ## Gibt die geänderte Besselfunktion In(x) zurück +BESSELJ = BESSELJ ## Gibt die Besselfunktion Jn(x) zurück +BESSELK = BESSELK ## Gibt die geänderte Besselfunktion Kn(x) zurück +BESSELY = BESSELY ## Gibt die Besselfunktion Yn(x) zurück +BIN2DEC = BININDEZ ## Wandelt eine binäre Zahl (Dualzahl) in eine dezimale Zahl um +BIN2HEX = BININHEX ## Wandelt eine binäre Zahl (Dualzahl) in eine hexadezimale Zahl um +BIN2OCT = BININOKT ## Wandelt eine binäre Zahl (Dualzahl) in eine oktale Zahl um +COMPLEX = KOMPLEXE ## Wandelt den Real- und Imaginärteil in eine komplexe Zahl um +CONVERT = UMWANDELN ## Wandelt eine Zahl von einem Maßsystem in ein anderes um +DEC2BIN = DEZINBIN ## Wandelt eine dezimale Zahl in eine binäre Zahl (Dualzahl) um +DEC2HEX = DEZINHEX ## Wandelt eine dezimale Zahl in eine hexadezimale Zahl um +DEC2OCT = DEZINOKT ## Wandelt eine dezimale Zahl in eine oktale Zahl um +DELTA = DELTA ## Überprüft, ob zwei Werte gleich sind +ERF = GAUSSFEHLER ## Gibt die Gauss'sche Fehlerfunktion zurück +ERFC = GAUSSFKOMPL ## Gibt das Komplement zur Gauss'schen Fehlerfunktion zurück +GESTEP = GGANZZAHL ## Überprüft, ob eine Zahl größer als ein gegebener Schwellenwert ist +HEX2BIN = HEXINBIN ## Wandelt eine hexadezimale Zahl in eine Binärzahl um +HEX2DEC = HEXINDEZ ## Wandelt eine hexadezimale Zahl in eine dezimale Zahl um +HEX2OCT = HEXINOKT ## Wandelt eine hexadezimale Zahl in eine Oktalzahl um +IMABS = IMABS ## Gibt den Absolutbetrag (Modulo) einer komplexen Zahl zurück +IMAGINARY = IMAGINÄRTEIL ## Gibt den Imaginärteil einer komplexen Zahl zurück +IMARGUMENT = IMARGUMENT ## Gibt das Argument Theta zurück, einen Winkel, der als Bogenmaß ausgedrückt wird +IMCONJUGATE = IMKONJUGIERTE ## Gibt die konjugierte komplexe Zahl zu einer komplexen Zahl zurück +IMCOS = IMCOS ## Gibt den Kosinus einer komplexen Zahl zurück +IMDIV = IMDIV ## Gibt den Quotienten zweier komplexer Zahlen zurück +IMEXP = IMEXP ## Gibt die algebraische Form einer in exponentieller Schreibweise vorliegenden komplexen Zahl zurück +IMLN = IMLN ## Gibt den natürlichen Logarithmus einer komplexen Zahl zurück +IMLOG10 = IMLOG10 ## Gibt den Logarithmus einer komplexen Zahl zur Basis 10 zurück +IMLOG2 = IMLOG2 ## Gibt den Logarithmus einer komplexen Zahl zur Basis 2 zurück +IMPOWER = IMAPOTENZ ## Potenziert eine komplexe Zahl mit einer ganzen Zahl +IMPRODUCT = IMPRODUKT ## Gibt das Produkt von komplexen Zahlen zurück +IMREAL = IMREALTEIL ## Gibt den Realteil einer komplexen Zahl zurück +IMSIN = IMSIN ## Gibt den Sinus einer komplexen Zahl zurück +IMSQRT = IMWURZEL ## Gibt die Quadratwurzel einer komplexen Zahl zurück +IMSUB = IMSUB ## Gibt die Differenz zwischen zwei komplexen Zahlen zurück +IMSUM = IMSUMME ## Gibt die Summe von komplexen Zahlen zurück +OCT2BIN = OKTINBIN ## Wandelt eine oktale Zahl in eine binäre Zahl (Dualzahl) um +OCT2DEC = OKTINDEZ ## Wandelt eine oktale Zahl in eine dezimale Zahl um +OCT2HEX = OKTINHEX ## Wandelt eine oktale Zahl in eine hexadezimale Zahl um + + +## +## Financial functions Finanzmathematische Funktionen +## +ACCRINT = AUFGELZINS ## Gibt die aufgelaufenen Zinsen (Stückzinsen) eines Wertpapiers mit periodischen Zinszahlungen zurück +ACCRINTM = AUFGELZINSF ## Gibt die aufgelaufenen Zinsen (Stückzinsen) eines Wertpapiers zurück, die bei Fälligkeit ausgezahlt werden +AMORDEGRC = AMORDEGRK ## Gibt die Abschreibung für die einzelnen Abschreibungszeiträume mithilfe eines Abschreibungskoeffizienten zurück +AMORLINC = AMORLINEARK ## Gibt die Abschreibung für die einzelnen Abschreibungszeiträume zurück +COUPDAYBS = ZINSTERMTAGVA ## Gibt die Anzahl der Tage vom Anfang des Zinstermins bis zum Abrechnungstermin zurück +COUPDAYS = ZINSTERMTAGE ## Gibt die Anzahl der Tage der Zinsperiode zurück, die den Abrechnungstermin einschließt +COUPDAYSNC = ZINSTERMTAGNZ ## Gibt die Anzahl der Tage vom Abrechnungstermin bis zum nächsten Zinstermin zurück +COUPNCD = ZINSTERMNZ ## Gibt das Datum des ersten Zinstermins nach dem Abrechnungstermin zurück +COUPNUM = ZINSTERMZAHL ## Gibt die Anzahl der Zinstermine zwischen Abrechnungs- und Fälligkeitsdatum zurück +COUPPCD = ZINSTERMVZ ## Gibt das Datum des letzten Zinstermins vor dem Abrechnungstermin zurück +CUMIPMT = KUMZINSZ ## Berechnet die kumulierten Zinsen, die zwischen zwei Perioden zu zahlen sind +CUMPRINC = KUMKAPITAL ## Berechnet die aufgelaufene Tilgung eines Darlehens, die zwischen zwei Perioden zu zahlen ist +DB = GDA2 ## Gibt die geometrisch-degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode zurück +DDB = GDA ## Gibt die Abschreibung eines Anlageguts für einen angegebenen Zeitraum unter Verwendung der degressiven Doppelraten-Abschreibung oder eines anderen von Ihnen angegebenen Abschreibungsverfahrens zurück +DISC = DISAGIO ## Gibt den in Prozent ausgedrückten Abzinsungssatz eines Wertpapiers zurück +DOLLARDE = NOTIERUNGDEZ ## Wandelt eine Notierung, die als Dezimalbruch ausgedrückt wurde, in eine Dezimalzahl um +DOLLARFR = NOTIERUNGBRU ## Wandelt eine Notierung, die als Dezimalzahl ausgedrückt wurde, in einen Dezimalbruch um +DURATION = DURATION ## Gibt die jährliche Duration eines Wertpapiers mit periodischen Zinszahlungen zurück +EFFECT = EFFEKTIV ## Gibt die jährliche Effektivverzinsung zurück +FV = ZW ## Gibt den zukünftigen Wert (Endwert) einer Investition zurück +FVSCHEDULE = ZW2 ## Gibt den aufgezinsten Wert des Anfangskapitals für eine Reihe periodisch unterschiedlicher Zinssätze zurück +INTRATE = ZINSSATZ ## Gibt den Zinssatz eines voll investierten Wertpapiers zurück +IPMT = ZINSZ ## Gibt die Zinszahlung einer Investition für die angegebene Periode zurück +IRR = IKV ## Gibt den internen Zinsfuß einer Investition ohne Finanzierungskosten oder Reinvestitionsgewinne zurück +ISPMT = ISPMT ## Berechnet die während eines bestimmten Zeitraums für eine Investition gezahlten Zinsen +MDURATION = MDURATION ## Gibt die geänderte Dauer für ein Wertpapier mit einem angenommenen Nennwert von 100 € zurück +MIRR = QIKV ## Gibt den internen Zinsfuß zurück, wobei positive und negative Zahlungen zu unterschiedlichen Sätzen finanziert werden +NOMINAL = NOMINAL ## Gibt die jährliche Nominalverzinsung zurück +NPER = ZZR ## Gibt die Anzahl der Zahlungsperioden einer Investition zurück +NPV = NBW ## Gibt den Nettobarwert einer Investition auf Basis periodisch anfallender Zahlungen und eines Abzinsungsfaktors zurück +ODDFPRICE = UNREGER.KURS ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers mit einem unregelmäßigen ersten Zinstermin zurück +ODDFYIELD = UNREGER.REND ## Gibt die Rendite eines Wertpapiers mit einem unregelmäßigen ersten Zinstermin zurück +ODDLPRICE = UNREGLE.KURS ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers mit einem unregelmäßigen letzten Zinstermin zurück +ODDLYIELD = UNREGLE.REND ## Gibt die Rendite eines Wertpapiers mit einem unregelmäßigen letzten Zinstermin zurück +PMT = RMZ ## Gibt die periodische Zahlung für eine Annuität zurück +PPMT = KAPZ ## Gibt die Kapitalrückzahlung einer Investition für eine angegebene Periode zurück +PRICE = KURS ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück, das periodisch Zinsen auszahlt +PRICEDISC = KURSDISAGIO ## Gibt den Kurs pro 100 € Nennwert eines unverzinslichen Wertpapiers zurück +PRICEMAT = KURSFÄLLIG ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück, das Zinsen am Fälligkeitsdatum auszahlt +PV = BW ## Gibt den Barwert einer Investition zurück +RATE = ZINS ## Gibt den Zinssatz pro Zeitraum einer Annuität zurück +RECEIVED = AUSZAHLUNG ## Gibt den Auszahlungsbetrag eines voll investierten Wertpapiers am Fälligkeitstermin zurück +SLN = LIA ## Gibt die lineare Abschreibung eines Wirtschaftsguts pro Periode zurück +SYD = DIA ## Gibt die arithmetisch-degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode zurück +TBILLEQ = TBILLÄQUIV ## Gibt die Rendite für ein Wertpapier zurück +TBILLPRICE = TBILLKURS ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück +TBILLYIELD = TBILLRENDITE ## Gibt die Rendite für ein Wertpapier zurück +VDB = VDB ## Gibt die degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode oder Teilperiode zurück +XIRR = XINTZINSFUSS ## Gibt den internen Zinsfuß einer Reihe nicht periodisch anfallender Zahlungen zurück +XNPV = XKAPITALWERT ## Gibt den Nettobarwert (Kapitalwert) einer Reihe nicht periodisch anfallender Zahlungen zurück +YIELD = RENDITE ## Gibt die Rendite eines Wertpapiers zurück, das periodisch Zinsen auszahlt +YIELDDISC = RENDITEDIS ## Gibt die jährliche Rendite eines unverzinslichen Wertpapiers zurück +YIELDMAT = RENDITEFÄLL ## Gibt die jährliche Rendite eines Wertpapiers zurück, das Zinsen am Fälligkeitsdatum auszahlt + + +## +## Information functions Informationsfunktionen +## +CELL = ZELLE ## Gibt Informationen zu Formatierung, Position oder Inhalt einer Zelle zurück +ERROR.TYPE = FEHLER.TYP ## Gibt eine Zahl zurück, die einem Fehlertyp entspricht +INFO = INFO ## Gibt Informationen zur aktuellen Betriebssystemumgebung zurück +ISBLANK = ISTLEER ## Gibt WAHR zurück, wenn der Wert leer ist +ISERR = ISTFEHL ## Gibt WAHR zurück, wenn der Wert ein beliebiger Fehlerwert außer #N/V ist +ISERROR = ISTFEHLER ## Gibt WAHR zurück, wenn der Wert ein beliebiger Fehlerwert ist +ISEVEN = ISTGERADE ## Gibt WAHR zurück, wenn es sich um eine gerade Zahl handelt +ISLOGICAL = ISTLOG ## Gibt WAHR zurück, wenn der Wert ein Wahrheitswert ist +ISNA = ISTNV ## Gibt WAHR zurück, wenn der Wert der Fehlerwert #N/V ist +ISNONTEXT = ISTKTEXT ## Gibt WAHR zurück, wenn der Wert ein Element ist, das keinen Text enthält +ISNUMBER = ISTZAHL ## Gibt WAHR zurück, wenn der Wert eine Zahl ist +ISODD = ISTUNGERADE ## Gibt WAHR zurück, wenn es sich um eine ungerade Zahl handelt +ISREF = ISTBEZUG ## Gibt WAHR zurück, wenn der Wert ein Bezug ist +ISTEXT = ISTTEXT ## Gibt WAHR zurück, wenn der Wert ein Element ist, das Text enthält +N = N ## Gibt den in eine Zahl umgewandelten Wert zurück +NA = NV ## Gibt den Fehlerwert #NV zurück +TYPE = TYP ## Gibt eine Zahl zurück, die den Datentyp des angegebenen Werts anzeigt + + +## +## Logical functions Logische Funktionen +## +AND = UND ## Gibt WAHR zurück, wenn alle zugehörigen Argumente WAHR sind +FALSE = FALSCH ## Gibt den Wahrheitswert FALSCH zurück +IF = WENN ## Gibt einen logischen Test zum Ausführen an +IFERROR = WENNFEHLER ## Gibt einen von Ihnen festgelegten Wert zurück, wenn die Auswertung der Formel zu einem Fehler führt; andernfalls wird das Ergebnis der Formel zurückgegeben +NOT = NICHT ## Kehrt den Wahrheitswert der zugehörigen Argumente um +OR = ODER ## Gibt WAHR zurück, wenn ein Argument WAHR ist +TRUE = WAHR ## Gibt den Wahrheitswert WAHR zurück + + +## +## Lookup and reference functions Nachschlage- und Verweisfunktionen +## +ADDRESS = ADRESSE ## Gibt einen Bezug auf eine einzelne Zelle in einem Tabellenblatt als Text zurück +AREAS = BEREICHE ## Gibt die Anzahl der innerhalb eines Bezugs aufgeführten Bereiche zurück +CHOOSE = WAHL ## Wählt einen Wert aus eine Liste mit Werten aus +COLUMN = SPALTE ## Gibt die Spaltennummer eines Bezugs zurück +COLUMNS = SPALTEN ## Gibt die Anzahl der Spalten in einem Bezug zurück +HLOOKUP = HVERWEIS ## Sucht in der obersten Zeile einer Matrix und gibt den Wert der angegebenen Zelle zurück +HYPERLINK = HYPERLINK ## Erstellt eine Verknüpfung, über die ein auf einem Netzwerkserver, in einem Intranet oder im Internet gespeichertes Dokument geöffnet wird +INDEX = INDEX ## Verwendet einen Index, um einen Wert aus einem Bezug oder einer Matrix auszuwählen +INDIRECT = INDIREKT ## Gibt einen Bezug zurück, der von einem Textwert angegeben wird +LOOKUP = LOOKUP ## Sucht Werte in einem Vektor oder einer Matrix +MATCH = VERGLEICH ## Sucht Werte in einem Bezug oder einer Matrix +OFFSET = BEREICH.VERSCHIEBEN ## Gibt einen Bezugoffset aus einem gegebenen Bezug zurück +ROW = ZEILE ## Gibt die Zeilennummer eines Bezugs zurück +ROWS = ZEILEN ## Gibt die Anzahl der Zeilen in einem Bezug zurück +RTD = RTD ## Ruft Echtzeitdaten von einem Programm ab, das die COM-Automatisierung (Automatisierung: Ein Verfahren, bei dem aus einer Anwendung oder einem Entwicklungstool heraus mit den Objekten einer anderen Anwendung gearbeitet wird. Die früher als OLE-Automatisierung bezeichnete Automatisierung ist ein Industriestandard und eine Funktion von COM (Component Object Model).) unterstützt +TRANSPOSE = MTRANS ## Gibt die transponierte Matrix einer Matrix zurück +VLOOKUP = SVERWEIS ## Sucht in der ersten Spalte einer Matrix und arbeitet sich durch die Zeile, um den Wert einer Zelle zurückzugeben + + +## +## Math and trigonometry functions Mathematische und trigonometrische Funktionen +## +ABS = ABS ## Gibt den Absolutwert einer Zahl zurück +ACOS = ARCCOS ## Gibt den Arkuskosinus einer Zahl zurück +ACOSH = ARCCOSHYP ## Gibt den umgekehrten hyperbolischen Kosinus einer Zahl zurück +ASIN = ARCSIN ## Gibt den Arkussinus einer Zahl zurück +ASINH = ARCSINHYP ## Gibt den umgekehrten hyperbolischen Sinus einer Zahl zurück +ATAN = ARCTAN ## Gibt den Arkustangens einer Zahl zurück +ATAN2 = ARCTAN2 ## Gibt den Arkustangens einer x- und einer y-Koordinate zurück +ATANH = ARCTANHYP ## Gibt den umgekehrten hyperbolischen Tangens einer Zahl zurück +CEILING = OBERGRENZE ## Rundet eine Zahl auf die nächste ganze Zahl oder das nächste Vielfache von Schritt +COMBIN = KOMBINATIONEN ## Gibt die Anzahl der Kombinationen für eine bestimmte Anzahl von Objekten zurück +COS = COS ## Gibt den Kosinus einer Zahl zurück +COSH = COSHYP ## Gibt den hyperbolischen Kosinus einer Zahl zurück +DEGREES = GRAD ## Wandelt Bogenmaß (Radiant) in Grad um +EVEN = GERADE ## Rundet eine Zahl auf die nächste gerade ganze Zahl auf +EXP = EXP ## Potenziert die Basis e mit der als Argument angegebenen Zahl +FACT = FAKULTÄT ## Gibt die Fakultät einer Zahl zurück +FACTDOUBLE = ZWEIFAKULTÄT ## Gibt die Fakultät zu Zahl mit Schrittlänge 2 zurück +FLOOR = UNTERGRENZE ## Rundet die Zahl auf Anzahl_Stellen ab +GCD = GGT ## Gibt den größten gemeinsamen Teiler zurück +INT = GANZZAHL ## Rundet eine Zahl auf die nächstkleinere ganze Zahl ab +LCM = KGV ## Gibt das kleinste gemeinsame Vielfache zurück +LN = LN ## Gibt den natürlichen Logarithmus einer Zahl zurück +LOG = LOG ## Gibt den Logarithmus einer Zahl zu der angegebenen Basis zurück +LOG10 = LOG10 ## Gibt den Logarithmus einer Zahl zur Basis 10 zurück +MDETERM = MDET ## Gibt die Determinante einer Matrix zurück +MINVERSE = MINV ## Gibt die inverse Matrix einer Matrix zurück +MMULT = MMULT ## Gibt das Produkt zweier Matrizen zurück +MOD = REST ## Gibt den Rest einer Division zurück +MROUND = VRUNDEN ## Gibt eine auf das gewünschte Vielfache gerundete Zahl zurück +MULTINOMIAL = POLYNOMIAL ## Gibt den Polynomialkoeffizienten einer Gruppe von Zahlen zurück +ODD = UNGERADE ## Rundet eine Zahl auf die nächste ungerade ganze Zahl auf +PI = PI ## Gibt den Wert Pi zurück +POWER = POTENZ ## Gibt als Ergebnis eine potenzierte Zahl zurück +PRODUCT = PRODUKT ## Multipliziert die zugehörigen Argumente +QUOTIENT = QUOTIENT ## Gibt den ganzzahligen Anteil einer Division zurück +RADIANS = BOGENMASS ## Wandelt Grad in Bogenmaß (Radiant) um +RAND = ZUFALLSZAHL ## Gibt eine Zufallszahl zwischen 0 und 1 zurück +RANDBETWEEN = ZUFALLSBEREICH ## Gibt eine Zufallszahl aus dem festgelegten Bereich zurück +ROMAN = RÖMISCH ## Wandelt eine arabische Zahl in eine römische Zahl als Text um +ROUND = RUNDEN ## Rundet eine Zahl auf eine bestimmte Anzahl von Dezimalstellen +ROUNDDOWN = ABRUNDEN ## Rundet die Zahl auf Anzahl_Stellen ab +ROUNDUP = AUFRUNDEN ## Rundet die Zahl auf Anzahl_Stellen auf +SERIESSUM = POTENZREIHE ## Gibt die Summe von Potenzen (zur Berechnung von Potenzreihen und dichotomen Wahrscheinlichkeiten) zurück +SIGN = VORZEICHEN ## Gibt das Vorzeichen einer Zahl zurück +SIN = SIN ## Gibt den Sinus einer Zahl zurück +SINH = SINHYP ## Gibt den hyperbolischen Sinus einer Zahl zurück +SQRT = WURZEL ## Gibt die Quadratwurzel einer Zahl zurück +SQRTPI = WURZELPI ## Gibt die Wurzel aus der mit Pi (pi) multiplizierten Zahl zurück +SUBTOTAL = TEILERGEBNIS ## Gibt ein Teilergebnis in einer Liste oder Datenbank zurück +SUM = SUMME ## Addiert die zugehörigen Argumente +SUMIF = SUMMEWENN ## Addiert Zahlen, die mit den Suchkriterien übereinstimmen +SUMIFS = SUMMEWENNS ## Die Zellen, die mehrere Kriterien erfüllen, werden in einem Bereich hinzugefügt +SUMPRODUCT = SUMMENPRODUKT ## Gibt die Summe der Produkte zusammengehöriger Matrixkomponenten zurück +SUMSQ = QUADRATESUMME ## Gibt die Summe der quadrierten Argumente zurück +SUMX2MY2 = SUMMEX2MY2 ## Gibt die Summe der Differenzen der Quadrate für zusammengehörige Komponenten zweier Matrizen zurück +SUMX2PY2 = SUMMEX2PY2 ## Gibt die Summe der Quadrate für zusammengehörige Komponenten zweier Matrizen zurück +SUMXMY2 = SUMMEXMY2 ## Gibt die Summe der quadrierten Differenzen für zusammengehörige Komponenten zweier Matrizen zurück +TAN = TAN ## Gibt den Tangens einer Zahl zurück +TANH = TANHYP ## Gibt den hyperbolischen Tangens einer Zahl zurück +TRUNC = KÜRZEN ## Schneidet die Kommastellen einer Zahl ab und gibt als Ergebnis eine ganze Zahl zurück + + +## +## Statistical functions Statistische Funktionen +## +AVEDEV = MITTELABW ## Gibt die durchschnittliche absolute Abweichung einer Reihe von Merkmalsausprägungen und ihrem Mittelwert zurück +AVERAGE = MITTELWERT ## Gibt den Mittelwert der zugehörigen Argumente zurück +AVERAGEA = MITTELWERTA ## Gibt den Mittelwert der zugehörigen Argumente, die Zahlen, Text und Wahrheitswerte enthalten, zurück +AVERAGEIF = MITTELWERTWENN ## Der Durchschnittswert (arithmetisches Mittel) für alle Zellen in einem Bereich, die einem angegebenen Kriterium entsprechen, wird zurückgegeben +AVERAGEIFS = MITTELWERTWENNS ## Gibt den Durchschnittswert (arithmetisches Mittel) aller Zellen zurück, die mehreren Kriterien entsprechen +BETADIST = BETAVERT ## Gibt die Werte der kumulierten Betaverteilungsfunktion zurück +BETAINV = BETAINV ## Gibt das Quantil der angegebenen Betaverteilung zurück +BINOMDIST = BINOMVERT ## Gibt Wahrscheinlichkeiten einer binomialverteilten Zufallsvariablen zurück +CHIDIST = CHIVERT ## Gibt Werte der Verteilungsfunktion (1-Alpha) einer Chi-Quadrat-verteilten Zufallsgröße zurück +CHIINV = CHIINV ## Gibt Quantile der Verteilungsfunktion (1-Alpha) der Chi-Quadrat-Verteilung zurück +CHITEST = CHITEST ## Gibt die Teststatistik eines Unabhängigkeitstests zurück +CONFIDENCE = KONFIDENZ ## Ermöglicht die Berechnung des 1-Alpha Konfidenzintervalls für den Erwartungswert einer Zufallsvariablen +CORREL = KORREL ## Gibt den Korrelationskoeffizienten zweier Reihen von Merkmalsausprägungen zurück +COUNT = ANZAHL ## Gibt die Anzahl der Zahlen in der Liste mit Argumenten an +COUNTA = ANZAHL2 ## Gibt die Anzahl der Werte in der Liste mit Argumenten an +COUNTBLANK = ANZAHLLEEREZELLEN ## Gibt die Anzahl der leeren Zellen in einem Bereich an +COUNTIF = ZÄHLENWENN ## Gibt die Anzahl der Zellen in einem Bereich an, deren Inhalte mit den Suchkriterien übereinstimmen +COUNTIFS = ZÄHLENWENNS ## Gibt die Anzahl der Zellen in einem Bereich an, deren Inhalte mit mehreren Suchkriterien übereinstimmen +COVAR = KOVAR ## Gibt die Kovarianz zurück, den Mittelwert der für alle Datenpunktpaare gebildeten Produkte der Abweichungen +CRITBINOM = KRITBINOM ## Gibt den kleinsten Wert zurück, für den die kumulierten Wahrscheinlichkeiten der Binomialverteilung kleiner oder gleich einer Grenzwahrscheinlichkeit sind +DEVSQ = SUMQUADABW ## Gibt die Summe der quadrierten Abweichungen der Datenpunkte von ihrem Stichprobenmittelwert zurück +EXPONDIST = EXPONVERT ## Gibt Wahrscheinlichkeiten einer exponential verteilten Zufallsvariablen zurück +FDIST = FVERT ## Gibt Werte der Verteilungsfunktion (1-Alpha) einer F-verteilten Zufallsvariablen zurück +FINV = FINV ## Gibt Quantile der F-Verteilung zurück +FISHER = FISHER ## Gibt die Fisher-Transformation zurück +FISHERINV = FISHERINV ## Gibt die Umkehrung der Fisher-Transformation zurück +FORECAST = PROGNOSE ## Gibt einen Wert zurück, der sich aus einem linearen Trend ergibt +FREQUENCY = HÄUFIGKEIT ## Gibt eine Häufigkeitsverteilung als vertikale Matrix zurück +FTEST = FTEST ## Gibt die Teststatistik eines F-Tests zurück +GAMMADIST = GAMMAVERT ## Gibt Wahrscheinlichkeiten einer gammaverteilten Zufallsvariablen zurück +GAMMAINV = GAMMAINV ## Gibt Quantile der Gammaverteilung zurück +GAMMALN = GAMMALN ## Gibt den natürlichen Logarithmus der Gammafunktion zurück, Γ(x) +GEOMEAN = GEOMITTEL ## Gibt das geometrische Mittel zurück +GROWTH = VARIATION ## Gibt Werte zurück, die sich aus einem exponentiellen Trend ergeben +HARMEAN = HARMITTEL ## Gibt das harmonische Mittel zurück +HYPGEOMDIST = HYPGEOMVERT ## Gibt Wahrscheinlichkeiten einer hypergeometrisch-verteilten Zufallsvariablen zurück +INTERCEPT = ACHSENABSCHNITT ## Gibt den Schnittpunkt der Regressionsgeraden zurück +KURT = KURT ## Gibt die Kurtosis (Exzess) einer Datengruppe zurück +LARGE = KGRÖSSTE ## Gibt den k-größten Wert einer Datengruppe zurück +LINEST = RGP ## Gibt die Parameter eines linearen Trends zurück +LOGEST = RKP ## Gibt die Parameter eines exponentiellen Trends zurück +LOGINV = LOGINV ## Gibt Quantile der Lognormalverteilung zurück +LOGNORMDIST = LOGNORMVERT ## Gibt Werte der Verteilungsfunktion einer lognormalverteilten Zufallsvariablen zurück +MAX = MAX ## Gibt den Maximalwert einer Liste mit Argumenten zurück +MAXA = MAXA ## Gibt den Maximalwert einer Liste mit Argumenten zurück, die Zahlen, Text und Wahrheitswerte enthalten +MEDIAN = MEDIAN ## Gibt den Median der angegebenen Zahlen zurück +MIN = MIN ## Gibt den Minimalwert einer Liste mit Argumenten zurück +MINA = MINA ## Gibt den kleinsten Wert einer Liste mit Argumenten zurück, die Zahlen, Text und Wahrheitswerte enthalten +MODE = MODALWERT ## Gibt den am häufigsten vorkommenden Wert in einer Datengruppe zurück +NEGBINOMDIST = NEGBINOMVERT ## Gibt Wahrscheinlichkeiten einer negativen, binominal verteilten Zufallsvariablen zurück +NORMDIST = NORMVERT ## Gibt Wahrscheinlichkeiten einer normal verteilten Zufallsvariablen zurück +NORMINV = NORMINV ## Gibt Quantile der Normalverteilung zurück +NORMSDIST = STANDNORMVERT ## Gibt Werte der Verteilungsfunktion einer standardnormalverteilten Zufallsvariablen zurück +NORMSINV = STANDNORMINV ## Gibt Quantile der Standardnormalverteilung zurück +PEARSON = PEARSON ## Gibt den Pearsonschen Korrelationskoeffizienten zurück +PERCENTILE = QUANTIL ## Gibt das Alpha-Quantil einer Gruppe von Daten zurück +PERCENTRANK = QUANTILSRANG ## Gibt den prozentualen Rang (Alpha) eines Werts in einer Datengruppe zurück +PERMUT = VARIATIONEN ## Gibt die Anzahl der Möglichkeiten zurück, um k Elemente aus einer Menge von n Elementen ohne Zurücklegen zu ziehen +POISSON = POISSON ## Gibt Wahrscheinlichkeiten einer poissonverteilten Zufallsvariablen zurück +PROB = WAHRSCHBEREICH ## Gibt die Wahrscheinlichkeit für ein von zwei Werten eingeschlossenes Intervall zurück +QUARTILE = QUARTILE ## Gibt die Quartile der Datengruppe zurück +RANK = RANG ## Gibt den Rang zurück, den eine Zahl innerhalb einer Liste von Zahlen einnimmt +RSQ = BESTIMMTHEITSMASS ## Gibt das Quadrat des Pearsonschen Korrelationskoeffizienten zurück +SKEW = SCHIEFE ## Gibt die Schiefe einer Verteilung zurück +SLOPE = STEIGUNG ## Gibt die Steigung der Regressionsgeraden zurück +SMALL = KKLEINSTE ## Gibt den k-kleinsten Wert einer Datengruppe zurück +STANDARDIZE = STANDARDISIERUNG ## Gibt den standardisierten Wert zurück +STDEV = STABW ## Schätzt die Standardabweichung ausgehend von einer Stichprobe +STDEVA = STABWA ## Schätzt die Standardabweichung ausgehend von einer Stichprobe, die Zahlen, Text und Wahrheitswerte enthält +STDEVP = STABWN ## Berechnet die Standardabweichung ausgehend von der Grundgesamtheit +STDEVPA = STABWNA ## Berechnet die Standardabweichung ausgehend von der Grundgesamtheit, die Zahlen, Text und Wahrheitswerte enthält +STEYX = STFEHLERYX ## Gibt den Standardfehler der geschätzten y-Werte für alle x-Werte der Regression zurück +TDIST = TVERT ## Gibt Werte der Verteilungsfunktion (1-Alpha) einer (Student) t-verteilten Zufallsvariablen zurück +TINV = TINV ## Gibt Quantile der t-Verteilung zurück +TREND = TREND ## Gibt Werte zurück, die sich aus einem linearen Trend ergeben +TRIMMEAN = GESTUTZTMITTEL ## Gibt den Mittelwert einer Datengruppe zurück, ohne die Randwerte zu berücksichtigen +TTEST = TTEST ## Gibt die Teststatistik eines Student'schen t-Tests zurück +VAR = VARIANZ ## Schätzt die Varianz ausgehend von einer Stichprobe +VARA = VARIANZA ## Schätzt die Varianz ausgehend von einer Stichprobe, die Zahlen, Text und Wahrheitswerte enthält +VARP = VARIANZEN ## Berechnet die Varianz ausgehend von der Grundgesamtheit +VARPA = VARIANZENA ## Berechnet die Varianz ausgehend von der Grundgesamtheit, die Zahlen, Text und Wahrheitswerte enthält +WEIBULL = WEIBULL ## Gibt Wahrscheinlichkeiten einer weibullverteilten Zufallsvariablen zurück +ZTEST = GTEST ## Gibt den einseitigen Wahrscheinlichkeitswert für einen Gausstest (Normalverteilung) zurück + + +## +## Text functions Textfunktionen +## +ASC = ASC ## Konvertiert DB-Text in einer Zeichenfolge (lateinische Buchstaben oder Katakana) in SB-Text +BAHTTEXT = BAHTTEXT ## Wandelt eine Zahl in Text im Währungsformat ß (Baht) um +CHAR = ZEICHEN ## Gibt das der Codezahl entsprechende Zeichen zurück +CLEAN = SÄUBERN ## Löscht alle nicht druckbaren Zeichen aus einem Text +CODE = CODE ## Gibt die Codezahl des ersten Zeichens in einem Text zurück +CONCATENATE = VERKETTEN ## Verknüpft mehrere Textelemente zu einem Textelement +DOLLAR = DM ## Wandelt eine Zahl in Text im Währungsformat € (Euro) um +EXACT = IDENTISCH ## Prüft, ob zwei Textwerte identisch sind +FIND = FINDEN ## Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird unterschieden) +FINDB = FINDENB ## Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird unterschieden) +FIXED = FEST ## Formatiert eine Zahl als Text mit einer festen Anzahl von Dezimalstellen +JIS = JIS ## Konvertiert SB-Text in einer Zeichenfolge (lateinische Buchstaben oder Katakana) in DB-Text +LEFT = LINKS ## Gibt die Zeichen ganz links in einem Textwert zurück +LEFTB = LINKSB ## Gibt die Zeichen ganz links in einem Textwert zurück +LEN = LÄNGE ## Gibt die Anzahl der Zeichen in einer Zeichenfolge zurück +LENB = LÄNGEB ## Gibt die Anzahl der Zeichen in einer Zeichenfolge zurück +LOWER = KLEIN ## Wandelt Text in Kleinbuchstaben um +MID = TEIL ## Gibt eine bestimmte Anzahl Zeichen aus einer Zeichenfolge ab der von Ihnen angegebenen Stelle zurück +MIDB = TEILB ## Gibt eine bestimmte Anzahl Zeichen aus einer Zeichenfolge ab der von Ihnen angegebenen Stelle zurück +PHONETIC = PHONETIC ## Extrahiert die phonetischen (Furigana-)Zeichen aus einer Textzeichenfolge +PROPER = GROSS2 ## Wandelt den ersten Buchstaben aller Wörter eines Textwerts in Großbuchstaben um +REPLACE = ERSETZEN ## Ersetzt Zeichen in Text +REPLACEB = ERSETZENB ## Ersetzt Zeichen in Text +REPT = WIEDERHOLEN ## Wiederholt einen Text so oft wie angegeben +RIGHT = RECHTS ## Gibt die Zeichen ganz rechts in einem Textwert zurück +RIGHTB = RECHTSB ## Gibt die Zeichen ganz rechts in einem Textwert zurück +SEARCH = SUCHEN ## Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird nicht unterschieden) +SEARCHB = SUCHENB ## Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird nicht unterschieden) +SUBSTITUTE = WECHSELN ## Ersetzt in einer Zeichenfolge neuen Text gegen alten +T = T ## Wandelt die zugehörigen Argumente in Text um +TEXT = TEXT ## Formatiert eine Zahl und wandelt sie in Text um +TRIM = GLÄTTEN ## Entfernt Leerzeichen aus Text +UPPER = GROSS ## Wandelt Text in Großbuchstaben um +VALUE = WERT ## Wandelt ein Textargument in eine Zahl um diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/en/uk/config b/plugins/excel_reader/Classes/PHPExcel/locale/en/uk/config new file mode 100755 index 0000000..1bcfcb2 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/en/uk/config @@ -0,0 +1,32 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +## +## (For future use) +## +currencySymbol = £ diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/es/config b/plugins/excel_reader/Classes/PHPExcel/locale/es/config new file mode 100755 index 0000000..039f5b8 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/es/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = $ ## I'm surprised that the Excel Documentation suggests $ rather than € + + +## +## Excel Error Codes (For future use) +## +NULL = #¡NULO! +DIV0 = #¡DIV/0! +VALUE = #¡VALOR! +REF = #¡REF! +NAME = #¿NOMBRE? +NUM = #¡NÚM! +NA = #N/A diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/es/functions b/plugins/excel_reader/Classes/PHPExcel/locale/es/functions new file mode 100755 index 0000000..9d47f0e --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/es/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Funciones de complementos y automatización +## +GETPIVOTDATA = IMPORTARDATOSDINAMICOS ## Devuelve los datos almacenados en un informe de tabla dinámica. + + +## +## Cube functions Funciones de cubo +## +CUBEKPIMEMBER = MIEMBROKPICUBO ## Devuelve un nombre, propiedad y medida de indicador de rendimiento clave (KPI) y muestra el nombre y la propiedad en la celda. Un KPI es una medida cuantificable, como los beneficios brutos mensuales o la facturación trimestral por empleado, que se usa para supervisar el rendimiento de una organización. +CUBEMEMBER = MIEMBROCUBO ## Devuelve un miembro o tupla en una jerarquía de cubo. Se usa para validar la existencia del miembro o la tupla en el cubo. +CUBEMEMBERPROPERTY = PROPIEDADMIEMBROCUBO ## Devuelve el valor de una propiedad de miembro del cubo Se usa para validar la existencia de un nombre de miembro en el cubo y para devolver la propiedad especificada para este miembro. +CUBERANKEDMEMBER = MIEMBRORANGOCUBO ## Devuelve el miembro n, o clasificado, de un conjunto. Se usa para devolver uno o más elementos de un conjunto, por ejemplo, el representante con mejores ventas o los diez mejores alumnos. +CUBESET = CONJUNTOCUBO ## Define un conjunto calculado de miembros o tuplas mediante el envío de una expresión de conjunto al cubo en el servidor, lo que crea el conjunto y, después, devuelve dicho conjunto a Microsoft Office Excel. +CUBESETCOUNT = RECUENTOCONJUNTOCUBO ## Devuelve el número de elementos de un conjunto. +CUBEVALUE = VALORCUBO ## Devuelve un valor agregado de un cubo. + + +## +## Database functions Funciones de base de datos +## +DAVERAGE = BDPROMEDIO ## Devuelve el promedio de las entradas seleccionadas en la base de datos. +DCOUNT = BDCONTAR ## Cuenta el número de celdas que contienen números en una base de datos. +DCOUNTA = BDCONTARA ## Cuenta el número de celdas no vacías en una base de datos. +DGET = BDEXTRAER ## Extrae de una base de datos un único registro que cumple los criterios especificados. +DMAX = BDMAX ## Devuelve el valor máximo de las entradas seleccionadas de la base de datos. +DMIN = BDMIN ## Devuelve el valor mínimo de las entradas seleccionadas de la base de datos. +DPRODUCT = BDPRODUCTO ## Multiplica los valores de un campo concreto de registros de una base de datos que cumplen los criterios especificados. +DSTDEV = BDDESVEST ## Calcula la desviación estándar a partir de una muestra de entradas seleccionadas en la base de datos. +DSTDEVP = BDDESVESTP ## Calcula la desviación estándar en función de la población total de las entradas seleccionadas de la base de datos. +DSUM = BDSUMA ## Suma los números de la columna de campo de los registros de la base de datos que cumplen los criterios. +DVAR = BDVAR ## Calcula la varianza a partir de una muestra de entradas seleccionadas de la base de datos. +DVARP = BDVARP ## Calcula la varianza a partir de la población total de entradas seleccionadas de la base de datos. + + +## +## Date and time functions Funciones de fecha y hora +## +DATE = FECHA ## Devuelve el número de serie correspondiente a una fecha determinada. +DATEVALUE = FECHANUMERO ## Convierte una fecha con formato de texto en un valor de número de serie. +DAY = DIA ## Convierte un número de serie en un valor de día del mes. +DAYS360 = DIAS360 ## Calcula el número de días entre dos fechas a partir de un año de 360 días. +EDATE = FECHA.MES ## Devuelve el número de serie de la fecha equivalente al número indicado de meses anteriores o posteriores a la fecha inicial. +EOMONTH = FIN.MES ## Devuelve el número de serie correspondiente al último día del mes anterior o posterior a un número de meses especificado. +HOUR = HORA ## Convierte un número de serie en un valor de hora. +MINUTE = MINUTO ## Convierte un número de serie en un valor de minuto. +MONTH = MES ## Convierte un número de serie en un valor de mes. +NETWORKDAYS = DIAS.LAB ## Devuelve el número de todos los días laborables existentes entre dos fechas. +NOW = AHORA ## Devuelve el número de serie correspondiente a la fecha y hora actuales. +SECOND = SEGUNDO ## Convierte un número de serie en un valor de segundo. +TIME = HORA ## Devuelve el número de serie correspondiente a una hora determinada. +TIMEVALUE = HORANUMERO ## Convierte una hora con formato de texto en un valor de número de serie. +TODAY = HOY ## Devuelve el número de serie correspondiente al día actual. +WEEKDAY = DIASEM ## Convierte un número de serie en un valor de día de la semana. +WEEKNUM = NUM.DE.SEMANA ## Convierte un número de serie en un número que representa el lugar numérico correspondiente a una semana de un año. +WORKDAY = DIA.LAB ## Devuelve el número de serie de la fecha que tiene lugar antes o después de un número determinado de días laborables. +YEAR = AÑO ## Convierte un número de serie en un valor de año. +YEARFRAC = FRAC.AÑO ## Devuelve la fracción de año que representa el número total de días existentes entre el valor de fecha_inicial y el de fecha_final. + + +## +## Engineering functions Funciones de ingeniería +## +BESSELI = BESSELI ## Devuelve la función Bessel In(x) modificada. +BESSELJ = BESSELJ ## Devuelve la función Bessel Jn(x). +BESSELK = BESSELK ## Devuelve la función Bessel Kn(x) modificada. +BESSELY = BESSELY ## Devuelve la función Bessel Yn(x). +BIN2DEC = BIN.A.DEC ## Convierte un número binario en decimal. +BIN2HEX = BIN.A.HEX ## Convierte un número binario en hexadecimal. +BIN2OCT = BIN.A.OCT ## Convierte un número binario en octal. +COMPLEX = COMPLEJO ## Convierte coeficientes reales e imaginarios en un número complejo. +CONVERT = CONVERTIR ## Convierte un número de un sistema de medida a otro. +DEC2BIN = DEC.A.BIN ## Convierte un número decimal en binario. +DEC2HEX = DEC.A.HEX ## Convierte un número decimal en hexadecimal. +DEC2OCT = DEC.A.OCT ## Convierte un número decimal en octal. +DELTA = DELTA ## Comprueba si dos valores son iguales. +ERF = FUN.ERROR ## Devuelve la función de error. +ERFC = FUN.ERROR.COMPL ## Devuelve la función de error complementario. +GESTEP = MAYOR.O.IGUAL ## Comprueba si un número es mayor que un valor de umbral. +HEX2BIN = HEX.A.BIN ## Convierte un número hexadecimal en binario. +HEX2DEC = HEX.A.DEC ## Convierte un número hexadecimal en decimal. +HEX2OCT = HEX.A.OCT ## Convierte un número hexadecimal en octal. +IMABS = IM.ABS ## Devuelve el valor absoluto (módulo) de un número complejo. +IMAGINARY = IMAGINARIO ## Devuelve el coeficiente imaginario de un número complejo. +IMARGUMENT = IM.ANGULO ## Devuelve el argumento theta, un ángulo expresado en radianes. +IMCONJUGATE = IM.CONJUGADA ## Devuelve la conjugada compleja de un número complejo. +IMCOS = IM.COS ## Devuelve el coseno de un número complejo. +IMDIV = IM.DIV ## Devuelve el cociente de dos números complejos. +IMEXP = IM.EXP ## Devuelve el valor exponencial de un número complejo. +IMLN = IM.LN ## Devuelve el logaritmo natural (neperiano) de un número complejo. +IMLOG10 = IM.LOG10 ## Devuelve el logaritmo en base 10 de un número complejo. +IMLOG2 = IM.LOG2 ## Devuelve el logaritmo en base 2 de un número complejo. +IMPOWER = IM.POT ## Devuelve un número complejo elevado a una potencia entera. +IMPRODUCT = IM.PRODUCT ## Devuelve el producto de números complejos. +IMREAL = IM.REAL ## Devuelve el coeficiente real de un número complejo. +IMSIN = IM.SENO ## Devuelve el seno de un número complejo. +IMSQRT = IM.RAIZ2 ## Devuelve la raíz cuadrada de un número complejo. +IMSUB = IM.SUSTR ## Devuelve la diferencia entre dos números complejos. +IMSUM = IM.SUM ## Devuelve la suma de números complejos. +OCT2BIN = OCT.A.BIN ## Convierte un número octal en binario. +OCT2DEC = OCT.A.DEC ## Convierte un número octal en decimal. +OCT2HEX = OCT.A.HEX ## Convierte un número octal en hexadecimal. + + +## +## Financial functions Funciones financieras +## +ACCRINT = INT.ACUM ## Devuelve el interés acumulado de un valor bursátil con pagos de interés periódicos. +ACCRINTM = INT.ACUM.V ## Devuelve el interés acumulado de un valor bursátil con pagos de interés al vencimiento. +AMORDEGRC = AMORTIZ.PROGRE ## Devuelve la amortización de cada período contable mediante el uso de un coeficiente de amortización. +AMORLINC = AMORTIZ.LIN ## Devuelve la amortización de cada uno de los períodos contables. +COUPDAYBS = CUPON.DIAS.L1 ## Devuelve el número de días desde el principio del período de un cupón hasta la fecha de liquidación. +COUPDAYS = CUPON.DIAS ## Devuelve el número de días del período (entre dos cupones) donde se encuentra la fecha de liquidación. +COUPDAYSNC = CUPON.DIAS.L2 ## Devuelve el número de días desde la fecha de liquidación hasta la fecha del próximo cupón. +COUPNCD = CUPON.FECHA.L2 ## Devuelve la fecha del próximo cupón después de la fecha de liquidación. +COUPNUM = CUPON.NUM ## Devuelve el número de pagos de cupón entre la fecha de liquidación y la fecha de vencimiento. +COUPPCD = CUPON.FECHA.L1 ## Devuelve la fecha de cupón anterior a la fecha de liquidación. +CUMIPMT = PAGO.INT.ENTRE ## Devuelve el interés acumulado pagado entre dos períodos. +CUMPRINC = PAGO.PRINC.ENTRE ## Devuelve el capital acumulado pagado de un préstamo entre dos períodos. +DB = DB ## Devuelve la amortización de un bien durante un período específico a través del método de amortización de saldo fijo. +DDB = DDB ## Devuelve la amortización de un bien durante un período específico a través del método de amortización por doble disminución de saldo u otro método que se especifique. +DISC = TASA.DESC ## Devuelve la tasa de descuento de un valor bursátil. +DOLLARDE = MONEDA.DEC ## Convierte una cotización de un valor bursátil expresada en forma fraccionaria en una cotización de un valor bursátil expresada en forma decimal. +DOLLARFR = MONEDA.FRAC ## Convierte una cotización de un valor bursátil expresada en forma decimal en una cotización de un valor bursátil expresada en forma fraccionaria. +DURATION = DURACION ## Devuelve la duración anual de un valor bursátil con pagos de interés periódico. +EFFECT = INT.EFECTIVO ## Devuelve la tasa de interés anual efectiva. +FV = VF ## Devuelve el valor futuro de una inversión. +FVSCHEDULE = VF.PLAN ## Devuelve el valor futuro de un capital inicial después de aplicar una serie de tasas de interés compuesto. +INTRATE = TASA.INT ## Devuelve la tasa de interés para la inversión total de un valor bursátil. +IPMT = PAGOINT ## Devuelve el pago de intereses de una inversión durante un período determinado. +IRR = TIR ## Devuelve la tasa interna de retorno para una serie de flujos de efectivo periódicos. +ISPMT = INT.PAGO.DIR ## Calcula el interés pagado durante un período específico de una inversión. +MDURATION = DURACION.MODIF ## Devuelve la duración de Macauley modificada de un valor bursátil con un valor nominal supuesto de 100 $. +MIRR = TIRM ## Devuelve la tasa interna de retorno donde se financian flujos de efectivo positivos y negativos a tasas diferentes. +NOMINAL = TASA.NOMINAL ## Devuelve la tasa nominal de interés anual. +NPER = NPER ## Devuelve el número de períodos de una inversión. +NPV = VNA ## Devuelve el valor neto actual de una inversión en función de una serie de flujos periódicos de efectivo y una tasa de descuento. +ODDFPRICE = PRECIO.PER.IRREGULAR.1 ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con un primer período impar. +ODDFYIELD = RENDTO.PER.IRREGULAR.1 ## Devuelve el rendimiento de un valor bursátil con un primer período impar. +ODDLPRICE = PRECIO.PER.IRREGULAR.2 ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con un último período impar. +ODDLYIELD = RENDTO.PER.IRREGULAR.2 ## Devuelve el rendimiento de un valor bursátil con un último período impar. +PMT = PAGO ## Devuelve el pago periódico de una anualidad. +PPMT = PAGOPRIN ## Devuelve el pago de capital de una inversión durante un período determinado. +PRICE = PRECIO ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil que paga una tasa de interés periódico. +PRICEDISC = PRECIO.DESCUENTO ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con descuento. +PRICEMAT = PRECIO.VENCIMIENTO ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil que paga interés a su vencimiento. +PV = VALACT ## Devuelve el valor actual de una inversión. +RATE = TASA ## Devuelve la tasa de interés por período de una anualidad. +RECEIVED = CANTIDAD.RECIBIDA ## Devuelve la cantidad recibida al vencimiento de un valor bursátil completamente invertido. +SLN = SLN ## Devuelve la amortización por método directo de un bien en un período dado. +SYD = SYD ## Devuelve la amortización por suma de dígitos de los años de un bien durante un período especificado. +TBILLEQ = LETRA.DE.TES.EQV.A.BONO ## Devuelve el rendimiento de un bono equivalente a una letra del Tesoro (de EE.UU.) +TBILLPRICE = LETRA.DE.TES.PRECIO ## Devuelve el precio por un valor nominal de 100 $ de una letra del Tesoro (de EE.UU.) +TBILLYIELD = LETRA.DE.TES.RENDTO ## Devuelve el rendimiento de una letra del Tesoro (de EE.UU.) +VDB = DVS ## Devuelve la amortización de un bien durante un período específico o parcial a través del método de cálculo del saldo en disminución. +XIRR = TIR.NO.PER ## Devuelve la tasa interna de retorno para un flujo de efectivo que no es necesariamente periódico. +XNPV = VNA.NO.PER ## Devuelve el valor neto actual para un flujo de efectivo que no es necesariamente periódico. +YIELD = RENDTO ## Devuelve el rendimiento de un valor bursátil que paga intereses periódicos. +YIELDDISC = RENDTO.DESC ## Devuelve el rendimiento anual de un valor bursátil con descuento; por ejemplo, una letra del Tesoro (de EE.UU.) +YIELDMAT = RENDTO.VENCTO ## Devuelve el rendimiento anual de un valor bursátil que paga intereses al vencimiento. + + +## +## Information functions Funciones de información +## +CELL = CELDA ## Devuelve información acerca del formato, la ubicación o el contenido de una celda. +ERROR.TYPE = TIPO.DE.ERROR ## Devuelve un número que corresponde a un tipo de error. +INFO = INFO ## Devuelve información acerca del entorno operativo en uso. +ISBLANK = ESBLANCO ## Devuelve VERDADERO si el valor está en blanco. +ISERR = ESERR ## Devuelve VERDADERO si el valor es cualquier valor de error excepto #N/A. +ISERROR = ESERROR ## Devuelve VERDADERO si el valor es cualquier valor de error. +ISEVEN = ES.PAR ## Devuelve VERDADERO si el número es par. +ISLOGICAL = ESLOGICO ## Devuelve VERDADERO si el valor es un valor lógico. +ISNA = ESNOD ## Devuelve VERDADERO si el valor es el valor de error #N/A. +ISNONTEXT = ESNOTEXTO ## Devuelve VERDADERO si el valor no es texto. +ISNUMBER = ESNUMERO ## Devuelve VERDADERO si el valor es un número. +ISODD = ES.IMPAR ## Devuelve VERDADERO si el número es impar. +ISREF = ESREF ## Devuelve VERDADERO si el valor es una referencia. +ISTEXT = ESTEXTO ## Devuelve VERDADERO si el valor es texto. +N = N ## Devuelve un valor convertido en un número. +NA = ND ## Devuelve el valor de error #N/A. +TYPE = TIPO ## Devuelve un número que indica el tipo de datos de un valor. + + +## +## Logical functions Funciones lógicas +## +AND = Y ## Devuelve VERDADERO si todos sus argumentos son VERDADERO. +FALSE = FALSO ## Devuelve el valor lógico FALSO. +IF = SI ## Especifica una prueba lógica que realizar. +IFERROR = SI.ERROR ## Devuelve un valor que se especifica si una fórmula lo evalúa como un error; de lo contrario, devuelve el resultado de la fórmula. +NOT = NO ## Invierte el valor lógico del argumento. +OR = O ## Devuelve VERDADERO si cualquier argumento es VERDADERO. +TRUE = VERDADERO ## Devuelve el valor lógico VERDADERO. + + +## +## Lookup and reference functions Funciones de búsqueda y referencia +## +ADDRESS = DIRECCION ## Devuelve una referencia como texto a una sola celda de una hoja de cálculo. +AREAS = AREAS ## Devuelve el número de áreas de una referencia. +CHOOSE = ELEGIR ## Elige un valor de una lista de valores. +COLUMN = COLUMNA ## Devuelve el número de columna de una referencia. +COLUMNS = COLUMNAS ## Devuelve el número de columnas de una referencia. +HLOOKUP = BUSCARH ## Busca en la fila superior de una matriz y devuelve el valor de la celda indicada. +HYPERLINK = HIPERVINCULO ## Crea un acceso directo o un salto que abre un documento almacenado en un servidor de red, en una intranet o en Internet. +INDEX = INDICE ## Usa un índice para elegir un valor de una referencia o matriz. +INDIRECT = INDIRECTO ## Devuelve una referencia indicada por un valor de texto. +LOOKUP = BUSCAR ## Busca valores de un vector o una matriz. +MATCH = COINCIDIR ## Busca valores de una referencia o matriz. +OFFSET = DESREF ## Devuelve un desplazamiento de referencia respecto a una referencia dada. +ROW = FILA ## Devuelve el número de fila de una referencia. +ROWS = FILAS ## Devuelve el número de filas de una referencia. +RTD = RDTR ## Recupera datos en tiempo real desde un programa compatible con la automatización COM (automatización: modo de trabajar con los objetos de una aplicación desde otra aplicación o herramienta de entorno. La automatización, antes denominada automatización OLE, es un estándar de la industria y una función del Modelo de objetos componentes (COM).). +TRANSPOSE = TRANSPONER ## Devuelve la transposición de una matriz. +VLOOKUP = BUSCARV ## Busca en la primera columna de una matriz y se mueve en horizontal por la fila para devolver el valor de una celda. + + +## +## Math and trigonometry functions Funciones matemáticas y trigonométricas +## +ABS = ABS ## Devuelve el valor absoluto de un número. +ACOS = ACOS ## Devuelve el arcocoseno de un número. +ACOSH = ACOSH ## Devuelve el coseno hiperbólico inverso de un número. +ASIN = ASENO ## Devuelve el arcoseno de un número. +ASINH = ASENOH ## Devuelve el seno hiperbólico inverso de un número. +ATAN = ATAN ## Devuelve la arcotangente de un número. +ATAN2 = ATAN2 ## Devuelve la arcotangente de las coordenadas "x" e "y". +ATANH = ATANH ## Devuelve la tangente hiperbólica inversa de un número. +CEILING = MULTIPLO.SUPERIOR ## Redondea un número al entero más próximo o al múltiplo significativo más cercano. +COMBIN = COMBINAT ## Devuelve el número de combinaciones para un número determinado de objetos. +COS = COS ## Devuelve el coseno de un número. +COSH = COSH ## Devuelve el coseno hiperbólico de un número. +DEGREES = GRADOS ## Convierte radianes en grados. +EVEN = REDONDEA.PAR ## Redondea un número hasta el entero par más próximo. +EXP = EXP ## Devuelve e elevado a la potencia de un número dado. +FACT = FACT ## Devuelve el factorial de un número. +FACTDOUBLE = FACT.DOBLE ## Devuelve el factorial doble de un número. +FLOOR = MULTIPLO.INFERIOR ## Redondea un número hacia abajo, en dirección hacia cero. +GCD = M.C.D ## Devuelve el máximo común divisor. +INT = ENTERO ## Redondea un número hacia abajo hasta el entero más próximo. +LCM = M.C.M ## Devuelve el mínimo común múltiplo. +LN = LN ## Devuelve el logaritmo natural (neperiano) de un número. +LOG = LOG ## Devuelve el logaritmo de un número en una base especificada. +LOG10 = LOG10 ## Devuelve el logaritmo en base 10 de un número. +MDETERM = MDETERM ## Devuelve la determinante matricial de una matriz. +MINVERSE = MINVERSA ## Devuelve la matriz inversa de una matriz. +MMULT = MMULT ## Devuelve el producto de matriz de dos matrices. +MOD = RESIDUO ## Devuelve el resto de la división. +MROUND = REDOND.MULT ## Devuelve un número redondeado al múltiplo deseado. +MULTINOMIAL = MULTINOMIAL ## Devuelve el polinomio de un conjunto de números. +ODD = REDONDEA.IMPAR ## Redondea un número hacia arriba hasta el entero impar más próximo. +PI = PI ## Devuelve el valor de pi. +POWER = POTENCIA ## Devuelve el resultado de elevar un número a una potencia. +PRODUCT = PRODUCTO ## Multiplica sus argumentos. +QUOTIENT = COCIENTE ## Devuelve la parte entera de una división. +RADIANS = RADIANES ## Convierte grados en radianes. +RAND = ALEATORIO ## Devuelve un número aleatorio entre 0 y 1. +RANDBETWEEN = ALEATORIO.ENTRE ## Devuelve un número aleatorio entre los números que especifique. +ROMAN = NUMERO.ROMANO ## Convierte un número arábigo en número romano, con formato de texto. +ROUND = REDONDEAR ## Redondea un número al número de decimales especificado. +ROUNDDOWN = REDONDEAR.MENOS ## Redondea un número hacia abajo, en dirección hacia cero. +ROUNDUP = REDONDEAR.MAS ## Redondea un número hacia arriba, en dirección contraria a cero. +SERIESSUM = SUMA.SERIES ## Devuelve la suma de una serie de potencias en función de la fórmula. +SIGN = SIGNO ## Devuelve el signo de un número. +SIN = SENO ## Devuelve el seno de un ángulo determinado. +SINH = SENOH ## Devuelve el seno hiperbólico de un número. +SQRT = RAIZ ## Devuelve la raíz cuadrada positiva de un número. +SQRTPI = RAIZ2PI ## Devuelve la raíz cuadrada de un número multiplicado por PI (número * pi). +SUBTOTAL = SUBTOTALES ## Devuelve un subtotal en una lista o base de datos. +SUM = SUMA ## Suma sus argumentos. +SUMIF = SUMAR.SI ## Suma las celdas especificadas que cumplen unos criterios determinados. +SUMIFS = SUMAR.SI.CONJUNTO ## Suma las celdas de un rango que cumplen varios criterios. +SUMPRODUCT = SUMAPRODUCTO ## Devuelve la suma de los productos de los correspondientes componentes de matriz. +SUMSQ = SUMA.CUADRADOS ## Devuelve la suma de los cuadrados de los argumentos. +SUMX2MY2 = SUMAX2MENOSY2 ## Devuelve la suma de la diferencia de los cuadrados de los valores correspondientes de dos matrices. +SUMX2PY2 = SUMAX2MASY2 ## Devuelve la suma de la suma de los cuadrados de los valores correspondientes de dos matrices. +SUMXMY2 = SUMAXMENOSY2 ## Devuelve la suma de los cuadrados de las diferencias de los valores correspondientes de dos matrices. +TAN = TAN ## Devuelve la tangente de un número. +TANH = TANH ## Devuelve la tangente hiperbólica de un número. +TRUNC = TRUNCAR ## Trunca un número a un entero. + + +## +## Statistical functions Funciones estadísticas +## +AVEDEV = DESVPROM ## Devuelve el promedio de las desviaciones absolutas de la media de los puntos de datos. +AVERAGE = PROMEDIO ## Devuelve el promedio de sus argumentos. +AVERAGEA = PROMEDIOA ## Devuelve el promedio de sus argumentos, incluidos números, texto y valores lógicos. +AVERAGEIF = PROMEDIO.SI ## Devuelve el promedio (media aritmética) de todas las celdas de un rango que cumplen unos criterios determinados. +AVERAGEIFS = PROMEDIO.SI.CONJUNTO ## Devuelve el promedio (media aritmética) de todas las celdas que cumplen múltiples criterios. +BETADIST = DISTR.BETA ## Devuelve la función de distribución beta acumulativa. +BETAINV = DISTR.BETA.INV ## Devuelve la función inversa de la función de distribución acumulativa de una distribución beta especificada. +BINOMDIST = DISTR.BINOM ## Devuelve la probabilidad de una variable aleatoria discreta siguiendo una distribución binomial. +CHIDIST = DISTR.CHI ## Devuelve la probabilidad de una variable aleatoria continua siguiendo una distribución chi cuadrado de una sola cola. +CHIINV = PRUEBA.CHI.INV ## Devuelve la función inversa de la probabilidad de una variable aleatoria continua siguiendo una distribución chi cuadrado de una sola cola. +CHITEST = PRUEBA.CHI ## Devuelve la prueba de independencia. +CONFIDENCE = INTERVALO.CONFIANZA ## Devuelve el intervalo de confianza de la media de una población. +CORREL = COEF.DE.CORREL ## Devuelve el coeficiente de correlación entre dos conjuntos de datos. +COUNT = CONTAR ## Cuenta cuántos números hay en la lista de argumentos. +COUNTA = CONTARA ## Cuenta cuántos valores hay en la lista de argumentos. +COUNTBLANK = CONTAR.BLANCO ## Cuenta el número de celdas en blanco de un rango. +COUNTIF = CONTAR.SI ## Cuenta el número de celdas, dentro del rango, que cumplen el criterio especificado. +COUNTIFS = CONTAR.SI.CONJUNTO ## Cuenta el número de celdas, dentro del rango, que cumplen varios criterios. +COVAR = COVAR ## Devuelve la covarianza, que es el promedio de los productos de las desviaciones para cada pareja de puntos de datos. +CRITBINOM = BINOM.CRIT ## Devuelve el menor valor cuya distribución binomial acumulativa es menor o igual a un valor de criterio. +DEVSQ = DESVIA2 ## Devuelve la suma de los cuadrados de las desviaciones. +EXPONDIST = DISTR.EXP ## Devuelve la distribución exponencial. +FDIST = DISTR.F ## Devuelve la distribución de probabilidad F. +FINV = DISTR.F.INV ## Devuelve la función inversa de la distribución de probabilidad F. +FISHER = FISHER ## Devuelve la transformación Fisher. +FISHERINV = PRUEBA.FISHER.INV ## Devuelve la función inversa de la transformación Fisher. +FORECAST = PRONOSTICO ## Devuelve un valor en una tendencia lineal. +FREQUENCY = FRECUENCIA ## Devuelve una distribución de frecuencia como una matriz vertical. +FTEST = PRUEBA.F ## Devuelve el resultado de una prueba F. +GAMMADIST = DISTR.GAMMA ## Devuelve la distribución gamma. +GAMMAINV = DISTR.GAMMA.INV ## Devuelve la función inversa de la distribución gamma acumulativa. +GAMMALN = GAMMA.LN ## Devuelve el logaritmo natural de la función gamma, G(x). +GEOMEAN = MEDIA.GEOM ## Devuelve la media geométrica. +GROWTH = CRECIMIENTO ## Devuelve valores en una tendencia exponencial. +HARMEAN = MEDIA.ARMO ## Devuelve la media armónica. +HYPGEOMDIST = DISTR.HIPERGEOM ## Devuelve la distribución hipergeométrica. +INTERCEPT = INTERSECCION.EJE ## Devuelve la intersección de la línea de regresión lineal. +KURT = CURTOSIS ## Devuelve la curtosis de un conjunto de datos. +LARGE = K.ESIMO.MAYOR ## Devuelve el k-ésimo mayor valor de un conjunto de datos. +LINEST = ESTIMACION.LINEAL ## Devuelve los parámetros de una tendencia lineal. +LOGEST = ESTIMACION.LOGARITMICA ## Devuelve los parámetros de una tendencia exponencial. +LOGINV = DISTR.LOG.INV ## Devuelve la función inversa de la distribución logarítmico-normal. +LOGNORMDIST = DISTR.LOG.NORM ## Devuelve la distribución logarítmico-normal acumulativa. +MAX = MAX ## Devuelve el valor máximo de una lista de argumentos. +MAXA = MAXA ## Devuelve el valor máximo de una lista de argumentos, incluidos números, texto y valores lógicos. +MEDIAN = MEDIANA ## Devuelve la mediana de los números dados. +MIN = MIN ## Devuelve el valor mínimo de una lista de argumentos. +MINA = MINA ## Devuelve el valor mínimo de una lista de argumentos, incluidos números, texto y valores lógicos. +MODE = MODA ## Devuelve el valor más común de un conjunto de datos. +NEGBINOMDIST = NEGBINOMDIST ## Devuelve la distribución binomial negativa. +NORMDIST = DISTR.NORM ## Devuelve la distribución normal acumulativa. +NORMINV = DISTR.NORM.INV ## Devuelve la función inversa de la distribución normal acumulativa. +NORMSDIST = DISTR.NORM.ESTAND ## Devuelve la distribución normal estándar acumulativa. +NORMSINV = DISTR.NORM.ESTAND.INV ## Devuelve la función inversa de la distribución normal estándar acumulativa. +PEARSON = PEARSON ## Devuelve el coeficiente de momento de correlación de producto Pearson. +PERCENTILE = PERCENTIL ## Devuelve el k-ésimo percentil de los valores de un rango. +PERCENTRANK = RANGO.PERCENTIL ## Devuelve el rango porcentual de un valor de un conjunto de datos. +PERMUT = PERMUTACIONES ## Devuelve el número de permutaciones de un número determinado de objetos. +POISSON = POISSON ## Devuelve la distribución de Poisson. +PROB = PROBABILIDAD ## Devuelve la probabilidad de que los valores de un rango se encuentren entre dos límites. +QUARTILE = CUARTIL ## Devuelve el cuartil de un conjunto de datos. +RANK = JERARQUIA ## Devuelve la jerarquía de un número en una lista de números. +RSQ = COEFICIENTE.R2 ## Devuelve el cuadrado del coeficiente de momento de correlación de producto Pearson. +SKEW = COEFICIENTE.ASIMETRIA ## Devuelve la asimetría de una distribución. +SLOPE = PENDIENTE ## Devuelve la pendiente de la línea de regresión lineal. +SMALL = K.ESIMO.MENOR ## Devuelve el k-ésimo menor valor de un conjunto de datos. +STANDARDIZE = NORMALIZACION ## Devuelve un valor normalizado. +STDEV = DESVEST ## Calcula la desviación estándar a partir de una muestra. +STDEVA = DESVESTA ## Calcula la desviación estándar a partir de una muestra, incluidos números, texto y valores lógicos. +STDEVP = DESVESTP ## Calcula la desviación estándar en función de toda la población. +STDEVPA = DESVESTPA ## Calcula la desviación estándar en función de toda la población, incluidos números, texto y valores lógicos. +STEYX = ERROR.TIPICO.XY ## Devuelve el error estándar del valor de "y" previsto para cada "x" de la regresión. +TDIST = DISTR.T ## Devuelve la distribución de t de Student. +TINV = DISTR.T.INV ## Devuelve la función inversa de la distribución de t de Student. +TREND = TENDENCIA ## Devuelve valores en una tendencia lineal. +TRIMMEAN = MEDIA.ACOTADA ## Devuelve la media del interior de un conjunto de datos. +TTEST = PRUEBA.T ## Devuelve la probabilidad asociada a una prueba t de Student. +VAR = VAR ## Calcula la varianza en función de una muestra. +VARA = VARA ## Calcula la varianza en función de una muestra, incluidos números, texto y valores lógicos. +VARP = VARP ## Calcula la varianza en función de toda la población. +VARPA = VARPA ## Calcula la varianza en función de toda la población, incluidos números, texto y valores lógicos. +WEIBULL = DIST.WEIBULL ## Devuelve la distribución de Weibull. +ZTEST = PRUEBA.Z ## Devuelve el valor de una probabilidad de una cola de una prueba z. + + +## +## Text functions Funciones de texto +## +ASC = ASC ## Convierte las letras inglesas o katakana de ancho completo (de dos bytes) dentro de una cadena de caracteres en caracteres de ancho medio (de un byte). +BAHTTEXT = TEXTOBAHT ## Convierte un número en texto, con el formato de moneda ß (Baht). +CHAR = CARACTER ## Devuelve el carácter especificado por el número de código. +CLEAN = LIMPIAR ## Quita del texto todos los caracteres no imprimibles. +CODE = CODIGO ## Devuelve un código numérico del primer carácter de una cadena de texto. +CONCATENATE = CONCATENAR ## Concatena varios elementos de texto en uno solo. +DOLLAR = MONEDA ## Convierte un número en texto, con el formato de moneda $ (dólar). +EXACT = IGUAL ## Comprueba si dos valores de texto son idénticos. +FIND = ENCONTRAR ## Busca un valor de texto dentro de otro (distingue mayúsculas de minúsculas). +FINDB = ENCONTRARB ## Busca un valor de texto dentro de otro (distingue mayúsculas de minúsculas). +FIXED = DECIMAL ## Da formato a un número como texto con un número fijo de decimales. +JIS = JIS ## Convierte las letras inglesas o katakana de ancho medio (de un byte) dentro de una cadena de caracteres en caracteres de ancho completo (de dos bytes). +LEFT = IZQUIERDA ## Devuelve los caracteres del lado izquierdo de un valor de texto. +LEFTB = IZQUIERDAB ## Devuelve los caracteres del lado izquierdo de un valor de texto. +LEN = LARGO ## Devuelve el número de caracteres de una cadena de texto. +LENB = LARGOB ## Devuelve el número de caracteres de una cadena de texto. +LOWER = MINUSC ## Pone el texto en minúsculas. +MID = EXTRAE ## Devuelve un número específico de caracteres de una cadena de texto que comienza en la posición que se especifique. +MIDB = EXTRAEB ## Devuelve un número específico de caracteres de una cadena de texto que comienza en la posición que se especifique. +PHONETIC = FONETICO ## Extrae los caracteres fonéticos (furigana) de una cadena de texto. +PROPER = NOMPROPIO ## Pone en mayúscula la primera letra de cada palabra de un valor de texto. +REPLACE = REEMPLAZAR ## Reemplaza caracteres de texto. +REPLACEB = REEMPLAZARB ## Reemplaza caracteres de texto. +REPT = REPETIR ## Repite el texto un número determinado de veces. +RIGHT = DERECHA ## Devuelve los caracteres del lado derecho de un valor de texto. +RIGHTB = DERECHAB ## Devuelve los caracteres del lado derecho de un valor de texto. +SEARCH = HALLAR ## Busca un valor de texto dentro de otro (no distingue mayúsculas de minúsculas). +SEARCHB = HALLARB ## Busca un valor de texto dentro de otro (no distingue mayúsculas de minúsculas). +SUBSTITUTE = SUSTITUIR ## Sustituye texto nuevo por texto antiguo en una cadena de texto. +T = T ## Convierte sus argumentos a texto. +TEXT = TEXTO ## Da formato a un número y lo convierte en texto. +TRIM = ESPACIOS ## Quita los espacios del texto. +UPPER = MAYUSC ## Pone el texto en mayúsculas. +VALUE = VALOR ## Convierte un argumento de texto en un número. diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/fi/config b/plugins/excel_reader/Classes/PHPExcel/locale/fi/config new file mode 100755 index 0000000..ba274e1 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/fi/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = $ # Symbol not known, should it be a € (Euro)? + + +## +## Excel Error Codes (For future use) +## +NULL = #TYHJÄ! +DIV0 = #JAKO/0! +VALUE = #ARVO! +REF = #VIITTAUS! +NAME = #NIMI? +NUM = #LUKU! +NA = #PUUTTUU diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/fi/functions b/plugins/excel_reader/Classes/PHPExcel/locale/fi/functions new file mode 100755 index 0000000..25e08ea --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/fi/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Apuohjelma- ja automaatiofunktiot +## +GETPIVOTDATA = NOUDA.PIVOT.TIEDOT ## Palauttaa pivot-taulukkoraporttiin tallennettuja tietoja. + + +## +## Cube functions Kuutiofunktiot +## +CUBEKPIMEMBER = KUUTIOKPIJÄSEN ## Palauttaa suorituskykyilmaisimen (KPI) nimen, ominaisuuden sekä mitan ja näyttää nimen sekä ominaisuuden solussa. KPI on mitattavissa oleva suure, kuten kuukauden bruttotuotto tai vuosineljänneksen työntekijäkohtainen liikevaihto, joiden avulla tarkkaillaan organisaation suorituskykyä. +CUBEMEMBER = KUUTIONJÄSEN ## Palauttaa kuutiohierarkian jäsenen tai monikon. Tällä funktiolla voit tarkistaa, että jäsen tai monikko on olemassa kuutiossa. +CUBEMEMBERPROPERTY = KUUTIONJÄSENENOMINAISUUS ## Palauttaa kuution jäsenominaisuuden arvon. Tällä funktiolla voit tarkistaa, että nimi on olemassa kuutiossa, ja palauttaa tämän jäsenen määritetyn ominaisuuden. +CUBERANKEDMEMBER = KUUTIONLUOKITELTUJÄSEN ## Palauttaa joukon n:nnen jäsenen. Tällä funktiolla voit palauttaa joukosta elementtejä, kuten parhaan myyjän tai 10 parasta opiskelijaa. +CUBESET = KUUTIOJOUKKO ## Määrittää lasketun jäsen- tai monikkojoukon lähettämällä joukon lausekkeita palvelimessa olevalle kuutiolle. Palvelin luo joukon ja palauttaa sen Microsoft Office Excelille. +CUBESETCOUNT = KUUTIOJOUKKOJENMÄÄRÄ ## Palauttaa joukon kohteiden määrän. +CUBEVALUE = KUUTIONARVO ## Palauttaa koostetun arvon kuutiosta. + + +## +## Database functions Tietokantafunktiot +## +DAVERAGE = TKESKIARVO ## Palauttaa valittujen tietokantamerkintöjen keskiarvon. +DCOUNT = TLASKE ## Laskee tietokannan lukuja sisältävien solujen määrän. +DCOUNTA = TLASKEA ## Laskee tietokannan tietoja sisältävien solujen määrän. +DGET = TNOUDA ## Hakee määritettyjä ehtoja vastaavan tietueen tietokannasta. +DMAX = TMAKS ## Palauttaa suurimman arvon tietokannasta valittujen arvojen joukosta. +DMIN = TMIN ## Palauttaa pienimmän arvon tietokannasta valittujen arvojen joukosta. +DPRODUCT = TTULO ## Kertoo määritetyn ehdon täyttävien tietokannan tietueiden tietyssä kentässä olevat arvot. +DSTDEV = TKESKIHAJONTA ## Laskee keskihajonnan tietokannasta valituista arvoista muodostuvan otoksen perusteella. +DSTDEVP = TKESKIHAJONTAP ## Laskee keskihajonnan tietokannasta valittujen arvojen koko populaation perusteella. +DSUM = TSUMMA ## Lisää luvut määritetyn ehdon täyttävien tietokannan tietueiden kenttäsarakkeeseen. +DVAR = TVARIANSSI ## Laskee varianssin tietokannasta valittujen arvojen otoksen perusteella. +DVARP = TVARIANSSIP ## Laskee varianssin tietokannasta valittujen arvojen koko populaation perusteella. + + +## +## Date and time functions Päivämäärä- ja aikafunktiot +## +DATE = PÄIVÄYS ## Palauttaa annetun päivämäärän järjestysluvun. +DATEVALUE = PÄIVÄYSARVO ## Muuntaa tekstimuodossa olevan päivämäärän järjestysluvuksi. +DAY = PÄIVÄ ## Muuntaa järjestysluvun kuukauden päiväksi. +DAYS360 = PÄIVÄT360 ## Laskee kahden päivämäärän välisten päivien määrän käyttäen perustana 360-päiväistä vuotta. +EDATE = PÄIVÄ.KUUKAUSI ## Palauttaa järjestyslukuna päivämäärän, joka poikkeaa aloituspäivän päivämäärästä annetun kuukausimäärän verran joko eteen- tai taaksepäin. +EOMONTH = KUUKAUSI.LOPPU ## Palauttaa järjestyslukuna sen kuukauden viimeisen päivämäärän, joka poikkeaa annetun kuukausimäärän verran eteen- tai taaksepäin. +HOUR = TUNNIT ## Muuntaa järjestysluvun tunneiksi. +MINUTE = MINUUTIT ## Muuntaa järjestysluvun minuuteiksi. +MONTH = KUUKAUSI ## Muuntaa järjestysluvun kuukausiksi. +NETWORKDAYS = TYÖPÄIVÄT ## Palauttaa kahden päivämäärän välissä olevien täysien työpäivien määrän. +NOW = NYT ## Palauttaa kuluvan päivämäärän ja ajan järjestysnumeron. +SECOND = SEKUNNIT ## Muuntaa järjestysluvun sekunneiksi. +TIME = AIKA ## Palauttaa annetun kellonajan järjestysluvun. +TIMEVALUE = AIKA_ARVO ## Muuntaa tekstimuodossa olevan kellonajan järjestysluvuksi. +TODAY = TÄMÄ.PÄIVÄ ## Palauttaa kuluvan päivän päivämäärän järjestysluvun. +WEEKDAY = VIIKONPÄIVÄ ## Muuntaa järjestysluvun viikonpäiväksi. +WEEKNUM = VIIKKO.NRO ## Muuntaa järjestysluvun luvuksi, joka ilmaisee viikon järjestysluvun vuoden alusta laskettuna. +WORKDAY = TYÖPÄIVÄ ## Palauttaa järjestysluvun päivämäärälle, joka sijaitsee annettujen työpäivien verran eteen tai taaksepäin. +YEAR = VUOSI ## Muuntaa järjestysluvun vuosiksi. +YEARFRAC = VUOSI.OSA ## Palauttaa määritettyjen päivämäärien (aloituspäivä ja lopetuspäivä) välisen osan vuodesta. + + +## +## Engineering functions Tekniset funktiot +## +BESSELI = BESSELI ## Palauttaa muunnetun Bessel-funktion In(x). +BESSELJ = BESSELJ ## Palauttaa Bessel-funktion Jn(x). +BESSELK = BESSELK ## Palauttaa muunnetun Bessel-funktion Kn(x). +BESSELY = BESSELY ## Palauttaa Bessel-funktion Yn(x). +BIN2DEC = BINDES ## Muuntaa binaariluvun desimaaliluvuksi. +BIN2HEX = BINHEKSA ## Muuntaa binaariluvun heksadesimaaliluvuksi. +BIN2OCT = BINOKT ## Muuntaa binaariluvun oktaaliluvuksi. +COMPLEX = KOMPLEKSI ## Muuntaa reaali- ja imaginaariosien kertoimet kompleksiluvuksi. +CONVERT = MUUNNA ## Muuntaa luvun toisen mittajärjestelmän mukaiseksi. +DEC2BIN = DESBIN ## Muuntaa desimaaliluvun binaariluvuksi. +DEC2HEX = DESHEKSA ## Muuntaa kymmenjärjestelmän luvun heksadesimaaliluvuksi. +DEC2OCT = DESOKT ## Muuntaa kymmenjärjestelmän luvun oktaaliluvuksi. +DELTA = SAMA.ARVO ## Tarkistaa, ovatko kaksi arvoa yhtä suuria. +ERF = VIRHEFUNKTIO ## Palauttaa virhefunktion. +ERFC = VIRHEFUNKTIO.KOMPLEMENTTI ## Palauttaa komplementtivirhefunktion. +GESTEP = RAJA ## Testaa, onko luku suurempi kuin kynnysarvo. +HEX2BIN = HEKSABIN ## Muuntaa heksadesimaaliluvun binaariluvuksi. +HEX2DEC = HEKSADES ## Muuntaa heksadesimaaliluvun desimaaliluvuksi. +HEX2OCT = HEKSAOKT ## Muuntaa heksadesimaaliluvun oktaaliluvuksi. +IMABS = KOMPLEKSI.ITSEISARVO ## Palauttaa kompleksiluvun itseisarvon (moduluksen). +IMAGINARY = KOMPLEKSI.IMAG ## Palauttaa kompleksiluvun imaginaariosan kertoimen. +IMARGUMENT = KOMPLEKSI.ARG ## Palauttaa theeta-argumentin, joka on radiaaneina annettu kulma. +IMCONJUGATE = KOMPLEKSI.KONJ ## Palauttaa kompleksiluvun konjugaattiluvun. +IMCOS = KOMPLEKSI.COS ## Palauttaa kompleksiluvun kosinin. +IMDIV = KOMPLEKSI.OSAM ## Palauttaa kahden kompleksiluvun osamäärän. +IMEXP = KOMPLEKSI.EKSP ## Palauttaa kompleksiluvun eksponentin. +IMLN = KOMPLEKSI.LN ## Palauttaa kompleksiluvun luonnollisen logaritmin. +IMLOG10 = KOMPLEKSI.LOG10 ## Palauttaa kompleksiluvun kymmenkantaisen logaritmin. +IMLOG2 = KOMPLEKSI.LOG2 ## Palauttaa kompleksiluvun kaksikantaisen logaritmin. +IMPOWER = KOMPLEKSI.POT ## Palauttaa kokonaislukupotenssiin korotetun kompleksiluvun. +IMPRODUCT = KOMPLEKSI.TULO ## Palauttaa kompleksilukujen tulon. +IMREAL = KOMPLEKSI.REAALI ## Palauttaa kompleksiluvun reaaliosan kertoimen. +IMSIN = KOMPLEKSI.SIN ## Palauttaa kompleksiluvun sinin. +IMSQRT = KOMPLEKSI.NELIÖJ ## Palauttaa kompleksiluvun neliöjuuren. +IMSUB = KOMPLEKSI.EROTUS ## Palauttaa kahden kompleksiluvun erotuksen. +IMSUM = KOMPLEKSI.SUM ## Palauttaa kompleksilukujen summan. +OCT2BIN = OKTBIN ## Muuntaa oktaaliluvun binaariluvuksi. +OCT2DEC = OKTDES ## Muuntaa oktaaliluvun desimaaliluvuksi. +OCT2HEX = OKTHEKSA ## Muuntaa oktaaliluvun heksadesimaaliluvuksi. + + +## +## Financial functions Rahoitusfunktiot +## +ACCRINT = KERTYNYT.KORKO ## Laskee arvopaperille kertyneen koron, kun korko kertyy säännöllisin väliajoin. +ACCRINTM = KERTYNYT.KORKO.LOPUSSA ## Laskee arvopaperille kertyneen koron, kun korko maksetaan eräpäivänä. +AMORDEGRC = AMORDEGRC ## Laskee kunkin laskentakauden poiston poistokerrointa käyttämällä. +AMORLINC = AMORLINC ## Palauttaa kunkin laskentakauden poiston. +COUPDAYBS = KORKOPÄIVÄT.ALUSTA ## Palauttaa koronmaksukauden aloituspäivän ja tilityspäivän välisen ajanjakson päivien määrän. +COUPDAYS = KORKOPÄIVÄT ## Palauttaa päivien määrän koronmaksukaudelta, johon tilityspäivä kuuluu. +COUPDAYSNC = KORKOPÄIVÄT.SEURAAVA ## Palauttaa tilityspäivän ja seuraavan koronmaksupäivän välisen ajanjakson päivien määrän. +COUPNCD = KORKOMAKSU.SEURAAVA ## Palauttaa tilityspäivän jälkeisen seuraavan koronmaksupäivän. +COUPNUM = KORKOPÄIVÄJAKSOT ## Palauttaa arvopaperin ostopäivän ja erääntymispäivän välisten koronmaksupäivien määrän. +COUPPCD = KORKOPÄIVÄ.EDELLINEN ## Palauttaa tilityspäivää edeltävän koronmaksupäivän. +CUMIPMT = MAKSETTU.KORKO ## Palauttaa kahden jakson välisenä aikana kertyneen koron. +CUMPRINC = MAKSETTU.LYHENNYS ## Palauttaa lainalle kahden jakson välisenä aikana kertyneen lyhennyksen. +DB = DB ## Palauttaa kauden kirjanpidollisen poiston amerikkalaisen DB-menetelmän (Fixed-declining balance) mukaan. +DDB = DDB ## Palauttaa kauden kirjanpidollisen poiston amerikkalaisen DDB-menetelmän (Double-Declining Balance) tai jonkin muun määrittämäsi menetelmän mukaan. +DISC = DISKONTTOKORKO ## Palauttaa arvopaperin diskonttokoron. +DOLLARDE = VALUUTTA.DES ## Muuntaa murtolukuna ilmoitetun valuuttamäärän desimaaliluvuksi. +DOLLARFR = VALUUTTA.MURTO ## Muuntaa desimaalilukuna ilmaistun valuuttamäärän murtoluvuksi. +DURATION = KESTO ## Palauttaa keston arvopaperille, jonka koronmaksu tapahtuu säännöllisesti. +EFFECT = KORKO.EFEKT ## Palauttaa todellisen vuosikoron. +FV = TULEVA.ARVO ## Palauttaa sijoituksen tulevan arvon. +FVSCHEDULE = TULEVA.ARVO.ERIKORKO ## Palauttaa pääoman tulevan arvon, kun pääomalle on kertynyt korkoa vaihtelevasti. +INTRATE = KORKO.ARVOPAPERI ## Palauttaa arvopaperin korkokannan täysin sijoitetulle arvopaperille. +IPMT = IPMT ## Laskee sijoitukselle tai lainalle tiettynä ajanjaksona kertyvän koron. +IRR = SISÄINEN.KORKO ## Laskee sisäisen korkokannan kassavirrasta muodostuvalle sarjalle. +ISPMT = ONMAKSU ## Laskee sijoituksen maksetun koron tietyllä jaksolla. +MDURATION = KESTO.MUUNN ## Palauttaa muunnetun Macauley-keston arvopaperille, jonka oletettu nimellisarvo on 100 euroa. +MIRR = MSISÄINEN ## Palauttaa sisäisen korkokannan, kun positiivisten ja negatiivisten kassavirtojen rahoituskorko on erilainen. +NOMINAL = KORKO.VUOSI ## Palauttaa vuosittaisen nimelliskoron. +NPER = NJAKSO ## Palauttaa sijoituksen jaksojen määrän. +NPV = NNA ## Palauttaa sijoituksen nykyarvon toistuvista kassavirroista muodostuvan sarjan ja diskonttokoron perusteella. +ODDFPRICE = PARITON.ENS.NIMELLISARVO ## Palauttaa arvopaperin hinnan tilanteessa, jossa ensimmäinen jakso on pariton. +ODDFYIELD = PARITON.ENS.TUOTTO ## Palauttaa arvopaperin tuoton tilanteessa, jossa ensimmäinen jakso on pariton. +ODDLPRICE = PARITON.VIIM.NIMELLISARVO ## Palauttaa arvopaperin hinnan tilanteessa, jossa viimeinen jakso on pariton. +ODDLYIELD = PARITON.VIIM.TUOTTO ## Palauttaa arvopaperin tuoton tilanteessa, jossa viimeinen jakso on pariton. +PMT = MAKSU ## Palauttaa annuiteetin kausittaisen maksuerän. +PPMT = PPMT ## Laskee sijoitukselle tai lainalle tiettynä ajanjaksona maksettavan lyhennyksen. +PRICE = HINTA ## Palauttaa hinnan 100 euron nimellisarvoa kohden arvopaperille, jonka korko maksetaan säännöllisin väliajoin. +PRICEDISC = HINTA.DISK ## Palauttaa diskontatun arvopaperin hinnan 100 euron nimellisarvoa kohden. +PRICEMAT = HINTA.LUNASTUS ## Palauttaa hinnan 100 euron nimellisarvoa kohden arvopaperille, jonka korko maksetaan erääntymispäivänä. +PV = NA ## Palauttaa sijoituksen nykyarvon. +RATE = KORKO ## Palauttaa annuiteetin kausittaisen korkokannan. +RECEIVED = SAATU.HINTA ## Palauttaa arvopaperin tuoton erääntymispäivänä kokonaan maksetulle sijoitukselle. +SLN = STP ## Palauttaa sijoituksen tasapoiston yhdeltä jaksolta. +SYD = VUOSIPOISTO ## Palauttaa sijoituksen vuosipoiston annettuna kautena amerikkalaisen SYD-menetelmän (Sum-of-Year's Digits) avulla. +TBILLEQ = OBLIG.TUOTTOPROS ## Palauttaa valtion obligaation tuoton vastaavana joukkovelkakirjan tuottona. +TBILLPRICE = OBLIG.HINTA ## Palauttaa obligaation hinnan 100 euron nimellisarvoa kohden. +TBILLYIELD = OBLIG.TUOTTO ## Palauttaa obligaation tuoton. +VDB = VDB ## Palauttaa annetun kauden tai kauden osan kirjanpidollisen poiston amerikkalaisen DB-menetelmän (Fixed-declining balance) mukaan. +XIRR = SISÄINEN.KORKO.JAKSOTON ## Palauttaa sisäisen korkokannan kassavirtojen sarjoille, jotka eivät välttämättä ole säännöllisiä. +XNPV = NNA.JAKSOTON ## Palauttaa nettonykyarvon kassavirtasarjalle, joka ei välttämättä ole kausittainen. +YIELD = TUOTTO ## Palauttaa tuoton arvopaperille, jonka korko maksetaan säännöllisin väliajoin. +YIELDDISC = TUOTTO.DISK ## Palauttaa diskontatun arvopaperin, kuten obligaation, vuosittaisen tuoton. +YIELDMAT = TUOTTO.ERÄP ## Palauttaa erääntymispäivänään korkoa tuottavan arvopaperin vuosittaisen tuoton. + + +## +## Information functions Erikoisfunktiot +## +CELL = SOLU ## Palauttaa tietoja solun muotoilusta, sijainnista ja sisällöstä. +ERROR.TYPE = VIRHEEN.LAJI ## Palauttaa virhetyyppiä vastaavan luvun. +INFO = KUVAUS ## Palauttaa tietoja nykyisestä käyttöympäristöstä. +ISBLANK = ONTYHJÄ ## Palauttaa arvon TOSI, jos arvo on tyhjä. +ISERR = ONVIRH ## Palauttaa arvon TOSI, jos arvo on mikä tahansa virhearvo paitsi arvo #PUUTTUU!. +ISERROR = ONVIRHE ## Palauttaa arvon TOSI, jos arvo on mikä tahansa virhearvo. +ISEVEN = ONPARILLINEN ## Palauttaa arvon TOSI, jos arvo on parillinen. +ISLOGICAL = ONTOTUUS ## Palauttaa arvon TOSI, jos arvo on mikä tahansa looginen arvo. +ISNA = ONPUUTTUU ## Palauttaa arvon TOSI, jos virhearvo on #PUUTTUU!. +ISNONTEXT = ONEI_TEKSTI ## Palauttaa arvon TOSI, jos arvo ei ole teksti. +ISNUMBER = ONLUKU ## Palauttaa arvon TOSI, jos arvo on luku. +ISODD = ONPARITON ## Palauttaa arvon TOSI, jos arvo on pariton. +ISREF = ONVIITT ## Palauttaa arvon TOSI, jos arvo on viittaus. +ISTEXT = ONTEKSTI ## Palauttaa arvon TOSI, jos arvo on teksti. +N = N ## Palauttaa arvon luvuksi muunnettuna. +NA = PUUTTUU ## Palauttaa virhearvon #PUUTTUU!. +TYPE = TYYPPI ## Palauttaa luvun, joka ilmaisee arvon tietotyypin. + + +## +## Logical functions Loogiset funktiot +## +AND = JA ## Palauttaa arvon TOSI, jos kaikkien argumenttien arvo on TOSI. +FALSE = EPÄTOSI ## Palauttaa totuusarvon EPÄTOSI. +IF = JOS ## Määrittää suoritettavan loogisen testin. +IFERROR = JOSVIRHE ## Palauttaa määrittämäsi arvon, jos kaavan tulos on virhe; muussa tapauksessa palauttaa kaavan tuloksen. +NOT = EI ## Kääntää argumentin loogisen arvon. +OR = TAI ## Palauttaa arvon TOSI, jos minkä tahansa argumentin arvo on TOSI. +TRUE = TOSI ## Palauttaa totuusarvon TOSI. + + +## +## Lookup and reference functions Haku- ja viitefunktiot +## +ADDRESS = OSOITE ## Palauttaa laskentataulukon soluun osoittavan viittauksen tekstinä. +AREAS = ALUEET ## Palauttaa viittauksessa olevien alueiden määrän. +CHOOSE = VALITSE.INDEKSI ## Valitsee arvon arvoluettelosta. +COLUMN = SARAKE ## Palauttaa viittauksen sarakenumeron. +COLUMNS = SARAKKEET ## Palauttaa viittauksessa olevien sarakkeiden määrän. +HLOOKUP = VHAKU ## Suorittaa haun matriisin ylimmältä riviltä ja palauttaa määritetyn solun arvon. +HYPERLINK = HYPERLINKKI ## Luo pikakuvakkeen tai tekstin, joka avaa verkkopalvelimeen, intranetiin tai Internetiin tallennetun tiedoston. +INDEX = INDEKSI ## Valitsee arvon viittauksesta tai matriisista indeksin mukaan. +INDIRECT = EPÄSUORA ## Palauttaa tekstiarvona ilmaistun viittauksen. +LOOKUP = HAKU ## Etsii arvoja vektorista tai matriisista. +MATCH = VASTINE ## Etsii arvoja viittauksesta tai matriisista. +OFFSET = SIIRTYMÄ ## Palauttaa annetun viittauksen siirtymän. +ROW = RIVI ## Palauttaa viittauksen rivinumeron. +ROWS = RIVIT ## Palauttaa viittauksessa olevien rivien määrän. +RTD = RTD ## Noutaa COM-automaatiota (automaatio: Tapa käsitellä sovelluksen objekteja toisesta sovelluksesta tai kehitystyökalusta. Automaatio, jota aiemmin kutsuttiin OLE-automaatioksi, on teollisuusstandardi ja COM-mallin (Component Object Model) ominaisuus.) tukevasta ohjelmasta reaaliaikaisia tietoja. +TRANSPOSE = TRANSPONOI ## Palauttaa matriisin käänteismatriisin. +VLOOKUP = PHAKU ## Suorittaa haun matriisin ensimmäisestä sarakkeesta ja palauttaa rivillä olevan solun arvon. + + +## +## Math and trigonometry functions Matemaattiset ja trigonometriset funktiot +## +ABS = ITSEISARVO ## Palauttaa luvun itseisarvon. +ACOS = ACOS ## Palauttaa luvun arkuskosinin. +ACOSH = ACOSH ## Palauttaa luvun käänteisen hyperbolisen kosinin. +ASIN = ASIN ## Palauttaa luvun arkussinin. +ASINH = ASINH ## Palauttaa luvun käänteisen hyperbolisen sinin. +ATAN = ATAN ## Palauttaa luvun arkustangentin. +ATAN2 = ATAN2 ## Palauttaa arkustangentin x- ja y-koordinaatin perusteella. +ATANH = ATANH ## Palauttaa luvun käänteisen hyperbolisen tangentin. +CEILING = PYÖRISTÄ.KERR.YLÖS ## Pyöristää luvun lähimpään kokonaislukuun tai tarkkuusargumentin lähimpään kerrannaiseen. +COMBIN = KOMBINAATIO ## Palauttaa mahdollisten kombinaatioiden määrän annetulle objektien määrälle. +COS = COS ## Palauttaa luvun kosinin. +COSH = COSH ## Palauttaa luvun hyperbolisen kosinin. +DEGREES = ASTEET ## Muuntaa radiaanit asteiksi. +EVEN = PARILLINEN ## Pyöristää luvun ylöspäin lähimpään parilliseen kokonaislukuun. +EXP = EKSPONENTTI ## Palauttaa e:n korotettuna annetun luvun osoittamaan potenssiin. +FACT = KERTOMA ## Palauttaa luvun kertoman. +FACTDOUBLE = KERTOMA.OSA ## Palauttaa luvun osakertoman. +FLOOR = PYÖRISTÄ.KERR.ALAS ## Pyöristää luvun alaspäin (nollaa kohti). +GCD = SUURIN.YHT.TEKIJÄ ## Palauttaa suurimman yhteisen tekijän. +INT = KOKONAISLUKU ## Pyöristää luvun alaspäin lähimpään kokonaislukuun. +LCM = PIENIN.YHT.JAETTAVA ## Palauttaa pienimmän yhteisen tekijän. +LN = LUONNLOG ## Palauttaa luvun luonnollisen logaritmin. +LOG = LOG ## Laskee luvun logaritmin käyttämällä annettua kantalukua. +LOG10 = LOG10 ## Palauttaa luvun kymmenkantaisen logaritmin. +MDETERM = MDETERM ## Palauttaa matriisin matriisideterminantin. +MINVERSE = MKÄÄNTEINEN ## Palauttaa matriisin käänteismatriisin. +MMULT = MKERRO ## Palauttaa kahden matriisin tulon. +MOD = JAKOJ ## Palauttaa jakolaskun jäännöksen. +MROUND = PYÖRISTÄ.KERR ## Palauttaa luvun pyöristettynä annetun luvun kerrannaiseen. +MULTINOMIAL = MULTINOMI ## Palauttaa lukujoukon multinomin. +ODD = PARITON ## Pyöristää luvun ylöspäin lähimpään parittomaan kokonaislukuun. +PI = PII ## Palauttaa piin arvon. +POWER = POTENSSI ## Palauttaa luvun korotettuna haluttuun potenssiin. +PRODUCT = TULO ## Kertoo annetut argumentit. +QUOTIENT = OSAMÄÄRÄ ## Palauttaa osamäärän kokonaislukuosan. +RADIANS = RADIAANIT ## Muuntaa asteet radiaaneiksi. +RAND = SATUNNAISLUKU ## Palauttaa satunnaisluvun väliltä 0–1. +RANDBETWEEN = SATUNNAISLUKU.VÄLILTÄ ## Palauttaa satunnaisluvun määritettyjen lukujen väliltä. +ROMAN = ROMAN ## Muuntaa arabialaisen numeron tekstimuotoiseksi roomalaiseksi numeroksi. +ROUND = PYÖRISTÄ ## Pyöristää luvun annettuun määrään desimaaleja. +ROUNDDOWN = PYÖRISTÄ.DES.ALAS ## Pyöristää luvun alaspäin (nollaa kohti). +ROUNDUP = PYÖRISTÄ.DES.YLÖS ## Pyöristää luvun ylöspäin (poispäin nollasta). +SERIESSUM = SARJA.SUMMA ## Palauttaa kaavaan perustuvan potenssisarjan arvon. +SIGN = ETUMERKKI ## Palauttaa luvun etumerkin. +SIN = SIN ## Palauttaa annetun kulman sinin. +SINH = SINH ## Palauttaa luvun hyperbolisen sinin. +SQRT = NELIÖJUURI ## Palauttaa positiivisen neliöjuuren. +SQRTPI = NELIÖJUURI.PII ## Palauttaa tulon (luku * pii) neliöjuuren. +SUBTOTAL = VÄLISUMMA ## Palauttaa luettelon tai tietokannan välisumman. +SUM = SUMMA ## Laskee yhteen annetut argumentit. +SUMIF = SUMMA.JOS ## Laskee ehdot täyttävien solujen summan. +SUMIFS = SUMMA.JOS.JOUKKO ## Laskee yhteen solualueen useita ehtoja vastaavat solut. +SUMPRODUCT = TULOJEN.SUMMA ## Palauttaa matriisin toisiaan vastaavien osien tulojen summan. +SUMSQ = NELIÖSUMMA ## Palauttaa argumenttien neliöiden summan. +SUMX2MY2 = NELIÖSUMMIEN.EROTUS ## Palauttaa kahden matriisin toisiaan vastaavien arvojen laskettujen neliösummien erotuksen. +SUMX2PY2 = NELIÖSUMMIEN.SUMMA ## Palauttaa kahden matriisin toisiaan vastaavien arvojen neliösummien summan. +SUMXMY2 = EROTUSTEN.NELIÖSUMMA ## Palauttaa kahden matriisin toisiaan vastaavien arvojen erotusten neliösumman. +TAN = TAN ## Palauttaa luvun tangentin. +TANH = TANH ## Palauttaa luvun hyperbolisen tangentin. +TRUNC = KATKAISE ## Katkaisee luvun kokonaisluvuksi. + + +## +## Statistical functions Tilastolliset funktiot +## +AVEDEV = KESKIPOIKKEAMA ## Palauttaa hajontojen itseisarvojen keskiarvon. +AVERAGE = KESKIARVO ## Palauttaa argumenttien keskiarvon. +AVERAGEA = KESKIARVOA ## Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, keskiarvon. +AVERAGEIF = KESKIARVO.JOS ## Palauttaa alueen niiden solujen keskiarvon (aritmeettisen keskiarvon), jotka täyttävät annetut ehdot. +AVERAGEIFS = KESKIARVO.JOS.JOUKKO ## Palauttaa niiden solujen keskiarvon (aritmeettisen keskiarvon), jotka vastaavat useita ehtoja. +BETADIST = BEETAJAKAUMA ## Palauttaa kumulatiivisen beetajakaumafunktion arvon. +BETAINV = BEETAJAKAUMA.KÄÄNT ## Palauttaa määritetyn beetajakauman käänteisen kumulatiivisen jakaumafunktion arvon. +BINOMDIST = BINOMIJAKAUMA ## Palauttaa yksittäisen termin binomijakaumatodennäköisyyden. +CHIDIST = CHIJAKAUMA ## Palauttaa yksisuuntaisen chi-neliön jakauman todennäköisyyden. +CHIINV = CHIJAKAUMA.KÄÄNT ## Palauttaa yksisuuntaisen chi-neliön jakauman todennäköisyyden käänteisarvon. +CHITEST = CHITESTI ## Palauttaa riippumattomuustestin tuloksen. +CONFIDENCE = LUOTTAMUSVÄLI ## Palauttaa luottamusvälin populaation keskiarvolle. +CORREL = KORRELAATIO ## Palauttaa kahden arvojoukon korrelaatiokertoimen. +COUNT = LASKE ## Laskee argumenttiluettelossa olevien lukujen määrän. +COUNTA = LASKE.A ## Laskee argumenttiluettelossa olevien arvojen määrän. +COUNTBLANK = LASKE.TYHJÄT ## Laskee alueella olevien tyhjien solujen määrän. +COUNTIF = LASKE.JOS ## Laskee alueella olevien sellaisten solujen määrän, joiden sisältö vastaa annettuja ehtoja. +COUNTIFS = LASKE.JOS.JOUKKO ## Laskee alueella olevien sellaisten solujen määrän, joiden sisältö vastaa useita ehtoja. +COVAR = KOVARIANSSI ## Palauttaa kovarianssin, joka on keskiarvo havaintoaineiston kunkin pisteparin poikkeamien tuloista. +CRITBINOM = BINOMIJAKAUMA.KRIT ## Palauttaa pienimmän arvon, jossa binomijakauman kertymäfunktion arvo on pienempi tai yhtä suuri kuin vertailuarvo. +DEVSQ = OIKAISTU.NELIÖSUMMA ## Palauttaa keskipoikkeamien neliösumman. +EXPONDIST = EKSPONENTIAALIJAKAUMA ## Palauttaa eksponentiaalijakauman. +FDIST = FJAKAUMA ## Palauttaa F-todennäköisyysjakauman. +FINV = FJAKAUMA.KÄÄNT ## Palauttaa F-todennäköisyysjakauman käänteisfunktion. +FISHER = FISHER ## Palauttaa Fisher-muunnoksen. +FISHERINV = FISHER.KÄÄNT ## Palauttaa käänteisen Fisher-muunnoksen. +FORECAST = ENNUSTE ## Palauttaa lineaarisen trendin arvon. +FREQUENCY = TAAJUUS ## Palauttaa frekvenssijakautuman pystysuuntaisena matriisina. +FTEST = FTESTI ## Palauttaa F-testin tuloksen. +GAMMADIST = GAMMAJAKAUMA ## Palauttaa gammajakauman. +GAMMAINV = GAMMAJAKAUMA.KÄÄNT ## Palauttaa käänteisen gammajakauman kertymäfunktion. +GAMMALN = GAMMALN ## Palauttaa gammafunktion luonnollisen logaritmin G(x). +GEOMEAN = KESKIARVO.GEOM ## Palauttaa geometrisen keskiarvon. +GROWTH = KASVU ## Palauttaa eksponentiaalisen trendin arvon. +HARMEAN = KESKIARVO.HARM ## Palauttaa harmonisen keskiarvon. +HYPGEOMDIST = HYPERGEOM.JAKAUMA ## Palauttaa hypergeometrisen jakauman. +INTERCEPT = LEIKKAUSPISTE ## Palauttaa lineaarisen regressiosuoran leikkauspisteen. +KURT = KURT ## Palauttaa tietoalueen vinous-arvon eli huipukkuuden. +LARGE = SUURI ## Palauttaa tietojoukon k:nneksi suurimman arvon. +LINEST = LINREGR ## Palauttaa lineaarisen trendin parametrit. +LOGEST = LOGREGR ## Palauttaa eksponentiaalisen trendin parametrit. +LOGINV = LOGNORM.JAKAUMA.KÄÄNT ## Palauttaa lognormeeratun jakauman käänteisfunktion. +LOGNORMDIST = LOGNORM.JAKAUMA ## Palauttaa lognormaalisen jakauman kertymäfunktion. +MAX = MAKS ## Palauttaa suurimman arvon argumenttiluettelosta. +MAXA = MAKSA ## Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, suurimman arvon. +MEDIAN = MEDIAANI ## Palauttaa annettujen lukujen mediaanin. +MIN = MIN ## Palauttaa pienimmän arvon argumenttiluettelosta. +MINA = MINA ## Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, pienimmän arvon. +MODE = MOODI ## Palauttaa tietojoukossa useimmin esiintyvän arvon. +NEGBINOMDIST = BINOMIJAKAUMA.NEG ## Palauttaa negatiivisen binomijakauman. +NORMDIST = NORM.JAKAUMA ## Palauttaa normaalijakauman kertymäfunktion. +NORMINV = NORM.JAKAUMA.KÄÄNT ## Palauttaa käänteisen normaalijakauman kertymäfunktion. +NORMSDIST = NORM.JAKAUMA.NORMIT ## Palauttaa normitetun normaalijakauman kertymäfunktion. +NORMSINV = NORM.JAKAUMA.NORMIT.KÄÄNT ## Palauttaa normitetun normaalijakauman kertymäfunktion käänteisarvon. +PEARSON = PEARSON ## Palauttaa Pearsonin tulomomenttikorrelaatiokertoimen. +PERCENTILE = PROSENTTIPISTE ## Palauttaa alueen arvojen k:nnen prosenttipisteen. +PERCENTRANK = PROSENTTIJÄRJESTYS ## Palauttaa tietojoukon arvon prosentuaalisen järjestysluvun. +PERMUT = PERMUTAATIO ## Palauttaa mahdollisten permutaatioiden määrän annetulle objektien määrälle. +POISSON = POISSON ## Palauttaa Poissonin todennäköisyysjakauman. +PROB = TODENNÄKÖISYYS ## Palauttaa todennäköisyyden sille, että arvot ovat tietyltä väliltä. +QUARTILE = NELJÄNNES ## Palauttaa tietoalueen neljänneksen. +RANK = ARVON.MUKAAN ## Palauttaa luvun paikan lukuarvoluettelossa. +RSQ = PEARSON.NELIÖ ## Palauttaa Pearsonin tulomomenttikorrelaatiokertoimen neliön. +SKEW = JAKAUMAN.VINOUS ## Palauttaa jakauman vinouden. +SLOPE = KULMAKERROIN ## Palauttaa lineaarisen regressiosuoran kulmakertoimen. +SMALL = PIENI ## Palauttaa tietojoukon k:nneksi pienimmän arvon. +STANDARDIZE = NORMITA ## Palauttaa normitetun arvon. +STDEV = KESKIHAJONTA ## Laskee populaation keskihajonnan otoksen perusteella. +STDEVA = KESKIHAJONTAA ## Laskee populaation keskihajonnan otoksen perusteella, mukaan lukien luvut, tekstin ja loogiset arvot. +STDEVP = KESKIHAJONTAP ## Laskee normaalijakautuman koko populaation perusteella. +STDEVPA = KESKIHAJONTAPA ## Laskee populaation keskihajonnan koko populaation perusteella, mukaan lukien luvut, tekstin ja totuusarvot. +STEYX = KESKIVIRHE ## Palauttaa regression kutakin x-arvoa vastaavan ennustetun y-arvon keskivirheen. +TDIST = TJAKAUMA ## Palauttaa t-jakautuman. +TINV = TJAKAUMA.KÄÄNT ## Palauttaa käänteisen t-jakauman. +TREND = SUUNTAUS ## Palauttaa lineaarisen trendin arvoja. +TRIMMEAN = KESKIARVO.TASATTU ## Palauttaa tietojoukon tasatun keskiarvon. +TTEST = TTESTI ## Palauttaa t-testiin liittyvän todennäköisyyden. +VAR = VAR ## Arvioi populaation varianssia otoksen perusteella. +VARA = VARA ## Laskee populaation varianssin otoksen perusteella, mukaan lukien luvut, tekstin ja loogiset arvot. +VARP = VARP ## Laskee varianssin koko populaation perusteella. +VARPA = VARPA ## Laskee populaation varianssin koko populaation perusteella, mukaan lukien luvut, tekstin ja totuusarvot. +WEIBULL = WEIBULL ## Palauttaa Weibullin jakauman. +ZTEST = ZTESTI ## Palauttaa z-testin yksisuuntaisen todennäköisyysarvon. + + +## +## Text functions Tekstifunktiot +## +ASC = ASC ## Muuntaa merkkijonossa olevat englanninkieliset DBCS- tai katakana-merkit SBCS-merkeiksi. +BAHTTEXT = BAHTTEKSTI ## Muuntaa luvun tekstiksi ß (baht) -valuuttamuotoa käyttämällä. +CHAR = MERKKI ## Palauttaa koodin lukua vastaavan merkin. +CLEAN = SIIVOA ## Poistaa tekstistä kaikki tulostumattomat merkit. +CODE = KOODI ## Palauttaa tekstimerkkijonon ensimmäisen merkin numerokoodin. +CONCATENATE = KETJUTA ## Yhdistää useat merkkijonot yhdeksi merkkijonoksi. +DOLLAR = VALUUTTA ## Muuntaa luvun tekstiksi $ (dollari) -valuuttamuotoa käyttämällä. +EXACT = VERTAA ## Tarkistaa, ovatko kaksi tekstiarvoa samanlaiset. +FIND = ETSI ## Etsii tekstiarvon toisen tekstin sisältä (tunnistaa isot ja pienet kirjaimet). +FINDB = ETSIB ## Etsii tekstiarvon toisen tekstin sisältä (tunnistaa isot ja pienet kirjaimet). +FIXED = KIINTEÄ ## Muotoilee luvun tekstiksi, jossa on kiinteä määrä desimaaleja. +JIS = JIS ## Muuntaa merkkijonossa olevat englanninkieliset SBCS- tai katakana-merkit DBCS-merkeiksi. +LEFT = VASEN ## Palauttaa tekstiarvon vasemmanpuoliset merkit. +LEFTB = VASENB ## Palauttaa tekstiarvon vasemmanpuoliset merkit. +LEN = PITUUS ## Palauttaa tekstimerkkijonon merkkien määrän. +LENB = PITUUSB ## Palauttaa tekstimerkkijonon merkkien määrän. +LOWER = PIENET ## Muuntaa tekstin pieniksi kirjaimiksi. +MID = POIMI.TEKSTI ## Palauttaa määritetyn määrän merkkejä merkkijonosta alkaen annetusta kohdasta. +MIDB = POIMI.TEKSTIB ## Palauttaa määritetyn määrän merkkejä merkkijonosta alkaen annetusta kohdasta. +PHONETIC = FONEETTINEN ## Hakee foneettiset (furigana) merkit merkkijonosta. +PROPER = ERISNIMI ## Muuttaa merkkijonon kunkin sanan ensimmäisen kirjaimen isoksi. +REPLACE = KORVAA ## Korvaa tekstissä olevat merkit. +REPLACEB = KORVAAB ## Korvaa tekstissä olevat merkit. +REPT = TOISTA ## Toistaa tekstin annetun määrän kertoja. +RIGHT = OIKEA ## Palauttaa tekstiarvon oikeanpuoliset merkit. +RIGHTB = OIKEAB ## Palauttaa tekstiarvon oikeanpuoliset merkit. +SEARCH = KÄY.LÄPI ## Etsii tekstiarvon toisen tekstin sisältä (isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi). +SEARCHB = KÄY.LÄPIB ## Etsii tekstiarvon toisen tekstin sisältä (isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi). +SUBSTITUTE = VAIHDA ## Korvaa merkkijonossa olevan tekstin toisella. +T = T ## Muuntaa argumentit tekstiksi. +TEXT = TEKSTI ## Muotoilee luvun ja muuntaa sen tekstiksi. +TRIM = POISTA.VÄLIT ## Poistaa välilyönnit tekstistä. +UPPER = ISOT ## Muuntaa tekstin isoiksi kirjaimiksi. +VALUE = ARVO ## Muuntaa tekstiargumentin luvuksi. diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/fr/config b/plugins/excel_reader/Classes/PHPExcel/locale/fr/config new file mode 100755 index 0000000..8ae183a --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/fr/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = € + + +## +## Excel Error Codes (For future use) +## +NULL = #NUL! +DIV0 = #DIV/0! +VALUE = #VALEUR! +REF = #REF! +NAME = #NOM? +NUM = #NOMBRE! +NA = #N/A diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/fr/functions b/plugins/excel_reader/Classes/PHPExcel/locale/fr/functions new file mode 100755 index 0000000..ebb8339 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/fr/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Fonctions de complément et d’automatisation +## +GETPIVOTDATA = LIREDONNEESTABCROISDYNAMIQUE ## Renvoie les données stockées dans un rapport de tableau croisé dynamique. + + +## +## Cube functions Fonctions Cube +## +CUBEKPIMEMBER = MEMBREKPICUBE ## Renvoie un nom, une propriété et une mesure d’indicateur de performance clé et affiche le nom et la propriété dans la cellule. Un indicateur de performance clé est une mesure quantifiable, telle que la marge bénéficiaire brute mensuelle ou la rotation trimestrielle du personnel, utilisée pour évaluer les performances d’une entreprise. +CUBEMEMBER = MEMBRECUBE ## Renvoie un membre ou un uplet dans une hiérarchie de cubes. Utilisez cette fonction pour valider l’existence du membre ou de l’uplet dans le cube. +CUBEMEMBERPROPERTY = PROPRIETEMEMBRECUBE ## Renvoie la valeur d’une propriété de membre du cube. Utilisez cette fonction pour valider l’existence d’un nom de membre dans le cube et pour renvoyer la propriété spécifiée pour ce membre. +CUBERANKEDMEMBER = RANGMEMBRECUBE ## Renvoie le nième membre ou le membre placé à un certain rang dans un ensemble. Utilisez cette fonction pour renvoyer un ou plusieurs éléments d’un ensemble, tels que les meilleurs vendeurs ou les 10 meilleurs étudiants. +CUBESET = JEUCUBE ## Définit un ensemble calculé de membres ou d’uplets en envoyant une expression définie au cube sur le serveur qui crée l’ensemble et le renvoie à Microsoft Office Excel. +CUBESETCOUNT = NBJEUCUBE ## Renvoie le nombre d’éléments dans un jeu. +CUBEVALUE = VALEURCUBE ## Renvoie une valeur d’agrégation issue d’un cube. + + +## +## Database functions Fonctions de base de données +## +DAVERAGE = BDMOYENNE ## Renvoie la moyenne des entrées de base de données sélectionnées. +DCOUNT = BCOMPTE ## Compte le nombre de cellules d’une base de données qui contiennent des nombres. +DCOUNTA = BDNBVAL ## Compte les cellules non vides d’une base de données. +DGET = BDLIRE ## Extrait d’une base de données un enregistrement unique répondant aux critères spécifiés. +DMAX = BDMAX ## Renvoie la valeur maximale des entrées de base de données sélectionnées. +DMIN = BDMIN ## Renvoie la valeur minimale des entrées de base de données sélectionnées. +DPRODUCT = BDPRODUIT ## Multiplie les valeurs d’un champ particulier des enregistrements d’une base de données, qui répondent aux critères spécifiés. +DSTDEV = BDECARTYPE ## Calcule l’écart type pour un échantillon d’entrées de base de données sélectionnées. +DSTDEVP = BDECARTYPEP ## Calcule l’écart type pour l’ensemble d’une population d’entrées de base de données sélectionnées. +DSUM = BDSOMME ## Ajoute les nombres dans la colonne de champ des enregistrements de la base de données, qui répondent aux critères. +DVAR = BDVAR ## Calcule la variance pour un échantillon d’entrées de base de données sélectionnées. +DVARP = BDVARP ## Calcule la variance pour l’ensemble d’une population d’entrées de base de données sélectionnées. + + +## +## Date and time functions Fonctions de date et d’heure +## +DATE = DATE ## Renvoie le numéro de série d’une date précise. +DATEVALUE = DATEVAL ## Convertit une date représentée sous forme de texte en numéro de série. +DAY = JOUR ## Convertit un numéro de série en jour du mois. +DAYS360 = JOURS360 ## Calcule le nombre de jours qui séparent deux dates sur la base d’une année de 360 jours. +EDATE = MOIS.DECALER ## Renvoie le numéro séquentiel de la date qui représente une date spécifiée (l’argument date_départ), corrigée en plus ou en moins du nombre de mois indiqué. +EOMONTH = FIN.MOIS ## Renvoie le numéro séquentiel de la date du dernier jour du mois précédant ou suivant la date_départ du nombre de mois indiqué. +HOUR = HEURE ## Convertit un numéro de série en heure. +MINUTE = MINUTE ## Convertit un numéro de série en minute. +MONTH = MOIS ## Convertit un numéro de série en mois. +NETWORKDAYS = NB.JOURS.OUVRES ## Renvoie le nombre de jours ouvrés entiers compris entre deux dates. +NOW = MAINTENANT ## Renvoie le numéro de série de la date et de l’heure du jour. +SECOND = SECONDE ## Convertit un numéro de série en seconde. +TIME = TEMPS ## Renvoie le numéro de série d’une heure précise. +TIMEVALUE = TEMPSVAL ## Convertit une date représentée sous forme de texte en numéro de série. +TODAY = AUJOURDHUI ## Renvoie le numéro de série de la date du jour. +WEEKDAY = JOURSEM ## Convertit un numéro de série en jour de la semaine. +WEEKNUM = NO.SEMAINE ## Convertit un numéro de série en un numéro représentant l’ordre de la semaine dans l’année. +WORKDAY = SERIE.JOUR.OUVRE ## Renvoie le numéro de série de la date avant ou après le nombre de jours ouvrés spécifiés. +YEAR = ANNEE ## Convertit un numéro de série en année. +YEARFRAC = FRACTION.ANNEE ## Renvoie la fraction de l’année représentant le nombre de jours entre la date de début et la date de fin. + + +## +## Engineering functions Fonctions d’ingénierie +## +BESSELI = BESSELI ## Renvoie la fonction Bessel modifiée In(x). +BESSELJ = BESSELJ ## Renvoie la fonction Bessel Jn(x). +BESSELK = BESSELK ## Renvoie la fonction Bessel modifiée Kn(x). +BESSELY = BESSELY ## Renvoie la fonction Bessel Yn(x). +BIN2DEC = BINDEC ## Convertit un nombre binaire en nombre décimal. +BIN2HEX = BINHEX ## Convertit un nombre binaire en nombre hexadécimal. +BIN2OCT = BINOCT ## Convertit un nombre binaire en nombre octal. +COMPLEX = COMPLEXE ## Convertit des coefficients réel et imaginaire en un nombre complexe. +CONVERT = CONVERT ## Convertit un nombre d’une unité de mesure à une autre. +DEC2BIN = DECBIN ## Convertit un nombre décimal en nombre binaire. +DEC2HEX = DECHEX ## Convertit un nombre décimal en nombre hexadécimal. +DEC2OCT = DECOCT ## Convertit un nombre décimal en nombre octal. +DELTA = DELTA ## Teste l’égalité de deux nombres. +ERF = ERF ## Renvoie la valeur de la fonction d’erreur. +ERFC = ERFC ## Renvoie la valeur de la fonction d’erreur complémentaire. +GESTEP = SUP.SEUIL ## Teste si un nombre est supérieur à une valeur de seuil. +HEX2BIN = HEXBIN ## Convertit un nombre hexadécimal en nombre binaire. +HEX2DEC = HEXDEC ## Convertit un nombre hexadécimal en nombre décimal. +HEX2OCT = HEXOCT ## Convertit un nombre hexadécimal en nombre octal. +IMABS = COMPLEXE.MODULE ## Renvoie la valeur absolue (module) d’un nombre complexe. +IMAGINARY = COMPLEXE.IMAGINAIRE ## Renvoie le coefficient imaginaire d’un nombre complexe. +IMARGUMENT = COMPLEXE.ARGUMENT ## Renvoie l’argument thêta, un angle exprimé en radians. +IMCONJUGATE = COMPLEXE.CONJUGUE ## Renvoie le nombre complexe conjugué d’un nombre complexe. +IMCOS = IMCOS ## Renvoie le cosinus d’un nombre complexe. +IMDIV = COMPLEXE.DIV ## Renvoie le quotient de deux nombres complexes. +IMEXP = COMPLEXE.EXP ## Renvoie la fonction exponentielle d’un nombre complexe. +IMLN = COMPLEXE.LN ## Renvoie le logarithme népérien d’un nombre complexe. +IMLOG10 = COMPLEXE.LOG10 ## Calcule le logarithme en base 10 d’un nombre complexe. +IMLOG2 = COMPLEXE.LOG2 ## Calcule le logarithme en base 2 d’un nombre complexe. +IMPOWER = COMPLEXE.PUISSANCE ## Renvoie un nombre complexe élevé à une puissance entière. +IMPRODUCT = COMPLEXE.PRODUIT ## Renvoie le produit de plusieurs nombres complexes. +IMREAL = COMPLEXE.REEL ## Renvoie le coefficient réel d’un nombre complexe. +IMSIN = COMPLEXE.SIN ## Renvoie le sinus d’un nombre complexe. +IMSQRT = COMPLEXE.RACINE ## Renvoie la racine carrée d’un nombre complexe. +IMSUB = COMPLEXE.DIFFERENCE ## Renvoie la différence entre deux nombres complexes. +IMSUM = COMPLEXE.SOMME ## Renvoie la somme de plusieurs nombres complexes. +OCT2BIN = OCTBIN ## Convertit un nombre octal en nombre binaire. +OCT2DEC = OCTDEC ## Convertit un nombre octal en nombre décimal. +OCT2HEX = OCTHEX ## Convertit un nombre octal en nombre hexadécimal. + + +## +## Financial functions Fonctions financières +## +ACCRINT = INTERET.ACC ## Renvoie l’intérêt couru non échu d’un titre dont l’intérêt est perçu périodiquement. +ACCRINTM = INTERET.ACC.MAT ## Renvoie l’intérêt couru non échu d’un titre dont l’intérêt est perçu à l’échéance. +AMORDEGRC = AMORDEGRC ## Renvoie l’amortissement correspondant à chaque période comptable en utilisant un coefficient d’amortissement. +AMORLINC = AMORLINC ## Renvoie l’amortissement d’un bien à la fin d’une période fiscale donnée. +COUPDAYBS = NB.JOURS.COUPON.PREC ## Renvoie le nombre de jours entre le début de la période de coupon et la date de liquidation. +COUPDAYS = NB.JOURS.COUPONS ## Renvoie le nombre de jours pour la période du coupon contenant la date de liquidation. +COUPDAYSNC = NB.JOURS.COUPON.SUIV ## Renvoie le nombre de jours entre la date de liquidation et la date du coupon suivant la date de liquidation. +COUPNCD = DATE.COUPON.SUIV ## Renvoie la première date de coupon ultérieure à la date de règlement. +COUPNUM = NB.COUPONS ## Renvoie le nombre de coupons dus entre la date de règlement et la date d’échéance. +COUPPCD = DATE.COUPON.PREC ## Renvoie la date de coupon précédant la date de règlement. +CUMIPMT = CUMUL.INTER ## Renvoie l’intérêt cumulé payé sur un emprunt entre deux périodes. +CUMPRINC = CUMUL.PRINCPER ## Renvoie le montant cumulé des remboursements du capital d’un emprunt effectués entre deux périodes. +DB = DB ## Renvoie l’amortissement d’un bien pour une période spécifiée en utilisant la méthode de l’amortissement dégressif à taux fixe. +DDB = DDB ## Renvoie l’amortissement d’un bien pour toute période spécifiée, en utilisant la méthode de l’amortissement dégressif à taux double ou selon un coefficient à spécifier. +DISC = TAUX.ESCOMPTE ## Calcule le taux d’escompte d’une transaction. +DOLLARDE = PRIX.DEC ## Convertit un prix en euros, exprimé sous forme de fraction, en un prix en euros exprimé sous forme de nombre décimal. +DOLLARFR = PRIX.FRAC ## Convertit un prix en euros, exprimé sous forme de nombre décimal, en un prix en euros exprimé sous forme de fraction. +DURATION = DUREE ## Renvoie la durée, en années, d’un titre dont l’intérêt est perçu périodiquement. +EFFECT = TAUX.EFFECTIF ## Renvoie le taux d’intérêt annuel effectif. +FV = VC ## Renvoie la valeur future d’un investissement. +FVSCHEDULE = VC.PAIEMENTS ## Calcule la valeur future d’un investissement en appliquant une série de taux d’intérêt composites. +INTRATE = TAUX.INTERET ## Affiche le taux d’intérêt d’un titre totalement investi. +IPMT = INTPER ## Calcule le montant des intérêts d’un investissement pour une période donnée. +IRR = TRI ## Calcule le taux de rentabilité interne d’un investissement pour une succession de trésoreries. +ISPMT = ISPMT ## Calcule le montant des intérêts d’un investissement pour une période donnée. +MDURATION = DUREE.MODIFIEE ## Renvoie la durée de Macauley modifiée pour un titre ayant une valeur nominale hypothétique de 100_euros. +MIRR = TRIM ## Calcule le taux de rentabilité interne lorsque les paiements positifs et négatifs sont financés à des taux différents. +NOMINAL = TAUX.NOMINAL ## Calcule le taux d’intérêt nominal annuel. +NPER = NPM ## Renvoie le nombre de versements nécessaires pour rembourser un emprunt. +NPV = VAN ## Calcule la valeur actuelle nette d’un investissement basé sur une série de décaissements et un taux d’escompte. +ODDFPRICE = PRIX.PCOUPON.IRREG ## Renvoie le prix par tranche de valeur nominale de 100 euros d’un titre dont la première période de coupon est irrégulière. +ODDFYIELD = REND.PCOUPON.IRREG ## Renvoie le taux de rendement d’un titre dont la première période de coupon est irrégulière. +ODDLPRICE = PRIX.DCOUPON.IRREG ## Renvoie le prix par tranche de valeur nominale de 100 euros d’un titre dont la première période de coupon est irrégulière. +ODDLYIELD = REND.DCOUPON.IRREG ## Renvoie le taux de rendement d’un titre dont la dernière période de coupon est irrégulière. +PMT = VPM ## Calcule le paiement périodique d’un investissement donné. +PPMT = PRINCPER ## Calcule, pour une période donnée, la part de remboursement du principal d’un investissement. +PRICE = PRIX.TITRE ## Renvoie le prix d’un titre rapportant des intérêts périodiques, pour une valeur nominale de 100 euros. +PRICEDISC = VALEUR.ENCAISSEMENT ## Renvoie la valeur d’encaissement d’un escompte commercial, pour une valeur nominale de 100 euros. +PRICEMAT = PRIX.TITRE.ECHEANCE ## Renvoie le prix d’un titre dont la valeur nominale est 100 euros et qui rapporte des intérêts à l’échéance. +PV = PV ## Calcule la valeur actuelle d’un investissement. +RATE = TAUX ## Calcule le taux d’intérêt par période pour une annuité. +RECEIVED = VALEUR.NOMINALE ## Renvoie la valeur nominale à échéance d’un effet de commerce. +SLN = AMORLIN ## Calcule l’amortissement linéaire d’un bien pour une période donnée. +SYD = SYD ## Calcule l’amortissement d’un bien pour une période donnée sur la base de la méthode américaine Sum-of-Years Digits (amortissement dégressif à taux décroissant appliqué à une valeur constante). +TBILLEQ = TAUX.ESCOMPTE.R ## Renvoie le taux d’escompte rationnel d’un bon du Trésor. +TBILLPRICE = PRIX.BON.TRESOR ## Renvoie le prix d’un bon du Trésor d’une valeur nominale de 100 euros. +TBILLYIELD = RENDEMENT.BON.TRESOR ## Calcule le taux de rendement d’un bon du Trésor. +VDB = VDB ## Renvoie l’amortissement d’un bien pour une période spécifiée ou partielle en utilisant une méthode de l’amortissement dégressif à taux fixe. +XIRR = TRI.PAIEMENTS ## Calcule le taux de rentabilité interne d’un ensemble de paiements non périodiques. +XNPV = VAN.PAIEMENTS ## Renvoie la valeur actuelle nette d’un ensemble de paiements non périodiques. +YIELD = RENDEMENT.TITRE ## Calcule le rendement d’un titre rapportant des intérêts périodiquement. +YIELDDISC = RENDEMENT.SIMPLE ## Calcule le taux de rendement d’un emprunt à intérêt simple (par exemple, un bon du Trésor). +YIELDMAT = RENDEMENT.TITRE.ECHEANCE ## Renvoie le rendement annuel d’un titre qui rapporte des intérêts à l’échéance. + + +## +## Information functions Fonctions d’information +## +CELL = CELLULE ## Renvoie des informations sur la mise en forme, l’emplacement et le contenu d’une cellule. +ERROR.TYPE = TYPE.ERREUR ## Renvoie un nombre correspondant à un type d’erreur. +INFO = INFORMATIONS ## Renvoie des informations sur l’environnement d’exploitation actuel. +ISBLANK = ESTVIDE ## Renvoie VRAI si l’argument valeur est vide. +ISERR = ESTERR ## Renvoie VRAI si l’argument valeur fait référence à une valeur d’erreur, sauf #N/A. +ISERROR = ESTERREUR ## Renvoie VRAI si l’argument valeur fait référence à une valeur d’erreur. +ISEVEN = EST.PAIR ## Renvoie VRAI si le chiffre est pair. +ISLOGICAL = ESTLOGIQUE ## Renvoie VRAI si l’argument valeur fait référence à une valeur logique. +ISNA = ESTNA ## Renvoie VRAI si l’argument valeur fait référence à la valeur d’erreur #N/A. +ISNONTEXT = ESTNONTEXTE ## Renvoie VRAI si l’argument valeur ne se présente pas sous forme de texte. +ISNUMBER = ESTNUM ## Renvoie VRAI si l’argument valeur représente un nombre. +ISODD = EST.IMPAIR ## Renvoie VRAI si le chiffre est impair. +ISREF = ESTREF ## Renvoie VRAI si l’argument valeur est une référence. +ISTEXT = ESTTEXTE ## Renvoie VRAI si l’argument valeur se présente sous forme de texte. +N = N ## Renvoie une valeur convertie en nombre. +NA = NA ## Renvoie la valeur d’erreur #N/A. +TYPE = TYPE ## Renvoie un nombre indiquant le type de données d’une valeur. + + +## +## Logical functions Fonctions logiques +## +AND = ET ## Renvoie VRAI si tous ses arguments sont VRAI. +FALSE = FAUX ## Renvoie la valeur logique FAUX. +IF = SI ## Spécifie un test logique à effectuer. +IFERROR = SIERREUR ## Renvoie une valeur que vous spécifiez si une formule génère une erreur ; sinon, elle renvoie le résultat de la formule. +NOT = NON ## Inverse la logique de cet argument. +OR = OU ## Renvoie VRAI si un des arguments est VRAI. +TRUE = VRAI ## Renvoie la valeur logique VRAI. + + +## +## Lookup and reference functions Fonctions de recherche et de référence +## +ADDRESS = ADRESSE ## Renvoie une référence sous forme de texte à une seule cellule d’une feuille de calcul. +AREAS = ZONES ## Renvoie le nombre de zones dans une référence. +CHOOSE = CHOISIR ## Choisit une valeur dans une liste. +COLUMN = COLONNE ## Renvoie le numéro de colonne d’une référence. +COLUMNS = COLONNES ## Renvoie le nombre de colonnes dans une référence. +HLOOKUP = RECHERCHEH ## Effectue une recherche dans la première ligne d’une matrice et renvoie la valeur de la cellule indiquée. +HYPERLINK = LIEN_HYPERTEXTE ## Crée un raccourci ou un renvoi qui ouvre un document stocké sur un serveur réseau, sur un réseau Intranet ou sur Internet. +INDEX = INDEX ## Utilise un index pour choisir une valeur provenant d’une référence ou d’une matrice. +INDIRECT = INDIRECT ## Renvoie une référence indiquée par une valeur de texte. +LOOKUP = RECHERCHE ## Recherche des valeurs dans un vecteur ou une matrice. +MATCH = EQUIV ## Recherche des valeurs dans une référence ou une matrice. +OFFSET = DECALER ## Renvoie une référence décalée par rapport à une référence donnée. +ROW = LIGNE ## Renvoie le numéro de ligne d’une référence. +ROWS = LIGNES ## Renvoie le nombre de lignes dans une référence. +RTD = RTD ## Extrait les données en temps réel à partir d’un programme prenant en charge l’automation COM (Automation : utilisation des objets d'une application à partir d'une autre application ou d'un autre outil de développement. Autrefois appelée OLE Automation, Automation est une norme industrielle et une fonctionnalité du modèle d'objet COM (Component Object Model).). +TRANSPOSE = TRANSPOSE ## Renvoie la transposition d’une matrice. +VLOOKUP = RECHERCHEV ## Effectue une recherche dans la première colonne d’une matrice et se déplace sur la ligne pour renvoyer la valeur d’une cellule. + + +## +## Math and trigonometry functions Fonctions mathématiques et trigonométriques +## +ABS = ABS ## Renvoie la valeur absolue d’un nombre. +ACOS = ACOS ## Renvoie l’arccosinus d’un nombre. +ACOSH = ACOSH ## Renvoie le cosinus hyperbolique inverse d’un nombre. +ASIN = ASIN ## Renvoie l’arcsinus d’un nombre. +ASINH = ASINH ## Renvoie le sinus hyperbolique inverse d’un nombre. +ATAN = ATAN ## Renvoie l’arctangente d’un nombre. +ATAN2 = ATAN2 ## Renvoie l’arctangente des coordonnées x et y. +ATANH = ATANH ## Renvoie la tangente hyperbolique inverse d’un nombre. +CEILING = PLAFOND ## Arrondit un nombre au nombre entier le plus proche ou au multiple le plus proche de l’argument précision en s’éloignant de zéro. +COMBIN = COMBIN ## Renvoie le nombre de combinaisons que l’on peut former avec un nombre donné d’objets. +COS = COS ## Renvoie le cosinus d’un nombre. +COSH = COSH ## Renvoie le cosinus hyperbolique d’un nombre. +DEGREES = DEGRES ## Convertit des radians en degrés. +EVEN = PAIR ## Arrondit un nombre au nombre entier pair le plus proche en s’éloignant de zéro. +EXP = EXP ## Renvoie e élevé à la puissance d’un nombre donné. +FACT = FACT ## Renvoie la factorielle d’un nombre. +FACTDOUBLE = FACTDOUBLE ## Renvoie la factorielle double d’un nombre. +FLOOR = PLANCHER ## Arrondit un nombre en tendant vers 0 (zéro). +GCD = PGCD ## Renvoie le plus grand commun diviseur. +INT = ENT ## Arrondit un nombre à l’entier immédiatement inférieur. +LCM = PPCM ## Renvoie le plus petit commun multiple. +LN = LN ## Renvoie le logarithme népérien d’un nombre. +LOG = LOG ## Renvoie le logarithme d’un nombre dans la base spécifiée. +LOG10 = LOG10 ## Calcule le logarithme en base 10 d’un nombre. +MDETERM = DETERMAT ## Renvoie le déterminant d’une matrice. +MINVERSE = INVERSEMAT ## Renvoie la matrice inverse d’une matrice. +MMULT = PRODUITMAT ## Renvoie le produit de deux matrices. +MOD = MOD ## Renvoie le reste d’une division. +MROUND = ARRONDI.AU.MULTIPLE ## Donne l’arrondi d’un nombre au multiple spécifié. +MULTINOMIAL = MULTINOMIALE ## Calcule la multinomiale d’un ensemble de nombres. +ODD = IMPAIR ## Renvoie le nombre, arrondi à la valeur du nombre entier impair le plus proche en s’éloignant de zéro. +PI = PI ## Renvoie la valeur de pi. +POWER = PUISSANCE ## Renvoie la valeur du nombre élevé à une puissance. +PRODUCT = PRODUIT ## Multiplie ses arguments. +QUOTIENT = QUOTIENT ## Renvoie la partie entière du résultat d’une division. +RADIANS = RADIANS ## Convertit des degrés en radians. +RAND = ALEA ## Renvoie un nombre aléatoire compris entre 0 et 1. +RANDBETWEEN = ALEA.ENTRE.BORNES ## Renvoie un nombre aléatoire entre les nombres que vous spécifiez. +ROMAN = ROMAIN ## Convertit des chiffres arabes en chiffres romains, sous forme de texte. +ROUND = ARRONDI ## Arrondit un nombre au nombre de chiffres indiqué. +ROUNDDOWN = ARRONDI.INF ## Arrondit un nombre en tendant vers 0 (zéro). +ROUNDUP = ARRONDI.SUP ## Arrondit un nombre à l’entier supérieur, en s’éloignant de zéro. +SERIESSUM = SOMME.SERIES ## Renvoie la somme d’une série géométrique en s’appuyant sur la formule suivante : +SIGN = SIGNE ## Renvoie le signe d’un nombre. +SIN = SIN ## Renvoie le sinus d’un angle donné. +SINH = SINH ## Renvoie le sinus hyperbolique d’un nombre. +SQRT = RACINE ## Renvoie la racine carrée d’un nombre. +SQRTPI = RACINE.PI ## Renvoie la racine carrée de (nombre * pi). +SUBTOTAL = SOUS.TOTAL ## Renvoie un sous-total dans une liste ou une base de données. +SUM = SOMME ## Calcule la somme de ses arguments. +SUMIF = SOMME.SI ## Additionne les cellules spécifiées si elles répondent à un critère donné. +SUMIFS = SOMME.SI.ENS ## Ajoute les cellules d’une plage qui répondent à plusieurs critères. +SUMPRODUCT = SOMMEPROD ## Multiplie les valeurs correspondantes des matrices spécifiées et calcule la somme de ces produits. +SUMSQ = SOMME.CARRES ## Renvoie la somme des carrés des arguments. +SUMX2MY2 = SOMME.X2MY2 ## Renvoie la somme de la différence des carrés des valeurs correspondantes de deux matrices. +SUMX2PY2 = SOMME.X2PY2 ## Renvoie la somme de la somme des carrés des valeurs correspondantes de deux matrices. +SUMXMY2 = SOMME.XMY2 ## Renvoie la somme des carrés des différences entre les valeurs correspondantes de deux matrices. +TAN = TAN ## Renvoie la tangente d’un nombre. +TANH = TANH ## Renvoie la tangente hyperbolique d’un nombre. +TRUNC = TRONQUE ## Renvoie la partie entière d’un nombre. + + +## +## Statistical functions Fonctions statistiques +## +AVEDEV = ECART.MOYEN ## Renvoie la moyenne des écarts absolus observés dans la moyenne des points de données. +AVERAGE = MOYENNE ## Renvoie la moyenne de ses arguments. +AVERAGEA = AVERAGEA ## Renvoie la moyenne de ses arguments, nombres, texte et valeurs logiques inclus. +AVERAGEIF = MOYENNE.SI ## Renvoie la moyenne (arithmétique) de toutes les cellules d’une plage qui répondent à des critères donnés. +AVERAGEIFS = MOYENNE.SI.ENS ## Renvoie la moyenne (arithmétique) de toutes les cellules qui répondent à plusieurs critères. +BETADIST = LOI.BETA ## Renvoie la fonction de distribution cumulée. +BETAINV = BETA.INVERSE ## Renvoie l’inverse de la fonction de distribution cumulée pour une distribution bêta spécifiée. +BINOMDIST = LOI.BINOMIALE ## Renvoie la probabilité d’une variable aléatoire discrète suivant la loi binomiale. +CHIDIST = LOI.KHIDEUX ## Renvoie la probabilité unilatérale de la distribution khi-deux. +CHIINV = KHIDEUX.INVERSE ## Renvoie l’inverse de la probabilité unilatérale de la distribution khi-deux. +CHITEST = TEST.KHIDEUX ## Renvoie le test d’indépendance. +CONFIDENCE = INTERVALLE.CONFIANCE ## Renvoie l’intervalle de confiance pour une moyenne de population. +CORREL = COEFFICIENT.CORRELATION ## Renvoie le coefficient de corrélation entre deux séries de données. +COUNT = NB ## Détermine les nombres compris dans la liste des arguments. +COUNTA = NBVAL ## Détermine le nombre de valeurs comprises dans la liste des arguments. +COUNTBLANK = NB.VIDE ## Compte le nombre de cellules vides dans une plage. +COUNTIF = NB.SI ## Compte le nombre de cellules qui répondent à un critère donné dans une plage. +COUNTIFS = NB.SI.ENS ## Compte le nombre de cellules à l’intérieur d’une plage qui répondent à plusieurs critères. +COVAR = COVARIANCE ## Renvoie la covariance, moyenne des produits des écarts pour chaque série d’observations. +CRITBINOM = CRITERE.LOI.BINOMIALE ## Renvoie la plus petite valeur pour laquelle la distribution binomiale cumulée est inférieure ou égale à une valeur de critère. +DEVSQ = SOMME.CARRES.ECARTS ## Renvoie la somme des carrés des écarts. +EXPONDIST = LOI.EXPONENTIELLE ## Renvoie la distribution exponentielle. +FDIST = LOI.F ## Renvoie la distribution de probabilité F. +FINV = INVERSE.LOI.F ## Renvoie l’inverse de la distribution de probabilité F. +FISHER = FISHER ## Renvoie la transformation de Fisher. +FISHERINV = FISHER.INVERSE ## Renvoie l’inverse de la transformation de Fisher. +FORECAST = PREVISION ## Calcule une valeur par rapport à une tendance linéaire. +FREQUENCY = FREQUENCE ## Calcule la fréquence d’apparition des valeurs dans une plage de valeurs, puis renvoie des nombres sous forme de matrice verticale. +FTEST = TEST.F ## Renvoie le résultat d’un test F. +GAMMADIST = LOI.GAMMA ## Renvoie la probabilité d’une variable aléatoire suivant une loi Gamma. +GAMMAINV = LOI.GAMMA.INVERSE ## Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi Gamma. +GAMMALN = LNGAMMA ## Renvoie le logarithme népérien de la fonction Gamma, G(x) +GEOMEAN = MOYENNE.GEOMETRIQUE ## Renvoie la moyenne géométrique. +GROWTH = CROISSANCE ## Calcule des valeurs par rapport à une tendance exponentielle. +HARMEAN = MOYENNE.HARMONIQUE ## Renvoie la moyenne harmonique. +HYPGEOMDIST = LOI.HYPERGEOMETRIQUE ## Renvoie la probabilité d’une variable aléatoire discrète suivant une loi hypergéométrique. +INTERCEPT = ORDONNEE.ORIGINE ## Renvoie l’ordonnée à l’origine d’une droite de régression linéaire. +KURT = KURTOSIS ## Renvoie le kurtosis d’une série de données. +LARGE = GRANDE.VALEUR ## Renvoie la k-ième plus grande valeur d’une série de données. +LINEST = DROITEREG ## Renvoie les paramètres d’une tendance linéaire. +LOGEST = LOGREG ## Renvoie les paramètres d’une tendance exponentielle. +LOGINV = LOI.LOGNORMALE.INVERSE ## Renvoie l’inverse de la probabilité pour une variable aléatoire suivant la loi lognormale. +LOGNORMDIST = LOI.LOGNORMALE ## Renvoie la probabilité d’une variable aléatoire continue suivant une loi lognormale. +MAX = MAX ## Renvoie la valeur maximale contenue dans une liste d’arguments. +MAXA = MAXA ## Renvoie la valeur maximale d’une liste d’arguments, nombres, texte et valeurs logiques inclus. +MEDIAN = MEDIANE ## Renvoie la valeur médiane des nombres donnés. +MIN = MIN ## Renvoie la valeur minimale contenue dans une liste d’arguments. +MINA = MINA ## Renvoie la plus petite valeur d’une liste d’arguments, nombres, texte et valeurs logiques inclus. +MODE = MODE ## Renvoie la valeur la plus courante d’une série de données. +NEGBINOMDIST = LOI.BINOMIALE.NEG ## Renvoie la probabilité d’une variable aléatoire discrète suivant une loi binomiale négative. +NORMDIST = LOI.NORMALE ## Renvoie la probabilité d’une variable aléatoire continue suivant une loi normale. +NORMINV = LOI.NORMALE.INVERSE ## Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi normale standard. +NORMSDIST = LOI.NORMALE.STANDARD ## Renvoie la probabilité d’une variable aléatoire continue suivant une loi normale standard. +NORMSINV = LOI.NORMALE.STANDARD.INVERSE ## Renvoie l’inverse de la distribution cumulée normale standard. +PEARSON = PEARSON ## Renvoie le coefficient de corrélation d’échantillonnage de Pearson. +PERCENTILE = CENTILE ## Renvoie le k-ième centile des valeurs d’une plage. +PERCENTRANK = RANG.POURCENTAGE ## Renvoie le rang en pourcentage d’une valeur d’une série de données. +PERMUT = PERMUTATION ## Renvoie le nombre de permutations pour un nombre donné d’objets. +POISSON = LOI.POISSON ## Renvoie la probabilité d’une variable aléatoire suivant une loi de Poisson. +PROB = PROBABILITE ## Renvoie la probabilité que des valeurs d’une plage soient comprises entre deux limites. +QUARTILE = QUARTILE ## Renvoie le quartile d’une série de données. +RANK = RANG ## Renvoie le rang d’un nombre contenu dans une liste. +RSQ = COEFFICIENT.DETERMINATION ## Renvoie la valeur du coefficient de détermination R^2 d’une régression linéaire. +SKEW = COEFFICIENT.ASYMETRIE ## Renvoie l’asymétrie d’une distribution. +SLOPE = PENTE ## Renvoie la pente d’une droite de régression linéaire. +SMALL = PETITE.VALEUR ## Renvoie la k-ième plus petite valeur d’une série de données. +STANDARDIZE = CENTREE.REDUITE ## Renvoie une valeur centrée réduite. +STDEV = ECARTYPE ## Évalue l’écart type d’une population en se basant sur un échantillon de cette population. +STDEVA = STDEVA ## Évalue l’écart type d’une population en se basant sur un échantillon de cette population, nombres, texte et valeurs logiques inclus. +STDEVP = ECARTYPEP ## Calcule l’écart type d’une population à partir de la population entière. +STDEVPA = STDEVPA ## Calcule l’écart type d’une population à partir de l’ensemble de la population, nombres, texte et valeurs logiques inclus. +STEYX = ERREUR.TYPE.XY ## Renvoie l’erreur type de la valeur y prévue pour chaque x de la régression. +TDIST = LOI.STUDENT ## Renvoie la probabilité d’une variable aléatoire suivant une loi T de Student. +TINV = LOI.STUDENT.INVERSE ## Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi T de Student. +TREND = TENDANCE ## Renvoie des valeurs par rapport à une tendance linéaire. +TRIMMEAN = MOYENNE.REDUITE ## Renvoie la moyenne de l’intérieur d’une série de données. +TTEST = TEST.STUDENT ## Renvoie la probabilité associée à un test T de Student. +VAR = VAR ## Calcule la variance sur la base d’un échantillon. +VARA = VARA ## Estime la variance d’une population en se basant sur un échantillon de cette population, nombres, texte et valeurs logiques incluses. +VARP = VAR.P ## Calcule la variance sur la base de l’ensemble de la population. +VARPA = VARPA ## Calcule la variance d’une population en se basant sur la population entière, nombres, texte et valeurs logiques inclus. +WEIBULL = LOI.WEIBULL ## Renvoie la probabilité d’une variable aléatoire suivant une loi de Weibull. +ZTEST = TEST.Z ## Renvoie la valeur de probabilité unilatérale d’un test z. + + +## +## Text functions Fonctions de texte +## +ASC = ASC ## Change les caractères anglais ou katakana à pleine chasse (codés sur deux octets) à l’intérieur d’une chaîne de caractères en caractères à demi-chasse (codés sur un octet). +BAHTTEXT = BAHTTEXT ## Convertit un nombre en texte en utilisant le format monétaire ß (baht). +CHAR = CAR ## Renvoie le caractère spécifié par le code numérique. +CLEAN = EPURAGE ## Supprime tous les caractères de contrôle du texte. +CODE = CODE ## Renvoie le numéro de code du premier caractère du texte. +CONCATENATE = CONCATENER ## Assemble plusieurs éléments textuels de façon à n’en former qu’un seul. +DOLLAR = EURO ## Convertit un nombre en texte en utilisant le format monétaire € (euro). +EXACT = EXACT ## Vérifie si deux valeurs de texte sont identiques. +FIND = TROUVE ## Trouve un valeur textuelle dans une autre, en respectant la casse. +FINDB = TROUVERB ## Trouve un valeur textuelle dans une autre, en respectant la casse. +FIXED = CTXT ## Convertit un nombre au format texte avec un nombre de décimales spécifié. +JIS = JIS ## Change les caractères anglais ou katakana à demi-chasse (codés sur un octet) à l’intérieur d’une chaîne de caractères en caractères à à pleine chasse (codés sur deux octets). +LEFT = GAUCHE ## Renvoie des caractères situés à l’extrême gauche d’une chaîne de caractères. +LEFTB = GAUCHEB ## Renvoie des caractères situés à l’extrême gauche d’une chaîne de caractères. +LEN = NBCAR ## Renvoie le nombre de caractères contenus dans une chaîne de texte. +LENB = LENB ## Renvoie le nombre de caractères contenus dans une chaîne de texte. +LOWER = MINUSCULE ## Convertit le texte en minuscules. +MID = STXT ## Renvoie un nombre déterminé de caractères d’une chaîne de texte à partir de la position que vous indiquez. +MIDB = STXTB ## Renvoie un nombre déterminé de caractères d’une chaîne de texte à partir de la position que vous indiquez. +PHONETIC = PHONETIQUE ## Extrait les caractères phonétiques (furigana) d’une chaîne de texte. +PROPER = NOMPROPRE ## Met en majuscules la première lettre de chaque mot dans une chaîne textuelle. +REPLACE = REMPLACER ## Remplace des caractères dans un texte. +REPLACEB = REMPLACERB ## Remplace des caractères dans un texte. +REPT = REPT ## Répète un texte un certain nombre de fois. +RIGHT = DROITE ## Renvoie des caractères situés à l’extrême droite d’une chaîne de caractères. +RIGHTB = DROITEB ## Renvoie des caractères situés à l’extrême droite d’une chaîne de caractères. +SEARCH = CHERCHE ## Trouve un texte dans un autre texte (sans respecter la casse). +SEARCHB = CHERCHERB ## Trouve un texte dans un autre texte (sans respecter la casse). +SUBSTITUTE = SUBSTITUE ## Remplace l’ancien texte d’une chaîne de caractères par un nouveau. +T = T ## Convertit ses arguments en texte. +TEXT = TEXTE ## Convertit un nombre au format texte. +TRIM = SUPPRESPACE ## Supprime les espaces du texte. +UPPER = MAJUSCULE ## Convertit le texte en majuscules. +VALUE = CNUM ## Convertit un argument textuel en nombre diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/hu/config b/plugins/excel_reader/Classes/PHPExcel/locale/hu/config new file mode 100755 index 0000000..725b569 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/hu/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = Ft + + +## +## Excel Error Codes (For future use) +## +NULL = #NULLA! +DIV0 = #ZÉRÓOSZTÓ! +VALUE = #ÉRTÉK! +REF = #HIV! +NAME = #NÉV? +NUM = #SZÁM! +NA = #HIÁNYZIK diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/hu/functions b/plugins/excel_reader/Classes/PHPExcel/locale/hu/functions new file mode 100755 index 0000000..a3855c0 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/hu/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Bővítmények és automatizálási függvények +## +GETPIVOTDATA = KIMUTATÁSADATOT.VESZ ## A kimutatásokban tárolt adatok visszaadására használható. + + +## +## Cube functions Kockafüggvények +## +CUBEKPIMEMBER = KOCKA.FŐTELJMUT ## Egy fő teljesítménymutató (KPI) nevét, tulajdonságát és mértékegységét adja eredményül, a nevet és a tulajdonságot megjeleníti a cellában. A KPI-k számszerűsíthető mérési lehetőséget jelentenek – ilyen mutató például a havi bruttó nyereség vagy az egy alkalmazottra jutó negyedéves forgalom –, egy szervezet teljesítményének nyomonkövetésére használhatók. +CUBEMEMBER = KOCKA.TAG ## Kockahierachia tagját vagy rekordját adja eredményül. Ellenőrizhető vele, hogy szerepel-e a kockában az adott tag vagy rekord. +CUBEMEMBERPROPERTY = KOCKA.TAG.TUL ## A kocka egyik tagtulajdonságának értékét adja eredményül. Használatával ellenőrizhető, hogy szerepel-e egy tagnév a kockában, eredménye pedig az erre a tagra vonatkozó, megadott tulajdonság. +CUBERANKEDMEMBER = KOCKA.HALM.ELEM ## Egy halmaz rangsor szerinti n-edik tagját adja eredményül. Használatával egy halmaz egy vagy több elemét kaphatja meg, például a legnagyobb teljesítményű üzletkötőt vagy a 10 legjobb tanulót. +CUBESET = KOCKA.HALM ## Számított tagok vagy rekordok halmazát adja eredményül, ehhez egy beállított kifejezést elküld a kiszolgálón található kockának, majd ezt a halmazt adja vissza a Microsoft Office Excel alkalmazásnak. +CUBESETCOUNT = KOCKA.HALM.DB ## Egy halmaz elemszámát adja eredményül. +CUBEVALUE = KOCKA.ÉRTÉK ## Kockából összesített értéket ad eredményül. + + +## +## Database functions Adatbázis-kezelő függvények +## +DAVERAGE = AB.ÁTLAG ## A kijelölt adatbáziselemek átlagát számítja ki. +DCOUNT = AB.DARAB ## Megszámolja, hogy az adatbázisban hány cella tartalmaz számokat. +DCOUNTA = AB.DARAB2 ## Megszámolja az adatbázisban lévő nem üres cellákat. +DGET = AB.MEZŐ ## Egy adatbázisból egyetlen olyan rekordot ad vissza, amely megfelel a megadott feltételeknek. +DMAX = AB.MAX ## A kiválasztott adatbáziselemek közül a legnagyobb értéket adja eredményül. +DMIN = AB.MIN ## A kijelölt adatbáziselemek közül a legkisebb értéket adja eredményül. +DPRODUCT = AB.SZORZAT ## Az adatbázis megadott feltételeknek eleget tevő rekordjaira összeszorozza a megadott mezőben található számértékeket, és eredményül ezt a szorzatot adja. +DSTDEV = AB.SZÓRÁS ## A kijelölt adatbáziselemek egy mintája alapján megbecsüli a szórást. +DSTDEVP = AB.SZÓRÁS2 ## A kijelölt adatbáziselemek teljes sokasága alapján kiszámítja a szórást. +DSUM = AB.SZUM ## Összeadja a feltételnek megfelelő adatbázisrekordok mezőoszlopában a számokat. +DVAR = AB.VAR ## A kijelölt adatbáziselemek mintája alapján becslést ad a szórásnégyzetre. +DVARP = AB.VAR2 ## A kijelölt adatbáziselemek teljes sokasága alapján kiszámítja a szórásnégyzetet. + + +## +## Date and time functions Dátumfüggvények +## +DATE = DÁTUM ## Adott dátum dátumértékét adja eredményül. +DATEVALUE = DÁTUMÉRTÉK ## Szövegként megadott dátumot dátumértékké alakít át. +DAY = NAP ## Dátumértéket a hónap egy napjává (0-31) alakít. +DAYS360 = NAP360 ## Két dátum közé eső napok számát számítja ki a 360 napos év alapján. +EDATE = EDATE ## Adott dátumnál adott számú hónappal korábbi vagy későbbi dátum dátumértékét adja eredményül. +EOMONTH = EOMONTH ## Adott dátumnál adott számú hónappal korábbi vagy későbbi hónap utolsó napjának dátumértékét adja eredményül. +HOUR = ÓRA ## Időértéket órákká alakít. +MINUTE = PERC ## Időértéket percekké alakít. +MONTH = HÓNAP ## Időértéket hónapokká alakít. +NETWORKDAYS = NETWORKDAYS ## Két dátum között a teljes munkanapok számát adja meg. +NOW = MOST ## A napi dátum dátumértékét és a pontos idő időértékét adja eredményül. +SECOND = MPERC ## Időértéket másodpercekké alakít át. +TIME = IDŐ ## Adott időpont időértékét adja meg. +TIMEVALUE = IDŐÉRTÉK ## Szövegként megadott időpontot időértékké alakít át. +TODAY = MA ## A napi dátum dátumértékét adja eredményül. +WEEKDAY = HÉT.NAPJA ## Dátumértéket a hét napjává alakítja át. +WEEKNUM = WEEKNUM ## Visszatérési értéke egy szám, amely azt mutatja meg, hogy a megadott dátum az év hányadik hetére esik. +WORKDAY = WORKDAY ## Adott dátumnál adott munkanappal korábbi vagy későbbi dátum dátumértékét adja eredményül. +YEAR = ÉV ## Sorszámot évvé alakít át. +YEARFRAC = YEARFRAC ## Az adott dátumok közötti teljes napok számát törtévként adja meg. + + +## +## Engineering functions Mérnöki függvények +## +BESSELI = BESSELI ## Az In(x) módosított Bessel-függvény értékét adja eredményül. +BESSELJ = BESSELJ ## A Jn(x) Bessel-függvény értékét adja eredményül. +BESSELK = BESSELK ## A Kn(x) módosított Bessel-függvény értékét adja eredményül. +BESSELY = BESSELY ## Az Yn(x) módosított Bessel-függvény értékét adja eredményül. +BIN2DEC = BIN2DEC ## Bináris számot decimálissá alakít át. +BIN2HEX = BIN2HEX ## Bináris számot hexadecimálissá alakít át. +BIN2OCT = BIN2OCT ## Bináris számot oktálissá alakít át. +COMPLEX = COMPLEX ## Valós és képzetes részből komplex számot képez. +CONVERT = CONVERT ## Mértékegységeket vált át. +DEC2BIN = DEC2BIN ## Decimális számot binárissá alakít át. +DEC2HEX = DEC2HEX ## Decimális számot hexadecimálissá alakít át. +DEC2OCT = DEC2OCT ## Decimális számot oktálissá alakít át. +DELTA = DELTA ## Azt vizsgálja, hogy két érték egyenlő-e. +ERF = ERF ## A hibafüggvény értékét adja eredményül. +ERFC = ERFC ## A kiegészített hibafüggvény értékét adja eredményül. +GESTEP = GESTEP ## Azt vizsgálja, hogy egy szám nagyobb-e adott küszöbértéknél. +HEX2BIN = HEX2BIN ## Hexadecimális számot binárissá alakít át. +HEX2DEC = HEX2DEC ## Hexadecimális számot decimálissá alakít át. +HEX2OCT = HEX2OCT ## Hexadecimális számot oktálissá alakít át. +IMABS = IMABS ## Komplex szám abszolút értékét (modulusát) adja eredményül. +IMAGINARY = IMAGINARY ## Komplex szám képzetes részét adja eredményül. +IMARGUMENT = IMARGUMENT ## A komplex szám radiánban kifejezett théta argumentumát adja eredményül. +IMCONJUGATE = IMCONJUGATE ## Komplex szám komplex konjugáltját adja eredményül. +IMCOS = IMCOS ## Komplex szám koszinuszát adja eredményül. +IMDIV = IMDIV ## Két komplex szám hányadosát adja eredményül. +IMEXP = IMEXP ## Az e szám komplex kitevőjű hatványát adja eredményül. +IMLN = IMLN ## Komplex szám természetes logaritmusát adja eredményül. +IMLOG10 = IMLOG10 ## Komplex szám tízes alapú logaritmusát adja eredményül. +IMLOG2 = IMLOG2 ## Komplex szám kettes alapú logaritmusát adja eredményül. +IMPOWER = IMPOWER ## Komplex szám hatványát adja eredményül. +IMPRODUCT = IMPRODUCT ## Komplex számok szorzatát adja eredményül. +IMREAL = IMREAL ## Komplex szám valós részét adja eredményül. +IMSIN = IMSIN ## Komplex szám szinuszát adja eredményül. +IMSQRT = IMSQRT ## Komplex szám négyzetgyökét adja eredményül. +IMSUB = IMSUB ## Két komplex szám különbségét adja eredményül. +IMSUM = IMSUM ## Komplex számok összegét adja eredményül. +OCT2BIN = OCT2BIN ## Oktális számot binárissá alakít át. +OCT2DEC = OCT2DEC ## Oktális számot decimálissá alakít át. +OCT2HEX = OCT2HEX ## Oktális számot hexadecimálissá alakít át. + + +## +## Financial functions Pénzügyi függvények +## +ACCRINT = ACCRINT ## Periodikusan kamatozó értékpapír felszaporodott kamatát adja eredményül. +ACCRINTM = ACCRINTM ## Lejáratkor kamatozó értékpapír felszaporodott kamatát adja eredményül. +AMORDEGRC = AMORDEGRC ## Állóeszköz lineáris értékcsökkenését adja meg az egyes könyvelési időszakokra vonatkozóan. +AMORLINC = AMORLINC ## Az egyes könyvelési időszakokban az értékcsökkenést adja meg. +COUPDAYBS = COUPDAYBS ## A szelvényidőszak kezdetétől a kifizetés időpontjáig eltelt napokat adja vissza. +COUPDAYS = COUPDAYS ## A kifizetés időpontját magában foglaló szelvényperiódus hosszát adja meg napokban. +COUPDAYSNC = COUPDAYSNC ## A kifizetés időpontja és a legközelebbi szelvénydátum közötti napok számát adja meg. +COUPNCD = COUPNCD ## A kifizetést követő legelső szelvénydátumot adja eredményül. +COUPNUM = COUPNUM ## A kifizetés és a lejárat időpontja között kifizetendő szelvények számát adja eredményül. +COUPPCD = COUPPCD ## A kifizetés előtti utolsó szelvénydátumot adja eredményül. +CUMIPMT = CUMIPMT ## Két fizetési időszak között kifizetett kamat halmozott értékét adja eredményül. +CUMPRINC = CUMPRINC ## Két fizetési időszak között kifizetett részletek halmozott (kamatot nem tartalmazó) értékét adja eredményül. +DB = KCS2 ## Eszköz adott időszak alatti értékcsökkenését számítja ki a lineáris leírási modell alkalmazásával. +DDB = KCSA ## Eszköz értékcsökkenését számítja ki adott időszakra vonatkozóan a progresszív vagy egyéb megadott leírási modell alkalmazásával. +DISC = DISC ## Értékpapír leszámítolási kamatlábát adja eredményül. +DOLLARDE = DOLLARDE ## Egy közönséges törtként megadott számot tizedes törtté alakít át. +DOLLARFR = DOLLARFR ## Tizedes törtként megadott számot közönséges törtté alakít át. +DURATION = DURATION ## Periodikus kamatfizetésű értékpapír éves kamatérzékenységét adja eredményül. +EFFECT = EFFECT ## Az éves tényleges kamatláb értékét adja eredményül. +FV = JBÉ ## Befektetés jövőbeli értékét számítja ki. +FVSCHEDULE = FVSCHEDULE ## A kezdőtőke adott kamatlábak szerint megnövelt jövőbeli értékét adja eredményül. +INTRATE = INTRATE ## A lejáratig teljesen lekötött értékpapír kamatrátáját adja eredményül. +IPMT = RRÉSZLET ## Hiteltörlesztésen belül a tőketörlesztés nagyságát számítja ki adott időszakra. +IRR = BMR ## A befektetés belső megtérülési rátáját számítja ki pénzáramláshoz. +ISPMT = LRÉSZLETKAMAT ## A befektetés adott időszakára fizetett kamatot számítja ki. +MDURATION = MDURATION ## Egy 100 Ft névértékű értékpapír Macauley-féle módosított kamatérzékenységét adja eredményül. +MIRR = MEGTÉRÜLÉS ## A befektetés belső megtérülési rátáját számítja ki a költségek és a bevételek különböző kamatlába mellett. +NOMINAL = NOMINAL ## Az éves névleges kamatláb értékét adja eredményül. +NPER = PER.SZÁM ## A törlesztési időszakok számát adja meg. +NPV = NMÉ ## Befektetéshez kapcsolódó pénzáramlás nettó jelenértékét számítja ki ismert pénzáramlás és kamatláb mellett. +ODDFPRICE = ODDFPRICE ## Egy 100 Ft névértékű, a futamidő elején töredék-időszakos értékpapír árát adja eredményül. +ODDFYIELD = ODDFYIELD ## A futamidő elején töredék-időszakos értékpapír hozamát adja eredményül. +ODDLPRICE = ODDLPRICE ## Egy 100 Ft névértékű, a futamidő végén töredék-időszakos értékpapír árát adja eredményül. +ODDLYIELD = ODDLYIELD ## A futamidő végén töredék-időszakos értékpapír hozamát adja eredményül. +PMT = RÉSZLET ## A törlesztési időszakra vonatkozó törlesztési összeget számítja ki. +PPMT = PRÉSZLET ## Hiteltörlesztésen belül a tőketörlesztés nagyságát számítja ki adott időszakra. +PRICE = PRICE ## Egy 100 Ft névértékű, periodikusan kamatozó értékpapír árát adja eredményül. +PRICEDISC = PRICEDISC ## Egy 100 Ft névértékű leszámítolt értékpapír árát adja eredményül. +PRICEMAT = PRICEMAT ## Egy 100 Ft névértékű, a lejáratkor kamatozó értékpapír árát adja eredményül. +PV = MÉ ## Befektetés jelenlegi értékét számítja ki. +RATE = RÁTA ## Egy törlesztési időszakban az egy időszakra eső kamatláb nagyságát számítja ki. +RECEIVED = RECEIVED ## A lejáratig teljesen lekötött értékpapír lejáratakor kapott összegét adja eredményül. +SLN = LCSA ## Tárgyi eszköz egy időszakra eső amortizációját adja meg bruttó érték szerinti lineáris leírási kulcsot alkalmazva. +SYD = SYD ## Tárgyi eszköz értékcsökkenését számítja ki adott időszakra az évek számjegyösszegével dolgozó módszer alapján. +TBILLEQ = TBILLEQ ## Kincstárjegy kötvény-egyenértékű hozamát adja eredményül. +TBILLPRICE = TBILLPRICE ## Egy 100 Ft névértékű kincstárjegy árát adja eredményül. +TBILLYIELD = TBILLYIELD ## Kincstárjegy hozamát adja eredményül. +VDB = ÉCSRI ## Tárgyi eszköz amortizációját számítja ki megadott vagy részidőszakra a csökkenő egyenleg módszerének alkalmazásával. +XIRR = XIRR ## Ütemezett készpénzforgalom (cash flow) belső megtérülési kamatrátáját adja eredményül. +XNPV = XNPV ## Ütemezett készpénzforgalom (cash flow) nettó jelenlegi értékét adja eredményül. +YIELD = YIELD ## Periodikusan kamatozó értékpapír hozamát adja eredményül. +YIELDDISC = YIELDDISC ## Leszámítolt értékpapír (például kincstárjegy) éves hozamát adja eredményül. +YIELDMAT = YIELDMAT ## Lejáratkor kamatozó értékpapír éves hozamát adja eredményül. + + +## +## Information functions Információs függvények +## +CELL = CELLA ## Egy cella formátumára, elhelyezkedésére vagy tartalmára vonatkozó adatokat ad eredményül. +ERROR.TYPE = HIBA.TÍPUS ## Egy hibatípushoz tartozó számot ad eredményül. +INFO = INFÓ ## A rendszer- és munkakörnyezet pillanatnyi állapotáról ad felvilágosítást. +ISBLANK = ÜRES ## Eredménye IGAZ, ha az érték üres. +ISERR = HIBA ## Eredménye IGAZ, ha az érték valamelyik hibaérték a #HIÁNYZIK kivételével. +ISERROR = HIBÁS ## Eredménye IGAZ, ha az érték valamelyik hibaérték. +ISEVEN = ISEVEN ## Eredménye IGAZ, ha argumentuma páros szám. +ISLOGICAL = LOGIKAI ## Eredménye IGAZ, ha az érték logikai érték. +ISNA = NINCS ## Eredménye IGAZ, ha az érték a #HIÁNYZIK hibaérték. +ISNONTEXT = NEM.SZÖVEG ## Eredménye IGAZ, ha az érték nem szöveg. +ISNUMBER = SZÁM ## Eredménye IGAZ, ha az érték szám. +ISODD = ISODD ## Eredménye IGAZ, ha argumentuma páratlan szám. +ISREF = HIVATKOZÁS ## Eredménye IGAZ, ha az érték hivatkozás. +ISTEXT = SZÖVEG.E ## Eredménye IGAZ, ha az érték szöveg. +N = N ## Argumentumának értékét számmá alakítja. +NA = HIÁNYZIK ## Eredménye a #HIÁNYZIK hibaérték. +TYPE = TÍPUS ## Érték adattípusának azonosítószámát adja eredményül. + + +## +## Logical functions Logikai függvények +## +AND = ÉS ## Eredménye IGAZ, ha minden argumentuma IGAZ. +FALSE = HAMIS ## A HAMIS logikai értéket adja eredményül. +IF = HA ## Logikai vizsgálatot hajt végre. +IFERROR = HAHIBA ## A megadott értéket adja vissza, ha egy képlet hibához vezet; más esetben a képlet értékét adja eredményül. +NOT = NEM ## Argumentuma értékének ellentettjét adja eredményül. +OR = VAGY ## Eredménye IGAZ, ha bármely argumentuma IGAZ. +TRUE = IGAZ ## Az IGAZ logikai értéket adja eredményül. + + +## +## Lookup and reference functions Keresési és hivatkozási függvények +## +ADDRESS = CÍM ## A munkalap egy cellájára való hivatkozást adja szövegként eredményül. +AREAS = TERÜLET ## Hivatkozásban a területek számát adja eredményül. +CHOOSE = VÁLASZT ## Értékek listájából választ ki egy elemet. +COLUMN = OSZLOP ## Egy hivatkozás oszlopszámát adja eredményül. +COLUMNS = OSZLOPOK ## A hivatkozásban található oszlopok számát adja eredményül. +HLOOKUP = VKERES ## A megadott tömb felső sorában adott értékű elemet keres, és a megtalált elem oszlopából adott sorban elhelyezkedő értékkel tér vissza. +HYPERLINK = HIPERHIVATKOZÁS ## Hálózati kiszolgálón, intraneten vagy az interneten tárolt dokumentumot megnyitó parancsikont vagy hivatkozást hoz létre. +INDEX = INDEX ## Tömb- vagy hivatkozás indexszel megadott értékét adja vissza. +INDIRECT = INDIREKT ## Szöveg megadott hivatkozást ad eredményül. +LOOKUP = KERES ## Vektorban vagy tömbben keres meg értékeket. +MATCH = HOL.VAN ## Hivatkozásban vagy tömbben értékeket keres. +OFFSET = OFSZET ## Hivatkozás egy másik hivatkozástól számított távolságát adja meg. +ROW = SOR ## Egy hivatkozás sorának számát adja meg. +ROWS = SOROK ## Egy hivatkozás sorainak számát adja meg. +RTD = RTD ## Valós idejű adatokat keres vissza a COM automatizmust (automatizálás: Egy alkalmazás objektumaival való munka másik alkalmazásból vagy fejlesztőeszközből. A korábban OLE automatizmusnak nevezett automatizálás iparági szabvány, a Component Object Model (COM) szolgáltatása.) támogató programból. +TRANSPOSE = TRANSZPONÁLÁS ## Egy tömb transzponáltját adja eredményül. +VLOOKUP = FKERES ## A megadott tömb bal szélső oszlopában megkeres egy értéket, majd annak sora és a megadott oszlop metszéspontjában levő értéked adja eredményül. + + +## +## Math and trigonometry functions Matematikai és trigonometrikus függvények +## +ABS = ABS ## Egy szám abszolút értékét adja eredményül. +ACOS = ARCCOS ## Egy szám arkusz koszinuszát számítja ki. +ACOSH = ACOSH ## Egy szám inverz koszinusz hiperbolikuszát számítja ki. +ASIN = ARCSIN ## Egy szám arkusz szinuszát számítja ki. +ASINH = ASINH ## Egy szám inverz szinusz hiperbolikuszát számítja ki. +ATAN = ARCTAN ## Egy szám arkusz tangensét számítja ki. +ATAN2 = ARCTAN2 ## X és y koordináták alapján számítja ki az arkusz tangens értéket. +ATANH = ATANH ## A szám inverz tangens hiperbolikuszát számítja ki. +CEILING = PLAFON ## Egy számot a legközelebbi egészre vagy a pontosságként megadott érték legközelebb eső többszörösére kerekít. +COMBIN = KOMBINÁCIÓK ## Adott számú objektum összes lehetséges kombinációinak számát számítja ki. +COS = COS ## Egy szám koszinuszát számítja ki. +COSH = COSH ## Egy szám koszinusz hiperbolikuszát számítja ki. +DEGREES = FOK ## Radiánt fokká alakít át. +EVEN = PÁROS ## Egy számot a legközelebbi páros egész számra kerekít. +EXP = KITEVŐ ## Az e adott kitevőjű hatványát adja eredményül. +FACT = FAKT ## Egy szám faktoriálisát számítja ki. +FACTDOUBLE = FACTDOUBLE ## Egy szám dupla faktoriálisát adja eredményül. +FLOOR = PADLÓ ## Egy számot lefelé, a nulla felé kerekít. +GCD = GCD ## A legnagyobb közös osztót adja eredményül. +INT = INT ## Egy számot lefelé kerekít a legközelebbi egészre. +LCM = LCM ## A legkisebb közös többszöröst adja eredményül. +LN = LN ## Egy szám természetes logaritmusát számítja ki. +LOG = LOG ## Egy szám adott alapú logaritmusát számítja ki. +LOG10 = LOG10 ## Egy szám 10-es alapú logaritmusát számítja ki. +MDETERM = MDETERM ## Egy tömb mátrix-determinánsát számítja ki. +MINVERSE = INVERZ.MÁTRIX ## Egy tömb mátrix inverzét adja eredményül. +MMULT = MSZORZAT ## Két tömb mátrix-szorzatát adja meg. +MOD = MARADÉK ## Egy szám osztási maradékát adja eredményül. +MROUND = MROUND ## A kívánt többszörösére kerekített értéket ad eredményül. +MULTINOMIAL = MULTINOMIAL ## Számhalmaz multinomiálisát adja eredményül. +ODD = PÁRATLAN ## Egy számot a legközelebbi páratlan számra kerekít. +PI = PI ## A pi matematikai állandót adja vissza. +POWER = HATVÁNY ## Egy szám adott kitevőjű hatványát számítja ki. +PRODUCT = SZORZAT ## Argumentumai szorzatát számítja ki. +QUOTIENT = QUOTIENT ## Egy hányados egész részét adja eredményül. +RADIANS = RADIÁN ## Fokot radiánná alakít át. +RAND = VÉL ## Egy 0 és 1 közötti véletlen számot ad eredményül. +RANDBETWEEN = RANDBETWEEN ## Megadott számok közé eső véletlen számot állít elő. +ROMAN = RÓMAI ## Egy számot római számokkal kifejezve szövegként ad eredményül. +ROUND = KEREKÍTÉS ## Egy számot adott számú számjegyre kerekít. +ROUNDDOWN = KEREKÍTÉS.LE ## Egy számot lefelé, a nulla felé kerekít. +ROUNDUP = KEREKÍTÉS.FEL ## Egy számot felfelé, a nullától távolabbra kerekít. +SERIESSUM = SERIESSUM ## Hatványsor összegét adja eredményül. +SIGN = ELŐJEL ## Egy szám előjelét adja meg. +SIN = SIN ## Egy szög szinuszát számítja ki. +SINH = SINH ## Egy szám szinusz hiperbolikuszát számítja ki. +SQRT = GYÖK ## Egy szám pozitív négyzetgyökét számítja ki. +SQRTPI = SQRTPI ## A (szám*pi) négyzetgyökét adja eredményül. +SUBTOTAL = RÉSZÖSSZEG ## Lista vagy adatbázis részösszegét adja eredményül. +SUM = SZUM ## Összeadja az argumentumlistájában lévő számokat. +SUMIF = SZUMHA ## A megadott feltételeknek eleget tevő cellákban található értékeket adja össze. +SUMIFS = SZUMHATÖBB ## Több megadott feltételnek eleget tévő tartománycellák összegét adja eredményül. +SUMPRODUCT = SZORZATÖSSZEG ## A megfelelő tömbelemek szorzatának összegét számítja ki. +SUMSQ = NÉGYZETÖSSZEG ## Argumentumai négyzetének összegét számítja ki. +SUMX2MY2 = SZUMX2BŐLY2 ## Két tömb megfelelő elemei négyzetének különbségét összegzi. +SUMX2PY2 = SZUMX2MEGY2 ## Két tömb megfelelő elemei négyzetének összegét összegzi. +SUMXMY2 = SZUMXBŐLY2 ## Két tömb megfelelő elemei különbségének négyzetösszegét számítja ki. +TAN = TAN ## Egy szám tangensét számítja ki. +TANH = TANH ## Egy szám tangens hiperbolikuszát számítja ki. +TRUNC = CSONK ## Egy számot egésszé csonkít. + + +## +## Statistical functions Statisztikai függvények +## +AVEDEV = ÁTL.ELTÉRÉS ## Az adatpontoknak átlaguktól való átlagos abszolút eltérését számítja ki. +AVERAGE = ÁTLAG ## Argumentumai átlagát számítja ki. +AVERAGEA = ÁTLAGA ## Argumentumai átlagát számítja ki (beleértve a számokat, szöveget és logikai értékeket). +AVERAGEIF = ÁTLAGHA ## A megadott feltételnek eleget tévő tartomány celláinak átlagát (számtani közepét) adja eredményül. +AVERAGEIFS = ÁTLAGHATÖBB ## A megadott feltételeknek eleget tévő cellák átlagát (számtani közepét) adja eredményül. +BETADIST = BÉTA.ELOSZLÁS ## A béta-eloszlás függvényt számítja ki. +BETAINV = INVERZ.BÉTA ## Adott béta-eloszláshoz kiszámítja a béta eloszlásfüggvény inverzét. +BINOMDIST = BINOM.ELOSZLÁS ## A diszkrét binomiális eloszlás valószínűségértékét számítja ki. +CHIDIST = KHI.ELOSZLÁS ## A khi-négyzet-eloszlás egyszélű valószínűségértékét számítja ki. +CHIINV = INVERZ.KHI ## A khi-négyzet-eloszlás egyszélű valószínűségértékének inverzét számítja ki. +CHITEST = KHI.PRÓBA ## Függetlenségvizsgálatot hajt végre. +CONFIDENCE = MEGBÍZHATÓSÁG ## Egy statisztikai sokaság várható értékének megbízhatósági intervallumát adja eredményül. +CORREL = KORREL ## Két adathalmaz korrelációs együtthatóját számítja ki. +COUNT = DARAB ## Megszámolja, hogy argumentumlistájában hány szám található. +COUNTA = DARAB2 ## Megszámolja, hogy argumentumlistájában hány érték található. +COUNTBLANK = DARABÜRES ## Egy tartományban összeszámolja az üres cellákat. +COUNTIF = DARABTELI ## Egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott feltételnek. +COUNTIFS = DARABHATÖBB ## Egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek több feltételnek. +COVAR = KOVAR ## A kovarianciát, azaz a páronkénti eltérések szorzatának átlagát számítja ki. +CRITBINOM = KRITBINOM ## Azt a legkisebb számot adja eredményül, amelyre a binomiális eloszlásfüggvény értéke nem kisebb egy adott határértéknél. +DEVSQ = SQ ## Az átlagtól való eltérések négyzetének összegét számítja ki. +EXPONDIST = EXP.ELOSZLÁS ## Az exponenciális eloszlás értékét számítja ki. +FDIST = F.ELOSZLÁS ## Az F-eloszlás értékét számítja ki. +FINV = INVERZ.F ## Az F-eloszlás inverzének értékét számítja ki. +FISHER = FISHER ## Fisher-transzformációt hajt végre. +FISHERINV = INVERZ.FISHER ## A Fisher-transzformáció inverzét hajtja végre. +FORECAST = ELŐREJELZÉS ## Az ismert értékek alapján lineáris regresszióval becsült értéket ad eredményül. +FREQUENCY = GYAKORISÁG ## A gyakorisági vagy empirikus eloszlás értékét függőleges tömbként adja eredményül. +FTEST = F.PRÓBA ## Az F-próba értékét adja eredményül. +GAMMADIST = GAMMA.ELOSZLÁS ## A gamma-eloszlás értékét számítja ki. +GAMMAINV = INVERZ.GAMMA ## A gamma-eloszlás eloszlásfüggvénye inverzének értékét számítja ki. +GAMMALN = GAMMALN ## A gamma-függvény természetes logaritmusát számítja ki. +GEOMEAN = MÉRTANI.KÖZÉP ## Argumentumai mértani középértékét számítja ki. +GROWTH = NÖV ## Exponenciális regresszió alapján ad becslést. +HARMEAN = HARM.KÖZÉP ## Argumentumai harmonikus átlagát számítja ki. +HYPGEOMDIST = HIPERGEOM.ELOSZLÁS ## A hipergeometriai eloszlás értékét számítja ki. +INTERCEPT = METSZ ## A regressziós egyenes y tengellyel való metszéspontját határozza meg. +KURT = CSÚCSOSSÁG ## Egy adathalmaz csúcsosságát számítja ki. +LARGE = NAGY ## Egy adathalmaz k-adik legnagyobb elemét adja eredményül. +LINEST = LIN.ILL ## A legkisebb négyzetek módszerével az adatokra illesztett egyenes paramétereit határozza meg. +LOGEST = LOG.ILL ## Az adatokra illesztett exponenciális görbe paramétereit határozza meg. +LOGINV = INVERZ.LOG.ELOSZLÁS ## A lognormális eloszlás inverzét számítja ki. +LOGNORMDIST = LOG.ELOSZLÁS ## A lognormális eloszlásfüggvény értékét számítja ki. +MAX = MAX ## Az argumentumai között szereplő legnagyobb számot adja meg. +MAXA = MAX2 ## Az argumentumai között szereplő legnagyobb számot adja meg (beleértve a számokat, szöveget és logikai értékeket). +MEDIAN = MEDIÁN ## Adott számhalmaz mediánját számítja ki. +MIN = MIN ## Az argumentumai között szereplő legkisebb számot adja meg. +MINA = MIN2 ## Az argumentumai között szereplő legkisebb számot adja meg, beleértve a számokat, szöveget és logikai értékeket. +MODE = MÓDUSZ ## Egy adathalmazból kiválasztja a leggyakrabban előforduló számot. +NEGBINOMDIST = NEGBINOM.ELOSZL ## A negatív binomiális eloszlás értékét számítja ki. +NORMDIST = NORM.ELOSZL ## A normális eloszlás értékét számítja ki. +NORMINV = INVERZ.NORM ## A normális eloszlás eloszlásfüggvénye inverzének értékét számítja ki. +NORMSDIST = STNORMELOSZL ## A standard normális eloszlás eloszlásfüggvényének értékét számítja ki. +NORMSINV = INVERZ.STNORM ## A standard normális eloszlás eloszlásfüggvénye inverzének értékét számítja ki. +PEARSON = PEARSON ## A Pearson-féle korrelációs együtthatót számítja ki. +PERCENTILE = PERCENTILIS ## Egy tartományban található értékek k-adik percentilisét, azaz százalékosztályát adja eredményül. +PERCENTRANK = SZÁZALÉKRANG ## Egy értéknek egy adathalmazon belül vett százalékos rangját (elhelyezkedését) számítja ki. +PERMUT = VARIÁCIÓK ## Adott számú objektum k-ad osztályú ismétlés nélküli variációinak számát számítja ki. +POISSON = POISSON ## A Poisson-eloszlás értékét számítja ki. +PROB = VALÓSZÍNŰSÉG ## Annak valószínűségét számítja ki, hogy adott értékek két határérték közé esnek. +QUARTILE = KVARTILIS ## Egy adathalmaz kvartilisét (negyedszintjét) számítja ki. +RANK = SORSZÁM ## Kiszámítja, hogy egy szám hányadik egy számsorozatban. +RSQ = RNÉGYZET ## Kiszámítja a Pearson-féle szorzatmomentum korrelációs együtthatójának négyzetét. +SKEW = FERDESÉG ## Egy eloszlás ferdeségét határozza meg. +SLOPE = MEREDEKSÉG ## Egy lineáris regressziós egyenes meredekségét számítja ki. +SMALL = KICSI ## Egy adathalmaz k-adik legkisebb elemét adja meg. +STANDARDIZE = NORMALIZÁLÁS ## Normalizált értéket ad eredményül. +STDEV = SZÓRÁS ## Egy statisztikai sokaság mintájából kiszámítja annak szórását. +STDEVA = SZÓRÁSA ## Egy statisztikai sokaság mintájából kiszámítja annak szórását (beleértve a számokat, szöveget és logikai értékeket). +STDEVP = SZÓRÁSP ## Egy statisztikai sokaság egészéből kiszámítja annak szórását. +STDEVPA = SZÓRÁSPA ## Egy statisztikai sokaság egészéből kiszámítja annak szórását (beleértve számokat, szöveget és logikai értékeket). +STEYX = STHIBAYX ## Egy regresszió esetén az egyes x-értékek alapján meghatározott y-értékek standard hibáját számítja ki. +TDIST = T.ELOSZLÁS ## A Student-féle t-eloszlás értékét számítja ki. +TINV = INVERZ.T ## A Student-féle t-eloszlás inverzét számítja ki. +TREND = TREND ## Lineáris trend értékeit számítja ki. +TRIMMEAN = RÉSZÁTLAG ## Egy adathalmaz középső részének átlagát számítja ki. +TTEST = T.PRÓBA ## A Student-féle t-próbához tartozó valószínűséget számítja ki. +VAR = VAR ## Minta alapján becslést ad a varianciára. +VARA = VARA ## Minta alapján becslést ad a varianciára (beleértve számokat, szöveget és logikai értékeket). +VARP = VARP ## Egy statisztikai sokaság varianciáját számítja ki. +VARPA = VARPA ## Egy statisztikai sokaság varianciáját számítja ki (beleértve számokat, szöveget és logikai értékeket). +WEIBULL = WEIBULL ## A Weibull-féle eloszlás értékét számítja ki. +ZTEST = Z.PRÓBA ## Az egyszélű z-próbával kapott valószínűségértéket számítja ki. + + +## +## Text functions Szövegműveletekhez használható függvények +## +ASC = ASC ## Szöveg teljes szélességű (kétbájtos) latin és katakana karaktereit félszélességű (egybájtos) karakterekké alakítja. +BAHTTEXT = BAHTSZÖVEG ## Számot szöveggé alakít a ß (baht) pénznemformátum használatával. +CHAR = KARAKTER ## A kódszámmal meghatározott karaktert adja eredményül. +CLEAN = TISZTÍT ## A szövegből eltávolítja az összes nem nyomtatható karaktert. +CODE = KÓD ## Karaktersorozat első karakterének numerikus kódját adja eredményül. +CONCATENATE = ÖSSZEFŰZ ## Több szövegelemet egyetlen szöveges elemmé fűz össze. +DOLLAR = FORINT ## Számot pénznem formátumú szöveggé alakít át. +EXACT = AZONOS ## Megvizsgálja, hogy két érték azonos-e. +FIND = SZÖVEG.TALÁL ## Karaktersorozatot keres egy másikban (a kis- és nagybetűk megkülönböztetésével). +FINDB = SZÖVEG.TALÁL2 ## Karaktersorozatot keres egy másikban (a kis- és nagybetűk megkülönböztetésével). +FIXED = FIX ## Számot szöveges formátumúra alakít adott számú tizedesjegyre kerekítve. +JIS = JIS ## A félszélességű (egybájtos) latin és a katakana karaktereket teljes szélességű (kétbájtos) karakterekké alakítja. +LEFT = BAL ## Szöveg bal szélső karaktereit adja eredményül. +LEFTB = BAL2 ## Szöveg bal szélső karaktereit adja eredményül. +LEN = HOSSZ ## Szöveg karakterekben mért hosszát adja eredményül. +LENB = HOSSZ2 ## Szöveg karakterekben mért hosszát adja eredményül. +LOWER = KISBETŰ ## Szöveget kisbetűssé alakít át. +MID = KÖZÉP ## A szöveg adott pozíciójától kezdve megadott számú karaktert ad vissza eredményként. +MIDB = KÖZÉP2 ## A szöveg adott pozíciójától kezdve megadott számú karaktert ad vissza eredményként. +PHONETIC = PHONETIC ## Szöveg furigana (fonetikus) karaktereit adja vissza. +PROPER = TNÉV ## Szöveg minden szavának kezdőbetűjét nagybetűsre cseréli. +REPLACE = CSERE ## A szövegen belül karaktereket cserél. +REPLACEB = CSERE2 ## A szövegen belül karaktereket cserél. +REPT = SOKSZOR ## Megadott számú alkalommal megismétel egy szövegrészt. +RIGHT = JOBB ## Szövegrész jobb szélső karaktereit adja eredményül. +RIGHTB = JOBB2 ## Szövegrész jobb szélső karaktereit adja eredményül. +SEARCH = SZÖVEG.KERES ## Karaktersorozatot keres egy másikban (a kis- és nagybetűk között nem tesz különbséget). +SEARCHB = SZÖVEG.KERES2 ## Karaktersorozatot keres egy másikban (a kis- és nagybetűk között nem tesz különbséget). +SUBSTITUTE = HELYETTE ## Szövegben adott karaktereket másikra cserél. +T = T ## Argumentumát szöveggé alakítja át. +TEXT = SZÖVEG ## Számértéket alakít át adott számformátumú szöveggé. +TRIM = TRIM ## A szövegből eltávolítja a szóközöket. +UPPER = NAGYBETŰS ## Szöveget nagybetűssé alakít át. +VALUE = ÉRTÉK ## Szöveget számmá alakít át. diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/it/config b/plugins/excel_reader/Classes/PHPExcel/locale/it/config new file mode 100755 index 0000000..5baad53 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/it/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = € + + +## +## Excel Error Codes (For future use) +## +NULL = #NULLO! +DIV0 = #DIV/0! +VALUE = #VALORE! +REF = #RIF! +NAME = #NOME? +NUM = #NUM! +NA = #N/D diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/it/functions b/plugins/excel_reader/Classes/PHPExcel/locale/it/functions new file mode 100755 index 0000000..3d09204 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/it/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Funzioni di automazione e dei componenti aggiuntivi +## +GETPIVOTDATA = INFO.DATI.TAB.PIVOT ## Restituisce i dati memorizzati in un rapporto di tabella pivot + + +## +## Cube functions Funzioni cubo +## +CUBEKPIMEMBER = MEMBRO.KPI.CUBO ## Restituisce il nome, la proprietà e la misura di un indicatore di prestazioni chiave (KPI) e visualizza il nome e la proprietà nella cella. Un KPI è una misura quantificabile, ad esempio l'utile lordo mensile o il fatturato trimestrale dei dipendenti, utilizzata per il monitoraggio delle prestazioni di un'organizzazione. +CUBEMEMBER = MEMBRO.CUBO ## Restituisce un membro o una tupla in una gerarchia di cubi. Consente di verificare l'esistenza del membro o della tupla nel cubo. +CUBEMEMBERPROPERTY = PROPRIETÀ.MEMBRO.CUBO ## Restituisce il valore di una proprietà di un membro del cubo. Consente di verificare l'esistenza di un nome di membro all'interno del cubo e di restituire la proprietà specificata per tale membro. +CUBERANKEDMEMBER = MEMBRO.CUBO.CON.RANGO ## Restituisce l'n-esimo membro o il membro ordinato di un insieme. Consente di restituire uno o più elementi in un insieme, ad esempio l'agente di vendita migliore o i primi 10 studenti. +CUBESET = SET.CUBO ## Definisce un insieme di tuple o membri calcolati mediante l'invio di un'espressione di insieme al cubo sul server. In questo modo l'insieme viene creato e restituito a Microsoft Office Excel. +CUBESETCOUNT = CONTA.SET.CUBO ## Restituisce il numero di elementi di un insieme. +CUBEVALUE = VALORE.CUBO ## Restituisce un valore aggregato da un cubo. + + +## +## Database functions Funzioni di database +## +DAVERAGE = DB.MEDIA ## Restituisce la media di voci del database selezionate +DCOUNT = DB.CONTA.NUMERI ## Conta le celle di un database contenenti numeri +DCOUNTA = DB.CONTA.VALORI ## Conta le celle non vuote in un database +DGET = DB.VALORI ## Estrae da un database un singolo record che soddisfa i criteri specificati +DMAX = DB.MAX ## Restituisce il valore massimo dalle voci selezionate in un database +DMIN = DB.MIN ## Restituisce il valore minimo dalle voci di un database selezionate +DPRODUCT = DB.PRODOTTO ## Moltiplica i valori in un determinato campo di record che soddisfano i criteri del database +DSTDEV = DB.DEV.ST ## Restituisce una stima della deviazione standard sulla base di un campione di voci di un database selezionate +DSTDEVP = DB.DEV.ST.POP ## Calcola la deviazione standard sulla base di tutte le voci di un database selezionate +DSUM = DB.SOMMA ## Aggiunge i numeri nel campo colonna di record del database che soddisfa determinati criteri +DVAR = DB.VAR ## Restituisce una stima della varianza sulla base di un campione da voci di un database selezionate +DVARP = DB.VAR.POP ## Calcola la varianza sulla base di tutte le voci di un database selezionate + + +## +## Date and time functions Funzioni data e ora +## +DATE = DATA ## Restituisce il numero seriale di una determinata data +DATEVALUE = DATA.VALORE ## Converte una data sotto forma di testo in un numero seriale +DAY = GIORNO ## Converte un numero seriale in un giorno del mese +DAYS360 = GIORNO360 ## Calcola il numero di giorni compreso tra due date basandosi su un anno di 360 giorni +EDATE = DATA.MESE ## Restituisce il numero seriale della data che rappresenta il numero di mesi prima o dopo la data di inizio +EOMONTH = FINE.MESE ## Restituisce il numero seriale dell'ultimo giorno del mese, prima o dopo un determinato numero di mesi +HOUR = ORA ## Converte un numero seriale in un'ora +MINUTE = MINUTO ## Converte un numero seriale in un minuto +MONTH = MESE ## Converte un numero seriale in un mese +NETWORKDAYS = GIORNI.LAVORATIVI.TOT ## Restituisce il numero di tutti i giorni lavorativi compresi fra due date +NOW = ADESSO ## Restituisce il numero seriale della data e dell'ora corrente +SECOND = SECONDO ## Converte un numero seriale in un secondo +TIME = ORARIO ## Restituisce il numero seriale di una determinata ora +TIMEVALUE = ORARIO.VALORE ## Converte un orario in forma di testo in un numero seriale +TODAY = OGGI ## Restituisce il numero seriale relativo alla data odierna +WEEKDAY = GIORNO.SETTIMANA ## Converte un numero seriale in un giorno della settimana +WEEKNUM = NUM.SETTIMANA ## Converte un numero seriale in un numero che rappresenta la posizione numerica di una settimana nell'anno +WORKDAY = GIORNO.LAVORATIVO ## Restituisce il numero della data prima o dopo un determinato numero di giorni lavorativi +YEAR = ANNO ## Converte un numero seriale in un anno +YEARFRAC = FRAZIONE.ANNO ## Restituisce la frazione dell'anno che rappresenta il numero dei giorni compresi tra una data_ iniziale e una data_finale + + +## +## Engineering functions Funzioni ingegneristiche +## +BESSELI = BESSEL.I ## Restituisce la funzione di Bessel modificata In(x) +BESSELJ = BESSEL.J ## Restituisce la funzione di Bessel Jn(x) +BESSELK = BESSEL.K ## Restituisce la funzione di Bessel modificata Kn(x) +BESSELY = BESSEL.Y ## Restituisce la funzione di Bessel Yn(x) +BIN2DEC = BINARIO.DECIMALE ## Converte un numero binario in decimale +BIN2HEX = BINARIO.HEX ## Converte un numero binario in esadecimale +BIN2OCT = BINARIO.OCT ## Converte un numero binario in ottale +COMPLEX = COMPLESSO ## Converte i coefficienti reali e immaginari in numeri complessi +CONVERT = CONVERTI ## Converte un numero da un sistema di misura in un altro +DEC2BIN = DECIMALE.BINARIO ## Converte un numero decimale in binario +DEC2HEX = DECIMALE.HEX ## Converte un numero decimale in esadecimale +DEC2OCT = DECIMALE.OCT ## Converte un numero decimale in ottale +DELTA = DELTA ## Verifica se due valori sono uguali +ERF = FUNZ.ERRORE ## Restituisce la funzione di errore +ERFC = FUNZ.ERRORE.COMP ## Restituisce la funzione di errore complementare +GESTEP = SOGLIA ## Verifica se un numero è maggiore del valore di soglia +HEX2BIN = HEX.BINARIO ## Converte un numero esadecimale in binario +HEX2DEC = HEX.DECIMALE ## Converte un numero esadecimale in decimale +HEX2OCT = HEX.OCT ## Converte un numero esadecimale in ottale +IMABS = COMP.MODULO ## Restituisce il valore assoluto (modulo) di un numero complesso +IMAGINARY = COMP.IMMAGINARIO ## Restituisce il coefficiente immaginario di un numero complesso +IMARGUMENT = COMP.ARGOMENTO ## Restituisce l'argomento theta, un angolo espresso in radianti +IMCONJUGATE = COMP.CONIUGATO ## Restituisce il complesso coniugato del numero complesso +IMCOS = COMP.COS ## Restituisce il coseno di un numero complesso +IMDIV = COMP.DIV ## Restituisce il quoziente di due numeri complessi +IMEXP = COMP.EXP ## Restituisce il valore esponenziale di un numero complesso +IMLN = COMP.LN ## Restituisce il logaritmo naturale di un numero complesso +IMLOG10 = COMP.LOG10 ## Restituisce il logaritmo in base 10 di un numero complesso +IMLOG2 = COMP.LOG2 ## Restituisce un logaritmo in base 2 di un numero complesso +IMPOWER = COMP.POTENZA ## Restituisce il numero complesso elevato a una potenza intera +IMPRODUCT = COMP.PRODOTTO ## Restituisce il prodotto di numeri complessi compresi tra 2 e 29 +IMREAL = COMP.PARTE.REALE ## Restituisce il coefficiente reale di un numero complesso +IMSIN = COMP.SEN ## Restituisce il seno di un numero complesso +IMSQRT = COMP.RADQ ## Restituisce la radice quadrata di un numero complesso +IMSUB = COMP.DIFF ## Restituisce la differenza fra due numeri complessi +IMSUM = COMP.SOMMA ## Restituisce la somma di numeri complessi +OCT2BIN = OCT.BINARIO ## Converte un numero ottale in binario +OCT2DEC = OCT.DECIMALE ## Converte un numero ottale in decimale +OCT2HEX = OCT.HEX ## Converte un numero ottale in esadecimale + + +## +## Financial functions Funzioni finanziarie +## +ACCRINT = INT.MATURATO.PER ## Restituisce l'interesse maturato di un titolo che paga interessi periodici +ACCRINTM = INT.MATURATO.SCAD ## Restituisce l'interesse maturato di un titolo che paga interessi alla scadenza +AMORDEGRC = AMMORT.DEGR ## Restituisce l'ammortamento per ogni periodo contabile utilizzando un coefficiente di ammortamento +AMORLINC = AMMORT.PER ## Restituisce l'ammortamento per ogni periodo contabile +COUPDAYBS = GIORNI.CED.INIZ.LIQ ## Restituisce il numero dei giorni che vanno dall'inizio del periodo di durata della cedola alla data di liquidazione +COUPDAYS = GIORNI.CED ## Restituisce il numero dei giorni relativi al periodo della cedola che contiene la data di liquidazione +COUPDAYSNC = GIORNI.CED.NUOVA ## Restituisce il numero di giorni che vanno dalla data di liquidazione alla data della cedola successiva +COUPNCD = DATA.CED.SUCC ## Restituisce un numero che rappresenta la data della cedola successiva alla data di liquidazione +COUPNUM = NUM.CED ## Restituisce il numero di cedole pagabili fra la data di liquidazione e la data di scadenza +COUPPCD = DATA.CED.PREC ## Restituisce un numero che rappresenta la data della cedola precedente alla data di liquidazione +CUMIPMT = INT.CUMUL ## Restituisce l'interesse cumulativo pagato fra due periodi +CUMPRINC = CAP.CUM ## Restituisce il capitale cumulativo pagato per estinguere un debito fra due periodi +DB = DB ## Restituisce l'ammortamento di un bene per un periodo specificato utilizzando il metodo di ammortamento a quote fisse decrescenti +DDB = AMMORT ## Restituisce l'ammortamento di un bene per un periodo specificato utilizzando il metodo di ammortamento a doppie quote decrescenti o altri metodi specificati +DISC = TASSO.SCONTO ## Restituisce il tasso di sconto per un titolo +DOLLARDE = VALUTA.DEC ## Converte un prezzo valuta, espresso come frazione, in prezzo valuta, espresso come numero decimale +DOLLARFR = VALUTA.FRAZ ## Converte un prezzo valuta, espresso come numero decimale, in prezzo valuta, espresso come frazione +DURATION = DURATA ## Restituisce la durata annuale di un titolo con i pagamenti di interesse periodico +EFFECT = EFFETTIVO ## Restituisce l'effettivo tasso di interesse annuo +FV = VAL.FUT ## Restituisce il valore futuro di un investimento +FVSCHEDULE = VAL.FUT.CAPITALE ## Restituisce il valore futuro di un capitale iniziale dopo aver applicato una serie di tassi di interesse composti +INTRATE = TASSO.INT ## Restituisce il tasso di interesse per un titolo interamente investito +IPMT = INTERESSI ## Restituisce il valore degli interessi per un investimento relativo a un periodo specifico +IRR = TIR.COST ## Restituisce il tasso di rendimento interno per una serie di flussi di cassa +ISPMT = INTERESSE.RATA ## Calcola l'interesse di un investimento pagato durante un periodo specifico +MDURATION = DURATA.M ## Restituisce la durata Macauley modificata per un titolo con un valore presunto di € 100 +MIRR = TIR.VAR ## Restituisce il tasso di rendimento interno in cui i flussi di cassa positivi e negativi sono finanziati a tassi differenti +NOMINAL = NOMINALE ## Restituisce il tasso di interesse nominale annuale +NPER = NUM.RATE ## Restituisce un numero di periodi relativi a un investimento +NPV = VAN ## Restituisce il valore attuale netto di un investimento basato su una serie di flussi di cassa periodici e sul tasso di sconto +ODDFPRICE = PREZZO.PRIMO.IRR ## Restituisce il prezzo di un titolo dal valore nominale di € 100 avente il primo periodo di durata irregolare +ODDFYIELD = REND.PRIMO.IRR ## Restituisce il rendimento di un titolo avente il primo periodo di durata irregolare +ODDLPRICE = PREZZO.ULTIMO.IRR ## Restituisce il prezzo di un titolo dal valore nominale di € 100 avente l'ultimo periodo di durata irregolare +ODDLYIELD = REND.ULTIMO.IRR ## Restituisce il rendimento di un titolo avente l'ultimo periodo di durata irregolare +PMT = RATA ## Restituisce il pagamento periodico di una rendita annua +PPMT = P.RATA ## Restituisce il pagamento sul capitale di un investimento per un dato periodo +PRICE = PREZZO ## Restituisce il prezzo di un titolo dal valore nominale di € 100 che paga interessi periodici +PRICEDISC = PREZZO.SCONT ## Restituisce il prezzo di un titolo scontato dal valore nominale di € 100 +PRICEMAT = PREZZO.SCAD ## Restituisce il prezzo di un titolo dal valore nominale di € 100 che paga gli interessi alla scadenza +PV = VA ## Restituisce il valore attuale di un investimento +RATE = TASSO ## Restituisce il tasso di interesse per un periodo di un'annualità +RECEIVED = RICEV.SCAD ## Restituisce l'ammontare ricevuto alla scadenza di un titolo interamente investito +SLN = AMMORT.COST ## Restituisce l'ammortamento a quote costanti di un bene per un singolo periodo +SYD = AMMORT.ANNUO ## Restituisce l'ammortamento a somma degli anni di un bene per un periodo specificato +TBILLEQ = BOT.EQUIV ## Restituisce il rendimento equivalente ad un'obbligazione per un Buono ordinario del Tesoro +TBILLPRICE = BOT.PREZZO ## Restituisce il prezzo di un Buono del Tesoro dal valore nominale di € 100 +TBILLYIELD = BOT.REND ## Restituisce il rendimento di un Buono del Tesoro +VDB = AMMORT.VAR ## Restituisce l'ammortamento di un bene per un periodo specificato o parziale utilizzando il metodo a doppie quote proporzionali ai valori residui +XIRR = TIR.X ## Restituisce il tasso di rendimento interno di un impiego di flussi di cassa +XNPV = VAN.X ## Restituisce il valore attuale netto di un impiego di flussi di cassa non necessariamente periodici +YIELD = REND ## Restituisce il rendimento di un titolo che frutta interessi periodici +YIELDDISC = REND.TITOLI.SCONT ## Restituisce il rendimento annuale di un titolo scontato, ad esempio un Buono del Tesoro +YIELDMAT = REND.SCAD ## Restituisce il rendimento annuo di un titolo che paga interessi alla scadenza + + +## +## Information functions Funzioni relative alle informazioni +## +CELL = CELLA ## Restituisce le informazioni sulla formattazione, la posizione o i contenuti di una cella +ERROR.TYPE = ERRORE.TIPO ## Restituisce un numero che corrisponde a un tipo di errore +INFO = INFO ## Restituisce le informazioni sull'ambiente operativo corrente +ISBLANK = VAL.VUOTO ## Restituisce VERO se il valore è vuoto +ISERR = VAL.ERR ## Restituisce VERO se il valore è un valore di errore qualsiasi tranne #N/D +ISERROR = VAL.ERRORE ## Restituisce VERO se il valore è un valore di errore qualsiasi +ISEVEN = VAL.PARI ## Restituisce VERO se il numero è pari +ISLOGICAL = VAL.LOGICO ## Restituisce VERO se il valore è un valore logico +ISNA = VAL.NON.DISP ## Restituisce VERO se il valore è un valore di errore #N/D +ISNONTEXT = VAL.NON.TESTO ## Restituisce VERO se il valore non è in formato testo +ISNUMBER = VAL.NUMERO ## Restituisce VERO se il valore è un numero +ISODD = VAL.DISPARI ## Restituisce VERO se il numero è dispari +ISREF = VAL.RIF ## Restituisce VERO se il valore è un riferimento +ISTEXT = VAL.TESTO ## Restituisce VERO se il valore è in formato testo +N = NUM ## Restituisce un valore convertito in numero +NA = NON.DISP ## Restituisce il valore di errore #N/D +TYPE = TIPO ## Restituisce un numero che indica il tipo di dati relativi a un valore + + +## +## Logical functions Funzioni logiche +## +AND = E ## Restituisce VERO se tutti gli argomenti sono VERO +FALSE = FALSO ## Restituisce il valore logico FALSO +IF = SE ## Specifica un test logico da eseguire +IFERROR = SE.ERRORE ## Restituisce un valore specificato se una formula fornisce un errore come risultato; in caso contrario, restituisce il risultato della formula +NOT = NON ## Inverte la logica degli argomenti +OR = O ## Restituisce VERO se un argomento qualsiasi è VERO +TRUE = VERO ## Restituisce il valore logico VERO + + +## +## Lookup and reference functions Funzioni di ricerca e di riferimento +## +ADDRESS = INDIRIZZO ## Restituisce un riferimento come testo in una singola cella di un foglio di lavoro +AREAS = AREE ## Restituisce il numero di aree in un riferimento +CHOOSE = SCEGLI ## Sceglie un valore da un elenco di valori +COLUMN = RIF.COLONNA ## Restituisce il numero di colonna di un riferimento +COLUMNS = COLONNE ## Restituisce il numero di colonne in un riferimento +HLOOKUP = CERCA.ORIZZ ## Effettua una ricerca nella riga superiore di una matrice e restituisce il valore della cella specificata +HYPERLINK = COLLEG.IPERTESTUALE ## Crea un collegamento che apre un documento memorizzato in un server di rete, una rete Intranet o Internet +INDEX = INDICE ## Utilizza un indice per scegliere un valore da un riferimento o da una matrice +INDIRECT = INDIRETTO ## Restituisce un riferimento specificato da un valore testo +LOOKUP = CERCA ## Ricerca i valori in un vettore o in una matrice +MATCH = CONFRONTA ## Ricerca i valori in un riferimento o in una matrice +OFFSET = SCARTO ## Restituisce uno scarto di riferimento da un riferimento dato +ROW = RIF.RIGA ## Restituisce il numero di riga di un riferimento +ROWS = RIGHE ## Restituisce il numero delle righe in un riferimento +RTD = DATITEMPOREALE ## Recupera dati in tempo reale da un programma che supporta l'automazione COM (automazione: Metodo per utilizzare gli oggetti di un'applicazione da un'altra applicazione o da un altro strumento di sviluppo. Precedentemente nota come automazione OLE, l'automazione è uno standard del settore e una caratteristica del modello COM (Component Object Model).) +TRANSPOSE = MATR.TRASPOSTA ## Restituisce la trasposizione di una matrice +VLOOKUP = CERCA.VERT ## Effettua una ricerca nella prima colonna di una matrice e si sposta attraverso la riga per restituire il valore di una cella + + +## +## Math and trigonometry functions Funzioni matematiche e trigonometriche +## +ABS = ASS ## Restituisce il valore assoluto di un numero. +ACOS = ARCCOS ## Restituisce l'arcocoseno di un numero +ACOSH = ARCCOSH ## Restituisce l'inverso del coseno iperbolico di un numero +ASIN = ARCSEN ## Restituisce l'arcoseno di un numero +ASINH = ARCSENH ## Restituisce l'inverso del seno iperbolico di un numero +ATAN = ARCTAN ## Restituisce l'arcotangente di un numero +ATAN2 = ARCTAN.2 ## Restituisce l'arcotangente delle coordinate x e y specificate +ATANH = ARCTANH ## Restituisce l'inverso della tangente iperbolica di un numero +CEILING = ARROTONDA.ECCESSO ## Arrotonda un numero per eccesso all'intero più vicino o al multiplo più vicino a peso +COMBIN = COMBINAZIONE ## Restituisce il numero di combinazioni possibili per un numero assegnato di elementi +COS = COS ## Restituisce il coseno dell'angolo specificato +COSH = COSH ## Restituisce il coseno iperbolico di un numero +DEGREES = GRADI ## Converte i radianti in gradi +EVEN = PARI ## Arrotonda il valore assoluto di un numero per eccesso al più vicino intero pari +EXP = ESP ## Restituisce il numero e elevato alla potenza di num +FACT = FATTORIALE ## Restituisce il fattoriale di un numero +FACTDOUBLE = FATT.DOPPIO ## Restituisce il fattoriale doppio di un numero +FLOOR = ARROTONDA.DIFETTO ## Arrotonda un numero per difetto al multiplo più vicino a zero +GCD = MCD ## Restituisce il massimo comune divisore +INT = INT ## Arrotonda un numero per difetto al numero intero più vicino +LCM = MCM ## Restituisce il minimo comune multiplo +LN = LN ## Restituisce il logaritmo naturale di un numero +LOG = LOG ## Restituisce il logaritmo di un numero in una specificata base +LOG10 = LOG10 ## Restituisce il logaritmo in base 10 di un numero +MDETERM = MATR.DETERM ## Restituisce il determinante di una matrice +MINVERSE = MATR.INVERSA ## Restituisce l'inverso di una matrice +MMULT = MATR.PRODOTTO ## Restituisce il prodotto di due matrici +MOD = RESTO ## Restituisce il resto della divisione +MROUND = ARROTONDA.MULTIPLO ## Restituisce un numero arrotondato al multiplo desiderato +MULTINOMIAL = MULTINOMIALE ## Restituisce il multinomiale di un insieme di numeri +ODD = DISPARI ## Arrotonda un numero per eccesso al più vicino intero dispari +PI = PI.GRECO ## Restituisce il valore di pi greco +POWER = POTENZA ## Restituisce il risultato di un numero elevato a potenza +PRODUCT = PRODOTTO ## Moltiplica i suoi argomenti +QUOTIENT = QUOZIENTE ## Restituisce la parte intera di una divisione +RADIANS = RADIANTI ## Converte i gradi in radianti +RAND = CASUALE ## Restituisce un numero casuale compreso tra 0 e 1 +RANDBETWEEN = CASUALE.TRA ## Restituisce un numero casuale compreso tra i numeri specificati +ROMAN = ROMANO ## Restituisce il numero come numero romano sotto forma di testo +ROUND = ARROTONDA ## Arrotonda il numero al numero di cifre specificato +ROUNDDOWN = ARROTONDA.PER.DIF ## Arrotonda il valore assoluto di un numero per difetto +ROUNDUP = ARROTONDA.PER.ECC ## Arrotonda il valore assoluto di un numero per eccesso +SERIESSUM = SOMMA.SERIE ## Restituisce la somma di una serie di potenze in base alla formula +SIGN = SEGNO ## Restituisce il segno di un numero +SIN = SEN ## Restituisce il seno di un dato angolo +SINH = SENH ## Restituisce il seno iperbolico di un numero +SQRT = RADQ ## Restituisce una radice quadrata +SQRTPI = RADQ.PI.GRECO ## Restituisce la radice quadrata di un numero (numero * pi greco) +SUBTOTAL = SUBTOTALE ## Restituisce un subtotale in un elenco o in un database +SUM = SOMMA ## Somma i suoi argomenti +SUMIF = SOMMA.SE ## Somma le celle specificate da un dato criterio +SUMIFS = SOMMA.PIÙ.SE ## Somma le celle in un intervallo che soddisfano più criteri +SUMPRODUCT = MATR.SOMMA.PRODOTTO ## Restituisce la somma dei prodotti dei componenti corrispondenti della matrice +SUMSQ = SOMMA.Q ## Restituisce la somma dei quadrati degli argomenti +SUMX2MY2 = SOMMA.DIFF.Q ## Restituisce la somma della differenza dei quadrati dei corrispondenti elementi in due matrici +SUMX2PY2 = SOMMA.SOMMA.Q ## Restituisce la somma della somma dei quadrati dei corrispondenti elementi in due matrici +SUMXMY2 = SOMMA.Q.DIFF ## Restituisce la somma dei quadrati delle differenze dei corrispondenti elementi in due matrici +TAN = TAN ## Restituisce la tangente di un numero +TANH = TANH ## Restituisce la tangente iperbolica di un numero +TRUNC = TRONCA ## Tronca la parte decimale di un numero + + +## +## Statistical functions Funzioni statistiche +## +AVEDEV = MEDIA.DEV ## Restituisce la media delle deviazioni assolute delle coordinate rispetto alla loro media +AVERAGE = MEDIA ## Restituisce la media degli argomenti +AVERAGEA = MEDIA.VALORI ## Restituisce la media degli argomenti, inclusi i numeri, il testo e i valori logici +AVERAGEIF = MEDIA.SE ## Restituisce la media aritmetica di tutte le celle in un intervallo che soddisfano un determinato criterio +AVERAGEIFS = MEDIA.PIÙ.SE ## Restituisce la media aritmetica di tutte le celle che soddisfano più criteri +BETADIST = DISTRIB.BETA ## Restituisce la funzione di distribuzione cumulativa beta +BETAINV = INV.BETA ## Restituisce l'inverso della funzione di distribuzione cumulativa per una distribuzione beta specificata +BINOMDIST = DISTRIB.BINOM ## Restituisce la distribuzione binomiale per il termine individuale +CHIDIST = DISTRIB.CHI ## Restituisce la probabilità a una coda per la distribuzione del chi quadrato +CHIINV = INV.CHI ## Restituisce l'inverso della probabilità ad una coda per la distribuzione del chi quadrato +CHITEST = TEST.CHI ## Restituisce il test per l'indipendenza +CONFIDENCE = CONFIDENZA ## Restituisce l'intervallo di confidenza per una popolazione +CORREL = CORRELAZIONE ## Restituisce il coefficiente di correlazione tra due insiemi di dati +COUNT = CONTA.NUMERI ## Conta la quantità di numeri nell'elenco di argomenti +COUNTA = CONTA.VALORI ## Conta il numero di valori nell'elenco di argomenti +COUNTBLANK = CONTA.VUOTE ## Conta il numero di celle vuote all'interno di un intervallo +COUNTIF = CONTA.SE ## Conta il numero di celle all'interno di un intervallo che soddisfa i criteri specificati +COUNTIFS = CONTA.PIÙ.SE ## Conta il numero di celle in un intervallo che soddisfano più criteri. +COVAR = COVARIANZA ## Calcola la covarianza, la media dei prodotti delle deviazioni accoppiate +CRITBINOM = CRIT.BINOM ## Restituisce il più piccolo valore per il quale la distribuzione cumulativa binomiale risulta maggiore o uguale ad un valore di criterio +DEVSQ = DEV.Q ## Restituisce la somma dei quadrati delle deviazioni +EXPONDIST = DISTRIB.EXP ## Restituisce la distribuzione esponenziale +FDIST = DISTRIB.F ## Restituisce la distribuzione di probabilità F +FINV = INV.F ## Restituisce l'inverso della distribuzione della probabilità F +FISHER = FISHER ## Restituisce la trasformazione di Fisher +FISHERINV = INV.FISHER ## Restituisce l'inverso della trasformazione di Fisher +FORECAST = PREVISIONE ## Restituisce i valori lungo una tendenza lineare +FREQUENCY = FREQUENZA ## Restituisce la distribuzione di frequenza come matrice verticale +FTEST = TEST.F ## Restituisce il risultato di un test F +GAMMADIST = DISTRIB.GAMMA ## Restituisce la distribuzione gamma +GAMMAINV = INV.GAMMA ## Restituisce l'inverso della distribuzione cumulativa gamma +GAMMALN = LN.GAMMA ## Restituisce il logaritmo naturale della funzione gamma, G(x) +GEOMEAN = MEDIA.GEOMETRICA ## Restituisce la media geometrica +GROWTH = CRESCITA ## Restituisce i valori lungo una linea di tendenza esponenziale +HARMEAN = MEDIA.ARMONICA ## Restituisce la media armonica +HYPGEOMDIST = DISTRIB.IPERGEOM ## Restituisce la distribuzione ipergeometrica +INTERCEPT = INTERCETTA ## Restituisce l'intercetta della retta di regressione lineare +KURT = CURTOSI ## Restituisce la curtosi di un insieme di dati +LARGE = GRANDE ## Restituisce il k-esimo valore più grande in un insieme di dati +LINEST = REGR.LIN ## Restituisce i parametri di una tendenza lineare +LOGEST = REGR.LOG ## Restituisce i parametri di una linea di tendenza esponenziale +LOGINV = INV.LOGNORM ## Restituisce l'inverso di una distribuzione lognormale +LOGNORMDIST = DISTRIB.LOGNORM ## Restituisce la distribuzione lognormale cumulativa +MAX = MAX ## Restituisce il valore massimo in un elenco di argomenti +MAXA = MAX.VALORI ## Restituisce il valore massimo in un elenco di argomenti, inclusi i numeri, il testo e i valori logici +MEDIAN = MEDIANA ## Restituisce la mediana dei numeri specificati +MIN = MIN ## Restituisce il valore minimo in un elenco di argomenti +MINA = MIN.VALORI ## Restituisce il più piccolo valore in un elenco di argomenti, inclusi i numeri, il testo e i valori logici +MODE = MODA ## Restituisce il valore più comune in un insieme di dati +NEGBINOMDIST = DISTRIB.BINOM.NEG ## Restituisce la distribuzione binomiale negativa +NORMDIST = DISTRIB.NORM ## Restituisce la distribuzione cumulativa normale +NORMINV = INV.NORM ## Restituisce l'inverso della distribuzione cumulativa normale standard +NORMSDIST = DISTRIB.NORM.ST ## Restituisce la distribuzione cumulativa normale standard +NORMSINV = INV.NORM.ST ## Restituisce l'inverso della distribuzione cumulativa normale +PEARSON = PEARSON ## Restituisce il coefficiente del momento di correlazione di Pearson +PERCENTILE = PERCENTILE ## Restituisce il k-esimo dato percentile di valori in un intervallo +PERCENTRANK = PERCENT.RANGO ## Restituisce il rango di un valore in un insieme di dati come percentuale +PERMUT = PERMUTAZIONE ## Restituisce il numero delle permutazioni per un determinato numero di oggetti +POISSON = POISSON ## Restituisce la distribuzione di Poisson +PROB = PROBABILITÀ ## Calcola la probabilità che dei valori in un intervallo siano compresi tra due limiti +QUARTILE = QUARTILE ## Restituisce il quartile di un insieme di dati +RANK = RANGO ## Restituisce il rango di un numero in un elenco di numeri +RSQ = RQ ## Restituisce la radice quadrata del coefficiente di momento di correlazione di Pearson +SKEW = ASIMMETRIA ## Restituisce il grado di asimmetria di una distribuzione +SLOPE = PENDENZA ## Restituisce la pendenza di una retta di regressione lineare +SMALL = PICCOLO ## Restituisce il k-esimo valore più piccolo in un insieme di dati +STANDARDIZE = NORMALIZZA ## Restituisce un valore normalizzato +STDEV = DEV.ST ## Restituisce una stima della deviazione standard sulla base di un campione +STDEVA = DEV.ST.VALORI ## Restituisce una stima della deviazione standard sulla base di un campione, inclusi i numeri, il testo e i valori logici +STDEVP = DEV.ST.POP ## Calcola la deviazione standard sulla base di un'intera popolazione +STDEVPA = DEV.ST.POP.VALORI ## Calcola la deviazione standard sulla base sull'intera popolazione, inclusi i numeri, il testo e i valori logici +STEYX = ERR.STD.YX ## Restituisce l'errore standard del valore previsto per y per ogni valore x nella regressione +TDIST = DISTRIB.T ## Restituisce la distribuzione t di Student +TINV = INV.T ## Restituisce l'inversa della distribuzione t di Student +TREND = TENDENZA ## Restituisce i valori lungo una linea di tendenza lineare +TRIMMEAN = MEDIA.TRONCATA ## Restituisce la media della parte interna di un insieme di dati +TTEST = TEST.T ## Restituisce la probabilità associata ad un test t di Student +VAR = VAR ## Stima la varianza sulla base di un campione +VARA = VAR.VALORI ## Stima la varianza sulla base di un campione, inclusi i numeri, il testo e i valori logici +VARP = VAR.POP ## Calcola la varianza sulla base dell'intera popolazione +VARPA = VAR.POP.VALORI ## Calcola la deviazione standard sulla base sull'intera popolazione, inclusi i numeri, il testo e i valori logici +WEIBULL = WEIBULL ## Restituisce la distribuzione di Weibull +ZTEST = TEST.Z ## Restituisce il valore di probabilità a una coda per un test z + + +## +## Text functions Funzioni di testo +## +ASC = ASC ## Modifica le lettere inglesi o il katakana a doppio byte all'interno di una stringa di caratteri in caratteri a singolo byte +BAHTTEXT = BAHTTESTO ## Converte un numero in testo, utilizzando il formato valuta ß (baht) +CHAR = CODICE.CARATT ## Restituisce il carattere specificato dal numero di codice +CLEAN = LIBERA ## Elimina dal testo tutti i caratteri che non è possibile stampare +CODE = CODICE ## Restituisce il codice numerico del primo carattere di una stringa di testo +CONCATENATE = CONCATENA ## Unisce diversi elementi di testo in un unico elemento di testo +DOLLAR = VALUTA ## Converte un numero in testo, utilizzando il formato valuta € (euro) +EXACT = IDENTICO ## Verifica se due valori di testo sono uguali +FIND = TROVA ## Rileva un valore di testo all'interno di un altro (distinzione tra maiuscole e minuscole) +FINDB = TROVA.B ## Rileva un valore di testo all'interno di un altro (distinzione tra maiuscole e minuscole) +FIXED = FISSO ## Formatta un numero come testo con un numero fisso di decimali +JIS = ORDINAMENTO.JIS ## Modifica le lettere inglesi o i caratteri katakana a byte singolo all'interno di una stringa di caratteri in caratteri a byte doppio. +LEFT = SINISTRA ## Restituisce il carattere più a sinistra di un valore di testo +LEFTB = SINISTRA.B ## Restituisce il carattere più a sinistra di un valore di testo +LEN = LUNGHEZZA ## Restituisce il numero di caratteri di una stringa di testo +LENB = LUNB ## Restituisce il numero di caratteri di una stringa di testo +LOWER = MINUSC ## Converte il testo in lettere minuscole +MID = MEDIA ## Restituisce un numero specifico di caratteri di una stringa di testo a partire dalla posizione specificata +MIDB = MEDIA.B ## Restituisce un numero specifico di caratteri di una stringa di testo a partire dalla posizione specificata +PHONETIC = FURIGANA ## Estrae i caratteri fonetici (furigana) da una stringa di testo. +PROPER = MAIUSC.INIZ ## Converte in maiuscolo la prima lettera di ogni parola di un valore di testo +REPLACE = RIMPIAZZA ## Sostituisce i caratteri all'interno di un testo +REPLACEB = SOSTITUISCI.B ## Sostituisce i caratteri all'interno di un testo +REPT = RIPETI ## Ripete un testo per un dato numero di volte +RIGHT = DESTRA ## Restituisce il carattere più a destra di un valore di testo +RIGHTB = DESTRA.B ## Restituisce il carattere più a destra di un valore di testo +SEARCH = RICERCA ## Rileva un valore di testo all'interno di un altro (non è sensibile alle maiuscole e minuscole) +SEARCHB = CERCA.B ## Rileva un valore di testo all'interno di un altro (non è sensibile alle maiuscole e minuscole) +SUBSTITUTE = SOSTITUISCI ## Sostituisce il nuovo testo al testo contenuto in una stringa +T = T ## Converte gli argomenti in testo +TEXT = TESTO ## Formatta un numero e lo converte in testo +TRIM = ANNULLA.SPAZI ## Elimina gli spazi dal testo +UPPER = MAIUSC ## Converte il testo in lettere maiuscole +VALUE = VALORE ## Converte un argomento di testo in numero diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/nl/config b/plugins/excel_reader/Classes/PHPExcel/locale/nl/config new file mode 100755 index 0000000..d56b38f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/nl/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = € + + +## +## Excel Error Codes (For future use) +## +NULL = #LEEG! +DIV0 = #DEEL/0! +VALUE = #WAARDE! +REF = #VERW! +NAME = #NAAM? +NUM = #GETAL! +NA = #N/B diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/nl/functions b/plugins/excel_reader/Classes/PHPExcel/locale/nl/functions new file mode 100755 index 0000000..6e94121 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/nl/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Automatiseringsfuncties en functies in invoegtoepassingen +## +GETPIVOTDATA = DRAAITABEL.OPHALEN ## Geeft gegevens uit een draaitabelrapport als resultaat + + +## +## Cube functions Kubusfuncties +## +CUBEKPIMEMBER = KUBUSKPILID ## Retourneert de naam, eigenschap en waarde van een KPI (prestatie-indicator) en geeft de naam en de eigenschap in de cel weer. Een KPI is een meetbare waarde, zoals de maandelijkse brutowinst of de omzet per kwartaal per werknemer, die wordt gebruikt om de prestaties van een organisatie te bewaken +CUBEMEMBER = KUBUSLID ## Retourneert een lid of tupel in een kubushiërarchie. Wordt gebruikt om te controleren of het lid of de tupel in de kubus aanwezig is +CUBEMEMBERPROPERTY = KUBUSLIDEIGENSCHAP ## Retourneert de waarde van een lideigenschap in de kubus. Wordt gebruikt om te controleren of de lidnaam in de kubus bestaat en retourneert de opgegeven eigenschap voor dit lid +CUBERANKEDMEMBER = KUBUSGERANGCHIKTLID ## Retourneert het zoveelste, gerangschikte lid in een set. Wordt gebruikt om een of meer elementen in een set te retourneren, zoals de tien beste verkopers of de tien beste studenten +CUBESET = KUBUSSET ## Definieert een berekende set leden of tupels door een ingestelde expressie naar de kubus op de server te sturen, alwaar de set wordt gemaakt en vervolgens wordt geretourneerd naar Microsoft Office Excel +CUBESETCOUNT = KUBUSSETAANTAL ## Retourneert het aantal onderdelen in een set +CUBEVALUE = KUBUSWAARDE ## Retourneert een samengestelde waarde van een kubus + + +## +## Database functions Databasefuncties +## +DAVERAGE = DBGEMIDDELDE ## Berekent de gemiddelde waarde in geselecteerde databasegegevens +DCOUNT = DBAANTAL ## Telt de cellen met getallen in een database +DCOUNTA = DBAANTALC ## Telt de niet-lege cellen in een database +DGET = DBLEZEN ## Retourneert één record dat voldoet aan de opgegeven criteria uit een database +DMAX = DBMAX ## Retourneert de maximumwaarde in de geselecteerde databasegegevens +DMIN = DBMIN ## Retourneert de minimumwaarde in de geselecteerde databasegegevens +DPRODUCT = DBPRODUCT ## Vermenigvuldigt de waarden in een bepaald veld van de records die voldoen aan de criteria in een database +DSTDEV = DBSTDEV ## Maakt een schatting van de standaarddeviatie op basis van een steekproef uit geselecteerde databasegegevens +DSTDEVP = DBSTDEVP ## Berekent de standaarddeviatie op basis van de volledige populatie van geselecteerde databasegegevens +DSUM = DBSOM ## Telt de getallen uit een kolom records in de database op die voldoen aan de criteria +DVAR = DBVAR ## Maakt een schatting van de variantie op basis van een steekproef uit geselecteerde databasegegevens +DVARP = DBVARP ## Berekent de variantie op basis van de volledige populatie van geselecteerde databasegegevens + + +## +## Date and time functions Datum- en tijdfuncties +## +DATE = DATUM ## Geeft als resultaat het seriële getal van een opgegeven datum +DATEVALUE = DATUMWAARDE ## Converteert een datum in de vorm van tekst naar een serieel getal +DAY = DAG ## Converteert een serieel getal naar een dag van de maand +DAYS360 = DAGEN360 ## Berekent het aantal dagen tussen twee datums op basis van een jaar met 360 dagen +EDATE = ZELFDE.DAG ## Geeft als resultaat het seriële getal van een datum die het opgegeven aantal maanden voor of na de begindatum ligt +EOMONTH = LAATSTE.DAG ## Geeft als resultaat het seriële getal van de laatste dag van de maand voor of na het opgegeven aantal maanden +HOUR = UUR ## Converteert een serieel getal naar uren +MINUTE = MINUUT ## Converteert een serieel naar getal minuten +MONTH = MAAND ## Converteert een serieel getal naar een maand +NETWORKDAYS = NETTO.WERKDAGEN ## Geeft als resultaat het aantal hele werkdagen tussen twee datums +NOW = NU ## Geeft als resultaat het seriële getal van de huidige datum en tijd +SECOND = SECONDE ## Converteert een serieel getal naar seconden +TIME = TIJD ## Geeft als resultaat het seriële getal van een bepaald tijdstip +TIMEVALUE = TIJDWAARDE ## Converteert de tijd in de vorm van tekst naar een serieel getal +TODAY = VANDAAG ## Geeft als resultaat het seriële getal van de huidige datum +WEEKDAY = WEEKDAG ## Converteert een serieel getal naar een weekdag +WEEKNUM = WEEKNUMMER ## Converteert een serieel getal naar een weeknummer +WORKDAY = WERKDAG ## Geeft als resultaat het seriële getal van de datum voor of na een bepaald aantal werkdagen +YEAR = JAAR ## Converteert een serieel getal naar een jaar +YEARFRAC = JAAR.DEEL ## Geeft als resultaat het gedeelte van het jaar, uitgedrukt in het aantal hele dagen tussen begindatum en einddatum + + +## +## Engineering functions Technische functies +## +BESSELI = BESSEL.Y ## Geeft als resultaat de gewijzigde Bessel-functie In(x) +BESSELJ = BESSEL.J ## Geeft als resultaat de Bessel-functie Jn(x) +BESSELK = BESSEL.K ## Geeft als resultaat de gewijzigde Bessel-functie Kn(x) +BESSELY = BESSEL.Y ## Geeft als resultaat de gewijzigde Bessel-functie Yn(x) +BIN2DEC = BIN.N.DEC ## Converteert een binair getal naar een decimaal getal +BIN2HEX = BIN.N.HEX ## Converteert een binair getal naar een hexadecimaal getal +BIN2OCT = BIN.N.OCT ## Converteert een binair getal naar een octaal getal +COMPLEX = COMPLEX ## Converteert reële en imaginaire coëfficiënten naar een complex getal +CONVERT = CONVERTEREN ## Converteert een getal in de ene maateenheid naar een getal in een andere maateenheid +DEC2BIN = DEC.N.BIN ## Converteert een decimaal getal naar een binair getal +DEC2HEX = DEC.N.HEX ## Converteert een decimaal getal naar een hexadecimaal getal +DEC2OCT = DEC.N.OCT ## Converteert een decimaal getal naar een octaal getal +DELTA = DELTA ## Test of twee waarden gelijk zijn +ERF = FOUTFUNCTIE ## Geeft als resultaat de foutfunctie +ERFC = FOUT.COMPLEMENT ## Geeft als resultaat de complementaire foutfunctie +GESTEP = GROTER.DAN ## Test of een getal groter is dan de drempelwaarde +HEX2BIN = HEX.N.BIN ## Converteert een hexadecimaal getal naar een binair getal +HEX2DEC = HEX.N.DEC ## Converteert een hexadecimaal getal naar een decimaal getal +HEX2OCT = HEX.N.OCT ## Converteert een hexadecimaal getal naar een octaal getal +IMABS = C.ABS ## Geeft als resultaat de absolute waarde (modulus) van een complex getal +IMAGINARY = C.IM.DEEL ## Geeft als resultaat de imaginaire coëfficiënt van een complex getal +IMARGUMENT = C.ARGUMENT ## Geeft als resultaat het argument thèta, een hoek uitgedrukt in radialen +IMCONJUGATE = C.TOEGEVOEGD ## Geeft als resultaat het complexe toegevoegde getal van een complex getal +IMCOS = C.COS ## Geeft als resultaat de cosinus van een complex getal +IMDIV = C.QUOTIENT ## Geeft als resultaat het quotiënt van twee complexe getallen +IMEXP = C.EXP ## Geeft als resultaat de exponent van een complex getal +IMLN = C.LN ## Geeft als resultaat de natuurlijke logaritme van een complex getal +IMLOG10 = C.LOG10 ## Geeft als resultaat de logaritme met grondtal 10 van een complex getal +IMLOG2 = C.LOG2 ## Geeft als resultaat de logaritme met grondtal 2 van een complex getal +IMPOWER = C.MACHT ## Geeft als resultaat een complex getal dat is verheven tot de macht van een geheel getal +IMPRODUCT = C.PRODUCT ## Geeft als resultaat het product van complexe getallen +IMREAL = C.REEEL.DEEL ## Geeft als resultaat de reële coëfficiënt van een complex getal +IMSIN = C.SIN ## Geeft als resultaat de sinus van een complex getal +IMSQRT = C.WORTEL ## Geeft als resultaat de vierkantswortel van een complex getal +IMSUB = C.VERSCHIL ## Geeft als resultaat het verschil tussen twee complexe getallen +IMSUM = C.SOM ## Geeft als resultaat de som van complexe getallen +OCT2BIN = OCT.N.BIN ## Converteert een octaal getal naar een binair getal +OCT2DEC = OCT.N.DEC ## Converteert een octaal getal naar een decimaal getal +OCT2HEX = OCT.N.HEX ## Converteert een octaal getal naar een hexadecimaal getal + + +## +## Financial functions Financiële functies +## +ACCRINT = SAMENG.RENTE ## Berekent de opgelopen rente voor een waardepapier waarvan de rente periodiek wordt uitgekeerd +ACCRINTM = SAMENG.RENTE.V ## Berekent de opgelopen rente voor een waardepapier waarvan de rente op de vervaldatum wordt uitgekeerd +AMORDEGRC = AMORDEGRC ## Geeft als resultaat de afschrijving voor elke boekingsperiode door een afschrijvingscoëfficiënt toe te passen +AMORLINC = AMORLINC ## Berekent de afschrijving voor elke boekingsperiode +COUPDAYBS = COUP.DAGEN.BB ## Berekent het aantal dagen vanaf het begin van de coupontermijn tot de stortingsdatum +COUPDAYS = COUP.DAGEN ## Geeft als resultaat het aantal dagen in de coupontermijn waarin de stortingsdatum valt +COUPDAYSNC = COUP.DAGEN.VV ## Geeft als resultaat het aantal dagen vanaf de stortingsdatum tot de volgende couponvervaldatum +COUPNCD = COUP.DATUM.NB ## Geeft als resultaat de volgende coupondatum na de stortingsdatum +COUPNUM = COUP.AANTAL ## Geeft als resultaat het aantal coupons dat nog moet worden uitbetaald tussen de stortingsdatum en de vervaldatum +COUPPCD = COUP.DATUM.VB ## Geeft als resultaat de vorige couponvervaldatum vóór de stortingsdatum +CUMIPMT = CUM.RENTE ## Geeft als resultaat de cumulatieve rente die tussen twee termijnen is uitgekeerd +CUMPRINC = CUM.HOOFDSOM ## Geeft als resultaat de cumulatieve hoofdsom van een lening die tussen twee termijnen is terugbetaald +DB = DB ## Geeft als resultaat de afschrijving van activa voor een bepaalde periode met behulp van de 'fixed declining balance'-methode +DDB = DDB ## Geeft als resultaat de afschrijving van activa over een bepaalde termijn met behulp van de 'double declining balance'-methode of een andere methode die u opgeeft +DISC = DISCONTO ## Geeft als resultaat het discontopercentage voor een waardepapier +DOLLARDE = EURO.DE ## Converteert een prijs in euro's, uitgedrukt in een breuk, naar een prijs in euro's, uitgedrukt in een decimaal getal +DOLLARFR = EURO.BR ## Converteert een prijs in euro's, uitgedrukt in een decimaal getal, naar een prijs in euro's, uitgedrukt in een breuk +DURATION = DUUR ## Geeft als resultaat de gewogen gemiddelde looptijd voor een waardepapier met periodieke rentebetalingen +EFFECT = EFFECT.RENTE ## Geeft als resultaat het effectieve jaarlijkse rentepercentage +FV = TW ## Geeft als resultaat de toekomstige waarde van een investering +FVSCHEDULE = TOEK.WAARDE2 ## Geeft als resultaat de toekomstige waarde van een bepaalde hoofdsom na het toepassen van een reeks samengestelde rentepercentages +INTRATE = RENTEPERCENTAGE ## Geeft als resultaat het rentepercentage voor een volgestort waardepapier +IPMT = IBET ## Geeft als resultaat de te betalen rente voor een investering over een bepaalde termijn +IRR = IR ## Geeft als resultaat de interne rentabiliteit voor een reeks cashflows +ISPMT = ISBET ## Geeft als resultaat de rente die is betaald tijdens een bepaalde termijn van een investering +MDURATION = AANG.DUUR ## Geeft als resultaat de aangepaste Macauley-looptijd voor een waardepapier, aangenomen dat de nominale waarde € 100 bedraagt +MIRR = GIR ## Geeft als resultaat de interne rentabiliteit voor een serie cashflows, waarbij voor betalingen een ander rentepercentage geldt dan voor inkomsten +NOMINAL = NOMINALE.RENTE ## Geeft als resultaat het nominale jaarlijkse rentepercentage +NPER = NPER ## Geeft als resultaat het aantal termijnen van een investering +NPV = NHW ## Geeft als resultaat de netto huidige waarde van een investering op basis van een reeks periodieke cashflows en een discontopercentage +ODDFPRICE = AFW.ET.PRIJS ## Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier met een afwijkende eerste termijn +ODDFYIELD = AFW.ET.REND ## Geeft als resultaat het rendement voor een waardepapier met een afwijkende eerste termijn +ODDLPRICE = AFW.LT.PRIJS ## Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier met een afwijkende laatste termijn +ODDLYIELD = AFW.LT.REND ## Geeft als resultaat het rendement voor een waardepapier met een afwijkende laatste termijn +PMT = BET ## Geeft als resultaat de periodieke betaling voor een annuïteit +PPMT = PBET ## Geeft als resultaat de afbetaling op de hoofdsom voor een bepaalde termijn +PRICE = PRIJS.NOM ## Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier waarvan de rente periodiek wordt uitgekeerd +PRICEDISC = PRIJS.DISCONTO ## Geeft als resultaat de prijs per € 100 nominale waarde voor een verdisconteerd waardepapier +PRICEMAT = PRIJS.VERVALDAG ## Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier waarvan de rente wordt uitgekeerd op de vervaldatum +PV = HW ## Geeft als resultaat de huidige waarde van een investering +RATE = RENTE ## Geeft als resultaat het periodieke rentepercentage voor een annuïteit +RECEIVED = OPBRENGST ## Geeft als resultaat het bedrag dat op de vervaldatum wordt uitgekeerd voor een volgestort waardepapier +SLN = LIN.AFSCHR ## Geeft als resultaat de lineaire afschrijving van activa over één termijn +SYD = SYD ## Geeft als resultaat de afschrijving van activa over een bepaalde termijn met behulp van de 'Sum-Of-Years-Digits'-methode +TBILLEQ = SCHATK.OBL ## Geeft als resultaat het rendement op schatkistpapier, dat op dezelfde manier wordt berekend als het rendement op obligaties +TBILLPRICE = SCHATK.PRIJS ## Bepaalt de prijs per € 100 nominale waarde voor schatkistpapier +TBILLYIELD = SCHATK.REND ## Berekent het rendement voor schatkistpapier +VDB = VDB ## Geeft als resultaat de afschrijving van activa over een gehele of gedeeltelijke termijn met behulp van de 'declining balance'-methode +XIRR = IR.SCHEMA ## Berekent de interne rentabiliteit voor een betalingsschema van cashflows +XNPV = NHW2 ## Berekent de huidige nettowaarde voor een betalingsschema van cashflows +YIELD = RENDEMENT ## Geeft als resultaat het rendement voor een waardepapier waarvan de rente periodiek wordt uitgekeerd +YIELDDISC = REND.DISCONTO ## Geeft als resultaat het jaarlijkse rendement voor een verdisconteerd waardepapier, bijvoorbeeld schatkistpapier +YIELDMAT = REND.VERVAL ## Geeft als resultaat het jaarlijkse rendement voor een waardepapier waarvan de rente wordt uitgekeerd op de vervaldatum + + +## +## Information functions Informatiefuncties +## +CELL = CEL ## Geeft als resultaat informatie over de opmaak, locatie of inhoud van een cel +ERROR.TYPE = TYPE.FOUT ## Geeft als resultaat een getal dat overeenkomt met een van de foutwaarden van Microsoft Excel +INFO = INFO ## Geeft als resultaat informatie over de huidige besturingsomgeving +ISBLANK = ISLEEG ## Geeft als resultaat WAAR als de waarde leeg is +ISERR = ISFOUT2 ## Geeft als resultaat WAAR als de waarde een foutwaarde is, met uitzondering van #N/B +ISERROR = ISFOUT ## Geeft als resultaat WAAR als de waarde een foutwaarde is +ISEVEN = IS.EVEN ## Geeft als resultaat WAAR als het getal even is +ISLOGICAL = ISLOGISCH ## Geeft als resultaat WAAR als de waarde een logische waarde is +ISNA = ISNB ## Geeft als resultaat WAAR als de waarde de foutwaarde #N/B is +ISNONTEXT = ISGEENTEKST ## Geeft als resultaat WAAR als de waarde geen tekst is +ISNUMBER = ISGETAL ## Geeft als resultaat WAAR als de waarde een getal is +ISODD = IS.ONEVEN ## Geeft als resultaat WAAR als het getal oneven is +ISREF = ISVERWIJZING ## Geeft als resultaat WAAR als de waarde een verwijzing is +ISTEXT = ISTEKST ## Geeft als resultaat WAAR als de waarde tekst is +N = N ## Geeft als resultaat een waarde die is geconverteerd naar een getal +NA = NB ## Geeft als resultaat de foutwaarde #N/B +TYPE = TYPE ## Geeft als resultaat een getal dat het gegevenstype van een waarde aangeeft + + +## +## Logical functions Logische functies +## +AND = EN ## Geeft als resultaat WAAR als alle argumenten WAAR zijn +FALSE = ONWAAR ## Geeft als resultaat de logische waarde ONWAAR +IF = ALS ## Geeft een logische test aan +IFERROR = ALS.FOUT ## Retourneert een waarde die u opgeeft als een formule een fout oplevert, anders wordt het resultaat van de formule geretourneerd +NOT = NIET ## Keert de logische waarde van het argument om +OR = OF ## Geeft als resultaat WAAR als minimaal een van de argumenten WAAR is +TRUE = WAAR ## Geeft als resultaat de logische waarde WAAR + + +## +## Lookup and reference functions Zoek- en verwijzingsfuncties +## +ADDRESS = ADRES ## Geeft als resultaat een verwijzing, in de vorm van tekst, naar één bepaalde cel in een werkblad +AREAS = BEREIKEN ## Geeft als resultaat het aantal bereiken in een verwijzing +CHOOSE = KIEZEN ## Kiest een waarde uit een lijst met waarden +COLUMN = KOLOM ## Geeft als resultaat het kolomnummer van een verwijzing +COLUMNS = KOLOMMEN ## Geeft als resultaat het aantal kolommen in een verwijzing +HLOOKUP = HORIZ.ZOEKEN ## Zoekt in de bovenste rij van een matrix naar een bepaalde waarde en geeft als resultaat de gevonden waarde in de opgegeven cel +HYPERLINK = HYPERLINK ## Maakt een snelkoppeling of een sprong waarmee een document wordt geopend dat is opgeslagen op een netwerkserver, een intranet of op internet +INDEX = INDEX ## Kiest met een index een waarde uit een verwijzing of een matrix +INDIRECT = INDIRECT ## Geeft als resultaat een verwijzing die wordt aangegeven met een tekstwaarde +LOOKUP = ZOEKEN ## Zoekt naar bepaalde waarden in een vector of een matrix +MATCH = VERGELIJKEN ## Zoekt naar bepaalde waarden in een verwijzing of een matrix +OFFSET = VERSCHUIVING ## Geeft als resultaat een nieuwe verwijzing die is verschoven ten opzichte van een bepaalde verwijzing +ROW = RIJ ## Geeft als resultaat het rijnummer van een verwijzing +ROWS = RIJEN ## Geeft als resultaat het aantal rijen in een verwijzing +RTD = RTG ## Haalt realtimegegevens op uit een programma dat COM-automatisering (automatisering: een methode waarmee de ene toepassing objecten van een andere toepassing of ontwikkelprogramma kan besturen. Automatisering werd vroeger OLE-automatisering genoemd. Automatisering is een industrienorm die deel uitmaakt van het Component Object Model (COM).) ondersteunt +TRANSPOSE = TRANSPONEREN ## Geeft als resultaat de getransponeerde van een matrix +VLOOKUP = VERT.ZOEKEN ## Zoekt in de meest linkse kolom van een matrix naar een bepaalde waarde en geeft als resultaat de waarde in de opgegeven cel + + +## +## Math and trigonometry functions Wiskundige en trigonometrische functies +## +ABS = ABS ## Geeft als resultaat de absolute waarde van een getal +ACOS = BOOGCOS ## Geeft als resultaat de boogcosinus van een getal +ACOSH = BOOGCOSH ## Geeft als resultaat de inverse cosinus hyperbolicus van een getal +ASIN = BOOGSIN ## Geeft als resultaat de boogsinus van een getal +ASINH = BOOGSINH ## Geeft als resultaat de inverse sinus hyperbolicus van een getal +ATAN = BOOGTAN ## Geeft als resultaat de boogtangens van een getal +ATAN2 = BOOGTAN2 ## Geeft als resultaat de boogtangens van de x- en y-coördinaten +ATANH = BOOGTANH ## Geeft als resultaat de inverse tangens hyperbolicus van een getal +CEILING = AFRONDEN.BOVEN ## Rondt de absolute waarde van een getal naar boven af op het dichtstbijzijnde gehele getal of het dichtstbijzijnde significante veelvoud +COMBIN = COMBINATIES ## Geeft als resultaat het aantal combinaties voor een bepaald aantal objecten +COS = COS ## Geeft als resultaat de cosinus van een getal +COSH = COSH ## Geeft als resultaat de cosinus hyperbolicus van een getal +DEGREES = GRADEN ## Converteert radialen naar graden +EVEN = EVEN ## Rondt het getal af op het dichtstbijzijnde gehele even getal +EXP = EXP ## Verheft e tot de macht van een bepaald getal +FACT = FACULTEIT ## Geeft als resultaat de faculteit van een getal +FACTDOUBLE = DUBBELE.FACULTEIT ## Geeft als resultaat de dubbele faculteit van een getal +FLOOR = AFRONDEN.BENEDEN ## Rondt de absolute waarde van een getal naar beneden af +GCD = GGD ## Geeft als resultaat de grootste gemene deler +INT = INTEGER ## Rondt een getal naar beneden af op het dichtstbijzijnde gehele getal +LCM = KGV ## Geeft als resultaat het kleinste gemene veelvoud +LN = LN ## Geeft als resultaat de natuurlijke logaritme van een getal +LOG = LOG ## Geeft als resultaat de logaritme met het opgegeven grondtal van een getal +LOG10 = LOG10 ## Geeft als resultaat de logaritme met grondtal 10 van een getal +MDETERM = DETERMINANTMAT ## Geeft als resultaat de determinant van een matrix +MINVERSE = INVERSEMAT ## Geeft als resultaat de inverse van een matrix +MMULT = PRODUCTMAT ## Geeft als resultaat het product van twee matrices +MOD = REST ## Geeft als resultaat het restgetal van een deling +MROUND = AFRONDEN.N.VEELVOUD ## Geeft als resultaat een getal afgerond op het gewenste veelvoud +MULTINOMIAL = MULTINOMIAAL ## Geeft als resultaat de multinomiaalcoëfficiënt van een reeks getallen +ODD = ONEVEN ## Rondt de absolute waarde van het getal naar boven af op het dichtstbijzijnde gehele oneven getal +PI = PI ## Geeft als resultaat de waarde van pi +POWER = MACHT ## Verheft een getal tot een macht +PRODUCT = PRODUCT ## Vermenigvuldigt de argumenten met elkaar +QUOTIENT = QUOTIENT ## Geeft als resultaat de uitkomst van een deling als geheel getal +RADIANS = RADIALEN ## Converteert graden naar radialen +RAND = ASELECT ## Geeft als resultaat een willekeurig getal tussen 0 en 1 +RANDBETWEEN = ASELECTTUSSEN ## Geeft een willekeurig getal tussen de getallen die u hebt opgegeven +ROMAN = ROMEINS ## Converteert een Arabisch getal naar een Romeins getal en geeft het resultaat weer in de vorm van tekst +ROUND = AFRONDEN ## Rondt een getal af op het opgegeven aantal decimalen +ROUNDDOWN = AFRONDEN.NAAR.BENEDEN ## Rondt de absolute waarde van een getal naar beneden af +ROUNDUP = AFRONDEN.NAAR.BOVEN ## Rondt de absolute waarde van een getal naar boven af +SERIESSUM = SOM.MACHTREEKS ## Geeft als resultaat de som van een machtreeks die is gebaseerd op de formule +SIGN = POS.NEG ## Geeft als resultaat het teken van een getal +SIN = SIN ## Geeft als resultaat de sinus van de opgegeven hoek +SINH = SINH ## Geeft als resultaat de sinus hyperbolicus van een getal +SQRT = WORTEL ## Geeft als resultaat de positieve vierkantswortel van een getal +SQRTPI = WORTEL.PI ## Geeft als resultaat de vierkantswortel van (getal * pi) +SUBTOTAL = SUBTOTAAL ## Geeft als resultaat een subtotaal voor een bereik +SUM = SOM ## Telt de argumenten op +SUMIF = SOM.ALS ## Telt de getallen bij elkaar op die voldoen aan een bepaald criterium +SUMIFS = SOMMEN.ALS ## Telt de cellen in een bereik op die aan meerdere criteria voldoen +SUMPRODUCT = SOMPRODUCT ## Geeft als resultaat de som van de producten van de corresponderende matrixelementen +SUMSQ = KWADRATENSOM ## Geeft als resultaat de som van de kwadraten van de argumenten +SUMX2MY2 = SOM.X2MINY2 ## Geeft als resultaat de som van het verschil tussen de kwadraten van corresponderende waarden in twee matrices +SUMX2PY2 = SOM.X2PLUSY2 ## Geeft als resultaat de som van de kwadratensom van corresponderende waarden in twee matrices +SUMXMY2 = SOM.XMINY.2 ## Geeft als resultaat de som van de kwadraten van de verschillen tussen de corresponderende waarden in twee matrices +TAN = TAN ## Geeft als resultaat de tangens van een getal +TANH = TANH ## Geeft als resultaat de tangens hyperbolicus van een getal +TRUNC = GEHEEL ## Kapt een getal af tot een geheel getal + + +## +## Statistical functions Statistische functies +## +AVEDEV = GEM.DEVIATIE ## Geeft als resultaat het gemiddelde van de absolute deviaties van gegevenspunten ten opzichte van hun gemiddelde waarde +AVERAGE = GEMIDDELDE ## Geeft als resultaat het gemiddelde van de argumenten +AVERAGEA = GEMIDDELDEA ## Geeft als resultaat het gemiddelde van de argumenten, inclusief getallen, tekst en logische waarden +AVERAGEIF = GEMIDDELDE.ALS ## Geeft het gemiddelde (rekenkundig gemiddelde) als resultaat van alle cellen in een bereik die voldoen aan de opgegeven criteria +AVERAGEIFS = GEMIDDELDEN.ALS ## Geeft het gemiddelde (rekenkundig gemiddelde) als resultaat van alle cellen die aan meerdere criteria voldoen +BETADIST = BETA.VERD ## Geeft als resultaat de cumulatieve bèta-verdelingsfunctie +BETAINV = BETA.INV ## Geeft als resultaat de inverse van de cumulatieve verdelingsfunctie voor een gegeven bèta-verdeling +BINOMDIST = BINOMIALE.VERD ## Geeft als resultaat de binomiale verdeling +CHIDIST = CHI.KWADRAAT ## Geeft als resultaat de eenzijdige kans van de chi-kwadraatverdeling +CHIINV = CHI.KWADRAAT.INV ## Geeft als resultaat de inverse van een eenzijdige kans van de chi-kwadraatverdeling +CHITEST = CHI.TOETS ## Geeft als resultaat de onafhankelijkheidstoets +CONFIDENCE = BETROUWBAARHEID ## Geeft als resultaat het betrouwbaarheidsinterval van een gemiddelde waarde voor de elementen van een populatie +CORREL = CORRELATIE ## Geeft als resultaat de correlatiecoëfficiënt van twee gegevensverzamelingen +COUNT = AANTAL ## Telt het aantal getallen in de argumentenlijst +COUNTA = AANTALARG ## Telt het aantal waarden in de argumentenlijst +COUNTBLANK = AANTAL.LEGE.CELLEN ## Telt het aantal lege cellen in een bereik +COUNTIF = AANTAL.ALS ## Telt in een bereik het aantal cellen die voldoen aan een bepaald criterium +COUNTIFS = AANTALLEN.ALS ## Telt in een bereik het aantal cellen die voldoen aan meerdere criteria +COVAR = COVARIANTIE ## Geeft als resultaat de covariantie, het gemiddelde van de producten van de gepaarde deviaties +CRITBINOM = CRIT.BINOM ## Geeft als resultaat de kleinste waarde waarvoor de binomiale verdeling kleiner is dan of gelijk is aan het criterium +DEVSQ = DEV.KWAD ## Geeft als resultaat de som van de deviaties in het kwadraat +EXPONDIST = EXPON.VERD ## Geeft als resultaat de exponentiële verdeling +FDIST = F.VERDELING ## Geeft als resultaat de F-verdeling +FINV = F.INVERSE ## Geeft als resultaat de inverse van de F-verdeling +FISHER = FISHER ## Geeft als resultaat de Fisher-transformatie +FISHERINV = FISHER.INV ## Geeft als resultaat de inverse van de Fisher-transformatie +FORECAST = VOORSPELLEN ## Geeft als resultaat een waarde op basis van een lineaire trend +FREQUENCY = FREQUENTIE ## Geeft als resultaat een frequentieverdeling in de vorm van een verticale matrix +FTEST = F.TOETS ## Geeft als resultaat een F-toets +GAMMADIST = GAMMA.VERD ## Geeft als resultaat de gamma-verdeling +GAMMAINV = GAMMA.INV ## Geeft als resultaat de inverse van de cumulatieve gamma-verdeling +GAMMALN = GAMMA.LN ## Geeft als resultaat de natuurlijke logaritme van de gamma-functie, G(x) +GEOMEAN = MEETK.GEM ## Geeft als resultaat het meetkundige gemiddelde +GROWTH = GROEI ## Geeft als resultaat de waarden voor een exponentiële trend +HARMEAN = HARM.GEM ## Geeft als resultaat het harmonische gemiddelde +HYPGEOMDIST = HYPERGEO.VERD ## Geeft als resultaat de hypergeometrische verdeling +INTERCEPT = SNIJPUNT ## Geeft als resultaat het snijpunt van de lineaire regressielijn met de y-as +KURT = KURTOSIS ## Geeft als resultaat de kurtosis van een gegevensverzameling +LARGE = GROOTSTE ## Geeft als resultaat de op k-1 na grootste waarde in een gegevensverzameling +LINEST = LIJNSCH ## Geeft als resultaat de parameters van een lineaire trend +LOGEST = LOGSCH ## Geeft als resultaat de parameters van een exponentiële trend +LOGINV = LOG.NORM.INV ## Geeft als resultaat de inverse van de logaritmische normale verdeling +LOGNORMDIST = LOG.NORM.VERD ## Geeft als resultaat de cumulatieve logaritmische normale verdeling +MAX = MAX ## Geeft als resultaat de maximumwaarde in een lijst met argumenten +MAXA = MAXA ## Geeft als resultaat de maximumwaarde in een lijst met argumenten, inclusief getallen, tekst en logische waarden +MEDIAN = MEDIAAN ## Geeft als resultaat de mediaan van de opgegeven getallen +MIN = MIN ## Geeft als resultaat de minimumwaarde in een lijst met argumenten +MINA = MINA ## Geeft als resultaat de minimumwaarde in een lijst met argumenten, inclusief getallen, tekst en logische waarden +MODE = MODUS ## Geeft als resultaat de meest voorkomende waarde in een gegevensverzameling +NEGBINOMDIST = NEG.BINOM.VERD ## Geeft als resultaat de negatieve binomiaalverdeling +NORMDIST = NORM.VERD ## Geeft als resultaat de cumulatieve normale verdeling +NORMINV = NORM.INV ## Geeft als resultaat de inverse van de cumulatieve standaardnormale verdeling +NORMSDIST = STAND.NORM.VERD ## Geeft als resultaat de cumulatieve standaardnormale verdeling +NORMSINV = STAND.NORM.INV ## Geeft als resultaat de inverse van de cumulatieve normale verdeling +PEARSON = PEARSON ## Geeft als resultaat de correlatiecoëfficiënt van Pearson +PERCENTILE = PERCENTIEL ## Geeft als resultaat het k-de percentiel van waarden in een bereik +PERCENTRANK = PERCENT.RANG ## Geeft als resultaat de positie, in procenten uitgedrukt, van een waarde in de rangorde van een gegevensverzameling +PERMUT = PERMUTATIES ## Geeft als resultaat het aantal permutaties voor een gegeven aantal objecten +POISSON = POISSON ## Geeft als resultaat de Poisson-verdeling +PROB = KANS ## Geeft als resultaat de kans dat waarden zich tussen twee grenzen bevinden +QUARTILE = KWARTIEL ## Geeft als resultaat het kwartiel van een gegevensverzameling +RANK = RANG ## Geeft als resultaat het rangnummer van een getal in een lijst getallen +RSQ = R.KWADRAAT ## Geeft als resultaat het kwadraat van de Pearson-correlatiecoëfficiënt +SKEW = SCHEEFHEID ## Geeft als resultaat de mate van asymmetrie van een verdeling +SLOPE = RICHTING ## Geeft als resultaat de richtingscoëfficiënt van een lineaire regressielijn +SMALL = KLEINSTE ## Geeft als resultaat de op k-1 na kleinste waarde in een gegevensverzameling +STANDARDIZE = NORMALISEREN ## Geeft als resultaat een genormaliseerde waarde +STDEV = STDEV ## Maakt een schatting van de standaarddeviatie op basis van een steekproef +STDEVA = STDEVA ## Maakt een schatting van de standaarddeviatie op basis van een steekproef, inclusief getallen, tekst en logische waarden +STDEVP = STDEVP ## Berekent de standaarddeviatie op basis van de volledige populatie +STDEVPA = STDEVPA ## Berekent de standaarddeviatie op basis van de volledige populatie, inclusief getallen, tekst en logische waarden +STEYX = STAND.FOUT.YX ## Geeft als resultaat de standaardfout in de voorspelde y-waarde voor elke x in een regressie +TDIST = T.VERD ## Geeft als resultaat de Student T-verdeling +TINV = T.INV ## Geeft als resultaat de inverse van de Student T-verdeling +TREND = TREND ## Geeft als resultaat de waarden voor een lineaire trend +TRIMMEAN = GETRIMD.GEM ## Geeft als resultaat het gemiddelde van waarden in een gegevensverzameling +TTEST = T.TOETS ## Geeft als resultaat de kans met behulp van de Student T-toets +VAR = VAR ## Maakt een schatting van de variantie op basis van een steekproef +VARA = VARA ## Maakt een schatting van de variantie op basis van een steekproef, inclusief getallen, tekst en logische waarden +VARP = VARP ## Berekent de variantie op basis van de volledige populatie +VARPA = VARPA ## Berekent de standaarddeviatie op basis van de volledige populatie, inclusief getallen, tekst en logische waarden +WEIBULL = WEIBULL ## Geeft als resultaat de Weibull-verdeling +ZTEST = Z.TOETS ## Geeft als resultaat de eenzijdige kanswaarde van een Z-toets + + +## +## Text functions Tekstfuncties +## +ASC = ASC ## Wijzigt Nederlandse letters of katakanatekens over de volle breedte (dubbel-bytetekens) binnen een tekenreeks in tekens over de halve breedte (enkel-bytetekens) +BAHTTEXT = BAHT.TEKST ## Converteert een getal naar tekst met de valutanotatie ß (baht) +CHAR = TEKEN ## Geeft als resultaat het teken dat hoort bij de opgegeven code +CLEAN = WISSEN.CONTROL ## Verwijdert alle niet-afdrukbare tekens uit een tekst +CODE = CODE ## Geeft als resultaat de numerieke code voor het eerste teken in een tekenreeks +CONCATENATE = TEKST.SAMENVOEGEN ## Voegt verschillende tekstfragmenten samen tot één tekstfragment +DOLLAR = EURO ## Converteert een getal naar tekst met de valutanotatie € (euro) +EXACT = GELIJK ## Controleert of twee tekenreeksen identiek zijn +FIND = VIND.ALLES ## Zoekt een bepaalde tekenreeks in een tekst (waarbij onderscheid wordt gemaakt tussen hoofdletters en kleine letters) +FINDB = VIND.ALLES.B ## Zoekt een bepaalde tekenreeks in een tekst (waarbij onderscheid wordt gemaakt tussen hoofdletters en kleine letters) +FIXED = VAST ## Maakt een getal als tekst met een vast aantal decimalen op +JIS = JIS ## Wijzigt Nederlandse letters of katakanatekens over de halve breedte (enkel-bytetekens) binnen een tekenreeks in tekens over de volle breedte (dubbel-bytetekens) +LEFT = LINKS ## Geeft als resultaat de meest linkse tekens in een tekenreeks +LEFTB = LINKSB ## Geeft als resultaat de meest linkse tekens in een tekenreeks +LEN = LENGTE ## Geeft als resultaat het aantal tekens in een tekenreeks +LENB = LENGTEB ## Geeft als resultaat het aantal tekens in een tekenreeks +LOWER = KLEINE.LETTERS ## Zet tekst om in kleine letters +MID = MIDDEN ## Geeft als resultaat een bepaald aantal tekens van een tekenreeks vanaf de positie die u opgeeft +MIDB = DEELB ## Geeft als resultaat een bepaald aantal tekens van een tekenreeks vanaf de positie die u opgeeft +PHONETIC = FONETISCH ## Haalt de fonetische tekens (furigana) uit een tekenreeks op +PROPER = BEGINLETTERS ## Zet de eerste letter van elk woord in een tekst om in een hoofdletter +REPLACE = VERVANG ## Vervangt tekens binnen een tekst +REPLACEB = VERVANGENB ## Vervangt tekens binnen een tekst +REPT = HERHALING ## Herhaalt een tekst een aantal malen +RIGHT = RECHTS ## Geeft als resultaat de meest rechtse tekens in een tekenreeks +RIGHTB = RECHTSB ## Geeft als resultaat de meest rechtse tekens in een tekenreeks +SEARCH = VIND.SPEC ## Zoekt een bepaalde tekenreeks in een tekst (waarbij geen onderscheid wordt gemaakt tussen hoofdletters en kleine letters) +SEARCHB = VIND.SPEC.B ## Zoekt een bepaalde tekenreeks in een tekst (waarbij geen onderscheid wordt gemaakt tussen hoofdletters en kleine letters) +SUBSTITUTE = SUBSTITUEREN ## Vervangt oude tekst door nieuwe tekst in een tekenreeks +T = T ## Converteert de argumenten naar tekst +TEXT = TEKST ## Maakt een getal op en converteert het getal naar tekst +TRIM = SPATIES.WISSEN ## Verwijdert de spaties uit een tekst +UPPER = HOOFDLETTERS ## Zet tekst om in hoofdletters +VALUE = WAARDE ## Converteert tekst naar een getal diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/no/config b/plugins/excel_reader/Classes/PHPExcel/locale/no/config new file mode 100755 index 0000000..482e4bc --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/no/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = kr + + +## +## Excel Error Codes (For future use) +## +NULL = #NULL! +DIV0 = #DIV/0! +VALUE = #VERDI! +REF = #REF! +NAME = #NAVN? +NUM = #NUM! +NA = #I/T diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/no/functions b/plugins/excel_reader/Classes/PHPExcel/locale/no/functions new file mode 100755 index 0000000..eb5ae02 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/no/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Funksjonene Tillegg og Automatisering +## +GETPIVOTDATA = HENTPIVOTDATA ## Returnerer data som er lagret i en pivottabellrapport + + +## +## Cube functions Kubefunksjoner +## +CUBEKPIMEMBER = KUBEKPIMEDLEM ## Returnerer navnet, egenskapen og målet for en viktig ytelsesindikator (KPI), og viser navnet og egenskapen i cellen. En KPI er en målbar enhet, for eksempel månedlig bruttoinntjening eller kvartalsvis inntjening per ansatt, og brukes til å overvåke ytelsen i en organisasjon. +CUBEMEMBER = KUBEMEDLEM ## Returnerer et medlem eller en tuppel i et kubehierarki. Brukes til å validere at medlemmet eller tuppelen finnes i kuben. +CUBEMEMBERPROPERTY = KUBEMEDLEMEGENSKAP ## Returnerer verdien til en medlemsegenskap i kuben. Brukes til å validere at et medlemsnavn finnes i kuben, og til å returnere den angitte egenskapen for dette medlemmet. +CUBERANKEDMEMBER = KUBERANGERTMEDLEM ## Returnerer det n-te, eller rangerte, medlemmet i et sett. Brukes til å returnere ett eller flere elementer i et sett, for eksempel de 10 beste studentene. +CUBESET = KUBESETT ## Definerer et beregnet sett av medlemmer eller tuppeler ved å sende et settuttrykk til kuben på serveren, noe som oppretter settet og deretter returnerer dette settet til Microsoft Office Excel. +CUBESETCOUNT = KUBESETTANTALL ## Returnerer antallet elementer i et sett. +CUBEVALUE = KUBEVERDI ## Returnerer en aggregert verdi fra en kube. + + +## +## Database functions Databasefunksjoner +## +DAVERAGE = DGJENNOMSNITT ## Returnerer gjennomsnittet av merkede databaseposter +DCOUNT = DANTALL ## Teller celler som inneholder tall i en database +DCOUNTA = DANTALLA ## Teller celler som ikke er tomme i en database +DGET = DHENT ## Trekker ut fra en database en post som oppfyller angitte vilkår +DMAX = DMAKS ## Returnerer maksimumsverdien fra merkede databaseposter +DMIN = DMIN ## Returnerer minimumsverdien fra merkede databaseposter +DPRODUCT = DPRODUKT ## Multipliserer verdiene i et bestemt felt med poster som oppfyller vilkårene i en database +DSTDEV = DSTDAV ## Estimerer standardavviket basert på et utvalg av merkede databaseposter +DSTDEVP = DSTAVP ## Beregner standardavviket basert på at merkede databaseposter utgjør hele populasjonen +DSUM = DSUMMER ## Legger til tallene i feltkolonnen med poster, i databasen som oppfyller vilkårene +DVAR = DVARIANS ## Estimerer variansen basert på et utvalg av merkede databaseposter +DVARP = DVARIANSP ## Beregner variansen basert på at merkede databaseposter utgjør hele populasjonen + + +## +## Date and time functions Dato- og tidsfunksjoner +## +DATE = DATO ## Returnerer serienummeret som svarer til en bestemt dato +DATEVALUE = DATOVERDI ## Konverterer en dato med tekstformat til et serienummer +DAY = DAG ## Konverterer et serienummer til en dag i måneden +DAYS360 = DAGER360 ## Beregner antall dager mellom to datoer basert på et år med 360 dager +EDATE = DAG.ETTER ## Returnerer serienummeret som svarer til datoen som er det indikerte antall måneder før eller etter startdatoen +EOMONTH = MÅNEDSSLUTT ## Returnerer serienummeret som svarer til siste dag i måneden, før eller etter et angitt antall måneder +HOUR = TIME ## Konverterer et serienummer til en time +MINUTE = MINUTT ## Konverterer et serienummer til et minutt +MONTH = MÅNED ## Konverterer et serienummer til en måned +NETWORKDAYS = NETT.ARBEIDSDAGER ## Returnerer antall hele arbeidsdager mellom to datoer +NOW = NÅ ## Returnerer serienummeret som svarer til gjeldende dato og klokkeslett +SECOND = SEKUND ## Konverterer et serienummer til et sekund +TIME = TID ## Returnerer serienummeret som svarer til et bestemt klokkeslett +TIMEVALUE = TIDSVERDI ## Konverterer et klokkeslett i tekstformat til et serienummer +TODAY = IDAG ## Returnerer serienummeret som svarer til dagens dato +WEEKDAY = UKEDAG ## Konverterer et serienummer til en ukedag +WEEKNUM = UKENR ## Konverterer et serienummer til et tall som representerer hvilket nummer uken har i et år +WORKDAY = ARBEIDSDAG ## Returnerer serienummeret som svarer til datoen før eller etter et angitt antall arbeidsdager +YEAR = ÅR ## Konverterer et serienummer til et år +YEARFRAC = ÅRDEL ## Returnerer brøkdelen for året, som svarer til antall hele dager mellom startdato og sluttdato + + +## +## Engineering functions Tekniske funksjoner +## +BESSELI = BESSELI ## Returnerer den endrede Bessel-funksjonen In(x) +BESSELJ = BESSELJ ## Returnerer Bessel-funksjonen Jn(x) +BESSELK = BESSELK ## Returnerer den endrede Bessel-funksjonen Kn(x) +BESSELY = BESSELY ## Returnerer Bessel-funksjonen Yn(x) +BIN2DEC = BINTILDES ## Konverterer et binært tall til et desimaltall +BIN2HEX = BINTILHEKS ## Konverterer et binært tall til et heksadesimaltall +BIN2OCT = BINTILOKT ## Konverterer et binært tall til et oktaltall +COMPLEX = KOMPLEKS ## Konverterer reelle og imaginære koeffisienter til et komplekst tall +CONVERT = KONVERTER ## Konverterer et tall fra ett målsystem til et annet +DEC2BIN = DESTILBIN ## Konverterer et desimaltall til et binærtall +DEC2HEX = DESTILHEKS ## Konverterer et heltall i 10-tallsystemet til et heksadesimalt tall +DEC2OCT = DESTILOKT ## Konverterer et heltall i 10-tallsystemet til et oktaltall +DELTA = DELTA ## Undersøker om to verdier er like +ERF = FEILF ## Returnerer feilfunksjonen +ERFC = FEILFK ## Returnerer den komplementære feilfunksjonen +GESTEP = GRENSEVERDI ## Tester om et tall er større enn en terskelverdi +HEX2BIN = HEKSTILBIN ## Konverterer et heksadesimaltall til et binært tall +HEX2DEC = HEKSTILDES ## Konverterer et heksadesimalt tall til et heltall i 10-tallsystemet +HEX2OCT = HEKSTILOKT ## Konverterer et heksadesimalt tall til et oktaltall +IMABS = IMABS ## Returnerer absoluttverdien (koeffisienten) til et komplekst tall +IMAGINARY = IMAGINÆR ## Returnerer den imaginære koeffisienten til et komplekst tall +IMARGUMENT = IMARGUMENT ## Returnerer argumentet theta, som er en vinkel uttrykt i radianer +IMCONJUGATE = IMKONJUGERT ## Returnerer den komplekse konjugaten til et komplekst tall +IMCOS = IMCOS ## Returnerer cosinus til et komplekst tall +IMDIV = IMDIV ## Returnerer kvotienten til to komplekse tall +IMEXP = IMEKSP ## Returnerer eksponenten til et komplekst tall +IMLN = IMLN ## Returnerer den naturlige logaritmen for et komplekst tall +IMLOG10 = IMLOG10 ## Returnerer logaritmen med grunntall 10 for et komplekst tall +IMLOG2 = IMLOG2 ## Returnerer logaritmen med grunntall 2 for et komplekst tall +IMPOWER = IMOPPHØY ## Returnerer et komplekst tall opphøyd til en heltallspotens +IMPRODUCT = IMPRODUKT ## Returnerer produktet av komplekse tall +IMREAL = IMREELL ## Returnerer den reelle koeffisienten til et komplekst tall +IMSIN = IMSIN ## Returnerer sinus til et komplekst tall +IMSQRT = IMROT ## Returnerer kvadratroten av et komplekst tall +IMSUB = IMSUB ## Returnerer differansen mellom to komplekse tall +IMSUM = IMSUMMER ## Returnerer summen av komplekse tall +OCT2BIN = OKTTILBIN ## Konverterer et oktaltall til et binært tall +OCT2DEC = OKTTILDES ## Konverterer et oktaltall til et desimaltall +OCT2HEX = OKTTILHEKS ## Konverterer et oktaltall til et heksadesimaltall + + +## +## Financial functions Økonomiske funksjoner +## +ACCRINT = PÅLØPT.PERIODISK.RENTE ## Returnerer påløpte renter for et verdipapir som betaler periodisk rente +ACCRINTM = PÅLØPT.FORFALLSRENTE ## Returnerer den påløpte renten for et verdipapir som betaler rente ved forfall +AMORDEGRC = AMORDEGRC ## Returnerer avskrivningen for hver regnskapsperiode ved hjelp av en avskrivingskoeffisient +AMORLINC = AMORLINC ## Returnerer avskrivingen for hver regnskapsperiode +COUPDAYBS = OBLIG.DAGER.FF ## Returnerer antall dager fra begynnelsen av den rentebærende perioden til innløsningsdatoen +COUPDAYS = OBLIG.DAGER ## Returnerer antall dager i den rentebærende perioden som inneholder innløsningsdatoen +COUPDAYSNC = OBLIG.DAGER.NF ## Returnerer antall dager fra betalingsdato til neste renteinnbetalingsdato +COUPNCD = OBLIG.DAGER.EF ## Returnerer obligasjonsdatoen som kommer etter oppgjørsdatoen +COUPNUM = OBLIG.ANTALL ## Returnerer antall obligasjoner som skal betales mellom oppgjørsdatoen og forfallsdatoen +COUPPCD = OBLIG.DAG.FORRIGE ## Returnerer obligasjonsdatoen som kommer før oppgjørsdatoen +CUMIPMT = SAMLET.RENTE ## Returnerer den kumulative renten som er betalt mellom to perioder +CUMPRINC = SAMLET.HOVEDSTOL ## Returnerer den kumulative hovedstolen som er betalt for et lån mellom to perioder +DB = DAVSKR ## Returnerer avskrivningen for et aktivum i en angitt periode, foretatt med fast degressiv avskrivning +DDB = DEGRAVS ## Returnerer avskrivningen for et aktivum for en gitt periode, ved hjelp av dobbel degressiv avskrivning eller en metode som du selv angir +DISC = DISKONTERT ## Returnerer diskonteringsraten for et verdipapir +DOLLARDE = DOLLARDE ## Konverterer en valutapris uttrykt som en brøk, til en valutapris uttrykt som et desimaltall +DOLLARFR = DOLLARBR ## Konverterer en valutapris uttrykt som et desimaltall, til en valutapris uttrykt som en brøk +DURATION = VARIGHET ## Returnerer årlig varighet for et verdipapir med renter som betales periodisk +EFFECT = EFFEKTIV.RENTE ## Returnerer den effektive årlige rentesatsen +FV = SLUTTVERDI ## Returnerer fremtidig verdi for en investering +FVSCHEDULE = SVPLAN ## Returnerer den fremtidige verdien av en inngående hovedstol etter å ha anvendt en serie med sammensatte rentesatser +INTRATE = RENTESATS ## Returnerer rentefoten av et fullfinansiert verdipapir +IPMT = RAVDRAG ## Returnerer betalte renter på en investering for en gitt periode +IRR = IR ## Returnerer internrenten for en serie kontantstrømmer +ISPMT = ER.AVDRAG ## Beregner renten som er betalt for en investering i løpet av en bestemt periode +MDURATION = MVARIGHET ## Returnerer Macauleys modifiserte varighet for et verdipapir med en antatt pålydende verdi på kr 100,00 +MIRR = MODIR ## Returnerer internrenten der positive og negative kontantstrømmer finansieres med forskjellige satser +NOMINAL = NOMINELL ## Returnerer årlig nominell rentesats +NPER = PERIODER ## Returnerer antall perioder for en investering +NPV = NNV ## Returnerer netto nåverdi for en investering, basert på en serie periodiske kontantstrømmer og en rentesats +ODDFPRICE = AVVIKFP.PRIS ## Returnerer pris pålydende kr 100 for et verdipapir med en odde første periode +ODDFYIELD = AVVIKFP.AVKASTNING ## Returnerer avkastingen for et verdipapir med en odde første periode +ODDLPRICE = AVVIKSP.PRIS ## Returnerer pris pålydende kr 100 for et verdipapir med en odde siste periode +ODDLYIELD = AVVIKSP.AVKASTNING ## Returnerer avkastingen for et verdipapir med en odde siste periode +PMT = AVDRAG ## Returnerer periodisk betaling for en annuitet +PPMT = AMORT ## Returnerer betalingen på hovedstolen for en investering i en gitt periode +PRICE = PRIS ## Returnerer prisen per pålydende kr 100 for et verdipapir som gir periodisk avkastning +PRICEDISC = PRIS.DISKONTERT ## Returnerer prisen per pålydende kr 100 for et diskontert verdipapir +PRICEMAT = PRIS.FORFALL ## Returnerer prisen per pålydende kr 100 av et verdipapir som betaler rente ved forfall +PV = NÅVERDI ## Returnerer nåverdien av en investering +RATE = RENTE ## Returnerer rentesatsen per periode for en annuitet +RECEIVED = MOTTATT.AVKAST ## Returnerer summen som mottas ved forfallsdato for et fullinvestert verdipapir +SLN = LINAVS ## Returnerer den lineære avskrivningen for et aktivum i én periode +SYD = ÅRSAVS ## Returnerer årsavskrivningen for et aktivum i en angitt periode +TBILLEQ = TBILLEKV ## Returnerer den obligasjonsekvivalente avkastningen for en statsobligasjon +TBILLPRICE = TBILLPRIS ## Returnerer prisen per pålydende kr 100 for en statsobligasjon +TBILLYIELD = TBILLAVKASTNING ## Returnerer avkastningen til en statsobligasjon +VDB = VERDIAVS ## Returnerer avskrivningen for et aktivum i en angitt periode eller delperiode, ved hjelp av degressiv avskrivning +XIRR = XIR ## Returnerer internrenten for en serie kontantstrømmer som ikke nødvendigvis er periodiske +XNPV = XNNV ## Returnerer netto nåverdi for en serie kontantstrømmer som ikke nødvendigvis er periodiske +YIELD = AVKAST ## Returnerer avkastningen på et verdipapir som betaler periodisk rente +YIELDDISC = AVKAST.DISKONTERT ## Returnerer årlig avkastning for et diskontert verdipapir, for eksempel en statskasseveksel +YIELDMAT = AVKAST.FORFALL ## Returnerer den årlige avkastningen for et verdipapir som betaler rente ved forfallsdato + + +## +## Information functions Informasjonsfunksjoner +## +CELL = CELLE ## Returnerer informasjon om formatering, plassering eller innholdet til en celle +ERROR.TYPE = FEIL.TYPE ## Returnerer et tall som svarer til en feiltype +INFO = INFO ## Returnerer informasjon om gjeldende operativmiljø +ISBLANK = ERTOM ## Returnerer SANN hvis verdien er tom +ISERR = ERFEIL ## Returnerer SANN hvis verdien er en hvilken som helst annen feilverdi enn #I/T +ISERROR = ERFEIL ## Returnerer SANN hvis verdien er en hvilken som helst feilverdi +ISEVEN = ERPARTALL ## Returnerer SANN hvis tallet er et partall +ISLOGICAL = ERLOGISK ## Returnerer SANN hvis verdien er en logisk verdi +ISNA = ERIT ## Returnerer SANN hvis verdien er feilverdien #I/T +ISNONTEXT = ERIKKETEKST ## Returnerer SANN hvis verdien ikke er tekst +ISNUMBER = ERTALL ## Returnerer SANN hvis verdien er et tall +ISODD = ERODDETALL ## Returnerer SANN hvis tallet er et oddetall +ISREF = ERREF ## Returnerer SANN hvis verdien er en referanse +ISTEXT = ERTEKST ## Returnerer SANN hvis verdien er tekst +N = N ## Returnerer en verdi som er konvertert til et tall +NA = IT ## Returnerer feilverdien #I/T +TYPE = VERDITYPE ## Returnerer et tall som indikerer datatypen til en verdi + + +## +## Logical functions Logiske funksjoner +## +AND = OG ## Returnerer SANN hvis alle argumentene er lik SANN +FALSE = USANN ## Returnerer den logiske verdien USANN +IF = HVIS ## Angir en logisk test som skal utføres +IFERROR = HVISFEIL ## Returnerer en verdi du angir hvis en formel evaluerer til en feil. Ellers returnerer den resultatet av formelen. +NOT = IKKE ## Reverserer logikken til argumentet +OR = ELLER ## Returnerer SANN hvis ett eller flere argumenter er lik SANN +TRUE = SANN ## Returnerer den logiske verdien SANN + + +## +## Lookup and reference functions Oppslag- og referansefunksjoner +## +ADDRESS = ADRESSE ## Returnerer en referanse som tekst til en enkelt celle i et regneark +AREAS = OMRÅDER ## Returnerer antall områder i en referanse +CHOOSE = VELG ## Velger en verdi fra en liste med verdier +COLUMN = KOLONNE ## Returnerer kolonnenummeret for en referanse +COLUMNS = KOLONNER ## Returnerer antall kolonner i en referanse +HLOOKUP = FINN.KOLONNE ## Leter i den øverste raden i en matrise og returnerer verdien for den angitte cellen +HYPERLINK = HYPERKOBLING ## Oppretter en snarvei eller et hopp som åpner et dokument som er lagret på en nettverksserver, et intranett eller Internett +INDEX = INDEKS ## Bruker en indeks til å velge en verdi fra en referanse eller matrise +INDIRECT = INDIREKTE ## Returnerer en referanse angitt av en tekstverdi +LOOKUP = SLÅ.OPP ## Slår opp verdier i en vektor eller matrise +MATCH = SAMMENLIGNE ## Slår opp verdier i en referanse eller matrise +OFFSET = FORSKYVNING ## Returnerer en referanseforskyvning fra en gitt referanse +ROW = RAD ## Returnerer radnummeret for en referanse +ROWS = RADER ## Returnerer antall rader i en referanse +RTD = RTD ## Henter sanntidsdata fra et program som støtter COM-automatisering (automatisering: En måte å arbeide på med programobjekter fra et annet program- eller utviklingsverktøy. Tidligere kalt OLE-automatisering. Automatisering er en bransjestandard og en funksjon i Component Object Model (COM).) +TRANSPOSE = TRANSPONER ## Returnerer transponeringen av en matrise +VLOOKUP = FINN.RAD ## Leter i den første kolonnen i en matrise og flytter bortover raden for å returnere verdien til en celle + + +## +## Math and trigonometry functions Matematikk- og trigonometrifunksjoner +## +ABS = ABS ## Returnerer absoluttverdien til et tall +ACOS = ARCCOS ## Returnerer arcus cosinus til et tall +ACOSH = ARCCOSH ## Returnerer den inverse hyperbolske cosinus til et tall +ASIN = ARCSIN ## Returnerer arcus sinus til et tall +ASINH = ARCSINH ## Returnerer den inverse hyperbolske sinus til et tall +ATAN = ARCTAN ## Returnerer arcus tangens til et tall +ATAN2 = ARCTAN2 ## Returnerer arcus tangens fra x- og y-koordinater +ATANH = ARCTANH ## Returnerer den inverse hyperbolske tangens til et tall +CEILING = AVRUND.GJELDENDE.MULTIPLUM ## Runder av et tall til nærmeste heltall eller til nærmeste signifikante multiplum +COMBIN = KOMBINASJON ## Returnerer antall kombinasjoner for ett gitt antall objekter +COS = COS ## Returnerer cosinus til et tall +COSH = COSH ## Returnerer den hyperbolske cosinus til et tall +DEGREES = GRADER ## Konverterer radianer til grader +EVEN = AVRUND.TIL.PARTALL ## Runder av et tall oppover til nærmeste heltall som er et partall +EXP = EKSP ## Returnerer e opphøyd i en angitt potens +FACT = FAKULTET ## Returnerer fakultet til et tall +FACTDOUBLE = DOBBELFAKT ## Returnerer et talls doble fakultet +FLOOR = AVRUND.GJELDENDE.MULTIPLUM.NED ## Avrunder et tall nedover, mot null +GCD = SFF ## Returnerer høyeste felles divisor +INT = HELTALL ## Avrunder et tall nedover til nærmeste heltall +LCM = MFM ## Returnerer minste felles multiplum +LN = LN ## Returnerer den naturlige logaritmen til et tall +LOG = LOG ## Returnerer logaritmen for et tall til et angitt grunntall +LOG10 = LOG10 ## Returnerer logaritmen med grunntall 10 for et tall +MDETERM = MDETERM ## Returnerer matrisedeterminanten til en matrise +MINVERSE = MINVERS ## Returnerer den inverse matrisen til en matrise +MMULT = MMULT ## Returnerer matriseproduktet av to matriser +MOD = REST ## Returnerer resten fra en divisjon +MROUND = MRUND ## Returnerer et tall avrundet til det ønskede multiplum +MULTINOMIAL = MULTINOMINELL ## Returnerer det multinominelle for et sett med tall +ODD = AVRUND.TIL.ODDETALL ## Runder av et tall oppover til nærmeste heltall som er et oddetall +PI = PI ## Returnerer verdien av pi +POWER = OPPHØYD.I ## Returnerer resultatet av et tall opphøyd i en potens +PRODUCT = PRODUKT ## Multipliserer argumentene +QUOTIENT = KVOTIENT ## Returnerer heltallsdelen av en divisjon +RADIANS = RADIANER ## Konverterer grader til radianer +RAND = TILFELDIG ## Returnerer et tilfeldig tall mellom 0 og 1 +RANDBETWEEN = TILFELDIGMELLOM ## Returnerer et tilfeldig tall innenfor et angitt område +ROMAN = ROMERTALL ## Konverterer vanlige tall til romertall, som tekst +ROUND = AVRUND ## Avrunder et tall til et angitt antall sifre +ROUNDDOWN = AVRUND.NED ## Avrunder et tall nedover, mot null +ROUNDUP = AVRUND.OPP ## Runder av et tall oppover, bort fra null +SERIESSUM = SUMMER.REKKE ## Returnerer summen av en geometrisk rekke, basert på formelen +SIGN = FORTEGN ## Returnerer fortegnet for et tall +SIN = SIN ## Returnerer sinus til en gitt vinkel +SINH = SINH ## Returnerer den hyperbolske sinus til et tall +SQRT = ROT ## Returnerer en positiv kvadratrot +SQRTPI = ROTPI ## Returnerer kvadratroten av (tall * pi) +SUBTOTAL = DELSUM ## Returnerer en delsum i en liste eller database +SUM = SUMMER ## Legger sammen argumentene +SUMIF = SUMMERHVIS ## Legger sammen cellene angitt ved et gitt vilkår +SUMIFS = SUMMER.HVIS.SETT ## Legger sammen cellene i et område som oppfyller flere vilkår +SUMPRODUCT = SUMMERPRODUKT ## Returnerer summen av produktene av tilsvarende matrisekomponenter +SUMSQ = SUMMERKVADRAT ## Returnerer kvadratsummen av argumentene +SUMX2MY2 = SUMMERX2MY2 ## Returnerer summen av differansen av kvadratene for tilsvarende verdier i to matriser +SUMX2PY2 = SUMMERX2PY2 ## Returnerer summen av kvadratsummene for tilsvarende verdier i to matriser +SUMXMY2 = SUMMERXMY2 ## Returnerer summen av kvadratene av differansen for tilsvarende verdier i to matriser +TAN = TAN ## Returnerer tangens for et tall +TANH = TANH ## Returnerer den hyperbolske tangens for et tall +TRUNC = AVKORT ## Korter av et tall til et heltall + + +## +## Statistical functions Statistiske funksjoner +## +AVEDEV = GJENNOMSNITTSAVVIK ## Returnerer datapunktenes gjennomsnittlige absoluttavvik fra middelverdien +AVERAGE = GJENNOMSNITT ## Returnerer gjennomsnittet for argumentene +AVERAGEA = GJENNOMSNITTA ## Returnerer gjennomsnittet for argumentene, inkludert tall, tekst og logiske verdier +AVERAGEIF = GJENNOMSNITTHVIS ## Returnerer gjennomsnittet (aritmetisk gjennomsnitt) av alle cellene i et område som oppfyller et bestemt vilkår +AVERAGEIFS = GJENNOMSNITT.HVIS.SETT ## Returnerer gjennomsnittet (aritmetisk middelverdi) av alle celler som oppfyller flere vilkår. +BETADIST = BETA.FORDELING ## Returnerer den kumulative betafordelingsfunksjonen +BETAINV = INVERS.BETA.FORDELING ## Returnerer den inverse verdien til fordelingsfunksjonen for en angitt betafordeling +BINOMDIST = BINOM.FORDELING ## Returnerer den individuelle binomiske sannsynlighetsfordelingen +CHIDIST = KJI.FORDELING ## Returnerer den ensidige sannsynligheten for en kjikvadrert fordeling +CHIINV = INVERS.KJI.FORDELING ## Returnerer den inverse av den ensidige sannsynligheten for den kjikvadrerte fordelingen +CHITEST = KJI.TEST ## Utfører testen for uavhengighet +CONFIDENCE = KONFIDENS ## Returnerer konfidensintervallet til gjennomsnittet for en populasjon +CORREL = KORRELASJON ## Returnerer korrelasjonskoeffisienten mellom to datasett +COUNT = ANTALL ## Teller hvor mange tall som er i argumentlisten +COUNTA = ANTALLA ## Teller hvor mange verdier som er i argumentlisten +COUNTBLANK = TELLBLANKE ## Teller antall tomme celler i et område. +COUNTIF = ANTALL.HVIS ## Teller antall celler i et område som oppfyller gitte vilkår +COUNTIFS = ANTALL.HVIS.SETT ## Teller antallet ikke-tomme celler i et område som oppfyller flere vilkår +COVAR = KOVARIANS ## Returnerer kovariansen, gjennomsnittet av produktene av parvise avvik +CRITBINOM = GRENSE.BINOM ## Returnerer den minste verdien der den kumulative binomiske fordelingen er mindre enn eller lik en vilkårsverdi +DEVSQ = AVVIK.KVADRERT ## Returnerer summen av kvadrerte avvik +EXPONDIST = EKSP.FORDELING ## Returnerer eksponentialfordelingen +FDIST = FFORDELING ## Returnerer F-sannsynlighetsfordelingen +FINV = FFORDELING.INVERS ## Returnerer den inverse av den sannsynlige F-fordelingen +FISHER = FISHER ## Returnerer Fisher-transformasjonen +FISHERINV = FISHERINV ## Returnerer den inverse av Fisher-transformasjonen +FORECAST = PROGNOSE ## Returnerer en verdi langs en lineær trend +FREQUENCY = FREKVENS ## Returnerer en frekvensdistribusjon som en loddrett matrise +FTEST = FTEST ## Returnerer resultatet av en F-test +GAMMADIST = GAMMAFORDELING ## Returnerer gammafordelingen +GAMMAINV = GAMMAINV ## Returnerer den inverse av den gammakumulative fordelingen +GAMMALN = GAMMALN ## Returnerer den naturlige logaritmen til gammafunksjonen G(x) +GEOMEAN = GJENNOMSNITT.GEOMETRISK ## Returnerer den geometriske middelverdien +GROWTH = VEKST ## Returnerer verdier langs en eksponentiell trend +HARMEAN = GJENNOMSNITT.HARMONISK ## Returnerer den harmoniske middelverdien +HYPGEOMDIST = HYPGEOM.FORDELING ## Returnerer den hypergeometriske fordelingen +INTERCEPT = SKJÆRINGSPUNKT ## Returnerer skjæringspunktet til den lineære regresjonslinjen +KURT = KURT ## Returnerer kurtosen til et datasett +LARGE = N.STØRST ## Returnerer den n-te største verdien i et datasett +LINEST = RETTLINJE ## Returnerer parameterne til en lineær trend +LOGEST = KURVE ## Returnerer parameterne til en eksponentiell trend +LOGINV = LOGINV ## Returnerer den inverse lognormale fordelingen +LOGNORMDIST = LOGNORMFORD ## Returnerer den kumulative lognormale fordelingen +MAX = STØRST ## Returnerer maksimumsverdien i en argumentliste +MAXA = MAKSA ## Returnerer maksimumsverdien i en argumentliste, inkludert tall, tekst og logiske verdier +MEDIAN = MEDIAN ## Returnerer medianen til tallene som er gitt +MIN = MIN ## Returnerer minimumsverdien i en argumentliste +MINA = MINA ## Returnerer den minste verdien i en argumentliste, inkludert tall, tekst og logiske verdier +MODE = MODUS ## Returnerer den vanligste verdien i et datasett +NEGBINOMDIST = NEGBINOM.FORDELING ## Returnerer den negative binomiske fordelingen +NORMDIST = NORMALFORDELING ## Returnerer den kumulative normalfordelingen +NORMINV = NORMINV ## Returnerer den inverse kumulative normalfordelingen +NORMSDIST = NORMSFORDELING ## Returnerer standard kumulativ normalfordeling +NORMSINV = NORMSINV ## Returnerer den inverse av den den kumulative standard normalfordelingen +PEARSON = PEARSON ## Returnerer produktmomentkorrelasjonskoeffisienten, Pearson +PERCENTILE = PERSENTIL ## Returnerer den n-te persentil av verdiene i et område +PERCENTRANK = PROSENTDEL ## Returnerer prosentrangeringen av en verdi i et datasett +PERMUT = PERMUTER ## Returnerer antall permutasjoner for et gitt antall objekter +POISSON = POISSON ## Returnerer Poissons sannsynlighetsfordeling +PROB = SANNSYNLIG ## Returnerer sannsynligheten for at verdier i et område ligger mellom to grenser +QUARTILE = KVARTIL ## Returnerer kvartilen til et datasett +RANK = RANG ## Returnerer rangeringen av et tall, eller plassen tallet har i en rekke +RSQ = RKVADRAT ## Returnerer kvadratet av produktmomentkorrelasjonskoeffisienten (Pearsons r) +SKEW = SKJEVFORDELING ## Returnerer skjevheten i en fordeling +SLOPE = STIGNINGSTALL ## Returnerer stigningtallet for den lineære regresjonslinjen +SMALL = N.MINST ## Returnerer den n-te minste verdien i et datasett +STANDARDIZE = NORMALISER ## Returnerer en normalisert verdi +STDEV = STDAV ## Estimere standardavvik på grunnlag av et utvalg +STDEVA = STDAVVIKA ## Estimerer standardavvik basert på et utvalg, inkludert tall, tekst og logiske verdier +STDEVP = STDAVP ## Beregner standardavvik basert på hele populasjonen +STDEVPA = STDAVVIKPA ## Beregner standardavvik basert på hele populasjonen, inkludert tall, tekst og logiske verdier +STEYX = STANDARDFEIL ## Returnerer standardfeilen for den predikerte y-verdien for hver x i regresjonen +TDIST = TFORDELING ## Returnerer en Student t-fordeling +TINV = TINV ## Returnerer den inverse Student t-fordelingen +TREND = TREND ## Returnerer verdier langs en lineær trend +TRIMMEAN = TRIMMET.GJENNOMSNITT ## Returnerer den interne middelverdien til et datasett +TTEST = TTEST ## Returnerer sannsynligheten assosiert med en Student t-test +VAR = VARIANS ## Estimerer varians basert på et utvalg +VARA = VARIANSA ## Estimerer varians basert på et utvalg, inkludert tall, tekst og logiske verdier +VARP = VARIANSP ## Beregner varians basert på hele populasjonen +VARPA = VARIANSPA ## Beregner varians basert på hele populasjonen, inkludert tall, tekst og logiske verdier +WEIBULL = WEIBULL.FORDELING ## Returnerer Weibull-fordelingen +ZTEST = ZTEST ## Returnerer den ensidige sannsynlighetsverdien for en z-test + + +## +## Text functions Tekstfunksjoner +## +ASC = STIGENDE ## Endrer fullbreddes (dobbeltbyte) engelske bokstaver eller katakana i en tegnstreng, til halvbreddes (enkeltbyte) tegn +BAHTTEXT = BAHTTEKST ## Konverterer et tall til tekst, og bruker valutaformatet ß (baht) +CHAR = TEGNKODE ## Returnerer tegnet som svarer til kodenummeret +CLEAN = RENSK ## Fjerner alle tegn som ikke kan skrives ut, fra teksten +CODE = KODE ## Returnerer en numerisk kode for det første tegnet i en tekststreng +CONCATENATE = KJEDE.SAMMEN ## Slår sammen flere tekstelementer til ett tekstelement +DOLLAR = VALUTA ## Konverterer et tall til tekst, og bruker valutaformatet $ (dollar) +EXACT = EKSAKT ## Kontrollerer om to tekstverdier er like +FIND = FINN ## Finner en tekstverdi inne i en annen (skiller mellom store og små bokstaver) +FINDB = FINNB ## Finner en tekstverdi inne i en annen (skiller mellom store og små bokstaver) +FIXED = FASTSATT ## Formaterer et tall som tekst med et bestemt antall desimaler +JIS = JIS ## Endrer halvbreddes (enkeltbyte) engelske bokstaver eller katakana i en tegnstreng, til fullbreddes (dobbeltbyte) tegn +LEFT = VENSTRE ## Returnerer tegnene lengst til venstre i en tekstverdi +LEFTB = VENSTREB ## Returnerer tegnene lengst til venstre i en tekstverdi +LEN = LENGDE ## Returnerer antall tegn i en tekststreng +LENB = LENGDEB ## Returnerer antall tegn i en tekststreng +LOWER = SMÅ ## Konverterer tekst til små bokstaver +MID = DELTEKST ## Returnerer et angitt antall tegn fra en tekststreng, og begynner fra posisjonen du angir +MIDB = DELTEKSTB ## Returnerer et angitt antall tegn fra en tekststreng, og begynner fra posisjonen du angir +PHONETIC = FURIGANA ## Trekker ut fonetiske tegn (furigana) fra en tekststreng +PROPER = STOR.FORBOKSTAV ## Gir den første bokstaven i hvert ord i en tekstverdi stor forbokstav +REPLACE = ERSTATT ## Erstatter tegn i en tekst +REPLACEB = ERSTATTB ## Erstatter tegn i en tekst +REPT = GJENTA ## Gjentar tekst et gitt antall ganger +RIGHT = HØYRE ## Returnerer tegnene lengst til høyre i en tekstverdi +RIGHTB = HØYREB ## Returnerer tegnene lengst til høyre i en tekstverdi +SEARCH = SØK ## Finner en tekstverdi inne i en annen (skiller ikke mellom store og små bokstaver) +SEARCHB = SØKB ## Finner en tekstverdi inne i en annen (skiller ikke mellom store og små bokstaver) +SUBSTITUTE = BYTT.UT ## Bytter ut gammel tekst med ny tekst i en tekststreng +T = T ## Konverterer argumentene til tekst +TEXT = TEKST ## Formaterer et tall og konverterer det til tekst +TRIM = TRIMME ## Fjerner mellomrom fra tekst +UPPER = STORE ## Konverterer tekst til store bokstaver +VALUE = VERDI ## Konverterer et tekstargument til et tall diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/pl/config b/plugins/excel_reader/Classes/PHPExcel/locale/pl/config new file mode 100755 index 0000000..6823761 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/pl/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = zł + + +## +## Excel Error Codes (For future use) +## +NULL = #ZERO! +DIV0 = #DZIEL/0! +VALUE = #ARG! +REF = #ADR! +NAME = #NAZWA? +NUM = #LICZBA! +NA = #N/D! diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/pl/functions b/plugins/excel_reader/Classes/PHPExcel/locale/pl/functions new file mode 100755 index 0000000..1485843 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/pl/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Funkcje dodatków i automatyzacji +## +GETPIVOTDATA = WEŹDANETABELI ## Zwraca dane przechowywane w raporcie tabeli przestawnej. + + +## +## Cube functions Funkcje modułów +## +CUBEKPIMEMBER = ELEMENT.KPI.MODUŁU ## Zwraca nazwę, właściwość i miarę kluczowego wskaźnika wydajności (KPI) oraz wyświetla nazwę i właściwość w komórce. Wskaźnik KPI jest miarą ilościową, taką jak miesięczny zysk brutto lub kwartalna fluktuacja pracowników, używaną do monitorowania wydajności organizacji. +CUBEMEMBER = ELEMENT.MODUŁU ## Zwraca element lub krotkę z hierarchii modułu. Służy do sprawdzania, czy element lub krotka istnieje w module. +CUBEMEMBERPROPERTY = WŁAŚCIWOŚĆ.ELEMENTU.MODUŁU ## Zwraca wartość właściwości elementu w module. Służy do sprawdzania, czy nazwa elementu istnieje w module, i zwracania określonej właściwości dla tego elementu. +CUBERANKEDMEMBER = USZEREGOWANY.ELEMENT.MODUŁU ## Zwraca n-ty (albo uszeregowany) element zestawu. Służy do zwracania elementu lub elementów zestawu, na przykład najlepszego sprzedawcy lub 10 najlepszych studentów. +CUBESET = ZESTAW.MODUŁÓW ## Definiuje obliczony zestaw elementów lub krotek, wysyłając wyrażenie zestawu do serwera modułu, który tworzy zestaw i zwraca go do programu Microsoft Office Excel. +CUBESETCOUNT = LICZNIK.MODUŁÓW.ZESTAWU ## Zwraca liczbę elementów zestawu. +CUBEVALUE = WARTOŚĆ.MODUŁU ## Zwraca zagregowaną wartość z modułu. + + +## +## Database functions Funkcje baz danych +## +DAVERAGE = BD.ŚREDNIA ## Zwraca wartość średniej wybranych wpisów bazy danych. +DCOUNT = BD.ILE.REKORDÓW ## Zlicza komórki zawierające liczby w bazie danych. +DCOUNTA = BD.ILE.REKORDÓW.A ## Zlicza niepuste komórki w bazie danych. +DGET = BD.POLE ## Wyodrębnia z bazy danych jeden rekord spełniający określone kryteria. +DMAX = BD.MAX ## Zwraca wartość maksymalną z wybranych wpisów bazy danych. +DMIN = BD.MIN ## Zwraca wartość minimalną z wybranych wpisów bazy danych. +DPRODUCT = BD.ILOCZYN ## Mnoży wartości w konkretnym, spełniającym kryteria polu rekordów bazy danych. +DSTDEV = BD.ODCH.STANDARD ## Szacuje odchylenie standardowe na podstawie próbki z wybranych wpisów bazy danych. +DSTDEVP = BD.ODCH.STANDARD.POPUL ## Oblicza odchylenie standardowe na podstawie całej populacji wybranych wpisów bazy danych. +DSUM = BD.SUMA ## Dodaje liczby w kolumnie pól rekordów bazy danych, które spełniają kryteria. +DVAR = BD.WARIANCJA ## Szacuje wariancję na podstawie próbki z wybranych wpisów bazy danych. +DVARP = BD.WARIANCJA.POPUL ## Oblicza wariancję na podstawie całej populacji wybranych wpisów bazy danych. + + +## +## Date and time functions Funkcje dat, godzin i czasu +## +DATE = DATA ## Zwraca liczbę seryjną dla wybranej daty. +DATEVALUE = DATA.WARTOŚĆ ## Konwertuje datę w formie tekstu na liczbę seryjną. +DAY = DZIEŃ ## Konwertuje liczbę seryjną na dzień miesiąca. +DAYS360 = DNI.360 ## Oblicza liczbę dni między dwiema datami na podstawie roku 360-dniowego. +EDATE = UPŁDNI ## Zwraca liczbę seryjną daty jako wskazaną liczbę miesięcy przed określoną datą początkową lub po niej. +EOMONTH = EOMONTH ## Zwraca liczbę seryjną ostatniego dnia miesiąca przed określoną liczbą miesięcy lub po niej. +HOUR = GODZINA ## Konwertuje liczbę seryjną na godzinę. +MINUTE = MINUTA ## Konwertuje liczbę seryjną na minutę. +MONTH = MIESIĄC ## Konwertuje liczbę seryjną na miesiąc. +NETWORKDAYS = NETWORKDAYS ## Zwraca liczbę pełnych dni roboczych między dwiema datami. +NOW = TERAZ ## Zwraca liczbę seryjną bieżącej daty i godziny. +SECOND = SEKUNDA ## Konwertuje liczbę seryjną na sekundę. +TIME = CZAS ## Zwraca liczbę seryjną określonego czasu. +TIMEVALUE = CZAS.WARTOŚĆ ## Konwertuje czas w formie tekstu na liczbę seryjną. +TODAY = DZIŚ ## Zwraca liczbę seryjną dla daty bieżącej. +WEEKDAY = DZIEŃ.TYG ## Konwertuje liczbę seryjną na dzień tygodnia. +WEEKNUM = WEEKNUM ## Konwertuje liczbę seryjną na liczbę reprezentującą numer tygodnia w roku. +WORKDAY = WORKDAY ## Zwraca liczbę seryjną dla daty przed określoną liczbą dni roboczych lub po niej. +YEAR = ROK ## Konwertuje liczbę seryjną na rok. +YEARFRAC = YEARFRAC ## Zwraca część roku reprezentowaną przez pełną liczbę dni między datą początkową a datą końcową. + + +## +## Engineering functions Funkcje inżynierskie +## +BESSELI = BESSELI ## Zwraca wartość zmodyfikowanej funkcji Bessela In(x). +BESSELJ = BESSELJ ## Zwraca wartość funkcji Bessela Jn(x). +BESSELK = BESSELK ## Zwraca wartość zmodyfikowanej funkcji Bessela Kn(x). +BESSELY = BESSELY ## Zwraca wartość funkcji Bessela Yn(x). +BIN2DEC = BIN2DEC ## Konwertuje liczbę w postaci dwójkowej na liczbę w postaci dziesiętnej. +BIN2HEX = BIN2HEX ## Konwertuje liczbę w postaci dwójkowej na liczbę w postaci szesnastkowej. +BIN2OCT = BIN2OCT ## Konwertuje liczbę w postaci dwójkowej na liczbę w postaci ósemkowej. +COMPLEX = COMPLEX ## Konwertuje część rzeczywistą i urojoną na liczbę zespoloną. +CONVERT = CONVERT ## Konwertuje liczbę z jednego systemu miar na inny. +DEC2BIN = DEC2BIN ## Konwertuje liczbę w postaci dziesiętnej na postać dwójkową. +DEC2HEX = DEC2HEX ## Konwertuje liczbę w postaci dziesiętnej na liczbę w postaci szesnastkowej. +DEC2OCT = DEC2OCT ## Konwertuje liczbę w postaci dziesiętnej na liczbę w postaci ósemkowej. +DELTA = DELTA ## Sprawdza, czy dwie wartości są równe. +ERF = ERF ## Zwraca wartość funkcji błędu. +ERFC = ERFC ## Zwraca wartość komplementarnej funkcji błędu. +GESTEP = GESTEP ## Sprawdza, czy liczba jest większa niż wartość progowa. +HEX2BIN = HEX2BIN ## Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci dwójkowej. +HEX2DEC = HEX2DEC ## Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci dziesiętnej. +HEX2OCT = HEX2OCT ## Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci ósemkowej. +IMABS = IMABS ## Zwraca wartość bezwzględną (moduł) liczby zespolonej. +IMAGINARY = IMAGINARY ## Zwraca wartość części urojonej liczby zespolonej. +IMARGUMENT = IMARGUMENT ## Zwraca wartość argumentu liczby zespolonej, przy czym kąt wyrażony jest w radianach. +IMCONJUGATE = IMCONJUGATE ## Zwraca wartość liczby sprzężonej danej liczby zespolonej. +IMCOS = IMCOS ## Zwraca wartość cosinusa liczby zespolonej. +IMDIV = IMDIV ## Zwraca wartość ilorazu dwóch liczb zespolonych. +IMEXP = IMEXP ## Zwraca postać wykładniczą liczby zespolonej. +IMLN = IMLN ## Zwraca wartość logarytmu naturalnego liczby zespolonej. +IMLOG10 = IMLOG10 ## Zwraca wartość logarytmu dziesiętnego liczby zespolonej. +IMLOG2 = IMLOG2 ## Zwraca wartość logarytmu liczby zespolonej przy podstawie 2. +IMPOWER = IMPOWER ## Zwraca wartość liczby zespolonej podniesionej do potęgi całkowitej. +IMPRODUCT = IMPRODUCT ## Zwraca wartość iloczynu liczb zespolonych. +IMREAL = IMREAL ## Zwraca wartość części rzeczywistej liczby zespolonej. +IMSIN = IMSIN ## Zwraca wartość sinusa liczby zespolonej. +IMSQRT = IMSQRT ## Zwraca wartość pierwiastka kwadratowego z liczby zespolonej. +IMSUB = IMSUB ## Zwraca wartość różnicy dwóch liczb zespolonych. +IMSUM = IMSUM ## Zwraca wartość sumy liczb zespolonych. +OCT2BIN = OCT2BIN ## Konwertuje liczbę w postaci ósemkowej na liczbę w postaci dwójkowej. +OCT2DEC = OCT2DEC ## Konwertuje liczbę w postaci ósemkowej na liczbę w postaci dziesiętnej. +OCT2HEX = OCT2HEX ## Konwertuje liczbę w postaci ósemkowej na liczbę w postaci szesnastkowej. + + +## +## Financial functions Funkcje finansowe +## +ACCRINT = ACCRINT ## Zwraca narosłe odsetki dla papieru wartościowego z oprocentowaniem okresowym. +ACCRINTM = ACCRINTM ## Zwraca narosłe odsetki dla papieru wartościowego z oprocentowaniem w terminie wykupu. +AMORDEGRC = AMORDEGRC ## Zwraca amortyzację dla każdego okresu rozliczeniowego z wykorzystaniem współczynnika amortyzacji. +AMORLINC = AMORLINC ## Zwraca amortyzację dla każdego okresu rozliczeniowego. +COUPDAYBS = COUPDAYBS ## Zwraca liczbę dni od początku okresu dywidendy do dnia rozliczeniowego. +COUPDAYS = COUPDAYS ## Zwraca liczbę dni w okresie dywidendy, z uwzględnieniem dnia rozliczeniowego. +COUPDAYSNC = COUPDAYSNC ## Zwraca liczbę dni od dnia rozliczeniowego do daty następnego dnia dywidendy. +COUPNCD = COUPNCD ## Zwraca dzień następnej dywidendy po dniu rozliczeniowym. +COUPNUM = COUPNUM ## Zwraca liczbę dywidend płatnych między dniem rozliczeniowym a dniem wykupu. +COUPPCD = COUPPCD ## Zwraca dzień poprzedniej dywidendy przed dniem rozliczeniowym. +CUMIPMT = CUMIPMT ## Zwraca wartość procentu składanego płatnego między dwoma okresami. +CUMPRINC = CUMPRINC ## Zwraca wartość kapitału skumulowanego spłaty pożyczki między dwoma okresami. +DB = DB ## Zwraca amortyzację środka trwałego w danym okresie metodą degresywną z zastosowaniem stałej bazowej. +DDB = DDB ## Zwraca amortyzację środka trwałego za podany okres metodą degresywną z zastosowaniem podwójnej bazowej lub metodą określoną przez użytkownika. +DISC = DISC ## Zwraca wartość stopy dyskontowej papieru wartościowego. +DOLLARDE = DOLLARDE ## Konwertuje cenę w postaci ułamkowej na cenę wyrażoną w postaci dziesiętnej. +DOLLARFR = DOLLARFR ## Konwertuje cenę wyrażoną w postaci dziesiętnej na cenę wyrażoną w postaci ułamkowej. +DURATION = DURATION ## Zwraca wartość rocznego przychodu z papieru wartościowego o okresowych wypłatach oprocentowania. +EFFECT = EFFECT ## Zwraca wartość efektywnej rocznej stopy procentowej. +FV = FV ## Zwraca przyszłą wartość lokaty. +FVSCHEDULE = FVSCHEDULE ## Zwraca przyszłą wartość kapitału początkowego wraz z szeregiem procentów składanych. +INTRATE = INTRATE ## Zwraca wartość stopy procentowej papieru wartościowego całkowicie ulokowanego. +IPMT = IPMT ## Zwraca wysokość spłaty oprocentowania lokaty za dany okres. +IRR = IRR ## Zwraca wartość wewnętrznej stopy zwrotu dla serii przepływów gotówkowych. +ISPMT = ISPMT ## Oblicza wysokość spłaty oprocentowania za dany okres lokaty. +MDURATION = MDURATION ## Zwraca wartość zmodyfikowanego okresu Macauleya dla papieru wartościowego o założonej wartości nominalnej 100 zł. +MIRR = MIRR ## Zwraca wartość wewnętrznej stopy zwrotu dla przypadku, gdy dodatnie i ujemne przepływy gotówkowe mają różne stopy. +NOMINAL = NOMINAL ## Zwraca wysokość nominalnej rocznej stopy procentowej. +NPER = NPER ## Zwraca liczbę okresów dla lokaty. +NPV = NPV ## Zwraca wartość bieżącą netto lokaty na podstawie szeregu okresowych przepływów gotówkowych i stopy dyskontowej. +ODDFPRICE = ODDFPRICE ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z nietypowym pierwszym okresem. +ODDFYIELD = ODDFYIELD ## Zwraca rentowność papieru wartościowego z nietypowym pierwszym okresem. +ODDLPRICE = ODDLPRICE ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z nietypowym ostatnim okresem. +ODDLYIELD = ODDLYIELD ## Zwraca rentowność papieru wartościowego z nietypowym ostatnim okresem. +PMT = PMT ## Zwraca wartość okresowej płatności raty rocznej. +PPMT = PPMT ## Zwraca wysokość spłaty kapitału w przypadku lokaty dla danego okresu. +PRICE = PRICE ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z oprocentowaniem okresowym. +PRICEDISC = PRICEDISC ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego zdyskontowanego. +PRICEMAT = PRICEMAT ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z oprocentowaniem w terminie wykupu. +PV = PV ## Zwraca wartość bieżącą lokaty. +RATE = RATE ## Zwraca wysokość stopy procentowej w okresie raty rocznej. +RECEIVED = RECEIVED ## Zwraca wartość kapitału otrzymanego przy wykupie papieru wartościowego całkowicie ulokowanego. +SLN = SLN ## Zwraca amortyzację środka trwałego za jeden okres metodą liniową. +SYD = SYD ## Zwraca amortyzację środka trwałego za dany okres metodą sumy cyfr lat amortyzacji. +TBILLEQ = TBILLEQ ## Zwraca rentowność ekwiwalentu obligacji dla bonu skarbowego. +TBILLPRICE = TBILLPRICE ## Zwraca cenę za 100 zł wartości nominalnej bonu skarbowego. +TBILLYIELD = TBILLYIELD ## Zwraca rentowność bonu skarbowego. +VDB = VDB ## Oblicza amortyzację środka trwałego w danym okresie lub jego części metodą degresywną. +XIRR = XIRR ## Zwraca wartość wewnętrznej stopy zwrotu dla serii rozłożonych w czasie przepływów gotówkowych, niekoniecznie okresowych. +XNPV = XNPV ## Zwraca wartość bieżącą netto dla serii rozłożonych w czasie przepływów gotówkowych, niekoniecznie okresowych. +YIELD = YIELD ## Zwraca rentowność papieru wartościowego z oprocentowaniem okresowym. +YIELDDISC = YIELDDISC ## Zwraca roczną rentowność zdyskontowanego papieru wartościowego, na przykład bonu skarbowego. +YIELDMAT = YIELDMAT ## Zwraca roczną rentowność papieru wartościowego oprocentowanego przy wykupie. + + +## +## Information functions Funkcje informacyjne +## +CELL = KOMÓRKA ## Zwraca informacje o formacie, położeniu lub zawartości komórki. +ERROR.TYPE = NR.BŁĘDU ## Zwraca liczbę odpowiadającą typowi błędu. +INFO = INFO ## Zwraca informację o aktualnym środowisku pracy. +ISBLANK = CZY.PUSTA ## Zwraca wartość PRAWDA, jeśli wartość jest pusta. +ISERR = CZY.BŁ ## Zwraca wartość PRAWDA, jeśli wartość jest dowolną wartością błędu, z wyjątkiem #N/D!. +ISERROR = CZY.BŁĄD ## Zwraca wartość PRAWDA, jeśli wartość jest dowolną wartością błędu. +ISEVEN = ISEVEN ## Zwraca wartość PRAWDA, jeśli liczba jest parzysta. +ISLOGICAL = CZY.LOGICZNA ## Zwraca wartość PRAWDA, jeśli wartość jest wartością logiczną. +ISNA = CZY.BRAK ## Zwraca wartość PRAWDA, jeśli wartość jest wartością błędu #N/D!. +ISNONTEXT = CZY.NIE.TEKST ## Zwraca wartość PRAWDA, jeśli wartość nie jest tekstem. +ISNUMBER = CZY.LICZBA ## Zwraca wartość PRAWDA, jeśli wartość jest liczbą. +ISODD = ISODD ## Zwraca wartość PRAWDA, jeśli liczba jest nieparzysta. +ISREF = CZY.ADR ## Zwraca wartość PRAWDA, jeśli wartość jest odwołaniem. +ISTEXT = CZY.TEKST ## Zwraca wartość PRAWDA, jeśli wartość jest tekstem. +N = L ## Zwraca wartość przekonwertowaną na postać liczbową. +NA = BRAK ## Zwraca wartość błędu #N/D!. +TYPE = TYP ## Zwraca liczbę wskazującą typ danych wartości. + + +## +## Logical functions Funkcje logiczne +## +AND = ORAZ ## Zwraca wartość PRAWDA, jeśli wszystkie argumenty mają wartość PRAWDA. +FALSE = FAŁSZ ## Zwraca wartość logiczną FAŁSZ. +IF = JEŻELI ## Określa warunek logiczny do sprawdzenia. +IFERROR = JEŻELI.BŁĄD ## Zwraca określoną wartość, jeśli wynikiem obliczenia formuły jest błąd; w przeciwnym przypadku zwraca wynik formuły. +NOT = NIE ## Odwraca wartość logiczną argumentu. +OR = LUB ## Zwraca wartość PRAWDA, jeśli co najmniej jeden z argumentów ma wartość PRAWDA. +TRUE = PRAWDA ## Zwraca wartość logiczną PRAWDA. + + +## +## Lookup and reference functions Funkcje wyszukiwania i odwołań +## +ADDRESS = ADRES ## Zwraca odwołanie do jednej komórki w arkuszu jako wartość tekstową. +AREAS = OBSZARY ## Zwraca liczbę obszarów występujących w odwołaniu. +CHOOSE = WYBIERZ ## Wybiera wartość z listy wartości. +COLUMN = NR.KOLUMNY ## Zwraca numer kolumny z odwołania. +COLUMNS = LICZBA.KOLUMN ## Zwraca liczbę kolumn dla danego odwołania. +HLOOKUP = WYSZUKAJ.POZIOMO ## Przegląda górny wiersz tablicy i zwraca wartość wskazanej komórki. +HYPERLINK = HIPERŁĄCZE ## Tworzy skrót lub skok, który pozwala otwierać dokument przechowywany na serwerze sieciowym, w sieci intranet lub w Internecie. +INDEX = INDEKS ## Używa indeksu do wybierania wartości z odwołania lub tablicy. +INDIRECT = ADR.POŚR ## Zwraca odwołanie określone przez wartość tekstową. +LOOKUP = WYSZUKAJ ## Wyszukuje wartości w wektorze lub tablicy. +MATCH = PODAJ.POZYCJĘ ## Wyszukuje wartości w odwołaniu lub w tablicy. +OFFSET = PRZESUNIĘCIE ## Zwraca adres przesunięty od danego odwołania. +ROW = WIERSZ ## Zwraca numer wiersza odwołania. +ROWS = ILE.WIERSZY ## Zwraca liczbę wierszy dla danego odwołania. +RTD = RTD ## Pobiera dane w czasie rzeczywistym z programu obsługującego automatyzację COM (Automatyzacja: Sposób pracy z obiektami aplikacji pochodzącymi z innej aplikacji lub narzędzia projektowania. Nazywana wcześniej Automatyzacją OLE, Automatyzacja jest standardem przemysłowym i funkcją obiektowego modelu składników (COM, Component Object Model).). +TRANSPOSE = TRANSPONUJ ## Zwraca transponowaną tablicę. +VLOOKUP = WYSZUKAJ.PIONOWO ## Przeszukuje pierwszą kolumnę tablicy i przechodzi wzdłuż wiersza, aby zwrócić wartość komórki. + + +## +## Math and trigonometry functions Funkcje matematyczne i trygonometryczne +## +ABS = MODUŁ.LICZBY ## Zwraca wartość absolutną liczby. +ACOS = ACOS ## Zwraca arcus cosinus liczby. +ACOSH = ACOSH ## Zwraca arcus cosinus hiperboliczny liczby. +ASIN = ASIN ## Zwraca arcus sinus liczby. +ASINH = ASINH ## Zwraca arcus sinus hiperboliczny liczby. +ATAN = ATAN ## Zwraca arcus tangens liczby. +ATAN2 = ATAN2 ## Zwraca arcus tangens liczby na podstawie współrzędnych x i y. +ATANH = ATANH ## Zwraca arcus tangens hiperboliczny liczby. +CEILING = ZAOKR.W.GÓRĘ ## Zaokrągla liczbę do najbliższej liczby całkowitej lub do najbliższej wielokrotności dokładności. +COMBIN = KOMBINACJE ## Zwraca liczbę kombinacji dla danej liczby obiektów. +COS = COS ## Zwraca cosinus liczby. +COSH = COSH ## Zwraca cosinus hiperboliczny liczby. +DEGREES = STOPNIE ## Konwertuje radiany na stopnie. +EVEN = ZAOKR.DO.PARZ ## Zaokrągla liczbę w górę do najbliższej liczby parzystej. +EXP = EXP ## Zwraca wartość liczby e podniesionej do potęgi określonej przez podaną liczbę. +FACT = SILNIA ## Zwraca silnię liczby. +FACTDOUBLE = FACTDOUBLE ## Zwraca podwójną silnię liczby. +FLOOR = ZAOKR.W.DÓŁ ## Zaokrągla liczbę w dół, w kierunku zera. +GCD = GCD ## Zwraca największy wspólny dzielnik. +INT = ZAOKR.DO.CAŁK ## Zaokrągla liczbę w dół do najbliższej liczby całkowitej. +LCM = LCM ## Zwraca najmniejszą wspólną wielokrotność. +LN = LN ## Zwraca logarytm naturalny podanej liczby. +LOG = LOG ## Zwraca logarytm danej liczby przy zadanej podstawie. +LOG10 = LOG10 ## Zwraca logarytm dziesiętny liczby. +MDETERM = WYZNACZNIK.MACIERZY ## Zwraca wyznacznik macierzy tablicy. +MINVERSE = MACIERZ.ODW ## Zwraca odwrotność macierzy tablicy. +MMULT = MACIERZ.ILOCZYN ## Zwraca iloczyn macierzy dwóch tablic. +MOD = MOD ## Zwraca resztę z dzielenia. +MROUND = MROUND ## Zwraca liczbę zaokrągloną do żądanej wielokrotności. +MULTINOMIAL = MULTINOMIAL ## Zwraca wielomian dla zbioru liczb. +ODD = ZAOKR.DO.NPARZ ## Zaokrągla liczbę w górę do najbliższej liczby nieparzystej. +PI = PI ## Zwraca wartość liczby Pi. +POWER = POTĘGA ## Zwraca liczbę podniesioną do potęgi. +PRODUCT = ILOCZYN ## Mnoży argumenty. +QUOTIENT = QUOTIENT ## Zwraca iloraz (całkowity). +RADIANS = RADIANY ## Konwertuje stopnie na radiany. +RAND = LOS ## Zwraca liczbę pseudolosową z zakresu od 0 do 1. +RANDBETWEEN = RANDBETWEEN ## Zwraca liczbę pseudolosową z zakresu określonego przez podane argumenty. +ROMAN = RZYMSKIE ## Konwertuje liczbę arabską na rzymską jako tekst. +ROUND = ZAOKR ## Zaokrągla liczbę do określonej liczby cyfr. +ROUNDDOWN = ZAOKR.DÓŁ ## Zaokrągla liczbę w dół, w kierunku zera. +ROUNDUP = ZAOKR.GÓRA ## Zaokrągla liczbę w górę, w kierunku od zera. +SERIESSUM = SERIESSUM ## Zwraca sumę szeregu potęgowego na podstawie wzoru. +SIGN = ZNAK.LICZBY ## Zwraca znak liczby. +SIN = SIN ## Zwraca sinus danego kąta. +SINH = SINH ## Zwraca sinus hiperboliczny liczby. +SQRT = PIERWIASTEK ## Zwraca dodatni pierwiastek kwadratowy. +SQRTPI = SQRTPI ## Zwraca pierwiastek kwadratowy iloczynu (liczba * Pi). +SUBTOTAL = SUMY.POŚREDNIE ## Zwraca sumę częściową listy lub bazy danych. +SUM = SUMA ## Dodaje argumenty. +SUMIF = SUMA.JEŻELI ## Dodaje komórki określone przez podane kryterium. +SUMIFS = SUMA.WARUNKÓW ## Dodaje komórki w zakresie, które spełniają wiele kryteriów. +SUMPRODUCT = SUMA.ILOCZYNÓW ## Zwraca sumę iloczynów odpowiednich elementów tablicy. +SUMSQ = SUMA.KWADRATÓW ## Zwraca sumę kwadratów argumentów. +SUMX2MY2 = SUMA.X2.M.Y2 ## Zwraca sumę różnic kwadratów odpowiednich wartości w dwóch tablicach. +SUMX2PY2 = SUMA.X2.P.Y2 ## Zwraca sumę sum kwadratów odpowiednich wartości w dwóch tablicach. +SUMXMY2 = SUMA.XMY.2 ## Zwraca sumę kwadratów różnic odpowiednich wartości w dwóch tablicach. +TAN = TAN ## Zwraca tangens liczby. +TANH = TANH ## Zwraca tangens hiperboliczny liczby. +TRUNC = LICZBA.CAŁK ## Przycina liczbę do wartości całkowitej. + + +## +## Statistical functions Funkcje statystyczne +## +AVEDEV = ODCH.ŚREDNIE ## Zwraca średnią wartość odchyleń absolutnych punktów danych od ich wartości średniej. +AVERAGE = ŚREDNIA ## Zwraca wartość średnią argumentów. +AVERAGEA = ŚREDNIA.A ## Zwraca wartość średnią argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych. +AVERAGEIF = ŚREDNIA.JEŻELI ## Zwraca średnią (średnią arytmetyczną) wszystkich komórek w zakresie, które spełniają podane kryteria. +AVERAGEIFS = ŚREDNIA.WARUNKÓW ## Zwraca średnią (średnią arytmetyczną) wszystkich komórek, które spełniają jedno lub więcej kryteriów. +BETADIST = ROZKŁAD.BETA ## Zwraca skumulowaną funkcję gęstości prawdopodobieństwa beta. +BETAINV = ROZKŁAD.BETA.ODW ## Zwraca odwrotność skumulowanej funkcji gęstości prawdopodobieństwa beta. +BINOMDIST = ROZKŁAD.DWUM ## Zwraca pojedynczy składnik dwumianowego rozkładu prawdopodobieństwa. +CHIDIST = ROZKŁAD.CHI ## Zwraca wartość jednostronnego prawdopodobieństwa rozkładu chi-kwadrat. +CHIINV = ROZKŁAD.CHI.ODW ## Zwraca odwrotność wartości jednostronnego prawdopodobieństwa rozkładu chi-kwadrat. +CHITEST = TEST.CHI ## Zwraca test niezależności. +CONFIDENCE = UFNOŚĆ ## Zwraca interwał ufności dla średniej populacji. +CORREL = WSP.KORELACJI ## Zwraca współczynnik korelacji dwóch zbiorów danych. +COUNT = ILE.LICZB ## Zlicza liczby znajdujące się na liście argumentów. +COUNTA = ILE.NIEPUSTYCH ## Zlicza wartości znajdujące się na liście argumentów. +COUNTBLANK = LICZ.PUSTE ## Zwraca liczbę pustych komórek w pewnym zakresie. +COUNTIF = LICZ.JEŻELI ## Zlicza komórki wewnątrz zakresu, które spełniają podane kryteria. +COUNTIFS = LICZ.WARUNKI ## Zlicza komórki wewnątrz zakresu, które spełniają wiele kryteriów. +COVAR = KOWARIANCJA ## Zwraca kowariancję, czyli średnią wartość iloczynów odpowiednich odchyleń. +CRITBINOM = PRÓG.ROZKŁAD.DWUM ## Zwraca najmniejszą wartość, dla której skumulowany rozkład dwumianowy jest mniejszy niż wartość kryterium lub równy jej. +DEVSQ = ODCH.KWADRATOWE ## Zwraca sumę kwadratów odchyleń. +EXPONDIST = ROZKŁAD.EXP ## Zwraca rozkład wykładniczy. +FDIST = ROZKŁAD.F ## Zwraca rozkład prawdopodobieństwa F. +FINV = ROZKŁAD.F.ODW ## Zwraca odwrotność rozkładu prawdopodobieństwa F. +FISHER = ROZKŁAD.FISHER ## Zwraca transformację Fishera. +FISHERINV = ROZKŁAD.FISHER.ODW ## Zwraca odwrotność transformacji Fishera. +FORECAST = REGLINX ## Zwraca wartość trendu liniowego. +FREQUENCY = CZĘSTOŚĆ ## Zwraca rozkład częstotliwości jako tablicę pionową. +FTEST = TEST.F ## Zwraca wynik testu F. +GAMMADIST = ROZKŁAD.GAMMA ## Zwraca rozkład gamma. +GAMMAINV = ROZKŁAD.GAMMA.ODW ## Zwraca odwrotność skumulowanego rozkładu gamma. +GAMMALN = ROZKŁAD.LIN.GAMMA ## Zwraca logarytm naturalny funkcji gamma, Γ(x). +GEOMEAN = ŚREDNIA.GEOMETRYCZNA ## Zwraca średnią geometryczną. +GROWTH = REGEXPW ## Zwraca wartości trendu wykładniczego. +HARMEAN = ŚREDNIA.HARMONICZNA ## Zwraca średnią harmoniczną. +HYPGEOMDIST = ROZKŁAD.HIPERGEOM ## Zwraca rozkład hipergeometryczny. +INTERCEPT = ODCIĘTA ## Zwraca punkt przecięcia osi pionowej z linią regresji liniowej. +KURT = KURTOZA ## Zwraca kurtozę zbioru danych. +LARGE = MAX.K ## Zwraca k-tą największą wartość ze zbioru danych. +LINEST = REGLINP ## Zwraca parametry trendu liniowego. +LOGEST = REGEXPP ## Zwraca parametry trendu wykładniczego. +LOGINV = ROZKŁAD.LOG.ODW ## Zwraca odwrotność rozkładu logarytmu naturalnego. +LOGNORMDIST = ROZKŁAD.LOG ## Zwraca skumulowany rozkład logarytmu naturalnego. +MAX = MAX ## Zwraca maksymalną wartość listy argumentów. +MAXA = MAX.A ## Zwraca maksymalną wartość listy argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych. +MEDIAN = MEDIANA ## Zwraca medianę podanych liczb. +MIN = MIN ## Zwraca minimalną wartość listy argumentów. +MINA = MIN.A ## Zwraca najmniejszą wartość listy argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych. +MODE = WYST.NAJCZĘŚCIEJ ## Zwraca wartość najczęściej występującą w zbiorze danych. +NEGBINOMDIST = ROZKŁAD.DWUM.PRZEC ## Zwraca ujemny rozkład dwumianowy. +NORMDIST = ROZKŁAD.NORMALNY ## Zwraca rozkład normalny skumulowany. +NORMINV = ROZKŁAD.NORMALNY.ODW ## Zwraca odwrotność rozkładu normalnego skumulowanego. +NORMSDIST = ROZKŁAD.NORMALNY.S ## Zwraca standardowy rozkład normalny skumulowany. +NORMSINV = ROZKŁAD.NORMALNY.S.ODW ## Zwraca odwrotność standardowego rozkładu normalnego skumulowanego. +PEARSON = PEARSON ## Zwraca współczynnik korelacji momentu iloczynu Pearsona. +PERCENTILE = PERCENTYL ## Wyznacza k-ty percentyl wartości w zakresie. +PERCENTRANK = PROCENT.POZYCJA ## Zwraca procentową pozycję wartości w zbiorze danych. +PERMUT = PERMUTACJE ## Zwraca liczbę permutacji dla danej liczby obiektów. +POISSON = ROZKŁAD.POISSON ## Zwraca rozkład Poissona. +PROB = PRAWDPD ## Zwraca prawdopodobieństwo, że wartości w zakresie leżą pomiędzy dwiema granicami. +QUARTILE = KWARTYL ## Wyznacza kwartyl zbioru danych. +RANK = POZYCJA ## Zwraca pozycję liczby na liście liczb. +RSQ = R.KWADRAT ## Zwraca kwadrat współczynnika korelacji momentu iloczynu Pearsona. +SKEW = SKOŚNOŚĆ ## Zwraca skośność rozkładu. +SLOPE = NACHYLENIE ## Zwraca nachylenie linii regresji liniowej. +SMALL = MIN.K ## Zwraca k-tą najmniejszą wartość ze zbioru danych. +STANDARDIZE = NORMALIZUJ ## Zwraca wartość znormalizowaną. +STDEV = ODCH.STANDARDOWE ## Szacuje odchylenie standardowe na podstawie próbki. +STDEVA = ODCH.STANDARDOWE.A ## Szacuje odchylenie standardowe na podstawie próbki, z uwzględnieniem liczb, tekstów i wartości logicznych. +STDEVP = ODCH.STANDARD.POPUL ## Oblicza odchylenie standardowe na podstawie całej populacji. +STDEVPA = ODCH.STANDARD.POPUL.A ## Oblicza odchylenie standardowe na podstawie całej populacji, z uwzględnieniem liczb, teksów i wartości logicznych. +STEYX = REGBŁSTD ## Zwraca błąd standardowy przewidzianej wartości y dla każdej wartości x w regresji. +TDIST = ROZKŁAD.T ## Zwraca rozkład t-Studenta. +TINV = ROZKŁAD.T.ODW ## Zwraca odwrotność rozkładu t-Studenta. +TREND = REGLINW ## Zwraca wartości trendu liniowego. +TRIMMEAN = ŚREDNIA.WEWN ## Zwraca średnią wartość dla wnętrza zbioru danych. +TTEST = TEST.T ## Zwraca prawdopodobieństwo związane z testem t-Studenta. +VAR = WARIANCJA ## Szacuje wariancję na podstawie próbki. +VARA = WARIANCJA.A ## Szacuje wariancję na podstawie próbki, z uwzględnieniem liczb, tekstów i wartości logicznych. +VARP = WARIANCJA.POPUL ## Oblicza wariancję na podstawie całej populacji. +VARPA = WARIANCJA.POPUL.A ## Oblicza wariancję na podstawie całej populacji, z uwzględnieniem liczb, tekstów i wartości logicznych. +WEIBULL = ROZKŁAD.WEIBULL ## Zwraca rozkład Weibulla. +ZTEST = TEST.Z ## Zwraca wartość jednostronnego prawdopodobieństwa testu z. + + +## +## Text functions Funkcje tekstowe +## +ASC = ASC ## Zamienia litery angielskie lub katakana o pełnej szerokości (dwubajtowe) w ciągu znaków na znaki o szerokości połówkowej (jednobajtowe). +BAHTTEXT = BAHTTEXT ## Konwertuje liczbę na tekst, stosując format walutowy ß (baht). +CHAR = ZNAK ## Zwraca znak o podanym numerze kodu. +CLEAN = OCZYŚĆ ## Usuwa z tekstu wszystkie znaki, które nie mogą być drukowane. +CODE = KOD ## Zwraca kod numeryczny pierwszego znaku w ciągu tekstowym. +CONCATENATE = ZŁĄCZ.TEKSTY ## Łączy kilka oddzielnych tekstów w jeden tekst. +DOLLAR = KWOTA ## Konwertuje liczbę na tekst, stosując format walutowy $ (dolar). +EXACT = PORÓWNAJ ## Sprawdza identyczność dwóch wartości tekstowych. +FIND = ZNAJDŹ ## Znajduje jedną wartość tekstową wewnątrz innej (z uwzględnieniem wielkich i małych liter). +FINDB = ZNAJDŹB ## Znajduje jedną wartość tekstową wewnątrz innej (z uwzględnieniem wielkich i małych liter). +FIXED = ZAOKR.DO.TEKST ## Formatuje liczbę jako tekst przy stałej liczbie miejsc dziesiętnych. +JIS = JIS ## Zmienia litery angielskie lub katakana o szerokości połówkowej (jednobajtowe) w ciągu znaków na znaki o pełnej szerokości (dwubajtowe). +LEFT = LEWY ## Zwraca skrajne lewe znaki z wartości tekstowej. +LEFTB = LEWYB ## Zwraca skrajne lewe znaki z wartości tekstowej. +LEN = DŁ ## Zwraca liczbę znaków ciągu tekstowego. +LENB = DŁ.B ## Zwraca liczbę znaków ciągu tekstowego. +LOWER = LITERY.MAŁE ## Konwertuje wielkie litery tekstu na małe litery. +MID = FRAGMENT.TEKSTU ## Zwraca określoną liczbę znaków z ciągu tekstowego, zaczynając od zadanej pozycji. +MIDB = FRAGMENT.TEKSTU.B ## Zwraca określoną liczbę znaków z ciągu tekstowego, zaczynając od zadanej pozycji. +PHONETIC = PHONETIC ## Wybiera znaki fonetyczne (furigana) z ciągu tekstowego. +PROPER = Z.WIELKIEJ.LITERY ## Zastępuje pierwszą literę każdego wyrazu tekstu wielką literą. +REPLACE = ZASTĄP ## Zastępuje znaki w tekście. +REPLACEB = ZASTĄP.B ## Zastępuje znaki w tekście. +REPT = POWT ## Powiela tekst daną liczbę razy. +RIGHT = PRAWY ## Zwraca skrajne prawe znaki z wartości tekstowej. +RIGHTB = PRAWYB ## Zwraca skrajne prawe znaki z wartości tekstowej. +SEARCH = SZUKAJ.TEKST ## Wyszukuje jedną wartość tekstową wewnątrz innej (bez uwzględniania wielkości liter). +SEARCHB = SZUKAJ.TEKST.B ## Wyszukuje jedną wartość tekstową wewnątrz innej (bez uwzględniania wielkości liter). +SUBSTITUTE = PODSTAW ## Podstawia nowy tekst w miejsce poprzedniego tekstu w ciągu tekstowym. +T = T ## Konwertuje argumenty na tekst. +TEXT = TEKST ## Formatuje liczbę i konwertuje ją na tekst. +TRIM = USUŃ.ZBĘDNE.ODSTĘPY ## Usuwa spacje z tekstu. +UPPER = LITERY.WIELKIE ## Konwertuje znaki tekstu na wielkie litery. +VALUE = WARTOŚĆ ## Konwertuje argument tekstowy na liczbę. diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/pt/br/config b/plugins/excel_reader/Classes/PHPExcel/locale/pt/br/config new file mode 100755 index 0000000..b8e6964 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/pt/br/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = R$ + + +## +## Excel Error Codes (For future use) +## +NULL = #NULO! +DIV0 = #DIV/0! +VALUE = #VALOR! +REF = #REF! +NAME = #NOME? +NUM = #NÚM! +NA = #N/D diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/pt/br/functions b/plugins/excel_reader/Classes/PHPExcel/locale/pt/br/functions new file mode 100755 index 0000000..11d45f1 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/pt/br/functions @@ -0,0 +1,408 @@ +## +## Add-in and Automation functions Funções Suplemento e Automação +## +GETPIVOTDATA = INFODADOSTABELADINÂMICA ## Retorna os dados armazenados em um relatório de tabela dinâmica + + +## +## Cube functions Funções de Cubo +## +CUBEKPIMEMBER = MEMBROKPICUBO ## Retorna o nome de um KPI (indicador de desempenho-chave), uma propriedade e uma medida e exibe o nome e a propriedade na célula. Um KPI é uma medida quantificável, como o lucro bruto mensal ou a rotatividade trimestral dos funcionários, usada para monitorar o desempenho de uma organização. +CUBEMEMBER = MEMBROCUBO ## Retorna um membro ou tupla em uma hierarquia de cubo. Use para validar se o membro ou tupla existe no cubo. +CUBEMEMBERPROPERTY = PROPRIEDADEMEMBROCUBO ## Retorna o valor da propriedade de um membro no cubo. Usada para validar a existência do nome do membro no cubo e para retornar a propriedade especificada para esse membro. +CUBERANKEDMEMBER = MEMBROCLASSIFICADOCUBO ## Retorna o enésimo membro, ou o membro ordenado, em um conjunto. Use para retornar um ou mais elementos em um conjunto, assim como o melhor vendedor ou os dez melhores alunos. +CUBESET = CONJUNTOCUBO ## Define um conjunto calculado de membros ou tuplas enviando uma expressão do conjunto para o cubo no servidor, que cria o conjunto e o retorna para o Microsoft Office Excel. +CUBESETCOUNT = CONTAGEMCONJUNTOCUBO ## Retorna o número de itens em um conjunto. +CUBEVALUE = VALORCUBO ## Retorna um valor agregado de um cubo. + + +## +## Database functions Funções de banco de dados +## +DAVERAGE = BDMÉDIA ## Retorna a média das entradas selecionadas de um banco de dados +DCOUNT = BDCONTAR ## Conta as células que contêm números em um banco de dados +DCOUNTA = BDCONTARA ## Conta células não vazias em um banco de dados +DGET = BDEXTRAIR ## Extrai de um banco de dados um único registro que corresponde a um critério específico +DMAX = BDMÁX ## Retorna o valor máximo de entradas selecionadas de um banco de dados +DMIN = BDMÍN ## Retorna o valor mínimo de entradas selecionadas de um banco de dados +DPRODUCT = BDMULTIPL ## Multiplica os valores em um campo específico de registros que correspondem ao critério em um banco de dados +DSTDEV = BDEST ## Estima o desvio padrão com base em uma amostra de entradas selecionadas de um banco de dados +DSTDEVP = BDDESVPA ## Calcula o desvio padrão com base na população inteira de entradas selecionadas de um banco de dados +DSUM = BDSOMA ## Adiciona os números à coluna de campos de registros do banco de dados que correspondem ao critério +DVAR = BDVAREST ## Estima a variância com base em uma amostra de entradas selecionadas de um banco de dados +DVARP = BDVARP ## Calcula a variância com base na população inteira de entradas selecionadas de um banco de dados + + +## +## Date and time functions Funções de data e hora +## +DATE = DATA ## Retorna o número de série de uma data específica +DATEVALUE = DATA.VALOR ## Converte uma data na forma de texto para um número de série +DAY = DIA ## Converte um número de série em um dia do mês +DAYS360 = DIAS360 ## Calcula o número de dias entre duas datas com base em um ano de 360 dias +EDATE = DATAM ## Retorna o número de série da data que é o número indicado de meses antes ou depois da data inicial +EOMONTH = FIMMÊS ## Retorna o número de série do último dia do mês antes ou depois de um número especificado de meses +HOUR = HORA ## Converte um número de série em uma hora +MINUTE = MINUTO ## Converte um número de série em um minuto +MONTH = MÊS ## Converte um número de série em um mês +NETWORKDAYS = DIATRABALHOTOTAL ## Retorna o número de dias úteis inteiros entre duas datas +NOW = AGORA ## Retorna o número de série seqüencial da data e hora atuais +SECOND = SEGUNDO ## Converte um número de série em um segundo +TIME = HORA ## Retorna o número de série de uma hora específica +TIMEVALUE = VALOR.TEMPO ## Converte um horário na forma de texto para um número de série +TODAY = HOJE ## Retorna o número de série da data de hoje +WEEKDAY = DIA.DA.SEMANA ## Converte um número de série em um dia da semana +WEEKNUM = NÚMSEMANA ## Converte um número de série em um número que representa onde a semana cai numericamente em um ano +WORKDAY = DIATRABALHO ## Retorna o número de série da data antes ou depois de um número específico de dias úteis +YEAR = ANO ## Converte um número de série em um ano +YEARFRAC = FRAÇÃOANO ## Retorna a fração do ano que representa o número de dias entre data_inicial e data_final + + +## +## Engineering functions Funções de engenharia +## +BESSELI = BESSELI ## Retorna a função de Bessel In(x) modificada +BESSELJ = BESSELJ ## Retorna a função de Bessel Jn(x) +BESSELK = BESSELK ## Retorna a função de Bessel Kn(x) modificada +BESSELY = BESSELY ## Retorna a função de Bessel Yn(x) +BIN2DEC = BIN2DEC ## Converte um número binário em decimal +BIN2HEX = BIN2HEX ## Converte um número binário em hexadecimal +BIN2OCT = BIN2OCT ## Converte um número binário em octal +COMPLEX = COMPLEX ## Converte coeficientes reais e imaginários e um número complexo +CONVERT = CONVERTER ## Converte um número de um sistema de medida para outro +DEC2BIN = DECABIN ## Converte um número decimal em binário +DEC2HEX = DECAHEX ## Converte um número decimal em hexadecimal +DEC2OCT = DECAOCT ## Converte um número decimal em octal +DELTA = DELTA ## Testa se dois valores são iguais +ERF = FUNERRO ## Retorna a função de erro +ERFC = FUNERROCOMPL ## Retorna a função de erro complementar +GESTEP = DEGRAU ## Testa se um número é maior do que um valor limite +HEX2BIN = HEXABIN ## Converte um número hexadecimal em binário +HEX2DEC = HEXADEC ## Converte um número hexadecimal em decimal +HEX2OCT = HEXAOCT ## Converte um número hexadecimal em octal +IMABS = IMABS ## Retorna o valor absoluto (módulo) de um número complexo +IMAGINARY = IMAGINÁRIO ## Retorna o coeficiente imaginário de um número complexo +IMARGUMENT = IMARG ## Retorna o argumento teta, um ângulo expresso em radianos +IMCONJUGATE = IMCONJ ## Retorna o conjugado complexo de um número complexo +IMCOS = IMCOS ## Retorna o cosseno de um número complexo +IMDIV = IMDIV ## Retorna o quociente de dois números complexos +IMEXP = IMEXP ## Retorna o exponencial de um número complexo +IMLN = IMLN ## Retorna o logaritmo natural de um número complexo +IMLOG10 = IMLOG10 ## Retorna o logaritmo de base 10 de um número complexo +IMLOG2 = IMLOG2 ## Retorna o logaritmo de base 2 de um número complexo +IMPOWER = IMPOT ## Retorna um número complexo elevado a uma potência inteira +IMPRODUCT = IMPROD ## Retorna o produto de números complexos +IMREAL = IMREAL ## Retorna o coeficiente real de um número complexo +IMSIN = IMSENO ## Retorna o seno de um número complexo +IMSQRT = IMRAIZ ## Retorna a raiz quadrada de um número complexo +IMSUB = IMSUBTR ## Retorna a diferença entre dois números complexos +IMSUM = IMSOMA ## Retorna a soma de números complexos +OCT2BIN = OCTABIN ## Converte um número octal em binário +OCT2DEC = OCTADEC ## Converte um número octal em decimal +OCT2HEX = OCTAHEX ## Converte um número octal em hexadecimal + + +## +## Financial functions Funções financeiras +## +ACCRINT = JUROSACUM ## Retorna a taxa de juros acumulados de um título que paga uma taxa periódica de juros +ACCRINTM = JUROSACUMV ## Retorna os juros acumulados de um título que paga juros no vencimento +AMORDEGRC = AMORDEGRC ## Retorna a depreciação para cada período contábil usando o coeficiente de depreciação +AMORLINC = AMORLINC ## Retorna a depreciação para cada período contábil +COUPDAYBS = CUPDIASINLIQ ## Retorna o número de dias do início do período de cupom até a data de liquidação +COUPDAYS = CUPDIAS ## Retorna o número de dias no período de cupom que contém a data de quitação +COUPDAYSNC = CUPDIASPRÓX ## Retorna o número de dias da data de liquidação até a data do próximo cupom +COUPNCD = CUPDATAPRÓX ## Retorna a próxima data de cupom após a data de quitação +COUPNUM = CUPNÚM ## Retorna o número de cupons pagáveis entre as datas de quitação e vencimento +COUPPCD = CUPDATAANT ## Retorna a data de cupom anterior à data de quitação +CUMIPMT = PGTOJURACUM ## Retorna os juros acumulados pagos entre dois períodos +CUMPRINC = PGTOCAPACUM ## Retorna o capital acumulado pago sobre um empréstimo entre dois períodos +DB = BD ## Retorna a depreciação de um ativo para um período especificado, usando o método de balanço de declínio fixo +DDB = BDD ## Retorna a depreciação de um ativo com relação a um período especificado usando o método de saldos decrescentes duplos ou qualquer outro método especificado por você +DISC = DESC ## Retorna a taxa de desconto de um título +DOLLARDE = MOEDADEC ## Converte um preço em formato de moeda, na forma fracionária, em um preço na forma decimal +DOLLARFR = MOEDAFRA ## Converte um preço, apresentado na forma decimal, em um preço apresentado na forma fracionária +DURATION = DURAÇÃO ## Retorna a duração anual de um título com pagamentos de juros periódicos +EFFECT = EFETIVA ## Retorna a taxa de juros anual efetiva +FV = VF ## Retorna o valor futuro de um investimento +FVSCHEDULE = VFPLANO ## Retorna o valor futuro de um capital inicial após a aplicação de uma série de taxas de juros compostas +INTRATE = TAXAJUROS ## Retorna a taxa de juros de um título totalmente investido +IPMT = IPGTO ## Retorna o pagamento de juros para um investimento em um determinado período +IRR = TIR ## Retorna a taxa interna de retorno de uma série de fluxos de caixa +ISPMT = ÉPGTO ## Calcula os juros pagos durante um período específico de um investimento +MDURATION = MDURAÇÃO ## Retorna a duração de Macauley modificada para um título com um valor de paridade equivalente a R$ 100 +MIRR = MTIR ## Calcula a taxa interna de retorno em que fluxos de caixa positivos e negativos são financiados com diferentes taxas +NOMINAL = NOMINAL ## Retorna a taxa de juros nominal anual +NPER = NPER ## Retorna o número de períodos de um investimento +NPV = VPL ## Retorna o valor líquido atual de um investimento com base em uma série de fluxos de caixa periódicos e em uma taxa de desconto +ODDFPRICE = PREÇOPRIMINC ## Retorna o preço por R$ 100 de valor nominal de um título com um primeiro período indefinido +ODDFYIELD = LUCROPRIMINC ## Retorna o rendimento de um título com um primeiro período indefinido +ODDLPRICE = PREÇOÚLTINC ## Retorna o preço por R$ 100 de valor nominal de um título com um último período de cupom indefinido +ODDLYIELD = LUCROÚLTINC ## Retorna o rendimento de um título com um último período indefinido +PMT = PGTO ## Retorna o pagamento periódico de uma anuidade +PPMT = PPGTO ## Retorna o pagamento de capital para determinado período de investimento +PRICE = PREÇO ## Retorna a preço por R$ 100,00 de valor nominal de um título que paga juros periódicos +PRICEDISC = PREÇODESC ## Retorna o preço por R$ 100,00 de valor nominal de um título descontado +PRICEMAT = PREÇOVENC ## Retorna o preço por R$ 100,00 de valor nominal de um título que paga juros no vencimento +PV = VP ## Retorna o valor presente de um investimento +RATE = TAXA ## Retorna a taxa de juros por período de uma anuidade +RECEIVED = RECEBER ## Retorna a quantia recebida no vencimento de um título totalmente investido +SLN = DPD ## Retorna a depreciação em linha reta de um ativo durante um período +SYD = SDA ## Retorna a depreciação dos dígitos da soma dos anos de um ativo para um período especificado +TBILLEQ = OTN ## Retorna o rendimento de um título equivalente a uma obrigação do Tesouro +TBILLPRICE = OTNVALOR ## Retorna o preço por R$ 100,00 de valor nominal de uma obrigação do Tesouro +TBILLYIELD = OTNLUCRO ## Retorna o rendimento de uma obrigação do Tesouro +VDB = BDV ## Retorna a depreciação de um ativo para um período especificado ou parcial usando um método de balanço declinante +XIRR = XTIR ## Fornece a taxa interna de retorno para um programa de fluxos de caixa que não é necessariamente periódico +XNPV = XVPL ## Retorna o valor presente líquido de um programa de fluxos de caixa que não é necessariamente periódico +YIELD = LUCRO ## Retorna o lucro de um título que paga juros periódicos +YIELDDISC = LUCRODESC ## Retorna o rendimento anual de um título descontado. Por exemplo, uma obrigação do Tesouro +YIELDMAT = LUCROVENC ## Retorna o lucro anual de um título que paga juros no vencimento + + +## +## Information functions Funções de informação +## +CELL = CÉL ## Retorna informações sobre formatação, localização ou conteúdo de uma célula +ERROR.TYPE = TIPO.ERRO ## Retorna um número correspondente a um tipo de erro +INFO = INFORMAÇÃO ## Retorna informações sobre o ambiente operacional atual +ISBLANK = ÉCÉL.VAZIA ## Retorna VERDADEIRO se o valor for vazio +ISERR = ÉERRO ## Retorna VERDADEIRO se o valor for um valor de erro diferente de #N/D +ISERROR = ÉERROS ## Retorna VERDADEIRO se o valor for um valor de erro +ISEVEN = ÉPAR ## Retorna VERDADEIRO se o número for par +ISLOGICAL = ÉLÓGICO ## Retorna VERDADEIRO se o valor for um valor lógico +ISNA = É.NÃO.DISP ## Retorna VERDADEIRO se o valor for o valor de erro #N/D +ISNONTEXT = É.NÃO.TEXTO ## Retorna VERDADEIRO se o valor for diferente de texto +ISNUMBER = ÉNÚM ## Retorna VERDADEIRO se o valor for um número +ISODD = ÉIMPAR ## Retorna VERDADEIRO se o número for ímpar +ISREF = ÉREF ## Retorna VERDADEIRO se o valor for uma referência +ISTEXT = ÉTEXTO ## Retorna VERDADEIRO se o valor for texto +N = N ## Retorna um valor convertido em um número +NA = NÃO.DISP ## Retorna o valor de erro #N/D +TYPE = TIPO ## Retorna um número indicando o tipo de dados de um valor + + +## +## Logical functions Funções lógicas +## +AND = E ## Retorna VERDADEIRO se todos os seus argumentos forem VERDADEIROS +FALSE = FALSO ## Retorna o valor lógico FALSO +IF = SE ## Especifica um teste lógico a ser executado +IFERROR = SEERRO ## Retornará um valor que você especifica se uma fórmula for avaliada para um erro; do contrário, retornará o resultado da fórmula +NOT = NÃO ## Inverte o valor lógico do argumento +OR = OU ## Retorna VERDADEIRO se um dos argumentos for VERDADEIRO +TRUE = VERDADEIRO ## Retorna o valor lógico VERDADEIRO + + +## +## Lookup and reference functions Funções de pesquisa e referência +## +ADDRESS = ENDEREÇO ## Retorna uma referência como texto para uma única célula em uma planilha +AREAS = ÁREAS ## Retorna o número de áreas em uma referência +CHOOSE = ESCOLHER ## Escolhe um valor a partir de uma lista de valores +COLUMN = COL ## Retorna o número da coluna de uma referência +COLUMNS = COLS ## Retorna o número de colunas em uma referência +HLOOKUP = PROCH ## Procura na linha superior de uma matriz e retorna o valor da célula especificada +HYPERLINK = HYPERLINK ## Cria um atalho ou salto que abre um documento armazenado em um servidor de rede, uma intranet ou na Internet +INDEX = ÍNDICE ## Usa um índice para escolher um valor de uma referência ou matriz +INDIRECT = INDIRETO ## Retorna uma referência indicada por um valor de texto +LOOKUP = PROC ## Procura valores em um vetor ou em uma matriz +MATCH = CORRESP ## Procura valores em uma referência ou em uma matriz +OFFSET = DESLOC ## Retorna um deslocamento de referência com base em uma determinada referência +ROW = LIN ## Retorna o número da linha de uma referência +ROWS = LINS ## Retorna o número de linhas em uma referência +RTD = RTD ## Recupera dados em tempo real de um programa que ofereça suporte a automação COM (automação: uma forma de trabalhar com objetos de um aplicativo a partir de outro aplicativo ou ferramenta de desenvolvimento. Chamada inicialmente de automação OLE, a automação é um padrão industrial e um recurso do modelo de objeto componente (COM).) +TRANSPOSE = TRANSPOR ## Retorna a transposição de uma matriz +VLOOKUP = PROCV ## Procura na primeira coluna de uma matriz e move ao longo da linha para retornar o valor de uma célula + + +## +## Math and trigonometry functions Funções matemáticas e trigonométricas +## +ABS = ABS ## Retorna o valor absoluto de um número +ACOS = ACOS ## Retorna o arco cosseno de um número +ACOSH = ACOSH ## Retorna o cosseno hiperbólico inverso de um número +ASIN = ASEN ## Retorna o arco seno de um número +ASINH = ASENH ## Retorna o seno hiperbólico inverso de um número +ATAN = ATAN ## Retorna o arco tangente de um número +ATAN2 = ATAN2 ## Retorna o arco tangente das coordenadas x e y especificadas +ATANH = ATANH ## Retorna a tangente hiperbólica inversa de um número +CEILING = TETO ## Arredonda um número para o inteiro mais próximo ou para o múltiplo mais próximo de significância +COMBIN = COMBIN ## Retorna o número de combinações de um determinado número de objetos +COS = COS ## Retorna o cosseno de um número +COSH = COSH ## Retorna o cosseno hiperbólico de um número +DEGREES = GRAUS ## Converte radianos em graus +EVEN = PAR ## Arredonda um número para cima até o inteiro par mais próximo +EXP = EXP ## Retorna e elevado à potência de um número especificado +FACT = FATORIAL ## Retorna o fatorial de um número +FACTDOUBLE = FATDUPLO ## Retorna o fatorial duplo de um número +FLOOR = ARREDMULTB ## Arredonda um número para baixo até zero +GCD = MDC ## Retorna o máximo divisor comum +INT = INT ## Arredonda um número para baixo até o número inteiro mais próximo +LCM = MMC ## Retorna o mínimo múltiplo comum +LN = LN ## Retorna o logaritmo natural de um número +LOG = LOG ## Retorna o logaritmo de um número de uma base especificada +LOG10 = LOG10 ## Retorna o logaritmo de base 10 de um número +MDETERM = MATRIZ.DETERM ## Retorna o determinante de uma matriz de uma variável do tipo matriz +MINVERSE = MATRIZ.INVERSO ## Retorna a matriz inversa de uma matriz +MMULT = MATRIZ.MULT ## Retorna o produto de duas matrizes +MOD = RESTO ## Retorna o resto da divisão +MROUND = MARRED ## Retorna um número arredondado ao múltiplo desejado +MULTINOMIAL = MULTINOMIAL ## Retorna o multinomial de um conjunto de números +ODD = ÍMPAR ## Arredonda um número para cima até o inteiro ímpar mais próximo +PI = PI ## Retorna o valor de Pi +POWER = POTÊNCIA ## Fornece o resultado de um número elevado a uma potência +PRODUCT = MULT ## Multiplica seus argumentos +QUOTIENT = QUOCIENTE ## Retorna a parte inteira de uma divisão +RADIANS = RADIANOS ## Converte graus em radianos +RAND = ALEATÓRIO ## Retorna um número aleatório entre 0 e 1 +RANDBETWEEN = ALEATÓRIOENTRE ## Retorna um número aleatório entre os números especificados +ROMAN = ROMANO ## Converte um algarismo arábico em romano, como texto +ROUND = ARRED ## Arredonda um número até uma quantidade especificada de dígitos +ROUNDDOWN = ARREDONDAR.PARA.BAIXO ## Arredonda um número para baixo até zero +ROUNDUP = ARREDONDAR.PARA.CIMA ## Arredonda um número para cima, afastando-o de zero +SERIESSUM = SOMASEQÜÊNCIA ## Retorna a soma de uma série polinomial baseada na fórmula +SIGN = SINAL ## Retorna o sinal de um número +SIN = SEN ## Retorna o seno de um ângulo dado +SINH = SENH ## Retorna o seno hiperbólico de um número +SQRT = RAIZ ## Retorna uma raiz quadrada positiva +SQRTPI = RAIZPI ## Retorna a raiz quadrada de (núm* pi) +SUBTOTAL = SUBTOTAL ## Retorna um subtotal em uma lista ou em um banco de dados +SUM = SOMA ## Soma seus argumentos +SUMIF = SOMASE ## Adiciona as células especificadas por um determinado critério +SUMIFS = SOMASE ## Adiciona as células em um intervalo que atende a vários critérios +SUMPRODUCT = SOMARPRODUTO ## Retorna a soma dos produtos de componentes correspondentes de matrizes +SUMSQ = SOMAQUAD ## Retorna a soma dos quadrados dos argumentos +SUMX2MY2 = SOMAX2DY2 ## Retorna a soma da diferença dos quadrados dos valores correspondentes em duas matrizes +SUMX2PY2 = SOMAX2SY2 ## Retorna a soma da soma dos quadrados dos valores correspondentes em duas matrizes +SUMXMY2 = SOMAXMY2 ## Retorna a soma dos quadrados das diferenças dos valores correspondentes em duas matrizes +TAN = TAN ## Retorna a tangente de um número +TANH = TANH ## Retorna a tangente hiperbólica de um número +TRUNC = TRUNCAR ## Trunca um número para um inteiro + + +## +## Statistical functions Funções estatísticas +## +AVEDEV = DESV.MÉDIO ## Retorna a média aritmética dos desvios médios dos pontos de dados a partir de sua média +AVERAGE = MÉDIA ## Retorna a média dos argumentos +AVERAGEA = MÉDIAA ## Retorna a média dos argumentos, inclusive números, texto e valores lógicos +AVERAGEIF = MÉDIASE ## Retorna a média (média aritmética) de todas as células em um intervalo que atendem a um determinado critério +AVERAGEIFS = MÉDIASES ## Retorna a média (média aritmética) de todas as células que atendem a múltiplos critérios. +BETADIST = DISTBETA ## Retorna a função de distribuição cumulativa beta +BETAINV = BETA.ACUM.INV ## Retorna o inverso da função de distribuição cumulativa para uma distribuição beta especificada +BINOMDIST = DISTRBINOM ## Retorna a probabilidade de distribuição binomial do termo individual +CHIDIST = DIST.QUI ## Retorna a probabilidade unicaudal da distribuição qui-quadrada +CHIINV = INV.QUI ## Retorna o inverso da probabilidade uni-caudal da distribuição qui-quadrada +CHITEST = TESTE.QUI ## Retorna o teste para independência +CONFIDENCE = INT.CONFIANÇA ## Retorna o intervalo de confiança para uma média da população +CORREL = CORREL ## Retorna o coeficiente de correlação entre dois conjuntos de dados +COUNT = CONT.NÚM ## Calcula quantos números há na lista de argumentos +COUNTA = CONT.VALORES ## Calcula quantos valores há na lista de argumentos +COUNTBLANK = CONTAR.VAZIO ## Conta o número de células vazias no intervalo especificado +COUNTIF = CONT.SE ## Calcula o número de células não vazias em um intervalo que corresponde a determinados critérios +COUNTIFS = CONT.SES ## Conta o número de células dentro de um intervalo que atende a múltiplos critérios +COVAR = COVAR ## Retorna a covariância, a média dos produtos dos desvios pares +CRITBINOM = CRIT.BINOM ## Retorna o menor valor para o qual a distribuição binomial cumulativa é menor ou igual ao valor padrão +DEVSQ = DESVQ ## Retorna a soma dos quadrados dos desvios +EXPONDIST = DISTEXPON ## Retorna a distribuição exponencial +FDIST = DISTF ## Retorna a distribuição de probabilidade F +FINV = INVF ## Retorna o inverso da distribuição de probabilidades F +FISHER = FISHER ## Retorna a transformação Fisher +FISHERINV = FISHERINV ## Retorna o inverso da transformação Fisher +FORECAST = PREVISÃO ## Retorna um valor ao longo de uma linha reta +FREQUENCY = FREQÜÊNCIA ## Retorna uma distribuição de freqüência como uma matriz vertical +FTEST = TESTEF ## Retorna o resultado de um teste F +GAMMADIST = DISTGAMA ## Retorna a distribuição gama +GAMMAINV = INVGAMA ## Retorna o inverso da distribuição cumulativa gama +GAMMALN = LNGAMA ## Retorna o logaritmo natural da função gama, G(x) +GEOMEAN = MÉDIA.GEOMÉTRICA ## Retorna a média geométrica +GROWTH = CRESCIMENTO ## Retorna valores ao longo de uma tendência exponencial +HARMEAN = MÉDIA.HARMÔNICA ## Retorna a média harmônica +HYPGEOMDIST = DIST.HIPERGEOM ## Retorna a distribuição hipergeométrica +INTERCEPT = INTERCEPÇÃO ## Retorna a intercepção da linha de regressão linear +KURT = CURT ## Retorna a curtose de um conjunto de dados +LARGE = MAIOR ## Retorna o maior valor k-ésimo de um conjunto de dados +LINEST = PROJ.LIN ## Retorna os parâmetros de uma tendência linear +LOGEST = PROJ.LOG ## Retorna os parâmetros de uma tendência exponencial +LOGINV = INVLOG ## Retorna o inverso da distribuição lognormal +LOGNORMDIST = DIST.LOGNORMAL ## Retorna a distribuição lognormal cumulativa +MAX = MÁXIMO ## Retorna o valor máximo em uma lista de argumentos +MAXA = MÁXIMOA ## Retorna o maior valor em uma lista de argumentos, inclusive números, texto e valores lógicos +MEDIAN = MED ## Retorna a mediana dos números indicados +MIN = MÍNIMO ## Retorna o valor mínimo em uma lista de argumentos +MINA = MÍNIMOA ## Retorna o menor valor em uma lista de argumentos, inclusive números, texto e valores lógicos +MODE = MODO ## Retorna o valor mais comum em um conjunto de dados +NEGBINOMDIST = DIST.BIN.NEG ## Retorna a distribuição binomial negativa +NORMDIST = DIST.NORM ## Retorna a distribuição cumulativa normal +NORMINV = INV.NORM ## Retorna o inverso da distribuição cumulativa normal +NORMSDIST = DIST.NORMP ## Retorna a distribuição cumulativa normal padrão +NORMSINV = INV.NORMP ## Retorna o inverso da distribuição cumulativa normal padrão +PEARSON = PEARSON ## Retorna o coeficiente de correlação do momento do produto Pearson +PERCENTILE = PERCENTIL ## Retorna o k-ésimo percentil de valores em um intervalo +PERCENTRANK = ORDEM.PORCENTUAL ## Retorna a ordem percentual de um valor em um conjunto de dados +PERMUT = PERMUT ## Retorna o número de permutações de um determinado número de objetos +POISSON = POISSON ## Retorna a distribuição Poisson +PROB = PROB ## Retorna a probabilidade de valores em um intervalo estarem entre dois limites +QUARTILE = QUARTIL ## Retorna o quartil do conjunto de dados +RANK = ORDEM ## Retorna a posição de um número em uma lista de números +RSQ = RQUAD ## Retorna o quadrado do coeficiente de correlação do momento do produto de Pearson +SKEW = DISTORÇÃO ## Retorna a distorção de uma distribuição +SLOPE = INCLINAÇÃO ## Retorna a inclinação da linha de regressão linear +SMALL = MENOR ## Retorna o menor valor k-ésimo do conjunto de dados +STANDARDIZE = PADRONIZAR ## Retorna um valor normalizado +STDEV = DESVPAD ## Estima o desvio padrão com base em uma amostra +STDEVA = DESVPADA ## Estima o desvio padrão com base em uma amostra, inclusive números, texto e valores lógicos +STDEVP = DESVPADP ## Calcula o desvio padrão com base na população total +STDEVPA = DESVPADPA ## Calcula o desvio padrão com base na população total, inclusive números, texto e valores lógicos +STEYX = EPADYX ## Retorna o erro padrão do valor-y previsto para cada x da regressão +TDIST = DISTT ## Retorna a distribuição t de Student +TINV = INVT ## Retorna o inverso da distribuição t de Student +TREND = TENDÊNCIA ## Retorna valores ao longo de uma tendência linear +TRIMMEAN = MÉDIA.INTERNA ## Retorna a média do interior de um conjunto de dados +TTEST = TESTET ## Retorna a probabilidade associada ao teste t de Student +VAR = VAR ## Estima a variância com base em uma amostra +VARA = VARA ## Estima a variância com base em uma amostra, inclusive números, texto e valores lógicos +VARP = VARP ## Calcula a variância com base na população inteira +VARPA = VARPA ## Calcula a variância com base na população total, inclusive números, texto e valores lógicos +WEIBULL = WEIBULL ## Retorna a distribuição Weibull +ZTEST = TESTEZ ## Retorna o valor de probabilidade uni-caudal de um teste-z + + +## +## Text functions Funções de texto +## +ASC = ASC ## Altera letras do inglês ou katakana de largura total (bytes duplos) dentro de uma seqüência de caracteres para caracteres de meia largura (byte único) +BAHTTEXT = BAHTTEXT ## Converte um número em um texto, usando o formato de moeda ß (baht) +CHAR = CARACT ## Retorna o caractere especificado pelo número de código +CLEAN = TIRAR ## Remove todos os caracteres do texto que não podem ser impressos +CODE = CÓDIGO ## Retorna um código numérico para o primeiro caractere de uma seqüência de caracteres de texto +CONCATENATE = CONCATENAR ## Agrupa vários itens de texto em um único item de texto +DOLLAR = MOEDA ## Converte um número em texto, usando o formato de moeda $ (dólar) +EXACT = EXATO ## Verifica se dois valores de texto são idênticos +FIND = PROCURAR ## Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas) +FINDB = PROCURARB ## Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas) +FIXED = DEF.NÚM.DEC ## Formata um número como texto com um número fixo de decimais +JIS = JIS ## Altera letras do inglês ou katakana de meia largura (byte único) dentro de uma seqüência de caracteres para caracteres de largura total (bytes duplos) +LEFT = ESQUERDA ## Retorna os caracteres mais à esquerda de um valor de texto +LEFTB = ESQUERDAB ## Retorna os caracteres mais à esquerda de um valor de texto +LEN = NÚM.CARACT ## Retorna o número de caracteres em uma seqüência de texto +LENB = NÚM.CARACTB ## Retorna o número de caracteres em uma seqüência de texto +LOWER = MINÚSCULA ## Converte texto para minúsculas +MID = EXT.TEXTO ## Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada +MIDB = EXT.TEXTOB ## Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada +PHONETIC = FONÉTICA ## Extrai os caracteres fonéticos (furigana) de uma seqüência de caracteres de texto +PROPER = PRI.MAIÚSCULA ## Coloca a primeira letra de cada palavra em maiúscula em um valor de texto +REPLACE = MUDAR ## Muda os caracteres dentro do texto +REPLACEB = MUDARB ## Muda os caracteres dentro do texto +REPT = REPT ## Repete o texto um determinado número de vezes +RIGHT = DIREITA ## Retorna os caracteres mais à direita de um valor de texto +RIGHTB = DIREITAB ## Retorna os caracteres mais à direita de um valor de texto +SEARCH = LOCALIZAR ## Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas) +SEARCHB = LOCALIZARB ## Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas) +SUBSTITUTE = SUBSTITUIR ## Substitui um novo texto por um texto antigo em uma seqüência de texto +T = T ## Converte os argumentos em texto +TEXT = TEXTO ## Formata um número e o converte em texto +TRIM = ARRUMAR ## Remove espaços do texto +UPPER = MAIÚSCULA ## Converte o texto em maiúsculas +VALUE = VALOR ## Converte um argumento de texto em um número diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/pt/config b/plugins/excel_reader/Classes/PHPExcel/locale/pt/config new file mode 100755 index 0000000..595ee96 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/pt/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = € + + +## +## Excel Error Codes (For future use) +## +NULL = #NULO! +DIV0 = #DIV/0! +VALUE = #VALOR! +REF = #REF! +NAME = #NOME? +NUM = #NÚM! +NA = #N/D diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/pt/functions b/plugins/excel_reader/Classes/PHPExcel/locale/pt/functions new file mode 100755 index 0000000..05e8bca --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/pt/functions @@ -0,0 +1,408 @@ +## +## Add-in and Automation functions Funções de Suplemento e Automatização +## +GETPIVOTDATA = OBTERDADOSDIN ## Devolve dados armazenados num relatório de Tabela Dinâmica + + +## +## Cube functions Funções de cubo +## +CUBEKPIMEMBER = MEMBROKPICUBO ## Devolve o nome, propriedade e medição de um KPI (key performance indicator) e apresenta o nome e a propriedade na célula. Um KPI é uma medida quantificável, como, por exemplo, o lucro mensal bruto ou a rotatividade trimestral de pessoal, utilizada para monitorizar o desempenho de uma organização. +CUBEMEMBER = MEMBROCUBO ## Devolve um membro ou cadeia de identificação numa hierarquia de cubo. Utilizada para validar a existência do membro ou cadeia de identificação no cubo. +CUBEMEMBERPROPERTY = PROPRIEDADEMEMBROCUBO ## Devolve o valor de uma propriedade de membro no cubo. Utilizada para validar a existência de um nome de membro no cubo e para devolver a propriedade especificada para esse membro. +CUBERANKEDMEMBER = MEMBROCLASSIFICADOCUBO ## Devolve o enésimo ou a classificação mais alta num conjunto. Utilizada para devolver um ou mais elementos num conjunto, tal como o melhor vendedor ou os 10 melhores alunos. +CUBESET = CONJUNTOCUBO ## Define um conjunto calculado de membros ou cadeias de identificação enviando uma expressão de conjunto para o cubo no servidor, que cria o conjunto e, em seguida, devolve o conjunto ao Microsoft Office Excel. +CUBESETCOUNT = CONTARCONJUNTOCUBO ## Devolve o número de itens num conjunto. +CUBEVALUE = VALORCUBO ## Devolve um valor agregado do cubo. + + +## +## Database functions Funções de base de dados +## +DAVERAGE = BDMÉDIA ## Devolve a média das entradas da base de dados seleccionadas +DCOUNT = BDCONTAR ## Conta as células que contêm números numa base de dados +DCOUNTA = BDCONTAR.VAL ## Conta as células que não estejam em branco numa base de dados +DGET = BDOBTER ## Extrai de uma base de dados um único registo que corresponde aos critérios especificados +DMAX = BDMÁX ## Devolve o valor máximo das entradas da base de dados seleccionadas +DMIN = BDMÍN ## Devolve o valor mínimo das entradas da base de dados seleccionadas +DPRODUCT = BDMULTIPL ## Multiplica os valores de um determinado campo de registos que correspondem aos critérios numa base de dados +DSTDEV = BDDESVPAD ## Calcula o desvio-padrão com base numa amostra de entradas da base de dados seleccionadas +DSTDEVP = BDDESVPADP ## Calcula o desvio-padrão com base na população total das entradas da base de dados seleccionadas +DSUM = BDSOMA ## Adiciona os números na coluna de campo dos registos de base de dados que correspondem aos critérios +DVAR = BDVAR ## Calcula a variância com base numa amostra das entradas de base de dados seleccionadas +DVARP = BDVARP ## Calcula a variância com base na população total das entradas de base de dados seleccionadas + + +## +## Date and time functions Funções de data e hora +## +DATE = DATA ## Devolve o número de série de uma determinada data +DATEVALUE = DATA.VALOR ## Converte uma data em forma de texto num número de série +DAY = DIA ## Converte um número de série num dia do mês +DAYS360 = DIAS360 ## Calcula o número de dias entre duas datas com base num ano com 360 dias +EDATE = DATAM ## Devolve um número de série de data que corresponde ao número de meses indicado antes ou depois da data de início +EOMONTH = FIMMÊS ## Devolve o número de série do último dia do mês antes ou depois de um número de meses especificado +HOUR = HORA ## Converte um número de série numa hora +MINUTE = MINUTO ## Converte um número de série num minuto +MONTH = MÊS ## Converte um número de série num mês +NETWORKDAYS = DIATRABALHOTOTAL ## Devolve o número total de dias úteis entre duas datas +NOW = AGORA ## Devolve o número de série da data e hora actuais +SECOND = SEGUNDO ## Converte um número de série num segundo +TIME = TEMPO ## Devolve o número de série de um determinado tempo +TIMEVALUE = VALOR.TEMPO ## Converte um tempo em forma de texto num número de série +TODAY = HOJE ## Devolve o número de série da data actual +WEEKDAY = DIA.SEMANA ## Converte um número de série num dia da semana +WEEKNUM = NÚMSEMANA ## Converte um número de série num número que representa o número da semana num determinado ano +WORKDAY = DIA.TRABALHO ## Devolve o número de série da data antes ou depois de um número de dias úteis especificado +YEAR = ANO ## Converte um número de série num ano +YEARFRAC = FRACÇÃOANO ## Devolve a fracção de ano que representa o número de dias inteiros entre a data_de_início e a data_de_fim + + +## +## Engineering functions Funções de engenharia +## +BESSELI = BESSELI ## Devolve a função de Bessel modificada In(x) +BESSELJ = BESSELJ ## Devolve a função de Bessel Jn(x) +BESSELK = BESSELK ## Devolve a função de Bessel modificada Kn(x) +BESSELY = BESSELY ## Devolve a função de Bessel Yn(x) +BIN2DEC = BINADEC ## Converte um número binário em decimal +BIN2HEX = BINAHEX ## Converte um número binário em hexadecimal +BIN2OCT = BINAOCT ## Converte um número binário em octal +COMPLEX = COMPLEXO ## Converte coeficientes reais e imaginários num número complexo +CONVERT = CONVERTER ## Converte um número de um sistema de medida noutro +DEC2BIN = DECABIN ## Converte um número decimal em binário +DEC2HEX = DECAHEX ## Converte um número decimal em hexadecimal +DEC2OCT = DECAOCT ## Converte um número decimal em octal +DELTA = DELTA ## Testa se dois valores são iguais +ERF = FUNCERRO ## Devolve a função de erro +ERFC = FUNCERROCOMPL ## Devolve a função de erro complementar +GESTEP = DEGRAU ## Testa se um número é maior do que um valor limite +HEX2BIN = HEXABIN ## Converte um número hexadecimal em binário +HEX2DEC = HEXADEC ## Converte um número hexadecimal em decimal +HEX2OCT = HEXAOCT ## Converte um número hexadecimal em octal +IMABS = IMABS ## Devolve o valor absoluto (módulo) de um número complexo +IMAGINARY = IMAGINÁRIO ## Devolve o coeficiente imaginário de um número complexo +IMARGUMENT = IMARG ## Devolve o argumento Teta, um ângulo expresso em radianos +IMCONJUGATE = IMCONJ ## Devolve o conjugado complexo de um número complexo +IMCOS = IMCOS ## Devolve o co-seno de um número complexo +IMDIV = IMDIV ## Devolve o quociente de dois números complexos +IMEXP = IMEXP ## Devolve o exponencial de um número complexo +IMLN = IMLN ## Devolve o logaritmo natural de um número complexo +IMLOG10 = IMLOG10 ## Devolve o logaritmo de base 10 de um número complexo +IMLOG2 = IMLOG2 ## Devolve o logaritmo de base 2 de um número complexo +IMPOWER = IMPOT ## Devolve um número complexo elevado a uma potência inteira +IMPRODUCT = IMPROD ## Devolve o produto de números complexos +IMREAL = IMREAL ## Devolve o coeficiente real de um número complexo +IMSIN = IMSENO ## Devolve o seno de um número complexo +IMSQRT = IMRAIZ ## Devolve a raiz quadrada de um número complexo +IMSUB = IMSUBTR ## Devolve a diferença entre dois números complexos +IMSUM = IMSOMA ## Devolve a soma de números complexos +OCT2BIN = OCTABIN ## Converte um número octal em binário +OCT2DEC = OCTADEC ## Converte um número octal em decimal +OCT2HEX = OCTAHEX ## Converte um número octal em hexadecimal + + +## +## Financial functions Funções financeiras +## +ACCRINT = JUROSACUM ## Devolve os juros acumulados de um título que paga juros periódicos +ACCRINTM = JUROSACUMV ## Devolve os juros acumulados de um título que paga juros no vencimento +AMORDEGRC = AMORDEGRC ## Devolve a depreciação correspondente a cada período contabilístico utilizando um coeficiente de depreciação +AMORLINC = AMORLINC ## Devolve a depreciação correspondente a cada período contabilístico +COUPDAYBS = CUPDIASINLIQ ## Devolve o número de dias entre o início do período do cupão e a data de regularização +COUPDAYS = CUPDIAS ## Devolve o número de dias no período do cupão que contém a data de regularização +COUPDAYSNC = CUPDIASPRÓX ## Devolve o número de dias entre a data de regularização e a data do cupão seguinte +COUPNCD = CUPDATAPRÓX ## Devolve a data do cupão seguinte após a data de regularização +COUPNUM = CUPNÚM ## Devolve o número de cupões a serem pagos entre a data de regularização e a data de vencimento +COUPPCD = CUPDATAANT ## Devolve a data do cupão anterior antes da data de regularização +CUMIPMT = PGTOJURACUM ## Devolve os juros cumulativos pagos entre dois períodos +CUMPRINC = PGTOCAPACUM ## Devolve o capital cumulativo pago a título de empréstimo entre dois períodos +DB = BD ## Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas fixas +DDB = BDD ## Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas duplas ou qualquer outro método especificado +DISC = DESC ## Devolve a taxa de desconto de um título +DOLLARDE = MOEDADEC ## Converte um preço em unidade monetária, expresso como uma fracção, num preço em unidade monetária, expresso como um número decimal +DOLLARFR = MOEDAFRA ## Converte um preço em unidade monetária, expresso como um número decimal, num preço em unidade monetária, expresso como uma fracção +DURATION = DURAÇÃO ## Devolve a duração anual de um título com pagamentos de juros periódicos +EFFECT = EFECTIVA ## Devolve a taxa de juros anual efectiva +FV = VF ## Devolve o valor futuro de um investimento +FVSCHEDULE = VFPLANO ## Devolve o valor futuro de um capital inicial após a aplicação de uma série de taxas de juro compostas +INTRATE = TAXAJUROS ## Devolve a taxa de juros de um título investido na totalidade +IPMT = IPGTO ## Devolve o pagamento dos juros de um investimento durante um determinado período +IRR = TIR ## Devolve a taxa de rentabilidade interna para uma série de fluxos monetários +ISPMT = É.PGTO ## Calcula os juros pagos durante um período específico de um investimento +MDURATION = MDURAÇÃO ## Devolve a duração modificada de Macauley de um título com um valor de paridade equivalente a € 100 +MIRR = MTIR ## Devolve a taxa interna de rentabilidade em que os fluxos monetários positivos e negativos são financiados com taxas diferentes +NOMINAL = NOMINAL ## Devolve a taxa de juros nominal anual +NPER = NPER ## Devolve o número de períodos de um investimento +NPV = VAL ## Devolve o valor actual líquido de um investimento com base numa série de fluxos monetários periódicos e numa taxa de desconto +ODDFPRICE = PREÇOPRIMINC ## Devolve o preço por € 100 do valor nominal de um título com um período inicial incompleto +ODDFYIELD = LUCROPRIMINC ## Devolve o lucro de um título com um período inicial incompleto +ODDLPRICE = PREÇOÚLTINC ## Devolve o preço por € 100 do valor nominal de um título com um período final incompleto +ODDLYIELD = LUCROÚLTINC ## Devolve o lucro de um título com um período final incompleto +PMT = PGTO ## Devolve o pagamento periódico de uma anuidade +PPMT = PPGTO ## Devolve o pagamento sobre o capital de um investimento num determinado período +PRICE = PREÇO ## Devolve o preço por € 100 do valor nominal de um título que paga juros periódicos +PRICEDISC = PREÇODESC ## Devolve o preço por € 100 do valor nominal de um título descontado +PRICEMAT = PREÇOVENC ## Devolve o preço por € 100 do valor nominal de um título que paga juros no vencimento +PV = VA ## Devolve o valor actual de um investimento +RATE = TAXA ## Devolve a taxa de juros por período de uma anuidade +RECEIVED = RECEBER ## Devolve o montante recebido no vencimento de um título investido na totalidade +SLN = AMORT ## Devolve uma depreciação linear de um activo durante um período +SYD = AMORTD ## Devolve a depreciação por algarismos da soma dos anos de um activo durante um período especificado +TBILLEQ = OTN ## Devolve o lucro de um título equivalente a uma Obrigação do Tesouro +TBILLPRICE = OTNVALOR ## Devolve o preço por € 100 de valor nominal de uma Obrigação do Tesouro +TBILLYIELD = OTNLUCRO ## Devolve o lucro de uma Obrigação do Tesouro +VDB = BDV ## Devolve a depreciação de um activo relativo a um período específico ou parcial utilizando um método de quotas degressivas +XIRR = XTIR ## Devolve a taxa interna de rentabilidade de um plano de fluxos monetários que não seja necessariamente periódica +XNPV = XVAL ## Devolve o valor actual líquido de um plano de fluxos monetários que não seja necessariamente periódico +YIELD = LUCRO ## Devolve o lucro de um título que paga juros periódicos +YIELDDISC = LUCRODESC ## Devolve o lucro anual de um título emitido abaixo do valor nominal, por exemplo, uma Obrigação do Tesouro +YIELDMAT = LUCROVENC ## Devolve o lucro anual de um título que paga juros na data de vencimento + + +## +## Information functions Funções de informação +## +CELL = CÉL ## Devolve informações sobre a formatação, localização ou conteúdo de uma célula +ERROR.TYPE = TIPO.ERRO ## Devolve um número correspondente a um tipo de erro +INFO = INFORMAÇÃO ## Devolve informações sobre o ambiente de funcionamento actual +ISBLANK = É.CÉL.VAZIA ## Devolve VERDADEIRO se o valor estiver em branco +ISERR = É.ERROS ## Devolve VERDADEIRO se o valor for um valor de erro diferente de #N/D +ISERROR = É.ERRO ## Devolve VERDADEIRO se o valor for um valor de erro +ISEVEN = ÉPAR ## Devolve VERDADEIRO se o número for par +ISLOGICAL = É.LÓGICO ## Devolve VERDADEIRO se o valor for lógico +ISNA = É.NÃO.DISP ## Devolve VERDADEIRO se o valor for o valor de erro #N/D +ISNONTEXT = É.NÃO.TEXTO ## Devolve VERDADEIRO se o valor não for texto +ISNUMBER = É.NÚM ## Devolve VERDADEIRO se o valor for um número +ISODD = ÉÍMPAR ## Devolve VERDADEIRO se o número for ímpar +ISREF = É.REF ## Devolve VERDADEIRO se o valor for uma referência +ISTEXT = É.TEXTO ## Devolve VERDADEIRO se o valor for texto +N = N ## Devolve um valor convertido num número +NA = NÃO.DISP ## Devolve o valor de erro #N/D +TYPE = TIPO ## Devolve um número que indica o tipo de dados de um valor + + +## +## Logical functions Funções lógicas +## +AND = E ## Devolve VERDADEIRO se todos os respectivos argumentos corresponderem a VERDADEIRO +FALSE = FALSO ## Devolve o valor lógico FALSO +IF = SE ## Especifica um teste lógico a ser executado +IFERROR = SE.ERRO ## Devolve um valor definido pelo utilizador se ocorrer um erro na fórmula, e devolve o resultado da fórmula se não ocorrer nenhum erro +NOT = NÃO ## Inverte a lógica do respectivo argumento +OR = OU ## Devolve VERDADEIRO se qualquer argumento for VERDADEIRO +TRUE = VERDADEIRO ## Devolve o valor lógico VERDADEIRO + + +## +## Lookup and reference functions Funções de pesquisa e referência +## +ADDRESS = ENDEREÇO ## Devolve uma referência a uma única célula numa folha de cálculo como texto +AREAS = ÁREAS ## Devolve o número de áreas numa referência +CHOOSE = SELECCIONAR ## Selecciona um valor a partir de uma lista de valores +COLUMN = COL ## Devolve o número da coluna de uma referência +COLUMNS = COLS ## Devolve o número de colunas numa referência +HLOOKUP = PROCH ## Procura na linha superior de uma matriz e devolve o valor da célula indicada +HYPERLINK = HIPERLIGAÇÃO ## Cria um atalho ou hiperligação que abre um documento armazenado num servidor de rede, numa intranet ou na Internet +INDEX = ÍNDICE ## Utiliza um índice para escolher um valor de uma referência ou de uma matriz +INDIRECT = INDIRECTO ## Devolve uma referência indicada por um valor de texto +LOOKUP = PROC ## Procura valores num vector ou numa matriz +MATCH = CORRESP ## Procura valores numa referência ou numa matriz +OFFSET = DESLOCAMENTO ## Devolve o deslocamento de referência de uma determinada referência +ROW = LIN ## Devolve o número da linha de uma referência +ROWS = LINS ## Devolve o número de linhas numa referência +RTD = RTD ## Obtém dados em tempo real a partir de um programa que suporte automatização COM (automatização: modo de trabalhar com objectos de uma aplicação a partir de outra aplicação ou ferramenta de desenvolvimento. Anteriormente conhecida como automatização OLE, a automatização é uma norma da indústria de software e uma funcionalidade COM (Component Object Model).) +TRANSPOSE = TRANSPOR ## Devolve a transposição de uma matriz +VLOOKUP = PROCV ## Procura na primeira coluna de uma matriz e percorre a linha para devolver o valor de uma célula + + +## +## Math and trigonometry functions Funções matemáticas e trigonométricas +## +ABS = ABS ## Devolve o valor absoluto de um número +ACOS = ACOS ## Devolve o arco de co-seno de um número +ACOSH = ACOSH ## Devolve o co-seno hiperbólico inverso de um número +ASIN = ASEN ## Devolve o arco de seno de um número +ASINH = ASENH ## Devolve o seno hiperbólico inverso de um número +ATAN = ATAN ## Devolve o arco de tangente de um número +ATAN2 = ATAN2 ## Devolve o arco de tangente das coordenadas x e y +ATANH = ATANH ## Devolve a tangente hiperbólica inversa de um número +CEILING = ARRED.EXCESSO ## Arredonda um número para o número inteiro mais próximo ou para o múltiplo de significância mais próximo +COMBIN = COMBIN ## Devolve o número de combinações de um determinado número de objectos +COS = COS ## Devolve o co-seno de um número +COSH = COSH ## Devolve o co-seno hiperbólico de um número +DEGREES = GRAUS ## Converte radianos em graus +EVEN = PAR ## Arredonda um número por excesso para o número inteiro mais próximo +EXP = EXP ## Devolve e elevado à potência de um determinado número +FACT = FACTORIAL ## Devolve o factorial de um número +FACTDOUBLE = FACTDUPLO ## Devolve o factorial duplo de um número +FLOOR = ARRED.DEFEITO ## Arredonda um número por defeito até zero +GCD = MDC ## Devolve o maior divisor comum +INT = INT ## Arredonda um número por defeito para o número inteiro mais próximo +LCM = MMC ## Devolve o mínimo múltiplo comum +LN = LN ## Devolve o logaritmo natural de um número +LOG = LOG ## Devolve o logaritmo de um número com uma base especificada +LOG10 = LOG10 ## Devolve o logaritmo de base 10 de um número +MDETERM = MATRIZ.DETERM ## Devolve o determinante matricial de uma matriz +MINVERSE = MATRIZ.INVERSA ## Devolve o inverso matricial de uma matriz +MMULT = MATRIZ.MULT ## Devolve o produto matricial de duas matrizes +MOD = RESTO ## Devolve o resto da divisão +MROUND = MARRED ## Devolve um número arredondado para o múltiplo pretendido +MULTINOMIAL = POLINOMIAL ## Devolve o polinomial de um conjunto de números +ODD = ÍMPAR ## Arredonda por excesso um número para o número inteiro ímpar mais próximo +PI = PI ## Devolve o valor de pi +POWER = POTÊNCIA ## Devolve o resultado de um número elevado a uma potência +PRODUCT = PRODUTO ## Multiplica os respectivos argumentos +QUOTIENT = QUOCIENTE ## Devolve a parte inteira de uma divisão +RADIANS = RADIANOS ## Converte graus em radianos +RAND = ALEATÓRIO ## Devolve um número aleatório entre 0 e 1 +RANDBETWEEN = ALEATÓRIOENTRE ## Devolve um número aleatório entre os números especificados +ROMAN = ROMANO ## Converte um número árabe em romano, como texto +ROUND = ARRED ## Arredonda um número para um número de dígitos especificado +ROUNDDOWN = ARRED.PARA.BAIXO ## Arredonda um número por defeito até zero +ROUNDUP = ARRED.PARA.CIMA ## Arredonda um número por excesso, afastando-o de zero +SERIESSUM = SOMASÉRIE ## Devolve a soma de uma série de potências baseada na fórmula +SIGN = SINAL ## Devolve o sinal de um número +SIN = SEN ## Devolve o seno de um determinado ângulo +SINH = SENH ## Devolve o seno hiperbólico de um número +SQRT = RAIZQ ## Devolve uma raiz quadrada positiva +SQRTPI = RAIZPI ## Devolve a raiz quadrada de (núm * pi) +SUBTOTAL = SUBTOTAL ## Devolve um subtotal numa lista ou base de dados +SUM = SOMA ## Adiciona os respectivos argumentos +SUMIF = SOMA.SE ## Adiciona as células especificadas por um determinado critério +SUMIFS = SOMA.SE.S ## Adiciona as células num intervalo que cumpre vários critérios +SUMPRODUCT = SOMARPRODUTO ## Devolve a soma dos produtos de componentes de matrizes correspondentes +SUMSQ = SOMARQUAD ## Devolve a soma dos quadrados dos argumentos +SUMX2MY2 = SOMAX2DY2 ## Devolve a soma da diferença dos quadrados dos valores correspondentes em duas matrizes +SUMX2PY2 = SOMAX2SY2 ## Devolve a soma da soma dos quadrados dos valores correspondentes em duas matrizes +SUMXMY2 = SOMAXMY2 ## Devolve a soma dos quadrados da diferença dos valores correspondentes em duas matrizes +TAN = TAN ## Devolve a tangente de um número +TANH = TANH ## Devolve a tangente hiperbólica de um número +TRUNC = TRUNCAR ## Trunca um número para um número inteiro + + +## +## Statistical functions Funções estatísticas +## +AVEDEV = DESV.MÉDIO ## Devolve a média aritmética dos desvios absolutos à média dos pontos de dados +AVERAGE = MÉDIA ## Devolve a média dos respectivos argumentos +AVERAGEA = MÉDIAA ## Devolve uma média dos respectivos argumentos, incluindo números, texto e valores lógicos +AVERAGEIF = MÉDIA.SE ## Devolve a média aritmética de todas as células num intervalo que cumprem determinado critério +AVERAGEIFS = MÉDIA.SE.S ## Devolve a média aritmética de todas as células que cumprem múltiplos critérios +BETADIST = DISTBETA ## Devolve a função de distribuição cumulativa beta +BETAINV = BETA.ACUM.INV ## Devolve o inverso da função de distribuição cumulativa relativamente a uma distribuição beta específica +BINOMDIST = DISTRBINOM ## Devolve a probabilidade de distribuição binomial de termo individual +CHIDIST = DIST.CHI ## Devolve a probabilidade unicaudal da distribuição qui-quadrada +CHIINV = INV.CHI ## Devolve o inverso da probabilidade unicaudal da distribuição qui-quadrada +CHITEST = TESTE.CHI ## Devolve o teste para independência +CONFIDENCE = INT.CONFIANÇA ## Devolve o intervalo de confiança correspondente a uma média de população +CORREL = CORREL ## Devolve o coeficiente de correlação entre dois conjuntos de dados +COUNT = CONTAR ## Conta os números que existem na lista de argumentos +COUNTA = CONTAR.VAL ## Conta os valores que existem na lista de argumentos +COUNTBLANK = CONTAR.VAZIO ## Conta o número de células em branco num intervalo +COUNTIF = CONTAR.SE ## Calcula o número de células num intervalo que corresponde aos critérios determinados +COUNTIFS = CONTAR.SE.S ## Conta o número de células num intervalo que cumprem múltiplos critérios +COVAR = COVAR ## Devolve a covariância, que é a média dos produtos de desvios de pares +CRITBINOM = CRIT.BINOM ## Devolve o menor valor em que a distribuição binomial cumulativa é inferior ou igual a um valor de critério +DEVSQ = DESVQ ## Devolve a soma dos quadrados dos desvios +EXPONDIST = DISTEXPON ## Devolve a distribuição exponencial +FDIST = DISTF ## Devolve a distribuição da probabilidade F +FINV = INVF ## Devolve o inverso da distribuição da probabilidade F +FISHER = FISHER ## Devolve a transformação Fisher +FISHERINV = FISHERINV ## Devolve o inverso da transformação Fisher +FORECAST = PREVISÃO ## Devolve um valor ao longo de uma tendência linear +FREQUENCY = FREQUÊNCIA ## Devolve uma distribuição de frequência como uma matriz vertical +FTEST = TESTEF ## Devolve o resultado de um teste F +GAMMADIST = DISTGAMA ## Devolve a distribuição gama +GAMMAINV = INVGAMA ## Devolve o inverso da distribuição gama cumulativa +GAMMALN = LNGAMA ## Devolve o logaritmo natural da função gama, Γ(x) +GEOMEAN = MÉDIA.GEOMÉTRICA ## Devolve a média geométrica +GROWTH = CRESCIMENTO ## Devolve valores ao longo de uma tendência exponencial +HARMEAN = MÉDIA.HARMÓNICA ## Devolve a média harmónica +HYPGEOMDIST = DIST.HIPERGEOM ## Devolve a distribuição hipergeométrica +INTERCEPT = INTERCEPTAR ## Devolve a intercepção da linha de regressão linear +KURT = CURT ## Devolve a curtose de um conjunto de dados +LARGE = MAIOR ## Devolve o maior valor k-ésimo de um conjunto de dados +LINEST = PROJ.LIN ## Devolve os parâmetros de uma tendência linear +LOGEST = PROJ.LOG ## Devolve os parâmetros de uma tendência exponencial +LOGINV = INVLOG ## Devolve o inverso da distribuição normal logarítmica +LOGNORMDIST = DIST.NORMALLOG ## Devolve a distribuição normal logarítmica cumulativa +MAX = MÁXIMO ## Devolve o valor máximo numa lista de argumentos +MAXA = MÁXIMOA ## Devolve o valor máximo numa lista de argumentos, incluindo números, texto e valores lógicos +MEDIAN = MED ## Devolve a mediana dos números indicados +MIN = MÍNIMO ## Devolve o valor mínimo numa lista de argumentos +MINA = MÍNIMOA ## Devolve o valor mínimo numa lista de argumentos, incluindo números, texto e valores lógicos +MODE = MODA ## Devolve o valor mais comum num conjunto de dados +NEGBINOMDIST = DIST.BIN.NEG ## Devolve a distribuição binominal negativa +NORMDIST = DIST.NORM ## Devolve a distribuição cumulativa normal +NORMINV = INV.NORM ## Devolve o inverso da distribuição cumulativa normal +NORMSDIST = DIST.NORMP ## Devolve a distribuição cumulativa normal padrão +NORMSINV = INV.NORMP ## Devolve o inverso da distribuição cumulativa normal padrão +PEARSON = PEARSON ## Devolve o coeficiente de correlação momento/produto de Pearson +PERCENTILE = PERCENTIL ## Devolve o k-ésimo percentil de valores num intervalo +PERCENTRANK = ORDEM.PERCENTUAL ## Devolve a ordem percentual de um valor num conjunto de dados +PERMUT = PERMUTAR ## Devolve o número de permutações de um determinado número de objectos +POISSON = POISSON ## Devolve a distribuição de Poisson +PROB = PROB ## Devolve a probabilidade dos valores num intervalo se encontrarem entre dois limites +QUARTILE = QUARTIL ## Devolve o quartil de um conjunto de dados +RANK = ORDEM ## Devolve a ordem de um número numa lista numérica +RSQ = RQUAD ## Devolve o quadrado do coeficiente de correlação momento/produto de Pearson +SKEW = DISTORÇÃO ## Devolve a distorção de uma distribuição +SLOPE = DECLIVE ## Devolve o declive da linha de regressão linear +SMALL = MENOR ## Devolve o menor valor de k-ésimo de um conjunto de dados +STANDARDIZE = NORMALIZAR ## Devolve um valor normalizado +STDEV = DESVPAD ## Calcula o desvio-padrão com base numa amostra +STDEVA = DESVPADA ## Calcula o desvio-padrão com base numa amostra, incluindo números, texto e valores lógicos +STDEVP = DESVPADP ## Calcula o desvio-padrão com base na população total +STDEVPA = DESVPADPA ## Calcula o desvio-padrão com base na população total, incluindo números, texto e valores lógicos +STEYX = EPADYX ## Devolve o erro-padrão do valor de y previsto para cada x na regressão +TDIST = DISTT ## Devolve a distribuição t de Student +TINV = INVT ## Devolve o inverso da distribuição t de Student +TREND = TENDÊNCIA ## Devolve valores ao longo de uma tendência linear +TRIMMEAN = MÉDIA.INTERNA ## Devolve a média do interior de um conjunto de dados +TTEST = TESTET ## Devolve a probabilidade associada ao teste t de Student +VAR = VAR ## Calcula a variância com base numa amostra +VARA = VARA ## Calcula a variância com base numa amostra, incluindo números, texto e valores lógicos +VARP = VARP ## Calcula a variância com base na população total +VARPA = VARPA ## Calcula a variância com base na população total, incluindo números, texto e valores lógicos +WEIBULL = WEIBULL ## Devolve a distribuição Weibull +ZTEST = TESTEZ ## Devolve o valor de probabilidade unicaudal de um teste-z + + +## +## Text functions Funções de texto +## +ASC = ASC ## Altera letras ou katakana de largura total (byte duplo) numa cadeia de caracteres para caracteres de largura média (byte único) +BAHTTEXT = TEXTO.BAHT ## Converte um número em texto, utilizando o formato monetário ß (baht) +CHAR = CARÁCT ## Devolve o carácter especificado pelo número de código +CLEAN = LIMPAR ## Remove do texto todos os caracteres não imprimíveis +CODE = CÓDIGO ## Devolve um código numérico correspondente ao primeiro carácter numa cadeia de texto +CONCATENATE = CONCATENAR ## Agrupa vários itens de texto num único item de texto +DOLLAR = MOEDA ## Converte um número em texto, utilizando o formato monetário € (Euro) +EXACT = EXACTO ## Verifica se dois valores de texto são idênticos +FIND = LOCALIZAR ## Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas) +FINDB = LOCALIZARB ## Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas) +FIXED = FIXA ## Formata um número como texto com um número fixo de decimais +JIS = JIS ## Altera letras ou katakana de largura média (byte único) numa cadeia de caracteres para caracteres de largura total (byte duplo) +LEFT = ESQUERDA ## Devolve os caracteres mais à esquerda de um valor de texto +LEFTB = ESQUERDAB ## Devolve os caracteres mais à esquerda de um valor de texto +LEN = NÚM.CARACT ## Devolve o número de caracteres de uma cadeia de texto +LENB = NÚM.CARACTB ## Devolve o número de caracteres de uma cadeia de texto +LOWER = MINÚSCULAS ## Converte o texto em minúsculas +MID = SEG.TEXTO ## Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada +MIDB = SEG.TEXTOB ## Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada +PHONETIC = FONÉTICA ## Retira os caracteres fonéticos (furigana) de uma cadeia de texto +PROPER = INICIAL.MAIÚSCULA ## Coloca em maiúsculas a primeira letra de cada palavra de um valor de texto +REPLACE = SUBSTITUIR ## Substitui caracteres no texto +REPLACEB = SUBSTITUIRB ## Substitui caracteres no texto +REPT = REPETIR ## Repete texto um determinado número de vezes +RIGHT = DIREITA ## Devolve os caracteres mais à direita de um valor de texto +RIGHTB = DIREITAB ## Devolve os caracteres mais à direita de um valor de texto +SEARCH = PROCURAR ## Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas) +SEARCHB = PROCURARB ## Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas) +SUBSTITUTE = SUBST ## Substitui texto novo por texto antigo numa cadeia de texto +T = T ## Converte os respectivos argumentos em texto +TEXT = TEXTO ## Formata um número e converte-o em texto +TRIM = COMPACTAR ## Remove espaços do texto +UPPER = MAIÚSCULAS ## Converte texto em maiúsculas +VALUE = VALOR ## Converte um argumento de texto num número diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/ru/config b/plugins/excel_reader/Classes/PHPExcel/locale/ru/config new file mode 100755 index 0000000..aa7e685 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/ru/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = р + + +## +## Excel Error Codes (For future use) +## +NULL = #ПУСТО! +DIV0 = #ДЕЛ/0! +VALUE = #ЗНАЧ! +REF = #ССЫЛ! +NAME = #ИМЯ? +NUM = #ЧИСЛО! +NA = #Н/Д diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/ru/functions b/plugins/excel_reader/Classes/PHPExcel/locale/ru/functions new file mode 100755 index 0000000..f37afc2 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/ru/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from information provided by web-junior (http://www.web-junior.net/) +## +## + + +## +## Add-in and Automation functions Функции надстроек и автоматизации +## +GETPIVOTDATA = ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ ## Возвращает данные, хранящиеся в отчете сводной таблицы. + + +## +## Cube functions Функции Куб +## +CUBEKPIMEMBER = КУБЭЛЕМЕНТКИП ## Возвращает свойство ключевого индикатора производительности «(КИП)» и отображает имя «КИП» в ячейке. «КИП» представляет собой количественную величину, такую как ежемесячная валовая прибыль или ежеквартальная текучесть кадров, используемой для контроля эффективности работы организации. +CUBEMEMBER = КУБЭЛЕМЕНТ ## Возвращает элемент или кортеж из куба. Используется для проверки существования элемента или кортежа в кубе. +CUBEMEMBERPROPERTY = КУБСВОЙСТВОЭЛЕМЕНТА ## Возвращает значение свойства элемента из куба. Используется для проверки существования имени элемента в кубе и возвращает указанное свойство для этого элемента. +CUBERANKEDMEMBER = КУБПОРЭЛЕМЕНТ ## Возвращает n-ый или ранжированный элемент в множество. Используется для возвращения одного или нескольких элементов в множество, например, лучшего продавца или 10 лучших студентов. +CUBESET = КУБМНОЖ ## Определяет вычислительное множество элементов или кортежей, отправляя на сервер выражение, которое создает множество, а затем возвращает его в Microsoft Office Excel. +CUBESETCOUNT = КУБЧИСЛОЭЛМНОЖ ## Возвращает число элементов множества. +CUBEVALUE = КУБЗНАЧЕНИЕ ## Возвращает обобщенное значение из куба. + + +## +## Database functions Функции для работы с базами данных +## +DAVERAGE = ДСРЗНАЧ ## Возвращает среднее значение выбранных записей базы данных. +DCOUNT = БСЧЁТ ## Подсчитывает количество числовых ячеек в базе данных. +DCOUNTA = БСЧЁТА ## Подсчитывает количество непустых ячеек в базе данных. +DGET = БИЗВЛЕЧЬ ## Извлекает из базы данных одну запись, удовлетворяющую заданному условию. +DMAX = ДМАКС ## Возвращает максимальное значение среди выделенных записей базы данных. +DMIN = ДМИН ## Возвращает минимальное значение среди выделенных записей базы данных. +DPRODUCT = БДПРОИЗВЕД ## Перемножает значения определенного поля в записях базы данных, удовлетворяющих условию. +DSTDEV = ДСТАНДОТКЛ ## Оценивает стандартное отклонение по выборке для выделенных записей базы данных. +DSTDEVP = ДСТАНДОТКЛП ## Вычисляет стандартное отклонение по генеральной совокупности для выделенных записей базы данных +DSUM = БДСУММ ## Суммирует числа в поле для записей базы данных, удовлетворяющих условию. +DVAR = БДДИСП ## Оценивает дисперсию по выборке из выделенных записей базы данных +DVARP = БДДИСПП ## Вычисляет дисперсию по генеральной совокупности для выделенных записей базы данных + + +## +## Date and time functions Функции даты и времени +## +DATE = ДАТА ## Возвращает заданную дату в числовом формате. +DATEVALUE = ДАТАЗНАЧ ## Преобразует дату из текстового формата в числовой формат. +DAY = ДЕНЬ ## Преобразует дату в числовом формате в день месяца. +DAYS360 = ДНЕЙ360 ## Вычисляет количество дней между двумя датами на основе 360-дневного года. +EDATE = ДАТАМЕС ## Возвращает дату в числовом формате, отстоящую на заданное число месяцев вперед или назад от начальной даты. +EOMONTH = КОНМЕСЯЦА ## Возвращает дату в числовом формате для последнего дня месяца, отстоящего вперед или назад на заданное число месяцев. +HOUR = ЧАС ## Преобразует дату в числовом формате в часы. +MINUTE = МИНУТЫ ## Преобразует дату в числовом формате в минуты. +MONTH = МЕСЯЦ ## Преобразует дату в числовом формате в месяцы. +NETWORKDAYS = ЧИСТРАБДНИ ## Возвращает количество рабочих дней между двумя датами. +NOW = ТДАТА ## Возвращает текущую дату и время в числовом формате. +SECOND = СЕКУНДЫ ## Преобразует дату в числовом формате в секунды. +TIME = ВРЕМЯ ## Возвращает заданное время в числовом формате. +TIMEVALUE = ВРЕМЗНАЧ ## Преобразует время из текстового формата в числовой формат. +TODAY = СЕГОДНЯ ## Возвращает текущую дату в числовом формате. +WEEKDAY = ДЕНЬНЕД ## Преобразует дату в числовом формате в день недели. +WEEKNUM = НОМНЕДЕЛИ ## Преобразует числовое представление в число, которое указывает, на какую неделю года приходится указанная дата. +WORKDAY = РАБДЕНЬ ## Возвращает дату в числовом формате, отстоящую вперед или назад на заданное количество рабочих дней. +YEAR = ГОД ## Преобразует дату в числовом формате в год. +YEARFRAC = ДОЛЯГОДА ## Возвращает долю года, которую составляет количество дней между начальной и конечной датами. + + +## +## Engineering functions Инженерные функции +## +BESSELI = БЕССЕЛЬ.I ## Возвращает модифицированную функцию Бесселя In(x). +BESSELJ = БЕССЕЛЬ.J ## Возвращает функцию Бесселя Jn(x). +BESSELK = БЕССЕЛЬ.K ## Возвращает модифицированную функцию Бесселя Kn(x). +BESSELY = БЕССЕЛЬ.Y ## Возвращает функцию Бесселя Yn(x). +BIN2DEC = ДВ.В.ДЕС ## Преобразует двоичное число в десятичное. +BIN2HEX = ДВ.В.ШЕСТН ## Преобразует двоичное число в шестнадцатеричное. +BIN2OCT = ДВ.В.ВОСЬМ ## Преобразует двоичное число в восьмеричное. +COMPLEX = КОМПЛЕКСН ## Преобразует коэффициенты при вещественной и мнимой частях комплексного числа в комплексное число. +CONVERT = ПРЕОБР ## Преобразует число из одной системы единиц измерения в другую. +DEC2BIN = ДЕС.В.ДВ ## Преобразует десятичное число в двоичное. +DEC2HEX = ДЕС.В.ШЕСТН ## Преобразует десятичное число в шестнадцатеричное. +DEC2OCT = ДЕС.В.ВОСЬМ ## Преобразует десятичное число в восьмеричное. +DELTA = ДЕЛЬТА ## Проверяет равенство двух значений. +ERF = ФОШ ## Возвращает функцию ошибки. +ERFC = ДФОШ ## Возвращает дополнительную функцию ошибки. +GESTEP = ПОРОГ ## Проверяет, не превышает ли данное число порогового значения. +HEX2BIN = ШЕСТН.В.ДВ ## Преобразует шестнадцатеричное число в двоичное. +HEX2DEC = ШЕСТН.В.ДЕС ## Преобразует шестнадцатеричное число в десятичное. +HEX2OCT = ШЕСТН.В.ВОСЬМ ## Преобразует шестнадцатеричное число в восьмеричное. +IMABS = МНИМ.ABS ## Возвращает абсолютную величину (модуль) комплексного числа. +IMAGINARY = МНИМ.ЧАСТЬ ## Возвращает коэффициент при мнимой части комплексного числа. +IMARGUMENT = МНИМ.АРГУМЕНТ ## Возвращает значение аргумента комплексного числа (тета) — угол, выраженный в радианах. +IMCONJUGATE = МНИМ.СОПРЯЖ ## Возвращает комплексно-сопряженное комплексное число. +IMCOS = МНИМ.COS ## Возвращает косинус комплексного числа. +IMDIV = МНИМ.ДЕЛ ## Возвращает частное от деления двух комплексных чисел. +IMEXP = МНИМ.EXP ## Возвращает экспоненту комплексного числа. +IMLN = МНИМ.LN ## Возвращает натуральный логарифм комплексного числа. +IMLOG10 = МНИМ.LOG10 ## Возвращает обычный (десятичный) логарифм комплексного числа. +IMLOG2 = МНИМ.LOG2 ## Возвращает двоичный логарифм комплексного числа. +IMPOWER = МНИМ.СТЕПЕНЬ ## Возвращает комплексное число, возведенное в целую степень. +IMPRODUCT = МНИМ.ПРОИЗВЕД ## Возвращает произведение от 2 до 29 комплексных чисел. +IMREAL = МНИМ.ВЕЩ ## Возвращает коэффициент при вещественной части комплексного числа. +IMSIN = МНИМ.SIN ## Возвращает синус комплексного числа. +IMSQRT = МНИМ.КОРЕНЬ ## Возвращает значение квадратного корня из комплексного числа. +IMSUB = МНИМ.РАЗН ## Возвращает разность двух комплексных чисел. +IMSUM = МНИМ.СУММ ## Возвращает сумму комплексных чисел. +OCT2BIN = ВОСЬМ.В.ДВ ## Преобразует восьмеричное число в двоичное. +OCT2DEC = ВОСЬМ.В.ДЕС ## Преобразует восьмеричное число в десятичное. +OCT2HEX = ВОСЬМ.В.ШЕСТН ## Преобразует восьмеричное число в шестнадцатеричное. + + +## +## Financial functions Финансовые функции +## +ACCRINT = НАКОПДОХОД ## Возвращает накопленный процент по ценным бумагам с периодической выплатой процентов. +ACCRINTM = НАКОПДОХОДПОГАШ ## Возвращает накопленный процент по ценным бумагам, проценты по которым выплачиваются в срок погашения. +AMORDEGRC = АМОРУМ ## Возвращает величину амортизации для каждого периода, используя коэффициент амортизации. +AMORLINC = АМОРУВ ## Возвращает величину амортизации для каждого периода. +COUPDAYBS = ДНЕЙКУПОНДО ## Возвращает количество дней от начала действия купона до даты соглашения. +COUPDAYS = ДНЕЙКУПОН ## Возвращает число дней в периоде купона, содержащем дату соглашения. +COUPDAYSNC = ДНЕЙКУПОНПОСЛЕ ## Возвращает число дней от даты соглашения до срока следующего купона. +COUPNCD = ДАТАКУПОНПОСЛЕ ## Возвращает следующую дату купона после даты соглашения. +COUPNUM = ЧИСЛКУПОН ## Возвращает количество купонов, которые могут быть оплачены между датой соглашения и сроком вступления в силу. +COUPPCD = ДАТАКУПОНДО ## Возвращает предыдущую дату купона перед датой соглашения. +CUMIPMT = ОБЩПЛАТ ## Возвращает общую выплату, произведенную между двумя периодическими выплатами. +CUMPRINC = ОБЩДОХОД ## Возвращает общую выплату по займу между двумя периодами. +DB = ФУО ## Возвращает величину амортизации актива для заданного периода, рассчитанную методом фиксированного уменьшения остатка. +DDB = ДДОБ ## Возвращает величину амортизации актива за данный период, используя метод двойного уменьшения остатка или иной явно указанный метод. +DISC = СКИДКА ## Возвращает норму скидки для ценных бумаг. +DOLLARDE = РУБЛЬ.ДЕС ## Преобразует цену в рублях, выраженную в виде дроби, в цену в рублях, выраженную десятичным числом. +DOLLARFR = РУБЛЬ.ДРОБЬ ## Преобразует цену в рублях, выраженную десятичным числом, в цену в рублях, выраженную в виде дроби. +DURATION = ДЛИТ ## Возвращает ежегодную продолжительность действия ценных бумаг с периодическими выплатами по процентам. +EFFECT = ЭФФЕКТ ## Возвращает действующие ежегодные процентные ставки. +FV = БС ## Возвращает будущую стоимость инвестиции. +FVSCHEDULE = БЗРАСПИС ## Возвращает будущую стоимость первоначальной основной суммы после начисления ряда сложных процентов. +INTRATE = ИНОРМА ## Возвращает процентную ставку для полностью инвестированных ценных бумаг. +IPMT = ПРПЛТ ## Возвращает величину выплаты прибыли на вложения за данный период. +IRR = ВСД ## Возвращает внутреннюю ставку доходности для ряда потоков денежных средств. +ISPMT = ПРОЦПЛАТ ## Вычисляет выплаты за указанный период инвестиции. +MDURATION = МДЛИТ ## Возвращает модифицированную длительность Маколея для ценных бумаг с предполагаемой номинальной стоимостью 100 рублей. +MIRR = МВСД ## Возвращает внутреннюю ставку доходности, при которой положительные и отрицательные денежные потоки имеют разные значения ставки. +NOMINAL = НОМИНАЛ ## Возвращает номинальную годовую процентную ставку. +NPER = КПЕР ## Возвращает общее количество периодов выплаты для данного вклада. +NPV = ЧПС ## Возвращает чистую приведенную стоимость инвестиции, основанной на серии периодических денежных потоков и ставке дисконтирования. +ODDFPRICE = ЦЕНАПЕРВНЕРЕГ ## Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг с нерегулярным первым периодом. +ODDFYIELD = ДОХОДПЕРВНЕРЕГ ## Возвращает доход по ценным бумагам с нерегулярным первым периодом. +ODDLPRICE = ЦЕНАПОСЛНЕРЕГ ## Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг с нерегулярным последним периодом. +ODDLYIELD = ДОХОДПОСЛНЕРЕГ ## Возвращает доход по ценным бумагам с нерегулярным последним периодом. +PMT = ПЛТ ## Возвращает величину выплаты за один период аннуитета. +PPMT = ОСПЛТ ## Возвращает величину выплат в погашение основной суммы по инвестиции за заданный период. +PRICE = ЦЕНА ## Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг, по которым производится периодическая выплата процентов. +PRICEDISC = ЦЕНАСКИДКА ## Возвращает цену за 100 рублей номинальной стоимости ценных бумаг, на которые сделана скидка. +PRICEMAT = ЦЕНАПОГАШ ## Возвращает цену за 100 рублей номинальной стоимости ценных бумаг, проценты по которым выплачиваются в срок погашения. +PV = ПС ## Возвращает приведенную (к текущему моменту) стоимость инвестиции. +RATE = СТАВКА ## Возвращает процентную ставку по аннуитету за один период. +RECEIVED = ПОЛУЧЕНО ## Возвращает сумму, полученную к сроку погашения полностью обеспеченных ценных бумаг. +SLN = АПЛ ## Возвращает величину линейной амортизации актива за один период. +SYD = АСЧ ## Возвращает величину амортизации актива за данный период, рассчитанную методом суммы годовых чисел. +TBILLEQ = РАВНОКЧЕК ## Возвращает эквивалентный облигации доход по казначейскому чеку. +TBILLPRICE = ЦЕНАКЧЕК ## Возвращает цену за 100 рублей нарицательной стоимости для казначейского чека. +TBILLYIELD = ДОХОДКЧЕК ## Возвращает доход по казначейскому чеку. +VDB = ПУО ## Возвращает величину амортизации актива для указанного или частичного периода при использовании метода сокращающегося баланса. +XIRR = ЧИСТВНДОХ ## Возвращает внутреннюю ставку доходности для графика денежных потоков, которые не обязательно носят периодический характер. +XNPV = ЧИСТНЗ ## Возвращает чистую приведенную стоимость для денежных потоков, которые не обязательно являются периодическими. +YIELD = ДОХОД ## Возвращает доход от ценных бумаг, по которым производятся периодические выплаты процентов. +YIELDDISC = ДОХОДСКИДКА ## Возвращает годовой доход по ценным бумагам, на которые сделана скидка (пример — казначейские чеки). +YIELDMAT = ДОХОДПОГАШ ## Возвращает годовой доход от ценных бумаг, проценты по которым выплачиваются в срок погашения. + + +## +## Information functions Информационные функции +## +CELL = ЯЧЕЙКА ## Возвращает информацию о формате, расположении или содержимом ячейки. +ERROR.TYPE = ТИП.ОШИБКИ ## Возвращает числовой код, соответствующий типу ошибки. +INFO = ИНФОРМ ## Возвращает информацию о текущей операционной среде. +ISBLANK = ЕПУСТО ## Возвращает значение ИСТИНА, если аргумент является ссылкой на пустую ячейку. +ISERR = ЕОШ ## Возвращает значение ИСТИНА, если аргумент ссылается на любое значение ошибки, кроме #Н/Д. +ISERROR = ЕОШИБКА ## Возвращает значение ИСТИНА, если аргумент ссылается на любое значение ошибки. +ISEVEN = ЕЧЁТН ## Возвращает значение ИСТИНА, если значение аргумента является четным числом. +ISLOGICAL = ЕЛОГИЧ ## Возвращает значение ИСТИНА, если аргумент ссылается на логическое значение. +ISNA = ЕНД ## Возвращает значение ИСТИНА, если аргумент ссылается на значение ошибки #Н/Д. +ISNONTEXT = ЕНЕТЕКСТ ## Возвращает значение ИСТИНА, если значение аргумента не является текстом. +ISNUMBER = ЕЧИСЛО ## Возвращает значение ИСТИНА, если аргумент ссылается на число. +ISODD = ЕНЕЧЁТ ## Возвращает значение ИСТИНА, если значение аргумента является нечетным числом. +ISREF = ЕССЫЛКА ## Возвращает значение ИСТИНА, если значение аргумента является ссылкой. +ISTEXT = ЕТЕКСТ ## Возвращает значение ИСТИНА, если значение аргумента является текстом. +N = Ч ## Возвращает значение, преобразованное в число. +NA = НД ## Возвращает значение ошибки #Н/Д. +TYPE = ТИП ## Возвращает число, обозначающее тип данных значения. + + +## +## Logical functions Логические функции +## +AND = И ## Renvoie VRAI si tous ses arguments sont VRAI. +FALSE = ЛОЖЬ ## Возвращает логическое значение ЛОЖЬ. +IF = ЕСЛИ ## Выполняет проверку условия. +IFERROR = ЕСЛИОШИБКА ## Возвращает введённое значение, если вычисление по формуле вызывает ошибку; в противном случае функция возвращает результат вычисления. +NOT = НЕ ## Меняет логическое значение своего аргумента на противоположное. +OR = ИЛИ ## Возвращает значение ИСТИНА, если хотя бы один аргумент имеет значение ИСТИНА. +TRUE = ИСТИНА ## Возвращает логическое значение ИСТИНА. + + +## +## Lookup and reference functions Функции ссылки и поиска +## +ADDRESS = АДРЕС ## Возвращает ссылку на отдельную ячейку листа в виде текста. +AREAS = ОБЛАСТИ ## Возвращает количество областей в ссылке. +CHOOSE = ВЫБОР ## Выбирает значение из списка значений по индексу. +COLUMN = СТОЛБЕЦ ## Возвращает номер столбца, на который указывает ссылка. +COLUMNS = ЧИСЛСТОЛБ ## Возвращает количество столбцов в ссылке. +HLOOKUP = ГПР ## Ищет в первой строке массива и возвращает значение отмеченной ячейки +HYPERLINK = ГИПЕРССЫЛКА ## Создает ссылку, открывающую документ, который находится на сервере сети, в интрасети или в Интернете. +INDEX = ИНДЕКС ## Использует индекс для выбора значения из ссылки или массива. +INDIRECT = ДВССЫЛ ## Возвращает ссылку, заданную текстовым значением. +LOOKUP = ПРОСМОТР ## Ищет значения в векторе или массиве. +MATCH = ПОИСКПОЗ ## Ищет значения в ссылке или массиве. +OFFSET = СМЕЩ ## Возвращает смещение ссылки относительно заданной ссылки. +ROW = СТРОКА ## Возвращает номер строки, определяемой ссылкой. +ROWS = ЧСТРОК ## Возвращает количество строк в ссылке. +RTD = ДРВ ## Извлекает данные реального времени из программ, поддерживающих автоматизацию COM (Программирование объектов. Стандартное средство для работы с объектами некоторого приложения из другого приложения или средства разработки. Программирование объектов (ранее называемое программированием OLE) является функцией модели COM (Component Object Model, модель компонентных объектов).). +TRANSPOSE = ТРАНСП ## Возвращает транспонированный массив. +VLOOKUP = ВПР ## Ищет значение в первом столбце массива и возвращает значение из ячейки в найденной строке и указанном столбце. + + +## +## Math and trigonometry functions Математические и тригонометрические функции +## +ABS = ABS ## Возвращает модуль (абсолютную величину) числа. +ACOS = ACOS ## Возвращает арккосинус числа. +ACOSH = ACOSH ## Возвращает гиперболический арккосинус числа. +ASIN = ASIN ## Возвращает арксинус числа. +ASINH = ASINH ## Возвращает гиперболический арксинус числа. +ATAN = ATAN ## Возвращает арктангенс числа. +ATAN2 = ATAN2 ## Возвращает арктангенс для заданных координат x и y. +ATANH = ATANH ## Возвращает гиперболический арктангенс числа. +CEILING = ОКРВВЕРХ ## Округляет число до ближайшего целого или до ближайшего кратного указанному значению. +COMBIN = ЧИСЛКОМБ ## Возвращает количество комбинаций для заданного числа объектов. +COS = COS ## Возвращает косинус числа. +COSH = COSH ## Возвращает гиперболический косинус числа. +DEGREES = ГРАДУСЫ ## Преобразует радианы в градусы. +EVEN = ЧЁТН ## Округляет число до ближайшего четного целого. +EXP = EXP ## Возвращает число e, возведенное в указанную степень. +FACT = ФАКТР ## Возвращает факториал числа. +FACTDOUBLE = ДВФАКТР ## Возвращает двойной факториал числа. +FLOOR = ОКРВНИЗ ## Округляет число до ближайшего меньшего по модулю значения. +GCD = НОД ## Возвращает наибольший общий делитель. +INT = ЦЕЛОЕ ## Округляет число до ближайшего меньшего целого. +LCM = НОК ## Возвращает наименьшее общее кратное. +LN = LN ## Возвращает натуральный логарифм числа. +LOG = LOG ## Возвращает логарифм числа по заданному основанию. +LOG10 = LOG10 ## Возвращает десятичный логарифм числа. +MDETERM = МОПРЕД ## Возвращает определитель матрицы массива. +MINVERSE = МОБР ## Возвращает обратную матрицу массива. +MMULT = МУМНОЖ ## Возвращает произведение матриц двух массивов. +MOD = ОСТАТ ## Возвращает остаток от деления. +MROUND = ОКРУГЛТ ## Возвращает число, округленное с требуемой точностью. +MULTINOMIAL = МУЛЬТИНОМ ## Возвращает мультиномиальный коэффициент множества чисел. +ODD = НЕЧЁТ ## Округляет число до ближайшего нечетного целого. +PI = ПИ ## Возвращает число пи. +POWER = СТЕПЕНЬ ## Возвращает результат возведения числа в степень. +PRODUCT = ПРОИЗВЕД ## Возвращает произведение аргументов. +QUOTIENT = ЧАСТНОЕ ## Возвращает целую часть частного при делении. +RADIANS = РАДИАНЫ ## Преобразует градусы в радианы. +RAND = СЛЧИС ## Возвращает случайное число в интервале от 0 до 1. +RANDBETWEEN = СЛУЧМЕЖДУ ## Возвращает случайное число в интервале между двумя заданными числами. +ROMAN = РИМСКОЕ ## Преобразует арабские цифры в римские в виде текста. +ROUND = ОКРУГЛ ## Округляет число до указанного количества десятичных разрядов. +ROUNDDOWN = ОКРУГЛВНИЗ ## Округляет число до ближайшего меньшего по модулю значения. +ROUNDUP = ОКРУГЛВВЕРХ ## Округляет число до ближайшего большего по модулю значения. +SERIESSUM = РЯД.СУММ ## Возвращает сумму степенного ряда, вычисленную по формуле. +SIGN = ЗНАК ## Возвращает знак числа. +SIN = SIN ## Возвращает синус заданного угла. +SINH = SINH ## Возвращает гиперболический синус числа. +SQRT = КОРЕНЬ ## Возвращает положительное значение квадратного корня. +SQRTPI = КОРЕНЬПИ ## Возвращает квадратный корень из значения выражения (число * ПИ). +SUBTOTAL = ПРОМЕЖУТОЧНЫЕ.ИТОГИ ## Возвращает промежуточный итог в списке или базе данных. +SUM = СУММ ## Суммирует аргументы. +SUMIF = СУММЕСЛИ ## Суммирует ячейки, удовлетворяющие заданному условию. +SUMIFS = СУММЕСЛИМН ## Суммирует диапазон ячеек, удовлетворяющих нескольким условиям. +SUMPRODUCT = СУММПРОИЗВ ## Возвращает сумму произведений соответствующих элементов массивов. +SUMSQ = СУММКВ ## Возвращает сумму квадратов аргументов. +SUMX2MY2 = СУММРАЗНКВ ## Возвращает сумму разностей квадратов соответствующих значений в двух массивах. +SUMX2PY2 = СУММСУММКВ ## Возвращает сумму сумм квадратов соответствующих элементов двух массивов. +SUMXMY2 = СУММКВРАЗН ## Возвращает сумму квадратов разностей соответствующих значений в двух массивах. +TAN = TAN ## Возвращает тангенс числа. +TANH = TANH ## Возвращает гиперболический тангенс числа. +TRUNC = ОТБР ## Отбрасывает дробную часть числа. + + +## +## Statistical functions Статистические функции +## +AVEDEV = СРОТКЛ ## Возвращает среднее арифметическое абсолютных значений отклонений точек данных от среднего. +AVERAGE = СРЗНАЧ ## Возвращает среднее арифметическое аргументов. +AVERAGEA = СРЗНАЧА ## Возвращает среднее арифметическое аргументов, включая числа, текст и логические значения. +AVERAGEIF = СРЗНАЧЕСЛИ ## Возвращает среднее значение (среднее арифметическое) всех ячеек в диапазоне, которые удовлетворяют данному условию. +AVERAGEIFS = СРЗНАЧЕСЛИМН ## Возвращает среднее значение (среднее арифметическое) всех ячеек, которые удовлетворяют нескольким условиям. +BETADIST = БЕТАРАСП ## Возвращает интегральную функцию бета-распределения. +BETAINV = БЕТАОБР ## Возвращает обратную интегральную функцию указанного бета-распределения. +BINOMDIST = БИНОМРАСП ## Возвращает отдельное значение биномиального распределения. +CHIDIST = ХИ2РАСП ## Возвращает одностороннюю вероятность распределения хи-квадрат. +CHIINV = ХИ2ОБР ## Возвращает обратное значение односторонней вероятности распределения хи-квадрат. +CHITEST = ХИ2ТЕСТ ## Возвращает тест на независимость. +CONFIDENCE = ДОВЕРИТ ## Возвращает доверительный интервал для среднего значения по генеральной совокупности. +CORREL = КОРРЕЛ ## Возвращает коэффициент корреляции между двумя множествами данных. +COUNT = СЧЁТ ## Подсчитывает количество чисел в списке аргументов. +COUNTA = СЧЁТЗ ## Подсчитывает количество значений в списке аргументов. +COUNTBLANK = СЧИТАТЬПУСТОТЫ ## Подсчитывает количество пустых ячеек в диапазоне +COUNTIF = СЧЁТЕСЛИ ## Подсчитывает количество ячеек в диапазоне, удовлетворяющих заданному условию +COUNTIFS = СЧЁТЕСЛИМН ## Подсчитывает количество ячеек внутри диапазона, удовлетворяющих нескольким условиям. +COVAR = КОВАР ## Возвращает ковариацию, среднее произведений парных отклонений +CRITBINOM = КРИТБИНОМ ## Возвращает наименьшее значение, для которого интегральное биномиальное распределение меньше или равно заданному критерию. +DEVSQ = КВАДРОТКЛ ## Возвращает сумму квадратов отклонений. +EXPONDIST = ЭКСПРАСП ## Возвращает экспоненциальное распределение. +FDIST = FРАСП ## Возвращает F-распределение вероятности. +FINV = FРАСПОБР ## Возвращает обратное значение для F-распределения вероятности. +FISHER = ФИШЕР ## Возвращает преобразование Фишера. +FISHERINV = ФИШЕРОБР ## Возвращает обратное преобразование Фишера. +FORECAST = ПРЕДСКАЗ ## Возвращает значение линейного тренда. +FREQUENCY = ЧАСТОТА ## Возвращает распределение частот в виде вертикального массива. +FTEST = ФТЕСТ ## Возвращает результат F-теста. +GAMMADIST = ГАММАРАСП ## Возвращает гамма-распределение. +GAMMAINV = ГАММАОБР ## Возвращает обратное гамма-распределение. +GAMMALN = ГАММАНЛОГ ## Возвращает натуральный логарифм гамма функции, Γ(x). +GEOMEAN = СРГЕОМ ## Возвращает среднее геометрическое. +GROWTH = РОСТ ## Возвращает значения в соответствии с экспоненциальным трендом. +HARMEAN = СРГАРМ ## Возвращает среднее гармоническое. +HYPGEOMDIST = ГИПЕРГЕОМЕТ ## Возвращает гипергеометрическое распределение. +INTERCEPT = ОТРЕЗОК ## Возвращает отрезок, отсекаемый на оси линией линейной регрессии. +KURT = ЭКСЦЕСС ## Возвращает эксцесс множества данных. +LARGE = НАИБОЛЬШИЙ ## Возвращает k-ое наибольшее значение в множестве данных. +LINEST = ЛИНЕЙН ## Возвращает параметры линейного тренда. +LOGEST = ЛГРФПРИБЛ ## Возвращает параметры экспоненциального тренда. +LOGINV = ЛОГНОРМОБР ## Возвращает обратное логарифмическое нормальное распределение. +LOGNORMDIST = ЛОГНОРМРАСП ## Возвращает интегральное логарифмическое нормальное распределение. +MAX = МАКС ## Возвращает наибольшее значение в списке аргументов. +MAXA = МАКСА ## Возвращает наибольшее значение в списке аргументов, включая числа, текст и логические значения. +MEDIAN = МЕДИАНА ## Возвращает медиану заданных чисел. +MIN = МИН ## Возвращает наименьшее значение в списке аргументов. +MINA = МИНА ## Возвращает наименьшее значение в списке аргументов, включая числа, текст и логические значения. +MODE = МОДА ## Возвращает значение моды множества данных. +NEGBINOMDIST = ОТРБИНОМРАСП ## Возвращает отрицательное биномиальное распределение. +NORMDIST = НОРМРАСП ## Возвращает нормальную функцию распределения. +NORMINV = НОРМОБР ## Возвращает обратное нормальное распределение. +NORMSDIST = НОРМСТРАСП ## Возвращает стандартное нормальное интегральное распределение. +NORMSINV = НОРМСТОБР ## Возвращает обратное значение стандартного нормального распределения. +PEARSON = ПИРСОН ## Возвращает коэффициент корреляции Пирсона. +PERCENTILE = ПЕРСЕНТИЛЬ ## Возвращает k-ую персентиль для значений диапазона. +PERCENTRANK = ПРОЦЕНТРАНГ ## Возвращает процентную норму значения в множестве данных. +PERMUT = ПЕРЕСТ ## Возвращает количество перестановок для заданного числа объектов. +POISSON = ПУАССОН ## Возвращает распределение Пуассона. +PROB = ВЕРОЯТНОСТЬ ## Возвращает вероятность того, что значение из диапазона находится внутри заданных пределов. +QUARTILE = КВАРТИЛЬ ## Возвращает квартиль множества данных. +RANK = РАНГ ## Возвращает ранг числа в списке чисел. +RSQ = КВПИРСОН ## Возвращает квадрат коэффициента корреляции Пирсона. +SKEW = СКОС ## Возвращает асимметрию распределения. +SLOPE = НАКЛОН ## Возвращает наклон линии линейной регрессии. +SMALL = НАИМЕНЬШИЙ ## Возвращает k-ое наименьшее значение в множестве данных. +STANDARDIZE = НОРМАЛИЗАЦИЯ ## Возвращает нормализованное значение. +STDEV = СТАНДОТКЛОН ## Оценивает стандартное отклонение по выборке. +STDEVA = СТАНДОТКЛОНА ## Оценивает стандартное отклонение по выборке, включая числа, текст и логические значения. +STDEVP = СТАНДОТКЛОНП ## Вычисляет стандартное отклонение по генеральной совокупности. +STDEVPA = СТАНДОТКЛОНПА ## Вычисляет стандартное отклонение по генеральной совокупности, включая числа, текст и логические значения. +STEYX = СТОШYX ## Возвращает стандартную ошибку предсказанных значений y для каждого значения x в регрессии. +TDIST = СТЬЮДРАСП ## Возвращает t-распределение Стьюдента. +TINV = СТЬЮДРАСПОБР ## Возвращает обратное t-распределение Стьюдента. +TREND = ТЕНДЕНЦИЯ ## Возвращает значения в соответствии с линейным трендом. +TRIMMEAN = УРЕЗСРЕДНЕЕ ## Возвращает среднее внутренности множества данных. +TTEST = ТТЕСТ ## Возвращает вероятность, соответствующую критерию Стьюдента. +VAR = ДИСП ## Оценивает дисперсию по выборке. +VARA = ДИСПА ## Оценивает дисперсию по выборке, включая числа, текст и логические значения. +VARP = ДИСПР ## Вычисляет дисперсию для генеральной совокупности. +VARPA = ДИСПРА ## Вычисляет дисперсию для генеральной совокупности, включая числа, текст и логические значения. +WEIBULL = ВЕЙБУЛЛ ## Возвращает распределение Вейбулла. +ZTEST = ZТЕСТ ## Возвращает двустороннее P-значение z-теста. + + +## +## Text functions Текстовые функции +## +ASC = ASC ## Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полноширинные (двухбайтовые) знаки в полуширинные (однобайтовые). +BAHTTEXT = БАТТЕКСТ ## Преобразует число в текст, используя денежный формат ß (БАТ). +CHAR = СИМВОЛ ## Возвращает знак с заданным кодом. +CLEAN = ПЕЧСИМВ ## Удаляет все непечатаемые знаки из текста. +CODE = КОДСИМВ ## Возвращает числовой код первого знака в текстовой строке. +CONCATENATE = СЦЕПИТЬ ## Объединяет несколько текстовых элементов в один. +DOLLAR = РУБЛЬ ## Преобразует число в текст, используя денежный формат. +EXACT = СОВПАД ## Проверяет идентичность двух текстовых значений. +FIND = НАЙТИ ## Ищет вхождения одного текстового значения в другом (с учетом регистра). +FINDB = НАЙТИБ ## Ищет вхождения одного текстового значения в другом (с учетом регистра). +FIXED = ФИКСИРОВАННЫЙ ## Форматирует число и преобразует его в текст с заданным числом десятичных знаков. +JIS = JIS ## Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полуширинные (однобайтовые) знаки в текстовой строке в полноширинные (двухбайтовые). +LEFT = ЛЕВСИМВ ## Возвращает крайние слева знаки текстового значения. +LEFTB = ЛЕВБ ## Возвращает крайние слева знаки текстового значения. +LEN = ДЛСТР ## Возвращает количество знаков в текстовой строке. +LENB = ДЛИНБ ## Возвращает количество знаков в текстовой строке. +LOWER = СТРОЧН ## Преобразует все буквы текста в строчные. +MID = ПСТР ## Возвращает заданное число знаков из строки текста, начиная с указанной позиции. +MIDB = ПСТРБ ## Возвращает заданное число знаков из строки текста, начиная с указанной позиции. +PHONETIC = PHONETIC ## Извлекает фонетические (фуригана) знаки из текстовой строки. +PROPER = ПРОПНАЧ ## Преобразует первую букву в каждом слове текста в прописную. +REPLACE = ЗАМЕНИТЬ ## Заменяет знаки в тексте. +REPLACEB = ЗАМЕНИТЬБ ## Заменяет знаки в тексте. +REPT = ПОВТОР ## Повторяет текст заданное число раз. +RIGHT = ПРАВСИМВ ## Возвращает крайние справа знаки текстовой строки. +RIGHTB = ПРАВБ ## Возвращает крайние справа знаки текстовой строки. +SEARCH = ПОИСК ## Ищет вхождения одного текстового значения в другом (без учета регистра). +SEARCHB = ПОИСКБ ## Ищет вхождения одного текстового значения в другом (без учета регистра). +SUBSTITUTE = ПОДСТАВИТЬ ## Заменяет в текстовой строке старый текст новым. +T = Т ## Преобразует аргументы в текст. +TEXT = ТЕКСТ ## Форматирует число и преобразует его в текст. +TRIM = СЖПРОБЕЛЫ ## Удаляет из текста пробелы. +UPPER = ПРОПИСН ## Преобразует все буквы текста в прописные. +VALUE = ЗНАЧЕН ## Преобразует текстовый аргумент в число. diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/sv/config b/plugins/excel_reader/Classes/PHPExcel/locale/sv/config new file mode 100755 index 0000000..6a59778 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/sv/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = kr + + +## +## Excel Error Codes (For future use) +## +NULL = #Skärning! +DIV0 = #Division/0! +VALUE = #Värdefel! +REF = #Referens! +NAME = #Namn? +NUM = #Ogiltigt! +NA = #Saknas! diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/sv/functions b/plugins/excel_reader/Classes/PHPExcel/locale/sv/functions new file mode 100755 index 0000000..27f61e7 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/sv/functions @@ -0,0 +1,408 @@ +## +## Add-in and Automation functions Tilläggs- och automatiseringsfunktioner +## +GETPIVOTDATA = HÄMTA.PIVOTDATA ## Returnerar data som lagrats i en pivottabellrapport + + +## +## Cube functions Kubfunktioner +## +CUBEKPIMEMBER = KUBKPIMEDLEM ## Returnerar namn, egenskap och mått för en KPI och visar namnet och egenskapen i cellen. En KPI, eller prestandaindikator, är ett kvantifierbart mått, t.ex. månatlig bruttovinst eller personalomsättning per kvartal, som används för att analysera ett företags resultat. +CUBEMEMBER = KUBMEDLEM ## Returnerar en medlem eller ett par i en kubhierarki. Används för att verifiera att medlemmen eller paret finns i kuben. +CUBEMEMBERPROPERTY = KUBMEDLEMSEGENSKAP ## Returnerar värdet för en medlemsegenskap i kuben. Används för att verifiera att ett medlemsnamn finns i kuben, samt för att returnera den angivna egenskapen för medlemmen. +CUBERANKEDMEMBER = KUBRANGORDNADMEDLEM ## Returnerar den n:te, eller rangordnade, medlemmen i en uppsättning. Används för att returnera ett eller flera element i en uppsättning, till exempelvis den bästa försäljaren eller de tio bästa eleverna. +CUBESET = KUBINSTÄLLNING ## Definierar en beräknad uppsättning medlemmar eller par genom att skicka ett bestämt uttryck till kuben på servern, som skapar uppsättningen och sedan returnerar den till Microsoft Office Excel. +CUBESETCOUNT = KUBINSTÄLLNINGANTAL ## Returnerar antalet objekt i en uppsättning. +CUBEVALUE = KUBVÄRDE ## Returnerar ett mängdvärde från en kub. + + +## +## Database functions Databasfunktioner +## +DAVERAGE = DMEDEL ## Returnerar medelvärdet av databasposterna +DCOUNT = DANTAL ## Räknar antalet celler som innehåller tal i en databas +DCOUNTA = DANTALV ## Räknar ifyllda celler i en databas +DGET = DHÄMTA ## Hämtar en enstaka post från en databas som uppfyller de angivna villkoren +DMAX = DMAX ## Returnerar det största värdet från databasposterna +DMIN = DMIN ## Returnerar det minsta värdet från databasposterna +DPRODUCT = DPRODUKT ## Multiplicerar värdena i ett visst fält i poster som uppfyller villkoret +DSTDEV = DSTDAV ## Uppskattar standardavvikelsen baserat på ett urval av databasposterna +DSTDEVP = DSTDAVP ## Beräknar standardavvikelsen utifrån hela populationen av valda databasposter +DSUM = DSUMMA ## Summerar talen i kolumnfält i databasposter som uppfyller villkoret +DVAR = DVARIANS ## Uppskattar variansen baserat på ett urval av databasposterna +DVARP = DVARIANSP ## Beräknar variansen utifrån hela populationen av valda databasposter + + +## +## Date and time functions Tid- och datumfunktioner +## +DATE = DATUM ## Returnerar ett serienummer för ett visst datum +DATEVALUE = DATUMVÄRDE ## Konverterar ett datum i textformat till ett serienummer +DAY = DAG ## Konverterar ett serienummer till dag i månaden +DAYS360 = DAGAR360 ## Beräknar antalet dagar mellan två datum baserat på ett 360-dagarsår +EDATE = EDATUM ## Returnerar serienumret för ett datum som infaller ett visst antal månader före eller efter startdatumet +EOMONTH = SLUTMÅNAD ## Returnerar serienumret för sista dagen i månaden ett visst antal månader tidigare eller senare +HOUR = TIMME ## Konverterar ett serienummer till en timme +MINUTE = MINUT ## Konverterar ett serienummer till en minut +MONTH = MÅNAD ## Konverterar ett serienummer till en månad +NETWORKDAYS = NETTOARBETSDAGAR ## Returnerar antalet hela arbetsdagar mellan två datum +NOW = NU ## Returnerar serienumret för dagens datum och aktuell tid +SECOND = SEKUND ## Konverterar ett serienummer till en sekund +TIME = KLOCKSLAG ## Returnerar serienumret för en viss tid +TIMEVALUE = TIDVÄRDE ## Konverterar en tid i textformat till ett serienummer +TODAY = IDAG ## Returnerar serienumret för dagens datum +WEEKDAY = VECKODAG ## Konverterar ett serienummer till en dag i veckan +WEEKNUM = VECKONR ## Konverterar ett serienummer till ett veckonummer +WORKDAY = ARBETSDAGAR ## Returnerar serienumret för ett datum ett visst antal arbetsdagar tidigare eller senare +YEAR = ÅR ## Konverterar ett serienummer till ett år +YEARFRAC = ÅRDEL ## Returnerar en del av ett år som representerar antalet hela dagar mellan start- och slutdatum + + +## +## Engineering functions Tekniska funktioner +## +BESSELI = BESSELI ## Returnerar den modifierade Bessel-funktionen In(x) +BESSELJ = BESSELJ ## Returnerar Bessel-funktionen Jn(x) +BESSELK = BESSELK ## Returnerar den modifierade Bessel-funktionen Kn(x) +BESSELY = BESSELY ## Returnerar Bessel-funktionen Yn(x) +BIN2DEC = BIN.TILL.DEC ## Omvandlar ett binärt tal till decimalt +BIN2HEX = BIN.TILL.HEX ## Omvandlar ett binärt tal till hexadecimalt +BIN2OCT = BIN.TILL.OKT ## Omvandlar ett binärt tal till oktalt +COMPLEX = KOMPLEX ## Omvandlar reella och imaginära koefficienter till ett komplext tal +CONVERT = KONVERTERA ## Omvandlar ett tal från ett måttsystem till ett annat +DEC2BIN = DEC.TILL.BIN ## Omvandlar ett decimalt tal till binärt +DEC2HEX = DEC.TILL.HEX ## Omvandlar ett decimalt tal till hexadecimalt +DEC2OCT = DEC.TILL.OKT ## Omvandlar ett decimalt tal till oktalt +DELTA = DELTA ## Testar om två värden är lika +ERF = FELF ## Returnerar felfunktionen +ERFC = FELFK ## Returnerar den komplementära felfunktionen +GESTEP = SLSTEG ## Testar om ett tal är större än ett tröskelvärde +HEX2BIN = HEX.TILL.BIN ## Omvandlar ett hexadecimalt tal till binärt +HEX2DEC = HEX.TILL.DEC ## Omvandlar ett hexadecimalt tal till decimalt +HEX2OCT = HEX.TILL.OKT ## Omvandlar ett hexadecimalt tal till oktalt +IMABS = IMABS ## Returnerar absolutvärdet (modulus) för ett komplext tal +IMAGINARY = IMAGINÄR ## Returnerar den imaginära koefficienten för ett komplext tal +IMARGUMENT = IMARGUMENT ## Returnerar det komplexa talets argument, en vinkel uttryckt i radianer +IMCONJUGATE = IMKONJUGAT ## Returnerar det komplexa talets konjugat +IMCOS = IMCOS ## Returnerar cosinus för ett komplext tal +IMDIV = IMDIV ## Returnerar kvoten för två komplexa tal +IMEXP = IMEUPPHÖJT ## Returnerar exponenten för ett komplext tal +IMLN = IMLN ## Returnerar den naturliga logaritmen för ett komplext tal +IMLOG10 = IMLOG10 ## Returnerar 10-logaritmen för ett komplext tal +IMLOG2 = IMLOG2 ## Returnerar 2-logaritmen för ett komplext tal +IMPOWER = IMUPPHÖJT ## Returnerar ett komplext tal upphöjt till en exponent +IMPRODUCT = IMPRODUKT ## Returnerar produkten av komplexa tal +IMREAL = IMREAL ## Returnerar den reella koefficienten för ett komplext tal +IMSIN = IMSIN ## Returnerar sinus för ett komplext tal +IMSQRT = IMROT ## Returnerar kvadratroten av ett komplext tal +IMSUB = IMDIFF ## Returnerar differensen mellan två komplexa tal +IMSUM = IMSUM ## Returnerar summan av komplexa tal +OCT2BIN = OKT.TILL.BIN ## Omvandlar ett oktalt tal till binärt +OCT2DEC = OKT.TILL.DEC ## Omvandlar ett oktalt tal till decimalt +OCT2HEX = OKT.TILL.HEX ## Omvandlar ett oktalt tal till hexadecimalt + + +## +## Financial functions Finansiella funktioner +## +ACCRINT = UPPLRÄNTA ## Returnerar den upplupna räntan för värdepapper med periodisk ränta +ACCRINTM = UPPLOBLRÄNTA ## Returnerar den upplupna räntan för ett värdepapper som ger avkastning på förfallodagen +AMORDEGRC = AMORDEGRC ## Returnerar avskrivningen för varje redovisningsperiod med hjälp av en avskrivningskoefficient +AMORLINC = AMORLINC ## Returnerar avskrivningen för varje redovisningsperiod +COUPDAYBS = KUPDAGBB ## Returnerar antal dagar från början av kupongperioden till likviddagen +COUPDAYS = KUPDAGARS ## Returnerar antalet dagar i kupongperioden som innehåller betalningsdatumet +COUPDAYSNC = KUPDAGNK ## Returnerar antalet dagar från betalningsdatumet till nästa kupongdatum +COUPNCD = KUPNKD ## Returnerar nästa kupongdatum efter likviddagen +COUPNUM = KUPANT ## Returnerar kuponger som förfaller till betalning mellan likviddagen och förfallodagen +COUPPCD = KUPFKD ## Returnerar föregående kupongdatum före likviddagen +CUMIPMT = KUMRÄNTA ## Returnerar den ackumulerade räntan som betalats mellan två perioder +CUMPRINC = KUMPRIS ## Returnerar det ackumulerade kapitalbeloppet som betalats på ett lån mellan två perioder +DB = DB ## Returnerar avskrivningen för en tillgång under en angiven tid enligt metoden för fast degressiv avskrivning +DDB = DEGAVSKR ## Returnerar en tillgångs värdeminskning under en viss period med hjälp av dubbel degressiv avskrivning eller någon annan metod som du anger +DISC = DISK ## Returnerar diskonteringsräntan för ett värdepapper +DOLLARDE = DECTAL ## Omvandlar ett pris uttryckt som ett bråk till ett decimaltal +DOLLARFR = BRÅK ## Omvandlar ett pris i kronor uttryckt som ett decimaltal till ett bråk +DURATION = LÖPTID ## Returnerar den årliga löptiden för en säkerhet med periodiska räntebetalningar +EFFECT = EFFRÄNTA ## Returnerar den årliga effektiva räntesatsen +FV = SLUTVÄRDE ## Returnerar det framtida värdet på en investering +FVSCHEDULE = FÖRRÄNTNING ## Returnerar det framtida värdet av ett begynnelsekapital beräknat på olika räntenivåer +INTRATE = ÅRSRÄNTA ## Returnerar räntesatsen för ett betalt värdepapper +IPMT = RBETALNING ## Returnerar räntedelen av en betalning för en given period +IRR = IR ## Returnerar internräntan för en serie betalningar +ISPMT = RALÅN ## Beräknar räntan som har betalats under en specifik betalningsperiod +MDURATION = MLÖPTID ## Returnerar den modifierade Macauley-löptiden för ett värdepapper med det antagna nominella värdet 100 kr +MIRR = MODIR ## Returnerar internräntan där positiva och negativa betalningar finansieras med olika räntor +NOMINAL = NOMRÄNTA ## Returnerar den årliga nominella räntesatsen +NPER = PERIODER ## Returnerar antalet perioder för en investering +NPV = NETNUVÄRDE ## Returnerar nuvärdet av en serie periodiska betalningar vid en given diskonteringsränta +ODDFPRICE = UDDAFPRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda första period +ODDFYIELD = UDDAFAVKASTNING ## Returnerar avkastningen för en säkerhet med en udda första period +ODDLPRICE = UDDASPRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda sista period +ODDLYIELD = UDDASAVKASTNING ## Returnerar avkastningen för en säkerhet med en udda sista period +PMT = BETALNING ## Returnerar den periodiska betalningen för en annuitet +PPMT = AMORT ## Returnerar amorteringsdelen av en annuitetsbetalning för en given period +PRICE = PRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger periodisk ränta +PRICEDISC = PRISDISK ## Returnerar priset per 100 kr nominellt värde för ett diskonterat värdepapper +PRICEMAT = PRISFÖRF ## Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger ränta på förfallodagen +PV = PV ## Returnerar nuvärdet av en serie lika stora periodiska betalningar +RATE = RÄNTA ## Returnerar räntesatsen per period i en annuitet +RECEIVED = BELOPP ## Returnerar beloppet som utdelas på förfallodagen för ett betalat värdepapper +SLN = LINAVSKR ## Returnerar den linjära avskrivningen för en tillgång under en period +SYD = ÅRSAVSKR ## Returnerar den årliga avskrivningssumman för en tillgång under en angiven period +TBILLEQ = SSVXEKV ## Returnerar avkastningen motsvarande en obligation för en statsskuldväxel +TBILLPRICE = SSVXPRIS ## Returnerar priset per 100 kr nominellt värde för en statsskuldväxel +TBILLYIELD = SSVXRÄNTA ## Returnerar avkastningen för en statsskuldväxel +VDB = VDEGRAVSKR ## Returnerar avskrivningen för en tillgång under en angiven period (med degressiv avskrivning) +XIRR = XIRR ## Returnerar internräntan för en serie betalningar som inte nödvändigtvis är periodiska +XNPV = XNUVÄRDE ## Returnerar det nuvarande nettovärdet för en serie betalningar som inte nödvändigtvis är periodiska +YIELD = NOMAVK ## Returnerar avkastningen för ett värdepapper som ger periodisk ränta +YIELDDISC = NOMAVKDISK ## Returnerar den årliga avkastningen för diskonterade värdepapper, exempelvis en statsskuldväxel +YIELDMAT = NOMAVKFÖRF ## Returnerar den årliga avkastningen för ett värdepapper som ger ränta på förfallodagen + + +## +## Information functions Informationsfunktioner +## +CELL = CELL ## Returnerar information om formatering, plats och innehåll i en cell +ERROR.TYPE = FEL.TYP ## Returnerar ett tal som motsvarar ett felvärde +INFO = INFO ## Returnerar information om operativsystemet +ISBLANK = ÄRREF ## Returnerar SANT om värdet är tomt +ISERR = Ä ## Returnerar SANT om värdet är ett felvärde annat än #SAKNAS! +ISERROR = ÄRFEL ## Returnerar SANT om värdet är ett felvärde +ISEVEN = ÄRJÄMN ## Returnerar SANT om talet är jämnt +ISLOGICAL = ÄREJTEXT ## Returnerar SANT om värdet är ett logiskt värde +ISNA = ÄRLOGISK ## Returnerar SANT om värdet är felvärdet #SAKNAS! +ISNONTEXT = ÄRSAKNAD ## Returnerar SANT om värdet inte är text +ISNUMBER = ÄRTAL ## Returnerar SANT om värdet är ett tal +ISODD = ÄRUDDA ## Returnerar SANT om talet är udda +ISREF = ÄRTOM ## Returnerar SANT om värdet är en referens +ISTEXT = ÄRTEXT ## Returnerar SANT om värdet är text +N = N ## Returnerar ett värde omvandlat till ett tal +NA = SAKNAS ## Returnerar felvärdet #SAKNAS! +TYPE = VÄRDETYP ## Returnerar ett tal som anger värdets datatyp + + +## +## Logical functions Logiska funktioner +## +AND = OCH ## Returnerar SANT om alla argument är sanna +FALSE = FALSKT ## Returnerar det logiska värdet FALSKT +IF = OM ## Anger vilket logiskt test som ska utföras +IFERROR = OMFEL ## Returnerar ett värde som du anger om en formel utvärderar till ett fel; annars returneras resultatet av formeln +NOT = ICKE ## Inverterar logiken för argumenten +OR = ELLER ## Returnerar SANT om något argument är SANT +TRUE = SANT ## Returnerar det logiska värdet SANT + + +## +## Lookup and reference functions Sök- och referensfunktioner +## +ADDRESS = ADRESS ## Returnerar en referens som text till en enstaka cell i ett kalkylblad +AREAS = OMRÅDEN ## Returnerar antalet områden i en referens +CHOOSE = VÄLJ ## Väljer ett värde i en lista över värden +COLUMN = KOLUMN ## Returnerar kolumnnumret för en referens +COLUMNS = KOLUMNER ## Returnerar antalet kolumner i en referens +HLOOKUP = LETAKOLUMN ## Söker i den översta raden i en matris och returnerar värdet för angiven cell +HYPERLINK = HYPERLÄNK ## Skapar en genväg eller ett hopp till ett dokument i nätverket, i ett intranät eller på Internet +INDEX = INDEX ## Använder ett index för ett välja ett värde i en referens eller matris +INDIRECT = INDIREKT ## Returnerar en referens som anges av ett textvärde +LOOKUP = LETAUPP ## Letar upp värden i en vektor eller matris +MATCH = PASSA ## Letar upp värden i en referens eller matris +OFFSET = FÖRSKJUTNING ## Returnerar en referens förskjuten i förhållande till en given referens +ROW = RAD ## Returnerar radnumret för en referens +ROWS = RADER ## Returnerar antalet rader i en referens +RTD = RTD ## Hämtar realtidsdata från ett program som stöder COM-automation (Automation: Ett sätt att arbeta med ett programs objekt från ett annat program eller utvecklingsverktyg. Detta kallades tidigare för OLE Automation, och är en branschstandard och ingår i Component Object Model (COM).) +TRANSPOSE = TRANSPONERA ## Transponerar en matris +VLOOKUP = LETARAD ## Letar i den första kolumnen i en matris och flyttar över raden för att returnera värdet för en cell + + +## +## Math and trigonometry functions Matematiska och trigonometriska funktioner +## +ABS = ABS ## Returnerar absolutvärdet av ett tal +ACOS = ARCCOS ## Returnerar arcus cosinus för ett tal +ACOSH = ARCCOSH ## Returnerar inverterad hyperbolisk cosinus för ett tal +ASIN = ARCSIN ## Returnerar arcus cosinus för ett tal +ASINH = ARCSINH ## Returnerar hyperbolisk arcus sinus för ett tal +ATAN = ARCTAN ## Returnerar arcus tangens för ett tal +ATAN2 = ARCTAN2 ## Returnerar arcus tangens för en x- och en y- koordinat +ATANH = ARCTANH ## Returnerar hyperbolisk arcus tangens för ett tal +CEILING = RUNDA.UPP ## Avrundar ett tal till närmaste heltal eller närmaste signifikanta multipel +COMBIN = KOMBIN ## Returnerar antalet kombinationer för ett givet antal objekt +COS = COS ## Returnerar cosinus för ett tal +COSH = COSH ## Returnerar hyperboliskt cosinus för ett tal +DEGREES = GRADER ## Omvandlar radianer till grader +EVEN = JÄMN ## Avrundar ett tal uppåt till närmaste heltal +EXP = EXP ## Returnerar e upphöjt till ett givet tal +FACT = FAKULTET ## Returnerar fakulteten för ett tal +FACTDOUBLE = DUBBELFAKULTET ## Returnerar dubbelfakulteten för ett tal +FLOOR = RUNDA.NED ## Avrundar ett tal nedåt mot noll +GCD = SGD ## Returnerar den största gemensamma nämnaren +INT = HELTAL ## Avrundar ett tal nedåt till närmaste heltal +LCM = MGM ## Returnerar den minsta gemensamma multipeln +LN = LN ## Returnerar den naturliga logaritmen för ett tal +LOG = LOG ## Returnerar logaritmen för ett tal för en given bas +LOG10 = LOG10 ## Returnerar 10-logaritmen för ett tal +MDETERM = MDETERM ## Returnerar matrisen som är avgörandet av en matris +MINVERSE = MINVERT ## Returnerar matrisinversen av en matris +MMULT = MMULT ## Returnerar matrisprodukten av två matriser +MOD = REST ## Returnerar resten vid en division +MROUND = MAVRUNDA ## Returnerar ett tal avrundat till en given multipel +MULTINOMIAL = MULTINOMIAL ## Returnerar multinomialen för en uppsättning tal +ODD = UDDA ## Avrundar ett tal uppåt till närmaste udda heltal +PI = PI ## Returnerar värdet pi +POWER = UPPHÖJT.TILL ## Returnerar resultatet av ett tal upphöjt till en exponent +PRODUCT = PRODUKT ## Multiplicerar argumenten +QUOTIENT = KVOT ## Returnerar heltalsdelen av en division +RADIANS = RADIANER ## Omvandlar grader till radianer +RAND = SLUMP ## Returnerar ett slumptal mellan 0 och 1 +RANDBETWEEN = SLUMP.MELLAN ## Returnerar ett slumptal mellan de tal som du anger +ROMAN = ROMERSK ## Omvandlar vanliga (arabiska) siffror till romerska som text +ROUND = AVRUNDA ## Avrundar ett tal till ett angivet antal siffror +ROUNDDOWN = AVRUNDA.NEDÅT ## Avrundar ett tal nedåt mot noll +ROUNDUP = AVRUNDA.UPPÅT ## Avrundar ett tal uppåt, från noll +SERIESSUM = SERIESUMMA ## Returnerar summan av en potensserie baserat på formeln +SIGN = TECKEN ## Returnerar tecknet för ett tal +SIN = SIN ## Returnerar sinus för en given vinkel +SINH = SINH ## Returnerar hyperbolisk sinus för ett tal +SQRT = ROT ## Returnerar den positiva kvadratroten +SQRTPI = ROTPI ## Returnerar kvadratroten för (tal * pi) +SUBTOTAL = DELSUMMA ## Returnerar en delsumma i en lista eller databas +SUM = SUMMA ## Summerar argumenten +SUMIF = SUMMA.OM ## Summerar celler enligt ett angivet villkor +SUMIFS = SUMMA.OMF ## Lägger till cellerna i ett område som uppfyller flera kriterier +SUMPRODUCT = PRODUKTSUMMA ## Returnerar summan av produkterna i motsvarande matriskomponenter +SUMSQ = KVADRATSUMMA ## Returnerar summan av argumentens kvadrater +SUMX2MY2 = SUMMAX2MY2 ## Returnerar summan av differensen mellan kvadraterna för motsvarande värden i två matriser +SUMX2PY2 = SUMMAX2PY2 ## Returnerar summan av summan av kvadraterna av motsvarande värden i två matriser +SUMXMY2 = SUMMAXMY2 ## Returnerar summan av kvadraten av skillnaden mellan motsvarande värden i två matriser +TAN = TAN ## Returnerar tangens för ett tal +TANH = TANH ## Returnerar hyperbolisk tangens för ett tal +TRUNC = AVKORTA ## Avkortar ett tal till ett heltal + + +## +## Statistical functions Statistiska funktioner +## +AVEDEV = MEDELAVV ## Returnerar medelvärdet för datapunkters absoluta avvikelse från deras medelvärde +AVERAGE = MEDEL ## Returnerar medelvärdet av argumenten +AVERAGEA = AVERAGEA ## Returnerar medelvärdet av argumenten, inklusive tal, text och logiska värden +AVERAGEIF = MEDELOM ## Returnerar medelvärdet (aritmetiskt medelvärde) för alla celler i ett område som uppfyller ett givet kriterium +AVERAGEIFS = MEDELOMF ## Returnerar medelvärdet (det aritmetiska medelvärdet) för alla celler som uppfyller flera villkor. +BETADIST = BETAFÖRD ## Returnerar den kumulativa betafördelningsfunktionen +BETAINV = BETAINV ## Returnerar inversen till den kumulativa fördelningsfunktionen för en viss betafördelning +BINOMDIST = BINOMFÖRD ## Returnerar den individuella binomialfördelningen +CHIDIST = CHI2FÖRD ## Returnerar den ensidiga sannolikheten av c2-fördelningen +CHIINV = CHI2INV ## Returnerar inversen av chi2-fördelningen +CHITEST = CHI2TEST ## Returnerar oberoendetesten +CONFIDENCE = KONFIDENS ## Returnerar konfidensintervallet för en populations medelvärde +CORREL = KORREL ## Returnerar korrelationskoefficienten mellan två datamängder +COUNT = ANTAL ## Räknar hur många tal som finns bland argumenten +COUNTA = ANTALV ## Räknar hur många värden som finns bland argumenten +COUNTBLANK = ANTAL.TOMMA ## Räknar antalet tomma celler i ett område +COUNTIF = ANTAL.OM ## Räknar antalet celler i ett område som uppfyller angivna villkor. +COUNTIFS = ANTAL.OMF ## Räknar antalet celler i ett område som uppfyller flera villkor. +COVAR = KOVAR ## Returnerar kovariansen, d.v.s. medelvärdet av produkterna för parade avvikelser +CRITBINOM = KRITBINOM ## Returnerar det minsta värdet för vilket den kumulativa binomialfördelningen är mindre än eller lika med ett villkorsvärde +DEVSQ = KVADAVV ## Returnerar summan av kvadrater på avvikelser +EXPONDIST = EXPONFÖRD ## Returnerar exponentialfördelningen +FDIST = FFÖRD ## Returnerar F-sannolikhetsfördelningen +FINV = FINV ## Returnerar inversen till F-sannolikhetsfördelningen +FISHER = FISHER ## Returnerar Fisher-transformationen +FISHERINV = FISHERINV ## Returnerar inversen till Fisher-transformationen +FORECAST = PREDIKTION ## Returnerar ett värde längs en linjär trendlinje +FREQUENCY = FREKVENS ## Returnerar en frekvensfördelning som en lodrät matris +FTEST = FTEST ## Returnerar resultatet av en F-test +GAMMADIST = GAMMAFÖRD ## Returnerar gammafördelningen +GAMMAINV = GAMMAINV ## Returnerar inversen till den kumulativa gammafördelningen +GAMMALN = GAMMALN ## Returnerar den naturliga logaritmen för gammafunktionen, G(x) +GEOMEAN = GEOMEDEL ## Returnerar det geometriska medelvärdet +GROWTH = EXPTREND ## Returnerar värden längs en exponentiell trend +HARMEAN = HARMMEDEL ## Returnerar det harmoniska medelvärdet +HYPGEOMDIST = HYPGEOMFÖRD ## Returnerar den hypergeometriska fördelningen +INTERCEPT = SKÄRNINGSPUNKT ## Returnerar skärningspunkten för en linjär regressionslinje +KURT = TOPPIGHET ## Returnerar toppigheten av en mängd data +LARGE = STÖRSTA ## Returnerar det n:te största värdet i en mängd data +LINEST = REGR ## Returnerar parametrar till en linjär trendlinje +LOGEST = EXPREGR ## Returnerar parametrarna i en exponentiell trend +LOGINV = LOGINV ## Returnerar inversen till den lognormala fördelningen +LOGNORMDIST = LOGNORMFÖRD ## Returnerar den kumulativa lognormala fördelningen +MAX = MAX ## Returnerar det största värdet i en lista av argument +MAXA = MAXA ## Returnerar det största värdet i en lista av argument, inklusive tal, text och logiska värden +MEDIAN = MEDIAN ## Returnerar medianen för angivna tal +MIN = MIN ## Returnerar det minsta värdet i en lista med argument +MINA = MINA ## Returnerar det minsta värdet i en lista över argument, inklusive tal, text och logiska värden +MODE = TYPVÄRDE ## Returnerar det vanligaste värdet i en datamängd +NEGBINOMDIST = NEGBINOMFÖRD ## Returnerar den negativa binomialfördelningen +NORMDIST = NORMFÖRD ## Returnerar den kumulativa normalfördelningen +NORMINV = NORMINV ## Returnerar inversen till den kumulativa normalfördelningen +NORMSDIST = NORMSFÖRD ## Returnerar den kumulativa standardnormalfördelningen +NORMSINV = NORMSINV ## Returnerar inversen till den kumulativa standardnormalfördelningen +PEARSON = PEARSON ## Returnerar korrelationskoefficienten till Pearsons momentprodukt +PERCENTILE = PERCENTIL ## Returnerar den n:te percentilen av värden i ett område +PERCENTRANK = PROCENTRANG ## Returnerar procentrangen för ett värde i en datamängd +PERMUT = PERMUT ## Returnerar antal permutationer för ett givet antal objekt +POISSON = POISSON ## Returnerar Poisson-fördelningen +PROB = SANNOLIKHET ## Returnerar sannolikheten att värden i ett område ligger mellan två gränser +QUARTILE = KVARTIL ## Returnerar kvartilen av en mängd data +RANK = RANG ## Returnerar rangordningen för ett tal i en lista med tal +RSQ = RKV ## Returnerar kvadraten av Pearsons produktmomentkorrelationskoefficient +SKEW = SNEDHET ## Returnerar snedheten för en fördelning +SLOPE = LUTNING ## Returnerar lutningen på en linjär regressionslinje +SMALL = MINSTA ## Returnerar det n:te minsta värdet i en mängd data +STANDARDIZE = STANDARDISERA ## Returnerar ett normaliserat värde +STDEV = STDAV ## Uppskattar standardavvikelsen baserat på ett urval +STDEVA = STDEVA ## Uppskattar standardavvikelsen baserat på ett urval, inklusive tal, text och logiska värden +STDEVP = STDAVP ## Beräknar standardavvikelsen baserat på hela populationen +STDEVPA = STDEVPA ## Beräknar standardavvikelsen baserat på hela populationen, inklusive tal, text och logiska värden +STEYX = STDFELYX ## Returnerar standardfelet för ett förutspått y-värde för varje x-värde i regressionen +TDIST = TFÖRD ## Returnerar Students t-fördelning +TINV = TINV ## Returnerar inversen till Students t-fördelning +TREND = TREND ## Returnerar värden längs en linjär trend +TRIMMEAN = TRIMMEDEL ## Returnerar medelvärdet av mittpunkterna i en datamängd +TTEST = TTEST ## Returnerar sannolikheten beräknad ur Students t-test +VAR = VARIANS ## Uppskattar variansen baserat på ett urval +VARA = VARA ## Uppskattar variansen baserat på ett urval, inklusive tal, text och logiska värden +VARP = VARIANSP ## Beräknar variansen baserat på hela populationen +VARPA = VARPA ## Beräknar variansen baserat på hela populationen, inklusive tal, text och logiska värden +WEIBULL = WEIBULL ## Returnerar Weibull-fördelningen +ZTEST = ZTEST ## Returnerar det ensidiga sannolikhetsvärdet av ett z-test + + +## +## Text functions Textfunktioner +## +ASC = ASC ## Ändrar helbredds (dubbel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med halvt breddsteg (enkel byte) +BAHTTEXT = BAHTTEXT ## Omvandlar ett tal till text med valutaformatet ß (baht) +CHAR = TECKENKOD ## Returnerar tecknet som anges av kod +CLEAN = STÄDA ## Tar bort alla icke utskrivbara tecken i en text +CODE = KOD ## Returnerar en numerisk kod för det första tecknet i en textsträng +CONCATENATE = SAMMANFOGA ## Sammanfogar flera textdelar till en textsträng +DOLLAR = VALUTA ## Omvandlar ett tal till text med valutaformat +EXACT = EXAKT ## Kontrollerar om två textvärden är identiska +FIND = HITTA ## Hittar en text i en annan (skiljer på gemener och versaler) +FINDB = HITTAB ## Hittar en text i en annan (skiljer på gemener och versaler) +FIXED = FASTTAL ## Formaterar ett tal som text med ett fast antal decimaler +JIS = JIS ## Ändrar halvbredds (enkel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med helt breddsteg (dubbel byte) +LEFT = VÄNSTER ## Returnerar tecken längst till vänster i en sträng +LEFTB = VÄNSTERB ## Returnerar tecken längst till vänster i en sträng +LEN = LÄNGD ## Returnerar antalet tecken i en textsträng +LENB = LÄNGDB ## Returnerar antalet tecken i en textsträng +LOWER = GEMENER ## Omvandlar text till gemener +MID = EXTEXT ## Returnerar angivet antal tecken från en text med början vid den position som du anger +MIDB = EXTEXTB ## Returnerar angivet antal tecken från en text med början vid den position som du anger +PHONETIC = PHONETIC ## Returnerar de fonetiska (furigana) tecknen i en textsträng +PROPER = INITIAL ## Ändrar första bokstaven i varje ord i ett textvärde till versal +REPLACE = ERSÄTT ## Ersätter tecken i text +REPLACEB = ERSÄTTB ## Ersätter tecken i text +REPT = REP ## Upprepar en text ett bestämt antal gånger +RIGHT = HÖGER ## Returnerar tecken längst till höger i en sträng +RIGHTB = HÖGERB ## Returnerar tecken längst till höger i en sträng +SEARCH = SÖK ## Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler) +SEARCHB = SÖKB ## Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler) +SUBSTITUTE = BYT.UT ## Ersätter gammal text med ny text i en textsträng +T = T ## Omvandlar argumenten till text +TEXT = TEXT ## Formaterar ett tal och omvandlar det till text +TRIM = RENSA ## Tar bort blanksteg från text +UPPER = VERSALER ## Omvandlar text till versaler +VALUE = TEXTNUM ## Omvandlar ett textargument till ett tal diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/tr/config b/plugins/excel_reader/Classes/PHPExcel/locale/tr/config new file mode 100755 index 0000000..bd75af6 --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/tr/config @@ -0,0 +1,47 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Settings +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## + + +ArgumentSeparator = ; + + +## +## (For future use) +## +currencySymbol = YTL + + +## +## Excel Error Codes (For future use) +## +NULL = #BOŞ! +DIV0 = #SAYI/0! +VALUE = #DEĞER! +REF = #BAŞV! +NAME = #AD? +NUM = #SAYI! +NA = #YOK diff --git a/plugins/excel_reader/Classes/PHPExcel/locale/tr/functions b/plugins/excel_reader/Classes/PHPExcel/locale/tr/functions new file mode 100755 index 0000000..f8cd30f --- /dev/null +++ b/plugins/excel_reader/Classes/PHPExcel/locale/tr/functions @@ -0,0 +1,438 @@ +## +## PHPExcel +## +## Copyright (c) 2006 - 2011 PHPExcel +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## +## @category PHPExcel +## @package PHPExcel_Calculation +## @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @version 1.7.8, 2012-10-12 +## +## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ +## +## + + +## +## Add-in and Automation functions Eklenti ve Otomasyon fonksiyonları +## +GETPIVOTDATA = ÖZETVERİAL ## Bir Özet Tablo raporunda saklanan verileri verir. + + +## +## Cube functions Küp işlevleri +## +CUBEKPIMEMBER = KÜPKPIÜYE ## Kilit performans göstergesi (KPI-Key Performance Indicator) adını, özelliğini ve ölçüsünü verir ve hücredeki ad ve özelliği gösterir. KPI, bir kurumun performansını izlemek için kullanılan aylık brüt kâr ya da üç aylık çalışan giriş çıkışları gibi ölçülebilen bir birimdir. +CUBEMEMBER = KÜPÜYE ## Bir küp hiyerarşisinde bir üyeyi veya kaydı verir. Üye veya kaydın küpte varolduğunu doğrulamak için kullanılır. +CUBEMEMBERPROPERTY = KÜPÜYEÖZELLİĞİ ## Bir küpte bir üyenin özelliğinin değerini verir. Küp içinde üye adının varlığını doğrulamak ve bu üyenin belli özelliklerini getirmek için kullanılır. +CUBERANKEDMEMBER = KÜPÜYESIRASI ## Bir küme içindeki üyenin derecesini veya kaçıncı olduğunu verir. En iyi satış elemanı, veya en iyi on öğrenci gibi bir kümedeki bir veya daha fazla öğeyi getirmek için kullanılır. +CUBESET = KÜPKÜME ## Kümeyi oluşturan ve ardından bu kümeyi Microsoft Office Excel'e getiren sunucudaki küpe küme ifadelerini göndererek hesaplanan üye veya kayıt kümesini tanımlar. +CUBESETCOUNT = KÜPKÜMESAY ## Bir kümedeki öğelerin sayısını getirir. +CUBEVALUE = KÜPDEĞER ## Bir küpten toplam değeri getirir. + + +## +## Database functions Veritabanı işlevleri +## +DAVERAGE = VSEÇORT ## Seçili veritabanı girdilerinin ortalamasını verir. +DCOUNT = VSEÇSAY ## Veritabanında sayı içeren hücre sayısını hesaplar. +DCOUNTA = VSEÇSAYDOLU ## Veritabanındaki boş olmayan hücreleri sayar. +DGET = VAL ## Veritabanından, belirtilen ölçütlerle eşleşen tek bir rapor çıkarır. +DMAX = VSEÇMAK ## Seçili veritabanı girişlerinin en yüksek değerini verir. +DMIN = VSEÇMİN ## Seçili veritabanı girişlerinin en düşük değerini verir. +DPRODUCT = VSEÇÇARP ## Kayıtların belli bir alanında bulunan, bir veritabanındaki ölçütlerle eşleşen değerleri çarpar. +DSTDEV = VSEÇSTDSAPMA ## Seçili veritabanı girişlerinden oluşan bir örneğe dayanarak, standart sapmayı tahmin eder. +DSTDEVP = VSEÇSTDSAPMAS ## Standart sapmayı, seçili veritabanı girişlerinin tüm popülasyonunu esas alarak hesaplar. +DSUM = VSEÇTOPLA ## Kayıtların alan sütununda bulunan, ölçütle eşleşen sayıları toplar. +DVAR = VSEÇVAR ## Seçili veritabanı girişlerinden oluşan bir örneği esas alarak farkı tahmin eder. +DVARP = VSEÇVARS ## Seçili veritabanı girişlerinin tüm popülasyonunu esas alarak farkı hesaplar. + + +## +## Date and time functions Tarih ve saat işlevleri +## +DATE = TARİH ## Belirli bir tarihin seri numarasını verir. +DATEVALUE = TARİHSAYISI ## Metin biçimindeki bir tarihi seri numarasına dönüştürür. +DAY = GÜN ## Seri numarasını, ayın bir gününe dönüştürür. +DAYS360 = GÜN360 ## İki tarih arasındaki gün sayısını, 360 günlük yılı esas alarak hesaplar. +EDATE = SERİTARİH ## Başlangıç tarihinden itibaren, belirtilen ay sayısından önce veya sonraki tarihin seri numarasını verir. +EOMONTH = SERİAY ## Belirtilen sayıda ay önce veya sonraki ayın son gününün seri numarasını verir. +HOUR = SAAT ## Bir seri numarasını saate dönüştürür. +MINUTE = DAKİKA ## Bir seri numarasını dakikaya dönüştürür. +MONTH = AY ## Bir seri numarasını aya dönüştürür. +NETWORKDAYS = TAMİŞGÜNÜ ## İki tarih arasındaki tam çalışma günlerinin sayısını verir. +NOW = ŞİMDİ ## Geçerli tarihin ve saatin seri numarasını verir. +SECOND = SANİYE ## Bir seri numarasını saniyeye dönüştürür. +TIME = ZAMAN ## Belirli bir zamanın seri numarasını verir. +TIMEVALUE = ZAMANSAYISI ## Metin biçimindeki zamanı seri numarasına dönüştürür. +TODAY = BUGÜN ## Bugünün tarihini seri numarasına dönüştürür. +WEEKDAY = HAFTANINGÜNÜ ## Bir seri numarasını, haftanın gününe dönüştürür. +WEEKNUM = HAFTASAY ## Dizisel değerini, haftanın yıl içinde bulunduğu konumu sayısal olarak gösteren sayıya dönüştürür. +WORKDAY = İŞGÜNÜ ## Belirtilen sayıda çalışma günü öncesinin ya da sonrasının tarihinin seri numarasını verir. +YEAR = YIL ## Bir seri numarasını yıla dönüştürür. +YEARFRAC = YILORAN ## Başlangıç_tarihi ve bitiş_tarihi arasındaki tam günleri gösteren yıl kesrini verir. + + +## +## Engineering functions Mühendislik işlevleri +## +BESSELI = BESSELI ## Değiştirilmiş Bessel fonksiyonu In(x)'i verir. +BESSELJ = BESSELJ ## Bessel fonksiyonu Jn(x)'i verir. +BESSELK = BESSELK ## Değiştirilmiş Bessel fonksiyonu Kn(x)'i verir. +BESSELY = BESSELY ## Bessel fonksiyonu Yn(x)'i verir. +BIN2DEC = BIN2DEC ## İkili bir sayıyı, ondalık sayıya dönüştürür. +BIN2HEX = BIN2HEX ## İkili bir sayıyı, onaltılıya dönüştürür. +BIN2OCT = BIN2OCT ## İkili bir sayıyı, sekizliye dönüştürür. +COMPLEX = KARMAŞIK ## Gerçek ve sanal katsayıları, karmaşık sayıya dönüştürür. +CONVERT = ÇEVİR ## Bir sayıyı, bir ölçüm sisteminden bir başka ölçüm sistemine dönüştürür. +DEC2BIN = DEC2BIN ## Ondalık bir sayıyı, ikiliye dönüştürür. +DEC2HEX = DEC2HEX ## Ondalık bir sayıyı, onaltılıya dönüştürür. +DEC2OCT = DEC2OCT ## Ondalık bir sayıyı sekizliğe dönüştürür. +DELTA = DELTA ## İki değerin eşit olup olmadığını sınar. +ERF = HATAİŞLEV ## Hata işlevini verir. +ERFC = TÜMHATAİŞLEV ## Tümleyici hata işlevini verir. +GESTEP = BESINIR ## Bir sayının eşik değerinden büyük olup olmadığını sınar. +HEX2BIN = HEX2BIN ## Onaltılı bir sayıyı ikiliye dönüştürür. +HEX2DEC = HEX2DEC ## Onaltılı bir sayıyı ondalığa dönüştürür. +HEX2OCT = HEX2OCT ## Onaltılı bir sayıyı sekizliğe dönüştürür. +IMABS = SANMUTLAK ## Karmaşık bir sayının mutlak değerini (modül) verir. +IMAGINARY = SANAL ## Karmaşık bir sayının sanal katsayısını verir. +IMARGUMENT = SANBAĞ_DEĞİŞKEN ## Radyanlarla belirtilen bir açı olan teta bağımsız değişkenini verir. +IMCONJUGATE = SANEŞLENEK ## Karmaşık bir sayının karmaşık eşleniğini verir. +IMCOS = SANCOS ## Karmaşık bir sayının kosinüsünü verir. +IMDIV = SANBÖL ## İki karmaşık sayının bölümünü verir. +IMEXP = SANÜS ## Karmaşık bir sayının üssünü verir. +IMLN = SANLN ## Karmaşık bir sayının doğal logaritmasını verir. +IMLOG10 = SANLOG10 ## Karmaşık bir sayının, 10 tabanında logaritmasını verir. +IMLOG2 = SANLOG2 ## Karmaşık bir sayının 2 tabanında logaritmasını verir. +IMPOWER = SANÜSSÜ ## Karmaşık bir sayıyı, bir tamsayı üssüne yükseltilmiş olarak verir. +IMPRODUCT = SANÇARP ## Karmaşık sayıların çarpımını verir. +IMREAL = SANGERÇEK ## Karmaşık bir sayının, gerçek katsayısını verir. +IMSIN = SANSIN ## Karmaşık bir sayının sinüsünü verir. +IMSQRT = SANKAREKÖK ## Karmaşık bir sayının karekökünü verir. +IMSUB = SANÇIKAR ## İki karmaşık sayının farkını verir. +IMSUM = SANTOPLA ## Karmaşık sayıların toplamını verir. +OCT2BIN = OCT2BIN ## Sekizli bir sayıyı ikiliye dönüştürür. +OCT2DEC = OCT2DEC ## Sekizli bir sayıyı ondalığa dönüştürür. +OCT2HEX = OCT2HEX ## Sekizli bir sayıyı onaltılıya dönüştürür. + + +## +## Financial functions Finansal fonksiyonlar +## +ACCRINT = GERÇEKFAİZ ## Dönemsel faiz ödeyen hisse senedine ilişkin tahakkuk eden faizi getirir. +ACCRINTM = GERÇEKFAİZV ## Vadesinde ödeme yapan bir tahvilin tahakkuk etmiş faizini verir. +AMORDEGRC = AMORDEGRC ## Yıpranma katsayısı kullanarak her hesap döneminin değer kaybını verir. +AMORLINC = AMORLINC ## Her hesap dönemi içindeki yıpranmayı verir. +COUPDAYBS = KUPONGÜNBD ## Kupon süresinin başlangıcından alış tarihine kadar olan süredeki gün sayısını verir. +COUPDAYS = KUPONGÜN ## Kupon süresindeki, gün sayısını, alış tarihini de içermek üzere, verir. +COUPDAYSNC = KUPONGÜNDSK ## Alış tarihinden bir sonraki kupon tarihine kadar olan gün sayısını verir. +COUPNCD = KUPONGÜNSKT ## Alış tarihinden bir sonraki kupon tarihini verir. +COUPNUM = KUPONSAYI ## Alış tarihiyle vade tarihi arasında ödenecek kuponların sayısını verir. +COUPPCD = KUPONGÜNÖKT ## Alış tarihinden bir önceki kupon tarihini verir. +CUMIPMT = AİÇVERİMORANI ## İki dönem arasında ödenen kümülatif faizi verir. +CUMPRINC = ANA_PARA_ÖDEMESİ ## İki dönem arasında bir borç üzerine ödenen birikimli temeli verir. +DB = AZALANBAKİYE ## Bir malın belirtilen bir süre içindeki yıpranmasını, sabit azalan bakiye yöntemini kullanarak verir. +DDB = ÇİFTAZALANBAKİYE ## Bir malın belirtilen bir süre içindeki yıpranmasını, çift azalan bakiye yöntemi ya da sizin belirttiğiniz başka bir yöntemi kullanarak verir. +DISC = İNDİRİM ## Bir tahvilin indirim oranını verir. +DOLLARDE = LİRAON ## Kesir olarak tanımlanmış lira fiyatını, ondalık sayı olarak tanımlanmış lira fiyatına dönüştürür. +DOLLARFR = LİRAKES ## Ondalık sayı olarak tanımlanmış lira fiyatını, kesir olarak tanımlanmış lira fiyatına dönüştürür. +DURATION = SÜRE ## Belli aralıklarla faiz ödemesi yapan bir tahvilin yıllık süresini verir. +EFFECT = ETKİN ## Efektif yıllık faiz oranını verir. +FV = ANBD ## Bir yatırımın gelecekteki değerini verir. +FVSCHEDULE = GDPROGRAM ## Bir seri birleşik faiz oranı uyguladıktan sonra, bir başlangıçtaki anaparanın gelecekteki değerini verir. +INTRATE = FAİZORANI ## Tam olarak yatırım yapılmış bir tahvilin faiz oranını verir. +IPMT = FAİZTUTARI ## Bir yatırımın verilen bir süre için faiz ödemesini verir. +IRR = İÇ_VERİM_ORANI ## Bir para akışı serisi için, iç verim oranını verir. +ISPMT = ISPMT ## Yatırımın belirli bir dönemi boyunca ödenen faizi hesaplar. +MDURATION = MSÜRE ## Varsayılan par değeri 10.000.000 lira olan bir tahvil için Macauley değiştirilmiş süreyi verir. +MIRR = D_İÇ_VERİM_ORANI ## Pozitif ve negatif para akışlarının farklı oranlarda finanse edildiği durumlarda, iç verim oranını verir. +NOMINAL = NOMİNAL ## Yıllık nominal faiz oranını verir. +NPER = DÖNEM_SAYISI ## Bir yatırımın dönem sayısını verir. +NPV = NBD ## Bir yatırımın bugünkü net değerini, bir dönemsel para akışları serisine ve bir indirim oranına bağlı olarak verir. +ODDFPRICE = TEKYDEĞER ## Tek bir ilk dönemi olan bir tahvilin değerini, her 100.000.000 lirada bir verir. +ODDFYIELD = TEKYÖDEME ## Tek bir ilk dönemi olan bir tahvilin ödemesini verir. +ODDLPRICE = TEKSDEĞER ## Tek bir son dönemi olan bir tahvilin fiyatını her 10.000.000 lirada bir verir. +ODDLYIELD = TEKSÖDEME ## Tek bir son dönemi olan bir tahvilin ödemesini verir. +PMT = DEVRESEL_ÖDEME ## Bir yıllık dönemsel ödemeyi verir. +PPMT = ANA_PARA_ÖDEMESİ ## Verilen bir süre için, bir yatırımın anaparasına dayanan ödemeyi verir. +PRICE = DEĞER ## Dönemsel faiz ödeyen bir tahvilin fiyatını 10.000.00 liralık değer başına verir. +PRICEDISC = DEĞERİND ## İndirimli bir tahvilin fiyatını 10.000.000 liralık nominal değer başına verir. +PRICEMAT = DEĞERVADE ## Faizini vade sonunda ödeyen bir tahvilin fiyatını 10.000.000 nominal değer başına verir. +PV = BD ## Bir yatırımın bugünkü değerini verir. +RATE = FAİZ_ORANI ## Bir yıllık dönem başına düşen faiz oranını verir. +RECEIVED = GETİRİ ## Tam olarak yatırılmış bir tahvilin vadesinin bitiminde alınan miktarı verir. +SLN = DA ## Bir malın bir dönem içindeki doğrusal yıpranmasını verir. +SYD = YAT ## Bir malın belirli bir dönem için olan amortismanını verir. +TBILLEQ = HTAHEŞ ## Bir Hazine bonosunun bono eşdeğeri ödemesini verir. +TBILLPRICE = HTAHDEĞER ## Bir Hazine bonosunun değerini, 10.000.000 liralık nominal değer başına verir. +TBILLYIELD = HTAHÖDEME ## Bir Hazine bonosunun ödemesini verir. +VDB = DAB ## Bir malın amortismanını, belirlenmiş ya da kısmi bir dönem için, bir azalan bakiye yöntemi kullanarak verir. +XIRR = AİÇVERİMORANI ## Dönemsel olması gerekmeyen bir para akışları programı için, iç verim oranını verir. +XNPV = ANBD ## Dönemsel olması gerekmeyen bir para akışları programı için, bugünkü net değeri verir. +YIELD = ÖDEME ## Belirli aralıklarla faiz ödeyen bir tahvilin ödemesini verir. +YIELDDISC = ÖDEMEİND ## İndirimli bir tahvilin yıllık ödemesini verir; örneğin, bir Hazine bonosunun. +YIELDMAT = ÖDEMEVADE ## Vadesinin bitiminde faiz ödeyen bir tahvilin yıllık ödemesini verir. + + +## +## Information functions Bilgi fonksiyonları +## +CELL = HÜCRE ## Bir hücrenin biçimlendirmesi, konumu ya da içeriği hakkında bilgi verir. +ERROR.TYPE = HATA.TİPİ ## Bir hata türüne ilişkin sayıları verir. +INFO = BİLGİ ## Geçerli işletim ortamı hakkında bilgi verir. +ISBLANK = EBOŞSA ## Değer boşsa, DOĞRU verir. +ISERR = EHATA ## Değer, #YOK dışındaki bir hata değeriyse, DOĞRU verir. +ISERROR = EHATALIYSA ## Değer, herhangi bir hata değeriyse, DOĞRU verir. +ISEVEN = ÇİFTTİR ## Sayı çiftse, DOĞRU verir. +ISLOGICAL = EMANTIKSALSA ## Değer, mantıksal bir değerse, DOĞRU verir. +ISNA = EYOKSA ## Değer, #YOK hata değeriyse, DOĞRU verir. +ISNONTEXT = EMETİNDEĞİLSE ## Değer, metin değilse, DOĞRU verir. +ISNUMBER = ESAYIYSA ## Değer, bir sayıysa, DOĞRU verir. +ISODD = TEKTİR ## Sayı tekse, DOĞRU verir. +ISREF = EREFSE ## Değer bir başvuruysa, DOĞRU verir. +ISTEXT = EMETİNSE ## Değer bir metinse DOĞRU verir. +N = N ## Sayıya dönüştürülmüş bir değer verir. +NA = YOKSAY ## #YOK hata değerini verir. +TYPE = TİP ## Bir değerin veri türünü belirten bir sayı verir. + + +## +## Logical functions Mantıksal fonksiyonlar +## +AND = VE ## Bütün bağımsız değişkenleri DOĞRU ise, DOĞRU verir. +FALSE = YANLIŞ ## YANLIŞ mantıksal değerini verir. +IF = EĞER ## Gerçekleştirilecek bir mantıksal sınama belirtir. +IFERROR = EĞERHATA ## Formül hatalıysa belirttiğiniz değeri verir; bunun dışındaki durumlarda formülün sonucunu verir. +NOT = DEĞİL ## Bağımsız değişkeninin mantığını tersine çevirir. +OR = YADA ## Bağımsız değişkenlerden herhangi birisi DOĞRU ise, DOĞRU verir. +TRUE = DOĞRU ## DOĞRU mantıksal değerini verir. + + +## +## Lookup and reference functions Arama ve Başvuru fonksiyonları +## +ADDRESS = ADRES ## Bir başvuruyu, çalışma sayfasındaki tek bir hücreye metin olarak verir. +AREAS = ALANSAY ## Renvoie le nombre de zones dans une référence. +CHOOSE = ELEMAN ## Değerler listesinden bir değer seçer. +COLUMN = SÜTUN ## Bir başvurunun sütun sayısını verir. +COLUMNS = SÜTUNSAY ## Bir başvurudaki sütunların sayısını verir. +HLOOKUP = YATAYARA ## Bir dizinin en üst satırına bakar ve belirtilen hücrenin değerini verir. +HYPERLINK = KÖPRÜ ## Bir ağ sunucusunda, bir intranette ya da Internet'te depolanan bir belgeyi açan bir kısayol ya da atlama oluşturur. +INDEX = İNDİS ## Başvurudan veya diziden bir değer seçmek için, bir dizin kullanır. +INDIRECT = DOLAYLI ## Metin değeriyle belirtilen bir başvuru verir. +LOOKUP = ARA ## Bir vektördeki veya dizideki değerleri arar. +MATCH = KAÇINCI ## Bir başvurudaki veya dizideki değerleri arar. +OFFSET = KAYDIR ## Verilen bir başvurudan, bir başvuru kaydırmayı verir. +ROW = SATIR ## Bir başvurunun satır sayısını verir. +ROWS = SATIRSAY ## Bir başvurudaki satırların sayısını verir. +RTD = RTD ## COM otomasyonunu destekleyen programdan gerçek zaman verileri alır. +TRANSPOSE = DEVRİK_DÖNÜŞÜM ## Bir dizinin devrik dönüşümünü verir. +VLOOKUP = DÜŞEYARA ## Bir dizinin ilk sütununa bakar ve bir hücrenin değerini vermek için satır boyunca hareket eder. + + +## +## Math and trigonometry functions Matematik ve trigonometri fonksiyonları +## +ABS = MUTLAK ## Bir sayının mutlak değerini verir. +ACOS = ACOS ## Bir sayının ark kosinüsünü verir. +ACOSH = ACOSH ## Bir sayının ters hiperbolik kosinüsünü verir. +ASIN = ASİN ## Bir sayının ark sinüsünü verir. +ASINH = ASİNH ## Bir sayının ters hiperbolik sinüsünü verir. +ATAN = ATAN ## Bir sayının ark tanjantını verir. +ATAN2 = ATAN2 ## Ark tanjantı, x- ve y- koordinatlarından verir. +ATANH = ATANH ## Bir sayının ters hiperbolik tanjantını verir. +CEILING = TAVANAYUVARLA ## Bir sayıyı, en yakın tamsayıya ya da en yakın katına yuvarlar. +COMBIN = KOMBİNASYON ## Verilen sayıda öğenin kombinasyon sayısını verir. +COS = COS ## Bir sayının kosinüsünü verir. +COSH = COSH ## Bir sayının hiperbolik kosinüsünü verir. +DEGREES = DERECE ## Radyanları dereceye dönüştürür. +EVEN = ÇİFT ## Bir sayıyı, en yakın daha büyük çift tamsayıya yuvarlar. +EXP = ÜS ## e'yi, verilen bir sayının üssüne yükseltilmiş olarak verir. +FACT = ÇARPINIM ## Bir sayının faktörünü verir. +FACTDOUBLE = ÇİFTFAKTÖR ## Bir sayının çift çarpınımını verir. +FLOOR = TABANAYUVARLA ## Bir sayıyı, daha küçük sayıya, sıfıra yakınsayarak yuvarlar. +GCD = OBEB ## En büyük ortak böleni verir. +INT = TAMSAYI ## Bir sayıyı aşağıya doğru en yakın tamsayıya yuvarlar. +LCM = OKEK ## En küçük ortak katı verir. +LN = LN ## Bir sayının doğal logaritmasını verir. +LOG = LOG ## Bir sayının, belirtilen bir tabandaki logaritmasını verir. +LOG10 = LOG10 ## Bir sayının 10 tabanında logaritmasını verir. +MDETERM = DETERMİNANT ## Bir dizinin dizey determinantını verir. +MINVERSE = DİZEY_TERS ## Bir dizinin dizey tersini verir. +MMULT = DÇARP ## İki dizinin dizey çarpımını verir. +MOD = MODÜLO ## Bölmeden kalanı verir. +MROUND = KYUVARLA ## İstenen kata yuvarlanmış bir sayı verir. +MULTINOMIAL = ÇOKTERİMLİ ## Bir sayılar kümesinin çok terimlisini verir. +ODD = TEK ## Bir sayıyı en yakın daha büyük tek sayıya yuvarlar. +PI = Pİ ## Pi değerini verir. +POWER = KUVVET ## Bir üsse yükseltilmiş sayının sonucunu verir. +PRODUCT = ÇARPIM ## Bağımsız değişkenlerini çarpar. +QUOTIENT = BÖLÜM ## Bir bölme işleminin tamsayı kısmını verir. +RADIANS = RADYAN ## Dereceleri radyanlara dönüştürür. +RAND = S_SAYI_ÜRET ## 0 ile 1 arasında rastgele bir sayı verir. +RANDBETWEEN = RASTGELEARALIK ## Belirttiğiniz sayılar arasında rastgele bir sayı verir. +ROMAN = ROMEN ## Bir normal rakamı, metin olarak, romen rakamına çevirir. +ROUND = YUVARLA ## Bir sayıyı, belirtilen basamak sayısına yuvarlar. +ROUNDDOWN = AŞAĞIYUVARLA ## Bir sayıyı, daha küçük sayıya, sıfıra yakınsayarak yuvarlar. +ROUNDUP = YUKARIYUVARLA ## Bir sayıyı daha büyük sayıya, sıfırdan ıraksayarak yuvarlar. +SERIESSUM = SERİTOPLA ## Bir üs serisinin toplamını, formüle bağlı olarak verir. +SIGN = İŞARET ## Bir sayının işaretini verir. +SIN = SİN ## Verilen bir açının sinüsünü verir. +SINH = SİNH ## Bir sayının hiperbolik sinüsünü verir. +SQRT = KAREKÖK ## Pozitif bir karekök verir. +SQRTPI = KAREKÖKPİ ## (* Pi sayısının) kare kökünü verir. +SUBTOTAL = ALTTOPLAM ## Bir listedeki ya da veritabanındaki bir alt toplamı verir. +SUM = TOPLA ## Bağımsız değişkenlerini toplar. +SUMIF = ETOPLA ## Verilen ölçütle belirlenen hücreleri toplar. +SUMIFS = SUMIFS ## Bir aralıktaki, birden fazla ölçüte uyan hücreleri ekler. +SUMPRODUCT = TOPLA.ÇARPIM ## İlişkili dizi bileşenlerinin çarpımlarının toplamını verir. +SUMSQ = TOPKARE ## Bağımsız değişkenlerin karelerinin toplamını verir. +SUMX2MY2 = TOPX2EY2 ## İki dizideki ilişkili değerlerin farkının toplamını verir. +SUMX2PY2 = TOPX2AY2 ## İki dizideki ilişkili değerlerin karelerinin toplamının toplamını verir. +SUMXMY2 = TOPXEY2 ## İki dizideki ilişkili değerlerin farklarının karelerinin toplamını verir. +TAN = TAN ## Bir sayının tanjantını verir. +TANH = TANH ## Bir sayının hiperbolik tanjantını verir. +TRUNC = NSAT ## Bir sayının, tamsayı durumuna gelecek şekilde, fazlalıklarını atar. + + +## +## Statistical functions İstatistiksel fonksiyonlar +## +AVEDEV = ORTSAP ## Veri noktalarının ortalamalarından mutlak sapmalarının ortalamasını verir. +AVERAGE = ORTALAMA ## Bağımsız değişkenlerinin ortalamasını verir. +AVERAGEA = ORTALAMAA ## Bağımsız değişkenlerinin, sayılar, metin ve mantıksal değerleri içermek üzere ortalamasını verir. +AVERAGEIF = EĞERORTALAMA ## Verili ölçütü karşılayan bir aralıktaki bütün hücrelerin ortalamasını (aritmetik ortalama) hesaplar. +AVERAGEIFS = EĞERLERORTALAMA ## Birden çok ölçüte uyan tüm hücrelerin ortalamasını (aritmetik ortalama) hesaplar. +BETADIST = BETADAĞ ## Beta birikimli dağılım fonksiyonunu verir. +BETAINV = BETATERS ## Belirli bir beta dağılımı için birikimli dağılım fonksiyonunun tersini verir. +BINOMDIST = BİNOMDAĞ ## Tek terimli binom dağılımı olasılığını verir. +CHIDIST = KİKAREDAĞ ## Kikare dağılımın tek kuyruklu olasılığını verir. +CHIINV = KİKARETERS ## Kikare dağılımın kuyruklu olasılığının tersini verir. +CHITEST = KİKARETEST ## Bağımsızlık sınamalarını verir. +CONFIDENCE = GÜVENİRLİK ## Bir popülasyon ortalaması için güvenirlik aralığını verir. +CORREL = KORELASYON ## İki veri kümesi arasındaki bağlantı katsayısını verir. +COUNT = BAĞ_DEĞ_SAY ## Bağımsız değişkenler listesinde kaç tane sayı bulunduğunu sayar. +COUNTA = BAĞ_DEĞ_DOLU_SAY ## Bağımsız değişkenler listesinde kaç tane değer bulunduğunu sayar. +COUNTBLANK = BOŞLUKSAY ## Aralıktaki boş hücre sayısını hesaplar. +COUNTIF = EĞERSAY ## Verilen ölçütlere uyan bir aralık içindeki hücreleri sayar. +COUNTIFS = ÇOKEĞERSAY ## Birden çok ölçüte uyan bir aralık içindeki hücreleri sayar. +COVAR = KOVARYANS ## Eşleştirilmiş sapmaların ortalaması olan kovaryansı verir. +CRITBINOM = KRİTİKBİNOM ## Birikimli binom dağılımının bir ölçüt değerinden küçük veya ölçüt değerine eşit olduğu en küçük değeri verir. +DEVSQ = SAPKARE ## Sapmaların karelerinin toplamını verir. +EXPONDIST = ÜSTELDAĞ ## Üstel dağılımı verir. +FDIST = FDAĞ ## F olasılık dağılımını verir. +FINV = FTERS ## F olasılık dağılımının tersini verir. +FISHER = FISHER ## Fisher dönüşümünü verir. +FISHERINV = FISHERTERS ## Fisher dönüşümünün tersini verir. +FORECAST = TAHMİN ## Bir doğrusal eğilim boyunca bir değer verir. +FREQUENCY = SIKLIK ## Bir sıklık dağılımını, dikey bir dizi olarak verir. +FTEST = FTEST ## Bir F-test'in sonucunu verir. +GAMMADIST = GAMADAĞ ## Gama dağılımını verir. +GAMMAINV = GAMATERS ## Gama kümülatif dağılımının tersini verir. +GAMMALN = GAMALN ## Gama fonksiyonunun (?(x)) doğal logaritmasını verir. +GEOMEAN = GEOORT ## Geometrik ortayı verir. +GROWTH = BÜYÜME ## Üstel bir eğilim boyunca değerler verir. +HARMEAN = HARORT ## Harmonik ortayı verir. +HYPGEOMDIST = HİPERGEOMDAĞ ## Hipergeometrik dağılımı verir. +INTERCEPT = KESMENOKTASI ## Doğrusal çakıştırma çizgisinin kesişme noktasını verir. +KURT = BASIKLIK ## Bir veri kümesinin basıklığını verir. +LARGE = BÜYÜK ## Bir veri kümesinde k. en büyük değeri verir. +LINEST = DOT ## Doğrusal bir eğilimin parametrelerini verir. +LOGEST = LOT ## Üstel bir eğilimin parametrelerini verir. +LOGINV = LOGTERS ## Bir lognormal dağılımının tersini verir. +LOGNORMDIST = LOGNORMDAĞ ## Birikimli lognormal dağılımını verir. +MAX = MAK ## Bir bağımsız değişkenler listesindeki en büyük değeri verir. +MAXA = MAKA ## Bir bağımsız değişkenler listesindeki, sayılar, metin ve mantıksal değerleri içermek üzere, en büyük değeri verir. +MEDIAN = ORTANCA ## Belirtilen sayıların orta değerini verir. +MIN = MİN ## Bir bağımsız değişkenler listesindeki en küçük değeri verir. +MINA = MİNA ## Bir bağımsız değişkenler listesindeki, sayılar, metin ve mantıksal değerleri de içermek üzere, en küçük değeri verir. +MODE = ENÇOK_OLAN ## Bir veri kümesindeki en sık rastlanan değeri verir. +NEGBINOMDIST = NEGBİNOMDAĞ ## Negatif binom dağılımını verir. +NORMDIST = NORMDAĞ ## Normal birikimli dağılımı verir. +NORMINV = NORMTERS ## Normal kümülatif dağılımın tersini verir. +NORMSDIST = NORMSDAĞ ## Standart normal birikimli dağılımı verir. +NORMSINV = NORMSTERS ## Standart normal birikimli dağılımın tersini verir. +PEARSON = PEARSON ## Pearson çarpım moment korelasyon katsayısını verir. +PERCENTILE = YÜZDEBİRLİK ## Bir aralık içerisinde bulunan değerlerin k. frekans toplamını verir. +PERCENTRANK = YÜZDERANK ## Bir veri kümesindeki bir değerin yüzde mertebesini verir. +PERMUT = PERMÜTASYON ## Verilen sayıda nesne için permütasyon sayısını verir. +POISSON = POISSON ## Poisson dağılımını verir. +PROB = OLASILIK ## Bir aralıktaki değerlerin iki sınır arasında olması olasılığını verir. +QUARTILE = DÖRTTEBİRLİK ## Bir veri kümesinin dörtte birliğini verir. +RANK = RANK ## Bir sayılar listesinde bir sayının mertebesini verir. +RSQ = RKARE ## Pearson çarpım moment korelasyon katsayısının karesini verir. +SKEW = ÇARPIKLIK ## Bir dağılımın çarpıklığını verir. +SLOPE = EĞİM ## Doğrusal çakışma çizgisinin eğimini verir. +SMALL = KÜÇÜK ## Bir veri kümesinde k. en küçük değeri verir. +STANDARDIZE = STANDARTLAŞTIRMA ## Normalleştirilmiş bir değer verir. +STDEV = STDSAPMA ## Bir örneğe dayanarak standart sapmayı tahmin eder. +STDEVA = STDSAPMAA ## Standart sapmayı, sayılar, metin ve mantıksal değerleri içermek üzere, bir örneğe bağlı olarak tahmin eder. +STDEVP = STDSAPMAS ## Standart sapmayı, tüm popülasyona bağlı olarak hesaplar. +STDEVPA = STDSAPMASA ## Standart sapmayı, sayılar, metin ve mantıksal değerleri içermek üzere, tüm popülasyona bağlı olarak hesaplar. +STEYX = STHYX ## Regresyondaki her x için tahmini y değerinin standart hatasını verir. +TDIST = TDAĞ ## T-dağılımını verir. +TINV = TTERS ## T-dağılımının tersini verir. +TREND = EĞİLİM ## Doğrusal bir eğilim boyunca değerler verir. +TRIMMEAN = KIRPORTALAMA ## Bir veri kümesinin içinin ortalamasını verir. +TTEST = TTEST ## T-test'le ilişkilendirilmiş olasılığı verir. +VAR = VAR ## Varyansı, bir örneğe bağlı olarak tahmin eder. +VARA = VARA ## Varyansı, sayılar, metin ve mantıksal değerleri içermek üzere, bir örneğe bağlı olarak tahmin eder. +VARP = VARS ## Varyansı, tüm popülasyona dayanarak hesaplar. +VARPA = VARSA ## Varyansı, sayılar, metin ve mantıksal değerleri içermek üzere, tüm popülasyona bağlı olarak hesaplar. +WEIBULL = WEIBULL ## Weibull dağılımını hesaplar. +ZTEST = ZTEST ## Z-testinin tek kuyruklu olasılık değerini hesaplar. + + +## +## Text functions Metin fonksiyonları +## +ASC = ASC ## Bir karakter dizesindeki çift enli (iki bayt) İngilizce harfleri veya katakanayı yarım enli (tek bayt) karakterlerle değiştirir. +BAHTTEXT = BAHTTEXT ## Sayıyı, ß (baht) para birimi biçimini kullanarak metne dönüştürür. +CHAR = DAMGA ## Kod sayısıyla belirtilen karakteri verir. +CLEAN = TEMİZ ## Metindeki bütün yazdırılamaz karakterleri kaldırır. +CODE = KOD ## Bir metin dizesindeki ilk karakter için sayısal bir kod verir. +CONCATENATE = BİRLEŞTİR ## Pek çok metin öğesini bir metin öğesi olarak birleştirir. +DOLLAR = LİRA ## Bir sayıyı YTL (yeni Türk lirası) para birimi biçimini kullanarak metne dönüştürür. +EXACT = ÖZDEŞ ## İki metin değerinin özdeş olup olmadığını anlamak için, değerleri denetler. +FIND = BUL ## Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlıdır). +FINDB = BULB ## Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlıdır). +FIXED = SAYIDÜZENLE ## Bir sayıyı, sabit sayıda ondalıkla, metin olarak biçimlendirir. +JIS = JIS ## Bir karakter dizesindeki tek enli (tek bayt) İngilizce harfleri veya katakanayı çift enli (iki bayt) karakterlerle değiştirir. +LEFT = SOL ## Bir metin değerinden en soldaki karakterleri verir. +LEFTB = SOLB ## Bir metin değerinden en soldaki karakterleri verir. +LEN = UZUNLUK ## Bir metin dizesindeki karakter sayısını verir. +LENB = UZUNLUKB ## Bir metin dizesindeki karakter sayısını verir. +LOWER = KÜÇÜKHARF ## Metni küçük harfe çevirir. +MID = ORTA ## Bir metin dizesinden belirli sayıda karakteri, belirttiğiniz konumdan başlamak üzere verir. +MIDB = ORTAB ## Bir metin dizesinden belirli sayıda karakteri, belirttiğiniz konumdan başlamak üzere verir. +PHONETIC = SES ## Metin dizesinden ses (furigana) karakterlerini ayıklar. +PROPER = YAZIM.DÜZENİ ## Bir metin değerinin her bir sözcüğünün ilk harfini büyük harfe çevirir. +REPLACE = DEĞİŞTİR ## Metnin içindeki karakterleri değiştirir. +REPLACEB = DEĞİŞTİRB ## Metnin içindeki karakterleri değiştirir. +REPT = YİNELE ## Metni belirtilen sayıda yineler. +RIGHT = SAĞ ## Bir metin değerinden en sağdaki karakterleri verir. +RIGHTB = SAĞB ## Bir metin değerinden en sağdaki karakterleri verir. +SEARCH = BUL ## Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlı değildir). +SEARCHB = BULB ## Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlı değildir). +SUBSTITUTE = YERİNEKOY ## Bir metin dizesinde, eski metnin yerine yeni metin koyar. +T = M ## Bağımsız değerlerini metne dönüştürür. +TEXT = METNEÇEVİR ## Bir sayıyı biçimlendirir ve metne dönüştürür. +TRIM = KIRP ## Metindeki boşlukları kaldırır. +UPPER = BÜYÜKHARF ## Metni büyük harfe çevirir. +VALUE = SAYIYAÇEVİR ## Bir metin bağımsız değişkenini sayıya dönüştürür. diff --git a/plugins/excel_reader/index.php b/plugins/excel_reader/index.php new file mode 100755 index 0000000..69a3125 --- /dev/null +++ b/plugins/excel_reader/index.php @@ -0,0 +1,44 @@ +<?php + /* +Script Name: Read excel file in php with example +Script URI: http://allitstuff.com/?p=1303 +Website URI: http://allitstuff.com/ +*/ +?> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +</head> +<body> +<a href="http://allitstuff.com/">AllItStuff.com</a> +<?php +/** Include path **/ +set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/'); + +/** PHPExcel_IOFactory */ +include 'PHPExcel/IOFactory.php'; + + +$inputFileName = './test.xls'; // File to read +//echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory to identify the format<br />'; +try { + $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); +} catch(Exception $e) { + die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); +} + + +echo '<hr />'; +echo "<pre>"; +$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); +print_r($sheetData); + +/* foreach($sheetData as $rec) +{ + print_r($rec); +} + */ + +?> +<body> +</html> \ No newline at end of file diff --git a/plugins/excel_reader/jd.xlsx b/plugins/excel_reader/jd.xlsx new file mode 100755 index 0000000000000000000000000000000000000000..f3e6e71f65e1a96bfdbf419169941e0a3597aabf GIT binary patch literal 8390 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 A-v9sr literal 0 HcmV?d00001 diff --git a/system/.htaccess b/system/.htaccess new file mode 100755 index 0000000..14249c5 --- /dev/null +++ b/system/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/system/core/Benchmark.php b/system/core/Benchmark.php new file mode 100755 index 0000000..a200727 --- /dev/null +++ b/system/core/Benchmark.php @@ -0,0 +1,118 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Benchmark Class + * + * This class enables you to mark points and calculate the time difference + * between them. Memory consumption can also be displayed. + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/benchmark.html + */ +class CI_Benchmark { + + /** + * List of all benchmark markers and when they were added + * + * @var array + */ + var $marker = array(); + + // -------------------------------------------------------------------- + + /** + * Set a benchmark marker + * + * Multiple calls to this function can be made so that several + * execution points can be timed + * + * @access public + * @param string $name name of the marker + * @return void + */ + function mark($name) + { + $this->marker[$name] = microtime(); + } + + // -------------------------------------------------------------------- + + /** + * Calculates the time difference between two marked points. + * + * If the first parameter is empty this function instead returns the + * {elapsed_time} pseudo-variable. This permits the full system + * execution time to be shown in a template. The output class will + * swap the real value for this variable. + * + * @access public + * @param string a particular marked point + * @param string a particular marked point + * @param integer the number of decimal places + * @return mixed + */ + function elapsed_time($point1 = '', $point2 = '', $decimals = 4) + { + if ($point1 == '') + { + return '{elapsed_time}'; + } + + if ( ! isset($this->marker[$point1])) + { + return ''; + } + + if ( ! isset($this->marker[$point2])) + { + $this->marker[$point2] = microtime(); + } + + list($sm, $ss) = explode(' ', $this->marker[$point1]); + list($em, $es) = explode(' ', $this->marker[$point2]); + + return number_format(($em + $es) - ($sm + $ss), $decimals); + } + + // -------------------------------------------------------------------- + + /** + * Memory Usage + * + * This function returns the {memory_usage} pseudo-variable. + * This permits it to be put it anywhere in a template + * without the memory being calculated until the end. + * The output class will swap the real value for this variable. + * + * @access public + * @return string + */ + function memory_usage() + { + return '{memory_usage}'; + } + +} + +// END CI_Benchmark class + +/* End of file Benchmark.php */ +/* Location: ./system/core/Benchmark.php */ \ No newline at end of file diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php new file mode 100755 index 0000000..e0819c8 --- /dev/null +++ b/system/core/CodeIgniter.php @@ -0,0 +1,402 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * System Initialization File + * + * Loads the base classes and executes the request. + * + * @package CodeIgniter + * @subpackage codeigniter + * @category Front-controller + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/ + */ + +/** + * CodeIgniter Version + * + * @var string + * + */ + define('CI_VERSION', '2.1.4'); + +/** + * CodeIgniter Branch (Core = TRUE, Reactor = FALSE) + * + * @var boolean + * + */ + define('CI_CORE', FALSE); + +/* + * ------------------------------------------------------ + * Load the global functions + * ------------------------------------------------------ + */ + require(BASEPATH.'core/Common.php'); + +/* + * ------------------------------------------------------ + * Load the framework constants + * ------------------------------------------------------ + */ + if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/constants.php')) + { + require(APPPATH.'config/'.ENVIRONMENT.'/constants.php'); + } + else + { + require(APPPATH.'config/constants.php'); + } + +/* + * ------------------------------------------------------ + * Define a custom error handler so we can log PHP errors + * ------------------------------------------------------ + */ + set_error_handler('_exception_handler'); + + if ( ! is_php('5.3')) + { + @set_magic_quotes_runtime(0); // Kill magic quotes + } + +/* + * ------------------------------------------------------ + * Set the subclass_prefix + * ------------------------------------------------------ + * + * Normally the "subclass_prefix" is set in the config file. + * The subclass prefix allows CI to know if a core class is + * being extended via a library in the local application + * "libraries" folder. Since CI allows config items to be + * overriden via data set in the main index. php file, + * before proceeding we need to know if a subclass_prefix + * override exists. If so, we will set this value now, + * before any classes are loaded + * Note: Since the config file data is cached it doesn't + * hurt to load it here. + */ + if (isset($assign_to_config['subclass_prefix']) AND $assign_to_config['subclass_prefix'] != '') + { + get_config(array('subclass_prefix' => $assign_to_config['subclass_prefix'])); + } + +/* + * ------------------------------------------------------ + * Set a liberal script execution time limit + * ------------------------------------------------------ + */ + if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0) + { + @set_time_limit(300); + } + +/* + * ------------------------------------------------------ + * Start the timer... tick tock tick tock... + * ------------------------------------------------------ + */ + $BM =& load_class('Benchmark', 'core'); + $BM->mark('total_execution_time_start'); + $BM->mark('loading_time:_base_classes_start'); + +/* + * ------------------------------------------------------ + * Instantiate the hooks class + * ------------------------------------------------------ + */ + $EXT =& load_class('Hooks', 'core'); + +/* + * ------------------------------------------------------ + * Is there a "pre_system" hook? + * ------------------------------------------------------ + */ + $EXT->_call_hook('pre_system'); + +/* + * ------------------------------------------------------ + * Instantiate the config class + * ------------------------------------------------------ + */ + $CFG =& load_class('Config', 'core'); + + // Do we have any manually set config items in the index.php file? + if (isset($assign_to_config)) + { + $CFG->_assign_to_config($assign_to_config); + } + +/* + * ------------------------------------------------------ + * Instantiate the UTF-8 class + * ------------------------------------------------------ + * + * Note: Order here is rather important as the UTF-8 + * class needs to be used very early on, but it cannot + * properly determine if UTf-8 can be supported until + * after the Config class is instantiated. + * + */ + + $UNI =& load_class('Utf8', 'core'); + +/* + * ------------------------------------------------------ + * Instantiate the URI class + * ------------------------------------------------------ + */ + $URI =& load_class('URI', 'core'); + +/* + * ------------------------------------------------------ + * Instantiate the routing class and set the routing + * ------------------------------------------------------ + */ + $RTR =& load_class('Router', 'core'); + $RTR->_set_routing(); + + // Set any routing overrides that may exist in the main index file + if (isset($routing)) + { + $RTR->_set_overrides($routing); + } + +/* + * ------------------------------------------------------ + * Instantiate the output class + * ------------------------------------------------------ + */ + $OUT =& load_class('Output', 'core'); + +/* + * ------------------------------------------------------ + * Is there a valid cache file? If so, we're done... + * ------------------------------------------------------ + */ + if ($EXT->_call_hook('cache_override') === FALSE) + { + if ($OUT->_display_cache($CFG, $URI) == TRUE) + { + exit; + } + } + +/* + * ----------------------------------------------------- + * Load the security class for xss and csrf support + * ----------------------------------------------------- + */ + $SEC =& load_class('Security', 'core'); + +/* + * ------------------------------------------------------ + * Load the Input class and sanitize globals + * ------------------------------------------------------ + */ + $IN =& load_class('Input', 'core'); + +/* + * ------------------------------------------------------ + * Load the Language class + * ------------------------------------------------------ + */ + $LANG =& load_class('Lang', 'core'); + +/* + * ------------------------------------------------------ + * Load the app controller and local controller + * ------------------------------------------------------ + * + */ + // Load the base controller class + require BASEPATH.'core/Controller.php'; + + function &get_instance() + { + return CI_Controller::get_instance(); + } + + + if (file_exists(APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php')) + { + require APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php'; + } + + // Load the local application controller + // Note: The Router class automatically validates the controller path using the router->_validate_request(). + // If this include fails it means that the default controller in the Routes.php file is not resolving to something valid. + if ( ! file_exists(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php')) + { + show_error('Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.'); + } + + include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php'); + + // Set a mark point for benchmarking + $BM->mark('loading_time:_base_classes_end'); + +/* + * ------------------------------------------------------ + * Security check + * ------------------------------------------------------ + * + * None of the functions in the app controller or the + * loader class can be called via the URI, nor can + * controller functions that begin with an underscore + */ + $class = $RTR->fetch_class(); + $method = $RTR->fetch_method(); + + if ( ! class_exists($class) + OR strncmp($method, '_', 1) == 0 + OR in_array(strtolower($method), array_map('strtolower', get_class_methods('CI_Controller'))) + ) + { + if ( ! empty($RTR->routes['404_override'])) + { + $x = explode('/', $RTR->routes['404_override']); + $class = $x[0]; + $method = (isset($x[1]) ? $x[1] : 'index'); + if ( ! class_exists($class)) + { + if ( ! file_exists(APPPATH.'controllers/'.$class.'.php')) + { + show_404("{$class}/{$method}"); + } + + include_once(APPPATH.'controllers/'.$class.'.php'); + } + } + else + { + show_404("{$class}/{$method}"); + } + } + +/* + * ------------------------------------------------------ + * Is there a "pre_controller" hook? + * ------------------------------------------------------ + */ + $EXT->_call_hook('pre_controller'); + +/* + * ------------------------------------------------------ + * Instantiate the requested controller + * ------------------------------------------------------ + */ + // Mark a start point so we can benchmark the controller + $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_start'); + + $CI = new $class(); + +/* + * ------------------------------------------------------ + * Is there a "post_controller_constructor" hook? + * ------------------------------------------------------ + */ + $EXT->_call_hook('post_controller_constructor'); + +/* + * ------------------------------------------------------ + * Call the requested method + * ------------------------------------------------------ + */ + // Is there a "remap" function? If so, we call it instead + if (method_exists($CI, '_remap')) + { + $CI->_remap($method, array_slice($URI->rsegments, 2)); + } + else + { + // is_callable() returns TRUE on some versions of PHP 5 for private and protected + // methods, so we'll use this workaround for consistent behavior + if ( ! in_array(strtolower($method), array_map('strtolower', get_class_methods($CI)))) + { + // Check and see if we are using a 404 override and use it. + if ( ! empty($RTR->routes['404_override'])) + { + $x = explode('/', $RTR->routes['404_override']); + $class = $x[0]; + $method = (isset($x[1]) ? $x[1] : 'index'); + if ( ! class_exists($class)) + { + if ( ! file_exists(APPPATH.'controllers/'.$class.'.php')) + { + show_404("{$class}/{$method}"); + } + + include_once(APPPATH.'controllers/'.$class.'.php'); + unset($CI); + $CI = new $class(); + } + } + else + { + show_404("{$class}/{$method}"); + } + } + + // Call the requested method. + // Any URI segments present (besides the class/function) will be passed to the method for convenience + call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 2)); + } + + + // Mark a benchmark end point + $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end'); + +/* + * ------------------------------------------------------ + * Is there a "post_controller" hook? + * ------------------------------------------------------ + */ + $EXT->_call_hook('post_controller'); + +/* + * ------------------------------------------------------ + * Send the final rendered output to the browser + * ------------------------------------------------------ + */ + if ($EXT->_call_hook('display_override') === FALSE) + { + $OUT->_display(); + } + +/* + * ------------------------------------------------------ + * Is there a "post_system" hook? + * ------------------------------------------------------ + */ + $EXT->_call_hook('post_system'); + +/* + * ------------------------------------------------------ + * Close the DB connection if one exists + * ------------------------------------------------------ + */ + if (class_exists('CI_DB') AND isset($CI->db)) + { + $CI->db->close(); + } + + +/* End of file CodeIgniter.php */ +/* Location: ./system/core/CodeIgniter.php */ \ No newline at end of file diff --git a/system/core/Common.php b/system/core/Common.php new file mode 100755 index 0000000..07534c5 --- /dev/null +++ b/system/core/Common.php @@ -0,0 +1,564 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Common Functions + * + * Loads the base classes and executes the request. + * + * @package CodeIgniter + * @subpackage codeigniter + * @category Common Functions + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/ + */ + +// ------------------------------------------------------------------------ + +/** +* Determines if the current version of PHP is greater then the supplied value +* +* Since there are a few places where we conditionally test for PHP > 5 +* we'll set a static variable. +* +* @access public +* @param string +* @return bool TRUE if the current version is $version or higher +*/ +if ( ! function_exists('is_php')) +{ + function is_php($version = '5.0.0') + { + static $_is_php; + $version = (string)$version; + + if ( ! isset($_is_php[$version])) + { + $_is_php[$version] = (version_compare(PHP_VERSION, $version) < 0) ? FALSE : TRUE; + } + + return $_is_php[$version]; + } +} + +// ------------------------------------------------------------------------ + +/** + * Tests for file writability + * + * is_writable() returns TRUE on Windows servers when you really can't write to + * the file, based on the read-only attribute. is_writable() is also unreliable + * on Unix servers if safe_mode is on. + * + * @access private + * @return void + */ +if ( ! function_exists('is_really_writable')) +{ + function is_really_writable($file) + { + // If we're on a Unix server with safe_mode off we call is_writable + if (DIRECTORY_SEPARATOR == '/' AND @ini_get("safe_mode") == FALSE) + { + return is_writable($file); + } + + // For windows servers and safe_mode "on" installations we'll actually + // write a file then read it. Bah... + if (is_dir($file)) + { + $file = rtrim($file, '/').'/'.md5(mt_rand(1,100).mt_rand(1,100)); + + if (($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE) + { + return FALSE; + } + + fclose($fp); + @chmod($file, DIR_WRITE_MODE); + @unlink($file); + return TRUE; + } + elseif ( ! is_file($file) OR ($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE) + { + return FALSE; + } + + fclose($fp); + return TRUE; + } +} + +// ------------------------------------------------------------------------ + +/** +* Class registry +* +* This function acts as a singleton. If the requested class does not +* exist it is instantiated and set to a static variable. If it has +* previously been instantiated the variable is returned. +* +* @access public +* @param string the class name being requested +* @param string the directory where the class should be found +* @param string the class name prefix +* @return object +*/ +if ( ! function_exists('load_class')) +{ + function &load_class($class, $directory = 'libraries', $prefix = 'CI_') + { + static $_classes = array(); + + // Does the class exist? If so, we're done... + if (isset($_classes[$class])) + { + return $_classes[$class]; + } + + $name = FALSE; + + // Look for the class first in the local application/libraries folder + // then in the native system/libraries folder + foreach (array(APPPATH, BASEPATH) as $path) + { + if (file_exists($path.$directory.'/'.$class.'.php')) + { + $name = $prefix.$class; + + if (class_exists($name) === FALSE) + { + require($path.$directory.'/'.$class.'.php'); + } + + break; + } + } + + // Is the request a class extension? If so we load it too + if (file_exists(APPPATH.$directory.'/'.config_item('subclass_prefix').$class.'.php')) + { + $name = config_item('subclass_prefix').$class; + + if (class_exists($name) === FALSE) + { + require(APPPATH.$directory.'/'.config_item('subclass_prefix').$class.'.php'); + } + } + + // Did we find the class? + if ($name === FALSE) + { + // Note: We use exit() rather then show_error() in order to avoid a + // self-referencing loop with the Excptions class + exit('Unable to locate the specified class: '.$class.'.php'); + } + + // Keep track of what we just loaded + is_loaded($class); + + $_classes[$class] = new $name(); + return $_classes[$class]; + } +} + +// -------------------------------------------------------------------- + +/** +* Keeps track of which libraries have been loaded. This function is +* called by the load_class() function above +* +* @access public +* @return array +*/ +if ( ! function_exists('is_loaded')) +{ + function &is_loaded($class = '') + { + static $_is_loaded = array(); + + if ($class != '') + { + $_is_loaded[strtolower($class)] = $class; + } + + return $_is_loaded; + } +} + +// ------------------------------------------------------------------------ + +/** +* Loads the main config.php file +* +* This function lets us grab the config file even if the Config class +* hasn't been instantiated yet +* +* @access private +* @return array +*/ +if ( ! function_exists('get_config')) +{ + function &get_config($replace = array()) + { + static $_config; + + if (isset($_config)) + { + return $_config[0]; + } + + // Is the config file in the environment folder? + if ( ! defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/config.php')) + { + $file_path = APPPATH.'config/config.php'; + } + + // Fetch the config file + if ( ! file_exists($file_path)) + { + exit('The configuration file does not exist.'); + } + + require($file_path); + + // Does the $config array exist in the file? + if ( ! isset($config) OR ! is_array($config)) + { + exit('Your config file does not appear to be formatted correctly.'); + } + + // Are any values being dynamically replaced? + if (count($replace) > 0) + { + foreach ($replace as $key => $val) + { + if (isset($config[$key])) + { + $config[$key] = $val; + } + } + } + + return $_config[0] =& $config; + } +} + +// ------------------------------------------------------------------------ + +/** +* Returns the specified config item +* +* @access public +* @return mixed +*/ +if ( ! function_exists('config_item')) +{ + function config_item($item) + { + static $_config_item = array(); + + if ( ! isset($_config_item[$item])) + { + $config =& get_config(); + + if ( ! isset($config[$item])) + { + return FALSE; + } + $_config_item[$item] = $config[$item]; + } + + return $_config_item[$item]; + } +} + +// ------------------------------------------------------------------------ + +/** +* Error Handler +* +* This function lets us invoke the exception class and +* display errors using the standard error template located +* in application/errors/errors.php +* This function will send the error page directly to the +* browser and exit. +* +* @access public +* @return void +*/ +if ( ! function_exists('show_error')) +{ + function show_error($message, $status_code = 500, $heading = 'An Error Was Encountered') + { + $_error =& load_class('Exceptions', 'core'); + echo $_error->show_error($heading, $message, 'error_general', $status_code); + exit; + } +} + +// ------------------------------------------------------------------------ + +/** +* 404 Page Handler +* +* This function is similar to the show_error() function above +* However, instead of the standard error template it displays +* 404 errors. +* +* @access public +* @return void +*/ +if ( ! function_exists('show_404')) +{ + function show_404($page = '', $log_error = TRUE) + { + $_error =& load_class('Exceptions', 'core'); + $_error->show_404($page, $log_error); + exit; + } +} + +// ------------------------------------------------------------------------ + +/** +* Error Logging Interface +* +* We use this as a simple mechanism to access the logging +* class and send messages to be logged. +* +* @access public +* @return void +*/ +if ( ! function_exists('log_message')) +{ + function log_message($level = 'error', $message, $php_error = FALSE) + { + static $_log; + + if (config_item('log_threshold') == 0) + { + return; + } + + $_log =& load_class('Log'); + $_log->write_log($level, $message, $php_error); + } +} + +// ------------------------------------------------------------------------ + +/** + * Set HTTP Status Header + * + * @access public + * @param int the status code + * @param string + * @return void + */ +if ( ! function_exists('set_status_header')) +{ + function set_status_header($code = 200, $text = '') + { + $stati = array( + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 304 => 'Not Modified', + 305 => 'Use Proxy', + 307 => 'Temporary Redirect', + + 400 => 'Bad Request', + 401 => 'Unauthorized', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 407 => 'Proxy Authentication Required', + 408 => 'Request Timeout', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Long', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed', + + 500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Timeout', + 505 => 'HTTP Version Not Supported' + ); + + if ($code == '' OR ! is_numeric($code)) + { + show_error('Status codes must be numeric', 500); + } + + if (isset($stati[$code]) AND $text == '') + { + $text = $stati[$code]; + } + + if ($text == '') + { + show_error('No status text available. Please check your status code number or supply your own message text.', 500); + } + + $server_protocol = (isset($_SERVER['SERVER_PROTOCOL'])) ? $_SERVER['SERVER_PROTOCOL'] : FALSE; + + if (substr(php_sapi_name(), 0, 3) == 'cgi') + { + header("Status: {$code} {$text}", TRUE); + } + elseif ($server_protocol == 'HTTP/1.1' OR $server_protocol == 'HTTP/1.0') + { + header($server_protocol." {$code} {$text}", TRUE, $code); + } + else + { + header("HTTP/1.1 {$code} {$text}", TRUE, $code); + } + } +} + +// -------------------------------------------------------------------- + +/** +* Exception Handler +* +* This is the custom exception handler that is declaired at the top +* of Codeigniter.php. The main reason we use this is to permit +* PHP errors to be logged in our own log files since the user may +* not have access to server logs. Since this function +* effectively intercepts PHP errors, however, we also need +* to display errors based on the current error_reporting level. +* We do that with the use of a PHP error template. +* +* @access private +* @return void +*/ +if ( ! function_exists('_exception_handler')) +{ + function _exception_handler($severity, $message, $filepath, $line) + { + // We don't bother with "strict" notices since they tend to fill up + // the log file with excess information that isn't normally very helpful. + // For example, if you are running PHP 5 and you use version 4 style + // class functions (without prefixes like "public", "private", etc.) + // you'll get notices telling you that these have been deprecated. + if ($severity == E_STRICT) + { + return; + } + + $_error =& load_class('Exceptions', 'core'); + + // Should we display the error? We'll get the current error_reporting + // level and add its bits with the severity bits to find out. + if (($severity & error_reporting()) == $severity) + { + $_error->show_php_error($severity, $message, $filepath, $line); + } + + // Should we log the error? No? We're done... + if (config_item('log_threshold') == 0) + { + return; + } + + $_error->log_exception($severity, $message, $filepath, $line); + } +} + +// -------------------------------------------------------------------- + +/** + * Remove Invisible Characters + * + * This prevents sandwiching null characters + * between ascii characters, like Java\0script. + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('remove_invisible_characters')) +{ + function remove_invisible_characters($str, $url_encoded = TRUE) + { + $non_displayables = array(); + + // every control character except newline (dec 10) + // carriage return (dec 13), and horizontal tab (dec 09) + + if ($url_encoded) + { + $non_displayables[] = '/%0[0-8bcef]/'; // url encoded 00-08, 11, 12, 14, 15 + $non_displayables[] = '/%1[0-9a-f]/'; // url encoded 16-31 + } + + $non_displayables[] = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S'; // 00-08, 11, 12, 14-31, 127 + + do + { + $str = preg_replace($non_displayables, '', $str, -1, $count); + } + while ($count); + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** +* Returns HTML escaped variable +* +* @access public +* @param mixed +* @return mixed +*/ +if ( ! function_exists('html_escape')) +{ + function html_escape($var) + { + if (is_array($var)) + { + return array_map('html_escape', $var); + } + else + { + return htmlspecialchars($var, ENT_QUOTES, config_item('charset')); + } + } +} + +/* End of file Common.php */ +/* Location: ./system/core/Common.php */ \ No newline at end of file diff --git a/system/core/Config.php b/system/core/Config.php new file mode 100755 index 0000000..5dffbf3 --- /dev/null +++ b/system/core/Config.php @@ -0,0 +1,379 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Config Class + * + * This class contains functions that enable config files to be managed + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/config.html + */ +class CI_Config { + + /** + * List of all loaded config values + * + * @var array + */ + var $config = array(); + /** + * List of all loaded config files + * + * @var array + */ + var $is_loaded = array(); + /** + * List of paths to search when trying to load a config file + * + * @var array + */ + var $_config_paths = array(APPPATH); + + /** + * Constructor + * + * Sets the $config data from the primary config.php file as a class variable + * + * @access public + * @param string the config file name + * @param boolean if configuration values should be loaded into their own section + * @param boolean true if errors should just return false, false if an error message should be displayed + * @return boolean if the file was successfully loaded or not + */ + function __construct() + { + $this->config =& get_config(); + log_message('debug', "Config Class Initialized"); + + // Set the base_url automatically if none was provided + if ($this->config['base_url'] == '') + { + if (isset($_SERVER['HTTP_HOST'])) + { + $base_url = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http'; + $base_url .= '://'. $_SERVER['HTTP_HOST']; + $base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']); + } + + else + { + $base_url = 'http://localhost/'; + } + + $this->set_item('base_url', $base_url); + } + } + + // -------------------------------------------------------------------- + + /** + * Load Config File + * + * @access public + * @param string the config file name + * @param boolean if configuration values should be loaded into their own section + * @param boolean true if errors should just return false, false if an error message should be displayed + * @return boolean if the file was loaded correctly + */ + function load($file = '', $use_sections = FALSE, $fail_gracefully = FALSE) + { + $file = ($file == '') ? 'config' : str_replace('.php', '', $file); + $found = FALSE; + $loaded = FALSE; + + $check_locations = defined('ENVIRONMENT') + ? array(ENVIRONMENT.'/'.$file, $file) + : array($file); + + foreach ($this->_config_paths as $path) + { + foreach ($check_locations as $location) + { + $file_path = $path.'config/'.$location.'.php'; + + if (in_array($file_path, $this->is_loaded, TRUE)) + { + $loaded = TRUE; + continue 2; + } + + if (file_exists($file_path)) + { + $found = TRUE; + break; + } + } + + if ($found === FALSE) + { + continue; + } + + include($file_path); + + if ( ! isset($config) OR ! is_array($config)) + { + if ($fail_gracefully === TRUE) + { + return FALSE; + } + show_error('Your '.$file_path.' file does not appear to contain a valid configuration array.'); + } + + if ($use_sections === TRUE) + { + if (isset($this->config[$file])) + { + $this->config[$file] = array_merge($this->config[$file], $config); + } + else + { + $this->config[$file] = $config; + } + } + else + { + $this->config = array_merge($this->config, $config); + } + + $this->is_loaded[] = $file_path; + unset($config); + + $loaded = TRUE; + log_message('debug', 'Config file loaded: '.$file_path); + break; + } + + if ($loaded === FALSE) + { + if ($fail_gracefully === TRUE) + { + return FALSE; + } + show_error('The configuration file '.$file.'.php does not exist.'); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Fetch a config file item + * + * + * @access public + * @param string the config item name + * @param string the index name + * @param bool + * @return string + */ + function item($item, $index = '') + { + if ($index == '') + { + if ( ! isset($this->config[$item])) + { + return FALSE; + } + + $pref = $this->config[$item]; + } + else + { + if ( ! isset($this->config[$index])) + { + return FALSE; + } + + if ( ! isset($this->config[$index][$item])) + { + return FALSE; + } + + $pref = $this->config[$index][$item]; + } + + return $pref; + } + + // -------------------------------------------------------------------- + + /** + * Fetch a config file item - adds slash after item (if item is not empty) + * + * @access public + * @param string the config item name + * @param bool + * @return string + */ + function slash_item($item) + { + if ( ! isset($this->config[$item])) + { + return FALSE; + } + if( trim($this->config[$item]) == '') + { + return ''; + } + + return rtrim($this->config[$item], '/').'/'; + } + + // -------------------------------------------------------------------- + + /** + * Site URL + * Returns base_url . index_page [. uri_string] + * + * @access public + * @param string the URI string + * @return string + */ + function site_url($uri = '') + { + if ($uri == '') + { + return $this->slash_item('base_url').$this->item('index_page'); + } + + if ($this->item('enable_query_strings') == FALSE) + { + $suffix = ($this->item('url_suffix') == FALSE) ? '' : $this->item('url_suffix'); + return $this->slash_item('base_url').$this->slash_item('index_page').$this->_uri_string($uri).$suffix; + } + else + { + return $this->slash_item('base_url').$this->item('index_page').'?'.$this->_uri_string($uri); + } + } + + // ------------------------------------------------------------- + + /** + * Base URL + * Returns base_url [. uri_string] + * + * @access public + * @param string $uri + * @return string + */ + function base_url($uri = '') + { + return $this->slash_item('base_url').ltrim($this->_uri_string($uri), '/'); + } + + // ------------------------------------------------------------- + + /** + * Build URI string for use in Config::site_url() and Config::base_url() + * + * @access protected + * @param $uri + * @return string + */ + protected function _uri_string($uri) + { + if ($this->item('enable_query_strings') == FALSE) + { + if (is_array($uri)) + { + $uri = implode('/', $uri); + } + $uri = trim($uri, '/'); + } + else + { + if (is_array($uri)) + { + $i = 0; + $str = ''; + foreach ($uri as $key => $val) + { + $prefix = ($i == 0) ? '' : '&'; + $str .= $prefix.$key.'='.$val; + $i++; + } + $uri = $str; + } + } + return $uri; + } + + // -------------------------------------------------------------------- + + /** + * System URL + * + * @access public + * @return string + */ + function system_url() + { + $x = explode("/", preg_replace("|/*(.+?)/*$|", "\\1", BASEPATH)); + return $this->slash_item('base_url').end($x).'/'; + } + + // -------------------------------------------------------------------- + + /** + * Set a config file item + * + * @access public + * @param string the config item key + * @param string the config item value + * @return void + */ + function set_item($item, $value) + { + $this->config[$item] = $value; + } + + // -------------------------------------------------------------------- + + /** + * Assign to Config + * + * This function is called by the front controller (CodeIgniter.php) + * after the Config class is instantiated. It permits config items + * to be assigned or overriden by variables contained in the index.php file + * + * @access private + * @param array + * @return void + */ + function _assign_to_config($items = array()) + { + if (is_array($items)) + { + foreach ($items as $key => $val) + { + $this->set_item($key, $val); + } + } + } +} + +// END CI_Config class + +/* End of file Config.php */ +/* Location: ./system/core/Config.php */ diff --git a/system/core/Controller.php b/system/core/Controller.php new file mode 100755 index 0000000..fddb81e --- /dev/null +++ b/system/core/Controller.php @@ -0,0 +1,64 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Application Controller Class + * + * This class object is the super class that every library in + * CodeIgniter will be assigned to. + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/general/controllers.html + */ +class CI_Controller { + + private static $instance; + + /** + * Constructor + */ + public function __construct() + { + self::$instance =& $this; + + // Assign all the class objects that were instantiated by the + // bootstrap file (CodeIgniter.php) to local class variables + // so that CI can run as one big super object. + foreach (is_loaded() as $var => $class) + { + $this->$var =& load_class($class); + } + + $this->load =& load_class('Loader', 'core'); + + $this->load->initialize(); + + log_message('debug', "Controller Class Initialized"); + } + + public static function &get_instance() + { + return self::$instance; + } +} +// END Controller class + +/* End of file Controller.php */ +/* Location: ./system/core/Controller.php */ \ No newline at end of file diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php new file mode 100755 index 0000000..869739a --- /dev/null +++ b/system/core/Exceptions.php @@ -0,0 +1,193 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Exceptions Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Exceptions + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/exceptions.html + */ +class CI_Exceptions { + var $action; + var $severity; + var $message; + var $filename; + var $line; + + /** + * Nesting level of the output buffering mechanism + * + * @var int + * @access public + */ + var $ob_level; + + /** + * List if available error levels + * + * @var array + * @access public + */ + var $levels = array( + E_ERROR => 'Error', + E_WARNING => 'Warning', + E_PARSE => 'Parsing Error', + E_NOTICE => 'Notice', + E_CORE_ERROR => 'Core Error', + E_CORE_WARNING => 'Core Warning', + E_COMPILE_ERROR => 'Compile Error', + E_COMPILE_WARNING => 'Compile Warning', + E_USER_ERROR => 'User Error', + E_USER_WARNING => 'User Warning', + E_USER_NOTICE => 'User Notice', + E_STRICT => 'Runtime Notice' + ); + + + /** + * Constructor + */ + public function __construct() + { + $this->ob_level = ob_get_level(); + // Note: Do not log messages from this constructor. + } + + // -------------------------------------------------------------------- + + /** + * Exception Logger + * + * This function logs PHP generated error messages + * + * @access private + * @param string the error severity + * @param string the error string + * @param string the error filepath + * @param string the error line number + * @return string + */ + function log_exception($severity, $message, $filepath, $line) + { + $severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity]; + + log_message('error', 'Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * 404 Page Not Found Handler + * + * @access private + * @param string the page + * @param bool log error yes/no + * @return string + */ + function show_404($page = '', $log_error = TRUE) + { + $heading = "404 Page Not Found"; + $message = "The page you requested was not found."; + + // By default we log this, but allow a dev to skip it + if ($log_error) + { + log_message('error', '404 Page Not Found --> '.$page); + } + + echo $this->show_error($heading, $message, 'error_404', 404); + exit; + } + + // -------------------------------------------------------------------- + + /** + * General Error Page + * + * This function takes an error message as input + * (either as a string or an array) and displays + * it using the specified template. + * + * @access private + * @param string the heading + * @param string the message + * @param string the template name + * @param int the status code + * @return string + */ + function show_error($heading, $message, $template = 'error_general', $status_code = 500) + { + set_status_header($status_code); + + $message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>'; + + if (ob_get_level() > $this->ob_level + 1) + { + ob_end_flush(); + } + ob_start(); + include(APPPATH.'errors/'.$template.'.php'); + $buffer = ob_get_contents(); + ob_end_clean(); + return $buffer; + } + + // -------------------------------------------------------------------- + + /** + * Native PHP error handler + * + * @access private + * @param string the error severity + * @param string the error string + * @param string the error filepath + * @param string the error line number + * @return string + */ + function show_php_error($severity, $message, $filepath, $line) + { + $severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity]; + + $filepath = str_replace("\\", "/", $filepath); + + // For safety reasons we do not show the full file path + if (FALSE !== strpos($filepath, '/')) + { + $x = explode('/', $filepath); + $filepath = $x[count($x)-2].'/'.end($x); + } + + if (ob_get_level() > $this->ob_level + 1) + { + ob_end_flush(); + } + ob_start(); + include(APPPATH.'errors/error_php.php'); + $buffer = ob_get_contents(); + ob_end_clean(); + echo $buffer; + } + + +} +// END Exceptions Class + +/* End of file Exceptions.php */ +/* Location: ./system/core/Exceptions.php */ \ No newline at end of file diff --git a/system/core/Hooks.php b/system/core/Hooks.php new file mode 100755 index 0000000..33f1c03 --- /dev/null +++ b/system/core/Hooks.php @@ -0,0 +1,248 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Hooks Class + * + * Provides a mechanism to extend the base system without hacking. + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/encryption.html + */ +class CI_Hooks { + + /** + * Determines wether hooks are enabled + * + * @var bool + */ + var $enabled = FALSE; + /** + * List of all hooks set in config/hooks.php + * + * @var array + */ + var $hooks = array(); + /** + * Determines wether hook is in progress, used to prevent infinte loops + * + * @var bool + */ + var $in_progress = FALSE; + + /** + * Constructor + * + */ + function __construct() + { + $this->_initialize(); + log_message('debug', "Hooks Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize the Hooks Preferences + * + * @access private + * @return void + */ + function _initialize() + { + $CFG =& load_class('Config', 'core'); + + // If hooks are not enabled in the config file + // there is nothing else to do + + if ($CFG->item('enable_hooks') == FALSE) + { + return; + } + + // Grab the "hooks" definition file. + // If there are no hooks, we're done. + + if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/hooks.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/hooks.php'); + } + elseif (is_file(APPPATH.'config/hooks.php')) + { + include(APPPATH.'config/hooks.php'); + } + + + if ( ! isset($hook) OR ! is_array($hook)) + { + return; + } + + $this->hooks =& $hook; + $this->enabled = TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Call Hook + * + * Calls a particular hook + * + * @access private + * @param string the hook name + * @return mixed + */ + function _call_hook($which = '') + { + if ( ! $this->enabled OR ! isset($this->hooks[$which])) + { + return FALSE; + } + + if (isset($this->hooks[$which][0]) AND is_array($this->hooks[$which][0])) + { + foreach ($this->hooks[$which] as $val) + { + $this->_run_hook($val); + } + } + else + { + $this->_run_hook($this->hooks[$which]); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Run Hook + * + * Runs a particular hook + * + * @access private + * @param array the hook details + * @return bool + */ + function _run_hook($data) + { + if ( ! is_array($data)) + { + return FALSE; + } + + // ----------------------------------- + // Safety - Prevents run-away loops + // ----------------------------------- + + // If the script being called happens to have the same + // hook call within it a loop can happen + + if ($this->in_progress == TRUE) + { + return; + } + + // ----------------------------------- + // Set file path + // ----------------------------------- + + if ( ! isset($data['filepath']) OR ! isset($data['filename'])) + { + return FALSE; + } + + $filepath = APPPATH.$data['filepath'].'/'.$data['filename']; + + if ( ! file_exists($filepath)) + { + return FALSE; + } + + // ----------------------------------- + // Set class/function name + // ----------------------------------- + + $class = FALSE; + $function = FALSE; + $params = ''; + + if (isset($data['class']) AND $data['class'] != '') + { + $class = $data['class']; + } + + if (isset($data['function'])) + { + $function = $data['function']; + } + + if (isset($data['params'])) + { + $params = $data['params']; + } + + if ($class === FALSE AND $function === FALSE) + { + return FALSE; + } + + // ----------------------------------- + // Set the in_progress flag + // ----------------------------------- + + $this->in_progress = TRUE; + + // ----------------------------------- + // Call the requested class and/or function + // ----------------------------------- + + if ($class !== FALSE) + { + if ( ! class_exists($class)) + { + require($filepath); + } + + $HOOK = new $class; + $HOOK->$function($params); + } + else + { + if ( ! function_exists($function)) + { + require($filepath); + } + + $function($params); + } + + $this->in_progress = FALSE; + return TRUE; + } + +} + +// END CI_Hooks class + +/* End of file Hooks.php */ +/* Location: ./system/core/Hooks.php */ \ No newline at end of file diff --git a/system/core/Input.php b/system/core/Input.php new file mode 100755 index 0000000..0c1f2b0 --- /dev/null +++ b/system/core/Input.php @@ -0,0 +1,849 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Input Class + * + * Pre-processes global input data for security + * + * @package CodeIgniter + * @subpackage Libraries + * @category Input + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/input.html + */ +class CI_Input { + + /** + * IP address of the current user + * + * @var string + */ + var $ip_address = FALSE; + /** + * user agent (web browser) being used by the current user + * + * @var string + */ + var $user_agent = FALSE; + /** + * If FALSE, then $_GET will be set to an empty array + * + * @var bool + */ + var $_allow_get_array = TRUE; + /** + * If TRUE, then newlines are standardized + * + * @var bool + */ + var $_standardize_newlines = TRUE; + /** + * Determines whether the XSS filter is always active when GET, POST or COOKIE data is encountered + * Set automatically based on config setting + * + * @var bool + */ + var $_enable_xss = FALSE; + /** + * Enables a CSRF cookie token to be set. + * Set automatically based on config setting + * + * @var bool + */ + var $_enable_csrf = FALSE; + /** + * List of all HTTP request headers + * + * @var array + */ + protected $headers = array(); + + /** + * Constructor + * + * Sets whether to globally enable the XSS processing + * and whether to allow the $_GET array + * + * @return void + */ + public function __construct() + { + log_message('debug', "Input Class Initialized"); + + $this->_allow_get_array = (config_item('allow_get_array') === TRUE); + $this->_enable_xss = (config_item('global_xss_filtering') === TRUE); + $this->_enable_csrf = (config_item('csrf_protection') === TRUE); + + global $SEC; + $this->security =& $SEC; + + // Do we need the UTF-8 class? + if (UTF8_ENABLED === TRUE) + { + global $UNI; + $this->uni =& $UNI; + } + + // Sanitize global arrays + $this->_sanitize_globals(); + } + + // -------------------------------------------------------------------- + + /** + * Fetch from array + * + * This is a helper function to retrieve values from global arrays + * + * @access private + * @param array + * @param string + * @param bool + * @return string + */ + function _fetch_from_array(&$array, $index = '', $xss_clean = FALSE) + { + if ( ! isset($array[$index])) + { + return FALSE; + } + + if ($xss_clean === TRUE) + { + return $this->security->xss_clean($array[$index]); + } + + return $array[$index]; + } + + // -------------------------------------------------------------------- + + /** + * Fetch an item from the GET array + * + * @access public + * @param string + * @param bool + * @return string + */ + function get($index = NULL, $xss_clean = FALSE) + { + // Check if a field has been provided + if ($index === NULL AND ! empty($_GET)) + { + $get = array(); + + // loop through the full _GET array + foreach (array_keys($_GET) as $key) + { + $get[$key] = $this->_fetch_from_array($_GET, $key, $xss_clean); + } + return $get; + } + + return $this->_fetch_from_array($_GET, $index, $xss_clean); + } + + // -------------------------------------------------------------------- + + /** + * Fetch an item from the POST array + * + * @access public + * @param string + * @param bool + * @return string + */ + function post($index = NULL, $xss_clean = FALSE) + { + // Check if a field has been provided + if ($index === NULL AND ! empty($_POST)) + { + $post = array(); + + // Loop through the full _POST array and return it + foreach (array_keys($_POST) as $key) + { + $post[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean); + } + return $post; + } + + return $this->_fetch_from_array($_POST, $index, $xss_clean); + } + + + // -------------------------------------------------------------------- + + /** + * Fetch an item from either the GET array or the POST + * + * @access public + * @param string The index key + * @param bool XSS cleaning + * @return string + */ + function get_post($index = '', $xss_clean = FALSE) + { + if ( ! isset($_POST[$index]) ) + { + return $this->get($index, $xss_clean); + } + else + { + return $this->post($index, $xss_clean); + } + } + + // -------------------------------------------------------------------- + + /** + * Fetch an item from the COOKIE array + * + * @access public + * @param string + * @param bool + * @return string + */ + function cookie($index = '', $xss_clean = FALSE) + { + return $this->_fetch_from_array($_COOKIE, $index, $xss_clean); + } + + // ------------------------------------------------------------------------ + + /** + * Set cookie + * + * Accepts six parameter, or you can submit an associative + * array in the first parameter containing all the values. + * + * @access public + * @param mixed + * @param string the value of the cookie + * @param string the number of seconds until expiration + * @param string the cookie domain. Usually: .yourdomain.com + * @param string the cookie path + * @param string the cookie prefix + * @param bool true makes the cookie secure + * @return void + */ + function set_cookie($name = '', $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE) + { + if (is_array($name)) + { + // always leave 'name' in last place, as the loop will break otherwise, due to $$item + foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'secure', 'name') as $item) + { + if (isset($name[$item])) + { + $$item = $name[$item]; + } + } + } + + if ($prefix == '' AND config_item('cookie_prefix') != '') + { + $prefix = config_item('cookie_prefix'); + } + if ($domain == '' AND config_item('cookie_domain') != '') + { + $domain = config_item('cookie_domain'); + } + if ($path == '/' AND config_item('cookie_path') != '/') + { + $path = config_item('cookie_path'); + } + if ($secure == FALSE AND config_item('cookie_secure') != FALSE) + { + $secure = config_item('cookie_secure'); + } + + if ( ! is_numeric($expire)) + { + $expire = time() - 86500; + } + else + { + $expire = ($expire > 0) ? time() + $expire : 0; + } + + setcookie($prefix.$name, $value, $expire, $path, $domain, $secure); + } + + // -------------------------------------------------------------------- + + /** + * Fetch an item from the SERVER array + * + * @access public + * @param string + * @param bool + * @return string + */ + function server($index = '', $xss_clean = FALSE) + { + return $this->_fetch_from_array($_SERVER, $index, $xss_clean); + } + + // -------------------------------------------------------------------- + + /** + * Fetch the IP Address + * + * @return string + */ + public function ip_address() + { + if ($this->ip_address !== FALSE) + { + return $this->ip_address; + } + + $proxy_ips = config_item('proxy_ips'); + if ( ! empty($proxy_ips)) + { + $proxy_ips = explode(',', str_replace(' ', '', $proxy_ips)); + foreach (array('HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP', 'HTTP_X_CLIENT_IP', 'HTTP_X_CLUSTER_CLIENT_IP') as $header) + { + if (($spoof = $this->server($header)) !== FALSE) + { + // Some proxies typically list the whole chain of IP + // addresses through which the client has reached us. + // e.g. client_ip, proxy_ip1, proxy_ip2, etc. + if (strpos($spoof, ',') !== FALSE) + { + $spoof = explode(',', $spoof, 2); + $spoof = $spoof[0]; + } + + if ( ! $this->valid_ip($spoof)) + { + $spoof = FALSE; + } + else + { + break; + } + } + } + + $this->ip_address = ($spoof !== FALSE && in_array($_SERVER['REMOTE_ADDR'], $proxy_ips, TRUE)) + ? $spoof : $_SERVER['REMOTE_ADDR']; + } + else + { + $this->ip_address = $_SERVER['REMOTE_ADDR']; + } + + if ( ! $this->valid_ip($this->ip_address)) + { + $this->ip_address = '0.0.0.0'; + } + + return $this->ip_address; + } + + // -------------------------------------------------------------------- + + /** + * Validate IP Address + * + * @access public + * @param string + * @param string ipv4 or ipv6 + * @return bool + */ + public function valid_ip($ip, $which = '') + { + $which = strtolower($which); + + // First check if filter_var is available + if (is_callable('filter_var')) + { + switch ($which) { + case 'ipv4': + $flag = FILTER_FLAG_IPV4; + break; + case 'ipv6': + $flag = FILTER_FLAG_IPV6; + break; + default: + $flag = ''; + break; + } + + return (bool) filter_var($ip, FILTER_VALIDATE_IP, $flag); + } + + if ($which !== 'ipv6' && $which !== 'ipv4') + { + if (strpos($ip, ':') !== FALSE) + { + $which = 'ipv6'; + } + elseif (strpos($ip, '.') !== FALSE) + { + $which = 'ipv4'; + } + else + { + return FALSE; + } + } + + $func = '_valid_'.$which; + return $this->$func($ip); + } + + // -------------------------------------------------------------------- + + /** + * Validate IPv4 Address + * + * Updated version suggested by Geert De Deckere + * + * @access protected + * @param string + * @return bool + */ + protected function _valid_ipv4($ip) + { + $ip_segments = explode('.', $ip); + + // Always 4 segments needed + if (count($ip_segments) !== 4) + { + return FALSE; + } + // IP can not start with 0 + if ($ip_segments[0][0] == '0') + { + return FALSE; + } + + // Check each segment + foreach ($ip_segments as $segment) + { + // IP segments must be digits and can not be + // longer than 3 digits or greater then 255 + if ($segment == '' OR preg_match("/[^0-9]/", $segment) OR $segment > 255 OR strlen($segment) > 3) + { + return FALSE; + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Validate IPv6 Address + * + * @access protected + * @param string + * @return bool + */ + protected function _valid_ipv6($str) + { + // 8 groups, separated by : + // 0-ffff per group + // one set of consecutive 0 groups can be collapsed to :: + + $groups = 8; + $collapsed = FALSE; + + $chunks = array_filter( + preg_split('/(:{1,2})/', $str, NULL, PREG_SPLIT_DELIM_CAPTURE) + ); + + // Rule out easy nonsense + if (current($chunks) == ':' OR end($chunks) == ':') + { + return FALSE; + } + + // PHP supports IPv4-mapped IPv6 addresses, so we'll expect those as well + if (strpos(end($chunks), '.') !== FALSE) + { + $ipv4 = array_pop($chunks); + + if ( ! $this->_valid_ipv4($ipv4)) + { + return FALSE; + } + + $groups--; + } + + while ($seg = array_pop($chunks)) + { + if ($seg[0] == ':') + { + if (--$groups == 0) + { + return FALSE; // too many groups + } + + if (strlen($seg) > 2) + { + return FALSE; // long separator + } + + if ($seg == '::') + { + if ($collapsed) + { + return FALSE; // multiple collapsed + } + + $collapsed = TRUE; + } + } + elseif (preg_match("/[^0-9a-f]/i", $seg) OR strlen($seg) > 4) + { + return FALSE; // invalid segment + } + } + + return $collapsed OR $groups == 1; + } + + // -------------------------------------------------------------------- + + /** + * User Agent + * + * @access public + * @return string + */ + function user_agent() + { + if ($this->user_agent !== FALSE) + { + return $this->user_agent; + } + + $this->user_agent = ( ! isset($_SERVER['HTTP_USER_AGENT'])) ? FALSE : $_SERVER['HTTP_USER_AGENT']; + + return $this->user_agent; + } + + // -------------------------------------------------------------------- + + /** + * Sanitize Globals + * + * This function does the following: + * + * Unsets $_GET data (if query strings are not enabled) + * + * Unsets all globals if register_globals is enabled + * + * Standardizes newline characters to \n + * + * @access private + * @return void + */ + function _sanitize_globals() + { + // It would be "wrong" to unset any of these GLOBALS. + $protected = array('_SERVER', '_GET', '_POST', '_FILES', '_REQUEST', + '_SESSION', '_ENV', 'GLOBALS', 'HTTP_RAW_POST_DATA', + 'system_folder', 'application_folder', 'BM', 'EXT', + 'CFG', 'URI', 'RTR', 'OUT', 'IN'); + + // Unset globals for securiy. + // This is effectively the same as register_globals = off + foreach (array($_GET, $_POST, $_COOKIE) as $global) + { + if ( ! is_array($global)) + { + if ( ! in_array($global, $protected)) + { + global $$global; + $$global = NULL; + } + } + else + { + foreach ($global as $key => $val) + { + if ( ! in_array($key, $protected)) + { + global $$key; + $$key = NULL; + } + } + } + } + + // Is $_GET data allowed? If not we'll set the $_GET to an empty array + if ($this->_allow_get_array == FALSE) + { + $_GET = array(); + } + else + { + if (is_array($_GET) AND count($_GET) > 0) + { + foreach ($_GET as $key => $val) + { + $_GET[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); + } + } + } + + // Clean $_POST Data + if (is_array($_POST) AND count($_POST) > 0) + { + foreach ($_POST as $key => $val) + { + $_POST[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); + } + } + + // Clean $_COOKIE Data + if (is_array($_COOKIE) AND count($_COOKIE) > 0) + { + // Also get rid of specially treated cookies that might be set by a server + // or silly application, that are of no use to a CI application anyway + // but that when present will trip our 'Disallowed Key Characters' alarm + // http://www.ietf.org/rfc/rfc2109.txt + // note that the key names below are single quoted strings, and are not PHP variables + unset($_COOKIE['$Version']); + unset($_COOKIE['$Path']); + unset($_COOKIE['$Domain']); + + foreach ($_COOKIE as $key => $val) + { + $_COOKIE[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); + } + } + + // Sanitize PHP_SELF + $_SERVER['PHP_SELF'] = strip_tags($_SERVER['PHP_SELF']); + + + // CSRF Protection check on HTTP requests + if ($this->_enable_csrf == TRUE && ! $this->is_cli_request()) + { + $this->security->csrf_verify(); + } + + log_message('debug', "Global POST and COOKIE data sanitized"); + } + + // -------------------------------------------------------------------- + + /** + * Clean Input Data + * + * This is a helper function. It escapes data and + * standardizes newline characters to \n + * + * @access private + * @param string + * @return string + */ + function _clean_input_data($str) + { + if (is_array($str)) + { + $new_array = array(); + foreach ($str as $key => $val) + { + $new_array[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); + } + return $new_array; + } + + /* We strip slashes if magic quotes is on to keep things consistent + + NOTE: In PHP 5.4 get_magic_quotes_gpc() will always return 0 and + it will probably not exist in future versions at all. + */ + if ( ! is_php('5.4') && get_magic_quotes_gpc()) + { + $str = stripslashes($str); + } + + // Clean UTF-8 if supported + if (UTF8_ENABLED === TRUE) + { + $str = $this->uni->clean_string($str); + } + + // Remove control characters + $str = remove_invisible_characters($str); + + // Should we filter the input data? + if ($this->_enable_xss === TRUE) + { + $str = $this->security->xss_clean($str); + } + + // Standardize newlines if needed + if ($this->_standardize_newlines == TRUE) + { + if (strpos($str, "\r") !== FALSE) + { + $str = str_replace(array("\r\n", "\r", "\r\n\n"), PHP_EOL, $str); + } + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Clean Keys + * + * This is a helper function. To prevent malicious users + * from trying to exploit keys we make sure that keys are + * only named with alpha-numeric text and a few other items. + * + * @access private + * @param string + * @return string + */ + function _clean_input_keys($str) + { + if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) + { + exit('Disallowed Key Characters.'); + } + + // Clean UTF-8 if supported + if (UTF8_ENABLED === TRUE) + { + $str = $this->uni->clean_string($str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Request Headers + * + * In Apache, you can simply call apache_request_headers(), however for + * people running other webservers the function is undefined. + * + * @param bool XSS cleaning + * + * @return array + */ + public function request_headers($xss_clean = FALSE) + { + // Look at Apache go! + if (function_exists('apache_request_headers')) + { + $headers = apache_request_headers(); + } + else + { + $headers['Content-Type'] = (isset($_SERVER['CONTENT_TYPE'])) ? $_SERVER['CONTENT_TYPE'] : @getenv('CONTENT_TYPE'); + + foreach ($_SERVER as $key => $val) + { + if (strncmp($key, 'HTTP_', 5) === 0) + { + $headers[substr($key, 5)] = $this->_fetch_from_array($_SERVER, $key, $xss_clean); + } + } + } + + // take SOME_HEADER and turn it into Some-Header + foreach ($headers as $key => $val) + { + $key = str_replace('_', ' ', strtolower($key)); + $key = str_replace(' ', '-', ucwords($key)); + + $this->headers[$key] = $val; + } + + return $this->headers; + } + + // -------------------------------------------------------------------- + + /** + * Get Request Header + * + * Returns the value of a single member of the headers class member + * + * @param string array key for $this->headers + * @param boolean XSS Clean or not + * @return mixed FALSE on failure, string on success + */ + public function get_request_header($index, $xss_clean = FALSE) + { + if (empty($this->headers)) + { + $this->request_headers(); + } + + if ( ! isset($this->headers[$index])) + { + return FALSE; + } + + if ($xss_clean === TRUE) + { + return $this->security->xss_clean($this->headers[$index]); + } + + return $this->headers[$index]; + } + + // -------------------------------------------------------------------- + + /** + * Is ajax Request? + * + * Test to see if a request contains the HTTP_X_REQUESTED_WITH header + * + * @return boolean + */ + public function is_ajax_request() + { + return ($this->server('HTTP_X_REQUESTED_WITH') === 'XMLHttpRequest'); + } + + // -------------------------------------------------------------------- + + /** + * Is cli Request? + * + * Test to see if a request was made from the command line + * + * @return bool + */ + public function is_cli_request() + { + return (php_sapi_name() === 'cli' OR defined('STDIN')); + } + +} + +/* End of file Input.php */ +/* Location: ./system/core/Input.php */ \ No newline at end of file diff --git a/system/core/Lang.php b/system/core/Lang.php new file mode 100755 index 0000000..5ac6718 --- /dev/null +++ b/system/core/Lang.php @@ -0,0 +1,160 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Language Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Language + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/language.html + */ +class CI_Lang { + + /** + * List of translations + * + * @var array + */ + var $language = array(); + /** + * List of loaded language files + * + * @var array + */ + var $is_loaded = array(); + + /** + * Constructor + * + * @access public + */ + function __construct() + { + log_message('debug', "Language Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Load a language file + * + * @access public + * @param mixed the name of the language file to be loaded. Can be an array + * @param string the language (english, etc.) + * @param bool return loaded array of translations + * @param bool add suffix to $langfile + * @param string alternative path to look for language file + * @return mixed + */ + function load($langfile = '', $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '') + { + $langfile = str_replace('.php', '', $langfile); + + if ($add_suffix == TRUE) + { + $langfile = str_replace('_lang.', '', $langfile).'_lang'; + } + + $langfile .= '.php'; + + if (in_array($langfile, $this->is_loaded, TRUE)) + { + return; + } + + $config =& get_config(); + + if ($idiom == '') + { + $deft_lang = ( ! isset($config['language'])) ? 'english' : $config['language']; + $idiom = ($deft_lang == '') ? 'english' : $deft_lang; + } + + // Determine where the language file is and load it + if ($alt_path != '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile)) + { + include($alt_path.'language/'.$idiom.'/'.$langfile); + } + else + { + $found = FALSE; + + foreach (get_instance()->load->get_package_paths(TRUE) as $package_path) + { + if (file_exists($package_path.'language/'.$idiom.'/'.$langfile)) + { + include($package_path.'language/'.$idiom.'/'.$langfile); + $found = TRUE; + break; + } + } + + if ($found !== TRUE) + { + show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile); + } + } + + + if ( ! isset($lang)) + { + log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile); + return; + } + + if ($return == TRUE) + { + return $lang; + } + + $this->is_loaded[] = $langfile; + $this->language = array_merge($this->language, $lang); + unset($lang); + + log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Fetch a single line of text from the language array + * + * @access public + * @param string $line the language line + * @return string + */ + function line($line = '') + { + $value = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line]; + + // Because killer robots like unicorns! + if ($value === FALSE) + { + log_message('error', 'Could not find the language line "'.$line.'"'); + } + + return $value; + } + +} +// END Language Class + +/* End of file Lang.php */ +/* Location: ./system/core/Lang.php */ diff --git a/system/core/Loader.php b/system/core/Loader.php new file mode 100755 index 0000000..6b7ee0c --- /dev/null +++ b/system/core/Loader.php @@ -0,0 +1,1248 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Loader Class + * + * Loads views and files + * + * @package CodeIgniter + * @subpackage Libraries + * @author ExpressionEngine Dev Team + * @category Loader + * @link http://codeigniter.com/user_guide/libraries/loader.html + */ +class CI_Loader { + + // All these are set automatically. Don't mess with them. + /** + * Nesting level of the output buffering mechanism + * + * @var int + * @access protected + */ + protected $_ci_ob_level; + /** + * List of paths to load views from + * + * @var array + * @access protected + */ + protected $_ci_view_paths = array(); + /** + * List of paths to load libraries from + * + * @var array + * @access protected + */ + protected $_ci_library_paths = array(); + /** + * List of paths to load models from + * + * @var array + * @access protected + */ + protected $_ci_model_paths = array(); + /** + * List of paths to load helpers from + * + * @var array + * @access protected + */ + protected $_ci_helper_paths = array(); + /** + * List of loaded base classes + * Set by the controller class + * + * @var array + * @access protected + */ + protected $_base_classes = array(); // Set by the controller class + /** + * List of cached variables + * + * @var array + * @access protected + */ + protected $_ci_cached_vars = array(); + /** + * List of loaded classes + * + * @var array + * @access protected + */ + protected $_ci_classes = array(); + /** + * List of loaded files + * + * @var array + * @access protected + */ + protected $_ci_loaded_files = array(); + /** + * List of loaded models + * + * @var array + * @access protected + */ + protected $_ci_models = array(); + /** + * List of loaded helpers + * + * @var array + * @access protected + */ + protected $_ci_helpers = array(); + /** + * List of class name mappings + * + * @var array + * @access protected + */ + protected $_ci_varmap = array('unit_test' => 'unit', + 'user_agent' => 'agent'); + + /** + * Constructor + * + * Sets the path to the view files and gets the initial output buffering level + */ + public function __construct() + { + $this->_ci_ob_level = ob_get_level(); + $this->_ci_library_paths = array(APPPATH, BASEPATH); + $this->_ci_helper_paths = array(APPPATH, BASEPATH); + $this->_ci_model_paths = array(APPPATH); + $this->_ci_view_paths = array(APPPATH.'views/' => TRUE); + + log_message('debug', "Loader Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize the Loader + * + * This method is called once in CI_Controller. + * + * @param array + * @return object + */ + public function initialize() + { + $this->_ci_classes = array(); + $this->_ci_loaded_files = array(); + $this->_ci_models = array(); + $this->_base_classes =& is_loaded(); + + $this->_ci_autoloader(); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Is Loaded + * + * A utility function to test if a class is in the self::$_ci_classes array. + * This function returns the object name if the class tested for is loaded, + * and returns FALSE if it isn't. + * + * It is mainly used in the form_helper -> _get_validation_object() + * + * @param string class being checked for + * @return mixed class object name on the CI SuperObject or FALSE + */ + public function is_loaded($class) + { + if (isset($this->_ci_classes[$class])) + { + return $this->_ci_classes[$class]; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Class Loader + * + * This function lets users load and instantiate classes. + * It is designed to be called from a user's app controllers. + * + * @param string the name of the class + * @param mixed the optional parameters + * @param string an optional object name + * @return void + */ + public function library($library = '', $params = NULL, $object_name = NULL) + { + if (is_array($library)) + { + foreach ($library as $class) + { + $this->library($class, $params); + } + + return; + } + + if ($library == '' OR isset($this->_base_classes[$library])) + { + return FALSE; + } + + if ( ! is_null($params) && ! is_array($params)) + { + $params = NULL; + } + + $this->_ci_load_class($library, $params, $object_name); + } + + // -------------------------------------------------------------------- + + /** + * Model Loader + * + * This function lets users load and instantiate models. + * + * @param string the name of the class + * @param string name for the model + * @param bool database connection + * @return void + */ + public function model($model, $name = '', $db_conn = FALSE) + { + if (is_array($model)) + { + foreach ($model as $babe) + { + $this->model($babe); + } + return; + } + + if ($model == '') + { + return; + } + + $path = ''; + + // Is the model in a sub-folder? If so, parse out the filename and path. + if (($last_slash = strrpos($model, '/')) !== FALSE) + { + // The path is in front of the last slash + $path = substr($model, 0, $last_slash + 1); + + // And the model name behind it + $model = substr($model, $last_slash + 1); + } + + if ($name == '') + { + $name = $model; + } + + if (in_array($name, $this->_ci_models, TRUE)) + { + return; + } + + $CI =& get_instance(); + if (isset($CI->$name)) + { + show_error('The model name you are loading is the name of a resource that is already being used: '.$name); + } + + $model = strtolower($model); + + foreach ($this->_ci_model_paths as $mod_path) + { + if ( ! file_exists($mod_path.'models/'.$path.$model.'.php')) + { + continue; + } + + if ($db_conn !== FALSE AND ! class_exists('CI_DB')) + { + if ($db_conn === TRUE) + { + $db_conn = ''; + } + + $CI->load->database($db_conn, FALSE, TRUE); + } + + if ( ! class_exists('CI_Model')) + { + load_class('Model', 'core'); + } + + require_once($mod_path.'models/'.$path.$model.'.php'); + + $model = ucfirst($model); + + $CI->$name = new $model(); + + $this->_ci_models[] = $name; + return; + } + + // couldn't find the model + show_error('Unable to locate the model you have specified: '.$model); + } + + // -------------------------------------------------------------------- + + /** + * Database Loader + * + * @param string the DB credentials + * @param bool whether to return the DB object + * @param bool whether to enable active record (this allows us to override the config setting) + * @return object + */ + public function database($params = '', $return = FALSE, $active_record = NULL) + { + // Grab the super object + $CI =& get_instance(); + + // Do we even need to load the database class? + if (class_exists('CI_DB') AND $return == FALSE AND $active_record == NULL AND isset($CI->db) AND is_object($CI->db)) + { + return FALSE; + } + + require_once(BASEPATH.'database/DB.php'); + + if ($return === TRUE) + { + return DB($params, $active_record); + } + + // Initialize the db variable. Needed to prevent + // reference errors with some configurations + $CI->db = ''; + + // Load the DB class + $CI->db =& DB($params, $active_record); + } + + // -------------------------------------------------------------------- + + /** + * Load the Utilities Class + * + * @return string + */ + public function dbutil() + { + if ( ! class_exists('CI_DB')) + { + $this->database(); + } + + $CI =& get_instance(); + + // for backwards compatibility, load dbforge so we can extend dbutils off it + // this use is deprecated and strongly discouraged + $CI->load->dbforge(); + + require_once(BASEPATH.'database/DB_utility.php'); + require_once(BASEPATH.'database/drivers/'.$CI->db->dbdriver.'/'.$CI->db->dbdriver.'_utility.php'); + $class = 'CI_DB_'.$CI->db->dbdriver.'_utility'; + + $CI->dbutil = new $class(); + } + + // -------------------------------------------------------------------- + + /** + * Load the Database Forge Class + * + * @return string + */ + public function dbforge() + { + if ( ! class_exists('CI_DB')) + { + $this->database(); + } + + $CI =& get_instance(); + + require_once(BASEPATH.'database/DB_forge.php'); + require_once(BASEPATH.'database/drivers/'.$CI->db->dbdriver.'/'.$CI->db->dbdriver.'_forge.php'); + $class = 'CI_DB_'.$CI->db->dbdriver.'_forge'; + + $CI->dbforge = new $class(); + } + + // -------------------------------------------------------------------- + + /** + * Load View + * + * This function is used to load a "view" file. It has three parameters: + * + * 1. The name of the "view" file to be included. + * 2. An associative array of data to be extracted for use in the view. + * 3. TRUE/FALSE - whether to return the data or load it. In + * some cases it's advantageous to be able to return data so that + * a developer can process it in some way. + * + * @param string + * @param array + * @param bool + * @return void + */ + public function view($view, $vars = array(), $return = FALSE) + { + return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return)); + } + + // -------------------------------------------------------------------- + + /** + * Load File + * + * This is a generic file loader + * + * @param string + * @param bool + * @return string + */ + public function file($path, $return = FALSE) + { + return $this->_ci_load(array('_ci_path' => $path, '_ci_return' => $return)); + } + + // -------------------------------------------------------------------- + + /** + * Set Variables + * + * Once variables are set they become available within + * the controller class and its "view" files. + * + * @param array + * @param string + * @return void + */ + public function vars($vars = array(), $val = '') + { + if ($val != '' AND is_string($vars)) + { + $vars = array($vars => $val); + } + + $vars = $this->_ci_object_to_array($vars); + + if (is_array($vars) AND count($vars) > 0) + { + foreach ($vars as $key => $val) + { + $this->_ci_cached_vars[$key] = $val; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Get Variable + * + * Check if a variable is set and retrieve it. + * + * @param array + * @return void + */ + public function get_var($key) + { + return isset($this->_ci_cached_vars[$key]) ? $this->_ci_cached_vars[$key] : NULL; + } + + // -------------------------------------------------------------------- + + /** + * Load Helper + * + * This function loads the specified helper file. + * + * @param mixed + * @return void + */ + public function helper($helpers = array()) + { + foreach ($this->_ci_prep_filename($helpers, '_helper') as $helper) + { + if (isset($this->_ci_helpers[$helper])) + { + continue; + } + + $ext_helper = APPPATH.'helpers/'.config_item('subclass_prefix').$helper.'.php'; + + // Is this a helper extension request? + if (file_exists($ext_helper)) + { + $base_helper = BASEPATH.'helpers/'.$helper.'.php'; + + if ( ! file_exists($base_helper)) + { + show_error('Unable to load the requested file: helpers/'.$helper.'.php'); + } + + include_once($ext_helper); + include_once($base_helper); + + $this->_ci_helpers[$helper] = TRUE; + log_message('debug', 'Helper loaded: '.$helper); + continue; + } + + // Try to load the helper + foreach ($this->_ci_helper_paths as $path) + { + if (file_exists($path.'helpers/'.$helper.'.php')) + { + include_once($path.'helpers/'.$helper.'.php'); + + $this->_ci_helpers[$helper] = TRUE; + log_message('debug', 'Helper loaded: '.$helper); + break; + } + } + + // unable to load the helper + if ( ! isset($this->_ci_helpers[$helper])) + { + show_error('Unable to load the requested file: helpers/'.$helper.'.php'); + } + } + } + + // -------------------------------------------------------------------- + + /** + * Load Helpers + * + * This is simply an alias to the above function in case the + * user has written the plural form of this function. + * + * @param array + * @return void + */ + public function helpers($helpers = array()) + { + $this->helper($helpers); + } + + // -------------------------------------------------------------------- + + /** + * Loads a language file + * + * @param array + * @param string + * @return void + */ + public function language($file = array(), $lang = '') + { + $CI =& get_instance(); + + if ( ! is_array($file)) + { + $file = array($file); + } + + foreach ($file as $langfile) + { + $CI->lang->load($langfile, $lang); + } + } + + // -------------------------------------------------------------------- + + /** + * Loads a config file + * + * @param string + * @param bool + * @param bool + * @return void + */ + public function config($file = '', $use_sections = FALSE, $fail_gracefully = FALSE) + { + $CI =& get_instance(); + $CI->config->load($file, $use_sections, $fail_gracefully); + } + + // -------------------------------------------------------------------- + + /** + * Driver + * + * Loads a driver library + * + * @param string the name of the class + * @param mixed the optional parameters + * @param string an optional object name + * @return void + */ + public function driver($library = '', $params = NULL, $object_name = NULL) + { + if ( ! class_exists('CI_Driver_Library')) + { + // we aren't instantiating an object here, that'll be done by the Library itself + require BASEPATH.'libraries/Driver.php'; + } + + if ($library == '') + { + return FALSE; + } + + // We can save the loader some time since Drivers will *always* be in a subfolder, + // and typically identically named to the library + if ( ! strpos($library, '/')) + { + $library = ucfirst($library).'/'.$library; + } + + return $this->library($library, $params, $object_name); + } + + // -------------------------------------------------------------------- + + /** + * Add Package Path + * + * Prepends a parent path to the library, model, helper, and config path arrays + * + * @param string + * @param boolean + * @return void + */ + public function add_package_path($path, $view_cascade=TRUE) + { + $path = rtrim($path, '/').'/'; + + array_unshift($this->_ci_library_paths, $path); + array_unshift($this->_ci_model_paths, $path); + array_unshift($this->_ci_helper_paths, $path); + + $this->_ci_view_paths = array($path.'views/' => $view_cascade) + $this->_ci_view_paths; + + // Add config file path + $config =& $this->_ci_get_component('config'); + array_unshift($config->_config_paths, $path); + } + + // -------------------------------------------------------------------- + + /** + * Get Package Paths + * + * Return a list of all package paths, by default it will ignore BASEPATH. + * + * @param string + * @return void + */ + public function get_package_paths($include_base = FALSE) + { + return $include_base === TRUE ? $this->_ci_library_paths : $this->_ci_model_paths; + } + + // -------------------------------------------------------------------- + + /** + * Remove Package Path + * + * Remove a path from the library, model, and helper path arrays if it exists + * If no path is provided, the most recently added path is removed. + * + * @param type + * @param bool + * @return type + */ + public function remove_package_path($path = '', $remove_config_path = TRUE) + { + $config =& $this->_ci_get_component('config'); + + if ($path == '') + { + $void = array_shift($this->_ci_library_paths); + $void = array_shift($this->_ci_model_paths); + $void = array_shift($this->_ci_helper_paths); + $void = array_shift($this->_ci_view_paths); + $void = array_shift($config->_config_paths); + } + else + { + $path = rtrim($path, '/').'/'; + foreach (array('_ci_library_paths', '_ci_model_paths', '_ci_helper_paths') as $var) + { + if (($key = array_search($path, $this->{$var})) !== FALSE) + { + unset($this->{$var}[$key]); + } + } + + if (isset($this->_ci_view_paths[$path.'views/'])) + { + unset($this->_ci_view_paths[$path.'views/']); + } + + if (($key = array_search($path, $config->_config_paths)) !== FALSE) + { + unset($config->_config_paths[$key]); + } + } + + // make sure the application default paths are still in the array + $this->_ci_library_paths = array_unique(array_merge($this->_ci_library_paths, array(APPPATH, BASEPATH))); + $this->_ci_helper_paths = array_unique(array_merge($this->_ci_helper_paths, array(APPPATH, BASEPATH))); + $this->_ci_model_paths = array_unique(array_merge($this->_ci_model_paths, array(APPPATH))); + $this->_ci_view_paths = array_merge($this->_ci_view_paths, array(APPPATH.'views/' => TRUE)); + $config->_config_paths = array_unique(array_merge($config->_config_paths, array(APPPATH))); + } + + // -------------------------------------------------------------------- + + /** + * Loader + * + * This function is used to load views and files. + * Variables are prefixed with _ci_ to avoid symbol collision with + * variables made available to view files + * + * @param array + * @return void + */ + protected function _ci_load($_ci_data) + { + // Set the default data variables + foreach (array('_ci_view', '_ci_vars', '_ci_path', '_ci_return') as $_ci_val) + { + $$_ci_val = ( ! isset($_ci_data[$_ci_val])) ? FALSE : $_ci_data[$_ci_val]; + } + + $file_exists = FALSE; + + // Set the path to the requested file + if ($_ci_path != '') + { + $_ci_x = explode('/', $_ci_path); + $_ci_file = end($_ci_x); + } + else + { + $_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION); + $_ci_file = ($_ci_ext == '') ? $_ci_view.'.php' : $_ci_view; + + foreach ($this->_ci_view_paths as $view_file => $cascade) + { + if (file_exists($view_file.$_ci_file)) + { + $_ci_path = $view_file.$_ci_file; + $file_exists = TRUE; + break; + } + + if ( ! $cascade) + { + break; + } + } + } + + if ( ! $file_exists && ! file_exists($_ci_path)) + { + show_error('Unable to load the requested file: '.$_ci_file); + } + + // This allows anything loaded using $this->load (views, files, etc.) + // to become accessible from within the Controller and Model functions. + + $_ci_CI =& get_instance(); + foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var) + { + if ( ! isset($this->$_ci_key)) + { + $this->$_ci_key =& $_ci_CI->$_ci_key; + } + } + + /* + * Extract and cache variables + * + * You can either set variables using the dedicated $this->load_vars() + * function or via the second parameter of this function. We'll merge + * the two types and cache them so that views that are embedded within + * other views can have access to these variables. + */ + if (is_array($_ci_vars)) + { + $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars); + } + extract($this->_ci_cached_vars); + + /* + * Buffer the output + * + * We buffer the output for two reasons: + * 1. Speed. You get a significant speed boost. + * 2. So that the final rendered template can be + * post-processed by the output class. Why do we + * need post processing? For one thing, in order to + * show the elapsed page load time. Unless we + * can intercept the content right before it's sent to + * the browser and then stop the timer it won't be accurate. + */ + ob_start(); + + // If the PHP installation does not support short tags we'll + // do a little string replacement, changing the short tags + // to standard PHP echo statements. + + if ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE) + { + echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($_ci_path)))); + } + else + { + include($_ci_path); // include() vs include_once() allows for multiple views with the same name + } + + log_message('debug', 'File loaded: '.$_ci_path); + + // Return the file data if requested + if ($_ci_return === TRUE) + { + $buffer = ob_get_contents(); + @ob_end_clean(); + return $buffer; + } + + /* + * Flush the buffer... or buff the flusher? + * + * In order to permit views to be nested within + * other views, we need to flush the content back out whenever + * we are beyond the first level of output buffering so that + * it can be seen and included properly by the first included + * template and any subsequent ones. Oy! + * + */ + if (ob_get_level() > $this->_ci_ob_level + 1) + { + ob_end_flush(); + } + else + { + $_ci_CI->output->append_output(ob_get_contents()); + @ob_end_clean(); + } + } + + // -------------------------------------------------------------------- + + /** + * Load class + * + * This function loads the requested class. + * + * @param string the item that is being loaded + * @param mixed any additional parameters + * @param string an optional object name + * @return void + */ + protected function _ci_load_class($class, $params = NULL, $object_name = NULL) + { + // Get the class name, and while we're at it trim any slashes. + // The directory path can be included as part of the class name, + // but we don't want a leading slash + $class = str_replace('.php', '', trim($class, '/')); + + // Was the path included with the class name? + // We look for a slash to determine this + $subdir = ''; + if (($last_slash = strrpos($class, '/')) !== FALSE) + { + // Extract the path + $subdir = substr($class, 0, $last_slash + 1); + + // Get the filename from the path + $class = substr($class, $last_slash + 1); + } + + // We'll test for both lowercase and capitalized versions of the file name + foreach (array(ucfirst($class), strtolower($class)) as $class) + { + $subclass = APPPATH.'libraries/'.$subdir.config_item('subclass_prefix').$class.'.php'; + + // Is this a class extension request? + if (file_exists($subclass)) + { + $baseclass = BASEPATH.'libraries/'.ucfirst($class).'.php'; + + if ( ! file_exists($baseclass)) + { + log_message('error', "Unable to load the requested class: ".$class); + show_error("Unable to load the requested class: ".$class); + } + + // Safety: Was the class already loaded by a previous call? + if (in_array($subclass, $this->_ci_loaded_files)) + { + // Before we deem this to be a duplicate request, let's see + // if a custom object name is being supplied. If so, we'll + // return a new instance of the object + if ( ! is_null($object_name)) + { + $CI =& get_instance(); + if ( ! isset($CI->$object_name)) + { + return $this->_ci_init_class($class, config_item('subclass_prefix'), $params, $object_name); + } + } + + $is_duplicate = TRUE; + log_message('debug', $class." class already loaded. Second attempt ignored."); + return; + } + + include_once($baseclass); + include_once($subclass); + $this->_ci_loaded_files[] = $subclass; + + return $this->_ci_init_class($class, config_item('subclass_prefix'), $params, $object_name); + } + + // Lets search for the requested library file and load it. + $is_duplicate = FALSE; + foreach ($this->_ci_library_paths as $path) + { + $filepath = $path.'libraries/'.$subdir.$class.'.php'; + + // Does the file exist? No? Bummer... + if ( ! file_exists($filepath)) + { + continue; + } + + // Safety: Was the class already loaded by a previous call? + if (in_array($filepath, $this->_ci_loaded_files)) + { + // Before we deem this to be a duplicate request, let's see + // if a custom object name is being supplied. If so, we'll + // return a new instance of the object + if ( ! is_null($object_name)) + { + $CI =& get_instance(); + if ( ! isset($CI->$object_name)) + { + return $this->_ci_init_class($class, '', $params, $object_name); + } + } + + $is_duplicate = TRUE; + log_message('debug', $class." class already loaded. Second attempt ignored."); + return; + } + + include_once($filepath); + $this->_ci_loaded_files[] = $filepath; + return $this->_ci_init_class($class, '', $params, $object_name); + } + + } // END FOREACH + + // One last attempt. Maybe the library is in a subdirectory, but it wasn't specified? + if ($subdir == '') + { + $path = strtolower($class).'/'.$class; + return $this->_ci_load_class($path, $params); + } + + // If we got this far we were unable to find the requested class. + // We do not issue errors if the load call failed due to a duplicate request + if ($is_duplicate == FALSE) + { + log_message('error', "Unable to load the requested class: ".$class); + show_error("Unable to load the requested class: ".$class); + } + } + + // -------------------------------------------------------------------- + + /** + * Instantiates a class + * + * @param string + * @param string + * @param bool + * @param string an optional object name + * @return null + */ + protected function _ci_init_class($class, $prefix = '', $config = FALSE, $object_name = NULL) + { + // Is there an associated config file for this class? Note: these should always be lowercase + if ($config === NULL) + { + // Fetch the config paths containing any package paths + $config_component = $this->_ci_get_component('config'); + + if (is_array($config_component->_config_paths)) + { + // Break on the first found file, thus package files + // are not overridden by default paths + foreach ($config_component->_config_paths as $path) + { + // We test for both uppercase and lowercase, for servers that + // are case-sensitive with regard to file names. Check for environment + // first, global next + if (defined('ENVIRONMENT') AND file_exists($path .'config/'.ENVIRONMENT.'/'.strtolower($class).'.php')) + { + include($path .'config/'.ENVIRONMENT.'/'.strtolower($class).'.php'); + break; + } + elseif (defined('ENVIRONMENT') AND file_exists($path .'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).'.php')) + { + include($path .'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).'.php'); + break; + } + elseif (file_exists($path .'config/'.strtolower($class).'.php')) + { + include($path .'config/'.strtolower($class).'.php'); + break; + } + elseif (file_exists($path .'config/'.ucfirst(strtolower($class)).'.php')) + { + include($path .'config/'.ucfirst(strtolower($class)).'.php'); + break; + } + } + } + } + + if ($prefix == '') + { + if (class_exists('CI_'.$class)) + { + $name = 'CI_'.$class; + } + elseif (class_exists(config_item('subclass_prefix').$class)) + { + $name = config_item('subclass_prefix').$class; + } + else + { + $name = $class; + } + } + else + { + $name = $prefix.$class; + } + + // Is the class name valid? + if ( ! class_exists($name)) + { + log_message('error', "Non-existent class: ".$name); + show_error("Non-existent class: ".$class); + } + + // Set the variable name we will assign the class to + // Was a custom class name supplied? If so we'll use it + $class = strtolower($class); + + if (is_null($object_name)) + { + $classvar = ( ! isset($this->_ci_varmap[$class])) ? $class : $this->_ci_varmap[$class]; + } + else + { + $classvar = $object_name; + } + + // Save the class name and object name + $this->_ci_classes[$class] = $classvar; + + // Instantiate the class + $CI =& get_instance(); + if ($config !== NULL) + { + $CI->$classvar = new $name($config); + } + else + { + $CI->$classvar = new $name; + } + } + + // -------------------------------------------------------------------- + + /** + * Autoloader + * + * The config/autoload.php file contains an array that permits sub-systems, + * libraries, and helpers to be loaded automatically. + * + * @param array + * @return void + */ + private function _ci_autoloader() + { + if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/autoload.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/autoload.php'); + } + else + { + include(APPPATH.'config/autoload.php'); + } + + if ( ! isset($autoload)) + { + return FALSE; + } + + // Autoload packages + if (isset($autoload['packages'])) + { + foreach ($autoload['packages'] as $package_path) + { + $this->add_package_path($package_path); + } + } + + // Load any custom config file + if (count($autoload['config']) > 0) + { + $CI =& get_instance(); + foreach ($autoload['config'] as $key => $val) + { + $CI->config->load($val); + } + } + + // Autoload helpers and languages + foreach (array('helper', 'language') as $type) + { + if (isset($autoload[$type]) AND count($autoload[$type]) > 0) + { + $this->$type($autoload[$type]); + } + } + + // A little tweak to remain backward compatible + // The $autoload['core'] item was deprecated + if ( ! isset($autoload['libraries']) AND isset($autoload['core'])) + { + $autoload['libraries'] = $autoload['core']; + } + + // Load libraries + if (isset($autoload['libraries']) AND count($autoload['libraries']) > 0) + { + // Load the database driver. + if (in_array('database', $autoload['libraries'])) + { + $this->database(); + $autoload['libraries'] = array_diff($autoload['libraries'], array('database')); + } + + // Load all other libraries + foreach ($autoload['libraries'] as $item) + { + $this->library($item); + } + } + + // Autoload models + if (isset($autoload['model'])) + { + $this->model($autoload['model']); + } + } + + // -------------------------------------------------------------------- + + /** + * Object to Array + * + * Takes an object as input and converts the class variables to array key/vals + * + * @param object + * @return array + */ + protected function _ci_object_to_array($object) + { + return (is_object($object)) ? get_object_vars($object) : $object; + } + + // -------------------------------------------------------------------- + + /** + * Get a reference to a specific library or model + * + * @param string + * @return bool + */ + protected function &_ci_get_component($component) + { + $CI =& get_instance(); + return $CI->$component; + } + + // -------------------------------------------------------------------- + + /** + * Prep filename + * + * This function preps the name of various items to make loading them more reliable. + * + * @param mixed + * @param string + * @return array + */ + protected function _ci_prep_filename($filename, $extension) + { + if ( ! is_array($filename)) + { + return array(strtolower(str_replace('.php', '', str_replace($extension, '', $filename)).$extension)); + } + else + { + foreach ($filename as $key => $val) + { + $filename[$key] = strtolower(str_replace('.php', '', str_replace($extension, '', $val)).$extension); + } + + return $filename; + } + } +} + +/* End of file Loader.php */ +/* Location: ./system/core/Loader.php */ \ No newline at end of file diff --git a/system/core/Model.php b/system/core/Model.php new file mode 100755 index 0000000..e15ffbe --- /dev/null +++ b/system/core/Model.php @@ -0,0 +1,57 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Model Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/config.html + */ +class CI_Model { + + /** + * Constructor + * + * @access public + */ + function __construct() + { + log_message('debug', "Model Class Initialized"); + } + + /** + * __get + * + * Allows models to access CI's loaded classes using the same + * syntax as controllers. + * + * @param string + * @access private + */ + function __get($key) + { + $CI =& get_instance(); + return $CI->$key; + } +} +// END Model Class + +/* End of file Model.php */ +/* Location: ./system/core/Model.php */ \ No newline at end of file diff --git a/system/core/Output.php b/system/core/Output.php new file mode 100755 index 0000000..ccecafd --- /dev/null +++ b/system/core/Output.php @@ -0,0 +1,574 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Output Class + * + * Responsible for sending final output to browser + * + * @package CodeIgniter + * @subpackage Libraries + * @category Output + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/output.html + */ +class CI_Output { + + /** + * Current output string + * + * @var string + * @access protected + */ + protected $final_output; + /** + * Cache expiration time + * + * @var int + * @access protected + */ + protected $cache_expiration = 0; + /** + * List of server headers + * + * @var array + * @access protected + */ + protected $headers = array(); + /** + * List of mime types + * + * @var array + * @access protected + */ + protected $mime_types = array(); + /** + * Determines wether profiler is enabled + * + * @var book + * @access protected + */ + protected $enable_profiler = FALSE; + /** + * Determines if output compression is enabled + * + * @var bool + * @access protected + */ + protected $_zlib_oc = FALSE; + /** + * List of profiler sections + * + * @var array + * @access protected + */ + protected $_profiler_sections = array(); + /** + * Whether or not to parse variables like {elapsed_time} and {memory_usage} + * + * @var bool + * @access protected + */ + protected $parse_exec_vars = TRUE; + + /** + * Constructor + * + */ + function __construct() + { + $this->_zlib_oc = @ini_get('zlib.output_compression'); + + // Get mime types for later + if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')) + { + include APPPATH.'config/'.ENVIRONMENT.'/mimes.php'; + } + else + { + include APPPATH.'config/mimes.php'; + } + + + $this->mime_types = $mimes; + + log_message('debug', "Output Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Get Output + * + * Returns the current output string + * + * @access public + * @return string + */ + function get_output() + { + return $this->final_output; + } + + // -------------------------------------------------------------------- + + /** + * Set Output + * + * Sets the output string + * + * @access public + * @param string + * @return void + */ + function set_output($output) + { + $this->final_output = $output; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Append Output + * + * Appends data onto the output string + * + * @access public + * @param string + * @return void + */ + function append_output($output) + { + if ($this->final_output == '') + { + $this->final_output = $output; + } + else + { + $this->final_output .= $output; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Header + * + * Lets you set a server header which will be outputted with the final display. + * + * Note: If a file is cached, headers will not be sent. We need to figure out + * how to permit header data to be saved with the cache data... + * + * @access public + * @param string + * @param bool + * @return void + */ + function set_header($header, $replace = TRUE) + { + // If zlib.output_compression is enabled it will compress the output, + // but it will not modify the content-length header to compensate for + // the reduction, causing the browser to hang waiting for more data. + // We'll just skip content-length in those cases. + + if ($this->_zlib_oc && strncasecmp($header, 'content-length', 14) == 0) + { + return; + } + + $this->headers[] = array($header, $replace); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Content Type Header + * + * @access public + * @param string extension of the file we're outputting + * @return void + */ + function set_content_type($mime_type) + { + if (strpos($mime_type, '/') === FALSE) + { + $extension = ltrim($mime_type, '.'); + + // Is this extension supported? + if (isset($this->mime_types[$extension])) + { + $mime_type =& $this->mime_types[$extension]; + + if (is_array($mime_type)) + { + $mime_type = current($mime_type); + } + } + } + + $header = 'Content-Type: '.$mime_type; + + $this->headers[] = array($header, TRUE); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set HTTP Status Header + * moved to Common procedural functions in 1.7.2 + * + * @access public + * @param int the status code + * @param string + * @return void + */ + function set_status_header($code = 200, $text = '') + { + set_status_header($code, $text); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Enable/disable Profiler + * + * @access public + * @param bool + * @return void + */ + function enable_profiler($val = TRUE) + { + $this->enable_profiler = (is_bool($val)) ? $val : TRUE; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Profiler Sections + * + * Allows override of default / config settings for Profiler section display + * + * @access public + * @param array + * @return void + */ + function set_profiler_sections($sections) + { + foreach ($sections as $section => $enable) + { + $this->_profiler_sections[$section] = ($enable !== FALSE) ? TRUE : FALSE; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Cache + * + * @access public + * @param integer + * @return void + */ + function cache($time) + { + $this->cache_expiration = ( ! is_numeric($time)) ? 0 : $time; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Display Output + * + * All "view" data is automatically put into this variable by the controller class: + * + * $this->final_output + * + * This function sends the finalized output data to the browser along + * with any server headers and profile data. It also stops the + * benchmark timer so the page rendering speed and memory usage can be shown. + * + * @access public + * @param string + * @return mixed + */ + function _display($output = '') + { + // Note: We use globals because we can't use $CI =& get_instance() + // since this function is sometimes called by the caching mechanism, + // which happens before the CI super object is available. + global $BM, $CFG; + + // Grab the super object if we can. + if (class_exists('CI_Controller')) + { + $CI =& get_instance(); + } + + // -------------------------------------------------------------------- + + // Set the output data + if ($output == '') + { + $output =& $this->final_output; + } + + // -------------------------------------------------------------------- + + // Do we need to write a cache file? Only if the controller does not have its + // own _output() method and we are not dealing with a cache file, which we + // can determine by the existence of the $CI object above + if ($this->cache_expiration > 0 && isset($CI) && ! method_exists($CI, '_output')) + { + $this->_write_cache($output); + } + + // -------------------------------------------------------------------- + + // Parse out the elapsed time and memory usage, + // then swap the pseudo-variables with the data + + $elapsed = $BM->elapsed_time('total_execution_time_start', 'total_execution_time_end'); + + if ($this->parse_exec_vars === TRUE) + { + $memory = ( ! function_exists('memory_get_usage')) ? '0' : round(memory_get_usage()/1024/1024, 2).'MB'; + + $output = str_replace('{elapsed_time}', $elapsed, $output); + $output = str_replace('{memory_usage}', $memory, $output); + } + + // -------------------------------------------------------------------- + + // Is compression requested? + if ($CFG->item('compress_output') === TRUE && $this->_zlib_oc == FALSE) + { + if (extension_loaded('zlib')) + { + if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) AND strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) + { + ob_start('ob_gzhandler'); + } + } + } + + // -------------------------------------------------------------------- + + // Are there any server headers to send? + if (count($this->headers) > 0) + { + foreach ($this->headers as $header) + { + @header($header[0], $header[1]); + } + } + + // -------------------------------------------------------------------- + + // Does the $CI object exist? + // If not we know we are dealing with a cache file so we'll + // simply echo out the data and exit. + if ( ! isset($CI)) + { + echo $output; + log_message('debug', "Final output sent to browser"); + log_message('debug', "Total execution time: ".$elapsed); + return TRUE; + } + + // -------------------------------------------------------------------- + + // Do we need to generate profile data? + // If so, load the Profile class and run it. + if ($this->enable_profiler == TRUE) + { + $CI->load->library('profiler'); + + if ( ! empty($this->_profiler_sections)) + { + $CI->profiler->set_sections($this->_profiler_sections); + } + + // If the output data contains closing </body> and </html> tags + // we will remove them and add them back after we insert the profile data + if (preg_match("|</body>.*?</html>|is", $output)) + { + $output = preg_replace("|</body>.*?</html>|is", '', $output); + $output .= $CI->profiler->run(); + $output .= '</body></html>'; + } + else + { + $output .= $CI->profiler->run(); + } + } + + // -------------------------------------------------------------------- + + // Does the controller contain a function named _output()? + // If so send the output there. Otherwise, echo it. + if (method_exists($CI, '_output')) + { + $CI->_output($output); + } + else + { + echo $output; // Send it to the browser! + } + + log_message('debug', "Final output sent to browser"); + log_message('debug', "Total execution time: ".$elapsed); + } + + // -------------------------------------------------------------------- + + /** + * Write a Cache File + * + * @access public + * @param string + * @return void + */ + function _write_cache($output) + { + $CI =& get_instance(); + $path = $CI->config->item('cache_path'); + + $cache_path = ($path == '') ? APPPATH.'cache/' : $path; + + if ( ! is_dir($cache_path) OR ! is_really_writable($cache_path)) + { + log_message('error', "Unable to write cache file: ".$cache_path); + return; + } + + $uri = $CI->config->item('base_url'). + $CI->config->item('index_page'). + $CI->uri->uri_string(); + + $cache_path .= md5($uri); + + if ( ! $fp = @fopen($cache_path, FOPEN_WRITE_CREATE_DESTRUCTIVE)) + { + log_message('error', "Unable to write cache file: ".$cache_path); + return; + } + + $expire = time() + ($this->cache_expiration * 60); + + if (flock($fp, LOCK_EX)) + { + fwrite($fp, $expire.'TS--->'.$output); + flock($fp, LOCK_UN); + } + else + { + log_message('error', "Unable to secure a file lock for file at: ".$cache_path); + return; + } + fclose($fp); + @chmod($cache_path, FILE_WRITE_MODE); + + log_message('debug', "Cache file written: ".$cache_path); + } + + // -------------------------------------------------------------------- + + /** + * Update/serve a cached file + * + * @access public + * @param object config class + * @param object uri class + * @return void + */ + function _display_cache(&$CFG, &$URI) + { + $cache_path = ($CFG->item('cache_path') == '') ? APPPATH.'cache/' : $CFG->item('cache_path'); + + // Build the file path. The file name is an MD5 hash of the full URI + $uri = $CFG->item('base_url'). + $CFG->item('index_page'). + $URI->uri_string; + + $filepath = $cache_path.md5($uri); + + if ( ! @file_exists($filepath)) + { + return FALSE; + } + + if ( ! $fp = @fopen($filepath, FOPEN_READ)) + { + return FALSE; + } + + flock($fp, LOCK_SH); + + $cache = ''; + if (filesize($filepath) > 0) + { + $cache = fread($fp, filesize($filepath)); + } + + flock($fp, LOCK_UN); + fclose($fp); + + // Strip out the embedded timestamp + if ( ! preg_match("/(\d+TS--->)/", $cache, $match)) + { + return FALSE; + } + + // Has the file expired? If so we'll delete it. + if (time() >= trim(str_replace('TS--->', '', $match['1']))) + { + if (is_really_writable($cache_path)) + { + @unlink($filepath); + log_message('debug', "Cache file has expired. File deleted"); + return FALSE; + } + } + + // Display the cache + $this->_display(str_replace($match['0'], '', $cache)); + log_message('debug', "Cache file is current. Sending it to browser."); + return TRUE; + } + + +} +// END Output Class + +/* End of file Output.php */ +/* Location: ./system/core/Output.php */ \ No newline at end of file diff --git a/system/core/Router.php b/system/core/Router.php new file mode 100755 index 0000000..6da6674 --- /dev/null +++ b/system/core/Router.php @@ -0,0 +1,522 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Router Class + * + * Parses URIs and determines routing + * + * @package CodeIgniter + * @subpackage Libraries + * @author ExpressionEngine Dev Team + * @category Libraries + * @link http://codeigniter.com/user_guide/general/routing.html + */ +class CI_Router { + + /** + * Config class + * + * @var object + * @access public + */ + var $config; + /** + * List of routes + * + * @var array + * @access public + */ + var $routes = array(); + /** + * List of error routes + * + * @var array + * @access public + */ + var $error_routes = array(); + /** + * Current class name + * + * @var string + * @access public + */ + var $class = ''; + /** + * Current method name + * + * @var string + * @access public + */ + var $method = 'index'; + /** + * Sub-directory that contains the requested controller class + * + * @var string + * @access public + */ + var $directory = ''; + /** + * Default controller (and method if specific) + * + * @var string + * @access public + */ + var $default_controller; + + /** + * Constructor + * + * Runs the route mapping function. + */ + function __construct() + { + $this->config =& load_class('Config', 'core'); + $this->uri =& load_class('URI', 'core'); + log_message('debug', "Router Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Set the route mapping + * + * This function determines what should be served based on the URI request, + * as well as any "routes" that have been set in the routing config file. + * + * @access private + * @return void + */ + function _set_routing() + { + // Are query strings enabled in the config file? Normally CI doesn't utilize query strings + // since URI segments are more search-engine friendly, but they can optionally be used. + // If this feature is enabled, we will gather the directory/class/method a little differently + $segments = array(); + if ($this->config->item('enable_query_strings') === TRUE AND isset($_GET[$this->config->item('controller_trigger')])) + { + if (isset($_GET[$this->config->item('directory_trigger')])) + { + $this->set_directory(trim($this->uri->_filter_uri($_GET[$this->config->item('directory_trigger')]))); + $segments[] = $this->fetch_directory(); + } + + if (isset($_GET[$this->config->item('controller_trigger')])) + { + $this->set_class(trim($this->uri->_filter_uri($_GET[$this->config->item('controller_trigger')]))); + $segments[] = $this->fetch_class(); + } + + if (isset($_GET[$this->config->item('function_trigger')])) + { + $this->set_method(trim($this->uri->_filter_uri($_GET[$this->config->item('function_trigger')]))); + $segments[] = $this->fetch_method(); + } + } + + // Load the routes.php file. + if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/routes.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/routes.php'); + } + elseif (is_file(APPPATH.'config/routes.php')) + { + include(APPPATH.'config/routes.php'); + } + + $this->routes = ( ! isset($route) OR ! is_array($route)) ? array() : $route; + unset($route); + + // Set the default controller so we can display it in the event + // the URI doesn't correlated to a valid controller. + $this->default_controller = ( ! isset($this->routes['default_controller']) OR $this->routes['default_controller'] == '') ? FALSE : strtolower($this->routes['default_controller']); + + // Were there any query string segments? If so, we'll validate them and bail out since we're done. + if (count($segments) > 0) + { + return $this->_validate_request($segments); + } + + // Fetch the complete URI string + $this->uri->_fetch_uri_string(); + + // Is there a URI string? If not, the default controller specified in the "routes" file will be shown. + if ($this->uri->uri_string == '') + { + return $this->_set_default_controller(); + } + + // Do we need to remove the URL suffix? + $this->uri->_remove_url_suffix(); + + // Compile the segments into an array + $this->uri->_explode_segments(); + + // Parse any custom routing that may exist + $this->_parse_routes(); + + // Re-index the segment array so that it starts with 1 rather than 0 + $this->uri->_reindex_segments(); + } + + // -------------------------------------------------------------------- + + /** + * Set the default controller + * + * @access private + * @return void + */ + function _set_default_controller() + { + if ($this->default_controller === FALSE) + { + show_error("Unable to determine what should be displayed. A default route has not been specified in the routing file."); + } + // Is the method being specified? + if (strpos($this->default_controller, '/') !== FALSE) + { + $x = explode('/', $this->default_controller); + + $this->set_class($x[0]); + $this->set_method($x[1]); + $this->_set_request($x); + } + else + { + $this->set_class($this->default_controller); + $this->set_method('index'); + $this->_set_request(array($this->default_controller, 'index')); + } + + // re-index the routed segments array so it starts with 1 rather than 0 + $this->uri->_reindex_segments(); + + log_message('debug', "No URI present. Default controller set."); + } + + // -------------------------------------------------------------------- + + /** + * Set the Route + * + * This function takes an array of URI segments as + * input, and sets the current class/method + * + * @access private + * @param array + * @param bool + * @return void + */ + function _set_request($segments = array()) + { + $segments = $this->_validate_request($segments); + + if (count($segments) == 0) + { + return $this->_set_default_controller(); + } + + $this->set_class($segments[0]); + + if (isset($segments[1])) + { + // A standard method request + $this->set_method($segments[1]); + } + else + { + // This lets the "routed" segment array identify that the default + // index method is being used. + $segments[1] = 'index'; + } + + // Update our "routed" segment array to contain the segments. + // Note: If there is no custom routing, this array will be + // identical to $this->uri->segments + $this->uri->rsegments = $segments; + } + + // -------------------------------------------------------------------- + + /** + * Validates the supplied segments. Attempts to determine the path to + * the controller. + * + * @access private + * @param array + * @return array + */ + function _validate_request($segments) + { + if (count($segments) == 0) + { + return $segments; + } + + // Does the requested controller exist in the root folder? + if (file_exists(APPPATH.'controllers/'.$segments[0].'.php')) + { + return $segments; + } + + // Is the controller in a sub-folder? + if (is_dir(APPPATH.'controllers/'.$segments[0])) + { + // Set the directory and remove it from the segment array + $this->set_directory($segments[0]); + $segments = array_slice($segments, 1); + + if (count($segments) > 0) + { + // Does the requested controller exist in the sub-folder? + if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$segments[0].'.php')) + { + if ( ! empty($this->routes['404_override'])) + { + $x = explode('/', $this->routes['404_override']); + + $this->set_directory(''); + $this->set_class($x[0]); + $this->set_method(isset($x[1]) ? $x[1] : 'index'); + + return $x; + } + else + { + show_404($this->fetch_directory().$segments[0]); + } + } + } + else + { + // Is the method being specified in the route? + if (strpos($this->default_controller, '/') !== FALSE) + { + $x = explode('/', $this->default_controller); + + $this->set_class($x[0]); + $this->set_method($x[1]); + } + else + { + $this->set_class($this->default_controller); + $this->set_method('index'); + } + + // Does the default controller exist in the sub-folder? + if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$this->default_controller.'.php')) + { + $this->directory = ''; + return array(); + } + + } + + return $segments; + } + + + // If we've gotten this far it means that the URI does not correlate to a valid + // controller class. We will now see if there is an override + if ( ! empty($this->routes['404_override'])) + { + $x = explode('/', $this->routes['404_override']); + + $this->set_class($x[0]); + $this->set_method(isset($x[1]) ? $x[1] : 'index'); + + return $x; + } + + + // Nothing else to do at this point but show a 404 + show_404($segments[0]); + } + + // -------------------------------------------------------------------- + + /** + * Parse Routes + * + * This function matches any routes that may exist in + * the config/routes.php file against the URI to + * determine if the class/method need to be remapped. + * + * @access private + * @return void + */ + function _parse_routes() + { + // Turn the segment array into a URI string + $uri = implode('/', $this->uri->segments); + + // Is there a literal match? If so we're done + if (isset($this->routes[$uri])) + { + return $this->_set_request(explode('/', $this->routes[$uri])); + } + + // Loop through the route array looking for wild-cards + foreach ($this->routes as $key => $val) + { + // Convert wild-cards to RegEx + $key = str_replace(':any', '.+', str_replace(':num', '[0-9]+', $key)); + + // Does the RegEx match? + if (preg_match('#^'.$key.'$#', $uri)) + { + // Do we have a back-reference? + if (strpos($val, '$') !== FALSE AND strpos($key, '(') !== FALSE) + { + $val = preg_replace('#^'.$key.'$#', $val, $uri); + } + + return $this->_set_request(explode('/', $val)); + } + } + + // If we got this far it means we didn't encounter a + // matching route so we'll set the site default route + $this->_set_request($this->uri->segments); + } + + // -------------------------------------------------------------------- + + /** + * Set the class name + * + * @access public + * @param string + * @return void + */ + function set_class($class) + { + $this->class = str_replace(array('/', '.'), '', $class); + } + + // -------------------------------------------------------------------- + + /** + * Fetch the current class + * + * @access public + * @return string + */ + function fetch_class() + { + return $this->class; + } + + // -------------------------------------------------------------------- + + /** + * Set the method name + * + * @access public + * @param string + * @return void + */ + function set_method($method) + { + $this->method = $method; + } + + // -------------------------------------------------------------------- + + /** + * Fetch the current method + * + * @access public + * @return string + */ + function fetch_method() + { + if ($this->method == $this->fetch_class()) + { + return 'index'; + } + + return $this->method; + } + + // -------------------------------------------------------------------- + + /** + * Set the directory name + * + * @access public + * @param string + * @return void + */ + function set_directory($dir) + { + $this->directory = str_replace(array('/', '.'), '', $dir).'/'; + } + + // -------------------------------------------------------------------- + + /** + * Fetch the sub-directory (if any) that contains the requested controller class + * + * @access public + * @return string + */ + function fetch_directory() + { + return $this->directory; + } + + // -------------------------------------------------------------------- + + /** + * Set the controller overrides + * + * @access public + * @param array + * @return null + */ + function _set_overrides($routing) + { + if ( ! is_array($routing)) + { + return; + } + + if (isset($routing['directory'])) + { + $this->set_directory($routing['directory']); + } + + if (isset($routing['controller']) AND $routing['controller'] != '') + { + $this->set_class($routing['controller']); + } + + if (isset($routing['function'])) + { + $routing['function'] = ($routing['function'] == '') ? 'index' : $routing['function']; + $this->set_method($routing['function']); + } + } + + +} +// END Router Class + +/* End of file Router.php */ +/* Location: ./system/core/Router.php */ \ No newline at end of file diff --git a/system/core/Security.php b/system/core/Security.php new file mode 100755 index 0000000..b0d39b9 --- /dev/null +++ b/system/core/Security.php @@ -0,0 +1,875 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Security Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Security + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/security.html + */ +class CI_Security { + + /** + * Random Hash for protecting URLs + * + * @var string + * @access protected + */ + protected $_xss_hash = ''; + /** + * Random Hash for Cross Site Request Forgery Protection Cookie + * + * @var string + * @access protected + */ + protected $_csrf_hash = ''; + /** + * Expiration time for Cross Site Request Forgery Protection Cookie + * Defaults to two hours (in seconds) + * + * @var int + * @access protected + */ + protected $_csrf_expire = 7200; + /** + * Token name for Cross Site Request Forgery Protection Cookie + * + * @var string + * @access protected + */ + protected $_csrf_token_name = 'ci_csrf_token'; + /** + * Cookie name for Cross Site Request Forgery Protection Cookie + * + * @var string + * @access protected + */ + protected $_csrf_cookie_name = 'ci_csrf_token'; + /** + * List of never allowed strings + * + * @var array + * @access protected + */ + protected $_never_allowed_str = array( + 'document.cookie' => '[removed]', + 'document.write' => '[removed]', + '.parentNode' => '[removed]', + '.innerHTML' => '[removed]', + 'window.location' => '[removed]', + '-moz-binding' => '[removed]', + '<!--' => '&lt;!--', + '-->' => '--&gt;', + '<![CDATA[' => '&lt;![CDATA[', + '<comment>' => '&lt;comment&gt;' + ); + + /* never allowed, regex replacement */ + /** + * List of never allowed regex replacement + * + * @var array + * @access protected + */ + protected $_never_allowed_regex = array( + 'javascript\s*:', + 'expression\s*(\(|&\#40;)', // CSS and IE + 'vbscript\s*:', // IE, surprise! + 'Redirect\s+302', + "([\"'])?data\s*:[^\\1]*?base64[^\\1]*?,[^\\1]*?\\1?" + ); + + /** + * Constructor + * + * @return void + */ + public function __construct() + { + // Is CSRF protection enabled? + if (config_item('csrf_protection') === TRUE) + { + // CSRF config + foreach (array('csrf_expire', 'csrf_token_name', 'csrf_cookie_name') as $key) + { + if (FALSE !== ($val = config_item($key))) + { + $this->{'_'.$key} = $val; + } + } + + // Append application specific cookie prefix + if (config_item('cookie_prefix')) + { + $this->_csrf_cookie_name = config_item('cookie_prefix').$this->_csrf_cookie_name; + } + + // Set the CSRF hash + $this->_csrf_set_hash(); + } + + log_message('debug', "Security Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Verify Cross Site Request Forgery Protection + * + * @return object + */ + public function csrf_verify() + { + // If it's not a POST request we will set the CSRF cookie + if (strtoupper($_SERVER['REQUEST_METHOD']) !== 'POST') + { + return $this->csrf_set_cookie(); + } + + // Do the tokens exist in both the _POST and _COOKIE arrays? + if ( ! isset($_POST[$this->_csrf_token_name], $_COOKIE[$this->_csrf_cookie_name])) + { + $this->csrf_show_error(); + } + + // Do the tokens match? + if ($_POST[$this->_csrf_token_name] != $_COOKIE[$this->_csrf_cookie_name]) + { + $this->csrf_show_error(); + } + + // We kill this since we're done and we don't want to + // polute the _POST array + unset($_POST[$this->_csrf_token_name]); + + // Nothing should last forever + unset($_COOKIE[$this->_csrf_cookie_name]); + $this->_csrf_set_hash(); + $this->csrf_set_cookie(); + + log_message('debug', 'CSRF token verified'); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Cross Site Request Forgery Protection Cookie + * + * @return object + */ + public function csrf_set_cookie() + { + $expire = time() + $this->_csrf_expire; + $secure_cookie = (config_item('cookie_secure') === TRUE) ? 1 : 0; + + if ($secure_cookie && (empty($_SERVER['HTTPS']) OR strtolower($_SERVER['HTTPS']) === 'off')) + { + return FALSE; + } + + setcookie($this->_csrf_cookie_name, $this->_csrf_hash, $expire, config_item('cookie_path'), config_item('cookie_domain'), $secure_cookie); + + log_message('debug', "CRSF cookie Set"); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Show CSRF Error + * + * @return void + */ + public function csrf_show_error() + { + show_error('The action you have requested is not allowed.'); + } + + // -------------------------------------------------------------------- + + /** + * Get CSRF Hash + * + * Getter Method + * + * @return string self::_csrf_hash + */ + public function get_csrf_hash() + { + return $this->_csrf_hash; + } + + // -------------------------------------------------------------------- + + /** + * Get CSRF Token Name + * + * Getter Method + * + * @return string self::csrf_token_name + */ + public function get_csrf_token_name() + { + return $this->_csrf_token_name; + } + + // -------------------------------------------------------------------- + + /** + * XSS Clean + * + * Sanitizes data so that Cross Site Scripting Hacks can be + * prevented. This function does a fair amount of work but + * it is extremely thorough, designed to prevent even the + * most obscure XSS attempts. Nothing is ever 100% foolproof, + * of course, but I haven't been able to get anything passed + * the filter. + * + * Note: This function should only be used to deal with data + * upon submission. It's not something that should + * be used for general runtime processing. + * + * This function was based in part on some code and ideas I + * got from Bitflux: http://channel.bitflux.ch/wiki/XSS_Prevention + * + * To help develop this script I used this great list of + * vulnerabilities along with a few other hacks I've + * harvested from examining vulnerabilities in other programs: + * http://ha.ckers.org/xss.html + * + * @param mixed string or array + * @param bool + * @return string + */ + public function xss_clean($str, $is_image = FALSE) + { + /* + * Is the string an array? + * + */ + if (is_array($str)) + { + while (list($key) = each($str)) + { + $str[$key] = $this->xss_clean($str[$key]); + } + + return $str; + } + + /* + * Remove Invisible Characters + */ + $str = remove_invisible_characters($str); + + // Validate Entities in URLs + $str = $this->_validate_entities($str); + + /* + * URL Decode + * + * Just in case stuff like this is submitted: + * + * <a href="http://%77%77%77%2E%67%6F%6F%67%6C%65%2E%63%6F%6D">Google</a> + * + * Note: Use rawurldecode() so it does not remove plus signs + * + */ + $str = rawurldecode($str); + + /* + * Convert character entities to ASCII + * + * This permits our tests below to work reliably. + * We only convert entities that are within tags since + * these are the ones that will pose security problems. + * + */ + + $str = preg_replace_callback("/[a-z]+=([\'\"]).*?\\1/si", array($this, '_convert_attribute'), $str); + + $str = preg_replace_callback("/<\w+.*?(?=>|<|$)/si", array($this, '_decode_entity'), $str); + + /* + * Remove Invisible Characters Again! + */ + $str = remove_invisible_characters($str); + + /* + * Convert all tabs to spaces + * + * This prevents strings like this: ja vascript + * NOTE: we deal with spaces between characters later. + * NOTE: preg_replace was found to be amazingly slow here on + * large blocks of data, so we use str_replace. + */ + + if (strpos($str, "\t") !== FALSE) + { + $str = str_replace("\t", ' ', $str); + } + + /* + * Capture converted string for later comparison + */ + $converted_string = $str; + + // Remove Strings that are never allowed + $str = $this->_do_never_allowed($str); + + /* + * Makes PHP tags safe + * + * Note: XML tags are inadvertently replaced too: + * + * <?xml + * + * But it doesn't seem to pose a problem. + */ + if ($is_image === TRUE) + { + // Images have a tendency to have the PHP short opening and + // closing tags every so often so we skip those and only + // do the long opening tags. + $str = preg_replace('/<\?(php)/i', "&lt;?\\1", $str); + } + else + { + $str = str_replace(array('<?', '?'.'>'), array('&lt;?', '?&gt;'), $str); + } + + /* + * Compact any exploded words + * + * This corrects words like: j a v a s c r i p t + * These words are compacted back to their correct state. + */ + $words = array( + 'javascript', 'expression', 'vbscript', 'script', 'base64', + 'applet', 'alert', 'document', 'write', 'cookie', 'window' + ); + + foreach ($words as $word) + { + $temp = ''; + + for ($i = 0, $wordlen = strlen($word); $i < $wordlen; $i++) + { + $temp .= substr($word, $i, 1)."\s*"; + } + + // We only want to do this when it is followed by a non-word character + // That way valid stuff like "dealer to" does not become "dealerto" + $str = preg_replace_callback('#('.substr($temp, 0, -3).')(\W)#is', array($this, '_compact_exploded_words'), $str); + } + + /* + * Remove disallowed Javascript in links or img tags + * We used to do some version comparisons and use of stripos for PHP5, + * but it is dog slow compared to these simplified non-capturing + * preg_match(), especially if the pattern exists in the string + */ + do + { + $original = $str; + + if (preg_match("/<a/i", $str)) + { + $str = preg_replace_callback("#<a\s+([^>]*?)(>|$)#si", array($this, '_js_link_removal'), $str); + } + + if (preg_match("/<img/i", $str)) + { + $str = preg_replace_callback("#<img\s+([^>]*?)(\s?/?>|$)#si", array($this, '_js_img_removal'), $str); + } + + if (preg_match("/script/i", $str) OR preg_match("/xss/i", $str)) + { + $str = preg_replace("#<(/*)(script|xss)(.*?)\>#si", '[removed]', $str); + } + } + while($original != $str); + + unset($original); + + // Remove evil attributes such as style, onclick and xmlns + $str = $this->_remove_evil_attributes($str, $is_image); + + /* + * Sanitize naughty HTML elements + * + * If a tag containing any of the words in the list + * below is found, the tag gets converted to entities. + * + * So this: <blink> + * Becomes: &lt;blink&gt; + */ + $naughty = 'alert|applet|audio|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|isindex|layer|link|meta|object|plaintext|style|script|textarea|title|video|xml|xss'; + $str = preg_replace_callback('#<(/*\s*)('.$naughty.')([^><]*)([><]*)#is', array($this, '_sanitize_naughty_html'), $str); + + /* + * Sanitize naughty scripting elements + * + * Similar to above, only instead of looking for + * tags it looks for PHP and JavaScript commands + * that are disallowed. Rather than removing the + * code, it simply converts the parenthesis to entities + * rendering the code un-executable. + * + * For example: eval('some code') + * Becomes: eval&#40;'some code'&#41; + */ + $str = preg_replace('#(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si', "\\1\\2&#40;\\3&#41;", $str); + + + // Final clean up + // This adds a bit of extra precaution in case + // something got through the above filters + $str = $this->_do_never_allowed($str); + + /* + * Images are Handled in a Special Way + * - Essentially, we want to know that after all of the character + * conversion is done whether any unwanted, likely XSS, code was found. + * If not, we return TRUE, as the image is clean. + * However, if the string post-conversion does not matched the + * string post-removal of XSS, then it fails, as there was unwanted XSS + * code found and removed/changed during processing. + */ + + if ($is_image === TRUE) + { + return ($str == $converted_string) ? TRUE: FALSE; + } + + log_message('debug', "XSS Filtering completed"); + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Random Hash for protecting URLs + * + * @return string + */ + public function xss_hash() + { + if ($this->_xss_hash == '') + { + mt_srand(); + $this->_xss_hash = md5(time() + mt_rand(0, 1999999999)); + } + + return $this->_xss_hash; + } + + // -------------------------------------------------------------------- + + /** + * HTML Entities Decode + * + * This function is a replacement for html_entity_decode() + * + * The reason we are not using html_entity_decode() by itself is because + * while it is not technically correct to leave out the semicolon + * at the end of an entity most browsers will still interpret the entity + * correctly. html_entity_decode() does not convert entities without + * semicolons, so we are left with our own little solution here. Bummer. + * + * @param string + * @param string + * @return string + */ + public function entity_decode($str, $charset='UTF-8') + { + if (stristr($str, '&') === FALSE) + { + return $str; + } + + $str = html_entity_decode($str, ENT_COMPAT, $charset); + $str = preg_replace('~&#x(0*[0-9a-f]{2,5})~ei', 'chr(hexdec("\\1"))', $str); + return preg_replace('~&#([0-9]{2,4})~e', 'chr(\\1)', $str); + } + + // -------------------------------------------------------------------- + + /** + * Filename Security + * + * @param string + * @param bool + * @return string + */ + public function sanitize_filename($str, $relative_path = FALSE) + { + $bad = array( + "../", + "<!--", + "-->", + "<", + ">", + "'", + '"', + '&', + '$', + '#', + '{', + '}', + '[', + ']', + '=', + ';', + '?', + "%20", + "%22", + "%3c", // < + "%253c", // < + "%3e", // > + "%0e", // > + "%28", // ( + "%29", // ) + "%2528", // ( + "%26", // & + "%24", // $ + "%3f", // ? + "%3b", // ; + "%3d" // = + ); + + if ( ! $relative_path) + { + $bad[] = './'; + $bad[] = '/'; + } + + $str = remove_invisible_characters($str, FALSE); + return stripslashes(str_replace($bad, '', $str)); + } + + // ---------------------------------------------------------------- + + /** + * Compact Exploded Words + * + * Callback function for xss_clean() to remove whitespace from + * things like j a v a s c r i p t + * + * @param type + * @return type + */ + protected function _compact_exploded_words($matches) + { + return preg_replace('/\s+/s', '', $matches[1]).$matches[2]; + } + + // -------------------------------------------------------------------- + + /* + * Remove Evil HTML Attributes (like evenhandlers and style) + * + * It removes the evil attribute and either: + * - Everything up until a space + * For example, everything between the pipes: + * <a |style=document.write('hello');alert('world');| class=link> + * - Everything inside the quotes + * For example, everything between the pipes: + * <a |style="document.write('hello'); alert('world');"| class="link"> + * + * @param string $str The string to check + * @param boolean $is_image TRUE if this is an image + * @return string The string with the evil attributes removed + */ + protected function _remove_evil_attributes($str, $is_image) + { + // All javascript event handlers (e.g. onload, onclick, onmouseover), style, and xmlns + $evil_attributes = array('on\w*', 'style', 'xmlns', 'formaction'); + + if ($is_image === TRUE) + { + /* + * Adobe Photoshop puts XML metadata into JFIF images, + * including namespacing, so we have to allow this for images. + */ + unset($evil_attributes[array_search('xmlns', $evil_attributes)]); + } + + do { + $count = 0; + $attribs = array(); + + // find occurrences of illegal attribute strings with quotes (042 and 047 are octal quotes) + preg_match_all('/('.implode('|', $evil_attributes).')\s*=\s*(\042|\047)([^\\2]*?)(\\2)/is', $str, $matches, PREG_SET_ORDER); + + foreach ($matches as $attr) + { + $attribs[] = preg_quote($attr[0], '/'); + } + + // find occurrences of illegal attribute strings without quotes + preg_match_all('/('.implode('|', $evil_attributes).')\s*=\s*([^\s>]*)/is', $str, $matches, PREG_SET_ORDER); + + foreach ($matches as $attr) + { + $attribs[] = preg_quote($attr[0], '/'); + } + + // replace illegal attribute strings that are inside an html tag + if (count($attribs) > 0) + { + $str = preg_replace('/(<?)(\/?[^><]+?)([^A-Za-z<>\-])(.*?)('.implode('|', $attribs).')(.*?)([\s><]?)([><]*)/i', '$1$2 $4$6$7$8', $str, -1, $count); + } + + } while ($count); + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Sanitize Naughty HTML + * + * Callback function for xss_clean() to remove naughty HTML elements + * + * @param array + * @return string + */ + protected function _sanitize_naughty_html($matches) + { + // encode opening brace + $str = '&lt;'.$matches[1].$matches[2].$matches[3]; + + // encode captured opening or closing brace to prevent recursive vectors + $str .= str_replace(array('>', '<'), array('&gt;', '&lt;'), + $matches[4]); + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * JS Link Removal + * + * Callback function for xss_clean() to sanitize links + * This limits the PCRE backtracks, making it more performance friendly + * and prevents PREG_BACKTRACK_LIMIT_ERROR from being triggered in + * PHP 5.2+ on link-heavy strings + * + * @param array + * @return string + */ + protected function _js_link_removal($match) + { + return str_replace( + $match[1], + preg_replace( + '#href=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|<script|<xss|data\s*:)#si', + '', + $this->_filter_attributes(str_replace(array('<', '>'), '', $match[1])) + ), + $match[0] + ); + } + + // -------------------------------------------------------------------- + + /** + * JS Image Removal + * + * Callback function for xss_clean() to sanitize image tags + * This limits the PCRE backtracks, making it more performance friendly + * and prevents PREG_BACKTRACK_LIMIT_ERROR from being triggered in + * PHP 5.2+ on image tag heavy strings + * + * @param array + * @return string + */ + protected function _js_img_removal($match) + { + return str_replace( + $match[1], + preg_replace( + '#src=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|<script|<xss|base64\s*,)#si', + '', + $this->_filter_attributes(str_replace(array('<', '>'), '', $match[1])) + ), + $match[0] + ); + } + + // -------------------------------------------------------------------- + + /** + * Attribute Conversion + * + * Used as a callback for XSS Clean + * + * @param array + * @return string + */ + protected function _convert_attribute($match) + { + return str_replace(array('>', '<', '\\'), array('&gt;', '&lt;', '\\\\'), $match[0]); + } + + // -------------------------------------------------------------------- + + /** + * Filter Attributes + * + * Filters tag attributes for consistency and safety + * + * @param string + * @return string + */ + protected function _filter_attributes($str) + { + $out = ''; + + if (preg_match_all('#\s*[a-z\-]+\s*=\s*(\042|\047)([^\\1]*?)\\1#is', $str, $matches)) + { + foreach ($matches[0] as $match) + { + $out .= preg_replace("#/\*.*?\*/#s", '', $match); + } + } + + return $out; + } + + // -------------------------------------------------------------------- + + /** + * HTML Entity Decode Callback + * + * Used as a callback for XSS Clean + * + * @param array + * @return string + */ + protected function _decode_entity($match) + { + return $this->entity_decode($match[0], strtoupper(config_item('charset'))); + } + + // -------------------------------------------------------------------- + + /** + * Validate URL entities + * + * Called by xss_clean() + * + * @param string + * @return string + */ + protected function _validate_entities($str) + { + /* + * Protect GET variables in URLs + */ + + // 901119URL5918AMP18930PROTECT8198 + + $str = preg_replace('|\&([a-z\_0-9\-]+)\=([a-z\_0-9\-]+)|i', $this->xss_hash()."\\1=\\2", $str); + + /* + * Validate standard character entities + * + * Add a semicolon if missing. We do this to enable + * the conversion of entities to ASCII later. + * + */ + $str = preg_replace('#(&\#?[0-9a-z]{2,})([\x00-\x20])*;?#i', "\\1;\\2", $str); + + /* + * Validate UTF16 two byte encoding (x00) + * + * Just as above, adds a semicolon if missing. + * + */ + $str = preg_replace('#(&\#x?)([0-9A-F]+);?#i',"\\1\\2;",$str); + + /* + * Un-Protect GET variables in URLs + */ + $str = str_replace($this->xss_hash(), '&', $str); + + return $str; + } + + // ---------------------------------------------------------------------- + + /** + * Do Never Allowed + * + * A utility function for xss_clean() + * + * @param string + * @return string + */ + protected function _do_never_allowed($str) + { + $str = str_replace(array_keys($this->_never_allowed_str), $this->_never_allowed_str, $str); + + foreach ($this->_never_allowed_regex as $regex) + { + $str = preg_replace('#'.$regex.'#is', '[removed]', $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Set Cross Site Request Forgery Protection Cookie + * + * @return string + */ + protected function _csrf_set_hash() + { + if ($this->_csrf_hash == '') + { + // If the cookie exists we will use it's value. + // We don't necessarily want to regenerate it with + // each page load since a page could contain embedded + // sub-pages causing this feature to fail + if (isset($_COOKIE[$this->_csrf_cookie_name]) && + preg_match('#^[0-9a-f]{32}$#iS', $_COOKIE[$this->_csrf_cookie_name]) === 1) + { + return $this->_csrf_hash = $_COOKIE[$this->_csrf_cookie_name]; + } + + return $this->_csrf_hash = md5(uniqid(rand(), TRUE)); + } + + return $this->_csrf_hash; + } + +} + +/* End of file Security.php */ +/* Location: ./system/libraries/Security.php */ diff --git a/system/core/URI.php b/system/core/URI.php new file mode 100755 index 0000000..a3ae20c --- /dev/null +++ b/system/core/URI.php @@ -0,0 +1,654 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * URI Class + * + * Parses URIs and determines routing + * + * @package CodeIgniter + * @subpackage Libraries + * @category URI + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/uri.html + */ +class CI_URI { + + /** + * List of cached uri segments + * + * @var array + * @access public + */ + var $keyval = array(); + /** + * Current uri string + * + * @var string + * @access public + */ + var $uri_string; + /** + * List of uri segments + * + * @var array + * @access public + */ + var $segments = array(); + /** + * Re-indexed list of uri segments + * Starts at 1 instead of 0 + * + * @var array + * @access public + */ + var $rsegments = array(); + + /** + * Constructor + * + * Simply globalizes the $RTR object. The front + * loads the Router class early on so it's not available + * normally as other classes are. + * + * @access public + */ + function __construct() + { + $this->config =& load_class('Config', 'core'); + log_message('debug', "URI Class Initialized"); + } + + + // -------------------------------------------------------------------- + + /** + * Get the URI String + * + * @access private + * @return string + */ + function _fetch_uri_string() + { + if (strtoupper($this->config->item('uri_protocol')) == 'AUTO') + { + // Is the request coming from the command line? + if (php_sapi_name() == 'cli' or defined('STDIN')) + { + $this->_set_uri_string($this->_parse_cli_args()); + return; + } + + // Let's try the REQUEST_URI first, this will work in most situations + if ($uri = $this->_detect_uri()) + { + $this->_set_uri_string($uri); + return; + } + + // Is there a PATH_INFO variable? + // Note: some servers seem to have trouble with getenv() so we'll test it two ways + $path = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : @getenv('PATH_INFO'); + if (trim($path, '/') != '' && $path != "/".SELF) + { + $this->_set_uri_string($path); + return; + } + + // No PATH_INFO?... What about QUERY_STRING? + $path = (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : @getenv('QUERY_STRING'); + if (trim($path, '/') != '') + { + $this->_set_uri_string($path); + return; + } + + // As a last ditch effort lets try using the $_GET array + if (is_array($_GET) && count($_GET) == 1 && trim(key($_GET), '/') != '') + { + $this->_set_uri_string(key($_GET)); + return; + } + + // We've exhausted all our options... + $this->uri_string = ''; + return; + } + + $uri = strtoupper($this->config->item('uri_protocol')); + + if ($uri == 'REQUEST_URI') + { + $this->_set_uri_string($this->_detect_uri()); + return; + } + elseif ($uri == 'CLI') + { + $this->_set_uri_string($this->_parse_cli_args()); + return; + } + + $path = (isset($_SERVER[$uri])) ? $_SERVER[$uri] : @getenv($uri); + $this->_set_uri_string($path); + } + + // -------------------------------------------------------------------- + + /** + * Set the URI String + * + * @access public + * @param string + * @return string + */ + function _set_uri_string($str) + { + // Filter out control characters + $str = remove_invisible_characters($str, FALSE); + + // If the URI contains only a slash we'll kill it + $this->uri_string = ($str == '/') ? '' : $str; + } + + // -------------------------------------------------------------------- + + /** + * Detects the URI + * + * This function will detect the URI automatically and fix the query string + * if necessary. + * + * @access private + * @return string + */ + private function _detect_uri() + { + if ( ! isset($_SERVER['REQUEST_URI']) OR ! isset($_SERVER['SCRIPT_NAME'])) + { + return ''; + } + + $uri = $_SERVER['REQUEST_URI']; + if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0) + { + $uri = substr($uri, strlen($_SERVER['SCRIPT_NAME'])); + } + elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0) + { + $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME']))); + } + + // This section ensures that even on servers that require the URI to be in the query string (Nginx) a correct + // URI is found, and also fixes the QUERY_STRING server var and $_GET array. + if (strncmp($uri, '?/', 2) === 0) + { + $uri = substr($uri, 2); + } + $parts = preg_split('#\?#i', $uri, 2); + $uri = $parts[0]; + if (isset($parts[1])) + { + $_SERVER['QUERY_STRING'] = $parts[1]; + parse_str($_SERVER['QUERY_STRING'], $_GET); + } + else + { + $_SERVER['QUERY_STRING'] = ''; + $_GET = array(); + } + + if ($uri == '/' || empty($uri)) + { + return '/'; + } + + $uri = parse_url($uri, PHP_URL_PATH); + + // Do some final cleaning of the URI and return it + return str_replace(array('//', '../'), '/', trim($uri, '/')); + } + + // -------------------------------------------------------------------- + + /** + * Parse cli arguments + * + * Take each command line argument and assume it is a URI segment. + * + * @access private + * @return string + */ + private function _parse_cli_args() + { + $args = array_slice($_SERVER['argv'], 1); + + return $args ? '/' . implode('/', $args) : ''; + } + + // -------------------------------------------------------------------- + + /** + * Filter segments for malicious characters + * + * @access private + * @param string + * @return string + */ + function _filter_uri($str) + { + if ($str != '' && $this->config->item('permitted_uri_chars') != '' && $this->config->item('enable_query_strings') == FALSE) + { + // preg_quote() in PHP 5.3 escapes -, so the str_replace() and addition of - to preg_quote() is to maintain backwards + // compatibility as many are unaware of how characters in the permitted_uri_chars will be parsed as a regex pattern + if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-'))."]+$|i", $str)) + { + show_error('The URI you submitted has disallowed characters.', 400); + } + } + + // Convert programatic characters to entities + $bad = array('$', '(', ')', '%28', '%29'); + $good = array('&#36;', '&#40;', '&#41;', '&#40;', '&#41;'); + + return str_replace($bad, $good, $str); + } + + // -------------------------------------------------------------------- + + /** + * Remove the suffix from the URL if needed + * + * @access private + * @return void + */ + function _remove_url_suffix() + { + if ($this->config->item('url_suffix') != "") + { + $this->uri_string = preg_replace("|".preg_quote($this->config->item('url_suffix'))."$|", "", $this->uri_string); + } + } + + // -------------------------------------------------------------------- + + /** + * Explode the URI Segments. The individual segments will + * be stored in the $this->segments array. + * + * @access private + * @return void + */ + function _explode_segments() + { + foreach (explode("/", preg_replace("|/*(.+?)/*$|", "\\1", $this->uri_string)) as $val) + { + // Filter segments for security + $val = trim($this->_filter_uri($val)); + + if ($val != '') + { + $this->segments[] = $val; + } + } + } + + // -------------------------------------------------------------------- + /** + * Re-index Segments + * + * This function re-indexes the $this->segment array so that it + * starts at 1 rather than 0. Doing so makes it simpler to + * use functions like $this->uri->segment(n) since there is + * a 1:1 relationship between the segment array and the actual segments. + * + * @access private + * @return void + */ + function _reindex_segments() + { + array_unshift($this->segments, NULL); + array_unshift($this->rsegments, NULL); + unset($this->segments[0]); + unset($this->rsegments[0]); + } + + // -------------------------------------------------------------------- + + /** + * Fetch a URI Segment + * + * This function returns the URI segment based on the number provided. + * + * @access public + * @param integer + * @param bool + * @return string + */ + function segment($n, $no_result = FALSE) + { + return ( ! isset($this->segments[$n])) ? $no_result : $this->segments[$n]; + } + + // -------------------------------------------------------------------- + + /** + * Fetch a URI "routed" Segment + * + * This function returns the re-routed URI segment (assuming routing rules are used) + * based on the number provided. If there is no routing this function returns the + * same result as $this->segment() + * + * @access public + * @param integer + * @param bool + * @return string + */ + function rsegment($n, $no_result = FALSE) + { + return ( ! isset($this->rsegments[$n])) ? $no_result : $this->rsegments[$n]; + } + + // -------------------------------------------------------------------- + + /** + * Generate a key value pair from the URI string + * + * This function generates and associative array of URI data starting + * at the supplied segment. For example, if this is your URI: + * + * example.com/user/search/name/joe/location/UK/gender/male + * + * You can use this function to generate an array with this prototype: + * + * array ( + * name => joe + * location => UK + * gender => male + * ) + * + * @access public + * @param integer the starting segment number + * @param array an array of default values + * @return array + */ + function uri_to_assoc($n = 3, $default = array()) + { + return $this->_uri_to_assoc($n, $default, 'segment'); + } + /** + * Identical to above only it uses the re-routed segment array + * + * @access public + * @param integer the starting segment number + * @param array an array of default values + * @return array + * + */ + function ruri_to_assoc($n = 3, $default = array()) + { + return $this->_uri_to_assoc($n, $default, 'rsegment'); + } + + // -------------------------------------------------------------------- + + /** + * Generate a key value pair from the URI string or Re-routed URI string + * + * @access private + * @param integer the starting segment number + * @param array an array of default values + * @param string which array we should use + * @return array + */ + function _uri_to_assoc($n = 3, $default = array(), $which = 'segment') + { + if ($which == 'segment') + { + $total_segments = 'total_segments'; + $segment_array = 'segment_array'; + } + else + { + $total_segments = 'total_rsegments'; + $segment_array = 'rsegment_array'; + } + + if ( ! is_numeric($n)) + { + return $default; + } + + if (isset($this->keyval[$n])) + { + return $this->keyval[$n]; + } + + if ($this->$total_segments() < $n) + { + if (count($default) == 0) + { + return array(); + } + + $retval = array(); + foreach ($default as $val) + { + $retval[$val] = FALSE; + } + return $retval; + } + + $segments = array_slice($this->$segment_array(), ($n - 1)); + + $i = 0; + $lastval = ''; + $retval = array(); + foreach ($segments as $seg) + { + if ($i % 2) + { + $retval[$lastval] = $seg; + } + else + { + $retval[$seg] = FALSE; + $lastval = $seg; + } + + $i++; + } + + if (count($default) > 0) + { + foreach ($default as $val) + { + if ( ! array_key_exists($val, $retval)) + { + $retval[$val] = FALSE; + } + } + } + + // Cache the array for reuse + $this->keyval[$n] = $retval; + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Generate a URI string from an associative array + * + * + * @access public + * @param array an associative array of key/values + * @return array + */ + function assoc_to_uri($array) + { + $temp = array(); + foreach ((array)$array as $key => $val) + { + $temp[] = $key; + $temp[] = $val; + } + + return implode('/', $temp); + } + + // -------------------------------------------------------------------- + + /** + * Fetch a URI Segment and add a trailing slash + * + * @access public + * @param integer + * @param string + * @return string + */ + function slash_segment($n, $where = 'trailing') + { + return $this->_slash_segment($n, $where, 'segment'); + } + + // -------------------------------------------------------------------- + + /** + * Fetch a URI Segment and add a trailing slash + * + * @access public + * @param integer + * @param string + * @return string + */ + function slash_rsegment($n, $where = 'trailing') + { + return $this->_slash_segment($n, $where, 'rsegment'); + } + + // -------------------------------------------------------------------- + + /** + * Fetch a URI Segment and add a trailing slash - helper function + * + * @access private + * @param integer + * @param string + * @param string + * @return string + */ + function _slash_segment($n, $where = 'trailing', $which = 'segment') + { + $leading = '/'; + $trailing = '/'; + + if ($where == 'trailing') + { + $leading = ''; + } + elseif ($where == 'leading') + { + $trailing = ''; + } + + return $leading.$this->$which($n).$trailing; + } + + // -------------------------------------------------------------------- + + /** + * Segment Array + * + * @access public + * @return array + */ + function segment_array() + { + return $this->segments; + } + + // -------------------------------------------------------------------- + + /** + * Routed Segment Array + * + * @access public + * @return array + */ + function rsegment_array() + { + return $this->rsegments; + } + + // -------------------------------------------------------------------- + + /** + * Total number of segments + * + * @access public + * @return integer + */ + function total_segments() + { + return count($this->segments); + } + + // -------------------------------------------------------------------- + + /** + * Total number of routed segments + * + * @access public + * @return integer + */ + function total_rsegments() + { + return count($this->rsegments); + } + + // -------------------------------------------------------------------- + + /** + * Fetch the entire URI string + * + * @access public + * @return string + */ + function uri_string() + { + return $this->uri_string; + } + + + // -------------------------------------------------------------------- + + /** + * Fetch the entire Re-routed URI string + * + * @access public + * @return string + */ + function ruri_string() + { + return '/'.implode('/', $this->rsegment_array()); + } + +} +// END URI Class + +/* End of file URI.php */ +/* Location: ./system/core/URI.php */ \ No newline at end of file diff --git a/system/core/Utf8.php b/system/core/Utf8.php new file mode 100755 index 0000000..2a27d1f --- /dev/null +++ b/system/core/Utf8.php @@ -0,0 +1,165 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 2.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Utf8 Class + * + * Provides support for UTF-8 environments + * + * @package CodeIgniter + * @subpackage Libraries + * @category UTF-8 + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/utf8.html + */ +class CI_Utf8 { + + /** + * Constructor + * + * Determines if UTF-8 support is to be enabled + * + */ + function __construct() + { + log_message('debug', "Utf8 Class Initialized"); + + global $CFG; + + if ( + preg_match('/./u', 'é') === 1 // PCRE must support UTF-8 + AND function_exists('iconv') // iconv must be installed + AND ini_get('mbstring.func_overload') != 1 // Multibyte string function overloading cannot be enabled + AND $CFG->item('charset') == 'UTF-8' // Application charset must be UTF-8 + ) + { + log_message('debug', "UTF-8 Support Enabled"); + + define('UTF8_ENABLED', TRUE); + + // set internal encoding for multibyte string functions if necessary + // and set a flag so we don't have to repeatedly use extension_loaded() + // or function_exists() + if (extension_loaded('mbstring')) + { + define('MB_ENABLED', TRUE); + mb_internal_encoding('UTF-8'); + } + else + { + define('MB_ENABLED', FALSE); + } + } + else + { + log_message('debug', "UTF-8 Support Disabled"); + define('UTF8_ENABLED', FALSE); + } + } + + // -------------------------------------------------------------------- + + /** + * Clean UTF-8 strings + * + * Ensures strings are UTF-8 + * + * @access public + * @param string + * @return string + */ + function clean_string($str) + { + if ($this->_is_ascii($str) === FALSE) + { + $str = @iconv('UTF-8', 'UTF-8//IGNORE', $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Remove ASCII control characters + * + * Removes all ASCII control characters except horizontal tabs, + * line feeds, and carriage returns, as all others can cause + * problems in XML + * + * @access public + * @param string + * @return string + */ + function safe_ascii_for_xml($str) + { + return remove_invisible_characters($str, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Convert to UTF-8 + * + * Attempts to convert a string to UTF-8 + * + * @access public + * @param string + * @param string - input encoding + * @return string + */ + function convert_to_utf8($str, $encoding) + { + if (function_exists('iconv')) + { + $str = @iconv($encoding, 'UTF-8', $str); + } + elseif (function_exists('mb_convert_encoding')) + { + $str = @mb_convert_encoding($str, 'UTF-8', $encoding); + } + else + { + return FALSE; + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Is ASCII? + * + * Tests if a string is standard 7-bit ASCII or not + * + * @access public + * @param string + * @return bool + */ + function _is_ascii($str) + { + return (preg_match('/[^\x00-\x7F]/S', $str) == 0); + } + + // -------------------------------------------------------------------- + +} +// End Utf8 Class + +/* End of file Utf8.php */ +/* Location: ./system/core/Utf8.php */ \ No newline at end of file diff --git a/system/core/index.html b/system/core/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/core/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/DB.php b/system/database/DB.php new file mode 100755 index 0000000..8314d3b --- /dev/null +++ b/system/database/DB.php @@ -0,0 +1,162 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Initialize the database + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + * @param string + * @param bool Determines if active record should be used or not + */ +function &DB($params = '', $active_record_override = NULL) +{ + // Load the DB config file if a DSN string wasn't passed + if (is_string($params) AND strpos($params, '://') === FALSE) + { + // Is the config file in the environment folder? + if ( ! defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/database.php')) + { + if ( ! file_exists($file_path = APPPATH.'config/database.php')) + { + show_error('The configuration file database.php does not exist.'); + } + } + + include($file_path); + + if ( ! isset($db) OR count($db) == 0) + { + show_error('No database connection settings were found in the database config file.'); + } + + if ($params != '') + { + $active_group = $params; + } + + if ( ! isset($active_group) OR ! isset($db[$active_group])) + { + show_error('You have specified an invalid database connection group.'); + } + + $params = $db[$active_group]; + } + elseif (is_string($params)) + { + + /* parse the URL from the DSN string + * Database settings can be passed as discreet + * parameters or as a data source name in the first + * parameter. DSNs must have this prototype: + * $dsn = 'driver://username:password@hostname/database'; + */ + + if (($dns = @parse_url($params)) === FALSE) + { + show_error('Invalid DB Connection String'); + } + + $params = array( + 'dbdriver' => $dns['scheme'], + 'hostname' => (isset($dns['host'])) ? rawurldecode($dns['host']) : '', + 'username' => (isset($dns['user'])) ? rawurldecode($dns['user']) : '', + 'password' => (isset($dns['pass'])) ? rawurldecode($dns['pass']) : '', + 'database' => (isset($dns['path'])) ? rawurldecode(substr($dns['path'], 1)) : '' + ); + + // were additional config items set? + if (isset($dns['query'])) + { + parse_str($dns['query'], $extra); + + foreach ($extra as $key => $val) + { + // booleans please + if (strtoupper($val) == "TRUE") + { + $val = TRUE; + } + elseif (strtoupper($val) == "FALSE") + { + $val = FALSE; + } + + $params[$key] = $val; + } + } + } + + // No DB specified yet? Beat them senseless... + if ( ! isset($params['dbdriver']) OR $params['dbdriver'] == '') + { + show_error('You have not selected a database type to connect to.'); + } + + // Load the DB classes. Note: Since the active record class is optional + // we need to dynamically create a class that extends proper parent class + // based on whether we're using the active record class or not. + // Kudos to Paul for discovering this clever use of eval() + + if ($active_record_override !== NULL) + { + $active_record = $active_record_override; + } + + require_once(BASEPATH.'database/DB_driver.php'); + + if ( ! isset($active_record) OR $active_record == TRUE) + { + require_once(BASEPATH.'database/DB_active_rec.php'); + + if ( ! class_exists('CI_DB')) + { + eval('class CI_DB extends CI_DB_active_record { }'); + } + } + else + { + if ( ! class_exists('CI_DB')) + { + eval('class CI_DB extends CI_DB_driver { }'); + } + } + + require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php'); + + // Instantiate the DB adapter + $driver = 'CI_DB_'.$params['dbdriver'].'_driver'; + $DB = new $driver($params); + + if ($DB->autoinit == TRUE) + { + $DB->initialize(); + } + + if (isset($params['stricton']) && $params['stricton'] == TRUE) + { + $DB->query('SET SESSION sql_mode="STRICT_ALL_TABLES"'); + } + + return $DB; +} + + + +/* End of file DB.php */ +/* Location: ./system/database/DB.php */ \ No newline at end of file diff --git a/system/database/DB_active_rec.php b/system/database/DB_active_rec.php new file mode 100755 index 0000000..129eaa7 --- /dev/null +++ b/system/database/DB_active_rec.php @@ -0,0 +1,2045 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Active Record Class + * + * This is the platform-independent base Active Record implementation class. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_active_record extends CI_DB_driver { + + var $ar_select = array(); + var $ar_distinct = FALSE; + var $ar_from = array(); + var $ar_join = array(); + var $ar_where = array(); + var $ar_like = array(); + var $ar_groupby = array(); + var $ar_having = array(); + var $ar_keys = array(); + var $ar_limit = FALSE; + var $ar_offset = FALSE; + var $ar_order = FALSE; + var $ar_orderby = array(); + var $ar_set = array(); + var $ar_wherein = array(); + var $ar_aliased_tables = array(); + var $ar_store_array = array(); + + // Active Record Caching variables + var $ar_caching = FALSE; + var $ar_cache_exists = array(); + var $ar_cache_select = array(); + var $ar_cache_from = array(); + var $ar_cache_join = array(); + var $ar_cache_where = array(); + var $ar_cache_like = array(); + var $ar_cache_groupby = array(); + var $ar_cache_having = array(); + var $ar_cache_orderby = array(); + var $ar_cache_set = array(); + + var $ar_no_escape = array(); + var $ar_cache_no_escape = array(); + + // -------------------------------------------------------------------- + + /** + * Select + * + * Generates the SELECT portion of the query + * + * @param string + * @return object + */ + public function select($select = '*', $escape = NULL) + { + if (is_string($select)) + { + $select = explode(',', $select); + } + + foreach ($select as $val) + { + $val = trim($val); + + if ($val != '') + { + $this->ar_select[] = $val; + $this->ar_no_escape[] = $escape; + + if ($this->ar_caching === TRUE) + { + $this->ar_cache_select[] = $val; + $this->ar_cache_exists[] = 'select'; + $this->ar_cache_no_escape[] = $escape; + } + } + } + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Select Max + * + * Generates a SELECT MAX(field) portion of a query + * + * @param string the field + * @param string an alias + * @return object + */ + public function select_max($select = '', $alias = '') + { + return $this->_max_min_avg_sum($select, $alias, 'MAX'); + } + + // -------------------------------------------------------------------- + + /** + * Select Min + * + * Generates a SELECT MIN(field) portion of a query + * + * @param string the field + * @param string an alias + * @return object + */ + public function select_min($select = '', $alias = '') + { + return $this->_max_min_avg_sum($select, $alias, 'MIN'); + } + + // -------------------------------------------------------------------- + + /** + * Select Average + * + * Generates a SELECT AVG(field) portion of a query + * + * @param string the field + * @param string an alias + * @return object + */ + public function select_avg($select = '', $alias = '') + { + return $this->_max_min_avg_sum($select, $alias, 'AVG'); + } + + // -------------------------------------------------------------------- + + /** + * Select Sum + * + * Generates a SELECT SUM(field) portion of a query + * + * @param string the field + * @param string an alias + * @return object + */ + public function select_sum($select = '', $alias = '') + { + return $this->_max_min_avg_sum($select, $alias, 'SUM'); + } + + // -------------------------------------------------------------------- + + /** + * Processing Function for the four functions above: + * + * select_max() + * select_min() + * select_avg() + * select_sum() + * + * @param string the field + * @param string an alias + * @return object + */ + protected function _max_min_avg_sum($select = '', $alias = '', $type = 'MAX') + { + if ( ! is_string($select) OR $select == '') + { + $this->display_error('db_invalid_query'); + } + + $type = strtoupper($type); + + if ( ! in_array($type, array('MAX', 'MIN', 'AVG', 'SUM'))) + { + show_error('Invalid function type: '.$type); + } + + if ($alias == '') + { + $alias = $this->_create_alias_from_table(trim($select)); + } + + $sql = $type.'('.$this->_protect_identifiers(trim($select)).') AS '.$alias; + + $this->ar_select[] = $sql; + + if ($this->ar_caching === TRUE) + { + $this->ar_cache_select[] = $sql; + $this->ar_cache_exists[] = 'select'; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Determines the alias name based on the table + * + * @param string + * @return string + */ + protected function _create_alias_from_table($item) + { + if (strpos($item, '.') !== FALSE) + { + return end(explode('.', $item)); + } + + return $item; + } + + // -------------------------------------------------------------------- + + /** + * DISTINCT + * + * Sets a flag which tells the query string compiler to add DISTINCT + * + * @param bool + * @return object + */ + public function distinct($val = TRUE) + { + $this->ar_distinct = (is_bool($val)) ? $val : TRUE; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * From + * + * Generates the FROM portion of the query + * + * @param mixed can be a string or array + * @return object + */ + public function from($from) + { + foreach ((array) $from as $val) + { + if (strpos($val, ',') !== FALSE) + { + foreach (explode(',', $val) as $v) + { + $v = trim($v); + $this->_track_aliases($v); + + $this->ar_from[] = $this->_protect_identifiers($v, TRUE, NULL, FALSE); + + if ($this->ar_caching === TRUE) + { + $this->ar_cache_from[] = $this->_protect_identifiers($v, TRUE, NULL, FALSE); + $this->ar_cache_exists[] = 'from'; + } + } + + } + else + { + $val = trim($val); + + // Extract any aliases that might exist. We use this information + // in the _protect_identifiers to know whether to add a table prefix + $this->_track_aliases($val); + + $this->ar_from[] = $this->_protect_identifiers($val, TRUE, NULL, FALSE); + + if ($this->ar_caching === TRUE) + { + $this->ar_cache_from[] = $this->_protect_identifiers($val, TRUE, NULL, FALSE); + $this->ar_cache_exists[] = 'from'; + } + } + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Join + * + * Generates the JOIN portion of the query + * + * @param string + * @param string the join condition + * @param string the type of join + * @return object + */ + public function join($table, $cond, $type = '') + { + if ($type != '') + { + $type = strtoupper(trim($type)); + + if ( ! in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER'))) + { + $type = ''; + } + else + { + $type .= ' '; + } + } + + // Extract any aliases that might exist. We use this information + // in the _protect_identifiers to know whether to add a table prefix + $this->_track_aliases($table); + + // Strip apart the condition and protect the identifiers + if (preg_match('/([\w\.]+)([\W\s]+)(.+)/', $cond, $match)) + { + $match[1] = $this->_protect_identifiers($match[1]); + $match[3] = $this->_protect_identifiers($match[3]); + + $cond = $match[1].$match[2].$match[3]; + } + + // Assemble the JOIN statement + $join = $type.'JOIN '.$this->_protect_identifiers($table, TRUE, NULL, FALSE).' ON '.$cond; + + $this->ar_join[] = $join; + if ($this->ar_caching === TRUE) + { + $this->ar_cache_join[] = $join; + $this->ar_cache_exists[] = 'join'; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Where + * + * Generates the WHERE portion of the query. Separates + * multiple calls with AND + * + * @param mixed + * @param mixed + * @return object + */ + public function where($key, $value = NULL, $escape = TRUE) + { + return $this->_where($key, $value, 'AND ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR Where + * + * Generates the WHERE portion of the query. Separates + * multiple calls with OR + * + * @param mixed + * @param mixed + * @return object + */ + public function or_where($key, $value = NULL, $escape = TRUE) + { + return $this->_where($key, $value, 'OR ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * Where + * + * Called by where() or or_where() + * + * @param mixed + * @param mixed + * @param string + * @return object + */ + protected function _where($key, $value = NULL, $type = 'AND ', $escape = NULL) + { + if ( ! is_array($key)) + { + $key = array($key => $value); + } + + // If the escape value was not set will will base it on the global setting + if ( ! is_bool($escape)) + { + $escape = $this->_protect_identifiers; + } + + foreach ($key as $k => $v) + { + $prefix = (count($this->ar_where) == 0 AND count($this->ar_cache_where) == 0) ? '' : $type; + + if (is_null($v) && ! $this->_has_operator($k)) + { + // value appears not to have been set, assign the test to IS NULL + $k .= ' IS NULL'; + } + + if ( ! is_null($v)) + { + if ($escape === TRUE) + { + $k = $this->_protect_identifiers($k, FALSE, $escape); + + $v = ' '.$this->escape($v); + } + + if ( ! $this->_has_operator($k)) + { + $k .= ' = '; + } + } + else + { + $k = $this->_protect_identifiers($k, FALSE, $escape); + } + + $this->ar_where[] = $prefix.$k.$v; + + if ($this->ar_caching === TRUE) + { + $this->ar_cache_where[] = $prefix.$k.$v; + $this->ar_cache_exists[] = 'where'; + } + + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Where_in + * + * Generates a WHERE field IN ('item', 'item') SQL query joined with + * AND if appropriate + * + * @param string The field to search + * @param array The values searched on + * @return object + */ + public function where_in($key = NULL, $values = NULL) + { + return $this->_where_in($key, $values); + } + + // -------------------------------------------------------------------- + + /** + * Where_in_or + * + * Generates a WHERE field IN ('item', 'item') SQL query joined with + * OR if appropriate + * + * @param string The field to search + * @param array The values searched on + * @return object + */ + public function or_where_in($key = NULL, $values = NULL) + { + return $this->_where_in($key, $values, FALSE, 'OR '); + } + + // -------------------------------------------------------------------- + + /** + * Where_not_in + * + * Generates a WHERE field NOT IN ('item', 'item') SQL query joined + * with AND if appropriate + * + * @param string The field to search + * @param array The values searched on + * @return object + */ + public function where_not_in($key = NULL, $values = NULL) + { + return $this->_where_in($key, $values, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Where_not_in_or + * + * Generates a WHERE field NOT IN ('item', 'item') SQL query joined + * with OR if appropriate + * + * @param string The field to search + * @param array The values searched on + * @return object + */ + public function or_where_not_in($key = NULL, $values = NULL) + { + return $this->_where_in($key, $values, TRUE, 'OR '); + } + + // -------------------------------------------------------------------- + + /** + * Where_in + * + * Called by where_in, where_in_or, where_not_in, where_not_in_or + * + * @param string The field to search + * @param array The values searched on + * @param boolean If the statement would be IN or NOT IN + * @param string + * @return object + */ + protected function _where_in($key = NULL, $values = NULL, $not = FALSE, $type = 'AND ') + { + if ($key === NULL OR $values === NULL) + { + return; + } + + if ( ! is_array($values)) + { + $values = array($values); + } + + $not = ($not) ? ' NOT' : ''; + + foreach ($values as $value) + { + $this->ar_wherein[] = $this->escape($value); + } + + $prefix = (count($this->ar_where) == 0) ? '' : $type; + + $where_in = $prefix . $this->_protect_identifiers($key) . $not . " IN (" . implode(", ", $this->ar_wherein) . ") "; + + $this->ar_where[] = $where_in; + if ($this->ar_caching === TRUE) + { + $this->ar_cache_where[] = $where_in; + $this->ar_cache_exists[] = 'where'; + } + + // reset the array for multiple calls + $this->ar_wherein = array(); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Like + * + * Generates a %LIKE% portion of the query. Separates + * multiple calls with AND + * + * @param mixed + * @param mixed + * @return object + */ + public function like($field, $match = '', $side = 'both') + { + return $this->_like($field, $match, 'AND ', $side); + } + + // -------------------------------------------------------------------- + + /** + * Not Like + * + * Generates a NOT LIKE portion of the query. Separates + * multiple calls with AND + * + * @param mixed + * @param mixed + * @return object + */ + public function not_like($field, $match = '', $side = 'both') + { + return $this->_like($field, $match, 'AND ', $side, 'NOT'); + } + + // -------------------------------------------------------------------- + + /** + * OR Like + * + * Generates a %LIKE% portion of the query. Separates + * multiple calls with OR + * + * @param mixed + * @param mixed + * @return object + */ + public function or_like($field, $match = '', $side = 'both') + { + return $this->_like($field, $match, 'OR ', $side); + } + + // -------------------------------------------------------------------- + + /** + * OR Not Like + * + * Generates a NOT LIKE portion of the query. Separates + * multiple calls with OR + * + * @param mixed + * @param mixed + * @return object + */ + public function or_not_like($field, $match = '', $side = 'both') + { + return $this->_like($field, $match, 'OR ', $side, 'NOT'); + } + + // -------------------------------------------------------------------- + + /** + * Like + * + * Called by like() or orlike() + * + * @param mixed + * @param mixed + * @param string + * @return object + */ + protected function _like($field, $match = '', $type = 'AND ', $side = 'both', $not = '') + { + if ( ! is_array($field)) + { + $field = array($field => $match); + } + + foreach ($field as $k => $v) + { + $k = $this->_protect_identifiers($k); + + $prefix = (count($this->ar_like) == 0) ? '' : $type; + + $v = $this->escape_like_str($v); + + if ($side == 'none') + { + $like_statement = $prefix." $k $not LIKE '{$v}'"; + } + elseif ($side == 'before') + { + $like_statement = $prefix." $k $not LIKE '%{$v}'"; + } + elseif ($side == 'after') + { + $like_statement = $prefix." $k $not LIKE '{$v}%'"; + } + else + { + $like_statement = $prefix." $k $not LIKE '%{$v}%'"; + } + + // some platforms require an escape sequence definition for LIKE wildcards + if ($this->_like_escape_str != '') + { + $like_statement = $like_statement.sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + $this->ar_like[] = $like_statement; + if ($this->ar_caching === TRUE) + { + $this->ar_cache_like[] = $like_statement; + $this->ar_cache_exists[] = 'like'; + } + + } + return $this; + } + + // -------------------------------------------------------------------- + + /** + * GROUP BY + * + * @param string + * @return object + */ + public function group_by($by) + { + if (is_string($by)) + { + $by = explode(',', $by); + } + + foreach ($by as $val) + { + $val = trim($val); + + if ($val != '') + { + $this->ar_groupby[] = $this->_protect_identifiers($val); + + if ($this->ar_caching === TRUE) + { + $this->ar_cache_groupby[] = $this->_protect_identifiers($val); + $this->ar_cache_exists[] = 'groupby'; + } + } + } + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Sets the HAVING value + * + * Separates multiple calls with AND + * + * @param string + * @param string + * @return object + */ + public function having($key, $value = '', $escape = TRUE) + { + return $this->_having($key, $value, 'AND ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * Sets the OR HAVING value + * + * Separates multiple calls with OR + * + * @param string + * @param string + * @return object + */ + public function or_having($key, $value = '', $escape = TRUE) + { + return $this->_having($key, $value, 'OR ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * Sets the HAVING values + * + * Called by having() or or_having() + * + * @param string + * @param string + * @return object + */ + protected function _having($key, $value = '', $type = 'AND ', $escape = TRUE) + { + if ( ! is_array($key)) + { + $key = array($key => $value); + } + + foreach ($key as $k => $v) + { + $prefix = (count($this->ar_having) == 0) ? '' : $type; + + if ($escape === TRUE) + { + $k = $this->_protect_identifiers($k); + } + + if ( ! $this->_has_operator($k)) + { + $k .= ' = '; + } + + if ($v != '') + { + $v = ' '.$this->escape($v); + } + + $this->ar_having[] = $prefix.$k.$v; + if ($this->ar_caching === TRUE) + { + $this->ar_cache_having[] = $prefix.$k.$v; + $this->ar_cache_exists[] = 'having'; + } + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Sets the ORDER BY value + * + * @param string + * @param string direction: asc or desc + * @return object + */ + public function order_by($orderby, $direction = '') + { + if (strtolower($direction) == 'random') + { + $orderby = ''; // Random results want or don't need a field name + $direction = $this->_random_keyword; + } + elseif (trim($direction) != '') + { + $direction = (in_array(strtoupper(trim($direction)), array('ASC', 'DESC'), TRUE)) ? ' '.$direction : ' ASC'; + } + + + if (strpos($orderby, ',') !== FALSE) + { + $temp = array(); + foreach (explode(',', $orderby) as $part) + { + $part = trim($part); + if ( ! in_array($part, $this->ar_aliased_tables)) + { + $part = $this->_protect_identifiers(trim($part)); + } + + $temp[] = $part; + } + + $orderby = implode(', ', $temp); + } + else if ($direction != $this->_random_keyword) + { + $orderby = $this->_protect_identifiers($orderby); + } + + $orderby_statement = $orderby.$direction; + + $this->ar_orderby[] = $orderby_statement; + if ($this->ar_caching === TRUE) + { + $this->ar_cache_orderby[] = $orderby_statement; + $this->ar_cache_exists[] = 'orderby'; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Sets the LIMIT value + * + * @param integer the limit value + * @param integer the offset value + * @return object + */ + public function limit($value, $offset = '') + { + $this->ar_limit = (int) $value; + + if ($offset != '') + { + $this->ar_offset = (int) $offset; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Sets the OFFSET value + * + * @param integer the offset value + * @return object + */ + public function offset($offset) + { + $this->ar_offset = $offset; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * The "set" function. Allows key/value pairs to be set for inserting or updating + * + * @param mixed + * @param string + * @param boolean + * @return object + */ + public function set($key, $value = '', $escape = TRUE) + { + $key = $this->_object_to_array($key); + + if ( ! is_array($key)) + { + $key = array($key => $value); + } + + foreach ($key as $k => $v) + { + if ($escape === FALSE) + { + $this->ar_set[$this->_protect_identifiers($k)] = $v; + } + else + { + $this->ar_set[$this->_protect_identifiers($k, FALSE, TRUE)] = $this->escape($v); + } + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Get + * + * Compiles the select statement based on the other functions called + * and runs the query + * + * @param string the table + * @param string the limit clause + * @param string the offset clause + * @return object + */ + public function get($table = '', $limit = null, $offset = null) + { + if ($table != '') + { + $this->_track_aliases($table); + $this->from($table); + } + + if ( ! is_null($limit)) + { + $this->limit($limit, $offset); + } + + $sql = $this->_compile_select(); + + $result = $this->query($sql); + $this->_reset_select(); + return $result; + } + + /** + * "Count All Results" query + * + * Generates a platform-specific query string that counts all records + * returned by an Active Record query. + * + * @param string + * @return string + */ + public function count_all_results($table = '') + { + if ($table != '') + { + $this->_track_aliases($table); + $this->from($table); + } + + $sql = $this->_compile_select($this->_count_string . $this->_protect_identifiers('numrows')); + + $query = $this->query($sql); + $this->_reset_select(); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * Get_Where + * + * Allows the where clause, limit and offset to be added directly + * + * @param string the where clause + * @param string the limit clause + * @param string the offset clause + * @return object + */ + public function get_where($table = '', $where = null, $limit = null, $offset = null) + { + if ($table != '') + { + $this->from($table); + } + + if ( ! is_null($where)) + { + $this->where($where); + } + + if ( ! is_null($limit)) + { + $this->limit($limit, $offset); + } + + $sql = $this->_compile_select(); + + $result = $this->query($sql); + $this->_reset_select(); + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Insert_Batch + * + * Compiles batch insert strings and runs the queries + * + * @param string the table to retrieve the results from + * @param array an associative array of insert values + * @return object + */ + public function insert_batch($table = '', $set = NULL) + { + if ( ! is_null($set)) + { + $this->set_insert_batch($set); + } + + if (count($this->ar_set) == 0) + { + if ($this->db_debug) + { + //No valid data array. Folds in cases where keys and values did not match up + return $this->display_error('db_must_use_set'); + } + return FALSE; + } + + if ($table == '') + { + if ( ! isset($this->ar_from[0])) + { + if ($this->db_debug) + { + return $this->display_error('db_must_set_table'); + } + return FALSE; + } + + $table = $this->ar_from[0]; + } + + // Batch this baby + for ($i = 0, $total = count($this->ar_set); $i < $total; $i = $i + 100) + { + + $sql = $this->_insert_batch($this->_protect_identifiers($table, TRUE, NULL, FALSE), $this->ar_keys, array_slice($this->ar_set, $i, 100)); + + //echo $sql; + + $this->query($sql); + } + + $this->_reset_write(); + + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * The "set_insert_batch" function. Allows key/value pairs to be set for batch inserts + * + * @param mixed + * @param string + * @param boolean + * @return object + */ + public function set_insert_batch($key, $value = '', $escape = TRUE) + { + $key = $this->_object_to_array_batch($key); + + if ( ! is_array($key)) + { + $key = array($key => $value); + } + + $keys = array_keys(current($key)); + sort($keys); + + foreach ($key as $row) + { + if (count(array_diff($keys, array_keys($row))) > 0 OR count(array_diff(array_keys($row), $keys)) > 0) + { + // batch function above returns an error on an empty array + $this->ar_set[] = array(); + return; + } + + ksort($row); // puts $row in the same order as our keys + + if ($escape === FALSE) + { + $this->ar_set[] = '('.implode(',', $row).')'; + } + else + { + $clean = array(); + + foreach ($row as $value) + { + $clean[] = $this->escape($value); + } + + $this->ar_set[] = '('.implode(',', $clean).')'; + } + } + + foreach ($keys as $k) + { + $this->ar_keys[] = $this->_protect_identifiers($k); + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Insert + * + * Compiles an insert string and runs the query + * + * @param string the table to insert data into + * @param array an associative array of insert values + * @return object + */ + function insert($table = '', $set = NULL) + { + if ( ! is_null($set)) + { + $this->set($set); + } + + if (count($this->ar_set) == 0) + { + if ($this->db_debug) + { + return $this->display_error('db_must_use_set'); + } + return FALSE; + } + + if ($table == '') + { + if ( ! isset($this->ar_from[0])) + { + if ($this->db_debug) + { + return $this->display_error('db_must_set_table'); + } + return FALSE; + } + + $table = $this->ar_from[0]; + } + + $sql = $this->_insert($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_keys($this->ar_set), array_values($this->ar_set)); + + $this->_reset_write(); + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Replace + * + * Compiles an replace into string and runs the query + * + * @param string the table to replace data into + * @param array an associative array of insert values + * @return object + */ + public function replace($table = '', $set = NULL) + { + if ( ! is_null($set)) + { + $this->set($set); + } + + if (count($this->ar_set) == 0) + { + if ($this->db_debug) + { + return $this->display_error('db_must_use_set'); + } + return FALSE; + } + + if ($table == '') + { + if ( ! isset($this->ar_from[0])) + { + if ($this->db_debug) + { + return $this->display_error('db_must_set_table'); + } + return FALSE; + } + + $table = $this->ar_from[0]; + } + + $sql = $this->_replace($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_keys($this->ar_set), array_values($this->ar_set)); + + $this->_reset_write(); + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Update + * + * Compiles an update string and runs the query + * + * @param string the table to retrieve the results from + * @param array an associative array of update values + * @param mixed the where clause + * @return object + */ + public function update($table = '', $set = NULL, $where = NULL, $limit = NULL) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + if ( ! is_null($set)) + { + $this->set($set); + } + + if (count($this->ar_set) == 0) + { + if ($this->db_debug) + { + return $this->display_error('db_must_use_set'); + } + return FALSE; + } + + if ($table == '') + { + if ( ! isset($this->ar_from[0])) + { + if ($this->db_debug) + { + return $this->display_error('db_must_set_table'); + } + return FALSE; + } + + $table = $this->ar_from[0]; + } + + if ($where != NULL) + { + $this->where($where); + } + + if ($limit != NULL) + { + $this->limit($limit); + } + + $sql = $this->_update($this->_protect_identifiers($table, TRUE, NULL, FALSE), $this->ar_set, $this->ar_where, $this->ar_orderby, $this->ar_limit); + + $this->_reset_write(); + return $this->query($sql); + } + + + // -------------------------------------------------------------------- + + /** + * Update_Batch + * + * Compiles an update string and runs the query + * + * @param string the table to retrieve the results from + * @param array an associative array of update values + * @param string the where key + * @return object + */ + public function update_batch($table = '', $set = NULL, $index = NULL) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + if (is_null($index)) + { + if ($this->db_debug) + { + return $this->display_error('db_must_use_index'); + } + + return FALSE; + } + + if ( ! is_null($set)) + { + $this->set_update_batch($set, $index); + } + + if (count($this->ar_set) == 0) + { + if ($this->db_debug) + { + return $this->display_error('db_must_use_set'); + } + + return FALSE; + } + + if ($table == '') + { + if ( ! isset($this->ar_from[0])) + { + if ($this->db_debug) + { + return $this->display_error('db_must_set_table'); + } + return FALSE; + } + + $table = $this->ar_from[0]; + } + + // Batch this baby + for ($i = 0, $total = count($this->ar_set); $i < $total; $i = $i + 100) + { + $sql = $this->_update_batch($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_slice($this->ar_set, $i, 100), $this->_protect_identifiers($index), $this->ar_where); + + $this->query($sql); + } + + $this->_reset_write(); + } + + // -------------------------------------------------------------------- + + /** + * The "set_update_batch" function. Allows key/value pairs to be set for batch updating + * + * @param array + * @param string + * @param boolean + * @return object + */ + public function set_update_batch($key, $index = '', $escape = TRUE) + { + $key = $this->_object_to_array_batch($key); + + if ( ! is_array($key)) + { + // @todo error + } + + foreach ($key as $k => $v) + { + $index_set = FALSE; + $clean = array(); + + foreach ($v as $k2 => $v2) + { + if ($k2 == $index) + { + $index_set = TRUE; + } + else + { + $not[] = $k2.'-'.$v2; + } + + if ($escape === FALSE) + { + $clean[$this->_protect_identifiers($k2)] = $v2; + } + else + { + $clean[$this->_protect_identifiers($k2)] = $this->escape($v2); + } + } + + if ($index_set == FALSE) + { + return $this->display_error('db_batch_missing_index'); + } + + $this->ar_set[] = $clean; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Empty Table + * + * Compiles a delete string and runs "DELETE FROM table" + * + * @param string the table to empty + * @return object + */ + public function empty_table($table = '') + { + if ($table == '') + { + if ( ! isset($this->ar_from[0])) + { + if ($this->db_debug) + { + return $this->display_error('db_must_set_table'); + } + return FALSE; + } + + $table = $this->ar_from[0]; + } + else + { + $table = $this->_protect_identifiers($table, TRUE, NULL, FALSE); + } + + $sql = $this->_delete($table); + + $this->_reset_write(); + + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Truncate + * + * Compiles a truncate string and runs the query + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @param string the table to truncate + * @return object + */ + public function truncate($table = '') + { + if ($table == '') + { + if ( ! isset($this->ar_from[0])) + { + if ($this->db_debug) + { + return $this->display_error('db_must_set_table'); + } + return FALSE; + } + + $table = $this->ar_from[0]; + } + else + { + $table = $this->_protect_identifiers($table, TRUE, NULL, FALSE); + } + + $sql = $this->_truncate($table); + + $this->_reset_write(); + + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Delete + * + * Compiles a delete string and runs the query + * + * @param mixed the table(s) to delete from. String or array + * @param mixed the where clause + * @param mixed the limit clause + * @param boolean + * @return object + */ + public function delete($table = '', $where = '', $limit = NULL, $reset_data = TRUE) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + if ($table == '') + { + if ( ! isset($this->ar_from[0])) + { + if ($this->db_debug) + { + return $this->display_error('db_must_set_table'); + } + return FALSE; + } + + $table = $this->ar_from[0]; + } + elseif (is_array($table)) + { + foreach ($table as $single_table) + { + $this->delete($single_table, $where, $limit, FALSE); + } + + $this->_reset_write(); + return; + } + else + { + $table = $this->_protect_identifiers($table, TRUE, NULL, FALSE); + } + + if ($where != '') + { + $this->where($where); + } + + if ($limit != NULL) + { + $this->limit($limit); + } + + if (count($this->ar_where) == 0 && count($this->ar_wherein) == 0 && count($this->ar_like) == 0) + { + if ($this->db_debug) + { + return $this->display_error('db_del_must_use_where'); + } + + return FALSE; + } + + $sql = $this->_delete($table, $this->ar_where, $this->ar_like, $this->ar_limit); + + if ($reset_data) + { + $this->_reset_write(); + } + + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * DB Prefix + * + * Prepends a database prefix if one exists in configuration + * + * @param string the table + * @return string + */ + public function dbprefix($table = '') + { + if ($table == '') + { + $this->display_error('db_table_name_required'); + } + + return $this->dbprefix.$table; + } + + // -------------------------------------------------------------------- + + /** + * Set DB Prefix + * + * Set's the DB Prefix to something new without needing to reconnect + * + * @param string the prefix + * @return string + */ + public function set_dbprefix($prefix = '') + { + return $this->dbprefix = $prefix; + } + + // -------------------------------------------------------------------- + + /** + * Track Aliases + * + * Used to track SQL statements written with aliased tables. + * + * @param string The table to inspect + * @return string + */ + protected function _track_aliases($table) + { + if (is_array($table)) + { + foreach ($table as $t) + { + $this->_track_aliases($t); + } + return; + } + + // Does the string contain a comma? If so, we need to separate + // the string into discreet statements + if (strpos($table, ',') !== FALSE) + { + return $this->_track_aliases(explode(',', $table)); + } + + // if a table alias is used we can recognize it by a space + if (strpos($table, " ") !== FALSE) + { + // if the alias is written with the AS keyword, remove it + $table = preg_replace('/\s+AS\s+/i', ' ', $table); + + // Grab the alias + $table = trim(strrchr($table, " ")); + + // Store the alias, if it doesn't already exist + if ( ! in_array($table, $this->ar_aliased_tables)) + { + $this->ar_aliased_tables[] = $table; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Compile the SELECT statement + * + * Generates a query string based on which functions were used. + * Should not be called directly. The get() function calls it. + * + * @return string + */ + protected function _compile_select($select_override = FALSE) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + // ---------------------------------------------------------------- + + // Write the "select" portion of the query + + if ($select_override !== FALSE) + { + $sql = $select_override; + } + else + { + $sql = ( ! $this->ar_distinct) ? 'SELECT ' : 'SELECT DISTINCT '; + + if (count($this->ar_select) == 0) + { + $sql .= '*'; + } + else + { + // Cycle through the "select" portion of the query and prep each column name. + // The reason we protect identifiers here rather then in the select() function + // is because until the user calls the from() function we don't know if there are aliases + foreach ($this->ar_select as $key => $val) + { + $no_escape = isset($this->ar_no_escape[$key]) ? $this->ar_no_escape[$key] : NULL; + $this->ar_select[$key] = $this->_protect_identifiers($val, FALSE, $no_escape); + } + + $sql .= implode(', ', $this->ar_select); + } + } + + // ---------------------------------------------------------------- + + // Write the "FROM" portion of the query + + if (count($this->ar_from) > 0) + { + $sql .= "\nFROM "; + + $sql .= $this->_from_tables($this->ar_from); + } + + // ---------------------------------------------------------------- + + // Write the "JOIN" portion of the query + + if (count($this->ar_join) > 0) + { + $sql .= "\n"; + + $sql .= implode("\n", $this->ar_join); + } + + // ---------------------------------------------------------------- + + // Write the "WHERE" portion of the query + + if (count($this->ar_where) > 0 OR count($this->ar_like) > 0) + { + $sql .= "\nWHERE "; + } + + $sql .= implode("\n", $this->ar_where); + + // ---------------------------------------------------------------- + + // Write the "LIKE" portion of the query + + if (count($this->ar_like) > 0) + { + if (count($this->ar_where) > 0) + { + $sql .= "\nAND "; + } + + $sql .= implode("\n", $this->ar_like); + } + + // ---------------------------------------------------------------- + + // Write the "GROUP BY" portion of the query + + if (count($this->ar_groupby) > 0) + { + $sql .= "\nGROUP BY "; + + $sql .= implode(', ', $this->ar_groupby); + } + + // ---------------------------------------------------------------- + + // Write the "HAVING" portion of the query + + if (count($this->ar_having) > 0) + { + $sql .= "\nHAVING "; + $sql .= implode("\n", $this->ar_having); + } + + // ---------------------------------------------------------------- + + // Write the "ORDER BY" portion of the query + + if (count($this->ar_orderby) > 0) + { + $sql .= "\nORDER BY "; + $sql .= implode(', ', $this->ar_orderby); + + if ($this->ar_order !== FALSE) + { + $sql .= ($this->ar_order == 'desc') ? ' DESC' : ' ASC'; + } + } + + // ---------------------------------------------------------------- + + // Write the "LIMIT" portion of the query + + if (is_numeric($this->ar_limit)) + { + $sql .= "\n"; + $sql = $this->_limit($sql, $this->ar_limit, $this->ar_offset); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Object to Array + * + * Takes an object as input and converts the class variables to array key/vals + * + * @param object + * @return array + */ + public function _object_to_array($object) + { + if ( ! is_object($object)) + { + return $object; + } + + $array = array(); + foreach (get_object_vars($object) as $key => $val) + { + // There are some built in keys we need to ignore for this conversion + if ( ! is_object($val) && ! is_array($val) && $key != '_parent_name') + { + $array[$key] = $val; + } + } + + return $array; + } + + // -------------------------------------------------------------------- + + /** + * Object to Array + * + * Takes an object as input and converts the class variables to array key/vals + * + * @param object + * @return array + */ + public function _object_to_array_batch($object) + { + if ( ! is_object($object)) + { + return $object; + } + + $array = array(); + $out = get_object_vars($object); + $fields = array_keys($out); + + foreach ($fields as $val) + { + // There are some built in keys we need to ignore for this conversion + if ($val != '_parent_name') + { + + $i = 0; + foreach ($out[$val] as $data) + { + $array[$i][$val] = $data; + $i++; + } + } + } + + return $array; + } + + // -------------------------------------------------------------------- + + /** + * Start Cache + * + * Starts AR caching + * + * @return void + */ + public function start_cache() + { + $this->ar_caching = TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Stop Cache + * + * Stops AR caching + * + * @return void + */ + public function stop_cache() + { + $this->ar_caching = FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Flush Cache + * + * Empties the AR cache + * + * @access public + * @return void + */ + public function flush_cache() + { + $this->_reset_run(array( + 'ar_cache_select' => array(), + 'ar_cache_from' => array(), + 'ar_cache_join' => array(), + 'ar_cache_where' => array(), + 'ar_cache_like' => array(), + 'ar_cache_groupby' => array(), + 'ar_cache_having' => array(), + 'ar_cache_orderby' => array(), + 'ar_cache_set' => array(), + 'ar_cache_exists' => array(), + 'ar_cache_no_escape' => array() + )); + } + + // -------------------------------------------------------------------- + + /** + * Merge Cache + * + * When called, this function merges any cached AR arrays with + * locally called ones. + * + * @return void + */ + protected function _merge_cache() + { + if (count($this->ar_cache_exists) == 0) + { + return; + } + + foreach ($this->ar_cache_exists as $val) + { + $ar_variable = 'ar_'.$val; + $ar_cache_var = 'ar_cache_'.$val; + + if (count($this->$ar_cache_var) == 0) + { + continue; + } + + $this->$ar_variable = array_unique(array_merge($this->$ar_cache_var, $this->$ar_variable)); + } + + // If we are "protecting identifiers" we need to examine the "from" + // portion of the query to determine if there are any aliases + if ($this->_protect_identifiers === TRUE AND count($this->ar_cache_from) > 0) + { + $this->_track_aliases($this->ar_from); + } + + $this->ar_no_escape = $this->ar_cache_no_escape; + } + + // -------------------------------------------------------------------- + + /** + * Resets the active record values. Called by the get() function + * + * @param array An array of fields to reset + * @return void + */ + protected function _reset_run($ar_reset_items) + { + foreach ($ar_reset_items as $item => $default_value) + { + if ( ! in_array($item, $this->ar_store_array)) + { + $this->$item = $default_value; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Resets the active record values. Called by the get() function + * + * @return void + */ + protected function _reset_select() + { + $ar_reset_items = array( + 'ar_select' => array(), + 'ar_from' => array(), + 'ar_join' => array(), + 'ar_where' => array(), + 'ar_like' => array(), + 'ar_groupby' => array(), + 'ar_having' => array(), + 'ar_orderby' => array(), + 'ar_wherein' => array(), + 'ar_aliased_tables' => array(), + 'ar_no_escape' => array(), + 'ar_distinct' => FALSE, + 'ar_limit' => FALSE, + 'ar_offset' => FALSE, + 'ar_order' => FALSE, + ); + + $this->_reset_run($ar_reset_items); + } + + // -------------------------------------------------------------------- + + /** + * Resets the active record "write" values. + * + * Called by the insert() update() insert_batch() update_batch() and delete() functions + * + * @return void + */ + protected function _reset_write() + { + $ar_reset_items = array( + 'ar_set' => array(), + 'ar_from' => array(), + 'ar_where' => array(), + 'ar_like' => array(), + 'ar_orderby' => array(), + 'ar_keys' => array(), + 'ar_limit' => FALSE, + 'ar_order' => FALSE + ); + + $this->_reset_run($ar_reset_items); + } +} + +/* End of file DB_active_rec.php */ +/* Location: ./system/database/DB_active_rec.php */ \ No newline at end of file diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php new file mode 100755 index 0000000..ad1c28d --- /dev/null +++ b/system/database/DB_cache.php @@ -0,0 +1,195 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Database Cache Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_Cache { + + var $CI; + var $db; // allows passing of db object so that multiple database connections and returned db objects can be supported + + /** + * Constructor + * + * Grabs the CI super object instance so we can access it. + * + */ + function __construct(&$db) + { + // Assign the main CI object to $this->CI + // and load the file helper since we use it a lot + $this->CI =& get_instance(); + $this->db =& $db; + $this->CI->load->helper('file'); + } + + // -------------------------------------------------------------------- + + /** + * Set Cache Directory Path + * + * @access public + * @param string the path to the cache directory + * @return bool + */ + function check_path($path = '') + { + if ($path == '') + { + if ($this->db->cachedir == '') + { + return $this->db->cache_off(); + } + + $path = $this->db->cachedir; + } + + // Add a trailing slash to the path if needed + $path = preg_replace("/(.+?)\/*$/", "\\1/", $path); + + if ( ! is_dir($path) OR ! is_really_writable($path)) + { + // If the path is wrong we'll turn off caching + return $this->db->cache_off(); + } + + $this->db->cachedir = $path; + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Retrieve a cached query + * + * The URI being requested will become the name of the cache sub-folder. + * An MD5 hash of the SQL statement will become the cache file name + * + * @access public + * @return string + */ + function read($sql) + { + if ( ! $this->check_path()) + { + return $this->db->cache_off(); + } + + $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); + + $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); + + $filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql); + + if (FALSE === ($cachedata = read_file($filepath))) + { + return FALSE; + } + + return unserialize($cachedata); + } + + // -------------------------------------------------------------------- + + /** + * Write a query to a cache file + * + * @access public + * @return bool + */ + function write($sql, $object) + { + if ( ! $this->check_path()) + { + return $this->db->cache_off(); + } + + $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); + + $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); + + $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'; + + $filename = md5($sql); + + if ( ! @is_dir($dir_path)) + { + if ( ! @mkdir($dir_path, DIR_WRITE_MODE)) + { + return FALSE; + } + + @chmod($dir_path, DIR_WRITE_MODE); + } + + if (write_file($dir_path.$filename, serialize($object)) === FALSE) + { + return FALSE; + } + + @chmod($dir_path.$filename, FILE_WRITE_MODE); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Delete cache files within a particular directory + * + * @access public + * @return bool + */ + function delete($segment_one = '', $segment_two = '') + { + if ($segment_one == '') + { + $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); + } + + if ($segment_two == '') + { + $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); + } + + $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'; + + delete_files($dir_path, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Delete all existing cache files + * + * @access public + * @return bool + */ + function delete_all() + { + delete_files($this->db->cachedir, TRUE); + } + +} + + +/* End of file DB_cache.php */ +/* Location: ./system/database/DB_cache.php */ \ No newline at end of file diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php new file mode 100755 index 0000000..775fd33 --- /dev/null +++ b/system/database/DB_driver.php @@ -0,0 +1,1410 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Database Driver Class + * + * This is the platform-independent base DB implementation class. + * This class will not be called directly. Rather, the adapter + * class for the specific database will extend and instantiate it. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_driver { + + var $username; + var $password; + var $hostname; + var $database; + var $dbdriver = 'mysql'; + var $dbprefix = ''; + var $char_set = 'utf8'; + var $dbcollat = 'utf8_general_ci'; + var $autoinit = TRUE; // Whether to automatically initialize the DB + var $swap_pre = ''; + var $port = ''; + var $pconnect = FALSE; + var $conn_id = FALSE; + var $result_id = FALSE; + var $db_debug = FALSE; + var $benchmark = 0; + var $query_count = 0; + var $bind_marker = '?'; + var $save_queries = TRUE; + var $queries = array(); + var $query_times = array(); + var $data_cache = array(); + var $trans_enabled = TRUE; + var $trans_strict = TRUE; + var $_trans_depth = 0; + var $_trans_status = TRUE; // Used with transactions to determine if a rollback should occur + var $cache_on = FALSE; + var $cachedir = ''; + var $cache_autodel = FALSE; + var $CACHE; // The cache class object + + // Private variables + var $_protect_identifiers = TRUE; + var $_reserved_identifiers = array('*'); // Identifiers that should NOT be escaped + + // These are use with Oracle + var $stmt_id; + var $curs_id; + var $limit_used; + + + + /** + * Constructor. Accepts one parameter containing the database + * connection settings. + * + * @param array + */ + function __construct($params) + { + if (is_array($params)) + { + foreach ($params as $key => $val) + { + $this->$key = $val; + } + } + + log_message('debug', 'Database Driver Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * Initialize Database Settings + * + * @access private Called by the constructor + * @param mixed + * @return void + */ + function initialize() + { + // If an existing connection resource is available + // there is no need to connect and select the database + if (is_resource($this->conn_id) OR is_object($this->conn_id)) + { + return TRUE; + } + + // ---------------------------------------------------------------- + + // Connect to the database and set the connection ID + $this->conn_id = ($this->pconnect == FALSE) ? $this->db_connect() : $this->db_pconnect(); + + // No connection resource? Throw an error + if ( ! $this->conn_id) + { + log_message('error', 'Unable to connect to the database'); + + if ($this->db_debug) + { + $this->display_error('db_unable_to_connect'); + } + return FALSE; + } + + // ---------------------------------------------------------------- + + // Select the DB... assuming a database name is specified in the config file + if ($this->database != '') + { + if ( ! $this->db_select()) + { + log_message('error', 'Unable to select database: '.$this->database); + + if ($this->db_debug) + { + $this->display_error('db_unable_to_select', $this->database); + } + return FALSE; + } + else + { + // We've selected the DB. Now we set the character set + if ( ! $this->db_set_charset($this->char_set, $this->dbcollat)) + { + return FALSE; + } + + return TRUE; + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + if ( ! $this->_db_set_charset($this->char_set, $this->dbcollat)) + { + log_message('error', 'Unable to set database connection charset: '.$this->char_set); + + if ($this->db_debug) + { + $this->display_error('db_unable_to_set_charset', $this->char_set); + } + + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * The name of the platform in use (mysql, mssql, etc...) + * + * @access public + * @return string + */ + function platform() + { + return $this->dbdriver; + } + + // -------------------------------------------------------------------- + + /** + * Database Version Number. Returns a string containing the + * version of the database being used + * + * @access public + * @return string + */ + function version() + { + if (FALSE === ($sql = $this->_version())) + { + if ($this->db_debug) + { + return $this->display_error('db_unsupported_function'); + } + return FALSE; + } + + // Some DBs have functions that return the version, and don't run special + // SQL queries per se. In these instances, just return the result. + $driver_version_exceptions = array('oci8', 'sqlite', 'cubrid'); + + if (in_array($this->dbdriver, $driver_version_exceptions)) + { + return $sql; + } + else + { + $query = $this->query($sql); + return $query->row('ver'); + } + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * Accepts an SQL string as input and returns a result object upon + * successful execution of a "read" type query. Returns boolean TRUE + * upon successful execution of a "write" type query. Returns boolean + * FALSE upon failure, and if the $db_debug variable is set to TRUE + * will raise an error. + * + * @access public + * @param string An SQL query string + * @param array An array of binding data + * @return mixed + */ + function query($sql, $binds = FALSE, $return_object = TRUE) + { + if ($sql == '') + { + if ($this->db_debug) + { + log_message('error', 'Invalid query: '.$sql); + return $this->display_error('db_invalid_query'); + } + return FALSE; + } + + // Verify table prefix and replace if necessary + if ( ($this->dbprefix != '' AND $this->swap_pre != '') AND ($this->dbprefix != $this->swap_pre) ) + { + $sql = preg_replace("/(\W)".$this->swap_pre."(\S+?)/", "\\1".$this->dbprefix."\\2", $sql); + } + + // Compile binds if needed + if ($binds !== FALSE) + { + $sql = $this->compile_binds($sql, $binds); + } + + // Is query caching enabled? If the query is a "read type" + // we will load the caching class and return the previously + // cached query if it exists + if ($this->cache_on == TRUE AND stristr($sql, 'SELECT')) + { + if ($this->_cache_init()) + { + $this->load_rdriver(); + if (FALSE !== ($cache = $this->CACHE->read($sql))) + { + return $cache; + } + } + } + + // Save the query for debugging + if ($this->save_queries == TRUE) + { + $this->queries[] = $sql; + } + + // Start the Query Timer + $time_start = list($sm, $ss) = explode(' ', microtime()); + + // Run the Query + if (FALSE === ($this->result_id = $this->simple_query($sql))) + { + if ($this->save_queries == TRUE) + { + $this->query_times[] = 0; + } + + // This will trigger a rollback if transactions are being used + $this->_trans_status = FALSE; + + if ($this->db_debug) + { + // grab the error number and message now, as we might run some + // additional queries before displaying the error + $error_no = $this->_error_number(); + $error_msg = $this->_error_message(); + + // We call this function in order to roll-back queries + // if transactions are enabled. If we don't call this here + // the error message will trigger an exit, causing the + // transactions to remain in limbo. + $this->trans_complete(); + + // Log and display errors + log_message('error', 'Query error: '.$error_msg); + return $this->display_error( + array( + 'Error Number: '.$error_no, + $error_msg, + $sql + ) + ); + } + + return FALSE; + } + + // Stop and aggregate the query time results + $time_end = list($em, $es) = explode(' ', microtime()); + $this->benchmark += ($em + $es) - ($sm + $ss); + + if ($this->save_queries == TRUE) + { + $this->query_times[] = ($em + $es) - ($sm + $ss); + } + + // Increment the query counter + $this->query_count++; + + // Was the query a "write" type? + // If so we'll simply return true + if ($this->is_write_type($sql) === TRUE) + { + // If caching is enabled we'll auto-cleanup any + // existing files related to this particular URI + if ($this->cache_on == TRUE AND $this->cache_autodel == TRUE AND $this->_cache_init()) + { + $this->CACHE->delete(); + } + + return TRUE; + } + + // Return TRUE if we don't need to create a result object + // Currently only the Oracle driver uses this when stored + // procedures are used + if ($return_object !== TRUE) + { + return TRUE; + } + + // Load and instantiate the result driver + + $driver = $this->load_rdriver(); + $RES = new $driver(); + $RES->conn_id = $this->conn_id; + $RES->result_id = $this->result_id; + + if ($this->dbdriver == 'oci8') + { + $RES->stmt_id = $this->stmt_id; + $RES->curs_id = NULL; + $RES->limit_used = $this->limit_used; + $this->stmt_id = FALSE; + } + + // oci8 vars must be set before calling this + $RES->num_rows = $RES->num_rows(); + + // Is query caching enabled? If so, we'll serialize the + // result object and save it to a cache file. + if ($this->cache_on == TRUE AND $this->_cache_init()) + { + // We'll create a new instance of the result object + // only without the platform specific driver since + // we can't use it with cached data (the query result + // resource ID won't be any good once we've cached the + // result object, so we'll have to compile the data + // and save it) + $CR = new CI_DB_result(); + $CR->num_rows = $RES->num_rows(); + $CR->result_object = $RES->result_object(); + $CR->result_array = $RES->result_array(); + + // Reset these since cached objects can not utilize resource IDs. + $CR->conn_id = NULL; + $CR->result_id = NULL; + + $this->CACHE->write($sql, $CR); + } + + return $RES; + } + + // -------------------------------------------------------------------- + + /** + * Load the result drivers + * + * @access public + * @return string the name of the result class + */ + function load_rdriver() + { + $driver = 'CI_DB_'.$this->dbdriver.'_result'; + + if ( ! class_exists($driver)) + { + include_once(BASEPATH.'database/DB_result.php'); + include_once(BASEPATH.'database/drivers/'.$this->dbdriver.'/'.$this->dbdriver.'_result.php'); + } + + return $driver; + } + + // -------------------------------------------------------------------- + + /** + * Simple Query + * This is a simplified version of the query() function. Internally + * we only use it when running transaction commands since they do + * not require all the features of the main query() function. + * + * @access public + * @param string the sql query + * @return mixed + */ + function simple_query($sql) + { + if ( ! $this->conn_id) + { + $this->initialize(); + } + + return $this->_execute($sql); + } + + // -------------------------------------------------------------------- + + /** + * Disable Transactions + * This permits transactions to be disabled at run-time. + * + * @access public + * @return void + */ + function trans_off() + { + $this->trans_enabled = FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Enable/disable Transaction Strict Mode + * When strict mode is enabled, if you are running multiple groups of + * transactions, if one group fails all groups will be rolled back. + * If strict mode is disabled, each group is treated autonomously, meaning + * a failure of one group will not affect any others + * + * @access public + * @return void + */ + function trans_strict($mode = TRUE) + { + $this->trans_strict = is_bool($mode) ? $mode : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Start Transaction + * + * @access public + * @return void + */ + function trans_start($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return FALSE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + $this->_trans_depth += 1; + return; + } + + $this->trans_begin($test_mode); + } + + // -------------------------------------------------------------------- + + /** + * Complete Transaction + * + * @access public + * @return bool + */ + function trans_complete() + { + if ( ! $this->trans_enabled) + { + return FALSE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 1) + { + $this->_trans_depth -= 1; + return TRUE; + } + + // The query() function will set this flag to FALSE in the event that a query failed + if ($this->_trans_status === FALSE) + { + $this->trans_rollback(); + + // If we are NOT running in strict mode, we will reset + // the _trans_status flag so that subsequent groups of transactions + // will be permitted. + if ($this->trans_strict === FALSE) + { + $this->_trans_status = TRUE; + } + + log_message('debug', 'DB Transaction Failure'); + return FALSE; + } + + $this->trans_commit(); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Lets you retrieve the transaction flag to determine if it has failed + * + * @access public + * @return bool + */ + function trans_status() + { + return $this->_trans_status; + } + + // -------------------------------------------------------------------- + + /** + * Compile Bindings + * + * @access public + * @param string the sql statement + * @param array an array of bind data + * @return string + */ + function compile_binds($sql, $binds) + { + if (strpos($sql, $this->bind_marker) === FALSE) + { + return $sql; + } + + if ( ! is_array($binds)) + { + $binds = array($binds); + } + + // Get the sql segments around the bind markers + $segments = explode($this->bind_marker, $sql); + + // The count of bind should be 1 less then the count of segments + // If there are more bind arguments trim it down + if (count($binds) >= count($segments)) { + $binds = array_slice($binds, 0, count($segments)-1); + } + + // Construct the binded query + $result = $segments[0]; + $i = 0; + foreach ($binds as $bind) + { + $result .= $this->escape($bind); + $result .= $segments[++$i]; + } + + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Determines if a query is a "write" type. + * + * @access public + * @param string An SQL query string + * @return boolean + */ + function is_write_type($sql) + { + if ( ! preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql)) + { + return FALSE; + } + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Calculate the aggregate query elapsed time + * + * @access public + * @param integer The number of decimal places + * @return integer + */ + function elapsed_time($decimals = 6) + { + return number_format($this->benchmark, $decimals); + } + + // -------------------------------------------------------------------- + + /** + * Returns the total number of queries + * + * @access public + * @return integer + */ + function total_queries() + { + return $this->query_count; + } + + // -------------------------------------------------------------------- + + /** + * Returns the last query that was executed + * + * @access public + * @return void + */ + function last_query() + { + return end($this->queries); + } + + // -------------------------------------------------------------------- + + /** + * "Smart" Escape String + * + * Escapes data based on type + * Sets boolean and null types + * + * @access public + * @param string + * @return mixed + */ + function escape($str) + { + if (is_string($str)) + { + $str = "'".$this->escape_str($str)."'"; + } + elseif (is_bool($str)) + { + $str = ($str === FALSE) ? 0 : 1; + } + elseif (is_null($str)) + { + $str = 'NULL'; + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Escape LIKE String + * + * Calls the individual driver for platform + * specific escaping for LIKE conditions + * + * @access public + * @param string + * @return mixed + */ + function escape_like_str($str) + { + return $this->escape_str($str, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Primary + * + * Retrieves the primary key. It assumes that the row in the first + * position is the primary key + * + * @access public + * @param string the table name + * @return string + */ + function primary($table = '') + { + $fields = $this->list_fields($table); + + if ( ! is_array($fields)) + { + return FALSE; + } + + return current($fields); + } + + // -------------------------------------------------------------------- + + /** + * Returns an array of table names + * + * @access public + * @return array + */ + function list_tables($constrain_by_prefix = FALSE) + { + // Is there a cached result? + if (isset($this->data_cache['table_names'])) + { + return $this->data_cache['table_names']; + } + + if (FALSE === ($sql = $this->_list_tables($constrain_by_prefix))) + { + if ($this->db_debug) + { + return $this->display_error('db_unsupported_function'); + } + return FALSE; + } + + $retval = array(); + $query = $this->query($sql); + + if ($query->num_rows() > 0) + { + foreach ($query->result_array() as $row) + { + if (isset($row['TABLE_NAME'])) + { + $retval[] = $row['TABLE_NAME']; + } + else + { + $retval[] = array_shift($row); + } + } + } + + $this->data_cache['table_names'] = $retval; + return $this->data_cache['table_names']; + } + + // -------------------------------------------------------------------- + + /** + * Determine if a particular table exists + * @access public + * @return boolean + */ + function table_exists($table_name) + { + return ( ! in_array($this->_protect_identifiers($table_name, TRUE, FALSE, FALSE), $this->list_tables())) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Fetch MySQL Field Names + * + * @access public + * @param string the table name + * @return array + */ + function list_fields($table = '') + { + // Is there a cached result? + if (isset($this->data_cache['field_names'][$table])) + { + return $this->data_cache['field_names'][$table]; + } + + if ($table == '') + { + if ($this->db_debug) + { + return $this->display_error('db_field_param_missing'); + } + return FALSE; + } + + if (FALSE === ($sql = $this->_list_columns($table))) + { + if ($this->db_debug) + { + return $this->display_error('db_unsupported_function'); + } + return FALSE; + } + + $query = $this->query($sql); + + $retval = array(); + foreach ($query->result_array() as $row) + { + if (isset($row['COLUMN_NAME'])) + { + $retval[] = $row['COLUMN_NAME']; + } + else + { + $retval[] = current($row); + } + } + + $this->data_cache['field_names'][$table] = $retval; + return $this->data_cache['field_names'][$table]; + } + + // -------------------------------------------------------------------- + + /** + * Determine if a particular field exists + * @access public + * @param string + * @param string + * @return boolean + */ + function field_exists($field_name, $table_name) + { + return ( ! in_array($field_name, $this->list_fields($table_name))) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @access public + * @param string the table name + * @return object + */ + function field_data($table = '') + { + if ($table == '') + { + if ($this->db_debug) + { + return $this->display_error('db_field_param_missing'); + } + return FALSE; + } + + $query = $this->query($this->_field_data($this->_protect_identifiers($table, TRUE, NULL, FALSE))); + + return $query->field_data(); + } + + // -------------------------------------------------------------------- + + /** + * Generate an insert string + * + * @access public + * @param string the table upon which the query will be performed + * @param array an associative array data of key/values + * @return string + */ + function insert_string($table, $data) + { + $fields = array(); + $values = array(); + + foreach ($data as $key => $val) + { + $fields[] = $this->_escape_identifiers($key); + $values[] = $this->escape($val); + } + + return $this->_insert($this->_protect_identifiers($table, TRUE, NULL, FALSE), $fields, $values); + } + + // -------------------------------------------------------------------- + + /** + * Generate an update string + * + * @access public + * @param string the table upon which the query will be performed + * @param array an associative array data of key/values + * @param mixed the "where" statement + * @return string + */ + function update_string($table, $data, $where) + { + if ($where == '') + { + return false; + } + + $fields = array(); + foreach ($data as $key => $val) + { + $fields[$this->_protect_identifiers($key)] = $this->escape($val); + } + + if ( ! is_array($where)) + { + $dest = array($where); + } + else + { + $dest = array(); + foreach ($where as $key => $val) + { + $prefix = (count($dest) == 0) ? '' : ' AND '; + + if ($val !== '') + { + if ( ! $this->_has_operator($key)) + { + $key .= ' ='; + } + + $val = ' '.$this->escape($val); + } + + $dest[] = $prefix.$key.$val; + } + } + + return $this->_update($this->_protect_identifiers($table, TRUE, NULL, FALSE), $fields, $dest); + } + + // -------------------------------------------------------------------- + + /** + * Tests whether the string has an SQL operator + * + * @access private + * @param string + * @return bool + */ + function _has_operator($str) + { + $str = trim($str); + if ( ! preg_match("/(\s|<|>|!|=|is null|is not null)/i", $str)) + { + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Enables a native PHP function to be run, using a platform agnostic wrapper. + * + * @access public + * @param string the function name + * @param mixed any parameters needed by the function + * @return mixed + */ + function call_function($function) + { + $driver = ($this->dbdriver == 'postgre') ? 'pg_' : $this->dbdriver.'_'; + + if (FALSE === strpos($driver, $function)) + { + $function = $driver.$function; + } + + if ( ! function_exists($function)) + { + if ($this->db_debug) + { + return $this->display_error('db_unsupported_function'); + } + return FALSE; + } + else + { + $args = (func_num_args() > 1) ? array_splice(func_get_args(), 1) : null; + if (is_null($args)) + { + return call_user_func($function); + } + else + { + return call_user_func_array($function, $args); + } + } + } + + // -------------------------------------------------------------------- + + /** + * Set Cache Directory Path + * + * @access public + * @param string the path to the cache directory + * @return void + */ + function cache_set_path($path = '') + { + $this->cachedir = $path; + } + + // -------------------------------------------------------------------- + + /** + * Enable Query Caching + * + * @access public + * @return void + */ + function cache_on() + { + $this->cache_on = TRUE; + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Disable Query Caching + * + * @access public + * @return void + */ + function cache_off() + { + $this->cache_on = FALSE; + return FALSE; + } + + + // -------------------------------------------------------------------- + + /** + * Delete the cache files associated with a particular URI + * + * @access public + * @return void + */ + function cache_delete($segment_one = '', $segment_two = '') + { + if ( ! $this->_cache_init()) + { + return FALSE; + } + return $this->CACHE->delete($segment_one, $segment_two); + } + + // -------------------------------------------------------------------- + + /** + * Delete All cache files + * + * @access public + * @return void + */ + function cache_delete_all() + { + if ( ! $this->_cache_init()) + { + return FALSE; + } + + return $this->CACHE->delete_all(); + } + + // -------------------------------------------------------------------- + + /** + * Initialize the Cache Class + * + * @access private + * @return void + */ + function _cache_init() + { + if (is_object($this->CACHE) AND class_exists('CI_DB_Cache')) + { + return TRUE; + } + + if ( ! class_exists('CI_DB_Cache')) + { + if ( ! @include(BASEPATH.'database/DB_cache.php')) + { + return $this->cache_off(); + } + } + + $this->CACHE = new CI_DB_Cache($this); // pass db object to support multiple db connections and returned db objects + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @return void + */ + function close() + { + if (is_resource($this->conn_id) OR is_object($this->conn_id)) + { + $this->_close($this->conn_id); + } + $this->conn_id = FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Display an error message + * + * @access public + * @param string the error message + * @param string any "swap" values + * @param boolean whether to localize the message + * @return string sends the application/error_db.php template + */ + function display_error($error = '', $swap = '', $native = FALSE) + { + $LANG =& load_class('Lang', 'core'); + $LANG->load('db'); + + $heading = $LANG->line('db_error_heading'); + + if ($native == TRUE) + { + $message = $error; + } + else + { + $message = ( ! is_array($error)) ? array(str_replace('%s', $swap, $LANG->line($error))) : $error; + } + + // Find the most likely culprit of the error by going through + // the backtrace until the source file is no longer in the + // database folder. + + $trace = debug_backtrace(); + + foreach ($trace as $call) + { + if (isset($call['file']) && strpos($call['file'], BASEPATH.'database') === FALSE) + { + // Found it - use a relative path for safety + $message[] = 'Filename: '.str_replace(array(BASEPATH, APPPATH), '', $call['file']); + $message[] = 'Line Number: '.$call['line']; + + break; + } + } + + $error =& load_class('Exceptions', 'core'); + echo $error->show_error($heading, $message, 'error_db'); + exit; + } + + // -------------------------------------------------------------------- + + /** + * Protect Identifiers + * + * This function adds backticks if appropriate based on db type + * + * @access private + * @param mixed the item to escape + * @return mixed the item with backticks + */ + function protect_identifiers($item, $prefix_single = FALSE) + { + return $this->_protect_identifiers($item, $prefix_single); + } + + // -------------------------------------------------------------------- + + /** + * Protect Identifiers + * + * This function is used extensively by the Active Record class, and by + * a couple functions in this class. + * It takes a column or table name (optionally with an alias) and inserts + * the table prefix onto it. Some logic is necessary in order to deal with + * column names that include the path. Consider a query like this: + * + * SELECT * FROM hostname.database.table.column AS c FROM hostname.database.table + * + * Or a query with aliasing: + * + * SELECT m.member_id, m.member_name FROM members AS m + * + * Since the column name can include up to four segments (host, DB, table, column) + * or also have an alias prefix, we need to do a bit of work to figure this out and + * insert the table prefix (if it exists) in the proper position, and escape only + * the correct identifiers. + * + * @access private + * @param string + * @param bool + * @param mixed + * @param bool + * @return string + */ + function _protect_identifiers($item, $prefix_single = FALSE, $protect_identifiers = NULL, $field_exists = TRUE) + { + if ( ! is_bool($protect_identifiers)) + { + $protect_identifiers = $this->_protect_identifiers; + } + + if (is_array($item)) + { + $escaped_array = array(); + + foreach ($item as $k => $v) + { + $escaped_array[$this->_protect_identifiers($k)] = $this->_protect_identifiers($v); + } + + return $escaped_array; + } + + // Convert tabs or multiple spaces into single spaces + $item = preg_replace('/[\t ]+/', ' ', $item); + + // If the item has an alias declaration we remove it and set it aside. + // Basically we remove everything to the right of the first space + if (strpos($item, ' ') !== FALSE) + { + $alias = strstr($item, ' '); + $item = substr($item, 0, - strlen($alias)); + } + else + { + $alias = ''; + } + + // This is basically a bug fix for queries that use MAX, MIN, etc. + // If a parenthesis is found we know that we do not need to + // escape the data or add a prefix. There's probably a more graceful + // way to deal with this, but I'm not thinking of it -- Rick + if (strpos($item, '(') !== FALSE) + { + return $item.$alias; + } + + // Break the string apart if it contains periods, then insert the table prefix + // in the correct location, assuming the period doesn't indicate that we're dealing + // with an alias. While we're at it, we will escape the components + if (strpos($item, '.') !== FALSE) + { + $parts = explode('.', $item); + + // Does the first segment of the exploded item match + // one of the aliases previously identified? If so, + // we have nothing more to do other than escape the item + if (in_array($parts[0], $this->ar_aliased_tables)) + { + if ($protect_identifiers === TRUE) + { + foreach ($parts as $key => $val) + { + if ( ! in_array($val, $this->_reserved_identifiers)) + { + $parts[$key] = $this->_escape_identifiers($val); + } + } + + $item = implode('.', $parts); + } + return $item.$alias; + } + + // Is there a table prefix defined in the config file? If not, no need to do anything + if ($this->dbprefix != '') + { + // We now add the table prefix based on some logic. + // Do we have 4 segments (hostname.database.table.column)? + // If so, we add the table prefix to the column name in the 3rd segment. + if (isset($parts[3])) + { + $i = 2; + } + // Do we have 3 segments (database.table.column)? + // If so, we add the table prefix to the column name in 2nd position + elseif (isset($parts[2])) + { + $i = 1; + } + // Do we have 2 segments (table.column)? + // If so, we add the table prefix to the column name in 1st segment + else + { + $i = 0; + } + + // This flag is set when the supplied $item does not contain a field name. + // This can happen when this function is being called from a JOIN. + if ($field_exists == FALSE) + { + $i++; + } + + // Verify table prefix and replace if necessary + if ($this->swap_pre != '' && strncmp($parts[$i], $this->swap_pre, strlen($this->swap_pre)) === 0) + { + $parts[$i] = preg_replace("/^".$this->swap_pre."(\S+?)/", $this->dbprefix."\\1", $parts[$i]); + } + + // We only add the table prefix if it does not already exist + if (substr($parts[$i], 0, strlen($this->dbprefix)) != $this->dbprefix) + { + $parts[$i] = $this->dbprefix.$parts[$i]; + } + + // Put the parts back together + $item = implode('.', $parts); + } + + if ($protect_identifiers === TRUE) + { + $item = $this->_escape_identifiers($item); + } + + return $item.$alias; + } + + // Is there a table prefix? If not, no need to insert it + if ($this->dbprefix != '') + { + // Verify table prefix and replace if necessary + if ($this->swap_pre != '' && strncmp($item, $this->swap_pre, strlen($this->swap_pre)) === 0) + { + $item = preg_replace("/^".$this->swap_pre."(\S+?)/", $this->dbprefix."\\1", $item); + } + + // Do we prefix an item with no segments? + if ($prefix_single == TRUE AND substr($item, 0, strlen($this->dbprefix)) != $this->dbprefix) + { + $item = $this->dbprefix.$item; + } + } + + if ($protect_identifiers === TRUE AND ! in_array($item, $this->_reserved_identifiers)) + { + $item = $this->_escape_identifiers($item); + } + + return $item.$alias; + } + + // -------------------------------------------------------------------- + + /** + * Dummy method that allows Active Record class to be disabled + * + * This function is used extensively by every db driver. + * + * @return void + */ + protected function _reset_select() + { + } + +} + +/* End of file DB_driver.php */ +/* Location: ./system/database/DB_driver.php */ \ No newline at end of file diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php new file mode 100755 index 0000000..6bc4041 --- /dev/null +++ b/system/database/DB_forge.php @@ -0,0 +1,382 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * Code Igniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Database Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_forge { + + var $fields = array(); + var $keys = array(); + var $primary_keys = array(); + var $db_char_set = ''; + + /** + * Constructor + * + * Grabs the CI super object instance so we can access it. + * + */ + function __construct() + { + // Assign the main database object to $this->db + $CI =& get_instance(); + $this->db =& $CI->db; + log_message('debug', "Database Forge Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Create database + * + * @access public + * @param string the database name + * @return bool + */ + function create_database($db_name) + { + $sql = $this->_create_database($db_name); + + if (is_bool($sql)) + { + return $sql; + } + + return $this->db->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access public + * @param string the database name + * @return bool + */ + function drop_database($db_name) + { + $sql = $this->_drop_database($db_name); + + if (is_bool($sql)) + { + return $sql; + } + + return $this->db->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Add Key + * + * @access public + * @param string key + * @param string type + * @return void + */ + function add_key($key = '', $primary = FALSE) + { + if (is_array($key)) + { + foreach ($key as $one) + { + $this->add_key($one, $primary); + } + + return; + } + + if ($key == '') + { + show_error('Key information is required for that operation.'); + } + + if ($primary === TRUE) + { + $this->primary_keys[] = $key; + } + else + { + $this->keys[] = $key; + } + } + + // -------------------------------------------------------------------- + + /** + * Add Field + * + * @access public + * @param string collation + * @return void + */ + function add_field($field = '') + { + if ($field == '') + { + show_error('Field information is required.'); + } + + if (is_string($field)) + { + if ($field == 'id') + { + $this->add_field(array( + 'id' => array( + 'type' => 'INT', + 'constraint' => 9, + 'auto_increment' => TRUE + ) + )); + $this->add_key('id', TRUE); + } + else + { + if (strpos($field, ' ') === FALSE) + { + show_error('Field information is required for that operation.'); + } + + $this->fields[] = $field; + } + } + + if (is_array($field)) + { + $this->fields = array_merge($this->fields, $field); + } + + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access public + * @param string the table name + * @return bool + */ + function create_table($table = '', $if_not_exists = FALSE) + { + if ($table == '') + { + show_error('A table name is required for that operation.'); + } + + if (count($this->fields) == 0) + { + show_error('Field information is required.'); + } + + $sql = $this->_create_table($this->db->dbprefix.$table, $this->fields, $this->primary_keys, $this->keys, $if_not_exists); + + $this->_reset(); + return $this->db->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access public + * @param string the table name + * @return bool + */ + function drop_table($table_name) + { + $sql = $this->_drop_table($this->db->dbprefix.$table_name); + + if (is_bool($sql)) + { + return $sql; + } + + return $this->db->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Rename Table + * + * @access public + * @param string the old table name + * @param string the new table name + * @return bool + */ + function rename_table($table_name, $new_table_name) + { + if ($table_name == '' OR $new_table_name == '') + { + show_error('A table name is required for that operation.'); + } + + $sql = $this->_rename_table($this->db->dbprefix.$table_name, $this->db->dbprefix.$new_table_name); + return $this->db->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Column Add + * + * @access public + * @param string the table name + * @param string the column name + * @param string the column definition + * @return bool + */ + function add_column($table = '', $field = array(), $after_field = '') + { + if ($table == '') + { + show_error('A table name is required for that operation.'); + } + + // add field info into field array, but we can only do one at a time + // so we cycle through + + foreach ($field as $k => $v) + { + $this->add_field(array($k => $field[$k])); + + if (count($this->fields) == 0) + { + show_error('Field information is required.'); + } + + $sql = $this->_alter_table('ADD', $this->db->dbprefix.$table, $this->fields, $after_field); + + $this->_reset(); + + if ($this->db->query($sql) === FALSE) + { + return FALSE; + } + } + + return TRUE; + + } + + // -------------------------------------------------------------------- + + /** + * Column Drop + * + * @access public + * @param string the table name + * @param string the column name + * @return bool + */ + function drop_column($table = '', $column_name = '') + { + + if ($table == '') + { + show_error('A table name is required for that operation.'); + } + + if ($column_name == '') + { + show_error('A column name is required for that operation.'); + } + + $sql = $this->_alter_table('DROP', $this->db->dbprefix.$table, $column_name); + + return $this->db->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Column Modify + * + * @access public + * @param string the table name + * @param string the column name + * @param string the column definition + * @return bool + */ + function modify_column($table = '', $field = array()) + { + if ($table == '') + { + show_error('A table name is required for that operation.'); + } + + // add field info into field array, but we can only do one at a time + // so we cycle through + + foreach ($field as $k => $v) + { + // If no name provided, use the current name + if ( ! isset($field[$k]['name'])) + { + $field[$k]['name'] = $k; + } + + $this->add_field(array($k => $field[$k])); + + if (count($this->fields) == 0) + { + show_error('Field information is required.'); + } + + $sql = $this->_alter_table('CHANGE', $this->db->dbprefix.$table, $this->fields); + + $this->_reset(); + + if ($this->db->query($sql) === FALSE) + { + return FALSE; + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Reset + * + * Resets table creation vars + * + * @access private + * @return void + */ + function _reset() + { + $this->fields = array(); + $this->keys = array(); + $this->primary_keys = array(); + } + +} + +/* End of file DB_forge.php */ +/* Location: ./system/database/DB_forge.php */ \ No newline at end of file diff --git a/system/database/DB_result.php b/system/database/DB_result.php new file mode 100755 index 0000000..48d66c8 --- /dev/null +++ b/system/database/DB_result.php @@ -0,0 +1,410 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Database Result Class + * + * This is the platform-independent result class. + * This class will not be called directly. Rather, the adapter + * class for the specific database will extend and instantiate it. + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_result { + + var $conn_id = NULL; + var $result_id = NULL; + var $result_array = array(); + var $result_object = array(); + var $custom_result_object = array(); + var $current_row = 0; + var $num_rows = 0; + var $row_data = NULL; + + + /** + * Query result. Acts as a wrapper function for the following functions. + * + * @access public + * @param string can be "object" or "array" + * @return mixed either a result object or array + */ + public function result($type = 'object') + { + if ($type == 'array') return $this->result_array(); + else if ($type == 'object') return $this->result_object(); + else return $this->custom_result_object($type); + } + + // -------------------------------------------------------------------- + + /** + * Custom query result. + * + * @param class_name A string that represents the type of object you want back + * @return array of objects + */ + public function custom_result_object($class_name) + { + if (array_key_exists($class_name, $this->custom_result_object)) + { + return $this->custom_result_object[$class_name]; + } + + if ($this->result_id === FALSE OR $this->num_rows() == 0) + { + return array(); + } + + // add the data to the object + $this->_data_seek(0); + $result_object = array(); + + while ($row = $this->_fetch_object()) + { + $object = new $class_name(); + + foreach ($row as $key => $value) + { + $object->$key = $value; + } + + $result_object[] = $object; + } + + // return the array + return $this->custom_result_object[$class_name] = $result_object; + } + + // -------------------------------------------------------------------- + + /** + * Query result. "object" version. + * + * @access public + * @return object + */ + public function result_object() + { + if (count($this->result_object) > 0) + { + return $this->result_object; + } + + // In the event that query caching is on the result_id variable + // will return FALSE since there isn't a valid SQL resource so + // we'll simply return an empty array. + if ($this->result_id === FALSE OR $this->num_rows() == 0) + { + return array(); + } + + $this->_data_seek(0); + while ($row = $this->_fetch_object()) + { + $this->result_object[] = $row; + } + + return $this->result_object; + } + + // -------------------------------------------------------------------- + + /** + * Query result. "array" version. + * + * @access public + * @return array + */ + public function result_array() + { + if (count($this->result_array) > 0) + { + return $this->result_array; + } + + // In the event that query caching is on the result_id variable + // will return FALSE since there isn't a valid SQL resource so + // we'll simply return an empty array. + if ($this->result_id === FALSE OR $this->num_rows() == 0) + { + return array(); + } + + $this->_data_seek(0); + while ($row = $this->_fetch_assoc()) + { + $this->result_array[] = $row; + } + + return $this->result_array; + } + + // -------------------------------------------------------------------- + + /** + * Query result. Acts as a wrapper function for the following functions. + * + * @access public + * @param string + * @param string can be "object" or "array" + * @return mixed either a result object or array + */ + public function row($n = 0, $type = 'object') + { + if ( ! is_numeric($n)) + { + // We cache the row data for subsequent uses + if ( ! is_array($this->row_data)) + { + $this->row_data = $this->row_array(0); + } + + // array_key_exists() instead of isset() to allow for MySQL NULL values + if (array_key_exists($n, $this->row_data)) + { + return $this->row_data[$n]; + } + // reset the $n variable if the result was not achieved + $n = 0; + } + + if ($type == 'object') return $this->row_object($n); + else if ($type == 'array') return $this->row_array($n); + else return $this->custom_row_object($n, $type); + } + + // -------------------------------------------------------------------- + + /** + * Assigns an item into a particular column slot + * + * @access public + * @return object + */ + public function set_row($key, $value = NULL) + { + // We cache the row data for subsequent uses + if ( ! is_array($this->row_data)) + { + $this->row_data = $this->row_array(0); + } + + if (is_array($key)) + { + foreach ($key as $k => $v) + { + $this->row_data[$k] = $v; + } + + return; + } + + if ($key != '' AND ! is_null($value)) + { + $this->row_data[$key] = $value; + } + } + + // -------------------------------------------------------------------- + + /** + * Returns a single result row - custom object version + * + * @access public + * @return object + */ + public function custom_row_object($n, $type) + { + $result = $this->custom_result_object($type); + + if (count($result) == 0) + { + return $result; + } + + if ($n != $this->current_row AND isset($result[$n])) + { + $this->current_row = $n; + } + + return $result[$this->current_row]; + } + + /** + * Returns a single result row - object version + * + * @access public + * @return object + */ + public function row_object($n = 0) + { + $result = $this->result_object(); + + if (count($result) == 0) + { + return $result; + } + + if ($n != $this->current_row AND isset($result[$n])) + { + $this->current_row = $n; + } + + return $result[$this->current_row]; + } + + // -------------------------------------------------------------------- + + /** + * Returns a single result row - array version + * + * @access public + * @return array + */ + public function row_array($n = 0) + { + $result = $this->result_array(); + + if (count($result) == 0) + { + return $result; + } + + if ($n != $this->current_row AND isset($result[$n])) + { + $this->current_row = $n; + } + + return $result[$this->current_row]; + } + + + // -------------------------------------------------------------------- + + /** + * Returns the "first" row + * + * @access public + * @return object + */ + public function first_row($type = 'object') + { + $result = $this->result($type); + + if (count($result) == 0) + { + return $result; + } + return $result[0]; + } + + // -------------------------------------------------------------------- + + /** + * Returns the "last" row + * + * @access public + * @return object + */ + public function last_row($type = 'object') + { + $result = $this->result($type); + + if (count($result) == 0) + { + return $result; + } + return $result[count($result) -1]; + } + + // -------------------------------------------------------------------- + + /** + * Returns the "next" row + * + * @access public + * @return object + */ + public function next_row($type = 'object') + { + $result = $this->result($type); + + if (count($result) == 0) + { + return $result; + } + + if (isset($result[$this->current_row + 1])) + { + ++$this->current_row; + } + + return $result[$this->current_row]; + } + + // -------------------------------------------------------------------- + + /** + * Returns the "previous" row + * + * @access public + * @return object + */ + public function previous_row($type = 'object') + { + $result = $this->result($type); + + if (count($result) == 0) + { + return $result; + } + + if (isset($result[$this->current_row - 1])) + { + --$this->current_row; + } + return $result[$this->current_row]; + } + + // -------------------------------------------------------------------- + + /** + * The following functions are normally overloaded by the identically named + * methods in the platform-specific driver -- except when query caching + * is used. When caching is enabled we do not load the other driver. + * These functions are primarily here to prevent undefined function errors + * when a cached result object is in use. They are not otherwise fully + * operational due to the unavailability of the database resource IDs with + * cached results. + */ + public function num_rows() { return $this->num_rows; } + public function num_fields() { return 0; } + public function list_fields() { return array(); } + public function field_data() { return array(); } + public function free_result() { return TRUE; } + protected function _data_seek() { return TRUE; } + protected function _fetch_assoc() { return array(); } + protected function _fetch_object() { return array(); } + +} +// END DB_result class + +/* End of file DB_result.php */ +/* Location: ./system/database/DB_result.php */ diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php new file mode 100755 index 0000000..52196b7 --- /dev/null +++ b/system/database/DB_utility.php @@ -0,0 +1,414 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * Code Igniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Database Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_utility extends CI_DB_forge { + + var $db; + var $data_cache = array(); + + /** + * Constructor + * + * Grabs the CI super object instance so we can access it. + * + */ + function __construct() + { + // Assign the main database object to $this->db + $CI =& get_instance(); + $this->db =& $CI->db; + + log_message('debug', "Database Utility Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * List databases + * + * @access public + * @return bool + */ + function list_databases() + { + // Is there a cached result? + if (isset($this->data_cache['db_names'])) + { + return $this->data_cache['db_names']; + } + + $query = $this->db->query($this->_list_databases()); + $dbs = array(); + if ($query->num_rows() > 0) + { + foreach ($query->result_array() as $row) + { + $dbs[] = current($row); + } + } + + $this->data_cache['db_names'] = $dbs; + return $this->data_cache['db_names']; + } + + // -------------------------------------------------------------------- + + /** + * Determine if a particular database exists + * + * @access public + * @param string + * @return boolean + */ + function database_exists($database_name) + { + // Some databases won't have access to the list_databases() function, so + // this is intended to allow them to override with their own functions as + // defined in $driver_utility.php + if (method_exists($this, '_database_exists')) + { + return $this->_database_exists($database_name); + } + else + { + return ( ! in_array($database_name, $this->list_databases())) ? FALSE : TRUE; + } + } + + + // -------------------------------------------------------------------- + + /** + * Optimize Table + * + * @access public + * @param string the table name + * @return bool + */ + function optimize_table($table_name) + { + $sql = $this->_optimize_table($table_name); + + if (is_bool($sql)) + { + show_error('db_must_use_set'); + } + + $query = $this->db->query($sql); + $res = $query->result_array(); + + // Note: Due to a bug in current() that affects some versions + // of PHP we can not pass function call directly into it + return current($res); + } + + // -------------------------------------------------------------------- + + /** + * Optimize Database + * + * @access public + * @return array + */ + function optimize_database() + { + $result = array(); + foreach ($this->db->list_tables() as $table_name) + { + $sql = $this->_optimize_table($table_name); + + if (is_bool($sql)) + { + return $sql; + } + + $query = $this->db->query($sql); + + // Build the result array... + // Note: Due to a bug in current() that affects some versions + // of PHP we can not pass function call directly into it + $res = $query->result_array(); + $res = current($res); + $key = str_replace($this->db->database.'.', '', current($res)); + $keys = array_keys($res); + unset($res[$keys[0]]); + + $result[$key] = $res; + } + + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Repair Table + * + * @access public + * @param string the table name + * @return bool + */ + function repair_table($table_name) + { + $sql = $this->_repair_table($table_name); + + if (is_bool($sql)) + { + return $sql; + } + + $query = $this->db->query($sql); + + // Note: Due to a bug in current() that affects some versions + // of PHP we can not pass function call directly into it + $res = $query->result_array(); + return current($res); + } + + // -------------------------------------------------------------------- + + /** + * Generate CSV from a query result object + * + * @access public + * @param object The query result object + * @param string The delimiter - comma by default + * @param string The newline character - \n by default + * @param string The enclosure - double quote by default + * @return string + */ + function csv_from_result($query, $delim = ",", $newline = "\n", $enclosure = '"') + { + if ( ! is_object($query) OR ! method_exists($query, 'list_fields')) + { + show_error('You must submit a valid result object'); + } + + $out = ''; + + // First generate the headings from the table column names + foreach ($query->list_fields() as $name) + { + $out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $name).$enclosure.$delim; + } + + $out = rtrim($out); + $out .= $newline; + + // Next blast through the result array and build out the rows + foreach ($query->result_array() as $row) + { + foreach ($row as $item) + { + $out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $item).$enclosure.$delim; + } + $out = rtrim($out); + $out .= $newline; + } + + return $out; + } + + // -------------------------------------------------------------------- + + /** + * Generate XML data from a query result object + * + * @access public + * @param object The query result object + * @param array Any preferences + * @return string + */ + function xml_from_result($query, $params = array()) + { + if ( ! is_object($query) OR ! method_exists($query, 'list_fields')) + { + show_error('You must submit a valid result object'); + } + + // Set our default values + foreach (array('root' => 'root', 'element' => 'element', 'newline' => "\n", 'tab' => "\t") as $key => $val) + { + if ( ! isset($params[$key])) + { + $params[$key] = $val; + } + } + + // Create variables for convenience + extract($params); + + // Load the xml helper + $CI =& get_instance(); + $CI->load->helper('xml'); + + // Generate the result + $xml = "<{$root}>".$newline; + foreach ($query->result_array() as $row) + { + $xml .= $tab."<{$element}>".$newline; + + foreach ($row as $key => $val) + { + $xml .= $tab.$tab."<{$key}>".xml_convert($val)."</{$key}>".$newline; + } + $xml .= $tab."</{$element}>".$newline; + } + $xml .= "</$root>".$newline; + + return $xml; + } + + // -------------------------------------------------------------------- + + /** + * Database Backup + * + * @access public + * @return void + */ + function backup($params = array()) + { + // If the parameters have not been submitted as an + // array then we know that it is simply the table + // name, which is a valid short cut. + if (is_string($params)) + { + $params = array('tables' => $params); + } + + // ------------------------------------------------------ + + // Set up our default preferences + $prefs = array( + 'tables' => array(), + 'ignore' => array(), + 'filename' => '', + 'format' => 'gzip', // gzip, zip, txt + 'add_drop' => TRUE, + 'add_insert' => TRUE, + 'newline' => "\n" + ); + + // Did the user submit any preferences? If so set them.... + if (count($params) > 0) + { + foreach ($prefs as $key => $val) + { + if (isset($params[$key])) + { + $prefs[$key] = $params[$key]; + } + } + } + + // ------------------------------------------------------ + + // Are we backing up a complete database or individual tables? + // If no table names were submitted we'll fetch the entire table list + if (count($prefs['tables']) == 0) + { + $prefs['tables'] = $this->db->list_tables(); + } + + // ------------------------------------------------------ + + // Validate the format + if ( ! in_array($prefs['format'], array('gzip', 'zip', 'txt'), TRUE)) + { + $prefs['format'] = 'txt'; + } + + // ------------------------------------------------------ + + // Is the encoder supported? If not, we'll either issue an + // error or use plain text depending on the debug settings + if (($prefs['format'] == 'gzip' AND ! @function_exists('gzencode')) + OR ($prefs['format'] == 'zip' AND ! @function_exists('gzcompress'))) + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_compression'); + } + + $prefs['format'] = 'txt'; + } + + // ------------------------------------------------------ + + // Set the filename if not provided - Only needed with Zip files + if ($prefs['filename'] == '' AND $prefs['format'] == 'zip') + { + $prefs['filename'] = (count($prefs['tables']) == 1) ? $prefs['tables'] : $this->db->database; + $prefs['filename'] .= '_'.date('Y-m-d_H-i', time()); + } + + // ------------------------------------------------------ + + // Was a Gzip file requested? + if ($prefs['format'] == 'gzip') + { + return gzencode($this->_backup($prefs)); + } + + // ------------------------------------------------------ + + // Was a text file requested? + if ($prefs['format'] == 'txt') + { + return $this->_backup($prefs); + } + + // ------------------------------------------------------ + + // Was a Zip file requested? + if ($prefs['format'] == 'zip') + { + // If they included the .zip file extension we'll remove it + if (preg_match("|.+?\.zip$|", $prefs['filename'])) + { + $prefs['filename'] = str_replace('.zip', '', $prefs['filename']); + } + + // Tack on the ".sql" file extension if needed + if ( ! preg_match("|.+?\.sql$|", $prefs['filename'])) + { + $prefs['filename'] .= '.sql'; + } + + // Load the Zip class and output it + + $CI =& get_instance(); + $CI->load->library('zip'); + $CI->zip->add_data($prefs['filename'], $this->_backup($prefs)); + return $CI->zip->get_zip(); + } + + } + +} + + +/* End of file DB_utility.php */ +/* Location: ./system/database/DB_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php new file mode 100755 index 0000000..d011404 --- /dev/null +++ b/system/database/drivers/cubrid/cubrid_driver.php @@ -0,0 +1,792 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author Esen Sagynov + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 2.0.2 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CUBRID Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author Esen Sagynov + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_cubrid_driver extends CI_DB { + + // Default CUBRID Broker port. Will be used unless user + // explicitly specifies another one. + const DEFAULT_PORT = 33000; + + var $dbdriver = 'cubrid'; + + // The character used for escaping - no need in CUBRID + var $_escape_char = ''; + + // clause and character used for LIKE escape sequences - not used in CUBRID + var $_like_escape_str = ''; + var $_like_escape_chr = ''; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = 'SELECT COUNT(*) AS '; + var $_random_keyword = ' RAND()'; // database specific random keyword + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect() + { + // If no port is defined by the user, use the default value + if ($this->port == '') + { + $this->port = self::DEFAULT_PORT; + } + + $conn = cubrid_connect($this->hostname, $this->port, $this->database, $this->username, $this->password); + + if ($conn) + { + // Check if a user wants to run queries in dry, i.e. run the + // queries but not commit them. + if (isset($this->auto_commit) && ! $this->auto_commit) + { + cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_FALSE); + } + else + { + cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_TRUE); + $this->auto_commit = TRUE; + } + } + + return $conn; + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * In CUBRID persistent DB connection is supported natively in CUBRID + * engine which can be configured in the CUBRID Broker configuration + * file by setting the CCI_PCONNECT parameter to ON. In that case, all + * connections established between the client application and the + * server will become persistent. This is calling the same + * @cubrid_connect function will establish persisten connection + * considering that the CCI_PCONNECT is ON. + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + return $this->db_connect(); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + if (cubrid_ping($this->conn_id) === FALSE) + { + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + // In CUBRID there is no need to select a database as the database + // is chosen at the connection time. + // So, to determine if the database is "selected", all we have to + // do is ping the server and return that value. + return cubrid_ping($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + // In CUBRID, there is no need to set charset or collation. + // This is why returning true will allow the application continue + // its normal process. + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + // To obtain the CUBRID Server version, no need to run the SQL query. + // CUBRID PHP API provides a function to determin this value. + // This is why we also need to add 'cubrid' value to the list of + // $driver_version_exceptions array in DB_driver class in + // version() function. + return cubrid_get_server_info($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return resource + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + return @cubrid_query($sql, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + // No need to prepare + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + if (cubrid_get_autocommit($this->conn_id)) + { + cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_FALSE); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + cubrid_commit($this->conn_id); + + if ($this->auto_commit && ! cubrid_get_autocommit($this->conn_id)) + { + cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_TRUE); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + cubrid_rollback($this->conn_id); + + if ($this->auto_commit && ! cubrid_get_autocommit($this->conn_id)) + { + cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_TRUE); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + if (function_exists('cubrid_real_escape_string') AND is_resource($this->conn_id)) + { + $str = cubrid_real_escape_string($str, $this->conn_id); + } + else + { + $str = addslashes($str); + } + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return @cubrid_affected_rows($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @access public + * @return integer + */ + function insert_id() + { + return @cubrid_insert_id($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified table + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + $sql = "SHOW TABLES"; + + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + $sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%'"; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access public + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + return "SHOW COLUMNS FROM ".$this->_protect_identifiers($table, TRUE, NULL, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "SELECT * FROM ".$table." LIMIT 1"; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + return cubrid_error($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + return cubrid_errno($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return '('.implode(', ', $tables).')'; + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (\"".implode('", "', $keys)."\") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + + /** + * Replace statement + * + * Generates a platform-specific replace string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _replace($table, $keys, $values) + { + return "REPLACE INTO ".$table." (\"".implode('", "', $keys)."\") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Insert_batch statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert_batch($table, $keys, $values) + { + return "INSERT INTO ".$table." (\"".implode('", "', $keys)."\") VALUES ".implode(', ', $values); + } + + // -------------------------------------------------------------------- + + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = sprintf('"%s" = %s', $key, $val); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + // -------------------------------------------------------------------- + + + /** + * Update_Batch statement + * + * Generates a platform-specific batch update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @return string + */ + function _update_batch($table, $values, $index, $where = NULL) + { + $ids = array(); + $where = ($where != '' AND count($where) >=1) ? implode(" ", $where).' AND ' : ''; + + foreach ($values as $key => $val) + { + $ids[] = $val[$index]; + + foreach (array_keys($val) as $field) + { + if ($field != $index) + { + $final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field]; + } + } + } + + $sql = "UPDATE ".$table." SET "; + $cases = ''; + + foreach ($final as $k => $v) + { + $cases .= $k.' = CASE '."\n"; + foreach ($v as $row) + { + $cases .= $row."\n"; + } + + $cases .= 'ELSE '.$k.' END, '; + } + + $sql .= substr($cases, 0, -2); + + $sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')'; + + return $sql; + } + + // -------------------------------------------------------------------- + + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return "TRUNCATE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + if ($offset == 0) + { + $offset = ''; + } + else + { + $offset .= ", "; + } + + return $sql."LIMIT ".$offset.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + @cubrid_close($conn_id); + } + +} + + +/* End of file cubrid_driver.php */ +/* Location: ./system/database/drivers/cubrid/cubrid_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/cubrid/cubrid_forge.php b/system/database/drivers/cubrid/cubrid_forge.php new file mode 100755 index 0000000..bab03f7 --- /dev/null +++ b/system/database/drivers/cubrid/cubrid_forge.php @@ -0,0 +1,288 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author Esen Sagynov + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CUBRID Forge Class + * + * @category Database + * @author Esen Sagynov + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_cubrid_forge extends CI_DB_forge { + + /** + * Create database + * + * @access private + * @param string the database name + * @return bool + */ + function _create_database($name) + { + // CUBRID does not allow to create a database in SQL. The GUI tools + // have to be used for this purpose. + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + // CUBRID does not allow to drop a database in SQL. The GUI tools + // have to be used for this purpose. + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Process Fields + * + * @access private + * @param mixed the fields + * @return string + */ + function _process_fields($fields) + { + $current_field_count = 0; + $sql = ''; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t\"" . $this->db->_protect_identifiers($field) . "\""; + + if (array_key_exists('NAME', $attributes)) + { + $sql .= ' '.$this->db->_protect_identifiers($attributes['NAME']).' '; + } + + if (array_key_exists('TYPE', $attributes)) + { + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + switch ($attributes['TYPE']) + { + case 'decimal': + case 'float': + case 'numeric': + $sql .= '('.implode(',', $attributes['CONSTRAINT']).')'; + break; + case 'enum': // As of version 8.4.0 CUBRID does not support + // enum data type. + break; + case 'set': + $sql .= '("'.implode('","', $attributes['CONSTRAINT']).'")'; + break; + default: + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + } + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + //$sql .= ' UNSIGNED'; + // As of version 8.4.0 CUBRID does not support UNSIGNED INTEGER data type. + // Will be supported in the next release as a part of MySQL Compatibility. + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + + if (array_key_exists('UNIQUE', $attributes) && $attributes['UNIQUE'] === TRUE) + { + $sql .= ' UNIQUE'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param mixed the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + //$sql .= 'IF NOT EXISTS '; + // As of version 8.4.0 CUBRID does not support this SQL syntax. + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + + $sql .= $this->_process_fields($fields); + + // If there is a PK defined + if (count($primary_keys) > 0) + { + $key_name = "pk_" . $table . "_" . + $this->db->_protect_identifiers(implode('_', $primary_keys)); + + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tCONSTRAINT " . $key_name . " PRIMARY KEY(" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key_name = $this->db->_protect_identifiers(implode('_', $key)); + $key = $this->db->_protect_identifiers($key); + } + else + { + $key_name = $this->db->_protect_identifiers($key); + $key = array($key_name); + } + + $sql .= ",\n\tKEY \"{$key_name}\" (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n);"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return string + */ + function _drop_table($table) + { + return "DROP TABLE IF EXISTS ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param array fields + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $fields, $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type "; + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql.$this->db->_protect_identifiers($fields); + } + + $sql .= $this->_process_fields($fields); + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'RENAME TABLE '.$this->db->_protect_identifiers($table_name)." AS ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + +} + +/* End of file cubrid_forge.php */ +/* Location: ./system/database/drivers/cubrid/cubrid_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/cubrid/cubrid_result.php b/system/database/drivers/cubrid/cubrid_result.php new file mode 100755 index 0000000..6f0c2b5 --- /dev/null +++ b/system/database/drivers/cubrid/cubrid_result.php @@ -0,0 +1,202 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author Esen Sagynov + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 2.0.2 + * @filesource + */ + +// -------------------------------------------------------------------- + +/** + * CUBRID Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author Esen Sagynov + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_cubrid_result extends CI_DB_result { + + /** + * Number of rows in the result set + * + * @access public + * @return integer + */ + function num_rows() + { + return @cubrid_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return @cubrid_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + return cubrid_column_names($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $retval = array(); + + $tablePrimaryKeys = array(); + + while ($field = cubrid_fetch_field($this->result_id)) + { + $F = new stdClass(); + $F->name = $field->name; + $F->type = $field->type; + $F->default = $field->def; + $F->max_length = $field->max_length; + + // At this moment primary_key property is not returned when + // cubrid_fetch_field is called. The following code will + // provide a patch for it. primary_key property will be added + // in the next release. + + // TODO: later version of CUBRID will provide primary_key + // property. + // When PK is defined in CUBRID, an index is automatically + // created in the db_index system table in the form of + // pk_tblname_fieldname. So the following will count how many + // columns are there which satisfy this format. + // The query will search for exact single columns, thus + // compound PK is not supported. + $res = cubrid_query($this->conn_id, + "SELECT COUNT(*) FROM db_index WHERE class_name = '" . $field->table . + "' AND is_primary_key = 'YES' AND index_name = 'pk_" . + $field->table . "_" . $field->name . "'" + ); + + if ($res) + { + $row = cubrid_fetch_array($res, CUBRID_NUM); + $F->primary_key = ($row[0] > 0 ? 1 : null); + } + else + { + $F->primary_key = null; + } + + if (is_resource($res)) + { + cubrid_close_request($res); + $this->result_id = FALSE; + } + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if(is_resource($this->result_id) || + get_resource_type($this->result_id) == "Unknown" && + preg_match('/Resource id #/', strval($this->result_id))) + { + cubrid_close_request($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return cubrid_data_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return cubrid_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + return cubrid_fetch_object($this->result_id); + } + +} + + +/* End of file cubrid_result.php */ +/* Location: ./system/database/drivers/cubrid/cubrid_result.php */ \ No newline at end of file diff --git a/system/database/drivers/cubrid/cubrid_utility.php b/system/database/drivers/cubrid/cubrid_utility.php new file mode 100755 index 0000000..cd16d1e --- /dev/null +++ b/system/database/drivers/cubrid/cubrid_utility.php @@ -0,0 +1,108 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author Esen Sagynov + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CUBRID Utility Class + * + * @category Database + * @author Esen Sagynov + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_cubrid_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return array + */ + function _list_databases() + { + // CUBRID does not allow to see the list of all databases on the + // server. It is the way its architecture is designed. Every + // database is independent and isolated. + // For this reason we can return only the name of the currect + // connected database. + if ($this->conn_id) + { + return "SELECT '" . $this->database . "'"; + } + else + { + return FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + * @link http://www.cubrid.org/manual/840/en/Optimize%20Database + */ + function _optimize_table($table) + { + // No SQL based support in CUBRID as of version 8.4.0. Database or + // table optimization can be performed using CUBRID Manager + // database administration tool. See the link above for more info. + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + * @link http://www.cubrid.org/manual/840/en/Checking%20Database%20Consistency + */ + function _repair_table($table) + { + // Not supported in CUBRID as of version 8.4.0. Database or + // table consistency can be checked using CUBRID Manager + // database administration tool. See the link above for more info. + return FALSE; + } + + // -------------------------------------------------------------------- + /** + * CUBRID Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // No SQL based support in CUBRID as of version 8.4.0. Database or + // table backup can be performed using CUBRID Manager + // database administration tool. + return $this->db->display_error('db_unsuported_feature'); + } +} + +/* End of file cubrid_utility.php */ +/* Location: ./system/database/drivers/cubrid/cubrid_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/cubrid/index.html b/system/database/drivers/cubrid/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/cubrid/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/index.html b/system/database/drivers/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/mssql/index.html b/system/database/drivers/mssql/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/mssql/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php new file mode 100755 index 0000000..b39bd93 --- /dev/null +++ b/system/database/drivers/mssql/mssql_driver.php @@ -0,0 +1,667 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MS SQL Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mssql_driver extends CI_DB { + + var $dbdriver = 'mssql'; + + // The character used for escaping + var $_escape_char = ''; + + // clause and character used for LIKE escape sequences + var $_like_escape_str = " ESCAPE '%s' "; + var $_like_escape_chr = '!'; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = "SELECT COUNT(*) AS "; + var $_random_keyword = ' ASC'; // not currently supported + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect() + { + if ($this->port != '') + { + $this->hostname .= ','.$this->port; + } + + return @mssql_connect($this->hostname, $this->username, $this->password); + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + if ($this->port != '') + { + $this->hostname .= ','.$this->port; + } + + return @mssql_pconnect($this->hostname, $this->username, $this->password); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + // not implemented in MSSQL + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + // Note: The brackets are required in the event that the DB name + // contains reserved characters + return @mssql_select_db('['.$this->database.']', $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + // @todo - add support if needed + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return resource + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + return @mssql_query($sql, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + $this->simple_query('BEGIN TRAN'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $this->simple_query('COMMIT TRAN'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $this->simple_query('ROLLBACK TRAN'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + // Escape single quotes + $str = str_replace("'", "''", remove_invisible_characters($str)); + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace( + array($this->_like_escape_chr, '%', '_'), + array($this->_like_escape_chr.$this->_like_escape_chr, $this->_like_escape_chr.'%', $this->_like_escape_chr.'_'), + $str + ); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return @mssql_rows_affected($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * Returns the last id created in the Identity column. + * + * @access public + * @return integer + */ + function insert_id() + { + $ver = self::_parse_major_version($this->version()); + $sql = ($ver >= 8 ? "SELECT SCOPE_IDENTITY() AS last_id" : "SELECT @@IDENTITY AS last_id"); + $query = $this->query($sql); + $row = $query->row(); + return $row->last_id; + } + + // -------------------------------------------------------------------- + + /** + * Parse major version + * + * Grabs the major version number from the + * database server version string passed in. + * + * @access private + * @param string $version + * @return int16 major version number + */ + function _parse_major_version($version) + { + preg_match('/([0-9]+)\.([0-9]+)\.([0-9]+)/', $version, $ver_info); + return $ver_info[1]; // return the major version b/c that's all we're interested in. + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + return "SELECT @@VERSION AS ver"; + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + $sql = "SELECT name FROM sysobjects WHERE type = 'U' ORDER BY name"; + + // for future compatibility + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + //$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); + return FALSE; // not currently supported + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * List column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access private + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$table."'"; + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "SELECT TOP 1 * FROM ".$table; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + return mssql_get_last_message(); + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + // Are error numbers supported? + return ''; + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return implode(', ', $tables); + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = $key." = ".$val; + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return "TRUNCATE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + $i = $limit + $offset; + + return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$i.' ', $sql); + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + @mssql_close($conn_id); + } + +} + + + +/* End of file mssql_driver.php */ +/* Location: ./system/database/drivers/mssql/mssql_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/mssql/mssql_forge.php b/system/database/drivers/mssql/mssql_forge.php new file mode 100755 index 0000000..70b20ec --- /dev/null +++ b/system/database/drivers/mssql/mssql_forge.php @@ -0,0 +1,248 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MS SQL Forge Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mssql_forge extends CI_DB_forge { + + /** + * Create database + * + * @access private + * @param string the database name + * @return bool + */ + function _create_database($name) + { + return "CREATE DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + return "DROP DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return bool + */ + function _drop_table($table) + { + return "DROP TABLE ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param array the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + $current_field_count = 0; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + if (count($primary_keys) > 0) + { + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key = $this->db->_protect_identifiers($key); + } + else + { + $key = array($this->db->_protect_identifiers($key)); + } + + $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n)"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param string the table name + * @param string the column definition + * @param string the default value + * @param boolean should 'NOT NULL' be added + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql; + } + + $sql .= " $column_definition"; + + if ($default_value != '') + { + $sql .= " DEFAULT \"$default_value\""; + } + + if ($null === NULL) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + + } + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + // I think this syntax will work, but can find little documentation on renaming tables in MSSQL + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + +} + +/* End of file mssql_forge.php */ +/* Location: ./system/database/drivers/mssql/mssql_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php new file mode 100755 index 0000000..2897ca5 --- /dev/null +++ b/system/database/drivers/mssql/mssql_result.php @@ -0,0 +1,169 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MS SQL Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mssql_result extends CI_DB_result { + + /** + * Number of rows in the result set + * + * @access public + * @return integer + */ + function num_rows() + { + return @mssql_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return @mssql_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + $field_names = array(); + while ($field = mssql_fetch_field($this->result_id)) + { + $field_names[] = $field->name; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $retval = array(); + while ($field = mssql_fetch_field($this->result_id)) + { + $F = new stdClass(); + $F->name = $field->name; + $F->type = $field->type; + $F->max_length = $field->max_length; + $F->primary_key = 0; + $F->default = ''; + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if (is_resource($this->result_id)) + { + mssql_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return mssql_data_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return mssql_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + return mssql_fetch_object($this->result_id); + } + +} + + +/* End of file mssql_result.php */ +/* Location: ./system/database/drivers/mssql/mssql_result.php */ \ No newline at end of file diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php new file mode 100755 index 0000000..48ecbc7 --- /dev/null +++ b/system/database/drivers/mssql/mssql_utility.php @@ -0,0 +1,88 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MS SQL Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mssql_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return bool + */ + function _list_databases() + { + return "EXEC sp_helpdb"; // Can also be: EXEC sp_databases + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + return FALSE; // Is this supported in MS SQL? + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + return FALSE; // Is this supported in MS SQL? + } + + // -------------------------------------------------------------------- + + /** + * MSSQL Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } + +} + +/* End of file mssql_utility.php */ +/* Location: ./system/database/drivers/mssql/mssql_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/mysql/index.html b/system/database/drivers/mysql/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/mysql/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php new file mode 100755 index 0000000..f87cfea --- /dev/null +++ b/system/database/drivers/mysql/mysql_driver.php @@ -0,0 +1,779 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MySQL Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mysql_driver extends CI_DB { + + var $dbdriver = 'mysql'; + + // The character used for escaping + var $_escape_char = '`'; + + // clause and character used for LIKE escape sequences - not used in MySQL + var $_like_escape_str = ''; + var $_like_escape_chr = ''; + + /** + * Whether to use the MySQL "delete hack" which allows the number + * of affected rows to be shown. Uses a preg_replace when enabled, + * adding a bit more processing to all queries. + */ + var $delete_hack = TRUE; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = 'SELECT COUNT(*) AS '; + var $_random_keyword = ' RAND()'; // database specific random keyword + + // whether SET NAMES must be used to set the character set + var $use_set_names; + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect() + { + if ($this->port != '') + { + $this->hostname .= ':'.$this->port; + } + + return @mysql_connect($this->hostname, $this->username, $this->password, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + if ($this->port != '') + { + $this->hostname .= ':'.$this->port; + } + + return @mysql_pconnect($this->hostname, $this->username, $this->password); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + if (mysql_ping($this->conn_id) === FALSE) + { + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + return @mysql_select_db($this->database, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + if ( ! isset($this->use_set_names)) + { + // mysql_set_charset() requires PHP >= 5.2.3 and MySQL >= 5.0.7, use SET NAMES as fallback + $this->use_set_names = (version_compare(PHP_VERSION, '5.2.3', '>=') && version_compare(mysql_get_server_info(), '5.0.7', '>=')) ? FALSE : TRUE; + } + + if ($this->use_set_names === TRUE) + { + return @mysql_query("SET NAMES '".$this->escape_str($charset)."' COLLATE '".$this->escape_str($collation)."'", $this->conn_id); + } + else + { + return @mysql_set_charset($charset, $this->conn_id); + } + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + return "SELECT version() AS ver"; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return resource + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + return @mysql_query($sql, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + // "DELETE FROM TABLE" returns 0 affected rows This hack modifies + // the query so that it returns the number of affected rows + if ($this->delete_hack === TRUE) + { + if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql)) + { + $sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql); + } + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + $this->simple_query('SET AUTOCOMMIT=0'); + $this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $this->simple_query('COMMIT'); + $this->simple_query('SET AUTOCOMMIT=1'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $this->simple_query('ROLLBACK'); + $this->simple_query('SET AUTOCOMMIT=1'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + if (function_exists('mysql_real_escape_string') AND is_resource($this->conn_id)) + { + $str = mysql_real_escape_string($str, $this->conn_id); + } + elseif (function_exists('mysql_escape_string')) + { + $str = mysql_escape_string($str); + } + else + { + $str = addslashes($str); + } + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return @mysql_affected_rows($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @access public + * @return integer + */ + function insert_id() + { + return @mysql_insert_id($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + $sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char; + + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + $sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%'"; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access public + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + return "SHOW COLUMNS FROM ".$this->_protect_identifiers($table, TRUE, NULL, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "DESCRIBE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + return mysql_error($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + return mysql_errno($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return '('.implode(', ', $tables).')'; + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + + /** + * Replace statement + * + * Generates a platform-specific replace string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _replace($table, $keys, $values) + { + return "REPLACE INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Insert_batch statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert_batch($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values); + } + + // -------------------------------------------------------------------- + + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = $key . ' = ' . $val; + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + // -------------------------------------------------------------------- + + + /** + * Update_Batch statement + * + * Generates a platform-specific batch update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @return string + */ + function _update_batch($table, $values, $index, $where = NULL) + { + $ids = array(); + $where = ($where != '' AND count($where) >=1) ? implode(" ", $where).' AND ' : ''; + + foreach ($values as $key => $val) + { + $ids[] = $val[$index]; + + foreach (array_keys($val) as $field) + { + if ($field != $index) + { + $final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field]; + } + } + } + + $sql = "UPDATE ".$table." SET "; + $cases = ''; + + foreach ($final as $k => $v) + { + $cases .= $k.' = CASE '."\n"; + foreach ($v as $row) + { + $cases .= $row."\n"; + } + + $cases .= 'ELSE '.$k.' END, '; + } + + $sql .= substr($cases, 0, -2); + + $sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')'; + + return $sql; + } + + // -------------------------------------------------------------------- + + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return "TRUNCATE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + if ($offset == 0) + { + $offset = ''; + } + else + { + $offset .= ", "; + } + + return $sql."LIMIT ".$offset.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + @mysql_close($conn_id); + } + +} + + +/* End of file mysql_driver.php */ +/* Location: ./system/database/drivers/mysql/mysql_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php new file mode 100755 index 0000000..c1cae13 --- /dev/null +++ b/system/database/drivers/mysql/mysql_forge.php @@ -0,0 +1,273 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MySQL Forge Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mysql_forge extends CI_DB_forge { + + /** + * Create database + * + * @access private + * @param string the database name + * @return bool + */ + function _create_database($name) + { + return "CREATE DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + return "DROP DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Process Fields + * + * @access private + * @param mixed the fields + * @return string + */ + function _process_fields($fields) + { + $current_field_count = 0; + $sql = ''; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + if (array_key_exists('NAME', $attributes)) + { + $sql .= ' '.$this->db->_protect_identifiers($attributes['NAME']).' '; + } + + if (array_key_exists('TYPE', $attributes)) + { + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + switch ($attributes['TYPE']) + { + case 'decimal': + case 'float': + case 'numeric': + $sql .= '('.implode(',', $attributes['CONSTRAINT']).')'; + break; + + case 'enum': + case 'set': + $sql .= '("'.implode('","', $attributes['CONSTRAINT']).'")'; + break; + + default: + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + } + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param mixed the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + + $sql .= $this->_process_fields($fields); + + if (count($primary_keys) > 0) + { + $key_name = $this->db->_protect_identifiers(implode('_', $primary_keys)); + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY ".$key_name." (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key_name = $this->db->_protect_identifiers(implode('_', $key)); + $key = $this->db->_protect_identifiers($key); + } + else + { + $key_name = $this->db->_protect_identifiers($key); + $key = array($key_name); + } + + $sql .= ",\n\tKEY {$key_name} (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n) DEFAULT CHARACTER SET {$this->db->char_set} COLLATE {$this->db->dbcollat};"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return string + */ + function _drop_table($table) + { + return "DROP TABLE IF EXISTS ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param array fields + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $fields, $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type "; + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql.$this->db->_protect_identifiers($fields); + } + + $sql .= $this->_process_fields($fields); + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + +} + +/* End of file mysql_forge.php */ +/* Location: ./system/database/drivers/mysql/mysql_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php new file mode 100755 index 0000000..e1a6e93 --- /dev/null +++ b/system/database/drivers/mysql/mysql_result.php @@ -0,0 +1,174 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// -------------------------------------------------------------------- + +/** + * MySQL Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mysql_result extends CI_DB_result { + + /** + * Number of rows in the result set + * + * @access public + * @return integer + */ + function num_rows() + { + return @mysql_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return @mysql_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + $field_names = array(); + while ($field = mysql_fetch_field($this->result_id)) + { + $field_names[] = $field->name; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $retval = array(); + while ($field = mysql_fetch_object($this->result_id)) + { + preg_match('/([a-zA-Z]+)(\(\d+\))?/', $field->Type, $matches); + + $type = (array_key_exists(1, $matches)) ? $matches[1] : NULL; + $length = (array_key_exists(2, $matches)) ? preg_replace('/[^\d]/', '', $matches[2]) : NULL; + + $F = new stdClass(); + $F->name = $field->Field; + $F->type = $type; + $F->default = $field->Default; + $F->max_length = $length; + $F->primary_key = ( $field->Key == 'PRI' ? 1 : 0 ); + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if (is_resource($this->result_id)) + { + mysql_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return mysql_data_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return mysql_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + return mysql_fetch_object($this->result_id); + } + +} + + +/* End of file mysql_result.php */ +/* Location: ./system/database/drivers/mysql/mysql_result.php */ \ No newline at end of file diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php new file mode 100755 index 0000000..48c4d63 --- /dev/null +++ b/system/database/drivers/mysql/mysql_utility.php @@ -0,0 +1,210 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MySQL Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mysql_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return bool + */ + function _list_databases() + { + return "SHOW DATABASES"; + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + return "OPTIMIZE TABLE ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + return "REPAIR TABLE ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + /** + * MySQL Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + if (count($params) == 0) + { + return FALSE; + } + + // Extract the prefs for simplicity + extract($params); + + // Build the output + $output = ''; + foreach ((array)$tables as $table) + { + // Is the table in the "ignore" list? + if (in_array($table, (array)$ignore, TRUE)) + { + continue; + } + + // Get the table schema + $query = $this->db->query("SHOW CREATE TABLE `".$this->db->database.'`.`'.$table.'`'); + + // No result means the table name was invalid + if ($query === FALSE) + { + continue; + } + + // Write out the table schema + $output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline; + + if ($add_drop == TRUE) + { + $output .= 'DROP TABLE IF EXISTS '.$table.';'.$newline.$newline; + } + + $i = 0; + $result = $query->result_array(); + foreach ($result[0] as $val) + { + if ($i++ % 2) + { + $output .= $val.';'.$newline.$newline; + } + } + + // If inserts are not needed we're done... + if ($add_insert == FALSE) + { + continue; + } + + // Grab all the data from the current table + $query = $this->db->query("SELECT * FROM $table"); + + if ($query->num_rows() == 0) + { + continue; + } + + // Fetch the field names and determine if the field is an + // integer type. We use this info to decide whether to + // surround the data with quotes or not + + $i = 0; + $field_str = ''; + $is_int = array(); + while ($field = mysql_fetch_field($query->result_id)) + { + // Most versions of MySQL store timestamp as a string + $is_int[$i] = (in_array( + strtolower(mysql_field_type($query->result_id, $i)), + array('tinyint', 'smallint', 'mediumint', 'int', 'bigint'), //, 'timestamp'), + TRUE) + ) ? TRUE : FALSE; + + // Create a string of field names + $field_str .= '`'.$field->name.'`, '; + $i++; + } + + // Trim off the end comma + $field_str = preg_replace( "/, $/" , "" , $field_str); + + + // Build the insert string + foreach ($query->result_array() as $row) + { + $val_str = ''; + + $i = 0; + foreach ($row as $v) + { + // Is the value NULL? + if ($v === NULL) + { + $val_str .= 'NULL'; + } + else + { + // Escape the data if it's not an integer + if ($is_int[$i] == FALSE) + { + $val_str .= $this->db->escape($v); + } + else + { + $val_str .= $v; + } + } + + // Append a comma + $val_str .= ', '; + $i++; + } + + // Remove the comma at the end of the string + $val_str = preg_replace( "/, $/" , "" , $val_str); + + // Build the INSERT string + $output .= 'INSERT INTO '.$table.' ('.$field_str.') VALUES ('.$val_str.');'.$newline; + } + + $output .= $newline.$newline; + } + + return $output; + } +} + +/* End of file mysql_utility.php */ +/* Location: ./system/database/drivers/mysql/mysql_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/mysqli/index.html b/system/database/drivers/mysqli/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/mysqli/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php new file mode 100755 index 0000000..d3200f3 --- /dev/null +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -0,0 +1,776 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MySQLi Database Adapter Class - MySQLi only works with PHP 5 + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mysqli_driver extends CI_DB { + + var $dbdriver = 'mysqli'; + + // The character used for escaping + var $_escape_char = '`'; + + // clause and character used for LIKE escape sequences - not used in MySQL + var $_like_escape_str = ''; + var $_like_escape_chr = ''; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = "SELECT COUNT(*) AS "; + var $_random_keyword = ' RAND()'; // database specific random keyword + + /** + * Whether to use the MySQL "delete hack" which allows the number + * of affected rows to be shown. Uses a preg_replace when enabled, + * adding a bit more processing to all queries. + */ + var $delete_hack = TRUE; + + // whether SET NAMES must be used to set the character set + var $use_set_names; + + // -------------------------------------------------------------------- + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect() + { + if ($this->port != '') + { + return @mysqli_connect($this->hostname, $this->username, $this->password, $this->database, $this->port); + } + else + { + return @mysqli_connect($this->hostname, $this->username, $this->password, $this->database); + } + + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + return $this->db_connect(); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + if (mysqli_ping($this->conn_id) === FALSE) + { + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + return @mysqli_select_db($this->conn_id, $this->database); + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access private + * @param string + * @param string + * @return resource + */ + function _db_set_charset($charset, $collation) + { + if ( ! isset($this->use_set_names)) + { + // mysqli_set_charset() requires MySQL >= 5.0.7, use SET NAMES as fallback + $this->use_set_names = (version_compare(mysqli_get_server_info($this->conn_id), '5.0.7', '>=')) ? FALSE : TRUE; + } + + if ($this->use_set_names === TRUE) + { + return @mysqli_query($this->conn_id, "SET NAMES '".$this->escape_str($charset)."' COLLATE '".$this->escape_str($collation)."'"); + } + else + { + return @mysqli_set_charset($this->conn_id, $charset); + } + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + return "SELECT version() AS ver"; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return resource + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + $result = @mysqli_query($this->conn_id, $sql); + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + // "DELETE FROM TABLE" returns 0 affected rows This hack modifies + // the query so that it returns the number of affected rows + if ($this->delete_hack === TRUE) + { + if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql)) + { + $sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql); + } + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + $this->simple_query('SET AUTOCOMMIT=0'); + $this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $this->simple_query('COMMIT'); + $this->simple_query('SET AUTOCOMMIT=1'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $this->simple_query('ROLLBACK'); + $this->simple_query('SET AUTOCOMMIT=1'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + if (function_exists('mysqli_real_escape_string') AND is_object($this->conn_id)) + { + $str = mysqli_real_escape_string($this->conn_id, $str); + } + elseif (function_exists('mysql_escape_string')) + { + $str = mysql_escape_string($str); + } + else + { + $str = addslashes($str); + } + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return @mysqli_affected_rows($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @access public + * @return integer + */ + function insert_id() + { + return @mysqli_insert_id($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + $sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char; + + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + $sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%'"; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access public + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + return "SHOW COLUMNS FROM ".$this->_protect_identifiers($table, TRUE, NULL, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "DESCRIBE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + return mysqli_error($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + return mysqli_errno($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return '('.implode(', ', $tables).')'; + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Insert_batch statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert_batch($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values); + } + + // -------------------------------------------------------------------- + + + /** + * Replace statement + * + * Generates a platform-specific replace string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _replace($table, $keys, $values) + { + return "REPLACE INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = $key." = ".$val; + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Update_Batch statement + * + * Generates a platform-specific batch update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @return string + */ + function _update_batch($table, $values, $index, $where = NULL) + { + $ids = array(); + $where = ($where != '' AND count($where) >=1) ? implode(" ", $where).' AND ' : ''; + + foreach ($values as $key => $val) + { + $ids[] = $val[$index]; + + foreach (array_keys($val) as $field) + { + if ($field != $index) + { + $final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field]; + } + } + } + + $sql = "UPDATE ".$table." SET "; + $cases = ''; + + foreach ($final as $k => $v) + { + $cases .= $k.' = CASE '."\n"; + foreach ($v as $row) + { + $cases .= $row."\n"; + } + + $cases .= 'ELSE '.$k.' END, '; + } + + $sql .= substr($cases, 0, -2); + + $sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')'; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return "TRUNCATE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + $sql .= "LIMIT ".$limit; + + if ($offset > 0) + { + $sql .= " OFFSET ".$offset; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + @mysqli_close($conn_id); + } + + +} + + +/* End of file mysqli_driver.php */ +/* Location: ./system/database/drivers/mysqli/mysqli_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/mysqli/mysqli_forge.php b/system/database/drivers/mysqli/mysqli_forge.php new file mode 100755 index 0000000..2605494 --- /dev/null +++ b/system/database/drivers/mysqli/mysqli_forge.php @@ -0,0 +1,258 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MySQLi Forge Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mysqli_forge extends CI_DB_forge { + + /** + * Create database + * + * @access private + * @param string the database name + * @return bool + */ + function _create_database($name) + { + return "CREATE DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + return "DROP DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Process Fields + * + * @access private + * @param mixed the fields + * @return string + */ + function _process_fields($fields) + { + $current_field_count = 0; + $sql = ''; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + if (array_key_exists('NAME', $attributes)) + { + $sql .= ' '.$this->db->_protect_identifiers($attributes['NAME']).' '; + } + + if (array_key_exists('TYPE', $attributes)) + { + $sql .= ' '.$attributes['TYPE']; + } + + if (array_key_exists('CONSTRAINT', $attributes)) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param mixed the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + + $sql .= $this->_process_fields($fields); + + if (count($primary_keys) > 0) + { + $key_name = $this->db->_protect_identifiers(implode('_', $primary_keys)); + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY ".$key_name." (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key_name = $this->db->_protect_identifiers(implode('_', $key)); + $key = $this->db->_protect_identifiers($key); + } + else + { + $key_name = $this->db->_protect_identifiers($key); + $key = array($key_name); + } + + $sql .= ",\n\tKEY {$key_name} (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n) DEFAULT CHARACTER SET {$this->db->char_set} COLLATE {$this->db->dbcollat};"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return string + */ + function _drop_table($table) + { + return "DROP TABLE IF EXISTS ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param array fields + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $fields, $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type "; + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql.$this->db->_protect_identifiers($fields); + } + + $sql .= $this->_process_fields($fields); + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + +} + +/* End of file mysqli_forge.php */ +/* Location: ./system/database/drivers/mysqli/mysqli_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php new file mode 100755 index 0000000..124d4e5 --- /dev/null +++ b/system/database/drivers/mysqli/mysqli_result.php @@ -0,0 +1,174 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MySQLi Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mysqli_result extends CI_DB_result { + + /** + * Number of rows in the result set + * + * @access public + * @return integer + */ + function num_rows() + { + return @mysqli_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return @mysqli_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + $field_names = array(); + while ($field = mysqli_fetch_field($this->result_id)) + { + $field_names[] = $field->name; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $retval = array(); + while ($field = mysqli_fetch_object($this->result_id)) + { + preg_match('/([a-zA-Z]+)(\(\d+\))?/', $field->Type, $matches); + + $type = (array_key_exists(1, $matches)) ? $matches[1] : NULL; + $length = (array_key_exists(2, $matches)) ? preg_replace('/[^\d]/', '', $matches[2]) : NULL; + + $F = new stdClass(); + $F->name = $field->Field; + $F->type = $type; + $F->default = $field->Default; + $F->max_length = $length; + $F->primary_key = ( $field->Key == 'PRI' ? 1 : 0 ); + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if (is_object($this->result_id)) + { + mysqli_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return mysqli_data_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return mysqli_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + return mysqli_fetch_object($this->result_id); + } + +} + + +/* End of file mysqli_result.php */ +/* Location: ./system/database/drivers/mysqli/mysqli_result.php */ \ No newline at end of file diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php new file mode 100755 index 0000000..e17889b --- /dev/null +++ b/system/database/drivers/mysqli/mysqli_utility.php @@ -0,0 +1,87 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * MySQLi Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_mysqli_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return bool + */ + function _list_databases() + { + return "SHOW DATABASES"; + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + return "OPTIMIZE TABLE ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + return "REPAIR TABLE ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * MySQLi Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } +} + +/* End of file mysqli_utility.php */ +/* Location: ./system/database/drivers/mysqli/mysqli_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/oci8/index.html b/system/database/drivers/oci8/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/oci8/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php new file mode 100755 index 0000000..930177e --- /dev/null +++ b/system/database/drivers/oci8/oci8_driver.php @@ -0,0 +1,808 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * oci8 Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ + +/** + * oci8 Database Adapter Class + * + * This is a modification of the DB_driver class to + * permit access to oracle databases + * + * @author Kelly McArdle + * + */ + +class CI_DB_oci8_driver extends CI_DB { + + var $dbdriver = 'oci8'; + + // The character used for excaping + var $_escape_char = '"'; + + // clause and character used for LIKE escape sequences + var $_like_escape_str = " escape '%s' "; + var $_like_escape_chr = '!'; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = "SELECT COUNT(1) AS "; + var $_random_keyword = ' ASC'; // not currently supported + + // Set "auto commit" by default + var $_commit = OCI_COMMIT_ON_SUCCESS; + + // need to track statement id and cursor id + var $stmt_id; + var $curs_id; + + // if we use a limit, we will add a field that will + // throw off num_fields later + var $limit_used; + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + public function db_connect() + { + return @oci_connect($this->username, $this->password, $this->hostname, $this->char_set); + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + public function db_pconnect() + { + return @oci_pconnect($this->username, $this->password, $this->hostname, $this->char_set); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + public function reconnect() + { + // not implemented in oracle + return; + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + public function db_select() + { + // Not in Oracle - schemas are actually usernames + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + public function db_set_charset($charset, $collation) + { + // @todo - add support if needed + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access protected + * @return string + */ + protected function _version() + { + return oci_server_version($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access protected called by the base class + * @param string an SQL query + * @return resource + */ + protected function _execute($sql) + { + // oracle must parse the query before it is run. All of the actions with + // the query are based on the statement id returned by ociparse + $this->stmt_id = FALSE; + $this->_set_stmt_id($sql); + oci_set_prefetch($this->stmt_id, 1000); + return @oci_execute($this->stmt_id, $this->_commit); + } + + /** + * Generate a statement ID + * + * @access private + * @param string an SQL query + * @return none + */ + private function _set_stmt_id($sql) + { + if ( ! is_resource($this->stmt_id)) + { + $this->stmt_id = oci_parse($this->conn_id, $this->_prep_query($sql)); + } + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + private function _prep_query($sql) + { + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * getCursor. Returns a cursor from the datbase + * + * @access public + * @return cursor id + */ + public function get_cursor() + { + $this->curs_id = oci_new_cursor($this->conn_id); + return $this->curs_id; + } + + // -------------------------------------------------------------------- + + /** + * Stored Procedure. Executes a stored procedure + * + * @access public + * @param package package stored procedure is in + * @param procedure stored procedure to execute + * @param params array of parameters + * @return array + * + * params array keys + * + * KEY OPTIONAL NOTES + * name no the name of the parameter should be in :<param_name> format + * value no the value of the parameter. If this is an OUT or IN OUT parameter, + * this should be a reference to a variable + * type yes the type of the parameter + * length yes the max size of the parameter + */ + public function stored_procedure($package, $procedure, $params) + { + if ($package == '' OR $procedure == '' OR ! is_array($params)) + { + if ($this->db_debug) + { + log_message('error', 'Invalid query: '.$package.'.'.$procedure); + return $this->display_error('db_invalid_query'); + } + return FALSE; + } + + // build the query string + $sql = "begin $package.$procedure("; + + $have_cursor = FALSE; + foreach ($params as $param) + { + $sql .= $param['name'] . ","; + + if (array_key_exists('type', $param) && ($param['type'] === OCI_B_CURSOR)) + { + $have_cursor = TRUE; + } + } + $sql = trim($sql, ",") . "); end;"; + + $this->stmt_id = FALSE; + $this->_set_stmt_id($sql); + $this->_bind_params($params); + $this->query($sql, FALSE, $have_cursor); + } + + // -------------------------------------------------------------------- + + /** + * Bind parameters + * + * @access private + * @return none + */ + private function _bind_params($params) + { + if ( ! is_array($params) OR ! is_resource($this->stmt_id)) + { + return; + } + + foreach ($params as $param) + { + foreach (array('name', 'value', 'type', 'length') as $val) + { + if ( ! isset($param[$val])) + { + $param[$val] = ''; + } + } + + oci_bind_by_name($this->stmt_id, $param['name'], $param['value'], $param['length'], $param['type']); + } + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + public function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + $this->_commit = OCI_DEFAULT; + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + public function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $ret = oci_commit($this->conn_id); + $this->_commit = OCI_COMMIT_ON_SUCCESS; + return $ret; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + public function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $ret = oci_rollback($this->conn_id); + $this->_commit = OCI_COMMIT_ON_SUCCESS; + return $ret; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + public function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + $str = remove_invisible_characters($str); + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace( array('%', '_', $this->_like_escape_chr), + array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), + $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + public function affected_rows() + { + return @oci_num_rows($this->stmt_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @access public + * @return integer + */ + public function insert_id() + { + // not supported in oracle + return $this->display_error('db_unsupported_function'); + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + public function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query == FALSE) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access protected + * @param boolean + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = "SELECT TABLE_NAME FROM ALL_TABLES"; + + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + $sql .= " WHERE TABLE_NAME LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access protected + * @param string the table name + * @return string + */ + protected function _list_columns($table = '') + { + return "SELECT COLUMN_NAME FROM all_tab_columns WHERE table_name = '$table'"; + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + protected function _field_data($table) + { + return "SELECT * FROM ".$table." where rownum = 1"; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access protected + * @return string + */ + protected function _error_message() + { + // If the error was during connection, no conn_id should be passed + $error = is_resource($this->conn_id) ? oci_error($this->conn_id) : oci_error(); + return $error['message']; + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access protected + * @return integer + */ + protected function _error_number() + { + // Same as _error_message() + $error = is_resource($this->conn_id) ? oci_error($this->conn_id) : oci_error(); + return $error['code']; + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access protected + * @param string + * @return string + */ + protected function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access protected + * @param type + * @return type + */ + protected function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return implode(', ', $tables); + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + protected function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Insert_batch statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access protected + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + protected function _insert_batch($table, $keys, $values) + { + $keys = implode(', ', $keys); + $sql = "INSERT ALL\n"; + + for ($i = 0, $c = count($values); $i < $c; $i++) + { + $sql .= ' INTO ' . $table . ' (' . $keys . ') VALUES ' . $values[$i] . "\n"; + } + + $sql .= 'SELECT * FROM dual'; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access protected + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + protected function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = $key." = ".$val; + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access protected + * @param string the table name + * @return string + */ + protected function _truncate($table) + { + return "TRUNCATE TABLE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access protected + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + protected function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access protected + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + protected function _limit($sql, $limit, $offset) + { + $limit = $offset + $limit; + $newsql = "SELECT * FROM (select inner_query.*, rownum rnum FROM ($sql) inner_query WHERE rownum < $limit)"; + + if ($offset != 0) + { + $newsql .= " WHERE rnum >= $offset"; + } + + // remember that we used limits + $this->limit_used = TRUE; + + return $newsql; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access protected + * @param resource + * @return void + */ + protected function _close($conn_id) + { + @oci_close($conn_id); + } + + +} + + + +/* End of file oci8_driver.php */ +/* Location: ./system/database/drivers/oci8/oci8_driver.php */ diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php new file mode 100755 index 0000000..3cd1758 --- /dev/null +++ b/system/database/drivers/oci8/oci8_forge.php @@ -0,0 +1,248 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Oracle Forge Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_oci8_forge extends CI_DB_forge { + + /** + * Create database + * + * @access public + * @param string the database name + * @return bool + */ + function _create_database($name) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param array the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + $current_field_count = 0; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + if (count($primary_keys) > 0) + { + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key = $this->db->_protect_identifiers($key); + } + else + { + $key = array($this->db->_protect_identifiers($key)); + } + + $sql .= ",\n\tUNIQUE COLUMNS (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n)"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return bool + */ + function _drop_table($table) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param string the table name + * @param string the column definition + * @param string the default value + * @param boolean should 'NOT NULL' be added + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql; + } + + $sql .= " $column_definition"; + + if ($default_value != '') + { + $sql .= " DEFAULT \"$default_value\""; + } + + if ($null === NULL) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + + } + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + + +} + +/* End of file oci8_forge.php */ +/* Location: ./system/database/drivers/oci8/oci8_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php new file mode 100755 index 0000000..3421278 --- /dev/null +++ b/system/database/drivers/oci8/oci8_result.php @@ -0,0 +1,217 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * oci8 Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_oci8_result extends CI_DB_result { + + public $stmt_id; + public $curs_id; + public $limit_used; + + /** + * Number of rows in the result set. + * + * Oracle doesn't have a graceful way to retun the number of rows + * so we have to use what amounts to a hack. + * + * @return integer + */ + public function num_rows() + { + if ($this->num_rows === 0 && count($this->result_array()) > 0) + { + $this->num_rows = count($this->result_array()); + @oci_execute($this->stmt_id); + + if ($this->curs_id) + { + @oci_execute($this->curs_id); + } + } + + return $this->num_rows; + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + public function num_fields() + { + $count = @oci_num_fields($this->stmt_id); + + // if we used a limit we subtract it + if ($this->limit_used) + { + $count = $count - 1; + } + + return $count; + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + public function list_fields() + { + $field_names = array(); + for ($c = 1, $fieldCount = $this->num_fields(); $c <= $fieldCount; $c++) + { + $field_names[] = oci_field_name($this->stmt_id, $c); + } + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + public function field_data() + { + $retval = array(); + for ($c = 1, $fieldCount = $this->num_fields(); $c <= $fieldCount; $c++) + { + $F = new stdClass(); + $F->name = oci_field_name($this->stmt_id, $c); + $F->type = oci_field_type($this->stmt_id, $c); + $F->max_length = oci_field_size($this->stmt_id, $c); + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + public function free_result() + { + if (is_resource($this->result_id)) + { + oci_free_statement($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access protected + * @return array + */ + protected function _fetch_assoc() + { + $id = ($this->curs_id) ? $this->curs_id : $this->stmt_id; + return oci_fetch_assoc($id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access protected + * @return object + */ + protected function _fetch_object() + { + $id = ($this->curs_id) ? $this->curs_id : $this->stmt_id; + return @oci_fetch_object($id); + } + + // -------------------------------------------------------------------- + + /** + * Query result. "array" version. + * + * @access public + * @return array + */ + public function result_array() + { + if (count($this->result_array) > 0) + { + return $this->result_array; + } + + $row = NULL; + while ($row = $this->_fetch_assoc()) + { + $this->result_array[] = $row; + } + + return $this->result_array; + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access protected + * @return array + */ + protected function _data_seek($n = 0) + { + return FALSE; // Not needed + } + +} + + +/* End of file oci8_result.php */ +/* Location: ./system/database/drivers/oci8/oci8_result.php */ diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php new file mode 100755 index 0000000..854b467 --- /dev/null +++ b/system/database/drivers/oci8/oci8_utility.php @@ -0,0 +1,87 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Oracle Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_oci8_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return bool + */ + function _list_databases() + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + return FALSE; // Is this supported in Oracle? + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + return FALSE; // Is this supported in Oracle? + } + + // -------------------------------------------------------------------- + + /** + * Oracle Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } +} + +/* End of file oci8_utility.php */ +/* Location: ./system/database/drivers/oci8/oci8_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/odbc/index.html b/system/database/drivers/odbc/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/odbc/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php new file mode 100755 index 0000000..bcd7937 --- /dev/null +++ b/system/database/drivers/odbc/odbc_driver.php @@ -0,0 +1,637 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * ODBC Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_odbc_driver extends CI_DB { + + var $dbdriver = 'odbc'; + + // the character used to excape - not necessary for ODBC + var $_escape_char = ''; + + // clause and character used for LIKE escape sequences + var $_like_escape_str = " {escape '%s'} "; + var $_like_escape_chr = '!'; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = "SELECT COUNT(*) AS "; + var $_random_keyword; + + + function __construct($params) + { + parent::__construct($params); + + $this->_random_keyword = ' RND('.time().')'; // database specific random keyword + } + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect() + { + return @odbc_connect($this->hostname, $this->username, $this->password); + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + return @odbc_pconnect($this->hostname, $this->username, $this->password); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + // not implemented in odbc + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + // Not needed for ODBC + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + // @todo - add support if needed + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + return "SELECT version() AS ver"; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return resource + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + return @odbc_exec($this->conn_id, $sql); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + return odbc_autocommit($this->conn_id, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $ret = odbc_commit($this->conn_id); + odbc_autocommit($this->conn_id, TRUE); + return $ret; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $ret = odbc_rollback($this->conn_id); + odbc_autocommit($this->conn_id, TRUE); + return $ret; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + // ODBC doesn't require escaping + $str = remove_invisible_characters($str); + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace( array('%', '_', $this->_like_escape_chr), + array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), + $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return @odbc_num_rows($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @access public + * @return integer + */ + function insert_id() + { + return @odbc_insert_id($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + $sql = "SHOW TABLES FROM `".$this->database."`"; + + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + //$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); + return FALSE; // not currently supported + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access public + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + return "SHOW COLUMNS FROM ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "SELECT TOP 1 FROM ".$table; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + return odbc_errormsg($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + return odbc_error($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return '('.implode(', ', $tables).')'; + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = $key." = ".$val; + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return $this->_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + // Does ODBC doesn't use the LIMIT clause? + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + @odbc_close($conn_id); + } + + +} + + + +/* End of file odbc_driver.php */ +/* Location: ./system/database/drivers/odbc/odbc_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/odbc/odbc_forge.php b/system/database/drivers/odbc/odbc_forge.php new file mode 100755 index 0000000..3ec86b4 --- /dev/null +++ b/system/database/drivers/odbc/odbc_forge.php @@ -0,0 +1,266 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * ODBC Forge Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/database/ + */ +class CI_DB_odbc_forge extends CI_DB_forge { + + /** + * Create database + * + * @access private + * @param string the database name + * @return bool + */ + function _create_database() + { + // ODBC has no "create database" command since it's + // designed to connect to an existing database + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + // ODBC has no "drop database" command since it's + // designed to connect to an existing database + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param array the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + $current_field_count = 0; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + if (count($primary_keys) > 0) + { + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key = $this->db->_protect_identifiers($key); + } + else + { + $key = array($this->db->_protect_identifiers($key)); + } + + $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n)"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return bool + */ + function _drop_table($table) + { + // Not a supported ODBC feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param string the table name + * @param string the column definition + * @param string the default value + * @param boolean should 'NOT NULL' be added + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql; + } + + $sql .= " $column_definition"; + + if ($default_value != '') + { + $sql .= " DEFAULT \"$default_value\""; + } + + if ($null === NULL) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + + } + + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + + +} + +/* End of file odbc_forge.php */ +/* Location: ./system/database/drivers/odbc/odbc_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php new file mode 100755 index 0000000..5d64a46 --- /dev/null +++ b/system/database/drivers/odbc/odbc_result.php @@ -0,0 +1,228 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * ODBC Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_odbc_result extends CI_DB_result { + + /** + * Number of rows in the result set + * + * @access public + * @return integer + */ + function num_rows() + { + return @odbc_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return @odbc_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + $field_names = array(); + for ($i = 0; $i < $this->num_fields(); $i++) + { + $field_names[] = odbc_field_name($this->result_id, $i); + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $retval = array(); + for ($i = 0; $i < $this->num_fields(); $i++) + { + $F = new stdClass(); + $F->name = odbc_field_name($this->result_id, $i); + $F->type = odbc_field_type($this->result_id, $i); + $F->max_length = odbc_field_len($this->result_id, $i); + $F->primary_key = 0; + $F->default = ''; + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if (is_resource($this->result_id)) + { + odbc_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + if (function_exists('odbc_fetch_object')) + { + return odbc_fetch_array($this->result_id); + } + else + { + return $this->_odbc_fetch_array($this->result_id); + } + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + if (function_exists('odbc_fetch_object')) + { + return odbc_fetch_object($this->result_id); + } + else + { + return $this->_odbc_fetch_object($this->result_id); + } + } + + + /** + * Result - object + * + * subsititutes the odbc_fetch_object function when + * not available (odbc_fetch_object requires unixODBC) + * + * @access private + * @return object + */ + function _odbc_fetch_object(& $odbc_result) { + $rs = array(); + $rs_obj = FALSE; + if (odbc_fetch_into($odbc_result, $rs)) { + foreach ($rs as $k=>$v) { + $field_name= odbc_field_name($odbc_result, $k+1); + $rs_obj->$field_name = $v; + } + } + return $rs_obj; + } + + + /** + * Result - array + * + * subsititutes the odbc_fetch_array function when + * not available (odbc_fetch_array requires unixODBC) + * + * @access private + * @return array + */ + function _odbc_fetch_array(& $odbc_result) { + $rs = array(); + $rs_assoc = FALSE; + if (odbc_fetch_into($odbc_result, $rs)) { + $rs_assoc=array(); + foreach ($rs as $k=>$v) { + $field_name= odbc_field_name($odbc_result, $k+1); + $rs_assoc[$field_name] = $v; + } + } + return $rs_assoc; + } + +} + + +/* End of file odbc_result.php */ +/* Location: ./system/database/drivers/odbc/odbc_result.php */ \ No newline at end of file diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php new file mode 100755 index 0000000..d335bed --- /dev/null +++ b/system/database/drivers/odbc/odbc_utility.php @@ -0,0 +1,103 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * ODBC Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/database/ + */ +class CI_DB_odbc_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return bool + */ + function _list_databases() + { + // Not sure if ODBC lets you list all databases... + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + // Not a supported ODBC feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + // Not a supported ODBC feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * ODBC Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } + +} + +/* End of file odbc_utility.php */ +/* Location: ./system/database/drivers/odbc/odbc_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/pdo/index.html b/system/database/drivers/pdo/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/pdo/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php new file mode 100755 index 0000000..1ecc90a --- /dev/null +++ b/system/database/drivers/pdo/pdo_driver.php @@ -0,0 +1,812 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @author EllisLab Dev Team + * @link http://codeigniter.com + * @since Version 2.1.2 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * PDO Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author EllisLab Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_pdo_driver extends CI_DB { + + var $dbdriver = 'pdo'; + + // the character used to excape - not necessary for PDO + var $_escape_char = ''; + var $_like_escape_str; + var $_like_escape_chr; + + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = "SELECT COUNT(*) AS "; + var $_random_keyword; + + var $options = array(); + + function __construct($params) + { + parent::__construct($params); + + // clause and character used for LIKE escape sequences + if (strpos($this->hostname, 'mysql') !== FALSE) + { + $this->_like_escape_str = ''; + $this->_like_escape_chr = ''; + + //Prior to this version, the charset can't be set in the dsn + if(is_php('5.3.6')) + { + $this->hostname .= ";charset={$this->char_set}"; + } + + //Set the charset with the connection options + $this->options['PDO::MYSQL_ATTR_INIT_COMMAND'] = "SET NAMES {$this->char_set}"; + } + elseif (strpos($this->hostname, 'odbc') !== FALSE) + { + $this->_like_escape_str = " {escape '%s'} "; + $this->_like_escape_chr = '!'; + } + else + { + $this->_like_escape_str = " ESCAPE '%s' "; + $this->_like_escape_chr = '!'; + } + + empty($this->database) OR $this->hostname .= ';dbname='.$this->database; + + $this->trans_enabled = FALSE; + + $this->_random_keyword = ' RND('.time().')'; // database specific random keyword + } + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect() + { + $this->options['PDO::ATTR_ERRMODE'] = PDO::ERRMODE_SILENT; + + return new PDO($this->hostname, $this->username, $this->password, $this->options); + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + $this->options['PDO::ATTR_ERRMODE'] = PDO::ERRMODE_SILENT; + $this->options['PDO::ATTR_PERSISTENT'] = TRUE; + + return new PDO($this->hostname, $this->username, $this->password, $this->options); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + // Not needed for PDO + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + // @todo - add support if needed + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + return $this->conn_id->getAttribute(PDO::ATTR_CLIENT_VERSION); + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return object + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + $result_id = $this->conn_id->prepare($sql); + $result_id->execute(); + + if (is_object($result_id)) + { + if (is_numeric(stripos($sql, 'SELECT'))) + { + $this->affect_rows = count($result_id->fetchAll()); + $result_id->execute(); + } + else + { + $this->affect_rows = $result_id->rowCount(); + } + } + else + { + $this->affect_rows = 0; + } + + return $result_id; + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = (bool) ($test_mode === TRUE); + + return $this->conn_id->beginTransaction(); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $ret = $this->conn->commit(); + return $ret; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $ret = $this->conn_id->rollBack(); + return $ret; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + //Escape the string + $str = $this->conn_id->quote($str); + + //If there are duplicated quotes, trim them away + if (strpos($str, "'") === 0) + { + $str = substr($str, 1, -1); + } + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace( array('%', '_', $this->_like_escape_chr), + array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), + $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return $this->affect_rows; + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @access public + * @return integer + */ + function insert_id($name=NULL) + { + //Convenience method for postgres insertid + if (strpos($this->hostname, 'pgsql') !== FALSE) + { + $v = $this->_version(); + + $table = func_num_args() > 0 ? func_get_arg(0) : NULL; + + if ($table == NULL && $v >= '8.1') + { + $sql='SELECT LASTVAL() as ins_id'; + } + $query = $this->query($sql); + $row = $query->row(); + return $row->ins_id; + } + else + { + return $this->conn_id->lastInsertId($name); + } + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + $sql = "SHOW TABLES FROM `".$this->database."`"; + + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + //$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); + return FALSE; // not currently supported + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access public + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + return "SHOW COLUMNS FROM ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "SELECT TOP 1 FROM ".$table; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + $error_array = $this->conn_id->errorInfo(); + return $error_array[2]; + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + return $this->conn_id->errorCode(); + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return (count($tables) == 1) ? $tables[0] : '('.implode(', ', $tables).')'; + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Insert_batch statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert_batch($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values); + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = $key." = ".$val; + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Update_Batch statement + * + * Generates a platform-specific batch update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @return string + */ + function _update_batch($table, $values, $index, $where = NULL) + { + $ids = array(); + $where = ($where != '' AND count($where) >=1) ? implode(" ", $where).' AND ' : ''; + + foreach ($values as $key => $val) + { + $ids[] = $val[$index]; + + foreach (array_keys($val) as $field) + { + if ($field != $index) + { + $final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field]; + } + } + } + + $sql = "UPDATE ".$table." SET "; + $cases = ''; + + foreach ($final as $k => $v) + { + $cases .= $k.' = CASE '."\n"; + foreach ($v as $row) + { + $cases .= $row."\n"; + } + + $cases .= 'ELSE '.$k.' END, '; + } + + $sql .= substr($cases, 0, -2); + + $sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')'; + + return $sql; + } + + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return $this->_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + if (strpos($this->hostname, 'cubrid') !== FALSE || strpos($this->hostname, 'sqlite') !== FALSE) + { + if ($offset == 0) + { + $offset = ''; + } + else + { + $offset .= ", "; + } + + return $sql."LIMIT ".$offset.$limit; + } + else + { + $sql .= "LIMIT ".$limit; + + if ($offset > 0) + { + $sql .= " OFFSET ".$offset; + } + + return $sql; + } + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + $this->conn_id = null; + } + + +} + + + +/* End of file pdo_driver.php */ +/* Location: ./system/database/drivers/pdo/pdo_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/pdo/pdo_forge.php b/system/database/drivers/pdo/pdo_forge.php new file mode 100755 index 0000000..9a78220 --- /dev/null +++ b/system/database/drivers/pdo/pdo_forge.php @@ -0,0 +1,266 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @author EllisLab Dev Team + * @link http://codeigniter.com + * @since Version 2.1.2 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * PDO Forge Class + * + * @category Database + * @author EllisLab Dev Team + * @link http://codeigniter.com/database/ + */ +class CI_DB_pdo_forge extends CI_DB_forge { + + /** + * Create database + * + * @access private + * @param string the database name + * @return bool + */ + function _create_database() + { + // PDO has no "create database" command since it's + // designed to connect to an existing database + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + // PDO has no "drop database" command since it's + // designed to connect to an existing database + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param array the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + $current_field_count = 0; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + if (count($primary_keys) > 0) + { + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key = $this->db->_protect_identifiers($key); + } + else + { + $key = array($this->db->_protect_identifiers($key)); + } + + $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n)"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return bool + */ + function _drop_table($table) + { + // Not a supported PDO feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param string the table name + * @param string the column definition + * @param string the default value + * @param boolean should 'NOT NULL' be added + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql; + } + + $sql .= " $column_definition"; + + if ($default_value != '') + { + $sql .= " DEFAULT \"$default_value\""; + } + + if ($null === NULL) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + + } + + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + + +} + +/* End of file pdo_forge.php */ +/* Location: ./system/database/drivers/pdo/pdo_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php new file mode 100755 index 0000000..44fdd6d --- /dev/null +++ b/system/database/drivers/pdo/pdo_result.php @@ -0,0 +1,183 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @author EllisLab Dev Team + * @link http://codeigniter.com + * @since Version 2.1.2 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * PDO Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author EllisLab Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_pdo_result extends CI_DB_result { + + public $num_rows; + + /** + * Number of rows in the result set + * + * @return int + */ + public function num_rows() + { + if (is_int($this->num_rows)) + { + return $this->num_rows; + } + elseif (($this->num_rows = $this->result_id->rowCount()) > 0) + { + return $this->num_rows; + } + + $this->num_rows = count($this->result_id->fetchAll()); + $this->result_id->execute(); + return $this->num_rows; + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return $this->result_id->columnCount(); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $data = array(); + + try + { + for($i = 0; $i < $this->num_fields(); $i++) + { + $data[] = $this->result_id->getColumnMeta($i); + } + + return $data; + } + catch (Exception $e) + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if (is_object($this->result_id)) + { + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return $this->result_id->fetch(PDO::FETCH_ASSOC); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + return $this->result_id->fetchObject(); + } + +} + + +/* End of file pdo_result.php */ +/* Location: ./system/database/drivers/pdo/pdo_result.php */ \ No newline at end of file diff --git a/system/database/drivers/pdo/pdo_utility.php b/system/database/drivers/pdo/pdo_utility.php new file mode 100755 index 0000000..88ce033 --- /dev/null +++ b/system/database/drivers/pdo/pdo_utility.php @@ -0,0 +1,103 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @author EllisLab Dev Team + * @link http://codeigniter.com + * @since Version 2.1.2 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * PDO Utility Class + * + * @category Database + * @author EllisLab Dev Team + * @link http://codeigniter.com/database/ + */ +class CI_DB_pdo_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return bool + */ + function _list_databases() + { + // Not sure if PDO lets you list all databases... + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + // Not a supported PDO feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + // Not a supported PDO feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * PDO Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } + +} + +/* End of file pdo_utility.php */ +/* Location: ./system/database/drivers/pdo/pdo_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/postgre/index.html b/system/database/drivers/postgre/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/postgre/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php new file mode 100755 index 0000000..5367f97 --- /dev/null +++ b/system/database/drivers/postgre/postgre_driver.php @@ -0,0 +1,703 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Postgre Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_postgre_driver extends CI_DB { + + var $dbdriver = 'postgre'; + + var $_escape_char = '"'; + + // clause and character used for LIKE escape sequences + var $_like_escape_str = " ESCAPE '%s' "; + var $_like_escape_chr = '!'; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = "SELECT COUNT(*) AS "; + var $_random_keyword = ' RANDOM()'; // database specific random keyword + + /** + * Connection String + * + * @access private + * @return string + */ + function _connect_string() + { + $components = array( + 'hostname' => 'host', + 'port' => 'port', + 'database' => 'dbname', + 'username' => 'user', + 'password' => 'password' + ); + + $connect_string = ""; + foreach ($components as $key => $val) + { + if (isset($this->$key) && $this->$key != '') + { + $connect_string .= " $val=".$this->$key; + } + } + return trim($connect_string); + } + + // -------------------------------------------------------------------- + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect() + { + return @pg_connect($this->_connect_string()); + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + return @pg_pconnect($this->_connect_string()); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + if (pg_ping($this->conn_id) === FALSE) + { + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + // Not needed for Postgre so we'll return TRUE + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + // @todo - add support if needed + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + return "SELECT version() AS ver"; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return resource + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + return @pg_query($this->conn_id, $sql); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + return @pg_exec($this->conn_id, "begin"); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + return @pg_exec($this->conn_id, "commit"); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + return @pg_exec($this->conn_id, "rollback"); + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + $str = pg_escape_string($str); + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace( array('%', '_', $this->_like_escape_chr), + array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), + $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return @pg_affected_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @access public + * @return integer + */ + function insert_id() + { + $v = $this->_version(); + $v = $v['server']; + + $table = func_num_args() > 0 ? func_get_arg(0) : NULL; + $column = func_num_args() > 1 ? func_get_arg(1) : NULL; + + if ($table == NULL && $v >= '8.1') + { + $sql='SELECT LASTVAL() as ins_id'; + } + elseif ($table != NULL && $column != NULL && $v >= '8.0') + { + $sql = sprintf("SELECT pg_get_serial_sequence('%s','%s') as seq", $table, $column); + $query = $this->query($sql); + $row = $query->row(); + $sql = sprintf("SELECT CURRVAL('%s') as ins_id", $row->seq); + } + elseif ($table != NULL) + { + // seq_name passed in table parameter + $sql = sprintf("SELECT CURRVAL('%s') as ins_id", $table); + } + else + { + return pg_last_oid($this->result_id); + } + $query = $this->query($sql); + $row = $query->row(); + return $row->ins_id; + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + $sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'"; + + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + $sql .= " AND table_name LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access public + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + return "SELECT column_name FROM information_schema.columns WHERE table_name ='".$table."'"; + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "SELECT * FROM ".$table." LIMIT 1"; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + return pg_last_error($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + return ''; + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return implode(', ', $tables); + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Insert_batch statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert_batch($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values); + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = $key." = ".$val; + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return "TRUNCATE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + $sql .= "LIMIT ".$limit; + + if ($offset > 0) + { + $sql .= " OFFSET ".$offset; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + @pg_close($conn_id); + } + + +} + + +/* End of file postgre_driver.php */ +/* Location: ./system/database/drivers/postgre/postgre_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php new file mode 100755 index 0000000..91a1c68 --- /dev/null +++ b/system/database/drivers/postgre/postgre_forge.php @@ -0,0 +1,299 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Postgre Forge Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_postgre_forge extends CI_DB_forge { + + /** + * Create database + * + * @access private + * @param string the database name + * @return bool + */ + function _create_database($name) + { + return "CREATE DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + return "DROP DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param array the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + if ($this->db->table_exists($table)) + { + return "SELECT * FROM $table"; // Needs to return innocous but valid SQL statement + } + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + $current_field_count = 0; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + $is_unsigned = (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE); + + // Convert datatypes to be PostgreSQL-compatible + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + break; + case 'SMALLINT': + $attributes['TYPE'] = ($is_unsigned) ? 'INTEGER' : 'SMALLINT'; + break; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + break; + case 'INT': + $attributes['TYPE'] = ($is_unsigned) ? 'BIGINT' : 'INTEGER'; + break; + case 'BIGINT': + $attributes['TYPE'] = ($is_unsigned) ? 'NUMERIC' : 'BIGINT'; + break; + case 'DOUBLE': + $attributes['TYPE'] = 'DOUBLE PRECISION'; + break; + case 'DATETIME': + $attributes['TYPE'] = 'TIMESTAMP'; + break; + case 'LONGTEXT': + $attributes['TYPE'] = 'TEXT'; + break; + case 'BLOB': + $attributes['TYPE'] = 'BYTEA'; + break; + } + + // If this is an auto-incrementing primary key, use the serial data type instead + if (in_array($field, $primary_keys) && array_key_exists('AUTO_INCREMENT', $attributes) + && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' SERIAL'; + } + else + { + $sql .= ' '.$attributes['TYPE']; + } + + // Modified to prevent constraints with integer data types + if (array_key_exists('CONSTRAINT', $attributes) && strpos($attributes['TYPE'], 'INT') === false) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + // Added new attribute to create unqite fields. Also works with MySQL + if (array_key_exists('UNIQUE', $attributes) && $attributes['UNIQUE'] === TRUE) + { + $sql .= ' UNIQUE'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + if (count($primary_keys) > 0) + { + // Something seems to break when passing an array to _protect_identifiers() + foreach ($primary_keys as $index => $key) + { + $primary_keys[$index] = $this->db->_protect_identifiers($key); + } + + $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; + } + + $sql .= "\n);"; + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key = $this->db->_protect_identifiers($key); + } + else + { + $key = array($this->db->_protect_identifiers($key)); + } + + foreach ($key as $field) + { + $sql .= "CREATE INDEX " . $table . "_" . str_replace(array('"', "'"), '', $field) . "_index ON $table ($field); "; + } + } + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return bool + */ + function _drop_table($table) + { + return "DROP TABLE IF EXISTS ".$this->db->_escape_identifiers($table)." CASCADE"; + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param string the table name + * @param string the column definition + * @param string the default value + * @param boolean should 'NOT NULL' be added + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql; + } + + $sql .= " $column_definition"; + + if ($default_value != '') + { + $sql .= " DEFAULT \"$default_value\""; + } + + if ($null === NULL) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + + } + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + + +} + +/* End of file postgre_forge.php */ +/* Location: ./system/database/drivers/postgre/postgre_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php new file mode 100755 index 0000000..e9a1d16 --- /dev/null +++ b/system/database/drivers/postgre/postgre_result.php @@ -0,0 +1,169 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Postgres Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_postgre_result extends CI_DB_result { + + /** + * Number of rows in the result set + * + * @access public + * @return integer + */ + function num_rows() + { + return @pg_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return @pg_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + $field_names = array(); + for ($i = 0; $i < $this->num_fields(); $i++) + { + $field_names[] = pg_field_name($this->result_id, $i); + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $retval = array(); + for ($i = 0; $i < $this->num_fields(); $i++) + { + $F = new stdClass(); + $F->name = pg_field_name($this->result_id, $i); + $F->type = pg_field_type($this->result_id, $i); + $F->max_length = pg_field_size($this->result_id, $i); + $F->primary_key = 0; + $F->default = ''; + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if (is_resource($this->result_id)) + { + pg_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return pg_result_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return pg_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + return pg_fetch_object($this->result_id); + } + +} + + +/* End of file postgre_result.php */ +/* Location: ./system/database/drivers/postgre/postgre_result.php */ \ No newline at end of file diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php new file mode 100755 index 0000000..741c52e --- /dev/null +++ b/system/database/drivers/postgre/postgre_utility.php @@ -0,0 +1,88 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Postgre Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_postgre_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return bool + */ + function _list_databases() + { + return "SELECT datname FROM pg_database"; + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Is table optimization supported in Postgre? + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Are table repairs supported in Postgre? + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Postgre Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } +} + + +/* End of file postgre_utility.php */ +/* Location: ./system/database/drivers/postgre/postgre_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/sqlite/index.html b/system/database/drivers/sqlite/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/sqlite/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php new file mode 100755 index 0000000..0cc898b --- /dev/null +++ b/system/database/drivers/sqlite/sqlite_driver.php @@ -0,0 +1,658 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + + + +/** + * SQLite Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_sqlite_driver extends CI_DB { + + var $dbdriver = 'sqlite'; + + // The character used to escape with - not needed for SQLite + var $_escape_char = ''; + + // clause and character used for LIKE escape sequences + var $_like_escape_str = " ESCAPE '%s' "; + var $_like_escape_chr = '!'; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = "SELECT COUNT(*) AS "; + var $_random_keyword = ' Random()'; // database specific random keyword + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect() + { + if ( ! $conn_id = @sqlite_open($this->database, FILE_WRITE_MODE, $error)) + { + log_message('error', $error); + + if ($this->db_debug) + { + $this->display_error($error, '', TRUE); + } + + return FALSE; + } + + return $conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + if ( ! $conn_id = @sqlite_popen($this->database, FILE_WRITE_MODE, $error)) + { + log_message('error', $error); + + if ($this->db_debug) + { + $this->display_error($error, '', TRUE); + } + + return FALSE; + } + + return $conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + // not implemented in SQLite + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + // @todo - add support if needed + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + return sqlite_libversion(); + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return resource + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + return @sqlite_query($this->conn_id, $sql); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + $this->simple_query('BEGIN TRANSACTION'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $this->simple_query('COMMIT'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + $this->simple_query('ROLLBACK'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + $str = sqlite_escape_string($str); + + // escape LIKE condition wildcards + if ($like === TRUE) + { + $str = str_replace( array('%', '_', $this->_like_escape_chr), + array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), + $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return sqlite_changes($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @access public + * @return integer + */ + function insert_id() + { + return @sqlite_last_insert_rowid($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + { + return 0; + } + + $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); + + if ($query->num_rows() == 0) + { + return 0; + } + + $row = $query->row(); + $this->_reset_select(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + $sql = "SELECT name from sqlite_master WHERE type='table'"; + + if ($prefix_limit !== FALSE AND $this->dbprefix != '') + { + $sql .= " AND 'name' LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access public + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + // Not supported + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "SELECT * FROM ".$table." LIMIT 1"; + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + return sqlite_error_string(sqlite_last_error($this->conn_id)); + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + return sqlite_last_error($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + if ($this->_escape_char == '') + { + return $item; + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + } + + if (strpos($item, '.') !== FALSE) + { + $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; + } + else + { + $str = $this->_escape_char.$item.$this->_escape_char; + } + + // remove duplicates if the user already included the escape + return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return '('.implode(', ', $tables).')'; + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where, $orderby = array(), $limit = FALSE) + { + foreach ($values as $key => $val) + { + $valstr[] = $key." = ".$val; + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; + + $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); + + $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; + + $sql .= $orderby.$limit; + + return $sql; + } + + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return $this->_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where = array(), $like = array(), $limit = FALSE) + { + $conditions = ''; + + if (count($where) > 0 OR count($like) > 0) + { + $conditions = "\nWHERE "; + $conditions .= implode("\n", $this->ar_where); + + if (count($where) > 0 && count($like) > 0) + { + $conditions .= " AND "; + } + $conditions .= implode("\n", $like); + } + + $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; + + return "DELETE FROM ".$table.$conditions.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + if ($offset == 0) + { + $offset = ''; + } + else + { + $offset .= ", "; + } + + return $sql."LIMIT ".$offset.$limit; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + @sqlite_close($conn_id); + } + + +} + + +/* End of file sqlite_driver.php */ +/* Location: ./system/database/drivers/sqlite/sqlite_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/sqlite/sqlite_forge.php b/system/database/drivers/sqlite/sqlite_forge.php new file mode 100755 index 0000000..5690408 --- /dev/null +++ b/system/database/drivers/sqlite/sqlite_forge.php @@ -0,0 +1,265 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * SQLite Forge Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_sqlite_forge extends CI_DB_forge { + + /** + * Create database + * + * @access public + * @param string the database name + * @return bool + */ + function _create_database() + { + // In SQLite, a database is created when you connect to the database. + // We'll return TRUE so that an error isn't generated + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + if ( ! @file_exists($this->db->database) OR ! @unlink($this->db->database)) + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unable_to_drop'); + } + return FALSE; + } + return TRUE; + } + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param array the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + // IF NOT EXISTS added to SQLite in 3.3.0 + if ($if_not_exists === TRUE && version_compare($this->db->_version(), '3.3.0', '>=') === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)."("; + $current_field_count = 0; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + if (count($primary_keys) > 0) + { + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key = $this->db->_protect_identifiers($key); + } + else + { + $key = array($this->db->_protect_identifiers($key)); + } + + $sql .= ",\n\tUNIQUE (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n)"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * Unsupported feature in SQLite + * + * @access private + * @return bool + */ + function _drop_table($table) + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return array(); + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param string the table name + * @param string the column definition + * @param string the default value + * @param boolean should 'NOT NULL' be added + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + // SQLite does not support dropping columns + // http://www.sqlite.org/omitted.html + // http://www.sqlite.org/faq.html#q11 + return FALSE; + } + + $sql .= " $column_definition"; + + if ($default_value != '') + { + $sql .= " DEFAULT \"$default_value\""; + } + + if ($null === NULL) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + + } + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } +} + +/* End of file sqlite_forge.php */ +/* Location: ./system/database/drivers/sqlite/sqlite_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/sqlite/sqlite_result.php b/system/database/drivers/sqlite/sqlite_result.php new file mode 100755 index 0000000..7bd30db --- /dev/null +++ b/system/database/drivers/sqlite/sqlite_result.php @@ -0,0 +1,179 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * SQLite Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_sqlite_result extends CI_DB_result { + + /** + * Number of rows in the result set + * + * @access public + * @return integer + */ + function num_rows() + { + return @sqlite_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return @sqlite_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + $field_names = array(); + for ($i = 0; $i < $this->num_fields(); $i++) + { + $field_names[] = sqlite_field_name($this->result_id, $i); + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $retval = array(); + for ($i = 0; $i < $this->num_fields(); $i++) + { + $F = new stdClass(); + $F->name = sqlite_field_name($this->result_id, $i); + $F->type = 'varchar'; + $F->max_length = 0; + $F->primary_key = 0; + $F->default = ''; + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + // Not implemented in SQLite + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return sqlite_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return sqlite_fetch_array($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + if (function_exists('sqlite_fetch_object')) + { + return sqlite_fetch_object($this->result_id); + } + else + { + $arr = sqlite_fetch_array($this->result_id, SQLITE_ASSOC); + if (is_array($arr)) + { + $obj = (object) $arr; + return $obj; + } else { + return NULL; + } + } + } + +} + + +/* End of file sqlite_result.php */ +/* Location: ./system/database/drivers/sqlite/sqlite_result.php */ \ No newline at end of file diff --git a/system/database/drivers/sqlite/sqlite_utility.php b/system/database/drivers/sqlite/sqlite_utility.php new file mode 100755 index 0000000..508023e --- /dev/null +++ b/system/database/drivers/sqlite/sqlite_utility.php @@ -0,0 +1,96 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * SQLite Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_sqlite_utility extends CI_DB_utility { + + /** + * List databases + * + * I don't believe you can do a database listing with SQLite + * since each database is its own file. I suppose we could + * try reading a directory looking for SQLite files, but + * that doesn't seem like a terribly good idea + * + * @access private + * @return bool + */ + function _list_databases() + { + if ($this->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return array(); + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Is optimization even supported in SQLite? + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Are table repairs even supported in SQLite? + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * SQLite Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } +} + +/* End of file sqlite_utility.php */ +/* Location: ./system/database/drivers/sqlite/sqlite_utility.php */ \ No newline at end of file diff --git a/system/database/drivers/sqlsrv/index.html b/system/database/drivers/sqlsrv/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/drivers/sqlsrv/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php new file mode 100755 index 0000000..400fd31 --- /dev/null +++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -0,0 +1,599 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * SQLSRV Database Adapter Class + * + * Note: _DB is an extender class that the app controller + * creates dynamically based on whether the active record + * class is being used or not. + * + * @package CodeIgniter + * @subpackage Drivers + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_sqlsrv_driver extends CI_DB { + + var $dbdriver = 'sqlsrv'; + + // The character used for escaping + var $_escape_char = ''; + + // clause and character used for LIKE escape sequences + var $_like_escape_str = " ESCAPE '%s' "; + var $_like_escape_chr = '!'; + + /** + * The syntax to count rows is slightly different across different + * database engines, so this string appears in each driver and is + * used for the count_all() and count_all_results() functions. + */ + var $_count_string = "SELECT COUNT(*) AS "; + var $_random_keyword = ' ASC'; // not currently supported + + /** + * Non-persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_connect($pooling = false) + { + // Check for a UTF-8 charset being passed as CI's default 'utf8'. + $character_set = (0 === strcasecmp('utf8', $this->char_set)) ? 'UTF-8' : $this->char_set; + + $connection = array( + 'UID' => empty($this->username) ? '' : $this->username, + 'PWD' => empty($this->password) ? '' : $this->password, + 'Database' => $this->database, + 'ConnectionPooling' => $pooling ? 1 : 0, + 'CharacterSet' => $character_set, + 'ReturnDatesAsStrings' => 1 + ); + + // If the username and password are both empty, assume this is a + // 'Windows Authentication Mode' connection. + if(empty($connection['UID']) && empty($connection['PWD'])) { + unset($connection['UID'], $connection['PWD']); + } + + return sqlsrv_connect($this->hostname, $connection); + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @access private called by the base class + * @return resource + */ + function db_pconnect() + { + $this->db_connect(TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @access public + * @return void + */ + function reconnect() + { + // not implemented in MSSQL + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @access private called by the base class + * @return resource + */ + function db_select() + { + return $this->_execute('USE ' . $this->database); + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @access public + * @param string + * @param string + * @return resource + */ + function db_set_charset($charset, $collation) + { + // @todo - add support if needed + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @access private called by the base class + * @param string an SQL query + * @return resource + */ + function _execute($sql) + { + $sql = $this->_prep_query($sql); + return sqlsrv_query($this->conn_id, $sql, null, array( + 'Scrollable' => SQLSRV_CURSOR_STATIC, + 'SendStreamParamsAtExec' => true + )); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @access private called by execute() + * @param string an SQL query + * @return string + */ + function _prep_query($sql) + { + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @access public + * @return bool + */ + function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; + + return sqlsrv_begin_transaction($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @access public + * @return bool + */ + function trans_commit() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + return sqlsrv_commit($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @access public + * @return bool + */ + function trans_rollback() + { + if ( ! $this->trans_enabled) + { + return TRUE; + } + + // When transactions are nested we only begin/commit/rollback the outermost ones + if ($this->_trans_depth > 0) + { + return TRUE; + } + + return sqlsrv_rollback($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @access public + * @param string + * @param bool whether or not the string will be used in a LIKE condition + * @return string + */ + function escape_str($str, $like = FALSE) + { + // Escape single quotes + return str_replace("'", "''", $str); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @access public + * @return integer + */ + function affected_rows() + { + return @sqlrv_rows_affected($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * Returns the last id created in the Identity column. + * + * @access public + * @return integer + */ + function insert_id() + { + return $this->query('select @@IDENTITY as insert_id')->row('insert_id'); + } + + // -------------------------------------------------------------------- + + /** + * Parse major version + * + * Grabs the major version number from the + * database server version string passed in. + * + * @access private + * @param string $version + * @return int16 major version number + */ + function _parse_major_version($version) + { + preg_match('/([0-9]+)\.([0-9]+)\.([0-9]+)/', $version, $ver_info); + return $ver_info[1]; // return the major version b/c that's all we're interested in. + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @access public + * @return string + */ + function _version() + { + $info = sqlsrv_server_info($this->conn_id); + return sprintf("select '%s' as ver", $info['SQLServerVersion']); + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @access public + * @param string + * @return string + */ + function count_all($table = '') + { + if ($table == '') + return '0'; + + $query = $this->query("SELECT COUNT(*) AS numrows FROM " . $this->dbprefix . $table); + + if ($query->num_rows() == 0) + return '0'; + + $row = $query->row(); + $this->_reset_select(); + return $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @access private + * @param boolean + * @return string + */ + function _list_tables($prefix_limit = FALSE) + { + return "SELECT name FROM sysobjects WHERE type = 'U' ORDER BY name"; + } + + // -------------------------------------------------------------------- + + /** + * List column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @access private + * @param string the table name + * @return string + */ + function _list_columns($table = '') + { + return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$this->_escape_table($table)."'"; + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @access public + * @param string the table name + * @return object + */ + function _field_data($table) + { + return "SELECT TOP 1 * FROM " . $this->_escape_table($table); + } + + // -------------------------------------------------------------------- + + /** + * The error message string + * + * @access private + * @return string + */ + function _error_message() + { + $error = array_shift(sqlsrv_errors()); + return !empty($error['message']) ? $error['message'] : null; + } + + // -------------------------------------------------------------------- + + /** + * The error message number + * + * @access private + * @return integer + */ + function _error_number() + { + $error = array_shift(sqlsrv_errors()); + return isset($error['SQLSTATE']) ? $error['SQLSTATE'] : null; + } + + // -------------------------------------------------------------------- + + /** + * Escape Table Name + * + * This function adds backticks if the table name has a period + * in it. Some DBs will get cranky unless periods are escaped + * + * @access private + * @param string the table name + * @return string + */ + function _escape_table($table) + { + return $table; + } + + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @access private + * @param string + * @return string + */ + function _escape_identifiers($item) + { + return $item; + } + + // -------------------------------------------------------------------- + + /** + * From Tables + * + * This function implicitly groups FROM tables so there is no confusion + * about operator precedence in harmony with SQL standards + * + * @access public + * @param type + * @return type + */ + function _from_tables($tables) + { + if ( ! is_array($tables)) + { + $tables = array($tables); + } + + return implode(', ', $tables); + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @access public + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + function _insert($table, $keys, $values) + { + return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @access public + * @param string the table name + * @param array the update data + * @param array the where clause + * @param array the orderby clause + * @param array the limit clause + * @return string + */ + function _update($table, $values, $where) + { + foreach($values as $key => $val) + { + $valstr[] = $key." = ".$val; + } + + return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @access public + * @param string the table name + * @return string + */ + function _truncate($table) + { + return "TRUNCATE ".$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @access public + * @param string the table name + * @param array the where clause + * @param string the limit clause + * @return string + */ + function _delete($table, $where) + { + return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where); + } + + // -------------------------------------------------------------------- + + /** + * Limit string + * + * Generates a platform-specific LIMIT clause + * + * @access public + * @param string the sql query string + * @param integer the number of rows to limit the query to + * @param integer the offset value + * @return string + */ + function _limit($sql, $limit, $offset) + { + $i = $limit + $offset; + + return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$i.' ', $sql); + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @access public + * @param resource + * @return void + */ + function _close($conn_id) + { + @sqlsrv_close($conn_id); + } + +} + + + +/* End of file mssql_driver.php */ +/* Location: ./system/database/drivers/mssql/mssql_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/sqlsrv/sqlsrv_forge.php b/system/database/drivers/sqlsrv/sqlsrv_forge.php new file mode 100755 index 0000000..cc88ec5 --- /dev/null +++ b/system/database/drivers/sqlsrv/sqlsrv_forge.php @@ -0,0 +1,248 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * SQLSRV Forge Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_sqlsrv_forge extends CI_DB_forge { + + /** + * Create database + * + * @access private + * @param string the database name + * @return bool + */ + function _create_database($name) + { + return "CREATE DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + return "DROP DATABASE ".$name; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return bool + */ + function _drop_table($table) + { + return "DROP TABLE ".$this->db->_escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param array the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + $current_field_count = 0; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + if (count($primary_keys) > 0) + { + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key = $this->db->_protect_identifiers($key); + } + else + { + $key = array($this->db->_protect_identifiers($key)); + } + + $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n)"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param string the table name + * @param string the column definition + * @param string the default value + * @param boolean should 'NOT NULL' be added + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql; + } + + $sql .= " $column_definition"; + + if ($default_value != '') + { + $sql .= " DEFAULT \"$default_value\""; + } + + if ($null === NULL) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + + } + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + // I think this syntax will work, but can find little documentation on renaming tables in MSSQL + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + +} + +/* End of file mssql_forge.php */ +/* Location: ./system/database/drivers/mssql/mssql_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/sqlsrv/sqlsrv_result.php b/system/database/drivers/sqlsrv/sqlsrv_result.php new file mode 100755 index 0000000..bf0abd1 --- /dev/null +++ b/system/database/drivers/sqlsrv/sqlsrv_result.php @@ -0,0 +1,169 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * SQLSRV Result Class + * + * This class extends the parent result class: CI_DB_result + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_sqlsrv_result extends CI_DB_result { + + /** + * Number of rows in the result set + * + * @access public + * @return integer + */ + function num_rows() + { + return @sqlsrv_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return @sqlsrv_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + $field_names = array(); + foreach(sqlsrv_field_metadata($this->result_id) as $offset => $field) + { + $field_names[] = $field['Name']; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $retval = array(); + foreach(sqlsrv_field_metadata($this->result_id) as $offset => $field) + { + $F = new stdClass(); + $F->name = $field['Name']; + $F->type = $field['Type']; + $F->max_length = $field['Size']; + $F->primary_key = 0; + $F->default = ''; + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if (is_resource($this->result_id)) + { + sqlsrv_free_stmt($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + // Not implemented + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return sqlsrv_fetch_array($this->result_id, SQLSRV_FETCH_ASSOC); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + return sqlsrv_fetch_object($this->result_id); + } + +} + + +/* End of file mssql_result.php */ +/* Location: ./system/database/drivers/mssql/mssql_result.php */ \ No newline at end of file diff --git a/system/database/drivers/sqlsrv/sqlsrv_utility.php b/system/database/drivers/sqlsrv/sqlsrv_utility.php new file mode 100755 index 0000000..13a1850 --- /dev/null +++ b/system/database/drivers/sqlsrv/sqlsrv_utility.php @@ -0,0 +1,88 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * SQLSRV Utility Class + * + * @category Database + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/database/ + */ +class CI_DB_sqlsrv_utility extends CI_DB_utility { + + /** + * List databases + * + * @access private + * @return bool + */ + function _list_databases() + { + return "EXEC sp_helpdb"; // Can also be: EXEC sp_databases + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + return FALSE; // Is this supported in MS SQL? + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + return FALSE; // Is this supported in MS SQL? + } + + // -------------------------------------------------------------------- + + /** + * MSSQL Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } + +} + +/* End of file mssql_utility.php */ +/* Location: ./system/database/drivers/mssql/mssql_utility.php */ \ No newline at end of file diff --git a/system/database/index.html b/system/database/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/database/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/fonts/index.html b/system/fonts/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/fonts/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/fonts/texb.ttf b/system/fonts/texb.ttf new file mode 100755 index 0000000000000000000000000000000000000000..383c88b86b7c17e2e284732af48b2bfc359647ae GIT binary patch literal 143830 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 literal 0 HcmV?d00001 diff --git a/system/helpers/array_helper.php b/system/helpers/array_helper.php new file mode 100755 index 0000000..075a31f --- /dev/null +++ b/system/helpers/array_helper.php @@ -0,0 +1,119 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Array Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/array_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Element + * + * Lets you determine whether an array index is set and whether it has a value. + * If the element is empty it returns FALSE (or whatever you specify as the default value.) + * + * @access public + * @param string + * @param array + * @param mixed + * @return mixed depends on what the array contains + */ +if ( ! function_exists('element')) +{ + function element($item, $array, $default = FALSE) + { + if ( ! isset($array[$item]) OR $array[$item] == "") + { + return $default; + } + + return $array[$item]; + } +} + +// ------------------------------------------------------------------------ + +/** + * Random Element - Takes an array as input and returns a random element + * + * @access public + * @param array + * @return mixed depends on what the array contains + */ +if ( ! function_exists('random_element')) +{ + function random_element($array) + { + if ( ! is_array($array)) + { + return $array; + } + + return $array[array_rand($array)]; + } +} + +// -------------------------------------------------------------------- + +/** + * Elements + * + * Returns only the array items specified. Will return a default value if + * it is not set. + * + * @access public + * @param array + * @param array + * @param mixed + * @return mixed depends on what the array contains + */ +if ( ! function_exists('elements')) +{ + function elements($items, $array, $default = FALSE) + { + $return = array(); + + if ( ! is_array($items)) + { + $items = array($items); + } + + foreach ($items as $item) + { + if (isset($array[$item])) + { + $return[$item] = $array[$item]; + } + else + { + $return[$item] = $default; + } + } + + return $return; + } +} + +/* End of file array_helper.php */ +/* Location: ./system/helpers/array_helper.php */ \ No newline at end of file diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php new file mode 100755 index 0000000..19ec0c7 --- /dev/null +++ b/system/helpers/captcha_helper.php @@ -0,0 +1,246 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter CAPTCHA Helper + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/xml_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Create CAPTCHA + * + * @access public + * @param array array of data for the CAPTCHA + * @param string path to create the image in + * @param string URL to the CAPTCHA image folder + * @param string server path to font + * @return string + */ +if ( ! function_exists('create_captcha')) +{ + function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '') + { + $defaults = array('word' => '', 'img_path' => '', 'img_url' => '', 'img_width' => '150', 'img_height' => '30', 'font_path' => '', 'expiration' => 7200); + + foreach ($defaults as $key => $val) + { + if ( ! is_array($data)) + { + if ( ! isset($$key) OR $$key == '') + { + $$key = $val; + } + } + else + { + $$key = ( ! isset($data[$key])) ? $val : $data[$key]; + } + } + + if ($img_path == '' OR $img_url == '') + { + return FALSE; + } + + if ( ! @is_dir($img_path)) + { + return FALSE; + } + + if ( ! is_writable($img_path)) + { + return FALSE; + } + + if ( ! extension_loaded('gd')) + { + return FALSE; + } + + // ----------------------------------- + // Remove old images + // ----------------------------------- + + list($usec, $sec) = explode(" ", microtime()); + $now = ((float)$usec + (float)$sec); + + $current_dir = @opendir($img_path); + + while ($filename = @readdir($current_dir)) + { + if ($filename != "." and $filename != ".." and $filename != "index.html") + { + $name = str_replace(".jpg", "", $filename); + + if (($name + $expiration) < $now) + { + @unlink($img_path.$filename); + } + } + } + + @closedir($current_dir); + + // ----------------------------------- + // Do we have a "word" yet? + // ----------------------------------- + + if ($word == '') + { + $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + + $str = ''; + for ($i = 0; $i < 8; $i++) + { + $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1); + } + + $word = $str; + } + + // ----------------------------------- + // Determine angle and position + // ----------------------------------- + + $length = strlen($word); + $angle = ($length >= 6) ? rand(-($length-6), ($length-6)) : 0; + $x_axis = rand(6, (360/$length)-16); + $y_axis = ($angle >= 0 ) ? rand($img_height, $img_width) : rand(6, $img_height); + + // ----------------------------------- + // Create image + // ----------------------------------- + + // PHP.net recommends imagecreatetruecolor(), but it isn't always available + if (function_exists('imagecreatetruecolor')) + { + $im = imagecreatetruecolor($img_width, $img_height); + } + else + { + $im = imagecreate($img_width, $img_height); + } + + // ----------------------------------- + // Assign colors + // ----------------------------------- + + $bg_color = imagecolorallocate ($im, 255, 255, 255); + $border_color = imagecolorallocate ($im, 153, 102, 102); + $text_color = imagecolorallocate ($im, 204, 153, 153); + $grid_color = imagecolorallocate($im, 255, 182, 182); + $shadow_color = imagecolorallocate($im, 255, 240, 240); + + // ----------------------------------- + // Create the rectangle + // ----------------------------------- + + ImageFilledRectangle($im, 0, 0, $img_width, $img_height, $bg_color); + + // ----------------------------------- + // Create the spiral pattern + // ----------------------------------- + + $theta = 1; + $thetac = 7; + $radius = 16; + $circles = 20; + $points = 32; + + for ($i = 0; $i < ($circles * $points) - 1; $i++) + { + $theta = $theta + $thetac; + $rad = $radius * ($i / $points ); + $x = ($rad * cos($theta)) + $x_axis; + $y = ($rad * sin($theta)) + $y_axis; + $theta = $theta + $thetac; + $rad1 = $radius * (($i + 1) / $points); + $x1 = ($rad1 * cos($theta)) + $x_axis; + $y1 = ($rad1 * sin($theta )) + $y_axis; + imageline($im, $x, $y, $x1, $y1, $grid_color); + $theta = $theta - $thetac; + } + + // ----------------------------------- + // Write the text + // ----------------------------------- + + $use_font = ($font_path != '' AND file_exists($font_path) AND function_exists('imagettftext')) ? TRUE : FALSE; + + if ($use_font == FALSE) + { + $font_size = 5; + $x = rand(0, $img_width/($length/3)); + $y = 0; + } + else + { + $font_size = 16; + $x = rand(0, $img_width/($length/1.5)); + $y = $font_size+2; + } + + for ($i = 0; $i < strlen($word); $i++) + { + if ($use_font == FALSE) + { + $y = rand(0 , $img_height/2); + imagestring($im, $font_size, $x, $y, substr($word, $i, 1), $text_color); + $x += ($font_size*2); + } + else + { + $y = rand($img_height/2, $img_height-3); + imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1)); + $x += $font_size; + } + } + + + // ----------------------------------- + // Create the border + // ----------------------------------- + + imagerectangle($im, 0, 0, $img_width-1, $img_height-1, $border_color); + + // ----------------------------------- + // Generate the image + // ----------------------------------- + + $img_name = $now.'.jpg'; + + ImageJPEG($im, $img_path.$img_name); + + $img = "<img src=\"$img_url$img_name\" width=\"$img_width\" height=\"$img_height\" style=\"border:0;\" alt=\" \" />"; + + ImageDestroy($im); + + return array('word' => $word, 'time' => $now, 'image' => $img); + } +} + +// ------------------------------------------------------------------------ + +/* End of file captcha_helper.php */ +/* Location: ./system/heleprs/captcha_helper.php */ \ No newline at end of file diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php new file mode 100755 index 0000000..7cee028 --- /dev/null +++ b/system/helpers/cookie_helper.php @@ -0,0 +1,103 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Cookie Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/cookie_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Set cookie + * + * Accepts six parameter, or you can submit an associative + * array in the first parameter containing all the values. + * + * @access public + * @param mixed + * @param string the value of the cookie + * @param string the number of seconds until expiration + * @param string the cookie domain. Usually: .yourdomain.com + * @param string the cookie path + * @param string the cookie prefix + * @return void + */ +if ( ! function_exists('set_cookie')) +{ + function set_cookie($name = '', $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE) + { + // Set the config file options + $CI =& get_instance(); + $CI->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure); + } +} + +// -------------------------------------------------------------------- + +/** + * Fetch an item from the COOKIE array + * + * @access public + * @param string + * @param bool + * @return mixed + */ +if ( ! function_exists('get_cookie')) +{ + function get_cookie($index = '', $xss_clean = FALSE) + { + $CI =& get_instance(); + + $prefix = ''; + + if ( ! isset($_COOKIE[$index]) && config_item('cookie_prefix') != '') + { + $prefix = config_item('cookie_prefix'); + } + + return $CI->input->cookie($prefix.$index, $xss_clean); + } +} + +// -------------------------------------------------------------------- + +/** + * Delete a COOKIE + * + * @param mixed + * @param string the cookie domain. Usually: .yourdomain.com + * @param string the cookie path + * @param string the cookie prefix + * @return void + */ +if ( ! function_exists('delete_cookie')) +{ + function delete_cookie($name = '', $domain = '', $path = '/', $prefix = '') + { + set_cookie($name, '', '', $domain, $path, $prefix); + } +} + + +/* End of file cookie_helper.php */ +/* Location: ./system/helpers/cookie_helper.php */ \ No newline at end of file diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php new file mode 100755 index 0000000..0aeb7fa --- /dev/null +++ b/system/helpers/date_helper.php @@ -0,0 +1,611 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Date Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/date_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Get "now" time + * + * Returns time() or its GMT equivalent based on the config file preference + * + * @access public + * @return integer + */ +if ( ! function_exists('now')) +{ + function now() + { + $CI =& get_instance(); + + if (strtolower($CI->config->item('time_reference')) == 'gmt') + { + $now = time(); + $system_time = mktime(gmdate("H", $now), gmdate("i", $now), gmdate("s", $now), gmdate("m", $now), gmdate("d", $now), gmdate("Y", $now)); + + if (strlen($system_time) < 10) + { + $system_time = time(); + log_message('error', 'The Date class could not set a proper GMT timestamp so the local time() value was used.'); + } + + return $system_time; + } + else + { + return time(); + } + } +} + +// ------------------------------------------------------------------------ + +/** + * Convert MySQL Style Datecodes + * + * This function is identical to PHPs date() function, + * except that it allows date codes to be formatted using + * the MySQL style, where each code letter is preceded + * with a percent sign: %Y %m %d etc... + * + * The benefit of doing dates this way is that you don't + * have to worry about escaping your text letters that + * match the date codes. + * + * @access public + * @param string + * @param integer + * @return integer + */ +if ( ! function_exists('mdate')) +{ + function mdate($datestr = '', $time = '') + { + if ($datestr == '') + return ''; + + if ($time == '') + $time = now(); + + $datestr = str_replace('%\\', '', preg_replace("/([a-z]+?){1}/i", "\\\\\\1", $datestr)); + return date($datestr, $time); + } +} + +// ------------------------------------------------------------------------ + +/** + * Standard Date + * + * Returns a date formatted according to the submitted standard. + * + * @access public + * @param string the chosen format + * @param integer Unix timestamp + * @return string + */ +if ( ! function_exists('standard_date')) +{ + function standard_date($fmt = 'DATE_RFC822', $time = '') + { + $formats = array( + 'DATE_ATOM' => '%Y-%m-%dT%H:%i:%s%Q', + 'DATE_COOKIE' => '%l, %d-%M-%y %H:%i:%s UTC', + 'DATE_ISO8601' => '%Y-%m-%dT%H:%i:%s%Q', + 'DATE_RFC822' => '%D, %d %M %y %H:%i:%s %O', + 'DATE_RFC850' => '%l, %d-%M-%y %H:%i:%s UTC', + 'DATE_RFC1036' => '%D, %d %M %y %H:%i:%s %O', + 'DATE_RFC1123' => '%D, %d %M %Y %H:%i:%s %O', + 'DATE_RSS' => '%D, %d %M %Y %H:%i:%s %O', + 'DATE_W3C' => '%Y-%m-%dT%H:%i:%s%Q' + ); + + if ( ! isset($formats[$fmt])) + { + return FALSE; + } + + return mdate($formats[$fmt], $time); + } +} + +// ------------------------------------------------------------------------ + +/** + * Timespan + * + * Returns a span of seconds in this format: + * 10 days 14 hours 36 minutes 47 seconds + * + * @access public + * @param integer a number of seconds + * @param integer Unix timestamp + * @return integer + */ +if ( ! function_exists('timespan')) +{ + function timespan($seconds = 1, $time = '') + { + $CI =& get_instance(); + $CI->lang->load('date'); + + if ( ! is_numeric($seconds)) + { + $seconds = 1; + } + + if ( ! is_numeric($time)) + { + $time = time(); + } + + if ($time <= $seconds) + { + $seconds = 1; + } + else + { + $seconds = $time - $seconds; + } + + $str = ''; + $years = floor($seconds / 31536000); + + if ($years > 0) + { + $str .= $years.' '.$CI->lang->line((($years > 1) ? 'date_years' : 'date_year')).', '; + } + + $seconds -= $years * 31536000; + $months = floor($seconds / 2628000); + + if ($years > 0 OR $months > 0) + { + if ($months > 0) + { + $str .= $months.' '.$CI->lang->line((($months > 1) ? 'date_months' : 'date_month')).', '; + } + + $seconds -= $months * 2628000; + } + + $weeks = floor($seconds / 604800); + + if ($years > 0 OR $months > 0 OR $weeks > 0) + { + if ($weeks > 0) + { + $str .= $weeks.' '.$CI->lang->line((($weeks > 1) ? 'date_weeks' : 'date_week')).', '; + } + + $seconds -= $weeks * 604800; + } + + $days = floor($seconds / 86400); + + if ($months > 0 OR $weeks > 0 OR $days > 0) + { + if ($days > 0) + { + $str .= $days.' '.$CI->lang->line((($days > 1) ? 'date_days' : 'date_day')).', '; + } + + $seconds -= $days * 86400; + } + + $hours = floor($seconds / 3600); + + if ($days > 0 OR $hours > 0) + { + if ($hours > 0) + { + $str .= $hours.' '.$CI->lang->line((($hours > 1) ? 'date_hours' : 'date_hour')).', '; + } + + $seconds -= $hours * 3600; + } + + $minutes = floor($seconds / 60); + + if ($days > 0 OR $hours > 0 OR $minutes > 0) + { + if ($minutes > 0) + { + $str .= $minutes.' '.$CI->lang->line((($minutes > 1) ? 'date_minutes' : 'date_minute')).', '; + } + + $seconds -= $minutes * 60; + } + + if ($str == '') + { + $str .= $seconds.' '.$CI->lang->line((($seconds > 1) ? 'date_seconds' : 'date_second')).', '; + } + + return substr(trim($str), 0, -1); + } +} + +// ------------------------------------------------------------------------ + +/** + * Number of days in a month + * + * Takes a month/year as input and returns the number of days + * for the given month/year. Takes leap years into consideration. + * + * @access public + * @param integer a numeric month + * @param integer a numeric year + * @return integer + */ +if ( ! function_exists('days_in_month')) +{ + function days_in_month($month = 0, $year = '') + { + if ($month < 1 OR $month > 12) + { + return 0; + } + + if ( ! is_numeric($year) OR strlen($year) != 4) + { + $year = date('Y'); + } + + if ($month == 2) + { + if ($year % 400 == 0 OR ($year % 4 == 0 AND $year % 100 != 0)) + { + return 29; + } + } + + $days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); + return $days_in_month[$month - 1]; + } +} + +// ------------------------------------------------------------------------ + +/** + * Converts a local Unix timestamp to GMT + * + * @access public + * @param integer Unix timestamp + * @return integer + */ +if ( ! function_exists('local_to_gmt')) +{ + function local_to_gmt($time = '') + { + if ($time == '') + $time = time(); + + return mktime( gmdate("H", $time), gmdate("i", $time), gmdate("s", $time), gmdate("m", $time), gmdate("d", $time), gmdate("Y", $time)); + } +} + +// ------------------------------------------------------------------------ + +/** + * Converts GMT time to a localized value + * + * Takes a Unix timestamp (in GMT) as input, and returns + * at the local value based on the timezone and DST setting + * submitted + * + * @access public + * @param integer Unix timestamp + * @param string timezone + * @param bool whether DST is active + * @return integer + */ +if ( ! function_exists('gmt_to_local')) +{ + function gmt_to_local($time = '', $timezone = 'UTC', $dst = FALSE) + { + if ($time == '') + { + return now(); + } + + $time += timezones($timezone) * 3600; + + if ($dst == TRUE) + { + $time += 3600; + } + + return $time; + } +} + +// ------------------------------------------------------------------------ + +/** + * Converts a MySQL Timestamp to Unix + * + * @access public + * @param integer Unix timestamp + * @return integer + */ +if ( ! function_exists('mysql_to_unix')) +{ + function mysql_to_unix($time = '') + { + // We'll remove certain characters for backward compatibility + // since the formatting changed with MySQL 4.1 + // YYYY-MM-DD HH:MM:SS + + $time = str_replace('-', '', $time); + $time = str_replace(':', '', $time); + $time = str_replace(' ', '', $time); + + // YYYYMMDDHHMMSS + return mktime( + substr($time, 8, 2), + substr($time, 10, 2), + substr($time, 12, 2), + substr($time, 4, 2), + substr($time, 6, 2), + substr($time, 0, 4) + ); + } +} + +// ------------------------------------------------------------------------ + +/** + * Unix to "Human" + * + * Formats Unix timestamp to the following prototype: 2006-08-21 11:35 PM + * + * @access public + * @param integer Unix timestamp + * @param bool whether to show seconds + * @param string format: us or euro + * @return string + */ +if ( ! function_exists('unix_to_human')) +{ + function unix_to_human($time = '', $seconds = FALSE, $fmt = 'us') + { + $r = date('Y', $time).'-'.date('m', $time).'-'.date('d', $time).' '; + + if ($fmt == 'us') + { + $r .= date('h', $time).':'.date('i', $time); + } + else + { + $r .= date('H', $time).':'.date('i', $time); + } + + if ($seconds) + { + $r .= ':'.date('s', $time); + } + + if ($fmt == 'us') + { + $r .= ' '.date('A', $time); + } + + return $r; + } +} + +// ------------------------------------------------------------------------ + +/** + * Convert "human" date to GMT + * + * Reverses the above process + * + * @access public + * @param string format: us or euro + * @return integer + */ +if ( ! function_exists('human_to_unix')) +{ + function human_to_unix($datestr = '') + { + if ($datestr == '') + { + return FALSE; + } + + $datestr = trim($datestr); + $datestr = preg_replace("/\040+/", ' ', $datestr); + + if ( ! preg_match('/^[0-9]{2,4}\-[0-9]{1,2}\-[0-9]{1,2}\s[0-9]{1,2}:[0-9]{1,2}(?::[0-9]{1,2})?(?:\s[AP]M)?$/i', $datestr)) + { + return FALSE; + } + + $split = explode(' ', $datestr); + + $ex = explode("-", $split['0']); + + $year = (strlen($ex['0']) == 2) ? '20'.$ex['0'] : $ex['0']; + $month = (strlen($ex['1']) == 1) ? '0'.$ex['1'] : $ex['1']; + $day = (strlen($ex['2']) == 1) ? '0'.$ex['2'] : $ex['2']; + + $ex = explode(":", $split['1']); + + $hour = (strlen($ex['0']) == 1) ? '0'.$ex['0'] : $ex['0']; + $min = (strlen($ex['1']) == 1) ? '0'.$ex['1'] : $ex['1']; + + if (isset($ex['2']) && preg_match('/[0-9]{1,2}/', $ex['2'])) + { + $sec = (strlen($ex['2']) == 1) ? '0'.$ex['2'] : $ex['2']; + } + else + { + // Unless specified, seconds get set to zero. + $sec = '00'; + } + + if (isset($split['2'])) + { + $ampm = strtolower($split['2']); + + if (substr($ampm, 0, 1) == 'p' AND $hour < 12) + $hour = $hour + 12; + + if (substr($ampm, 0, 1) == 'a' AND $hour == 12) + $hour = '00'; + + if (strlen($hour) == 1) + $hour = '0'.$hour; + } + + return mktime($hour, $min, $sec, $month, $day, $year); + } +} + +// ------------------------------------------------------------------------ + +/** + * Timezone Menu + * + * Generates a drop-down menu of timezones. + * + * @access public + * @param string timezone + * @param string classname + * @param string menu name + * @return string + */ +if ( ! function_exists('timezone_menu')) +{ + function timezone_menu($default = 'UTC', $class = "", $name = 'timezones') + { + $CI =& get_instance(); + $CI->lang->load('date'); + + if ($default == 'GMT') + $default = 'UTC'; + + $menu = '<select name="'.$name.'"'; + + if ($class != '') + { + $menu .= ' class="'.$class.'"'; + } + + $menu .= ">\n"; + + foreach (timezones() as $key => $val) + { + $selected = ($default == $key) ? " selected='selected'" : ''; + $menu .= "<option value='{$key}'{$selected}>".$CI->lang->line($key)."</option>\n"; + } + + $menu .= "</select>"; + + return $menu; + } +} + +// ------------------------------------------------------------------------ + +/** + * Timezones + * + * Returns an array of timezones. This is a helper function + * for various other ones in this library + * + * @access public + * @param string timezone + * @return string + */ +if ( ! function_exists('timezones')) +{ + function timezones($tz = '') + { + // Note: Don't change the order of these even though + // some items appear to be in the wrong order + + $zones = array( + 'UM12' => -12, + 'UM11' => -11, + 'UM10' => -10, + 'UM95' => -9.5, + 'UM9' => -9, + 'UM8' => -8, + 'UM7' => -7, + 'UM6' => -6, + 'UM5' => -5, + 'UM45' => -4.5, + 'UM4' => -4, + 'UM35' => -3.5, + 'UM3' => -3, + 'UM2' => -2, + 'UM1' => -1, + 'UTC' => 0, + 'UP1' => +1, + 'UP2' => +2, + 'UP3' => +3, + 'UP35' => +3.5, + 'UP4' => +4, + 'UP45' => +4.5, + 'UP5' => +5, + 'UP55' => +5.5, + 'UP575' => +5.75, + 'UP6' => +6, + 'UP65' => +6.5, + 'UP7' => +7, + 'UP8' => +8, + 'UP875' => +8.75, + 'UP9' => +9, + 'UP95' => +9.5, + 'UP10' => +10, + 'UP105' => +10.5, + 'UP11' => +11, + 'UP115' => +11.5, + 'UP12' => +12, + 'UP1275' => +12.75, + 'UP13' => +13, + 'UP14' => +14 + ); + + if ($tz == '') + { + return $zones; + } + + if ($tz == 'GMT') + $tz = 'UTC'; + + return ( ! isset($zones[$tz])) ? 0 : $zones[$tz]; + } +} + + +/* End of file date_helper.php */ +/* Location: ./system/helpers/date_helper.php */ \ No newline at end of file diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php new file mode 100755 index 0000000..38347fa --- /dev/null +++ b/system/helpers/directory_helper.php @@ -0,0 +1,80 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Directory Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/directory_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Create a Directory Map + * + * Reads the specified directory and builds an array + * representation of it. Sub-folders contained with the + * directory will be mapped as well. + * + * @access public + * @param string path to source + * @param int depth of directories to traverse (0 = fully recursive, 1 = current dir, etc) + * @return array + */ +if ( ! function_exists('directory_map')) +{ + function directory_map($source_dir, $directory_depth = 0, $hidden = FALSE) + { + if ($fp = @opendir($source_dir)) + { + $filedata = array(); + $new_depth = $directory_depth - 1; + $source_dir = rtrim($source_dir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; + + while (FALSE !== ($file = readdir($fp))) + { + // Remove '.', '..', and hidden files [optional] + if ( ! trim($file, '.') OR ($hidden == FALSE && $file[0] == '.')) + { + continue; + } + + if (($directory_depth < 1 OR $new_depth > 0) && @is_dir($source_dir.$file)) + { + $filedata[$file] = directory_map($source_dir.$file.DIRECTORY_SEPARATOR, $new_depth, $hidden); + } + else + { + $filedata[] = $file; + } + } + + closedir($fp); + return $filedata; + } + + return FALSE; + } +} + + +/* End of file directory_helper.php */ +/* Location: ./system/helpers/directory_helper.php */ \ No newline at end of file diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php new file mode 100755 index 0000000..1145688 --- /dev/null +++ b/system/helpers/download_helper.php @@ -0,0 +1,107 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Download Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/download_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Force Download + * + * Generates headers that force a download to happen + * + * @access public + * @param string filename + * @param mixed the data to be downloaded + * @return void + */ +if ( ! function_exists('force_download')) +{ + function force_download($filename = '', $data = '') + { + if ($filename == '' OR $data == '') + { + return FALSE; + } + + // Try to determine if the filename includes a file extension. + // We need it in order to set the MIME type + if (FALSE === strpos($filename, '.')) + { + return FALSE; + } + + // Grab the file extension + $x = explode('.', $filename); + $extension = end($x); + + // Load the mime types + if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'); + } + elseif (is_file(APPPATH.'config/mimes.php')) + { + include(APPPATH.'config/mimes.php'); + } + + // Set a default mime if we can't find it + if ( ! isset($mimes[$extension])) + { + $mime = 'application/octet-stream'; + } + else + { + $mime = (is_array($mimes[$extension])) ? $mimes[$extension][0] : $mimes[$extension]; + } + + // Generate the server headers + if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE") !== FALSE) + { + header('Content-Type: "'.$mime.'"'); + header('Content-Disposition: attachment; filename="'.$filename.'"'); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header("Content-Transfer-Encoding: binary"); + header('Pragma: public'); + header("Content-Length: ".strlen($data)); + } + else + { + header('Content-Type: "'.$mime.'"'); + header('Content-Disposition: attachment; filename="'.$filename.'"'); + header("Content-Transfer-Encoding: binary"); + header('Expires: 0'); + header('Pragma: no-cache'); + header("Content-Length: ".strlen($data)); + } + + exit($data); + } +} + + +/* End of file download_helper.php */ +/* Location: ./system/helpers/download_helper.php */ \ No newline at end of file diff --git a/system/helpers/email_helper.php b/system/helpers/email_helper.php new file mode 100755 index 0000000..651aef4 --- /dev/null +++ b/system/helpers/email_helper.php @@ -0,0 +1,62 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Email Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/email_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Validate email address + * + * @access public + * @return bool + */ +if ( ! function_exists('valid_email')) +{ + function valid_email($address) + { + return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $address)) ? FALSE : TRUE; + } +} + +// ------------------------------------------------------------------------ + +/** + * Send an email + * + * @access public + * @return bool + */ +if ( ! function_exists('send_email')) +{ + function send_email($recipient, $subject = 'Test email', $message = 'Hello World') + { + return mail($recipient, $subject, $message); + } +} + + +/* End of file email_helper.php */ +/* Location: ./system/helpers/email_helper.php */ \ No newline at end of file diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php new file mode 100755 index 0000000..3931667 --- /dev/null +++ b/system/helpers/file_helper.php @@ -0,0 +1,479 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter File Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/file_helpers.html + */ + +// ------------------------------------------------------------------------ + +/** + * Read File + * + * Opens the file specfied in the path and returns it as a string. + * + * @access public + * @param string path to file + * @return string + */ +if ( ! function_exists('read_file')) +{ + function read_file($file) + { + if ( ! file_exists($file)) + { + return FALSE; + } + + if (function_exists('file_get_contents')) + { + return file_get_contents($file); + } + + if ( ! $fp = @fopen($file, FOPEN_READ)) + { + return FALSE; + } + + flock($fp, LOCK_SH); + + $data = ''; + if (filesize($file) > 0) + { + $data =& fread($fp, filesize($file)); + } + + flock($fp, LOCK_UN); + fclose($fp); + + return $data; + } +} + +// ------------------------------------------------------------------------ + +/** + * Write File + * + * Writes data to the file specified in the path. + * Creates a new file if non-existent. + * + * @access public + * @param string path to file + * @param string file data + * @return bool + */ +if ( ! function_exists('write_file')) +{ + function write_file($path, $data, $mode = FOPEN_WRITE_CREATE_DESTRUCTIVE) + { + if ( ! $fp = @fopen($path, $mode)) + { + return FALSE; + } + + flock($fp, LOCK_EX); + fwrite($fp, $data); + flock($fp, LOCK_UN); + fclose($fp); + + return TRUE; + } +} + +// ------------------------------------------------------------------------ + +/** + * Delete Files + * + * Deletes all files contained in the supplied directory path. + * Files must be writable or owned by the system in order to be deleted. + * If the second parameter is set to TRUE, any directories contained + * within the supplied base directory will be nuked as well. + * + * @access public + * @param string path to file + * @param bool whether to delete any directories found in the path + * @return bool + */ +if ( ! function_exists('delete_files')) +{ + function delete_files($path, $del_dir = FALSE, $level = 0) + { + // Trim the trailing slash + $path = rtrim($path, DIRECTORY_SEPARATOR); + + if ( ! $current_dir = @opendir($path)) + { + return FALSE; + } + + while (FALSE !== ($filename = @readdir($current_dir))) + { + if ($filename != "." and $filename != "..") + { + if (is_dir($path.DIRECTORY_SEPARATOR.$filename)) + { + // Ignore empty folders + if (substr($filename, 0, 1) != '.') + { + delete_files($path.DIRECTORY_SEPARATOR.$filename, $del_dir, $level + 1); + } + } + else + { + unlink($path.DIRECTORY_SEPARATOR.$filename); + } + } + } + @closedir($current_dir); + + if ($del_dir == TRUE AND $level > 0) + { + return @rmdir($path); + } + + return TRUE; + } +} + +// ------------------------------------------------------------------------ + +/** + * Get Filenames + * + * Reads the specified directory and builds an array containing the filenames. + * Any sub-folders contained within the specified path are read as well. + * + * @access public + * @param string path to source + * @param bool whether to include the path as part of the filename + * @param bool internal variable to determine recursion status - do not use in calls + * @return array + */ +if ( ! function_exists('get_filenames')) +{ + function get_filenames($source_dir, $include_path = FALSE, $_recursion = FALSE) + { + static $_filedata = array(); + + if ($fp = @opendir($source_dir)) + { + // reset the array and make sure $source_dir has a trailing slash on the initial call + if ($_recursion === FALSE) + { + $_filedata = array(); + $source_dir = rtrim(realpath($source_dir), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; + } + + while (FALSE !== ($file = readdir($fp))) + { + if (@is_dir($source_dir.$file) && strncmp($file, '.', 1) !== 0) + { + get_filenames($source_dir.$file.DIRECTORY_SEPARATOR, $include_path, TRUE); + } + elseif (strncmp($file, '.', 1) !== 0) + { + $_filedata[] = ($include_path == TRUE) ? $source_dir.$file : $file; + } + } + return $_filedata; + } + else + { + return FALSE; + } + } +} + +// -------------------------------------------------------------------- + +/** + * Get Directory File Information + * + * Reads the specified directory and builds an array containing the filenames, + * filesize, dates, and permissions + * + * Any sub-folders contained within the specified path are read as well. + * + * @access public + * @param string path to source + * @param bool Look only at the top level directory specified? + * @param bool internal variable to determine recursion status - do not use in calls + * @return array + */ +if ( ! function_exists('get_dir_file_info')) +{ + function get_dir_file_info($source_dir, $top_level_only = TRUE, $_recursion = FALSE) + { + static $_filedata = array(); + $relative_path = $source_dir; + + if ($fp = @opendir($source_dir)) + { + // reset the array and make sure $source_dir has a trailing slash on the initial call + if ($_recursion === FALSE) + { + $_filedata = array(); + $source_dir = rtrim(realpath($source_dir), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; + } + + // foreach (scandir($source_dir, 1) as $file) // In addition to being PHP5+, scandir() is simply not as fast + while (FALSE !== ($file = readdir($fp))) + { + if (@is_dir($source_dir.$file) AND strncmp($file, '.', 1) !== 0 AND $top_level_only === FALSE) + { + get_dir_file_info($source_dir.$file.DIRECTORY_SEPARATOR, $top_level_only, TRUE); + } + elseif (strncmp($file, '.', 1) !== 0) + { + $_filedata[$file] = get_file_info($source_dir.$file); + $_filedata[$file]['relative_path'] = $relative_path; + } + } + + return $_filedata; + } + else + { + return FALSE; + } + } +} + +// -------------------------------------------------------------------- + +/** +* Get File Info +* +* Given a file and path, returns the name, path, size, date modified +* Second parameter allows you to explicitly declare what information you want returned +* Options are: name, server_path, size, date, readable, writable, executable, fileperms +* Returns FALSE if the file cannot be found. +* +* @access public +* @param string path to file +* @param mixed array or comma separated string of information returned +* @return array +*/ +if ( ! function_exists('get_file_info')) +{ + function get_file_info($file, $returned_values = array('name', 'server_path', 'size', 'date')) + { + + if ( ! file_exists($file)) + { + return FALSE; + } + + if (is_string($returned_values)) + { + $returned_values = explode(',', $returned_values); + } + + foreach ($returned_values as $key) + { + switch ($key) + { + case 'name': + $fileinfo['name'] = substr(strrchr($file, DIRECTORY_SEPARATOR), 1); + break; + case 'server_path': + $fileinfo['server_path'] = $file; + break; + case 'size': + $fileinfo['size'] = filesize($file); + break; + case 'date': + $fileinfo['date'] = filemtime($file); + break; + case 'readable': + $fileinfo['readable'] = is_readable($file); + break; + case 'writable': + // There are known problems using is_weritable on IIS. It may not be reliable - consider fileperms() + $fileinfo['writable'] = is_writable($file); + break; + case 'executable': + $fileinfo['executable'] = is_executable($file); + break; + case 'fileperms': + $fileinfo['fileperms'] = fileperms($file); + break; + } + } + + return $fileinfo; + } +} + +// -------------------------------------------------------------------- + +/** + * Get Mime by Extension + * + * Translates a file extension into a mime type based on config/mimes.php. + * Returns FALSE if it can't determine the type, or open the mime config file + * + * Note: this is NOT an accurate way of determining file mime types, and is here strictly as a convenience + * It should NOT be trusted, and should certainly NOT be used for security + * + * @access public + * @param string path to file + * @return mixed + */ +if ( ! function_exists('get_mime_by_extension')) +{ + function get_mime_by_extension($file) + { + $extension = strtolower(substr(strrchr($file, '.'), 1)); + + global $mimes; + + if ( ! is_array($mimes)) + { + if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'); + } + elseif (is_file(APPPATH.'config/mimes.php')) + { + include(APPPATH.'config/mimes.php'); + } + + if ( ! is_array($mimes)) + { + return FALSE; + } + } + + if (array_key_exists($extension, $mimes)) + { + if (is_array($mimes[$extension])) + { + // Multiple mime types, just give the first one + return current($mimes[$extension]); + } + else + { + return $mimes[$extension]; + } + } + else + { + return FALSE; + } + } +} + +// -------------------------------------------------------------------- + +/** + * Symbolic Permissions + * + * Takes a numeric value representing a file's permissions and returns + * standard symbolic notation representing that value + * + * @access public + * @param int + * @return string + */ +if ( ! function_exists('symbolic_permissions')) +{ + function symbolic_permissions($perms) + { + if (($perms & 0xC000) == 0xC000) + { + $symbolic = 's'; // Socket + } + elseif (($perms & 0xA000) == 0xA000) + { + $symbolic = 'l'; // Symbolic Link + } + elseif (($perms & 0x8000) == 0x8000) + { + $symbolic = '-'; // Regular + } + elseif (($perms & 0x6000) == 0x6000) + { + $symbolic = 'b'; // Block special + } + elseif (($perms & 0x4000) == 0x4000) + { + $symbolic = 'd'; // Directory + } + elseif (($perms & 0x2000) == 0x2000) + { + $symbolic = 'c'; // Character special + } + elseif (($perms & 0x1000) == 0x1000) + { + $symbolic = 'p'; // FIFO pipe + } + else + { + $symbolic = 'u'; // Unknown + } + + // Owner + $symbolic .= (($perms & 0x0100) ? 'r' : '-'); + $symbolic .= (($perms & 0x0080) ? 'w' : '-'); + $symbolic .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); + + // Group + $symbolic .= (($perms & 0x0020) ? 'r' : '-'); + $symbolic .= (($perms & 0x0010) ? 'w' : '-'); + $symbolic .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); + + // World + $symbolic .= (($perms & 0x0004) ? 'r' : '-'); + $symbolic .= (($perms & 0x0002) ? 'w' : '-'); + $symbolic .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); + + return $symbolic; + } +} + +// -------------------------------------------------------------------- + +/** + * Octal Permissions + * + * Takes a numeric value representing a file's permissions and returns + * a three character string representing the file's octal permissions + * + * @access public + * @param int + * @return string + */ +if ( ! function_exists('octal_permissions')) +{ + function octal_permissions($perms) + { + return substr(sprintf('%o', $perms), -3); + } +} + + +/* End of file file_helper.php */ +/* Location: ./system/helpers/file_helper.php */ \ No newline at end of file diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php new file mode 100755 index 0000000..8733ae0 --- /dev/null +++ b/system/helpers/form_helper.php @@ -0,0 +1,1054 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Form Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/form_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Form Declaration + * + * Creates the opening portion of the form. + * + * @access public + * @param string the URI segments of the form destination + * @param array a key/value pair of attributes + * @param array a key/value pair hidden data + * @return string + */ +if ( ! function_exists('form_open')) +{ + function form_open($action = '', $attributes = '', $hidden = array()) + { + $CI =& get_instance(); + + if ($attributes == '') + { + $attributes = 'method="post"'; + } + + // If an action is not a full URL then turn it into one + if ($action && strpos($action, '://') === FALSE) + { + $action = $CI->config->site_url($action); + } + + // If no action is provided then set to the current url + $action OR $action = $CI->config->site_url($CI->uri->uri_string()); + + $form = '<form action="'.$action.'"'; + + $form .= _attributes_to_string($attributes, TRUE); + + $form .= '>'; + + // Add CSRF field if enabled, but leave it out for GET requests and requests to external websites + if ($CI->config->item('csrf_protection') === TRUE AND ! (strpos($action, $CI->config->base_url()) === FALSE OR strpos($form, 'method="get"'))) + { + $hidden[$CI->security->get_csrf_token_name()] = $CI->security->get_csrf_hash(); + } + + if (is_array($hidden) AND count($hidden) > 0) + { + $form .= sprintf("<div style=\"display:none\">%s</div>", form_hidden($hidden)); + } + + return $form; + } +} + +// ------------------------------------------------------------------------ + +/** + * Form Declaration - Multipart type + * + * Creates the opening portion of the form, but with "multipart/form-data". + * + * @access public + * @param string the URI segments of the form destination + * @param array a key/value pair of attributes + * @param array a key/value pair hidden data + * @return string + */ +if ( ! function_exists('form_open_multipart')) +{ + function form_open_multipart($action = '', $attributes = array(), $hidden = array()) + { + if (is_string($attributes)) + { + $attributes .= ' enctype="multipart/form-data"'; + } + else + { + $attributes['enctype'] = 'multipart/form-data'; + } + + return form_open($action, $attributes, $hidden); + } +} + +// ------------------------------------------------------------------------ + +/** + * Hidden Input Field + * + * Generates hidden fields. You can pass a simple key/value string or an associative + * array with multiple values. + * + * @access public + * @param mixed + * @param string + * @return string + */ +if ( ! function_exists('form_hidden')) +{ + function form_hidden($name, $value = '', $recursing = FALSE) + { + static $form; + + if ($recursing === FALSE) + { + $form = "\n"; + } + + if (is_array($name)) + { + foreach ($name as $key => $val) + { + form_hidden($key, $val, TRUE); + } + return $form; + } + + if ( ! is_array($value)) + { + $form .= '<input type="hidden" name="'.$name.'" value="'.form_prep($value, $name).'" />'."\n"; + } + else + { + foreach ($value as $k => $v) + { + $k = (is_int($k)) ? '' : $k; + form_hidden($name.'['.$k.']', $v, TRUE); + } + } + + return $form; + } +} + +// ------------------------------------------------------------------------ + +/** + * Text Input Field + * + * @access public + * @param mixed + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_input')) +{ + function form_input($data = '', $value = '', $extra = '') + { + $defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value); + + return "<input "._parse_form_attributes($data, $defaults).$extra." />"; + } +} + +// ------------------------------------------------------------------------ + +/** + * Password Field + * + * Identical to the input function but adds the "password" type + * + * @access public + * @param mixed + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_password')) +{ + function form_password($data = '', $value = '', $extra = '') + { + if ( ! is_array($data)) + { + $data = array('name' => $data); + } + + $data['type'] = 'password'; + return form_input($data, $value, $extra); + } +} + +// ------------------------------------------------------------------------ + +/** + * Upload Field + * + * Identical to the input function but adds the "file" type + * + * @access public + * @param mixed + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_upload')) +{ + function form_upload($data = '', $value = '', $extra = '') + { + if ( ! is_array($data)) + { + $data = array('name' => $data); + } + + $data['type'] = 'file'; + return form_input($data, $value, $extra); + } +} + +// ------------------------------------------------------------------------ + +/** + * Textarea field + * + * @access public + * @param mixed + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_textarea')) +{ + function form_textarea($data = '', $value = '', $extra = '') + { + $defaults = array('name' => (( ! is_array($data)) ? $data : ''), 'cols' => '40', 'rows' => '10'); + + if ( ! is_array($data) OR ! isset($data['value'])) + { + $val = $value; + } + else + { + $val = $data['value']; + unset($data['value']); // textareas don't use the value attribute + } + + $name = (is_array($data)) ? $data['name'] : $data; + return "<textarea "._parse_form_attributes($data, $defaults).$extra.">".form_prep($val, $name)."</textarea>"; + } +} + +// ------------------------------------------------------------------------ + +/** + * Multi-select menu + * + * @access public + * @param string + * @param array + * @param mixed + * @param string + * @return type + */ +if ( ! function_exists('form_multiselect')) +{ + function form_multiselect($name = '', $options = array(), $selected = array(), $extra = '') + { + if ( ! strpos($extra, 'multiple')) + { + $extra .= ' multiple="multiple"'; + } + + return form_dropdown($name, $options, $selected, $extra); + } +} + +// -------------------------------------------------------------------- + +/** + * Drop-down Menu + * + * @access public + * @param string + * @param array + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_dropdown')) +{ + function form_dropdown($name = '', $options = array(), $selected = array(), $extra = '') + { + if ( ! is_array($selected)) + { + $selected = array($selected); + } + + // If no selected state was submitted we will attempt to set it automatically + if (count($selected) === 0) + { + // If the form name appears in the $_POST array we have a winner! + if (isset($_POST[$name])) + { + $selected = array($_POST[$name]); + } + } + + if ($extra != '') $extra = ' '.$extra; + + $multiple = (count($selected) > 1 && strpos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : ''; + + $form = '<select name="'.$name.'"'.$extra.$multiple.">\n"; + + foreach ($options as $key => $val) + { + $key = (string) $key; + + if (is_array($val) && ! empty($val)) + { + $form .= '<optgroup label="'.$key.'">'."\n"; + + foreach ($val as $optgroup_key => $optgroup_val) + { + $sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : ''; + + $form .= '<option value="'.$optgroup_key.'"'.$sel.'>'.(string) $optgroup_val."</option>\n"; + } + + $form .= '</optgroup>'."\n"; + } + else + { + $sel = (in_array($key, $selected)) ? ' selected="selected"' : ''; + + $form .= '<option value="'.$key.'"'.$sel.'>'.(string) $val."</option>\n"; + } + } + + $form .= '</select>'; + + return $form; + } +} + +// ------------------------------------------------------------------------ + +/** + * Checkbox Field + * + * @access public + * @param mixed + * @param string + * @param bool + * @param string + * @return string + */ +if ( ! function_exists('form_checkbox')) +{ + function form_checkbox($data = '', $value = '', $checked = FALSE, $extra = '') + { + $defaults = array('type' => 'checkbox', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value); + + if (is_array($data) AND array_key_exists('checked', $data)) + { + $checked = $data['checked']; + + if ($checked == FALSE) + { + unset($data['checked']); + } + else + { + $data['checked'] = 'checked'; + } + } + + if ($checked == TRUE) + { + $defaults['checked'] = 'checked'; + } + else + { + unset($defaults['checked']); + } + + return "<input "._parse_form_attributes($data, $defaults).$extra." />"; + } +} + +// ------------------------------------------------------------------------ + +/** + * Radio Button + * + * @access public + * @param mixed + * @param string + * @param bool + * @param string + * @return string + */ +if ( ! function_exists('form_radio')) +{ + function form_radio($data = '', $value = '', $checked = FALSE, $extra = '') + { + if ( ! is_array($data)) + { + $data = array('name' => $data); + } + + $data['type'] = 'radio'; + return form_checkbox($data, $value, $checked, $extra); + } +} + +// ------------------------------------------------------------------------ + +/** + * Submit Button + * + * @access public + * @param mixed + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_submit')) +{ + function form_submit($data = '', $value = '', $extra = '') + { + $defaults = array('type' => 'submit', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value); + + return "<input "._parse_form_attributes($data, $defaults).$extra." />"; + } +} + +// ------------------------------------------------------------------------ + +/** + * Reset Button + * + * @access public + * @param mixed + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_reset')) +{ + function form_reset($data = '', $value = '', $extra = '') + { + $defaults = array('type' => 'reset', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value); + + return "<input "._parse_form_attributes($data, $defaults).$extra." />"; + } +} + +// ------------------------------------------------------------------------ + +/** + * Form Button + * + * @access public + * @param mixed + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_button')) +{ + function form_button($data = '', $content = '', $extra = '') + { + $defaults = array('name' => (( ! is_array($data)) ? $data : ''), 'type' => 'button'); + + if ( is_array($data) AND isset($data['content'])) + { + $content = $data['content']; + unset($data['content']); // content is not an attribute + } + + return "<button "._parse_form_attributes($data, $defaults).$extra.">".$content."</button>"; + } +} + +// ------------------------------------------------------------------------ + +/** + * Form Label Tag + * + * @access public + * @param string The text to appear onscreen + * @param string The id the label applies to + * @param string Additional attributes + * @return string + */ +if ( ! function_exists('form_label')) +{ + function form_label($label_text = '', $id = '', $attributes = array()) + { + + $label = '<label'; + + if ($id != '') + { + $label .= " for=\"$id\""; + } + + if (is_array($attributes) AND count($attributes) > 0) + { + foreach ($attributes as $key => $val) + { + $label .= ' '.$key.'="'.$val.'"'; + } + } + + $label .= ">$label_text</label>"; + + return $label; + } +} + +// ------------------------------------------------------------------------ +/** + * Fieldset Tag + * + * Used to produce <fieldset><legend>text</legend>. To close fieldset + * use form_fieldset_close() + * + * @access public + * @param string The legend text + * @param string Additional attributes + * @return string + */ +if ( ! function_exists('form_fieldset')) +{ + function form_fieldset($legend_text = '', $attributes = array()) + { + $fieldset = "<fieldset"; + + $fieldset .= _attributes_to_string($attributes, FALSE); + + $fieldset .= ">\n"; + + if ($legend_text != '') + { + $fieldset .= "<legend>$legend_text</legend>\n"; + } + + return $fieldset; + } +} + +// ------------------------------------------------------------------------ + +/** + * Fieldset Close Tag + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('form_fieldset_close')) +{ + function form_fieldset_close($extra = '') + { + return "</fieldset>".$extra; + } +} + +// ------------------------------------------------------------------------ + +/** + * Form Close Tag + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('form_close')) +{ + function form_close($extra = '') + { + return "</form>".$extra; + } +} + +// ------------------------------------------------------------------------ + +/** + * Form Prep + * + * Formats text so that it can be safely placed in a form field in the event it has HTML tags. + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('form_prep')) +{ + function form_prep($str = '', $field_name = '') + { + static $prepped_fields = array(); + + // if the field name is an array we do this recursively + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = form_prep($val); + } + + return $str; + } + + if ($str === '') + { + return ''; + } + + // we've already prepped a field with this name + // @todo need to figure out a way to namespace this so + // that we know the *exact* field and not just one with + // the same name + if (isset($prepped_fields[$field_name])) + { + return $str; + } + + $str = htmlspecialchars($str); + + // In case htmlspecialchars misses these. + $str = str_replace(array("'", '"'), array("&#39;", "&quot;"), $str); + + if ($field_name != '') + { + $prepped_fields[$field_name] = $field_name; + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Form Value + * + * Grabs a value from the POST array for the specified field so you can + * re-populate an input field or textarea. If Form Validation + * is active it retrieves the info from the validation class + * + * @access public + * @param string + * @return mixed + */ +if ( ! function_exists('set_value')) +{ + function set_value($field = '', $default = '') + { + if (FALSE === ($OBJ =& _get_validation_object())) + { + if ( ! isset($_POST[$field])) + { + return $default; + } + + return form_prep($_POST[$field], $field); + } + + return form_prep($OBJ->set_value($field, $default), $field); + } +} + +// ------------------------------------------------------------------------ + +/** + * Set Select + * + * Let's you set the selected value of a <select> menu via data in the POST array. + * If Form Validation is active it retrieves the info from the validation class + * + * @access public + * @param string + * @param string + * @param bool + * @return string + */ +if ( ! function_exists('set_select')) +{ + function set_select($field = '', $value = '', $default = FALSE) + { + $OBJ =& _get_validation_object(); + + if ($OBJ === FALSE) + { + if ( ! isset($_POST[$field])) + { + if (count($_POST) === 0 AND $default == TRUE) + { + return ' selected="selected"'; + } + return ''; + } + + $field = $_POST[$field]; + + if (is_array($field)) + { + if ( ! in_array($value, $field)) + { + return ''; + } + } + else + { + if (($field == '' OR $value == '') OR ($field != $value)) + { + return ''; + } + } + + return ' selected="selected"'; + } + + return $OBJ->set_select($field, $value, $default); + } +} + +// ------------------------------------------------------------------------ + +/** + * Set Checkbox + * + * Let's you set the selected value of a checkbox via the value in the POST array. + * If Form Validation is active it retrieves the info from the validation class + * + * @access public + * @param string + * @param string + * @param bool + * @return string + */ +if ( ! function_exists('set_checkbox')) +{ + function set_checkbox($field = '', $value = '', $default = FALSE) + { + $OBJ =& _get_validation_object(); + + if ($OBJ === FALSE) + { + if ( ! isset($_POST[$field])) + { + if (count($_POST) === 0 AND $default == TRUE) + { + return ' checked="checked"'; + } + return ''; + } + + $field = $_POST[$field]; + + if (is_array($field)) + { + if ( ! in_array($value, $field)) + { + return ''; + } + } + else + { + if (($field == '' OR $value == '') OR ($field != $value)) + { + return ''; + } + } + + return ' checked="checked"'; + } + + return $OBJ->set_checkbox($field, $value, $default); + } +} + +// ------------------------------------------------------------------------ + +/** + * Set Radio + * + * Let's you set the selected value of a radio field via info in the POST array. + * If Form Validation is active it retrieves the info from the validation class + * + * @access public + * @param string + * @param string + * @param bool + * @return string + */ +if ( ! function_exists('set_radio')) +{ + function set_radio($field = '', $value = '', $default = FALSE) + { + $OBJ =& _get_validation_object(); + + if ($OBJ === FALSE) + { + if ( ! isset($_POST[$field])) + { + if (count($_POST) === 0 AND $default == TRUE) + { + return ' checked="checked"'; + } + return ''; + } + + $field = $_POST[$field]; + + if (is_array($field)) + { + if ( ! in_array($value, $field)) + { + return ''; + } + } + else + { + if (($field == '' OR $value == '') OR ($field != $value)) + { + return ''; + } + } + + return ' checked="checked"'; + } + + return $OBJ->set_radio($field, $value, $default); + } +} + +// ------------------------------------------------------------------------ + +/** + * Form Error + * + * Returns the error for a specific form field. This is a helper for the + * form validation class. + * + * @access public + * @param string + * @param string + * @param string + * @return string + */ +if ( ! function_exists('form_error')) +{ + function form_error($field = '', $prefix = '', $suffix = '') + { + if (FALSE === ($OBJ =& _get_validation_object())) + { + return ''; + } + + return $OBJ->error($field, $prefix, $suffix); + } +} + +// ------------------------------------------------------------------------ + +/** + * Validation Error String + * + * Returns all the errors associated with a form submission. This is a helper + * function for the form validation class. + * + * @access public + * @param string + * @param string + * @return string + */ +if ( ! function_exists('validation_errors')) +{ + function validation_errors($prefix = '', $suffix = '') + { + if (FALSE === ($OBJ =& _get_validation_object())) + { + return ''; + } + + return $OBJ->error_string($prefix, $suffix); + } +} + +// ------------------------------------------------------------------------ + +/** + * Parse the form attributes + * + * Helper function used by some of the form helpers + * + * @access private + * @param array + * @param array + * @return string + */ +if ( ! function_exists('_parse_form_attributes')) +{ + function _parse_form_attributes($attributes, $default) + { + if (is_array($attributes)) + { + foreach ($default as $key => $val) + { + if (isset($attributes[$key])) + { + $default[$key] = $attributes[$key]; + unset($attributes[$key]); + } + } + + if (count($attributes) > 0) + { + $default = array_merge($default, $attributes); + } + } + + $att = ''; + + foreach ($default as $key => $val) + { + if ($key == 'value') + { + $val = form_prep($val, $default['name']); + } + + $att .= $key . '="' . $val . '" '; + } + + return $att; + } +} + +// ------------------------------------------------------------------------ + +/** + * Attributes To String + * + * Helper function used by some of the form helpers + * + * @access private + * @param mixed + * @param bool + * @return string + */ +if ( ! function_exists('_attributes_to_string')) +{ + function _attributes_to_string($attributes, $formtag = FALSE) + { + if (is_string($attributes) AND strlen($attributes) > 0) + { + if ($formtag == TRUE AND strpos($attributes, 'method=') === FALSE) + { + $attributes .= ' method="post"'; + } + + if ($formtag == TRUE AND strpos($attributes, 'accept-charset=') === FALSE) + { + $attributes .= ' accept-charset="'.strtolower(config_item('charset')).'"'; + } + + return ' '.$attributes; + } + + if (is_object($attributes) AND count($attributes) > 0) + { + $attributes = (array)$attributes; + } + + if (is_array($attributes) AND count($attributes) > 0) + { + $atts = ''; + + if ( ! isset($attributes['method']) AND $formtag === TRUE) + { + $atts .= ' method="post"'; + } + + if ( ! isset($attributes['accept-charset']) AND $formtag === TRUE) + { + $atts .= ' accept-charset="'.strtolower(config_item('charset')).'"'; + } + + foreach ($attributes as $key => $val) + { + $atts .= ' '.$key.'="'.$val.'"'; + } + + return $atts; + } + } +} + +// ------------------------------------------------------------------------ + +/** + * Validation Object + * + * Determines what the form validation class was instantiated as, fetches + * the object and returns it. + * + * @access private + * @return mixed + */ +if ( ! function_exists('_get_validation_object')) +{ + function &_get_validation_object() + { + $CI =& get_instance(); + + // We set this as a variable since we're returning by reference. + $return = FALSE; + + if (FALSE !== ($object = $CI->load->is_loaded('form_validation'))) + { + if ( ! isset($CI->$object) OR ! is_object($CI->$object)) + { + return $return; + } + + return $CI->$object; + } + + return $return; + } +} + + +/* End of file form_helper.php */ +/* Location: ./system/helpers/form_helper.php */ diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php new file mode 100755 index 0000000..b64b606 --- /dev/null +++ b/system/helpers/html_helper.php @@ -0,0 +1,436 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter HTML Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/html_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Heading + * + * Generates an HTML heading tag. First param is the data. + * Second param is the size of the heading tag. + * + * @access public + * @param string + * @param integer + * @return string + */ +if ( ! function_exists('heading')) +{ + function heading($data = '', $h = '1', $attributes = '') + { + $attributes = ($attributes != '') ? ' '.$attributes : $attributes; + return "<h".$h.$attributes.">".$data."</h".$h.">"; + } +} + +// ------------------------------------------------------------------------ + +/** + * Unordered List + * + * Generates an HTML unordered list from an single or multi-dimensional array. + * + * @access public + * @param array + * @param mixed + * @return string + */ +if ( ! function_exists('ul')) +{ + function ul($list, $attributes = '') + { + return _list('ul', $list, $attributes); + } +} + +// ------------------------------------------------------------------------ + +/** + * Ordered List + * + * Generates an HTML ordered list from an single or multi-dimensional array. + * + * @access public + * @param array + * @param mixed + * @return string + */ +if ( ! function_exists('ol')) +{ + function ol($list, $attributes = '') + { + return _list('ol', $list, $attributes); + } +} + +// ------------------------------------------------------------------------ + +/** + * Generates the list + * + * Generates an HTML ordered list from an single or multi-dimensional array. + * + * @access private + * @param string + * @param mixed + * @param mixed + * @param integer + * @return string + */ +if ( ! function_exists('_list')) +{ + function _list($type = 'ul', $list, $attributes = '', $depth = 0) + { + // If an array wasn't submitted there's nothing to do... + if ( ! is_array($list)) + { + return $list; + } + + // Set the indentation based on the depth + $out = str_repeat(" ", $depth); + + // Were any attributes submitted? If so generate a string + if (is_array($attributes)) + { + $atts = ''; + foreach ($attributes as $key => $val) + { + $atts .= ' ' . $key . '="' . $val . '"'; + } + $attributes = $atts; + } + elseif (is_string($attributes) AND strlen($attributes) > 0) + { + $attributes = ' '. $attributes; + } + + // Write the opening list tag + $out .= "<".$type.$attributes.">\n"; + + // Cycle through the list elements. If an array is + // encountered we will recursively call _list() + + static $_last_list_item = ''; + foreach ($list as $key => $val) + { + $_last_list_item = $key; + + $out .= str_repeat(" ", $depth + 2); + $out .= "<li>"; + + if ( ! is_array($val)) + { + $out .= $val; + } + else + { + $out .= $_last_list_item."\n"; + $out .= _list($type, $val, '', $depth + 4); + $out .= str_repeat(" ", $depth + 2); + } + + $out .= "</li>\n"; + } + + // Set the indentation for the closing tag + $out .= str_repeat(" ", $depth); + + // Write the closing list tag + $out .= "</".$type.">\n"; + + return $out; + } +} + +// ------------------------------------------------------------------------ + +/** + * Generates HTML BR tags based on number supplied + * + * @access public + * @param integer + * @return string + */ +if ( ! function_exists('br')) +{ + function br($num = 1) + { + return str_repeat("<br />", $num); + } +} + +// ------------------------------------------------------------------------ + +/** + * Image + * + * Generates an <img /> element + * + * @access public + * @param mixed + * @return string + */ +if ( ! function_exists('img')) +{ + function img($src = '', $index_page = FALSE) + { + if ( ! is_array($src) ) + { + $src = array('src' => $src); + } + + // If there is no alt attribute defined, set it to an empty string + if ( ! isset($src['alt'])) + { + $src['alt'] = ''; + } + + $img = '<img'; + + foreach ($src as $k=>$v) + { + + if ($k == 'src' AND strpos($v, '://') === FALSE) + { + $CI =& get_instance(); + + if ($index_page === TRUE) + { + $img .= ' src="'.$CI->config->site_url($v).'"'; + } + else + { + $img .= ' src="'.$CI->config->slash_item('base_url').$v.'"'; + } + } + else + { + $img .= " $k=\"$v\""; + } + } + + $img .= '/>'; + + return $img; + } +} + +// ------------------------------------------------------------------------ + +/** + * Doctype + * + * Generates a page document type declaration + * + * Valid options are xhtml-11, xhtml-strict, xhtml-trans, xhtml-frame, + * html4-strict, html4-trans, and html4-frame. Values are saved in the + * doctypes config file. + * + * @access public + * @param string type The doctype to be generated + * @return string + */ +if ( ! function_exists('doctype')) +{ + function doctype($type = 'xhtml1-strict') + { + global $_doctypes; + + if ( ! is_array($_doctypes)) + { + if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/doctypes.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/doctypes.php'); + } + elseif (is_file(APPPATH.'config/doctypes.php')) + { + include(APPPATH.'config/doctypes.php'); + } + + if ( ! is_array($_doctypes)) + { + return FALSE; + } + } + + if (isset($_doctypes[$type])) + { + return $_doctypes[$type]; + } + else + { + return FALSE; + } + } +} + +// ------------------------------------------------------------------------ + +/** + * Link + * + * Generates link to a CSS file + * + * @access public + * @param mixed stylesheet hrefs or an array + * @param string rel + * @param string type + * @param string title + * @param string media + * @param boolean should index_page be added to the css path + * @return string + */ +if ( ! function_exists('link_tag')) +{ + function link_tag($href = '', $rel = 'stylesheet', $type = 'text/css', $title = '', $media = '', $index_page = FALSE) + { + $CI =& get_instance(); + + $link = '<link '; + + if (is_array($href)) + { + foreach ($href as $k=>$v) + { + if ($k == 'href' AND strpos($v, '://') === FALSE) + { + if ($index_page === TRUE) + { + $link .= 'href="'.$CI->config->site_url($v).'" '; + } + else + { + $link .= 'href="'.$CI->config->slash_item('base_url').$v.'" '; + } + } + else + { + $link .= "$k=\"$v\" "; + } + } + + $link .= "/>"; + } + else + { + if ( strpos($href, '://') !== FALSE) + { + $link .= 'href="'.$href.'" '; + } + elseif ($index_page === TRUE) + { + $link .= 'href="'.$CI->config->site_url($href).'" '; + } + else + { + $link .= 'href="'.$CI->config->slash_item('base_url').$href.'" '; + } + + $link .= 'rel="'.$rel.'" type="'.$type.'" '; + + if ($media != '') + { + $link .= 'media="'.$media.'" '; + } + + if ($title != '') + { + $link .= 'title="'.$title.'" '; + } + + $link .= '/>'; + } + + + return $link; + } +} + +// ------------------------------------------------------------------------ + +/** + * Generates meta tags from an array of key/values + * + * @access public + * @param array + * @return string + */ +if ( ! function_exists('meta')) +{ + function meta($name = '', $content = '', $type = 'name', $newline = "\n") + { + // Since we allow the data to be passes as a string, a simple array + // or a multidimensional one, we need to do a little prepping. + if ( ! is_array($name)) + { + $name = array(array('name' => $name, 'content' => $content, 'type' => $type, 'newline' => $newline)); + } + else + { + // Turn single array into multidimensional + if (isset($name['name'])) + { + $name = array($name); + } + } + + $str = ''; + foreach ($name as $meta) + { + $type = ( ! isset($meta['type']) OR $meta['type'] == 'name') ? 'name' : 'http-equiv'; + $name = ( ! isset($meta['name'])) ? '' : $meta['name']; + $content = ( ! isset($meta['content'])) ? '' : $meta['content']; + $newline = ( ! isset($meta['newline'])) ? "\n" : $meta['newline']; + + $str .= '<meta '.$type.'="'.$name.'" content="'.$content.'" />'.$newline; + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Generates non-breaking space entities based on number supplied + * + * @access public + * @param integer + * @return string + */ +if ( ! function_exists('nbs')) +{ + function nbs($num = 1) + { + return str_repeat("&nbsp;", $num); + } +} + + +/* End of file html_helper.php */ +/* Location: ./system/helpers/html_helper.php */ \ No newline at end of file diff --git a/system/helpers/index.html b/system/helpers/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/helpers/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php new file mode 100755 index 0000000..7b99bc5 --- /dev/null +++ b/system/helpers/inflector_helper.php @@ -0,0 +1,203 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Inflector Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/directory_helper.html + */ + + +// -------------------------------------------------------------------- + +/** + * Singular + * + * Takes a plural word and makes it singular + * + * @access public + * @param string + * @return str + */ +if ( ! function_exists('singular')) +{ + function singular($str) + { + $result = strval($str); + + $singular_rules = array( + '/(matr)ices$/' => '\1ix', + '/(vert|ind)ices$/' => '\1ex', + '/^(ox)en/' => '\1', + '/(alias)es$/' => '\1', + '/([octop|vir])i$/' => '\1us', + '/(cris|ax|test)es$/' => '\1is', + '/(shoe)s$/' => '\1', + '/(o)es$/' => '\1', + '/(bus|campus)es$/' => '\1', + '/([m|l])ice$/' => '\1ouse', + '/(x|ch|ss|sh)es$/' => '\1', + '/(m)ovies$/' => '\1\2ovie', + '/(s)eries$/' => '\1\2eries', + '/([^aeiouy]|qu)ies$/' => '\1y', + '/([lr])ves$/' => '\1f', + '/(tive)s$/' => '\1', + '/(hive)s$/' => '\1', + '/([^f])ves$/' => '\1fe', + '/(^analy)ses$/' => '\1sis', + '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/' => '\1\2sis', + '/([ti])a$/' => '\1um', + '/(p)eople$/' => '\1\2erson', + '/(m)en$/' => '\1an', + '/(s)tatuses$/' => '\1\2tatus', + '/(c)hildren$/' => '\1\2hild', + '/(n)ews$/' => '\1\2ews', + '/([^u])s$/' => '\1', + ); + + foreach ($singular_rules as $rule => $replacement) + { + if (preg_match($rule, $result)) + { + $result = preg_replace($rule, $replacement, $result); + break; + } + } + + return $result; + } +} + +// -------------------------------------------------------------------- + +/** + * Plural + * + * Takes a singular word and makes it plural + * + * @access public + * @param string + * @param bool + * @return str + */ +if ( ! function_exists('plural')) +{ + function plural($str, $force = FALSE) + { + $result = strval($str); + + $plural_rules = array( + '/^(ox)$/' => '\1\2en', // ox + '/([m|l])ouse$/' => '\1ice', // mouse, louse + '/(matr|vert|ind)ix|ex$/' => '\1ices', // matrix, vertex, index + '/(x|ch|ss|sh)$/' => '\1es', // search, switch, fix, box, process, address + '/([^aeiouy]|qu)y$/' => '\1ies', // query, ability, agency + '/(hive)$/' => '\1s', // archive, hive + '/(?:([^f])fe|([lr])f)$/' => '\1\2ves', // half, safe, wife + '/sis$/' => 'ses', // basis, diagnosis + '/([ti])um$/' => '\1a', // datum, medium + '/(p)erson$/' => '\1eople', // person, salesperson + '/(m)an$/' => '\1en', // man, woman, spokesman + '/(c)hild$/' => '\1hildren', // child + '/(buffal|tomat)o$/' => '\1\2oes', // buffalo, tomato + '/(bu|campu)s$/' => '\1\2ses', // bus, campus + '/(alias|status|virus)/' => '\1es', // alias + '/(octop)us$/' => '\1i', // octopus + '/(ax|cris|test)is$/' => '\1es', // axis, crisis + '/s$/' => 's', // no change (compatibility) + '/$/' => 's', + ); + + foreach ($plural_rules as $rule => $replacement) + { + if (preg_match($rule, $result)) + { + $result = preg_replace($rule, $replacement, $result); + break; + } + } + + return $result; + } +} + +// -------------------------------------------------------------------- + +/** + * Camelize + * + * Takes multiple words separated by spaces or underscores and camelizes them + * + * @access public + * @param string + * @return str + */ +if ( ! function_exists('camelize')) +{ + function camelize($str) + { + $str = 'x'.strtolower(trim($str)); + $str = ucwords(preg_replace('/[\s_]+/', ' ', $str)); + return substr(str_replace(' ', '', $str), 1); + } +} + +// -------------------------------------------------------------------- + +/** + * Underscore + * + * Takes multiple words separated by spaces and underscores them + * + * @access public + * @param string + * @return str + */ +if ( ! function_exists('underscore')) +{ + function underscore($str) + { + return preg_replace('/[\s]+/', '_', strtolower(trim($str))); + } +} + +// -------------------------------------------------------------------- + +/** + * Humanize + * + * Takes multiple words separated by underscores and changes them to spaces + * + * @access public + * @param string + * @return str + */ +if ( ! function_exists('humanize')) +{ + function humanize($str) + { + return ucwords(preg_replace('/[_]+/', ' ', strtolower(trim($str)))); + } +} + + +/* End of file inflector_helper.php */ +/* Location: ./system/helpers/inflector_helper.php */ \ No newline at end of file diff --git a/system/helpers/language_helper.php b/system/helpers/language_helper.php new file mode 100755 index 0000000..ac0d69d --- /dev/null +++ b/system/helpers/language_helper.php @@ -0,0 +1,58 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Language Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/language_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Lang + * + * Fetches a language variable and optionally outputs a form label + * + * @access public + * @param string the language line + * @param string the id of the form element + * @return string + */ +if ( ! function_exists('lang')) +{ + function lang($line, $id = '') + { + $CI =& get_instance(); + $line = $CI->lang->line($line); + + if ($id != '') + { + $line = '<label for="'.$id.'">'.$line."</label>"; + } + + return $line; + } +} + +// ------------------------------------------------------------------------ +/* End of file language_helper.php */ +/* Location: ./system/helpers/language_helper.php */ \ No newline at end of file diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php new file mode 100755 index 0000000..6117775 --- /dev/null +++ b/system/helpers/number_helper.php @@ -0,0 +1,76 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Number Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/number_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Formats a numbers as bytes, based on size, and adds the appropriate suffix + * + * @access public + * @param mixed // will be cast as int + * @return string + */ +if ( ! function_exists('byte_format')) +{ + function byte_format($num, $precision = 1) + { + $CI =& get_instance(); + $CI->lang->load('number'); + + if ($num >= 1000000000000) + { + $num = round($num / 1099511627776, $precision); + $unit = $CI->lang->line('terabyte_abbr'); + } + elseif ($num >= 1000000000) + { + $num = round($num / 1073741824, $precision); + $unit = $CI->lang->line('gigabyte_abbr'); + } + elseif ($num >= 1000000) + { + $num = round($num / 1048576, $precision); + $unit = $CI->lang->line('megabyte_abbr'); + } + elseif ($num >= 1000) + { + $num = round($num / 1024, $precision); + $unit = $CI->lang->line('kilobyte_abbr'); + } + else + { + $unit = $CI->lang->line('bytes'); + return number_format($num).' '.$unit; + } + + return number_format($num, $precision).' '.$unit; + } +} + + +/* End of file number_helper.php */ +/* Location: ./system/helpers/number_helper.php */ \ No newline at end of file diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php new file mode 100755 index 0000000..ffcf468 --- /dev/null +++ b/system/helpers/path_helper.php @@ -0,0 +1,72 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Path Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/xml_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Set Realpath + * + * @access public + * @param string + * @param bool checks to see if the path exists + * @return string + */ +if ( ! function_exists('set_realpath')) +{ + function set_realpath($path, $check_existance = FALSE) + { + // Security check to make sure the path is NOT a URL. No remote file inclusion! + if (preg_match("#^(http:\/\/|https:\/\/|www\.|ftp|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})#i", $path)) + { + show_error('The path you submitted must be a local server path, not a URL'); + } + + // Resolve the path + if (function_exists('realpath') AND @realpath($path) !== FALSE) + { + $path = realpath($path).'/'; + } + + // Add a trailing slash + $path = preg_replace("#([^/])/*$#", "\\1/", $path); + + // Make sure the path exists + if ($check_existance == TRUE) + { + if ( ! is_dir($path)) + { + show_error('Not a valid path: '.$path); + } + } + + return $path; + } +} + + +/* End of file path_helper.php */ +/* Location: ./system/helpers/path_helper.php */ \ No newline at end of file diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php new file mode 100755 index 0000000..678dac8 --- /dev/null +++ b/system/helpers/security_helper.php @@ -0,0 +1,128 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Security Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/security_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * XSS Filtering + * + * @access public + * @param string + * @param bool whether or not the content is an image file + * @return string + */ +if ( ! function_exists('xss_clean')) +{ + function xss_clean($str, $is_image = FALSE) + { + $CI =& get_instance(); + return $CI->security->xss_clean($str, $is_image); + } +} + +// ------------------------------------------------------------------------ + +/** + * Sanitize Filename + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('sanitize_filename')) +{ + function sanitize_filename($filename) + { + $CI =& get_instance(); + return $CI->security->sanitize_filename($filename); + } +} + +// -------------------------------------------------------------------- + +/** + * Hash encode a string + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('do_hash')) +{ + function do_hash($str, $type = 'sha1') + { + if ($type == 'sha1') + { + return sha1($str); + } + else + { + return md5($str); + } + } +} + +// ------------------------------------------------------------------------ + +/** + * Strip Image Tags + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('strip_image_tags')) +{ + function strip_image_tags($str) + { + $str = preg_replace("#<img\s+.*?src\s*=\s*[\"'](.+?)[\"'].*?\>#", "\\1", $str); + $str = preg_replace("#<img\s+.*?src\s*=\s*(.+?).*?\>#", "\\1", $str); + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Convert PHP tags to entities + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('encode_php_tags')) +{ + function encode_php_tags($str) + { + return str_replace(array('<?php', '<?PHP', '<?', '?>'), array('&lt;?php', '&lt;?PHP', '&lt;?', '?&gt;'), $str); + } +} + + +/* End of file security_helper.php */ +/* Location: ./system/helpers/security_helper.php */ \ No newline at end of file diff --git a/system/helpers/smiley_helper.php b/system/helpers/smiley_helper.php new file mode 100755 index 0000000..6d88893 --- /dev/null +++ b/system/helpers/smiley_helper.php @@ -0,0 +1,281 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Smiley Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/smiley_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Smiley Javascript + * + * Returns the javascript required for the smiley insertion. Optionally takes + * an array of aliases to loosely couple the smiley array to the view. + * + * @access public + * @param mixed alias name or array of alias->field_id pairs + * @param string field_id if alias name was passed in + * @return array + */ +if ( ! function_exists('smiley_js')) +{ + function smiley_js($alias = '', $field_id = '', $inline = TRUE) + { + static $do_setup = TRUE; + + $r = ''; + + if ($alias != '' && ! is_array($alias)) + { + $alias = array($alias => $field_id); + } + + if ($do_setup === TRUE) + { + $do_setup = FALSE; + + $m = array(); + + if (is_array($alias)) + { + foreach ($alias as $name => $id) + { + $m[] = '"'.$name.'" : "'.$id.'"'; + } + } + + $m = '{'.implode(',', $m).'}'; + + $r .= <<<EOF + var smiley_map = {$m}; + + function insert_smiley(smiley, field_id) { + var el = document.getElementById(field_id), newStart; + + if ( ! el && smiley_map[field_id]) { + el = document.getElementById(smiley_map[field_id]); + + if ( ! el) + return false; + } + + el.focus(); + smiley = " " + smiley; + + if ('selectionStart' in el) { + newStart = el.selectionStart + smiley.length; + + el.value = el.value.substr(0, el.selectionStart) + + smiley + + el.value.substr(el.selectionEnd, el.value.length); + el.setSelectionRange(newStart, newStart); + } + else if (document.selection) { + document.selection.createRange().text = smiley; + } + } +EOF; + } + else + { + if (is_array($alias)) + { + foreach ($alias as $name => $id) + { + $r .= 'smiley_map["'.$name.'"] = "'.$id.'";'."\n"; + } + } + } + + if ($inline) + { + return '<script type="text/javascript" charset="utf-8">/*<![CDATA[ */'.$r.'// ]]></script>'; + } + else + { + return $r; + } + } +} + +// ------------------------------------------------------------------------ + +/** + * Get Clickable Smileys + * + * Returns an array of image tag links that can be clicked to be inserted + * into a form field. + * + * @access public + * @param string the URL to the folder containing the smiley images + * @return array + */ +if ( ! function_exists('get_clickable_smileys')) +{ + function get_clickable_smileys($image_url, $alias = '', $smileys = NULL) + { + // For backward compatibility with js_insert_smiley + + if (is_array($alias)) + { + $smileys = $alias; + } + + if ( ! is_array($smileys)) + { + if (FALSE === ($smileys = _get_smiley_array())) + { + return $smileys; + } + } + + // Add a trailing slash to the file path if needed + $image_url = rtrim($image_url, '/').'/'; + + $used = array(); + foreach ($smileys as $key => $val) + { + // Keep duplicates from being used, which can happen if the + // mapping array contains multiple identical replacements. For example: + // :-) and :) might be replaced with the same image so both smileys + // will be in the array. + if (isset($used[$smileys[$key][0]])) + { + continue; + } + + $link[] = "<a href=\"javascript:void(0);\" onclick=\"insert_smiley('".$key."', '".$alias."')\"><img src=\"".$image_url.$smileys[$key][0]."\" width=\"".$smileys[$key][1]."\" height=\"".$smileys[$key][2]."\" alt=\"".$smileys[$key][3]."\" style=\"border:0;\" /></a>"; + + $used[$smileys[$key][0]] = TRUE; + } + + return $link; + } +} + +// ------------------------------------------------------------------------ + +/** + * Parse Smileys + * + * Takes a string as input and swaps any contained smileys for the actual image + * + * @access public + * @param string the text to be parsed + * @param string the URL to the folder containing the smiley images + * @return string + */ +if ( ! function_exists('parse_smileys')) +{ + function parse_smileys($str = '', $image_url = '', $smileys = NULL) + { + if ($image_url == '') + { + return $str; + } + + if ( ! is_array($smileys)) + { + if (FALSE === ($smileys = _get_smiley_array())) + { + return $str; + } + } + + // Add a trailing slash to the file path if needed + $image_url = preg_replace("/(.+?)\/*$/", "\\1/", $image_url); + + foreach ($smileys as $key => $val) + { + $str = str_replace($key, "<img src=\"".$image_url.$smileys[$key][0]."\" width=\"".$smileys[$key][1]."\" height=\"".$smileys[$key][2]."\" alt=\"".$smileys[$key][3]."\" style=\"border:0;\" />", $str); + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Get Smiley Array + * + * Fetches the config/smiley.php file + * + * @access private + * @return mixed + */ +if ( ! function_exists('_get_smiley_array')) +{ + function _get_smiley_array() + { + if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/smileys.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/smileys.php'); + } + elseif (file_exists(APPPATH.'config/smileys.php')) + { + include(APPPATH.'config/smileys.php'); + } + + if (isset($smileys) AND is_array($smileys)) + { + return $smileys; + } + + return FALSE; + } +} + +// ------------------------------------------------------------------------ + +/** + * JS Insert Smiley + * + * Generates the javascript function needed to insert smileys into a form field + * + * DEPRECATED as of version 1.7.2, use smiley_js instead + * + * @access public + * @param string form name + * @param string field name + * @return string + */ +if ( ! function_exists('js_insert_smiley')) +{ + function js_insert_smiley($form_name = '', $form_field = '') + { + return <<<EOF +<script type="text/javascript"> + function insert_smiley(smiley) + { + document.{$form_name}.{$form_field}.value += " " + smiley; + } +</script> +EOF; + } +} + + +/* End of file smiley_helper.php */ +/* Location: ./system/helpers/smiley_helper.php */ \ No newline at end of file diff --git a/system/helpers/string_helper.php b/system/helpers/string_helper.php new file mode 100755 index 0000000..9fa69f4 --- /dev/null +++ b/system/helpers/string_helper.php @@ -0,0 +1,307 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter String Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/string_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Trim Slashes + * + * Removes any leading/trailing slashes from a string: + * + * /this/that/theother/ + * + * becomes: + * + * this/that/theother + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('trim_slashes')) +{ + function trim_slashes($str) + { + return trim($str, '/'); + } +} + +// ------------------------------------------------------------------------ + +/** + * Strip Slashes + * + * Removes slashes contained in a string or in an array + * + * @access public + * @param mixed string or array + * @return mixed string or array + */ +if ( ! function_exists('strip_slashes')) +{ + function strip_slashes($str) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = strip_slashes($val); + } + } + else + { + $str = stripslashes($str); + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Strip Quotes + * + * Removes single and double quotes from a string + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('strip_quotes')) +{ + function strip_quotes($str) + { + return str_replace(array('"', "'"), '', $str); + } +} + +// ------------------------------------------------------------------------ + +/** + * Quotes to Entities + * + * Converts single and double quotes to entities + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('quotes_to_entities')) +{ + function quotes_to_entities($str) + { + return str_replace(array("\'","\"","'",'"'), array("&#39;","&quot;","&#39;","&quot;"), $str); + } +} + +// ------------------------------------------------------------------------ + +/** + * Reduce Double Slashes + * + * Converts double slashes in a string to a single slash, + * except those found in http:// + * + * http://www.some-site.com//index.php + * + * becomes: + * + * http://www.some-site.com/index.php + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('reduce_double_slashes')) +{ + function reduce_double_slashes($str) + { + return preg_replace("#(^|[^:])//+#", "\\1/", $str); + } +} + +// ------------------------------------------------------------------------ + +/** + * Reduce Multiples + * + * Reduces multiple instances of a particular character. Example: + * + * Fred, Bill,, Joe, Jimmy + * + * becomes: + * + * Fred, Bill, Joe, Jimmy + * + * @access public + * @param string + * @param string the character you wish to reduce + * @param bool TRUE/FALSE - whether to trim the character from the beginning/end + * @return string + */ +if ( ! function_exists('reduce_multiples')) +{ + function reduce_multiples($str, $character = ',', $trim = FALSE) + { + $str = preg_replace('#'.preg_quote($character, '#').'{2,}#', $character, $str); + + if ($trim === TRUE) + { + $str = trim($str, $character); + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Create a Random String + * + * Useful for generating passwords or hashes. + * + * @access public + * @param string type of random string. basic, alpha, alunum, numeric, nozero, unique, md5, encrypt and sha1 + * @param integer number of characters + * @return string + */ +if ( ! function_exists('random_string')) +{ + function random_string($type = 'alnum', $len = 8) + { + switch($type) + { + case 'basic' : return mt_rand(); + break; + case 'alnum' : + case 'numeric' : + case 'nozero' : + case 'alpha' : + + switch ($type) + { + case 'alpha' : $pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + break; + case 'alnum' : $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + break; + case 'numeric' : $pool = '0123456789'; + break; + case 'nozero' : $pool = '123456789'; + break; + } + + $str = ''; + for ($i=0; $i < $len; $i++) + { + $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1); + } + return $str; + break; + case 'unique' : + case 'md5' : + + return md5(uniqid(mt_rand())); + break; + case 'encrypt' : + case 'sha1' : + + $CI =& get_instance(); + $CI->load->helper('security'); + + return do_hash(uniqid(mt_rand(), TRUE), 'sha1'); + break; + } + } +} + +// ------------------------------------------------------------------------ + +/** + * Add's _1 to a string or increment the ending number to allow _2, _3, etc + * + * @param string $str required + * @param string $separator What should the duplicate number be appended with + * @param string $first Which number should be used for the first dupe increment + * @return string + */ +function increment_string($str, $separator = '_', $first = 1) +{ + preg_match('/(.+)'.$separator.'([0-9]+)$/', $str, $match); + + return isset($match[2]) ? $match[1].$separator.($match[2] + 1) : $str.$separator.$first; +} + +// ------------------------------------------------------------------------ + +/** + * Alternator + * + * Allows strings to be alternated. See docs... + * + * @access public + * @param string (as many parameters as needed) + * @return string + */ +if ( ! function_exists('alternator')) +{ + function alternator() + { + static $i; + + if (func_num_args() == 0) + { + $i = 0; + return ''; + } + $args = func_get_args(); + return $args[($i++ % count($args))]; + } +} + +// ------------------------------------------------------------------------ + +/** + * Repeater function + * + * @access public + * @param string + * @param integer number of repeats + * @return string + */ +if ( ! function_exists('repeater')) +{ + function repeater($data, $num = 1) + { + return (($num > 0) ? str_repeat($data, $num) : ''); + } +} + + +/* End of file string_helper.php */ +/* Location: ./system/helpers/string_helper.php */ \ No newline at end of file diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php new file mode 100755 index 0000000..33d7fa2 --- /dev/null +++ b/system/helpers/text_helper.php @@ -0,0 +1,535 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Text Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/text_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Word Limiter + * + * Limits a string to X number of words. + * + * @access public + * @param string + * @param integer + * @param string the end character. Usually an ellipsis + * @return string + */ +if ( ! function_exists('word_limiter')) +{ + function word_limiter($str, $limit = 100, $end_char = '&#8230;') + { + if (trim($str) == '') + { + return $str; + } + + preg_match('/^\s*+(?:\S++\s*+){1,'.(int) $limit.'}/', $str, $matches); + + if (strlen($str) == strlen($matches[0])) + { + $end_char = ''; + } + + return rtrim($matches[0]).$end_char; + } +} + +// ------------------------------------------------------------------------ + +/** + * Character Limiter + * + * Limits the string based on the character count. Preserves complete words + * so the character count may not be exactly as specified. + * + * @access public + * @param string + * @param integer + * @param string the end character. Usually an ellipsis + * @return string + */ +if ( ! function_exists('character_limiter')) +{ + function character_limiter($str, $n = 500, $end_char = '&#8230;') + { + if (strlen($str) < $n) + { + return $str; + } + + $str = preg_replace("/\s+/", ' ', str_replace(array("\r\n", "\r", "\n"), ' ', $str)); + + if (strlen($str) <= $n) + { + return $str; + } + + $out = ""; + foreach (explode(' ', trim($str)) as $val) + { + $out .= $val.' '; + + if (strlen($out) >= $n) + { + $out = trim($out); + return (strlen($out) == strlen($str)) ? $out : $out.$end_char; + } + } + } +} + +// ------------------------------------------------------------------------ + +/** + * High ASCII to Entities + * + * Converts High ascii text and MS Word special characters to character entities + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('ascii_to_entities')) +{ + function ascii_to_entities($str) + { + $count = 1; + $out = ''; + $temp = array(); + + for ($i = 0, $s = strlen($str); $i < $s; $i++) + { + $ordinal = ord($str[$i]); + + if ($ordinal < 128) + { + /* + If the $temp array has a value but we have moved on, then it seems only + fair that we output that entity and restart $temp before continuing. -Paul + */ + if (count($temp) == 1) + { + $out .= '&#'.array_shift($temp).';'; + $count = 1; + } + + $out .= $str[$i]; + } + else + { + if (count($temp) == 0) + { + $count = ($ordinal < 224) ? 2 : 3; + } + + $temp[] = $ordinal; + + if (count($temp) == $count) + { + $number = ($count == 3) ? (($temp['0'] % 16) * 4096) + (($temp['1'] % 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64); + + $out .= '&#'.$number.';'; + $count = 1; + $temp = array(); + } + } + } + + return $out; + } +} + +// ------------------------------------------------------------------------ + +/** + * Entities to ASCII + * + * Converts character entities back to ASCII + * + * @access public + * @param string + * @param bool + * @return string + */ +if ( ! function_exists('entities_to_ascii')) +{ + function entities_to_ascii($str, $all = TRUE) + { + if (preg_match_all('/\&#(\d+)\;/', $str, $matches)) + { + for ($i = 0, $s = count($matches['0']); $i < $s; $i++) + { + $digits = $matches['1'][$i]; + + $out = ''; + + if ($digits < 128) + { + $out .= chr($digits); + + } + elseif ($digits < 2048) + { + $out .= chr(192 + (($digits - ($digits % 64)) / 64)); + $out .= chr(128 + ($digits % 64)); + } + else + { + $out .= chr(224 + (($digits - ($digits % 4096)) / 4096)); + $out .= chr(128 + ((($digits % 4096) - ($digits % 64)) / 64)); + $out .= chr(128 + ($digits % 64)); + } + + $str = str_replace($matches['0'][$i], $out, $str); + } + } + + if ($all) + { + $str = str_replace(array("&amp;", "&lt;", "&gt;", "&quot;", "&apos;", "&#45;"), + array("&","<",">","\"", "'", "-"), + $str); + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Word Censoring Function + * + * Supply a string and an array of disallowed words and any + * matched words will be converted to #### or to the replacement + * word you've submitted. + * + * @access public + * @param string the text string + * @param string the array of censoered words + * @param string the optional replacement value + * @return string + */ +if ( ! function_exists('word_censor')) +{ + function word_censor($str, $censored, $replacement = '') + { + if ( ! is_array($censored)) + { + return $str; + } + + $str = ' '.$str.' '; + + // \w, \b and a few others do not match on a unicode character + // set for performance reasons. As a result words like über + // will not match on a word boundary. Instead, we'll assume that + // a bad word will be bookeneded by any of these characters. + $delim = '[-_\'\"`(){}<>\[\]|!?@#%&,.:;^~*+=\/ 0-9\n\r\t]'; + + foreach ($censored as $badword) + { + if ($replacement != '') + { + $str = preg_replace("/({$delim})(".str_replace('\*', '\w*?', preg_quote($badword, '/')).")({$delim})/i", "\\1{$replacement}\\3", $str); + } + else + { + $str = preg_replace("/({$delim})(".str_replace('\*', '\w*?', preg_quote($badword, '/')).")({$delim})/ie", "'\\1'.str_repeat('#', strlen('\\2')).'\\3'", $str); + } + } + + return trim($str); + } +} + +// ------------------------------------------------------------------------ + +/** + * Code Highlighter + * + * Colorizes code strings + * + * @access public + * @param string the text string + * @return string + */ +if ( ! function_exists('highlight_code')) +{ + function highlight_code($str) + { + // The highlight string function encodes and highlights + // brackets so we need them to start raw + $str = str_replace(array('&lt;', '&gt;'), array('<', '>'), $str); + + // Replace any existing PHP tags to temporary markers so they don't accidentally + // break the string out of PHP, and thus, thwart the highlighting. + + $str = str_replace(array('<?', '?>', '<%', '%>', '\\', '</script>'), + array('phptagopen', 'phptagclose', 'asptagopen', 'asptagclose', 'backslashtmp', 'scriptclose'), $str); + + // The highlight_string function requires that the text be surrounded + // by PHP tags, which we will remove later + $str = '<?php '.$str.' ?>'; // <? + + // All the magic happens here, baby! + $str = highlight_string($str, TRUE); + + // Prior to PHP 5, the highligh function used icky <font> tags + // so we'll replace them with <span> tags. + + if (abs(PHP_VERSION) < 5) + { + $str = str_replace(array('<font ', '</font>'), array('<span ', '</span>'), $str); + $str = preg_replace('#color="(.*?)"#', 'style="color: \\1"', $str); + } + + // Remove our artificially added PHP, and the syntax highlighting that came with it + $str = preg_replace('/<span style="color: #([A-Z0-9]+)">&lt;\?php(&nbsp;| )/i', '<span style="color: #$1">', $str); + $str = preg_replace('/(<span style="color: #[A-Z0-9]+">.*?)\?&gt;<\/span>\n<\/span>\n<\/code>/is', "$1</span>\n</span>\n</code>", $str); + $str = preg_replace('/<span style="color: #[A-Z0-9]+"\><\/span>/i', '', $str); + + // Replace our markers back to PHP tags. + $str = str_replace(array('phptagopen', 'phptagclose', 'asptagopen', 'asptagclose', 'backslashtmp', 'scriptclose'), + array('&lt;?', '?&gt;', '&lt;%', '%&gt;', '\\', '&lt;/script&gt;'), $str); + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Phrase Highlighter + * + * Highlights a phrase within a text string + * + * @access public + * @param string the text string + * @param string the phrase you'd like to highlight + * @param string the openging tag to precede the phrase with + * @param string the closing tag to end the phrase with + * @return string + */ +if ( ! function_exists('highlight_phrase')) +{ + function highlight_phrase($str, $phrase, $tag_open = '<strong>', $tag_close = '</strong>') + { + if ($str == '') + { + return ''; + } + + if ($phrase != '') + { + return preg_replace('/('.preg_quote($phrase, '/').')/i', $tag_open."\\1".$tag_close, $str); + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Convert Accented Foreign Characters to ASCII + * + * @access public + * @param string the text string + * @return string + */ +if ( ! function_exists('convert_accented_characters')) +{ + function convert_accented_characters($str) + { + if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/foreign_chars.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/foreign_chars.php'); + } + elseif (is_file(APPPATH.'config/foreign_chars.php')) + { + include(APPPATH.'config/foreign_chars.php'); + } + + if ( ! isset($foreign_characters)) + { + return $str; + } + + return preg_replace(array_keys($foreign_characters), array_values($foreign_characters), $str); + } +} + +// ------------------------------------------------------------------------ + +/** + * Word Wrap + * + * Wraps text at the specified character. Maintains the integrity of words. + * Anything placed between {unwrap}{/unwrap} will not be word wrapped, nor + * will URLs. + * + * @access public + * @param string the text string + * @param integer the number of characters to wrap at + * @return string + */ +if ( ! function_exists('word_wrap')) +{ + function word_wrap($str, $charlim = '76') + { + // Se the character limit + if ( ! is_numeric($charlim)) + $charlim = 76; + + // Reduce multiple spaces + $str = preg_replace("| +|", " ", $str); + + // Standardize newlines + if (strpos($str, "\r") !== FALSE) + { + $str = str_replace(array("\r\n", "\r"), "\n", $str); + } + + // If the current word is surrounded by {unwrap} tags we'll + // strip the entire chunk and replace it with a marker. + $unwrap = array(); + if (preg_match_all("|(\{unwrap\}.+?\{/unwrap\})|s", $str, $matches)) + { + for ($i = 0; $i < count($matches['0']); $i++) + { + $unwrap[] = $matches['1'][$i]; + $str = str_replace($matches['1'][$i], "{{unwrapped".$i."}}", $str); + } + } + + // Use PHP's native function to do the initial wordwrap. + // We set the cut flag to FALSE so that any individual words that are + // too long get left alone. In the next step we'll deal with them. + $str = wordwrap($str, $charlim, "\n", FALSE); + + // Split the string into individual lines of text and cycle through them + $output = ""; + foreach (explode("\n", $str) as $line) + { + // Is the line within the allowed character count? + // If so we'll join it to the output and continue + if (strlen($line) <= $charlim) + { + $output .= $line."\n"; + continue; + } + + $temp = ''; + while ((strlen($line)) > $charlim) + { + // If the over-length word is a URL we won't wrap it + if (preg_match("!\[url.+\]|://|wwww.!", $line)) + { + break; + } + + // Trim the word down + $temp .= substr($line, 0, $charlim-1); + $line = substr($line, $charlim-1); + } + + // If $temp contains data it means we had to split up an over-length + // word into smaller chunks so we'll add it back to our current line + if ($temp != '') + { + $output .= $temp."\n".$line; + } + else + { + $output .= $line; + } + + $output .= "\n"; + } + + // Put our markers back + if (count($unwrap) > 0) + { + foreach ($unwrap as $key => $val) + { + $output = str_replace("{{unwrapped".$key."}}", $val, $output); + } + } + + // Remove the unwrap tags + $output = str_replace(array('{unwrap}', '{/unwrap}'), '', $output); + + return $output; + } +} + +// ------------------------------------------------------------------------ + +/** + * Ellipsize String + * + * This function will strip tags from a string, split it at its max_length and ellipsize + * + * @param string string to ellipsize + * @param integer max length of string + * @param mixed int (1|0) or float, .5, .2, etc for position to split + * @param string ellipsis ; Default '...' + * @return string ellipsized string + */ +if ( ! function_exists('ellipsize')) +{ + function ellipsize($str, $max_length, $position = 1, $ellipsis = '&hellip;') + { + // Strip tags + $str = trim(strip_tags($str)); + + // Is the string long enough to ellipsize? + if (strlen($str) <= $max_length) + { + return $str; + } + + $beg = substr($str, 0, floor($max_length * $position)); + + $position = ($position > 1) ? 1 : $position; + + if ($position === 1) + { + $end = substr($str, 0, -($max_length - strlen($beg))); + } + else + { + $end = substr($str, -($max_length - strlen($beg))); + } + + return $beg.$ellipsis.$end; + } +} + +/* End of file text_helper.php */ +/* Location: ./system/helpers/text_helper.php */ \ No newline at end of file diff --git a/system/helpers/typography_helper.php b/system/helpers/typography_helper.php new file mode 100755 index 0000000..19b4eec --- /dev/null +++ b/system/helpers/typography_helper.php @@ -0,0 +1,93 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Typography Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/typography_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Convert newlines to HTML line breaks except within PRE tags + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('nl2br_except_pre')) +{ + function nl2br_except_pre($str) + { + $CI =& get_instance(); + + $CI->load->library('typography'); + + return $CI->typography->nl2br_except_pre($str); + } +} + +// ------------------------------------------------------------------------ + +/** + * Auto Typography Wrapper Function + * + * + * @access public + * @param string + * @param bool whether to allow javascript event handlers + * @param bool whether to reduce multiple instances of double newlines to two + * @return string + */ +if ( ! function_exists('auto_typography')) +{ + function auto_typography($str, $strip_js_event_handlers = TRUE, $reduce_linebreaks = FALSE) + { + $CI =& get_instance(); + $CI->load->library('typography'); + return $CI->typography->auto_typography($str, $strip_js_event_handlers, $reduce_linebreaks); + } +} + + +// -------------------------------------------------------------------- + +/** + * HTML Entities Decode + * + * This function is a replacement for html_entity_decode() + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('entity_decode')) +{ + function entity_decode($str, $charset='UTF-8') + { + global $SEC; + return $SEC->entity_decode($str, $charset); + } +} + +/* End of file typography_helper.php */ +/* Location: ./system/helpers/typography_helper.php */ \ No newline at end of file diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php new file mode 100755 index 0000000..f1e8c6a --- /dev/null +++ b/system/helpers/url_helper.php @@ -0,0 +1,594 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter URL Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/url_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Site URL + * + * Create a local URL based on your basepath. Segments can be passed via the + * first parameter either as a string or an array. + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('site_url')) +{ + function site_url($uri = '') + { + $CI =& get_instance(); + return $CI->config->site_url($uri); + } +} + +// ------------------------------------------------------------------------ + +/** + * Base URL + * + * Create a local URL based on your basepath. + * Segments can be passed in as a string or an array, same as site_url + * or a URL to a file can be passed in, e.g. to an image file. + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('base_url')) +{ + function base_url($uri = '') + { + $CI =& get_instance(); + return $CI->config->base_url($uri); + } +} + +// ------------------------------------------------------------------------ + +/** + * Current URL + * + * Returns the full URL (including segments) of the page where this + * function is placed + * + * @access public + * @return string + */ +if ( ! function_exists('current_url')) +{ + function current_url() + { + $CI =& get_instance(); + return $CI->config->site_url($CI->uri->uri_string()); + } +} + +// ------------------------------------------------------------------------ +/** + * URL String + * + * Returns the URI segments. + * + * @access public + * @return string + */ +if ( ! function_exists('uri_string')) +{ + function uri_string() + { + $CI =& get_instance(); + return $CI->uri->uri_string(); + } +} + +// ------------------------------------------------------------------------ + +/** + * Index page + * + * Returns the "index_page" from your config file + * + * @access public + * @return string + */ +if ( ! function_exists('index_page')) +{ + function index_page() + { + $CI =& get_instance(); + return $CI->config->item('index_page'); + } +} + +// ------------------------------------------------------------------------ + +/** + * Anchor Link + * + * Creates an anchor based on the local URL. + * + * @access public + * @param string the URL + * @param string the link title + * @param mixed any attributes + * @return string + */ +if ( ! function_exists('anchor')) +{ + function anchor($uri = '', $title = '', $attributes = '') + { + $title = (string) $title; + + if ( ! is_array($uri)) + { + $site_url = ( ! preg_match('!^\w+://! i', $uri)) ? site_url($uri) : $uri; + } + else + { + $site_url = site_url($uri); + } + + if ($title == '') + { + $title = $site_url; + } + + if ($attributes != '') + { + $attributes = _parse_attributes($attributes); + } + + return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>'; + } +} + +// ------------------------------------------------------------------------ + +/** + * Anchor Link - Pop-up version + * + * Creates an anchor based on the local URL. The link + * opens a new window based on the attributes specified. + * + * @access public + * @param string the URL + * @param string the link title + * @param mixed any attributes + * @return string + */ +if ( ! function_exists('anchor_popup')) +{ + function anchor_popup($uri = '', $title = '', $attributes = FALSE) + { + $title = (string) $title; + + $site_url = ( ! preg_match('!^\w+://! i', $uri)) ? site_url($uri) : $uri; + + if ($title == '') + { + $title = $site_url; + } + + if ($attributes === FALSE) + { + return "<a href='javascript:void(0);' onclick=\"window.open('".$site_url."', '_blank');\">".$title."</a>"; + } + + if ( ! is_array($attributes)) + { + $attributes = array(); + } + + foreach (array('width' => '800', 'height' => '600', 'scrollbars' => 'yes', 'status' => 'yes', 'resizable' => 'yes', 'screenx' => '0', 'screeny' => '0', ) as $key => $val) + { + $atts[$key] = ( ! isset($attributes[$key])) ? $val : $attributes[$key]; + unset($attributes[$key]); + } + + if ($attributes != '') + { + $attributes = _parse_attributes($attributes); + } + + return "<a href='javascript:void(0);' onclick=\"window.open('".$site_url."', '_blank', '"._parse_attributes($atts, TRUE)."');\"$attributes>".$title."</a>"; + } +} + +// ------------------------------------------------------------------------ + +/** + * Mailto Link + * + * @access public + * @param string the email address + * @param string the link title + * @param mixed any attributes + * @return string + */ +if ( ! function_exists('mailto')) +{ + function mailto($email, $title = '', $attributes = '') + { + $title = (string) $title; + + if ($title == "") + { + $title = $email; + } + + $attributes = _parse_attributes($attributes); + + return '<a href="mailto:'.$email.'"'.$attributes.'>'.$title.'</a>'; + } +} + +// ------------------------------------------------------------------------ + +/** + * Encoded Mailto Link + * + * Create a spam-protected mailto link written in Javascript + * + * @access public + * @param string the email address + * @param string the link title + * @param mixed any attributes + * @return string + */ +if ( ! function_exists('safe_mailto')) +{ + function safe_mailto($email, $title = '', $attributes = '') + { + $title = (string) $title; + + if ($title == "") + { + $title = $email; + } + + for ($i = 0; $i < 16; $i++) + { + $x[] = substr('<a href="mailto:', $i, 1); + } + + for ($i = 0; $i < strlen($email); $i++) + { + $x[] = "|".ord(substr($email, $i, 1)); + } + + $x[] = '"'; + + if ($attributes != '') + { + if (is_array($attributes)) + { + foreach ($attributes as $key => $val) + { + $x[] = ' '.$key.'="'; + for ($i = 0; $i < strlen($val); $i++) + { + $x[] = "|".ord(substr($val, $i, 1)); + } + $x[] = '"'; + } + } + else + { + for ($i = 0; $i < strlen($attributes); $i++) + { + $x[] = substr($attributes, $i, 1); + } + } + } + + $x[] = '>'; + + $temp = array(); + for ($i = 0; $i < strlen($title); $i++) + { + $ordinal = ord($title[$i]); + + if ($ordinal < 128) + { + $x[] = "|".$ordinal; + } + else + { + if (count($temp) == 0) + { + $count = ($ordinal < 224) ? 2 : 3; + } + + $temp[] = $ordinal; + if (count($temp) == $count) + { + $number = ($count == 3) ? (($temp['0'] % 16) * 4096) + (($temp['1'] % 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64); + $x[] = "|".$number; + $count = 1; + $temp = array(); + } + } + } + + $x[] = '<'; $x[] = '/'; $x[] = 'a'; $x[] = '>'; + + $x = array_reverse($x); + ob_start(); + + ?><script type="text/javascript"> + //<![CDATA[ + var l=new Array(); + <?php + $i = 0; + foreach ($x as $val){ ?>l[<?php echo $i++; ?>]='<?php echo $val; ?>';<?php } ?> + + for (var i = l.length-1; i >= 0; i=i-1){ + if (l[i].substring(0, 1) == '|') document.write("&#"+unescape(l[i].substring(1))+";"); + else document.write(unescape(l[i]));} + //]]> + </script><?php + + $buffer = ob_get_contents(); + ob_end_clean(); + return $buffer; + } +} + +// ------------------------------------------------------------------------ + +/** + * Auto-linker + * + * Automatically links URL and Email addresses. + * Note: There's a bit of extra code here to deal with + * URLs or emails that end in a period. We'll strip these + * off and add them after the link. + * + * @access public + * @param string the string + * @param string the type: email, url, or both + * @param bool whether to create pop-up links + * @return string + */ +if ( ! function_exists('auto_link')) +{ + function auto_link($str, $type = 'both', $popup = FALSE) + { + if ($type != 'email') + { + if (preg_match_all("#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\<]+)#i", $str, $matches)) + { + $pop = ($popup == TRUE) ? " target=\"_blank\" " : ""; + + for ($i = 0; $i < count($matches['0']); $i++) + { + $period = ''; + if (preg_match("|\.$|", $matches['6'][$i])) + { + $period = '.'; + $matches['6'][$i] = substr($matches['6'][$i], 0, -1); + } + + $str = str_replace($matches['0'][$i], + $matches['1'][$i].'<a href="http'. + $matches['4'][$i].'://'. + $matches['5'][$i]. + $matches['6'][$i].'"'.$pop.'>http'. + $matches['4'][$i].'://'. + $matches['5'][$i]. + $matches['6'][$i].'</a>'. + $period, $str); + } + } + } + + if ($type != 'url') + { + if (preg_match_all("/([a-zA-Z0-9_\.\-\+]+)@([a-zA-Z0-9\-]+)\.([a-zA-Z0-9\-\.]*)/i", $str, $matches)) + { + for ($i = 0; $i < count($matches['0']); $i++) + { + $period = ''; + if (preg_match("|\.$|", $matches['3'][$i])) + { + $period = '.'; + $matches['3'][$i] = substr($matches['3'][$i], 0, -1); + } + + $str = str_replace($matches['0'][$i], safe_mailto($matches['1'][$i].'@'.$matches['2'][$i].'.'.$matches['3'][$i]).$period, $str); + } + } + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Prep URL + * + * Simply adds the http:// part if no scheme is included + * + * @access public + * @param string the URL + * @return string + */ +if ( ! function_exists('prep_url')) +{ + function prep_url($str = '') + { + if ($str == 'http://' OR $str == '') + { + return ''; + } + + $url = parse_url($str); + + if ( ! $url OR ! isset($url['scheme'])) + { + $str = 'http://'.$str; + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/** + * Create URL Title + * + * Takes a "title" string as input and creates a + * human-friendly URL string with a "separator" string + * as the word separator. + * + * @access public + * @param string the string + * @param string the separator + * @return string + */ +if ( ! function_exists('url_title')) +{ + function url_title($str, $separator = '-', $lowercase = FALSE) + { + if ($separator == 'dash') + { + $separator = '-'; + } + else if ($separator == 'underscore') + { + $separator = '_'; + } + + $q_separator = preg_quote($separator); + + $trans = array( + '&.+?;' => '', + '[^a-z0-9 _-]' => '', + '\s+' => $separator, + '('.$q_separator.')+' => $separator + ); + + $str = strip_tags($str); + + foreach ($trans as $key => $val) + { + $str = preg_replace("#".$key."#i", $val, $str); + } + + if ($lowercase === TRUE) + { + $str = strtolower($str); + } + + return trim($str, $separator); + } +} + +// ------------------------------------------------------------------------ + +/** + * Header Redirect + * + * Header redirect in two flavors + * For very fine grained control over headers, you could use the Output + * Library's set_header() function. + * + * @access public + * @param string the URL + * @param string the method: location or redirect + * @return string + */ +if ( ! function_exists('redirect')) +{ + function redirect($uri = '', $method = 'location', $http_response_code = 302) + { + if ( ! preg_match('#^https?://#i', $uri)) + { + $uri = site_url($uri); + } + + switch($method) + { + case 'refresh' : header("Refresh:0;url=".$uri); + break; + default : header("Location: ".$uri, TRUE, $http_response_code); + break; + } + exit; + } +} + +// ------------------------------------------------------------------------ + +/** + * Parse out the attributes + * + * Some of the functions use this + * + * @access private + * @param array + * @param bool + * @return string + */ +if ( ! function_exists('_parse_attributes')) +{ + function _parse_attributes($attributes, $javascript = FALSE) + { + if (is_string($attributes)) + { + return ($attributes != '') ? ' '.$attributes : ''; + } + + $att = ''; + foreach ($attributes as $key => $val) + { + if ($javascript == TRUE) + { + $att .= $key . '=' . $val . ','; + } + else + { + $att .= ' ' . $key . '="' . $val . '"'; + } + } + + if ($javascript == TRUE AND $att != '') + { + $att = substr($att, 0, -1); + } + + return $att; + } +} + + +/* End of file url_helper.php */ +/* Location: ./system/helpers/url_helper.php */ \ No newline at end of file diff --git a/system/helpers/xml_helper.php b/system/helpers/xml_helper.php new file mode 100755 index 0000000..cdd81ad --- /dev/null +++ b/system/helpers/xml_helper.php @@ -0,0 +1,71 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter XML Helpers + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/xml_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Convert Reserved XML characters to Entities + * + * @access public + * @param string + * @return string + */ +if ( ! function_exists('xml_convert')) +{ + function xml_convert($str, $protect_all = FALSE) + { + $temp = '__TEMP_AMPERSANDS__'; + + // Replace entities to temporary markers so that + // ampersands won't get messed up + $str = preg_replace("/&#(\d+);/", "$temp\\1;", $str); + + if ($protect_all === TRUE) + { + $str = preg_replace("/&(\w+);/", "$temp\\1;", $str); + } + + $str = str_replace(array("&","<",">","\"", "'", "-"), + array("&amp;", "&lt;", "&gt;", "&quot;", "&apos;", "&#45;"), + $str); + + // Decode the temp markers back to entities + $str = preg_replace("/$temp(\d+);/","&#\\1;",$str); + + if ($protect_all === TRUE) + { + $str = preg_replace("/$temp(\w+);/","&\\1;", $str); + } + + return $str; + } +} + +// ------------------------------------------------------------------------ + +/* End of file xml_helper.php */ +/* Location: ./system/helpers/xml_helper.php */ \ No newline at end of file diff --git a/system/index.html b/system/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/language/english/calendar_lang.php b/system/language/english/calendar_lang.php new file mode 100755 index 0000000..3e63123 --- /dev/null +++ b/system/language/english/calendar_lang.php @@ -0,0 +1,51 @@ +<?php + +$lang['cal_su'] = "Su"; +$lang['cal_mo'] = "Mo"; +$lang['cal_tu'] = "Tu"; +$lang['cal_we'] = "We"; +$lang['cal_th'] = "Th"; +$lang['cal_fr'] = "Fr"; +$lang['cal_sa'] = "Sa"; +$lang['cal_sun'] = "Sun"; +$lang['cal_mon'] = "Mon"; +$lang['cal_tue'] = "Tue"; +$lang['cal_wed'] = "Wed"; +$lang['cal_thu'] = "Thu"; +$lang['cal_fri'] = "Fri"; +$lang['cal_sat'] = "Sat"; +$lang['cal_sunday'] = "Sunday"; +$lang['cal_monday'] = "Monday"; +$lang['cal_tuesday'] = "Tuesday"; +$lang['cal_wednesday'] = "Wednesday"; +$lang['cal_thursday'] = "Thursday"; +$lang['cal_friday'] = "Friday"; +$lang['cal_saturday'] = "Saturday"; +$lang['cal_jan'] = "Jan"; +$lang['cal_feb'] = "Feb"; +$lang['cal_mar'] = "Mar"; +$lang['cal_apr'] = "Apr"; +$lang['cal_may'] = "May"; +$lang['cal_jun'] = "Jun"; +$lang['cal_jul'] = "Jul"; +$lang['cal_aug'] = "Aug"; +$lang['cal_sep'] = "Sep"; +$lang['cal_oct'] = "Oct"; +$lang['cal_nov'] = "Nov"; +$lang['cal_dec'] = "Dec"; +$lang['cal_january'] = "January"; +$lang['cal_february'] = "February"; +$lang['cal_march'] = "March"; +$lang['cal_april'] = "April"; +$lang['cal_mayl'] = "May"; +$lang['cal_june'] = "June"; +$lang['cal_july'] = "July"; +$lang['cal_august'] = "August"; +$lang['cal_september'] = "September"; +$lang['cal_october'] = "October"; +$lang['cal_november'] = "November"; +$lang['cal_december'] = "December"; + + +/* End of file calendar_lang.php */ +/* Location: ./system/language/english/calendar_lang.php */ \ No newline at end of file diff --git a/system/language/english/date_lang.php b/system/language/english/date_lang.php new file mode 100755 index 0000000..c0ace16 --- /dev/null +++ b/system/language/english/date_lang.php @@ -0,0 +1,61 @@ +<?php + +$lang['date_year'] = "Year"; +$lang['date_years'] = "Years"; +$lang['date_month'] = "Month"; +$lang['date_months'] = "Months"; +$lang['date_week'] = "Week"; +$lang['date_weeks'] = "Weeks"; +$lang['date_day'] = "Day"; +$lang['date_days'] = "Days"; +$lang['date_hour'] = "Hour"; +$lang['date_hours'] = "Hours"; +$lang['date_minute'] = "Minute"; +$lang['date_minutes'] = "Minutes"; +$lang['date_second'] = "Second"; +$lang['date_seconds'] = "Seconds"; + +$lang['UM12'] = '(UTC -12:00) Baker/Howland Island'; +$lang['UM11'] = '(UTC -11:00) Samoa Time Zone, Niue'; +$lang['UM10'] = '(UTC -10:00) Hawaii-Aleutian Standard Time, Cook Islands, Tahiti'; +$lang['UM95'] = '(UTC -9:30) Marquesas Islands'; +$lang['UM9'] = '(UTC -9:00) Alaska Standard Time, Gambier Islands'; +$lang['UM8'] = '(UTC -8:00) Pacific Standard Time, Clipperton Island'; +$lang['UM7'] = '(UTC -7:00) Mountain Standard Time'; +$lang['UM6'] = '(UTC -6:00) Central Standard Time'; +$lang['UM5'] = '(UTC -5:00) Eastern Standard Time, Western Caribbean Standard Time'; +$lang['UM45'] = '(UTC -4:30) Venezuelan Standard Time'; +$lang['UM4'] = '(UTC -4:00) Atlantic Standard Time, Eastern Caribbean Standard Time'; +$lang['UM35'] = '(UTC -3:30) Newfoundland Standard Time'; +$lang['UM3'] = '(UTC -3:00) Argentina, Brazil, French Guiana, Uruguay'; +$lang['UM2'] = '(UTC -2:00) South Georgia/South Sandwich Islands'; +$lang['UM1'] = '(UTC -1:00) Azores, Cape Verde Islands'; +$lang['UTC'] = '(UTC) Greenwich Mean Time, Western European Time'; +$lang['UP1'] = '(UTC +1:00) Central European Time, West Africa Time'; +$lang['UP2'] = '(UTC +2:00) Central Africa Time, Eastern European Time, Kaliningrad Time'; +$lang['UP3'] = '(UTC +3:00) Moscow Time, East Africa Time'; +$lang['UP35'] = '(UTC +3:30) Iran Standard Time'; +$lang['UP4'] = '(UTC +4:00) Azerbaijan Standard Time, Samara Time'; +$lang['UP45'] = '(UTC +4:30) Afghanistan'; +$lang['UP5'] = '(UTC +5:00) Pakistan Standard Time, Yekaterinburg Time'; +$lang['UP55'] = '(UTC +5:30) Indian Standard Time, Sri Lanka Time'; +$lang['UP575'] = '(UTC +5:45) Nepal Time'; +$lang['UP6'] = '(UTC +6:00) Bangladesh Standard Time, Bhutan Time, Omsk Time'; +$lang['UP65'] = '(UTC +6:30) Cocos Islands, Myanmar'; +$lang['UP7'] = '(UTC +7:00) Krasnoyarsk Time, Cambodia, Laos, Thailand, Vietnam'; +$lang['UP8'] = '(UTC +8:00) Australian Western Standard Time, Beijing Time, Irkutsk Time'; +$lang['UP875'] = '(UTC +8:45) Australian Central Western Standard Time'; +$lang['UP9'] = '(UTC +9:00) Japan Standard Time, Korea Standard Time, Yakutsk Time'; +$lang['UP95'] = '(UTC +9:30) Australian Central Standard Time'; +$lang['UP10'] = '(UTC +10:00) Australian Eastern Standard Time, Vladivostok Time'; +$lang['UP105'] = '(UTC +10:30) Lord Howe Island'; +$lang['UP11'] = '(UTC +11:00) Magadan Time, Solomon Islands, Vanuatu'; +$lang['UP115'] = '(UTC +11:30) Norfolk Island'; +$lang['UP12'] = '(UTC +12:00) Fiji, Gilbert Islands, Kamchatka Time, New Zealand Standard Time'; +$lang['UP1275'] = '(UTC +12:45) Chatham Islands Standard Time'; +$lang['UP13'] = '(UTC +13:00) Phoenix Islands Time, Tonga'; +$lang['UP14'] = '(UTC +14:00) Line Islands'; + + +/* End of file date_lang.php */ +/* Location: ./system/language/english/date_lang.php */ \ No newline at end of file diff --git a/system/language/english/db_lang.php b/system/language/english/db_lang.php new file mode 100755 index 0000000..79b82c7 --- /dev/null +++ b/system/language/english/db_lang.php @@ -0,0 +1,29 @@ +<?php + +$lang['db_invalid_connection_str'] = 'Unable to determine the database settings based on the connection string you submitted.'; +$lang['db_unable_to_connect'] = 'Unable to connect to your database server using the provided settings.'; +$lang['db_unable_to_select'] = 'Unable to select the specified database: %s'; +$lang['db_unable_to_create'] = 'Unable to create the specified database: %s'; +$lang['db_invalid_query'] = 'The query you submitted is not valid.'; +$lang['db_must_set_table'] = 'You must set the database table to be used with your query.'; +$lang['db_must_use_set'] = 'You must use the "set" method to update an entry.'; +$lang['db_must_use_index'] = 'You must specify an index to match on for batch updates.'; +$lang['db_batch_missing_index'] = 'One or more rows submitted for batch updating is missing the specified index.'; +$lang['db_must_use_where'] = 'Updates are not allowed unless they contain a "where" clause.'; +$lang['db_del_must_use_where'] = 'Deletes are not allowed unless they contain a "where" or "like" clause.'; +$lang['db_field_param_missing'] = 'To fetch fields requires the name of the table as a parameter.'; +$lang['db_unsupported_function'] = 'This feature is not available for the database you are using.'; +$lang['db_transaction_failure'] = 'Transaction failure: Rollback performed.'; +$lang['db_unable_to_drop'] = 'Unable to drop the specified database.'; +$lang['db_unsuported_feature'] = 'Unsupported feature of the database platform you are using.'; +$lang['db_unsuported_compression'] = 'The file compression format you chose is not supported by your server.'; +$lang['db_filepath_error'] = 'Unable to write data to the file path you have submitted.'; +$lang['db_invalid_cache_path'] = 'The cache path you submitted is not valid or writable.'; +$lang['db_table_name_required'] = 'A table name is required for that operation.'; +$lang['db_column_name_required'] = 'A column name is required for that operation.'; +$lang['db_column_definition_required'] = 'A column definition is required for that operation.'; +$lang['db_unable_to_set_charset'] = 'Unable to set client connection character set: %s'; +$lang['db_error_heading'] = 'A Database Error Occurred'; + +/* End of file db_lang.php */ +/* Location: ./system/language/english/db_lang.php */ \ No newline at end of file diff --git a/system/language/english/email_lang.php b/system/language/english/email_lang.php new file mode 100755 index 0000000..e3bd113 --- /dev/null +++ b/system/language/english/email_lang.php @@ -0,0 +1,24 @@ +<?php + +$lang['email_must_be_array'] = "The email validation method must be passed an array."; +$lang['email_invalid_address'] = "Invalid email address: %s"; +$lang['email_attachment_missing'] = "Unable to locate the following email attachment: %s"; +$lang['email_attachment_unreadable'] = "Unable to open this attachment: %s"; +$lang['email_no_recipients'] = "You must include recipients: To, Cc, or Bcc"; +$lang['email_send_failure_phpmail'] = "Unable to send email using PHP mail(). Your server might not be configured to send mail using this method."; +$lang['email_send_failure_sendmail'] = "Unable to send email using PHP Sendmail. Your server might not be configured to send mail using this method."; +$lang['email_send_failure_smtp'] = "Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method."; +$lang['email_sent'] = "Your message has been successfully sent using the following protocol: %s"; +$lang['email_no_socket'] = "Unable to open a socket to Sendmail. Please check settings."; +$lang['email_no_hostname'] = "You did not specify a SMTP hostname."; +$lang['email_smtp_error'] = "The following SMTP error was encountered: %s"; +$lang['email_no_smtp_unpw'] = "Error: You must assign a SMTP username and password."; +$lang['email_failed_smtp_login'] = "Failed to send AUTH LOGIN command. Error: %s"; +$lang['email_smtp_auth_un'] = "Failed to authenticate username. Error: %s"; +$lang['email_smtp_auth_pw'] = "Failed to authenticate password. Error: %s"; +$lang['email_smtp_data_failure'] = "Unable to send data: %s"; +$lang['email_exit_status'] = "Exit status code: %s"; + + +/* End of file email_lang.php */ +/* Location: ./system/language/english/email_lang.php */ \ No newline at end of file diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php new file mode 100755 index 0000000..3418f29 --- /dev/null +++ b/system/language/english/form_validation_lang.php @@ -0,0 +1,29 @@ +<?php + +$lang['required'] = "The %s field is required."; +$lang['isset'] = "The %s field must have a value."; +$lang['valid_email'] = "The %s field must contain a valid email address."; +$lang['valid_emails'] = "The %s field must contain all valid email addresses."; +$lang['valid_url'] = "The %s field must contain a valid URL."; +$lang['valid_ip'] = "The %s field must contain a valid IP."; +$lang['min_length'] = "The %s field must be at least %s characters in length."; +$lang['max_length'] = "The %s field can not exceed %s characters in length."; +$lang['exact_length'] = "The %s field must be exactly %s characters in length."; +$lang['alpha'] = "The %s field may only contain alphabetical characters."; +$lang['alpha_numeric'] = "The %s field may only contain alpha-numeric characters."; +$lang['alpha_dash'] = "The %s field may only contain alpha-numeric characters, underscores, and dashes."; +$lang['numeric'] = "The %s field must contain only numbers."; +$lang['is_numeric'] = "The %s field must contain only numeric characters."; +$lang['integer'] = "The %s field must contain an integer."; +$lang['regex_match'] = "The %s field is not in the correct format."; +$lang['matches'] = "The %s field does not match the %s field."; +$lang['is_unique'] = "The %s field must contain a unique value."; +$lang['is_natural'] = "The %s field must contain only positive numbers."; +$lang['is_natural_no_zero'] = "The %s field must contain a number greater than zero."; +$lang['decimal'] = "The %s field must contain a decimal number."; +$lang['less_than'] = "The %s field must contain a number less than %s."; +$lang['greater_than'] = "The %s field must contain a number greater than %s."; + + +/* End of file form_validation_lang.php */ +/* Location: ./system/language/english/form_validation_lang.php */ \ No newline at end of file diff --git a/system/language/english/ftp_lang.php b/system/language/english/ftp_lang.php new file mode 100755 index 0000000..1e5168c --- /dev/null +++ b/system/language/english/ftp_lang.php @@ -0,0 +1,18 @@ +<?php + +$lang['ftp_no_connection'] = "Unable to locate a valid connection ID. Please make sure you are connected before peforming any file routines."; +$lang['ftp_unable_to_connect'] = "Unable to connect to your FTP server using the supplied hostname."; +$lang['ftp_unable_to_login'] = "Unable to login to your FTP server. Please check your username and password."; +$lang['ftp_unable_to_makdir'] = "Unable to create the directory you have specified."; +$lang['ftp_unable_to_changedir'] = "Unable to change directories."; +$lang['ftp_unable_to_chmod'] = "Unable to set file permissions. Please check your path. Note: This feature is only available in PHP 5 or higher."; +$lang['ftp_unable_to_upload'] = "Unable to upload the specified file. Please check your path."; +$lang['ftp_unable_to_download'] = "Unable to download the specified file. Please check your path."; +$lang['ftp_no_source_file'] = "Unable to locate the source file. Please check your path."; +$lang['ftp_unable_to_rename'] = "Unable to rename the file."; +$lang['ftp_unable_to_delete'] = "Unable to delete the file."; +$lang['ftp_unable_to_move'] = "Unable to move the file. Please make sure the destination directory exists."; + + +/* End of file ftp_lang.php */ +/* Location: ./system/language/english/ftp_lang.php */ \ No newline at end of file diff --git a/system/language/english/imglib_lang.php b/system/language/english/imglib_lang.php new file mode 100755 index 0000000..66505da --- /dev/null +++ b/system/language/english/imglib_lang.php @@ -0,0 +1,24 @@ +<?php + +$lang['imglib_source_image_required'] = "You must specify a source image in your preferences."; +$lang['imglib_gd_required'] = "The GD image library is required for this feature."; +$lang['imglib_gd_required_for_props'] = "Your server must support the GD image library in order to determine the image properties."; +$lang['imglib_unsupported_imagecreate'] = "Your server does not support the GD function required to process this type of image."; +$lang['imglib_gif_not_supported'] = "GIF images are often not supported due to licensing restrictions. You may have to use JPG or PNG images instead."; +$lang['imglib_jpg_not_supported'] = "JPG images are not supported."; +$lang['imglib_png_not_supported'] = "PNG images are not supported."; +$lang['imglib_jpg_or_png_required'] = "The image resize protocol specified in your preferences only works with JPEG or PNG image types."; +$lang['imglib_copy_error'] = "An error was encountered while attempting to replace the file. Please make sure your file directory is writable."; +$lang['imglib_rotate_unsupported'] = "Image rotation does not appear to be supported by your server."; +$lang['imglib_libpath_invalid'] = "The path to your image library is not correct. Please set the correct path in your image preferences."; +$lang['imglib_image_process_failed'] = "Image processing failed. Please verify that your server supports the chosen protocol and that the path to your image library is correct."; +$lang['imglib_rotation_angle_required'] = "An angle of rotation is required to rotate the image."; +$lang['imglib_writing_failed_gif'] = "GIF image."; +$lang['imglib_invalid_path'] = "The path to the image is not correct."; +$lang['imglib_copy_failed'] = "The image copy routine failed."; +$lang['imglib_missing_font'] = "Unable to find a font to use."; +$lang['imglib_save_failed'] = "Unable to save the image. Please make sure the image and file directory are writable."; + + +/* End of file imglib_lang.php */ +/* Location: ./system/language/english/imglib_lang.php */ \ No newline at end of file diff --git a/system/language/english/index.html b/system/language/english/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/language/english/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/language/english/migration_lang.php b/system/language/english/migration_lang.php new file mode 100755 index 0000000..f17530f --- /dev/null +++ b/system/language/english/migration_lang.php @@ -0,0 +1,13 @@ +<?php + +$lang['migration_none_found'] = "No migrations were found."; +$lang['migration_not_found'] = "This migration could not be found."; +$lang['migration_multiple_version'] = "This are multiple migrations with the same version number: %d."; +$lang['migration_class_doesnt_exist'] = "The migration class \"%s\" could not be found."; +$lang['migration_missing_up_method'] = "The migration class \"%s\" is missing an 'up' method."; +$lang['migration_missing_down_method'] = "The migration class \"%s\" is missing an 'down' method."; +$lang['migration_invalid_filename'] = "Migration \"%s\" has an invalid filename."; + + +/* End of file migration_lang.php */ +/* Location: ./system/language/english/migration_lang.php */ \ No newline at end of file diff --git a/system/language/english/number_lang.php b/system/language/english/number_lang.php new file mode 100755 index 0000000..9085809 --- /dev/null +++ b/system/language/english/number_lang.php @@ -0,0 +1,10 @@ +<?php + +$lang['terabyte_abbr'] = "TB"; +$lang['gigabyte_abbr'] = "GB"; +$lang['megabyte_abbr'] = "MB"; +$lang['kilobyte_abbr'] = "KB"; +$lang['bytes'] = "Bytes"; + +/* End of file number_lang.php */ +/* Location: ./system/language/english/number_lang.php */ \ No newline at end of file diff --git a/system/language/english/profiler_lang.php b/system/language/english/profiler_lang.php new file mode 100755 index 0000000..1111158 --- /dev/null +++ b/system/language/english/profiler_lang.php @@ -0,0 +1,25 @@ +<?php + +$lang['profiler_database'] = 'DATABASE'; +$lang['profiler_controller_info'] = 'CLASS/METHOD'; +$lang['profiler_benchmarks'] = 'BENCHMARKS'; +$lang['profiler_queries'] = 'QUERIES'; +$lang['profiler_get_data'] = 'GET DATA'; +$lang['profiler_post_data'] = 'POST DATA'; +$lang['profiler_uri_string'] = 'URI STRING'; +$lang['profiler_memory_usage'] = 'MEMORY USAGE'; +$lang['profiler_config'] = 'CONFIG VARIABLES'; +$lang['profiler_session_data'] = 'SESSION DATA'; +$lang['profiler_headers'] = 'HTTP HEADERS'; +$lang['profiler_no_db'] = 'Database driver is not currently loaded'; +$lang['profiler_no_queries'] = 'No queries were run'; +$lang['profiler_no_post'] = 'No POST data exists'; +$lang['profiler_no_get'] = 'No GET data exists'; +$lang['profiler_no_uri'] = 'No URI data exists'; +$lang['profiler_no_memory'] = 'Memory Usage Unavailable'; +$lang['profiler_no_profiles'] = 'No Profile data - all Profiler sections have been disabled.'; +$lang['profiler_section_hide'] = 'Hide'; +$lang['profiler_section_show'] = 'Show'; + +/* End of file profiler_lang.php */ +/* Location: ./system/language/english/profiler_lang.php */ \ No newline at end of file diff --git a/system/language/english/unit_test_lang.php b/system/language/english/unit_test_lang.php new file mode 100755 index 0000000..070bcd1 --- /dev/null +++ b/system/language/english/unit_test_lang.php @@ -0,0 +1,25 @@ +<?php + +$lang['ut_test_name'] = 'Test Name'; +$lang['ut_test_datatype'] = 'Test Datatype'; +$lang['ut_res_datatype'] = 'Expected Datatype'; +$lang['ut_result'] = 'Result'; +$lang['ut_undefined'] = 'Undefined Test Name'; +$lang['ut_file'] = 'File Name'; +$lang['ut_line'] = 'Line Number'; +$lang['ut_passed'] = 'Passed'; +$lang['ut_failed'] = 'Failed'; +$lang['ut_boolean'] = 'Boolean'; +$lang['ut_integer'] = 'Integer'; +$lang['ut_float'] = 'Float'; +$lang['ut_double'] = 'Float'; // can be the same as float +$lang['ut_string'] = 'String'; +$lang['ut_array'] = 'Array'; +$lang['ut_object'] = 'Object'; +$lang['ut_resource'] = 'Resource'; +$lang['ut_null'] = 'Null'; +$lang['ut_notes'] = 'Notes'; + + +/* End of file unit_test_lang.php */ +/* Location: ./system/language/english/unit_test_lang.php */ \ No newline at end of file diff --git a/system/language/english/upload_lang.php b/system/language/english/upload_lang.php new file mode 100755 index 0000000..4de9e9e --- /dev/null +++ b/system/language/english/upload_lang.php @@ -0,0 +1,22 @@ +<?php + +$lang['upload_userfile_not_set'] = "Unable to find a post variable called userfile."; +$lang['upload_file_exceeds_limit'] = "The uploaded file exceeds the maximum allowed size in your PHP configuration file."; +$lang['upload_file_exceeds_form_limit'] = "The uploaded file exceeds the maximum size allowed by the submission form."; +$lang['upload_file_partial'] = "The file was only partially uploaded."; +$lang['upload_no_temp_directory'] = "The temporary folder is missing."; +$lang['upload_unable_to_write_file'] = "The file could not be written to disk."; +$lang['upload_stopped_by_extension'] = "The file upload was stopped by extension."; +$lang['upload_no_file_selected'] = "You did not select a file to upload."; +$lang['upload_invalid_filetype'] = "The filetype you are attempting to upload is not allowed."; +$lang['upload_invalid_filesize'] = "The file you are attempting to upload is larger than the permitted size."; +$lang['upload_invalid_dimensions'] = "The image you are attempting to upload exceedes the maximum height or width."; +$lang['upload_destination_error'] = "A problem was encountered while attempting to move the uploaded file to the final destination."; +$lang['upload_no_filepath'] = "The upload path does not appear to be valid."; +$lang['upload_no_file_types'] = "You have not specified any allowed file types."; +$lang['upload_bad_filename'] = "The file name you submitted already exists on the server."; +$lang['upload_not_writable'] = "The upload destination folder does not appear to be writable."; + + +/* End of file upload_lang.php */ +/* Location: ./system/language/english/upload_lang.php */ \ No newline at end of file diff --git a/system/language/index.html b/system/language/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/language/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php new file mode 100755 index 0000000..261fc36 --- /dev/null +++ b/system/libraries/Cache/Cache.php @@ -0,0 +1,216 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 2.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Caching Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Core + * @author ExpressionEngine Dev Team + * @link + */ +class CI_Cache extends CI_Driver_Library { + + protected $valid_drivers = array( + 'cache_apc', 'cache_file', 'cache_memcached', 'cache_dummy' + ); + + protected $_cache_path = NULL; // Path of cache files (if file-based cache) + protected $_adapter = 'dummy'; + protected $_backup_driver; + + // ------------------------------------------------------------------------ + + /** + * Constructor + * + * @param array + */ + public function __construct($config = array()) + { + if ( ! empty($config)) + { + $this->_initialize($config); + } + } + + // ------------------------------------------------------------------------ + + /** + * Get + * + * Look for a value in the cache. If it exists, return the data + * if not, return FALSE + * + * @param string + * @return mixed value that is stored/FALSE on failure + */ + public function get($id) + { + return $this->{$this->_adapter}->get($id); + } + + // ------------------------------------------------------------------------ + + /** + * Cache Save + * + * @param string Unique Key + * @param mixed Data to store + * @param int Length of time (in seconds) to cache the data + * + * @return boolean true on success/false on failure + */ + public function save($id, $data, $ttl = 60) + { + return $this->{$this->_adapter}->save($id, $data, $ttl); + } + + // ------------------------------------------------------------------------ + + /** + * Delete from Cache + * + * @param mixed unique identifier of the item in the cache + * @return boolean true on success/false on failure + */ + public function delete($id) + { + return $this->{$this->_adapter}->delete($id); + } + + // ------------------------------------------------------------------------ + + /** + * Clean the cache + * + * @return boolean false on failure/true on success + */ + public function clean() + { + return $this->{$this->_adapter}->clean(); + } + + // ------------------------------------------------------------------------ + + /** + * Cache Info + * + * @param string user/filehits + * @return mixed array on success, false on failure + */ + public function cache_info($type = 'user') + { + return $this->{$this->_adapter}->cache_info($type); + } + + // ------------------------------------------------------------------------ + + /** + * Get Cache Metadata + * + * @param mixed key to get cache metadata on + * @return mixed return value from child method + */ + public function get_metadata($id) + { + return $this->{$this->_adapter}->get_metadata($id); + } + + // ------------------------------------------------------------------------ + + /** + * Initialize + * + * Initialize class properties based on the configuration array. + * + * @param array + * @return void + */ + private function _initialize($config) + { + $default_config = array( + 'adapter', + 'memcached' + ); + + foreach ($default_config as $key) + { + if (isset($config[$key])) + { + $param = '_'.$key; + + $this->{$param} = $config[$key]; + } + } + + if (isset($config['backup'])) + { + if (in_array('cache_'.$config['backup'], $this->valid_drivers)) + { + $this->_backup_driver = $config['backup']; + } + } + } + + // ------------------------------------------------------------------------ + + /** + * Is the requested driver supported in this environment? + * + * @param string The driver to test. + * @return array + */ + public function is_supported($driver) + { + static $support = array(); + + if ( ! isset($support[$driver])) + { + $support[$driver] = $this->{$driver}->is_supported(); + } + + return $support[$driver]; + } + + // ------------------------------------------------------------------------ + + /** + * __get() + * + * @param child + * @return object + */ + public function __get($child) + { + $obj = parent::__get($child); + + if ( ! $this->is_supported($child)) + { + $this->_adapter = $this->_backup_driver; + } + + return $obj; + } + + // ------------------------------------------------------------------------ +} +// End Class + +/* End of file Cache.php */ +/* Location: ./system/libraries/Cache/Cache.php */ \ No newline at end of file diff --git a/system/libraries/Cache/drivers/Cache_apc.php b/system/libraries/Cache/drivers/Cache_apc.php new file mode 100755 index 0000000..f750e6c --- /dev/null +++ b/system/libraries/Cache/drivers/Cache_apc.php @@ -0,0 +1,151 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 2.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter APC Caching Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Core + * @author ExpressionEngine Dev Team + * @link + */ + +class CI_Cache_apc extends CI_Driver { + + /** + * Get + * + * Look for a value in the cache. If it exists, return the data + * if not, return FALSE + * + * @param string + * @return mixed value that is stored/FALSE on failure + */ + public function get($id) + { + $data = apc_fetch($id); + + return (is_array($data)) ? $data[0] : FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Cache Save + * + * @param string Unique Key + * @param mixed Data to store + * @param int Length of time (in seconds) to cache the data + * + * @return boolean true on success/false on failure + */ + public function save($id, $data, $ttl = 60) + { + return apc_store($id, array($data, time(), $ttl), $ttl); + } + + // ------------------------------------------------------------------------ + + /** + * Delete from Cache + * + * @param mixed unique identifier of the item in the cache + * @param boolean true on success/false on failure + */ + public function delete($id) + { + return apc_delete($id); + } + + // ------------------------------------------------------------------------ + + /** + * Clean the cache + * + * @return boolean false on failure/true on success + */ + public function clean() + { + return apc_clear_cache('user'); + } + + // ------------------------------------------------------------------------ + + /** + * Cache Info + * + * @param string user/filehits + * @return mixed array on success, false on failure + */ + public function cache_info($type = NULL) + { + return apc_cache_info($type); + } + + // ------------------------------------------------------------------------ + + /** + * Get Cache Metadata + * + * @param mixed key to get cache metadata on + * @return mixed array on success/false on failure + */ + public function get_metadata($id) + { + $stored = apc_fetch($id); + + if (count($stored) !== 3) + { + return FALSE; + } + + list($data, $time, $ttl) = $stored; + + return array( + 'expire' => $time + $ttl, + 'mtime' => $time, + 'data' => $data + ); + } + + // ------------------------------------------------------------------------ + + /** + * is_supported() + * + * Check to see if APC is available on this system, bail if it isn't. + */ + public function is_supported() + { + if ( ! extension_loaded('apc') OR ini_get('apc.enabled') != "1") + { + log_message('error', 'The APC PHP extension must be loaded to use APC Cache.'); + return FALSE; + } + + return TRUE; + } + + // ------------------------------------------------------------------------ + + +} +// End Class + +/* End of file Cache_apc.php */ +/* Location: ./system/libraries/Cache/drivers/Cache_apc.php */ diff --git a/system/libraries/Cache/drivers/Cache_dummy.php b/system/libraries/Cache/drivers/Cache_dummy.php new file mode 100755 index 0000000..b11b5b8 --- /dev/null +++ b/system/libraries/Cache/drivers/Cache_dummy.php @@ -0,0 +1,129 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 2.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Dummy Caching Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Core + * @author ExpressionEngine Dev Team + * @link + */ + +class CI_Cache_dummy extends CI_Driver { + + /** + * Get + * + * Since this is the dummy class, it's always going to return FALSE. + * + * @param string + * @return Boolean FALSE + */ + public function get($id) + { + return FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Cache Save + * + * @param string Unique Key + * @param mixed Data to store + * @param int Length of time (in seconds) to cache the data + * + * @return boolean TRUE, Simulating success + */ + public function save($id, $data, $ttl = 60) + { + return TRUE; + } + + // ------------------------------------------------------------------------ + + /** + * Delete from Cache + * + * @param mixed unique identifier of the item in the cache + * @param boolean TRUE, simulating success + */ + public function delete($id) + { + return TRUE; + } + + // ------------------------------------------------------------------------ + + /** + * Clean the cache + * + * @return boolean TRUE, simulating success + */ + public function clean() + { + return TRUE; + } + + // ------------------------------------------------------------------------ + + /** + * Cache Info + * + * @param string user/filehits + * @return boolean FALSE + */ + public function cache_info($type = NULL) + { + return FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Get Cache Metadata + * + * @param mixed key to get cache metadata on + * @return boolean FALSE + */ + public function get_metadata($id) + { + return FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Is this caching driver supported on the system? + * Of course this one is. + * + * @return TRUE; + */ + public function is_supported() + { + return TRUE; + } + + // ------------------------------------------------------------------------ + +} +// End Class + +/* End of file Cache_dummy.php */ +/* Location: ./system/libraries/Cache/drivers/Cache_dummy.php */ \ No newline at end of file diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php new file mode 100755 index 0000000..e515eeb --- /dev/null +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -0,0 +1,195 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 2.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Memcached Caching Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Core + * @author ExpressionEngine Dev Team + * @link + */ + +class CI_Cache_file extends CI_Driver { + + protected $_cache_path; + + /** + * Constructor + */ + public function __construct() + { + $CI =& get_instance(); + $CI->load->helper('file'); + + $path = $CI->config->item('cache_path'); + + $this->_cache_path = ($path == '') ? APPPATH.'cache/' : $path; + } + + // ------------------------------------------------------------------------ + + /** + * Fetch from cache + * + * @param mixed unique key id + * @return mixed data on success/false on failure + */ + public function get($id) + { + if ( ! file_exists($this->_cache_path.$id)) + { + return FALSE; + } + + $data = read_file($this->_cache_path.$id); + $data = unserialize($data); + + if (time() > $data['time'] + $data['ttl']) + { + unlink($this->_cache_path.$id); + return FALSE; + } + + return $data['data']; + } + + // ------------------------------------------------------------------------ + + /** + * Save into cache + * + * @param string unique key + * @param mixed data to store + * @param int length of time (in seconds) the cache is valid + * - Default is 60 seconds + * @return boolean true on success/false on failure + */ + public function save($id, $data, $ttl = 60) + { + $contents = array( + 'time' => time(), + 'ttl' => $ttl, + 'data' => $data + ); + + if (write_file($this->_cache_path.$id, serialize($contents))) + { + @chmod($this->_cache_path.$id, 0777); + return TRUE; + } + + return FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Delete from Cache + * + * @param mixed unique identifier of item in cache + * @return boolean true on success/false on failure + */ + public function delete($id) + { + return unlink($this->_cache_path.$id); + } + + // ------------------------------------------------------------------------ + + /** + * Clean the Cache + * + * @return boolean false on failure/true on success + */ + public function clean() + { + return delete_files($this->_cache_path); + } + + // ------------------------------------------------------------------------ + + /** + * Cache Info + * + * Not supported by file-based caching + * + * @param string user/filehits + * @return mixed FALSE + */ + public function cache_info($type = NULL) + { + return get_dir_file_info($this->_cache_path); + } + + // ------------------------------------------------------------------------ + + /** + * Get Cache Metadata + * + * @param mixed key to get cache metadata on + * @return mixed FALSE on failure, array on success. + */ + public function get_metadata($id) + { + if ( ! file_exists($this->_cache_path.$id)) + { + return FALSE; + } + + $data = read_file($this->_cache_path.$id); + $data = unserialize($data); + + if (is_array($data)) + { + $mtime = filemtime($this->_cache_path.$id); + + if ( ! isset($data['ttl'])) + { + return FALSE; + } + + return array( + 'expire' => $mtime + $data['ttl'], + 'mtime' => $mtime + ); + } + + return FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Is supported + * + * In the file driver, check to see that the cache directory is indeed writable + * + * @return boolean + */ + public function is_supported() + { + return is_really_writable($this->_cache_path); + } + + // ------------------------------------------------------------------------ +} +// End Class + +/* End of file Cache_file.php */ +/* Location: ./system/libraries/Cache/drivers/Cache_file.php */ \ No newline at end of file diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php new file mode 100755 index 0000000..7478420 --- /dev/null +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -0,0 +1,218 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 2.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Memcached Caching Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Core + * @author ExpressionEngine Dev Team + * @link + */ + +class CI_Cache_memcached extends CI_Driver { + + private $_memcached; // Holds the memcached object + + protected $_memcache_conf = array( + 'default' => array( + 'default_host' => '127.0.0.1', + 'default_port' => 11211, + 'default_weight' => 1 + ) + ); + + // ------------------------------------------------------------------------ + + /** + * Fetch from cache + * + * @param mixed unique key id + * @return mixed data on success/false on failure + */ + public function get($id) + { + $data = $this->_memcached->get($id); + + return (is_array($data)) ? $data[0] : FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Save + * + * @param string unique identifier + * @param mixed data being cached + * @param int time to live + * @return boolean true on success, false on failure + */ + public function save($id, $data, $ttl = 60) + { + if (get_class($this->_memcached) == 'Memcached') + { + return $this->_memcached->set($id, array($data, time(), $ttl), $ttl); + } + else if (get_class($this->_memcached) == 'Memcache') + { + return $this->_memcached->set($id, array($data, time(), $ttl), 0, $ttl); + } + + return FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Delete from Cache + * + * @param mixed key to be deleted. + * @return boolean true on success, false on failure + */ + public function delete($id) + { + return $this->_memcached->delete($id); + } + + // ------------------------------------------------------------------------ + + /** + * Clean the Cache + * + * @return boolean false on failure/true on success + */ + public function clean() + { + return $this->_memcached->flush(); + } + + // ------------------------------------------------------------------------ + + /** + * Cache Info + * + * @param null type not supported in memcached + * @return mixed array on success, false on failure + */ + public function cache_info($type = NULL) + { + return $this->_memcached->getStats(); + } + + // ------------------------------------------------------------------------ + + /** + * Get Cache Metadata + * + * @param mixed key to get cache metadata on + * @return mixed FALSE on failure, array on success. + */ + public function get_metadata($id) + { + $stored = $this->_memcached->get($id); + + if (count($stored) !== 3) + { + return FALSE; + } + + list($data, $time, $ttl) = $stored; + + return array( + 'expire' => $time + $ttl, + 'mtime' => $time, + 'data' => $data + ); + } + + // ------------------------------------------------------------------------ + + /** + * Setup memcached. + */ + private function _setup_memcached() + { + // Try to load memcached server info from the config file. + $CI =& get_instance(); + if ($CI->config->load('memcached', TRUE, TRUE)) + { + if (is_array($CI->config->config['memcached'])) + { + $this->_memcache_conf = NULL; + + foreach ($CI->config->config['memcached'] as $name => $conf) + { + $this->_memcache_conf[$name] = $conf; + } + } + } + + $this->_memcached = new Memcached(); + + foreach ($this->_memcache_conf as $name => $cache_server) + { + if ( ! array_key_exists('hostname', $cache_server)) + { + $cache_server['hostname'] = $this->_default_options['default_host']; + } + + if ( ! array_key_exists('port', $cache_server)) + { + $cache_server['port'] = $this->_default_options['default_port']; + } + + if ( ! array_key_exists('weight', $cache_server)) + { + $cache_server['weight'] = $this->_default_options['default_weight']; + } + + $this->_memcached->addServer( + $cache_server['hostname'], $cache_server['port'], $cache_server['weight'] + ); + } + } + + // ------------------------------------------------------------------------ + + + /** + * Is supported + * + * Returns FALSE if memcached is not supported on the system. + * If it is, we setup the memcached object & return TRUE + */ + public function is_supported() + { + if ( ! extension_loaded('memcached')) + { + log_message('error', 'The Memcached Extension must be loaded to use Memcached Cache.'); + + return FALSE; + } + + $this->_setup_memcached(); + return TRUE; + } + + // ------------------------------------------------------------------------ + +} +// End Class + +/* End of file Cache_memcached.php */ +/* Location: ./system/libraries/Cache/drivers/Cache_memcached.php */ \ No newline at end of file diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php new file mode 100755 index 0000000..df0fd6e --- /dev/null +++ b/system/libraries/Calendar.php @@ -0,0 +1,475 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Calendar Class + * + * This class enables the creation of calendars + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/calendar.html + */ +class CI_Calendar { + + var $CI; + var $lang; + var $local_time; + var $template = ''; + var $start_day = 'sunday'; + var $month_type = 'long'; + var $day_type = 'abr'; + var $show_next_prev = FALSE; + var $next_prev_url = ''; + + /** + * Constructor + * + * Loads the calendar language file and sets the default time reference + */ + public function __construct($config = array()) + { + $this->CI =& get_instance(); + + if ( ! in_array('calendar_lang.php', $this->CI->lang->is_loaded, TRUE)) + { + $this->CI->lang->load('calendar'); + } + + $this->local_time = time(); + + if (count($config) > 0) + { + $this->initialize($config); + } + + log_message('debug', "Calendar Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize the user preferences + * + * Accepts an associative array as input, containing display preferences + * + * @access public + * @param array config preferences + * @return void + */ + function initialize($config = array()) + { + foreach ($config as $key => $val) + { + if (isset($this->$key)) + { + $this->$key = $val; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Generate the calendar + * + * @access public + * @param integer the year + * @param integer the month + * @param array the data to be shown in the calendar cells + * @return string + */ + function generate($year = '', $month = '', $data = array()) + { + // Set and validate the supplied month/year + if ($year == '') + $year = date("Y", $this->local_time); + + if ($month == '') + $month = date("m", $this->local_time); + + if (strlen($year) == 1) + $year = '200'.$year; + + if (strlen($year) == 2) + $year = '20'.$year; + + if (strlen($month) == 1) + $month = '0'.$month; + + $adjusted_date = $this->adjust_date($month, $year); + + $month = $adjusted_date['month']; + $year = $adjusted_date['year']; + + // Determine the total days in the month + $total_days = $this->get_total_days($month, $year); + + // Set the starting day of the week + $start_days = array('sunday' => 0, 'monday' => 1, 'tuesday' => 2, 'wednesday' => 3, 'thursday' => 4, 'friday' => 5, 'saturday' => 6); + $start_day = ( ! isset($start_days[$this->start_day])) ? 0 : $start_days[$this->start_day]; + + // Set the starting day number + $local_date = mktime(12, 0, 0, $month, 1, $year); + $date = getdate($local_date); + $day = $start_day + 1 - $date["wday"]; + + while ($day > 1) + { + $day -= 7; + } + + // Set the current month/year/day + // We use this to determine the "today" date + $cur_year = date("Y", $this->local_time); + $cur_month = date("m", $this->local_time); + $cur_day = date("j", $this->local_time); + + $is_current_month = ($cur_year == $year AND $cur_month == $month) ? TRUE : FALSE; + + // Generate the template data array + $this->parse_template(); + + // Begin building the calendar output + $out = $this->temp['table_open']; + $out .= "\n"; + + $out .= "\n"; + $out .= $this->temp['heading_row_start']; + $out .= "\n"; + + // "previous" month link + if ($this->show_next_prev == TRUE) + { + // Add a trailing slash to the URL if needed + $this->next_prev_url = preg_replace("/(.+?)\/*$/", "\\1/", $this->next_prev_url); + + $adjusted_date = $this->adjust_date($month - 1, $year); + $out .= str_replace('{previous_url}', $this->next_prev_url.$adjusted_date['year'].'/'.$adjusted_date['month'], $this->temp['heading_previous_cell']); + $out .= "\n"; + } + + // Heading containing the month/year + $colspan = ($this->show_next_prev == TRUE) ? 5 : 7; + + $this->temp['heading_title_cell'] = str_replace('{colspan}', $colspan, $this->temp['heading_title_cell']); + $this->temp['heading_title_cell'] = str_replace('{heading}', $this->get_month_name($month)."&nbsp;".$year, $this->temp['heading_title_cell']); + + $out .= $this->temp['heading_title_cell']; + $out .= "\n"; + + // "next" month link + if ($this->show_next_prev == TRUE) + { + $adjusted_date = $this->adjust_date($month + 1, $year); + $out .= str_replace('{next_url}', $this->next_prev_url.$adjusted_date['year'].'/'.$adjusted_date['month'], $this->temp['heading_next_cell']); + } + + $out .= "\n"; + $out .= $this->temp['heading_row_end']; + $out .= "\n"; + + // Write the cells containing the days of the week + $out .= "\n"; + $out .= $this->temp['week_row_start']; + $out .= "\n"; + + $day_names = $this->get_day_names(); + + for ($i = 0; $i < 7; $i ++) + { + $out .= str_replace('{week_day}', $day_names[($start_day + $i) %7], $this->temp['week_day_cell']); + } + + $out .= "\n"; + $out .= $this->temp['week_row_end']; + $out .= "\n"; + + // Build the main body of the calendar + while ($day <= $total_days) + { + $out .= "\n"; + $out .= $this->temp['cal_row_start']; + $out .= "\n"; + + for ($i = 0; $i < 7; $i++) + { + $out .= ($is_current_month == TRUE AND $day == $cur_day) ? $this->temp['cal_cell_start_today'] : $this->temp['cal_cell_start']; + + if ($day > 0 AND $day <= $total_days) + { + if (isset($data[$day])) + { + // Cells with content + $temp = ($is_current_month == TRUE AND $day == $cur_day) ? $this->temp['cal_cell_content_today'] : $this->temp['cal_cell_content']; + $out .= str_replace('{day}', $day, str_replace('{content}', $data[$day], $temp)); + } + else + { + // Cells with no content + $temp = ($is_current_month == TRUE AND $day == $cur_day) ? $this->temp['cal_cell_no_content_today'] : $this->temp['cal_cell_no_content']; + $out .= str_replace('{day}', $day, $temp); + } + } + else + { + // Blank cells + $out .= $this->temp['cal_cell_blank']; + } + + $out .= ($is_current_month == TRUE AND $day == $cur_day) ? $this->temp['cal_cell_end_today'] : $this->temp['cal_cell_end']; + $day++; + } + + $out .= "\n"; + $out .= $this->temp['cal_row_end']; + $out .= "\n"; + } + + $out .= "\n"; + $out .= $this->temp['table_close']; + + return $out; + } + + // -------------------------------------------------------------------- + + /** + * Get Month Name + * + * Generates a textual month name based on the numeric + * month provided. + * + * @access public + * @param integer the month + * @return string + */ + function get_month_name($month) + { + if ($this->month_type == 'short') + { + $month_names = array('01' => 'cal_jan', '02' => 'cal_feb', '03' => 'cal_mar', '04' => 'cal_apr', '05' => 'cal_may', '06' => 'cal_jun', '07' => 'cal_jul', '08' => 'cal_aug', '09' => 'cal_sep', '10' => 'cal_oct', '11' => 'cal_nov', '12' => 'cal_dec'); + } + else + { + $month_names = array('01' => 'cal_january', '02' => 'cal_february', '03' => 'cal_march', '04' => 'cal_april', '05' => 'cal_mayl', '06' => 'cal_june', '07' => 'cal_july', '08' => 'cal_august', '09' => 'cal_september', '10' => 'cal_october', '11' => 'cal_november', '12' => 'cal_december'); + } + + $month = $month_names[$month]; + + if ($this->CI->lang->line($month) === FALSE) + { + return ucfirst(str_replace('cal_', '', $month)); + } + + return $this->CI->lang->line($month); + } + + // -------------------------------------------------------------------- + + /** + * Get Day Names + * + * Returns an array of day names (Sunday, Monday, etc.) based + * on the type. Options: long, short, abrev + * + * @access public + * @param string + * @return array + */ + function get_day_names($day_type = '') + { + if ($day_type != '') + $this->day_type = $day_type; + + if ($this->day_type == 'long') + { + $day_names = array('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'); + } + elseif ($this->day_type == 'short') + { + $day_names = array('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'); + } + else + { + $day_names = array('su', 'mo', 'tu', 'we', 'th', 'fr', 'sa'); + } + + $days = array(); + foreach ($day_names as $val) + { + $days[] = ($this->CI->lang->line('cal_'.$val) === FALSE) ? ucfirst($val) : $this->CI->lang->line('cal_'.$val); + } + + return $days; + } + + // -------------------------------------------------------------------- + + /** + * Adjust Date + * + * This function makes sure that we have a valid month/year. + * For example, if you submit 13 as the month, the year will + * increment and the month will become January. + * + * @access public + * @param integer the month + * @param integer the year + * @return array + */ + function adjust_date($month, $year) + { + $date = array(); + + $date['month'] = $month; + $date['year'] = $year; + + while ($date['month'] > 12) + { + $date['month'] -= 12; + $date['year']++; + } + + while ($date['month'] <= 0) + { + $date['month'] += 12; + $date['year']--; + } + + if (strlen($date['month']) == 1) + { + $date['month'] = '0'.$date['month']; + } + + return $date; + } + + // -------------------------------------------------------------------- + + /** + * Total days in a given month + * + * @access public + * @param integer the month + * @param integer the year + * @return integer + */ + function get_total_days($month, $year) + { + $days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); + + if ($month < 1 OR $month > 12) + { + return 0; + } + + // Is the year a leap year? + if ($month == 2) + { + if ($year % 400 == 0 OR ($year % 4 == 0 AND $year % 100 != 0)) + { + return 29; + } + } + + return $days_in_month[$month - 1]; + } + + // -------------------------------------------------------------------- + + /** + * Set Default Template Data + * + * This is used in the event that the user has not created their own template + * + * @access public + * @return array + */ + function default_template() + { + return array ( + 'table_open' => '<table border="0" cellpadding="4" cellspacing="0">', + 'heading_row_start' => '<tr>', + 'heading_previous_cell' => '<th><a href="{previous_url}">&lt;&lt;</a></th>', + 'heading_title_cell' => '<th colspan="{colspan}">{heading}</th>', + 'heading_next_cell' => '<th><a href="{next_url}">&gt;&gt;</a></th>', + 'heading_row_end' => '</tr>', + 'week_row_start' => '<tr>', + 'week_day_cell' => '<td>{week_day}</td>', + 'week_row_end' => '</tr>', + 'cal_row_start' => '<tr>', + 'cal_cell_start' => '<td>', + 'cal_cell_start_today' => '<td>', + 'cal_cell_content' => '<a href="{content}">{day}</a>', + 'cal_cell_content_today' => '<a href="{content}"><strong>{day}</strong></a>', + 'cal_cell_no_content' => '{day}', + 'cal_cell_no_content_today' => '<strong>{day}</strong>', + 'cal_cell_blank' => '&nbsp;', + 'cal_cell_end' => '</td>', + 'cal_cell_end_today' => '</td>', + 'cal_row_end' => '</tr>', + 'table_close' => '</table>' + ); + } + + // -------------------------------------------------------------------- + + /** + * Parse Template + * + * Harvests the data within the template {pseudo-variables} + * used to display the calendar + * + * @access public + * @return void + */ + function parse_template() + { + $this->temp = $this->default_template(); + + if ($this->template == '') + { + return; + } + + $today = array('cal_cell_start_today', 'cal_cell_content_today', 'cal_cell_no_content_today', 'cal_cell_end_today'); + + foreach (array('table_open', 'table_close', 'heading_row_start', 'heading_previous_cell', 'heading_title_cell', 'heading_next_cell', 'heading_row_end', 'week_row_start', 'week_day_cell', 'week_row_end', 'cal_row_start', 'cal_cell_start', 'cal_cell_content', 'cal_cell_no_content', 'cal_cell_blank', 'cal_cell_end', 'cal_row_end', 'cal_cell_start_today', 'cal_cell_content_today', 'cal_cell_no_content_today', 'cal_cell_end_today') as $val) + { + if (preg_match("/\{".$val."\}(.*?)\{\/".$val."\}/si", $this->template, $match)) + { + $this->temp[$val] = $match['1']; + } + else + { + if (in_array($val, $today, TRUE)) + { + $this->temp[$val] = $this->temp[str_replace('_today', '', $val)]; + } + } + } + } + +} + +// END CI_Calendar class + +/* End of file Calendar.php */ +/* Location: ./system/libraries/Calendar.php */ \ No newline at end of file diff --git a/system/libraries/Cart.php b/system/libraries/Cart.php new file mode 100755 index 0000000..da47b5a --- /dev/null +++ b/system/libraries/Cart.php @@ -0,0 +1,552 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2006 - 2012, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Shopping Cart Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Shopping Cart + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/cart.html + */ +class CI_Cart { + + // These are the regular expression rules that we use to validate the product ID and product name + var $product_id_rules = '\.a-z0-9_-'; // alpha-numeric, dashes, underscores, or periods + var $product_name_rules = '\.\:\-_ a-z0-9'; // alpha-numeric, dashes, underscores, colons or periods + + // Private variables. Do not change! + var $CI; + var $_cart_contents = array(); + + + /** + * Shopping Class Constructor + * + * The constructor loads the Session class, used to store the shopping cart contents. + */ + public function __construct($params = array()) + { + // Set the super object to a local variable for use later + $this->CI =& get_instance(); + + // Are any config settings being passed manually? If so, set them + $config = array(); + if (count($params) > 0) + { + foreach ($params as $key => $val) + { + $config[$key] = $val; + } + } + + // Load the Sessions class + $this->CI->load->library('session', $config); + + // Grab the shopping cart array from the session table, if it exists + if ($this->CI->session->userdata('cart_contents') !== FALSE) + { + $this->_cart_contents = $this->CI->session->userdata('cart_contents'); + } + else + { + // No cart exists so we'll set some base values + $this->_cart_contents['cart_total'] = 0; + $this->_cart_contents['total_items'] = 0; + } + + log_message('debug', "Cart Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Insert items into the cart and save it to the session table + * + * @access public + * @param array + * @return bool + */ + function insert($items = array()) + { + // Was any cart data passed? No? Bah... + if ( ! is_array($items) OR count($items) == 0) + { + log_message('error', 'The insert method must be passed an array containing data.'); + return FALSE; + } + + // You can either insert a single product using a one-dimensional array, + // or multiple products using a multi-dimensional one. The way we + // determine the array type is by looking for a required array key named "id" + // at the top level. If it's not found, we will assume it's a multi-dimensional array. + + $save_cart = FALSE; + if (isset($items['id'])) + { + if (($rowid = $this->_insert($items))) + { + $save_cart = TRUE; + } + } + else + { + foreach ($items as $val) + { + if (is_array($val) AND isset($val['id'])) + { + if ($this->_insert($val)) + { + $save_cart = TRUE; + } + } + } + } + + // Save the cart data if the insert was successful + if ($save_cart == TRUE) + { + $this->_save_cart(); + return isset($rowid) ? $rowid : TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Insert + * + * @access private + * @param array + * @return bool + */ + function _insert($items = array()) + { + // Was any cart data passed? No? Bah... + if ( ! is_array($items) OR count($items) == 0) + { + log_message('error', 'The insert method must be passed an array containing data.'); + return FALSE; + } + + // -------------------------------------------------------------------- + + // Does the $items array contain an id, quantity, price, and name? These are required + if ( ! isset($items['id']) OR ! isset($items['qty']) OR ! isset($items['price']) OR ! isset($items['name'])) + { + log_message('error', 'The cart array must contain a product ID, quantity, price, and name.'); + return FALSE; + } + + // -------------------------------------------------------------------- + + // Prep the quantity. It can only be a number. Duh... + $items['qty'] = trim(preg_replace('/([^0-9])/i', '', $items['qty'])); + // Trim any leading zeros + $items['qty'] = trim(preg_replace('/(^[0]+)/i', '', $items['qty'])); + + // If the quantity is zero or blank there's nothing for us to do + if ( ! is_numeric($items['qty']) OR $items['qty'] == 0) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + // Validate the product ID. It can only be alpha-numeric, dashes, underscores or periods + // Not totally sure we should impose this rule, but it seems prudent to standardize IDs. + // Note: These can be user-specified by setting the $this->product_id_rules variable. + if ( ! preg_match("/^[".$this->product_id_rules."]+$/i", $items['id'])) + { + log_message('error', 'Invalid product ID. The product ID can only contain alpha-numeric characters, dashes, and underscores'); + return FALSE; + } + + // -------------------------------------------------------------------- + + // Validate the product name. It can only be alpha-numeric, dashes, underscores, colons or periods. + // Note: These can be user-specified by setting the $this->product_name_rules variable. + if ( ! preg_match("/^[".$this->product_name_rules."]+$/i", $items['name'])) + { + log_message('error', 'An invalid name was submitted as the product name: '.$items['name'].' The name can only contain alpha-numeric characters, dashes, underscores, colons, and spaces'); + return FALSE; + } + + // -------------------------------------------------------------------- + + // Prep the price. Remove anything that isn't a number or decimal point. + $items['price'] = trim(preg_replace('/([^0-9\.])/i', '', $items['price'])); + // Trim any leading zeros + $items['price'] = trim(preg_replace('/(^[0]+)/i', '', $items['price'])); + + // Is the price a valid number? + if ( ! is_numeric($items['price'])) + { + log_message('error', 'An invalid price was submitted for product ID: '.$items['id']); + return FALSE; + } + + // -------------------------------------------------------------------- + + // We now need to create a unique identifier for the item being inserted into the cart. + // Every time something is added to the cart it is stored in the master cart array. + // Each row in the cart array, however, must have a unique index that identifies not only + // a particular product, but makes it possible to store identical products with different options. + // For example, what if someone buys two identical t-shirts (same product ID), but in + // different sizes? The product ID (and other attributes, like the name) will be identical for + // both sizes because it's the same shirt. The only difference will be the size. + // Internally, we need to treat identical submissions, but with different options, as a unique product. + // Our solution is to convert the options array to a string and MD5 it along with the product ID. + // This becomes the unique "row ID" + if (isset($items['options']) AND count($items['options']) > 0) + { + $rowid = md5($items['id'].implode('', $items['options'])); + } + else + { + // No options were submitted so we simply MD5 the product ID. + // Technically, we don't need to MD5 the ID in this case, but it makes + // sense to standardize the format of array indexes for both conditions + $rowid = md5($items['id']); + } + + // -------------------------------------------------------------------- + + // Now that we have our unique "row ID", we'll add our cart items to the master array + + // let's unset this first, just to make sure our index contains only the data from this submission + unset($this->_cart_contents[$rowid]); + + // Create a new index with our new row ID + $this->_cart_contents[$rowid]['rowid'] = $rowid; + + // And add the new items to the cart array + foreach ($items as $key => $val) + { + $this->_cart_contents[$rowid][$key] = $val; + } + + // Woot! + return $rowid; + } + + // -------------------------------------------------------------------- + + /** + * Update the cart + * + * This function permits the quantity of a given item to be changed. + * Typically it is called from the "view cart" page if a user makes + * changes to the quantity before checkout. That array must contain the + * product ID and quantity for each item. + * + * @access public + * @param array + * @param string + * @return bool + */ + function update($items = array()) + { + // Was any cart data passed? + if ( ! is_array($items) OR count($items) == 0) + { + return FALSE; + } + + // You can either update a single product using a one-dimensional array, + // or multiple products using a multi-dimensional one. The way we + // determine the array type is by looking for a required array key named "id". + // If it's not found we assume it's a multi-dimensional array + $save_cart = FALSE; + if (isset($items['rowid']) AND isset($items['qty'])) + { + if ($this->_update($items) == TRUE) + { + $save_cart = TRUE; + } + } + else + { + foreach ($items as $val) + { + if (is_array($val) AND isset($val['rowid']) AND isset($val['qty'])) + { + if ($this->_update($val) == TRUE) + { + $save_cart = TRUE; + } + } + } + } + + // Save the cart data if the insert was successful + if ($save_cart == TRUE) + { + $this->_save_cart(); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Update the cart + * + * This function permits the quantity of a given item to be changed. + * Typically it is called from the "view cart" page if a user makes + * changes to the quantity before checkout. That array must contain the + * product ID and quantity for each item. + * + * @access private + * @param array + * @return bool + */ + function _update($items = array()) + { + // Without these array indexes there is nothing we can do + if ( ! isset($items['qty']) OR ! isset($items['rowid']) OR ! isset($this->_cart_contents[$items['rowid']])) + { + return FALSE; + } + + // Prep the quantity + $items['qty'] = preg_replace('/([^0-9])/i', '', $items['qty']); + + // Is the quantity a number? + if ( ! is_numeric($items['qty'])) + { + return FALSE; + } + + // Is the new quantity different than what is already saved in the cart? + // If it's the same there's nothing to do + if ($this->_cart_contents[$items['rowid']]['qty'] == $items['qty']) + { + return FALSE; + } + + // Is the quantity zero? If so we will remove the item from the cart. + // If the quantity is greater than zero we are updating + if ($items['qty'] == 0) + { + unset($this->_cart_contents[$items['rowid']]); + } + else + { + $this->_cart_contents[$items['rowid']]['qty'] = $items['qty']; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Save the cart array to the session DB + * + * @access private + * @return bool + */ + function _save_cart() + { + // Unset these so our total can be calculated correctly below + unset($this->_cart_contents['total_items']); + unset($this->_cart_contents['cart_total']); + + // Lets add up the individual prices and set the cart sub-total + $total = 0; + $items = 0; + foreach ($this->_cart_contents as $key => $val) + { + // We make sure the array contains the proper indexes + if ( ! is_array($val) OR ! isset($val['price']) OR ! isset($val['qty'])) + { + continue; + } + + $total += ($val['price'] * $val['qty']); + $items += $val['qty']; + + // Set the subtotal + $this->_cart_contents[$key]['subtotal'] = ($this->_cart_contents[$key]['price'] * $this->_cart_contents[$key]['qty']); + } + + // Set the cart total and total items. + $this->_cart_contents['total_items'] = $items; + $this->_cart_contents['cart_total'] = $total; + + // Is our cart empty? If so we delete it from the session + if (count($this->_cart_contents) <= 2) + { + $this->CI->session->unset_userdata('cart_contents'); + + // Nothing more to do... coffee time! + return FALSE; + } + + // If we made it this far it means that our cart has data. + // Let's pass it to the Session class so it can be stored + $this->CI->session->set_userdata(array('cart_contents' => $this->_cart_contents)); + + // Woot! + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Cart Total + * + * @access public + * @return integer + */ + function total() + { + return $this->_cart_contents['cart_total']; + } + + // -------------------------------------------------------------------- + + /** + * Total Items + * + * Returns the total item count + * + * @access public + * @return integer + */ + function total_items() + { + return $this->_cart_contents['total_items']; + } + + // -------------------------------------------------------------------- + + /** + * Cart Contents + * + * Returns the entire cart array + * + * @access public + * @return array + */ + function contents() + { + $cart = $this->_cart_contents; + + // Remove these so they don't create a problem when showing the cart table + unset($cart['total_items']); + unset($cart['cart_total']); + + return $cart; + } + + // -------------------------------------------------------------------- + + /** + * Has options + * + * Returns TRUE if the rowid passed to this function correlates to an item + * that has options associated with it. + * + * @access public + * @return array + */ + function has_options($rowid = '') + { + if ( ! isset($this->_cart_contents[$rowid]['options']) OR count($this->_cart_contents[$rowid]['options']) === 0) + { + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Product options + * + * Returns the an array of options, for a particular product row ID + * + * @access public + * @return array + */ + function product_options($rowid = '') + { + if ( ! isset($this->_cart_contents[$rowid]['options'])) + { + return array(); + } + + return $this->_cart_contents[$rowid]['options']; + } + + // -------------------------------------------------------------------- + + /** + * Format Number + * + * Returns the supplied number with commas and a decimal point. + * + * @access public + * @return integer + */ + function format_number($n = '') + { + if ($n == '') + { + return ''; + } + + // Remove anything that isn't a number or decimal point. + $n = trim(preg_replace('/([^0-9\.])/i', '', $n)); + + return number_format($n, 2, '.', ','); + } + + // -------------------------------------------------------------------- + + /** + * Destroy the cart + * + * Empties the cart and kills the session + * + * @access public + * @return null + */ + function destroy() + { + unset($this->_cart_contents); + + $this->_cart_contents['cart_total'] = 0; + $this->_cart_contents['total_items'] = 0; + + $this->CI->session->unset_userdata('cart_contents'); + } + + +} +// END Cart Class + +/* End of file Cart.php */ +/* Location: ./system/libraries/Cart.php */ \ No newline at end of file diff --git a/system/libraries/Driver.php b/system/libraries/Driver.php new file mode 100755 index 0000000..4912c4a --- /dev/null +++ b/system/libraries/Driver.php @@ -0,0 +1,229 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author EllisLab Dev Team + * @copyright Copyright (c) 2006 - 2012, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Driver Library Class + * + * This class enables you to create "Driver" libraries that add runtime ability + * to extend the capabilities of a class via additional driver objects + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author EllisLab Dev Team + * @link + */ +class CI_Driver_Library { + + protected $valid_drivers = array(); + protected $lib_name; + + // The first time a child is used it won't exist, so we instantiate it + // subsequents calls will go straight to the proper child. + function __get($child) + { + if ( ! isset($this->lib_name)) + { + $this->lib_name = get_class($this); + } + + // The class will be prefixed with the parent lib + $child_class = $this->lib_name.'_'.$child; + + // Remove the CI_ prefix and lowercase + $lib_name = ucfirst(strtolower(str_replace('CI_', '', $this->lib_name))); + $driver_name = strtolower(str_replace('CI_', '', $child_class)); + + if (in_array($driver_name, array_map('strtolower', $this->valid_drivers))) + { + // check and see if the driver is in a separate file + if ( ! class_exists($child_class)) + { + // check application path first + foreach (get_instance()->load->get_package_paths(TRUE) as $path) + { + // loves me some nesting! + foreach (array(ucfirst($driver_name), $driver_name) as $class) + { + $filepath = $path.'libraries/'.$lib_name.'/drivers/'.$class.'.php'; + + if (file_exists($filepath)) + { + include_once $filepath; + break; + } + } + } + + // it's a valid driver, but the file simply can't be found + if ( ! class_exists($child_class)) + { + log_message('error', "Unable to load the requested driver: ".$child_class); + show_error("Unable to load the requested driver: ".$child_class); + } + } + + $obj = new $child_class; + $obj->decorate($this); + $this->$child = $obj; + return $this->$child; + } + + // The requested driver isn't valid! + log_message('error', "Invalid driver requested: ".$child_class); + show_error("Invalid driver requested: ".$child_class); + } + + // -------------------------------------------------------------------- + +} +// END CI_Driver_Library CLASS + + +/** + * CodeIgniter Driver Class + * + * This class enables you to create drivers for a Library based on the Driver Library. + * It handles the drivers' access to the parent library + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author EllisLab Dev Team + * @link + */ +class CI_Driver { + protected $parent; + + private $methods = array(); + private $properties = array(); + + private static $reflections = array(); + + /** + * Decorate + * + * Decorates the child with the parent driver lib's methods and properties + * + * @param object + * @return void + */ + public function decorate($parent) + { + $this->parent = $parent; + + // Lock down attributes to what is defined in the class + // and speed up references in magic methods + + $class_name = get_class($parent); + + if ( ! isset(self::$reflections[$class_name])) + { + $r = new ReflectionObject($parent); + + foreach ($r->getMethods() as $method) + { + if ($method->isPublic()) + { + $this->methods[] = $method->getName(); + } + } + + foreach ($r->getProperties() as $prop) + { + if ($prop->isPublic()) + { + $this->properties[] = $prop->getName(); + } + } + + self::$reflections[$class_name] = array($this->methods, $this->properties); + } + else + { + list($this->methods, $this->properties) = self::$reflections[$class_name]; + } + } + + // -------------------------------------------------------------------- + + /** + * __call magic method + * + * Handles access to the parent driver library's methods + * + * @access public + * @param string + * @param array + * @return mixed + */ + public function __call($method, $args = array()) + { + if (in_array($method, $this->methods)) + { + return call_user_func_array(array($this->parent, $method), $args); + } + + $trace = debug_backtrace(); + _exception_handler(E_ERROR, "No such method '{$method}'", $trace[1]['file'], $trace[1]['line']); + exit; + } + + // -------------------------------------------------------------------- + + /** + * __get magic method + * + * Handles reading of the parent driver library's properties + * + * @param string + * @return mixed + */ + public function __get($var) + { + if (in_array($var, $this->properties)) + { + return $this->parent->$var; + } + } + + // -------------------------------------------------------------------- + + /** + * __set magic method + * + * Handles writing to the parent driver library's properties + * + * @param string + * @param array + * @return mixed + */ + public function __set($var, $val) + { + if (in_array($var, $this->properties)) + { + $this->parent->$var = $val; + } + } + + // -------------------------------------------------------------------- + +} +// END CI_Driver CLASS + +/* End of file Driver.php */ +/* Location: ./system/libraries/Driver.php */ \ No newline at end of file diff --git a/system/libraries/Email.php b/system/libraries/Email.php new file mode 100755 index 0000000..d01d5c1 --- /dev/null +++ b/system/libraries/Email.php @@ -0,0 +1,2092 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Email Class + * + * Permits email to be sent using Mail, Sendmail, or SMTP. + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/email.html + */ +class CI_Email { + + var $useragent = "CodeIgniter"; + var $mailpath = "/usr/sbin/sendmail"; // Sendmail path + var $protocol = "mail"; // mail/sendmail/smtp + var $smtp_host = ""; // SMTP Server. Example: mail.earthlink.net + var $smtp_user = ""; // SMTP Username + var $smtp_pass = ""; // SMTP Password + var $smtp_port = "25"; // SMTP Port + var $smtp_timeout = 5; // SMTP Timeout in seconds + var $smtp_crypto = ""; // SMTP Encryption. Can be null, tls or ssl. + var $wordwrap = TRUE; // TRUE/FALSE Turns word-wrap on/off + var $wrapchars = "76"; // Number of characters to wrap at. + var $mailtype = "text"; // text/html Defines email formatting + var $charset = "utf-8"; // Default char set: iso-8859-1 or us-ascii + var $multipart = "mixed"; // "mixed" (in the body) or "related" (separate) + var $alt_message = ''; // Alternative message for HTML emails + var $validate = FALSE; // TRUE/FALSE. Enables email validation + var $priority = "3"; // Default priority (1 - 5) + var $newline = "\n"; // Default newline. "\r\n" or "\n" (Use "\r\n" to comply with RFC 822) + var $crlf = "\n"; // The RFC 2045 compliant CRLF for quoted-printable is "\r\n". Apparently some servers, + // even on the receiving end think they need to muck with CRLFs, so using "\n", while + // distasteful, is the only thing that seems to work for all environments. + var $send_multipart = TRUE; // TRUE/FALSE - Yahoo does not like multipart alternative, so this is an override. Set to FALSE for Yahoo. + var $bcc_batch_mode = FALSE; // TRUE/FALSE Turns on/off Bcc batch feature + var $bcc_batch_size = 200; // If bcc_batch_mode = TRUE, sets max number of Bccs in each batch + var $_safe_mode = FALSE; + var $_subject = ""; + var $_body = ""; + var $_finalbody = ""; + var $_alt_boundary = ""; + var $_atc_boundary = ""; + var $_header_str = ""; + var $_smtp_connect = ""; + var $_encoding = "8bit"; + var $_IP = FALSE; + var $_smtp_auth = FALSE; + var $_replyto_flag = FALSE; + var $_debug_msg = array(); + var $_recipients = array(); + var $_cc_array = array(); + var $_bcc_array = array(); + var $_headers = array(); + var $_attach_name = array(); + var $_attach_type = array(); + var $_attach_disp = array(); + var $_protocols = array('mail', 'sendmail', 'smtp'); + var $_base_charsets = array('us-ascii', 'iso-2022-'); // 7-bit charsets (excluding language suffix) + var $_bit_depths = array('7bit', '8bit'); + var $_priorities = array('1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)'); + + + /** + * Constructor - Sets Email Preferences + * + * The constructor can be passed an array of config values + */ + public function __construct($config = array()) + { + if (count($config) > 0) + { + $this->initialize($config); + } + else + { + $this->_smtp_auth = ($this->smtp_user == '' AND $this->smtp_pass == '') ? FALSE : TRUE; + $this->_safe_mode = ((boolean)@ini_get("safe_mode") === FALSE) ? FALSE : TRUE; + } + + log_message('debug', "Email Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize preferences + * + * @access public + * @param array + * @return void + */ + public function initialize($config = array()) + { + foreach ($config as $key => $val) + { + if (isset($this->$key)) + { + $method = 'set_'.$key; + + if (method_exists($this, $method)) + { + $this->$method($val); + } + else + { + $this->$key = $val; + } + } + } + $this->clear(); + + $this->_smtp_auth = ($this->smtp_user == '' AND $this->smtp_pass == '') ? FALSE : TRUE; + $this->_safe_mode = ((boolean)@ini_get("safe_mode") === FALSE) ? FALSE : TRUE; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Initialize the Email Data + * + * @access public + * @return void + */ + public function clear($clear_attachments = FALSE) + { + $this->_subject = ""; + $this->_body = ""; + $this->_finalbody = ""; + $this->_header_str = ""; + $this->_replyto_flag = FALSE; + $this->_recipients = array(); + $this->_cc_array = array(); + $this->_bcc_array = array(); + $this->_headers = array(); + $this->_debug_msg = array(); + + $this->_set_header('User-Agent', $this->useragent); + $this->_set_header('Date', $this->_set_date()); + + if ($clear_attachments !== FALSE) + { + $this->_attach_name = array(); + $this->_attach_type = array(); + $this->_attach_disp = array(); + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set FROM + * + * @access public + * @param string + * @param string + * @return void + */ + public function from($from, $name = '') + { + if (preg_match( '/\<(.*)\>/', $from, $match)) + { + $from = $match['1']; + } + + if ($this->validate) + { + $this->validate_email($this->_str_to_array($from)); + } + + // prepare the display name + if ($name != '') + { + // only use Q encoding if there are characters that would require it + if ( ! preg_match('/[\200-\377]/', $name)) + { + // add slashes for non-printing characters, slashes, and double quotes, and surround it in double quotes + $name = '"'.addcslashes($name, "\0..\37\177'\"\\").'"'; + } + else + { + $name = $this->_prep_q_encoding($name, TRUE); + } + } + + $this->_set_header('From', $name.' <'.$from.'>'); + $this->_set_header('Return-Path', '<'.$from.'>'); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Reply-to + * + * @access public + * @param string + * @param string + * @return void + */ + public function reply_to($replyto, $name = '') + { + if (preg_match( '/\<(.*)\>/', $replyto, $match)) + { + $replyto = $match['1']; + } + + if ($this->validate) + { + $this->validate_email($this->_str_to_array($replyto)); + } + + if ($name == '') + { + $name = $replyto; + } + + if (strncmp($name, '"', 1) != 0) + { + $name = '"'.$name.'"'; + } + + $this->_set_header('Reply-To', $name.' <'.$replyto.'>'); + $this->_replyto_flag = TRUE; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Recipients + * + * @access public + * @param string + * @return void + */ + public function to($to) + { + $to = $this->_str_to_array($to); + $to = $this->clean_email($to); + + if ($this->validate) + { + $this->validate_email($to); + } + + if ($this->_get_protocol() != 'mail') + { + $this->_set_header('To', implode(", ", $to)); + } + + switch ($this->_get_protocol()) + { + case 'smtp' : + $this->_recipients = $to; + break; + case 'sendmail' : + case 'mail' : + $this->_recipients = implode(", ", $to); + break; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set CC + * + * @access public + * @param string + * @return void + */ + public function cc($cc) + { + $cc = $this->_str_to_array($cc); + $cc = $this->clean_email($cc); + + if ($this->validate) + { + $this->validate_email($cc); + } + + $this->_set_header('Cc', implode(", ", $cc)); + + if ($this->_get_protocol() == "smtp") + { + $this->_cc_array = $cc; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set BCC + * + * @access public + * @param string + * @param string + * @return void + */ + public function bcc($bcc, $limit = '') + { + if ($limit != '' && is_numeric($limit)) + { + $this->bcc_batch_mode = TRUE; + $this->bcc_batch_size = $limit; + } + + $bcc = $this->_str_to_array($bcc); + $bcc = $this->clean_email($bcc); + + if ($this->validate) + { + $this->validate_email($bcc); + } + + if (($this->_get_protocol() == "smtp") OR ($this->bcc_batch_mode && count($bcc) > $this->bcc_batch_size)) + { + $this->_bcc_array = $bcc; + } + else + { + $this->_set_header('Bcc', implode(", ", $bcc)); + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Email Subject + * + * @access public + * @param string + * @return void + */ + public function subject($subject) + { + $subject = $this->_prep_q_encoding($subject); + $this->_set_header('Subject', $subject); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Body + * + * @access public + * @param string + * @return void + */ + public function message($body) + { + $this->_body = rtrim(str_replace("\r", "", $body)); + + /* strip slashes only if magic quotes is ON + if we do it with magic quotes OFF, it strips real, user-inputted chars. + + NOTE: In PHP 5.4 get_magic_quotes_gpc() will always return 0 and + it will probably not exist in future versions at all. + */ + if ( ! is_php('5.4') && get_magic_quotes_gpc()) + { + $this->_body = stripslashes($this->_body); + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Assign file attachments + * + * @access public + * @param string + * @return void + */ + public function attach($filename, $disposition = 'attachment') + { + $this->_attach_name[] = $filename; + $this->_attach_type[] = $this->_mime_types(pathinfo($filename, PATHINFO_EXTENSION)); + $this->_attach_disp[] = $disposition; // Can also be 'inline' Not sure if it matters + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Add a Header Item + * + * @access protected + * @param string + * @param string + * @return void + */ + protected function _set_header($header, $value) + { + $this->_headers[$header] = $value; + } + + // -------------------------------------------------------------------- + + /** + * Convert a String to an Array + * + * @access protected + * @param string + * @return array + */ + protected function _str_to_array($email) + { + if ( ! is_array($email)) + { + if (strpos($email, ',') !== FALSE) + { + $email = preg_split('/[\s,]/', $email, -1, PREG_SPLIT_NO_EMPTY); + } + else + { + $email = trim($email); + settype($email, "array"); + } + } + return $email; + } + + // -------------------------------------------------------------------- + + /** + * Set Multipart Value + * + * @access public + * @param string + * @return void + */ + public function set_alt_message($str = '') + { + $this->alt_message = $str; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Mailtype + * + * @access public + * @param string + * @return void + */ + public function set_mailtype($type = 'text') + { + $this->mailtype = ($type == 'html') ? 'html' : 'text'; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Wordwrap + * + * @access public + * @param string + * @return void + */ + public function set_wordwrap($wordwrap = TRUE) + { + $this->wordwrap = ($wordwrap === FALSE) ? FALSE : TRUE; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Protocol + * + * @access public + * @param string + * @return void + */ + public function set_protocol($protocol = 'mail') + { + $this->protocol = ( ! in_array($protocol, $this->_protocols, TRUE)) ? 'mail' : strtolower($protocol); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Priority + * + * @access public + * @param integer + * @return void + */ + public function set_priority($n = 3) + { + if ( ! is_numeric($n)) + { + $this->priority = 3; + return; + } + + if ($n < 1 OR $n > 5) + { + $this->priority = 3; + return; + } + + $this->priority = $n; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Newline Character + * + * @access public + * @param string + * @return void + */ + public function set_newline($newline = "\n") + { + if ($newline != "\n" AND $newline != "\r\n" AND $newline != "\r") + { + $this->newline = "\n"; + return; + } + + $this->newline = $newline; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set CRLF + * + * @access public + * @param string + * @return void + */ + public function set_crlf($crlf = "\n") + { + if ($crlf != "\n" AND $crlf != "\r\n" AND $crlf != "\r") + { + $this->crlf = "\n"; + return; + } + + $this->crlf = $crlf; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Message Boundary + * + * @access protected + * @return void + */ + protected function _set_boundaries() + { + $this->_alt_boundary = "B_ALT_".uniqid(''); // multipart/alternative + $this->_atc_boundary = "B_ATC_".uniqid(''); // attachment boundary + } + + // -------------------------------------------------------------------- + + /** + * Get the Message ID + * + * @access protected + * @return string + */ + protected function _get_message_id() + { + $from = $this->_headers['Return-Path']; + $from = str_replace(">", "", $from); + $from = str_replace("<", "", $from); + + return "<".uniqid('').strstr($from, '@').">"; + } + + // -------------------------------------------------------------------- + + /** + * Get Mail Protocol + * + * @access protected + * @param bool + * @return string + */ + protected function _get_protocol($return = TRUE) + { + $this->protocol = strtolower($this->protocol); + $this->protocol = ( ! in_array($this->protocol, $this->_protocols, TRUE)) ? 'mail' : $this->protocol; + + if ($return == TRUE) + { + return $this->protocol; + } + } + + // -------------------------------------------------------------------- + + /** + * Get Mail Encoding + * + * @access protected + * @param bool + * @return string + */ + protected function _get_encoding($return = TRUE) + { + $this->_encoding = ( ! in_array($this->_encoding, $this->_bit_depths)) ? '8bit' : $this->_encoding; + + foreach ($this->_base_charsets as $charset) + { + if (strncmp($charset, $this->charset, strlen($charset)) == 0) + { + $this->_encoding = '7bit'; + } + } + + if ($return == TRUE) + { + return $this->_encoding; + } + } + + // -------------------------------------------------------------------- + + /** + * Get content type (text/html/attachment) + * + * @access protected + * @return string + */ + protected function _get_content_type() + { + if ($this->mailtype == 'html' && count($this->_attach_name) == 0) + { + return 'html'; + } + elseif ($this->mailtype == 'html' && count($this->_attach_name) > 0) + { + return 'html-attach'; + } + elseif ($this->mailtype == 'text' && count($this->_attach_name) > 0) + { + return 'plain-attach'; + } + else + { + return 'plain'; + } + } + + // -------------------------------------------------------------------- + + /** + * Set RFC 822 Date + * + * @access protected + * @return string + */ + protected function _set_date() + { + $timezone = date("Z"); + $operator = (strncmp($timezone, '-', 1) == 0) ? '-' : '+'; + $timezone = abs($timezone); + $timezone = floor($timezone/3600) * 100 + ($timezone % 3600 ) / 60; + + return sprintf("%s %s%04d", date("D, j M Y H:i:s"), $operator, $timezone); + } + + // -------------------------------------------------------------------- + + /** + * Mime message + * + * @access protected + * @return string + */ + protected function _get_mime_message() + { + return "This is a multi-part message in MIME format.".$this->newline."Your email application may not support this format."; + } + + // -------------------------------------------------------------------- + + /** + * Validate Email Address + * + * @access public + * @param string + * @return bool + */ + public function validate_email($email) + { + if ( ! is_array($email)) + { + $this->_set_error_message('lang:email_must_be_array'); + return FALSE; + } + + foreach ($email as $val) + { + if ( ! $this->valid_email($val)) + { + $this->_set_error_message('lang:email_invalid_address', $val); + return FALSE; + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Email Validation + * + * @access public + * @param string + * @return bool + */ + public function valid_email($address) + { + return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $address)) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Clean Extended Email Address: Joe Smith <joe@smith.com> + * + * @access public + * @param string + * @return string + */ + public function clean_email($email) + { + if ( ! is_array($email)) + { + if (preg_match('/\<(.*)\>/', $email, $match)) + { + return $match['1']; + } + else + { + return $email; + } + } + + $clean_email = array(); + + foreach ($email as $addy) + { + if (preg_match( '/\<(.*)\>/', $addy, $match)) + { + $clean_email[] = $match['1']; + } + else + { + $clean_email[] = $addy; + } + } + + return $clean_email; + } + + // -------------------------------------------------------------------- + + /** + * Build alternative plain text message + * + * This public function provides the raw message for use + * in plain-text headers of HTML-formatted emails. + * If the user hasn't specified his own alternative message + * it creates one by stripping the HTML + * + * @access protected + * @return string + */ + protected function _get_alt_message() + { + if ($this->alt_message != "") + { + return $this->word_wrap($this->alt_message, '76'); + } + + if (preg_match('/\<body.*?\>(.*)\<\/body\>/si', $this->_body, $match)) + { + $body = $match['1']; + } + else + { + $body = $this->_body; + } + + $body = trim(strip_tags($body)); + $body = preg_replace( '#<!--(.*)--\>#', "", $body); + $body = str_replace("\t", "", $body); + + for ($i = 20; $i >= 3; $i--) + { + $n = ""; + + for ($x = 1; $x <= $i; $x ++) + { + $n .= "\n"; + } + + $body = str_replace($n, "\n\n", $body); + } + + return $this->word_wrap($body, '76'); + } + + // -------------------------------------------------------------------- + + /** + * Word Wrap + * + * @access public + * @param string + * @param integer + * @return string + */ + public function word_wrap($str, $charlim = '') + { + // Se the character limit + if ($charlim == '') + { + $charlim = ($this->wrapchars == "") ? "76" : $this->wrapchars; + } + + // Reduce multiple spaces + $str = preg_replace("| +|", " ", $str); + + // Standardize newlines + if (strpos($str, "\r") !== FALSE) + { + $str = str_replace(array("\r\n", "\r"), "\n", $str); + } + + // If the current word is surrounded by {unwrap} tags we'll + // strip the entire chunk and replace it with a marker. + $unwrap = array(); + if (preg_match_all("|(\{unwrap\}.+?\{/unwrap\})|s", $str, $matches)) + { + for ($i = 0; $i < count($matches['0']); $i++) + { + $unwrap[] = $matches['1'][$i]; + $str = str_replace($matches['1'][$i], "{{unwrapped".$i."}}", $str); + } + } + + // Use PHP's native public function to do the initial wordwrap. + // We set the cut flag to FALSE so that any individual words that are + // too long get left alone. In the next step we'll deal with them. + $str = wordwrap($str, $charlim, "\n", FALSE); + + // Split the string into individual lines of text and cycle through them + $output = ""; + foreach (explode("\n", $str) as $line) + { + // Is the line within the allowed character count? + // If so we'll join it to the output and continue + if (strlen($line) <= $charlim) + { + $output .= $line.$this->newline; + continue; + } + + $temp = ''; + while ((strlen($line)) > $charlim) + { + // If the over-length word is a URL we won't wrap it + if (preg_match("!\[url.+\]|://|wwww.!", $line)) + { + break; + } + + // Trim the word down + $temp .= substr($line, 0, $charlim-1); + $line = substr($line, $charlim-1); + } + + // If $temp contains data it means we had to split up an over-length + // word into smaller chunks so we'll add it back to our current line + if ($temp != '') + { + $output .= $temp.$this->newline.$line; + } + else + { + $output .= $line; + } + + $output .= $this->newline; + } + + // Put our markers back + if (count($unwrap) > 0) + { + foreach ($unwrap as $key => $val) + { + $output = str_replace("{{unwrapped".$key."}}", $val, $output); + } + } + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Build final headers + * + * @access protected + * @param string + * @return string + */ + protected function _build_headers() + { + $this->_set_header('X-Sender', $this->clean_email($this->_headers['From'])); + $this->_set_header('X-Mailer', $this->useragent); + $this->_set_header('X-Priority', $this->_priorities[$this->priority - 1]); + $this->_set_header('Message-ID', $this->_get_message_id()); + $this->_set_header('Mime-Version', '1.0'); + } + + // -------------------------------------------------------------------- + + /** + * Write Headers as a string + * + * @access protected + * @return void + */ + protected function _write_headers() + { + if ($this->protocol == 'mail') + { + $this->_subject = $this->_headers['Subject']; + unset($this->_headers['Subject']); + } + + reset($this->_headers); + $this->_header_str = ""; + + foreach ($this->_headers as $key => $val) + { + $val = trim($val); + + if ($val != "") + { + $this->_header_str .= $key.": ".$val.$this->newline; + } + } + + if ($this->_get_protocol() == 'mail') + { + $this->_header_str = rtrim($this->_header_str); + } + } + + // -------------------------------------------------------------------- + + /** + * Build Final Body and attachments + * + * @access protected + * @return void + */ + protected function _build_message() + { + if ($this->wordwrap === TRUE AND $this->mailtype != 'html') + { + $this->_body = $this->word_wrap($this->_body); + } + + $this->_set_boundaries(); + $this->_write_headers(); + + $hdr = ($this->_get_protocol() == 'mail') ? $this->newline : ''; + $body = ''; + + switch ($this->_get_content_type()) + { + case 'plain' : + + $hdr .= "Content-Type: text/plain; charset=" . $this->charset . $this->newline; + $hdr .= "Content-Transfer-Encoding: " . $this->_get_encoding(); + + if ($this->_get_protocol() == 'mail') + { + $this->_header_str .= $hdr; + $this->_finalbody = $this->_body; + } + else + { + $this->_finalbody = $hdr . $this->newline . $this->newline . $this->_body; + } + + return; + + break; + case 'html' : + + if ($this->send_multipart === FALSE) + { + $hdr .= "Content-Type: text/html; charset=" . $this->charset . $this->newline; + $hdr .= "Content-Transfer-Encoding: quoted-printable"; + } + else + { + $hdr .= "Content-Type: multipart/alternative; boundary=\"" . $this->_alt_boundary . "\"" . $this->newline . $this->newline; + + $body .= $this->_get_mime_message() . $this->newline . $this->newline; + $body .= "--" . $this->_alt_boundary . $this->newline; + + $body .= "Content-Type: text/plain; charset=" . $this->charset . $this->newline; + $body .= "Content-Transfer-Encoding: " . $this->_get_encoding() . $this->newline . $this->newline; + $body .= $this->_get_alt_message() . $this->newline . $this->newline . "--" . $this->_alt_boundary . $this->newline; + + $body .= "Content-Type: text/html; charset=" . $this->charset . $this->newline; + $body .= "Content-Transfer-Encoding: quoted-printable" . $this->newline . $this->newline; + } + + $this->_finalbody = $body . $this->_prep_quoted_printable($this->_body) . $this->newline . $this->newline; + + + if ($this->_get_protocol() == 'mail') + { + $this->_header_str .= $hdr; + } + else + { + $this->_finalbody = $hdr . $this->_finalbody; + } + + + if ($this->send_multipart !== FALSE) + { + $this->_finalbody .= "--" . $this->_alt_boundary . "--"; + } + + return; + + break; + case 'plain-attach' : + + $hdr .= "Content-Type: multipart/".$this->multipart."; boundary=\"" . $this->_atc_boundary."\"" . $this->newline . $this->newline; + + if ($this->_get_protocol() == 'mail') + { + $this->_header_str .= $hdr; + } + + $body .= $this->_get_mime_message() . $this->newline . $this->newline; + $body .= "--" . $this->_atc_boundary . $this->newline; + + $body .= "Content-Type: text/plain; charset=" . $this->charset . $this->newline; + $body .= "Content-Transfer-Encoding: " . $this->_get_encoding() . $this->newline . $this->newline; + + $body .= $this->_body . $this->newline . $this->newline; + + break; + case 'html-attach' : + + $hdr .= "Content-Type: multipart/".$this->multipart."; boundary=\"" . $this->_atc_boundary."\"" . $this->newline . $this->newline; + + if ($this->_get_protocol() == 'mail') + { + $this->_header_str .= $hdr; + } + + $body .= $this->_get_mime_message() . $this->newline . $this->newline; + $body .= "--" . $this->_atc_boundary . $this->newline; + + $body .= "Content-Type: multipart/alternative; boundary=\"" . $this->_alt_boundary . "\"" . $this->newline .$this->newline; + $body .= "--" . $this->_alt_boundary . $this->newline; + + $body .= "Content-Type: text/plain; charset=" . $this->charset . $this->newline; + $body .= "Content-Transfer-Encoding: " . $this->_get_encoding() . $this->newline . $this->newline; + $body .= $this->_get_alt_message() . $this->newline . $this->newline . "--" . $this->_alt_boundary . $this->newline; + + $body .= "Content-Type: text/html; charset=" . $this->charset . $this->newline; + $body .= "Content-Transfer-Encoding: quoted-printable" . $this->newline . $this->newline; + + $body .= $this->_prep_quoted_printable($this->_body) . $this->newline . $this->newline; + $body .= "--" . $this->_alt_boundary . "--" . $this->newline . $this->newline; + + break; + } + + $attachment = array(); + + $z = 0; + + for ($i=0; $i < count($this->_attach_name); $i++) + { + $filename = $this->_attach_name[$i]; + $basename = basename($filename); + $ctype = $this->_attach_type[$i]; + + if ( ! file_exists($filename)) + { + $this->_set_error_message('lang:email_attachment_missing', $filename); + return FALSE; + } + + $h = "--".$this->_atc_boundary.$this->newline; + $h .= "Content-type: ".$ctype."; "; + $h .= "name=\"".$basename."\"".$this->newline; + $h .= "Content-Disposition: ".$this->_attach_disp[$i].";".$this->newline; + $h .= "Content-Transfer-Encoding: base64".$this->newline; + + $attachment[$z++] = $h; + $file = filesize($filename) +1; + + if ( ! $fp = fopen($filename, FOPEN_READ)) + { + $this->_set_error_message('lang:email_attachment_unreadable', $filename); + return FALSE; + } + + $attachment[$z++] = chunk_split(base64_encode(fread($fp, $file))); + fclose($fp); + } + + $body .= implode($this->newline, $attachment).$this->newline."--".$this->_atc_boundary."--"; + + + if ($this->_get_protocol() == 'mail') + { + $this->_finalbody = $body; + } + else + { + $this->_finalbody = $hdr . $body; + } + + return; + } + + // -------------------------------------------------------------------- + + /** + * Prep Quoted Printable + * + * Prepares string for Quoted-Printable Content-Transfer-Encoding + * Refer to RFC 2045 http://www.ietf.org/rfc/rfc2045.txt + * + * @access protected + * @param string + * @param integer + * @return string + */ + protected function _prep_quoted_printable($str, $charlim = '') + { + // Set the character limit + // Don't allow over 76, as that will make servers and MUAs barf + // all over quoted-printable data + if ($charlim == '' OR $charlim > '76') + { + $charlim = '76'; + } + + // Reduce multiple spaces + $str = preg_replace("| +|", " ", $str); + + // kill nulls + $str = preg_replace('/\x00+/', '', $str); + + // Standardize newlines + if (strpos($str, "\r") !== FALSE) + { + $str = str_replace(array("\r\n", "\r"), "\n", $str); + } + + // We are intentionally wrapping so mail servers will encode characters + // properly and MUAs will behave, so {unwrap} must go! + $str = str_replace(array('{unwrap}', '{/unwrap}'), '', $str); + + // Break into an array of lines + $lines = explode("\n", $str); + + $escape = '='; + $output = ''; + + foreach ($lines as $line) + { + $length = strlen($line); + $temp = ''; + + // Loop through each character in the line to add soft-wrap + // characters at the end of a line " =\r\n" and add the newly + // processed line(s) to the output (see comment on $crlf class property) + for ($i = 0; $i < $length; $i++) + { + // Grab the next character + $char = substr($line, $i, 1); + $ascii = ord($char); + + // Convert spaces and tabs but only if it's the end of the line + if ($i == ($length - 1)) + { + $char = ($ascii == '32' OR $ascii == '9') ? $escape.sprintf('%02s', dechex($ascii)) : $char; + } + + // encode = signs + if ($ascii == '61') + { + $char = $escape.strtoupper(sprintf('%02s', dechex($ascii))); // =3D + } + + // If we're at the character limit, add the line to the output, + // reset our temp variable, and keep on chuggin' + if ((strlen($temp) + strlen($char)) >= $charlim) + { + $output .= $temp.$escape.$this->crlf; + $temp = ''; + } + + // Add the character to our temporary line + $temp .= $char; + } + + // Add our completed line to the output + $output .= $temp.$this->crlf; + } + + // get rid of extra CRLF tacked onto the end + $output = substr($output, 0, strlen($this->crlf) * -1); + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Prep Q Encoding + * + * Performs "Q Encoding" on a string for use in email headers. It's related + * but not identical to quoted-printable, so it has its own method + * + * @access public + * @param str + * @param bool // set to TRUE for processing From: headers + * @return str + */ + protected function _prep_q_encoding($str, $from = FALSE) + { + $str = str_replace(array("\r", "\n"), array('', ''), $str); + + // Line length must not exceed 76 characters, so we adjust for + // a space, 7 extra characters =??Q??=, and the charset that we will add to each line + $limit = 75 - 7 - strlen($this->charset); + + // these special characters must be converted too + $convert = array('_', '=', '?'); + + if ($from === TRUE) + { + $convert[] = ','; + $convert[] = ';'; + } + + $output = ''; + $temp = ''; + + for ($i = 0, $length = strlen($str); $i < $length; $i++) + { + // Grab the next character + $char = substr($str, $i, 1); + $ascii = ord($char); + + // convert ALL non-printable ASCII characters and our specials + if ($ascii < 32 OR $ascii > 126 OR in_array($char, $convert)) + { + $char = '='.dechex($ascii); + } + + // handle regular spaces a bit more compactly than =20 + if ($ascii == 32) + { + $char = '_'; + } + + // If we're at the character limit, add the line to the output, + // reset our temp variable, and keep on chuggin' + if ((strlen($temp) + strlen($char)) >= $limit) + { + $output .= $temp.$this->crlf; + $temp = ''; + } + + // Add the character to our temporary line + $temp .= $char; + } + + $str = $output.$temp; + + // wrap each line with the shebang, charset, and transfer encoding + // the preceding space on successive lines is required for header "folding" + $str = trim(preg_replace('/^(.*)$/m', ' =?'.$this->charset.'?Q?$1?=', $str)); + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Send Email + * + * @access public + * @return bool + */ + public function send() + { + if ($this->_replyto_flag == FALSE) + { + $this->reply_to($this->_headers['From']); + } + + if (( ! isset($this->_recipients) AND ! isset($this->_headers['To'])) AND + ( ! isset($this->_bcc_array) AND ! isset($this->_headers['Bcc'])) AND + ( ! isset($this->_headers['Cc']))) + { + $this->_set_error_message('lang:email_no_recipients'); + return FALSE; + } + + $this->_build_headers(); + + if ($this->bcc_batch_mode AND count($this->_bcc_array) > 0) + { + if (count($this->_bcc_array) > $this->bcc_batch_size) + return $this->batch_bcc_send(); + } + + $this->_build_message(); + + if ( ! $this->_spool_email()) + { + return FALSE; + } + else + { + return TRUE; + } + } + + // -------------------------------------------------------------------- + + /** + * Batch Bcc Send. Sends groups of BCCs in batches + * + * @access public + * @return bool + */ + public function batch_bcc_send() + { + $float = $this->bcc_batch_size -1; + + $set = ""; + + $chunk = array(); + + for ($i = 0; $i < count($this->_bcc_array); $i++) + { + if (isset($this->_bcc_array[$i])) + { + $set .= ", ".$this->_bcc_array[$i]; + } + + if ($i == $float) + { + $chunk[] = substr($set, 1); + $float = $float + $this->bcc_batch_size; + $set = ""; + } + + if ($i == count($this->_bcc_array)-1) + { + $chunk[] = substr($set, 1); + } + } + + for ($i = 0; $i < count($chunk); $i++) + { + unset($this->_headers['Bcc']); + unset($bcc); + + $bcc = $this->_str_to_array($chunk[$i]); + $bcc = $this->clean_email($bcc); + + if ($this->protocol != 'smtp') + { + $this->_set_header('Bcc', implode(", ", $bcc)); + } + else + { + $this->_bcc_array = $bcc; + } + + $this->_build_message(); + $this->_spool_email(); + } + } + + // -------------------------------------------------------------------- + + /** + * Unwrap special elements + * + * @access protected + * @return void + */ + protected function _unwrap_specials() + { + $this->_finalbody = preg_replace_callback("/\{unwrap\}(.*?)\{\/unwrap\}/si", array($this, '_remove_nl_callback'), $this->_finalbody); + } + + // -------------------------------------------------------------------- + + /** + * Strip line-breaks via callback + * + * @access protected + * @return string + */ + protected function _remove_nl_callback($matches) + { + if (strpos($matches[1], "\r") !== FALSE OR strpos($matches[1], "\n") !== FALSE) + { + $matches[1] = str_replace(array("\r\n", "\r", "\n"), '', $matches[1]); + } + + return $matches[1]; + } + + // -------------------------------------------------------------------- + + /** + * Spool mail to the mail server + * + * @access protected + * @return bool + */ + protected function _spool_email() + { + $this->_unwrap_specials(); + + switch ($this->_get_protocol()) + { + case 'mail' : + + if ( ! $this->_send_with_mail()) + { + $this->_set_error_message('lang:email_send_failure_phpmail'); + return FALSE; + } + break; + case 'sendmail' : + + if ( ! $this->_send_with_sendmail()) + { + $this->_set_error_message('lang:email_send_failure_sendmail'); + return FALSE; + } + break; + case 'smtp' : + + if ( ! $this->_send_with_smtp()) + { + $this->_set_error_message('lang:email_send_failure_smtp'); + return FALSE; + } + break; + + } + + $this->_set_error_message('lang:email_sent', $this->_get_protocol()); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Send using mail() + * + * @access protected + * @return bool + */ + protected function _send_with_mail() + { + if ($this->_safe_mode == TRUE) + { + if ( ! mail($this->_recipients, $this->_subject, $this->_finalbody, $this->_header_str)) + { + return FALSE; + } + else + { + return TRUE; + } + } + else + { + // most documentation of sendmail using the "-f" flag lacks a space after it, however + // we've encountered servers that seem to require it to be in place. + + if ( ! mail($this->_recipients, $this->_subject, $this->_finalbody, $this->_header_str, "-f ".$this->clean_email($this->_headers['From']))) + { + return FALSE; + } + else + { + return TRUE; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Send using Sendmail + * + * @access protected + * @return bool + */ + protected function _send_with_sendmail() + { + $fp = @popen($this->mailpath . " -oi -f ".$this->clean_email($this->_headers['From'])." -t", 'w'); + + if ($fp === FALSE OR $fp === NULL) + { + // server probably has popen disabled, so nothing we can do to get a verbose error. + return FALSE; + } + + fputs($fp, $this->_header_str); + fputs($fp, $this->_finalbody); + + $status = pclose($fp); + + if (version_compare(PHP_VERSION, '4.2.3') == -1) + { + $status = $status >> 8 & 0xFF; + } + + if ($status != 0) + { + $this->_set_error_message('lang:email_exit_status', $status); + $this->_set_error_message('lang:email_no_socket'); + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Send using SMTP + * + * @access protected + * @return bool + */ + protected function _send_with_smtp() + { + if ($this->smtp_host == '') + { + $this->_set_error_message('lang:email_no_hostname'); + return FALSE; + } + + $this->_smtp_connect(); + $this->_smtp_authenticate(); + + $this->_send_command('from', $this->clean_email($this->_headers['From'])); + + foreach ($this->_recipients as $val) + { + $this->_send_command('to', $val); + } + + if (count($this->_cc_array) > 0) + { + foreach ($this->_cc_array as $val) + { + if ($val != "") + { + $this->_send_command('to', $val); + } + } + } + + if (count($this->_bcc_array) > 0) + { + foreach ($this->_bcc_array as $val) + { + if ($val != "") + { + $this->_send_command('to', $val); + } + } + } + + $this->_send_command('data'); + + // perform dot transformation on any lines that begin with a dot + $this->_send_data($this->_header_str . preg_replace('/^\./m', '..$1', $this->_finalbody)); + + $this->_send_data('.'); + + $reply = $this->_get_smtp_data(); + + $this->_set_error_message($reply); + + if (strncmp($reply, '250', 3) != 0) + { + $this->_set_error_message('lang:email_smtp_error', $reply); + return FALSE; + } + + $this->_send_command('quit'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * SMTP Connect + * + * @access protected + * @param string + * @return string + */ + protected function _smtp_connect() + { + $ssl = NULL; + if ($this->smtp_crypto == 'ssl') + $ssl = 'ssl://'; + $this->_smtp_connect = fsockopen($ssl.$this->smtp_host, + $this->smtp_port, + $errno, + $errstr, + $this->smtp_timeout); + + if ( ! is_resource($this->_smtp_connect)) + { + $this->_set_error_message('lang:email_smtp_error', $errno." ".$errstr); + return FALSE; + } + + $this->_set_error_message($this->_get_smtp_data()); + + if ($this->smtp_crypto == 'tls') + { + $this->_send_command('hello'); + $this->_send_command('starttls'); + stream_socket_enable_crypto($this->_smtp_connect, TRUE, STREAM_CRYPTO_METHOD_TLS_CLIENT); + } + + return $this->_send_command('hello'); + } + + // -------------------------------------------------------------------- + + /** + * Send SMTP command + * + * @access protected + * @param string + * @param string + * @return string + */ + protected function _send_command($cmd, $data = '') + { + switch ($cmd) + { + case 'hello' : + + if ($this->_smtp_auth OR $this->_get_encoding() == '8bit') + $this->_send_data('EHLO '.$this->_get_hostname()); + else + $this->_send_data('HELO '.$this->_get_hostname()); + + $resp = 250; + break; + case 'starttls' : + + $this->_send_data('STARTTLS'); + + $resp = 220; + break; + case 'from' : + + $this->_send_data('MAIL FROM:<'.$data.'>'); + + $resp = 250; + break; + case 'to' : + + $this->_send_data('RCPT TO:<'.$data.'>'); + + $resp = 250; + break; + case 'data' : + + $this->_send_data('DATA'); + + $resp = 354; + break; + case 'quit' : + + $this->_send_data('QUIT'); + + $resp = 221; + break; + } + + $reply = $this->_get_smtp_data(); + + $this->_debug_msg[] = "<pre>".$cmd.": ".$reply."</pre>"; + + if (substr($reply, 0, 3) != $resp) + { + $this->_set_error_message('lang:email_smtp_error', $reply); + return FALSE; + } + + if ($cmd == 'quit') + { + fclose($this->_smtp_connect); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * SMTP Authenticate + * + * @access protected + * @return bool + */ + protected function _smtp_authenticate() + { + if ( ! $this->_smtp_auth) + { + return TRUE; + } + + if ($this->smtp_user == "" AND $this->smtp_pass == "") + { + $this->_set_error_message('lang:email_no_smtp_unpw'); + return FALSE; + } + + $this->_send_data('AUTH LOGIN'); + + $reply = $this->_get_smtp_data(); + + if (strncmp($reply, '334', 3) != 0) + { + $this->_set_error_message('lang:email_failed_smtp_login', $reply); + return FALSE; + } + + $this->_send_data(base64_encode($this->smtp_user)); + + $reply = $this->_get_smtp_data(); + + if (strncmp($reply, '334', 3) != 0) + { + $this->_set_error_message('lang:email_smtp_auth_un', $reply); + return FALSE; + } + + $this->_send_data(base64_encode($this->smtp_pass)); + + $reply = $this->_get_smtp_data(); + + if (strncmp($reply, '235', 3) != 0) + { + $this->_set_error_message('lang:email_smtp_auth_pw', $reply); + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Send SMTP data + * + * @access protected + * @return bool + */ + protected function _send_data($data) + { + if ( ! fwrite($this->_smtp_connect, $data . $this->newline)) + { + $this->_set_error_message('lang:email_smtp_data_failure', $data); + return FALSE; + } + else + { + return TRUE; + } + } + + // -------------------------------------------------------------------- + + /** + * Get SMTP data + * + * @access protected + * @return string + */ + protected function _get_smtp_data() + { + $data = ""; + + while ($str = fgets($this->_smtp_connect, 512)) + { + $data .= $str; + + if (substr($str, 3, 1) == " ") + { + break; + } + } + + return $data; + } + + // -------------------------------------------------------------------- + + /** + * Get Hostname + * + * @access protected + * @return string + */ + protected function _get_hostname() + { + return (isset($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : 'localhost.localdomain'; + } + + // -------------------------------------------------------------------- + + /** + * Get IP + * + * @access protected + * @return string + */ + protected function _get_ip() + { + if ($this->_IP !== FALSE) + { + return $this->_IP; + } + + $cip = (isset($_SERVER['HTTP_CLIENT_IP']) AND $_SERVER['HTTP_CLIENT_IP'] != "") ? $_SERVER['HTTP_CLIENT_IP'] : FALSE; + $rip = (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR'] != "") ? $_SERVER['REMOTE_ADDR'] : FALSE; + $fip = (isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND $_SERVER['HTTP_X_FORWARDED_FOR'] != "") ? $_SERVER['HTTP_X_FORWARDED_FOR'] : FALSE; + + if ($cip && $rip) $this->_IP = $cip; + elseif ($rip) $this->_IP = $rip; + elseif ($cip) $this->_IP = $cip; + elseif ($fip) $this->_IP = $fip; + + if (strpos($this->_IP, ',') !== FALSE) + { + $x = explode(',', $this->_IP); + $this->_IP = end($x); + } + + if ( ! preg_match( "/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/", $this->_IP)) + { + $this->_IP = '0.0.0.0'; + } + + unset($cip); + unset($rip); + unset($fip); + + return $this->_IP; + } + + // -------------------------------------------------------------------- + + /** + * Get Debug Message + * + * @access public + * @return string + */ + public function print_debugger() + { + $msg = ''; + + if (count($this->_debug_msg) > 0) + { + foreach ($this->_debug_msg as $val) + { + $msg .= $val; + } + } + + $msg .= "<pre>".htmlspecialchars($this->_header_str)."\n".htmlspecialchars($this->_subject)."\n".htmlspecialchars($this->_finalbody).'</pre>'; + return $msg; + } + + // -------------------------------------------------------------------- + + /** + * Set Message + * + * @access protected + * @param string + * @return string + */ + protected function _set_error_message($msg, $val = '') + { + $CI =& get_instance(); + $CI->lang->load('email'); + + if (substr($msg, 0, 5) != 'lang:' || FALSE === ($line = $CI->lang->line(substr($msg, 5)))) + { + $this->_debug_msg[] = str_replace('%s', $val, $msg)."<br />"; + } + else + { + $this->_debug_msg[] = str_replace('%s', $val, $line)."<br />"; + } + } + + // -------------------------------------------------------------------- + + /** + * Mime Types + * + * @access protected + * @param string + * @return string + */ + protected function _mime_types($ext = "") + { + $mimes = array( 'hqx' => 'application/mac-binhex40', + 'cpt' => 'application/mac-compactpro', + 'doc' => 'application/msword', + 'bin' => 'application/macbinary', + 'dms' => 'application/octet-stream', + 'lha' => 'application/octet-stream', + 'lzh' => 'application/octet-stream', + 'exe' => 'application/octet-stream', + 'class' => 'application/octet-stream', + 'psd' => 'application/octet-stream', + 'so' => 'application/octet-stream', + 'sea' => 'application/octet-stream', + 'dll' => 'application/octet-stream', + 'oda' => 'application/oda', + 'pdf' => 'application/pdf', + 'ai' => 'application/postscript', + 'eps' => 'application/postscript', + 'ps' => 'application/postscript', + 'smi' => 'application/smil', + 'smil' => 'application/smil', + 'mif' => 'application/vnd.mif', + 'xls' => 'application/vnd.ms-excel', + 'ppt' => 'application/vnd.ms-powerpoint', + 'wbxml' => 'application/vnd.wap.wbxml', + 'wmlc' => 'application/vnd.wap.wmlc', + 'dcr' => 'application/x-director', + 'dir' => 'application/x-director', + 'dxr' => 'application/x-director', + 'dvi' => 'application/x-dvi', + 'gtar' => 'application/x-gtar', + 'php' => 'application/x-httpd-php', + 'php4' => 'application/x-httpd-php', + 'php3' => 'application/x-httpd-php', + 'phtml' => 'application/x-httpd-php', + 'phps' => 'application/x-httpd-php-source', + 'js' => 'application/x-javascript', + 'swf' => 'application/x-shockwave-flash', + 'sit' => 'application/x-stuffit', + 'tar' => 'application/x-tar', + 'tgz' => 'application/x-tar', + 'xhtml' => 'application/xhtml+xml', + 'xht' => 'application/xhtml+xml', + 'zip' => 'application/zip', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mpga' => 'audio/mpeg', + 'mp2' => 'audio/mpeg', + 'mp3' => 'audio/mpeg', + 'aif' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'ram' => 'audio/x-pn-realaudio', + 'rm' => 'audio/x-pn-realaudio', + 'rpm' => 'audio/x-pn-realaudio-plugin', + 'ra' => 'audio/x-realaudio', + 'rv' => 'video/vnd.rn-realvideo', + 'wav' => 'audio/x-wav', + 'bmp' => 'image/bmp', + 'gif' => 'image/gif', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'jpe' => 'image/jpeg', + 'png' => 'image/png', + 'tiff' => 'image/tiff', + 'tif' => 'image/tiff', + 'css' => 'text/css', + 'html' => 'text/html', + 'htm' => 'text/html', + 'shtml' => 'text/html', + 'txt' => 'text/plain', + 'text' => 'text/plain', + 'log' => 'text/plain', + 'rtx' => 'text/richtext', + 'rtf' => 'text/rtf', + 'xml' => 'text/xml', + 'xsl' => 'text/xml', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpe' => 'video/mpeg', + 'qt' => 'video/quicktime', + 'mov' => 'video/quicktime', + 'avi' => 'video/x-msvideo', + 'movie' => 'video/x-sgi-movie', + 'doc' => 'application/msword', + 'word' => 'application/msword', + 'xl' => 'application/excel', + 'eml' => 'message/rfc822' + ); + + return ( ! isset($mimes[strtolower($ext)])) ? "application/x-unknown-content-type" : $mimes[strtolower($ext)]; + } + +} +// END CI_Email class + +/* End of file Email.php */ +/* Location: ./system/libraries/Email.php */ diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php new file mode 100755 index 0000000..b30a8cf --- /dev/null +++ b/system/libraries/Encrypt.php @@ -0,0 +1,547 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Encryption Class + * + * Provides two-way keyed encoding using XOR Hashing and Mcrypt + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/encryption.html + */ +class CI_Encrypt { + + var $CI; + var $encryption_key = ''; + var $_hash_type = 'sha1'; + var $_mcrypt_exists = FALSE; + var $_mcrypt_cipher; + var $_mcrypt_mode; + + /** + * Constructor + * + * Simply determines whether the mcrypt library exists. + * + */ + public function __construct() + { + $this->CI =& get_instance(); + $this->_mcrypt_exists = ( ! function_exists('mcrypt_encrypt')) ? FALSE : TRUE; + log_message('debug', "Encrypt Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Fetch the encryption key + * + * Returns it as MD5 in order to have an exact-length 128 bit key. + * Mcrypt is sensitive to keys that are not the correct length + * + * @access public + * @param string + * @return string + */ + function get_key($key = '') + { + if ($key == '') + { + if ($this->encryption_key != '') + { + return $this->encryption_key; + } + + $CI =& get_instance(); + $key = $CI->config->item('encryption_key'); + + if ($key == FALSE) + { + show_error('In order to use the encryption class requires that you set an encryption key in your config file.'); + } + } + + return md5($key); + } + + // -------------------------------------------------------------------- + + /** + * Set the encryption key + * + * @access public + * @param string + * @return void + */ + function set_key($key = '') + { + $this->encryption_key = $key; + } + + // -------------------------------------------------------------------- + + /** + * Encode + * + * Encodes the message string using bitwise XOR encoding. + * The key is combined with a random hash, and then it + * too gets converted using XOR. The whole thing is then run + * through mcrypt (if supported) using the randomized key. + * The end result is a double-encrypted message string + * that is randomized with each call to this function, + * even if the supplied message and key are the same. + * + * @access public + * @param string the string to encode + * @param string the key + * @return string + */ + function encode($string, $key = '') + { + $key = $this->get_key($key); + + if ($this->_mcrypt_exists === TRUE) + { + $enc = $this->mcrypt_encode($string, $key); + } + else + { + $enc = $this->_xor_encode($string, $key); + } + + return base64_encode($enc); + } + + // -------------------------------------------------------------------- + + /** + * Decode + * + * Reverses the above process + * + * @access public + * @param string + * @param string + * @return string + */ + function decode($string, $key = '') + { + $key = $this->get_key($key); + + if (preg_match('/[^a-zA-Z0-9\/\+=]/', $string)) + { + return FALSE; + } + + $dec = base64_decode($string); + + if ($this->_mcrypt_exists === TRUE) + { + if (($dec = $this->mcrypt_decode($dec, $key)) === FALSE) + { + return FALSE; + } + } + else + { + $dec = $this->_xor_decode($dec, $key); + } + + return $dec; + } + + // -------------------------------------------------------------------- + + /** + * Encode from Legacy + * + * Takes an encoded string from the original Encryption class algorithms and + * returns a newly encoded string using the improved method added in 2.0.0 + * This allows for backwards compatibility and a method to transition to the + * new encryption algorithms. + * + * For more details, see http://codeigniter.com/user_guide/installation/upgrade_200.html#encryption + * + * @access public + * @param string + * @param int (mcrypt mode constant) + * @param string + * @return string + */ + function encode_from_legacy($string, $legacy_mode = MCRYPT_MODE_ECB, $key = '') + { + if ($this->_mcrypt_exists === FALSE) + { + log_message('error', 'Encoding from legacy is available only when Mcrypt is in use.'); + return FALSE; + } + + // decode it first + // set mode temporarily to what it was when string was encoded with the legacy + // algorithm - typically MCRYPT_MODE_ECB + $current_mode = $this->_get_mode(); + $this->set_mode($legacy_mode); + + $key = $this->get_key($key); + + if (preg_match('/[^a-zA-Z0-9\/\+=]/', $string)) + { + return FALSE; + } + + $dec = base64_decode($string); + + if (($dec = $this->mcrypt_decode($dec, $key)) === FALSE) + { + return FALSE; + } + + $dec = $this->_xor_decode($dec, $key); + + // set the mcrypt mode back to what it should be, typically MCRYPT_MODE_CBC + $this->set_mode($current_mode); + + // and re-encode + return base64_encode($this->mcrypt_encode($dec, $key)); + } + + // -------------------------------------------------------------------- + + /** + * XOR Encode + * + * Takes a plain-text string and key as input and generates an + * encoded bit-string using XOR + * + * @access private + * @param string + * @param string + * @return string + */ + function _xor_encode($string, $key) + { + $rand = ''; + while (strlen($rand) < 32) + { + $rand .= mt_rand(0, mt_getrandmax()); + } + + $rand = $this->hash($rand); + + $enc = ''; + for ($i = 0; $i < strlen($string); $i++) + { + $enc .= substr($rand, ($i % strlen($rand)), 1).(substr($rand, ($i % strlen($rand)), 1) ^ substr($string, $i, 1)); + } + + return $this->_xor_merge($enc, $key); + } + + // -------------------------------------------------------------------- + + /** + * XOR Decode + * + * Takes an encoded string and key as input and generates the + * plain-text original message + * + * @access private + * @param string + * @param string + * @return string + */ + function _xor_decode($string, $key) + { + $string = $this->_xor_merge($string, $key); + + $dec = ''; + for ($i = 0; $i < strlen($string); $i++) + { + $dec .= (substr($string, $i++, 1) ^ substr($string, $i, 1)); + } + + return $dec; + } + + // -------------------------------------------------------------------- + + /** + * XOR key + string Combiner + * + * Takes a string and key as input and computes the difference using XOR + * + * @access private + * @param string + * @param string + * @return string + */ + function _xor_merge($string, $key) + { + $hash = $this->hash($key); + $str = ''; + for ($i = 0; $i < strlen($string); $i++) + { + $str .= substr($string, $i, 1) ^ substr($hash, ($i % strlen($hash)), 1); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Encrypt using Mcrypt + * + * @access public + * @param string + * @param string + * @return string + */ + function mcrypt_encode($data, $key) + { + $init_size = mcrypt_get_iv_size($this->_get_cipher(), $this->_get_mode()); + $init_vect = mcrypt_create_iv($init_size, MCRYPT_RAND); + return $this->_add_cipher_noise($init_vect.mcrypt_encrypt($this->_get_cipher(), $key, $data, $this->_get_mode(), $init_vect), $key); + } + + // -------------------------------------------------------------------- + + /** + * Decrypt using Mcrypt + * + * @access public + * @param string + * @param string + * @return string + */ + function mcrypt_decode($data, $key) + { + $data = $this->_remove_cipher_noise($data, $key); + $init_size = mcrypt_get_iv_size($this->_get_cipher(), $this->_get_mode()); + + if ($init_size > strlen($data)) + { + return FALSE; + } + + $init_vect = substr($data, 0, $init_size); + $data = substr($data, $init_size); + return rtrim(mcrypt_decrypt($this->_get_cipher(), $key, $data, $this->_get_mode(), $init_vect), "\0"); + } + + // -------------------------------------------------------------------- + + /** + * Adds permuted noise to the IV + encrypted data to protect + * against Man-in-the-middle attacks on CBC mode ciphers + * http://www.ciphersbyritter.com/GLOSSARY.HTM#IV + * + * Function description + * + * @access private + * @param string + * @param string + * @return string + */ + function _add_cipher_noise($data, $key) + { + $keyhash = $this->hash($key); + $keylen = strlen($keyhash); + $str = ''; + + for ($i = 0, $j = 0, $len = strlen($data); $i < $len; ++$i, ++$j) + { + if ($j >= $keylen) + { + $j = 0; + } + + $str .= chr((ord($data[$i]) + ord($keyhash[$j])) % 256); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Removes permuted noise from the IV + encrypted data, reversing + * _add_cipher_noise() + * + * Function description + * + * @access public + * @param type + * @return type + */ + function _remove_cipher_noise($data, $key) + { + $keyhash = $this->hash($key); + $keylen = strlen($keyhash); + $str = ''; + + for ($i = 0, $j = 0, $len = strlen($data); $i < $len; ++$i, ++$j) + { + if ($j >= $keylen) + { + $j = 0; + } + + $temp = ord($data[$i]) - ord($keyhash[$j]); + + if ($temp < 0) + { + $temp = $temp + 256; + } + + $str .= chr($temp); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Set the Mcrypt Cipher + * + * @access public + * @param constant + * @return string + */ + function set_cipher($cipher) + { + $this->_mcrypt_cipher = $cipher; + } + + // -------------------------------------------------------------------- + + /** + * Set the Mcrypt Mode + * + * @access public + * @param constant + * @return string + */ + function set_mode($mode) + { + $this->_mcrypt_mode = $mode; + } + + // -------------------------------------------------------------------- + + /** + * Get Mcrypt cipher Value + * + * @access private + * @return string + */ + function _get_cipher() + { + if ($this->_mcrypt_cipher == '') + { + $this->_mcrypt_cipher = MCRYPT_RIJNDAEL_256; + } + + return $this->_mcrypt_cipher; + } + + // -------------------------------------------------------------------- + + /** + * Get Mcrypt Mode Value + * + * @access private + * @return string + */ + function _get_mode() + { + if ($this->_mcrypt_mode == '') + { + $this->_mcrypt_mode = MCRYPT_MODE_CBC; + } + + return $this->_mcrypt_mode; + } + + // -------------------------------------------------------------------- + + /** + * Set the Hash type + * + * @access public + * @param string + * @return string + */ + function set_hash($type = 'sha1') + { + $this->_hash_type = ($type != 'sha1' AND $type != 'md5') ? 'sha1' : $type; + } + + // -------------------------------------------------------------------- + + /** + * Hash encode a string + * + * @access public + * @param string + * @return string + */ + function hash($str) + { + return ($this->_hash_type == 'sha1') ? $this->sha1($str) : md5($str); + } + + // -------------------------------------------------------------------- + + /** + * Generate an SHA1 Hash + * + * @access public + * @param string + * @return string + */ + function sha1($str) + { + if ( ! function_exists('sha1')) + { + if ( ! function_exists('mhash')) + { + require_once(BASEPATH.'libraries/Sha1.php'); + $SH = new CI_SHA; + return $SH->generate($str); + } + else + { + return bin2hex(mhash(MHASH_SHA1, $str)); + } + } + else + { + return sha1($str); + } + } + +} + +// END CI_Encrypt class + +/* End of file Encrypt.php */ +/* Location: ./system/libraries/Encrypt.php */ \ No newline at end of file diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php new file mode 100755 index 0000000..9aab5da --- /dev/null +++ b/system/libraries/Form_validation.php @@ -0,0 +1,1382 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Form Validation Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Validation + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/form_validation.html + */ +class CI_Form_validation { + + protected $CI; + protected $_field_data = array(); + protected $_config_rules = array(); + protected $_error_array = array(); + protected $_error_messages = array(); + protected $_error_prefix = '<p>'; + protected $_error_suffix = '</p>'; + protected $error_string = ''; + protected $_safe_form_data = FALSE; + + /** + * Constructor + */ + public function __construct($rules = array()) + { + $this->CI =& get_instance(); + + // Validation rules can be stored in a config file. + $this->_config_rules = $rules; + + // Automatically load the form helper + $this->CI->load->helper('form'); + + // Set the character encoding in MB. + if (function_exists('mb_internal_encoding')) + { + mb_internal_encoding($this->CI->config->item('charset')); + } + + log_message('debug', "Form Validation Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Set Rules + * + * This function takes an array of field names and validation + * rules as input, validates the info, and stores it + * + * @access public + * @param mixed + * @param string + * @return void + */ + public function set_rules($field, $label = '', $rules = '') + { + // No reason to set rules if we have no POST data + if (count($_POST) == 0) + { + return $this; + } + + // If an array was passed via the first parameter instead of indidual string + // values we cycle through it and recursively call this function. + if (is_array($field)) + { + foreach ($field as $row) + { + // Houston, we have a problem... + if ( ! isset($row['field']) OR ! isset($row['rules'])) + { + continue; + } + + // If the field label wasn't passed we use the field name + $label = ( ! isset($row['label'])) ? $row['field'] : $row['label']; + + // Here we go! + $this->set_rules($row['field'], $label, $row['rules']); + } + return $this; + } + + // No fields? Nothing to do... + if ( ! is_string($field) OR ! is_string($rules) OR $field == '') + { + return $this; + } + + // If the field label wasn't passed we use the field name + $label = ($label == '') ? $field : $label; + + // Is the field name an array? We test for the existence of a bracket "[" in + // the field name to determine this. If it is an array, we break it apart + // into its components so that we can fetch the corresponding POST data later + if (strpos($field, '[') !== FALSE AND preg_match_all('/\[(.*?)\]/', $field, $matches)) + { + // Note: Due to a bug in current() that affects some versions + // of PHP we can not pass function call directly into it + $x = explode('[', $field); + $indexes[] = current($x); + + for ($i = 0; $i < count($matches['0']); $i++) + { + if ($matches['1'][$i] != '') + { + $indexes[] = $matches['1'][$i]; + } + } + + $is_array = TRUE; + } + else + { + $indexes = array(); + $is_array = FALSE; + } + + // Build our master array + $this->_field_data[$field] = array( + 'field' => $field, + 'label' => $label, + 'rules' => $rules, + 'is_array' => $is_array, + 'keys' => $indexes, + 'postdata' => NULL, + 'error' => '' + ); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Error Message + * + * Lets users set their own error messages on the fly. Note: The key + * name has to match the function name that it corresponds to. + * + * @access public + * @param string + * @param string + * @return string + */ + public function set_message($lang, $val = '') + { + if ( ! is_array($lang)) + { + $lang = array($lang => $val); + } + + $this->_error_messages = array_merge($this->_error_messages, $lang); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set The Error Delimiter + * + * Permits a prefix/suffix to be added to each error message + * + * @access public + * @param string + * @param string + * @return void + */ + public function set_error_delimiters($prefix = '<p>', $suffix = '</p>') + { + $this->_error_prefix = $prefix; + $this->_error_suffix = $suffix; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Get Error Message + * + * Gets the error message associated with a particular field + * + * @access public + * @param string the field name + * @return void + */ + public function error($field = '', $prefix = '', $suffix = '') + { + if ( ! isset($this->_field_data[$field]['error']) OR $this->_field_data[$field]['error'] == '') + { + return ''; + } + + if ($prefix == '') + { + $prefix = $this->_error_prefix; + } + + if ($suffix == '') + { + $suffix = $this->_error_suffix; + } + + return $prefix.$this->_field_data[$field]['error'].$suffix; + } + + // -------------------------------------------------------------------- + + /** + * Error String + * + * Returns the error messages as a string, wrapped in the error delimiters + * + * @access public + * @param string + * @param string + * @return str + */ + public function error_string($prefix = '', $suffix = '') + { + // No errrors, validation passes! + if (count($this->_error_array) === 0) + { + return ''; + } + + if ($prefix == '') + { + $prefix = $this->_error_prefix; + } + + if ($suffix == '') + { + $suffix = $this->_error_suffix; + } + + // Generate the error string + $str = ''; + foreach ($this->_error_array as $val) + { + if ($val != '') + { + $str .= $prefix.$val.$suffix."\n"; + } + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Run the Validator + * + * This function does all the work. + * + * @access public + * @return bool + */ + public function run($group = '') + { + // Do we even have any data to process? Mm? + if (count($_POST) == 0) + { + return FALSE; + } + + // Does the _field_data array containing the validation rules exist? + // If not, we look to see if they were assigned via a config file + if (count($this->_field_data) == 0) + { + // No validation rules? We're done... + if (count($this->_config_rules) == 0) + { + return FALSE; + } + + // Is there a validation rule for the particular URI being accessed? + $uri = ($group == '') ? trim($this->CI->uri->ruri_string(), '/') : $group; + + if ($uri != '' AND isset($this->_config_rules[$uri])) + { + $this->set_rules($this->_config_rules[$uri]); + } + else + { + $this->set_rules($this->_config_rules); + } + + // We're we able to set the rules correctly? + if (count($this->_field_data) == 0) + { + log_message('debug', "Unable to find validation rules"); + return FALSE; + } + } + + // Load the language file containing error messages + $this->CI->lang->load('form_validation'); + + // Cycle through the rules for each field, match the + // corresponding $_POST item and test for errors + foreach ($this->_field_data as $field => $row) + { + // Fetch the data from the corresponding $_POST array and cache it in the _field_data array. + // Depending on whether the field name is an array or a string will determine where we get it from. + + if ($row['is_array'] == TRUE) + { + $this->_field_data[$field]['postdata'] = $this->_reduce_array($_POST, $row['keys']); + } + else + { + if (isset($_POST[$field]) AND $_POST[$field] != "") + { + $this->_field_data[$field]['postdata'] = $_POST[$field]; + } + } + + $this->_execute($row, explode('|', $row['rules']), $this->_field_data[$field]['postdata']); + } + + // Did we end up with any errors? + $total_errors = count($this->_error_array); + + if ($total_errors > 0) + { + $this->_safe_form_data = TRUE; + } + + // Now we need to re-set the POST data with the new, processed data + $this->_reset_post_array(); + + // No errors, validation passes! + if ($total_errors == 0) + { + return TRUE; + } + + // Validation fails + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Traverse a multidimensional $_POST array index until the data is found + * + * @access private + * @param array + * @param array + * @param integer + * @return mixed + */ + protected function _reduce_array($array, $keys, $i = 0) + { + if (is_array($array)) + { + if (isset($keys[$i])) + { + if (isset($array[$keys[$i]])) + { + $array = $this->_reduce_array($array[$keys[$i]], $keys, ($i+1)); + } + else + { + return NULL; + } + } + else + { + return $array; + } + } + + return $array; + } + + // -------------------------------------------------------------------- + + /** + * Re-populate the _POST array with our finalized and processed data + * + * @access private + * @return null + */ + protected function _reset_post_array() + { + foreach ($this->_field_data as $field => $row) + { + if ( ! is_null($row['postdata'])) + { + if ($row['is_array'] == FALSE) + { + if (isset($_POST[$row['field']])) + { + $_POST[$row['field']] = $this->prep_for_form($row['postdata']); + } + } + else + { + // start with a reference + $post_ref =& $_POST; + + // before we assign values, make a reference to the right POST key + if (count($row['keys']) == 1) + { + $post_ref =& $post_ref[current($row['keys'])]; + } + else + { + foreach ($row['keys'] as $val) + { + $post_ref =& $post_ref[$val]; + } + } + + if (is_array($row['postdata'])) + { + $array = array(); + foreach ($row['postdata'] as $k => $v) + { + $array[$k] = $this->prep_for_form($v); + } + + $post_ref = $array; + } + else + { + $post_ref = $this->prep_for_form($row['postdata']); + } + } + } + } + } + + // -------------------------------------------------------------------- + + /** + * Executes the Validation routines + * + * @access private + * @param array + * @param array + * @param mixed + * @param integer + * @return mixed + */ + protected function _execute($row, $rules, $postdata = NULL, $cycles = 0) + { + // If the $_POST data is an array we will run a recursive call + if (is_array($postdata)) + { + foreach ($postdata as $key => $val) + { + $this->_execute($row, $rules, $val, $cycles); + $cycles++; + } + + return; + } + + // -------------------------------------------------------------------- + + // If the field is blank, but NOT required, no further tests are necessary + $callback = FALSE; + if ( ! in_array('required', $rules) AND is_null($postdata)) + { + // Before we bail out, does the rule contain a callback? + if (preg_match("/(callback_\w+(\[.*?\])?)/", implode(' ', $rules), $match)) + { + $callback = TRUE; + $rules = (array('1' => $match[1])); + } + else + { + return; + } + } + + // -------------------------------------------------------------------- + + // Isset Test. Typically this rule will only apply to checkboxes. + if (is_null($postdata) AND $callback == FALSE) + { + if (in_array('isset', $rules, TRUE) OR in_array('required', $rules)) + { + // Set the message type + $type = (in_array('required', $rules)) ? 'required' : 'isset'; + + if ( ! isset($this->_error_messages[$type])) + { + if (FALSE === ($line = $this->CI->lang->line($type))) + { + $line = 'The field was not set'; + } + } + else + { + $line = $this->_error_messages[$type]; + } + + // Build the error message + $message = sprintf($line, $this->_translate_fieldname($row['label'])); + + // Save the error message + $this->_field_data[$row['field']]['error'] = $message; + + if ( ! isset($this->_error_array[$row['field']])) + { + $this->_error_array[$row['field']] = $message; + } + } + + return; + } + + // -------------------------------------------------------------------- + + // Cycle through each rule and run it + foreach ($rules As $rule) + { + $_in_array = FALSE; + + // We set the $postdata variable with the current data in our master array so that + // each cycle of the loop is dealing with the processed data from the last cycle + if ($row['is_array'] == TRUE AND is_array($this->_field_data[$row['field']]['postdata'])) + { + // We shouldn't need this safety, but just in case there isn't an array index + // associated with this cycle we'll bail out + if ( ! isset($this->_field_data[$row['field']]['postdata'][$cycles])) + { + continue; + } + + $postdata = $this->_field_data[$row['field']]['postdata'][$cycles]; + $_in_array = TRUE; + } + else + { + $postdata = $this->_field_data[$row['field']]['postdata']; + } + + // -------------------------------------------------------------------- + + // Is the rule a callback? + $callback = FALSE; + if (substr($rule, 0, 9) == 'callback_') + { + $rule = substr($rule, 9); + $callback = TRUE; + } + + // Strip the parameter (if exists) from the rule + // Rules can contain a parameter: max_length[5] + $param = FALSE; + if (preg_match("/(.*?)\[(.*)\]/", $rule, $match)) + { + $rule = $match[1]; + $param = $match[2]; + } + + // Call the function that corresponds to the rule + if ($callback === TRUE) + { + if ( ! method_exists($this->CI, $rule)) + { + continue; + } + + // Run the function and grab the result + $result = $this->CI->$rule($postdata, $param); + + // Re-assign the result to the master data array + if ($_in_array == TRUE) + { + $this->_field_data[$row['field']]['postdata'][$cycles] = (is_bool($result)) ? $postdata : $result; + } + else + { + $this->_field_data[$row['field']]['postdata'] = (is_bool($result)) ? $postdata : $result; + } + + // If the field isn't required and we just processed a callback we'll move on... + if ( ! in_array('required', $rules, TRUE) AND $result !== FALSE) + { + continue; + } + } + else + { + if ( ! method_exists($this, $rule)) + { + // If our own wrapper function doesn't exist we see if a native PHP function does. + // Users can use any native PHP function call that has one param. + if (function_exists($rule)) + { + $result = $rule($postdata); + + if ($_in_array == TRUE) + { + $this->_field_data[$row['field']]['postdata'][$cycles] = (is_bool($result)) ? $postdata : $result; + } + else + { + $this->_field_data[$row['field']]['postdata'] = (is_bool($result)) ? $postdata : $result; + } + } + else + { + log_message('debug', "Unable to find validation rule: ".$rule); + } + + continue; + } + + $result = $this->$rule($postdata, $param); + + if ($_in_array == TRUE) + { + $this->_field_data[$row['field']]['postdata'][$cycles] = (is_bool($result)) ? $postdata : $result; + } + else + { + $this->_field_data[$row['field']]['postdata'] = (is_bool($result)) ? $postdata : $result; + } + } + + // Did the rule test negatively? If so, grab the error. + if ($result === FALSE) + { + if ( ! isset($this->_error_messages[$rule])) + { + if (FALSE === ($line = $this->CI->lang->line($rule))) + { + $line = 'Unable to access an error message corresponding to your field name.'; + } + } + else + { + $line = $this->_error_messages[$rule]; + } + + // Is the parameter we are inserting into the error message the name + // of another field? If so we need to grab its "field label" + if (isset($this->_field_data[$param]) AND isset($this->_field_data[$param]['label'])) + { + $param = $this->_translate_fieldname($this->_field_data[$param]['label']); + } + + // Build the error message + $message = sprintf($line, $this->_translate_fieldname($row['label']), $param); + + // Save the error message + $this->_field_data[$row['field']]['error'] = $message; + + if ( ! isset($this->_error_array[$row['field']])) + { + $this->_error_array[$row['field']] = $message; + } + + return; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Translate a field name + * + * @access private + * @param string the field name + * @return string + */ + protected function _translate_fieldname($fieldname) + { + // Do we need to translate the field name? + // We look for the prefix lang: to determine this + if (substr($fieldname, 0, 5) == 'lang:') + { + // Grab the variable + $line = substr($fieldname, 5); + + // Were we able to translate the field name? If not we use $line + if (FALSE === ($fieldname = $this->CI->lang->line($line))) + { + return $line; + } + } + + return $fieldname; + } + + // -------------------------------------------------------------------- + + /** + * Get the value from a form + * + * Permits you to repopulate a form field with the value it was submitted + * with, or, if that value doesn't exist, with the default + * + * @access public + * @param string the field name + * @param string + * @return void + */ + public function set_value($field = '', $default = '') + { + if ( ! isset($this->_field_data[$field])) + { + return $default; + } + + // If the data is an array output them one at a time. + // E.g: form_input('name[]', set_value('name[]'); + if (is_array($this->_field_data[$field]['postdata'])) + { + return array_shift($this->_field_data[$field]['postdata']); + } + + return $this->_field_data[$field]['postdata']; + } + + // -------------------------------------------------------------------- + + /** + * Set Select + * + * Enables pull-down lists to be set to the value the user + * selected in the event of an error + * + * @access public + * @param string + * @param string + * @return string + */ + public function set_select($field = '', $value = '', $default = FALSE) + { + if ( ! isset($this->_field_data[$field]) OR ! isset($this->_field_data[$field]['postdata'])) + { + if ($default === TRUE AND count($this->_field_data) === 0) + { + return ' selected="selected"'; + } + return ''; + } + + $field = $this->_field_data[$field]['postdata']; + + if (is_array($field)) + { + if ( ! in_array($value, $field)) + { + return ''; + } + } + else + { + if (($field == '' OR $value == '') OR ($field != $value)) + { + return ''; + } + } + + return ' selected="selected"'; + } + + // -------------------------------------------------------------------- + + /** + * Set Radio + * + * Enables radio buttons to be set to the value the user + * selected in the event of an error + * + * @access public + * @param string + * @param string + * @return string + */ + public function set_radio($field = '', $value = '', $default = FALSE) + { + if ( ! isset($this->_field_data[$field]) OR ! isset($this->_field_data[$field]['postdata'])) + { + if ($default === TRUE AND count($this->_field_data) === 0) + { + return ' checked="checked"'; + } + return ''; + } + + $field = $this->_field_data[$field]['postdata']; + + if (is_array($field)) + { + if ( ! in_array($value, $field)) + { + return ''; + } + } + else + { + if (($field == '' OR $value == '') OR ($field != $value)) + { + return ''; + } + } + + return ' checked="checked"'; + } + + // -------------------------------------------------------------------- + + /** + * Set Checkbox + * + * Enables checkboxes to be set to the value the user + * selected in the event of an error + * + * @access public + * @param string + * @param string + * @return string + */ + public function set_checkbox($field = '', $value = '', $default = FALSE) + { + if ( ! isset($this->_field_data[$field]) OR ! isset($this->_field_data[$field]['postdata'])) + { + if ($default === TRUE AND count($this->_field_data) === 0) + { + return ' checked="checked"'; + } + return ''; + } + + $field = $this->_field_data[$field]['postdata']; + + if (is_array($field)) + { + if ( ! in_array($value, $field)) + { + return ''; + } + } + else + { + if (($field == '' OR $value == '') OR ($field != $value)) + { + return ''; + } + } + + return ' checked="checked"'; + } + + // -------------------------------------------------------------------- + + /** + * Required + * + * @access public + * @param string + * @return bool + */ + public function required($str) + { + if ( ! is_array($str)) + { + return (trim($str) == '') ? FALSE : TRUE; + } + else + { + return ( ! empty($str)); + } + } + + // -------------------------------------------------------------------- + + /** + * Performs a Regular Expression match test. + * + * @access public + * @param string + * @param regex + * @return bool + */ + public function regex_match($str, $regex) + { + if ( ! preg_match($regex, $str)) + { + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Match one field to another + * + * @access public + * @param string + * @param field + * @return bool + */ + public function matches($str, $field) + { + if ( ! isset($_POST[$field])) + { + return FALSE; + } + + $field = $_POST[$field]; + + return ($str !== $field) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Match one field to another + * + * @access public + * @param string + * @param field + * @return bool + */ + public function is_unique($str, $field) + { + list($table, $field)=explode('.', $field); + $query = $this->CI->db->limit(1)->get_where($table, array($field => $str)); + + return $query->num_rows() === 0; + } + + // -------------------------------------------------------------------- + + /** + * Minimum Length + * + * @access public + * @param string + * @param value + * @return bool + */ + public function min_length($str, $val) + { + if (preg_match("/[^0-9]/", $val)) + { + return FALSE; + } + + if (function_exists('mb_strlen')) + { + return (mb_strlen($str) < $val) ? FALSE : TRUE; + } + + return (strlen($str) < $val) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Max Length + * + * @access public + * @param string + * @param value + * @return bool + */ + public function max_length($str, $val) + { + if (preg_match("/[^0-9]/", $val)) + { + return FALSE; + } + + if (function_exists('mb_strlen')) + { + return (mb_strlen($str) > $val) ? FALSE : TRUE; + } + + return (strlen($str) > $val) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Exact Length + * + * @access public + * @param string + * @param value + * @return bool + */ + public function exact_length($str, $val) + { + if (preg_match("/[^0-9]/", $val)) + { + return FALSE; + } + + if (function_exists('mb_strlen')) + { + return (mb_strlen($str) != $val) ? FALSE : TRUE; + } + + return (strlen($str) != $val) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Valid Email + * + * @access public + * @param string + * @return bool + */ + public function valid_email($str) + { + return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Valid Emails + * + * @access public + * @param string + * @return bool + */ + public function valid_emails($str) + { + if (strpos($str, ',') === FALSE) + { + return $this->valid_email(trim($str)); + } + + foreach (explode(',', $str) as $email) + { + if (trim($email) != '' && $this->valid_email(trim($email)) === FALSE) + { + return FALSE; + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Validate IP Address + * + * @access public + * @param string + * @param string "ipv4" or "ipv6" to validate a specific ip format + * @return string + */ + public function valid_ip($ip, $which = '') + { + return $this->CI->input->valid_ip($ip, $which); + } + + // -------------------------------------------------------------------- + + /** + * Alpha + * + * @access public + * @param string + * @return bool + */ + public function alpha($str) + { + return ( ! preg_match("/^([a-z])+$/i", $str)) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Alpha-numeric + * + * @access public + * @param string + * @return bool + */ + public function alpha_numeric($str) + { + return ( ! preg_match("/^([a-z0-9])+$/i", $str)) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Alpha-numeric with underscores and dashes + * + * @access public + * @param string + * @return bool + */ + public function alpha_dash($str) + { + return ( ! preg_match("/^([-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Numeric + * + * @access public + * @param string + * @return bool + */ + public function numeric($str) + { + return (bool)preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str); + + } + + // -------------------------------------------------------------------- + + /** + * Is Numeric + * + * @access public + * @param string + * @return bool + */ + public function is_numeric($str) + { + return ( ! is_numeric($str)) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Integer + * + * @access public + * @param string + * @return bool + */ + public function integer($str) + { + return (bool) preg_match('/^[\-+]?[0-9]+$/', $str); + } + + // -------------------------------------------------------------------- + + /** + * Decimal number + * + * @access public + * @param string + * @return bool + */ + public function decimal($str) + { + return (bool) preg_match('/^[\-+]?[0-9]+\.[0-9]+$/', $str); + } + + // -------------------------------------------------------------------- + + /** + * Greather than + * + * @access public + * @param string + * @return bool + */ + public function greater_than($str, $min) + { + if ( ! is_numeric($str)) + { + return FALSE; + } + return $str > $min; + } + + // -------------------------------------------------------------------- + + /** + * Less than + * + * @access public + * @param string + * @return bool + */ + public function less_than($str, $max) + { + if ( ! is_numeric($str)) + { + return FALSE; + } + return $str < $max; + } + + // -------------------------------------------------------------------- + + /** + * Is a Natural number (0,1,2,3, etc.) + * + * @access public + * @param string + * @return bool + */ + public function is_natural($str) + { + return (bool) preg_match( '/^[0-9]+$/', $str); + } + + // -------------------------------------------------------------------- + + /** + * Is a Natural number, but not a zero (1,2,3, etc.) + * + * @access public + * @param string + * @return bool + */ + public function is_natural_no_zero($str) + { + if ( ! preg_match( '/^[0-9]+$/', $str)) + { + return FALSE; + } + + if ($str == 0) + { + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Valid Base64 + * + * Tests a string for characters outside of the Base64 alphabet + * as defined by RFC 2045 http://www.faqs.org/rfcs/rfc2045 + * + * @access public + * @param string + * @return bool + */ + public function valid_base64($str) + { + return (bool) ! preg_match('/[^a-zA-Z0-9\/\+=]/', $str); + } + + // -------------------------------------------------------------------- + + /** + * Prep data for form + * + * This function allows HTML to be safely shown in a form. + * Special characters are converted. + * + * @access public + * @param string + * @return string + */ + public function prep_for_form($data = '') + { + if (is_array($data)) + { + foreach ($data as $key => $val) + { + $data[$key] = $this->prep_for_form($val); + } + + return $data; + } + + if ($this->_safe_form_data == FALSE OR $data === '') + { + return $data; + } + + return str_replace(array("'", '"', '<', '>'), array("&#39;", "&quot;", '&lt;', '&gt;'), stripslashes($data)); + } + + // -------------------------------------------------------------------- + + /** + * Prep URL + * + * @access public + * @param string + * @return string + */ + public function prep_url($str = '') + { + if ($str == 'http://' OR $str == '') + { + return ''; + } + + if (substr($str, 0, 7) != 'http://' && substr($str, 0, 8) != 'https://') + { + $str = 'http://'.$str; + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Strip Image Tags + * + * @access public + * @param string + * @return string + */ + public function strip_image_tags($str) + { + return $this->CI->input->strip_image_tags($str); + } + + // -------------------------------------------------------------------- + + /** + * XSS Clean + * + * @access public + * @param string + * @return string + */ + public function xss_clean($str) + { + return $this->CI->security->xss_clean($str); + } + + // -------------------------------------------------------------------- + + /** + * Convert PHP tags to entities + * + * @access public + * @param string + * @return string + */ + public function encode_php_tags($str) + { + return str_replace(array('<?php', '<?PHP', '<?', '?>'), array('&lt;?php', '&lt;?PHP', '&lt;?', '?&gt;'), $str); + } + +} +// END Form Validation Class + +/* End of file Form_validation.php */ +/* Location: ./system/libraries/Form_validation.php */ diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php new file mode 100755 index 0000000..d7a8b3b --- /dev/null +++ b/system/libraries/Ftp.php @@ -0,0 +1,660 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * FTP Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/ftp.html + */ +class CI_FTP { + + var $hostname = ''; + var $username = ''; + var $password = ''; + var $port = 21; + var $passive = TRUE; + var $debug = FALSE; + var $conn_id = FALSE; + + + /** + * Constructor - Sets Preferences + * + * The constructor can be passed an array of config values + */ + public function __construct($config = array()) + { + if (count($config) > 0) + { + $this->initialize($config); + } + + log_message('debug', "FTP Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize preferences + * + * @access public + * @param array + * @return void + */ + function initialize($config = array()) + { + foreach ($config as $key => $val) + { + if (isset($this->$key)) + { + $this->$key = $val; + } + } + + // Prep the hostname + $this->hostname = preg_replace('|.+?://|', '', $this->hostname); + } + + // -------------------------------------------------------------------- + + /** + * FTP Connect + * + * @access public + * @param array the connection values + * @return bool + */ + function connect($config = array()) + { + if (count($config) > 0) + { + $this->initialize($config); + } + + if (FALSE === ($this->conn_id = @ftp_connect($this->hostname, $this->port))) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_connect'); + } + return FALSE; + } + + if ( ! $this->_login()) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_login'); + } + return FALSE; + } + + // Set passive mode if needed + if ($this->passive == TRUE) + { + ftp_pasv($this->conn_id, TRUE); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * FTP Login + * + * @access private + * @return bool + */ + function _login() + { + return @ftp_login($this->conn_id, $this->username, $this->password); + } + + // -------------------------------------------------------------------- + + /** + * Validates the connection ID + * + * @access private + * @return bool + */ + function _is_conn() + { + if ( ! is_resource($this->conn_id)) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_no_connection'); + } + return FALSE; + } + return TRUE; + } + + // -------------------------------------------------------------------- + + + /** + * Change directory + * + * The second parameter lets us momentarily turn off debugging so that + * this function can be used to test for the existence of a folder + * without throwing an error. There's no FTP equivalent to is_dir() + * so we do it by trying to change to a particular directory. + * Internally, this parameter is only used by the "mirror" function below. + * + * @access public + * @param string + * @param bool + * @return bool + */ + function changedir($path = '', $supress_debug = FALSE) + { + if ($path == '' OR ! $this->_is_conn()) + { + return FALSE; + } + + $result = @ftp_chdir($this->conn_id, $path); + + if ($result === FALSE) + { + if ($this->debug == TRUE AND $supress_debug == FALSE) + { + $this->_error('ftp_unable_to_changedir'); + } + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Create a directory + * + * @access public + * @param string + * @return bool + */ + function mkdir($path = '', $permissions = NULL) + { + if ($path == '' OR ! $this->_is_conn()) + { + return FALSE; + } + + $result = @ftp_mkdir($this->conn_id, $path); + + if ($result === FALSE) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_makdir'); + } + return FALSE; + } + + // Set file permissions if needed + if ( ! is_null($permissions)) + { + $this->chmod($path, (int)$permissions); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Upload a file to the server + * + * @access public + * @param string + * @param string + * @param string + * @return bool + */ + function upload($locpath, $rempath, $mode = 'auto', $permissions = NULL) + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + if ( ! file_exists($locpath)) + { + $this->_error('ftp_no_source_file'); + return FALSE; + } + + // Set the mode if not specified + if ($mode == 'auto') + { + // Get the file extension so we can set the upload type + $ext = $this->_getext($locpath); + $mode = $this->_settype($ext); + } + + $mode = ($mode == 'ascii') ? FTP_ASCII : FTP_BINARY; + + $result = @ftp_put($this->conn_id, $rempath, $locpath, $mode); + + if ($result === FALSE) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_upload'); + } + return FALSE; + } + + // Set file permissions if needed + if ( ! is_null($permissions)) + { + $this->chmod($rempath, (int)$permissions); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Download a file from a remote server to the local server + * + * @access public + * @param string + * @param string + * @param string + * @return bool + */ + function download($rempath, $locpath, $mode = 'auto') + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + // Set the mode if not specified + if ($mode == 'auto') + { + // Get the file extension so we can set the upload type + $ext = $this->_getext($rempath); + $mode = $this->_settype($ext); + } + + $mode = ($mode == 'ascii') ? FTP_ASCII : FTP_BINARY; + + $result = @ftp_get($this->conn_id, $locpath, $rempath, $mode); + + if ($result === FALSE) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_download'); + } + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Rename (or move) a file + * + * @access public + * @param string + * @param string + * @param bool + * @return bool + */ + function rename($old_file, $new_file, $move = FALSE) + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + $result = @ftp_rename($this->conn_id, $old_file, $new_file); + + if ($result === FALSE) + { + if ($this->debug == TRUE) + { + $msg = ($move == FALSE) ? 'ftp_unable_to_rename' : 'ftp_unable_to_move'; + + $this->_error($msg); + } + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Move a file + * + * @access public + * @param string + * @param string + * @return bool + */ + function move($old_file, $new_file) + { + return $this->rename($old_file, $new_file, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Rename (or move) a file + * + * @access public + * @param string + * @return bool + */ + function delete_file($filepath) + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + $result = @ftp_delete($this->conn_id, $filepath); + + if ($result === FALSE) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_delete'); + } + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Delete a folder and recursively delete everything (including sub-folders) + * containted within it. + * + * @access public + * @param string + * @return bool + */ + function delete_dir($filepath) + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + // Add a trailing slash to the file path if needed + $filepath = preg_replace("/(.+?)\/*$/", "\\1/", $filepath); + + $list = $this->list_files($filepath); + + if ($list !== FALSE AND count($list) > 0) + { + foreach ($list as $item) + { + // If we can't delete the item it's probaly a folder so + // we'll recursively call delete_dir() + if ( ! @ftp_delete($this->conn_id, $item)) + { + $this->delete_dir($item); + } + } + } + + $result = @ftp_rmdir($this->conn_id, $filepath); + + if ($result === FALSE) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_delete'); + } + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set file permissions + * + * @access public + * @param string the file path + * @param string the permissions + * @return bool + */ + function chmod($path, $perm) + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + // Permissions can only be set when running PHP 5 + if ( ! function_exists('ftp_chmod')) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_chmod'); + } + return FALSE; + } + + $result = @ftp_chmod($this->conn_id, $perm, $path); + + if ($result === FALSE) + { + if ($this->debug == TRUE) + { + $this->_error('ftp_unable_to_chmod'); + } + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * FTP List files in the specified directory + * + * @access public + * @return array + */ + function list_files($path = '.') + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + return ftp_nlist($this->conn_id, $path); + } + + // ------------------------------------------------------------------------ + + /** + * Read a directory and recreate it remotely + * + * This function recursively reads a folder and everything it contains (including + * sub-folders) and creates a mirror via FTP based on it. Whatever the directory structure + * of the original file path will be recreated on the server. + * + * @access public + * @param string path to source with trailing slash + * @param string path to destination - include the base folder with trailing slash + * @return bool + */ + function mirror($locpath, $rempath) + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + // Open the local file path + if ($fp = @opendir($locpath)) + { + // Attempt to open the remote file path. + if ( ! $this->changedir($rempath, TRUE)) + { + // If it doesn't exist we'll attempt to create the direcotory + if ( ! $this->mkdir($rempath) OR ! $this->changedir($rempath)) + { + return FALSE; + } + } + + // Recursively read the local directory + while (FALSE !== ($file = readdir($fp))) + { + if (@is_dir($locpath.$file) && substr($file, 0, 1) != '.') + { + $this->mirror($locpath.$file."/", $rempath.$file."/"); + } + elseif (substr($file, 0, 1) != ".") + { + // Get the file extension so we can se the upload type + $ext = $this->_getext($file); + $mode = $this->_settype($ext); + + $this->upload($locpath.$file, $rempath.$file, $mode); + } + } + return TRUE; + } + + return FALSE; + } + + + // -------------------------------------------------------------------- + + /** + * Extract the file extension + * + * @access private + * @param string + * @return string + */ + function _getext($filename) + { + if (FALSE === strpos($filename, '.')) + { + return 'txt'; + } + + $x = explode('.', $filename); + return end($x); + } + + + // -------------------------------------------------------------------- + + /** + * Set the upload type + * + * @access private + * @param string + * @return string + */ + function _settype($ext) + { + $text_types = array( + 'txt', + 'text', + 'php', + 'phps', + 'php4', + 'js', + 'css', + 'htm', + 'html', + 'phtml', + 'shtml', + 'log', + 'xml' + ); + + + return (in_array($ext, $text_types)) ? 'ascii' : 'binary'; + } + + // ------------------------------------------------------------------------ + + /** + * Close the connection + * + * @access public + * @param string path to source + * @param string path to destination + * @return bool + */ + function close() + { + if ( ! $this->_is_conn()) + { + return FALSE; + } + + @ftp_close($this->conn_id); + } + + // ------------------------------------------------------------------------ + + /** + * Display error message + * + * @access private + * @param string + * @return bool + */ + function _error($line) + { + $CI =& get_instance(); + $CI->lang->load('ftp'); + show_error($CI->lang->line($line)); + } + + +} +// END FTP Class + +/* End of file Ftp.php */ +/* Location: ./system/libraries/Ftp.php */ \ No newline at end of file diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php new file mode 100755 index 0000000..21ec2cb --- /dev/null +++ b/system/libraries/Image_lib.php @@ -0,0 +1,1537 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Image Manipulation class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Image_lib + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/image_lib.html + */ +class CI_Image_lib { + + var $image_library = 'gd2'; // Can be: imagemagick, netpbm, gd, gd2 + var $library_path = ''; + var $dynamic_output = FALSE; // Whether to send to browser or write to disk + var $source_image = ''; + var $new_image = ''; + var $width = ''; + var $height = ''; + var $quality = '90'; + var $create_thumb = FALSE; + var $thumb_marker = '_thumb'; + var $maintain_ratio = TRUE; // Whether to maintain aspect ratio when resizing or use hard values + var $master_dim = 'auto'; // auto, height, or width. Determines what to use as the master dimension + var $rotation_angle = ''; + var $x_axis = ''; + var $y_axis = ''; + + // Watermark Vars + var $wm_text = ''; // Watermark text if graphic is not used + var $wm_type = 'text'; // Type of watermarking. Options: text/overlay + var $wm_x_transp = 4; + var $wm_y_transp = 4; + var $wm_overlay_path = ''; // Watermark image path + var $wm_font_path = ''; // TT font + var $wm_font_size = 17; // Font size (different versions of GD will either use points or pixels) + var $wm_vrt_alignment = 'B'; // Vertical alignment: T M B + var $wm_hor_alignment = 'C'; // Horizontal alignment: L R C + var $wm_padding = 0; // Padding around text + var $wm_hor_offset = 0; // Lets you push text to the right + var $wm_vrt_offset = 0; // Lets you push text down + var $wm_font_color = '#ffffff'; // Text color + var $wm_shadow_color = ''; // Dropshadow color + var $wm_shadow_distance = 2; // Dropshadow distance + var $wm_opacity = 50; // Image opacity: 1 - 100 Only works with image + + // Private Vars + var $source_folder = ''; + var $dest_folder = ''; + var $mime_type = ''; + var $orig_width = ''; + var $orig_height = ''; + var $image_type = ''; + var $size_str = ''; + var $full_src_path = ''; + var $full_dst_path = ''; + var $create_fnc = 'imagecreatetruecolor'; + var $copy_fnc = 'imagecopyresampled'; + var $error_msg = array(); + var $wm_use_drop_shadow = FALSE; + var $wm_use_truetype = FALSE; + + /** + * Constructor + * + * @param string + * @return void + */ + public function __construct($props = array()) + { + if (count($props) > 0) + { + $this->initialize($props); + } + + log_message('debug', "Image Lib Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize image properties + * + * Resets values in case this class is used in a loop + * + * @access public + * @return void + */ + function clear() + { + $props = array('source_folder', 'dest_folder', 'source_image', 'full_src_path', 'full_dst_path', 'new_image', 'image_type', 'size_str', 'quality', 'orig_width', 'orig_height', 'width', 'height', 'rotation_angle', 'x_axis', 'y_axis', 'create_fnc', 'copy_fnc', 'wm_overlay_path', 'wm_use_truetype', 'dynamic_output', 'wm_font_size', 'wm_text', 'wm_vrt_alignment', 'wm_hor_alignment', 'wm_padding', 'wm_hor_offset', 'wm_vrt_offset', 'wm_font_color', 'wm_use_drop_shadow', 'wm_shadow_color', 'wm_shadow_distance', 'wm_opacity'); + + foreach ($props as $val) + { + $this->$val = ''; + } + + // special consideration for master_dim + $this->master_dim = 'auto'; + } + + // -------------------------------------------------------------------- + + /** + * initialize image preferences + * + * @access public + * @param array + * @return bool + */ + function initialize($props = array()) + { + /* + * Convert array elements into class variables + */ + if (count($props) > 0) + { + foreach ($props as $key => $val) + { + $this->$key = $val; + } + } + + /* + * Is there a source image? + * + * If not, there's no reason to continue + * + */ + if ($this->source_image == '') + { + $this->set_error('imglib_source_image_required'); + return FALSE; + } + + /* + * Is getimagesize() Available? + * + * We use it to determine the image properties (width/height). + * Note: We need to figure out how to determine image + * properties using ImageMagick and NetPBM + * + */ + if ( ! function_exists('getimagesize')) + { + $this->set_error('imglib_gd_required_for_props'); + return FALSE; + } + + $this->image_library = strtolower($this->image_library); + + /* + * Set the full server path + * + * The source image may or may not contain a path. + * Either way, we'll try use realpath to generate the + * full server path in order to more reliably read it. + * + */ + if (function_exists('realpath') AND @realpath($this->source_image) !== FALSE) + { + $full_source_path = str_replace("\\", "/", realpath($this->source_image)); + } + else + { + $full_source_path = $this->source_image; + } + + $x = explode('/', $full_source_path); + $this->source_image = end($x); + $this->source_folder = str_replace($this->source_image, '', $full_source_path); + + // Set the Image Properties + if ( ! $this->get_image_properties($this->source_folder.$this->source_image)) + { + return FALSE; + } + + /* + * Assign the "new" image name/path + * + * If the user has set a "new_image" name it means + * we are making a copy of the source image. If not + * it means we are altering the original. We'll + * set the destination filename and path accordingly. + * + */ + if ($this->new_image == '') + { + $this->dest_image = $this->source_image; + $this->dest_folder = $this->source_folder; + } + else + { + if (strpos($this->new_image, '/') === FALSE AND strpos($this->new_image, '\\') === FALSE) + { + $this->dest_folder = $this->source_folder; + $this->dest_image = $this->new_image; + } + else + { + if (function_exists('realpath') AND @realpath($this->new_image) !== FALSE) + { + $full_dest_path = str_replace("\\", "/", realpath($this->new_image)); + } + else + { + $full_dest_path = $this->new_image; + } + + // Is there a file name? + if ( ! preg_match("#\.(jpg|jpeg|gif|png)$#i", $full_dest_path)) + { + $this->dest_folder = $full_dest_path.'/'; + $this->dest_image = $this->source_image; + } + else + { + $x = explode('/', $full_dest_path); + $this->dest_image = end($x); + $this->dest_folder = str_replace($this->dest_image, '', $full_dest_path); + } + } + } + + /* + * Compile the finalized filenames/paths + * + * We'll create two master strings containing the + * full server path to the source image and the + * full server path to the destination image. + * We'll also split the destination image name + * so we can insert the thumbnail marker if needed. + * + */ + if ($this->create_thumb === FALSE OR $this->thumb_marker == '') + { + $this->thumb_marker = ''; + } + + $xp = $this->explode_name($this->dest_image); + + $filename = $xp['name']; + $file_ext = $xp['ext']; + + $this->full_src_path = $this->source_folder.$this->source_image; + $this->full_dst_path = $this->dest_folder.$filename.$this->thumb_marker.$file_ext; + + /* + * Should we maintain image proportions? + * + * When creating thumbs or copies, the target width/height + * might not be in correct proportion with the source + * image's width/height. We'll recalculate it here. + * + */ + if ($this->maintain_ratio === TRUE && ($this->width != '' AND $this->height != '')) + { + $this->image_reproportion(); + } + + /* + * Was a width and height specified? + * + * If the destination width/height was + * not submitted we will use the values + * from the actual file + * + */ + if ($this->width == '') + $this->width = $this->orig_width; + + if ($this->height == '') + $this->height = $this->orig_height; + + // Set the quality + $this->quality = trim(str_replace("%", "", $this->quality)); + + if ($this->quality == '' OR $this->quality == 0 OR ! is_numeric($this->quality)) + $this->quality = 90; + + // Set the x/y coordinates + $this->x_axis = ($this->x_axis == '' OR ! is_numeric($this->x_axis)) ? 0 : $this->x_axis; + $this->y_axis = ($this->y_axis == '' OR ! is_numeric($this->y_axis)) ? 0 : $this->y_axis; + + // Watermark-related Stuff... + if ($this->wm_font_color != '') + { + if (strlen($this->wm_font_color) == 6) + { + $this->wm_font_color = '#'.$this->wm_font_color; + } + } + + if ($this->wm_shadow_color != '') + { + if (strlen($this->wm_shadow_color) == 6) + { + $this->wm_shadow_color = '#'.$this->wm_shadow_color; + } + } + + if ($this->wm_overlay_path != '') + { + $this->wm_overlay_path = str_replace("\\", "/", realpath($this->wm_overlay_path)); + } + + if ($this->wm_shadow_color != '') + { + $this->wm_use_drop_shadow = TRUE; + } + + if ($this->wm_font_path != '') + { + $this->wm_use_truetype = TRUE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Image Resize + * + * This is a wrapper function that chooses the proper + * resize function based on the protocol specified + * + * @access public + * @return bool + */ + function resize() + { + $protocol = 'image_process_'.$this->image_library; + + if (preg_match('/gd2$/i', $protocol)) + { + $protocol = 'image_process_gd'; + } + + return $this->$protocol('resize'); + } + + // -------------------------------------------------------------------- + + /** + * Image Crop + * + * This is a wrapper function that chooses the proper + * cropping function based on the protocol specified + * + * @access public + * @return bool + */ + function crop() + { + $protocol = 'image_process_'.$this->image_library; + + if (preg_match('/gd2$/i', $protocol)) + { + $protocol = 'image_process_gd'; + } + + return $this->$protocol('crop'); + } + + // -------------------------------------------------------------------- + + /** + * Image Rotate + * + * This is a wrapper function that chooses the proper + * rotation function based on the protocol specified + * + * @access public + * @return bool + */ + function rotate() + { + // Allowed rotation values + $degs = array(90, 180, 270, 'vrt', 'hor'); + + if ($this->rotation_angle == '' OR ! in_array($this->rotation_angle, $degs)) + { + $this->set_error('imglib_rotation_angle_required'); + return FALSE; + } + + // Reassign the width and height + if ($this->rotation_angle == 90 OR $this->rotation_angle == 270) + { + $this->width = $this->orig_height; + $this->height = $this->orig_width; + } + else + { + $this->width = $this->orig_width; + $this->height = $this->orig_height; + } + + + // Choose resizing function + if ($this->image_library == 'imagemagick' OR $this->image_library == 'netpbm') + { + $protocol = 'image_process_'.$this->image_library; + + return $this->$protocol('rotate'); + } + + if ($this->rotation_angle == 'hor' OR $this->rotation_angle == 'vrt') + { + return $this->image_mirror_gd(); + } + else + { + return $this->image_rotate_gd(); + } + } + + // -------------------------------------------------------------------- + + /** + * Image Process Using GD/GD2 + * + * This function will resize or crop + * + * @access public + * @param string + * @return bool + */ + function image_process_gd($action = 'resize') + { + $v2_override = FALSE; + + // If the target width/height match the source, AND if the new file name is not equal to the old file name + // we'll simply make a copy of the original with the new name... assuming dynamic rendering is off. + if ($this->dynamic_output === FALSE) + { + if ($this->orig_width == $this->width AND $this->orig_height == $this->height) + { + if ($this->source_image != $this->new_image) + { + if (@copy($this->full_src_path, $this->full_dst_path)) + { + @chmod($this->full_dst_path, FILE_WRITE_MODE); + } + } + + return TRUE; + } + } + + // Let's set up our values based on the action + if ($action == 'crop') + { + // Reassign the source width/height if cropping + $this->orig_width = $this->width; + $this->orig_height = $this->height; + + // GD 2.0 has a cropping bug so we'll test for it + if ($this->gd_version() !== FALSE) + { + $gd_version = str_replace('0', '', $this->gd_version()); + $v2_override = ($gd_version == 2) ? TRUE : FALSE; + } + } + else + { + // If resizing the x/y axis must be zero + $this->x_axis = 0; + $this->y_axis = 0; + } + + // Create the image handle + if ( ! ($src_img = $this->image_create_gd())) + { + return FALSE; + } + + // Create The Image + // + // old conditional which users report cause problems with shared GD libs who report themselves as "2.0 or greater" + // it appears that this is no longer the issue that it was in 2004, so we've removed it, retaining it in the comment + // below should that ever prove inaccurate. + // + // if ($this->image_library == 'gd2' AND function_exists('imagecreatetruecolor') AND $v2_override == FALSE) + if ($this->image_library == 'gd2' AND function_exists('imagecreatetruecolor')) + { + $create = 'imagecreatetruecolor'; + $copy = 'imagecopyresampled'; + } + else + { + $create = 'imagecreate'; + $copy = 'imagecopyresized'; + } + + $dst_img = $create($this->width, $this->height); + + if ($this->image_type == 3) // png we can actually preserve transparency + { + imagealphablending($dst_img, FALSE); + imagesavealpha($dst_img, TRUE); + } + + $copy($dst_img, $src_img, 0, 0, $this->x_axis, $this->y_axis, $this->width, $this->height, $this->orig_width, $this->orig_height); + + // Show the image + if ($this->dynamic_output == TRUE) + { + $this->image_display_gd($dst_img); + } + else + { + // Or save it + if ( ! $this->image_save_gd($dst_img)) + { + return FALSE; + } + } + + // Kill the file handles + imagedestroy($dst_img); + imagedestroy($src_img); + + // Set the file to 777 + @chmod($this->full_dst_path, FILE_WRITE_MODE); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Image Process Using ImageMagick + * + * This function will resize, crop or rotate + * + * @access public + * @param string + * @return bool + */ + function image_process_imagemagick($action = 'resize') + { + // Do we have a vaild library path? + if ($this->library_path == '') + { + $this->set_error('imglib_libpath_invalid'); + return FALSE; + } + + if ( ! preg_match("/convert$/i", $this->library_path)) + { + $this->library_path = rtrim($this->library_path, '/').'/'; + + $this->library_path .= 'convert'; + } + + // Execute the command + $cmd = $this->library_path." -quality ".$this->quality; + + if ($action == 'crop') + { + $cmd .= " -crop ".$this->width."x".$this->height."+".$this->x_axis."+".$this->y_axis." \"$this->full_src_path\" \"$this->full_dst_path\" 2>&1"; + } + elseif ($action == 'rotate') + { + switch ($this->rotation_angle) + { + case 'hor' : $angle = '-flop'; + break; + case 'vrt' : $angle = '-flip'; + break; + default : $angle = '-rotate '.$this->rotation_angle; + break; + } + + $cmd .= " ".$angle." \"$this->full_src_path\" \"$this->full_dst_path\" 2>&1"; + } + else // Resize + { + $cmd .= " -resize ".$this->width."x".$this->height." \"$this->full_src_path\" \"$this->full_dst_path\" 2>&1"; + } + + $retval = 1; + + @exec($cmd, $output, $retval); + + // Did it work? + if ($retval > 0) + { + $this->set_error('imglib_image_process_failed'); + return FALSE; + } + + // Set the file to 777 + @chmod($this->full_dst_path, FILE_WRITE_MODE); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Image Process Using NetPBM + * + * This function will resize, crop or rotate + * + * @access public + * @param string + * @return bool + */ + function image_process_netpbm($action = 'resize') + { + if ($this->library_path == '') + { + $this->set_error('imglib_libpath_invalid'); + return FALSE; + } + + // Build the resizing command + switch ($this->image_type) + { + case 1 : + $cmd_in = 'giftopnm'; + $cmd_out = 'ppmtogif'; + break; + case 2 : + $cmd_in = 'jpegtopnm'; + $cmd_out = 'ppmtojpeg'; + break; + case 3 : + $cmd_in = 'pngtopnm'; + $cmd_out = 'ppmtopng'; + break; + } + + if ($action == 'crop') + { + $cmd_inner = 'pnmcut -left '.$this->x_axis.' -top '.$this->y_axis.' -width '.$this->width.' -height '.$this->height; + } + elseif ($action == 'rotate') + { + switch ($this->rotation_angle) + { + case 90 : $angle = 'r270'; + break; + case 180 : $angle = 'r180'; + break; + case 270 : $angle = 'r90'; + break; + case 'vrt' : $angle = 'tb'; + break; + case 'hor' : $angle = 'lr'; + break; + } + + $cmd_inner = 'pnmflip -'.$angle.' '; + } + else // Resize + { + $cmd_inner = 'pnmscale -xysize '.$this->width.' '.$this->height; + } + + $cmd = $this->library_path.$cmd_in.' '.$this->full_src_path.' | '.$cmd_inner.' | '.$cmd_out.' > '.$this->dest_folder.'netpbm.tmp'; + + $retval = 1; + + @exec($cmd, $output, $retval); + + // Did it work? + if ($retval > 0) + { + $this->set_error('imglib_image_process_failed'); + return FALSE; + } + + // With NetPBM we have to create a temporary image. + // If you try manipulating the original it fails so + // we have to rename the temp file. + copy ($this->dest_folder.'netpbm.tmp', $this->full_dst_path); + unlink ($this->dest_folder.'netpbm.tmp'); + @chmod($this->full_dst_path, FILE_WRITE_MODE); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Image Rotate Using GD + * + * @access public + * @return bool + */ + function image_rotate_gd() + { + // Create the image handle + if ( ! ($src_img = $this->image_create_gd())) + { + return FALSE; + } + + // Set the background color + // This won't work with transparent PNG files so we are + // going to have to figure out how to determine the color + // of the alpha channel in a future release. + + $white = imagecolorallocate($src_img, 255, 255, 255); + + // Rotate it! + $dst_img = imagerotate($src_img, $this->rotation_angle, $white); + + // Save the Image + if ($this->dynamic_output == TRUE) + { + $this->image_display_gd($dst_img); + } + else + { + // Or save it + if ( ! $this->image_save_gd($dst_img)) + { + return FALSE; + } + } + + // Kill the file handles + imagedestroy($dst_img); + imagedestroy($src_img); + + // Set the file to 777 + + @chmod($this->full_dst_path, FILE_WRITE_MODE); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Create Mirror Image using GD + * + * This function will flip horizontal or vertical + * + * @access public + * @return bool + */ + function image_mirror_gd() + { + if ( ! $src_img = $this->image_create_gd()) + { + return FALSE; + } + + $width = $this->orig_width; + $height = $this->orig_height; + + if ($this->rotation_angle == 'hor') + { + for ($i = 0; $i < $height; $i++) + { + $left = 0; + $right = $width-1; + + while ($left < $right) + { + $cl = imagecolorat($src_img, $left, $i); + $cr = imagecolorat($src_img, $right, $i); + + imagesetpixel($src_img, $left, $i, $cr); + imagesetpixel($src_img, $right, $i, $cl); + + $left++; + $right--; + } + } + } + else + { + for ($i = 0; $i < $width; $i++) + { + $top = 0; + $bot = $height-1; + + while ($top < $bot) + { + $ct = imagecolorat($src_img, $i, $top); + $cb = imagecolorat($src_img, $i, $bot); + + imagesetpixel($src_img, $i, $top, $cb); + imagesetpixel($src_img, $i, $bot, $ct); + + $top++; + $bot--; + } + } + } + + // Show the image + if ($this->dynamic_output == TRUE) + { + $this->image_display_gd($src_img); + } + else + { + // Or save it + if ( ! $this->image_save_gd($src_img)) + { + return FALSE; + } + } + + // Kill the file handles + imagedestroy($src_img); + + // Set the file to 777 + @chmod($this->full_dst_path, FILE_WRITE_MODE); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Image Watermark + * + * This is a wrapper function that chooses the type + * of watermarking based on the specified preference. + * + * @access public + * @param string + * @return bool + */ + function watermark() + { + if ($this->wm_type == 'overlay') + { + return $this->overlay_watermark(); + } + else + { + return $this->text_watermark(); + } + } + + // -------------------------------------------------------------------- + + /** + * Watermark - Graphic Version + * + * @access public + * @return bool + */ + function overlay_watermark() + { + if ( ! function_exists('imagecolortransparent')) + { + $this->set_error('imglib_gd_required'); + return FALSE; + } + + // Fetch source image properties + $this->get_image_properties(); + + // Fetch watermark image properties + $props = $this->get_image_properties($this->wm_overlay_path, TRUE); + $wm_img_type = $props['image_type']; + $wm_width = $props['width']; + $wm_height = $props['height']; + + // Create two image resources + $wm_img = $this->image_create_gd($this->wm_overlay_path, $wm_img_type); + $src_img = $this->image_create_gd($this->full_src_path); + + // Reverse the offset if necessary + // When the image is positioned at the bottom + // we don't want the vertical offset to push it + // further down. We want the reverse, so we'll + // invert the offset. Same with the horizontal + // offset when the image is at the right + + $this->wm_vrt_alignment = strtoupper(substr($this->wm_vrt_alignment, 0, 1)); + $this->wm_hor_alignment = strtoupper(substr($this->wm_hor_alignment, 0, 1)); + + if ($this->wm_vrt_alignment == 'B') + $this->wm_vrt_offset = $this->wm_vrt_offset * -1; + + if ($this->wm_hor_alignment == 'R') + $this->wm_hor_offset = $this->wm_hor_offset * -1; + + // Set the base x and y axis values + $x_axis = $this->wm_hor_offset + $this->wm_padding; + $y_axis = $this->wm_vrt_offset + $this->wm_padding; + + // Set the vertical position + switch ($this->wm_vrt_alignment) + { + case 'T': + break; + case 'M': $y_axis += ($this->orig_height / 2) - ($wm_height / 2); + break; + case 'B': $y_axis += $this->orig_height - $wm_height; + break; + } + + // Set the horizontal position + switch ($this->wm_hor_alignment) + { + case 'L': + break; + case 'C': $x_axis += ($this->orig_width / 2) - ($wm_width / 2); + break; + case 'R': $x_axis += $this->orig_width - $wm_width; + break; + } + + // Build the finalized image + if ($wm_img_type == 3 AND function_exists('imagealphablending')) + { + @imagealphablending($src_img, TRUE); + } + + // Set RGB values for text and shadow + $rgba = imagecolorat($wm_img, $this->wm_x_transp, $this->wm_y_transp); + $alpha = ($rgba & 0x7F000000) >> 24; + + // make a best guess as to whether we're dealing with an image with alpha transparency or no/binary transparency + if ($alpha > 0) + { + // copy the image directly, the image's alpha transparency being the sole determinant of blending + imagecopy($src_img, $wm_img, $x_axis, $y_axis, 0, 0, $wm_width, $wm_height); + } + else + { + // set our RGB value from above to be transparent and merge the images with the specified opacity + imagecolortransparent($wm_img, imagecolorat($wm_img, $this->wm_x_transp, $this->wm_y_transp)); + imagecopymerge($src_img, $wm_img, $x_axis, $y_axis, 0, 0, $wm_width, $wm_height, $this->wm_opacity); + } + + // Output the image + if ($this->dynamic_output == TRUE) + { + $this->image_display_gd($src_img); + } + else + { + if ( ! $this->image_save_gd($src_img)) + { + return FALSE; + } + } + + imagedestroy($src_img); + imagedestroy($wm_img); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Watermark - Text Version + * + * @access public + * @return bool + */ + function text_watermark() + { + if ( ! ($src_img = $this->image_create_gd())) + { + return FALSE; + } + + if ($this->wm_use_truetype == TRUE AND ! file_exists($this->wm_font_path)) + { + $this->set_error('imglib_missing_font'); + return FALSE; + } + + // Fetch source image properties + $this->get_image_properties(); + + // Set RGB values for text and shadow + $this->wm_font_color = str_replace('#', '', $this->wm_font_color); + $this->wm_shadow_color = str_replace('#', '', $this->wm_shadow_color); + + $R1 = hexdec(substr($this->wm_font_color, 0, 2)); + $G1 = hexdec(substr($this->wm_font_color, 2, 2)); + $B1 = hexdec(substr($this->wm_font_color, 4, 2)); + + $R2 = hexdec(substr($this->wm_shadow_color, 0, 2)); + $G2 = hexdec(substr($this->wm_shadow_color, 2, 2)); + $B2 = hexdec(substr($this->wm_shadow_color, 4, 2)); + + $txt_color = imagecolorclosest($src_img, $R1, $G1, $B1); + $drp_color = imagecolorclosest($src_img, $R2, $G2, $B2); + + // Reverse the vertical offset + // When the image is positioned at the bottom + // we don't want the vertical offset to push it + // further down. We want the reverse, so we'll + // invert the offset. Note: The horizontal + // offset flips itself automatically + + if ($this->wm_vrt_alignment == 'B') + $this->wm_vrt_offset = $this->wm_vrt_offset * -1; + + if ($this->wm_hor_alignment == 'R') + $this->wm_hor_offset = $this->wm_hor_offset * -1; + + // Set font width and height + // These are calculated differently depending on + // whether we are using the true type font or not + if ($this->wm_use_truetype == TRUE) + { + if ($this->wm_font_size == '') + $this->wm_font_size = '17'; + + $fontwidth = $this->wm_font_size-($this->wm_font_size/4); + $fontheight = $this->wm_font_size; + $this->wm_vrt_offset += $this->wm_font_size; + } + else + { + $fontwidth = imagefontwidth($this->wm_font_size); + $fontheight = imagefontheight($this->wm_font_size); + } + + // Set base X and Y axis values + $x_axis = $this->wm_hor_offset + $this->wm_padding; + $y_axis = $this->wm_vrt_offset + $this->wm_padding; + + // Set verticle alignment + if ($this->wm_use_drop_shadow == FALSE) + $this->wm_shadow_distance = 0; + + $this->wm_vrt_alignment = strtoupper(substr($this->wm_vrt_alignment, 0, 1)); + $this->wm_hor_alignment = strtoupper(substr($this->wm_hor_alignment, 0, 1)); + + switch ($this->wm_vrt_alignment) + { + case "T" : + break; + case "M": $y_axis += ($this->orig_height/2)+($fontheight/2); + break; + case "B": $y_axis += ($this->orig_height - $fontheight - $this->wm_shadow_distance - ($fontheight/2)); + break; + } + + $x_shad = $x_axis + $this->wm_shadow_distance; + $y_shad = $y_axis + $this->wm_shadow_distance; + + // Set horizontal alignment + switch ($this->wm_hor_alignment) + { + case "L": + break; + case "R": + if ($this->wm_use_drop_shadow) + $x_shad += ($this->orig_width - $fontwidth*strlen($this->wm_text)); + $x_axis += ($this->orig_width - $fontwidth*strlen($this->wm_text)); + break; + case "C": + if ($this->wm_use_drop_shadow) + $x_shad += floor(($this->orig_width - $fontwidth*strlen($this->wm_text))/2); + $x_axis += floor(($this->orig_width -$fontwidth*strlen($this->wm_text))/2); + break; + } + + // Add the text to the source image + if ($this->wm_use_truetype) + { + if ($this->wm_use_drop_shadow) + imagettftext($src_img, $this->wm_font_size, 0, $x_shad, $y_shad, $drp_color, $this->wm_font_path, $this->wm_text); + imagettftext($src_img, $this->wm_font_size, 0, $x_axis, $y_axis, $txt_color, $this->wm_font_path, $this->wm_text); + } + else + { + if ($this->wm_use_drop_shadow) + imagestring($src_img, $this->wm_font_size, $x_shad, $y_shad, $this->wm_text, $drp_color); + imagestring($src_img, $this->wm_font_size, $x_axis, $y_axis, $this->wm_text, $txt_color); + } + + // Output the final image + if ($this->dynamic_output == TRUE) + { + $this->image_display_gd($src_img); + } + else + { + $this->image_save_gd($src_img); + } + + imagedestroy($src_img); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Create Image - GD + * + * This simply creates an image resource handle + * based on the type of image being processed + * + * @access public + * @param string + * @return resource + */ + function image_create_gd($path = '', $image_type = '') + { + if ($path == '') + $path = $this->full_src_path; + + if ($image_type == '') + $image_type = $this->image_type; + + + switch ($image_type) + { + case 1 : + if ( ! function_exists('imagecreatefromgif')) + { + $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_gif_not_supported')); + return FALSE; + } + + return imagecreatefromgif($path); + break; + case 2 : + if ( ! function_exists('imagecreatefromjpeg')) + { + $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_jpg_not_supported')); + return FALSE; + } + + return imagecreatefromjpeg($path); + break; + case 3 : + if ( ! function_exists('imagecreatefrompng')) + { + $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_png_not_supported')); + return FALSE; + } + + return imagecreatefrompng($path); + break; + + } + + $this->set_error(array('imglib_unsupported_imagecreate')); + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Write image file to disk - GD + * + * Takes an image resource as input and writes the file + * to the specified destination + * + * @access public + * @param resource + * @return bool + */ + function image_save_gd($resource) + { + switch ($this->image_type) + { + case 1 : + if ( ! function_exists('imagegif')) + { + $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_gif_not_supported')); + return FALSE; + } + + if ( ! @imagegif($resource, $this->full_dst_path)) + { + $this->set_error('imglib_save_failed'); + return FALSE; + } + break; + case 2 : + if ( ! function_exists('imagejpeg')) + { + $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_jpg_not_supported')); + return FALSE; + } + + if ( ! @imagejpeg($resource, $this->full_dst_path, $this->quality)) + { + $this->set_error('imglib_save_failed'); + return FALSE; + } + break; + case 3 : + if ( ! function_exists('imagepng')) + { + $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_png_not_supported')); + return FALSE; + } + + if ( ! @imagepng($resource, $this->full_dst_path)) + { + $this->set_error('imglib_save_failed'); + return FALSE; + } + break; + default : + $this->set_error(array('imglib_unsupported_imagecreate')); + return FALSE; + break; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Dynamically outputs an image + * + * @access public + * @param resource + * @return void + */ + function image_display_gd($resource) + { + header("Content-Disposition: filename={$this->source_image};"); + header("Content-Type: {$this->mime_type}"); + header('Content-Transfer-Encoding: binary'); + header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); + + switch ($this->image_type) + { + case 1 : imagegif($resource); + break; + case 2 : imagejpeg($resource, '', $this->quality); + break; + case 3 : imagepng($resource); + break; + default : echo 'Unable to display the image'; + break; + } + } + + // -------------------------------------------------------------------- + + /** + * Re-proportion Image Width/Height + * + * When creating thumbs, the desired width/height + * can end up warping the image due to an incorrect + * ratio between the full-sized image and the thumb. + * + * This function lets us re-proportion the width/height + * if users choose to maintain the aspect ratio when resizing. + * + * @access public + * @return void + */ + function image_reproportion() + { + if ( ! is_numeric($this->width) OR ! is_numeric($this->height) OR $this->width == 0 OR $this->height == 0) + return; + + if ( ! is_numeric($this->orig_width) OR ! is_numeric($this->orig_height) OR $this->orig_width == 0 OR $this->orig_height == 0) + return; + + $new_width = ceil($this->orig_width*$this->height/$this->orig_height); + $new_height = ceil($this->width*$this->orig_height/$this->orig_width); + + $ratio = (($this->orig_height/$this->orig_width) - ($this->height/$this->width)); + + if ($this->master_dim != 'width' AND $this->master_dim != 'height') + { + $this->master_dim = ($ratio < 0) ? 'width' : 'height'; + } + + if (($this->width != $new_width) AND ($this->height != $new_height)) + { + if ($this->master_dim == 'height') + { + $this->width = $new_width; + } + else + { + $this->height = $new_height; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Get image properties + * + * A helper function that gets info about the file + * + * @access public + * @param string + * @return mixed + */ + function get_image_properties($path = '', $return = FALSE) + { + // For now we require GD but we should + // find a way to determine this using IM or NetPBM + + if ($path == '') + $path = $this->full_src_path; + + if ( ! file_exists($path)) + { + $this->set_error('imglib_invalid_path'); + return FALSE; + } + + $vals = @getimagesize($path); + + $types = array(1 => 'gif', 2 => 'jpeg', 3 => 'png'); + + $mime = (isset($types[$vals['2']])) ? 'image/'.$types[$vals['2']] : 'image/jpg'; + + if ($return == TRUE) + { + $v['width'] = $vals['0']; + $v['height'] = $vals['1']; + $v['image_type'] = $vals['2']; + $v['size_str'] = $vals['3']; + $v['mime_type'] = $mime; + + return $v; + } + + $this->orig_width = $vals['0']; + $this->orig_height = $vals['1']; + $this->image_type = $vals['2']; + $this->size_str = $vals['3']; + $this->mime_type = $mime; + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Size calculator + * + * This function takes a known width x height and + * recalculates it to a new size. Only one + * new variable needs to be known + * + * $props = array( + * 'width' => $width, + * 'height' => $height, + * 'new_width' => 40, + * 'new_height' => '' + * ); + * + * @access public + * @param array + * @return array + */ + function size_calculator($vals) + { + if ( ! is_array($vals)) + { + return; + } + + $allowed = array('new_width', 'new_height', 'width', 'height'); + + foreach ($allowed as $item) + { + if ( ! isset($vals[$item]) OR $vals[$item] == '') + $vals[$item] = 0; + } + + if ($vals['width'] == 0 OR $vals['height'] == 0) + { + return $vals; + } + + if ($vals['new_width'] == 0) + { + $vals['new_width'] = ceil($vals['width']*$vals['new_height']/$vals['height']); + } + elseif ($vals['new_height'] == 0) + { + $vals['new_height'] = ceil($vals['new_width']*$vals['height']/$vals['width']); + } + + return $vals; + } + + // -------------------------------------------------------------------- + + /** + * Explode source_image + * + * This is a helper function that extracts the extension + * from the source_image. This function lets us deal with + * source_images with multiple periods, like: my.cool.jpg + * It returns an associative array with two elements: + * $array['ext'] = '.jpg'; + * $array['name'] = 'my.cool'; + * + * @access public + * @param array + * @return array + */ + function explode_name($source_image) + { + $ext = strrchr($source_image, '.'); + $name = ($ext === FALSE) ? $source_image : substr($source_image, 0, -strlen($ext)); + + return array('ext' => $ext, 'name' => $name); + } + + // -------------------------------------------------------------------- + + /** + * Is GD Installed? + * + * @access public + * @return bool + */ + function gd_loaded() + { + if ( ! extension_loaded('gd')) + { + if ( ! dl('gd.so')) + { + return FALSE; + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Get GD version + * + * @access public + * @return mixed + */ + function gd_version() + { + if (function_exists('gd_info')) + { + $gd_version = @gd_info(); + $gd_version = preg_replace("/\D/", "", $gd_version['GD Version']); + + return $gd_version; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Set error message + * + * @access public + * @param string + * @return void + */ + function set_error($msg) + { + $CI =& get_instance(); + $CI->lang->load('imglib'); + + if (is_array($msg)) + { + foreach ($msg as $val) + { + + $msg = ($CI->lang->line($val) == FALSE) ? $val : $CI->lang->line($val); + $this->error_msg[] = $msg; + log_message('error', $msg); + } + } + else + { + $msg = ($CI->lang->line($msg) == FALSE) ? $msg : $CI->lang->line($msg); + $this->error_msg[] = $msg; + log_message('error', $msg); + } + } + + // -------------------------------------------------------------------- + + /** + * Show error messages + * + * @access public + * @param string + * @return string + */ + function display_errors($open = '<p>', $close = '</p>') + { + $str = ''; + foreach ($this->error_msg as $val) + { + $str .= $open.$val.$close; + } + + return $str; + } + +} +// END Image_lib Class + +/* End of file Image_lib.php */ +/* Location: ./system/libraries/Image_lib.php */ \ No newline at end of file diff --git a/system/libraries/Javascript.php b/system/libraries/Javascript.php new file mode 100755 index 0000000..34e0d70 --- /dev/null +++ b/system/libraries/Javascript.php @@ -0,0 +1,871 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Javascript Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Javascript + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/javascript.html + */ +class CI_Javascript { + + var $_javascript_location = 'js'; + + public function __construct($params = array()) + { + $defaults = array('js_library_driver' => 'jquery', 'autoload' => TRUE); + + foreach ($defaults as $key => $val) + { + if (isset($params[$key]) && $params[$key] !== "") + { + $defaults[$key] = $params[$key]; + } + } + + extract($defaults); + + $this->CI =& get_instance(); + + // load the requested js library + $this->CI->load->library('javascript/'.$js_library_driver, array('autoload' => $autoload)); + // make js to refer to current library + $this->js =& $this->CI->$js_library_driver; + + log_message('debug', "Javascript Class Initialized and loaded. Driver used: $js_library_driver"); + } + + // -------------------------------------------------------------------- + // Event Code + // -------------------------------------------------------------------- + + /** + * Blur + * + * Outputs a javascript library blur event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function blur($element = 'this', $js = '') + { + return $this->js->_blur($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Change + * + * Outputs a javascript library change event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function change($element = 'this', $js = '') + { + return $this->js->_change($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Click + * + * Outputs a javascript library click event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @param boolean whether or not to return false + * @return string + */ + function click($element = 'this', $js = '', $ret_false = TRUE) + { + return $this->js->_click($element, $js, $ret_false); + } + + // -------------------------------------------------------------------- + + /** + * Double Click + * + * Outputs a javascript library dblclick event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function dblclick($element = 'this', $js = '') + { + return $this->js->_dblclick($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Outputs a javascript library error event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function error($element = 'this', $js = '') + { + return $this->js->_error($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Focus + * + * Outputs a javascript library focus event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function focus($element = 'this', $js = '') + { + return $this->js->__add_event($focus, $js); + } + + // -------------------------------------------------------------------- + + /** + * Hover + * + * Outputs a javascript library hover event + * + * @access public + * @param string - element + * @param string - Javascript code for mouse over + * @param string - Javascript code for mouse out + * @return string + */ + function hover($element = 'this', $over, $out) + { + return $this->js->__hover($element, $over, $out); + } + + // -------------------------------------------------------------------- + + /** + * Keydown + * + * Outputs a javascript library keydown event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function keydown($element = 'this', $js = '') + { + return $this->js->_keydown($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Keyup + * + * Outputs a javascript library keydown event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function keyup($element = 'this', $js = '') + { + return $this->js->_keyup($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Load + * + * Outputs a javascript library load event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function load($element = 'this', $js = '') + { + return $this->js->_load($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Mousedown + * + * Outputs a javascript library mousedown event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function mousedown($element = 'this', $js = '') + { + return $this->js->_mousedown($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Mouse Out + * + * Outputs a javascript library mouseout event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function mouseout($element = 'this', $js = '') + { + return $this->js->_mouseout($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Mouse Over + * + * Outputs a javascript library mouseover event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function mouseover($element = 'this', $js = '') + { + return $this->js->_mouseover($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Mouseup + * + * Outputs a javascript library mouseup event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function mouseup($element = 'this', $js = '') + { + return $this->js->_mouseup($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Output + * + * Outputs the called javascript to the screen + * + * @access public + * @param string The code to output + * @return string + */ + function output($js) + { + return $this->js->_output($js); + } + + // -------------------------------------------------------------------- + + /** + * Ready + * + * Outputs a javascript library mouseup event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function ready($js) + { + return $this->js->_document_ready($js); + } + + // -------------------------------------------------------------------- + + /** + * Resize + * + * Outputs a javascript library resize event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function resize($element = 'this', $js = '') + { + return $this->js->_resize($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Scroll + * + * Outputs a javascript library scroll event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function scroll($element = 'this', $js = '') + { + return $this->js->_scroll($element, $js); + } + + // -------------------------------------------------------------------- + + /** + * Unload + * + * Outputs a javascript library unload event + * + * @access public + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function unload($element = 'this', $js = '') + { + return $this->js->_unload($element, $js); + } + + // -------------------------------------------------------------------- + // Effects + // -------------------------------------------------------------------- + + + /** + * Add Class + * + * Outputs a javascript library addClass event + * + * @access public + * @param string - element + * @param string - Class to add + * @return string + */ + function addClass($element = 'this', $class = '') + { + return $this->js->_addClass($element, $class); + } + + // -------------------------------------------------------------------- + + /** + * Animate + * + * Outputs a javascript library animate event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function animate($element = 'this', $params = array(), $speed = '', $extra = '') + { + return $this->js->_animate($element, $params, $speed, $extra); + } + + // -------------------------------------------------------------------- + + /** + * Fade In + * + * Outputs a javascript library hide event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function fadeIn($element = 'this', $speed = '', $callback = '') + { + return $this->js->_fadeIn($element, $speed, $callback); + } + + // -------------------------------------------------------------------- + + /** + * Fade Out + * + * Outputs a javascript library hide event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function fadeOut($element = 'this', $speed = '', $callback = '') + { + return $this->js->_fadeOut($element, $speed, $callback); + } + // -------------------------------------------------------------------- + + /** + * Slide Up + * + * Outputs a javascript library slideUp event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function slideUp($element = 'this', $speed = '', $callback = '') + { + return $this->js->_slideUp($element, $speed, $callback); + + } + + // -------------------------------------------------------------------- + + /** + * Remove Class + * + * Outputs a javascript library removeClass event + * + * @access public + * @param string - element + * @param string - Class to add + * @return string + */ + function removeClass($element = 'this', $class = '') + { + return $this->js->_removeClass($element, $class); + } + + // -------------------------------------------------------------------- + + /** + * Slide Down + * + * Outputs a javascript library slideDown event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function slideDown($element = 'this', $speed = '', $callback = '') + { + return $this->js->_slideDown($element, $speed, $callback); + } + + // -------------------------------------------------------------------- + + /** + * Slide Toggle + * + * Outputs a javascript library slideToggle event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function slideToggle($element = 'this', $speed = '', $callback = '') + { + return $this->js->_slideToggle($element, $speed, $callback); + + } + + // -------------------------------------------------------------------- + + /** + * Hide + * + * Outputs a javascript library hide action + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function hide($element = 'this', $speed = '', $callback = '') + { + return $this->js->_hide($element, $speed, $callback); + } + + // -------------------------------------------------------------------- + + /** + * Toggle + * + * Outputs a javascript library toggle event + * + * @access public + * @param string - element + * @return string + */ + function toggle($element = 'this') + { + return $this->js->_toggle($element); + + } + + // -------------------------------------------------------------------- + + /** + * Toggle Class + * + * Outputs a javascript library toggle class event + * + * @access public + * @param string - element + * @return string + */ + function toggleClass($element = 'this', $class='') + { + return $this->js->_toggleClass($element, $class); + } + + // -------------------------------------------------------------------- + + /** + * Show + * + * Outputs a javascript library show event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function show($element = 'this', $speed = '', $callback = '') + { + return $this->js->_show($element, $speed, $callback); + } + + + // -------------------------------------------------------------------- + + /** + * Compile + * + * gather together all script needing to be output + * + * @access public + * @param string The element to attach the event to + * @return string + */ + function compile($view_var = 'script_foot', $script_tags = TRUE) + { + $this->js->_compile($view_var, $script_tags); + } + + /** + * Clear Compile + * + * Clears any previous javascript collected for output + * + * @access public + * @return void + */ + function clear_compile() + { + $this->js->_clear_compile(); + } + + // -------------------------------------------------------------------- + + /** + * External + * + * Outputs a <script> tag with the source as an external js file + * + * @access public + * @param string The element to attach the event to + * @return string + */ + function external($external_file = '', $relative = FALSE) + { + if ($external_file !== '') + { + $this->_javascript_location = $external_file; + } + else + { + if ($this->CI->config->item('javascript_location') != '') + { + $this->_javascript_location = $this->CI->config->item('javascript_location'); + } + } + + if ($relative === TRUE OR strncmp($external_file, 'http://', 7) == 0 OR strncmp($external_file, 'https://', 8) == 0) + { + $str = $this->_open_script($external_file); + } + elseif (strpos($this->_javascript_location, 'http://') !== FALSE) + { + $str = $this->_open_script($this->_javascript_location.$external_file); + } + else + { + $str = $this->_open_script($this->CI->config->slash_item('base_url').$this->_javascript_location.$external_file); + } + + $str .= $this->_close_script(); + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Inline + * + * Outputs a <script> tag + * + * @access public + * @param string The element to attach the event to + * @param boolean If a CDATA section should be added + * @return string + */ + function inline($script, $cdata = TRUE) + { + $str = $this->_open_script(); + $str .= ($cdata) ? "\n// <![CDATA[\n{$script}\n// ]]>\n" : "\n{$script}\n"; + $str .= $this->_close_script(); + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Open Script + * + * Outputs an opening <script> + * + * @access private + * @param string + * @return string + */ + function _open_script($src = '') + { + $str = '<script type="text/javascript" charset="'.strtolower($this->CI->config->item('charset')).'"'; + $str .= ($src == '') ? '>' : ' src="'.$src.'">'; + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Close Script + * + * Outputs an closing </script> + * + * @access private + * @param string + * @return string + */ + function _close_script($extra = "\n") + { + return "</script>$extra"; + } + + + // -------------------------------------------------------------------- + // -------------------------------------------------------------------- + // AJAX-Y STUFF - still a testbed + // -------------------------------------------------------------------- + // -------------------------------------------------------------------- + + /** + * Update + * + * Outputs a javascript library slideDown event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function update($element = 'this', $speed = '', $callback = '') + { + return $this->js->_updater($element, $speed, $callback); + } + + // -------------------------------------------------------------------- + + /** + * Generate JSON + * + * Can be passed a database result or associative array and returns a JSON formatted string + * + * @param mixed result set or array + * @param bool match array types (defaults to objects) + * @return string a json formatted string + */ + function generate_json($result = NULL, $match_array_type = FALSE) + { + // JSON data can optionally be passed to this function + // either as a database result object or an array, or a user supplied array + if ( ! is_null($result)) + { + if (is_object($result)) + { + $json_result = $result->result_array(); + } + elseif (is_array($result)) + { + $json_result = $result; + } + else + { + return $this->_prep_args($result); + } + } + else + { + return 'null'; + } + + $json = array(); + $_is_assoc = TRUE; + + if ( ! is_array($json_result) AND empty($json_result)) + { + show_error("Generate JSON Failed - Illegal key, value pair."); + } + elseif ($match_array_type) + { + $_is_assoc = $this->_is_associative_array($json_result); + } + + foreach ($json_result as $k => $v) + { + if ($_is_assoc) + { + $json[] = $this->_prep_args($k, TRUE).':'.$this->generate_json($v, $match_array_type); + } + else + { + $json[] = $this->generate_json($v, $match_array_type); + } + } + + $json = implode(',', $json); + + return $_is_assoc ? "{".$json."}" : "[".$json."]"; + + } + + // -------------------------------------------------------------------- + + /** + * Is associative array + * + * Checks for an associative array + * + * @access public + * @param type + * @return type + */ + function _is_associative_array($arr) + { + foreach (array_keys($arr) as $key => $val) + { + if ($key !== $val) + { + return TRUE; + } + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Prep Args + * + * Ensures a standard json value and escapes values + * + * @access public + * @param type + * @return type + */ + function _prep_args($result, $is_key = FALSE) + { + if (is_null($result)) + { + return 'null'; + } + elseif (is_bool($result)) + { + return ($result === TRUE) ? 'true' : 'false'; + } + elseif (is_string($result) OR $is_key) + { + return '"'.str_replace(array('\\', "\t", "\n", "\r", '"', '/'), array('\\\\', '\\t', '\\n', "\\r", '\"', '\/'), $result).'"'; + } + elseif (is_scalar($result)) + { + return $result; + } + } + + // -------------------------------------------------------------------- +} +// END Javascript Class + +/* End of file Javascript.php */ +/* Location: ./system/libraries/Javascript.php */ \ No newline at end of file diff --git a/system/libraries/Log.php b/system/libraries/Log.php new file mode 100755 index 0000000..9f1db76 --- /dev/null +++ b/system/libraries/Log.php @@ -0,0 +1,114 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Logging Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Logging + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/general/errors.html + */ +class CI_Log { + + protected $_log_path; + protected $_threshold = 1; + protected $_date_fmt = 'Y-m-d H:i:s'; + protected $_enabled = TRUE; + protected $_levels = array('ERROR' => '1', 'DEBUG' => '2', 'INFO' => '3', 'ALL' => '4'); + + /** + * Constructor + */ + public function __construct() + { + $config =& get_config(); + + $this->_log_path = ($config['log_path'] != '') ? $config['log_path'] : APPPATH.'logs/'; + + if ( ! is_dir($this->_log_path) OR ! is_really_writable($this->_log_path)) + { + $this->_enabled = FALSE; + } + + if (is_numeric($config['log_threshold'])) + { + $this->_threshold = $config['log_threshold']; + } + + if ($config['log_date_format'] != '') + { + $this->_date_fmt = $config['log_date_format']; + } + } + + // -------------------------------------------------------------------- + + /** + * Write Log File + * + * Generally this function will be called using the global log_message() function + * + * @param string the error level + * @param string the error message + * @param bool whether the error is a native PHP error + * @return bool + */ + public function write_log($level = 'error', $msg, $php_error = FALSE) + { + if ($this->_enabled === FALSE) + { + return FALSE; + } + + $level = strtoupper($level); + + if ( ! isset($this->_levels[$level]) OR ($this->_levels[$level] > $this->_threshold)) + { + return FALSE; + } + + $filepath = $this->_log_path.'log-'.date('Y-m-d').'.php'; + $message = ''; + + if ( ! file_exists($filepath)) + { + $message .= "<"."?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?".">\n\n"; + } + + if ( ! $fp = @fopen($filepath, FOPEN_WRITE_CREATE)) + { + return FALSE; + } + + $message .= $level.' '.(($level == 'INFO') ? ' -' : '-').' '.date($this->_date_fmt). ' --> '.$msg."\n"; + + flock($fp, LOCK_EX); + fwrite($fp, $message); + flock($fp, LOCK_UN); + fclose($fp); + + @chmod($filepath, FILE_WRITE_MODE); + return TRUE; + } + +} +// END Log Class + +/* End of file Log.php */ +/* Location: ./system/libraries/Log.php */ \ No newline at end of file diff --git a/system/libraries/Migration.php b/system/libraries/Migration.php new file mode 100755 index 0000000..ffa640b --- /dev/null +++ b/system/libraries/Migration.php @@ -0,0 +1,328 @@ +<?php defined('BASEPATH') OR exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author EllisLab Dev Team + * @copyright Copyright (c) 2006 - 2012, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Migration Class + * + * All migrations should implement this, forces up() and down() and gives + * access to the CI super-global. + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author Reactor Engineers + * @link + */ +class CI_Migration { + + protected $_migration_enabled = FALSE; + protected $_migration_path = NULL; + protected $_migration_version = 0; + + protected $_error_string = ''; + + public function __construct($config = array()) + { + # Only run this constructor on main library load + if (get_parent_class($this) !== FALSE) + { + return; + } + + foreach ($config as $key => $val) + { + $this->{'_' . $key} = $val; + } + + log_message('debug', 'Migrations class initialized'); + + // Are they trying to use migrations while it is disabled? + if ($this->_migration_enabled !== TRUE) + { + show_error('Migrations has been loaded but is disabled or set up incorrectly.'); + } + + // If not set, set it + $this->_migration_path == '' AND $this->_migration_path = APPPATH . 'migrations/'; + + // Add trailing slash if not set + $this->_migration_path = rtrim($this->_migration_path, '/').'/'; + + // Load migration language + $this->lang->load('migration'); + + // They'll probably be using dbforge + $this->load->dbforge(); + + // If the migrations table is missing, make it + if ( ! $this->db->table_exists('migrations')) + { + $this->dbforge->add_field(array( + 'version' => array('type' => 'INT', 'constraint' => 3), + )); + + $this->dbforge->create_table('migrations', TRUE); + + $this->db->insert('migrations', array('version' => 0)); + } + } + + // -------------------------------------------------------------------- + + /** + * Migrate to a schema version + * + * Calls each migration step required to get to the schema version of + * choice + * + * @param int Target schema version + * @return mixed TRUE if already latest, FALSE if failed, int if upgraded + */ + public function version($target_version) + { + $start = $current_version = $this->_get_version(); + $stop = $target_version; + + if ($target_version > $current_version) + { + // Moving Up + ++$start; + ++$stop; + $step = 1; + } + else + { + // Moving Down + $step = -1; + } + + $method = ($step === 1) ? 'up' : 'down'; + $migrations = array(); + + // We now prepare to actually DO the migrations + // But first let's make sure that everything is the way it should be + for ($i = $start; $i != $stop; $i += $step) + { + $f = glob(sprintf($this->_migration_path . '%03d_*.php', $i)); + + // Only one migration per step is permitted + if (count($f) > 1) + { + $this->_error_string = sprintf($this->lang->line('migration_multiple_version'), $i); + return FALSE; + } + + // Migration step not found + if (count($f) == 0) + { + // If trying to migrate up to a version greater than the last + // existing one, migrate to the last one. + if ($step == 1) + { + break; + } + + // If trying to migrate down but we're missing a step, + // something must definitely be wrong. + $this->_error_string = sprintf($this->lang->line('migration_not_found'), $i); + return FALSE; + } + + $file = basename($f[0]); + $name = basename($f[0], '.php'); + + // Filename validations + if (preg_match('/^\d{3}_(\w+)$/', $name, $match)) + { + $match[1] = strtolower($match[1]); + + // Cannot repeat a migration at different steps + if (in_array($match[1], $migrations)) + { + $this->_error_string = sprintf($this->lang->line('migration_multiple_version'), $match[1]); + return FALSE; + } + + include $f[0]; + $class = 'Migration_' . ucfirst($match[1]); + + if ( ! class_exists($class)) + { + $this->_error_string = sprintf($this->lang->line('migration_class_doesnt_exist'), $class); + return FALSE; + } + + if ( ! is_callable(array($class, $method))) + { + $this->_error_string = sprintf($this->lang->line('migration_missing_'.$method.'_method'), $class); + return FALSE; + } + + $migrations[] = $match[1]; + } + else + { + $this->_error_string = sprintf($this->lang->line('migration_invalid_filename'), $file); + return FALSE; + } + } + + log_message('debug', 'Current migration: ' . $current_version); + + $version = $i + ($step == 1 ? -1 : 0); + + // If there is nothing to do so quit + if ($migrations === array()) + { + return TRUE; + } + + log_message('debug', 'Migrating from ' . $method . ' to version ' . $version); + + // Loop through the migrations + foreach ($migrations AS $migration) + { + // Run the migration class + $class = 'Migration_' . ucfirst(strtolower($migration)); + call_user_func(array(new $class, $method)); + + $current_version += $step; + $this->_update_version($current_version); + } + + log_message('debug', 'Finished migrating to '.$current_version); + + return $current_version; + } + + // -------------------------------------------------------------------- + + /** + * Set's the schema to the latest migration + * + * @return mixed true if already latest, false if failed, int if upgraded + */ + public function latest() + { + if ( ! $migrations = $this->find_migrations()) + { + $this->_error_string = $this->lang->line('migration_none_found'); + return false; + } + + $last_migration = basename(end($migrations)); + + // Calculate the last migration step from existing migration + // filenames and procceed to the standard version migration + return $this->version((int) substr($last_migration, 0, 3)); + } + + // -------------------------------------------------------------------- + + /** + * Set's the schema to the migration version set in config + * + * @return mixed true if already current, false if failed, int if upgraded + */ + public function current() + { + return $this->version($this->_migration_version); + } + + // -------------------------------------------------------------------- + + /** + * Error string + * + * @return string Error message returned as a string + */ + public function error_string() + { + return $this->_error_string; + } + + // -------------------------------------------------------------------- + + /** + * Set's the schema to the latest migration + * + * @return mixed true if already latest, false if failed, int if upgraded + */ + protected function find_migrations() + { + // Load all *_*.php files in the migrations path + $files = glob($this->_migration_path . '*_*.php'); + $file_count = count($files); + + for ($i = 0; $i < $file_count; $i++) + { + // Mark wrongly formatted files as false for later filtering + $name = basename($files[$i], '.php'); + if ( ! preg_match('/^\d{3}_(\w+)$/', $name)) + { + $files[$i] = FALSE; + } + } + + sort($files); + return $files; + } + + // -------------------------------------------------------------------- + + /** + * Retrieves current schema version + * + * @return int Current Migration + */ + protected function _get_version() + { + $row = $this->db->get('migrations')->row(); + return $row ? $row->version : 0; + } + + // -------------------------------------------------------------------- + + /** + * Stores the current schema version + * + * @param int Migration reached + * @return bool + */ + protected function _update_version($migrations) + { + return $this->db->update('migrations', array( + 'version' => $migrations + )); + } + + // -------------------------------------------------------------------- + + /** + * Enable the use of CI super-global + * + * @param mixed $var + * @return mixed + */ + public function __get($var) + { + return get_instance()->$var; + } +} + +/* End of file Migration.php */ +/* Location: ./system/libraries/Migration.php */ \ No newline at end of file diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php new file mode 100755 index 0000000..cdaacf2 --- /dev/null +++ b/system/libraries/Pagination.php @@ -0,0 +1,340 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Pagination Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Pagination + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/pagination.html + */ +class CI_Pagination { + + var $base_url = ''; // The page we are linking to + var $prefix = ''; // A custom prefix added to the path. + var $suffix = ''; // A custom suffix added to the path. + + var $total_rows = 0; // Total number of items (database results) + var $per_page = 10; // Max number of items you want shown per page + var $num_links = 2; // Number of "digit" links to show before/after the currently viewed page + var $cur_page = 0; // The current page being viewed + var $use_page_numbers = FALSE; // Use page number for segment instead of offset + var $first_link = '&lsaquo; First'; + var $next_link = '&gt;'; + var $prev_link = '&lt;'; + var $last_link = 'Last &rsaquo;'; + var $uri_segment = 3; + var $full_tag_open = ''; + var $full_tag_close = ''; + var $first_tag_open = ''; + var $first_tag_close = '&nbsp;'; + var $last_tag_open = '&nbsp;'; + var $last_tag_close = ''; + var $first_url = ''; // Alternative URL for the First Page. + var $cur_tag_open = '&nbsp;<strong>'; + var $cur_tag_close = '</strong>'; + var $next_tag_open = '&nbsp;'; + var $next_tag_close = '&nbsp;'; + var $prev_tag_open = '&nbsp;'; + var $prev_tag_close = ''; + var $num_tag_open = '&nbsp;'; + var $num_tag_close = ''; + var $page_query_string = FALSE; + var $query_string_segment = 'per_page'; + var $display_pages = TRUE; + var $anchor_class = ''; + + /** + * Constructor + * + * @access public + * @param array initialization parameters + */ + public function __construct($params = array()) + { + if (count($params) > 0) + { + $this->initialize($params); + } + + if ($this->anchor_class != '') + { + $this->anchor_class = 'class="'.$this->anchor_class.'" '; + } + + log_message('debug', "Pagination Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize Preferences + * + * @access public + * @param array initialization parameters + * @return void + */ + function initialize($params = array()) + { + if (count($params) > 0) + { + foreach ($params as $key => $val) + { + if (isset($this->$key)) + { + $this->$key = $val; + } + } + } + } + + // -------------------------------------------------------------------- + + /** + * Generate the pagination links + * + * @access public + * @return string + */ + function create_links() + { + // If our item count or per-page total is zero there is no need to continue. + if ($this->total_rows == 0 OR $this->per_page == 0) + { + return ''; + } + + // Calculate the total number of pages + $num_pages = ceil($this->total_rows / $this->per_page); + + // Is there only one page? Hm... nothing more to do here then. + if ($num_pages == 1) + { + return ''; + } + + // Set the base page index for starting page number + if ($this->use_page_numbers) + { + $base_page = 1; + } + else + { + $base_page = 0; + } + + // Determine the current page number. + $CI =& get_instance(); + + if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE) + { + if ($CI->input->get($this->query_string_segment) != $base_page) + { + $this->cur_page = $CI->input->get($this->query_string_segment); + + // Prep the current page - no funny business! + $this->cur_page = (int) $this->cur_page; + } + } + else + { + if ($CI->uri->segment($this->uri_segment) != $base_page) + { + $this->cur_page = $CI->uri->segment($this->uri_segment); + + // Prep the current page - no funny business! + $this->cur_page = (int) $this->cur_page; + } + } + + // Set current page to 1 if using page numbers instead of offset + if ($this->use_page_numbers AND $this->cur_page == 0) + { + $this->cur_page = $base_page; + } + + $this->num_links = (int)$this->num_links; + + if ($this->num_links < 1) + { + show_error('Your number of links must be a positive number.'); + } + + if ( ! is_numeric($this->cur_page)) + { + $this->cur_page = $base_page; + } + + // Is the page number beyond the result range? + // If so we show the last page + if ($this->use_page_numbers) + { + if ($this->cur_page > $num_pages) + { + $this->cur_page = $num_pages; + } + } + else + { + if ($this->cur_page > $this->total_rows) + { + $this->cur_page = ($num_pages - 1) * $this->per_page; + } + } + + $uri_page_number = $this->cur_page; + + if ( ! $this->use_page_numbers) + { + $this->cur_page = floor(($this->cur_page/$this->per_page) + 1); + } + + // Calculate the start and end numbers. These determine + // which number to start and end the digit links with + $start = (($this->cur_page - $this->num_links) > 0) ? $this->cur_page - ($this->num_links - 1) : 1; + $end = (($this->cur_page + $this->num_links) < $num_pages) ? $this->cur_page + $this->num_links : $num_pages; + + // Is pagination being used over GET or POST? If get, add a per_page query + // string. If post, add a trailing slash to the base URL if needed + if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE) + { + $this->base_url = rtrim($this->base_url).'&amp;'.$this->query_string_segment.'='; + } + else + { + $this->base_url = rtrim($this->base_url, '/') .'/'; + } + + // And here we go... + $output = ''; + + // Render the "First" link + if ($this->first_link !== FALSE AND $this->cur_page > ($this->num_links + 1)) + { + $first_url = ($this->first_url == '') ? $this->base_url : $this->first_url; + $output .= $this->first_tag_open.'<a '.$this->anchor_class.'href="'.$first_url.'">'.$this->first_link.'</a>'.$this->first_tag_close; + } + + // Render the "previous" link + if ($this->prev_link !== FALSE AND $this->cur_page != 1) + { + if ($this->use_page_numbers) + { + $i = $uri_page_number - 1; + } + else + { + $i = $uri_page_number - $this->per_page; + } + + if ($i == 0 && $this->first_url != '') + { + $output .= $this->prev_tag_open.'<a '.$this->anchor_class.'href="'.$this->first_url.'">'.$this->prev_link.'</a>'.$this->prev_tag_close; + } + else + { + $i = ($i == 0) ? '' : $this->prefix.$i.$this->suffix; + $output .= $this->prev_tag_open.'<a '.$this->anchor_class.'href="'.$this->base_url.$i.'">'.$this->prev_link.'</a>'.$this->prev_tag_close; + } + + } + + // Render the pages + if ($this->display_pages !== FALSE) + { + // Write the digit links + for ($loop = $start -1; $loop <= $end; $loop++) + { + if ($this->use_page_numbers) + { + $i = $loop; + } + else + { + $i = ($loop * $this->per_page) - $this->per_page; + } + + if ($i >= $base_page) + { + if ($this->cur_page == $loop) + { + $output .= $this->cur_tag_open.$loop.$this->cur_tag_close; // Current page + } + else + { + $n = ($i == $base_page) ? '' : $i; + + if ($n == '' && $this->first_url != '') + { + $output .= $this->num_tag_open.'<a '.$this->anchor_class.'href="'.$this->first_url.'">'.$loop.'</a>'.$this->num_tag_close; + } + else + { + $n = ($n == '') ? '' : $this->prefix.$n.$this->suffix; + + $output .= $this->num_tag_open.'<a '.$this->anchor_class.'href="'.$this->base_url.$n.'">'.$loop.'</a>'.$this->num_tag_close; + } + } + } + } + } + + // Render the "next" link + if ($this->next_link !== FALSE AND $this->cur_page < $num_pages) + { + if ($this->use_page_numbers) + { + $i = $this->cur_page + 1; + } + else + { + $i = ($this->cur_page * $this->per_page); + } + + $output .= $this->next_tag_open.'<a '.$this->anchor_class.'href="'.$this->base_url.$this->prefix.$i.$this->suffix.'">'.$this->next_link.'</a>'.$this->next_tag_close; + } + + // Render the "Last" link + if ($this->last_link !== FALSE AND ($this->cur_page + $this->num_links) < $num_pages) + { + if ($this->use_page_numbers) + { + $i = $num_pages; + } + else + { + $i = (($num_pages * $this->per_page) - $this->per_page); + } + $output .= $this->last_tag_open.'<a '.$this->anchor_class.'href="'.$this->base_url.$this->prefix.$i.$this->suffix.'">'.$this->last_link.'</a>'.$this->last_tag_close; + } + + // Kill double slashes. Note: Sometimes we can end up with a double slash + // in the penultimate link so we'll kill all double slashes. + $output = preg_replace("#([^:])//+#", "\\1/", $output); + + // Add the wrapper HTML if exists + $output = $this->full_tag_open.$output.$this->full_tag_close; + + return $output; + } +} +// END Pagination Class + +/* End of file Pagination.php */ +/* Location: ./system/libraries/Pagination.php */ \ No newline at end of file diff --git a/system/libraries/Parser.php b/system/libraries/Parser.php new file mode 100755 index 0000000..d223da0 --- /dev/null +++ b/system/libraries/Parser.php @@ -0,0 +1,212 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Parser Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Parser + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/parser.html + */ +class CI_Parser { + + var $l_delim = '{'; + var $r_delim = '}'; + var $object; + + /** + * Parse a template + * + * Parses pseudo-variables contained in the specified template view, + * replacing them with the data in the second param + * + * @access public + * @param string + * @param array + * @param bool + * @return string + */ + public function parse($template, $data, $return = FALSE) + { + $CI =& get_instance(); + $template = $CI->load->view($template, $data, TRUE); + + return $this->_parse($template, $data, $return); + } + + // -------------------------------------------------------------------- + + /** + * Parse a String + * + * Parses pseudo-variables contained in the specified string, + * replacing them with the data in the second param + * + * @access public + * @param string + * @param array + * @param bool + * @return string + */ + function parse_string($template, $data, $return = FALSE) + { + return $this->_parse($template, $data, $return); + } + + // -------------------------------------------------------------------- + + /** + * Parse a template + * + * Parses pseudo-variables contained in the specified template, + * replacing them with the data in the second param + * + * @access public + * @param string + * @param array + * @param bool + * @return string + */ + function _parse($template, $data, $return = FALSE) + { + if ($template == '') + { + return FALSE; + } + + foreach ($data as $key => $val) + { + if (is_array($val)) + { + $template = $this->_parse_pair($key, $val, $template); + } + else + { + $template = $this->_parse_single($key, (string)$val, $template); + } + } + + if ($return == FALSE) + { + $CI =& get_instance(); + $CI->output->append_output($template); + } + + return $template; + } + + // -------------------------------------------------------------------- + + /** + * Set the left/right variable delimiters + * + * @access public + * @param string + * @param string + * @return void + */ + function set_delimiters($l = '{', $r = '}') + { + $this->l_delim = $l; + $this->r_delim = $r; + } + + // -------------------------------------------------------------------- + + /** + * Parse a single key/value + * + * @access private + * @param string + * @param string + * @param string + * @return string + */ + function _parse_single($key, $val, $string) + { + return str_replace($this->l_delim.$key.$this->r_delim, $val, $string); + } + + // -------------------------------------------------------------------- + + /** + * Parse a tag pair + * + * Parses tag pairs: {some_tag} string... {/some_tag} + * + * @access private + * @param string + * @param array + * @param string + * @return string + */ + function _parse_pair($variable, $data, $string) + { + if (FALSE === ($match = $this->_match_pair($string, $variable))) + { + return $string; + } + + $str = ''; + foreach ($data as $row) + { + $temp = $match['1']; + foreach ($row as $key => $val) + { + if ( ! is_array($val)) + { + $temp = $this->_parse_single($key, $val, $temp); + } + else + { + $temp = $this->_parse_pair($key, $val, $temp); + } + } + + $str .= $temp; + } + + return str_replace($match['0'], $str, $string); + } + + // -------------------------------------------------------------------- + + /** + * Matches a variable pair + * + * @access private + * @param string + * @param string + * @return mixed + */ + function _match_pair($string, $variable) + { + if ( ! preg_match("|" . preg_quote($this->l_delim) . $variable . preg_quote($this->r_delim) . "(.+?)". preg_quote($this->l_delim) . '/' . $variable . preg_quote($this->r_delim) . "|s", $string, $match)) + { + return FALSE; + } + + return $match; + } + +} +// END Parser Class + +/* End of file Parser.php */ +/* Location: ./system/libraries/Parser.php */ diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php new file mode 100755 index 0000000..882a82c --- /dev/null +++ b/system/libraries/Profiler.php @@ -0,0 +1,558 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * CodeIgniter Profiler Class + * + * This class enables you to display benchmark, query, and other data + * in order to help with debugging and optimization. + * + * Note: At some point it would be good to move all the HTML in this class + * into a set of template files in order to allow customization. + * + * @package CodeIgniter + * @subpackage Libraries + * @category Libraries + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/general/profiling.html + */ +class CI_Profiler { + + protected $_available_sections = array( + 'benchmarks', + 'get', + 'memory_usage', + 'post', + 'uri_string', + 'controller_info', + 'queries', + 'http_headers', + 'session_data', + 'config' + ); + + protected $_query_toggle_count = 25; + + protected $CI; + + // -------------------------------------------------------------------- + + public function __construct($config = array()) + { + $this->CI =& get_instance(); + $this->CI->load->language('profiler'); + + if (isset($config['query_toggle_count'])) + { + $this->_query_toggle_count = (int) $config['query_toggle_count']; + unset($config['query_toggle_count']); + } + + // default all sections to display + foreach ($this->_available_sections as $section) + { + if ( ! isset($config[$section])) + { + $this->_compile_{$section} = TRUE; + } + } + + $this->set_sections($config); + } + + // -------------------------------------------------------------------- + + /** + * Set Sections + * + * Sets the private _compile_* properties to enable/disable Profiler sections + * + * @param mixed + * @return void + */ + public function set_sections($config) + { + foreach ($config as $method => $enable) + { + if (in_array($method, $this->_available_sections)) + { + $this->_compile_{$method} = ($enable !== FALSE) ? TRUE : FALSE; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Auto Profiler + * + * This function cycles through the entire array of mark points and + * matches any two points that are named identically (ending in "_start" + * and "_end" respectively). It then compiles the execution times for + * all points and returns it as an array + * + * @return array + */ + protected function _compile_benchmarks() + { + $profile = array(); + foreach ($this->CI->benchmark->marker as $key => $val) + { + // We match the "end" marker so that the list ends + // up in the order that it was defined + if (preg_match("/(.+?)_end/i", $key, $match)) + { + if (isset($this->CI->benchmark->marker[$match[1].'_end']) AND isset($this->CI->benchmark->marker[$match[1].'_start'])) + { + $profile[$match[1]] = $this->CI->benchmark->elapsed_time($match[1].'_start', $key); + } + } + } + + // Build a table containing the profile data. + // Note: At some point we should turn this into a template that can + // be modified. We also might want to make this data available to be logged + + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_benchmarks" style="border:1px solid #900;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#900;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_benchmarks').'&nbsp;&nbsp;</legend>'; + $output .= "\n"; + $output .= "\n\n<table style='width:100%'>\n"; + + foreach ($profile as $key => $val) + { + $key = ucwords(str_replace(array('_', '-'), ' ', $key)); + $output .= "<tr><td style='padding:5px;width:50%;color:#000;font-weight:bold;background-color:#ddd;'>".$key."&nbsp;&nbsp;</td><td style='padding:5px;width:50%;color:#900;font-weight:normal;background-color:#ddd;'>".$val."</td></tr>\n"; + } + + $output .= "</table>\n"; + $output .= "</fieldset>"; + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Compile Queries + * + * @return string + */ + protected function _compile_queries() + { + $dbs = array(); + + // Let's determine which databases are currently connected to + foreach (get_object_vars($this->CI) as $CI_object) + { + if (is_object($CI_object) && is_subclass_of(get_class($CI_object), 'CI_DB') ) + { + $dbs[] = $CI_object; + } + } + + if (count($dbs) == 0) + { + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_queries" style="border:1px solid #0000FF;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#0000FF;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_queries').'&nbsp;&nbsp;</legend>'; + $output .= "\n"; + $output .= "\n\n<table style='border:none; width:100%;'>\n"; + $output .="<tr><td style='width:100%;color:#0000FF;font-weight:normal;background-color:#eee;padding:5px'>".$this->CI->lang->line('profiler_no_db')."</td></tr>\n"; + $output .= "</table>\n"; + $output .= "</fieldset>"; + + return $output; + } + + // Load the text helper so we can highlight the SQL + $this->CI->load->helper('text'); + + // Key words we want bolded + $highlight = array('SELECT', 'DISTINCT', 'FROM', 'WHERE', 'AND', 'LEFT&nbsp;JOIN', 'ORDER&nbsp;BY', 'GROUP&nbsp;BY', 'LIMIT', 'INSERT', 'INTO', 'VALUES', 'UPDATE', 'OR&nbsp;', 'HAVING', 'OFFSET', 'NOT&nbsp;IN', 'IN', 'LIKE', 'NOT&nbsp;LIKE', 'COUNT', 'MAX', 'MIN', 'ON', 'AS', 'AVG', 'SUM', '(', ')'); + + $output = "\n\n"; + + $count = 0; + + foreach ($dbs as $db) + { + $count++; + + $hide_queries = (count($db->queries) > $this->_query_toggle_count) ? ' display:none' : ''; + + $show_hide_js = '(<span style="cursor: pointer;" onclick="var s=document.getElementById(\'ci_profiler_queries_db_'.$count.'\').style;s.display=s.display==\'none\'?\'\':\'none\';this.innerHTML=this.innerHTML==\''.$this->CI->lang->line('profiler_section_hide').'\'?\''.$this->CI->lang->line('profiler_section_show').'\':\''.$this->CI->lang->line('profiler_section_hide').'\';">'.$this->CI->lang->line('profiler_section_hide').'</span>)'; + + if ($hide_queries != '') + { + $show_hide_js = '(<span style="cursor: pointer;" onclick="var s=document.getElementById(\'ci_profiler_queries_db_'.$count.'\').style;s.display=s.display==\'none\'?\'\':\'none\';this.innerHTML=this.innerHTML==\''.$this->CI->lang->line('profiler_section_show').'\'?\''.$this->CI->lang->line('profiler_section_hide').'\':\''.$this->CI->lang->line('profiler_section_show').'\';">'.$this->CI->lang->line('profiler_section_show').'</span>)'; + } + + $output .= '<fieldset style="border:1px solid #0000FF;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#0000FF;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_database').':&nbsp; '.$db->database.'&nbsp;&nbsp;&nbsp;'.$this->CI->lang->line('profiler_queries').': '.count($db->queries).'&nbsp;&nbsp;'.$show_hide_js.'</legend>'; + $output .= "\n"; + $output .= "\n\n<table style='width:100%;{$hide_queries}' id='ci_profiler_queries_db_{$count}'>\n"; + + if (count($db->queries) == 0) + { + $output .= "<tr><td style='width:100%;color:#0000FF;font-weight:normal;background-color:#eee;padding:5px;'>".$this->CI->lang->line('profiler_no_queries')."</td></tr>\n"; + } + else + { + foreach ($db->queries as $key => $val) + { + $time = number_format($db->query_times[$key], 4); + + $val = highlight_code($val, ENT_QUOTES); + + foreach ($highlight as $bold) + { + $val = str_replace($bold, '<strong>'.$bold.'</strong>', $val); + } + + $output .= "<tr><td style='padding:5px; vertical-align: top;width:1%;color:#900;font-weight:normal;background-color:#ddd;'>".$time."&nbsp;&nbsp;</td><td style='padding:5px; color:#000;font-weight:normal;background-color:#ddd;'>".$val."</td></tr>\n"; + } + } + + $output .= "</table>\n"; + $output .= "</fieldset>"; + + } + + return $output; + } + + + // -------------------------------------------------------------------- + + /** + * Compile $_GET Data + * + * @return string + */ + protected function _compile_get() + { + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_get" style="border:1px solid #cd6e00;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#cd6e00;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_get_data').'&nbsp;&nbsp;</legend>'; + $output .= "\n"; + + if (count($_GET) == 0) + { + $output .= "<div style='color:#cd6e00;font-weight:normal;padding:4px 0 4px 0'>".$this->CI->lang->line('profiler_no_get')."</div>"; + } + else + { + $output .= "\n\n<table style='width:100%; border:none'>\n"; + + foreach ($_GET as $key => $val) + { + if ( ! is_numeric($key)) + { + $key = "'".$key."'"; + } + + $output .= "<tr><td style='width:50%;color:#000;background-color:#ddd;padding:5px'>&#36;_GET[".$key."]&nbsp;&nbsp; </td><td style='width:50%;padding:5px;color:#cd6e00;font-weight:normal;background-color:#ddd;'>"; + if (is_array($val)) + { + $output .= "<pre>" . htmlspecialchars(stripslashes(print_r($val, true))) . "</pre>"; + } + else + { + $output .= htmlspecialchars(stripslashes($val)); + } + $output .= "</td></tr>\n"; + } + + $output .= "</table>\n"; + } + $output .= "</fieldset>"; + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Compile $_POST Data + * + * @return string + */ + protected function _compile_post() + { + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_post" style="border:1px solid #009900;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#009900;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_post_data').'&nbsp;&nbsp;</legend>'; + $output .= "\n"; + + if (count($_POST) == 0) + { + $output .= "<div style='color:#009900;font-weight:normal;padding:4px 0 4px 0'>".$this->CI->lang->line('profiler_no_post')."</div>"; + } + else + { + $output .= "\n\n<table style='width:100%'>\n"; + + foreach ($_POST as $key => $val) + { + if ( ! is_numeric($key)) + { + $key = "'".$key."'"; + } + + $output .= "<tr><td style='width:50%;padding:5px;color:#000;background-color:#ddd;'>&#36;_POST[".$key."]&nbsp;&nbsp; </td><td style='width:50%;padding:5px;color:#009900;font-weight:normal;background-color:#ddd;'>"; + if (is_array($val)) + { + $output .= "<pre>" . htmlspecialchars(stripslashes(print_r($val, TRUE))) . "</pre>"; + } + else + { + $output .= htmlspecialchars(stripslashes($val)); + } + $output .= "</td></tr>\n"; + } + + $output .= "</table>\n"; + } + $output .= "</fieldset>"; + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Show query string + * + * @return string + */ + protected function _compile_uri_string() + { + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_uri_string" style="border:1px solid #000;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#000;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_uri_string').'&nbsp;&nbsp;</legend>'; + $output .= "\n"; + + if ($this->CI->uri->uri_string == '') + { + $output .= "<div style='color:#000;font-weight:normal;padding:4px 0 4px 0'>".$this->CI->lang->line('profiler_no_uri')."</div>"; + } + else + { + $output .= "<div style='color:#000;font-weight:normal;padding:4px 0 4px 0'>".$this->CI->uri->uri_string."</div>"; + } + + $output .= "</fieldset>"; + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Show the controller and function that were called + * + * @return string + */ + protected function _compile_controller_info() + { + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_controller_info" style="border:1px solid #995300;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#995300;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_controller_info').'&nbsp;&nbsp;</legend>'; + $output .= "\n"; + + $output .= "<div style='color:#995300;font-weight:normal;padding:4px 0 4px 0'>".$this->CI->router->fetch_class()."/".$this->CI->router->fetch_method()."</div>"; + + $output .= "</fieldset>"; + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Compile memory usage + * + * Display total used memory + * + * @return string + */ + protected function _compile_memory_usage() + { + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_memory_usage" style="border:1px solid #5a0099;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#5a0099;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_memory_usage').'&nbsp;&nbsp;</legend>'; + $output .= "\n"; + + if (function_exists('memory_get_usage') && ($usage = memory_get_usage()) != '') + { + $output .= "<div style='color:#5a0099;font-weight:normal;padding:4px 0 4px 0'>".number_format($usage).' bytes</div>'; + } + else + { + $output .= "<div style='color:#5a0099;font-weight:normal;padding:4px 0 4px 0'>".$this->CI->lang->line('profiler_no_memory')."</div>"; + } + + $output .= "</fieldset>"; + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Compile header information + * + * Lists HTTP headers + * + * @return string + */ + protected function _compile_http_headers() + { + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_http_headers" style="border:1px solid #000;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#000;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_headers').'&nbsp;&nbsp;(<span style="cursor: pointer;" onclick="var s=document.getElementById(\'ci_profiler_httpheaders_table\').style;s.display=s.display==\'none\'?\'\':\'none\';this.innerHTML=this.innerHTML==\''.$this->CI->lang->line('profiler_section_show').'\'?\''.$this->CI->lang->line('profiler_section_hide').'\':\''.$this->CI->lang->line('profiler_section_show').'\';">'.$this->CI->lang->line('profiler_section_show').'</span>)</legend>'; + $output .= "\n"; + + $output .= "\n\n<table style='width:100%;display:none' id='ci_profiler_httpheaders_table'>\n"; + + foreach (array('HTTP_ACCEPT', 'HTTP_USER_AGENT', 'HTTP_CONNECTION', 'SERVER_PORT', 'SERVER_NAME', 'REMOTE_ADDR', 'SERVER_SOFTWARE', 'HTTP_ACCEPT_LANGUAGE', 'SCRIPT_NAME', 'REQUEST_METHOD',' HTTP_HOST', 'REMOTE_HOST', 'CONTENT_TYPE', 'SERVER_PROTOCOL', 'QUERY_STRING', 'HTTP_ACCEPT_ENCODING', 'HTTP_X_FORWARDED_FOR') as $header) + { + $val = (isset($_SERVER[$header])) ? $_SERVER[$header] : ''; + $output .= "<tr><td style='vertical-align: top;width:50%;padding:5px;color:#900;background-color:#ddd;'>".$header."&nbsp;&nbsp;</td><td style='width:50%;padding:5px;color:#000;background-color:#ddd;'>".$val."</td></tr>\n"; + } + + $output .= "</table>\n"; + $output .= "</fieldset>"; + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Compile config information + * + * Lists developer config variables + * + * @return string + */ + protected function _compile_config() + { + $output = "\n\n"; + $output .= '<fieldset id="ci_profiler_config" style="border:1px solid #000;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= "\n"; + $output .= '<legend style="color:#000;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_config').'&nbsp;&nbsp;(<span style="cursor: pointer;" onclick="var s=document.getElementById(\'ci_profiler_config_table\').style;s.display=s.display==\'none\'?\'\':\'none\';this.innerHTML=this.innerHTML==\''.$this->CI->lang->line('profiler_section_show').'\'?\''.$this->CI->lang->line('profiler_section_hide').'\':\''.$this->CI->lang->line('profiler_section_show').'\';">'.$this->CI->lang->line('profiler_section_show').'</span>)</legend>'; + $output .= "\n"; + + $output .= "\n\n<table style='width:100%; display:none' id='ci_profiler_config_table'>\n"; + + foreach ($this->CI->config->config as $config=>$val) + { + if (is_array($val)) + { + $val = print_r($val, TRUE); + } + + $output .= "<tr><td style='padding:5px; vertical-align: top;color:#900;background-color:#ddd;'>".$config."&nbsp;&nbsp;</td><td style='padding:5px; color:#000;background-color:#ddd;'>".htmlspecialchars($val)."</td></tr>\n"; + } + + $output .= "</table>\n"; + $output .= "</fieldset>"; + + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Compile session userdata + * + * @return string + */ + private function _compile_session_data() + { + if ( ! isset($this->CI->session)) + { + return; + } + + $output = '<fieldset id="ci_profiler_csession" style="border:1px solid #000;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">'; + $output .= '<legend style="color:#000;">&nbsp;&nbsp;'.$this->CI->lang->line('profiler_session_data').'&nbsp;&nbsp;(<span style="cursor: pointer;" onclick="var s=document.getElementById(\'ci_profiler_session_data\').style;s.display=s.display==\'none\'?\'\':\'none\';this.innerHTML=this.innerHTML==\''.$this->CI->lang->line('profiler_section_show').'\'?\''.$this->CI->lang->line('profiler_section_hide').'\':\''.$this->CI->lang->line('profiler_section_show').'\';">'.$this->CI->lang->line('profiler_section_show').'</span>)</legend>'; + $output .= "<table style='width:100%;display:none' id='ci_profiler_session_data'>"; + + foreach ($this->CI->session->all_userdata() as $key => $val) + { + if (is_array($val) OR is_object($val)) + { + $val = print_r($val, TRUE); + } + + $output .= "<tr><td style='padding:5px; vertical-align: top;color:#900;background-color:#ddd;'>".$key."&nbsp;&nbsp;</td><td style='padding:5px; color:#000;background-color:#ddd;'>".htmlspecialchars($val)."</td></tr>\n"; + } + + $output .= '</table>'; + $output .= "</fieldset>"; + return $output; + } + + // -------------------------------------------------------------------- + + /** + * Run the Profiler + * + * @return string + */ + public function run() + { + $output = "<div id='codeigniter_profiler' style='clear:both;background-color:#fff;padding:10px;'>"; + $fields_displayed = 0; + + foreach ($this->_available_sections as $section) + { + if ($this->_compile_{$section} !== FALSE) + { + $func = "_compile_{$section}"; + $output .= $this->{$func}(); + $fields_displayed++; + } + } + + if ($fields_displayed == 0) + { + $output .= '<p style="border:1px solid #5a0099;padding:10px;margin:20px 0;background-color:#eee">'.$this->CI->lang->line('profiler_no_profiles').'</p>'; + } + + $output .= '</div>'; + + return $output; + } +} + +// END CI_Profiler class + +/* End of file Profiler.php */ +/* Location: ./system/libraries/Profiler.php */ \ No newline at end of file diff --git a/system/libraries/Session.php b/system/libraries/Session.php new file mode 100755 index 0000000..891fdd3 --- /dev/null +++ b/system/libraries/Session.php @@ -0,0 +1,780 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Session Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Sessions + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/sessions.html + */ +class CI_Session { + + var $sess_encrypt_cookie = FALSE; + var $sess_use_database = FALSE; + var $sess_table_name = ''; + var $sess_expiration = 7200; + var $sess_expire_on_close = FALSE; + var $sess_match_ip = FALSE; + var $sess_match_useragent = TRUE; + var $sess_cookie_name = 'ci_session'; + var $cookie_prefix = ''; + var $cookie_path = ''; + var $cookie_domain = ''; + var $cookie_secure = FALSE; + var $sess_time_to_update = 300; + var $encryption_key = ''; + var $flashdata_key = 'flash'; + var $time_reference = 'time'; + var $gc_probability = 5; + var $userdata = array(); + var $CI; + var $now; + + /** + * Session Constructor + * + * The constructor runs the session routines automatically + * whenever the class is instantiated. + */ + public function __construct($params = array()) + { + log_message('debug', "Session Class Initialized"); + + // Set the super object to a local variable for use throughout the class + $this->CI =& get_instance(); + + // Set all the session preferences, which can either be set + // manually via the $params array above or via the config file + foreach (array('sess_encrypt_cookie', 'sess_use_database', 'sess_table_name', 'sess_expiration', 'sess_expire_on_close', 'sess_match_ip', 'sess_match_useragent', 'sess_cookie_name', 'cookie_path', 'cookie_domain', 'cookie_secure', 'sess_time_to_update', 'time_reference', 'cookie_prefix', 'encryption_key') as $key) + { + $this->$key = (isset($params[$key])) ? $params[$key] : $this->CI->config->item($key); + } + + if ($this->encryption_key == '') + { + show_error('In order to use the Session class you are required to set an encryption key in your config file.'); + } + + // Load the string helper so we can use the strip_slashes() function + $this->CI->load->helper('string'); + + // Do we need encryption? If so, load the encryption class + if ($this->sess_encrypt_cookie == TRUE) + { + $this->CI->load->library('encrypt'); + } + + // Are we using a database? If so, load it + if ($this->sess_use_database === TRUE AND $this->sess_table_name != '') + { + $this->CI->load->database(); + } + + // Set the "now" time. Can either be GMT or server time, based on the + // config prefs. We use this to set the "last activity" time + $this->now = $this->_get_time(); + + // Set the session length. If the session expiration is + // set to zero we'll set the expiration two years from now. + if ($this->sess_expiration == 0) + { + $this->sess_expiration = (60*60*24*365*2); + } + + // Set the cookie name + $this->sess_cookie_name = $this->cookie_prefix.$this->sess_cookie_name; + + // Run the Session routine. If a session doesn't exist we'll + // create a new one. If it does, we'll update it. + if ( ! $this->sess_read()) + { + $this->sess_create(); + } + else + { + $this->sess_update(); + } + + // Delete 'old' flashdata (from last request) + $this->_flashdata_sweep(); + + // Mark all new flashdata as old (data will be deleted before next request) + $this->_flashdata_mark(); + + // Delete expired sessions if necessary + $this->_sess_gc(); + + log_message('debug', "Session routines successfully run"); + } + + // -------------------------------------------------------------------- + + /** + * Fetch the current session data if it exists + * + * @access public + * @return bool + */ + function sess_read() + { + // Fetch the cookie + $session = $this->CI->input->cookie($this->sess_cookie_name); + + // No cookie? Goodbye cruel world!... + if ($session === FALSE) + { + log_message('debug', 'A session cookie was not found.'); + return FALSE; + } + + // Decrypt the cookie data + if ($this->sess_encrypt_cookie == TRUE) + { + $session = $this->CI->encrypt->decode($session); + } + else + { + // encryption was not used, so we need to check the md5 hash + $hash = substr($session, strlen($session)-32); // get last 32 chars + $session = substr($session, 0, strlen($session)-32); + + // Does the md5 hash match? This is to prevent manipulation of session data in userspace + if ($hash !== md5($session.$this->encryption_key)) + { + log_message('error', 'The session cookie data did not match what was expected. This could be a possible hacking attempt.'); + $this->sess_destroy(); + return FALSE; + } + } + + // Unserialize the session array + $session = $this->_unserialize($session); + + // Is the session data we unserialized an array with the correct format? + if ( ! is_array($session) OR ! isset($session['session_id']) OR ! isset($session['ip_address']) OR ! isset($session['user_agent']) OR ! isset($session['last_activity'])) + { + $this->sess_destroy(); + return FALSE; + } + + // Is the session current? + if (($session['last_activity'] + $this->sess_expiration) < $this->now) + { + $this->sess_destroy(); + return FALSE; + } + + // Does the IP Match? + if ($this->sess_match_ip == TRUE AND $session['ip_address'] != $this->CI->input->ip_address()) + { + $this->sess_destroy(); + return FALSE; + } + + // Does the User Agent Match? + if ($this->sess_match_useragent == TRUE AND trim($session['user_agent']) != trim(substr($this->CI->input->user_agent(), 0, 120))) + { + $this->sess_destroy(); + return FALSE; + } + + // Is there a corresponding session in the DB? + if ($this->sess_use_database === TRUE) + { + $this->CI->db->where('session_id', $session['session_id']); + + if ($this->sess_match_ip == TRUE) + { + $this->CI->db->where('ip_address', $session['ip_address']); + } + + if ($this->sess_match_useragent == TRUE) + { + $this->CI->db->where('user_agent', $session['user_agent']); + } + + $query = $this->CI->db->get($this->sess_table_name); + + // No result? Kill it! + if ($query->num_rows() == 0) + { + $this->sess_destroy(); + return FALSE; + } + + // Is there custom data? If so, add it to the main session array + $row = $query->row(); + if (isset($row->user_data) AND $row->user_data != '') + { + $custom_data = $this->_unserialize($row->user_data); + + if (is_array($custom_data)) + { + foreach ($custom_data as $key => $val) + { + $session[$key] = $val; + } + } + } + } + + // Session is valid! + $this->userdata = $session; + unset($session); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Write the session data + * + * @access public + * @return void + */ + function sess_write() + { + // Are we saving custom data to the DB? If not, all we do is update the cookie + if ($this->sess_use_database === FALSE) + { + $this->_set_cookie(); + return; + } + + // set the custom userdata, the session data we will set in a second + $custom_userdata = $this->userdata; + $cookie_userdata = array(); + + // Before continuing, we need to determine if there is any custom data to deal with. + // Let's determine this by removing the default indexes to see if there's anything left in the array + // and set the session data while we're at it + foreach (array('session_id','ip_address','user_agent','last_activity') as $val) + { + unset($custom_userdata[$val]); + $cookie_userdata[$val] = $this->userdata[$val]; + } + + // Did we find any custom data? If not, we turn the empty array into a string + // since there's no reason to serialize and store an empty array in the DB + if (count($custom_userdata) === 0) + { + $custom_userdata = ''; + } + else + { + // Serialize the custom data array so we can store it + $custom_userdata = $this->_serialize($custom_userdata); + } + + // Run the update query + $this->CI->db->where('session_id', $this->userdata['session_id']); + $this->CI->db->update($this->sess_table_name, array('last_activity' => $this->userdata['last_activity'], 'user_data' => $custom_userdata)); + + // Write the cookie. Notice that we manually pass the cookie data array to the + // _set_cookie() function. Normally that function will store $this->userdata, but + // in this case that array contains custom data, which we do not want in the cookie. + $this->_set_cookie($cookie_userdata); + } + + // -------------------------------------------------------------------- + + /** + * Create a new session + * + * @access public + * @return void + */ + function sess_create() + { + $sessid = ''; + while (strlen($sessid) < 32) + { + $sessid .= mt_rand(0, mt_getrandmax()); + } + + // To make the session ID even more secure we'll combine it with the user's IP + $sessid .= $this->CI->input->ip_address(); + + $this->userdata = array( + 'session_id' => md5(uniqid($sessid, TRUE)), + 'ip_address' => $this->CI->input->ip_address(), + 'user_agent' => substr($this->CI->input->user_agent(), 0, 120), + 'last_activity' => $this->now, + 'user_data' => '' + ); + + + // Save the data to the DB if needed + if ($this->sess_use_database === TRUE) + { + $this->CI->db->query($this->CI->db->insert_string($this->sess_table_name, $this->userdata)); + } + + // Write the cookie + $this->_set_cookie(); + } + + // -------------------------------------------------------------------- + + /** + * Update an existing session + * + * @access public + * @return void + */ + function sess_update() + { + // We only update the session every five minutes by default + if (($this->userdata['last_activity'] + $this->sess_time_to_update) >= $this->now) + { + return; + } + + // Save the old session id so we know which record to + // update in the database if we need it + $old_sessid = $this->userdata['session_id']; + $new_sessid = ''; + while (strlen($new_sessid) < 32) + { + $new_sessid .= mt_rand(0, mt_getrandmax()); + } + + // To make the session ID even more secure we'll combine it with the user's IP + $new_sessid .= $this->CI->input->ip_address(); + + // Turn it into a hash + $new_sessid = md5(uniqid($new_sessid, TRUE)); + + // Update the session data in the session data array + $this->userdata['session_id'] = $new_sessid; + $this->userdata['last_activity'] = $this->now; + + // _set_cookie() will handle this for us if we aren't using database sessions + // by pushing all userdata to the cookie. + $cookie_data = NULL; + + // Update the session ID and last_activity field in the DB if needed + if ($this->sess_use_database === TRUE) + { + // set cookie explicitly to only have our session data + $cookie_data = array(); + foreach (array('session_id','ip_address','user_agent','last_activity') as $val) + { + $cookie_data[$val] = $this->userdata[$val]; + } + + $this->CI->db->query($this->CI->db->update_string($this->sess_table_name, array('last_activity' => $this->now, 'session_id' => $new_sessid), array('session_id' => $old_sessid))); + } + + // Write the cookie + $this->_set_cookie($cookie_data); + } + + // -------------------------------------------------------------------- + + /** + * Destroy the current session + * + * @access public + * @return void + */ + function sess_destroy() + { + // Kill the session DB row + if ($this->sess_use_database === TRUE && isset($this->userdata['session_id'])) + { + $this->CI->db->where('session_id', $this->userdata['session_id']); + $this->CI->db->delete($this->sess_table_name); + } + + // Kill the cookie + setcookie( + $this->sess_cookie_name, + addslashes(serialize(array())), + ($this->now - 31500000), + $this->cookie_path, + $this->cookie_domain, + 0 + ); + + // Kill session data + $this->userdata = array(); + } + + // -------------------------------------------------------------------- + + /** + * Fetch a specific item from the session array + * + * @access public + * @param string + * @return string + */ + function userdata($item) + { + return ( ! isset($this->userdata[$item])) ? FALSE : $this->userdata[$item]; + } + + // -------------------------------------------------------------------- + + /** + * Fetch all session data + * + * @access public + * @return array + */ + function all_userdata() + { + return $this->userdata; + } + + // -------------------------------------------------------------------- + + /** + * Add or change data in the "userdata" array + * + * @access public + * @param mixed + * @param string + * @return void + */ + function set_userdata($newdata = array(), $newval = '') + { + if (is_string($newdata)) + { + $newdata = array($newdata => $newval); + } + + if (count($newdata) > 0) + { + foreach ($newdata as $key => $val) + { + $this->userdata[$key] = $val; + } + } + + $this->sess_write(); + } + + // -------------------------------------------------------------------- + + /** + * Delete a session variable from the "userdata" array + * + * @access array + * @return void + */ + function unset_userdata($newdata = array()) + { + if (is_string($newdata)) + { + $newdata = array($newdata => ''); + } + + if (count($newdata) > 0) + { + foreach ($newdata as $key => $val) + { + unset($this->userdata[$key]); + } + } + + $this->sess_write(); + } + + // ------------------------------------------------------------------------ + + /** + * Add or change flashdata, only available + * until the next request + * + * @access public + * @param mixed + * @param string + * @return void + */ + function set_flashdata($newdata = array(), $newval = '') + { + if (is_string($newdata)) + { + $newdata = array($newdata => $newval); + } + + if (count($newdata) > 0) + { + foreach ($newdata as $key => $val) + { + $flashdata_key = $this->flashdata_key.':new:'.$key; + $this->set_userdata($flashdata_key, $val); + } + } + } + + // ------------------------------------------------------------------------ + + /** + * Keeps existing flashdata available to next request. + * + * @access public + * @param string + * @return void + */ + function keep_flashdata($key) + { + // 'old' flashdata gets removed. Here we mark all + // flashdata as 'new' to preserve it from _flashdata_sweep() + // Note the function will return FALSE if the $key + // provided cannot be found + $old_flashdata_key = $this->flashdata_key.':old:'.$key; + $value = $this->userdata($old_flashdata_key); + + $new_flashdata_key = $this->flashdata_key.':new:'.$key; + $this->set_userdata($new_flashdata_key, $value); + } + + // ------------------------------------------------------------------------ + + /** + * Fetch a specific flashdata item from the session array + * + * @access public + * @param string + * @return string + */ + function flashdata($key) + { + $flashdata_key = $this->flashdata_key.':old:'.$key; + return $this->userdata($flashdata_key); + } + + // ------------------------------------------------------------------------ + + /** + * Identifies flashdata as 'old' for removal + * when _flashdata_sweep() runs. + * + * @access private + * @return void + */ + function _flashdata_mark() + { + $userdata = $this->all_userdata(); + foreach ($userdata as $name => $value) + { + $parts = explode(':new:', $name); + if (is_array($parts) && count($parts) === 2) + { + $new_name = $this->flashdata_key.':old:'.$parts[1]; + $this->set_userdata($new_name, $value); + $this->unset_userdata($name); + } + } + } + + // ------------------------------------------------------------------------ + + /** + * Removes all flashdata marked as 'old' + * + * @access private + * @return void + */ + + function _flashdata_sweep() + { + $userdata = $this->all_userdata(); + foreach ($userdata as $key => $value) + { + if (strpos($key, ':old:')) + { + $this->unset_userdata($key); + } + } + + } + + // -------------------------------------------------------------------- + + /** + * Get the "now" time + * + * @access private + * @return string + */ + function _get_time() + { + if (strtolower($this->time_reference) == 'gmt') + { + $now = time(); + $time = mktime(gmdate("H", $now), gmdate("i", $now), gmdate("s", $now), gmdate("m", $now), gmdate("d", $now), gmdate("Y", $now)); + } + else + { + $time = time(); + } + + return $time; + } + + // -------------------------------------------------------------------- + + /** + * Write the session cookie + * + * @access public + * @return void + */ + function _set_cookie($cookie_data = NULL) + { + if (is_null($cookie_data)) + { + $cookie_data = $this->userdata; + } + + // Serialize the userdata for the cookie + $cookie_data = $this->_serialize($cookie_data); + + if ($this->sess_encrypt_cookie == TRUE) + { + $cookie_data = $this->CI->encrypt->encode($cookie_data); + } + else + { + // if encryption is not used, we provide an md5 hash to prevent userside tampering + $cookie_data = $cookie_data.md5($cookie_data.$this->encryption_key); + } + + $expire = ($this->sess_expire_on_close === TRUE) ? 0 : $this->sess_expiration + time(); + + // Set the cookie + setcookie( + $this->sess_cookie_name, + $cookie_data, + $expire, + $this->cookie_path, + $this->cookie_domain, + $this->cookie_secure + ); + } + + // -------------------------------------------------------------------- + + /** + * Serialize an array + * + * This function first converts any slashes found in the array to a temporary + * marker, so when it gets unserialized the slashes will be preserved + * + * @access private + * @param array + * @return string + */ + function _serialize($data) + { + if (is_array($data)) + { + foreach ($data as $key => $val) + { + if (is_string($val)) + { + $data[$key] = str_replace('\\', '{{slash}}', $val); + } + } + } + else + { + if (is_string($data)) + { + $data = str_replace('\\', '{{slash}}', $data); + } + } + + return serialize($data); + } + + // -------------------------------------------------------------------- + + /** + * Unserialize + * + * This function unserializes a data string, then converts any + * temporary slash markers back to actual slashes + * + * @access private + * @param array + * @return string + */ + function _unserialize($data) + { + $data = @unserialize(strip_slashes($data)); + + if (is_array($data)) + { + foreach ($data as $key => $val) + { + if (is_string($val)) + { + $data[$key] = str_replace('{{slash}}', '\\', $val); + } + } + + return $data; + } + + return (is_string($data)) ? str_replace('{{slash}}', '\\', $data) : $data; + } + + // -------------------------------------------------------------------- + + /** + * Garbage collection + * + * This deletes expired session rows from database + * if the probability percentage is met + * + * @access public + * @return void + */ + function _sess_gc() + { + if ($this->sess_use_database != TRUE) + { + return; + } + + srand(time()); + if ((rand() % 100) < $this->gc_probability) + { + $expire = $this->now - $this->sess_expiration; + + $this->CI->db->where("last_activity < {$expire}"); + $this->CI->db->delete($this->sess_table_name); + + log_message('debug', 'Session garbage collection performed.'); + } + } + + +} +// END Session Class + +/* End of file Session.php */ +/* Location: ./system/libraries/Session.php */ \ No newline at end of file diff --git a/system/libraries/Sha1.php b/system/libraries/Sha1.php new file mode 100755 index 0000000..1a65757 --- /dev/null +++ b/system/libraries/Sha1.php @@ -0,0 +1,251 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * SHA1 Encoding Class + * + * Purpose: Provides 160 bit hashing using The Secure Hash Algorithm + * developed at the National Institute of Standards and Technology. The 40 + * character SHA1 message hash is computationally infeasible to crack. + * + * This class is a fallback for servers that are not running PHP greater than + * 4.3, or do not have the MHASH library. + * + * This class is based on two scripts: + * + * Marcus Campbell's PHP implementation (GNU license) + * http://www.tecknik.net/sha-1/ + * + * ...which is based on Paul Johnston's JavaScript version + * (BSD license). http://pajhome.org.uk/ + * + * I encapsulated the functions and wrote one additional method to fix + * a hex conversion bug. - Rick Ellis + * + * @package CodeIgniter + * @subpackage Libraries + * @category Encryption + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/general/encryption.html + */ +class CI_SHA1 { + + public function __construct() + { + log_message('debug', "SHA1 Class Initialized"); + } + + /** + * Generate the Hash + * + * @access public + * @param string + * @return string + */ + function generate($str) + { + $n = ((strlen($str) + 8) >> 6) + 1; + + for ($i = 0; $i < $n * 16; $i++) + { + $x[$i] = 0; + } + + for ($i = 0; $i < strlen($str); $i++) + { + $x[$i >> 2] |= ord(substr($str, $i, 1)) << (24 - ($i % 4) * 8); + } + + $x[$i >> 2] |= 0x80 << (24 - ($i % 4) * 8); + + $x[$n * 16 - 1] = strlen($str) * 8; + + $a = 1732584193; + $b = -271733879; + $c = -1732584194; + $d = 271733878; + $e = -1009589776; + + for ($i = 0; $i < count($x); $i += 16) + { + $olda = $a; + $oldb = $b; + $oldc = $c; + $oldd = $d; + $olde = $e; + + for ($j = 0; $j < 80; $j++) + { + if ($j < 16) + { + $w[$j] = $x[$i + $j]; + } + else + { + $w[$j] = $this->_rol($w[$j - 3] ^ $w[$j - 8] ^ $w[$j - 14] ^ $w[$j - 16], 1); + } + + $t = $this->_safe_add($this->_safe_add($this->_rol($a, 5), $this->_ft($j, $b, $c, $d)), $this->_safe_add($this->_safe_add($e, $w[$j]), $this->_kt($j))); + + $e = $d; + $d = $c; + $c = $this->_rol($b, 30); + $b = $a; + $a = $t; + } + + $a = $this->_safe_add($a, $olda); + $b = $this->_safe_add($b, $oldb); + $c = $this->_safe_add($c, $oldc); + $d = $this->_safe_add($d, $oldd); + $e = $this->_safe_add($e, $olde); + } + + return $this->_hex($a).$this->_hex($b).$this->_hex($c).$this->_hex($d).$this->_hex($e); + } + + // -------------------------------------------------------------------- + + /** + * Convert a decimal to hex + * + * @access private + * @param string + * @return string + */ + function _hex($str) + { + $str = dechex($str); + + if (strlen($str) == 7) + { + $str = '0'.$str; + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Return result based on iteration + * + * @access private + * @return string + */ + function _ft($t, $b, $c, $d) + { + if ($t < 20) + return ($b & $c) | ((~$b) & $d); + if ($t < 40) + return $b ^ $c ^ $d; + if ($t < 60) + return ($b & $c) | ($b & $d) | ($c & $d); + + return $b ^ $c ^ $d; + } + + // -------------------------------------------------------------------- + + /** + * Determine the additive constant + * + * @access private + * @return string + */ + function _kt($t) + { + if ($t < 20) + { + return 1518500249; + } + else if ($t < 40) + { + return 1859775393; + } + else if ($t < 60) + { + return -1894007588; + } + else + { + return -899497514; + } + } + + // -------------------------------------------------------------------- + + /** + * Add integers, wrapping at 2^32 + * + * @access private + * @return string + */ + function _safe_add($x, $y) + { + $lsw = ($x & 0xFFFF) + ($y & 0xFFFF); + $msw = ($x >> 16) + ($y >> 16) + ($lsw >> 16); + + return ($msw << 16) | ($lsw & 0xFFFF); + } + + // -------------------------------------------------------------------- + + /** + * Bitwise rotate a 32-bit number + * + * @access private + * @return integer + */ + function _rol($num, $cnt) + { + return ($num << $cnt) | $this->_zero_fill($num, 32 - $cnt); + } + + // -------------------------------------------------------------------- + + /** + * Pad string with zero + * + * @access private + * @return string + */ + function _zero_fill($a, $b) + { + $bin = decbin($a); + + if (strlen($bin) < $b) + { + $bin = 0; + } + else + { + $bin = substr($bin, 0, strlen($bin) - $b); + } + + for ($i=0; $i < $b; $i++) + { + $bin = "0".$bin; + } + + return bindec($bin); + } +} +// END CI_SHA + +/* End of file Sha1.php */ +/* Location: ./system/libraries/Sha1.php */ \ No newline at end of file diff --git a/system/libraries/Table.php b/system/libraries/Table.php new file mode 100755 index 0000000..def6967 --- /dev/null +++ b/system/libraries/Table.php @@ -0,0 +1,531 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.3.1 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * HTML Table Generating Class + * + * Lets you create tables manually or from database result objects, or arrays. + * + * @package CodeIgniter + * @subpackage Libraries + * @category HTML Tables + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/uri.html + */ +class CI_Table { + + var $rows = array(); + var $heading = array(); + var $auto_heading = TRUE; + var $caption = NULL; + var $template = NULL; + var $newline = "\n"; + var $empty_cells = ""; + var $function = FALSE; + + public function __construct() + { + log_message('debug', "Table Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Set the template + * + * @access public + * @param array + * @return void + */ + function set_template($template) + { + if ( ! is_array($template)) + { + return FALSE; + } + + $this->template = $template; + } + + // -------------------------------------------------------------------- + + /** + * Set the table heading + * + * Can be passed as an array or discreet params + * + * @access public + * @param mixed + * @return void + */ + function set_heading() + { + $args = func_get_args(); + $this->heading = $this->_prep_args($args); + } + + // -------------------------------------------------------------------- + + /** + * Set columns. Takes a one-dimensional array as input and creates + * a multi-dimensional array with a depth equal to the number of + * columns. This allows a single array with many elements to be + * displayed in a table that has a fixed column count. + * + * @access public + * @param array + * @param int + * @return void + */ + function make_columns($array = array(), $col_limit = 0) + { + if ( ! is_array($array) OR count($array) == 0) + { + return FALSE; + } + + // Turn off the auto-heading feature since it's doubtful we + // will want headings from a one-dimensional array + $this->auto_heading = FALSE; + + if ($col_limit == 0) + { + return $array; + } + + $new = array(); + while (count($array) > 0) + { + $temp = array_splice($array, 0, $col_limit); + + if (count($temp) < $col_limit) + { + for ($i = count($temp); $i < $col_limit; $i++) + { + $temp[] = '&nbsp;'; + } + } + + $new[] = $temp; + } + + return $new; + } + + // -------------------------------------------------------------------- + + /** + * Set "empty" cells + * + * Can be passed as an array or discreet params + * + * @access public + * @param mixed + * @return void + */ + function set_empty($value) + { + $this->empty_cells = $value; + } + + // -------------------------------------------------------------------- + + /** + * Add a table row + * + * Can be passed as an array or discreet params + * + * @access public + * @param mixed + * @return void + */ + function add_row() + { + $args = func_get_args(); + $this->rows[] = $this->_prep_args($args); + } + + // -------------------------------------------------------------------- + + /** + * Prep Args + * + * Ensures a standard associative array format for all cell data + * + * @access public + * @param type + * @return type + */ + function _prep_args($args) + { + // If there is no $args[0], skip this and treat as an associative array + // This can happen if there is only a single key, for example this is passed to table->generate + // array(array('foo'=>'bar')) + if (isset($args[0]) AND (count($args) == 1 && is_array($args[0]))) + { + // args sent as indexed array + if ( ! isset($args[0]['data'])) + { + foreach ($args[0] as $key => $val) + { + if (is_array($val) && isset($val['data'])) + { + $args[$key] = $val; + } + else + { + $args[$key] = array('data' => $val); + } + } + } + } + else + { + foreach ($args as $key => $val) + { + if ( ! is_array($val)) + { + $args[$key] = array('data' => $val); + } + } + } + + return $args; + } + + // -------------------------------------------------------------------- + + /** + * Add a table caption + * + * @access public + * @param string + * @return void + */ + function set_caption($caption) + { + $this->caption = $caption; + } + + // -------------------------------------------------------------------- + + /** + * Generate the table + * + * @access public + * @param mixed + * @return string + */ + function generate($table_data = NULL) + { + // The table data can optionally be passed to this function + // either as a database result object or an array + if ( ! is_null($table_data)) + { + if (is_object($table_data)) + { + $this->_set_from_object($table_data); + } + elseif (is_array($table_data)) + { + $set_heading = (count($this->heading) == 0 AND $this->auto_heading == FALSE) ? FALSE : TRUE; + $this->_set_from_array($table_data, $set_heading); + } + } + + // Is there anything to display? No? Smite them! + if (count($this->heading) == 0 AND count($this->rows) == 0) + { + return 'Undefined table data'; + } + + // Compile and validate the template date + $this->_compile_template(); + + // set a custom cell manipulation function to a locally scoped variable so its callable + $function = $this->function; + + // Build the table! + + $out = $this->template['table_open']; + $out .= $this->newline; + + // Add any caption here + if ($this->caption) + { + $out .= $this->newline; + $out .= '<caption>' . $this->caption . '</caption>'; + $out .= $this->newline; + } + + // Is there a table heading to display? + if (count($this->heading) > 0) + { + $out .= $this->template['thead_open']; + $out .= $this->newline; + $out .= $this->template['heading_row_start']; + $out .= $this->newline; + + foreach ($this->heading as $heading) + { + $temp = $this->template['heading_cell_start']; + + foreach ($heading as $key => $val) + { + if ($key != 'data') + { + $temp = str_replace('<th', "<th $key='$val'", $temp); + } + } + + $out .= $temp; + $out .= isset($heading['data']) ? $heading['data'] : ''; + $out .= $this->template['heading_cell_end']; + } + + $out .= $this->template['heading_row_end']; + $out .= $this->newline; + $out .= $this->template['thead_close']; + $out .= $this->newline; + } + + // Build the table rows + if (count($this->rows) > 0) + { + $out .= $this->template['tbody_open']; + $out .= $this->newline; + + $i = 1; + foreach ($this->rows as $row) + { + if ( ! is_array($row)) + { + break; + } + + // We use modulus to alternate the row colors + $name = (fmod($i++, 2)) ? '' : 'alt_'; + + $out .= $this->template['row_'.$name.'start']; + $out .= $this->newline; + + foreach ($row as $cell) + { + $temp = $this->template['cell_'.$name.'start']; + + foreach ($cell as $key => $val) + { + if ($key != 'data') + { + $temp = str_replace('<td', "<td $key='$val'", $temp); + } + } + + $cell = isset($cell['data']) ? $cell['data'] : ''; + $out .= $temp; + + if ($cell === "" OR $cell === NULL) + { + $out .= $this->empty_cells; + } + else + { + if ($function !== FALSE && is_callable($function)) + { + $out .= call_user_func($function, $cell); + } + else + { + $out .= $cell; + } + } + + $out .= $this->template['cell_'.$name.'end']; + } + + $out .= $this->template['row_'.$name.'end']; + $out .= $this->newline; + } + + $out .= $this->template['tbody_close']; + $out .= $this->newline; + } + + $out .= $this->template['table_close']; + + // Clear table class properties before generating the table + $this->clear(); + + return $out; + } + + // -------------------------------------------------------------------- + + /** + * Clears the table arrays. Useful if multiple tables are being generated + * + * @access public + * @return void + */ + function clear() + { + $this->rows = array(); + $this->heading = array(); + $this->auto_heading = TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set table data from a database result object + * + * @access public + * @param object + * @return void + */ + function _set_from_object($query) + { + if ( ! is_object($query)) + { + return FALSE; + } + + // First generate the headings from the table column names + if (count($this->heading) == 0) + { + if ( ! method_exists($query, 'list_fields')) + { + return FALSE; + } + + $this->heading = $this->_prep_args($query->list_fields()); + } + + // Next blast through the result array and build out the rows + + if ($query->num_rows() > 0) + { + foreach ($query->result_array() as $row) + { + $this->rows[] = $this->_prep_args($row); + } + } + } + + // -------------------------------------------------------------------- + + /** + * Set table data from an array + * + * @access public + * @param array + * @return void + */ + function _set_from_array($data, $set_heading = TRUE) + { + if ( ! is_array($data) OR count($data) == 0) + { + return FALSE; + } + + $i = 0; + foreach ($data as $row) + { + // If a heading hasn't already been set we'll use the first row of the array as the heading + if ($i == 0 AND count($data) > 1 AND count($this->heading) == 0 AND $set_heading == TRUE) + { + $this->heading = $this->_prep_args($row); + } + else + { + $this->rows[] = $this->_prep_args($row); + } + + $i++; + } + } + + // -------------------------------------------------------------------- + + /** + * Compile Template + * + * @access private + * @return void + */ + function _compile_template() + { + if ($this->template == NULL) + { + $this->template = $this->_default_template(); + return; + } + + $this->temp = $this->_default_template(); + foreach (array('table_open', 'thead_open', 'thead_close', 'heading_row_start', 'heading_row_end', 'heading_cell_start', 'heading_cell_end', 'tbody_open', 'tbody_close', 'row_start', 'row_end', 'cell_start', 'cell_end', 'row_alt_start', 'row_alt_end', 'cell_alt_start', 'cell_alt_end', 'table_close') as $val) + { + if ( ! isset($this->template[$val])) + { + $this->template[$val] = $this->temp[$val]; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Default Template + * + * @access private + * @return void + */ + function _default_template() + { + return array ( + 'table_open' => '<table border="0" cellpadding="4" cellspacing="0">', + + 'thead_open' => '<thead>', + 'thead_close' => '</thead>', + + 'heading_row_start' => '<tr>', + 'heading_row_end' => '</tr>', + 'heading_cell_start' => '<th>', + 'heading_cell_end' => '</th>', + + 'tbody_open' => '<tbody>', + 'tbody_close' => '</tbody>', + + 'row_start' => '<tr>', + 'row_end' => '</tr>', + 'cell_start' => '<td>', + 'cell_end' => '</td>', + + 'row_alt_start' => '<tr>', + 'row_alt_end' => '</tr>', + 'cell_alt_start' => '<td>', + 'cell_alt_end' => '</td>', + + 'table_close' => '</table>' + ); + } + + +} + + +/* End of file Table.php */ +/* Location: ./system/libraries/Table.php */ \ No newline at end of file diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php new file mode 100755 index 0000000..b0a7678 --- /dev/null +++ b/system/libraries/Trackback.php @@ -0,0 +1,548 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Trackback Class + * + * Trackback Sending/Receiving Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Trackbacks + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/trackback.html + */ +class CI_Trackback { + + var $time_format = 'local'; + var $charset = 'UTF-8'; + var $data = array('url' => '', 'title' => '', 'excerpt' => '', 'blog_name' => '', 'charset' => ''); + var $convert_ascii = TRUE; + var $response = ''; + var $error_msg = array(); + + /** + * Constructor + * + * @access public + */ + public function __construct() + { + log_message('debug', "Trackback Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Send Trackback + * + * @access public + * @param array + * @return bool + */ + function send($tb_data) + { + if ( ! is_array($tb_data)) + { + $this->set_error('The send() method must be passed an array'); + return FALSE; + } + + // Pre-process the Trackback Data + foreach (array('url', 'title', 'excerpt', 'blog_name', 'ping_url') as $item) + { + if ( ! isset($tb_data[$item])) + { + $this->set_error('Required item missing: '.$item); + return FALSE; + } + + switch ($item) + { + case 'ping_url' : $$item = $this->extract_urls($tb_data[$item]); + break; + case 'excerpt' : $$item = $this->limit_characters($this->convert_xml(strip_tags(stripslashes($tb_data[$item])))); + break; + case 'url' : $$item = str_replace('&#45;', '-', $this->convert_xml(strip_tags(stripslashes($tb_data[$item])))); + break; + default : $$item = $this->convert_xml(strip_tags(stripslashes($tb_data[$item]))); + break; + } + + // Convert High ASCII Characters + if ($this->convert_ascii == TRUE) + { + if ($item == 'excerpt') + { + $$item = $this->convert_ascii($$item); + } + elseif ($item == 'title') + { + $$item = $this->convert_ascii($$item); + } + elseif ($item == 'blog_name') + { + $$item = $this->convert_ascii($$item); + } + } + } + + // Build the Trackback data string + $charset = ( ! isset($tb_data['charset'])) ? $this->charset : $tb_data['charset']; + + $data = "url=".rawurlencode($url)."&title=".rawurlencode($title)."&blog_name=".rawurlencode($blog_name)."&excerpt=".rawurlencode($excerpt)."&charset=".rawurlencode($charset); + + // Send Trackback(s) + $return = TRUE; + if (count($ping_url) > 0) + { + foreach ($ping_url as $url) + { + if ($this->process($url, $data) == FALSE) + { + $return = FALSE; + } + } + } + + return $return; + } + + // -------------------------------------------------------------------- + + /** + * Receive Trackback Data + * + * This function simply validates the incoming TB data. + * It returns FALSE on failure and TRUE on success. + * If the data is valid it is set to the $this->data array + * so that it can be inserted into a database. + * + * @access public + * @return bool + */ + function receive() + { + foreach (array('url', 'title', 'blog_name', 'excerpt') as $val) + { + if ( ! isset($_POST[$val]) OR $_POST[$val] == '') + { + $this->set_error('The following required POST variable is missing: '.$val); + return FALSE; + } + + $this->data['charset'] = ( ! isset($_POST['charset'])) ? 'auto' : strtoupper(trim($_POST['charset'])); + + if ($val != 'url' && function_exists('mb_convert_encoding')) + { + $_POST[$val] = mb_convert_encoding($_POST[$val], $this->charset, $this->data['charset']); + } + + $_POST[$val] = ($val != 'url') ? $this->convert_xml(strip_tags($_POST[$val])) : strip_tags($_POST[$val]); + + if ($val == 'excerpt') + { + $_POST['excerpt'] = $this->limit_characters($_POST['excerpt']); + } + + $this->data[$val] = $_POST[$val]; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Send Trackback Error Message + * + * Allows custom errors to be set. By default it + * sends the "incomplete information" error, as that's + * the most common one. + * + * @access public + * @param string + * @return void + */ + function send_error($message = 'Incomplete Information') + { + echo "<?xml version=\"1.0\" encoding=\"utf-8\"?".">\n<response>\n<error>1</error>\n<message>".$message."</message>\n</response>"; + exit; + } + + // -------------------------------------------------------------------- + + /** + * Send Trackback Success Message + * + * This should be called when a trackback has been + * successfully received and inserted. + * + * @access public + * @return void + */ + function send_success() + { + echo "<?xml version=\"1.0\" encoding=\"utf-8\"?".">\n<response>\n<error>0</error>\n</response>"; + exit; + } + + // -------------------------------------------------------------------- + + /** + * Fetch a particular item + * + * @access public + * @param string + * @return string + */ + function data($item) + { + return ( ! isset($this->data[$item])) ? '' : $this->data[$item]; + } + + // -------------------------------------------------------------------- + + /** + * Process Trackback + * + * Opens a socket connection and passes the data to + * the server. Returns TRUE on success, FALSE on failure + * + * @access public + * @param string + * @param string + * @return bool + */ + function process($url, $data) + { + $target = parse_url($url); + + // Open the socket + if ( ! $fp = @fsockopen($target['host'], 80)) + { + $this->set_error('Invalid Connection: '.$url); + return FALSE; + } + + // Build the path + $ppath = ( ! isset($target['path'])) ? $url : $target['path']; + + $path = (isset($target['query']) && $target['query'] != "") ? $ppath.'?'.$target['query'] : $ppath; + + // Add the Trackback ID to the data string + if ($id = $this->get_id($url)) + { + $data = "tb_id=".$id."&".$data; + } + + // Transfer the data + fputs ($fp, "POST " . $path . " HTTP/1.0\r\n" ); + fputs ($fp, "Host: " . $target['host'] . "\r\n" ); + fputs ($fp, "Content-type: application/x-www-form-urlencoded\r\n" ); + fputs ($fp, "Content-length: " . strlen($data) . "\r\n" ); + fputs ($fp, "Connection: close\r\n\r\n" ); + fputs ($fp, $data); + + // Was it successful? + $this->response = ""; + + while ( ! feof($fp)) + { + $this->response .= fgets($fp, 128); + } + @fclose($fp); + + + if (stristr($this->response, '<error>0</error>') === FALSE) + { + $message = 'An unknown error was encountered'; + + if (preg_match("/<message>(.*?)<\/message>/is", $this->response, $match)) + { + $message = trim($match['1']); + } + + $this->set_error($message); + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Extract Trackback URLs + * + * This function lets multiple trackbacks be sent. + * It takes a string of URLs (separated by comma or + * space) and puts each URL into an array + * + * @access public + * @param string + * @return string + */ + function extract_urls($urls) + { + // Remove the pesky white space and replace with a comma. + $urls = preg_replace("/\s*(\S+)\s*/", "\\1,", $urls); + + // If they use commas get rid of the doubles. + $urls = str_replace(",,", ",", $urls); + + // Remove any comma that might be at the end + if (substr($urls, -1) == ",") + { + $urls = substr($urls, 0, -1); + } + + // Break into an array via commas + $urls = preg_split('/[,]/', $urls); + + // Removes duplicates + $urls = array_unique($urls); + + array_walk($urls, array($this, 'validate_url')); + + return $urls; + } + + // -------------------------------------------------------------------- + + /** + * Validate URL + * + * Simply adds "http://" if missing + * + * @access public + * @param string + * @return string + */ + function validate_url($url) + { + $url = trim($url); + + if (substr($url, 0, 4) != "http") + { + $url = "http://".$url; + } + } + + // -------------------------------------------------------------------- + + /** + * Find the Trackback URL's ID + * + * @access public + * @param string + * @return string + */ + function get_id($url) + { + $tb_id = ""; + + if (strpos($url, '?') !== FALSE) + { + $tb_array = explode('/', $url); + $tb_end = $tb_array[count($tb_array)-1]; + + if ( ! is_numeric($tb_end)) + { + $tb_end = $tb_array[count($tb_array)-2]; + } + + $tb_array = explode('=', $tb_end); + $tb_id = $tb_array[count($tb_array)-1]; + } + else + { + $url = rtrim($url, '/'); + + $tb_array = explode('/', $url); + $tb_id = $tb_array[count($tb_array)-1]; + + if ( ! is_numeric($tb_id)) + { + $tb_id = $tb_array[count($tb_array)-2]; + } + } + + if ( ! preg_match ("/^([0-9]+)$/", $tb_id)) + { + return FALSE; + } + else + { + return $tb_id; + } + } + + // -------------------------------------------------------------------- + + /** + * Convert Reserved XML characters to Entities + * + * @access public + * @param string + * @return string + */ + function convert_xml($str) + { + $temp = '__TEMP_AMPERSANDS__'; + + $str = preg_replace("/&#(\d+);/", "$temp\\1;", $str); + $str = preg_replace("/&(\w+);/", "$temp\\1;", $str); + + $str = str_replace(array("&","<",">","\"", "'", "-"), + array("&amp;", "&lt;", "&gt;", "&quot;", "&#39;", "&#45;"), + $str); + + $str = preg_replace("/$temp(\d+);/","&#\\1;",$str); + $str = preg_replace("/$temp(\w+);/","&\\1;", $str); + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Character limiter + * + * Limits the string based on the character count. Will preserve complete words. + * + * @access public + * @param string + * @param integer + * @param string + * @return string + */ + function limit_characters($str, $n = 500, $end_char = '&#8230;') + { + if (strlen($str) < $n) + { + return $str; + } + + $str = preg_replace("/\s+/", ' ', str_replace(array("\r\n", "\r", "\n"), ' ', $str)); + + if (strlen($str) <= $n) + { + return $str; + } + + $out = ""; + foreach (explode(' ', trim($str)) as $val) + { + $out .= $val.' '; + if (strlen($out) >= $n) + { + return trim($out).$end_char; + } + } + } + + // -------------------------------------------------------------------- + + /** + * High ASCII to Entities + * + * Converts Hight ascii text and MS Word special chars + * to character entities + * + * @access public + * @param string + * @return string + */ + function convert_ascii($str) + { + $count = 1; + $out = ''; + $temp = array(); + + for ($i = 0, $s = strlen($str); $i < $s; $i++) + { + $ordinal = ord($str[$i]); + + if ($ordinal < 128) + { + $out .= $str[$i]; + } + else + { + if (count($temp) == 0) + { + $count = ($ordinal < 224) ? 2 : 3; + } + + $temp[] = $ordinal; + + if (count($temp) == $count) + { + $number = ($count == 3) ? (($temp['0'] % 16) * 4096) + (($temp['1'] % 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64); + + $out .= '&#'.$number.';'; + $count = 1; + $temp = array(); + } + } + } + + return $out; + } + + // -------------------------------------------------------------------- + + /** + * Set error message + * + * @access public + * @param string + * @return void + */ + function set_error($msg) + { + log_message('error', $msg); + $this->error_msg[] = $msg; + } + + // -------------------------------------------------------------------- + + /** + * Show error messages + * + * @access public + * @param string + * @param string + * @return string + */ + function display_errors($open = '<p>', $close = '</p>') + { + $str = ''; + foreach ($this->error_msg as $val) + { + $str .= $open.$val.$close; + } + + return $str; + } + +} +// END Trackback Class + +/* End of file Trackback.php */ +/* Location: ./system/libraries/Trackback.php */ \ No newline at end of file diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php new file mode 100755 index 0000000..734cec1 --- /dev/null +++ b/system/libraries/Typography.php @@ -0,0 +1,410 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Typography Class + * + * + * @access private + * @category Helpers + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/helpers/ + */ +class CI_Typography { + + // Block level elements that should not be wrapped inside <p> tags + var $block_elements = 'address|blockquote|div|dl|fieldset|form|h\d|hr|noscript|object|ol|p|pre|script|table|ul'; + + // Elements that should not have <p> and <br /> tags within them. + var $skip_elements = 'p|pre|ol|ul|dl|object|table|h\d'; + + // Tags we want the parser to completely ignore when splitting the string. + var $inline_elements = 'a|abbr|acronym|b|bdo|big|br|button|cite|code|del|dfn|em|i|img|ins|input|label|map|kbd|q|samp|select|small|span|strong|sub|sup|textarea|tt|var'; + + // array of block level elements that require inner content to be within another block level element + var $inner_block_required = array('blockquote'); + + // the last block element parsed + var $last_block_element = ''; + + // whether or not to protect quotes within { curly braces } + var $protect_braced_quotes = FALSE; + + /** + * Auto Typography + * + * This function converts text, making it typographically correct: + * - Converts double spaces into paragraphs. + * - Converts single line breaks into <br /> tags + * - Converts single and double quotes into correctly facing curly quote entities. + * - Converts three dots into ellipsis. + * - Converts double dashes into em-dashes. + * - Converts two spaces into entities + * + * @access public + * @param string + * @param bool whether to reduce more then two consecutive newlines to two + * @return string + */ + function auto_typography($str, $reduce_linebreaks = FALSE) + { + if ($str == '') + { + return ''; + } + + // Standardize Newlines to make matching easier + if (strpos($str, "\r") !== FALSE) + { + $str = str_replace(array("\r\n", "\r"), "\n", $str); + } + + // Reduce line breaks. If there are more than two consecutive linebreaks + // we'll compress them down to a maximum of two since there's no benefit to more. + if ($reduce_linebreaks === TRUE) + { + $str = preg_replace("/\n\n+/", "\n\n", $str); + } + + // HTML comment tags don't conform to patterns of normal tags, so pull them out separately, only if needed + $html_comments = array(); + if (strpos($str, '<!--') !== FALSE) + { + if (preg_match_all("#(<!\-\-.*?\-\->)#s", $str, $matches)) + { + for ($i = 0, $total = count($matches[0]); $i < $total; $i++) + { + $html_comments[] = $matches[0][$i]; + $str = str_replace($matches[0][$i], '{@HC'.$i.'}', $str); + } + } + } + + // match and yank <pre> tags if they exist. It's cheaper to do this separately since most content will + // not contain <pre> tags, and it keeps the PCRE patterns below simpler and faster + if (strpos($str, '<pre') !== FALSE) + { + $str = preg_replace_callback("#<pre.*?>.*?</pre>#si", array($this, '_protect_characters'), $str); + } + + // Convert quotes within tags to temporary markers. + $str = preg_replace_callback("#<.+?>#si", array($this, '_protect_characters'), $str); + + // Do the same with braces if necessary + if ($this->protect_braced_quotes === TRUE) + { + $str = preg_replace_callback("#\{.+?\}#si", array($this, '_protect_characters'), $str); + } + + // Convert "ignore" tags to temporary marker. The parser splits out the string at every tag + // it encounters. Certain inline tags, like image tags, links, span tags, etc. will be + // adversely affected if they are split out so we'll convert the opening bracket < temporarily to: {@TAG} + $str = preg_replace("#<(/*)(".$this->inline_elements.")([ >])#i", "{@TAG}\\1\\2\\3", $str); + + // Split the string at every tag. This expression creates an array with this prototype: + // + // [array] + // { + // [0] = <opening tag> + // [1] = Content... + // [2] = <closing tag> + // Etc... + // } + $chunks = preg_split('/(<(?:[^<>]+(?:"[^"]*"|\'[^\']*\')?)+>)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY); + + // Build our finalized string. We cycle through the array, skipping tags, and processing the contained text + $str = ''; + $process = TRUE; + $paragraph = FALSE; + $current_chunk = 0; + $total_chunks = count($chunks); + + foreach ($chunks as $chunk) + { + $current_chunk++; + + // Are we dealing with a tag? If so, we'll skip the processing for this cycle. + // Well also set the "process" flag which allows us to skip <pre> tags and a few other things. + if (preg_match("#<(/*)(".$this->block_elements.").*?>#", $chunk, $match)) + { + if (preg_match("#".$this->skip_elements."#", $match[2])) + { + $process = ($match[1] == '/') ? TRUE : FALSE; + } + + if ($match[1] == '') + { + $this->last_block_element = $match[2]; + } + + $str .= $chunk; + continue; + } + + if ($process == FALSE) + { + $str .= $chunk; + continue; + } + + // Force a newline to make sure end tags get processed by _format_newlines() + if ($current_chunk == $total_chunks) + { + $chunk .= "\n"; + } + + // Convert Newlines into <p> and <br /> tags + $str .= $this->_format_newlines($chunk); + } + + // No opening block level tag? Add it if needed. + if ( ! preg_match("/^\s*<(?:".$this->block_elements.")/i", $str)) + { + $str = preg_replace("/^(.*?)<(".$this->block_elements.")/i", '<p>$1</p><$2', $str); + } + + // Convert quotes, elipsis, em-dashes, non-breaking spaces, and ampersands + $str = $this->format_characters($str); + + // restore HTML comments + for ($i = 0, $total = count($html_comments); $i < $total; $i++) + { + // remove surrounding paragraph tags, but only if there's an opening paragraph tag + // otherwise HTML comments at the ends of paragraphs will have the closing tag removed + // if '<p>{@HC1}' then replace <p>{@HC1}</p> with the comment, else replace only {@HC1} with the comment + $str = preg_replace('#(?(?=<p>\{@HC'.$i.'\})<p>\{@HC'.$i.'\}(\s*</p>)|\{@HC'.$i.'\})#s', $html_comments[$i], $str); + } + + // Final clean up + $table = array( + + // If the user submitted their own paragraph tags within the text + // we will retain them instead of using our tags. + '/(<p[^>*?]>)<p>/' => '$1', // <?php BBEdit syntax coloring bug fix + + // Reduce multiple instances of opening/closing paragraph tags to a single one + '#(</p>)+#' => '</p>', + '/(<p>\W*<p>)+/' => '<p>', + + // Clean up stray paragraph tags that appear before block level elements + '#<p></p><('.$this->block_elements.')#' => '<$1', + + // Clean up stray non-breaking spaces preceeding block elements + '#(&nbsp;\s*)+<('.$this->block_elements.')#' => ' <$2', + + // Replace the temporary markers we added earlier + '/\{@TAG\}/' => '<', + '/\{@DQ\}/' => '"', + '/\{@SQ\}/' => "'", + '/\{@DD\}/' => '--', + '/\{@NBS\}/' => ' ', + + // An unintended consequence of the _format_newlines function is that + // some of the newlines get truncated, resulting in <p> tags + // starting immediately after <block> tags on the same line. + // This forces a newline after such occurrences, which looks much nicer. + "/><p>\n/" => ">\n<p>", + + // Similarly, there might be cases where a closing </block> will follow + // a closing </p> tag, so we'll correct it by adding a newline in between + "#</p></#" => "</p>\n</" + ); + + // Do we need to reduce empty lines? + if ($reduce_linebreaks === TRUE) + { + $table['#<p>\n*</p>#'] = ''; + } + else + { + // If we have empty paragraph tags we add a non-breaking space + // otherwise most browsers won't treat them as true paragraphs + $table['#<p></p>#'] = '<p>&nbsp;</p>'; + } + + return preg_replace(array_keys($table), $table, $str); + + } + + // -------------------------------------------------------------------- + + /** + * Format Characters + * + * This function mainly converts double and single quotes + * to curly entities, but it also converts em-dashes, + * double spaces, and ampersands + * + * @access public + * @param string + * @return string + */ + function format_characters($str) + { + static $table; + + if ( ! isset($table)) + { + $table = array( + // nested smart quotes, opening and closing + // note that rules for grammar (English) allow only for two levels deep + // and that single quotes are _supposed_ to always be on the outside + // but we'll accommodate both + // Note that in all cases, whitespace is the primary determining factor + // on which direction to curl, with non-word characters like punctuation + // being a secondary factor only after whitespace is addressed. + '/\'"(\s|$)/' => '&#8217;&#8221;$1', + '/(^|\s|<p>)\'"/' => '$1&#8216;&#8220;', + '/\'"(\W)/' => '&#8217;&#8221;$1', + '/(\W)\'"/' => '$1&#8216;&#8220;', + '/"\'(\s|$)/' => '&#8221;&#8217;$1', + '/(^|\s|<p>)"\'/' => '$1&#8220;&#8216;', + '/"\'(\W)/' => '&#8221;&#8217;$1', + '/(\W)"\'/' => '$1&#8220;&#8216;', + + // single quote smart quotes + '/\'(\s|$)/' => '&#8217;$1', + '/(^|\s|<p>)\'/' => '$1&#8216;', + '/\'(\W)/' => '&#8217;$1', + '/(\W)\'/' => '$1&#8216;', + + // double quote smart quotes + '/"(\s|$)/' => '&#8221;$1', + '/(^|\s|<p>)"/' => '$1&#8220;', + '/"(\W)/' => '&#8221;$1', + '/(\W)"/' => '$1&#8220;', + + // apostrophes + "/(\w)'(\w)/" => '$1&#8217;$2', + + // Em dash and ellipses dots + '/\s?\-\-\s?/' => '&#8212;', + '/(\w)\.{3}/' => '$1&#8230;', + + // double space after sentences + '/(\W) /' => '$1&nbsp; ', + + // ampersands, if not a character entity + '/&(?!#?[a-zA-Z0-9]{2,};)/' => '&amp;' + ); + } + + return preg_replace(array_keys($table), $table, $str); + } + + // -------------------------------------------------------------------- + + /** + * Format Newlines + * + * Converts newline characters into either <p> tags or <br /> + * + * @access public + * @param string + * @return string + */ + function _format_newlines($str) + { + if ($str == '') + { + return $str; + } + + if (strpos($str, "\n") === FALSE && ! in_array($this->last_block_element, $this->inner_block_required)) + { + return $str; + } + + // Convert two consecutive newlines to paragraphs + $str = str_replace("\n\n", "</p>\n\n<p>", $str); + + // Convert single spaces to <br /> tags + $str = preg_replace("/([^\n])(\n)([^\n])/", "\\1<br />\\2\\3", $str); + + // Wrap the whole enchilada in enclosing paragraphs + if ($str != "\n") + { + // We trim off the right-side new line so that the closing </p> tag + // will be positioned immediately following the string, matching + // the behavior of the opening <p> tag + $str = '<p>'.rtrim($str).'</p>'; + } + + // Remove empty paragraphs if they are on the first line, as this + // is a potential unintended consequence of the previous code + $str = preg_replace("/<p><\/p>(.*)/", "\\1", $str, 1); + + return $str; + } + + // ------------------------------------------------------------------------ + + /** + * Protect Characters + * + * Protects special characters from being formatted later + * We don't want quotes converted within tags so we'll temporarily convert them to {@DQ} and {@SQ} + * and we don't want double dashes converted to emdash entities, so they are marked with {@DD} + * likewise double spaces are converted to {@NBS} to prevent entity conversion + * + * @access public + * @param array + * @return string + */ + function _protect_characters($match) + { + return str_replace(array("'",'"','--',' '), array('{@SQ}', '{@DQ}', '{@DD}', '{@NBS}'), $match[0]); + } + + // -------------------------------------------------------------------- + + /** + * Convert newlines to HTML line breaks except within PRE tags + * + * @access public + * @param string + * @return string + */ + function nl2br_except_pre($str) + { + $ex = explode("pre>",$str); + $ct = count($ex); + + $newstr = ""; + for ($i = 0; $i < $ct; $i++) + { + if (($i % 2) == 0) + { + $newstr .= nl2br($ex[$i]); + } + else + { + $newstr .= $ex[$i]; + } + + if ($ct - 1 != $i) + $newstr .= "pre>"; + } + + return $newstr; + } + +} +// END Typography Class + +/* End of file Typography.php */ +/* Location: ./system/libraries/Typography.php */ \ No newline at end of file diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php new file mode 100755 index 0000000..5bd7e80 --- /dev/null +++ b/system/libraries/Unit_test.php @@ -0,0 +1,383 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.3.1 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Unit Testing Class + * + * Simple testing class + * + * @package CodeIgniter + * @subpackage Libraries + * @category UnitTesting + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/uri.html + */ +class CI_Unit_test { + + var $active = TRUE; + var $results = array(); + var $strict = FALSE; + var $_template = NULL; + var $_template_rows = NULL; + var $_test_items_visible = array(); + + public function __construct() + { + // These are the default items visible when a test is run. + $this->_test_items_visible = array ( + 'test_name', + 'test_datatype', + 'res_datatype', + 'result', + 'file', + 'line', + 'notes' + ); + + log_message('debug', "Unit Testing Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Run the tests + * + * Runs the supplied tests + * + * @access public + * @param array + * @return void + */ + function set_test_items($items = array()) + { + if ( ! empty($items) AND is_array($items)) + { + $this->_test_items_visible = $items; + } + } + + // -------------------------------------------------------------------- + + /** + * Run the tests + * + * Runs the supplied tests + * + * @access public + * @param mixed + * @param mixed + * @param string + * @return string + */ + function run($test, $expected = TRUE, $test_name = 'undefined', $notes = '') + { + if ($this->active == FALSE) + { + return FALSE; + } + + if (in_array($expected, array('is_object', 'is_string', 'is_bool', 'is_true', 'is_false', 'is_int', 'is_numeric', 'is_float', 'is_double', 'is_array', 'is_null'), TRUE)) + { + $expected = str_replace('is_float', 'is_double', $expected); + $result = ($expected($test)) ? TRUE : FALSE; + $extype = str_replace(array('true', 'false'), 'bool', str_replace('is_', '', $expected)); + } + else + { + if ($this->strict == TRUE) + $result = ($test === $expected) ? TRUE : FALSE; + else + $result = ($test == $expected) ? TRUE : FALSE; + + $extype = gettype($expected); + } + + $back = $this->_backtrace(); + + $report[] = array ( + 'test_name' => $test_name, + 'test_datatype' => gettype($test), + 'res_datatype' => $extype, + 'result' => ($result === TRUE) ? 'passed' : 'failed', + 'file' => $back['file'], + 'line' => $back['line'], + 'notes' => $notes + ); + + $this->results[] = $report; + + return($this->report($this->result($report))); + } + + // -------------------------------------------------------------------- + + /** + * Generate a report + * + * Displays a table with the test data + * + * @access public + * @return string + */ + function report($result = array()) + { + if (count($result) == 0) + { + $result = $this->result(); + } + + $CI =& get_instance(); + $CI->load->language('unit_test'); + + $this->_parse_template(); + + $r = ''; + foreach ($result as $res) + { + $table = ''; + + foreach ($res as $key => $val) + { + if ($key == $CI->lang->line('ut_result')) + { + if ($val == $CI->lang->line('ut_passed')) + { + $val = '<span style="color: #0C0;">'.$val.'</span>'; + } + elseif ($val == $CI->lang->line('ut_failed')) + { + $val = '<span style="color: #C00;">'.$val.'</span>'; + } + } + + $temp = $this->_template_rows; + $temp = str_replace('{item}', $key, $temp); + $temp = str_replace('{result}', $val, $temp); + $table .= $temp; + } + + $r .= str_replace('{rows}', $table, $this->_template); + } + + return $r; + } + + // -------------------------------------------------------------------- + + /** + * Use strict comparison + * + * Causes the evaluation to use === rather than == + * + * @access public + * @param bool + * @return null + */ + function use_strict($state = TRUE) + { + $this->strict = ($state == FALSE) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Make Unit testing active + * + * Enables/disables unit testing + * + * @access public + * @param bool + * @return null + */ + function active($state = TRUE) + { + $this->active = ($state == FALSE) ? FALSE : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Result Array + * + * Returns the raw result data + * + * @access public + * @return array + */ + function result($results = array()) + { + $CI =& get_instance(); + $CI->load->language('unit_test'); + + if (count($results) == 0) + { + $results = $this->results; + } + + $retval = array(); + foreach ($results as $result) + { + $temp = array(); + foreach ($result as $key => $val) + { + if ( ! in_array($key, $this->_test_items_visible)) + { + continue; + } + + if (is_array($val)) + { + foreach ($val as $k => $v) + { + if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$v)))) + { + $v = $line; + } + $temp[$CI->lang->line('ut_'.$k)] = $v; + } + } + else + { + if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$val)))) + { + $val = $line; + } + $temp[$CI->lang->line('ut_'.$key)] = $val; + } + } + + $retval[] = $temp; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Set the template + * + * This lets us set the template to be used to display results + * + * @access public + * @param string + * @return void + */ + function set_template($template) + { + $this->_template = $template; + } + + // -------------------------------------------------------------------- + + /** + * Generate a backtrace + * + * This lets us show file names and line numbers + * + * @access private + * @return array + */ + function _backtrace() + { + if (function_exists('debug_backtrace')) + { + $back = debug_backtrace(); + + $file = ( ! isset($back['1']['file'])) ? '' : $back['1']['file']; + $line = ( ! isset($back['1']['line'])) ? '' : $back['1']['line']; + + return array('file' => $file, 'line' => $line); + } + return array('file' => 'Unknown', 'line' => 'Unknown'); + } + + // -------------------------------------------------------------------- + + /** + * Get Default Template + * + * @access private + * @return string + */ + function _default_template() + { + $this->_template = "\n".'<table style="width:100%; font-size:small; margin:10px 0; border-collapse:collapse; border:1px solid #CCC;">'; + $this->_template .= '{rows}'; + $this->_template .= "\n".'</table>'; + + $this->_template_rows = "\n\t".'<tr>'; + $this->_template_rows .= "\n\t\t".'<th style="text-align: left; border-bottom:1px solid #CCC;">{item}</th>'; + $this->_template_rows .= "\n\t\t".'<td style="border-bottom:1px solid #CCC;">{result}</td>'; + $this->_template_rows .= "\n\t".'</tr>'; + } + + // -------------------------------------------------------------------- + + /** + * Parse Template + * + * Harvests the data within the template {pseudo-variables} + * + * @access private + * @return void + */ + function _parse_template() + { + if ( ! is_null($this->_template_rows)) + { + return; + } + + if (is_null($this->_template)) + { + $this->_default_template(); + return; + } + + if ( ! preg_match("/\{rows\}(.*?)\{\/rows\}/si", $this->_template, $match)) + { + $this->_default_template(); + return; + } + + $this->_template_rows = $match['1']; + $this->_template = str_replace($match['0'], '{rows}', $this->_template); + } + +} +// END Unit_test Class + +/** + * Helper functions to test boolean true/false + * + * + * @access private + * @return bool + */ +function is_true($test) +{ + return (is_bool($test) AND $test === TRUE) ? TRUE : FALSE; +} +function is_false($test) +{ + return (is_bool($test) AND $test === FALSE) ? TRUE : FALSE; +} + + +/* End of file Unit_test.php */ +/* Location: ./system/libraries/Unit_test.php */ \ No newline at end of file diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php new file mode 100755 index 0000000..0e5d73b --- /dev/null +++ b/system/libraries/Upload.php @@ -0,0 +1,1136 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * File Uploading Class + * + * @package CodeIgniter + * @subpackage Libraries + * @category Uploads + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/file_uploading.html + */ +class CI_Upload { + + public $max_size = 0; + public $max_width = 0; + public $max_height = 0; + public $max_filename = 0; + public $allowed_types = ""; + public $file_temp = ""; + public $file_name = ""; + public $orig_name = ""; + public $file_type = ""; + public $file_size = ""; + public $file_ext = ""; + public $upload_path = ""; + public $overwrite = FALSE; + public $encrypt_name = FALSE; + public $is_image = FALSE; + public $image_width = ''; + public $image_height = ''; + public $image_type = ''; + public $image_size_str = ''; + public $error_msg = array(); + public $mimes = array(); + public $remove_spaces = TRUE; + public $xss_clean = FALSE; + public $temp_prefix = "temp_file_"; + public $client_name = ''; + + protected $_file_name_override = ''; + + /** + * Constructor + * + * @access public + */ + public function __construct($props = array()) + { + if (count($props) > 0) + { + $this->initialize($props); + } + + log_message('debug', "Upload Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize preferences + * + * @param array + * @return void + */ + public function initialize($config = array()) + { + $defaults = array( + 'max_size' => 0, + 'max_width' => 0, + 'max_height' => 0, + 'max_filename' => 0, + 'allowed_types' => "", + 'file_temp' => "", + 'file_name' => "", + 'orig_name' => "", + 'file_type' => "", + 'file_size' => "", + 'file_ext' => "", + 'upload_path' => "", + 'overwrite' => FALSE, + 'encrypt_name' => FALSE, + 'is_image' => FALSE, + 'image_width' => '', + 'image_height' => '', + 'image_type' => '', + 'image_size_str' => '', + 'error_msg' => array(), + 'mimes' => array(), + 'remove_spaces' => TRUE, + 'xss_clean' => FALSE, + 'temp_prefix' => "temp_file_", + 'client_name' => '' + ); + + + foreach ($defaults as $key => $val) + { + if (isset($config[$key])) + { + $method = 'set_'.$key; + if (method_exists($this, $method)) + { + $this->$method($config[$key]); + } + else + { + $this->$key = $config[$key]; + } + } + else + { + $this->$key = $val; + } + } + + // if a file_name was provided in the config, use it instead of the user input + // supplied file name for all uploads until initialized again + $this->_file_name_override = $this->file_name; + } + + // -------------------------------------------------------------------- + + /** + * Perform the file upload + * + * @return bool + */ + public function do_upload($field = 'userfile') + { + + // Is $_FILES[$field] set? If not, no reason to continue. + if ( ! isset($_FILES[$field])) + { + $this->set_error('upload_no_file_selected'); + return FALSE; + } + + // Is the upload path valid? + if ( ! $this->validate_upload_path()) + { + // errors will already be set by validate_upload_path() so just return FALSE + return FALSE; + } + + // Was the file able to be uploaded? If not, determine the reason why. + if ( ! is_uploaded_file($_FILES[$field]['tmp_name'])) + { + $error = ( ! isset($_FILES[$field]['error'])) ? 4 : $_FILES[$field]['error']; + + switch($error) + { + case 1: // UPLOAD_ERR_INI_SIZE + $this->set_error('upload_file_exceeds_limit'); + break; + case 2: // UPLOAD_ERR_FORM_SIZE + $this->set_error('upload_file_exceeds_form_limit'); + break; + case 3: // UPLOAD_ERR_PARTIAL + $this->set_error('upload_file_partial'); + break; + case 4: // UPLOAD_ERR_NO_FILE + $this->set_error('upload_no_file_selected'); + break; + case 6: // UPLOAD_ERR_NO_TMP_DIR + $this->set_error('upload_no_temp_directory'); + break; + case 7: // UPLOAD_ERR_CANT_WRITE + $this->set_error('upload_unable_to_write_file'); + break; + case 8: // UPLOAD_ERR_EXTENSION + $this->set_error('upload_stopped_by_extension'); + break; + default : $this->set_error('upload_no_file_selected'); + break; + } + + return FALSE; + } + + + // Set the uploaded data as class variables + $this->file_temp = $_FILES[$field]['tmp_name']; + $this->file_size = $_FILES[$field]['size']; + $this->_file_mime_type($_FILES[$field]); + $this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $this->file_type); + $this->file_type = strtolower(trim(stripslashes($this->file_type), '"')); + $this->file_name = $this->_prep_filename($_FILES[$field]['name']); + $this->file_ext = $this->get_extension($this->file_name); + $this->client_name = $this->file_name; + + // Is the file type allowed to be uploaded? + if ( ! $this->is_allowed_filetype()) + { + $this->set_error('upload_invalid_filetype'); + return FALSE; + } + + // if we're overriding, let's now make sure the new name and type is allowed + if ($this->_file_name_override != '') + { + $this->file_name = $this->_prep_filename($this->_file_name_override); + + // If no extension was provided in the file_name config item, use the uploaded one + if (strpos($this->_file_name_override, '.') === FALSE) + { + $this->file_name .= $this->file_ext; + } + + // An extension was provided, lets have it! + else + { + $this->file_ext = $this->get_extension($this->_file_name_override); + } + + if ( ! $this->is_allowed_filetype(TRUE)) + { + $this->set_error('upload_invalid_filetype'); + return FALSE; + } + } + + // Convert the file size to kilobytes + if ($this->file_size > 0) + { + $this->file_size = round($this->file_size/1024, 2); + } + + // Is the file size within the allowed maximum? + if ( ! $this->is_allowed_filesize()) + { + $this->set_error('upload_invalid_filesize'); + return FALSE; + } + + // Are the image dimensions within the allowed size? + // Note: This can fail if the server has an open_basdir restriction. + if ( ! $this->is_allowed_dimensions()) + { + $this->set_error('upload_invalid_dimensions'); + return FALSE; + } + + // Sanitize the file name for security + $this->file_name = $this->clean_file_name($this->file_name); + + // Truncate the file name if it's too long + if ($this->max_filename > 0) + { + $this->file_name = $this->limit_filename_length($this->file_name, $this->max_filename); + } + + // Remove white spaces in the name + if ($this->remove_spaces == TRUE) + { + $this->file_name = preg_replace("/\s+/", "_", $this->file_name); + } + + /* + * Validate the file name + * This function appends an number onto the end of + * the file if one with the same name already exists. + * If it returns false there was a problem. + */ + $this->orig_name = $this->file_name; + + if ($this->overwrite == FALSE) + { + $this->file_name = $this->set_filename($this->upload_path, $this->file_name); + + if ($this->file_name === FALSE) + { + return FALSE; + } + } + + /* + * Run the file through the XSS hacking filter + * This helps prevent malicious code from being + * embedded within a file. Scripts can easily + * be disguised as images or other file types. + */ + if ($this->xss_clean) + { + if ($this->do_xss_clean() === FALSE) + { + $this->set_error('upload_unable_to_write_file'); + return FALSE; + } + } + + /* + * Move the file to the final destination + * To deal with different server configurations + * we'll attempt to use copy() first. If that fails + * we'll use move_uploaded_file(). One of the two should + * reliably work in most environments + */ + if ( ! @copy($this->file_temp, $this->upload_path.$this->file_name)) + { + if ( ! @move_uploaded_file($this->file_temp, $this->upload_path.$this->file_name)) + { + $this->set_error('upload_destination_error'); + return FALSE; + } + } + + /* + * Set the finalized image dimensions + * This sets the image width/height (assuming the + * file was an image). We use this information + * in the "data" function. + */ + $this->set_image_properties($this->upload_path.$this->file_name); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Finalized Data Array + * + * Returns an associative array containing all of the information + * related to the upload, allowing the developer easy access in one array. + * + * @return array + */ + public function data() + { + return array ( + 'file_name' => $this->file_name, + 'file_type' => $this->file_type, + 'file_path' => $this->upload_path, + 'full_path' => $this->upload_path.$this->file_name, + 'raw_name' => str_replace($this->file_ext, '', $this->file_name), + 'orig_name' => $this->orig_name, + 'client_name' => $this->client_name, + 'file_ext' => $this->file_ext, + 'file_size' => $this->file_size, + 'is_image' => $this->is_image(), + 'image_width' => $this->image_width, + 'image_height' => $this->image_height, + 'image_type' => $this->image_type, + 'image_size_str' => $this->image_size_str, + ); + } + + // -------------------------------------------------------------------- + + /** + * Set Upload Path + * + * @param string + * @return void + */ + public function set_upload_path($path) + { + // Make sure it has a trailing slash + $this->upload_path = rtrim($path, '/').'/'; + } + + // -------------------------------------------------------------------- + + /** + * Set the file name + * + * This function takes a filename/path as input and looks for the + * existence of a file with the same name. If found, it will append a + * number to the end of the filename to avoid overwriting a pre-existing file. + * + * @param string + * @param string + * @return string + */ + public function set_filename($path, $filename) + { + if ($this->encrypt_name == TRUE) + { + mt_srand(); + $filename = md5(uniqid(mt_rand())).$this->file_ext; + } + + if ( ! file_exists($path.$filename)) + { + return $filename; + } + + $filename = str_replace($this->file_ext, '', $filename); + + $new_filename = ''; + for ($i = 1; $i < 100; $i++) + { + if ( ! file_exists($path.$filename.$i.$this->file_ext)) + { + $new_filename = $filename.$i.$this->file_ext; + break; + } + } + + if ($new_filename == '') + { + $this->set_error('upload_bad_filename'); + return FALSE; + } + else + { + return $new_filename; + } + } + + // -------------------------------------------------------------------- + + /** + * Set Maximum File Size + * + * @param integer + * @return void + */ + public function set_max_filesize($n) + { + $this->max_size = ((int) $n < 0) ? 0: (int) $n; + } + + // -------------------------------------------------------------------- + + /** + * Set Maximum File Name Length + * + * @param integer + * @return void + */ + public function set_max_filename($n) + { + $this->max_filename = ((int) $n < 0) ? 0: (int) $n; + } + + // -------------------------------------------------------------------- + + /** + * Set Maximum Image Width + * + * @param integer + * @return void + */ + public function set_max_width($n) + { + $this->max_width = ((int) $n < 0) ? 0: (int) $n; + } + + // -------------------------------------------------------------------- + + /** + * Set Maximum Image Height + * + * @param integer + * @return void + */ + public function set_max_height($n) + { + $this->max_height = ((int) $n < 0) ? 0: (int) $n; + } + + // -------------------------------------------------------------------- + + /** + * Set Allowed File Types + * + * @param string + * @return void + */ + public function set_allowed_types($types) + { + if ( ! is_array($types) && $types == '*') + { + $this->allowed_types = '*'; + return; + } + $this->allowed_types = explode('|', $types); + } + + // -------------------------------------------------------------------- + + /** + * Set Image Properties + * + * Uses GD to determine the width/height/type of image + * + * @param string + * @return void + */ + public function set_image_properties($path = '') + { + if ( ! $this->is_image()) + { + return; + } + + if (function_exists('getimagesize')) + { + if (FALSE !== ($D = @getimagesize($path))) + { + $types = array(1 => 'gif', 2 => 'jpeg', 3 => 'png'); + + $this->image_width = $D['0']; + $this->image_height = $D['1']; + $this->image_type = ( ! isset($types[$D['2']])) ? 'unknown' : $types[$D['2']]; + $this->image_size_str = $D['3']; // string containing height and width + } + } + } + + // -------------------------------------------------------------------- + + /** + * Set XSS Clean + * + * Enables the XSS flag so that the file that was uploaded + * will be run through the XSS filter. + * + * @param bool + * @return void + */ + public function set_xss_clean($flag = FALSE) + { + $this->xss_clean = ($flag == TRUE) ? TRUE : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Validate the image + * + * @return bool + */ + public function is_image() + { + // IE will sometimes return odd mime-types during upload, so here we just standardize all + // jpegs or pngs to the same file type. + + $png_mimes = array('image/x-png'); + $jpeg_mimes = array('image/jpg', 'image/jpe', 'image/jpeg', 'image/pjpeg'); + + if (in_array($this->file_type, $png_mimes)) + { + $this->file_type = 'image/png'; + } + + if (in_array($this->file_type, $jpeg_mimes)) + { + $this->file_type = 'image/jpeg'; + } + + $img_mimes = array( + 'image/gif', + 'image/jpeg', + 'image/png', + ); + + return (in_array($this->file_type, $img_mimes, TRUE)) ? TRUE : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Verify that the filetype is allowed + * + * @return bool + */ + public function is_allowed_filetype($ignore_mime = FALSE) + { + if ($this->allowed_types == '*') + { + return TRUE; + } + + if (count($this->allowed_types) == 0 OR ! is_array($this->allowed_types)) + { + $this->set_error('upload_no_file_types'); + return FALSE; + } + + $ext = strtolower(ltrim($this->file_ext, '.')); + + if ( ! in_array($ext, $this->allowed_types)) + { + return FALSE; + } + + // Images get some additional checks + $image_types = array('gif', 'jpg', 'jpeg', 'png', 'jpe'); + + if (in_array($ext, $image_types)) + { + if (getimagesize($this->file_temp) === FALSE) + { + return FALSE; + } + } + + if ($ignore_mime === TRUE) + { + return TRUE; + } + + $mime = $this->mimes_types($ext); + + if (is_array($mime)) + { + if (in_array($this->file_type, $mime, TRUE)) + { + return TRUE; + } + } + elseif ($mime == $this->file_type) + { + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Verify that the file is within the allowed size + * + * @return bool + */ + public function is_allowed_filesize() + { + if ($this->max_size != 0 AND $this->file_size > $this->max_size) + { + return FALSE; + } + else + { + return TRUE; + } + } + + // -------------------------------------------------------------------- + + /** + * Verify that the image is within the allowed width/height + * + * @return bool + */ + public function is_allowed_dimensions() + { + if ( ! $this->is_image()) + { + return TRUE; + } + + if (function_exists('getimagesize')) + { + $D = @getimagesize($this->file_temp); + + if ($this->max_width > 0 AND $D['0'] > $this->max_width) + { + return FALSE; + } + + if ($this->max_height > 0 AND $D['1'] > $this->max_height) + { + return FALSE; + } + + return TRUE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Validate Upload Path + * + * Verifies that it is a valid upload path with proper permissions. + * + * + * @return bool + */ + public function validate_upload_path() + { + if ($this->upload_path == '') + { + $this->set_error('upload_no_filepath'); + return FALSE; + } + + if (function_exists('realpath') AND @realpath($this->upload_path) !== FALSE) + { + $this->upload_path = str_replace("\\", "/", realpath($this->upload_path)); + } + + if ( ! @is_dir($this->upload_path)) + { + $this->set_error('upload_no_filepath'); + return FALSE; + } + + if ( ! is_really_writable($this->upload_path)) + { + $this->set_error('upload_not_writable'); + return FALSE; + } + + $this->upload_path = preg_replace("/(.+?)\/*$/", "\\1/", $this->upload_path); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Extract the file extension + * + * @param string + * @return string + */ + public function get_extension($filename) + { + $x = explode('.', $filename); + return '.'.end($x); + } + + // -------------------------------------------------------------------- + + /** + * Clean the file name for security + * + * @param string + * @return string + */ + public function clean_file_name($filename) + { + $bad = array( + "<!--", + "-->", + "'", + "<", + ">", + '"', + '&', + '$', + '=', + ';', + '?', + '/', + "%20", + "%22", + "%3c", // < + "%253c", // < + "%3e", // > + "%0e", // > + "%28", // ( + "%29", // ) + "%2528", // ( + "%26", // & + "%24", // $ + "%3f", // ? + "%3b", // ; + "%3d" // = + ); + + $filename = str_replace($bad, '', $filename); + + return stripslashes($filename); + } + + // -------------------------------------------------------------------- + + /** + * Limit the File Name Length + * + * @param string + * @return string + */ + public function limit_filename_length($filename, $length) + { + if (strlen($filename) < $length) + { + return $filename; + } + + $ext = ''; + if (strpos($filename, '.') !== FALSE) + { + $parts = explode('.', $filename); + $ext = '.'.array_pop($parts); + $filename = implode('.', $parts); + } + + return substr($filename, 0, ($length - strlen($ext))).$ext; + } + + // -------------------------------------------------------------------- + + /** + * Runs the file through the XSS clean function + * + * This prevents people from embedding malicious code in their files. + * I'm not sure that it won't negatively affect certain files in unexpected ways, + * but so far I haven't found that it causes trouble. + * + * @return void + */ + public function do_xss_clean() + { + $file = $this->file_temp; + + if (filesize($file) == 0) + { + return FALSE; + } + + if (function_exists('memory_get_usage') && memory_get_usage() && ini_get('memory_limit') != '') + { + $current = ini_get('memory_limit') * 1024 * 1024; + + // There was a bug/behavioural change in PHP 5.2, where numbers over one million get output + // into scientific notation. number_format() ensures this number is an integer + // http://bugs.php.net/bug.php?id=43053 + + $new_memory = number_format(ceil(filesize($file) + $current), 0, '.', ''); + + ini_set('memory_limit', $new_memory); // When an integer is used, the value is measured in bytes. - PHP.net + } + + // If the file being uploaded is an image, then we should have no problem with XSS attacks (in theory), but + // IE can be fooled into mime-type detecting a malformed image as an html file, thus executing an XSS attack on anyone + // using IE who looks at the image. It does this by inspecting the first 255 bytes of an image. To get around this + // CI will itself look at the first 255 bytes of an image to determine its relative safety. This can save a lot of + // processor power and time if it is actually a clean image, as it will be in nearly all instances _except_ an + // attempted XSS attack. + + if (function_exists('getimagesize') && @getimagesize($file) !== FALSE) + { + if (($file = @fopen($file, 'rb')) === FALSE) // "b" to force binary + { + return FALSE; // Couldn't open the file, return FALSE + } + + $opening_bytes = fread($file, 256); + fclose($file); + + // These are known to throw IE into mime-type detection chaos + // <a, <body, <head, <html, <img, <plaintext, <pre, <script, <table, <title + // title is basically just in SVG, but we filter it anyhow + + if ( ! preg_match('/<(a|body|head|html|img|plaintext|pre|script|table|title)[\s>]/i', $opening_bytes)) + { + return TRUE; // its an image, no "triggers" detected in the first 256 bytes, we're good + } + else + { + return FALSE; + } + } + + if (($data = @file_get_contents($file)) === FALSE) + { + return FALSE; + } + + $CI =& get_instance(); + return $CI->security->xss_clean($data, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Set an error message + * + * @param string + * @return void + */ + public function set_error($msg) + { + $CI =& get_instance(); + $CI->lang->load('upload'); + + if (is_array($msg)) + { + foreach ($msg as $val) + { + $msg = ($CI->lang->line($val) == FALSE) ? $val : $CI->lang->line($val); + $this->error_msg[] = $msg; + log_message('error', $msg); + } + } + else + { + $msg = ($CI->lang->line($msg) == FALSE) ? $msg : $CI->lang->line($msg); + $this->error_msg[] = $msg; + log_message('error', $msg); + } + } + + // -------------------------------------------------------------------- + + /** + * Display the error message + * + * @param string + * @param string + * @return string + */ + public function display_errors($open = '<p>', $close = '</p>') + { + $str = ''; + foreach ($this->error_msg as $val) + { + $str .= $open.$val.$close; + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * List of Mime Types + * + * This is a list of mime types. We use it to validate + * the "allowed types" set by the developer + * + * @param string + * @return string + */ + public function mimes_types($mime) + { + global $mimes; + + if (count($this->mimes) == 0) + { + if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'); + } + elseif (is_file(APPPATH.'config/mimes.php')) + { + include(APPPATH.'config//mimes.php'); + } + else + { + return FALSE; + } + + $this->mimes = $mimes; + unset($mimes); + } + + return ( ! isset($this->mimes[$mime])) ? FALSE : $this->mimes[$mime]; + } + + // -------------------------------------------------------------------- + + /** + * Prep Filename + * + * Prevents possible script execution from Apache's handling of files multiple extensions + * http://httpd.apache.org/docs/1.3/mod/mod_mime.html#multipleext + * + * @param string + * @return string + */ + protected function _prep_filename($filename) + { + if (strpos($filename, '.') === FALSE OR $this->allowed_types == '*') + { + return $filename; + } + + $parts = explode('.', $filename); + $ext = array_pop($parts); + $filename = array_shift($parts); + + foreach ($parts as $part) + { + if ( ! in_array(strtolower($part), $this->allowed_types) OR $this->mimes_types(strtolower($part)) === FALSE) + { + $filename .= '.'.$part.'_'; + } + else + { + $filename .= '.'.$part; + } + } + + $filename .= '.'.$ext; + + return $filename; + } + + // -------------------------------------------------------------------- + + /** + * File MIME type + * + * Detects the (actual) MIME type of the uploaded file, if possible. + * The input array is expected to be $_FILES[$field] + * + * @param array + * @return void + */ + protected function _file_mime_type($file) + { + // We'll need this to validate the MIME info string (e.g. text/plain; charset=us-ascii) + $regexp = '/^([a-z\-]+\/[a-z0-9\-\.\+]+)(;\s.+)?$/'; + + /* Fileinfo extension - most reliable method + * + * Unfortunately, prior to PHP 5.3 - it's only available as a PECL extension and the + * more convenient FILEINFO_MIME_TYPE flag doesn't exist. + */ + if (function_exists('finfo_file')) + { + $finfo = finfo_open(FILEINFO_MIME); + if (is_resource($finfo)) // It is possible that a FALSE value is returned, if there is no magic MIME database file found on the system + { + $mime = @finfo_file($finfo, $file['tmp_name']); + finfo_close($finfo); + + /* According to the comments section of the PHP manual page, + * it is possible that this function returns an empty string + * for some files (e.g. if they don't exist in the magic MIME database) + */ + if (is_string($mime) && preg_match($regexp, $mime, $matches)) + { + $this->file_type = $matches[1]; + return; + } + } + } + + /* This is an ugly hack, but UNIX-type systems provide a "native" way to detect the file type, + * which is still more secure than depending on the value of $_FILES[$field]['type'], and as it + * was reported in issue #750 (https://github.com/EllisLab/CodeIgniter/issues/750) - it's better + * than mime_content_type() as well, hence the attempts to try calling the command line with + * three different functions. + * + * Notes: + * - the DIRECTORY_SEPARATOR comparison ensures that we're not on a Windows system + * - many system admins would disable the exec(), shell_exec(), popen() and similar functions + * due to security concerns, hence the function_exists() checks + */ + if (DIRECTORY_SEPARATOR !== '\\') + { + $cmd = 'file --brief --mime ' . escapeshellarg($file['tmp_name']) . ' 2>&1'; + + if (function_exists('exec')) + { + /* This might look confusing, as $mime is being populated with all of the output when set in the second parameter. + * However, we only neeed the last line, which is the actual return value of exec(), and as such - it overwrites + * anything that could already be set for $mime previously. This effectively makes the second parameter a dummy + * value, which is only put to allow us to get the return status code. + */ + $mime = @exec($cmd, $mime, $return_status); + if ($return_status === 0 && is_string($mime) && preg_match($regexp, $mime, $matches)) + { + $this->file_type = $matches[1]; + return; + } + } + + if ( (bool) @ini_get('safe_mode') === FALSE && function_exists('shell_exec')) + { + $mime = @shell_exec($cmd); + if (strlen($mime) > 0) + { + $mime = explode("\n", trim($mime)); + if (preg_match($regexp, $mime[(count($mime) - 1)], $matches)) + { + $this->file_type = $matches[1]; + return; + } + } + } + + if (function_exists('popen')) + { + $proc = @popen($cmd, 'r'); + if (is_resource($proc)) + { + $mime = @fread($proc, 512); + @pclose($proc); + if ($mime !== FALSE) + { + $mime = explode("\n", trim($mime)); + if (preg_match($regexp, $mime[(count($mime) - 1)], $matches)) + { + $this->file_type = $matches[1]; + return; + } + } + } + } + } + + // Fall back to the deprecated mime_content_type(), if available (still better than $_FILES[$field]['type']) + if (function_exists('mime_content_type')) + { + $this->file_type = @mime_content_type($file['tmp_name']); + if (strlen($this->file_type) > 0) // It's possible that mime_content_type() returns FALSE or an empty string + { + return; + } + } + + $this->file_type = $file['type']; + } + + // -------------------------------------------------------------------- + +} +// END Upload Class + +/* End of file Upload.php */ +/* Location: ./system/libraries/Upload.php */ diff --git a/system/libraries/User_agent.php b/system/libraries/User_agent.php new file mode 100755 index 0000000..0b77a7d --- /dev/null +++ b/system/libraries/User_agent.php @@ -0,0 +1,549 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * User Agent Class + * + * Identifies the platform, browser, robot, or mobile devise of the browsing agent + * + * @package CodeIgniter + * @subpackage Libraries + * @category User Agent + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/user_agent.html + */ +class CI_User_agent { + + var $agent = NULL; + + var $is_browser = FALSE; + var $is_robot = FALSE; + var $is_mobile = FALSE; + + var $languages = array(); + var $charsets = array(); + + var $platforms = array(); + var $browsers = array(); + var $mobiles = array(); + var $robots = array(); + + var $platform = ''; + var $browser = ''; + var $version = ''; + var $mobile = ''; + var $robot = ''; + + /** + * Constructor + * + * Sets the User Agent and runs the compilation routine + * + * @access public + * @return void + */ + public function __construct() + { + if (isset($_SERVER['HTTP_USER_AGENT'])) + { + $this->agent = trim($_SERVER['HTTP_USER_AGENT']); + } + + if ( ! is_null($this->agent)) + { + if ($this->_load_agent_file()) + { + $this->_compile_data(); + } + } + + log_message('debug', "User Agent Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Compile the User Agent Data + * + * @access private + * @return bool + */ + private function _load_agent_file() + { + if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/user_agents.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/user_agents.php'); + } + elseif (is_file(APPPATH.'config/user_agents.php')) + { + include(APPPATH.'config/user_agents.php'); + } + else + { + return FALSE; + } + + $return = FALSE; + + if (isset($platforms)) + { + $this->platforms = $platforms; + unset($platforms); + $return = TRUE; + } + + if (isset($browsers)) + { + $this->browsers = $browsers; + unset($browsers); + $return = TRUE; + } + + if (isset($mobiles)) + { + $this->mobiles = $mobiles; + unset($mobiles); + $return = TRUE; + } + + if (isset($robots)) + { + $this->robots = $robots; + unset($robots); + $return = TRUE; + } + + return $return; + } + + // -------------------------------------------------------------------- + + /** + * Compile the User Agent Data + * + * @access private + * @return bool + */ + private function _compile_data() + { + $this->_set_platform(); + + foreach (array('_set_robot', '_set_browser', '_set_mobile') as $function) + { + if ($this->$function() === TRUE) + { + break; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Set the Platform + * + * @access private + * @return mixed + */ + private function _set_platform() + { + if (is_array($this->platforms) AND count($this->platforms) > 0) + { + foreach ($this->platforms as $key => $val) + { + if (preg_match("|".preg_quote($key)."|i", $this->agent)) + { + $this->platform = $val; + return TRUE; + } + } + } + $this->platform = 'Unknown Platform'; + } + + // -------------------------------------------------------------------- + + /** + * Set the Browser + * + * @access private + * @return bool + */ + private function _set_browser() + { + if (is_array($this->browsers) AND count($this->browsers) > 0) + { + foreach ($this->browsers as $key => $val) + { + if (preg_match("|".preg_quote($key).".*?([0-9\.]+)|i", $this->agent, $match)) + { + $this->is_browser = TRUE; + $this->version = $match[1]; + $this->browser = $val; + $this->_set_mobile(); + return TRUE; + } + } + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Set the Robot + * + * @access private + * @return bool + */ + private function _set_robot() + { + if (is_array($this->robots) AND count($this->robots) > 0) + { + foreach ($this->robots as $key => $val) + { + if (preg_match("|".preg_quote($key)."|i", $this->agent)) + { + $this->is_robot = TRUE; + $this->robot = $val; + return TRUE; + } + } + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Set the Mobile Device + * + * @access private + * @return bool + */ + private function _set_mobile() + { + if (is_array($this->mobiles) AND count($this->mobiles) > 0) + { + foreach ($this->mobiles as $key => $val) + { + if (FALSE !== (strpos(strtolower($this->agent), $key))) + { + $this->is_mobile = TRUE; + $this->mobile = $val; + return TRUE; + } + } + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Set the accepted languages + * + * @access private + * @return void + */ + private function _set_languages() + { + if ((count($this->languages) == 0) AND isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) AND $_SERVER['HTTP_ACCEPT_LANGUAGE'] != '') + { + $languages = preg_replace('/(;q=[0-9\.]+)/i', '', strtolower(trim($_SERVER['HTTP_ACCEPT_LANGUAGE']))); + + $this->languages = explode(',', $languages); + } + + if (count($this->languages) == 0) + { + $this->languages = array('Undefined'); + } + } + + // -------------------------------------------------------------------- + + /** + * Set the accepted character sets + * + * @access private + * @return void + */ + private function _set_charsets() + { + if ((count($this->charsets) == 0) AND isset($_SERVER['HTTP_ACCEPT_CHARSET']) AND $_SERVER['HTTP_ACCEPT_CHARSET'] != '') + { + $charsets = preg_replace('/(;q=.+)/i', '', strtolower(trim($_SERVER['HTTP_ACCEPT_CHARSET']))); + + $this->charsets = explode(',', $charsets); + } + + if (count($this->charsets) == 0) + { + $this->charsets = array('Undefined'); + } + } + + // -------------------------------------------------------------------- + + /** + * Is Browser + * + * @access public + * @return bool + */ + public function is_browser($key = NULL) + { + if ( ! $this->is_browser) + { + return FALSE; + } + + // No need to be specific, it's a browser + if ($key === NULL) + { + return TRUE; + } + + // Check for a specific browser + return array_key_exists($key, $this->browsers) AND $this->browser === $this->browsers[$key]; + } + + // -------------------------------------------------------------------- + + /** + * Is Robot + * + * @access public + * @return bool + */ + public function is_robot($key = NULL) + { + if ( ! $this->is_robot) + { + return FALSE; + } + + // No need to be specific, it's a robot + if ($key === NULL) + { + return TRUE; + } + + // Check for a specific robot + return array_key_exists($key, $this->robots) AND $this->robot === $this->robots[$key]; + } + + // -------------------------------------------------------------------- + + /** + * Is Mobile + * + * @access public + * @return bool + */ + public function is_mobile($key = NULL) + { + if ( ! $this->is_mobile) + { + return FALSE; + } + + // No need to be specific, it's a mobile + if ($key === NULL) + { + return TRUE; + } + + // Check for a specific robot + return array_key_exists($key, $this->mobiles) AND $this->mobile === $this->mobiles[$key]; + } + + // -------------------------------------------------------------------- + + /** + * Is this a referral from another site? + * + * @access public + * @return bool + */ + public function is_referral() + { + if ( ! isset($_SERVER['HTTP_REFERER']) OR $_SERVER['HTTP_REFERER'] == '') + { + return FALSE; + } + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Agent String + * + * @access public + * @return string + */ + public function agent_string() + { + return $this->agent; + } + + // -------------------------------------------------------------------- + + /** + * Get Platform + * + * @access public + * @return string + */ + public function platform() + { + return $this->platform; + } + + // -------------------------------------------------------------------- + + /** + * Get Browser Name + * + * @access public + * @return string + */ + public function browser() + { + return $this->browser; + } + + // -------------------------------------------------------------------- + + /** + * Get the Browser Version + * + * @access public + * @return string + */ + public function version() + { + return $this->version; + } + + // -------------------------------------------------------------------- + + /** + * Get The Robot Name + * + * @access public + * @return string + */ + public function robot() + { + return $this->robot; + } + // -------------------------------------------------------------------- + + /** + * Get the Mobile Device + * + * @access public + * @return string + */ + public function mobile() + { + return $this->mobile; + } + + // -------------------------------------------------------------------- + + /** + * Get the referrer + * + * @access public + * @return bool + */ + public function referrer() + { + return ( ! isset($_SERVER['HTTP_REFERER']) OR $_SERVER['HTTP_REFERER'] == '') ? '' : trim($_SERVER['HTTP_REFERER']); + } + + // -------------------------------------------------------------------- + + /** + * Get the accepted languages + * + * @access public + * @return array + */ + public function languages() + { + if (count($this->languages) == 0) + { + $this->_set_languages(); + } + + return $this->languages; + } + + // -------------------------------------------------------------------- + + /** + * Get the accepted Character Sets + * + * @access public + * @return array + */ + public function charsets() + { + if (count($this->charsets) == 0) + { + $this->_set_charsets(); + } + + return $this->charsets; + } + + // -------------------------------------------------------------------- + + /** + * Test for a particular language + * + * @access public + * @return bool + */ + public function accept_lang($lang = 'en') + { + return (in_array(strtolower($lang), $this->languages(), TRUE)); + } + + // -------------------------------------------------------------------- + + /** + * Test for a particular character set + * + * @access public + * @return bool + */ + public function accept_charset($charset = 'utf-8') + { + return (in_array(strtolower($charset), $this->charsets(), TRUE)); + } + +} + + +/* End of file User_agent.php */ +/* Location: ./system/libraries/User_agent.php */ \ No newline at end of file diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php new file mode 100755 index 0000000..d702e90 --- /dev/null +++ b/system/libraries/Xmlrpc.php @@ -0,0 +1,1423 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +if ( ! function_exists('xml_parser_create')) +{ + show_error('Your PHP installation does not support XML'); +} + + +// ------------------------------------------------------------------------ + +/** + * XML-RPC request handler class + * + * @package CodeIgniter + * @subpackage Libraries + * @category XML-RPC + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/xmlrpc.html + */ +class CI_Xmlrpc { + + var $debug = FALSE; // Debugging on or off + var $xmlrpcI4 = 'i4'; + var $xmlrpcInt = 'int'; + var $xmlrpcBoolean = 'boolean'; + var $xmlrpcDouble = 'double'; + var $xmlrpcString = 'string'; + var $xmlrpcDateTime = 'dateTime.iso8601'; + var $xmlrpcBase64 = 'base64'; + var $xmlrpcArray = 'array'; + var $xmlrpcStruct = 'struct'; + + var $xmlrpcTypes = array(); + var $valid_parents = array(); + var $xmlrpcerr = array(); // Response numbers + var $xmlrpcstr = array(); // Response strings + + var $xmlrpc_defencoding = 'UTF-8'; + var $xmlrpcName = 'XML-RPC for CodeIgniter'; + var $xmlrpcVersion = '1.1'; + var $xmlrpcerruser = 800; // Start of user errors + var $xmlrpcerrxml = 100; // Start of XML Parse errors + var $xmlrpc_backslash = ''; // formulate backslashes for escaping regexp + + var $client; + var $method; + var $data; + var $message = ''; + var $error = ''; // Error string for request + var $result; + var $response = array(); // Response from remote server + + var $xss_clean = TRUE; + + //------------------------------------- + // VALUES THAT MULTIPLE CLASSES NEED + //------------------------------------- + + public function __construct($config = array()) + { + $this->xmlrpcName = $this->xmlrpcName; + $this->xmlrpc_backslash = chr(92).chr(92); + + // Types for info sent back and forth + $this->xmlrpcTypes = array( + $this->xmlrpcI4 => '1', + $this->xmlrpcInt => '1', + $this->xmlrpcBoolean => '1', + $this->xmlrpcString => '1', + $this->xmlrpcDouble => '1', + $this->xmlrpcDateTime => '1', + $this->xmlrpcBase64 => '1', + $this->xmlrpcArray => '2', + $this->xmlrpcStruct => '3' + ); + + // Array of Valid Parents for Various XML-RPC elements + $this->valid_parents = array('BOOLEAN' => array('VALUE'), + 'I4' => array('VALUE'), + 'INT' => array('VALUE'), + 'STRING' => array('VALUE'), + 'DOUBLE' => array('VALUE'), + 'DATETIME.ISO8601' => array('VALUE'), + 'BASE64' => array('VALUE'), + 'ARRAY' => array('VALUE'), + 'STRUCT' => array('VALUE'), + 'PARAM' => array('PARAMS'), + 'METHODNAME' => array('METHODCALL'), + 'PARAMS' => array('METHODCALL', 'METHODRESPONSE'), + 'MEMBER' => array('STRUCT'), + 'NAME' => array('MEMBER'), + 'DATA' => array('ARRAY'), + 'FAULT' => array('METHODRESPONSE'), + 'VALUE' => array('MEMBER', 'DATA', 'PARAM', 'FAULT') + ); + + + // XML-RPC Responses + $this->xmlrpcerr['unknown_method'] = '1'; + $this->xmlrpcstr['unknown_method'] = 'This is not a known method for this XML-RPC Server'; + $this->xmlrpcerr['invalid_return'] = '2'; + $this->xmlrpcstr['invalid_return'] = 'The XML data received was either invalid or not in the correct form for XML-RPC. Turn on debugging to examine the XML data further.'; + $this->xmlrpcerr['incorrect_params'] = '3'; + $this->xmlrpcstr['incorrect_params'] = 'Incorrect parameters were passed to method'; + $this->xmlrpcerr['introspect_unknown'] = '4'; + $this->xmlrpcstr['introspect_unknown'] = "Cannot inspect signature for request: method unknown"; + $this->xmlrpcerr['http_error'] = '5'; + $this->xmlrpcstr['http_error'] = "Did not receive a '200 OK' response from remote server."; + $this->xmlrpcerr['no_data'] = '6'; + $this->xmlrpcstr['no_data'] ='No data received from server.'; + + $this->initialize($config); + + log_message('debug', "XML-RPC Class Initialized"); + } + + + //------------------------------------- + // Initialize Prefs + //------------------------------------- + + function initialize($config = array()) + { + if (count($config) > 0) + { + foreach ($config as $key => $val) + { + if (isset($this->$key)) + { + $this->$key = $val; + } + } + } + } + // END + + //------------------------------------- + // Take URL and parse it + //------------------------------------- + + function server($url, $port=80) + { + if (substr($url, 0, 4) != "http") + { + $url = "http://".$url; + } + + $parts = parse_url($url); + + $path = ( ! isset($parts['path'])) ? '/' : $parts['path']; + + if (isset($parts['query']) && $parts['query'] != '') + { + $path .= '?'.$parts['query']; + } + + $this->client = new XML_RPC_Client($path, $parts['host'], $port); + } + // END + + //------------------------------------- + // Set Timeout + //------------------------------------- + + function timeout($seconds=5) + { + if ( ! is_null($this->client) && is_int($seconds)) + { + $this->client->timeout = $seconds; + } + } + // END + + //------------------------------------- + // Set Methods + //------------------------------------- + + function method($function) + { + $this->method = $function; + } + // END + + //------------------------------------- + // Take Array of Data and Create Objects + //------------------------------------- + + function request($incoming) + { + if ( ! is_array($incoming)) + { + // Send Error + } + + $this->data = array(); + + foreach ($incoming as $key => $value) + { + $this->data[$key] = $this->values_parsing($value); + } + } + // END + + + //------------------------------------- + // Set Debug + //------------------------------------- + + function set_debug($flag = TRUE) + { + $this->debug = ($flag == TRUE) ? TRUE : FALSE; + } + + //------------------------------------- + // Values Parsing + //------------------------------------- + + function values_parsing($value, $return = FALSE) + { + if (is_array($value) && array_key_exists(0, $value)) + { + if ( ! isset($value['1']) OR ( ! isset($this->xmlrpcTypes[$value['1']]))) + { + if (is_array($value[0])) + { + $temp = new XML_RPC_Values($value['0'], 'array'); + } + else + { + $temp = new XML_RPC_Values($value['0'], 'string'); + } + } + elseif (is_array($value['0']) && ($value['1'] == 'struct' OR $value['1'] == 'array')) + { + while (list($k) = each($value['0'])) + { + $value['0'][$k] = $this->values_parsing($value['0'][$k], TRUE); + } + + $temp = new XML_RPC_Values($value['0'], $value['1']); + } + else + { + $temp = new XML_RPC_Values($value['0'], $value['1']); + } + } + else + { + $temp = new XML_RPC_Values($value, 'string'); + } + + return $temp; + } + // END + + + //------------------------------------- + // Sends XML-RPC Request + //------------------------------------- + + function send_request() + { + $this->message = new XML_RPC_Message($this->method,$this->data); + $this->message->debug = $this->debug; + + if ( ! $this->result = $this->client->send($this->message)) + { + $this->error = $this->result->errstr; + return FALSE; + } + elseif ( ! is_object($this->result->val)) + { + $this->error = $this->result->errstr; + return FALSE; + } + + $this->response = $this->result->decode(); + + return TRUE; + } + // END + + //------------------------------------- + // Returns Error + //------------------------------------- + + function display_error() + { + return $this->error; + } + // END + + //------------------------------------- + // Returns Remote Server Response + //------------------------------------- + + function display_response() + { + return $this->response; + } + // END + + //------------------------------------- + // Sends an Error Message for Server Request + //------------------------------------- + + function send_error_message($number, $message) + { + return new XML_RPC_Response('0',$number, $message); + } + // END + + + //------------------------------------- + // Send Response for Server Request + //------------------------------------- + + function send_response($response) + { + // $response should be array of values, which will be parsed + // based on their data and type into a valid group of XML-RPC values + + $response = $this->values_parsing($response); + + return new XML_RPC_Response($response); + } + // END + +} // END XML_RPC Class + + + +/** + * XML-RPC Client class + * + * @category XML-RPC + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/xmlrpc.html + */ +class XML_RPC_Client extends CI_Xmlrpc +{ + var $path = ''; + var $server = ''; + var $port = 80; + var $errno = ''; + var $errstring = ''; + var $timeout = 5; + var $no_multicall = FALSE; + + public function __construct($path, $server, $port=80) + { + parent::__construct(); + + $this->port = $port; + $this->server = $server; + $this->path = $path; + } + + function send($msg) + { + if (is_array($msg)) + { + // Multi-call disabled + $r = new XML_RPC_Response(0, $this->xmlrpcerr['multicall_recursion'],$this->xmlrpcstr['multicall_recursion']); + return $r; + } + + return $this->sendPayload($msg); + } + + function sendPayload($msg) + { + $fp = @fsockopen($this->server, $this->port,$this->errno, $this->errstr, $this->timeout); + + if ( ! is_resource($fp)) + { + error_log($this->xmlrpcstr['http_error']); + $r = new XML_RPC_Response(0, $this->xmlrpcerr['http_error'],$this->xmlrpcstr['http_error']); + return $r; + } + + if (empty($msg->payload)) + { + // $msg = XML_RPC_Messages + $msg->createPayload(); + } + + $r = "\r\n"; + $op = "POST {$this->path} HTTP/1.0$r"; + $op .= "Host: {$this->server}$r"; + $op .= "Content-Type: text/xml$r"; + $op .= "User-Agent: {$this->xmlrpcName}$r"; + $op .= "Content-Length: ".strlen($msg->payload). "$r$r"; + $op .= $msg->payload; + + + if ( ! fputs($fp, $op, strlen($op))) + { + error_log($this->xmlrpcstr['http_error']); + $r = new XML_RPC_Response(0, $this->xmlrpcerr['http_error'], $this->xmlrpcstr['http_error']); + return $r; + } + $resp = $msg->parseResponse($fp); + fclose($fp); + return $resp; + } + +} // end class XML_RPC_Client + + +/** + * XML-RPC Response class + * + * @category XML-RPC + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/xmlrpc.html + */ +class XML_RPC_Response +{ + var $val = 0; + var $errno = 0; + var $errstr = ''; + var $headers = array(); + var $xss_clean = TRUE; + + public function __construct($val, $code = 0, $fstr = '') + { + if ($code != 0) + { + // error + $this->errno = $code; + $this->errstr = htmlentities($fstr); + } + else if ( ! is_object($val)) + { + // programmer error, not an object + error_log("Invalid type '" . gettype($val) . "' (value: $val) passed to XML_RPC_Response. Defaulting to empty value."); + $this->val = new XML_RPC_Values(); + } + else + { + $this->val = $val; + } + } + + function faultCode() + { + return $this->errno; + } + + function faultString() + { + return $this->errstr; + } + + function value() + { + return $this->val; + } + + function prepare_response() + { + $result = "<methodResponse>\n"; + if ($this->errno) + { + $result .= '<fault> + <value> + <struct> + <member> + <name>faultCode</name> + <value><int>' . $this->errno . '</int></value> + </member> + <member> + <name>faultString</name> + <value><string>' . $this->errstr . '</string></value> + </member> + </struct> + </value> +</fault>'; + } + else + { + $result .= "<params>\n<param>\n" . + $this->val->serialize_class() . + "</param>\n</params>"; + } + $result .= "\n</methodResponse>"; + return $result; + } + + function decode($array=FALSE) + { + $CI =& get_instance(); + + if ($array !== FALSE && is_array($array)) + { + while (list($key) = each($array)) + { + if (is_array($array[$key])) + { + $array[$key] = $this->decode($array[$key]); + } + else + { + $array[$key] = ($this->xss_clean) ? $CI->security->xss_clean($array[$key]) : $array[$key]; + } + } + + $result = $array; + } + else + { + $result = $this->xmlrpc_decoder($this->val); + + if (is_array($result)) + { + $result = $this->decode($result); + } + else + { + $result = ($this->xss_clean) ? $CI->security->xss_clean($result) : $result; + } + } + + return $result; + } + + + + //------------------------------------- + // XML-RPC Object to PHP Types + //------------------------------------- + + function xmlrpc_decoder($xmlrpc_val) + { + $kind = $xmlrpc_val->kindOf(); + + if ($kind == 'scalar') + { + return $xmlrpc_val->scalarval(); + } + elseif ($kind == 'array') + { + reset($xmlrpc_val->me); + list($a,$b) = each($xmlrpc_val->me); + $size = count($b); + + $arr = array(); + + for ($i = 0; $i < $size; $i++) + { + $arr[] = $this->xmlrpc_decoder($xmlrpc_val->me['array'][$i]); + } + return $arr; + } + elseif ($kind == 'struct') + { + reset($xmlrpc_val->me['struct']); + $arr = array(); + + while (list($key,$value) = each($xmlrpc_val->me['struct'])) + { + $arr[$key] = $this->xmlrpc_decoder($value); + } + return $arr; + } + } + + + //------------------------------------- + // ISO-8601 time to server or UTC time + //------------------------------------- + + function iso8601_decode($time, $utc=0) + { + // return a timet in the localtime, or UTC + $t = 0; + if (preg_match('/([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})/', $time, $regs)) + { + $fnc = ($utc == 1) ? 'gmmktime' : 'mktime'; + $t = $fnc($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); + } + return $t; + } + +} // End Response Class + + + +/** + * XML-RPC Message class + * + * @category XML-RPC + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/xmlrpc.html + */ +class XML_RPC_Message extends CI_Xmlrpc +{ + var $payload; + var $method_name; + var $params = array(); + var $xh = array(); + + public function __construct($method, $pars=0) + { + parent::__construct(); + + $this->method_name = $method; + if (is_array($pars) && count($pars) > 0) + { + for ($i=0; $i<count($pars); $i++) + { + // $pars[$i] = XML_RPC_Values + $this->params[] = $pars[$i]; + } + } + } + + //------------------------------------- + // Create Payload to Send + //------------------------------------- + + function createPayload() + { + $this->payload = "<?xml version=\"1.0\"?".">\r\n<methodCall>\r\n"; + $this->payload .= '<methodName>' . $this->method_name . "</methodName>\r\n"; + $this->payload .= "<params>\r\n"; + + for ($i=0; $i<count($this->params); $i++) + { + // $p = XML_RPC_Values + $p = $this->params[$i]; + $this->payload .= "<param>\r\n".$p->serialize_class()."</param>\r\n"; + } + + $this->payload .= "</params>\r\n</methodCall>\r\n"; + } + + //------------------------------------- + // Parse External XML-RPC Server's Response + //------------------------------------- + + function parseResponse($fp) + { + $data = ''; + + while ($datum = fread($fp, 4096)) + { + $data .= $datum; + } + + //------------------------------------- + // DISPLAY HTTP CONTENT for DEBUGGING + //------------------------------------- + + if ($this->debug === TRUE) + { + echo "<pre>"; + echo "---DATA---\n" . htmlspecialchars($data) . "\n---END DATA---\n\n"; + echo "</pre>"; + } + + //------------------------------------- + // Check for data + //------------------------------------- + + if ($data == "") + { + error_log($this->xmlrpcstr['no_data']); + $r = new XML_RPC_Response(0, $this->xmlrpcerr['no_data'], $this->xmlrpcstr['no_data']); + return $r; + } + + + //------------------------------------- + // Check for HTTP 200 Response + //------------------------------------- + + if (strncmp($data, 'HTTP', 4) == 0 && ! preg_match('/^HTTP\/[0-9\.]+ 200 /', $data)) + { + $errstr= substr($data, 0, strpos($data, "\n")-1); + $r = new XML_RPC_Response(0, $this->xmlrpcerr['http_error'], $this->xmlrpcstr['http_error']. ' (' . $errstr . ')'); + return $r; + } + + //------------------------------------- + // Create and Set Up XML Parser + //------------------------------------- + + $parser = xml_parser_create($this->xmlrpc_defencoding); + + $this->xh[$parser] = array(); + $this->xh[$parser]['isf'] = 0; + $this->xh[$parser]['ac'] = ''; + $this->xh[$parser]['headers'] = array(); + $this->xh[$parser]['stack'] = array(); + $this->xh[$parser]['valuestack'] = array(); + $this->xh[$parser]['isf_reason'] = 0; + + xml_set_object($parser, $this); + xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true); + xml_set_element_handler($parser, 'open_tag', 'closing_tag'); + xml_set_character_data_handler($parser, 'character_data'); + //xml_set_default_handler($parser, 'default_handler'); + + + //------------------------------------- + // GET HEADERS + //------------------------------------- + + $lines = explode("\r\n", $data); + while (($line = array_shift($lines))) + { + if (strlen($line) < 1) + { + break; + } + $this->xh[$parser]['headers'][] = $line; + } + $data = implode("\r\n", $lines); + + + //------------------------------------- + // PARSE XML DATA + //------------------------------------- + + if ( ! xml_parse($parser, $data, count($data))) + { + $errstr = sprintf('XML error: %s at line %d', + xml_error_string(xml_get_error_code($parser)), + xml_get_current_line_number($parser)); + //error_log($errstr); + $r = new XML_RPC_Response(0, $this->xmlrpcerr['invalid_return'], $this->xmlrpcstr['invalid_return']); + xml_parser_free($parser); + return $r; + } + xml_parser_free($parser); + + // --------------------------------------- + // Got Ourselves Some Badness, It Seems + // --------------------------------------- + + if ($this->xh[$parser]['isf'] > 1) + { + if ($this->debug === TRUE) + { + echo "---Invalid Return---\n"; + echo $this->xh[$parser]['isf_reason']; + echo "---Invalid Return---\n\n"; + } + + $r = new XML_RPC_Response(0, $this->xmlrpcerr['invalid_return'],$this->xmlrpcstr['invalid_return'].' '.$this->xh[$parser]['isf_reason']); + return $r; + } + elseif ( ! is_object($this->xh[$parser]['value'])) + { + $r = new XML_RPC_Response(0, $this->xmlrpcerr['invalid_return'],$this->xmlrpcstr['invalid_return'].' '.$this->xh[$parser]['isf_reason']); + return $r; + } + + //------------------------------------- + // DISPLAY XML CONTENT for DEBUGGING + //------------------------------------- + + if ($this->debug === TRUE) + { + echo "<pre>"; + + if (count($this->xh[$parser]['headers'] > 0)) + { + echo "---HEADERS---\n"; + foreach ($this->xh[$parser]['headers'] as $header) + { + echo "$header\n"; + } + echo "---END HEADERS---\n\n"; + } + + echo "---DATA---\n" . htmlspecialchars($data) . "\n---END DATA---\n\n"; + + echo "---PARSED---\n" ; + var_dump($this->xh[$parser]['value']); + echo "\n---END PARSED---</pre>"; + } + + //------------------------------------- + // SEND RESPONSE + //------------------------------------- + + $v = $this->xh[$parser]['value']; + + if ($this->xh[$parser]['isf']) + { + $errno_v = $v->me['struct']['faultCode']; + $errstr_v = $v->me['struct']['faultString']; + $errno = $errno_v->scalarval(); + + if ($errno == 0) + { + // FAULT returned, errno needs to reflect that + $errno = -1; + } + + $r = new XML_RPC_Response($v, $errno, $errstr_v->scalarval()); + } + else + { + $r = new XML_RPC_Response($v); + } + + $r->headers = $this->xh[$parser]['headers']; + return $r; + } + + // ------------------------------------ + // Begin Return Message Parsing section + // ------------------------------------ + + // quick explanation of components: + // ac - used to accumulate values + // isf - used to indicate a fault + // lv - used to indicate "looking for a value": implements + // the logic to allow values with no types to be strings + // params - used to store parameters in method calls + // method - used to store method name + // stack - array with parent tree of the xml element, + // used to validate the nesting of elements + + //------------------------------------- + // Start Element Handler + //------------------------------------- + + function open_tag($the_parser, $name, $attrs) + { + // If invalid nesting, then return + if ($this->xh[$the_parser]['isf'] > 1) return; + + // Evaluate and check for correct nesting of XML elements + + if (count($this->xh[$the_parser]['stack']) == 0) + { + if ($name != 'METHODRESPONSE' && $name != 'METHODCALL') + { + $this->xh[$the_parser]['isf'] = 2; + $this->xh[$the_parser]['isf_reason'] = 'Top level XML-RPC element is missing'; + return; + } + } + else + { + // not top level element: see if parent is OK + if ( ! in_array($this->xh[$the_parser]['stack'][0], $this->valid_parents[$name], TRUE)) + { + $this->xh[$the_parser]['isf'] = 2; + $this->xh[$the_parser]['isf_reason'] = "XML-RPC element $name cannot be child of ".$this->xh[$the_parser]['stack'][0]; + return; + } + } + + switch($name) + { + case 'STRUCT': + case 'ARRAY': + // Creates array for child elements + + $cur_val = array('value' => array(), + 'type' => $name); + + array_unshift($this->xh[$the_parser]['valuestack'], $cur_val); + break; + case 'METHODNAME': + case 'NAME': + $this->xh[$the_parser]['ac'] = ''; + break; + case 'FAULT': + $this->xh[$the_parser]['isf'] = 1; + break; + case 'PARAM': + $this->xh[$the_parser]['value'] = NULL; + break; + case 'VALUE': + $this->xh[$the_parser]['vt'] = 'value'; + $this->xh[$the_parser]['ac'] = ''; + $this->xh[$the_parser]['lv'] = 1; + break; + case 'I4': + case 'INT': + case 'STRING': + case 'BOOLEAN': + case 'DOUBLE': + case 'DATETIME.ISO8601': + case 'BASE64': + if ($this->xh[$the_parser]['vt'] != 'value') + { + //two data elements inside a value: an error occurred! + $this->xh[$the_parser]['isf'] = 2; + $this->xh[$the_parser]['isf_reason'] = "'Twas a $name element following a ".$this->xh[$the_parser]['vt']." element inside a single value"; + return; + } + + $this->xh[$the_parser]['ac'] = ''; + break; + case 'MEMBER': + // Set name of <member> to nothing to prevent errors later if no <name> is found + $this->xh[$the_parser]['valuestack'][0]['name'] = ''; + + // Set NULL value to check to see if value passed for this param/member + $this->xh[$the_parser]['value'] = NULL; + break; + case 'DATA': + case 'METHODCALL': + case 'METHODRESPONSE': + case 'PARAMS': + // valid elements that add little to processing + break; + default: + /// An Invalid Element is Found, so we have trouble + $this->xh[$the_parser]['isf'] = 2; + $this->xh[$the_parser]['isf_reason'] = "Invalid XML-RPC element found: $name"; + break; + } + + // Add current element name to stack, to allow validation of nesting + array_unshift($this->xh[$the_parser]['stack'], $name); + + if ($name != 'VALUE') $this->xh[$the_parser]['lv'] = 0; + } + // END + + + //------------------------------------- + // End Element Handler + //------------------------------------- + + function closing_tag($the_parser, $name) + { + if ($this->xh[$the_parser]['isf'] > 1) return; + + // Remove current element from stack and set variable + // NOTE: If the XML validates, then we do not have to worry about + // the opening and closing of elements. Nesting is checked on the opening + // tag so we be safe there as well. + + $curr_elem = array_shift($this->xh[$the_parser]['stack']); + + switch($name) + { + case 'STRUCT': + case 'ARRAY': + $cur_val = array_shift($this->xh[$the_parser]['valuestack']); + $this->xh[$the_parser]['value'] = ( ! isset($cur_val['values'])) ? array() : $cur_val['values']; + $this->xh[$the_parser]['vt'] = strtolower($name); + break; + case 'NAME': + $this->xh[$the_parser]['valuestack'][0]['name'] = $this->xh[$the_parser]['ac']; + break; + case 'BOOLEAN': + case 'I4': + case 'INT': + case 'STRING': + case 'DOUBLE': + case 'DATETIME.ISO8601': + case 'BASE64': + $this->xh[$the_parser]['vt'] = strtolower($name); + + if ($name == 'STRING') + { + $this->xh[$the_parser]['value'] = $this->xh[$the_parser]['ac']; + } + elseif ($name=='DATETIME.ISO8601') + { + $this->xh[$the_parser]['vt'] = $this->xmlrpcDateTime; + $this->xh[$the_parser]['value'] = $this->xh[$the_parser]['ac']; + } + elseif ($name=='BASE64') + { + $this->xh[$the_parser]['value'] = base64_decode($this->xh[$the_parser]['ac']); + } + elseif ($name=='BOOLEAN') + { + // Translated BOOLEAN values to TRUE AND FALSE + if ($this->xh[$the_parser]['ac'] == '1') + { + $this->xh[$the_parser]['value'] = TRUE; + } + else + { + $this->xh[$the_parser]['value'] = FALSE; + } + } + elseif ($name=='DOUBLE') + { + // we have a DOUBLE + // we must check that only 0123456789-.<space> are characters here + if ( ! preg_match('/^[+-]?[eE0-9\t \.]+$/', $this->xh[$the_parser]['ac'])) + { + $this->xh[$the_parser]['value'] = 'ERROR_NON_NUMERIC_FOUND'; + } + else + { + $this->xh[$the_parser]['value'] = (double)$this->xh[$the_parser]['ac']; + } + } + else + { + // we have an I4/INT + // we must check that only 0123456789-<space> are characters here + if ( ! preg_match('/^[+-]?[0-9\t ]+$/', $this->xh[$the_parser]['ac'])) + { + $this->xh[$the_parser]['value'] = 'ERROR_NON_NUMERIC_FOUND'; + } + else + { + $this->xh[$the_parser]['value'] = (int)$this->xh[$the_parser]['ac']; + } + } + $this->xh[$the_parser]['ac'] = ''; + $this->xh[$the_parser]['lv'] = 3; // indicate we've found a value + break; + case 'VALUE': + // This if() detects if no scalar was inside <VALUE></VALUE> + if ($this->xh[$the_parser]['vt']=='value') + { + $this->xh[$the_parser]['value'] = $this->xh[$the_parser]['ac']; + $this->xh[$the_parser]['vt'] = $this->xmlrpcString; + } + + // build the XML-RPC value out of the data received, and substitute it + $temp = new XML_RPC_Values($this->xh[$the_parser]['value'], $this->xh[$the_parser]['vt']); + + if (count($this->xh[$the_parser]['valuestack']) && $this->xh[$the_parser]['valuestack'][0]['type'] == 'ARRAY') + { + // Array + $this->xh[$the_parser]['valuestack'][0]['values'][] = $temp; + } + else + { + // Struct + $this->xh[$the_parser]['value'] = $temp; + } + break; + case 'MEMBER': + $this->xh[$the_parser]['ac']=''; + + // If value add to array in the stack for the last element built + if ($this->xh[$the_parser]['value']) + { + $this->xh[$the_parser]['valuestack'][0]['values'][$this->xh[$the_parser]['valuestack'][0]['name']] = $this->xh[$the_parser]['value']; + } + break; + case 'DATA': + $this->xh[$the_parser]['ac']=''; + break; + case 'PARAM': + if ($this->xh[$the_parser]['value']) + { + $this->xh[$the_parser]['params'][] = $this->xh[$the_parser]['value']; + } + break; + case 'METHODNAME': + $this->xh[$the_parser]['method'] = ltrim($this->xh[$the_parser]['ac']); + break; + case 'PARAMS': + case 'FAULT': + case 'METHODCALL': + case 'METHORESPONSE': + // We're all good kids with nuthin' to do + break; + default: + // End of an Invalid Element. Taken care of during the opening tag though + break; + } + } + + //------------------------------------- + // Parses Character Data + //------------------------------------- + + function character_data($the_parser, $data) + { + if ($this->xh[$the_parser]['isf'] > 1) return; // XML Fault found already + + // If a value has not been found + if ($this->xh[$the_parser]['lv'] != 3) + { + if ($this->xh[$the_parser]['lv'] == 1) + { + $this->xh[$the_parser]['lv'] = 2; // Found a value + } + + if ( ! @isset($this->xh[$the_parser]['ac'])) + { + $this->xh[$the_parser]['ac'] = ''; + } + + $this->xh[$the_parser]['ac'] .= $data; + } + } + + + function addParam($par) { $this->params[]=$par; } + + function output_parameters($array=FALSE) + { + $CI =& get_instance(); + + if ($array !== FALSE && is_array($array)) + { + while (list($key) = each($array)) + { + if (is_array($array[$key])) + { + $array[$key] = $this->output_parameters($array[$key]); + } + else + { + // 'bits' is for the MetaWeblog API image bits + // @todo - this needs to be made more general purpose + $array[$key] = ($key == 'bits' OR $this->xss_clean == FALSE) ? $array[$key] : $CI->security->xss_clean($array[$key]); + } + } + + $parameters = $array; + } + else + { + $parameters = array(); + + for ($i = 0; $i < count($this->params); $i++) + { + $a_param = $this->decode_message($this->params[$i]); + + if (is_array($a_param)) + { + $parameters[] = $this->output_parameters($a_param); + } + else + { + $parameters[] = ($this->xss_clean) ? $CI->security->xss_clean($a_param) : $a_param; + } + } + } + + return $parameters; + } + + + function decode_message($param) + { + $kind = $param->kindOf(); + + if ($kind == 'scalar') + { + return $param->scalarval(); + } + elseif ($kind == 'array') + { + reset($param->me); + list($a,$b) = each($param->me); + + $arr = array(); + + for($i = 0; $i < count($b); $i++) + { + $arr[] = $this->decode_message($param->me['array'][$i]); + } + + return $arr; + } + elseif ($kind == 'struct') + { + reset($param->me['struct']); + + $arr = array(); + + while (list($key,$value) = each($param->me['struct'])) + { + $arr[$key] = $this->decode_message($value); + } + + return $arr; + } + } + +} // End XML_RPC_Messages class + + + +/** + * XML-RPC Values class + * + * @category XML-RPC + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/xmlrpc.html + */ +class XML_RPC_Values extends CI_Xmlrpc +{ + var $me = array(); + var $mytype = 0; + + public function __construct($val=-1, $type='') + { + parent::__construct(); + + if ($val != -1 OR $type != '') + { + $type = $type == '' ? 'string' : $type; + + if ($this->xmlrpcTypes[$type] == 1) + { + $this->addScalar($val,$type); + } + elseif ($this->xmlrpcTypes[$type] == 2) + { + $this->addArray($val); + } + elseif ($this->xmlrpcTypes[$type] == 3) + { + $this->addStruct($val); + } + } + } + + function addScalar($val, $type='string') + { + $typeof = $this->xmlrpcTypes[$type]; + + if ($this->mytype==1) + { + echo '<strong>XML_RPC_Values</strong>: scalar can have only one value<br />'; + return 0; + } + + if ($typeof != 1) + { + echo '<strong>XML_RPC_Values</strong>: not a scalar type (${typeof})<br />'; + return 0; + } + + if ($type == $this->xmlrpcBoolean) + { + if (strcasecmp($val,'true')==0 OR $val==1 OR ($val==true && strcasecmp($val,'false'))) + { + $val = 1; + } + else + { + $val=0; + } + } + + if ($this->mytype == 2) + { + // adding to an array here + $ar = $this->me['array']; + $ar[] = new XML_RPC_Values($val, $type); + $this->me['array'] = $ar; + } + else + { + // a scalar, so set the value and remember we're scalar + $this->me[$type] = $val; + $this->mytype = $typeof; + } + return 1; + } + + function addArray($vals) + { + if ($this->mytype != 0) + { + echo '<strong>XML_RPC_Values</strong>: already initialized as a [' . $this->kindOf() . ']<br />'; + return 0; + } + + $this->mytype = $this->xmlrpcTypes['array']; + $this->me['array'] = $vals; + return 1; + } + + function addStruct($vals) + { + if ($this->mytype != 0) + { + echo '<strong>XML_RPC_Values</strong>: already initialized as a [' . $this->kindOf() . ']<br />'; + return 0; + } + $this->mytype = $this->xmlrpcTypes['struct']; + $this->me['struct'] = $vals; + return 1; + } + + function kindOf() + { + switch($this->mytype) + { + case 3: + return 'struct'; + break; + case 2: + return 'array'; + break; + case 1: + return 'scalar'; + break; + default: + return 'undef'; + } + } + + function serializedata($typ, $val) + { + $rs = ''; + + switch($this->xmlrpcTypes[$typ]) + { + case 3: + // struct + $rs .= "<struct>\n"; + reset($val); + while (list($key2, $val2) = each($val)) + { + $rs .= "<member>\n<name>{$key2}</name>\n"; + $rs .= $this->serializeval($val2); + $rs .= "</member>\n"; + } + $rs .= '</struct>'; + break; + case 2: + // array + $rs .= "<array>\n<data>\n"; + for($i=0; $i < count($val); $i++) + { + $rs .= $this->serializeval($val[$i]); + } + $rs.="</data>\n</array>\n"; + break; + case 1: + // others + switch ($typ) + { + case $this->xmlrpcBase64: + $rs .= "<{$typ}>" . base64_encode((string)$val) . "</{$typ}>\n"; + break; + case $this->xmlrpcBoolean: + $rs .= "<{$typ}>" . ((bool)$val ? '1' : '0') . "</{$typ}>\n"; + break; + case $this->xmlrpcString: + $rs .= "<{$typ}>" . htmlspecialchars((string)$val). "</{$typ}>\n"; + break; + default: + $rs .= "<{$typ}>{$val}</{$typ}>\n"; + break; + } + default: + break; + } + return $rs; + } + + function serialize_class() + { + return $this->serializeval($this); + } + + function serializeval($o) + { + $ar = $o->me; + reset($ar); + + list($typ, $val) = each($ar); + $rs = "<value>\n".$this->serializedata($typ, $val)."</value>\n"; + return $rs; + } + + function scalarval() + { + reset($this->me); + list($a,$b) = each($this->me); + return $b; + } + + + //------------------------------------- + // Encode time in ISO-8601 form. + //------------------------------------- + + // Useful for sending time in XML-RPC + + function iso8601_encode($time, $utc=0) + { + if ($utc == 1) + { + $t = strftime("%Y%m%dT%H:%i:%s", $time); + } + else + { + if (function_exists('gmstrftime')) + $t = gmstrftime("%Y%m%dT%H:%i:%s", $time); + else + $t = strftime("%Y%m%dT%H:%i:%s", $time - date('Z')); + } + return $t; + } + +} +// END XML_RPC_Values Class + +/* End of file Xmlrpc.php */ +/* Location: ./system/libraries/Xmlrpc.php */ \ No newline at end of file diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php new file mode 100755 index 0000000..9cd3321 --- /dev/null +++ b/system/libraries/Xmlrpcs.php @@ -0,0 +1,612 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +if ( ! function_exists('xml_parser_create')) +{ + show_error('Your PHP installation does not support XML'); +} + +if ( ! class_exists('CI_Xmlrpc')) +{ + show_error('You must load the Xmlrpc class before loading the Xmlrpcs class in order to create a server.'); +} + +// ------------------------------------------------------------------------ + +/** + * XML-RPC server class + * + * @package CodeIgniter + * @subpackage Libraries + * @category XML-RPC + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/xmlrpc.html + */ +class CI_Xmlrpcs extends CI_Xmlrpc +{ + var $methods = array(); //array of methods mapped to function names and signatures + var $debug_msg = ''; // Debug Message + var $system_methods = array(); // XML RPC Server methods + var $controller_obj; + + var $object = FALSE; + + /** + * Constructor + */ + public function __construct($config=array()) + { + parent::__construct(); + $this->set_system_methods(); + + if (isset($config['functions']) && is_array($config['functions'])) + { + $this->methods = array_merge($this->methods, $config['functions']); + } + + log_message('debug', "XML-RPC Server Class Initialized"); + } + + // -------------------------------------------------------------------- + + /** + * Initialize Prefs and Serve + * + * @access public + * @param mixed + * @return void + */ + function initialize($config=array()) + { + if (isset($config['functions']) && is_array($config['functions'])) + { + $this->methods = array_merge($this->methods, $config['functions']); + } + + if (isset($config['debug'])) + { + $this->debug = $config['debug']; + } + + if (isset($config['object']) && is_object($config['object'])) + { + $this->object = $config['object']; + } + + if (isset($config['xss_clean'])) + { + $this->xss_clean = $config['xss_clean']; + } + } + + // -------------------------------------------------------------------- + + /** + * Setting of System Methods + * + * @access public + * @return void + */ + function set_system_methods() + { + $this->methods = array( + 'system.listMethods' => array( + 'function' => 'this.listMethods', + 'signature' => array(array($this->xmlrpcArray, $this->xmlrpcString), array($this->xmlrpcArray)), + 'docstring' => 'Returns an array of available methods on this server'), + 'system.methodHelp' => array( + 'function' => 'this.methodHelp', + 'signature' => array(array($this->xmlrpcString, $this->xmlrpcString)), + 'docstring' => 'Returns a documentation string for the specified method'), + 'system.methodSignature' => array( + 'function' => 'this.methodSignature', + 'signature' => array(array($this->xmlrpcArray, $this->xmlrpcString)), + 'docstring' => 'Returns an array describing the return type and required parameters of a method'), + 'system.multicall' => array( + 'function' => 'this.multicall', + 'signature' => array(array($this->xmlrpcArray, $this->xmlrpcArray)), + 'docstring' => 'Combine multiple RPC calls in one request. See http://www.xmlrpc.com/discuss/msgReader$1208 for details') + ); + } + + // -------------------------------------------------------------------- + + /** + * Main Server Function + * + * @access public + * @return void + */ + function serve() + { + $r = $this->parseRequest(); + $payload = '<?xml version="1.0" encoding="'.$this->xmlrpc_defencoding.'"?'.'>'."\n"; + $payload .= $this->debug_msg; + $payload .= $r->prepare_response(); + + header("Content-Type: text/xml"); + header("Content-Length: ".strlen($payload)); + exit($payload); + } + + // -------------------------------------------------------------------- + + /** + * Add Method to Class + * + * @access public + * @param string method name + * @param string function + * @param string signature + * @param string docstring + * @return void + */ + function add_to_map($methodname, $function, $sig, $doc) + { + $this->methods[$methodname] = array( + 'function' => $function, + 'signature' => $sig, + 'docstring' => $doc + ); + } + + // -------------------------------------------------------------------- + + /** + * Parse Server Request + * + * @access public + * @param string data + * @return object xmlrpc response + */ + function parseRequest($data='') + { + global $HTTP_RAW_POST_DATA; + + //------------------------------------- + // Get Data + //------------------------------------- + + if ($data == '') + { + $data = $HTTP_RAW_POST_DATA; + } + + //------------------------------------- + // Set up XML Parser + //------------------------------------- + + $parser = xml_parser_create($this->xmlrpc_defencoding); + $parser_object = new XML_RPC_Message("filler"); + + $parser_object->xh[$parser] = array(); + $parser_object->xh[$parser]['isf'] = 0; + $parser_object->xh[$parser]['isf_reason'] = ''; + $parser_object->xh[$parser]['params'] = array(); + $parser_object->xh[$parser]['stack'] = array(); + $parser_object->xh[$parser]['valuestack'] = array(); + $parser_object->xh[$parser]['method'] = ''; + + xml_set_object($parser, $parser_object); + xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true); + xml_set_element_handler($parser, 'open_tag', 'closing_tag'); + xml_set_character_data_handler($parser, 'character_data'); + //xml_set_default_handler($parser, 'default_handler'); + + + //------------------------------------- + // PARSE + PROCESS XML DATA + //------------------------------------- + + if ( ! xml_parse($parser, $data, 1)) + { + // return XML error as a faultCode + $r = new XML_RPC_Response(0, + $this->xmlrpcerrxml + xml_get_error_code($parser), + sprintf('XML error: %s at line %d', + xml_error_string(xml_get_error_code($parser)), + xml_get_current_line_number($parser))); + xml_parser_free($parser); + } + elseif ($parser_object->xh[$parser]['isf']) + { + return new XML_RPC_Response(0, $this->xmlrpcerr['invalid_return'], $this->xmlrpcstr['invalid_return']); + } + else + { + xml_parser_free($parser); + + $m = new XML_RPC_Message($parser_object->xh[$parser]['method']); + $plist=''; + + for ($i=0; $i < count($parser_object->xh[$parser]['params']); $i++) + { + if ($this->debug === TRUE) + { + $plist .= "$i - " . print_r(get_object_vars($parser_object->xh[$parser]['params'][$i]), TRUE). ";\n"; + } + + $m->addParam($parser_object->xh[$parser]['params'][$i]); + } + + if ($this->debug === TRUE) + { + echo "<pre>"; + echo "---PLIST---\n" . $plist . "\n---PLIST END---\n\n"; + echo "</pre>"; + } + + $r = $this->_execute($m); + } + + //------------------------------------- + // SET DEBUGGING MESSAGE + //------------------------------------- + + if ($this->debug === TRUE) + { + $this->debug_msg = "<!-- DEBUG INFO:\n\n".$plist."\n END DEBUG-->\n"; + } + + return $r; + } + + // -------------------------------------------------------------------- + + /** + * Executes the Method + * + * @access protected + * @param object + * @return mixed + */ + function _execute($m) + { + $methName = $m->method_name; + + // Check to see if it is a system call + $system_call = (strncmp($methName, 'system', 5) == 0) ? TRUE : FALSE; + + if ($this->xss_clean == FALSE) + { + $m->xss_clean = FALSE; + } + + //------------------------------------- + // Valid Method + //------------------------------------- + + if ( ! isset($this->methods[$methName]['function'])) + { + return new XML_RPC_Response(0, $this->xmlrpcerr['unknown_method'], $this->xmlrpcstr['unknown_method']); + } + + //------------------------------------- + // Check for Method (and Object) + //------------------------------------- + + $method_parts = explode(".", $this->methods[$methName]['function']); + $objectCall = (isset($method_parts['1']) && $method_parts['1'] != "") ? TRUE : FALSE; + + if ($system_call === TRUE) + { + if ( ! is_callable(array($this,$method_parts['1']))) + { + return new XML_RPC_Response(0, $this->xmlrpcerr['unknown_method'], $this->xmlrpcstr['unknown_method']); + } + } + else + { + if ($objectCall && ! is_callable(array($method_parts['0'],$method_parts['1']))) + { + return new XML_RPC_Response(0, $this->xmlrpcerr['unknown_method'], $this->xmlrpcstr['unknown_method']); + } + elseif ( ! $objectCall && ! is_callable($this->methods[$methName]['function'])) + { + return new XML_RPC_Response(0, $this->xmlrpcerr['unknown_method'], $this->xmlrpcstr['unknown_method']); + } + } + + //------------------------------------- + // Checking Methods Signature + //------------------------------------- + + if (isset($this->methods[$methName]['signature'])) + { + $sig = $this->methods[$methName]['signature']; + for ($i=0; $i<count($sig); $i++) + { + $current_sig = $sig[$i]; + + if (count($current_sig) == count($m->params)+1) + { + for ($n=0; $n < count($m->params); $n++) + { + $p = $m->params[$n]; + $pt = ($p->kindOf() == 'scalar') ? $p->scalarval() : $p->kindOf(); + + if ($pt != $current_sig[$n+1]) + { + $pno = $n+1; + $wanted = $current_sig[$n+1]; + + return new XML_RPC_Response(0, + $this->xmlrpcerr['incorrect_params'], + $this->xmlrpcstr['incorrect_params'] . + ": Wanted {$wanted}, got {$pt} at param {$pno})"); + } + } + } + } + } + + //------------------------------------- + // Calls the Function + //------------------------------------- + + if ($objectCall === TRUE) + { + if ($method_parts[0] == "this" && $system_call == TRUE) + { + return call_user_func(array($this, $method_parts[1]), $m); + } + else + { + if ($this->object === FALSE) + { + $CI =& get_instance(); + return $CI->$method_parts['1']($m); + } + else + { + return $this->object->$method_parts['1']($m); + //return call_user_func(array(&$method_parts['0'],$method_parts['1']), $m); + } + } + } + else + { + return call_user_func($this->methods[$methName]['function'], $m); + } + } + + // -------------------------------------------------------------------- + + /** + * Server Function: List Methods + * + * @access public + * @param mixed + * @return object + */ + function listMethods($m) + { + $v = new XML_RPC_Values(); + $output = array(); + + foreach ($this->methods as $key => $value) + { + $output[] = new XML_RPC_Values($key, 'string'); + } + + foreach ($this->system_methods as $key => $value) + { + $output[]= new XML_RPC_Values($key, 'string'); + } + + $v->addArray($output); + return new XML_RPC_Response($v); + } + + // -------------------------------------------------------------------- + + /** + * Server Function: Return Signature for Method + * + * @access public + * @param mixed + * @return object + */ + function methodSignature($m) + { + $parameters = $m->output_parameters(); + $method_name = $parameters[0]; + + if (isset($this->methods[$method_name])) + { + if ($this->methods[$method_name]['signature']) + { + $sigs = array(); + $signature = $this->methods[$method_name]['signature']; + + for ($i=0; $i < count($signature); $i++) + { + $cursig = array(); + $inSig = $signature[$i]; + for ($j=0; $j<count($inSig); $j++) + { + $cursig[]= new XML_RPC_Values($inSig[$j], 'string'); + } + $sigs[]= new XML_RPC_Values($cursig, 'array'); + } + $r = new XML_RPC_Response(new XML_RPC_Values($sigs, 'array')); + } + else + { + $r = new XML_RPC_Response(new XML_RPC_Values('undef', 'string')); + } + } + else + { + $r = new XML_RPC_Response(0,$this->xmlrpcerr['introspect_unknown'], $this->xmlrpcstr['introspect_unknown']); + } + return $r; + } + + // -------------------------------------------------------------------- + + /** + * Server Function: Doc String for Method + * + * @access public + * @param mixed + * @return object + */ + function methodHelp($m) + { + $parameters = $m->output_parameters(); + $method_name = $parameters[0]; + + if (isset($this->methods[$method_name])) + { + $docstring = isset($this->methods[$method_name]['docstring']) ? $this->methods[$method_name]['docstring'] : ''; + + return new XML_RPC_Response(new XML_RPC_Values($docstring, 'string')); + } + else + { + return new XML_RPC_Response(0, $this->xmlrpcerr['introspect_unknown'], $this->xmlrpcstr['introspect_unknown']); + } + } + + // -------------------------------------------------------------------- + + /** + * Server Function: Multi-call + * + * @access public + * @param mixed + * @return object + */ + function multicall($m) + { + // Disabled + return new XML_RPC_Response(0, $this->xmlrpcerr['unknown_method'], $this->xmlrpcstr['unknown_method']); + + $parameters = $m->output_parameters(); + $calls = $parameters[0]; + + $result = array(); + + foreach ($calls as $value) + { + //$attempt = $this->_execute(new XML_RPC_Message($value[0], $value[1])); + + $m = new XML_RPC_Message($value[0]); + $plist=''; + + for ($i=0; $i < count($value[1]); $i++) + { + $m->addParam(new XML_RPC_Values($value[1][$i], 'string')); + } + + $attempt = $this->_execute($m); + + if ($attempt->faultCode() != 0) + { + return $attempt; + } + + $result[] = new XML_RPC_Values(array($attempt->value()), 'array'); + } + + return new XML_RPC_Response(new XML_RPC_Values($result, 'array')); + } + + // -------------------------------------------------------------------- + + /** + * Multi-call Function: Error Handling + * + * @access public + * @param mixed + * @return object + */ + function multicall_error($err) + { + $str = is_string($err) ? $this->xmlrpcstr["multicall_${err}"] : $err->faultString(); + $code = is_string($err) ? $this->xmlrpcerr["multicall_${err}"] : $err->faultCode(); + + $struct['faultCode'] = new XML_RPC_Values($code, 'int'); + $struct['faultString'] = new XML_RPC_Values($str, 'string'); + + return new XML_RPC_Values($struct, 'struct'); + } + + // -------------------------------------------------------------------- + + /** + * Multi-call Function: Processes method + * + * @access public + * @param mixed + * @return object + */ + function do_multicall($call) + { + if ($call->kindOf() != 'struct') + { + return $this->multicall_error('notstruct'); + } + elseif ( ! $methName = $call->me['struct']['methodName']) + { + return $this->multicall_error('nomethod'); + } + + list($scalar_type,$scalar_value)=each($methName->me); + $scalar_type = $scalar_type == $this->xmlrpcI4 ? $this->xmlrpcInt : $scalar_type; + + if ($methName->kindOf() != 'scalar' OR $scalar_type != 'string') + { + return $this->multicall_error('notstring'); + } + elseif ($scalar_value == 'system.multicall') + { + return $this->multicall_error('recursion'); + } + elseif ( ! $params = $call->me['struct']['params']) + { + return $this->multicall_error('noparams'); + } + elseif ($params->kindOf() != 'array') + { + return $this->multicall_error('notarray'); + } + + list($a,$b)=each($params->me); + $numParams = count($b); + + $msg = new XML_RPC_Message($scalar_value); + for ($i = 0; $i < $numParams; $i++) + { + $msg->params[] = $params->me['array'][$i]; + } + + $result = $this->_execute($msg); + + if ($result->faultCode() != 0) + { + return $this->multicall_error($result); + } + + return new XML_RPC_Values(array($result->value()), 'array'); + } + +} +// END XML_RPC_Server class + + +/* End of file Xmlrpcs.php */ +/* Location: ./system/libraries/Xmlrpcs.php */ \ No newline at end of file diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php new file mode 100755 index 0000000..666327d --- /dev/null +++ b/system/libraries/Zip.php @@ -0,0 +1,423 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/** + * CodeIgniter + * + * An open source application development framework for PHP 5.1.6 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://codeigniter.com/user_guide/license.html + * @link http://codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Zip Compression Class + * + * This class is based on a library I found at Zend: + * http://www.zend.com/codex.php?id=696&single=1 + * + * The original library is a little rough around the edges so I + * refactored it and added several additional methods -- Rick Ellis + * + * @package CodeIgniter + * @subpackage Libraries + * @category Encryption + * @author ExpressionEngine Dev Team + * @link http://codeigniter.com/user_guide/libraries/zip.html + */ +class CI_Zip { + + var $zipdata = ''; + var $directory = ''; + var $entries = 0; + var $file_num = 0; + var $offset = 0; + var $now; + + /** + * Constructor + */ + public function __construct() + { + log_message('debug', "Zip Compression Class Initialized"); + + $this->now = time(); + } + + // -------------------------------------------------------------------- + + /** + * Add Directory + * + * Lets you add a virtual directory into which you can place files. + * + * @access public + * @param mixed the directory name. Can be string or array + * @return void + */ + function add_dir($directory) + { + foreach ((array)$directory as $dir) + { + if ( ! preg_match("|.+/$|", $dir)) + { + $dir .= '/'; + } + + $dir_time = $this->_get_mod_time($dir); + + $this->_add_dir($dir, $dir_time['file_mtime'], $dir_time['file_mdate']); + } + } + + // -------------------------------------------------------------------- + + /** + * Get file/directory modification time + * + * If this is a newly created file/dir, we will set the time to 'now' + * + * @param string path to file + * @return array filemtime/filemdate + */ + function _get_mod_time($dir) + { + // filemtime() will return false, but it does raise an error. + $date = (@filemtime($dir)) ? filemtime($dir) : getdate($this->now); + + $time['file_mtime'] = ($date['hours'] << 11) + ($date['minutes'] << 5) + $date['seconds'] / 2; + $time['file_mdate'] = (($date['year'] - 1980) << 9) + ($date['mon'] << 5) + $date['mday']; + + return $time; + } + + // -------------------------------------------------------------------- + + /** + * Add Directory + * + * @access private + * @param string the directory name + * @return void + */ + function _add_dir($dir, $file_mtime, $file_mdate) + { + $dir = str_replace("\\", "/", $dir); + + $this->zipdata .= + "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00" + .pack('v', $file_mtime) + .pack('v', $file_mdate) + .pack('V', 0) // crc32 + .pack('V', 0) // compressed filesize + .pack('V', 0) // uncompressed filesize + .pack('v', strlen($dir)) // length of pathname + .pack('v', 0) // extra field length + .$dir + // below is "data descriptor" segment + .pack('V', 0) // crc32 + .pack('V', 0) // compressed filesize + .pack('V', 0); // uncompressed filesize + + $this->directory .= + "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00" + .pack('v', $file_mtime) + .pack('v', $file_mdate) + .pack('V',0) // crc32 + .pack('V',0) // compressed filesize + .pack('V',0) // uncompressed filesize + .pack('v', strlen($dir)) // length of pathname + .pack('v', 0) // extra field length + .pack('v', 0) // file comment length + .pack('v', 0) // disk number start + .pack('v', 0) // internal file attributes + .pack('V', 16) // external file attributes - 'directory' bit set + .pack('V', $this->offset) // relative offset of local header + .$dir; + + $this->offset = strlen($this->zipdata); + $this->entries++; + } + + // -------------------------------------------------------------------- + + /** + * Add Data to Zip + * + * Lets you add files to the archive. If the path is included + * in the filename it will be placed within a directory. Make + * sure you use add_dir() first to create the folder. + * + * @access public + * @param mixed + * @param string + * @return void + */ + function add_data($filepath, $data = NULL) + { + if (is_array($filepath)) + { + foreach ($filepath as $path => $data) + { + $file_data = $this->_get_mod_time($path); + + $this->_add_data($path, $data, $file_data['file_mtime'], $file_data['file_mdate']); + } + } + else + { + $file_data = $this->_get_mod_time($filepath); + + $this->_add_data($filepath, $data, $file_data['file_mtime'], $file_data['file_mdate']); + } + } + + // -------------------------------------------------------------------- + + /** + * Add Data to Zip + * + * @access private + * @param string the file name/path + * @param string the data to be encoded + * @return void + */ + function _add_data($filepath, $data, $file_mtime, $file_mdate) + { + $filepath = str_replace("\\", "/", $filepath); + + $uncompressed_size = strlen($data); + $crc32 = crc32($data); + + $gzdata = gzcompress($data); + $gzdata = substr($gzdata, 2, -4); + $compressed_size = strlen($gzdata); + + $this->zipdata .= + "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00" + .pack('v', $file_mtime) + .pack('v', $file_mdate) + .pack('V', $crc32) + .pack('V', $compressed_size) + .pack('V', $uncompressed_size) + .pack('v', strlen($filepath)) // length of filename + .pack('v', 0) // extra field length + .$filepath + .$gzdata; // "file data" segment + + $this->directory .= + "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00" + .pack('v', $file_mtime) + .pack('v', $file_mdate) + .pack('V', $crc32) + .pack('V', $compressed_size) + .pack('V', $uncompressed_size) + .pack('v', strlen($filepath)) // length of filename + .pack('v', 0) // extra field length + .pack('v', 0) // file comment length + .pack('v', 0) // disk number start + .pack('v', 0) // internal file attributes + .pack('V', 32) // external file attributes - 'archive' bit set + .pack('V', $this->offset) // relative offset of local header + .$filepath; + + $this->offset = strlen($this->zipdata); + $this->entries++; + $this->file_num++; + } + + // -------------------------------------------------------------------- + + /** + * Read the contents of a file and add it to the zip + * + * @access public + * @return bool + */ + function read_file($path, $preserve_filepath = FALSE) + { + if ( ! file_exists($path)) + { + return FALSE; + } + + if (FALSE !== ($data = file_get_contents($path))) + { + $name = str_replace("\\", "/", $path); + + if ($preserve_filepath === FALSE) + { + $name = preg_replace("|.*/(.+)|", "\\1", $name); + } + + $this->add_data($name, $data); + return TRUE; + } + return FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Read a directory and add it to the zip. + * + * This function recursively reads a folder and everything it contains (including + * sub-folders) and creates a zip based on it. Whatever directory structure + * is in the original file path will be recreated in the zip file. + * + * @access public + * @param string path to source + * @return bool + */ + function read_dir($path, $preserve_filepath = TRUE, $root_path = NULL) + { + if ( ! $fp = @opendir($path)) + { + return FALSE; + } + + // Set the original directory root for child dir's to use as relative + if ($root_path === NULL) + { + $root_path = dirname($path).'/'; + } + + while (FALSE !== ($file = readdir($fp))) + { + if (substr($file, 0, 1) == '.') + { + continue; + } + + if (@is_dir($path.$file)) + { + $this->read_dir($path.$file."/", $preserve_filepath, $root_path); + } + else + { + if (FALSE !== ($data = file_get_contents($path.$file))) + { + $name = str_replace("\\", "/", $path); + + if ($preserve_filepath === FALSE) + { + $name = str_replace($root_path, '', $name); + } + + $this->add_data($name.$file, $data); + } + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Get the Zip file + * + * @access public + * @return binary string + */ + function get_zip() + { + // Is there any data to return? + if ($this->entries == 0) + { + return FALSE; + } + + $zip_data = $this->zipdata; + $zip_data .= $this->directory."\x50\x4b\x05\x06\x00\x00\x00\x00"; + $zip_data .= pack('v', $this->entries); // total # of entries "on this disk" + $zip_data .= pack('v', $this->entries); // total # of entries overall + $zip_data .= pack('V', strlen($this->directory)); // size of central dir + $zip_data .= pack('V', strlen($this->zipdata)); // offset to start of central dir + $zip_data .= "\x00\x00"; // .zip file comment length + + return $zip_data; + } + + // -------------------------------------------------------------------- + + /** + * Write File to the specified directory + * + * Lets you write a file + * + * @access public + * @param string the file name + * @return bool + */ + function archive($filepath) + { + if ( ! ($fp = @fopen($filepath, FOPEN_WRITE_CREATE_DESTRUCTIVE))) + { + return FALSE; + } + + flock($fp, LOCK_EX); + fwrite($fp, $this->get_zip()); + flock($fp, LOCK_UN); + fclose($fp); + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Download + * + * @access public + * @param string the file name + * @param string the data to be encoded + * @return bool + */ + function download($filename = 'backup.zip') + { + if ( ! preg_match("|.+?\.zip$|", $filename)) + { + $filename .= '.zip'; + } + + $CI =& get_instance(); + $CI->load->helper('download'); + + $get_zip = $this->get_zip(); + + $zip_content =& $get_zip; + + force_download($filename, $zip_content); + } + + // -------------------------------------------------------------------- + + /** + * Initialize Data + * + * Lets you clear current zip data. Useful if you need to create + * multiple zips with different data. + * + * @access public + * @return void + */ + function clear_data() + { + $this->zipdata = ''; + $this->directory = ''; + $this->entries = 0; + $this->file_num = 0; + $this->offset = 0; + } + +} + +/* End of file Zip.php */ +/* Location: ./system/libraries/Zip.php */ \ No newline at end of file diff --git a/system/libraries/index.html b/system/libraries/index.html new file mode 100755 index 0000000..c942a79 --- /dev/null +++ b/system/libraries/index.html @@ -0,0 +1,10 @@ +<html> +<head> + <title>403 Forbidden</title> +</head> +<body> + +<p>Directory access is forbidden.</p> + +</body> +</html> \ No newline at end of file diff --git a/system/libraries/javascript/Jquery.php b/system/libraries/javascript/Jquery.php new file mode 100755 index 0000000..baab83d --- /dev/null +++ b/system/libraries/javascript/Jquery.php @@ -0,0 +1,1071 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); + +/** + * CodeIgniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author ExpressionEngine Dev Team + * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. + * @license http://www.codeigniter.com/user_guide/license.html + * @link http://www.codeigniter.com + * @since Version 1.0 + * @filesource + */ + +/** + * Jquery Class + * + * @package CodeIgniter + * @subpackage Libraries + * @author ExpressionEngine Dev Team + * @category Loader + * @link http://www.codeigniter.com/user_guide/libraries/javascript.html + */ + +class CI_Jquery extends CI_Javascript { + + var $_javascript_folder = 'js'; + var $jquery_code_for_load = array(); + var $jquery_code_for_compile = array(); + var $jquery_corner_active = FALSE; + var $jquery_table_sorter_active = FALSE; + var $jquery_table_sorter_pager_active = FALSE; + var $jquery_ajax_img = ''; + + public function __construct($params) + { + $this->CI =& get_instance(); + extract($params); + + if ($autoload === TRUE) + { + $this->script(); + } + + log_message('debug', "Jquery Class Initialized"); + } + + // -------------------------------------------------------------------- + // Event Code + // -------------------------------------------------------------------- + + /** + * Blur + * + * Outputs a jQuery blur event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _blur($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'blur'); + } + + // -------------------------------------------------------------------- + + /** + * Change + * + * Outputs a jQuery change event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _change($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'change'); + } + + // -------------------------------------------------------------------- + + /** + * Click + * + * Outputs a jQuery click event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @param boolean whether or not to return false + * @return string + */ + function _click($element = 'this', $js = '', $ret_false = TRUE) + { + if ( ! is_array($js)) + { + $js = array($js); + } + + if ($ret_false) + { + $js[] = "return false;"; + } + + return $this->_add_event($element, $js, 'click'); + } + + // -------------------------------------------------------------------- + + /** + * Double Click + * + * Outputs a jQuery dblclick event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _dblclick($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'dblclick'); + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Outputs a jQuery error event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _error($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'error'); + } + + // -------------------------------------------------------------------- + + /** + * Focus + * + * Outputs a jQuery focus event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _focus($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'focus'); + } + + // -------------------------------------------------------------------- + + /** + * Hover + * + * Outputs a jQuery hover event + * + * @access private + * @param string - element + * @param string - Javascript code for mouse over + * @param string - Javascript code for mouse out + * @return string + */ + function _hover($element = 'this', $over, $out) + { + $event = "\n\t$(" . $this->_prep_element($element) . ").hover(\n\t\tfunction()\n\t\t{\n\t\t\t{$over}\n\t\t}, \n\t\tfunction()\n\t\t{\n\t\t\t{$out}\n\t\t});\n"; + + $this->jquery_code_for_compile[] = $event; + + return $event; + } + + // -------------------------------------------------------------------- + + /** + * Keydown + * + * Outputs a jQuery keydown event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _keydown($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'keydown'); + } + + // -------------------------------------------------------------------- + + /** + * Keyup + * + * Outputs a jQuery keydown event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _keyup($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'keyup'); + } + + // -------------------------------------------------------------------- + + /** + * Load + * + * Outputs a jQuery load event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _load($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'load'); + } + + // -------------------------------------------------------------------- + + /** + * Mousedown + * + * Outputs a jQuery mousedown event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _mousedown($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'mousedown'); + } + + // -------------------------------------------------------------------- + + /** + * Mouse Out + * + * Outputs a jQuery mouseout event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _mouseout($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'mouseout'); + } + + // -------------------------------------------------------------------- + + /** + * Mouse Over + * + * Outputs a jQuery mouseover event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _mouseover($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'mouseover'); + } + + // -------------------------------------------------------------------- + + /** + * Mouseup + * + * Outputs a jQuery mouseup event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _mouseup($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'mouseup'); + } + + // -------------------------------------------------------------------- + + /** + * Output + * + * Outputs script directly + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _output($array_js = '') + { + if ( ! is_array($array_js)) + { + $array_js = array($array_js); + } + + foreach ($array_js as $js) + { + $this->jquery_code_for_compile[] = "\t$js\n"; + } + } + + // -------------------------------------------------------------------- + + /** + * Resize + * + * Outputs a jQuery resize event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _resize($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'resize'); + } + + // -------------------------------------------------------------------- + + /** + * Scroll + * + * Outputs a jQuery scroll event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _scroll($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'scroll'); + } + + // -------------------------------------------------------------------- + + /** + * Unload + * + * Outputs a jQuery unload event + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @return string + */ + function _unload($element = 'this', $js = '') + { + return $this->_add_event($element, $js, 'unload'); + } + + // -------------------------------------------------------------------- + // Effects + // -------------------------------------------------------------------- + + /** + * Add Class + * + * Outputs a jQuery addClass event + * + * @access private + * @param string - element + * @return string + */ + function _addClass($element = 'this', $class='') + { + $element = $this->_prep_element($element); + $str = "$({$element}).addClass(\"$class\");"; + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Animate + * + * Outputs a jQuery animate event + * + * @access private + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function _animate($element = 'this', $params = array(), $speed = '', $extra = '') + { + $element = $this->_prep_element($element); + $speed = $this->_validate_speed($speed); + + $animations = "\t\t\t"; + + foreach ($params as $param=>$value) + { + $animations .= $param.': \''.$value.'\', '; + } + + $animations = substr($animations, 0, -2); // remove the last ", " + + if ($speed != '') + { + $speed = ', '.$speed; + } + + if ($extra != '') + { + $extra = ', '.$extra; + } + + $str = "$({$element}).animate({\n$animations\n\t\t}".$speed.$extra.");"; + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Fade In + * + * Outputs a jQuery hide event + * + * @access private + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function _fadeIn($element = 'this', $speed = '', $callback = '') + { + $element = $this->_prep_element($element); + $speed = $this->_validate_speed($speed); + + if ($callback != '') + { + $callback = ", function(){\n{$callback}\n}"; + } + + $str = "$({$element}).fadeIn({$speed}{$callback});"; + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Fade Out + * + * Outputs a jQuery hide event + * + * @access private + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function _fadeOut($element = 'this', $speed = '', $callback = '') + { + $element = $this->_prep_element($element); + $speed = $this->_validate_speed($speed); + + if ($callback != '') + { + $callback = ", function(){\n{$callback}\n}"; + } + + $str = "$({$element}).fadeOut({$speed}{$callback});"; + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Hide + * + * Outputs a jQuery hide action + * + * @access private + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function _hide($element = 'this', $speed = '', $callback = '') + { + $element = $this->_prep_element($element); + $speed = $this->_validate_speed($speed); + + if ($callback != '') + { + $callback = ", function(){\n{$callback}\n}"; + } + + $str = "$({$element}).hide({$speed}{$callback});"; + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Remove Class + * + * Outputs a jQuery remove class event + * + * @access private + * @param string - element + * @return string + */ + function _removeClass($element = 'this', $class='') + { + $element = $this->_prep_element($element); + $str = "$({$element}).removeClass(\"$class\");"; + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Slide Up + * + * Outputs a jQuery slideUp event + * + * @access private + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function _slideUp($element = 'this', $speed = '', $callback = '') + { + $element = $this->_prep_element($element); + $speed = $this->_validate_speed($speed); + + if ($callback != '') + { + $callback = ", function(){\n{$callback}\n}"; + } + + $str = "$({$element}).slideUp({$speed}{$callback});"; + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Slide Down + * + * Outputs a jQuery slideDown event + * + * @access private + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function _slideDown($element = 'this', $speed = '', $callback = '') + { + $element = $this->_prep_element($element); + $speed = $this->_validate_speed($speed); + + if ($callback != '') + { + $callback = ", function(){\n{$callback}\n}"; + } + + $str = "$({$element}).slideDown({$speed}{$callback});"; + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Slide Toggle + * + * Outputs a jQuery slideToggle event + * + * @access public + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function _slideToggle($element = 'this', $speed = '', $callback = '') + { + $element = $this->_prep_element($element); + $speed = $this->_validate_speed($speed); + + if ($callback != '') + { + $callback = ", function(){\n{$callback}\n}"; + } + + $str = "$({$element}).slideToggle({$speed}{$callback});"; + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Toggle + * + * Outputs a jQuery toggle event + * + * @access private + * @param string - element + * @return string + */ + function _toggle($element = 'this') + { + $element = $this->_prep_element($element); + $str = "$({$element}).toggle();"; + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Toggle Class + * + * Outputs a jQuery toggle class event + * + * @access private + * @param string - element + * @return string + */ + function _toggleClass($element = 'this', $class='') + { + $element = $this->_prep_element($element); + $str = "$({$element}).toggleClass(\"$class\");"; + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Show + * + * Outputs a jQuery show event + * + * @access private + * @param string - element + * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds + * @param string - Javascript callback function + * @return string + */ + function _show($element = 'this', $speed = '', $callback = '') + { + $element = $this->_prep_element($element); + $speed = $this->_validate_speed($speed); + + if ($callback != '') + { + $callback = ", function(){\n{$callback}\n}"; + } + + $str = "$({$element}).show({$speed}{$callback});"; + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Updater + * + * An Ajax call that populates the designated DOM node with + * returned content + * + * @access private + * @param string The element to attach the event to + * @param string the controller to run the call against + * @param string optional parameters + * @return string + */ + + function _updater($container = 'this', $controller, $options = '') + { + $container = $this->_prep_element($container); + + $controller = (strpos('://', $controller) === FALSE) ? $controller : $this->CI->config->site_url($controller); + + // ajaxStart and ajaxStop are better choices here... but this is a stop gap + if ($this->CI->config->item('javascript_ajax_img') == '') + { + $loading_notifier = "Loading..."; + } + else + { + $loading_notifier = '<img src=\'' . $this->CI->config->slash_item('base_url') . $this->CI->config->item('javascript_ajax_img') . '\' alt=\'Loading\' />'; + } + + $updater = "$($container).empty();\n"; // anything that was in... get it out + $updater .= "\t\t$($container).prepend(\"$loading_notifier\");\n"; // to replace with an image + + $request_options = ''; + if ($options != '') + { + $request_options .= ", {"; + $request_options .= (is_array($options)) ? "'".implode("', '", $options)."'" : "'".str_replace(":", "':'", $options)."'"; + $request_options .= "}"; + } + + $updater .= "\t\t$($container).load('$controller'$request_options);"; + return $updater; + } + + + // -------------------------------------------------------------------- + // Pre-written handy stuff + // -------------------------------------------------------------------- + + /** + * Zebra tables + * + * @access private + * @param string table name + * @param string plugin location + * @return string + */ + function _zebraTables($class = '', $odd = 'odd', $hover = '') + { + $class = ($class != '') ? '.'.$class : ''; + + $zebra = "\t\$(\"table{$class} tbody tr:nth-child(even)\").addClass(\"{$odd}\");"; + + $this->jquery_code_for_compile[] = $zebra; + + if ($hover != '') + { + $hover = $this->hover("table{$class} tbody tr", "$(this).addClass('hover');", "$(this).removeClass('hover');"); + } + + return $zebra; + } + + + + // -------------------------------------------------------------------- + // Plugins + // -------------------------------------------------------------------- + + /** + * Corner Plugin + * + * http://www.malsup.com/jquery/corner/ + * + * @access public + * @param string target + * @return string + */ + function corner($element = '', $corner_style = '') + { + // may want to make this configurable down the road + $corner_location = '/plugins/jquery.corner.js'; + + if ($corner_style != '') + { + $corner_style = '"'.$corner_style.'"'; + } + + return "$(" . $this->_prep_element($element) . ").corner(".$corner_style.");"; + } + + // -------------------------------------------------------------------- + + /** + * modal window + * + * Load a thickbox modal window + * + * @access public + * @return void + */ + function modal($src, $relative = FALSE) + { + $this->jquery_code_for_load[] = $this->external($src, $relative); + } + + // -------------------------------------------------------------------- + + /** + * Effect + * + * Load an Effect library + * + * @access public + * @return void + */ + function effect($src, $relative = FALSE) + { + $this->jquery_code_for_load[] = $this->external($src, $relative); + } + + // -------------------------------------------------------------------- + + /** + * Plugin + * + * Load a plugin library + * + * @access public + * @return void + */ + function plugin($src, $relative = FALSE) + { + $this->jquery_code_for_load[] = $this->external($src, $relative); + } + + // -------------------------------------------------------------------- + + /** + * UI + * + * Load a user interface library + * + * @access public + * @return void + */ + function ui($src, $relative = FALSE) + { + $this->jquery_code_for_load[] = $this->external($src, $relative); + } + // -------------------------------------------------------------------- + + /** + * Sortable + * + * Creates a jQuery sortable + * + * @access public + * @return void + */ + function sortable($element, $options = array()) + { + + if (count($options) > 0) + { + $sort_options = array(); + foreach ($options as $k=>$v) + { + $sort_options[] = "\n\t\t".$k.': '.$v.""; + } + $sort_options = implode(",", $sort_options); + } + else + { + $sort_options = ''; + } + + return "$(" . $this->_prep_element($element) . ").sortable({".$sort_options."\n\t});"; + } + + // -------------------------------------------------------------------- + + /** + * Table Sorter Plugin + * + * @access public + * @param string table name + * @param string plugin location + * @return string + */ + function tablesorter($table = '', $options = '') + { + $this->jquery_code_for_compile[] = "\t$(" . $this->_prep_element($table) . ").tablesorter($options);\n"; + } + + // -------------------------------------------------------------------- + // Class functions + // -------------------------------------------------------------------- + + /** + * Add Event + * + * Constructs the syntax for an event, and adds to into the array for compilation + * + * @access private + * @param string The element to attach the event to + * @param string The code to execute + * @param string The event to pass + * @return string + */ + function _add_event($element, $js, $event) + { + if (is_array($js)) + { + $js = implode("\n\t\t", $js); + + } + + $event = "\n\t$(" . $this->_prep_element($element) . ").{$event}(function(){\n\t\t{$js}\n\t});\n"; + $this->jquery_code_for_compile[] = $event; + return $event; + } + + // -------------------------------------------------------------------- + + /** + * Compile + * + * As events are specified, they are stored in an array + * This funciton compiles them all for output on a page + * + * @access private + * @return string + */ + function _compile($view_var = 'script_foot', $script_tags = TRUE) + { + // External references + $external_scripts = implode('', $this->jquery_code_for_load); + $this->CI->load->vars(array('library_src' => $external_scripts)); + + if (count($this->jquery_code_for_compile) == 0 ) + { + // no inline references, let's just return + return; + } + + // Inline references + $script = '$(document).ready(function() {' . "\n"; + $script .= implode('', $this->jquery_code_for_compile); + $script .= '});'; + + $output = ($script_tags === FALSE) ? $script : $this->inline($script); + + $this->CI->load->vars(array($view_var => $output)); + + } + + // -------------------------------------------------------------------- + + /** + * Clear Compile + * + * Clears the array of script events collected for output + * + * @access public + * @return void + */ + function _clear_compile() + { + $this->jquery_code_for_compile = array(); + } + + // -------------------------------------------------------------------- + + /** + * Document Ready + * + * A wrapper for writing document.ready() + * + * @access private + * @return string + */ + function _document_ready($js) + { + if ( ! is_array($js)) + { + $js = array ($js); + + } + + foreach ($js as $script) + { + $this->jquery_code_for_compile[] = $script; + } + } + + // -------------------------------------------------------------------- + + /** + * Script Tag + * + * Outputs the script tag that loads the jquery.js file into an HTML document + * + * @access public + * @param string + * @return string + */ + function script($library_src = '', $relative = FALSE) + { + $library_src = $this->external($library_src, $relative); + $this->jquery_code_for_load[] = $library_src; + return $library_src; + } + + // -------------------------------------------------------------------- + + /** + * Prep Element + * + * Puts HTML element in quotes for use in jQuery code + * unless the supplied element is the Javascript 'this' + * object, in which case no quotes are added + * + * @access public + * @param string + * @return string + */ + function _prep_element($element) + { + if ($element != 'this') + { + $element = '"'.$element.'"'; + } + + return $element; + } + + // -------------------------------------------------------------------- + + /** + * Validate Speed + * + * Ensures the speed parameter is valid for jQuery + * + * @access private + * @param string + * @return string + */ + function _validate_speed($speed) + { + if (in_array($speed, array('slow', 'normal', 'fast'))) + { + $speed = '"'.$speed.'"'; + } + elseif (preg_match("/[^0-9]/", $speed)) + { + $speed = ''; + } + + return $speed; + } + +} + +/* End of file Jquery.php */ +/* Location: ./system/libraries/Jquery.php */ \ No newline at end of file diff --git a/theme/css/app.css b/theme/css/app.css new file mode 100755 index 0000000..730669c --- /dev/null +++ b/theme/css/app.css @@ -0,0 +1,1611 @@ +@import url(http://fonts.googleapis.com/css?family=Ubuntu:400,500,700); + +.ff-1 { + font-family: 'Ubuntu', sans-serif !important; + font-weight:normal !important; +} +.ff-2 { + font-family: 'Open Sans Condensed', sans-serif !important; + font-weight:normal !important; +} + + +.fs-10 { font-size:10px !important; } +.fs-11 { font-size:11px !important; } +.fs-12 { font-size:12px !important; } +.fs-13 { font-size:13px !important; } +.fs-14 { font-size:14px !important; } +.fs-16 { font-size:16px !important; } +.fs-18 { font-size:18px !important; } +.fs-20 { font-size:20px !important; } +.fs-22 { font-size:22px !important; } +.fs-24 { font-size:24px !important; } +.fs-26 { font-size:26px !important; } +.fs-28 { font-size:28px !important; } +.fs-30 { font-size:30px !important; } +.fs-32 { font-size:32px !important; } +.fs-34 { font-size:34px !important; } +.fs-36 { font-size:36px !important; } + +body { + background: #f3f3f3 url(../img/bg-content.png); + font-family: Open Sans, Helvetica, Arial, sans-serif; + font-weight: normal; + font-style: normal; + font-size: 13px; + line-height: 1.5em; + color: #333; + overflow-x: hidden; + margin:0px !important; +} +.container.bg { + -webkit-box-shadow: 0 2px 5px rgba(0,0,0,0.2) inset; + -moz-box-shadow: 0 2px 5px rgba(0,0,0,0.2) inset; + box-shadow: 0 0 5px rgba(0,0,0,0.2); + background-color:#FFF; + padding-top:70px; +} + +.DTTT_Print { + background: #fff; + font-family: Open Sans, Helvetica, Arial, sans-serif; + font-weight: normal; + font-style: normal; + font-size: 13px; + line-height: 1.5em; + color: #333; + overflow-x: hidden; + margin:0px !important; +} +.DTTT_Print .container.bg { + -webkit-box-shadow: 0 2px 5px rgba(0,0,0,0) inset; + -moz-box-shadow: 0 2px 5px rgba(0,0,0,0) inset; + box-shadow: 0 0 5px rgba(0,0,0,0); + background-color:#FFF; + padding-top:5px; +} + +.h5 { + height:5px; +} +.h20 { + height:20px; +} +.no-strong { + font-weight:400 !important; +} + +h1,h2,h3 { + margin-bottom:20px; +} +.hr { + border-bottom:1px solid #ccc; +} +.messageContent { + min-height:50px; + margin-bottom:10px; + font-size:15px; +} +.messageContent table { + font-size:12px; +} +blockquote { + padding: 0px 10px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +.strong { font-weight:bold; } +.info_icone { + background-color:#DC2946; + color:#fff; + border-radius:4px; + height:18px; + min-width:18px; + display:inline-block; + position:absolute; + text-align:center; + margin-top:-10px; + margin-left:-10px; +} +.info_icone.turq { + background-color:#03b3b2; +} + + +.hide { display:none; } + + +/*** +Dashboard stats +***/ +.link-dashboard-stat:hoverr > .dashboard-stat { + background-color:#545454 !important; +} +.dashboard-stat { + margin-bottom: 20px; +} + +.dashboard-stat:before, +.dashboard-stat:after { + display: table; + line-height: 0; + content: ""; +} +.dashboard-stat:after { + clear: both; +} + +.dashboard-stat .visual { + display:inline-block; + float: left; + padding-top: 10px; + padding-left: 15px; + position:absolute; +} + +.dashboard-stat .visual i { + font-size: 35px; + color: #D2D2D2; +} + +.dashboard-stat .details { + float: right; + padding-right: 10px; + margin-bottom: 10px; +} + +.dashboard-stat .details .number { + padding-top: 15px; + text-align: right; + font-size: 24px; + line-height: 24px; + letter-spacing: -1px; + margin-bottom: 5px; + font-weight: 400; + color: #000; + +} + +.dashboard-stat .details .desc { + text-align: right; + font-size: 12px; + letter-spacing: 0px; + font-weight: 100; + color: #000; + line-height:12px; + height:25px; +} + +.dashboard-stat .more { + clear: both; + display: block; + padding: 5px 10px 5px 10px; + text-transform: uppercase; + font-weight: 300; + font-size: 11px; + color: #000; + opacity: 0.7; + filter: alpha(opacity=70); +} + +.dashboard-stat .more:hover { + text-decoration: none; + opacity: 1; + filter: alpha(opacity=100); +} + +.dashboard-stat .more > i { + display: inline-block; + margin-top: 1px; + float: right; +} + + + +.dashboard-stat.none { + background-color: #f0f0f0; +-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,1),0 2px 4px rgba(0,0,0,0.08),inset 0 -1px 0 rgba(0,0,0,0.25); +-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,1),0 2px 4px rgba(0,0,0,0.08),inset 0 -1px 0 rgba(0,0,0,0.25); +box-shadow: inset 0 1px 0 rgba(255,255,255,1),0 2px 4px rgba(0,0,0,0.08),inset 0 -1px 0 rgba(0,0,0,0.25); +border-radius:2px; +} +.ddashboard-stat.blue { + background-color: #27a9e3; + border-bottom:6px solid #208dbe; +} + +.ddashboard-stat.blue .more { + background-color: #208dbe; +} + +.ddashboard-stat.green { + background-color: #28b779; + border-bottom:6px solid #10a062; +} + +.ddashboard-stat.green .more { + background-color: #10a062; +} + +.ddashboard-stat.red { + background-color: #e7191b; + border-bottom:6px solid #bc0d0e; +} + +.ddashboard-stat.red .more { + background-color:#bc0d0e; +} + +.ddashboard-stat.yellow { + background-color: #ffb848; + border-bottom:6px solid #cb871b; +} + +.ddashboard-stat.yellow .more { + background-color: #cb871b; +} + +.ddashboard-stat.purple { + background-color: #852b99; + border-bottom:6px solid #6e1881; +} + +.ddashboard-stat.purple .more { + background-color: #6e1881; +} + +.ddashboard-stat.dark_blue { + background-color: #001940; + border-bottom:6px solid #6e1881; +} +.ddashboard-stat.metro_green { + background-color: #001940; + border-bottom:6px solid #74B749; +} +.ddashboard-stat.metro_red { + background-color: #001940; + border-bottom:6px solid #de577b; +} +.ddashboard-stat.metro_brown { + background-color: #001940; + border-bottom:6px solid #ab8465; +} + + + +/* dashboard note */ +.dashboard-note { + width:100%; + height:150px; + padding:10px; + margin-bottom:20px; + background-color:#F6F6F6; + border:1px solid #ccc; + border-top:0px; + -webkit-transition: background 2s ease; + -moz-transition: background 2s ease; + -ms-transition: background 2s ease; + -o-transition: background 2s ease; + transition: background 2s ease; +} + + +.box_title { + padding:10px 10px 10px 10px; + font-family: 'Ubuntu', sans-serif !important; + font-size:16px; + color:#fff; +} +.box_title .glyphicon { + font-size:16px; + font-weight:100; +} +.box_title.turq { + background-color:#03b3b2; +} +.box_title.light_blue { + background-color:#5db2ff; +} +.box_title.red { + background-color:#ac193d; +} +.box_title.dark_blue { + background-color:#001940; +} +.box_title.grey { + background-color:#585858; +} +.box_title.dark_turq { + background-color:#008299; +} +.box_title.orange { + background-color:#d24726; +} +.box_title.metro_green { + background-color:#74B749; +} + +.box_border { + border:1px solid #bce8f1; + padding:5px; +} + + +.box2 { + padding:10px; +} + +.box2 input, .box2 textarea, .box2 select { + border:1px solid #9C9C9C; +} + + +.box2 .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { +cursor: not-allowed; +background-color: #ccc; +border:1px solid #A4A4A4; +} + +.box-title { + padding:10px 10px 10px 10px; + margin:-10px; + margin-bottom:10px; + font-family: 'Ubuntu', sans-serif !important; + font-size:14px; + color:#000; + background: rgba(0,0,0,.3) !important; + border-bottom:3px solid rgba(0,0,0,.1) !important; +} + +.box2.green1 { background-color: #B9F385; } +.box2.green2 { background-color: #9cd159; } +.box2.blue3 { background: #0067be; } +.box2.red2 { background: #ff5757; } +.box2.azure1 { background: #41e5c0; } +.box2.terques1 { background: #6ccac9; } +.box2.yellow2 { background: #fc0; } +.box2.toyo1 { background-color: #667ea3; } + +.box2.gray1 { background: #F1F1F1; } + + +.white { color:#fff !important; } + + +.colPadding5 { + margin:0px; + padding:0px; +} +.colPadding5 [class*="col-md-"] { + padding:0px 5px; + margin:0px; +} +.colPadding5 label { + font-size:12px !important; + margin:0px; +} +.colPadding5 input, .sidebar-1 select { + font-size:12px !important; + margin:0px !important; +} +.colPadding5 .form-group { + margin:0px; +} + + +.custom_box_32.for_sidebar {margin:5px;} +.custom_box_32 { + padding: 10px; + background: #f7f7f7; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-transition: All 0.5s ease; + -moz-transition: All 0.5s ease; + -ms-transition: All 0.5s ease; + -o-transition: All 0.5s ease; + transition: All 0.5s ease; + border: 1px solid #d9d9d9; + height: 65px; + margin-bottom: 4px; +} +.custom_box_32 .left { +border-right: 1px solid #e6e6e6; +float: left; +display: inline-block; +text-align: left; +width: 50%; +margin-right: 10px; +} +.custom_box_32 h4 { + margin-top: 0; + margin-bottom: 6px; + color: #4d4d4d; +} +.custom_box_32 p { + font-size: 11px; + color: #ed6d49; + text-transform: uppercase; + margin-bottom: 0; +} +.custom_box_32 p.green { color:#74b749; } + + +.help-block.note { + border-left:1px solid #e5e5e5; + border:1px solid #e5e5e5; + padding-top:10px; + margin-top:-20px; + border-top:0px; +} +.help-block.note h4 { + margin-left:30px; + margin-bottom:20px; +} +ul.note { + background-color:#F3F3F3; + padding:15px 30px; + margin:0px; +} +ul.note li { + margin-bottom:5px; +} +.help-block .text { + background-color:#F3F3F3; + padding:15px 15px; + margin:0px; +} + + +input.error, +input.error:focus, +select.error, +select.error:focus, +textarea.error, +textarea.error:focus { + background-color:#f9e6e6; +} +label.error { + color:#F00; + margin:-10px 0 0 0; + padding:0px; + z-index:999; + font-size:11px; +} + + +/* margin right */ +.mr1 { margin-right:1px; } +.mr2 { margin-right:2px; } +.mr3 { margin-right:3px; } +.mr4 { margin-right:4px; } +.mr5 { margin-right:5px; } +.mr6 { margin-right:6px; } +.mr7 { margin-right:7px; } +.mr8 { margin-right:8px; } +.mr9 { margin-right:9px; } + + + +.w800 { width:800px !important; } + + +.icone { + padding:15px 10px !important; +} +.icone .countbox { + display:inline-block; + background-color:#48a9d0; + color:#fff; + height:18px; + margin-left:5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + width:16px; + padding-left:4px; +} + + +#footer { + bottom:0px; + position:fixed; +} + +.box { + -webkit-box-shadow: 0 2px 5px rgba(0,0,0,0.2) inset; + -moz-box-shadow: 0 2px 5px rgba(0,0,0,0.2) inset; + box-shadow: 0 0 5px rgba(0,0,0,0.2); + background-color: #FFF; +} +.pointer { + cursor:pointer !important; +} +.invoice_input { + height:50px; + font-size:28px; + padding:10px; +} + + + + + + + + +.modal-content { + border-radius:2px !important; +} +legend{ + font-size:28px; + padding-bottom:10px; +} +li legend{ + font-size:20px; + border:0px; + padding:0px; + margin:0px; + padding-top:8px; + margin-right:40px; +} +label { + font-weight:normal; +} +.input-lg { + border-radius: 2px !important; +} +.form-control { + border-radius: 0px !important; +} +.input-group-addon { + border-radius: 0px !important; +} +.input-prepend .input-lg { + border-radius: 0px !important; +} +.btn-lg { + border-radius: 2px !important; +} + +.btn.btn-default2 { + border: 1px solid #ccc; + cursor: pointer; + color: black !important; + -webkit-box-shadow: 1px 1px 3px #ccc; + -moz-box-shadow: 1px 1px 3px #ccc; + -ms-box-shadow: 1px 1px 3px #ccc; + -o-box-shadow: 1px 1px 3px #ccc; + box-shadow: 1px 1px 3px #ccc; + background: #ffffff; + background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); +} +.btn.btn-default2:hover { + border: 1px solid #ccc; + text-decoration: none !important; + + background: #f3f3f3; /* Old browsers */ + background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */ + background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */ +} +.alert { + border-radius: 0px; +} +.alert h4 { + margin-top: 0; + margin-bottom:0; + font-family: 'Ubuntu', sans-serif !important; +} +.navbar { +border-radius: 0px; +} +.nav-tabs > li > a { +border-radius: 0px; +} +.btn { + border-radius:0px; +} +.img-thumbnail { + border-radius: 0px; +} +.breadcrumb { +border-radius: 0px; +margin-top:-20px; +font-family: 'Ubuntu', sans-serif !important; +} +.breadcrumb > li + li:before { + content: "»"; +} +.breadcrumb li.active { + font-size:18px; + color:#096; + font-family: 'Ubuntu', sans-serif !important; +} + + + +/* + * Callouts + * + * Not quite alerts, but custom and helpful notes for folks reading the docs. + * Requires a base and modifier class. + */ + +/* Common styles for all types */ +.bs-callout { + margin: 0px 0; + padding: 15px 30px 15px 15px; + border-left: 5px solid #eee; + font-family: 'Ubuntu', sans-serif !important; +} +.bs-callout.invoice-collout { + padding: 15px 30px 0px 15px; +} +.bs-callout h4 { + margin-top: 0; + margin:0px; + font-family: 'Ubuntu', sans-serif !important; +} +.bs-callout p:last-child { + margin-bottom: 0; +} +.bs-callout code, +.bs-callout .highlight { + background-color: #fff; +} + +/* Variations */ +.bs-callout-danger { + background-color: #fcf2f2; + border-color: #dFb5b4; +} +.bs-callout-warning { + background-color: #fefbed; + border-color: #f1e7bc; +} +.bs-callout-info { + background-color: #f0f7fd; + border-color: #d0e3f0; +} + + + + + + +.table { + font-family: 'Ubuntu', sans-serif !important; + border-top:0px; +} +.table thead { + background-color:#DEDEDE; + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,1),0 2px 4px rgba(0,0,0,0.08),inset 0 -1px 0 rgba(0,0,0,0.25); +-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,1),0 2px 4px rgba(0,0,0,0.08),inset 0 -1px 0 rgba(0,0,0,0.25); +box-shadow: inset 0 1px 0 rgba(255,255,255,1),0 2px 4px rgba(0,0,0,0.08),inset 0 -1px 0 rgba(0,0,0,0.25); + font-family: 'Ubuntu', sans-serif !important; + border:0px; +} +.table thead tr th { + background-color:#f0f0f0; + + font-family: 'Ubuntu', sans-serif !important; + border:0px; + + border: 1px solid #d3d3d3; + background: #e6e6e6 url(img/datatable/ui-bg.png) 50% 50% repeat-x; + font-weight: normal; + color: #555555; + +} +blockquote { + font-family: 'Ubuntu', sans-serif !important; +} + +h1,h2,h3,h4,h5,h6 { + font-family: 'Ubuntu', sans-serif !important; +} +.dropdown-menu { + border-radius:0px !important; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + font-family: 'Ubuntu', sans-serif !important; + font-size:16px; +} +.nav-tabs > li > a { + font-family: 'Ubuntu', sans-serif !important; + font-size:16px; +} +.dropdown-menu > li > a { + font-family: 'Ubuntu', sans-serif !important; + font-size:14px; +} +.space-5 [class*="col-md"] { + padding: 10px !important; +} + + + + + + +/* + * File: demo_table.css + * CVS: $Id$ + * Description: CSS descriptions for DataTables demo pages + * Author: Allan Jardine + * Created: Tue May 12 06:47:22 BST 2009 + * Modified: $Date$ by $Author$ + * Language: CSS + * Project: DataTables + * + * Copyright 2009 Allan Jardine. All Rights Reserved. + * + * *************************************************************************** + * DESCRIPTION + * + * The styles given here are suitable for the demos that are used with the standard DataTables + * distribution (see www.datatables.net). You will most likely wish to modify these styles to + * meet the layout requirements of your site. + * + * Common issues: + * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is + * no conflict between the two pagination types. If you want to use full_numbers pagination + * ensure that you either have "example_alt_pagination" as a body class name, or better yet, + * modify that selector. + * Note that the path used for Images is relative. All images are by default located in + * ../images/ - relative to this CSS file. + */ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables features + */ + + + +.dataTables_wrapper table { + background-color:#fff; +} + +.dataTables_filter label { + font-family: 'Ubuntu', sans-serif !important; + font-size:18px; +} +.dataTables_filter label input { + display:inline-block; + width: 200px; + height: 34px; + padding: 6px 12px; + font-size: 13px; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; + border-radius: 0px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + font-family: 'Ubuntu', sans-serif !important; + margin:0px; + margin-left:10px; +} + +div.DTTT_container { +position: relative; +float: left; +margin-bottom: 1em; +} + +.dataTables_wrapper { + position: relative; + clear: both; + zoom: 1; /* Feeling sorry for IE */ + border:1px solid #BCBCBC; + padding:4px; + padding-top:10px; + padding-bottom:12px; + background-color:#F7F7F7; +} + +.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 250px; + height: 30px; + margin-left: -125px; + margin-top: -15px; + padding: 14px 0 2px 0; + border: 1px solid #ddd; + text-align: center; + color: #999; + font-size: 14px; + background-color: white; +} + +.dataTables_length { + width: 100%; + float: left; + font-size:16px; + font-family: 'Ubuntu', sans-serif !important; +} +.dataTables_length label select { + font-size:24px; + font-family: 'Ubuntu', sans-serif !important; + border:1px solid #ccc; +} + +.dataTables_filter { + float: right; + text-align: right; +} + +.dataTables_info { + float: left; +} + +.dataTables_paginate { + float: right; + text-align: right; +} + +/* Pagination nested */ +.paginate_disabled_previous, .paginate_enabled_previous, +.paginate_disabled_next, .paginate_enabled_next { + height: 19px; + float: left; + cursor: pointer; + *cursor: hand; + color: #111 !important; +} +.paginate_disabled_previous:hover, .paginate_enabled_previous:hover, +.paginate_disabled_next:hover, .paginate_enabled_next:hover { + text-decoration: none !important; +} +.paginate_disabled_previous:active, .paginate_enabled_previous:active, +.paginate_disabled_next:active, .paginate_enabled_next:active { + outline: none; +} + +.paginate_disabled_previous, +.paginate_disabled_next { + color: #666 !important; +} +.paginate_disabled_previous, .paginate_enabled_previous { + padding-left: 23px; +} +.paginate_disabled_next, .paginate_enabled_next { + padding-right: 23px; + margin-left: 10px; +} + +.paginate_disabled_previous { + background: url('../img/datatable/back_disabled.png') no-repeat top left; +} + +.paginate_enabled_previous { + background: url('../img/datatable/back_enabled.png') no-repeat top left; +} +.paginate_enabled_previous:hover { + background: url('../img/datatable/back_enabled_hover.png') no-repeat top left; +} + +.paginate_disabled_next { + background: url('../img/datatable/forward_disabled.png') no-repeat top right; +} + +.paginate_enabled_next { + background: url('../img/datatable/forward_enabled.png') no-repeat top right; +} +.paginate_enabled_next:hover { + background: url('../img/datatable/forward_enabled_hover.png') no-repeat top right; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables display + */ +table.display { + margin: 0 auto; + clear: both; + width: 100%; + + /* Note Firefox 3.5 and before have a bug with border-collapse + * ( https://bugzilla.mozilla.org/show%5Fbug.cgi?id=155955 ) + * border-spacing: 0; is one possible option. Conditional-css.com is + * useful for this kind of thing + * + * Further note IE 6/7 has problems when calculating widths with border width. + * It subtracts one px relative to the other browsers from the first column, and + * adds one to the end... + * + * If you want that effect I'd suggest setting a border-top/left on th/td's and + * then filling in the gaps with other borders. + */ +} + +table.display thead th { + padding: 3px 18px 3px 10px; + border-bottom: 1px solid black; + font-weight: bold; + cursor: pointer; + * cursor: hand; +} + +table.display tfoot th { + padding: 3px 18px 3px 10px; + border-top: 1px solid black; + font-weight: bold; +} + +table.display tr.heading2 td { + border-bottom: 1px solid #aaa; +} + +table.display td { + padding: 3px 10px; +} + +table.display td.center { + text-align: center; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables sorting + */ + +.sorting_asc { + background: url('../img/datatable/sort_asc.png') no-repeat center right; +} + +.sorting_desc { + background: url('../img/datatable/sort_desc.png') no-repeat center right; +} + +.sorting { + background: url('../img/datatable/sort_both.png') no-repeat center right; +} + +.sorting_asc_disabled { + background: url('../img/datatable/sort_asc_disabled.png') no-repeat center right; +} + +.sorting_desc_disabled { + background: url('../img/datatable/sort_desc_disabled.png') no-repeat center right; +} + +table.display thead th:active, +table.display thead td:active { + outline: none; +} + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables row classes + */ +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #eeffee; +} + +table.display tr.odd.gradeC { + background-color: #ddddff; +} + +table.display tr.even.gradeC { + background-color: #eeeeff; +} + +table.display tr.odd.gradeX { + background-color: #ffdddd; +} + +table.display tr.even.gradeX { + background-color: #ffeeee; +} + +table.display tr.odd.gradeU { + background-color: #ddd; +} + +table.display tr.even.gradeU { + background-color: #eee; +} + + + + + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Misc + */ +.dataTables_scroll { + clear: both; +} + +.dataTables_scrollBody { + *margin-top: -1px; + -webkit-overflow-scrolling: touch; +} + +.top, .bottom { + padding: 15px; + background-color: #F5F5F5; + border: 1px solid #CCCCCC; +} + +.top .dataTables_info { + float: none; +} + +.clear { + clear: both; +} + +.dataTables_empty { + text-align: center; +} + +tfoot input { + margin: 0.5em 0; + width: 100%; + color: #444; +} + +tfoot input.search_init { + color: #999; +} + +td.group { + background-color: #d1cfd0; + border-bottom: 2px solid #A19B9E; + border-top: 2px solid #A19B9E; +} + +td.details { + background-color: #d1cfd0; + border: 2px solid #A19B9E; +} + + +.example_alt_pagination div.dataTables_info { + width: 40%; +} + +.paging_full_numbers { + height: 22px; + line-height: 22px; +} + +.paging_full_numbers a:active { + outline: none +} + +.paging_full_numbers a:hover { + text-decoration: none; +} + +.paging_full_numbers a.paginate_button, +.paging_full_numbers a.paginate_active { + margin-right:1px; + padding: 5px 8px; + border: 1px solid #999; + cursor: pointer; + font-size: 0.88em; + color: black !important; + -webkit-box-shadow: 1px 1px 3px #ccc; + -moz-box-shadow: 1px 1px 3px #ccc; + -ms-box-shadow: 1px 1px 3px #ccc; + -o-box-shadow: 1px 1px 3px #ccc; + box-shadow: 1px 1px 3px #ccc; + background: #ffffff; + background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); +} + +.paging_full_numbers a.paginate_button:hover { + border: 1px solid #666; + text-decoration: none !important; + + -webkit-box-shadow: 1px 1px 3px #999; + -moz-box-shadow: 1px 1px 3px #999; + -ms-box-shadow: 1px 1px 3px #999; + -o-box-shadow: 1px 1px 3px #999; + box-shadow: 1px 1px 3px #999; + + background: #f3f3f3; /* Old browsers */ + background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */ + background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */ +} + + +.paging_full_numbers a.paginate_active { + border: 2px solid #999; +} + +.paging_full_numbers a.paginate_button { + background-color: #ddd; +} + +.paging_full_numbers a.paginate_button:hover { + background-color: #ccc; + text-decoration: none !important; +} + +.paging_full_numbers a.paginate_active { + background-color: #99B3FF; +} + +table.display tr.even.row_selected td { + background-color: #B0BED9; +} + +table.display tr.odd.row_selected td { + background-color: #9FAFD1; +} + + +/* + * Sorting classes for columns + */ +/* For the standard odd/even */ + + + + + +/* For the Conditional-CSS grading rows */ +/* + Colour calculations (based off the main row colours) + Level 1: + dd > c4 + ee > d5 + Level 2: + dd > d1 + ee > e2 + */ +tr.odd.gradeA td.sorting_1 { + background-color: #c4ffc4; +} + +tr.odd.gradeA td.sorting_2 { + background-color: #d1ffd1; +} + +tr.odd.gradeA td.sorting_3 { + background-color: #d1ffd1; +} + +tr.even.gradeA td.sorting_1 { + background-color: #d5ffd5; +} + +tr.even.gradeA td.sorting_2 { + background-color: #e2ffe2; +} + +tr.even.gradeA td.sorting_3 { + background-color: #e2ffe2; +} + +tr.odd.gradeC td.sorting_1 { + background-color: #c4c4ff; +} + +tr.odd.gradeC td.sorting_2 { + background-color: #d1d1ff; +} + +tr.odd.gradeC td.sorting_3 { + background-color: #d1d1ff; +} + +tr.even.gradeC td.sorting_1 { + background-color: #d5d5ff; +} + +tr.even.gradeC td.sorting_2 { + background-color: #e2e2ff; +} + +tr.even.gradeC td.sorting_3 { + background-color: #e2e2ff; +} + +tr.odd.gradeX td.sorting_1 { + background-color: #ffc4c4; +} + +tr.odd.gradeX td.sorting_2 { + background-color: #ffd1d1; +} + +tr.odd.gradeX td.sorting_3 { + background-color: #ffd1d1; +} + +tr.even.gradeX td.sorting_1 { + background-color: #ffd5d5; +} + +tr.even.gradeX td.sorting_2 { + background-color: #ffe2e2; +} + +tr.even.gradeX td.sorting_3 { + background-color: #ffe2e2; +} + +tr.odd.gradeU td.sorting_1 { + background-color: #c4c4c4; +} + +tr.odd.gradeU td.sorting_2 { + background-color: #d1d1d1; +} + +tr.odd.gradeU td.sorting_3 { + background-color: #d1d1d1; +} + +tr.even.gradeU td.sorting_1 { + background-color: #d5d5d5; +} + +tr.even.gradeU td.sorting_2 { + background-color: #e2e2e2; +} + +tr.even.gradeU td.sorting_3 { + background-color: #e2e2e2; +} + + +/* + * Row highlighting example + */ +.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted { + background-color: #ECFFB3; +} + +.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted { + background-color: #E6FF99; +} + +.ex_highlight_row #example tr.even:hover { + background-color: #ECFFB3; +} + +.ex_highlight_row #example tr.even:hover td.sorting_1 { + background-color: #DDFF75; +} + +.ex_highlight_row #example tr.even:hover td.sorting_2 { + background-color: #E7FF9E; +} + +.ex_highlight_row #example tr.even:hover td.sorting_3 { + background-color: #E2FF89; +} + +.ex_highlight_row #example tr.odd:hover { + background-color: #E6FF99; +} + +.ex_highlight_row #example tr.odd:hover td.sorting_1 { + background-color: #D6FF5C; +} + +.ex_highlight_row #example tr.odd:hover td.sorting_2 { + background-color: #E0FF84; +} + +.ex_highlight_row #example tr.odd:hover td.sorting_3 { + background-color: #DBFF70; +} + + +/* + * KeyTable + */ +table.KeyTable td { + border: 3px solid transparent; +} + +table.KeyTable td.focus { + border: 3px solid #3366FF; +} + +table.display tr.gradeA { + background-color: #eeffee; +} + +table.display tr.gradeC { + background-color: #ddddff; +} + +table.display tr.gradeX { + background-color: #ffdddd; +} + +table.display tr.gradeU { + background-color: #ddd; +} + +table.table thead .sorting, +table.table thead .sorting_asc, +table.table thead .sorting_desc, +table.table thead .sorting_asc_disabled, +table.table thead .sorting_desc_disabled { + cursor: pointer; + *cursor: hand; +} + +table.table thead { + border-top:1px solid #ccc; +} + +table.table thead tr th { + background: #e6e6e6 url(../img/datatable/ui-bg.png) 50% 50% repeat-x; +} + +table.table thead .sorting { + background: url('../img/datatable/sort_both.png') no-repeat center right; + border: 1px solid #d3d3d3; + background: #e6e6e6 url(../img/datatable/ui-bg.png) 50% 50% repeat-x; + font-weight: normal; + color: #555555; } + +table.table thead .sorting_asc { background: url('../img/datatable/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('../img/datatable/sort_desc.png') no-repeat center right; } + +table.table thead .sorting_asc_disabled { background: url('../img/datatable/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('../img/datatable/sort_desc_disabled.png') no-repeat center right; } + + + + + + + + + +/* line 7, ../sass/lightbox.sass */ +body:after { + content: url(../img/close.png) url(../img/loading.gif) url(../img/prev.png) url(../img/next.png); + display: none; +} + +/* line 11, ../sass/lightbox.sass */ +.lightboxOverlay { + position: absolute; + top: 0; + left: 0; + z-index: 9999; + background-color: black; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); + opacity: 0.8; + display: none; +} + +/* line 20, ../sass/lightbox.sass */ +.lightbox { + position: absolute; + left: 0; + width: 100%; + z-index: 10000; + text-align: center; + line-height: 0; + font-weight: normal; +} +/* line 28, ../sass/lightbox.sass */ +.lightbox .lb-image { + display: block; + height: auto; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; +} +/* line 32, ../sass/lightbox.sass */ +.lightbox a img { + border: none; +} + +/* line 35, ../sass/lightbox.sass */ +.lb-outerContainer { + position: relative; + background-color: white; + *zoom: 1; + width: 250px; + height: 250px; + margin: 0 auto; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; +} +/* line 38, ../../../../.rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.2/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */ +.lb-outerContainer:after { + content: ""; + display: table; + clear: both; +} + +/* line 44, ../sass/lightbox.sass */ +.lb-container { + padding: 4px; +} + +/* line 47, ../sass/lightbox.sass */ +.lb-loader { + position: absolute; + top: 43%; + left: 0%; + height: 25%; + width: 100%; + text-align: center; + line-height: 0; +} + +/* line 56, ../sass/lightbox.sass */ +.lb-cancel { + display: block; + width: 32px; + height: 32px; + margin: 0 auto; + background: url(../img/loading.gif) no-repeat; +} + +/* line 63, ../sass/lightbox.sass */ +.lb-nav { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 10; +} + +/* line 71, ../sass/lightbox.sass */ +.lb-container > .nav { + left: 0; +} + +/* line 74, ../sass/lightbox.sass */ +.lb-nav a { + outline: none; +} + +/* line 77, ../sass/lightbox.sass */ +.lb-prev, .lb-next { + width: 49%; + height: 100%; + cursor: pointer; + /* Trick IE into showing hover */ + display: block; +} + +/* line 84, ../sass/lightbox.sass */ +.lb-prev { + left: 0; + float: left; +} +/* line 87, ../sass/lightbox.sass */ +.lb-prev:hover { + background: url(../img/prev.png) left 48% no-repeat; +} + +/* line 90, ../sass/lightbox.sass */ +.lb-next { + right: 0; + float: right; +} +/* line 93, ../sass/lightbox.sass */ +.lb-next:hover { + background: url(../img/next.png) right 48% no-repeat; +} + +/* line 96, ../sass/lightbox.sass */ +.lb-dataContainer { + margin: 0 auto; + padding-top: 5px; + *zoom: 1; + width: 100%; + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; +} +/* line 38, ../../../../.rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.2/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */ +.lb-dataContainer:after { + content: ""; + display: table; + clear: both; +} + +/* line 103, ../sass/lightbox.sass */ +.lb-data { + padding: 0 4px; + color: #bbbbbb; +} +/* line 106, ../sass/lightbox.sass */ +.lb-data .lb-details { + width: 85%; + float: left; + text-align: left; + line-height: 1.1em; +} +/* line 111, ../sass/lightbox.sass */ +.lb-data .lb-caption { + font-size: 13px; + font-weight: bold; + line-height: 1em; +} +/* line 115, ../sass/lightbox.sass */ +.lb-data .lb-number { + display: block; + clear: left; + padding-bottom: 1em; + font-size: 12px; + color: #999999; +} +/* line 121, ../sass/lightbox.sass */ +.lb-data .lb-close { + display: block; + float: right; + width: 30px; + height: 30px; + background: url(../img/close.png) top right no-repeat; + text-align: right; + outline: none; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70); + opacity: 0.7; +} +/* line 130, ../sass/lightbox.sass */ +.lb-data .lb-close:hover { + cursor: pointer; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + opacity: 1; +} + + + + + + + + diff --git a/theme/css/bootstrap-theme.css b/theme/css/bootstrap-theme.css new file mode 100755 index 0000000..ad11735 --- /dev/null +++ b/theme/css/bootstrap-theme.css @@ -0,0 +1,384 @@ +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.btn-default:active, +.btn-primary:active, +.btn-success:active, +.btn-info:active, +.btn-warning:active, +.btn-danger:active, +.btn-default.active, +.btn-primary.active, +.btn-success.active, +.btn-info.active, +.btn-warning.active, +.btn-danger.active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn:active, +.btn.active { + background-image: none; +} + +.btn-default { + text-shadow: 0 1px 0 #fff; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, 0%, #e6e6e6, 100%); + background-image: -moz-linear-gradient(top, #ffffff 0%, #e6e6e6 100%); + background-image: linear-gradient(to bottom, #ffffff 0%, #e6e6e6 100%); + background-repeat: repeat-x; + border-color: #e0e0e0; + border-color: #ccc; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); +} + +.btn-default:active, +.btn-default.active { + background-color: #e6e6e6; + border-color: #e0e0e0; +} + +.btn-primary { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); + background-repeat: repeat-x; + border-color: #2d6ca2; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); +} + +.btn-primary:active, +.btn-primary.active { + background-color: #3071a9; + border-color: #2d6ca2; +} + +.btn-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44)); + background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%); + background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + background-repeat: repeat-x; + border-color: #419641; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); +} + +.btn-success:active, +.btn-success.active { + background-color: #449d44; + border-color: #419641; +} + +.btn-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f)); + background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%); + background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + background-repeat: repeat-x; + border-color: #eb9316; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); +} + +.btn-warning:active, +.btn-warning.active { + background-color: #ec971f; + border-color: #eb9316; +} + +.btn-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c)); + background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%); + background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + background-repeat: repeat-x; + border-color: #c12e2a; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); +} + +.btn-danger:active, +.btn-danger.active { + background-color: #c9302c; + border-color: #c12e2a; +} + +.btn-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5)); + background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%); + background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + background-repeat: repeat-x; + border-color: #2aabd2; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); +} + +.btn-info:active, +.btn-info.active { + background-color: #31b0d5; + border-color: #2aabd2; +} + +.thumbnail, +.img-thumbnail { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-color: #357ebd; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); +} + +.navbar { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#f8f8f8)); + background-image: -webkit-linear-gradient(top, #ffffff, 0%, #f8f8f8, 100%); + background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); + background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); + background-repeat: repeat-x; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); +} + +.navbar .navbar-nav > .active > a { + background-color: #f8f8f8; +} + +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); +} + +.navbar-inverse { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222)); + background-image: -webkit-linear-gradient(top, #3c3c3c, 0%, #222222, 100%); + background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); +} + +.navbar-inverse .navbar-nav > .active > a { + background-color: #222222; +} + +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} + +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.alert-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#c8e5bc)); + background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #c8e5bc, 100%); + background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + background-repeat: repeat-x; + border-color: #b2dba1; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); +} + +.alert-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#b9def0)); + background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #b9def0, 100%); + background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + background-repeat: repeat-x; + border-color: #9acfea; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); +} + +.alert-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#f8efc0)); + background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #f8efc0, 100%); + background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + background-repeat: repeat-x; + border-color: #f5e79e; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); +} + +.alert-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#e7c3c3)); + background-image: -webkit-linear-gradient(top, #f2dede, 0%, #e7c3c3, 100%); + background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + background-repeat: repeat-x; + border-color: #dca7a7; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); +} + +.progress { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ebebeb, 0%, #f5f5f5, 100%); + background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); +} + +.progress-bar { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); +} + +.progress-bar-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44)); + background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%); + background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); +} + +.progress-bar-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5)); + background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%); + background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); +} + +.progress-bar-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f)); + background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%); + background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); +} + +.progress-bar-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c)); + background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%); + background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); +} + +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #3071a9; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3278b3)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3278b3, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%); + background-repeat: repeat-x; + border-color: #3278b3; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0); +} + +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.panel-default > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8)); + background-image: -webkit-linear-gradient(top, #f5f5f5, 0%, #e8e8e8, 100%); + background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); +} + +.panel-primary > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); +} + +.panel-success > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#d0e9c6)); + background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #d0e9c6, 100%); + background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); +} + +.panel-info > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#c4e3f3)); + background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #c4e3f3, 100%); + background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); +} + +.panel-warning > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#faf2cc)); + background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #faf2cc, 100%); + background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); +} + +.panel-danger > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#ebcccc)); + background-image: -webkit-linear-gradient(top, #f2dede, 0%, #ebcccc, 100%); + background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); +} + +.well { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#e8e8e8), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #e8e8e8, 0%, #f5f5f5, 100%); + background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + background-repeat: repeat-x; + border-color: #dcdcdc; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); +} \ No newline at end of file diff --git a/theme/css/bootstrap-theme.min.css b/theme/css/bootstrap-theme.min.css new file mode 100755 index 0000000..cad36b4 --- /dev/null +++ b/theme/css/bootstrap-theme.min.css @@ -0,0 +1 @@ +.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,0%,#e6e6e6,100%);background-image:-moz-linear-gradient(top,#fff 0,#e6e6e6 100%);background-image:linear-gradient(to bottom,#fff 0,#e6e6e6 100%);background-repeat:repeat-x;border-color:#e0e0e0;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0)}.btn-default:active,.btn-default.active{background-color:#e6e6e6;border-color:#e0e0e0}.btn-primary{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca,0%,#3071a9,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;border-color:#2d6ca2;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.btn-primary:active,.btn-primary.active{background-color:#3071a9;border-color:#2d6ca2}.btn-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c,0%,#449d44,100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;border-color:#419641;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.btn-success:active,.btn-success.active{background-color:#449d44;border-color:#419641}.btn-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e,0%,#ec971f,100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;border-color:#eb9316;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.btn-warning:active,.btn-warning.active{background-color:#ec971f;border-color:#eb9316}.btn-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f,0%,#c9302c,100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;border-color:#c12e2a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.btn-danger:active,.btn-danger.active{background-color:#c9302c;border-color:#c12e2a}.btn-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de,0%,#31b0d5,100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;border-color:#2aabd2;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.btn-info:active,.btn-info.active{background-color:#31b0d5;border-color:#2aabd2}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca,0%,#357ebd,100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#f8f8f8));background-image:-webkit-linear-gradient(top,#fff,0%,#f8f8f8,100%);background-image:-moz-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar .navbar-nav>.active>a{background-color:#f8f8f8}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-gradient(linear,left 0,left 100%,from(#3c3c3c),to(#222));background-image:-webkit-linear-gradient(top,#3c3c3c,0%,#222,100%);background-image:-moz-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0)}.navbar-inverse .navbar-nav>.active>a{background-color:#222}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#c8e5bc));background-image:-webkit-linear-gradient(top,#dff0d8,0%,#c8e5bc,100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#b9def0));background-image:-webkit-linear-gradient(top,#d9edf7,0%,#b9def0,100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#f8efc0));background-image:-webkit-linear-gradient(top,#fcf8e3,0%,#f8efc0,100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#e7c3c3));background-image:-webkit-linear-gradient(top,#f2dede,0%,#e7c3c3,100%);background-image:-moz-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#ebebeb,0%,#f5f5f5,100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca,0%,#3071a9,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c,0%,#449d44,100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de,0%,#31b0d5,100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e,0%,#ec971f,100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f,0%,#c9302c,100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3278b3));background-image:-webkit-linear-gradient(top,#428bca,0%,#3278b3,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5,0%,#e8e8e8,100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca,0%,#357ebd,100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#d0e9c6));background-image:-webkit-linear-gradient(top,#dff0d8,0%,#d0e9c6,100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#c4e3f3));background-image:-webkit-linear-gradient(top,#d9edf7,0%,#c4e3f3,100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#faf2cc));background-image:-webkit-linear-gradient(top,#fcf8e3,0%,#faf2cc,100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#ebcccc));background-image:-webkit-linear-gradient(top,#f2dede,0%,#ebcccc,100%);background-image:-moz-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-gradient(linear,left 0,left 100%,from(#e8e8e8),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#e8e8e8,0%,#f5f5f5,100%);background-image:-moz-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)} \ No newline at end of file diff --git a/theme/css/bootstrap.css b/theme/css/bootstrap.css new file mode 100755 index 0000000..10b5fb7 --- /dev/null +++ b/theme/css/bootstrap.css @@ -0,0 +1,6805 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +video { + display: inline-block; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden] { + display: none; +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a:focus { + outline: thin dotted; +} + +a:active, +a:hover { + outline: 0; +} + +h1 { + margin: 0.67em 0; + font-size: 2em; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +hr { + height: 0; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +mark { + color: #000; + background: #ff0; +} + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +pre { + white-space: pre-wrap; +} + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +legend { + padding: 0; + border: 0; +} + +button, +input, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: 100%; +} + +button, +input { + line-height: normal; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +input[type="checkbox"], +input[type="radio"] { + padding: 0; + box-sizing: border-box; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: #fff !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + color: #333333; + background-color: #ffffff; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input, +select[multiple], +textarea { + background-image: none; +} + +a { + color: #428bca; + text-decoration: none; +} + +a:hover, +a:focus { + color: #2a6496; + text-decoration: underline; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +img { + vertical-align: middle; +} + +.img-responsive { + display: block; + height: auto; + max-width: 100%; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + display: inline-block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0 0 0 0); + border: 0; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 16.099999999999998px; + font-weight: 200; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} + +small { + font-size: 85%; +} + +cite { + font-style: normal; +} + +.text-muted { + color: #999999; +} + +.text-primary { + color: #428bca; +} + +.text-warning { + color: #c09853; +} + +.text-danger { + color: #b94a48; +} + +.text-success { + color: #468847; +} + +.text-info { + color: #3a87ad; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +h4, +h5, +h6 { + margin-top: 10px; + margin-bottom: 10px; +} + +h1, +.h1 { + font-size: 36px; +} + +h2, +.h2 { + font-size: 30px; +} + +h3, +.h3 { + font-size: 24px; +} + +h4, +.h4 { + font-size: 18px; +} + +h5, +.h5 { + font-size: 14px; +} + +h6, +.h6 { + font-size: 12px; +} + +h1 small, +.h1 small { + font-size: 24px; +} + +h2 small, +.h2 small { + font-size: 18px; +} + +h3 small, +.h3 small, +h4 small, +.h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 1.428571429; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +blockquote small { + display: block; + line-height: 1.428571429; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} + +code, +pre { + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + white-space: nowrap; + background-color: #f9f2f4; + border-radius: 4px; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + color: #333333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.row { + margin-right: -15px; + margin-left: -15px; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11 { + float: left; +} + +.col-xs-1 { + width: 8.333333333333332%; +} + +.col-xs-2 { + width: 16.666666666666664%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-4 { + width: 33.33333333333333%; +} + +.col-xs-5 { + width: 41.66666666666667%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-7 { + width: 58.333333333333336%; +} + +.col-xs-8 { + width: 66.66666666666666%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-10 { + width: 83.33333333333334%; +} + +.col-xs-11 { + width: 91.66666666666666%; +} + +.col-xs-12 { + width: 100%; +} + +@media (min-width: 768px) { + .container { + max-width: 750px; + } + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11 { + float: left; + } + .col-sm-1 { + width: 8.333333333333332%; + } + .col-sm-2 { + width: 16.666666666666664%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-4 { + width: 33.33333333333333%; + } + .col-sm-5 { + width: 41.66666666666667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-7 { + width: 58.333333333333336%; + } + .col-sm-8 { + width: 66.66666666666666%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-10 { + width: 83.33333333333334%; + } + .col-sm-11 { + width: 91.66666666666666%; + } + .col-sm-12 { + width: 100%; + } + .col-sm-push-1 { + left: 8.333333333333332%; + } + .col-sm-push-2 { + left: 16.666666666666664%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-4 { + left: 33.33333333333333%; + } + .col-sm-push-5 { + left: 41.66666666666667%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-7 { + left: 58.333333333333336%; + } + .col-sm-push-8 { + left: 66.66666666666666%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-10 { + left: 83.33333333333334%; + } + .col-sm-push-11 { + left: 91.66666666666666%; + } + .col-sm-pull-1 { + right: 8.333333333333332%; + } + .col-sm-pull-2 { + right: 16.666666666666664%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-4 { + right: 33.33333333333333%; + } + .col-sm-pull-5 { + right: 41.66666666666667%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-7 { + right: 58.333333333333336%; + } + .col-sm-pull-8 { + right: 66.66666666666666%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-10 { + right: 83.33333333333334%; + } + .col-sm-pull-11 { + right: 91.66666666666666%; + } + .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } + .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } +} + +@media (min-width: 992px) { + .container { + max-width: 970px; + } + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11 { + float: left; + } + .col-md-1 { + width: 8.333333333333332%; + } + .col-md-2 { + width: 16.666666666666664%; + } + .col-md-3 { + width: 25%; + } + .col-md-4 { + width: 33.33333333333333%; + } + .col-md-5 { + width: 41.66666666666667%; + } + .col-md-6 { + width: 50%; + } + .col-md-7 { + width: 58.333333333333336%; + } + .col-md-8 { + width: 66.66666666666666%; + } + .col-md-9 { + width: 75%; + } + .col-md-10 { + width: 83.33333333333334%; + } + .col-md-11 { + width: 91.66666666666666%; + } + .col-md-12 { + width: 100%; + } + .col-md-push-0 { + left: auto; + } + .col-md-push-1 { + left: 8.333333333333332%; + } + .col-md-push-2 { + left: 16.666666666666664%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-4 { + left: 33.33333333333333%; + } + .col-md-push-5 { + left: 41.66666666666667%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-7 { + left: 58.333333333333336%; + } + .col-md-push-8 { + left: 66.66666666666666%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-10 { + left: 83.33333333333334%; + } + .col-md-push-11 { + left: 91.66666666666666%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-pull-1 { + right: 8.333333333333332%; + } + .col-md-pull-2 { + right: 16.666666666666664%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-4 { + right: 33.33333333333333%; + } + .col-md-pull-5 { + right: 41.66666666666667%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-7 { + right: 58.333333333333336%; + } + .col-md-pull-8 { + right: 66.66666666666666%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-10 { + right: 83.33333333333334%; + } + .col-md-pull-11 { + right: 91.66666666666666%; + } + .col-md-offset-0 { + margin-left: 0; + } + .col-md-offset-1 { + margin-left: 8.333333333333332%; + } + .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .col-md-offset-11 { + margin-left: 91.66666666666666%; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1000px; + } + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11 { + float: left; + } + .col-lg-1 { + width: 8.333333333333332%; + } + .col-lg-2 { + width: 16.666666666666664%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-4 { + width: 33.33333333333333%; + } + .col-lg-5 { + width: 41.66666666666667%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-7 { + width: 58.333333333333336%; + } + .col-lg-8 { + width: 66.66666666666666%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-10 { + width: 83.33333333333334%; + } + .col-lg-11 { + width: 91.66666666666666%; + } + .col-lg-12 { + width: 100%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-push-1 { + left: 8.333333333333332%; + } + .col-lg-push-2 { + left: 16.666666666666664%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-4 { + left: 33.33333333333333%; + } + .col-lg-push-5 { + left: 41.66666666666667%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-7 { + left: 58.333333333333336%; + } + .col-lg-push-8 { + left: 66.66666666666666%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-10 { + left: 83.33333333333334%; + } + .col-lg-push-11 { + left: 91.66666666666666%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-pull-1 { + right: 8.333333333333332%; + } + .col-lg-pull-2 { + right: 16.666666666666664%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-4 { + right: 33.33333333333333%; + } + .col-lg-pull-5 { + right: 41.66666666666667%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-7 { + right: 58.333333333333336%; + } + .col-lg-pull-8 { + right: 66.66666666666666%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-10 { + right: 83.33333333333334%; + } + .col-lg-pull-11 { + right: 91.66666666666666%; + } + .col-lg-offset-0 { + margin-left: 0; + } + .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } + .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } +} + +table { + max-width: 100%; + background-color: transparent; +} + +th { + text-align: left; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table thead > tr > th, +.table tbody > tr > th, +.table tfoot > tr > th, +.table thead > tr > td, +.table tbody > tr > td, +.table tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} + +.table caption + thead tr:first-child th, +.table colgroup + thead tr:first-child th, +.table thead:first-child tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed thead > tr > th, +.table-condensed tbody > tr > th, +.table-condensed tfoot > tr > th, +.table-condensed thead > tr > td, +.table-condensed tbody > tr > td, +.table-condensed tfoot > tr > td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover > td, +.table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} + +table col[class*="col-"] { + display: table-column; + float: none; +} + +table td[class*="col-"], +table th[class*="col-"] { + display: table-cell; + float: none; +} + +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} + +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td { + background-color: #d0e9c6; + border-color: #c9e2b3; +} + +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; + border-color: #eed3d7; +} + +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td { + background-color: #ebcccc; + border-color: #e6c1c7; +} + +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td { + background-color: #faf2cc; + border-color: #f8e5be; +} + +@media (max-width: 768px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-x: scroll; + overflow-y: hidden; + border: 1px solid #dddddd; + } + .table-responsive > .table { + margin-bottom: 0; + background-color: #fff; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > thead > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > thead > tr:last-child > td, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} + +input[type="file"] { + display: block; +} + +select[multiple], +select[size] { + height: auto; +} + +select optgroup { + font-family: inherit; + font-size: inherit; + font-style: inherit; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + height: auto; +} + +.form-control:-moz-placeholder { + color: #999999; +} + +.form-control::-moz-placeholder { + color: #999999; +} + +.form-control:-ms-input-placeholder { + color: #999999; +} + +.form-control::-webkit-input-placeholder { + color: #999999; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + display: block; + min-height: 20px; + padding-left: 20px; + margin-top: 10px; + margin-bottom: 10px; + vertical-align: middle; +} + +.radio label, +.checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +.radio[disabled], +.radio-inline[disabled], +.checkbox[disabled], +.checkbox-inline[disabled], +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] .radio, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm { + height: auto; +} + +.input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-lg { + height: 45px; + line-height: 45px; +} + +textarea.input-lg { + height: auto; +} + +.has-warning .help-block, +.has-warning .control-label { + color: #c09853; +} + +.has-warning .form-control { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-warning .form-control:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.has-warning .input-group-addon { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.has-error .help-block, +.has-error .control-label { + color: #b94a48; +} + +.has-error .form-control { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-error .form-control:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.has-error .input-group-addon { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.has-success .help-block, +.has-success .control-label { + color: #468847; +} + +.has-success .form-control { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-success .form-control:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.has-success .input-group-addon { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.form-control-static { + padding-top: 7px; + margin-bottom: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +.form-horizontal .control-label, +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; +} + +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} + +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} + +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} + +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} + +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} + +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} + +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #39b3d7; + border-color: #269abc; +} + +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-link { + font-weight: normal; + color: #428bca; + cursor: pointer; + border-radius: 0; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link:hover, +.btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #999999; + text-decoration: none; +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-sm, +.btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-xs { + padding: 1px 5px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-weight: normal; + line-height: 1; +} + +.glyphicon-asterisk:before { + content: "\2a"; +} + +.glyphicon-plus:before { + content: "\2b"; +} + +.glyphicon-euro:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +.glyphicon-briefcase:before { + content: "\1f4bc"; +} + +.glyphicon-calendar:before { + content: "\1f4c5"; +} + +.glyphicon-pushpin:before { + content: "\1f4cc"; +} + +.glyphicon-paperclip:before { + content: "\1f4ce"; +} + +.glyphicon-camera:before { + content: "\1f4f7"; +} + +.glyphicon-lock:before { + content: "\1f512"; +} + +.glyphicon-bell:before { + content: "\1f514"; +} + +.glyphicon-bookmark:before { + content: "\1f516"; +} + +.glyphicon-fire:before { + content: "\1f525"; +} + +.glyphicon-wrench:before { + content: "\1f527"; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-bottom: 0 dotted; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + list-style: none; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; + outline: 0; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999999; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} + +.btn-default .caret { + border-top-color: #333333; +} + +.btn-primary .caret, +.btn-success .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret { + border-top-color: #fff; +} + +.dropup .btn-default .caret { + border-bottom-color: #333333; +} + +.dropup .btn-primary .caret, +.dropup .btn-success .caret, +.dropup .btn-warning .caret, +.dropup .btn-danger .caret, +.dropup .btn-info .caret { + border-bottom-color: #fff; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} + +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus { + outline: none; +} + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar .btn-group { + float: left; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group, +.btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group > .btn-group { + float: left; +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group-xs > .btn { + padding: 5px 10px; + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group > .btn { + float: none; +} + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-right-radius: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 0; +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group-vertical > .btn-group:first-child > .btn:last-child, +.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.btn-group-justified { + display: table; + width: 100%; + border-collapse: separate; + table-layout: fixed; +} + +.btn-group-justified .btn { + display: table-cell; + float: none; + width: 1%; +} + +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group.col { + float: none; + padding-right: 0; + padding-left: 0; +} + +.input-group .form-control { + width: 100%; + margin-bottom: 0; +} + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} + +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn { + height: auto; +} + +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} + +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn { + height: auto; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} + +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + white-space: nowrap; +} + +.input-group-btn > .btn { + position: relative; +} + +.input-group-btn > .btn + .btn { + margin-left: -4px; +} + +.input-group-btn > .btn:hover, +.input-group-btn > .btn:active { + z-index: 2; +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav > li { + position: relative; + display: block; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li.disabled > a { + color: #999999; +} + +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #428bca; +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.nav > li > a > img { + max-width: none; +} + +.nav-tabs { + border-bottom: 1px solid #dddddd; +} + +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} + +.nav-tabs.nav-justified > li { + float: none; +} + +.nav-tabs.nav-justified > li > a { + text-align: center; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } +} + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-bottom: 1px solid #dddddd; +} + +.nav-tabs.nav-justified > .active > a { + border-bottom-color: #ffffff; +} + +.nav-pills > li { + float: left; +} + +.nav-pills > li > a { + border-radius: 5px; +} + +.nav-pills > li + li { + margin-left: 2px; +} + +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #428bca; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} + +.nav-justified { + width: 100%; +} + +.nav-justified > li { + float: none; +} + +.nav-justified > li > a { + text-align: center; +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } +} + +.nav-tabs-justified { + border-bottom: 0; +} + +.nav-tabs-justified > li > a { + margin-right: 0; + border-bottom: 1px solid #dddddd; +} + +.nav-tabs-justified > .active > a { + border-bottom-color: #ffffff; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: " "; +} + +.tabbable:after { + clear: both; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: " "; +} + +.tabbable:after { + clear: both; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.nav .caret { + border-top-color: #428bca; + border-bottom-color: #428bca; +} + +.nav a:hover .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar { + position: relative; + z-index: 1000; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + max-height: 340px; + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-collapse .navbar-nav.navbar-left:first-child { + margin-left: -15px; + } + .navbar-collapse .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } + .navbar-collapse .navbar-text:last-child { + margin-right: 0; + } +} + +.container > .navbar-header, +.container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, + .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + z-index: 1030; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; +} + +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7.5px -15px; +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); +} + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-nav.pull-right > li > .dropdown-menu, +.navbar-nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} + +.navbar-text { + float: left; + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width: 768px) { + .navbar-text { + margin-right: 15px; + margin-left: 15px; + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} + +.navbar-default .navbar-brand { + color: #777777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777777; +} + +.navbar-default .navbar-nav > li > a { + color: #777777; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #dddddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e6e6e6; +} + +.navbar-default .navbar-nav > .dropdown > a:hover .caret, +.navbar-default .navbar-nav > .dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .open > a .caret, +.navbar-default .navbar-nav > .open > a:hover .caret, +.navbar-default .navbar-nav > .open > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777777; +} + +.navbar-default .navbar-link:hover { + color: #333333; +} + +.navbar-inverse { + background-color: #222222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #999999; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} + +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} + +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .navbar-nav > .open > a .caret, +.navbar-inverse .navbar-nav > .open > a:hover .caret, +.navbar-inverse .navbar-nav > .open > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999999; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #cccccc; + content: "/\00a0"; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} + +.pagination > li { + display: inline; +} + +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + background-color: #eeeeee; +} + +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + cursor: default; + background-color: #428bca; + border-color: #428bca; +} + +.pagination > .disabled > span, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; + border-color: #dddddd; +} + +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +.label[href]:hover, +.label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.label-default { + background-color: #999999; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #808080; +} + +.label-primary { + background-color: #428bca; +} + +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #3071a9; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.btn .badge { + position: relative; + top: -1px; +} + +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #428bca; + background-color: #ffffff; +} + +.nav-pills > li > a > .badge { + margin-left: 3px; +} + +.jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #eeeeee; +} + +.jumbotron h1 { + line-height: 1; + color: inherit; +} + +.jumbotron p { + line-height: 1.4; +} + +.container .jumbotron { + border-radius: 6px; +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1 { + font-size: 63px; + } +} + +.thumbnail { + display: inline-block; + display: block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.thumbnail > img { + display: block; + height: auto; + max-width: 100%; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #428bca; +} + +.thumbnail > img { + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #333333; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} + +.alert h4 { + margin-top: 0; + color: inherit; +} + +.alert .alert-link { + font-weight: bold; +} + +.alert > p, +.alert > ul { + margin-bottom: 0; +} + +.alert > p + p { + margin-top: 5px; +} + +.alert-dismissable { + padding-right: 35px; +} + +.alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success hr { + border-top-color: #c9e2b3; +} + +.alert-success .alert-link { + color: #356635; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info hr { + border-top-color: #a6e1ec; +} + +.alert-info .alert-link { + color: #2d6987; +} + +.alert-warning { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.alert-warning hr { + border-top-color: #f8e5be; +} + +.alert-warning .alert-link { + color: #a47e3c; +} + +.alert-danger { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger hr { + border-top-color: #e6c1c7; +} + +.alert-danger .alert-link { + color: #953b39; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .progress-bar { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} + +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-warning { + background-color: #f0ad4e; +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-danger { + background-color: #d9534f; +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + padding-left: 0; + margin-bottom: 20px; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.list-group-item > .badge { + float: right; +} + +.list-group-item > .badge + .badge { + margin-right: 5px; +} + +a.list-group-item { + color: #555555; +} + +a.list-group-item .list-group-item-heading { + color: #333333; +} + +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} + +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.panel-body { + padding: 15px; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel > .list-group { + margin-bottom: 0; +} + +.panel > .list-group .list-group-item { + border-width: 1px 0; +} + +.panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} + +.panel > .table { + margin-bottom: 0; +} + +.panel > .panel-body + .table { + border-top: 1px solid #dddddd; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; +} + +.panel-title > a { + color: inherit; +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel-group .panel { + margin-bottom: 0; + overflow: hidden; + border-radius: 4px; +} + +.panel-group .panel + .panel { + margin-top: 5px; +} + +.panel-group .panel-heading { + border-bottom: 0; +} + +.panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} + +.panel-default { + border-color: #dddddd; +} + +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} + +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} + +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} + +.panel-primary { + border-color: #428bca; +} + +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #428bca; +} + +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #428bca; +} + +.panel-success { + border-color: #d6e9c6; +} + +.panel-success > .panel-heading { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} + +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-warning { + border-color: #fbeed5; +} + +.panel-warning > .panel-heading { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #fbeed5; +} + +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #fbeed5; +} + +.panel-danger { + border-color: #eed3d7; +} + +.panel-danger > .panel-heading { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #eed3d7; +} + +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #eed3d7; +} + +.panel-info { + border-color: #bce8f1; +} + +.panel-info > .panel-heading { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} + +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-lg { + padding: 24px; + border-radius: 6px; +} + +.well-sm { + padding: 9px; + border-radius: 3px; +} + +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +body.modal-open, +.modal-open .navbar-fixed-top, +.modal-open .navbar-fixed-bottom { + margin-right: 15px; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: auto; + overflow-y: scroll; +} + +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-dialog { + z-index: 1050; + width: auto; + padding: 10px; + margin-right: auto; + margin-left: auto; +} + +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} + +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} + +.modal-header { + min-height: 16.428571429px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.428571429; +} + +.modal-body { + position: relative; + padding: 20px; +} + +.modal-footer { + padding: 19px 20px 20px; + margin-top: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +@media screen and (min-width: 768px) { + .modal-dialog { + right: auto; + left: 50%; + width: 600px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-right .tooltip-arrow { + right: 5px; + bottom: 0; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; + content: " "; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; + content: " "; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; + content: " "; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; + content: " "; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + height: auto; + max-width: 100%; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.left { + background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + left: 50%; + z-index: 5; + display: inline-block; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} + +.carousel-control .icon-prev:before { + content: '\2039'; +} + +.carousel-control .icon-next:before { + content: '\203a'; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + border: 1px solid #ffffff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #ffffff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media screen and (min-width: 768px) { + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after { + display: table; + content: " "; +} + +.clearfix:after { + clear: both; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.hide { + display: none !important; +} + +.show { + display: block !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.affix { + position: fixed; +} + +@-ms-viewport { + width: device-width; +} + +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px; + } +} + +.hidden { + display: none !important; + visibility: hidden !important; +} + +.visible-xs { + display: none !important; +} + +tr.visible-xs { + display: none !important; +} + +th.visible-xs, +td.visible-xs { + display: none !important; +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} + +.visible-sm { + display: none !important; +} + +tr.visible-sm { + display: none !important; +} + +th.visible-sm, +td.visible-sm { + display: none !important; +} + +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} + +.visible-md { + display: none !important; +} + +tr.visible-md { + display: none !important; +} + +th.visible-md, +td.visible-md { + display: none !important; +} + +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} + +.visible-lg { + display: none !important; +} + +tr.visible-lg { + display: none !important; +} + +th.visible-lg, +td.visible-lg { + display: none !important; +} + +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} + +.hidden-xs { + display: block !important; +} + +tr.hidden-xs { + display: table-row !important; +} + +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + tr.hidden-xs { + display: none !important; + } + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important; + } + tr.hidden-xs.hidden-sm { + display: none !important; + } + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important; + } + tr.hidden-xs.hidden-md { + display: none !important; + } + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important; + } + tr.hidden-xs.hidden-lg { + display: none !important; + } + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} + +.hidden-sm { + display: block !important; +} + +tr.hidden-sm { + display: table-row !important; +} + +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important; + } + tr.hidden-sm.hidden-xs { + display: none !important; + } + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } + tr.hidden-sm { + display: none !important; + } + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important; + } + tr.hidden-sm.hidden-md { + display: none !important; + } + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important; + } + tr.hidden-sm.hidden-lg { + display: none !important; + } + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} + +.hidden-md { + display: block !important; +} + +tr.hidden-md { + display: table-row !important; +} + +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important; + } + tr.hidden-md.hidden-xs { + display: none !important; + } + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important; + } + tr.hidden-md.hidden-sm { + display: none !important; + } + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } + tr.hidden-md { + display: none !important; + } + th.hidden-md, + td.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important; + } + tr.hidden-md.hidden-lg { + display: none !important; + } + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} + +.hidden-lg { + display: block !important; +} + +tr.hidden-lg { + display: table-row !important; +} + +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important; + } + tr.hidden-lg.hidden-xs { + display: none !important; + } + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important; + } + tr.hidden-lg.hidden-sm { + display: none !important; + } + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important; + } + tr.hidden-lg.hidden-md { + display: none !important; + } + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } + tr.hidden-lg { + display: none !important; + } + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +tr.visible-print { + display: none !important; +} + +th.visible-print, +td.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: block !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print { + display: none !important; + } + tr.hidden-print { + display: none !important; + } + th.hidden-print, + td.hidden-print { + display: none !important; + } +} \ No newline at end of file diff --git a/theme/css/bootstrap.min.css b/theme/css/bootstrap.min.css new file mode 100755 index 0000000..a553c4f --- /dev/null +++ b/theme/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + *//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#fff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/theme/css/datepicker.css b/theme/css/datepicker.css new file mode 100755 index 0000000..446d981 --- /dev/null +++ b/theme/css/datepicker.css @@ -0,0 +1,171 @@ +/*! + * Datepicker for Bootstrap + * + * Copyright 2012 Stefan Petre + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */ + + +.datepicker:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 6px; +} +.datepicker:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 7px; +} +.datepicker > div { + display: none; +} +.datepicker table { + width: 100%; + margin: 0; +} +.datepicker td, +.datepicker th { + text-align: center; + width: 20px; + height: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.datepicker td.day:hover { + background: #eeeeee; + cursor: pointer; +} +.datepicker td.day.disabled { + color: #eeeeee; +} +.datepicker td.old, +.datepicker td.new { + color: #999999; +} +.datepicker td.active, +.datepicker td.active:hover { + color: #ffffff; + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #0044cc; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker td.active:hover, +.datepicker td.active:hover:hover, +.datepicker td.active:focus, +.datepicker td.active:hover:focus, +.datepicker td.active:active, +.datepicker td.active:hover:active, +.datepicker td.active.active, +.datepicker td.active:hover.active, +.datepicker td.active.disabled, +.datepicker td.active:hover.disabled, +.datepicker td.active[disabled], +.datepicker td.active:hover[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} +.datepicker td.active:active, +.datepicker td.active:hover:active, +.datepicker td.active.active, +.datepicker td.active:hover.active { + background-color: #003399 \9; +} +.datepicker td span { + display: block; + width: 47px; + height: 54px; + line-height: 54px; + float: left; + margin: 2px; + cursor: pointer; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.datepicker td span:hover { + background: #eeeeee; +} +.datepicker td span.active { + color: #ffffff; + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #0044cc; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker td span.active:hover, +.datepicker td span.active:focus, +.datepicker td span.active:active, +.datepicker td span.active.active, +.datepicker td span.active.disabled, +.datepicker td span.active[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} +.datepicker td span.active:active, +.datepicker td span.active.active { + background-color: #003399 \9; +} +.datepicker td span.old { + color: #999999; +} +.datepicker th.switch { + width: 145px; +} +.datepicker th.next, +.datepicker th.prev { + font-size: 21px; +} +.datepicker thead tr:first-child th { + cursor: pointer; +} +.datepicker thead tr:first-child th:hover { + background: #eeeeee; +} +.input-append.date .add-on i, +.input-prepend.date .add-on i { + display: block; + cursor: pointer; + width: 16px; + height: 16px; +} \ No newline at end of file diff --git a/theme/fonts/glyphicons-halflings-regular.eot b/theme/fonts/glyphicons-halflings-regular.eot new file mode 100755 index 0000000000000000000000000000000000000000..87eaa434234e2a984c261e0450a2f4ad837aa7b4 GIT binary patch literal 14079 zcma)jRa_K6^zJUrQcHI&-Agwt-Q6i&BGL^KOLw;{-AD_FG)Q-gGzdrvN-EcX-iP~g z&*b^eH{Y4xyv%PN=0ykqC=mnzkp2}Ez<(I(fA#<X5ReK4{KM3>{~JL1@9|&czbr17 z?0>QUi2(qt040DrzyzQTPzI;~<N#U#O@JPN?w@B3a0NL0Yt8^SfFr=`-x6GaF2MfZ z+~*%^4e<Pj_yY|8A)f!D&VaZ7cys_>05<^oukZrI|7re*(tmmX7j^o_^aj}eC*Svf zS8xM_|1re@Z~iI2{-^mL9EX2e|B>GY!1r$^_@7M#!2iz^{g+$h|9j_j|IfYw09iey z|2e7uJq%=kUm`%z3m_N(;2I^EK8c@Rz+WzA_5K>K_A~&N-y3An#=6kB0L1`ghg@hn zZl7)JRrzdfN4}^l((rOb8!6cPsFL3<+h>Ko$*N(B`~JnKcb$DjB~XQQFl-maOT7?| z=??-O{TBG@KcAzmSNxsJz-Lt-`@AJr0kN!Di;SF6C_P<|x%6Q{;498Vwc}wHl?UCr z{Q~3fpz|ayjwAvkULRl`8oaqCD1Wz4@8$~fj$UC?mYD}9H~K)mrxoe9!WwG7+6D1~ zu)}%fLgSy{-z-;>e_xUdTzZz=OI{SZWnRf9!Z!c1f25WUO+5X9vri&A$czeCIfk$M z9$(eLNbUdRcqZ=w)1@@tN<^z0pQP-fOfjvjK3hvorqiV%Rl2xSOKU%hzr6ahgV9*$ zJlgSvPU509MBT=C+`yifpkEyy8#9c4UL5|r5gWS_tr}Av>(G)ZhAtjcTRS3?SSA9N z_Kegnh`V2N6RU=69p<{&He6g~O%E<CJB&H}8Eop546bifR8;v1%~W_+gbb%4;F*P$ z`79dCon2_6C{3^^wnS`RnX>Z5+2OH{@ca1ru$Z)c3E&|1G!5~|4CfxK{)bF7rn^i` zwcKpWlzAHWR{;3USb36)e|%;$T55rp9tZ<6==s|-B*BebGk#$IYB|(ZrzrewrIl2Q zcVZsN=FLe{6k5m7YDaR%(#gdFf#BlrKVjI$R-nNKpd*2(T6`_?7Tr%rq~E9(yIypk z15x#%OfK;;uk|PQR~)DEppbSH6DmW;v@k*#ZhaG5{w7e$S`ot*K<^C*oB^co5cNr- z84k3(uHIXMy>++r-IRV%?Vpo$*r`8<nh8H|!}<zB3cZ16t>)jmh{vx(My9BI&4V4t z@q&H_L`zH3p725(a{oTG;rYk3%_{r*|8>5_6G?cTr)|<NQurG^bSVGmfVv9zyD;pC zRgB;F?6#@C+W3nx2P+oo52W(;=I2sHEEkFulJC5t@fdKzbQab()gj#z*xh)A_PAMC z-xlR6t47kxBx4Fum?y9wiEivc0chkcQ3_~t<FbHA);zwJom&NIpuewR`D^DOZODR3 ziW1_rvAXu!NSMNvlv3)F*+8%deWC3U$6IJO$T|ikA+*Z8v5j0j|C%2El>U^XlDg8z zm^W6r3{qR3liJadUw%-DfiMsiV2YTxYOPA_X1lBkNTo&NjbQ(_zP!Rimikpp%G~h_ ztU^LLtxb8e!>D>CG^8eZ_@-EFi+JA&%Ym}4^tY?&sz92_hbFAune34RX{tbjogYXK zb;~ja9%4IE{_iiY6WdJ>_PH&3&@yDo2T(p1E`%?ub^PQ3)diW6ii}#+*!<!42+jSS z&zB>=`BpbGP_1R+t&;29S$UAcpH3h}2^>rGvH){c0jJtjcaSiIpFl?|Ykw|FXrNy% zn~l3m7e4&RgrOCH+jCRW=Ls5PATEyA`J8Ad?TVOG`l@pE({KV)pF3Z7;oa4-Hx3nk z^j1RZ{N?bQZy$cYv6=A&0^)qVweZ{+Bno|~E=9j=k-GDXeQ3qsW?N%I&@}1?wxuHf zA|Ro-_+d*C6M-#@VpM30RTEPdo!APpRrFObUDP^Ic|AJ;)&LVdnWX#RxiFb+zGKCQ zI_Kger%ADWvepR*8TGZ{JN(1K9%&P;^!XU4tSvkgGe_{JR~^f9$<0Tklc9<ZUw;~W z5p*^NVO8v@BOIic@6j-oQA9o#Nv>6r9x1B=VltaV_PCB77l_0tL3{`BdedCe5j3CF zO*e3HwE9GE<^LnU6k=*E%b)otxd+9+t<9)#+ze$kGPmX41&oF?8tHV!<nE242JAO$ zwQJ94#*kw)Ad-Wbv#rR45_wFbMvV{66V8zH9K9ofp^^au-H!P1Q%UTlMe8?;BQ&Sh zI(1q^c|XL<T3<$<Wm&I5j~KeBHgdW7affz>$ntX{*8aX^eeP@F2xMvpFGcra42@FI zDr{tW)yt3)P*7pvoD&$N2UDat?KH#6Zr3Wj1ocGNeW7Gj^2e)tH;o4O)FyAx_b=b8 zd=9(x+S@-Ai=UJC?i@DuZ0CtTtAU!S<4~e$K4CsxC85Tve7fHoj%T!vPv{JHch5_Y zM%K`rC>1Uk_m<yMVX=0NHGv3_mcKW~yzuOKZx$Uy{i=*W!{{>|u`%z4L~W*R<1JgN zI(cyXr))hytWI9~bat*Gf;?_avFr#*aq=$;3DEl;rBBbSfL&s-CmEN9Z=FWBPq|*w zV=1XfmME`nZtgN@DBWrbTSnz2oWcA9yL*=L#%fP3TXt!c0F%_>FvWM9H}5Urg0WkI zNt&dRN)2J@03gGYXLU}Ws1SoLa(2xNG04O@u`3C?42=UF%K^ZmD2OcrLpkyPD{zkZ zqZSrZ%U#vZMaTD{N9>OdGG?lPL;z?aQq&oxZHacwkYDWEjRc9X)Mg4w1*sqqdytQc z;>DOou1OedrNNb->@o%dNQsBess9-iEOg6MCTz%8RuuTHw%yfj66ap};<<q2=d~{o z`z=wi@@vsSmg2qG1v+%G6j-Qk<`4{DLW{0J+nZ6%?=P*aTS15sI@K^%s{l)rJp)+T zBYc>tL)BjF!!xYDU^iC@^Rt2BMhA>^Oluv#5vBd^doV(|U*_eW!Fpo^kadb~1qfM1 z-4xV$$`eWJMc%3OjU5A{fCA-11x&T35;A``cBD@_K+AfYp`ItY-nO9GFXyk(6H&gC zgVP-%-^o=btFjCC^slGFm}WC)1Fkw6WT{3uKjkNm`0Q%U67%Y#OLYbxB}u8qEXyBf z+jt?k7GWf9V1;7X7NJF^$kk!j@XFwhY;np}TTfKNM)sdEtVZLgSNz~z0}w_y_MM$P z{7ZPot7f{~deqdkb!?PO@3M6uVpZ)~0PM!uFW*8tGxGouYU+idM&+mch>1YWrfYbw zNHh7S!OA3^0A)hxl7xkSusWMIn}pAG7sVY<1G(8sqQS{%57LmXJp-HiSyD=l$*Riw zY+20T)}-|#pikZ7^U!gc1p%vkX1Q*!C%Ns1AbUha>5MtQHVJ(Q7;^mZrN_`4&gR#d z*GMiPozmbFnk7GQMUfb1z-LiF4xQ67RJ<1As!AEvs7ht4PG7P&xpL)JUK!S%jeUiX ziGEQ1j5YCz%;X#HVS2_}6~%)EQ*SZCzV-TqZo<Kjk6kf;bDbarXtH}1=lzqX%;z1? zkQcXro7{vrnWQ<cGsJ~I!*Zxl_VUNAX(!{FuEN-gpdwM36Ue5Z^V@n)m+7E-Ws&b} z6`LximUBHQgTt+`cigaunG8i5?*82zDk^f_pK6IRDe`p1cKA=XK!gq$&N+x3869Sg zVn*Q+;aCK_!|arQRgoXXpn&iRV>{O6%{r8|Py{vm3>zZHrnDT-D+S?Jo!n<`QZ%7N z6#HY((OAs1v%<)LZ%T1o@hclr9U{s$FY2`$#A222+iwA0^_<Q`nNJnx89GvYeGoe{ z9M*C05Z(1NHc!0ILQ0Q~UW+>ZWa}Sp$~Z`tSR<KCrU9(jz2fW2XI<d4LRRK*&;V^B zr7Y!fs&Z*w{Ak5bdQ_G6lx6E`EG|DtKbs#DV()CXFfZ>z?fYd)Prtgp>DC@x&win* zYx)}AGLxzuz+^6ox_-KQe7OJaF4>UhEn2<^kp=1~zSKf2O8lsvgwt(+%dH&YE^$~{ zmIZuN4KWfnT+eLo`$Ntu+@_4dx-xCn%;H+*qI*rz{Pj+IMWV4q&4&v_vDJ?KnuhT? zp`HFH-{i7G<K%KkR6$;brQ4)t<Pc-*N7&qYe(hM`$dWFB*rEqS@9Vrt5=IQP@V#mi zPt@~rjR`-+=i$8mk;Zj~5|6`0S`%WjIj_6$j{A;aW!246_?JxR^m;@RO26-r$f5u| zX(+AoJXr^y()TQ&CP#a|M6O-@cBU{0$zQ~ZUukN?LG$48GSbYjYr7X$yA*TIV1f{> z&cb3tRVzJC2)Aj&v-_2I=-cTnDad;U%gi?|r{%q8M3=JWIA4A_$1xksNX8fGQ0MXv z7jsG@yqP^YVXh~FGG7ztRofbb%v-Y2Oa0c4{DoEW2+ghB#=X?sC)zOnd<$FcA;P}k z!&0wB1tjlcu)sC=F=AuzvQsD3oXvch4Ur<e71Q;Vk3pXP_rSt_eFKvP1^W*nz}n_D zR7Mh`d34DOLZC5EMF>;5+K@a2;bjf`X@%InJU~*7p!QXL|3UP=)q(sV!;RVRF4eC( z5w2y7m}t3+flB}{o?fK>I$D|ykMw@kZumiw3J18$_<EKzml3ncamK;wXo#sr=UHe4 zLI(5BZ`Xu~(y+1x5GPY|%jP8|(y7m$vBwH+zO@uM7chy4v*%i<OUMaCebpV@o0=7R z;ie({1Gjf0u}9yr7zb2kbup7*H;Ie>+UA|-{#xqT-R~i?db}=&OhR9(;d>s&5GJ-M zuHl@XB;EHQ^c`j#<zVIr<8($`OdN6BL=G>mM47s|SScy-SD&Q0s(780*ui5*B(NU{ z1JAM6oymA%{(T`Qwoer|4`e4fbXpw=Ujf|X8hmq7E&vxv*}=+Rye%5X2xD0*^}YEf zEGd7~le2mpyS%mw8xl<d%#X&C_-d^L32vN(JD=-}g3dGY(oe;gx7%vn&5~T$EPq~D z1;$|v8mX)_W}#2sr>44hIvof|Pxp1T*z47AL}K^XlL>J6(gyYOmc|;VYs(tHAWpG7 znr9Tel(H$KV%()2(VBNVoP!o~|Gd)(^S&Q{PCqTk&dV;xZm_-lB_hr!QE$$#GqKT6 zV~RS4<7x-=tx0m&jE1BDqd(cc2iA@B7Ib0!{b&v`-5`t7XEV6UG7WdVy)z(@VR3p< zDC1lTpXHX3oE}5<e(Z_>E3V7yx^8>jVnwr!<vm#OK*Yzfxi=U23XdqMEo^eY+9kHK zyYZfH&)Lmt&M^TI<Fb)-YQgrMVebT>w1_he&_17RJW+}R?{niZFG|4RyT7ZmC!Y^% zbR{57inS^QNGx!}+P3f7%?Sionp@*#h+8;FTaj1<!)nk4;_@cE_-bIA1TUA)(O>>q z1~X!#NO{YL-6+QR)z_o*SW%A+v-XebXs8&@TRzyDRieHy_t(B}bl)uwdFg%YXZ-^# zMWTYOwIkzv%>xr%$CBM=*m$T9k}!UxqnsS6rl-gw-*rU&V2or^ZkP6vPI|0njAB4O zn5CyBPHvXL)29>zpPkhW{`Qw3B?(G-TWfAV0^+}Ji$*Wob6n`WzRTBhd{);=mfm^% z{;`v`S>9Z(j2Nv-VL<Xz4m_}NO?B?@_0Az1@$NdIqsf{@rhRQ>KD3~iA$Oj{Dq0(I z8U*-!Po9%GdOD|LVS~3(q-_)biNZxTiT)GN)YVr!4f4IRLNhAD48qw@0S#E{-e>UP z!dWH9**gQ$DqT?TkKNJl#J(f~7r6JAfSveml{UZ6jueeC&zR#Vi@e*Z==rWJgp@xj zDdR~Hd=3W?q0l(VMfRu(XreTXK*$pogtsuagZUmp^U^=wp0PM}Wf8W^Fm9n^8S4AS z7GJfQ<n|&mK#~#_1S%sW$P5ewiJSE5jQc+i`isn%`X5<zUpgNYJLtJb3V-$lBXZt| zCbP1TMKLXbyb;<Q5w7Ka_#*NRyoA&Re}5M`Qv9Y1$2QtZSv27#Y3gvb*~h#apq*eX zImi_>qzDgu-5C9o_f0zKKx$9L$|nGrE2rf%PLxV|c5LZ}PzELiSVok_zxZdiw78@4 zczsV08yXH>t5P&u(+XYPsiu48SXe7a3yEBGFiS7KFN#T`R)LMID_lZrUwvIx-Jfbw zW&lwF<wXh^tak!%Nv^pSf$d4;F!C6nw$a_Mn}+VV0F>FkZK~+S9BQcb`8iqN%$0O{ zd_R#~i~MUF@fY!H4LxF+H=SJ{%h^?na-7Yogv2T6317oP^NJ}Jbg&)D&P;P^w8oe# zDNHRAqcPe>x<P0M!WSU&HU$(!@h@lY@VgABeV`^HT1K^YV}Iz=o+J|bjDI*-%BRY> zP|B*V4YPfm)deuX7-N@-7Mz4N1KmAfyYI78#jS0>Bkd}i9TWLsIZgXQY}1jqm+pG` zy{JiBImlPiF($3(sE&p7ntgNWLh&&5y{|mea7L8%c<ptyHp2<`2w05~#O>);7R2$T z_HrZz<g|1G{<%(cm9X=XB`k$5d{5ZEe-4(a@x_V>(`Nx;xE)N<I6|kj<X0+d^?F8- z3{aw-9>tPgF(IH0m#(y)Npg}NBkIWpJb(OJq&ymq^iBIHfZB+V!qd}3EnxDKf_XvD zT3tuka_2>|KJ_Qr(qpGJAf}w3%5Qo=u)K?~`O2CzZnMD_J96QGYE`74E@)I~ODsKK zH%}vL(dJC~ZUF3t99-z<+)r4yfgnU{Y-RryR^-SYY95;xsg#!aUC-Afy-0t<rTPHA z1*0~^0FoYfkm$!JILxzOPAcezBgpiho{+VB53$|6MSydhb2Ih01GV<^GC9M1Hrm+m zs*H-J!BnpFfioNfC=~U;L4XiNtB_Pv1ak}uWRd&9kls&vLyN`&K{xUh-=;X6pgU6s z^;^h6O(;(0r8?9Dl7jt6ul%_W3KwZQ`590khL_|`gijOgYAU0qbY<43%S1Fztqo?{ zf5svt-%sVrSnoV8Ga<~t<gAI>%`Ccv_)YQ)A}F@oIMmu2ZX7PQ72ukwf(Cvsr!%uk z?~fxQtYEo0ehCIE`*_+|rxqV~hPV#FQyC(#HP&p@G#fKOUMp?w>)uN0&^pgnu4xwA z{+=Wo;`6mUi`y&O^6j1|StaDJHzuv-uBNf~cik{Jl#-tM_hJ^k+>c0kMduSMRtVAB zXTfh&yMOb>MNO5I1PZ0o!i;G4!y_^YHKHq6oX4a^KR@ocvM24QDH>)gQ-zdAXg{pR zt7?3h$uSFFv$4~lRcBSlUCKIO9p9VFeN}^EPQrbB!iSk~Ba2aSpMlf7sUnT!2PnKp z*Z0Gpr%sIM*x*BP?6E2Zk^y$a@Bl!Rt4YArYn_Po5M;&@gJz097wEglfz`ESLsIET zBs|I>ZJ0yIG}&DmAFB*@>{;;yJ_vO?f1N3M;xsLT(}SOFekLA$9KWf&-o<J4>N<SJ z$q%i~u-*3#oh-*thahb0!JOWT&f8d!XzwAzGQL!nkO#Mtg)IYm<INu#8VSTE_*@@# z^uUOq#LR7q%@R1C#q%@7<f~!b7mP$P%NoH>L?8X4J4oyU8tKa|1>*wEyh6Ebf)U!Z zYdS#`zoaL-RrPmx!}8501YZ{qj!4m&Y7SrdF&73udbUZylkG?gV+qAaszsvHEe+{D z<45m&hYod<m=Z$ln9Vr%+)N-L1i@@mXhUv7xeI&ytO9zi@c7AzV;_8sV6(x9eRZMh z54S*6?{Btf*z)oTF=~kW4(C#k+K)tU>O2}g4E7>W2VeQ&n7!#30RJ8KbdK<Y0H)5I zM$0m)vqy7@vi^IrfH;#Gsxem4BK?my&!<<`T(8~zo9%GSur(I~)<U&1J;p52lU+S@ zNb{klSy(rx6!qkGrF+&~BfPT!ub=PezA%JMJw;P}W0<OT#6AeNXc{6A${=rK#IXC4 zxFj9wtwB(P6Lv>;T;5$lg`8J^y4jw3DP%j^Drg_woO{_t+eT$<K)EZTq;Nt)FnwC( zdn9e^bYfVe#xgi0N14F*JX57NCv)*)RpB=Mf~V?NWSU#UQawY+66mc3++R~7B!E-7 zq9Rk`BU2B@B3I9v$&U}~6mSfCfOciaK{TRBz@f|y38H*LA`)p=^TRGgJmZNMhL;Ts zO-Dz)1ZmBXQ6=y5VB!H(Uj2n!=!yeH=Jot>A)(~X?aCV(oI(=tpI1st*S@&~g6?&k z>s|?NRJcDff1`1?-Jc?K@U3-!Ys+&;g!A9IYGA|)zLH&vmifA**}mdVQFo{e8U~b2 zO2E010oyxaVfzV>!DiaH1em79k8chs%8c=txP&UaPiGwS0WcWl(|%w+^T*t*H|mk8 zz)Ak3o-PR;*!0I#w>D*9!+3J9$A|8=Ap!W>(U}g$h&Z!YOggAp^3=wF!Yaz_P($@? z(<jcFH9DBeN-&Fkf1gIHrSgES1NzQM9^-*Fa0|tb4&U`ll^pZmjY_|EK2*O-cb}iG zg-e!hJ)>n!BM5i+f_^FX8~nrY$)=ZB<nbx<?JzWA{BKS+lAbd0+&*5h0*wz>TKHqm zVdAIS4fs!QL{-<ape^U8Dp=DYod6%UFYuIjj9tP)Pkk}jd-_~V{_sUsP<0ABRg~+4 z0X2^ZNHR`}f`#1M;up#D{;I{Ab2aXwk85BIEn`~?IQUqZ3JZVSjlUb3;wwE8U=ZUS zG#r1zHrN3)_zYe66N;*37J|M7fK=TPqa1+Q5Ebu>!F1~xy(})<xPM;nmTAZtXW~n6 zMIaBf)*hGhxcB~gOjkOV#&R71#fs7iv@7C{&4+fk{qe!C^%->Hxa6p?Rjwv#-#Pvf zm8TQQeBr%Pn(2S+vFpu&c%{Rrk4#{RycSckZsn7q)i-C?s^e~Pur<DUK(|h>Onw~O zv`sbAk*TMuA3Lo&9S}C+NVe+lL`zRzEuw^L!#*K_R{1j-SsyFUDFnW}3R%$<u<_4l zU@XB5UYbs8wyrIz*FJJxR6)Z2+bw2fRUC_<erN#4)=(=!?@jug)_iQE@5QQ@xr+O- zKXwD-&iy{L-hlV7`y#h+e8~ieQ1fx_2)tgs6DHrcRWRYyAY*JD13w4BI7nuq3EQ|> zis0vASSvzW7Jd2#61)h4#M6URkA_A3SsK4n#`cE2<J=L+g&y^!UXn1x!7u(}5(nol zj@;WSjqkKz_aULIkqn{zv5UXqLF&=v33q+z$qMO|;?Ojr{!n*KH1eY7L4d1iRWV~< zi)PV%UesJiR@ZyDP5)h#^ETT_QNYR%ON~5abLuKQ<S+6ho$2MzAiI^GkK@SN_Jd>$ zLWp@8V}aGF=zO!}e(^Si*LlMGu3Si8)@_u+nrICpR-ng^i~GNd$UP_6*gd;57I81d zqLuuFat(5+->FEsY>{47M=^M$XX_r^DhHhyoVF&%)642YK9oHn`28XL@oD6zTRCr_ zQj#&uvxDDr@MK}Rs%^cX(zMsDRa3RzUQqW?O#N@x@1442leTwu=(D`c&~bPJX1eJx zR}5A8N$9Bq;W2HP`r4=%i4+)}>MCN-g9+FaIfz4#pX3o<Jd1LlE43z`xvt1-s53?h z=zD%eb%((V)g$?MyB-3FVp7)DA}SP%YOxQ>%gk8jR#?u%4F3+u2WCA{+7b24rYuJ1 zwW3Y9w-Bt2a(91Hcuj#<QaVwt!dL^(I|@eF#}M8QQNhhgck1+OvI;3!rgoL3#7#i4 z;lM6pF%AQ{Jz?A*7ZVG%oA^GNu!+u9?uiHgw9sx<@=Feteh89ck@C#4$jy-E_ubvs zr|>xdB*q8Hy&$|)<1KPvN*|iiK~tq?ka$u;jeH>1QR}^dUxIFtyRN6z{I4L_o?enJ zFR95EMp$tQTUr!1vOm|XcjELh%@1qHj^++_t7XehC^Kxgs_HUQqFOBndGbf*;KnrP z>1BrQ)f5<<d!$XYkzJBa(0KA8ajE__4rp+AO!R(Vn?_Hde7Y5z!lvA<ALEqD)T1uf z4m`?0&DC6(Du;=nx%CgE{A45~MZE>&={TbN%QdERb6ljEbbCGjdd@5M#n06;VPP)$ z>chCAA@WK55n7o^L|)RL4<9m6lWth#q>&#GG5)ftZ#UzvbU+$2(jP)!o(zaw#;sdv z^%g(${-K@o670tu4>IZELt3#`+>9j?qf(`5Ch+>S&;~QQKzkSNY)16RqV;^f>T9$m zdqgaB84{#YEI4zWG)0m2{JP4snKf5{q~3>X2#QxOjG=sO9EHimSic@4V^<|@R-5Hy zE<q59;Z}qdne&QrqQ-dH5N)2HCxMX9OQDHo#YeO<efRGkB}szRD2Aoh?UCSVwa#nB z>p^BF6R52jd09ovYpsaxywq*xnqd^%9fxrz=LFuUgxW6tSBC@dGWefD{H&>5oMjlj z6Ud@Q2;X<$!M}!W1R~uQvtTfS6QH%6nlH&~+q&RAWmVP$rbyZI&7MJD!MWh1sb*t; z&V+sSq(hi;g5~PTh!VqP_4Zlgx`%k?t19FqAJy6{$9?t}qv_oZP(+mjL!&s9hsSi0 z`1hZBgO1QyH=#|A^)bdk-w<5x6J#hivLy8_sDXLZ9cyp#>1cVkuO~R8$$=T!YcnR* z2IK3z=tD9$YM0E;xMYvjGX;DYEKeMPAY0k(Lwzo{Vh7}c15$J|s~_D_e%+RH^Zh!m zk4lp6r#OascmM8jGUcEAXfHU(neLo*wABl3)3I;N>=s`|zJAW<B)9n(Nq8K7a~ea} zG9NKV8xhN<1MA~niP?q?6tiyR2XZ&@Dtwm8n!atX9i>wZHZtQNH-HR7WUvwmZrG!N z6@C{M0eWXL%2LZxW5tb=HS-8XP81s4JBB@;v&wkf0l#Qa_S5T7lahYrpP#_4z4ku! z%79{Wf8-DjEOK`d7PC)LJqBs(n-#-j1cvFr54a3Sabtu+VZ|9mz#=H?Or~eq<AkwZ zX|j-sY}(}D8zwAjjbH1FktUaTLc-Bk{>xl$PQ@(j-#K-^vA1?!cVSYHiqjG%wgoo{ z;V>B_%aMBK*fx*zO(E~G2V^Rge0k6DE6)El91p>sh#YPjHEIdf%#qo8d;2q;-PEL# zM$qSYuUAeQ2&IGK;PK6zotMsO$LC!pl>@QKlp--=jQIkEwD||8ke1rQc)#gAZCdSP zbp|sBqb`OyD=c13US7+@&9PO~KE57bfoh^{0jOecez`2lpKQh@(KW*IF9t5p(vD6; zqC<&N{Yb0E4bC_{JpkUsO@rlnQkGCgPZc&=!#+=sq3)AE1cd=a-Lo&kH67=u3f~^x z$gvF;{hY5N=zW-MGNTT=kuvj=Eeje|_OvDefcre>sl=DrFKM*}wkk;l`}4haQL%D& zozLBx7UB^7A2;9x3fXkFDG|nU!vVTV#n;l`sA<8?C44E$S_CvCJyIKcbBTSJm2-dp z+A@d77melYFx?WF=8D}pZGaBq7o{5e+?i$`$d&UL1MLb{9o$$YA(U~As5FJ(o8zOW zjycOOtBY}?CJP+$sVEXp?BZ2aL1i4K0obmwIcc&4(62jbW8swa9f?DjTSetJS_F2B z5Z$cKkvqo(>(e|^<$|2NpV%tz7CM|Ai^m?Kd>Yu-{R!v%f8<Vs&C?0$!xE=mn5FWj zk!}A9uIz_(b|oWEXA(<?YY@1GFSwO)Qt!7$p$G1Y5Pe^FaW@UJ<;(@?iAqdyV$Rj; z&BUa>RBr7rWNtfZ^9vKm!u^d<U#*#UY2=<Q+Z3!#f(mQ)#kepkr^)DZdQjdk(pm5x zfaNO{mMZ@oNgP=nH>P~TR}A-E{C@XK9TX7!)BcW+IpovW>PA7tEh)jxk?zJUM*2{Y zN?T}i@F{LR5-+vp%IKQlcB3Ym)7}cJ12(U+D}MPeLlGDyvcfbe8%LPEy)G!?=e1L= zDJJoWSy{8;p|+#$)~16&EB2)`e$!tX1y-N{WXm?gwG*OnD!ci3u-9+(iLd7=7;7jR zmcY=*?xB}|#asYF%EX6t2{+RK&4M4{66KihGOAs;ij@mK&3Uu)3^b|?B;3B+z!38I z93x_C6}@3&mJvH)!lIq0oQQL86oWy_A|U@GvyD(NwO$c!`%U{`)TMN_Jau#t*Y0lu z0c4~`*Vxk$tP&+W8%8kVnREOkJevuHD;AI8ltWOEzPR%_#f5(Y$jArOxfd2TY42x( zvdviv@hBSfQLqM3;mpaTz|811VlQ7jQEm?Is1NzX>fhX*)3?iglf#v5#%li7DBSDs z9yr*Son&|AfaSp^FHcK!iyS|rW|~Ho3BGnwfGSacSD-Pd3HZx4^Tn{rw@X)t0G#!L z)6pFajr<=k25R8M>3^D^?Vl5V6+B+5p3Y=}-8meaQr23s5Ci^QiE_I#JND7F{`x)Z z${rPtj&q-)Eg1mQ&R^d8PLmmpTs0_NfM;Ld9p`~M`3B|`d)KSkHhIgWGh4h9V(M!E zprOL?IrlHS-Zj#5YaezY^EfJop++5!6~dG@VczVZsShn@a<RH$o|pyl>!H)^)mLap zN-5d|ZA^-9-}C0NQY-(>WWq2>z$nZ#9f)04o}#fdrZX(@%ws*mvWvY{x|!V;M+h(u zc(X?j+n3l}NT?SeX>yk#wP026HlrMO$^jJSY9}JbsQW`La`|uCRVgB?-<s<izr{wo z%|H6F3zMMJ-ilO~ALx|sm;Ti(oz#Voh}L!^<jKYW;vnJ3e5Q@~#>NUkr!Q62rlZJ0 z4(P@;r`r%R2v%XcY4gwA4RY5cS9^>;1!-;WRHH6?A9H4nS~L6+E<h2Ijd^9)9)Wu? z&Z6rnUTQHBcb2TYq9Y(pf}+ukvGKbZquE$GbO7&Q8`7`4TwN}4e!wxA*DDP2De~9D z82d8#>rf{kNRARp0%v#mG!BN`{Z0DT(;hL>q2tUur3n4FyKJATTZeC)I7~MlF{vYq zP#u$a?65C<HK2j1FmNrc^%2E-g7nHvs;r{njk!V^l52euGetz<d5~&ZIN9zNDKe_e z51es~gi{x)CYmDdc7`emK9`XBg)CJu*>Y1gX<_^dp<Vn0d3^Z+=6=~%);t9$v<y|- zI)!A&?J<-)8deA2+cj&guE?~1zXkSJl7un7!o~>m$T93g7cEiaEzJi=f(PP7*$Cf< z3e!q;mMXoy);Hc<e*}Z{ZL8U%uZEB5o6@ZbGkc4qsWXi~<QpSD)5_6lbqjPt;Pfdp z3oeJfM9$g2CzeYT#Nqt$KLFdt8f2K(&B{yfEii{a=TEmQG~y#AA9ZD_-^%wfCvD(B zs4R&-hQtuou@U{SX5Z&1*nJ!`^oGs4IEq@IG>=X!%VmT-e!^igX6GoDK`Lrz#=>sc zkvcN?I-(oNR%$y<5v;+H$CX{e0F$s;-Dc+ckzFlEF7xK<7+Ij5F~FWrmDWsXraDch zDC0G}@xv|q?bH-m|Mjy0Ms)dZNpHw-DvLp2+c4S+O0)kVJ7zx(o)JrS?zKB>t||@D zeBgbVopB;#ax&umSZS)xCuXSI)HhTG6R!eRH?)QacpQ5#6L!rNa(`x=`VUEj)U|nB z1MMG_Tv{ZK#mpijK)fq&ckNP|V4+@K=S)c}ve;M#Pdu?5l^rr)DvUwV0PT?vKYzR% zGPWilY;hyPpFoR|5JP6?I@iC3Vq6S&sN@s)yy2Kk_{_=#E{tj(A~6Gn2o~=^zMyvs zejH=*na5H)n8DO#XSngd{F-OXphTbN9bu!~RA1@WgFi`~<6C$z-&Eg~>%F!po2S1_ ze(jCXcwQ%!S`|5^h}24Cf%DGYlJ8~b8L?zf;0`mM@)Jd|9&jr#{?*Qg1XJuUM}jTV zML9{SGQW{o>!LsKk$gTo3em@>#xK?}8b9NgS<ry>$?dN7ub9st#1lf=`*RfERqiz( z<l1q(yGP^}AidYR(^()UAdQhNY;4Rq^I+aRUGBkXFoKgzKGcZ`rg#N1u_a@Y2K4DN zBw%H}Ps<I~9qsjGB5if>%zTB8hI6(Wpm4#3HbZ{z&OHArOIRM>JR?w6>jxW$d~1R( z8=RTg(0-+#XZ>UEu5%s=xi<v)>U`S%_}9ZcU{{C`IHp8yqFeq7L^5hHPf(B>{qz0U zx75z&dEB?!YvH!0%yFPn0dnvtlCDFL)%Bh>h0|%OxMnXF0(`E_T1cWldfPUNA#532 zF_UFlhm*4BwrzGZgWp~l89&g1;$Os_(e;Y|xl=2m@`F6(@A7#Zg$6~4{MITfoS(mY z#oK2mo@6)ugHMq+fCN82iP%cl>0rRR$+U-6UX}VIBZ_N3v^l9y2J@~+nXeeKV5tl_ z58#~`c(ljwfpHzaef#fbnkmRlut=er45g1&uFAxlaV4_Qd(S_*vcPY6fo5V{29CqR zh0CQnCWemD$tb;75jw?v?k%iaE$Zb*lYKU|?cRSJjsw=kp)Q^<sQboq$-%Wb4S&MA zlVdnimU4$mbkskQdx7Q|dlV{Xv#mL0koOpL!O>XpVWYrI2cu!TG~H7n=oNXG9I#<8 z2XoyS^Mf6^!*Rvnvc8xyFfpcXmSrE)F%hEOCa_GWBD#KOV3`AJX5v%eZiII@eMG4w zP{6>u6syX2q5<y!f@45L7h}s!zYCwk>9xdCM#LN@M@N#|``%$kWIB0~(ROY~Ve=g* zNO-8sq+gRLR{DVwQ!Jfm!U>SpZI$h+6PlG3&djhh9*Vu$hD=4jV#(`EepWBB)od_U z1z*Wewx!;!ADjqaCwDW1G6@8ht6c*A{M}l8%l0jf?jh`J4b);-n=1;fmgB)4p1;ZG zDDk{q6&;eqX;tp_US%-mWh|)q)i{eHZbo|{^0}=bKxC@sGOV$YXz)91vn7~h<-uH& zQb0dByDZJPD<P@o=71^M7X0(IKZcMzC!vF}0lt$t$giqgbXZr=%4zPJFJiM}{F_ZF z*&-^LZ&#*PWb_z+hmPdXQo#@b=$(#KQ+r%U4q@%YiLcwDr_O=l@s2C_D=O+ra)x4I z3GyzgJ^F9eyn!@wwT-J}R=Z8tnT5a6KG5R5gG-pfiY0a5((S9zz8|v4#3i1?L);Pg zdF)P$3PFHJV?33dgZll=vm}2}slzx&vTNIkrKQ!Ekm0@k&{#YvH_dc{sS4ABJG)Ce z+<xo&D-M47SRp@maX`CuqgF&GK%p{}y+vcXHiFvxV@=%l-atXO(z=p`lxu+IO}}-z ze5<MolPsqa68b#n<kNSx*_Y`~{$cNu8@`-&0pMrXRVCQr<_};{X<1fu;{x()s=Sg1 z0NDk=PI`fAmyx>`EGPd`kqAvI?*g=B3fqa9H9Rd{L`va?B=t~Y&l0h{I!^E9pG>!S z#>{UpLngb5T`Uqt6sO=~BOjkJh)+u0qiSo-es@5}f!h*a9Gx*&<5{Eoxc-WF!jSyn zM@qOve{Y;Ok^%FZ<Jk*5wFrlsSo;wSnALjEIo#*uFxIv!9FLgKac2&3E%_Qv(<jUV zBGN23RiExtBKd@9Xm1Uk8^ed3-SS`7rk&o+|13*j>K{2K;y}YNN_;1tethBv;U%(w z%RNe4t*ldJayql#MMurNn<C?CUfrqZP>NoO;%!n-U0V4mzVpPdGu`LKf+RWv>l>VJ zh|rXJv9Mk&iDk|e!hBRh$KiV}utL&Nkp<UkmLmghbTR#Y0c{s3umoszTYgF55#U!( z<fni&o_z6(ySXcTqFDI9jZVa2iN(IfM~3XCn>tF@GM$|`t<xr@wa!k3jww5$R<!+D zuV-W`>R)5FxI<fDaa7c@{yrV)A>igOLHS7vqDnsGiFl7bTk4baLCJDyHe`hWp4JT~ zxRJRy9oc;pw2eW?wv3s^8AsUEk+&zZY`Ez-Lo@iJt=-gFZhS`U&Ct+KB$VGUar1N* z@v1?8ygBYN+o*ZMCgDHM7MC=Korw86(S<n-YDn>B>G1fFAvHmj{-oZNU|ZY7bG?7% za!4;s_~l~@pOTy7Zo^+6AY`23W==`h_ME&XEh#dIqn)Ei1rAP5;j0oaGirRuwQysr zBa#0yNX`7Po5nBsn|`gMKsYvFEKdsi0e?F_b6jl8h=+@ms+m|v$is-!NWtw6(@?$V zl_q&yu*vK7NYkl6M5O+M8>hB}h=2U?wrE48%##YSN^?I=0+$V|M7{IRFWf36;()R* zxJPdQDzTQ8c<pmMP%6OqbyzAq<ZDEbc9?=Nck%cwf6%OQ-IbZ8m4s?PkKV`8VWO8p z-AVcu6val}s3!40BGV60KP{Yu)Au9>-0|B0$0G*)swoM=@rL%&=A*ZOgwL>7z1a%8 zFKtztnNhe(UFtdIA>1N=eN!pq;(cN?j@4UgtmpU_OVf+Lt5A!~Q-4!7z4rNbGV*<4 z`3S~~rTA$L`Bs@(J%h0xlX-Cme-na$&VA?CWqV?s!6CpeZMEoe$7DyV^%f(Y$CD^& zqb+UVeb3zQ$3puFCqi%M<_{j4`f><VSfjE7!~OIt!jp20Xjt5G2&d`T@zo6%0MBWp z@Tqo6D5rq~=Pw$eS>6W>Qts%OZ(sH37e1+(`!sDT=vci2*%*lcnLfGx#FXv!uiQm` zC&DPMh8FaCMRu3k7P2;P<>)CU&Sw8mr%`j%w6%l28(zv})E#p^r{~M)l3_X_Eef#9 z!fgwyX5@Oqx9=Waz>)cTxBx#FRZ7Q4&|@q3fbSjP*Pt|Bw)q1)JAG_&4Bc0~QYI5; z9l5@3gJ7IgX2*bCLz?mlb1Z8!pV-p58bZOp4MrH)-?C4BM%<U9MAlWn2K&<&E+s3D zdnF^iQAJrzi4WPaBq|N6tK>`bn_bw_v8c^mNSm=5<TiiF@*H}5<p&!?`5xp18mLpQ zD#$iMzF%MkS_O%)VV5M8n9h2z&M9<OqeFZY5TER+P!-arNT$GM-4qV}s0eqq#4xo* z^%C8*r2&l=nRE_UCE~A{j2lEusmt}16@n{goE-_}Sf=eTc9U)Ns<W->N}{I(?E;74 zX%b#E#TsuQAAXq1n>W8vD~|I|L(Aqg?g=aXtg!r5BXJq%+P*yi5*0j^`Ml4I6;HT7 z5db0$wG~_=*tJmS#%smF=#xa&&Jz8fS=qB8x{B|9vz!fwmKbQU8&%pTg}ZM=3#kzV z_ZQ6}eE9}~T4%V0Xs%r}Jw9AwZlZ~)%<j(y;5w3jzE?jZ=Po~mKlkmPf>XtE(9Q39 z5S-nO>sGi>EdT88T`M*cJ-QO2)(J{jpdX2j!noU=B@Ze69N9Z*ygRJ((WnKT=0Xa4 z5>HTd{3T)O`V-xs9(FA8^R$B+<_d`Zg!1rg#WK2+HXS(SR!(O)SwKq@O>%tXdp}KT zpzS>sB$N=B!h1`B*_hr3l_}mcGqYM@5PwPL1j^?PC&BQ_KvG0v0}CmL3|yC_fNyLi zaib~0C!;P<x}7qYL~Nm^oiZAf)p!bqHe;Yzlro`{d>Y#bDnTXvPWs+Y5`ZCeOAdxX zCQNr*a)lN~1JDbninPT|6#xvPr!u6P!D6j#QGyAlSi+iMZzAA8s4!|Oo;I<&P#87f z1}&8+%t~ev%@`NRwfE8lg1+grWmTX#j0Luf0bat{$*Vv6?Oll&1AW4N=p!A<Oq3JH z15i?_Y5)?+p>ztoBEDh8Zbul!(v09dV^(vw_m;E~n7Ix72vc`pWtfDyKs=Ist`7lb zYP5YlV6WodgY`h<jT;r45Jsdsus|E=1qBk)0a|vDq7W!`0QBWBJPrVvE`T)`pu!4> z&;}e>0a?Pt@c>>_fJG=UQ(rXrUsV^iQy0~j7nOpEOwo~<;9xV3M&qR&z^trFp|Dga z%#afXVTGYE$^|P&Bhs+bBC)Q+6RvGR*Dzw6Fg8?xZ5*H<o2(y1)&?T0M<Oe^<>lD1 zp==t)lZj-JiTHwSbr}Zi=tnw-A&Z3toC4Q#(PpeD$iv(YfbFqpp>$-%VOD!U+gMaL z0Fg03#R`b$j_fdp`mKrB7p7qXn6*PHa>q32r&t2sKcoxsl=5LGrqWU=$$(DfX?Z*- zZDL9~XrfbHDB*7s)JG)=$rjZu)RQU*#d&mL*HpM3ux+Bz<4Qp}-b(Vs)G51Y8=Uo+ z7zZlqTu0xvo&(e>I!;k&;b#AbQzV}1(2(z1y>Fk6KE@waF^K<U_&~i;=(QK=NJM&% z=vc9~sE!DN60C>q{d@b-3Ge{J{jt>gwJni6ufU{X-fc+B2-`YjYGsmBSgS6oO)Aq; zI7J~w=8hx-a2*4z3=5D&uDPO|4O?(UBedeq1L}`~nEDmC0d1YYpF1Hr$ZOS9QLtrp z6nW>C@!SbU@@ZZaznY-{-@R|GhS4I()!-?p@Vi*TJjF`oVea-G1X<!}u}JfP>Nzd! y-^Vp%pcMc>T*9)K0*<gkF<00Bd$o=vL*`B(>lM!C8AZPg+G7PFFQ7O_Sp6RwD_p|> literal 0 HcmV?d00001 diff --git a/theme/fonts/glyphicons-halflings-regular.svg b/theme/fonts/glyphicons-halflings-regular.svg new file mode 100755 index 0000000..5fee068 --- /dev/null +++ b/theme/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,228 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata></metadata> +<defs> +<font id="glyphicons_halflingsregular" horiz-adv-x="1200" > +<font-face units-per-em="1200" ascent="960" descent="-240" /> +<missing-glyph horiz-adv-x="500" /> +<glyph /> +<glyph /> +<glyph unicode=" " /> +<glyph unicode="*" d="M1100 500h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200z" /> +<glyph unicode="+" d="M1100 400h-400v-400h-300v400h-400v300h400v400h300v-400h400v-300z" /> +<glyph unicode="&#xa0;" /> +<glyph unicode="&#x2000;" horiz-adv-x="652" /> +<glyph unicode="&#x2001;" horiz-adv-x="1304" /> +<glyph unicode="&#x2002;" horiz-adv-x="652" /> +<glyph unicode="&#x2003;" horiz-adv-x="1304" /> +<glyph unicode="&#x2004;" horiz-adv-x="434" /> +<glyph unicode="&#x2005;" horiz-adv-x="326" /> +<glyph unicode="&#x2006;" horiz-adv-x="217" /> +<glyph unicode="&#x2007;" horiz-adv-x="217" /> +<glyph unicode="&#x2008;" horiz-adv-x="163" /> +<glyph unicode="&#x2009;" horiz-adv-x="260" /> +<glyph unicode="&#x200a;" horiz-adv-x="72" /> +<glyph unicode="&#x202f;" horiz-adv-x="260" /> +<glyph unicode="&#x205f;" horiz-adv-x="326" /> +<glyph unicode="&#x20ac;" d="M800 500h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257 q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406z" /> +<glyph unicode="&#x2212;" d="M1100 700h-900v-300h900v300z" /> +<glyph unicode="&#x2601;" d="M178 300h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57z" /> +<glyph unicode="&#x2709;" d="M1200 1100h-1200l600 -603zM300 600l-300 -300v600zM1200 900v-600l-300 300zM800 500l400 -400h-1200l400 400l200 -200z" /> +<glyph unicode="&#x270f;" d="M1101 889l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13l-94 -97zM401 189l614 614l-214 214l-614 -614zM-13 -13l333 112l-223 223z" /> +<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" /> +<glyph unicode="&#xe001;" d="M700 100h300v-100h-800v100h300v550l-500 550h1200l-500 -550v-550z" /> +<glyph unicode="&#xe002;" d="M1000 934v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7q-79 -25 -122.5 -82t-25.5 -112t86 -75.5t147 5.5 q65 21 109 69t44 90v606z" /> +<glyph unicode="&#xe003;" d="M913 432l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -142 -78 -261zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" /> +<glyph unicode="&#xe005;" d="M649 949q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5t-94 124.5t-33.5 117.5q0 64 28 123t73 100.5t104.5 64t119 20.5 t120 -38.5t104.5 -104.5z" /> +<glyph unicode="&#xe006;" d="M791 522l145 -449l-384 275l-382 -275l146 447l-388 280h479l146 400h2l146 -400h472zM168 71l2 1z" /> +<glyph unicode="&#xe007;" d="M791 522l145 -449l-384 275l-382 -275l146 447l-388 280h479l146 400h2l146 -400h472zM747 331l-74 229l193 140h-235l-77 211l-78 -211h-239l196 -142l-73 -226l192 140zM168 71l2 1z" /> +<glyph unicode="&#xe008;" d="M1200 143v-143h-1200v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100z" /> +<glyph unicode="&#xe009;" d="M1200 1100v-1100h-1200v1100h1200zM200 1000h-100v-100h100v100zM900 1000h-600v-400h600v400zM1100 1000h-100v-100h100v100zM200 800h-100v-100h100v100zM1100 800h-100v-100h100v100zM200 600h-100v-100h100v100zM1100 600h-100v-100h100v100zM900 500h-600v-400h600 v400zM200 400h-100v-100h100v100zM1100 400h-100v-100h100v100zM200 200h-100v-100h100v100zM1100 200h-100v-100h100v100z" /> +<glyph unicode="&#xe010;" d="M500 1050v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5zM1100 1050v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400 q21 0 35.5 -14.5t14.5 -35.5zM500 450v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5zM1100 450v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5z" /> +<glyph unicode="&#xe011;" d="M300 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5zM1100 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM300 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1100 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM300 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 250v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1100 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5 t14.5 -35.5z" /> +<glyph unicode="&#xe012;" d="M300 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1200 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h700 q21 0 35.5 -14.5t14.5 -35.5zM300 450v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-200q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM1200 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5zM300 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1200 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5z" /> +<glyph unicode="&#xe013;" d="M448 34l818 820l-212 212l-607 -607l-206 207l-212 -212z" /> +<glyph unicode="&#xe014;" d="M882 106l-282 282l-282 -282l-212 212l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282z" /> +<glyph unicode="&#xe015;" d="M913 432l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -142 -78 -261zM507 363q137 0 233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5t-234 -97t-97 -233 t97 -233t234 -97zM600 800h100v-200h-100v-100h-200v100h-100v200h100v100h200v-100z" /> +<glyph unicode="&#xe016;" d="M913 432l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -141 -78 -262zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 801v-200h400v200h-400z" /> +<glyph unicode="&#xe017;" d="M700 750v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5zM800 975v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123 t-123 184t-45.5 224.5q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155z" /> +<glyph unicode="&#xe018;" d="M1200 1h-200v1200h200v-1200zM900 1h-200v800h200v-800zM600 1h-200v500h200v-500zM300 301h-200v-300h200v300z" /> +<glyph unicode="&#xe019;" d="M488 183l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5 q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39zM600 815q89 0 152 -63 t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152q0 88 63 151t152 63z" /> +<glyph unicode="&#xe020;" d="M900 1100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100zM800 1100v100h-300v-100h300zM200 900h900v-800q0 -41 -29.5 -71 t-70.5 -30h-700q-41 0 -70.5 30t-29.5 71v800zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" /> +<glyph unicode="&#xe021;" d="M1301 601h-200v-600h-300v400h-300v-400h-300v600h-200l656 644z" /> +<glyph unicode="&#xe022;" d="M600 700h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18v1150q0 11 7 18t18 7h475v-500zM1000 800h-300v300z" /> +<glyph unicode="&#xe023;" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM600 600h200 v-100h-300v400h100v-300z" /> +<glyph unicode="&#xe024;" d="M721 400h-242l-40 -400h-539l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538zM712 500l-27 300h-170l-27 -300h224z" /> +<glyph unicode="&#xe025;" d="M1100 400v-400h-1100v400h490l-290 300h200v500h300v-500h200l-290 -300h490zM988 300h-175v-100h175v100z" /> +<glyph unicode="&#xe026;" d="M600 1199q122 0 233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233t47.5 233t127.5 191t191 127.5t233 47.5zM600 1012q-170 0 -291 -121t-121 -291t121 -291t291 -121t291 121 t121 291t-121 291t-291 121zM700 600h150l-250 -300l-250 300h150v300h200v-300z" /> +<glyph unicode="&#xe027;" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM850 600h-150 v-300h-200v300h-150l250 300z" /> +<glyph unicode="&#xe028;" d="M0 500l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18v475zM903 1000h-606l-97 -500h200l50 -200h300l50 200h200z" /> +<glyph unicode="&#xe029;" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5zM797 598 l-297 -201v401z" /> +<glyph unicode="&#xe030;" d="M1177 600h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123t-123 -184t-45.5 -224.5t45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123 t123 184t45.5 224.5z" /> +<glyph unicode="&#xe031;" d="M700 800l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400zM500 400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122l-145 -145v400h400z" /> +<glyph unicode="&#xe032;" d="M100 1200v-1200h1100v1200h-1100zM1100 100h-900v900h900v-900zM400 800h-100v100h100v-100zM1000 800h-500v100h500v-100zM400 600h-100v100h100v-100zM1000 600h-500v100h500v-100zM400 400h-100v100h100v-100zM1000 400h-500v100h500v-100zM400 200h-100v100h100v-100 zM1000 300h-500v-100h500v100z" /> +<glyph unicode="&#xe034;" d="M200 0h-100v1100h100v-1100zM1100 600v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5z" /> +<glyph unicode="&#xe035;" d="M1200 275v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5t-49.5 -227v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50 q11 0 18 7t7 18zM400 480v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14zM1000 480v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14z" /> +<glyph unicode="&#xe036;" d="M0 800v-400h300l300 -200v800l-300 -200h-300zM971 600l141 -141l-71 -71l-141 141l-141 -141l-71 71l141 141l-141 141l71 71l141 -141l141 141l71 -71z" /> +<glyph unicode="&#xe037;" d="M0 800v-400h300l300 -200v800l-300 -200h-300zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" /> +<glyph unicode="&#xe038;" d="M974 186l6 8q142 178 142 405q0 230 -144 408l-6 8l-83 -64l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8zM300 801l300 200v-800l-300 200h-300v400h300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257z" /> +<glyph unicode="&#xe039;" d="M100 700h400v100h100v100h-100v300h-500v-600h100v100zM1200 700v500h-600v-200h100v-300h200v-300h300v200h-200v100h200zM100 1100h300v-300h-300v300zM800 800v300h300v-300h-300zM200 900h100v100h-100v-100zM900 1000h100v-100h-100v100zM300 600h-100v-100h-200 v-500h500v500h-200v100zM900 200v-100h-200v100h-100v100h100v200h-200v100h300v-300h200v-100h-100zM400 400v-300h-300v300h300zM300 200h-100v100h100v-100zM1100 300h100v-100h-100v100zM600 100h100v-100h-100v100zM1200 100v-100h-300v100h300z" /> +<glyph unicode="&#xe040;" d="M100 1200h-100v-1000h100v1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 1200v-1000h-200v1000h200zM400 100v-100h-300v100h300zM500 91h100v-91h-100v91zM700 91h100v-91h-100v91zM1100 91v-91h-200v91h200z " /> +<glyph unicode="&#xe041;" d="M1200 500l-500 -500l-699 700v475q0 10 7.5 17.5t17.5 7.5h474zM320 882q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71t29 -71q30 -30 71.5 -30t71.5 30z" /> +<glyph unicode="&#xe042;" d="M1201 500l-500 -500l-699 700v475q0 11 7 18t18 7h474zM1501 500l-500 -500l-50 50l450 450l-700 700h100zM320 882q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71t30 -71q29 -30 71 -30t71 30z" /> +<glyph unicode="&#xe043;" d="M1200 1200v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900v1025l175 175h925z" /> +<glyph unicode="&#xe045;" d="M947 829l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18l-94 -346l40 -124h592zM1200 800v-700h-200v200h-800v-200h-200v700h200l100 -200h600l100 200h200zM881 176l38 -152q2 -10 -3.5 -17t-15.5 -7h-600q-10 0 -15.5 7t-3.5 17l38 152q2 10 11.5 17t19.5 7 h500q10 0 19.5 -7t11.5 -17z" /> +<glyph unicode="&#xe047;" d="M1200 0v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417zM416 521l178 457l46 -140l116 -317 h-340z" /> +<glyph unicode="&#xe048;" d="M100 1199h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111t-162 -38.5h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21 t-29 14t-49 14.5v70zM400 1079v-379h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400z" /> +<glyph unicode="&#xe049;" d="M877 1200l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425z" /> +<glyph unicode="&#xe050;" d="M1150 1200h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49v300h150h700zM100 1000v-800h75l-125 -167l-125 167h75v800h-75l125 167 l125 -167h-75z" /> +<glyph unicode="&#xe051;" d="M950 1201h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50v300h150h700zM200 101h800v75l167 -125l-167 -125v75h-800v-75l-167 125l167 125 v-75z" /> +<glyph unicode="&#xe052;" d="M700 950v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35zM1100 650v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h1000 q21 0 35.5 15t14.5 35zM900 350v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35zM1200 50v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35 t35.5 -15h1100q21 0 35.5 15t14.5 35z" /> +<glyph unicode="&#xe053;" d="M1000 950v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35zM1200 650v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h1100 q21 0 35.5 15t14.5 35zM1000 350v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35zM1200 50v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35 t35.5 -15h1100q21 0 35.5 15t14.5 35z" /> +<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" /> +<glyph unicode="&#xe055;" d="M0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" /> +<glyph unicode="&#xe056;" d="M0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" /> +<glyph unicode="&#xe057;" d="M400 1100h-100v-1100h100v1100zM700 950v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35zM1100 650v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15 h500q20 0 35 15t15 35zM100 425v75h-201v100h201v75l166 -125zM900 350v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35zM1200 50v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5 v-100q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35z" /> +<glyph unicode="&#xe058;" d="M201 950v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35zM801 1100h100v-1100h-100v1100zM601 650v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15 h500q20 0 35 15t15 35zM1101 425v75h200v100h-200v75l-167 -125zM401 350v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35zM701 50v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5 v-100q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35z" /> +<glyph unicode="&#xe059;" d="M900 925v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53zM1200 300l-300 300l300 300v-600z" /> +<glyph unicode="&#xe060;" d="M1200 1056v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31zM1100 1000h-1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500zM476 750q0 -56 -39 -95t-95 -39t-95 39t-39 95t39 95t95 39t95 -39 t39 -95z" /> +<glyph unicode="&#xe062;" d="M600 1213q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262q0 124 60.5 231.5t165 172t226.5 64.5zM599 514q107 0 182.5 75.5t75.5 182.5t-75.5 182 t-182.5 75t-182 -75.5t-75 -181.5q0 -107 75.5 -182.5t181.5 -75.5z" /> +<glyph unicode="&#xe063;" d="M600 1199q122 0 233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233t47.5 233t127.5 191t191 127.5t233 47.5zM600 173v854q-176 0 -301.5 -125t-125.5 -302t125.5 -302t301.5 -125z " /> +<glyph unicode="&#xe064;" d="M554 1295q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5zM455 296q-7 6 -18 17 t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156q14 -82 59.5 -136t136.5 -80z" /> +<glyph unicode="&#xe065;" d="M1108 902l113 113l-21 85l-92 28l-113 -113zM1100 625v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125zM436 341l161 50l412 412l-114 113l-405 -405z" /> +<glyph unicode="&#xe066;" d="M1100 453v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5z M813 431l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209z" /> +<glyph unicode="&#xe067;" d="M1100 569v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69z M625 348l566 567l-136 137l-430 -431l-147 147l-136 -136z" /> +<glyph unicode="&#xe068;" d="M900 303v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198l-300 300l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296z" /> +<glyph unicode="&#xe069;" d="M900 0l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100z" /> +<glyph unicode="&#xe070;" d="M1200 0l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100z" /> +<glyph unicode="&#xe071;" d="M1200 0l-500 488v-488l-564 550l564 550v-487l500 487v-1100z" /> +<glyph unicode="&#xe072;" d="M1100 550l-900 550v-1100z" /> +<glyph unicode="&#xe073;" d="M500 150v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM900 150v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -21 14.5 -35.5t35.5 -14.5h200 q21 0 35.5 14.5t14.5 35.5z" /> +<glyph unicode="&#xe074;" d="M1100 150v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35z" /> +<glyph unicode="&#xe075;" d="M500 0v488l-500 -488v1100l500 -487v487l564 -550z" /> +<glyph unicode="&#xe076;" d="M1050 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488l-500 -488v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5z" /> +<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5z" /> +<glyph unicode="&#xe078;" d="M650 1064l-550 -564h1100zM1200 350v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" /> +<glyph unicode="&#xe079;" d="M777 7l240 240l-353 353l353 353l-240 240l-592 -594z" /> +<glyph unicode="&#xe080;" d="M513 -46l-241 240l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1z" /> +<glyph unicode="&#xe081;" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 900v-200h-200v-200h200v-200h200v200h200v200h-200v200h-200z" /> +<glyph unicode="&#xe082;" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM300 700v-200h600v200h-600z" /> +<glyph unicode="&#xe083;" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM247 741l141 -141l-142 -141l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141 l-141 142z" /> +<glyph unicode="&#xe084;" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM546 623l-102 102l-174 -174l276 -277l411 411l-175 174z" /> +<glyph unicode="&#xe085;" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 500h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3 q-105 0 -172 -56t-67 -183h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5zM500 400v-100h200v100h-200z" /> +<glyph unicode="&#xe086;" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 900v-100h200v100h-200zM400 700v-100h100v-200h-100v-100h400v100h-100v300h-300z" /> +<glyph unicode="&#xe087;" d="M1200 700v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203zM700 500v-206q149 48 201 206h-201v200h200 q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210q24 -73 79.5 -127.5t130.5 -78.5v206h200z" /> +<glyph unicode="&#xe088;" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM844 735 l-135 -135l135 -135l-109 -109l-135 135l-135 -135l-109 109l135 135l-135 135l109 109l135 -135l135 135z" /> +<glyph unicode="&#xe089;" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM896 654 l-346 -345l-228 228l141 141l87 -87l204 205z" /> +<glyph unicode="&#xe090;" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM248 385l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5q0 -115 62 -215zM955 809l-564 -564q97 -59 209 -59q171 0 292.5 121.5 t121.5 292.5q0 112 -59 209z" /> +<glyph unicode="&#xe091;" d="M1200 400h-600v-301l-600 448l600 453v-300h600v-300z" /> +<glyph unicode="&#xe092;" d="M600 400h-600v300h600v300l600 -453l-600 -448v301z" /> +<glyph unicode="&#xe093;" d="M1098 600h-298v-600h-300v600h-296l450 600z" /> +<glyph unicode="&#xe094;" d="M998 600l-449 -600l-445 600h296v600h300v-600h298z" /> +<glyph unicode="&#xe095;" d="M600 199v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453z" /> +<glyph unicode="&#xe096;" d="M1200 1200h-400l129 -129l-294 -294l142 -142l294 294l129 -129v400zM565 423l-294 -294l129 -129h-400v400l129 -129l294 294z" /> +<glyph unicode="&#xe097;" d="M871 730l129 -130h-400v400l129 -129l295 295l142 -141zM200 600h400v-400l-129 130l-295 -295l-142 141l295 295z" /> +<glyph unicode="&#xe101;" d="M600 1177q118 0 224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5t45.5 224.5t123 184t184 123t224.5 45.5zM686 549l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5 l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5zM700 400h-200v-100h200v100z" /> +<glyph unicode="&#xe102;" d="M1200 900h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100h100v-200h400v300h200v-300h400v200h100v100z M731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269zM481 900h-281q-3 0 14 48t35 96l18 47zM100 0h400v400h-400v-400zM700 400h400v-400h-400v400z" /> +<glyph unicode="&#xe103;" d="M0 121l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55l-201 -202 v143zM692 611q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5t86.5 76.5q55 66 367 234z" /> +<glyph unicode="&#xe105;" d="M1261 600l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30l-26 40l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5 t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30zM600 240q64 0 123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212 q0 85 46 158q-102 -87 -226 -258q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5zM484 762l-107 -106q49 -124 154 -191l105 105q-37 24 -75 72t-57 84z" /> +<glyph unicode="&#xe106;" d="M906 1200l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43l-26 40l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148zM1261 600l-26 -40q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5 t-124 -100t-146.5 -79l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52zM513 264l37 141q-107 18 -178.5 101.5t-71.5 193.5q0 85 46 158q-102 -87 -226 -258q210 -282 393 -336z M484 762l-107 -106q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68z" /> +<glyph unicode="&#xe107;" d="M-47 0h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66t50.5 -34zM700 200v100h-200v-100h-345l445 723l445 -723h-345zM700 700h-200v-100l100 -300l100 300v100z" /> +<glyph unicode="&#xe108;" d="M800 711l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41q0 20 11 44.5t26 38.5 l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339z" /> +<glyph unicode="&#xe110;" d="M941 800l-600 -600h-341v200h259l600 600h241v198l300 -295l-300 -300v197h-159zM381 678l141 142l-181 180h-341v-200h259zM1100 598l300 -295l-300 -300v197h-241l-181 181l141 142l122 -123h159v198z" /> +<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" /> +<glyph unicode="&#xe112;" d="M400 900h-300v300h300v-300zM1100 900h-300v300h300v-300zM1100 800v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5t-58 109.5t-31.5 116t-15 104t-3 83v200h300v-250q0 -113 6 -145 q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300z" /> +<glyph unicode="&#xe113;" d="M902 184l226 227l-578 579l-580 -579l227 -227l352 353z" /> +<glyph unicode="&#xe114;" d="M650 218l578 579l-226 227l-353 -353l-352 353l-227 -227z" /> +<glyph unicode="&#xe115;" d="M1198 400v600h-796l215 -200h381v-400h-198l299 -283l299 283h-200zM-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196z" /> +<glyph unicode="&#xe116;" d="M1050 1200h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35 q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43l-100 475q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5z" /> +<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" /> +<glyph unicode="&#xe118;" d="M201 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000zM1501 700l-300 -700h-1200l300 700h1200z" /> +<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" /> +<glyph unicode="&#xe120;" d="M900 303v197h-600v-197l-300 297l300 298v-198h600v198l300 -298z" /> +<glyph unicode="&#xe121;" d="M31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM100 300h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM900 200h-100v-100h100v100z M1100 200h-100v-100h100v100z" /> +<glyph unicode="&#xe122;" d="M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35zM325 800l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351v250v5 q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200zM-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5z" /> +<glyph unicode="&#xe124;" d="M445 1180l-45 -233l-224 78l78 -225l-233 -44l179 -156l-179 -155l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180z" /> +<glyph unicode="&#xe125;" d="M700 1200h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5zM700 925l-50 -225h450 v-125l-250 -375h-214l-136 100h-100v375l150 212l100 213h50v-175zM0 800v-600h200v600h-200z" /> +<glyph unicode="&#xe126;" d="M700 0h-50q-27 0 -51 20t-38 48l-96 198l-145 196q-20 26 -20 63v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5zM200 400h-200v600h200 v-600zM700 275l-50 225h450v125l-250 375h-214l-136 -100h-100v-375l150 -212l100 -213h50v175z" /> +<glyph unicode="&#xe127;" d="M364 873l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM408 792v-503 l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83zM208 200h-200v600h200v-600z" /> +<glyph unicode="&#xe128;" d="M475 1104l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111t54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6zM370 946 l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100h222q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237zM1199 201h-200v600h200v-600z" /> +<glyph unicode="&#xe129;" d="M1100 473v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90zM911 400h-503l-236 339 l83 86l183 -146q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294zM1000 200v-200h-600v200h600z" /> +<glyph unicode="&#xe130;" d="M305 1104v200h600v-200h-600zM605 310l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15l-230 -362q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106z M905 804v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146l-83 86l237 339h503z" /> +<glyph unicode="&#xe131;" d="M603 1195q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM598 701h-298v-201h300l-2 -194l402 294l-402 298v-197z" /> +<glyph unicode="&#xe132;" d="M597 1195q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5zM200 600l400 -294v194h302v201h-300v197z" /> +<glyph unicode="&#xe133;" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM300 600h200v-300h200v300h200l-300 400z" /> +<glyph unicode="&#xe134;" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM500 900v-300h-200l300 -400l300 400h-200v300h-200z" /> +<glyph unicode="&#xe135;" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM627 1101q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6 q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55 t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q102 -2 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7 q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5 t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23q-19 -3 -37 0zM613 994q0 -18 8 -42.5t16.5 -44t9.5 -23.5q-9 2 -31 5t-36 5t-32 8t-30 14q3 12 16 30t16 25q10 -10 18.5 -10 t14 6t14.5 14.5t16 12.5z" /> +<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " /> +<glyph unicode="&#xe138;" d="M1100 1200v-100h-1000v100h1000zM150 1000h900l-350 -500v-300l-200 -200v500z" /> +<glyph unicode="&#xe140;" d="M329 729l142 142l-200 200l129 129h-400v-400l129 129zM1200 1200v-400l-129 129l-200 -200l-142 142l200 200l-129 129h400zM271 129l129 -129h-400v400l129 -129l200 200l142 -142zM1071 271l129 129v-400h-400l129 129l-200 200l142 142z" /> +<glyph unicode="&#xe141;" d="M596 1192q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM596 1010q-171 0 -292.5 -121.5t-121.5 -292.5q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5zM455 905 q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5t16 38.5t39 16.5zM708 821l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5 q0 32 20.5 56.5t51.5 29.5zM855 709q23 0 38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39q0 22 16 38t39 16zM345 709q23 0 39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39t15.5 38.5t38.5 15.5z" /> +<glyph unicode="&#xe143;" d="M649 54l-16 22q-90 125 -293 323q-71 70 -104.5 105.5t-77 89.5t-61 99t-17.5 91q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-203 -198 -293 -323zM844 524l12 12 q64 62 97.5 97t64.5 79t31 72q0 71 -48 119t-105 48q-74 0 -132 -82l-118 -171l-114 174q-51 79 -123 79q-60 0 -109.5 -49t-49.5 -118q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203z" /> +<glyph unicode="&#xe144;" d="M476 406l19 -17l105 105l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159q0 -93 66 -159zM123 193l141 -141q66 -66 159 -66q95 0 159 66 l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159q0 -94 66 -160z" /> +<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM900 1000h-600v-700h600v700zM600 46q43 0 73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5t-73.5 -30.5t-30.5 -73.5 t30.5 -73.5t73.5 -30.5z" /> +<glyph unicode="&#xe148;" d="M700 1029v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5 t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5zM600 755v274q-61 -8 -97.5 -37.5t-36.5 -102.5q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3zM700 548 v-311q170 18 170 151q0 64 -44 99.5t-126 60.5z" /> +<glyph unicode="&#xe149;" d="M866 300l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5 t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94 q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30z" /> +<glyph unicode="&#xe150;" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1200l298 -300h-198v-900h-200v900h-198z" /> +<glyph unicode="&#xe151;" d="M400 300h198l-298 -300l-298 300h198v900h200v-900zM1000 1200v-500h-100v100h-100v-100h-100v500h300zM901 1100h-100v-200h100v200zM700 500h300v-200h-99v-100h-100v100h99v100h-200v100zM800 100h200v-100h-300v200h100v-100z" /> +<glyph unicode="&#xe152;" d="M400 300h198l-298 -300l-298 300h198v900h200v-900zM1000 1200v-200h-99v-100h-100v100h99v100h-200v100h300zM800 800h200v-100h-300v200h100v-100zM700 500h300v-500h-100v100h-100v-100h-100v500zM801 200h100v200h-100v-200z" /> +<glyph unicode="&#xe153;" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1100h-100v100h200v-500h-100v400zM1100 500v-500h-100v100h-200v400h300zM1001 400h-100v-200h100v200z" /> +<glyph unicode="&#xe154;" d="M300 0l298 300h-198v900h-200v-900h-198zM1100 1200v-500h-100v100h-200v400h300zM1001 1100h-100v-200h100v200zM900 400h-100v100h200v-500h-100v400z" /> +<glyph unicode="&#xe155;" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" /> +<glyph unicode="&#xe156;" d="M300 0l298 300h-198v900h-200v-900h-198zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" /> +<glyph unicode="&#xe157;" d="M400 1100h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5 t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5z" /> +<glyph unicode="&#xe158;" d="M700 0h-300q-163 0 -281.5 117.5t-118.5 282.5v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5 t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5zM400 800v-500l333 250z" /> +<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM900 300v500q0 41 -29.5 70.5t-70.5 29.5h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5zM800 700h-500l250 -333z" /> +<glyph unicode="&#xe160;" d="M1100 700v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5zM900 300v500q0 41 -29.5 70.5t-70.5 29.5h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5zM550 733l-250 -333h500z" /> +<glyph unicode="&#xe161;" d="M500 1100h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200zM700 550l-400 -350v200h-300v300h300v200z" /> +<glyph unicode="&#xe162;" d="M403 2l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32z" /> +<glyph unicode="&#xe163;" d="M800 200h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185zM900 200v200h-300v300h300v200l400 -350z" /> +<glyph unicode="&#xe164;" d="M1200 700l-149 149l-342 -353l-213 213l353 342l-149 149h500v-500zM1022 571l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5v-300 q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98z" /> +<glyph unicode="&#xe165;" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM600 794 q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" /> +<glyph unicode="&#xe166;" d="M700 800v400h-300v-400h-300l445 -500l450 500h-295zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> +<glyph unicode="&#xe167;" d="M400 700v-300h300v300h295l-445 500l-450 -500h300zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> +<glyph unicode="&#xe168;" d="M405 400l596 596l-154 155l-442 -442l-150 151l-155 -155zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> +<glyph unicode="&#xe169;" d="M409 1103l-97 97l-212 -212l97 -98zM650 861l-149 149l-212 -212l149 -149l-238 -248h700v699zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> +<glyph unicode="&#xe170;" d="M539 950l-149 -149l212 -212l149 148l248 -237v700h-699zM297 709l-97 -97l212 -212l98 97zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> +<glyph unicode="&#xe171;" d="M1200 1199v-1079l-475 272l-310 -393v416h-392zM1166 1148l-672 -712v-226z" /> +<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1200h-100v-200h100v200z" /> +<glyph unicode="&#xe173;" d="M578 500h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120zM700 1200h-100v-200h100v200zM1300 538l-475 -476l-244 244l123 123l120 -120l353 352z" /> +<glyph unicode="&#xe174;" d="M529 500h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170zM700 1200h-100v-200h100v200zM1167 6l-170 170l-170 -170l-127 127l170 170l-170 170l127 127l170 -170l170 170l127 -128 l-170 -169l170 -170z" /> +<glyph unicode="&#xe175;" d="M700 500h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200zM700 1000h-100v200h100v-200zM1000 600h-200v-300h-200l300 -300l300 300h-200v300z" /> +<glyph unicode="&#xe176;" d="M602 500h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200zM700 1000h-100v200h100v-200zM1000 300h200l-300 300l-300 -300h200v-300h200v300z" /> +<glyph unicode="&#xe177;" d="M1200 900v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h1200zM0 800v-550q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200zM100 500h400v-200h-400v200z" /> +<glyph unicode="&#xe178;" d="M500 1000h400v198l300 -298l-300 -298v198h-400v200zM100 800v200h100v-200h-100zM400 800h-100v200h100v-200zM700 300h-400v-198l-300 298l300 298v-198h400v-200zM800 500h100v-200h-100v200zM1000 500v-200h100v200h-100z" /> +<glyph unicode="&#xe179;" d="M1200 50v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM550 1200l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447l-100 203v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300z" /> +<glyph unicode="&#xe180;" d="M1100 106v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394 q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5z" /> +<glyph unicode="&#xe181;" d="M675 1000l-100 100h-375l-100 -100h400l200 -200v-98l295 98h105v200h-425zM500 300v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5zM100 800h300v-200h-300v200zM700 565l400 133 v-163l-400 -133v163zM100 500h300v-200h-300v200zM805 300l295 98v-298h-425l-100 -100h-375l-100 100h400l200 200h105z" /> +<glyph unicode="&#xe182;" d="M179 1169l-162 -162q-1 -11 -0.5 -32.5t16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118 q17 17 20 41.5t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14z" /> +<glyph unicode="&#xe183;" d="M1200 712v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40t-53.5 -36.5t-31 -27.5l-9 -10v-200q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38 t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5zM800 650l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5 t30 -27.5t12 -24l1 -10v-50z" /> +<glyph unicode="&#xe184;" d="M175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250zM1200 100v-100h-1100v100h1100z" /> +<glyph unicode="&#xe185;" d="M600 1100h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300v1000q0 41 29.5 70.5t70.5 29.5zM1000 800h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300v700q0 41 29.5 70.5t70.5 29.5zM400 0v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400h300z" /> +<glyph unicode="&#xe186;" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-300h200v-100h-200v-100h300v300h-200v100h200v100h-300zM800 800h-200v-500h200v100h100v300h-100 v100zM800 700v-300h-100v300h100z" /> +<glyph unicode="&#xe187;" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM400 600h-100v200h-100v-500h100v200h100v-200h100v500h-100v-200zM800 800h-200v-500h200v100h100v300h-100 v100zM800 700v-300h-100v300h100z" /> +<glyph unicode="&#xe188;" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-500h300v100h-200v300h200v100h-300zM600 800v-500h300v100h-200v300h200v100h-300z" /> +<glyph unicode="&#xe189;" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM500 700l-300 -150l300 -150v300zM600 400l300 150l-300 150v-300z" /> +<glyph unicode="&#xe190;" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM900 800v-500h-700v500h700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM800 700h-130 q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300z" /> +<glyph unicode="&#xe191;" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-300h200v-100h-200v-100h300v300h-200v100h200v100h-300zM800 300h100v500h-200v-100h100v-400z M601 300h100v100h-100v-100z" /> +<glyph unicode="&#xe192;" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM300 700v100h-100v-500h300v400h-200zM800 300h100v500h-200v-100h100v-400zM401 400h-100v200h100v-200z M601 300h100v100h-100v-100z" /> +<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM1000 900h-900v-700h900v700zM400 700h-200v100h300v-300h-99v-100h-100v100h99v200zM800 700h-100v100h200v-500h-100v400zM201 400h100v-100 h-100v100zM701 300h-100v100h100v-100z" /> +<glyph unicode="&#xe194;" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM800 700h-300 v-200h300v-100h-300l-100 100v200l100 100h300v-100z" /> +<glyph unicode="&#xe195;" d="M596 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM596 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM800 700v-100 h-100v100h-200v-100h200v-100h-200v-100h-100v400h300zM800 400h-100v100h100v-100z" /> +<glyph unicode="&#xe197;" d="M800 300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57h222v300h400v-300zM700 200h200l-300 -300 l-300 300h200v300h200v-300z" /> +<glyph unicode="&#xe198;" d="M600 714l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57h8zM700 -100h-200v300h-200l300 300 l300 -300h-200v-300z" /> +<glyph unicode="&#xe199;" d="M700 200h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-155l-75 -45h350l-75 45v155z" /> +<glyph unicode="&#xe200;" d="M700 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5 q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350z" /> +<glyph unicode="&#x1f4bc;" d="M800 1000h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100zM500 1000h200v100h-200v-100zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" /> +<glyph unicode="&#x1f4c5;" d="M1100 900v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150h1100zM0 800v-750q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100zM100 600h100v-100h-100v100zM300 600h100v-100h-100v100z M500 600h100v-100h-100v100zM700 600h100v-100h-100v100zM900 600h100v-100h-100v100zM100 400h100v-100h-100v100zM300 400h100v-100h-100v100zM500 400h100v-100h-100v100zM700 400h100v-100h-100v100zM900 400h100v-100h-100v100zM100 200h100v-100h-100v100zM300 200 h100v-100h-100v100zM500 200h100v-100h-100v100zM700 200h100v-100h-100v100zM900 200h100v-100h-100v100z" /> +<glyph unicode="&#x1f4cc;" d="M902 1185l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207l-380 -303l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15z" /> +<glyph unicode="&#x1f4ce;" d="M518 119l69 -60l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163t35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84 t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348 q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256z" /> +<glyph unicode="&#x1f4f7;" d="M1200 200v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5z M1000 700h-100v100h100v-100zM844 500q0 -100 -72 -172t-172 -72t-172 72t-72 172t72 172t172 72t172 -72t72 -172zM706 500q0 44 -31 75t-75 31t-75 -31t-31 -75t31 -75t75 -31t75 31t31 75z" /> +<glyph unicode="&#x1f512;" d="M900 800h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" /> +<glyph unicode="&#x1f514;" d="M1062 400h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94 q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327zM600 104q-54 0 -103 6q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6z" /> +<glyph unicode="&#x1f516;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" /> +<glyph unicode="&#x1f525;" d="M400 755q2 -12 8 -41.5t8 -43t6 -39.5t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85t5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5 q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129 q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5z" /> +<glyph unicode="&#x1f527;" d="M948 778l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138z" /> +</font> +</defs></svg> \ No newline at end of file diff --git a/theme/fonts/glyphicons-halflings-regular.ttf b/theme/fonts/glyphicons-halflings-regular.ttf new file mode 100755 index 0000000000000000000000000000000000000000..be784dc1d5bcb92ab155f578f3723524a3dd9688 GIT binary patch literal 29512 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%0DQ&GeghWoFLr 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 DlhOCh literal 0 HcmV?d00001 diff --git a/theme/fonts/glyphicons-halflings-regular.woff b/theme/fonts/glyphicons-halflings-regular.woff new file mode 100755 index 0000000000000000000000000000000000000000..2cc3e4852a5a42e6aadd6284e067b66e14a57bc7 GIT binary patch literal 16448 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 SpmL}^|C{CHXC=u2fd30xD#Mci literal 0 HcmV?d00001 diff --git a/theme/images/barcode_scaner.png b/theme/images/barcode_scaner.png deleted file mode 100644 index 7e337584829132247d788823d9e2b5d6e8e7b037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22057 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 diff --git a/theme/images/foundation/left-arrow.png b/theme/images/foundation/left-arrow.png deleted file mode 100644 index 7e3f2d62d929662159e348e77965c9e50e2fce9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmeAS@N?(olHy`uVBq!ia0vp^en6bU!3HEX=Cb)RFfd;9ba4!+xb^mqwclX}k=8`< z%-|GB%}v{Mj!atpM#1|4Q)HX&1ils}Ed^0t)~Tru(=;@am&~+${%m`RN_g>lyPu}X zr$a+S!=J=6GFm)nVD4jJmnk^F=-$B02jnUrU<7hkMe2yX&D&o6>i56gtx<Ow%GIK- zm#)9R|90Buoy>V^QL)$g=d3cmIBQwu6RG9>&)C(Qp0TR8JY!aGd&a2Vv5a56YZ<S4 z&oXZHzGa;04a?Zmo0hSrw=82$Z(GKg-Vr8uPGqgl9K$F}i{dRt1&kLy9cFbr%`MKM zD<5O9#ioGq;-$l^uHM|@61uW61zSuC#2cou<?X+3&+hKcTy8bjPJPSE6_1VAOJ?5w zmf9qJ{A2d+yZ4yO)25w%`t@N!1%Kc4v<KV=yv-{L_H1Egdc0I$NJQU%VME2wF4n`R zqYVV&{w;F+a7u))A$;8q%eb3tJs(e*Cw48r*r7Pj&p53jidXXCOViY*<&|0z4_?MK z9R0W@|M#JaU;MKdRmcU)INHqb+$u5edQqRiy!%RvIOaXSw3T7rd+y1HD(<a+`R@_$ zVS{zoUq?Skd*J&&)Jm>j{<2-cn&YV9dq5Bv@O&0bz<}TRg#Gg5^Sj!0B^`iq%;4$j K=d#Wzp$PyAmD(Es diff --git a/theme/images/foundation/mask-black.png b/theme/images/foundation/mask-black.png deleted file mode 100644 index 02f3fbab28597dfc981bb8a5ba787c6e09630cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s7`}v6b0005iNkl<ZSi{X& zL1zRp6b@xiW$394b1i#XhF*JJ%A88+sXw4UqYR~|vZt~vL+M}HYp<o0o|a`9mL<(> zlkLppW%4q~Z1VUn@y)kil9!jfC6rPkaER6*-2-6a2AiL=NTnY-uv&w%rfN|B9CRT_ z9Yhh|;LHIc!4j#CXzY>bh(c|JC2H5PJsB-=#)%&~;wg3=*PK{%5id=XBF7Np&UHlm zO0^LQdIyo4CFhNypooZ}1VoFzf^ho(;m%etmP9QDvzFk_Mlc1Yd}b<m%~J;2>DX1; zJlW*oj$zI)BFcTo3#vsNoRnABf&y1VoaN^sibG~o9P-YJ)AOVxfZ)Qm+T`d9&7yoc z7ff6Wj$I3mYy>0MYuLW1N*lp1z+Gx8IAM5EoRW1A7rkE0Qt;hHfn7FAm5pG}nJoE6 zPD$Sw*dT<G-x^V<2J6@|JcMkpj>lseJmFO*<9*Z0z+}ZeAKIWQs&4BCX>{zvVBP2z zagZWk2Fbon_-}GmSokyuHA_@#o=hGL0~j2ka?zu~3xvVMr@@)V+^5eR%n_@1@55l+ z`14SWw`119h+ktRvPc)9-o+JeLwzjFLwwC_7;Zv(4{mt!r@mj*6XGy_0WId(;lKp# QI{*Lx07*qoM6N<$f;iXnYXATM diff --git a/theme/images/foundation/pause-black.png b/theme/images/foundation/pause-black.png deleted file mode 100644 index 5fb087545b00210e8f8198829d2ebd120eebcab0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^8bBPt!3HF=`^^smspp<9jv*QM-d;PntjSU2z{meK zj<$*Yf`y$sTwJzf6)V4E-m=I4;;LMiEnb3x*YBL=xxeh_c8}+;>dlPXX8xS{_>9jf zOJU1N4vkE#Tp}6)4=y)oF6Ar8<D0r|XNLLn8bOVK1t7U!vtcZdDzK0n)3Pa1=QDTT zk7lTEu-nkdwT8QfS^j{YmcRo(od(5%E{-*YtZE0gd^yaREz=lidG&tB0V(YT;(|L^ z*$!Amb@49^m}a^)ut7Y5=S)NN60LpA#ScDT{QAl3LAdAhd)sgP2ipR)?!$e?{|v|E WTMJg7*~bg?GJ~h9pUXO@geCwOsB#ei diff --git a/theme/images/foundation/rotator-black.png b/theme/images/foundation/rotator-black.png deleted file mode 100644 index 8df4d31af3b7fbc573ac4d75b233de4a2ded79b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmV+z0_XjSP)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s7`}v6b0005sNkl<ZSi{Yi zL1zO&6vzLBT$h~65=sdnlqH{`ls%PF`fb9VdMcrm5|(_JUVG}Pl%AFlLMhWjXWQxI zW#{e8+nqf2kn!Jte)DGLy;;Brr4*D>f4_gm_6NZp+<X03RS#a9s(MgSN^%g?>vde& z6y)3b8Qb=zaB2wABs3l0TtYHaO+o-TbqQ6QSvLyT+*$t<i3$^!aOSfztc2gSU70#c z*S~NKA8p(aL&~UVN*Ftdrjd`~m@q_$;ZWKT0Ctw)XQ&|nR0kI39>BTpwt?ifq2dC- zv!r1iS*YO|fUVS&w~{$jU7uxd!;&!Bxyo*v;_x1FQf{Ts@~dT5h8o&*6KTUF)bPtP z%tH-Vmf<GUFd?R$g%()qbj(8xPY#$?04{x7Kp|Zm0ASHY3mECHC*D&Ay5p%XdWs!G zy;u(bUVLUE4LAa@Bu=UK+DQQxE}&R|t-<;NOm!{f0#$nHb6xHRT>{RSP#<=g^eLHb z0Y}6QTM;+zxogvQ1z0-ZHhL0>0XSrokDObNx&WLq_FWPaFl7KvVgkZ$SH!c54S2)I zVi6ONy1c3bpDbxCKu)<aKhze~;pw9n=e~Wo@7v7s*a6LqZjKqyj4^<xCg9kBuFrr> a8t@y-y4ghe)oPjm0000<MNUMnLSTY7LGj!G diff --git a/theme/images/foundation/timer-black.png b/theme/images/foundation/timer-black.png deleted file mode 100644 index 02f3fbab28597dfc981bb8a5ba787c6e09630cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s7`}v6b0005iNkl<ZSi{X& zL1zRp6b@xiW$394b1i#XhF*JJ%A88+sXw4UqYR~|vZt~vL+M}HYp<o0o|a`9mL<(> zlkLppW%4q~Z1VUn@y)kil9!jfC6rPkaER6*-2-6a2AiL=NTnY-uv&w%rfN|B9CRT_ z9Yhh|;LHIc!4j#CXzY>bh(c|JC2H5PJsB-=#)%&~;wg3=*PK{%5id=XBF7Np&UHlm zO0^LQdIyo4CFhNypooZ}1VoFzf^ho(;m%etmP9QDvzFk_Mlc1Yd}b<m%~J;2>DX1; zJlW*oj$zI)BFcTo3#vsNoRnABf&y1VoaN^sibG~o9P-YJ)AOVxfZ)Qm+T`d9&7yoc z7ff6Wj$I3mYy>0MYuLW1N*lp1z+Gx8IAM5EoRW1A7rkE0Qt;hHfn7FAm5pG}nJoE6 zPD$Sw*dT<G-x^V<2J6@|JcMkpj>lseJmFO*<9*Z0z+}ZeAKIWQs&4BCX>{zvVBP2z zagZWk2Fbon_-}GmSokyuHA_@#o=hGL0~j2ka?zu~3xvVMr@@)V+^5eR%n_@1@55l+ z`14SWw`119h+ktRvPc)9-o+JeLwzjFLwwC_7;Zv(4{mt!r@mj*6XGy_0WId(;lKp# QI{*Lx07*qoM6N<$f;iXnYXATM diff --git a/theme/images/icon/12/delete.png b/theme/images/icon/12/delete.png deleted file mode 100644 index 3865ccd90654b884e79f46dfd430b67dca3ce2b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmV-h0i^zkP)<h;3K|Lk000e1NJLTq000UA000UI1^@s6jWW-@00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy?MXyIRCwBq zP`eI6Q4pNHiFh=(;Ri&bLnSJaxP@9JKEM~~(fb>XMj~=c#id1|)_CPUkQ}>vBB8U% zWG1t-XLFX!zysHqF=7yY%P=O=cV5rum@$Iqf!PRuYw1ab!hXYKI~_Zp$sk#+RHmCv zAdXc>^Ev3;t?3H4-L~OE!Sd;(bXhEf$Vs9IZm&mY-v_Q&;Bc^DEuQow<0N6IlaKoy z$mRHniv?@-xFkcndR|wThC^Vv{QYyQh5dADS3ly|hGsM1cEd3U6r#nGo@6K}r}T!^ tN(Gzk7R-7}*5>2MEooiEUk85+FaTCNet>lOne6}o002ovPDHLkV1iP?l~Moz diff --git a/theme/images/icon/12/edit.png b/theme/images/icon/12/edit.png deleted file mode 100644 index 1e57b87e59c65f2095bbb3583f7dd02b3bfc4eb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4v7|ftIx;Y<KVi<=^%BUJEOCt} z3C>R|DNig)WpGT%PfAtr%uP&B4N6T+sVqF1Y6Da>&(p;*q~cc31Y5pC20X3tH!Pga zPc%(lcR=(~@6@S+X4g{A+>mKDjbT`M*Q@{ItAK+IQU@lbp8oe|G5e$yJHO8>=~KPG zAW4xWD!VX8iYNDUXn}{9SmY6j#GZpYMeNUijpekpe0P#ZGQzLEbr<uGSASXe9*n=h zRP{6Q%$~S_)_I?7mT~U5pRkQjlX183)mcJb*}m$X*B;rep0#c>12aQz<EgeTo1#xZ Pmoj*|`njxgN@xNAt;%S_ diff --git a/theme/images/icon/12/key.png b/theme/images/icon/12/key.png deleted file mode 100644 index f048df68a82aaff5f41c86c26e72d35133605beb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmV-40n7f0P)<h;3K|Lk000e1NJLTq000UA000UI1^@s6jWW-@0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy)=5M`RCwBA{Qv(y12Q<##yS~DWdboX zh;LE#n-MGlQV7GxTUjRGT&nQ@$FqfCd~bX9f1ucZkQ@^OD#(;~Y-ITNbuGiQi>DZl zZ=b;+Zj=tP<v+SYW{@HfkWhKdVCk6wra^!S$!&g2%*-gdV2a=hp^7%@$IW6u2hT6v z1X0sjkQITf{r&w1!<~I67=C^I22(p7h$~qb85!Y<{`~yKaPQzLkfIu3u(TqZ%*4b3 zao6A9f53`<eEQOat_TDef#Ea_8o(bx)&Lb%GGGA!0R{kGEN)H210rYu0000<MNUMn GLSTYl)_mar diff --git a/theme/images/icon/16/calendar_1.png b/theme/images/icon/16/calendar_1.png deleted file mode 100644 index e28ee0c0963f245f5df282beac4e5a92703f0f3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3270 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 diff --git a/theme/images/icon/16/clock.png b/theme/images/icon/16/clock.png deleted file mode 100644 index 0d2cab13829ea7cfbdf7e76174eb015c27d24c5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmV-F1Hk-=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!;Ymb6RCwBSQ(Z_?VHkckolertsZ&v> zGN;oOiGRzm%$f-%8eu;wf_PEjr4SN1l!@Afmj-4R*@c*v+7BB3h9Q^>EfpNJoYvgt zw&OPUQ|VDy=S-2M_QJ!<_kQp5oQLy%FT?G2!#kQ^RfJIK9tA0d3<^FJ<`2*zztux{ z_cOc&6uoyI`LhBZq{O5loEwcWP9zu%CN>=#ASkHT=dn%xZfh*-t2-vp&|Rt!@I?)m z&z3-~o5T9%Dr_z*=zCsZ2%<vca5^>{)5{}RHL4n$DhHYl1s--?SHwq%8?wX~Ftzj! zQ6VWvi9Ltt&;&3k2YQPJYW)|i8Ru~+wHS+<IcN;aEv?mW<&68Ch0*?g0lJd&6&RcA zhg4jIg3L-B4T2!Bus)8N<u|w{y^UdIKYndHVwk%mStAjo<Lmbi5Jsk-NLDJ9sI9F< zc49Ho67n&t8bxCC8PHrNxkDDQ{d}P}8IdKvdLp^Ky&ZD796>=r$V|$I!EC}Qwm&HD z4cdX^&z==FyA_ck@&6?!CntMq;XDDXTNXHX2-<;&c0gL}ChYF)0Y~11%jE)-$@F~L zJ9c+SY&i+q0ce30yTd_Q;=n+x{nIFu$xu~Qh5Gt>kR<7;Z4f`GUM}oTJ1wB~5le#w z{%m%xAR+-9W*ssldH;wAg+k=y<bcEBc+Nu~pM%MA!(ubSYO(gv4mxyNJy-#5%r1@M z<>=#MKa$Vqd-C8!C&p%8Adt(3_NR_^(Bbp#^Oo~je=BR#x{+HXE64lE9+)jUgz+K~ z%-JXEj2aA#J;Bga7fK4sF+M#AyUpG*+_Bzw_>}Xj`SrXoZgXkjU1+sySXll9^QOUb z7s?Aqsw5kUq7?LxJcY$%tDEQ|+Kw$#UL{ZA%kpgyB_=_ddIfP&`=isFG*B*1LakQO z(`uUPwl$u(jdWZr3yP&u4TYN&L<ePhJg@0>p6+$7c=!JmU;u*cO>2%uFU<e|002ov JPDHLkV1idIdWir4 diff --git a/theme/images/icon/16/cur_dollar.png b/theme/images/icon/16/cur_dollar.png deleted file mode 100644 index 36f3e48508398d3dd9d9971accbc794a519abbd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3308 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 diff --git a/theme/images/icon/16/customers.png b/theme/images/icon/16/customers.png deleted file mode 100644 index 782b861b53822099f22571cbab2b5326c7f8cb8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzd`Uz>RCwBA{Qv(y10{fofkHsB0W9bO zMn*;kK&l0Z{{nH%xpU_(<1>H}ISh=AjfH^JZ6Fqc3cUtmrL$+xej&;QjEs!oNSZ-F z6o|vKv$N-7(>!(RRMap48sH7Y3~1O1C<XG?WGIc>1x!p#5*VS(#3To#4g)a{5GR1V z1oawbEC6i_1>#>ww*OL9Rb36$%mAgGa7N>a6DRHiZJYwc3{YId%gbws<|uo-=>TZ! z1r81l1}-ix5E~SQWkCE9D*X<KE3t-wt*tF5kjezwn$y$M!|?m}Z-$bRl9`t-U7Dq- zskxSwl{E<{KOM<1L^`muvjaJ6J`gK{1eKJO7=RiWZr;2JR>aKA{6|JchJ}xh?;4O> z55#NW(dgjdkOQ>!01zv}{H~#)!Jw?H3=0Papd~DiA3tVz_wJn*P#-8z4*;<=I1GUP z>_v}zPft$<CnqQL^uX}?^=ssSTn7#VpadIwKt6x|9OP`UCOp6xL;wUB0Qyl`lgU|Q QKmY&$07*qoM6N<$f;kYrod5s; diff --git a/theme/images/icon/16/invoice.png b/theme/images/icon/16/invoice.png deleted file mode 100644 index 264cd5eda5c39b5f63ea5fac9520e9e184e345f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmV;o0!aOdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!SxH1eRCwBiQ%h?TQ560r^GpJ<X>^rf zto8@Av`MNWKA@l*u}!L7`al;&7m6-yS_Hw3D`PQBwOI%X(Z<K3xKM;9ZHjecvDkEB zwx(q!t(IgaGv0e)M#l&qILy6w&iT%F&v!0oSr({u?d>`&2*O>S=i?kW{An$-1;a2p zEYrHS_^Eu$KHu4~3!Dwm+uO4)NphzsiQqUlK%>z>GBvz=`f;wR>-wEixj1112zHPt zNu8lk2)QTI_}fNDM&aRk_<epDEh9Y;+mHFh5(9An2z6}z*uwF_6EJkcNft!GVMN!8 zR{>$2PV^68t+F=Z0GOr;S&{L)kZ)r!baEKy&Y!IlZ~N!;AQq2Vq9|hf=QeahcLGE~ zB=kM3544EK<Dm@DY&Nm_b(M25P!t6(-xS)aq=rUVB8_n>+t+fWYPC?W*Ky>~Q7YN* z9tZ*h4g>;tlzWKN$ull67Xv$i2G~Z|h1WBXWmzNJ=(GG&HF+w<3brwzm1bVOVEc;~ zE}{CZ3cac0^4OK`rH@Ou32jx9BzV1En5};>&@>GP5(fd&S4ox_8`Cne{CRmcGj*?0 ztF0qDm1UDj&ly8k6N$#fg*g<<bBOMVIy6b;eb=wvI5uA@<?lbpG-zzw73kq+eG~D% zgu{Rim(TCR``LFigzCMp@?|AM#`yzz7jA%HFvwJ(Nw!hFHC01jPrpWb5w&2cbS@}U z8t=M7dUAXt91gR4Q>Qvp0Qx0L?BE4nB}y=6kw^sNlQ%b9lUP%~50X!ocsKrU72;#$ dHNO2NzyM&A1Z8_Mo{0be002ovPDHLkV1nIVGjIR^ diff --git a/theme/images/icon/16/list_num.png b/theme/images/icon/16/list_num.png deleted file mode 100644 index 3ed26b65b530f84cebba9d451c93904ec7239995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3238 zcmd5<Yls_F6izKI>q=#<C{}-Tnu`8tlX)cBBtx=w^4Q(rW}Bv2x`;|=XYMA~oy??n zZnD|+)rYmTv|9XGL2ac{MHGtoL$MVpwZ%s*3eu`AKA;Msg^DOe^vp~$o$N*}6vQQ) z<jy_k`@VDTx#!;OEQ}5<>Ak(z=kqPe4QGn**=POtEQa^xm;RJ}z8l7HX`GJdM?}S_ z24&TlK*46U2J=2&VokFqD^rLv6R3>!r2pr)kNO#`CjA>Cc`jc|qY56LC20NZXi1r! zQsSzA%|LIWDFQ$hQJHC0HQf}ONxzLN!guR2>t}2eI+gTG79lg9FED9?ASN6Xf<i#y z`a?`46bwa#ej&V?5jZZ!a#1$K1^AfA3nCw5T7Uk5UM4}*NwJt2Y|+6e>90^)6Iph8 zdOA2A3L2!$^6_|_<pfp`0$>p^XLKqz1G>4=f^aZ0$W#cfQEcdpg(*)Mb(-}1VV-G$ z*D3}z%!*NSDRi@yHOL?9PP2TFW4(^K8dbuO7b{HH7q}E#oJm#IYhk<F+3NrSf7iEz zw<*`=F@kYE|Ig;tY6rYYvki#1mAkG4W@)B|*dj8GI#E!zfpogk8>Xtb{<S*M?BG;| zMH;GtsR<(a4oVPN#N`S#UAL~Z#I|uf-5iTjomLED77P<xYX;RsD3ieiDbyggsw=i> zf>aE_Srt(RDH@uT6%>R;n`4-fDFS17hdLKHo(ph1ylgA)5{WsTB25FXx~vT$-CEWf z2Iex69ZZN#%tO7aGL<b<4_v4u@M0(=@}X56FLIoXZZDX)7GlM^tYr+PZsjbON%~<X zsA5%&Mma7M3#DWHU^J8E`FK`J#kowBi^inEcv$klT%&tVH>s>EsLhUnJ(~@O`A8@# zMF(RRdraWd*>FloN3)@R5Mgg5Cee{3JCg=U8?f6Hn$sr@doy*~U`ZuuOlOk*0+Gvg zWQW1bw<#!w3R&d)xmL!y*rX`|ob)VGDohd8>Ju7Py5eQ4GS)U21e(y4d{38>m<v8e zTIO9!h_!kMlW<mW7@JUkGxj5=v8+d%oRKrsu$=^ku{WFuiLtBKlp9EOw6>>kmu0xB zA^<fG_;dxq#&GLcDDj*q#KZ{iDLmI$smOZSs(aSz(^lR3oyb}Z^4f$)xX55C%JG?$ zQ@v6g`g$nKNxTpVr3N#dq0bWzJBH^)q5r=Z{;!4Kv7B>+cirk&k?{m;9YO8NNwD*4 zE1@bP#n8z-l_qJlv(l_{OVnUlp^F4mXnJ*x`Ug78otY#EF<60P&qUNA)^H2emeGby zupOM10<%8x5HvxLhLl|H)G%N{cfz(e!hqW{JLjEI8_A~i5?RFRmDAco-d5^XZ1)6| zD%fP;MJuhqCy7yIppAPDhAU|?t-J)8ZW7ykw#2!TESZXRmKek%vAw3Q!~sb|O<7kF zVeZ8yoRy7kOl>!t$%|^SI0vMMq^-*(>7EC>KjQ|1>sPgE=q4jkO7KM8z5|UKdcb;) zh=OH}88w&;BDf(_a4@?`Y?Im&J(8@(ShSCDam<v<sDwz>{QrpkJ9SQoo?9VEcAmj) z6E3=}d((x1dsjv}G*ALJ;RD~NF2gN)8O@H<^~NNfmI?AX7v5YIvQR{_I<x5{N`TRY zTt+H2&mMc`oh942zU`0pNDG#Rdv-29_~MomH@~3mU3XX-JkfjR*s>K{7xgW@WzpzI zPn+d~x$>7AfB5mj-CvzKa%#8v*!zVKi7!7k_VP>kjo=5ub(?QQ+Ftg7eV^C=FgGo~ z<3Xme>p-)x;J%aii(j`roO@0hZv3`6acX;U*SXb~j~pFecjEA?$3I@PLyqk~H?$)E z>7_TTYe(KXTiASO?ygs!IKAiFL(gBlv|Fzw7Tx;f{+_KH-|OrD{inmLqxYZxY@zVT z`SV#x`6coC@uL^_U07BaI<)86Z9BGn67${m&3CH!lrr-5s&{?YKW;8OebY$N`gxJd Lj%Hp<ZQS}7yM_M` diff --git a/theme/images/icon/16/mail.png b/theme/images/icon/16/mail.png deleted file mode 100644 index 7348aed77fe6a64c2210a202f12c6eccae7fcf24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!6G=otR2Uhh z!OKn)VHkkn_xtDX^gyQvIaDcySQFybYw!YGdj)R20r#%mx-)ShI}=TaE-;aW8r`$N z1Z<^J+5#O)JJXr}lVYOo`#hqm%)>Az`{eoOom?Tf*9)f$7n8&|1&5M4#i^32;+&E? zC3Q;bRFQN#y*%%=_V)Mfa<$xe^kB0TO;vJPkN*k(2v-CI7)OaWj?&eKPos(H4wGh_ zIC;6#q1B5SMap5{(Hc0~XO7OfqZ=x{kupu8-H&<pro-tdGQo1=ju}O%WHW~PtrG9P zbve73QY#4=4}4GXt>9az<c0n)W^4DD%8e3>l`L1pTuu^Znm3EA)k<uC?Q$AUSt=TQ z3%&>CoG=JuwsyNLEtY83i->Z~j3y~F)`RA1k>zTES07po!kBVS2y#L{jCt|CMY&v{ zxmqM|`OA#P2{R&)OcQd}v0kt6_Dh#`Z$i5_;q|93je3Q^PcfR{TmBHRmr;rWahz~G z2x-&;d_O~HkmKXt5Cd#Bs?-+qj3zOiUdU24KowBIUPg(gPNmxqX)Fiia~V*$y;5L( zrGNmU;81MA$F2k%oeUXQ@}N%bXz=qOij$4IYk4W=jfhDxfCz{PGXe-#ge#VfYTyoj zh4JvDePrW{lf(Oux2xG;VZmlSvDU+Qf@i=O!B`MLglhttCUHDIKkc7<Z~YKeWgdn( b8RqmG{Ym+I@W`=S00000NkvXXu0mjf#4RA0 diff --git a/theme/images/icon/16/percent.png b/theme/images/icon/16/percent.png deleted file mode 100644 index e8e5e9f3988e54c2927fda99ed54c08811255d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW zd<bNS00009a7bBm0005I0005I0XppC;s5{u8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10=r2>K~y-6byGn|9A^~%{(t_N)!Ch$omqFbt2j!Tum_13F^2&~ zD?MznC?&My(n1gIrR}Xv54m~@A&2IYkV8O{Lm*4&vGgJZPZoP9f)FAB(M>hm*>&P{ z(^<bBs$pW&2k-KD@B2Q!_nsh$vk*e)B>%?$gb>06AV|J^T_cG`qw$gFc|Y`ey_#v7 z-6)D~H=E6?+2O^-#ZOA5(tRl<R##UYl1Bgl+qQ$5nVEj6R3ZSHrpejaSx!$+e?t<d z3XSFE<>!q?gJBr{cvdF~IXXIeb!TTsMp4uOFrFmI&s$qtC=?3cXV`BfN#f;lx!(Hv z`lnfCveW5YJUBQ2fHjiONZyU(82kJCRUw3$n3xETkB`4pN?~JT<6DwZ7C;>y9wq=_ z7)Bld^7*_?65Vc>0Q!bu+&wxv(&IROy1To3>%6gAnx+>tO`EkWtG2zp&33!}g%F|= z$MKVTy}n2CJ6+egxw-jXzu#~DXEOjwLWpOTN~LI77Ia-ltJOM*qUZzP_wVVt{!Wr4 z4;;t28HV9XE|+^ZNs`~1&F0tbcDr@va#bnyuvjcU9UL5718}KaF0Xi=$B~hd7{L6} z($cFi3|XtyI5#)Pg@uI<02kSnoMoj_2~5*`RVWlVFfj0Wxm^CGUawOr^#_2jG)+q; zCnu@v`t`R02qAuwQc@}PJ4p-=4|fg2Ab@M9iXYpyP0#awmFG=SN_}Wq*87^KF-_Bt z0ie_A7-^b9N_hYPQp&wvuZK8}%{Q0<47jfQ-1mJ-Deq(yJt-E8v~7EBetv$;ah$!= z%YF0)fN7d5Q&UrPUAGIMkOBUzTCH+?e4M`Tp9Dcb$8k;oOlH~D(9qCdK@bqYmGi!6 zns&|eyyLO4F}kk%CxFW&|NX|-M<GNBfJXAgd2cd3`RqIY1LxjxM=p55)Bpeg07*qo IM6N<$f|u=k3jhEB diff --git a/theme/images/icon/16/plus.png b/theme/images/icon/16/plus.png deleted file mode 100644 index 5e4b1eec29025863e4bdbd42d5b03451548c8847..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmV;Q0bu@#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzK}keGRCwB?Q*BDbFc6(I{iJSFXodcA zy@H^p5cCx5wU#}Cf>%)R6z*^R(NYSgki<;fblbSQuKL0hGIU;N-n<f}6#NH1KHlrM zN%HdIiUmPXQ%cQU2+=&hJmqe2nV*8Ui*<3g$QWZ#mL(KL0aaCH2Rm><2!SY!AdX}B zX~dlbSR|yt*8fPLkCf8HCb1U;zc4?aE6@9qgXj}Q5zMj~gkflM{DVW=w!nKn6l(Hj z{kqOg2Wgs`A`2u#9dHD5ryisyDI_u(MhyHQ8%FSbAN1P3>#!j};7aXUO{X5&Y9NK2 zynGC(qFW8LktQ;AT?aSUw_tTik^~+e?_G{Y8!5L&BI8&sS7&|So31c8=gNIYN4|HB zws2(S-}(S1J{bIPECDj0Hr9oQ+-OB~^GruQ7R=7<{*9jk3;=``lCh2qRKfrN002ov JPDHLkV1j*nuG|0s diff --git a/theme/images/icon/16/trash.png b/theme/images/icon/16/trash.png deleted file mode 100644 index 55e388b4ad0e8b65d52a4706493884c9b9324df0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`v7RoDAr-gYPCCfNpupk$`SewN zeJ-}JNtbjp)S168Q=HoDvSik*J#tnv*Jjr4W|%F(xk0mW=H`EkRxukfUdl5*y3Hw# zYsv2V3ygai71sZ2P-nPa&fxKkDKPko%u2@i{<(rb6JO*5En@I=^>bP0l+XkKw!<{Z diff --git a/theme/images/icon/48/barcode.png b/theme/images/icon/48/barcode.png deleted file mode 100644 index 4e90f45dd53c293764872c7989b6abd75f0594b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5836 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 WT6Q=^i#_}Qvh6wtt1D~0qy7Vo>NKtZ diff --git a/theme/img/avatar.png b/theme/img/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..a4aef1f9a5270fe9c6df05e16da1b96b5bb3982b GIT binary patch literal 44804 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 WmZl6#wA5Ds_i3p;ykDbY6Zt<kZE^<y literal 0 HcmV?d00001 diff --git a/theme/images/foundation/right-arrow.png b/theme/img/bg-content.png similarity index 82% rename from theme/images/foundation/right-arrow.png rename to theme/img/bg-content.png index 7c3199a7728b55cbe6a1c2abeece7fc01202326b..b87931ecd0761aa863458c30fcc822e820ff8c3a 100644 GIT binary patch delta 220 zcmV<203-jZ8SfS$iBL{Q4GJ0x0000DNk~Le0000R000082m$~A0EhGwH?bj}3V#5a zNkl<Zc-ov%K@P((2*ZZ|f3**&z&kLpC~c)`93mye#@INHLz0;R06-Fey)H>rB}q~P zBO=ybW|Aa%i*HOTFtf~TqKKGQtiRp8s(R)o7C;M`m&`OXci+Zv1b*+NyAOEIl}l1) zK3T+do&MchRMmN&WAQMyGuI`iVlf=us9R~9u&cN;`j^a8vJ?Hw(1(YsL7S)l)n@>U WOn~twe6YU&0000<MNUMnLSTXvk6KUw delta 537 zcmV+!0_Oei7OEK`iBL{Q4GJ0x0000DNk~Le0000^0001F2nGNE04SXXO|c=K3V#9B zNkl<Zc-rjRF>b;@5QSkEv@SRX1!v<RNL1W_Bg7)IoLnJvi6WFLK$V6f6>>IBij+XH z^WNyU^y(RXlD*#DX_}^aAa?}>;D7@TI077SzySvw0S-9efCG*I2OMy~-J9uj`Zx^3 zalKx@PbQNNxGOWC&!5ZR)A#)$34dOlLd)gyH5p#LVyo5aEfHSbf{F0z7fpf}Q#b)$ zTyb-}*anR8;+rtV(`dvHPp26(JgtU|@bsE8!P9&d4DfV6z~Xq?%f2w4{?Dc;p2rqP z5YK00Er#cHoFjzicZev0=XrE3faiN*5{&14O&5sge>oh4mt!O$058uxM}K9!T*ELG z@$yX){m0vEHXp#<kiPE^rId0yoxXv)GK<CHWgN$!QcCH%?i08h(RRDtSKGE*;B?UP zz*R=e0T+Pg4;O^y4Ht;!3m1&$2`7N&2PcB&1t)~&11E;&0Vjy24=0MI4JVAI3nz}I z31@(&2WNt&1!sh&180V&0d8lA77u5N77J&L76)gJ76X?6tv*~5w7PJK(CWb@L#qQf zo6Vjsm&=$4tqxq<w%h%Fe;$V6m;^2Fm=|!s0Y`uX4mjX|BftR%9B{x9;D7@TI0680 bRr5Olwm#3gort-*00000NkvXXu0mjfZRY28 diff --git a/theme/img/datatable/Sorting icons.psd b/theme/img/datatable/Sorting icons.psd new file mode 100644 index 0000000000000000000000000000000000000000..53b2e06850767cb57c52b316f0b845b1a8e0ca0e GIT binary patch literal 27490 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 Y16@Zf7?Q8!JB-NJ(KYBs*Ff|C0Zg4MIsgCw literal 0 HcmV?d00001 diff --git a/theme/img/datatable/back_disabled.png b/theme/img/datatable/back_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..881de7976ff98955e2a5487dca66e618a0655f3d GIT binary patch literal 1361 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;Tpqp%9W}skZsAp(w zVs37(qhMrUXrOOkq;F`XYiMp|Y-D9%pa2C*K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mLM~XjC6r2bc-wVN)jt{^NN*WCb*;)Cl_TFlw{`TDS%8&Ov*1U zu~h=P6yk;40=Thx#n4~^2AF<DVu8M)o&m^9FonLp_?717!c`ZS1f?R}i`C%bkjjEo z{h-w1{L-RiV8o><gRCmBaxO|uEXgkl$<NP$g<?QPeo20DMt*^UbFis`Z(?$09*7TC z@9S&jnO9trn3tUD>0+w{G(j&jGsVin+1c5}%-r12$=KP@(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1OVZUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnv1?G!Lpb z1-DzwaO%|uIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@i-f{BMZ3YI$qn<8~Ar-gQ zOt$tu93XPMc=CmoA1oW4o1+WYIB!k3r72K4*@xA>;l+b1ClB@qaOE!8@r8RwiN1wc zl+_Cb3(lEQAv#$bmh>Mfe(I7Woy4{G!}EFf?)^FUc%F02^;EH~5owLt3k}+qS-P)U z616t%^wT0PX2liq$807FHoQ4d$0`5rkQ{U2Kkgclu0)Awnd5T>ob((vrABTq*u(RS z>E?oy`!@uw+@i*D$dKV&#I(EL&;9;u$GTQAMM5faVZejQCzo(NvvlZ75dZt%IYnd( z*RL;GX3W}R-P)5>-Zsu`&nUT&Ho^GzHq{#}Ya$hT91>M0@O`!9^}b&yQ@87fac$Vj zkb72h`!2pMTYunpu!r@;1)uFRXDvH<C2MQCLB5EqVe!tGxM@$<Xmq^}jH~^{nDM>O zu{mw?PmW#JOy1f}J}ILj)G2cQ^TrhhTtyr5@7eCYm=Uoy?6qTPsOnt5?2i>S(pg>~ z>M~M93=YlxcD}*xKl_@hz5j0IZGT@9Yu_^8_RN8=&YkAdFR(fGAAWd4CvkG#0^hlN z8>(g;?I=2=cEEAHaL+WiOvRp~fl`n5dTf5V)bNv|ZcjyzLHRnz@2)SdPWo#3tF@Nf ZfT6u;&2Oo-XD5RSIZszVmvv4FO#nm}^+Nyv literal 0 HcmV?d00001 diff --git a/theme/img/datatable/back_enabled.png b/theme/img/datatable/back_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c608682b04a6d9b8002602450c8ef7e80ebba099 GIT binary patch literal 1379 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;Tpqp%9W}skZsAp(w zVs37(qhMrUXrOOkq;F`XYiMp|Y-D9%pa2C*K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mLM~XjC6r2bc-wVN)jt{^NN*WCb*;)Cl_TFlw{`TDS%8&Ov*1U zu~h=P6yk;40=Thx#n4~^2AF<DVu8M)o&m^9FonLp_?717!c`ZS1f?R}i`C%bkjjEo z{h-w1{L-RiV8o><gRCmBaxO|uEXgkl$<NP$g<?QPeo20DMt*^UbFis`Z(?$09*7TC z@9S&jnO9trn3tUD>0+w{G(j&jGsVin+1c5}%-q<}$=KP@(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1ObbUQklVEdbi=l3J8mmYU*Ll%J~r_Oewb7Ppv~yBe68 zyO`lL52`l>w_A*G>eUB2MjsThND&Pa0;V1i6P|2=9C*S{%>$<PB4D!4X%u8)U|_uN z>EaktaVzQ1|Nr*PTN#9zMHxeRlNl-}v#d8N^Zk>0_uB7B{#OES8f>#2yG~0qw!L6p zdFucF|1%kW<~W?`S<}!e5q#_SzEeiVo81hJjGh}A8F|(J{8J?#FoV5gKjTM#g@4`` zHat7G{ZGytn}0n$K9W8@XQml^^p~IC#Pg_K>J#_+(?*}aZPd`ZZNa#A3a7~tW{o3_ zI{&|(mY(2P<M2mPEKQ=#bld(%PoD@Gu%2pXjuqzkGD*Yibltx{hgg@~SeV#$)xa&` zKoMiI>V%myRe9%s|Nr;*;U>8s5-)SkmAo$(Keu+yr%y+}MlE>zy+BR9?SIdWBY}H< zKKU5g_O$y^9OKN@zGsEyW<{&Edwac(+`RcS*M!N;4lBR&3)I`!79H%>{JYJ#JU4sR zw=W-e8rT2-_sjK!ftX42KgY{w-6eiM*mqC=xu5>dtj80wm*z`6(^6Ws=-8Pfr#M2- zH|Sq%;`zb5)KTvzU)R6$^W*Do?c4e6>`&v<`V~L7?ymp$=Mn1__Wu)kQ(K;TCm0<N zV>xpn=P<ADl0yMzCpKMo_`~$7`@TZ)ho=qo0nz`RV!4Z+imyoYxv=I7_o}`XdpJKI z%U5yU?-2WkJ?lpOBqOUy+=+=NTT%q?7&I_2GgR!^?CWPQ?*l6KJYD@<);T3K0RWQ{ B1v&r# literal 0 HcmV?d00001 diff --git a/theme/img/datatable/back_enabled_hover.png b/theme/img/datatable/back_enabled_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..d300f1064b3beac1d7d5274e294494d3143e53a2 GIT binary patch literal 1375 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;Tpqp%9W}skZsAp(w zVs37(qhMrUXrOOkq;F`XYiMp|Y-D9%pa2C*K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mLM~XjC6r2bc-wVN)jt{^NN*WCb*;)Cl_TFlw{`TDS%8&Ov*1U zu~h=P6yk;40=Thx#n4~^2AF<DVu8M)o&m^9FonLp_?717!c`ZS1f?R}i`C%bkjjEo z{h-w1{L-RiV8o><gRCmBaxO|uEXgkl$<NP$g<?QPeo20DMt*^UbFis`Z(?$09*7TC z@9S&jnO9trn3tUD>0+w{G(j&jGsVi#&A{2f&C=D-$=KD<(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1O$kUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnrq&G!Lpb z1-DyVaO%|uIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@io@8}5n}LDxvZsq<NX4zB zKmY&RGjC-OW)@`(<xOU&oXoP`h|Tr>#&7*Qma&&|D2p_oRXCd3<KX<IF+??BIp>7) zY)8(V;EL!lR8{!YrXwuuEuySktariS<$U}5@0hthGki2x_{Vvqo>S_XblJrDt*y7` zPn>AToH0Sw=g;r$;tI__7PkF4^xDY!x~Ps)lA51GcnTBmM+UA!h136k{gg`)kQb<L zYn5zEv|ISR;^vJXK8>Fq_VoBPIz)-gPOY!2f65f}=7PcDED2?Ugq;l&g-#qfGN<kQ z@Bjb)r#kZ2^pup9#2?zN&TsDj^Up`WxAX1e-#_#W=(*t%xaa4;yQyuL-MQl#XRdxa z)mct!l}pQK?u@9-8;ZCmOlEdi`JG?mklel4;>QQhO_+II&v(YRhj*tM|Nr;*pX&(& zF_Y$hj+f86OZ@)!^=7=>-T3-YSLKUdZuf3aZ4Y<s?VQ*uxN06_{32G#57J)EF`r~b z{@T~?`C0PS>HF;C{AO_%40X!?e|-Fvdj<bLW$9BKr>7ri>D1+zvG8V_^em6og*g*a z*EjxPy&}Hf@!5mZjQ<yG``5Zl?8zzpfWtEuM7|UckqxXAe%5>6qphxS*AM<H8~&@L nmZ*pyIy8y%q|%N=21YgpNrScB1<wOzK}DXYtDnm{r-UW|8K3s} literal 0 HcmV?d00001 diff --git a/theme/img/datatable/favicon.ico b/theme/img/datatable/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6eeaa2a0d393190ce748107222d9a026f992e4a7 GIT binary patch literal 894 zcmZQzU<5(|0R|u`!H~hsz#zuJz@P!dKp_SNAO?xUfG{@$0|>*we<X0{?!DZ?LR&jK zJ4*`(D+_yj`}mZUV<%4{DS<No{rlI{+GcBJTomZJrYz@lN9~2?%3V3hT|wRfwpN+B zxv$^6LDrRDRAizmzo(`AZg1n=>Y}F;x;`B~@Mg`jC-vo5%k$%{OoKy1zkdA+(K2o3 zEDKGQQ~gcX+N!Tt<ln6-e!X((x9eB`|NHmj>Ej1|9e2tL(rheJva*5dKY#gZsIRxM zB;!h7<JJ1on-%#_W>5Wi?9l5?>z>S-`t`=OAFp5C?(007k>qM(bnVuyja#;c*qL9N z(Q%=@`f7d2?T&^wySIHjy#MKh?rZrO7i!Bt-@f(!@WDrwB`uD&)%Eqcd3o(gVV7ri zp6ji@(BF7(+uE0x&)(R!?s#YIg_7JW1=-KHZv1@s(DS<L4gNk(j*fnQelrS_FV5;Z zF}eA|vYC(19e;50(BU}~*0+>xD9<^am-%+f#!uU}z9=j>5*%b{WE2`20#tutPWS1# zz4s39d~xOMwaqJzOl{rMU%#oo=xj&xyY1WF&71o?Hs-LOkA<OOT|+}_QrMM+6RvMw z{^IiKhevmxo!@_KTI>D^4SRbV?yXz(e#efNwKXpT1J^s+yE;1`KXoe5&f?1A$<NLo z|MBttt(|L+O=>tYso}un=1c3AzCL>B&D=RpqN3i1hL&lnclP!D`u*G0#bsJv!oAH) z-rc|T`^Wdkrw?7(xb)_p%`Y#WdAn`Pvz+W#0Rbo6-Ha3zp1gPgjDkZ)k6Gz!@9D0( zG^hL4?)Be4zWep#`{$>RUhUoaq@wgyfd9*oU{6tz+SXQhl3284sj;T&{L=I*bGxt4 z@4vfX%A<*$FN^a&MMa!<bG7B?%PuH@D~2#OZ`<zU;hyB_*c#=(G&yozSimf6i&AxU ucVnZ@2@}v1L%4tb{$0CaV_ZU_m8GSrv9VuZ;G~(e-hB9gtQeLL$fW`Ph4SP8 literal 0 HcmV?d00001 diff --git a/theme/img/datatable/forward_disabled.png b/theme/img/datatable/forward_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6a6ded7de821619aedc71d1738c0b73463a4452e GIT binary patch literal 1363 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;Tpqp%9W}skZsAp(w zVs37(qhMrUXrOOkq;F`XYiMp|Y-D9%pa2C*K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mLM~XjC6r2bc-wVN)jt{^NN*WCb*;)Cl_TFlw{`TDS%8&Ov*1U zu~h=P6yk;40=Thx#n4~^2AF<DVu8M)o&m^9FonLp_?717!c`ZS1f?R}i`C%bkjjEo z{h-w1{L-RiV8o><gRCmBaxO|uEXgkl$<NP$g<?QPeo20DMt*^UbFis`Z(?$09*7TC z@9S&jnO9trn3tUD>0+w{G(j&jGsVin+1c5}%-qS)$=KP@(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1PFwUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZns$CG!Lpb z1-Dxqaq86vIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@ies{+CJ_7^eaZeY=kcwMt zrucd@1&XviUp=W&hC_Vigxz9qe=+JQiRZ>#-OmxVbJNmo0?O0%xE7^$7hDVzS=7nq zBvt-aWrpIMi;ByGX0JatRXb+C`iBGE*Nwm1%=tcVr*ri@cU^6Xtj>)g66P@%1db+s zWSF+QYf((v=9^+`Y}d3l_I1DM*_La4%-~F<iqOupPmA17rUW(EbkF;HUG47s@9eHR zr{8fl70mTeS!Xo!jNOv34{^8jdm7J095R#VVBvFKc)@pJzz&b)m#u$9NW?Q2$h6PB zall}<&3SqE#TR$i*ws(+TAC!FeR-G6#+SR^`AEwg&t-2u__@HMMymh#c8=GRFUN>X zOD#3=6_)Nj)~$1T^@J$qollO4A6gI{9eUN=bCTSutFMe5M0p+_TYIkc<*t8mtFJEc zTKXwVqK$2(et`HF?-Em4wsu<!<_gzaU#tGEjL|!t;N5yfeTD0a=52`&N+cpS`CP8i znd<d@k%rWcW-~^|3;8^oj^}f5ex7x98BduHL+yj~6Vv#NKJ02wGkiVk;$eS*Jxf+p z$Zlz@mz~hL`(;vx_3L#?=RDGP)Q0?N?yipLo6qfkC??74@c(mr@}3>kSTsY4VW0ic bdL|wQU%!)=<|i%z6_yO1u6{1-oD!M<;V$ow literal 0 HcmV?d00001 diff --git a/theme/img/datatable/forward_enabled.png b/theme/img/datatable/forward_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e6b5384b8454ee7f44a8f7c75b0321b7eeb9b1 GIT binary patch literal 1380 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;Tpqp%9W}skZsAp(w zVs37(qhMrUXrOOkq;F`XYiMp|Y-D9%pa2C*K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mLM~XjC6r2bc-wVN)jt{^NN*WCb*;)Cl_TFlw{`TDS%8&Ov*1U zu~h=P6yk;40=Thx#n4~^2AF<DVu8M)o&m^9FonLp_?717!c`ZS1f?R}i`C%bkjjEo z{h-w1{L-RiV8o><gRCmBaxO|uEXgkl$<NP$g<?QPeo20DMt*^UbFis`Z(?$09*7TC z@9S&jnO9trn3tUD>0+w{G(j&jGsVip+||I$+{MJu$=KP@(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1P0rUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnqfWG!Lpb z1-Dy_aq86vIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@iW_)h2mVtrshNp{TNX4zB zKmY&RGjC-OW)@`(<xOrhlxSR#{V1QGt?hr?`T4Q)?%vP*Bc}03zKfG7pg?hV&&T)k z=YR6?(OD}r$x1tWwtV}J%B!E5kIr-~T2eLn<MZ?S3BG5}tm&)yGwJi&xn0jfuG}qR z<J#zS)kr8?;`06d`)3H=OM8@*{+w4#C@kW}ouAwE_kWopW)d-@qpQKbUZCxusKG{$ zf+Ef|Z?Bi@*5=nvn?AMPA<pgE4AI%zfqQ-e9Xsb<LSkb0<EN8f2u{DSYTE|Csm`CQ z(sG2D>g)dh`10)R-NpU#bM1=1eo8Z2AYd)<-?^`_sqOFY@6XS7KM&8JXTA5$g^A9S z{TX;`xlCJF@2;-kt^WS)-(qj^YjbRh3Qo21zn9<7##PJs=)J=q?vtT6c$tqWSn$;S z{q^hJt*2*?^Szy4@bTi|;PVYm@{K=qh5oS|v0uoRWd7#=|NZ;-*VL7!+<x}z?DD?z zwfv<AtyP>I+Ui=RzOdW2D@cF)|8@0kar@euUy>OYxL3%Wh|X{LVLRn7b4UH-Q)xXL zlsIOXI?k$WjNtJ4&-&<m!1bDTsZadjajY|&9~rIq>^N(`qv`*KNBfVYRHPjKr+8GT t=fC*;><^O18kWptJjt-AJE?(znPJ1m)BPofdH;jTJx^CZmvv4FO#l_Q2A%)_ literal 0 HcmV?d00001 diff --git a/theme/img/datatable/forward_enabled_hover.png b/theme/img/datatable/forward_enabled_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..fc46c5ebf0524b72a509fe2d7c1bc74995cb8a9d GIT binary patch literal 1379 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;Tpqp%9W}skZsAp(w zVs37(qhMrUXrOOkq;F`XYiMp|Y-D9%pa2C*K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mLM~XjC6r2bc-wVN)jt{^NN*WCb*;)Cl_TFlw{`TDS%8&Ov*1U zu~h=P6yk;40=Thx#n4~^2AF<DVu8M)o&m^9FonLp_?717!c`ZS1f?R}i`C%bkjjEo z{h-w1{L-RiV8o><gRCmBaxO|uEXgkl$<NP$g<?QPeo20DMt*^UbFis`Z(?$09*7TC z@9S&jnO9trn3tUD>0+w{G(j&jGsVi#&A{2f&C=1($=KD<(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1OqgUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZns$AG!Lpb z1-Dx)aq86vIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@imN7BvVqjpr?&;zfQgJKk z&;S4S%v%{AKQQkR<Y-#-zRJMhkNKY;|DL_sdwb7)rq=(?hK>wI?VL9s)YsRaG&b6_ z<rC+M^<TKG1Q#t0Kfo`N&UR8TS)nVj{$CAqc2ZJO;gbg<v)8YhX?6VW{|4iL4$)Q9 zCPo~d@$c{Nqdev_Cw6wXPPLvf+dXYz{*9w{>gRo<91_J$Y%O?`e|&#$ZtS+eXp_f= zjUUrLb7!pi%4at>{rxttxB!poqO-MU1}Hz4_scgh+`O`|pzGU*Ppd<;SGk>1td!-8 z=;-~nzrMci*RP)sFMiM0pIiAYg<m?LL-vW}6Nz+1nWsS4{VMqVZ1HbtzPo#OK47_U zVR?Xa#D%?G*Eg(>m$R?>m2vx|wYgZ#kAH7}W-quPuJDiV$o>g2t#=I)c$y9~%y7A9 zTfgc1jk&Lj_4ZX)f0PV(p)9c9_0ar=AL>^e-n9Mw|Nr~<^YZ!qF*`48{dsWi)b|VZ zD%w*xPFz?Y(EM+~bAgn@|LT8!dGP4_dwn}*-YUka%$2Ws1@^aZs%Q9^A9It(GQY{> zGt)+aDgU^S%wM?fC!gsP`E`4^jM#4)q-B&8J6^t!zrwrDf%l)k#^S|Oq%QdIe*R^@ tLh*lxrsW37V+~Wv{w==9!pqEIz%cpgo%)U5J^Y|z&(qb<Wt~$(69B7>2Z8_q literal 0 HcmV?d00001 diff --git a/theme/img/datatable/sort_asc.png b/theme/img/datatable/sort_asc.png new file mode 100644 index 0000000000000000000000000000000000000000..a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc GIT binary patch literal 1118 zcmbVLO=#0l98awuV{<Z@!!LxlD0<K~@1>uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7<z zAJ+2)Qjm`ds$~Qf&n8$kY>H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{<iyAP0F4@c|SQLc9PWs6Q-KbF^V0C#CCJ^ps%BgxCVdRVtNW zB^0!r5{J6Fx;ze^4^WGMJ7E%~8Zh164F(Cjs-xRPw@lzMDn)CYBv|TcEd;}s<z-^i zttX16jH@a(hk}qZ3@@%FYnSBkA2(LCcJmW9=5pAz#vPT`V|aH1OmnxokY`A}5so=J zEs8QGS?aifO_GrkEd3MIbWMOL4iSolVT^~-I6{4)IG>J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lG<IPpyQ94#vGEy>M{Zw37T<r1BFzx;hUrXn@cb9)YK9k?s zc5~+a{$F?I@W<X;>z>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1<p<mdo-xN}_lDcv4t?_`K9d@d9`>D_`VC7fU=jcT literal 0 HcmV?d00001 diff --git a/theme/img/datatable/sort_asc_disabled.png b/theme/img/datatable/sort_asc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4e144cf0b1f786a9248a2998311e8109998d8a2d GIT binary patch literal 1050 zcmaJ=O-K|`93R^(@goeAz6hRU)S-61)?IaU({*Myml|8vh4x}JJM&z}b>>Yo&vx~s z*1>{0Sk$FMM28~iln?~vp$<WaghdHmq(cXxOVGuzH|wr;a2t5@-v9CY{r;ctMq=P> zL+z1TilQ3g{c@7*P2Q^6L;g-8^nq-LaWstw(J;=d4x}PF%0Lh|)htXxRiC)>9(Gfd zk2X?ioL0_@8ZsHx!!QNYCTxo8?kU)+mV+2%VAin0^v_psXkh4J`eIPw6kCELM*pM( z2PX$o+GI}a)ajlxpt~Rv0TW^s6wEQp6$@dys4J4Qcg@nE2*J59y%|(mNdO5s5Cj>{ zuW=y`gm{Jzw6(Xlp9TWQb1WyYyx`~C#eg7k94LJ>@#g5mVp5Kkd=V>5k6>(zESt~g znS6jjPL}06J3BoMLGTlV-<`0qTJT$LYgs{tuI3mvHjo88MKy!QahN8NZl++`Te6m0 zDibLfTTpG5XE-mVGEh<e4>ip#w2PB)JKi0I-PD8)*(7w)xTBHA4Yzu(Y*BKcijk8- zXslet#0bL39YHpb27^FRHN*1kB3@C%xaDHi(qLQ;(?o$W3|;IHBC-_Xc|nkPo{#bo zKE_Anh#c$_BEdk1ROZS^8#kea%Upe%D^%oqqhQ*^vkV>MD%4{RGC?tA(byrDwm?jZ z#$wTmdL^!2ITo%WmnFflUSt1hboq)*k9XV}TViYtKD5ZRJ7lb1H!ZJ`CviJ2M^c5A z%=*Sgk8hr8@-<i0wN!t)_50;i>S*Kr`Ol~RJX(fddmmK4eR}<Xuv!;*`0T~h@&LG3 zwc6FYR)xO}%?<5oo88~vEH&(^Y6gqfZr)i__JVzK)4AQ5++4kHWwGw@=ybYKsXczl zcQ<?T9c)P)Twj<uHr+A%z2?x8+%@{;iTaDH2Mg4Nr4wz9ABTQ;uQeVWke~Nmp7{$- C^G(eF literal 0 HcmV?d00001 diff --git a/theme/img/datatable/sort_both.png b/theme/img/datatable/sort_both.png new file mode 100644 index 0000000000000000000000000000000000000000..18670406bc01ab2721781822dd6478917745ff54 GIT binary patch literal 1136 zcmaJ>O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlI<aG^O^0MU3c0+I# z#fe@;J&02TMMOL(%n#JD4N=Dg5kZe*c<?fIng?~h%yoLO29o#wkKgb2|9m;0>e}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6<F`Dv z=gE<e-UW~SzHwK6r)OdNuBF=g#rCP!Z@NaewRuKPC4A32?Y^7kPqBM-lijtuwQUd2 cHpPZL)Z9?>gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ literal 0 HcmV?d00001 diff --git a/theme/img/datatable/sort_desc.png b/theme/img/datatable/sort_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..def071ed5afd264a036f6d9e75856366fd6ad153 GIT binary patch literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI<y#0Ea2)<w!x=9#C{Ay`f}J4<YP zGl^m;6RMgcpb!)+%a3bH+oO5>+l@K3y+Xf(g*^61+0|J+O6zN2mb<?j@)emk(r(ve zMbY|HqL(df(~K(f>?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW<rtP5*FLy5xa{DKx+PmNxE(mN_xRU^jduh4%fq8D=O4becw{5@k$}r5pMp!{ qL-nP=_~ypl8%E9_dA9N#SI7Pv4V%u6t+Pk{(a)qh)UmchCw>7#s%CHi literal 0 HcmV?d00001 diff --git a/theme/img/datatable/sort_desc_disabled.png b/theme/img/datatable/sort_desc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7824973cc60fc1841b16f2cb39323cefcdc3f942 GIT binary patch literal 1045 zcmaJ=&rj1(9IuWjVlWt@h#q(rlc~7%$2P_q>KN??ODrK{#&I!}_Kh{rzS=%m2N%F- zAW={L0VZBJnRrkSCK{q1NKA||(ZmA>6Hgw9o;Z-;>)3_|u*vIt-<Qwl^Zof&M@NQQ zTh6yo6xEs?mUCop_gC{V@^?miKa#Bzrwe!t6>(X0AeGY5Bm`Mgoq{>2>Xkbiu%Ds= zw2?31f^tL9kQr8eOxQDR!ltPHq-U$zG{j&MP8pU+Z@qp?149?-TQP-IYzdZ(;duv+ z&5z`@`Drbo)5+_g-xG*{39$-1bH;K7Po%550y+EF3=OIfJT20DK^2ryARz~WSeOlI zY%dFXxiA-r#^dp8fM+?DVR?q*LtI>l@B+(%+D8*_j$RaUa;D~sSR!4**cKS3TrP*p zkuY+m7%q`W_!>MPB8ZS%v9RieEVsL^AVXJk3>zEB0=}X;iDt1#lSubcFztq{<<`nX z3dVS<&2VAXPpJ-6l>b9bvw?PT4(`W$ps<^-*pSIV7tJ~vX<V_}cV!Eb167QiJVG<| zDvp*AMs5k&KpKkyMb!+;x2t$X5wezxRZD|eS)_?V*f4Y<8p%lMOeV_n6320AF2!ZI zl$?@dgM2C$>67YQ8ELa7v~ZoP?{i~^a{W;-ZQ@ymjxh)IjDt*2O<6Dwh=q$vY$VY; zc&J{Ds~-?cjVm3>Wk@iL-`IZ|UB4pJ;~yJiON_?gLyJtiL&kbxZhV_OiPfx}%6s1@ zcXoG^ffrPJ;LQ4(`t<(ickJ1j<?`0%!=~KH#qF+B$MwrSJ)eSK;jcw6+2&5H4=s7E zS2lM}yblfRbSgVyTU<LGJXZuAPZprq)&+t`2R>|E0&fC8lSh8sUh5lwUg=l~QoqsK t`nTanN|e2@a&yVMdhy<ayD#mgW|oR{f-jF3U;XhPYBoJ0KO3A_{tM)BOYZ;x literal 0 HcmV?d00001 diff --git a/theme/img/datatable/ui-bg.png b/theme/img/datatable/ui-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..86c2baa655eac8539db34f8d9adb69ec1226201c GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq)a_s978O6-<~$)Vo(rZKDhVK z|J9WTLT^QIG;Q^ml{ow8HvtEZhta#LLqp$|vO7%bGjI7IBizcw`SFI!bT^;@44$rj JF6*2UngEbSBdP!Z literal 0 HcmV?d00001 diff --git a/theme/img/markers/blank.png b/theme/img/markers/blank.png new file mode 100755 index 0000000000000000000000000000000000000000..05975aa3b61d5c2d27dc4c51cf4a82fb39773166 GIT binary patch literal 988 zcmV<210(#2P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N000A{Nkl<Zc-pO& zX-HI26vxkf^CnBjnQEFqRMPg9u!RbQg2Eyq!!q(qK|#=m2nwnX^|2u6O9c`2p&|)F zD{><=F{vbSTGXk=9G5i5CTDSG-sm{n?VK4WTxK;7{Ndj7?)|;<&b{Z}#~`{bLhVAW zM=8gA5~>wdkLrvxiAC_GqAs9LrOD-*H4ElLwo(xs_{-@6o!J7C$7{vzUDQ>SGZrux zRi2?p+i-UCdMH`7jAyDaI8hcF=kxOchZD;5o$UID&(P<TzM}UKN*@Wh6xC3Wlb!Xr zuz;)Qsu*~E0Dk|(SIPtcxg6{c3653P!3#t8AN1}->Ba-+px*7y&CaVhTnMv7fuez! zCd$CiITV*w!}E?Vif{|cA&fmfpQ%X8dsMiGCj<+9KFBbh`}+&{;<?I|=($X80%o92 zoZFfQ8dW+=2o^R>hf0ykE^gaIy<@Zn1l*A-7qbtqTn6CrCJqZ5&M8{4gwLCuqM=+8 zaN{cVe8^O$0|Wxe196TTqg<y^Q*SK+)tTvOxO%eWVPO*l$VyjGOBGxcMvKj+&kHhG z2tYtvza%BLvQa;qV--<VhPI9NyV(XtatK25FoA*9<>IY>%+%8nq0!~_8lSaet<RDt z55%ge_|eU5?okW&8VJ~rx_7Nf3l@jOlUf`sL+7xYUwPL|y$2{mc(&Hz@gDeLu`VoL zy_^e_VJxe7p9)Oi$1CetW1q1LJx5U^VW0<9ueS~rby#f5gR7TAT%ah2lT~%>p-xZ9 z+l%T620d;F<>0l>Y%LKuq-<ZBJN2Xq+w2s$_5LGVY0|o}w-43)FAI}~4xqXld;1S< z&&q%tJY2y)sd_{abiW7rk>@X&HxM|3o~IKs5#jw$@MB9)*EWKC)Wd;I-SHRd-?Cw! zuK}C4r=&JYhA!&{E%rN~+Sr7xgj=MhqYG-fep2sJ#I=e7qy*o+scnIg5%;(#IoxP& zp+*&|DH$Nyt?nU*RBh;CAQyv&$2XH1UiI_^pGBJ#3rI67N_FjHiy?z@y#dRX(=}Q< z9Uxixn?57h@cN{4uey^m0Tr<(!~?#uy506Kra>?xw8a!W0BT}Q5aR%e(DvD6&Zh%& z)bIZdp+ARd1Ia$(7RvVof>qOoa{Vvxt6|6v4iA-k?C25&{_Mry50h({+TUjaXdaMU zp?e3QcP4;Nk3T?X84(@v1}Acf*ipk{ZOcqVNI)Zmey9fH4gL$pPhd97b@_1s0000< KMNUMnLSTXl0MFO} literal 0 HcmV?d00001 diff --git a/theme/images/icon/16/user_male.png b/theme/img/markers/marker.png old mode 100644 new mode 100755 similarity index 69% rename from theme/images/icon/16/user_male.png rename to theme/img/markers/marker.png index 1c1ca637256060c282cfa3b67f513b4b01ac5030..9eb1b7eb3583f98544b7a8af6337303da86dcc90 GIT binary patch delta 1056 zcmV+*1mF9S9=jbOiBL{Q4GJ0x0000DNk~Le0000K0000Y2nGNE0AH&4y|E#z3V#FG zNkl<Zc-pL%ZA?>F7{`C-wgm^JIFKa>WHMA#wm9ZqG$CP$3tJX5j1x1z%xp_cmTXzF zC37EUf*)M6WM4LtWnnRMnVDH&F+(AXNE{Q1L6`z%*6}KpB63@3dkdxI-m?$oRZ3gb z=i7bGbAIP}`RCjtSlylmUITUlwtqRF26O>UK!3DNB8o2sI0k%}YO!P$ZO9<cW<>yZ z{Q>N%8!Z&}0M)=(fIk*6AE?c?roQm$OFKEdeT&RVw}IIdiJR5ssLxN0qhEZ}b_1th z>j4e|j%dKmz~!<{dAYxqm&wfa>4NYq==$;_O$t~nczqg2&NuQ$-{5^<FMnWP3VZ^% z`g(p|aowSElFSOs>clj&30+DmYU(-HJKz9b0es5b^5;3$)Z$;t-;fExBIRR3@Y7pm z@|pFvZNPB=1;_?I_-uDES?OsaA=td>I_cIF@x`7O0geFq3h-)*#hiC&+ZG6gm&LoZ z0F^Cm6rDOt(W$dkwzT2W0)NY)p)dyu3*?jQlCyxlW?<L$%nWjDX)6X$eY1xXSFbO8 zpHMvjRF=HF7-Se^T2sVxS(*IpbUmv8nK@~xU^1<!sOENmLOv9Q+%zjdx)K?+h%WIp zm=F<w0!)l(TGYu_6c!}p!;swdYXCko(0)suz~$H2XiWvfScp6Ne1FlhGAjxT7JQ54 z3Os>;?7FWCz%GCspslK`bmK>Rc0q7vZM7yRak`_M_v$aXf!zu)0{r-OYddbACZi2! zRWm90r-JfiL<y&XzWLqlzEF7oe{RoH6+5;{MF@eEv0;h;p~&~oH;QJbYXEo`n4SlQ zfF_4$@<6Y9!uIx#t$)M?nk^i?&?tVkJ5=CJU<hDoeQw|{yXrZtNRmr8=dZkJ=51Xv zRo6N=+1efi_5lm(f3RVrz+m(6$idRwY&LDk0Nr>XGc)#k<MN$ze~PeSd;<KwtP@er z|4qV~k1sY8oC!(9O2r>*Y7tYjvzLMISG0DO4js3TyS+dB(|;{UvMhQn78-g7Xc)Ky z@MY9ltpXeZs=sURWO_QdBumM+*E<0&0Ih2Q0#pr7`n3AKA%VpVCKLaTsazUz0#vQ4 zrWimcP<O_Dd*RBjb@X9K*#%sD7$89H6{m{{e*g@F`u-t+x|n*81H9r12E8}O#!>wN zI>%IihM0Pf19en^?i*uj2?%C%{odTm;h}*59rkf|NyyLvx`Du>0(<%<z4$^Q;$@d8 z@XoN$&sbmz;MU^+s-s#U^522s#{u+*bVJTPTYT|?l>~rZU~0(~_sAJ~0oUAvYCK-> a{{sLgGk?T>BTwuA0000<MNUMnLSTXbE9=1k delta 1143 zcmV--1c>{)9g!X(iBL{Q4GJ0x0000DNk~Le0000M0000M2nGNE0K~LxJFy|G3V#GH zNkl<Zc-oYdOKg-?6vzMfe)qeNZ{}+$)9Fl0DJ{@KMH?VQp@l`&fbl^DjV2I-ae>BX zTv!1Y7~{f?8)AH6+?Z&H8%fwmVvL5!ra};Cia@8Wown2IJUZh{=ka~_x)>5|(rN5X zPR`=w{PMs5d(I_T;j}f8-h;dBlYhH=$ew^>o2d-HdGTuDyPy9kpD$HWuGeRb0jXDP zRHWne{c5-^M8XCJQc$$EMi6cZ<H~5_(tBUUo=g3WnR;Ma5B%&NHq_p1!sF8=q!%=@ zd5y_<8WYn6?C861@B1%yo}&P(*S{>dJ4y#0-)>&(>}<w?!!M(10!U>l$bT+WkW8jA zIh97=)~<cqyXb*cfm<5s1E~cMa5mwQWAEVjyJyf4?#Ap~0m)<z$wUgdBE`1O#>Z9# zp3dk*I#1EHbsvyRpuMLTZ=U`HI|dG7ZoY)^@i=B@(@>mt)&no=(M($3$X3=C+uAof zD9iz1a8wY--Z+K+!6$I@_kUk7cI`)uj4zC?N^!}<?dvnn_pahVAqkW+Kt2f+=F#2P zhbNyogyER}_0lcx<5ejJfY`kMwW*Ykk;Qp{Ie;YrCV^rCx{x)O$E_g%v#SPA&1A;X zi`9I{RxXMQfK{v&I6*8``D;9$y0y}B)t%#9u@pc3(b;dRWewN?z<;mS3Le9k-~My~ zFxi#B1S=o%#nAqX$DexW(Ne`gQ-aA<Hog7GXWPmZZ+4}XuB+IxED~+oxG~gwz(MC; z%m;gcj()7$`E;OvU~tfNo0|T&;z)E|w0-^Ix5F)sTU%Qr_lF~q^?Uj^*}Hc3;P%)w zx;k3m`x=*jiy@oI=6}XwlVc+{?+#B)<gbp7ocVOwPiWVJZ+-au(ScV8<srrx7$p## zK?)mE3Mj?Fg$<io5W<F|1Y9?OU{E2I&YGd2vp-xo|H0uUR=5poLW2+Qezoc$<a-rZ z#6WNcr375pK|_OsU_c?D1RO^|a2tR@p-@C7okg@|4LNc0$bX?Ny~j^28Mh4^j=t2r zCDfFhPeC~WD9NFugi->Is%6d@Y-Yi-C@3YM76GLMLfH88P8`>+$FMde`<8&EM1&9u z!8ruykU~I84y6Q?6p&ItaP}|sUH}GD@f2>1OrTQn5Q#STE&)fPO`9np;M@imHiWRD zq<|v@lp~=e2Y<f@CIrx0qqtZ`VlInBA_K-OFyBWg)V!YA+y#(llv2^r(Y{%018&<8 zwhbZpy$6$Ul!T)M7_&eKP^ow*6w1iu7U6pajw9h~4bRtb8yekUu(1_Do@%X4CUa$& z5Dg&(IJY50?fO#HvSl$CL*V-Wr52<RZ~_XBBWv~v4osUd7#*K2Ef%W(onyCW%L^wM zBMkryr38f3{3K+#<uowbK$}_^ZHVt{|L&c0pL<?))EI+*1^{N?j#uA>qRIdO002ov JPDHLkV1k$*9&P{t diff --git a/theme/img/markers/marker0.png b/theme/img/markers/marker0.png new file mode 100755 index 0000000000000000000000000000000000000000..eed5454e3e2463ac3a0555082ca171badc0370ce GIT binary patch literal 1218 zcmV;z1U>tSP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sF*zVDFg7qS#=p~900007bV*G` z2h|4@6D%`({Va6=000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000CT zNkl<Zc-pO2ZA?>F7=F*~ZE;XqwIdk;GEkV{TnyWcGc(h~1s8Q<kQt38{4g=`$FgKg z=6=j%f3{@H{;2yf{@Iopv&E{D0a27N;zvYr45(72d<YXP+_v-!OTUiqdvD8HdfTew zO`e?dzW1ExzUTco_cBN?FC*SXtVS4OHXouF(S{gQ+r(6CxrjrEgLztQ!K*JWg%X2a zUih!q4;IM*zF^3S>IuYG2yZ6BGK9HMpZEI5YgWUastR6YMCU|}vMwCq6CN*|whppy zZ+63&*LMf4^$4pPVL76`rnIE^RBa76EjBU;g#jXw<X3700Ie3>9v?LPc?r(jh9}Xw z31LYjd;xK7b6H7s<E~oJi2`{88Aa4Ugmd`dbTgbA7$OhXB0NIu@ux-lyy{<T-{Vh3 zrW_wM=+95vYxuIohDx*?CNmKhBKCjsRy7nD^Vxhde<%d+o11}s{k=SrJ|`Fsqdu2? zw(d>R8Yl-uxG`5Nmh7sm00@Rs9QoqvEod4XfuFZ-l1I{$1ozafSk9L$$|;~&65$(F zrlnA1$Oni<QwWKKWOr3Xl0GN6$An(KR$wA+6%m?>^7Alz8r4wQTyA;Hi9L_&Ng@bP zoUf;uQBYFN)JvRVKhNv1$|+<HrVtRJ>!Ht=HnXB2WYm>obL=AON~LVN`Xv{PlR;&1 z`4Xc%&c+HnuK#yj22Q`9_fATrS%{$nOJV%%J?wRzHidB8@=|&Ht$!d%pA+nw#{0v} z6_|CP)=rV8<~H=%rHu`%DtWF>#{fGZE^imV1ih0E_@=X4Ci|}D9ni%Sh;8T%1o^)6 z7nw6K`y;(Ko(f7)=Z=c9mFD_wTtg{J6a2)Z0u%V&KQ6FSckd6OWevg^uazL8&FY-4 z8*sP`J6FB}iC(H_OA7~@F0o%MRtnx0#E9&4!V-$XUlz%^N8pgNp}Z{hrisg<95{C4 zHhg)#D?njI%(c(_YMww0cZ@!)-%wl#rFgkQWZuz55iF0U`0jHTSST9(2rXxlBBApB z-|?^~KWy!Qz-*8MORe}rZCBY$INXlYA5ub_CPIfTQx5m>zx!BHDPf7U3=Bcb&;!yw zSIt!#LJIJSqg_4l_;Db?OAbeF_0XgVas62cNsbLqdwk8d5e8aOzC7;QCAd5?CO=EJ zDH9>>Y&>bX7fXf)%vKw=EvL_D>+=wjn6HeDg9|^OROrphUD%juLpH)I&OpHZk9`Ux zB<-=w7eGs<4Pq8TV(9C(OY5l{@y2-s%Adn?6O!D<5?UXO%3afk@c&=JJGN;zc!JdK znZ0{j!Uv=H`(gLb(7b;k2&D<1U-|9;j4lMBHyDZ1T}F(aY>Ts%4GDcWXJT{5LU>4o g<DmRdO=VmB1UX=lF4~*J*Z=?k07*qoM6N<$f=NUow*UYD literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker00.png b/theme/img/markers/marker00.png new file mode 100755 index 0000000000000000000000000000000000000000..523cd031e6ce007145f21f9e8bd8976721297363 GIT binary patch literal 1227 zcmV;+1T_1JP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qH8&tFFg7qSw~6kk00007bV*G` z2h|4@5;rEk)M+yS000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Cc zNkl<Zc-pO2Yitx%6h3!mb_?xx7g!ptZDT8~wtyj3i5iGBfmBhn1`2^d(jO)!{valr zh(9Fpk0u)bD89lUAP}Nq<x$%P!KOAm0=7`vE_9*W2d%VhJG<L`mD%U@oS9wI?Y;ne zk}q@5H}`yV=bUrz41>(}G-4BC4Z;}b{D?k8J7OqZ5KF`5BlaOaDA4JORxMu!Wk!QK z@gH9Rtg;jQp|A_xgNQE?zHEXO2urb{;DwLYu7O=ORlLN6i<3lcUL?vVy*@Z$8)D!5 z-2>x3|4n2Y5w>)Km57e|^0Lz74fWi-#Ka&R0f<JEA1Mj|IvseterWprJe;wQOd-1w zVVx_u7;)+Kin7|~9SxwD1X>MbHA#dh=dk@mE1Vh}rWL-7@CxzUpOhF1YL7O&!5>OY zdwmdbJ%`?@=g%xLRwJ{YXc8<&y!Y`dwNPX#WHd1l4#V4)R$yQKpkB!*OW_p-Oon{+ z>8mf%?Ix-L3D)K7q_Q2=RRAF^@bimZ&@wa%hu_+$UdhkMW6aj)R`8{Z@`@;zB=};D zc^Q-#3jty=HIOEg?X0Ov^3(DdW5!iJUt}g~H3^za3Jb7$;(zI}yFKbPFU}?WOgsnz zlolFjWD>Mev!n)!#8*1s&%~=5OcNkM_dUNqsj`wFBn2k?OgzLm?jqWiTHACF$ZnV* zB0iyVsY$&C<4v9L)A9lXS0KRqrevb5q|k}&FmduW?sdIRow#L1xqAI&U@*x~%j2$T zzB9tyO3;Z^2W6Kwx3S+L*EOxK=J|R(Tldrx&^P6Tudnu~LEqQE26`;Sy3!|;`OS3@ z3`hB%Gk-9b68wptl_&+3=<2&w6)P=`TewIinpc1n6R3~^-+lTlJAUiVFfwZqu0*ed z5bZYC%+^7t+qiAzvjDhHvznxX_gl`hBUT$F?@ff-q~e?@l!L#lvTK*XA#X!vMe0eD zutj-r;L0`l;&Qh_sYG-oZi(}zP9jD+$L=+5C@qF^JX|3<@6{y<toNt+&QoVuI2QX5 znctE!k>>fo;>#Y}d#)3dV2A@tJ=FKLUu3h9NCysoOi68q4DGj0J3T*N?`MftQVm<A zZEzUchVPR1S=w4<5Tpbj{I0tf9z0OytdhgGUA;7DL0o<mL9zoQGhTnIeUyPtQV)+? z4jKL&9aryV3d$x(k<G`fx8ubS!D6%Hw&nC0J@+_*WR?r#6X3?rCpCJjb{;lo3&<sS z!KEmk8;)s^QMA{g9sq6G0;C**q|o2vkk`|0#8c)zXnzimEl73^TWEbKrtX@4MBx7l z-n7qnz#F3No_%!>D|mMde?J_7SsD*4grGd>4`|;VfU$)T^o61^I?G7Wn`?5ewjrZ$ p<!pTHT!<Bt-~?ztRMWX8{|irKz?t?!Aus>{002ovPDHLkV1li%CZPZT literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker01.png b/theme/img/markers/marker01.png new file mode 100755 index 0000000000000000000000000000000000000000..5c79ff29576caf338a2d89858c8b5bfe782f96f9 GIT binary patch literal 1244 zcmV<21S9*2P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qH8vnEFg7qS5&q>I00007bV*G` z2h|4@5;rkD2ki6!000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Ct zNkl<Zc-pO2Z){Ul6hHU%mEqR4jJglYwz$cr8%l5>QIjQ@K;}PW1}B1kz(ixh2V$a$ z_yH2WKtkddB^rYtz(~l*s>oQE1z5%cEb4|hR#;(OH#)Xa)<0|eI=cS5p7Y)-uI*bp zk(2y#@44^X-#hpGx$iMpT%JN~Myy2`)inum9np;#)!M`~)(R1O5xa}@`qJl~TnUv% zgKT&=6b75e3sN-ZL-i=)5F(U|uo_`0GZd}+e8XDUSzpV`P3WAcQ|#giJ{=4}n|+jh z{pU592uU|^wFP0<BCJ95G*wkroNR95<`pIeu{b~?k^V}Z0HD`HASl7Ev*+QAW9&Yz zZbH}=5<Y>r@>+FeL;Ln-SSAYO4dfJ22MNyMy*4YH9&wU~FCl`0`uNLoLs7%e&9Cz% zktxRq9r|-@YZHHZg|QA-_R}&EmLWd=;^hV?H5D^5498;dw#5qU@OSb^dP>NvH`>n1 z&nO%wLm~U>l^5yJF3JHBzFMdkE4SCx0z{RK2QK$R$LKg5e`}LGl1?&s-vgUl&p?;c z^{=P6XWO%@c**jDQi>%JuCF(*gmPmsKr$)Y5DCeS`r0)8g=44SqH8k!=(xv>Ual!M zllD9jn#+reFnhX(HV%J49t+g9lwM~pf!3`}+3^$vs3<nj%p@qOW@!Z!S3S+thd=oM z-dDZO6vh++BJ@v6Qd(w3K}a*s)UzbXv5TlHm9iNa_V{6n7SxS3B_?^CSBpBOYl^_Y z7Y_65m@pI@G4x_tO#ONbdwrQ+w%M|(N*-H>N78gn!LDh)J;wZzc`s@`L`Z4-@o?V& zc!LtB<Q!<+Ad`G#?UqN<H3i!+G#B9qugGO}obs1S1*PbZcWSFwTUxeo9i=EEF<M6j zCh!k`>tZKw-ge>&z15ehl_;Xy?wj2<;`JNfUHuFIc0^7Q_3&xOdG?ddPQiN<F)lm3 zz=UFO(dO~(6gU)Ytf|hvX;QMh0FL~A6%O_dL@30F{)bV>Fr7w>^|~foHdd5D6<)58 z$T+$vg6-Z6-*LK&#gfU-aOIb@NNBwO6dv}(o^!nrnU8W{*_Zm>?#pa09`C{F_gSG` zBtrXbGv2@te+{uzDWyuJbHoXq&O4;-)6CT(gcRVT-wq7Ig9niXUUK-Re~=~}h`#?q zNOELsHYiyg;|%noe0kh-d*H(Og#2u=O}PkZXZs1;Ej1ZBu-F~gwwykr=N^TS#Byn3 z3jFx_q(ZkU_hNgl4fzN!`67|P-|iXkAnBl6z5qINZ4mPi62s6nx2KW15pSP+p!_*J zG9k%TETP6|Qtp}|MEL&_-f+wYAQ+`~&+Xk(3GcY@_ro2YqxtaTAoNU2Vdc96;L2yb z6v9w6k)*qf7=!tY^OX$=eM9Hex%Y8+NQ6_M{7}v0GyVr@H=w(F5Vns10000<MNUMn GLSTXiM?ld4 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker02.png b/theme/img/markers/marker02.png new file mode 100755 index 0000000000000000000000000000000000000000..a11ca068a6bc0d9232048ad22c7a4072a192a8d3 GIT binary patch literal 1296 zcmV+r1@HQaP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qH8mhDFg7qSAQu0D00007bV*G` z2h|4@5;y^zM!=T<000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DM zNkl<Zc-pO2Z){Ul6hH5^rDN^dLD`38o35}SLkSs*VkE%?GmN4mI0=g%_JL#(jf!X- zF_P?yCMJAPiN^3jF%ra3Ma#C}uwlyvQ8&b~!aCOdVPhMm|JHw_>%Z$c_w{MJbuHpf z^2@#FynBB4ymQXI?+LKDJcxJ(u@Rw5+JcCy2n%93lar9amXByc?ANGNMGvo931vDh zUwA7J0;|gn!AR7D>M_Jeh(I<%Bf?ay)oePrc_Y+URk9L22B%a=>tb;>?GM0d+puut zk1H?{2wp>L9m1B0umW+Rro625WNi&I6zT<t#sK2+^eq)4fJy~Ee-IkZo`;|9qj%7{ z9bru+T#mT7!&p{r-ct+9lp;j~Sw*RUIAieg=~g&1G(r(Rf$)pT$M2PBHPzqNKFjWj zOnQA#U_4*HSi@Eq>eiv<Fqw(47_sl2E!9w@FA!*9C>n(qOsyb%{5c;<C%JfQ8a90O z9k<gs=yZc#n=c%C@-cecKs6x3r}I_HvOVi60V0xPb9WE443EL_=eP5bbdtU1cCb1< zVBJ^G$5(&p;6A$_TEkZ4sf#F=MEGcxVI`F43IGxb?noq@psF%WpLneSSkvoJu|m)F zj`2zEW56gk6dB0$2oV}e3N%<f#Xsq>dwqOVCvCDWON(9FVAb+G$smeQTA-zwUX)5L zq%}}18EGcnHy42emTo@ZwRZKt4J}9nMChFi2Gc656vZ^cRQ-UZ3r|cC3e{?8e(G__ zm|)x{w@vSW%L`LvNIJ?nnoBmdtanaK!SQ|@-{4ej4e(Tn0(e3pcJ+>nmRO0Q6We0y z$3Z;n%T(NP=bCapo*EcR(?99y<Kv+%n_!3W0Vz5>HRc<mf;T+pM(u+9Ce5W<4RgKS zm|*X}$$|$P8Imxx^O1C{F2mR4wp94v-Jhr^)YJTkR1Zn0M8EH<G_E(*?PLnF&nwIV z5vh<Od*!Ed!pZA5M$obu;gNeKg0R>;GrNb}UfoOU*W%tRJE2kqjV<SeZ>%;--g5}v zONx{wl!Fed%Tq5hP;aX+F1%@E$y3A8-!8+4mwLmLVnmPpNHK5eG-9-Ke6ns^X)%=J z<qGk6udY;r^|q7kJ#$WoCK7L<<%hIPWZ3_EeAyFkw0A;yF2X=qc&Rs8x`o+Tj4JxY zg48aOp~F_E+xO+4{es*|a*MPLjX>MTP0~KdSgS<{DZ$4+>+OTPcf%=BGWb;L#TLY+ z|3XM|baciaY_*RGpi=V7<GRBIzm84tXNx&yBP37r3F~087z!}i?09S$eMZ~whmge7 zh3D6cpHFJ^R_R_eXLHC!*yRa_eSbNe;6l<q2fqN?vN<So5E4WG6^CmpokqNUZiDpa zaNmR^m$8MmMiTtg^dmz5m++c>#s~fg9rx_f-7DeEas2&ogl1_zuoQ%@>0n6u?f{H0 z1z{i(PtaXPjQ(7UbF~c#eM4uHbN5n2NQ6@${ZKh`E&dybG{!vR7ZP^>0000<MNUMn GLSTY(byqn6 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker03.png b/theme/img/markers/marker03.png new file mode 100755 index 0000000000000000000000000000000000000000..545cc90c19ad9e9326b1f96690cf171b46cf7be9 GIT binary patch literal 1310 zcmV+(1>yRMP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qG&mqFFg7qSjccCY00007bV*G` z2h|4@5;zNdlPQS+000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Da zNkl<Zc-pO2YfM{p6hHUgK4x3mZ515?kvdSATNYHJX2dPQpwTH4aoK}}4;m9=jEN@V z2bcIo6U{!T^RX;Ooi0;D-5eG&hlG*gGF~#E8)cODR$BU^FIM`xo^x-j6#AHxll*e; zIro2l_x#V}e=h^+<zB>-i0ue<+~!9NA=(k+shpS;HU**)@tRU9&3*9BjZmmo2@9|L z0$_AF!5<2{P(6nD5aG*2s6*)URLY0ms@M+u%S!ls4F)IS#C4G<Kj-y9lWCke+%o{P zKK~W8)*(!(2#XON)kTE`Cu^#C?RpIZ;Rrx9n*2(R1&~U?<Ml(sZ*6eKJUNfnDui)4 z;T?!SpVAeUH}9<hnS`ZiAfre)i1IwV)YJl}$0jJkM-g5&{`j4Im9qSYny2|&A``a{ z9LDqQ^VR%)>(!-bIYee6%tO5V_G9IctI1(#VIUla=kzVWeDsBIC7q<-YKLv#{3zHf zjyJ)m-3c0%f_eAxN9b__)qn_hDWsCZy`?1pA<^;uu3j*VPr-N3RtZ<qN$L%4V6?lS z>tHSPS?8f1b4Wh54{YW)tdr+bE{X8rGVMmlSLXo4VuB-)knAffNzzANIRJd)>#(CB zPtb{!e6$$lwp=Zlwi2N>KSznx<NisH+3gXo^0+ObC#2hAOL`%&EEMFZ=uX3mrDl>E zC=!n}oxWRdfK5sTd{R~UZ$mR80TH@y`29(hm9T6Q!Akx7ffv9UScE;NT17*Q$0?$z z6x*h6#Nh@D8RCw`8#KaoDc;lxJs~uXB$sIGECa4UfFGK7kjY34o!AzZQ=>TRGO4(w z%|*iXr;)KFU3c_*p=H{quM2u56$huL`PwAo4lX&-)InLN;Z_gZ9J?B}mhuXjjM;I| z-7qxogpa!i1hUVop8y#asAAJy&||g1;hxI^+1J=sa+c%k&-~7~f=gdf42e=uiMscc z=(gzVcJmySXhk7b2}^}!`GdcnWlmnbHi4E3ge%c2Aw;{$wNN|ebgN(7az6mhX-1Jq z;Z;K$bKGd6<UNBBnw49&gmQ4+=y2_4d64fc)~!Bi60%MXM=tfl2N(N-lww40;t{uE z=^SFRbLK|fPRvmeRWrI`>k<hVt#*Fj>9b5Y7JCydza(WM#ruE8&7OGUTqgvVLOd|5 z5B0|OE@m+j>A>4BSEV*hh7K9+PS4T5hM7bw34$%sIyM2V6Vs%<m$FuA2r0qGKI<EV zn>T~YqU7Pz-a)!CATItFLXsns3toSVd5Qt4L^wRI+8pr5)U5C<ol_=4@@zg~9E}%) z1HH+NW6RTL^xW+blISnYTELB;PipiQ@my@q<dBW<f-4yGT(;T4fuw^r;Q(mO<RHmH zNDRXRHb*5*Bc4815dR!*n~<a*Tc|P=6Q*Vu5%|A^SIi3@@P=sIGe>u;gwr$l`(eWq z8f9cH2px0&fcV`3m{|)#Unm-*vy2$M*%oJO8xs14F2?VjYY`z4T0s1vvS(ZTH!MTH UxnTjJAOHXW07*qoM6N<$g5e-owEzGB literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker04.png b/theme/img/markers/marker04.png new file mode 100755 index 0000000000000000000000000000000000000000..73d8f29c5e70711b6090a4d760cba7858feb3bdb GIT binary patch literal 1259 zcmV<H1Qh#;P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qG&mqFFg7qSjccCY00007bV*G` z2h|4@5;zp`n<RVy000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C+ zNkl<Zc-pO2Z%kWN6hHU19TQ5st>Xg$A`I%r)GVlrnvl$728~WxCN5k2FcT9KV~mL= z;s=-P%S@K|#Z8TwF~dj}&8kzRglrNd+lac($ta^hDGcOKp?_%m3Z?(9=iJxFC@n3{ zo#dDM&Uxql-nsXjbMIrYzC4I{7O@9mNZDk>EkqY$G}|PW#a4)DM!Z#|)0I5DeH&C5 z^uqC<P#EkUFUZlD57o1Xj}f6<gjEPjslMp3_xA3AqqSyUX2jsM8pSW3;4{GxTyTuC zPyW0KlOcHktxX6=Ho_W2cSB`G`T52MZrWmG5Q_sO66v4RNB}w=1cEXg`{gqH>>Qgz z>wbiNHQ@t@YtL0x)U_RMgiTtBqJf;E)j)!Cc=du6E{?b;!Y2_yDfRk;GJR3qw~f#9 z4Us9!2Mxw^?&Su)V~b%IT8@*M2ul%fy#G`klo*Q{Ifi2~c*$Y~cItC6lCBCxRr=XE z@s75`s4rw6KK%r}Iz~Al!e<I~+KR)w%m7hk;)$!*p?!25T3*~QM$%R3bWOl)c=2we zIOovLYQA-IK?&_85k6jP+6HBYVt`~)_z(%nky>+_PSVmpn7(wJW5OsOEisYy2oajf zii<FNniU_XKOn|}lugyWOA(M)Eq_HM3CfH0^kkHjRI{`Kil-u7tG5meLDSCatT|## zAs|Bklq{!ZRx3$q&Z^!zFboIHJ2Kgl9J`3RQYjnTpvMo>WJpb{*=iKya;m6R-8MT1 z+fRReH!8}s#K0F0^ILNsGTDit2g_pm$06+XO*-Ltpt@3w-wlqW>Ad-E0ae5^c1_#x z81qM#y=dwt!YRa8r+RJR4a%I7bE1B)AbH)|B}US-3btWrF~Uz?6J^yx`BPItDf;7} zxoWqi=>XSIiq<41GqaRPiNE$!Cp&+8*o7AQs!y$zD5A^ZTR1f0^&4K<{SdB)=O)zZ z;LY~S>>Im-Htz+*xCnZc3+=&gc8~9<#GzncO;zSeqsrz2IP?1rIN589&=w<BT1m6U zbp|okGcnb)ue=m0@o<I2nx$*CV4t1mM=o}<STgx8T7F2|i7em$9v9pC&ZQoREJr!8 z%tO7o>ndA}$Gh?Ii;S&ZXNQj4=e>b1|LSLIDG9+6=@@ZAhwBb$A7#zeI)t>rXHVPu zU}-6`DoPHYUhkuac0})gAtX67wh)x9&T$4htvEbxyFKvh_@sEZ-lSZFG_$SMK9ov^ z1}qLIwk@Y?^wPZ$l31=xPJ<t>Pbze)axS*znvjq1iZ2og{Oz6x50dt|#R1TfYl1cp zAu;sdbbIQl8}am+1?A7-o(V~AU<uVnlcH<-5#j$!IN)3eKrl+}o;$jY65g4>-w(HP z(+%cx-Uy**Mh+|Y4#33yAPhwlNjl4jF__OeU)hk*9je~!-un?D5l(~hLp7hz`Cnf3 Vue;$u7P<fc002ovPDHLkV1j`QMjHSC literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker05.png b/theme/img/markers/marker05.png new file mode 100755 index 0000000000000000000000000000000000000000..8580be4044d4e843964ae190874e6bfb3d71ba87 GIT binary patch literal 1320 zcmV+@1=sqCP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qH8mhDFg7qSAQu0D00007bV*G` z2h|4@5;z@*N1WII000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dk zNkl<Zc-pO2X-r&I6h3zrK$fADqCuDl0v51_pl#GhY)uJnL`=noMiYM2G%-ePY9juy z(Lb7K{GqL)X_{CgAvMKT5U^4a36&H9DKIV5GAsod7-nNOItw$`bMBj=3=Bi9oaD>9 z=e&Erci!3FW3ay5hbTo9Ayh$|6ETEnM~p=}#3I<@5jBX{6O_ud2e)knwJK3;{Kw$} zjmZp7ug`+&3B<<;M>N80L_>OF!ox>)6~TdmJf4w^&MD;5z9m1OwL9R9c8q=Y*8ogA zoLA6ViO@zO%tdsRWvMgkE6RB4mShILB>=xa{E>1QfKmxIyA!H^z5tE7iFvf{MQBzM z-i7${>1=gz)BXyGQOL*}h$;#>_&JA{&$Pg~(Q)$dQG{I<y!~!QVnXrv70>Y7B9mSp z<mk`0FO>27x2W>ba#TDAk&Za{&SS-pmYl@E?E#n12UU%2&^$H?<vCe!x}pp)K`?_! z$*esU#>+oA!rps)Cmj0a_i9vY$-_PIN`-oVejb3=CpLX}u~(3tdVa6Cl1|b$H!rTQ z6%_)nc|(BC?AxBhQ{rOND3(O{NI~jW$WSE#1Onm!k&sjs<b~-W!oxd@Zn=nOQWN9Z zLusj`?I6O`jHCq2o_u+a&T13a*q|+>UpAOPA(KH#-C0Qa{3P_~4blO$WhN!kDp@9_ znuQh6Qqa@Y`X&7w)RmWtP%L;naJaqeRzWj~fRbXJaXP~?OJ1xbC7s0h)<JQla*;w{ z48AtUE~2iK%BF9`WCcALf(LU`lEu{%Eb5THT-!l!;;<G$#=zoo@u7JWnKZ=EiDjZc zdkuR%MkzK@sgRr=84c45PSyka<SS?yyCL+-?Kz@rnyybUtJ`BnQwK$znp-t&Fzu<{ zk<a5}V%QV+-UCDPX85#cK#+Y|_9Vn$f{O3n2HhCPWBo%=nx%%?XP*Kd;QZCbUzx@2 z`I>wPrGiq_^I~3hVMAp(ms5&XC1#DtD3LP$%1`H6{nhK^XxW9Zglff$XxCa6_KljY zs+S5Mz!u=q2^C5>)O>+`r_oaIo<oRYm9N-BG5AAcvK)|ch~1r=y>`-sBrX<?U+RaC zy8GM|Vnpw9!d7jaMND)~%~bBrOouESuHaww>IwyD=8U}R+<E2;1l~r=k71FB@cbX} zW$WH->%=+X<-pbs^_upJY;kF+1DCaHLc30cj%ti%+c$p?vrs7s!4hd59f#I&Q8w>K z%+)%C6yOub`Uc_VP4@~fIegJONQ-7f_kSTIIX<yqcedyz87LKEcwEKd@Z03HxVPS+ zXoPgKsZMh(m<%~IXm!}OoIay%cS1<g&^4_GD^6-E^cHC@HbpzI5n-3b?Y3Pu7{P?3 zg9b4GTB99MY(Pj1!vh9W33Ve*pE;2J9PXHqq#sMD#2XM@GmLQkU&1T81smAC)b7!} zyIsN?Q~3K~a4ph$WHSg&vrd=v-2s@|3_^$3AD~%AjP{K-Z&WrU^bK7MuFad_Arb09 e`k^vzwE16Ex5rSpu&AW~0000<MNUMnLSTZ0CSdCT literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker06.png b/theme/img/markers/marker06.png new file mode 100755 index 0000000000000000000000000000000000000000..fb8c7bdac932dcd7b349402f347f30957f23d13b GIT binary patch literal 1323 zcmV+`1=RY9P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qH8dbCFg7qShGFzI00007bV*G` z2h|4@5;!HGMI=T5000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dn zNkl<Zc-pO2ZERCz6h5~f8?;?Js8woL-C)%XA!H(=k;oFrGy;ymL>5f;Lt~=GXf$#D zfW$wNX!M7INQe=M1SM3FxeXXDbJ--rZOm<jm91OHCf&MztzTQ$uj@JYwzKWJ7I7ze z^4@dqInO=!ob$f-GO)NjjM$FYfRM**K13g)88MtLh)H9UAZihBNX25+WB08Dtz5=A z{_XXH!R`QGFyut_1mZBln~AUpp;ybKkH5ER15}slSd9Xc6A5|0aD<)kc;TFJnEC9_ z9vJufZlJXaVN6F@jA*GS)E1nntYDS-3I;-9fJh|ykwO80SPX8D4{CnB0vAl?DYR}w z7!nDWBmQ`<NLyC7uM%=Z0?Gz5ibx0%mW7wjHNg3y5z25g!Xt>?{y-y>mVICOJbPDU z{Of}d^Evrq1-m+5UV@fGWF|s2;??(`Dg%`wk0D2YC<MFo4ZwWz6}OU3GKa5UUDpK5 zKR*uIW2fM<$qWjag!%C4C+Kz!^?(S=C1R0wUx^MN$OnGZ-U;=?qww91ZQM#a2{q!! zfgxx=uopY-gV!#$a4~xxUBj+emaC##65+;D<x0@V^8lhzE|5q__Lu6CbRt_NmB7YT zDqw5hg7G(NxELj7xn89tmvuy_)Z|IAd&2qhm|Sjd&5haOI;~+OSpV%0pgwvMx+iUX zfIt8Rc`~|E2>4brNdpv)Wtyr7u)g-$035`cP5Nix-R8D`2b$pth|qP%=S%9WNFYce zjO+3B<ya{?ELPqj%5pW0k4@Kr-31mh!~%*}DCWDGsFx`7Qyzp_A)J0c+c#w=lYtmo zaV#u9-@?6~Bjy};t|^>vLZZG~x0+ke#_Z(}X}DceH)v*DfjI}7TBz!@x#j&<dwI>e z5>}Fv!#wlg1JF0+fKRXWaAZd-o`oE2&}Os`I;Y`q$8~s8eLsA&V>^f$0sG2@%ZxKH z_ci4ZZw0mJ+HPIZT7A_{R!A*MY0Ltl*F~}ezg%L@+#DQ1%O->~J}W^)v(Y)dXUO4_ z?_K){0PfR_A`-*v^;eiv1|t>k1q3&&!UPwp!S4pUvs%DH?$+X>g(pp1mgT~cj&At) zYFB_tjOdKt5~jFLAk3{}cdE7)sG$%KSBRv%x<~|uNgKQW{3Rw7jlP4HpOPw(=J{vw zWlz7|)Cz&QAPdaGL%p`SotX)TaU;XA1*Ki2LWc}Chx_>TekMLjoZyHw4vj$L$ZgUN zrtQ@tgjC=YUv~Av>}((*OBTN9?4^r(#MS>oNOHtH?eR63Mi~%`xWnV7)egUnj&t`G z3(7=Dk#(mHw_?o@g5GGtZOhVUwCP?5N%U>w7I5L`lLozkKNssV1!N;^a|QzLzpOT} zBWbUdI{+Fp1&Fc`5<`EF)xL#xBc48!!2dbiGa*Sgj?k81l-o7^2><^jykVMlgC|Ja zJ#%(<OL%(>e?P2v<f9BM1)+Vy=jXpW0Aou*=nY1qbe0jLC!2G&u_2*v=uGU|u@o5+ hp#}IKDqA+^e*hAT$zVtu?8*QD002ovPDHLkV1n{`Te|=N literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker07.png b/theme/img/markers/marker07.png new file mode 100755 index 0000000000000000000000000000000000000000..841c7b7773ef3d3bb3510269a3289ef3afba12ed GIT binary patch literal 1273 zcmV<V1P1$wP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qH83D8Fg7qSaxTy&00007bV*G` z2h|4@5;!fco~(2L000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C~ zNkl<Zc-pO2T})g>6h8Ov-9p)Aw{(k2fXE71sG6qQ#>9}+*arU^F%_FOKIn^0j4>J> z<fV;$sfmd((Hhg>gEcmdrf3y`kXC}El&EZrz*4ql`6-m2?f$X5cVXGT@tnE$Ru-1s zS~<y=nRD)(Z)VOpGjj!4Umiy6N9;tHRGW+#M06s?(m4rfY<Y-A#5)GPzVNYaTcOls z<O6Sq!eIA!L5{|Js5T)!MuajES`p1fM#Ga0dv?N+>Pl8@#>GiGWn4VL=7J$O?-&z4 z{i`3QL-H_M>k*E0gcXRc+OpD;b9J@Mvc)VwEDn%Jq)w?50rYwZ1Z8;h*Guq=bK(wK z_aW>n2{$9IJZ~-C)pDo~Hc29_1~Q7Ig9Kyn`uR4vFgi{vd>RoH)z2Rm8x6a@t9yan z6PdDo(BXQ%d8L*;vc*(|mgCx|BE-~Z`)e5csDZJ@cbVL9lpQE9V`%3s>0~E;HOQyw z#pkF`Tes2*pUu-trH8620irQJ!-<|gXdRn`GcWJsE$Jjk%CYdl+pukOE>u|xxX;1u z<*Xn#r;uVvgilplwnDKfA0V0JjzmIoxVkb$*W}A<gWy?;z_Dj`b03Q_Pk5rxLZ2Qd zLQ8SJ0kfyO>)`YUc$=fzG@XPJak_sPjGOdOzr9>BiXxQc8>wd&l~fBU1r%3TnojSz zJ%<G@1IG65gq%ZA2#C->Bg-k7l|(UxaHZZcev7v?B}M-ZNHRW&RyMW~j~`~qpgL9* zn0dRb7PY36*yi25-Tlx5>UIV2g~M#{j)ycmF?5GxvDu$);91AGkkEEWz8@J)(McR$ zKX1#-`HBHgP0P&*!5>-nqSi%(Gl;K0>9v73C^JgViJCo}<gK<&-jc3~x;1#vkjIZ< zXfeW0Ug2eRhVrMSf>QM7tCiLr&GiSEj#9KLF>6GmM2hT<pF4ze*Kdxag=Y0>X^J8` z9lnKwqh7!1wH=Sr8OTg1>EUSWCE;7UgM#-GVv@|d6+<WnzuP^&BO-&Gy%pBAH;pE_ zIdJNat8lW{7NHO$`m|5FRYT_x6WvoY^?R`_%J6c9#Hy`J64>Y6?C^ySA(l+OkCq=( zB9UhPA8@m0-@Diik>w}@VeO^f*x4g2#^YVs{c25U*NM<^yW1N$eQik4N=Yk`_R(=@ zSBm>s+FY$eNC9s8!ZrX)OOX|;Wbk?40Cidsz5j)f<kZAMP;PTh3ZR$x<#FBRf!`*l z`M33)G7*wz%USykH5oc+b~y3aGI~ZY-VY&3^X2JT@Z<AIh2Eyzi!GTPvJqbPMIwQ} zU2gCo>41x00PUF^q%4HQFx2nz)X-_f+h-n>KZpA!B)N(uR1;0|Q!|7J|6jsk=RyF2 zQ9ACKS9h<3x2Ev-!xdhn{>VlUdgkP?^6udKy%B_=Xd+2>88HU44bE0JB=m+Zs(tT9 jtdIz2LHVI_XB+$v@F2fN$^Kd100000NkvXXu0mjf9c@+u literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker08.png b/theme/img/markers/marker08.png new file mode 100755 index 0000000000000000000000000000000000000000..abcc61d5b36cde349386e17f46861fbc13c3c2ad GIT binary patch literal 1317 zcmV+=1={+FP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qG&vwGFg7qSD;$+;00007bV*G` z2h|4@5;!&_`(>B_000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dh zNkl<Zc-pO2YfM{p6hHU&HKDX)9a980aG+(5OmvGHmkon<i*D9TBrGmriN?ea#zYh6 z2bcIo6OCVV^O1e<5y^b4bK@yvAS0X0CLja4(T(Sd6iQ#Tw5;@XJ?DShNujiJa*|)p zJ?H-azkBX^{O{#pdD(z?2C)U9iu$~WK13U0IMF69fiDel2=PX`OqTWV+BJ};QnH1A z&-%b<cYrq#bfS3-@eyJ+8DRm!kgZIA^zCh1V1IFukfX-nq!MvmC@f5RX5oZsnEUk4 z9vGkXUPW&O!jy=x5Yev7&&xfo*9n@{Y7T-SfN(hekrEz2CIh#}3)S^!p>}9=8olKR z<3hrF5P$3{$SbX@)Pr2gQ#6oNq!I`V0=#^p5l#(`P=t>oJbd)_yE)4A(jWA@g*ze> zUmqkG&$ln=ga=luwCFiZZX(P^y!y@)rI4l0;Ao*Q7=*osM&LgFf@!izx~FVV^39LT zPr7?z3e?Ip?!70s((P)h0TGs^$)tIe+9H5}xbcGvozO5m2H!nj&NSI12b)^KXmdhq zm7eL>e*2y6+4s;!A#;@?i*iYXj}>dyK#nQ{AQE94iG-x8xG2sh5|Z)_xlCV~wzEAN zjItz4L$1w4sL9Dl$LdLLr)S9JW?B*T#q5J6TBgs8n&WKXdC1LB(v_MQOU=bKP$(Md zV*BW`J3y<+gx$Z?L)rQqX5a2VP9z{g*M!#_S6L~~#}UTt1NE(7a=4(maxa`SPe4^| zi?|>n;1tnRifz+1V0VFq9MO%1nQErzqfH&NPY;eTy{lmTzq#c(aQb{gALSF%Obi{^ z7M5SH<E+bNY~h}b`Aq*bFc@b)vTki$4!7R7j!jM7jZx0!pLd|Eow82Dt?IYh%c?hP zg*3UGd+Ppsp>Ns&pIq)?WJh&7K#m1^8moKBVr70JtI_K~!Apb#wP!e|fBq|qAyx`1 z(d8G53N{%k_6QOx(W1gE5uOUk3$L7R=8j*xLAlt5aK?HifM_#0XZ8&`T&kBgJqUnv znpC7Rc)j5)_r1|X$$JjLnpLu33FY9N(eB*O3!vCpSg`b@iODJj9J$mDA71S8Q;HFt zv0IWwOD7Sd9p;IOow?bNkB2LS7rnYv3dSj$P<5)A3q~Suq32{=CK5dVXMEY3H(NTu zKOYc)TY9J;YP-PAg+lFk`Q?(-E|a0dMw`R^^<Vv5td*Exi!@;`HjUgQ>-~haT85Ak zeC+eCUbuD3zaUBhKI`nIiw4BS|3XM|WOT;kZ5$foKqh5}$2F@RTF1uOz2!C~Bcz>m zHOA}FVo1PX8p5#^=rh`KH-sdH^Wzq9;pdYYy-_?D>ym9qMR?xn_q(rHZD2>zUMo8Q znv!jhrXVDS{vNA+J53{=K2sq6IovfNNjJ98_CSP9O+Ui-e+jP+&A7o6pm9$g-JKHN zG~@4w)i+1i11mvjpY-~~?+$=@B?xB&;Ru~&#OO)2I91z_&^L50dhJ+=2#L@F;t!QA b)#85uC)~x+5x=&I00000NkvXXu0mjf2!>_m literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker09.png b/theme/img/markers/marker09.png new file mode 100755 index 0000000000000000000000000000000000000000..f843bdbaf467532afd3be730c48f1519de90f64a GIT binary patch literal 1332 zcmV-41<U%0P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIy5#qG&vwGFg7qSD;$+;00007bV*G` z2h|4@5;+9*Hw9S$000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dw zNkl<Zc-pO2YfM~K5T1MYE>Ir31xhRe5iAIl8iKX4#A-=s&?psCX)Un{@e!km#zYhA z51SaH#@7$EwKe^tO-W<Z)lv$Cwi3YBO64W6E!*;j@>tjh?1L`*I?kMX*RVX6TAAd_ zIcM(7cjwN`Ip+$nvOIv;g~&x{6rBUng{VjLFXtpIql-iwM7$ZLRwv|ah=UYOG&j6$ zcY@wz28Y{Y!R2wpX9#;J!Zd^~F*@pzcemw2S#}0X(qeFuO1AU**o4gvXAJ$q*MD`u zsNHcLwWSEda)jxKhN9Gz<WnU@EPlOK0FM{I=L>$NN(4}=Vb<n=^7EJAT;JdnY6}ti zg@o%6e>|0zl2^5_1i~bdqJfYisldk=>^)NhXL|=I!p9IcQF;7+Qgl?_$&#npU6IM3 z4=Rl3$LEUJgX=X}s5wMxB1}ZQ`rh_DNYKUzWa#vGV7IOYgfG75Bdtk>F@O0db)f$0 z80@XA1E<Rc+UQ8(gZxM7aXHn12n!<BQp&!p3;?(6_|cUXsO}$vpPnt`Bdtl^xX=jA z<3^|`-UYgw{qT8nJNMa>xrxO_geOogiEwLnd>kZcVgUSp?nopg`?E8G){P@$e0)*S zSN0BYpLmS&;e>cnZ6U(=q?jnIp6cK9^jT;57_R67Yp<ULrO{xXktd=E$uZG1(~5Gb zg`fuVDv>T;Z@>ROKA!IBU1BE)G64}<#~hBJ%1WXbL>O3qQ}_gIjEaO${%nN}>mndR zQoaf!zip>oDYs2)kI4$-q);5wW3_yoSDHGo-nuaXCf<4(x?d^dFUg9FMIQkyPABV{ zGLea%7@Dvx#(%}CL71957H>-B<Il>c1=cA?Pw-Z1o1BJ8=Nuf!$>h7H>eirOb<La6 zq=90l&8_J+nhMIdWU<JwFyV2`Ro9dmzP#4K$&M5~31L{EOpNIF(Q!D^-UYAa=D^1V z`QV)Qumk5V2o~4;F^VBj3M$dH=QGka>q?86ib}MoFiS+FLW=CA$~xiHja%41unl1e z^oko%Z?Mel=`~w5FKm7YfU(eok{VvGz9gK`8z_0tAb7K?7MM^D8ucbinaCh~XL{Pw zlO`Y$;c&RQ4L-fv>Y@}QS^|$$i%cgFgH0o2r8|=oAr%i-@GbguNdo=kG~0i+PVo5s z@1W+FpiC_D{?que6>nc`0@u8ofw1&YKUjZ7nDcrYaC&q}YFEh6A^o&@_J{UvA<#-( zutjQd|JDu+)9S-zYqbI)CHVMvt(|b^j%z`b48CpYq)9d6>VF|5IXpOHbJX+=380qv z;c>%gg5QQl`LmUrLJ^W@RfYbhQVbR741Kt58C|0n?}d;=cNuqv6|YZf^cwkGtP16@ z8sTM&%QgGAaT-iW+G*qmKy4@oX%#|Z=<YC@cF=Cb(`ORoKZkoJBx%DI+Tr%|UDJ(l z{$IlDeKWIQbJKPY9o^j$4v*mVX~gpnrDrV&O%o2MeD45^tOcRn?c>)SG1^u$Uaf6N q=nkDz=H|7CkO;>?{-K&)&G;WFG|5M*n=&Z?0000<MNUMnLSTZ)u5kYV literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker1.png b/theme/img/markers/marker1.png new file mode 100755 index 0000000000000000000000000000000000000000..6ac4be2a6ce6b8db7f670e79a16078ac4487a959 GIT binary patch literal 1158 zcmV;11bO?3P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGBY48Fg7qS>_Ch300007bV*G` z2h|4@6D<L%F-)`o000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Bs zNkl<Zc-pO2Urbw782`@g?La6ktnxsB2s#u{gQ$y|kYM7%)R18&qUggOG$uY66HUYi z_c#+0UvzOX_%Myj!UD?p8v+u<Iidn0(2X)mVIYM<|IqdpO3Ur>`&wA|b9-BGU-G*- z=eyte-S2#V&bbU?%R`7$h!TW;TPGpL5q*dmrA16Zmx8E6e2}WuW<LJlamdx{B8LC^ z{9tl8K?;UkIBh_Df$*sj<|CT3bg55&e6j>;iwbzQ0i6>yQM)afFL`~?WS(JP{xu2< zKIs-}s}W`;!V`%8ioD#Mt5p@;m~LPY+5(W}y`R(w09q}0yb_#i?}b*&><VgMLYQ_F zK7hD+IzP9xt)>c&i2`{8sv>GY<{aK=>V%eQD|z@F!YgdQ{xn;cTKZ$v%RC{n==MQ_ z{#-s&!5>c77oz4osfjQP@$M(jmqMl?jVY0lC$BWM1FQdL-wPQGx)k==3(wN*9OZxr zUrf=8xiy6a0Kw1!vauBhoN8=^ZtJ|Vr?}?qV~_BR<fKfBrHGGbij2o0Tc36?0Vq#h zzNWtQa2Sl}<&&94_-(=V1bJx8PD{n?X%y`XjTz8*rb3-m5FjT_M<as}O*K<4ag@pT z-i9}e3gYI7u_yr%x)&uWvCPKYHpecau8fw=@T9{HHc|+};mHIBF2A3TWAac;#4z9w zg={}hVXq(49-a`prtQuwa|bq^IO`|EMZ|aYgTvtTN<3C_6b0MRw;tdZZVu7xdxT{t z6_lbsUn|HjZmzE68cGqCL%gj56ZkvVyV=#-cdV#6iE!<>6GZfxU2A8joo@Z>#g77D zcc_Y}h4(vp*$*Z&1@BeFT*T>JCKQ8TO%7MBz#*ypM80C7M<h83F8(nB7Y2s|IIBbq z-HXCL(<Q|0!2Du$c}^DO;o%DMzO9QQn3h-hTP@uz6b^rcnxFPWLgD+@aI;rF>=}T- zW{?9rSn+jzzq9qNt$rL{IuP0z5jt;Lb$Y)2dxGsLB`lGyX)APD@6zmZ#azW8qyRU3 zJv;^*8-ZP3a`<X!j0PQu!NU-eT%29=N}ZND23j$4c-*!-;Fr0D$h%mJ)Cg&1+ZEH) zb}}^3Y_?$Aa=J!)jzUP%d}F}|ZoEFJ&^u=+640i$ARgfjS0Lc|$G!><BptIy4uCGT z1!5dRVwf1UJIbgVH)VMlqJIuYCL|fb5-JOZBV99r@c&=JTb4Bsc!SjL>fR+vcy}Iu zKkWW>8c*I2LdTNikKQ`~^YM%mA@l|1Fr8(@=#6Kb$R*-ItZ$E<_rpUXv_bTTYBiqm YfAC*#Zi9GdH~;_u07*qoM6N<$f{IZESpWb4 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker10.png b/theme/img/markers/marker10.png new file mode 100755 index 0000000000000000000000000000000000000000..a27069f0d064eeaa83c6d0d7515c4dcecaacb24a GIT binary patch literal 1241 zcmV;~1Sb25P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlG%_G9Fg7qSbhvUb00007bV*G` z2h|4@6D2a;IH#%r000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Cq zNkl<Zc-pO2Z%k8H6hHU%RTN4qRz46Qg9#hx7Ke_wB_u4-uzyY#$DD2-G}*FbAC@Is zqJGeXFPfO_%VxGL?t?Bf217R|QbJUML?t?K4yjV56f6U*^bc)c@zK)Wo%3F+^baj_ zp5&K%&$;*f-nr-8KaauU@*H9dVm(41vq^|sh%UrPIwzLKmW$Yj_##iMEnK&H6_o0A z%EW&HL9n>oAcevnRF5GJBLbNS%Mqp`UEYSTYuCfB>PlX0z~DrUI&VJ0r~CnEwT`fF z|GWv~0qHhcn-JD?gcXSHhO*L<Q;iMWxYEENJP#0wBz{sO0BE(~^GmS%+yyvm8-0k@ z%?Qgv!WD?CZ<d$VwC!kwWuidQKt>TY5aAp?Y&FA~VLL^*3E>xF!+VQ$c{RT_zQvbB zrY;{e7|-!-4gC3)`YN;>Br_2fAwK=)wHhci<g+*#ef{m$bHI-L@R%bQ4#RsUvtpw* zD9d2b<+A;+ze>ZqsRl&&My^&Y-BDEu5DF`f0}oxWrR6Mi+8qf&HDBq2_K`6-@$P1& zC7pb>zqp1MEYB&VToU2NYU3&>*5?C6ql)7z$4|p0$3)61iG*Zlb>$NseT*38%Y{ZV zy+nk@;`}_Up60P*m9YR?wl$;>+Pprc&56y8>mUeFlCPtlK~PK05;oA#XCK2yu_zMi z5L-byoiUYw2)z@Mw4}<4f{<R1ay&(JD%EY%KjiYlBpH$%lBJ@+ptN(b&93MI15Yr> zZ($)(EX2@*+hOweyLi@@X)_XTT~nsCEknakbUZa}_ePmlo^zwAn+U0#KOgDs2e)71 z3yYI1&2_a3$sTi;(l*y`g21fI4_)n};S*G+cqynv*Wa%!Uu$aG$~9D?qynUfK!p_e zCx3LZQ+Mv!(Nc@>#KQ?8x~!g=?Za-b{)4qI0N_c<Tp=xd-hP4oVzE;4-a(9!dExpf z2bU}^&n|&OPJKmr>P-`u<vDQl+6_3=+b>fp5q<HY<b+KjMtd9+P4y*3P==Q)M3R;+ ziePy#&3B&ZWZ`J^E42KUkcl+kKaGn$`Q`Z@kmo`iSn8#|uj>k%ouBW<?vE*{T_i&X zEz@q_Pk#-vgsp^Iq+{3)9rpXA9Y|ZNMF=Uu$G-0$fJcwy1yOSNu5W-k?TFt0LP&CS zbjB~4ZDS0yqH=lMak}8**tjybm{TS~@@zY4xf?5n2255P9$QY&==rB1Br#ncp9C*H zpS01<>V4Rj$srrzWsfZT{&r4-3rPo@$_3Do$wACQNDPBFovu1Mjd;sE0QJw|sR>DL z;1;S2MU_)ChzR~)!rQhPANWIb+%reFRKoiX{QYnSXQ@B*EC^jwQc!(&036vSFNH7= zibUxyBSwF=$=S9I3B8rGvA+9RL`Z~_p#D%zXPf*lb3>lH*rz^000000NkvXXu0mjf DXEifc literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker11.png b/theme/img/markers/marker11.png new file mode 100755 index 0000000000000000000000000000000000000000..bcef5ea01274bae0f027c3be727626dd5c8b62fe GIT binary patch literal 1160 zcmV;31b6$1P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlG%+A8Fg7qSMNnw100007bV*G` z2h|4@6D9yY!lmf|000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Bu zNkl<Zc-pO2Sxi$=5S{z_Dhj1lD<1@iqM+as#U*NDqKO2T7%__bhaVafKa7bc>W6-6 zV&ab)jnNM^8Uq106hc&jxDXXwkSbM5L6Bml3vFMqw6xcm76`Q~=p^Um-gz_U&7HY( z?_&^IrXunY^AXBHorL&=s7ADgb7En1iHKu}14(ju%A6^aAw#L~8~$)OL1Qw5<n~x_ zdIfPB;fO|<i6~1|BrQC=WIpW7&E{z;3{I2<>;}BN+wOo;Z7Vzb_5*Y}q|c}=LTJMg zW+7?{re&nxE-c{ci7E!30RXQz_>(dLKrRQHU4lIipTGlM+b`6vMrcM7PC&d`lbMlM zzO4|(i2_9fQAL!2mvh)!S^@W3^c3Mzgk2bXeKbvxly|dmEsu*VuzZkVJl8fB@aYqk zIjA{FY9dTU>^-t94^mXgY>14$zOM8kurn8fc!Knp4wWL29bdkfUhSb85aFssxtOsn zCmX=+@jEsCGC_Xv1E|t>1d)Z+qtE79Gx((O2`Q9I5g&_k)srDjnLJ#81=mW#t}?9N z=L0oHIWI*G&pQosDMEExauQZgHf)olo&?1k3qpJ&=|K=6Jy}5`l@KU33)(=<`*y+h z-0Tp)NP0g93lI>YwM&xXt866kaqJ@M%D}d1Xf|2FKng(^J(<A3;&k#)STGa~G1NLe z9>d+Q*z4ouqbJ0!DgV~Stge1D&T5FT3vu;KT?3fy5+7Ndn1XHS=yUN?uj*-b9iba4 z1(oQ{rtHkwWknmfj7o&tA=XlX34HhcDt7zJH$7^WAS^@SxDnM_OYi0uvsJle_Dlfm zh^QjUVgI8i?1n~5$y<+T_Xj<~gmUmqW3ucNI3%ph$_zbehGcvKTzLHsPSrKIaJB(a zKb(cXOuG?nwH;kWE7Mb98Xm6T{cGu>2%4Wge8;^i=JELsq2^9dCc=Eb1Q&bj;Nx0w z^}9K+&_n%L^-I<_Fi?ZTOChO^kfD>B9<%N8`z98&m2itxw&<Z!|D9$h!qzGRAtm_A z`G!XL{o6GnN)G4h8)@(eQ8yYwk_&CUcBw+w&Ok2u505WK6FhD2^uLSb6pfHP%WrAE z4i-ZOWm+A!EvIYr@mL5+%3gFDz>3!=ZS;y($^?{0bBIOw!s2q-J{o(#grto|{{c`L z%|VPoNDNIMjHVUTjs0HlPYC=ujG2(+9d4l&ZlAwvnh?%^CH$=GwSnDD?H)b4cnQCE z;O~dg*+=8%|3PT#mYjim2cRRCaXf?$x7SB!88O;p8OL*p*bse#WAp!rkO&PB_@U~F aW&8*6vw<Zk0sHs>0000<MNUMnLSTYF-2cr0 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker12.png b/theme/img/markers/marker12.png new file mode 100755 index 0000000000000000000000000000000000000000..1473de4910ef82ee147dacbf158129396ca59b23 GIT binary patch literal 1272 zcmV<U1PA+xP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlGdUnFFg7qSe0nd_00007bV*G` z2h|4@6D9~S87<oY000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C} zNkl<Zc-pO2Z){Ul6hH6vm5!}z2W20YZAy{hh7uf#VkE&tQj`!za3IqU`+zZOVkDXf zA0+XEn2`8EB^rZ?U?e!QDN?p&4x4R^E$W6i_Fx_By3w+Z(tqo}(Y0%z=e*Z0>(;(b z<Rrg$?>+b4-#hpGx$iNMT^>bjM{GoBlDZJ$I>Lk)&9sThpvy-bM!Zv?R2Dz6Y9*9w z)Z)TB!7%V{4}_vIFAh&4K0^fM2=$1j5_Q3*4>oUvx~dAHREx%O3TfSJT$l_5q0v0b zeE!!pum?joP+N;IXChpS=rF7<FFRXf5OhUa24b@S@p$?x6)b>K3I0F`>Mve`3zo5a zsC@~+&nH}t=-Ht!uQu+lfn^*^)_|;V3Wy5=>}za+^CMQW@Hs?)O-_GQsxGMhvF2rA zNo3OTL4o$1+HDZl6lp3^bClFXSb{kC;g)JB))q1;GJ5+fjTeDA{`DM3&z(uw@cmDs zj@n_D2ej&Z=E(EU&~!b;fCyjAS90b1D=Pq^F>&L-JvVG`xBzWdTbfY^jP1a?yucr< z6Wh0c>lF9wef%+DMV_jde97VC=_=hyDAg3s1>mVu=Q5ts{%*b4&Lr1$+9m)J3DBXH z8;W&s+3t9fEYy`27GU%ga~mslE1+SwA*=hEE#qRlYI&ZdU|A?DR8vpON}*=b5@_hn z*WtCQii~9bnJ64GT@m|x)~%V-GmJz)guaPTXlao}Ib`a_iU~oHN(G<1@T{av2%;{P zHvL0xA2>+Cva)1db_bjuGy{k08fpw6x{77M8x9NCF_0)cF?5AvF~={%SnJD_vV>ps z4T$ZLEt_D6{t-!uRb#w0#`q#L9vpQLA%+URJKoz5o<K;LADo3EMiu2#TuZq~2u??Y zV?BMOK8>)XLO~(=b5DhSeN*i&K|vwHbdVL60?7(*{MyExy?M)un#~Ar%A6>|WcE(& z9r5@yudZJQfR!REoD$w@zQp{%o5^`Q5#ywue?Ia-C-3&wu>z>Jt<^8SX;PA>f)jsS zg=4+_5ghG8^rfa2I&2a#)@7Th-BwlttMPJ$_=2Nz9PoEt!h!Q`Oe~RjA2mOxc_PF6 z&*5Ruyw~0Zk(sCf%;HP^u;~gjJv-Zh-ES7THj9Uj@-C16+rI~yv{b?rX&tdbtMxXG zKF%1cEQI9XlV9}@!2SD?c~%PWrId@!h~ED~NOEFqDiCV1j5DC*#LMHR(+$6m+r_zT zo8$;-r|}FwoD7Bnn#>j~TY)~K?GHjo($tOh>%-3{C3?#!c>;`b8*&kLdm|D5KTa38 zk#xW*UI49f8@L>V#4vcx>E24!h&T0Jkp3JVn2_WurqI@CLadrWMEL&_-mpyhArPf< zm$z=Igtu+@`{4{vQ-A1T5V|KrVd=XAV9T|5DTKjjJVAFEF$Qui&XqPKe#CUL?|B#& i5}^a6A1YU_#s31D;imA3dHQDn0000<MNUMnLSTY02}G#? literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker13.png b/theme/img/markers/marker13.png new file mode 100755 index 0000000000000000000000000000000000000000..2719455c88cc4e319ee80ca9bb03b6b8c19d5a67 GIT binary patch literal 1260 zcmV<I1QYv-P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlG%+A8Fg7qSMNnw100007bV*G` z2h|4@6DAL?eYki4000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C- zNkl<Zc-pO2YfPI}7=F*!uVd2EZqz0cAg($T=9Y;{)P!UvOuUgX5$A5nerQbmVN5h} z{%}8Mvcw<iqFJVKPRZOt-5di#hJ@iZvPp3=x=}_cw^3Spqc>Js+Ryj>zLrqv&AB&u z+H>A>&hx$Jy_|Cxq?bn#+Ywt4s<<wIxQXaOjHX(|Qt0v#2N54A<Z|s(4;MnIN-0jf z>kop_>4HEw;>PZA#1{yECPE!TU!+t#^KsQy*i%s^6syrVUM9_3j0!V8KQx<0*_VIa zfGL0A7HS(2rc{I*5#6;LN=r`F*9w|-Y6g)-fM_)NlQIrKE(fnK00%B~!g=%9ENW{I z#^r<$A+ElnE3ItVRS#=;j;w)<!pk5k2=I1u8=M=lkcH19d|Z6^(_*Ef@|XHog`CKw z?Sl;MIkBTwcx;`j95shXO@u{=cRzWd613_9mLQ|Azt(&K*pY9SIQnf4*z)7AqOR&> zGYmUipjPIy&t80vh7V8-i14L+IbXV~ybK^55f={3I$`_i^Uz_LOfqVJYbO{TZn(0q z0SvZT*pEJ>H4RTbF05ahrzKzV`15RqrVxr%1xo>V`ox)(yBvCNZ&IH~Ar=D-TDe85 zfj_6Lo5?~=ae)G(CtI3Wu2~PKchshJ-*u~9{NG(sCMh@$N(z+JQgc$MSyBR#CGR9A zr;s{*D?Fmehp%d?mvoFt1VreW4g_+GY+NqweG_cKdDwZjT~fpZtRkvPDQyfxP7hc~ z!EreeQaO@bqpfoc+`*u569b82B!-?~Bw{@~jJ3W-o{>m*>}N4$x+d<5{pyk;v1(fG zj4@AW!G)@BBAiBif27v{E?+=c9-NiZRQED$))tB>MPxs`Q3L+@kZ|~F9}WM6FegGm zA-cY^Ot(qjSSQFRM3@d4g`+@n!oJ@-*s0rhEU2kMxD)1t5nU$tT*HXVqk3!8698B# z8HJa_`>mbqq|rpqdmS-O>gD?*A6zmz-Fr9z^0sZ%tv+cIvNjKnUh9X$y@n9>>JWX2 zp_LAsL5%fGPB(5tA8nv$MptZ|=fP-m2)oa9ut+TS5o&%*@<fX7pTW&GeR#14LJMI5 z*y=<5VAmBkzqr_q&F@yZHjRf4867U~vA+jdQYvAJw2xSz-7-PF&r`-K4Iw%B_&0_D zxOXqK%t`^i?i-*+E28(m5Rx1noAU+Q%;OB?ym)xrwmadE@hNdE-J(o{w6dkiI2;d# z4D=>5maRb7=*9aXB+*}<vVsS%PfGN*QSt<|WLl7o@UlA;^8RCYfD=gv?BW5?o@oJ} zg^(BqZ`hsHRE-PKs12l-!+jHy^kWKDhht*Z3?hR6m++Q(&I`UUm3wCEawVLY#OH?{ zPiT~(2SMnZ2?V8k2VgSW<Xi~-;b@G`GGg>)o1Duf;zi8I+pY&;ArV?ZdQdsCP5u{0 WeV&621Gaqt0000<MNUMnLSTa86D?@~ literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker14.png b/theme/img/markers/marker14.png new file mode 100755 index 0000000000000000000000000000000000000000..ee1a0f5e4f2193eafa9c7de521239f31d1712121 GIT binary patch literal 1221 zcmV;$1UmbPP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlG%z47Fg7qS<0oSo00007bV*G` z2h|4@6DAp2sSPOr000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000CW zNkl<Zc-pO2Z%k8H6hHU%RUDL7t$ZLr6txrF7RNTTEiutVgMVVgD08}f@WYlR%d#xl zlCcl-qf1QoWx6ek%YsH?G~hoJLR7+-N_12mQlvmB2%}KwAKJb`X=(4y>7&@%_O)|6 z$?xUe^UnR<bI+f9AA|I=3b7rr5ushsNr=aYR>WYcNi2mf7g2-wG*7KAcxB}ZDA8)7 zhJX9~U~)J?3Wi)bJcalU;Zq_kMKly@^4|Dz(?&R4Zs0{abWT*scJpCA?)5>vd60eo z=OY;PNj<2oMwn9(u0ym{t}ZD)S5?XN%XADv^8n#+;*u%>K&=LkSArwgZo*Z|&?IWN zAx!avFCp&kC@raIJXi%wM1i~kMG;jH<{aLuZ-UDMR`T#|gjZPj{B@Bgui|XgPM#H+ zynRriKec-+`I=?gGSnO;H4zpfKKkmN3MkO!vltnzzN`Kku;V`^@Q}Xn$68sB;m~Pv z**EXLMW2pP4v27Tu39WPSY`kShN6?YCLOT-{8ebNjwCrox(WZxGX>7szkV%WzBH$R zVkzR|&2s$;DAMLHCgAnj3u$+Hy1O?~5s82vy?m`e4}Xl>UL_CpMfrJ{J=LO3nSME( z-&>hP=9~?H6bdD;A_!2Nuc0@cAg7uo6j1NSAHe(NhNO9QJ$+EUer-z68IuW!&^;ze zS!K4aryuqi)+B$3aO@)LO1W%|y$(0nNFfM{gvN<USb5^NXI@dJ1qLp^pFhS#qL_%G z-5(0sF7;urFHtKJ@|w@0h#yneH1-cMcVNzmsx~4VL;QNY!w62V#N(5bQLqhtGXZ|= zZYPaSBP_90P>SyFGn8&<sNTa>lp-t#MG+{G0{`$z3p@9u--?<|2v^LVAfnamn%+O) zbZZZ6cp3M@l?g>Pd~*FJJ7Y3a@OC4HqfW<}Pz-)IIb4SY4mn%al_sAwF<F`eC+|Ig zV;#l-j`kor7o+f;={RDjePpb9OK~Br#={lD&uv{4!89?&4_$6yp-AKl)Lcx6M2ht< z;AZPSztIkXxgZCYe5lv7-eEKI^KJP0b5dy2MChn#%IW##VK+-CB`lHV0V_0HpVH{t zl(|YnNC7@|!q^3~vw=7-IsDMsMK9M89sh=q<mAw_S8B2hGf<1s!{dqF0k?)nqu<g^ zQX-_8jdiBJg=DCp!EC{{<#dhSco9O9hTEeyaO3q!h2Atsk$^^}37H6Qy8;2vU-l_* zAZeF9dH^&lO%O8>5<~YRyJItT<6JmA0rH>23low&z!KUVj6}Pp8{z-2ggusN4|s#r z?#kX}OZapIe?RQ<P1l>rI2%I8xa61b9e|Nc#@P`1g5e0AWyI*sWSpsNNIZzx&F=g^ jJS0LJ$Ujt5nT-DdG{2Ipk~IBE00000NkvXXu0mjfsV^oV literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker15.png b/theme/img/markers/marker15.png new file mode 100755 index 0000000000000000000000000000000000000000..fda178aa8324221c910a23ec7bfe36d7188811cc GIT binary patch literal 1276 zcmV<Y1OxktP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlG%z47Fg7qS<0oSo00007bV*G` z2h|4@6DB6?&ma^4000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D2 zNkl<Zc-pO2ZA@EL7=F*~?La7Htn!0EBe<~v(;&J<jU-b?a8WYM#Obyl`>|z-G3qiC z@rR4QW?bSAb&;4!GK_?5S=}51B%2HoM>gp`7~SYbDGa1g`bEE3KWLBdxwq7omfJe_ zCQt6U?|IL2-t&H(dkL&8PatX#l?Y`-=Rw>;^dQEPEh0&DS%^l&d)ab%{>I1GfLf^# z4F7g}L1(prClIvb>v6;v2)7hr2|`n#$bR<F=1SOAUP=pd(K%iw+AW6YjLQwD^<(6# zziz;k+jASW4G4WQ!gYw=+G2H4TYW86t<EJ7Tm%S(;<uD>0CG7vT^`tb{vw<+jL)HV zD?%4b_!#2yYbENc_MP>xiszU&ASt{ILX^VWr#s>7sF8X2Ji^6AraviEWLN!Ezm29v zCLSMT=+BAmwe-o=$}-d(7WP3DAohLyLKWoa<`D4t1$(x8ou&i2jgvqd-xqY#n3STX zmN;Je`62S@i<{uUub1}XYZLSE<t#a`-dR=(5C{rJLvvQBIeAVXixutcobcRVSs`p9 zY=moeY*<V4GBfg7ESZPTm8;f3p)x0$fM-seN_xsA!h@SC|5b*=pi*R!r}I_t$CT+Q z=Ao)ECmXXTi`tZ_^5Eq5+62OzW-IU<2i2`-An)sDxN0(s6R0c7QLs@iC#IUj70}53 z-SAF%X#(LD(=4>s)j-P|TVdYshl4%+(K$jy0(NA_w8xWHW-TA?izZAAfhBTmie1FI zQY;(oh}8imrr@}gq)cQHZ!)nKfg@n|dg(1pB#MqP^m&6p)0w;2>#O9FMCHwGK#qO~ zon!Zf_l6B?g|2D8H%=TrzYSHrjBpz9!_fgP*jyeOo1Ep+yzLbsVXQuDiq-Jtt1p3j z!AFl=9%R!k2*Xk;Sc<N`Sz1z|X{e(zmLe<%N#R%`IlAYUZqjz=o)I;h5%wi_0*D^H zeSXKN&7pj&Vm-D1l_uonaG>KN`BA55!FwGsA;dSvgvH=@oz=dJqmZ#>T}k3ivm}`r zaO}!8I5MF1;aeSIFq*JsrZb4~zRBr^Eky-TjF&5fmK~kvK{som@1E@@!EpE^)chP5 zi6r}<!o#+HaG?+Hi2wzXc&Rt`{7DuT7khEoln~k#B6L`1u{poLK1||D2}`7F)CgTh zp=>@&nyVEES%8m!s~v&|4}39RQut<Yhz&Xr1OJ7P$+7Wym#5P(K|sz6m&YBv9DbXa z66RJ~Bt^(pwzul;Mv@@|joyH5OW9}i!ov_U(ezK5z=1b4EA-AW771vVT9Asc-|q7{ zZ<;M&MbaU&Z~=5lE#OlSGKS$BW@|O;Mt>+Y3*w){LlZK&h9y)T2n$^^jPU+n!rO*< zC%6Kv-KD)tm+<~1{(hLf3v4{{C<v`H9<TV_0hml>oDQKo5DK%qj4`@W8K?6RaUvEX mW80(fkP(_d{Gqa>GX4kXxTf@G36<yo0000<MNUMnLSTZ}#!5i| literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker16.png b/theme/img/markers/marker16.png new file mode 100755 index 0000000000000000000000000000000000000000..46cb485cb0f1042c6c8045b23b0fff832ce3b585 GIT binary patch literal 1285 zcmV+g1^W7lP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlG%z47Fg7qS<0oSo00007bV*G` z2h|4@6DBW}6PU07000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DB zNkl<Zc-pO2Z){Ul6hH5^Ww3Vbpf)nQDg!DTN^l@?CL}D83^jxinCQfW4-yk&j7Ag3 z2l$8yiGEO!5KNpzf?GC4$~Na<nRBq9+r+WL3hUajxo)NZ*7kMl`tNy8Upv>ed!5Kh ze(ihb-ut`fp5M9mJ_Z)Irw}_4n-R){k3-x-v?GQy4Pr9*auGF%cjYpf=9$M<fljH2 zcl_HQ0Hf0dTqx|u*RzOE5q>ekB1B_>LcZmrZJVLGM9*tg7@Slh^ovCK37;PtOvB7) zf82yIKX)6wRR~ii!u5!biZ!~z3zZeTI$y;=I06ujrcNng0c0}p`Zzdr`3hVzTOXkJ zC4_N4;R?j{T}8T5!+}azCS@ra5H+a;qC5|;H8jJ;Aqz$L0>Z~8nm^Gh<fY$LzRWL) zOjtfhFrL~y75v(KWifh=k(&q$5O056Rtg$b9+M=a*<We649tnI<~U|?`PGItSn>H8 z(49U9znHC{Qsgp6UVNUK50M5$Se`4B>JAj^0Yc&U!2SnL*jaZ8S}mg~L6H!3gF|rb z;C@t`gTp^}#K-L0u#R83JV!&hl;Y3U67?$3D)Z(9c&@fS<0^@4wLBNLuGRow^Pb?0 z#XyZwZqlgXw=vtZ6roz1Cr9-pa|4UjE1_;rMH->m<An$kZ2IPVC^%IMeUlEMfn}jE zPeD&AR*;%WDWJi_Z^G*(`ZU5I=GQqBgrk_V$-p#x*xvPTK{EmY5qicsZb`~YS)nMB zlije{6U*k~IZc*L@1WBIHgd46C}FWWf58M86~Y||@V8J%G$S!|2Et+6k9TpeFO!K9 z?$xi2|JS29WaUq4<GaRi&&qg$vo3UX5aBrD>l59*;PP?&d~p`qk+LmNwP78+)pQlg zo_HKi?J5WVbdW!Oy@#5=CEb!zkVL=l)fa7StlG^>NFr2I)M&X3%OCuymAP=|o&`PI z5bk6+Aw;{$J+*Jh<x%e6_%s0S6mf-Q@J`be=A6+)$$J$sLhkwNqa6Hdbh@iq9&&c9 zFG@dYlD0etPTuH)<K4YMeA|uaNj5D^*aX7bIXYgoqp$$h;Nc3<1xuGo!8qyQ-?-Sy zgk!M}(DOq|CNj)lkBdG3ep@F5XG1(N>4$nv`!!}d62XlOr_)lqNQRCX9WL*gKL?nU zQo<5x8L~i&<vzU~&8XEPgp}a3U-tIH%uH}zlstUV(@zggi0=PFNOsaX<>Q*oBMiu- z@x$Ye-3eDm#^P;@4H6@yk%sfey9qHQ&}cH_w&m#>ZF?9(vc|448+h>gq(W~Vrc8iA zY(O@`E_X2K{mbqECzAHt;|D;C*Z^r3LSh)WX?Jd?-H3O}BnV#)4^2qchb6Q<6pQbg z0Yu>c65cjXdBGQ=?JgeOQVH*m;^&7Qk9@SjM?vVE-~z(E12CGc^HK=?p=gZGGGg>) v>zu7@$h?T@#Ix&BL`Z}-5I(3J**gCNmdB{pX398q00000NkvXXu0mjfk$O!E literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker17.png b/theme/img/markers/marker17.png new file mode 100755 index 0000000000000000000000000000000000000000..725bfef8d2c2cfbf18f2af6869b244b1918a3de9 GIT binary patch literal 1253 zcmV<B1RDE^P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlG%z47Fg7qS<0oSo00007bV*G` z2h|4@6DBu?e*oqH000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C$ zNkl<Zc-pO2Z%kWN6hH6vb-4bW>re?0LBPS(Oq9hxA(_bxnuQEAaXS6551J*$7|l$? z4_o{+lO=x9=`!bsX|^mbt4<M+Y$78AqS6h4GP+R;E8|bsf3$st($Zefd9T%W{fCp2 z{PONS_nzN9_ndR@eH>($2NBOBwjy+KoroAlbRi}(8F3kODntw7ZM9Na_{gS>P^!~N z6K@5AV0O7d3`acJJ%RWH5y(YYjxZK!)K47PwiWi)RIy?`IwvUPc`H#i=MTU+%LMo7 zpMx+R5JyqljId-PtVDD-l$Dm8X=-4G4SEhDD*(}G>XHf`K&b?uUxa->Uxc5mleba3 z17S`kT#x8`p}e%Vbx#wl6L|6la*CjUC}Z%-xpp`|ZX*w$LiqXk@Q1}3b?vF97ul-F z<n4n3{W-a-fjzWASB;uO(mIGD#G4;HT?>VJEeD}xX+EvqXl#Q{n;lroJ92!Ee3{0} zK0d&G^h_P>|K+!R*gZys&#9C`>7ME;fN(^bG<4eq?|1dWCHqXOah%w<9EQrTPQfPC zddX(@<_gx*-B;)hE$^T$KUrhg2*o-rKrAL1Jbv<Q8d<V@adjA6OCdP;Y@K9d(5Se_ z3Jo;$C=nWpwQ9_s;va)*!@cm`u7-?c6pG`6qo7%*gyzi^vXbYaM602eo|jY2r4-QE zTd%{bHB}i2dvDEQfs4>sQ3eG`PH>z|K!n~IQCwYSQ95lmrEh&n(Z9+VlNL#ojcLr~ zg;`SYd|pD+yi@wtJ#b%qyBv6eK{kwuL@^UXPcRah{oy*Eb&N|svADg`w@j~<6?ke| zZ%lHSVK?@=iICFy^^txPxcwqaPEIC?Zw>BOtE6KXSPZeleFLQW24PL4f>QLyOI77t zjLnTqK`DxtP*&k7kvx0j$4>6dwHr3nY(sbw?t~Ft7SF=&akp3Z@|K6Oidk+#K?(cY zE^^<REfl<+h$&Jh?~h_|$?Wp%<rx%guPjf$X%ccz0UZ7P3LNe?g|OF%7)T7=8L&CT zWRHEOc{`Rx8D6dsy<_Ww0Oolod+mHD7m3B*L(TUok;t(AS={XDcQ5qdJrQQWrC;hT zUA^4m%1SpjkEMk+ON0)Yoo?Upt0P=WDPf6pjN70?F7AUFbCrdV0(|0g(-15zg_68v z@Y%o+HQEsU|Amm`=;VT5Y`0EvpcJIb<C?<-zfMg{W7&*y5t3!=Y4i1XG8AC6Sn=30 zdPXnY4Izo~^7Jft@%f}eZ=aw@Kx;08e1w-hp^)z{hZ9^#I^>WpfR0=SLLNe57#Vc9 z>ghBtN2Bu~|2f<>A;}diq55!4IyEDR;Qu8YwJ!L;AEx7;+q=~g-n8TIha<R1?Xk5W zbj^uD`P~7quLWTs9F5UkMvVS^lk-0!_^u-s<8Aj^cu0h^ApcM~^G*I6jWM43a+kHW P00000NkvXXu0mjfYm+@{ literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker18.png b/theme/img/markers/marker18.png new file mode 100755 index 0000000000000000000000000000000000000000..033a76af568138f41c4b8ce6ba25f74091410543 GIT binary patch literal 1273 zcmV<V1P1$wP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlGdUnFFg7qSe0nd_00007bV*G` z2h|4@6DJ5M0vwtE000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C~ zNkl<Zc-pO2ZETZO6h80Uw+y$g1<Hs^H=x3FLl>Ar)Px8L*nt6RaL%D7kVs7YVN5g; zf5=ZvNc^LyF_?(P1&5o$KAmH8Ok`2F31fv7)~%zn-AcdKuhF$@ujjm7mv!ylPUIv{ z@4e^V``mNS$9>De;<6608?hOooYe&o*AX3v;dGn0G`eiWF~nOra(Uk4t5-pxQXww< z#~%cP(*=QW#Erw#h>s9{DMBrxE?<%J<h$E8!=aKQrct4Bf-JsnCd$TreyBALb07b8 z6~_F58>p>77}F7MM0D!b7Z#k=>zI0lii5}uKs1_sq>KlU%faglz~RP=P;WBdMeQzx zVLstQh%4pV!m@@+JuDM=vIZnYkU^9&c)7M2&JT@{g-;`V{Ot7m8bwaoclteSNo4Ws zgADCCb3n%)S)nXO&2dr_VLsxG_ns+(JXJ22Afwaw);0on^7A>4z6l4Ee*L|uqqfgF z0V+i{_rbGUY5Fk5fCzVH%Z0+q;v#@>MBLba*9p68>Y;VSl4R78mUb{W+|XX77u%yh z|0?b|_}B)va(PxB`BK22r%KeTK%>l^3&55$=hEJiNJw_AD-hdjcre6bphhc8^VIO$ znC%I&P_4<$!RX26HWsT_Ld^kP3gMB`VzK?jY)Kje&qG13f_f@G9%?Qrfd-Gh3a^wD zr4WAh{Bz=AdwytyoohAXcrO3AH~|rQtbxFiBKvw{I~ZLaXsz52mn>GOs&9)=#28i) zRb@PFdIy~zu#tl2B?&JKjficzcCFYp4Ugg;4&1>YyH5T@HxolwFcPu-bPH>JnOu@^ z%bL|mKHU278nJ2`ZkstzXxfFUP9n4-zB<|63oc)P%@58(snM5<B;-SCtMxkYPlect zD?K#*4Z@TN1%>F(7mKu;>MHgz8HEVbK~i`MB+p*E(8`^?d7FH(4dG6h6Gn6x-IE80 zTps01n;r$gN|6*n4sSMH<i0f+$$2jzMoB&Ye&mBo2B-TF&me2ZMs4a#laS?EaO#gf zIMLl3!qGlNPhx7J!^RQjE{nBdM?pTU$Hx_-3$88*V3=^Qs`IT}Bo=!IH9sbKBF*{d z@Uqo!w{<~iI?RAeebkS2{LW3y%yeS+ixk%`;-TXPhs*or-veAyDq)JWU@o?d+@aBj zX=AkrAvyT;r@j4f?_Ox0l?*=V>8DN;qWixPlAJP6`U1_SQ4ZvS_;}p3JE47aOq^S6 zlN2HCY^XNenhk~w>Wn5VTSlMJw)-I@sk=O80}p;aDbbs$cJUCY4VefpyF(%GHM;|x zNZM}~AAlCA4MGM&Vi>q;cW$R@oQ_5(ApXzcz6nYCFom{<V`9||AcFsw@P=v93%)Rw zyR>ynCA?$7zaRGC6!ixm1fg?05R89!04$jnFNM$_j>hOMBSv4Q#hKEE#EY1k?Yka? jg+yqB_#Y}qrp5mPIYg%Wxr!f*00000NkvXXu0mjf%RxoY literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker19.png b/theme/img/markers/marker19.png new file mode 100755 index 0000000000000000000000000000000000000000..8bc02f8a1dd9f08a98fb8021c736dd298b03cbfc GIT binary patch literal 1292 zcmV+n1@roeP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{jlGdUnFFg7qSe0nd_00007bV*G` z2h|4@6DJS1W{Eif000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DI zNkl<Zc-pO2ZA_C_6h80Uw}P}#p*E8NnQSsaT^w^}ny_dh!EGV3D7vvNG5g5kk}X@d zWbViOH<y|1$2K!(+z)4DMnY9YAxtGeoQ#d4L#k9MUquSFU-S!0OM7?D+m^Jnw9I*u zC-1%I-t*jZ&pG$rmxG1n2}C(!Jt8Ztb0cmdS`mYZjJO2448(rK2QsNtwRU+96lBT8 ziT7L{&|0kE_W5ntJ%;!i;YvnWh*0OsWzT)OaXr+O6tO%7Iwwd%^JW8V!s&u~-5~ef z-#1{)<-Ud5YJ@Hk;VML1#ma*GQ&kmAxlF-<e-<DRh+R^`14yOdaJpgdh0AbWKYSmx z+Ys7l!lj67+Y1Xy8~0Sf5`iagAgKrv2rve_>zm-*zz})(0>a6Mhd<Ag%SumHy~Gwp z7TP{Y(4XTwD%g|DvWii2fYd~oi+K05O{JhxWO5NQTK(nv3&0)vX^vwQ<G1;w8l>O; z47(dzz~l9TLY~2WvH5u#-b*<k!mSxnp<qvO5rEGx8us3|K>6wO&@yC*acbZ1?a*a3 zL2YF@sP7EIH(l37o1LqlV%h0wDvBi$ZYWXaKwefRKrkp8K6|_l+707zyNu{wD=8Ac z4Ff}>jS{_lMx`XxIwDl&Wy&ynk~za-Wj37NQ4t@uAdBhitW%)|&qIEuoLUM#lxi-f zfcoEiW6q0c+4T5h;<v7UAiO|uZj9qX1Vm^bce@vr+3&Z#2rFb6@YSChSiUqJ(uMG@ z(DQpPI+dZa(ezvFU?c_4CnemlLIo2az72iv)PR6<i*vHkh69_&!){_CQMAO+;qm*8 zXEAHAM4FVa;K&KFjCv-`FzK0wx7Mx}Pfg?9Vb1QIvEr0ABBa#)a;Q@SR;QaqCuhDK z-M&=}e%WtlU|;Dv_ylX$HSJ{wuXWS#uLyl46_ldCUM(tIqpq%G5=v22z!M5jiR9Uv z4K3WM+jp^kU?aj7amR;f)!C+Y4p{A3yVg7nz*urZK??6*yv&`@>L_@xAVx?Xy+4XU zyVhc>;TfcDSydQ+(?lda4Gwqpz`;(97kib6?#R&mfK4EVI}GF1Tk>;ZC0?!&n74I7 z0PUoiy?(BR^9O?;qvlLZBoeG&hnuba=u!uGXM7B}_)C3%>mS_o>}(r0kHm#`fe0PY znyrqb*Za7bQo<5x#`D`eG)lcM6Xt3GLJIJ)A2q%3;DI;FO9nr5_fq2`qVvBHk{lkM za=M%JBOFKt@$$HBvcQ#*F>!1mqhy3+*;uQ+6HbN%)H*#LTSm|5rH3ITQC}T1f*qev zD)gp7iUc$!Ge|{v)#mj&{xO-sf~37B@d9X0W+0>>B!<2lCQBKe#+g815<-6t4^2qY zgC$hv3yP<v58?U0gtzol4siPDxF`2+v4o=rd_GNh|Dp6h3PQ_-+Y@?s01T-nFNV<N z3y9AhF*;LCPE|G}4#af0ZG99T5}^@7KUC&alm7)q@TWeSTkCfK0000<MNUMnLSTXr C2ux}K literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker2.png b/theme/img/markers/marker2.png new file mode 100755 index 0000000000000000000000000000000000000000..fd34962a19adc88d872df3a8f3efc75064c2f74a GIT binary patch literal 1235 zcmV;^1T6cBP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGBO}7Fg7qSN;iN&00007bV*G` z2h|4@6D<hS?eq`;000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Ck zNkl<Zc-pO2Z){Ul6hHU%m5!}zCuJX&ZAy_Lpo9!XF_K`S8O9Jta1s_j>;s8W6C=?C z_y7qXz=XsPD$y8B6eB?mQ?zai44Z9^E$W6i_JEFce^^;Z>A$so9bLQjdd_Qy>t6SY zxRd;P?>+b2U(Y*#?t2UtmPZgTA~qmQ8J&!{g0LfoavfqhbcKlhh_{OL`qIajFM~>x zQ8By~iGt+wgB(u;aCrjp0V1MBXhk%Z8H+Z)w`l{^udU+cW^_)}rR`>td?FlyGmatl z;h&em6_Kx^whrOQMYsylR<okA;&g2dx0IL}BxV4T$?U(>2>^OMgu*g3{Bi+)c8=UZ z?F$HLF5yx{*EVZqwQW}|ED;6r1~f&~L6UQL?MySA9ULYPpFxC$%=W%=V^Q@twJ-7e zB1=C$=+K|9Ua8?LOH6A}bBNSLSccg1{^n{ZH5aq_WL>u=VEvch0z3ApG7bbL|J}rJ zn2m+(z_U-$s)2GqgwGf1#mZf4ssQ2%l_R@ttsr>=AnmDF#y8KmXB*&|osT`rA1W}E zQY=OMd2+2~8I+rf)d@gxz1^UU)0w^YvGHt!R0=HU<@!<!{N{2$K^|Jli;FOOI?a$Z zIY*Uo`O*UQrXWB?v5{tGA)RWLyTmgRnvTO>`$c8GWA)0MHjJeSh%h)V%bJ<pYwyG^ zk)gz3fWyx{tu{z;WgjwS(|g?)1UD%JL1o+Fa>L1f2Z*@$U2P30;mLYj27zdlU%BI> zl|&33(L}=i;{f*h61|G>qn<uxJg|8qY_mSB_71zoc4LGEW7B?IwGknu?TcgGz2Fba ze139fvw8&gsTK+M1luq&72`*{dT4bL;haqcrRa|xRn~Qlb=$d)QiSE8DFP)@;IIF5 zj-9@CV;D7?5P?~D;t0DVFu8NkA2hwXZZ!b*siuf}c%$h8`&x2P@LooYDo)Qap%}DF zzCgXe!LW6eHD{qKQec4Nzh8o*-MukfZAbLni^4q93B*Xp*m&L6iZWP%mn$UaJ-R4@ zblb~!pFPJCsnolu`5`M3IsX59eArX(w01yjI?jQqD}KNIBAc3-X~XGfs?aVFp+l0_ zANu^SewI~ASRyTh!_YE(lU4_F=4t^#3h;?fdi&t+-Pjy2IeeV1%O*tke<36}J~A1W zo1LQ!^rCWkT=V$g*HM?Ux6mOiLON+XB@JYfp@T+;6Wf;4Yqa%22uT_{v6qAR`lLc{ z9->HqP3u5D!p=Y}7W&)c1s{_3d6WyFMeBf=hmaWhFME7js2lOtz76RwhX*Dkxr8OO zC7x2crXLagzl2wvlOYJlsok}`yI;baWBB>uiB8e{`eG3JCgf=Py#p||7=)2{GDUY8 xF^2OQ=PMhM5MnAb_b-NrMCgX}2bDLU@jublmp<MF5dr`J002ovPDHLkV1hf!GEe{j literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker20.png b/theme/img/markers/marker20.png new file mode 100755 index 0000000000000000000000000000000000000000..b38a1b856e3c477e858a423838096cfa7061ba3d GIT binary patch literal 1306 zcmV+#1?BpQP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdKxlWgsy*AWC&?ATls8H6SrIIx{#rFgPGBFg7qSoA<p(00007bV*G` z2h|4?6*L!IzZCWW000SaNLh0L01EH`01EH{Laa2H00004XF*Lt006O%3;baP000DW zNkl<Zc-pO2Uu;ul6hHU2rDN^dLD|EyO;^~Ep@a-YF_K_{8Aj0&9E8P(J&-J*Q4#-) z7)kb`i3txX(HI^SBS8#Rq;3li8@6l^bVD2~tYh6DHnvgvZ*6Z!*RK6M=ezCL)~-d| zNq+h6Irp63J@=gRefJ8musn)*0kIyTi`yi`HG~DxpDIX5VarC;A@*xjs=UWnEQcbU zmOI`K1i|WZgA|T<P(6nD6cI>AXhfLuwVDkFH?D{3vQk!{$K;d>*>5_^#{B^}ZR;0~ z{B;#Z0@8J~Rv~Pu2ulzbDvFB=PgYhiL#|$c$TUDSI`@$Z5kRE^pI?HS-_FBX``}%) zZbevU6D~zu+-58)H}9^5B}$R9fwZDjK$J1qb-EGG^bJsk&mjC_{Pu?hT21*6l`paf zB9mVq6qwI<uU4>?xw<uIIZS3E%t!2fZ&Nws>2m~fym)&Y)_waU2%mk$*Iv&A=Lkk3 z@QSIC+i4AkLZH`X3x}S4if-3X4~X#jY?ZQT_nK0GaD)f$F*k$N=>hBBYQFCKy@lKB z+dH74e+Z7hyp^w{Q_RlCR<UJS>O86?5k6UFSPlic9DrDi2adc^1FY^%C|RcGddu)A zUx|c2u&ngHjxh$za$TN*OivJ@p&&<t-BTo$slhH2tXP`GSG(88S9RPsp@S$wVUCur z^rGBqA!#CgQ(-t@Y3J8FR<D%%5PyT2zRc1EK_(zV@2Dgtb@qUz4R?kFxoS1kKlije zDWW*XXGV`P?wc5!&K{Q+#>fzNXdM}Y<J~qMaH_Hbcu8pT<29X%4?EXI0X)GVyLQ(_ zCMz+t;y8@`(u;e2iHbXZ-qFR^Lz_0hHsd2R8Es!x%-2&refM?THRhXxf;TkfM$?6a zZ+)Rw!(8vy#@I)1Gki^kwmHDAGwEP0LlUmjDt)kz`QP6kE6LT9?TFkDS*S&S?kF{` zHC1hA3bM~@K$3{mNRhq%>p9`%jhh2#*@*BYW+jZU*gO+E``ljLYin0iPU#7iDyVHZ zFMMycQSn|v@EMyud{l!LtIJa@GEi?RF(#ih3CU8!(aTrhlS`c;DkY*LacllGk0S<K zhexZn6y`%Q9<C6b_v%U|SnoL5o-^l!NG$daT7I5Wi4@QO319ZaTg|NynhG-zk`MJd zOS>>RJxv|`I;pe^ROqnP>Gpl|cejujB`!E3O??B<G;oWwk5l$)0YWP9u`fHj;NHE^ ztSlLPA<t+7;?jR1Bsn@b;g=fiLjtIj{P4KpaKRr#BmCY%LFou7(tN_&8*hdJOg1}i zTSlMJ=7%99F}2~o_TuN02E9=}56$TUG7+|ULLuKj4kx&fw9CN{fTnZ-$_#|W(0$e6 z+Dy9<PnkO)|2aG~A;}dSq0QkK-!<Kc;QuAOZlCahKTO*_eRdB@cxxDcKODhHy6#yF zLf5zyl)pOw!;3)}2uEXdmJy>rlXIrAA)#;OWc=E_7#R}b7|1_V&P>k#0=Y=WL7J}B Qi~s-t07*qoM6N<$f<Kc?0RR91 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker21.png b/theme/img/markers/marker21.png new file mode 100755 index 0000000000000000000000000000000000000000..179cb84a6f4ba9c8c04720b853bc6e60bd60dbd9 GIT binary patch literal 1275 zcmV<X1O)quP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdKxlWgsy*AWC&?ATls8H6SrIIy5jkF*qPCFg7qSZL#RC00007bV*G` z2h|4?6*MP$W+Ykw000SaNLh0L01EH`01EH{Laa2H00004XF*Lt006O%3;baP000D1 zNkl<Zc-pO2Z){Ul6hH6vm5!}j2W20YZAy{hh7uf#VkE&tQq&Mea3IqU`+zZOVkDXf zA0+XEn2`8EB^rZ?U?e!QDN?p&4x4R`E$D_g_Fx_By3w+Z(tqo}(Y0%z=iIh)(DrpA zC;9c>d+xcvo_GG-_c+Kd4<oiB)+36Nx**~T!iX5lbcoBK%SRkQyj`GFmOQp%IaCy> znc>Yq2t=0~f{~~Pm&XvFA_8)RIz)4+x?scm8`nd9b){6MLFWWT!fq}mP5A@RWE$f> z`|~o`0>P`OtwWeH5w1pb>Q`2jpQ_bM+F}g{(K&!v?C!r*@Bm6B`20a=ICmb-n#XUW z_63BvkZ>uYcbl%F#;~UrmIyp~1F|A0ASOw$yQvk<j9SRUXApiqx&2|8x}fHV+83oo zktH4<6zI?K9eQb1aZwd&4w0G&OA-4%*i-{0nnI2Ydv8v`y6=7j?#Nec9Pv!g^N?3B zHJxL76b_9#pF8;MQ?%7UIUvI4^OZuyo~lZKNR%DgYv=&c=>c(HJsaQpwTtNoZ@XY? z<5_68SpW4D&+K~i5ouYTs)S-G;LnrQ+T~DIR5+gi+dB<xoK3E~tdnef;`r(GM~}xr zi(alP(ZcUG`{U%HwydxKv!_V2Z81-<amCU+HdbkuLE{d6Iw{XXd7+wS8a|O~F0CSc zvk};Dyuju=*Q{dW@EfnetJRembHs580wVNI27_st-EZu{&Im%WN(CQ3_q2S*;}Ww? zmCeAg%L{f=@QEtww%OstkO>4_H`eNbg(REs9C$(@=?W$cMI?sqP&8`)c?5fXiIUlT z-ap93gPS(MHr+$=-eK1mu8(ux@T?nGokU0}{PsxS0J!}@iIS7b>L;k9dSf-0Nw5tA zGhyj)Z$GV0Ak3*$P>TN8S*cswT(@0PP>Qe|WQC_h^3v<Sv~#DfUALfSBf^ual?cLU z@=Wg<b$g3mS-S=RJ3>|jCA`^kp8H-jQSe?yOfaVxm{1J5M3<+Ymq4{;wJ!apNlBgx zj$XV3hx-P?xY~~BpO3;lrc;RVZtG;-mhw_qiI*$H?s;@U0P&Vn+Iyy*i^k*cq2{N% zB9Y<$PvgU$e7B<;!m|+xxb#c?fbjx1GdI_X)34J)n<YYrM5o*L&0j-Ys+3YC(l%;= zHp>lKeUvd*SqLe>$G#jGggbY_3%r!zi$smKAo~6bA<5D4X@9WQJi&odV3)@=hYNn2 zu(7>thvW$9q~WAEl1zpInoVYGTZvwy9rr^>(%gf6?Zww86?*F!MFI?R2XYbic*0@d z-wr3ZkaW<&E`T<<140f$Vi>yYaBZe;#2fq;B)%N(n~>xZmeA%%oOR6*BJ_U=ubQWQ z;Ezzd%X_z2!W&ln{BVS3Xg>TP2whXbP~yD<V9jN`7{Wj#7N@(682!17bCnH=4>6OR lyB~yyL}-V^2bD9I@jtN$sPzt(Pw4;v002ovPDHLkV1gMaQ|<r& literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker22.png b/theme/img/markers/marker22.png new file mode 100755 index 0000000000000000000000000000000000000000..8cb69e0ee31ba7b345a41181820debe07a99285e GIT binary patch literal 1233 zcmV;?1TOoDP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdKxlWgsy*AWC&?ATls8H6SrIIy5jkF*qPCFg7qSZL#RC00007bV*G` z2h|4?6*M^aZYi$-000SaNLh0L01EH`01EH{Laa2H00004XF*Lt006O%3;baP000Ci zNkl<Zc-pO2Z){Ul6hHU%m5#M*CuJX&ZAx)NKnWR&VkE&tGmIgQ;3O=5*as3K8WsP< z5hDp-G%?|WN;HNK{)q%NOwqb6IBeJ)5S1a0J)mRVA6C{;`r5AlM%S*rp7UNyHrl=- z?j*n7dw=)dU(Y+|-1{Db!ge3xX~bHDIm1N}7Z47_aK23}4_At4MeH`}^%V~;T>>>` zld|wyBnFb~hiD=hz~Ldp2Z)H4pbgPhX)>;RbNyOqURB4dEa;r5Q`gO=_+&T&N1em$ zz+dOV9f@8<wh7_PCs>O(*|4mp`bc8~x0YKNBxeCqsri4Y69Dvj2!*52^2-VM*)@6t z*{2ZFT*1YN)0=HI_4e(Jut*fh8_+aS2Pw|sg`*vCY-of$d<+p5GSlx=nT++{G(N-c zNKAcv(4jwHKG(pPmz!52vyW&JtVHa5YePL$SjreJJbi5v)_n0Tun#{~+QGn-qLIV< z{9rMavb~Q#Lenjj0}_0)R4>+SUs(r`NGcn5*t<aT1wh)_th6uv+Fh8(J=-3*pWjnr zsGwMi`19~8>k_Ckm)%N$`{fp;oym;5$0rK&=`>i;%QY2N_}%S!h&;4bl^HR6x|}ez zyT+7u>EaS?UJ#(V%tSqlpr)GTRAgu-0ec*$l>XKg%Zu`isRASzoQOtqGP}poizg!r z<pu-nf8tSXKFt*_TQ+@{<sf*75Y#H_aeLsa0Vjw!{;shBl#mqS1qOjwj9<7R(-Mgk zdSc0>=f^=j>x=Zt#*fbSEA8G5>tM6(-do<~<?+<muZ*%_e8!KXli9WVt4&5Ozp*RL z-+hha<8b8Wfw#Vrmk+<aJ6&6Dq5c6iAF5G`{@hw;Tiw>Qh3kmNa?mt^5-IQ(e>%>N zT)HxX%z8v1TPq2K!x@;`HslYQpI^O#e9{&a^{}h`1p8WYQt+NdD77@V_$UV5k{oCj zI2bn7+H!B2td$tx;2-DU{WE=W9Bo0I%}(83&69}Hp7DvMP1TjK3@=wm-S+6B2-0;Q z-*N0XOQzGWBlE+&NaXqd@9|*|zuMIU@tFh%mV2qUI!>|a*;&fyXE~uQ5TSjN&ma2y z?*W!ArEH0G4vj$P$W<D>mp4}h1S!CWKI!X+n>XWgyyWn)T8r(7Gyg@9?BM8BINISF zW1tt6%j1$)hTq2A%3PsMT7tCGepnjJBtr*nP8S|qPOs6fyAdR7>&5dM#MdVkddDzD z0_<8FiV5}x;_=WwULVLP+V52^fKIIqVi7@77&z~hH_~auoBBGaUk-OINOlfOXk#L+ zoSFed?Eea0bWMdIoS@^b?cJRUULD8J4{vOm`j;0%P@as&)b|d+_(BLq5~(!ZWuzD` vwzyc?kcAM_nZAD^JS0I6s2^0mVvGL;RX)oq{IqJj00000NkvXXu0mjf7Jfkg literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker23.png b/theme/img/markers/marker23.png new file mode 100755 index 0000000000000000000000000000000000000000..a88785c7ec49751ca77d3a4744a5e3093b3c304d GIT binary patch literal 1323 zcmV+`1=RY9P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdKxlWgsy*AWC&?ATls8H6SrIIy5jkF*hJBFg7qSoB5bW00007bV*G` z2h|4?6*UORtSCYN000SaNLh0L01EH`01EH{Laa2H00004XF*Lt006O%3;baP000Dn zNkl<Zc-pO2Z%kWN6hH6vbud~e!bl{5t{coTw=7K28A)a`!;D#kAueMh;ls>y8g>4O zEXF1KqKU~qOc%|v59)N88rY@?WP;5=*s?irGP+Sl`45HCf3&o$w6xcA?rV{*Q0C+$ zzutF$_ugO6J?Gr}o&by6qlo7bn-NJN&W*T<&>?ykS|lvMB_Jvh2USXC+T*KIAS+4D zCyq>cKyS5y+vm4q_Y~q&#8fOnEuuPIt=jTl{$?o4&0!fDbWT#p^JW8V%rym7hF;;= zpEqE5%6$vjQiNe4!ED5(!qr)sXNwA1YO+QE|13Zt5c!u15kRQ~r^^i$zc#`z#{LOp zw<GlP1y>?2@6cxD)$A^U6_QBaKunVq5MT^msj7nuJ$>Zi(+HOs8vZatt;+kp=mmCP zV)FJuf&P5+QXyNDoU|U9BSe#6I%5C(Tk{}IlPJ){%Ohj3>FXar`0PvGcH1YpM*FyB zj?X_`1>F`KXw(V9;b)$t;R?zD2|kygl(KfO&jIlH`NBOl4WPH!LBGF@x3B-!#QE~t zM&57TR|0M06HtyZq%|dvtz{3z$E8s$CH#3JH#G$^k`m_<F#JXZZ)ZaNrlC>ZcD=ec zV%H=J!62lfmz&a3;g4a{M)EK<BT<FfQ$&TS);Pf1RV(8o_-iJ!yp!A<nGi+DOjOg8 zMwC-6L{+47#s`OVt^B!o-I|E8oz=DQuqpwLZ!h?_paofg1RbMpcT{E%>00n)xFI<% z4vs$iRK!@*-d!;6nTF!?^)eA;d~UdG+PbU`FcBfjRn$Cef^RzwAYuQ<qC(&ynP+qy z$*$7YMFH#{54$;GB}z{U%^ttsbiNzU`U)kVc>H<?Zx3(X0z0&i%n4~ve#c8jH#oxk z1)1sm)YRPR7aZOh8&a3TbB|`KRm}SCfgt<nZHC)q$VGrvzR9p$*v7OJ-bXQJc&(hd zJ~$Z6PSy~2OwNaFl%i|JIob`?r8}8|cr1sQCQ>3rw(sYQ!r9w*`jE*-*u%BrL+A|l z$&wzMBkAQ0>&U0rf|3#r)HVvI^#%&wiwIt0^NWvS(4@E8%R~lo+p@LMH%-{$<KV>A zcKGB<o0qBxaXmbAZ#9o0`kRMFOSfUbS5r0v_iSB~KtFC_doElQ{K4Qm$efFa!~*~S z6K?j*TMf<No$)acqA&GIU8^uXJ4+e;Dk`*#MCgd#VsoDSt5XP<5;rW7`kp?h?;E7v z#|!3a5kU&@sV~|(;O<@TJTDo1F4t%+;>v#!Bs<YR>2lW@2Lw<`{PMVMw!-fN!+dP9 zMX>~FWz89VcPJSOs5Th!*fM&JHav(RS#=AZYX`nQsnF|sDH2c<Yr#^2Eq1Th`M22u zRut_p^9!Ip)&gk>K~m_vVYU{~X~Y|R9ON&D2Noo2#}X>=1^KDzM0ozM;4R~%6I?zz z?y<eQU%|m4{QNNE4UN{d9D>#{w?}^O01PdM;FK>Aq`Qn1T}w?~s%*%di0RO?Z8<z7 hK@-RyRF<VC{{w>_$cn+baP9yA002ovPDHLkV1i2UWkLV| literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker24.png b/theme/img/markers/marker24.png new file mode 100755 index 0000000000000000000000000000000000000000..fd5f356700a72d185e04f94103fdf6f0ad7cdc9d GIT binary patch literal 1292 zcmV+n1@roeP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdKxlWgsy*AWC&?ATls8H6SrIIy5jkF*P79Fg7qS3}%UL00007bV*G` z2h|4?6*U#BszjRr000SaNLh0L01EH`01EH{Laa2H00004XF*Lt006O%3;baP000DI zNkl<Zc-pO2ZA@EL7=G{V?O;$oT;T@+bY){-x-3kmGcK8lh8eR6nQR&H2S1h=KVn=o zk^OLqKb*-Df9R&h%;+?dsTn#&Ajl-Z7(|6R8JAI@e2k9r(J$KGLTPD_?|W|B!CG3J zdy}W<p7*}z>3iOfbFKiZ%R`7~5xWqXVV#1wfoMUD#9Ji9(WN1(5wE6ewYd-HY=FW{ z9XGt~@q%o#gW?Z3aC#2$0m74r(157T)1~izYtJsI++NJ`v(Pz7quMP6*_7J@7mXvr zhksoMvq$MiZ3V&@k8m@hwRB@)!G*F?rq9k2Ag}}w46gi3jR>ICg3GNy)vuS~7t`1* zYM(*K%L&&bIu95MOX`l4!8%DKZy=#a8VE85hc7n3rQuQX@Ck%l48MLSUzc9;ZP{~d zO=Rl!L4*FBf1#8WWoK?f%}G)dVIJbx+j~nOH!DLR!_M1Nu=A_$Ksfy=9|s+CQ6BOt z@00WV9fc!HmnNKe@-cc<ML8hCr_;1j;gM~{0R8}9bhNG+WUB+@W0ib-<+rvdVbkaY zOnc|=c#3NdZQaBkNKMJ5SW5Ww=yv@E$j{7(Ccyk!6(1MF^R|h}==!hw23Br86aqbZ zxieP}SIm}2$U}X8MmlCs6BDL-(>Nb<)~E8(zTg8T5QvSZC_+Joj-IkaHPu2)MY<OK zaJ=Oze=grr#K)TcL8#ceDQ=DgK_wtU=cJ;<WcGMV2X=-6*(oXT-cyf<35TG(xG0t_ z#JFvwY<dQ4POy+dRI8}nY{6I=LBjd>Wu?GFLWa|`kaOnCJ6=(yMFAXMFS{{oBb7`H z?cPAZ^3x#p`Z_H){HVK^k0<u-h69ENqXew_b&ln8>YBQtF~R9uw4<t(2q}eMobKuY zyIWzDoJdyRM;&>=J&7mShMsvJJJs3E3jkq?q=HiPXL+$<M{UJHrlAyJIV2R35-GBm zer^&j+#DK3%^rj!QY(H$i_tN6XxQ$|d~wGX+z(4kC~4v4`pd#MvXO%KJc8HQ^5UZy zw8=I{rN|&<|7Jt%NfVLO6gd0GH8|DP<HOlOM0Yd_cbQHh#@Z()EA|)U!A3k>A$Zr; zB?;tdD?56rNeF~OZ=&YM6_JSZ|3BbnYu;#X2j8Nffe?GBSGQah=9iXQ@$s{m(5@1p zld{$B`uy)cAyP_QutXY%N1<`_7R}y`o2yj_DZuB>^z_2Qf^V6Z3_ezCv>ws*UkFLg zj?KB12Gh6zT8SSXH)m|{`?#6ETWwJyLRwi@BM*j?p@CYX3EP&@HQIbHge0{c*w;?H zKB>?fMko?cmuNvU!VZVe=lW;H3N|F|o#6*SW1<C85<+6=yFO#vN8N}g_%x_r4);t* zat%vppFhOArVru$zl8m!ITyJ7)b5GBTPxwM3H<z+QE$3|WX5YDv`r~q_1*!PxF3Wb ze=tO688Nz(87C_n5*H$Jv)k{7heT)r^@GZq%=lmQ1-g88BXlnS0000<MNUMnLSTZC CjZ(${ literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker25.png b/theme/img/markers/marker25.png new file mode 100755 index 0000000000000000000000000000000000000000..c74202a57057d537f57aa181c1ed2d53791f03fa GIT binary patch literal 1323 zcmV+`1=RY9P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdKxlWgsy*AWC&?ATls8H6SrIIx{&sGcX`6Fg7qS$yJ~I00007bV*G` z2h|4?6*VOKbVQ*5000SaNLh0L01EH`01EH{Laa2H00004XF*Lt006O%3;baP000Dn zNkl<Zc-pO2eN0nV6hH6v)gmqBqw)uVZd5^mxe(plmW;$@65IzF2APrYhfCPZbeTG{ zjAfab|7^(;v$&Zp3o)6?2-zZ2*8y=jA_y}&af(!}Qa+?mDE*>e*bmyfbMI@hSZJN& zCcoZ$&pY?`&OPUM?<)sOw<i(hh*E?yV)GzwAUY94i!I_7v85s!5PRfOY4%gAvOuj= zFvoGX7j#w|cmhE?P8$(lAl!)vHHelRg?!_|O{Gv<Tu5@$F*rdY`pt#Nq{|H_^+Vi| zzpsJO?YW888ial^!UDwkihOlmb5#XVWu$WuoC64j7QRx#14yOdba`Oc@8{q*!^kvR zw;*(}gewt$ZPlnZXm?b>3W2B5K*A<SAVdhfd9n>o4-V4^pGUa($m5T474i)~RlPzU ziA>x+NHCrs-l!m}Gn7SWITU@AgBbg&yo`{~4ieJv9_g*CChN1a2-;b%f2WSw$M?R) zY_Xtg8ee^xj_KAlG{TosrGk1#Q6WGe$lkD1+W|U@9dz}ztbg~9E@tnWnr8jmr6qtb zV4!QN*R3I$DY9&uO96kLDOP1ct}<=D0LHz$SnrR_yT&FK5FU88^ugA{VNfYjxu>&L zaKUI=Pa{<2rpd8-lDIUr8b(>aYGn%RubZtP@H~_?or27x$KkTcEIOhsFHJ#5>AYBK zE>4k7e*g}2_OkJ|wX0cw$utE`mE~~a^(`>t_v7=P2ZH8A0=i|#gvS$CS?WCQ_CSVA z28UmKj@c~x>RC_aBBsC+**0OmQQ7p}wmQH>4ZNtLZleiK4CvYRey*wjmXcU)N1{nV zEdtMh-RmVcrmfVZqYT~NV9<2x4xaTDQs#K{N<ZsAeqkeQ)jTmzRD8S{xG%qjwxN4$ zUbAiuJ2l$7Bb>wMx1s5L)c0_nLQbq7><*Jp_7U7>yxt=EEK+5%d3nB?Ozp2Ht`GNw z3o_EF?TA<pvC$G;-d3n7X{o6s5^6^|By2n_Bv0zjoaLHt-5o~DCWJkzl>nksZ=b0i zv^kX9OV-ku5)%qi*xh=L`%$N-$$JgKG!`p9nu9K#)n3aJkZmr|#NRa0mLh{=m#)I+ z7yEoTt3+IxFW5t_lZcV-v5A_^c{z}emn(!G+PWZsZpuP-o<7S3!{PmC`E@}i7J2_K zxY?%nJG#N=4-nwuFZG7bUT$`7j#l)$xYRC@p+h>0&H4R516))}tf55O2Zy13n91hT zMQgPLAx&`OH+}tZ|GqCKN&;Vt8f`^f{4a#G9UGZ(dD;x497qLrdECOw;m=Vcd$!b~ zM1*vuwn=v<QVa>S=nZ&m3H^+AJPsjkEj@Uy9r*dALT?+QnE-8~1<43|>^`6Ky4eC& zB<(k|3!pvG0wD<@Wf-_-wwBS;h&T8Yi2ocOn~=7vD50`In4Ovdg!lgv-ZacO!4;s# zJ#lo8N_cM!|9+UgvvhoWIS8$j9<TV_!SDBS5V`}QFulttqbr$nGTG4PM9fCUw&jSB h5}H8#LuE<k{4e^4*qeLBTqXbj002ovPDHLkV1fyzWt9K` literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker26.png b/theme/img/markers/marker26.png new file mode 100755 index 0000000000000000000000000000000000000000..dc98ea7ce7707ed855ef13b6962f640059ddcf17 GIT binary patch literal 1340 zcmV-C1;hG@P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG&LYCFg7qS1PL`<00007bV*G` z2h|4@5-A2z`*tJ%000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D& zNkl<Zc-pO2du&r>6hF5Q_Gs5m$|7?cQe1IE2^omaNCJsw7(?6w6In>yADG2ye4%l~ zK*B$om|&u!gz$$*BnV-M)@{OYVRM6^Y~om99qZPyv2LZW^|f{F+Rt;o+s=({E#gk{ z>v!+D=lpuU^Z4!+V19WN@d9EELKW5d5Z4h+h`za;ggJESh#Ew-LN3pGV##92Qz^OO z9j_k@b_e)^At&A*L41nvCL+`#YO|G!wY%4^fr>&M%TZ%+GO1`c6=owIFPt{^2?zeX z218!o4b+w+jB^p@BQBOK&&xegTEaA$Y5_u10O9cLzm!S<<Z^I(d{Ftz1^C%yzKh!D z5r&zBX^2akwRuJQ?WM3tCZT8`p~$2VW(;0AT@Pn_`zgX_5FSbN@kcpIMbY=AFS7e0 z6SogijOXafC2U2essJ_nNKJ&<h+Q8P7eSUfLm<OTcSd0Kw?BaJ**ARcagK40N!)&g zz7f(sKMZ+?j=_188Pv*jVb8Nq(c?<00TFIWm&@|D7w7<jA?~;XoeVZ77<N_g^^Nn* zTu+5K+1(3mJGWuQeen9P7rD>Y#~))4rKV(2E@k+$u28cWa#R`91sHm>aylZC=D}gU z64_EkI;>lo1+3;RaqE!?XfVpvSsM6#$nqpbsL9DtVD+SNX{s{~@O4RADql@5H%uV` zr6K$4qtG#G6AdL2$jwmFm0BW}T8QgN_hb;>Yii@yWh+<kHGuiGPXu5u=4{kIj?Y{F zZD>IxAVSx$&lgu&GNwFbrli3B=bjcjMItuEtA#qgUa?rC+h*K0);8_kb{AMk5p`%8 zvcPv;Mow_Dv;=rcPzp4evs+PuQ6ZduKf8X{PAUU2wD?0I%a1)c>x<;v@QbUReBD#L z7B*{_O%s&q#I2vg;*e}wmcyq;f6FYm0+SA!w3zMwT&059->-_WkKbXqO@_Kzz^XFe z?kZM}ErOA=;zu54rs~(2=fmnqex{mi4$K@qD$yThI_;|3@-0kCdaPzbq3sG1w)3ZR z!ik%=`cbnU;f(c45Yc3Gj&1FAxK!I#t)!R|6UyXJRd+!+W-wCnUPAC5o7sGngJy%> zSs`JNvN2y9f6~MxH3be{>3~lzw+HZU3*u_*(Y@U~f-tuX4wrAt&4%T8xI*}zt;=L! z7`3q-XU_?tNaS7AoSBu0IsX3?Zua=wjV%zE3^EYn5A~X+Heq~fiYj_2F17PyXrIC6 za3B7wONg}+7i^J+-hOE4zfE_0=d9H{gp}YTU$u9_#6)05lnlNUd$bO5`M(g795j!4 zeD$UQ0pv1%c-*ww;kSVy{%k&{M1<t2KW^xW7DEcPMiY)Lqt|HTgAkI`w&Gm7@byWJ zUf)NV0DU5dWQ48GK*0UC)dqGX?X>a(pdpciED0eobX~LBH_$ZV2|fzqm%{@Sl5}7T zZ3ssA)N~>I|CjKFY0M3tAdP$C=<b*B_8@+KSn<e5>0Ssz`-smkzIOly7lP0m3`giJ yBSud$<790^;zo=|uN?~!ArV?Y{GhTWGyVsj5z~7i5*pM10000<MNUMnLSTZ13ugfU literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker27.png b/theme/img/markers/marker27.png new file mode 100755 index 0000000000000000000000000000000000000000..abbeb30b0e4beba49aed727d1cda83c8c6689bce GIT binary patch literal 1310 zcmV+(1>yRMP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG&LYCFg7qS1PL`<00007bV*G` z2h|4@5-Aj-LI-RB000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Da zNkl<Zc-pO2ZA@EL7=CYiyD}(+(V-GR=@=WEGs~t^6EQPNm>Mz`#ASpZ`(bAMh>`4v z_`^kiIFlvDOs8hSAI`WenxUHr1lb56jHs|7P_}NAkJ0h9e$n<8N=tiu-*bBrD3m#Q zljoju-gC}#-}8Q)dj(io9zo<Ib|Ul<orLH?G$IC;+axTbi$_!--b~PFQXk!z0-1Up zUwFss1C!kWQXuHWVI|@dgf|wU5mA+<OW1vM&rT@amc!DM&^S>oubT_8agP_yn+JqX z|LOv(SL#D;3BtS_;bufrK~`qQxuODQNKO(UI0q04Eq<k11)$M@+atl@UoXKgmZ7_- zeF0%wNVpzxWuGx~SM|XnSSPB;8i*;P8bXZ0tLJOsLjNFH_!PpUicG(ku1nbUebI~T zp2+0mgBtDmc7Flel&sH1%`s&v4KearejZ~V9%ZcJZPr#+%yy)vFx2zbe58!)X}lD) zr}CxesZU2Yl7-L3YsAchxj6uVAb-Q5>IN{`oM3vbl(%pE*39)t$}v@b1U9aZgIvP~ zzNdI=Hro)VO(kE7_;`GqAqCR)iSq%lzIB+lvypN0$mpWeetE42>@$8ing1+6I1C0| zyzp460e-iR?H~&c>4^y#J$00uYAnONC2JI+K%DOC1Km0elx)qGl`0ivB<iS_q>@7| zL}jFVHUQ;~ZM=VA%cgmK+nsSta0v>tvp~DR2tkkuh|o1ENl}q4Z*1ioleJp-=$R+y z_4R|dd7GD!_V3~_<7<_)>AYcg!5Ar2au&5%$KXt_8AKfaP*eciB@yYIu<`bZhaQL= zR{*Ea$9nGCX=EaX7GE$p_VZ1wb@U6#$&PN`zW?-Y*k^ork>zHGi?>-xiLwH#rux>9 z;PTHpaMVPE6vA&#w0DBTBQXk&64j4UC!F|-Ly^eQ;K77=UWVRjKRbS<gH&e_79|uE zqCXGh7`IoI6f!l12-6{^s3?#sR(7#oICuTlAZqp?oJyDih(@z>s<_|b(!a8O3)Mhu zLQw;+*IW|5GnvVGFC%!4ElfW0L9@y3ELAbk?%iyRzG)PR)557guEO#5PCt$c5gp3Z z(rg|_47H4mmh8o}$imANLQ9S=ieQ?su|pT?g<v@RE^2;S<cVe8|05pu>^luD;GYdJ z5TY;jipDl!dTy=>yI)7Sb_EX|Gua&O)7N?hC6$yEsp}tvIyt#NST<HG5R!u{zv%3S znHm2AD;az)=V%S0{l5^BoEn<)NVS$>0W>1NJg!gL;qtJR&#km679s7dK5M!e35FV~ z%oZ$LMxW7!`ynK$YQ?&C;pdYQy>@^+0oAcKtVY=C^!wd^Pujqaq}`MJ0;r3%L0pB9 z7<#)V?Riv<c!N)X{O54rgd|rnh4KPnUNyZ4-~T1-vrM_c6QFXBZQZ>R-X6i<k4fJ& z^>3^Np?zHP$=@CPey;_gHxLTbT}F(a)fTUoHY9GubfoWC3k!*G4CEgw+iHvd0ldA+ UE};s_zyJUM07*qoM6N<$g3sPrq5uE@ literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker28.png b/theme/img/markers/marker28.png new file mode 100755 index 0000000000000000000000000000000000000000..85e1397a41b5af42676ca2166797b611c24eda88 GIT binary patch literal 1327 zcmV+~1<?A5P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG&LYCFg7qS1PL`<00007bV*G` z2h|4@5-BC~oCj6_000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dr zNkl<Zc-pO2du&r>6hHU&mW{1j2i=IvHlVoSKo=Z>VkAO>4r0&}oXZwSW`d$<RD8q{ zBMJX#V!|IPY7Bq)hy))@fxR4K)y)A>*@UqI9qS&f>_uPeYjo|}&vU-pE-T$S#GT~V zbH8)X_v^Xm@!c!H%(4XW1Y#8;HEi=BE+O=Y?&&rO)7X*_6^K2_N@d3V=?ftzRmB}| zxV>Po+Q8!v*l~Fn@gc$;k5G%K%v2?>erxS2C|i-oveX!yq>%k4f^5j;hGWKV;o#pF z!0h&1Mr$#`I2~aw;`gGZIoU^bMNE^X79cPI5DZ5Dr9uQyD#7XUKza3PIBDv=iPlXB z!&Jigh_jouIfYdvI+!Pk6b-}`NdZB|;JIV9aJ;LBB76kl62rIO%~B;7ey7{Q?ubl& zd{AIKUq4gCmZhcUqh&vti7*qf>+N-gkfBZy$norrAt?Cjdk{YQoa;{eDCcM!wnW+6 z28KbcN)q-xx`u9-Qw@l4W0F$JDap?R@CW$D(y9h9SnOcfRmSzpr<%C^`MO5FZY<St z{lc%m@jct`yO%9UOvs>IO8E283e7^uN==z8fccejuE)dcrv3r0iG*a+l5DOo-n0UQ zLZHDY3o<nDhk5V;icpi4l8n_;#H6Xl)W>!D{6smzf_$z|_4Y@tK@=f7MMYO?Q7*L* z(~-_`KkU_?;n&-iFXQ^NCm)A=%>vl+Q#EW{oW<9Z{U^u-MCcgscw#EMSKoq@;eoV- z1UT^6!`!yBx)F>v2h^85&C^hNvO#tZG42~_o7SsV2Mm%yl)I?eJP6-(7(v4I54s}Y zDM2~W)x-5>?P574-Ix+l0K3=AE>S))&BV~`4Fm>%>BL!|r{s<wpKs@S-@4V4n@JvA zlpdACHTNvyQ&V-VS8({oZ8T{S-vimIWM+MHcZj|BI>X0gXo~`?c$FDn+`*89uSpwU z+R0q+><Q(jsmXS5>gZ94{@RwOU0GSYl_|)M?GRT)Dx}DEoTwL$Ub#lOSc|Yndc}{> z8||apyKIisXICz#nBo&kO4wa<TKLvrq~tw?;5|0A`6vfX2CKbHWRS2SR~viML?kf* z4*l5%ADnCT;c6@5eB{>c-8_WoZSEf^-jJOMOYv}p;BAjCNnjYZu+ro8LLd}+11&#C zWn!BD{}CVd$ZHMF;2ZZd5MmGY3jG;jY+`~c`bA7?XUNcggT?0j@}CYN(n?&gMe48@ z>w2!!>iubJH3K0f`0%H#?QrXsZ%UL5K9PI02667c5Rx3~9d&tXO??6=C4P8Z8L>iR zpPApAX;VBx+F5nP&>1d<0xFFr99u@O(T2MrB&lq{xpv^|lN!C2W*7e?-iFx-TkJlc z^WumFtVr5E!ViGDcpIcy2#KNN!iaS}O(UM*!ytb-+%+Ld8@AATe~3>_2g3V*2``&Q zo#67*xW|v~P6@B~<LAeScZ{yD&IO@$$m5mYI{^K2LFo1eLv)rAqiZ(j+1iH0i5LrC l+vXxdA{+$ygUT|S^S_}X(Fwo<&K>{&002ovPDHLkV1fl#c)S1r literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker29.png b/theme/img/markers/marker29.png new file mode 100755 index 0000000000000000000000000000000000000000..ebfd1c6e944403e6be4d0c10097e73b95c684329 GIT binary patch literal 1349 zcmV-L1-kl)P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG&LYCFg7qS1PL`<00007bV*G` z2h|4@5-BjALF2su000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D> zNkl<Zc-pO2eQZ-z6hE(hrDN^ZeXz*frVKaO_y`$_j)=hoGK^Uq!GSEAEJ{K^QSl=V zjU@b`Mk9ZyL^S-N5*Cn9WzKDx!^JHFoU(zVg>~$EW9v%4)~+30yY_m{eXVY^YY}&n zU+#P7-t&9so{xK<0CUTOh|P#Kh{T}Ig}91nMD#{75+dm05fzBNDup6#<)ReGN>uZO zHz(Ynw^+gD_1W<C7~&(uL^Q%|gf?BRTKnd@HBgqH%Q7_RoG6#pP5YVAIRR%3y~5!? zufXtx>l$iH5r#;FIf&nimSkm~EGc5CNg4rs(*S<|>`%&N015>-oGvK;`5gSz(|-%K zn-Kb$gbNWDwq$1&RPQK(1)_|+fv6(N!Os|MKT`{5yZgw)#}H0gaQdALwW{Dm$y4mE z$fWIq9R2zBnIg6{DKQT<2T4tY>4;r#6&666CPAQu7j7D1^*5(L_~c7IcG<=`#~{XU z{Ru57KK%-|SJi{t;{lC2UO2G+5t=Ti91!7?@d`0(M_w*~*T)TaRyTm&Yy<tSGCuD4 zrHSilY#lX0W$|XvcJ;!?t(UpYw&f48<Tzy-#gYgg&QDE&jKl<hK!6(#zg!Ni;uXkA z*6{bHp^;hRbNRV^tm^LLHmT_4>a<i+ts=tIj06>CPaYPgnw|kZE?O8Tg)P8l%^R#z zC_pBI%mg((X=GBWg|LcrOnG5{<9YtPb=gur7T$j!A5V972R{(_x1a@yfC%j)E>~D) z_cyj+XSg6qsf0t1KgxBVZF&M0tK#8<-`lv?abj>+=sB$ol}%fx#SWvSkV#e4JUj~D z=?oy^`}ZY9z(Yd8UYrKTeJ_IUr7}L3my(P&0@&PccJ-EpmgtG0+3oX<{)kzF1q#WN zOC5YXP`DPhWIyna*I7r8^HORbGsBpB5?)xjoOez2jef!InX*!+h1MR*RI8ZfjoktE z-fIlENztDL%sQ(nEoK;ehFfKO3Rbb{clR;p+j|2!Ng7&ncxLNSivHM|o4rDdMsm{6 z2zW%1Q6gpR`Ko&1<n<d^Kd=sA3)PAj(P*%ZZ|k<&6Q5nNjC_htC@Nrg%{k$?-ax^7 z8o_I9X7N!Bn)DW1nT&yQV@`JXNfVMdB^+sOhYv5ddGM_maVa!)XEhrU{mnxor5iKT zVF@0t;J;(*q6qpiGuwH#UhoA1ucPLNS&@kF{nNPF%2ykj!87G$AcP<46^-YG$?0jz z=+Usy&Jm%5db8E>^<|w9DkUyhB6Zlmb$x^M_I|`%%|S>3KK4ah2i(5xnc*da&!rlz zL0tSVgd|7$$DOX)o&f<AB0oH?n=J6_z%ZYi%P1NlSyor-yMoD(gVxZ4ZOiByZMYXg z5^W3iwH>cdD)ic3iUd?gGl)glV)J+$f0@i+LDCKrKLF~Y8Hh0mi9vV8WZ6L7IOX?` zf%NBa&x9oHSV9}T0p2w_g!}&zUh5fmfYVFu9^JdUB^(^W>(hkiA4=zZ5L%2bw{-6S z49y4OgxAlnJ7RRkS{$ovNF0dC;Inl;JS4(VkbbDlu@?UgozBjlr>1A`00000NkvXX Hu0mjf<&|?? literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker3.png b/theme/img/markers/marker3.png new file mode 100755 index 0000000000000000000000000000000000000000..56bbe79e38c9b8b214d8ca77bdfc56a110340c86 GIT binary patch literal 1244 zcmV<21S9*2P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGBO}7Fg7qSN;iN&00007bV*G` z2h|4@6D<-hj}2-7000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Ct zNkl<Zc-pO2ZETZO6h8Ou+ikR6i<B9bZIKGY4IyOeq9#iqV&+E{hhq>vmh6Yd#2>~) z6Y+=q)Wn1zDp3hB8kC@B6=ZG;FqSd-2#ie_E39MR8+7gZwSJARU3)#}Z5P`0ZHu^* zJng;b-21%eo{#&!4ARR}h*uF?5ZbuTkGO^CK#a(3Vlp}v;sD}(wNhE|?CMoeqSZ(X z@A(2?ayY>s3cGN66!8VZmx<7TFcxam&wW(61@@Mg@**8NCn{p=79xDw>w_lq2s_k$ z1Ezfb+o-KanB@r9BRZ?smK2|;t>*fbItJkdfJh|ykqQAosRWPL4~>7d!|CC%8Psk^ zm=XzBATGaVD5+@PT?;v)K;A$`5fu>O9CkIe!l|KA^6*83SBRTGDblDbeyM$(KN4B& z_@F?4etN5#KfO|0hMI$<Cc;9*J0HJP0R_5zwv?>bYKP4~{tE2NZ=v#76AZd$9~v<n zI*p2b`tl1jYor_y;Wm|0EZJRF3J?mXIMUG44ko(`F72;_9_tJ=VBC@f_tZVJjz5u? zTR^cC@#pz+{VFKZ=BFkAW#HX?Npm7il4un4=;h`DJ^Vdo*+d@di}KZ&Jw?WlU9;Gv z|2^fUsYXG7;(QH_bV4lEOuobuq{i3+Yt$<EYI~Keov|1J5xVdD{aG`6Vc*+e4a~ug zlWnQSD90|Mu8fsU&w#@X7E%a8T0&|;lB@BfKRhl2S0KP|%{XXgB8IL&IBYpNh`pYp zOd&EH`B^HNj){BHysEe`c>#7!^W8D#4$eDq)=8P5=GOMx9NQW<m2p*04g>6fMX6l# zBy?MCaH#vHME1iQufXaRc`+llp)VNX4X4jCS8)D&)cm%X3QEzn9i@hi#`+qrpcG*_ zWE6oCDe(P&o?$2M+#RK7BV3EM5<+yCU9)vVPPcaF#to3@rL2fbc(0|M9W$9JcyA)c zC8raXPz)}Z9Im|rhup2}4YGwUNnS1-zS;|)U+D?rtOjv?(X_Ohrx9aallSYlV!YN; zW+O|EE{b5X+WDSSXIMBI{SY;OBt=5z`M={~kAHBk3xe|@4lK3e4|H5&a|;WdIQ%Xp zv}q!A&}4Udj{MWll1d3nq-|&v+D0d6_L*$1(hyRBkABnB2M-<u6TIZ`_4Pg)v>>kh z7ebQ5W3yg=>+m=Or6^q<cWe$gKRzYd(rwB_NIRR4n+D^_P=L`qjBU&5HG1xG2uX|= zr!3&c*C!Qv>j*^xnlo+4MtIQ`40>+b?BGDsKAUs_v}M{LW+5bo{u?$&6?Nl$Bw~fw zm&0QdlJsH;RfVEb*YqO-|CjLg@T>>CA!_%`-aRVe#3X)x*zmSS8CVWN$Fx5Xd+z{D zE(f766p7MZMvUHUi?fvti3c$kA3K-BLn5?5?1RdlZSlX>x08r?Z5>kp0000<MNUMn GLSTYb)Gn3) literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker30.png b/theme/img/markers/marker30.png new file mode 100755 index 0000000000000000000000000000000000000000..561fcee86afc07292ec7f619d7892878eb3da9c2 GIT binary patch literal 1316 zcmV+<1>5?GP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG&CSBFg7qSqJBQ;00007bV*G` z2h|4@5-I|HyW#!-000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dg zNkl<Zc-pO2eN0<b6hHU11=f~!Th}-OL~x)mw=AecjU*#t&`p$yxa@<3KQt!B7!ysz zKV0HJnrQZiIzN`hsMBR?sGCC|+ZbVFxQs6u(2X*_VS|=_(bBTg(mv0*uib!_GAAeb z<-T+7J->JF`MB>fSXmxKJcrnU(1dLsL=U17F%-**#jq(6RfxA#3WfgBO&cLyqvi{5 z&U(RUvxCPUaG-h&@hM_99$_ZJkfK&S_Fn!D*q@s%rfP9>a+$PlAt+9{XQA3O#16N0 z!NjcR8d}Q{rdWhoh^FF<^t6+u#iDM#mO)?vAQ)WwN|^wlP=L$rfy%!c;LPC2G+K)g z#>Ir|5Pv_PnVwg(w-gfO0__Ikid+UkQH0m3>)`ajFzxV3gj)zte~_wH<^59nf_P74 z((yrt`}y(ZV)3E%njEwoA~O-DAYOm}sXWkYlNl}SG+SZ&55EHY>>J2GUJd<@8P4Gi z1mGn@9k<iy_4z=nR<aMDeuAbeDF;MYs8q<)_vT~+_ygRrqP78yRtK~kEQ1d7G*n=$ zNIq_9huWc0`02$WK9Wv8WshtTHzXzMDV9X|c&=_Eq-v4@LLu(h_r?JbtKNoZ(o(oi zq$ET_vM)FLu8uxB+~sz?j!fH#P?wsl!tBYS!qhrxSwb-Abn!7Uyf&hPAV6BOnx3?R zlxh~U#7hjduvw*qFNzAJJcLhhCohY1#v}qFbl&oKVrKT@fmgunor686>ZM8%geCKL z^pJ>ML|rMBO-G;236o@4=0I&nawUB9tPNT|&WDSg>jDFZ*DLl++sI@jhGr~>$y5E< z>j?_JF!SioyfhleZgRaKoSc#^8GQV$Z{V(uT~l*oggJflb~H6nbg8*Dy%t+x<+dDA znUKKpAJ9Xa*#d{#u5z;PcRdT6)+J%qH$%^~9X@aE;$&a%Dunq!P^>s}jyZhu-_g4w zsh||K?#a&FYA7!eWt5_235XJb5-ErW|2)f1UcWJnmVAUGQY(H$qscK-Heh#ZUfudI z0QPBIkt^WM+6H#qXrkclM(`qCTznLRi$<GczaT>5&aBMnn<gSjiE!jfCwy|b!$+Y+ zv`40vSMwBNq<Q>S`A&>o24y+8?C5ei7|m93-|4d~5DLAEmOqw6BF6iF$HSg@=X^8x z=KUhD=!&muY+-W?3r+a=ZB%Gih|nRU)$Tg_PcMs<5*I9y`hj7nA08v^qnNo`fsg`x z?5mD$xP9BVXqO^<+1^bLwTR3Ag^=XP$c)=lH#o{bA?KIJb&Cxyj85>mm7L-cl4s2c zV}CdqGBB71v28{AjGn(ALK4HJiAiwc=aUM(PPz|k;yJ8Fc*)`OxvpBQU_;Vw3%>yB z<2lGzAtZ+0E{m;zx)E;~Gf009_f1IBi6vCv5Am+)MR@-&;kCgT7r6b@?(uhbuY_ac z`1@hOn;WHXEeLH>9<TJ>0T^Ek!dZVXM0Xi6x>sAgTG^1$w{kB0Y+s8V65%9BKUCJ$ a7XJ&Jm%_RW<Z>AR0000<MNUMnLSTYl@@D1$ literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker31.png b/theme/img/markers/marker31.png new file mode 100755 index 0000000000000000000000000000000000000000..e5ad6e9694261efa574746865869be2bb0021ea4 GIT binary patch literal 1266 zcmV<O1P%L%P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG&3MAFg7qSXW0N|00007bV*G` z2h|4@5-Jt`Xk<A6000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C@ zNkl<Zc-pO2ZA_b06h8Ou+c9aO8?}i9h^r2Txn-gfH6fXC6P+PrBF=p!`=K%MhcVH_ z`NRF3$r694i)NX|IVE!ob#n{|84`xu$R@?f=tdc(e2vo5FZ#twOM5-%ZHqv^aPA~e z-+RwJ_vyLk<GwG0^ztZT8)7peKd$p5ZX!Am!>Km06uMl*LB#tCxm@$q!v#>1uape$ z`T}5ZIKdwZyKs6O@j1emiBOBs6)F|ad{ns^_LP_MA{9C(%3^l&5kBShL8Eb)eevfF znDF^;p|&1jOhvdJ(OJE&r1(^AHCL}uF$m8CL?TQ7QYHY%<>2x9;lPD<IBy!6M(tLF zVKL!Dh^wz^ODdXn)xs)KAa5X}h%$(94sSKKz_}qadH6iSE5w&SDN-sbey)9uuZS#m ze2}3(Cw5fx$JXSRq2>^&iLemy&c`oQfJT+a$gtOHhfP2H0_?~)P<gTu23<1?Jml5( z#tYIKg+ryxWuLzI94#H791!74xpJ{&S6L}QC@gK--`oxcy9=)Ds{_4t8unwXNcyH7 zu<i7DXfu!h>nZN3d-8F<c6E-1VkzR!v*qdnD9X=UNWj3mdzYM!NJ*YPaVGib(I}|V z%S{?J{4rtKNFJ(-@)VdoS(5E_i%oj&E-#gyW$LwXdPj9KsUSdco{~l?A(m>Evczk2 z&G3jK7rxwDwcz>Naq{KDSd4%O-IIQQ%FJHc`vzD8v#|4QYvzncId&0sWvp!U0}eM> zNFfMI?5OQXuEmd@QUnIBK!D%GgrOLSp(_v$Th0z*udk9zHriu9NoCP7c2}BL6&I!_ z#I9+&Gs4`#IVa9KiEt9}-H~oRIK6&O$!Vy01vY95q!J;r@3+64nhe{}Hyh-KulCUF zM}#Sn3QE!Sou%3hy80R}qZDB|WE6oCDe!&2wXsvT@0d|jiEt%qC4}fOx@PKzobLQL zH#`A=9g$H)IlR~0&Q2PP6uj3Fqmt8$OehAI3=Y>GfkV!g_1ff{CLybH;OMnpINYrd z;;aVIvk--4rc;QKuJOtGEf~9Xl;y~>ql+RKtaiTpTpJ5VqaUK?*Cmli@&9M=uniwv z?1JE2hyzQm_=6o+*zEj#Cl0?&3T>JQ9WvORo@0OYvqUK+N~Cqj46WudnthfsS7`_- zz{kJV_rbk;!9`wj_^PLm2F-}>|3XM|bY#ZsZ!wKBkc-mgaogsA-$y5;wRD>@5z@}4 z2E$-H88XlrP1v@aUZWT9hmb^fdBOs2e0@@(w+vGxpefUaY=oCx!Jy}Fn;jfT+Gmq4 zfQ(m<n1zrS`fu1ARn(1hk%$#yUk>+8NYaZXR27O!UDJ;U{9nRbrWp@-L)7k>y;~{a z*f@TE*zo2?8F&zcjwyd2_TB*)&t|+5LSHBnrMrw6z1fVjl?{mpF&iH{AB2ZQXo1)V cl|7sBKY-Mrg*zWP$N&HU07*qoM6N<$g4oSQLI3~& literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker32.png b/theme/img/markers/marker32.png new file mode 100755 index 0000000000000000000000000000000000000000..d7f1795e299d5053c2a1a4ec9237dbdca28287c9 GIT binary patch literal 1324 zcmV+{1=IS8P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG&3MAFg7qSXW0N|00007bV*G` z2h|4@5-KFGwqyeU000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Do zNkl<Zc-pO2ZA@EL7=G{V?O?P}gpo)9T{oCxZdsV3Gm^|?h8eR6LtMsK!jI|VH0u0_ zEXF1Kqlw9WOc%|vAL?|O8rY^-$OM~#uw`@LWOSp9@2}F*FIrkwTH53Lp4%dfQs(4M zo}PQ3d(Ly;^M0IL0T#DM5ziwwBa*_L2XPajNAyNpBt+p75S567Dy1^*@l`31m89kq zM<%^su-U=m4><7l6yj6FWGq1~qB>oz+VWohW+=<eVHp~9PEyG8W`b<YJqcCDUg6lE zH(+?ua|_v0gfW_6HsVs@>a5JOMTIOiStCGT1|S%m|4M}jpj3j(?SYD48{n6o{&8ft zBMfr|S0XO&&}QY;>@I>8l1Sb_Op_E4WDH)Zs)Y;PedOWO2)7u1{9%S#mG^zo3+%qc z<n4n3{rTplLbfJ3X+1JWh$g{w#QyiU=0Tb!QJ{%!W-Dy^`Uem``x5d`S3#F!f@@qJ z8Jp#4?6TTHqfQVGKl3C#uAm%{;ByH|DQoxo8~}fSFWjeV0E5*5E#)Q9Y95Du7%Q?p zHT9e~>@VZv>%TSfH6@R&We>&2rBN&;{COfbH3c$~5@!?8`Rd+zyCYGu;WsMyI31qX zI5Y|n3PCD*xhX9b{unlGBo9+F5>=Qz#ey(hGg)NMa&zYKx}E_(u38x{6QT&2iE6si zh;pihs3pF$S_coS65#muf?3Wr?T1797Jgm4Zq2_1Eyw~S=p6NUqGq;n?=CQVr=a+J z-7I%V-;5pOf#kS2IQr~UG8tl=i<C`kr_Bi_B1CbXAhjLY)$rDvhE4EohY=*4_hV5Z z@KA{YIJ{nVbKFK#45ZNH4FpW*yRg?+DEUI|$?te+=m$smeL-eAACF&e=i}k6TVRLw z5&5myH8pqo1*dP?j(3+L&K%8DtC;QG10nX&+YHNvZA?pH$TJjU#@EUjt9+B;HaRyJ z?hg)zvXeD*eN4`WY?PvF#W~sy)ulU`f_N;4m?lypMOOavMd9r2JAKIHBOH-h@gwv` z$3#iD-I?_AhIROE7F$qK!U0`_aN1y`;Jt|8wKTW*C<cuNo1;u*5VtK`yYQrmSbQ9u zxY`DvTxs=Dbs?@t9^G5bV~GByq0!Q9n26Ps<={PAmn1Nlt!&SQi$Wk2dIy<v^CA)D z{XgMm&%9ON1iooM17TssSL$1YshJtd=vNCuyGVqN7_4^J$-g>;NGU~1q^`RU>iP!h z?&GMrT11cneCmtVcDQ@jH^)l`pUbtVLtObUf@CN9C)}Reo&f=r5<fg{TWs+Az%YNd z*rHg1w6f-mp(~sW1ymb*ux%NAM(ZC$kgU2H``3w|Pb&1<UWx?N#9FYFV6(&LbNy|x zf(=F6E&Kqei?u*nLXZ?XZdhyu)Qxyjn?e5P@W6s(ZCFAD{t)k)4utpr3f}6OaDm%T z?H=2^`xP7<!oMFDJh{<2mqXAt=JCqk9e|<b5S;V}Lv)srqI;>yOO*|o3o#YGwl9Z= iBxnNp50!PP$^QT`mB@!rq>{b>0000<MNUMnLSTYRKV}dB literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker33.png b/theme/img/markers/marker33.png new file mode 100755 index 0000000000000000000000000000000000000000..7d7c36451884042a9e0a0e19c8c7c412d52e19db GIT binary patch literal 1244 zcmV<21S9*2P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG&3MAFg7qSXW0N|00007bV*G` z2h|4@5-K`XxmjQU000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Ct zNkl<Zc-pO2ZERCz6h80m?Kax3MM{-rTcpZ#LkOALsL2wDGxLi$oRjdeWIr?}{xBw* zh(F|~CMNt)iAspkpaeCmAah%gxr_-C7@IIwSjWCM=-Tyb{Tf}n_Vt|G)~vL>MchfA z?cV3U=jnOR$9pe>-1Z>iIm8x(HpvAMR}o!^v20E(3#UTtL%gk4Dh-dVT?6G>jkNG) zAOsed8-kIj2X7A}K0yTJ1dRxDiAMeSd!{Y0yQ+eh>M%G_kyy7B<Foz%v{=X3f!@n7 z69`^Iwh>{?Cb$97UAMlx>{xvr*RR$wh%N!dV(CAr5CD`)@cDz#{97lS9G#d$wiaPo zF1QNu*Yn2m>eik0P#_8v4al0PfEefSdP_T;7#XJspF;SB<l_%YHR|dg>R;e@C6?Ge zC@`MyUa8{`t=3i|v!7@ZEJ3{S{?pZ9&=oUU*l%~j=5K!l_UV^kI?@8eo_R?lgLk?? zr%|yFpLvoVH&YEraGOdgmhY^r0Ek2-$ELPUusA(%Zf^th+2^1MbCr`vpN2;t=Jyp9 z8Yq_{{&}KGzXnRR#s3yy=*>N8yCdhEd^`?%jB>L<4}Z?sHc^E7(qc7MPmz(Pi#CV! ze^*t7JTC}PR;-~boscLs%i7}G&26wwt%A>LYx44pB?L&&dn*{sTG=yuUIlw-0d^ek zkmutZr--I9(KdZUE-%=K5QH>G8auKJ$t`B(1qPl_h+my^5oIBTo=`MuJ3frFUZ9i~ z8V`LhwMN&}P3gX-tRy#&Q`355f_cM>Zlt=Y5;WY}L5FKw^QKC!Dkxy42Mo|_cff(( zE0WVUFFp%vR~3P2-TmqO%e7D_D0tJ!-<c=8_%-VMlqv<4=;DqF<3@AicCMfjVLQm0 zK!p_e-d|6#W7lttBV$5%QoRyEbXh&~4I^%^_O*?V0N|X;ny7@g+B(@0i<Of15@M3* z<;_PqIAd{nb_*N|w{9?Io-`>dDuja<`r+gAePQY%#HG}uJG*%nG0`)9t8pvlXgyUk zcE{F55iE8m-*w^?i^k*cBJ)dHCbIng&$!v6@0{*|@M44m%k21lUFX=s(o#2GewC5h z92wegak_nn{vKqhR+0=`q+?_pI>x8y?xU==${|PzKKw=B0NlPEUKS;X&o2$oMH}M$ ze-R`*I5F=JwvSFSP>Rywaoyp9KPG3SXStl@1j)1YsAV`=3<a32qd2ylUZbb)MUc#V zcE$!?e0@@*w~tXKpjFNxpWs<fIPAOPaDod(2OQD?&>`m_<`E=?!OIR;4Nc=>EM|wq zm%}{^lJ#Q?)kNab)C?j*|5xzZ=)4d75gK>-=<Zf<Y8pR39C$*b4XuQrYc?24ymtVm zS3)oliN)zGBSn9{#rfKX%!gP=Ub|N!LK3t=;)BYWZ}C4f0KdbuMRI@u0000<MNUMn GLSTZ4r#Aio literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker34.png b/theme/img/markers/marker34.png new file mode 100755 index 0000000000000000000000000000000000000000..2215dae0aae220a7416004e54017ce425dbcadd8 GIT binary patch literal 1288 zcmV+j1^4=iP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG%_G9Fg7qS!LAF^00007bV*G` z2h|4@5-SXY82z{a000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DE zNkl<Zc-pO2drX^E6hGhBc1$Skq-!Dp;<~MF%q<HlQ4^9GH}Mf7h`8*P><^8JF~&p_ z@elXsOqTeEZfchKm{T$})Xgy<WJnlpBbyW_ql^Njyhds1i@u<=wAXWPDWhv?aqc9) ze)l`~++WW<k9$7>R+dK*dk{Mjibb6taSPFg7*4fFNTJI{)FR%=k;&ALug`-bg`6AS z@dd!(aDqP+cH!$O#HR>fIzkOXmoLwG;)Bwiu)kQ#3Y6%aR1&jWh_ETI59*D>!e@Wo zgbAO&54AN2V=BVUi1zXgMTKW8%b9AOQh@LRKqQj*ml6>`CIgSx4~H+d!UfaFG-`Jv z49f{0LR@=MQ&iHhw-VM!Me+vHic|s-#^8<mCOAK2CJ&!Rc*Vu(j|${DB|lZZ#8yQX z+dfFppVP0FvyJN%TTyd_)I^w%c=N+&N<gj5709sLYKI-){|v&hub}iyJq);JmUzgk z{4Y=QISPkTo-KU*>{B##m~udb&t=P`MSHhu0YYKE=ul%T80;>%daxSw)@e9|v5HHJ zc^s^P*}I<Nn(8f^*u!hH)D%l8{ybT%%7X$$?otB!-#U=6J0gwC554_~TaQLTg<kGZ ztKiQG%XacmRgjy5*^?xN>4wF|pZkin{OOzvf<GKij;AO>VXmA;N->sdA!UhI=o;aX zoNV}fcNu@L>l=WYEt^v2NDyKKMChLM`%`B2@`2ZQysFMMFA@$ym3Ct?Ta;lJQCG&w zM&IvngM}2Lm|#b3M{<2}>lDlN$G^Ml6=hl!z!eCvThk6w8Hk}H5Dr_;4PdXYk#R%K z$sf6K+t?lcURIdTpRD#>j=1nKc1^?Jh~N&+J5kk6gp-JGj&<t6>Gd;8PF=+duw9)8 zdw#jV$-aI0`P9XYZRnc~vZL3!cmW_x@l;TXZd7SC+jKP*OhPHba!4y8B~oMue{T`a z-X1igrWE0d*GdS{W^~O|4>{e6*S9@}`(fz`r80QCu~j%@FjDYdL5y;zmzhuuE*l)K z{UU>`U7Iz@Crw<|X2FT;-Eg#1AEfF+bS*{U9@8nrNXPhO%`S}H2Fh~eo~=uzV6fWR zzVj_YI2wH)HNPc9BE|pzikq!_?@|W@=R*vH<chCtyDH2sEVSeB>!i@G5TPRmyVG;> z?_MEZN?fo+nupBLY#yVxPg3S;1wsn&spI+{n41eO^OC_AT|G2tM0EZaLXs0BGhTm_ zX;c82lph|qZ4UTjbb`;Vv?v`Rt!$_>3@j!?0y?7!+m_Kadg*=$Npx2xEa1lLlM20Q zm?8lU=@w)nyy6N5J^$G3;6TzI8$SS=(=Cu@AS8y~n>I%ob>n;_Vuje3!+jHybYlsX zg`&J`dJ%#DOW0?c@qjl(?VjGd)e?@4<L8GhcGLA|GF}a#W6B?h-8%r|4}#DaibUxw yBSvo~<4k2k;z7i3cISiekO(ah`=GLCGX59C(XtGp)@QN+0000<MNUMnLSTZqv`ZcU literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker35.png b/theme/img/markers/marker35.png new file mode 100755 index 0000000000000000000000000000000000000000..d38717e19d5b6f28e591203efae1b4cf2833f843 GIT binary patch literal 1338 zcmV-A1;zS_P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx;poG%_G9Fg7qS!LAF^00007bV*G` z2h|4@5-S*)!YRc7000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D$ zNkl<Zc-pO2drVtZ82|3=EifKs<1t5oNF6vp3_(Zyr^)6ZC`x1^;x<Syahj-6m;E9C zxcHYQCX1O{oC_iGMTlm|HUu(<gdvk`3>=ScbmKK1D=jSrO3V77J$~P5%V3l;Ctvcr z=bZ1H^Sj^q9_L;G)|V#{xrj`J!mG0&`VcLMVSk$hKe|vv1>*fMxjgonm?%h8g!6@y z3sz7YXTaicns8W&_!6-Yh){{BjSCNZ?r3%<9861L@sVhpB=f9Wa<M7%0-V(h3&%Te zz{G;(CTfcj8h?bzh}OKM#Dto{JQlq*QUK=?fXlV|l`;`PE{A!u1<HSKh6_WZ)2Pis zs8<qhLHzxaGBK;Zq!5B6k*tA$BFVtT7`%D55zY;ckcBTG%%XSt)A;bPte*>CW{*VX zIX=kHp6_4FV^3{Wq@w1SZz>Kk{&lX3vCoe(R`DV0DlcIfu~7{5Z1;}sO!ICj*H3=% zHrK5L?WxS)M}0cFk}TXCDwh&VQd0mNPX30nhGtM3OmL;N2)cCBP=>xDp+3ps%yhsP zaL}HjT|3#fkl<MIrG$^?)1spwUJ<bzfPuq@R-MjA<ZF-Y&U`TGc0+V{sPJrTH2gK8 z%^(Y-<0HZ_da^Zcx~A3h_CQ(+Z+rAckVFww)pfA#MAh;<pe`XIoO+R>C)9%96fdZ4 zfE{6>a3V*=$5*vFs4mEbA70IYIlCQ>w6s4+Xu(53gtPZ77Qd0beCT!1Sr=h{T@xQ0 zK7I$@LTd|>le{i4c#qAnil{0*Y11`eoCPf@L~#`%m7T{j{p#HIS`&h~2%-QctCjUl z8%d=mhBm9ysja(>wH_qr3zcVn0^zG~p=E56k5vhAyiKdB;rhnmF+MKdwUbv({hd)^ z)@GkURVzh;id)gIH|{OZNM)fxK|=NuvCyg0!|~1@PF9t_4`Q~2K-Tsc=s-W7?Cyiy zq(nHK{~|CqV`Ufq5KK1vcgXXLFBBA_Yx`4_>9xfLOhzHXbO<OS1yW?C=PwF1x9*If zCL3Y$<%$E*qA|@C4bIFe-bjC%Y9KJ7B!~AJnuQ<L8gkw%h`ZdsE0&NCE~|~EgCc|A zJ;}<oH;qq1g5lKFZup|3%SPFSxV{{)hn7wuM%%{k74JdcB~g@J4;@{SK&>;d1LrOZ zPPh9L)cm%}6Mo+RD;~D`qf2dIvpX0FYcsy0<%+PlwA6~-(`#J2j)#t^4Kwp+{^=Kd zsl)|Sq-k&jnnrlqeC9V+>kyKID^GUy!u|WU6;?9%=6Wx68W0`-g^=Xb=$zToICNJ4 zxx_DzTX;GAd3S=(t+y!<A?>WMR^RppLk6{)AuL-)pV3Q?Lr7BFKB0wK{CrZPHx830 zpgz!sjR@OKHrsrU-T+1<?bY)OpefJ>X#+xH=)a*is;C<6E|(5Ge-4jLNYafdq;j}< z)$}8*|CjLQ(A+$j9aQdtt$S3$v2pzU(BsXGGO!th#wm-{^WDMk_ht|-I9zVJ%ZSmu w(c+ELhGZVG=<UyJhJ{3^1<wzaVWY+W0t8vm)^c7JKL7v#07*qoM6N<$f~DndF#rGn literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker36.png b/theme/img/markers/marker36.png new file mode 100755 index 0000000000000000000000000000000000000000..1490702c3be924a30a6c400622a6ec1ea5933a6c GIT binary patch literal 1345 zcmV-H1-|-;P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGdLhEFg7qSr+y+o00007bV*G` z2h|4@5-TLOtyMw*000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D- zNkl<Zc-pO2ZERCz6h8O1-AC7TlTx8>Q;JMCgpi37O_s0-nTo{CF_FQN{g9X#V>FsL zf51;kOf*qZTnLd&2})K$$~IxM8FNSmY`|DyU)?u!?fSKL?bfwxujjmNb!A<LxRX4+ z_n!BCpPu)e=e+lFu(&;e*pAqQkcWM4#4UslF%WAJ7sDq-R3Y9?kw}!!tXu(Eav7U= zcgh2Ls}0;fza1ZsA`T&@;t{G58kH>N*^lx!L3wVrkdcPLiAAA#a{*!8H3hXj1Kbx^ zZ@}1;`!;&Z5IwO7*CCpV)?{U#EG`lh>1iDJ=KunM=)V;401^o}U2dp6*92z`LlfxT zhS1L^Oh)|mvN|hIySo??#5_d<aZN0OfFQt|we@hOe~=>Ff^hNS;ZHJTDS1B?zal&k zS!nwp!g!9qUL>qdm*=48Ai0T9g?Rhp7xF-vmdeq@4wD5o{_rz!pMMAWHMP)dpJW`f zxczc%BP4%W4OvHO;DTWY(qvNZ(-)tk;Yz9j5f(}%;;h{{*#JI2TUb%o1bT}dF6}FY zcGCn@V6Moh5WjTyqkk7x+ztDGZ)R&spMFw!Bq>ozxfJ8i=3K=J$dIT0Q-JRMd!u$o zq+~?4Iz<YbS1UoNdM`8>41xlq+^AH*pJT=i6rmy`H3h3DT9BqIMl-wa$<1b0gTo1P zNI>aOeS4gxh8fR8W~z+t()duRxtJ2)si|WTeYLHCJ$o^~))_Axz?_*p)9|6L^<P1A zAp#<F+;h8QR`%lFH`v0G(+we|@F7vW6^^(qyaNadET<9Kw0Bz_U?d06M-fun&0m<K zNRO5xk5M7)9*=Nq!b&bZF|>I6e&gw0?DYf*o2ah-kx523a+f_9WUAP;BzrBpp2Fgg z6+WK9x<=bK#5ugPHgq*pC8)XOU1n=x<%S$VnvlTduTsKQlNn`llaU>J^(9!DoCI4Q zTLpcn$wO_|;d#}gaO}11AmMnS;_L;^?w$Rfgb*nOmFP-IwtBs$Y^NZi5@9vt8f_QJ z_WgFAJ9(#X5Iy+_dqgWfgs#UvS=w)N$ak%O3IO{wu8Ae^PF)jMqwk^Q?LZ8Zd%pN6 z2N(5LdpR#a;?{NQg(pqKk`m!?TL*l0x!p_ZLR^as-LK|x#8AuVy|S&CyERnhz<pa6 zi$QO)2z$<)=lsFo2k7}VDibmO{}gWa#QTjc;GOjez%5jKmF^NZJvWDq3`Z8Ec99Gn z)LU%M>g!!xL`uw1A`Sh6&@ebcPX}VwY7s(8@X>GDJ7H$VJ1<HBzP{E;H+6{1|Amn3 z@X(~oU2hoXKq6*`#~rg3{umx(V~Z_{M@TERC-lAHVu(P~W5Bi*=r!8-Foa~9)-fYE z@byVTuOFaHfHvNOr3hQ?Ua#|}*#cH1?KHCkpdsD@@e+i@&~?LXEue11cZvx@Uk(pV zNY;T8D)0qa*K{E~|CjK#VbTdMAGLe@=pK}CWE4L?%y@F6buR~@b=>U<y>|dcmxFN1 z7YNc>MvShdCNCu$GACj>d~aKh2#L@Lp${s{Qj`A%Sv|@RLl}@p00000NkvXXu0mjf DY+zaR literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker37.png b/theme/img/markers/marker37.png new file mode 100755 index 0000000000000000000000000000000000000000..752c06c3be00846bfe5f80828e729a4313a56bca GIT binary patch literal 1301 zcmV+w1?u{VP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGc_PBFg7qS#;HU900007bV*G` z2h|4@5-TmwaqZ>+000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DR zNkl<Zc-pO2ZA@EL7=G_<I~XlxqeDl4NM$&fGt1P)KQ%KOqBBG$BH6~0{c$G77|njj z9~XbkWQj4;sUc|M7g;o`n`1!8kT4u0n{-2<jBb=~D3pHDFDNbT@qO=YE6~!;$(uaA z=RWtG=f3CtIJX?EZ%-gf5PJ~HFy}$^A=(hb@fLA$xHLo!;$68+mi6?uOvqCzgo#sb zFX*i{@c09Eysblgif|_qR3o(63i-3A_U(bA#f2;<1D%sf#Cgj>Hsf-`MZ+-n*<U>{ z>GljDTZu5l6WoDlFU`-(y-;4tR9iAQ2rL5xgR5UD;Q?eaaJoEj;%X~gF^<k5dk~>t zDYzMN^A&a8-iE4j*d*o28%StU2?QB~w=Oop<)IPs@CAg64?q4WM<L()bNQ?6p~S@P zg9QEg{`FG!<Q8QSGN&VtvJn%XmuMLK<P>8y?=jtpDz-Z-lOfNZ-~JdgoU9gjx?c-g zQ+Mb9jcMy@^6;fJnKZAes1U#(5Z-XSu@&?dJ9Ji8fNpjUj$^FIP*lMDhbLj%=2R$B zZ57s3>?~kgQ&X}imQwtAu2_``Im+~C0tVkcwrY1Iy3)S7+XvP~ADk<B5g-%-l_HIM zCQAi>PMUU;hpL=(Ic8516Q<iHvv569To~mj5w$%7px7jX%AExw$@7q#uAor{FQ%G{ zTjFKfM%XS-gL4NpQLb}p1`FH+Wd-?=vcd_D69q`nG41ih&FuAKZ@{c~0S;ekj&dy{ z<HA*woBi*^5EEV!DI49O)d40Vcz%^2wH?{5@Ycn6T7)ZRKfGNI>|QVHo3qlLo)kK~ zfq?1Kee89N3z@q1C*aP04Q=C7G2R$#4&j=gkuDP0H4P6&Ifrk_hIj2GIF0!BY?lsf zE)S#R)R(;sScg#Z%N0TFyF&+}g5j;f;}~0NL-&G@ow?af)DH+_Bo&mR+lLF)yR?;M zOhPHba!6=AC6Z^=zqfD~?mZYmW*@>HNs}MZX0Xp!4A~sYH+MZnJ&;&XDuZ_#Te%<g z1`6J5h%us979Yjny54F($}>pWze62+(nKsZ1<v2P182H)KB_K6cjVF9YMw!ic1%oH z?#I~WQ<j5kwl0-|e%8W{TyEh4q0k4&{I)6*ao+zcZnpmYYaQTQ@-yIKE54?!lUrC` zZpYy_F`->2LZ|f>o3r+AKNl&bNQpELjX<+l+#koy)jEO{;JPn$y|B3GTj3>xFS>ha z(1_^zFM?#}N9SFhCgT_fGO2KQ+%sF@kFiPN*?Nl-3DU}jdj0)yG9;ii7_n^`eMYZ6 ziXfTx#-s@x`1zzlZyKgZKtrMh$pmlMeLm;kW(!zRwAU;g0L_UONRtSXLVu6hs-bRN z3I=CE{O9n<f@F8Fgf#w;&^7%C@BbAXFwQ%{<)?N}?A^l(j!)p<4>O+JXoDLeXr1wR z#qSP&zc)hA?GJ|NEF(o%vdPKHhRlgr2#;+W;UNi{K>R~xNjCW(jETX%)=+|(00000 LNkvXXu0mjf1sP21 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker38.png b/theme/img/markers/marker38.png new file mode 100755 index 0000000000000000000000000000000000000000..4eedfb409b1019412ee87647d29d40fe28c78877 GIT binary patch literal 1341 zcmV-D1;YA?P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGc+JAFg7qSVBSbe00007bV*G` z2h|4@5-T{OtO*SO000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D( zNkl<Zc-pO2drVtZ82|2V3#^59TVaj>+p0s$9GU2dnh=MgY?^5&B4HZ|CN3uaVN5h} z{^9=AM6*BC`B)aCnUeVcxABzm5O8xD3<O3u%6P*lEqy_0S!rpn-*;|V=qP1QzT|h$ zIo~<wcfa#J&b=J0EL#!JBX%K_L7fY64bg}g47Z63qmv_!BHmWWWC@SPZ-f+OEL(VM z)(v{A4P0KI9fzk7pCD!<5o!=+iLr{u-^<(u2h&o8Bo!Jbm5A#W{KBMj7D^3+-0`+f z7@u`rM{PdB5RPy=qA7P<O7a<9uApA8;=s26;P;2VQo;ksWH94&L2+e0ln)F~p*9Dh zUrM+R@%LU$N=8M24x*$ySpyM8DgnPB!0V;eaISxdEPN8-<b%^6B*iK+e$wp|?ukr1 zK1k4>A70579$c@~qUIQ>i7*lI=KD`&K!PfcqlFzN3#5PlGjN}N4VkA)q0c_eIF{<E z?U*ouDpt;Y`1Ed?E~Xd|VYXZ*O)1c(0(gCFV^LK-=q+}*bT|*%O;b>Wz9M;}rh(}j z3U#bK^2eWSPu?RB2^(Uf6UdiRd_0k+-Uvy`xH|#pJ#r}IbVN!*BqTXolUds}Wd#TX zK#f+WC#d1CapO+1P@NQ~!01VqxvAA?W^G|ws%T-lmbDj#$3n)y^N<`DOFb1YhMEhT z;`__0V6#FFpXX$;@mDWA16uV4*!No{WN%4g<2(7si3CLGm~gqmMz;CTt6*}^!GW_i zqHil3z+iJgZNbaXJT?J^<#po1fPhs*RVk)Td#}|2MpE#62qBdn$(7*I&-V|pcCTg& zYpVuFa1RG|w_CVI{zNwuLyOzzGoJ0kT91;kg_@H;vealCy~V~^$%(9eY*T!Q4|i|g z#Hyy^<}l~*%-c}aM3JE4R`!^!*~L4xf;=jU%X}aK+Dv9R-qyv)zI*XGh+h{2&ti1R z+Rs`$8Ci)g7ovHIP*i?_vwP;hMV?<4LqQ>GJ&>x|QI@}7kWh#)9U=-(f#ik5=WDq$ zH*S(IG7<L0T=60r4fg50ew#!2+Kz_-uudb2R0eNV)pMuy26Em@h!IjRO+NBLv)*by z$O{m?XS-(kO|vL5(Qx8Q2Yh_F-9y=hxVkuXcQ#KVhFiua^7o+cwo#P*cO6|S1-;24 z6rQW)e1X8bsQEp_6Jg%}D;~Dwow^qA%zFjkmS_CY#!KAX!a@^vzggzm6+CoIZ?Vms z{HKRoOeH3mA~l$cHAAB``Y3FyRv;t?pZc=B8*bnBEU{96FRpe|rwVcTzYvm~7@l^z zss~0mkV)C)al>qdhLLeLx6-CagtW7wMBf(-h6KtC16Z~KeMal<hmfS~;<ynU`1zzn zucq3?mqgmI8sSB|$1~Gqwty8$yUpwZsEM>ex(XpN^mLl7SyYYle!mICKZpA!B<a8u z%JK$S)$}0T|CjLk!1N3_y;Sazt-Dvk(J}n}FyqaQ(z_Of)=8IJ{O$mZtp(w%*B_v} zj2NA(EnY2cNM;ao!M<%REF?lBh(A=8)fWE?$tB1v^Eg)D00000NkvXXu0mjfdc9)d literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker39.png b/theme/img/markers/marker39.png new file mode 100755 index 0000000000000000000000000000000000000000..1024cc61f2e1575311c976aeeb2667241e819662 GIT binary patch literal 1361 zcmV-X1+MyuP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGc+JAFg7qSVBSbe00007bV*G` z2h|4@5-b$oHS;L|000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E2 zNkl<Zc-pO2YfM~46h8OvU7$Rc7P@H>h((J)X+y9QOT@I11|K0(k=D|Z5VbKHH71&f zKkOf)Mq__et8LR54VJVvtSv<#v`7G3E2TgSY|B#K?_Kr*?1L`5?2hNmE)mMI)XGV| z+&gFHeD}<G%v=GMmq!u15h)0TS7$}EBWe-7zKjGPx?n^R;++t=T$#K+0%8@ReBp@2 z25N&5tPZCMho=x<A}sz0;}EK-(2yrTOiO|Mq<9t`j?PIk&$>Am8#h~^RMRUQX}Sr+ z7VB-)<{>n`2sb0@vNpxWoXN>zk!!;RaLxg^T#G*`69MFMm^NFX@b?<H*wa6O+DwFc zA>kUtU(d(Irk3x^fdEM)Z@{leGH@{ldrK?fLU$i|_%y;SdZ#~*4h=~?o$~^FATrPP zL5BYP{Bjn1Y^@>@HHS$}gi(k$KiZKB%J49O7Pe^hu<fU_AbkA;q!pJ!muZS~3}XD! zPpd%w%?a3BRt+}09l}F{g-_C-qUl1)0TJ#BmP@hw65|0JPHtFGQ3Gnd39cT@g=Xyp z6kx1K-o8{1jbl0}$=(gBu3q@6v6b88COpp81qCW8mPEKcDKY}06=48wH#h7&bO2b< zyYNg*6dw~QN&V0$f4-I!&!1)8ecUDzz1*gZB-K_TjEoKo!R*PFgy}kZL$cpXFz05A z<~2r7C_oe;CM=ZR!bMN21)n9Jt*U^HA;EAoGlP$JJhFj5&vkZtKj8kipal;B5l)U; ztv)kbf8Z6++Gb$S`6@m>n)xjMz~_HA!}>Kr5F~kbg`SUCs4G2X)7)v8gfUWx;vzz7 zJCa84*0*m|!uWfyL&qEWAmQ4?h;?WqfXQZK?GpxCq9%q0o6|XV9<v4ka&8!R@)uq* zwSyykoZ(GQ?D1l*r?Mi?3z8Ff*OcGw7bfkqMqE-yK2vimI&_9zg<BI@a6o{Nwm}I^ zS{)o|y2Z(UeDOKH#RT-|&*3rnzO@|=r6j{=yVAin>tqENF9|05><Q%gbv_l8qU(F& z<F=^svYCuhv>@O<MWjTE>|j~7aOTcktRF~2nC5H6fvDA(rgFQDlZscjJORL%e?mzP zZ&lO?#cB-&?<K?lsTUR>#h_koFy)I30(WkXTYA#WOHd#jYixlpt~J}Kx)3+!r|z%j zaYTQ^&}iOHjNK;6vg^LBOA@HHdba;UwcvESKS0fIiz4CU`{!`8CGTHu0Q;<ifv~jV zi)yb5Gjnrw_<DRvXqSo5VYS{keX_Mfm@g$RSRz%}zg2yMH2TzMu9hLB0H6A<xee~! zvoG+H!M8Ws=%oU2?Y|I`9P6JlTPu481dvPo@VKKhz#jv{d~P`-e}rUNUZU>uCPM}) zO%Jv$qigi?!w{0Fu3%?O;`K>|UfD~LfO3BZD-m8X+3nM}bb2r#X`7B809F1Bq!kE> zq2s2`kU`xz>vCzq^XKr;gd{CkLKzM>@0t#T?f(+q?wOhfvxC~*zjqHxI5>pYrw-3Q zl+M*4G>ltqo_hyiXf+5e4i~@fh|#>#;+4vVWEwH!eK)R#heS9Ao*ydxN{jyic4y0I TdJ9qC00000NkvXXu0mjf0&HM+ literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker4.png b/theme/img/markers/marker4.png new file mode 100755 index 0000000000000000000000000000000000000000..04dea0ca2e373ba1b31a165387ce256ab7daaf8f GIT binary patch literal 1175 zcmV;I1Zew-P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGBO}7Fg7qSN;iN&00007bV*G` z2h|4@6D=E8Q?<?j000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000B- zNkl<Zc-pO2ZAesU6h7~rJ6Sr;RFgkMWwWyH2>YOdpoI;0Sz?W{DEiTlAc%;dAp222 z3xfXiNwh2#E5VXmyKaiqiYslh<@8~WIqEo?=EvxKI5T&2obk@vIdio}=gu8#JMh3g z=brbu=RF_qdl@8`ZxGuNYZ1l?n}m3Ss6lk7En+IRbVMoQNQPdYwQ9k9$TJ#Zj_(6O zu)5qJg(DtRZz9ek0$POmi1KVh#<~+5*TVi41w6-u!HGJ>Z(Qd6{s7#wb+C)iUqMem zYDQ}b!lp*J1W{YGFfaFRaS=DqH8F^c1IY5!PwE5!y&imi2@d}C82+?(4x;rtgf*UU z4&v$e`FVvEdy8R~C{Q$@DWVQ!&SB5JN_f!jpa?f1{KCZRQ#po=!e5Jj;4>mqwhuat z=hja}e9>Iva<rT!GZAJZ4xQXw2wA2~rbb4QWM91n?83EaFJv$o(%I=P8%R4yH6X%o z)AeHB-sJ@V;fQK5)sAi$2#%;nifeW)Tg>OpPRpWP65;w4=J}9g%mj!=RoC2ZYDvCz zTw}&4*JPPVTTO)KoXiZYo=(-@JsJWj5&=yS1jx-a(343}O3l<;9Hp$e6-t&ZPFW+y z6apgj_DWLH%9b^^!Ont3+H6sdQ$$m#w2h_3<%K>n2ttCdWnd5%T>j-#B-1M`Fz^I} z{LP??G%GRG1tXEZ`>i<Zv-Amsy!2=c@%j|Osi|n|WZux28?{;@>_z;1q22;+zr>Rj zM^$hP10x}R?r8&Qw-NTqQc#JW?JUS&SzfY(>!?IYS}1<2zyyBak7{=JZJPrv8xfw# zaKeZhn`d}eyW4Bry>cn;jcXH%dN};>F}q{6QSyF7bj5;>bD<pkV|97<3mnq6Ey+(j zX(nZM8eIAB1)Qt5gizaoX!w|gX|DZ<&bsd2l5M%!un-Sdkf&{36u~+$#P>a@W|3(0 zI9h(6k_naX|Aw0_JNBp!LStbLEV1KDYyM>;<KwmXcs(JtNiuZSI^_1<c-h3Jv=X*R zRl5VK9PdawqgtyZgp}Z$mo1GjIvR?LlEbBjMtXRNsQ(;7k}I9VeyP&l#Xv8{4v)7^ z7yRAT6ML6zkrpAXtSGa#P8352<u*HxEvIYr(U%aClt1a|120~m)aaERlnJQNT9AtH zi6<2Dy><?P3rQQDu>+t=Yk`=8kQka?IbB<68pmXL0F*z6FD4{;fi1K(9F0v)6C(J3 z37hT1KJbTW+_j^dDdD?r{QYn$w_Zys=a~??`lX<9?*Mdv4Z=WJj?!61jQ&*4soI9b phnT$O-CrX@BJ2a@hiWL5^9SE{eri|~k~shX002ovPDHLkV1g!q7O4OL literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker40.png b/theme/img/markers/marker40.png new file mode 100755 index 0000000000000000000000000000000000000000..6a3448b7f10ad9b85cb6b3e42e456a8d51a8fa55 GIT binary patch literal 1258 zcmV<G1Qq*<P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGc+JAFg7qSVBSbe00007bV*G` z2h|4@5-cG8fd`xb000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C* zNkl<Zc-pO2Z%kWN6hH6vbxbJjwvG=3h%o3jre;AU(}V<*88kX&nQYnOhnbj|7-LK{ z5kI(uFEd%<7dJI##%xBiXjYvfC1jH@vW=*8PDU98N?{;>3jIUdS9r9v*K^+MgZ`t% zxs&{I-#PD|-#ho5bMJi|Y%Gr=o=5CQ=;JmKaTn2r7|Z0uWw7NVnh|doXthO;?c4!n zdYwG+pI``VZV!mzh!@rKh))o~Y=jjEbFr@A$@gpb!-;AWD=}bjf<~FQ8fCMAAY8VO zai9Kq2d0AJAX=Lc_DqCTi0+2+veHY94a~UBz(HgcAR0~nq=pC3YQY~6;pDH^;1|dE zJX#MTY>9-AAa1=-QC8D-tP!>dJVgUpMbJQ$F*thJ0#`<z6yX6xfRDfautZl-^IhYM zY*S>)@<D^~TzIvC?b@c_i<VPlCc<LGn;$$=14V{HP9>wS7k_>MxHDg@afBifc*Sgy zZ8U}?2@JY??xSa)rq?H_21NK=zE&tZw$}s@j;uL%IwxT+w3HN7%gsJ$ADe)SFCUag z(#hw@o=UcTYhDrMk_exwHtv8DeIY<Bw&r|sU?^>sL_%`B+O)2tj}fDMqR2?5$BEEb zQdof1)2umqmL(7)ku*Yw&o7U8@wuuFJP)OXI(jnjN~yV|25KD~hNeB0>2*k0L8{Ji z3IP%NrbRKSvaN$7aM-jfy;FETvmRr(i)dFWZDSpB`(TC)@d?(sdDwaOoAs~9D_ynS zAdf5YW|wuI18*qA?#{c(WFv+iY=@bjhH<ZN(aIB9^E)zBQJ)W0mdoS!L!;|D?wYod zan2{Lc+k{Mgwu$x&-7Zs6A)QqaZ;tFu2v>_!_p;>E%gT=xFoUDxBBG9pgO6gpc4IY z*i^C4+;oU(s6;6RNE4n4$+Opg?&L1r8*!qg7U5OH2_w4f-o+!M9-scTeY<g;EIXl~ zg}2(Tao^hPl)RS^6J$<YALZb>&FwwGGsvs2sz^U+RN0yb=YGEpr+cjur4rGnzDiBl zEMmN8a=NL$v>3|qaD`~f(ggu*a|`VFl};`ai@k@IACoeX;rl<}Vq4$6+5^%`m;sl5 zs5f`r<d#-fyYcbMwA5~pp;NX6kN>N`1~|2qWWg5c7<EF2^FC=GXROr*gp}a(XRZCP zyeuU|$>6iTetKv}^!^t@l5^vW0ny@^;6N+LhsQma8-AOZlHYCQl#P%)+gfeI@nUGe zY<J+cWps^ReGozt^Npz)@Zt4Ijc!rS!?tV=xd?A~CCUG{YXRIy+V7GNfR1bqLJmS= z7`Wqd*U@goQ)Uj7KZge<B)N?(R2PoPyJi3p`oDyOjzvEN!nED9N4HtR`;++l;ZknE zp<I(UL+G9rL(07aF!?YDgW+h5&N5;Q<eHqTZAj>@RBwFG!-$XwXF&O(TF5o|U(pb) Uy8v$kod5s;07*qoM6N<$g1HAr=Kufz literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker41.png b/theme/img/markers/marker41.png new file mode 100755 index 0000000000000000000000000000000000000000..ba821eee07c8d32206b0de68f2589868f7517340 GIT binary patch literal 1229 zcmV;;1Ty=HP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGczD9Fg7qSrFnM600007bV*G` z2h|4@5-cf)UB5U0000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Ce zNkl<Zc-pO2Z%kWN6hHU%bxbJjwvG=3h+|tFY?_I>sL7I<xZs~GW0`C^{jd*PmKbA9 zG!Z|zk26`~7dJI##xNsUwt&vDLC7XSoFh&;C!>r4r7(~}p?_%m3Z<pJp7S29EwA+9 z^d!IL-Sf`*y>ri>d&^*Dc@(i1u@hlj(n*MWh<3zqHYb)vmyf7Jyj`Hz7wy=%0m_U9 z+3>GW7;GLdNYR)Nm*)_lAVRqa%Mne*hJvTw-?bBtR9bk634;@Lirr$IPX<HKXdh;u z{(cw6LsB1VYZ3Nrgj*3E)tkynFVs|X^EwlQ*djnYp7}|g0HD`HASl7nt2f|^V`Lh& zFCuK|gpVL@y;NRS)qJ=H)`$W{135+1L7a0q)Yt--hny7QvxuOu^!mdRLqXMdH81m3 zkty2;9mZ3?znX7eXRJWYNm3JGG2++<&s9N@sgNbf=<CIw*8@BKMFtP)UunFm=rJ88 zLq7ZH`Df_WQK|tEzL2jM%MMpq0HU#!W1DjfrowX>WIfX!*n9Dc{4OQvb8y=hzJ6_9 z5#>_EpQkI$8=%Bkm{EZ9z5S|PK3RWBz4b%_%oybpMP~SA-1Rs`Xf7!%!0PEzHs1LN zNU@m8x5B(0F7B^ZlL`Wq78>ZuBq*h384c9XHvqNUwy6C2kG~18S6Z^xh%tqL2>lb1 zlu_A+zCk!(*{ogZ)V4WJ5lyAiHr9TRA6%pmlrFMPO~b}B-~99SWtGm{E(2dU%<o~r zP;A7|8IHwVKMdfkuhGjkyzU(tNlAZJ2~JJ(;0W_a7QDFXAi@d6*QdLz;0;PVy*QeJ zV;Gu?@Kd+CX>}gqNS1<1bo+p%e0x*vKCYt@VLRj$feI<`w|;D67w!)_QL_u-ONJ9g zwA+2N2Zy|V<7?X=!+rAHgrXi!T)V-(wb?0ouOdd}pwmn!2S3|9z9RyMygggX)hA6- z*5<+4-|oPvE^7o=`w-o!EG#pfM2vKfP1NowErv~axI%o{)<qF)Q#1UH%WW){NW6!d z?=v!y<@=X#vkmWF?}W%glmk;A>UHhEvbn{@4t)GlmD&|Dbka8C4Se-SFH5$PEZ8Eg zLr!RQKA_ddS!=ZdAtm_S8EX&B&qvat<nUQ{4?SE%bp0DblCvYTL8-+t%0Ms5hsS-l z2YwnIm*1`Al#7r&n;UEcOU2MZlih)1%jp`u{xF0jO*h9~;K%Ee8ogzhG6BuG9JB~; z`XZ6QpY9p(AZd?VJ^)&CIfxpB#L#=!?b%J!xDby|f%4Dcp$SRuU<>VzCgiE<MTGw= zVV`3*0Kq7Yd+z8~OZZ?6|9-fY8?ax?cr}EcNhz${I{;%^#;YL=MdJxN%ZM?kWvtaU rBmqS7#`pdo5fY&bls{B6TE>3^*>;kwccz;B00000NkvXXu0mjfLp(F6 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker42.png b/theme/img/markers/marker42.png new file mode 100755 index 0000000000000000000000000000000000000000..8ae4c443a2742c3220d43aff2aa102853fb2e7de GIT binary patch literal 1291 zcmV+m1@!ufP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGdLhEFg7qSr+y+o00007bV*G` z2h|4@5-dA(<j!ya000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DH zNkl<Zc-pO2Z%kWN6hH6vb!AXmT;T%&bY)}zbXk~AXIwH94KrpLWa2X72R<w@{)utX zME1cYesCsB{Ggi}Go#Z;re^3AfgrO1WDu3k$ta^hDXblZ(toslh0@Yq&%Lh?DfAD{ zo#fa1-nr-e-nr+Tdv7^NFApG|M(jao5;_ra6JbD%r*h&_=yDMah?nz}%AyAgH$j<3 z%?$4ZLtt`yK#WAa_<8~H9wL~DP>*OTR_E<~W8WUA+gU+Mv>2SAknEOXWI7Op%jR+J z{XcJjJtz*LwiaPdMYt8wS+%*W^ip*d(G_Sph%N!dV#%LW@Bm6B_yZ!;|9lmGvP{gP z_9=vECE-Ry?;(9zW%IFW*dXvU8ptSu0%C-~^OsxU%9xc#_!uI<C#K&jQRh{DUHuGM z7n!ttP+&Y4k5rNJ0?iK8oTh3@Sd2LF=Ke}3(&lqA8U1?kM;C!R`|&bI@11Gb{lzy- zN5>JD2ej&3?$qOt(CK<w14{U0u2LvFwxa?d5?yv~x7uJPG@lgI@#YRNxx8RHQOCxY ze(7R9N4IYw_vNUHXf6f(d3dL86O?H3lM3+V;P9GN+Fz+><6^?D%QgiNkAn`Q++C!D z-|UWuXoR|w{5-6lV%gEN5C$<Cg>=$lnPg+(#vDn(^H7?vrcYX4Dm9nXK#fBqP`iCg zN;3aq1Wp>RvFDm?<;!}GlL#oGZ%P!CD%&_T3N;nwDG5&+dT_^xP@q!5J5M|+DdU9c z<hC&myM5rG3SR0W<IF4+p8NdYuO}+qZFgX9%^;xNx7Ag^QpI!N4TZ?fSvNH?QHJhN zH0t<a1o!#|C37SVuQJFYKY!3az{XSi_rf9l{n8}vn&#07&KF+v;9Dmp#8Sa$XZwuc z35aB6aaIefD$2WPOQWU;&WFjF-hS2?2#Z__TB1K{D)hUWY7Y|yEfKauM&W58dGf-K z?cAkXqgK@HLwMzIA_#-oJ9l)<<I_C1Ya6bUWF{1p@M6nV?kkg-Chu7U>!p?JqdDj@ zxxIBf0oB2+`n4yGEIBGT|NC_~(`O9h+hIh%JheJu(};;~+f?nr(qh<*hbzQZEnN`6 zG~*)2ue5W~c>HzLe4mtw6yN_27u)z+M>m8QBLuj$hkAqI8aKbR)QOLutVwN}44pQ) zJpNDr8sy|wVuCHwHfDu3>uvh>cFJ0%A*2buaLzaY3k%^DQ4;u2>ctjB-+v*ba(-ei zAhud2IZz7h@VMo4!>^NeHkZyR6Cw3%ZZwS~ilKlevjw*;q1R}~-4Ie~>cRc%!|Rha zdh0mN1T<%I$VS-X4Tt@IJ6+&L(g7zs0NOG+2w4az!{804`vBdIcv8=R^v~h038`Gi z7CI1#vt2WY2>oBeA<LW}0uj31Ge@^x!rM0d`{9&sz~OAh>mhVciy`UW0kGW*!eAs8 zr)L>u3}iFT);3i92>HhM+=~b)p#!8pRIY5s{{VudxOdbseHZ`$002ovPDHLkV1ly? BQ)~bL literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker43.png b/theme/img/markers/marker43.png new file mode 100755 index 0000000000000000000000000000000000000000..4f70b30a0919c0536e8e6b72eae108a3a8133584 GIT binary patch literal 1281 zcmV+c1^)VpP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGczD9Fg7qSrFnM600007bV*G` z2h|4@5-kcmA^!^i000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D7 zNkl<Zc-pO2drX^E6hGhBc1&96q$804aotuo=9UGOs0qnTm}ry;B3t%K_J_vA7-OP| z_=o#*CQJN7H#N(A%xN<<)Xgy<WJnl$kWGq{QAUAMUZb@10kmJCw6xcAzK>Q4ec;?l ze(k;I-ut`fp2xi(2g&7e#9qX1MD~(SK-@*NB8Czz;u7dG5w(bSlnO=elN)oOFk2-~ zyzlda$>jzi81i8E4B}ISFBPE{VaQV{pZcI=HykX|v3xZeCzna{7Q<}P>w`M;5ck=i zcVOHn^rE%~VNOK27136{sj%RDWjWJqP;(Gk1PF)Yx0LY!3I)u11vq-S1uj{Jr%+pl zFfAv11ab2vZDDc!{z_OU=gAsKDRLQv8H0Uwjc{?$N)|qg@bXK;ALXl*#XnWP%+^FE z9Uo+9&)L_?+2#$|+fj3j)I^wvc=N;OiXm5>#YM?z_q;F90(au87)O`g3A?`kS=5!B ztAl>08`P>y?&Ig5q2Z$x10sAOQz0+hzg-6q48;~VTgSlepNli<NJ9&loF2GwxEhT1 zDL8^Yq&3yswy;OnXXKJE<@ob-ktPT7v$Ns?@Iz1Es#Es8bttY+q!5XK2CdwctAT6d zww+|5CO=Dw(UZj{y5|ERghG%^ZrdE<|A8W%q~Lid$Wl>D%}b%?;u1*T+YdF{wj?F2 zFf_np%1rpYtTd+MIEjD=rzZp<F0%UG0jSb#PD*(7(Ceaqt1dK2iU`9hqN<eA#@OeY z1{*1OKIWT^C%^l5_hpeLp>ia-MMvj3@c8}g?v#sECSqv!heEas{aEYk6yiiy`>u$n zMBCcaKZ@k7qxZ#rX+fS?HT46-+;m{UjjA>xoIreYqQeMoufUcEXQk*XUWA>wIk5Ma zOCs5~ua<#tF2Ii8>=Y9NVTp!<LUg-Ir`=(wsbDe+5vD^*;VF<jJN$bycmCdh6*VOY zPt=?sqSfq~sUCDsXTP!I2|OoDO(<8u+YK$;Ig^>3_X=W!)XUFDKDcUfc@FXnGWKlM zuD)ravOWV&-Rgql9mW7<5u!6Xw9;Xdh~f6JiJCp=qfHde@QS0$<zTWq*@27ATqqKG zA2q+lc_P97zv5x_?_Ft!z(SA#xB61AZN0(GEiSfU^XpZvP2!<rCZ~J$^j|$(G?hfb z6lof?LX&lrdY>eWRT4sS@R^gwZkV4BEVGiq7oFYIXh3xQ7ebO#!!ur?(K5n;LM~n& z_Z%+xV`N+$OSUK#A+4;}oBEf6Ap?Wif@RC-8NKo#gd~RR<2IPa=aUk>afmzt^{E!5 zBfRbj1ZMwsIKhRa-45{rXiBv}o`#SZdhR$}rBsaz;jkT~FNX&vB<aEwDh)=&s_8-a z|1V*$Wo8z<K`Qsu)~%IrbPPW~9MTKemu~V}2wjtcUwU@{#vTTtFBp!{T}F)Fbd%Gi r4aqDb`r^AEhJ{3E1L=dxnQrnwFF>#gd6F*200000NkvXXu0mjf1u0cj literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker44.png b/theme/img/markers/marker44.png new file mode 100755 index 0000000000000000000000000000000000000000..f3e965f4d8cef4add68c9752cf577ef1f393ba1a GIT binary patch literal 1195 zcmV;c1XTNpP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGdCbDFg7qSQ8rT600007bV*G` z2h|4@5-k+QF2ZO4000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C6 zNkl<Zc-pO2T}%^M6h3!46@}8eRvrkD6&3$hV{q53CMKG=L1T;<MI+e<A2!)!voR)a zB0lJ&CMLe9yPJ(0qefz4#C4YyLR5l8B`Wm?C{myl1o<iShqhBFE$!WNW+>a*X^TH6 z`I5QcocqnW=bU@*Fi37+BECbcN9bob3DJtENA##oVk%rFq5|<#mR6hd)#61^px4Qc z?|gnRJDeZ|LoOU%LYzVPQVA9!s&aK%8;)&U59O<ic%A`+6E%w8beIo&eQ?Xt!_GZ_ z1p_{*9oaI3MNM!yqM>9-LH>=>5^h{*U=W%H2#4c8sSyCQTJU%!IQ;K@_{Z8iitKiT zIaY81;>nJ}g5v6fr7%wvC>ls<q6Wg8!+~2haHrcw5q^vC3Nx>d=jpPFub1xRa}raQ z4;qZ;%AOLwbfJC~GN*_p!Cb@-zicXo978sXiqY3|f4u_i>~C>8aXhBOpvz<@Hh)8} z4pR+Ca9gHUEI7ET2p|}momgk<hY|loLSP9z&e^we8UJE_Mh@kY1ixNwTm*UgY=B5) z*6(Uthw4fbc${OzDA(l}X|$FEjd|HwSUt_Gk8?5rQYe%lmW&5Mfc$J7JsAY0)GV%n zD%(4uY~`|qdC7QLgDC<e=pK}$xXM<xcfsDGr7D8zJVZF|BHEQo+n72WZWtm$P`b!8 zG75_?T>k&-GnH251qLp^pSO-Wh%%ExqdycH`l}Q7`aG@d$SZ!95w+;EDv!ISx~rGD z15-|<8c1*u@#onl6F9vRk1bAG!)@rB2=LQSn&k#SSfiz&5<S~nRJf+9Y&X|XiDFtv z)dVV}z`y^yj@@|EWkY5o!W9iCh^V)?#`kqQ-TM7&R^WPgYC%y8Ki<91u9+>Ayj_Ss zIp`P{%E3dk!&NSD$k@8PF!7{`+WZW-`1A#wZZZXMv>VYpn}zpWhY`Jv{exv&^K)Sd z9<C66Z|R~4=8-Xe=uRCAMIuL$xgD1YmG9rg#a14<*9d{BAP1Iss8`fKW)suX4fyzb zLTZy_=#+WP>G|Vj8;iD*Y}g{T-8QJTy`|Af)mkMHqy%5OU}}NM$v{k$9L_hl(8FCs z(}xI>UF;qAN;TF#23k=*Jl@zH@Stx%ewS=gDnXiAU1{!|DTW5BELPmMoUYM(A0tRs z^=M!S+<1Lbqu2CMCZIaigmi+BT!Db+wS5d6DB5C|4}jWK6T~!vq|o-t?$|=RaVi`h z0p-u(qXo%cU<+*tM&w=7hVXx?V7qnP1KuEQ_teqNRq$;;{(jh%o310B^IQZS!;)XQ zcL4f7hoCPQj?h^~ir#e2>Dq?OgNWYj&d(7c2@ZksLp7Gp`9Jn5p{QBwrkMZ$002ov JPDHLkV1iq%7-Ikc literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker45.png b/theme/img/markers/marker45.png new file mode 100755 index 0000000000000000000000000000000000000000..866650c5c85278ea51aba32e5142548a69ebea2a GIT binary patch literal 1299 zcmV+u1?>8XP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGcq78Fg7qS0}g$000007bV*G` z2h|4@5-lDk`zv+;000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DP zNkl<Zc-pO2Z%kWN6hH6vbs!WN>-a!uBW%<GY6!YTjU-b?aM4DViPOao`!KV_7<HM6 z_`$_bGcNIiZW%EXBgTfrtZs^cWD}9#$R?c|ql^NjFp$#Hf3$st{-M2|`(E3%w6r*P zl3(7t=bihz=bm%!xsQR3<zYkvq83pY)$xeih(5%0x=BnLT^^zZ@piscTJq@jZJ;ca z35Nf8eW15HfDeY8I6RN|6yeQ8Sb@-%%JQE$v8NUeSF1=_5jw|7M7y;xS@d|}f?=BZ z{I8oZ@8!o(+l(-zBdkR9H<l|E9ZiiyzO{&f&>BEEoV=uj1&~U??cw3bFIV7a<IECj z_aXF&gbyLEzF48G>pav1TR4__0~v*rK$sAC?Ls$Pnle!jpF()p=;sg1WchX9H|-~z zA``a{67=WWR~pHVt%X&nIVr4zC`BCo;OROjDJo#V9}w*6>WXviVDYU0X?aJ`Enrd< zt?fy?<dYN3N6+krW551>1c$BE!{_p(obphW3LqGY8}^#!1hPcYS(b$7TeUU9BEmvA z=isiLq&PRHgvOE*K3Of_24#f>0Fg+1a{K6b$}VGs$9LD>Q{o)CERT7-L{3MKQ9^lH zK|W?r61Q=z`hgFHQV4HZ?ZB}t)N3w6@fU4y-E0*<piWUBqi;p5m}(}efHY$h(7bDB z3gI=g1vKggXn%PhEC&K`yl*i6jbTIrO6XeP`J~Kh#wOu_YDWs8?Y*P$dbJAFmF3Y8 z*rMAec#7z$6w5|8Zg+v1Dp)oitL<mLxwrc1b4kRKs5iM-i@-AA^!do`B|BB=DZ_v- z6f$3&z_Y$ZDwaYlgR#<xzE`((2;|+<cZIPK7CbeblQWFVA8??mpAs%0zCJyq1BZtv ziOE?nZTp{xDtR%ewO!Cqu7uBCcow`Xesb#SuuvEXV=NUkMb{6gDr&UNY9gU2N+_YU z!qP;t<jtRYnT|V?Ce-XfIAiVv5q$>d^1&&GtMJvDM{u7cGa)C1V_jF6@AL*5yq6HO zLVOcUXbk?)+ntA50y%ptD^fd6OmcJJ?6n(kYDnkDks2`^PuM!sMa0a&+(PqSMJbeH zbA|A_t#cgcEjIGTrCuf!iM)@RACn@HX8j*<vzm7=4`81N5@1rBdQ0D*%*xtYKfbo6 zgm!}noz&YL?yvqHWn!fy2$o3ClnHuFLfL$rHdh-E(g2@7qZ@(MReyq)1il;|p)XyC zq5nci<?PI|hwnDdG9cxI=5Ys`!*8?m!nchkWg?_AJ2m==Xfh<AH5l>O5_*kZz8^v= z+QE4<xUf^xLhqiYk$}!j6S5HwI{kk4EvpUeNIGH_8bD8`30xLJ$}oD<YOklKF%S-0 zK>TyKZ$c_Ju!QP^5#iK~B7FasaLl;u22YS4_srgHmhkQz{(e}+8*n_E@n#6^i@Z;~ zcL3%d1fe$=j?i9489mvIvy}}MHzIc9J066Gl+X;~50x#O@xL%7w1b()64w9#002ov JPDHLkV1lC4P@ez* literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker46.png b/theme/img/markers/marker46.png new file mode 100755 index 0000000000000000000000000000000000000000..74c814eda252ec035b943ff59442dab621e31c81 GIT binary patch literal 1296 zcmV+r1@HQaP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{yqH8LPAFg7qSBS^op00007bV*G` z2h|4@5-ly6D@tGh000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DM zNkl<Zc-pO2eN0<b6hE&YW21%Qy2c??$F@3{E(@EBm@FBIh8eTSvf-4>WPfN(j4>Kb zWPfab&SZ)H;Wn3LM&}}#E<>jXh-?IrjZ7&{Mi~W4%Rov?zi9gkrC--`-fJ19rNz0E z{Mz@<z2|q&*S+^~u)I8hcmc5;kssIbh&zaO#ArGrE{!f1QHOY2A(v~OTDKOo`AT8p zKmGt1oG#!)VK=^>M|_O%XCf>?G!!ZoJ3iR89cs&TtVo5<$)w`ENR&<a{BXrM%6;<Z zZJ6-$1E{S*7}F7MMs!qd&=y~+u43u}6$jx6Ks1`Xq*MYRmxI^G!;zn_!A~a3G-{tm z7#0(*LEPM1qAhPcR1K?S67mKzicAVo#^9AJ&2V+ZOddXq@JZss9~CJT<=<4l$W}xq zh7VHo=fcZXY-2%wDQb?Bng|OKZ+uu$4jNS+mms6n3(s5t?&RkS9P=1{ZDSj(`ScuU z&t8OIO%_lobGf6>JwwAss0Kt>nJbrR50&ZwLg5ADR`WR60<%d@Q6at?9Dy5$4`Ri6 zc=MMI!REl0P3)1?IU35P41ac(sn<eLeqK@mzV07PiIT|HD{^7ydJV9;cSL0@25R(j zn??=4PgtKO57k9^3ap-V!O%4q1U?*2AvAfs5J7@%Uwtd2qu1sT2P6_G&QsEpN+On; zOKPC{fgz~bvMGfyi1~HmV#hFNl#ch?yY4qMClU~$XOicWDqBA=4EuE(Q#(Z>HpQ!D zI^qA8)gBL<2{}!)jegMS0V^ru2722xtULAP{ng`@E>#ySSpdC4xB~%pXWB_B12J?4 z!eQ$VL%7#h$%ToO@P(wu-$@c)U&i8)R6brL?3%`53+D;WyHM3Zgp-IbPIl|T<>T4n z;w+V;6+497zTR{lDjs_j&g`uO|7?(*xY;8#2GuQ53M$bb`*kH-8*273DU}GTnNcWQ zPQniV*vehHJ8VYHE`&SbP6*L%bk7_Zae49&ZhaEtWSI$Na(Juh8h6oPq~yJX7$f!K z_$UXz8JzA~34@$Hn@dtpnuM&*fz!8o;Y7DSh;RE4J&B>E37bM#I>#q#_7oSw20UCL zx+HX&3=B30d+ll~7mmf=L(TU|nMkw#Wem3d-L_5$&W9LqsfT)9`web362XlOXH!zU zOoomd94_y<zxugED+z)v(lTO(7V|xNJC?Rq%Men6&!5uw!Q5PMk(UfU>*=G1CPept zAtX6%nep+>rZEoWGU4#JYj?u+u?b;pIipO3WZ7767>XA|3JpdRZd*pzXxoDjk~DNp zSiytWCpCKWC}jc~GZ|zf>~aT#-oNb*a3X1+T{r+*G8xFS5E4WGZM$<f?MA#)Y#@F) zJTM_iFSgL`P)yi0{fNN-B^)r#c)=H<?Vj1Yl@i_?$IlPDcmob*o4gW2=M*0h?;U{g zhe7BMMPqc95u-2L<ZNw2;zcBGeAmP9kO-|Heo#5GP5u{tin?99(z~?)0000<MNUMn GLSTZz95qP* literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker47.png b/theme/img/markers/marker47.png new file mode 100755 index 0000000000000000000000000000000000000000..d0933bc2f42c81cbb95c384be5af67b820dda535 GIT binary patch literal 1269 zcmV<R1Pc3!P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{yqH8LPAFg7qSBS^op00007bV*G` z2h|4@5-tO7&=hO{000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C` zNkl<Zc-pO2Z%kWN6hHU19j<?u6;uL57~uY>Sx^@Lgk&Z&Xbh2M;^N|meK1*Kj4_#s z_+g8mX0pUDZf=<~#+i{NX6O_Ll1)UiLEPwuKsySQ!eBs4Ut8L~LTPEQ=f2kmExfik zcamS;yXT$ryXT&B?!AvdW_b$n8e%uXnA8b~0YnF4Ov#BT=(LDN#0NT!rr??Utx#gr zi-r$EVX*RE5TY?34$mXLK!mapmLZx8^}6Se?%558c2?3N69%VNNp{O|IvWhZW&0TU z@^&9gg#;UF8xVFS!U{xZZD~pIrTSWG-eMvUTLy^7)2CE%02&Phf&v`=?K=GG7@tG! zK7=)ua5JL&^|F$xmV@=MNzJinAgicV5T_L0x!ej@Mx89e7ZE`&`T5f#y{_tF{Tp;c zWYY3Mh4Fm<RxRDO#kd1C$HjRNg^2e*d8rBtOa=mxCDESEUVP>PxWWrS8$XotbMnkO zUi$e_^4ZJPaOC$t599DGBYah>QI{OtQ3()@tr)gDCq=R}=Ol4pDGC+eT!eh>X3^)s z_Hx?T*<Ij|EbU`UeqpD1D-;<G0Extk^M%2ojH~_n?f~$M5jgfrwdiBkYsqs3X7=e> zMrbZF=&*XK6$dXG3$d6Y8B4{vJ{#yaX`o?yxuoPcC^qQXn~9T3P0|{u$u_)dyhd(5 zn8gMcpsu_W@=}5zL?U2>{%Ju-t89~P1ol^MQzUG6-WQ)W#f7WN1QjQd+r~1)`(cJD zIH`*)t~tm*_1)_1Db=;OJmRzZ$;Xq+CEyE(>A)P%Mpnkq6^_MbejdiXj(L%*DOWVL zx=id|zxXUQ86*YnnwF7qf))1SsFM*+BfdS^V*zhapsB@ClH}6h37uBlhM|QBJ<;7O zHU`2Wmx7h(*8a+}UCj-3RK-e^(n5;Du|jh6y<ghNrF$bz)a*g{<Zz;h4!dvuz^K=6 ze0$f^xK5g#P_2O@SFe*Ftag^XHxUy|ow`1jgTJi2?+`~JZ*N7}`jbYM$MWFx-*@0d zk0pYmIz+GhX>G!05#wEx(+zvEElTllh4`AKtJPq2dFZ=W+DR;t_!u=mrDZ~4{vUC% zO&?wB!gC@@fvi8&8#`{2h2`Z=d_B7^wHY#W-0JZL&fOg(aw~~~Ez&mXgf^+Uk15tF z10hTB`BRpDSX_*xL`mVR-hTFS718rw2$`H7pAQPHjtK%9wRm{kbMx@W#FY3glT$WA z=GoF@9ZnWQ1<iH`Zd=N((Q6Mw$fWtk)C~CX`ecpXI>s^qE!iA$5#I1cB7uM09^jF* z-z^>hZP^^uIS3iUV4s_>VY_iD9(RHC=kU;kOzvO{)kG8Gt{Fsx|1Y7<F&}_nlx_Fy z(QTCQ{v`f>xTPC#D3|d@2>DqdEZsW*laGQh6pbg?S;iQHxr}qQ4U+&uzVW?}B0@$u f1JVzbCztWR!K1D6re9hk00000NkvXXu0mjfpKeU> literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker48.png b/theme/img/markers/marker48.png new file mode 100755 index 0000000000000000000000000000000000000000..fec42ff4911ef51cd60ae24791d85cf072894443 GIT binary patch literal 1296 zcmV+r1@HQaP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGdCbDFg7qSQ8rT600007bV*G` z2h|4@5-tq>ZwdVX000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DM zNkl<Zc-pO2ZETZO6h3c17;aq)bR#a^fC7_&E;xm#2@w)>BL*qKxr}H6iN?ejW1@-k zhy28Z#6JQWgHbd#_`wv|mvd~41zFT}!dS<;ty@QDw|4znzqYPjdp+lU*V?XKJCTz- zx$iyqp68x>&bjx#94s#z5zirZBIJuYKjIFe12LM;h)bi(MbshQ%#%tBA1zo1C2|=* z@o!%M^bRNZLtz(o&mlfS_%acy5%oo~yeHn>y%UaZFJ&qPIwuhe^A;j(%IkxRhEeY0 zKX1W=&p&|LYJ?#j;Z{Uv<))J23z|x%T%+J1yZ{i1Brhoz0Z66b@%rId<5jp~G)<#+ zKSG~K_z>b|mAa&&p+*C%BqH(#GKxeD5ys%<i_LIpWQ;s~3gHzk4!^IG<yCyEIlxv# zCTt(X=+F5>m2C4Gc^PU>keUdK5U;)WbOjVD^0^optzLBYJaDHzjdS!`?NI*Jcf5|; zUW*kJvRv+iXLix>G0FiE?#q=*N@~hV0Yc%paqE~Ftby4ir;fL@gWm3f_F4_!zW&QK z-sZ@*Eo|-ToI;8v5k9$HxeiqFe1K>)Zv1usV9G9ugk=B5V!pjS?ci;c=w*4Kl2nfo zp;DEfhuIUy4V`mA@Q1@GgvZOv`1V(mIjIjK5ftak=u06IQq3h5kal1Qs<&-PAw2v1 zvrwj73kQB|gnb)Sd_P`)oIpT?Zj0Zalv(Y-FdQ!3oI?0&V>=j}ZfLD}5w4ppP<y3K z7>F`FMRY2Kve6AX+%QQBkx)fC>ogRc{_@||7c+f%WQ=dC)EoG=X>=TIIB*35><+~f z!%PfafpB>8=OH}ntEBuyR`(W<n8dyxUtf?E!(9)r=TA+;u!(aA=bfnPBti?~i&Nb? zaC-eLF*!@+drcKjLNTOPtEmLvY>=J2*~1qG!Wc^hrRa~trRp8^)d!iFQj}0aX+=bd z6tPz>w{jQm4pS_4BU~|eLWmB7Yv#y^(=C5#$0N8;mYGl@g*Te6a^L6;6ucJ@<D^d9 zAI0Fh-r+hbVvw_Ut2*_jiOK35IP-fiob1*Gv3C&B6B}9@uqlM8%WSFMTU-R2@N$L7 zlC4W5ptsst?WI;O9F4w%nxB#)k!JlLaI@OC+qxh)A7a3zUg~unzj3n*3!V7+SxRV^ ziO>nX-Rb%KuYN98O1xl+v|uf^jNPN&hiP-Q3?T*h+-Y4O%*_Q8ykzi6Pal0WA-ewy zA;}rjjMv|69OpnP;V+N7HV3qiPw->Q8D%0Q%Lc7}XfYXLs5cn#*fM%X+wO;ur2fXl zB)IYUq(X0|vx|#lGRQ`F!xapAZrkkOK+--Ne*v^)GLU2;B!>Q5Hpd=1jq{O+6@)*B z`z9pm#S+>Rit?wX9})P!gagJI4|qd#+%tQ(Qo?&?{Qa;AFW_Ld$txjrO!))Cy8~c; z5QM%^BuaM~F?zF2&Q>-g9z^WLcRmOYiEt8xA1Zsc$^QWQueJAM7*B@)0000<MNUMn GLSTaU4n}YQ literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker49.png b/theme/img/markers/marker49.png new file mode 100755 index 0000000000000000000000000000000000000000..066ec8fbd3e6753ec4ec9af74d7512e91f85e5ec GIT binary patch literal 1314 zcmV+-1>O3IP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGd3VCFg7qS_d!`=00007bV*G` z2h|4@5-uBkyo@>k000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000De zNkl<Zc-pO2eN0nV6hE(h6@)?+XeNVZqB1~T40C3huxO&eWg){jbR%10wk3<pwrtsw zu|MX2bD7!x*mQHoWpT#N#8@XXAxtGeRK`ZpAw>$5uOiSwKcF8_TH3pF-fOX?rDe{O z{PONS_nzN9_ndR@eH<(;Pa*aowjk1jIv3&|q5;t#%ZQ7iOF>j2-c6Osl$)|LK$R{R zCO&YwL1(do%j>gY_cY>5gfkvt9zv5XPkr{|ZCjwSD4*ph&^cZz&YSnMafcHw>ifBG z{=N$%PFELdD-ilvgc}fzrE68W=gUi3<|+jTzIgz@KXOT_1VAQ(X@?6A{eB&;7zQU$ zyBnbkCtQiRy*E!)TywA-R`3$?2I2}Y1wUhO;9@OY?i(NvpGP<(!QoGH<f+By%3oy5 zA``a{QuOD{%cX4Hs`NtC93eFkW+UGIWP33v6=__Ej8@P7{tR%(epuib#`x_xrvcg5 zKf;0PdT@I@ppd6<pY3>#h7VB=h;Ubmj8`2j%m?uL7L4l$j9_xlL^yT$k0xjxGlRNp z4`_P&;j7j=g3bPd^=x%=l9FOcgj<U;Gax5D4ImI$F#e^pJ8G9r#!=z>YEi!Mt?nBT zY%<ZyXOx+w+DwF*IccewJ?Vm>b=CtepD&7VKENXSdh3+fkVqgmO-?O^L`*doQ9$ah z9;hf-A4RzR$tQ&Gh3>xK0uOh@aUuZ`+DBckh|H?HdSPGwx+ubLcfSB@Qd8iIKedpx zG8vNj;I7c~2TnSbV%ccBEp`|qg+#0(t!V<Xj{p2{^<bvAu2I7H`)@+$Tb01$+`^32 zXv2Zc?Pm8TEHp(&49#wzZ|pbB8my2BhOFv60U-&sRVU91<n5+Op#t96R3Mz1n%+Uq z?wPaVltv<?)ctg<MGIDki-jj=v7FkwO9+0+ub1F(@n-l4Yu7pBVMlMb359_$gi=8% z`fFc)-bPJD8Iw|q!U7&sB$P-Ad%e1zJAc0y>j$<WY$12Nhz7lFYJZ>Ap8m?lr*WSw zJ|QoIcdlON&g%3Oyq6F|qz>O7#h^)Nu~kYKB<<Xg7k$%&BsmFAw6??17Oe++Wr()W z(BgoNBL<s|qZK=Ivtcb>uHav^b)E;EX_CEmxt{X{0w1F0QbZ(TtbYMFtN!3xGkE5_ z47lh^y{h3BH#0xqh|QBxp<N<EM|6|c=~H()xlkzyf+bRi=eKTPn0lYb%+(Tv6yVdx zwH+`!>k0Fc!FO#P)VPXh`7eYdCkCe+u3Ezo2Qpr`Jnow<aARmh7+cCH9wAxQsC7NT zWJp1yH{h{l^o(A66hacs&5<#%<MT;{UfWNRfSPy)i3o4nJf7))%#&b2(hjq50o27a z;1duML+4$yrG!r7oZoK(@z3Fr2}#<qgi5>t;nZ{@-2a!b%P=(!4lf<|_}(p-aM*~? zr&)XfyAw@b4xwe-<rd!^0OR8zbb9^5b4QGhM3WPh4aqbj^x|6|hlfNs2I3FZWTMIc Y0;IjRJ}6MmNdN!<07*qoM6N<$f<nGg-2eap literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker5.png b/theme/img/markers/marker5.png new file mode 100755 index 0000000000000000000000000000000000000000..99a6a238f433b775debbdb3e5e9fd0486a5d1768 GIT binary patch literal 1249 zcmV<71Rnc|P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGBF@6Fg7qSd*7Pf00007bV*G` z2h|4@6D=g+HJI}N000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Cy zNkl<Zc-pO2eN0<b6hHU%6%b0ht;2*sBe>xJX9&7QO-NWWf<}p$iHnOS{4uk{7<JJ^ z{KNgJiHU#c7SSwAoRJXCaC10tZXyykvN>=Ax~&_Z11Xfgw)BhjgZ6sPd+kE$Yda?= z`Q_bv-nqYf?)kXyF-R?sAnFiR2z^ZFLyRDL5EE*Pn2IhJ(Smp@Ppd6>eDfwS>2<Q< zKVCnWB?tIIVJA+HB0fcU(-D>;Itq1pPrkpi3ief$@gf5{Cu$VCl?b2rc;SR)f_?ti zRhaequA{aIVNoO8is-E`F%`Er)^p<q1B37iKqQj5rA7eIYQgRCLGv%?;q>^_B5HRd z%&Q3>LR@^V)KuNMw-K^LfxLmVB5EMQIlOwJ3r>wql7~+tJVNaChef))>hBw$=l4aX z93M33&$lnt^G7%6%TaSk-Um^L*#E&Z)lgu_XAlS`tee9`6t^Bv(D9bHl>vsspvz?+ zJ-Y)A{Q5^TYFf#|UAbD(w70wrAQVn=WN=|oe!f{%DHGiziwmyVvuz9Cn3G*Vu_VH$ zDvX<;NS_Z7jiw|#xT8w_=(xs+UOrJ^q}g^NG#2IOVfHkt_Sb9@h=Kq$Z6{&l7sueT z)s}38?~C(wG%^TEs+oF;qg=8sKwCo{9Di{)ECqvbu%}<ujxmLRlH!{4`BG-q{_cJy z{#YVP2<$4y=GaBll}gzR-jrNmC50eBD$&F|$Pw3sMquFd`}xSCL^Crn^!dYK>&aW# z>si_)qKaefz&`s5x+d<(^QLWE5)H6xI&V)gS0L!XSubrz&8;7`NxPc2m-F1LEC#XT zkyJmt83r(phlfU>uEYeb^|hdjZ;Wl|4TSg`r+;J4K=5nS{18tCrReg@Wu=uJO$}T_ zDN-q+wMPXe@YjDn%i3?;o<z+~gfkwH5TeK8T-r0{aOq#Ed<<55sVbrt4xBm9zB5}W zcrPHPWv5q}Pz?SwOU``)hwR#|rO7u<TynDE$fY6pWMD9Wvj)VKd&yg4I**v@o0)5> zEiQx-yj&r&=IEjb<^?-{?bKNojz-@@%})uDP}%=SJZ#%L=lbxT2ytM^72ncxfi17B z^y08JDYPjfbjWOXxWD;(lqHlBmPq&5By>;8CG@dsu2K+EfR7#?9EQ7h1FO8`@a2_Z z8k|84{1-x!BU4KrU)T6F1Fa}u9yjo!_<ed-ewS)dIzn36*=D{KONItIEaTX=oIa!H z9)ysjqkq;4F1)p=(7Prm6404$K_<d}XCUCdX0wBYq{BA(0_aY+K+Hf$45L?VQVn%u zFcMh+<<H@P2}y>qgla-jxobud{{KsOeSFCco)EQrdhhO+@XieWe%SoWG`_hWgwnjv zuY7j^X4Zqy8;V5fE+a-yCgV(HL*hm($HtEJ@Q?_tp!`tTGa3I242PCZL4Q&&00000 LNkvXXu0mjfYPmlz literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker50.png b/theme/img/markers/marker50.png new file mode 100755 index 0000000000000000000000000000000000000000..a5c692a399681ff6064450c6dfc4f0ce80db4711 GIT binary patch literal 1321 zcmV+^1=jkBP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrFIx{jlGc_PBFg7qS#;HU900007bV*G` z2h|4@5-usVYu&m4000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dl zNkl<Zc-pO2YfM~46h5<i7Z8@+QY4W85d<t?4ME$ekpz+wd=W7%HZ+>>qo#>5YNLtx z!zTXGMB@)_6;0E`8VRW>wt_$_l_H^%A|M5}g_dVQ7M6X%KIlH!9nYD&OLuuJwQ`a# zbLZSM-^`rXy$m*&hY=-+e1s;Tb07v0ZHV!W7O@R<v50EKn{g^t(qj+qgfxv>82)2- zg3e?HhsSHd=}E+=2zw;L3`BjhI_`=0_U6N(+-#nr#luNT*>1(h=WKR3J2K9`_^Tgg z?2hZGtw4-yM3{wWFHKKNtt&6(i956myej}cU-*_v1%OHgOEw2o{dx%+#wHg~yAPoY zC42z!=W`ip1&s&GAxcuvX&|CVO7L+Gubyp&^P>}V!lw{6Md0-ZDeAa_AIqQT_e3UN zAC!2W?_VzEkL=Lopyrs^2a$|8{QlDgkfe=g;Bvz(IzP4Mbl7@c{T4XAUZ`wng{JW- zD9cQTGv%eAjaRb|pV<RPE?llcvl=>KajZ&8JD8IV;PHyZz4HrVd?P<k5D`c|zS1Me zPQSEIj5Mb;`*&sXgqY|g@+A>InVYy1QZ(@Zet#I@(LMQLrz8@R%G~U`b6k_Cj%AN0 zC6a145hkX@$6@r8s|&9gOdu%~P*{5o623eI-Fk!2k6D+*7#*+;&H-&x<JI(}Rmh=c zVF`3qKM%EKCE{v}ZZ{ll>y+aVxWQ^%LgtLg1QZnOtiur&S>rp0#Ykx(yTB+L<4HnE zXfDLhv5KfF<+SM?Hd#SWil9L-hXcFDNb(i460~A;2a;XP6$~s+Cm&oekxEAl9heUK zb2qWpqg28$_f#FQ&%S}?@!Mivu`5%Ilqw`=hDYztv1%G`O){&?ZAMi)ZB50k88VoP zt9Iw`*r+I0fD!9LKOXNJgp%|$s3|Q1HE#B7>O(NNV201T`vuw8FBF5@>*KFC{KhOU z_qViHFccJ`?pLxi^6D$fxROG&CIIV1L4j28*M7Ok>TcYcK+Rr+C73H7MB9jEasQ~< zsyUGND3%6~Oem?~NYf?ugKmVJ_aZ_hsWQZbeDH_PWI3eZ5M7j&vA)v;B_<k9T<wET zx_VvYN<`0UAlI1AAtpPfXDf<QlOY|OEBMx2U6MdIZ{(HdFEX#+|1N5N4)eqY`~QTO zt$n+-1N(%B16$wJtJ|)y<&~9oe5_gL+D$xkOlLGNefRee3#O6~Op%t+322!R>GaWt zvD$=?9DMS4?*QDn;|e(?hp&1D=%ESG^<M}{PE0P^9L-}>3{;Y69yhRQ{5~}!-fgxh z5+SW@tkvBN1Vah+BV$;$oIazi_d`fh-#McPD|T>7^k%sqHbz>o6=A2v<yyLCFoFq5 z2MnSCv_x7UZ9zy3L;VI*Ayp%GnR$@^9PXQtqz_Z5(Bl_XGlX#dU&8BSi%VehP`O7w z-Mtdtp2pt~gL9dlhqr^!H0N;2-yMMI?I5&!e17U>#Aw^fc&oG_p>O4K;Mu$#CnQ2W f$UjuZt&IN#nwiH{V>}G+00000NkvXXu0mjf%BWGF literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker51.png b/theme/img/markers/marker51.png new file mode 100755 index 0000000000000000000000000000000000000000..a1c1f5d3d4ccef7390822eff424d20c87e15c0c0 GIT binary patch literal 1273 zcmV<V1P1$wP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFgYMCFg7qSZ{nT|00007bV*G` z2h|4@69fkb6n1I=000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C~ zNkl<Zc-pO2ZA?>V6h8O%Rv464?D#>T8B9@NE{sjHnUJtW!rVq=QRe3M!ylR@W^prH zGWKKsbeYM1Y%^OHN21FJ(a`BcAVfzPV-g*8id3mm3W5|$zvvhCgZAAy_qL4MFXlYS z1Mhq8d7pdU^PKnX<sh{^g{VVRA(T;{7jYBOix^L~h)d$jK{O){=E~&-&pf#fG)jdS zc;Dj#z0D5ZV90^f6NoPmo^*tz2yLMv_xX>vR>9tiGFGI*<OG=%w-jcxZV$8@#<{Ql zx(?GG?=AE;Aq>d~Hz4}zOEkr8jrB~uR>eVR2_PJff2E8Ekjug4_QJjkm*Bi{VjjKQ z5&D&cParP8TB@n;*wYAW1fH^iv?j<P%ox1Y-Ua8zOqAh^2sa;n{ArOQxBBPC9c)!( z()K}y`JCKY&z@eZEJx1~auZ=8V*e*ERYQR)kE6gDEIxPayEw#*vU;ukg5<+;s1!Ne zXWO>WqkW_S5x$%w7c_gy%K(BQaglCrUi^QcsuEc92O`LZ=WS4T`aJZQrvA+o*X-J~ zp5<p}6;Le&{PRMEdL0xg^OgmO5gy)B6}QXhPM%5JdL#mB%<|a+HT*Gc-b@*)i}G?& zJ=t>14T}u~o`;&&vylIF3tTl@M1Q$DA5QPAPb9_I;yeY7RJ<fL7uP^n%yZD%PzR^p z*bWPU037Ze5dEVE-i5a-%93itaS{P-**W9&#wlz4aR0IZQVFc-6^}4HMRY2qw$Y8+ zoM0vg&&S2dqHoO>WU0w`4jeuoyNQCK>4~A=7Ydor-odlJMlQxww6uwB(KUWgoHuP+ zpPCR)O~>5{&gl=>an?tKGl(CL4eG$|_A(NuWydR`01etss4LOHm$loHli@M+Ec)5e z%R@9fg)qjXAc?NNSyo!9ZE9dLk_g)&t??uz&))mBhikii*My#}2uG|qK}4^?v9N2* z?o{rs+z1dAB&7**c)#-!_mkd0#d{qwDJH!lglh1+-safLGsvplP?~tt#4I}tj$gS3 zM+bF&oHZbZmaFhk=qzHQe`=<wwzv>V@N$LlLt7UF(9c=fJLh`1P$cpZdVYzkM3VQP z!OgZFy4Vl?K#&2Kc&Rt{{>d#aE%o8>`-IY_sL&C;)$aP??-4H6O0gE{9y39=No=Rj zlWLWMkP3X_Tiq}`c;H`=C4+B<hH21=82m4UWXC5K+}<wZBnNUqygY8>rSaS3wD>I5 zqI86`vZGahCn|;vv<4#{TSh;l7axU?Ogk`b1}EO&)aYH~R0-%vw;&VYfWz;1-LP1} zhNQz5@dD^hw?N21NDL#_Ew&muje&4@4x}%KM<yh@hAmVRjEJXZ1mXL?gtv?fE^r6w zxTnu<wS@Pk@bkmsTcq*m;~=!ndVSLG4!~5V;MEX%g5e0=WyI*t6r8DT$XtlU=-B=^ jG9*GXNFP+zOu_#EKOCgQDDg^%00000NkvXXu0mjflY>=l literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker52.png b/theme/img/markers/marker52.png new file mode 100755 index 0000000000000000000000000000000000000000..fa3612867360a56884b9d866645d0a2ea035bb47 GIT binary patch literal 1326 zcmV+}1=0G6P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFgPGBFg7qS$(5D300007bV*G` z2h|4@69f>1$MdZK000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dq zNkl<Zc-pO2ZA_b06h80Uw}V0X?D#<dr5kL3Gi1}Li6k?QFh7Vah|35+rkO5o>YR%a zV_e)HO-vRuT{MO)aYjNkW1Aw7$s_~8Wpm7p(QV!M9ECz@Y3Ud12krHo`?i%1Xy@c4 zPw&0wp8MQ$&pG$L6<}$37*UESMkEJyPQ*1tJ7RFLMZzMw1Vk-jPoh$p@yM!l$Vpal z!!d^owB~7WdVLlg)*(JaIHD115RI9t#El0w6+?AlKFdl$=Ol$}H|J*)b_bl$4GM?< zx&nHK^Ezs)5W2+(^AP9Ca&xj9D$1BTHAMj59Dv^+xurq`P%6P@cf!tJ&%!SQ!&9i; zg3!(<T#5K|t0red)AkBjA&KM-L={N^e#YRH6D@GMe~3JM5@8pE(;sB15;y!%@f^D^ zGWqzRK!3h_sf?{oO)fyq!O&DDV)TpB62?9`z*y~DY;5nV40RD8eRoYITc456$JFZH zsNrkso`05fbaV}Q_)LOQ%Gq9!58(Cj9eO6Gc>8*B5g-u<$&RKr(3&iu-Br!oH-GEk zYbw{RVQKMk85Bzie;zATr$bh9QaAx2!u^jIN1Rf>cPDQ>LA#F8aezPo)T#vG(F`^G zp*O5257k*oiI_b_c;Qu}86;7JlKNAScH|gbG#Dd@n+HaCyJ}^;tU%lBBo*~iL^;($ zL;+neOhSEmDI9-s3(R;tu)n=4JZJNGaoo-O+t#lBx1a@?fR1b(cRC|7YudMqw^SB# z2u$HQA|G=&AvG=z4n6&ZtPC)&3zbdJO|umYq!2}zFN)x<@sb>lPQ3w+_vv^zeyk`1 z9x71)i_68XO_|9=OAMVZpU-gW7T)z0O1`l0SOW;3e+?~zclfw!-5TB=xzx+s51-ly zTQv{KyW*{Bx;-pd-JWS2oeMd0C|i}t%<t_Eu#fifdMi+;@p>!G&0&*ozsBnjkGY^e z?eFgi<fW!i|FE17Stvypx8-Y!8mr2gg7jDpQAMOgimc}6GeX0S+e4_?gs_Ba#fxay zS!OExr>)5^7p<kc5uH#{!tUm?!uMJo1@8p}uO-Di6N*8H)@-R38N_YQ(=2>xLJ}Vb zM=xB4PtW(baa4}D6i(zlrW1(a&e8Fz&Doidi;pY#?>V|8fp*fwcAP#V_yU1<QFAgP z5{vBr6CSqyowiPJd%O&Ug^zk|d$%w<H%A%$W<h9|h|oc;Y1;Pf-+e-;ltLxa+CK!X zL%f_mUNl!r5K@5azUt|PyLa95ykzjDT#L<!^Z$jA<mm8>-PtlQB7jojkH-ysG=3k^ z^SPxKMI)q@P4(Ja!DJ|)Q8$3smeFUl?Li1h8oTiRTJiHqh2Anqk$|RX3t|y=S=?^h zRig>aNZM=U4?t_Q1yT$`V(7bKG?&nA#Fu&!<bMtiOh|GWOQ^&f;J2m^;rhRX*9T^7 zVE58>kM7<565bibzaK`|EcI_L2cdbw>5{)Y`2AiELWkEMptp<|?Xiqwl?{mvF&pep kFNcRjXaM;Sl_{3-KM4}pmT6fA&j0`b07*qoM6N<$f)R&VtN;K2 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker53.png b/theme/img/markers/marker53.png new file mode 100755 index 0000000000000000000000000000000000000000..19ac57184b08ffc1d5ad43768a239a81a4d4fe14 GIT binary patch literal 1333 zcmV-51<Lw~P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFf|}8Fg7qSs6zC300007bV*G` z2h|4@69gL*6)GhF000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dx zNkl<Zc-pO2eN0<b6hH6v6%b0<Ko$rPsRIXyA?S$zG+_~fUqmKD+y)6IP7^iivOnY> z7yr`4WHED#b0H*t5uzC~hd}0#FvcVs1II@<y7B$7($Z3(w5%Vr*K^)$kvE{s$w_|g zyXT$zyXT&ddmjgz%M*xvL>5Br*Vz&Mh*reNMw7S=bm53f#Cs7+W$e?BM?;cYB^pjI zIY4Kb1H0Q}#bFiV3&c_|LJguWUKR1|v79V8l%C2GqR=@(A=#~X*^F%o&gn<E6J0l9 zYRP^JwIvAsMuaJdwu0oO#M+_)7PBLY1J4S8*DGIA!2>9juxPVG#qTX}VR&p7wRs5L zTEfQ=f4!(l%5Eqvf)IfxZy=}$3h*)pZ=7p_^FyQL;qwR^?|=PCf+`~Wr=pkGLy<|_ z2L<}`-D?Hx$sOu6)Ep1IibqU-m9J&&vtx`^e!!;Re~Y0`2GVy|l(Nj&XmPwZZWq(P zQzp)-die#?(bhHO;l6OCkW`wM3gGsLD|8!Y#s4E&8GuA0NXi>qKxekX)v{vIrW|8P zbBg!uW;??|V=0yb{ydi+6AcOK$khY{2#@Z~lI?Qv$YI%7wDb8OMitII6B`3prVN?n zVN60~1ZGdMYS?SCfWY&ht*M8dC#&JQ!6YLJj1Q)#N(!`1j8xH66fdQklNHc4gAr;9 z^Wpnf^I*Z{f}^b+GQz^TMu>|Dhm(2Qe+!zE2#9e0p4~3Xtoft2;Z0n<FeTZ)HM5NH z^5NIP=vapR_05vP$FPg2E2XmO9<<DZffPJ1o2c-w8YU=YdTK{$C%AQ<1FOTq`e!Yq z(h)<u!{ag3-@#rFQHqA?)wRHV`3*FUOo-!>J-fw!&DkGCee1-uIMyb{i(S)jcZ{2N zy5>;TMoUw3s|QS$eHEE$EIcHH%f^g#VjNHP^h17f5}YZ>1r;uq6SoVxj3zkI)hm)! zV~j(21uMVs2WNG<zD1s&1F4`CUEiOo$*3zSWC}_VmP1hCDUm!Y`|ToEd;9JvYH|?P zKyciMR=sthcxY~3eIVm0>W$!pf)d_sY~g;;=_z=xAjZYGuQ8z*T-I5vhj<2|xhb0U zCrv=YLgDna9{9Yo+euY~xUrhZ2TW%WW9^goN^&tq$&^j+16vma&>79_;Q5Q3$LISP zHNVOtvBCPk;AU$+ywna(mzx2%{!p)My~-`GthC|dnRTJvBtpk^=DEeQe-ChhQW6DA zq<Lr*nn%TQ`gFrwZ9+%^t~%A-2lwwg*Lca`>l=Oa(1_^#FN7qg#};h%rr~i8l!AD8 z+{Q!W&+#eo-DZ=55z@?t8r>a#G89m!AI7$2bd6qm6he}^jwu7o<Ml~}-ZVmyfQDcb zwj%7XI-QHXCNo%&w9h0S0L{TB2wM;m!@y0GMN8f2@_LOReK|ZbAxRIGkk;)JyJi64 z_`ig=h8GsW=B9QJ?%l%@PE6wGhY3$;l)>#Fw9MEY(!GQC_jV92xxGF*%ZSmomGM?( rL$Zii_CL>UhlfOH0O^Cuyp{1k3Iom7bPRB&00000NkvXXu0mjfy~u80 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker54.png b/theme/img/markers/marker54.png new file mode 100755 index 0000000000000000000000000000000000000000..209ee01912c4a39127ba4bed1aa0ea34021d5b08 GIT binary patch literal 1292 zcmV+n1@roeP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFgPGBFg7qS$(5D300007bV*G` z2h|4@69g!%#Y-~)000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DI zNkl<Zc-pO2ZA@Eb6h8O%b|4fw*71YTM%d^Es3GVUT|$Cp1Q%^&nK)hiu^%%_j8PX& z#2@bGj7$8XTSm;ph_N9ttD7Pq*+e8bvW?D-QAUAM7)WX97yW{M(7vAcZHttC;oM1{ z+<VVG=eg%SAMblPNH32g8W1&z!kEsBxQFONOs8_<Qt0v!Er_@C#p2>8cJ2U0p@bR! z?eT%mW(RLD<iN*^h))roOoZhKO^GD`=@0hTz_BVNDV1Vyf+%XY7AA{s4_wkubD!V3 z1M?p57;2jl`c#A!i2lYhg}kGwk;t}7IS8!*gu{uS6!8FJF}U1bIR48u_}MVCgxZ4$ z-A2O45Z7NUSJZYMZGvqAPosg1B8VVN2)uTw8?H<lX@t)r+<ffyN2QYd+V7hVku8x$ zmk%P0=i65r$*%2%m8dz*zJn-1ocQp$S}2wlaNrNX0w!PH+MeJ~THaw-8kPJ)JD7bd zOedA(aUUPp2Pc31{W!jEr4c@#Cl(Y(E0qAj5OdO+m)P~Knrh}0C!^A9oMU9`f<8y~ z?j}XKImI-Wl<=7<*$yZzEC7f^5(rQ2t4UgE`{;P00)1o{<x|Bn`t&3vl$93bWA#Mq zHg_#H5O^Ny)R&>?i#E7vvM{}U)eqiKC^?^KD=(1HJ1HM6HJ8vpH%w+ws~VvF<%6&s z2*9bnL8e!aO+fSB-6?CtaZv(F=v?r66Dn(c?*zPFr36()Su6$C7~v!wR_;n>ix8Y5 zI+fA3(T>}kV4@11Pp}ikzM3nD)^oe_+&BM5b@l@KaNzLy$h{>SRp}_hfG-p>U7o;M z-zH{;Rc#&2xO@5mdyX%2bH&*`PEF_J4CnL*?5OIegbRqT&kkw9?)DN|oVG(RK&7k* zRGKbmC{w^^^#@WnH;$oa#ZS&$A7%}JFvLqiOLX(Fvb<W;tRf;>qF4*16`mH7CvX1L z%XQqJG@@od!V&M4Afiw2SUxgkcNV@{y$9DrG7}17IN5cL`%b5)$$JSg%YxouLUZtk z&gMAA6UeErC{NyL;*y&K=WpDGGecTGKB*AH>si=jx`>z=m|JMBmzO{pZmtmCv~)oL zo!Ls>xYEmoB9Zq|^J79LQhfghT&()ts{^=C1PO4-n|e#%pWMpYT0h>lCZ#q_hED6O zcGp*bjdJl;VuCHwGi8JxBWtHmQr0RBAx-ebbJ`JDUG;B>lE9b4BlM;VG4x*ushpo# zc6+-GvmA&8wt3vgP2;!OdG;=yQzk;{*{Rk|#EKyTjoyG`OXx9r^<fC9Xa?s^;KUuA zHhT9o%>;C2a>zzF=<xepcP&=1A?b*PZ2&!)9E2={lwtIa#a2hBF%S-$A^PX=(1cWO zV++*<BW!9$5x)ORIA&OOfjdaYJ#%zhC44Z4zaN(9NjIL&cq@dqMXxV<?f}d^3PMjX z9HDy|WprmV&ek?mT!{F|ZhsUJQbH3%f2ge4jQ;`uw6vMZ7?>;o0000<MNUMnLSTaQ C)=LKf literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker55.png b/theme/img/markers/marker55.png new file mode 100755 index 0000000000000000000000000000000000000000..cb31cdfc483a7667bcec1f725ac65457f0d54439 GIT binary patch literal 1247 zcmV<51R(o~P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFgPGBFg7qS$(5D300007bV*G` z2h|4@69h27sncZu000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Cw zNkl<Zc-pO2ZA@EL7=F*aw`@Wwa~&oG8mSu&aE72R{vlx#f}4_ICN3_T%tT|NMqTzp z{<!!{6BA=}i__o|H4>s3ZVm^Tn*<4tY!2LjZtKS9U@Mf~w)BhjgZB8o_qK$N_I6I* z<Y~`+?m5pn=lwY6GDvR^BWe*92t%CnBZd%Nh_O_ISPCv1(S&#_N2kkwY{Pmm8T3lW zTfP8TWGDE;5f?r-BR)a+v;@tFwgP?569=|dz}~VFUYLiAlSH-OVwBH#eQ?Y=#y<P| z5={I2SCDN)SW^jZLUh*^n~GW+>bP-T9)rjtKs1^>r6>UCbl~y&Vc&0O;pFJV9I`bC z%W}a75a*sXn=0G)G(eUl&}u-_BoU&V!%N3H;Kax{t?+4tSBSs<pirMv`D4QleotcR z_Cdt;e7CEPKeEnHip;^ps{+K-=e1Rwe{_KJrg!+Qw_oGPB_S=3W14q9Lv7l+S;C)f z**eLzr?dnh98qTIpPf_w->4{uZ+C28T2x9N$L!v`kvDap%XbGuHMHd?%Z%%x(2xrd zizN-*|5QcNE>rS2#;DI`kLMfdX$uJ&3v+WYdg4-_%XS$gL4c~3<M7}YN8y6auE_&( zMY(!v<q2x2SyBR>x6MLJeJy<dd=1QpLa@K9SCdyXm?}U%bl>*-lOpSQ?{(#$(n8&; zLz9OX$10+#RMV#an(PJ}5rP2AO^naFRua?m0s~hdz=!5!qAaA)6Np4?$FF0pXX%uV zWk*|qefkx2jNMe88#ixE&tuiJ-<V(+VJA}EG&L2sVc0Hj+qb2ZXJ=)xN{m<^`s>iZ z5Y!f%;7DCH=y9^jhc+bhJGTRmasKMb-<c~I`Wkh9N`!(!bm4^(b9q~1Jr^lN@f1pH z0tHgwul#zNwO+k3j?7ksE8(0lqRZ-<-#y}V8(u7blxjd*P}0Ghr_Qn;ELL*fbBIaB zzstIi5B{{suDt?>HPxHUD^Hq)tz83$&kw-Ief>dvsz+R03fNs;XAl!TQ@0zdiwd9^ z4_AoZwRK4X%dCUHeBv~V#A5Fw^GlK^Qq2D|Znov!Gd&Otg*mX5hk8@jUu<D<u^XF5 zR=75ehYngCPR}?046{TkDTXQ1IWi8N<4W3mm@-yr1j)h8hx!NM&Yj@0RdV?9;vh9n zA^QG{Alc!Gd9S}?bdrHiQVx%+csTqqIjy`)H%Lp6Mz*(DuE&ERLYs9I%a+qMdgguv z$=Z6SZQ#c1lM=mSj64DDS_3i(_PT;W&t<y<WE35=D+fTQ)&MDkASn!AvddLejiG3C z7Su0?`xYb{z!a(q$CRoWMg;z^;FZyN4|u~=?%J!nSHYW8`1xTEEKvK}Y6!|R{(yS# z;QhTCg1&GxMrRo*dNXy-ls04@#6rC7T#XfypbgXyDo3Wy{{rId)8f^kHr)UK002ov JPDHLkV1hv2KG*;N literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker56.png b/theme/img/markers/marker56.png new file mode 100755 index 0000000000000000000000000000000000000000..74ab0ef7c064cb0f989a8124dbecafedd0cbaed3 GIT binary patch literal 1362 zcmV-Y1+DstP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFgPGBFg7qS$(5D300007bV*G` z2h|4@69hV6d^&po000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E3 zNkl<Zc-pO2ZA?>V6h8O%mamqARyG;1f!Ya7Lzp_Zgaj4|Zj%h7%xPT05{=2SY%^Oj z_CtTpWXXPPy0OKO=`zA*WPWsl4#ynB5uBg`RgiCCl$Ms3mKOSbcg}lTLIsL*oaD*9 z_uTh9?|IMHy&Nnq&mamBIS5ry=RkBI8W8;p8F35f;t=JCcNB7Y(sQd;LYhj+7XCBk z1f6*T93HO)A5S8VA*Lb`W*};km5S#-+>!(PvNU2!0y-ziq;)>OIA))Mv)%pN=YQXZ zktxSr)RrQ;7b0ATxK@;&mRem>B&rh=IPm%a{QmGQWjugf4mP_3%6_>D7yAasQM(PH zn@bpr_-lJcTCR3a2}B7zc>@tekbz$m;f=GkaK3kdJlu+~^TF32rzjP<Ka{*8J`$O9 ze2}3(r(Q1-*CeVkQFD~-gGfdk_~^x4NJ@z3z~zQf41Q|G=`ee-{9SP4@!zg(fD63? zuqrkdDqnpWwr6R$PhQ##hc5qKhRZ6*!-6=ukhUjN1K{y8<5t5syB^HRW<&%MO2kiH zy>Na1Zp^p?4qm>-Y<8_*E3Sx%PNG<nhnuq0D<MS{KbwFM;o;3WVO|p1YDFAuTAehz z2?PS5R>pA~lhp9%h<*cks7{GjVD@CQhIfo+5O^N)s?NcRFDl`N-pKTQRvY+`VB>c` zLh@Iqpv_>C3~+5~yprw`cq!FfSOK-@4Nz5F2&Z>!gGsj=4mUJ0y$cgzo^inujG4hX zJ*#INoJ2rJwvIX+VVO0(e}G-7ETj-fo{-n%;hR|+*sHC_jg7%$i!7$0vT5xyTR~3> zo`<<23+@^tNa4s-Cx(|IkM9u{r&H`0H<L<742@2&SAXt4_Ii|@EzGK{2JW-3p|<}4 zdoEqSmR)yh*0AdtOb$uG(<!WLv^|5I)#aX`PNS`<xmBG;b3xgLOffDhip#}}HDer) zw{<{adKy#|<%1G8+xpa#&|{f|V=cGfh2$roaz`P^IbMA0;;)>=<^F~WA(RSA(T$y& zjO?1yVo^pZ!dOKVIxdp!zi@@CzSlE=nk@)Rs8&3PhHlH`uHFf&YIpXt*cxJFLO~9P zE?wom*L73yUPBDAxX)QaG5AAgw(R3Yh|XV^F@Ms8Bqkb8w6wve&8;qcDn{I#P2@vM z#}I>!!=t77smYLz!xj7w9bFJWXE2F-&tKuZfxri-`8g~S3+#Ue4_ozKeIw2Zj|klS zp<do_otyUgu#ur+UT7DI&{3Uf!uIX0PA*hROt3`iaMIKbuyQ)GV6GM+qyV2h-r5c` zGp;#aity#lcDlKQX#OvRBqs(Z?T*^MAr9mM8y@#?X#6%b!rm=r6p4^5wN<+N!DPsw zrn?W@R;15p{o@dl)HIFg!HN@{3ca?UA_3Y+21^k(SzIpL9is`%NZM{>1E4OFfv^N2 zF?8NGn)9d|@ta}*>CfS@2}#<pgz`KA)-|07=l><V+c#+gyNB96vUiV4_+S`+Ka4o? zQM#6c&^+dFO5YuT;pHHl^7sQZ%ZSmw)Z(SehQx-L4&F~JhlfO{2kD2(wAA8%0l=2i USYSpUoB#j-07*qoM6N<$f^Cax?f?J) literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker57.png b/theme/img/markers/marker57.png new file mode 100755 index 0000000000000000000000000000000000000000..fb166d00a893517100fc72da81b951140e52bb47 GIT binary patch literal 1307 zcmV+$1?2jPP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFgGAAFg7qSKi%a~00007bV*G` z2h|4@69ov4uv)qR000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DX zNkl<Zc-pO2eN0<b6hH6vb!?@;whom*BM3M^4VkhSO%qfIPHn_YTwMG^6OD-)b=e>C z&ldlhafvbN)J#U=%m|5D-4ub4O@f3$Heq8x*}CyLJ_@B@^b7hydp+m9wxiINIXTJi z-TThH=XcLN=iK`q2Z`ljL?xmWksj8$5rc?!#8^BdE{;xts6~8`Dwk(IwreM-)0N`H z8J7q27Av^@0UN&7A-+Jkk`d-1bXm&OClBu}g@eU~EIR|86J*l7l^~mQy5Ou~jQi@J zewcQ-hf!ODFvKG)Ky*~)s&g8vtC(tg1_yx^fM76oNf{3ymxIIUhPVH`2!D)DETFam zp<hk74blB#o_bHyfoj+y@Z=376+s3;#^8;!EpUEhoIHFQ;pD@^pJgjk_nfKT$L@(t z+CIq8pPyf?VvlT3FG9`H$WRty>g!4kW1k;pto9=|^Wi%Tbul3QTAipzo4S`?pgwIq zPr%1>3b~*@P*e!u4~Q%D%`b@Ud!;3CYTxrwr;t=^9X>x4{B#C(DYl6=`*-KF+K%o_ zyVqAiTYjoowG*<_(*Q!D7{WtkrEz!r{k1``EPLU|vt^=<N~z$U$W+nL<3y;+PD{n? z$)X0=O%@P%9yAT-V8=K0aK&hfj!_~`_78({iyUfp=SxbQo0F!bUIs6vnu{r*%f@+V z&{o3fS1Mr9=YvD-UD2^iGjmwrZqVlELdq&9I8Gv<7}{su?wHJ)KY2ImjT8cNbgXUs zj@W8)vhI2iV&Wo^vgx~Nv4fEmJP)fy7G8C$aMzOvdD%k`gtyCq&EsK%3l@6Q6GNvb z5HOy*g=Zb(LQ-7c2;A`>pk++*CK@XggVip!xfyAa0#8lT?FkMuY{j<@BAi8>I^NR< zR;Qa$a_X^Eic~v5t80eJTs3@I{!ElGyft_*RUsZj*OHeV>+U7hX~bwG6_lbYuNCH% z=xVe~MkxxHP(tA;kvx0r_cpHa#_e&`>_ylj!SN&74YtMoBUXF*>m`rU8Awhj$l?9w zi`*}I0|oD8#H1MaRZ}Pif9ox_gFJ(j@`AkeH%&ygrof5ISK(MspBLY>h~8)-*G!#5 zOmt4o)|6ve<l^ND!8KbK1klf$*_-FvxIifMDQbR;iA0?Bf5pu<e0-r3ygokzZvCZR z+kS~#T3PA9?vLw2n;=3*^=7N%<h3C#Qc95$X&o7dR;jp;#LZO#LJDx*cYOn}yzE`& zC4+B!2dLAG==m>%Bqt^oo$i*=Ne<+KczN8wOXIJ}X>lx(Q8GfZY--To3MWGbI>RU) zTSlMJ3-?1vqU)MAf*n7fROl^Z6bWcbX0Q=qm(A;STsN7)f}{f`@d9W~W*}@pNDM>$ zCX0qnqc0eo2kFn@z6nXLVhL&dA@S4<Aw2(=aCmgl0Zu<1_vGH)E8(3f{QWR_mZ*Po zGYBnnZjbcc!SDBG5W4)q5Zz_O=-g=XMrA|dKrDs(*3Iyc2#p~9P?<NH{4cSa#lD&1 R;NAcL002ovPDHLkV1nmsT^0ZU literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker58.png b/theme/img/markers/marker58.png new file mode 100755 index 0000000000000000000000000000000000000000..48798076182945671ffbed58380cee0182cddb8e GIT binary patch literal 1346 zcmV-I1-<%-P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFg749Fg7qSnX2yP00007bV*G` z2h|4@69o?t)Xy0J000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D; zNkl<Zc-pO2YfRf!6hHreTR<pf(6LB>jXH3EEQoIL3lS7#Q&G%BWN`^gTujuc%Ra~# z7e8sDF-A9?hAdGdA?nzJr;LFcK?yjJSGRTJxiSi+FDNbRgZ6sPZ6S0(nUj<Ja_>F= zdw%!c^SJjf!1}TSk&nnkDEvAbVgS*K7+K3mSVI?%C`Y^<A(O>EwlxM46>>iD&b%Ge zMibavZZi%m5T7FEgAu9_)p7EOCywpSgo9}*EItZ1Czbf-Eqd6Lbso-WMuac^?uChY z+cne{BQ$FfCL=BvBqb(P6%{b$mM8(-ivS)^;F1y%KqiAZs}0KPE<w%k*bHj(5bBkL z4<Y{Ar%KGKEh&N!sYttlpdyukhcS5VOaq)B8l@dRg|LeL&mYFiBeH%j+RyHb%y)c{ z;C_C1xqv;gMUje{<4d375ZW*Evl;vN7-Qw{vODh_W~d7Q>ATBHSVn9NA5%+XvZ;9f zS<=zbRkXw0aG5l*BsB%V<>o7NPtWl7NM<@95eLcP#uiW;%+OL=#M>jk|G{kz?Apnq z!$M=pmqhqvnlc9B6_Eg5Zvf%ZJ(&TgBodOm9SOYcn=x`5r952N9jhc&1`#UbBO@?+ zl4Zj_y%D6M2-%hAAo{D*(52J+cDOs0w-?8>0b{_q36XN@MTx#p3jqn#shft%!hHDg z#XOjGI^k$*JJ)~n+|!V%jE4Qc)j{s|cs^dvKfy;pgqBI0Eg-Un_uquq(^8-?Imzz= z18)!2wSdNCfu@p|;EHw<N^6>Z2403$L{;fao9-J%3+PB8im*~7{#C=IK6hLg8s+Ui z)pp+2kBp;@0A{<L4Uj+4&BV}Vce{1xZep#6$oRyx(^VjR_ANAw+~(urT|0UE__nP9 zKHT&0HeNNgx5fmE!)c;Qqot|16@z+XZdpbu3l9kqvM^#D=*JU11CXDT2&W2iK#q$& zgVF880Da!o%gHK>3LsRJutPN$1+&BX9rFCL6bcGa*DEQi^y=b5CZQ1dQ)pcgDUc$2 z<3f{Ab^R9kVlTqHlq)VotHwNgV8~=qyqf+f)kbhasSMt#za;#m){ygFK#X(0ub4tU zxS}?i4~h&zbCOl7Z<-|u3x$)NJ@83Kw*yCoh^xziyl3hZVysO&S)7v)2T6Fjg6E#2 zOQoQmHn7t3O@iC&{Qxy*13a<D`oH2~E8lBw1BcVaKv;dLm$&{YEG#Zw#_p+Au3g7N z$JGYY-1q+s3QMWP1yiIEbFp!hr_)Dk#%dixa&X0o?tZv?*Rf)k48FeFPn~*1$A2Lt zIXO0KwKWWn3m}v7%i}s;8ZF}!{M&j)!3fE+wo-l59}EdpYlg9G89k%T4?;*%-9DiM z3qGHe=nYi6xJWRAjR@P#4#!-d-T+1<?bq`QpfQ+%bOS<S80^&>v#A=L9?vxR{u~~d zkfaAwDBI=bRWpdN|6jsu!?SZ>by2wo-`)KZ-qzyphu*$G{TrJ>Xq>XyeeVvw-<v@= z@A7!*E+a<kMw2&68<IK1g1>Ltj2#l84tzgUhK(lw3whtuw6>Ty2><{907*qoM6N<$ Ef)4OziU0rr literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker59.png b/theme/img/markers/marker59.png new file mode 100755 index 0000000000000000000000000000000000000000..7c62fc10fc03d8d7b07421907ceccad65af592dd GIT binary patch literal 1364 zcmV-a1*`grP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFg749Fg7qSnX2yP00007bV*G` z2h|4@69pD@zh~J1000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E5 zNkl<Zc-pO2drX^E6hHUtS71=efDuJ#9B#;KhTyiiB^XE`Xq1SVI7eJUbY{``S~L;= zaQ_%Jn)t`u6wR{4EfV6gx(x&zn>Y|f<_a6ojc&YQl$Jh#K3E^L*K_YzCLN{B$w_{> z_d7l3ch7eo_bY*w<zYlIA{U_y=p2Y%L<?dlloJV|i$+u--iVRQlX5mBfJ&+0hPUia z(3&ma@OZ8Gcogv&!XAz=4WUj}#614q_FSmQN~bAt7@R1R>=t}<%4UaCx*_uA-&bJ5 z?zo29a)d4v;bz3el8vg=+OiUwxIT`6cLBiX3qDdN0LbMqXLCU1&ljL>aAX>_MF{Ou z!gYv0pGs5Z)$cBY2vK0sKv)rF;G+~?Jk<zi28LOLPateU;O7rg6ft=}ls!%FiA;KZ zkYPOEKUYE@S+C4Q%|U(+A{nvo{T+Fb6c<at<%UU2eromcAb(o*CX8YJ_S7|l#$bZy z)6?MivqcaWs~{il+y?u9`K=Pos#%1E(Q;9>J2M@?<K@m8!!%!C%gyFQ3`|~cZiP<0 z5o$_{L49KgKJV=2KD#nD(fFvyB$i7?xHT&=0aBE)0DgZE;el<rK~c7jPxAGptaQGf z9T?_5iHd0QSW+TWZDE9oDX}qFJ=q<{t41@3f&lq7ry>5(F}Q?L@wEAA&;dHjth7Pf z)K~@E#R*cWNl*iI>J9w0SdM1hZaC1=&h<MUdVsGd`v(FC`2THaA`!5n%uG5QL6tSV zvyZQ=Eu<8f_<E@5Nhnn}z$brcV8gm7aCoJh14e$!&Zbgo8%@7?2J}oJ2(VOSfm5SI zDIHrMOoFMmUV*+>D|kvW6XMZ_fYs@wz0+o9qGb$iPOn#g8mk5oa_*RQtQN=@-$3Kg z7=JF$*u+;=^$D);!iWvddDxqi!KbGF<_MW_xh-tc*wJjbm3>BYVda)g8XXZq@~~nZ zn8(9iy->VS1=S@5puod2Frwcl^ze0eFSb+;d|bE_oNh1OTh~miF88;{^W$PEScxuS zvu3NyOR0>NXi36Diogmf(3j7iBemCWV*kK)gmtl3Jct&Zb#~W)Wk&fz_M<o&G(4dw zhy4u~$O)~ECGQ!;D9`&66PANkt=U>3P>3wpoVNU?S(K<qIMUe#pLS?m_*9Cxe5a6i znNA@_+Qui#3sRF|BVMlHyX)0O5wr#q-E-y~@%sJmqUNWdOoTZ9B))9T+vnTxp72m0 z%P;k+mOse+!oo$|RxeBK3K=@6HCg7q>+U0qt;7XeqzUJ@X_&XuM<Hvq0wGKA(ZiY^ zxP9BTBuWZjUG8C<21LhyA!Kr7WY*?r92_Me7y0FJ9WRYvM<@7iD>;QDWS;dk+8cpl z$Uv<d#IdF9GkX4h2$`tcaWZD`24{`lIK(mm_2C>=BW$<2Tys~ACNLvukC9&hP2n8G zRR|eF-xZ@dpG~9N=QDux&*8oanRH<b<$L^mYWfh)|4VpnaCQ!C9yadbqq|qav2px- z8u9)^>0b*%^OVCWeRlxH*MiXQ@$t_cW3;Viyjt5ZnM2G6_LjAXkP+%Z`a@+}&G;YS WNYR-`&v!Kd0000<MNUMnLSTaO26*=X literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker6.png b/theme/img/markers/marker6.png new file mode 100755 index 0000000000000000000000000000000000000000..3a5acfeeb15239e07b7db888b8d42b70cdd304a8 GIT binary patch literal 1264 zcmV<M1P}X(P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGBF@6Fg7qSd*7Pf00007bV*G` z2h|4@6D=!oiiKhT000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C> zNkl<Zc-pO2ZERCz6h8O%b{lQi&ebZlt1_gzA%sjsG$CP8Ge1Hcfr&1d?1#q07^Bg| z`2&8+Fa4nyB*aLF1SL$7!X^xtIfrD*296b0wr(ApbSu4W*RSoaU)OVP*SNN~?L<!U zwD&#ld7pdU^YOlyf&B6i;yJ_ygmzIEMqEX7A;#nuF)}(8q80JBTB$TVc5fw^wHnFr z?@$D6ycfdJm=A}C5c?3JLWI?bHls%U_y?OdKy$4{H0jVePLZ;UC&cMs2u|3?m{0$_ z0#l*zHPkjC>~e%_5Zw){%vHx48$^ADj)7PlAd$#?rGf=eDj^UIL(A#&aLVDljoN1s zwxxtC5WhcPZLYKKYJ?JwC2ydha0*C>BD`{<9ZrsplZTrTL3VNaBa=p5_if_~;<Ct6 z+Xn^ubNJ;3adm~Z1~q$0O@v0o8y`MZ2L@d^lTEgOTW+>?!ivuhg89G^IOm-FcM|7x z8Wr>L(@)T-g>pcI^(rN2-c@4(h{kdpq2PZ%JPH?f@5C&J;mx1BGYxRfjz=FB?<p%a zP%Jt8*;uQu1e3NrHvuR_wo<KvjVlcxw!V|Q^<)zC=;eBY9)6p0ts@WhrgAlAPazvB zhd%&uT(th1@4)!wVHlY4<QlOoRF!M!NynyA&B&KHihwcY=LOh<ahi$D!TVjkvUUuU zA|OKlt#CMRW;r%h2(Q*!r2jsbTV~s$6yJ2&^bhlXaFK##b8Kt$6<IIH+6s<+k%)Np zHculPG4w=YG1rebu-8kJIfUCStEK<rm>iP&2Thp<*frJ>C*v0uyg2HnOi*)chunO9 z%eop-RZ_wLc0gJ-KX5;c_-0{W-(`5xcprTI;xkZLR+gH?HVg?-@%2;Z7@x546%|F= ze@f9G+bz{=+nTnC3Q7@XwxH0~8CKl=(^=-&^^tMZY(n_bwGu^i*?qG+M!kOR&b5!g zQZMDRrG&T6oM(>M>=eA05EGKqOH3#RzuI_TGb=*r)-~0#g)T{1DeUhXfKM*=3pm<_ zxRjpCuI6ckvuE;F)7B~@tir<;5?Nd4IIzul#Me%qWn#(Xd#L##BN8(2KaQI{`fg_r z2n$gWnB0nQ?Yh9s#pBe}2XaE2CqjE|9&g~_<sl}cl(0lPM#rIJ{3ea|$mS{!AqDu* z7yW}UKQAotQiRVh4bsCI#Kr$YNV4BK8w|HQCKyn1(&2I4&BHGfQ_@_%MTH1yrS+)o z#$qxQ&}MgF+lq9JcHRjgNn7uf3;cL}QlYnxQ6#`xXhAW;UY{TY{&IVON76yJbO3Y| zTEG<{B!;0YZhi}OBi=7Fkot1CV?vSvETJvYq|`M-h{*pXyyln<Krl+}Uf8?k65gD| z&kr{q|0u(EgOHyNM^g6=z+^Gw<q(FVi6ot6#274QT&!$J0*JZAXYbwckO*Cn`k?X@ aGyVs7kDb)4ooUSg0000<MNUMnLSTX^ltQfl literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker60.png b/theme/img/markers/marker60.png new file mode 100755 index 0000000000000000000000000000000000000000..bee16fd8671dc1e8ed112bce26f39040ec30f034 GIT binary patch literal 1333 zcmV-51<Lw~P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsdmH8vnEFg7qS+*FXp00007bV*G` z2h|4@6ALISU03`7000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dx zNkl<Zc-pO2Z%kWN6hF6p1xBG|)Eb(C!bTP5mIddW#w8=ppmS4}4d=*A_@FUSV>FtG zAGX9VF45=*-JHu}oQunJ89Il+HYPy=E=*tubc6AK;DEww3#EnEmiBqheQo7$nUj<J za^F4ooZr3ooOADe43?G$5zintB6K008_|lWLi8-=#1_%TBZ?7kXf+z+Bljgknl6DG z{ypgdt7r$e&+owQ3B+N<WHiDIM2RUu`{;X{H$q{yMK<ekae`X0n+eFnu1Pr8(ZfFb zvl#{_-8WEMfaq9^FcVRom!6h-CO=O$B<UIWX8;0$xl^iD02&QUxZF_m>lL`r-8YKb z?Fj2^!c~Yrp3O+hDczS3F@lO#15rg#LqL|{rE}$QzN?p3xCP--g@!*cCunoN&woz7 zD>7yKpvLu_d@)a6lcdW+%^^|~p$YNo`%mP6QJ=`j(2LtFEUko9pC5;`W2fM9-vH<E z`2FxgNjb1jzT&M%l0csj&pv$eF&ZwS91vk{yhcddmt_I)`MDzn{Kxh#s5`J1GwX)e zE>?5>M|BNQ*3%E)?cB~=>XXl&hu6xh<6?~zOCsEqZAb>QE)gIY<c>s^qK$`5DMpZs z--5w6i@2UhNcLx2{_UfW0av-fXdu;kA~cv2wU|A1Bs|^D37A2{4d4C%rlTjJX=E&- zCy5Q&hWnsWL26<Ged$$7s@a?Zk}!_qv;+q+HY1)Xc(<xn$wO!dk-W_6Go}y_q4SR0 zJtwn*N=g39p{>;q+2-iy+d)v~u@09_W4q{tAyR}4vJ6S{9F^HKSL=D}4HY}@<Cw$a zky}SaQdx<i2FqdS=UaHzV>H}ww`C1)&th^&avw1BcGueUNYWyGJT;}AeatC&?Wn4z z=+fcVwb{hnqV-vFd`t}6g4ykKjKksj>+rbge)wj`(~uk&2T!G@K<lU-KE2k=$&T*G z1+PCKzjEO+b4cE=X|8Z8C`H$HTQb&_6zr1Kl%jbFSRfPzrjif*a*3U}+1ZPl%?L-h zR(y!64#)VOF1u5=cilq(cuu2=pn=!RuCP<q4hr7$2wtS>Stb;N->ssfP$fg`w#<x$ zH%(aLV&O=A6MTHNQKC>H8p1>Bd8WgNzM6qM1=~_hkdBut1m<mB5WqSzChtFgiTQ)U zcTn@woJcG(|5@DZ>9;FuK=S%zU<)tx;;K3}H8Vp8{MdrfE)k(a)-n6U@#}3YTuNN9 zL@K&^p`!OT^$sqYt0f32z$d<JY=P-%Y1S%b_@beOKFSbR{|h0>k-l-4yS%%ffkxn$ z$4#3Ezx5CDv89}%5t3)=Y3r>}GSpDg(T&Gerf0PBUI<A_Y6pkFiO(k$dbx5RmPT_} zj<D7tNfUqB#y~{U78}0+Dxx_E%McPnTeD5vN~aNTnGsO_9PXKrqzOxCt1rk;O&h}V ze+h4Nk57QhN5?(->h6~C_5l8V*zhSpX<rFKaoFuq-W`B}l^~q-1%h;!5u<B4<K@bR rgx<=j(6@ahR!D?Hp!`scEob}>UKh+?1AsfS00000NkvXXu0mjfz=v|p literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker61.png b/theme/img/markers/marker61.png new file mode 100755 index 0000000000000000000000000000000000000000..c069ca905adeb43d7a05cd5c3c2a46b9310df50d GIT binary patch literal 1290 zcmV+l1@-!gP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsgnFf$-6Fg7qSDNfou00007bV*G` z2h|4@6ALgnG0&<1000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DG zNkl<Zc-pO2ZERCz6h61TWw3Vbpf)nQDg!DTN^l@?CPYZY`4PehOmt$x4~dB}Mx%-2 z2mHi@M1Lqq2qsP<!7ZBtWt(%bj4@cyZQ@vAg>~)NT({D%wY}ZCeqGPG{cxpU6FJG# z-uJxceeQYB$NOFeGRsqlZHV;<c}&M4ZX!AmBk2|~X>|FBTEquZiA43xW6MAzmkEY{ zdwrm{JAexWoj5#+_yXb0Mp%MqDw0Vze7b2p)Rbv?wE~@E#ZkLZn4k1`q0unHeEG)> z8256wP+N^Kq$6C7=&W3!DLzwG$tw#L3<N^};c)UR#UcQS1l%4D_FcFL=Z)t3sC^ls zpHH|1aqZO-O}TDQ6)a*!<PBsMRt#aDhc_Er;Owx8JbVG+5yhrISIea3KUTfQFNiF< zeGsERbvr8gm4)(B)Epu;5f&ld`>diIREh$I4Cip0HM(|K^3@5@96trWna2`5<kjnq z7l1kPtq=}{ET1{>;`21Mk8(hSTk|EXW>2XWAP^K5QNZhmhT-bo-I!Sp_W#-`=m+lG zVO#xqXfyr$0$Q_c%_@HB;ye|_lEt5mWy)osmKP)vKxE6M`LJ=h3i#R&6KkKVYe?OC zBmzqGa-B*ESH>;Rl7~ulffTbRPS_Y-ZU~{_y6=C2qGNT?KV=j2rOKsHzoRmhR3w7p z0vSCiMA1|;Nd@G`INE3Za1diN<(q*|I=Th@(EfMetuk%e95GCkfCya^9G8??RuoNs zeDQUQHG9S*yb$Yn+4K$BU0@+ajHpyum|SuqCNmk%Iek9<CMFC;PYhkYV9@f*9qjc* z62WGtcBSy&fXN}*`lLEDA$E=Ku9<Q9=NvfdB*F>AcSm~qz~SL|O3s0b4N$#i6};Pg z2`Zj=9FD#6QhG9ML+^~AKYXp1Mn6zK<9neL{k~IMvbL#uJ1?dbVV1KBg@F<Ad(X8o zXKvp$p=J}p8LyQ9qQl^v-ZkuS$#<`P8UQ;YtFRJyzxg6_N^hXxy@41NoStVwF}SR^ zJ8MKd<ZW49l6um_WpN%Hz1|Opd;0u1+K%W=MBxF`Nrbs;Y@&KgaS^P*!xh30Y@KC6 zKV{?JKHJ6wBax3$^K()p(!9R`H+%Y{_Ac<x1$bamOQyEtDl-!bQG*{(32lZ59n#wz z?h}6wGVxN1mq_cd30h6}Xml`bt}+l(fKPtYHvqG<{&`;V@OAG1Jv1YF{tF?=QS-Ei zYcY;8AYp~W<F?ffmqy2hxlD_)5z<QCY5kp8GQ`kiFk;*Cbd9z@3?WHV_qYXIczsf# zw~SCEK$mSnF2Zi7-|zm*Y6Clx4p@Z)pf%e9HU}Xw4BoKXH&Zv_T{8vIFNcRFB<aTz z+8l@oT{DRA{a?ac#%VWr0@Uu=y;~^Zy)pd!u;NvKGV~}2?US4@dhY;?<uYCfp*IkY z&{;-|o?OPc%7(;^n29|*9)*WQXo2Vll`WU?Kf%bV*O88KPXGV_07*qoM6N<$f^lL& ABme*a literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker62.png b/theme/img/markers/marker62.png new file mode 100755 index 0000000000000000000000000000000000000000..3d7a8b246500ecd4b4c0494b7f1de6734c95ed5a GIT binary patch literal 1346 zcmV-I1-<%-P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsgnFf$-6Fg7qSDNfou00007bV*G` z2h|4@6AL${RayxE000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D; zNkl<Zc-pO2eQZ-z6hE(hrQ6!AmD0%Eh7>p4P(lWxGm=1}8O9JtU?K}9`vWsY;};r7 z3?%%ci3uhuN(g_5M1l~e=-eg@7dAHt$|jB#*0Jt`jdd&iTDx}Z+O^kn?rZDHx(;zC z`Srec?zz8v?)kW{0?aNCBc4O7LS#gAUc@y-1EMF<A|Zh;4N-~MrBW#Lk1bjVIT>nh zczetTM!N&NfuIv#k03rlj3py9AgVIes@1#Ku7a|HJeH+F=R~<=Hx**To-sIW>Jbk7 zc@+l7yw_1%iZCT2%tc%%UYe7AqNJGVv>E||Qvjh*{FZVVfI<Ooj~B{+IS)UZ`|hCj zS%h&qVJhO{Mng_v^|lgNAj-%aNGhTnLX5#nr)%L%cQ1MP6v88mOn;cARuz6%@;tjI zGU@mrM}LmKSj?7bGxAZhkJLn%iP-smQ6cCx=>i!};xWsr>ml{C!;o|67@X@H;2alk z55vlDz6asculd+zbAU#jChU3o37Rga91!7#G=-S6Ek6$+5abIf;3qq~p=HNb%&Zq) z{q+LZZ^uoHHYXT&mhtiRbB%n>mPa3952Psd6iX3*))eR#LRLn4ECEEeSd|8A7VCjk zz8O2^;2Y(9oQ&8t4h#W=!=OViSL$`}`=I4<@=%wRuEOleV++kLH%y@+9V_#zqtG^D ziwj?kxu1`VQd1;_Oa|HMYI@Shq*M!W1?0y#+9&+57h^Nx8;5rrnqzbB$pF5$@aN6T zm;GDNf<!=st|6~CF0-OcO8(0Qd3?NVvBu_zoZ_lgDq;UKPfE%#<GN_sw07EEU?D|> zC|{?IFFBdCd()r=zU?sa4NsO70}mC>Iek8M?T(#HjKt973kEGec44nCP)J9~la6u< zlS8s$NfsYJztYafJw>ZwqhX1(8+J|g%|5~9pL9^CMV;86tyVGndlg~!(c8?syMmQs zDWE5;=%ELh`L$OVW}D$L8QR9d^TDogu2w_O2d1|krRa~%d4?5LrJI<X^qA$OLSYbO zY{yS$g%dY!_M&Dj!WpfV0HVR<9Np6GaAj;=u^jhi$q7XTRMeaoju}l9ycZC>mgLh+ zC<cv2yR%HjK)F8GF!QE~N{SK=UT%YrFSYvdZ4=^3bV`1g=`f<NX<(>yeRd`+#mf~! zcO6|6!8l@L+s~X8g5mHxsQDo-5()M{g@--<R(%urCj$(GnU{KHLyIszHANXcG$XXL zL};JU=5QbWt3!yEQnW<sx_hCn_ZGeFO_-}$2r0lvzHDuWi3$HSFByCx)nX0e(tjZ& zIoLPq@z$FA1yG3m^0;BO!*BhAd~UWy$p~p>^>JfYBpGt3GMTY$8GT0U?}w12su}y& zg`ZC<^x7VZ1XL$mFc)F7)9-ixZMA_NN!zXb0;o&2K%9e+7&@+6?dzx;@unUD>7T=W z6Oy!H39So+dDnCxeE*m5x_Q(Mo&dFba_{by@YVqS{jlPv0Ht$22<^jOpY+`U7?=;j zu|OzHcNsBy<}#kEY)IUQ@yN4dK0G8s3rK&cY;zg^15E<ccc|f~kN^Mx07*qoM6N<$ Ef^d9cc>n+a literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker63.png b/theme/img/markers/marker63.png new file mode 100755 index 0000000000000000000000000000000000000000..c53ec6a9460ee47fc52c9a5a360c1568da568cdc GIT binary patch literal 1346 zcmV-I1-<%-P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsgnFfkx4Fg7qSzR}AP00007bV*G` z2h|4@6AS~$pg4N~000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D; zNkl<Zc-pO2ZA@Eb6h8O%78r$sR2G_oj%_H+EelSZCL|+b(CH$`aE^_HA1)@w7>y?4 zkL{;ROf*ralPrr1x=a^va|pP>2t($=HrU4KMu9^4*h)*kXlbFewAXXqwn#@Qb8?cW z_x8N!eeU^u@8w{5c@pt5Vk<%()HxBi5v_=!NSn9_x_Cqt;ysyEn)=M+DUcygV21am zU7$8w!0GW?@$WIjVZ?Ma!c0V+GC}t2$9Y?!JSR(3C82YIBw#o16DJ(gP^%f@zPxr5 z#;2WkP+Nx3L?YaXXe(Nmk$$SUNK_;zap0W?@cF_YDd7R6Qm{LmQ29p-oYU$iQCo;m zFD6`r`1_U2jNJM?#SkO#<PAg>K>|KegtuxN;q2frdAJ?n;DgJbsuE<mKNr6$J``CX ze2}0&C*CL$*C)%fQFDmYM5si(^T`XjkeZapk>MPMSzg}^Yrd+6jH5MhK{v)Yx(z1S z^5ZYSeepfy)zm`2$pT3U@!V%GK1a)yR0AR`h?fc(d$O|tJYKeu68>x7AY9(R8!PLC z1An$LeMLhHs7+SXmqM3e5-Ko<w5Rmx4dP>Qv8j|x0e`mTC{jQrPh2Pfk)_GvVOv@% zh*j?|MA>&>Us%*c3VuH*(912U3ixYWznMH#s1jvZJ;{Qh)@Fx!G^Fs9-<@EgE|#l$ zBfIX+$qFcV9?}yN=q`y5l$r}`AUEdGJnM#om>Yv@20m)-2qWB8*T5q9x-kFWhUNkU zL}<J3bcR({-~+{fJLo}Y(4&xC+V>`VP|2C5fWj}bT!-4GtIuo$Jt=}j*^1=wmgB<* zipFu_LAYjhxy0L(W>Tq%q21;6>d*A!tj9>1VM*3{c0G;7At`u5#jcsvKe3i+9lgi? z=cg;#)YK2?IGcOUf~q#E1P!;m*Jv)N+?*}O$HZ{kvAP4+DLCAD1D;o|h2uM4f|R&8 z$V*!b*9=B%t6Plh`0Irb%S*(Ha~C+Pd+rBnkWegCqN^oYnVag$c8L-y5mq^>P#QR1 z-2eM|?$q6ZVbtUytf5}<AX+unsnS7<O}=~6Qvf)pQALo#yA3T|jaoy=dkrx{YRMuK z%E2YI*;>wv5W8bz=F*cUByq8Dq_Z17ztZKVE<#)nElD0Qoj~Z?$L^Qyz#OfkYWf}s zT@XNRFo}E5p69%N|A(mgEi4leo_`vHJ^4X%JGkdOB5+F&^{Up(+|2wu4fxR|sa+;R zhtwvEz4}Hk7iuLY*dk4X!_YK5O8*W<tkp7vl;C6EcJ;vQtb37{B7Aebhi)1WSN;nj z$r0U@!`Y}E;Xo>|!{e^e3>Qbn+1hfOq7l;0`jhJZU@;_6r_tiriu4+7eiTBIx{h%@ z*zom9jovs!nSlCe8&)Fhu)5v$TSgO@k+jFi4uGa;8-x`IiJ|wV(VS1yi0>K$1il;| znUJI#TPWY-XH(OQaQ$DxJK8BbI6O4&(Y<?E!qGAO{4nAPjncOogyspSEAZX{7+Vd( zX^+oOXBja%Rx)0xZAk2hnc%%;H9RCjJp?|eOe-1x14He~4JEw)aR2}S07*qoM6N<$ Ef)Sf>Gynhq literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker64.png b/theme/img/markers/marker64.png new file mode 100755 index 0000000000000000000000000000000000000000..3b03bdc70fef79135d751c80eda991bbe9a3e4d1 GIT binary patch literal 1307 zcmV+$1?2jPP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsgnFfkx4Fg7qSzR}AP00007bV*G` z2h|4@6ATS67!`Z~000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DX zNkl<Zc-pO2Z){Ul6hE(hWw3SYq%<<ODg!DTO2|OsOo))E(-`6iOmxA74;m9=j7Ag3 z2l$8yiGC1}5R4*mK?zf|ZgUQnIR^{6P8{o4w{`94T-UDu*7kMl+O^knUjMMtuAS&f ze(ihbo%?&|p5M9mJ`R?)M-a~<wjzq+J^^tH(SaDtG>FUK%SSXI-YSsERFAD$4eBDf z82Gn80D7kjgizRxw`UO_A^h10%Mnc_@`7#e@7N0Ul^Ry6z~p#oEN&sfrhI<5WEkT< z{^KT0_=Q3A)*%d;2sa`+Yu2gDF4WdAWwC;T@B%<2lKM)i1VAPOuTOwOKV5+zjpk|e zK7-INCR~NM{(QN*N_(IdR`3$a2C^D2g$QHt@}(BIJZhp0pG5d1@y8#Q$_uK#u6=<m zi!3&MkYYaPUaDd1i;F7IbCldfSb}){gX$_!DGE6XoX2U_YujPfCucx?`aJw%wj_Bd ztCCaafII$~SPq3epF8~26ZGg1X+VU#^JTpHK!pY%6cz_j!M`0Eg=+`*qp||L@pEUA zu+3xvTVVEXrZ{HbrVZ?Ym3b<vC67PbE0wFEw5TvC0FkXN$cOD~RlpkFPMPUf14F4( zk48a>S#D7&;kOCv<CLMYw6FlxlO|(~9xp6l;Fd4H5vSK@bBKP|To8nCIK7?{36vGe z=}IAqNzJ7+P!Q|r#KA|fHZ;BWI=V%F<KQsVZQ77gBaVv^5TR#M5K@%oB{A_|snm%7 zH>~zJ;Rx*2tWRf)GO^Z)w$TkaJzynAoTx%soZ51d*xPlsX;^dOi@RBo()i3B2(Vkz zPIBpqp(_v$TfZO1wZ1|o1}3t&h~kj#ez;WpCxI4=BwpjH(T<ooPjKFau1+GHM0|d{ zM+YvSz(}0K)!W2cz1Dmcsvmj~PCfT@=H|v_=${R;W7m7d1|U5XQjkQy@70uVZmQeE zq$ClloYkldoP-_xp^dw6d&GpE9SC=#S3-ymgL`J*sLNBdfAga_AC{evm%*FOSGe<f z0~PN@#JHIBq7bUVuX?AuUcw-6*T(YnohD%`^Wfx-J~-B+3*y}#L~pVR_k>O%%w3kr zx?N=@unsp@h}<)Eo(H|n!Ct-G#)YHNchU1*N+mM9{~}Jd@tyWA2+oHXaOs<RL&r64 zc42`Q`02FLE>WSQdWXw<=Fb5x(MqCWi?oiKpw)DT?v7;CY6(Ir@Yxf(ewdpJF3OU@ zr@j4j(TwQ%H-uy-%`-ls#W>D^j2AbL+jb{h9iI@NEj1_`A&t~F>WAZENTJDK#AVCq z7;V2FLb9gr2`hN;_@qW}8KX*oHrs$)gx&67(EFF&0Zt_Cw~HG<YqkM=4nkrWxM_Fp zq}7OLjSXU74);w+)`u;$GZYn9%>W|sUkL||GhXn8Xt`(4Zn=baEcp3hkDYWwxq_EN z=$sM)v2zE&k}G&Qg#J(@N_!bG`f>&5Y8x^yB5|_2{*Mfa&<e2+Do3v1e*gs3yk3h^ Rge3p~002ovPDHLkV1k$OTGs#o literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker65.png b/theme/img/markers/marker65.png new file mode 100755 index 0000000000000000000000000000000000000000..2764bcb928d7cdf42ea8b0e2c741f6fe4c803ea0 GIT binary patch literal 1364 zcmV-a1*`grP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsgnFfbr3Fg7qS7^c9c00007bV*G` z2h|4@6ATqRbd4$i000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E5 zNkl<Zc-pO2drVVj6hB`dyeUY*NB{>a6PSiDb#4iXY!cjq45Q3xT*4BK$+B!SE*bkn zv%hAtWPfbBvBi+-GQwuW7ZY?i<`|CP1Qn=)yoFI(T3T9K=!5p#Ip1v=6)4Vml3(t< z=brC(&v#zmWw5wBg~&%_BUC<}4bhIMNAxYUh%KOtK$IfhiBu{Ro{5ix6jhWk{Cm<4 z8sj+FTy7ISo<JN$Oa>!NLsTV3MLv6IQ#S0$Oy@~4=$t|>+0A(PsC5#~boH^%|GEvs zleW94Ek<-LM7RcVtspfexw5E$t7BsrxMu)7p1@DaWdKSgSgbZE`S~hb>>U_G?N)?l zE@3$0&uwWbIn}$0AVeV}Zy=~B<lx~P-Z)bO=X?6e!_5e*%=h}Eq^QW8ABtY)k3=SI zALQuI$=3_`s#sM9YL1BSAQBP#K72k05@MnmIGo_bZN6Po4;Om+AwE1D%3paAwxz9v z5ll*Q*{J|t{>dTs@e3Q_z~$dc@Ue_M%!^PeQg&se1GwD6hywmoXAfN8yAv~OgZ-DU z34M!hOkDS8X8|vLSAf>+Si71p3kyx4SdxbuGSzXAq>7$R0FkYTjDQU*5~M{w@e>~0 znEkJdUN5MlBG~!_HT*HGT}K|OlcFOrd-7SEUb6*e&~W{CKSJVHC!tkm5c)fMBPe7t z$gMaB%f2Xw8(O`z0CmaHQFIq0lTytB3dn&0H%>d?Fvdn_pMrz+jY8k7)j>sJKAd`O zD@-_@vwFe7Bm&y9dBkQ5$Siq59=@5G4!f)CkVx{x@cuq=rE-x%VDN35i&*>1rlr$p z1}!OMQWa&WV*^W07T8d7pEqGxi-7M;b~|q$Gm=U}3=MX-TYK(4_Iij?7;aBrC9bD2 zIV5>2lf*T%yb{=FUqemb1MytEcD3l5>h1w%b~wkW(<l?v+^P<}F|TA@29F2{VVg0# z-KGgR+I$P1OI(h1_!7j0g+b2pcxb{n9&2rf{L~aE!}{c2&fmKD3o|*K-%x@0_d+SU zu{}L4tE#w=%PB<|!=OT8U^2e<!WC9|ue%>Ln-C^{t+){NU8ad0J>zE8&a9`g1$b~m zg%S>2y2`%SbW!kLMGT7g&M~1F{H`&Y_Q*JdZdsEyf719REEJA6x5B4QEe?DtMBJQB z*h8kHh=GQok>V}MiI9rJ6+91ZU7-Mt&cJt{zrx&J?+2(k8xV;FzJD4wTk&391I`H- z2R47Gm)2irQ!_Kv;AQhdyGVqNXbj_)Z*O%le<=yU5~;-rRNF7g=J0~KT7-}SeBxM3 z8%$3-=6K2B%bRU<a|zM(UkFK#4@_8XHNArjlnOCC?%{Cwb#Pd`TWnD<LRwi}p}Fr% zh8(K8da-Re9iw%RLr7B9IIIOTPHHOjnm&pIR0mtI6k(&u;jrA%8^DO9ZF(^PYJ)9M zEI~*N9k=zyT<S(VYjhy}IXpHYNh_96uFEUBrUPOBzl3*tCoEufQM(8C?okOJ4B_vG z9*+W)&L=@=9JSe{a|dAPNf1uDJYJe*#Asd0c&V}>u^^^=_v25(Ln73I^h0G>%J?7p Wq}Em)L^6s10000<MNUMnLSTYjw^zCV literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker66.png b/theme/img/markers/marker66.png new file mode 100755 index 0000000000000000000000000000000000000000..9847a0132db4d34c9fae27b71ed1c5be184e398e GIT binary patch literal 1263 zcmV<L1Q7d)P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsgnFfbr3Fg7qS7^c9c00007bV*G` z2h|4@6AT?PuLT$Y000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C= zNkl<Zc-pO2ZERCj7=F*~?Kax3ovT%9S7k_bLkO9O(}aXY$y6YYz(f~J_CsT0jL~S~ z`~g4Zm;O);5@IAof)b`kWfO)A&LNqyfn$Z0ty{+?-AcdKudVCX^?h&KWo7Lx;@;%x zz4tlieR|IOaqeZ1-yT71Myx}q(_9E~714<p$>qdya0)~V;%%i|u6yGCaxkh@;>3S~ zVX(M85Q@gU_;?7h4-u3StVFcxRmvwn*su<os!f7HgNx&3sd@2)Fc}EK3F`>^^sg&0 z5e!{Jwh>{?CAbQ4zJ7(V;#fnype@rdh{XXCiR{0WaR72T_yZwm{`nl7ve|DV`#i$3 zP;eRIj~6P9HRfFnP{ebz8jv(z1_?ocS5CCS$>C92VJ#xSrH4N<sFXF|HoPd@l~`)~ zAj9<>ez{&)S*ET+W-rkss7Ji<;WIU$)08rrIEUM8GIzkT&klm|z!5lW9~U(i@iseX zR0{U-vro}*Gv$B;>lAX{xU0$p5RHkB6!7l{hvCBRotW7Wy!p%d{5<;Xc>Gb}zLH`c z#gfOL_0`&PFsMuC6F^SOl?qtDTn9qSJM+8D$tRPb#Z|7=Y2o(?#~NCp)=;X%?8)XG zZ9YH5apKx<z61T2hoNuECCLNFK}D&G?lfE~)hw%kA{a;aYy|dTY^K69@P22vBrj^P zlmH3(ZiPZwndP}u@?WhsiPs*7Q<8_IAjULPHob#xA2^6eJ5*`QvP+I*`FVsl92TzL zb`xbGg|2Wc=J@dj_Ii<AoVeYzQoJ6=B#_lTY{<`J*O-Uw%omySP^VEQsJYbxPIq1N znkqq2RK#jAi$mUN*w=Fzp4LAAU%&Jml$Vr1?L!Y{^IJEAoN>bIr_M5OWbP{}giI<Z zMSpHLRjzJr+$P8<MVL)VqwS*D?w`)EW7mg9k=cOoW@;sh=(KvLcMN-c>Yb|}1He9& zG+qvGoj%8oSgaJhEr>CqWecWI41Tk?y-l0|#hX@DE<R~8R#FW6d-~v$i@gzi+J?B4 z8Is*GbrNCk8o$-JsX`Ac@Nk919b4yluuQpx*G`^cv1IZ+WPZqsM2`PIj+;IDZbuhH z=Ar_y#fN%J=LI$sk5hvmSQOek5!!2UdHe@253o!riH0T8K0FHTqc`bkPtIKB5u^Yg z`l7cVW@jS{Rw=;em-^}EG~(ia5hUAhpALlDY-0@Mym)wAce>%%u?cZ3pOcgzd76(} zZlseTgI22z+g700Xve(>lC^eEIKYRmPb&1b5sCzur5p+gc6%cc|KCm*xKXs<DINgr zQVx6pK~fmF;&gAMZp3%W6r{c!?pctm4@+ocG%0q?03!T<1+Uqr{Sb&!yGyU`ZUt|S z<L8GHk9@Sjr4V#ahQg`$4#4<Q2nM5xB%NiX7$`KkP}z|A5i{v~&r+<A1Raq2pmG(O Z{4Z)M)LFlSWFY_m002ovPDHLkV1nVOL=gZ0 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker67.png b/theme/img/markers/marker67.png new file mode 100755 index 0000000000000000000000000000000000000000..862c373e5622d7aac7d7b9f27dbe949fd27c97ca GIT binary patch literal 1325 zcmV+|1=9M7P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsdmH8~(HFg7qSDjeW100007bV*G` z2h|4@6AUD6s*Ml;000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dp zNkl<Zc-pO2eN0<b6hE);bud~ATZaP+3S&5!F3Y~+OwcWgI1S3OA#Rz8|ESRz<FXj> zk1hT+6BA?95wl?8G%nL+%qasT+Xy0zOo1U#MmIhOqtNw>wy#iH+Uq&*wH<|0=Hw*5 z_uf7C-rqg<eBApuSX>@O6d*PuG(nw+=t9&Z2BJ;kqUaJ3Wr%lGN@dF9YgR*sMlB7z z<8p)EVg=FbvthFW@hQR;i!cjOnWk24J+fmn9L&pMx+FAC;N@|%em3rO!8yYK_xax) zFzOO}P+Nj9L?c{}Xei9gNIz3t$h65x9QbAd{Qk%#c?Ez{2@a<SZ(O_#zx5B@MeTD4 z{anJ8h^sGTWo)S`Eru0>f~<j<BJkj63|>7~0~h)R$-*ZQPDQZ$Bb{2c<;UVZ?7qn4 z?E{bYoO-2@txMMAqUKnrD-AL7ML|AepB!PV>^<iB@Evvl{TDCrEIm=p>Plah^f+z- zXimk8&(b$-J&P>douCvlN^^4nygq3Ka`?}^eb9VpKSoxBH-B%C^hhdU^6*=*W@S9& zYF9~f_HD>!tK#EQ$d>{>w&iJ8gHDqe4gis*suEyZYKlZKU&^m{fo0kQUlu$K5D0)) zoxp8M(ZZjj#wW-^tu9f8(c{At`t1&w#eti?`w7y@PeJ>HIowBqIN8wy>J>^T*^n(O z6$(Jt&{vW|4mB5%Kpu2BS#b2J?J(h<g2VMq;lAcO<B}VSvNIuWju9Lu6A+<&OcWy` zD=6gPzm}IHy{{Qf;l8@T+tNEfJ?)+a0VXXHN}IM`iye%l2omLLlOt13anJm=;P$tt zJ`~(82R65xb=|d4OHT}qZlBNi%T26x^b5(}oOROsECz>U_anM6p}}gG-kC{>vI487 z>ediv_sm$a)j)(}h;Kh@X#=ZMWE7l_cW#v&{(AKl*!l2UD1ZK$Fkx_Ouokm`%Fs3C zVaKnwlInYkXJ{`JqQCa$WNoZ0DPlZ@2%{WR$PJu=9s0G7J9FdKAZm6XY@slD5%mV! z<i0+uU9*4VV^jmN2?Zs*U45DRL2n@Ey@VJhH9uzv`QQ(|#dc7^Aa2+Ctc52{NaEw* z#I<%f-qPm5RuQ5#)Wy#mI*u4>92qOwg=vwAhb#E!ZCwyRKVfDEF4S?pK;Q$^oR9EC zl=aWzW>3F=sS!LgUIyI4L%poNnVXuOr2_wEfom7>&@sK)>Nt75n+v5<C`D@f2BB6? z?xRs-wFn_OxZ>-!PMDtd%(0TeSFN4&QH^N%FN7o~h9;e2P5&?lN<lh2ZkQ}^Wq4HT zTWnG+LYi51T7NSb3?3>C{aCh)uF*>mLP%2CG-?DpUZ0fcH3Q@csERdVDZ(b3$K&|N zWCjb8cABIEpf=V7VF^NF=<YCC@~IkU{Qe1${~R8ekfa?`DBl~9s-_#^{=bAh{gV!G zda2xFTX(;Nw@2{z!-Q7>O7C(ITE<1UeDC1>y&QxtuRlO%88JGS8oX56kT?)i!Eftw jSV)9MkbkJmOAY=P&3()eH0QR+00000NkvXXu0mjf8`)Kk literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker68.png b/theme/img/markers/marker68.png new file mode 100755 index 0000000000000000000000000000000000000000..febb4d61be7a1ed4bd72f5dd17188c08571ba4db GIT binary patch literal 1364 zcmV-a1*`grP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsdmH8>zGFg7qSjBD$g00007bV*G` z2h|4@6AUx%c?j14000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E5 zNkl<Zc-pO2eN0nV6hHU%6_AgD)Dj4wqOuhyaZH_CVkVmt-J-)NV-QVPGP7h^mMvQ{ z_J{sClP%jHo6Z@t%$N~3C!6vqB1{?1-~<t=Qu(%wLhTnVEtHn_?VMXms6cU!ll*#n z&%5XM&OIOZJ_hs43dF03^$5k3&Vjgts7Lh7WyI#tMIwq3??uVws%MtPL#iU0FZ^fJ z2^y0b9Bz*Vrza6d5Tl_8(-5Ue(NWKRylFiYW~58WvFMyA^RJuqN<;QhIH&DlU;W(* z1EY?+sLexY=OSE#xRSFnHRVihj--r>W#E|v@Opz^DH8zXa<JJQP*ial%DVd=qIMfX zGm~%$;;$WPsafUuxez7_<PC%rQ3hT~f;Z1q!TGLU@^CZ4E=)cCG&wpd>!;kE(qobN zw+}M(=hPcH(yBOx8a0PWO@v8^cRqO`3skW&j22GdHVeyZVaeAgAociZxYVcP94*5} z$o%nVU|)R4$Cklih>eb9pS`$|9v4v#h%h@+E~e(I(*fKbZb$+DrK1b3?cax)b-=-k zSGfM|>N?OEEl^jG%g2Kk|KK)zpI$93jR;p!EJgg;kfDr+WJSz$0*EXzDiSs%sz54! ze|nchLb7c|3LkGjGy(X0phPb-RZ94CK);SWR3^tnVfJLxhTT>hOyWY?R?@Lke5>5U zOf??^AqdPt5FjNcn*PNK{#3J|0&-y-P2(;&gs~ZRj=@Luja+|h`%9o!E`^=HRzUXh zWIms+KjtSOLhGQz5tLa`@F)MRjC4LW=?#25P*De3vlVLccf(cPAQY6<`VD*%k9DAI znmbHZ(34_{NUe+uE;+&f_6uFTeB6<?oR5_~{b<9$;&e)PD4rN*VrX!BJo?}7W3PwF z`NBQvtN3^plS4w=BY8GqSx^i&CMNK%DevrKR@a1?I*l?x&8=uRn6iu3sinxUFt!=9 z+i4krBTcv9`J@E+;k8#FJ|Y5M#_ZDezr4}P$x3o_AY7112g)uni)-S0Dv&@bC`C8+ zq^GSd&D$l(C`Fj%kV0W#g0%la4LftMlVY(6VF}cV8&R*djO^_)TNV4(J_Ue%8d5|# zyjyvhoz`e6c&{V+NiCbPgko@2W3m(q5`=GElQ#RL2}ndZ9BpcW&#yPTaJCC^Gw?|E z$kHK1UxRKiZ)-{tti;0=ypL>M6hSj=lnTz*FptmoA!>dLio_i6KZ~0!`JlD|ToY~y z*z7~Sxc(X&o1CNuKRzq8^F-*d#%Q*kxYf=ArNjkGq#A3ny7vLi4$YaXc?c=MC%<iO zgYj|K3@;`4=4KoHsYG1=FN7pV`$p`Js_uRUa*-b%_Y5Ye>mT6H<}(UKNS5U#n)_49 zkU^=o8{1Z*Yqa)B2uVsC2lQaY>yrw-ih37c63Sp9!bXeBWxH)Kf(c364EzA74rL%N zKu8Sjtp?K;>PEb4hQa^k@Wg~9Em%TZ+&<nl?Fi@pCA`}`VgtLI+C8*)k4yMKho2t? zyb4e{7K6|<<Z$}$9RS^85RSUNK03>Y(Z0~)h02D+h8UarZ(a-!iBJ#z4=UqAi~j}M W64G|k+RK{&0000<MNUMnLSTaR$!miE literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker69.png b/theme/img/markers/marker69.png new file mode 100755 index 0000000000000000000000000000000000000000..81a8b9a5d2be34e74fca66a334fed6106eafa621 GIT binary patch literal 1373 zcmV-j1)}<iP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIxsLgFf|}8Fg7qSs6zC300007bV*G` z2h|4@6AU}xqJZT9000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000EE zNkl<Zc-pO2drVtp6hHU&7RswIy6O<nF^9m|LU7KFWM;%I_z00@V^gvvL|u%}XfzT3 z*#0rPXw*dA+?K_-EF;rp)iE3hOfrx;(E$_aM#uXhkB&ZQY2nh+UeEb%t8|nyCnx#k z-h1wMe)oL8bH4Ap94u@PAhsd05Ne;#foMb2B6@-aaY1~Mh!VsrQA(vYb9p=@tE1V# zzb2iaH<`iVa$E56IN~5;G8AD7LYEL7_3+ypvY;p<RZ5J-<OGF0Zq_4>+9%<xp@;kQ zk83bA>9~&GLWCh0;cCRCyp_pGrwj5VO<XJo?pXkjC-9RB9zdxCo81A$KVF3M-F>&v zyA`3IOBjLp^@)_^?DE|O5GL@H4TLm70Uk+$U1uxcTvsn;xDjFJeXrk5jE>4aRq&*A zM`ZH!L4o<4cqUI;6{k)|&jE51VFKdCcQ$2%Ha3Q%fipPGqVgJu`0N-YA2|uteS?f+ z0QJi`r32+BM`2f46*xr^VxuFu_i`Sg*Tqx=BFv3c3dy_EQvqCV7D$4B*U<%+_w2;V zI$+;Vmze+M>N;o~F+yqnHqhPdfsYznSj>*J2c>1Ia4l&`gzGaj@sOyF0q}ZRAd#(z ziiGtmv>=td21BnFGk@LSFuOjRk;<-RUA-(ugITWAYRI*g2sMc@QCL02Kk{^2Z7_=i z*M0LXBpf~g&12)TY+flqMuT}mzTtUDiixJXSY9qQ7tlZ=>S&r4VLxg!=A44JY8#k; z(|z}{>lvJZ`~mO34b8~}L}(p$I07mw@O;43NH?<2w?4+C_~5rDSRSDQmEfBdW=>lB z+oq|*WQ7rO_=wUqae*zz%U>r=M_+#)+FvMQA5D*6hA|vioKC6jmWhVwiJ{)<c8~mk zRf8}k3*4T%Dqw24_b0L|wGj95S4>lqVsB;|TQ%jKeVkRCG1E$;oM~~Z+l{8&;<f2g zWLOxt5i{wuOu#{Gi$@dgfv=x>9O6|fNW+YN85)7ZEp4zbD-+(&%>n0(TiScRnzM*A zN2x*lrJxf1zCAT%jjk|XQc#KJ2p-f(29B5ZlvQ!3Z**e+zy^fH-zzRet-&&}qswen z?_Bc`fFy+`6qNANg^S!ty@AAg8qrT~#hf9eL7m=YDdHsv-?BPo{!ZgJRX7}KY=#f7 zG>Q0>kGSf8rMPYAD59@^aJX<wQUa{R%@sViO<fQ`KQ=Bscdm+ad%bU>=lcL9f_(oB zPPX)ontBjtToQ2eH}#U*%iPrLEG_UO^Q2usp#%DHv+Y<*JLhjDX4oQ?xPB{p2k2>k z&{{1(NCF@KvZ)oOr^Pv0O7O+iR=T->xbj~J$qw~R*c}z!{TwI-wt3tzn&9XDA@**e zpiqPqSzfBY=_`f;bcSwRwh|qqHFrZurfa~JVa4N<8oi>2lz{S30gDkfSVYnGr*Rxi zNZM*-8$e~K0AUeAVrai+G;OBUh-b|h$bSxZO-R;^EwtI?Wviwg;rzdZ*SjZdV0Y1S z51rke5)KUF@oB{U53OS<2u-67r+n@J3@!!Xq|3vOJ7TmiHh8hNA+sT-eD~(1$dCv} fK>nc`Uu^K-H|Nz2*phHB00000NkvXXu0mjfrqOoi literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker7.png b/theme/img/markers/marker7.png new file mode 100755 index 0000000000000000000000000000000000000000..16401d9c54cd9a1cfe963679fc6359f9a3e87f11 GIT binary patch literal 1212 zcmV;t1Vj6YP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGB6-5Fg7qS-Kddi00007bV*G` z2h|4@6D>6Sf{2#@000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000CN zNkl<Zc-pO2Z){Ul6hHU%l}Y~+%G70B+}I|6)R5_jf3gG<%rs_k1O}1#fe$7m#uyV# zoFCvLCM14Qlpuak10gX?(aGilj=8`VWreY=gTlH$Z0t|zYrD3uTi33=p7UO3R{Hvi zxRd<y?mhS1-#z!7bMJi&a?4YQ*AUwfwzN)03?MoXBU+P~hR%d&LcC`-8VjG<upUZn z7RB&hBnmFc4{|&a!0t)JXNZU%VL76?$YOr}qwU*Z|CTCVY)9urgKD>w<TK$2oOO?| z&#(5uWJDf9Z6m_1MOcaGtSc)mInz+b9qa525=#KdWag3v0l;X4P*{cozg>i1J!AJ# zyA$DBNw^l#{d#$6b<4g6SR)GL4d{w!fF$Rz_iQVi8y+POUqpn3^zbLe7IXEfhBx>_ zk*V7U1N!sbTXlTnI@@N{99Gsr6d~UI_@!znv|Aa(7BjPU^y@4x-t@lOz;M_tCidye zHE{6vO9xPMoCsev8O73lo2vlgiJX%|i*cy@<`ir&t<5yRIlDJi@TSi0!eDH1CvEwK zEsph2Y_kHSQaN|{)%5|87GiMdm72@}oZ~<*pDT1w?^z;r6kE-hJwr}13jT?{A+W45 zLgS{2Yy&}n603z;c0o-w(=PF}T)8)cMJ+>pMHv+2SeP-DfCz(AvaFlg_R+h_x3;86 z+aSf21tDEF&RbFtrb!_Pn)c3FpYpAF@^OvrG6+PYeBi!BJr^-_MH7kXpKs$?#~5je z+aFZEWp-=!AfB3*J7Wwp?8jaw5l$h#J=)_0e^};P$w_Yqo-ms-2k;n1=41RwcQ5t6 zM|hS~K`HusS5^7e=Eiz%pcLtp(DGJ+3H+U3+S!?#cScdO9T8Y|CywZF2j+GU`-8SU zTc5^?=K6%95e}Ze$bN9SDR^%p#ucYmm{1J<bV-5z0*8VfmF3wt&9XdJ0LT8i21k0F zG3?bNdjE~W1Ew>Gv95`!#vNE9Wq7$l@`0_3BDiLK{Oxn?ERjlmh?<`=BB8PVkGR>> zA6)3ddm_$(WmkMt#}ziewA6{s<5{825uw8_pFecs`XI|FB`lG);ZbN)3;mF0u5u7k zfKPtu?1zPg*a|N>e9_xajq`|}|3XM|Y-}zpw|d4I7)9msxapPPkMT)mEY~DGLYmof z+I2gf3<ET~J$P(6J);*Mg^;BA^5irG@%f}eZyljXK#Sgle1w++u~_Ja*9Q`k_Is5J zpiOUrn1_%U2K&5HEuF^2WO5eNKZi#qB)NtqR2xqzr)Cfl{lA1mp1BZ&<8<8hy?a=~ zyA$~P;f>By`_^g@N;7g)eRlvRR)a7SPp0TDBgSw(<9ua95<<+U+y2$?kO-$i{h{*Z aGyVrN--#*-<CE_I0000<MNUMnLSTY+YcGxf literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker70.png b/theme/img/markers/marker70.png new file mode 100755 index 0000000000000000000000000000000000000000..a3c30165a5e2e5659a84173878d394608191a65e GIT binary patch literal 1272 zcmV<U1PA+xP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&UeDFg7qS)rFs>00007bV*G` z2h|4@6A~rP?1EVU000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C} zNkl<Zc-pO2ZA_b06h80Ub}(Anu@030kqS7Nnq@k&#5BRU1-}+ClPz2Pp?|hyF-F4= z`Ljj-%*4c)=!{wLhchmVX6O`wkWGSQjHq;DKpEXAAA|AH^^3M|q4eu|&g};+E$y6~ z<jK9~+<Tt)-gC~q_Z47cc@l8|u^XX|+9bp<q8l-h&PhmP%R@9FPAV0O!e@4Dhf=kQ zPrUE(g3)FN$scf_+Jg8L;mJg(L$nsDl+QQT?1p32m8@8Ui<8SD^MWC^;P${J(}eK( zKZ7vqkw($lfH0*atU&bCm6euUtgmC*Z5jarL4Z&w`I9mcK%oGaTY`6gzY4#Zryihn zKf;(uxD|2z6<z6`wj=ehMK026Afw1-5Mm4tU+RF%<CC<)eF(Q09samjrQGvF{j2Pu z$RgVZ8LsEMH|y9_+tgKPIUO4+Ld<+|K+o7Gjf^$D&rnYR*`>x4>|l8r*Qq6)d|F<6 znQXLm9j)-CJcYdUNL3|(Kfu3$&Kyf09fuuTbD>IG!0pX_1JFJ(4d>t3&s);T=g`h_ zR*;)hNU<cs7pk?}p;(;{5Dq8p>g$`sU|aFQsTcQhok&QIR#&d+=%ZET3C|U3$@DA{ zYK!xgm_1n%83p{@;3%lJD4=0yIk%aeF5c!u=f-ppMJUNvQBNaAQZ1xZWZ(S-EMy5V zR&j#hx*a6yf)F7fLg$<$rDV2i@*Z#XB}HqMB8o|K;(D0zkH^Z!FlKYYJQ)%k42xFY z?tS91xUHf<!`szpv2$G%z~S|>;RiM{8Hu6S8wkw*atF^k#w#W!yOXzNn*6wpwomfo z*!Y@`r>5=hl;HHO+R@ZQgmZ{*KkGMu-7T?La-v&+$CY_;!e)I9CwZ@<o43ui`@pm8 zV`r`p(C~T6Q!EvfqQBp&)a`0*ILKs_qIC&K5s?xpvUh&%5-#4pJBgMWgd<ifenhv) zv2<wM?o_|M>uEY0nF-|zIMIGp_}*xu;JuERCUau(Q4Ibx+8oD32067Ay40H{Cb>Cq z_OBaorr+SBP$C9mL$Y;K7Z6juGjk2KST1FFxk6~&*5z_AE?U{q%Uwbs9R3h3KPN>Z z&G&!8&0hH6N-y|U{S1WEOTDSPPgo8Hd$9XWN@zET&}pO9?mBmKL`W<pDv{3dN$89e z{i(FM+JKM(-13!S2v$~n39DrA<-ibi+7bQ#g^=Xz)RJ53Fi#7hkn_vqw#5d2OwaPM zjhr$Ol4sim<DF<SWYB6d<FRG*j9z&ZLXy^Nv-9A@=aUM(BXS?MWpc<yc+KJSxo%mk zU_;U&3%>w5Gdak!5E8@4pv9)A(}=gsB1HZi9+{Bj29}WCALgfK1mXR^grnvq7r6a& z+%vE4VF~Ze;O~dUyG;GD%^<WbNZ!c1gYWld5PJNfFx_Ru=*~7dTiKA%Te%$V+c#r{ iL^uzTA1Z6M$^QZ_SieT)8dt*r0000<MNUMnLSTZPIAiPp literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker71.png b/theme/img/markers/marker71.png new file mode 100755 index 0000000000000000000000000000000000000000..3e5c5650e60fa0ee8e182a55af275eb4df1ef6bd GIT binary patch literal 1253 zcmV<B1RDE^P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG%_G9Fg7qSA<Db900007bV*G` z2h|4@6A~_2K3mZM000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C$ zNkl<Zc-pO2ZETZO6h8ND%cP%3nYwI?o7-eV3{FS<$P!F2)0l-Bm?-*#9~u&4j06(r z5BP}*iGLI&h(FLkh=eLSx4D3GENlz9!ra!e!n$sB?4$H+ZQpKPyY_m{+ZNaL3vnlT z^4@#ibDn$dIp^N@Wsq4ON4$dAg3!iwB4QBHff!5Y#M0=Lh$h4bDup8dsSWF)SgV!{ z@Av~?a=Jhah21zkiTDiR&qi2^Fchd&&mP#i1@=@`@IoC1Czr+SmLhz{=ZEv=G4}ai z{V?elhf&*zFsCCdM|9Se6c?RssN?!|ItJk-fJh{HNtpnkP=MDb!rosm!7rBayQtlc zFfAusi|Bc^w79x?cLS`E3lt4x6}b!|oWq;vTj9c}l_Go|;S=JoKPgnJs!un(#_x+P zwtbLcJg0Wl@h8@4D^YV;S_e^pc<<l~)sU~#FbFOJJNk8sKX3X_dQw#Nh8AeI+9aJ$ ztz@6RSOfch`(rP@K2C%$D;4tM-IWypp>UG3cQFLz-<*aG%C*vb;I0$)cXY#L+tj}+ zq0i2ZWxT1gC*KoX+)i75u1dci3bh)5Xf!FRudWY*b0G+aUaFDi&zw4!Oh$q}dW`bv zd_B!J6QRCPqr&RRlI&<}C;Ep$y+#3z8_OhJrT$^~VMkqRJ_P}aG-?{@gjlIrN=J6z znZZUDp}wpH^5Tn)y#EfoRaKF;MvTP>h|n`7iYb+Cx89bXwM7NFD<0+2;)%8~jyOFq zO$tG{XJedoNY9$b9?4E7FmML~d=LwUVj_mFKsY@8(@i|<n6HGGT^{LKqSIt2#8cCJ zYn)+)T{!C`LMq$0M|+Ln@`*fAocI>tQI#??86HFbe2^dM>7&_q2uq?ARH8rMs3_fJ zXsqWlD$$A-O1D*D0)O}Cc6Rp0Eh}oaBHW2y2_ZVn?zx?#E{}HCrYEtxd3Hj%0`|3B zV&9w0l)Tpw6H?I2OehDJO-}b7fkWQ5^3v3sCLs^y!Lh5?;7G4Ah_iY`-@PoXFr7h+ zciE;Iw_&@K;N=RD6<e3f!8GgOZ(nF<;b`<@)clx~i8Sk<!_A)g=wcV%6Cn;P^-^!@ z=w|avOPx48o|4)O89HooxV$H>53%K~L@m-bYK68~(;rG(s|<vc;FDh(2Vh|#xGYKz zU-S*opas$UUkFK#jnDbSR?7qfg<QHkZrGjh`^2R5E|XI>Lh@`rW4akHh71g53m#ie zpV5mCLP%n`GC2(%{CrZQw~kRJpgEgEF2XDBV9@)w-2qM{9k5FmKwCBkc@9Ei80xn> zYw0vDMk2Ei`*V0;LXvCPLbai&bZUkWf&WW5Y?<?dFGR;Zdvy0pc-w}*ANIgJjYn34 z&^aRpV&5GA+iDQ{Ly;)mWyI*qWt^*RNW6&o_}H}?5fb4v#D1t8xs3k-w7;Ja6BJ}v P00000NkvXXu0mjf$KE_6 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker72.png b/theme/img/markers/marker72.png new file mode 100755 index 0000000000000000000000000000000000000000..ef1c7c64fc4e57e56f0dc6d8412400b3910f7180 GIT binary patch literal 1309 zcmV+&1>*XNP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&UeDFg7qS)rFs>00007bV*G` z2h|4@6B0GkTarBh000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DZ zNkl<Zc-pO2ZA_b06h80Uw=0A4F*;NNC>>*Cb7t9eY9eMv2~$I4L0m@ou^(o}j~K~* zh(BEPhcj7X%yeoN{Naqtq8YkbfgqCr!iWkR0xw%P%Ew?7Sik5Ol$Q2-&V5^?E0j4o z$<ur9x%WKx+;h&oZv|Lc9zql$b|O;3IuD``(To^c&PZ5Bmx!oFypg0<XFR+y9dc5% zeBmv(7i6mqJpO<khc$?g5$<?|dPHreHfi^fJv*UdTRzK5Mdu`yvTh;BCS7hgXB-kf z`Kt%U-JSu|mLrVI5pG7b6zAq-pDitBy0laQ0t*1aVDy$M5kRd5r^^F}ez^!gn?`P< z_Bn*SlyE)b(ms98F2jLRSSN|(4a5~m1wqE(m2>rQesGvPd;;MT!_)6(X_Iz+SNc4= zD>CKyphADXd8wFfN=qp~&C$qICSvT<qC&<#IKo)<TMWlBAbm$=8QYPO&d1am4_9)V znirlW9UWay9zK((mU0dh<OBEvd<Qh<n5jAp8`md5fo=oWA2c+9Y_Ws<Y6Wj!|FxCd zlx@vp8xk}b6iW$z9^Ix(hpd$3m;`)rr4OugJ~&bIG#`(@d5E|3;dQNJ69AzQ=(LH# zBN;mQecZf*Jk(_+Ct>zfQDhYGQ#}KqU8jcft$9&%b*53?lJ{Ih5werD)JqkWR0}Z` z*>P(U3)urDdAXojvYB(<4^_<_yuW|Trhf}sPzZ?7G2!vVWVUhmCT|O~Go$oX&Fy@n zG>ry6eClyU8Dd-)DVy$VRtK0#A&QHJ-BT9cKK8(Ui@LUPGo0=>f`se7FD(WhDp3Ht z*US2DTWN_*3~k;(!2Hv7yz3aRh!|}S-sYwzFX~Qo_44+;CwId>{ey}UZ;j!`h~V(e z+i=uEgqSM$`gmtI*jyeKNly3(aDP(bA|cNz%15|XIQ}Jvd)CK}UFstBX@n_~3QEzR z`}6hNYs*WRic*B-5LZM>q{u2SGzw?0-WW#B9)vxTK0l(_XrCz?v^i2<-oAzIMtnj^ z4X@Q*6uy;>6ucJ^yq1<0AH|?mw%RL12AaK_^|3EaL=rS`@{h}Kth3vPqY^|{WJ-0% z(n-Wf+t@_;UM!bfd|V-T$I&GT<S7d~c)n2xghKD2=EtZ=EVKU)c-S*<H?@Ip-p@dY zeblR)JA~PVg%<376%*POB6L)?*qo=X^b1Q%iAtnla2OhtqJMwcT&+Mz0j~MHyBFr> zd`rA!@R?GJb%@UYLP&CQWX9#GH;oFQmiXgwb=nHQjgIrVm5kyMlBMB{d_9~D71SC{ zcx@SdMw{-1kfgR9@2>+tpH%4eLlg-x#4}ipu-)$SIscxvfE7u5r}+cW5YIqbg^(Ef zd#0_0bQ|%do&x2c!#xv{T*eYA^oRJZ=|_0~FX4b`#tAMzUHACj-7VqGG5q^6?VY9m zwY4C$PI|n`cL%@UYeDGt2SfCh5u<Ch#jBMKi4!p!?%USFLn1VT@`uW@+Twoz8xqPX T>#Fqn00000NkvXXu0mjfD-2Q= literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker73.png b/theme/img/markers/marker73.png new file mode 100755 index 0000000000000000000000000000000000000000..73ef28ed4004cfa8ccdf4b20b65ceb71e629ada6 GIT binary patch literal 1301 zcmV+w1?u{VP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&LYCFg7qS<ZXpG00007bV*G` z2h|4@6B7mOnUl}}000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DR zNkl<Zc-pO2ZA_b06h80UcCfa<Mu(07k;-r|XO^jpe`;m~@r%gDkZfbg{x}n3jAlRN zkBh%%vc#C_)DSfBi!7Se%`qTkNEnWhO}ZgaMmNegl$L(cFDNbT^_;gYqqMYha+2r0 z?|be&&pr2?bMJjQSYMt%lp^*Z(!)A8q94(Y7>Q@Z#nDL-wTSm*5=qw6+cF_9T`mlq zc6mT+v4Y#@x8Y|!;xmLR5up;H&X&ubJ-KfW94RhjIT`4jSQHw!9AL9f7hKSdaG(F( z3sWxlAZn`+x_E>;5FKUtdAa8+%9vtH1_%CSfIuL6N)Znrk$}VLhT~V-;Ie*f4z(o+ z?P|i!h#Rje^Y%7YSHLDQPu@U65sM(e7`%O<87>Wvl7}xKoP4<Z;~cqc?=Kavv4<iH zEgwYa&kt{vu_w2r7op}<q$?XS`9-OUu}@DjR{K7~?--C?bG(}E&dL<NpWpr%)19ah zZ0cWsnRK*tC3*OgR3gr+E-D1@`GpzKSit;8Ct%y=R47tx74*lN+CXczL03&BXpD1k z3}Z+(l{*XA*3^_NilrDI&lM{&Atya8CIMgH=?BZA7tWTxD0~mSb2O@-NFf*mg<Q%# zlcj*arVP8uLq$%S46`SS8cYGN>m3C7CJ9vSEQsp6WiSct;o`!Og6APOO-^qad??ji zOhtB0&tf6Fp}Zg;Qr1jXu5N<uGAW!bQ9USVE<`|t_8GT3CbO-h6GE%X&5lX%wW9~Y z=vjaR7h6J#AQL8!l#OP{Vg~~$cz(r5V>AmbW;2G6wj;?+S~|~x&EsMHa~4u*iJ{Zu z_Zu$W!@Z92iipl?7ux)cv=yDQ?q}f6d;{$h(+|AIUDJ4fjI(=}tf=ZB!WqPOXSy|D zb-Gz3IpHP1<1*<AVMF;VfOQC^zg`x|zJId>Tnk=y`bH0R|A^2>Qb8%Yb)ZnWOI=mY zM3f>dhlIjYB6(KxM=N*!?)_2J>_gZh>GL7lb+-A+VXHm;(5|OwZzLuZOW@t6Htr{_ zj)M0FVw}{g>w#i$O>40o;Tfdt-=T~>X(E!E0_SethSS{|FI5quC(<QaGjtX));T#- zwI5@YPuUEtS-MyZTBDgAzSPS3gTW6`^Ltbz;>`aWF1F!=tDWFo@-g6I5B1viE^c9Y zxdUInjS1~K5jv$cTOD<G2DsIwL?zNPJPIwLqW>gruGS%>0M~z|>4U{Z?<y}DeA&}S zFHMN<|3XM|ZfxG^Zq|=;AQ20P$6b>J{v4kY`qnc_L`as64cdF*WQahm)8n>fbd6qp z6had9^(h0`@%p4fZyupYKw~0<WQ5mkUa#XHlNl^X+Gi3DfR;oC;v|H`FwkqVsAxAX z1p-D0{W&}`A<1nlA(byE?3w|D=l>E8>gOHc^wD-t?A^l>PE6wOhY3$;l%b6vw9L9a zp?e4K?~NdI`2s;Y%ZSmLY;dx&A#orU!td6N@Q?@%5c;7qCmZ}P$DhHxCPw^A00000 LNkvXXu0mjfqX9`; literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker74.png b/theme/img/markers/marker74.png new file mode 100755 index 0000000000000000000000000000000000000000..dda60a882cac125164b9aad986176468c8829f4b GIT binary patch literal 1264 zcmV<M1P}X(P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&LYCFg7qS<ZXpG00007bV*G` z2h|4@6B8O?k)9<0000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C> zNkl<Zc-pO2ZA_b06h8NDJ6u1P6;uL57~nqCEGUZ~A(_bx8bf56xVZRZKTMVwV@xy= ze{4Tzvcx}bZkaR2nUN)C=oAN%O@?HHxX}%Pb`&Uu!T2csqU~EKE$#K3w;#6j3+GPq z<i78D&w1{-=bU@*%OJZvg?J6I8=;NqM8puH3o((&iDl3!5zUAXR0>7WGlg5BOskd* zANc%WbT~l_hFti14)F!Tmy56h(ORrlJ^#s`-Ee4UH80U&aB^AHZY|8`y*{{Po?u_z z9)KC2XhLlh!kme)3ejC(URHXsv7YO<=op070K(zaDP;nHLIEDH2#0^W2ESS+7g4(p zVN536jOcy6qO7LvU?Xgj3lt6H6uAt-oWnbp+TrrJl_Go*;T2+^KPyqIYA!Us!8b$} zT|US#p6}nP=i9buccA8&G!LQ}@&2bT)j*L>!yvE<?8NCbf8P9|G*VQhr_aNJe_7J$ z)JpdG%e8Ri_v?r8^BE$1RjH7d9o$h35DcX_dsc%`_00t+RBlcXcUq?<vV@?|f$f#N zxx2T>9a!B*OMYReek+t{H2{%FN>pFp9RkNn0FJ&=o6wyf9!U)yee@XRb47Z3dzJ|G zB^ni0PnKdwOFKJY0`(>ZG;ObxbWS7}L!tD13IddB)bykiqNQeO9eMM?JT|fj4VC3k z5Sy&UG@2k^FN{SAh|oPNifNVYwBDD-y3*o=uEjJ4`>VI5vqiWxdAw~5BMvvrkwOp> zHiiYeG}b=(c#>`r3QvCbZ&cI`0t1)d&xaNrq%smik3STe`*{@iI_4`bW~W;k%XONR z)`@pOq8o76w2e(NtgsVR-9$Kx`1VAf0i0fu$BPqN0z9EoLRP_T=vxl(<GuY-10XE% zQc#I*?XRxb)!Nj+WmKYdEtFnaDx|>Q`=ygzyf<b=%^rj+-YY>wm)W&+VBG1}zP;;d zTo2DpC|AIdE7#Z$Ml&VvO~jNGbdm|>;7_B&bx7b)u(zrr{iKP@V+C;PuRCzO&k(@3 z21I`%3+qhh5tBXBvrT)kUCQxrh48wi%jIBPu=95>cd}3<@-b?DO36fq`G3U4wtRH8 z2hWKh2bO-QH+S7+%WG@h_;@BQwOKNB%xHId&fXnn$*n{!(lKs@j%d>#%~-1}gp}ZO zCk=zJvJyy&lEYX1gY<9((f3~nNlr~JdBt|i6a$4^Iy~;#9Pr1~jPxy=Q!YaCY-=%& z#)=_>R<i}SEvIYr>cbF{wBDGR12<lu)adOKlnH3d<&cl?hAR;8{B5&?14##M(gDzs z%R!!pkQjysY>qnGjjQ4C0!05D9-5Hk4z^HTFe2@mVTAwx5}GVa9`FWfyXTH>qlEXT z@%O_Pz3E2s8E=HpF)#X~_YT1HqagGJ!x1{mh|!zRIA7b4co6ZM-T5dYB*Hm}{!rQT a8UF);;;sltU)|;a0000<MNUMnLSTa1x<Zx! literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker75.png b/theme/img/markers/marker75.png new file mode 100755 index 0000000000000000000000000000000000000000..736cea2f794f69332613c90f1f8ffaf6c2b92bdc GIT binary patch literal 1307 zcmV+$1?2jPP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&LYCFg7qS<ZXpG00007bV*G` z2h|4@6B8t$@Pm#3000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DX zNkl<Zc-pO2eN0<b6hH6vb!=@Z+d5PNja0w^YRHtuM4L<p!KsayiHnPWXreJuqb~bH z{@LPRGcGYkotnu=oEaf8tD8e0WRoCakWIQVplsbJALFA?`bFDU=m+if-1pj!($db! zNq&9zo_Eggo_o%@_mzS5<xxa6q5`3e>UhKuq7yNe%85y#lOgI6AIhcD+$VNy2encm z7|wWoV6;1c4~CpLZ9sg9@TMcwAoO_(`O}AYSHQut5|W>T!EqANZY50SJYG0!8e_ix zX8@+X{0M665T;aw#fYw&LUloNZ4FUv&0!$40uT--E-7IFq*8EuczEZ}OK`zFv4Gkt zgmE?D7DVq$8uhN01GTV;V`(&yRyYZS34u4yw!!()aT?*X2oD>5{dvAZzUxfwK5}1V z;`Tv;@%-{y4S8&<vJ^E(W3TcMQ{Pl;3HjnMA@v^<oF{?mXFhs2S&u#qFYl#ex^)eQ zKQG9noccg%2|zF;tboqK(;Wyx@y};qhir>5H_R^x&-W|J;ncnt#c<GP|IQ*(-_@Jz z@&~HumY*q8ZHIhiHb5kju&W=g4}pEz4@aJ>Odvc|S#i$@eN+k=^Hi>i&Yq-%s{Cv@ zR!@>ZMiYK=U<4GKq)@lBNYLG|+JR$P&^DceZQnM+Rf|<LMqNR+f{t=nvD8dbM_!(p z!$#&oS5ydD(Z#M<=AlVf4X0nNg2g}p4t4h2YiLF!pgDBS@_bTdJI3z{Pi;Y7Txa|A zy?FFu3T)AB6JhaK+Zb-yU0|UKmW?~dj4K~`D5+y4(P%bfF9OSe)8`{Y3wEk9Qig6{ zC}cTz8_zoCD<&p~OL!LMWXE-7jm^Lu{}I~8#OQ_G;;Cu5Gr?em9jNM}gtLfK$NLQ6 z@bDy7oah$dVYw_$*oduCs@euReJfNKs^P1>&x3c#PmcBW)7PgF=2$6ciLSn0qAAzc z>4=1uXiW<x2}=vflDGfpV482<8Ar`-gfrGFK}4s?xwwDS;ZnX){y04Y=?OV0e9(G{ z`PFEm$$JGcDdcyR3C+RZM!WMMOCW1cu_pPZiOJ?HIC13~9P2aqai&A`#|yT`bPh4m zJvCdm2iv6(FINb!**eF8ao$GWI^V&BB9YHf^Ls)jQmp?QZno)@i{0Q41PL(7mwJ8Y zWoBt*r3;5YC8c(q3>`Jv9PX3Xhndx_L|deNbR62nrazLhR_hSb1UGzd7=-0z|Eeen zeAhon2d#*{|3XOR#KfY9Z!=FaAmxP1<0f7Xe@#vc@78llM@T(envA!j#gKsBWX5Al z=x6legAh{D_e@*Bg`ZE_=xt*(6VQ^*AroPb)9-iRu-d?mq=Q!B0%%X?z-1t$48sFf zyOy5DKsY=P;y;H6CZuu=TSyy>2&ZNk;rqXYBj!anc!Kn}r;qM_3GYtf-w&&AiH>h= z1fhM7_le&f{C;l)p*I+g(7TK>dNLVjY8xtU#8PzZ*oX)zp#{W0RJKgU{{q%5#l8X{ R@NxhE002ovPDHLkV1g_sSi1lK literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker76.png b/theme/img/markers/marker76.png new file mode 100755 index 0000000000000000000000000000000000000000..4e883ea9f59a2a0c697076e94a990314373446ca GIT binary patch literal 1319 zcmV+?1=#wDP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&CSBFg7qSLK=>Y00007bV*G` z2h|4@6B8>iPo5tD000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dj zNkl<Zc-pO2drX^E6hGhBuY<Mav2{4GpfHAm>9Xt<XM!0~!qlKF8{(Fk_>UTmF)oV{ z|JdSRGchqn9We_gPUA9NhE5TXY$J#;GNlZGGP+S7gHh=EqAw^d?e(17mcd%eoSfwM zJ<h%7chBqI?-O8Yc@$BM*osIF>)ePQL=$2#mXQ!cr$AI9-d4)xX^*d43t7o3KJm88 z13HTp+&;ezU#k%xBV6$aa}YHdD&_X0ySBoif;^^4LFXh{Xx?0aO*ma}UOy;&`ga$M zx!irIEl22M5pF~@mt<#Uo-He3>eLhg{Br<-z~UukB7j^D4yPMl`|T3^Y8bwQ+Gi2E zg@mgSSN7&)ZL6&)gH@79-auTDWDsBsUOrzB7Y2sN!zU3=F+BW%My1^Lec5yDzQ{u1 zgADyS{Za|rkeZy2n&Xk748-VX#f6N0bd<5mcNo4$f%M+@-(m+buZfb3WhSXuW5tWy zruzA3Xby#*Lmn0><Wg2eejb3&&sRWWj;SMWz`E6mkgs0D^;C!-`v;)y@Bys28(#mt zncM8&l*`s6CZtg=CA{n?P_G3|a#B<Qs;>2bWyTAi7eCG4i7Z{IfF0>+d_gY3AgEOe zVN04C{v0ztK_03#NlL7qY!MkH{8U#Ts8-3Ld{Zvh8SD<2LxL^e`~VqMr=fGw9GWbO zfGMD-6fsn4A*v(WZcp&AN^`RzA-tFu3qc+qduk_4dZyt>Q|sM^7D5C>XdidGqbl1t zbc^2$Gc)dXiWq8&R|@j@{i@Lv4x91CBW<JYx7fi*3Q?Rl)`r8`nf}ncE?=FxxD`e8 z3SskjSkD~`sdU89;_>^9Ki|N;j`@m+-fHLf?3AQ=-M+jH{C*CLLsImJhVPo%o5O<L zJ8MN%GZBs>zW$_L3s$F_MT!#+0oE%O^MoJn-p&j3YTaen{qTCI+FJy!X)il*rGtjQ zrMg8*K_&WYUtZ4Un(|U6qY_~?;|hf<i0tq$jl$XMH-}KO3t@}&iVxAGw@vLIu-cOk zY<`UPMtnj^4sX_7628;vDS0m-Mo7J|`6vf}=q$EFB7=lI8*`#hnusJOz{#tfaH3u7 z#kW#KM`TEL&(sOTaLed;`5tVSY&={ca8Kxx1iDExJ9wc{@CSqMq2{MWnTWCeISls9 zyBAx)JL_X0L?7yvO>M&T+#GIX_$n&3OJwM{&TMs@y4EW!Y$a-uhJhhy2sQn&n6+Ah zkP=+|rM4SpX1oi$Wbj2tH$BuL+W!k7$;sg<r@P)TB7j`thsSl31ul<_@v)_h;t`T% z?HS#Ta4}?1qc`BTW%L=n_#lKNHLYVtu;b^G8ohpyG6A*m43;BowRydce@teuAZfRW z9{>&U45VcUiJ`a4WGSTGI2#B|Lg>%ofeA@Ev4skKLB4Bx5uX1`*k_n>fYV3YJ-&DM zOL%J(e?Lrk<fHVj1fgZZ?FoH%@cX?Igf3qoNM{)_I+vTgT-%U15Yypj>q>Y?ghmMc dP??vT{4W;x%nw!Gxk>;4002ovPDHLkV1nC^T0H;& literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker77.png b/theme/img/markers/marker77.png new file mode 100755 index 0000000000000000000000000000000000000000..d2ec2b13b37256b2f025e4c0eba7c879b3550903 GIT binary patch literal 1207 zcmV;o1W5adP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&CSBFg7qSLK=>Y00007bV*G` z2h|4@6B9C2BsSjw000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000CI zNkl<Zc-pO2ZD><h7=F*qjnyPg#n@?S%NpCxuZifC!6-PUbRQHuT$PDG{3pm5f<NpZ zWxo^#W1tRk^~W|8VOVwRY$>|Z6>V{Aw6;w(+VsQLe#G1)O>)zwNt5II-XtUG&4+V+ z;koym=bZOBAMbn4y$mwj+lW1gtq5bBlM#K0HpEamCzgiOA?guF^;&J==GCj9)M!vT zzVHXYD!D)oh22<fK%7DNvk96JjYS6i_TxLZ!oiJ|ytn`-Cu(B-79xDg=Z9;yA@<!r zJuvQ<2av5p*wP7BAlj?TN=vTRR&&$J0tVp)fJh{DNR0rX)q>Y2!{I;f!0+~vm&oo$ zSd#@;AUZ!bmu_o1Pz%dMfo20)P1HbybJ%~a8Ey^^(+uB7_=I@#iDH9(+vVC%_-l#9 zmJb@7&rf@+`MQ<H4al5IG!-GnzTZ>D`8UToum6f;U4@K1`ZRp{5tV7_W)UAB>a=3% zfen=ap|COnIxBDQd<ZIjybP;#D>C!wvu}MluW#=x^aSU3(~{rYXj%ou#(aQiG-Xvk zJnRE$E(j+-*pZn>ACp1HwiKGE>0J^u73b?QdYTj`+VG1#17KLDg}U|S*?B>Ll6(V| z3WQjwnJOdiy_mv8mZ7G+4Dyl&%fvGl6Cgp)ge<Ef+dBMQc~_Mb<>sSY86=T5mM4-2 zCW#P)fBRUboyvR1+P6{!RlLB!9SHEgmlD;iq|gxvhbM15#j}q4k}#XgqrA%s@>2v= zJf51SXCn+F?7~_*2~Hp`ecNRLmrv%2;KY{zYxKGl!4w{kp?@~WPj_|`^)ter2nB`c z@6RjEn;PqCxQ0TsD1}reP#^_<=(kpO_3^V|WOgFli7<r_Z8rDJzCoAA_{FAo=nP~R z6t!^V)*beX)kd558Df;^<m970_{%D}4+<Rec2$_wH%-Ep=fU~=58!l{C5W{eM0cV| zv#9G7Vx(hiqHY(aMHybM5LvWzQ3UI>lYe=$m4&0xW5`@j*@-mc|B8#f^7ZWw2+oH% zF!iNg-*%79E-bWT@q%h=GwjeQtJCGZ_^_WPrxK+|%iu7y#FG1D+E`@}qz!I3XX%Bx zxnR;PIh^h8rNS*l*MAWtJ3lhxlbh|M478$hc|3MV@aO2b(w507n;>~MU9mom2SWpm zHai|$PM^`+Zz4$6cz1jfJox#fL~kCVoq(on4!H#Hx`RRQBZm_t6zz2=7eGrk2Qh~r zDfIU^q$)a%^O49j#Qq%KSdi=irchNVs+^jBMBx7l4%lbB;0w`l&px}?6?{I1zaNgk zER~-ug`hMg2V&nH{C+Qmpg$Ce(p^T1zFeJir45-EF&i(tmSTn^I0>;IDrc_FuK@35 VyqF!q2LS*8002ovPDHLkV1k@qC=37q literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker78.png b/theme/img/markers/marker78.png new file mode 100755 index 0000000000000000000000000000000000000000..9d2a8edb5a4d98192fe816a3e1bcdb83d352af31 GIT binary patch literal 1306 zcmV+#1?BpQP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&3MAFg7qShrO@@00007bV*G` z2h|4@6B9YZ_U~5!000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DW zNkl<Zc-pO2ZETZO6h80UmW{RRVBOHA8?27WKnS7`6SD{r+|W#Ga4sX7;14x1#%TEA z{y_YNiHR{$h#~Wb8W*B61@^@pn_~eMb%n95gTlHGHuh2awSH|~yY_m{?MK$NYY}&n zC->fS?|JUI=bU@rSAdme6XF13Cqfz4xe@({4#aRGBO!q<15tzcKrWNzK9!RV1xf{9 zc;Dp#y~PS{pWlYVTEyoFS298kqCQU{f9B|(op5+-F;i!ub5coY-C}@EJ6&+rFf4re zPcKZk+=HmCL>LkgZbo#L6&B>5(UvjQx-0?wivWQ@?3NM{Kqdo+(+x)&FTn-l=mXU5 zN9dOlu0>oc*A(n(sM5k3sYu>HQjtm^z!<!Fwi(V1jgW`WA)I1(`ct(+zUwFLLH1B& zq2q%D{rUd2GWNteWeIAIN2c-+<6j*pW$d$~jMaR|a2yBH>yA{h?YY@}Of8McruO9* zNk>Q5kcay+WYU7Fl41a#pYMRi9J8Oi2RUogp+vQw>)&Z<2ff(_?bTY|zI*XcZgXf$ z5nG?0mP@fD!e_UtvO%rP1PBIWPIc-=KUn6yaP0Zrd`u)H`#0tD_T~c%w^1oFgdMpm zQf((fl{!<7*^|VOQNU044uWEh3@W!2g*@C*!rMPa$79AIijbeFpk9_3O0^JIkyr0e zV<EetqNotk!ke9X=>>lLgTFSyzKv==j@F+LA|OKhq}v^r+18PJye-Yoi|XEPYzKqY z4y{$M!sYQvsJ_q^ng}w!d8BM~w=H&<B84bMjde3--tK;ULsWNuXoR=rnvJ||8XiL% z0c;)*>!)~Pn2Djw<M&Vfeh2S5#w#M^2}xmAW>oj|hMbrf^3CwpG~68(?A`?{syc~q z67k&^-8!&3-7J!v@DboKc}A4*XKgtrp%_wIr!525oR^)r)<e@jAdHbzP>TM3y;!rY zzOsTzC`HRkC{9F5q{!Yn-zuEBb(dnX2VslUiVx9Yu+1JCvf7nzY<rUKMsh-_4Bl_L zB>bp1Q1D(sjFEb2@lgye>n*m!B7?NOn>Fz-O+?bu;N)M|;Y7F2i=zrePh?86Z0R&& zv}=5_axa!kAwI4USax)&6!bG@R(-Bj@CSn*qvp4mNF><*7d&j;M{Ql;UGOmw;ve;z zj;q4l;$kOuzl{s+3K2T4H(MR2Zwv@aONmOP1#7V-RP@IZ=4u5(3UKW=x;~hn_b&00 z!Ph-~)M-L={})1%lcTdvce8O!0GX6O9=A*uXdj#4b1NAoBP7d)I{lq+G9*xMFyggk z^cih?6he~vD-%;-$ImAfdNbW!+$5PnD#9x^uh((YWCjb8_L=wt(2~qRnu3rR26|1F zQo4-`fxrxe{u~~ekmNd+P^mA-Z_NP0^M45kjk6AL`slhR_wHc{?~UW{hsiTX{oAWS zXqk3<Lf;+yey;|h%NGdJTSkn|REtxU4T%FW7w%hE!$TsRg3u3@Io0BS0ay3Of`ir} Q2mk;807*qoM6N<$f{2$@^Z)<= literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker79.png b/theme/img/markers/marker79.png new file mode 100755 index 0000000000000000000000000000000000000000..86bec8ecc4ff081de21011bffb1b76139bb094fb GIT binary patch literal 1328 zcmV-01<(44P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx#dlG&3MAFg7qShrO@@00007bV*G` z2h|4@6BGrb*aa5=000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Ds zNkl<Zc-pO2ZA@EL7=G{V?O<(zjSdF_5!`UF%`CVrE(Wv35vGO=GjU2Z8ckfbsBz(k z{Mq6kXIx^8I$a3<&_!IbjJb(}uuTGF8=@2tD5D#ngYnVPFWOruE$#7rPg_PQlsP%c zlXLES&ikDA>zs21Sh_ud$VF^J#0F$Cq61Nj=vz!lSVX2mlpv0%mCA%I>*66bR>K$G zb2ve7GK1{)Sn#t9@j1c~i7*{ek)%;SQ@nE<6lG<w<Tx}=Qux=+dfAxW0p|^U!k2%y z!LUQ_LTMqwuo&S+L|tB5YRcJyJf>X}CxB-b!0Qd&QXv8;l`v_S;ho>F!Ee0-_ffhR zp`TB<8gX-9dTMs%!2(z%iDV5#Y?1=JjKOQ?tKec!KUw%J!Y&4;KS|c8vwtplkv$Zd z-+fS^JwNWxV^6M$%|yxZ;8YS~=&Rfu#y%}(tmFfR-(ev6;E}i4uE*CiNfcS(rVUIk zKE!p(UV4Gnkn8DW;U1MzN<EmF0pRxV9Z;FWcJzH%w>la!wQITj@RfRK8Z|<BelAqp z?t?FyTDi^vBwrgHl|Zp1!tGhwcu0<o0r2@ky!x)S15DE{IQHBQ{#`#b!u!{=GI)Qf zr=RO+H7eoh1TBfS5}`IZMvd81gpg6dOWV3Yvq}l*o<D3p7P7`*w)qF52q`fd8pVnJ zR10AhdE?#~7P1Wa8`2;uuo=dW_vgBM0vkN=ND%x4L}(q6<*>}w^xx%uPD;|8?CZVH zL!w#*pZ%%hv5l4jUZLf*d9ZAB-6kuHl0X#aly&11yx)=d*qm&8VgihP_%3w5R|J@8 z$c)Eii2_)hPS$bXL`(F<(BSlVMt{Yu0mkb=e5|}ri;J0)rJg<m!pZNU1veXaPQhDS zHt|zad1pYdx@OF{q>czFbw8YJ)PdP9vtV)pF2H)VYL2jU-yR<PoL?@$;q0w&bXPVw zrd;gA&1RbZ3DFx&1*Pb(S2EH!R}|(m1*K>~357M05-GAbFVzTVZ{5NAft?6TuvXlN zT7$)QpvP>DeRcCwbT%RrN=i6%`I>M>Z=m44j2I;G{Nke+)ay-_B9TGV?v3f;H%+ib zN5QG47C6zUbKzG$qB%IFSg>>qG0-qHQn(w-B@HiE@Gfv&l0ZK`!QQx7BY1qik5O_V zBod44e-523|LAH1xMti8gz!tfr1pj|H9K2}!_#4*T_Qrq^%LgF($-F4ekoCjRO9)r z_80xJMRT<TAqBYXTU|R$PrK$>$>5vjb{bqpH2xPtYNrNlcDbr|PynUGFOOSB6Z|na z%;%O;ibP17mF4=|fn+G4!qAJymeDhM^-&0^Ra_q)1uH(EROnTG6bYz|q_7;}b&Jb2 z`Hyh|Oi0>p<QG77Bn4?1LSpD_Gn#VfG|qUv<KX{ucw|CqEm%T1ZXZ82oe1auCG6_8 zO@iG`$33!j4@-D=2!B6}c>iJRUI{|enC$ewJNSOD1fj$2<<A{4+Lv3rT-i{YL`((7 m=9RFJ2uH#HLp8D7;(q}G1;@$E-_uk80000<MNUMnLSTYpWMh2* literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker8.png b/theme/img/markers/marker8.png new file mode 100755 index 0000000000000000000000000000000000000000..02955ad1a2c69ac8c595ad7dee0d224e284264de GIT binary patch literal 1253 zcmV<B1RDE^P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGB6-5Fg7qS-Kddi00007bV*G` z2h|4@6D|T66;90n000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C$ zNkl<Zc-pO2eQZ-z6hHU1-Nx3nKsVyj4X83L$bwUdnh=>m1~K3a&SgZBk!Vc(!<c9y z{vm&AqVXTaukeS)xZnp<*e7Fbjs+zkn`5j%VILix>sI=;evPhOdp+m9)vWDni@1~g za__nC+}}I*eBAdKq?dJw=MY;En#HvM;wqvCF($W($*kog4kO+uP^pR^Em{p_8ntNn zw?7Cbrwan%h#S>ohz}9|OoRqRQ;E9Z@wc~afdd=Mxn7ITDHW34LX=PY{BXiN#y<IT z5GMVBYq(mAFv}5cK=f9xFDpG>Q_XcNwG1K)0MTgTD-{BON(EkD02*4)Li4EQ4zBJ* zn3fW*K>V@WP*&MeR|7dpfxLl?qEtYXb9nhgJDeODCl8-Q_=LsB@9NbBmEYIw;rB!) z9Um0v&$lmB^9NUIjJR@ymWi+g@#;HIRYI}0kR_81%s8Opn;(FE^o2N*{;yy-wCa5J z-qTx2YoHtuVO73LSypE(2M9+}968j{4JL;hy6bDi@wL;xB^uzK{f|7vSLNjvQ!I(_ ziH*9|pw|=v#9}FgL_)H2U8y);x#LVUz&$$jvZ7c=+GZlu=?e=mdkWc59jY*j;~9%J zK~E4tfYL%W&9s7)Y9?ReD4*|o28_B@u;=Gis9LKRbva>7A|OJ~R3MNxvj<zd!R+!t zXWc$HXPtuj=B`wu7{@N6u9V8A|Ax~8Hd+vb6x&lH<Knp6uvQ$~#wL=E%fKBB@~cv8 zO~lX_j6`g|-o#$dQKb+*wx%c{hFc$4lW2fl({jtgJfV3PYQ2;RYHrQ2-C5PJ*~s&A zau{F-#N}Dc?nRp&KE5<4k~Qwz1w||Jq=(ps{!o}7Y(B%>q4}?H<;Qp`C`FfEEH`Xw zs@=;Klp>iDN<JzufxmL9lO4Z)i{i2k;f~iz7|~;P&+Z>_c{DF=dKi{^DJx19yxw+} zeP=RL@SaDA!ChK>6oYdnr~81wA$P|HL+VWvm%Lm!dT{_gxX>R$Z7<?-{84f>Pa`aS z)~VVZr6sT)FIR{r9bKse(~N`HpX_9jSnMra`6VF|GVlKh58L==S09At!yH&@#UJkZ zoy{#Q^y2i(l+dP$&=Hfv<^B4vVU|!zSRx%*mmTA`Nqb*5S7`_-z{fu8AA-AgLrc8m z@ag3tnzSJ<{1-x!qn24;pnY_Lfl4V}9@p(o=$@DqpQYQBiI8@-G@5QMCPM*D=22{0 zPM^`P`ynK0IzMRx4}LzW(A%XxZppME8{v6(DCE6jcYqT~hwS17(2;3_G7BLw3=i6! z+o>DpqtO|V{v7U`kYoT$XnQy&cFiy%_<sqnjm~<(7p8X4?A^T*-nQcJhdnq)^Bc=S z=$sA&rSA@abvX$A;b@HRGGg>)GtO2vBwoba;@q_y9ulDqq#r6rHsgN)tB#pwd@-Bv P00000NkvXXu0mjfO)fYD literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker80.png b/theme/img/markers/marker80.png new file mode 100755 index 0000000000000000000000000000000000000000..c3a4361b9242560689fe6dc68f4437d24105454a GIT binary patch literal 1323 zcmV+`1=RY9P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF*G18Fg7qSn)61J00007bV*G` z2h|4@6Bsoqw0gGy000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dn zNkl<Zc-pO2drVtp6hGf>3k*s-R#=9>1{)~Mk%?|m<Ki$lHs=sCk+8UgB^nd|FeaKf z|8R-_Xrl2S-F#$!_=sdahHgA%3}j?;*#u-jH@Z<CEAl9PK_9HNwAXXK+cFBJos*ON za_%|ze82nM^Z4#%u(E7IJd4<lPz8KWL@%NhF&J(U3*(DN97Vj5pirbdoV*S)R7xKB zkHZC8vjv<UuNBRch>sACNQ7C4>QrUIqi^rr4u|q`#56T-PA-$;=6&LX-2ta{gY474 zx?$AeypG;7gf1LmHlnRKGb8;}X|bqTt7hPx2k`kqA1M<66bhKJJE5}fJk;oir_fu3 z&@LuigZOiARz^W>c`3xm1=<Zn6uAt1q6jaaZh$ibL$t%k5q2SP``t8ULctHE`^0-9 zlU^TWxSwxdC>A%bRpp}R7`cfs74hmjPZU6kI+0Oe*Q5#Zzxff^$6s(wHi^sYg_7z9 z?kDYXyFsmtXYW0^gKk$+4T!KXULnsY&&>hwc=^I3jV+)xS)rw(l<U`i|AYHKxYPml zgCp?W^F>^fO=}K5v_(vci%p?i65(Tcnstz-N(Aux`9dNgDcY3I^|dK8*F-{6k(YDV z#x)w;Wqyi=T-%6Hla`o()srox=SY4o*XM=}A-3K&!*y&RHfVz&KzgE*uGE55Y8KK! zC-yuIxtb){_e&iVZcO7guS4Js7V5IdW=tX=Lfe?r8B*E9buFN?*r2Jr1TGlHprWQ( z>J&i;AzZNiB2E!arPMZ^{bn1ClOqstc3_C>y;&PWa+jT?=6WvB?A#U@SY0l$SIV=N z7}~KN#(%qsvmT@1fsd?D4$0w;4ePl+uqBi0pZW*x+Bh|}w}zR`J!e5z8)cV<Th(VY z7glb|72{)K*fSXqz?E?$d~&s$lU0@Mf#fxD@KpK+=$*1~Karhyt`O$DKJjqPIc9aw zeMQd-mV!!j^~Id5t<_}*L>ZN6NdcCLK!p^<SI#!EQ#Wo=j&>rf!CvtoT6Naxg98?u z>ZPp@0^poR6uAOkuRqVe*Xk&F`w=|RvPB`3g9}=-^^hP!?C$KW<tI&0;$q?Wl`i=3 za;KY8iRcL4k}V0HKn%AV#>#f5r$QzkuHakp>T)?~Crx6-nI`7-``<#(uOXQT^ZcLj zWvkw7ZU^_AM+CO~P(RvwiOtT>x8dcN%Tl{ShK^}XmYJ{r?qk7L;({&Gh&|dkbepXA z!`5mALQ3$-&pUhI&K>unU5fBoM-N@pBQF0JLXzXd({^WreuRNS&JT|pMl-aGjPiRc zEs8`)D{HH?Hv`3xLA6egV=K~UwE2DrNvbc7j)M(9pVa6L(oEMzS`dx!qSfu5xn?wh z8A*GL`~YZ-v_Kw(kQn;9jpki6jd;pTg7oKb--IMx*h0HJem*sQ2-p85ysn>~0lSCB zJ@W4EmGHI!e?N?_S-S3D4MOvT(<Oa(01T@^=<xXbbe0jLJz8+IwjrT!<!s>EvKl)i h!f}v(s7%p<{{<cd$j~Uvw<`bu002ovPDHLkV1hLMX%+wg literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker81.png b/theme/img/markers/marker81.png new file mode 100755 index 0000000000000000000000000000000000000000..143998de46a6421f4a6f69f31d4c0dd62963c2bb GIT binary patch literal 1275 zcmV<X1O)quP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF)$!4Fg7qSZoFcE00007bV*G` z2h|4@6Bz(z9FNri000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D1 zNkl<Zc-pO2eQZ-z6hHU%mEqR4KpAoA22>bq=z>#-nh+rYHZVX9jyco>5{Zd_7!ysz zKjcqLNc=}pV=xho3l2AheLBa+n8>1T1I7v~tXoItx|M#dU!!Z+KF@h?oh$vC$Vq;^ z_nv$1ujieQ`yPYjvI?;Su@Rx1)%g%N5bcPeM2A=cT_)lv;_WQCJm<;f%OGE=5DowK z`ay4ZfG-$w;_?*YV}v&qp%zh_tH^rhz0DipU{QgfQK56ZOtPB^3*#Oy)EI`?Cx2ao zQLpbNYReIZM1*S*9i^-D^Uml>1@#gYgU}2>I2`+zG7dm42e-!uhZ-(GozZj;wc8Q; z`Gk)lu9Ru>OX@3hu!!f#8%Qa<48no{2Wpz&+~6>I_#DE+&2E37QDl{TuiGUoh)jBX zkfA@P_mv7yEKwGs<`}7oFc<OW`_Gp^jw+jxVef<uiof{**oiO1k=9WmuXfioh<g+c zl_HaU_`)XIIz%}j!flyyKEI-{03a9=4;^l91HH`&ZIwE4Jo3v$QQvpZ4m+yrpk>(n zucvrs|N1q;(#07$6iXg|o-I-@1C26!E&)VBvVB#aI9^90lBZ9fjeqn=1k~tdagG{( z8?`(|9;!9jS(rW9oXz3lLUH`nWR6)Es+U6bzS4M7j)S~x1<h2Plxh}JK%eh?Q9Qis z#|GH8QX{TO29CT2uND;~%n@S}0TH^!e7=~>zR}PI28Rn;D)z!9^B7dtwWiK^M8Gbh zu9V8AXTa_P3n@6Mip~!Xi({E~r8qVYjU*@I7&!fY;f54vJu!6pLm|u0x3Sk3$)(`0 zSRNC@O^>fgPKaGof5*gJfoTV>I*4!#@%4$W9&mVk0wt$fS0<8B3~8*|yE8EvwxM?_ zARNEaO{;Ga#%L-iMSs3rpxsbgzDJNzim)6~3P*|LgxAlvurs&rP>ePsoY7hdBH9hk z$^C;4m-3Yj>j1DLQVK7Jw;C_7@AL)=-b)BE(6V_Z6oX58yYnC?K*rX!+W4C$DvLAV z<R86oysIaGt38PBxhOnfI*u@Pn#anw=H<d_yj&stz@zg#=qGGK<+&CXibUQ;%}+6r zNbvt>@nNgpY3+o-bWi{mf2kjB|D8?E%yi)N%ec@ciO?~<&Efv)YCnsXQnW;xu|}JR z@6zg{gt<yWNC7_eSx+C_zaN<Ar2wCH_tB&g(e+;lNluz3J-#O62m?7UULLosc4!+J z759=IN<~N~>#Ov)XOkg=T7wbWR-o5t>%$O|)LtI7fD2!rROn4oPuHh9kdE-OGZ1iJ zx7xstq<vQL0%%TkfKNk64E@)v_AS(n)8X(0NM8;QO-Ry<CA1|N5xb@z;s3vcH;t2S z@C2#dQ+u~i!n<bt{IL3`Xg=^L2<_uOzx3V#FsCzK2%$F^j?i63jGlDH>B@%0jhLF9 lJ069HL}&r&gUXi9_#Zv$sQt9EcUu4e002ovPDHLkV1m<XLlOW0 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker82.png b/theme/img/markers/marker82.png new file mode 100755 index 0000000000000000000000000000000000000000..8d7adc6b572f09457b3f81c2dc73ad2e8cbb927d GIT binary patch literal 1325 zcmV+|1=9M7P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF*G18Fg7qSn)61J00007bV*G` z2h|4@6B!DI$!5y{000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dp zNkl<Zc-pO2du)?c6hGhBuWYPcJLpDSwgJNp2fE-86eAH5bP$7%;9Ry~G7^-CM#V=Q zF_Q3)CMNu$qQ>xtk4W&r6xho#R^1#Bl}#8c(6L8H%O0h#^)<S7?e(1dt#f5thq#mc zdcJ$^xxeq;^SECHm|2z}o<OWZXvS?m#3h6t(KFp5VH#T!q5`o;rBtTfpSlpTG-~d6 z!|Mlw-2uK}$ce+lhz}6nc!b%A%5=4A^_y!~LD`C2mZ8PXNebC-EX)QyUN~m#5f1)! z0W4nMWwaI}jMEY3Abu-cnw5F9sF3MWv;u_20K(zeS1LpRr4rm8ACy<0hLhc<n`qsH zFia+#k2t$IJFB3oqzL9oBJBp^ill%rWANOuS~%X-OFMi7;StBD-^oy`3cfAc!tRJn zK0YXLKVLml$d;vO^3bxM%tV-u*!9-B0!Y&)3*^`~WP|)KzXRdJ&$y;B$=Mr&G4@WI z1GMTSVc(-`Xu6zoK!h8Ulu}knUM@f|#24<YYXpPM35}&iT)*(kuiRc*)xgJwU1eOq zbgGH3*?!->Y(Zi|8pTq=pNCfH7D9$5c_IPiOtNW7Cf65l+PSv8T+a3AxL=dGA0QF| z9quweO$WbQ1|Fat>N1j5m_5Zrcy{LJaec~Uju}U#rn`^p)cJ|BK@=e~Sxrw`QBJiG zQ$U|S`8ee17QmJtt6}5f3_gyEdo&1p^=J6=w&lzIEoea|AVOEa&li)~=c^mR=x{-O z$<zE;r6(IE=Jx7auw#6Xl8^ug9(!0eMi{q6%ck|J-30?=5alX5(bdcK=Iq7t5qsn# zHd_YZ>kcDG==Xh5A@ER%0yzDCc1e!2ff$<oq0qq3o!IO1lzicXi&A4^xaOWkTz_=F zo$Gz;R!_W)x~A%yNpJ;59n@*jlN`uYtC;<b-4XWgYs~oK4u&KQ?OfBCRlLIRnA|oQ zp11cza#FPPd~kB>QHuWDmYcn@vUn>~kR8h*u85RKk?lB9FC4vcjbgMG;f&Tw5TQ3Z zhqre*T$*QBF2{GX_=J)YcGsL1zA+dncuygCpcRu`C<aXiyR%GWkgy>qd+JRSmBa)% z^hX=Kf37uvqpgVZ(J94ku7e0uv$?-`LuNWG#mg1Kw;f%Qz%XQErN`@qP$cp?T7HU& z#5C{!0S|lR)rMvWj0PD9Q!n)j{TX3oY>YDc`IOMk5TX4Bo5TIZ-yK4<l%ge4hc#N) zd!0t_O`EG32r0maKWS};Tekv}cFEvlxfW{>=l%;J$syCQ$5-3kCxBAom&X;W9UA*A zd~T*i@d#;U)e%GIcrp}FY3#<fW%L<sxEn%}$`<Tj7k)me&}-$Mu8Ox{Ho_KXAmF}e zwSgT;+pYWpsEfBinuU-UIxbl4>!};@rXB+MpTk`flC)t7tq(?c*K{EK|CjJ`_plp0 zL2CE-ySr1u>t_7>VfByD^VPW^v=93H@^=ToJQsxCU^qf|88LchbDphiNZg2#@n^?e j?2rftK>kBzo6Y$j8;{WjsCcWi00000NkvXXu0mjfY-@0( literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker83.png b/theme/img/markers/marker83.png new file mode 100755 index 0000000000000000000000000000000000000000..4b42a04925ae3dc3ccf05ae84d30f5d78627c2e7 GIT binary patch literal 1340 zcmV-C1;hG@P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF*6`7Fg7qSUsQM<00007bV*G` z2h|4@6B!fYqRtBd000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D& zNkl<Zc-pO2drX^E6hGhB7FdC@t*{J%ZPlSLM<zO=Cd6TIY|%|7B4HZ|OI%F+!<cB| z{KNgJiDrMO^RX;OGbQr@djO>}9s+JIgMq;4Mj3AyrKK+@Eh{bU=Q;PIvmMaR$w_`a z_nz<EU++DS`+Xd&ESnK8A$A}Xi#7-12BHx$xZEOc8Jiq&4DoifOqTFu{CY@H#4yJ@ zvrf>OE#Po_tT;W5_yjQ<icp29NQ{Yo`n{|ja4<bpNQ%SFNhPA+f>)Td&qBFwkUP=V z3FEVln`kXW=$0egifGE)l9GHjKTlAujpM+x0O0io|D}WnkjY@i?ts$jdZ-*2o<eIb zLK{f92JzP(RZ3=6Q9eXSdD;zx6sZKff&g!n*T9ATA==@y2s^*{_=BXF=**w;_X-b0 zCLSLoxSt<h%@ZD7t4Kr3aWWHOBI3>WpUZ@VxLA%HI}9es`2J_$KK+_$nv(?Dv(A)5 zpUDDoF>>z1=XcWMQpy1l=E!Bzl%lj$0Jn!NJfdj;t;q@v#raGh{rwMSFHzUC`IW;3 z&~BK55{x0ODR|;BVO>;Y0>x5_KhLBq*F%yb_Fe*L5lQamWTv~O%uM$lJrs0mA_boh zl(@@`1SR}AuHQ~OR3^nnWA-HX9FJtAF@0%xENJeRR=ttw;`CI}!1ItC8$+WwUQ9I? zR6t+tegV>y>tOG1)sV9(iOmCLUxgYrM$6&z-0Xh~niC0#&^F<41ZB3Qx&d?+8`Ku< zhvu;fD6XsvB5XeN8W@~&aNxW~H24JUBI-)9Y}$LxHqeuS7pv%E{}9uARGXMq4~_&8 zQah4dqoea2Se;Jch8SlpF|;^69{u?~?DYs4b9`z;d{7K`Zrs4M>eP>{WEw~Buz7ZJ zBI}x}+rymAHE%&v6J>&$ThU`Q=ag<w6XX#Q+>0rXuz&xowUd#R?cWXYYoZ_v$8829 zoM`J}WZ%7#3z57;D5<=}SzYtrBF``WR8Wdq52UKLRTS<MB$Og7hmgWkB6;EP#aiy{ zt=kl%EQHlxD{e%i&N^MtZ?P#}-}X2F_Gw6w%HS<^J$FW{qu{-aV1bqdxKIq5wPx!< zUVzA5TUASM8oxwE!pUnL@bT4l7gZ7By8n^nKG#XaaLd?4;Vz8P7RsjgzN1T}pf#9; z;tRE$$LD(&E$4zFvCRMfiia(Gr>+HD^KJpSrI-4##w*<1!a@@czgZI66(V$8YqHFo z`n!koml6{!5e?R;W@waVA1#}!6$mN7r@w6PhP!uN0lO67i|gGqP$RDX7ebPg!_#(0 z&A<o;GAX+}ZW+zcFfz`bt+Xf<A+4+`)AlVULjo1L0c=}=UZZsnLr79_d0Y=Re0@@( z*N8n`6>32^!pl~dYo^O+0yC0!8`%Y*3AI2PhL9L~I*sOR>c)Am*8t*|!$T92bYKZ( zyM3%{dJxY4OL%i&dIs!nYWL8)dr-pBG5q{6;th?`yBdV%NrzK>?*NRg2H~vR>!Z7j y813Pl!<7xm3}S9^Y*~#R5}_W%4=PhQ=YIf(k;p3W2_&Nc0000<MNUMnLSTa4KVxM8 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker84.png b/theme/img/markers/marker84.png new file mode 100755 index 0000000000000000000000000000000000000000..dac01b34559a92be14fc358b204031a999aae704 GIT binary patch literal 1296 zcmV+r1@HQaP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF*6`7Fg7qSUsQM<00007bV*G` z2h|4@6B!ztes-?_000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DM zNkl<Zc-pO2du)?c6hGhBmf_a5KsVyj4Ja@f=z>#-nh+sDHbTG=oXdzNkZ4SdF(#Tg z|Byd1A@Lspjln1y7kn@U_HvHRu^@}OP8jQ0_w4B0qw8yZZC$(edd~gUvC`K>PV&qB z?)}dBednIXy`KPyWj*2r#CC*gVa<!Ujc7p(#WND(tfeC=5pQNF6xokwt${q1k}Lk> z@qxi+2X7$g!09=}M+i?cLLH(yN15@|yF0hT(XIJRt48PKGD&Yf#3tMxxM&;_KK|<_ zjC#C1xLSrV#v|N}Xf585mwTbKm}yq21qjXqghJ7ul!*We1-RT^I97WVt_+%{aCI-j zu$1r-#ElYNUQtbXDXfr-<P9VhxeP*#!OIux;nKh`dH4*%EiSx%U#rY0`nGgGTNatL zeUPC)=U*&l8&|0caODIo6JZYGwfCMaf^2oBK#HA{Rw(@HI}lEN%14?<guKc*d!E0e zaHy5(!UxaopjXEz2Sm6hT_MjaFUSW71i8`ihGsBW9nf4+%E#A#`E8M~ao7x#zL|TT zqRo*lo7n1=Y1tG@B7AzQW({annE>H1*C7&;z3X%Ncx%eGX#aJ0Z}isDMuT1!W@~8n z1QBYqnHiWp*`m(z!U8`2YBER7?X!OH27|Hj6h+9*RML}Llu|8370}sz&qIM`HSGVf z7WS;u@;OOWPal+R*%UWNf*=tPp>xdZjmqq+was9(JE5`s5L`2lLB*A(1;TzfoWC)a zEzGcss4Jzi(f8V%Fis1iR7IBuhWS{cTgS(`p%FgnC#N9m^q2R%qD+edID9^KTZ*%R z7}|Wn;P}sd*y}44T=B`ZSy3_E@#tDUvdXtOBEp}sYijyUg3~`|$E8*x97B9@s$CCu zx0g|JzAr7|Bosp$s}AjpU)<P+o*6$od830D0Aetb3QEzRhx2vYs>=>C8Kr2Ugc6EK zi4@r@mm7r(cls$tI}wgZtppG)M#uD#0lQQ6(zeHNKP)++Tmf&?T@}7D7%6xM5IoSb zB`OqyYX+O+sK_8~_hwz}NfVKkX>jI`PB_`F_v7p!qGK@%_o+@GOl{_|vfa5kumKNO z2;H}Jxf~3WR#tJTQ3!^^@8HT$QIUxA{U30%Rc|-7fqyQ*K!`omD_edSX6ENx@$s{m z&?bn`34_({`uy*1AyP_QutXZLMjM9j((J>yxk^At0X}zH-vzU?{v}>A_@twY9_kS7 z|Amm`jA`2Ktsfi_Kq2Rc#~q6enny<YyF^CG2+6Xh%Fwrv3>j1#2eEA#U87A8LP%15 zeRLe0czsf#*GoNJlguC$;dO`K@498Nf(=Q#Ec^gyNM;~UK}ZbUH!ZeZ)QxkY&?HEI z4i8L7(upOsD-h;g(~a=`U&5ZjX&1Ny)b7c>TQ1>UGyZ;9q?@icmGW{3Z4+LfbngI| z9|oZ(5DL>-MvU%M%BjkR#D$35?DmJ@ArX#)^h0G$rTi~ip11k#hG|j&0000<MNUMn GLSTa9VpOL9 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker85.png b/theme/img/markers/marker85.png new file mode 100755 index 0000000000000000000000000000000000000000..5aa8001716874dd0242d14a59e02f34cf7595fc2 GIT binary patch literal 1348 zcmV-K1-tr*P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF*6`7Fg7qSUsQM<00007bV*G` z2h|4@6B#H|sV6T0000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D= zNkl<Zc-pO2TTGlq6h8l6fO1(13ylcdvKA~L4Wey)A(jfgDHT%@X>0<Cjfony>4Uu3 z_@s%(7;Uv0(nO7fsHGRKQVO;NCB=f=w(YiD3uR&18!WqYFYJ!z%)hj3fu&YX@?~bu zKj)j7bD8-CSXnk9auFE_g->Tg^dg!OgUcBS%jiN8rHHq~<nq|3VxmE%2<H>;%-TU? zG=a_KHsi1i@hM_95TP1T85bV*%+c)`a4<EQ#Yf`iWKwb7yoXI#XW_JVQ265SE*P7& zT|;dFLc1Jc65`VCL{&mX{%)pRA1Q!)9>C-AUs5Uokjr7lYJ=jMi%>N%JcZgEgk~|} zI>cXl)T+$t!h8slNoY3^P-If@Fb1!ku7h*^L$t%^5LSur^M~=_VVOVY?`01~CLSN8 zxSt<h-p!s^uSh}7v4u}@h|w=|vl#pMC}XAXvX0_HmL40;P|sT$lm5;-C0w@{WK*{9 z1?tn$)wILxP`ON1n34?Oa`P2R>YG4gFhf&OK5q~I{s-50OiuCka7G&70vu#>V9RC} z6%rgvz9hnDQ<c#WuZRHfdbt6SkmPJi;BEJm(U0)Rwv78nM;m2$sIWCwNuzWkRK`by zVf3W;=9Fwr;q8UtQNMAw-Uu>@1hUG{Ley8Mpk1dI4N#X55l+2Gi5P0ZFM+<<^*p2~ zqhRlEHIThAo{vec=q8~&FBg7%DF>#VPB_xsdOx8Bk$?y-<2IXLWDnIef!1V!hQj@D zd2}3#sv5c8@cx_ddTKJ{B_;Y?VDKHAVHHtTifPkv!)O5=DI{VRo$nvw?H=_;-qsF| z_~*87HzAmdAQ8Z9x3gZ+&l+NAvAf;6vp2EUgXDbT(;H&^e7Nng4ZKY~RRO|h-$LEs zZ9Xp8vYA&+^{rvS;&7U%(kK#C+=@QEF}pZDg@pzM2|HDfqrdd<d3zTpE8o8hV%CK~ zCN9*5emvgU3%Q9ZIJs{pFfU_=sxAm-hx0q+`DGy#6r%Q5lGSOI1$j(LA@ZfriXx#v zO4u9c8-$AMx5!7^5$1(laUq(u=II0dCX3?Lv?r+s0u##Q@K)_b;U|rjocAJvJ6gJE z3i;r&#%Mk$VGz6{Nxk%@S&)!mIB}&DK56T4;3yAq^<Kapm^y(NZW$df*pUziiFmn! z=YgZkWT2Teu%dGfg4^r;05xa)Jh9CBzv5xb-)n3EhttJCSbC|KHvcKi&Cg%L?#U&t zUBN@gGzQbm_y6<>3#r5fQ=}eqw0?-E%}2||Y6U`aaM|&W9=Lngv1peJzP{Q+omxcO ze<36}F+6Rx)eVdYAeZsW<2qgrO(SFc+e$`(2+6X#TyxVG3@KD<2e51zJ)@0}LP%2C zI;H~)KA)86bz)6d2QpZVu+{8v%yjDwU_{a$J--0z0~yFxAtZ*rF1;~}s?q83OoI65 z@W_NDotQ#dE-$Z|K7{@M5?&jao&l?i%02Mz9+vR-DE@xv?Q_(>u@;2J37cJfckumQ z3&L5K$4hq^F<Mufyjt3j%pm4`ebZX(kO*}k{!kfKoBS^^q1LjCAj^{g0000<MNUMn GLSTZI3~t8& literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker86.png b/theme/img/markers/marker86.png new file mode 100755 index 0000000000000000000000000000000000000000..76119a00a318cec2d72702952e899c84c4b989f3 GIT binary patch literal 1359 zcmV-V1+e;wP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF)<)5Fg7qS$jfOo00007bV*G` z2h|4@6B#i#!jJC&000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E0 zNkl<Zc-pO2eN0nV6hE&Yd{fW@qe4|ww&Em?sdG!rWKq#<Dn=QDXoAU>CCjpG*^;q8 z^v{`W+5Xsc&X{G!jJP@3l+OXel;I3c5Robs3dJ%CwO_QfP+HozbM9*y6)4Vel3&le z=idA4x##1)$HDxv0<j&j9w7_ZoQOM!CPd#{o47e_F^E#cJF!w}^0P@xK`D!43;!N- zf!b^Vr^jo>;c3J%#8^1O3`DsiF828kH?4=_tV}*F0iBbGg>_Rte%LVv7c_m`7k_oY z;F$9+S_=@Gxd_)FuH>y$rk~5t<K>A79C)Vye7?}X6pH|)Qm{LmP*QanDzv(XXx)ZT z&m@dS{JAqjnNwMq4-pa(c>`fZA_gDN!|NAn;9_q-dAJ$j5Cx_`PK%4p`5}K7|5#+g z@j;CKoY|YluS%4u&~lW_M5sW#`O%9xkem?D(Zco-6J&q?BXFO6!!(UaCh_>il?@R6 z<tb2}JPY+&9VEoXaG$)ik)}&12Sk_~Bb6u%Rha-DFWY#ywh`1OD>N46GyT?YzcV`} z;-~IjxOVUWX55MPD{RmHXIAq|q9T(imJ<BgkR@LVX|nj~1P}?ywiW42-+pLjn#fXP zV_-vSGVrDE3P<<*L5^N#C(GfFLBl%oP@Wbai`f%Thv#s%is^ctK4h%5*<lI^C=7}d zXQo2|A`zs=$I(-QNJupoQa~qmybLP&64>=~733~YV`CCG#@9UIh9elW5!X0;(A4s8 zL308D5!!~F&XCL=s%iv{#RheSd*G^m2#P8igh~+!Me#;fCey73W8m04i)pZI+Pcj) zFpwdz;Zkou(>pVkGhN*`z_d!97+Q)V^a^2hx%fLmoYln8?DBdIzuw1QkC3v3&!r@V z#BgJ33e)>CS22AalS4w`psuOx(Q!8Sq=h<-GC|EP>oS^iOV+9Qn1~4O73DH^oX>A` zFtV~eJ0K}K3N|l$3VN)gaIEzfyr4*d?_S#uQclDls;K9z?#XYd5Q3?o6y4aDnX$IK zU^g$O6k#^Q3LO{84qmF`&fV*w7;QpWgSFy8G-<4(`+F@m*@3lB17M$q6^RtyuD;Bj zRck1CuOe8W#WR*r46drp)?yJ4kz3bf%)V)Y5)}!@TifB&>uqiv?MB=TPKh5`I*iaY z>xT-qrYm42UasJK<meI!s7FkE(ZxE>>-WEpmR~|5F~|R($HSJr*U${^Ne>U)>`T40 z=^8gaHHD1~CufCro(LUPn=JNIx4O7sDKWtksl^(t?SDX{BXj0z9zqK6>95;5VPe8P z!%H5%y4gt&)rjl=g^=X9Zq(td(GGARm9Wd>p3w}A1A}aCzD?l>X=i1b`hFl8Vkp;W zv2A&JjW#?9AxU}5paE?7`lLdy5qi2Z+=hh+TdZ!k{kG8rW+d%2vJ0R#+y==4gv8L* zVKi@{Zp3%W2nb&ePfSSCjwQ6k<7Zvdg>d~}!n@j0J2*Vl?%}<AT*3!>{QNNDm5<WB z7=-3wr%QP60O%KkaLnWL(_Kc4j)fL4R5m1b#CYJ@vKSr`p#g*sD$_!X{{gJd(ssB% ROxXYc002ovPDHLkV1kqaaP$BG literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker87.png b/theme/img/markers/marker87.png new file mode 100755 index 0000000000000000000000000000000000000000..7e542f6d8041544f9148dc09820bb978600bb564 GIT binary patch literal 1310 zcmV+(1>yRMP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF)<)5Fg7qS$jfOo00007bV*G` z2h|4@6B#)<83)|}000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Da zNkl<Zc-pO2ZA_C_6h3c11Ze@K;6@5chfH)D=cZY*kZGoZTX0<*BbY7GAKQ{;S+@9N z{L$=}OO`B4HqBz#k8K$-+hkMuk|7L<O14o&plFpsvB;PGg7z(xmiF$P`?iciX`SOF zPwu_v-t)ZYo^$TKuK>%-2E;zZc0^iOCn9<ft%!kGMnVi-3ZfG6zDlXgdL}aia?{j& z;RBBsjCKcz{(uvQRfx|Jo_K^hL`}9@_1v*t+u`u$0;Wwz=M-{j-CU53xjk^sG$4HO zcNYwM#6HxPAxyCdHzL}K^Kx^}>Wi6XO}YSqIe=g=`jc`QfKmxlZV`^uU51Nh%R|)e zMHm+nu0~uh(dF)_E!V>;g^av`xT26lkTH1kTmzi%A0!W7K)7Y$=})w3)s7$a2iPN# zN!tfG`t#ju#q6myX@#gc5t+(HSijs?#Mr0D7_0n%8IF{*tyvii^}MAq>1n(eWK;FZ z%hac>>&U}BDN03dd0_#7Kfu3mw6O(@HYc=H=z06jr9ZeHNjWAzeit%VCqtoTEw?$e zDW9!PPRgQK65;ckH5s5yO9cppxFL~{?A?&V+glIqQM)~Tvj^-mJ~;m3PHv-7rwH4! zG&Hr92sPSN6=qL9Z*X*5A#Z=TSfj=yl!!B3eV|^YgtATfl2RsvoK!XS(q&Srg{T5L zz5gY?oddtr!JhS6K90z>2V+>^B9!LmLDB*z1VJJoLf42WMrHQxx)v}wT+md05UyB9 zpyFcl{9M!Eecl%3WdG|yi1Cj^%EoZV?t)QL$fPQ|&_BrA65V><)(;HL+Zx7gyxsZa zy6|=daC*J0M~btN7}~vo!02yx@vLK9NS<An85P5MV-)h7BriQxQsAkny=M_zzF7y3 z+K6xj@$Kgw25`7VM#=d}U&2W!hSXLc+&@nk-WoiiO5w-QGwow1uXmE_dxSZX3QEym zuNUaH)RdJnIi)CELd%Mb5-DSEU1$={-o8gM+J$gN(&R_9nw*n|`W>#cH?}-YXCOYI zLJ9BHUlx8ankaa$B6y(X3zkp}t{Cmk!!ia*yEp2V-ZT+OPJ&Z^-hh)G1|N<}5uK4K z`J$y`2ur(lq--~qMIK(R5L~o%g#wJ@Hdb-INeF~OAED;gs7S>4{?EAC>JOXS!8hw? zAS}JqD_gG#({poe*!^ZnXqSo538T$1b>?QT5Gkcdi8Nx3HcG{PJZ7$zA*29TeQoH5 znHk>#FByE**-f2#M8|(2Bspc7bc+q<Apw*MetF!UutUqxFrQn_C>|kM)>a$uhLa(O z8j~51Eu&|&`EdwIYOW5Cf(xHdD)a{FOxMOUNJMzm>GMt9ny`T#NxLWb1<)AJK#_ou z7<#)V>_v1MXM@3Ukp3JVn~>xNmQayD#7|8x!ux*-`^=M5;P%sTkMG^165hAs@5h99 zn)-KEg3vxDdZl*<-|v+m^!S4zy32^sooI2QvLTs5Oo#i9mGF=VM?w0bvL#yl59`Ut UgjF9(S^xk507*qoM6N<$f;B>0-T(jq literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker88.png b/theme/img/markers/marker88.png new file mode 100755 index 0000000000000000000000000000000000000000..525454743143fcfdf671e5b8cb7329c91509f0d9 GIT binary patch literal 1258 zcmV<G1Qq*<P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF)$!4Fg7qSZoFcE00007bV*G` z2h|4@6B-dGf&AnE000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C* zNkl<Zc-pO2ZERCz6h800?KZZq1-cPuSD?b6APY_*YC>cL8N`4!IF=DfMxrtChcVGa z{2@Oz(fCL4EBw$H7yMuf`(%twSU>`@F~$lM_R-O~Zlz!A*XY`{*K_V|&B}UP#GT~H z`@ZKr=eh4aAMd>k<YfioMZ`vgI-v_9t|Ph-!|9w@8eKl(5aO)@rLy?RqNSi$t3<=U z10gWG+z^aJJ-9rI_!tq$L})-Xl&A`xes}Xm*uSn!&}r~+3SP3CjR_O}035drv(NtO zgRwyH25PGjmUM)x5ofDb>PwHAss!y~4TI<`KrEK}NS*^wD#7OuLS6G2XdJTML+y5i zc`o51#GgA2`iiC+6XYm3It^qL1rISnfPKeX;l$two$y(NpG$1NuTvFN{Ak)GJQSJq z`oQCPzJIw&cw({Ih?>KsCc+ZL>+d~R0mYg^MuxqUPALEGCt#m^C62TvnWrD01dS@6 zeenDy+ODG<5MgD$QlYOgmH|YfqT|7~PB1$?&{=B|$2U&>A+JZDy=zwqOY(AyDV9X| z%sTB-(5VXn;&IWDj7heyC>6(R_gwON^wHue%Zs(7+CYR_U10%ckN-D32g{A(c-m@9 zS<C5x<Dj%qMKcX2rJAJ_(3d-20HbyZ?E1ACDwpfTbtb*Y!6X7A^o|FEDVaUc+zA%9 z7usv~z&YDE)HZfx)I(grE~2iK%BJU*%L{f=a8ebW92^nHordM&*fKmSujd$eLLuS0 z6lXIrbcdo*`|r20*K?Gj;Zw_sQew5~v1Rgl?3$)KR^|=QxT(`96V%-50f(!yZi7+C z&&gri^pC?Oy8}MG+$TEK@7V!Gi}GL_W;aD|s)AgO7Y;O@W}fiOH^}pIG8L4f%deCf z);Cn|7I;cgqJ(6HqeODTYbV>;v72`&7Ml^CWUWLHT^7&O-a)rl{p$KP0NAG)MWKW@ zTh6c_%oYmXO9(O0{2UXC!8x<bv!4?nck61y{F^2zdAV@pQZIaTu_uhH-H0p6E&c)1 z352!VHeS88v;<b-<qEL}UR|L8^Q2R#J<-mh@%THa`7I?9X`cTJzHI&59o-O~i3q^v zU+RatF0kp@*|RwPdR}N{B6Qg7bo;)&I>3^pBnp;D8`fgm$X!}}m^N23gcRVTU-b0D z{rllLrxf7xEB!QSL0tSVgd|6-Q~qG<&?p0?LcBa~I$Y2>IwtPPIb|Xw&!&3w?L;zo zXs`@n+Y0m<?RXSIl7{nRcJSiolM206>glFT4%rCLd%|JgHHQ;iNZRiZFMzg84vH*< z#4yn3aBZP(oQcIILHcueWI~c&ETJutxY#uVh|vEfyfHN81Am0tJ@e@vmhi3(e?J_d zX`0_!2twCHFeH6<0Bj3E7>LB;be9pMKbvv3vLW#yrW14bLY$BY?I8V7IkOr61NLps U2w-vVfB*mh07*qoM6N<$f;2oz1poj5 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker89.png b/theme/img/markers/marker89.png new file mode 100755 index 0000000000000000000000000000000000000000..52a7d30220cc2a8d07e5c1c5f4baa30b14979bbb GIT binary patch literal 1369 zcmV-f1*ZCmP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;XiF)$!4Fg7qSZoFcE00007bV*G` z2h|4@6B->ZH?YqD000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000EA zNkl<Zc-pO2dr*{B6hGg$yMR0vVZlIH6_Z#*hDe=c#*zj_r@?3p2_|N+a+;c{X{Khf zKk}cZnqGfYnl}DX<H%U%mb?Xoge=44A+X9SZ;;2jFW3hzyX=0Qb9YHrmc@)S^PBVC z^WF3N&OPVcdp`~qm$itUh%|)MW3wPS5e<kwUrwA4TQK4f;*AiABswK366DfQHu1LE z3M!o*EOv(hhbIu9Ak6*<6A;SS(2ytI*_sB0$%#T-I0h#cx#!I~g>jP^&Z_&kFaK_b z5wqnwTJsQUUxXVF7qi#N<4@;i3$m5r95`kHoKEjgig*Bt1g1<DD6Y5wWxWG;(3*u% z%_m%e_;YuHJiR<W7XrjQMFW0CECQz>!2YvUaIUAHB772I;yth5iwg}&Kb5;jcpx(O z@<D|0{P0}1uzsafftJH$Cc;?6tM6`0hv@JyjwZHFXd(6cAA$SqTc&ADGKBfdIHd&1 z7sp|LX$@FyHV6+5=HAcPLa&Rd21J+{ED_7|6^Q_L2Xj17T@Na)0qP5KnLc>_H)emm zwh@}gG*FVW6O=dm;M3+d=Cd#9Q6VBIFq(2ngqxFPkq{>h18}*RBax6~t&L~;+8rI! zjl-i%znGlJbZJjN^O0ecsnIerZ6ZQhTv!NJPxNnk4x}oWt{oWm8qc}}uQaOllkNwe zhxo8idJ5;=rRKaE=;*GeK_QEPJwI1K=9)M*CfT<75vI>{_jo?wy4TR0n}7(7qZW%- zWs556@#{vY$=}PCSx{ET>|bR)1u-GP@X=o_5Vax*g2bLxVdS^Xv@6|h)6%Uo!WbEN z{$6fSb|<W1y0UMO>CG|GF#hJt(Dh0oh;gnWG6H=#Fj%cZr#sIoVra5D9Am#?)gVB^ z93Nj5<(0!NF{_xCA3MofiP~twIt@iBNo?1Y-x}bIwi!L`G>Vxvx3o*6%Piic5P|~& zxM$?6S$lkbrJa$L?A^tdn1m7iJ~9SJ+dAQ3S_*uanE}=rhfq{j%NcAl$C2l!xl&Mx zt~{TZuu++pBZ#O(^Ahe;cq$|>yi{7loxX94a<mm;nClfgqCst#+}EQwN?+Lc7=R%7 zClpKIwaN?JNtK$C_bh@XS~PD8<)BfeGZgXy1n$_7u<)drlb}F2(%cFkUv9DCC<k$M z?v?1ispE)&rs2`N9r3ZS4i8sw-nVqI7*rElq2OE%=Ww~+M$0c=neg%bGq~82x9Xa} zHe(lnTX?7+YWRbjo}ImjkH;3Ic99GnR%!K9-?epdbFIV#TcjF$w7P$YMj!aB)gpwH z;1l1pbim!aws}zs@b%RWdZ<KP{x5_iM+PQMma5)C4kTiBc-+wFpnh<Ky<5!5A0c^` zm#A)fiXj4}x)-;tK-Xy9!w`}vFX7HG;`K?5Ugh4?<^CL&BD`d<*`}^(w4g)M4h=g1 zs{J{LmmnmDu6B)XJMG39r*i__e+~~#NYaWewB7DvyQT|a{lA3Qdnc#BWT)-!Ke`7c z92&;!Q-kLpO80UQ>c%Zr_q_u!yc~pPyOUja#AsS-@=|R>GKHA-JnNSuLLwXk_YakJ bsmcEU_r=kENdNzF00000NkvXXu0mjfOM7=Z literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker9.png b/theme/img/markers/marker9.png new file mode 100755 index 0000000000000000000000000000000000000000..e152cbf2fc575cccd63f5fa285b6b7637b260e0c GIT binary patch literal 1269 zcmV<R1Pc3!P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx{&sGB6-5Fg7qS-Kddi00007bV*G` z2h|4@6D|rC&c^=$000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C` zNkl<Zc-pO2eQZ-z6hHU%bsKHh!b&4^Yh=RQ#xTo70wfSfAk&z|85rmy$>K+hCK?k> z#6RR8qei2Ds3;izF@%Lks4@my2Doe!#VOlxYhi_bZ>(GC*ZMWOcJ1?=*Dkc{Ym2y( z{PNyC_uSt*_k7&@7^IfR5PJ|62z5;7L-Zrs5W`Z7n1oJ&ID~jhDVOWYSLcCVtr89I zc>Q3qJHQtVIdOO#@fpIKj<5(}$X6+!dT(<D)Rh$r1sZgYmqqOs!osx23uny3?5n@8 z!=%@D1GTjXvlQWaM0?d*ec`E^DnYwa!yvQ(5Dq7PQpN$u<>2=Cp#J=2I5#wU7qz<) zrg*{?h(Dew(pNSesDUh=BX1zB@G=Ms0_;E23}**N$ipoN4;P#Mpg^UpJX!Os@IYkI z?Sl;c`SJNG;qjH~Qq&wKH4)|`UVDFQCFnG{Y$@3|#%$Y31IWKT2KyUZ!5<3UpTuxz zR0{Utwx?-SPdOmMT?#p`KTui>5DX<b^5(@3=(1R$p?VJ(ZVkidUA>70xMpw3I$>2# zwvJ*+gqzB=c~GFv1&BnF2s<XG#OI4;#p1JZa3s+H*J#npCv{pHZ6rc%L9P<BCzB3U zL`WE$9ka<s90!HDDtgm!(Nr_(5=Ytk=p*9u^uS>30})9(#-ap7=$i8RQfBt+-8*27 zQURa**$t~#<UkHDu@l_I9WQldv~0Qu>@Kj7g5#2GH?7gZ^xLn1@zpxualSNf)spQp zaQgj1|6MzcOvKQMrC|95GYDDoBtres6TrUs9(rbMFyo(tgXJZO2G})Cw?~;PFz>)o zJNZw|tu|WiyXrTV3W}^O2EzSBl%PkyO<Lf)-hOz!q8vWnu?3xq1svPZ8wd&q&s}8B z!2B`P{Ir+~O3`006c=qU)K&{JN>Pg7$8QxFC%oL)%1+(9O|`Tc;arSx5Yc9K&h8y_ zxYYYLJOS}uN(wKBH!fUeCroAv-gAgC(djr7ib03T?yTbk$lkfWDEXvWl$>lh($xc> zUhNLxs2Xu?acXG|Oe01+C#Gt57UsiRJX|5XWa~T+rWu>?(%DuPibUQ;&Cdyukof*- z+-$=;mpUOZ9~6KkSNx&2-`U*4LOZ@5O$u#_2pu-r9PS@_jVz&*utZw0ms>{0Y4nj~ zu2K+EfRBIM-3RyX1>(FE;G1iG^l|}l^}i6392uSU_?m~t7|40?@VIHU!>?nL;#{gl z=?H0MQ-kSNEEzH|n1`@!1-eErJq#g<;R<$%3$ITq^yXoT1T>{vkcse$GZ1k9W3_=D zN&Bqg0nn0e0iS`87>w7g_U+V-^WpFeME@KfnvkRiOK5vAB6f`t;s3vcH-={2;0aQ@ zr}yqb3CAb!Dz)NSh%&Gog!XBlKYH%~Oe_bXHy9SLK4SD_GR{;sByPl9?A@^(9ulDi fqCZr&Ove8Ldsvy=AfyS+00000NkvXXu0mjf(jG!Q literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker90.png b/theme/img/markers/marker90.png new file mode 100755 index 0000000000000000000000000000000000000000..5183a223b259453100b8aeea812c12af736564c9 GIT binary patch literal 1339 zcmV-B1;qM^P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGcq78Fg7qSwipDH00007bV*G` z2h|4@6CV!O{smM3000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D% zNkl<Zc-pO2YfM~K5T0}QE>Ku@3tJ)xM6gAm)DWyq+t{WgH29)oDy=0pAwFU>(U@pr z{b3Vh)cE?Lwzj5!v?*z9x>`zs&{hK2TB*DQwq;x1P#z2WfPK(qm)+~kxx2#hSZZaG zFLTe_Ip3K(Gv}PkV0n26u^W+%Q2T8TL_4Ae(X-SfwuCJbaR~8dlu{X&wJsKt)hh0I z$L<8Z$qWv+$AZHXh|duAP=u)nU4km=v3Iv*Lvd!Bl&HbrM1|}(>y<`rb~tP3VPF5% z3PX0s4YU>^3`-GiK-A`^BqyCN%$KxlH4Hqn0A6qKk_rJpse~z;14=GjhV$Kh<7mx8 z=;srzLHzM#YI08b{z3>71&Rhjil_juB*DJ3m2j@Bmm=JXunGRx?<cCFa!wUKCEXL5 z{Q023cz%2?UwU}0Is+|-$xMU^h*#g+mIHB`Xhx0$n5XThbfEm|IP5E{2B*ivIY{r( zRRa6sd#;@>7id(G?1Sx()9Vtd0TJd#D#hge8EF7+dEy%v>!4x82&DzPL3gVMK5uB@ z_K&VMLPbwM{Pb)d*EFU%d(+oTF%jW$luIJqoT-h4M0GTP&&Ma$4GwetVrClGWnH~o z6A8%yznzb9juxYQG)_yVO+=_ojE=(UDdy7SlY-J^Fi&#bZJpve-0vG0gCIasw2GcI zf?R4A)Ii%Fe1PjSon8I~d_j6{;khwmG64}<haHZf%6^l#6XK&H;gdg`VBMMsh!Ew7 zL_r85{CA9BbjMD+Qf`~3PLmZz$l!O_93KaxZ@mm1uN3o18L=^P=f`Ncp7A$39}5gD zPN&p9ZX%PO80xVdMt;R=LYR^}CLcS=Tcdew0>+%va4;*K+Y8pGaQ(AC6?}}lru=pv zv$|%?XsV@eq0O!CFq(2pHf2bWVPPyCSN?ry1dg_}!)w`D@bS*A7zl$WlH#F#+zek{ zZ{=i1pU#CDk5@W){vxxuW{%TZfl^S3u0Nlax=~kDAStLs3ktAE1S+H;y;N4sPT#yu zeYFK)3G|8^QDd-7?(H&L)h}#(1VEBP6N*ZBz2Y)EsW(vao<Z;?Rm^jt9MtJemSRDI z@Ld~H7oRi%i3o=y4bAZBwI&y(644lVrC8uPis-8!94^|GlmIDsxPo`Vr;8%!$0no$ z=c<{<=X(b&zXWAsiS^Im$Ckc*sUBQ2ZVA}pL;X<ARW?04TZ@m!7NvHX3?0@_n5TYd z>0p6Y;({$wh5NdycYsD8E?KK(2r0oQzH4fOyLVmlqLkp<#x{DWKwSGTgd|7$CT)(& z?tTVJksls6jVAc5e~7<ZZc->hnps||zvVB60(6FM+_n;3qnGZ7kVJO{cZ?OUPipi^ z`8+HSHDM*fD;Ae)>Tlx&n2@y1$Pa+3P!q%z2#KMi)o9v5yAe;BF_8Zp?wgRL8Cz(F z+sAiJ2g3P(32$^yPJzu$+dXu2_ewZ0h}WtS&qb8Z)gUyDI-K&o12DK6gm$-=UxUPG xTgiE)wjrUra@zlFUX2Kea0KKZs)?1H{{i`h$w#l`TfqPT002ovPDHLkV1iz1TWtUU literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker91.png b/theme/img/markers/marker91.png new file mode 100755 index 0000000000000000000000000000000000000000..c2da700ac11542682c2a0ed36351a2d0fdb64a00 GIT binary patch literal 1299 zcmV+u1?>8XP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poG&vwGFg7qSzS>!E00007bV*G` z2h|4@6CV{_o6NWX000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000DP zNkl<Zc-pO2eN0nV6hE(h6{H1(+DryyvdIK>Va$<f!lH=;w}r^!(2Z@0*+&+aY}v9U zbAQbL<}$PWvCYgG_lGkwBcUpy5T+wQoQ#d4L#k9MUquSFU-S!0OM7?Ddu^rA59U0{ zFZbQ^&iTD_&pG$r$3c8~3{in7L1ct<Zp3v&8)7Jy6Bk35hS-OAUoMlW*00Ql{0xO) zc*o@dt;Gs%pWlYlqlm8%u0(_d2z8D^{>&$3B~V*j$Z|6=I9@8+%>~$`(*+H>A@1A1 zufe#>eFL>M2wg0~HHh}g)%kfRt1FpuMJ5OSIe<VQ`jb)#fJ_DsryKU1zXa#>BX?1| z4WXS+xEyh1dqI9_)9z|m#!Dy~NGQA%0*t|~hGsZBI7|^fhj2<luRqIG$V*RDzrdD6 zCN3YO7|*dCmF)2q8AYhsPii8}LA>+nrczL4rgLOChI!h2LJhKSeu7<%t>E$dBRmw< ziw)<2JNToJj!Z=w_xa{$>D3;p0TFIZlkxexiwXgJqT}A*I-uKVg1V{-P~RGYue+}b z`o6mss5o^FT89nyBSoK`YoB0QsVOSTB@u2cR%SzPMmj(+DA;ruCWP_T;zD6;92^$L zr;pV~-bDm`lo;hxDkaS}5TP<RU5?e0-cL`EMfvEg)52J!%z{%pDi`NdB7wYg1wCa- z#8Pun4YcXeM})C{U@-InG4g?TUynq+P&iH`AVT|u+Z|Qe@3uV;tK@0$<)0c@xjYq8 zc_}0mT+tmD?Mkt2Gy@hp7)c=!yJ+Jo6-<8c7WBVe3q0zIva{loNjR{1JnT9a3`I)} zo!Az}GgwVnCKGJ(4<8rWqIb#+Q=S=kbN$-*gt%*(ZjW$w@2nMP?L<gr`}ts(2CPmu zqv9OdzEwza`LCy8Z|Mg3xU3{L8E!+@jF%m_(nGUf5c+T_s6>CgTv)J9T~o!RRH9HJ z5-k-t345cll{<O!HuY5*!WPc957DNxP467E+B05R_ap#gi3xcbym#RecU-HZ<h_I# z6@s2;LOJNrT5Pov1}R(C6f8bz!jhT-hq`;=K$pggvnoVSBnt~nClMo^hKZUjc{#8e z4_62*SUS&xcFN3NJKM_ngTaqbb2=&$F}`1qi>>?cVkdZKeGIt8hx)#@Ke(B>xpsU! zyePGCGPGZ7wmObn?dQU+6mF3g+}AC`V>J6BX0757Qi6~Epy`8q_q_9>Wbl1YA3a<^ zbp01Xl0zfYPIt3@lmi(r93D4K7WjR1TzD7HDG?!gHq~iwg^D2swN8)QmeDnO@j(bl z)R)JNV8`o|8ohalG67AA9Fh@Uwt2mde@teuAZedTH~?A_Iq*pciJ||R$x=?caW)W` z0`bq`feA@^v4zTgL1EYQBRv0?@P>Zc0Zt!n_r%dHm2k{}*QyE6MU;VuL1>wDd&GMO zz>v&%DTFRxK)42p(V5IRS=*2}5Hq1?>%)kU2#p~AP??h%{|gB_sXknOuE+oY002ov JPDHLkV1i;6Jjwt7 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker92.png b/theme/img/markers/marker92.png new file mode 100755 index 0000000000000000000000000000000000000000..03f2cde5f617e04915b261f4646816f74e221af5 GIT binary patch literal 1352 zcmV-O1-JT%P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGd3VCFg7qSLRTPw00007bV*G` z2h|4@6CWHTM|2zj000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000D^ zNkl<Zc-pO2drVVT82|3=tspIwhh#Efvknw|#GrG-%*7=dToy8nLnql1vY8llFZYO; zWhVZyEnDUv+sxeJAKQ#XXY3~HfG`{x1a)kJ4yjV)4f3dc(b8fmZO^{%Tso+f;v6UW z<=p$7@B7{Fe2;Uk0JD!r5nB*z5OI?-7vegi2GJSLNC+c~L6ji&sg%m(m5UM~Jx<LP zZ;!gcV6lSBJ7L4u6Nrxyqmc-;2wjR=wf3F$YoI7Qlcj3VIY}Yw`TT6iISS{Dox;(- zu0j8(>jp{-5yo(Y8HnHWmZYbhF34j^@frapd;orb=qD8-fKmw#rwfXIxd1<Rbl*Yg zW`ton;X=fvt=jY){muedAc^D+L>!U={EWela}{vDy^B1265$jlmk*|@RXL{$o@Mt% zCT|}U=+Af0=dq>naakxiOkyHTLF|4vHwTh6u>vXfVw^Ud(t+}`uVF`76}TrRILD>i zL$LbWGa!8W6`$M8R?w(pghLx1r{!YG0TDhEqm<HjW@Q3+Wy8I{)<VOe2}<*~fUd0* zK54kh<-7FNU@+Uju)B!Qq(?T}mp{f5qN9>2mPEKNJ1G%T<6;2<0d82^H^Ao?vorZz z*51YE{{6+kN?wDE1kIEl+9aWutCN#Rw2BCmQe#z^J;hXb0xTq4M(aq(dwE9>pBF8R zmIa~+X|Za0(ui`Zg^&WuefS|hpKWcQ{6OH}HOIIY4%A%a&)b$QohoQSCLlulfXfw< z+0QpW4U1JV@Zleg+>2;w%KHN~_1G~kh>wbbBTqdc3vovz3zkh|tHln3BoO5)TDLeE zhF*UKT3#&z31wM{30z*+KM3Eq7`g0+f;`}%5(Tii-R$}u3#k~0p$^Mp@F&bBEKqX8 z^y4RaX*3O+Vc0zeFRxrKdw!*v&xdl?!dC4gvUk`u`di(C-7{{bP7ChjNSa#3EN|}# zu=n3&<%RhSgUoQNY;Vpg<~z8bVRjjAld=^8=X?7C8Sxr=K03YiC`Es6%hayWA(?{Y z(-IMOh?Gc?y;N2uoW6OB>S{g07L2wRQDd}?Y;U*P<6c;?48P4H6G}?hQ+`1>X)sdo zo<s0jQcP2!7}Odpwjz;1)TRvW%#$WKqNCtgLlb;-xzU4f`G_mQCB;3eLx}FWzJbC` zX(_M-4_ENtvvo-V!?2m{I$tGB1OjiN<j0Umg!%qi+-&I^)pg(*_c9P>9_l4E7lkpO zk1~3EMrdb=&|!nw>iFhrix4cOV2M;>UsrbZ(%T1Nb2SSg1^C35jm>cPu4kH;48D+S zu^e&vzYx+m);;2MRdn<Spp^LGanodh-+KD_+H6LV2+2}kYG|8Gh5~fP4s2US*J$;F z5Yo`qWB=Om`lLdy=%h%1K9a#)g!ML$$MLtx3>GA9Ht_?XGLnHb2O%-ETr*iVQa6tK z{lg&tIXo~SjV3Iijotw7nihon{}SHl7;%8pOYI)nyZa^V?Za!;gy$lT*7+c`47uF$ zy#vrUAB3Y`KfeZv(K(m$TxCPUff$>7w$6u#L^ufY50!Z?<$nM*fzFu~1kN1*0000< KMNUMnLSTZ%%4wDW literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker93.png b/theme/img/markers/marker93.png new file mode 100755 index 0000000000000000000000000000000000000000..b0f9ffea0b147dd03eb5499fc98ab8f71aa7faab GIT binary patch literal 1364 zcmV-a1*`grP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGd3VCFg7qSLRTPw00007bV*G` z2h|4@6CWbwCTX_-000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E5 zNkl<Zc-pO2eN2^A7=PaPz88>>dj+H*U`a`U=olGO7fv@EwPIm}Cd$St*J{<;YK#8J ze_FL#{$W|_T&s~zbKDdO7)lICGekgvt6b#!`(Ew`a6j;J;oj5poO_vEJ}zcF+i&kV z&wHNV`<&<FoL7M5<w?YDL<&OT(OD6#h-yUlQbxiOx<EuB;@u#*JR*5r7{n@q`NAQK z4b%oBSRFGaoSs5_g|PS{j6<lRf`gv@C@lr@lHysk5}lJ|?sc<HHfpv&v8G!%(r^m~ zE!I1z%|&RIBHVze$y^^Bb2dAZg|Af#Ff$9_bb5bMCIZOiFln|z!5>v{sjGJkwHXNY ze8M$|zh8)pO)cG*4SteH-hfY$WZ+~B_7<1J#m*k`a4W(rdR~7L9UPQ;I{QWTP-O1y zgAD!o<&{kK)LKO%Y7Uc{2%`{heY`CdB9tKlE$qiQZ9lC7`L`!vZ%HNCW@b1?lU5I# ze?AAoH$OsJQ89Grji3w;6h7Vl9K9}}91!8IK)DpVFEJj#;Wm8daxK)4=-^D&Zcue} z!`JoAT%TW71!}zst{u#QM(r5nV+_eAC*f%p8sHy6u_VGRN#S7-tq1{dxwv8Nz%YNl zo)piYC7nI|*?#B%u)_D?`Ism^CsMKrM=v)=gp+C$5r#*H1Y!1M55nVOUg6RhC%oo2 z(0h{oo)3a3LQF_7jg+E0)q+<6ZF}Nz{yg8_>G^=mi!e)729ZI5a5N+RK|u>{0wNqA zwpzV1do*JQH~8Y8Mp(Bd00JbL7h&yzS3zr=f;|^1+zQ;$kcGO^T{eyFhH)4nh3KxL zEs+s0`u-cx_GTVPs7nkB^&+HpB%#ECD1gakW36KbQmKid4$ETX0%jBZ<a}Z5@giOt zR3_v}esTiW$DRC@>#O^R_&lAGgI!a4uU8niPa9EHLwlj-R<!91y9zcXvOqsSAt6)= ze+`bn56!J`C?y#_-?0@P5g;w{F=){0;7G%5PWIEw8Q?F<SpKEUg2_I80(pL$O9iFq z#-8}NjjG%%CZiNBNW>x$DUl*OSW+pRy?c-9Dh*+pi?#z%tuamHbQ;GMuWft=fHB{M zk{sSHs}hRT8VcS^h(1!!PanmgR&6lli46RAZiria(#%PKKOC!Xf-kQ(+Np{VH|Ji- z7Aze_^wtdw=kCN9t*2}{7i?XUK&{oY{TC~R8JFur)co!hi6y>&9yfdDgDZ7lpLQ@1 z79Z+`)z^fn+1VN#9$ysNWg>J~tv61dY;F_gN{I`WNCozFMNdD?K3g(Z%Men4PkrCm z0{8FR=XuHCyPGXEC_`NTFN7q=dMC`*@~%Ds<PtwT?&=KiXWt-yx15nLLb5D9qweq| zLk22M7q%^<YxK&a5R#~_V#kc*^+|<Z-c6B!QeOru5neUf?UT24dN3eqi;f=v6}}9l z6$pu;?Uv4vPTe@|bZWu<=kUmcBu!XC=?)j~nl^;({}SHmnwSK$gWBD<cMnV0KY-V& z4$noD_SGOXj9P8(dk0`(H3%&ZC%*=X(Y(^)mCA->5;5f&8&|_aA{+tt50!qU#s31< WWXNZwoGTpw0000<MNUMnLSTa8+E|YO literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker94.png b/theme/img/markers/marker94.png new file mode 100755 index 0000000000000000000000000000000000000000..d11319b02f713e89ac6b031f4bdcecdfa8fad55a GIT binary patch literal 1318 zcmV+>1=;$EP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGc_PBFg7qSbH6$r00007bV*G` z2h|4@6CWvZ^sqkw000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Di zNkl<Zc-pO2eN0nV6hH6vRS*g&ADIluL}h@w5a!4<VbMf`%R+{6=tj20Y)clGZP~IV zV}H#5<}$PWvFYZF%i@g8#8@XXAxtGeRK`ZpAw>$5uOc6%AJ8u-h4${8`&yt<TIM{- zFYn&-&iTD_&pG$rC&2RZ6k-n|4-xOzIT7~|b%@?jPC^J>45A$IZmd$7vL!hYGU8R- z@PWexTC)Y5o>?nSPb0oWIKmNTBGjp>*k?a3$b+)nES8pl!AT0)ZqCa_?GCu8>lMEF z`z{PQoE@kwMd(5iZbH--t<Ok5UsA-9)+7ipI|tzP27gi^0w|SWvpeC?@7LjqzJDCG zyAj&OgsTy^_hx3~R~;;YRgy^2Kv<C!;AIRBT&#x6J$)46^9Z}>fBk8iDmMRI$%|}7 zWb*Psf$^Mqxrl986Q6^cBcvw6RK(k#Y|n?3ggAi=2Qg1O&Z$B9^^b6%vKCykv-3O@ zRqFR=KsfdTPe+0(M)+*UbM)#E)qn_h#VDnWgE?6M9@+8m9}UnvVuXs~J)rLDg|C|L z%oEo38DPvcwGb)#?9blF)<#FAP%epZTW(S!q{YVp_<Y=^!7$99ujXd)XJt>{y#Ful zoxw{-pCpX(nUo}&Z6(5_w76KTo?;<AJ{IJovrO`*W!eqSMa!QTQH1n36^#-^xzs{X z18slu3I4p$+2j9!9C<}Y7nEji3|S*VkO_!zV%X^ns_eJBUx0P7G4REo8c1Fp4bhUq zPuLCnvNkMb!xcSn(5{r*M$>7YfDuxNau;n|mja{jzX|Pcm4Sr1oW!+UuNfPM<l{dt zL`9Vr1+cnY?B2MUR9a$a#I_ju4XX*Ol-w}m<XLXqI%eV(ePc^D*R%5XI0C}QxNEAq z`-KVjj0IKoL`Wt5=~$BnEOsZO;+)#Mizm78*Gq6Xe=B@ckQchSaT_|O-0bM>7Ty2| zeV`OnqQCZKWo}lN7BdBv$X|$MMWjNC?Dfi8;r#t>>Z<~THP9;_M4iq$xxdFU5&z2O zr*S<jJfWn7cdlL+&T4g(yq6FIJm^Ixl!FGX*;*zth}yX+bLmMFkmx8l(cB70n>22m z6(d^av+$7VD5Ag7FkHGbJr&mD;R@b|mM%%49W$}lF4qdPKHrC^xfGO%5Z}Lmi>>(J zS|hk;JPd@ThkAM4En#YIt{#Ucm!x)?3?0#$EVfg3+J!(Xalsa;!F^rRH%PP3L)K~; zLQ3%I<C->@o^~&alEHT^Z8W%wX!<XNBq#bO?apfbfB;H~A0GFOX1Fmh#NRFF6poNQ zt17fz{$eOVt<&SSWps^RdlW(v_06FXn853k8oj!gG67ZL93m0kw7T84e~czDBWatF z9{@Gs9Ha<@#L#}%XfCAPIOFw>f&Az2$b=-V*g}OKAKx|Y2-p85?9flz!0w^#9zMF2 z5)K;hS~bcyU1ucYl@OXooi6#_0WdrcLWjr8uR&t8M>3AoHY7Gg;AXcxjtGfx1mqto cQzYYm0siW^K1u!kG5`Po07*qoM6N<$g5J+%L;wH) literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker95.png b/theme/img/markers/marker95.png new file mode 100755 index 0000000000000000000000000000000000000000..f69614205982ec2434a4df0af5d65ccb73166a53 GIT binary patch literal 1367 zcmV-d1*rOoP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGc_PBFg7qSbH6$r00007bV*G` z2h|4@6CXQ)O~H2n000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E8 zNkl<Zc-pO2drVtZ82`>~3yeoQUMfN(xFN3@g4?p0uxti`FCu2*9B~QJnMLDknThy^ zi-}RAiGR#Z(JV{cA|YE=w}F6T69=NmTw#NDqZ^c`l$Jh#(y~5ikKZ}B2pv%7<V$`z z_k8!9-~G<_I+wum@(`jBk&BQAbPhx}q6wj2Y7<#P7m27qyb&dnCFUf=fl?mL7ydo% z1g*si4v*J{)1!#b5YwRu(-5kp=%~jIY|e$UtaO^JK;xtmaowzsj@hT-v`$aH{Oc-= zOgpZlwiKaTif}#RQc<chrMjeu#;;Wn@XiAGe8HcT2mmq}OxYb!{?kRM=^GeFZ2>~N zkZ=v+k0;ZVd9}MrAWSMSYapaZCE%kJUOZh7XM6jZg<BAIA@KVB<mjlpA4;C0cSR;1 zA0%kc_s<p4hu6w8QFD-g2a$x>``*?(NL0iSaJgX!{j|HL5!6OAJfEHh$Db_#3=oWB zP*N(72l3L64v-HX-vs-9{<R#ZmCV8&kus@rS7thZ$IBPJ-q;N71`|{j7lP`h9zJjH z<a)JnoR6>NW&^EwlY{NqnX!(>MuaCaUoygtS@Cg@ERO;3`}v0E;ZZ)ml$FlMbG`jR zg!?z;&YOsP;-e$Uqlxiswt*4GC&xr#^d$4{@zbDV>8z7{yk@e1R1hG)>I}plItG{V z6kJf35);jy6oMFP5|lt&AH1KBr+Rt=9}q2XHyF7am`^9&ZrI<{I-k%)Bw#_A7<D*; zB73M{8x*VR;FCYqkgz5K9A444=6Ck;k)@010(0Ql6sw3;rI<GA9?Jw6m_iV<XyXHk zF!t6fpn0{7A2Bm7HaNEf)<j?~f<VCLbkgo|3sY$sLyObvHJrg{LYRy%R92n<^2ImM zffg8@Gq5KogX^=7Rdap4eu&RYGuH8{sl7EoCR}bSt27n~R@`!p$+Dw-Lne(33nLk^ z3ixfr0AF`@V~XU!$J@4`Aq4X7OMo`?<Kd2OC`?sC<<n09^;5d1rjgiO?r)Lj<Xk9N zh%RFiXRAt!sf2|n5Qt?(V1X3q%jeFM>KnIMUTsF$=5ob@XwumxclKH*<S%4Df+avh z6G~;UukIo_q17?xJ%bqJ{#~$y`Jh>Av6TrF!ndzaTij{pBqAJ+w0FR#ZE6?JiV;`- z4cHw^#}ET8!=t6!Q<5MRn=AP4IJ#5{TBDinK6{>c{r-1R^J9=FmiYcDJZ#n57h14S zcqov?O}(P&cQP|OdkG&a7rAyB4;|E+tyAB1YRFtFalsU6z`Abe=V|ldlCfHbkU9A1 zVRaYWzU^9IC55l9bg_pzMB9HMWO8I+((b758zdl;^5$^^o5L@IBmCWRn?ez?owZfk zn}J|RK&9)$vZd@Ay>KstOjNB{F%#ISS)$kLnJ1t&)P|J^TWv1a)HRbCEJ)gA;til7 z)CTDagp5IR)nv(M)#&#5j3E9w+%qAQ4osnZkDphK2I2g_gxC8fr@-!E<sRC)yCobN z#%tAteG#Q+H3%(Z4ySnU01U4N;k3ucuR+FWUup45X~Sd+F%x*Uu7-t-&;a5Om3gJb Z{{WHJ(Ue*A12O;r002ovPDHLkV1f&^cA)?O literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker96.png b/theme/img/markers/marker96.png new file mode 100755 index 0000000000000000000000000000000000000000..1e9f4ae383f3f906bdd5128e7da9c2d27f252379 GIT binary patch literal 1368 zcmV-e1*iInP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGc+JAFg7qS)yOfa00007bV*G` z2h|4@6Cec`^7h~W000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000E9 zNkl<Zc-pO2eN0<b6hH6vm5&x$phJg%j=2hqEd=LeOSX(;1dS3|HZ~<&Le$0h8I305 zAKO1h7mb>zo7=J&mt|zStU87Rfk_53CpusP-RPiv%ST5)XlbDo+UGg<wHX~y=Hw*5 z-1p8s_xH{{ANM{E7MDj5xrj`J%CB=G+7Pvf?u8a{3+NPx62xmtxja5&MI0onqL|@7 z6E4u3E#UObSn>4);t*mY6k!TNmk_0V{N0V2P?W9}6V>RPAd~E7z2b;t0?rw_xzGQ) z4uccU8>lTr7#1R2gSecxDmm#)L7u3IQFAae3*hwze^SN+$mL*nIHCCGOK`#1dmFXe z5&F4=k%-@)N=eQt-%|i#0#DvRND*Y<6-C&6t^&??^^k|z2nX+<em^lvnRUA0Y4M)O zr0s(Y{W<wup13+jm4=#wq$a`y#LMq(%7S=xG)IR07^lsrbs+!j80;>q0@ut8<Cw<n z7nRpQ<QK;w`RFOAHui!#O2K`w`3agXrW_DqjzTUZ?@7}Fc%+4|R@Xt}un9`@b3u2j z8$M}lVR}l$4;@`_W$!M`xD)pOa+$5!nfj<08xbB)u_VF`>6$o5R7C^$d~9Lezz`ds zPuH@stgDBOM7C0?fDJ3-K`eO#2462`Yc%NP`gjeQtRq5AVzd&oC%Y3KpBNM_gJqnJ zMw=bye6aqz?;+vHNoXD&lMHwslA@#NNzF^C=7I`n(?buk@ho~IeL(Wujqx>4x#0lD zY}7Rg@6<NjDQHe2AVS-a(;1Z6FSl=HTl?sbCRh;}0TF`ay}<K9p`bW3!5vXd17*|H zVYb0ADf|m4Mk8;&2<<NwF_N^nSf)?Y!~~Zjk6t0HE|=JL+e|7wG1OyO4F81LgfKZX zq>|u1{f5Pewze-LmFahAR|kb6=ix-wHRYYXoXtILp-!W{P;;x=P3D~9b!nm^ER0Ky zRl{$C!*Haf4fbbdz=vD2(Gd=^F}9u7aX5r!^kl*V@a?m?Am?~---T+<>YhGEg%C&u zrRdKc+LX1r!hBIiDe@;`QK9W3+1|1$?##_js;i9%YoJy<h+2bnd}o)%rrNdkF#u5v zO(@9Wm5Z0SQ+fjh?-@iNsbzCaC<b+Uv$cp9A$;4Kl=&x3KqA87aAPxke6`7qZ~2I8 zfhpNtrXz^n`hlUsZAl5R3J+KC-nDf>0R8Bg_`>-rZpP<(8#O-$MPh;PpT*6VzEx8X z?rDz*-26kmr1lCoIXjDu3`ggMc994j)Q?&0$6MODKq)c75~;+#uI%Zjw*w32Y7s&T z@QJURT48F+J;zHCzPi>*4;K+v{|h0>;ofnFv%=WNfm~pR$4!$Ne(f7%bBiqsMMx{l zOZB(>$&i80V8pf+=^CxMA3_pc19prJuTLuUif)Pol!scd6k&ta?Y94I8Ur(uwwl-h zP#J20ummA7v|l%ww@^3YoiYm2pTm6<k~CupZSnY6*R&&C|CjKFaoi3L54C$}@9veb ze*mvl6P}AG9m_#z9&x&)dk0`(IS3~_UUm%<qhl%KrOJlHj+pd6Tb9E^A{++khiYso a<9`9XtkMpY-qtw)0000<MNUMnLSTZaC~p@4 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker97.png b/theme/img/markers/marker97.png new file mode 100755 index 0000000000000000000000000000000000000000..e3958ebda0dc53ee0aa9386e50b2d491534a69f1 GIT binary patch literal 1332 zcmV-41<U%0P)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGc+JAFg7qS)yOfa00007bV*G` z2h|4@6Cex!O55iE000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000Dw zNkl<Zc-pO2eN0<b6hH6vbucI}=x`tqsT&Tq8G;+p7|a$&m>MEx;*@AKnz(FH<H8^E z&ldl2#wEt6(}mz4x`<1bbsyp&xJiI)LzDsnWpv|nFg`l^0qrZ4miBtido8r1v~zNj zU+#V9-t)WXo^$TKkAv0aF+?FE7ZLB%iHL4Q17a|g5f?%igQ!3pj#Vm?w{J{>jChqa z@vhwgdXpJMm)nA$Rfx|K_Hcw6gf>+b`&4;;E|leDv9ttqPEg467CmgzW`}czLGH`H zJ7LT&_M)~FVF*RI1<_cPnUQ{`q=>0EByiwf1n_u*msIcoN+rzNM0n@7tMKc<@IBP- zMd$+w*CTH1(`4k;94LWx0#DvRSP>N9VGLe7R|^;WhseXH5jNg8{7ITBHt*+>7uW-l z$=e47`t#$<MeOkn@!6<3<{wH$jDA&Ez}Tndj8%NVMh?Hto_TZ=6L_ALZr#kp@`I8d z=dA$QRK55-^=a!G@^DX#Qph-vodw`>ODi1uy$M<;j8I)%2-;hN@I`Bfq(@Q-Ge_Qs zjq9T!Tb(G`?8ikDqoa~3mPEKSN1X&|@o@lNuVmOXIxe-Z=VVFkrT(Fy-G0~64W@Y~ z9DR0|WTRHaa8D+yX=n!#s?*|PF?)*T@OW7efx$ep)TcyLcJ_j5of0q{vXbW^Jx)cv z1YS-x7gRtPKdC+2*Y8`vyEJzF?j#nt2*sN-Au7NLj*|(9&^j)PL7Dw}?{kn68v~#H zsgq(AEi4<>58aX4g7nm74{%4ch`(%feI_eRkb;-1XlF_?On&$-^t@LFm}$sPN?fwl zO-)Pfu9Qc7+vULGaIo%sCi>D7L$kx}p16S71dIzw#;Mc5o%kNw(Rj)+2XAfP8W2yb z)Mh5c$qGC*HMfU3t8>AOUyVdaDgEI@iw?{-kx_Cg_wA8_T=2_zIFz>oj^yVq5&E_U zn=mAF4DEAHcKk*gseVEX_)|eC`s<Y}%{FamF;h^A0um8YcuFMC-n>-Low<3N>M9>$ z@kiT*XfRl2_V=5u@vm-sg3dsALO}@!FJI+O>kSmVmk=YQRs>9;7&PfkmNK3})b1^s zl{bxFqNCtsYdaio(K+#}7}4e*QrtIn5;5F7I$pXP%OVpmSMc1obwL3A)HHkJVm;^f zdOt?Z`JhOISpO_;w)&$h&EQ;cG2m8S>J<&wxw*x~M(mzi5!zKEbWA^Oo~`WY;rylK zFOfPt*L8An9}StSRR}4-Rp08mV1C{i;3b1^+PbK78PW1z2uV&3&)CG;fe{Xrf^>P@ zG@9U#kuhm(HKTBZWLZ<KzvWAY0<?w!JhqIU(JK!_NTR(qHUU<AKB>@a2PqOz6V4zK z;WdlXIs1=s8cayqWt1*}x^M<U1VUoy=`@-O=rk^PJX0Y5IXpBWNjsKMfy*nMnjVDX z{}T2N%*=w#MaMn7cMnQ<XB2-wjCe1i^sNP<X;O5^?+(7-Ye8std8B8M7;TXzM=BeV qS;U;LZ(a)ziEsksAFAm{lm7*fB*)29;!y?w0000<MNUMnLSTX+@LLf8 literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker98.png b/theme/img/markers/marker98.png new file mode 100755 index 0000000000000000000000000000000000000000..0da53416058585f838f02de75e3fd7f04d1a1a75 GIT binary patch literal 1369 zcmV-f1*ZCmP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGczD9Fg7qS5N{7B00007bV*G` z2h|4@6Ce=+C?cHz000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000EA zNkl<Zc-pO2dr(wm6hHUwT|geY!h%77N=YmtL!^#6qe-Ko(@->q1QRp#aGIK_X{Khf zKk}cZnqGfYnl}DX<H%^{mb?Rmge=44A+X9SZ;;2jFW3hz3%j>-zPl7Fu$XaXe)HY$ z-0%GE`Of3}E(eRt8pLiy8baaK*%9rCIz-PxM%)6rV8lVh>mhP^R7zw7#4AGC!do^6 zXpJVYyQa-JJ&yPoVe?0rfY8K*hCKH6<}}DpP84I6=$s&v*3G!ZQL7Ek>Uy{@{%VCG zoBbMUa}c_P2-hJlWUh^mJC&U&s#YpFn4SS}yL~??;{oJyn6TQRu<SgPbobpx?Jk6N zF5wEqAA1tw(@S%+Awb~C8}KWF4BVm!`_ERuxvpOFa0|l9dtbjB8yb>+GJCIhPh`^e zL5BW(|4gR%&`O0GHHSz|gfWO$-r1TCQOYom77k#Xww=^~{PSb5zqkq<)6<NjdCUN* z-<<~T({I?=JUj-<&|vPpZJX$IA?1JwGlJzpe6BhXz$F>JR$UK`BYG&x+6|f;J@83m z3)8<?SqoZ&8EW&g*?8cWUzyFmq=&`upui}KB@u2+Rz*OpA`HOeVTSdC!)$y$IgyRU zUA=515|UkO;@EigwvpMW(96^)6{$85p(-{k1hXgmH#{EECtNzyxa47~nvK<cgFbWM zd58-Or6(mXrJD08psf!+z{WG3UEU8!o*#MgaZszmVegM+kg+<J&Ht%CP9h*e%dp+< zli4qK?SSZzVEFLQCWu@S1VMu2eL-0*dTW8I+^1Ps@=9tX1KiOq8+D~rHcg#I3yhG0 zm#S!EbQFxf@e*{roDTx()Dhu6vD}lenvLZ>{b<91+2Ih|DV`W+Vram!82K5q2?27p zF#hNXRvJ_$V~$BENJ(P)M^{Dq#BfveD%LfnH~Tn?bIL@WMth;=R&?l%8HF3vVsJnJ zmlUpq--bruNJ~2$NK1hac5FdMICuiHOXc+0<yJ;kl${BIyi6=8spibisbk3V!)z)j zMVFsVOjxhU$r5FhB5xuV6`m5wi!T&cai^}|q*!c5m}hIng{ae+$M<!aEQ;sWKLQ|% z{s{#+yjp&qJE7H4@SZ~SlUg=s3B{mZYc%KcA_VSSmoWdNnU$bGINaC_A6;s4;w%es zW%iZquBD@hzJ|f!oSktouoe$jaNo6cK>+QTLCiZ>#Z7xWZ=vQVpGYk5{WG}PqBm<A zz&Yg-ft!D*AFTVGo1B@sfR9J#g?5n$9nu<16W_LUaI>Yv1WTk6Yq7F-fM)M6n5#ty zDZt0SZfb)&cbs#)6yd8YZS+u%xb$BLNe=goTkRFy{T#>zc6eOZ8=<y;h`n3P$R8nD zmKJGmc#|OmjjkKpR-|jR=6(oCG#9aBEO>oVp;u7v;z#@$EJb+H>~v0C)f>Qwq-}b3 z095)j5SAb$hK^RfaXWS6l-oT9(x1b96OuGz32k?ISl4tQ9RHW_TKD(_SY6ca{=K_b z!hu1&R`qx;qI50?p>fpiknSCT!Q~*dx!mj;Bu48}i<c@Jk_p75_t~@@9unaQNIz7D br567U(f!VUKoA%q00000NkvXXu0mjfHvD)u literal 0 HcmV?d00001 diff --git a/theme/img/markers/marker99.png b/theme/img/markers/marker99.png new file mode 100755 index 0000000000000000000000000000000000000000..ad41f558333898b265bc5588645d4902cb750565 GIT binary patch literal 1271 zcmV<T1PJ?yP)<h;3K|Lk000e1NJLTq000yK001Hg1^@s6U#j`N0000ibVXQnLvm$d zbZKvHAXI5>WdK)YWFRsyAWC&?ATls8H6SrGIx;poGczD9Fg7qS5N{7B00007bV*G` z2h|4@6CfE3^Qx}^000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP000C| zNkl<Zc-pO2ZA@Eb6h80mEiel0pd${UakwEcW(dw@BiS;NEocl8Guf25g!mDoiN-_| z=MVSCsL|*Tb-J1TG0Vu}vg#NP!ZyiZ(}@n4&~9|&8%Ck)7yV-WpnW~(wvBYOmpM7f zlY8%T-}Cg`^YOlAklG$W>_$`|)G^MB7(jF&Mv^(PBwQxq0OC!RQkhr2CKq(-ENS6w zj}MGCJ9vX32R<G}e2VbM2^Jyr`B|zb-rZ6G4Q0i=K!d@Fis-t9FrRUI;FM{Eefifl znDTh9BU_I!B@^6$xLC7JS9qeXhHF=A7=#u8!r{c9R0se{CAi#PX#C{@oEaXwgX}JZ zak1bk#P3fP=_*_H)j^slP&6QGq5{I4!`@S^aC&HzBHW5_3$fSl7i6g_kJmlT?@KKD z`Jljfet5QqKe}37ip)WxNiZMr>U-NNAy1RdXyF9rsp_~MlwTZyz0K|53xy<&CA{Ac znygIrLDiG=x{+!?g4LNyQMa$O7$6vReB)dvbek>ERJ$AWH%H*J?!MGK`s^uL&vP=; z^C*`jxVcQ53kB+IfJj7g?3|pIt}m1oOV{S1(bPQpXfevi^Rz^5B0+6IwhF7K_%}Tf zo{%n+eNL7KL4d;SEV|PO(NeR72HN)UL(=u+;808`BFjq}EGj^P&S|eVp|W4?+5u}- zneg!+J+Nj~24si|SspO*+a8+AXxsD*+MHk}LWp+J=Cye+^VZ8?c%=bE<VtgMQu6`> zhtJ0c?$~IFkrcYHEzCb-)gVnNIqD7{1NQlM&^v2|S>HVDFE2^W<J7d=8e>j>z)q7! zG1G9X4HjE<<EB!cnU=;%ax`#h$_(H34Zv#^<?zvttr!S{5{xK;udV`LAjJ2dImaCS zz!B8>F<uHP(Vx#17j4wn*K!4wXi>tGnm~mV_)E?0?8J>*)K^;&j(D#G5gjJS+@2x3 zQ~mtL#{f8&7ZjE7`q>NYn9)SZdj>I1v|`Z`%0Z{m=4cQ&r0?8Nv~;J5TSht@>h6V4 zuJrivsTOfH{z`Gr(iy~9*W`5l&cb|Hhnp*e@A-651mmogzj(Txg(8u6kohSg6G?vm zBz|nu+vmH$9|&?_OE>ic9lx>pg@ucFdw5A|Q)K9%(Q0>n-)CU)R+0=`qz&h{ZFGX3 zK1^Dx6oQoCqu=!O!`-|7MNxA2`f5MjoJCyuFM?!;#^&7K*5PpmN>SQ8Zdh#a>-d!P zE|rs<AbGYl8E?jlp#Z&U7{`{=F?#+%1j+Q5aWb5Ed{U#gj!-6`Mb2S4!OIT6-}Se} z3N{q&w@4d6o1BBVj36l(u32o`X&M9J@GM0CIXti+SueKG_FzPs8Uw=je+91(&$+-I zq;Z#z?tTR)Ch_>R;Qog;xDtZ48LuyT?f^`#grFxFmX148bT7Afxwav5A?9QE_LYc` h1kDirLuFlV@jug5(e<=w+5G?j002ovPDHLkV1hr|Su_9u literal 0 HcmV?d00001 diff --git a/theme/index.html b/theme/index.html new file mode 100755 index 0000000..7566acd --- /dev/null +++ b/theme/index.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="en" /> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<title>Bootstrap</title> +<meta name="description" content="Bootstrap"> + + +<!-- Included CSS Files (Compressed) --> + +<link href="css/bootstrap-glyphicons.css" rel="stylesheet"> +<link rel="stylesheet" href="css/bootstrap.css"> +<link rel="stylesheet" href="css/app.css"> + + +<!-- Le javascript +================================================== --> +<!-- Placed at the end of the document so the pages load faster --> +<script src="js/jquery.js"></script> +<script src="js/bootstrap.js"></script> + +<!-- Initialize JS Plugins --> +<script src="js/app.js"></script> +</head> +<body> + +</body> +</html> \ No newline at end of file diff --git a/theme/javascripts/app.js b/theme/javascripts/app.js deleted file mode 100644 index 0662206..0000000 --- a/theme/javascripts/app.js +++ /dev/null @@ -1,396 +0,0 @@ -(function($){ - $(function(){ - - /* datepicker */ - $('.date_picker').simpleDatepicker(); - - $(document).foundationAlerts(); - $(document).foundationAccordion(); - $(document).tooltips(); - $('input, textarea').placeholder(); - - - - $(document).foundationButtons(); - - - - $(document).foundationNavigation(); - - - - $(document).foundationCustomForms(); - - - - - $(document).foundationTabs({callback:$.foundation.customForms.appendCustomMarkup}); - - - - // UNCOMMENT THE LINE YOU WANT BELOW IF YOU WANT IE8 SUPPORT AND ARE USING .block-grids - // $('.block-grid.two-up>li:nth-child(2n+1)').css({clear: 'left'}); - // $('.block-grid.three-up>li:nth-child(3n+1)').css({clear: 'left'}); - // $('.block-grid.four-up>li:nth-child(4n+1)').css({clear: 'left'}); - // $('.block-grid.five-up>li:nth-child(5n+1)').css({clear: 'left'}); - }); - - <!-- number and money format --> - $(".just_number").keypress(function (e) - { if( e.which!=8 && e.which!=0 && (e.which < 48 || e.which > 57)) { return false; } }); - - $(".just_money").keypress(function (e) - { if( e.which!=8 && e.which!=0 && e.which!=46 && (e.which < 48 || e.which > 57)) { return false; } }); - <!-- /number and money format --> - -})(jQuery); - - - - -$(document).ready(function() { - - <!-- data table --> - $('.dataTable').dataTable( - { - "oLanguage": { - "sLengthMenu": '<select >'+ - '<option value="10">10</option>'+ - '<option value="20">20</option>'+ - '<option value="30">30</option>'+ - '<option value="40">40</option>'+ - '<option value="50">50</option>'+ - '<option value="100">100</option>'+ - '<option value="-1">All</option>'+ - '</select>' - } - }); - - - <!-- number and money format --> - $(".just_number").keypress(function (e) - { if( e.which!=8 && e.which!=0 && (e.which < 48 || e.which > 57)) { return false; } }); - - $(".just_money").keypress(function (e) - { if( e.which!=8 && e.which!=0 && e.which!=46 && (e.which < 48 || e.which > 57)) { return false; } }); - <!-- /number and money format --> - - - <!-- validate --> - $("form").validate(); -}); - - - - -/** - the script only works on "input [type=text]" - -**/ - -// don't declare anything out here in the global namespace - -(function($) { // create private scope (inside you can use $ instead of jQuery) - - // functions and vars declared here are effectively 'singletons'. there will be only a single - // instance of them. so this is a good place to declare any immutable items or stateless - // functions. for example: - - var today = new Date(); // used in defaults - var months = 'January,February,March,April,May,June,July,August,September,October,November,December'.split(','); - var monthlengths = '31,28,31,30,31,30,31,31,30,31,30,31'.split(','); - var dateRegEx = /^\d{1,2}\/\d{1,2}\/\d{2}|\d{4}$/; - var yearRegEx = /^\d{4,4}$/; - - // next, declare the plugin function - $.fn.simpleDatepicker = function(options) { - - // functions and vars declared here are created each time your plugn function is invoked - - // you could probably refactor your 'build', 'load_month', etc, functions to be passed - // the DOM element from below - - var opts = jQuery.extend({}, jQuery.fn.simpleDatepicker.defaults, options); - - // replaces a date string with a date object in opts.startdate and opts.enddate, if one exists - // populates two new properties with a ready-to-use year: opts.startyear and opts.endyear - - setupYearRange(); - /** extracts and setup a valid year range from the opts object **/ - function setupYearRange () { - - var startyear, endyear; - if (opts.startdate.constructor == Date) { - startyear = opts.startdate.getFullYear(); - } else if (opts.startdate) { - if (yearRegEx.test(opts.startdate)) { - startyear = opts.startdate; - } else if (dateRegEx.test(opts.startdate)) { - opts.startdate = new Date(opts.startdate); - startyear = opts.startdate.getFullYear(); - } else { - startyear = today.getFullYear(); - } - } else { - startyear = today.getFullYear(); - } - opts.startyear = startyear; - - if (opts.enddate.constructor == Date) { - endyear = opts.enddate.getFullYear(); - } else if (opts.enddate) { - if (yearRegEx.test(opts.enddate)) { - endyear = opts.enddate; - } else if (dateRegEx.test(opts.enddate)) { - opts.enddate = new Date(opts.enddate); - endyear = opts.enddate.getFullYear(); - } else { - endyear = today.getFullYear(); - } - } else { - endyear = today.getFullYear(); - } - opts.endyear = endyear; - } - - /** HTML factory for the actual datepicker table element **/ - // has to read the year range so it can setup the correct years in our HTML <select> - function newDatepickerHTML () { - - var years = []; - - // process year range into an array - for (var i = 0; i <= opts.endyear - opts.startyear; i ++) years[i] = opts.startyear + i; - - // build the table structure - var table = jQuery('<table class="datepicker" cellpadding="0" cellspacing="0"></table>'); - table.append('<thead></thead>'); - table.append('<tfoot></tfoot>'); - table.append('<tbody></tbody>'); - - // month select field - var monthselect = '<select name="month">'; - for (var i in months) monthselect += '<option value="'+i+'">'+months[i]+'</option>'; - monthselect += '</select>'; - - // year select field - var yearselect = '<select name="year">'; - for (var i in years) yearselect += '<option>'+years[i]+'</option>'; - yearselect += '</select>'; - - jQuery("thead",table).append('<tr class="controls"><th colspan="7"><span class="prevMonth">&laquo;</span>&nbsp;'+monthselect+yearselect+'&nbsp;<span class="nextMonth">&raquo;</span></th></tr>'); - jQuery("thead",table).append('<tr class="days"><th>S</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th></tr>'); - jQuery("tfoot",table).append('<tr><td colspan="2"><span class="today">today</span></td><td colspan="3">&nbsp;</td><td colspan="2"><span class="close">close</span></td></tr>'); - for (var i = 0; i < 6; i++) jQuery("tbody",table).append('<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>'); - return table; - } - - /** get the real position of the input (well, anything really) **/ - //http://www.quirksmode.org/js/findpos.html - function findPosition (obj) { - var curleft = curtop = 0; - if (obj.offsetParent) { - do { - curleft += obj.offsetLeft; - curtop += obj.offsetTop; - } while (obj = obj.offsetParent); - return [curleft,curtop]; - } else { - return false; - } - } - - /** load the initial date and handle all date-navigation **/ - // initial calendar load (e is null) - // prevMonth & nextMonth buttons - // onchange for the select fields - function loadMonth (e, el, datepicker, chosendate) { - - // reference our years for the nextMonth and prevMonth buttons - var mo = jQuery("select[name=month]", datepicker).get(0).selectedIndex; - var yr = jQuery("select[name=year]", datepicker).get(0).selectedIndex; - var yrs = jQuery("select[name=year] option", datepicker).get().length; - - // first try to process buttons that may change the month we're on - if (e && jQuery(e.target).hasClass('prevMonth')) { - if (0 == mo && yr) { - yr -= 1; mo = 11; - jQuery("select[name=month]", datepicker).get(0).selectedIndex = 11; - jQuery("select[name=year]", datepicker).get(0).selectedIndex = yr; - } else { - mo -= 1; - jQuery("select[name=month]", datepicker).get(0).selectedIndex = mo; - } - } else if (e && jQuery(e.target).hasClass('nextMonth')) { - if (11 == mo && yr + 1 < yrs) { - yr += 1; mo = 0; - jQuery("select[name=month]", datepicker).get(0).selectedIndex = 0; - jQuery("select[name=year]", datepicker).get(0).selectedIndex = yr; - } else { - mo += 1; - jQuery("select[name=month]", datepicker).get(0).selectedIndex = mo; - } - } - - // maybe hide buttons - if (0 == mo && !yr) jQuery("span.prevMonth", datepicker).hide(); - else jQuery("span.prevMonth", datepicker).show(); - if (yr + 1 == yrs && 11 == mo) jQuery("span.nextMonth", datepicker).hide(); - else jQuery("span.nextMonth", datepicker).show(); - - // clear the old cells - var cells = jQuery("tbody td", datepicker).unbind().empty().removeClass('date'); - - // figure out what month and year to load - var m = jQuery("select[name=month]", datepicker).val(); - var y = jQuery("select[name=year]", datepicker).val(); - var d = new Date(y, m, 1); - var startindex = d.getDay(); - var numdays = monthlengths[m]; - - // http://en.wikipedia.org/wiki/Leap_year - if (1 == m && ((y%4 == 0 && y%100 != 0) || y%400 == 0)) numdays = 29; - - // test for end dates (instead of just a year range) - if (opts.startdate.constructor == Date) { - var startMonth = opts.startdate.getMonth(); - var startDate = opts.startdate.getDate(); - } - if (opts.enddate.constructor == Date) { - var endMonth = opts.enddate.getMonth(); - var endDate = opts.enddate.getDate(); - } - - // walk through the index and populate each cell, binding events too - for (var i = 0; i < numdays; i++) { - - var cell = jQuery(cells.get(i+startindex)).removeClass('chosen'); - - // test that the date falls within a range, if we have a range - if ( - (yr || ((!startDate && !startMonth) || ((i+1 >= startDate && mo == startMonth) || mo > startMonth))) && - (yr + 1 < yrs || ((!endDate && !endMonth) || ((i+1 <= endDate && mo == endMonth) || mo < endMonth)))) { - - cell - .text(i+1) - .addClass('date') - .hover( - function () { jQuery(this).addClass('over'); }, - function () { jQuery(this).removeClass('over'); }) - .click(function () { - var chosenDateObj = new Date(jQuery("select[name=year]", datepicker).val(), jQuery("select[name=month]", datepicker).val(), jQuery(this).text()); - closeIt(el, datepicker, chosenDateObj); - }); - - // highlight the previous chosen date - if (i+1 == chosendate.getDate() && m == chosendate.getMonth() && y == chosendate.getFullYear()) cell.addClass('chosen'); - } - } - } - - /** closes the datepicker **/ - // sets the currently matched input element's value to the date, if one is available - // remove the table element from the DOM - // indicate that there is no datepicker for the currently matched input element - function closeIt (el, datepicker, dateObj) { - if (dateObj && dateObj.constructor == Date) - el.val(jQuery.fn.simpleDatepicker.formatOutput(dateObj)); - datepicker.remove(); - datepicker = null; - jQuery.data(el.get(0), "simpleDatepicker", { hasDatepicker : false }); - } - - // iterate the matched nodeset - return this.each(function() { - - // functions and vars declared here are created for each matched element. so if - // your functions need to manage or access per-node state you can defined them - // here and use $this to get at the DOM element - - if ( jQuery(this).is('input') && 'text' == jQuery(this).attr('type')) { - - var datepicker; - jQuery.data(jQuery(this).get(0), "simpleDatepicker", { hasDatepicker : false }); - - // open a datepicker on the click event - jQuery(this).click(function (ev) { - - var $this = jQuery(ev.target); - - if (false == jQuery.data($this.get(0), "simpleDatepicker").hasDatepicker) { - - // store data telling us there is already a datepicker - jQuery.data($this.get(0), "simpleDatepicker", { hasDatepicker : true }); - - // validate the form's initial content for a date - var initialDate = $this.val(); - - if (initialDate && dateRegEx.test(initialDate)) { - var chosendate = new Date(initialDate); - } else if (opts.chosendate.constructor == Date) { - var chosendate = opts.chosendate; - } else if (opts.chosendate) { - var chosendate = new Date(opts.chosendate); - } else { - var chosendate = today; - } - - // insert the datepicker in the DOM - datepicker = newDatepickerHTML(); - jQuery("body").prepend(datepicker); - - // position the datepicker - var elPos = findPosition($this.get(0)); - var x = (parseInt(opts.x) ? parseInt(opts.x) : 0) + elPos[0]; - var y = (parseInt(opts.y) ? parseInt(opts.y) : 0) + elPos[1]; - jQuery(datepicker).css({ position: 'absolute', left: x, top: y }); - - // bind events to the table controls - jQuery("span", datepicker).css("cursor","pointer"); - jQuery("select", datepicker).bind('change', function () { loadMonth (null, $this, datepicker, chosendate); }); - jQuery("span.prevMonth", datepicker).click(function (e) { loadMonth (e, $this, datepicker, chosendate); }); - jQuery("span.nextMonth", datepicker).click(function (e) { loadMonth (e, $this, datepicker, chosendate); }); - jQuery("span.today", datepicker).click(function () { closeIt($this, datepicker, new Date()); }); - jQuery("span.close", datepicker).click(function () { closeIt($this, datepicker); }); - - // set the initial values for the month and year select fields - // and load the first month - jQuery("select[name=month]", datepicker).get(0).selectedIndex = chosendate.getMonth(); - jQuery("select[name=year]", datepicker).get(0).selectedIndex = Math.max(0, chosendate.getFullYear() - opts.startyear); - loadMonth(null, $this, datepicker, chosendate); - } - - }); - } - - }); - - }; - - // finally, I like to expose default plugin options as public so they can be manipulated. one - // way to do this is to add a property to the already-public plugin fn - - jQuery.fn.simpleDatepicker.formatOutput = function (dateObj) { - var month = dateObj.getMonth(); - if(month < 10){ month = '0'+dateObj.getMonth();} - var day = dateObj.getDate(); - if(day < 10){ day = '0'+dateObj.getDate();} - return ( dateObj.getFullYear() + "-" + month + "-" + day); - }; - - jQuery.fn.simpleDatepicker.defaults = { - // date string matching /^\d{1,2}\/\d{1,2}\/\d{2}|\d{4}$/ - chosendate : today, - - // date string matching /^\d{1,2}\/\d{1,2}\/\d{2}|\d{4}$/ - // or four digit year - startdate : today.getFullYear(), - enddate : today.getFullYear() + 1, - - // offset from the top left corner of the input element - x : 18, // must be in px - y : 18 // must be in px - }; - -})(jQuery); - \ No newline at end of file diff --git a/theme/javascripts/foundation.js b/theme/javascripts/foundation.js deleted file mode 100644 index 64a8402..0000000 --- a/theme/javascripts/foundation.js +++ /dev/null @@ -1,52 +0,0 @@ -/* Modernizr 2.6.0 (Custom Build) | MIT & BSD - * Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-cssclasses-teststyles-prefixes-ie8compat-load - */ -window.Modernizr=function(e,t,n){function r(e){d.cssText=e}function i(e,t){return r(g.join(e+";")+(t||""))}function s(e,t){return typeof e===t}function o(e,t){return!!~(""+e).indexOf(t)}function u(e,t,r){for(var i in e){var o=t[e[i]];if(o!==n)return r===!1?e[i]:s(o,"function")?o.bind(r||t):o}return!1}var a="2.6.0",f={},l=!0,c=t.documentElement,h="modernizr",p=t.createElement(h),d=p.style,v,m={}.toString,g=" -webkit- -moz- -o- -ms- ".split(" "),y={svg:"http://www.w3.org/2000/svg"},b={},w={},E={},S=[],x=S.slice,T,N=function(e,n,r,i){var s,o,u,a=t.createElement("div"),f=t.body,l=f?f:t.createElement("body");if(parseInt(r,10))while(r--)u=t.createElement("div"),u.id=i?i[r]:h+(r+1),a.appendChild(u);return s=["&#173;",'<style id="s',h,'">',e,"</style>"].join(""),a.id=h,(f?a:l).innerHTML+=s,l.appendChild(a),f||(l.style.background="",c.appendChild(l)),o=n(a,e),f?a.parentNode.removeChild(a):l.parentNode.removeChild(l),!!o},C={}.hasOwnProperty,k;!s(C,"undefined")&&!s(C.call,"undefined")?k=function(e,t){return C.call(e,t)}:k=function(e,t){return t in e&&s(e.constructor.prototype[t],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if(typeof t!="function")throw new TypeError;var n=x.call(arguments,1),r=function(){if(this instanceof r){var i=function(){};i.prototype=t.prototype;var s=new i,o=t.apply(s,n.concat(x.call(arguments)));return Object(o)===o?o:s}return t.apply(e,n.concat(x.call(arguments)))};return r}),b.touch=function(){var n;return"ontouchstart"in e||e.DocumentTouch&&t instanceof DocumentTouch?n=!0:N(["@media (",g.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(e){n=e.offsetTop===9}),n},b.svg=function(){return!!t.createElementNS&&!!t.createElementNS(y.svg,"svg").createSVGRect},b.inlinesvg=function(){var e=t.createElement("div");return e.innerHTML="<svg/>",(e.firstChild&&e.firstChild.namespaceURI)==y.svg},b.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/.test(m.call(t.createElementNS(y.svg,"clipPath")))};for(var L in b)k(b,L)&&(T=L.toLowerCase(),f[T]=b[L](),S.push((f[T]?"":"no-")+T));return f.addTest=function(e,t){if(typeof e=="object")for(var r in e)k(e,r)&&f.addTest(r,e[r]);else{e=e.toLowerCase();if(f[e]!==n)return f;t=typeof t=="function"?t():t,l&&(c.className+=" "+(t?"":"no-")+e),f[e]=t}return f},r(""),p=v=null,function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=g.elements;return typeof e=="string"?e.split(" "):e}function i(e){var t=v[e[p]];return t||(t={},d++,e[p]=d,v[d]=t),t}function s(e,n,r){n||(n=t);if(m)return n.createElement(e);r||(r=i(n));var s;return r.cache[e]?s=r.cache[e].cloneNode():c.test(e)?s=(r.cache[e]=r.createElem(e)).cloneNode():s=r.createElem(e),s.canHaveChildren&&!l.test(e)?r.frag.appendChild(s):s}function o(e,n){e||(e=t);if(m)return e.createDocumentFragment();n=n||i(e);var s=n.frag.cloneNode(),o=0,u=r(),a=u.length;for(;o<a;o++)s.createElement(u[o]);return s}function u(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return g.shivMethods?s(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/\w+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(g,t.frag)}function a(e){e||(e=t);var r=i(e);return g.shivCSS&&!h&&!r.hasCSS&&(r.hasCSS=!!n(e,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),m||u(e,r),e}var f=e.html5||{},l=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,c=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,h,p="_html5shiv",d=0,v={},m;(function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",h="hidden"in e,m=e.childNodes.length==1||function(){t.createElement("a");var e=t.createDocumentFragment();return typeof e.cloneNode=="undefined"||typeof e.createDocumentFragment=="undefined"||typeof e.createElement=="undefined"}()}catch(n){h=!0,m=!0}})();var g={elements:f.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:f.shivCSS!==!1,supportsUnknownElements:m,shivMethods:f.shivMethods!==!1,type:"default",shivDocument:a,createElement:s,createDocumentFragment:o};e.html5=g,a(t)}(this,t),f._version=a,f._prefixes=g,f.testStyles=N,c.className=c.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(l?" js "+S.join(" "):""),f}(this,this.document),function(e,t,n){function r(e){return d.call(e)=="[object Function]"}function i(e){return typeof e=="string"}function s(){}function o(e){return!e||e=="loaded"||e=="complete"||e=="uninitialized"}function u(){var e=v.shift();m=1,e?e.t?h(function(){(e.t=="c"?k.injectCss:k.injectJs)(e.s,0,e.a,e.x,e.e,1)},0):(e(),u()):m=0}function a(e,n,r,i,s,a,f){function l(t){if(!d&&o(c.readyState)&&(w.r=d=1,!m&&u(),c.onload=c.onreadystatechange=null,t)){e!="img"&&h(function(){b.removeChild(c)},50);for(var r in T[n])T[n].hasOwnProperty(r)&&T[n][r].onload()}}var f=f||k.errorTimeout,c={},d=0,g=0,w={t:r,s:n,e:s,a:a,x:f};T[n]===1&&(g=1,T[n]=[],c=t.createElement(e)),e=="object"?c.data=n:(c.src=n,c.type=e),c.width=c.height="0",c.onerror=c.onload=c.onreadystatechange=function(){l.call(this,g)},v.splice(i,0,w),e!="img"&&(g||T[n]===2?(b.insertBefore(c,y?null:p),h(l,f)):T[n].push(c))}function f(e,t,n,r,s){return m=0,t=t||"j",i(e)?a(t=="c"?E:w,e,t,this.i++,n,r,s):(v.splice(this.i++,0,e),v.length==1&&u()),this}function l(){var e=k;return e.loader={load:f,i:0},e}var c=t.documentElement,h=e.setTimeout,p=t.getElementsByTagName("script")[0],d={}.toString,v=[],m=0,g="MozAppearance"in c.style,y=g&&!!t.createRange().compareNode,b=y?c:p.parentNode,c=e.opera&&d.call(e.opera)=="[object Opera]",c=!!t.attachEvent&&!c,w=g?"object":c?"script":"img",E=c?"script":w,S=Array.isArray||function(e){return d.call(e)=="[object Array]"},x=[],T={},N={timeout:function(e,t){return t.length&&(e.timeout=t[0]),e}},C,k;k=function(e){function t(e){var e=e.split("!"),t=x.length,n=e.pop(),r=e.length,n={url:n,origUrl:n,prefixes:e},i,s,o;for(s=0;s<r;s++)o=e[s].split("="),(i=N[o.shift()])&&(n=i(n,o));for(s=0;s<t;s++)n=x[s](n);return n}function o(e,i,s,o,a){var f=t(e),c=f.autoCallback;f.url.split(".").pop().split("?").shift(),f.bypass||(i&&(i=r(i)?i:i[e]||i[o]||i[e.split("/").pop().split("?")[0]]||u),f.instead?f.instead(e,i,s,o,a):(T[f.url]?f.noexec=!0:T[f.url]=1,s.load(f.url,f.forceCSS||!f.forceJS&&"css"==f.url.split(".").pop().split("?").shift()?"c":n,f.noexec,f.attrs,f.timeout),(r(i)||r(c))&&s.load(function(){l(),i&&i(f.origUrl,a,o),c&&c(f.origUrl,a,o),T[f.url]=2})))}function a(e,t){function n(e,n){if(e){if(i(e))n||(f=function(){var e=[].slice.call(arguments);l.apply(this,e),c()}),o(e,f,t,0,u);else if(Object(e)===e)for(p in h=function(){var t=0,n;for(n in e)e.hasOwnProperty(n)&&t++;return t}(),e)e.hasOwnProperty(p)&&(!n&&!--h&&(r(f)?f=function(){var e=[].slice.call(arguments);l.apply(this,e),c()}:f[p]=function(e){return function(){var t=[].slice.call(arguments);e&&e.apply(this,t),c()}}(l[p])),o(e[p],f,t,p,u))}else!n&&c()}var u=!!e.test,a=e.load||e.both,f=e.callback||s,l=f,c=e.complete||s,h,p;n(u?e.yep:e.nope,!!a),a&&n(a)}var f,c,h=this.yepnope.loader;if(i(e))o(e,0,h,0);else if(S(e))for(f=0;f<e.length;f++)c=e[f],i(c)?o(c,0,h,0):S(c)?k(c):Object(c)===c&&a(c,h);else Object(e)===e&&a(e,h)},k.addPrefix=function(e,t){N[e]=t},k.addFilter=function(e){x.push(e)},k.errorTimeout=1e4,t.readyState==null&&t.addEventListener&&(t.readyState="loading",t.addEventListener("DOMContentLoaded",C=function(){t.removeEventListener("DOMContentLoaded",C,0),t.readyState="complete"},0)),e.yepnope=l(),e.yepnope.executeStack=u,e.yepnope.injectJs=function(e,n,r,i,a,f){var l=t.createElement("script"),c,d,i=i||k.errorTimeout;l.src=e;for(d in r)l.setAttribute(d,r[d]);n=f?u:n||s,l.onreadystatechange=l.onload=function(){!c&&o(l.readyState)&&(c=1,n(),l.onload=l.onreadystatechange=null)},h(function(){c||(c=1,n(1))},i),a?l.onload():p.parentNode.insertBefore(l,p)},e.yepnope.injectCss=function(e,n,r,i,o,a){var i=t.createElement("link"),f,n=a?u:n||s;i.href=e,i.rel="stylesheet",i.type="text/css";for(f in r)i.setAttribute(f,r[f]);o||(p.parentNode.insertBefore(i,p),h(n,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))},Modernizr.addTest("ie8compat",function(){return!window.addEventListener&&document.documentMode&&document.documentMode===7});/*! - * jQuery JavaScript Library v1.7.2 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Wed Mar 21 12:46:34 2012 -0700 - */ -(function(e,t){function u(e){var t=o[e]={},n,r;e=e.split(/\s+/);for(n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function c(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(l,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:s.isNumeric(r)?+r:f.test(r)?s.parseJSON(r):r}catch(o){}s.data(e,n,r)}else r=t}return r}function h(e){for(var t in e){if(t==="data"&&s.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function p(e,t,n){var r=t+"defer",i=t+"queue",o=t+"mark",u=s._data(e,r);u&&(n==="queue"||!s._data(e,i))&&(n==="mark"||!s._data(e,o))&&setTimeout(function(){!s._data(e,i)&&!s._data(e,o)&&(s.removeData(e,r,!0),u.fire())},0)}function H(){return!1}function B(){return!0}function W(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function X(e,t,n){t=t||0;if(s.isFunction(t))return s.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return s.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=s.grep(e,function(e){return e.nodeType===1});if(q.test(t))return s.filter(t,r,!n);t=s.filter(t,r)}return s.grep(e,function(e,r){return s.inArray(e,t)>=0===n})}function V(e){var t=$.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function at(e,t){return s.nodeName(e,"table")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e,t){if(t.nodeType!==1||!s.hasData(e))return;var n,r,i,o=s._data(e),u=s._data(t,o),a=o.events;if(a){delete u.handle,u.events={};for(n in a)for(r=0,i=a[n].length;r<i;r++)s.event.add(t,n,a[n][r])}u.data&&(u.data=s.extend({},u.data))}function lt(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?t.outerHTML=e.outerHTML:n!=="input"||e.type!=="checkbox"&&e.type!=="radio"?n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text):(e.checked&&(t.defaultChecked=t.checked=e.checked),t.value!==e.value&&(t.value=e.value)),t.removeAttribute(s.expando),t.removeAttribute("_submit_attached"),t.removeAttribute("_change_attached")}function ct(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function ht(e){if(e.type==="checkbox"||e.type==="radio")e.defaultChecked=e.checked}function pt(e){var t=(e.nodeName||"").toLowerCase();t==="input"?ht(e):t!=="script"&&typeof e.getElementsByTagName!="undefined"&&s.grep(e.getElementsByTagName("input"),ht)}function dt(e){var t=n.createElement("div");return ut.appendChild(t),t.innerHTML=e.outerHTML,t.firstChild}function kt(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=t==="width"?1:0,o=4;if(r>0){if(n!=="border")for(;i<o;i+=2)n||(r-=parseFloat(s.css(e,"padding"+xt[i]))||0),n==="margin"?r+=parseFloat(s.css(e,n+xt[i]))||0:r-=parseFloat(s.css(e,"border"+xt[i]+"Width"))||0;return r+"px"}r=Tt(e,t);if(r<0||r==null)r=e.style[t];if(bt.test(r))return r;r=parseFloat(r)||0;if(n)for(;i<o;i+=2)r+=parseFloat(s.css(e,"padding"+xt[i]))||0,n!=="padding"&&(r+=parseFloat(s.css(e,"border"+xt[i]+"Width"))||0),n==="margin"&&(r+=parseFloat(s.css(e,n+xt[i]))||0);return r+"px"}function Qt(e){return function(t,n){typeof t!="string"&&(n=t,t="*");if(s.isFunction(n)){var r=t.toLowerCase().split(qt),i=0,o=r.length,u,a,f;for(;i<o;i++)u=r[i],f=/^\+/.test(u),f&&(u=u.substr(1)||"*"),a=e[u]=e[u]||[],a[f?"unshift":"push"](n)}}}function Gt(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u=e[s],a=0,f=u?u.length:0,l=e===Wt,c;for(;a<f&&(l||!c);a++)c=u[a](n,r,i),typeof c=="string"&&(!l||o[c]?c=t:(n.dataTypes.unshift(c),c=Gt(e,n,r,i,c,o)));return(l||!c)&&!o["*"]&&(c=Gt(e,n,r,i,"*",o)),c}function Yt(e,n){var r,i,o=s.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);i&&s.extend(!0,e,i)}function Zt(e,t,n,r){if(s.isArray(t))s.each(t,function(t,i){n||At.test(e)?r(e,i):Zt(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&s.type(t)==="object")for(var i in t)Zt(e+"["+i+"]",t[i],n,r);else r(e,t)}function en(e,n,r){var i=e.contents,s=e.dataTypes,o=e.responseFields,u,a,f,l;for(a in o)a in r&&(n[o[a]]=r[a]);while(s[0]==="*")s.shift(),u===t&&(u=e.mimeType||n.getResponseHeader("content-type"));if(u)for(a in i)if(i[a]&&i[a].test(u)){s.unshift(a);break}if(s[0]in r)f=s[0];else{for(a in r){if(!s[0]||e.converters[a+" "+s[0]]){f=a;break}l||(l=a)}f=f||l}if(f)return f!==s[0]&&s.unshift(f),r[f]}function tn(e,n){e.dataFilter&&(n=e.dataFilter(n,e.dataType));var r=e.dataTypes,i={},o,u,a=r.length,f,l=r[0],c,h,p,d,v;for(o=1;o<a;o++){if(o===1)for(u in e.converters)typeof u=="string"&&(i[u.toLowerCase()]=e.converters[u]);c=l,l=r[o];if(l==="*")l=c;else if(c!=="*"&&c!==l){h=c+" "+l,p=i[h]||i["* "+l];if(!p){v=t;for(d in i){f=d.split(" ");if(f[0]===c||f[0]==="*"){v=i[f[1]+" "+l];if(v){d=i[d],d===!0?p=v:v===!0&&(p=d);break}}}}!p&&!v&&s.error("No conversion from "+h.replace(" "," to ")),p!==!0&&(n=p?p(n):v(d(n)))}}return n}function an(){try{return new e.XMLHttpRequest}catch(t){}}function fn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function yn(){return setTimeout(bn,0),gn=s.now()}function bn(){gn=t}function wn(e,t){var n={};return s.each(mn.concat.apply([],mn.slice(0,t)),function(){n[this]=e}),n}function En(e){if(!ln[e]){var t=n.body,r=s("<"+e+">").appendTo(t),i=r.css("display");r.remove();if(i==="none"||i===""){cn||(cn=n.createElement("iframe"),cn.frameBorder=cn.width=cn.height=0),t.appendChild(cn);if(!hn||!cn.createElement)hn=(cn.contentWindow||cn.contentDocument).document,hn.write((s.support.boxModel?"<!doctype html>":"")+"<html><body>"),hn.close();r=hn.createElement(e),hn.body.appendChild(r),i=s.css(r,"display"),t.removeChild(cn)}ln[e]=i}return ln[e]}function Nn(e){return s.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n=e.document,r=e.navigator,i=e.location,s=function(){function H(){if(i.isReady)return;try{n.documentElement.doScroll("left")}catch(e){setTimeout(H,1);return}i.ready()}var i=function(e,t){return new i.fn.init(e,t,u)},s=e.jQuery,o=e.$,u,a=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,f=/\S/,l=/^\s+/,c=/\s+$/,h=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,p=/^[\],:{}\s]*$/,d=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,v=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,m=/(?:^|:|,)(?:\s*\[)+/g,g=/(webkit)[ \/]([\w.]+)/,y=/(opera)(?:.*version)?[ \/]([\w.]+)/,b=/(msie) ([\w.]+)/,w=/(mozilla)(?:.*? rv:([\w.]+))?/,E=/-([a-z]|[0-9])/ig,S=/^-ms-/,x=function(e,t){return(t+"").toUpperCase()},T=r.userAgent,N,C,k,L=Object.prototype.toString,A=Object.prototype.hasOwnProperty,O=Array.prototype.push,M=Array.prototype.slice,_=String.prototype.trim,D=Array.prototype.indexOf,P={};return i.fn=i.prototype={constructor:i,init:function(e,r,s){var o,u,f,l;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(e==="body"&&!r&&n.body)return this.context=n,this[0]=n.body,this.selector=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?o=[null,e,null]:o=a.exec(e);if(o&&(o[1]||!r)){if(o[1])return r=r instanceof i?r[0]:r,l=r?r.ownerDocument||r:n,f=h.exec(e),f?i.isPlainObject(r)?(e=[n.createElement(f[1])],i.fn.attr.call(e,r,!0)):e=[l.createElement(f[1])]:(f=i.buildFragment([o[1]],[l]),e=(f.cacheable?i.clone(f.fragment):f.fragment).childNodes),i.merge(this,e);u=n.getElementById(o[2]);if(u&&u.parentNode){if(u.id!==o[2])return s.find(e);this.length=1,this[0]=u}return this.context=n,this.selector=e,this}return!r||r.jquery?(r||s).find(e):this.constructor(r).find(e)}return i.isFunction(e)?s.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),i.makeArray(e,this))},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return M.call(this,0)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=this.constructor();return i.isArray(e)?O.apply(r,e):i.merge(r,e),r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return i.each(this,e,t)},ready:function(e){return i.bindReady(),C.add(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(M.apply(this,arguments),"slice",M.call(arguments).join(","))},map:function(e){return this.pushStack(i.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:O,sort:[].sort,splice:[].splice},i.fn.init.prototype=i.fn,i.extend=i.fn.extend=function(){var e,n,r,s,o,u,a=arguments[0]||{},f=1,l=arguments.length,c=!1;typeof a=="boolean"&&(c=a,a=arguments[1]||{},f=2),typeof a!="object"&&!i.isFunction(a)&&(a={}),l===f&&(a=this,--f);for(;f<l;f++)if((e=arguments[f])!=null)for(n in e){r=a[n],s=e[n];if(a===s)continue;c&&s&&(i.isPlainObject(s)||(o=i.isArray(s)))?(o?(o=!1,u=r&&i.isArray(r)?r:[]):u=r&&i.isPlainObject(r)?r:{},a[n]=i.extend(c,u,s)):s!==t&&(a[n]=s)}return a},i.extend({noConflict:function(t){return e.$===i&&(e.$=o),t&&e.jQuery===i&&(e.jQuery=s),i},isReady:!1,readyWait:1,holdReady:function(e){e?i.readyWait++:i.ready(!0)},ready:function(e){if(e===!0&&!--i.readyWait||e!==!0&&!i.isReady){if(!n.body)return setTimeout(i.ready,1);i.isReady=!0;if(e!==!0&&--i.readyWait>0)return;C.fireWith(n,[i]),i.fn.trigger&&i(n).trigger("ready").off("ready")}},bindReady:function(){if(C)return;C=i.Callbacks("once memory");if(n.readyState==="complete")return setTimeout(i.ready,1);if(n.addEventListener)n.addEventListener("DOMContentLoaded",k,!1),e.addEventListener("load",i.ready,!1);else if(n.attachEvent){n.attachEvent("onreadystatechange",k),e.attachEvent("onload",i.ready);var t=!1;try{t=e.frameElement==null}catch(r){}n.documentElement.doScroll&&t&&H()}},isFunction:function(e){return i.type(e)==="function"},isArray:Array.isArray||function(e){return i.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):P[L.call(e)]||"object"},isPlainObject:function(e){if(!e||i.type(e)!=="object"||e.nodeType||i.isWindow(e))return!1;try{if(e.constructor&&!A.call(e,"constructor")&&!A.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||A.call(e,r)},isEmptyObject:function(e){for(var t in e)return!1;return!0},error:function(e){throw new Error(e)},parseJSON:function(t){if(typeof t!="string"||!t)return null;t=i.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(p.test(t.replace(d,"@").replace(v,"]").replace(m,"")))return(new Function("return "+t))();i.error("Invalid JSON: "+t)},parseXML:function(n){if(typeof n!="string"||!n)return null;var r,s;try{e.DOMParser?(s=new DOMParser,r=s.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&i.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&f.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(S,"ms-").replace(E,x)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toUpperCase()===t.toUpperCase()},each:function(e,n,r){var s,o=0,u=e.length,a=u===t||i.isFunction(e);if(r){if(a){for(s in e)if(n.apply(e[s],r)===!1)break}else for(;o<u;)if(n.apply(e[o++],r)===!1)break}else if(a){for(s in e)if(n.call(e[s],s,e[s])===!1)break}else for(;o<u;)if(n.call(e[o],o,e[o++])===!1)break;return e},trim:_?function(e){return e==null?"":_.call(e)}:function(e){return e==null?"":e.toString().replace(l,"").replace(c,"")},makeArray:function(e,t){var n=t||[];if(e!=null){var r=i.type(e);e.length==null||r==="string"||r==="function"||r==="regexp"||i.isWindow(e)?O.call(n,e):i.merge(n,e)}return n},inArray:function(e,t,n){var r;if(t){if(D)return D.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=e.length,i=0;if(typeof n.length=="number")for(var s=n.length;i<s;i++)e[r++]=n[i];else while(n[i]!==t)e[r++]=n[i++];return e.length=r,e},grep:function(e,t,n){var r=[],i;n=!!n;for(var s=0,o=e.length;s<o;s++)i=!!t(e[s],s),n!==i&&r.push(e[s]);return r},map:function(e,n,r){var s,o,u=[],a=0,f=e.length,l=e instanceof i||f!==t&&typeof f=="number"&&(f>0&&e[0]&&e[f-1]||f===0||i.isArray(e));if(l)for(;a<f;a++)s=n(e[a],a,r),s!=null&&(u[u.length]=s);else for(o in e)s=n(e[o],o,r),s!=null&&(u[u.length]=s);return u.concat.apply([],u)},guid:1,proxy:function(e,n){if(typeof n=="string"){var r=e[n];n=e,e=r}if(!i.isFunction(e))return t;var s=M.call(arguments,2),o=function(){return e.apply(n,s.concat(M.call(arguments)))};return o.guid=e.guid=e.guid||o.guid||i.guid++,o},access:function(e,n,r,s,o,u,a){var f,l=r==null,c=0,h=e.length;if(r&&typeof r=="object"){for(c in r)i.access(e,n,c,r[c],1,u,s);o=1}else if(s!==t){f=a===t&&i.isFunction(s),l&&(f?(f=n,n=function(e,t,n){return f.call(i(e),n)}):(n.call(e,s),n=null));if(n)for(;c<h;c++)n(e[c],r,f?s.call(e[c],c,n(e[c],r)):s,a);o=1}return o?e:l?n.call(e):h?n(e[0],r):u},now:function(){return(new Date).getTime()},uaMatch:function(e){e=e.toLowerCase();var t=g.exec(e)||y.exec(e)||b.exec(e)||e.indexOf("compatible")<0&&w.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},sub:function(){function e(t,n){return new e.fn.init(t,n)}i.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,s){return s&&s instanceof i&&!(s instanceof e)&&(s=e(s)),i.fn.init.call(this,r,s,t)},e.fn.init.prototype=e.fn;var t=e(n);return e},browser:{}}),i.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){P["[object "+t+"]"]=t.toLowerCase()}),N=i.uaMatch(T),N.browser&&(i.browser[N.browser]=!0,i.browser.version=N.version),i.browser.webkit&&(i.browser.safari=!0),f.test(" ")&&(l=/^[\s\xA0]+/,c=/[\s\xA0]+$/),u=i(n),n.addEventListener?k=function(){n.removeEventListener("DOMContentLoaded",k,!1),i.ready()}:n.attachEvent&&(k=function(){n.readyState==="complete"&&(n.detachEvent("onreadystatechange",k),i.ready())}),i}(),o={};s.Callbacks=function(e){e=e?o[e]||u(e):{};var n=[],r=[],i,a,f,l,c,h,p=function(t){var r,i,o,u,a;for(r=0,i=t.length;r<i;r++)o=t[r],u=s.type(o),u==="array"?p(o):u==="function"&&(!e.unique||!v.has(o))&&n.push(o)},d=function(t,s){s=s||[],i=!e.memory||[t,s],a=!0,f=!0,h=l||0,l=0,c=n.length;for(;n&&h<c;h++)if(n[h].apply(t,s)===!1&&e.stopOnFalse){i=!0;break}f=!1,n&&(e.once?i===!0?v.disable():n=[]:r&&r.length&&(i=r.shift(),v.fireWith(i[0],i[1])))},v={add:function(){if(n){var e=n.length;p(arguments),f?c=n.length:i&&i!==!0&&(l=e,d(i[0],i[1]))}return this},remove:function(){if(n){var t=arguments,r=0,i=t.length;for(;r<i;r++)for(var s=0;s<n.length;s++)if(t[r]===n[s]){f&&s<=c&&(c--,s<=h&&h--),n.splice(s--,1);if(e.unique)break}}return this},has:function(e){if(n){var t=0,r=n.length;for(;t<r;t++)if(e===n[t])return!0}return!1},empty:function(){return n=[],this},disable:function(){return n=r=i=t,this},disabled:function(){return!n},lock:function(){return r=t,(!i||i===!0)&&v.disable(),this},locked:function(){return!r},fireWith:function(t,n){return r&&(f?e.once||r.push([t,n]):(!e.once||!i)&&d(t,n)),this},fire:function(){return v.fireWith(this,arguments),this},fired:function(){return!!a}};return v};var a=[].slice;s.extend({Deferred:function(e){var t=s.Callbacks("once memory"),n=s.Callbacks("once memory"),r=s.Callbacks("memory"),i="pending",o={resolve:t,reject:n,notify:r},u={done:t.add,fail:n.add,progress:r.add,state:function(){return i},isResolved:t.fired,isRejected:n.fired,then:function(e,t,n){return a.done(e).fail(t).progress(n),this},always:function(){return a.done.apply(a,arguments).fail.apply(a,arguments),this},pipe:function(e,t,n){return s.Deferred(function(r){s.each({done:[e,"resolve"],fail:[t,"reject"],progress:[n,"notify"]},function(e,t){var n=t[0],i=t[1],o;s.isFunction(n)?a[e](function(){o=n.apply(this,arguments),o&&s.isFunction(o.promise)?o.promise().then(r.resolve,r.reject,r.notify):r[i+"With"](this===a?r:this,[o])}):a[e](r[i])})}).promise()},promise:function(e){if(e==null)e=u;else for(var t in u)e[t]=u[t];return e}},a=u.promise({}),f;for(f in o)a[f]=o[f].fire,a[f+"With"]=o[f].fireWith;return a.done(function(){i="resolved"},n.disable,r.lock).fail(function(){i="rejected"},t.disable,r.lock),e&&e.call(a,a),a},when:function(e){function c(e){return function(n){t[e]=arguments.length>1?a.call(arguments,0):n,--o||f.resolveWith(f,t)}}function h(e){return function(t){i[e]=arguments.length>1?a.call(arguments,0):t,f.notifyWith(l,i)}}var t=a.call(arguments,0),n=0,r=t.length,i=new Array(r),o=r,u=r,f=r<=1&&e&&s.isFunction(e.promise)?e:s.Deferred(),l=f.promise();if(r>1){for(;n<r;n++)t[n]&&t[n].promise&&s.isFunction(t[n].promise)?t[n].promise().then(c(n),f.reject,h(n)):--o;o||f.resolveWith(f,t)}else f!==e&&f.resolveWith(f,r?[e]:[]);return l}}),s.support=function(){var t,r,i,o,u,a,f,l,c,h,p,d,v=n.createElement("div"),m=n.documentElement;v.setAttribute("className","t"),v.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",r=v.getElementsByTagName("*"),i=v.getElementsByTagName("a")[0];if(!r||!r.length||!i)return{};o=n.createElement("select"),u=o.appendChild(n.createElement("option")),a=v.getElementsByTagName("input")[0],t={leadingWhitespace:v.firstChild.nodeType===3,tbody:!v.getElementsByTagName("tbody").length,htmlSerialize:!!v.getElementsByTagName("link").length,style:/top/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:a.value==="on",optSelected:u.selected,getSetAttribute:v.className!=="t",enctype:!!n.createElement("form").enctype,html5Clone:n.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},s.boxModel=t.boxModel=n.compatMode==="CSS1Compat",a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,o.disabled=!0,t.optDisabled=!u.disabled;try{delete v.test}catch(g){t.deleteExpando=!1}!v.addEventListener&&v.attachEvent&&v.fireEvent&&(v.attachEvent("onclick",function(){t.noCloneEvent=!1}),v.cloneNode(!0).fireEvent("onclick")),a=n.createElement("input"),a.value="t",a.setAttribute("type","radio"),t.radioValue=a.value==="t",a.setAttribute("checked","checked"),a.setAttribute("name","t"),v.appendChild(a),f=n.createDocumentFragment(),f.appendChild(v.lastChild),t.checkClone=f.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=a.checked,f.removeChild(a),f.appendChild(v);if(v.attachEvent)for(p in{submit:1,change:1,focusin:1})h="on"+p,d=h in v,d||(v.setAttribute(h,"return;"),d=typeof v[h]=="function"),t[p+"Bubbles"]=d;return f.removeChild(v),f=o=u=v=a=null,s(function(){var r,i,o,u,a,f,c,h,p,m,g,y,b,w=n.getElementsByTagName("body")[0];if(!w)return;h=1,b="padding:0;margin:0;border:",g="position:absolute;top:0;left:0;width:1px;height:1px;",y=b+"0;visibility:hidden;",p="style='"+g+b+"5px solid #000;",m="<div "+p+"display:block;'><div style='"+b+"0;display:block;overflow:hidden;'></div></div>"+"<table "+p+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",r=n.createElement("div"),r.style.cssText=y+"width:0;height:0;position:static;top:0;margin-top:"+h+"px",w.insertBefore(r,w.firstChild),v=n.createElement("div"),r.appendChild(v),v.innerHTML="<table><tr><td style='"+b+"0;display:none'></td><td>t</td></tr></table>",l=v.getElementsByTagName("td"),d=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",t.reliableHiddenOffsets=d&&l[0].offsetHeight===0,e.getComputedStyle&&(v.innerHTML="",c=n.createElement("div"),c.style.width="0",c.style.marginRight="0",v.style.width="2px",v.appendChild(c),t.reliableMarginRight=(parseInt((e.getComputedStyle(c,null)||{marginRight:0}).marginRight,10)||0)===0),typeof v.style.zoom!="undefined"&&(v.innerHTML="",v.style.width=v.style.padding="1px",v.style.border=0,v.style.overflow="hidden",v.style.display="inline",v.style.zoom=1,t.inlineBlockNeedsLayout=v.offsetWidth===3,v.style.display="block",v.style.overflow="visible",v.innerHTML="<div style='width:5px;'></div>",t.shrinkWrapBlocks=v.offsetWidth!==3),v.style.cssText=g+y,v.innerHTML=m,i=v.firstChild,o=i.firstChild,a=i.nextSibling.firstChild.firstChild,f={doesNotAddBorder:o.offsetTop!==5,doesAddBorderForTableAndCells:a.offsetTop===5},o.style.position="fixed",o.style.top="20px",f.fixedPosition=o.offsetTop===20||o.offsetTop===15,o.style.position=o.style.top="",i.style.overflow="hidden",i.style.position="relative",f.subtractsBorderForOverflowNotVisible=o.offsetTop===-5,f.doesNotIncludeMarginInBodyOffset=w.offsetTop!==h,e.getComputedStyle&&(v.style.marginTop="1%",t.pixelMargin=(e.getComputedStyle(v,null)||{marginTop:0}).marginTop!=="1%"),typeof r.style.zoom!="undefined"&&(r.style.zoom=1),w.removeChild(r),c=v=r=null,s.extend(t,f)}),t}();var f=/^(?:\{.*\}|\[.*\])$/,l=/([A-Z])/g;s.extend({cache:{},uuid:0,expando:"jQuery"+(s.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?s.cache[e[s.expando]]:e[s.expando],!!e&&!h(e)},data:function(e,n,r,i){if(!s.acceptData(e))return;var o,u,a,f=s.expando,l=typeof n=="string",c=e.nodeType,h=c?s.cache:e,p=c?e[f]:e[f]&&f,d=n==="events";if((!p||!h[p]||!d&&!i&&!h[p].data)&&l&&r===t)return;p||(c?e[f]=p=++s.uuid:p=f),h[p]||(h[p]={},c||(h[p].toJSON=s.noop));if(typeof n=="object"||typeof n=="function")i?h[p]=s.extend(h[p],n):h[p].data=s.extend(h[p].data,n);return o=u=h[p],i||(u.data||(u.data={}),u=u.data),r!==t&&(u[s.camelCase(n)]=r),d&&!u[n]?o.events:(l?(a=u[n],a==null&&(a=u[s.camelCase(n)])):a=u,a)},removeData:function(e,t,n){if(!s.acceptData(e))return;var r,i,o,u=s.expando,a=e.nodeType,f=a?s.cache:e,l=a?e[u]:u;if(!f[l])return;if(t){r=n?f[l]:f[l].data;if(r){s.isArray(t)||(t in r?t=[t]:(t=s.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,o=t.length;i<o;i++)delete r[t[i]];if(!(n?h:s.isEmptyObject)(r))return}}if(!n){delete f[l].data;if(!h(f[l]))return}s.support.deleteExpando||!f.setInterval?delete f[l]:f[l]=null,a&&(s.support.deleteExpando?delete e[u]:e.removeAttribute?e.removeAttribute(u):e[u]=null)},_data:function(e,t,n){return s.data(e,t,n,!0)},acceptData:function(e){if(e.nodeName){var t=s.noData[e.nodeName.toLowerCase()];if(t)return t!==!0&&e.getAttribute("classid")===t}return!0}}),s.fn.extend({data:function(e,n){var r,i,o,u,a,f=this[0],l=0,h=null;if(e===t){if(this.length){h=s.data(f);if(f.nodeType===1&&!s._data(f,"parsedAttrs")){o=f.attributes;for(a=o.length;l<a;l++)u=o[l].name,u.indexOf("data-")===0&&(u=s.camelCase(u.substring(5)),c(f,u,h[u]));s._data(f,"parsedAttrs",!0)}}return h}return typeof e=="object"?this.each(function(){s.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",s.access(this,function(n){if(n===t)return h=this.triggerHandler("getData"+i,[r[0]]),h===t&&f&&(h=s.data(f,e),h=c(f,e,h)),h===t&&r[1]?this.data(r[0]):h;r[1]=n,this.each(function(){var t=s(this);t.triggerHandler("setData"+i,r),s.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){s.removeData(this,e)})}}),s.extend({_mark:function(e,t){e&&(t=(t||"fx")+"mark",s._data(e,t,(s._data(e,t)||0)+1))},_unmark:function(e,t,n){e!==!0&&(n=t,t=e,e=!1);if(t){n=n||"fx";var r=n+"mark",i=e?0:(s._data(t,r)||1)-1;i?s._data(t,r,i):(s.removeData(t,r,!0),p(t,n,"mark"))}},queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=s._data(e,t),n&&(!r||s.isArray(n)?r=s._data(e,t,s.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=s.queue(e,t),r=n.shift(),i={};r==="inprogress"&&(r=n.shift()),r&&(t==="fx"&&n.unshift("inprogress"),s._data(e,t+".run",i),r.call(e,function(){s.dequeue(e,t)},i)),n.length||(s.removeData(e,t+"queue "+t+".run",!0),p(e,t,"queue"))}}),s.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?s.queue(this[0],e):n===t?this:this.each(function(){var t=s.queue(this,e,n);e==="fx"&&t[0]!=="inprogress"&&s.dequeue(this,e)})},dequeue:function(e){return this.each(function(){s.dequeue(this,e)})},delay:function(e,t){return e=s.fx?s.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){function h(){--u||r.resolveWith(i,[i])}typeof e!="string"&&(n=e,e=t),e=e||"fx";var r=s.Deferred(),i=this,o=i.length,u=1,a=e+"defer",f=e+"queue",l=e+"mark",c;while(o--)if(c=s.data(i[o],a,t,!0)||(s.data(i[o],f,t,!0)||s.data(i[o],l,t,!0))&&s.data(i[o],a,s.Callbacks("once memory"),!0))u++,c.add(h);return h(),r.promise(n)}});var d=/[\n\t\r]/g,v=/\s+/,m=/\r/g,g=/^(?:button|input)$/i,y=/^(?:button|input|object|select|textarea)$/i,b=/^a(?:rea)?$/i,w=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,E=s.support.getSetAttribute,S,x,T;s.fn.extend({attr:function(e,t){return s.access(this,s.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){s.removeAttr(this,e)})},prop:function(e,t){return s.access(this,s.prop,e,t,arguments.length>1)},removeProp:function(e){return e=s.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,u,a;if(s.isFunction(e))return this.each(function(t){s(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(v);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{o=" "+i.className+" ";for(u=0,a=t.length;u<a;u++)~o.indexOf(" "+t[u]+" ")||(o+=t[u]+" ");i.className=s.trim(o)}}}return this},removeClass:function(e){var n,r,i,o,u,a,f;if(s.isFunction(e))return this.each(function(t){s(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(v);for(r=0,i=this.length;r<i;r++){o=this[r];if(o.nodeType===1&&o.className)if(e){u=(" "+o.className+" ").replace(d," ");for(a=0,f=n.length;a<f;a++)u=u.replace(" "+n[a]+" "," ");o.className=s.trim(u)}else o.className=""}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return s.isFunction(e)?this.each(function(n){s(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,o=0,u=s(this),a=t,f=e.split(v);while(i=f[o++])a=r?a:!u.hasClass(i),u[a?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&s._data(this,"__className__",this.className),this.className=this.className||e===!1?"":s._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(d," ").indexOf(t)>-1)return!0;return!1},val:function(e){var n,r,i,o=this[0];if(!arguments.length){if(o)return n=s.valHooks[o.type]||s.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,typeof r=="string"?r.replace(m,""):r==null?"":r);return}return i=s.isFunction(e),this.each(function(r){var o=s(this),u;if(this.nodeType!==1)return;i?u=e.call(this,r,o.val()):u=e,u==null?u="":typeof u=="number"?u+="":s.isArray(u)&&(u=s.map(u,function(e){return e==null?"":e+""})),n=s.valHooks[this.type]||s.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,u,"value")===t)this.value=u})}}),s.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r,i,o=e.selectedIndex,u=[],a=e.options,f=e.type==="select-one";if(o<0)return null;n=f?o:0,r=f?o+1:a.length;for(;n<r;n++){i=a[n];if(i.selected&&(s.support.optDisabled?!i.disabled:i.getAttribute("disabled")===null)&&(!i.parentNode.disabled||!s.nodeName(i.parentNode,"optgroup"))){t=s(i).val();if(f)return t;u.push(t)}}return f&&!u.length&&a.length?s(a[o]).val():u},set:function(e,t){var n=s.makeArray(t);return s(e).find("option").each(function(){this.selected=s.inArray(s(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(e,n,r,i){var o,u,a,f=e.nodeType;if(!e||f===3||f===8||f===2)return;if(i&&n in s.attrFn)return s(e)[n](r);if(typeof e.getAttribute=="undefined")return s.prop(e,n,r);a=f!==1||!s.isXMLDoc(e),a&&(n=n.toLowerCase(),u=s.attrHooks[n]||(w.test(n)?x:S));if(r!==t){if(r===null){s.removeAttr(e,n);return}return u&&"set"in u&&a&&(o=u.set(e,r,n))!==t?o:(e.setAttribute(n,""+r),r)}return u&&"get"in u&&a&&(o=u.get(e,n))!==null?o:(o=e.getAttribute(n),o===null?t:o)},removeAttr:function(e,t){var n,r,i,o,u,a=0;if(t&&e.nodeType===1){r=t.toLowerCase().split(v),o=r.length;for(;a<o;a++)i=r[a],i&&(n=s.propFix[i]||i,u=w.test(i),u||s.attr(e,i,""),e.removeAttribute(E?i:n),u&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(g.test(e.nodeName)&&e.parentNode)s.error("type property can't be changed");else if(!s.support.radioValue&&t==="radio"&&s.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return S&&s.nodeName(e,"button")?S.get(e,t):t in e?e.value:null},set:function(e,t,n){if(S&&s.nodeName(e,"button"))return S.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;return u=a!==1||!s.isXMLDoc(e),u&&(n=s.propFix[n]||n,o=s.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&(i=o.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):y.test(e.nodeName)||b.test(e.nodeName)&&e.href?0:t}}}}),s.attrHooks.tabindex=s.propHooks.tabIndex,x={get:function(e,n){var r,i=s.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?s.removeAttr(e,n):(r=s.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},E||(T={name:!0,id:!0,coords:!0},S=s.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(T[n]?r.nodeValue!=="":r.specified)?r.nodeValue:t},set:function(e,t,r){var i=e.getAttributeNode(r);return i||(i=n.createAttribute(r),e.setAttributeNode(i)),i.nodeValue=t+""}},s.attrHooks.tabindex.set=S.set,s.each(["width","height"],function(e,t){s.attrHooks[t]=s.extend(s.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),s.attrHooks.contenteditable={get:S.get,set:function(e,t,n){t===""&&(t="false"),S.set(e,t,n)}}),s.support.hrefNormalized||s.each(["href","src","width","height"],function(e,n){s.attrHooks[n]=s.extend(s.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),s.support.style||(s.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=""+t}}),s.support.optSelected||(s.propHooks.selected=s.extend(s.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),s.support.enctype||(s.propFix.enctype="encoding"),s.support.checkOn||s.each(["radio","checkbox"],function(){s.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),s.each(["radio","checkbox"],function(){s.valHooks[this]=s.extend(s.valHooks[this],{set:function(e,t){if(s.isArray(t))return e.checked=s.inArray(s(e).val(),t)>=0}})});var N=/^(?:textarea|input|select)$/i,C=/^([^\.]*)?(?:\.(.+))?$/,k=/(?:^|\s)hover(\.\S+)?\b/,L=/^key/,A=/^(?:mouse|contextmenu)|click/,O=/^(?:focusinfocus|focusoutblur)$/,M=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,_=function(e){var t=M.exec(e);return t&&( -t[1]=(t[1]||"").toLowerCase(),t[3]=t[3]&&new RegExp("(?:^|\\s)"+t[3]+"(?:\\s|$)")),t},D=function(e,t){var n=e.attributes||{};return(!t[1]||e.nodeName.toLowerCase()===t[1])&&(!t[2]||(n.id||{}).value===t[2])&&(!t[3]||t[3].test((n["class"]||{}).value))},P=function(e){return s.event.special.hover?e:e.replace(k,"mouseenter$1 mouseleave$1")};s.event={add:function(e,n,r,i,o){var u,a,f,l,c,h,p,d,v,m,g,y;if(e.nodeType===3||e.nodeType===8||!n||!r||!(u=s._data(e)))return;r.handler&&(v=r,r=v.handler,o=v.selector),r.guid||(r.guid=s.guid++),f=u.events,f||(u.events=f={}),a=u.handle,a||(u.handle=a=function(e){return typeof s=="undefined"||!!e&&s.event.triggered===e.type?t:s.event.dispatch.apply(a.elem,arguments)},a.elem=e),n=s.trim(P(n)).split(" ");for(l=0;l<n.length;l++){c=C.exec(n[l])||[],h=c[1],p=(c[2]||"").split(".").sort(),y=s.event.special[h]||{},h=(o?y.delegateType:y.bindType)||h,y=s.event.special[h]||{},d=s.extend({type:h,origType:c[1],data:i,handler:r,guid:r.guid,selector:o,quick:o&&_(o),namespace:p.join(".")},v),g=f[h];if(!g){g=f[h]=[],g.delegateCount=0;if(!y.setup||y.setup.call(e,i,p,a)===!1)e.addEventListener?e.addEventListener(h,a,!1):e.attachEvent&&e.attachEvent("on"+h,a)}y.add&&(y.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),o?g.splice(g.delegateCount++,0,d):g.push(d),s.event.global[h]=!0}e=null},global:{},remove:function(e,t,n,r,i){var o=s.hasData(e)&&s._data(e),u,a,f,l,c,h,p,d,v,m,g,y;if(!o||!(d=o.events))return;t=s.trim(P(t||"")).split(" ");for(u=0;u<t.length;u++){a=C.exec(t[u])||[],f=l=a[1],c=a[2];if(!f){for(f in d)s.event.remove(e,f+t[u],n,r,!0);continue}v=s.event.special[f]||{},f=(r?v.delegateType:v.bindType)||f,g=d[f]||[],h=g.length,c=c?new RegExp("(^|\\.)"+c.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(p=0;p<g.length;p++)y=g[p],(i||l===y.origType)&&(!n||n.guid===y.guid)&&(!c||c.test(y.namespace))&&(!r||r===y.selector||r==="**"&&y.selector)&&(g.splice(p--,1),y.selector&&g.delegateCount--,v.remove&&v.remove.call(e,y));g.length===0&&h!==g.length&&((!v.teardown||v.teardown.call(e,c)===!1)&&s.removeEvent(e,f,o.handle),delete d[f])}s.isEmptyObject(d)&&(m=o.handle,m&&(m.elem=null),s.removeData(e,["events","handle"],!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,i,o){if(!i||i.nodeType!==3&&i.nodeType!==8){var u=n.type||n,a=[],f,l,c,h,p,d,v,m,g,y;if(O.test(u+s.event.triggered))return;u.indexOf("!")>=0&&(u=u.slice(0,-1),l=!0),u.indexOf(".")>=0&&(a=u.split("."),u=a.shift(),a.sort());if((!i||s.event.customEvent[u])&&!s.event.global[u])return;n=typeof n=="object"?n[s.expando]?n:new s.Event(u,n):new s.Event(u),n.type=u,n.isTrigger=!0,n.exclusive=l,n.namespace=a.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+a.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,d=u.indexOf(":")<0?"on"+u:"";if(!i){f=s.cache;for(c in f)f[c].events&&f[c].events[u]&&s.event.trigger(n,r,f[c].handle.elem,!0);return}n.result=t,n.target||(n.target=i),r=r!=null?s.makeArray(r):[],r.unshift(n),v=s.event.special[u]||{};if(v.trigger&&v.trigger.apply(i,r)===!1)return;g=[[i,v.bindType||u]];if(!o&&!v.noBubble&&!s.isWindow(i)){y=v.delegateType||u,h=O.test(y+u)?i:i.parentNode,p=null;for(;h;h=h.parentNode)g.push([h,y]),p=h;p&&p===i.ownerDocument&&g.push([p.defaultView||p.parentWindow||e,y])}for(c=0;c<g.length&&!n.isPropagationStopped();c++)h=g[c][0],n.type=g[c][1],m=(s._data(h,"events")||{})[n.type]&&s._data(h,"handle"),m&&m.apply(h,r),m=d&&h[d],m&&s.acceptData(h)&&m.apply(h,r)===!1&&n.preventDefault();return n.type=u,!o&&!n.isDefaultPrevented()&&(!v._default||v._default.apply(i.ownerDocument,r)===!1)&&(u!=="click"||!s.nodeName(i,"a"))&&s.acceptData(i)&&d&&i[u]&&(u!=="focus"&&u!=="blur"||n.target.offsetWidth!==0)&&!s.isWindow(i)&&(p=i[d],p&&(i[d]=null),s.event.triggered=u,i[u](),s.event.triggered=t,p&&(i[d]=p)),n.result}return},dispatch:function(n){n=s.event.fix(n||e.event);var r=(s._data(this,"events")||{})[n.type]||[],i=r.delegateCount,o=[].slice.call(arguments,0),u=!n.exclusive&&!n.namespace,a=s.event.special[n.type]||{},f=[],l,c,h,p,d,v,m,g,y,b,w;o[0]=n,n.delegateTarget=this;if(a.preDispatch&&a.preDispatch.call(this,n)===!1)return;if(i&&(!n.button||n.type!=="click")){p=s(this),p.context=this.ownerDocument||this;for(h=n.target;h!=this;h=h.parentNode||this)if(h.disabled!==!0){v={},g=[],p[0]=h;for(l=0;l<i;l++)y=r[l],b=y.selector,v[b]===t&&(v[b]=y.quick?D(h,y.quick):p.is(b)),v[b]&&g.push(y);g.length&&f.push({elem:h,matches:g})}}r.length>i&&f.push({elem:this,matches:r.slice(i)});for(l=0;l<f.length&&!n.isPropagationStopped();l++){m=f[l],n.currentTarget=m.elem;for(c=0;c<m.matches.length&&!n.isImmediatePropagationStopped();c++){y=m.matches[c];if(u||!n.namespace&&!y.namespace||n.namespace_re&&n.namespace_re.test(y.namespace))n.data=y.data,n.handleObj=y,d=((s.event.special[y.origType]||{}).handle||y.handler).apply(m.elem,o),d!==t&&(n.result=d,d===!1&&(n.preventDefault(),n.stopPropagation()))}}return a.postDispatch&&a.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,r){var i,s,o,u=r.button,a=r.fromElement;return e.pageX==null&&r.clientX!=null&&(i=e.target.ownerDocument||n,s=i.documentElement,o=i.body,e.pageX=r.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=r.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?r.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[s.expando])return e;var r,i,o=e,u=s.event.fixHooks[e.type]||{},a=u.props?this.props.concat(u.props):this.props;e=s.Event(o);for(r=a.length;r;)i=a[--r],e[i]=o[i];return e.target||(e.target=o.srcElement||n),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey===t&&(e.metaKey=e.ctrlKey),u.filter?u.filter(e,o):e},special:{ready:{setup:s.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){s.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=s.extend(new s.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?s.event.trigger(i,null,t):s.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},s.event.handle=s.event.dispatch,s.removeEvent=n.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){e.detachEvent&&e.detachEvent("on"+t,n)},s.Event=function(e,t){if(!(this instanceof s.Event))return new s.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?B:H):this.type=e,t&&s.extend(this,t),this.timeStamp=e&&e.timeStamp||s.now(),this[s.expando]=!0},s.Event.prototype={preventDefault:function(){this.isDefaultPrevented=B;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=B;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=B,this.stopPropagation()},isDefaultPrevented:H,isPropagationStopped:H,isImmediatePropagationStopped:H},s.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){s.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n=this,r=e.relatedTarget,i=e.handleObj,o=i.selector,u;if(!r||r!==n&&!s.contains(n,r))e.type=i.origType,u=i.handler.apply(this,arguments),e.type=t;return u}}}),s.support.submitBubbles||(s.event.special.submit={setup:function(){if(s.nodeName(this,"form"))return!1;s.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=s.nodeName(n,"input")||s.nodeName(n,"button")?n.form:t;r&&!r._submit_attached&&(s.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),r._submit_attached=!0)})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&s.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(s.nodeName(this,"form"))return!1;s.event.remove(this,"._submit")}}),s.support.changeBubbles||(s.event.special.change={setup:function(){if(N.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")s.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),s.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1,s.event.simulate("change",this,e,!0))});return!1}s.event.add(this,"beforeactivate._change",function(e){var t=e.target;N.test(t.nodeName)&&!t._change_attached&&(s.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&s.event.simulate("change",this.parentNode,e,!0)}),t._change_attached=!0)})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return s.event.remove(this,"._change"),N.test(this.nodeName)}}),s.support.focusinBubbles||s.each({focus:"focusin",blur:"focusout"},function(e,t){var r=0,i=function(e){s.event.simulate(t,e.target,s.event.fix(e),!0)};s.event.special[t]={setup:function(){r++===0&&n.addEventListener(e,i,!0)},teardown:function(){--r===0&&n.removeEventListener(e,i,!0)}}}),s.fn.extend({on:function(e,n,r,i,o){var u,a;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=H;else if(!i)return this;return o===1&&(u=i,i=function(e){return s().off(e),u.apply(this,arguments)},i.guid=u.guid||(u.guid=s.guid++)),this.each(function(){s.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){if(e&&e.preventDefault&&e.handleObj){var i=e.handleObj;return s(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this}if(typeof e=="object"){for(var o in e)this.off(o,n,e[o]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=H),this.each(function(){s.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return s(this.context).on(e,this.selector,t,n),this},die:function(e,t){return s(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length==1?this.off(e,"**"):this.off(t,e,n)},trigger:function(e,t){return this.each(function(){s.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return s.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||s.guid++,r=0,i=function(n){var i=(s._data(this,"lastToggle"+e.guid)||0)%r;return s._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),s.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){s.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},s.attrFn&&(s.attrFn[t]=!0),L.test(t)&&(s.event.fixHooks[t]=s.event.keyHooks),A.test(t)&&(s.event.fixHooks[t]=s.event.mouseHooks)}),function(){function S(e,t,n,i,s,o){for(var u=0,a=i.length;u<a;u++){var f=i[u];if(f){var l=!1;f=f[e];while(f){if(f[r]===n){l=i[f.sizset];break}f.nodeType===1&&!o&&(f[r]=n,f.sizset=u);if(f.nodeName.toLowerCase()===t){l=f;break}f=f[e]}i[u]=l}}}function x(e,t,n,i,s,o){for(var u=0,a=i.length;u<a;u++){var f=i[u];if(f){var l=!1;f=f[e];while(f){if(f[r]===n){l=i[f.sizset];break}if(f.nodeType===1){o||(f[r]=n,f.sizset=u);if(typeof t!="string"){if(f===t){l=!0;break}}else if(h.filter(t,[f]).length>0){l=f;break}}f=f[e]}i[u]=l}}}var e=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,r="sizcache"+(Math.random()+"").replace(".",""),i=0,o=Object.prototype.toString,u=!1,a=!0,f=/\\/g,l=/\r\n/g,c=/\W/;[0,0].sort(function(){return a=!1,0});var h=function(t,r,i,s){i=i||[],r=r||n;var u=r;if(r.nodeType!==1&&r.nodeType!==9)return[];if(!t||typeof t!="string")return i;var a,f,l,c,p,m,g,b,w=!0,E=h.isXML(r),S=[],x=t;do{e.exec(""),a=e.exec(x);if(a){x=a[3],S.push(a[1]);if(a[2]){c=a[3];break}}}while(a);if(S.length>1&&v.exec(t))if(S.length===2&&d.relative[S[0]])f=T(S[0]+S[1],r,s);else{f=d.relative[S[0]]?[r]:h(S.shift(),r);while(S.length)t=S.shift(),d.relative[t]&&(t+=S.shift()),f=T(t,f,s)}else{!s&&S.length>1&&r.nodeType===9&&!E&&d.match.ID.test(S[0])&&!d.match.ID.test(S[S.length-1])&&(p=h.find(S.shift(),r,E),r=p.expr?h.filter(p.expr,p.set)[0]:p.set[0]);if(r){p=s?{expr:S.pop(),set:y(s)}:h.find(S.pop(),S.length!==1||S[0]!=="~"&&S[0]!=="+"||!r.parentNode?r:r.parentNode,E),f=p.expr?h.filter(p.expr,p.set):p.set,S.length>0?l=y(f):w=!1;while(S.length)m=S.pop(),g=m,d.relative[m]?g=S.pop():m="",g==null&&(g=r),d.relative[m](l,g,E)}else l=S=[]}l||(l=f),l||h.error(m||t);if(o.call(l)==="[object Array]")if(!w)i.push.apply(i,l);else if(r&&r.nodeType===1)for(b=0;l[b]!=null;b++)l[b]&&(l[b]===!0||l[b].nodeType===1&&h.contains(r,l[b]))&&i.push(f[b]);else for(b=0;l[b]!=null;b++)l[b]&&l[b].nodeType===1&&i.push(f[b]);else y(l,i);return c&&(h(c,u,i,s),h.uniqueSort(i)),i};h.uniqueSort=function(e){if(w){u=a,e.sort(w);if(u)for(var t=1;t<e.length;t++)e[t]===e[t-1]&&e.splice(t--,1)}return e},h.matches=function(e,t){return h(e,null,null,t)},h.matchesSelector=function(e,t){return h(t,null,null,[e]).length>0},h.find=function(e,t,n){var r,i,s,o,u,a;if(!e)return[];for(i=0,s=d.order.length;i<s;i++){u=d.order[i];if(o=d.leftMatch[u].exec(e)){a=o[1],o.splice(1,1);if(a.substr(a.length-1)!=="\\"){o[1]=(o[1]||"").replace(f,""),r=d.find[u](o,t,n);if(r!=null){e=e.replace(d.match[u],"");break}}}}return r||(r=typeof t.getElementsByTagName!="undefined"?t.getElementsByTagName("*"):[]),{set:r,expr:e}},h.filter=function(e,n,r,i){var s,o,u,a,f,l,c,p,v,m=e,g=[],y=n,b=n&&n[0]&&h.isXML(n[0]);while(e&&n.length){for(u in d.filter)if((s=d.leftMatch[u].exec(e))!=null&&s[2]){l=d.filter[u],c=s[1],o=!1,s.splice(1,1);if(c.substr(c.length-1)==="\\")continue;y===g&&(g=[]);if(d.preFilter[u]){s=d.preFilter[u](s,y,r,g,i,b);if(!s)o=a=!0;else if(s===!0)continue}if(s)for(p=0;(f=y[p])!=null;p++)f&&(a=l(f,s,p,y),v=i^a,r&&a!=null?v?o=!0:y[p]=!1:v&&(g.push(f),o=!0));if(a!==t){r||(y=g),e=e.replace(d.match[u],"");if(!o)return[];break}}if(e===m){if(o!=null)break;h.error(e)}m=e}return y},h.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var p=h.getText=function(e){var t,n,r=e.nodeType,i="";if(r){if(r===1||r===9||r===11){if(typeof e.textContent=="string")return e.textContent;if(typeof e.innerText=="string")return e.innerText.replace(l,"");for(e=e.firstChild;e;e=e.nextSibling)i+=p(e)}else if(r===3||r===4)return e.nodeValue}else for(t=0;n=e[t];t++)n.nodeType!==8&&(i+=p(n));return i},d=h.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(e,t){var n=typeof t=="string",r=n&&!c.test(t),i=n&&!r;r&&(t=t.toLowerCase());for(var s=0,o=e.length,u;s<o;s++)if(u=e[s]){while((u=u.previousSibling)&&u.nodeType!==1);e[s]=i||u&&u.nodeName.toLowerCase()===t?u||!1:u===t}i&&h.filter(t,e,!0)},">":function(e,t){var n,r=typeof t=="string",i=0,s=e.length;if(r&&!c.test(t)){t=t.toLowerCase();for(;i<s;i++){n=e[i];if(n){var o=n.parentNode;e[i]=o.nodeName.toLowerCase()===t?o:!1}}}else{for(;i<s;i++)n=e[i],n&&(e[i]=r?n.parentNode:n.parentNode===t);r&&h.filter(t,e,!0)}},"":function(e,t,n){var r,s=i++,o=x;typeof t=="string"&&!c.test(t)&&(t=t.toLowerCase(),r=t,o=S),o("parentNode",t,s,e,r,n)},"~":function(e,t,n){var r,s=i++,o=x;typeof t=="string"&&!c.test(t)&&(t=t.toLowerCase(),r=t,o=S),o("previousSibling",t,s,e,r,n)}},find:{ID:function(e,t,n){if(typeof t.getElementById!="undefined"&&!n){var r=t.getElementById(e[1]);return r&&r.parentNode?[r]:[]}},NAME:function(e,t){if(typeof t.getElementsByName!="undefined"){var n=[],r=t.getElementsByName(e[1]);for(var i=0,s=r.length;i<s;i++)r[i].getAttribute("name")===e[1]&&n.push(r[i]);return n.length===0?null:n}},TAG:function(e,t){if(typeof t.getElementsByTagName!="undefined")return t.getElementsByTagName(e[1])}},preFilter:{CLASS:function(e,t,n,r,i,s){e=" "+e[1].replace(f,"")+" ";if(s)return e;for(var o=0,u;(u=t[o])!=null;o++)u&&(i^(u.className&&(" "+u.className+" ").replace(/[\t\n\r]/g," ").indexOf(e)>=0)?n||r.push(u):n&&(t[o]=!1));return!1},ID:function(e){return e[1].replace(f,"")},TAG:function(e,t){return e[1].replace(f,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){e[2]||h.error(e[0]),e[2]=e[2].replace(/^\+|\s*/g,"");var t=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=t[1]+(t[2]||1)-0,e[3]=t[3]-0}else e[2]&&h.error(e[0]);return e[0]=i++,e},ATTR:function(e,t,n,r,i,s){var o=e[1]=e[1].replace(f,"");return!s&&d.attrMap[o]&&(e[1]=d.attrMap[o]),e[4]=(e[4]||e[5]||"").replace(f,""),e[2]==="~="&&(e[4]=" "+e[4]+" "),e},PSEUDO:function(t,n,r,i,s){if(t[1]==="not"){if(!((e.exec(t[3])||"").length>1||/^\w/.test(t[3]))){var o=h.filter(t[3],n,r,!0^s);return r||i.push.apply(i,o),!1}t[3]=h(t[3],null,null,n)}else if(d.match.POS.test(t[0])||d.match.CHILD.test(t[0]))return!0;return t},POS:function(e){return e.unshift(!0),e}},filters:{enabled:function(e){return e.disabled===!1&&e.type!=="hidden"},disabled:function(e){return e.disabled===!0},checked:function(e){return e.checked===!0},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!!e.firstChild},empty:function(e){return!e.firstChild},has:function(e,t,n){return!!h(n[3],e).length},header:function(e){return/h\d/i.test(e.nodeName)},text:function(e){var t=e.getAttribute("type"),n=e.type;return e.nodeName.toLowerCase()==="input"&&"text"===n&&(t===n||t===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(e){var t=e.nodeName.toLowerCase();return(t==="input"||t==="button")&&"submit"===e.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(e){var t=e.nodeName.toLowerCase();return(t==="input"||t==="button")&&"reset"===e.type},button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&"button"===e.type||t==="button"},input:function(e){return/input|select|textarea|button/i.test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(e,t){return t===0},last:function(e,t,n,r){return t===r.length-1},even:function(e,t){return t%2===0},odd:function(e,t){return t%2===1},lt:function(e,t,n){return t<n[3]-0},gt:function(e,t,n){return t>n[3]-0},nth:function(e,t,n){return n[3]-0===t},eq:function(e,t,n){return n[3]-0===t}},filter:{PSEUDO:function(e,t,n,r){var i=t[1],s=d.filters[i];if(s)return s(e,n,t,r);if(i==="contains")return(e.textContent||e.innerText||p([e])||"").indexOf(t[3])>=0;if(i==="not"){var o=t[3];for(var u=0,a=o.length;u<a;u++)if(o[u]===e)return!1;return!0}h.error(i)},CHILD:function(e,t){var n,i,s,o,u,a,f,l=t[1],c=e;switch(l){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(l==="first")return!0;c=e;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0;case"nth":n=t[2],i=t[3];if(n===1&&i===0)return!0;s=t[0],o=e.parentNode;if(o&&(o[r]!==s||!e.nodeIndex)){a=0;for(c=o.firstChild;c;c=c.nextSibling)c.nodeType===1&&(c.nodeIndex=++a);o[r]=s}return f=e.nodeIndex-i,n===0?f===0:f%n===0&&f/n>=0}},ID:function(e,t){return e.nodeType===1&&e.getAttribute("id")===t},TAG:function(e,t){return t==="*"&&e.nodeType===1||!!e.nodeName&&e.nodeName.toLowerCase()===t},CLASS:function(e,t){return(" "+(e.className||e.getAttribute("class"))+" ").indexOf(t)>-1},ATTR:function(e,t){var n=t[1],r=h.attr?h.attr(e,n):d.attrHandle[n]?d.attrHandle[n](e):e[n]!=null?e[n]:e.getAttribute(n),i=r+"",s=t[2],o=t[4];return r==null?s==="!=":!s&&h.attr?r!=null:s==="="?i===o:s==="*="?i.indexOf(o)>=0:s==="~="?(" "+i+" ").indexOf(o)>=0:o?s==="!="?i!==o:s==="^="?i.indexOf(o)===0:s==="$="?i.substr(i.length-o.length)===o:s==="|="?i===o||i.substr(0,o.length+1)===o+"-":!1:i&&r!==!1},POS:function(e,t,n,r){var i=t[2],s=d.setFilters[i];if(s)return s(e,n,t,r)}}},v=d.match.POS,m=function(e,t){return"\\"+(t-0+1)};for(var g in d.match)d.match[g]=new RegExp(d.match[g].source+/(?![^\[]*\])(?![^\(]*\))/.source),d.leftMatch[g]=new RegExp(/(^(?:.|\r|\n)*?)/.source+d.match[g].source.replace(/\\(\d+)/g,m));d.match.globalPOS=v;var y=function(e,t){return e=Array.prototype.slice.call(e,0),t?(t.push.apply(t,e),t):e};try{Array.prototype.slice.call(n.documentElement.childNodes,0)[0].nodeType}catch(b){y=function(e,t){var n=0,r=t||[];if(o.call(e)==="[object Array]")Array.prototype.push.apply(r,e);else if(typeof e.length=="number")for(var i=e.length;n<i;n++)r.push(e[n]);else for(;e[n];n++)r.push(e[n]);return r}}var w,E;n.documentElement.compareDocumentPosition?w=function(e,t){return e===t?(u=!0,0):!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition?-1:1:e.compareDocumentPosition(t)&4?-1:1}:(w=function(e,t){if(e===t)return u=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,a=t.parentNode,f=o;if(o===a)return E(e,t);if(!o)return-1;if(!a)return 1;while(f)i.unshift(f),f=f.parentNode;f=a;while(f)s.unshift(f),f=f.parentNode;n=i.length,r=s.length;for(var l=0;l<n&&l<r;l++)if(i[l]!==s[l])return E(i[l],s[l]);return l===n?E(e,s[l],-1):E(i[l],t,1)},E=function(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}),function(){var e=n.createElement("div"),r="script"+(new Date).getTime(),i=n.documentElement;e.innerHTML="<a name='"+r+"'/>",i.insertBefore(e,i.firstChild),n.getElementById(r)&&(d.find.ID=function(e,n,r){if(typeof n.getElementById!="undefined"&&!r){var i=n.getElementById(e[1]);return i?i.id===e[1]||typeof i.getAttributeNode!="undefined"&&i.getAttributeNode("id").nodeValue===e[1]?[i]:t:[]}},d.filter.ID=function(e,t){var n=typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id");return e.nodeType===1&&n&&n.nodeValue===t}),i.removeChild(e),i=e=null}(),function(){var e=n.createElement("div");e.appendChild(n.createComment("")),e.getElementsByTagName("*").length>0&&(d.find.TAG=function(e,t){var n=t.getElementsByTagName(e[1]);if(e[1]==="*"){var r=[];for(var i=0;n[i];i++)n[i].nodeType===1&&r.push(n[i]);n=r}return n}),e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!="undefined"&&e.firstChild.getAttribute("href")!=="#"&&(d.attrHandle.href=function(e){return e.getAttribute("href",2)}),e=null}(),n.querySelectorAll&&function(){var e=h,t=n.createElement("div"),r="__sizzle__";t.innerHTML="<p class='TEST'></p>";if(t.querySelectorAll&&t.querySelectorAll(".TEST").length===0)return;h=function(t,i,s,o){i=i||n;if(!o&&!h.isXML(i)){var u=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(t);if(u&&(i.nodeType===1||i.nodeType===9)){if(u[1])return y(i.getElementsByTagName(t),s);if(u[2]&&d.find.CLASS&&i.getElementsByClassName)return y(i.getElementsByClassName(u[2]),s)}if(i.nodeType===9){if(t==="body"&&i.body)return y([i.body],s);if(u&&u[3]){var a=i.getElementById(u[3]);if(!a||!a.parentNode)return y([],s);if(a.id===u[3])return y([a],s)}try{return y(i.querySelectorAll(t),s)}catch(f){}}else if(i.nodeType===1&&i.nodeName.toLowerCase()!=="object"){var l=i,c=i.getAttribute("id"),p=c||r,v=i.parentNode,m=/^\s*[+~]/.test(t);c?p=p.replace(/'/g,"\\$&"):i.setAttribute("id",p),m&&v&&(i=i.parentNode);try{if(!m||v)return y(i.querySelectorAll("[id='"+p+"'] "+t),s)}catch(g){}finally{c||l.removeAttribute("id")}}}return e(t,i,s,o)};for(var i in e)h[i]=e[i];t=null}(),function(){var e=n.documentElement,t=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(t){var r=!t.call(n.createElement("div"),"div"),i=!1;try{t.call(n.documentElement,"[test!='']:sizzle")}catch(s){i=!0}h.matchesSelector=function(e,n){n=n.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!h.isXML(e))try{if(i||!d.match.PSEUDO.test(n)&&!/!=/.test(n)){var s=t.call(e,n);if(s||!r||e.document&&e.document.nodeType!==11)return s}}catch(o){}return h(n,null,null,[e]).length>0}}}(),function(){var e=n.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0)return;e.lastChild.className="e";if(e.getElementsByClassName("e").length===1)return;d.order.splice(1,0,"CLASS"),d.find.CLASS=function(e,t,n){if(typeof t.getElementsByClassName!="undefined"&&!n)return t.getElementsByClassName(e[1])},e=null}(),n.documentElement.contains?h.contains=function(e,t){return e!==t&&(e.contains?e.contains(t):!0)}:n.documentElement.compareDocumentPosition?h.contains=function(e,t){return!!(e.compareDocumentPosition(t)&16)}:h.contains=function(){return!1},h.isXML=function(e){var t=(e?e.ownerDocument||e:0).documentElement;return t?t.nodeName!=="HTML":!1};var T=function(e,t,n){var r,i=[],s="",o=t.nodeType?[t]:t;while(r=d.match.PSEUDO.exec(e))s+=r[0],e=e.replace(d.match.PSEUDO,"");e=d.relative[e]?e+"*":e;for(var u=0,a=o.length;u<a;u++)h(e,o[u],i,n);return h.filter(s,i)};h.attr=s.attr,h.selectors.attrMap={},s.find=h,s.expr=h.selectors,s.expr[":"]=s.expr.filters,s.unique=h.uniqueSort,s.text=h.getText,s.isXMLDoc=h.isXML,s.contains=h.contains}();var j=/Until$/,F=/^(?:parents|prevUntil|prevAll)/,I=/,/,q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,U=s.expr.match.globalPOS,z={children:!0,contents:!0,next:!0,prev:!0};s.fn.extend({find:function(e){var t=this,n,r;if(typeof e!="string")return s(e).filter(function(){for(n=0,r=t.length;n<r;n++)if(s.contains(t[n],this))return!0});var i=this.pushStack("","find",e),o,u,a;for(n=0,r=this.length;n<r;n++){o=i.length,s.find(e,this[n],i);if(n>0)for(u=o;u<i.length;u++)for(a=0;a<o;a++)if(i[a]===i[u]){i.splice(u--,1);break}}return i},has:function(e){var t=s(e);return this.filter(function(){for(var e=0,n=t.length;e<n;e++)if(s.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(X(this,e,!1),"not",e)},filter:function(e){return this.pushStack(X(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?U.test(e)?s(e,this.context).index(this[0])>=0:s.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n=[],r,i,o=this[0];if(s.isArray(e)){var u=1;while(o&&o.ownerDocument&&o!==t){for(r=0;r<e.length;r++)s(o).is(e[r])&&n.push({selector:e[r],elem:o,level:u});o=o.parentNode,u++}return n}var a=U.test(e)||typeof e!="string"?s(e,t||this.context):0;for(r=0,i=this.length;r<i;r++){o=this[r];while(o){if(a?a.index(o)>-1:s.find.matchesSelector(o,e)){n.push(o);break}o=o.parentNode;if(!o||!o.ownerDocument||o===t||o.nodeType===11)break}}return n=n.length>1?s.unique(n):n,this.pushStack(n,"closest",e)},index:function(e){return e?typeof e=="string"?s.inArray(this[0],s(e)):s.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?s(e,t):s.makeArray(e&&e.nodeType?[e]:e),r=s.merge(this.get(),n);return this.pushStack(W(n[0])||W(r[0])?r:s.unique(r))},andSelf:function(){return this.add(this.prevObject)}}),s.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return s.dir(e,"parentNode")},parentsUntil:function(e,t,n){return s.dir(e,"parentNode",n)},next:function(e){return s.nth(e,2,"nextSibling")},prev:function(e){return s.nth(e,2,"previousSibling")},nextAll:function(e){return s.dir(e,"nextSibling")},prevAll:function(e){return s.dir(e,"previousSibling")},nextUntil:function(e,t,n){return s.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return s.dir(e,"previousSibling",n)},siblings:function(e){return s.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return s.sibling(e.firstChild)},contents:function(e){return s.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:s.makeArray(e.childNodes)}},function(e,t){s.fn[e]=function(n,r){var i=s.map(this,t,n);return j.test(e)||(r=n),r&&typeof r=="string"&&(i=s.filter(r,i)),i=this.length>1&&!z[e]?s.unique(i):i,(this.length>1||I.test(r))&&F.test(e)&&(i=i.reverse()),this.pushStack(i,e,R.call(arguments).join(","))}}),s.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?s.find.matchesSelector(t[0],e)?[t[0]]:[]:s.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&o.nodeType!==9&&(r===t||o.nodeType!==1||!s(o).is(r)))o.nodeType===1&&i.push(o),o=o[n];return i},nth:function(e,t,n,r){t=t||1;var i=0;for(;e;e=e[n])if(e.nodeType===1&&++i===t)break;return e},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var $="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",J=/ jQuery\d+="(?:\d+|null)"/g,K=/^\s+/,Q=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,G=/<([\w:]+)/,Y=/<tbody/i,Z=/<|&#?\w+;/,et=/<(?:script|style)/i,tt=/<(?:script|object|embed|option|style)/i,nt=new RegExp("<(?:"+$+")[\\s/>]","i"),rt=/checked\s*(?:[^=]|=\s*.checked.)/i,it=/\/(java|ecma)script/i,st=/^\s*<!(?:\[CDATA\[|\-\-)/,ot={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ut=V(n);ot.optgroup=ot.option,ot.tbody=ot.tfoot=ot.colgroup=ot.caption=ot.thead,ot.th=ot.td,s.support.htmlSerialize||(ot._default=[1,"div<div>","</div>"]),s.fn.extend({text:function(e){return s.access(this,function(e){return e===t?s.text(this):this.empty().append((this[0]&&this[0].ownerDocument||n).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(s.isFunction(e))return this.each(function(t){s(this).wrapAll(e.call(this,t))});if(this[0]){var t=s(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return s.isFunction(e)?this.each(function(t){s(this).wrapInner(e.call(this,t))}):this.each(function(){var t=s(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=s.isFunction(e);return this.each(function(n){s(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){s.nodeName(this,"body")||s(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){this.nodeType===1&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){this.nodeType===1&&this.insertBefore(e,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=s.clean(arguments);return e.push.apply(e,this.toArray()),this -.pushStack(e,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=this.pushStack(this,"after",arguments);return e.push.apply(e,s.clean(arguments)),e}},remove:function(e,t){for(var n=0,r;(r=this[n])!=null;n++)if(!e||s.filter(e,[r]).length)!t&&r.nodeType===1&&(s.cleanData(r.getElementsByTagName("*")),s.cleanData([r])),r.parentNode&&r.parentNode.removeChild(r);return this},empty:function(){for(var e=0,t;(t=this[e])!=null;e++){t.nodeType===1&&s.cleanData(t.getElementsByTagName("*"));while(t.firstChild)t.removeChild(t.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return s.clone(this,e,t)})},html:function(e){return s.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(J,""):null;if(typeof e=="string"&&!et.test(e)&&(s.support.leadingWhitespace||!K.test(e))&&!ot[(G.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(Q,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(s.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return this[0]&&this[0].parentNode?s.isFunction(e)?this.each(function(t){var n=s(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=s(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;s(this).remove(),t?s(t).before(e):s(n).append(e)})):this.length?this.pushStack(s(s.isFunction(e)?e():e),"replaceWith",e):this},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){var i,o,u,a,f=e[0],l=[];if(!s.support.checkClone&&arguments.length===3&&typeof f=="string"&&rt.test(f))return this.each(function(){s(this).domManip(e,n,r,!0)});if(s.isFunction(f))return this.each(function(i){var o=s(this);e[0]=f.call(this,i,n?o.html():t),o.domManip(e,n,r)});if(this[0]){a=f&&f.parentNode,s.support.parentNode&&a&&a.nodeType===11&&a.childNodes.length===this.length?i={fragment:a}:i=s.buildFragment(e,this,l),u=i.fragment,u.childNodes.length===1?o=u=u.firstChild:o=u.firstChild;if(o){n=n&&s.nodeName(o,"tr");for(var c=0,h=this.length,p=h-1;c<h;c++)r.call(n?at(this[c],o):this[c],i.cacheable||h>1&&c<p?s.clone(u,!0,!0):u)}l.length&&s.each(l,function(e,t){t.src?s.ajax({type:"GET",global:!1,url:t.src,async:!1,dataType:"script"}):s.globalEval((t.text||t.textContent||t.innerHTML||"").replace(st,"/*$0*/")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),s.buildFragment=function(e,t,r){var i,o,u,a,f=e[0];return t&&t[0]&&(a=t[0].ownerDocument||t[0]),a.createDocumentFragment||(a=n),e.length===1&&typeof f=="string"&&f.length<512&&a===n&&f.charAt(0)==="<"&&!tt.test(f)&&(s.support.checkClone||!rt.test(f))&&(s.support.html5Clone||!nt.test(f))&&(o=!0,u=s.fragments[f],u&&u!==1&&(i=u)),i||(i=a.createDocumentFragment(),s.clean(e,a,i,r)),o&&(s.fragments[f]=u?i:1),{fragment:i,cacheable:o}},s.fragments={},s.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){s.fn[e]=function(n){var r=[],i=s(n),o=this.length===1&&this[0].parentNode;if(o&&o.nodeType===11&&o.childNodes.length===1&&i.length===1)return i[t](this[0]),this;for(var u=0,a=i.length;u<a;u++){var f=(u>0?this.clone(!0):this).get();s(i[u])[t](f),r=r.concat(f)}return this.pushStack(r,e,i.selector)}}),s.extend({clone:function(e,t,n){var r,i,o,u=s.support.html5Clone||s.isXMLDoc(e)||!nt.test("<"+e.nodeName+">")?e.cloneNode(!0):dt(e);if((!s.support.noCloneEvent||!s.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!s.isXMLDoc(e)){lt(e,u),r=ct(e),i=ct(u);for(o=0;r[o];++o)i[o]&&lt(r[o],i[o])}if(t){ft(e,u);if(n){r=ct(e),i=ct(u);for(o=0;r[o];++o)ft(r[o],i[o])}}return r=i=null,u},clean:function(e,t,r,i){var o,u,a,f=[];t=t||n,typeof t.createElement=="undefined"&&(t=t.ownerDocument||t[0]&&t[0].ownerDocument||n);for(var l=0,c;(c=e[l])!=null;l++){typeof c=="number"&&(c+="");if(!c)continue;if(typeof c=="string")if(!Z.test(c))c=t.createTextNode(c);else{c=c.replace(Q,"<$1></$2>");var h=(G.exec(c)||["",""])[1].toLowerCase(),p=ot[h]||ot._default,d=p[0],v=t.createElement("div"),m=ut.childNodes,g;t===n?ut.appendChild(v):V(t).appendChild(v),v.innerHTML=p[1]+c+p[2];while(d--)v=v.lastChild;if(!s.support.tbody){var y=Y.test(c),b=h==="table"&&!y?v.firstChild&&v.firstChild.childNodes:p[1]==="<table>"&&!y?v.childNodes:[];for(a=b.length-1;a>=0;--a)s.nodeName(b[a],"tbody")&&!b[a].childNodes.length&&b[a].parentNode.removeChild(b[a])}!s.support.leadingWhitespace&&K.test(c)&&v.insertBefore(t.createTextNode(K.exec(c)[0]),v.firstChild),c=v.childNodes,v&&(v.parentNode.removeChild(v),m.length>0&&(g=m[m.length-1],g&&g.parentNode&&g.parentNode.removeChild(g)))}var w;if(!s.support.appendChecked)if(c[0]&&typeof (w=c.length)=="number")for(a=0;a<w;a++)pt(c[a]);else pt(c);c.nodeType?f.push(c):f=s.merge(f,c)}if(r){o=function(e){return!e.type||it.test(e.type)};for(l=0;f[l];l++){u=f[l];if(i&&s.nodeName(u,"script")&&(!u.type||it.test(u.type)))i.push(u.parentNode?u.parentNode.removeChild(u):u);else{if(u.nodeType===1){var E=s.grep(u.getElementsByTagName("script"),o);f.splice.apply(f,[l+1,0].concat(E))}r.appendChild(u)}}}return f},cleanData:function(e){var t,n,r=s.cache,i=s.event.special,o=s.support.deleteExpando;for(var u=0,a;(a=e[u])!=null;u++){if(a.nodeName&&s.noData[a.nodeName.toLowerCase()])continue;n=a[s.expando];if(n){t=r[n];if(t&&t.events){for(var f in t.events)i[f]?s.event.remove(a,f):s.removeEvent(a,f,t.handle);t.handle&&(t.handle.elem=null)}o?delete a[s.expando]:a.removeAttribute&&a.removeAttribute(s.expando),delete r[n]}}}});var vt=/alpha\([^)]*\)/i,mt=/opacity=([^)]*)/,gt=/([A-Z]|^ms)/g,yt=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,wt=/^([\-+])=([\-+.\de]+)/,Et=/^margin/,St={position:"absolute",visibility:"hidden",display:"block"},xt=["Top","Right","Bottom","Left"],Tt,Nt,Ct;s.fn.css=function(e,n){return s.access(this,function(e,n,r){return r!==t?s.style(e,n,r):s.css(e,n)},e,n,arguments.length>1)},s.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Tt(e,"opacity");return n===""?"1":n}return e.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":s.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var o,u,a=s.camelCase(n),f=e.style,l=s.cssHooks[a];n=s.cssProps[a]||a;if(r===t)return l&&"get"in l&&(o=l.get(e,!1,i))!==t?o:f[n];u=typeof r,u==="string"&&(o=wt.exec(r))&&(r=+(o[1]+1)*+o[2]+parseFloat(s.css(e,n)),u="number");if(r==null||u==="number"&&isNaN(r))return;u==="number"&&!s.cssNumber[a]&&(r+="px");if(!l||!("set"in l)||(r=l.set(e,r))!==t)try{f[n]=r}catch(c){}},css:function(e,n,r){var i,o;n=s.camelCase(n),o=s.cssHooks[n],n=s.cssProps[n]||n,n==="cssFloat"&&(n="float");if(o&&"get"in o&&(i=o.get(e,!0,r))!==t)return i;if(Tt)return Tt(e,n)},swap:function(e,t,n){var r={},i,s;for(s in t)r[s]=e.style[s],e.style[s]=t[s];i=n.call(e);for(s in t)e.style[s]=r[s];return i}}),s.curCSS=s.css,n.defaultView&&n.defaultView.getComputedStyle&&(Nt=function(e,t){var n,r,i,o,u=e.style;return t=t.replace(gt,"-$1").toLowerCase(),(r=e.ownerDocument.defaultView)&&(i=r.getComputedStyle(e,null))&&(n=i.getPropertyValue(t),n===""&&!s.contains(e.ownerDocument.documentElement,e)&&(n=s.style(e,t))),!s.support.pixelMargin&&i&&Et.test(t)&&bt.test(n)&&(o=u.width,u.width=n,n=i.width,u.width=o),n}),n.documentElement.currentStyle&&(Ct=function(e,t){var n,r,i,s=e.currentStyle&&e.currentStyle[t],o=e.style;return s==null&&o&&(i=o[t])&&(s=i),bt.test(s)&&(n=o.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),o.left=t==="fontSize"?"1em":s,s=o.pixelLeft+"px",o.left=n,r&&(e.runtimeStyle.left=r)),s===""?"auto":s}),Tt=Nt||Ct,s.each(["height","width"],function(e,t){s.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth!==0?kt(e,t,r):s.swap(e,St,function(){return kt(e,t,r)})},set:function(e,t){return yt.test(t)?t+"px":t}}}),s.support.opacity||(s.cssHooks.opacity={get:function(e,t){return mt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?parseFloat(RegExp.$1)/100+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=s.isNumeric(t)?"alpha(opacity="+t*100+")":"",o=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&s.trim(o.replace(vt,""))===""){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=vt.test(o)?o.replace(vt,i):o+" "+i}}),s(function(){s.support.reliableMarginRight||(s.cssHooks.marginRight={get:function(e,t){return s.swap(e,{display:"inline-block"},function(){return t?Tt(e,"margin-right"):e.style.marginRight})}})}),s.expr&&s.expr.filters&&(s.expr.filters.hidden=function(e){var t=e.offsetWidth,n=e.offsetHeight;return t===0&&n===0||!s.support.reliableHiddenOffsets&&(e.style&&e.style.display||s.css(e,"display"))==="none"},s.expr.filters.visible=function(e){return!s.expr.filters.hidden(e)}),s.each({margin:"",padding:"",border:"Width"},function(e,t){s.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+xt[r]+t]=i[r]||i[r-2]||i[0];return s}}});var Lt=/%20/g,At=/\[\]$/,Ot=/\r?\n/g,Mt=/#.*$/,_t=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,Dt=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,Pt=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,Ht=/^(?:GET|HEAD)$/,Bt=/^\/\//,jt=/\?/,Ft=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,It=/^(?:select|textarea)/i,qt=/\s+/,Rt=/([?&])_=[^&]*/,Ut=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,zt=s.fn.load,Wt={},Xt={},Vt,$t,Jt=["*/"]+["*"];try{Vt=i.href}catch(Kt){Vt=n.createElement("a"),Vt.href="",Vt=Vt.href}$t=Ut.exec(Vt.toLowerCase())||[],s.fn.extend({load:function(e,n,r){if(typeof e!="string"&&zt)return zt.apply(this,arguments);if(!this.length)return this;var i=e.indexOf(" ");if(i>=0){var o=e.slice(i,e.length);e=e.slice(0,i)}var u="GET";n&&(s.isFunction(n)?(r=n,n=t):typeof n=="object"&&(n=s.param(n,s.ajaxSettings.traditional),u="POST"));var a=this;return s.ajax({url:e,type:u,dataType:"html",data:n,complete:function(e,t,n){n=e.responseText,e.isResolved()&&(e.done(function(e){n=e}),a.html(o?s("<div>").append(n.replace(Ft,"")).find(o):n)),r&&a.each(r,[n,t,e])}}),this},serialize:function(){return s.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?s.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||It.test(this.nodeName)||Dt.test(this.type))}).map(function(e,t){var n=s(this).val();return n==null?null:s.isArray(n)?s.map(n,function(e,n){return{name:t.name,value:e.replace(Ot,"\r\n")}}):{name:t.name,value:n.replace(Ot,"\r\n")}}).get()}}),s.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){s.fn[t]=function(e){return this.on(t,e)}}),s.each(["get","post"],function(e,n){s[n]=function(e,r,i,o){return s.isFunction(r)&&(o=o||i,i=r,r=t),s.ajax({type:n,url:e,data:r,success:i,dataType:o})}}),s.extend({getScript:function(e,n){return s.get(e,t,n,"script")},getJSON:function(e,t,n){return s.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Yt(e,s.ajaxSettings):(t=e,e=s.ajaxSettings),Yt(e,t),e},ajaxSettings:{url:Vt,isLocal:Pt.test($t[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Jt},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":s.parseJSON,"text xml":s.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Qt(Wt),ajaxTransport:Qt(Xt),ajax:function(e,n){function S(e,n,c,h){if(y===2)return;y=2,m&&clearTimeout(m),v=t,p=h||"",E.readyState=e>0?4:0;var d,g,w,S=n,x=c?en(r,E,c):t,T,N;if(e>=200&&e<300||e===304){if(r.ifModified){if(T=E.getResponseHeader("Last-Modified"))s.lastModified[l]=T;if(N=E.getResponseHeader("Etag"))s.etag[l]=N}if(e===304)S="notmodified",d=!0;else try{g=tn(r,x),S="success",d=!0}catch(C){S="parsererror",w=C}}else{w=S;if(!S||e)S="error",e<0&&(e=0)}E.status=e,E.statusText=""+(n||S),d?u.resolveWith(i,[g,S,E]):u.rejectWith(i,[E,S,w]),E.statusCode(f),f=t,b&&o.trigger("ajax"+(d?"Success":"Error"),[E,r,d?g:w]),a.fireWith(i,[E,S]),b&&(o.trigger("ajaxComplete",[E,r]),--s.active||s.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r=s.ajaxSetup({},n),i=r.context||r,o=i!==r&&(i.nodeType||i instanceof s)?s(i):s.event,u=s.Deferred(),a=s.Callbacks("once memory"),f=r.statusCode||{},l,c={},h={},p,d,v,m,g,y=0,b,w,E={readyState:0,setRequestHeader:function(e,t){if(!y){var n=e.toLowerCase();e=h[n]=h[n]||e,c[e]=t}return this},getAllResponseHeaders:function(){return y===2?p:null},getResponseHeader:function(e){var n;if(y===2){if(!d){d={};while(n=_t.exec(p))d[n[1].toLowerCase()]=n[2]}n=d[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return y||(r.mimeType=e),this},abort:function(e){return e=e||"abort",v&&v.abort(e),S(0,e),this}};u.promise(E),E.success=E.done,E.error=E.fail,E.complete=a.add,E.statusCode=function(e){if(e){var t;if(y<2)for(t in e)f[t]=[f[t],e[t]];else t=e[E.status],E.then(t,t)}return this},r.url=((e||r.url)+"").replace(Mt,"").replace(Bt,$t[1]+"//"),r.dataTypes=s.trim(r.dataType||"*").toLowerCase().split(qt),r.crossDomain==null&&(g=Ut.exec(r.url.toLowerCase()),r.crossDomain=!(!g||g[1]==$t[1]&&g[2]==$t[2]&&(g[3]||(g[1]==="http:"?80:443))==($t[3]||($t[1]==="http:"?80:443)))),r.data&&r.processData&&typeof r.data!="string"&&(r.data=s.param(r.data,r.traditional)),Gt(Wt,r,n,E);if(y===2)return!1;b=r.global,r.type=r.type.toUpperCase(),r.hasContent=!Ht.test(r.type),b&&s.active++===0&&s.event.trigger("ajaxStart");if(!r.hasContent){r.data&&(r.url+=(jt.test(r.url)?"&":"?")+r.data,delete r.data),l=r.url;if(r.cache===!1){var x=s.now(),T=r.url.replace(Rt,"$1_="+x);r.url=T+(T===r.url?(jt.test(r.url)?"&":"?")+"_="+x:"")}}(r.data&&r.hasContent&&r.contentType!==!1||n.contentType)&&E.setRequestHeader("Content-Type",r.contentType),r.ifModified&&(l=l||r.url,s.lastModified[l]&&E.setRequestHeader("If-Modified-Since",s.lastModified[l]),s.etag[l]&&E.setRequestHeader("If-None-Match",s.etag[l])),E.setRequestHeader("Accept",r.dataTypes[0]&&r.accepts[r.dataTypes[0]]?r.accepts[r.dataTypes[0]]+(r.dataTypes[0]!=="*"?", "+Jt+"; q=0.01":""):r.accepts["*"]);for(w in r.headers)E.setRequestHeader(w,r.headers[w]);if(!r.beforeSend||r.beforeSend.call(i,E,r)!==!1&&y!==2){for(w in{success:1,error:1,complete:1})E[w](r[w]);v=Gt(Xt,r,n,E);if(!v)S(-1,"No Transport");else{E.readyState=1,b&&o.trigger("ajaxSend",[E,r]),r.async&&r.timeout>0&&(m=setTimeout(function(){E.abort("timeout")},r.timeout));try{y=1,v.send(c,S)}catch(N){if(!(y<2))throw N;S(-1,N)}}return E}return E.abort(),!1},param:function(e,n){var r=[],i=function(e,t){t=s.isFunction(t)?t():t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=s.ajaxSettings.traditional);if(s.isArray(e)||e.jquery&&!s.isPlainObject(e))s.each(e,function(){i(this.name,this.value)});else for(var o in e)Zt(o,e[o],n,i);return r.join("&").replace(Lt,"+")}}),s.extend({active:0,lastModified:{},etag:{}});var nn=s.now(),rn=/(\=)\?(&|$)|\?\?/i;s.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return s.expando+"_"+nn++}}),s.ajaxPrefilter("json jsonp",function(t,n,r){var i=typeof t.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(t.contentType);if(t.dataTypes[0]==="jsonp"||t.jsonp!==!1&&(rn.test(t.url)||i&&rn.test(t.data))){var o,u=t.jsonpCallback=s.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a=e[u],f=t.url,l=t.data,c="$1"+u+"$2";return t.jsonp!==!1&&(f=f.replace(rn,c),t.url===f&&(i&&(l=l.replace(rn,c)),t.data===l&&(f+=(/\?/.test(f)?"&":"?")+t.jsonp+"="+u))),t.url=f,t.data=l,e[u]=function(e){o=[e]},r.always(function(){e[u]=a,o&&s.isFunction(a)&&e[u](o[0])}),t.converters["script json"]=function(){return o||s.error(u+" was not called"),o[0]},t.dataTypes[0]="json","script"}}),s.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return s.globalEval(e),e}}}),s.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),s.ajaxTransport("script",function(e){if(e.crossDomain){var r,i=n.head||n.getElementsByTagName("head")[0]||n.documentElement;return{send:function(s,o){r=n.createElement("script"),r.async="async",e.scriptCharset&&(r.charset=e.scriptCharset),r.src=e.url,r.onload=r.onreadystatechange=function(e,n){if(n||!r.readyState||/loaded|complete/.test(r.readyState))r.onload=r.onreadystatechange=null,i&&r.parentNode&&i.removeChild(r),r=t,n||o(200,"success")},i.insertBefore(r,i.firstChild)},abort:function(){r&&r.onload(0,1)}}}});var sn=e.ActiveXObject?function(){for(var e in un)un[e](0,1)}:!1,on=0,un;s.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&an()||fn()}:an,function(e){s.extend(s.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(s.ajaxSettings.xhr()),s.support.ajax&&s.ajaxTransport(function(n){if(!n.crossDomain||s.support.cors){var r;return{send:function(i,o){var u=n.xhr(),a,f;n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async);if(n.xhrFields)for(f in n.xhrFields)u[f]=n.xhrFields[f];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(f in i)u.setRequestHeader(f,i[f])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var f,l,c,h,p;try{if(r&&(i||u.readyState===4)){r=t,a&&(u.onreadystatechange=s.noop,sn&&delete un[a]);if(i)u.readyState!==4&&u.abort();else{f=u.status,c=u.getAllResponseHeaders(),h={},p=u.responseXML,p&&p.documentElement&&(h.xml=p);try{h.text=u.responseText}catch(e){}try{l=u.statusText}catch(d){l=""}!f&&n.isLocal&&!n.crossDomain?f=h.text?200:404:f===1223&&(f=204)}}}catch(v){i||o(-1,v)}h&&o(f,l,h,c)},!n.async||u.readyState===4?r():(a=++on,sn&&(un||(un={},s(e).unload(sn)),un[a]=r),u.onreadystatechange=r)},abort:function(){r&&r(0,1)}}}});var ln={},cn,hn,pn=/^(?:toggle|show|hide)$/,dn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,vn,mn=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],gn;s.fn.extend({show:function(e,t,n){var r,i;if(e||e===0)return this.animate(wn("show",3),e,t,n);for(var o=0,u=this.length;o<u;o++)r=this[o],r.style&&(i=r.style.display,!s._data(r,"olddisplay")&&i==="none"&&(i=r.style.display=""),(i===""&&s.css(r,"display")==="none"||!s.contains(r.ownerDocument.documentElement,r))&&s._data(r,"olddisplay",En(r.nodeName)));for(o=0;o<u;o++){r=this[o];if(r.style){i=r.style.display;if(i===""||i==="none")r.style.display=s._data(r,"olddisplay")||""}}return this},hide:function(e,t,n){if(e||e===0)return this.animate(wn("hide",3),e,t,n);var r,i,o=0,u=this.length;for(;o<u;o++)r=this[o],r.style&&(i=s.css(r,"display"),i!=="none"&&!s._data(r,"olddisplay")&&s._data(r,"olddisplay",i));for(o=0;o<u;o++)this[o].style&&(this[o].style.display="none");return this},_toggle:s.fn.toggle,toggle:function(e,t,n){var r=typeof e=="boolean";return s.isFunction(e)&&s.isFunction(t)?this._toggle.apply(this,arguments):e==null||r?this.each(function(){var t=r?e:s(this).is(":hidden");s(this)[t?"show":"hide"]()}):this.animate(wn("toggle",3),e,t,n),this},fadeTo:function(e,t,n,r){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){function o(){i.queue===!1&&s._mark(this);var t=s.extend({},i),n=this.nodeType===1,r=n&&s(this).is(":hidden"),o,u,a,f,l,c,h,p,d,v,m;t.animatedProperties={};for(a in e){o=s.camelCase(a),a!==o&&(e[o]=e[a],delete e[a]);if((l=s.cssHooks[o])&&"expand"in l){c=l.expand(e[o]),delete e[o];for(a in c)a in e||(e[a]=c[a])}}for(o in e){u=e[o],s.isArray(u)?(t.animatedProperties[o]=u[1],u=e[o]=u[0]):t.animatedProperties[o]=t.specialEasing&&t.specialEasing[o]||t.easing||"swing";if(u==="hide"&&r||u==="show"&&!r)return t.complete.call(this);n&&(o==="height"||o==="width")&&(t.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],s.css(this,"display")==="inline"&&s.css(this,"float")==="none"&&(!s.support.inlineBlockNeedsLayout||En(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}t.overflow!=null&&(this.style.overflow="hidden");for(a in e)f=new s.fx(this,t,a),u=e[a],pn.test(u)?(m=s._data(this,"toggle"+a)||(u==="toggle"?r?"show":"hide":0),m?(s._data(this,"toggle"+a,m==="show"?"hide":"show"),f[m]()):f[u]()):(h=dn.exec(u),p=f.cur(),h?(d=parseFloat(h[2]),v=h[3]||(s.cssNumber[a]?"":"px"),v!=="px"&&(s.style(this,a,(d||1)+v),p=(d||1)/f.cur()*p,s.style(this,a,p+v)),h[1]&&(d=(h[1]==="-="?-1:1)*d+p),f.custom(p,d,v)):f.custom(p,u,""));return!0}var i=s.speed(t,n,r);return s.isEmptyObject(e)?this.each(i.complete,[!1]):(e=s.extend({},e),i.queue===!1?this.each(o):this.queue(i.queue,o))},stop:function(e,n,r){return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){function u(e,t,n){var i=t[n];s.removeData(e,n,!0),i.stop(r)}var t,n=!1,i=s.timers,o=s._data(this);r||s._unmark(!0,this);if(e==null)for(t in o)o[t]&&o[t].stop&&t.indexOf(".run")===t.length-4&&u(this,o,t);else o[t=e+".run"]&&o[t].stop&&u(this,o,t);for(t=i.length;t--;)i[t].elem===this&&(e==null||i[t].queue===e)&&(r?i[t](!0):i[t].saveState(),n=!0,i.splice(t,1));(!r||!n)&&s.dequeue(this,e)})}}),s.each({slideDown:wn("show",1),slideUp:wn("hide",1),slideToggle:wn("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){s.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),s.extend({speed:function(e,t,n){var r=e&&typeof e=="object"?s.extend({},e):{complete:n||!n&&t||s.isFunction(e)&&e,duration:e,easing:n&&t||t&&!s.isFunction(t)&&t};r.duration=s.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in s.fx.speeds?s.fx.speeds[r.duration]:s.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(e){s.isFunction(r.old)&&r.old.call(this),r.queue?s.dequeue(this,r.queue):e!==!1&&s._unmark(this)},r},easing:{linear:function(e){return e},swing:function(e){return-Math.cos(e*Math.PI)/2+.5}},timers:[],fx:function(e,t,n){this.options=t,this.elem=e,this.prop=n,t.orig=t.orig||{}}}),s.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(s.fx.step[this.prop]||s.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]==null||!!this.elem.style&&this.elem.style[this.prop]!=null){var e,t=s.css(this.elem,this.prop);return isNaN(e=parseFloat(t))?!t||t==="auto"?0:t:e}return this.elem[this.prop]},custom:function(e,n,r){function u(e){return i.step(e)}var i=this,o=s.fx;this.startTime=gn||yn(),this.end=n,this.now=this.start=e,this.pos=this.state=0,this.unit=r||this.unit||(s.cssNumber[this.prop]?"":"px"),u.queue=this.options.queue,u.elem=this.elem,u.saveState=function(){s._data(i.elem,"fxshow"+i.prop)===t&&(i.options.hide?s._data(i.elem,"fxshow"+i.prop,i.start):i.options.show&&s._data(i.elem,"fxshow"+i.prop,i.end))},u()&&s.timers.push(u)&&!vn&&(vn=setInterval(o.tick,o.interval))},show:function(){var e=s._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||s.style(this.elem,this.prop),this.options.show=!0,e!==t?this.custom(this.cur(),e):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),s(this.elem).show()},hide:function(){this.options.orig[this.prop]=s._data(this.elem,"fxshow"+this.prop)||s.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(e){var t,n,r,i=gn||yn(),o=!0,u=this.elem,a=this.options;if(e||i>=a.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),a.animatedProperties[this.prop]=!0;for(t in a.animatedProperties)a.animatedProperties[t]!==!0&&(o=!1);if(o){a.overflow!=null&&!s.support.shrinkWrapBlocks&&s.each(["","X","Y"],function(e,t){u.style["overflow"+t]=a.overflow[e]}),a.hide&&s(u).hide();if(a.hide||a.show)for(t in a.animatedProperties)s.style(u,t,a.orig[t]),s.removeData(u,"fxshow"+t,!0),s.removeData(u,"toggle"+t,!0);r=a.complete,r&&(a.complete=!1,r.call(u))}return!1}return a.duration==Infinity?this.now=i:(n=i-this.startTime,this.state=n/a.duration,this.pos=s.easing[a.animatedProperties[this.prop]](this.state,n,0,1,a.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update(),!0}},s.extend(s.fx,{tick:function(){var e,t=s.timers,n=0;for(;n<t.length;n++)e=t[n],!e()&&t[n]===e&&t.splice(n--,1);t.length||s.fx.stop()},interval:13,stop:function(){clearInterval(vn),vn=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){s.style(e.elem,"opacity",e.now)},_default:function(e){e.elem.style&&e.elem.style[e.prop]!=null?e.elem.style[e.prop]=e.now+e.unit:e.elem[e.prop]=e.now}}}),s.each(mn.concat.apply([],mn),function(e,t){t.indexOf("margin")&&(s.fx.step[t]=function(e){s.style(e.elem,t,Math.max(0,e.now)+e.unit)})}),s.expr&&s.expr.filters&&(s.expr.filters.animated=function(e){return s.grep(s.timers,function(t){return e===t.elem}).length});var Sn,xn=/^t(?:able|d|h)$/i,Tn=/^(?:body|html)$/i;"getBoundingClientRect"in n.documentElement?Sn=function(e,t,n,r){try{r=e.getBoundingClientRect()}catch(i){}if(!r||!s.contains(n,e))return r?{top:r.top,left:r.left}:{top:0,left:0};var o=t.body,u=Nn(t),a=n.clientTop||o.clientTop||0,f=n.clientLeft||o.clientLeft||0,l=u.pageYOffset||s.support.boxModel&&n.scrollTop||o.scrollTop,c=u.pageXOffset||s.support.boxModel&&n.scrollLeft||o.scrollLeft,h=r.top+l-a,p=r.left+c-f;return{top:h,left:p}}:Sn=function(e,t,n){var r,i=e.offsetParent,o=e,u=t.body,a=t.defaultView,f=a?a.getComputedStyle(e,null):e.currentStyle,l=e.offsetTop,c=e.offsetLeft;while((e=e.parentNode)&&e!==u&&e!==n){if(s.support.fixedPosition&&f.position==="fixed")break;r=a?a.getComputedStyle(e,null):e.currentStyle,l-=e.scrollTop,c-=e.scrollLeft,e===i&&(l+=e.offsetTop,c+=e.offsetLeft,s.support.doesNotAddBorder&&(!s.support.doesAddBorderForTableAndCells||!xn.test(e.nodeName))&&(l+=parseFloat(r.borderTopWidth)||0,c+=parseFloat(r.borderLeftWidth)||0),o=i,i=e.offsetParent),s.support.subtractsBorderForOverflowNotVisible&&r.overflow!=="visible"&&(l+=parseFloat(r.borderTopWidth)||0,c+=parseFloat(r.borderLeftWidth)||0),f=r}if(f.position==="relative"||f.position==="static")l+=u.offsetTop,c+=u.offsetLeft;return s.support.fixedPosition&&f.position==="fixed"&&(l+=Math.max(n.scrollTop,u.scrollTop),c+=Math.max(n.scrollLeft,u.scrollLeft)),{top:l,left:c}},s.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){s.offset.setOffset(this,e,t)});var n=this[0],r=n&&n.ownerDocument;return r?n===r.body?s.offset.bodyOffset(n):Sn(n,r,r.documentElement):null},s.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return s.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(s.css(e,"marginTop"))||0,n+=parseFloat(s.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=s.css(e,"position");r==="static"&&(e.style.position="relative");var i=s(e),o=i.offset(),u=s.css(e,"top"),a=s.css(e,"left"),f=(r==="absolute"||r==="fixed")&&s.inArray("auto",[u,a])>-1,l={},c={},h,p;f?(c=i.position(),h=c.top,p=c.left):(h=parseFloat(u)||0,p=parseFloat(a)||0),s.isFunction(t)&&(t=t.call(e,n,o)),t.top!=null&&(l.top=t.top-o.top+h),t.left!=null&&(l.left=t.left-o.left+p),"using"in t?t.using.call(e,l):i.css(l)}},s.fn.extend({position:function(){if(!this[0])return null;var e=this[0],t=this.offsetParent(),n=this.offset(),r=Tn.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(s.css(e,"marginTop"))||0,n.left-=parseFloat(s.css(e,"marginLeft"))||0,r.top+=parseFloat(s.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(s.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||n.body;while(e&&!Tn.test(e.nodeName)&&s.css(e,"position")==="static")e=e.offsetParent;return e})}}),s.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);s.fn[e]=function(i){return s.access(this,function(e,i,o){var u=Nn(e);if(o===t)return u?n in u?u[n]:s.support.boxModel&&u.document.documentElement[i]||u.document.body[i]:e[i];u?u.scrollTo(r?s(u).scrollLeft():o,r?o:s(u).scrollTop()):e[i]=o},e,i,arguments.length,null)}}),s.each({Height:"height",Width:"width"},function(e,n){var r="client"+e,i="scroll"+e,o="offset"+e;s.fn["inner"+e]=function(){var e=this[0];return e?e.style?parseFloat(s.css(e,n,"padding")):this[n]():null},s.fn["outer"+e]=function(e){var t=this[0];return t?t.style?parseFloat(s.css(t,n,e?"margin":"border")):this[n]():null},s.fn[n]=function(e){return s.access(this,function(e,n,u){var a,f,l,c;if(s.isWindow(e))return a=e.document,f=a.documentElement[r],s.support.boxModel&&f||a.body&&a.body[r]||f;if(e.nodeType===9)return a=e.documentElement,a[r]>=a[i]?a[r]:Math.max(e.body[i],a[i],e.body[o],a[o]);if(u===t)return l=s.css(e,n),c=parseFloat(l),s.isNumeric(c)?c:l;s(e).css(n,u)},n,e,arguments.length,null)}}),e.jQuery=e.$=s,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return s})})(window);/* - * jQuery Reveal Plugin 1.1 - * www.ZURB.com - * Copyright 2010, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ -/*globals jQuery */ -(function(e){"use strict";var t=!1;e("a[data-reveal-id]").live("click",function(t){t.preventDefault();var n=e(this).attr("data-reveal-id");e("#"+n).reveal(e(this).data())}),e.fn.reveal=function(n){var r=e(document),i={animation:"fadeAndPop",animationSpeed:300,closeOnBackgroundClick:!0,dismissModalClass:"close-reveal-modal",open:e.noop,opened:e.noop,close:e.noop,closed:e.noop};return n=e.extend({},i,n),this.each(function(){function c(){u=!1}function h(){u=!0}function p(){var n=e(".reveal-modal.open");n.length===1&&(t=!0,n.trigger("reveal:close"))}function d(){u||(h(),p(),i.addClass("open"),n.animation==="fadeAndPop"&&(f.open.top=r.scrollTop()-o,f.open.opacity=0,i.css(f.open),a.fadeIn(n.animationSpeed/2),i.delay(n.animationSpeed/2).animate({top:r.scrollTop()+s+"px",opacity:1},n.animationSpeed,function(){i.trigger("reveal:opened")})),n.animation==="fade"&&(f.open.top=r.scrollTop()+s,f.open.opacity=0,i.css(f.open),a.fadeIn(n.animationSpeed/2),i.delay(n.animationSpeed/2).animate({opacity:1},n.animationSpeed,function(){i.trigger("reveal:opened")})),n.animation==="none"&&(f.open.top=r.scrollTop()+s,f.open.opacity=1,i.css(f.open),a.css({display:"block"}),i.trigger("reveal:opened")))}function v(){u||(h(),i.removeClass("open"),n.animation==="fadeAndPop"&&(i.animate({top:r.scrollTop()-o+"px",opacity:0},n.animationSpeed/2,function(){i.css(f.close)}),t?i.trigger("reveal:closed"):a.delay(n.animationSpeed).fadeOut(n.animationSpeed,function(){i.trigger("reveal:closed")}),t=!1),n.animation==="fade"&&(i.animate({opacity:0},n.animationSpeed,function(){i.css(f.close)}),t?i.trigger("reveal:closed"):a.delay(n.animationSpeed).fadeOut(n.animationSpeed,function(){i.trigger("reveal:closed")})),n.animation==="none"&&(i.css(f.close),t||a.css({display:"none"}),i.trigger("reveal:closed")))}function m(){i.unbind(".reveal"),a.unbind(".reveal"),l.unbind(".reveal"),e("body").unbind(".reveal")}var i=e(this),s=parseInt(i.css("top"),10),o=i.height()+s,u=!1,a=e(".reveal-modal-bg"),f={open:{top:0,opacity:0,visibility:"visible",display:"block"},close:{top:s,opacity:1,visibility:"hidden",display:"none"}},l;a.length===0&&(a=e("<div />",{"class":"reveal-modal-bg"}).insertAfter(i),a.fadeTo("fast",.8)),i.bind("reveal:open.reveal",d),i.bind("reveal:close.reveal",v),i.bind("reveal:opened.reveal reveal:closed.reveal",c),i.bind("reveal:closed.reveal",m),i.bind("reveal:open.reveal",n.open),i.bind("reveal:opened.reveal",n.opened),i.bind("reveal:close.reveal",n.close),i.bind("reveal:closed.reveal",n.closed),i.trigger("reveal:open"),l=e("."+n.dismissModalClass).bind("click.reveal",function(){i.trigger("reveal:close")}),n.closeOnBackgroundClick&&(a.css({cursor:"pointer"}),a.bind("click.reveal",function(){i.trigger("reveal:close")})),e("body").bind("keyup.reveal",function(e){e.which===27&&i.trigger("reveal:close")})})}})(jQuery);/* - * jQuery Orbit Plugin 1.4.0 - * www.ZURB.com/playground - * Copyright 2010, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ -(function(e){"use strict";e.fn.findFirstImage=function(){return this.first().find("img").andSelf().filter("img").first()};var t={defaults:{animation:"horizontal-push",animationSpeed:600,timer:!0,advanceSpeed:4e3,pauseOnHover:!1,startClockOnMouseOut:!1,startClockOnMouseOutAfter:1e3,directionalNav:!0,directionalNavRightText:"Right",directionalNavLeftText:"Left",captions:!0,captionAnimation:"fade",captionAnimationSpeed:600,resetTimerOnClick:!1,bullets:!1,bulletThumbs:!1,bulletThumbLocation:"",afterSlideChange:e.noop,afterLoadComplete:e.noop,fluid:!0,centerBullets:!0},activeSlide:0,numberSlides:0,orbitWidth:null,orbitHeight:null,locked:null,timerRunning:null,degrees:0,wrapperHTML:'<div class="orbit-wrapper" />',timerHTML:'<div class="timer"><span class="mask"><span class="rotator"></span></span><span class="pause"></span></div>',captionHTML:'<div class="orbit-caption"></div>',directionalNavHTML:'<div class="slider-nav"><span class="right"></span><span class="left"></span></div>',bulletHTML:'<ul class="orbit-bullets"></ul>',init:function(t,n){var r,i=0,s=this;this.clickTimer=e.proxy(this.clickTimer,this),this.addBullet=e.proxy(this.addBullet,this),this.resetAndUnlock=e.proxy(this.resetAndUnlock,this),this.stopClock=e.proxy(this.stopClock,this),this.startTimerAfterMouseLeave=e.proxy(this.startTimerAfterMouseLeave,this),this.clearClockMouseLeaveTimer=e.proxy(this.clearClockMouseLeaveTimer,this),this.rotateTimer=e.proxy(this.rotateTimer,this),this.options=e.extend({},this.defaults,n),this.options.timer==="false"&&(this.options.timer=!1),this.options.captions==="false"&&(this.options.captions=!1),this.options.directionalNav==="false"&&(this.options.directionalNav=!1),this.$element=e(t),this.$wrapper=this.$element.wrap(this.wrapperHTML).parent(),this.$slides=this.$element.children("img, a, div"),this.$element.bind("orbit.next",function(){s.shift("next")}),this.$element.bind("orbit.prev",function(){s.shift("prev")}),this.$element.bind("orbit.goto",function(e,t){s.shift(t)}),this.$element.bind("orbit.start",function(e,t){s.startClock()}),this.$element.bind("orbit.stop",function(e,t){s.stopClock()}),r=this.$slides.filter("img"),r.length===0?this.loaded():r.bind("imageready",function(){i+=1,i===r.length&&s.loaded()})},loaded:function(){this.$element.addClass("orbit").css({width:"1px",height:"1px"}),this.$slides.addClass("orbit-slide"),this.setDimentionsFromLargestSlide(),this.updateOptionsIfOnlyOneSlide(),this.setupFirstSlide(),this.options.timer&&(this.setupTimer(),this.startClock()),this.options.captions&&this.setupCaptions(),this.options.directionalNav&&this.setupDirectionalNav(),this.options.bullets&&(this.setupBulletNav(),this.setActiveBullet()),this.options.afterLoadComplete.call(this)},currentSlide:function(){return this.$slides.eq(this.activeSlide)},setDimentionsFromLargestSlide:function(){var t=this,n;t.$element.add(t.$wrapper).width(this.$slides.first().outerWidth()),t.$element.add(t.$wrapper).height(this.$slides.first().height()),t.orbitWidth=this.$slides.first().outerWidth(),t.orbitHeight=this.$slides.first().height(),n=this.$slides.first().findFirstImage().clone(),this.$slides.each(function(){var r=e(this),i=r.outerWidth(),s=r.height();i>t.$element.outerWidth()&&(t.$element.add(t.$wrapper).width(i),t.orbitWidth=t.$element.outerWidth()),s>t.$element.height()&&(t.$element.add(t.$wrapper).height(s),t.orbitHeight=t.$element.height(),n=e(this).findFirstImage().clone()),t.numberSlides+=1}),this.options.fluid&&(typeof this.options.fluid=="string"&&(n=e('<img src="http://placehold.it/'+this.options.fluid+'" />')),t.$element.prepend(n),n.addClass("fluid-placeholder"),t.$element.add(t.$wrapper).css({width:"inherit"}),t.$element.add(t.$wrapper).css({height:"inherit"}),e(window).bind("resize",function(){t.orbitWidth=t.$element.outerWidth(),t.orbitHeight=t.$element.height()}))},lock:function(){this.locked=!0},unlock:function(){this.locked=!1},updateOptionsIfOnlyOneSlide:function(){this.$slides.length===1&&(this.options.directionalNav=!1,this.options.timer=!1,this.options.bullets=!1)},setupFirstSlide:function(){var e=this;this.$slides.first().css({"z-index":3}).fadeIn(function(){e.$slides.css({display:"block"})})},startClock:function(){var e=this;if(!this.options.timer)return!1;this.$timer.is(":hidden")?this.clock=setInterval(function(){e.$element.trigger("orbit.next")},this.options.advanceSpeed):(this.timerRunning=!0,this.$pause.removeClass("active"),this.clock=setInterval(this.rotateTimer,this.options.advanceSpeed/180,!1))},rotateTimer:function(e){var t="rotate("+this.degrees+"deg)";this.degrees+=2,this.$rotator.css({"-webkit-transform":t,"-moz-transform":t,"-o-transform":t}),this.degrees>180&&(this.$rotator.addClass("move"),this.$mask.addClass("move"));if(this.degrees>360||e)this.$rotator.removeClass("move"),this.$mask.removeClass("move"),this.degrees=0,this.$element.trigger("orbit.next")},stopClock:function(){if(!this.options.timer)return!1;this.timerRunning=!1,clearInterval(this.clock),this.$pause.addClass("active")},setupTimer:function(){this.$timer=e(this.timerHTML),this.$wrapper.append(this.$timer),this.$rotator=this.$timer.find(".rotator"),this.$mask=this.$timer.find(".mask"),this.$pause=this.$timer.find(".pause"),this.$timer.click(this.clickTimer),this.options.startClockOnMouseOut&&(this.$wrapper.mouseleave(this.startTimerAfterMouseLeave),this.$wrapper.mouseenter(this.clearClockMouseLeaveTimer)),this.options.pauseOnHover&&this.$wrapper.mouseenter(this.stopClock)},startTimerAfterMouseLeave:function(){var e=this;this.outTimer=setTimeout(function(){e.timerRunning||e.startClock()},this.options.startClockOnMouseOutAfter)},clearClockMouseLeaveTimer:function(){clearTimeout(this.outTimer)},clickTimer:function(){this.timerRunning?this.stopClock():this.startClock()},setupCaptions:function(){this.$caption=e(this.captionHTML),this.$wrapper.append(this.$caption),this.setCaption()},setCaption:function(){var t=this.currentSlide().attr("data-caption"),n;if(!this.options.captions)return!1;if(t){if(e.trim(e(t).text()).length<1)return!1;n=e(t).html(),this.$caption.attr("id",t).html(n);switch(this.options.captionAnimation){case"none":this.$caption.show();break;case"fade":this.$caption.fadeIn(this.options.captionAnimationSpeed);break;case"slideOpen":this.$caption.slideDown(this.options.captionAnimationSpeed)}}else switch(this.options.captionAnimation){case"none":this.$caption.hide();break;case"fade":this.$caption.fadeOut(this.options.captionAnimationSpeed);break;case"slideOpen":this.$caption.slideUp(this.options.captionAnimationSpeed)}},setupDirectionalNav:function(){var t=this,n=e(this.directionalNavHTML);n.find(".right").html(this.options.directionalNavRightText),n.find(".left").html(this.options.directionalNavLeftText),this.$wrapper.append(n),this.$wrapper.find(".left").click(function(){t.stopClock(),t.options.resetTimerOnClick&&(t.rotateTimer(!0),t.startClock()),t.$element.trigger("orbit.prev")}),this.$wrapper.find(".right").click(function(){t.stopClock(),t.options.resetTimerOnClick&&(t.rotateTimer(!0),t.startClock()),t.$element.trigger("orbit.next")})},setupBulletNav:function(){this.$bullets=e(this.bulletHTML),this.$wrapper.append(this.$bullets),this.$slides.each(this.addBullet),this.$element.addClass("with-bullets"),this.options.centerBullets&&this.$bullets.css("margin-left",-this.$bullets.outerWidth()/2)},addBullet:function(t,n){var r=t+1,i=e("<li>"+r+"</li>"),s,o=this;this.options.bulletThumbs&&(s=e(n).attr("data-thumb"),s&&i.addClass("has-thumb").css({background:"url("+this.options.bulletThumbLocation+s+") no-repeat"})),this.$bullets.append(i),i.data("index",t),i.click(function(){o.stopClock(),o.options.resetTimerOnClick&&(o.rotateTimer(!0),o.startClock()),o.$element.trigger("orbit.goto",[i.data("index")])})},setActiveBullet:function(){if(!this.options.bullets)return!1;this.$bullets.find("li").removeClass("active").eq(this.activeSlide).addClass("active")},resetAndUnlock:function(){this.$slides.eq(this.prevActiveSlide).css({"z-index":1}),this.unlock(),this.options.afterSlideChange.call(this,this.$slides.eq(this.prevActiveSlide),this.$slides.eq(this.activeSlide))},shift:function(e){var t=e;this.prevActiveSlide=this.activeSlide;if(this.prevActiveSlide==t)return!1;if(this.$slides.length=="1")return!1;this.locked||(this.lock(),e=="next"?(this.activeSlide++,this.activeSlide==this.numberSlides&&(this.activeSlide=0)):e=="prev"?(this.activeSlide--,this.activeSlide<0&&(this.activeSlide=this.numberSlides-1)):(this.activeSlide=e,this.prevActiveSlide<this.activeSlide?t="next":this.prevActiveSlide>this.activeSlide&&(t="prev")),this.setActiveBullet(),this.$slides.eq(this.prevActiveSlide).css({"z-index":2}),this.options.animation=="fade"&&this.$slides.eq(this.activeSlide).css({opacity:0,"z-index":3}).animate({opacity:1},this.options.animationSpeed,this.resetAndUnlock),this.options.animation=="horizontal-slide"&&(t=="next"&&this.$slides.eq(this.activeSlide).css({left:this.orbitWidth,"z-index":3}).animate({left:0},this.options.animationSpeed,this.resetAndUnlock),t=="prev"&&this.$slides.eq(this.activeSlide).css({left:-this.orbitWidth,"z-index":3}).animate({left:0},this.options.animationSpeed,this.resetAndUnlock)),this.options.animation=="vertical-slide"&&(t=="prev"&&this.$slides.eq(this.activeSlide).css({top:this.orbitHeight,"z-index":3}).animate({top:0},this.options.animationSpeed,this.resetAndUnlock),t=="next"&&this.$slides.eq(this.activeSlide).css({top:-this.orbitHeight,"z-index":3}).animate({top:0},this.options.animationSpeed,this.resetAndUnlock)),this.options.animation=="horizontal-push"&&(t=="next"&&(this.$slides.eq(this.activeSlide).css({left:this.orbitWidth,"z-index":3}).animate({left:0},this.options.animationSpeed,this.resetAndUnlock),this.$slides.eq(this.prevActiveSlide).animate({left:-this.orbitWidth},this.options.animationSpeed)),t=="prev"&&(this.$slides.eq(this.activeSlide).css({left:-this.orbitWidth,"z-index":3}).animate({left:0},this.options.animationSpeed,this.resetAndUnlock),this.$slides.eq(this.prevActiveSlide).animate({left:this.orbitWidth},this.options.animationSpeed))),this.options.animation=="vertical-push"&&(t=="next"&&(this.$slides.eq(this.activeSlide).css({top:-this.orbitHeight,"z-index":3}).animate({top:0},this.options.animationSpeed,this.resetAndUnlock),this.$slides.eq(this.prevActiveSlide).animate({top:this.orbitHeight},this.options.animationSpeed)),t=="prev"&&(this.$slides.eq(this.activeSlide).css({top:this.orbitHeight,"z-index":3}).animate({top:0},this.options.animationSpeed,this.resetAndUnlock),this.$slides.eq(this.prevActiveSlide).animate({top:-this.orbitHeight},this.options.animationSpeed))),this.setCaption())}};e.fn.orbit=function(n){return this.each(function(){var r=e.extend({},t);r.init(this,n)})}})(jQuery),function(e){function n(t,n){var r=e(t);r.bind("load.imageready",function(){n.apply(t,arguments),r.unbind("load.imageready")})}var t={};e.event.special.imageready={setup:function(e,n,r){t=e||t},add:function(r){var i=e(this),s;this.nodeType===1&&this.tagName.toLowerCase()==="img"&&this.src!==""&&(t.forceLoad?(s=i.attr("src"),i.attr("src",""),n(this,r.handler),i.attr("src",s)):this.complete||this.readyState===4?r.handler.apply(this,arguments):n(this,r.handler))},teardown:function(t){e(this).unbind(".imageready")}}}(jQuery);(function(e){e.fn.foundationNavigation=function(t){var n=!1;Modernizr.touch||navigator.userAgent.match(/Windows Phone/i)?(e(".nav-bar a.flyout-toggle",this).on("click.fndtn touchstart.fndtn",function(t){t.preventDefault();var r=e(this).siblings(".flyout").first();n===!1&&(e(".nav-bar .flyout").not(r).slideUp(500),r.slideToggle(500,function(){n=!1})),n=!0}),e(".nav-bar>li.has-flyout",this).addClass("is-touch")):e(".nav-bar>li.has-flyout",this).hover(function(){e(this).children(".flyout").show()},function(){e(this).children(".flyout").hide()})}})(jQuery);(function(e){e.fn.foundationButtons=function(t){e(".button.disabled",this).on("click.fndtn",function(e){e.preventDefault()}),e(".button.dropdown > ul",this).addClass("no-hover"),e(".button.dropdown",this).on("click.fndtn",function(e){e.stopPropagation()}),e(".button.dropdown.split span",this).on("click.fndtn",function(t){t.preventDefault(),e(".button.dropdown",this).not(e(this).parent()).children("ul").removeClass("show-dropdown"),e(this).siblings("ul").toggleClass("show-dropdown")}),e(".button.dropdown",this).not(".split").on("click.fndtn",function(t){e(".button.dropdown",this).not(this).children("ul").removeClass("show-dropdown"),e(this).children("ul").toggleClass("show-dropdown")}),e("body, html").on("click.fndtn",function(){e(".button.dropdown ul").removeClass("show-dropdown")});var n=e(".button.dropdown:not(.large):not(.small):not(.tiny)",this).outerHeight()-1,r=e(".button.large.dropdown",this).outerHeight()-1,i=e(".button.small.dropdown",this).outerHeight()-1,s=e(".button.tiny.dropdown",this).outerHeight()-1;e(".button.dropdown:not(.large):not(.small):not(.tiny) > ul",this).css("top",n),e(".button.dropdown.large > ul",this).css("top",r),e(".button.dropdown.small > ul",this).css("top",i),e(".button.dropdown.tiny > ul",this).css("top",s),e(".button.dropdown.up:not(.large):not(.small):not(.tiny) > ul",this).css("top","auto").css("bottom",n-2),e(".button.dropdown.up.large > ul",this).css("top","auto").css("bottom",r-2),e(".button.dropdown.up.small > ul",this).css("top","auto").css("bottom",i-2),e(".button.dropdown.up.tiny > ul",this).css("top","auto").css("bottom",s-2)}})(jQuery);(function(e){e.fn.foundationTabs=function(t){var n=e.extend({callback:e.noop},t),r=function(t){var n=t.closest("dl").find("dd.active"),r=t.children("a").attr("href")+"Tab";r=r.replace(/^.+#/,"#"),n.removeClass("active"),t.addClass("active"),e(r).closest(".tabs-content").children("li").removeClass("active").hide(),e(r).css("display","block").addClass("active")};e("dl.tabs dd a",this).on("click.fndtn",function(t){r(e(this).parent("dd"))}),window.location.hash&&(r(e('a[href="'+window.location.hash+'"]').parent("dd")),n.callback())}})(jQuery);/* - * jQuery Custom Forms Plugin 1.0 - * www.ZURB.com - * Copyright 2010, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ -(function(e){var t=function(){var t=[],n=null;return{adjust:function(t){var n=this;n.hidden=t.parents().andSelf().filter(":hidden"),n.hidden.each(function(){var t=e(this);n.tmp.push(t.attr("style")),t.css({visibility:"hidden",display:"block"})})},reset:function(){var t=this;t.hidden.each(function(n){var r=e(this),i=t.tmp[n];i===undefined?r.removeAttr("style"):r.attr("style",i)}),t.tmp=[],t.hidden=null}}};jQuery.foundation=jQuery.foundation||{},jQuery.foundation.customForms=jQuery.foundation.customForms||{},e.foundation.customForms.appendCustomMarkup=function(n){function i(t,n){var r=e(n).hide(),i=r.attr("type"),s=r.next("span.custom."+i);s.length===0&&(s=e('<span class="custom '+i+'"></span>').insertAfter(r)),s.toggleClass("checked",r.is(":checked")),s.toggleClass("disabled",r.is(":disabled"))}function s(n,r){var i=t(),s=e(r),o=s.next("div.custom.dropdown"),u=o.find("ul"),a=o.find(".current"),f=o.find(".selector"),l=s.find("option"),c=l.filter(":selected"),h=0,p="",d,v=!1;if(s.hasClass("no-custom"))return;if(o.length===0){var m=s.hasClass("small")?"small":s.hasClass("medium")?"medium":s.hasClass("large")?"large":s.hasClass("expand")?"expand":"";o=e('<div class="'+["custom","dropdown",m].join(" ")+'"><a href="#" class="selector"></a><ul /></div>"'),f=o.find(".selector"),u=o.find("ul"),p=e.map(l,function(e){return"<li>"+e.value+"</li>"}).join(""),u.append(p),v=o.prepend('<a href="#" class="current">'+c.html()+"</a>").find(".current"),s.after(o).hide()}else p=e.map(l,function(e){return"<li>"+e.value+"</li>"}).join(""),u.html("").append(p);o.toggleClass("disabled",s.is(":disabled")),d=u.find("li"),l.each(function(e){this.selected&&(d.eq(e).addClass("selected"),v&&v.html(this.value))}),u.css("width","inherit"),o.css("width","inherit"),o.is(".small, .medium, .large, .expand")||(o.addClass("open"),i.adjust(u),h=d.outerWidth()>h?d.outerWidth():h,i.reset(),o.removeClass("open"),o.width(h+18),u.width(h+16))}var r={disable_class:"js-disable-custom"};n=e.extend(r,n),e("form.custom input:radio[data-customforms!=disabled]").each(i),e("form.custom input:checkbox[data-customforms!=disabled]").each(i),e("form.custom select[data-customforms!=disabled]").each(s)};var n=function(t){var n=0,r=t.next();$options=t.find("option"),r.find("ul").html(""),$options.each(function(){$li=e("<li>"+e(this).html()+"</li>"),r.find("ul").append($li)}),$options.each(function(t){this.selected&&(r.find("li").eq(t).addClass("selected"),r.find(".current").html(e(this).html()))}),r.removeAttr("style").find("ul").removeAttr("style"),r.find("li").each(function(){r.addClass("open"),e(this).outerWidth()>n&&(n=e(this).outerWidth()),r.removeClass("open")}),r.css("width",n+18+"px"),r.find("ul").css("width",n+16+"px")},r=function(e){var t=e.prev(),n=t[0];0==t.is(":disabled")&&(n.checked=n.checked?!1:!0,e.toggleClass("checked"),t.trigger("change"))},i=function(t){var n=t.prev(),r=n[0];0==n.is(":disabled")&&(e('input:radio[name="'+n.attr("name")+'"]').each(function(){e(this).next().removeClass("checked")}),r.checked=r.checked?!1:!0,t.toggleClass("checked"),n.trigger("change"))};e("form.custom span.custom.checkbox").on("click",function(t){t.preventDefault(),t.stopPropagation(),r(e(this))}),e("form.custom span.custom.radio").on("click",function(t){t.preventDefault(),t.stopPropagation(),i(e(this))}),e("form.custom select").on("change",function(t){n(e(this))}),e("form.custom label").on("click",function(t){var n=e("#"+e(this).attr("for")),s,o;n.length!==0&&(n.attr("type")==="checkbox"?(t.preventDefault(),s=e(this).find("span.custom.checkbox"),r(s)):n.attr("type")==="radio"&&(t.preventDefault(),o=e(this).find("span.custom.radio"),i(o)))}),e("form.custom div.custom.dropdown a.current, form.custom div.custom.dropdown a.selector").live("click",function(t){var n=e(this),r=n.closest("div.custom.dropdown"),i=r.prev();t.preventDefault(),e("div.dropdown").removeClass("open");if(0==i.is(":disabled"))return r.toggleClass("open"),r.hasClass("open")?e(document).bind("click.customdropdown",function(t){r.removeClass("open"),e(document).unbind(".customdropdown")}):e(document).unbind(".customdropdown"),!1}),e("form.custom div.custom.dropdown li").live("click",function(t){var n=e(this),r=n.closest("div.custom.dropdown"),i=r.prev(),s=0;t.preventDefault(),t.stopPropagation(),e("div.dropdown").removeClass("open"),n.closest("ul").find("li").removeClass("selected"),n.addClass("selected"),r.removeClass("open").find("a.current").html(n.html()),n.closest("ul").find("li").each(function(e){n[0]==this&&(s=e)}),i[0].selectedIndex=s,i.trigger("change")}),e.fn.foundationCustomForms=e.foundation.customForms.appendCustomMarkup})(jQuery);/* - * jQuery Foundation Tooltip Plugin 2.0.1 - * http://foundation.zurb.com - * Copyright 2012, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ -/*jslint unparam: true, browser: true, indent: 2 */ -(function(e){"use strict";var t={bodyHeight:0,targetClass:".has-tip",tooltipClass:".tooltip",tipTemplate:function(e,n){return'<span data-selector="'+e+'" class="'+t.tooltipClass.substring(1)+'">'+n+'<span class="nub"></span></span>'}},n={init:function(r){return this.each(function(){var r=e("body");Modernizr.touch?(r.on("click.tooltip touchstart.tooltip touchend.tooltip",t.targetClass,function(r){r.preventDefault(),e(t.tooltipClass).hide(),n.showOrCreateTip(e(this))}),r.on("click.tooltip touchstart.tooltip touchend.tooltip",t.tooltipClass,function(t){t.preventDefault(),e(this).fadeOut(150)})):r.on("mouseover.tooltip mouseout.tooltip",t.targetClass,function(t){var r=e(this);t.type==="mouseover"?n.showOrCreateTip(r):t.type==="mouseout"&&n.hide(r)})})},showOrCreateTip:function(e){var t=n.getTip(e);t&&t.length>0?n.show(e):n.create(e)},getTip:function(r){var i=n.selector(r),s=null;return i&&(s=e("span[data-selector="+i+"]"+t.tooltipClass)),s.length>0?s:!1},selector:function(e){var t=e.attr("id"),n=e.data("selector");return t===undefined&&n===undefined&&(n="tooltip"+Math.random().toString(36).substring(7),e.attr("data-selector",n)),t?t:n},create:function(r){var i=e(t.tipTemplate(n.selector(r),e("<div>").text(r.attr("title")).html())),s=n.inheritable_classes(r);i.addClass(s).appendTo("body"),Modernizr.touch&&i.append('<span class="tap-to-close">tap to close </span>'),r.removeAttr("title"),n.show(r)},reposition:function(t,n,r){var i,s,o,u,a,f;n.css("visibility","hidden").show(),i=t.data("width"),s=n.children(".nub"),o=s.outerHeight(),u=s.outerWidth(),f=function(e,t,n,r,i,s){return e.css({top:t,bottom:r,left:i,right:n,width:s?s:"auto"}).end()},f(n,t.offset().top+t.outerHeight()+10,"auto","auto",t.offset().left,i),f(s,-o,"auto","auto",10),e(window).width()<767?(a=t.closest(".columns"),a.length<0&&(a=e("body")),n.width(a.outerWidth()-25).css("left",15).addClass("tip-override"),f(s,-o,"auto","auto",t.offset().left)):r.indexOf("tip-top")>-1?(f(n,t.offset().top-n.outerHeight()-o,"auto","auto",t.offset().left,i).removeClass("tip-override"),f(s,"auto","auto",-o,"auto")):r.indexOf("tip-left")>-1?(f(n,t.offset().top+t.outerHeight()/2-o,"auto","auto",t.offset().left-n.outerWidth()-10,i).removeClass("tip-override"),f(s,n.outerHeight()/2-o/2,-o,"auto","auto")):r.indexOf("tip-right")>-1&&(f(n,t.offset().top+t.outerHeight()/2-o,"auto","auto",t.offset().left+t.outerWidth()+10,i).removeClass("tip-override"),f(s,n.outerHeight()/2-o/2,"auto","auto",-o)),n.css("visibility","visible").hide()},inheritable_classes:function(t){var n=["tip-top","tip-left","tip-bottom","tip-right","noradius"],r=t.attr("class").split(" ").map(function(t,r){if(e.inArray(t,n)!==-1)return t}).join(" ");return e.trim(r)},show:function(e){var t=n.getTip(e);n.reposition(e,t,e.attr("class")),t.fadeIn(150)},hide:function(e){var t=n.getTip(e);t.fadeOut(150)},reload:function(){var t=e(this);return t.data("tooltips")?t.tooltips("destroy").tooltips("init"):t.tooltips("init")},destroy:function(){return this.each(function(){e(window).off(".tooltip"),e(t.targetClass).off(".tooltip"),e(t.tooltipClass).each(function(n){e(e(t.targetClass).get(n)).attr("title",e(this).text())}).remove()})}};e.fn.tooltips=function(t){if(n[t])return n[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeof t=="object"||!t)return n.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.tooltips")}})(jQuery);(function(e){e.fn.foundationAccordion=function(t){e(".accordion li",this).on("click.fndtn",function(){var t=e(this).children(".content").first();e(".accordion .content").not(t).hide().parent("li").removeClass("active"),t.show(0,function(){t.parent("li").addClass("active")})})}})(jQuery);/*! http://mths.be/placeholder v2.0.7 by @mathias */ -(function(e,t,n){function f(e){var t={},r=/^jQuery\d+$/;return n.each(e.attributes,function(e,n){n.specified&&!r.test(n.name)&&(t[n.name]=n.value)}),t}function l(e,r){var i=this,s=n(i);if(i.value==s.attr("placeholder")&&s.hasClass("placeholder"))if(s.data("placeholder-password")){s=s.hide().next().show().attr("id",s.removeAttr("id").data("placeholder-id"));if(e===!0)return s[0].value=r;s.focus()}else i.value="",s.removeClass("placeholder"),i==t.activeElement&&i.select()}function c(){var e,t=this,r=n(t),i=r,s=this.id;if(t.value==""){if(t.type=="password"){if(!r.data("placeholder-textinput")){try{e=r.clone().attr({type:"text"})}catch(o){e=n("<input>").attr(n.extend(f(this),{type:"text"}))}e.removeAttr("name").data({"placeholder-password":!0,"placeholder-id":s}).bind("focus.placeholder",l),r.data({"placeholder-textinput":e,"placeholder-id":s}).before(e)}r=r.removeAttr("id").hide().prev().attr("id",s).show()}r.addClass("placeholder"),r[0].value=r.attr("placeholder")}else r.removeClass("placeholder")}var r="placeholder"in t.createElement("input"),i="placeholder"in t.createElement("textarea"),s=n.fn,o=n.valHooks,u,a;r&&i?(a=s.placeholder=function(){return this},a.input=a.textarea=!0):(a=s.placeholder=function(){var e=this;return e.filter((r?"textarea":":input")+"[placeholder]").not(".placeholder").bind({"focus.placeholder":l,"blur.placeholder":c}).data("placeholder-enabled",!0).trigger("blur.placeholder"),e},a.input=r,a.textarea=i,u={get:function(e){var t=n(e);return t.data("placeholder-enabled")&&t.hasClass("placeholder")?"":e.value},set:function(e,r){var i=n(e);return i.data("placeholder-enabled")?(r==""?(e.value=r,e!=t.activeElement&&c.call(e)):i.hasClass("placeholder")?l.call(e,!0,r)||(e.value=r):e.value=r,i):e.value=r}},r||(o.input=u),i||(o.textarea=u),n(function(){n(t).delegate("form","submit.placeholder",function(){var e=n(".placeholder",this).each(l);setTimeout(function(){e.each(c)},10)})}),n(e).bind("beforeunload.placeholder",function(){n(".placeholder").each(function(){this.value=""})}))})(this,document,jQuery);(function(e){e.fn.foundationAlerts=function(t){var n=e.extend({callback:e.noop},t);e(".alert-box",this).delegate("a.close","click",function(t){t.preventDefault(),e(this).closest(".alert-box").fadeOut(function(t){e(this).remove(),n.callback()})})}})(jQuery); \ No newline at end of file diff --git a/theme/javascripts/jquery.foundation.accordion.js b/theme/javascripts/jquery.foundation.accordion.js deleted file mode 100644 index 287fe1c..0000000 --- a/theme/javascripts/jquery.foundation.accordion.js +++ /dev/null @@ -1,15 +0,0 @@ -(function( $ ){ - - $.fn.foundationAccordion = function(options) { - - $('.accordion li', this).on('click.fndtn', function() { - var flyout = $(this).children('.content').first(); - $('.accordion .content').not(flyout).hide().parent('li').removeClass('active'); - flyout.show(0, function() { - flyout.parent('li').addClass('active'); - }); - }); - - }; - -})( jQuery ); diff --git a/theme/javascripts/jquery.foundation.alerts.js b/theme/javascripts/jquery.foundation.alerts.js deleted file mode 100644 index 68fe208..0000000 --- a/theme/javascripts/jquery.foundation.alerts.js +++ /dev/null @@ -1,19 +0,0 @@ -(function( $ ){ - - $.fn.foundationAlerts = function(options) { - var settings = $.extend({ - callback: $.noop - }, options); - - $(".alert-box", this).delegate("a.close", "click", function(event) { - event.preventDefault(); - $(this).closest(".alert-box").fadeOut(function(event){ - $(this).remove(); - // Do something else after the alert closes - settings.callback(); - }); - }); - - }; - -})( jQuery ); diff --git a/theme/javascripts/jquery.foundation.buttons.js b/theme/javascripts/jquery.foundation.buttons.js deleted file mode 100644 index 663af9c..0000000 --- a/theme/javascripts/jquery.foundation.buttons.js +++ /dev/null @@ -1,45 +0,0 @@ -(function( $ ){ - - $.fn.foundationButtons = function(options) { - // Prevent event propagation on disabled buttons - $('.button.disabled', this).on('click.fndtn', function (event) { - event.preventDefault(); - }); - - $('.button.dropdown > ul', this).addClass('no-hover'); - - $('.button.dropdown', this).on('click.fndtn', function (e) { - e.stopPropagation(); - }); - $('.button.dropdown.split span', this).on('click.fndtn', function (e) { - e.preventDefault(); - $('.button.dropdown', this).not($(this).parent()).children('ul').removeClass('show-dropdown'); - $(this).siblings('ul').toggleClass('show-dropdown'); - }); - $('.button.dropdown', this).not('.split').on('click.fndtn', function (e) { - $('.button.dropdown', this).not(this).children('ul').removeClass('show-dropdown'); - $(this).children('ul').toggleClass('show-dropdown'); - }); - $('body, html').on('click.fndtn', function () { - $('.button.dropdown ul').removeClass('show-dropdown'); - }); - - // Positioning the Flyout List - var normalButtonHeight = $('.button.dropdown:not(.large):not(.small):not(.tiny)', this).outerHeight() - 1, - largeButtonHeight = $('.button.large.dropdown', this).outerHeight() - 1, - smallButtonHeight = $('.button.small.dropdown', this).outerHeight() - 1, - tinyButtonHeight = $('.button.tiny.dropdown', this).outerHeight() - 1; - - $('.button.dropdown:not(.large):not(.small):not(.tiny) > ul', this).css('top', normalButtonHeight); - $('.button.dropdown.large > ul', this).css('top', largeButtonHeight); - $('.button.dropdown.small > ul', this).css('top', smallButtonHeight); - $('.button.dropdown.tiny > ul', this).css('top', tinyButtonHeight); - - $('.button.dropdown.up:not(.large):not(.small):not(.tiny) > ul', this).css('top', 'auto').css('bottom', normalButtonHeight - 2); - $('.button.dropdown.up.large > ul', this).css('top', 'auto').css('bottom', largeButtonHeight - 2); - $('.button.dropdown.up.small > ul', this).css('top', 'auto').css('bottom', smallButtonHeight - 2); - $('.button.dropdown.up.tiny > ul', this).css('top', 'auto').css('bottom', tinyButtonHeight - 2); - - }; - -})( jQuery ); diff --git a/theme/javascripts/jquery.foundation.forms.js b/theme/javascripts/jquery.foundation.forms.js deleted file mode 100644 index bd64dbb..0000000 --- a/theme/javascripts/jquery.foundation.forms.js +++ /dev/null @@ -1,481 +0,0 @@ -/* - * jQuery Custom Forms Plugin 1.0 - * www.ZURB.com - * Copyright 2010, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ - -(function( $ ){ - - /** - * Helper object used to quickly adjust all hidden parent element's, display and visibility properties. - * This is currently used for the custom drop downs. When the dropdowns are contained within a reveal modal - * we cannot accurately determine the list-item elements width property, since the modal's display property is set - * to 'none'. - * - * This object will help us work around that problem. - * - * NOTE: This could also be plugin. - * - * @function hiddenFix - */ - var hiddenFix = function() { - // We'll use this to temporarily store style properties. - var tmp = [], - hidden = null; // We'll use this to set hidden parent elements. - - return { - /** - * Sets all hidden parent elements and self to visibile. - * - * @method adjust - * @param {jQuery Object} $child - */ - adjust : function( $child ) { - // Internal reference. - var _self = this; - - // Set all hidden parent elements, including this element. - _self.hidden = $child.parents().andSelf().filter( ":hidden" ); - - // Loop through all hidden elements. - _self.hidden.each( function() { - - // Cache the element. - var $elem = $( this ); - - // Store the style attribute. - // Undefined if element doesn't have a style attribute. - _self.tmp.push( $elem.attr( 'style' ) ); - - // Set the element's display property to block, - // but ensure it's visibility is hidden. - $elem.css( { 'visibility' : 'hidden', 'display' : 'block' } ); - }); - - }, // end adjust - - /** - * Resets the elements previous state. - * - * @method reset - */ - reset : function() { - // Internal reference. - var _self = this; - // Loop through our hidden element collection. - _self.hidden.each( function( i ) { - // Cache this element. - var $elem = $( this ), - _tmp = _self.tmp[ i ]; // Get the stored 'style' value for this element. - - // If the stored value is undefined. - if( _tmp === undefined ) - // Remove the style attribute. - $elem.removeAttr( 'style' ); - else - // Otherwise, reset the element style attribute. - $elem.attr( 'style', _tmp ); - - }); - // Reset the tmp array. - _self.tmp = []; - // Reset the hidden elements variable. - _self.hidden = null; - - } // end reset - - }; // end return - - }; - - jQuery.foundation = jQuery.foundation || {}; - jQuery.foundation.customForms = jQuery.foundation.customForms || {}; - - $.foundation.customForms.appendCustomMarkup = function ( options ) { - - var defaults = { - disable_class: "js-disable-custom" - }; - - options = $.extend( defaults, options ); - - function appendCustomMarkup(idx, sel) { - var $this = $(sel).hide(), - type = $this.attr('type'), - $span = $this.next('span.custom.' + type); - - if ($span.length === 0) { - $span = $('<span class="custom ' + type + '"></span>').insertAfter($this); - } - - $span.toggleClass('checked', $this.is(':checked')); - $span.toggleClass('disabled', $this.is(':disabled')); - } - - function appendCustomSelect(idx, sel) { - var hiddenFixObj = hiddenFix(); - // - // jQueryify the <select> element and cache it. - // - var $this = $( sel ), - // - // Find the custom drop down element. - // - $customSelect = $this.next( 'div.custom.dropdown' ), - // - // Find the custom select element within the custom drop down. - // - $customList = $customSelect.find( 'ul' ), - // - // Find the custom a.current element. - // - $selectCurrent = $customSelect.find( ".current" ), - // - // Find the custom a.selector element (the drop-down icon). - // - $selector = $customSelect.find( ".selector" ), - // - // Get the <options> from the <select> element. - // - $options = $this.find( 'option' ), - // - // Filter down the selected options - // - $selectedOption = $options.filter( ':selected' ), - // - // Initial max width. - // - maxWidth = 0, - // - // We'll use this variable to create the <li> elements for our custom select. - // - liHtml = '', - // - // We'll use this to cache the created <li> elements within our custom select. - // - $listItems - ; - var $currentSelect = false; - // - // Should we not create a custom list? - // - if ( $this.hasClass( 'no-custom' ) ) return; - - // - // Did we not create a custom select element yet? - // - if ( $customSelect.length === 0 ) { - // - // Let's create our custom select element! - // - - // - // Determine what select size to use. - // - var customSelectSize = $this.hasClass( 'small' ) ? 'small' : - $this.hasClass( 'medium' ) ? 'medium' : - $this.hasClass( 'large' ) ? 'large' : - $this.hasClass( 'expand' ) ? 'expand' : '' - ; - // - // Build our custom list. - // - $customSelect = $('<div class="' + ['custom', 'dropdown', customSelectSize ].join( ' ' ) + '"><a href="#" class="selector"></a><ul /></div>"'); - // - // Grab the selector element - // - $selector = $customSelect.find( ".selector" ); - // - // Grab the unordered list element from the custom list. - // - $customList = $customSelect.find( "ul" ); - // - // Build our <li> elements. - // - liHtml = $.map( $options, function( opt ) { return "<li>" + opt.value + "</li>"; } ).join( '' ); - // - // Append our <li> elements to the custom list (<ul>). - // - $customList.append( liHtml ); - // - // Insert the the currently selected list item before all other elements. - // Then, find the element and assign it to $currentSelect. - // - - $currentSelect = $customSelect.prepend( '<a href="#" class="current">' + $selectedOption.html() + '</a>' ).find( ".current" ); - // - // Add the custom select element after the <select> element. - // - $this.after( $customSelect ) - // - //then hide the <select> element. - // - .hide(); - - } else { - // - // Create our list item <li> elements. - // - liHtml = $.map( $options, function( opt ) { return "<li>" + opt.value + "</li>"; } ).join( '' ); - // - // Refresh the ul with options from the select in case the supplied markup doesn't match. - // Clear what's currently in the <ul> element. - // - $customList.html( '' ) - // - // Populate the list item <li> elements. - // - .append( liHtml ); - - } // endif $customSelect.length === 0 - - // - // Determine whether or not the custom select element should be disabled. - // - $customSelect.toggleClass( 'disabled', $this.is( ':disabled' ) ); - // - // Cache our List item elements. - // - $listItems = $customList.find( 'li' ); - - // - // Determine which elements to select in our custom list. - // - $options.each( function ( index ) { - - if ( this.selected ) { - // - // Add the selected class to the current li element - // - $listItems.eq( index ).addClass( 'selected' ); - // - // Update the current element with the option value. - // - if ($currentSelect) { - $currentSelect.html( this.value ); - } - - } - - }); - - // - // Update the custom <ul> list width property. - // - $customList.css( 'width', 'inherit' ); - // - // Set the custom select width property. - // - $customSelect.css( 'width', 'inherit' ); - - // - // If we're not specifying a predetermined form size. - // - if ( !$customSelect.is( '.small, .medium, .large, .expand' ) ) { - - // ------------------------------------------------------------------------------------ - // This is a work-around for when elements are contained within hidden parents. - // For example, when custom-form elements are inside of a hidden reveal modal. - // - // We need to display the current custom list element as well as hidden parent elements - // in order to properly calculate the list item element's width property. - // ------------------------------------------------------------------------------------- - - // - // Show the drop down. - // This should ensure that the list item's width values are properly calculated. - // - $customSelect.addClass( 'open' ); - // - // Quickly, display all parent elements. - // This should help us calcualate the width of the list item's within the drop down. - // - hiddenFixObj.adjust( $customList ); - // - // Grab the largest list item width. - // - maxWidth = ( $listItems.outerWidth() > maxWidth ) ? $listItems.outerWidth() : maxWidth; - // - // Okay, now reset the parent elements. - // This will hide them again. - // - hiddenFixObj.reset(); - // - // Finally, hide the drop down. - // - $customSelect.removeClass( 'open' ); - // - // Set the custom list width. - // - $customSelect.width( maxWidth + 18); - // - // Set the custom list element (<ul />) width. - // - $customList.width( maxWidth + 16 ); - - } // endif - - } - - $('form.custom input:radio[data-customforms!=disabled]').each(appendCustomMarkup); - $('form.custom input:checkbox[data-customforms!=disabled]').each(appendCustomMarkup); - $('form.custom select[data-customforms!=disabled]').each(appendCustomSelect); - }; - - var refreshCustomSelect = function($select) { - var maxWidth = 0, - $customSelect = $select.next(); - $options = $select.find('option'); - $customSelect.find('ul').html(''); - - $options.each(function () { - $li = $('<li>' + $(this).html() + '</li>'); - $customSelect.find('ul').append($li); - }); - - // re-populate - $options.each(function (index) { - if (this.selected) { - $customSelect.find('li').eq(index).addClass('selected'); - $customSelect.find('.current').html($(this).html()); - } - }); - - // fix width - $customSelect.removeAttr('style') - .find('ul').removeAttr('style'); - $customSelect.find('li').each(function () { - $customSelect.addClass('open'); - if ($(this).outerWidth() > maxWidth) { - maxWidth = $(this).outerWidth(); - } - $customSelect.removeClass('open'); - }); - $customSelect.css('width', maxWidth + 18 + 'px'); - $customSelect.find('ul').css('width', maxWidth + 16 + 'px'); - - }; - - var toggleCheckbox = function($element) { - var $input = $element.prev(), - input = $input[0]; - - if (false == $input.is(':disabled')) { - input.checked = ((input.checked) ? false : true); - $element.toggleClass('checked'); - - $input.trigger('change'); - } - }; - - var toggleRadio = function($element) { - var $input = $element.prev(), - input = $input[0]; - - if (false == $input.is(':disabled')) { - $('input:radio[name="' + $input.attr('name') + '"]').each(function () { - $(this).next().removeClass('checked'); - }); - input.checked = ((input.checked) ? false : true); - $element.toggleClass('checked'); - - $input.trigger('change'); - } - }; - - $('form.custom span.custom.checkbox').on('click', function (event) { - event.preventDefault(); - event.stopPropagation(); - - toggleCheckbox($(this)); - }); - - $('form.custom span.custom.radio').on('click', function (event) { - event.preventDefault(); - event.stopPropagation(); - - toggleRadio($(this)); - }); - - $('form.custom select').on('change', function (event) { - refreshCustomSelect($(this)); - }); - - $('form.custom label').on('click', function (event) { - var $associatedElement = $('#' + $(this).attr('for')), - $customCheckbox, - $customRadio; - if ($associatedElement.length !== 0) { - if ($associatedElement.attr('type') === 'checkbox') { - event.preventDefault(); - $customCheckbox = $(this).find('span.custom.checkbox'); - toggleCheckbox($customCheckbox); - } else if ($associatedElement.attr('type') === 'radio') { - event.preventDefault(); - $customRadio = $(this).find('span.custom.radio'); - toggleRadio($customRadio); - } - } - }); - - $('form.custom div.custom.dropdown a.current, form.custom div.custom.dropdown a.selector').live('click', function (event) { - var $this = $(this), - $dropdown = $this.closest('div.custom.dropdown'), - $select = $dropdown.prev(); - - event.preventDefault(); - $('div.dropdown').removeClass('open'); - - if (false == $select.is(':disabled')) { - $dropdown.toggleClass('open'); - - if ($dropdown.hasClass('open')) { - $(document).bind('click.customdropdown', function (event) { - $dropdown.removeClass('open'); - $(document).unbind('.customdropdown'); - }); - } else { - $(document).unbind('.customdropdown'); - } - return false; - } - }); - - $('form.custom div.custom.dropdown li').live('click', function (event) { - var $this = $(this), - $customDropdown = $this.closest('div.custom.dropdown'), - $select = $customDropdown.prev(), - selectedIndex = 0; - - event.preventDefault(); - event.stopPropagation(); - $('div.dropdown').removeClass('open'); - - $this - .closest('ul') - .find('li') - .removeClass('selected'); - $this.addClass('selected'); - - $customDropdown - .removeClass('open') - .find('a.current') - .html($this.html()); - - $this.closest('ul').find('li').each(function (index) { - if ($this[0] == this) { - selectedIndex = index; - } - - }); - $select[0].selectedIndex = selectedIndex; - - $select.trigger('change'); - }); - - - $.fn.foundationCustomForms = $.foundation.customForms.appendCustomMarkup; - -})( jQuery ); diff --git a/theme/javascripts/jquery.foundation.navigation.js b/theme/javascripts/jquery.foundation.navigation.js deleted file mode 100644 index ea8f58a..0000000 --- a/theme/javascripts/jquery.foundation.navigation.js +++ /dev/null @@ -1,30 +0,0 @@ -(function( $ ){ - - $.fn.foundationNavigation = function(options) { - - var lockNavBar = false; - // Windows Phone, sadly, does not register touch events :( - if (Modernizr.touch || navigator.userAgent.match(/Windows Phone/i)) { - $('.nav-bar a.flyout-toggle', this).on('click.fndtn touchstart.fndtn', function(e) { - e.preventDefault(); - var flyout = $(this).siblings('.flyout').first(); - if (lockNavBar === false) { - $('.nav-bar .flyout').not(flyout).slideUp(500); - flyout.slideToggle(500, function(){ - lockNavBar = false; - }); - } - lockNavBar = true; - }); - $('.nav-bar>li.has-flyout', this).addClass('is-touch'); - } else { - $('.nav-bar>li.has-flyout', this).hover(function() { - $(this).children('.flyout').show(); - }, function() { - $(this).children('.flyout').hide(); - }); - } - - }; - -})( jQuery ); diff --git a/theme/javascripts/jquery.foundation.orbit.js b/theme/javascripts/jquery.foundation.orbit.js deleted file mode 100644 index e5e2923..0000000 --- a/theme/javascripts/jquery.foundation.orbit.js +++ /dev/null @@ -1,633 +0,0 @@ -/* - * jQuery Orbit Plugin 1.4.0 - * www.ZURB.com/playground - * Copyright 2010, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ - - -(function($) { - 'use strict'; - $.fn.findFirstImage = function () { - return this.first() - .find('img') - .andSelf().filter('img') - .first(); - }; - - var ORBIT = { - - defaults: { - animation: 'horizontal-push', // fade, horizontal-slide, vertical-slide, horizontal-push, vertical-push - animationSpeed: 600, // how fast animtions are - timer: true, // true or false to have the timer - advanceSpeed: 4000, // if timer is enabled, time between transitions - pauseOnHover: false, // if you hover pauses the slider - startClockOnMouseOut: false, // if clock should start on MouseOut - startClockOnMouseOutAfter: 1000, // how long after MouseOut should the timer start again - directionalNav: true, // manual advancing directional navs - directionalNavRightText: 'Right', // text of right directional element for accessibility - directionalNavLeftText: 'Left', // text of left directional element for accessibility - captions: true, // do you want captions? - captionAnimation: 'fade', // fade, slideOpen, none - captionAnimationSpeed: 600, // if so how quickly should they animate in - resetTimerOnClick: false, // true resets the timer instead of pausing slideshow progress on manual navigation - bullets: false, // true or false to activate the bullet navigation - bulletThumbs: false, // thumbnails for the bullets - bulletThumbLocation: '', // location from this file where thumbs will be - afterSlideChange: $.noop, // empty function - afterLoadComplete: $.noop, //callback to execute after everything has been loaded - fluid: true, - centerBullets: true // center bullet nav with js, turn this off if you want to position the bullet nav manually - }, - - activeSlide: 0, - numberSlides: 0, - orbitWidth: null, - orbitHeight: null, - locked: null, - timerRunning: null, - degrees: 0, - wrapperHTML: '<div class="orbit-wrapper" />', - timerHTML: '<div class="timer"><span class="mask"><span class="rotator"></span></span><span class="pause"></span></div>', - captionHTML: '<div class="orbit-caption"></div>', - directionalNavHTML: '<div class="slider-nav"><span class="right"></span><span class="left"></span></div>', - bulletHTML: '<ul class="orbit-bullets"></ul>', - - init: function (element, options) { - var $imageSlides, - imagesLoadedCount = 0, - self = this; - - // Bind functions to correct context - this.clickTimer = $.proxy(this.clickTimer, this); - this.addBullet = $.proxy(this.addBullet, this); - this.resetAndUnlock = $.proxy(this.resetAndUnlock, this); - this.stopClock = $.proxy(this.stopClock, this); - this.startTimerAfterMouseLeave = $.proxy(this.startTimerAfterMouseLeave, this); - this.clearClockMouseLeaveTimer = $.proxy(this.clearClockMouseLeaveTimer, this); - this.rotateTimer = $.proxy(this.rotateTimer, this); - - this.options = $.extend({}, this.defaults, options); - if (this.options.timer === 'false') this.options.timer = false; - if (this.options.captions === 'false') this.options.captions = false; - if (this.options.directionalNav === 'false') this.options.directionalNav = false; - - this.$element = $(element); - this.$wrapper = this.$element.wrap(this.wrapperHTML).parent(); - this.$slides = this.$element.children('img, a, div'); - - this.$element.bind('orbit.next', function () { - self.shift('next'); - }); - - this.$element.bind('orbit.prev', function () { - self.shift('prev'); - }); - - this.$element.bind('orbit.goto', function (event, index) { - self.shift(index); - }); - - this.$element.bind('orbit.start', function (event, index) { - self.startClock(); - }); - - this.$element.bind('orbit.stop', function (event, index) { - self.stopClock(); - }); - - $imageSlides = this.$slides.filter('img'); - - if ($imageSlides.length === 0) { - this.loaded(); - } else { - $imageSlides.bind('imageready', function () { - imagesLoadedCount += 1; - if (imagesLoadedCount === $imageSlides.length) { - self.loaded(); - } - }); - } - }, - - loaded: function () { - this.$element - .addClass('orbit') - .css({width: '1px', height: '1px'}); - - this.$slides.addClass('orbit-slide'); - - this.setDimentionsFromLargestSlide(); - this.updateOptionsIfOnlyOneSlide(); - this.setupFirstSlide(); - - if (this.options.timer) { - this.setupTimer(); - this.startClock(); - } - - if (this.options.captions) { - this.setupCaptions(); - } - - if (this.options.directionalNav) { - this.setupDirectionalNav(); - } - - if (this.options.bullets) { - this.setupBulletNav(); - this.setActiveBullet(); - } - - this.options.afterLoadComplete.call(this); - }, - - currentSlide: function () { - return this.$slides.eq(this.activeSlide); - }, - - setDimentionsFromLargestSlide: function () { - //Collect all slides and set slider size of largest image - var self = this, - $fluidPlaceholder; - - self.$element.add(self.$wrapper).width(this.$slides.first().outerWidth()); - self.$element.add(self.$wrapper).height(this.$slides.first().height()); - self.orbitWidth = this.$slides.first().outerWidth(); - self.orbitHeight = this.$slides.first().height(); - $fluidPlaceholder = this.$slides.first().findFirstImage().clone(); - - - this.$slides.each(function () { - var slide = $(this), - slideWidth = slide.outerWidth(), - slideHeight = slide.height(); - - if (slideWidth > self.$element.outerWidth()) { - self.$element.add(self.$wrapper).width(slideWidth); - self.orbitWidth = self.$element.outerWidth(); - } - if (slideHeight > self.$element.height()) { - self.$element.add(self.$wrapper).height(slideHeight); - self.orbitHeight = self.$element.height(); - $fluidPlaceholder = $(this).findFirstImage().clone(); - } - self.numberSlides += 1; - }); - - if (this.options.fluid) { - if (typeof this.options.fluid === "string") { - $fluidPlaceholder = $('<img src="http://placehold.it/' + this.options.fluid + '" />') - } - - self.$element.prepend($fluidPlaceholder); - $fluidPlaceholder.addClass('fluid-placeholder'); - self.$element.add(self.$wrapper).css({width: 'inherit'}); - self.$element.add(self.$wrapper).css({height: 'inherit'}); - - $(window).bind('resize', function () { - self.orbitWidth = self.$element.outerWidth(); - self.orbitHeight = self.$element.height(); - }); - } - }, - - //Animation locking functions - lock: function () { - this.locked = true; - }, - - unlock: function () { - this.locked = false; - }, - - updateOptionsIfOnlyOneSlide: function () { - if(this.$slides.length === 1) { - this.options.directionalNav = false; - this.options.timer = false; - this.options.bullets = false; - } - }, - - setupFirstSlide: function () { - //Set initial front photo z-index and fades it in - var self = this; - this.$slides.first() - .css({"z-index" : 3}) - .fadeIn(function() { - //brings in all other slides IF css declares a display: none - self.$slides.css({"display":"block"}) - }); - }, - - startClock: function () { - var self = this; - - if(!this.options.timer) { - return false; - } - - if (this.$timer.is(':hidden')) { - this.clock = setInterval(function () { - self.$element.trigger('orbit.next'); - }, this.options.advanceSpeed); - } else { - this.timerRunning = true; - this.$pause.removeClass('active'); - this.clock = setInterval(this.rotateTimer, this.options.advanceSpeed / 180, false); - } - }, - - rotateTimer: function (reset) { - var degreeCSS = "rotate(" + this.degrees + "deg)"; - this.degrees += 2; - this.$rotator.css({ - "-webkit-transform": degreeCSS, - "-moz-transform": degreeCSS, - "-o-transform": degreeCSS - }); - if(this.degrees > 180) { - this.$rotator.addClass('move'); - this.$mask.addClass('move'); - } - if(this.degrees > 360 || reset) { - this.$rotator.removeClass('move'); - this.$mask.removeClass('move'); - this.degrees = 0; - this.$element.trigger('orbit.next'); - } - }, - - stopClock: function () { - if (!this.options.timer) { - return false; - } else { - this.timerRunning = false; - clearInterval(this.clock); - this.$pause.addClass('active'); - } - }, - - setupTimer: function () { - this.$timer = $(this.timerHTML); - this.$wrapper.append(this.$timer); - - this.$rotator = this.$timer.find('.rotator'); - this.$mask = this.$timer.find('.mask'); - this.$pause = this.$timer.find('.pause'); - - this.$timer.click(this.clickTimer); - - if (this.options.startClockOnMouseOut) { - this.$wrapper.mouseleave(this.startTimerAfterMouseLeave); - this.$wrapper.mouseenter(this.clearClockMouseLeaveTimer); - } - - if (this.options.pauseOnHover) { - this.$wrapper.mouseenter(this.stopClock); - } - }, - - startTimerAfterMouseLeave: function () { - var self = this; - - this.outTimer = setTimeout(function() { - if(!self.timerRunning){ - self.startClock(); - } - }, this.options.startClockOnMouseOutAfter) - }, - - clearClockMouseLeaveTimer: function () { - clearTimeout(this.outTimer); - }, - - clickTimer: function () { - if(!this.timerRunning) { - this.startClock(); - } else { - this.stopClock(); - } - }, - - setupCaptions: function () { - this.$caption = $(this.captionHTML); - this.$wrapper.append(this.$caption); - this.setCaption(); - }, - - setCaption: function () { - var captionLocation = this.currentSlide().attr('data-caption'), - captionHTML; - - if (!this.options.captions) { - return false; - } - - //Set HTML for the caption if it exists - if (captionLocation) { - //if caption text is blank, don't show captions - if ($.trim($(captionLocation).text()).length < 1){ - return false; - } - captionHTML = $(captionLocation).html(); //get HTML from the matching HTML entity - this.$caption - .attr('id', captionLocation) // Add ID caption TODO why is the id being set? - .html(captionHTML); // Change HTML in Caption - //Animations for Caption entrances - switch (this.options.captionAnimation) { - case 'none': - this.$caption.show(); - break; - case 'fade': - this.$caption.fadeIn(this.options.captionAnimationSpeed); - break; - case 'slideOpen': - this.$caption.slideDown(this.options.captionAnimationSpeed); - break; - } - } else { - //Animations for Caption exits - switch (this.options.captionAnimation) { - case 'none': - this.$caption.hide(); - break; - case 'fade': - this.$caption.fadeOut(this.options.captionAnimationSpeed); - break; - case 'slideOpen': - this.$caption.slideUp(this.options.captionAnimationSpeed); - break; - } - } - }, - - setupDirectionalNav: function () { - var self = this, - $directionalNav = $(this.directionalNavHTML); - - $directionalNav.find('.right').html(this.options.directionalNavRightText); - $directionalNav.find('.left').html(this.options.directionalNavLeftText); - - this.$wrapper.append($directionalNav); - - this.$wrapper.find('.left').click(function () { - self.stopClock(); - if (self.options.resetTimerOnClick) { - self.rotateTimer(true); - self.startClock(); - } - self.$element.trigger('orbit.prev'); - }); - - this.$wrapper.find('.right').click(function () { - self.stopClock(); - if (self.options.resetTimerOnClick) { - self.rotateTimer(true); - self.startClock(); - } - self.$element.trigger('orbit.next'); - }); - }, - - setupBulletNav: function () { - this.$bullets = $(this.bulletHTML); - this.$wrapper.append(this.$bullets); - this.$slides.each(this.addBullet); - this.$element.addClass('with-bullets'); - if (this.options.centerBullets) this.$bullets.css('margin-left', -this.$bullets.outerWidth() / 2); - }, - - addBullet: function (index, slide) { - var position = index + 1, - $li = $('<li>' + (position) + '</li>'), - thumbName, - self = this; - - if (this.options.bulletThumbs) { - thumbName = $(slide).attr('data-thumb'); - if (thumbName) { - $li - .addClass('has-thumb') - .css({background: "url(" + this.options.bulletThumbLocation + thumbName + ") no-repeat"});; - } - } - this.$bullets.append($li); - $li.data('index', index); - $li.click(function () { - self.stopClock(); - if (self.options.resetTimerOnClick) { - self.rotateTimer(true); - self.startClock(); - } - self.$element.trigger('orbit.goto', [$li.data('index')]) - }); - }, - - setActiveBullet: function () { - if(!this.options.bullets) { return false; } else { - this.$bullets.find('li') - .removeClass('active') - .eq(this.activeSlide) - .addClass('active'); - } - }, - - resetAndUnlock: function () { - this.$slides - .eq(this.prevActiveSlide) - .css({"z-index" : 1}); - this.unlock(); - this.options.afterSlideChange.call(this, this.$slides.eq(this.prevActiveSlide), this.$slides.eq(this.activeSlide)); - }, - - shift: function (direction) { - var slideDirection = direction; - - //remember previous activeSlide - this.prevActiveSlide = this.activeSlide; - - //exit function if bullet clicked is same as the current image - if (this.prevActiveSlide == slideDirection) { return false; } - - if (this.$slides.length == "1") { return false; } - if (!this.locked) { - this.lock(); - //deduce the proper activeImage - if (direction == "next") { - this.activeSlide++; - if (this.activeSlide == this.numberSlides) { - this.activeSlide = 0; - } - } else if (direction == "prev") { - this.activeSlide-- - if (this.activeSlide < 0) { - this.activeSlide = this.numberSlides - 1; - } - } else { - this.activeSlide = direction; - if (this.prevActiveSlide < this.activeSlide) { - slideDirection = "next"; - } else if (this.prevActiveSlide > this.activeSlide) { - slideDirection = "prev" - } - } - - //set to correct bullet - this.setActiveBullet(); - - //set previous slide z-index to one below what new activeSlide will be - this.$slides - .eq(this.prevActiveSlide) - .css({"z-index" : 2}); - - //fade - if (this.options.animation == "fade") { - this.$slides - .eq(this.activeSlide) - .css({"opacity" : 0, "z-index" : 3}) - .animate({"opacity" : 1}, this.options.animationSpeed, this.resetAndUnlock); - } - - //horizontal-slide - if (this.options.animation == "horizontal-slide") { - if (slideDirection == "next") { - this.$slides - .eq(this.activeSlide) - .css({"left": this.orbitWidth, "z-index" : 3}) - .animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock); - } - if (slideDirection == "prev") { - this.$slides - .eq(this.activeSlide) - .css({"left": -this.orbitWidth, "z-index" : 3}) - .animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock); - } - } - - //vertical-slide - if (this.options.animation == "vertical-slide") { - if (slideDirection == "prev") { - this.$slides - .eq(this.activeSlide) - .css({"top": this.orbitHeight, "z-index" : 3}) - .animate({"top" : 0}, this.options.animationSpeed, this.resetAndUnlock); - } - if (slideDirection == "next") { - this.$slides - .eq(this.activeSlide) - .css({"top": -this.orbitHeight, "z-index" : 3}) - .animate({"top" : 0}, this.options.animationSpeed, this.resetAndUnlock); - } - } - - //horizontal-push - if (this.options.animation == "horizontal-push") { - if (slideDirection == "next") { - this.$slides - .eq(this.activeSlide) - .css({"left": this.orbitWidth, "z-index" : 3}) - .animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock); - this.$slides - .eq(this.prevActiveSlide) - .animate({"left" : -this.orbitWidth}, this.options.animationSpeed); - } - if (slideDirection == "prev") { - this.$slides - .eq(this.activeSlide) - .css({"left": -this.orbitWidth, "z-index" : 3}) - .animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock); - this.$slides - .eq(this.prevActiveSlide) - .animate({"left" : this.orbitWidth}, this.options.animationSpeed); - } - } - - //vertical-push - if (this.options.animation == "vertical-push") { - if (slideDirection == "next") { - this.$slides - .eq(this.activeSlide) - .css({top: -this.orbitHeight, "z-index" : 3}) - .animate({top : 0}, this.options.animationSpeed, this.resetAndUnlock); - this.$slides - .eq(this.prevActiveSlide) - .animate({top : this.orbitHeight}, this.options.animationSpeed); - } - if (slideDirection == "prev") { - this.$slides - .eq(this.activeSlide) - .css({top: this.orbitHeight, "z-index" : 3}) - .animate({top : 0}, this.options.animationSpeed, this.resetAndUnlock); - this.$slides - .eq(this.prevActiveSlide) - .animate({top : -this.orbitHeight}, this.options.animationSpeed); - } - } - - this.setCaption(); - } - } - }; - - $.fn.orbit = function (options) { - return this.each(function () { - var orbit = $.extend({}, ORBIT); - orbit.init(this, options); - }); - }; - -})(jQuery); - -/*! - * jQuery imageready Plugin - * http://www.zurb.com/playground/ - * - * Copyright 2011, ZURB - * Released under the MIT License - */ -(function ($) { - - var options = {}; - - $.event.special.imageready = { - - setup: function (data, namespaces, eventHandle) { - options = data || options; - }, - - add: function (handleObj) { - var $this = $(this), - src; - - if ( this.nodeType === 1 && this.tagName.toLowerCase() === 'img' && this.src !== '' ) { - if (options.forceLoad) { - src = $this.attr('src'); - $this.attr('src', ''); - bindToLoad(this, handleObj.handler); - $this.attr('src', src); - } else if ( this.complete || this.readyState === 4 ) { - handleObj.handler.apply(this, arguments); - } else { - bindToLoad(this, handleObj.handler); - } - } - }, - - teardown: function (namespaces) { - $(this).unbind('.imageready'); - } - }; - - function bindToLoad(element, callback) { - var $this = $(element); - - $this.bind('load.imageready', function () { - callback.apply(element, arguments); - $this.unbind('load.imageready'); - }); - } - -}(jQuery)); \ No newline at end of file diff --git a/theme/javascripts/jquery.foundation.reveal.js b/theme/javascripts/jquery.foundation.reveal.js deleted file mode 100644 index 7cf33cc..0000000 --- a/theme/javascripts/jquery.foundation.reveal.js +++ /dev/null @@ -1,773 +0,0 @@ -/* - * jQuery Reveal Plugin 1.1 - * www.ZURB.com - * Copyright 2010, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ -/*globals jQuery */ - -( function ( $ ) { - 'use strict'; - // - // Global variable. - // Helps us determine if the current modal is being queued for display. - // - var modalQueued = false; - - // - // Bind the live 'click' event to all anchor elemnets with the data-reveal-id attribute. - // - $( 'a[data-reveal-id]' ).live( 'click', function ( event ) { - // - // Prevent default action of the event. - // - event.preventDefault(); - // - // Get the clicked anchor data-reveal-id attribute value. - // - var modalLocation = $( this ).attr( 'data-reveal-id' ); - // - // Find the element with that modalLocation id and call the reveal plugin. - // - $( '#' + modalLocation ).reveal( $( this ).data() ); - - }); - - /** - * @module reveal - * @property {Object} [options] Reveal options - */ - $.fn.reveal = function ( options ) { - /* - * Cache the document object. - */ - var $doc = $( document ), - /* - * Default property values. - */ - defaults = { - /** - * Possible options: fade, fadeAndPop, none - * - * @property animation - * @type {String} - * @default fadeAndPop - */ - animation: 'fadeAndPop', - /** - * Speed at which the reveal should show. How fast animtions are. - * - * @property animationSpeed - * @type {Integer} - * @default 300 - */ - animationSpeed: 300, - /** - * Should the modal close when the background is clicked? - * - * @property closeOnBackgroundClick - * @type {Boolean} - * @default true - */ - closeOnBackgroundClick: true, - /** - * Specify a class name for the 'close modal' element. - * This element will close an open modal. - * - @example - <a href='#close' class='close-reveal-modal'>Close Me</a> - * - * @property dismissModalClass - * @type {String} - * @default close-reveal-modal - */ - dismissModalClass: 'close-reveal-modal', - /** - * Specify a callback function that triggers 'before' the modal opens. - * - * @property open - * @type {Function} - * @default function(){} - */ - open: $.noop, - /** - * Specify a callback function that triggers 'after' the modal is opened. - * - * @property opened - * @type {Function} - * @default function(){} - */ - opened: $.noop, - /** - * Specify a callback function that triggers 'before' the modal prepares to close. - * - * @property close - * @type {Function} - * @default function(){} - */ - close: $.noop, - /** - * Specify a callback function that triggers 'after' the modal is closed. - * - * @property closed - * @type {Function} - * @default function(){} - */ - closed: $.noop - } - ; - // - // Extend the default options. - // This replaces the passed in option (options) values with default values. - // - options = $.extend( {}, defaults, options ); - - // - // Apply the plugin functionality to each element in the jQuery collection. - // - return this.each( function () { - // - // Cache the modal element - // - var modal = $( this ), - // - // Get the current css 'top' property value in decimal format. - // - topMeasure = parseInt( modal.css( 'top' ), 10 ), - // - // Calculate the top offset. - // - topOffset = modal.height() + topMeasure, - // - // Helps determine if the modal is locked. - // This way we keep the modal from triggering while it's in the middle of animating. - // - locked = false, - // - // Get the modal background element. - // - modalBg = $( '.reveal-modal-bg' ), - // - // Show modal properties - // - cssOpts = { - // - // Used, when we show the modal. - // - open : { - // - // Set the 'top' property to the document scroll minus the calculated top offset. - // - 'top': 0, - // - // Opacity gets set to 0. - // - 'opacity': 0, - // - // Show the modal - // - 'visibility': 'visible', - // - // Ensure it's displayed as a block element. - // - 'display': 'block' - }, - // - // Used, when we hide the modal. - // - close : { - // - // Set the default 'top' property value. - // - 'top': topMeasure, - // - // Has full opacity. - // - 'opacity': 1, - // - // Hide the modal - // - 'visibility': 'hidden', - // - // Ensure the elment is hidden. - // - 'display': 'none' - } - - }, - // - // Initial closeButton variable. - // - $closeButton - ; - - // - // Do we have a modal background element? - // - if ( modalBg.length === 0 ) { - // - // No we don't. So, let's create one. - // - modalBg = $( '<div />', { 'class' : 'reveal-modal-bg' } ) - // - // Then insert it after the modal element. - // - .insertAfter( modal ); - // - // Now, fade it out a bit. - // - modalBg.fadeTo( 'fast', 0.8 ); - } - - // - // Helper Methods - // - - /** - * Unlock the modal for animation. - * - * @method unlockModal - */ - function unlockModal() { - locked = false; - } - - /** - * Lock the modal to prevent further animation. - * - * @method lockModal - */ - function lockModal() { - locked = true; - } - - /** - * Closes all open modals. - * - * @method closeOpenModal - */ - function closeOpenModals() { - // - // Get all reveal-modal elements with the .open class. - // - var $openModals = $( ".reveal-modal.open" ); - // - // Do we have modals to close? - // - if ( $openModals.length === 1 ) { - // - // Set the modals for animation queuing. - // - modalQueued = true; - // - // Trigger the modal close event. - // - $openModals.trigger( "reveal:close" ); - } - - } - /** - * Animates the modal opening. - * Handles the modal 'open' event. - * - * @method openAnimation - */ - function openAnimation() { - // - // First, determine if we're in the middle of animation. - // - if ( !locked ) { - // - // We're not animating, let's lock the modal for animation. - // - lockModal(); - // - // Close any opened modals. - // - closeOpenModals(); - // - // Now, add the open class to this modal. - // - modal.addClass( "open" ); - - // - // Are we executing the 'fadeAndPop' animation? - // - if ( options.animation === "fadeAndPop" ) { - // - // Yes, we're doing the 'fadeAndPop' animation. - // Okay, set the modal css properties. - // - // - // Set the 'top' property to the document scroll minus the calculated top offset. - // - cssOpts.open.top = $doc.scrollTop() - topOffset; - // - // Flip the opacity to 0. - // - cssOpts.open.opacity = 0; - // - // Set the css options. - // - modal.css( cssOpts.open ); - // - // Fade in the background element, at half the speed of the modal element. - // So, faster than the modal element. - // - modalBg.fadeIn( options.animationSpeed / 2 ); - - // - // Let's delay the next animation queue. - // We'll wait until the background element is faded in. - // - modal.delay( options.animationSpeed / 2 ) - // - // Animate the following css properties. - // - .animate( { - // - // Set the 'top' property to the document scroll plus the calculated top measure. - // - "top": $doc.scrollTop() + topMeasure + 'px', - // - // Set it to full opacity. - // - "opacity": 1 - - }, - /* - * Fade speed. - */ - options.animationSpeed, - /* - * End of animation callback. - */ - function () { - // - // Trigger the modal reveal:opened event. - // This should trigger the functions set in the options.opened property. - // - modal.trigger( 'reveal:opened' ); - - }); // end of animate. - - } // end if 'fadeAndPop' - - // - // Are executing the 'fade' animation? - // - if ( options.animation === "fade" ) { - // - // Yes, were executing 'fade'. - // Okay, let's set the modal properties. - // - cssOpts.open.top = $doc.scrollTop() + topMeasure; - // - // Flip the opacity to 0. - // - cssOpts.open.opacity = 0; - // - // Set the css options. - // - modal.css( cssOpts.open ); - // - // Fade in the modal background at half the speed of the modal. - // So, faster than modal. - // - modalBg.fadeIn( options.animationSpeed / 2 ); - - // - // Delay the modal animation. - // Wait till the modal background is done animating. - // - modal.delay( options.animationSpeed / 2 ) - // - // Now animate the modal. - // - .animate( { - // - // Set to full opacity. - // - "opacity": 1 - }, - - /* - * Animation speed. - */ - options.animationSpeed, - - /* - * End of animation callback. - */ - function () { - // - // Trigger the modal reveal:opened event. - // This should trigger the functions set in the options.opened property. - // - modal.trigger( 'reveal:opened' ); - - }); - - } // end if 'fade' - - // - // Are we not animating? - // - if ( options.animation === "none" ) { - // - // We're not animating. - // Okay, let's set the modal css properties. - // - // - // Set the top property. - // - cssOpts.open.top = $doc.scrollTop() + topMeasure; - // - // Set the opacity property to full opacity, since we're not fading (animating). - // - cssOpts.open.opacity = 1; - // - // Set the css property. - // - modal.css( cssOpts.open ); - // - // Show the modal Background. - // - modalBg.css( { "display": "block" } ); - // - // Trigger the modal opened event. - // - modal.trigger( 'reveal:opened' ); - - } // end if animating 'none' - - }// end if !locked - - }// end openAnimation - - // - // Bind the reveal 'open' event. - // When the event is triggered, openAnimation is called - // along with any function set in the options.open property. - // - modal.bind( 'reveal:open.reveal', openAnimation ); - - /** - * Closes the modal element(s) - * Handles the modal 'close' event. - * - * @method closeAnimation - */ - function closeAnimation() { - // - // First, determine if we're in the middle of animation. - // - if ( !locked ) { - // - // We're not animating, let's lock the modal for animation. - // - lockModal(); - // - // Clear the modal of the open class. - // - modal.removeClass( "open" ); - - // - // Are we using the 'fadeAndPop' animation? - // - if ( options.animation === "fadeAndPop" ) { - // - // Yes, okay, let's set the animation properties. - // - modal.animate( { - // - // Set the top property to the document scrollTop minus calculated topOffset. - // - "top": $doc.scrollTop() - topOffset + 'px', - // - // Fade the modal out, by using the opacity property. - // - "opacity": 0 - - }, - /* - * Fade speed. - */ - options.animationSpeed / 2, - /* - * End of animation callback. - */ - function () { - // - // Set the css hidden options. - // - modal.css( cssOpts.close ); - - }); - // - // Is the modal animation queued? - // - if ( !modalQueued ) { - // - // Oh, the modal(s) are mid animating. - // Let's delay the animation queue. - // - modalBg.delay( options.animationSpeed ) - // - // Fade out the modal background. - // - .fadeOut( - /* - * Animation speed. - */ - options.animationSpeed, - /* - * End of animation callback. - */ - function () { - // - // Trigger the modal 'closed' event. - // This should trigger any method set in the options.closed property. - // - modal.trigger( 'reveal:closed' ); - - }); - - } else { - // - // We're not mid queue. - // Trigger the modal 'closed' event. - // This should trigger any method set in the options.closed propety. - // - modal.trigger( 'reveal:closed' ); - - } // end if !modalQueued - // - // Reset the modalQueued variable. - // - modalQueued = false; - - } // end if animation 'fadeAndPop' - - // - // Are we using the 'fade' animation. - // - if ( options.animation === "fade" ) { - // - // Yes, we're using the 'fade' animation. - // - modal.animate( { "opacity" : 0 }, - /* - * Animation speed. - */ - options.animationSpeed, - /* - * End of animation callback. - */ - function () { - // - // Set the css close options. - // - modal.css( cssOpts.close ); - - }); // end animate - - // - // Are we mid animating the modal(s)? - // - if ( !modalQueued ) { - // - // Oh, the modal(s) are mid animating. - // Let's delay the animation queue. - // - modalBg.delay( options.animationSpeed ) - // - // Let's fade out the modal background element. - // - .fadeOut( - /* - * Animation speed. - */ - options.animationSpeed, - /* - * End of animation callback. - */ - function () { - // - // Trigger the modal 'closed' event. - // This should trigger any method set in the options.closed propety. - // - modal.trigger( 'reveal:closed' ); - - }); // end fadeOut - - } else { - // - // We're not mid queue. - // Trigger the modal 'closed' event. - // This should trigger any method set in the options.closed propety. - // - modal.trigger( 'reveal:closed' ); - - } // end if !modalQueued - - } // end if animation 'fade' - - // - // Are we not animating? - // - if ( options.animation === "none" ) { - // - // We're not animating. - // Set the modal close css options. - // - modal.css( cssOpts.close ); - // - // Is the modal in the middle of an animation queue? - // - if ( !modalQueued ) { - // - // It's not mid queueu. Just hide it. - // - modalBg.css( { 'display': 'none' } ); - } - // - // Trigger the modal 'closed' event. - // This should trigger any method set in the options.closed propety. - // - modal.trigger( 'reveal:closed' ); - - } // end if not animating - - } // end if !locked - - } // end closeAnimation - - /** - * Destroys the modal and it's events. - * - * @method destroy - */ - function destroy() { - // - // Unbind all .reveal events from the modal. - // - modal.unbind( '.reveal' ); - // - // Unbind all .reveal events from the modal background. - // - modalBg.unbind( '.reveal' ); - // - // Unbind all .reveal events from the modal 'close' button. - // - $closeButton.unbind( '.reveal' ); - // - // Unbind all .reveal events from the body. - // - $( 'body' ).unbind( '.reveal' ); - - } - - // - // Bind the modal 'close' event - // - modal.bind( 'reveal:close.reveal', closeAnimation ); - // - // Bind the modal 'opened' + 'closed' event - // Calls the unlockModal method. - // - modal.bind( 'reveal:opened.reveal reveal:closed.reveal', unlockModal ); - // - // Bind the modal 'closed' event. - // Calls the destroy method. - // - modal.bind( 'reveal:closed.reveal', destroy ); - // - // Bind the modal 'open' event - // Handled by the options.open property function. - // - modal.bind( 'reveal:open.reveal', options.open ); - // - // Bind the modal 'opened' event. - // Handled by the options.opened property function. - // - modal.bind( 'reveal:opened.reveal', options.opened ); - // - // Bind the modal 'close' event. - // Handled by the options.close property function. - // - modal.bind( 'reveal:close.reveal', options.close ); - // - // Bind the modal 'closed' event. - // Handled by the options.closed property function. - // - modal.bind( 'reveal:closed.reveal', options.closed ); - - // - // We're running this for the first time. - // Trigger the modal 'open' event. - // - modal.trigger( 'reveal:open' ); - - // - // Get the closeButton variable element(s). - // - $closeButton = $( '.' + options.dismissModalClass ) - // - // Bind the element 'click' event and handler. - // - .bind( 'click.reveal', function () { - // - // Trigger the modal 'close' event. - // - modal.trigger( 'reveal:close' ); - - }); - - // - // Should we close the modal background on click? - // - if ( options.closeOnBackgroundClick ) { - // - // Yes, close the modal background on 'click' - // Set the modal background css 'cursor' propety to pointer. - // Adds a pointer symbol when you mouse over the modal background. - // - modalBg.css( { "cursor": "pointer" } ); - // - // Bind a 'click' event handler to the modal background. - // - modalBg.bind( 'click.reveal', function () { - // - // Trigger the modal 'close' event. - // - modal.trigger( 'reveal:close' ); - - }); - - } - - // - // Bind keyup functions on the body element. - // We'll want to close the modal when the 'escape' key is hit. - // - $( 'body' ).bind( 'keyup.reveal', function ( event ) { - // - // Did the escape key get triggered? - // - if ( event.which === 27 ) { // 27 is the keycode for the Escape key - // - // Escape key was triggered. - // Trigger the modal 'close' event. - // - modal.trigger( 'reveal:close' ); - } - - }); // end $(body) - - }); // end this.each - - }; // end $.fn - -} ( jQuery ) ); \ No newline at end of file diff --git a/theme/javascripts/jquery.foundation.tabs.js b/theme/javascripts/jquery.foundation.tabs.js deleted file mode 100644 index 6737e59..0000000 --- a/theme/javascripts/jquery.foundation.tabs.js +++ /dev/null @@ -1,36 +0,0 @@ -(function( $ ){ - - $.fn.foundationTabs = function(options) { - - var settings = $.extend({ - callback: $.noop - }, options); - - var activateTab = function($tab) { - var $activeTab = $tab.closest('dl').find('dd.active'), - contentLocation = $tab.children('a').attr("href") + 'Tab'; - - // Strip off the current url that IE adds - contentLocation = contentLocation.replace(/^.+#/, '#'); - - //Make Tab Active - $activeTab.removeClass('active'); - $tab.addClass('active'); - - //Show Tab Content - $(contentLocation).closest('.tabs-content').children('li').removeClass('active').hide(); - $(contentLocation).css('display', 'block').addClass('active'); - }; - - $('dl.tabs dd a', this).on('click.fndtn', function(event){ - activateTab($(this).parent('dd')); - }); - - if (window.location.hash) { - activateTab($('a[href="' + window.location.hash + '"]').parent('dd')); - settings.callback(); - } - - }; - -})( jQuery ); \ No newline at end of file diff --git a/theme/javascripts/jquery.foundation.tooltips.js b/theme/javascripts/jquery.foundation.tooltips.js deleted file mode 100644 index bec621a..0000000 --- a/theme/javascripts/jquery.foundation.tooltips.js +++ /dev/null @@ -1,183 +0,0 @@ -/* - * jQuery Foundation Tooltip Plugin 2.0.1 - * http://foundation.zurb.com - * Copyright 2012, ZURB - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php -*/ - -/*jslint unparam: true, browser: true, indent: 2 */ - -(function ($) { - 'use strict'; - var settings = { - bodyHeight : 0, - targetClass : '.has-tip', - tooltipClass : '.tooltip', - tipTemplate : function (selector, content) { - return '<span data-selector="' + selector + '" class="' + settings.tooltipClass.substring(1) + '">' + content + '<span class="nub"></span></span>'; - } - }, - methods = { - init : function (options) { - return this.each(function () { - var $body = $('body'); - - if (Modernizr.touch) { - $body.on('click.tooltip touchstart.tooltip touchend.tooltip', settings.targetClass, function (e) { - e.preventDefault(); - $(settings.tooltipClass).hide(); - methods.showOrCreateTip($(this)); - }); - $body.on('click.tooltip touchstart.tooltip touchend.tooltip', settings.tooltipClass, function (e) { - e.preventDefault(); - $(this).fadeOut(150); - }); - } else { - $body.on('mouseover.tooltip mouseout.tooltip', settings.targetClass, function (e) { - var $this = $(this); - - if (e.type === 'mouseover') { - methods.showOrCreateTip($this); - } else if (e.type === 'mouseout') { - methods.hide($this); - } - }); - } - }); - }, - showOrCreateTip : function ($target) { - var $tip = methods.getTip($target); - - if ($tip && $tip.length > 0) { - methods.show($target); - } else { - methods.create($target); - } - }, - getTip : function ($target) { - var selector = methods.selector($target), - tip = null; - - if (selector) { - tip = $('span[data-selector=' + selector + ']' + settings.tooltipClass); - } - return (tip.length > 0) ? tip : false; - }, - selector : function ($target) { - var id = $target.attr('id'), - dataSelector = $target.data('selector'); - - if (id === undefined && dataSelector === undefined) { - dataSelector = 'tooltip' + Math.random().toString(36).substring(7); - $target.attr('data-selector', dataSelector); - } - return (id) ? id : dataSelector; - }, - create : function ($target) { - var $tip = $(settings.tipTemplate(methods.selector($target), $('<div>').text($target.attr('title')).html())), - classes = methods.inheritable_classes($target); - - $tip.addClass(classes).appendTo('body'); - if (Modernizr.touch) { - $tip.append('<span class="tap-to-close">tap to close </span>'); - } - $target.removeAttr('title'); - methods.show($target); - }, - reposition : function (target, tip, classes) { - var width, nub, nubHeight, nubWidth, column, objPos; - - tip.css('visibility', 'hidden').show(); - - width = target.data('width'); - nub = tip.children('.nub'); - nubHeight = nub.outerHeight(); - nubWidth = nub.outerWidth(); - - objPos = function (obj, top, right, bottom, left, width) { - return obj.css({ - 'top' : top, - 'bottom' : bottom, - 'left' : left, - 'right' : right, - 'width' : (width) ? width : 'auto' - }).end(); - }; - - objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left, width); - objPos(nub, -nubHeight, 'auto', 'auto', 10); - - if ($(window).width() < 767) { - column = target.closest('.columns'); - - if (column.length < 0) { - // if not using Foundation - column = $('body'); - } - tip.width(column.outerWidth() - 25).css('left', 15).addClass('tip-override'); - objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left); - } else { - if (classes.indexOf('tip-top') > -1) { - objPos(tip, (target.offset().top - tip.outerHeight() - nubHeight), 'auto', 'auto', target.offset().left, width) - .removeClass('tip-override'); - objPos(nub, 'auto', 'auto', -nubHeight, 'auto'); - } else if (classes.indexOf('tip-left') > -1) { - objPos(tip, (target.offset().top + (target.outerHeight() / 2) - nubHeight), 'auto', 'auto', (target.offset().left - tip.outerWidth() - 10), width) - .removeClass('tip-override'); - objPos(nub, (tip.outerHeight() / 2) - (nubHeight / 2), -nubHeight, 'auto', 'auto'); - } else if (classes.indexOf('tip-right') > -1) { - objPos(tip, (target.offset().top + (target.outerHeight() / 2) - nubHeight), 'auto', 'auto', (target.offset().left + target.outerWidth() + 10), width) - .removeClass('tip-override'); - objPos(nub, (tip.outerHeight() / 2) - (nubHeight / 2), 'auto', 'auto', -nubHeight); - } - } - tip.css('visibility', 'visible').hide(); - }, - inheritable_classes : function (target) { - var inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'noradius'], - filtered = target.attr('class').split(' ').map(function (el, i) { - if ($.inArray(el, inheritables) !== -1) { - return el; - } - }).join(' '); - - return $.trim(filtered); - }, - show : function ($target) { - var $tip = methods.getTip($target); - - methods.reposition($target, $tip, $target.attr('class')); - $tip.fadeIn(150); - }, - hide : function ($target) { - var $tip = methods.getTip($target); - - $tip.fadeOut(150); - }, - reload : function () { - var $self = $(this); - - return ($self.data('tooltips')) ? $self.tooltips('destroy').tooltips('init') : $self.tooltips('init'); - }, - destroy : function () { - return this.each(function () { - $(window).off('.tooltip'); - $(settings.targetClass).off('.tooltip'); - $(settings.tooltipClass).each(function (i) { - $($(settings.targetClass).get(i)).attr('title', $(this).text()); - }).remove(); - }); - } - }; - - $.fn.tooltips = function (method) { - if (methods[method]) { - return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); - } else if (typeof method === 'object' || ! method) { - return methods.init.apply(this, arguments); - } else { - $.error('Method ' + method + ' does not exist on jQuery.tooltips'); - } - }; -}(jQuery)); \ No newline at end of file diff --git a/theme/javascripts/jquery.placeholder.js b/theme/javascripts/jquery.placeholder.js deleted file mode 100644 index 0512ca5..0000000 --- a/theme/javascripts/jquery.placeholder.js +++ /dev/null @@ -1,157 +0,0 @@ -/*! http://mths.be/placeholder v2.0.7 by @mathias */ -;(function(window, document, $) { - - var isInputSupported = 'placeholder' in document.createElement('input'), - isTextareaSupported = 'placeholder' in document.createElement('textarea'), - prototype = $.fn, - valHooks = $.valHooks, - hooks, - placeholder; - - if (isInputSupported && isTextareaSupported) { - - placeholder = prototype.placeholder = function() { - return this; - }; - - placeholder.input = placeholder.textarea = true; - - } else { - - placeholder = prototype.placeholder = function() { - var $this = this; - $this - .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]') - .not('.placeholder') - .bind({ - 'focus.placeholder': clearPlaceholder, - 'blur.placeholder': setPlaceholder - }) - .data('placeholder-enabled', true) - .trigger('blur.placeholder'); - return $this; - }; - - placeholder.input = isInputSupported; - placeholder.textarea = isTextareaSupported; - - hooks = { - 'get': function(element) { - var $element = $(element); - return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value; - }, - 'set': function(element, value) { - var $element = $(element); - if (!$element.data('placeholder-enabled')) { - return element.value = value; - } - if (value == '') { - element.value = value; - // Issue #56: Setting the placeholder causes problems if the element continues to have focus. - if (element != document.activeElement) { - // We can't use `triggerHandler` here because of dummy text/password inputs :( - setPlaceholder.call(element); - } - } else if ($element.hasClass('placeholder')) { - clearPlaceholder.call(element, true, value) || (element.value = value); - } else { - element.value = value; - } - // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363 - return $element; - } - }; - - isInputSupported || (valHooks.input = hooks); - isTextareaSupported || (valHooks.textarea = hooks); - - $(function() { - // Look for forms - $(document).delegate('form', 'submit.placeholder', function() { - // Clear the placeholder values so they don't get submitted - var $inputs = $('.placeholder', this).each(clearPlaceholder); - setTimeout(function() { - $inputs.each(setPlaceholder); - }, 10); - }); - }); - - // Clear placeholder values upon page reload - $(window).bind('beforeunload.placeholder', function() { - $('.placeholder').each(function() { - this.value = ''; - }); - }); - - } - - function args(elem) { - // Return an object of element attributes - var newAttrs = {}, - rinlinejQuery = /^jQuery\d+$/; - $.each(elem.attributes, function(i, attr) { - if (attr.specified && !rinlinejQuery.test(attr.name)) { - newAttrs[attr.name] = attr.value; - } - }); - return newAttrs; - } - - function clearPlaceholder(event, value) { - var input = this, - $input = $(input); - if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) { - if ($input.data('placeholder-password')) { - $input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id')); - // If `clearPlaceholder` was called from `$.valHooks.input.set` - if (event === true) { - return $input[0].value = value; - } - $input.focus(); - } else { - input.value = ''; - $input.removeClass('placeholder'); - input == document.activeElement && input.select(); - } - } - } - - function setPlaceholder() { - var $replacement, - input = this, - $input = $(input), - $origInput = $input, - id = this.id; - if (input.value == '') { - if (input.type == 'password') { - if (!$input.data('placeholder-textinput')) { - try { - $replacement = $input.clone().attr({ 'type': 'text' }); - } catch(e) { - $replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' })); - } - $replacement - .removeAttr('name') - .data({ - 'placeholder-password': true, - 'placeholder-id': id - }) - .bind('focus.placeholder', clearPlaceholder); - $input - .data({ - 'placeholder-textinput': $replacement, - 'placeholder-id': id - }) - .before($replacement); - } - $input = $input.removeAttr('id').hide().prev().attr('id', id).show(); - // Note: `$input[0] != input` now! - } - $input.addClass('placeholder'); - $input[0].value = $input.attr('placeholder'); - } else { - $input.removeClass('placeholder'); - } - } - -}(this, document, jQuery)); \ No newline at end of file diff --git a/theme/javascripts/modernizr.foundation.js b/theme/javascripts/modernizr.foundation.js deleted file mode 100644 index 3bd5f90..0000000 --- a/theme/javascripts/modernizr.foundation.js +++ /dev/null @@ -1,4 +0,0 @@ -/* Modernizr 2.6.0 (Custom Build) | MIT & BSD - * Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-cssclasses-teststyles-prefixes-ie8compat-load - */ -;window.Modernizr=function(a,b,c){function x(a){j.cssText=a}function y(a,b){return x(m.join(a+";")+(b||""))}function z(a,b){return typeof a===b}function A(a,b){return!!~(""+a).indexOf(b)}function B(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:z(f,"function")?f.bind(d||b):f}return!1}var d="2.6.0",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={svg:"http://www.w3.org/2000/svg"},o={},p={},q={},r=[],s=r.slice,t,u=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},v={}.hasOwnProperty,w;!z(v,"undefined")&&!z(v.call,"undefined")?w=function(a,b){return v.call(a,b)}:w=function(a,b){return b in a&&z(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=s.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(s.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(s.call(arguments)))};return e}),o.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:u(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},o.svg=function(){return!!b.createElementNS&&!!b.createElementNS(n.svg,"svg").createSVGRect},o.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==n.svg},o.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(n.svg,"clipPath")))};for(var C in o)w(o,C)&&(t=C.toLowerCase(),e[t]=o[C](),r.push((e[t]?"":"no-")+t));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)w(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},x(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.testStyles=u,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+r.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))},Modernizr.addTest("ie8compat",function(){return!window.addEventListener&&document.documentMode&&document.documentMode===7}); \ No newline at end of file diff --git a/theme/js/app.js b/theme/js/app.js new file mode 100644 index 0000000..f09cd9d --- /dev/null +++ b/theme/js/app.js @@ -0,0 +1,865 @@ +$(document).ready( function() { + <!-- validation --> + $(".validation").validate(); + $(".validation_2").validate(); + $(".validation_3").validate(); + $(".validation_4").validate(); + $(".validation_5").validate(); + + $('.error').click(function() { + alert("Handler for .click() called."); + }); + + + /* tooltip */ + $('[rel=tooltip]').tooltip(); + + + /* datepicker */ + $('.datepicker').datepicker(); + + /* popover */ + /* $('.ppver').popover(options); */ + + + +}); + + + + + + + +(function(){var b,d,c;b=jQuery;c=(function(){function b(){this.fadeDuration=500;this.fitImagesInViewport=true;this.resizeDuration=700;this.showImageNumberLabel=true;this.wrapAround=false}b.prototype.albumLabel=function(b,c){return"Image "+b+" of "+c};return b})();d=(function(){function c(b){this.options=b;this.album=[];this.currentImageIndex=void 0;this.init()}c.prototype.init=function(){this.enable();return this.build()};c.prototype.enable=function(){var c=this;return b('body').on('click','a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]',function(d){c.start(b(d.currentTarget));return false})};c.prototype.build=function(){var c=this;b("<div id='lightboxOverlay' class='lightboxOverlay'></div><div id='lightbox' class='lightbox'><div class='lb-outerContainer'><div class='lb-container'><img class='lb-image' src='' /><div class='lb-nav'><a class='lb-prev' href='' ></a><a class='lb-next' href='' ></a></div><div class='lb-loader'><a class='lb-cancel'></a></div></div></div><div class='lb-dataContainer'><div class='lb-data'><div class='lb-details'><span class='lb-caption'></span><span class='lb-number'></span></div><div class='lb-closeContainer'><a class='lb-close'></a></div></div></div></div>").appendTo(b('body'));this.$lightbox=b('#lightbox');this.$overlay=b('#lightboxOverlay');this.$outerContainer=this.$lightbox.find('.lb-outerContainer');this.$container=this.$lightbox.find('.lb-container');this.containerTopPadding=parseInt(this.$container.css('padding-top'),10);this.containerRightPadding=parseInt(this.$container.css('padding-right'),10);this.containerBottomPadding=parseInt(this.$container.css('padding-bottom'),10);this.containerLeftPadding=parseInt(this.$container.css('padding-left'),10);this.$overlay.hide().on('click',function(){c.end();return false});this.$lightbox.hide().on('click',function(d){if(b(d.target).attr('id')==='lightbox'){c.end()}return false});this.$outerContainer.on('click',function(d){if(b(d.target).attr('id')==='lightbox'){c.end()}return false});this.$lightbox.find('.lb-prev').on('click',function(){if(c.currentImageIndex===0){c.changeImage(c.album.length-1)}else{c.changeImage(c.currentImageIndex-1)}return false});this.$lightbox.find('.lb-next').on('click',function(){if(c.currentImageIndex===c.album.length-1){c.changeImage(0)}else{c.changeImage(c.currentImageIndex+1)}return false});return this.$lightbox.find('.lb-loader, .lb-close').on('click',function(){c.end();return false})};c.prototype.start=function(c){var f,e,j,d,g,n,o,k,l,m,p,h,i;b(window).on("resize",this.sizeOverlay);b('select, object, embed').css({visibility:"hidden"});this.$overlay.width(b(document).width()).height(b(document).height()).fadeIn(this.options.fadeDuration);this.album=[];g=0;j=c.attr('data-lightbox');if(j){h=b(c.prop("tagName")+'[data-lightbox="'+j+'"]');for(d=k=0,m=h.length;k<m;d=++k){e=h[d];this.album.push({link:b(e).attr('href'),title:b(e).attr('title')});if(b(e).attr('href')===c.attr('href')){g=d}}}else{if(c.attr('rel')==='lightbox'){this.album.push({link:c.attr('href'),title:c.attr('title')})}else{i=b(c.prop("tagName")+'[rel="'+c.attr('rel')+'"]');for(d=l=0,p=i.length;l<p;d=++l){e=i[d];this.album.push({link:b(e).attr('href'),title:b(e).attr('title')});if(b(e).attr('href')===c.attr('href')){g=d}}}}f=b(window);o=f.scrollTop()+f.height()/10;n=f.scrollLeft();this.$lightbox.css({top:o+'px',left:n+'px'}).fadeIn(this.options.fadeDuration);this.changeImage(g)};c.prototype.changeImage=function(f){var d,c,e=this;this.disableKeyboardNav();d=this.$lightbox.find('.lb-image');this.sizeOverlay();this.$overlay.fadeIn(this.options.fadeDuration);b('.lb-loader').fadeIn('slow');this.$lightbox.find('.lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption').hide();this.$outerContainer.addClass('animating');c=new Image();c.onload=function(){var m,g,h,i,j,k,l;d.attr('src',e.album[f].link);m=b(c);d.width(c.width);d.height(c.height);if(e.options.fitImagesInViewport){l=b(window).width();k=b(window).height();j=l-e.containerLeftPadding-e.containerRightPadding-20;i=k-e.containerTopPadding-e.containerBottomPadding-110;if((c.width>j)||(c.height>i)){if((c.width/j)>(c.height/i)){h=j;g=parseInt(c.height/(c.width/h),10);d.width(h);d.height(g)}else{g=i;h=parseInt(c.width/(c.height/g),10);d.width(h);d.height(g)}}}return e.sizeContainer(d.width(),d.height())};c.src=this.album[f].link;this.currentImageIndex=f};c.prototype.sizeOverlay=function(){return b('#lightboxOverlay').width(b(document).width()).height(b(document).height())};c.prototype.sizeContainer=function(f,g){var b,d,e,h,c=this;h=this.$outerContainer.outerWidth();e=this.$outerContainer.outerHeight();d=f+this.containerLeftPadding+this.containerRightPadding;b=g+this.containerTopPadding+this.containerBottomPadding;this.$outerContainer.animate({width:d,height:b},this.options.resizeDuration,'swing');setTimeout(function(){c.$lightbox.find('.lb-dataContainer').width(d);c.$lightbox.find('.lb-prevLink').height(b);c.$lightbox.find('.lb-nextLink').height(b);c.showImage()},this.options.resizeDuration)};c.prototype.showImage=function(){this.$lightbox.find('.lb-loader').hide();this.$lightbox.find('.lb-image').fadeIn('slow');this.updateNav();this.updateDetails();this.preloadNeighboringImages();this.enableKeyboardNav()};c.prototype.updateNav=function(){this.$lightbox.find('.lb-nav').show();if(this.album.length>1){if(this.options.wrapAround){this.$lightbox.find('.lb-prev, .lb-next').show()}else{if(this.currentImageIndex>0){this.$lightbox.find('.lb-prev').show()}if(this.currentImageIndex<this.album.length-1){this.$lightbox.find('.lb-next').show()}}}};c.prototype.updateDetails=function(){var b=this;if(typeof this.album[this.currentImageIndex].title!=='undefined'&&this.album[this.currentImageIndex].title!==""){this.$lightbox.find('.lb-caption').html(this.album[this.currentImageIndex].title).fadeIn('fast')}if(this.album.length>1&&this.options.showImageNumberLabel){this.$lightbox.find('.lb-number').text(this.options.albumLabel(this.currentImageIndex+1,this.album.length)).fadeIn('fast')}else{this.$lightbox.find('.lb-number').hide()}this.$outerContainer.removeClass('animating');this.$lightbox.find('.lb-dataContainer').fadeIn(this.resizeDuration,function(){return b.sizeOverlay()})};c.prototype.preloadNeighboringImages=function(){var c,b;if(this.album.length>this.currentImageIndex+1){c=new Image();c.src=this.album[this.currentImageIndex+1].link}if(this.currentImageIndex>0){b=new Image();b.src=this.album[this.currentImageIndex-1].link}};c.prototype.enableKeyboardNav=function(){b(document).on('keyup.keyboard',b.proxy(this.keyboardAction,this))};c.prototype.disableKeyboardNav=function(){b(document).off('.keyboard')};c.prototype.keyboardAction=function(g){var d,e,f,c,b;d=27;e=37;f=39;b=g.keyCode;c=String.fromCharCode(b).toLowerCase();if(b===d||c.match(/x|o|c/)){this.end()}else if(c==='p'||b===e){if(this.currentImageIndex!==0){this.changeImage(this.currentImageIndex-1)}}else if(c==='n'||b===f){if(this.currentImageIndex!==this.album.length-1){this.changeImage(this.currentImageIndex+1)}}};c.prototype.end=function(){this.disableKeyboardNav();b(window).off("resize",this.sizeOverlay);this.$lightbox.fadeOut(this.options.fadeDuration);this.$overlay.fadeOut(this.options.fadeDuration);return b('select, object, embed').css({visibility:"visible"})};return c})();b(function(){var e,b;b=new c();return e=new d(b)})}).call(this); + +/* Modernizr 2.6.2 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes + */ +;window.Modernizr=function(a,b,c){function A(a){j.cssText=a}function B(a,b){return A(m.join(a+";")+(b||""))}function C(a,b){return typeof a===b}function D(a,b){return!!~(""+a).indexOf(b)}function E(a,b){for(var d in a){var e=a[d];if(!D(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function F(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:C(f,"function")?f.bind(d||b):f}return!1}function G(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return C(b,"string")||C(b,"undefined")?E(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),F(e,b,c))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e[d],"function"),C(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y={}.hasOwnProperty,z;!C(y,"undefined")&&!C(y.call,"undefined")?z=function(a,b){return y.call(a,b)}:z=function(a,b){return b in a&&C(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e});for(var H in q)z(q,H)&&(v=H.toLowerCase(),e[v]=q[H](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)z(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},A(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.hasEvent=x,e.testProp=function(a){return E([a])},e.testAllProps=G,e.testStyles=w,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document); + + + + + + + + + + +/** + * @name InfoBox + * @version 1.1.12 [December 11, 2012] + * @author Gary Little (inspired by proof-of-concept code from Pamela Fox of Google) + * @copyright Copyright 2010 Gary Little [gary at luxcentral.com] + * @fileoverview InfoBox extends the Google Maps JavaScript API V3 <tt>OverlayView</tt> class. + * <p> + * An InfoBox behaves like a <tt>google.maps.InfoWindow</tt>, but it supports several + * additional properties for advanced styling. An InfoBox can also be used as a map label. + * <p> + * An InfoBox also fires the same events as a <tt>google.maps.InfoWindow</tt>. + */ + +/*! + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*jslint browser:true */ +/*global google */ + +/** + * @name InfoBoxOptions + * @class This class represents the optional parameter passed to the {@link InfoBox} constructor. + * @property {string|Node} content The content of the InfoBox (plain text or an HTML DOM node). + * @property {boolean} [disableAutoPan=false] Disable auto-pan on <tt>open</tt>. + * @property {number} maxWidth The maximum width (in pixels) of the InfoBox. Set to 0 if no maximum. + * @property {Size} pixelOffset The offset (in pixels) from the top left corner of the InfoBox + * (or the bottom left corner if the <code>alignBottom</code> property is <code>true</code>) + * to the map pixel corresponding to <tt>position</tt>. + * @property {LatLng} position The geographic location at which to display the InfoBox. + * @property {number} zIndex The CSS z-index style value for the InfoBox. + * Note: This value overrides a zIndex setting specified in the <tt>boxStyle</tt> property. + * @property {string} [boxClass="infoBox"] The name of the CSS class defining the styles for the InfoBox container. + * @property {Object} [boxStyle] An object literal whose properties define specific CSS + * style values to be applied to the InfoBox. Style values defined here override those that may + * be defined in the <code>boxClass</code> style sheet. If this property is changed after the + * InfoBox has been created, all previously set styles (except those defined in the style sheet) + * are removed from the InfoBox before the new style values are applied. + * @property {string} closeBoxMargin The CSS margin style value for the close box. + * The default is "2px" (a 2-pixel margin on all sides). + * @property {string} closeBoxURL The URL of the image representing the close box. + * Note: The default is the URL for Google's standard close box. + * Set this property to "" if no close box is required. + * @property {Size} infoBoxClearance Minimum offset (in pixels) from the InfoBox to the + * map edge after an auto-pan. + * @property {boolean} [isHidden=false] Hide the InfoBox on <tt>open</tt>. + * [Deprecated in favor of the <tt>visible</tt> property.] + * @property {boolean} [visible=true] Show the InfoBox on <tt>open</tt>. + * @property {boolean} alignBottom Align the bottom left corner of the InfoBox to the <code>position</code> + * location (default is <tt>false</tt> which means that the top left corner of the InfoBox is aligned). + * @property {string} pane The pane where the InfoBox is to appear (default is "floatPane"). + * Set the pane to "mapPane" if the InfoBox is being used as a map label. + * Valid pane names are the property names for the <tt>google.maps.MapPanes</tt> object. + * @property {boolean} enableEventPropagation Propagate mousedown, mousemove, mouseover, mouseout, + * mouseup, click, dblclick, touchstart, touchend, touchmove, and contextmenu events in the InfoBox + * (default is <tt>false</tt> to mimic the behavior of a <tt>google.maps.InfoWindow</tt>). Set + * this property to <tt>true</tt> if the InfoBox is being used as a map label. + */ + +/** + * Creates an InfoBox with the options specified in {@link InfoBoxOptions}. + * Call <tt>InfoBox.open</tt> to add the box to the map. + * @constructor + * @param {InfoBoxOptions} [opt_opts] + */ +function InfoBox(opt_opts) { + + opt_opts = opt_opts || {}; + + google.maps.OverlayView.apply(this, arguments); + + // Standard options (in common with google.maps.InfoWindow): + // + this.content_ = opt_opts.content || ""; + this.disableAutoPan_ = opt_opts.disableAutoPan || false; + this.maxWidth_ = opt_opts.maxWidth || 0; + this.pixelOffset_ = opt_opts.pixelOffset || new google.maps.Size(0, 0); + this.position_ = opt_opts.position || new google.maps.LatLng(0, 0); + this.zIndex_ = opt_opts.zIndex || null; + + // Additional options (unique to InfoBox): + // + this.boxClass_ = opt_opts.boxClass || "infoBox"; + this.boxStyle_ = opt_opts.boxStyle || {}; + this.closeBoxMargin_ = opt_opts.closeBoxMargin || "2px"; + this.closeBoxURL_ = opt_opts.closeBoxURL || "http://www.google.com/intl/en_us/mapfiles/close.gif"; + if (opt_opts.closeBoxURL === "") { + this.closeBoxURL_ = ""; + } + this.infoBoxClearance_ = opt_opts.infoBoxClearance || new google.maps.Size(1, 1); + + if (typeof opt_opts.visible === "undefined") { + if (typeof opt_opts.isHidden === "undefined") { + opt_opts.visible = true; + } else { + opt_opts.visible = !opt_opts.isHidden; + } + } + this.isHidden_ = !opt_opts.visible; + + this.alignBottom_ = opt_opts.alignBottom || false; + this.pane_ = opt_opts.pane || "floatPane"; + this.enableEventPropagation_ = opt_opts.enableEventPropagation || false; + + this.div_ = null; + this.closeListener_ = null; + this.moveListener_ = null; + this.contextListener_ = null; + this.eventListeners_ = null; + this.fixedWidthSet_ = null; +} + +/* InfoBox extends OverlayView in the Google Maps API v3. + */ +InfoBox.prototype = new google.maps.OverlayView(); + +/** + * Creates the DIV representing the InfoBox. + * @private + */ +InfoBox.prototype.createInfoBoxDiv_ = function () { + + var i; + var events; + var bw; + var me = this; + + // This handler prevents an event in the InfoBox from being passed on to the map. + // + var cancelHandler = function (e) { + e.cancelBubble = true; + if (e.stopPropagation) { + e.stopPropagation(); + } + }; + + // This handler ignores the current event in the InfoBox and conditionally prevents + // the event from being passed on to the map. It is used for the contextmenu event. + // + var ignoreHandler = function (e) { + + e.returnValue = false; + + if (e.preventDefault) { + + e.preventDefault(); + } + + if (!me.enableEventPropagation_) { + + cancelHandler(e); + } + }; + + if (!this.div_) { + + this.div_ = document.createElement("div"); + + this.setBoxStyle_(); + + if (typeof this.content_.nodeType === "undefined") { + this.div_.innerHTML = this.getCloseBoxImg_() + this.content_; + } else { + this.div_.innerHTML = this.getCloseBoxImg_(); + this.div_.appendChild(this.content_); + } + + // Add the InfoBox DIV to the DOM + this.getPanes()[this.pane_].appendChild(this.div_); + + this.addClickHandler_(); + + if (this.div_.style.width) { + + this.fixedWidthSet_ = true; + + } else { + + if (this.maxWidth_ !== 0 && this.div_.offsetWidth > this.maxWidth_) { + + this.div_.style.width = this.maxWidth_; + this.div_.style.overflow = "auto"; + this.fixedWidthSet_ = true; + + } else { // The following code is needed to overcome problems with MSIE + + bw = this.getBoxWidths_(); + + this.div_.style.width = (this.div_.offsetWidth - bw.left - bw.right) + "px"; + this.fixedWidthSet_ = false; + } + } + + this.panBox_(this.disableAutoPan_); + + if (!this.enableEventPropagation_) { + + this.eventListeners_ = []; + + // Cancel event propagation. + // + // Note: mousemove not included (to resolve Issue 152) + events = ["mousedown", "mouseover", "mouseout", "mouseup", + "click", "dblclick", "touchstart", "touchend", "touchmove"]; + + for (i = 0; i < events.length; i++) { + + this.eventListeners_.push(google.maps.event.addDomListener(this.div_, events[i], cancelHandler)); + } + + // Workaround for Google bug that causes the cursor to change to a pointer + // when the mouse moves over a marker underneath InfoBox. + this.eventListeners_.push(google.maps.event.addDomListener(this.div_, "mouseover", function (e) { + this.style.cursor = "default"; + })); + } + + this.contextListener_ = google.maps.event.addDomListener(this.div_, "contextmenu", ignoreHandler); + + /** + * This event is fired when the DIV containing the InfoBox's content is attached to the DOM. + * @name InfoBox#domready + * @event + */ + google.maps.event.trigger(this, "domready"); + } +}; + +/** + * Returns the HTML <IMG> tag for the close box. + * @private + */ +InfoBox.prototype.getCloseBoxImg_ = function () { + + var img = ""; + + if (this.closeBoxURL_ !== "") { + + img = "<img"; + img += " src='" + this.closeBoxURL_ + "'"; + img += " align=right"; // Do this because Opera chokes on style='float: right;' + img += " style='"; + img += " position: relative;"; // Required by MSIE + img += " cursor: pointer;"; + img += " margin: " + this.closeBoxMargin_ + ";"; + img += "'>"; + } + + return img; +}; + +/** + * Adds the click handler to the InfoBox close box. + * @private + */ +InfoBox.prototype.addClickHandler_ = function () { + + var closeBox; + + if (this.closeBoxURL_ !== "") { + + closeBox = this.div_.firstChild; + this.closeListener_ = google.maps.event.addDomListener(closeBox, "click", this.getCloseClickHandler_()); + + } else { + + this.closeListener_ = null; + } +}; + +/** + * Returns the function to call when the user clicks the close box of an InfoBox. + * @private + */ +InfoBox.prototype.getCloseClickHandler_ = function () { + + var me = this; + + return function (e) { + + // 1.0.3 fix: Always prevent propagation of a close box click to the map: + e.cancelBubble = true; + + if (e.stopPropagation) { + + e.stopPropagation(); + } + + /** + * This event is fired when the InfoBox's close box is clicked. + * @name InfoBox#closeclick + * @event + */ + google.maps.event.trigger(me, "closeclick"); + + me.close(); + }; +}; + +/** + * Pans the map so that the InfoBox appears entirely within the map's visible area. + * @private + */ +InfoBox.prototype.panBox_ = function (disablePan) { + + var map; + var bounds; + var xOffset = 0, yOffset = 0; + + if (!disablePan) { + + map = this.getMap(); + + if (map instanceof google.maps.Map) { // Only pan if attached to map, not panorama + + if (!map.getBounds().contains(this.position_)) { + // Marker not in visible area of map, so set center + // of map to the marker position first. + map.setCenter(this.position_); + } + + bounds = map.getBounds(); + + var mapDiv = map.getDiv(); + var mapWidth = mapDiv.offsetWidth; + var mapHeight = mapDiv.offsetHeight; + var iwOffsetX = this.pixelOffset_.width; + var iwOffsetY = this.pixelOffset_.height; + var iwWidth = this.div_.offsetWidth; + var iwHeight = this.div_.offsetHeight; + var padX = this.infoBoxClearance_.width; + var padY = this.infoBoxClearance_.height; + var pixPosition = this.getProjection().fromLatLngToContainerPixel(this.position_); + + if (pixPosition.x < (-iwOffsetX + padX)) { + xOffset = pixPosition.x + iwOffsetX - padX; + } else if ((pixPosition.x + iwWidth + iwOffsetX + padX) > mapWidth) { + xOffset = pixPosition.x + iwWidth + iwOffsetX + padX - mapWidth; + } + if (this.alignBottom_) { + if (pixPosition.y < (-iwOffsetY + padY + iwHeight)) { + yOffset = pixPosition.y + iwOffsetY - padY - iwHeight; + } else if ((pixPosition.y + iwOffsetY + padY) > mapHeight) { + yOffset = pixPosition.y + iwOffsetY + padY - mapHeight; + } + } else { + if (pixPosition.y < (-iwOffsetY + padY)) { + yOffset = pixPosition.y + iwOffsetY - padY; + } else if ((pixPosition.y + iwHeight + iwOffsetY + padY) > mapHeight) { + yOffset = pixPosition.y + iwHeight + iwOffsetY + padY - mapHeight; + } + } + + if (!(xOffset === 0 && yOffset === 0)) { + + // Move the map to the shifted center. + // + var c = map.getCenter(); + map.panBy(xOffset, yOffset); + } + } + } +}; + +/** + * Sets the style of the InfoBox by setting the style sheet and applying + * other specific styles requested. + * @private + */ +InfoBox.prototype.setBoxStyle_ = function () { + + var i, boxStyle; + + if (this.div_) { + + // Apply style values from the style sheet defined in the boxClass parameter: + this.div_.className = this.boxClass_; + + // Clear existing inline style values: + this.div_.style.cssText = ""; + + // Apply style values defined in the boxStyle parameter: + boxStyle = this.boxStyle_; + for (i in boxStyle) { + + if (boxStyle.hasOwnProperty(i)) { + + this.div_.style[i] = boxStyle[i]; + } + } + + // Fix up opacity style for benefit of MSIE: + // + if (typeof this.div_.style.opacity !== "undefined" && this.div_.style.opacity !== "") { + + this.div_.style.filter = "alpha(opacity=" + (this.div_.style.opacity * 100) + ")"; + } + + // Apply required styles: + // + this.div_.style.position = "absolute"; + this.div_.style.visibility = 'hidden'; + if (this.zIndex_ !== null) { + + this.div_.style.zIndex = this.zIndex_; + } + } +}; + +/** + * Get the widths of the borders of the InfoBox. + * @private + * @return {Object} widths object (top, bottom left, right) + */ +InfoBox.prototype.getBoxWidths_ = function () { + + var computedStyle; + var bw = {top: 0, bottom: 0, left: 0, right: 0}; + var box = this.div_; + + if (document.defaultView && document.defaultView.getComputedStyle) { + + computedStyle = box.ownerDocument.defaultView.getComputedStyle(box, ""); + + if (computedStyle) { + + // The computed styles are always in pixel units (good!) + bw.top = parseInt(computedStyle.borderTopWidth, 10) || 0; + bw.bottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; + bw.left = parseInt(computedStyle.borderLeftWidth, 10) || 0; + bw.right = parseInt(computedStyle.borderRightWidth, 10) || 0; + } + + } else if (document.documentElement.currentStyle) { // MSIE + + if (box.currentStyle) { + + // The current styles may not be in pixel units, but assume they are (bad!) + bw.top = parseInt(box.currentStyle.borderTopWidth, 10) || 0; + bw.bottom = parseInt(box.currentStyle.borderBottomWidth, 10) || 0; + bw.left = parseInt(box.currentStyle.borderLeftWidth, 10) || 0; + bw.right = parseInt(box.currentStyle.borderRightWidth, 10) || 0; + } + } + + return bw; +}; + +/** + * Invoked when <tt>close</tt> is called. Do not call it directly. + */ +InfoBox.prototype.onRemove = function () { + + if (this.div_) { + + this.div_.parentNode.removeChild(this.div_); + this.div_ = null; + } +}; + +/** + * Draws the InfoBox based on the current map projection and zoom level. + */ +InfoBox.prototype.draw = function () { + + this.createInfoBoxDiv_(); + + var pixPosition = this.getProjection().fromLatLngToDivPixel(this.position_); + + this.div_.style.left = (pixPosition.x + this.pixelOffset_.width) + "px"; + + if (this.alignBottom_) { + this.div_.style.bottom = -(pixPosition.y + this.pixelOffset_.height) + "px"; + } else { + this.div_.style.top = (pixPosition.y + this.pixelOffset_.height) + "px"; + } + + if (this.isHidden_) { + + this.div_.style.visibility = 'hidden'; + + } else { + + this.div_.style.visibility = "visible"; + } +}; + +/** + * Sets the options for the InfoBox. Note that changes to the <tt>maxWidth</tt>, + * <tt>closeBoxMargin</tt>, <tt>closeBoxURL</tt>, and <tt>enableEventPropagation</tt> + * properties have no affect until the current InfoBox is <tt>close</tt>d and a new one + * is <tt>open</tt>ed. + * @param {InfoBoxOptions} opt_opts + */ +InfoBox.prototype.setOptions = function (opt_opts) { + if (typeof opt_opts.boxClass !== "undefined") { // Must be first + + this.boxClass_ = opt_opts.boxClass; + this.setBoxStyle_(); + } + if (typeof opt_opts.boxStyle !== "undefined") { // Must be second + + this.boxStyle_ = opt_opts.boxStyle; + this.setBoxStyle_(); + } + if (typeof opt_opts.content !== "undefined") { + + this.setContent(opt_opts.content); + } + if (typeof opt_opts.disableAutoPan !== "undefined") { + + this.disableAutoPan_ = opt_opts.disableAutoPan; + } + if (typeof opt_opts.maxWidth !== "undefined") { + + this.maxWidth_ = opt_opts.maxWidth; + } + if (typeof opt_opts.pixelOffset !== "undefined") { + + this.pixelOffset_ = opt_opts.pixelOffset; + } + if (typeof opt_opts.alignBottom !== "undefined") { + + this.alignBottom_ = opt_opts.alignBottom; + } + if (typeof opt_opts.position !== "undefined") { + + this.setPosition(opt_opts.position); + } + if (typeof opt_opts.zIndex !== "undefined") { + + this.setZIndex(opt_opts.zIndex); + } + if (typeof opt_opts.closeBoxMargin !== "undefined") { + + this.closeBoxMargin_ = opt_opts.closeBoxMargin; + } + if (typeof opt_opts.closeBoxURL !== "undefined") { + + this.closeBoxURL_ = opt_opts.closeBoxURL; + } + if (typeof opt_opts.infoBoxClearance !== "undefined") { + + this.infoBoxClearance_ = opt_opts.infoBoxClearance; + } + if (typeof opt_opts.isHidden !== "undefined") { + + this.isHidden_ = opt_opts.isHidden; + } + if (typeof opt_opts.visible !== "undefined") { + + this.isHidden_ = !opt_opts.visible; + } + if (typeof opt_opts.enableEventPropagation !== "undefined") { + + this.enableEventPropagation_ = opt_opts.enableEventPropagation; + } + + if (this.div_) { + + this.draw(); + } +}; + +/** + * Sets the content of the InfoBox. + * The content can be plain text or an HTML DOM node. + * @param {string|Node} content + */ +InfoBox.prototype.setContent = function (content) { + this.content_ = content; + + if (this.div_) { + + if (this.closeListener_) { + + google.maps.event.removeListener(this.closeListener_); + this.closeListener_ = null; + } + + // Odd code required to make things work with MSIE. + // + if (!this.fixedWidthSet_) { + + this.div_.style.width = ""; + } + + if (typeof content.nodeType === "undefined") { + this.div_.innerHTML = this.getCloseBoxImg_() + content; + } else { + this.div_.innerHTML = this.getCloseBoxImg_(); + this.div_.appendChild(content); + } + + // Perverse code required to make things work with MSIE. + // (Ensures the close box does, in fact, float to the right.) + // + if (!this.fixedWidthSet_) { + this.div_.style.width = this.div_.offsetWidth + "px"; + if (typeof content.nodeType === "undefined") { + this.div_.innerHTML = this.getCloseBoxImg_() + content; + } else { + this.div_.innerHTML = this.getCloseBoxImg_(); + this.div_.appendChild(content); + } + } + + this.addClickHandler_(); + } + + /** + * This event is fired when the content of the InfoBox changes. + * @name InfoBox#content_changed + * @event + */ + google.maps.event.trigger(this, "content_changed"); +}; + +/** + * Sets the geographic location of the InfoBox. + * @param {LatLng} latlng + */ +InfoBox.prototype.setPosition = function (latlng) { + + this.position_ = latlng; + + if (this.div_) { + + this.draw(); + } + + /** + * This event is fired when the position of the InfoBox changes. + * @name InfoBox#position_changed + * @event + */ + google.maps.event.trigger(this, "position_changed"); +}; + +/** + * Sets the zIndex style for the InfoBox. + * @param {number} index + */ +InfoBox.prototype.setZIndex = function (index) { + + this.zIndex_ = index; + + if (this.div_) { + + this.div_.style.zIndex = index; + } + + /** + * This event is fired when the zIndex of the InfoBox changes. + * @name InfoBox#zindex_changed + * @event + */ + google.maps.event.trigger(this, "zindex_changed"); +}; + +/** + * Sets the visibility of the InfoBox. + * @param {boolean} isVisible + */ +InfoBox.prototype.setVisible = function (isVisible) { + + this.isHidden_ = !isVisible; + if (this.div_) { + this.div_.style.visibility = (this.isHidden_ ? "hidden" : "visible"); + } +}; + +/** + * Returns the content of the InfoBox. + * @returns {string} + */ +InfoBox.prototype.getContent = function () { + + return this.content_; +}; + +/** + * Returns the geographic location of the InfoBox. + * @returns {LatLng} + */ +InfoBox.prototype.getPosition = function () { + + return this.position_; +}; + +/** + * Returns the zIndex for the InfoBox. + * @returns {number} + */ +InfoBox.prototype.getZIndex = function () { + + return this.zIndex_; +}; + +/** + * Returns a flag indicating whether the InfoBox is visible. + * @returns {boolean} + */ +InfoBox.prototype.getVisible = function () { + + var isVisible; + + if ((typeof this.getMap() === "undefined") || (this.getMap() === null)) { + isVisible = false; + } else { + isVisible = !this.isHidden_; + } + return isVisible; +}; + +/** + * Shows the InfoBox. [Deprecated; use <tt>setVisible</tt> instead.] + */ +InfoBox.prototype.show = function () { + + this.isHidden_ = false; + if (this.div_) { + this.div_.style.visibility = "visible"; + } +}; + +/** + * Hides the InfoBox. [Deprecated; use <tt>setVisible</tt> instead.] + */ +InfoBox.prototype.hide = function () { + + this.isHidden_ = true; + if (this.div_) { + this.div_.style.visibility = "hidden"; + } +}; + +/** + * Adds the InfoBox to the specified map or Street View panorama. If <tt>anchor</tt> + * (usually a <tt>google.maps.Marker</tt>) is specified, the position + * of the InfoBox is set to the position of the <tt>anchor</tt>. If the + * anchor is dragged to a new location, the InfoBox moves as well. + * @param {Map|StreetViewPanorama} map + * @param {MVCObject} [anchor] + */ +InfoBox.prototype.open = function (map, anchor) { + + var me = this; + + if (anchor) { + + this.position_ = anchor.getPosition(); + this.moveListener_ = google.maps.event.addListener(anchor, "position_changed", function () { + me.setPosition(this.getPosition()); + }); + } + + this.setMap(map); + + if (this.div_) { + + this.panBox_(); + } +}; + +/** + * Removes the InfoBox from the map. + */ +InfoBox.prototype.close = function () { + + var i; + + if (this.closeListener_) { + + google.maps.event.removeListener(this.closeListener_); + this.closeListener_ = null; + } + + if (this.eventListeners_) { + + for (i = 0; i < this.eventListeners_.length; i++) { + + google.maps.event.removeListener(this.eventListeners_[i]); + } + this.eventListeners_ = null; + } + + if (this.moveListener_) { + + google.maps.event.removeListener(this.moveListener_); + this.moveListener_ = null; + } + + if (this.contextListener_) { + + google.maps.event.removeListener(this.contextListener_); + this.contextListener_ = null; + } + + this.setMap(null); +}; + + + + diff --git a/theme/js/bootstrap-datepicker.js b/theme/js/bootstrap-datepicker.js new file mode 100755 index 0000000..17faf34 --- /dev/null +++ b/theme/js/bootstrap-datepicker.js @@ -0,0 +1,474 @@ +/* ========================================================= + * bootstrap-datepicker.js + * http://www.eyecon.ro/bootstrap-datepicker + * ========================================================= + * Copyright 2012 Stefan Petre + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + +!function( $ ) { + + // Picker object + + var Datepicker = function(element, options){ + this.element = $(element); + this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||'yyyy-mm-dd'); + this.picker = $(DPGlobal.template) + .appendTo('body') + .on({ + click: $.proxy(this.click, this)//, + //mousedown: $.proxy(this.mousedown, this) + }); + this.isInput = this.element.is('input'); + this.component = this.element.is('.date') ? this.element.find('.add-on') : false; + + if (this.isInput) { + this.element.on({ + focus: $.proxy(this.show, this), + //blur: $.proxy(this.hide, this), + keyup: $.proxy(this.update, this) + }); + } else { + if (this.component){ + this.component.on('click', $.proxy(this.show, this)); + } else { + this.element.on('click', $.proxy(this.show, this)); + } + } + + this.minViewMode = options.minViewMode||this.element.data('date-minviewmode')||0; + if (typeof this.minViewMode === 'string') { + switch (this.minViewMode) { + case 'months': + this.minViewMode = 1; + break; + case 'years': + this.minViewMode = 2; + break; + default: + this.minViewMode = 0; + break; + } + } + this.viewMode = options.viewMode||this.element.data('date-viewmode')||0; + if (typeof this.viewMode === 'string') { + switch (this.viewMode) { + case 'months': + this.viewMode = 1; + break; + case 'years': + this.viewMode = 2; + break; + default: + this.viewMode = 0; + break; + } + } + this.startViewMode = this.viewMode; + this.weekStart = options.weekStart||this.element.data('date-weekstart')||0; + this.weekEnd = this.weekStart === 0 ? 6 : this.weekStart - 1; + this.onRender = options.onRender; + this.fillDow(); + this.fillMonths(); + this.update(); + this.showMode(); + }; + + Datepicker.prototype = { + constructor: Datepicker, + + show: function(e) { + this.picker.show(); + this.height = this.component ? this.component.outerHeight() : this.element.outerHeight(); + this.place(); + $(window).on('resize', $.proxy(this.place, this)); + if (e ) { + e.stopPropagation(); + e.preventDefault(); + } + if (!this.isInput) { + } + var that = this; + $(document).on('mousedown', function(ev){ + if ($(ev.target).closest('.datepicker').length == 0) { + that.hide(); + } + }); + this.element.trigger({ + type: 'show', + date: this.date + }); + }, + + hide: function(){ + this.picker.hide(); + $(window).off('resize', this.place); + this.viewMode = this.startViewMode; + this.showMode(); + if (!this.isInput) { + $(document).off('mousedown', this.hide); + } + //this.set(); + this.element.trigger({ + type: 'hide', + date: this.date + }); + }, + + set: function() { + var formated = DPGlobal.formatDate(this.date, this.format); + if (!this.isInput) { + if (this.component){ + this.element.find('input').prop('value', formated); + } + this.element.data('date', formated); + } else { + this.element.prop('value', formated); + } + }, + + setValue: function(newDate) { + if (typeof newDate === 'string') { + this.date = DPGlobal.parseDate(newDate, this.format); + } else { + this.date = new Date(newDate); + } + this.set(); + this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0); + this.fill(); + }, + + place: function(){ + var offset = this.component ? this.component.offset() : this.element.offset(); + this.picker.css({ + top: offset.top + this.height, + left: offset.left + }); + }, + + update: function(newDate){ + this.date = DPGlobal.parseDate( + typeof newDate === 'string' ? newDate : (this.isInput ? this.element.prop('value') : this.element.data('date')), + this.format + ); + this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0); + this.fill(); + }, + + fillDow: function(){ + var dowCnt = this.weekStart; + var html = '<tr>'; + while (dowCnt < this.weekStart + 7) { + html += '<th class="dow">'+DPGlobal.dates.daysMin[(dowCnt++)%7]+'</th>'; + } + html += '</tr>'; + this.picker.find('.datepicker-days thead').append(html); + }, + + fillMonths: function(){ + var html = ''; + var i = 0 + while (i < 12) { + html += '<span class="month">'+DPGlobal.dates.monthsShort[i++]+'</span>'; + } + this.picker.find('.datepicker-months td').append(html); + }, + + fill: function() { + var d = new Date(this.viewDate), + year = d.getFullYear(), + month = d.getMonth(), + currentDate = this.date.valueOf(); + this.picker.find('.datepicker-days th:eq(1)') + .text(DPGlobal.dates.months[month]+' '+year); + var prevMonth = new Date(year, month-1, 28,0,0,0,0), + day = DPGlobal.getDaysInMonth(prevMonth.getFullYear(), prevMonth.getMonth()); + prevMonth.setDate(day); + prevMonth.setDate(day - (prevMonth.getDay() - this.weekStart + 7)%7); + var nextMonth = new Date(prevMonth); + nextMonth.setDate(nextMonth.getDate() + 42); + nextMonth = nextMonth.valueOf(); + var html = []; + var clsName, + prevY, + prevM; + while(prevMonth.valueOf() < nextMonth) { + if (prevMonth.getDay() === this.weekStart) { + html.push('<tr>'); + } + clsName = this.onRender(prevMonth); + prevY = prevMonth.getFullYear(); + prevM = prevMonth.getMonth(); + if ((prevM < month && prevY === year) || prevY < year) { + clsName += ' old'; + } else if ((prevM > month && prevY === year) || prevY > year) { + clsName += ' new'; + } + if (prevMonth.valueOf() === currentDate) { + clsName += ' active'; + } + html.push('<td class="day '+clsName+'">'+prevMonth.getDate() + '</td>'); + if (prevMonth.getDay() === this.weekEnd) { + html.push('</tr>'); + } + prevMonth.setDate(prevMonth.getDate()+1); + } + this.picker.find('.datepicker-days tbody').empty().append(html.join('')); + var currentYear = this.date.getFullYear(); + + var months = this.picker.find('.datepicker-months') + .find('th:eq(1)') + .text(year) + .end() + .find('span').removeClass('active'); + if (currentYear === year) { + months.eq(this.date.getMonth()).addClass('active'); + } + + html = ''; + year = parseInt(year/10, 10) * 10; + var yearCont = this.picker.find('.datepicker-years') + .find('th:eq(1)') + .text(year + '-' + (year + 9)) + .end() + .find('td'); + year -= 1; + for (var i = -1; i < 11; i++) { + html += '<span class="year'+(i === -1 || i === 10 ? ' old' : '')+(currentYear === year ? ' active' : '')+'">'+year+'</span>'; + year += 1; + } + yearCont.html(html); + }, + + click: function(e) { + e.stopPropagation(); + e.preventDefault(); + var target = $(e.target).closest('span, td, th'); + if (target.length === 1) { + switch(target[0].nodeName.toLowerCase()) { + case 'th': + switch(target[0].className) { + case 'switch': + this.showMode(1); + break; + case 'prev': + case 'next': + this.viewDate['set'+DPGlobal.modes[this.viewMode].navFnc].call( + this.viewDate, + this.viewDate['get'+DPGlobal.modes[this.viewMode].navFnc].call(this.viewDate) + + DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1) + ); + this.fill(); + this.set(); + break; + } + break; + case 'span': + if (target.is('.month')) { + var month = target.parent().find('span').index(target); + this.viewDate.setMonth(month); + } else { + var year = parseInt(target.text(), 10)||0; + this.viewDate.setFullYear(year); + } + if (this.viewMode !== 0) { + this.date = new Date(this.viewDate); + this.element.trigger({ + type: 'changeDate', + date: this.date, + viewMode: DPGlobal.modes[this.viewMode].clsName + }); + } + this.showMode(-1); + this.fill(); + this.set(); + break; + case 'td': + if (target.is('.day') && !target.is('.disabled')){ + var day = parseInt(target.text(), 10)||1; + var month = this.viewDate.getMonth(); + if (target.is('.old')) { + month -= 1; + } else if (target.is('.new')) { + month += 1; + } + var year = this.viewDate.getFullYear(); + this.date = new Date(year, month, day,0,0,0,0); + this.viewDate = new Date(year, month, Math.min(28, day),0,0,0,0); + this.fill(); + this.set(); + this.element.trigger({ + type: 'changeDate', + date: this.date, + viewMode: DPGlobal.modes[this.viewMode].clsName + }); + } + break; + } + } + }, + + mousedown: function(e){ + e.stopPropagation(); + e.preventDefault(); + }, + + showMode: function(dir) { + if (dir) { + this.viewMode = Math.max(this.minViewMode, Math.min(2, this.viewMode + dir)); + } + this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).show(); + } + }; + + $.fn.datepicker = function ( option, val ) { + return this.each(function () { + var $this = $(this), + data = $this.data('datepicker'), + options = typeof option === 'object' && option; + if (!data) { + $this.data('datepicker', (data = new Datepicker(this, $.extend({}, $.fn.datepicker.defaults,options)))); + } + if (typeof option === 'string') data[option](val); + }); + }; + + $.fn.datepicker.defaults = { + onRender: function(date) { + return ''; + } + }; + $.fn.datepicker.Constructor = Datepicker; + + var DPGlobal = { + modes: [ + { + clsName: 'days', + navFnc: 'Month', + navStep: 1 + }, + { + clsName: 'months', + navFnc: 'FullYear', + navStep: 1 + }, + { + clsName: 'years', + navFnc: 'FullYear', + navStep: 10 + }], + dates:{ + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], + daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], + daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] + }, + isLeapYear: function (year) { + return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)) + }, + getDaysInMonth: function (year, month) { + return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] + }, + parseFormat: function(format){ + var separator = format.match(/[.\/\-\s].*?/), + parts = format.split(/\W+/); + if (!separator || !parts || parts.length === 0){ + throw new Error("Invalid date format."); + } + return {separator: separator, parts: parts}; + }, + parseDate: function(date, format) { + var parts = date.split(format.separator), + date = new Date(), + val; + date.setHours(0); + date.setMinutes(0); + date.setSeconds(0); + date.setMilliseconds(0); + if (parts.length === format.parts.length) { + var year = date.getFullYear(), day = date.getDate(), month = date.getMonth(); + for (var i=0, cnt = format.parts.length; i < cnt; i++) { + val = parseInt(parts[i], 10)||1; + switch(format.parts[i]) { + case 'dd': + case 'd': + day = val; + date.setDate(val); + break; + case 'mm': + case 'm': + month = val - 1; + date.setMonth(val - 1); + break; + case 'yy': + year = 2000 + val; + date.setFullYear(2000 + val); + break; + case 'yyyy': + year = val; + date.setFullYear(val); + break; + } + } + date = new Date(year, month, day, 0 ,0 ,0); + } + return date; + }, + formatDate: function(date, format){ + var val = { + d: date.getDate(), + m: date.getMonth() + 1, + yy: date.getFullYear().toString().substring(2), + yyyy: date.getFullYear() + }; + val.dd = (val.d < 10 ? '0' : '') + val.d; + val.mm = (val.m < 10 ? '0' : '') + val.m; + var date = []; + for (var i=0, cnt = format.parts.length; i < cnt; i++) { + date.push(val[format.parts[i]]); + } + return date.join(format.separator); + }, + headTemplate: '<thead>'+ + '<tr>'+ + '<th class="prev">&lsaquo;</th>'+ + '<th colspan="5" class="switch"></th>'+ + '<th class="next">&rsaquo;</th>'+ + '</tr>'+ + '</thead>', + contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>' + }; + DPGlobal.template = '<div class="datepicker dropdown-menu">'+ + '<div class="datepicker-days">'+ + '<table class=" table-condensed">'+ + DPGlobal.headTemplate+ + '<tbody></tbody>'+ + '</table>'+ + '</div>'+ + '<div class="datepicker-months">'+ + '<table class="table-condensed">'+ + DPGlobal.headTemplate+ + DPGlobal.contTemplate+ + '</table>'+ + '</div>'+ + '<div class="datepicker-years">'+ + '<table class="table-condensed">'+ + DPGlobal.headTemplate+ + DPGlobal.contTemplate+ + '</table>'+ + '</div>'+ + '</div>'; + +}( window.jQuery ); \ No newline at end of file diff --git a/theme/js/bootstrap.js b/theme/js/bootstrap.js new file mode 100755 index 0000000..2c64257 --- /dev/null +++ b/theme/js/bootstrap.js @@ -0,0 +1,1999 @@ +/** +* bootstrap.js v3.0.0 by @fat and @mdo +* Copyright 2013 Twitter Inc. +* http://www.apache.org/licenses/LICENSE-2.0 +*/ +if (!jQuery) { throw new Error("Bootstrap requires jQuery") } + +/* ======================================================================== + * Bootstrap: transition.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#transitions + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) + // ============================================================ + + function transitionEnd() { + var el = document.createElement('bootstrap') + + var transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd otransitionend' + , 'transition' : 'transitionend' + } + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return { end: transEndEventNames[name] } + } + } + } + + // http://blog.alexmaccaw.com/css-transitions + $.fn.emulateTransitionEnd = function (duration) { + var called = false, $el = this + $(this).one($.support.transition.end, function () { called = true }) + var callback = function () { if (!called) $($el).trigger($.support.transition.end) } + setTimeout(callback, duration) + return this + } + + $(function () { + $.support.transition = transitionEnd() + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: alert.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#alerts + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // ALERT CLASS DEFINITION + // ====================== + + var dismiss = '[data-dismiss="alert"]' + var Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = $(selector) + + if (e) e.preventDefault() + + if (!$parent.length) { + $parent = $this.hasClass('alert') ? $this : $this.parent() + } + + $parent.trigger(e = $.Event('close.bs.alert')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent.trigger('closed.bs.alert').remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent + .one($.support.transition.end, removeElement) + .emulateTransitionEnd(150) : + removeElement() + } + + + // ALERT PLUGIN DEFINITION + // ======================= + + var old = $.fn.alert + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.alert') + + if (!data) $this.data('bs.alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + // ALERT NO CONFLICT + // ================= + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + // ALERT DATA-API + // ============== + + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: button.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#buttons + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // BUTTON PUBLIC CLASS DEFINITION + // ============================== + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Button.DEFAULTS, options) + } + + Button.DEFAULTS = { + loadingText: 'loading...' + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + var $el = this.$element + var val = $el.is('input') ? 'val' : 'html' + var data = $el.data() + + state = state + 'Text' + + if (!data.resetText) $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d); + }, 0) + } + + Button.prototype.toggle = function () { + var $parent = this.$element.closest('[data-toggle="buttons"]') + + if ($parent.length) { + var $input = this.$element.find('input') + .prop('checked', !this.$element.hasClass('active')) + .trigger('change') + if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') + } + + this.$element.toggleClass('active') + } + + + // BUTTON PLUGIN DEFINITION + // ======================== + + var old = $.fn.button + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.button') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.button', (data = new Button(this, options))) + + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.Constructor = Button + + + // BUTTON NO CONFLICT + // ================== + + $.fn.button.noConflict = function () { + $.fn.button = old + return this + } + + + // BUTTON DATA-API + // =============== + + $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + e.preventDefault() + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: carousel.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#carousel + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // CAROUSEL CLASS DEFINITION + // ========================= + + var Carousel = function (element, options) { + this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') + this.options = options + this.paused = + this.sliding = + this.interval = + this.$active = + this.$items = null + + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.DEFAULTS = { + interval: 5000 + , pause: 'hover' + , wrap: true + } + + Carousel.prototype.cycle = function (e) { + e || (this.paused = false) + + this.interval && clearInterval(this.interval) + + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + + return this + } + + Carousel.prototype.getActiveIndex = function () { + this.$active = this.$element.find('.item.active') + this.$items = this.$active.parent().children() + + return this.$items.index(this.$active) + } + + Carousel.prototype.to = function (pos) { + var that = this + var activeIndex = this.getActiveIndex() + + if (pos > (this.$items.length - 1) || pos < 0) return + + if (this.sliding) return this.$element.one('slid', function () { that.to(pos) }) + if (activeIndex == pos) return this.pause().cycle() + + return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) + } + + Carousel.prototype.pause = function (e) { + e || (this.paused = true) + + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end) + this.cycle(true) + } + + this.interval = clearInterval(this.interval) + + return this + } + + Carousel.prototype.next = function () { + if (this.sliding) return + return this.slide('next') + } + + Carousel.prototype.prev = function () { + if (this.sliding) return + return this.slide('prev') + } + + Carousel.prototype.slide = function (type, next) { + var $active = this.$element.find('.item.active') + var $next = next || $active[type]() + var isCycling = this.interval + var direction = type == 'next' ? 'left' : 'right' + var fallback = type == 'next' ? 'first' : 'last' + var that = this + + if (!$next.length) { + if (!this.options.wrap) return + $next = this.$element.find('.item')[fallback]() + } + + this.sliding = true + + isCycling && this.pause() + + var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) + + if ($next.hasClass('active')) return + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + this.$element.one('slid', function () { + var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) + $nextIndicator && $nextIndicator.addClass('active') + }) + } + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + $active + .one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + .emulateTransitionEnd(600) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + + // CAROUSEL PLUGIN DEFINITION + // ========================== + + var old = $.fn.carousel + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.carousel') + var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) + var action = typeof option == 'string' ? option : options.slide + + if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.pause().cycle() + }) + } + + $.fn.carousel.Constructor = Carousel + + + // CAROUSEL NO CONFLICT + // ==================== + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old + return this + } + + + // CAROUSEL DATA-API + // ================= + + $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { + var $this = $(this), href + var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + var options = $.extend({}, $target.data(), $this.data()) + var slideIndex = $this.attr('data-slide-to') + if (slideIndex) options.interval = false + + $target.carousel(options) + + if (slideIndex = $this.attr('data-slide-to')) { + $target.data('bs.carousel').to(slideIndex) + } + + e.preventDefault() + }) + + $(window).on('load', function () { + $('[data-ride="carousel"]').each(function () { + var $carousel = $(this) + $carousel.carousel($carousel.data()) + }) + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: collapse.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#collapse + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // COLLAPSE PUBLIC CLASS DEFINITION + // ================================ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Collapse.DEFAULTS, options) + this.transitioning = null + + if (this.options.parent) this.$parent = $(this.options.parent) + if (this.options.toggle) this.toggle() + } + + Collapse.DEFAULTS = { + toggle: true + } + + Collapse.prototype.dimension = function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + Collapse.prototype.show = function () { + if (this.transitioning || this.$element.hasClass('in')) return + + var startEvent = $.Event('show.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var actives = this.$parent && this.$parent.find('> .panel > .in') + + if (actives && actives.length) { + var hasData = actives.data('bs.collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('bs.collapse', null) + } + + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + .addClass('collapsing') + [dimension](0) + + this.transitioning = 1 + + var complete = function () { + this.$element + .removeClass('collapsing') + .addClass('in') + [dimension]('auto') + this.transitioning = 0 + this.$element.trigger('shown.bs.collapse') + } + + if (!$.support.transition) return complete.call(this) + + var scrollSize = $.camelCase(['scroll', dimension].join('-')) + + this.$element + .one($.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(350) + [dimension](this.$element[0][scrollSize]) + } + + Collapse.prototype.hide = function () { + if (this.transitioning || !this.$element.hasClass('in')) return + + var startEvent = $.Event('hide.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var dimension = this.dimension() + + this.$element + [dimension](this.$element[dimension]()) + [0].offsetHeight + + this.$element + .addClass('collapsing') + .removeClass('collapse') + .removeClass('in') + + this.transitioning = 1 + + var complete = function () { + this.transitioning = 0 + this.$element + .trigger('hidden.bs.collapse') + .removeClass('collapsing') + .addClass('collapse') + } + + if (!$.support.transition) return complete.call(this) + + this.$element + [dimension](0) + .one($.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(350) + } + + Collapse.prototype.toggle = function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + + // COLLAPSE PLUGIN DEFINITION + // ========================== + + var old = $.fn.collapse + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.collapse') + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) + + if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.Constructor = Collapse + + + // COLLAPSE NO CONFLICT + // ==================== + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + // COLLAPSE DATA-API + // ================= + + $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + var target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + var $target = $(target) + var data = $target.data('bs.collapse') + var option = data ? 'toggle' : $this.data() + var parent = $this.attr('data-parent') + var $parent = parent && $(parent) + + if (!data || !data.transitioning) { + if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') + $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + } + + $target.collapse(option) + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: dropdown.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#dropdowns + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // DROPDOWN CLASS DEFINITION + // ========================= + + var backdrop = '.dropdown-backdrop' + var toggle = '[data-toggle=dropdown]' + var Dropdown = function (element) { + var $el = $(element).on('click.bs.dropdown', this.toggle) + } + + Dropdown.prototype.toggle = function (e) { + var $this = $(this) + + if ($this.is('.disabled, :disabled')) return + + var $parent = getParent($this) + var isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { + // if mobile we we use a backdrop because click events don't delegate + $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus) + } + + $parent.trigger(e = $.Event('show.bs.dropdown')) + + if (e.isDefaultPrevented()) return + + $parent + .toggleClass('open') + .trigger('shown.bs.dropdown') + + $this.focus() + } + + return false + } + + Dropdown.prototype.keydown = function (e) { + if (!/(38|40|27)/.test(e.keyCode)) return + + var $this = $(this) + + e.preventDefault() + e.stopPropagation() + + if ($this.is('.disabled, :disabled')) return + + var $parent = getParent($this) + var isActive = $parent.hasClass('open') + + if (!isActive || (isActive && e.keyCode == 27)) { + if (e.which == 27) $parent.find(toggle).focus() + return $this.click() + } + + var $items = $('[role=menu] li:not(.divider):visible a', $parent) + + if (!$items.length) return + + var index = $items.index($items.filter(':focus')) + + if (e.keyCode == 38 && index > 0) index-- // up + if (e.keyCode == 40 && index < $items.length - 1) index++ // down + if (!~index) index=0 + + $items.eq(index).focus() + } + + function clearMenus() { + $(backdrop).remove() + $(toggle).each(function (e) { + var $parent = getParent($(this)) + if (!$parent.hasClass('open')) return + $parent.trigger(e = $.Event('hide.bs.dropdown')) + if (e.isDefaultPrevented()) return + $parent.removeClass('open').trigger('hidden.bs.dropdown') + }) + } + + function getParent($this) { + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + var $parent = selector && $(selector) + + return $parent && $parent.length ? $parent : $this.parent() + } + + + // DROPDOWN PLUGIN DEFINITION + // ========================== + + var old = $.fn.dropdown + + $.fn.dropdown = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('dropdown') + + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + // DROPDOWN NO CONFLICT + // ==================== + + $.fn.dropdown.noConflict = function () { + $.fn.dropdown = old + return this + } + + + // APPLY TO STANDARD DROPDOWN ELEMENTS + // =================================== + + $(document) + .on('click.bs.dropdown.data-api', clearMenus) + .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) + .on('click.bs.dropdown.data-api' , toggle, Dropdown.prototype.toggle) + .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: modal.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#modals + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // MODAL CLASS DEFINITION + // ====================== + + var Modal = function (element, options) { + this.options = options + this.$element = $(element) + this.$backdrop = + this.isShown = null + + if (this.options.remote) this.$element.load(this.options.remote) + } + + Modal.DEFAULTS = { + backdrop: true + , keyboard: true + , show: true + } + + Modal.prototype.toggle = function (_relatedTarget) { + return this[!this.isShown ? 'show' : 'hide'](_relatedTarget) + } + + Modal.prototype.show = function (_relatedTarget) { + var that = this + var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + this.isShown = true + + this.escape() + + this.$element.on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) + + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body) // don't move modals dom position + } + + that.$element.show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element + .addClass('in') + .attr('aria-hidden', false) + + that.enforceFocus() + + var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) + + transition ? + that.$element.find('.modal-dialog') // wait for modal to slide in + .one($.support.transition.end, function () { + that.$element.focus().trigger(e) + }) + .emulateTransitionEnd(300) : + that.$element.focus().trigger(e) + }) + } + + Modal.prototype.hide = function (e) { + if (e) e.preventDefault() + + e = $.Event('hide.bs.modal') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + this.escape() + + $(document).off('focusin.bs.modal') + + this.$element + .removeClass('in') + .attr('aria-hidden', true) + .off('click.dismiss.modal') + + $.support.transition && this.$element.hasClass('fade') ? + this.$element + .one($.support.transition.end, $.proxy(this.hideModal, this)) + .emulateTransitionEnd(300) : + this.hideModal() + } + + Modal.prototype.enforceFocus = function () { + $(document) + .off('focusin.bs.modal') // guard against infinite focus loop + .on('focusin.bs.modal', $.proxy(function (e) { + if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { + this.$element.focus() + } + }, this)) + } + + Modal.prototype.escape = function () { + if (this.isShown && this.options.keyboard) { + this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) { + e.which == 27 && this.hide() + }, this)) + } else if (!this.isShown) { + this.$element.off('keyup.dismiss.bs.modal') + } + } + + Modal.prototype.hideModal = function () { + var that = this + this.$element.hide() + this.backdrop(function () { + that.removeBackdrop() + that.$element.trigger('hidden.bs.modal') + }) + } + + Modal.prototype.removeBackdrop = function () { + this.$backdrop && this.$backdrop.remove() + this.$backdrop = null + } + + Modal.prototype.backdrop = function (callback) { + var that = this + var animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') + .appendTo(document.body) + + this.$element.on('click.dismiss.modal', $.proxy(function (e) { + if (e.target !== e.currentTarget) return + this.options.backdrop == 'static' + ? this.$element[0].focus.call(this.$element[0]) + : this.hide.call(this) + }, this)) + + if (doAnimate) this.$backdrop[0].offsetWidth // force reflow + + this.$backdrop.addClass('in') + + if (!callback) return + + doAnimate ? + this.$backdrop + .one($.support.transition.end, callback) + .emulateTransitionEnd(150) : + callback() + + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass('in') + + $.support.transition && this.$element.hasClass('fade')? + this.$backdrop + .one($.support.transition.end, callback) + .emulateTransitionEnd(150) : + callback() + + } else if (callback) { + callback() + } + } + + + // MODAL PLUGIN DEFINITION + // ======================= + + var old = $.fn.modal + + $.fn.modal = function (option, _relatedTarget) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.modal') + var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) + + if (!data) $this.data('bs.modal', (data = new Modal(this, options))) + if (typeof option == 'string') data[option](_relatedTarget) + else if (options.show) data.show(_relatedTarget) + }) + } + + $.fn.modal.Constructor = Modal + + + // MODAL NO CONFLICT + // ================= + + $.fn.modal.noConflict = function () { + $.fn.modal = old + return this + } + + + // MODAL DATA-API + // ============== + + $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { + var $this = $(this) + var href = $this.attr('href') + var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7 + var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) + + e.preventDefault() + + $target + .modal(option, this) + .one('hide', function () { + $this.is(':visible') && $this.focus() + }) + }) + + $(document) + .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') }) + .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: tooltip.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#tooltip + * Inspired by the original jQuery.tipsy by Jason Frame + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // TOOLTIP PUBLIC CLASS DEFINITION + // =============================== + + var Tooltip = function (element, options) { + this.type = + this.options = + this.enabled = + this.timeout = + this.hoverState = + this.$element = null + + this.init('tooltip', element, options) + } + + Tooltip.DEFAULTS = { + animation: true + , placement: 'top' + , selector: false + , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' + , trigger: 'hover focus' + , title: '' + , delay: 0 + , html: false + , container: false + } + + Tooltip.prototype.init = function (type, element, options) { + this.enabled = true + this.type = type + this.$element = $(element) + this.options = this.getOptions(options) + + var triggers = this.options.trigger.split(' ') + + for (var i = triggers.length; i--;) { + var trigger = triggers[i] + + if (trigger == 'click') { + this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) + } else if (trigger != 'manual') { + var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus' + var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur' + + this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) + this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) + } + } + + this.options.selector ? + (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : + this.fixTitle() + } + + Tooltip.prototype.getDefaults = function () { + return Tooltip.DEFAULTS + } + + Tooltip.prototype.getOptions = function (options) { + options = $.extend({}, this.getDefaults(), this.$element.data(), options) + + if (options.delay && typeof options.delay == 'number') { + options.delay = { + show: options.delay + , hide: options.delay + } + } + + return options + } + + Tooltip.prototype.getDelegateOptions = function () { + var options = {} + var defaults = this.getDefaults() + + this._options && $.each(this._options, function (key, value) { + if (defaults[key] != value) options[key] = value + }) + + return options + } + + Tooltip.prototype.enter = function (obj) { + var self = obj instanceof this.constructor ? + obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) + + clearTimeout(self.timeout) + + self.hoverState = 'in' + + if (!self.options.delay || !self.options.delay.show) return self.show() + + self.timeout = setTimeout(function () { + if (self.hoverState == 'in') self.show() + }, self.options.delay.show) + } + + Tooltip.prototype.leave = function (obj) { + var self = obj instanceof this.constructor ? + obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) + + clearTimeout(self.timeout) + + self.hoverState = 'out' + + if (!self.options.delay || !self.options.delay.hide) return self.hide() + + self.timeout = setTimeout(function () { + if (self.hoverState == 'out') self.hide() + }, self.options.delay.hide) + } + + Tooltip.prototype.show = function () { + var e = $.Event('show.bs.'+ this.type) + + if (this.hasContent() && this.enabled) { + this.$element.trigger(e) + + if (e.isDefaultPrevented()) return + + var $tip = this.tip() + + this.setContent() + + if (this.options.animation) $tip.addClass('fade') + + var placement = typeof this.options.placement == 'function' ? + this.options.placement.call(this, $tip[0], this.$element[0]) : + this.options.placement + + var autoToken = /\s?auto?\s?/i + var autoPlace = autoToken.test(placement) + if (autoPlace) placement = placement.replace(autoToken, '') || 'top' + + $tip + .detach() + .css({ top: 0, left: 0, display: 'block' }) + .addClass(placement) + + this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) + + var pos = this.getPosition() + var actualWidth = $tip[0].offsetWidth + var actualHeight = $tip[0].offsetHeight + + if (autoPlace) { + var $parent = this.$element.parent() + + var orgPlacement = placement + var docScroll = document.documentElement.scrollTop || document.body.scrollTop + var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth() + var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight() + var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left + + placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' : + placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' : + placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' : + placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' : + placement + + $tip + .removeClass(orgPlacement) + .addClass(placement) + } + + var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) + + this.applyPlacement(calculatedOffset, placement) + this.$element.trigger('shown.bs.' + this.type) + } + } + + Tooltip.prototype.applyPlacement = function(offset, placement) { + var replace + var $tip = this.tip() + var width = $tip[0].offsetWidth + var height = $tip[0].offsetHeight + + // manually read margins because getBoundingClientRect includes difference + var marginTop = parseInt($tip.css('margin-top'), 10) + var marginLeft = parseInt($tip.css('margin-left'), 10) + + // we must check for NaN for ie 8/9 + if (isNaN(marginTop)) marginTop = 0 + if (isNaN(marginLeft)) marginLeft = 0 + + offset.top = offset.top + marginTop + offset.left = offset.left + marginLeft + + $tip + .offset(offset) + .addClass('in') + + // check to see if placing tip in new offset caused the tip to resize itself + var actualWidth = $tip[0].offsetWidth + var actualHeight = $tip[0].offsetHeight + + if (placement == 'top' && actualHeight != height) { + replace = true + offset.top = offset.top + height - actualHeight + } + + if (/bottom|top/.test(placement)) { + var delta = 0 + + if (offset.left < 0) { + delta = offset.left * -2 + offset.left = 0 + + $tip.offset(offset) + + actualWidth = $tip[0].offsetWidth + actualHeight = $tip[0].offsetHeight + } + + this.replaceArrow(delta - width + actualWidth, actualWidth, 'left') + } else { + this.replaceArrow(actualHeight - height, actualHeight, 'top') + } + + if (replace) $tip.offset(offset) + } + + Tooltip.prototype.replaceArrow = function(delta, dimension, position) { + this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + "%") : '') + } + + Tooltip.prototype.setContent = function () { + var $tip = this.tip() + var title = this.getTitle() + + $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) + $tip.removeClass('fade in top bottom left right') + } + + Tooltip.prototype.hide = function () { + var that = this + var $tip = this.tip() + var e = $.Event('hide.bs.' + this.type) + + function complete() { + if (that.hoverState != 'in') $tip.detach() + } + + this.$element.trigger(e) + + if (e.isDefaultPrevented()) return + + $tip.removeClass('in') + + $.support.transition && this.$tip.hasClass('fade') ? + $tip + .one($.support.transition.end, complete) + .emulateTransitionEnd(150) : + complete() + + this.$element.trigger('hidden.bs.' + this.type) + + return this + } + + Tooltip.prototype.fixTitle = function () { + var $e = this.$element + if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') { + $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') + } + } + + Tooltip.prototype.hasContent = function () { + return this.getTitle() + } + + Tooltip.prototype.getPosition = function () { + var el = this.$element[0] + return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : { + width: el.offsetWidth + , height: el.offsetHeight + }, this.$element.offset()) + } + + Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { + return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : + placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : + placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : + /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } + } + + Tooltip.prototype.getTitle = function () { + var title + var $e = this.$element + var o = this.options + + title = $e.attr('data-original-title') + || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) + + return title + } + + Tooltip.prototype.tip = function () { + return this.$tip = this.$tip || $(this.options.template) + } + + Tooltip.prototype.arrow = function () { + return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow') + } + + Tooltip.prototype.validate = function () { + if (!this.$element[0].parentNode) { + this.hide() + this.$element = null + this.options = null + } + } + + Tooltip.prototype.enable = function () { + this.enabled = true + } + + Tooltip.prototype.disable = function () { + this.enabled = false + } + + Tooltip.prototype.toggleEnabled = function () { + this.enabled = !this.enabled + } + + Tooltip.prototype.toggle = function (e) { + var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this + self.tip().hasClass('in') ? self.leave(self) : self.enter(self) + } + + Tooltip.prototype.destroy = function () { + this.hide().$element.off('.' + this.type).removeData('bs.' + this.type) + } + + + // TOOLTIP PLUGIN DEFINITION + // ========================= + + var old = $.fn.tooltip + + $.fn.tooltip = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.tooltip') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.tooltip.Constructor = Tooltip + + + // TOOLTIP NO CONFLICT + // =================== + + $.fn.tooltip.noConflict = function () { + $.fn.tooltip = old + return this + } + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: popover.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#popovers + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // POPOVER PUBLIC CLASS DEFINITION + // =============================== + + var Popover = function (element, options) { + this.init('popover', element, options) + } + + if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') + + Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, { + placement: 'right' + , trigger: 'click' + , content: '' + , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' + }) + + + // NOTE: POPOVER EXTENDS tooltip.js + // ================================ + + Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) + + Popover.prototype.constructor = Popover + + Popover.prototype.getDefaults = function () { + return Popover.DEFAULTS + } + + Popover.prototype.setContent = function () { + var $tip = this.tip() + var title = this.getTitle() + var content = this.getContent() + + $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) + $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content) + + $tip.removeClass('fade top bottom left right in') + + // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do + // this manually by checking the contents. + if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() + } + + Popover.prototype.hasContent = function () { + return this.getTitle() || this.getContent() + } + + Popover.prototype.getContent = function () { + var $e = this.$element + var o = this.options + + return $e.attr('data-content') + || (typeof o.content == 'function' ? + o.content.call($e[0]) : + o.content) + } + + Popover.prototype.arrow = function () { + return this.$arrow = this.$arrow || this.tip().find('.arrow') + } + + Popover.prototype.tip = function () { + if (!this.$tip) this.$tip = $(this.options.template) + return this.$tip + } + + + // POPOVER PLUGIN DEFINITION + // ========================= + + var old = $.fn.popover + + $.fn.popover = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.popover') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.popover', (data = new Popover(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.popover.Constructor = Popover + + + // POPOVER NO CONFLICT + // =================== + + $.fn.popover.noConflict = function () { + $.fn.popover = old + return this + } + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: scrollspy.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#scrollspy + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // SCROLLSPY CLASS DEFINITION + // ========================== + + function ScrollSpy(element, options) { + var href + var process = $.proxy(this.process, this) + + this.$element = $(element).is('body') ? $(window) : $(element) + this.$body = $('body') + this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process) + this.options = $.extend({}, ScrollSpy.DEFAULTS, options) + this.selector = (this.options.target + || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + || '') + ' .nav li > a' + this.offsets = $([]) + this.targets = $([]) + this.activeTarget = null + + this.refresh() + this.process() + } + + ScrollSpy.DEFAULTS = { + offset: 10 + } + + ScrollSpy.prototype.refresh = function () { + var offsetMethod = this.$element[0] == window ? 'offset' : 'position' + + this.offsets = $([]) + this.targets = $([]) + + var self = this + var $targets = this.$body + .find(this.selector) + .map(function () { + var $el = $(this) + var href = $el.data('target') || $el.attr('href') + var $href = /^#\w/.test(href) && $(href) + + return ($href + && $href.length + && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null + }) + .sort(function (a, b) { return a[0] - b[0] }) + .each(function () { + self.offsets.push(this[0]) + self.targets.push(this[1]) + }) + } + + ScrollSpy.prototype.process = function () { + var scrollTop = this.$scrollElement.scrollTop() + this.options.offset + var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight + var maxScroll = scrollHeight - this.$scrollElement.height() + var offsets = this.offsets + var targets = this.targets + var activeTarget = this.activeTarget + var i + + if (scrollTop >= maxScroll) { + return activeTarget != (i = targets.last()[0]) && this.activate(i) + } + + for (i = offsets.length; i--;) { + activeTarget != targets[i] + && scrollTop >= offsets[i] + && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) + && this.activate( targets[i] ) + } + } + + ScrollSpy.prototype.activate = function (target) { + this.activeTarget = target + + $(this.selector) + .parents('.active') + .removeClass('active') + + var selector = this.selector + + '[data-target="' + target + '"],' + + this.selector + '[href="' + target + '"]' + + var active = $(selector) + .parents('li') + .addClass('active') + + if (active.parent('.dropdown-menu').length) { + active = active + .closest('li.dropdown') + .addClass('active') + } + + active.trigger('activate') + } + + + // SCROLLSPY PLUGIN DEFINITION + // =========================== + + var old = $.fn.scrollspy + + $.fn.scrollspy = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.scrollspy') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.scrollspy.Constructor = ScrollSpy + + + // SCROLLSPY NO CONFLICT + // ===================== + + $.fn.scrollspy.noConflict = function () { + $.fn.scrollspy = old + return this + } + + + // SCROLLSPY DATA-API + // ================== + + $(window).on('load', function () { + $('[data-spy="scroll"]').each(function () { + var $spy = $(this) + $spy.scrollspy($spy.data()) + }) + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: tab.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#tabs + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // TAB CLASS DEFINITION + // ==================== + + var Tab = function (element) { + this.element = $(element) + } + + Tab.prototype.show = function () { + var $this = this.element + var $ul = $this.closest('ul:not(.dropdown-menu)') + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + if ($this.parent('li').hasClass('active')) return + + var previous = $ul.find('.active:last a')[0] + var e = $.Event('show.bs.tab', { + relatedTarget: previous + }) + + $this.trigger(e) + + if (e.isDefaultPrevented()) return + + var $target = $(selector) + + this.activate($this.parent('li'), $ul) + this.activate($target, $target.parent(), function () { + $this.trigger({ + type: 'shown.bs.tab' + , relatedTarget: previous + }) + }) + } + + Tab.prototype.activate = function (element, container, callback) { + var $active = container.find('> .active') + var transition = callback + && $.support.transition + && $active.hasClass('fade') + + function next() { + $active + .removeClass('active') + .find('> .dropdown-menu > .active') + .removeClass('active') + + element.addClass('active') + + if (transition) { + element[0].offsetWidth // reflow for transition + element.addClass('in') + } else { + element.removeClass('fade') + } + + if (element.parent('.dropdown-menu')) { + element.closest('li.dropdown').addClass('active') + } + + callback && callback() + } + + transition ? + $active + .one($.support.transition.end, next) + .emulateTransitionEnd(150) : + next() + + $active.removeClass('in') + } + + + // TAB PLUGIN DEFINITION + // ===================== + + var old = $.fn.tab + + $.fn.tab = function ( option ) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.tab') + + if (!data) $this.data('bs.tab', (data = new Tab(this))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.tab.Constructor = Tab + + + // TAB NO CONFLICT + // =============== + + $.fn.tab.noConflict = function () { + $.fn.tab = old + return this + } + + + // TAB DATA-API + // ============ + + $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { + e.preventDefault() + $(this).tab('show') + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: affix.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#affix + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // AFFIX CLASS DEFINITION + // ====================== + + var Affix = function (element, options) { + this.options = $.extend({}, Affix.DEFAULTS, options) + this.$window = $(window) + .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) + .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) + + this.$element = $(element) + this.affixed = + this.unpin = null + + this.checkPosition() + } + + Affix.RESET = 'affix affix-top affix-bottom' + + Affix.DEFAULTS = { + offset: 0 + } + + Affix.prototype.checkPositionWithEventLoop = function () { + setTimeout($.proxy(this.checkPosition, this), 1) + } + + Affix.prototype.checkPosition = function () { + if (!this.$element.is(':visible')) return + + var scrollHeight = $(document).height() + var scrollTop = this.$window.scrollTop() + var position = this.$element.offset() + var offset = this.options.offset + var offsetTop = offset.top + var offsetBottom = offset.bottom + + if (typeof offset != 'object') offsetBottom = offsetTop = offset + if (typeof offsetTop == 'function') offsetTop = offset.top() + if (typeof offsetBottom == 'function') offsetBottom = offset.bottom() + + var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false : + offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' : + offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false + + if (this.affixed === affix) return + if (this.unpin) this.$element.css('top', '') + + this.affixed = affix + this.unpin = affix == 'bottom' ? position.top - scrollTop : null + + this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : '')) + + if (affix == 'bottom') { + this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() }) + } + } + + + // AFFIX PLUGIN DEFINITION + // ======================= + + var old = $.fn.affix + + $.fn.affix = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.affix') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.affix', (data = new Affix(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.affix.Constructor = Affix + + + // AFFIX NO CONFLICT + // ================= + + $.fn.affix.noConflict = function () { + $.fn.affix = old + return this + } + + + // AFFIX DATA-API + // ============== + + $(window).on('load', function () { + $('[data-spy="affix"]').each(function () { + var $spy = $(this) + var data = $spy.data() + + data.offset = data.offset || {} + + if (data.offsetBottom) data.offset.bottom = data.offsetBottom + if (data.offsetTop) data.offset.top = data.offsetTop + + $spy.affix(data) + }) + }) + +}(window.jQuery); diff --git a/theme/js/bootstrap.min.js b/theme/js/bootstrap.min.js new file mode 100755 index 0000000..1765631 --- /dev/null +++ b/theme/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/** +* bootstrap.js v3.0.0 by @fat and @mdo +* Copyright 2013 Twitter Inc. +* http://www.apache.org/licenses/LICENSE-2.0 +*/ +if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("dropdown");d||c.data("dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p=this.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach()}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery); \ No newline at end of file diff --git a/theme/js/dataTable/as3/ZeroClipboard.as b/theme/js/dataTable/as3/ZeroClipboard.as new file mode 100755 index 0000000..d6b9c07 --- /dev/null +++ b/theme/js/dataTable/as3/ZeroClipboard.as @@ -0,0 +1,221 @@ +/* Compile using: mxmlc --target-player=10.0.0 ZeroClipboard.as */ +package { + import flash.display.Stage; + import flash.display.Sprite; + import flash.display.LoaderInfo; + import flash.display.StageScaleMode; + import flash.events.*; + import flash.display.StageAlign; + import flash.display.StageScaleMode; + import flash.external.ExternalInterface; + import flash.system.Security; + import flash.utils.*; + import flash.system.System; + import flash.net.FileReference; + import flash.net.FileFilter; + + public class ZeroClipboard extends Sprite { + + private var domId:String = ''; + private var button:Sprite; + private var clipText:String = 'blank'; + private var fileName:String = ''; + private var action:String = 'copy'; + private var incBom:Boolean = true; + private var charSet:String = 'utf8'; + + + public function ZeroClipboard() { + // constructor, setup event listeners and external interfaces + stage.scaleMode = StageScaleMode.EXACT_FIT; + flash.system.Security.allowDomain("*"); + + // import flashvars + var flashvars:Object = LoaderInfo( this.root.loaderInfo ).parameters; + domId = flashvars.id.split("\\").join("\\\\"); + + // invisible button covers entire stage + button = new Sprite(); + button.buttonMode = true; + button.useHandCursor = true; + button.graphics.beginFill(0x00FF00); + button.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); + button.alpha = 0.0; + addChild(button); + + button.addEventListener(MouseEvent.CLICK, clickHandler); + button.addEventListener(MouseEvent.MOUSE_OVER, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'mouseOver', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_OUT, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'mouseOut', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_DOWN, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'mouseDown', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_UP, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'mouseUp', null ); + } ); + + // External functions - readd whenever the stage is made active for IE + addCallbacks(); + stage.addEventListener(Event.ACTIVATE, addCallbacks); + + // signal to the browser that we are ready + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'load', null ); + } + + public function addCallbacks (evt:Event = null):void { + ExternalInterface.addCallback("setHandCursor", setHandCursor); + ExternalInterface.addCallback("clearText", clearText); + ExternalInterface.addCallback("setText", setText); + ExternalInterface.addCallback("appendText", appendText); + ExternalInterface.addCallback("setFileName", setFileName); + ExternalInterface.addCallback("setAction", setAction); + ExternalInterface.addCallback("setCharSet", setCharSet); + ExternalInterface.addCallback("setBomInc", setBomInc); + } + + + public function setCharSet(newCharSet:String):void { + if ( newCharSet == 'UTF16LE' ) { + charSet = newCharSet; + } else { + charSet = 'UTF8'; + } + } + + public function setBomInc(newBomInc:Boolean):void { + incBom = newBomInc; + } + + public function clearText():void { + clipText = ''; + } + + public function appendText(newText:String):void { + clipText += newText; + } + + public function setText(newText:String):void { + clipText = newText; + } + + public function setFileName(newFileName:String):void { + fileName = newFileName; + } + + public function setAction(newAction:String):void { + action = newAction; + } + + public function setHandCursor(enabled:Boolean):void { + // control whether the hand cursor is shown on rollover (true) + // or the default arrow cursor (false) + button.useHandCursor = enabled; + } + + + private function clickHandler(event:Event):void { + var fileRef:FileReference = new FileReference(); + fileRef.addEventListener(Event.COMPLETE, saveComplete); + + if ( action == "save" ) { + /* Save as a file */ + if ( charSet == 'UTF16LE' ) { + fileRef.save( strToUTF16LE(clipText), fileName ); + } else { + fileRef.save( strToUTF8(clipText), fileName ); + } + } else if ( action == "pdf" ) { + fileRef.save( "This instance of ZeroClipboard is not configured for PDF export. "+ + "Please use the PDF export version.", fileName+".txt" ); + } else { + /* Copy the text to the clipboard. Note charset and BOM have no effect here */ + System.setClipboard( clipText ); + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'complete', clipText ); + } + } + + + private function saveComplete(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'complete', clipText ); + } + + + private function getProp( prop:String, opts:Array ):String + { + var i:int, iLen:int; + for ( i=0, iLen=opts.length ; i<iLen ; i++ ) + { + if ( opts[i].indexOf( prop+":" ) != -1 ) + { + return opts[i].replace( prop+":", "" ); + } + } + return ""; + } + + + /* + * Function: strToUTF8 + * Purpose: Convert a string to the output utf-8 + * Returns: ByteArray + * Inputs: String + */ + private function strToUTF8( str:String ):ByteArray { + var utf8:ByteArray = new ByteArray(); + + /* BOM first */ + if ( incBom ) { + utf8.writeByte( 0xEF ); + utf8.writeByte( 0xBB ); + utf8.writeByte( 0xBF ); + } + utf8.writeUTFBytes( str ); + + return utf8; + } + + + /* + * Function: strToUTF16LE + * Purpose: Convert a string to the output utf-16 + * Returns: ByteArray + * Inputs: String + * Notes: The fact that this function is needed is a little annoying. Basically, strings in + * AS3 are UTF-16 (with surrogate pairs and everything), but characters which take up less + * than 8 bytes appear to be stored as only 8 bytes. This function effective adds the + * padding required, and the BOM + */ + private function strToUTF16LE( str:String ):ByteArray { + var utf16:ByteArray = new ByteArray(); + var iChar:uint; + var i:uint=0, iLen:uint = str.length; + + /* BOM first */ + if ( incBom ) { + utf16.writeByte( 0xFF ); + utf16.writeByte( 0xFE ); + } + + while ( i < iLen ) { + iChar = str.charCodeAt(i); + + if ( iChar < 0xFF ) { + /* one byte char */ + utf16.writeByte( iChar ); + utf16.writeByte( 0 ); + } else { + /* two byte char */ + utf16.writeByte( iChar & 0x00FF ); + utf16.writeByte( iChar >> 8 ); + } + + i++; + } + + return utf16; + } + } +} diff --git a/theme/js/dataTable/as3/ZeroClipboardPdf.as b/theme/js/dataTable/as3/ZeroClipboardPdf.as new file mode 100755 index 0000000..158d5f1 --- /dev/null +++ b/theme/js/dataTable/as3/ZeroClipboardPdf.as @@ -0,0 +1,310 @@ +/* Compile using: mxmlc --target-player=10.0.0 -static-link-runtime-shared-libraries=true -library-path+=lib ZeroClipboardPdf.as */ +package { + import flash.display.Stage; + import flash.display.Sprite; + import flash.display.LoaderInfo; + import flash.display.StageScaleMode; + import flash.events.*; + import flash.display.StageAlign; + import flash.display.StageScaleMode; + import flash.external.ExternalInterface; + import flash.system.Security; + import flash.utils.*; + import flash.system.System; + import flash.net.FileReference; + import flash.net.FileFilter; + + /* PDF imports */ + import org.alivepdf.pdf.PDF; + import org.alivepdf.data.Grid; + import org.alivepdf.data.GridColumn; + import org.alivepdf.layout.Orientation; + import org.alivepdf.layout.Size; + import org.alivepdf.layout.Unit; + import org.alivepdf.display.Display; + import org.alivepdf.saving.Method; + import org.alivepdf.fonts.FontFamily; + import org.alivepdf.fonts.Style; + import org.alivepdf.fonts.CoreFont; + import org.alivepdf.colors.RGBColor; + + public class ZeroClipboard extends Sprite { + + private var domId:String = ''; + private var button:Sprite; + private var clipText:String = 'blank'; + private var fileName:String = ''; + private var action:String = 'copy'; + private var incBom:Boolean = true; + private var charSet:String = 'utf8'; + + + public function ZeroClipboard() { + // constructor, setup event listeners and external interfaces + stage.scaleMode = StageScaleMode.EXACT_FIT; + flash.system.Security.allowDomain("*"); + + // import flashvars + var flashvars:Object = LoaderInfo( this.root.loaderInfo ).parameters; + domId = flashvars.id.split("\\").join("\\\\"); + + // invisible button covers entire stage + button = new Sprite(); + button.buttonMode = true; + button.useHandCursor = true; + button.graphics.beginFill(0x00FF00); + button.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); + button.alpha = 0.0; + addChild(button); + + button.addEventListener(MouseEvent.CLICK, function(event:Event):void { + clickHandler(event); + } ); + button.addEventListener(MouseEvent.MOUSE_OVER, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'mouseOver', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_OUT, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'mouseOut', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_DOWN, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'mouseDown', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_UP, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'mouseUp', null ); + } ); + + // External functions - readd whenever the stage is made active for IE + addCallbacks(); + stage.addEventListener(Event.ACTIVATE, addCallbacks); + + // signal to the browser that we are ready + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'load', null ); + } + + public function addCallbacks (evt:Event = null):void { + ExternalInterface.addCallback("setHandCursor", setHandCursor); + ExternalInterface.addCallback("clearText", clearText); + ExternalInterface.addCallback("setText", setText); + ExternalInterface.addCallback("appendText", appendText); + ExternalInterface.addCallback("setFileName", setFileName); + ExternalInterface.addCallback("setAction", setAction); + ExternalInterface.addCallback("setCharSet", setCharSet); + ExternalInterface.addCallback("setBomInc", setBomInc); + } + + + public function setCharSet(newCharSet:String):void { + if ( newCharSet == 'UTF16LE' ) { + charSet = newCharSet; + } else { + charSet = 'UTF8'; + } + } + + public function setBomInc(newBomInc:Boolean):void { + incBom = newBomInc; + } + + public function clearText():void { + clipText = ''; + } + + public function appendText(newText:String):void { + clipText += newText; + } + + public function setText(newText:String):void { + clipText = newText; + } + + public function setFileName(newFileName:String):void { + fileName = newFileName; + } + + public function setAction(newAction:String):void { + action = newAction; + } + + public function setHandCursor(enabled:Boolean):void { + // control whether the hand cursor is shown on rollover (true) + // or the default arrow cursor (false) + button.useHandCursor = enabled; + } + + + private function clickHandler(event:Event):void { + var fileRef:FileReference = new FileReference(); + fileRef.addEventListener(Event.COMPLETE, saveComplete); + + if ( action == "save" ) { + /* Save as a file */ + if ( charSet == 'UTF16LE' ) { + fileRef.save( strToUTF16LE(clipText), fileName ); + } else { + fileRef.save( strToUTF8(clipText), fileName ); + } + } else if ( action == "pdf" ) { + /* Save as a PDF */ + var pdf:PDF = configPdf(); + fileRef.save( pdf.save( Method.LOCAL ), fileName ); + } else { + /* Copy the text to the clipboard. Note charset and BOM have no effect here */ + System.setClipboard( clipText ); + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'complete', clipText ); + } + } + + + private function saveComplete(event:Event):void { + ExternalInterface.call( 'ZeroClipboard_TableTools.dispatch', domId, 'complete', clipText ); + } + + + private function getProp( prop:String, opts:Array ):String + { + var i:int, iLen:int; + for ( i=0, iLen=opts.length ; i<iLen ; i++ ) + { + if ( opts[i].indexOf( prop+":" ) != -1 ) + { + return opts[i].replace( prop+":", "" ); + } + } + return ""; + } + + + private function configPdf():PDF + { + var + pdf:PDF, + i:int, iLen:int, + splitText:Array = clipText.split("--/TableToolsOpts--\n"), + opts:Array = splitText[0].split("\n"), + dataIn:Array = splitText[1].split("\n"), + aColRatio:Array = getProp( 'colWidth', opts ).split('\t'), + title:String = getProp( 'title', opts ), + message:String = getProp( 'message', opts ), + orientation:String = getProp( 'orientation', opts ), + size:String = getProp( 'size', opts ), + iPageWidth:int = 0, + dataOut:Array = [], + columns:Array = [], + headers:Array, + y:int = 0; + + /* Create the PDF */ + pdf = new PDF( Orientation[orientation.toUpperCase()], Unit.MM, Size[size.toUpperCase()] ); + pdf.setDisplayMode( Display.FULL_WIDTH ); + pdf.addPage(); + iPageWidth = pdf.getCurrentPage().w-20; + pdf.textStyle( new RGBColor(0), 1 ); + + /* Add the title / message if there is one */ + pdf.setFont( new CoreFont(FontFamily.HELVETICA), 14 ); + if ( title != "" ) + { + pdf.writeText(11, title+"\n"); + } + + pdf.setFont( new CoreFont(FontFamily.HELVETICA), 11 ); + if ( message != "" ) + { + pdf.writeText(11, message+"\n"); + } + + /* Data setup. Split up the headers, and then construct the columns */ + for ( i=0, iLen=dataIn.length ; i<iLen ; i++ ) + { + if ( dataIn[i] != "" ) + { + dataOut.push( dataIn[i].split("\t") ); + } + } + headers = dataOut.shift(); + + for ( i=0, iLen=headers.length ; i<iLen ; i++ ) + { + columns.push( new GridColumn( " \n"+headers[i]+"\n ", i.toString(), aColRatio[i]*iPageWidth, 'C' ) ); + } + + var grid:Grid = new Grid( + dataOut, /* 1. data */ + iPageWidth, /* 2. width */ + 100, /* 3. height */ + new RGBColor (0xE0E0E0), /* 4. headerColor */ + new RGBColor (0xFFFFFF), /* 5. backgroundColor */ + true, /* 6. alternateRowColor */ + new RGBColor ( 0x0 ), /* 7. borderColor */ + .1, /* 8. border alpha */ + null, /* 9. joins */ + columns /* 10. columns */ + ); + + pdf.addGrid( grid, 0, y ); + return pdf; + } + + + /* + * Function: strToUTF8 + * Purpose: Convert a string to the output utf-8 + * Returns: ByteArray + * Inputs: String + */ + private function strToUTF8( str:String ):ByteArray { + var utf8:ByteArray = new ByteArray(); + + /* BOM first */ + if ( incBom ) { + utf8.writeByte( 0xEF ); + utf8.writeByte( 0xBB ); + utf8.writeByte( 0xBF ); + } + utf8.writeUTFBytes( str ); + + return utf8; + } + + + /* + * Function: strToUTF16LE + * Purpose: Convert a string to the output utf-16 + * Returns: ByteArray + * Inputs: String + * Notes: The fact that this function is needed is a little annoying. Basically, strings in + * AS3 are UTF-16 (with surrogate pairs and everything), but characters which take up less + * than 8 bytes appear to be stored as only 8 bytes. This function effective adds the + * padding required, and the BOM + */ + private function strToUTF16LE( str:String ):ByteArray { + var utf16:ByteArray = new ByteArray(); + var iChar:uint; + var i:uint=0, iLen:uint = str.length; + + /* BOM first */ + if ( incBom ) { + utf16.writeByte( 0xFF ); + utf16.writeByte( 0xFE ); + } + + while ( i < iLen ) { + iChar = str.charCodeAt(i); + + if ( iChar < 0xFF ) { + /* one byte char */ + utf16.writeByte( iChar ); + utf16.writeByte( 0 ); + } else { + /* two byte char */ + utf16.writeByte( iChar & 0x00FF ); + utf16.writeByte( iChar >> 8 ); + } + + i++; + } + + return utf16; + } + } +} diff --git a/theme/js/dataTable/as3/lib/AlivePDF.swc b/theme/js/dataTable/as3/lib/AlivePDF.swc new file mode 100644 index 0000000000000000000000000000000000000000..ee0f3f8f4ca49ccea24defe4ac6bd4b9c3e65a05 GIT binary patch literal 131230 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%0DpCJ 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 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/css/TableTools.css b/theme/js/dataTable/css/TableTools.css new file mode 100755 index 0000000..606b52a --- /dev/null +++ b/theme/js/dataTable/css/TableTools.css @@ -0,0 +1,321 @@ +/* + * File: TableTools.css + * Description: Styles for TableTools 2 + * Author: Allan Jardine (www.sprymedia.co.uk) + * Language: Javascript + * License: GPL v2 / 3 point BSD + * Project: DataTables + * + * Copyright 2009-2012 Allan Jardine, all rights reserved. + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * CSS name space: + * DTTT DataTables TableTools + * + * Style sheet provides: + * CONTAINER TableTools container element and styles applying to all components + * BUTTON_STYLES Action specific button styles + * SELECTING Row selection styles + * COLLECTIONS Drop down list (collection) styles + * PRINTING Print display styles + */ + + +/* + * CONTAINER + * TableTools container element and styles applying to all components + */ +div.DTTT_container { + position: relative; + float: right; + margin-bottom: 1em; +} + +button.DTTT_button, +div.DTTT_button, +a.DTTT_button { + position: relative; + float: left; + margin-right: 3px; + padding: 5px 8px; + border: 1px solid #999; + cursor: pointer; + *cursor: hand; + font-size: 0.88em; + color: black !important; + + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + -ms-border-radius: 0px; + -o-border-radius: 0px; + border-radius: 0px; + + -webkit-box-shadow: 1px 1px 3px #ccc; + -moz-box-shadow: 1px 1px 3px #ccc; + -ms-box-shadow: 1px 1px 3px #ccc; + -o-box-shadow: 1px 1px 3px #ccc; + box-shadow: 1px 1px 3px #ccc; + + /* Generated by http://www.colorzilla.com/gradient-editor/ */ + background: #ffffff; /* Old browsers */ + background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */ + background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */ +} + + +/* Buttons are cunning border-box sizing - we can't just use that for A and DIV due to IE6/7 */ +button.DTTT_button { + height: 30px; + padding: 3px 8px; +} + +.DTTT_button embed { + outline: none; +} + +button.DTTT_button:hover, +div.DTTT_button:hover, +a.DTTT_button:hover { + border: 1px solid #666; + text-decoration: none !important; + + -webkit-box-shadow: 1px 1px 3px #999; + -moz-box-shadow: 1px 1px 3px #999; + -ms-box-shadow: 1px 1px 3px #999; + -o-box-shadow: 1px 1px 3px #999; + box-shadow: 1px 1px 3px #999; + + background: #f3f3f3; /* Old browsers */ + background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */ + background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */ +} + +button.DTTT_disabled, +div.DTTT_disabled, +a.DTTT_disabled { + color: #999; + border: 1px solid #d0d0d0; + + background: #ffffff; /* Old browsers */ + background: -webkit-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* IE10+ */ + background: -o-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fafafa',GradientType=0 ); /* IE6-9 */ +} + + + +/* + * BUTTON_STYLES + * Action specific button styles + * If you want images - comment this back in + +a.DTTT_button_csv, +a.DTTT_button_xls, +a.DTTT_button_copy, +a.DTTT_button_pdf, +a.DTTT_button_print { + padding-right: 0px; +} + +a.DTTT_button_csv span, +a.DTTT_button_xls span, +a.DTTT_button_copy span, +a.DTTT_button_pdf span, +a.DTTT_button_print span { + display: inline-block; + height: 24px; + line-height: 24px; + padding-right: 30px; +} + + +a.DTTT_button_csv span { background: url(../images/csv.png) no-repeat bottom right; } +a.DTTT_button_csv:hover span { background: url(../images/csv_hover.png) no-repeat center right; } + +a.DTTT_button_xls span { background: url(../images/xls.png) no-repeat center right; } +a.DTTT_button_xls:hover span { background: #f0f0f0 url(../images/xls_hover.png) no-repeat center right; } + +a.DTTT_button_copy span { background: url(../images/copy.png) no-repeat center right; } +a.DTTT_button_copy:hover span { background: #f0f0f0 url(../images/copy_hover.png) no-repeat center right; } + +a.DTTT_button_pdf span { background: url(../images/pdf.png) no-repeat center right; } +a.DTTT_button_pdf:hover span { background: #f0f0f0 url(../images/pdf_hover.png) no-repeat center right; } + +a.DTTT_button_print span { background: url(../images/print.png) no-repeat center right; } +a.DTTT_button_print:hover span { background: #f0f0f0 url(../images/print_hover.png) no-repeat center right; } + + */ + +button.DTTT_button_collection span { + padding-right: 17px; + background: url(../images/collection.png) no-repeat center right; +} + +button.DTTT_button_collection:hover span { + padding-right: 17px; + background: #f0f0f0 url(../images/collection_hover.png) no-repeat center right; +} + + +/* + * SELECTING + * Row selection styles + */ +table.DTTT_selectable tbody tr { + cursor: pointer; + *cursor: hand; +} + +table.dataTable tr.DTTT_selected.odd { + background-color: #9FAFD1; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_1 { + background-color: #9FAFD1; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_2 { + background-color: #9FAFD1; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_3 { + background-color: #9FAFD1; +} + + +table.dataTable tr.DTTT_selected.even { + background-color: #B0BED9; +} + +table.dataTable tr.DTTT_selected.even td.sorting_1 { + background-color: #B0BED9; +} + +table.dataTable tr.DTTT_selected.even td.sorting_2 { + background-color: #B0BED9; +} + +table.dataTable tr.DTTT_selected.even td.sorting_3 { + background-color: #B0BED9; +} + + +/* + * COLLECTIONS + * Drop down list (collection) styles + */ + +div.DTTT_collection { + width: 150px; + padding: 8px 8px 4px 8px; + border: 1px solid #ccc; + border: 1px solid rgba( 0, 0, 0, 0.4 ); + background-color: #f3f3f3; + background-color: rgba( 255, 255, 255, 0.3 ); + overflow: hidden; + z-index: 2002; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + + -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -ms-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -o-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); +} + +div.DTTT_collection_background { + background: transparent url(../images/background.png) repeat top left; + z-index: 2001; +} + +div.DTTT_collection button.DTTT_button, +div.DTTT_collection div.DTTT_button, +div.DTTT_collection a.DTTT_button { + position: relative; + left: 0; + right: 0; + + display: block; + float: none; + margin-bottom: 4px; + + -webkit-box-shadow: 1px 1px 3px #999; + -moz-box-shadow: 1px 1px 3px #999; + -ms-box-shadow: 1px 1px 3px #999; + -o-box-shadow: 1px 1px 3px #999; + box-shadow: 1px 1px 3px #999; +} + + +/* + * PRINTING + * Print display styles + */ + +.DTTT_print_info { + position: fixed; + top: 50%; + left: 50%; + width: 400px; + height: 150px; + margin-left: -200px; + margin-top: -75px; + text-align: center; + color: #333; + padding: 10px 30px; + + background: #ffffff; /* Old browsers */ + background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */ + background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */ + + opacity: 0.95; + + border: 1px solid black; + border: 1px solid rgba(0, 0, 0, 0.5); + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + -ms-border-radius: 6px; + -o-border-radius: 6px; + border-radius: 6px; + + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + -ms-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + -o-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); +} + +.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + diff --git a/theme/js/dataTable/css/TableTools_JUI.css b/theme/js/dataTable/css/TableTools_JUI.css new file mode 100755 index 0000000..4c41138 --- /dev/null +++ b/theme/js/dataTable/css/TableTools_JUI.css @@ -0,0 +1,185 @@ +/* + * File: TableTools.css + * Description: Styles for TableTools 2 with JUI theming + * Author: Allan Jardine (www.sprymedia.co.uk) + * Language: Javascript + * License: LGPL / 3 point BSD + * Project: DataTables + * + * Copyright 2010 Allan Jardine, all rights reserved. + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Notes: + * Generally speaking, please refer to the TableTools.css file - this file contains basic + * modifications to that 'master' stylesheet for ThemeRoller. + * + * CSS name space: + * DTTT DataTables TableTools + * + * Colour dictionary: + * Button border #d0d0d0 + * Button border hover #999999 + * Hover background #f0f0f0 + * Action blue #4b66d9 + * + * Style sheet provides: + * CONTAINER TableTools container element and styles applying to all components + * SELECTING Row selection styles + * COLLECTIONS Drop down list (collection) styles + * PRINTING Print display styles + * MISC Minor misc styles + */ + + +/* + * CONTAINER + * TableTools container element and styles applying to all components + */ +div.DTTT_container { + position: relative; + float: left; +} + +.DTTT_button { + position: relative; + float: left; + margin-right: 3px; + padding: 3px 10px; + border: 1px solid #d0d0d0; + background-color: #fff; + color: #333 !important; + cursor: pointer; + *cursor: hand; +} + +.DTTT_button::-moz-focus-inner { + border: none !important; + padding: 0; +} + + + +/* + * SELECTING + * Row selection styles + */ +table.DTTT_selectable tbody tr { + cursor: pointer; + *cursor: hand; +} + +table.dataTable tr.DTTT_selected.odd { + background-color: #9FAFD1; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_1 { + background-color: #9FAFD1; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_2 { + background-color: #9FAFD1; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_3 { + background-color: #9FAFD1; +} + + +table.dataTable tr.DTTT_selected.even { + background-color: #B0BED9; +} + +table.dataTable tr.DTTT_selected.even td.sorting_1 { + background-color: #B0BED9; +} + +table.dataTable tr.DTTT_selected.even td.sorting_2 { + background-color: #B0BED9; +} + +table.dataTable tr.DTTT_selected.even td.sorting_3 { + background-color: #B0BED9; +} + + +/* + * COLLECTIONS + * Drop down list (collection) styles + */ + +div.DTTT_collection { + width: 150px; + background-color: #f3f3f3; + overflow: hidden; + z-index: 2002; + + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5); +} + +div.DTTT_collection_background { + background: url(../images/background.png) repeat top left; + z-index: 2001; +} + +div.DTTT_collection button.DTTT_button, +div.DTTT_collection div.DTTT_button, +div.DTTT_collection a.DTTT_button { + float: none; + width: 100%; + margin-bottom: -0.1em; +} + + +/* + * PRINTING + * Print display styles + */ + +.DTTT_print_info { + position: fixed; + top: 50%; + left: 50%; + width: 400px; + height: 150px; + margin-left: -200px; + margin-top: -75px; + text-align: center; + background-color: #3f3f3f; + color: white; + padding: 10px 30px; + + opacity: 0.9; + + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5); +} + +.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + + +/* + * MISC + * Minor misc styles + */ + +.DTTT_disabled { + color: #999; +} diff --git a/theme/js/dataTable/images/background.png b/theme/js/dataTable/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..915efba6890c2035afba9c61626cd4038434b797 GIT binary patch literal 944 zcmaJ=O^?z*7@l1<Atal4R8O<Bd+;Fbv@C@-)D6($HnD^NQI3>$fQFq;w;iN#)0@A- zKVbX=9`x$joAEz*_U4oY)`QsOP3N6F&+~rH`)=pON%2V$0C3`5Sv~Q8kXzvxfTKn6 z?YVFsb9>19Y{HjbLO>&6V*(xOO-YY<!RqE4sRM8ig@Yj<x-Si%QOV0OQbuFJ2B3bK z#hyPW9FEB}j7;?F^A`lez(lVrE_UM<nT1#Dg!I>)fxn*ndVnsU!+K^20ZO<BGkP7R zMrNXot|89(wT$2f!sjNsO={?NVT&aMRwP{Vv4)|hNJ{ylTCF~VDps(JRasF>O4TT< z2F7svArUPJCPvR{Z(|A1L^IA~Lzb7zrL-(dESbuRuIssms+I(zl&&J~Wu+)R+bLKi z^^-8>A&X$H=#ANen@D7OTLO*uvQfHilW3Tnd9kcWI4@}jblv|$Dcz$}-XnMU{!=&| ztYRYfNXiz8F9tU`%R|LRD<K|d$$+uzT^GAE##uUJF>LiK(DnQ<%KZ)Abqyy<xfl7w zu}mZsq%aJO8rJMayV6u}xuGaFuG!^g6KiVCzR<9y>pQN+`~@Wu-*JOGZtEa7Uj-VA z$QDV$Hza5$jKWRHMtC?E{h;2K8ywE1agZyEWaNCXe+_zfCAKF&?$=g0`^6`b*!D!M z_3zW~Rq-Uw9jh_OevC(>5h%ci#|8LQ*dt;0g?%i*uZ2?pUV)>Z<O9v$kYjhOPtDQ0 EKk3^UPyhe` literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/collection.png b/theme/js/dataTable/images/collection.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd4dfdf697d1f0025bb8f101cf4acc777d0000e GIT binary patch literal 1166 zcmeAS@N?(olHy`uVBq!ia0vp^f<P?A!N$PAsJ6C!J&+?=;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$HzlhJk@uDKjLZB*NFnDmgz_FA=0huOhbqsGEVo#=fE;F*!T6 zL?J0PJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRzL%C zQ%e#RDspr3imfVamB8j&0ofp7eI*63l9Fs&C5WRUd;=7m^NUgyO!W+OlMT!a6wD0u z42@09&CPWbj0_A7^bL&k4UKdS&8>`$tPBhkpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pF zzr4I$uiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`<jAm(=3qqRfJl%=|nBkco*& z`K2YcN<f!FypUS}H#V;r8ce_d)2~P@&^OdG0C@?f(AO8g(%f9Q>f(~1RD^r68eAMw zS&*t9lv<o$T9gcoxHM&uRRvbgMX8A;`9&f5`8lvq49LhY$uG{xFHmp}HdXLVOwP;$ z@xkhSeXTt6ic1pnl2bihY?Xi}=w)W6SUI~m8JU@zTNpUHnHn0p8dw?_y0|!68dw^d zyO~><nZxwD<R_QrrskEv^rj&6TH@3TN(#9JK$~4si!#enQ{0O3a}~f|w#vlq7BigY zLG`BKc8fVqz4}1M=z}5_DWYLQz|;d`!jmnK15fy=dBD_O1WeXk)}>*<oW<nn;uunK zE9uYw|Mtv028IfZ2I<ev%uL91OG#y5WO;tzs<F41m(d*CYO#fU3Jn1!2N<}ocnFB{ z9nrpg`Lg7ORV*9|JdSE5qBmF@+Nv82?wBduaNM(yfwASPE=%q)wuEWTF-w@1R5bix z5|C#2D869(`vn?IOcNMR<hd!>@h@HZMy-KCDMLv3=(T`#43-c6DYqW3Pgr2Mh<z4= z$pwc7?%AT#9CA30e!C&kAk@wx@?OG+kyRkU#nn1=($NcsEv&H&QPVn@K4$B@I{0XT zQJchc3Fpg`7^mbjJe3xHEgK+oi_bS(DB!G6fSpH7hlF#S!(^K?8#pv{8Aa>OXZgKI a;b3?z7BPX}vbz>kLU_9RxvX<aXaWH4u61bu literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/collection_hover.png b/theme/js/dataTable/images/collection_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..7b37b1e963e66e44905431be927cd78d82726899 GIT binary patch literal 1194 zcmaJ>TWB0r7@k~+Np02*x<Vq<<Ftf8-MQ>-GGo?cGn3f0PFOZeyJEo1&YWb&>|8o? z;!dLIHVrnR<iU{kr3F)JRitK9d{9uD&?>fXeGyTl_z?OeR>6W|v7Sk@sSmCL!<_%; z`@a8rW-&AJLi?VsJp@6trw>V4{O!PRS8EGFG<1J*vWksPG?Yi9)&wdm4kS{VRe&IE zD3dS?6>a9&4cJEzO{AX7qrCi*pjrl{_!!DFY|JKzzJAYE)G3HS0Z!^>lDzZ91_^X6 zNgj>MjBJars2`ej;OOi~PMw`nd5!FU9`tzv7BC=EfM=9USMZYLwyuEBzMCe&HUv#2 z$p=a0<qQxl2ZA`ogjFWNfCNji(HO^Z&w>cUGBgvR*+`h>glI%y7_jq@IGUqP2w7=( zCl<DnWDy}-py_hCOqHXQ<xJ8n&-1=UBofAmusdTS#S5G6{+faWUDeTTq+2HN6_tWD zjglnJ^g#)Ry(??FJ8i-Zqdmo@S&H#XssUyB|DlGli*`{KKFs$&h27kY4e2a&t!YQa zgPYjzhq49HfeNymoMn}2UCb0MWVuDl2I6QO$cn0)zP*i?Wg%_4NHJBImXah^pmbdm zL}@UR;J6r*8jiE<5W_R9B&B$UXSrdnH^J4olBG@?&_p$^_K+K|%k@{muyJGwI{NES z8+I%MY?mzP^>c~T)!X4}^>c~V<<dAA+8^w{23>RE?eUMhYm1HD#fK)|b_cKZ(9xwQ z@XgwnmQp$Ihr+%4_xqdnGRIrr`~8*HK(KPL^WD=8&B1fm=GLA(9{`n1Y?F9&`Ol?+ zu?_e^SJRQxM8o_u*XP$7e>sA<eB<SVKPEu$$d~7_``d8d=x!cAbK=~Gf%m23f3ybQ zs1#Q}+gR;soI5-4X46(PxD~kAc{9Xr9;kFP%Rk!{g8XP<u~3b6gsAl%@sZW7O6ls` zrP9`~L2)^_dAlWZ^Eu)&A5+GAh_Blo3x3-0TVO18C3L%2c;~=Cr6Y79m;PA%Cb;6I zUX%t0?gdWGz6JhX*jN61tk5DKzLmL>T&W(uRGweuziVH(BgRiGpJ@v|-BM^P?43Ee za<|%etn2#SOttdWt3S0r9$SCv#`^ac7MEfKv2kkbwa{PDm;Jv-dT2yi8yuhe2M6qj A0{{R3 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/copy.png b/theme/js/dataTable/images/copy.png new file mode 100755 index 0000000000000000000000000000000000000000..5b01ab165a9d1adeee1142b4ea5a0c47278c0689 GIT binary patch literal 2184 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 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/copy_hover.png b/theme/js/dataTable/images/copy_hover.png new file mode 100755 index 0000000000000000000000000000000000000000..039a7fc32b9bc90580f3c1c56471710e915cdf58 GIT binary patch literal 2797 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 KfL+QIrTrJRQ-Rt5 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/csv.png b/theme/js/dataTable/images/csv.png new file mode 100755 index 0000000000000000000000000000000000000000..43df1559f7cf9546065ef4864e605a834df47b51 GIT binary patch literal 1607 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 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/csv_hover.png b/theme/js/dataTable/images/csv_hover.png new file mode 100755 index 0000000000000000000000000000000000000000..10b34d3b90b3f7712f6de998fbc98a051b38a661 GIT binary patch literal 1854 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 YjpcnLdOml2rVl>9uV(<h-JO{GU&{VAd;kCd literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/pdf.png b/theme/js/dataTable/images/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..1b038d0884524f887d32a4d293b868802903992a GIT binary patch literal 4325 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 TzzMz{00000NkvXXu0mjfWhV~A literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/pdf_hover.png b/theme/js/dataTable/images/pdf_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..eb06855f4fc6bb57036cf61324149e3f8e27c902 GIT binary patch literal 2786 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 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/print.png b/theme/js/dataTable/images/print.png new file mode 100755 index 0000000000000000000000000000000000000000..2db08242a0c9a9085b274d8a02462e2c743f53da GIT binary patch literal 2123 zcmb7_X*ApG7RLWXVhqun8l$46NR`qGjd?Cgqru`D6A_{s^Q`6?k0Dy8Itp!1#nGM? zrF9K4m8hzonunsT(jqCTS>(p2^Yz|$t#|Fc-~Bwl^?ZBtu+DZ+F$FOI0HF34tS|Gc z!r>Kx0D!<Jr(_TQAQWWbWB~x9<HMIc^!T%Uw2enJE{qf%hmQ;dEQn!*K&1Uud{E%! zKs+%af*EMc7a1OkEH1jb;)4J)q!XSPhzz43@%%181!@x?5E>IjjtxYT!XlBltN5s3 zG9`$=3&JOoDS;{%OQ=$OhVCK5Dl9x9k{lEq4bYMQ94J!n%$f5@LIUzqD4!FFbmfO3 zhQ&o)A#c76y303PkzGBatplS1BFW*=<S+{V2>{p++yCDzh9)^%d?)%4_fM8XSm*y3 z=v0ki8vsDw+FM(=#!nLVc|0?ap1+{9UwaBys?$Hcb6ueX=qgq=ldBVRC}U*Y((%D0 zf^*YDNofGV8V#ydu7;}~A6Wm~Q^1>^o|d@upfwTndt2hpx{JEHI*2by-u|iLVUETA z<W-oZ$~`bidc$BcnIcC5h_a=G++vZGd(={muD-rLK(8V*GqZ!ypGWP%+GTby2mk#? zb#?Cia#NT@XswonrY2pY`3}k!5a`ZjDZQ#cW|G()zA~<xeW}8fD?EQ)T-LWWj(rRS zy3o7Dp8b#c0e5qCiidmR+$xx-D|P{O1~J>jHN%z)d=-Jka-a=F<AmK6qx15b7HBjY zA|oS{UBO7hL;lw4EmB%Q`L^cI&$hQqq#o=CZg26Ftvt!{pmAJMEc??bO--gi6t%Ia zNZ%aL)%IzIv%1?;d65_lCS`Antvs%ctzMaa&4FUQ;Y27R&0Dz3yw_=Of9LGDqhDLH zK(9h>>h7=a2IdLU<ro>;*c1rb**V)!*-vkpk5M$lmY1hX29dUTY_qQSerEE%E%7@B zS}4}uv(_Ye)0FLg#?s1B1`>tx_V6s9+5(pgnGX_3BuGFB9r+}~cz0tj3}OQ&LxhU~ zTNzKXX7+O=Z!^^#yuZIMfiU+vpHA%^9E22Iz+!fHIO?FG+YH*?pnuR+ijbJfNu1-< z!y|+$h4uA1Eql>5W98X)VGK1-0RE77a1iJ(kR9h}H>OC#uS_*kM!+HryNL!>SXRWo zywA+cq>oFN)#!+0jI>_H;{oT9MUm!Tk(yOfA1WnN((7b%fBY+2L`>{2^52lWm-4Jo zoyJlU`u!t37OGW$cHpe>d(Iwj@zOXCs#4}~O~<lwC`$E+i&s3fD=iwMgo7`%a3d|o zHrQYzYkeo2u0G;JFg)bt<ZX?7RfHt3pI$((86Ko>sI<pEc-H8eFthzJ<op(7J_N;s z8LWlCmRQ#-scS#3tyQ|9Jk9A)wSsrG1w905%6dYRm%D{nEQrdT+uY3<QptP4T`j!g z=7KqOR2Z>%6g7Zz{>aXHmA$<2=GQ{m3$bo6<(jIbu+d$x!)YxAm>zkwKdXQ1H^J+9 z5k7BaS-!sg3phNjy<JD{S7r^$Z<QFb8E=fxma1{@kPS!9-SEf9k|N^R;coGX4cu?{ zMfFLbWJ|1RsVc{I?$~7A8Y_)#D)_QGbPApoiWZl>Es^?HDN~hZlW^x^wVXy>Od0t7 z`*#)xqgmeC!rdqOO>W?DvbA$fWebnBb&PTad)&u7k-l}WUvj-)>6>YV_*Ed3p@erL zj~>Vs*o}>jj@=D!YbiQ2LG&D*3O0TajNgURK8A>1J)U2sb0g0_zeN7DC7tf9o>BwL za4E^x&WFP@#Up&+4zy<J{6ASw6%CqUKGou~&6+VM8bdDhILMrwEOrtNzTygV`rPf# zx$-7zcA%SVk5-ER+LgqfPGYq#{uZnpw+GrBGGX=h)zADesvp{?r_ls|h+NB8>6czv z5NcEasFLTB7>!-*t(?yJa9Q23beNedv_|6GU9}^5zOZD0(}~CSoj!hYry6+q3c-5R z&O1_`+MM<Gd-Q52*|)g&i$YpebmPQ*%Yq1s6%keEQEyvb_dK=fkDGcl%g%s)tb5rY z`Y~%{*`OufS$$F|=dE0hzlQ5AH9wy$k0UmU=_@fv)YFr~Nbb-LdR+27mRWK)iA1_B zz7ZAgA9>EyYl>D(p<d(OgF-f0^52ajT4Z_b64i<Vmc9cK5XcwqC8viN2?>8}Ab_1Y zoQZA@U8mxATW-kK-biHO)7pKD62mVupU4tv$n9s|MQw-{!*GrJzKn6V!lj*!T591$ z_sL<N0;l#KQStaxQ+v)#>lQNR%eU3G%dd9}Ku`(EO1D3s^?g71e)h?()MDfggqJ-l z0u_Iu(E!4hV2ta%=`V}|IJI`v3FZl-N=4Jnuivc+>ozNLM1QB7YI$Ob4PFyU!{@Fl zu?vfIJ6>guyXJ3x_`F&yku#|Dwb7ckL7=X##~u5bXrdyt<F0DOur;~CTv7`@AzGZf zw076~rc~t;{B;3ljhuGJ9H{=#DSyY##>E2(n_~<k9N$i0SVMWx2o#$6b+c%9KL@-x zJ2DG<sz99SAT53?S9QGT=H{+>Yd}GCdAOs$Z*}8&&#&W-Cvkv&!vvT%(7SLNW@|U! z8#kCSmF%?4_)+D&#hkji{BVqNztDPGu&OebDS+;WJ-KyLFljC=G&H&8oN@BTWtUS! nZxQz02DMr}4VqD(1~^j0)(M-(8))srZ_wVx+4`BKf5v|SY5L1j literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/print_hover.png b/theme/js/dataTable/images/print_hover.png new file mode 100755 index 0000000000000000000000000000000000000000..9808a9cc9c59c3968494faea0399864448fdb3f4 GIT binary patch literal 2230 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 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/psd/collection.psd b/theme/js/dataTable/images/psd/collection.psd new file mode 100644 index 0000000000000000000000000000000000000000..7eb7caf2cc5c98e1d9ac04de50b2009b344bbe85 GIT binary patch literal 25792 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 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/psd/copy document.psd b/theme/js/dataTable/images/psd/copy document.psd new file mode 100755 index 0000000000000000000000000000000000000000..ca207adc608751b51eb5265bda2b7392889305a3 GIT binary patch literal 104729 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 Td~9@NxLhjQ$40|Q%*gl&pqPNb literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/psd/file_types.psd b/theme/js/dataTable/images/psd/file_types.psd new file mode 100755 index 0000000000000000000000000000000000000000..0f280ad520ae61fc8bf3f6d0781d878c28e62a73 GIT binary patch literal 1090645 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%0D!*7gJ&xXg{)WOAPknlyJ>Sq1bGcb~<X?f6 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 NIbZ(A+IS-N{{g?^6wUwu literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/psd/printer.psd b/theme/js/dataTable/images/psd/printer.psd new file mode 100755 index 0000000000000000000000000000000000000000..8c33f7aaadcb2e4932ec714f29a6717f05de2bd6 GIT binary patch literal 119952 zcmeF434B!Lx&O~(VFyJ;Ld9!}3!*@FAgJshwxUt6ReP(3BtSGIGzpviw6(om^!E0) zSG`?s|GmXlTWj6-9Yl6QmdPw<=FFU#$pkDaitIu%^Z!2YnMo!gED`Y9Hj|t)=e*}# zpZE8y?>jRSrWMT9Y?}2-;Vn}geY9jN>6=eXn0DQq6nUa)e;%HsX-Qhr@T3)5*6#E< zg~cW573JxLTorwJ;LH_8WlO6{mzAV1sHjYzyST7wQEB-?o-HiAx3s+E%fpijw81x) zk)bku-txlA;)>-}_mmD#8m6U|7FCp2$<@FmRmJI*B~?`wODl^?B&GL)vchHD4Nt1p zM*bze{WUN>J2Nvseg4Yyqw3UDpD$H?KKu7$au0m?>{T!97~;L<Pv>gqsb`nSvr&J! zdh&`Tg+=$2RHx4`Sy)<r&B%}6SUobmwD_8lU(cJ9IcLfAl0~Jn@2xDEd+!bNitfFq zD8G2*<VpRmUNLdS;w6hqsteOsEG{drnz-Vck%h$-^GhajEy)=p(^Z!0d#)LI>zso0 z>WYf8drGU*bH-+l$(}GeeL-d6;*#YRmG`7)jU6|V3M-2jOuTu<tXOs2T{Ch~b@h^o z85zr$FCV)+XKY2~!i=o^{QQi}?2PQ}G2|FiwX(draK)JNs*7n&b))pwwqoT~V^xpF z7F8_HD7`f!Yiwo)4fRV`P0c8&Dyl49QeDdANz;Y%E0$JYGji$D(&CAk*|~Yy`B`~m z@^TjxkIBj^E*VoeZv2EXMfo}W73R*Lke4&EUwW*`k`<-xeeKYwJc&1(o_@95PQ0P8 zn%SRGy0E0GdQ#4~3FC4{=Vs=Q%T(vA(K+L@vaNHrO0mv4q~~Q>d2&ZfsqyMOVRTMT zZVoA&Ny(j%m#NO#>YS&}<0zXmo~NA2&pBVt6UfO~+RB+ge$LWL&ID@XOj*vVZ2q{> zxmme9l{3BNY^97>*AwKNPd_=UJo$NCk7thMoG<4bdY+X}opP44`4gmU{shUBKSA>3 z=c_#VS?XG9%U8AK=Sz$Es?L1rNp@z|xY3!T$uT-_^tjREM^6}?KN`|xWsT0t9-Wml zIxBZ{R^DhbWsM)5HDPo%d9z1n=ZwzI9i5#wI(yvc?D3=NTu$ay6Y{6d7&kR{THb{0 z><Kd_OvuZho=;zAO_(`u*7R``vaZfJdd8S_YaXXplvPyDg>y<K<!0yS=8t2nd9e}+ z&)V`Al&&Z#yKP44;*#<zFgGc8LM(IV2OUe?daM!&4?uK=KsW)?X8`6)5;(F0%6S0D zbA-1(pN=f5sII75RI#LMPG1s#oWOZ)X%nxTKE0r_VnJzH$)u?wuF`M5c3S%70Bpjj zt24UHCiBt$KuztOisF(<If?n(lRIXgU0PLLQMqzbV%~V#=R>XP(gnwmPVyvyMsnLx zI%Vg<EO~HC9&D7C5AVQ8<6$GDNj8!o55CUJ$>N%H<U=<6nUje`f$eg#@<$^>d5&z! z6sCg@$CG!w+#_A!QIT5NSLNow=~HLsPo17WJuf?V>eRex+0*jIjh}&#osm0p*3}tD z_e_YaQg1G)swi73Lj0EU(&|asvCN&4+p^!*{$SGh><l<u)smRpmiN}K^Cl*@<-M`8 zv;<8g{g@Q5G%@Y-nd%jV$6yH_Buq4S6X&3ziwmm@XB1YKOcEPnOy;;Tnd9eW<xI@W zo0v83%FL{ZnVDB-9F<pwtP(4VOBbv>sp9Q9<AtYJme6iO;ar-Zmz6a!hgS2i%*<|U zJ0WL>!WEVCuqR?HToC8@^yzcO3@a@c`CxTkRS?Vl`OHF9^~_}$5;5DQgQSelL)E;M zOG+{XUt;0STn2V7Znr0@s&6hi2FrF`0ofCZlV{GH<F~(fu@cs5Cg;qVcwKo_bzyl? z$#pX(VbhH*#RAHjIw3!QW=>}A)a*<&VOD-tCbwC6nK^mmbH`7I&r~ysMPu_reKRVG zmZIjWsZW_x*)wL0pOAy}$VED2&6qhYYx=YqnbW3bPn$)36Y}GgC6r63tfUfqsd!dp z#bRZrEh((5DiQi!Gcry<Q9Qs>(QRUB`(RY#6Y{4`#WI<Zoi#I08lNyVbK0~Svt~`3 zJ}!Uetm!m<RJnxOiaQNu1_r{k>Em-}=1iSMZ8N6L$j+QPenw{2^sHGq(`HSJ*OpLD zh7zOJjP|iemxYla7lH!2yRa-__}wB~7v<Y4Z&x<7Cq}~Dl5Z(;S$Acn$0w>HD|nt* zSfqqoRUvaBgG@*ha<%14Ab%T{a!-UMtGa}u9jaWusH8k5qw>aN=FiK{nwXnAF?W1i zPFST?t`6m@Di&1ZVwFr?2o}2#6}gGB!m6ZWkq)&LEh;QuSW-MGBR=|gg34tXU}dGB zH)-LX<FjeENt>5HF}qC!|1*<z+-W8)N^RW4><K-notQQL^piG!Vjf0|WjOpZqjth+ zCv8?X;<ksh6D3e_T4ilEjG#>I9@L)D+U%wpQ>4w!`NE>sG8bZ|Sll{nH`P9ma1OTT z&7}($RaYI~RlqhSPrJKdm6`bUlKFG-cT2>~pA>U-=9g70B;s0JT2x(9TwPIAv0y<- z$=Ko&HNLLOeLntJaZ%d{mn^L;Q(@%dqKuL<)%hwM<E+^5ii;)^wO?FVJ*jZXlCshw z<<Dm<D=&`4k=vp`S7)?m#r(UPyCQLED=IBdq$@jn(oqrm4mM*aM0BiC8Ypg$SGPAZ zwXC|M#Yqr+Vi|_&H6vGyDK1%1xU{T#<fM=PxEfP8ah>9_i&sp&>O^Z5UGy*3o*I9r z4oM#^uynV3YZF&ARL_pRs&RrowRb?eQ?+#d-6cg9g_Q3zt#Dxna!pceE*<KOyG4^a zEW&i1CAKQl;h}XCYe><ly%*NAj!{}Gjdc%JKr-6aRIFYqzv>L0EdS;VHXv2^G}0{s z_mHcHT-~BTw=(yjtA||OqCmGY_n@nXT-~BTw=(yjtA||OqCmGY_n@nXT-~BTw=(yj ztA||Oqd@zv%#w1pVlHRTrP|S%{J!kkyzoyvUtE^XHd5J4cFhR(HjYRyDKBEL1;L*Y zx6GS0X2J;BrupR=H%^~-Tfxk90$Nqo=>@k;yZ*ZA=_AHuWK1Q-RgylvV)2rt)g_e~ z88hb1NH4hly1Db%keQj0G4qBI=_3+0U`j}=L~W%cV^s#5sFsveR<FFCTE|deY;kq* z2->rn>Ci7yB_=qjU*D_mDOov*-I!yo%9d2JQ)6sF;lh$xD(p74V9xA{%F=r)*h*8z z;{MeclAmI+;$4@oE|txzV`Blhc$vOz2cY_eotq<RabY=4R?0fA%F(ayaVst*$~m>N zvT$X4)rE3P$0!)@+A-=l@!+HqVuxkyM<Ny^7gFzWdsI{=yN%kqL+0*`_4su!t|*p$ zIf<1Qx9<_k8k3bhFEgL*ITLfUZzsGZk51TMc9&F_%qlBfm{==QU&1U*Vv|w)QV}#G zPSL9~;$)_slf_TMrmJ{kZBx`G`u={<)5XvPCvoDj?JRzI!U^dC&@lzj+@iuVWW+xj zcsdQMP3VA{9+}f7U;2I~ne#RDAd5x+h#ISlp|wG$M_-)=eHABgC;t3L(OJhBUK@sb z#E+07Zr+@<_+d$Lo@MneDZ~oDv$T9c#hsQVb8?ESgIPMY`0k}uEZIxq&8(Nkt4J_z zyJI?a(;7Wq)kmA&eXouig+jQvsVLVcbS;iKOevjED|bpIW{$-)ZC8#bNM?g`SGn`@ z*kGJcNxOof)vh}ow@5o1`Q4=J@oPWY%!iuocE0slfb5BRY^2HTVCNsV&s`b%?G|b$ zOFsek3BXTC?aq|K1^*P#?L5w7V0TOwpDs&)T@2F4NS=_L+g0wo@#8xr_h45!td@7x zCbPSRU8e6kWHo_~0ukId@DbQEByGnoSv<C&qN;kX`jBg4tmC*GeCiVSctaGl#zGaP zRTX0jfn9qH=5)!!<Ba^X%fuW$95p60YaTl`bMq(Wj5}R2@hGqTRB?4ndEw`y&W}Up zE(Lc?t({JQ9cQe^kc<D!I{nzOyW>iP&qb%V3ys7%CG`v{^)DEJI}i342tI}iKSuID zmS+EZK=6_!#s3W2{aC|H(C|}xwEJn%?lHwVwct9UDYDwvZZXD;r_9W;**I72rquBi zFpF->aP+RPD7vS;q6LLzRV5j+l5@PG)qLu<y-cjRqnGny!hD{JP$YD#EzWVgHjW-< z++yrJ%H!42#UQV48{_c`CJr&)@X;fTFIaXSVtj;r+k>pOPU<J$vy;42R&2Eu>f3~7 zYqRAh`K+Xj=tt3yk|!ihO<tJ#?c^X|DWvgCJx$V+E?3`2R7{#pOHP*WA+mih%60r( zib&A3MSZkkwqK~rban3Xr24Q+Jvv*}FSSTJysPg4x=cMA)LwY<eVVn_{E<o<IAC67 zVR;oFyk>!UrS-i+L)4Rh;XF{Ar&Vf&TDexGE#bXVE8)6GTN$h4W0jNIqfvFGX~j0H zjtkYj`c@^?kAZFXx2yYMZTCae81}0BzUs^=R!cv14_#E5{_5_c6MP~?<sEsp%G<Av zrb()m{VH{~ma$*~Ps%v=inU;+Jo20WX-moGiA}qmb39L;N*U9hqUt=vy#{rlL07Nj zzscjSo<yUk@=Q@gs+KRTI$PZd$~5f?bv~(+D%D42y@oS%PMTsJn#{yq0?4~KQde=6 zx=I7v916{vnp&G=Nxm;OTY?zPdZ23llH4XmI7u5aBT^x+@}*^Eyh&w!<`-6#h^str z=B@L%@2gEy7+b1UYxi<hNg6Z2_cxUnSKT=O?jr7DwcK1(oyDE%$h?Xr>17q=3njC> zt}j_oop?X3x?*wcK2x6G%m<$m?t4}7iJ+3Iua#Y2#Y0<%c2d<dlF#Ajt!}QHkx+N< zg_RXcmvl(##YP7{^<PrHbTMTH%$zH=v&2gp_X7);R##kGQeIMts1_-p$u}OvGWWAG zONu<XZt=o&-p=&+llkmaYyuLdsAI~Us)g}MvhwsQEUTVZxUfU6K}98HW%Ei_R9{y$ zd)}Pu=kq-tlDSVjxkKi@iz+Jbomy79FixqntiiKS#7d@Q@7M>Oxa_-(wYV;_%Q}Qg z?wGy*{Dta^dlHB{*s6cpwQUb5qTNtYF0}4jU9sfGrPWm>abU=^eq{jZsMG=TE2;t1 zQR)5FN0d4yD^9pv>e2>q*e35**Oo*ZtgdY_{y9(Gf#;+PRVm4@rM$^WXehXq;}@EC z0dFa*v^32Y)uTb}?61taZkA?C63IUsS+h$UpuYa-&gpZsr07T5Aa$n|-$yZ9)X;vY z4d~OSPv1TR`t}_#xPQO?gNK|oV8B^J(#}11$hqgH4IZFgu{Z0c^Vv4AfB%7l2A(}= z(Ann=8Z_uUISo3`Dl+(FDu}Mp2KQk&naQ>hTGC)!@?cxk4=X1}*V!i1%T$|s(P4Qd zGq{x0UcLMD?bjd0*72cDOG=JEJX^D+*pib{l2Uv3>XVv0Acu#8lT*HYPFCvFn+nez z@vZM?_d4&t9(ius#g`1Z`JMSWxs^X?nBM!+2j}h%eNt4Fcm5xq|F_F#JT$L(=Gs42 zj~i;grKx1k3qO3facOw(tdS2t`lA>Bd!3_s-(xSWcW&SRwFS$5{L4SRyur2O!1!yw zzHs?Ze)Z>9HoD(CI9N+cqPHokPrZAk=BX}xIqRGhdho3g=cZ<V|G&<Y9=vmN!|t3* z=7%bO@Zj{hLyD?$Ke@D*bfEWTd28)-;*Ud%XWlZdx}>SC3&-xk$o4Koz1o0e)#hMr zvbO)0JF`D{Vo1MbKe@H_hi?wm#=RBQW<I^}qbvLUX}NtvRQp*}YgqQ^pC<k3dxyWW zde<x8+qv}4oXL+D{`mILEiVo2^=7YMo_*FH|2@AB?0Ryw;kjt%bCLHae>(cbtcx6b zrhMm5FW<cE)j3l>E_Ls_@y}OXy87C^KIiCXfBn<!`)|MWJN^IivxjcDWz6fpDldBb zla^n7Z`6>vJDo4De(|Lrd}(ZO<@0}d`tn~*j@IwL;Nw64%dZ08UcYpn{k^xmTJNRb z|CPJyncUSwAM?F`+kyjcyPY>xEqm*sowr7{+ut&x+S=!S`qjt3|DF8>;SV3bx3=P^ z-#32##;2o~9r<4Pp1<6DP4=HBy!z^c*FSWPeeRT!1>f7g;Omj*vm*OO%yqo}qd^(Z zJZ4@u`0(`&cm4eRZ!Z1W*S}#ey{69mo&U1`^0n^VP&skfx%+4KdVAzIYaek>zVb1j z_m0+&zH{T#cGs?_-!gwzvA@iCq2=5=_OG6~ui3u!Z!4bv>+QogzEUvtqt^~rAGz%} zw?4J1A?5XL=8jjtlXiFG&Zo}1bMe4QTYEq0IyB*TuU+uHr+57_s%<dtKJQo2hFueP zEZOk>Z?F5ABQvTszE-&OtfzjH_S%q!pWpxCE4SKro~7qrooAH!J`Q|y@@<D-`Kj~6 zl2^V_@-^4EpE#C1=<&bQ_}bI+p8f9QU;noUKe(Xi`CGp+aR2`npS$np&pj||O@+Js zasOGfRz|h@U;ez+eO=(2hkp~*-u(K{|8wqHkq@4Jao=s(U;5J3sXw0lr7acu@6S52 zB&zMa<l(&+PX3_e)0OAn^k4V4T<faenX$jupMP>y$+y3G<fqFYd2hhekM8)ls}_AL zs{Q%)A6Gd0y--o|pD*d#2732?b^o_6npqpT!@2yA-}%P+o##*TE`I)l(dG6dvo9I9 zd~w<0yT9_is7J}MFDoXV%Na?hX=iCuwPLM8n~!==*9x>nTvu~csjDUAIOha8(zWTD zs?L(4Bcy)Y+BtKS?bAo=XB(t!lw6X3Y&%EU8Opl0eMw7|tQ@b~E@-=6Yr8y_2MfxU zrOJx^y2X~Qu0<}tXS+&WixF_-2ftR=qsTq*C#A{)p-$Tbj^d*~kK6A=pT(uhn9Ux0 zx4yit>u<i&<O{vz+eR|Sr^mn0OFQc0$6ANa-S#{7XKtnK<W=|~yxYWzUzHRekCwSA zx&2x)^6F(vj?oIMxSgK1=iBLNdp(h!XeF`Ggg$GN+Ur)8aYA3I`B3kIma|sLqtq>n zE0$Dqq535$yn1sW+7yUXLfoq6hQ7D?AnIBC6i-iyUmWXQ3WyiebM(-l2Lu0{7>ElE z-fbe0&Xx<6IA~sB<-(Hcxh2)r>>w2{v5%zBsji;h!CUNSeFgAMOAE!b6X~T*D@%|2 zrh+T&+RE|{_cs@Jd_J$TyejTE_2(-$;$P<&PwOXNaB6L;k2{UC+ES=Lwcv(pvqksy zlRd+gWqgZmalGt+@`^cy)zu}+0g5MHP@ND0no(N4sHAdg*+P8S>P377i1K02>Xa<w zi1|%vU6fvoyWZwTDXIR5l+ea3#=YXbovtadSb$KucPs|l=3J|ie~^M&pT$+V%XwFE zoU{HYNw#!0`<GsK^Q@b>R^NI(wS0!m%s!6x780Wk+SFNd+xkT=Z5B)RU3&c;N|8%> z{Nom<ueC~Di;7-4f6CYHlUwzgReA08Dovt9u@{YX9aD(cE}BuBRn;MQKp!jPu?khs ztg2a+@jeP^;=Q<jdOMA+2-(dQDz2iCDMc0i9#xeLU%a5Qlq)QpMA}&BmV7A|&i`L5 z+NBD0I<?i?DP3@$sHYPjr{bS#+AX)-qD_3_uj>8lA1+ewDcV;y{8nq7@{zW3)GTer zEx*?O{L@dOKfQZ8_QHRYUuLlLyRB%3raf{f`axWYlP6OhsCV8saL8H4vO$e?gN&`5 zPoP9K2__~DmkhivN5E0y#7FO$^9j|YXG%R~OUs3Z=W+DbW-0@=Tp6+SK|L?8s^nQp zS>eh`b-%Jyq=3w_!fjF6e2IH0Qp<C;_N|CLSLN?1zo#PczN~7=f)4jZWm13JJV+f? zix$%c7FWCtw)=4{uUw9HKIkJ~+|D+zLQ;i3ed%RM<vhN#T3|cX{{5BX@>55teiSV( z6F!nxJx6;Taooym50W6)EWR;!K|uwArh^oW=M%JPvn%f{mnP&o{`y*Fby4TE>sMA@ z7h`=XH&FF2E^y-vaO`GE$_wX<M3W}^5Y}HJpI(X=YZEDId<#}oE+LnUtMf}hB5`Jk zU0$lCDpXBVnWibKO;f0v7L};x(?Wj>TQVg{>6`=`@jB%GQYG@cfw%r@^U$J-vf>g8 zLl)))xBYRJ3W+pJR8*X%GTbN?A?=8@q``832C*i6vGDwvv9{v7EAIJ4XRNKG-p?It zNfLwW2G)dijsvd~;fvA<FH34EE&*3kH9tNf=XPYJ$?c=DGAAvy23?(Ty|8z>3Qk*} zE{sX9bm|(UU9Dwk*Mp{&3PI`GLNHaKEd^bZ6q@3a41L`RUA@$ORgp*;k!;D<{YgtI ziD#ZFdj2JRc3mg**pPy!3q4cLzoL0ppZ}1aYH>+5*_`;%wxZQC9a_7jO2P~74tj)O zT3k}ed=Hpk#%DlpR6kYGX?-KXGScQ?BgRZI?8)*ul<dExu&Qd_A{HMOF5<RdcSP|C z26$|I%Us8$XS|XG%7|W&mA(-i7i$XLHu2gu?Yj!y-&N@TuGG>lH_!f1<>-ctOjR;6 zrgImp$R;cydQ@IV%MXe8Xmg9o(r+oRo^^3SWzm$|Bt^Xj@f$9f$g^&pyS%izXi?lC z#zdc0)=|?)3PnV;cbLDfW=6XK15PsDxTL7MtyP5_Nfi&EusBwIU+r2ruMkOI3MZBm z2#e(?mZc)q_Zt?cr^nV!`m-LnoP4F)0?Jfkft13z@e;G*2)VYhc$OqiXN#!3Usqnu zkI`VSJ}Y<DYkFB_+%`?>I8>g*d0XQ;z2j4UQeiqZ$V_YExpdaz;@xyk6A!3!TEeo7 zw8DxqW@1&P>hJYM)#dFP8!xMPN&G&$V{f|O*C`c2X-d7~eN9Y@_cbx?<oarv6N!D5 zM#P(oSs|V1%o7={qGSi8wBu7dc}jGzwyyg+wR~Zj!YdbvzD?rz!PYz(*UiOc>FRx1 zWt+FE;Wn1HF;NGe`{oqMtX?-RsOn@b7L-?~^GNAIu@>VzW97HbB8R(3M+)N3R+i%d zcjVZ_2h^aXP@>@Nl5yvhRWFg|I!s5t)d4vdR9BXF1fZnwKy^KVQ3q;YMV&6fL@R++ z<y@rQqZnLOc3p9Kb&RDi)$+6~O!Xp;Vy-i_G33kEa`+p=lPpq;xhmB1d791Dd~Lio zK^w<;yb>H)JjtRJ_3A+M1@~EroD*jzb;%+Y-8+q=(-bIiaY<Y8HZ`~=(Y-}*cC2L< zDU>;y*mJ8_qUTg7K@%5TD(067l$2uj=e0ev#H=<K#+E!?=)JC`YXZ;Ay*E83>sOS; zS6ij7lapmr=1&e@#GjOClMe}L(_*qLo=;gnYS^~_ph$1IFIucPTaf`JFG<B!#S*^A z;YhN?I#;5!l!)hDy(H)2r7)Ilbv(%`UV3W9D;AbX>sN5Jx2`s&y#1Ed0Kb=2uF<GC z*73AbtJIYzD#Z{Ji_I@tCi8oPDi$9i!<4~EGi`%ZrId$7R_m3tdbKhXq`r<%RB3+O zhkRmPv{}fO4=<&~(`qjx`C}HZ2)on--%0hPtj#x1vgYiJ`R2WM)BdSjyqEu}lf~Qn z*VHRx6FZVu!mgTb`{q+FedK?3>|XaXspkY1ub{dc{?btvuk6iP(NS!~dfsEH^;l|v zD{fULT3~IGIKg^rlf(&WiI&Q-tx92<j#j1IV?p&;YDH6eEVUj>?H|%ogT=cSBssoL zJa&*o>FKs8NvxKHD2X@=!#E^Ta!D-4{B5o^ZLHGeW0gBGR$|PyJL1;TZEW`=aCbSU z^CT-Ti9KD)afMhuym%(|&xwx#a~H9$Sh4)hS!Jb5C@5{rt(Y!r4|037O`$A|leC|| zN?0&RExg*Kc0yX4)Q+VoJ59xKlJ{Aqx@ced$Q@jpc6<K}#c<{>sJ>qM)4>(YjrEYX zo)}Jteak&DoQ_Co$LBvz3}^nDHu#^u7>?rq9{(9{H|}<Sas20Hi>vNo%5@GUfj`sU z0P(%m?#njt#4l{x;QHINpRRc5sP`mo)O$Yd|Mj1tWiHIueqH{ymU)R!duGxr)O1y! zf6-pt^RhN^YH#hOmMgUUmAkc9Qva7Hm#?~6dwJ4Nj(WG+`CafX)lR~@!e0CO>Hs#C zE>a;i*`B&wyHlG*=&n>-qVl!J3;M|YnOk4&B|84p;{~Ii=oBwVt*73jb-T=L_u~a8 zze3iB`nwS?5TmBU3QNCbd~H!h<($H*d%BDoDBI*{c@&E&sKBhmlw<1&Vt1(sN5W2n zV@D)<?2ev@1bFF*NU-MJwk9Vc<ml+h8C*L$BX$QvIPu!Mk{%sAfT>mLWl`X$HF+(z zfYd!d^Z2s#Wc|!oEeU?6NH6(Jrbyt}YP|aBn0$atq~-<6&%8jiS;A_3+zUHtZ?cbk zx7>nuPqM6MMIPdchgjURB7YLQ2YTYX^10<xm#Wv7SEdW@ZjP<U%XNo!-(&59(T=vB zzSt}BW7W{q>F;bsJ|QgdSytrR$KAe6mzXB&?;VZgo)!6?75O<|oQOig4*EW7MSfvy zgUr!hcHcAWW%u3<<D9yeotxUp%Ra5E@?);}$~k{MEc>n7R^``R{?})2TE2Cjq$TV_ z?aOU9yzHJ;`JVlgf*{s(s(DjzILY;$il7u!ueSA_gtWHxorJWWRr$8>cM-3^;@uu= zO)&I@-apx6t)2P(lVG5G(URlq#FLGd#A-><rV=fY75Q^HE{?6r|A1>gz^kGq37`D3 zDVwtD`qJtJD!7tVL$32U;&qJR`eF`wopc<f@9ffri}*IAMMz||;$W>z$g+Q5z9&I; z`pbr5>ph;QeN{qzAKjT-m9WVePu*Uc+`E&#WMd@%2dfhDL5@?gmp)7Ea0YG0UR~{L zj_o+;9yff(*rDL7ZHLOyk;8a5t@o4tl-hs9ik&p#`^=~)TFOVv1p*0(Kabl!+6>m< ziugp@Vzq6)^QX}ItNhld&<2oSAyYmPWu<@4pGKQ<pfjqA>C@-G*4Cd^&n&9dYFiiR z{UUxEO}4wsYcxlu^=ULdJRvXZdm;O&__vaq691lK$?}I)j&8{9-m%?Ooe<o+(`vGX z@HTm^?UMXwP+mXFI8IewkNmKt^D46KR_Z-X$X;{l*PEYw^zIjh;_+SQYvd;OYWHuo zT_k-D$nLP#GbvlWXt`T5`2?dnriCJSh|A=79cyBgIO^?WW%8r3k|!;b&)_GA2U@cE z|MZi?mzBJI-5HeCiSu-PL??-@`8go^G|TD}4DguXRy2>JJ6_3}_(i+*d?iU^VzOFz zUeoSS*7qGsR;%5x?Q4|-_o*D+kku*E_~aXf6cW`srTWl`RCBaUQ&Ex6ch~8S%PPyH zGacm6)cYh!y?S<?_Ut-UpH%th`Q&gy5azV5Q}W$UU!29Vd2t5ks|rr-<E!cIHMNCj z`GSP_t1Ub`F`i<{!k!(tU&tM}vGp?Xa8rmw74jviB}#X-`4LGea)0Lhh+fsSeX4#$ z>1D6{tdrH%OIEdx*0~Zv>-KI`%Cx;sV0DR3KNYL%*n35Ltc9MvqJXPsujv2jUeO+F z!IFe0xtN=7<(BhFS_|C@g|ye+Wq{}Ody7f8ino~bP4O0!ZWYZa-r`a#vbQSMos*7* z^v{`*E*@7YA!?;{+dnJPpRe+mp`{=F?M<DubLyGZ&bHGL<y%xd%+*OdpUx=X2|$pz zi$$FAQ_;>RUX@Yt>ki)atljeZgqA-SXbT>W69>73en=D_jPluDE6S&SM@PF`#X;^? zage*Emi9PEQUST;b<)UAnO#xV76-9VZP}Q!S#{y-iaMcq&>2SY>98>uI9AW-jN&tF zW3Jw9kzLO1vFfBj+;#)SV)AzU#8Y>^%1;W%Uvb+vp<l-qv5Homk(f|Y)~^MLm#V}1 zCe(9OOC45E<WuU&>N_DT_<f$JC21Ft?>v>)I%V?4uU)9uNn`XB*Tc^`!<dyZo~mC| zJm*)@&X_%$dgV}(>eRl~N6|ZWien=&EdjG<k$x(eJxR&iMKoHA#XOIRRGG)lI87ME z5U$1dlGVP^vG1G|J%YudX!tcHF~26YBp@^%aQVE@sD7dC%z5dy(}Bj4Z(q9Pi-AVL z|KBGX<)^tsa?0nfM#l8F=mYuAUEyf!muZwfZP(wa>r{?z=<oguEBVE^bhTSZkZpbD z%BErv)YY~8IM(Msj`a;1b1P<*cKkGfq)@$T=7e9S*yXpN-h5wds3-k>e78)Qyk_#6 zDN?M>Mfpa1T3bN#?r7|L`xHHT;+g-4@yuJkwzyn(YuZ~NK7QR{hmY80{nd9)m#E!6 z>BrgE_9dCmGbcHdWOv9Z>hYDAjO^1nzG-t%Z`XWyTH>43-u6n+<KiovisU?Yd{ddJ z-CPa*JCz{E{(^VG;&E&dv6p4e#ZJB`CjBqrTE6E=r2i$#7P&-fv7|rdhnD;c$-wKR zZIRyAce`gPNvBq^{|+R7LS*hFgHt_{zx_*L{!YG&H7@O=$CCWw7547%%LDv|uflQs z7YB~|?G)?RP|t)0=*-D$5`9+1lCjgt?zXx=mjC2Axu8=0NRy&~6^F4XRKT~pm#XiB z@9Gym2B`e)yI<9Beg7Zre!Z+@_3X}GLoswXgSu}`jLh<up!+0()eYTulok8geb`gk z{hBbAt~Nm)(=ApsKMKL^wOz)g>~bH&aal|k{i}L>jNeD<!^5O9m7^QFXi$6)cluW= zmXwxQylf#kow^2f-p8$_tFK010=hd#8HWn0&jg>xej}+`2B_Nj?7v&{;>a~Gbw>MX zj54m7^2=ZA`TGiF7UB_`DHERz{$@(j|4Lc{+J|!64YZ$Hl<@@pIyOi<pfp}f;)rBa zyfW2c$=S7%kn|(5n0oz9ET+^(nKk)h^r%gt^m@s`>*VF^XWFBkly-&@xri~GDkA?D zsQ-FrM2hS^gYs8MAAcnvQa-74Dv12-@;CmyJIBPK%wuO+86N@fBRM1jD!Wg=9FvtY z8cjQ2+3n{myZwBrr9En6JEU@S1BEH`N>+#vl6pGq?3srbyh7{z8JA&a7=0qQP7!@8 z^Ed5#q!aqIb=3R$qi-0kb_0FljvW&&JUcF8_<i*={nrpZ(|;hlXA~zzfipc54bgv= zxp*&n{J#^^;rQj>I|)jDPBrx6+fq;J@4e@>=XaK9r*@928sr?+x_d_2sh5q<8TV0t z{Z6juopK%86SW0%TQzOxCsD0D_P!wY{;#ojZ)7d*$j)6+Ev(KTsPoP*#JPoDwVW7& z#}}I)@awdn{qLW;^*9jKd(m%x^E3HY8(x=u8jZdy_8G5#XI-O4)_jSw?&VsS6*o<L zh|6e5?N9ioTt>z1)sl0jecOzVlS_Fef7c4eT6Z1J$Iyib#&z{~tV!xB?}2gM&fOos zeE@&`6V7rkDg6|W_J;FPPW<;tdTPck_dV<VbZ>OGmNMkp`(D{DSG|(IT=2u!c0~3^ zKh}DsjNp2E<UsTzEj5YsS9ctU?vgAwaTz%j{gCSs1wSIor_m3rEU)eOH2S`(<ws;W z65VOl@@jKyOZ0DAFKUtOt<m?|@<gILv_7h(9g%2syVg5-#7(psjW)-#w1l-($?$5R zNlQr@QSgITLt1k3m%sWzP)kZl`&U!b@;ENyNdJt-U^AUxJ=K0B(;k(dI*3M=$d4r) z`IdI@;HRG~kn3Z-KI0=>C;51^HaLX9Idqyu-x2COqSfpQXf?+|Ub_H0k)Zm5)X<}s z&`WKvVd-Ng&AGGUyFdHwW6!<4u}%-Yw`<>_R<IjsIka!rdm+7U<J-?Y_S^sbZuuQ^ zt{I&^th@QGNpH{^WD^nwa;K|!Kloa8C6q)k_2W-Whod1LPw97r-#wo;ZEne~1<55} zyDR6gXxg#%?NOT}yG3i&Yy}6yQQN_Jty)C0&G<AFwS77(f-z$|=Wl^%^3L<5C$``E zqe;J$tI;i7wT`jbk{>mqwnvj}XC2^ue;;kSC(6#;D$aLkk8=J=?EILzKGyjW^>mdw z|AO<6wXbl#B}toczyCK$Kfg8k#C*`sQ*z}tyYu&VUi&{G3@+1#vc>08&Jr5Bi0g~_ zS;Agewj)^lJ)b8d2_y}2Yy6!b86O!J9iKdI{J3$E@wRc}Te)i;m&)z<aq&mv$3^el zdq>KhcktJGhj!<ucO>6=hg?P<NV@-l2lm__eIR=OfCuis{{imgbpQRW4`}x%J^$SE zEzc!$em?SCFL`_Jx#wG-(@2ayALWQ}eZ(1cML3Q)d%K)2r_<$fMqK-y$-6(<{mI_l z+9&&VCx5~Y=*aFQ65J76q%{(WwDNW&qP4a}T3TBpHj-MS99krLAad~21APu2IB-xM zhYx56TMk4IrW`oPU-bRfowoOPM&2K^^ZlLgTmN#k^YHuH&Q^}d`>h^Lm!riK(WB}* z%6pRT;XcBB#It*ywtnZj<R_nc>dBU;Ql5N@zsOTb>a1}UdD12cQFWv~{E++|dAQF* z56cDrhaR>)^l;>%=)>AW5f0nED|g(ht!(9p+?%}e-j(-ig$M6SD!i-k$X(IG{T$J| zw8F?;$+NG$c6Q|2ezUKY3w3I_R-4^=ZOd$%JmC54*-2TMnUSnsnOVGNWgf|jW=cwH z)<Ev~w@z7^k>T2f2Zl#495VdE;TNiZF4VugT^JeuDaPC<15)}A;BWtcm;mSpjs!`U z@>@^6_%f<d++EIsNfKBZhJ+m+!__&0s{`k2L-um)IX`NlYdq*WJgyZ)*~arGDARcF zBRG=(J3kS8-Errg5%3kcBYJ04-T_u03seB>@cq3la6Rxq>-|Y!Eb>6){#Ia=1hQJ6 zO9f#3MV_}kX8}ur4D>zsyau{7S1ZR6XN!85>rb7Bz*lHDSlR`a1W)@pB9SOS5<n#> zs6``#TLB$7vre&h+W~+U1zf2Dv;$o9QWpmf9szU7f~tr@RLjnR@9z|}Da5JdJ_0() zu`@;YC}`O{F~mjnRF6)Qei*PF@wnH4EHD*)s<%SgQ%`~`?a9O7tL3SdCzC**g`{Lb zSL?%3b+qul@8OTZ)JF<eDR&hDs0cu6QD72?38<olhwq9i6bX_dv!fi5Yool&y=}Hi ziq7V9Bw0rUN?DQ26wX;ds<+@t{v(-vtShdg!}|iK7?>g#9v+?&1C$1+H10nHSgq=a z_HW@m5(if=;PfRWroK$9yB~sT2zQq#p>+Z0i%1#4eLn$L2w)vLU*PjEBDTgOsA6YJ zYH@G<lLLunAxgWm1w<X;5D6y7fjgo~aA^;;+%Jdi0T5-oA8<uDq7NjC9Mhg_0Zmcx z)h{N%1W+wXh@~jR9ahllBf<;W<pf@-mLNOgOp$x%!QIhMlsMbJJMzha-Mhh9E5}F3 zF+p1^NITq`VxddnE?EIh#F}<c1XzS)567Vc$pWz?aMSXBvLLASecR6WBO=od^A>$S zx-&%~E8>ZQr(^+Fi=HA7L#Rb{P-e+6<e9z$IktCQ6g0JRv^>>EB%1tl9er{@?3x4; z4+5y@!$}CS)`v8tSA=_;$TIDrCJ=V;-sHl&1Yjb!4&9Z?S>Y{O_~~8hNz3e(Ym<;r zEr3f?s1krFVJ5O{_Uvn;S;>N^Nao?JR0S*qnWm0b-dhl5DI%+eM=p#axopEPY~`(W zc*}*!0=EeGie9J<2T%P2aa{F6G$nx@Z6}-iC9Y;&Y1&o!<MVQ|GRKa&@`_QHUw-+h zD@KpW$jr{k8<#(E0#CAIPe$_O%F$ypvvYID=c_W=nHg<mt{gKqGb<<0dXg)(jlN<O zFN#QQxjfOdiL{hUsnPM4D3zf~P0SycC#6P@9yRLnks~RVSfA>H)Mxe1YH32Ow$3e$ zQ!UZ+STC-SF<mJ=Z|`5?m`1lh87HGn98*Sy>iJa@#*b4^Mqg=-NqU!^Gj99@lz|w{ zil)T!a6T>dpy;a%@~*DbOq^6So1BA`k&=cy_!3HGxKcZ!dfNXaRi36{%$y?*KzIIj zX?>D=_d~Pw>z(|O_OUh~wg1^ehFviHf?-3>?w^WA(9TZkH+We3Wmk^P7<<KK>B9#1 zP1>XF(auR8Fyx|9+4)nZ&zLqjKl}2FhV)O`tL@d!OByir;*6_i-uSiKzH$34H_n_m zcEr&BN&DnU-ys)gO__6BaoM-3D;JmCK4(hS#Y6h;)AniSrw+bo?Bs&G%D?@?fB%nv z|KYdG?<$y_anaz^{qn5;uu)gdx$9d$_{DGk@aQAI{lyO|@0v4l)Uf{hwf$OJ%HZ^@ znYWey;Nd?$``R0?KKtmyKPbO_X7)vclMl$#-a{^%cti2Mzj*Yeb=&H<z5DW`zqq&L zhKZLA>8+mj9d_m9TNeNDx6iI~1i}Hwx@Uj;!?If@UpcIwdfNYjG1G6aeBhB+w*_|X z-4)#S>L337TenXebHM=hbinY88UI@K(?{Q^Z{8c-8?Jxj(f_FW#*DGUt*8Aj7(4y; zZ~glptg-<qTY1~`u^04jZ?`PgZm@H^^f_Pk`Q>%n8n&&IJ{RARAMbO@;ES?m-p+U* zZ5!`xGqcmrX1s}%`kzN0{ewlRt45{uQ&j9V_@ay{Q25>-KJZg0Tyf`(Lg8Nf<MT3k z&h5pEzg1OPR($)M$(bW$USux&4;_(l)vO!TT;4EqVum%BGW-3R{j7<Tnf)mfvqmxd z$$P;{ucW?%hg~%C%E;JWS6-H$rm*s{mXg|k@Q}2~1u0;vADDti1}jvb&)Val<GZ9S zxT1M^Q|IiuA$iX9>#jV4`<Zgt3$?WyKUkZx;a%5@qr?gAmHW2mt+$^1pIyJ{^*?|4 zeU0(fIB`dN4Sape*sQDxA6(NX|LRd=Hoi_+lHWJ`$&*)Ix?M}X<mxBxw-J~7@(WY@ zgte4DQ(qXNB`5v-o*@LY&b#~Pwxs^6CIz&lYyP)a(lw>YTqWI|X}fEZU$afV*;d+@ z_kMS2^9@bAUHb~>+1gc{r^L<^)wOk=psuZR9@mq#VVp<C?8uW61D@!~{{3Cms{L#9 zD}9KCoO@+-DdFQk$ZLZ-|A7tZ@?uuy#hw#+U8~NSu`#9~9M!QWx<}j3XWRB@hoVO~ z?~`9uRl?VLF8L5y(fv3?d!mQ5Bb@iiPp_V?Jnc~yEA$(SvCzQfdv-;W_gtX#!qnYd z?<Uqw`Zqq|`r}FJ`sw{#ANU#T``T^0K8PlLG@h$1hq!9lqS?N4U?<^~<>ZV$_RNQS z_U_w%0Hf#7K^(gM`}gnLyX&dPBog}Tr*?j{d(Ymz`^5S_K%Tvy?Ed)uzy401J^1W< zAAZPFDJ*67?EYxiM?3%WpnCT9dmr!&_j1pkJrw!y!`&afzkQ87d+-n8ogaR<>%(0i zeZ2c)_4??eUAsQq{wNP0+^`*k>w^zI{D4EfxcK1xoz4fN5B_<><}Dpxn>TOXvU&4{ zryu+~8pUJlH*VUriJouX#2@EP8#iv`SpVcd$|x-KpOpLoke}i2OfSX5zXLFN`r&<x zaXW;V=Gokx!?i4m4&>?_t_CS3)0gW(+J&SGcMj&-S~!&wXJa}^Ow>wG9O=+Vnl|)f zj-6@yI3MC@RYz1^N74eZ)JR&Ct54ICho+?s4W>zv=ClS1rAWfi!`!!|MTYKAvkgs? zT6`R~G*y}8-6iSoadCj-kjimHU1>x2rA3Dxp(<&27sm%&wGQ>9wQ&8Rv^R9<?lhXG z@py5KcJ^~8hos8Unzoy>G`%aWSDJJxjX`NcKT*%Lq0+bv_CVSPoTYLpeI(7DmZ~zR zeZ;NMKr*$^TqG^1GDy`)WRY~~qZF0nkVOl*{4{L`XX(83B+PMGWtSG3Xb&3kx0kzC zp@WS4eU(XSkt-olOPUn+rujG@RK+EqR4)}u<#HTR1OGU!m#Q*Na%N~_KjvuV_>`k1 zcD=noyYV2$rv-uKNz0ZmJFq;uN_%7%$IewP8zY+zY}7VII6l~D+qCiU-=aH@{7u_= zkoR4GO9VC`yqtZzR}${IgsaO?>?8SX>!n(TdLK<lXcX6@$TOPX48Mf;5#$@iaV5Dg zC0sO;&%<8H-zB_X$}tRZCV((HEGcc+u$Hvm!_ut3)?vN5Qa3HbqG_$_(9)vAQpra; zGeP#~utC<XoaK*<n#!ESot74%STC-u5)n#CiX66KZI@9=O8Zo0mm<khQ%hR1)Yqb_ zqfM!sI;lI>FX=+duz|7W<uR=skiu5Y(qq*~MBa{2kBq~r!X|~I96V{Yib#ft3{J`) z=8-f{0p8j=BmI_9%h=k=A11LSEmg9CPtuP_r>uIUu2>85EIO>8N|Bo7zEzQ1vdBZ# zAvOB=0AxxI(?Mw~Hm=sRKB{i1Uy`F~{nfo{UYe3>`p8p7k5*|>U6G=m#p;nsYPCpw zh;%jWlGEzPIZ{Eq4(pQKGLbUMh$0nCK@X%4DUzGiUh>X=jCP8;EwNroUWk2|qKD&S z5iqE-!w#x>89;eem8wT-juBD~fJB+V7CIt@tl^)puB?8woz*a8x@AV0YHQ8~Ezz_T z$tC@cPq$T5tAamNQ1w~GB54EEy(+<#0!kXqYaH;4N)mDlD3B@EtVN~8BQc0r(1-8} zv_c!2jwR9^L9%K>O;fBfN>ig87R-cl0s)!Y_}mXe5e$~vVim-yX*mjCR_A20Eqcg% zM8-<%*0dd@T8N>BB+rhtktnM23dP$vn&-mv7Vr{CIE>;k2nhzEfE3;zpJ;26tx^N6 zZpQ|zny~P~kcIJSLg9!@3;1y&4HMo{M3$jQHzd32i#44xy_$kd9J{Ix>AWzKNEnN* z@xdw}rcs$Si2{9@)D~!<#pocN=r7f&Drv4o&4KDY9hQcLn9?;NwH)zDuu1?{RX8Tq zq=00zI;2EQ0-IP>X>m%(j0=(F{XCiCgnn2zT1F(ZcSdGrMrKAv=7Ef8W@|=Y>qZh# zN|`Mg(E{5|1(BPQ3vMd7sih!^b8A8LrqqI)xFR8XQ=}kSE+YlniX+Rl6|KutRxDq> zVnt+ms=O~JL0i$n@#*p;?gp-UWYwxi9+7{p9yx+4YgrY2#J1{@2yd;cQq<!J$&ro8 zn6jIWpxzF1v~YZ~F}f+bF@lcUrH-VXf9tI0B<4Iq={Z?UlNj^`=&>s}4@1j|CX=TZ z@P37gQ_1zEO4E%ZdVMkJ!&Rxv(Ssu~wj{EZpywiDMqmN7Vjakp7#S&8H))s}VgiZj zq0AjvTx_RLV|Ig;+d3a47xOC0A8RXF%nGZpvdhF+5EDUaKa|$rGJ+)QP;yz;i}el; zhKi9Se-ULgDH}&w8`8SeDQBrnx@C1&wP9rxdryoZx+yv2@>7*d9_&d=qD4f!v~2ZQ ztT)RFl2J<mtS))H-@33YNaVbgYCV_k9hPF$CRSn#q(fhjs*+^1(otwgjyQFt?nrDP z?Z#ZH%EJRX9En+cv9V#0k*KV>p(;rRgb5&(9#l4&ScXE2c!NUrG_mFsnRsta>nFLb zHpnKV6GBL#SPyw9goVx3pkyF4d_X0|31bzIY|@f46@{=?EivL-X7Hz~36h2m6;dBj zMC4Aoewb$rNUDK<1tUYTsH2#lD*vIhK4i2y8=-D#AvRSlX-8r$TRpPIOasu(>O{PU z@~%2$QC+zOLor1xoJ26Xr4eZ*-VrgpBSU+u6rLcAq?6(eSRIJQ!7OB!YK~a_l#Z%l zfjh1gZX``?Wr3DZ>JX!|h<lcr25DLHs0oZfX{-BEs|@3a%5F8Run_O1H8}`Hi>a`z ztV*PAnMTqrc2I;wo5q@H<teCCP0}H0&1y?#nJYA=OlkWxALL%#DVh@6#wieuH)y$G zkWh_51}n8#ppYR)R6pY5kgh36T9rz&3|ZLVh~gNbRIKmqsFWV=jq{t>QuHS7Nm;{1 zB?G27{<N`2GE&E8WbhvuD?Ud{MsFhKv4m(wbZk<_SaCiIA~zz>Z)`0{zOmrOg4P@R za+be>8%ZA&zg7ta1&5apz%{Y{m-BXHdGfO5%a<YdmqnKMl1rXOmN%`^et&?Yb=7`E z`9Y3Wj*m9(SMEwLM7jKn1JlWMu@;3=qS~H08o~dM=MY7kgG(bD77@+S=qHQh_?W*A zsq;yl|1p2ZNL3LrK35`<IQ7cDk2m?8MnPdUAFFwXPlLT98$9Ks9m(2#{PBqp^=U)- z-J}w2fjSpy_o(lj&@Rc#$}P$*&dVHAlAV(?CM&DBcuZk_UiO&z<0r7ZSy-HvpT({~ z`BA4e+jx(^?&CrZ`G62jO_2}c_2G!W?&IP<QcOb+8HQ;X9z%EP0bj`F3wXVOU?5-` z=30Bu=lRyV+dV<AVK$QIO~W4y1w5wD448gDrTm5`L{Zc4ar+I!p&Mq%t$VrjnT>Ba zOv4*AsmW`w|I74|+YJ5LYZzX`6EJnB`LZWK+dd<x*ED)OJ~Fy}{s8^)2Mse|GzNU$ z@Rl0gFq#b0<WZwZ_3O5{e8$#B!}QS3RvwsUAY?Y`y5aY`y{6aH4WD5Tg~QFJ84Q{p zk7@VnzEHqNul3*tpHDa42A%S`oEv=7J&()u)vaOpo)AszhS$$asNkpkrp+F=9u5W! zuUm~XY=8Gz(;wPU?>3w0nAi0CTxQ5;N@m0B@-*3frU7OAX2=Y9ji6~7&%GG-cmg5X zf^bfcOUNZuF+8T}4{%9I)Aafv1y{j<&kiwVSWQ9QeAnX*G(S@xg4R?VG#Oja6Y_?_ zy4mbDji#WVO<c_k%?#;{<j_q$V44mW`T3_nAoR?(u&H~4PIt)kHyA;`5i)gunEC<~ z@%ovJAnU>n0mI|-yO~+vI;R=tLJu@^@ACzMf3*idgl^Qhee~CKZR6plkUyY%7$RNw z0GALm>T5D|`W*Dvctd7=&>IK@gqH5QkjL<P?EZk^w;SX$LjKoX%(h>5I>3bAZTK4O zfCU-`0){(m+Uvch>2&JBI^AgUg?9vnRt}?9_Xh(`r?ZZB?7Haz5)FR9<_h^eK3!-Q z3<Uj7!wzAo7P5v+uQO!00)9_j5CZ#}0&d-K>f6l?9+%hf>4w7}3i%9={|$F=tM2oA z{SH$PF_WM?w0L#1>DB#Bn;^95^?Gy~@VoUIplSN+>>(&;1Vg&l@Owjkg>UB4=WcYm zm=#77BEPQJuLe-t+zj9Fc>|`S-e32w(_wc4OuvsVc%)w@eCPGnH8}m?qS2uTgLaqa z9V6`bIs!%=WAoN~f=#|q&|B{_0?^Q7ch?2{hTmt}0S)ySA?C)V2b<v=r)zb{>+rkH zfXD6H`nostR*h4z$~)|7cwSf!EFFN|U=9tRCmhg&ArCWU2Ay=a(c||9x4Pjczr$^M z>-?e3%$VB_%lSP9je~qId=!MS0UJC634%Va)9^_*e6`Fgbmj@1>hW&$7|-jvFTnrm zt+eYljA#7;7Za}ggcIn70dx3+!Df(2g==NDLrt)(?j#+N0P~0Jo1K9zddMvt|8Gpb z(cm;)VA;?&i!5T=5hdg#*>oDZCm0NPbVVYc8zdM3FIWjTnNC>K?hon$U*^;Aa>D|K z-xI76fYt{6zDB5t1b}~a4_yg`gLPr&YEKiea4=h@i#j}whTRFu^agsz$V7}WWUpD{ zK+G|Gf6xI-GD72-P4Fkw@YZ>RWUxXY2n~=lW-tUT0Seh5DH6=%4!KQ)m2QS$7Py@$ zW}X^@0XyJvm`G<GNRs45?C1`&!5;88(I-1I7_6xQZ{c9b&~<Ov<?$i2{65{aNq5jy z5#VOfD<lU&Ok@+hA&lY=HM&Ax`p=YlLm|jhR}V`CgY;ck$_xbq4$30s$jhW4Rp~Io zEcBEc!3Y3r85MA+>(m|!g^{qP%VQV$V}?BSe)~Jk+iAAm8#F?qJ;;Sf4tklNP%yOh zi4d%UjHeR;i0pT+Gu&_llSVtjd1j-BZg`rIj!r}5E`4*<!MVD=%^&diU7H)jrhkJM zWds!wdZu3w>%bTVqi;rhn~iHd&H%6uIP6G2C)&b?xRDu<*>4i@3>T^qBX&I7%;sR7 z*Jw16#G!5EFc1o&XWT}81BjPWCd3aS?vP%9C2S(7!vUrO(ayXE5XZFQ_L#s7E?tLA zFnzS58+M<a847OJO`qSh+KZNPA^<|Vy_qTVHNqfX#ts7LDe}5uwXk`>)nGP+O{3Yd zft~~#5k!WI@#v1{LyQCsT<3%h;8sdCiC}u$=?Kw11gan255QSL5dt&~-{>xMx{thd z0nycrpLcriWBz#{Lj<yDdsBaX8|;D9*ZuGdgr#nu*#L_f{;<2w??eo{Jf=6ec72`5 zMQTT=0}8Wdv#2wV*X{Q}Ekj2;`vVAl2bl4C#oq8>OTdCOZU&l=7rNIMayn_8cIl)* zE(EPHQT+az5S{e<LYqBdWWFd|p41^8cxcqnGbFm(025xlG2j+xp(*H)&vd)|Fro-M z`izuBUUT7uEI}XRK&5#E=`wUum@XsG*tk9DuYHpTen0~q4Zrgpx)BQckxTxjplNsd z5vX2~sy+(o!c(xMpAo)ehHAG2eg2TAF@RPI1RH1y*7A5jKYSn1-F65j`pR2_gsee| z!U0GmRHp|33nc<gA^k<Md(e9@AQu}w-lk3P1APsJn|@vzt`GPC6>tlH3-}kY698d8 zU&!a)BJ|;r>8x`EU;{J}boB+Hp=ma{9RSgb#79SiX?lWfAd}wE<U<sB%qF1?B6AyK zUQc^4hrh}6H?7}{;_{-!^%a%E?x+p;m}%LjV<^-G>fbalvitxX0GVhHp_AA*;W`>e zZU9jo%IQrt+l1(J*5L~@dr&-5?4?4u)9}N>Iub+=xYsztOc+R{-y+R+JdedEk7``# zXe_B_H!=*GnvHhh-$u~m^9Mb3bs@A-W563?0-&g2u68$pGH8T;1z8@${kR*sjZ|?3 z)@~F%Z~DR;9<HZ0(1oGZ6ohG*eoSD435RSxCxgW9L)ioZ7_@*$hkRHOcJ$K*dI?Dw zk>RXwbZqvyuowX}%*<4XvE?-N#*Hqw?g96(n$us0Er#SUHq=t1&+ZCu`IW9?Y%p;c zpomuLwugZwf>{LdHabstQ9v?cv}QA~5c8UcVRryy3_fYZP-)!etP6>}=O5vt``jKc zW)3~|89EA86pM(mT92J%=MD$APWZd=*A6EZBts*!19lbK!XVVbyck}zhY;P{Xut(d zPm`FxSdvhSPPj3JnRHZJu%^NEiCsgY0NxR<smHAMd7N+vlHQbLpIxu1LtJ|8uk3gk zvqL0-@wY~MAPB5Pq)PXprZc>Cs{zZ1)`G<mv>xifv{dGBki2xx?{#f~1>KYt;f~Vw zZH147&v|UrU_ilL%rbNrtIO8_TQ;FI>5J%Q+!zP}Ke-IU9rD$Y8(PX78TCze2VECx zgxoT&0EiaCVnB+SNmJ{=E1r<c6*3%Nr?1WrEZmzy=9XZcGt@|SP=%a;Inh|CV6ep4 zFt2o{rSgz2TN(^|tq5PgJK$?z3YZ$*iMroRqCWuWKoX)<ulHbbpgJG{!)&Ar7#=<! zBF>4_^Vk~^B7W@skP)c2BUfAowmdu)*!(W@ft+w4{9!^ShMBVSSP$tzr^_QO_+Gdn zfHX5gM$omz2t9}6;bF88&7+JCZ=>+PC}58#Btp$V#G=Tk$}ZH#`*Mq-^S|YEx~a)T z0X2YJaorjk1VfBm1fkb~r2zr$jsOD|_Y>Q_$-a%bvoo`>tw&$86{i%qV&8;eAZ%+$ ziP`|e0eI8xHkw>!gYMQFT^L1J-bfUGr~y9)wAvd4vWy%%NEp??z_8=|1Op8XKo&G$ zcDXPJn^A5|1)c&^C`7@=a`}DCS7SX=0a`L42z)ruSc|YBPe7(n@EHzzd@k%aOk)s> z(8G3mG2rx}!BOidCEx}Mefl<|&Z)Q)ZrbdG=|vQwNzE7P9;+3GWC9!E=`hNXK{(MJ zjL3x_#R$ZRL{ec(;U&XBP!G5PJtO3J3YlbvYPOhRZ~$M35;3+uWe+u(0cVi0xcwr$ zya5kg!OaVqA!j4RkV$nQkRMz31YSER#stAj3W*zv$q0auWDXr`t%<qu2F0z?UG=&M zKGbTc$?J15?Ktfa$iH!;ShAQJAxr>LkyD~=q@>qqUbEis60vB|{aVi!d!3l-n5h2M zc=!(Kw8vK~Q|pJWUT2-lhs4Ch#l#CVdctd-cSAZ1KfPYWvEi?62y9y$ayn4H0S6|f z-&v1_LJ&h$m)#w}jW@k(ks*3RBRa%iS0gCZT?lf$hSB?dxJ3r}>=>b#oWdSBcbN2H z$%1JHKfwZuNwA}y!+1hPdxMyF==VUtDd^H)1XK(vgmU%xoek)Iaq$^<7-cFzVq6Ya zK(9g9>!z?xJvIv1HOzVtVz{vBFj%N%2Z8~?LXQ|AVk(6F0$&G+wSZJ}2T}zE81x72 z$Pj!1!-w3^y@<phc7p?v7=-<h1NCqT*a&Yz3)=By0V(W@K1FE?V3FTArUBm;@QsT> z26Sma|G|1Oy^$4&aB>HzB@_Z~O0YKSJNz54rkdm#oLxh}1A*@n5(Tkcv1t7b*b^u} zy~ZIf5c0OcZ#Ib0VR|=_hY(Sd&<;9@nhk(P-jFfS%V>J9p?nLfPN_K9E$D5OE~5sJ zRc<5vW-agy1)X*9xRBHvs(l@<(AQ)95`zeZ@XG?oV%=P~1sUk^1;d*$9U9E007@qO z)(d9M+qg<DNQ))uk%7Xiz!bxfFbD(yw_edxz*m&I8-vSmff(*QGyt114Gv_hj0XcI z&?rF%9jY@`Fw|ch)Z`&jg7ek1zBcTlCeVjvk6T>xPMy9Q<4>;vTeO9Hi8~Kb00@xB zsDg@m!1+d?hEQBH;Bva1-p#%`yVDD!K@cA!47uDGbeIL9W*YSbf=Hbv#)@|l#Jn`c z_`%E7Lt)V66sdtn=5Zhz@z&ub)7XZlpmoe|BjiPB&_@Iwx*n9#`Otf~8At$ZagnjO zTh2zLfcW>63KBDcY;KHnggO9kvey~jCNu|90N^0{eFVG00T+{RG`hn+*Jgup;x-z_ zW+Ap&S1UZ>ZS)ZmbZma687lr>o+5^%^Y~`SRwe}x$c>$WRG|-$8NVb*x1c8?Qg{^{ zir+^l3Ktc7Tl!c}Hu@N-6&x^ly4vU>I)sqKuZBm(NI*l94L3dDYE%aKOSInP(l>14 znE+3(BR3WqJ{TPk#{-m#$|QbicM-=z0R;%<;X~3tX+`2}o-pAya3u!YW;hHx)*o~O zBDl-r^&*6ExKIQ>k9c#YQxdT$F>;z2173r>2Dssmh~P)^0(<{fVjdXE1W*m13l0;Z zK+hp`vnRCL*jUfB30D)#afL$$1ax6aqPUr337nwHo6!GIlR8beTe==})`K{QOs7{k z37_;`mx~OjSUX;h3+6;BU}XzygA%i5^>*kcbAXvd=m5^$vN`B^$!$8fneK3XU9+g0 z?fww5#N);lP@%o;OdF2Y(=~KBNZ>|vFyXqeu%;L;5;Mdf6o(8^ft1_orq}prC=0NP zKPGV{sEZ!Oy#rA|K=d<x3~k+j8xQL=A?0ep65dug3}awuf)Y#)2&JRnbba;P;K2Qg zQ`9=G2=>rcIK4<sfB+P{fw0&%yil1gH&I|L8pip1r!S}zaRd-++*qwB!VuyRpBmj4 zhO>~|oA6WYTQQ2na6vU7s8HAc9mc*j^c!9dgF=rJm%he{gsj1>r%}Hfa}HgP(~mbR zT;_AucpYAUz3wBh#*`3tV2Ym*?j#x}Uak}M#)yzKJ_5nGK>Cgl1`ie*Q9=T@hKt~- z;e@767}9iYLCOaoLzn7K%tkt(`|7to2AhZo5G5xQDlQ`y7simM(b?z=y|WQ7j5!Oq zH;Wc0?2KWC&LxzDS!wti>ri^4MKH$Qq8r1aJ_5SaP6O~5pLfDQmND9yKHMlqVc#b1 zqA%RI`SIs5d7&LR!k0o@(LQtU2I_DYG8GJ?3*a=5(~0OMSizrs_Kkjqy>6$0yC%Sa znUPc!H@5129epb*6ZJxj#}C_}L(z~TUm+iH1hQjOhJ3X(5`A{nArepzroCnzO2pl0 zhiOC$Z+^pVm*6$w6zm@y6G0x3!yocEA+S#C!A4}Mm(T@b3TLYEN%#e9hx`P}P3LCJ z2ESQHKu6>Zbp$rMkk?Q`Vi?j3Ka?ka=M96vx($yv7zCwXc!tqC1EDuw3N@khb%WFf zyj>I@Ac4wQLwMtq7HQ^iV%x&a!C<X8gcxSRmjQpkUW2M+HbdJQ>tAoKb9rhcIDnuu zYoVCEo?wwL027LLPn}Mv=6Qpzn?bzVK-lMdXMN~ZK<aON9Ea5@dKVgo0kqphrNJm$ z9AOD?;97wJsuZ<_VuIO$Na*#4n(AMHDulru4nkfA;wp$)Ox(#Aa@V<8cEDbcaHd)F z4$#HW5d;#wG#ca@{Cl?%7B}pENa@|`Bmxp-HW@S&#=QvI{U~xB`w>kB^)bH1tfjmk z7vJvKYTCD{;pwKsNemP~IXCm|0>bfjOg>j*GXX1%I>Jrxyd5`$l^wknC0vKu?!_^I zi(QBWY$2pQ3XXb1{$_YsL}kF(Mq6TYn}G)O710d3MeG!ABp&M))6mnnNt96&f|4}^ z|JnzGtbZ^kDtt_I#*4)%lH92EHy|irMZ>?%?sZE01h*tig;V3B*^s}<Wz@eS)^8X# zXp(8dnM4Q?OmMxq8Aa)JheEZGn^ha!7ZwNTyK@~OPAkGkL=raK@H+_jHi*HxhG)c? z2szjJ>O6R)*ws#W!OeP*?scyB1)L7(FJ5;Llg8uqxa$4p)*43c3%Z>s4~fK!s5a}+ z=U&7^AhdB^Xp5{B)u4}2mCTn9-+|~bhB$iKWB&_0^_1VY6+Nk=^l{l;ZbuD(kvKPw zs@PISO~~Ge??(S%0FjigZS)s;=QC<*!vwW-XCsn<?n3||1&<)Vd`*ow5aCy9%{uSD zt=?{h3Xm9f^vHHoZ@{|Ru&G&0O^4G7E9+sW+u;BbPIoOX556>N3l)d=?Z-zFvEkES zv7__pl8#X+fqZ|k&KGoeWNCrWM1$dMGK}WRCwx0lt9D?H<$wf4)X8*$4rFkBgVFql zX9%q7HE+D*3p9nDm<e>8$<`ZKZDC=e-uniDInlDf3Q-N5ak$V~o(*VGpSQ93#nr;i zhJ7m>?{Q)IAxne=_N`vK{yaHWF;hgrsh(IZ!6;xu2`6g<61sn*HmuuS8(w=yY}O#m zfGH=+9HnD4zq!qC{N^o6Fqr|@yJoEjYlJEcNdz3ba_bwOHE%FA@DAFAfqDW>UJoD) z`CV%T(1DQi_qhIymU%#7Y-@z|S<pgxf-uI?1U&0K8(+tYV&qL?rz4wDkfPvGF`Kdf zK@wNuju5KCZG(|<WFdS2EgWLi0Pi5g)C8Jecx!vmC-FUc3EN3P&KKT_c`H<BvChqu zL0_V^gt45)c60{8zXohD;%o2$QVJ`QPW-9fH0p?vA<wYDFcTOI5e7`w5c4X|FA779 zP*JQ92mR~}OMDS43Uw<gA3d#@#B>uV1IHrOArUmED|#LNEMr1sz#P~#UMzVS(*A~n zI6KC@rAUeE5h{?OqiAaF)Igntv`~!RAo^7Xit7hcgq$uSQ^*Wxvkg-n6M@!X6_4&_ zVFT*~Gu(+2%jzaU=teWN$?oTx0ig~-tmg%~2kwJTzq__+hZy!osJYJWCq{*n$~t77 z;Kqwu#@oaMWay^97C9a8ZF|wVmB}#7S|Zb7&l(2Q2z^n#7<f7!53Z0Kr;j+Udt(r! ztCehI847}Mpx3vVCVry?&qfS&5GWEq)bK?8^ED09d_B?@;R5V=fIIQxCf(N@wqvM5 zOsbLP1DPN)g$atGgv=%f<P6qsK%|KkDQ+}AB|#-bB`#PEvkOkdAVb-#B@oVRh{@ut zL4F~#MMM2>-HVtD5Sj2OOi8E`K?9c<+pr_S3mX7r?okrh7nrWdH6r3JWDY)>zkx}2 zZk5G0J9I`?5D~$-r{?uoQiMz3b-#C87>W~75zmZyShMw2+*YAW!!w~K58{XL4=f7{ zv93^8XS%oH$A}(e+OWMO9vZ4`+=z220T2nW5i6J0WII5eC!ntjiMa>p@$h{$cGQ*Y z2{HPG4_J{9i<YH8Az8o(6Me(3#CazYPy;Ghs(@)?6%)1syjb7ZI?w~5fP`du8T2wo z^i)(HKqp8jtGd8Tb`h*%VjMWdLhXjN2r^>Oh#KNS9=ugwy=WX5*)%q@;>XG>wjkl| zAbvA&#vw-%yn~B{oxR~52lx+pz4k!uR$#Q_>BsTLFdGeLm=HJMfVo9F5EjxKoAhni z2X3<tc^ulXp1_;aXsBy6cf9;8Ll-V1#6h&yz8+p{a=U^n-wm4e@NOu?nz<~5i`j|q z=XJpCz)N&DN&o|+F~}k+F3u*qQO8ydJaW_nx|!K%!g~-;ANqvWu30D3Aja#vFN6WY z1{KMD<B#~<4X?@4531gH=Xt0B7(&1QW%#xAtn;9dk-xBY9X<=a!7hTP098T>#-@<I z9^M8a6oITkL&esaZNe)dXAPKu!Ev#1(x{h(b|3zt&tu2Neba$?>J9BM*Sa^brsgDI z04d-A?8K0BbA$7@?>Sk&C(JMF;oyU45#}8{ipFUIMo1K-BiyQjjz$wozzEcdKEmO` z(m{a9q7AXg5LPuS81O7=w1Ma=$ngsWMQWM<jpu|h;|VsR1R4Xudf%p?w+6Fo%QHv} zHoWMj{b@%t93#2epTM%%_v}E*T#peSbOJn?V>8qsLQ~k@&rTJBE!e1vP0cqO?CT6> z+iw!z3yKeiHR~7E#|#Vcq_=RKa6PMJuMzxUDVXwDG)-nL;-JBU@l?wQ{DJij+@0U! zYe^J=;1q6+m@e=hf(l%S2=Y1YI2LTL5#`(%Zg6=U*l7XAMRb|<F4Vtc6Z|O=ERR|m z#bcKJ9bQZx;|(+nFDk=}eX<F8?REz2h(H~LtZQId$hE`cb<|<iI5tVp6dsWkIRXg5 z9krXmX-(r6CJe@hfr2=>`r1a35Pr8q7BO_Z3-K&SAv8!sK2!WX@qY9Trm=m)8c2b$ z<fvn{e3JwUJ@}ZiX9k7*%4SSyF~ndM{bgedm?75PhzK;@c05e>#t5qdPccn!87Sj* z+wBgBL64ehbl-MR$}R<V3E+xTocW?RhzsTeN3bExDuj~&uk#HU9*Z7{K!^O>8Y$-W z63z2Md6<HzFOr222;u5FD#V}k$T|cpBI`f0E{uOmXJwOBGpYlQ3^Rue)B&P{;8y74 zmgNYylU)w<6=;Z~O?(-YdOVJ81QP#<rw2ZK&h=~s0}Ln_;#SQ*cfccVGZIn+DtMq# z;+P&Ml97!LxXUO`CkDE#*I`tk4)q3!+%a(k18~9!DFRBOqJCM0Au`5j!=aj5W`+t0 z#`;W`(+BjJNklm;6mDv$4SQwb1z(OW1ne}D^+<{J;C9k$R!0$(9v7QTWC4ol0m(>S zqEp!Oo8AuV*fQueim=VVR~Oy_6&de~b#;vhUwdfn%S|lk!wuMpRNGjG3_!&|9QZdB z@@#8hp57tWTT>TidzA+S5c8%PYzM(R!3zmw*We3cyi4e);g#2RY^w_pk+b_ak%fu( zJ09OG@dPYYFc|Xxy3UVNO@Pa(vlsyx>4ccdB1cgNMDS~HDKWP2vzWJfHU~-MM}iG- zFCumWn>eTtxq!g*vr|eue+RpELK|0a(d%ngGZ_vMJg5`H845IS!Zs!!)v-FVgRv9* zz=A`c5$iGivM$ATI<txBm1%GA*NG|3E+qsFox)>as}^m`N(HekBh=7{7DEvsS43)n zb#a+dK(0DARvC@k5W=hhv;9ZNjcFOi^nvSegxJ1-e#QOYp}&Z(BQjFQN+O~I>q3?o zSTK>emB=$F4Xh<p42r~PhSj)$pji8$2xUUl4ATySgxMgb5MmwAzOhMy8!A5`2Kc3( z6?Fh$Z_;&#1gMGh;(G;}L<G{F$R)$vPIz2aIq6Gt4Qn%mO1HA9lcfRO!GeCsM;r^4 z=xp$=b9xz0&|b?*5rAVQJ?Mpu=35&ek=OC=<LpIaZba%jWCM*uuaUKF;He@Lp^%-X z32ZWx=r%FfVQkaaP`90EIq{Exr|8wU)?!J%^u!JyW~_uFy#62)Kv-|f@0*<1H^MU5 zwL%pb6QNG5c*7Pv5nsbwTQEnQ^}5&I#OhqojV0?eoNRWH1z^M)L0NM{4Jr+G6hX*J zGhtZD*kuzP0*b8``d`=h*;t5PB6LxMOMqzv#4slPjk3qUaIhT`hek9J+<;bgI)m?# zhe^P`!h@`FHaXt`T_WwU<-sWkMI3CBdD;FH>kd9v%;267>KtvMBG+D>*bvpinSM{8 zfia=Q8$EV(7RHV<$U2r4-1B-Kvp0b##22f-REy?mrXS7*S!yGk?YHY87h7l6ipA(= zmqQpEP!@Av{r~Nqd2k%{mB(8n%T~-40t-ntN$pY_Fkp^wggCH8j>@KXsf2{W#25oh zrLq;WOS0I65H{Ha0=8wFV{Kys1ammpSlA$0hi&8woip}GbM{<4({t&vC0U1cOVhod z*JB)VkRqGSAG`HKNS>MgP4};V$M?PWeXrlsvGsyZr(<biZ6Q!_6^MT}WgPH%54f>o zFq8Pm)C0&0>AvX;5GNusitfT;bAIy;z#jC3=U^5X9~oDJ?!(cGkSZ$Q$@qT8he;L% zH=T=N9A_fYoW6r$0_KE|f>~s>ih7kY-Z47%Fc_#B$U;nc;&B6jdm`lxvn)JVGtmfO z)$U8+5JE7<;S|^s%sP8iwiXzKxy0)Bf);GfEHOgq9A498dL3B8szj5I93dP*93(&+ z-xG5MtxZtS-JNQ~yu&<$@r09<4eiKG`b0~XgBV~&?r?ph1SQ53c|;##h<1=N063v2 z67(cM5#kpaFHAXCF*7x^5=28722weKI^mG%BCZc+mZ3<YFB}AHAQ_~+<9wkH#7}Um zK}QT{I{Z3t4t@n-09jS6e&h*49zqJHfWT`$h>4dO<1!q_Xa%NqbU^MF*$b@1u{T&$ zoo=7*Kn4?;Lh+HP6~rf`8$*SO%Qi5gk#u%X*mr<=VN15RABvg2V2tr+6J>JTme1Ki z2x+)Az=ws0;vlX#%pV{RkYpwZzXcIxkqEZ{C}0xjkXKw5vN4E@gl~wqMznt%#n_(s z-XU555HndvcrW;nj{wzSZ<tG?b8w63PAPo5(O53($q+f@Px!*#z0qVIGlp))jYBbi zC;AR|&a`nU=G{!S`+XR|e%YiU^Z<OAK|*Oz^K{t+9UW%41Dr8H6KDnWRl0!^fe9V) zM_YqLt~sX?ImRhj(*$S>y(Cn#QKPqX5S~LniTc1S!SsOqB488`9}GK7lD*DaVo||* z0rqH^hq_rHMwo-X4z%S)C^4v!NDDU)3gu(5ZbXW(9!CiHBgDB4z87;L!8QVSaFRj| z67ms11tk<s^gM7>On+!B4`ESIi6{nK2?+=KO1PKE5%~r6VsW=bDH@q(c7r%f_=C)Y zc1I24WA5?^#svb^Xbv&wOb7BEfk7w|gUl;oKvH4%KEH6hXjMpjW-%U%cn}7RE@l)% zP0XLf^Km+MwEz`RFUu6MpyTq-XFNz!RBKaW(phY1E1VXeNie%nPXyyBpPP_mJtQ$p z!i}Z?8L>uTBhVpo`ax0cP?LR8;x&b|eg!oOt0wLDrHMW8iNKDsR8rY+96;p~NGJFj zg2MbhFwBYS1~74k5edazNz_eRZ^Yp$vfqd{wS&nbq4b=u1D!tOH(0kA0c_^X;V?ky zPe+KE0NIR0YtYxs_TxT9(6XtZw9<JDvH;l2$YYeT^W%ihi2lN|jOlDCY0f=kTp-+0 zG8m$00-Z!ez0ur}mQ@{*um(B;JBJs;o24xS>l1~Y_PK5VpDpyf*T8s66168W48*Xq z)tqq$M^SG?mnP0G?4@U-lX5A--~nRzT-j7i6G4Cu1r^zk+`wdjJNAd^t-zuPN45~E zRu{}SaWAYmV34iEz(R>6O<yHLmO$k}>uO}K7%yfW%@_b@S&N4aUj`-|0}Fg%LL=2B z2soXN0yzv3VjdSEo$ZQxa>N;#dCy^b$R<aw60Xk{fSzD%onR#-Zz95<EKx033ZSo8 z$jk{`h(J|9)NYjHB#0$&2`KXDf}RRsk2s4M`DPr3)sJUcM@AzT$086bk+qTxdLbzh z6bu@j1Jj_EWLm}bl=2hW$OaMS5EEPQRn!}%5!?qr(Bji6kDvG;z9-SK5~!r(&0wu3 zpj-10%D4z|yc6Y1$LOF~_i)*CGe|&BoX}Sk8AJ-h!TpHY2D&r)Oad4PD+daq2C{CT zmlCr57y}eTRvHWo0y+33rUM|x?Q^%GR8UU?j!B~dRX&A&AsbQxSeOl*Y5_N{OOe-X zdbA4cfmlx5->6SXq9Qmg{~^Z-CNs=~N5nymW(eI2TCiz=M5GJUG@j5nBZX<eNCIrI zno#_m=-b#;zzEAjG+9DXWn9?=DAg$mUZbxP63^hX+#K=CKjIo@d!q9pQsYG2<6Y%@ zqBsWMGK0|7Om><b#^}g8fuLmI3DRRf5zz*D1_#;Y#7c@7XHn2IKVf?bRC0Dm253Mb z3bisFrg^xXv$0CWP9TUcjy7jxLJc56%p`U%8|h#uSUBusIQ1%jt9U1b1;a^sgpo!H zhj8eobNUgp-JeZ}LmewM!4wI}D(qn@-T{Eh)`Rb4B2Da5;s%M_=Ts~nd7=btkpTzH zMa-M1<BTac1|AR{f?dngFd#`DH&Gntu3$%A@1W;svm%Ju74h_;AjV!as2hX`aY~84 z;us7)JZ?OUQqTw)CucNbAp%ZuO+)x_6pLPBH!+b>PcXCrOr|)^k^wD@u*W>4!<aMG z7{6W~hH!3%OJ(xn5OC~!mRuOXX8x027<}fG=o#E&oEzy5UK8{H)qzRLgfJrl3&ca= zMic`S6FQmnf=BE&hXkhs1ROco5g?|&k;?#5UN}g?afnN1uOT_H{1NgAwgL-?$W{a| z+cTVDB_ovBM(8Ds=D`La4W$xQRo0oX`S5{>gg<szjAE`TFej8KiVV*MAY5rA9YMUY z*+MwA0Z}ts?S^qOpbUwM#)RU&fF+qVc|r?ekLwq;-|$JORGc|L)CgyLq)m1tvx?K0 zc05pkZNSXH_lV*wLru6Kdt7Le6!G%#9%!ZXUDU1w8;9FO%V*+v7AuJI#aXdU;E@p< z^pZyyK;ney*NN{%E5L&!yBb57?H&{YgAETQ2Wl|z*qTlxd9sVGM(4o-{_?N{&;N+p z&O3SHjxKPF_zm1I*%TZQ3lsV~1hvAL3E<0;c6ueNn5k_%0xFBMU+z^TJ`EY6tnSY< z^D^<WV%VVIOEiXi8lXjtFaX>~jOpj9e5;M#6K00TUqTJJn?x)~xFo(zMu5%|rz4$g ztYeKqX{Ynx12}6MRW0UWNKv*bCuWU`CeOH}Bi@|5RSZh>JC-JZfXK;YJ%=Q^3Ymyw zmLbO2NE7mzOt$T&Px&@a7C$Iz2$ZN9Xa%L&*U;PaR%r5g><H*efHtB6YMw{la*f_h zvH>*=A3VDY?@OL1<B++g*%ctH92&G;s3IbvJ;=o*b`^7#6Kg&gg;C^Q;Zrb;L?4Kz z{J0YcMu?!Xat}-+L&M^X$b!T@jPM0_<FQ?k-5{bFLU<F{wg;)i6I*`K#~6FoACs>$ ziKue%kcTKN))9UlG;bCU3Pv8{1#E5I&4Uwqh_BI}3uV*Xh2xxIGMGwI)Uq2<?IQ4m zP#I$0L&qD@J>mdI+l~@1Nef-nCfwE?iS5i*#2XTppA!;7$Mojf<9P|*hp1s%*{b3| zh1QiZV(;SmOqos4MC@!-R_@y2a9K=@J$ek5hwQa<jJv?M4%<n%cP0ntCo`Q5Nq{l9 z$CF&hhj$q0bg)T8C{IdYmVzJbE0iC)!#X3X28b4oEgb@_iT&Yz_`elZl1ah>;?%%! zqJy3@NpOM&j2ROM(q^OWQI--WC6Q7MKEN>@!YTpKU}O*_3<*>|h9lOqL`UG!%Oh!p z0AL%TAc*dbb_?|5J3)jcGVLCWd*DGZK#T_#G#Vx{Yaa~>UrHca*rhT-^4N#WFX)uX zrvfMqtProKXoBanLc$SDB14)o^X`LmL7tyQV$fTZIY(XL<U(jC;5CE`jKv9&7pnz3 z3A-A2%eD%ejJeChJzS1ehIvZ_E?3V%1VstdL?fq@L>R~@0#K}JQB;gf7vRhsp;mhd z6_nc)M;uZ8C@YSKgU3{v2HappW7)uS4vt}k=j$REMWTVw*JNlvODon)C+ZI50ZdxN z!t6IA*2-*PL8A_djLP%u9m5jExHQr5nSVU43Go}lfCwWlY!A@<wu~M9V`U(ou$2TE zWf;X74P}E_gN9Ey0w|8<g@!C3ufxXh9_(SuB-+`sDYKQe$1F0RY$;$=NEie<Geis% zz{CF$b9Z|db(V?X3xt(R3syBUN$!m>7$J#q;xbS<C?Jlf_P0Vn<4Q$J=z5Z8t0G~Z zK|un@b6QwfYzejn=2)KLmgz(nWb^2vDbl+p;4;sGj>PjkwkMZkjM<UwWQi&yFr~9W zLWJNE#j|I!R?J){5#nf6Y0Uq|Ha+3x3!T^>x-ac!7<qgJy8_0ES;ij@55q}Co56TW z5vYk+M}J}&GY*0Fs2GIemVr0{pM<9l(-H2U+Y<_aPhpDL$n0{oMF1ErBO0PJNGc5R zY!E^TWh{}*dyRZJ6HPP#zy|azdt17|wX^bAj|5@_ab3fk`g!Ul?<V}t2>M`=g=E2r zjQnC3!`%^T*V%FyrvQr@(+eerJ|eByWU(X6oyhWB!Y{;swl!*W60e3*jjWCB2WJCB zj-Y-@XmDc3+o?>1XSA^e*{4Y(EK>;RF_H$RCr`z&dQgJQ&dO$@r^LDfDMdmxdYFGv zEdUA5gcxV+5e{x_AcE`|zlb<B+3BnhmJmX-Ar#x%jHj1~X9+Im>lyTl5WX6Mg%E%e zJ;@>v1)iQj$UFW9JQysLoR25>2zp_AqHGIW!HK1_oF1VGrg<c6i*<xcJ`(ScNnwdc zJxNa(+0R<Sm6s$Rt4a@m<P_yx7!;KrfE@y4vy@eO0O2Q9dH|IkK+GAH9spKQr3XMU zLfup80Z=)x7*%=zF$7e40LTKB9st4~gG8kV!1Pe*0WiW;dH{)DhJ{t>0U$!evBjcL z=>ecQRC)k$b;AOw^Z+V7fJzSlS*g+ksPq6TJ%CCNpwa`V^Z?>SROta!dH|IkK>Wl6 z;oy2!=>b%F0C~cJP-2xHfanL69zX&~iIX9!M5PB%=>b%F0F@p<r3a88WtAR4r3X;y z0aSVbl^#H)2T<t&<mnof9zdlBQ0W0wdH|IkK&1yz=>b%F0F@p<r3X;y0aSVbl^#H) z2T<t&RC)lF9zdlBQ0W0A<1pErNH0UuhhR3J?<9j2S&+$As?q~U-hZmakdvLvIx0Ot z7a7udx=W=8kg`=OJ%CCNKt5$M)~NIVk_Anr2XK-Ns`LOI`$){C(gU<e5-^n>fCO<W zJpic*NffTq1CX&zr3WB0ok|aol)4ToJplPQrQQxTMpSx$JchPP4-k-Kuck^5pwa`V z^Z;aeR_Os$dH|IkK&1yz=>b%F0IbK9N)MpY1E}->ajBz6{S&DIK?$!&G)oZ!s&rAd zAf4{4+22KB2MkJz4N%X90wU>T{s=`jcy5}{sPN)cT}g*RLCQrMUDSL`rYH|YMJuTW zPwGNSyi#b(+)AlX>dWVG_)#89rvM^}_oeVqhH42y`BTb3ic3&@S>95d#H;5MP+inv zqM`w%6Cz=f`Af+wO2$yLMhXH+sTImmh`%}JlUf$?I5!2rD4Ic8i%uzo9c&0oU30y` zDcvTud7uj9AxFw#QaYGIMAY<>3Pc%-`>FH*QEJb@E~@kZZ4|6m=>eoHl%RuDmJj7( z?Nr-|nm&pVWm{V)sH7VK>dAN4S5aU^b{RF7Qih+B=wvdEMlwHc%9wukE>)ELRL+pH zmsG~3RC1Wz?(nx!sq>^~f}u>15+ym)9W;D-;zhV(G6|(84<kzrD<*^DIoZZT%~F_# zFBwfW`BX01O6eTaY}k^g;PYOJ8%hlk<DFe;U?P*szO*U7w<SpF8LC85>nfV?B`C#} zrA`GktSS0L%@KCLI~!|}`hsNQrpAnvMs!l|Qoe_BO<Br5QND>dPn8}(r3X;y0aSW` zWY&E^r3X;y0aSVbl^#H)2T<t&RC<7RzmLj%eleb@ib*BcD79Fn<TiC_&2&eH8SbE{ zEJX`5&<Yd{m-?bc4q71MkG2Mr5o!if$q>DpVmMUYi|O%5NGgs>J-!;frGuJ~kOE1n z&KlH5rwVO45=~M5nX<4_05mIAO{s~U!4#lmqS<k%8%u;zf7H0_pm1#?g)*su9BIiC zi%!kUSgafSL0FF?*;r85siR8`ODPZ@;5rx=bfTS_+kpfgqgXsjS16H4iOE<juT!>` zqQz9ilq*pUI)R<Sh3P&$ltR9GEbf*<twyFfo|DiusbESmMQC>j20rF4pI}^!NYZEy zQ7{w!gi5s-H9l^gVwKoDFd(V0d!L^&o77N@O8IiqSH>b9YLYU#m{AOMoVtcF3hYXe zXo?t83Xv~Lz2R_7r~Yd`<Du3hMOMua9fc^7O3eI;1%ug*dLkH4`P^R0c!sFM$k=iy z=8FY6PH=iKXyo*RRDI{7312iEq@H=!e1*EmR0B@?DdCt)_^{xT(EugFvtjDo%OzBL z0F@p<r3X;y0aSVbl^#H)2T<t&RC)lF9zdlBQ0W0wdH|IkK&1!xW9b33zu12zn#=h) zQ#(gHU;8*e#lL51f32O(yK|j?KgQn+w2x^Y)jpwJq+P=A71{#+y^x>3<L3hBlZD!+ zwS~O8kiVDm&ElCq==uMKvww<fd|JDV-^+jR{Bq6(&anl~`9Jk1p8o>vJg)Fb&b@#> zUanpIJN;k4C-T`v{K&O_`~0VA^R?6XIh}v!YiIs}pR>7R`TQ(?&*1m;_x(AKbAO7X z&d3C8`5Cpftz)mvdF8ohp5H&jJ6B~-e_>!|uxua|c<uT2VLmFY>=_uaj+YD$%?_6J zrFK5Q-aEp_=koFK<AXzkg9H78Lqo$yYo5z*IC6p`r&acFU~qV7XrO<nFkF&&)p|*D zk8-5UIWlAo+k-R1bJD)%H@C{ib1Qp~4-F5G6o%)IoERAy9vL3UbZn6$b1IK=pfIAH zutx0@b2&OZoZBWxT-%Qhk1V!_OZv9U+tTgFhDWRuw$rkFY;^PlO^-Q;TpSu(EXPXv zoew@FZBLAjjh+}QjL)Mbt&2xo+xtc)7rQ3M#|opalb@CG8I7&+l8H%cLL0ZnN>4R^ z<Jj=%VtZUZctd(I@AcxD$7d(X$0sJn=tJM@a^S-+bPpVti;j;^jE{|ujSX4-CEYKK z+LQK~R&DK;+aFoEa@FdJiZyH3T5Ifz@>P#NzVgxAU)t0>VNcm}J&Uft@hdldbMhAJ z*6CZyZu;ssuKrxhls#>iy?*8TOeQs%m`zS4%92Ls#w&k4ZO_={d%w_hJe!RN{KEm; zZwKbaLcPb^zEnSB&)W0)7aM(VRaMo@*3PY~uist2dv~GUt}E1**VOKO^Jwa}KC56C z>@sV0Yj<PAOqE@2@0wFnTU%FW)w*hS?Xs#rR8?J7-O$w4w$f=iC-ENx!ItSJyV-7a zwYlAv$9CIouGZ$}nWnOq;J{DfmStP^yu$OTu4pJ6wnFp6x*mxVkOdoPB|aRFMI(AR zwDaCte<;$GdafYNOHZsH>7B~V&E|5QUEMviy=V7ycXj4++04Dm?~P_MJtI#~Njq2I zz|d58c~9@rV}1Pt#|N#U(+7_a^!FV*+S?PjcW2J(b`8}TPRl)^{*x{H`&qZvaQV>S z@&0~kIo<8*KiufF+LG#=%AYIO>@A+rIa{w>eLC;z)Zdg=B`?P&Q|FrLOg7)y-P3dQ z*wLPzuFiZGx^^m6;;(etJl{U4pUZv1Vy4m%o*YdjjYKpWnbJ#IwmNM#zBB2y+sit9 zfnZpljm*=-!GN!$y?x4CvhNkA#k#%I@0{Q4_J(5Vu46-^lQV^xsnManPBRwrx~JbM zsri*OD|@`EzOKH`s-M5;x@)ig%$1j4cIhP-TMIsN@g)l{yW+~LuD<rOdzftgf8!bF ztUuj0Q~B}Fe~z|S727VjXu-voT)Ob`E3dldn(G#Aw<=4wSHAp|)Apg~W;V~e{)TUU z|Ni@zFE6an9w@9RET41#4{lzxXl8TCe^p4M(iLmhZ?M+S-LU@4-&_C8vxPPGT5a9z z+VV9O6`MAE_eMEZx?%lezi>|YqX(x~pZ4>L+C6*TZaA?2z=1>7!SVz98{XdgcKu_& zm|k7-;LoI)>#eUYnYpv<p~_%g-R{C3Yp=D(t}ENKyVk$sftfp9OK<+QWuG@OHr&7E zySFd7?bchr`>XuX{{DgHme$s`saCt?%>J&I?z#2W+m_t^?e)h-#wN~@w!OJjJnV1Z z+|qUQ*s;F8eyeY$ztDH)v7_P5?f!7w%=Zq^biyt@T-oXwIc#~#4tqSURo)2)EQ^r& ze;qXM`@o=i-v<ZH`~Ec0yzkEj&AR&6?)b&()fH>ku3PuS6SM2e*Q{E#`msA+eXdm? zv+VHS-}uFUym@x<#BH;S%Wl5umg{b46U3ZXdCfB*W+FZfX4(lYKI`D-v)61B+??0& zl~xBg3;rPoGzUHZu*U(-fu*UFpb1pgYe1$29u^_fTv~+8`PN!@cjLaQ>guX03)IwV ztXhp${JTr5wyNe;SAm+IiXv(nkDNlyk~a6Or_9~fdI~ciNu0#Y%_f)`3Kv4QURH!m z%lJqleiAb4A8ioGG+#UknVa4RG9RsYG%k?2u?U%=LqO(7PeJAoBD@H4y*>J)dmPBz zopQEdgAQccJ#z(IPeJBD-?82v2Qs}aPOEKcAhW!)tE&i^*70%y;NG6DB4kFYon5~r zehM<Xx`FFn8k~a6KoM47?D$>CGzBsd5I|;Y5mujVd|$}i|C)29ryCr|Y$w33^S2-~ z9%>iJtbNJpcEv96@(fTD$h_vNE3a7SK<0d4@UqLV_{`PUUblCqzGTO9&M6<+K2!Oz z&oBDywby{H3m0B|@q&vkavEMK4Hp#zF1KuOn*QX4na!mFmxbkLuXtd^iXY0K<;zzr zzyAl{SoAp%bK^Sa@(-@tP&fsc)@rNb48U^Dnu^t{R&CmN?~UuN4fcB1hLtOwlRo^= z^y>LPU*kaL{{06J%pRQg9>9F)QRj@+|8&R9-DN+n4A#`LNbTLH?E&&@YwPQF31r^w zT6POU$AQe({&m?MOP4J9UJ)`Io0^+jrkd?0fy{3&S+ewwW&g7Ae*l@Ux3pRAg2(0d zI7)!k#+q(xdGr4jc*Z_3c*Z_Bc*g!T@QnT0;JJJE*1J}&S+jQC6Hh+%^wZW;_LJH= zYt5WhcWrs0&CxiIeDO<P`Pwbt8oYh(w{E$4@%3MDJL=|+MVn5ko3>Hf`O8JG3v8aY z@1`Pb`U8IdNTA#w5PkE=O>Y;W^G@>=bXu&+_iCHwo&6`Z%_luwjr(RD+;pLBT6MOg zZ5F`IGC|EJil~`<>=bIgt831A4{kngoW#vneuJBHi@1rVX~)kJRZ|bO>~sf1(XR9> zMcf>HZlrfQV`uGL>3ej|Ji6x2T|04A_l*3q2%O=jKMb5`kjb6iPSG{rHl3}wKT^~+ zMTh(iaQ43oob7E+t2h2Qa7JsKy}vDS3OKt(D+M^aPXTAJ%4zemuLzuRbWNg)PwJZS zqOR%Q;k0?a>3xCo;5MhlhLgbgd%9*k=m6*LlPc-1>H7KTj)H}kExhCsYr*`BFBRSK zUC?~<1?O~+320tlL{~>4b(GA7CmSxBsVsS|sEz*YS2LT-ufO3N-~V?}F|8G62x0=5 z%fZZ|mbs~@ivIX13(%bNB}d0xZC7Y(W-HEGy=tZCm>bqRKdV<e*Z%3l=$MZbb<F)m z9n(HA_cuD`!;eWbSIyU#&D>M=@Eb+Qw07I|<?kZq4`=Ri-F4gRClPb&eRtorZ0XW} zd(lxce+x0cvvldQyY9Ys(_aEHwE#b(nl>|HmmJ?VBrk`CY;F1Q$yX)T10&AMLAzx3 z!4uBQVY^^yt45vI1GYAB>ea}oHm;$UOb^(u>0P_VdFR^oopIicf9HSq-2~^Hc%O5Q zaBM`5O=@#WzUJ9HIbfGgz8t(^LYvacuJat9p0EZmKPP4e4qrc|O>3@YowHrGYqs;B zr?nZ)_4V#T-gXswzB!}KYOeF*g{)m#h<~)CpcOP%$;*>z+co*B^RDEY?v(B7{%nb* zS(>Z#^=aNsZ!48|CFf)eyCgl|dHwZ4UJu;hy#CK|UZ1$vdA)6l*Aq|w-s|m?d_G?M zeES5i$3FP$t?z07>-W5Vc1+Imq+H9jcwl5^RGaOywdomHh@pEd?ey~bXP$HSi#v9{ zRbAaN-DjUZ-Bexu*3KQT-v3u;%rAG2p8v@UF1+-Lt8_V9(674U(hL9g6X$<~qZ3-m RPsfkiB~w3|a8^@5`)|Mpx1|68 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/xls.png b/theme/js/dataTable/images/xls.png new file mode 100755 index 0000000000000000000000000000000000000000..5aaf40d0e3ebe984398903d89d11cf9bc21385c0 GIT binary patch literal 1641 zcmb7^dpy&77{`BDv)GzzO&$7?vb|XDW#u*@w{hBBMyY<7SuS&#>*Tr#-4H5`LnI;B zmXcUmvE)c3Md*H+qC*m8Xa4HnbDr1hd3~Sf`~5uc*XQ;9<H`BceJ@I3qXGZ`C}$^o zvh>`zng}=m$V`xusnP~UCz6N&FfuyqK{b)~8Y~AYi^2?M#Y53FfEdIKpn=Ze5S>P* zK|zU8BATUCWU(qDx_Np+bif8AK|wT-8397lDo`8ckPsLa8^egBfx*mZkP;5XgfJrL z(l<Jk#E772yXEDhr3~X$#vW#5Vl;yu!UC><zXJuD7#R`3fJD$EOv;G{J*8%XnDH^8 zj0HaZf^>Kf!;{Lgr^N(DGa^|GW`y(#0A?z?{;wAct7G4#lRH*%zrC!&?*2zZ`n49F z(qH`OY)|w|cpmUmBC(M(IV`I@_pX0g@=ffMjdZ%#l`2`8dDi;gCc9r&<pBT46Jtk5 z$0pe{Ai#b{=8wL!hOU#h*=_5wqXJ!h{Y`irP6U{pNayC{<h=YQe%fQ5y7CaAl-6y0 zT?T`Iz{jW07F&(3jq3%%1mHENN68uf%gON8k}uUU>x@m$Kii^XSXk@g6-y6x-KkUF zbLSB7;04aKx$6gPD&s^rMghVurr7Th$sz&8W)1WGRRKBmw#0N87Nz1OT*2n5ZD>fo zKI1RhHK{VOjK3u0ss2qE_N(A`YT+*FeIz2H8a-V!bvbF|2M0sLFD_tSTRvjHw^a)4 zz?rN#^jP1=TpP)YvF^D!SZ7$0Vk&Z`hJIB}Bbi)J$8aiYn1CG@TcECk$#^GRUuaNd z{H5KjPz`CTN|Q?xLay4oaK$y#rzNSjac$w1xInk=`&{)>tsWVx#aqWaOCKH`ODyXr z?3F9UIpMT9zy#Z+oWCN(<cO4Fd5uRW@A!=sl7lMIkGCPop=-2-l0)a-pO36$S`z4X z)+AMK&<WJfz#%WJ?I&K06D}V!SK%;imD}J~yv7CB)F6I+VFfl-IqkKDlYzBdD@J33 z_UZ4Yz(V=C)FosFv+1Nq(?D}+BPgR^H>!Jyq*PCan>jeqE)Y~BB7JwX6|iRpO(%I@ zkF-km@8*tO|4b>VmX8Gx$m}d=vFv>!8uaq|m3yPk&>-QB5qZe$O`;aQ&yMEn5+3&L zl<4Tm*NcMhHe4-idY-twO1z5;VVlnwzpUEooS`;N$nr>C7`<yM|0(mH^5*eYO@$2G zrOcFy;GU@7mU`2qy<w5F?uliaXXCVmHG`h&SMW`xGs}<V4+u<1l>YY7Zd1<wLHs%| ze~TJ%$x^2tX{gFkYkhOB2I2VN4&{AnYx%MMYwh!q!*O3XlNAr;zCM=#yAr-%x!h+A zQJMp$sn;_~j6QONTY8U3bl6z${Js{qrC<zP-66_fxH5UGfz4Gi7d*}yM`b2Z;!|N* z{?AyItcyky82RquJ4$xEv^6`&A8n%<S#mP#qT=U`PcQ{jiXW!r3T>$j7ds7&an|si znfQVsH7qje%!P?!_DuXr@+2Xw_l0kHjTHw<sFOPs;Xv@II%fW}P@)&`=vLY3=ij>z zR?o4<+V%Qfedn*ZcA5`_^8JQl#N2G+($cR^D-oiF0(Imq$2%8{f0!PN%gRmbyI5v1 zNZFcQiEWQ)8zaG5s0K*jSHRn3>o(abPNv>;-BWS0Vo|xzRU6ho->I<Mp90Nu&bwbu z?`U=fs8_wc+1h%s8wgbXc3+ZSfQn2yui>e<)dke-xckbW4_P(#*&2PUn=OE667#nV zY!G0)S;B%Z2!_{(Q&u-?^{XR2w$)DMb+J9Ls@;=EZ{xpcf-nL66T0|S5v3@$q#8bc zgm2KX45yF!jC_Y{%=Q{Cd>k=8+jr@$!NA;MORWuE-R*-RY7c`=6)&@W-aZ-B7V}1; z{@4S}og<@`0ivkXU2k@KN{FW{l+PB?R17uEL(DdM%gXTFws}|0`}CxN1)F@{?xRWO zgvIEJ&6X9*vW{N!C0y8Ir(qa79T2!|*I8&nH<s_x`o|rC*Hyr4mLg_RCO66@FL)A@ Z6d6(Nx**`&U-;D}>FnTc-(Yt*<6piT&6xlI literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/images/xls_hover.png b/theme/js/dataTable/images/xls_hover.png new file mode 100755 index 0000000000000000000000000000000000000000..5b1930afd86e7ef439026ee89e75520c086471f5 GIT binary patch literal 2061 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 ax&mAY+hYDES`WPO$d0;tksdnJQvVCjG_(i+ literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/js/TableTools.js b/theme/js/dataTable/js/TableTools.js new file mode 100755 index 0000000..3c3ae91 --- /dev/null +++ b/theme/js/dataTable/js/TableTools.js @@ -0,0 +1,2476 @@ +/* + * File: TableTools.js + * Version: 2.1.5 + * Description: Tools and buttons for DataTables + * Author: Allan Jardine (www.sprymedia.co.uk) + * Language: Javascript + * License: GPL v2 or BSD 3 point style + * Project: DataTables + * + * Copyright 2009-2013 Allan Jardine, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD style license, available at: + * http://datatables.net/license_gpl2 + * http://datatables.net/license_bsd + */ + +/* Global scope for TableTools */ +var TableTools; + +(function($, window, document) { + +/** + * TableTools provides flexible buttons and other tools for a DataTables enhanced table + * @class TableTools + * @constructor + * @param {Object} oDT DataTables instance + * @param {Object} oOpts TableTools options + * @param {String} oOpts.sSwfPath ZeroClipboard SWF path + * @param {String} oOpts.sRowSelect Row selection options - 'none', 'single' or 'multi' + * @param {Function} oOpts.fnPreRowSelect Callback function just prior to row selection + * @param {Function} oOpts.fnRowSelected Callback function just after row selection + * @param {Function} oOpts.fnRowDeselected Callback function when row is deselected + * @param {Array} oOpts.aButtons List of buttons to be used + */ +TableTools = function( oDT, oOpts ) +{ + /* Santiy check that we are a new instance */ + if ( ! this instanceof TableTools ) + { + alert( "Warning: TableTools must be initialised with the keyword 'new'" ); + } + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Public class variables + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * @namespace Settings object which contains customisable information for TableTools instance + */ + this.s = { + /** + * Store 'this' so the instance can be retrieved from the settings object + * @property that + * @type object + * @default this + */ + "that": this, + + /** + * DataTables settings objects + * @property dt + * @type object + * @default <i>From the oDT init option</i> + */ + "dt": oDT.fnSettings(), + + /** + * @namespace Print specific information + */ + "print": { + /** + * DataTables draw 'start' point before the printing display was shown + * @property saveStart + * @type int + * @default -1 + */ + "saveStart": -1, + + /** + * DataTables draw 'length' point before the printing display was shown + * @property saveLength + * @type int + * @default -1 + */ + "saveLength": -1, + + /** + * Page scrolling point before the printing display was shown so it can be restored + * @property saveScroll + * @type int + * @default -1 + */ + "saveScroll": -1, + + /** + * Wrapped function to end the print display (to maintain scope) + * @property funcEnd + * @type Function + * @default function () {} + */ + "funcEnd": function () {} + }, + + /** + * A unique ID is assigned to each button in each instance + * @property buttonCounter + * @type int + * @default 0 + */ + "buttonCounter": 0, + + /** + * @namespace Select rows specific information + */ + "select": { + /** + * Select type - can be 'none', 'single' or 'multi' + * @property type + * @type string + * @default "" + */ + "type": "", + + /** + * Array of nodes which are currently selected + * @property selected + * @type array + * @default [] + */ + "selected": [], + + /** + * Function to run before the selection can take place. Will cancel the select if the + * function returns false + * @property preRowSelect + * @type Function + * @default null + */ + "preRowSelect": null, + + /** + * Function to run when a row is selected + * @property postSelected + * @type Function + * @default null + */ + "postSelected": null, + + /** + * Function to run when a row is deselected + * @property postDeselected + * @type Function + * @default null + */ + "postDeselected": null, + + /** + * Indicate if all rows are selected (needed for server-side processing) + * @property all + * @type boolean + * @default false + */ + "all": false, + + /** + * Class name to add to selected TR nodes + * @property selectedClass + * @type String + * @default "" + */ + "selectedClass": "" + }, + + /** + * Store of the user input customisation object + * @property custom + * @type object + * @default {} + */ + "custom": {}, + + /** + * SWF movie path + * @property swfPath + * @type string + * @default "" + */ + "swfPath": "", + + /** + * Default button set + * @property buttonSet + * @type array + * @default [] + */ + "buttonSet": [], + + /** + * When there is more than one TableTools instance for a DataTable, there must be a + * master which controls events (row selection etc) + * @property master + * @type boolean + * @default false + */ + "master": false, + + /** + * Tag names that are used for creating collections and buttons + * @namesapce + */ + "tags": {} + }; + + + /** + * @namespace Common and useful DOM elements for the class instance + */ + this.dom = { + /** + * DIV element that is create and all TableTools buttons (and their children) put into + * @property container + * @type node + * @default null + */ + "container": null, + + /** + * The table node to which TableTools will be applied + * @property table + * @type node + * @default null + */ + "table": null, + + /** + * @namespace Nodes used for the print display + */ + "print": { + /** + * Nodes which have been removed from the display by setting them to display none + * @property hidden + * @type array + * @default [] + */ + "hidden": [], + + /** + * The information display saying telling the user about the print display + * @property message + * @type node + * @default null + */ + "message": null + }, + + /** + * @namespace Nodes used for a collection display. This contains the currently used collection + */ + "collection": { + /** + * The div wrapper containing the buttons in the collection (i.e. the menu) + * @property collection + * @type node + * @default null + */ + "collection": null, + + /** + * Background display to provide focus and capture events + * @property background + * @type node + * @default null + */ + "background": null + } + }; + + /** + * @namespace Name space for the classes that this TableTools instance will use + * @extends TableTools.classes + */ + this.classes = $.extend( true, {}, TableTools.classes ); + if ( this.s.dt.bJUI ) + { + $.extend( true, this.classes, TableTools.classes_themeroller ); + } + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Public class methods + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * Retreieve the settings object from an instance + * @method fnSettings + * @returns {object} TableTools settings object + */ + this.fnSettings = function () { + return this.s; + }; + + + /* Constructor logic */ + if ( typeof oOpts == 'undefined' ) + { + oOpts = {}; + } + + this._fnConstruct( oOpts ); + + return this; +}; + + + +TableTools.prototype = { + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Public methods + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * Retreieve the settings object from an instance + * @returns {array} List of TR nodes which are currently selected + * @param {boolean} [filtered=false] Get only selected rows which are + * available given the filtering applied to the table. By default + * this is false - i.e. all rows, regardless of filtering are + selected. + */ + "fnGetSelected": function ( filtered ) + { + var + out = [], + data = this.s.dt.aoData, + displayed = this.s.dt.aiDisplay, + i, iLen; + + if ( filtered ) + { + // Only consider filtered rows + for ( i=0, iLen=displayed.length ; i<iLen ; i++ ) + { + if ( data[ displayed[i] ]._DTTT_selected ) + { + out.push( data[ displayed[i] ].nTr ); + } + } + } + else + { + // Use all rows + for ( i=0, iLen=data.length ; i<iLen ; i++ ) + { + if ( data[i]._DTTT_selected ) + { + out.push( data[i].nTr ); + } + } + } + + return out; + }, + + + /** + * Get the data source objects/arrays from DataTables for the selected rows (same as + * fnGetSelected followed by fnGetData on each row from the table) + * @returns {array} Data from the TR nodes which are currently selected + */ + "fnGetSelectedData": function () + { + var out = []; + var data=this.s.dt.aoData; + var i, iLen; + + for ( i=0, iLen=data.length ; i<iLen ; i++ ) + { + if ( data[i]._DTTT_selected ) + { + out.push( this.s.dt.oInstance.fnGetData(i) ); + } + } + + return out; + }, + + + /** + * Check to see if a current row is selected or not + * @param {Node} n TR node to check if it is currently selected or not + * @returns {Boolean} true if select, false otherwise + */ + "fnIsSelected": function ( n ) + { + var pos = this.s.dt.oInstance.fnGetPosition( n ); + return (this.s.dt.aoData[pos]._DTTT_selected===true) ? true : false; + }, + + + /** + * Select all rows in the table + * @param {boolean} [filtered=false] Select only rows which are available + * given the filtering applied to the table. By default this is false - + * i.e. all rows, regardless of filtering are selected. + */ + "fnSelectAll": function ( filtered ) + { + var s = this._fnGetMasterSettings(); + + this._fnRowSelect( (filtered === true) ? + s.dt.aiDisplay : + s.dt.aoData + ); + }, + + + /** + * Deselect all rows in the table + * @param {boolean} [filtered=false] Deselect only rows which are available + * given the filtering applied to the table. By default this is false - + * i.e. all rows, regardless of filtering are deselected. + */ + "fnSelectNone": function ( filtered ) + { + var s = this._fnGetMasterSettings(); + + this._fnRowDeselect( this.fnGetSelected(filtered) ); + }, + + + /** + * Select row(s) + * @param {node|object|array} n The row(s) to select. Can be a single DOM + * TR node, an array of TR nodes or a jQuery object. + */ + "fnSelect": function ( n ) + { + if ( this.s.select.type == "single" ) + { + this.fnSelectNone(); + this._fnRowSelect( n ); + } + else if ( this.s.select.type == "multi" ) + { + this._fnRowSelect( n ); + } + }, + + + /** + * Deselect row(s) + * @param {node|object|array} n The row(s) to deselect. Can be a single DOM + * TR node, an array of TR nodes or a jQuery object. + */ + "fnDeselect": function ( n ) + { + this._fnRowDeselect( n ); + }, + + + /** + * Get the title of the document - useful for file names. The title is retrieved from either + * the configuration object's 'title' parameter, or the HTML document title + * @param {Object} oConfig Button configuration object + * @returns {String} Button title + */ + "fnGetTitle": function( oConfig ) + { + var sTitle = ""; + if ( typeof oConfig.sTitle != 'undefined' && oConfig.sTitle !== "" ) { + sTitle = oConfig.sTitle; + } else { + var anTitle = document.getElementsByTagName('title'); + if ( anTitle.length > 0 ) + { + sTitle = anTitle[0].innerHTML; + } + } + + /* Strip characters which the OS will object to - checking for UTF8 support in the scripting + * engine + */ + if ( "\u00A1".toString().length < 4 ) { + return sTitle.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g, ""); + } else { + return sTitle.replace(/[^a-zA-Z0-9_\.,\-_ !\(\)]/g, ""); + } + }, + + + /** + * Calculate a unity array with the column width by proportion for a set of columns to be + * included for a button. This is particularly useful for PDF creation, where we can use the + * column widths calculated by the browser to size the columns in the PDF. + * @param {Object} oConfig Button configuration object + * @returns {Array} Unity array of column ratios + */ + "fnCalcColRatios": function ( oConfig ) + { + var + aoCols = this.s.dt.aoColumns, + aColumnsInc = this._fnColumnTargets( oConfig.mColumns ), + aColWidths = [], + iWidth = 0, iTotal = 0, i, iLen; + + for ( i=0, iLen=aColumnsInc.length ; i<iLen ; i++ ) + { + if ( aColumnsInc[i] ) + { + iWidth = aoCols[i].nTh.offsetWidth; + iTotal += iWidth; + aColWidths.push( iWidth ); + } + } + + for ( i=0, iLen=aColWidths.length ; i<iLen ; i++ ) + { + aColWidths[i] = aColWidths[i] / iTotal; + } + + return aColWidths.join('\t'); + }, + + + /** + * Get the information contained in a table as a string + * @param {Object} oConfig Button configuration object + * @returns {String} Table data as a string + */ + "fnGetTableData": function ( oConfig ) + { + /* In future this could be used to get data from a plain HTML source as well as DataTables */ + if ( this.s.dt ) + { + return this._fnGetDataTablesData( oConfig ); + } + }, + + + /** + * Pass text to a flash button instance, which will be used on the button's click handler + * @param {Object} clip Flash button object + * @param {String} text Text to set + */ + "fnSetText": function ( clip, text ) + { + this._fnFlashSetText( clip, text ); + }, + + + /** + * Resize the flash elements of the buttons attached to this TableTools instance - this is + * useful for when initialising TableTools when it is hidden (display:none) since sizes can't + * be calculated at that time. + */ + "fnResizeButtons": function () + { + for ( var cli in ZeroClipboard_TableTools.clients ) + { + if ( cli ) + { + var client = ZeroClipboard_TableTools.clients[cli]; + if ( typeof client.domElement != 'undefined' && + client.domElement.parentNode ) + { + client.positionElement(); + } + } + } + }, + + + /** + * Check to see if any of the ZeroClipboard client's attached need to be resized + */ + "fnResizeRequired": function () + { + for ( var cli in ZeroClipboard_TableTools.clients ) + { + if ( cli ) + { + var client = ZeroClipboard_TableTools.clients[cli]; + if ( typeof client.domElement != 'undefined' && + client.domElement.parentNode == this.dom.container && + client.sized === false ) + { + return true; + } + } + } + return false; + }, + + + /** + * Programmatically enable or disable the print view + * @param {boolean} [bView=true] Show the print view if true or not given. If false, then + * terminate the print view and return to normal. + * @param {object} [oConfig={}] Configuration for the print view + * @param {boolean} [oConfig.bShowAll=false] Show all rows in the table if true + * @param {string} [oConfig.sInfo] Information message, displayed as an overlay to the + * user to let them know what the print view is. + * @param {string} [oConfig.sMessage] HTML string to show at the top of the document - will + * be included in the printed document. + */ + "fnPrint": function ( bView, oConfig ) + { + if ( oConfig === undefined ) + { + oConfig = {}; + } + + if ( bView === undefined || bView ) + { + this._fnPrintStart( oConfig ); + } + else + { + this._fnPrintEnd(); + } + }, + + + /** + * Show a message to the end user which is nicely styled + * @param {string} message The HTML string to show to the user + * @param {int} time The duration the message is to be shown on screen for (mS) + */ + "fnInfo": function ( message, time ) { + var nInfo = document.createElement( "div" ); + nInfo.className = this.classes.print.info; + nInfo.innerHTML = message; + + document.body.appendChild( nInfo ); + + setTimeout( function() { + $(nInfo).fadeOut( "normal", function() { + document.body.removeChild( nInfo ); + } ); + }, time ); + }, + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Private methods (they are of course public in JS, but recommended as private) + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * Constructor logic + * @method _fnConstruct + * @param {Object} oOpts Same as TableTools constructor + * @returns void + * @private + */ + "_fnConstruct": function ( oOpts ) + { + var that = this; + + this._fnCustomiseSettings( oOpts ); + + /* Container element */ + this.dom.container = document.createElement( this.s.tags.container ); + this.dom.container.className = this.classes.container; + + /* Row selection config */ + if ( this.s.select.type != 'none' ) + { + this._fnRowSelectConfig(); + } + + /* Buttons */ + this._fnButtonDefinations( this.s.buttonSet, this.dom.container ); + + /* Destructor */ + this.s.dt.aoDestroyCallback.push( { + "sName": "TableTools", + "fn": function () { + $(that.s.dt.nTBody).off( 'click.DTTT_Select', 'tr' ); + $(that.dom.container).empty(); + } + } ); + }, + + + /** + * Take the user defined settings and the default settings and combine them. + * @method _fnCustomiseSettings + * @param {Object} oOpts Same as TableTools constructor + * @returns void + * @private + */ + "_fnCustomiseSettings": function ( oOpts ) + { + /* Is this the master control instance or not? */ + if ( typeof this.s.dt._TableToolsInit == 'undefined' ) + { + this.s.master = true; + this.s.dt._TableToolsInit = true; + } + + /* We can use the table node from comparisons to group controls */ + this.dom.table = this.s.dt.nTable; + + /* Clone the defaults and then the user options */ + this.s.custom = $.extend( {}, TableTools.DEFAULTS, oOpts ); + + /* Flash file location */ + this.s.swfPath = this.s.custom.sSwfPath; + if ( typeof ZeroClipboard_TableTools != 'undefined' ) + { + ZeroClipboard_TableTools.moviePath = this.s.swfPath; + } + + /* Table row selecting */ + this.s.select.type = this.s.custom.sRowSelect; + this.s.select.preRowSelect = this.s.custom.fnPreRowSelect; + this.s.select.postSelected = this.s.custom.fnRowSelected; + this.s.select.postDeselected = this.s.custom.fnRowDeselected; + + // Backwards compatibility - allow the user to specify a custom class in the initialiser + if ( this.s.custom.sSelectedClass ) + { + this.classes.select.row = this.s.custom.sSelectedClass; + } + + this.s.tags = this.s.custom.oTags; + + /* Button set */ + this.s.buttonSet = this.s.custom.aButtons; + }, + + + /** + * Take the user input arrays and expand them to be fully defined, and then add them to a given + * DOM element + * @method _fnButtonDefinations + * @param {array} buttonSet Set of user defined buttons + * @param {node} wrapper Node to add the created buttons to + * @returns void + * @private + */ + "_fnButtonDefinations": function ( buttonSet, wrapper ) + { + var buttonDef; + + for ( var i=0, iLen=buttonSet.length ; i<iLen ; i++ ) + { + if ( typeof buttonSet[i] == "string" ) + { + if ( typeof TableTools.BUTTONS[ buttonSet[i] ] == 'undefined' ) + { + alert( "TableTools: Warning - unknown button type: "+buttonSet[i] ); + continue; + } + buttonDef = $.extend( {}, TableTools.BUTTONS[ buttonSet[i] ], true ); + } + else + { + if ( typeof TableTools.BUTTONS[ buttonSet[i].sExtends ] == 'undefined' ) + { + alert( "TableTools: Warning - unknown button type: "+buttonSet[i].sExtends ); + continue; + } + var o = $.extend( {}, TableTools.BUTTONS[ buttonSet[i].sExtends ], true ); + buttonDef = $.extend( o, buttonSet[i], true ); + } + + wrapper.appendChild( this._fnCreateButton( + buttonDef, + $(wrapper).hasClass(this.classes.collection.container) + ) ); + } + }, + + + /** + * Create and configure a TableTools button + * @method _fnCreateButton + * @param {Object} oConfig Button configuration object + * @returns {Node} Button element + * @private + */ + "_fnCreateButton": function ( oConfig, bCollectionButton ) + { + var nButton = this._fnButtonBase( oConfig, bCollectionButton ); + + if ( oConfig.sAction.match(/flash/) ) + { + this._fnFlashConfig( nButton, oConfig ); + } + else if ( oConfig.sAction == "text" ) + { + this._fnTextConfig( nButton, oConfig ); + } + else if ( oConfig.sAction == "div" ) + { + this._fnTextConfig( nButton, oConfig ); + } + else if ( oConfig.sAction == "collection" ) + { + this._fnTextConfig( nButton, oConfig ); + this._fnCollectionConfig( nButton, oConfig ); + } + + return nButton; + }, + + + /** + * Create the DOM needed for the button and apply some base properties. All buttons start here + * @method _fnButtonBase + * @param {o} oConfig Button configuration object + * @returns {Node} DIV element for the button + * @private + */ + "_fnButtonBase": function ( o, bCollectionButton ) + { + var sTag, sLiner, sClass; + + if ( bCollectionButton ) + { + sTag = o.sTag !== "default" ? o.sTag : this.s.tags.collection.button; + sLiner = o.sLinerTag !== "default" ? o.sLiner : this.s.tags.collection.liner; + sClass = this.classes.collection.buttons.normal; + } + else + { + sTag = o.sTag !== "default" ? o.sTag : this.s.tags.button; + sLiner = o.sLinerTag !== "default" ? o.sLiner : this.s.tags.liner; + sClass = this.classes.buttons.normal; + } + + var + nButton = document.createElement( sTag ), + nSpan = document.createElement( sLiner ), + masterS = this._fnGetMasterSettings(); + + nButton.className = sClass+" "+o.sButtonClass; + nButton.setAttribute('id', "ToolTables_"+this.s.dt.sInstance+"_"+masterS.buttonCounter ); + nButton.appendChild( nSpan ); + nSpan.innerHTML = o.sButtonText; + + masterS.buttonCounter++; + + return nButton; + }, + + + /** + * Get the settings object for the master instance. When more than one TableTools instance is + * assigned to a DataTable, only one of them can be the 'master' (for the select rows). As such, + * we will typically want to interact with that master for global properties. + * @method _fnGetMasterSettings + * @returns {Object} TableTools settings object + * @private + */ + "_fnGetMasterSettings": function () + { + if ( this.s.master ) + { + return this.s; + } + else + { + /* Look for the master which has the same DT as this one */ + var instances = TableTools._aInstances; + for ( var i=0, iLen=instances.length ; i<iLen ; i++ ) + { + if ( this.dom.table == instances[i].s.dt.nTable ) + { + return instances[i].s; + } + } + } + }, + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Button collection functions + */ + + /** + * Create a collection button, when activated will present a drop down list of other buttons + * @param {Node} nButton Button to use for the collection activation + * @param {Object} oConfig Button configuration object + * @returns void + * @private + */ + "_fnCollectionConfig": function ( nButton, oConfig ) + { + var nHidden = document.createElement( this.s.tags.collection.container ); + nHidden.style.display = "none"; + nHidden.className = this.classes.collection.container; + oConfig._collection = nHidden; + document.body.appendChild( nHidden ); + + this._fnButtonDefinations( oConfig.aButtons, nHidden ); + }, + + + /** + * Show a button collection + * @param {Node} nButton Button to use for the collection + * @param {Object} oConfig Button configuration object + * @returns void + * @private + */ + "_fnCollectionShow": function ( nButton, oConfig ) + { + var + that = this, + oPos = $(nButton).offset(), + nHidden = oConfig._collection, + iDivX = oPos.left, + iDivY = oPos.top + $(nButton).outerHeight(), + iWinHeight = $(window).height(), iDocHeight = $(document).height(), + iWinWidth = $(window).width(), iDocWidth = $(document).width(); + + nHidden.style.position = "absolute"; + nHidden.style.left = iDivX+"px"; + nHidden.style.top = iDivY+"px"; + nHidden.style.display = "block"; + $(nHidden).css('opacity',0); + + var nBackground = document.createElement('div'); + nBackground.style.position = "absolute"; + nBackground.style.left = "0px"; + nBackground.style.top = "0px"; + nBackground.style.height = ((iWinHeight>iDocHeight)? iWinHeight : iDocHeight) +"px"; + nBackground.style.width = ((iWinWidth>iDocWidth)? iWinWidth : iDocWidth) +"px"; + nBackground.className = this.classes.collection.background; + $(nBackground).css('opacity',0); + + document.body.appendChild( nBackground ); + document.body.appendChild( nHidden ); + + /* Visual corrections to try and keep the collection visible */ + var iDivWidth = $(nHidden).outerWidth(); + var iDivHeight = $(nHidden).outerHeight(); + + if ( iDivX + iDivWidth > iDocWidth ) + { + nHidden.style.left = (iDocWidth-iDivWidth)+"px"; + } + + if ( iDivY + iDivHeight > iDocHeight ) + { + nHidden.style.top = (iDivY-iDivHeight-$(nButton).outerHeight())+"px"; + } + + this.dom.collection.collection = nHidden; + this.dom.collection.background = nBackground; + + /* This results in a very small delay for the end user but it allows the animation to be + * much smoother. If you don't want the animation, then the setTimeout can be removed + */ + setTimeout( function () { + $(nHidden).animate({"opacity": 1}, 500); + $(nBackground).animate({"opacity": 0.25}, 500); + }, 10 ); + + /* Resize the buttons to the Flash contents fit */ + this.fnResizeButtons(); + + /* Event handler to remove the collection display */ + $(nBackground).click( function () { + that._fnCollectionHide.call( that, null, null ); + } ); + }, + + + /** + * Hide a button collection + * @param {Node} nButton Button to use for the collection + * @param {Object} oConfig Button configuration object + * @returns void + * @private + */ + "_fnCollectionHide": function ( nButton, oConfig ) + { + if ( oConfig !== null && oConfig.sExtends == 'collection' ) + { + return; + } + + if ( this.dom.collection.collection !== null ) + { + $(this.dom.collection.collection).animate({"opacity": 0}, 500, function (e) { + this.style.display = "none"; + } ); + + $(this.dom.collection.background).animate({"opacity": 0}, 500, function (e) { + this.parentNode.removeChild( this ); + } ); + + this.dom.collection.collection = null; + this.dom.collection.background = null; + } + }, + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Row selection functions + */ + + /** + * Add event handlers to a table to allow for row selection + * @method _fnRowSelectConfig + * @returns void + * @private + */ + "_fnRowSelectConfig": function () + { + if ( this.s.master ) + { + var + that = this, + i, iLen, + dt = this.s.dt, + aoOpenRows = this.s.dt.aoOpenRows; + + $(dt.nTable).addClass( this.classes.select.table ); + + $(dt.nTBody).on( 'click.DTTT_Select', 'tr', function(e) { + /* Sub-table must be ignored (odd that the selector won't do this with >) */ + if ( this.parentNode != dt.nTBody ) + { + return; + } + + /* Check that we are actually working with a DataTables controlled row */ + if ( dt.oInstance.fnGetData(this) === null ) + { + return; + } + + if ( that.fnIsSelected( this ) ) + { + that._fnRowDeselect( this, e ); + } + else if ( that.s.select.type == "single" ) + { + that.fnSelectNone(); + that._fnRowSelect( this, e ); + } + else if ( that.s.select.type == "multi" ) + { + that._fnRowSelect( this, e ); + } + } ); + + // Bind a listener to the DataTable for when new rows are created. + // This allows rows to be visually selected when they should be and + // deferred rendering is used. + dt.oApi._fnCallbackReg( dt, 'aoRowCreatedCallback', function (tr, data, index) { + if ( dt.aoData[index]._DTTT_selected ) { + $(tr).addClass( that.classes.select.row ); + } + }, 'TableTools-SelectAll' ); + } + }, + + /** + * Select rows + * @param {*} src Rows to select - see _fnSelectData for a description of valid inputs + * @private + */ + "_fnRowSelect": function ( src, e ) + { + var + that = this, + data = this._fnSelectData( src ), + firstTr = data.length===0 ? null : data[0].nTr, + anSelected = [], + i, len; + + // Get all the rows that will be selected + for ( i=0, len=data.length ; i<len ; i++ ) + { + if ( data[i].nTr ) + { + anSelected.push( data[i].nTr ); + } + } + + // User defined pre-selection function + if ( this.s.select.preRowSelect !== null && !this.s.select.preRowSelect.call(this, e, anSelected, true) ) + { + return; + } + + // Mark them as selected + for ( i=0, len=data.length ; i<len ; i++ ) + { + data[i]._DTTT_selected = true; + + if ( data[i].nTr ) + { + $(data[i].nTr).addClass( that.classes.select.row ); + } + } + + // Post-selection function + if ( this.s.select.postSelected !== null ) + { + this.s.select.postSelected.call( this, anSelected ); + } + + TableTools._fnEventDispatch( this, 'select', anSelected, true ); + }, + + /** + * Deselect rows + * @param {*} src Rows to deselect - see _fnSelectData for a description of valid inputs + * @private + */ + "_fnRowDeselect": function ( src, e ) + { + var + that = this, + data = this._fnSelectData( src ), + firstTr = data.length===0 ? null : data[0].nTr, + anDeselectedTrs = [], + i, len; + + // Get all the rows that will be deselected + for ( i=0, len=data.length ; i<len ; i++ ) + { + if ( data[i].nTr ) + { + anDeselectedTrs.push( data[i].nTr ); + } + } + + // User defined pre-selection function + if ( this.s.select.preRowSelect !== null && !this.s.select.preRowSelect.call(this, e, anDeselectedTrs, false) ) + { + return; + } + + // Mark them as deselected + for ( i=0, len=data.length ; i<len ; i++ ) + { + data[i]._DTTT_selected = false; + + if ( data[i].nTr ) + { + $(data[i].nTr).removeClass( that.classes.select.row ); + } + } + + // Post-deselection function + if ( this.s.select.postDeselected !== null ) + { + this.s.select.postDeselected.call( this, anDeselectedTrs ); + } + + TableTools._fnEventDispatch( this, 'select', anDeselectedTrs, false ); + }, + + /** + * Take a data source for row selection and convert it into aoData points for the DT + * @param {*} src Can be a single DOM TR node, an array of TR nodes (including a + * a jQuery object), a single aoData point from DataTables, an array of aoData + * points or an array of aoData indexes + * @returns {array} An array of aoData points + */ + "_fnSelectData": function ( src ) + { + var out = [], pos, i, iLen; + + if ( src.nodeName ) + { + // Single node + pos = this.s.dt.oInstance.fnGetPosition( src ); + out.push( this.s.dt.aoData[pos] ); + } + else if ( typeof src.length !== 'undefined' ) + { + // jQuery object or an array of nodes, or aoData points + for ( i=0, iLen=src.length ; i<iLen ; i++ ) + { + if ( src[i].nodeName ) + { + pos = this.s.dt.oInstance.fnGetPosition( src[i] ); + out.push( this.s.dt.aoData[pos] ); + } + else if ( typeof src[i] === 'number' ) + { + out.push( this.s.dt.aoData[ src[i] ] ); + } + else + { + out.push( src[i] ); + } + } + + return out; + } + else + { + // A single aoData point + out.push( src ); + } + + return out; + }, + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Text button functions + */ + + /** + * Configure a text based button for interaction events + * @method _fnTextConfig + * @param {Node} nButton Button element which is being considered + * @param {Object} oConfig Button configuration object + * @returns void + * @private + */ + "_fnTextConfig": function ( nButton, oConfig ) + { + var that = this; + + if ( oConfig.fnInit !== null ) + { + oConfig.fnInit.call( this, nButton, oConfig ); + } + + if ( oConfig.sToolTip !== "" ) + { + nButton.title = oConfig.sToolTip; + } + + $(nButton).hover( function () { + if ( oConfig.fnMouseover !== null ) + { + oConfig.fnMouseover.call( this, nButton, oConfig, null ); + } + }, function () { + if ( oConfig.fnMouseout !== null ) + { + oConfig.fnMouseout.call( this, nButton, oConfig, null ); + } + } ); + + if ( oConfig.fnSelect !== null ) + { + TableTools._fnEventListen( this, 'select', function (n) { + oConfig.fnSelect.call( that, nButton, oConfig, n ); + } ); + } + + $(nButton).click( function (e) { + //e.preventDefault(); + + if ( oConfig.fnClick !== null ) + { + oConfig.fnClick.call( that, nButton, oConfig, null, e ); + } + + /* Provide a complete function to match the behaviour of the flash elements */ + if ( oConfig.fnComplete !== null ) + { + oConfig.fnComplete.call( that, nButton, oConfig, null, null ); + } + + that._fnCollectionHide( nButton, oConfig ); + } ); + }, + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Flash button functions + */ + + /** + * Configure a flash based button for interaction events + * @method _fnFlashConfig + * @param {Node} nButton Button element which is being considered + * @param {o} oConfig Button configuration object + * @returns void + * @private + */ + "_fnFlashConfig": function ( nButton, oConfig ) + { + var that = this; + var flash = new ZeroClipboard_TableTools.Client(); + + if ( oConfig.fnInit !== null ) + { + oConfig.fnInit.call( this, nButton, oConfig ); + } + + flash.setHandCursor( true ); + + if ( oConfig.sAction == "flash_save" ) + { + flash.setAction( 'save' ); + flash.setCharSet( (oConfig.sCharSet=="utf16le") ? 'UTF16LE' : 'UTF8' ); + flash.setBomInc( oConfig.bBomInc ); + flash.setFileName( oConfig.sFileName.replace('*', this.fnGetTitle(oConfig)) ); + } + else if ( oConfig.sAction == "flash_pdf" ) + { + flash.setAction( 'pdf' ); + flash.setFileName( oConfig.sFileName.replace('*', this.fnGetTitle(oConfig)) ); + } + else + { + flash.setAction( 'copy' ); + } + + flash.addEventListener('mouseOver', function(client) { + if ( oConfig.fnMouseover !== null ) + { + oConfig.fnMouseover.call( that, nButton, oConfig, flash ); + } + } ); + + flash.addEventListener('mouseOut', function(client) { + if ( oConfig.fnMouseout !== null ) + { + oConfig.fnMouseout.call( that, nButton, oConfig, flash ); + } + } ); + + flash.addEventListener('mouseDown', function(client) { + if ( oConfig.fnClick !== null ) + { + oConfig.fnClick.call( that, nButton, oConfig, flash ); + } + } ); + + flash.addEventListener('complete', function (client, text) { + if ( oConfig.fnComplete !== null ) + { + oConfig.fnComplete.call( that, nButton, oConfig, flash, text ); + } + that._fnCollectionHide( nButton, oConfig ); + } ); + + this._fnFlashGlue( flash, nButton, oConfig.sToolTip ); + }, + + + /** + * Wait until the id is in the DOM before we "glue" the swf. Note that this function will call + * itself (using setTimeout) until it completes successfully + * @method _fnFlashGlue + * @param {Object} clip Zero clipboard object + * @param {Node} node node to glue swf to + * @param {String} text title of the flash movie + * @returns void + * @private + */ + "_fnFlashGlue": function ( flash, node, text ) + { + var that = this; + var id = node.getAttribute('id'); + + if ( document.getElementById(id) ) + { + flash.glue( node, text ); + } + else + { + setTimeout( function () { + that._fnFlashGlue( flash, node, text ); + }, 100 ); + } + }, + + + /** + * Set the text for the flash clip to deal with + * + * This function is required for large information sets. There is a limit on the + * amount of data that can be transferred between Javascript and Flash in a single call, so + * we use this method to build up the text in Flash by sending over chunks. It is estimated + * that the data limit is around 64k, although it is undocumented, and appears to be different + * between different flash versions. We chunk at 8KiB. + * @method _fnFlashSetText + * @param {Object} clip the ZeroClipboard object + * @param {String} sData the data to be set + * @returns void + * @private + */ + "_fnFlashSetText": function ( clip, sData ) + { + var asData = this._fnChunkData( sData, 8192 ); + + clip.clearText(); + for ( var i=0, iLen=asData.length ; i<iLen ; i++ ) + { + clip.appendText( asData[i] ); + } + }, + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Data retrieval functions + */ + + /** + * Convert the mixed columns variable into a boolean array the same size as the columns, which + * indicates which columns we want to include + * @method _fnColumnTargets + * @param {String|Array} mColumns The columns to be included in data retrieval. If a string + * then it can take the value of "visible" or "hidden" (to include all visible or + * hidden columns respectively). Or an array of column indexes + * @returns {Array} A boolean array the length of the columns of the table, which each value + * indicating if the column is to be included or not + * @private + */ + "_fnColumnTargets": function ( mColumns ) + { + var aColumns = []; + var dt = this.s.dt; + + if ( typeof mColumns == "object" ) + { + for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ ) + { + aColumns.push( false ); + } + + for ( i=0, iLen=mColumns.length ; i<iLen ; i++ ) + { + aColumns[ mColumns[i] ] = true; + } + } + else if ( mColumns == "visible" ) + { + for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ ) + { + aColumns.push( dt.aoColumns[i].bVisible ? true : false ); + } + } + else if ( mColumns == "hidden" ) + { + for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ ) + { + aColumns.push( dt.aoColumns[i].bVisible ? false : true ); + } + } + else if ( mColumns == "sortable" ) + { + for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ ) + { + aColumns.push( dt.aoColumns[i].bSortable ? true : false ); + } + } + else /* all */ + { + for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ ) + { + aColumns.push( true ); + } + } + + return aColumns; + }, + + + /** + * New line character(s) depend on the platforms + * @method method + * @param {Object} oConfig Button configuration object - only interested in oConfig.sNewLine + * @returns {String} Newline character + */ + "_fnNewline": function ( oConfig ) + { + if ( oConfig.sNewLine == "auto" ) + { + return navigator.userAgent.match(/Windows/) ? "\r\n" : "\n"; + } + else + { + return oConfig.sNewLine; + } + }, + + + /** + * Get data from DataTables' internals and format it for output + * @method _fnGetDataTablesData + * @param {Object} oConfig Button configuration object + * @param {String} oConfig.sFieldBoundary Field boundary for the data cells in the string + * @param {String} oConfig.sFieldSeperator Field separator for the data cells + * @param {String} oConfig.sNewline New line options + * @param {Mixed} oConfig.mColumns Which columns should be included in the output + * @param {Boolean} oConfig.bHeader Include the header + * @param {Boolean} oConfig.bFooter Include the footer + * @param {Boolean} oConfig.bSelectedOnly Include only the selected rows in the output + * @returns {String} Concatenated string of data + * @private + */ + "_fnGetDataTablesData": function ( oConfig ) + { + var i, iLen, j, jLen; + var aRow, aData=[], sLoopData='', arr; + var dt = this.s.dt, tr, child; + var regex = new RegExp(oConfig.sFieldBoundary, "g"); /* Do it here for speed */ + var aColumnsInc = this._fnColumnTargets( oConfig.mColumns ); + var bSelectedOnly = (typeof oConfig.bSelectedOnly != 'undefined') ? oConfig.bSelectedOnly : false; + + /* + * Header + */ + if ( oConfig.bHeader ) + { + aRow = []; + + for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ ) + { + if ( aColumnsInc[i] ) + { + sLoopData = dt.aoColumns[i].sTitle.replace(/\n/g," ").replace( /<.*?>/g, "" ).replace(/^\s+|\s+$/g,""); + sLoopData = this._fnHtmlDecode( sLoopData ); + + aRow.push( this._fnBoundData( sLoopData, oConfig.sFieldBoundary, regex ) ); + } + } + + aData.push( aRow.join(oConfig.sFieldSeperator) ); + } + + /* + * Body + */ + var aDataIndex = dt.aiDisplay; + var aSelected = this.fnGetSelected(); + if ( this.s.select.type !== "none" && bSelectedOnly && aSelected.length !== 0 ) + { + aDataIndex = []; + for ( i=0, iLen=aSelected.length ; i<iLen ; i++ ) + { + aDataIndex.push( dt.oInstance.fnGetPosition( aSelected[i] ) ); + } + } + + for ( j=0, jLen=aDataIndex.length ; j<jLen ; j++ ) + { + tr = dt.aoData[ aDataIndex[j] ].nTr; + aRow = []; + + /* Columns */ + for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ ) + { + if ( aColumnsInc[i] ) + { + /* Convert to strings (with small optimisation) */ + var mTypeData = dt.oApi._fnGetCellData( dt, aDataIndex[j], i, 'display' ); + if ( oConfig.fnCellRender ) + { + sLoopData = oConfig.fnCellRender( mTypeData, i, tr, aDataIndex[j] )+""; + } + else if ( typeof mTypeData == "string" ) + { + /* Strip newlines, replace img tags with alt attr. and finally strip html... */ + sLoopData = mTypeData.replace(/\n/g," "); + sLoopData = + sLoopData.replace(/<img.*?\s+alt\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+)).*?>/gi, + '$1$2$3'); + sLoopData = sLoopData.replace( /<.*?>/g, "" ); + } + else + { + sLoopData = mTypeData+""; + } + + /* Trim and clean the data */ + sLoopData = sLoopData.replace(/^\s+/, '').replace(/\s+$/, ''); + sLoopData = this._fnHtmlDecode( sLoopData ); + + /* Bound it and add it to the total data */ + aRow.push( this._fnBoundData( sLoopData, oConfig.sFieldBoundary, regex ) ); + } + } + + aData.push( aRow.join(oConfig.sFieldSeperator) ); + + /* Details rows from fnOpen */ + if ( oConfig.bOpenRows ) + { + arr = $.grep(dt.aoOpenRows, function(o) { return o.nParent === tr; }); + + if ( arr.length === 1 ) + { + sLoopData = this._fnBoundData( $('td', arr[0].nTr).html(), oConfig.sFieldBoundary, regex ); + aData.push( sLoopData ); + } + } + } + + /* + * Footer + */ + if ( oConfig.bFooter && dt.nTFoot !== null ) + { + aRow = []; + + for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ ) + { + if ( aColumnsInc[i] && dt.aoColumns[i].nTf !== null ) + { + sLoopData = dt.aoColumns[i].nTf.innerHTML.replace(/\n/g," ").replace( /<.*?>/g, "" ); + sLoopData = this._fnHtmlDecode( sLoopData ); + + aRow.push( this._fnBoundData( sLoopData, oConfig.sFieldBoundary, regex ) ); + } + } + + aData.push( aRow.join(oConfig.sFieldSeperator) ); + } + + _sLastData = aData.join( this._fnNewline(oConfig) ); + return _sLastData; + }, + + + /** + * Wrap data up with a boundary string + * @method _fnBoundData + * @param {String} sData data to bound + * @param {String} sBoundary bounding char(s) + * @param {RegExp} regex search for the bounding chars - constructed outside for efficiency + * in the loop + * @returns {String} bound data + * @private + */ + "_fnBoundData": function ( sData, sBoundary, regex ) + { + if ( sBoundary === "" ) + { + return sData; + } + else + { + return sBoundary + sData.replace(regex, sBoundary+sBoundary) + sBoundary; + } + }, + + + /** + * Break a string up into an array of smaller strings + * @method _fnChunkData + * @param {String} sData data to be broken up + * @param {Int} iSize chunk size + * @returns {Array} String array of broken up text + * @private + */ + "_fnChunkData": function ( sData, iSize ) + { + var asReturn = []; + var iStrlen = sData.length; + + for ( var i=0 ; i<iStrlen ; i+=iSize ) + { + if ( i+iSize < iStrlen ) + { + asReturn.push( sData.substring( i, i+iSize ) ); + } + else + { + asReturn.push( sData.substring( i, iStrlen ) ); + } + } + + return asReturn; + }, + + + /** + * Decode HTML entities + * @method _fnHtmlDecode + * @param {String} sData encoded string + * @returns {String} decoded string + * @private + */ + "_fnHtmlDecode": function ( sData ) + { + if ( sData.indexOf('&') === -1 ) + { + return sData; + } + + var n = document.createElement('div'); + + return sData.replace( /&([^\s]*);/g, function( match, match2 ) { + if ( match.substr(1, 1) === '#' ) + { + return String.fromCharCode( Number(match2.substr(1)) ); + } + else + { + n.innerHTML = match; + return n.childNodes[0].nodeValue; + } + } ); + }, + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Printing functions + */ + + /** + * Show print display + * @method _fnPrintStart + * @param {Event} e Event object + * @param {Object} oConfig Button configuration object + * @returns void + * @private + */ + "_fnPrintStart": function ( oConfig ) + { + var that = this; + var oSetDT = this.s.dt; + + /* Parse through the DOM hiding everything that isn't needed for the table */ + this._fnPrintHideNodes( oSetDT.nTable ); + + /* Show the whole table */ + this.s.print.saveStart = oSetDT._iDisplayStart; + this.s.print.saveLength = oSetDT._iDisplayLength; + + if ( oConfig.bShowAll ) + { + oSetDT._iDisplayStart = 0; + oSetDT._iDisplayLength = -1; + oSetDT.oApi._fnCalculateEnd( oSetDT ); + oSetDT.oApi._fnDraw( oSetDT ); + } + + /* Adjust the display for scrolling which might be done by DataTables */ + if ( oSetDT.oScroll.sX !== "" || oSetDT.oScroll.sY !== "" ) + { + this._fnPrintScrollStart( oSetDT ); + + // If the table redraws while in print view, the DataTables scrolling + // setup would hide the header, so we need to readd it on draw + $(this.s.dt.nTable).bind('draw.DTTT_Print', function () { + that._fnPrintScrollStart( oSetDT ); + } ); + } + + /* Remove the other DataTables feature nodes - but leave the table! and info div */ + var anFeature = oSetDT.aanFeatures; + for ( var cFeature in anFeature ) + { + if ( cFeature != 'i' && cFeature != 't' && cFeature.length == 1 ) + { + for ( var i=0, iLen=anFeature[cFeature].length ; i<iLen ; i++ ) + { + this.dom.print.hidden.push( { + "node": anFeature[cFeature][i], + "display": "block" + } ); + anFeature[cFeature][i].style.display = "none"; + } + } + } + + /* Print class can be used for styling */ + $(document.body).addClass( this.classes.print.body ); + + /* Show information message to let the user know what is happening */ + if ( oConfig.sInfo !== "" ) + { + this.fnInfo( oConfig.sInfo, 3000 ); + } + + /* Add a message at the top of the page */ + if ( oConfig.sMessage ) + { + this.dom.print.message = document.createElement( "div" ); + this.dom.print.message.className = this.classes.print.message; + this.dom.print.message.innerHTML = oConfig.sMessage; + document.body.insertBefore( this.dom.print.message, document.body.childNodes[0] ); + } + + /* Cache the scrolling and the jump to the top of the page */ + this.s.print.saveScroll = $(window).scrollTop(); + window.scrollTo( 0, 0 ); + + /* Bind a key event listener to the document for the escape key - + * it is removed in the callback + */ + $(document).bind( "keydown.DTTT", function(e) { + /* Only interested in the escape key */ + if ( e.keyCode == 27 ) + { + e.preventDefault(); + that._fnPrintEnd.call( that, e ); + } + } ); + }, + + + /** + * Printing is finished, resume normal display + * @method _fnPrintEnd + * @param {Event} e Event object + * @returns void + * @private + */ + "_fnPrintEnd": function ( e ) + { + var that = this; + var oSetDT = this.s.dt; + var oSetPrint = this.s.print; + var oDomPrint = this.dom.print; + + /* Show all hidden nodes */ + this._fnPrintShowNodes(); + + /* Restore DataTables' scrolling */ + if ( oSetDT.oScroll.sX !== "" || oSetDT.oScroll.sY !== "" ) + { + $(this.s.dt.nTable).unbind('draw.DTTT_Print'); + + this._fnPrintScrollEnd(); + } + + /* Restore the scroll */ + window.scrollTo( 0, oSetPrint.saveScroll ); + + /* Drop the print message */ + if ( oDomPrint.message !== null ) + { + document.body.removeChild( oDomPrint.message ); + oDomPrint.message = null; + } + + /* Styling class */ + $(document.body).removeClass( 'DTTT_Print' ); + + /* Restore the table length */ + oSetDT._iDisplayStart = oSetPrint.saveStart; + oSetDT._iDisplayLength = oSetPrint.saveLength; + oSetDT.oApi._fnCalculateEnd( oSetDT ); + oSetDT.oApi._fnDraw( oSetDT ); + + $(document).unbind( "keydown.DTTT" ); + }, + + + /** + * Take account of scrolling in DataTables by showing the full table + * @returns void + * @private + */ + "_fnPrintScrollStart": function () + { + var + oSetDT = this.s.dt, + nScrollHeadInner = oSetDT.nScrollHead.getElementsByTagName('div')[0], + nScrollHeadTable = nScrollHeadInner.getElementsByTagName('table')[0], + nScrollBody = oSetDT.nTable.parentNode; + + /* Copy the header in the thead in the body table, this way we show one single table when + * in print view. Note that this section of code is more or less verbatim from DT 1.7.0 + */ + var nTheadSize = oSetDT.nTable.getElementsByTagName('thead'); + if ( nTheadSize.length > 0 ) + { + oSetDT.nTable.removeChild( nTheadSize[0] ); + } + + if ( oSetDT.nTFoot !== null ) + { + var nTfootSize = oSetDT.nTable.getElementsByTagName('tfoot'); + if ( nTfootSize.length > 0 ) + { + oSetDT.nTable.removeChild( nTfootSize[0] ); + } + } + + nTheadSize = oSetDT.nTHead.cloneNode(true); + oSetDT.nTable.insertBefore( nTheadSize, oSetDT.nTable.childNodes[0] ); + + if ( oSetDT.nTFoot !== null ) + { + nTfootSize = oSetDT.nTFoot.cloneNode(true); + oSetDT.nTable.insertBefore( nTfootSize, oSetDT.nTable.childNodes[1] ); + } + + /* Now adjust the table's viewport so we can actually see it */ + if ( oSetDT.oScroll.sX !== "" ) + { + oSetDT.nTable.style.width = $(oSetDT.nTable).outerWidth()+"px"; + nScrollBody.style.width = $(oSetDT.nTable).outerWidth()+"px"; + nScrollBody.style.overflow = "visible"; + } + + if ( oSetDT.oScroll.sY !== "" ) + { + nScrollBody.style.height = $(oSetDT.nTable).outerHeight()+"px"; + nScrollBody.style.overflow = "visible"; + } + }, + + + /** + * Take account of scrolling in DataTables by showing the full table. Note that the redraw of + * the DataTable that we do will actually deal with the majority of the hard work here + * @returns void + * @private + */ + "_fnPrintScrollEnd": function () + { + var + oSetDT = this.s.dt, + nScrollBody = oSetDT.nTable.parentNode; + + if ( oSetDT.oScroll.sX !== "" ) + { + nScrollBody.style.width = oSetDT.oApi._fnStringToCss( oSetDT.oScroll.sX ); + nScrollBody.style.overflow = "auto"; + } + + if ( oSetDT.oScroll.sY !== "" ) + { + nScrollBody.style.height = oSetDT.oApi._fnStringToCss( oSetDT.oScroll.sY ); + nScrollBody.style.overflow = "auto"; + } + }, + + + /** + * Resume the display of all TableTools hidden nodes + * @method _fnPrintShowNodes + * @returns void + * @private + */ + "_fnPrintShowNodes": function ( ) + { + var anHidden = this.dom.print.hidden; + + for ( var i=0, iLen=anHidden.length ; i<iLen ; i++ ) + { + anHidden[i].node.style.display = anHidden[i].display; + } + anHidden.splice( 0, anHidden.length ); + }, + + + /** + * Hide nodes which are not needed in order to display the table. Note that this function is + * recursive + * @method _fnPrintHideNodes + * @param {Node} nNode Element which should be showing in a 'print' display + * @returns void + * @private + */ + "_fnPrintHideNodes": function ( nNode ) + { + var anHidden = this.dom.print.hidden; + + var nParent = nNode.parentNode; + var nChildren = nParent.childNodes; + for ( var i=0, iLen=nChildren.length ; i<iLen ; i++ ) + { + if ( nChildren[i] != nNode && nChildren[i].nodeType == 1 ) + { + /* If our node is shown (don't want to show nodes which were previously hidden) */ + var sDisplay = $(nChildren[i]).css("display"); + if ( sDisplay != "none" ) + { + /* Cache the node and it's previous state so we can restore it */ + anHidden.push( { + "node": nChildren[i], + "display": sDisplay + } ); + nChildren[i].style.display = "none"; + } + } + } + + if ( nParent.nodeName != "BODY" ) + { + this._fnPrintHideNodes( nParent ); + } + } +}; + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Static variables + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/** + * Store of all instances that have been created of TableTools, so one can look up other (when + * there is need of a master) + * @property _aInstances + * @type Array + * @default [] + * @private + */ +TableTools._aInstances = []; + + +/** + * Store of all listeners and their callback functions + * @property _aListeners + * @type Array + * @default [] + */ +TableTools._aListeners = []; + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Static methods + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/** + * Get an array of all the master instances + * @method fnGetMasters + * @returns {Array} List of master TableTools instances + * @static + */ +TableTools.fnGetMasters = function () +{ + var a = []; + for ( var i=0, iLen=TableTools._aInstances.length ; i<iLen ; i++ ) + { + if ( TableTools._aInstances[i].s.master ) + { + a.push( TableTools._aInstances[i] ); + } + } + return a; +}; + +/** + * Get the master instance for a table node (or id if a string is given) + * @method fnGetInstance + * @returns {Object} ID of table OR table node, for which we want the TableTools instance + * @static + */ +TableTools.fnGetInstance = function ( node ) +{ + if ( typeof node != 'object' ) + { + node = document.getElementById(node); + } + + for ( var i=0, iLen=TableTools._aInstances.length ; i<iLen ; i++ ) + { + if ( TableTools._aInstances[i].s.master && TableTools._aInstances[i].dom.table == node ) + { + return TableTools._aInstances[i]; + } + } + return null; +}; + + +/** + * Add a listener for a specific event + * @method _fnEventListen + * @param {Object} that Scope of the listening function (i.e. 'this' in the caller) + * @param {String} type Event type + * @param {Function} fn Function + * @returns void + * @private + * @static + */ +TableTools._fnEventListen = function ( that, type, fn ) +{ + TableTools._aListeners.push( { + "that": that, + "type": type, + "fn": fn + } ); +}; + + +/** + * An event has occurred - look up every listener and fire it off. We check that the event we are + * going to fire is attached to the same table (using the table node as reference) before firing + * @method _fnEventDispatch + * @param {Object} that Scope of the listening function (i.e. 'this' in the caller) + * @param {String} type Event type + * @param {Node} node Element that the event occurred on (may be null) + * @param {boolean} [selected] Indicate if the node was selected (true) or deselected (false) + * @returns void + * @private + * @static + */ +TableTools._fnEventDispatch = function ( that, type, node, selected ) +{ + var listeners = TableTools._aListeners; + for ( var i=0, iLen=listeners.length ; i<iLen ; i++ ) + { + if ( that.dom.table == listeners[i].that.dom.table && listeners[i].type == type ) + { + listeners[i].fn( node, selected ); + } + } +}; + + + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Constants + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + + +TableTools.buttonBase = { + // Button base + "sAction": "text", + "sTag": "default", + "sLinerTag": "default", + "sButtonClass": "DTTT_button_text", + "sButtonText": "Button text", + "sTitle": "", + "sToolTip": "", + + // Common button specific options + "sCharSet": "utf8", + "bBomInc": false, + "sFileName": "*.csv", + "sFieldBoundary": "", + "sFieldSeperator": "\t", + "sNewLine": "auto", + "mColumns": "all", /* "all", "visible", "hidden" or array of column integers */ + "bHeader": true, + "bFooter": true, + "bOpenRows": false, + "bSelectedOnly": false, + + // Callbacks + "fnMouseover": null, + "fnMouseout": null, + "fnClick": null, + "fnSelect": null, + "fnComplete": null, + "fnInit": null, + "fnCellRender": null +}; + + +/** + * @namespace Default button configurations + */ +TableTools.BUTTONS = { + "csv": $.extend( {}, TableTools.buttonBase, { + "sAction": "flash_save", + "sButtonClass": "DTTT_button_csv", + "sButtonText": "CSV", + "sFieldBoundary": '"', + "sFieldSeperator": ",", + "fnClick": function( nButton, oConfig, flash ) { + this.fnSetText( flash, this.fnGetTableData(oConfig) ); + } + } ), + + "xls": $.extend( {}, TableTools.buttonBase, { + "sAction": "flash_save", + "sCharSet": "utf16le", + "bBomInc": true, + "sButtonClass": "DTTT_button_xls", + "sButtonText": "Excel", + "fnClick": function( nButton, oConfig, flash ) { + this.fnSetText( flash, this.fnGetTableData(oConfig) ); + } + } ), + + "copy": $.extend( {}, TableTools.buttonBase, { + "sAction": "flash_copy", + "sButtonClass": "DTTT_button_copy", + "sButtonText": "Copy", + "fnClick": function( nButton, oConfig, flash ) { + this.fnSetText( flash, this.fnGetTableData(oConfig) ); + }, + "fnComplete": function(nButton, oConfig, flash, text) { + var + lines = text.split('\n').length, + len = this.s.dt.nTFoot === null ? lines-1 : lines-2, + plural = (len==1) ? "" : "s"; + this.fnInfo( '<h6>Table copied</h6>'+ + '<p>Copied '+len+' row'+plural+' to the clipboard.</p>', + 1500 + ); + } + } ), + + "pdf": $.extend( {}, TableTools.buttonBase, { + "sAction": "flash_pdf", + "sNewLine": "\n", + "sFileName": "*.pdf", + "sButtonClass": "DTTT_button_pdf", + "sButtonText": "PDF", + "sPdfOrientation": "portrait", + "sPdfSize": "A4", + "sPdfMessage": "", + "fnClick": function( nButton, oConfig, flash ) { + this.fnSetText( flash, + "title:"+ this.fnGetTitle(oConfig) +"\n"+ + "message:"+ oConfig.sPdfMessage +"\n"+ + "colWidth:"+ this.fnCalcColRatios(oConfig) +"\n"+ + "orientation:"+ oConfig.sPdfOrientation +"\n"+ + "size:"+ oConfig.sPdfSize +"\n"+ + "--/TableToolsOpts--\n" + + this.fnGetTableData(oConfig) + ); + } + } ), + + "print": $.extend( {}, TableTools.buttonBase, { + "sInfo": "<h6>Print view</h6><p>Please use your browser's print function to "+ + "print this table. Press escape when finished.", + "sMessage": null, + "bShowAll": true, + "sToolTip": "View print view", + "sButtonClass": "DTTT_button_print", + "sButtonText": "Print", + "fnClick": function ( nButton, oConfig ) { + this.fnPrint( true, oConfig ); + } + } ), + + "text": $.extend( {}, TableTools.buttonBase ), + + "select": $.extend( {}, TableTools.buttonBase, { + "sButtonText": "Select button", + "fnSelect": function( nButton, oConfig ) { + if ( this.fnGetSelected().length !== 0 ) { + $(nButton).removeClass( this.classes.buttons.disabled ); + } else { + $(nButton).addClass( this.classes.buttons.disabled ); + } + }, + "fnInit": function( nButton, oConfig ) { + $(nButton).addClass( this.classes.buttons.disabled ); + } + } ), + + "select_single": $.extend( {}, TableTools.buttonBase, { + "sButtonText": "Select button", + "fnSelect": function( nButton, oConfig ) { + var iSelected = this.fnGetSelected().length; + if ( iSelected == 1 ) { + $(nButton).removeClass( this.classes.buttons.disabled ); + } else { + $(nButton).addClass( this.classes.buttons.disabled ); + } + }, + "fnInit": function( nButton, oConfig ) { + $(nButton).addClass( this.classes.buttons.disabled ); + } + } ), + + "select_all": $.extend( {}, TableTools.buttonBase, { + "sButtonText": "Select all", + "fnClick": function( nButton, oConfig ) { + this.fnSelectAll(); + }, + "fnSelect": function( nButton, oConfig ) { + if ( this.fnGetSelected().length == this.s.dt.fnRecordsDisplay() ) { + $(nButton).addClass( this.classes.buttons.disabled ); + } else { + $(nButton).removeClass( this.classes.buttons.disabled ); + } + } + } ), + + "select_none": $.extend( {}, TableTools.buttonBase, { + "sButtonText": "Deselect all", + "fnClick": function( nButton, oConfig ) { + this.fnSelectNone(); + }, + "fnSelect": function( nButton, oConfig ) { + if ( this.fnGetSelected().length !== 0 ) { + $(nButton).removeClass( this.classes.buttons.disabled ); + } else { + $(nButton).addClass( this.classes.buttons.disabled ); + } + }, + "fnInit": function( nButton, oConfig ) { + $(nButton).addClass( this.classes.buttons.disabled ); + } + } ), + + "ajax": $.extend( {}, TableTools.buttonBase, { + "sAjaxUrl": "/xhr.php", + "sButtonText": "Ajax button", + "fnClick": function( nButton, oConfig ) { + var sData = this.fnGetTableData(oConfig); + $.ajax( { + "url": oConfig.sAjaxUrl, + "data": [ + { "name": "tableData", "value": sData } + ], + "success": oConfig.fnAjaxComplete, + "dataType": "json", + "type": "POST", + "cache": false, + "error": function () { + alert( "Error detected when sending table data to server" ); + } + } ); + }, + "fnAjaxComplete": function( json ) { + alert( 'Ajax complete' ); + } + } ), + + "div": $.extend( {}, TableTools.buttonBase, { + "sAction": "div", + "sTag": "div", + "sButtonClass": "DTTT_nonbutton", + "sButtonText": "Text button" + } ), + + "collection": $.extend( {}, TableTools.buttonBase, { + "sAction": "collection", + "sButtonClass": "DTTT_button_collection", + "sButtonText": "Collection", + "fnClick": function( nButton, oConfig ) { + this._fnCollectionShow(nButton, oConfig); + } + } ) +}; +/* + * on* callback parameters: + * 1. node - button element + * 2. object - configuration object for this button + * 3. object - ZeroClipboard reference (flash button only) + * 4. string - Returned string from Flash (flash button only - and only on 'complete') + */ + + + +/** + * @namespace Classes used by TableTools - allows the styles to be override easily. + * Note that when TableTools initialises it will take a copy of the classes object + * and will use its internal copy for the remainder of its run time. + */ +TableTools.classes = { + "container": "DTTT_container", + "buttons": { + "normal": "DTTT_button", + "disabled": "DTTT_disabled" + }, + "collection": { + "container": "DTTT_collection", + "background": "DTTT_collection_background", + "buttons": { + "normal": "DTTT_button", + "disabled": "DTTT_disabled" + } + }, + "select": { + "table": "DTTT_selectable", + "row": "DTTT_selected" + }, + "print": { + "body": "DTTT_Print", + "info": "DTTT_print_info", + "message": "DTTT_PrintMessage" + } +}; + + +/** + * @namespace ThemeRoller classes - built in for compatibility with DataTables' + * bJQueryUI option. + */ +TableTools.classes_themeroller = { + "container": "DTTT_container ui-buttonset ui-buttonset-multi", + "buttons": { + "normal": "DTTT_button ui-button ui-state-default" + }, + "collection": { + "container": "DTTT_collection ui-buttonset ui-buttonset-multi" + } +}; + + +/** + * @namespace TableTools default settings for initialisation + */ +TableTools.DEFAULTS = { + "sSwfPath": "media/swf/copy_csv_xls_pdf.swf", + "sRowSelect": "none", + "sSelectedClass": null, + "fnPreRowSelect": null, + "fnRowSelected": null, + "fnRowDeselected": null, + "aButtons": [ "copy", "csv", "xls", "pdf", "print" ], + "oTags": { + "container": "div", + "button": "a", // We really want to use buttons here, but Firefox and IE ignore the + // click on the Flash element in the button (but not mouse[in|out]). + "liner": "span", + "collection": { + "container": "div", + "button": "a", + "liner": "span" + } + } +}; + + +/** + * Name of this class + * @constant CLASS + * @type String + * @default TableTools + */ +TableTools.prototype.CLASS = "TableTools"; + + +/** + * TableTools version + * @constant VERSION + * @type String + * @default See code + */ +TableTools.VERSION = "2.1.5"; +TableTools.prototype.VERSION = TableTools.VERSION; + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Initialisation + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Register a new feature with DataTables + */ +if ( typeof $.fn.dataTable == "function" && + typeof $.fn.dataTableExt.fnVersionCheck == "function" && + $.fn.dataTableExt.fnVersionCheck('1.9.0') ) +{ + $.fn.dataTableExt.aoFeatures.push( { + "fnInit": function( oDTSettings ) { + var oOpts = typeof oDTSettings.oInit.oTableTools != 'undefined' ? + oDTSettings.oInit.oTableTools : {}; + + var oTT = new TableTools( oDTSettings.oInstance, oOpts ); + TableTools._aInstances.push( oTT ); + + return oTT.dom.container; + }, + "cFeature": "T", + "sFeature": "TableTools" + } ); +} +else +{ + alert( "Warning: TableTools 2 requires DataTables 1.9.0 or newer - www.datatables.net/download"); +} + +$.fn.DataTable.TableTools = TableTools; + +})(jQuery, window, document); diff --git a/theme/js/dataTable/js/TableTools.min.js b/theme/js/dataTable/js/TableTools.min.js new file mode 100644 index 0000000..e580c99 --- /dev/null +++ b/theme/js/dataTable/js/TableTools.min.js @@ -0,0 +1,77 @@ +// Simple Set Clipboard System +// Author: Joseph Huckaby +var ZeroClipboard_TableTools={version:"1.0.4-TableTools2",clients:{},moviePath:"",nextId:1,$:function(a){"string"==typeof a&&(a=document.getElementById(a));a.addClass||(a.hide=function(){this.style.display="none"},a.show=function(){this.style.display=""},a.addClass=function(a){this.removeClass(a);this.className+=" "+a},a.removeClass=function(a){this.className=this.className.replace(RegExp("\\s*"+a+"\\s*")," ").replace(/^\s+/,"").replace(/\s+$/,"")},a.hasClass=function(a){return!!this.className.match(RegExp("\\s*"+ +a+"\\s*"))});return a},setMoviePath:function(a){this.moviePath=a},dispatch:function(a,b,c){(a=this.clients[a])&&a.receiveEvent(b,c)},register:function(a,b){this.clients[a]=b},getDOMObjectPosition:function(a){var b={left:0,top:0,width:a.width?a.width:a.offsetWidth,height:a.height?a.height:a.offsetHeight};""!=a.style.width&&(b.width=a.style.width.replace("px",""));""!=a.style.height&&(b.height=a.style.height.replace("px",""));for(;a;)b.left+=a.offsetLeft,b.top+=a.offsetTop,a=a.offsetParent;return b}, +Client:function(a){this.handlers={};this.id=ZeroClipboard_TableTools.nextId++;this.movieId="ZeroClipboard_TableToolsMovie_"+this.id;ZeroClipboard_TableTools.register(this.id,this);a&&this.glue(a)}}; +ZeroClipboard_TableTools.Client.prototype={id:0,ready:!1,movie:null,clipText:"",fileName:"",action:"copy",handCursorEnabled:!0,cssEffects:!0,handlers:null,sized:!1,glue:function(a,b){this.domElement=ZeroClipboard_TableTools.$(a);var c=99;this.domElement.style.zIndex&&(c=parseInt(this.domElement.style.zIndex)+1);var d=ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement);this.div=document.createElement("div");var e=this.div.style;e.position="absolute";e.left="0px";e.top="0px";e.width=d.width+ +"px";e.height=d.height+"px";e.zIndex=c;"undefined"!=typeof b&&""!=b&&(this.div.title=b);0!=d.width&&0!=d.height&&(this.sized=!0);this.domElement&&(this.domElement.appendChild(this.div),this.div.innerHTML=this.getHTML(d.width,d.height))},positionElement:function(){var a=ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement),b=this.div.style;b.position="absolute";b.width=a.width+"px";b.height=a.height+"px";0!=a.width&&0!=a.height&&(this.sized=!0,b=this.div.childNodes[0],b.width=a.width,b.height= +a.height)},getHTML:function(a,b){var c="",d="id="+this.id+"&width="+a+"&height="+b;if(navigator.userAgent.match(/MSIE/))var e=location.href.match(/^https/i)?"https://":"http://",c=c+('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+e+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="'+a+'" height="'+b+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+ +ZeroClipboard_TableTools.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+d+'"/><param name="wmode" value="transparent"/></object>');else c+='<embed id="'+this.movieId+'" src="'+ZeroClipboard_TableTools.moviePath+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+a+'" height="'+b+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+ +d+'" wmode="transparent" />';return c},hide:function(){this.div&&(this.div.style.left="-2000px")},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var a=document.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.div=this.domElement=null}},reposition:function(a){a&&((this.domElement=ZeroClipboard_TableTools.$(a))||this.hide());if(this.domElement&&this.div){var a=ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement), +b=this.div.style;b.left=""+a.left+"px";b.top=""+a.top+"px"}},clearText:function(){this.clipText="";this.ready&&this.movie.clearText()},appendText:function(a){this.clipText+=a;this.ready&&this.movie.appendText(a)},setText:function(a){this.clipText=a;this.ready&&this.movie.setText(a)},setCharSet:function(a){this.charSet=a;this.ready&&this.movie.setCharSet(a)},setBomInc:function(a){this.incBom=a;this.ready&&this.movie.setBomInc(a)},setFileName:function(a){this.fileName=a;this.ready&&this.movie.setFileName(a)}, +setAction:function(a){this.action=a;this.ready&&this.movie.setAction(a)},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");this.handlers[a]||(this.handlers[a]=[]);this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a;this.ready&&this.movie.setHandCursor(a)},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");switch(a){case "load":this.movie=document.getElementById(this.movieId); +if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=!0;return}this.ready=!0;this.movie.clearText();this.movie.appendText(this.clipText);this.movie.setFileName(this.fileName);this.movie.setAction(this.action);this.movie.setCharSet(this.charSet);this.movie.setBomInc(this.incBom);this.movie.setHandCursor(this.handCursorEnabled); +break;case "mouseover":this.domElement&&this.cssEffects&&this.recoverActive&&this.domElement.addClass("active");break;case "mouseout":this.domElement&&this.cssEffects&&(this.recoverActive=!1,this.domElement.hasClass("active")&&(this.domElement.removeClass("active"),this.recoverActive=!0));break;case "mousedown":this.domElement&&this.cssEffects&&this.domElement.addClass("active");break;case "mouseup":this.domElement&&this.cssEffects&&(this.domElement.removeClass("active"),this.recoverActive=!1)}if(this.handlers[a])for(var d= +0,e=this.handlers[a].length;d<e;d++){var f=this.handlers[a][d];if("function"==typeof f)f(this,b);else if("object"==typeof f&&2==f.length)f[0][f[1]](this,b);else if("string"==typeof f)window[f](this,b)}}}; + + +/* + * File: TableTools.min.js + * Version: 2.1.5 + * Author: Allan Jardine (www.sprymedia.co.uk) + * + * Copyright 2009-2012 Allan Jardine, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD (3 point) style license, as supplied with this software. + * + * This source file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. + */ +var TableTools; +(function(e,n,g){TableTools=function(a,b){!this instanceof TableTools&&alert("Warning: TableTools must be initialised with the keyword 'new'");this.s={that:this,dt:a.fnSettings(),print:{saveStart:-1,saveLength:-1,saveScroll:-1,funcEnd:function(){}},buttonCounter:0,select:{type:"",selected:[],preRowSelect:null,postSelected:null,postDeselected:null,all:!1,selectedClass:""},custom:{},swfPath:"",buttonSet:[],master:!1,tags:{}};this.dom={container:null,table:null,print:{hidden:[],message:null},collection:{collection:null, +background:null}};this.classes=e.extend(!0,{},TableTools.classes);this.s.dt.bJUI&&e.extend(!0,this.classes,TableTools.classes_themeroller);this.fnSettings=function(){return this.s};"undefined"==typeof b&&(b={});this._fnConstruct(b);return this};TableTools.prototype={fnGetSelected:function(a){var b=[],c=this.s.dt.aoData,d=this.s.dt.aiDisplay,f;if(a){a=0;for(f=d.length;a<f;a++)c[d[a]]._DTTT_selected&&b.push(c[d[a]].nTr)}else{a=0;for(f=c.length;a<f;a++)c[a]._DTTT_selected&&b.push(c[a].nTr)}return b}, +fnGetSelectedData:function(){var a=[],b=this.s.dt.aoData,c,d;c=0;for(d=b.length;c<d;c++)b[c]._DTTT_selected&&a.push(this.s.dt.oInstance.fnGetData(c));return a},fnIsSelected:function(a){a=this.s.dt.oInstance.fnGetPosition(a);return!0===this.s.dt.aoData[a]._DTTT_selected?!0:!1},fnSelectAll:function(a){var b=this._fnGetMasterSettings();this._fnRowSelect(!0===a?b.dt.aiDisplay:b.dt.aoData)},fnSelectNone:function(a){this._fnGetMasterSettings();this._fnRowDeselect(this.fnGetSelected(a))},fnSelect:function(a){"single"== +this.s.select.type?(this.fnSelectNone(),this._fnRowSelect(a)):"multi"==this.s.select.type&&this._fnRowSelect(a)},fnDeselect:function(a){this._fnRowDeselect(a)},fnGetTitle:function(a){var b="";"undefined"!=typeof a.sTitle&&""!==a.sTitle?b=a.sTitle:(a=g.getElementsByTagName("title"),0<a.length&&(b=a[0].innerHTML));return 4>"\u00a1".toString().length?b.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g,""):b.replace(/[^a-zA-Z0-9_\.,\-_ !\(\)]/g,"")},fnCalcColRatios:function(a){var b=this.s.dt.aoColumns, +a=this._fnColumnTargets(a.mColumns),c=[],d=0,f=0,e,g;e=0;for(g=a.length;e<g;e++)a[e]&&(d=b[e].nTh.offsetWidth,f+=d,c.push(d));e=0;for(g=c.length;e<g;e++)c[e]/=f;return c.join("\t")},fnGetTableData:function(a){if(this.s.dt)return this._fnGetDataTablesData(a)},fnSetText:function(a,b){this._fnFlashSetText(a,b)},fnResizeButtons:function(){for(var a in ZeroClipboard_TableTools.clients)if(a){var b=ZeroClipboard_TableTools.clients[a];"undefined"!=typeof b.domElement&&b.domElement.parentNode&&b.positionElement()}}, +fnResizeRequired:function(){for(var a in ZeroClipboard_TableTools.clients)if(a){var b=ZeroClipboard_TableTools.clients[a];if("undefined"!=typeof b.domElement&&b.domElement.parentNode==this.dom.container&&!1===b.sized)return!0}return!1},fnPrint:function(a,b){void 0===b&&(b={});void 0===a||a?this._fnPrintStart(b):this._fnPrintEnd()},fnInfo:function(a,b){var c=g.createElement("div");c.className=this.classes.print.info;c.innerHTML=a;g.body.appendChild(c);setTimeout(function(){e(c).fadeOut("normal",function(){g.body.removeChild(c)})}, +b)},_fnConstruct:function(a){var b=this;this._fnCustomiseSettings(a);this.dom.container=g.createElement(this.s.tags.container);this.dom.container.className=this.classes.container;"none"!=this.s.select.type&&this._fnRowSelectConfig();this._fnButtonDefinations(this.s.buttonSet,this.dom.container);this.s.dt.aoDestroyCallback.push({sName:"TableTools",fn:function(){e(b.s.dt.nTBody).off("click.DTTT_Select","tr");e(b.dom.container).empty()}})},_fnCustomiseSettings:function(a){"undefined"==typeof this.s.dt._TableToolsInit&& +(this.s.master=!0,this.s.dt._TableToolsInit=!0);this.dom.table=this.s.dt.nTable;this.s.custom=e.extend({},TableTools.DEFAULTS,a);this.s.swfPath=this.s.custom.sSwfPath;"undefined"!=typeof ZeroClipboard_TableTools&&(ZeroClipboard_TableTools.moviePath=this.s.swfPath);this.s.select.type=this.s.custom.sRowSelect;this.s.select.preRowSelect=this.s.custom.fnPreRowSelect;this.s.select.postSelected=this.s.custom.fnRowSelected;this.s.select.postDeselected=this.s.custom.fnRowDeselected;this.s.custom.sSelectedClass&& +(this.classes.select.row=this.s.custom.sSelectedClass);this.s.tags=this.s.custom.oTags;this.s.buttonSet=this.s.custom.aButtons},_fnButtonDefinations:function(a,b){for(var c,d=0,f=a.length;d<f;d++){if("string"==typeof a[d]){if("undefined"==typeof TableTools.BUTTONS[a[d]]){alert("TableTools: Warning - unknown button type: "+a[d]);continue}c=e.extend({},TableTools.BUTTONS[a[d]],!0)}else{if("undefined"==typeof TableTools.BUTTONS[a[d].sExtends]){alert("TableTools: Warning - unknown button type: "+a[d].sExtends); +continue}c=e.extend({},TableTools.BUTTONS[a[d].sExtends],!0);c=e.extend(c,a[d],!0)}b.appendChild(this._fnCreateButton(c,e(b).hasClass(this.classes.collection.container)))}},_fnCreateButton:function(a,b){var c=this._fnButtonBase(a,b);a.sAction.match(/flash/)?this._fnFlashConfig(c,a):"text"==a.sAction?this._fnTextConfig(c,a):"div"==a.sAction?this._fnTextConfig(c,a):"collection"==a.sAction&&(this._fnTextConfig(c,a),this._fnCollectionConfig(c,a));return c},_fnButtonBase:function(a,b){var c,d,f;b?(c="default"!== +a.sTag?a.sTag:this.s.tags.collection.button,d="default"!==a.sLinerTag?a.sLiner:this.s.tags.collection.liner,f=this.classes.collection.buttons.normal):(c="default"!==a.sTag?a.sTag:this.s.tags.button,d="default"!==a.sLinerTag?a.sLiner:this.s.tags.liner,f=this.classes.buttons.normal);c=g.createElement(c);d=g.createElement(d);var e=this._fnGetMasterSettings();c.className=f+" "+a.sButtonClass;c.setAttribute("id","ToolTables_"+this.s.dt.sInstance+"_"+e.buttonCounter);c.appendChild(d);d.innerHTML=a.sButtonText; +e.buttonCounter++;return c},_fnGetMasterSettings:function(){if(this.s.master)return this.s;for(var a=TableTools._aInstances,b=0,c=a.length;b<c;b++)if(this.dom.table==a[b].s.dt.nTable)return a[b].s},_fnCollectionConfig:function(a,b){var c=g.createElement(this.s.tags.collection.container);c.style.display="none";c.className=this.classes.collection.container;b._collection=c;g.body.appendChild(c);this._fnButtonDefinations(b.aButtons,c)},_fnCollectionShow:function(a,b){var c=this,d=e(a).offset(),f=b._collection, +j=d.left,d=d.top+e(a).outerHeight(),m=e(n).height(),h=e(g).height(),k=e(n).width(),o=e(g).width();f.style.position="absolute";f.style.left=j+"px";f.style.top=d+"px";f.style.display="block";e(f).css("opacity",0);var l=g.createElement("div");l.style.position="absolute";l.style.left="0px";l.style.top="0px";l.style.height=(m>h?m:h)+"px";l.style.width=(k>o?k:o)+"px";l.className=this.classes.collection.background;e(l).css("opacity",0);g.body.appendChild(l);g.body.appendChild(f);m=e(f).outerWidth();k=e(f).outerHeight(); +j+m>o&&(f.style.left=o-m+"px");d+k>h&&(f.style.top=d-k-e(a).outerHeight()+"px");this.dom.collection.collection=f;this.dom.collection.background=l;setTimeout(function(){e(f).animate({opacity:1},500);e(l).animate({opacity:0.25},500)},10);this.fnResizeButtons();e(l).click(function(){c._fnCollectionHide.call(c,null,null)})},_fnCollectionHide:function(a,b){!(null!==b&&"collection"==b.sExtends)&&null!==this.dom.collection.collection&&(e(this.dom.collection.collection).animate({opacity:0},500,function(){this.style.display= +"none"}),e(this.dom.collection.background).animate({opacity:0},500,function(){this.parentNode.removeChild(this)}),this.dom.collection.collection=null,this.dom.collection.background=null)},_fnRowSelectConfig:function(){if(this.s.master){var a=this,b=this.s.dt;e(b.nTable).addClass(this.classes.select.table);e(b.nTBody).on("click.DTTT_Select","tr",function(c){this.parentNode==b.nTBody&&null!==b.oInstance.fnGetData(this)&&(a.fnIsSelected(this)?a._fnRowDeselect(this,c):"single"==a.s.select.type?(a.fnSelectNone(), +a._fnRowSelect(this,c)):"multi"==a.s.select.type&&a._fnRowSelect(this,c))});b.oApi._fnCallbackReg(b,"aoRowCreatedCallback",function(c,d,f){b.aoData[f]._DTTT_selected&&e(c).addClass(a.classes.select.row)},"TableTools-SelectAll")}},_fnRowSelect:function(a,b){var c=this._fnSelectData(a),d=[],f,j;f=0;for(j=c.length;f<j;f++)c[f].nTr&&d.push(c[f].nTr);if(null===this.s.select.preRowSelect||this.s.select.preRowSelect.call(this,b,d,!0)){f=0;for(j=c.length;f<j;f++)c[f]._DTTT_selected=!0,c[f].nTr&&e(c[f].nTr).addClass(this.classes.select.row); +null!==this.s.select.postSelected&&this.s.select.postSelected.call(this,d);TableTools._fnEventDispatch(this,"select",d,!0)}},_fnRowDeselect:function(a,b){var c=this._fnSelectData(a),d=[],f,j;f=0;for(j=c.length;f<j;f++)c[f].nTr&&d.push(c[f].nTr);if(null===this.s.select.preRowSelect||this.s.select.preRowSelect.call(this,b,d,!1)){f=0;for(j=c.length;f<j;f++)c[f]._DTTT_selected=!1,c[f].nTr&&e(c[f].nTr).removeClass(this.classes.select.row);null!==this.s.select.postDeselected&&this.s.select.postDeselected.call(this, +d);TableTools._fnEventDispatch(this,"select",d,!1)}},_fnSelectData:function(a){var b=[],c,d,f;if(a.nodeName)c=this.s.dt.oInstance.fnGetPosition(a),b.push(this.s.dt.aoData[c]);else if("undefined"!==typeof a.length){d=0;for(f=a.length;d<f;d++)a[d].nodeName?(c=this.s.dt.oInstance.fnGetPosition(a[d]),b.push(this.s.dt.aoData[c])):"number"===typeof a[d]?b.push(this.s.dt.aoData[a[d]]):b.push(a[d])}else b.push(a);return b},_fnTextConfig:function(a,b){var c=this;null!==b.fnInit&&b.fnInit.call(this,a,b);""!== +b.sToolTip&&(a.title=b.sToolTip);e(a).hover(function(){b.fnMouseover!==null&&b.fnMouseover.call(this,a,b,null)},function(){b.fnMouseout!==null&&b.fnMouseout.call(this,a,b,null)});null!==b.fnSelect&&TableTools._fnEventListen(this,"select",function(d){b.fnSelect.call(c,a,b,d)});e(a).click(function(d){b.fnClick!==null&&b.fnClick.call(c,a,b,null,d);b.fnComplete!==null&&b.fnComplete.call(c,a,b,null,null);c._fnCollectionHide(a,b)})},_fnFlashConfig:function(a,b){var c=this,d=new ZeroClipboard_TableTools.Client; +null!==b.fnInit&&b.fnInit.call(this,a,b);d.setHandCursor(!0);"flash_save"==b.sAction?(d.setAction("save"),d.setCharSet("utf16le"==b.sCharSet?"UTF16LE":"UTF8"),d.setBomInc(b.bBomInc),d.setFileName(b.sFileName.replace("*",this.fnGetTitle(b)))):"flash_pdf"==b.sAction?(d.setAction("pdf"),d.setFileName(b.sFileName.replace("*",this.fnGetTitle(b)))):d.setAction("copy");d.addEventListener("mouseOver",function(){b.fnMouseover!==null&&b.fnMouseover.call(c,a,b,d)});d.addEventListener("mouseOut",function(){b.fnMouseout!== +null&&b.fnMouseout.call(c,a,b,d)});d.addEventListener("mouseDown",function(){b.fnClick!==null&&b.fnClick.call(c,a,b,d)});d.addEventListener("complete",function(f,e){b.fnComplete!==null&&b.fnComplete.call(c,a,b,d,e);c._fnCollectionHide(a,b)});this._fnFlashGlue(d,a,b.sToolTip)},_fnFlashGlue:function(a,b,c){var d=this,f=b.getAttribute("id");g.getElementById(f)?a.glue(b,c):setTimeout(function(){d._fnFlashGlue(a,b,c)},100)},_fnFlashSetText:function(a,b){var c=this._fnChunkData(b,8192);a.clearText();for(var d= +0,f=c.length;d<f;d++)a.appendText(c[d])},_fnColumnTargets:function(a){var b=[],c=this.s.dt;if("object"==typeof a){i=0;for(iLen=c.aoColumns.length;i<iLen;i++)b.push(!1);i=0;for(iLen=a.length;i<iLen;i++)b[a[i]]=!0}else if("visible"==a){i=0;for(iLen=c.aoColumns.length;i<iLen;i++)b.push(c.aoColumns[i].bVisible?!0:!1)}else if("hidden"==a){i=0;for(iLen=c.aoColumns.length;i<iLen;i++)b.push(c.aoColumns[i].bVisible?!1:!0)}else if("sortable"==a){i=0;for(iLen=c.aoColumns.length;i<iLen;i++)b.push(c.aoColumns[i].bSortable? +!0:!1)}else{i=0;for(iLen=c.aoColumns.length;i<iLen;i++)b.push(!0)}return b},_fnNewline:function(a){return"auto"==a.sNewLine?navigator.userAgent.match(/Windows/)?"\r\n":"\n":a.sNewLine},_fnGetDataTablesData:function(a){var b,c,d,f,j,g=[],h="",k=this.s.dt,o,l=RegExp(a.sFieldBoundary,"g"),n=this._fnColumnTargets(a.mColumns);d="undefined"!=typeof a.bSelectedOnly?a.bSelectedOnly:!1;if(a.bHeader){j=[];b=0;for(c=k.aoColumns.length;b<c;b++)n[b]&&(h=k.aoColumns[b].sTitle.replace(/\n/g," ").replace(/<.*?>/g, +"").replace(/^\s+|\s+$/g,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));g.push(j.join(a.sFieldSeperator))}var p=k.aiDisplay;f=this.fnGetSelected();if("none"!==this.s.select.type&&d&&0!==f.length){p=[];b=0;for(c=f.length;b<c;b++)p.push(k.oInstance.fnGetPosition(f[b]))}d=0;for(f=p.length;d<f;d++){o=k.aoData[p[d]].nTr;j=[];b=0;for(c=k.aoColumns.length;b<c;b++)n[b]&&(h=k.oApi._fnGetCellData(k,p[d],b,"display"),a.fnCellRender?h=a.fnCellRender(h,b,o,p[d])+"":"string"==typeof h? +(h=h.replace(/\n/g," "),h=h.replace(/<img.*?\s+alt\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+)).*?>/gi,"$1$2$3"),h=h.replace(/<.*?>/g,"")):h+="",h=h.replace(/^\s+/,"").replace(/\s+$/,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));g.push(j.join(a.sFieldSeperator));a.bOpenRows&&(b=e.grep(k.aoOpenRows,function(a){return a.nParent===o}),1===b.length&&(h=this._fnBoundData(e("td",b[0].nTr).html(),a.sFieldBoundary,l),g.push(h)))}if(a.bFooter&&null!==k.nTFoot){j=[];b=0;for(c=k.aoColumns.length;b< +c;b++)n[b]&&null!==k.aoColumns[b].nTf&&(h=k.aoColumns[b].nTf.innerHTML.replace(/\n/g," ").replace(/<.*?>/g,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));g.push(j.join(a.sFieldSeperator))}return _sLastData=g.join(this._fnNewline(a))},_fnBoundData:function(a,b,c){return""===b?a:b+a.replace(c,b+b)+b},_fnChunkData:function(a,b){for(var c=[],d=a.length,f=0;f<d;f+=b)f+b<d?c.push(a.substring(f,f+b)):c.push(a.substring(f,d));return c},_fnHtmlDecode:function(a){if(-1===a.indexOf("&"))return a; +var b=g.createElement("div");return a.replace(/&([^\s]*);/g,function(a,d){if("#"===a.substr(1,1))return String.fromCharCode(Number(d.substr(1)));b.innerHTML=a;return b.childNodes[0].nodeValue})},_fnPrintStart:function(a){var b=this,c=this.s.dt;this._fnPrintHideNodes(c.nTable);this.s.print.saveStart=c._iDisplayStart;this.s.print.saveLength=c._iDisplayLength;a.bShowAll&&(c._iDisplayStart=0,c._iDisplayLength=-1,c.oApi._fnCalculateEnd(c),c.oApi._fnDraw(c));if(""!==c.oScroll.sX||""!==c.oScroll.sY)this._fnPrintScrollStart(c), +e(this.s.dt.nTable).bind("draw.DTTT_Print",function(){b._fnPrintScrollStart(c)});var d=c.aanFeatures,f;for(f in d)if("i"!=f&&"t"!=f&&1==f.length)for(var j=0,m=d[f].length;j<m;j++)this.dom.print.hidden.push({node:d[f][j],display:"block"}),d[f][j].style.display="none";e(g.body).addClass(this.classes.print.body);""!==a.sInfo&&this.fnInfo(a.sInfo,3E3);a.sMessage&&(this.dom.print.message=g.createElement("div"),this.dom.print.message.className=this.classes.print.message,this.dom.print.message.innerHTML= +a.sMessage,g.body.insertBefore(this.dom.print.message,g.body.childNodes[0]));this.s.print.saveScroll=e(n).scrollTop();n.scrollTo(0,0);e(g).bind("keydown.DTTT",function(a){if(a.keyCode==27){a.preventDefault();b._fnPrintEnd.call(b,a)}})},_fnPrintEnd:function(){var a=this.s.dt,b=this.s.print,c=this.dom.print;this._fnPrintShowNodes();if(""!==a.oScroll.sX||""!==a.oScroll.sY)e(this.s.dt.nTable).unbind("draw.DTTT_Print"),this._fnPrintScrollEnd();n.scrollTo(0,b.saveScroll);null!==c.message&&(g.body.removeChild(c.message), +c.message=null);e(g.body).removeClass("DTTT_Print");a._iDisplayStart=b.saveStart;a._iDisplayLength=b.saveLength;a.oApi._fnCalculateEnd(a);a.oApi._fnDraw(a);e(g).unbind("keydown.DTTT")},_fnPrintScrollStart:function(){var a=this.s.dt;a.nScrollHead.getElementsByTagName("div")[0].getElementsByTagName("table");var b=a.nTable.parentNode,c=a.nTable.getElementsByTagName("thead");0<c.length&&a.nTable.removeChild(c[0]);null!==a.nTFoot&&(c=a.nTable.getElementsByTagName("tfoot"),0<c.length&&a.nTable.removeChild(c[0])); +c=a.nTHead.cloneNode(!0);a.nTable.insertBefore(c,a.nTable.childNodes[0]);null!==a.nTFoot&&(c=a.nTFoot.cloneNode(!0),a.nTable.insertBefore(c,a.nTable.childNodes[1]));""!==a.oScroll.sX&&(a.nTable.style.width=e(a.nTable).outerWidth()+"px",b.style.width=e(a.nTable).outerWidth()+"px",b.style.overflow="visible");""!==a.oScroll.sY&&(b.style.height=e(a.nTable).outerHeight()+"px",b.style.overflow="visible")},_fnPrintScrollEnd:function(){var a=this.s.dt,b=a.nTable.parentNode;""!==a.oScroll.sX&&(b.style.width= +a.oApi._fnStringToCss(a.oScroll.sX),b.style.overflow="auto");""!==a.oScroll.sY&&(b.style.height=a.oApi._fnStringToCss(a.oScroll.sY),b.style.overflow="auto")},_fnPrintShowNodes:function(){for(var a=this.dom.print.hidden,b=0,c=a.length;b<c;b++)a[b].node.style.display=a[b].display;a.splice(0,a.length)},_fnPrintHideNodes:function(a){for(var b=this.dom.print.hidden,c=a.parentNode,d=c.childNodes,f=0,g=d.length;f<g;f++)if(d[f]!=a&&1==d[f].nodeType){var m=e(d[f]).css("display");"none"!=m&&(b.push({node:d[f], +display:m}),d[f].style.display="none")}"BODY"!=c.nodeName&&this._fnPrintHideNodes(c)}};TableTools._aInstances=[];TableTools._aListeners=[];TableTools.fnGetMasters=function(){for(var a=[],b=0,c=TableTools._aInstances.length;b<c;b++)TableTools._aInstances[b].s.master&&a.push(TableTools._aInstances[b]);return a};TableTools.fnGetInstance=function(a){"object"!=typeof a&&(a=g.getElementById(a));for(var b=0,c=TableTools._aInstances.length;b<c;b++)if(TableTools._aInstances[b].s.master&&TableTools._aInstances[b].dom.table== +a)return TableTools._aInstances[b];return null};TableTools._fnEventListen=function(a,b,c){TableTools._aListeners.push({that:a,type:b,fn:c})};TableTools._fnEventDispatch=function(a,b,c,d){for(var f=TableTools._aListeners,e=0,g=f.length;e<g;e++)a.dom.table==f[e].that.dom.table&&f[e].type==b&&f[e].fn(c,d)};TableTools.buttonBase={sAction:"text",sTag:"default",sLinerTag:"default",sButtonClass:"DTTT_button_text",sButtonText:"Button text",sTitle:"",sToolTip:"",sCharSet:"utf8",bBomInc:!1,sFileName:"*.csv", +sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"auto",mColumns:"all",bHeader:!0,bFooter:!0,bOpenRows:!1,bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null};TableTools.BUTTONS={csv:e.extend({},TableTools.buttonBase,{sAction:"flash_save",sButtonClass:"DTTT_button_csv",sButtonText:"CSV",sFieldBoundary:'"',sFieldSeperator:",",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))}}),xls:e.extend({},TableTools.buttonBase, +{sAction:"flash_save",sCharSet:"utf16le",bBomInc:!0,sButtonClass:"DTTT_button_xls",sButtonText:"Excel",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))}}),copy:e.extend({},TableTools.buttonBase,{sAction:"flash_copy",sButtonClass:"DTTT_button_copy",sButtonText:"Copy",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))},fnComplete:function(a,b,c,d){a=d.split("\n").length;a=null===this.s.dt.nTFoot?a-1:a-2;this.fnInfo("<h6>Table copied</h6><p>Copied "+a+" row"+(1==a?"":"s")+ +" to the clipboard.</p>",1500)}}),pdf:e.extend({},TableTools.buttonBase,{sAction:"flash_pdf",sNewLine:"\n",sFileName:"*.pdf",sButtonClass:"DTTT_button_pdf",sButtonText:"PDF",sPdfOrientation:"portrait",sPdfSize:"A4",sPdfMessage:"",fnClick:function(a,b,c){this.fnSetText(c,"title:"+this.fnGetTitle(b)+"\nmessage:"+b.sPdfMessage+"\ncolWidth:"+this.fnCalcColRatios(b)+"\norientation:"+b.sPdfOrientation+"\nsize:"+b.sPdfSize+"\n--/TableToolsOpts--\n"+this.fnGetTableData(b))}}),print:e.extend({},TableTools.buttonBase, +{sInfo:"<h6>Print view</h6><p>Please use your browser's print function to print this table. Press escape when finished.",sMessage:null,bShowAll:!0,sToolTip:"View print view",sButtonClass:"DTTT_button_print",sButtonText:"Print",fnClick:function(a,b){this.fnPrint(!0,b)}}),text:e.extend({},TableTools.buttonBase),select:e.extend({},TableTools.buttonBase,{sButtonText:"Select button",fnSelect:function(a){0!==this.fnGetSelected().length?e(a).removeClass(this.classes.buttons.disabled):e(a).addClass(this.classes.buttons.disabled)}, +fnInit:function(a){e(a).addClass(this.classes.buttons.disabled)}}),select_single:e.extend({},TableTools.buttonBase,{sButtonText:"Select button",fnSelect:function(a){1==this.fnGetSelected().length?e(a).removeClass(this.classes.buttons.disabled):e(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){e(a).addClass(this.classes.buttons.disabled)}}),select_all:e.extend({},TableTools.buttonBase,{sButtonText:"Select all",fnClick:function(){this.fnSelectAll()},fnSelect:function(a){this.fnGetSelected().length== +this.s.dt.fnRecordsDisplay()?e(a).addClass(this.classes.buttons.disabled):e(a).removeClass(this.classes.buttons.disabled)}}),select_none:e.extend({},TableTools.buttonBase,{sButtonText:"Deselect all",fnClick:function(){this.fnSelectNone()},fnSelect:function(a){0!==this.fnGetSelected().length?e(a).removeClass(this.classes.buttons.disabled):e(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){e(a).addClass(this.classes.buttons.disabled)}}),ajax:e.extend({},TableTools.buttonBase,{sAjaxUrl:"/xhr.php", +sButtonText:"Ajax button",fnClick:function(a,b){var c=this.fnGetTableData(b);e.ajax({url:b.sAjaxUrl,data:[{name:"tableData",value:c}],success:b.fnAjaxComplete,dataType:"json",type:"POST",cache:!1,error:function(){alert("Error detected when sending table data to server")}})},fnAjaxComplete:function(){alert("Ajax complete")}}),div:e.extend({},TableTools.buttonBase,{sAction:"div",sTag:"div",sButtonClass:"DTTT_nonbutton",sButtonText:"Text button"}),collection:e.extend({},TableTools.buttonBase,{sAction:"collection", +sButtonClass:"DTTT_button_collection",sButtonText:"Collection",fnClick:function(a,b){this._fnCollectionShow(a,b)}})};TableTools.classes={container:"DTTT_container",buttons:{normal:"DTTT_button",disabled:"DTTT_disabled"},collection:{container:"DTTT_collection",background:"DTTT_collection_background",buttons:{normal:"DTTT_button",disabled:"DTTT_disabled"}},select:{table:"DTTT_selectable",row:"DTTT_selected"},print:{body:"DTTT_Print",info:"DTTT_print_info",message:"DTTT_PrintMessage"}};TableTools.classes_themeroller= +{container:"DTTT_container ui-buttonset ui-buttonset-multi",buttons:{normal:"DTTT_button ui-button ui-state-default"},collection:{container:"DTTT_collection ui-buttonset ui-buttonset-multi"}};TableTools.DEFAULTS={sSwfPath:"media/swf/copy_csv_xls_pdf.swf",sRowSelect:"none",sSelectedClass:null,fnPreRowSelect:null,fnRowSelected:null,fnRowDeselected:null,aButtons:["copy","csv","xls","pdf","print"],oTags:{container:"div",button:"a",liner:"span",collection:{container:"div",button:"a",liner:"span"}}};TableTools.prototype.CLASS= +"TableTools";TableTools.VERSION="2.1.5";TableTools.prototype.VERSION=TableTools.VERSION;"function"==typeof e.fn.dataTable&&"function"==typeof e.fn.dataTableExt.fnVersionCheck&&e.fn.dataTableExt.fnVersionCheck("1.9.0")?e.fn.dataTableExt.aoFeatures.push({fnInit:function(a){a=new TableTools(a.oInstance,"undefined"!=typeof a.oInit.oTableTools?a.oInit.oTableTools:{});TableTools._aInstances.push(a);return a.dom.container},cFeature:"T",sFeature:"TableTools"}):alert("Warning: TableTools 2 requires DataTables 1.9.0 or newer - www.datatables.net/download"); +e.fn.DataTable.TableTools=TableTools})(jQuery,window,document); diff --git a/theme/js/dataTable/js/TableTools.min.js.gz b/theme/js/dataTable/js/TableTools.min.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..01ce7c041bcdb1df5cec281dd4dc639362beda8d GIT binary patch literal 8785 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 HrE>rP(}xkf literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/js/ZeroClipboard.js b/theme/js/dataTable/js/ZeroClipboard.js new file mode 100755 index 0000000..de0f6b6 --- /dev/null +++ b/theme/js/dataTable/js/ZeroClipboard.js @@ -0,0 +1,367 @@ +// Simple Set Clipboard System +// Author: Joseph Huckaby + +var ZeroClipboard_TableTools = { + + version: "1.0.4-TableTools2", + clients: {}, // registered upload clients on page, indexed by id + moviePath: '', // URL to movie + nextId: 1, // ID of next movie + + $: function(thingy) { + // simple DOM lookup utility function + if (typeof(thingy) == 'string') thingy = document.getElementById(thingy); + if (!thingy.addClass) { + // extend element with a few useful methods + thingy.hide = function() { this.style.display = 'none'; }; + thingy.show = function() { this.style.display = ''; }; + thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; }; + thingy.removeClass = function(name) { + this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, ''); + }; + thingy.hasClass = function(name) { + return !!this.className.match( new RegExp("\\s*" + name + "\\s*") ); + } + } + return thingy; + }, + + setMoviePath: function(path) { + // set path to ZeroClipboard.swf + this.moviePath = path; + }, + + dispatch: function(id, eventName, args) { + // receive event from flash movie, send to client + var client = this.clients[id]; + if (client) { + client.receiveEvent(eventName, args); + } + }, + + register: function(id, client) { + // register new client to receive events + this.clients[id] = client; + }, + + getDOMObjectPosition: function(obj) { + // get absolute coordinates for dom element + var info = { + left: 0, + top: 0, + width: obj.width ? obj.width : obj.offsetWidth, + height: obj.height ? obj.height : obj.offsetHeight + }; + + if ( obj.style.width != "" ) + info.width = obj.style.width.replace("px",""); + + if ( obj.style.height != "" ) + info.height = obj.style.height.replace("px",""); + + while (obj) { + info.left += obj.offsetLeft; + info.top += obj.offsetTop; + obj = obj.offsetParent; + } + + return info; + }, + + Client: function(elem) { + // constructor for new simple upload client + this.handlers = {}; + + // unique ID + this.id = ZeroClipboard_TableTools.nextId++; + this.movieId = 'ZeroClipboard_TableToolsMovie_' + this.id; + + // register client with singleton to receive flash events + ZeroClipboard_TableTools.register(this.id, this); + + // create movie + if (elem) this.glue(elem); + } +}; + +ZeroClipboard_TableTools.Client.prototype = { + + id: 0, // unique ID for us + ready: false, // whether movie is ready to receive events or not + movie: null, // reference to movie object + clipText: '', // text to copy to clipboard + fileName: '', // default file save name + action: 'copy', // action to perform + handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor + cssEffects: true, // enable CSS mouse effects on dom container + handlers: null, // user event handlers + sized: false, + + glue: function(elem, title) { + // glue to DOM element + // elem can be ID or actual DOM element object + this.domElement = ZeroClipboard_TableTools.$(elem); + + // float just above object, or zIndex 99 if dom element isn't set + var zIndex = 99; + if (this.domElement.style.zIndex) { + zIndex = parseInt(this.domElement.style.zIndex) + 1; + } + + // find X/Y position of domElement + var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement); + + // create floating DIV above element + this.div = document.createElement('div'); + var style = this.div.style; + style.position = 'absolute'; + style.left = '0px'; + style.top = '0px'; + style.width = (box.width) + 'px'; + style.height = box.height + 'px'; + style.zIndex = zIndex; + + if ( typeof title != "undefined" && title != "" ) { + this.div.title = title; + } + if ( box.width != 0 && box.height != 0 ) { + this.sized = true; + } + + // style.backgroundColor = '#f00'; // debug + if ( this.domElement ) { + this.domElement.appendChild(this.div); + this.div.innerHTML = this.getHTML( box.width, box.height ); + } + }, + + positionElement: function() { + var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement); + var style = this.div.style; + + style.position = 'absolute'; + //style.left = (this.domElement.offsetLeft)+'px'; + //style.top = this.domElement.offsetTop+'px'; + style.width = box.width + 'px'; + style.height = box.height + 'px'; + + if ( box.width != 0 && box.height != 0 ) { + this.sized = true; + } else { + return; + } + + var flash = this.div.childNodes[0]; + flash.width = box.width; + flash.height = box.height; + }, + + getHTML: function(width, height) { + // return HTML for movie + var html = ''; + var flashvars = 'id=' + this.id + + '&width=' + width + + '&height=' + height; + + if (navigator.userAgent.match(/MSIE/)) { + // IE gets an OBJECT tag + var protocol = location.href.match(/^https/i) ? 'https://' : 'http://'; + html += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+protocol+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="'+width+'" height="'+height+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+ZeroClipboard_TableTools.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+flashvars+'"/><param name="wmode" value="transparent"/></object>'; + } + else { + // all other browsers get an EMBED tag + html += '<embed id="'+this.movieId+'" src="'+ZeroClipboard_TableTools.moviePath+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+width+'" height="'+height+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+flashvars+'" wmode="transparent" />'; + } + return html; + }, + + hide: function() { + // temporarily hide floater offscreen + if (this.div) { + this.div.style.left = '-2000px'; + } + }, + + show: function() { + // show ourselves after a call to hide() + this.reposition(); + }, + + destroy: function() { + // destroy control and floater + if (this.domElement && this.div) { + this.hide(); + this.div.innerHTML = ''; + + var body = document.getElementsByTagName('body')[0]; + try { body.removeChild( this.div ); } catch(e) {;} + + this.domElement = null; + this.div = null; + } + }, + + reposition: function(elem) { + // reposition our floating div, optionally to new container + // warning: container CANNOT change size, only position + if (elem) { + this.domElement = ZeroClipboard_TableTools.$(elem); + if (!this.domElement) this.hide(); + } + + if (this.domElement && this.div) { + var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement); + var style = this.div.style; + style.left = '' + box.left + 'px'; + style.top = '' + box.top + 'px'; + } + }, + + clearText: function() { + // clear the text to be copy / saved + this.clipText = ''; + if (this.ready) this.movie.clearText(); + }, + + appendText: function(newText) { + // append text to that which is to be copied / saved + this.clipText += newText; + if (this.ready) { this.movie.appendText(newText) ;} + }, + + setText: function(newText) { + // set text to be copied to be copied / saved + this.clipText = newText; + if (this.ready) { this.movie.setText(newText) ;} + }, + + setCharSet: function(charSet) { + // set the character set (UTF16LE or UTF8) + this.charSet = charSet; + if (this.ready) { this.movie.setCharSet(charSet) ;} + }, + + setBomInc: function(bomInc) { + // set if the BOM should be included or not + this.incBom = bomInc; + if (this.ready) { this.movie.setBomInc(bomInc) ;} + }, + + setFileName: function(newText) { + // set the file name + this.fileName = newText; + if (this.ready) this.movie.setFileName(newText); + }, + + setAction: function(newText) { + // set action (save or copy) + this.action = newText; + if (this.ready) this.movie.setAction(newText); + }, + + addEventListener: function(eventName, func) { + // add user event listener for event + // event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel + eventName = eventName.toString().toLowerCase().replace(/^on/, ''); + if (!this.handlers[eventName]) this.handlers[eventName] = []; + this.handlers[eventName].push(func); + }, + + setHandCursor: function(enabled) { + // enable hand cursor (true), or default arrow cursor (false) + this.handCursorEnabled = enabled; + if (this.ready) this.movie.setHandCursor(enabled); + }, + + setCSSEffects: function(enabled) { + // enable or disable CSS effects on DOM container + this.cssEffects = !!enabled; + }, + + receiveEvent: function(eventName, args) { + // receive event from flash + eventName = eventName.toString().toLowerCase().replace(/^on/, ''); + + // special behavior for certain events + switch (eventName) { + case 'load': + // movie claims it is ready, but in IE this isn't always the case... + // bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function + this.movie = document.getElementById(this.movieId); + if (!this.movie) { + var self = this; + setTimeout( function() { self.receiveEvent('load', null); }, 1 ); + return; + } + + // firefox on pc needs a "kick" in order to set these in certain cases + if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) { + var self = this; + setTimeout( function() { self.receiveEvent('load', null); }, 100 ); + this.ready = true; + return; + } + + this.ready = true; + this.movie.clearText(); + this.movie.appendText( this.clipText ); + this.movie.setFileName( this.fileName ); + this.movie.setAction( this.action ); + this.movie.setCharSet( this.charSet ); + this.movie.setBomInc( this.incBom ); + this.movie.setHandCursor( this.handCursorEnabled ); + break; + + case 'mouseover': + if (this.domElement && this.cssEffects) { + //this.domElement.addClass('hover'); + if (this.recoverActive) this.domElement.addClass('active'); + } + break; + + case 'mouseout': + if (this.domElement && this.cssEffects) { + this.recoverActive = false; + if (this.domElement.hasClass('active')) { + this.domElement.removeClass('active'); + this.recoverActive = true; + } + //this.domElement.removeClass('hover'); + } + break; + + case 'mousedown': + if (this.domElement && this.cssEffects) { + this.domElement.addClass('active'); + } + break; + + case 'mouseup': + if (this.domElement && this.cssEffects) { + this.domElement.removeClass('active'); + this.recoverActive = false; + } + break; + } // switch eventName + + if (this.handlers[eventName]) { + for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) { + var func = this.handlers[eventName][idx]; + + if (typeof(func) == 'function') { + // actual function reference + func(this, args); + } + else if ((typeof(func) == 'object') && (func.length == 2)) { + // PHP style object + method, i.e. [myObject, 'myMethod'] + func[0][ func[1] ](this, args); + } + else if (typeof(func) == 'string') { + // name of function + window[func](this, args); + } + } // foreach event handler defined + } // user defined handler for event + } + +}; diff --git a/theme/js/dataTable/swf/copy_csv_xls.swf b/theme/js/dataTable/swf/copy_csv_xls.swf new file mode 100644 index 0000000000000000000000000000000000000000..082c7acbfd0e1368e3a1ef4b10a218bb1dbe7d60 GIT binary patch literal 2165 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 literal 0 HcmV?d00001 diff --git a/theme/js/dataTable/swf/copy_csv_xls_pdf.swf b/theme/js/dataTable/swf/copy_csv_xls_pdf.swf new file mode 100644 index 0000000000000000000000000000000000000000..063131dfe02624af9df2667e315cc4c7dc9c851b GIT binary patch literal 58824 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 literal 0 HcmV?d00001 diff --git a/theme/js/infobox_packed.js b/theme/js/infobox_packed.js new file mode 100644 index 0000000..62638ec --- /dev/null +++ b/theme/js/infobox_packed.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('6 8(a){a=a||{};r.s.1P.2j(2,36);2.M=a.1y||"";2.1z=a.1q||J;2.U=a.1H||0;2.G=a.1B||1g r.s.1Y(0,0);2.E=a.Y||1g r.s.2B(0,0);2.X=a.V||t;2.1p=a.1s||"2g";2.1m=a.F||{};2.1G=a.1E||"39";2.N=a.1j||"34://31.r.2W/2Q/2O/2K/1u.2I";3(a.1j===""){2.N=""}2.19=a.1A||1g r.s.1Y(1,1);3(p a.A==="q"){3(p a.18==="q"){a.A=L}v{a.A=!a.18}}2.w=!a.A;2.17=a.1n||J;2.1I=a.2f||"2d";2.15=a.1l||J;2.4=t;2.z=t;2.14=t;2.T=t;2.B=t;2.R=t}8.9=1g r.s.1P();8.9.24=6(){5 i;5 f;5 a;5 d=2;5 c=6(e){e.20=L;3(e.1i){e.1i()}};5 b=6(e){e.2T=J;3(e.1Z){e.1Z()}3(!d.15){c(e)}};3(!2.4){2.4=16.2N("2M");2.1d();3(p 2.M.1v==="q"){2.4.Q=2.I()+2.M}v{2.4.Q=2.I();2.4.1e(2.M)}2.2F()[2.1I].1e(2.4);2.1t();3(2.4.7.C){2.R=L}v{3(2.U!==0&&2.4.Z>2.U){2.4.7.C=2.U;2.4.7.2A="2x";2.R=L}v{a=2.22();2.4.7.C=(2.4.Z-a.13-a.12)+"11";2.R=J}}2.1r(2.1z);3(!2.15){2.B=[];f=["2q","1N","2p","2o","1M","2n","2m","2l","2k"];1o(i=0;i<f.1L;i++){2.B.1K(r.s.u.1c(2.4,f[i],c))}2.B.1K(r.s.u.1c(2.4,"1N",6(e){2.7.1J="2i"}))}2.T=r.s.u.1c(2.4,"2h",b);r.s.u.S(2,"2e")}};8.9.I=6(){5 a="";3(2.N!==""){a="<2c";a+=" 2b=\'"+2.N+"\'";a+=" 2a=12";a+=" 7=\'";a+=" Y: 29;";a+=" 1J: 28;";a+=" 27: "+2.1G+";";a+="\'>"}K a};8.9.1t=6(){5 a;3(2.N!==""){a=2.4.3f;2.z=r.s.u.1c(a,"1M",2.26())}v{2.z=t}};8.9.26=6(){5 a=2;K 6(e){e.20=L;3(e.1i){e.1i()}r.s.u.S(a,"3e");a.1u()}};8.9.1r=6(d){5 m;5 n;5 e=0,H=0;3(!d){m=2.1F();3(m 3d r.s.3c){3(!m.25().3a(2.E)){m.38(2.E)}n=m.25();5 a=m.37();5 h=a.Z;5 f=a.23;5 k=2.G.C;5 l=2.G.1k;5 g=2.4.Z;5 b=2.4.23;5 i=2.19.C;5 j=2.19.1k;5 o=2.21().35(2.E);3(o.x<(-k+i)){e=o.x+k-i}v 3((o.x+g+k+i)>h){e=o.x+g+k+i-h}3(2.17){3(o.y<(-l+j+b)){H=o.y+l-j-b}v 3((o.y+l+j)>f){H=o.y+l+j-f}}v{3(o.y<(-l+j)){H=o.y+l-j}v 3((o.y+b+l+j)>f){H=o.y+b+l+j-f}}3(!(e===0&&H===0)){5 c=m.33();m.32(e,H)}}}};8.9.1d=6(){5 i,F;3(2.4){2.4.30=2.1p;2.4.7.2Z="";F=2.1m;1o(i 2Y F){3(F.2X(i)){2.4.7[i]=F[i]}}3(p 2.4.7.1f!=="q"&&2.4.7.1f!==""){2.4.7.2V="2S(1f="+(2.4.7.1f*2R)+")"}2.4.7.Y="2P";2.4.7.P=\'1b\';3(2.X!==t){2.4.7.V=2.X}}};8.9.22=6(){5 c;5 a={1a:0,1h:0,13:0,12:0};5 b=2.4;3(16.1w&&16.1w.1X){c=b.2L.1w.1X(b,"");3(c){a.1a=D(c.1W,10)||0;a.1h=D(c.1V,10)||0;a.13=D(c.1U,10)||0;a.12=D(c.1T,10)||0}}v 3(16.2J.O){3(b.O){a.1a=D(b.O.1W,10)||0;a.1h=D(b.O.1V,10)||0;a.13=D(b.O.1U,10)||0;a.12=D(b.O.1T,10)||0}}K a};8.9.2H=6(){3(2.4){2.4.2G.2U(2.4);2.4=t}};8.9.1x=6(){2.24();5 a=2.21().2E(2.E);2.4.7.13=(a.x+2.G.C)+"11";3(2.17){2.4.7.1h=-(a.y+2.G.1k)+"11"}v{2.4.7.1a=(a.y+2.G.1k)+"11"}3(2.w){2.4.7.P=\'1b\'}v{2.4.7.P="A"}};8.9.2D=6(a){3(p a.1s!=="q"){2.1p=a.1s;2.1d()}3(p a.F!=="q"){2.1m=a.F;2.1d()}3(p a.1y!=="q"){2.1S(a.1y)}3(p a.1q!=="q"){2.1z=a.1q}3(p a.1H!=="q"){2.U=a.1H}3(p a.1B!=="q"){2.G=a.1B}3(p a.1n!=="q"){2.17=a.1n}3(p a.Y!=="q"){2.1D(a.Y)}3(p a.V!=="q"){2.1R(a.V)}3(p a.1E!=="q"){2.1G=a.1E}3(p a.1j!=="q"){2.N=a.1j}3(p a.1A!=="q"){2.19=a.1A}3(p a.18!=="q"){2.w=a.18}3(p a.A!=="q"){2.w=!a.A}3(p a.1l!=="q"){2.15=a.1l}3(2.4){2.1x()}};8.9.1S=6(a){2.M=a;3(2.4){3(2.z){r.s.u.W(2.z);2.z=t}3(!2.R){2.4.7.C=""}3(p a.1v==="q"){2.4.Q=2.I()+a}v{2.4.Q=2.I();2.4.1e(a)}3(!2.R){2.4.7.C=2.4.Z+"11";3(p a.1v==="q"){2.4.Q=2.I()+a}v{2.4.Q=2.I();2.4.1e(a)}}2.1t()}r.s.u.S(2,"2C")};8.9.1D=6(a){2.E=a;3(2.4){2.1x()}r.s.u.S(2,"1Q")};8.9.1R=6(a){2.X=a;3(2.4){2.4.7.V=a}r.s.u.S(2,"2z")};8.9.2y=6(a){2.w=!a;3(2.4){2.4.7.P=(2.w?"1b":"A")}};8.9.2w=6(){K 2.M};8.9.1C=6(){K 2.E};8.9.2v=6(){K 2.X};8.9.2u=6(){5 a;3((p 2.1F()==="q")||(2.1F()===t)){a=J}v{a=!2.w}K a};8.9.2t=6(){2.w=J;3(2.4){2.4.7.P="A"}};8.9.3b=6(){2.w=L;3(2.4){2.4.7.P="1b"}};8.9.2s=6(c,b){5 a=2;3(b){2.E=b.1C();2.14=r.s.u.2r(b,"1Q",6(){a.1D(2.1C())})}2.1O(c);3(2.4){2.1r()}};8.9.1u=6(){5 i;3(2.z){r.s.u.W(2.z);2.z=t}3(2.B){1o(i=0;i<2.B.1L;i++){r.s.u.W(2.B[i])}2.B=t}3(2.14){r.s.u.W(2.14);2.14=t}3(2.T){r.s.u.W(2.T);2.T=t}2.1O(t)};',62,202,'||this|if|div_|var|function|style|InfoBox|prototype||||||||||||||||typeof|undefined|google|maps|null|event|else|isHidden_|||closeListener_|visible|eventListeners_|width|parseInt|position_|boxStyle|pixelOffset_|yOffset|getCloseBoxImg_|false|return|true|content_|closeBoxURL_|currentStyle|visibility|innerHTML|fixedWidthSet_|trigger|contextListener_|maxWidth_|zIndex|removeListener|zIndex_|position|offsetWidth||px|right|left|moveListener_|enableEventPropagation_|document|alignBottom_|isHidden|infoBoxClearance_|top|hidden|addDomListener|setBoxStyle_|appendChild|opacity|new|bottom|stopPropagation|closeBoxURL|height|enableEventPropagation|boxStyle_|alignBottom|for|boxClass_|disableAutoPan|panBox_|boxClass|addClickHandler_|close|nodeType|defaultView|draw|content|disableAutoPan_|infoBoxClearance|pixelOffset|getPosition|setPosition|closeBoxMargin|getMap|closeBoxMargin_|maxWidth|pane_|cursor|push|length|click|mouseover|setMap|OverlayView|position_changed|setZIndex|setContent|borderRightWidth|borderLeftWidth|borderBottomWidth|borderTopWidth|getComputedStyle|Size|preventDefault|cancelBubble|getProjection|getBoxWidths_|offsetHeight|createInfoBoxDiv_|getBounds|getCloseClickHandler_|margin|pointer|relative|align|src|img|floatPane|domready|pane|infoBox|contextmenu|default|apply|touchmove|touchend|touchstart|dblclick|mouseup|mouseout|mousedown|addListener|open|show|getVisible|getZIndex|getContent|auto|setVisible|zindex_changed|overflow|LatLng|content_changed|setOptions|fromLatLngToDivPixel|getPanes|parentNode|onRemove|gif|documentElement|mapfiles|ownerDocument|div|createElement|en_us|absolute|intl|100|alpha|returnValue|removeChild|filter|com|hasOwnProperty|in|cssText|className|www|panBy|getCenter|http|fromLatLngToContainerPixel|arguments|getDiv|setCenter|2px|contains|hide|Map|instanceof|closeclick|firstChild'.split('|'),0,{})) \ No newline at end of file diff --git a/theme/javascripts/jquery.dataTables.js b/theme/js/jquery.dataTables.js similarity index 90% rename from theme/javascripts/jquery.dataTables.js rename to theme/js/jquery.dataTables.js index 4aa6e5e..1d8a220 100644 --- a/theme/javascripts/jquery.dataTables.js +++ b/theme/js/jquery.dataTables.js @@ -1,7 +1,7 @@ /** * @summary DataTables * @description Paginate, search and sort HTML tables - * @version 1.9.1 + * @version 1.9.4 * @file jquery.dataTables.js * @author Allan Jardine (www.sprymedia.co.uk) * @contact www.sprymedia.co.uk/contact @@ -21,9 +21,28 @@ */ /*jslint evil: true, undef: true, browser: true */ -/*globals $, jQuery,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros*/ +/*globals $, jQuery,define,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/ -(/** @lends <global> */function($, window, document, undefined) { +(/** @lends <global> */function( window, document, undefined ) { + +(function( factory ) { + "use strict"; + + // Define as an AMD module if possible + if ( typeof define === 'function' && define.amd ) + { + define( ['jquery'], factory ); + } + /* Define using browser globals otherwise + * Prevent multiple instantiations if the script is loaded twice + */ + else if ( jQuery && !jQuery.fn.dataTable ) + { + factory( jQuery ); + } +} +(/** @lends <global> */function( $ ) { + "use strict"; /** * DataTables is a plug-in for the jQuery Javascript library. It is a * highly flexible tool, based upon the foundations of progressive @@ -76,7 +95,7 @@ "nTh": nTh ? nTh : document.createElement('th'), "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], - "mDataProp": oDefaults.mDataProp ? oDefaults.oDefaults : iCol + "mData": oDefaults.mData ? oDefaults.oDefaults : iCol } ); oSettings.aoColumns.push( oCol ); @@ -115,7 +134,7 @@ * Apply options for a column * @param {object} oSettings dataTables settings object * @param {int} iCol column index to consider - * @param {object} oOptions object with sType, bVisible and bSearchable + * @param {object} oOptions object with sType, bVisible and bSearchable etc * @memberof DataTable#oApi */ function _fnColumnOptions( oSettings, iCol, oOptions ) @@ -125,6 +144,12 @@ /* User specified column options */ if ( oOptions !== undefined && oOptions !== null ) { + /* Backwards compatibility for mDataProp */ + if ( oOptions.mDataProp && !oOptions.mData ) + { + oOptions.mData = oOptions.mDataProp; + } + if ( oOptions.sType !== undefined ) { oCol.sType = oOptions.sType; @@ -145,8 +170,19 @@ } /* Cache the data get and set functions for speed */ - oCol.fnGetData = _fnGetObjectDataFn( oCol.mDataProp ); - oCol.fnSetData = _fnSetObjectDataFn( oCol.mDataProp ); + var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; + var mData = _fnGetObjectDataFn( oCol.mData ); + + oCol.fnGetData = function (oData, sSpecific) { + var innerData = mData( oData, sSpecific ); + + if ( oCol.mRender && (sSpecific && sSpecific !== '') ) + { + return mRender( innerData, sSpecific, oData ); + } + return innerData; + }; + oCol.fnSetData = _fnSetObjectDataFn( oCol.mData ); /* Feature sorting overrides column specific when off */ if ( !oSettings.oFeatures.bSort ) @@ -161,11 +197,10 @@ oCol.sSortingClass = oSettings.oClasses.sSortableNone; oCol.sSortingClassJUI = ""; } - else if ( oCol.bSortable || - ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) ) + else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1 ) { - oCol.sSortingClass = oSettings.oClasses.sSortable; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI; + oCol.sSortingClass = oSettings.oClasses.sSortable; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI; } else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 ) { @@ -188,7 +223,7 @@ */ function _fnAdjustColumnSizing ( oSettings ) { - /* Not interested in doing column width calculation if autowidth is disabled */ + /* Not interested in doing column width calculation if auto-width is disabled */ if ( oSettings.oFeatures.bAutoWidth === false ) { return false; @@ -212,22 +247,11 @@ */ function _fnVisibleToColumnIndex( oSettings, iMatch ) { - var iColumn = -1; - - for ( var i=0 ; i<oSettings.aoColumns.length ; i++ ) - { - if ( oSettings.aoColumns[i].bVisible === true ) - { - iColumn++; - } - - if ( iColumn == iMatch ) - { - return i; - } - } - - return null; + var aiVis = _fnGetColumns( oSettings, 'bVisible' ); + + return typeof aiVis[iMatch] === 'number' ? + aiVis[iMatch] : + null; } @@ -241,41 +265,44 @@ */ function _fnColumnIndexToVisible( oSettings, iMatch ) { - var iVisible = -1; - for ( var i=0 ; i<oSettings.aoColumns.length ; i++ ) - { - if ( oSettings.aoColumns[i].bVisible === true ) - { - iVisible++; - } - - if ( i == iMatch ) - { - return oSettings.aoColumns[i].bVisible === true ? iVisible : null; - } - } - - return null; + var aiVis = _fnGetColumns( oSettings, 'bVisible' ); + var iPos = $.inArray( iMatch, aiVis ); + + return iPos !== -1 ? iPos : null; } /** * Get the number of visible columns + * @param {object} oSettings dataTables settings object * @returns {int} i the number of visible columns - * @param {object} oS dataTables settings object * @memberof DataTable#oApi */ - function _fnVisbleColumns( oS ) + function _fnVisbleColumns( oSettings ) { - var iVis = 0; - for ( var i=0 ; i<oS.aoColumns.length ; i++ ) - { - if ( oS.aoColumns[i].bVisible === true ) - { - iVis++; + return _fnGetColumns( oSettings, 'bVisible' ).length; + } + + + /** + * Get an array of column indexes that match a given property + * @param {object} oSettings dataTables settings object + * @param {string} sParam Parameter in aoColumns to look for - typically + * bVisible or bSearchable + * @returns {array} Array of indexes with matched properties + * @memberof DataTable#oApi + */ + function _fnGetColumns( oSettings, sParam ) + { + var a = []; + + $.map( oSettings.aoColumns, function(val, i) { + if ( val[sParam] ) { + a.push( i ); } - } - return iVis; + } ); + + return a; } @@ -423,8 +450,6 @@ } } - - /** * Add a data array to the table, creating DOM node etc. This is the parallel to * _fnGatherData, but for adding rows from a Javascript source, rather than a @@ -455,8 +480,8 @@ { oCol = oSettings.aoColumns[i]; - /* Use rendered data for filtering/sorting */ - if ( typeof oCol.fnRender === 'function' && oCol.bUseRendered && oCol.mDataProp !== null ) + /* Use rendered data for filtering / sorting */ + if ( typeof oCol.fnRender === 'function' && oCol.bUseRendered && oCol.mData !== null ) { _fnSetCellData( oSettings, iRow, i, _fnRender(oSettings, iRow, i) ); } @@ -489,7 +514,7 @@ /* Add to the display array */ oSettings.aiDisplayMaster.push( iRow ); - /* Create the DOM imformation */ + /* Create the DOM information */ if ( !oSettings.oFeatures.bDeferRender ) { _fnCreateTr( oSettings, iRow ); @@ -507,7 +532,7 @@ function _fnGatherData( oSettings ) { var iLoop, i, iLen, j, jLen, jInner, - nTds, nTrs, nTd, aLocalData, iThisIndex, + nTds, nTrs, nTd, nTr, aLocalData, iThisIndex, iRow, iRows, iColumn, iColumns, sNodeName, oCol, oData; @@ -518,31 +543,32 @@ */ if ( oSettings.bDeferLoading || oSettings.sAjaxSource === null ) { - nTrs = oSettings.nTBody.childNodes; - for ( i=0, iLen=nTrs.length ; i<iLen ; i++ ) + nTr = oSettings.nTBody.firstChild; + while ( nTr ) { - if ( nTrs[i].nodeName.toUpperCase() == "TR" ) + if ( nTr.nodeName.toUpperCase() == "TR" ) { iThisIndex = oSettings.aoData.length; - nTrs[i]._DT_RowIndex = iThisIndex; + nTr._DT_RowIndex = iThisIndex; oSettings.aoData.push( $.extend( true, {}, DataTable.models.oRow, { - "nTr": nTrs[i] + "nTr": nTr } ) ); - + oSettings.aiDisplayMaster.push( iThisIndex ); - nTds = nTrs[i].childNodes; + nTd = nTr.firstChild; jInner = 0; - - for ( j=0, jLen=nTds.length ; j<jLen ; j++ ) + while ( nTd ) { - sNodeName = nTds[j].nodeName.toUpperCase(); + sNodeName = nTd.nodeName.toUpperCase(); if ( sNodeName == "TD" || sNodeName == "TH" ) { - _fnSetCellData( oSettings, iThisIndex, jInner, $.trim(nTds[j].innerHTML) ); + _fnSetCellData( oSettings, iThisIndex, jInner, $.trim(nTd.innerHTML) ); jInner++; } + nTd = nTd.nextSibling; } } + nTr = nTr.nextSibling; } } @@ -554,14 +580,15 @@ nTds = []; for ( i=0, iLen=nTrs.length ; i<iLen ; i++ ) { - for ( j=0, jLen=nTrs[i].childNodes.length ; j<jLen ; j++ ) + nTd = nTrs[i].firstChild; + while ( nTd ) { - nTd = nTrs[i].childNodes[j]; sNodeName = nTd.nodeName.toUpperCase(); if ( sNodeName == "TD" || sNodeName == "TH" ) { nTds.push( nTd ); } + nTd = nTd.nextSibling; } } @@ -611,8 +638,16 @@ } } - if ( typeof oCol.mDataProp === 'function' ) + if ( oCol.mRender ) + { + // mRender has been defined, so we need to get the value and set it + nCell.innerHTML = _fnGetCellData( oSettings, iRow, iColumn, 'display' ); + } + else if ( oCol.mData !== iColumn ) { + // If mData is not the same as the column number, then we need to + // get the dev set value. If it is the column, no point in wasting + // time setting the value that is already there! nCell.innerHTML = _fnGetCellData( oSettings, iRow, iColumn, 'display' ); } @@ -623,7 +658,7 @@ nCell.innerHTML = sRendered; if ( oCol.bUseRendered ) { - /* Use the rendered data for filtering/sorting */ + /* Use the rendered data for filtering / sorting */ _fnSetCellData( oSettings, iRow, iColumn, sRendered ); } } @@ -634,7 +669,7 @@ nCell.className += ' '+oCol.sClass; } - /* Column visability */ + /* Column visibility */ if ( !bVisible ) { oData._anHidden[iColumn] = nCell; @@ -708,15 +743,16 @@ * @param {object} oSettings dataTables settings object * @param {int} iRow aoData row id * @param {string} sSpecific data get type ('type' 'filter' 'sort') + * @param {array} aiColumns Array of column indexes to get data from * @returns {array} Data array * @memberof DataTable#oApi */ - function _fnGetRowData( oSettings, iRow, sSpecific ) + function _fnGetRowData( oSettings, iRow, sSpecific, aiColumns ) { var out = []; - for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ ) + for ( var i=0, iLen=aiColumns.length ; i<iLen ; i++ ) { - out.push( _fnGetCellData( oSettings, iRow, i, sSpecific ) ); + out.push( _fnGetCellData( oSettings, iRow, aiColumns[i], sSpecific ) ); } return out; } @@ -742,7 +778,7 @@ if ( oSettings.iDrawError != oSettings.iDraw && oCol.sDefaultContent === null ) { _fnLog( oSettings, 0, "Requested unknown parameter "+ - (typeof oCol.mDataProp=='function' ? '{mDataprop function}' : "'"+oCol.mDataProp+"'")+ + (typeof oCol.mData=='function' ? '{mData function}' : "'"+oCol.mData+"'")+ " from the data source for row "+iRow ); oSettings.iDrawError = oSettings.iDraw; } @@ -785,6 +821,9 @@ } + // Private variable that is used to match array syntax in the data property object + var __reArray = /\[.*?\]$/; + /** * Return a function that can be used to get data from a source object, taking * into account the ability to use nested objects as a source @@ -803,30 +842,71 @@ } else if ( typeof mSource === 'function' ) { - return function (data, type) { - return mSource( data, type ); + return function (data, type, extra) { + return mSource( data, type, extra ); }; } - else if ( typeof mSource === 'string' && mSource.indexOf('.') != -1 ) + else if ( typeof mSource === 'string' && (mSource.indexOf('.') !== -1 || mSource.indexOf('[') !== -1) ) { /* If there is a . in the source string then the data source is in a * nested object so we loop over the data for each level to get the next - * level down. On each loop we test for undefined, and if found immediatly + * level down. On each loop we test for undefined, and if found immediately * return. This allows entire objects to be missing and sDefaultContent to * be used if defined, rather than throwing an error */ - var a = mSource.split('.'); - return function (data, type) { - for ( var i=0, iLen=a.length ; i<iLen ; i++ ) + var fetchData = function (data, type, src) { + var a = src.split('.'); + var arrayNotation, out, innerSrc; + + if ( src !== "" ) { - data = data[ a[i] ]; - if ( data === undefined ) + for ( var i=0, iLen=a.length ; i<iLen ; i++ ) { - return undefined; + // Check if we are dealing with an array notation request + arrayNotation = a[i].match(__reArray); + + if ( arrayNotation ) { + a[i] = a[i].replace(__reArray, ''); + + // Condition allows simply [] to be passed in + if ( a[i] !== "" ) { + data = data[ a[i] ]; + } + out = []; + + // Get the remainder of the nested object to get + a.splice( 0, i+1 ); + innerSrc = a.join('.'); + + // Traverse each entry in the array getting the properties requested + for ( var j=0, jLen=data.length ; j<jLen ; j++ ) { + out.push( fetchData( data[j], type, innerSrc ) ); + } + + // If a string is given in between the array notation indicators, that + // is used to join the strings together, otherwise an array is returned + var join = arrayNotation[0].substring(1, arrayNotation[0].length-1); + data = (join==="") ? out : out.join(join); + + // The inner call to fetchData has already traversed through the remainder + // of the source requested, so we exit from the loop + break; + } + + if ( data === null || data[ a[i] ] === undefined ) + { + return undefined; + } + data = data[ a[i] ]; } } + return data; }; + + return function (data, type) { + return fetchData( data, type, mSource ); + }; } else { @@ -858,20 +938,57 @@ mSource( data, 'set', val ); }; } - else if ( typeof mSource === 'string' && mSource.indexOf('.') != -1 ) + else if ( typeof mSource === 'string' && (mSource.indexOf('.') !== -1 || mSource.indexOf('[') !== -1) ) { - /* Like the get, we need to get data from a nested object. */ - var a = mSource.split('.'); - return function (data, val) { + /* Like the get, we need to get data from a nested object */ + var setData = function (data, val, src) { + var a = src.split('.'), b; + var arrayNotation, o, innerSrc; + for ( var i=0, iLen=a.length-1 ; i<iLen ; i++ ) { - data = data[ a[i] ]; - if ( data === undefined ) + // Check if we are dealing with an array notation request + arrayNotation = a[i].match(__reArray); + + if ( arrayNotation ) { + a[i] = a[i].replace(__reArray, ''); + data[ a[i] ] = []; + + // Get the remainder of the nested object to set so we can recurse + b = a.slice(); + b.splice( 0, i+1 ); + innerSrc = b.join('.'); + + // Traverse each entry in the array setting the properties requested + for ( var j=0, jLen=val.length ; j<jLen ; j++ ) + { + o = {}; + setData( o, val[j], innerSrc ); + data[ a[i] ].push( o ); + } + + // The inner call to setData has already traversed through the remainder + // of the source and has set the data, thus we can exit here return; } + + // If the nested object doesn't currently exist - since we are + // trying to set the value - create it + if ( data[ a[i] ] === null || data[ a[i] ] === undefined ) + { + data[ a[i] ] = {}; + } + data = data[ a[i] ]; } - data[ a[a.length-1] ] = val; + + // If array notation is used, we just want to strip it and use the property name + // and assign the value. If it isn't used, then we get the result we want anyway + data[ a[a.length-1].replace(__reArray, '') ] = val; + }; + + return function (data, val) { + return setData( data, val, mSource ); }; } else @@ -964,11 +1081,9 @@ "iDataColumn": iCol, "oSettings": oSettings, "aData": oSettings.aoData[iRow]._aData, - "mDataProp": oCol.mDataProp + "mDataProp": oCol.mData }, _fnGetCellData(oSettings, iRow, iCol, 'display') ); } - - /** * Create a new TR element (and it's TD children) for a row * @param {object} oSettings dataTables settings object @@ -997,7 +1112,7 @@ if ( oData._aData.DT_RowClass ) { - $(oData.nTr).addClass( oData._aData.DT_RowClass ); + oData.nTr.className = oData._aData.DT_RowClass; } /* Process each column */ @@ -1009,7 +1124,7 @@ /* Render if needed - if bUseRendered is true then we already have the rendered * value in the data source - so can just use that */ - nTd.innerHTML = (typeof oCol.fnRender === 'function' && (!oCol.bUseRendered || oCol.mDataProp === null)) ? + nTd.innerHTML = (typeof oCol.fnRender === 'function' && (!oCol.bUseRendered || oCol.mData === null)) ? _fnRender( oSettings, iRow, i ) : _fnGetCellData( oSettings, iRow, i, 'display' ); @@ -1050,7 +1165,7 @@ function _fnBuildHead( oSettings ) { var i, nTh, iLen, j, jLen; - var iThs = oSettings.nTHead.getElementsByTagName('th').length; + var iThs = $('th, td', oSettings.nTHead).length; var iCorrector = 0; var jqChildren; @@ -1270,12 +1385,6 @@ */ function _fnDraw( oSettings ) { - var i, iLen, n; - var anRows = []; - var iRowCount = 0; - var iStripes = oSettings.asStripeClasses.length; - var iOpenRows = oSettings.aoOpenRows.length; - /* Provide a pre-callback function which can be used to cancel the draw is false is returned */ var aPreDraw = _fnCallbackFire( oSettings, 'aoPreDrawCallback', 'preDraw', [oSettings] ); if ( $.inArray( false, aPreDraw ) !== -1 ) @@ -1284,6 +1393,12 @@ return; } + var i, iLen, n; + var anRows = []; + var iRowCount = 0; + var iStripes = oSettings.asStripeClasses.length; + var iOpenRows = oSettings.aoOpenRows.length; + oSettings.bDrawing = true; /* Check and see if we have an initial draw position from state saving */ @@ -1349,7 +1464,7 @@ } } - /* Row callback functions - might want to manipule the row */ + /* Row callback functions - might want to manipulate the row */ _fnCallbackFire( oSettings, 'aoRowCallback', null, [nRow, oSettings.aoData[ oSettings.aiDisplay[j] ]._aData, iRowCount, j] ); @@ -1542,11 +1657,11 @@ /* Replace jQuery UI constants */ if ( sAttr == "H" ) { - sAttr = "fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"; + sAttr = oSettings.oClasses.sJUIHeader; } else if ( sAttr == "F" ) { - sAttr = "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"; + sAttr = oSettings.oClasses.sJUIFooter; } /* The attribute can be in the format of "#id.class", "#id" or "class" This logic @@ -1661,10 +1776,12 @@ function _fnDetectHeader ( aLayout, nThead ) { var nTrs = $(nThead).children('tr'); - var nCell; - var i, j, k, l, iLen, jLen, iColShifted; + var nTr, nCell; + var i, k, l, iLen, jLen, iColShifted, iColumn, iColspan, iRowspan; + var bUnique; var fnShiftCol = function ( a, i, j ) { - while ( a[i][j] ) { + var k = a[i]; + while ( k[j] ) { j++; } return j; @@ -1681,19 +1798,18 @@ /* Calculate a layout array */ for ( i=0, iLen=nTrs.length ; i<iLen ; i++ ) { - var iColumn = 0; + nTr = nTrs[i]; + iColumn = 0; /* For every cell in the row... */ - for ( j=0, jLen=nTrs[i].childNodes.length ; j<jLen ; j++ ) - { - nCell = nTrs[i].childNodes[j]; - + nCell = nTr.firstChild; + while ( nCell ) { if ( nCell.nodeName.toUpperCase() == "TD" || nCell.nodeName.toUpperCase() == "TH" ) { /* Get the col and rowspan attributes from the DOM and sanitise them */ - var iColspan = nCell.getAttribute('colspan') * 1; - var iRowspan = nCell.getAttribute('rowspan') * 1; + iColspan = nCell.getAttribute('colspan') * 1; + iRowspan = nCell.getAttribute('rowspan') * 1; iColspan = (!iColspan || iColspan===0 || iColspan===1) ? 1 : iColspan; iRowspan = (!iRowspan || iRowspan===0 || iRowspan===1) ? 1 : iRowspan; @@ -1702,6 +1818,9 @@ */ iColShifted = fnShiftCol( aLayout, i, iColumn ); + /* Cache calculation for unique columns */ + bUnique = iColspan === 1 ? true : false; + /* If there is col / rowspan, copy the information into the layout grid */ for ( l=0 ; l<iColspan ; l++ ) { @@ -1709,12 +1828,13 @@ { aLayout[i+k][iColShifted+l] = { "cell": nCell, - "unique": iColspan == 1 ? true : false + "unique": bUnique }; - aLayout[i+k].nTr = nTrs[i]; + aLayout[i+k].nTr = nTr; } } } + nCell = nCell.nextSibling; } } } @@ -1725,7 +1845,7 @@ * @param {object} oSettings dataTables settings object * @param {node} nHeader automatically detect the layout from this node - optional * @param {array} aLayout thead/tfoot layout from _fnDetectHeader - optional - * @returns array {node} aReturn list of unique ths + * @returns array {node} aReturn list of unique th's * @memberof DataTable#oApi */ function _fnGetUniqueThs ( oSettings, nHeader, aLayout ) @@ -1808,7 +1928,7 @@ for ( i=0 ; i<iColumns ; i++ ) { - mDataProp = oSettings.aoColumns[i].mDataProp; + mDataProp = oSettings.aoColumns[i].mData; aoData.push( { "name": "mDataProp_"+i, "value": typeof(mDataProp)==="function" ? 'function' : mDataProp } ); } @@ -1858,7 +1978,7 @@ /** - * Add Ajax parameters from plugins + * Add Ajax parameters from plug-ins * @param {object} oSettings dataTables settings object * @param array {objects} aoData name/value pairs to send to the server * @memberof DataTable#oApi @@ -1885,7 +2005,7 @@ if ( json.sEcho !== undefined ) { /* Protect against old returns over-writing a new one. Possible when you get - * very fast interaction, and later queires are completed much faster + * very fast interaction, and later queries are completed much faster */ if ( json.sEcho*1 < oSettings.iDraw ) { @@ -1956,7 +2076,7 @@ var sSearchStr = oSettings.oLanguage.sSearch; sSearchStr = (sSearchStr.indexOf('_INPUT_') !== -1) ? sSearchStr.replace('_INPUT_', '<input type="text" />') : - sSearchStr==="" ? '<input type="text" />' : ' <input type="text" style="border:1px solid #CCC;" value="Ara" onclick="if(this.value == \'Ara\') { this.value = \'\'; }" onBlur="if(this.value == \'\') { this.value = \'Ara\'; }" />'; + sSearchStr==="" ? '<input type="text" />' : sSearchStr+' <input type="text" />'; var nFilter = document.createElement( 'div' ); nFilter.className = oSettings.oClasses.sFilter; @@ -2076,15 +2196,22 @@ function _fnFilterCustom( oSettings ) { var afnFilters = DataTable.ext.afnFiltering; + var aiFilterColumns = _fnGetColumns( oSettings, 'bSearchable' ); + for ( var i=0, iLen=afnFilters.length ; i<iLen ; i++ ) { var iCorrector = 0; for ( var j=0, jLen=oSettings.aiDisplay.length ; j<jLen ; j++ ) { var iDisIndex = oSettings.aiDisplay[j-iCorrector]; + var bTest = afnFilters[i]( + oSettings, + _fnGetRowData( oSettings, iDisIndex, 'filter', aiFilterColumns ), + iDisIndex + ); /* Check if we should use this row based on the filtering function */ - if ( !afnFilters[i]( oSettings, _fnGetRowData( oSettings, iDisIndex, 'filter' ), iDisIndex ) ) + if ( !bTest ) { oSettings.aiDisplay.splice( j-iCorrector, 1 ); iCorrector++; @@ -2223,15 +2350,19 @@ if ( !oSettings.oFeatures.bServerSide ) { /* Clear out the old data */ - oSettings.asDataSearch.splice( 0, oSettings.asDataSearch.length ); - - var aArray = (iMaster && iMaster===1) ? - oSettings.aiDisplayMaster : oSettings.aiDisplay; + oSettings.asDataSearch = []; + + var aiFilterColumns = _fnGetColumns( oSettings, 'bSearchable' ); + var aiIndex = (iMaster===1) ? + oSettings.aiDisplayMaster : + oSettings.aiDisplay; - for ( var i=0, iLen=aArray.length ; i<iLen ; i++ ) + for ( var i=0, iLen=aiIndex.length ; i<iLen ; i++ ) { - oSettings.asDataSearch[i] = _fnBuildSearchRow( oSettings, - _fnGetRowData( oSettings, aArray[i], 'filter' ) ); + oSettings.asDataSearch[i] = _fnBuildSearchRow( + oSettings, + _fnGetRowData( oSettings, aiIndex[i], 'filter', aiFilterColumns ) + ); } } } @@ -2245,33 +2376,16 @@ */ function _fnBuildSearchRow( oSettings, aData ) { - var sSearch = ''; - if ( oSettings.__nTmpFilter === undefined ) - { - oSettings.__nTmpFilter = document.createElement('div'); - } - var nTmp = oSettings.__nTmpFilter; - - for ( var j=0, jLen=oSettings.aoColumns.length ; j<jLen ; j++ ) - { - if ( oSettings.aoColumns[j].bSearchable ) - { - var sData = aData[j]; - sSearch += _fnDataToSearch( sData, oSettings.aoColumns[j].sType )+' '; - } - } + var sSearch = aData.join(' '); /* If it looks like there is an HTML entity in the string, attempt to decode it */ if ( sSearch.indexOf('&') !== -1 ) { - nTmp.innerHTML = sSearch; - sSearch = nTmp.textContent ? nTmp.textContent : nTmp.innerText; - - /* IE and Opera appear to put an newline where there is a <br> tag - remove it */ - sSearch = sSearch.replace(/\n/g," ").replace(/\r/g,""); + sSearch = $('<div>').html(sSearch).text(); } - return sSearch; + // Strip newline characters + return sSearch.replace( /[\n\r]/g, " " ); } /** @@ -2279,7 +2393,7 @@ * @param {string} sSearch string to search for * @param {bool} bRegex treat as a regular expression or not * @param {bool} bSmart perform smart filtering or not - * @param {bool} bCaseInsensitive Do case insenstive matching or not + * @param {bool} bCaseInsensitive Do case insensitive matching or not * @returns {RegExp} constructed object * @memberof DataTable#oApi */ @@ -2334,20 +2448,19 @@ /** - * scape a string stuch that it can be used in a regular expression + * scape a string such that it can be used in a regular expression * @param {string} sVal string to escape * @returns {string} escaped string * @memberof DataTable#oApi */ function _fnEscapeRegex ( sVal ) { - var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^' ]; + var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ]; var reReplace = new RegExp( '(\\' + acEscape.join('|\\') + ')', 'g' ); return sVal.replace(reReplace, '\\$1'); } - /** * Generate the node required for the info display * @param {object} oSettings dataTables settings object @@ -2398,25 +2511,20 @@ iTotal = oSettings.fnRecordsDisplay(), sOut; - if ( iTotal === 0 && iTotal == iMax ) + if ( iTotal === 0 ) { /* Empty record set */ sOut = oLang.sInfoEmpty; } - else if ( iTotal === 0 ) - { - /* Empty record set after filtering */ - sOut = oLang.sInfoEmpty +' '+ oLang.sInfoFiltered; - } - else if ( iTotal == iMax ) - { + else { /* Normal record set */ sOut = oLang.sInfo; } - else + + if ( iTotal != iMax ) { /* Record set after filtering */ - sOut = oLang.sInfo +' '+ oLang.sInfoFiltered; + sOut += ' ' + oLang.sInfoFiltered; } // Convert the macros @@ -2457,10 +2565,10 @@ } return str. - replace('_START_', sStart). - replace('_END_', sEnd). - replace('_TOTAL_', sTotal). - replace('_MAX_', sMax); + replace(/_START_/g, sStart). + replace(/_END_/g, sEnd). + replace(/_TOTAL_/g, sTotal). + replace(/_MAX_/g, sMax); } @@ -2603,14 +2711,14 @@ * sZeroRecords - assuming that is given. */ if ( !oLanguage.sEmptyTable && oLanguage.sZeroRecords && - oDefaults.sEmptyTable === "Sorguda sonuç bulunamadı." ) + oDefaults.sEmptyTable === "No data available in table" ) { _fnMap( oLanguage, oLanguage, 'sZeroRecords', 'sEmptyTable' ); } /* Likewise with loading records */ if ( !oLanguage.sLoadingRecords && oLanguage.sZeroRecords && - oDefaults.sLoadingRecords === "Bekleyiniz..." ) + oDefaults.sLoadingRecords === "Loading..." ) { _fnMap( oLanguage, oLanguage, 'sZeroRecords', 'sLoadingRecords' ); } @@ -2711,7 +2819,7 @@ /** - * Rcalculate the end point based on the start point + * Recalculate the end point based on the start point * @param {object} oSettings dataTables settings object * @memberof DataTable#oApi */ @@ -2815,7 +2923,7 @@ oSettings._iDisplayStart - oSettings._iDisplayLength : 0; - /* Correct for underrun */ + /* Correct for under-run */ if ( oSettings._iDisplayStart < 0 ) { oSettings._iDisplayStart = 0; @@ -2901,8 +3009,6 @@ $(oSettings.oInstance).trigger('processing', [oSettings, bShow]); } - - /** * Add any control elements for the table - specifically scrolling * @param {object} oSettings dataTables settings object @@ -3011,7 +3117,7 @@ /* * Sizing */ - /* When xscrolling add the width and a scroller to move the header with the body */ + /* When x-scrolling add the width and a scroller to move the header with the body */ if ( oSettings.oScroll.sX !== "" ) { nScrollHead.style.width = _fnStringToCss( oSettings.oScroll.sX ); @@ -3094,10 +3200,18 @@ nScrollBody = o.nTable.parentNode, i, iLen, j, jLen, anHeadToSize, anHeadSizers, anFootSizers, anFootToSize, oStyle, iVis, nTheadSize, nTfootSize, - iWidth, aApplied=[], iSanityWidth, + iWidth, aApplied=[], aAppliedFooter=[], iSanityWidth, nScrollFootInner = (o.nTFoot !== null) ? o.nScrollFoot.getElementsByTagName('div')[0] : null, nScrollFootTable = (o.nTFoot !== null) ? nScrollFootInner.getElementsByTagName('table')[0] : null, - ie67 = $.browser.msie && $.browser.version <= 7; + ie67 = o.oBrowser.bScrollOversize, + zeroOut = function(nSizer) { + oStyle = nSizer.style; + oStyle.paddingTop = "0"; + oStyle.paddingBottom = "0"; + oStyle.borderTopWidth = "0"; + oStyle.borderBottomWidth = "0"; + oStyle.height = 0; + }; /* * 1. Re-create the table inside the scrolling div @@ -3109,11 +3223,15 @@ /* Clone the current header and footer elements and then place it into the inner table */ nTheadSize = $(o.nTHead).clone()[0]; o.nTable.insertBefore( nTheadSize, o.nTable.childNodes[0] ); + anHeadToSize = o.nTHead.getElementsByTagName('tr'); + anHeadSizers = nTheadSize.getElementsByTagName('tr'); if ( o.nTFoot !== null ) { nTfootSize = $(o.nTFoot).clone()[0]; o.nTable.insertBefore( nTfootSize, o.nTable.childNodes[1] ); + anFootToSize = o.nTFoot.getElementsByTagName('tr'); + anFootSizers = nTfootSize.getElementsByTagName('tr'); } /* @@ -3122,7 +3240,7 @@ /* Remove old sizing and apply the calculated column widths * Get the unique column headers in the newly created (cloned) header. We want to apply the - * calclated sizes to this header + * calculated sizes to this header */ if ( o.oScroll.sX === "" ) { @@ -3141,7 +3259,7 @@ { _fnApplyToChildren( function(n) { n.style.width = ""; - }, nTfootSize.getElementsByTagName('tr') ); + }, anFootSizers ); } // If scroll collapse is enabled, when we put the headers back into the body for sizing, we @@ -3203,41 +3321,38 @@ /* We want the hidden header to have zero height, so remove padding and borders. Then * set the width based on the real headers */ - anHeadToSize = o.nTHead.getElementsByTagName('tr'); - anHeadSizers = nTheadSize.getElementsByTagName('tr'); - _fnApplyToChildren( function(nSizer, nToSize) { - oStyle = nSizer.style; - oStyle.paddingTop = "0"; - oStyle.paddingBottom = "0"; - oStyle.borderTopWidth = "0"; - oStyle.borderBottomWidth = "0"; - oStyle.height = 0; - - iWidth = $(nSizer).width(); - nToSize.style.width = _fnStringToCss( iWidth ); - aApplied.push( iWidth ); - }, anHeadSizers, anHeadToSize ); + // Apply all styles in one pass. Invalidates layout only once because we don't read any + // DOM properties. + _fnApplyToChildren( zeroOut, anHeadSizers ); + + // Read all widths in next pass. Forces layout only once because we do not change + // any DOM properties. + _fnApplyToChildren( function(nSizer) { + aApplied.push( _fnStringToCss( $(nSizer).width() ) ); + }, anHeadSizers ); + + // Apply all widths in final pass. Invalidates layout only once because we do not + // read any DOM properties. + _fnApplyToChildren( function(nToSize, i) { + nToSize.style.width = aApplied[i]; + }, anHeadToSize ); + $(anHeadSizers).height(0); + /* Same again with the footer if we have one */ if ( o.nTFoot !== null ) { - /* Clone the current footer and then place it into the body table as a "hidden header" */ - anFootSizers = nTfootSize.getElementsByTagName('tr'); - anFootToSize = o.nTFoot.getElementsByTagName('tr'); - - _fnApplyToChildren( function(nSizer, nToSize) { - oStyle = nSizer.style; - oStyle.paddingTop = "0"; - oStyle.paddingBottom = "0"; - oStyle.borderTopWidth = "0"; - oStyle.borderBottomWidth = "0"; - oStyle.height = 0; - - iWidth = $(nSizer).width(); - nToSize.style.width = _fnStringToCss( iWidth ); - aApplied.push( iWidth ); - }, anFootSizers, anFootToSize ); + _fnApplyToChildren( zeroOut, anFootSizers ); + + _fnApplyToChildren( function(nSizer) { + aAppliedFooter.push( _fnStringToCss( $(nSizer).width() ) ); + }, anFootSizers ); + + _fnApplyToChildren( function(nToSize, i) { + nToSize.style.width = aAppliedFooter[i]; + }, anFootToSize ); + $(anFootSizers).height(0); } @@ -3248,16 +3363,16 @@ /* "Hide" the header and footer that we used for the sizing. We want to also fix their width * to what they currently are */ - _fnApplyToChildren( function(nSizer) { + _fnApplyToChildren( function(nSizer, i) { nSizer.innerHTML = ""; - nSizer.style.width = _fnStringToCss( aApplied.shift() ); + nSizer.style.width = aApplied[i]; }, anHeadSizers ); if ( o.nTFoot !== null ) { - _fnApplyToChildren( function(nSizer) { + _fnApplyToChildren( function(nSizer, i) { nSizer.innerHTML = ""; - nSizer.style.width = _fnStringToCss( aApplied.shift() ); + nSizer.style.width = aAppliedFooter[i]; }, anFootSizers ); } @@ -3280,11 +3395,11 @@ /* Apply the calculated minimum width to the table wrappers */ nScrollBody.style.width = _fnStringToCss( iCorrection ); - nScrollHeadInner.parentNode.style.width = _fnStringToCss( iCorrection ); + o.nScrollHead.style.width = _fnStringToCss( iCorrection ); if ( o.nTFoot !== null ) { - nScrollFootInner.parentNode.style.width = _fnStringToCss( iCorrection ); + o.nScrollFoot.style.width = _fnStringToCss( iCorrection ); } /* And give the user a warning that we've stopped the table getting too small */ @@ -3303,11 +3418,11 @@ else { nScrollBody.style.width = _fnStringToCss( '100%' ); - nScrollHeadInner.parentNode.style.width = _fnStringToCss( '100%' ); + o.nScrollHead.style.width = _fnStringToCss( '100%' ); if ( o.nTFoot !== null ) { - nScrollFootInner.parentNode.style.width = _fnStringToCss( '100%' ); + o.nScrollFoot.style.width = _fnStringToCss( '100%' ); } } @@ -3356,7 +3471,7 @@ nScrollFootInner.style.paddingRight = bScrolling ? o.oScroll.iBarWidth+"px" : "0px"; } - /* Adjust the position of the header incase we loose the y-scrollbar */ + /* Adjust the position of the header in case we loose the y-scrollbar */ $(nScrollBody).scroll(); /* If sorting or filtering has occurred, jump the scrolling back to the top */ @@ -3377,27 +3492,34 @@ */ function _fnApplyToChildren( fn, an1, an2 ) { - for ( var i=0, iLen=an1.length ; i<iLen ; i++ ) + var index=0, i=0, iLen=an1.length; + var nNode1, nNode2; + + while ( i < iLen ) { - for ( var j=0, jLen=an1[i].childNodes.length ; j<jLen ; j++ ) + nNode1 = an1[i].firstChild; + nNode2 = an2 ? an2[i].firstChild : null; + while ( nNode1 ) { - if ( an1[i].childNodes[j].nodeType == 1 ) + if ( nNode1.nodeType === 1 ) { if ( an2 ) { - fn( an1[i].childNodes[j], an2[i].childNodes[j] ); + fn( nNode1, nNode2, index ); } else { - fn( an1[i].childNodes[j] ); + fn( nNode1, index ); } + index++; } + nNode1 = nNode1.nextSibling; + nNode2 = an2 ? nNode2.nextSibling : null; } + i++; } } - - /** * Convert a CSS unit width to pixels (e.g. 2em) * @param {string} sWidth width to be converted @@ -3414,7 +3536,7 @@ if ( !nParent ) { - nParent = document.getElementsByTagName('body')[0]; + nParent = document.body; } var iWidth; @@ -3444,6 +3566,7 @@ var i, iIndex, iCorrector, iWidth; var oHeaders = $('th', oSettings.nTHead); var widthAttr = oSettings.nTable.getAttribute('width'); + var nWrapper = oSettings.nTable.parentNode; /* Convert any user input sizes into pixel sizes */ for ( i=0 ; i<iColums ; i++ ) @@ -3455,7 +3578,7 @@ if ( oSettings.aoColumns[i].sWidth !== null ) { iTmpWidth = _fnConvertToWidth( oSettings.aoColumns[i].sWidthOrig, - oSettings.nTable.parentNode ); + nWrapper ); if ( iTmpWidth !== null ) { oSettings.aoColumns[i].sWidth = _fnStringToCss( iTmpWidth ); @@ -3555,7 +3678,6 @@ } /* Build the table and 'display' it */ - var nWrapper = oSettings.nTable.parentNode; nWrapper.appendChild( nCalcTmp ); /* When scrolling (X or Y) we want to set the width of the table as appropriate. However, @@ -3682,7 +3804,7 @@ * Get the widest node * @param {object} oSettings dataTables settings object * @param {int} iCol column of interest - * @returns {string} max strlens for each column + * @returns {node} widest table node * @memberof DataTable#oApi */ function _fnGetWidestNode( oSettings, iCol ) @@ -3707,7 +3829,7 @@ * Get the maximum strlen for each data column * @param {object} oSettings dataTables settings object * @param {int} iCol column of interest - * @returns {string} max strlens for each column + * @returns {string} max string length for each column * @memberof DataTable#oApi */ function _fnGetMaxLenString( oSettings, iCol ) @@ -3801,8 +3923,6 @@ return (w1 - w2); } - - /** * Change the order of the table * @param {object} oSettings dataTables settings object @@ -3829,7 +3949,7 @@ oSettings.aaSortingFixed.concat( oSettings.aaSorting ) : oSettings.aaSorting.slice(); - /* If there is a sorting data type, and a fuction belonging to it, then we need to + /* If there is a sorting data type, and a function belonging to it, then we need to * get the data from the developer's function and apply it for this column */ for ( i=0 ; i<aaSort.length ; i++ ) @@ -4011,17 +4131,17 @@ * twice - once for when bProcessing is enabled, and another time for when it is * disabled, as we need to perform slightly different actions. * Basically the issue here is that the Javascript engine in modern browsers don't - * appear to allow the rendering engine to update the display while it is still excuting + * appear to allow the rendering engine to update the display while it is still executing * it's thread (well - it does but only after long intervals). This means that the * 'processing' display doesn't appear for a table sort. To break the js thread up a bit * I force an execution break by using setTimeout - but this breaks the expected * thread continuation for the end-developer's point of view (their code would execute - * too early), so we on;y do it when we absolutely have to. + * too early), so we only do it when we absolutely have to. */ var fnInnerSorting = function () { var iColumn, iNextSort; - /* If the shift key is pressed then we are multipe column sorting */ + /* If the shift key is pressed then we are multiple column sorting */ if ( e.shiftKey ) { /* Are we already doing some kind of sort on this column? */ @@ -4194,10 +4314,10 @@ * Apply the required classes to the table body * Note that this is given as a feature switch since it can significantly slow down a sort * on large data sets (adding and removing of classes is always slow at the best of times..) - * Further to this, note that this code is admitadly fairly ugly. It could be made a lot - * simpiler using jQuery selectors and add/removeClass, but that is significantly slower + * Further to this, note that this code is admittedly fairly ugly. It could be made a lot + * simpler using jQuery selectors and add/removeClass, but that is significantly slower * (on the order of 5 times slower) - hence the direct DOM manipulation here. - * Note that for defered drawing we do use jQuery - the reason being that taking the first + * Note that for deferred drawing we do use jQuery - the reason being that taking the first * row found to see if the whole column needs processed can miss classes since the first * column might be new. */ @@ -4206,56 +4326,49 @@ if ( oSettings.oFeatures.bSort && oSettings.oFeatures.bSortClasses ) { var nTds = _fnGetTdNodes( oSettings ); - - /* Remove the old classes */ - if ( oSettings.oFeatures.bDeferRender ) + + /* Determine what the sorting class for each column should be */ + var iClass, iTargetCol; + var asClasses = []; + for (i = 0; i < iColumns; i++) { - $(nTds).removeClass(sClass+'1 '+sClass+'2 '+sClass+'3'); + asClasses.push(""); } - else if ( nTds.length >= iColumns ) + for (i = 0, iClass = 1; i < aaSort.length; i++) { - for ( i=0 ; i<iColumns ; i++ ) + iTargetCol = parseInt( aaSort[i][0], 10 ); + asClasses[iTargetCol] = sClass + iClass; + + if ( iClass < 3 ) { - if ( nTds[i].className.indexOf(sClass+"1") != -1 ) - { - for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ ) - { - nTds[(iColumns*j)+i].className = - $.trim( nTds[(iColumns*j)+i].className.replace( sClass+"1", "" ) ); - } - } - else if ( nTds[i].className.indexOf(sClass+"2") != -1 ) - { - for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ ) - { - nTds[(iColumns*j)+i].className = - $.trim( nTds[(iColumns*j)+i].className.replace( sClass+"2", "" ) ); - } - } - else if ( nTds[i].className.indexOf(sClass+"3") != -1 ) - { - for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ ) - { - nTds[(iColumns*j)+i].className = - $.trim( nTds[(iColumns*j)+i].className.replace( " "+sClass+"3", "" ) ); - } - } + iClass++; } } - /* Add the new classes to the table */ - var iClass = 1, iTargetCol; - for ( i=0 ; i<aaSort.length ; i++ ) + /* Make changes to the classes for each cell as needed */ + var reClass = new RegExp(sClass + "[123]"); + var sTmpClass, sCurrentClass, sNewClass; + for ( i=0, iLen=nTds.length; i<iLen; i++ ) { - iTargetCol = parseInt( aaSort[i][0], 10 ); - for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ ) + /* Determine which column we're looking at */ + iTargetCol = i % iColumns; + + /* What is the full list of classes now */ + sCurrentClass = nTds[i].className; + /* What sorting class should be applied? */ + sNewClass = asClasses[iTargetCol]; + /* What would the new full list be if we did a replacement? */ + sTmpClass = sCurrentClass.replace(reClass, sNewClass); + + if ( sTmpClass != sCurrentClass ) { - nTds[(iColumns*j)+iTargetCol].className += " "+sClass+iClass; + /* We changed something */ + nTds[i].className = $.trim( sTmpClass ); } - - if ( iClass < 3 ) + else if ( sNewClass.length > 0 && sCurrentClass.indexOf(sNewClass) == -1 ) { - iClass++; + /* We need to add a class */ + nTds[i].className = sCurrentClass + " " + sNewClass; } } } @@ -4343,7 +4456,7 @@ $.extend( true, oSettings.aoPreSearchCols, oData.aoSearchCols ); /* Column visibility state - * Pass back visibiliy settings to the init handler, but to do not here override + * Pass back visibility settings to the init handler, but to do not here override * the init object that the user might have passed in */ oInit.saved_aoColumns = []; @@ -4395,35 +4508,50 @@ } /* Are we going to go over the cookie limit of 4KiB? If so, try to delete a cookies - * belonging to DataTables. This is FAR from bullet proof + * belonging to DataTables. */ - var sOldName="", iOldTime=9999999999999; - var iLength = _fnReadCookie( sNameFile )!==null ? document.cookie.length : - sFullCookie.length + document.cookie.length; + var + aCookies =document.cookie.split(';'), + iNewCookieLen = sFullCookie.split(';')[0].length, + aOldCookies = []; - if ( iLength+10 > 4096 ) /* Magic 10 for padding */ + if ( iNewCookieLen+document.cookie.length+10 > 4096 ) /* Magic 10 for padding */ { - var aCookies =document.cookie.split(';'); for ( var i=0, iLen=aCookies.length ; i<iLen ; i++ ) { if ( aCookies[i].indexOf( sBaseName ) != -1 ) { /* It's a DataTables cookie, so eval it and check the time stamp */ var aSplitCookie = aCookies[i].split('='); - try { oData = eval( '('+decodeURIComponent(aSplitCookie[1])+')' ); } - catch( e ) { continue; } - - if ( oData.iCreate && oData.iCreate < iOldTime ) - { - sOldName = aSplitCookie[0]; - iOldTime = oData.iCreate; + try { + oData = eval( '('+decodeURIComponent(aSplitCookie[1])+')' ); + + if ( oData && oData.iCreate ) + { + aOldCookies.push( { + "name": aSplitCookie[0], + "time": oData.iCreate + } ); + } } + catch( e ) {} } } - - if ( sOldName !== "" ) - { - document.cookie = sOldName+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+ + + // Make sure we delete the oldest ones first + aOldCookies.sort( function (a, b) { + return b.time - a.time; + } ); + + // Eliminate as many old DataTables cookies as we need to + while ( iNewCookieLen + document.cookie.length + 10 > 4096 ) { + if ( aOldCookies.length === 0 ) { + // Deleted all DT cookies and still not enough space. Can't state save + return; + } + + var old = aOldCookies.pop(); + document.cookie = old.name+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+ aParts.join('/') + "/"; } } @@ -4463,7 +4591,6 @@ } - /** * Return the settings object for a particular table * @param {node} nTable table we are using as a dataTable @@ -4517,7 +4644,7 @@ { var anReturn = []; var iCorrector; - var anTds; + var anTds, nTd; var iRow, iRows=oSettings.aoData.length, iColumn, iColumns, oData, sNodeName, iStart=0, iEnd=iRows; @@ -4535,13 +4662,15 @@ { /* get the TD child nodes - taking into account text etc nodes */ anTds = []; - for ( iColumn=0, iColumns=oData.nTr.childNodes.length ; iColumn<iColumns ; iColumn++ ) + nTd = oData.nTr.firstChild; + while ( nTd ) { - sNodeName = oData.nTr.childNodes[iColumn].nodeName.toLowerCase(); + sNodeName = nTd.nodeName.toLowerCase(); if ( sNodeName == 'td' || sNodeName == 'th' ) { - anTds.push( oData.nTr.childNodes[iColumn] ); + anTds.push( nTd ); } + nTd = nTd.nextSibling; } iCorrector = 0; @@ -4630,17 +4759,21 @@ */ function _fnExtend( oOut, oExtender ) { + var val; + for ( var prop in oExtender ) { if ( oExtender.hasOwnProperty(prop) ) { - if ( typeof oInit[prop] === 'object' && $.isArray(oExtender[prop]) === false ) + val = oExtender[prop]; + + if ( typeof oInit[prop] === 'object' && val !== null && $.isArray(val) === false ) { - $.extend( true, oOut[prop], oExtender[prop] ); + $.extend( true, oOut[prop], val ); } else { - oOut[prop] = oExtender[prop]; + oOut[prop] = val; } } } @@ -4651,11 +4784,11 @@ /** * Bind an event handers to allow a click or return key to activate the callback. - * This is good for accessability since a return on the keyboard will have the + * This is good for accessibility since a return on the keyboard will have the * same effect as a click, if the element has focus. * @param {element} n Element to bind the action to * @param {object} oData Data object to pass to the triggered function - * @param {function) fn Callback function for when the event is triggered + * @param {function} fn Callback function for when the event is triggered * @memberof DataTable#oApi */ function _fnBindAction( n, oData, fn ) @@ -4680,9 +4813,9 @@ * Register a callback function. Easily allows a callback function to be added to * an array store of callback functions that can then all be called together. * @param {object} oSettings dataTables settings object - * @param {string} sStore Name of the array storeage for the callbacks in oSettings + * @param {string} sStore Name of the array storage for the callbacks in oSettings * @param {function} fn Function to be called back - * @param {string) sName Identifying name for the callback (i.e. a label) + * @param {string} sName Identifying name for the callback (i.e. a label) * @memberof DataTable#oApi */ function _fnCallbackReg( oSettings, sStore, fn, sName ) @@ -4702,10 +4835,10 @@ * array store is done backwards! Further note that you do not want to fire off triggers * in time sensitive applications (for example cell creation) as its slow. * @param {object} oSettings dataTables settings object - * @param {string} sStore Name of the array storeage for the callbacks in oSettings + * @param {string} sStore Name of the array storage for the callbacks in oSettings * @param {string} sTrigger Name of the jQuery custom event to trigger. If null no trigger * is fired - * @param {array) aArgs Array of arguments to pass to the callback function / trigger + * @param {array} aArgs Array of arguments to pass to the callback function / trigger * @memberof DataTable#oApi */ function _fnCallbackFire( oSettings, sStore, sTrigger, aArgs ) @@ -4730,7 +4863,7 @@ /** * JSON stringify. If JSON.stringify it provided by the browser, json2.js or any other * library, then we use that as it is fast, safe and accurate. If the function isn't - * available then we need to built it ourselves - the insperation for this function comes + * available then we need to built it ourselves - the inspiration for this function comes * from Craig Buckler ( http://www.sitepoint.com/javascript-json-serialization/ ). It is * not perfect and absolutely should not be used as a replacement to json2.js - but it does * do what we need, without requiring a dependency for DataTables. @@ -4778,9 +4911,32 @@ return (bArr ? "[" : "{") + json + (bArr ? "]" : "}"); }; - + /** + * From some browsers (specifically IE6/7) we need special handling to work around browser + * bugs - this function is used to detect when these workarounds are needed. + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnBrowserDetect( oSettings ) + { + /* IE6/7 will oversize a width 100% element inside a scrolling element, to include the + * width of the scrollbar, while other browsers ensure the inner element is contained + * without forcing scrolling + */ + var n = $( + '<div style="position:absolute; top:0; left:0; height:1px; width:1px; overflow:hidden">'+ + '<div style="position:absolute; top:1px; left:1px; width:100px; overflow:scroll;">'+ + '<div id="DT_BrowserTest" style="width:100%; height:10px;"></div>'+ + '</div>'+ + '</div>')[0]; + + document.body.appendChild( n ); + oSettings.oBrowser.bScrollOversize = $('#DT_BrowserTest', n)[0].offsetWidth === 100 ? true : false; + document.body.removeChild( n ); + } + /** * Perform a jQuery selector action on the table's TR elements (from the tbody) and * return the resulting jQuery object. @@ -4818,8 +4974,11 @@ */ this.$ = function ( sSelector, oOpts ) { - var i, iLen, a = []; + var i, iLen, a = [], tr; var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); + var aoData = oSettings.aoData; + var aiDisplay = oSettings.aiDisplay; + var aiDisplayMaster = oSettings.aiDisplayMaster; if ( !oOpts ) { @@ -4838,37 +4997,54 @@ { for ( i=oSettings._iDisplayStart, iLen=oSettings.fnDisplayEnd() ; i<iLen ; i++ ) { - a.push( oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ); + tr = aoData[ aiDisplay[i] ].nTr; + if ( tr ) + { + a.push( tr ); + } } } else if ( oOpts.order == "current" && oOpts.filter == "none" ) { - for ( i=0, iLen=oSettings.aiDisplayMaster.length ; i<iLen ; i++ ) + for ( i=0, iLen=aiDisplayMaster.length ; i<iLen ; i++ ) { - a.push( oSettings.aoData[ oSettings.aiDisplayMaster[i] ].nTr ); + tr = aoData[ aiDisplayMaster[i] ].nTr; + if ( tr ) + { + a.push( tr ); + } } } else if ( oOpts.order == "current" && oOpts.filter == "applied" ) { - for ( i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ ) + for ( i=0, iLen=aiDisplay.length ; i<iLen ; i++ ) { - a.push( oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ); + tr = aoData[ aiDisplay[i] ].nTr; + if ( tr ) + { + a.push( tr ); + } } } else if ( oOpts.order == "original" && oOpts.filter == "none" ) { - for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ ) + for ( i=0, iLen=aoData.length ; i<iLen ; i++ ) { - a.push( oSettings.aoData[ i ].nTr ); + tr = aoData[ i ].nTr ; + if ( tr ) + { + a.push( tr ); + } } } else if ( oOpts.order == "original" && oOpts.filter == "applied" ) { - for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ ) + for ( i=0, iLen=aoData.length ; i<iLen ; i++ ) { - if ( $.inArray( i, oSettings.aiDisplay ) !== -1 ) + tr = aoData[ i ].nTr; + if ( $.inArray( i, aiDisplay ) !== -1 && tr ) { - a.push( oSettings.aoData[ i ].nTr ); + a.push( tr ); } } } @@ -4892,11 +5068,11 @@ /** * Almost identical to $ in operation, but in this case returns the data for the matched * rows - as such, the jQuery selector used should match TR row nodes or TD/TH cell nodes - * rather than any decendents, so the data can be obtained for the row/cell. If matching + * rather than any descendants, so the data can be obtained for the row/cell. If matching * rows are found, the data returned is the original data array/object that was used to * create the row (or a generated array if from a DOM source). * - * This method is often useful incombination with $ where both functions are given the + * This method is often useful in-combination with $ where both functions are given the * same parameters and the array indexes will match identically. * @param {string|node|jQuery} sSelector jQuery selector or node collection to act on * @param {object} [oOpts] Optional parameters for modifying the rows to be included @@ -4960,8 +5136,8 @@ * <ul> * <li>1D array of data - add a single row with the data provided</li> * <li>2D array of arrays - add multiple rows in a single call</li> - * <li>object - data object when using <i>mDataProp</i></li> - * <li>array of objects - multiple data objects when using <i>mDataProp</i></li> + * <li>object - data object when using <i>mData</i></li> + * <li>array of objects - multiple data objects when using <i>mData</i></li> * </ul> * @param {bool} [bRedraw=true] redraw the table or not * @returns {array} An array of integers, representing the list of indexes in @@ -5195,8 +5371,8 @@ fnCallBack.call( this, oSettings, oData ); } - /* Check for an 'overflow' they case for dislaying the table */ - if ( oSettings._iDisplayStart >= oSettings.aiDisplay.length ) + /* Check for an 'overflow' they case for displaying the table */ + if ( oSettings._iDisplayStart >= oSettings.fnRecordsDisplay() ) { oSettings._iDisplayStart -= oSettings._iDisplayLength; if ( oSettings._iDisplayStart < 0 ) @@ -5235,20 +5411,23 @@ var nBody = oSettings.nTBody; var i, iLen; - bRemove = (bRemove===undefined) ? false : true; + bRemove = (bRemove===undefined) ? false : bRemove; /* Flag to note that the table is currently being destroyed - no action should be taken */ oSettings.bDestroying = true; /* Fire off the destroy callbacks for plug-ins etc */ _fnCallbackFire( oSettings, "aoDestroyCallback", "destroy", [oSettings] ); - - /* Restore hidden columns */ - for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ ) + + /* If the table is not being removed, restore the hidden columns */ + if ( !bRemove ) { - if ( oSettings.aoColumns[i].bVisible === false ) + for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ ) { - this.fnSetColumnVis( i, true ); + if ( oSettings.aoColumns[i].bVisible === false ) + { + this.fnSetColumnVis( i, true ); + } } } @@ -5324,12 +5503,19 @@ oSettings.nTable.style.width = _fnStringToCss(oSettings.sDestroyWidth); } - /* If the were originally odd/even type classes - then we add them back here. Note - * this is not fool proof (for example if not all rows as odd/even classes - but + /* If the were originally stripe classes - then we add them back here. Note + * this is not fool proof (for example if not all rows had stripe classes - but * it's a good effort without getting carried away */ - $(nBody).children('tr:even').addClass( oSettings.asDestroyStripes[0] ); - $(nBody).children('tr:odd').addClass( oSettings.asDestroyStripes[1] ); + iLen = oSettings.asDestroyStripes.length; + if (iLen) + { + var anRows = $(nBody).children('tr'); + for ( i=0 ; i<iLen ; i++ ) + { + anRows.filter(':nth-child(' + iLen + 'n + ' + i + ')').addClass( oSettings.asDestroyStripes[i] ); + } + } /* Remove the settings object from the settings array */ for ( i=0, iLen=DataTable.settings.length ; i<iLen ; i++ ) @@ -5342,6 +5528,7 @@ /* End it all */ oSettings = null; + oInit = null; }; @@ -5435,7 +5622,17 @@ var n = oSettings.aanFeatures.f; for ( var i=0, iLen=n.length ; i<iLen ; i++ ) { - $(n[i]._DT_Input).val( sInput ); + // IE9 throws an 'unknown error' if document.activeElement is used + // inside an iframe or frame... + try { + if ( n[i]._DT_Input != document.activeElement ) + { + $(n[i]._DT_Input).val( sInput ); + } + } + catch ( e ) { + $(n[i]._DT_Input).val( sInput ); + } } } } @@ -5555,7 +5752,8 @@ * and column index including hidden columns * @param {node} nNode this can either be a TR, TD or TH in the table's body * @returns {int} If nNode is given as a TR, then a single index is returned, or - * if given as a cell, an array of [row index, column index (visible)] is given. + * if given as a cell, an array of [row index, column index (visible), + * column index (all)] is given. * @dtopt API * * @example @@ -5929,7 +6127,7 @@ * @param {node|int} mRow TR element you want to update or the aoData index * @param {int} [iColumn] The column to update (not used of mData is an array or object) * @param {bool} [bRedraw=true] Redraw the table or not - * @param {bool} [bAction=true] Perform predraw actions or not + * @param {bool} [bAction=true] Perform pre-draw actions or not * @returns {int} 0 on success, 1 on error * @dtopt API * @@ -5947,30 +6145,26 @@ var iRow = (typeof mRow === 'object') ? _fnNodeToDataIndex(oSettings, mRow) : mRow; - if ( oSettings.__fnUpdateDeep === undefined && $.isArray(mData) && typeof mData === 'object' ) + if ( $.isArray(mData) && iColumn === undefined ) { /* Array update - update the whole row */ oSettings.aoData[iRow]._aData = mData.slice(); /* Flag to the function that we are recursing */ - oSettings.__fnUpdateDeep = true; for ( i=0 ; i<oSettings.aoColumns.length ; i++ ) { this.fnUpdate( _fnGetCellData( oSettings, iRow, i ), iRow, i, false, false ); } - oSettings.__fnUpdateDeep = undefined; } - else if ( oSettings.__fnUpdateDeep === undefined && mData !== null && typeof mData === 'object' ) + else if ( $.isPlainObject(mData) && iColumn === undefined ) { /* Object update - update the whole row - assume the developer gets the object right */ oSettings.aoData[iRow]._aData = $.extend( true, {}, mData ); - oSettings.__fnUpdateDeep = true; for ( i=0 ; i<oSettings.aoColumns.length ; i++ ) { this.fnUpdate( _fnGetCellData( oSettings, iRow, i ), iRow, i, false, false ); } - oSettings.__fnUpdateDeep = undefined; } else { @@ -5999,8 +6193,10 @@ * will rebuild the search array - however, the redraw might be disabled by the user) */ var iDisplayIndex = $.inArray( iRow, oSettings.aiDisplay ); - oSettings.asDataSearch[iDisplayIndex] = _fnBuildSearchRow( oSettings, - _fnGetRowData( oSettings, iRow, 'filter' ) ); + oSettings.asDataSearch[iDisplayIndex] = _fnBuildSearchRow( + oSettings, + _fnGetRowData( oSettings, iRow, 'filter', _fnGetColumns( oSettings, 'bSearchable' ) ) + ); /* Perform pre-draw actions */ if ( bAction === undefined || bAction ) @@ -6038,7 +6234,7 @@ /* * This is really a good bit rubbish this method of exposing the internal methods - * publically... - To be fixed in 2.0 using methods on the prototype + * publicly... - To be fixed in 2.0 using methods on the prototype */ @@ -6150,7 +6346,9 @@ "_fnJsonString": _fnJsonString, "_fnRender": _fnRender, "_fnNodeToColumnIndex": _fnNodeToColumnIndex, - "_fnInfoMacros": _fnInfoMacros + "_fnInfoMacros": _fnInfoMacros, + "_fnBrowserDetect": _fnBrowserDetect, + "_fnGetColumns": _fnGetColumns }; $.extend( DataTable.ext.oApi, this.oApi ); @@ -6165,8 +6363,7 @@ var _that = this; - return this.each(function() { - + this.each(function() { var i=0, iLen, j, jLen, k, kLen; var sId = this.getAttribute( 'id' ); var bInitHandedOff = false; @@ -6408,42 +6605,29 @@ } /* Remove row stripe classes if they are already on the table row */ - var bStripeRemove = false; - var anRows = $(this).children('tbody').children('tr'); - for ( i=0, iLen=oSettings.asStripeClasses.length ; i<iLen ; i++ ) + iLen=oSettings.asStripeClasses.length; + oSettings.asDestroyStripes = []; + if (iLen) { - if ( anRows.filter(":lt(2)").hasClass( oSettings.asStripeClasses[i]) ) + var bStripeRemove = false; + var anRows = $(this).children('tbody').children('tr:lt(' + iLen + ')'); + for ( i=0 ; i<iLen ; i++ ) { - bStripeRemove = true; - break; - } - } - - if ( bStripeRemove ) - { - /* Store the classes which we are about to remove so they can be readded on destroy */ - oSettings.asDestroyStripes = [ '', '' ]; - if ( $(anRows[0]).hasClass(oSettings.oClasses.sStripeOdd) ) - { - oSettings.asDestroyStripes[0] += oSettings.oClasses.sStripeOdd+" "; - } - if ( $(anRows[0]).hasClass(oSettings.oClasses.sStripeEven) ) - { - oSettings.asDestroyStripes[0] += oSettings.oClasses.sStripeEven; - } - if ( $(anRows[1]).hasClass(oSettings.oClasses.sStripeOdd) ) - { - oSettings.asDestroyStripes[1] += oSettings.oClasses.sStripeOdd+" "; + if ( anRows.hasClass( oSettings.asStripeClasses[i] ) ) + { + bStripeRemove = true; + + /* Store the classes which we are about to remove so they can be re-added on destroy */ + oSettings.asDestroyStripes.push( oSettings.asStripeClasses[i] ); + } } - if ( $(anRows[1]).hasClass(oSettings.oClasses.sStripeEven) ) + + if ( bStripeRemove ) { - oSettings.asDestroyStripes[1] += oSettings.oClasses.sStripeEven; + anRows.removeClass( oSettings.asStripeClasses.join(' ') ); } - - anRows.removeClass( oSettings.asStripeClasses.join(' ') ); } - /* * Columns * See if we should load columns automatically or use defined ones @@ -6539,6 +6723,9 @@ * Cache the header, body and footer as required, creating them if needed */ + /* Browser support detection */ + _fnBrowserDetect( oSettings ); + // Work around for Webkit bug 83867 - store the caption-side before removing from doc var captions = $(this).children('caption').each( function () { this._captionSide = $(this).css('caption-side'); @@ -6606,6 +6793,8 @@ _fnInitialise( oSettings ); } } ); + _that = null; + return this; }; @@ -6715,7 +6904,7 @@ * @type string * @default Version number */ - DataTable.version = "1.9.1"; + DataTable.version = "1.9.4"; /** * Private data store, containing all of the settings objects that are created for the @@ -6831,8 +7020,8 @@ * </il> * </ul> * - * Note that as of v1.9, it is typically preferable to use <i>mDataProp</i> to prepare data for - * the different uses that DataTables can put the data to. Specifically <i>mDataProp</i> when + * Note that as of v1.9, it is typically preferable to use <i>mData</i> to prepare data for + * the different uses that DataTables can put the data to. Specifically <i>mData</i> when * used as a function will give you a 'type' (sorting, filtering etc) that you can use to * prepare the data as required for the different types. As such, this method is deprecated. * @type array @@ -6997,8 +7186,8 @@ * </il> * </ul> * - * Note that as of v1.9, it is typically preferable to use <i>mDataProp</i> to prepare data for - * the different uses that DataTables can put the data to. Specifically <i>mDataProp</i> when + * Note that as of v1.9, it is typically preferable to use <i>mData</i> to prepare data for + * the different uses that DataTables can put the data to. Specifically <i>mData</i> when * used as a function will give you a 'type' (sorting, filtering etc) that you can use to * prepare the data as required for the different types. As such, this method is deprecated. * @type object @@ -7325,7 +7514,7 @@ /** * Data object from the original data source for the row. This is either * an array if using the traditional form of DataTables, or an object if - * using mDataProp options. The exact type will depend on the passed in + * using mData options. The exact type will depend on the passed in * data from the data source, or will be an array if using DOM a data * source. * @type array|object @@ -7419,14 +7608,14 @@ "bSortable": null, /** - * When using fnRender, you have two options for what to do with the data, - * and this property serves as the switch. Firstly, you can have the sorting - * and filtering use the rendered value (true - default), or you can have - * the sorting and filtering us the original value (false). - * - * *NOTE* It is it is advisable now to use mDataProp as a function and make - * use of the 'type' that it gives, allowing (potentially) different data to - * be used for sorting, filtering, display and type detection. + * <code>Deprecated</code> When using fnRender, you have two options for what + * to do with the data, and this property serves as the switch. Firstly, you + * can have the sorting and filtering use the rendered value (true - default), + * or you can have the sorting and filtering us the original value (false). + * + * Please note that this option has now been deprecated and will be removed + * in the next version of DataTables. Please use mRender / mData rather than + * fnRender. * @type boolean * @deprecated */ @@ -7449,9 +7638,9 @@ /** * Developer definable function that is called whenever a cell is created (Ajax source, - * etc) or processed for input (DOM source). This can be used as a compliment to fnRender + * etc) or processed for input (DOM source). This can be used as a compliment to mRender * allowing you to modify the DOM element (add background colour for example) when the - * element is available (since it is not when fnRender is called). + * element is available. * @type function * @param {element} nTd The TD node that has been created * @param {*} sData The Data for the cell @@ -7464,7 +7653,7 @@ /** * Function to get data from a cell in a column. You should <b>never</b> * access data directly through _aData internally in DataTables - always use - * the method attached to this property. It allows mDataProp to function as + * the method attached to this property. It allows mData to function as * required. This function is automatically assigned by the column * initialisation method * @type function @@ -7478,23 +7667,28 @@ "fnGetData": null, /** - * Custom display function that will be called for the display of each cell - * in this column. + * <code>Deprecated</code> Custom display function that will be called for the + * display of each cell in this column. + * + * Please note that this option has now been deprecated and will be removed + * in the next version of DataTables. Please use mRender / mData rather than + * fnRender. * @type function * @param {object} o Object with the following parameters: * @param {int} o.iDataRow The row in aoData * @param {int} o.iDataColumn The column in question - * @param {array o.aData The data for the row in question + * @param {array} o.aData The data for the row in question * @param {object} o.oSettings The settings object for this DataTables instance * @returns {string} The string you which to use in the display * @default null + * @deprecated */ "fnRender": null, /** * Function to set data for a cell in the column. You should <b>never</b> * set the data directly to _aData internally in DataTables - always use - * this method. It allows mDataProp to function as required. This function + * this method. It allows mData to function as required. This function * is automatically assigned by the column initialisation method * @type function * @param {array|object} oData The data array/object for the array @@ -7511,7 +7705,17 @@ * @type function|int|string|null * @default null */ - "mDataProp": null, + "mData": null, + + /** + * Partner property to mData which is used (only when defined) to get + * the data - i.e. it is basically the same as mData, but without the + * 'set' option, and also the data fed to it is the result from mData. + * This is the rendering method to match the data method of mData. + * @type function|int|string|null + * @default null + */ + "mRender": null, /** * Unique header TH/TD element for this column - this is what the sorting @@ -7552,7 +7756,7 @@ /** * Allows a default value to be given for a column's data, and will be used - * whenever a null data source is encountered (this can be because mDataProp + * whenever a null data source is encountered (this can be because mData * is set to null, or because the data source itself is null). * @type string * @default null @@ -7653,7 +7857,7 @@ * } ); * * @example - * // Using an array of objects as a data source (mDataProp) + * // Using an array of objects as a data source (mData) * $(document).ready( function () { * $('#example').dataTable( { * "aaData": [ @@ -7673,11 +7877,11 @@ * } * ], * "aoColumns": [ - * { "sTitle": "Engine", "mDataProp": "engine" }, - * { "sTitle": "Browser", "mDataProp": "browser" }, - * { "sTitle": "Platform", "mDataProp": "platform" }, - * { "sTitle": "Version", "mDataProp": "version" }, - * { "sTitle": "Grade", "mDataProp": "grade" } + * { "sTitle": "Engine", "mData": "engine" }, + * { "sTitle": "Browser", "mData": "browser" }, + * { "sTitle": "Platform", "mData": "platform" }, + * { "sTitle": "Version", "mData": "version" }, + * { "sTitle": "Grade", "mData": "grade" } * ] * } ); * } ); @@ -7746,7 +7950,7 @@ * @dtopt Option * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] * } ); @@ -7756,7 +7960,7 @@ * // Setting the default display length as well as length menu * // This is likely to be wanted if you remove the '10' option which * // is the iDisplayLength default. - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "iDisplayLength": 25, * "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]] @@ -7828,7 +8032,7 @@ * array may be of any length, and DataTables will apply each class * sequentially, looping when required. * @type array - * @default null <i>Will take the values determinted by the oClasses.sStripe* + * @default null <i>Will take the values determined by the oClasses.sStripe* * options</i> * @dtopt Option * @@ -7871,7 +8075,7 @@ * @dtopt Features * * @example - * $(document).ready(function() { + * $(document).ready( function() { * var oTable = $('#example').dataTable( { * "sAjaxSource": "sources/arrays.txt", * "bDeferRender": true @@ -7891,7 +8095,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "sScrollY": "200px", * "bPaginate": false @@ -8030,7 +8234,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * initTable(); * tableActions(); * } ); @@ -8062,7 +8266,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bScrollAutoCss": false, * "sScrollY": "200px" @@ -8084,7 +8288,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "sScrollY": "200", * "bScrollCollapse": true @@ -8106,7 +8310,7 @@ * @dtopt Features * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bScrollInfinite": true, * "bScrollCollapse": true, @@ -8163,7 +8367,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bSortCellsTop": true * } ); @@ -8250,7 +8454,7 @@ * @dtopt Callbacks * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "fnCreatedRow": function( nRow, aData, iDataIndex ) { * // Bold the grade for all 'A' grade browsers @@ -8323,7 +8527,7 @@ * @dtopt Callbacks * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "fnFormatNumber": function ( iIn ) { * if ( iIn &lt; 1000 ) { @@ -8482,7 +8686,7 @@ * @dtopt Callbacks * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) { * // Bold the grade for all 'A' grade browsers @@ -8515,13 +8719,13 @@ * * @example * // POST data to server - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bProcessing": true, * "bServerSide": true, * "sAjaxSource": "xhr.php", - * "fnServerData": function ( sSource, aoData, fnCallback ) { - * $.ajax( { + * "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { + * oSettings.jqXHR = $.ajax( { * "dataType": 'json', * "type": "POST", * "url": sSource, @@ -8537,7 +8741,11 @@ "url": sUrl, "data": aoData, "success": function (json) { - $(oSettings.oInstance).trigger('xhr', oSettings); + if ( json.sError ) { + oSettings.oApi._fnLog( oSettings, 0, json.sError ); + } + + $(oSettings.oInstance).trigger('xhr', [oSettings, json]); fnCallback( json ); }, "dataType": "json", @@ -8571,7 +8779,7 @@ * @dtopt Server-side * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bProcessing": true, * "bServerSide": true, @@ -8596,10 +8804,10 @@ * @dtopt Callbacks * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bStateSave": true, - * "fnStateLoad": function (oSettings, oData) { + * "fnStateLoad": function (oSettings) { * var o; * * // Send an Ajax request to the server to get the data. Note that @@ -8646,21 +8854,23 @@ * * @example * // Remove a saved filter, so filtering is never loaded - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bStateSave": true, * "fnStateLoadParams": function (oSettings, oData) { * oData.oSearch.sSearch = ""; + * } * } ); * } ); * * @example * // Disallow state loading by returning false - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bStateSave": true, * "fnStateLoadParams": function (oSettings, oData) { * return false; + * } * } ); * } ); */ @@ -8677,11 +8887,12 @@ * * @example * // Show an alert with the filtering value that was saved - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bStateSave": true, * "fnStateLoaded": function (oSettings, oData) { * alert( 'Saved filter was: '+oData.oSearch.sSearch ); + * } * } ); * } ); */ @@ -8699,7 +8910,7 @@ * @dtopt Callbacks * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bStateSave": true, * "fnStateSave": function (oSettings, oData) { @@ -8739,11 +8950,12 @@ * * @example * // Remove a saved filter, so filtering is never saved - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bStateSave": true, * "fnStateSaveParams": function (oSettings, oData) { * oData.oSearch.sSearch = ""; + * } * } ); * } ); */ @@ -8760,7 +8972,7 @@ * @example * $(document).ready( function() { * $('#example').dataTable( { - * "iCookieDuration": 60*60*24 // 1 day + * "iCookieDuration": 60*60*24; // 1 day * } ); * } ) */ @@ -8785,7 +8997,7 @@ * * @example * // 57 records available in the table, no filtering applied - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bServerSide": true, * "sAjaxSource": "scripts/server_processing.php", @@ -8795,7 +9007,7 @@ * * @example * // 57 records after filtering, 100 without filtering (an initial filter applied) - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bServerSide": true, * "sAjaxSource": "scripts/server_processing.php", @@ -8856,7 +9068,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bScrollInfinite": true, * "bScrollCollapse": true, @@ -8880,7 +9092,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "iTabIndex": 1 * } ); @@ -8912,7 +9124,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "oAria": { @@ -8933,7 +9145,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "oAria": { @@ -8960,7 +9172,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "oPaginate": { @@ -8981,7 +9193,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "oPaginate": { @@ -8991,18 +9203,18 @@ * } ); * } ); */ - "sLast": "Önceki Sayfa", + "sLast": "Last", /** - * Text to use when using the 'full_numbers' type of pagination for the - * button to take the user to the next page. + * Text to use for the 'next' pagination button (to take the user to the + * next page). * @type string * @default Next * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "oPaginate": { @@ -9012,18 +9224,18 @@ * } ); * } ); */ - "sNext": "Sonraki Sayfa", + "sNext": "Next", /** - * Text to use when using the 'full_numbers' type of pagination for the - * button to take the user to the previous page. + * Text to use for the 'previous' pagination button (to take the user to + * the previous page). * @type string * @default Previous * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "oPaginate": { @@ -9033,7 +9245,7 @@ * } ); * } ); */ - "sPrevious": "Önceki Sayfa" + "sPrevious": "Previous" }, /** @@ -9046,7 +9258,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sEmptyTable": "No data available in table" @@ -9054,7 +9266,7 @@ * } ); * } ); */ - "sEmptyTable": "Sorguda sonuç bulunamadı", + "sEmptyTable": "No data available in table", /** @@ -9067,7 +9279,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sInfo": "Got a total of _TOTAL_ entries to show (_START_ to _END_)" @@ -9075,7 +9287,7 @@ * } ); * } ); */ - "sInfo": "Gösterilen _START_ , _END_ arası toplam _TOTAL_ sayfa", + "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries", /** @@ -9086,7 +9298,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sInfoEmpty": "No entries to show" @@ -9094,7 +9306,7 @@ * } ); * } ); */ - "sInfoEmpty": "Sonuç bulunamadı", + "sInfoEmpty": "Showing 0 to 0 of 0 entries", /** @@ -9106,7 +9318,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sInfoFiltered": " - filtering from _MAX_ records" @@ -9127,7 +9339,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sInfoPostFix": "All records shown are derived from real information." @@ -9148,7 +9360,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sInfoThousands": "'" @@ -9170,7 +9382,7 @@ * * @example * // Language change only - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sLengthMenu": "Display _MENU_ records" @@ -9180,7 +9392,7 @@ * * @example * // Language and options change - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sLengthMenu": 'Display <select>'+ @@ -9228,7 +9440,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sProcessing": "DataTables is currently busy" @@ -9251,7 +9463,7 @@ * * @example * // Input text box will be appended at the end automatically - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sSearch": "Filter records:" @@ -9261,7 +9473,7 @@ * * @example * // Specify where the filter should appear - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sSearch": "Apply filter _INPUT_ to table" @@ -9269,7 +9481,7 @@ * } ); * } ); */ - "sSearch": "Ara:", + "sSearch": "Search:", /** @@ -9284,7 +9496,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sUrl": "http://www.sprymedia.co.uk/dataTables/lang.txt" @@ -9304,7 +9516,7 @@ * @dtopt Language * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "oLanguage": { * "sZeroRecords": "No records to display" @@ -9350,7 +9562,7 @@ * * @example * // Get data from { "data": [...] } - * $(document).ready(function() { + * $(document).ready( function() { * var oTable = $('#example').dataTable( { * "sAjaxSource": "sources/data.txt", * "sAjaxDataProp": "data" @@ -9359,7 +9571,7 @@ * * @example * // Get data from { "data": { "inner": [...] } } - * $(document).ready(function() { + * $(document).ready( function() { * var oTable = $('#example').dataTable( { * "sAjaxSource": "sources/data.txt", * "sAjaxDataProp": "data.inner" @@ -9397,7 +9609,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "sCookiePrefix": "my_datatable_", * } ); @@ -9449,9 +9661,9 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { - * "sDom": '&lt;"top"i&gt;rt&lt;"bottom"flp&gt;&lt;"clear"&lgt;' + * "sDom": '&lt;"top"i&gt;rt&lt;"bottom"flp&gt;&lt;"clear"&gt;' * } ); * } ); */ @@ -9487,7 +9699,7 @@ * @dtopt Features * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "sScrollX": "100%", * "bScrollCollapse": true @@ -9509,7 +9721,7 @@ * @dtopt Options * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "sScrollX": "100%", * "sScrollXInner": "110%" @@ -9531,7 +9743,7 @@ * @dtopt Features * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "sScrollY": "200px", * "bPaginate": false @@ -9550,7 +9762,7 @@ * @dtopt Server-side * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "bServerSide": true, * "sAjaxSource": "scripts/post.php", @@ -9578,7 +9790,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] }, @@ -9590,7 +9802,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "aDataSort": [ 0, 1 ] }, @@ -9615,7 +9827,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "asSorting": [ "asc" ], "aTargets": [ 1 ] }, @@ -9627,7 +9839,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * null, @@ -9650,7 +9862,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "bSearchable": false, "aTargets": [ 0 ] } @@ -9659,7 +9871,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "bSearchable": false }, @@ -9681,7 +9893,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "bSortable": false, "aTargets": [ 0 ] } @@ -9690,7 +9902,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "bSortable": false }, @@ -9705,51 +9917,18 @@ /** - * When using fnRender() for a column, you may wish to use the original data - * (before rendering) for sorting and filtering (the default is to used the - * rendered data that the user can see). This may be useful for dates etc. + * <code>Deprecated</code> When using fnRender() for a column, you may wish + * to use the original data (before rendering) for sorting and filtering + * (the default is to used the rendered data that the user can see). This + * may be useful for dates etc. * - * *NOTE* It is it is advisable now to use mDataProp as a function and make - * use of the 'type' that it gives, allowing (potentially) different data to - * be used for sorting, filtering, display and type detection. + * Please note that this option has now been deprecated and will be removed + * in the next version of DataTables. Please use mRender / mData rather than + * fnRender. * @type boolean * @default true * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready(function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { - * "fnRender": function ( oObj ) { - * return oObj.aData[0] +' '+ oObj.aData[3]; - * }, - * "bUseRendered": false, - * "aTargets": [ 0 ] - * } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready(function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { - * "fnRender": function ( oObj ) { - * return oObj.aData[0] +' '+ oObj.aData[3]; - * }, - * "bUseRendered": false - * }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); + * @deprecated */ "bUseRendered": true, @@ -9762,7 +9941,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "bVisible": false, "aTargets": [ 0 ] } @@ -9771,7 +9950,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "bVisible": false }, @@ -9787,9 +9966,9 @@ /** * Developer definable function that is called whenever a cell is created (Ajax source, - * etc) or processed for input (DOM source). This can be used as a compliment to fnRender + * etc) or processed for input (DOM source). This can be used as a compliment to mRender * allowing you to modify the DOM element (add background colour for example) when the - * element is available (since it is not when fnRender is called). + * element is available. * @type function * @param {element} nTd The TD node that has been created * @param {*} sData The Data for the cell @@ -9799,7 +9978,7 @@ * @dtopt Columns * * @example - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ { * "aTargets": [3], @@ -9816,8 +9995,12 @@ /** - * Custom display function that will be called for the display of each cell in - * this column. + * <code>Deprecated</code> Custom display function that will be called for the + * display of each cell in this column. + * + * Please note that this option has now been deprecated and will be removed + * in the next version of DataTables. Please use mRender / mData rather than + * fnRender. * @type function * @param {object} o Object with the following parameters: * @param {int} o.iDataRow The row in aoData @@ -9828,37 +10011,7 @@ * @param {*} val The current cell value * @returns {string} The string you which to use in the display * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready(function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { - * "fnRender": function ( o, val ) { - * return o.aData[0] +' '+ o.aData[3]; - * }, - * "aTargets": [ 0 ] - * } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready(function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "fnRender": function ( o, val ) { - * return o.aData[0] +' '+ o.aData[3]; - * } }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); + * @deprecated */ "fnRender": null, @@ -9873,7 +10026,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "iDataSort": 1, "aTargets": [ 0 ] } @@ -9883,7 +10036,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "iDataSort": 1 }, @@ -9898,15 +10051,24 @@ "iDataSort": -1, + /** + * This parameter has been replaced by mData in DataTables to ensure naming + * consistency. mDataProp can still be used, as there is backwards compatibility + * in DataTables for this option, but it is strongly recommended that you use + * mData in preference to mDataProp. + * @name DataTable.defaults.columns.mDataProp + */ + + /** * This property can be used to read data from any JSON data source property, - * including deeply nested objects / properties. mDataProp can be given in a + * including deeply nested objects / properties. mData can be given in a * number of different ways which effect its behaviour: * <ul> * <li>integer - treated as an array index for the data source. This is the * default that DataTables uses (incrementally increased for each column).</li> * <li>string - read an object property from the data source. Note that you can - * use Javascript dotted notation to read deep properties/arrays from the + * use Javascript dotted notation to read deep properties / arrays from the * data source.</li> * <li>null - the sDefaultContent option will be used for the cell (null * by default, so you will need to specify the default content you want - @@ -9927,34 +10089,38 @@ * of call, but otherwise the return is what will be used for the data * requested.</li> * </ul> + * + * Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change + * reflects the flexibility of this property and is consistent with the naming of + * mRender. If 'mDataProp' is given, then it will still be used by DataTables, as + * it automatically maps the old name to the new if required. * @type string|int|function|null * @default null <i>Use automatically calculated column index</i> * @dtopt Columns * * @example * // Read table data from objects - * $(document).ready(function() { + * $(document).ready( function() { * var oTable = $('#example').dataTable( { * "sAjaxSource": "sources/deep.txt", * "aoColumns": [ - * { "mDataProp": "engine" }, - * { "mDataProp": "browser" }, - * { "mDataProp": "platform.inner" }, - * { "mDataProp": "platform.details.0" }, - * { "mDataProp": "platform.details.1" } + * { "mData": "engine" }, + * { "mData": "browser" }, + * { "mData": "platform.inner" }, + * { "mData": "platform.details.0" }, + * { "mData": "platform.details.1" } * ] * } ); * } ); * * @example - * // Using mDataProp as a function to provide different information for + * // Using mData as a function to provide different information for * // sorting, filtering and display. In this case, currency (price) - * $(document).ready(function() { + * $(document).ready( function() { * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ - * { + * "aoColumnDefs": [ { * "aTargets": [ 0 ], - * "mDataProp": function ( source, type, val ) { + * "mData": function ( source, type, val ) { * if (type === 'set') { * source.price = val; * // Store the computed dislay and filter values for efficiency @@ -9971,11 +10137,80 @@ * // 'sort', 'type' and undefined all just use the integer * return source.price; * } + * } ] + * } ); + * } ); + */ + "mData": null, + + + /** + * This property is the rendering partner to mData and it is suggested that + * when you want to manipulate data for display (including filtering, sorting etc) + * but not altering the underlying data for the table, use this property. mData + * can actually do everything this property can and more, but this parameter is + * easier to use since there is no 'set' option. Like mData is can be given + * in a number of different ways to effect its behaviour, with the addition of + * supporting array syntax for easy outputting of arrays (including arrays of + * objects): + * <ul> + * <li>integer - treated as an array index for the data source. This is the + * default that DataTables uses (incrementally increased for each column).</li> + * <li>string - read an object property from the data source. Note that you can + * use Javascript dotted notation to read deep properties / arrays from the + * data source and also array brackets to indicate that the data reader should + * loop over the data source array. When characters are given between the array + * brackets, these characters are used to join the data source array together. + * For example: "accounts[, ].name" would result in a comma separated list with + * the 'name' value from the 'accounts' array of objects.</li> + * <li>function - the function given will be executed whenever DataTables + * needs to set or get the data for a cell in the column. The function + * takes three parameters: + * <ul> + * <li>{array|object} The data source for the row (based on mData)</li> + * <li>{string} The type call data requested - this will be 'filter', 'display', + * 'type' or 'sort'.</li> + * <li>{array|object} The full data source for the row (not based on mData)</li> + * </ul> + * The return value from the function is what will be used for the data + * requested.</li> + * </ul> + * @type string|int|function|null + * @default null <i>Use mData</i> + * @dtopt Columns + * + * @example + * // Create a comma separated list from an array of objects + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "sAjaxSource": "sources/deep.txt", + * "aoColumns": [ + * { "mData": "engine" }, + * { "mData": "browser" }, + * { + * "mData": "platform", + * "mRender": "[, ].name" + * } + * ] + * } ); + * } ); + * + * @example + * // Use as a function to create a link from the data source + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "aoColumnDefs": [ + * { + * "aTargets": [ 0 ], + * "mData": "download_link", + * "mRender": function ( data, type, full ) { + * return '<a href="'+data+'">Download</a>'; + * } * ] * } ); * } ); */ - "mDataProp": null, + "mRender": null, /** @@ -9988,13 +10223,12 @@ * * @example * // Make the first column use TH cells - * $(document).ready(function() { + * $(document).ready( function() { * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ - * { + * "aoColumnDefs": [ { * "aTargets": [ 0 ], * "sCellType": "th" - * ] + * } ] * } ); * } ); */ @@ -10009,7 +10243,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "sClass": "my_class", "aTargets": [ 0 ] } @@ -10019,7 +10253,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "sClass": "my_class" }, @@ -10050,7 +10284,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * null, @@ -10068,7 +10302,7 @@ /** * Allows a default value to be given for a column's data, and will be used - * whenever a null data source is encountered (this can be because mDataProp + * whenever a null data source is encountered (this can be because mData * is set to null, or because the data source itself is null). * @type string * @default null @@ -10076,11 +10310,11 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { - * "mDataProp": null, + * "mData": null, * "sDefaultContent": "Edit", * "aTargets": [ -1 ] * } @@ -10090,14 +10324,14 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * null, * null, * null, * { - * "mDataProp": null, + * "mData": null, * "sDefaultContent": "Edit" * } * ] @@ -10120,7 +10354,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "sName": "engine", "aTargets": [ 0 ] }, @@ -10134,7 +10368,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "sName": "engine" }, @@ -10151,7 +10385,7 @@ /** * Defines a data source type for the sorting which can be used to read - * realtime information from the table (updating the internally cached + * real-time information from the table (updating the internally cached * version) prior to sorting. This allows sorting to occur on user editable * elements such as form inputs. * @type string @@ -10160,7 +10394,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "sSortDataType": "dom-text", "aTargets": [ 2, 3 ] }, @@ -10173,7 +10407,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * null, @@ -10198,7 +10432,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "sTitle": "My column title", "aTargets": [ 0 ] } @@ -10208,7 +10442,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "sTitle": "My column title" }, @@ -10237,7 +10471,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "sType": "html", "aTargets": [ 0 ] } @@ -10247,7 +10481,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "sType": "html" }, @@ -10264,7 +10498,7 @@ /** * Defining the width of the column, this parameter may take any CSS value - * (3em, 20px etc). DataTables applys 'smart' widths to columns which have not + * (3em, 20px etc). DataTables apples 'smart' widths to columns which have not * been given a specific width through this interface ensuring that the table * remains readable. * @type string @@ -10273,7 +10507,7 @@ * * @example * // Using aoColumnDefs - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumnDefs": [ * { "sWidth": "20%", "aTargets": [ 0 ] } @@ -10283,7 +10517,7 @@ * * @example * // Using aoColumns - * $(document).ready(function() { + * $(document).ready( function() { * $('#example').dataTable( { * "aoColumns": [ * { "sWidth": "20%" }, @@ -10523,11 +10757,25 @@ * Information callback function. See * {@link DataTable.defaults.fnInfoCallback} * @type function - * @default + * @default null */ "fnInfoCallback": null }, + /** + * Browser support parameters + * @namespace + */ + "oBrowser": { + /** + * Indicate if the browser incorrectly calculates width:100% inside a + * scrolling element (IE6/7) + * @type boolean + * @default false + */ + "bScrollOversize": false + }, + /** * Array referencing the nodes which are used for the features. The * parameters of this object match what is allowed by sDom - i.e. @@ -11238,7 +11486,9 @@ "sScrollFootInner": "dataTables_scrollFootInner", /* Misc */ - "sFooterTH": "" + "sFooterTH": "", + "sJUIHeader": "", + "sJUIFooter": "" } ); @@ -11282,10 +11532,11 @@ "sScrollFoot": "dataTables_scrollFoot ui-state-default", /* Misc */ - "sFooterTH": "ui-state-default" + "sFooterTH": "ui-state-default", + "sJUIHeader": "fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix", + "sJUIFooter": "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix" } ); - /* * Variable: oPagination * Purpose: @@ -11360,17 +11611,22 @@ var oClasses = oSettings.oClasses; var an = oSettings.aanFeatures.p; + var nNode; /* Loop over each instance of the pager */ for ( var i=0, iLen=an.length ; i<iLen ; i++ ) { - if ( an[i].childNodes.length !== 0 ) + nNode = an[i].firstChild; + if ( nNode ) { - an[i].childNodes[0].className = ( oSettings._iDisplayStart === 0 ) ? - oClasses.sPagePrevDisabled : oClasses.sPagePrevEnabled; - - an[i].childNodes[1].className = ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ? - oClasses.sPageNextDisabled : oClasses.sPageNextEnabled; + /* Previous page */ + nNode.className = ( oSettings._iDisplayStart === 0 ) ? + oClasses.sPagePrevDisabled : oClasses.sPagePrevEnabled; + + /* Next page */ + nNode = nNode.nextSibling; + nNode.className = ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ? + oClasses.sPageNextDisabled : oClasses.sPageNextEnabled; } } } @@ -11459,7 +11715,7 @@ var sList = ""; var iStartButton, iEndButton, i, iLen; var oClasses = oSettings.oClasses; - var anButtons, anStatic, nPaginateList; + var anButtons, anStatic, nPaginateList, nNode; var an = oSettings.aanFeatures.p; var fnBind = function (j) { oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) { @@ -11510,18 +11766,19 @@ /* Loop over each instance of the pager */ for ( i=0, iLen=an.length ; i<iLen ; i++ ) { - if ( an[i].childNodes.length === 0 ) + nNode = an[i]; + if ( !nNode.hasChildNodes() ) { continue; } - /* Build up the dynamic list forst - html and listeners */ - $('span:eq(0)', an[i]) + /* Build up the dynamic list first - html and listeners */ + $('span:eq(0)', nNode) .html( sList ) .children('a').each( fnBind ); - /* Update the premanent botton's classes */ - anButtons = an[i].getElementsByTagName('a'); + /* Update the permanent button's classes */ + anButtons = nNode.getElementsByTagName('a'); anStatic = [ anButtons[0], anButtons[1], anButtons[anButtons.length-2], anButtons[anButtons.length-1] @@ -11824,6 +12081,7 @@ * @event * @param {event} e jQuery event object * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + * @param {object} json JSON returned from the server */ /** @@ -11835,4 +12093,7 @@ * @param {event} e jQuery event object * @param {object} o DataTables settings object {@link DataTable.models.oSettings} */ -}(jQuery, window, document, undefined)); +})); + +}(window, document)); + diff --git a/theme/javascripts/jquery.js b/theme/js/jquery.js similarity index 58% rename from theme/javascripts/jquery.js rename to theme/js/jquery.js index 3774ff9..12c7797 100644 --- a/theme/javascripts/jquery.js +++ b/theme/js/jquery.js @@ -1,31 +1,28 @@ /*! - * jQuery JavaScript Library v1.7.2 + * jQuery JavaScript Library v1.8.2 * http://jquery.com/ * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * * Includes Sizzle.js * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. * - * Date: Wed Mar 21 12:46:34 2012 -0700 + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: Thu Sep 20 2012 21:13:05 GMT-0400 (Eastern Daylight Time) */ (function( window, undefined ) { +var + // A central reference to the root jQuery(document) + rootjQuery, -// Use the correct document accordingly with window argument (sandbox) -var document = window.document, - navigator = window.navigator, - location = window.location; -var jQuery = (function() { + // The deferred used on DOM ready + readyList, -// Define a local copy of jQuery -var jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + location = window.location, + navigator = window.navigator, // Map over jQuery in case of overwrite _jQuery = window.jQuery, @@ -33,63 +30,64 @@ var jQuery = function( selector, context ) { // Map over the $ in case of overwrite _$ = window.$, - // A central reference to the root jQuery(document) - rootjQuery, + // Save a reference to some core methods + core_push = Array.prototype.push, + core_slice = Array.prototype.slice, + core_indexOf = Array.prototype.indexOf, + core_toString = Object.prototype.toString, + core_hasOwn = Object.prototype.hasOwnProperty, + core_trim = String.prototype.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, - // A simple way to check for HTML strings or ID strings - // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) - quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + // Used for matching numbers + core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, - // Check if a string has a non-whitespace character in it - rnotwhite = /\S/, + // Used for detecting and trimming whitespace + core_rnotwhite = /\S/, + core_rspace = /\s+/, - // Used for trimming whitespace - trimLeft = /^\s+/, - trimRight = /\s+$/, + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, // JSON RegExp rvalidchars = /^[\],:{}\s]*$/, - rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, - rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - - // Useragent RegExp - rwebkit = /(webkit)[ \/]([\w.]+)/, - ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, - rmsie = /(msie) ([\w.]+)/, - rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, // Matches dashed string for camelizing - rdashAlpha = /-([a-z]|[0-9])/ig, rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, // Used by jQuery.camelCase as callback to replace() fcamelCase = function( all, letter ) { return ( letter + "" ).toUpperCase(); }, - // Keep a UserAgent string for use with jQuery.browser - userAgent = navigator.userAgent, - - // For matching the engine and version of the browser - browserMatch, - - // The deferred used on DOM ready - readyList, - - // The ready event handler - DOMContentLoaded, - - // Save a reference to some core methods - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty, - push = Array.prototype.push, - slice = Array.prototype.slice, - trim = String.prototype.trim, - indexOf = Array.prototype.indexOf, + // The ready event handler and self cleanup method + DOMContentLoaded = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + } else if ( document.readyState === "complete" ) { + // we're here because readyState === "complete" in oldIE + // which is good enough for us to call the dom ready! + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }, // [[Class]] -> type pairs class2type = {}; @@ -99,7 +97,7 @@ jQuery.fn = jQuery.prototype = { init: function( selector, context, rootjQuery ) { var match, elem, ret, doc; - // Handle $(""), $(null), or $(undefined) + // Handle $(""), $(null), $(undefined), $(false) if ( !selector ) { return this; } @@ -111,55 +109,33 @@ jQuery.fn = jQuery.prototype = { return this; } - // The body element only exists once, optimize finding it - if ( selector === "body" && !context && document.body ) { - this.context = document; - this[0] = document.body; - this.selector = selector; - this.length = 1; - return this; - } - // Handle HTML strings if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { // Assume that strings that start and end with <> are HTML and skip the regex check match = [ null, selector, null ]; } else { - match = quickExpr.exec( selector ); + match = rquickExpr.exec( selector ); } - // Verify a match, and that no context was specified for #id + // Match html or make sure no context is specified for #id if ( match && (match[1] || !context) ) { // HANDLE: $(html) -> $(array) if ( match[1] ) { context = context instanceof jQuery ? context[0] : context; - doc = ( context ? context.ownerDocument || context : document ); - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - ret = rsingleTag.exec( selector ); - - if ( ret ) { - if ( jQuery.isPlainObject( context ) ) { - selector = [ document.createElement( ret[1] ) ]; - jQuery.fn.attr.call( selector, context, true ); - - } else { - selector = [ doc.createElement( ret[1] ) ]; - } + doc = ( context && context.nodeType ? context.ownerDocument || context : document ); - } else { - ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); - selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes; + // scripts is true for back-compat + selector = jQuery.parseHTML( match[1], doc, true ); + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + this.attr.call( selector, context, true ); } return jQuery.merge( this, selector ); - // HANDLE: $("#id") + // HANDLE: $(#id) } else { elem = document.getElementById( match[2] ); @@ -210,7 +186,7 @@ jQuery.fn = jQuery.prototype = { selector: "", // The current version of jQuery being used - jquery: "1.7.2", + jquery: "1.8.2", // The default length of a jQuery object is 0 length: 0, @@ -221,7 +197,7 @@ jQuery.fn = jQuery.prototype = { }, toArray: function() { - return slice.call( this, 0 ); + return core_slice.call( this ); }, // Get the Nth element in the matched element set OR @@ -239,15 +215,9 @@ jQuery.fn = jQuery.prototype = { // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = this.constructor(); - if ( jQuery.isArray( elems ) ) { - push.apply( ret, elems ); - - } else { - jQuery.merge( ret, elems ); - } + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); // Add the old object onto the stack (as a reference) ret.prevObject = this; @@ -272,11 +242,8 @@ jQuery.fn = jQuery.prototype = { }, ready: function( fn ) { - // Attach the listeners - jQuery.bindReady(); - // Add the callback - readyList.add( fn ); + jQuery.ready.promise().done( fn ); return this; }, @@ -297,8 +264,8 @@ jQuery.fn = jQuery.prototype = { }, slice: function() { - return this.pushStack( slice.apply( this, arguments ), - "slice", slice.call(arguments).join(",") ); + return this.pushStack( core_slice.apply( this, arguments ), + "slice", core_slice.call(arguments).join(",") ); }, map: function( callback ) { @@ -313,7 +280,7 @@ jQuery.fn = jQuery.prototype = { // For internal use only. // Behaves like an Array's method, not like a jQuery method. - push: push, + push: core_push, sort: [].sort, splice: [].splice }; @@ -416,73 +383,31 @@ jQuery.extend({ // Handle when the DOM is ready ready: function( wait ) { - // Either a released hold or an DOMready/load event and not yet ready - if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready, 1 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.fireWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger( "ready" ).off( "ready" ); - } - } - }, - bindReady: function() { - if ( readyList ) { + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { return; } - readyList = jQuery.Callbacks( "once memory" ); - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { return setTimeout( jQuery.ready, 1 ); } - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", jQuery.ready, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", DOMContentLoaded ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", jQuery.ready ); + // Remember that the DOM is ready + jQuery.isReady = true; - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } - try { - toplevel = window.frameElement == null; - } catch(e) {} + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); - if ( document.documentElement.doScroll && toplevel ) { - doScrollCheck(); - } + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); } }, @@ -508,7 +433,7 @@ jQuery.extend({ type: function( obj ) { return obj == null ? String( obj ) : - class2type[ toString.call(obj) ] || "object"; + class2type[ core_toString.call(obj) ] || "object"; }, isPlainObject: function( obj ) { @@ -522,8 +447,8 @@ jQuery.extend({ try { // Not own constructor property must be Object if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { return false; } } catch ( e ) { @@ -537,11 +462,12 @@ jQuery.extend({ var key; for ( key in obj ) {} - return key === undefined || hasOwn.call( obj, key ); + return key === undefined || core_hasOwn.call( obj, key ); }, isEmptyObject: function( obj ) { - for ( var name in obj ) { + var name; + for ( name in obj ) { return false; } return true; @@ -551,8 +477,32 @@ jQuery.extend({ throw new Error( msg ); }, + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // scripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, scripts ) { + var parsed; + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + scripts = context; + context = 0; + } + context = context || document; + + // Single tag + if ( (parsed = rsingleTag.exec( data )) ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ? null : [] ); + return jQuery.merge( [], + (parsed.cacheable ? jQuery.clone( parsed.fragment ) : parsed.fragment).childNodes ); + }, + parseJSON: function( data ) { - if ( typeof data !== "string" || !data ) { + if ( !data || typeof data !== "string") { return null; } @@ -578,10 +528,10 @@ jQuery.extend({ // Cross-browser xml parsing parseXML: function( data ) { - if ( typeof data !== "string" || !data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { return null; } - var xml, tmp; try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); @@ -606,7 +556,7 @@ jQuery.extend({ // Workarounds based on findings by Jim Driscoll // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context globalEval: function( data ) { - if ( data && rnotwhite.test( data ) ) { + if ( data && core_rnotwhite.test( data ) ) { // We use execScript on Internet Explorer // We use an anonymous function so that context is window // rather than jQuery in Firefox @@ -623,25 +573,26 @@ jQuery.extend({ }, nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); }, // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, - length = object.length, - isObj = length === undefined || jQuery.isFunction( object ); + each: function( obj, callback, args ) { + var name, + i = 0, + length = obj.length, + isObj = length === undefined || jQuery.isFunction( obj ); if ( args ) { if ( isObj ) { - for ( name in object ) { - if ( callback.apply( object[ name ], args ) === false ) { + for ( name in obj ) { + if ( callback.apply( obj[ name ], args ) === false ) { break; } } } else { for ( ; i < length; ) { - if ( callback.apply( object[ i++ ], args ) === false ) { + if ( callback.apply( obj[ i++ ], args ) === false ) { break; } } @@ -650,71 +601,72 @@ jQuery.extend({ // A special, fast, case for the most common use of each } else { if ( isObj ) { - for ( name in object ) { - if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + for ( name in obj ) { + if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { - if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) { break; } } } } - return object; + return obj; }, // Use native String.trim function wherever possible - trim: trim ? + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? function( text ) { return text == null ? "" : - trim.call( text ); + core_trim.call( text ); } : // Otherwise use our own trimming functionality function( text ) { return text == null ? "" : - text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + ( text + "" ).replace( rtrim, "" ); }, // results is for internal usage only - makeArray: function( array, results ) { - var ret = results || []; + makeArray: function( arr, results ) { + var type, + ret = results || []; - if ( array != null ) { + if ( arr != null ) { // The window, strings (and functions) also have 'length' // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type( array ); + type = jQuery.type( arr ); - if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { - push.call( ret, array ); + if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) { + core_push.call( ret, arr ); } else { - jQuery.merge( ret, array ); + jQuery.merge( ret, arr ); } } return ret; }, - inArray: function( elem, array, i ) { + inArray: function( elem, arr, i ) { var len; - if ( array ) { - if ( indexOf ) { - return indexOf.call( array, elem, i ); + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); } - len = array.length; + len = arr.length; i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; for ( ; i < len; i++ ) { // Skip accessing in sparse arrays - if ( i in array && array[ i ] === elem ) { + if ( i in arr && arr[ i ] === elem ) { return i; } } @@ -724,11 +676,12 @@ jQuery.extend({ }, merge: function( first, second ) { - var i = first.length, + var l = second.length, + i = first.length, j = 0; - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { first[ i++ ] = second[ j ]; } @@ -744,12 +697,15 @@ jQuery.extend({ }, grep: function( elems, callback, inv ) { - var ret = [], retVal; + var retVal, + ret = [], + i = 0, + length = elems.length; inv = !!inv; // Go through the array, only saving the items // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) { + for ( ; i < length; i++ ) { retVal = !!callback( elems[ i ], i ); if ( inv !== retVal ) { ret.push( elems[ i ] ); @@ -761,7 +717,8 @@ jQuery.extend({ // arg is for internal usage only map: function( elems, callback, arg ) { - var value, key, ret = [], + var value, key, + ret = [], i = 0, length = elems.length, // jquery objects are treated as arrays @@ -798,8 +755,10 @@ jQuery.extend({ // Bind a function to a context, optionally partially applying any // arguments. proxy: function( fn, context ) { + var tmp, args, proxy; + if ( typeof context === "string" ) { - var tmp = fn[ context ]; + tmp = fn[ context ]; context = fn; fn = tmp; } @@ -811,18 +770,18 @@ jQuery.extend({ } // Simulated bind - var args = slice.call( arguments, 2 ), - proxy = function() { - return fn.apply( context, args.concat( slice.call( arguments ) ) ); - }; + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context, args.concat( core_slice.call( arguments ) ) ); + }; // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + proxy.guid = fn.guid = fn.guid || jQuery.guid++; return proxy; }, - // Mutifunctional method to get and set values to a collection + // Multifunctional method to get and set values of a collection // The value/s can optionally be executed if it's a function access: function( elems, fn, key, value, chainable, emptyGet, pass ) { var exec, @@ -877,136 +836,96 @@ jQuery.extend({ now: function() { return ( new Date() ).getTime(); - }, - - // Use of jQuery.browser is frowned upon. - // More details: http://docs.jquery.com/Utilities/jQuery.browser - uaMatch: function( ua ) { - ua = ua.toLowerCase(); + } +}); - var match = rwebkit.exec( ua ) || - ropera.exec( ua ) || - rmsie.exec( ua ) || - ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || - []; +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { - return { browser: match[1] || "", version: match[2] || "0" }; - }, + readyList = jQuery.Deferred(); - sub: function() { - function jQuerySub( selector, context ) { - return new jQuerySub.fn.init( selector, context ); - } - jQuery.extend( true, jQuerySub, this ); - jQuerySub.superclass = this; - jQuerySub.fn = jQuerySub.prototype = this(); - jQuerySub.fn.constructor = jQuerySub; - jQuerySub.sub = this.sub; - jQuerySub.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { - context = jQuerySub( context ); - } + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready, 1 ); - return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); - }; - jQuerySub.fn.init.prototype = jQuerySub.fn; - var rootjQuerySub = jQuerySub(document); - return jQuerySub; - }, + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - browser: {} -}); + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", DOMContentLoaded ); -browserMatch = jQuery.uaMatch( userAgent ); -if ( browserMatch.browser ) { - jQuery.browser[ browserMatch.browser ] = true; - jQuery.browser.version = browserMatch.version; -} + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); -// Deprecated, use jQuery.browser.webkit instead -if ( jQuery.browser.webkit ) { - jQuery.browser.safari = true; -} + // If IE and not a frame + // continually check to see if the document is ready + var top = false; -// IE doesn't match non-breaking spaces with \s -if ( rnotwhite.test( "\xA0" ) ) { - trimLeft = /^[\s\xA0]+/; - trimRight = /[\s\xA0]+$/; -} + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} -// All jQuery objects should point back to these -rootjQuery = jQuery(document); + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { -// Cleanup functions for the document ready method -if ( document.addEventListener ) { - DOMContentLoaded = function() { - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - jQuery.ready(); - }; + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } -} else if ( document.attachEvent ) { - DOMContentLoaded = function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", DOMContentLoaded ); - jQuery.ready(); + // and execute any waiting functions + jQuery.ready(); + } + })(); + } } - }; -} - -// The DOM ready check for Internet Explorer -function doScrollCheck() { - if ( jQuery.isReady ) { - return; - } - - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch(e) { - setTimeout( doScrollCheck, 1 ); - return; } + return readyList.promise( obj ); +}; - // and execute any waiting functions - jQuery.ready(); -} - -return jQuery; - -})(); - - -// String to Object flags format cache -var flagsCache = {}; +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); -// Convert String-formatted flags into Object-formatted ones and store in cache -function createFlags( flags ) { - var object = flagsCache[ flags ] = {}, - i, length; - flags = flags.split( /\s+/ ); - for ( i = 0, length = flags.length; i < length; i++ ) { - object[ flags[i] ] = true; - } +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.split( core_rspace ), function( _, flag ) { + object[ flag ] = true; + }); return object; } /* * Create a callback list using the following parameters: * - * flags: an optional list of space-separated flags that will change how - * the callback list behaves + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object * * By default a callback list will act like an event callback list and can be * "fired" multiple times. * - * Possible flags: + * Possible options: * * once: will ensure the callback list can only be fired once (like a Deferred) * @@ -1019,17 +938,15 @@ function createFlags( flags ) { * stopOnFalse: interrupt callings when a callback returns false * */ -jQuery.Callbacks = function( flags ) { +jQuery.Callbacks = function( options ) { - // Convert flags from String-formatted to Object-formatted + // Convert options from String-formatted to Object-formatted if needed // (we check in cache first) - flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {}; + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); - var // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = [], - // Last fire value (for non-forgettable lists) + var // Last fire value (for non-forgettable lists) memory, // Flag to know if list was already fired fired, @@ -1041,53 +958,34 @@ jQuery.Callbacks = function( flags ) { firingLength, // Index of currently firing callback (modified by remove if needed) firingIndex, - // Add one or several callbacks to the list - add = function( args ) { - var i, - length, - elem, - type, - actual; - for ( i = 0, length = args.length; i < length; i++ ) { - elem = args[ i ]; - type = jQuery.type( elem ); - if ( type === "array" ) { - // Inspect recursively - add( elem ); - } else if ( type === "function" ) { - // Add if not in unique mode and callback is not in - if ( !flags.unique || !self.has( elem ) ) { - list.push( elem ); - } - } - } - }, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], // Fire callbacks - fire = function( context, args ) { - args = args || []; - memory = !flags.memory || [ context, args ]; + fire = function( data ) { + memory = options.memory && data; fired = true; - firing = true; firingIndex = firingStart || 0; firingStart = 0; firingLength = list.length; + firing = true; for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) { - memory = true; // Mark as halted + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add break; } } firing = false; if ( list ) { - if ( !flags.once ) { - if ( stack && stack.length ) { - memory = stack.shift(); - self.fireWith( memory[ 0 ], memory[ 1 ] ); + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); } - } else if ( memory === true ) { - self.disable(); - } else { + } else if ( memory ) { list = []; + } else { + self.disable(); } } }, @@ -1096,18 +994,28 @@ jQuery.Callbacks = function( flags ) { // Add a callback or a collection of callbacks to the list add: function() { if ( list ) { - var length = list.length; - add( arguments ); + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" && ( !options.unique || !self.has( arg ) ) ) { + list.push( arg ); + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); // Do we need to add the callbacks to the // current firing batch? if ( firing ) { firingLength = list.length; // With memory, if we're not firing then - // we should call right away, unless previous - // firing was halted (stopOnFalse) - } else if ( memory && memory !== true ) { - firingStart = length; - fire( memory[ 0 ], memory[ 1 ] ); + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); } } return this; @@ -1115,46 +1023,27 @@ jQuery.Callbacks = function( flags ) { // Remove a callback from the list remove: function() { if ( list ) { - var args = arguments, - argIndex = 0, - argLength = args.length; - for ( ; argIndex < argLength ; argIndex++ ) { - for ( var i = 0; i < list.length; i++ ) { - if ( args[ argIndex ] === list[ i ] ) { - // Handle firingIndex and firingLength - if ( firing ) { - if ( i <= firingLength ) { - firingLength--; - if ( i <= firingIndex ) { - firingIndex--; - } - } + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; } - // Remove the element - list.splice( i--, 1 ); - // If we have some unicity property then - // we only need to do this once - if ( flags.unique ) { - break; + if ( index <= firingIndex ) { + firingIndex--; } } } - } + }); } return this; }, // Control if a given callback is in the list has: function( fn ) { - if ( list ) { - var i = 0, - length = list.length; - for ( ; i < length; i++ ) { - if ( fn === list[ i ] ) { - return true; - } - } - } - return false; + return jQuery.inArray( fn, list ) > -1; }, // Remove all callbacks from the list empty: function() { @@ -1173,7 +1062,7 @@ jQuery.Callbacks = function( flags ) { // Lock the list in its current state lock: function() { stack = undefined; - if ( !memory || memory === true ) { + if ( !memory ) { self.disable(); } return this; @@ -1184,13 +1073,13 @@ jQuery.Callbacks = function( flags ) { }, // Call all callbacks with the given context and arguments fireWith: function( context, args ) { - if ( stack ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { if ( firing ) { - if ( !flags.once ) { - stack.push( [ context, args ] ); - } - } else if ( !( flags.once && memory ) ) { - fire( context, args ); + stack.push( args ); + } else { + fire( args ); } } return this; @@ -1208,98 +1097,85 @@ jQuery.Callbacks = function( flags ) { return self; }; - - - - -var // Static reference to slice - sliceDeferred = [].slice; - jQuery.extend({ Deferred: function( func ) { - var doneList = jQuery.Callbacks( "once memory" ), - failList = jQuery.Callbacks( "once memory" ), - progressList = jQuery.Callbacks( "memory" ), + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], state = "pending", - lists = { - resolve: doneList, - reject: failList, - notify: progressList - }, promise = { - done: doneList.add, - fail: failList.add, - progress: progressList.add, - state: function() { return state; }, - - // Deprecated - isResolved: doneList.fired, - isRejected: failList.fired, - - then: function( doneCallbacks, failCallbacks, progressCallbacks ) { - deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks ); - return this; - }, always: function() { - deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments ); + deferred.done( arguments ).fail( arguments ); return this; }, - pipe: function( fnDone, fnFail, fnProgress ) { + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; return jQuery.Deferred(function( newDefer ) { - jQuery.each( { - done: [ fnDone, "resolve" ], - fail: [ fnFail, "reject" ], - progress: [ fnProgress, "notify" ] - }, function( handler, data ) { - var fn = data[ 0 ], - action = data[ 1 ], - returned; - if ( jQuery.isFunction( fn ) ) { - deferred[ handler ](function() { - returned = fn.apply( this, arguments ); + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ]( jQuery.isFunction( fn ) ? + function() { + var returned = fn.apply( this, arguments ); if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify ); + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); } else { newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); } - }); - } else { - deferred[ handler ]( newDefer[ action ] ); - } + } : + newDefer[ action ] + ); }); + fns = null; }).promise(); }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { - if ( obj == null ) { - obj = promise; - } else { - for ( var key in promise ) { - obj[ key ] = promise[ key ]; - } - } - return obj; + return obj != null ? jQuery.extend( obj, promise ) : promise; } }, - deferred = promise.promise({}), - key; + deferred = {}; - for ( key in lists ) { - deferred[ key ] = lists[ key ].fire; - deferred[ key + "With" ] = lists[ key ].fireWith; - } + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; - // Handle state - deferred.done( function() { - state = "resolved"; - }, failList.disable, progressList.lock ).fail( function() { - state = "rejected"; - }, doneList.disable, progressList.lock ); + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] = list.fire + deferred[ tuple[0] ] = list.fire; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); // Call given func if any if ( func ) { @@ -1311,52 +1187,57 @@ jQuery.extend({ }, // Deferred helper - when: function( firstParam ) { - var args = sliceDeferred.call( arguments, 0 ), - i = 0, - length = args.length, - pValues = new Array( length ), - count = length, - pCount = length, - deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? - firstParam : - jQuery.Deferred(), - promise = deferred.promise(); - function resolveFunc( i ) { - return function( value ) { - args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - if ( !( --count ) ) { - deferred.resolveWith( deferred, args ); - } - }; - } - function progressFunc( i ) { - return function( value ) { - pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - deferred.notifyWith( promise, pValues ); - }; - } + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); for ( ; i < length; i++ ) { - if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) { - args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) ); + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); } else { - --count; + --remaining; } } - if ( !count ) { - deferred.resolveWith( deferred, args ); - } - } else if ( deferred !== firstParam ) { - deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); } - return promise; - } -}); - - + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + return deferred.promise(); + } +}); jQuery.support = (function() { var support, @@ -1366,30 +1247,29 @@ jQuery.support = (function() { opt, input, fragment, - tds, - events, eventName, i, isSupported, - div = document.createElement( "div" ), - documentElement = document.documentElement; + clickFn, + div = document.createElement("div"); // Preliminary tests - div.setAttribute("className", "t"); - div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; + div.setAttribute( "className", "t" ); + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; - all = div.getElementsByTagName( "*" ); - a = div.getElementsByTagName( "a" )[ 0 ]; + all = div.getElementsByTagName("*"); + a = div.getElementsByTagName("a")[ 0 ]; + a.style.cssText = "top:1px;float:left;opacity:.5"; // Can't get basic test support - if ( !all || !all.length || !a ) { + if ( !all || !all.length ) { return {}; } // First batch of supports tests - select = document.createElement( "select" ); + select = document.createElement("select"); opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName( "input" )[ 0 ]; + input = div.getElementsByTagName("input")[ 0 ]; support = { // IE strips leading whitespace when .innerHTML is used @@ -1414,7 +1294,7 @@ jQuery.support = (function() { // Make sure that element opacity exists // (IE uses filter instead) // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.55/.test( a.style.opacity ), + opacity: /^0.5/.test( a.style.opacity ), // Verify style float existence // (IE uses styleFloat instead of cssFloat) @@ -1439,6 +1319,9 @@ jQuery.support = (function() { // Where outerHTML is undefined, this still works html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>", + // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode + boxModel: ( document.compatMode === "CSS1Compat" ), + // Will be defined later submitBubbles: true, changeBubbles: true, @@ -1448,12 +1331,10 @@ jQuery.support = (function() { inlineBlockNeedsLayout: false, shrinkWrapBlocks: false, reliableMarginRight: true, - pixelMargin: true + boxSizingReliable: true, + pixelPosition: false }; - // jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead - jQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat"); - // Make sure checked status is properly cloned input.checked = true; support.noCloneChecked = input.cloneNode( true ).checked; @@ -1472,22 +1353,23 @@ jQuery.support = (function() { } if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { - div.attachEvent( "onclick", function() { + div.attachEvent( "onclick", clickFn = function() { // Cloning a node shouldn't copy over any // bound event handlers (IE does this) support.noCloneEvent = false; }); - div.cloneNode( true ).fireEvent( "onclick" ); + div.cloneNode( true ).fireEvent("onclick"); + div.detachEvent( "onclick", clickFn ); } // Check if a radio maintains its value // after being appended to the DOM input = document.createElement("input"); input.value = "t"; - input.setAttribute("type", "radio"); + input.setAttribute( "type", "radio" ); support.radioValue = input.value === "t"; - input.setAttribute("checked", "checked"); + input.setAttribute( "checked", "checked" ); // #11217 - WebKit loses check when the name is after the checked attribute input.setAttribute( "name", "t" ); @@ -1514,9 +1396,9 @@ jQuery.support = (function() { // to go haywire. See: https://developer.mozilla.org/en/Security/CSP if ( div.attachEvent ) { for ( i in { - submit: 1, - change: 1, - focusin: 1 + submit: true, + change: true, + focusin: true }) { eventName = "on" + i; isSupported = ( eventName in div ); @@ -1528,16 +1410,10 @@ jQuery.support = (function() { } } - fragment.removeChild( div ); - - // Null elements to avoid leaks in IE - fragment = select = opt = div = input = null; - // Run tests that need a body at doc ready jQuery(function() { - var container, outer, inner, table, td, offsetSupport, - marginDiv, conMarginTop, style, html, positionTopLeftWidthHeight, - paddingMarginBorderVisibility, paddingMarginBorder, + var container, div, tds, marginDiv, + divReset = "padding:0;margin:0;border:0;display:block;overflow:hidden;", body = document.getElementsByTagName("body")[0]; if ( !body ) { @@ -1545,17 +1421,8 @@ jQuery.support = (function() { return; } - conMarginTop = 1; - paddingMarginBorder = "padding:0;margin:0;border:"; - positionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;"; - paddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;"; - style = "style='" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;"; - html = "<div " + style + "display:block;'><div style='" + paddingMarginBorder + "0;display:block;overflow:hidden;'></div></div>" + - "<table " + style + "' cellpadding='0' cellspacing='0'>" + - "<tr><td></td></tr></table>"; - container = document.createElement("div"); - container.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px"; + container.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px"; body.insertBefore( container, body.firstChild ); // Construct the test element @@ -1569,8 +1436,9 @@ jQuery.support = (function() { // display:none (it is still safe to use offsets if a parent element is // hidden; don safety goggles and see bug #4512 for more information). // (only IE 8 fails this test) - div.innerHTML = "<table><tr><td style='" + paddingMarginBorder + "0;display:none'></td><td>t</td></tr></table>"; - tds = div.getElementsByTagName( "td" ); + div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; isSupported = ( tds[ 0 ].offsetHeight === 0 ); tds[ 0 ].style.display = ""; @@ -1580,20 +1448,30 @@ jQuery.support = (function() { // (IE <= 8 fail this test) support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. For more - // info see bug #3333 - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // Check box-sizing and margin behavior + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + support.boxSizing = ( div.offsetWidth === 4 ); + support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + + // NOTE: To any future maintainer, we've window.getComputedStyle + // because jsdom on node.js will break without it. if ( window.getComputedStyle ) { - div.innerHTML = ""; - marginDiv = document.createElement( "div" ); - marginDiv.style.width = "0"; - marginDiv.style.marginRight = "0"; - div.style.width = "2px"; + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. For more + // info see bug #3333 + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = document.createElement("div"); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; div.appendChild( marginDiv ); support.reliableMarginRight = - ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); } if ( typeof div.style.zoom !== "undefined" ) { @@ -1602,74 +1480,40 @@ jQuery.support = (function() { // them layout // (IE < 8 does this) div.innerHTML = ""; - div.style.width = div.style.padding = "1px"; - div.style.border = 0; - div.style.overflow = "hidden"; - div.style.display = "inline"; - div.style.zoom = 1; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); // Check if elements with layout shrink-wrap their children // (IE 6 does this) div.style.display = "block"; div.style.overflow = "visible"; - div.innerHTML = "<div style='width:5px;'></div>"; + div.innerHTML = "<div></div>"; + div.firstChild.style.width = "5px"; support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); - } - - div.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility; - div.innerHTML = html; - - outer = div.firstChild; - inner = outer.firstChild; - td = outer.nextSibling.firstChild.firstChild; - - offsetSupport = { - doesNotAddBorder: ( inner.offsetTop !== 5 ), - doesAddBorderForTableAndCells: ( td.offsetTop === 5 ) - }; - inner.style.position = "fixed"; - inner.style.top = "20px"; - - // safari subtracts parent border width here which is 5px - offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 ); - inner.style.position = inner.style.top = ""; - - outer.style.overflow = "hidden"; - outer.style.position = "relative"; - - offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 ); - offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop ); - - if ( window.getComputedStyle ) { - div.style.marginTop = "1%"; - support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%"; - } - - if ( typeof container.style.zoom !== "undefined" ) { container.style.zoom = 1; } + // Null elements to avoid leaks in IE body.removeChild( container ); - marginDiv = div = container = null; - - jQuery.extend( support, offsetSupport ); + container = div = tds = marginDiv = null; }); + // Null elements to avoid leaks in IE + fragment.removeChild( div ); + all = a = select = opt = input = fragment = div = null; + return support; })(); - - - - -var rbrace = /^(?:\{.*\}|\[.*\])$/, +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, rmultiDash = /([A-Z])/g; jQuery.extend({ cache: {}, - // Please use with caution + deletedIds: [], + + // Remove at next major release (1.9/2.0) uuid: 0, // Unique for each copy of jQuery on the page @@ -1695,7 +1539,7 @@ jQuery.extend({ return; } - var privateCache, thisCache, ret, + var thisCache, ret, internalKey = jQuery.expando, getByName = typeof name === "string", @@ -1709,12 +1553,11 @@ jQuery.extend({ // Only defining an ID for JS objects if its cache already exists allows // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey, - isEvents = name === "events"; + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; // Avoid doing any more work than we need to when trying to get data on an // object that has no data at all - if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) { + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { return; } @@ -1722,7 +1565,7 @@ jQuery.extend({ // Only DOM nodes need a new unique ID for each element since their data // ends up in the global cache if ( isNode ) { - elem[ internalKey ] = id = ++jQuery.uuid; + elem[ internalKey ] = id = jQuery.deletedIds.pop() || jQuery.guid++; } else { id = internalKey; } @@ -1748,7 +1591,7 @@ jQuery.extend({ } } - privateCache = thisCache = cache[ id ]; + thisCache = cache[ id ]; // jQuery data() is stored in a separate object inside the object's internal data // cache in order to avoid key collisions between internal data and user-defined @@ -1765,12 +1608,6 @@ jQuery.extend({ thisCache[ jQuery.camelCase( name ) ] = data; } - // Users should not attempt to inspect the internal events object using jQuery.data, - // it is undocumented and subject to change. But does anyone listen? No. - if ( isEvents && !thisCache[ name ] ) { - return privateCache.events; - } - // Check for both converted-to-camel and non-converted data property names // If a data property was specified if ( getByName ) { @@ -1798,16 +1635,11 @@ jQuery.extend({ var thisCache, i, l, - // Reference to internal data cache key - internalKey = jQuery.expando, - isNode = elem.nodeType, // See jQuery.data for more information cache = isNode ? jQuery.cache : elem, - - // See jQuery.data for more information - id = isNode ? elem[ internalKey ] : internalKey; + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; // If there is already no cache entry for this object, there is no // purpose in continuing @@ -1834,7 +1666,7 @@ jQuery.extend({ if ( name in thisCache ) { name = [ name ]; } else { - name = name.split( " " ); + name = name.split(" "); } } } @@ -1857,35 +1689,23 @@ jQuery.extend({ // Don't destroy the parent cache unless the internal data object // had been the only thing left in it - if ( !isEmptyDataObject(cache[ id ]) ) { + if ( !isEmptyDataObject( cache[ id ] ) ) { return; } } - // Browsers that fail expando deletion also refuse to delete expandos on - // the window, but it will allow it on all other JS objects; other browsers - // don't care - // Ensure that `cache` is not a window object #10080 - if ( jQuery.support.deleteExpando || !cache.setInterval ) { + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { delete cache[ id ]; + + // When all else fails, null } else { cache[ id ] = null; } - - // We destroyed the cache and need to eliminate the expando on the node to avoid - // false lookups in the cache for entries that no longer exist - if ( isNode ) { - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( jQuery.support.deleteExpando ) { - delete elem[ internalKey ]; - } else if ( elem.removeAttribute ) { - elem.removeAttribute( internalKey ); - } else { - elem[ internalKey ] = null; - } - } }, // For internal use only. @@ -1895,15 +1715,10 @@ jQuery.extend({ // A method for determining if a DOM node can handle the data expando acceptData: function( elem ) { - if ( elem.nodeName ) { - var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; - - if ( match ) { - return !(match === true || elem.getAttribute("classid") !== match); - } - } + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; - return true; + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; } }); @@ -1924,7 +1739,7 @@ jQuery.fn.extend({ for ( l = attr.length; i < l; i++ ) { name = attr[i].name; - if ( name.indexOf( "data-" ) === 0 ) { + if ( !name.indexOf( "data-" ) ) { name = jQuery.camelCase( name.substring(5) ); dataAttr( elem, name, data[ name ] ); @@ -1996,8 +1811,9 @@ function dataAttr( elem, key, data ) { data = data === "true" ? true : data === "false" ? false : data === "null" ? null : - jQuery.isNumeric( data ) ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : data; } catch( e ) {} @@ -2014,7 +1830,8 @@ function dataAttr( elem, key, data ) { // checks a cache object for emptiness function isEmptyDataObject( obj ) { - for ( var name in obj ) { + var name; + for ( name in obj ) { // if the public data object is empty, the private is still empty if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { @@ -2027,73 +1844,23 @@ function isEmptyDataObject( obj ) { return true; } - - - - -function handleQueueMarkDefer( elem, type, src ) { - var deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - defer = jQuery._data( elem, deferDataKey ); - if ( defer && - ( src === "queue" || !jQuery._data(elem, queueDataKey) ) && - ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) { - // Give room for hard-coded callbacks to fire first - // and eventually mark/queue something else on the element - setTimeout( function() { - if ( !jQuery._data( elem, queueDataKey ) && - !jQuery._data( elem, markDataKey ) ) { - jQuery.removeData( elem, deferDataKey, true ); - defer.fire(); - } - }, 0 ); - } -} - jQuery.extend({ - - _mark: function( elem, type ) { - if ( elem ) { - type = ( type || "fx" ) + "mark"; - jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 ); - } - }, - - _unmark: function( force, elem, type ) { - if ( force !== true ) { - type = elem; - elem = force; - force = false; - } - if ( elem ) { - type = type || "fx"; - var key = type + "mark", - count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 ); - if ( count ) { - jQuery._data( elem, key, count ); - } else { - jQuery.removeData( elem, key, true ); - handleQueueMarkDefer( elem, type, "mark" ); - } - } - }, - queue: function( elem, type, data ) { - var q; + var queue; + if ( elem ) { type = ( type || "fx" ) + "queue"; - q = jQuery._data( elem, type ); + queue = jQuery._data( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( data ) { - if ( !q || jQuery.isArray(data) ) { - q = jQuery._data( elem, type, jQuery.makeArray(data) ); + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); } else { - q.push( data ); + queue.push( data ); } } - return q || []; + return queue || []; } }, @@ -2101,31 +1868,46 @@ jQuery.extend({ type = type || "fx"; var queue = jQuery.queue( elem, type ), + startLength = queue.length, fn = queue.shift(), - hooks = {}; + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { fn = queue.shift(); + startLength--; } if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being // automatically dequeued if ( type === "fx" ) { queue.unshift( "inprogress" ); } - jQuery._data( elem, type + ".run", hooks ); - fn.call( elem, function() { - jQuery.dequeue( elem, type ); - }, hooks ); + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); } - if ( !queue.length ) { - jQuery.removeData( elem, type + "queue " + type + ".run", true ); - handleQueueMarkDefer( elem, type, "queue" ); + if ( !startLength && hooks ) { + hooks.empty.fire(); } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery.removeData( elem, type + "queue", true ); + jQuery.removeData( elem, key, true ); + }) + }); } }); @@ -2148,6 +1930,9 @@ jQuery.fn.extend({ this.each(function() { var queue = jQuery.queue( this, type, data ); + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + if ( type === "fx" && queue[0] !== "inprogress" ) { jQuery.dequeue( this, type ); } @@ -2176,51 +1961,43 @@ jQuery.fn.extend({ }, // Get a promise resolved when queues of a certain type // are emptied (fx is the type by default) - promise: function( type, object ) { + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + if ( typeof type !== "string" ) { - object = type; + obj = type; type = undefined; } type = type || "fx"; - var defer = jQuery.Deferred(), - elements = this, - i = elements.length, - count = 1, - deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - tmp; - function resolve() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - } + while( i-- ) { - if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || - ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || - jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && - jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { count++; - tmp.add( resolve ); + tmp.empty.add( resolve ); } } resolve(); - return defer.promise( object ); + return defer.promise( obj ); } }); - - - - -var rclass = /[\n\t\r]/g, - rspace = /\s+/, +var nodeHook, boolHook, fixSpecified, + rclass = /[\t\r\n]/g, rreturn = /\r/g, rtype = /^(?:button|input)$/i, rfocusable = /^(?:button|input|object|select|textarea)$/i, - rclickable = /^a(?:rea)?$/i, + rclickable = /^a(?:rea|)$/i, rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - getSetAttribute = jQuery.support.getSetAttribute, - nodeHook, boolHook, fixSpecified; + getSetAttribute = jQuery.support.getSetAttribute; jQuery.fn.extend({ attr: function( name, value ) { @@ -2259,7 +2036,7 @@ jQuery.fn.extend({ } if ( value && typeof value === "string" ) { - classNames = value.split( rspace ); + classNames = value.split( core_rspace ); for ( i = 0, l = this.length; i < l; i++ ) { elem = this[ i ]; @@ -2272,7 +2049,7 @@ jQuery.fn.extend({ setClass = " " + elem.className + " "; for ( c = 0, cl = classNames.length; c < cl; c++ ) { - if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { + if ( setClass.indexOf( " " + classNames[ c ] + " " ) < 0 ) { setClass += classNames[ c ] + " "; } } @@ -2286,31 +2063,30 @@ jQuery.fn.extend({ }, removeClass: function( value ) { - var classNames, i, l, elem, className, c, cl; + var removes, className, elem, c, cl, i, l; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).removeClass( value.call(this, j, this.className) ); }); } - if ( (value && typeof value === "string") || value === undefined ) { - classNames = ( value || "" ).split( rspace ); + removes = ( value || "" ).split( core_rspace ); for ( i = 0, l = this.length; i < l; i++ ) { elem = this[ i ]; - if ( elem.nodeType === 1 && elem.className ) { - if ( value ) { - className = (" " + elem.className + " ").replace( rclass, " " ); - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - className = className.replace(" " + classNames[ c ] + " ", " "); - } - elem.className = jQuery.trim( className ); - } else { - elem.className = ""; + className = (" " + elem.className + " ").replace( rclass, " " ); + + // loop over each item in the removal list + for ( c = 0, cl = removes.length; c < cl; c++ ) { + // Remove until there is nothing to remove, + while ( className.indexOf(" " + removes[ c ] + " ") >= 0 ) { + className = className.replace( " " + removes[ c ] + " " , " " ); + } } + elem.className = value ? jQuery.trim( className ) : ""; } } } @@ -2335,10 +2111,10 @@ jQuery.fn.extend({ i = 0, self = jQuery( this ), state = stateVal, - classNames = value.split( rspace ); + classNames = value.split( core_rspace ); while ( (className = classNames[ i++ ]) ) { - // check each className given, space seperated list + // check each className given, space separated list state = isBool ? state : !self.hasClass( className ); self[ state ? "addClass" : "removeClass" ]( className ); } @@ -2360,7 +2136,7 @@ jQuery.fn.extend({ i = 0, l = this.length; for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { return true; } } @@ -2395,7 +2171,8 @@ jQuery.fn.extend({ isFunction = jQuery.isFunction( value ); return this.each(function( i ) { - var self = jQuery(this), val; + var val, + self = jQuery(this); if ( this.nodeType !== 1 ) { return; @@ -2497,16 +2274,8 @@ jQuery.extend({ } }, - attrFn: { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true - }, + // Unused in 1.8, left in so attrFn-stabbers won't die; remove in 1.9 + attrFn: {}, attr: function( elem, name, value, pass ) { var ret, hooks, notxml, @@ -2517,7 +2286,7 @@ jQuery.extend({ return; } - if ( pass && name in jQuery.attrFn ) { + if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) { return jQuery( elem )[ name ]( value ); } @@ -2545,7 +2314,7 @@ jQuery.extend({ return ret; } else { - elem.setAttribute( name, "" + value ); + elem.setAttribute( name, value + "" ); return value; } @@ -2564,14 +2333,14 @@ jQuery.extend({ }, removeAttr: function( elem, value ) { - var propName, attrNames, name, l, isBool, + var propName, attrNames, name, isBool, i = 0; if ( value && elem.nodeType === 1 ) { - attrNames = value.toLowerCase().split( rspace ); - l = attrNames.length; - for ( ; i < l; i++ ) { + attrNames = value.split( core_rspace ); + + for ( ; i < attrNames.length; i++ ) { name = attrNames[ i ]; if ( name ) { @@ -2701,9 +2470,6 @@ jQuery.extend({ } }); -// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional) -jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex; - // Hook for boolean attributes boolHook = { get: function( elem, name ) { @@ -2750,8 +2516,8 @@ if ( !getSetAttribute ) { get: function( elem, name ) { var ret; ret = elem.getAttributeNode( name ); - return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ? - ret.nodeValue : + return ret && ( fixSpecified[ name ] ? ret.value !== "" : ret.specified ) ? + ret.value : undefined; }, set: function( elem, value, name ) { @@ -2761,13 +2527,10 @@ if ( !getSetAttribute ) { ret = document.createAttribute( name ); elem.setAttributeNode( ret ); } - return ( ret.nodeValue = value + "" ); + return ( ret.value = value + "" ); } }; - // Apply the nodeHook to tabindex - jQuery.attrHooks.tabindex.set = nodeHook.set; - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) // This is for removals jQuery.each([ "width", "height" ], function( i, name ) { @@ -2815,7 +2578,7 @@ if ( !jQuery.support.style ) { return elem.style.cssText.toLowerCase() || undefined; }, set: function( elem, value ) { - return ( elem.style.cssText = "" + value ); + return ( elem.style.cssText = value + "" ); } }; } @@ -2865,35 +2628,12 @@ jQuery.each([ "radio", "checkbox" ], function() { } }); }); - - - - var rformElems = /^(?:textarea|input|select)$/i, - rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/, - rhoverHack = /(?:^|\s)hover(\.\S+)?\b/, + rtypenamespace = /^([^\.]*|)(?:\.(.+)|)$/, + rhoverHack = /(?:^|\s)hover(\.\S+|)\b/, rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|contextmenu)|click/, rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, - quickParse = function( selector ) { - var quick = rquickIs.exec( selector ); - if ( quick ) { - // 0 1 2 3 - // [ _, tag, id, class ] - quick[1] = ( quick[1] || "" ).toLowerCase(); - quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" ); - } - return quick; - }, - quickIs = function( elem, m ) { - var attrs = elem.attributes || {}; - return ( - (!m[1] || elem.nodeName.toLowerCase() === m[1]) && - (!m[2] || (attrs.id || {}).value === m[2]) && - (!m[3] || m[3].test( (attrs[ "class" ] || {}).value )) - ); - }, hoverHack = function( events ) { return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); }; @@ -2908,7 +2648,7 @@ jQuery.event = { var elemData, eventHandle, events, t, tns, type, namespaces, handleObj, - handleObjIn, quick, handlers, special; + handleObjIn, handlers, special; // Don't attach events to noData or text/comment nodes (allow plain objects tho) if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { @@ -2971,7 +2711,7 @@ jQuery.event = { handler: handler, guid: handler.guid, selector: selector, - quick: selector && quickParse( selector ), + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), namespace: namespaces.join(".") }, handleObjIn ); @@ -3021,9 +2761,9 @@ jQuery.event = { // Detach an event or set of events from an element remove: function( elem, types, handler, selector, mappedTypes ) { - var elemData = jQuery.hasData( elem ) && jQuery._data( elem ), - t, tns, type, origType, namespaces, origCount, - j, events, special, handle, eventType, handleObj; + var t, tns, type, origType, namespaces, origCount, + j, events, special, eventType, handleObj, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); if ( !elemData || !(events = elemData.events) ) { return; @@ -3048,7 +2788,7 @@ jQuery.event = { type = ( selector? special.delegateType : special.bindType ) || type; eventType = events[ type ] || []; origCount = eventType.length; - namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null; + namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null; // Remove matching events for ( j = 0; j < eventType.length; j++ ) { @@ -3072,7 +2812,7 @@ jQuery.event = { // Remove generic event handler if we removed something and no more handlers exist // (avoids potential for endless recursion during removal of special event handlers) if ( eventType.length === 0 && origCount !== eventType.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { jQuery.removeEvent( elem, type, elemData.handle ); } @@ -3082,14 +2822,11 @@ jQuery.event = { // Remove the expando if it's no longer used if ( jQuery.isEmptyObject( events ) ) { - handle = elemData.handle; - if ( handle ) { - handle.elem = null; - } + delete elemData.handle; // removeData also checks for emptiness and clears the expando if empty // so use it instead of delete - jQuery.removeData( elem, [ "events", "handle" ], true ); + jQuery.removeData( elem, "events", true ); } }, @@ -3108,9 +2845,9 @@ jQuery.event = { } // Event object or event type - var type = event.type || event, - namespaces = [], - cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType; + var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType, + type = event.type || event, + namespaces = []; // focus/blur morphs to focusin/out; ensure we're not firing them right now if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { @@ -3148,7 +2885,7 @@ jQuery.event = { event.isTrigger = true; event.exclusive = exclusive; event.namespace = namespaces.join( "." ); - event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null; + event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; // Handle a global trigger @@ -3187,14 +2924,13 @@ jQuery.event = { bubbleType = special.delegateType || type; cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; - old = null; - for ( ; cur; cur = cur.parentNode ) { + for ( old = elem; cur; cur = cur.parentNode ) { eventPath.push([ cur, bubbleType ]); old = cur; } // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( old && old === elem.ownerDocument ) { + if ( old === (elem.ownerDocument || document) ) { eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); } } @@ -3211,7 +2947,7 @@ jQuery.event = { } // Note that this is a bare JS function and not a jQuery handler handle = ontype && cur[ ontype ]; - if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) { + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { event.preventDefault(); } } @@ -3256,13 +2992,13 @@ jQuery.event = { // Make a writable jQuery.Event from the native event object event = jQuery.event.fix( event || window.event ); - var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), + var i, j, cur, ret, selMatch, matched, matches, handleObj, sel, related, + handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), delegateCount = handlers.delegateCount, - args = [].slice.call( arguments, 0 ), + args = core_slice.call( arguments ), run_all = !event.exclusive && !event.namespace, special = jQuery.event.special[ event.type ] || {}, - handlerQueue = [], - i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related; + handlerQueue = []; // Use the fix-ed jQuery.Event rather than the (read-only) native event args[0] = event; @@ -3277,25 +3013,20 @@ jQuery.event = { // Avoid non-left-click bubbling in Firefox (#3861) if ( delegateCount && !(event.button && event.type === "click") ) { - // Pregenerate a single jQuery object for reuse with .is() - jqcur = jQuery(this); - jqcur.context = this.ownerDocument || this; - for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { - // Don't process events on disabled elements (#6911, #8165) - if ( cur.disabled !== true ) { + // Don't process clicks (ONLY) on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { selMatch = {}; matches = []; - jqcur[0] = cur; for ( i = 0; i < delegateCount; i++ ) { handleObj = handlers[ i ]; sel = handleObj.selector; if ( selMatch[ sel ] === undefined ) { - selMatch[ sel ] = ( - handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel ) - ); + selMatch[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; } if ( selMatch[ sel ] ) { matches.push( handleObj ); @@ -3429,20 +3160,13 @@ jQuery.event = { event.target = event.target.parentNode; } - // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8) - if ( event.metaKey === undefined ) { - event.metaKey = event.ctrlKey; - } + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328; IE6/7/8) + event.metaKey = !!event.metaKey; return fixHook.filter? fixHook.filter( event, originalEvent ) : event; }, special: { - ready: { - // Make sure the ready event is setup - setup: jQuery.bindReady - }, - load: { // Prevent triggered image.load events from bubbling to window.load noBubble: true @@ -3505,8 +3229,17 @@ jQuery.removeEvent = document.removeEventListener ? } } : function( elem, type, handle ) { + var name = "on" + type; + if ( elem.detachEvent ) { - elem.detachEvent( "on" + type, handle ); + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 – + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === "undefined" ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); } }; @@ -3603,11 +3336,11 @@ jQuery.each({ bindType: fix, handle: function( event ) { - var target = this, + var ret, + target = this, related = event.relatedTarget, handleObj = event.handleObj, - selector = handleObj.selector, - ret; + selector = handleObj.selector; // For mousenter/leave call the handler if related is outside the target. // NB: No relatedTarget if the mouse left/entered the browser window @@ -3636,16 +3369,16 @@ if ( !jQuery.support.submitBubbles ) { // Node name check avoids a VML-related crash in IE (#9807) var elem = e.target, form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !form._submit_attached ) { + if ( form && !jQuery._data( form, "_submit_attached" ) ) { jQuery.event.add( form, "submit._submit", function( event ) { event._submit_bubble = true; }); - form._submit_attached = true; + jQuery._data( form, "_submit_attached", true ); } }); // return undefined since we don't need an event listener }, - + postDispatch: function( event ) { // If form was submitted by the user, bubble the event up the tree if ( event._submit_bubble ) { @@ -3688,8 +3421,9 @@ if ( !jQuery.support.changeBubbles ) { jQuery.event.add( this, "click._change", function( event ) { if ( this._just_changed && !event.isTrigger ) { this._just_changed = false; - jQuery.event.simulate( "change", this, event, true ); } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); }); } return false; @@ -3698,13 +3432,13 @@ if ( !jQuery.support.changeBubbles ) { jQuery.event.add( this, "beforeactivate._change", function( e ) { var elem = e.target; - if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) { + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "_change_attached" ) ) { jQuery.event.add( elem, "change._change", function( event ) { if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { jQuery.event.simulate( "change", this.parentNode, event, true ); } }); - elem._change_attached = true; + jQuery._data( elem, "_change_attached", true ); } }); }, @@ -3721,7 +3455,7 @@ if ( !jQuery.support.changeBubbles ) { teardown: function() { jQuery.event.remove( this, "._change" ); - return rformElems.test( this.nodeName ); + return !rformElems.test( this.nodeName ); } }; } @@ -3810,9 +3544,10 @@ jQuery.fn.extend({ return this.on( types, selector, data, fn, 1 ); }, off: function( types, selector, fn ) { + var handleObj, type; if ( types && types.preventDefault && types.handleObj ) { // ( event ) dispatched jQuery.Event - var handleObj = types.handleObj; + handleObj = types.handleObj; jQuery( types.delegateTarget ).off( handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, handleObj.selector, @@ -3822,7 +3557,7 @@ jQuery.fn.extend({ } if ( typeof types === "object" ) { // ( types-object [, selector] ) - for ( var type in types ) { + for ( type in types ) { this.off( type, selector, types[ type ] ); } return this; @@ -3861,7 +3596,7 @@ jQuery.fn.extend({ }, undelegate: function( selector, types, fn ) { // ( namespace ) or ( selector, types [, fn] ) - return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn ); + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); }, trigger: function( type, data ) { @@ -3922,10 +3657,6 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl this.trigger( name ); }; - if ( jQuery.attrFn ) { - jQuery.attrFn[ name ] = true; - } - if ( rkeyEvent.test( name ) ) { jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; } @@ -3934,648 +3665,788 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; } }); - - - /*! * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ */ -(function(){ - -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, - expando = "sizcache" + (Math.random() + '').replace('.', ''), - done = 0, - toString = Object.prototype.toString, - hasDuplicate = false, - baseHasDuplicate = true, - rBackslash = /\\/g, - rReturn = /\r\n/g, - rNonWord = /\W/; - -// Here we check if the JavaScript engine is using some sort of -// optimization where it does not always call our comparision -// function. If that is the case, discard the hasDuplicate value. -// Thus far that includes Google Chrome. -[0, 0].sort(function() { - baseHasDuplicate = false; - return 0; -}); - -var Sizzle = function( selector, context, results, seed ) { - results = results || []; - context = context || document; - - var origContext = context; +(function( window, undefined ) { - if ( context.nodeType !== 1 && context.nodeType !== 9 ) { - return []; - } +var cachedruns, + assertGetIdNotName, + Expr, + getText, + isXML, + contains, + compile, + sortOrder, + hasDuplicate, + outermostContext, - if ( !selector || typeof selector !== "string" ) { - return results; - } + baseHasDuplicate = true, + strundefined = "undefined", - var m, set, checkSet, extra, ret, cur, pop, i, - prune = true, - contextXML = Sizzle.isXML( context ), - parts = [], - soFar = selector; + expando = ( "sizcache" + Math.random() ).replace( ".", "" ), - // Reset the position of the chunker regexp (start from head) - do { - chunker.exec( "" ); - m = chunker.exec( soFar ); + Token = String, + document = window.document, + docElem = document.documentElement, + dirruns = 0, + done = 0, + pop = [].pop, + push = [].push, + slice = [].slice, + // Use a stripped-down indexOf if a native one is unavailable + indexOf = [].indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, - if ( m ) { - soFar = m[3]; + // Augment a function for special use by Sizzle + markFunction = function( fn, value ) { + fn[ expando ] = value == null || value; + return fn; + }, - parts.push( m[1] ); + createCache = function() { + var cache = {}, + keys = []; - if ( m[2] ) { - extra = m[3]; - break; + return markFunction(function( key, value ) { + // Only keep the most recent entries + if ( keys.push( key ) > Expr.cacheLength ) { + delete cache[ keys.shift() ]; } - } - } while ( m ); - if ( parts.length > 1 && origPOS.exec( selector ) ) { + return (cache[ key ] = value); + }, cache ); + }, - if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { - set = posProcess( parts[0] + parts[1], context, seed ); + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), - } else { - set = Expr.relative[ parts[0] ] ? - [ context ] : - Sizzle( parts.shift(), context ); + // Regex - while ( parts.length ) { - selector = parts.shift(); + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", - if ( Expr.relative[ selector ] ) { - selector += parts.shift(); - } + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors) + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), - set = posProcess( selector, set, seed ); - } - } + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", - } else { - // Take a shortcut and set the context if the root selector is an ID - // (but not if it'll be faster if the inner selector is an ID) - if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && - Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { + // Prefer arguments not in parens/brackets, + // then attribute selectors and non-pseudos (denoted by :), + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)", - ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? - Sizzle.filter( ret.expr, ret.set )[0] : - ret.set[0]; - } + // For matchExpr.POS and matchExpr.needsContext + pos = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", - if ( context ) { - ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - set = ret.expr ? - Sizzle.filter( ret.expr, ret.set ) : - ret.set; + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), - if ( parts.length > 0 ) { - checkSet = makeArray( set ); + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, - } else { - prune = false; - } + rnot = /^:not/, + rsibling = /[\x20\t\r\n\f]*[+~]/, + rendsWithNot = /:not\($/, - while ( parts.length ) { - cur = parts.pop(); - pop = cur; + rheader = /h\d/i, + rinputs = /input|select|textarea|button/i, - if ( !Expr.relative[ cur ] ) { - cur = ""; - } else { - pop = parts.pop(); - } + rbackslash = /\\(?!\\)/g, - if ( pop == null ) { - pop = context; - } + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "POS": new RegExp( pos, "i" ), + "CHILD": new RegExp( "^:(only|nth|first|last)-child(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" ) + }, - Expr.relative[ cur ]( checkSet, pop, contextXML ); - } + // Support - } else { - checkSet = parts = []; + // Used for testing something on an element + assert = function( fn ) { + var div = document.createElement("div"); + + try { + return fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } + }, + + // Check if getElementsByTagName("*") returns only elements + assertTagNameNoComments = assert(function( div ) { + div.appendChild( document.createComment("") ); + return !div.getElementsByTagName("*").length; + }), + + // Check if getAttribute returns normalized href attributes + assertHrefNotNormalized = assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }), + + // Check if attributes should be retrieved by attribute nodes + assertAttributes = assert(function( div ) { + div.innerHTML = "<select></select>"; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }), + + // Check if getElementsByClassName can be trusted + assertUsableClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>"; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; } - } - if ( !checkSet ) { - checkSet = set; - } + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }), - if ( !checkSet ) { - Sizzle.error( cur || selector ); - } + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + assertUsableName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>"; + docElem.insertBefore( div, docElem.firstChild ); - if ( toString.call(checkSet) === "[object Array]" ) { - if ( !prune ) { - results.push.apply( results, checkSet ); + // Test + var pass = document.getElementsByName && + // buggy browsers will return fewer than the correct 2 + document.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + document.getElementsByName( expando + 0 ).length; + assertGetIdNotName = !document.getElementById( expando ); - } else if ( context && context.nodeType === 1 ) { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { - results.push( set[i] ); - } - } + // Cleanup + docElem.removeChild( div ); - } else { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - results.push( set[i] ); - } - } + return pass; + }); + +// If slice is not available, provide a backup +try { + slice.call( docElem.childNodes, 0 )[0].nodeType; +} catch ( e ) { + slice = function( i ) { + var elem, + results = []; + for ( ; (elem = this[i]); i++ ) { + results.push( elem ); } + return results; + }; +} - } else { - makeArray( checkSet, results ); - } +function Sizzle( selector, context, results, seed ) { + results = results || []; + context = context || document; + var match, elem, xml, m, + nodeType = context.nodeType; - if ( extra ) { - Sizzle( extra, origContext, results, seed ); - Sizzle.uniqueSort( results ); + if ( !selector || typeof selector !== "string" ) { + return results; } - return results; -}; + if ( nodeType !== 1 && nodeType !== 9 ) { + return []; + } -Sizzle.uniqueSort = function( results ) { - if ( sortOrder ) { - hasDuplicate = baseHasDuplicate; - results.sort( sortOrder ); + xml = isXML( context ); - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[ i - 1 ] ) { - results.splice( i--, 1 ); + if ( !xml && !seed ) { + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; } } } - return results; -}; + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed, xml ); +} -Sizzle.matches = function( expr, set ) { - return Sizzle( expr, null, null, set ); +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); }; -Sizzle.matchesSelector = function( node, expr ) { - return Sizzle( expr, null, null, [node] ).length > 0; +Sizzle.matchesSelector = function( elem, expr ) { + return Sizzle( expr, null, null, [ elem ] ).length > 0; }; -Sizzle.find = function( expr, context, isXML ) { - var set, i, len, match, type, left; +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} - if ( !expr ) { - return []; - } +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} - for ( i = 0, len = Expr.order.length; i < len; i++ ) { - type = Expr.order[i]; +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; - if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { - left = match[1]; - match.splice( 1, 1 ); + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} - if ( left.substr( left.length - 1 ) !== "\\" ) { - match[1] = (match[1] || "").replace( rBackslash, "" ); - set = Expr.find[ type ]( match, context, isXML ); +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; - if ( set != null ) { - expr = expr.replace( Expr.match[ type ], "" ); - break; + if ( nodeType ) { + if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); } } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; } - } + // Do not include comment or processing instruction nodes + } else { - if ( !set ) { - set = typeof context.getElementsByTagName !== "undefined" ? - context.getElementsByTagName( "*" ) : - []; + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } } + return ret; +}; - return { set: set, expr: expr }; +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; }; -Sizzle.filter = function( expr, set, inplace, not ) { - var match, anyFound, - type, found, item, filter, left, - i, pass, - old = expr, - result = [], - curLoop = set, - isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); +// Element contains another +contains = Sizzle.contains = docElem.contains ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) ); + } : + docElem.compareDocumentPosition ? + function( a, b ) { + return b && !!( a.compareDocumentPosition( b ) & 16 ); + } : + function( a, b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + return false; + }; - while ( expr && set.length ) { - for ( type in Expr.filter ) { - if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - filter = Expr.filter[ type ]; - left = match[1]; +Sizzle.attr = function( elem, name ) { + var val, + xml = isXML( elem ); - anyFound = false; + if ( !xml ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( xml || assertAttributes ) { + return elem.getAttribute( name ); + } + val = elem.getAttributeNode( name ); + return val ? + typeof elem[ name ] === "boolean" ? + elem[ name ] ? name : null : + val.specified ? val.value : null : + null; +}; - match.splice(1,1); +Expr = Sizzle.selectors = { - if ( left.substr( left.length - 1 ) === "\\" ) { - continue; - } + // Can be adjusted by the user + cacheLength: 50, - if ( curLoop === result ) { - result = []; - } + createPseudo: markFunction, - if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); + match: matchExpr, - if ( !match ) { - anyFound = found = true; + // IE6/7 return a modified href + attrHandle: assertHrefNotNormalized ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }, - } else if ( match === true ) { - continue; - } + find: { + "ID": assertGetIdNotName ? + function( id, context, xml ) { + if ( typeof context.getElementById !== strundefined && !xml ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; } + } : + function( id, context, xml ) { + if ( typeof context.getElementById !== strundefined && !xml ) { + var m = context.getElementById( id ); - if ( match ) { - for ( i = 0; (item = curLoop[i]) != null; i++ ) { - if ( item ) { - found = filter( item, match, i, curLoop ); - pass = not ^ found; - - if ( inplace && found != null ) { - if ( pass ) { - anyFound = true; - - } else { - curLoop[i] = false; - } - - } else if ( pass ) { - result.push( item ); - anyFound = true; - } - } - } + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; } + }, - if ( found !== undefined ) { - if ( !inplace ) { - curLoop = result; - } + "TAG": assertTagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var results = context.getElementsByTagName( tag ); - expr = expr.replace( Expr.match[ type ], "" ); + // Filter out possible comments + if ( tag === "*" ) { + var elem, + tmp = [], + i = 0; - if ( !anyFound ) { - return []; + for ( ; (elem = results[i]); i++ ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } } - break; + return tmp; } - } - } - - // Improper expression - if ( expr === old ) { - if ( anyFound == null ) { - Sizzle.error( expr ); - - } else { - break; - } - } - - old = expr; - } - - return curLoop; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Utility function for retreiving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -var getText = Sizzle.getText = function( elem ) { - var i, node, - nodeType = elem.nodeType, - ret = ""; + return results; + }, - if ( nodeType ) { - if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent || innerText for elements - if ( typeof elem.textContent === 'string' ) { - return elem.textContent; - } else if ( typeof elem.innerText === 'string' ) { - // Replace IE's carriage returns - return elem.innerText.replace( rReturn, '' ); - } else { - // Traverse it's children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling) { - ret += getText( elem ); - } + "NAME": assertUsableName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - } else { + }, - // If no nodeType, this is expected to be an array - for ( i = 0; (node = elem[i]); i++ ) { - // Do not traverse comment nodes - if ( node.nodeType !== 8 ) { - ret += getText( node ); + "CLASS": assertUsableClassName && function( className, context, xml ) { + if ( typeof context.getElementsByClassName !== strundefined && !xml ) { + return context.getElementsByClassName( className ); } } - } - return ret; -}; - -var Expr = Sizzle.selectors = { - order: [ "ID", "NAME", "TAG" ], - - match: { - ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ - }, - - leftMatch: {}, - - attrMap: { - "class": "className", - "for": "htmlFor" - }, - - attrHandle: { - href: function( elem ) { - return elem.getAttribute( "href" ); - }, - type: function( elem ) { - return elem.getAttribute( "type" ); - } }, relative: { - "+": function(checkSet, part){ - var isPartStr = typeof part === "string", - isTag = isPartStr && !rNonWord.test( part ), - isPartStrNotTag = isPartStr && !isTag; + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, - if ( isTag ) { - part = part.toLowerCase(); - } + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( rbackslash, "" ); - for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { - if ( (elem = checkSet[i]) ) { - while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" ); - checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? - elem || false : - elem === part; - } + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; } - if ( isPartStrNotTag ) { - Sizzle.filter( part, checkSet, true ); - } + return match.slice( 0, 4 ); }, - ">": function( checkSet, part ) { - var elem, - isPartStr = typeof part === "string", - i = 0, - l = checkSet.length; - - if ( isPartStr && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - - for ( ; i < l; i++ ) { - elem = checkSet[i]; + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 3 xn-component of xn+y argument ([+-]?\d*n|) + 4 sign of xn-component + 5 x of xn-component + 6 sign of y-component + 7 y of y-component + */ + match[1] = match[1].toLowerCase(); - if ( elem ) { - var parent = elem.parentNode; - checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; - } - } - - } else { - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - checkSet[i] = isPartStr ? - elem.parentNode : - elem.parentNode === part; - } - } - - if ( isPartStr ) { - Sizzle.filter( part, checkSet, true ); + if ( match[1] === "nth" ) { + // nth-child requires argument + if ( !match[2] ) { + Sizzle.error( match[0] ); } - } - }, - "": function(checkSet, part, isXML){ - var nodeCheck, - doneName = done++, - checkFn = dirCheck; + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) ); + match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" ); - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; + // other types prohibit arguments + } else if ( match[2] ) { + Sizzle.error( match[0] ); } - checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); + return match; }, - "~": function( checkSet, part, isXML ) { - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; + "PSEUDO": function( match ) { + var unquoted, excess; + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; } - checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); - } - }, - - find: { - ID: function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }, + if ( match[3] ) { + match[2] = match[3]; + } else if ( (unquoted = match[4]) ) { + // Only check arguments that contain a pseudo + if ( rpseudo.test(unquoted) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - NAME: function( match, context ) { - if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], - results = context.getElementsByName( match[1] ); - - for ( var i = 0, l = results.length; i < l; i++ ) { - if ( results[i].getAttribute("name") === match[1] ) { - ret.push( results[i] ); - } + // excess is a negative index + unquoted = unquoted.slice( 0, excess ); + match[0] = match[0].slice( 0, excess ); } - - return ret.length === 0 ? null : ret; + match[2] = unquoted; } - }, - TAG: function( match, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( match[1] ); - } + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); } }, - preFilter: { - CLASS: function( match, curLoop, inplace, result, not, isXML ) { - match = " " + match[1].replace( rBackslash, "" ) + " "; - if ( isXML ) { - return match; - } - - for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { - if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { - if ( !inplace ) { - result.push( elem ); - } + filter: { + "ID": assertGetIdNotName ? + function( id ) { + id = id.replace( rbackslash, "" ); + return function( elem ) { + return elem.getAttribute("id") === id; + }; + } : + function( id ) { + id = id.replace( rbackslash, "" ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === id; + }; + }, - } else if ( inplace ) { - curLoop[i] = false; - } - } + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; } + nodeName = nodeName.replace( rbackslash, "" ).toLowerCase(); - return false; + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; }, - ID: function( match ) { - return match[1].replace( rBackslash, "" ); + "CLASS": function( className ) { + var pattern = classCache[ expando ][ className ]; + if ( !pattern ) { + pattern = classCache( className, new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)") ); + } + return function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }; }, - TAG: function( match, curLoop ) { - return match[1].replace( rBackslash, "" ).toLowerCase(); - }, + "ATTR": function( name, operator, check ) { + return function( elem, context ) { + var result = Sizzle.attr( elem, name ); - CHILD: function( match ) { - if ( match[1] === "nth" ) { - if ( !match[2] ) { - Sizzle.error( match[0] ); + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; } - match[2] = match[2].replace(/^\+|\s*/g, ''); + result += ""; - // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' - var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( - match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || - !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.substr( result.length - check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" : + false; + }; + }, - // calculate the numbers (first)n+(last) including if they are negative - match[2] = (test[1] + (test[2] || 1)) - 0; - match[3] = test[3] - 0; - } - else if ( match[2] ) { - Sizzle.error( match[0] ); - } + "CHILD": function( type, argument, first, last ) { - // TODO: Move to normal caching system - match[0] = done++; + if ( type === "nth" ) { + return function( elem ) { + var node, diff, + parent = elem.parentNode; - return match; - }, + if ( first === 1 && last === 0 ) { + return true; + } - ATTR: function( match, curLoop, inplace, result, not, isXML ) { - var name = match[1] = match[1].replace( rBackslash, "" ); + if ( parent ) { + diff = 0; + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + diff++; + if ( elem === node ) { + break; + } + } + } + } - if ( !isXML && Expr.attrMap[name] ) { - match[1] = Expr.attrMap[name]; + // Incorporate the offset (or cast to NaN), then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + }; } - // Handle if an un-quoted value was used - match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); - - if ( match[2] === "~=" ) { - match[4] = " " + match[4] + " "; - } + return function( elem ) { + var node = elem; - return match; - }, + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } - PSEUDO: function( match, curLoop, inplace, result, not ) { - if ( match[1] === "not" ) { - // If we're dealing with a complex expression, or a simple one - if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { - match[3] = Sizzle(match[3], null, null, curLoop); + if ( type === "first" ) { + return true; + } - } else { - var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + node = elem; - if ( !inplace ) { - result.push.apply( result, ret ); - } + /* falls through */ + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } - return false; + return true; } - - } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { - return true; - } - - return match; + }; }, - POS: function( match ) { - match.unshift( true ); + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } - return match; + return fn; } }, - filters: { - enabled: function( elem ) { - return elem.disabled === false && elem.type !== "hidden"; + pseudos: { + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + "enabled": function( elem ) { + return elem.disabled === false; }, - disabled: function( elem ) { + "disabled": function( elem ) { return elem.disabled === true; }, - checked: function( elem ) { - return elem.checked === true; + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); }, - selected: function( elem ) { + "selected": function( elem ) { // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { @@ -4585,333 +4456,142 @@ var Expr = Sizzle.selectors = { return elem.selected === true; }, - parent: function( elem ) { - return !!elem.firstChild; + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); }, - empty: function( elem ) { - return !elem.firstChild; - }, - - has: function( elem, i, match ) { - return !!Sizzle( match[3], elem ).length; + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + var nodeType; + elem = elem.firstChild; + while ( elem ) { + if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) { + return false; + } + elem = elem.nextSibling; + } + return true; }, - header: function( elem ) { - return (/h\d/i).test( elem.nodeName ); + "header": function( elem ) { + return rheader.test( elem.nodeName ); }, - text: function( elem ) { - var attr = elem.getAttribute( "type" ), type = elem.type; + "text": function( elem ) { + var type, attr; // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); + return elem.nodeName.toLowerCase() === "input" && + (type = elem.type) === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type ); }, - radio: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; - }, - - checkbox: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; - }, - - file: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; - }, - - password: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; - }, - - submit: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "submit" === elem.type; - }, + // Input types + "radio": createInputPseudo("radio"), + "checkbox": createInputPseudo("checkbox"), + "file": createInputPseudo("file"), + "password": createInputPseudo("password"), + "image": createInputPseudo("image"), - image: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; - }, + "submit": createButtonPseudo("submit"), + "reset": createButtonPseudo("reset"), - reset: function( elem ) { + "button": function( elem ) { var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "reset" === elem.type; + return name === "input" && elem.type === "button" || name === "button"; }, - button: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && "button" === elem.type || name === "button"; + "input": function( elem ) { + return rinputs.test( elem.nodeName ); }, - input: function( elem ) { - return (/input|select|textarea|button/i).test( elem.nodeName ); + "focus": function( elem ) { + var doc = elem.ownerDocument; + return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href); }, - focus: function( elem ) { + "active": function( elem ) { return elem === elem.ownerDocument.activeElement; - } - }, - setFilters: { - first: function( elem, i ) { - return i === 0; - }, - - last: function( elem, i, match, array ) { - return i === array.length - 1; }, - even: function( elem, i ) { - return i % 2 === 0; - }, - - odd: function( elem, i ) { - return i % 2 === 1; - }, - - lt: function( elem, i, match ) { - return i < match[3] - 0; - }, - - gt: function( elem, i, match ) { - return i > match[3] - 0; - }, - - nth: function( elem, i, match ) { - return match[3] - 0 === i; - }, - - eq: function( elem, i, match ) { - return match[3] - 0 === i; - } - }, - filter: { - PSEUDO: function( elem, match, i, array ) { - var name = match[1], - filter = Expr.filters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); + // Positional types + "first": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ 0 ]; + }), - } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; + "last": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ length - 1 ]; + }), - } else if ( name === "not" ) { - var not = match[3]; + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), - for ( var j = 0, l = not.length; j < l; j++ ) { - if ( not[j] === elem ) { - return false; - } - } - - return true; - - } else { - Sizzle.error( name ); + "even": createPositionalPseudo(function( matchIndexes, length, argument ) { + for ( var i = 0; i < length; i += 2 ) { + matchIndexes.push( i ); } - }, - - CHILD: function( elem, match ) { - var first, last, - doneName, parent, cache, - count, diff, - type = match[1], - node = elem; - - switch ( type ) { - case "only": - case "first": - while ( (node = node.previousSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - if ( type === "first" ) { - return true; - } - - node = elem; - - /* falls through */ - case "last": - while ( (node = node.nextSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - return true; - - case "nth": - first = match[2]; - last = match[3]; - - if ( first === 1 && last === 0 ) { - return true; - } - - doneName = match[0]; - parent = elem.parentNode; - - if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) { - count = 0; - - for ( node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType === 1 ) { - node.nodeIndex = ++count; - } - } - - parent[ expando ] = doneName; - } + return matchIndexes; + }), - diff = elem.nodeIndex - last; - - if ( first === 0 ) { - return diff === 0; - - } else { - return ( diff % first === 0 && diff / first >= 0 ); - } + "odd": createPositionalPseudo(function( matchIndexes, length, argument ) { + for ( var i = 1; i < length; i += 2 ) { + matchIndexes.push( i ); } - }, - - ID: function( elem, match ) { - return elem.nodeType === 1 && elem.getAttribute("id") === match; - }, - - TAG: function( elem, match ) { - return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match; - }, - - CLASS: function( elem, match ) { - return (" " + (elem.className || elem.getAttribute("class")) + " ") - .indexOf( match ) > -1; - }, - - ATTR: function( elem, match ) { - var name = match[1], - result = Sizzle.attr ? - Sizzle.attr( elem, name ) : - Expr.attrHandle[ name ] ? - Expr.attrHandle[ name ]( elem ) : - elem[ name ] != null ? - elem[ name ] : - elem.getAttribute( name ), - value = result + "", - type = match[2], - check = match[4]; - - return result == null ? - type === "!=" : - !type && Sizzle.attr ? - result != null : - type === "=" ? - value === check : - type === "*=" ? - value.indexOf(check) >= 0 : - type === "~=" ? - (" " + value + " ").indexOf(check) >= 0 : - !check ? - value && result !== false : - type === "!=" ? - value !== check : - type === "^=" ? - value.indexOf(check) === 0 : - type === "$=" ? - value.substr(value.length - check.length) === check : - type === "|=" ? - value === check || value.substr(0, check.length + 1) === check + "-" : - false; - }, + return matchIndexes; + }), - POS: function( elem, match, i, array ) { - var name = match[2], - filter = Expr.setFilters[ name ]; + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + for ( var i = argument < 0 ? argument + length : argument; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), - if ( filter ) { - return filter( elem, i, match, array ); + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + for ( var i = argument < 0 ? argument + length : argument; ++i < length; ) { + matchIndexes.push( i ); } - } + return matchIndexes; + }) } }; -var origPOS = Expr.match.POS, - fescape = function(all, num){ - return "\\" + (num - 0 + 1); - }; - -for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); -} -// Expose origPOS -// "global" as in regardless of relation to brackets/parens -Expr.match.globalPOS = origPOS; - -var makeArray = function( array, results ) { - array = Array.prototype.slice.call( array, 0 ); - - if ( results ) { - results.push.apply( results, array ); - return results; +function siblingCheck( a, b, ret ) { + if ( a === b ) { + return ret; } - return array; -}; - -// Perform a simple check to determine if the browser is capable of -// converting a NodeList to an array using builtin methods. -// Also verifies that the returned array holds DOM nodes -// (which is not the case in the Blackberry browser) -try { - Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; - -// Provide a fallback method if it does not work -} catch( e ) { - makeArray = function( array, results ) { - var i = 0, - ret = results || []; - - if ( toString.call(array) === "[object Array]" ) { - Array.prototype.push.apply( ret, array ); + var cur = a.nextSibling; - } else { - if ( typeof array.length === "number" ) { - for ( var l = array.length; i < l; i++ ) { - ret.push( array[i] ); - } - - } else { - for ( ; array[i]; i++ ) { - ret.push( array[i] ); - } - } + while ( cur ) { + if ( cur === b ) { + return -1; } - return ret; - }; -} + cur = cur.nextSibling; + } -var sortOrder, siblingCheck; + return 1; +} -if ( document.documentElement.compareDocumentPosition ) { - sortOrder = function( a, b ) { +sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { if ( a === b ) { hasDuplicate = true; return 0; } - if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - return a.compareDocumentPosition ? -1 : 1; - } - - return a.compareDocumentPosition(b) & 4 ? -1 : 1; - }; - -} else { - sortOrder = function( a, b ) { + return ( !a.compareDocumentPosition || !b.compareDocumentPosition ? + a.compareDocumentPosition : + a.compareDocumentPosition(b) & 4 + ) ? -1 : 1; + } : + function( a, b ) { // The nodes are identical, we can exit early if ( a === b ) { hasDuplicate = true; @@ -4971,435 +4651,697 @@ if ( document.documentElement.compareDocumentPosition ) { siblingCheck( ap[i], b, 1 ); }; - siblingCheck = function( a, b, ret ) { - if ( a === b ) { - return ret; - } +// Always assume the presence of duplicates if sort doesn't +// pass them to our comparison function (as in Google Chrome). +[0, 0].sort( sortOrder ); +baseHasDuplicate = !hasDuplicate; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + i = 1; - var cur = a.nextSibling; + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); - while ( cur ) { - if ( cur === b ) { - return -1; + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + results.splice( i--, 1 ); } - - cur = cur.nextSibling; } + } - return 1; - }; -} + return results; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; -// Check to see if the browser returns elements by name when -// querying by getElementById (and provide a workaround) -(function(){ - // We're going to inject a fake input element with a specified name - var form = document.createElement("div"), - id = "script" + (new Date()).getTime(), - root = document.documentElement; +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, soFar, groups, preFilters, + cached = tokenCache[ expando ][ selector ]; - form.innerHTML = "<a name='" + id + "'/>"; + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } - // Inject it into the root element, check its status, and remove it quickly - root.insertBefore( form, root.firstChild ); + soFar = selector; + groups = []; + preFilters = Expr.preFilter; - // The workaround has to do additional checks after a getElementById - // Which slows things down for other browsers (hence the branching) - if ( document.getElementById( id ) ) { - Expr.find.ID = function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); + while ( soFar ) { - return m ? - m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? - [m] : - undefined : - []; + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + soFar = soFar.slice( match[0].length ); } - }; + groups.push( tokens = [] ); + } - Expr.filter.ID = function( elem, match ) { - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + matched = false; - return elem.nodeType === 1 && node && node.nodeValue === match; - }; - } + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + tokens.push( matched = new Token( match.shift() ) ); + soFar = soFar.slice( matched.length ); - root.removeChild( form ); + // Cast descendant combinators to space + matched.type = match[0].replace( rtrim, " " ); + } - // release memory in IE - root = form = null; -})(); + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + // The last two arguments here are (context, xml) for backCompat + (match = preFilters[ type ]( match, document, true ))) ) { -(function(){ - // Check to see if the browser returns only elements - // when doing getElementsByTagName("*") + tokens.push( matched = new Token( match.shift() ) ); + soFar = soFar.slice( matched.length ); + matched.type = type; + matched.matches = match; + } + } - // Create a fake element - var div = document.createElement("div"); - div.appendChild( document.createComment("") ); + if ( !matched ) { + break; + } + } - // Make sure no comments are found - if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function( match, context ) { - var results = context.getElementsByTagName( match[1] ); + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} - // Filter out possible comments - if ( match[1] === "*" ) { - var tmp = []; +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && combinator.dir === "parentNode", + doneName = done++; - for ( var i = 0; results[i]; i++ ) { - if ( results[i].nodeType === 1 ) { - tmp.push( results[i] ); - } + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + return matcher( elem, context, xml ); } - - results = tmp; } + } : - return results; + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( !xml ) { + var cache, + dirkey = dirruns + " " + doneName + " ", + cachedkey = dirkey + cachedruns; + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + if ( (cache = elem[ expando ]) === cachedkey ) { + return elem.sizset; + } else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) { + if ( elem.sizset ) { + return elem; + } + } else { + elem[ expando ] = cachedkey; + if ( matcher( elem, context, xml ) ) { + elem.sizset = true; + return elem; + } + elem.sizset = false; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + if ( matcher( elem, context, xml ) ) { + return elem; + } + } + } + } }; - } +} - // Check to see if an attribute returns normalized href attributes - div.innerHTML = "<a href='#'></a>"; +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} - if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && - div.firstChild.getAttribute("href") !== "#" ) { +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; - Expr.attrHandle.href = function( elem ) { - return elem.getAttribute( "href", 2 ); - }; + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } } - // release memory in IE - div = null; -})(); - -if ( document.querySelectorAll ) { - (function(){ - var oldSizzle = Sizzle, - div = document.createElement("div"), - id = "__sizzle__"; - - div.innerHTML = "<p class='TEST'></p>"; + return newUnmatched; +} - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + // Positional selectors apply to seed elements, so it is invalid to follow them with relative ones + if ( seed && postFinder ) { return; } - Sizzle = function( query, context, extra, seed ) { - context = context || document; + var i, elem, postFilterIn, + preMap = [], + postMap = [], + preexisting = results.length, - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && !Sizzle.isXML(context) ) { - // See if we find a selector to speed up - var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [], seed ), - if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { - // Speed-up: Sizzle("TAG") - if ( match[1] ) { - return makeArray( context.getElementsByTagName( query ), extra ); + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, - // Speed-up: Sizzle(".CLASS") - } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { - return makeArray( context.getElementsByClassName( match[2] ), extra ); - } - } + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - if ( context.nodeType === 9 ) { - // Speed-up: Sizzle("body") - // The body element only exists once, optimize finding it - if ( query === "body" && context.body ) { - return makeArray( [ context.body ], extra ); + // ...intermediate processing is necessary + [] : - // Speed-up: Sizzle("#ID") - } else if ( match && match[3] ) { - var elem = context.getElementById( match[3] ); + // ...otherwise use results directly + results : + matcherIn; - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id === match[3] ) { - return makeArray( [ elem ], extra ); - } + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } - } else { - return makeArray( [], extra ); - } - } + // Apply postFilter + if ( postFilter ) { + postFilterIn = condense( matcherOut, postMap ); + postFilter( postFilterIn, [], context, xml ); - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(qsaError) {} + // Un-match failing elements by moving them back to matcherIn + i = postFilterIn.length; + while ( i-- ) { + if ( (elem = postFilterIn[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - var oldContext = context, - old = context.getAttribute( "id" ), - nid = old || id, - hasParent = context.parentNode, - relativeHierarchySelector = /^\s*[+~]/.test( query ); - - if ( !old ) { - context.setAttribute( "id", nid ); - } else { - nid = nid.replace( /'/g, "\\$&" ); - } - if ( relativeHierarchySelector && hasParent ) { - context = context.parentNode; + // Keep seed and results synchronized + if ( seed ) { + // Ignore postFinder because it can't coexist with seed + i = preFilter && matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + seed[ preMap[i] ] = !(results[ preMap[i] ] = elem); + } + } + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + // The concatenated values are (context, xml) for backCompat + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && tokens.slice( 0, i - 1 ).join("").replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && tokens.join("") + ); + } + matchers.push( matcher ); + } + } - try { - if ( !relativeHierarchySelector || hasParent ) { - return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); - } + return elementMatcher( matchers ); +} - } catch(pseudoError) { - } finally { - if ( !old ) { - oldContext.removeAttribute( "id" ); +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Nested matchers should use non-integer dirruns + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = superMatcher.el; + } + + // Add elements passing elementMatchers directly to results + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + for ( j = 0; (matcher = elementMatchers[j]); j++ ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; } } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++superMatcher.el; + } } - } - - return oldSizzle(query, context, extra, seed); - }; - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } - // release memory in IE - div = null; - })(); -} + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } -(function(){ - var html = document.documentElement, - matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + for ( j = 0; (matcher = setMatchers[j]); j++ ) { + matcher( unmatched, setMatched, context, xml ); + } - if ( matches ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9 fails this) - var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), - pseudoWorks = false; + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } - try { - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( document.documentElement, "[test!='']:sizzle" ); + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } - } catch( pseudoError ) { - pseudoWorks = true; - } + // Add matches to results + push.apply( results, setMatched ); - Sizzle.matchesSelector = function( node, expr ) { - // Make sure that attribute selectors are quoted - expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { - if ( !Sizzle.isXML( node ) ) { - try { - if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { - var ret = matches.call( node, expr ); + Sizzle.uniqueSort( results ); + } + } - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || !disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9, so check for that - node.document && node.document.nodeType !== 11 ) { - return ret; - } - } - } catch(e) {} + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; } - return Sizzle(expr, null, null, [node]).length > 0; + return unmatched; }; - } -})(); -(function(){ - var div = document.createElement("div"); + superMatcher.el = 0; + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} - div.innerHTML = "<div class='test e'></div><div class='test'></div>"; +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ expando ][ selector ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); } + return cached; +}; - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; - - if ( div.getElementsByClassName("e").length === 1 ) { - return; +function multipleContexts( selector, contexts, results, seed ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results, seed ); } + return results; +} - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function( match, context, isXML ) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); - } - }; - - // release memory in IE - div = null; -})(); - -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; +function select( selector, context, results, seed, xml ) { + var i, tokens, token, type, find, + match = tokenize( selector ), + j = match.length; - if ( elem ) { - var match = false; + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { - elem = elem[dir]; + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && !xml && + Expr.relative[ tokens[1].type ] ) { - while ( elem ) { - if ( elem[ expando ] === doneName ) { - match = checkSet[elem.sizset]; - break; + context = Expr.find["ID"]( token.matches[0].replace( rbackslash, "" ), context, xml )[0]; + if ( !context ) { + return results; } - if ( elem.nodeType === 1 && !isXML ){ - elem[ expando ] = doneName; - elem.sizset = i; - } + selector = selector.slice( tokens.shift().length ); + } + + // Fetch a seed set for right-to-left matching + for ( i = matchExpr["POS"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) { + token = tokens[i]; - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { break; } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( rbackslash, "" ), + rsibling.test( tokens[0].type ) && context.parentNode || context, + xml + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && tokens.join(""); + if ( !selector ) { + push.apply( results, slice.call( seed, 0 ) ); + return results; + } - elem = elem[dir]; + break; + } + } } - - checkSet[i] = match; } } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + xml, + results, + rsibling.test( selector ) + ); + return results; } -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; +if ( document.querySelectorAll ) { + (function() { + var disconnectedMatch, + oldSelect = select, + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // qSa(:focus) reports false when true (Chrome 21), + // A support test would require too much code (would include document ready) + rbuggyQSA = [":focus"], + + // matchesSelector(:focus) reports false when true (Chrome 21), + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + // A support test would require too much code (would include document ready) + // just skip matchesSelector for :active + rbuggyMatches = [ ":active", ":focus" ], + matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector; + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = "<select><option selected=''></option></select>"; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here (do not put tests after this one) + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); - if ( elem ) { - var match = false; + assert(function( div ) { - elem = elem[dir]; + // Opera 10-12/IE9 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = "<p test=''></p>"; + if ( div.querySelectorAll("[test^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } - while ( elem ) { - if ( elem[ expando ] === doneName ) { - match = checkSet[elem.sizset]; - break; - } + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here (do not put tests after this one) + div.innerHTML = "<input type='hidden'/>"; + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push(":enabled", ":disabled"); + } + }); - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem[ expando ] = doneName; - elem.sizset = i; - } + // rbuggyQSA always contains :focus, so no need for a length check + rbuggyQSA = /* rbuggyQSA.length && */ new RegExp( rbuggyQSA.join("|") ); - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } + select = function( selector, context, results, seed, xml ) { + // Only use querySelectorAll when not filtering, + // when this is not xml, + // and when no QSA bugs apply + if ( !seed && !xml && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + var groups, i, + old = true, + nid = expando, + newContext = context, + newSelector = context.nodeType === 9 && selector; - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + groups[i].join(""); } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); } - elem = elem[dir]; + if ( newSelector ) { + try { + push.apply( results, slice.call( newContext.querySelectorAll( + newSelector + ), 0 ) ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } } - checkSet[i] = match; - } - } -} - -if ( document.documentElement.contains ) { - Sizzle.contains = function( a, b ) { - return a !== b && (a.contains ? a.contains(b) : true); - }; - -} else if ( document.documentElement.compareDocumentPosition ) { - Sizzle.contains = function( a, b ) { - return !!(a.compareDocumentPosition(b) & 16); - }; - -} else { - Sizzle.contains = function() { - return false; - }; -} + return oldSelect( selector, context, results, seed, xml ); + }; -Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + if ( matches ) { + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + disconnectedMatch = matches.call( div, "div" ); - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; + // This should fail with an exception + // Gecko does not error, returns false instead + try { + matches.call( div, "[test!='']:sizzle" ); + rbuggyMatches.push( "!=", pseudos ); + } catch ( e ) {} + }); -var posProcess = function( selector, context, seed ) { - var match, - tmpSet = [], - later = "", - root = context.nodeType ? [context] : context; + // rbuggyMatches always contains :active and :focus, so no need for a length check + rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") ); - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); - } + Sizzle.matchesSelector = function( elem, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); - selector = Expr.relative[selector] ? selector + "*" : selector; + // rbuggyMatches always contains :active, so no need for an existence check + if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && (!rbuggyQSA || !rbuggyQSA.test( expr )) ) { + try { + var ret = matches.call( elem, expr ); - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet, seed ); - } + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } - return Sizzle.filter( later, tmpSet ); -}; + return Sizzle( expr, null, null, [ elem ] ).length > 0; + }; + } + })(); +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Back-compat +function setFilters() {} +Expr.filters = setFilters.prototype = Expr.pseudos; +Expr.setFilters = new setFilters(); -// EXPOSE // Override sizzle attribute retrieval Sizzle.attr = jQuery.attr; -Sizzle.selectors.attrMap = {}; jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; +jQuery.expr[":"] = jQuery.expr.pseudos; jQuery.unique = Sizzle.uniqueSort; jQuery.text = Sizzle.getText; jQuery.isXMLDoc = Sizzle.isXML; jQuery.contains = Sizzle.contains; -})(); - - +})( window ); var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, isSimple = /^.[^:#\[\.,]*$/, - slice = Array.prototype.slice, - POS = jQuery.expr.match.globalPOS, + rneedsContext = jQuery.expr.match.needsContext, // methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { children: true, @@ -5410,8 +5352,8 @@ var runtil = /Until$/, jQuery.fn.extend({ find: function( selector ) { - var self = this, - i, l; + var i, l, length, n, r, ret, + self = this; if ( typeof selector !== "string" ) { return jQuery( selector ).filter(function() { @@ -5423,8 +5365,7 @@ jQuery.fn.extend({ }); } - var ret = this.pushStack( "", "find", selector ), - length, n, r; + ret = this.pushStack( "", "find", selector ); for ( i = 0, l = this.length; i < l; i++ ) { length = ret.length; @@ -5447,9 +5388,12 @@ jQuery.fn.extend({ }, has: function( target ) { - var targets = jQuery( target ); + var i, + targets = jQuery( target, this ), + len = targets.length; + return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { + for ( i = 0; i < len; i++ ) { if ( jQuery.contains( this, targets[i] ) ) { return true; } @@ -5468,55 +5412,32 @@ jQuery.fn.extend({ is: function( selector ) { return !!selector && ( typeof selector === "string" ? - // If this is a positional selector, check membership in the returned set + // If this is a positional/relative selector, check membership in the returned set // so $("p:first").is("p:last") won't return true for a doc with two "p". - POS.test( selector ) ? + rneedsContext.test( selector ) ? jQuery( selector, this.context ).index( this[0] ) >= 0 : jQuery.filter( selector, this ).length > 0 : this.filter( selector ).length > 0 ); }, closest: function( selectors, context ) { - var ret = [], i, l, cur = this[0]; - - // Array (deprecated as of jQuery 1.7) - if ( jQuery.isArray( selectors ) ) { - var level = 1; - - while ( cur && cur.ownerDocument && cur !== context ) { - for ( i = 0; i < selectors.length; i++ ) { - - if ( jQuery( cur ).is( selectors[ i ] ) ) { - ret.push({ selector: selectors[ i ], elem: cur, level: level }); - } - } - - cur = cur.parentNode; - level++; - } - - return ret; - } - - // String - var pos = POS.test( selectors ) || typeof selectors !== "string" ? + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? jQuery( selectors, context || this.context ) : 0; - for ( i = 0, l = this.length; i < l; i++ ) { + for ( ; i < l; i++ ) { cur = this[i]; - while ( cur ) { + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { ret.push( cur ); break; - - } else { - cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { - break; - } } + cur = cur.parentNode; } } @@ -5556,17 +5477,29 @@ jQuery.fn.extend({ jQuery.unique( all ) ); }, - andSelf: function() { - return this.add( this.prevObject ); + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); } }); +jQuery.fn.andSelf = jQuery.fn.addBack; + // A painfully simple check to see if an element is disconnected // from a document (should be improved, where feasible). function isDisconnected( node ) { return !node || !node.parentNode || node.parentNode.nodeType === 11; } +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + jQuery.each({ parent: function( elem ) { var parent = elem.parentNode; @@ -5579,10 +5512,10 @@ jQuery.each({ return jQuery.dir( elem, "parentNode", until ); }, next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); + return sibling( elem, "nextSibling" ); }, prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); + return sibling( elem, "previousSibling" ); }, nextAll: function( elem ) { return jQuery.dir( elem, "nextSibling" ); @@ -5605,7 +5538,7 @@ jQuery.each({ contents: function( elem ) { return jQuery.nodeName( elem, "iframe" ) ? elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); + jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { @@ -5621,11 +5554,11 @@ jQuery.each({ ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + if ( this.length > 1 && rparentsprev.test( name ) ) { ret = ret.reverse(); } - return this.pushStack( ret, name, slice.call( arguments ).join(",") ); + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); }; }); @@ -5653,19 +5586,6 @@ jQuery.extend({ return matched; }, - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; - - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } - } - - return cur; - }, - sibling: function( n, elem ) { var r = []; @@ -5713,10 +5633,6 @@ function winnow( elements, qualifier, keep ) { return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; }); } - - - - function createSafeFragment( document ) { var list = nodeNames.split( "|" ), safeFrag = document.createDocumentFragment(); @@ -5733,19 +5649,20 @@ function createSafeFragment( document ) { var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, rtagName = /<([\w:]+)/, rtbody = /<tbody/i, rhtml = /<|&#?\w+;/, - rnoInnerhtml = /<(?:script|style)/i, + rnoInnerhtml = /<(?:script|style|link)/i, rnocache = /<(?:script|object|embed|option|style)/i, rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rcheckableType = /^(?:checkbox|radio)$/, // checked="checked" or checked rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, rscriptType = /\/(java|ecma)script/i, - rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g, wrapMap = { option: [ 1, "<select multiple='multiple'>", "</select>" ], legend: [ 1, "<fieldset>", "</fieldset>" ], @@ -5756,15 +5673,17 @@ var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figca area: [ 1, "<map>", "</map>" ], _default: [ 0, "", "" ] }, - safeFragment = createSafeFragment( document ); + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); wrapMap.optgroup = wrapMap.option; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; -// IE can't serialize <link> and <script> tags normally +// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, +// unless wrapped in a div with non-breaking characters in front of it. if ( !jQuery.support.htmlSerialize ) { - wrapMap._default = [ 1, "div<div>", "</div>" ]; + wrapMap._default = [ 1, "X<div>", "</div>" ]; } jQuery.fn.extend({ @@ -5843,7 +5762,7 @@ jQuery.fn.extend({ append: function() { return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 ) { + if ( this.nodeType === 1 || this.nodeType === 11 ) { this.appendChild( elem ); } }); @@ -5851,39 +5770,44 @@ jQuery.fn.extend({ prepend: function() { return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 ) { + if ( this.nodeType === 1 || this.nodeType === 11 ) { this.insertBefore( elem, this.firstChild ); } }); }, before: function() { - if ( this[0] && this[0].parentNode ) { + if ( !isDisconnected( this[0] ) ) { return this.domManip(arguments, false, function( elem ) { this.parentNode.insertBefore( elem, this ); }); - } else if ( arguments.length ) { + } + + if ( arguments.length ) { var set = jQuery.clean( arguments ); - set.push.apply( set, this.toArray() ); - return this.pushStack( set, "before", arguments ); + return this.pushStack( jQuery.merge( set, this ), "before", this.selector ); } }, after: function() { - if ( this[0] && this[0].parentNode ) { + if ( !isDisconnected( this[0] ) ) { return this.domManip(arguments, false, function( elem ) { this.parentNode.insertBefore( elem, this.nextSibling ); }); - } else if ( arguments.length ) { - var set = this.pushStack( this, "after", arguments ); - set.push.apply( set, jQuery.clean(arguments) ); - return set; + } + + if ( arguments.length ) { + var set = jQuery.clean( arguments ); + return this.pushStack( jQuery.merge( this, set ), "after", this.selector ); } }, // keepData is for internal use only--do not document remove: function( selector, keepData ) { - for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { if ( !keepData && elem.nodeType === 1 ) { jQuery.cleanData( elem.getElementsByTagName("*") ); @@ -5900,7 +5824,10 @@ jQuery.fn.extend({ }, empty: function() { - for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { // Remove element nodes and prevent memory leaks if ( elem.nodeType === 1 ) { jQuery.cleanData( elem.getElementsByTagName("*") ); @@ -5933,11 +5860,12 @@ jQuery.fn.extend({ if ( value === undefined ) { return elem.nodeType === 1 ? elem.innerHTML.replace( rinlinejQuery, "" ) : - null; + undefined; } - + // See if we can take a shortcut and just use innerHTML if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { @@ -5966,7 +5894,7 @@ jQuery.fn.extend({ }, replaceWith: function( value ) { - if ( this[0] && this[0].parentNode ) { + if ( !isDisconnected( this[0] ) ) { // Make sure that the elements are removed from the DOM before they are inserted // this can help fix replacing a parent with child elements if ( jQuery.isFunction( value ) ) { @@ -5992,11 +5920,11 @@ jQuery.fn.extend({ jQuery(parent).append( value ); } }); - } else { - return this.length ? - this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : - this; } + + return this.length ? + this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : + this; }, detach: function( selector ) { @@ -6004,78 +5932,78 @@ jQuery.fn.extend({ }, domManip: function( args, table, callback ) { - var results, first, fragment, parent, + + // Flatten any nested arrays + args = [].concat.apply( [], args ); + + var results, first, fragment, iNoClone, + i = 0, value = args[0], - scripts = []; + scripts = [], + l = this.length; // We can't cloneNode fragments that contain checked, in WebKit - if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { + if ( !jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test( value ) ) { return this.each(function() { - jQuery(this).domManip( args, table, callback, true ); + jQuery(this).domManip( args, table, callback ); }); } if ( jQuery.isFunction(value) ) { return this.each(function(i) { var self = jQuery(this); - args[0] = value.call(this, i, table ? self.html() : undefined); + args[0] = value.call( this, i, table ? self.html() : undefined ); self.domManip( args, table, callback ); }); } if ( this[0] ) { - parent = value && value.parentNode; - - // If we're in a fragment, just use that instead of building a new one - if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) { - results = { fragment: parent }; - - } else { - results = jQuery.buildFragment( args, this, scripts ); - } - + results = jQuery.buildFragment( args, this, scripts ); fragment = results.fragment; + first = fragment.firstChild; if ( fragment.childNodes.length === 1 ) { - first = fragment = fragment.firstChild; - } else { - first = fragment.firstChild; + fragment = first; } if ( first ) { table = table && jQuery.nodeName( first, "tr" ); - for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) { + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + // Fragments from the fragment cache must always be cloned and never used in place. + for ( iNoClone = results.cacheable || l - 1; i < l; i++ ) { callback.call( - table ? - root(this[i], first) : + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : this[i], - // Make sure that we do not leak memory by inadvertently discarding - // the original fragment (which might have attached data) instead of - // using it; in addition, use the original fragment object for the last - // item instead of first because it can end up being emptied incorrectly - // in certain situations (Bug #8070). - // Fragments from the fragment cache must always be cloned and never used - // in place. - results.cacheable || ( l > 1 && i < lastIndex ) ? - jQuery.clone( fragment, true, true ) : - fragment + i === iNoClone ? + fragment : + jQuery.clone( fragment, true, true ) ); } } + // Fix #11809: Avoid leaking memory + fragment = first = null; + if ( scripts.length ) { jQuery.each( scripts, function( i, elem ) { if ( elem.src ) { - jQuery.ajax({ - type: "GET", - global: false, - url: elem.src, - async: false, - dataType: "script" - }); + if ( jQuery.ajax ) { + jQuery.ajax({ + url: elem.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.error("no ajax"); + } } else { - jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) ); + jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "" ) ); } if ( elem.parentNode ) { @@ -6089,11 +6017,8 @@ jQuery.fn.extend({ } }); -function root( elem, cur ) { - return jQuery.nodeName(elem, "table") ? - (elem.getElementsByTagName("tbody")[0] || - elem.appendChild(elem.ownerDocument.createElement("tbody"))) : - elem; +function findOrAppend( elem, tag ) { + return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); } function cloneCopyEvent( src, dest ) { @@ -6146,19 +6071,27 @@ function cloneFixAttributes( src, dest ) { nodeName = dest.nodeName.toLowerCase(); - // IE6-8 fail to clone children inside object elements that use - // the proprietary classid attribute value (rather than the type - // attribute) to identify the type of content to display if ( nodeName === "object" ) { - dest.outerHTML = src.outerHTML; + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && (src.innerHTML && !jQuery.trim(dest.innerHTML)) ) { + dest.innerHTML = src.innerHTML; + } - } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) { + } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { // IE6-8 fails to persist the checked state of a cloned checkbox // or radio button. Worse, IE6-7 fail to give the cloned element // a checked appearance if the defaultChecked value isn't also set - if ( src.checked ) { - dest.defaultChecked = dest.checked = src.checked; - } + + dest.defaultChecked = dest.checked = src.checked; // IE6-7 get confused and end up setting the value of a cloned // checkbox/radio button to an empty string instead of "on" @@ -6184,56 +6117,44 @@ function cloneFixAttributes( src, dest ) { // Event data gets referenced instead of copied if the expando // gets copied too dest.removeAttribute( jQuery.expando ); - - // Clear flags for bubbling special change/submit events, they must - // be reattached when the newly cloned events are first activated - dest.removeAttribute( "_submit_attached" ); - dest.removeAttribute( "_change_attached" ); } -jQuery.buildFragment = function( args, nodes, scripts ) { - var fragment, cacheable, cacheresults, doc, - first = args[ 0 ]; - - // nodes may contain either an explicit document object, - // a jQuery collection or context object. - // If nodes[0] contains a valid object to assign to doc - if ( nodes && nodes[0] ) { - doc = nodes[0].ownerDocument || nodes[0]; - } +jQuery.buildFragment = function( args, context, scripts ) { + var fragment, cacheable, cachehit, + first = args[ 0 ]; - // Ensure that an attr object doesn't incorrectly stand in as a document object - // Chrome and Firefox seem to allow this to occur and will throw exception - // Fixes #8950 - if ( !doc.createDocumentFragment ) { - doc = document; - } + // Set context from what may come in as undefined or a jQuery collection or a node + // Updated to fix #12266 where accessing context[0] could throw an exception in IE9/10 & + // also doubles as fix for #8950 where plain objects caused createDocumentFragment exception + context = context || document; + context = !context.nodeType && context[0] || context; + context = context.ownerDocument || context; // Only cache "small" (1/2 KB) HTML strings that are associated with the main document // Cloning options loses the selected state, so don't cache them // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 - if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document && + if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document && first.charAt(0) === "<" && !rnocache.test( first ) && (jQuery.support.checkClone || !rchecked.test( first )) && (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) { + // Mark cacheable and look for a hit cacheable = true; - - cacheresults = jQuery.fragments[ first ]; - if ( cacheresults && cacheresults !== 1 ) { - fragment = cacheresults; - } + fragment = jQuery.fragments[ first ]; + cachehit = fragment !== undefined; } if ( !fragment ) { - fragment = doc.createDocumentFragment(); - jQuery.clean( args, doc, fragment, scripts ); - } + fragment = context.createDocumentFragment(); + jQuery.clean( args, context, fragment, scripts ); - if ( cacheable ) { - jQuery.fragments[ first ] = cacheresults ? fragment : 1; + // Update the cache, but only store false + // unless this is a second parsing of the same content + if ( cacheable ) { + jQuery.fragments[ first ] = cachehit && fragment; + } } return { fragment: fragment, cacheable: cacheable }; @@ -6249,17 +6170,19 @@ jQuery.each({ replaceAll: "replaceWith" }, function( name, original ) { jQuery.fn[ name ] = function( selector ) { - var ret = [], + var elems, + i = 0, + ret = [], insert = jQuery( selector ), + l = insert.length, parent = this.length === 1 && this[0].parentNode; - if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { + if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { insert[ original ]( this[0] ); return this; - } else { - for ( var i = 0, l = insert.length; i < l; i++ ) { - var elems = ( i > 0 ? this.clone(true) : this ).get(); + for ( ; i < l; i++ ) { + elems = ( i > 0 ? this.clone(true) : this ).get(); jQuery( insert[i] )[ original ]( elems ); ret = ret.concat( elems ); } @@ -6283,39 +6206,26 @@ function getAll( elem ) { // Used in clean, fixes the defaultChecked property function fixDefaultChecked( elem ) { - if ( elem.type === "checkbox" || elem.type === "radio" ) { + if ( rcheckableType.test( elem.type ) ) { elem.defaultChecked = elem.checked; } } -// Finds all inputs and passes them to fixDefaultChecked -function findInputs( elem ) { - var nodeName = ( elem.nodeName || "" ).toLowerCase(); - if ( nodeName === "input" ) { - fixDefaultChecked( elem ); - // Skip scripts, get other children - } else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) { - jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); - } -} - -// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js -function shimCloneNode( elem ) { - var div = document.createElement( "div" ); - safeFragment.appendChild( div ); - - div.innerHTML = elem.outerHTML; - return div.firstChild; -} jQuery.extend({ clone: function( elem, dataAndEvents, deepDataAndEvents ) { var srcElements, destElements, i, - // IE<=8 does not properly clone detached, unknown element nodes - clone = jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ? - elem.cloneNode( true ) : - shimCloneNode( elem ); + clone; + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { @@ -6363,17 +6273,17 @@ jQuery.extend({ }, clean: function( elems, context, fragment, scripts ) { - var checkScriptType, script, j, - ret = []; - - context = context || document; + var i, j, elem, tag, wrap, depth, div, hasBody, tbody, len, handleScript, jsTags, + safe = context === document && safeFragment, + ret = []; - // !context.createElement fails in IE with an error but returns typeof 'object' - if ( typeof context.createElement === "undefined" ) { - context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + // Ensure that context is a document + if ( !context || typeof context.createDocumentFragment === "undefined" ) { + context = document; } - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + // Use the already-created safe fragment if context permits + for ( i = 0; (elem = elems[i]) != null; i++ ) { if ( typeof elem === "number" ) { elem += ""; } @@ -6387,27 +6297,18 @@ jQuery.extend({ if ( !rhtml.test( elem ) ) { elem = context.createTextNode( elem ); } else { + // Ensure a safe container in which to render the html + safe = safe || createSafeFragment( context ); + div = context.createElement("div"); + safe.appendChild( div ); + // Fix "XHTML"-style tags in all browsers elem = elem.replace(rxhtmlTag, "<$1></$2>"); - // Trim whitespace, otherwise indexOf won't work as expected - var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(), - wrap = wrapMap[ tag ] || wrapMap._default, - depth = wrap[0], - div = context.createElement("div"), - safeChildNodes = safeFragment.childNodes, - remove; - - // Append wrapper element to unknown element safe doc fragment - if ( context === document ) { - // Use the fragment we've already created for this document - safeFragment.appendChild( div ); - } else { - // Use a fragment created with the owner document - createSafeFragment( context ).appendChild( div ); - } - // Go to html and back, then peel off extra wrappers + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + depth = wrap[0]; div.innerHTML = wrap[1] + elem + wrap[2]; // Move to the right depth @@ -6419,7 +6320,7 @@ jQuery.extend({ if ( !jQuery.support.tbody ) { // String was a <table>, *may* have spurious <tbody> - var hasBody = rtbody.test(elem), + hasBody = rtbody.test(elem); tbody = tag === "table" && !hasBody ? div.firstChild && div.firstChild.childNodes : @@ -6442,59 +6343,62 @@ jQuery.extend({ elem = div.childNodes; - // Clear elements from DocumentFragment (safeFragment or otherwise) - // to avoid hoarding elements. Fixes #11356 - if ( div ) { - div.parentNode.removeChild( div ); - - // Guard against -1 index exceptions in FF3.6 - if ( safeChildNodes.length > 0 ) { - remove = safeChildNodes[ safeChildNodes.length - 1 ]; - - if ( remove && remove.parentNode ) { - remove.parentNode.removeChild( remove ); - } - } - } - } - } - - // Resets defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - var len; - if ( !jQuery.support.appendChecked ) { - if ( elem[0] && typeof (len = elem.length) === "number" ) { - for ( j = 0; j < len; j++ ) { - findInputs( elem[j] ); - } - } else { - findInputs( elem ); + // Take out of fragment container (we need a fresh div each time) + div.parentNode.removeChild( div ); } } if ( elem.nodeType ) { ret.push( elem ); } else { - ret = jQuery.merge( ret, elem ); + jQuery.merge( ret, elem ); + } + } + + // Fix #11356: Clear elements from safeFragment + if ( div ) { + elem = div = safe = null; + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + for ( i = 0; (elem = ret[i]) != null; i++ ) { + if ( jQuery.nodeName( elem, "input" ) ) { + fixDefaultChecked( elem ); + } else if ( typeof elem.getElementsByTagName !== "undefined" ) { + jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); + } } } + // Append elements to a provided document fragment if ( fragment ) { - checkScriptType = function( elem ) { - return !elem.type || rscriptType.test( elem.type ); + // Special handling of each script element + handleScript = function( elem ) { + // Check if we consider it executable + if ( !elem.type || rscriptType.test( elem.type ) ) { + // Detach the script and store it in the scripts array (if provided) or the fragment + // Return truthy to indicate that it has been handled + return scripts ? + scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) : + fragment.appendChild( elem ); + } }; - for ( i = 0; ret[i]; i++ ) { - script = ret[i]; - if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) { - scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script ); - } else { - if ( script.nodeType === 1 ) { - var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType ); + for ( i = 0; (elem = ret[i]) != null; i++ ) { + // Check if we're done after handling an executable script + if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) { + // Append to fragment and handle embedded scripts + fragment.appendChild( elem ); + if ( typeof elem.getElementsByTagName !== "undefined" ) { + // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration + jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript ); + // Splice the scripts into ret after their former ancestor and advance our index beyond them ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); + i += jsTags.length; } - fragment.appendChild( script ); } } } @@ -6502,81 +6406,253 @@ jQuery.extend({ return ret; }, - cleanData: function( elems ) { - var data, id, + cleanData: function( elems, /* internal */ acceptData ) { + var data, id, elem, type, + i = 0, + internalKey = jQuery.expando, cache = jQuery.cache, - special = jQuery.event.special, - deleteExpando = jQuery.support.deleteExpando; + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { - continue; - } + for ( ; (elem = elems[i]) != null; i++ ) { - id = elem[ jQuery.expando ]; + if ( acceptData || jQuery.acceptData( elem ) ) { - if ( id ) { - data = cache[ id ]; + id = elem[ internalKey ]; + data = id && cache[ id ]; - if ( data && data.events ) { - for ( var type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } } } - // Null the DOM reference to avoid IE6/7/8 leak (#7054) - if ( data.handle ) { - data.handle.elem = null; - } - } + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { - if ( deleteExpando ) { - delete elem[ jQuery.expando ]; + delete cache[ id ]; - } else if ( elem.removeAttribute ) { - elem.removeAttribute( jQuery.expando ); - } + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; - delete cache[ id ]; + } else if ( elem.removeAttribute ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + jQuery.deletedIds.push( id ); + } + } } } } }); +// Limit scope pollution from any deprecated API +(function() { + +var matched, browser; + +// Use of jQuery.browser is frowned upon. +// More details: http://api.jquery.com/jQuery.browser +// jQuery.uaMatch maintained for back-compat +jQuery.uaMatch = function( ua ) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) || + /(webkit)[ \/]([\w.]+)/.exec( ua ) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || + /(msie) ([\w.]+)/.exec( ua ) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; +}; +matched = jQuery.uaMatch( navigator.userAgent ); +browser = {}; +if ( matched.browser ) { + browser[ matched.browser ] = true; + browser.version = matched.version; +} + +// Chrome is Webkit, but Webkit is also Safari. +if ( browser.chrome ) { + browser.webkit = true; +} else if ( browser.webkit ) { + browser.safari = true; +} + +jQuery.browser = browser; +jQuery.sub = function() { + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); + }; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; +}; -var ralpha = /alpha\([^)]*\)/i, +})(); +var curCSS, iframe, iframeDoc, + ralpha = /alpha\([^)]*\)/i, ropacity = /opacity=([^)]*)/, - // fixed for IE9, see #8346 - rupper = /([A-Z]|^ms)/g, - rnum = /^[\-+]?(?:\d*\.)?\d+$/i, - rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i, - rrelNum = /^([\-+])=([\-+.\de]+)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([-+])=(" + core_pnum + ")", "i" ), + elemdisplay = {}, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, - // order is important! cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ], - curCSS, + eventsToggle = jQuery.fn.toggle; - getComputedStyle, - currentStyle; +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { -jQuery.fn.css = function( name, value ) { - return jQuery.access( this, function( elem, name, value ) { - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); -}; + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var elem, display, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + values[ index ] = jQuery._data( elem, "olddisplay" ); + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && elem.style.display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + display = curCSS( elem, "display" ); + + if ( !values[ index ] && display !== "none" ) { + jQuery._data( elem, "olddisplay", display ); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state, fn2 ) { + var bool = typeof state === "boolean"; + + if ( jQuery.isFunction( state ) && jQuery.isFunction( fn2 ) ) { + return eventsToggle.apply( this, arguments ); + } + + return this.each(function() { + if ( bool ? state : isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); jQuery.extend({ // Add in style property hooks for overriding the default @@ -6589,8 +6665,6 @@ jQuery.extend({ var ret = curCSS( elem, "opacity" ); return ret === "" ? "1" : ret; - } else { - return elem.style.opacity; } } } @@ -6623,10 +6697,15 @@ jQuery.extend({ } // Make sure that we're working with the right name - var ret, type, origName = jQuery.camelCase( name ), - style = elem.style, hooks = jQuery.cssHooks[ origName ]; + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); - name = jQuery.cssProps[ origName ] || origName; + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // Check if we're setting a value if ( value !== undefined ) { @@ -6634,7 +6713,7 @@ jQuery.extend({ // convert relative number strings (+= or -=) to relative numbers. #7345 if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) ); + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); // Fixes bug #9237 type = "number"; } @@ -6650,7 +6729,7 @@ jQuery.extend({ } // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) { + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { // Wrapped to prevent IE from throwing errors when 'invalid' values are provided // Fixes bug #5509 try { @@ -6669,33 +6748,44 @@ jQuery.extend({ } }, - css: function( elem, name, extra ) { - var ret, hooks; + css: function( elem, name, numeric, extra ) { + var val, num, hooks, + origName = jQuery.camelCase( name ); // Make sure that we're working with the right name - name = jQuery.camelCase( name ); - hooks = jQuery.cssHooks[ name ]; - name = jQuery.cssProps[ name ] || name; + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - // cssFloat needs a special treatment - if ( name === "cssFloat" ) { - name = "float"; - } + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { - return ret; + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } // Otherwise, if a way to get the computed value exists, use that - } else if ( curCSS ) { - return curCSS( elem, name ); + if ( val === undefined ) { + val = curCSS( elem, name ); } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( numeric || extra !== undefined ) { + num = parseFloat( val ); + return numeric || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; }, // A method for quickly swapping in/out CSS properties to get correct calculations swap: function( elem, options, callback ) { - var old = {}, - ret, name; + var ret, name, + old = {}; // Remember the old values, and insert the new ones for ( name in options ) { @@ -6714,49 +6804,51 @@ jQuery.extend({ } }); -// DEPRECATED in 1.3, Use jQuery.css() instead -jQuery.curCSS = jQuery.css; - -if ( document.defaultView && document.defaultView.getComputedStyle ) { - getComputedStyle = function( elem, name ) { - var ret, defaultView, computedStyle, width, +// NOTE: To any future maintainer, we've window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + curCSS = function( elem, name ) { + var ret, width, minWidth, maxWidth, + computed = window.getComputedStyle( elem, null ), style = elem.style; - name = name.replace( rupper, "-$1" ).toLowerCase(); + if ( computed ) { - if ( (defaultView = elem.ownerDocument.defaultView) && - (computedStyle = defaultView.getComputedStyle( elem, null )) ) { - - ret = computedStyle.getPropertyValue( name ); - if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) { + ret = computed[ name ]; + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { ret = jQuery.style( elem, name ); } - } - // A tribute to the "awesome hack by Dean Edwards" - // WebKit uses "computed value (percentage if specified)" instead of "used value" for margins - // which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values - if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) { - width = style.width; - style.width = ret; - ret = computedStyle.width; - style.width = width; + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } } return ret; }; -} - -if ( document.documentElement.currentStyle ) { - currentStyle = function( elem, name ) { - var left, rsLeft, uncomputed, +} else if ( document.documentElement.currentStyle ) { + curCSS = function( elem, name ) { + var left, rsLeft, ret = elem.currentStyle && elem.currentStyle[ name ], style = elem.style; // Avoid setting ret to empty string here // so we don't default to auto - if ( ret == null && style && (uncomputed = style[ name ]) ) { - ret = uncomputed; + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; } // From the awesome hack by Dean Edwards @@ -6764,7 +6856,9 @@ if ( document.documentElement.currentStyle ) { // If we're not dealing with a regular pixel number // but a number that has a weird ending, we need to convert it to pixels - if ( rnumnonpx.test( ret ) ) { + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { // Remember the original values left = style.left; @@ -6788,80 +6882,165 @@ if ( document.documentElement.currentStyle ) { }; } -curCSS = getComputedStyle || currentStyle; +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + // we use jQuery.css instead of curCSS here + // because of the reliableMarginRight CSS hook! + val += jQuery.css( elem, extra + cssExpand[ i ], true ); + } + + // From this point on we use curCSS for maximum performance (relevant in animations) + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0; + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; + } + } else { + // at this point, extra isn't content, so add padding + val += parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0; + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; + } + } + } + + return val; +} function getWidthOrHeight( elem, name, extra ) { - // Start with offset property + // Start with offset property, which is equivalent to the border-box value var val = name === "width" ? elem.offsetWidth : elem.offsetHeight, - i = name === "width" ? 1 : 0, - len = 4; + valueIsBorderBox = true, + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } - if ( val > 0 ) { - if ( extra !== "border" ) { - for ( ; i < len; i += 2 ) { - if ( !extra ) { - val -= parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0; - } - if ( extra === "margin" ) { - val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ] ) ) || 0; - } else { - val -= parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; - } - } + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; } - return val + "px"; - } + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); - // Fall back to computed then uncomputed css if necessary - val = curCSS( elem, name ); - if ( val < 0 || val == null ) { - val = elem.style[ name ]; + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; } - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test(val) ) { - return val; + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox + ) + ) + "px"; +} + + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + if ( elemdisplay[ nodeName ] ) { + return elemdisplay[ nodeName ]; } - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; + var elem = jQuery( "<" + nodeName + ">" ).appendTo( document.body ), + display = elem.css("display"); + elem.remove(); + + // If the simple way fails, + // get element's real default display by attaching it to a temp iframe + if ( display === "none" || display === "" ) { + // Use the already-created iframe if possible + iframe = document.body.appendChild( + iframe || jQuery.extend( document.createElement("iframe"), { + frameBorder: 0, + width: 0, + height: 0 + }) + ); - // Add padding, border, margin - if ( extra ) { - for ( ; i < len; i += 2 ) { - val += parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0; - if ( extra !== "padding" ) { - val += parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; - } - if ( extra === "margin" ) { - val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ]) ) || 0; - } + // Create a cacheable copy of the iframe document on first call. + // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML + // document to it; WebKit & Firefox won't allow reusing the iframe document. + if ( !iframeDoc || !iframe.createElement ) { + iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; + iframeDoc.write("<!doctype html><html><body>"); + iframeDoc.close(); } + + elem = iframeDoc.body.appendChild( iframeDoc.createElement(nodeName) ); + + display = curCSS( elem, "display" ); + document.body.removeChild( iframe ); } - return val + "px"; + // Store the correct default display + elemdisplay[ nodeName ] = display; + + return display; } jQuery.each([ "height", "width" ], function( i, name ) { jQuery.cssHooks[ name ] = { get: function( elem, computed, extra ) { if ( computed ) { - if ( elem.offsetWidth !== 0 ) { - return getWidthOrHeight( elem, name, extra ); - } else { + // certain elements can have dimension info if we invisibly show them + // however, it must have a current display style that would benefit from this + if ( elem.offsetWidth === 0 && rdisplayswap.test( curCSS( elem, "display" ) ) ) { return jQuery.swap( elem, cssShow, function() { return getWidthOrHeight( elem, name, extra ); }); + } else { + return getWidthOrHeight( elem, name, extra ); } } }, - set: function( elem, value ) { - return rnum.test( value ) ? - value + "px" : - value; + set: function( elem, value, extra ) { + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box" + ) : 0 + ); } }; }); @@ -6871,7 +7050,7 @@ if ( !jQuery.support.opacity ) { get: function( elem, computed ) { // IE uses filters for opacity return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? - ( parseFloat( RegExp.$1 ) / 100 ) + "" : + ( 0.01 * parseFloat( RegExp.$1 ) ) + "" : computed ? "1" : ""; }, @@ -6886,7 +7065,8 @@ if ( !jQuery.support.opacity ) { style.zoom = 1; // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 - if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) { + if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" && + style.removeAttribute ) { // Setting style.filter to null, "" & " " still leave "filter:" in the cssText // if "filter:" is present at all, clearType is disabled, we want to avoid this @@ -6907,9 +7087,9 @@ if ( !jQuery.support.opacity ) { }; } +// These hooks cannot be added until DOM ready because the support test +// for it is not run until after DOM ready jQuery(function() { - // This hook cannot be added until DOM ready because the support test - // for it is not run until after DOM ready if ( !jQuery.support.reliableMarginRight ) { jQuery.cssHooks.marginRight = { get: function( elem, computed ) { @@ -6917,22 +7097,35 @@ jQuery(function() { // Work around by temporarily setting element display to inline-block return jQuery.swap( elem, { "display": "inline-block" }, function() { if ( computed ) { - return curCSS( elem, "margin-right" ); - } else { - return elem.style.marginRight; + return curCSS( elem, "marginRight" ); } }); } }; } + + // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 + // getComputedStyle returns percent when specified for top/left/bottom/right + // rather than make the css module depend on the offset module, we just check for it here + if ( !jQuery.support.pixelPosition && jQuery.fn.position ) { + jQuery.each( [ "top", "left" ], function( i, prop ) { + jQuery.cssHooks[ prop ] = { + get: function( elem, computed ) { + if ( computed ) { + var ret = curCSS( elem, prop ); + // if curCSS returns percentage, fallback to offset + return rnumnonpx.test( ret ) ? jQuery( elem ).position()[ prop ] + "px" : ret; + } + } + }; + }); + } + }); if ( jQuery.expr && jQuery.expr.filters ) { jQuery.expr.filters.hidden = function( elem ) { - var width = elem.offsetWidth, - height = elem.offsetHeight; - - return ( width === 0 && height === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none"); + return ( elem.offsetWidth === 0 && elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || curCSS( elem, "display" )) === "none"); }; jQuery.expr.filters.visible = function( elem ) { @@ -6946,7 +7139,6 @@ jQuery.each({ padding: "", border: "Width" }, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { expand: function( value ) { var i, @@ -6963,27 +7155,127 @@ jQuery.each({ return expanded; } }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +}); +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, + rselectTextarea = /^(?:select|textarea)/i; + +jQuery.fn.extend({ + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map(function(){ + return this.elements ? jQuery.makeArray( this.elements ) : this; + }) + .filter(function(){ + return this.name && !this.disabled && + ( this.checked || rselectTextarea.test( this.nodeName ) || + rinput.test( this.type ) ); + }) + .map(function( i, elem ){ + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val, i ){ + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + } }); +//Serialize an array of form elements or a set of +//key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // If array item is non-scalar (array or object), encode its + // numeric index to resolve deserialization ambiguity issues. + // Note that rack (as of 1.0.0) can't currently deserialize + // nested arrays properly, and attempting to do so may cause + // a server error. Possible fixes are to modify rack's + // deserialization algorithm or to provide an option or flag + // to force array serialization to be shallow. + buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} +var + // Document location + ajaxLocParts, + ajaxLocation, -var r20 = /%20/g, - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, rhash = /#.*$/, rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL - rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, // #7653, #8125, #8152: local protocol detection rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, rquery = /\?/, rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, - rselectTextarea = /^(?:select|textarea)/i, - rspacesAjax = /\s+/, rts = /([?&])_=[^&]*/, - rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, + rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, // Keep a copy of the old load method _load = jQuery.fn.load, @@ -7006,12 +7298,6 @@ var r20 = /%20/g, */ transports = {}, - // Document location - ajaxLocation, - - // Document location segments - ajaxLocParts, - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression allTypes = ["*/"] + ["*"]; @@ -7041,14 +7327,12 @@ function addToPrefiltersOrTransports( structure ) { dataTypeExpression = "*"; } - if ( jQuery.isFunction( func ) ) { - var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ), - i = 0, - length = dataTypes.length, - dataType, - list, - placeBefore; + var dataType, list, placeBefore, + dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ), + i = 0, + length = dataTypes.length; + if ( jQuery.isFunction( func ) ) { // For each dataType in the dataTypeExpression for ( ; i < length; i++ ) { dataType = dataTypes[ i ]; @@ -7075,11 +7359,11 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX inspected[ dataType ] = true; - var list = structure[ dataType ], + var selection, + list = structure[ dataType ], i = 0, length = list ? list.length : 0, - executeOnly = ( structure === prefilters ), - selection; + executeOnly = ( structure === prefilters ); for ( ; i < length && ( executeOnly || !selection ); i++ ) { selection = list[ i ]( options, originalOptions, jqXHR ); @@ -7122,109 +7406,75 @@ function ajaxExtend( target, src ) { } } -jQuery.fn.extend({ - load: function( url, params, callback ) { - if ( typeof url !== "string" && _load ) { - return _load.apply( this, arguments ); +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } - // Don't do a request if no elements are being requested - } else if ( !this.length ) { - return this; - } + // Don't do a request if no elements are being requested + if ( !this.length ) { + return this; + } - var off = url.indexOf( " " ); - if ( off >= 0 ) { - var selector = url.slice( off, url.length ); - url = url.slice( 0, off ); - } + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if ( off >= 0 ) { + selector = url.slice( off, url.length ); + url = url.slice( 0, off ); + } - // Default to a GET request - var type = "GET"; + // If it's a function + if ( jQuery.isFunction( params ) ) { - // If the second parameter was provided - if ( params ) { - // If it's a function - if ( jQuery.isFunction( params ) ) { - // We assume that it's the callback - callback = params; - params = undefined; + // We assume that it's the callback + callback = params; + params = undefined; - // Otherwise, build a param string - } else if ( typeof params === "object" ) { - params = jQuery.param( params, jQuery.ajaxSettings.traditional ); - type = "POST"; + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // Request the remote document + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params, + complete: function( jqXHR, status ) { + if ( callback ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); } } + }).done(function( responseText ) { - var self = this; - - // Request the remote document - jQuery.ajax({ - url: url, - type: type, - dataType: "html", - data: params, - // Complete callback (responseText is used internally) - complete: function( jqXHR, status, responseText ) { - // Store the response as specified by the jqXHR object - responseText = jqXHR.responseText; - // If successful, inject the HTML into all the matched elements - if ( jqXHR.isResolved() ) { - // #4825: Get the actual response in case - // a dataFilter is present in ajaxSettings - jqXHR.done(function( r ) { - responseText = r; - }); - // See if a selector was specified - self.html( selector ? - // Create a dummy div to hold the results - jQuery("<div>") - // inject the contents of the document in, removing the scripts - // to avoid any 'Permission Denied' errors in IE - .append(responseText.replace(rscript, "")) + // Save response for use in complete callback + response = arguments; - // Locate the specified elements - .find(selector) : + // See if a selector was specified + self.html( selector ? - // If not, just inject the full result - responseText ); - } + // Create a dummy div to hold the results + jQuery("<div>") - if ( callback ) { - self.each( callback, [ responseText, status, jqXHR ] ); - } - } - }); + // inject the contents of the document in, removing the scripts + // to avoid any 'Permission Denied' errors in IE + .append( responseText.replace( rscript, "" ) ) - return this; - }, + // Locate the specified elements + .find( selector ) : - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, + // If not, just inject the full result + responseText ); - serializeArray: function() { - return this.map(function(){ - return this.elements ? jQuery.makeArray( this.elements ) : this; - }) - .filter(function(){ - return this.name && !this.disabled && - ( this.checked || rselectTextarea.test( this.nodeName ) || - rinput.test( this.type ) ); - }) - .map(function( i, elem ){ - var val = jQuery( this ).val(); + }); - return val == null ? - null : - jQuery.isArray( val ) ? - jQuery.map( val, function( val, i ){ - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - }) : - { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - }).get(); - } -}); + return this; +}; // Attach a bunch of functions for handling common AJAX events jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){ @@ -7293,6 +7543,7 @@ jQuery.extend({ username: null, password: null, cache: null, + throws: false, traditional: false, headers: {}, */ @@ -7359,7 +7610,22 @@ jQuery.extend({ // Force options to be an object options = options || {}; - var // Create the final options object + var // ifModified key + ifModifiedKey, + // Response headers + responseHeadersString, + responseHeaders, + // transport + transport, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object s = jQuery.ajaxSetup( {}, options ), // Callbacks context callbackContext = s.context || s, @@ -7374,26 +7640,13 @@ jQuery.extend({ completeDeferred = jQuery.Callbacks( "once memory" ), // Status-dependent callbacks statusCode = s.statusCode || {}, - // ifModified key - ifModifiedKey, // Headers (they are sent all at once) requestHeaders = {}, requestHeadersNames = {}, - // Response headers - responseHeadersString, - responseHeaders, - // transport - transport, - // timeout handle - timeoutTimer, - // Cross-domain detection vars - parts, // The jqXHR state state = 0, - // To know if global events are to be dispatched - fireGlobals, - // Loop variable - i, + // Default abort message + strAbort = "canceled", // Fake xhr jqXHR = { @@ -7439,7 +7692,7 @@ jQuery.extend({ // Cancel the request abort: function( statusText ) { - statusText = statusText || "abort"; + statusText = statusText || strAbort; if ( transport ) { transport.abort( statusText ); } @@ -7452,6 +7705,8 @@ jQuery.extend({ // It is defined here because jslint complains if it is declared // at the end of the function (which would be more logical and readable) function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; // Called once if ( state === 2 ) { @@ -7476,13 +7731,10 @@ jQuery.extend({ // Set readyState jqXHR.readyState = status > 0 ? 4 : 0; - var isSuccess, - success, - error, - statusText = nativeStatusText, - response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined, - lastModified, - etag; + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } // If successful, handle type chaining if ( status >= 200 && status < 300 || status === 304 ) { @@ -7490,11 +7742,13 @@ jQuery.extend({ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { - if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) { - jQuery.lastModified[ ifModifiedKey ] = lastModified; + modified = jqXHR.getResponseHeader("Last-Modified"); + if ( modified ) { + jQuery.lastModified[ ifModifiedKey ] = modified; } - if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) { - jQuery.etag[ ifModifiedKey ] = etag; + modified = jqXHR.getResponseHeader("Etag"); + if ( modified ) { + jQuery.etag[ ifModifiedKey ] = modified; } } @@ -7507,15 +7761,11 @@ jQuery.extend({ // If we have data } else { - try { - success = ajaxConvert( s, response ); - statusText = "success"; - isSuccess = true; - } catch(e) { - // We have a parsererror - statusText = "parsererror"; - error = e; - } + isSuccess = ajaxConvert( s, response ); + statusText = isSuccess.state; + success = isSuccess.data; + error = isSuccess.error; + isSuccess = !error; } } else { // We extract error from statusText @@ -7531,7 +7781,7 @@ jQuery.extend({ // Set data for the fake xhr object jqXHR.status = status; - jqXHR.statusText = "" + ( nativeStatusText || statusText ); + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; // Success/Error if ( isSuccess ) { @@ -7577,7 +7827,7 @@ jQuery.extend({ } } else { tmp = map[ jqXHR.status ]; - jqXHR.then( tmp, tmp ); + jqXHR.always( tmp ); } } return this; @@ -7589,16 +7839,13 @@ jQuery.extend({ s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); // Extract dataTypes list - s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax ); + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( core_rspace ); - // Determine if a cross-domain request is in order + // A cross-domain request is in order when we have a protocol:host:port mismatch if ( s.crossDomain == null ) { - parts = rurl.exec( s.url.toLowerCase() ); - s.crossDomain = !!( parts && - ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] || - ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != - ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) - ); + parts = rurl.exec( s.url.toLowerCase() ) || false; + s.crossDomain = parts && ( parts.join(":") + ( parts[ 3 ] ? "" : parts[ 1 ] === "http:" ? 80 : 443 ) ) !== + ( ajaxLocParts.join(":") + ( ajaxLocParts[ 3 ] ? "" : ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ); } // Convert data if not already a string @@ -7611,7 +7858,7 @@ jQuery.extend({ // If request was aborted inside a prefilter, stop there if ( state === 2 ) { - return false; + return jqXHR; } // We can fire global events as of now if asked to @@ -7684,12 +7931,14 @@ jQuery.extend({ // Allow custom headers/mimetypes and early abort if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { - // Abort if not done already - jqXHR.abort(); - return false; + // Abort if not done already and return + return jqXHR.abort(); } + // aborting is no longer a cancellation + strAbort = "abort"; + // Install callbacks on deferreds for ( i in { success: 1, error: 1, complete: 1 } ) { jqXHR[ i ]( s[ i ] ); @@ -7723,84 +7972,13 @@ jQuery.extend({ done( -1, e ); // Simply rethrow otherwise } else { - throw e; - } - } - } - - return jqXHR; - }, - - // Serialize an array of form elements or a set of - // key/values into a query string - param: function( a, traditional ) { - var s = [], - add = function( key, value ) { - // If value is a function, invoke it and return its value - value = jQuery.isFunction( value ) ? value() : value; - s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); - }; - - // Set traditional to true for jQuery <= 1.3.2 behavior. - if ( traditional === undefined ) { - traditional = jQuery.ajaxSettings.traditional; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - }); - - } else { - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( var prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ).replace( r20, "+" ); - } -}); - -function buildParams( prefix, obj, traditional, add ) { - if ( jQuery.isArray( obj ) ) { - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - // If array item is non-scalar (array or object), encode its - // numeric index to resolve deserialization ambiguity issues. - // Note that rack (as of 1.0.0) can't currently deserialize - // nested arrays properly, and attempting to do so may cause - // a server error. Possible fixes are to modify rack's - // deserialization algorithm or to provide an option or flag - // to force array serialization to be shallow. - buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); - } - }); - - } else if ( !traditional && jQuery.type( obj ) === "object" ) { - // Serialize object item. - for ( var name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - // Serialize scalar item. - add( prefix, obj ); - } -} + throw e; + } + } + } -// This is still on the jQuery object... for now -// Want to move this to jQuery.ajax some day -jQuery.extend({ + return jqXHR; + }, // Counter for holding the number of active queries active: 0, @@ -7818,13 +7996,10 @@ jQuery.extend({ */ function ajaxHandleResponses( s, jqXHR, responses ) { - var contents = s.contents, + var ct, type, finalDataType, firstDataType, + contents = s.contents, dataTypes = s.dataTypes, - responseFields = s.responseFields, - ct, - type, - finalDataType, - firstDataType; + responseFields = s.responseFields; // Fill responseXXX fields for ( type in responseFields ) { @@ -7883,169 +8058,175 @@ function ajaxHandleResponses( s, jqXHR, responses ) { // Chain conversions given the request and the original response function ajaxConvert( s, response ) { + var conv, conv2, current, tmp, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(), + prev = dataTypes[ 0 ], + converters = {}, + i = 0; + // Apply the dataFilter if provided if ( s.dataFilter ) { response = s.dataFilter( response, s.dataType ); } - var dataTypes = s.dataTypes, - converters = {}, - i, - key, - length = dataTypes.length, - tmp, - // Current and previous dataTypes - current = dataTypes[ 0 ], - prev, - // Conversion expression - conversion, - // Conversion function - conv, - // Conversion functions (transitive conversion) - conv1, - conv2; - - // For each dataType in the chain - for ( i = 1; i < length; i++ ) { - - // Create converters map - // with lowercased keys - if ( i === 1 ) { - for ( key in s.converters ) { - if ( typeof key === "string" ) { - converters[ key.toLowerCase() ] = s.converters[ key ]; - } - } - } - - // Get the dataTypes - prev = current; - current = dataTypes[ i ]; - - // If current is auto dataType, update it to prev - if ( current === "*" ) { - current = prev; - // If no auto and dataTypes are actually different - } else if ( prev !== "*" && prev !== current ) { - - // Get the converter - conversion = prev + " " + current; - conv = converters[ conversion ] || converters[ "* " + current ]; - - // If there is no direct converter, search transitively - if ( !conv ) { - conv2 = undefined; - for ( conv1 in converters ) { - tmp = conv1.split( " " ); - if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) { - conv2 = converters[ tmp[1] + " " + current ]; - if ( conv2 ) { - conv1 = converters[ conv1 ]; - if ( conv1 === true ) { - conv = conv2; - } else if ( conv2 === true ) { - conv = conv1; + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + // Convert to each sequential dataType, tolerating list modification + for ( ; (current = dataTypes[++i]); ) { + + // There's only work to do if current dataType is non-auto + if ( current !== "*" ) { + + // Convert response if prev dataType is non-auto and differs from current + if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split(" "); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.splice( i--, 0, current ); + } + + break; } - break; } } } - } - // If we found no converter, dispatch an error - if ( !( conv || conv2 ) ) { - jQuery.error( "No conversion from " + conversion.replace(" "," to ") ); - } - // If found converter is not an equivalence - if ( conv !== true ) { - // Convert with 1 or 2 converters accordingly - response = conv ? conv( response ) : conv2( conv1(response) ); - } - } - } - return response; -} + // Apply converter (if not an equivalence) + if ( conv !== true ) { + // Unless errors are allowed to bubble, catch and return them + if ( conv && s["throws"] ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; + } + } + } + } + // Update prev for next iteration + prev = current; + } + } -var jsc = jQuery.now(), - jsre = /(\=)\?(&|$)|\?\?/i; + return { state: "success", data: response }; +} +var oldCallbacks = [], + rquestion = /\?/, + rjsonp = /(=)\?(?=&|$)|\?\?/, + nonce = jQuery.now(); // Default jsonp settings jQuery.ajaxSetup({ jsonp: "callback", jsonpCallback: function() { - return jQuery.expando + "_" + ( jsc++ ); + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; } }); // Detect, normalize options and install callbacks for jsonp requests jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { - var inspectData = ( typeof s.data === "string" ) && /^application\/x\-www\-form\-urlencoded/.test( s.contentType ); - - if ( s.dataTypes[ 0 ] === "jsonp" || - s.jsonp !== false && ( jsre.test( s.url ) || - inspectData && jsre.test( s.data ) ) ) { - - var responseContainer, - jsonpCallback = s.jsonpCallback = - jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback, - previous = window[ jsonpCallback ], - url = s.url, - data = s.data, - replace = "$1" + jsonpCallback + "$2"; + var callbackName, overwritten, responseContainer, + data = s.data, + url = s.url, + hasCallback = s.jsonp !== false, + replaceInUrl = hasCallback && rjsonp.test( url ), + replaceInData = hasCallback && !replaceInUrl && typeof data === "string" && + !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && + rjsonp.test( data ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( s.dataTypes[ 0 ] === "jsonp" || replaceInUrl || replaceInData ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + overwritten = window[ callbackName ]; + + // Insert callback into url or form data + if ( replaceInUrl ) { + s.url = url.replace( rjsonp, "$1" + callbackName ); + } else if ( replaceInData ) { + s.data = data.replace( rjsonp, "$1" + callbackName ); + } else if ( hasCallback ) { + s.url += ( rquestion.test( url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } - if ( s.jsonp !== false ) { - url = url.replace( jsre, replace ); - if ( s.url === url ) { - if ( inspectData ) { - data = data.replace( jsre, replace ); - } - if ( s.data === data ) { - // Add callback manually - url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback; - } + // Use data converter to retrieve json after script execution + s.converters["script json"] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); } - } + return responseContainer[ 0 ]; + }; - s.url = url; - s.data = data; + // force json dataType + s.dataTypes[ 0 ] = "json"; // Install callback - window[ jsonpCallback ] = function( response ) { - responseContainer = [ response ]; + window[ callbackName ] = function() { + responseContainer = arguments; }; - // Clean-up function + // Clean-up function (fires after converters) jqXHR.always(function() { - // Set callback back to previous value - window[ jsonpCallback ] = previous; - // Call if it was a function and we have a response - if ( responseContainer && jQuery.isFunction( previous ) ) { - window[ jsonpCallback ]( responseContainer[ 0 ] ); + // Restore preexisting value + window[ callbackName ] = overwritten; + + // Save back as free + if ( s[ callbackName ] ) { + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // save the callback name for future use + oldCallbacks.push( callbackName ); } - }); - // Use data converter to retrieve json after script execution - s.converters["script json"] = function() { - if ( !responseContainer ) { - jQuery.error( jsonpCallback + " was not called" ); + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); } - return responseContainer[ 0 ]; - }; - // force json dataType - s.dataTypes[ 0 ] = "json"; + responseContainer = overwritten = undefined; + }); // Delegate to script return "script"; } }); - - - - // Install script dataType jQuery.ajaxSetup({ accepts: { @@ -8131,19 +8312,15 @@ jQuery.ajaxTransport( "script", function(s) { }; } }); - - - - -var // #5280: Internet Explorer will keep connections alive if we don't abort on unload +var xhrCallbacks, + // #5280: Internet Explorer will keep connections alive if we don't abort on unload xhrOnUnloadAbort = window.ActiveXObject ? function() { // Abort all pending requests for ( var key in xhrCallbacks ) { xhrCallbacks[ key ]( 0, 1 ); } } : false, - xhrId = 0, - xhrCallbacks; + xhrId = 0; // Functions to create xhrs function createStandardXHR() { @@ -8194,9 +8371,8 @@ if ( jQuery.support.ajax ) { send: function( headers, complete ) { // Get a new xhr - var xhr = s.xhr(), - handle, - i; + var handle, i, + xhr = s.xhr(); // Open the socket // Passing null username, generates a login popup on Opera (#2865) @@ -8249,7 +8425,7 @@ if ( jQuery.support.ajax ) { xml; // Firefox throws exceptions when accessing properties - // of an xhr when a network error occured + // of an xhr when a network error occurred // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) try { @@ -8325,11 +8501,13 @@ if ( jQuery.support.ajax ) { } }; - // if we're in sync mode or it's in cache - // and has been retrieved directly (IE6 & IE7) - // we need to manually fire the callback - if ( !s.async || xhr.readyState === 4 ) { + if ( !s.async ) { + // if we're in sync mode we fire the callback callback(); + } else if ( xhr.readyState === 4 ) { + // (IE6 & IE7) if it's in cache and has been + // retrieved directly we need to fire the callback + setTimeout( callback, 0 ); } else { handle = ++xhrId; if ( xhrOnUnloadAbort ) { @@ -8355,791 +8533,666 @@ if ( jQuery.support.ajax ) { } }); } - - - - -var elemdisplay = {}, - iframe, iframeDoc, +var fxNow, timerId, rfxtypes = /^(?:toggle|show|hide)$/, - rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, - timerId, - fxAttrs = [ - // height animations - [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ], - // width animations - [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ], - // opacity animations - [ "opacity" ] - ], - fxNow; - -jQuery.fn.extend({ - show: function( speed, easing, callback ) { - var elem, display; - - if ( speed || speed === 0 ) { - return this.animate( genFx("show", 3), speed, easing, callback ); - - } else { - for ( var i = 0, j = this.length; i < j; i++ ) { - elem = this[ i ]; - - if ( elem.style ) { - display = elem.style.display; - - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { - display = elem.style.display = ""; - } - - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( (display === "" && jQuery.css(elem, "display") === "none") || - !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) { - jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) ); - } - } - } - - // Set the display of most of the elements in a second loop - // to avoid the constant reflow - for ( i = 0; i < j; i++ ) { - elem = this[ i ]; - - if ( elem.style ) { - display = elem.style.display; - - if ( display === "" || display === "none" ) { - elem.style.display = jQuery._data( elem, "olddisplay" ) || ""; - } - } - } - - return this; - } - }, - - hide: function( speed, easing, callback ) { - if ( speed || speed === 0 ) { - return this.animate( genFx("hide", 3), speed, easing, callback); - - } else { - var elem, display, - i = 0, - j = this.length; - - for ( ; i < j; i++ ) { - elem = this[i]; - if ( elem.style ) { - display = jQuery.css( elem, "display" ); - - if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) { - jQuery._data( elem, "olddisplay", display ); - } - } - } - - // Set the display of the elements in a second loop - // to avoid the constant reflow - for ( i = 0; i < j; i++ ) { - if ( this[i].style ) { - this[i].style.display = "none"; - } - } - - return this; - } - }, - - // Save the old toggle function - _toggle: jQuery.fn.toggle, - - toggle: function( fn, fn2, callback ) { - var bool = typeof fn === "boolean"; - - if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) { - this._toggle.apply( this, arguments ); - - } else if ( fn == null || bool ) { - this.each(function() { - var state = bool ? fn : jQuery(this).is(":hidden"); - jQuery(this)[ state ? "show" : "hide" ](); - }); - - } else { - this.animate(genFx("toggle", 3), fn, fn2, callback); - } - - return this; - }, - - fadeTo: function( speed, to, easing, callback ) { - return this.filter(":hidden").css("opacity", 0).show().end() - .animate({opacity: to}, speed, easing, callback); - }, - - animate: function( prop, speed, easing, callback ) { - var optall = jQuery.speed( speed, easing, callback ); - - if ( jQuery.isEmptyObject( prop ) ) { - return this.each( optall.complete, [ false ] ); - } - - // Do not change referenced properties as per-property easing will be lost - prop = jQuery.extend( {}, prop ); - - function doAnimation() { - // XXX 'this' does not always have a nodeName when running the - // test suite - - if ( optall.queue === false ) { - jQuery._mark( this ); - } - - var opt = jQuery.extend( {}, optall ), - isElement = this.nodeType === 1, - hidden = isElement && jQuery(this).is(":hidden"), - name, val, p, e, hooks, replace, - parts, start, end, unit, - method; - - // will store per property easing and be used to determine when an animation is complete - opt.animatedProperties = {}; - - // first pass over propertys to expand / normalize - for ( p in prop ) { - name = jQuery.camelCase( p ); - if ( p !== name ) { - prop[ name ] = prop[ p ]; - delete prop[ p ]; - } - - if ( ( hooks = jQuery.cssHooks[ name ] ) && "expand" in hooks ) { - replace = hooks.expand( prop[ name ] ); - delete prop[ name ]; - - // not quite $.extend, this wont overwrite keys already present. - // also - reusing 'p' from above because we have the correct "name" - for ( p in replace ) { - if ( ! ( p in prop ) ) { - prop[ p ] = replace[ p ]; - } - } - } - } - - for ( name in prop ) { - val = prop[ name ]; - // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) - if ( jQuery.isArray( val ) ) { - opt.animatedProperties[ name ] = val[ 1 ]; - val = prop[ name ] = val[ 0 ]; - } else { - opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; - } - - if ( val === "hide" && hidden || val === "show" && !hidden ) { - return opt.complete.call( this ); - } - - if ( isElement && ( name === "height" || name === "width" ) ) { - // Make sure that nothing sneaks out - // Record all 3 overflow attributes because IE does not - // change the overflow attribute when overflowX and - // overflowY are set to the same value - opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ]; - - // Set display property to inline-block for height/width - // animations on inline elements that are having width/height animated - if ( jQuery.css( this, "display" ) === "inline" && - jQuery.css( this, "float" ) === "none" ) { - - // inline-level elements accept inline-block; - // block-level elements need to be inline with layout - if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) { - this.style.display = "inline-block"; - - } else { - this.style.zoom = 1; - } - } - } - } - - if ( opt.overflow != null ) { - this.style.overflow = "hidden"; - } - - for ( p in prop ) { - e = new jQuery.fx( this, opt, p ); - val = prop[ p ]; - - if ( rfxtypes.test( val ) ) { - - // Tracks whether to show or hide based on private - // data attached to the element - method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 ); - if ( method ) { - jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" ); - e[ method ](); - } else { - e[ val ](); - } - - } else { - parts = rfxnum.exec( val ); - start = e.cur(); - - if ( parts ) { - end = parseFloat( parts[2] ); - unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" ); - - // We need to compute starting value - if ( unit !== "px" ) { - jQuery.style( this, p, (end || 1) + unit); - start = ( (end || 1) / e.cur() ) * start; - jQuery.style( this, p, start + unit); - } - - // If a +=/-= token was provided, we're doing a relative animation - if ( parts[1] ) { - end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start; - } - - e.custom( start, end, unit ); - - } else { - e.custom( start, val, "" ); - } - } - } - - // For JS strict compliance - return true; - } - - return optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - - stop: function( type, clearQueue, gotoEnd ) { - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each(function() { - var index, - hadTimers = false, - timers = jQuery.timers, - data = jQuery._data( this ); - - // clear marker counters if we know they won't be - if ( !gotoEnd ) { - jQuery._unmark( true, this ); - } - - function stopQueue( elem, data, index ) { - var hooks = data[ index ]; - jQuery.removeData( elem, index, true ); - hooks.stop( gotoEnd ); - } - - if ( type == null ) { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) { - stopQueue( this, data, index ); - } - } - } else if ( data[ index = type + ".run" ] && data[ index ].stop ){ - stopQueue( this, data, index ); - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { - if ( gotoEnd ) { - - // force the next step to be the last - timers[ index ]( true ); - } else { - timers[ index ].saveState(); - } - hadTimers = true; - timers.splice( index, 1 ); - } - } - - // start the next in the queue if the last step wasn't forced - // timers currently will call their complete callbacks, which will dequeue - // but only if they were gotoEnd - if ( !( gotoEnd && hadTimers ) ) { - jQuery.dequeue( this, type ); - } - }); - } - -}); + rfxnum = new RegExp( "^(?:([-+])=|)(" + core_pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [function( prop, value ) { + var end, unit, + tween = this.createTween( prop, value ), + parts = rfxnum.exec( value ), + target = tween.cur(), + start = +target || 0, + scale = 1, + maxIterations = 20; + + if ( parts ) { + end = +parts[2]; + unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + + // We need to compute starting value + if ( unit !== "px" && start ) { + // Iteratively approximate from a nonzero starting point + // Prefer the current property, because this process will be trivial if it uses the same units + // Fallback to end or a simple constant + start = jQuery.css( tween.elem, prop, true ) || end || 1; + + do { + // If previous iteration zeroed out, double until we get *something* + // Use a string for doubling factor so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // And breaking the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); + } + + tween.unit = unit; + tween.start = start; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end; + } + return tween; + }] + }; // Animations created synchronously will run synchronously function createFxNow() { - setTimeout( clearFxNow, 0 ); - return ( fxNow = jQuery.now() ); -} - -function clearFxNow() { - fxNow = undefined; -} - -// Generate parameters to create a standard animation -function genFx( type, num ) { - var obj = {}; - - jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() { - obj[ this ] = type; - }); - - return obj; -} - -// Generate shortcuts for custom animations -jQuery.each({ - slideDown: genFx( "show", 1 ), - slideUp: genFx( "hide", 1 ), - slideToggle: genFx( "toggle", 1 ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -}); - -jQuery.extend({ - speed: function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - jQuery.isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing - }; + setTimeout(function() { + fxNow = undefined; + }, 0 ); + return ( fxNow = jQuery.now() ); +} - opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : - opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; +function createTweens( animation, props ) { + jQuery.each( props, function( prop, value ) { + var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( collection[ index ].call( animation, prop, value ) ) { - // normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; + // we're done with this property + return; + } } + }); +} - // Queueing - opt.old = opt.complete; - - opt.complete = function( noUnmark ) { - if ( jQuery.isFunction( opt.old ) ) { - opt.old.call( this ); +function Animation( elem, properties, options ) { + var result, + index = 0, + tweenerIndex = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + percent = 1 - ( remaining / animation.duration || 0 ), + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end, easing ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // if we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } else if ( noUnmark !== false ) { - jQuery._unmark( this ); + // resolve when we played the last frame + // otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; } - }; + }), + props = animation.props; - return opt; - }, + propFilter( props, animation.opts.specialEasing ); - easing: { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return ( -Math.cos( p*Math.PI ) / 2 ) + 0.5; + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; } - }, - - timers: [], + } - fx: function( elem, options, prop ) { - this.options = options; - this.elem = elem; - this.prop = prop; + createTweens( animation, props ); - options.orig = options.orig || {}; + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); } -}); + jQuery.fx.timer( + jQuery.extend( tick, { + anim: animation, + queue: animation.opts.queue, + elem: elem + }) + ); -jQuery.fx.prototype = { - // Simple function for setting a style value - update: function() { - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} - ( jQuery.fx.step[ this.prop ] || jQuery.fx.step._default )( this ); - }, +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; - // Get the current size - cur: function() { - if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) { - return this.elem[ this.prop ]; + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; } - var parsed, - r = jQuery.css( this.elem, this.prop ); - // Empty strings, null, undefined and "auto" are converted to 0, - // complex values such as "rotate(1rad)" are returned as is, - // simple values such as "10px" are parsed to Float. - return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed; - }, - - // Start an animation from one number to another - custom: function( from, to, unit ) { - var self = this, - fx = jQuery.fx; - - this.startTime = fxNow || createFxNow(); - this.end = to; - this.now = this.start = from; - this.pos = this.state = 0; - this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" ); - - function t( gotoEnd ) { - return self.step( gotoEnd ); + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; } - t.queue = this.options.queue; - t.elem = this.elem; - t.saveState = function() { - if ( jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) { - if ( self.options.hide ) { - jQuery._data( self.elem, "fxshow" + self.prop, self.start ); - } else if ( self.options.show ) { - jQuery._data( self.elem, "fxshow" + self.prop, self.end ); + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // not quite $.extend, this wont overwrite keys already present. + // also - reusing 'index' from above because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; } } - }; - - if ( t() && jQuery.timers.push(t) && !timerId ) { - timerId = setInterval( fx.tick, fx.interval ); + } else { + specialEasing[ name ] = easing; } - }, - - // Simple 'show' function - show: function() { - var dataShow = jQuery._data( this.elem, "fxshow" + this.prop ); + } +} - // Remember where we started, so that we can go back to it later - this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop ); - this.options.show = true; +jQuery.Animation = jQuery.extend( Animation, { - // Begin the animation - // Make sure that we start at a small width/height to avoid any flash of content - if ( dataShow !== undefined ) { - // This show is picking up where a previous hide or show left off - this.custom( this.cur(), dataShow ); + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; } else { - this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() ); + props = props.split(" "); } - // Start by showing the element - jQuery( this.elem ).show(); - }, - - // Simple 'hide' function - hide: function() { - // Remember where we started, so that we can go back to it later - this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop ); - this.options.hide = true; + var prop, + index = 0, + length = props.length; - // Begin the animation - this.custom( this.cur(), 0 ); + for ( ; index < length ; index++ ) { + prop = props[ index ]; + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); + } }, - // Each step of an animation - step: function( gotoEnd ) { - var p, n, complete, - t = fxNow || createFxNow(), - done = true, - elem = this.elem, - options = this.options; - - if ( gotoEnd || t >= options.duration + this.startTime ) { - this.now = this.end; - this.pos = this.state = 1; - this.update(); + prefilter: function( callback, prepend ) { + if ( prepend ) { + animationPrefilters.unshift( callback ); + } else { + animationPrefilters.push( callback ); + } + } +}); - options.animatedProperties[ this.prop ] = true; +function defaultPrefilter( elem, props, opts ) { + var index, prop, value, length, dataShow, tween, hooks, oldfire, + anim = this, + style = elem.style, + orig = {}, + handled = [], + hidden = elem.nodeType && isHidden( elem ); + + // handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; - for ( p in options.animatedProperties ) { - if ( options.animatedProperties[ p ] !== true ) { - done = false; + anim.always(function() { + // doing this makes sure that the complete handler will be called + // before this completes + anim.always(function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); } - } + }); + }); + } - if ( done ) { - // Reset the overflow - if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) { + // height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - jQuery.each( [ "", "X", "Y" ], function( index, value ) { - elem.style[ "overflow" + value ] = options.overflow[ index ]; - }); - } + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + if ( jQuery.css( elem, "display" ) === "inline" && + jQuery.css( elem, "float" ) === "none" ) { - // Hide the element if the "hide" operation was done - if ( options.hide ) { - jQuery( elem ).hide(); - } + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) { + style.display = "inline-block"; - // Reset the properties, if the item has been hidden or shown - if ( options.hide || options.show ) { - for ( p in options.animatedProperties ) { - jQuery.style( elem, p, options.orig[ p ] ); - jQuery.removeData( elem, "fxshow" + p, true ); - // Toggle data is no longer needed - jQuery.removeData( elem, "toggle" + p, true ); - } - } + } else { + style.zoom = 1; + } + } + } - // Execute the complete function - // in the event that the complete function throws an exception - // we must ensure it won't be called twice. #5684 + if ( opts.overflow ) { + style.overflow = "hidden"; + if ( !jQuery.support.shrinkWrapBlocks ) { + anim.done(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + }); + } + } - complete = options.complete; - if ( complete ) { - options.complete = false; - complete.call( elem ); - } + // show/hide pass + for ( index in props ) { + value = props[ index ]; + if ( rfxtypes.exec( value ) ) { + delete props[ index ]; + if ( value === ( hidden ? "hide" : "show" ) ) { + continue; } + handled.push( index ); + } + } - return false; - + length = handled.length; + if ( length ) { + dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} ); + if ( hidden ) { + jQuery( elem ).show(); } else { - // classical easing cannot be used with an Infinity duration - if ( options.duration == Infinity ) { - this.now = t; - } else { - n = t - this.startTime; - this.state = n / options.duration; + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + jQuery.removeData( elem, "fxshow", true ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + }); + for ( index = 0 ; index < length ; index++ ) { + prop = handled[ index ]; + tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 ); + orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop ); - // Perform the easing function, defaults to swing - this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration ); - this.now = this.start + ( (this.end - this.start) * this.pos ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } } - // Perform the next step of the animation - this.update(); } - - return true; } -}; +} -jQuery.extend( jQuery.fx, { - tick: function() { - var timer, - timers = jQuery.timers, - i = 0; +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - // Checks the timer has not already been removed - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; } + this.now = ( this.end - this.start ) * eased + this.start; - if ( !timers.length ) { - jQuery.fx.stop(); + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); } - }, - interval: 13, + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; - stop: function() { - clearInterval( timerId ); - timerId = null; - }, +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; - speeds: { - slow: 600, - fast: 200, - // Default speed - _default: 400 - }, + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { + return tween.elem[ tween.prop ]; + } - step: { - opacity: function( fx ) { - jQuery.style( fx.elem, "opacity", fx.now ); + // passing any value as a 4th parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails + // so, simple values such as "10px" are parsed to Float. + // complex values such as "rotate(1rad)" are returned as is. + result = jQuery.css( tween.elem, tween.prop, false, "" ); + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; }, - - _default: function( fx ) { - if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) { - fx.elem.style[ fx.prop ] = fx.now + fx.unit; + set: function( tween ) { + // use step hook for back compat - use cssHook if its there - use .style if its + // available and use plain properties where available + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { - fx.elem[ fx.prop ] = fx.now; + tween.elem[ tween.prop ] = tween.now; } } } -}); +}; -// Ensure props that can't be negative don't go there on undershoot easing -jQuery.each( fxAttrs.concat.apply( [], fxAttrs ), function( i, prop ) { - // exclude marginTop, marginLeft, marginBottom and marginRight from this list - if ( prop.indexOf( "margin" ) ) { - jQuery.fx.step[ prop ] = function( fx ) { - jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit ); - }; +// Remove in 2.0 - this supports IE8's panic based approach +// to setting things on disconnected nodes + +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } } -}); +}; -if ( jQuery.expr && jQuery.expr.filters ) { - jQuery.expr.filters.animated = function( elem ) { - return jQuery.grep(jQuery.timers, function( fn ) { - return elem === fn.elem; - }).length; +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" || + // special check for .toggle( handler, handler, ... ) + ( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); }; -} +}); -// Try to restore the default display value of an element -function defaultDisplay( nodeName ) { +jQuery.fn.extend({ + fadeTo: function( speed, to, easing, callback ) { - if ( !elemdisplay[ nodeName ] ) { + // show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - var body = document.body, - elem = jQuery( "<" + nodeName + ">" ).appendTo( body ), - display = elem.css( "display" ); - elem.remove(); + // Empty animations resolve immediately + if ( empty ) { + anim.stop( true ); + } + }; - // If the simple way fails, - // get element's real default display by attaching it to a temp iframe - if ( display === "none" || display === "" ) { - // No iframe to use yet, so create it - if ( !iframe ) { - iframe = document.createElement( "iframe" ); - iframe.frameBorder = iframe.width = iframe.height = 0; - } + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } - body.appendChild( iframe ); + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = jQuery._data( this ); - // Create a cacheable copy of the iframe document on first call. - // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML - // document to it; WebKit & Firefox won't allow reusing the iframe document. - if ( !iframeDoc || !iframe.createElement ) { - iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; - iframeDoc.write( ( jQuery.support.boxModel ? "<!doctype html>" : "" ) + "<html><body>" ); - iframeDoc.close(); + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } } - elem = iframeDoc.createElement( nodeName ); + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } - iframeDoc.body.appendChild( elem ); + // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + }); + } +}); - display = jQuery.css( elem, "display" ); - body.removeChild( iframe ); - } +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + attrs = { height: type }, + i = 0; + + // if we include width, step value is 1 to do all cssExpand values, + // if we don't include width, step value is 2 to skip over Left and Right + includeWidth = includeWidth? 1 : 0; + for( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } - // Store the correct default display - elemdisplay[ nodeName ] = display; + if ( includeWidth ) { + attrs.opacity = attrs.width = type; } - return elemdisplay[ nodeName ]; + return attrs; } +// Generate shortcuts for custom animations +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +}); +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; -var getOffset, - rtable = /^t(?:able|d|h)$/i, - rroot = /^(?:body|html)$/i; + // normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } -if ( "getBoundingClientRect" in document.documentElement ) { - getOffset = function( elem, doc, docElem, box ) { - try { - box = elem.getBoundingClientRect(); - } catch(e) {} + // Queueing + opt.old = opt.complete; - // Make sure we're not dealing with a disconnected DOM node - if ( !box || !jQuery.contains( docElem, elem ) ) { - return box ? { top: box.top, left: box.left } : { top: 0, left: 0 }; + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); } - var body = doc.body, - win = getWindow( doc ), - clientTop = docElem.clientTop || body.clientTop || 0, - clientLeft = docElem.clientLeft || body.clientLeft || 0, - scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop, - scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft, - top = box.top + scrollTop - clientTop, - left = box.left + scrollLeft - clientLeft; - - return { top: top, left: left }; + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } }; -} else { - getOffset = function( elem, doc, docElem ) { - var computedStyle, - offsetParent = elem.offsetParent, - prevOffsetParent = elem, - body = doc.body, - defaultView = doc.defaultView, - prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle, - top = elem.offsetTop, - left = elem.offsetLeft; - - while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) { - if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) { - break; - } + return opt; +}; - computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle; - top -= elem.scrollTop; - left -= elem.scrollLeft; +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p*Math.PI ) / 2; + } +}; - if ( elem === offsetParent ) { - top += elem.offsetTop; - left += elem.offsetLeft; +jQuery.timers = []; +jQuery.fx = Tween.prototype.init; +jQuery.fx.tick = function() { + var timer, + timers = jQuery.timers, + i = 0; - if ( jQuery.support.doesNotAddBorder && !(jQuery.support.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) { - top += parseFloat( computedStyle.borderTopWidth ) || 0; - left += parseFloat( computedStyle.borderLeftWidth ) || 0; - } + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } - prevOffsetParent = offsetParent; - offsetParent = elem.offsetParent; - } + if ( !timers.length ) { + jQuery.fx.stop(); + } +}; - if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) { - top += parseFloat( computedStyle.borderTopWidth ) || 0; - left += parseFloat( computedStyle.borderLeftWidth ) || 0; - } +jQuery.fx.timer = function( timer ) { + if ( timer() && jQuery.timers.push( timer ) && !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; - prevComputedStyle = computedStyle; - } +jQuery.fx.interval = 13; - if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) { - top += body.offsetTop; - left += body.offsetLeft; - } +jQuery.fx.stop = function() { + clearInterval( timerId ); + timerId = null; +}; - if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) { - top += Math.max( docElem.scrollTop, body.scrollTop ); - left += Math.max( docElem.scrollLeft, body.scrollLeft ); - } +jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 +}; - return { top: top, left: left }; +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + +if ( jQuery.expr && jQuery.expr.filters ) { + jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; }; } +var rroot = /^(?:body|html)$/i; jQuery.fn.offset = function( options ) { if ( arguments.length ) { @@ -9150,18 +9203,40 @@ jQuery.fn.offset = function( options ) { }); } - var elem = this[0], + var docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft, + box = { top: 0, left: 0 }, + elem = this[ 0 ], doc = elem && elem.ownerDocument; if ( !doc ) { - return null; + return; } - if ( elem === doc.body ) { + if ( (body = doc.body) === elem ) { return jQuery.offset.bodyOffset( elem ); } - return getOffset( elem, doc, doc.documentElement ); + docElem = doc.documentElement; + + // Make sure it's not a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return box; + } + + // If we don't have gBCR, just use 0,0 rather than error + // BlackBerry 5, iOS 3 (original iPhone) + if ( typeof elem.getBoundingClientRect !== "undefined" ) { + box = elem.getBoundingClientRect(); + } + win = getWindow( doc ); + clientTop = docElem.clientTop || body.clientTop || 0; + clientLeft = docElem.clientLeft || body.clientLeft || 0; + scrollTop = win.pageYOffset || docElem.scrollTop; + scrollLeft = win.pageXOffset || docElem.scrollLeft; + return { + top: box.top + scrollTop - clientTop, + left: box.left + scrollLeft - clientLeft + }; }; jQuery.offset = { @@ -9227,7 +9302,7 @@ jQuery.fn.extend({ position: function() { if ( !this[0] ) { - return null; + return; } var elem = this[0], @@ -9262,7 +9337,7 @@ jQuery.fn.extend({ while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { offsetParent = offsetParent.offsetParent; } - return offsetParent; + return offsetParent || document.body; }); } }); @@ -9278,8 +9353,7 @@ jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( me if ( val === undefined ) { return win ? (prop in win) ? win[ prop ] : - jQuery.support.boxModel && win.document.documentElement[ method ] || - win.document.body[ method ] : + win.document.documentElement[ method ] : elem[ method ]; } @@ -9303,83 +9377,47 @@ function getWindow( elem ) { elem.defaultView || elem.parentWindow : false; } - - - - -// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - var clientProp = "client" + name, - scrollProp = "scroll" + name, - offsetProp = "offset" + name; - - // innerHeight and innerWidth - jQuery.fn[ "inner" + name ] = function() { - var elem = this[0]; - return elem ? - elem.style ? - parseFloat( jQuery.css( elem, type, "padding" ) ) : - this[ type ]() : - null; - }; - - // outerHeight and outerWidth - jQuery.fn[ "outer" + name ] = function( margin ) { - var elem = this[0]; - return elem ? - elem.style ? - parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) : - this[ type ]() : - null; - }; - - jQuery.fn[ type ] = function( value ) { - return jQuery.access( this, function( elem, type, value ) { - var doc, docElemProp, orig, ret; - - if ( jQuery.isWindow( elem ) ) { - // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat - doc = elem.document; - docElemProp = doc.documentElement[ clientProp ]; - return jQuery.support.boxModel && docElemProp || - doc.body && doc.body[ clientProp ] || docElemProp; - } - - // Get document width or height - if ( elem.nodeType === 9 ) { - // Either scroll[Width/Height] or offset[Width/Height], whichever is greater - doc = elem.documentElement; - - // when a window > document, IE6 reports a offset[Width/Height] > client[Width/Height] - // so we can't use max, as it'll choose the incorrect offset[Width/Height] - // instead we use the correct client[Width/Height] - // support:IE6 - if ( doc[ clientProp ] >= doc[ scrollProp ] ) { - return doc[ clientProp ]; + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { + // margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); } - return Math.max( - elem.body[ scrollProp ], doc[ scrollProp ], - elem.body[ offsetProp ], doc[ offsetProp ] - ); - } - - // Get width or height on the element - if ( value === undefined ) { - orig = jQuery.css( elem, type ); - ret = parseFloat( orig ); - return jQuery.isNumeric( ret ) ? ret : orig; - } + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : - // Set the width or height on the element - jQuery( elem ).css( type, value ); - }, type, value, arguments.length, null ); - }; + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable, null ); + }; + }); }); - - - - // Expose jQuery to the global object window.jQuery = window.$ = jQuery; @@ -9399,6 +9437,4 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) { define( "jquery", [], function () { return jQuery; } ); } - - })( window ); diff --git a/theme/javascripts/jquery.validate.js b/theme/js/jquery.validation.js similarity index 77% rename from theme/javascripts/jquery.validate.js rename to theme/js/jquery.validation.js index 9ea00e1..a26f364 100644 --- a/theme/javascripts/jquery.validate.js +++ b/theme/js/jquery.validation.js @@ -1,10 +1,10 @@ /** - * jQuery Validation Plugin 1.9.0 + * jQuery Validation Plugin 1.10.0 * * http://bassistance.de/jquery-plugins/jquery-plugin-validation/ * http://docs.jquery.com/Plugins/Validation * - * Copyright (c) 2006 - 2011 Jörn Zaefferer + * Copyright (c) 2012 Jörn Zaefferer * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php @@ -19,7 +19,9 @@ $.extend($.fn, { // if nothing is selected, return nothing; can't chain anyway if (!this.length) { - options && options.debug && window.console && console.warn( "nothing selected, can't validate, returning nothing" ); + if (options && options.debug && window.console) { + console.warn( "nothing selected, can't validate, returning nothing" ); + } return; } @@ -37,33 +39,30 @@ $.extend($.fn, { if ( validator.settings.onsubmit ) { - var inputsAndButtons = this.find("input, button"); - - // allow suppresing validation by adding a cancel class to the submit button - inputsAndButtons.filter(".cancel").click(function () { - validator.cancelSubmit = true; + this.validateDelegate( ":submit", "click", function(ev) { + if ( validator.settings.submitHandler ) { + validator.submitButton = ev.target; + } + // allow suppressing validation by adding a cancel class to the submit button + if ( $(ev.target).hasClass('cancel') ) { + validator.cancelSubmit = true; + } }); - // when a submitHandler is used, capture the submitting button - if (validator.settings.submitHandler) { - inputsAndButtons.filter(":submit").click(function () { - validator.submitButton = this; - }); - } - // validate the form on submit this.submit( function( event ) { - if ( validator.settings.debug ) + if ( validator.settings.debug ) { // prevent form submit to be able to see console output event.preventDefault(); - + } function handle() { + var hidden; if ( validator.settings.submitHandler ) { if (validator.submitButton) { // insert a hidden input as a replacement for the missing submit button - var hidden = $("<input type='hidden'/>").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm); + hidden = $("<input type='hidden'/>").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm); } - validator.settings.submitHandler.call( validator, validator.currentForm ); + validator.settings.submitHandler.call( validator, validator.currentForm, event ); if (validator.submitButton) { // and clean up afterwards; thanks to no-block-scope, hidden can be referenced hidden.remove(); @@ -95,17 +94,17 @@ $.extend($.fn, { }, // http://docs.jquery.com/Plugins/Validation/valid valid: function() { - if ( $(this[0]).is('form')) { - return this.validate().form(); - } else { - var valid = true; - var validator = $(this[0].form).validate(); - this.each(function() { + if ( $(this[0]).is('form')) { + return this.validate().form(); + } else { + var valid = true; + var validator = $(this[0].form).validate(); + this.each(function() { valid &= validator.element(this); - }); - return valid; - } - }, + }); + return valid; + } + }, // attributes: space seperated list of attributes to retrieve and remove removeAttrs: function(attributes) { var result = {}, @@ -128,8 +127,9 @@ $.extend($.fn, { case "add": $.extend(existingRules, $.validator.normalizeRule(argument)); staticRules[element.name] = existingRules; - if (argument.messages) + if (argument.messages) { settings.messages[element.name] = $.extend( settings.messages[element.name], argument.messages ); + } break; case "remove": if (!argument) { @@ -183,16 +183,17 @@ $.validator = function( options, form ) { }; $.validator.format = function(source, params) { - if ( arguments.length == 1 ) + if ( arguments.length === 1 ) { return function() { var args = $.makeArray(arguments); args.unshift(source); return $.validator.format.apply( this, args ); }; - if ( arguments.length > 2 && params.constructor != Array ) { + } + if ( arguments.length > 2 && params.constructor !== Array ) { params = $.makeArray(arguments).slice(1); } - if ( params.constructor != Array ) { + if ( params.constructor !== Array ) { params = [ params ]; } $.each(params, function(i, n) { @@ -221,7 +222,9 @@ $.extend($.validator, { // hide error label and remove error class on focus if enabled if ( this.settings.focusCleanup && !this.blockFocusCleanup ) { - this.settings.unhighlight && this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); + if ( this.settings.unhighlight ) { + this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); + } this.addWrapper(this.errorsFor(element)).hide(); } }, @@ -231,17 +234,21 @@ $.extend($.validator, { } }, onkeyup: function(element, event) { - if ( element.name in this.submitted || element == this.lastElement ) { + if ( event.which === 9 && this.elementValue(element) === '' ) { + return; + } else if ( element.name in this.submitted || element === this.lastActive ) { this.element(element); } }, onclick: function(element, event) { // click on selects, radiobuttons and checkboxes - if ( element.name in this.submitted ) + if ( element.name in this.submitted ) { this.element(element); + } // or option elements, check parent select in that case - else if (element.parentNode.name in this.submitted) + else if (element.parentNode.name in this.submitted) { this.element(element.parentNode); + } }, highlight: function(element, errorClass, validClass) { if (element.type === 'radio') { @@ -265,19 +272,18 @@ $.extend($.validator, { }, messages: { - required: "Bu alan gerekli", + required: "", remote: "Please fix this field.", - email: "Please enter a valid email address.", - url: "Please enter a valid URL.", - date: "Please enter a valid date.", + email: "Lütfen, e-posta formatında değer girin.", + url: "Lütfen, URL formatında değer girin.", + date: "Lütfen, tarih formatında değer girin.", dateISO: "Please enter a valid date (ISO).", - number: "Lütfen, sayısal bir değer yazın", - digits: "Please enter only digits.", - creditcard: "Please enter a valid credit card number.", + number: "Lütfen, sadece sayısal(parasal) değer giriniz", + digits: "Lütfen, rakamsal değer giriniz.", + creditcard: "Lütfen, geçeri bir kredki kartı numarası girin.", equalTo: "Please enter the same value again.", - accept: "Please enter a value with a valid extension.", - maxlength: $.validator.format("Please enter no more than {0} characters."), - minlength: $.validator.format("En az {0} karekter yazın."), + maxlength: $.validator.format("Lütfen, en fazla {0} karekter yazınız."), + minlength: $.validator.format("Lütfen, en az {0} karekter yazınız."), rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), range: $.validator.format("Please enter a value between {0} and {1}."), max: $.validator.format("Please enter a value less than or equal to {0}."), @@ -313,19 +319,22 @@ $.extend($.validator, { function delegate(event) { var validator = $.data(this[0].form, "validator"), eventType = "on" + event.type.replace(/^validate/, ""); - validator.settings[eventType] && validator.settings[eventType].call(validator, this[0], event); + if (validator.settings[eventType]) { + validator.settings[eventType].call(validator, this[0], event); + } } $(this.currentForm) - .validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, " + - "[type='number'], [type='search'] ,[type='tel'], [type='url'], " + - "[type='email'], [type='datetime'], [type='date'], [type='month'], " + - "[type='week'], [type='time'], [type='datetime-local'], " + - "[type='range'], [type='color'] ", - "focusin focusout keyup", delegate) + .validateDelegate(":text, [type='password'], [type='file'], select, textarea, " + + "[type='number'], [type='search'] ,[type='tel'], [type='url'], " + + "[type='email'], [type='datetime'], [type='date'], [type='month'], " + + "[type='week'], [type='time'], [type='datetime-local'], " + + "[type='range'], [type='color'] ", + "focusin focusout keyup", delegate) .validateDelegate("[type='radio'], [type='checkbox'], select, option", "click", delegate); - if (this.settings.invalidHandler) + if (this.settings.invalidHandler) { $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler); + } }, // http://docs.jquery.com/Plugins/Validation/Validator/form @@ -333,8 +342,9 @@ $.extend($.validator, { this.checkForm(); $.extend(this.submitted, this.errorMap); this.invalid = $.extend({}, this.errorMap); - if (!this.valid()) + if (!this.valid()) { $(this.currentForm).triggerHandler("invalid-form", [this]); + } this.showErrors(); return this.valid(); }, @@ -353,8 +363,8 @@ $.extend($.validator, { this.lastElement = element; this.prepareElement( element ); this.currentElements = $(element); - var result = this.check( element ); - if ( result ) { + var result = this.check( element ) !== false; + if (result) { delete this.invalid[element.name]; } else { this.invalid[element.name] = true; @@ -376,6 +386,7 @@ $.extend($.validator, { for ( var name in errors ) { this.errorList.push({ message: errors[name], + element: this.findByName(name)[0] }); } @@ -384,20 +395,23 @@ $.extend($.validator, { return !(element.name in errors); }); } - this.settings.showErrors - ? this.settings.showErrors.call( this, this.errorMap, this.errorList ) - : this.defaultShowErrors(); + if (this.settings.showErrors) { + this.settings.showErrors.call( this, this.errorMap, this.errorList ); + } else { + this.defaultShowErrors(); + } }, // http://docs.jquery.com/Plugins/Validation/Validator/resetForm resetForm: function() { - if ( $.fn.resetForm ) + if ( $.fn.resetForm ) { $( this.currentForm ).resetForm(); + } this.submitted = {}; this.lastElement = null; this.prepareForm(); this.hideErrors(); - this.elements().removeClass( this.settings.errorClass ); + this.elements().removeClass( this.settings.errorClass ).removeData( "previousValue" ); }, numberOfInvalids: function() { @@ -406,8 +420,9 @@ $.extend($.validator, { objectLength: function( obj ) { var count = 0; - for ( var i in obj ) + for ( var i in obj ) { count++; + } return count; }, @@ -416,7 +431,7 @@ $.extend($.validator, { }, valid: function() { - return this.size() == 0; + return this.size() === 0; }, size: function() { @@ -440,8 +455,8 @@ $.extend($.validator, { findLastActive: function() { var lastActive = this.lastActive; return lastActive && $.grep(this.errorList, function(n) { - return n.element.name == lastActive.name; - }).length == 1 && lastActive; + return n.element.name === lastActive.name; + }).length === 1 && lastActive; }, elements: function() { @@ -454,11 +469,14 @@ $.extend($.validator, { .not(":submit, :reset, :image, [disabled]") .not( this.settings.ignore ) .filter(function() { - !this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this); + if ( !this.name && validator.settings.debug && window.console ) { + console.error( "%o has no name assigned", this); + } // select only the first element for each name, and only those with rules specified - if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) + if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) { return false; + } rulesCache[this.name] = true; return true; @@ -470,7 +488,8 @@ $.extend($.validator, { }, errors: function() { - return $( this.settings.errorElement + "." + this.settings.errorClass, this.errorContext ); + var errorClass = this.settings.errorClass.replace(' ', '.'); + return $( this.settings.errorElement + "." + errorClass, this.errorContext ); }, reset: function() { @@ -492,25 +511,43 @@ $.extend($.validator, { this.toHide = this.errorsFor(element); }, + elementValue: function( element ) { + var type = $(element).attr('type'), + val = $(element).val(); + + if ( type === 'radio' || type === 'checkbox' ) { + return $('input[name="' + $(element).attr('name') + '"]:checked').val(); + } + + if ( typeof val === 'string' ) { + return val.replace(/\r/g, ""); + } + return val; + }, + check: function( element ) { element = this.validationTargetFor( this.clean( element ) ); var rules = $(element).rules(); var dependencyMismatch = false; + var val = this.elementValue(element); + var result; + for (var method in rules ) { var rule = { method: method, parameters: rules[method] }; try { - var result = $.validator.methods[method].call( this, element.value.replace(/\r/g, ""), element, rule.parameters ); + + result = $.validator.methods[method].call( this, val, element, rule.parameters ); // if a method indicates that the field is optional and therefore valid, // don't mark it as valid when there are no other rules - if ( result == "dependency-mismatch" ) { + if ( result === "dependency-mismatch" ) { dependencyMismatch = true; continue; } dependencyMismatch = false; - if ( result == "pending" ) { + if ( result === "pending" ) { this.toHide = this.toHide.not( this.errorsFor(element) ); return; } @@ -520,44 +557,49 @@ $.extend($.validator, { return false; } } catch(e) { - this.settings.debug && window.console && console.log("exception occured when checking element " + element.id - + ", check the '" + rule.method + "' method", e); + if ( this.settings.debug && window.console ) { + console.log("exception occured when checking element " + element.id + ", check the '" + rule.method + "' method", e); + } throw e; } } - if (dependencyMismatch) + if (dependencyMismatch) { return; - if ( this.objectLength(rules) ) + } + if ( this.objectLength(rules) ) { this.successList.push(element); + } return true; }, // return the custom message for the given element and validation method // specified in the element's "messages" metadata customMetaMessage: function(element, method) { - if (!$.metadata) + if (!$.metadata) { return; - - var meta = this.settings.meta - ? $(element).metadata()[this.settings.meta] - : $(element).metadata(); - + } + var meta = this.settings.meta ? $(element).metadata()[this.settings.meta] : $(element).metadata(); return meta && meta.messages && meta.messages[method]; }, + // return the custom message for the given element and validation method + // specified in the element's HTML5 data attribute + customDataMessage: function(element, method) { + return $(element).data('msg-' + method.toLowerCase()) || (element.attributes && $(element).attr('data-msg-' + method.toLowerCase())); + }, + // return the custom message for the given element name and validation method customMessage: function( name, method ) { var m = this.settings.messages[name]; - return m && (m.constructor == String - ? m - : m[method]); + return m && (m.constructor === String ? m : m[method]); }, // return the first defined argument, allowing empty strings findDefined: function() { for(var i = 0; i < arguments.length; i++) { - if (arguments[i] !== undefined) + if (arguments[i] !== undefined) { return arguments[i]; + } } return undefined; }, @@ -565,6 +607,7 @@ $.extend($.validator, { defaultMessage: function( element, method) { return this.findDefined( this.customMessage( element.name, method ), + this.customDataMessage( element, method ), this.customMetaMessage( element, method ), // title is never undefined, so handle empty string as undefined !this.settings.ignoreTitle && element.title || undefined, @@ -576,10 +619,10 @@ $.extend($.validator, { formatAndAdd: function( element, rule ) { var message = this.defaultMessage( element, rule.method ), theregex = /\$?\{(\d+)\}/g; - if ( typeof message == "function" ) { + if ( typeof message === "function" ) { message = message.call(this, rule.parameters, element); } else if (theregex.test(message)) { - message = jQuery.format(message.replace(theregex, '{$1}'), rule.parameters); + message = $.validator.format(message.replace(theregex, '{$1}'), rule.parameters); } this.errorList.push({ message: message, @@ -591,27 +634,31 @@ $.extend($.validator, { }, addWrapper: function(toToggle) { - if ( this.settings.wrapper ) + if ( this.settings.wrapper ) { toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) ); + } return toToggle; }, defaultShowErrors: function() { - for ( var i = 0; this.errorList[i]; i++ ) { + var i, elements; + for ( i = 0; this.errorList[i]; i++ ) { var error = this.errorList[i]; - this.settings.highlight && this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass ); + if ( this.settings.highlight ) { + this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass ); + } this.showLabel( error.element, error.message ); } if( this.errorList.length ) { this.toShow = this.toShow.add( this.containers ); } if (this.settings.success) { - for ( var i = 0; this.successList[i]; i++ ) { + for ( i = 0; this.successList[i]; i++ ) { this.showLabel( this.successList[i] ); } } if (this.settings.unhighlight) { - for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) { + for ( i = 0, elements = this.validElements(); elements[i]; i++ ) { this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass ); } } @@ -637,7 +684,9 @@ $.extend($.validator, { label.removeClass( this.settings.validClass ).addClass( this.settings.errorClass ); // check if we have a generated label, replace the message then - label.attr("generated") && label.html(message); + if ( label.attr("generated") ) { + label.html(message); + } } else { // create label label = $("<" + this.settings.errorElement + "/>") @@ -649,24 +698,29 @@ $.extend($.validator, { // actually showing the wrapped element is handled elsewhere label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); } - if ( !this.labelContainer.append(label).length ) - this.settings.errorPlacement - ? this.settings.errorPlacement(label, $(element) ) - : label.insertAfter(element); + if ( !this.labelContainer.append(label).length ) { + if ( this.settings.errorPlacement ) { + this.settings.errorPlacement(label, $(element) ); + } else { + label.insertAfter(element); + } + } } if ( !message && this.settings.success ) { label.text(""); - typeof this.settings.success == "string" - ? label.addClass( this.settings.success ) - : this.settings.success( label ); + if ( typeof this.settings.success === "string" ) { + label.addClass( this.settings.success ); + } else { + this.settings.success( label, element ); + } } this.toShow = this.toShow.add(label); }, errorsFor: function(element) { var name = this.idOrName(element); - return this.errors().filter(function() { - return $(this).attr('for') == name; + return this.errors().filter(function() { + return $(this).attr('for') === name; }); }, @@ -683,15 +737,11 @@ $.extend($.validator, { }, checkable: function( element ) { - return /radio|checkbox/i.test(element.type); + return (/radio|checkbox/i).test(element.type); }, findByName: function( name ) { - // select by name and filter by form for performance over form.find("[name=...]") - var form = this.currentForm; - return $(document.getElementsByName(name)).map(function(index, element) { - return element.form == form && element.name == name && element || null; - }); + return $(this.currentForm).find('[name="' + name + '"]'); }, getLength: function(value, element) { @@ -699,16 +749,15 @@ $.extend($.validator, { case 'select': return $("option:selected", element).length; case 'input': - if( this.checkable( element) ) + if( this.checkable( element) ) { return this.findByName(element.name).filter(':checked').length; + } } return value.length; }, depend: function(param, element) { - return this.dependTypes[typeof param] - ? this.dependTypes[typeof param](param, element) - : true; + return this.dependTypes[typeof param] ? this.dependTypes[typeof param](param, element) : true; }, dependTypes: { @@ -724,7 +773,8 @@ $.extend($.validator, { }, optional: function(element) { - return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch"; + var val = this.elementValue(element); + return !$.validator.methods.required.call(this, val, element) && "dependency-mismatch"; }, startRequest: function(element) { @@ -737,13 +787,14 @@ $.extend($.validator, { stopRequest: function(element, valid) { this.pendingRequest--; // sometimes synchronization fails, make sure pendingRequest is never < 0 - if (this.pendingRequest < 0) + if (this.pendingRequest < 0) { this.pendingRequest = 0; + } delete this.pending[element.name]; - if ( valid && this.pendingRequest == 0 && this.formSubmitted && this.form() ) { + if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) { $(this.currentForm).submit(); this.formSubmitted = false; - } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) { + } else if (!valid && this.pendingRequest === 0 && this.formSubmitted) { $(this.currentForm).triggerHandler("invalid-form", [this]); this.formSubmitted = false; } @@ -765,27 +816,29 @@ $.extend($.validator, { url: {url: true}, date: {date: true}, dateISO: {dateISO: true}, - dateDE: {dateDE: true}, number: {number: true}, - numberDE: {numberDE: true}, digits: {digits: true}, creditcard: {creditcard: true} }, addClassRules: function(className, rules) { - className.constructor == String ? - this.classRuleSettings[className] = rules : + if ( className.constructor === String ) { + this.classRuleSettings[className] = rules; + } else { $.extend(this.classRuleSettings, className); + } }, classRules: function(element) { var rules = {}; var classes = $(element).attr('class'); - classes && $.each(classes.split(' '), function() { - if (this in $.validator.classRuleSettings) { - $.extend(rules, $.validator.classRuleSettings[this]); - } - }); + if ( classes ) { + $.each(classes.split(' '), function() { + if (this in $.validator.classRuleSettings) { + $.extend(rules, $.validator.classRuleSettings[this]); + } + }); + } return rules; }, @@ -795,12 +848,21 @@ $.extend($.validator, { for (var method in $.validator.methods) { var value; - // If .prop exists (jQuery >= 1.6), use it to get true/false for required - if (method === 'required' && typeof $.fn.prop === 'function') { - value = $element.prop(method); + + // support for <input required> in both html5 and older browsers + if (method === 'required') { + value = $element.get(0).getAttribute(method); + // Some browsers return an empty string for the required attribute + // and non-HTML5 browsers might have required="" markup + if (value === "") { + value = true; + } + // force non-HTML5 browsers to return bool + value = !!value; } else { value = $element.attr(method); } + if (value) { rules[method] = value; } else if ($element[0].getAttribute("type") === method) { @@ -817,7 +879,9 @@ $.extend($.validator, { }, metadataRules: function(element) { - if (!$.metadata) return {}; + if (!$.metadata) { + return {}; + } var meta = $.data(element.form, 'validator').settings.meta; return meta ? @@ -901,7 +965,7 @@ $.extend($.validator, { // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} normalizeRule: function(data) { - if( typeof data == "string" ) { + if( typeof data === "string" ) { var transformed = {}; $.each(data.split(/\s/), function() { transformed[this] = true; @@ -914,7 +978,7 @@ $.extend($.validator, { // http://docs.jquery.com/Plugins/Validation/Validator/addMethod addMethod: function(name, method, message) { $.validator.methods[name] = method; - $.validator.messages[name] = message != undefined ? message : $.validator.messages[name]; + $.validator.messages[name] = message !== undefined ? message : $.validator.messages[name]; if (method.length < 3) { $.validator.addClassRules(name, $.validator.normalizeRule(name)); } @@ -925,33 +989,34 @@ $.extend($.validator, { // http://docs.jquery.com/Plugins/Validation/Methods/required required: function(value, element, param) { // check if dependency is met - if ( !this.depend(param, element) ) + if ( !this.depend(param, element) ) { return "dependency-mismatch"; - switch( element.nodeName.toLowerCase() ) { - case 'select': + } + if ( element.nodeName.toLowerCase() === "select" ) { // could be an array for select-multiple or a string, both are fine this way var val = $(element).val(); return val && val.length > 0; - case 'input': - if ( this.checkable(element) ) - return this.getLength(value, element) > 0; - default: - return $.trim(value).length > 0; } + if ( this.checkable(element) ) { + return this.getLength(value, element) > 0; + } + return $.trim(value).length > 0; }, // http://docs.jquery.com/Plugins/Validation/Methods/remote remote: function(value, element, param) { - if ( this.optional(element) ) + if ( this.optional(element) ) { return "dependency-mismatch"; + } var previous = this.previousValue(element); - if (!this.settings.messages[element.name] ) + if (!this.settings.messages[element.name] ) { this.settings.messages[element.name] = {}; + } previous.originalMessage = this.settings.messages[element.name].remote; this.settings.messages[element.name].remote = previous.message; - param = typeof param == "string" && {url:param} || param; + param = typeof param === "string" && {url:param} || param; if ( this.pending[element.name] ) { return "pending"; @@ -973,17 +1038,19 @@ $.extend($.validator, { data: data, success: function(response) { validator.settings.messages[element.name].remote = previous.originalMessage; - var valid = response === true; + var valid = response === true || response === "true"; if ( valid ) { var submitted = validator.formSubmitted; validator.prepareElement(element); validator.formSubmitted = submitted; validator.successList.push(element); + delete validator.invalid[element.name]; validator.showErrors(); } else { var errors = {}; var message = response || validator.defaultMessage( element, "remote" ); errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message; + validator.invalid[element.name] = true; validator.showErrors(errors); } previous.valid = valid; @@ -995,17 +1062,19 @@ $.extend($.validator, { // http://docs.jquery.com/Plugins/Validation/Methods/minlength minlength: function(value, element, param) { - return this.optional(element) || this.getLength($.trim(value), element) >= param; + var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); + return this.optional(element) || length >= param; }, // http://docs.jquery.com/Plugins/Validation/Methods/maxlength maxlength: function(value, element, param) { - return this.optional(element) || this.getLength($.trim(value), element) <= param; + var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); + return this.optional(element) || length <= param; }, // http://docs.jquery.com/Plugins/Validation/Methods/rangelength rangelength: function(value, element, param) { - var length = this.getLength($.trim(value), element); + var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); return this.optional(element) || ( length >= param[0] && length <= param[1] ); }, @@ -1043,12 +1112,12 @@ $.extend($.validator, { // http://docs.jquery.com/Plugins/Validation/Methods/dateISO dateISO: function(value, element) { - return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value); + return this.optional(element) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(value); }, // http://docs.jquery.com/Plugins/Validation/Methods/number number: function(value, element) { - return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); + return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value); }, // http://docs.jquery.com/Plugins/Validation/Methods/digits @@ -1059,11 +1128,13 @@ $.extend($.validator, { // http://docs.jquery.com/Plugins/Validation/Methods/creditcard // based on http://en.wikipedia.org/wiki/Luhn creditcard: function(value, element) { - if ( this.optional(element) ) + if ( this.optional(element) ) { return "dependency-mismatch"; + } // accept only spaces, digits and dashes - if (/[^0-9 -]+/.test(value)) + if (/[^0-9 \-]+/.test(value)) { return false; + } var nCheck = 0, nDigit = 0, bEven = false; @@ -1072,32 +1143,30 @@ $.extend($.validator, { for (var n = value.length - 1; n >= 0; n--) { var cDigit = value.charAt(n); - var nDigit = parseInt(cDigit, 10); + nDigit = parseInt(cDigit, 10); if (bEven) { - if ((nDigit *= 2) > 9) + if ((nDigit *= 2) > 9) { nDigit -= 9; + } } nCheck += nDigit; bEven = !bEven; } - return (nCheck % 10) == 0; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/accept - accept: function(value, element, param) { - param = typeof param == "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif"; - return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i")); + return (nCheck % 10) === 0; }, // http://docs.jquery.com/Plugins/Validation/Methods/equalTo equalTo: function(value, element, param) { // bind to the blur event of the target in order to revalidate whenever the target field is updated // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead - var target = $(param).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() { - $(element).valid(); - }); - return value == target.val(); + var target = $(param); + if (this.settings.onfocusout) { + target.unbind(".validate-equalTo").bind("blur.validate-equalTo", function() { + $(element).valid(); + }); + } + return value === target.val(); } } @@ -1107,18 +1176,18 @@ $.extend($.validator, { // deprecated, use $.validator.format instead $.format = $.validator.format; -})(jQuery); +}(jQuery)); // ajax mode: abort // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() -;(function($) { +(function($) { var pendingRequests = {}; // Use a prefilter if available (1.5+) if ( $.ajaxPrefilter ) { $.ajaxPrefilter(function(settings, _, xhr) { var port = settings.port; - if (settings.mode == "abort") { + if (settings.mode === "abort") { if ( pendingRequests[port] ) { pendingRequests[port].abort(); } @@ -1131,7 +1200,7 @@ $.format = $.validator.format; $.ajax = function(settings) { var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode, port = ( "port" in settings ? settings : $.ajaxSettings ).port; - if (mode == "abort") { + if (mode === "abort") { if ( pendingRequests[port] ) { pendingRequests[port].abort(); } @@ -1140,14 +1209,14 @@ $.format = $.validator.format; return ajax.apply(this, arguments); }; } -})(jQuery); +}(jQuery)); // provides cross-browser focusin and focusout events // IE has native support, in other browsers, use event caputuring (neither bubbles) // provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation // handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target -;(function($) { +(function($) { // only implement if not provided by jQuery core (since 1.4) // TODO verify if jQuery 1.4's implementation is compatible with older jQuery special-event APIs if (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) { @@ -1163,9 +1232,10 @@ $.format = $.validator.format; this.removeEventListener( original, handler, true ); }, handler: function(e) { - arguments[0] = $.event.fix(e); - arguments[0].type = fix; - return $.event.handle.apply(this, arguments); + var args = arguments; + args[0] = $.event.fix(e); + args[0].type = fix; + return $.event.handle.apply(this, args); } }; function handler(e) { @@ -1174,7 +1244,7 @@ $.format = $.validator.format; return $.event.handle.call(this, e); } }); - }; + } $.extend($.fn, { validateDelegate: function(delegate, type, handler) { return this.bind(type, function(event) { @@ -1185,4 +1255,4 @@ $.format = $.validator.format; }); } }); -})(jQuery); +}(jQuery)); \ No newline at end of file diff --git a/theme/language/english.php b/theme/language/english.php deleted file mode 100644 index 8c3a755..0000000 --- a/theme/language/english.php +++ /dev/null @@ -1,176 +0,0 @@ -<?php -# A -$lang['Add'] = 'Add'; -$lang['Add Product'] = 'Add Product'; -$lang['Add User'] = 'Add User'; -$lang['Are not authorized to read this message.'] = 'Are not authorized to read this message.'; -$lang['Are not authorized to read this task.'] = 'Are not authorized to read this task.'; - -# B -$lang['Barcode'] = 'Barcode'; -$lang['Barcode Code'] = 'Barcode Code'; -$lang['Balance'] = 'Bakiye'; -$lang['barcode scaner'] = 'barcode scaner'; - -# C -$lang['Change Password'] = 'Change Password'; -$lang['Close this task'] = 'Close this task'; -$lang['Cost Price'] = 'Cost Price'; -$lang['Cost Price Unavailable'] = 'Cost Price Unavailable'; -$lang['Current'] = 'Current'; -$lang['Current Card'] = 'Current Card'; -$lang['Current Code'] = 'Current Code'; -$lang['Current Name'] = 'Current Name'; -$lang['Current List'] = 'Current List'; -$lang['Code'] = 'Code'; - -# D -$lang['Date'] = 'Date'; -$lang['Dashboard'] = 'Dashboard'; -$lang['Documentation'] = 'Documentation'; -$lang['Do not have permission to access this page'] = 'Do not have permission to access this page'; -$lang['Delete'] = 'Delete'; -$lang['Deleted'] = 'Deleted'; -$lang['Description'] = 'Description'; - -# E -$lang['End Date'] = 'End Date'; -$lang['Exit'] = 'Exit'; -$lang['Executive No. 1 be deleted'] = 'Executive No. 1 be deleted'; - -# F -$lang['Fiche'] = 'Fiche'; -$lang['Fiche List'] = 'Fiche List'; -$lang['Fiche Items'] = 'Fiche Items'; -$lang['Fiche ID'] = 'Fiche ID'; - -# G -$lang['Generated new posts'] = 'Generated new posts'; -$lang['Generated new product card'] = 'Yeni ürün ekledi'; -$lang['Generated new current card'] = 'Generated new current card'; -$lang['Generated new fiche'] = 'Generated new fiche'; -$lang['Grand Total'] = 'Grand Total'; - -# I -$lang['Inbox'] = 'Inbox'; -$lang['Installation was successful'] = 'Installation was successful'; -$lang['Input-Output'] = 'Input-Output'; -$lang['Input'] = 'Input'; -$lang['INPUT'] = 'INPUT'; -$lang['input'] = 'INPUT'; - -# L -$lang['Level'] = 'Level'; -$lang['Login'] = 'Login'; -$lang['Login Form'] = 'Login Form'; -$lang['Language'] = 'Language'; -$lang['Log'] = 'Log'; -$lang['Logs'] = 'Logs'; - -# M -$lang['Management'] = 'Management'; -$lang['Minimum Characters'] = 'Minimum Characters'; -$lang['Maximum Characters'] = 'Maximum Characters'; -$lang['Message'] = 'Message'; -$lang['Message Box'] = 'Message Box'; -$lang['Money is not the appropriate format.'] = 'Money is not the appropriate format.'; - -# N -$lang['Name'] = 'Name'; -$lang['Name/Surname'] = 'Name/Surname'; -$lang['New'] = 'New'; -$lang['New Message'] = 'New Message'; -$lang['New User'] = 'New User'; -$lang['New Current'] = 'New Current'; -$lang['New Task'] = 'New Task'; -$lang['New Fiche'] = 'New Fiche'; -$lang['New Input'] = 'New Input'; -$lang['New Output'] = 'New Output'; -$lang['Next'] = 'Next'; -$lang['Not Applicable Product Name'] = 'Not Applicable Product Name'; -$lang['Not Applicable Product Code'] = 'Not Applicable Product Code'; -$lang['No Product ID number.'] = 'No Product ID number.'; -$lang['No Current ID number.'] = 'No Current ID number.'; - -# O -$lang['Open this task'] = 'Open this task'; -$lang['Outbox'] = 'Outbox'; -$lang['Output Reset'] = 'Output Reset'; -$lang['Output'] = 'Output'; -$lang['OUTPUT'] = 'OUTPUT'; -$lang['output'] = 'OUTPUT'; - -# P -$lang['Page Access'] = 'Page Access'; -$lang['Profile'] = 'Profile'; -$lang['Password'] = 'Password'; -$lang['Password Again'] = 'Password Again'; -$lang['Passwords do not match'] = 'Passwords do not match'; -$lang['Page Load Time'] = 'Page Load Time'; -$lang['Price'] = 'Price'; -$lang['Product'] = 'Product'; -$lang['Products'] = 'Products'; -$lang['Product Name'] = 'Product Name'; -$lang['Product List'] = 'Product List'; -$lang['Product card updated'] = 'Product card updated'; -$lang['Product Card'] = 'Product Card'; -$lang['Product Code'] = 'Product Code'; -$lang['Product has been deleted.'] = 'Product has been deleted.'; -$lang['Product added'] = 'Product added'; -$lang['Product card in the database has been found.'] = 'Product card in the database has been found.'; -$lang['Publish'] = 'Publish'; -$lang['Print'] = 'Print'; -$lang['Print Barcode'] = 'Print Barcode'; - -# R -$lang['Receiver'] = 'Receiver'; -$lang['Recent History'] = 'Recent History'; -$lang['Reply'] = 'Reply'; -$lang['Reset'] = 'Reset'; - -# S -$lang['Sale Price'] = 'Sale Price'; -$lang['Sales Price Unavailable'] = 'Sales Price Unavailable'; -$lang['Sender'] = 'Sender'; -$lang['Status'] = 'Status'; -$lang['Successful'] = 'Successful'; -$lang['Settings'] = 'Settings'; -$lang['Start Date'] = 'Start Date'; - -# T -$lang['Title'] = 'Title'; -$lang['Task Management'] = 'Task Management'; -$lang['Task Status'] = 'Task Status'; -$lang['Tasks from'] = 'Tasks from'; -$lang['Tasks are sent'] = 'Tasks are sent'; -$lang['Template'] = 'Template'; -$lang['Type'] = 'Type'; -$lang['The old password is not correct'] = 'The old password is not correct'; -$lang['This product code exists in the database.'] = 'This product code exists in the database.'; -$lang['This current code exists in the database.'] = 'This current code exists in the database.'; -$lang['Total'] = 'Total'; -$lang['Tax'] = 'Tax'; -$lang['Tax Rate'] = 'Tax Rate'; - -# U -$lang['Update'] = 'Update'; -$lang['Update User'] = 'Update User'; -$lang['Update Page Access'] = 'Update Page Access'; -$lang['Updated Successfully'] = 'Updated Successfully'; -$lang['User'] = 'User'; -$lang['User Management'] = 'User Management'; -$lang['User Name'] = 'User Name'; -$lang['Username or password is incorrect.'] = 'Username or password is incorrect.'; -$lang['User name incorrect'] = 'User name incorrect'; -$lang['User name database found'] = 'User name database found'; -$lang['User account deleted'] = 'User account deleted'; -$lang['User Meta'] = 'User Meta'; - -# Q -$lang['Quantity'] = 'Quantity'; - -# W -$lang['Was added to the user'] = 'Was added to the user'; -$lang['Welcome to the installation'] = 'Welcome to the installation'; -$lang['Worth repeating. Please Do not load the page again.'] = 'Worth repeating. Please Do not load the page again.'; -?> \ No newline at end of file diff --git a/theme/language/spanish.php b/theme/language/spanish.php deleted file mode 100644 index 4cd1d50..0000000 --- a/theme/language/spanish.php +++ /dev/null @@ -1,99 +0,0 @@ -<?php -# A -$lang['Add'] = 'Añadir'; -$lang['Add User'] = 'Agregar usuario'; -$lang['Are not authorized to read this message.'] = 'No están autorizados a leer este mensaje.'; -$lang['Are not authorized to read this task.'] = 'Are not authorized to read this task.'; - -# C -$lang['Change Password'] = 'Cambiar la contraseña'; -$lang['Close this task'] = 'Cerrar esta tarea'; - -# D -$lang['Date'] = 'Fecha'; -$lang['Dashboard'] = 'Salpicadero'; -$lang['Documentation'] = 'Documentación'; -$lang['Do not have permission to access this page'] = '¿No tienes permiso para acceder a esta página'; -$lang['Delete'] = 'Borrar'; -$lang['Deleted'] = 'Eliminados'; - -# E -$lang['End Date'] = 'End Date'; -$lang['Exit'] = 'Exit'; -$lang['Executive No. 1 be deleted'] = 'Ejecutivo N º 1 se eliminarán'; - -# F - -# G -$lang['Generated new posts'] = 'Generados mensajes nuevos'; - -# I -$lang['Inbox'] = 'Bandeja de entrada'; - -# L -$lang['Level'] = 'Nivel'; -$lang['Login'] = 'Iniciar Sesión'; -$lang['Login Form'] = 'Login Form'; -$lang['Language'] = 'Lengua'; - -# M -$lang['Management'] = 'Administración'; -$lang['Minimum Characters'] = 'Personajes mínimos'; -$lang['Maximum Characters'] = 'Máximo de caracteres'; -$lang['Message'] = 'Mensaje'; -$lang['Message Box'] = 'Message Box'; - -# N -$lang['New Message'] = 'Nuevo Mensaje'; -$lang['New User'] = 'Nuevo Usuario'; -$lang['New Task'] = 'New Task'; - -# O -$lang['Open this task'] = 'Abrir esta tarea'; -$lang['Outbox'] = 'Bandeja de salida'; -$lang['Output Reset'] = 'Restablecimiento de salida'; - -# P -$lang['Profile'] = 'Perfil'; -$lang['Password'] = 'Contraseña'; -$lang['Password Again'] = 'Una vez más Contraseña'; -$lang['Passwords do not match'] = 'Las contraseñas no coinciden'; -$lang['Page Load Time'] = 'Página Tiempo de carga'; - -# R -$lang['Receiver'] = 'Receptor'; -$lang['Reply'] = 'Responder'; -$lang['Reset'] = 'Reajustar'; - -# S -$lang['Sender'] = 'Remitente'; -$lang['Status'] = 'Estado'; -$lang['Successful'] = 'Exitoso'; -$lang['Settings'] = 'Configuración'; -$lang['Start Date'] = 'Start Date'; - -# T -$lang['Title'] = 'Título'; -$lang['Task Management'] = 'Tarea'; -$lang['Task Status'] = 'Estado de la tarea'; -$lang['Tasks from'] = 'De tareas en'; -$lang['Tasks are sent'] = ''; -$lang['Template'] = 'Plantilla'; -$lang['The old password is not correct'] = 'La antigua contraseña no es correcta'; - -# U -$lang['Update'] = 'Actualizar'; -$lang['Update User'] = 'Actualización de usuario'; -$lang['Update Page Access'] = 'Actualización de la página de acceso'; -$lang['User Management'] = 'Gestión de usuarios'; -$lang['User Name'] = 'Nombre de usuario'; -$lang['Username or password is incorrect.'] = 'Nombre de usuario o contraseña es incorrecta.'; -$lang['User name incorrect'] = 'Usuario incorrecta el nombre de'; -$lang['User name database found'] = 'Nombre de usuario de base de datos encontrados'; -$lang['User account deleted'] = 'Cuenta de usuario eliminada'; - -# W -$lang['Was added to the user'] = 'Se añadió a la información'; -$lang['Worth repeating. Please Do not load the page again.'] = 'Vale la pena repetir. Por favor, no cargue la página de nuevo.'; - -?> \ No newline at end of file diff --git a/theme/language/turkish.php b/theme/language/turkish.php deleted file mode 100644 index 9de6842..0000000 --- a/theme/language/turkish.php +++ /dev/null @@ -1,177 +0,0 @@ -<?php -# A -$lang['Add'] = 'Ekle'; -$lang['Add Product'] = 'Yeni Ürün'; -$lang['Add User'] = 'Yeni Kullanıcı'; -$lang['Are not authorized to read this message.'] = 'Bu mesajı okumaya yetkiniz yok.'; -$lang['Are not authorized to read this task.'] = 'Bu görevi okumaya yetkiniz yok.'; - -# B -$lang['Barcode'] = 'Barkod'; -$lang['Barcode Code'] = 'Barkod Kodu'; -$lang['Balance'] = 'Bakiye'; -$lang['barcode scaner'] = 'barkod tarayıcı'; - -# C -$lang['Change Password'] = 'Şifre Değiştir'; -$lang['Görevi kapat'] = 'Görevi kapat'; -$lang['Cost Price'] = 'Maliyet Fiyatı'; -$lang['Cost Price Unavailable'] = 'Maliyet Fiyatı Uygun Değil'; -$lang['Current'] = 'Cari'; -$lang['Current Card'] = 'Cari Kart'; -$lang['Current Code'] = 'Cari Kodu'; -$lang['Current Name'] = 'Cari Adı'; -$lang['Current List'] = 'Cari Listesi'; -$lang['Code'] = 'Kod'; - -# D -$lang['Date'] = 'Tarih'; -$lang['Dashboard'] = 'Panel'; -$lang['Documentation'] = 'Dökümanlar'; -$lang['Do not have permission to access this page'] = 'Bu sayfaya erişmeye yetkiniz yok'; -$lang['Delete'] = 'Sil'; -$lang['Deleted'] = 'Silindi'; -$lang['Description'] = 'Açıklama'; - -# E -$lang['End Date'] = 'Bitiş Tarihi'; -$lang['Exit'] = 'Çıkış'; -$lang['Executive No. 1 be deleted'] = 'Numarası [1] olan yönetici, silinmez.'; - -# F -$lang['Fiche'] = 'Fiş'; -$lang['Fiche List'] = 'Fiş Listesi'; -$lang['Fiche Items'] = 'Ürün Sayısı'; -$lang['Fiche ID'] = 'Fiş ID'; - -# G -$lang['Generated new posts'] = 'Yeni mesaj oluşturdu'; -$lang['Generated new product card'] = 'Yeni ürün kartı oluşturdu'; -$lang['Generated new current card'] = 'Yeni cari kart oluşturdu'; -$lang['Generated new fiche'] = 'Yeni fiş oluşturuldu'; -$lang['Grand Total'] = 'Genel Toplam'; - -# I -$lang['Inbox'] = 'Gelen Kutusu'; -$lang['Installation was successful'] = 'Kurulum Başarılı'; -$lang['Input-Output'] = 'Giriş-Çıkış'; -$lang['Input'] = 'Giriş'; -$lang['INPUT'] = 'GİRİŞ'; -$lang['input'] = 'GİRİŞ'; - -# L -$lang['Level'] = 'Seviye'; -$lang['Login'] = 'Giriş'; -$lang['Login Form'] = 'Giriş Formu'; -$lang['Language'] = 'Dil'; -$lang['Log'] = 'Log'; -$lang['Logs'] = 'Log Kayıtları'; - -# M -$lang['Management'] = 'Seçenekler'; -$lang['Minimum Characters'] = 'Minimum Karekter'; -$lang['Maximum Characters'] = 'Maximum Karekter'; -$lang['Message'] = 'Mesaj'; -$lang['Message Box'] = 'Mesaj Kutusu'; -$lang['Money is not the appropriate format.'] = 'Para formatı uygun değil.'; - -# N -$lang['Name'] = 'Ad'; -$lang['Name/Surname'] = 'Ad/Soyad'; -$lang['New'] = 'Yeni'; -$lang['New Message'] = 'Yeni Mesaj'; -$lang['New User'] = 'Yeni Kullanıcı'; -$lang['New Current'] = 'Yeni Cari'; -$lang['New Task'] = 'Yeni Görev'; -$lang['New Fiche'] = 'Yeni Fiş'; -$lang['New Input'] = 'Yeni Giriş'; -$lang['New Output'] = 'Yeni Çıkış'; -$lang['Next'] = 'İleri'; -$lang['Not Applicable Product Name'] = 'Ürün Adı Uygun Değil'; -$lang['Not Applicable Product Code'] = 'Ürün Kodu Uygun Değil'; -$lang['No Product ID number.'] = 'Ürün ID numarası yok.'; -$lang['No Current ID number.'] = 'Cari ID numarası yok.'; - -# O -$lang['Görevi aç'] = 'Görevi aç'; -$lang['Outbox'] = 'Giden Kutusu'; -$lang['Output Reset'] = 'Çıkış işlemi başarılı.'; -$lang['Output'] = 'Çıkış'; -$lang['OUTPUT'] = 'ÇIKIŞ'; -$lang['output'] = 'ÇIKIŞ'; - -# P -$lang['Page Access'] = 'Sayfa Yetkilendirmesi'; -$lang['Profile'] = 'Profilim'; -$lang['Password'] = 'Şifre'; -$lang['Password Again'] = 'Şifre Tekrar'; -$lang['Passwords do not match'] = 'Şifre formatı uygun değil'; -$lang['Page Load Time'] = 'Sayfa Yüklenme Süresi'; -$lang['Price'] = 'Fiyat'; -$lang['Product'] = 'Ürün'; -$lang['Products'] = 'Ürünler'; -$lang['Product Name'] = 'Ürün Adı'; -$lang['Product List'] = 'Ürün Listesi'; -$lang['Product card updated'] = 'Ürün kartı güncellendi'; -$lang['Product Card'] = 'Ürün Kartı'; -$lang['Product Code'] = 'Ürün Kodu'; -$lang['Product has been deleted.'] = 'Ürün silindi.'; -$lang['Product added'] = 'Ürün ekledi'; -$lang['Product card in the database has been found.'] = 'Ürün kartı veritabanında bulunamadı.'; -$lang['Publish'] = 'Yayınla'; -$lang['Print'] = 'Yazdır'; -$lang['Print Barcode'] = 'Barkod Yazdır'; - -# R -$lang['Receiver'] = 'Alıcı'; -$lang['Recent History'] = 'Yakın Tarih'; -$lang['Reply'] = 'Cevapla'; -$lang['Reset'] = 'Temizle'; - -# S -$lang['Sale Price'] = 'Satış Fiyatı'; -$lang['Sales Price Unavailable'] = 'Satış Fiyatı Uygun Değil'; -$lang['Sender'] = 'Gönderen'; -$lang['Status'] = 'Durum'; -$lang['Successful'] = 'Başarılı'; -$lang['Settings'] = 'Ayarlar'; -$lang['Start Date'] = 'Başlama Tarihi'; - -# T -$lang['Title'] = 'Konu'; -$lang['Task Management'] = 'Görev Yönetimi'; -$lang['Task Status'] = 'Görev Durumu'; -$lang['Tasks from'] = 'Gelen Görevler'; -$lang['Tasks are sent'] = 'Giden Görevler'; -$lang['Template'] = 'Tema'; -$lang['Type'] = 'Tür'; -$lang['The old password is not correct'] = 'Eski şifre doğru değil'; -$lang['This product code exists in the database.'] = 'Bu ürün kodu veritabanında var.'; -$lang['This current code exists in the database.'] = 'Bu cari kodu veritabanında var.'; -$lang['Total'] = 'Toplam'; -$lang['Tax'] = 'Kdv'; -$lang['Tax Rate'] = 'Kdv Oranı'; - -# U -$lang['Update'] = 'Güncelle'; -$lang['Update User'] = 'Kullanıcı Güncelle'; -$lang['Update Page Access'] = 'Sayfa Erişim Yetkisini Düzenle'; -$lang['Updated Successfully'] = 'Güncelleme Başarılı'; -$lang['User'] = 'Kullanıcı'; -$lang['User Management'] = 'Kullanıcı Yönetimi'; -$lang['User Name'] = 'Kullanıcı Adı'; -$lang['Username or password is incorrect.'] = 'Kullanıcı bilgileri doğru değil.'; -$lang['User name incorrect'] = 'Kullanıcı adı yanlış'; -$lang['User name database found'] = 'Kullanıcı adı veritabanında bulundu'; -$lang['User account deleted'] = 'Kullanıcı hesabı silindi'; -$lang['User Meta'] = 'Kullanıcı Detayları'; - -# Q -$lang['Quantity'] = 'Adet'; - -# W -$lang['Was added to the user'] = 'Kullanıcı eklendi'; -$lang['Welcome to the installation'] = 'Kuruluma Hoşgeldiniz'; -$lang['Worth repeating. Please Do not load the page again.'] = 'Tekrarlanan değer. Lütfen sayfayı yenilemeyin.'; - -?> \ No newline at end of file diff --git a/theme/stylesheets/app.css b/theme/stylesheets/app.css deleted file mode 100644 index 5371567..0000000 --- a/theme/stylesheets/app.css +++ /dev/null @@ -1,215 +0,0 @@ -/* Artfully masterminded by ZURB */ - -/* -------------------------------------------------- - Table of Contents ------------------------------------------------------ -:: Shared Styles -:: Page Name 1 -:: Page Name 2 -*/ - - -/* ----------------------------------------- - Shared Styles ------------------------------------------ */ - a img { border:0px; } - - a.icon-hover:hover { - border-bottom:1px solid #000; - } - - .size-10 { font-size:10px; } - .size-11 { font-size:11px; } - .size-12 { font-size:12px; } - - .td-underline { text-decoration:underline; } - -/* ----------------------------------------- - Page Name 1 ------------------------------------------ */ - .navigation { - margin-top:-17px; - background-color:#FAF1D1; - padding:6px 6px 6px 6px; - max-height:30px; - z-index:99999px; - width:100%; - } - - -/* ----------------------------------------- - Page Name 2 ------------------------------------------ */ - - .fnc.close-reveal-modal { font-size: 11px; line-height:1.5; position:static; color: #000; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1); font-weight: bold; cursor: pointer; } - a.link { position:static; color: #000; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1); font-weight: bold; cursor: pointer; } - input[readonly] { background-color:#F1EFEF; } -/* ----------------------------------------- - Table ------------------------------------------ */ - .transparent.label { background-color:transparent; } - - /* Data Table */ - table.dataTable { - margin: 0 auto; - clear: both; - width: 100%; - border-spacing:0px; - } - - table.dataTable thead th { - background-color:#4d4d4d; - color:#FFF; - text-transform:uppercase; - font-size:12px; - text-shadow:1px 0px 1px #ccc; - padding:4px; - } - - table.dataTable tfoot th { - padding: 3px 18px 3px 10px; - border-top: 1px solid black; - font-weight: bold; - } - - table.dataTable td { - border-bottom:1px solid #000; - border-right:1px solid #000; - margin:0px; - padding:3px 3px; - } - - table.dataTable td.center, - table.dataTable td.dataTables_empty { - text-align: center; - } - - - - table.dataTable tr.odd td.sorting_1 { background-color: #DFDFDF; } - table.dataTable tr.even td.sorting_1 { background-color: #F0F0F0; } - - table.dataTable tbody tr:hover { background-color:#FBF9B7; } - table.dataTable tr.odd td.sorting_1:hover { background-color: #FBF9B7; } - table.dataTable tr.even td.sorting_1:hover { background-color: #FBF9B7; } - - - - - .dataTables_wrapper { - position: relative; - clear: both; - *zoom: 1; - } - .dataTables_length { float: left; } - .dataTables_filter { - float: right; - text-align: right; - } - .dataTables_info { - clear: both; - float: left; - } - .dataTables_paginate { - float: right; - text-align: right; - } - .paginate_disabled_previous, - .paginate_enabled_previous, - .paginate_disabled_next, - .paginate_enabled_next { - height: 19px; - float: left; - cursor: pointer; - *cursor: hand; - color: #111 !important; - } - .paginate_disabled_previous:hover, .paginate_enabled_previous:hover, .paginate_disabled_next:hover, .paginate_enabled_next:hover { text-decoration: none !important; } - .paginate_disabled_previous:active, .paginate_enabled_previous:active, .paginate_disabled_next:active, .paginate_enabled_next:active { outline: none; } - .paginate_disabled_previous, .paginate_disabled_next { color: #666 !important; } - .paginate_disabled_previous, .paginate_enabled_previous { padding-left: 23px; } - .paginate_disabled_next, .paginate_enabled_next { padding-right: 23px; margin-left: 10px; } - - /* Full number pagination */ - .paging_full_numbers { height: 22px; line-height: 22px; } - .paging_full_numbers a:active { outline: none; } - .paging_full_numbers a:hover { text-decoration: none; } - - /* Processing indicator */ - .dataTables_processing { - position: absolute; - top: 50%; - left: 50%; - width: 250px; - height: 30px; - margin-left: -125px; - margin-top: -15px; - padding: 14px 0 2px 0; - border: 1px solid #ddd; - text-align: center; - color: #999; - font-size: 14px; - background-color: white; - } - - /* Sorting */ - table.dataTable th:active { outline: none; } - - /* Scrolling */ - .dataTables_scroll { clear: both; } - .dataTables_scrollBody { - *margin-top: -1px; - -webkit-overflow-scrolling: touch; - } - a.selector { position: absolute; width: 26px; height: 26px; display: block; - background: url(../images/misc/custom-form-sprites.png) -14px 1px no-repeat; - right: 0; top: 0; border: solid 1px #ddd; } - a.selector, a.selector { background-position: -14px -26px; } - - - - - - /* Datepicker */ - - .datepicker { border-collapse: collapse; border: 2px solid #999; position: absolute; z-index:9999; min-height:100px; max-height:100px; } - .datepicker tr.controls th { padding: 1px; height: 22px; font-size: 11px; } - .datepicker select { font-size: 11px; } - .datepicker tr.days th { height: 18px; } - .datepicker tfoot td { padding: 1px; height: 18px; text-align: center; text-transform: capitalize; } - .datepicker th, .datepicker tfoot td { background: #eee; font: 10px/18px Verdana, Arial, Helvetica, sans-serif; } - .datepicker th span, .datepicker tfoot td span { font-weight: bold; } - .datepicker select { max-width:80px; } - - .datepicker tbody td { padding: 1px; width: 24px; height: 24px; border: 1px solid #ccc; font: 11px/22px Arial, Helvetica, sans-serif; text-align: center; background: #fff; } - .datepicker tbody td.date { cursor: pointer; } - .datepicker tbody td.date.over { background-color: #99ffff; } - .datepicker tbody td.date.chosen { font-weight: bold; background-color: #ccffcc; } - - - - - - - /* toltip */ - - .has-tip { - border-bottom: dotted 0px #ccc; - cursor: help; - font-weight: bold; - color: #333; - } - .has-tip:hover { - border-bottom: dotted 0px #0593dc; - color: #F33; - } - a.has-tip { - border-bottom: dotted 0px #ccc; - cursor: pointer; - font-weight: bold; - color: #333; - } - a.has-tip:hover { - border-bottom: dotted 0px #0593dc; - color: #F33; - } \ No newline at end of file diff --git a/theme/stylesheets/foundation.css b/theme/stylesheets/foundation.css deleted file mode 100644 index 3494dd9..0000000 --- a/theme/stylesheets/foundation.css +++ /dev/null @@ -1,925 +0,0 @@ -/* Requires: normalize.css */ -/* Global Reset & Standards ---------------------- */ -* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } - -html { font-size: 62.5%; } - -body { background: white; font-family: "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 14px; font-size: 1.4rem; line-height: 1; color: #222222; position: relative; -webkit-font-smoothing: antialiased; } - -/* Links ---------------------- */ -a { color: #2ba6cb; text-decoration: none; line-height: inherit; } - -a:hover { color: #2795b6; } - -a:focus { color: #2ba6cb; outline: none; } - -p a, p a:visited { line-height: inherit; } - -/* Misc ---------------------- */ -.left { float: left; } - -.right { float: right; } - -.text-left { text-align: left; } - -.text-right { text-align: right; } - -.text-center { text-align: center; } - -.hide { display: none; } - -.highlight { background: #ffff99; } - -#googlemap img, object, embed { max-width: none; } - -#map_canvas embed { max-width: none; } - -#map_canvas img { max-width: none; } - -#map_canvas object { max-width: none; } - -/* The Grid ---------------------- */ -.row { width: 940px; max-width: 100%; min-width: 768px; margin: 0 auto; } -.row .row { width: auto; max-width: none; min-width: 0; margin: 0 -15px; } -.row.collapse .column, .row.collapse .columns { padding: 0; } -.row .row { width: auto; max-width: none; min-width: 0; margin: 0 -15px; } -.row .row.collapse { margin: 0; } - -.column, .columns { float: left; min-height: 1px; padding: 0 15px; position: relative; } -.column.centered, .columns.centered { float: none; margin: 0 auto; } - -[class*="column"] + [class*="column"]:last-child { float: right; } - -[class*="column"] + [class*="column"].end { float: left; } - -.row .one { width: 8.333%; } - -.row .two { width: 16.667%; } - -.row .three { width: 25%; } - -.row .four { width: 33.333%; } - -.row .five { width: 41.667%; } - -.row .six { width: 50%; } - -.row .seven { width: 58.333%; } - -.row .eight { width: 66.667%; } - -.row .nine { width: 75%; } - -.row .ten { width: 83.333%; } - -.row .eleven { width: 91.667%; } - -.row .twelve { width: 100%; } - -.row .offset-by-one { margin-left: 8.333%; } - -.row .offset-by-two { margin-left: 16.667%; } - -.row .offset-by-three { margin-left: 25%; } - -.row .offset-by-four { margin-left: 33.333%; } - -.row .offset-by-five { margin-left: 41.667%; } - -.row .offset-by-six { margin-left: 50%; } - -.row .offset-by-seven { margin-left: 58.333%; } - -.row .offset-by-eight { margin-left: 66.667%; } - -.row .offset-by-nine { margin-left: 75%; } - -.row .offset-by-ten { margin-left: 83.333%; } - -.push-two { left: 16.667%; } - -.pull-two { right: 16.667%; } - -.push-three { left: 25%; } - -.pull-three { right: 25%; } - -.push-four { left: 33.333%; } - -.pull-four { right: 33.333%; } - -.push-five { left: 41.667%; } - -.pull-five { right: 41.667%; } - -.push-six { left: 50%; } - -.pull-six { right: 50%; } - -.push-seven { left: 58.333%; } - -.pull-seven { right: 58.333%; } - -.push-eight { left: 66.667%; } - -.pull-eight { right: 66.667%; } - -.push-nine { left: 75%; } - -.pull-nine { right: 75%; } - -.push-ten { left: 83.333%; } - -.pull-ten { right: 83.333%; } - -img, object, embed { max-width: 100%; height: auto; } - -img { -ms-interpolation-mode: bicubic; } - -#map_canvas img, .map_canvas img { max-width: none!important; } - -/* Nicolas Gallagher's micro clearfix */ -.row { *zoom: 1; } -.row:before, .row:after { content: ""; display: table; } -.row:after { clear: both; } - -/* Mobile Grid and Overrides ---------------------- */ -@media only screen and (max-width: 767px) { body { -webkit-text-size-adjust: none; -ms-text-size-adjust: none; width: 100%; min-width: 0; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } - .row { width: auto; min-width: 0; margin-left: 0; margin-right: 0; } - .column, .columns { width: auto !important; float: none; } - .column:last-child, .columns:last-child { float: none; } - [class*="column"] + [class*="column"]:last-child { float: none; } - .column:before, .columns:before, .column:after, .columns:after { content: ""; display: table; } - .column:after, .columns:after { clear: both; } - .offset-by-one, .offset-by-two, .offset-by-three, .offset-by-four, .offset-by-five, .offset-by-six, .offset-by-seven, .offset-by-eight, .offset-by-nine, .offset-by-ten { margin-left: 0 !important; } - .push-two, .push-three, .push-four, .push-five, .push-six, .push-seven, .push-eight, .push-nine, .push-ten { left: auto; } - .pull-two, .pull-three, .pull-four, .pull-five, .pull-six, .pull-seven, .pull-eight, .pull-nine, .pull-ten { right: auto; } - /* Mobile 4-column Grid */ - .row .mobile-one { width: 25% !important; float: left; padding: 0 15px; } - .row .mobile-one:last-child { float: right; } - .row.collapse .mobile-one { padding: 0; } - .row .mobile-two { width: 50% !important; float: left; padding: 0 15px; } - .row .mobile-two:last-child { float: right; } - .row.collapse .mobile-two { padding: 0; } - .row .mobile-three { width: 75% !important; float: left; padding: 0 15px; } - .row .mobile-three:last-child { float: right; } - .row.collapse .mobile-three { padding: 0; } - .row .mobile-four { width: 100% !important; float: left; padding: 0 15px; } - .row .mobile-four:last-child { float: right; } - .row.collapse .mobile-four { padding: 0; } - .push-one-mobile { left: 25%; } - .pull-one-mobile { right: 25%; } - .push-two-mobile { left: 50%; } - .pull-two-mobile { right: 50%; } - .push-three-mobile { left: 75%; } - .pull-three-mobile { right: 75%; } } -/* Block Grids ---------------------- */ -/* These are 2-up, 3-up, 4-up and 5-up ULs, suited -for repeating blocks of content. Add 'mobile' to -them to switch them just like the layout grid -(one item per line) on phones - -For IE7/8 compatibility block-grid items need to be -the same height. You can optionally uncomment the -lines below to support arbitrary height, but know -that IE7/8 do not support :nth-child. --------------------------------------------------- */ -.block-grid { display: block; overflow: hidden; padding: 0; } -.block-grid > li { display: block; height: auto; float: left; } - -.block-grid.one-up { margin: 0; } - -.block-grid.one-up > li { width: 100%; padding: 0 0 15px; } - -.block-grid.two-up { margin: 0 -15px; } - -.block-grid.two-up > li { width: 50%; padding: 0 15px 15px; } - -/* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */ -.block-grid.three-up { margin: 0 -12px; } - -.block-grid.three-up > li { width: 33.33%; padding: 0 12px 12px; } - -/* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */ -.block-grid.four-up { margin: 0 -10px; } - -.block-grid.four-up > li { width: 25%; padding: 0 10px 10px; } - -/* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */ -.block-grid.five-up { margin: 0 -8px; } - -.block-grid.five-up > li { width: 20%; padding: 0 8px 8px; } - -/* .block-grid.five-up>li:nth-child(5n+1) {clear: left;} */ -/* Mobile Block Grids */ -@media only screen and (max-width: 767px) { .block-grid.mobile { margin-left: 0; } - .block-grid.mobile > li { float: none; width: 100%; margin-left: 0; } } -/* Base Type Styles Using Modular Scale ---------------------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, p, blockquote, th, td { margin: 0; padding: 0; font-size: 14px; } - -p { font-size: 14px; line-height: 1.6; margin-bottom: 17px; } -p.lead { font-size: 17.5px; line-height: 1.6; margin-bottom: 17px; } -p img.left, p img { margin: 17px; margin-left: 0; } -p img.right { margin: 17px; margin-right: 0; } - -aside p { font-size: 13px; line-height: 1.35; font-style: italic; } - -h1, h2, h3, h4, h5, h6 { text-rendering: optimizeLegibility; line-height: 1.1; margin-bottom: 14px; margin-top: 14px; } -h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-size: 60%; color: #888; line-height: 0; } - -h1 { font-size: 44px; } - -h2 { font-size: 37px; } - -h3 { font-size: 27px; } - -h4 { font-size: 23px; } - -h5 { font-size: 17px; } - -h6 { font-size: 14px; } - -hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 22px 0 21px; height: 0; } - -.subheader { line-height: 1.3; color: #777; font-weight: 300; margin-bottom: 17px; } - -em, i { font-style: italic; line-height: inherit; } - -strong, b { font-weight: bold; line-height: inherit; } - -small { font-size: 60%; line-height: inherit; } - -code { font-weight: bold; background: #ffff99; } - -/* Lists ---------------------- */ -ul, ol { font-size: 14px; line-height: 1.6; margin-bottom: 17px; list-style-position: outside; } - -ul li ul { margin-left: 20px; margin-bottom: 0; list-style: outside; } -ul.square, ul.circle, ul.disc { margin-left: 17px; } -ul.square { list-style-type: square; } -ul.square li ul { list-style: inherit; } -ul.circle { list-style-type: circle; } -ul.circle li ul { list-style: inherit; } -ul.disc { list-style-type: disc; } -ul.disc li ul { list-style: inherit; } -ul.no-bullet { list-style: none; } -ul.large li { line-height: 21px; } - -/* Blockquotes ---------------------- */ -blockquote, blockquote p { line-height: 1.5; color: #777; } - -blockquote { margin: 0 0 17px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; } -blockquote cite { display: block; font-size: 13px; color: #555; } -blockquote cite:before { content: "\2014 \0020"; } -blockquote cite a, blockquote cite a:visited { color: #555; } - -abbr, acronym { text-transform: uppercase; font-size: 90%; color: #222; border-bottom: 1px solid #ddd; cursor: help; } - -abbr { text-transform: none; } - -/* Print styles. Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com) -*/ -.print-only { display: none !important; } - -@media print { * { background: transparent !important; color: black !important; box-shadow: none !important; text-shadow: none !important; filter: none !important; -ms-filter: none !important; } - /* Black prints faster: h5bp.com/s */ - a, a:visited { text-decoration: underline; } - a[href]:after { content: " (" attr(href) ")"; } - abbr[title]:after { content: " (" attr(title) ")"; } - .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } - /* Don't show links for images, or javascript/internal links */ - pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } - thead { display: table-header-group; } - /* h5bp.com/t */ - tr, img { page-break-inside: avoid; } - img { max-width: 100% !important; } - @page { margin: 0.5cm; } - p, h2, h3 { orphans: 3; widows: 3; } - h2, h3 { page-break-after: avoid; } - .hide-on-print { display: none !important; } - .print-only { display: block !important; } } -/* Requires: globals.css */ -/* Table of Contents - -:: Visibility -:: Alerts -:: Labels -:: Tooltips -:: Panels -:: Accordion -:: Side Nav -:: Sub Nav -:: Pagination -:: Breadcrumbs -:: Lists -:: Link Lists -:: Keystroke Chars -:: Video -:: Tables -:: Microformats - -*/ -/* Visibility Classes ---------------------- */ -/* Standard (large) display targeting */ -.show-for-small, .show-for-medium, .show-for-medium-down, .hide-for-large, .hide-for-large-up, .show-for-xlarge { display: none !important; } - -.hide-for-xlarge, .show-for-large, .show-for-large-up, .hide-for-small, .hide-for-medium, .hide-for-medium-down { display: block !important; } - -/* Very large display targeting */ -@media only screen and (min-width: 1441px) { .hide-for-small, .hide-for-medium, .hide-for-medium-down, .hide-for-large, .show-for-large-up, .show-for-xlarge { display: block !important; } - .show-for-small, .show-for-medium, .show-for-medium-down, .show-for-large, .hide-for-large-up, .hide-for-xlarge { display: none !important; } } -/* Medium display targeting */ -@media only screen and (max-width: 1279px) and (min-width: 768px) { .hide-for-small, .show-for-medium, .show-for-medium-down, .hide-for-large, .hide-for-large-up, .hide-for-xlarge { display: block !important; } - .show-for-small, .hide-for-medium, .hide-for-medium-down, .show-for-large, .show-for-large-up, .show-for-xlarge { display: none !important; } } -/* Small display targeting */ -@media only screen and (max-width: 767px) { .show-for-small, .show-for-medium-down, .hide-for-medium, .hide-for-large, .hide-for-large-up, .hide-for-xlarge { display: block !important; } - .hide-for-small, .show-for-medium, .show-for-medium-down, .show-for-large, .show-for-large-up, .show-for-xlarge { display: none !important; } } -/* Orientation targeting */ -.show-for-landscape, .hide-for-portrait { display: block !important; } - -.hide-for-landscape, .show-for-portrait { display: none !important; } - -@media screen and (orientation: landscape) { .show-for-landscape, .hide-for-portrait { display: block !important; } - .hide-for-landscape, .show-for-portrait { display: none !important; } } -@media screen and (orientation: portrait) { .show-for-portrait, .hide-for-landscape { display: block !important; } - .hide-for-portrait, .show-for-landscape { display: none !important; } } -/* Touch-enabled device targeting */ -.show-for-touch { display: none !important; } - -.hide-for-touch { display: block !important; } - -.touch .show-for-touch { display: block !important; } - -.touch .hide-for-touch { display: none !important; } - -/* Specific overrides for elements that require something other than display: block */ -table.show-for-xlarge, table.show-for-large, table.hide-for-small, table.hide-for-medium { display: table !important; } - -@media only screen and (max-width: 1279px) and (min-width: 768px) { .touch table.hide-for-xlarge, .touch table.hide-for-large, .touch table.hide-for-small, .touch table.show-for-medium { display: table !important; } } -@media only screen and (max-width: 767px) { table.hide-for-xlarge, table.hide-for-large, table.hide-for-medium, table.show-for-small { display: table !important; } } -/* Alerts ---------------------- */ -div.alert-box { display: block; padding: 6px 7px 7px; font-weight: bold; font-size: 14px; color: white; background-color: #2ba6cb; border: 1px solid rgba(0, 0, 0, 0.1); margin-bottom: 12px; -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; text-shadow: 0 -1px rgba(0, 0, 0, 0.3); position: relative; } -div.alert-box.success { background-color: #5da423; color: #fff; text-shadow: 0 -1px rgba(0, 0, 0, 0.3); } -div.alert-box.alert { background-color: #c60f13; color: #fff; text-shadow: 0 -1px rgba(0, 0, 0, 0.3); } -div.alert-box.secondary { background-color: #e9e9e9; color: #505050; text-shadow: 0 1px rgba(255, 255, 255, 0.3); } -div.alert-box a.close { color: #333; position: absolute; right: 4px; top: -1px; font-size: 17px; opacity: 0.2; padding: 4px; } -div.alert-box a.close:hover, div.alert-box a.close:focus { opacity: 0.4; } - -/* Labels ---------------------- */ -.label { padding: 1px 4px 2px; font-size: 12px; font-weight: bold; text-align: center; text-decoration: none; line-height: 1; white-space: nowrap; display: inline; position: relative; bottom: 1px; color: #fff; background: #2ba6cb; } -.label.radius { -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; } -.label.round { padding: 1px 7px 2px; -webkit-border-radius: 1000px; -moz-border-radius: 1000px; -ms-border-radius: 1000px; -o-border-radius: 1000px; border-radius: 1000px; } -.label.alert { background-color: #c60f13; } -.label.success { background-color: #5da423; } -.label.secondary { background-color: #e9e9e9; color: #505050; } - -/* Tooltips ---------------------- */ -.has-tip { border-bottom: dotted 1px #ccc; cursor: help; font-weight: bold; color: #333; } -.has-tip:hover { border-bottom: dotted 1px #0593dc; color: #0192dd; } -.has-tip.tip-left, .has-tip.tip-right { float: none !important; } - -.tooltip { display: none; background: black; background: rgba(0, 0, 0, 0.8); position: absolute; color: #fff; font-weight: bold; font-size: 12px; font-size: 1.2rem; padding: 5px; z-index: 999; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; line-height: normal; } -.tooltip > .nub { display: block; width: 0; height: 0; border: solid 5px; border-color: transparent transparent black transparent; border-color: transparent transparent rgba(0, 0, 0, 0.8) transparent; position: absolute; top: -10px; left: 10px; } -.tooltip.tip-override > .nub { border-color: transparent transparent black transparent !important; border-color: transparent transparent rgba(0, 0, 0, 0.8) transparent !important; top: -10px !important; } -.tooltip.tip-top > .nub { border-color: black transparent transparent transparent; border-color: rgba(0, 0, 0, 0.8) transparent transparent transparent; top: auto; bottom: -10px; } -.tooltip.tip-left, .tooltip.tip-right { float: none !important; } -.tooltip.tip-left > .nub { border-color: transparent transparent transparent black; border-color: transparent transparent transparent rgba(0, 0, 0, 0.8); right: -10px; left: auto; } -.tooltip.tip-right > .nub { border-color: transparent black transparent transparent; border-color: transparent rgba(0, 0, 0, 0.8) transparent transparent; right: auto; left: -10px; } -.tooltip.noradius { -webkit-border-radius: 0; -moz-border-radius: 0; -ms-border-radius: 0; -o-border-radius: 0; border-radius: 0; } -.tooltip.opened { color: #0192DD !important; border-bottom: dotted 1px #0593DC !important; } - -.tap-to-close { display: block; font-size: 10px; font-size: 1rem; color: #888; font-weight: normal; } - -@media only screen and (max-width: 767px) { .tooltip { font-size: 14px; font-size: 1.4rem; line-height: 1.4; padding: 7px 10px 9px 10px; } - .tooltip > .nub, .tooltip.top > .nub, .tooltip.left > .nub, .tooltip.right > .nub { border-color: transparent transparent black transparent; border-color: transparent transparent rgba(0, 0, 0, 0.85) transparent; top: -12px; left: 10px; } } -/* Panels ---------------------- */ -div.panel { background: #f2f2f2; border: solid 1px #e6e6e6; margin: 0 0 22px 0; padding: 20px; } -div.panel > :first-child { margin-top: 0; } -div.panel > :last-child { margin-bottom: 0; } -div.panel.callout { background: #2ba6cb; color: #fff; border-color: #2284a1; -webkit-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.5); -moz-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.5); box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.5); } -div.panel.callout a { color: #fff; } -div.panel.callout .button { background: white; border: none; color: #2ba6cb; text-shadow: none; } -div.panel.callout .button:hover { background: rgba(255, 255, 255, 0.8); } -div.panel.radius { -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; } - -/* Accordion ---------------------- */ -ul.accordion { margin: 0 0 22px 0; border-bottom: 1px solid #e9e9e9; } -ul.accordion li { list-style: none; margin: 0; padding: 0; border-top: 1px solid #e9e9e9; } -ul.accordion li .title { cursor: pointer; background: #f6f6f6; padding: 15px; margin: 0; position: relative; border-left: 1px solid #e9e9e9; border-right: 1px solid #e9e9e9; -webkit-transition: 0.15s background linear; -moz-transition: 0.15s background linear; -o-transition: 0.15s background linear; transition: 0.15s background linear; } -ul.accordion li .title h1, ul.accordion li .title h2, ul.accordion li .title h3, ul.accordion li .title h4, ul.accordion li .title h5 { margin: 0; } -ul.accordion li .title:after { content: ""; display: block; width: 0; height: 0; border: solid 6px; border-color: transparent #9d9d9d transparent transparent; position: absolute; right: 15px; top: 21px; } -ul.accordion li .content { display: none; padding: 15px; } -ul.accordion li.active { border-top: 3px solid #2ba6cb; } -ul.accordion li.active .title { background: white; padding-top: 13px; } -ul.accordion li.active .title:after { content: ""; display: block; width: 0; height: 0; border: solid 6px; border-color: #9d9d9d transparent transparent transparent; } -ul.accordion li.active .content { background: white; display: block; border-left: 1px solid #e9e9e9; border-right: 1px solid #e9e9e9; } - -/* Side Nav ---------------------- */ -ul.side-nav { display: block; list-style: none; margin: 0; padding: 17px 0; } -ul.side-nav li { display: block; list-style: none; margin: 0 0 7px 0; } -ul.side-nav li a { display: block; } -ul.side-nav li.active a { color: #4d4d4d; font-weight: bold; } -ul.side-nav li.divider { border-top: 1px solid #e6e6e6; height: 0; padding: 0; } - -/* Sub Navs http://www.zurb.com/article/292/how-to-create-simple-and-effective-sub-na ---------------------- */ -dl.sub-nav { display: block; width: auto; overflow: hidden; margin: -4px 0 18px -9px; padding-top: 4px; } -dl.sub-nav dt, dl.sub-nav dd { float: left; display: inline; margin-left: 9px; margin-bottom: 4px; } -dl.sub-nav dt { color: #999; font-weight: normal; } -dl.sub-nav dd a { text-decoration: none; -webkit-border-radius: 1000px; -moz-border-radius: 1000px; -ms-border-radius: 1000px; -o-border-radius: 1000px; border-radius: 1000px; } -dl.sub-nav dd.active a { font-weight: bold; background: #2ba6cb; color: #fff; padding: 3px 9px; cursor: default; } - -/* Pagination ---------------------- */ -ul.pagination { display: block; height: 24px; margin-left: -5px; } -ul.pagination li { float: left; display: block; height: 24px; color: #999; font-size: 14px; margin-left: 5px; } -ul.pagination li a { display: block; padding: 1px 7px 1px; color: #555; } -ul.pagination li:hover a, ul.pagination li a:focus { background: #e6e6e6; } -ul.pagination li.unavailable a { cursor: default; color: #999; } -ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus { background: transparent; } -ul.pagination li.current a { background: #2ba6cb; color: white; font-weight: bold; cursor: default; } -ul.pagination li.current a:hover { background: #2ba6cb; } - -/* Breadcrums ---------------------- */ -ul.breadcrumbs { display: block; background: #f6f6f6; padding: 6px 10px 7px; border: 1px solid #e9e9e9; -webkit-border-radius: 2px; -moz-border-radius: 2px; -ms-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px; overflow: hidden; } -ul.breadcrumbs li { margin: 0; padding: 0 12px 0 0; float: left; list-style: none; } -ul.breadcrumbs li a, ul.breadcrumbs li span { text-transform: uppercase; font-size: 11px; font-size: 1.1rem; padding-left: 12px; } -ul.breadcrumbs li:first-child a, ul.breadcrumbs li:first-child span { padding-left: 0; } -ul.breadcrumbs li:before { content: "/"; color: #aaa; } -ul.breadcrumbs li:first-child:before { content: " "; } -ul.breadcrumbs li.current a { cursor: default; color: #333; } -ul.breadcrumbs li:hover a, ul.breadcrumbs li a:focus { text-decoration: underline; } -ul.breadcrumbs li.current:hover a, ul.breadcrumbs li.current a:focus { text-decoration: none; } -ul.breadcrumbs li.unavailable a { color: #999; } -ul.breadcrumbs li.unavailable:hover a, ul.breadcrumbs li.unavailable a:focus { text-decoration: none; color: #999; cursor: default; } - -/* Lists ---------------------- */ -ul.nice, ol.nice { list-style: none; margin: 0; } -ul.nice li, ol.nice li { padding-left: 13px; position: relative; } -ul.nice li span.bullet, ul.nice li span.number, ol.nice li span.bullet, ol.nice li span.number { position: absolute; left: 0; top: 0; color: #ccc; } - -/* Link List */ -ul.link-list { margin: 0 0 17px -22px; padding: 0; list-style: none; overflow: hidden; } -ul.link-list li { list-style: none; float: left; margin-left: 22px; display: block; } -ul.link-list li a { display: block; } - -/* Keytroke Characters ---------------------- */ -.keystroke, kbd { font-family: "Consolas", "Menlo", "Courier", monospace; font-size: 13px; padding: 2px 4px 0px; margin: 0; background: #ededed; border: solid 1px #dbdbdb; -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; } - -/* Video - Mad props to http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ ---------------------- */ -.flex-video { position: relative; padding-top: 25px; padding-bottom: 67.5%; height: 0; margin-bottom: 16px; overflow: hidden; } -.flex-video.widescreen { padding-bottom: 57.25%; } -.flex-video.vimeo { padding-top: 0; } -.flex-video iframe, .flex-video object, .flex-video embed, .flex-video video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - -@media only screen and (max-device-width: 800px), only screen and (device-width: 1024px) and (device-height: 600px), only screen and (width: 1280px) and (orientation: landscape), only screen and (device-width: 800px), only screen and (max-width: 767px) { .flex-video { padding-top: 0; } } -/* Tables ---------------------- */ -table { background: #fff; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; margin: 0 0 18px; border: 1px solid #ddd; } - -table thead, table tfoot { background: #f5f5f5; } - -table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { font-size: 12px; font-size: 1.2rem; line-height: 18px; text-align: left; } - -table thead tr th, table tfoot tr td { padding: 8px 10px 9px; font-size: 14px; font-size: 1.4rem; font-weight: bold; color: #222; } - -table thead tr th:first-child, table tfoot tr td:first-child { border-left: none; } - -table thead tr th:last-child, table tfoot tr td:last-child { border-right: none; } - -table tbody tr.even, table tbody tr.alt { background: #f9f9f9; } - -table tbody tr:nth-child(even) { background: #f9f9f9; } - -table tbody tr td { color: #333; padding: 9px 10px; vertical-align: top; border: none; } - -/* Microformats ---------------------- */ -ul.vcard { display: inline-block; margin: 0 0 12px 0; border: 1px solid #ddd; padding: 10px; } -ul.vcard li { margin: 0; display: block; } -ul.vcard li.fn { font-weight: bold; font-size: 15px; font-size: 1.5rem; } - -p.vevent span.summary { font-weight: bold; } -p.vevent abbr { cursor: default; text-decoration: none; font-weight: bold; border: none; padding: 0 1px; } - -/* Requires globals.css */ -/* Normal Buttons ---------------------- */ -.button { width: auto; background: #2ba6cb; border: 1px solid #1e728c; -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; color: white; cursor: pointer; display: inline-block; font-family: "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 14px; font-weight: bold; line-height: 1; margin: 0; outline: none; padding: 10px 20px 11px; position: relative; text-align: center; text-decoration: none; -webkit-transition: background-color 0.15s ease-in-out; -moz-transition: background-color 0.15s ease-in-out; -o-transition: background-color 0.15s ease-in-out; transition: background-color 0.15s ease-in-out; /* Hovers */ /* Sizes */ /* Colors */ /* Radii */ /* Layout */ /* Disabled ---------- */ } -.button:hover { color: white; background-color: #2284a1; } -.button:active { -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2) inset; -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2) inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2) inset; } -.button:focus { -webkit-box-shadow: 0 0 4px #2ba6cb, 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 0 4px #2ba6cb, 0 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 0 0 4px #2ba6cb, 0 1px 0 rgba(255, 255, 255, 0.5) inset; color: white; } -.button.large { font-size: 17px; padding: 15px 30px 16px; } -.button.medium { font-size: 14px; } -.button.small { font-size: 11px; padding: 7px 14px 8px; } -.button.tiny { font-size: 10px; padding: 5px 10px 6px; } -.button.expand { width: 100%; text-align: center; } -.button.primary { background-color: #2ba6cb; border: 1px solid #1e728c; } -.button.primary:hover { background-color: #2284a1; } -.button.primary:focus { -webkit-box-shadow: 0 0 4px #2ba6cb, 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 0 4px #2ba6cb, 0 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 0 0 4px #2ba6cb, 0 1px 0 rgba(255, 255, 255, 0.5) inset; } -.button.success { background-color: #5da423; border: 1px solid #396516; } -.button.success:hover { background-color: #457a1a; } -.button.success:focus { -webkit-box-shadow: 0 0 5px #5da423, 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 0 5px #5da423, 0 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 0 0 5px #5da423, 0 1px 0 rgba(255, 255, 255, 0.5) inset; } -.button.alert { background-color: #c60f13; border: 1px solid #7f0a0c; } -.button.alert:hover { background-color: #970b0e; } -.button.alert:focus { -webkit-box-shadow: 0 0 4px #c60f13, 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 0 4px #c60f13, 0 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 0 0 4px #c60f13, 0 1px 0 rgba(255, 255, 255, 0.5) inset; } -.button.secondary { background-color: #e9e9e9; color: #1d1d1d; border: 1px solid #c3c3c3; } -.button.secondary:hover { background-color: #d0d0d0; } -.button.secondary:focus { -webkit-box-shadow: 0 0 5px #e9e9e9, 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 0 5px #e9e9e9, 0 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 0 0 5px #e9e9e9, 0 1px 0 rgba(255, 255, 255, 0.5) inset; } -.button.radius { -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; } -.button.round { -webkit-border-radius: 1000px; -moz-border-radius: 1000px; -ms-border-radius: 1000px; -o-border-radius: 1000px; border-radius: 1000px; } -.button.full-width { width: 100%; text-align: center; padding-left: 0 !important; padding-right: !important; } -.button.left-align { text-align: left; text-indent: 12px; } -.button.disabled, .button[disabled] { opacity: 0.6; cursor: default; background: #2ba6cb; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } -.button.disabled :hover, .button[disabled] :hover { background: #2ba6cb; } -.button.disabled.success, .button[disabled].success { background-color: #5da423; } -.button.disabled.success:hover, .button[disabled].success:hover { background-color: #5da423; } -.button.disabled.alert, .button[disabled].alert { background-color: #c60f13; } -.button.disabled.alert:hover, .button[disabled].alert:hover { background-color: #c60f13; } -.button.disabled.secondary, .button[disabled].secondary { background-color: #e9e9e9; } -.button.disabled.secondary:hover, .button[disabled].secondary:hover { background-color: #e9e9e9; } - -/* Don't use native buttons on iOS */ -input[type=submit].button, button.button { -webkit-appearance: none; } - -@media only screen and (max-width: 767px) { .button { display: block; } - button.button, input[type="submit"].button { width: 100%; padding-left: 0; padding-right: 0; } } -/* Correct FF button padding */ -@-moz-document url-prefix() { button::-moz-focus-inner, input[type="reset"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="file"] > input[type="button"]::-moz-focus-inner { border: none; padding: 0; } - input[type="submit"].tiny.button { padding: 3px 10px 4px; } - input[type="submit"].small.button { padding: 5px 14px 6px; } - input[type="submit"].button, input[type=submit].medium.button { padding: 8px 20px 9px; } - input[type="submit"].large.button { padding: 13px 30px 14px; } } - -/* Buttons with Dropdowns ---------------------- */ -.button.dropdown { position: relative; padding-right: 44px; /* Sizes */ /* Triangles */ /* Flyout List */ /* Split Dropdown Buttons */ } -.button.dropdown.large { padding-right: 60px; } -.button.dropdown.small { padding-right: 28px; } -.button.dropdown.tiny { padding-right: 20px; } -.button.dropdown:after { content: ""; display: block; width: 0; height: 0; border: solid 6px; border-color: white transparent transparent transparent; position: absolute; top: 50%; right: 20px; margin-top: -2px; } -.button.dropdown.large:after { content: ""; display: block; width: 0; height: 0; border: solid 7px; border-color: white transparent transparent transparent; margin-top: -3px; right: 30px; } -.button.dropdown.small:after { content: ""; display: block; width: 0; height: 0; border: solid 5px; border-color: white transparent transparent transparent; margin-top: -2px; right: 14px; } -.button.dropdown.tiny:after { content: ""; display: block; width: 0; height: 0; border: solid 4px; border-color: white transparent transparent transparent; margin-top: -1px; right: 10px; } -.button.dropdown > ul { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; display: none; position: absolute; left: -1px; background: #fff; background: rgba(255, 255, 255, 0.95); list-style: none; margin: 0; padding: 0; border: 1px solid #cccccc; border-top: none; min-width: 100%; z-index: 40; } -.button.dropdown > ul li { cursor: pointer; padding: 0; min-height: 18px; line-height: 18px; margin: 0; white-space: nowrap; list-style: none; } -.button.dropdown > ul li a { display: block; color: #555; font-size: 13px; font-weight: normal; padding: 6px 14px; text-align: left; } -.button.dropdown > ul li:hover { background-color: #e3f4f9; color: #222; } -.button.dropdown > ul li.divider { min-height: 0; padding: 0; height: 1px; margin: 4px 0; background: #ededed; } -.button.dropdown.up > ul { border-top: 1px solid #cccccc; border-bottom: none; } -.button.dropdown ul.no-hover.show-dropdown { display: block !important; } -.button.dropdown:hover > ul.no-hover { display: none; } -.button.dropdown.split { padding: 0; position: relative; /* Sizes */ /* Triangle Spans */ /* Colors */ } -.button.dropdown.split:after { display: none; } -.button.dropdown.split:hover { background-color: #2ba6cb; } -.button.dropdown.split.alert:hover { background-color: #c60f13; } -.button.dropdown.split.success:hover { background-color: #5da423; } -.button.dropdown.split.secondary:hover { background-color: #e9e9e9; } -.button.dropdown.split > a { color: white; display: block; padding: 10px 50px 11px 20px; -webkit-transition: background-color 0.15s ease-in-out; -moz-transition: background-color 0.15s ease-in-out; -o-transition: background-color 0.15s ease-in-out; transition: background-color 0.15s ease-in-out; } -.button.dropdown.split > a:hover { background-color: #2284a1; } -.button.dropdown.split.large > a { padding: 15px 75px 16px 30px; } -.button.dropdown.split.small > a { padding: 7px 35px 8px 14px; } -.button.dropdown.split.tiny > a { padding: 5px 25px 6px 10px; } -.button.dropdown.split > span { background-color: #2ba6cb; position: absolute; right: 0; top: 0; height: 100%; width: 30px; border-left: 1px solid #1e728c; -webkit-box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5) inset; -webkit-transition: background-color 0.15s ease-in-out; -moz-transition: background-color 0.15s ease-in-out; -o-transition: background-color 0.15s ease-in-out; transition: background-color 0.15s ease-in-out; } -.button.dropdown.split > span:hover { background-color: #2284a1; } -.button.dropdown.split > span:after { content: ""; display: block; width: 0; height: 0; border: solid 6px; border-color: white transparent transparent transparent; position: absolute; top: 50%; left: 50%; margin-left: -6px; margin-top: -2px; } -.button.dropdown.split.secondary > span:after { content: ""; display: block; width: 0; height: 0; border: solid 6px; border-color: #1d1d1d transparent transparent transparent; } -.button.dropdown.split.large span { width: 45px; } -.button.dropdown.split.small span { width: 21px; } -.button.dropdown.split.tiny span { width: 15px; } -.button.dropdown.split.large span:after { content: ""; display: block; width: 0; height: 0; border: solid 7px; border-color: white transparent transparent transparent; margin-top: -3px; margin-left: -7px; } -.button.dropdown.split.small span:after { content: ""; display: block; width: 0; height: 0; border: solid 4px; border-color: white transparent transparent transparent; margin-top: -1px; margin-left: -4px; } -.button.dropdown.split.tiny span:after { content: ""; display: block; width: 0; height: 0; border: solid 3px; border-color: white transparent transparent transparent; margin-top: -1px; margin-left: -3px; } -.button.dropdown.split.alert > span { background-color: #c60f13; border-left-color: #7f0a0c; } -.button.dropdown.split.success > span { background-color: #5da423; border-left-color: #396516; } -.button.dropdown.split.secondary > span { background-color: #e9e9e9; border-left-color: #c3c3c3; } -.button.dropdown.split.secondary > a { color: #1d1d1d; } -.button.dropdown.split.alert > a:hover, .button.dropdown.split.alert > span:hover { background-color: #970b0e; } -.button.dropdown.split.success > a:hover, .button.dropdown.split.success > span:hover { background-color: #457a1a; } -.button.dropdown.split.secondary > a:hover, .button.dropdown.split.secondary > span:hover { background-color: #d0d0d0; } - -/* Button Groups ---------------------- */ -ul.button-group { list-style: none; padding: 0; margin: 0 0 12px; *zoom: 1; } -ul.button-group:before, ul.button-group:after { content: ""; display: table; } -ul.button-group:after { clear: both; } -ul.button-group li { padding: 0; margin: 0 0 0 -1px; float: left; } -ul.button-group li:first-child { margin-left: 0; } -ul.button-group.radius li:first-child .button, ul.button-group.radius li:first-child .button.radius, ul.button-group.radius li:first-child .button.rounded { -webkit-border-radius: 0px; -moz-border-radius: 0px; -ms-border-radius: 0px; -o-border-radius: 0px; border-radius: 0px; border-top-left-radius: 3px; border-bottom-left-radius: 3px; } -ul.button-group.radius li + li .button, ul.button-group.radius li + li .button.radius, ul.button-group.radius li + li .button.rounded { border-radius: 0; } -ul.button-group.radius li:last-child .button, ul.button-group.radius li:last-child .button.radius, ul.button-group.radius li:last-child .button.rounded { -webkit-border-radius: 0px; -moz-border-radius: 0px; -ms-border-radius: 0px; -o-border-radius: 0px; border-radius: 0px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; } -ul.button-group.rounded li:first-child .button, ul.button-group.rounded li:first-child .button.radius, ul.button-group.rounded li:first-child .button.rounded { -webkit-border-radius: 0px; -moz-border-radius: 0px; -ms-border-radius: 0px; -o-border-radius: 0px; border-radius: 0px; border-top-left-radius: 1000px; border-bottom-left-radius: 1000px; } -ul.button-group.rounded li + li .button, ul.button-group.rounded li + li .button.radius, ul.button-group.rounded li + li .button.rounded { border-radius: 0; } -ul.button-group.rounded li:last-child .button, ul.button-group.rounded li:last-child .button.radius, ul.button-group.rounded li:last-child .button.rounded { -webkit-border-radius: 0px; -moz-border-radius: 0px; -ms-border-radius: 0px; -o-border-radius: 0px; border-radius: 0px; border-top-right-radius: 1000px; border-bottom-right-radius: 1000px; } -ul.button-group.even a.button { width: 100%; } -ul.button-group.even.two-up li { width: 50%; } -ul.button-group.even.three-up li { width: 33.3%; } -ul.button-group.even.three-up li:first-child { width: 33.4%; } -ul.button-group.even.four-up li { width: 25%; } -ul.button-group.even.five-up li { width: 20%; } - -@media only screen and (max-width: 767px) { .button-group button.button, .button-group input[type="submit"].button { width: auto; padding: 10px 20px 11px; } - .button-group button.button.large, .button-group input[type="submit"].button.large { padding: 15px 30px 16px; } - .button-group button.button.medium, .button-group input[type="submit"].button.medium { padding: 10px 20px 11px; } - .button-group button.button.small, .button-group input[type="submit"].button.small { padding: 7px 14px 8px; } - .button-group button.button.tiny, .button-group input[type="submit"].button.tiny { padding: 5px 10px 6px; } - .button-group.even button.button, .button-group.even input[type="submit"].button { width: 100%; padding-left: 0; padding-right: 0; } } -div.button-bar { overflow: hidden; } -div.button-bar ul.button-group { float: left; margin-right: 8px; } -div.button-bar ul.button-group:last-child { margin-left: 0; } - -/* Requires globals.css app.js */ -/* Tabs ---------------------- */ -dl.tabs { border-bottom: solid 1px #e6e6e6; display: block; height: 40px; padding: 0; margin-bottom: 20px; } -dl.tabs.contained { margin-bottom: 0; } -dl.tabs dt { color: #b3b3b3; cursor: default; display: block; float: left; font-size: 12px; height: 40px; line-height: 40px; padding: 0 9px 0 20px; width: auto; text-transform: uppercase; } -dl.tabs dt:first-child { padding: 0 9px 0 0; } -dl.tabs dd { display: block; float: left; padding: 0; margin: 0; } -dl.tabs dd a { color: #6f6f6f; display: block; font-size: 14px; height: 40px; line-height: 40px; padding: 0px 23.8px; } -dl.tabs dd.active { border-top: 3px solid #2ba6cb; margin-top: -3px; } -dl.tabs dd.active a { cursor: default; color: #3c3c3c; background: #fff; border-left: 1px solid #e6e6e6; border-right: 1px solid #e6e6e6; font-weight: bold; } -dl.tabs dd:first-child { margin-left: 0; } -dl.tabs.vertical { height: auto; border-bottom: 1px solid #e6e6e6; } -dl.tabs.vertical dt, dl.tabs.vertical dd { float: none; height: auto; } -dl.tabs.vertical dd { border-left: 3px solid #cccccc; } -dl.tabs.vertical dd a { background: #f2f2f2; border: none; border: 1px solid #e6e6e6; border-width: 1px 1px 0 0; color: #555; display: block; font-size: 14px; height: auto; line-height: 1; padding: 15px 20px; -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; } -dl.tabs.vertical dd.active { margin-top: 0; border-top: 1px solid #4d4d4d; border-left: 4px solid #1a1a1a; } -dl.tabs.vertical dd.active a { background: #4d4d4d; border: none; color: #fff; height: auto; margin: 0; position: static; top: 0; -webkit-box-shadow: 0 0 0; -moz-box-shadow: 0 0 0; box-shadow: 0 0 0; } -dl.tabs.vertical dd:first-child a.active { margin: 0; } -dl.tabs.pill { border-bottom: none; margin-bottom: 10px; } -dl.tabs.pill dd { margin-right: 10px; } -dl.tabs.pill dd:last-child { margin-right: 0; } -dl.tabs.pill dd a { -webkit-border-radius: 1000px; -moz-border-radius: 1000px; -ms-border-radius: 1000px; -o-border-radius: 1000px; border-radius: 1000px; background: #e6e6e6; height: 26px; line-height: 26px; color: #666; } -dl.tabs.pill dd.active { border: none; margin-top: 0; } -dl.tabs.pill dd.active a { background-color: #2ba6cb; border: none; color: #fff; } -dl.tabs.pill.contained { border-bottom: solid 1px #eee; margin-bottom: 0; } -dl.tabs.two-up dt a, dl.tabs.two-up dd a, dl.tabs.three-up dt a, dl.tabs.three-up dd a, dl.tabs.four-up dt a, dl.tabs.four-up dd a, dl.tabs.five-up dt a, dl.tabs.five-up dd a { padding: 0 17px; text-align: center; overflow: hidden; } -dl.tabs.two-up dt, dl.tabs.two-up dd { width: 50%; } -dl.tabs.three-up dt, dl.tabs.three-up dd { width: 33.33%; } -dl.tabs.four-up dt, dl.tabs.four-up dd { width: 25%; } -dl.tabs.five-up dt, dl.tabs.five-up dd { width: 20%; } - -ul.tabs-content { display: block; margin: 0 0 20px; padding: 0; } -ul.tabs-content > li { display: none; } -ul.tabs-content > li.active { display: block; } -ul.tabs-content.contained { padding: 0; } -ul.tabs-content.contained > li { border: solid 0 #e6e6e6; border-width: 0 1px 1px 1px; padding: 20px; } -ul.tabs-content.contained.vertical > li { border-width: 1px 1px 1px 1px; } - -.no-js ul.tabs-content > li { display: block; } - -@media only screen and (max-width: 767px) { dl.tabs.mobile, dl.nice.tabs.mobile { width: auto; margin: 20px -20px 40px; height: auto; } - dl.tabs.mobile dt, dl.tabs.mobile dd, dl.nice.tabs.mobile dt, dl.nice.tabs.mobile dd { float: none; height: auto; } - dl.tabs.mobile dd a { display: block; width: auto; height: auto; padding: 18px 20px; line-height: 1; border: solid 0 #ccc; border-width: 1px 0 0; margin: 0; color: #555; background: #eee; font-size: 15px; font-size: 1.5rem; } - dl.tabs.mobile dd a.active { height: auto; margin: 0; border-width: 1px 0 0; } - .tabs.mobile { border-bottom: solid 1px #ccc; height: auto; } - .tabs.mobile dd a { padding: 18px 20px; border: none; border-left: none; border-right: none; border-top: 1px solid #ccc; background: #fff; } - .tabs.mobile dd a.active { border: none; background: #2ba6cb; color: #fff; margin: 0; position: static; top: 0; height: auto; } - .tabs.mobile dd:first-child a.active { margin: 0; } - dl.contained.mobile, dl.nice.contained.mobile { margin-bottom: 0; } - dl.contained.tabs.mobile dd a { padding: 18px 20px; } - dl.tabs.mobile + ul.contained { margin-left: -20px; margin-right: -20px; border-width: 0 0 1px 0; } } -/* Requires globals.css */ -.nav-bar { height: 40px; background: #4d4d4d; margin-top: 20px; padding: 0; } -.nav-bar > li { float: left; display: block; position: relative; padding: 0; margin: 0; border: 1px solid #333333; border-right: none; line-height: 38px; -webkit-box-shadow: 1px 0 0 rgba(255, 255, 255, 0.2) inset; -moz-box-shadow: 1px 0 0 rgba(255, 255, 255, 0.2) inset; box-shadow: 1px 0 0 rgba(255, 255, 255, 0.2) inset; } -.nav-bar > li:first-child { -webkit-box-shadow: 0 0 0; -moz-box-shadow: 0 0 0; box-shadow: 0 0 0; } -.nav-bar > li:last-child { border-right: solid 1px #333333; -webkit-box-shadow: 1px 0 0 rgba(255, 255, 255, 0.2) inset, 1px 0 0 rgba(255, 255, 255, 0.2); -moz-box-shadow: 1px 0 0 rgba(255, 255, 255, 0.2) inset, 1px 0 0 rgba(255, 255, 255, 0.2); box-shadow: 1px 0 0 rgba(255, 255, 255, 0.2) inset, 1px 0 0 rgba(255, 255, 255, 0.2); } -.nav-bar > li.active { background: #2ba6cb; border-color: #2284a1; } -.nav-bar > li.active > a { color: white; cursor: default; } -.nav-bar > li.active:hover { background: #2ba6cb; cursor: default; } -.nav-bar > li:hover { background: #333333; } -.nav-bar > li > a { color: #e6e6e6; } -.nav-bar > li ul { margin-bottom: 0; } -.nav-bar > li .flyout { display: none; } -.nav-bar > li.has-flyout > a:first-child { padding-right: 36px; position: relative; } -.nav-bar > li.has-flyout > a:first-child:after { content: ""; display: block; width: 0; height: 0; border: solid 4px; border-color: #e6e6e6 transparent transparent transparent; position: absolute; right: 20px; top: 17px; } -.nav-bar > li.has-flyout > a.flyout-toggle { border-left: 0 !important; position: absolute; right: 0; top: 0; padding: 22px; z-index: 2; display: block; } -.nav-bar > li.has-flyout.is-touch > a:first-child { padding-right: 55px; } -.nav-bar > li.has-flyout.is-touch > a.flyout-toggle { border-left: 1px dashed #666; } -.nav-bar > li > a:first-child { position: relative; padding: 0 20px; display: block; text-decoration: none; font-size: 14px; } -.nav-bar > li > input { margin: 0 10px; } -.nav-bar.vertical { height: auto; margin-top: 0; } -.nav-bar.vertical > li { float: none; border-bottom: none; } -.nav-bar.vertical > li.has-flyout > a:first-child:after { content: ""; display: block; width: 0; height: 0; border: solid 4px; border-color: transparent transparent transparent #e6e6e6; } -.nav-bar.vertical > li .flyout { left: 100%; top: -1px; } -.nav-bar.vertical > li .flyout.right { left: auto; right: 100%; } - -.flyout { background: #f2f2f2; padding: 20px; margin: 0; border: 1px solid #d9d9d9; position: absolute; top: 39px; left: -1px; width: 250px; z-index: 40; -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1); /* remove margin on any first-child element */ /* remove margin on last element */ } -.flyout p { line-height: 1.2; font-size: 13px; } -.flyout *:first-child { margin-top: 0; } -.flyout *:last-child { margin-bottom: 0; } -.flyout.small { width: 166.667px; } -.flyout.large { width: 437.5px; } -.flyout.right { left: auto; right: -2px; } -.flyout.up { top: auto; bottom: 39px; } - -ul.flyout, .nav-bar li ul { padding: 0; list-style: none; } -ul.flyout li, .nav-bar li ul li { border-left: solid 3px #CCC; } -ul.flyout li a, .nav-bar li ul li a { background: #f2f2f2; border: 1px solid #e6e6e6; border-width: 1px 1px 0 0; color: #555; display: block; font-size: 14px; height: auto; line-height: 1; padding: 15px 20px; -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; } -ul.flyout li a:hover, .nav-bar li ul li a:hover { background: #ebebeb; color: #333; } -ul.flyout li.active, .nav-bar li ul li.active { margin-top: 0; border-top: 1px solid #4d4d4d; border-left: 4px solid #1a1a1a; } -ul.flyout li.active a, .nav-bar li ul li.active a { background: #4d4d4d; border: none; color: #fff; height: auto; margin: 0; position: static; top: 0; -webkit-box-shadow: 0 0 0; -moz-box-shadow: 0 0 0; box-shadow: 0 0 0; } - -/* Mobile Styles */ -@media only screen and (max-device-width: 1280px) { .touch .nav-bar li.has-flyout > a { padding-right: 36px !important; } } -@media only screen and (max-width: 1279px) and (min-width: 768px) { .touch .nav-bar li a { font-size: 13px; font-size: 1.3rem; } - .touch .nav-bar li.has-flyout > a.flyout-toggle { padding: 20px !important; } - .touch .nav-bar li.has-flyout > a { padding-right: 36px !important; } } -@media only screen and (max-width: 767px) { .nav-bar { height: auto; } - .nav-bar > li { float: none; display: block; border-right: none; } - .nav-bar > li > a.main { text-align: left; border-top: 1px solid #ddd; border-right: none; } - .nav-bar > li:first-child > a.main { border-top: none; } - .nav-bar > li.has-flyout > a.flyout-toggle { position: absolute; right: 0; top: 0; padding: 22px; z-index: 2; display: block; } - .nav-bar > li.has-flyout.is-touch > a.flyout-toggle span { content: ""; width: 0; height: 0; display: block; } - .nav-bar > li.has-flyout > a.flyout-toggle:hover span { border-top-color: #141414; } - .nav-bar.vertical > li.has-flyout > .flyout { left: 0; } - .flyout { position: relative; width: 100% !important; top: auto; margin-right: -2px; border-width: 1px 1px 0 1px; } - .flyout.right { float: none; right: auto; left: -1px; } - .flyout.small, .flyout.large { width: 100% !important; } - .flyout p:last-child { margin-bottom: 18px; } } -/* Requires globals.css */ -/* Standard Forms ---------------------- */ -form { margin: 0 0 19.416px; } - -.row form .row { margin: 0 -6px; } -.row form .row .column, .row form .row .columns { padding: 0 6px; } -.row form .row.collapse { margin: 0; } -.row form .row.collapse .column, .row form .row.collapse .columns { padding: 0; } - -label { font-size: 14px; color: #4d4d4d; cursor: pointer; display: block; font-weight: 500; margin-bottom: 3px; } -label.right { float: none; text-align: right; } -label.inline { line-height: 32px; margin: 0 0 12px 0; } - -@media only screen and (max-width: 767px) { label.right { text-align: left; } } -.prefix, .postfix { display: block; position:static; z-index: 2; text-align: center; width: 100%; padding-top: 0; padding-bottom: 0; height: 32px; line-height: 31px; } - -a.button.prefix, a.button.postfix { padding-left: 0; padding-right: 0; text-align: center; } - -span.prefix, span.postfix { background: #f2f2f2; border: 1px solid #cccccc; } - -.prefix { left: 2px; -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; } - -.postfix { right: 2px; -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; } - -input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], textarea { border: 1px solid #cccccc; -webkit-border-radius: 2px; -moz-border-radius: 2px; -ms-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); color: rgba(0, 0, 0, 0.75); display: block; font-size: 14px; margin: 0 0 12px 0; padding: 6px; height: 32px; width: 100%; -webkit-transition: all 0.15s linear; -moz-transition: all 0.15s linear; -o-transition: all 0.15s linear; transition: all 0.15s linear; } -input[type="text"].oversize, input[type="password"].oversize, input[type="date"].oversize, input[type="datetime"].oversize, input[type="email"].oversize, input[type="number"].oversize, input[type="search"].oversize, input[type="tel"].oversize, input[type="time"].oversize, input[type="url"].oversize, textarea.oversize { font-size: 18px !important; font-size: 1.8rem !important; } -input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, textarea:focus { background: #fafafa; outline: none !important; border-color: #b3b3b3; } -input[type="text"][disabled], input[type="password"][disabled], input[type="date"][disabled], input[type="datetime"][disabled], input[type="email"][disabled], input[type="number"][disabled], input[type="search"][disabled], input[type="tel"][disabled], input[type="time"][disabled], input[type="url"][disabled], textarea[disabled] { background-color: #ddd; } - -textarea { height: auto; } - -select { width: 100%; } - -/* Fieldsets */ -fieldset { border: solid 1px #ddd; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; padding: 12px 12px 0; margin: 18px 0; } -fieldset legend { font-weight: bold; background: white; padding: 0 3px; margin: 0 0 0 -3px; } - -/* Errors */ -.error input, input.error { border-color: #c60f13; background-color: rgba(198, 15, 19, 0.1); } - -.error label, label.error { color: #c60f13; } - -.error small, small.error { display: block; padding: 6px 4px; margin-top: -13px; margin-bottom: 12px; background: #c60f13; color: #fff; font-size: 12px; font-size: 1.2rem; font-weight: bold; -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; } - -@media only screen and (max-width: 767px) { input[type="text"].one, textarea.one { width: 100% !important; } - input[type="text"].two, textarea.two { width: 100% !important; } - input[type="text"].three, textarea.three { width: 100% !important; } - input[type="text"].four, textarea.four { width: 100% !important; } - input[type="text"].five, textarea.five { width: 100% !important; } - input[type="text"].six, textarea.six { width: 100% !important; } - input[type="text"].seven, textarea.seven { width: 100% !important; } - input[type="text"].eight, textarea.eight { width: 100% !important; } - input[type="text"].nine, textarea.nine { width: 100% !important; } - input[type="text"].ten, textarea.ten { width: 100% !important; } - input[type="text"].eleven, textarea.eleven { width: 100% !important; } - input[type="text"].twelve, textarea.twelve { width: 100% !important; } } -/* Custom Forms ---------------------- */ -form.custom { /* Custom input, disabled */ } -form.custom span.custom { display: inline-block; width: 16px; height: 16px; position: relative; top: 2px; border: solid 1px #ccc; background: #fff; } -form.custom span.custom.radio { -webkit-border-radius: 100px; -moz-border-radius: 100px; -ms-border-radius: 100px; -o-border-radius: 100px; border-radius: 100px; } -form.custom span.custom.checkbox:before { content: ""; display: block; line-height: 0.8; height: 14px; width: 14px; text-align: center; position: absolute; top: 0; left: 0; font-size: 14px; color: #fff; } -form.custom span.custom.radio.checked:before { content: ""; display: block; width: 8px; height: 8px; -webkit-border-radius: 100px; -moz-border-radius: 100px; -ms-border-radius: 100px; -o-border-radius: 100px; border-radius: 100px; background: #222; position: relative; top: 3px; left: 3px; } -form.custom span.custom.checkbox.checked:before { content: "\00d7"; color: #222; } -form.custom div.custom.dropdown { display: block; position: relative; width: auto; height: 28px; margin-bottom: 9px; margin-top: 2px; } -form.custom div.custom.dropdown a.current { display: block; width: auto; line-height: 26px; min-height: 28px; padding: 0 38px 0 6px; border: solid 1px #ddd; color: #141414; background-color: #fff; white-space: nowrap; } -form.custom div.custom.dropdown a.selector { position: absolute; width: 27px; height: 28px; display: block; right: 0; top: 0; border: solid 1px #ddd; } -form.custom div.custom.dropdown a.selector:after { content: ""; display: block; content: ""; display: block; width: 0; height: 0; border: solid 5px; border-color: #aaaaaa transparent transparent transparent; position: absolute; left: 50%; top: 50%; margin-top: -2px; margin-left: -5px; } -form.custom div.custom.dropdown:hover a.selector:after, form.custom div.custom.dropdown.open a.selector:after { content: ""; display: block; width: 0; height: 0; border: solid 5px; border-color: #222222 transparent transparent transparent; } -form.custom div.custom.dropdown.open ul { display: block; z-index: 10; } -form.custom div.custom.dropdown.small { width: 134px !important; } -form.custom div.custom.dropdown.medium { width: 254px !important; } -form.custom div.custom.dropdown.large { width: 434px !important; } -form.custom div.custom.dropdown.expand { width: 100% !important; } -form.custom div.custom.dropdown.open.small ul { width: 134px !important; } -form.custom div.custom.dropdown.open.medium ul { width: 254px !important; } -form.custom div.custom.dropdown.open.large ul { width: 434px !important; } -form.custom div.custom.dropdown.open.expand ul { width: 100% !important; } -form.custom div.custom.dropdown ul { position: absolute; width: auto; display: none; margin: 0; left: 0; top: 27px; margin: 0; padding: 0; background: #fff; background: rgba(255, 255, 255, 0.95); border: solid 1px #cccccc; } -form.custom div.custom.dropdown ul li { color: #555; font-size: 13px; cursor: pointer; padding: 3px 38px 3px 6px; min-height: 18px; line-height: 18px; margin: 0; white-space: nowrap; list-style: none; } -form.custom div.custom.dropdown ul li.selected { background: #cdebf5; color: #000; } -form.custom div.custom.dropdown ul li.selected:after { content: "\2013"; position: absolute; right: 10px; } -form.custom div.custom.dropdown ul li:hover { background-color: #e3f4f9; color: #222; } -form.custom div.custom.dropdown ul li:hover:after { content: "\2013"; position: absolute; right: 10px; color: #8ed3e7; } -form.custom div.custom.dropdown ul li.selected:hover { background: #cdebf5; cursor: default; color: #000; } -form.custom div.custom.dropdown ul li.selected:hover:after { color: #000; } -form.custom div.custom.dropdown ul.show { display: block; } -form.custom .custom.disabled { background-color: #ddd; } - -/* Correct FF custom dropdown height */ -@-moz-document url-prefix() { form.custom div.custom.dropdown a.selector { height: 30px; } } - -.lt-ie9 form.custom div.custom.dropdown a.selector { height: 30px; } - -/* CSS for jQuery Orbit Plugin 1.4.0 Maintained for Foundation. foundation.zurb.com Free to use under the MIT license. http://www.opensource.org/licenses/mit-license.php -*/ -/* Container ---------------------- */ -div.orbit-wrapper { width: 1px; height: 1px; position: relative; } - -div.orbit { width: 1px; height: 1px; position: relative; overflow: hidden; margin-bottom: 17px; } - -div.orbit.with-bullets { margin-bottom: 40px; } - -div.orbit .orbit-slide { max-width: 100%; position: absolute; top: 0; left: 0; } - -div.orbit a.orbit-slide { border: none; line-height: 0; display: none; } - -div.orbit div.orbit-slide { width: 100%; height: 100%; } - -/* Note: If your slider only uses content or anchors, you're going to want to put the width and height declarations on the ".orbit>div" and "div.orbit>a" tags in addition to just the .orbit-wrapper */ -/* Timer ---------------------- */ -div.orbit-wrapper div.timer { width: 40px; height: 40px; overflow: hidden; position: absolute; top: 10px; right: 10px; opacity: .6; cursor: pointer; z-index: 31; } - -div.orbit-wrapper span.rotator { display: block; width: 40px; height: 40px; position: absolute; top: 0; left: -20px; background: url('../images/foundation/orbit/rotator-black.png') no-repeat; z-index: 3; } - -div.orbit-wrapper span.mask { display: block; width: 20px; height: 40px; position: absolute; top: 0; right: 0; z-index: 2; overflow: hidden; } - -div.orbit-wrapper span.rotator.move { left: 0; } - -div.orbit-wrapper span.mask.move { width: 40px; left: 0; background: url('../images/foundation/orbit/timer-black.png') repeat 0 0; } - -div.orbit-wrapper span.pause { display: block; width: 40px; height: 40px; position: absolute; top: 0; left: 0; background: url('../images/foundation/orbit/pause-black.png') no-repeat; z-index: 4; opacity: 0; } - -div.orbit-wrapper span.pause.active { background: url('../images/foundation/orbit/pause-black.png') no-repeat 0 -40px; } - -div.orbit-wrapper div.timer:hover span.pause, div.orbit-wrapper span.pause.active { opacity: 1; } - -/* Captions ---------------------- */ -.orbit-caption { display: none; font-family: "HelveticaNeue", "Helvetica-Neue", Helvetica, Arial, sans-serif; } - -.orbit-wrapper .orbit-caption { background: #000; background: rgba(0, 0, 0, 0.6); z-index: 30; color: #fff; text-align: center; padding: 7px 0; font-size: 13px; font-size: 1.3rem; position: absolute; right: 0; bottom: 0; width: 100%; } - -/* Directional Nav ---------------------- */ -div.orbit-wrapper div.slider-nav { display: block; } - -div.orbit-wrapper div.slider-nav span { width: 39px; height: 50px; text-indent: -9999px; position: absolute; z-index: 30; top: 50%; margin-top: -25px; cursor: pointer; } - -div.orbit-wrapper div.slider-nav span.right { background: url('../images/foundation/orbit/right-arrow.png'); background-size: 100%; right: 0; } - -div.orbit-wrapper div.slider-nav span.left { background: url('../images/foundation/orbit/left-arrow.png'); background-size: 100%; left: 0; } - -.lt-ie9 div.orbit-wrapper div.slider-nav span.right { background: url('../images/foundation/orbit/right-arrow-small.png'); } -.lt-ie9 div.orbit-wrapper div.slider-nav span.left { background: url('../images/foundation/orbit/left-arrow-small.png'); } - -/* Bullet Nav ---------------------- */ -ul.orbit-bullets { position: absolute; z-index: 30; list-style: none; bottom: -40px; left: 50%; margin-left: -50px; padding: 0; } - -ul.orbit-bullets li { float: left; margin-left: 5px; cursor: pointer; color: #999; text-indent: -9999px; background: url('../images/foundation/orbit/bullets.jpg') no-repeat 4px 0; width: 13px; height: 12px; overflow: hidden; } - -ul.orbit-bullets li.active { color: #222; background-position: -8px 0; } - -ul.orbit-bullets li.has-thumb { background: none; width: 100px; height: 75px; } - -ul.orbit-bullets li.active.has-thumb { background-position: 0 0; border-top: 2px solid #000; } - -/* Fluid Layout ---------------------- */ -div.orbit img.fluid-placeholder { visibility: hidden; position: static; display: block; width: 100%; } - -div.orbit, div.orbit-wrapper { width: 100% !important; } - -ul.orbit-bullets { position: absolute; z-index: 30; list-style: none; bottom: -50px; left: 50%; margin-left: -50px; padding: 0; } - -ul.orbit-bullets li { float: left; margin-left: 5px; cursor: pointer; color: #999; text-indent: -9999px; background: url('../images/foundation/orbit/bullets.jpg') no-repeat 4px 0; width: 13px; height: 12px; overflow: hidden; } - -ul.orbit-bullets li.has-thumb { background: none; width: 100px; height: 75px; } - -ul.orbit-bullets li.active { color: #222; background-position: -8px 0; } - -ul.orbit-bullets li.active.has-thumb { background-position: 0 0; border-top: 2px solid #000; } - -/* Correct timer in IE */ -.lt-ie9 .timer { display: none !important; } - -.lt-ie9 div.caption { background: transparent; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000,endColorstr=#99000000); zoom: 1; } - -/* CSS for jQuery Reveal Plugin Maintained for Foundation. foundation.zurb.com Free to use under the MIT license. http://www.opensource.org/licenses/mit-license.php */ -/* Reveal Modals ---------------------- */ -.reveal-modal-bg { position: fixed; height: 100%; width: 100%; background: #000; background: rgba(0, 0, 0, 0.45); z-index: 40; display: none; top: 0; left: 0; } - -.reveal-modal { background: white; visibility: hidden; display: none; top: 100px; left: 50%; margin-left: -260px; width: 520px; position: absolute; z-index: 99999999999999991; padding: 30px; -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); } -.reveal-modal *:first-child { margin-top: 0; } -.reveal-modal *:last-child { margin-bottom: 0; } -.reveal-modal .close-reveal-modal { font-size: 22px; font-size: 2.2rem; line-height: .5; position: absolute; top: 8px; right: 11px; color: #aaa; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6); font-weight: bold; cursor: pointer; } -.reveal-modal.small { width: 30%; margin-left: -10%; } -.reveal-modal.medium { width: 40%; margin-left: -20%; } -.reveal-modal.large { width: 60%; margin-left: -30%; } -.reveal-modal.expand { width: 90%; margin-left: -45%; } -.reveal-modal .row { min-width: 0; } - -/* Mobile */ -@media only screen and (max-width: 767px) { .reveal-modal-bg { position: absolute; } - .reveal-modal, .reveal-modal.small, .reveal-modal.medium, .reveal-modal.large, .reveal-modal.xlarge { width: 80%; top: 15px; left: 50%; margin-left: -40%; padding: 20px; height: auto; } } - /* NOTES Close button entity is &#215; - Example markup <div id="myModal" class="reveal-modal"> <h2>Awesome. I have it.</h2> <p class="lead">Your couch. I it's mine.</p> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ultrices aliquet placerat. Duis pulvinar orci et nisi euismod vitae tempus lorem consectetur. Duis at magna quis turpis mattis venenatis eget id diam. </p> <a class="close-reveal-modal">&#215;</a> </div> */ diff --git a/uploads/avatar/2.jpg b/uploads/avatar/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 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 literal 0 HcmV?d00001 diff --git a/uploads/avatar/3.jpg b/uploads/avatar/3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d040e8ea70f67ae030df1e28087fdc048dfceaa GIT binary patch literal 56594 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 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182018.xlsx b/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182018.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e211e1017b7a0a76fcebee3d394019898674e7fc GIT binary patch literal 3317 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%0Dvv1YFJ?CGD&d+fUvX|D5`$lH|ujc&O g@nCUi<leUymj6q2GbAH5EdT&WeVVCN72Uh;-xN?-vj6}9 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182038.xlsx b/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182038.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e211e1017b7a0a76fcebee3d394019898674e7fc GIT binary patch literal 3317 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%0Dvv1YFJ?CGD&d+fUvX|D5`$lH|ujc&O g@nCUi<leUymj6q2GbAH5EdT&WeVVCN72Uh;-xN?-vj6}9 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182624.xlsx b/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182624.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e211e1017b7a0a76fcebee3d394019898674e7fc GIT binary patch literal 3317 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%0Dvv1YFJ?CGD&d+fUvX|D5`$lH|ujc&O g@nCUi<leUymj6q2GbAH5EdT&WeVVCN72Uh;-xN?-vj6}9 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182632.xlsx b/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182632.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e211e1017b7a0a76fcebee3d394019898674e7fc GIT binary patch literal 3317 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%0Dvv1YFJ?CGD&d+fUvX|D5`$lH|ujc&O g@nCUi<leUymj6q2GbAH5EdT&WeVVCN72Uh;-xN?-vj6}9 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182647.xlsx b/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031182647.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e211e1017b7a0a76fcebee3d394019898674e7fc GIT binary patch literal 3317 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%0Dvv1YFJ?CGD&d+fUvX|D5`$lH|ujc&O g@nCUi<leUymj6q2GbAH5EdT&WeVVCN72Uh;-xN?-vj6}9 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031184156.xlsx b/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031184156.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e211e1017b7a0a76fcebee3d394019898674e7fc GIT binary patch literal 3317 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%0Dvv1YFJ?CGD&d+fUvX|D5`$lH|ujc&O g@nCUi<leUymj6q2GbAH5EdT&WeVVCN72Uh;-xN?-vj6}9 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031185609.xlsx b/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031185609.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e211e1017b7a0a76fcebee3d394019898674e7fc GIT binary patch literal 3317 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%0Dvv1YFJ?CGD&d+fUvX|D5`$lH|ujc&O g@nCUi<leUymj6q2GbAH5EdT&WeVVCN72Uh;-xN?-vj6}9 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031185645.xlsx b/uploads/excel_reader/2013/10/31/Basliksiz-e-tablo_20131031185645.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e211e1017b7a0a76fcebee3d394019898674e7fc GIT binary patch literal 3317 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%0Dvv1YFJ?CGD&d+fUvX|D5`$lH|ujc&O g@nCUi<leUymj6q2GbAH5EdT&WeVVCN72Uh;-xN?-vj6}9 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/excel_simple_new_location_20131031181627.xlsx b/uploads/excel_reader/2013/10/31/excel_simple_new_location_20131031181627.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c7c1434310641441be495e97de9ca38b865cbdbe GIT binary patch literal 3120 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 literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/excel_simple_new_location_20131031181848.xlsx b/uploads/excel_reader/2013/10/31/excel_simple_new_location_20131031181848.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c7c1434310641441be495e97de9ca38b865cbdbe GIT binary patch literal 3120 zcmaJ@XIN9&77ZZ1gc2l>V4*3!NfA++A`p5RKtO5`Oz0&+T41O`Xwsy2A%Fp87`jqb zLXjdM(gYNx3=GmDh%a$w9*pnlx<79D?%v-y>#V)@HiS`~00HRe=m77vZ8ZSL046=7 zk&-A6Z-kEv9PaBQ`Ryhxfp$Y;Q>WdtrNB{myIoAsDJIuR0lM;fXUk^)mBFU%2{|E) zcKJul+UspJ9H}WrUNn+GpycU%I>}uzln5Uur!r;R3PrT17<;b*+unXlo*1V1!aRL1 z^*J^)KZA9TZAWgBRT^6nFaMkf<^8d1fWi)Ld#%QzGgH>ukxp9KCXHdZq!WVudScNg zgUuKwBbKVONsdrHJz*iyFqmdTJ-fDdiC%EpkUB3C8Cv8Bf)!rH*@#&nWSFG{0(G<0 z<A9OiQzJ2F8^z;djZT(zi}qK9Any2OiBOg<s;y-D$}I;{emW>{AX3ciKlW-hh-!== z0N1eexouC;TphWw*b!ex<P!u`zBe>=b#$oK1V2#8`sVYZP%MVl4%)%tKg~o`Q))21 zQG-xdxGyitkP}f--nX6h+}5Q?_FlhD=-4|0hw*k3RLIR0$O3~aDB5@xY8g1sdMQd; zw3w%w{>hjtXW-c?UBQFX^Vxz2_Vc~$BlZsP*vIzs&4SLIU6brfon1hfH512pdM1!V zA>D$BLq)t6D&+nqHdtn~`6ST^_vFSRx@x+6HslL7F?>H{<0bIae!Gdv-Uu)+8<6$o zVpXNh`H3%#3n)VvEnN*Fn4^yZ05G5i01SVq2+&`O@Nu#ChC7+~db_&c@*%4sI9W|U zLJAaRFvokd3Ds-o5HFl7rGJiRIq8f<j}4XInK1v7?ho`WVWPlx-Z{Im%mz&RyZyGW zgHO;-+rOA^h(Jtka~8bo&^TjO_Q{x+ax2q)5YGx0HI)#lcEZe*s)^pwjIW);^`0oN z*+FA#UocoQK7M(<A}3%>PrT|<HkJG{&AU?|<H@Fuwk4bS8>tLxWmfR%RqF6x(j==} zh*YVWDeSOud-iTfxVYe6^ue&FkAmixC5{D8ne3WqX{gdnXbp#NynCn9hhf%<gva|A z8xwYwb0!YsuHTEj4C7aj^{qL$uGXvgrl*-0qf)83H=^VZES@D(cV$)QIgv!nA0+yI zOda#z)cFP=;omrGP3?Ejkz#$8U$AaR%#*7c#>HaJ-;EfBNxs%;<&nj3hQ5#&Ui^q~ zeEw)s$E>v6T3L4I;Qe5HAv&`}6>rBoj_V?x?W6;Zh?@t;hUP41<G~jV%wUnf7|wG; zL&~pk4h&M}(E<`F)f(A>GueUaP>8BA>Lrco#K*d{QQGmHE^fv;KWS|S@4iQpSB)Qf z@=X~K#o^}A7x!Q3qYj_e2{f%J{)!mpZRAgN69~W(e}!tV5nS9U#|#G{5)JuWW(^`r z)h!yjiM<(n4K%nSHN0u6VrPlS-hltiCf5XYk5lE#$MCP>!~lPb`uis*`Q9i9K3qWt zI9M1ps-F^nz!#+@(vtpl7M{@^xoI6k@Q+Y6i)ag|!LhL1SQ|mkiD627LN88RDJ?x4 zq<FJs5E%Q>Qnh&zwfg9UAGY4Dp*_0|>QRVeeMwAm4^ZiPh0vHU+kGoxc8%bQ=j5z? znqJF8K~RlZLidOIbFEfr)NcGPFV9<HG&YRa@3qODXm-*(%uAoRv?^_1A?*+XYB6Uw z{w=t)Vm~^?Oie-mpyl!{ueOi<(mZwVJl-PXw+o&|RTSH%XL0DlrpwXGS2RZ{%eT{; zb^26v_$&h(ArsvVGsWfHjT_c(;hoizf9~#SurBR3fX(buJ|#Z<%uLpbu#jKdpCp}# z|Fq12N5<>m;eq((w<-O%JEfQ~`F87eK_1iYj=qK3l8!G4U}PX*+=$17z>=O_>Y*a8 zM_HO-jXWqe$cMY3c$J3K1t38Z<AgNOoZk6rmG_%V`@yxz;VC<%{_PqPlB(Y3%E(X+ zWnOhf`h?w7f>NoF$z5IMa#wDijUeO57^OdDPI1by`D)9lsy{eoUda_Xc_%>7$%}>G zG)->fWFL3?15ttSk=V70dS>i})jvF4^q4@nx(gJv><}<@ZrDv1AN~mE1h!?gk^-Zq zJkqOXpbWMyXFqA3S3F45<1oCJ_(CystOz2BT3HI1L3Ib2;T3jthj)RQgTu~zZ<YH@ zd*0f{Rb0PPEK+|tKgx1zp=~kYUI${a=ksue4u0Pm)`Ap&{VSEQgER5QRE9x{@a?Wt zLrdU0+Gp(RkTu<WO{{jD3YmGfMYXq=NzA{Y{8^Rq{KdSjHyr8nt?~WCzXbV9b#lK> zmlP`||0#;j=XY0g)?~e1zK)x}T~XC4(|avXFS}qcJ5v?y&`u2uWayNd-BsI(#s?Um z)>1BWDX6$@2)5aDgfg}G4gL-+ut0A4>##A4J@<6+*pXDU6jp%t^x;(bAas00BZNQ2 zErMAum{4YL!Ah8)S;-3Zh-%r!W)|_eALHL?np;ZI4WNa6u#MDVGpDA-S;-t;PyZa^ zyO%n(A8&N%xy%e59fA}T&xW;u_z4l?_`Sl1pWhc9$_~X+73B~JBi7AMoK@1OC2%Wo zZ3jZ;M+mr9IYHXJ+)w#oB>nLhIo}AuCaST7OM$MEd_U_+MmVD*QzTZ}9<c%V?F)!< zOTo>oq16WG_10TP)<Xu~+Q$)C0Hm^{xRy?(QK<zSqid*NTBERt8NPin`5J{NO?jnW zK)ZI&DE*f?N*F8T#Flgu|B~9aA|WYRBRePIK+G{^#`D~(^URwzdFzd#w^X;=ovOEJ ziZSqcgUto3OCLLvMYGbut-DR`hG;&&{Gp!Haklh!*pqV*8vtJC(5vPS1$nEkgDY8& zNE<o-Q^V#U{b8ly;qD7}_q8<*@Pzx=kPERog`lr4%^F40fJ>8L-CPH_Gb}QrG%E%u zRqvz7+*&Gorls{ArUwk-s><>|BxKazdo6^n?NOKL)=YS%#SkxK$;E{Y%2i>)m!64o zX@3xdo#K1(ddop()>*))KbhyX^b(}{g)bOm+6!JO(GvuWyIFo<a;9e-%_ts9lNXlJ zJhdsIp??lF(b4<3VRm%kvX+{G@zfuY%?~xz2WGhEl*U(FLhG1-%s8b$W<QCM0)~<+ zlQr1~H$68lzseRKC_+bdB(makJX(Zi?g(t7y4ZR~>jw(-oH=pVj3nsNm9DbfT+^UE zmv!m9i*3W`?!`+_cUL)}>lI?N#y9eK3m=ML;=X=Z?=IPg2RSF<4-8nQL-#(?l9?TM zydc6&VpWQYTx1lKAi&XNd3?ekPnQ42kLJwpvm9@><Z0vx>?Glmvi#3%@_mNm7EEr+ zN6;g!nw;UkE&BV=;~qlx=pzJ>{QU1N{Notk2OlpmvdtXf6V12aADGVfd5)`>T#iTJ op!-*Gejj-JaLD35!XYW}|47{sMon5706<H+I!LE#!9afd53hdhcK`qY literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/test_20131031180233.xls b/uploads/excel_reader/2013/10/31/test_20131031180233.xls new file mode 100644 index 0000000000000000000000000000000000000000..8a222782f7d1d0478fa527968eecadd8de129c17 GIT binary patch literal 416256 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 J|0gN%e*kZ7qD%k) literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/test_20131031180332.xls b/uploads/excel_reader/2013/10/31/test_20131031180332.xls new file mode 100644 index 0000000000000000000000000000000000000000..8a222782f7d1d0478fa527968eecadd8de129c17 GIT binary patch literal 416256 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 J|0gN%e*kZ7qD%k) literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/test_20131031180358.xls b/uploads/excel_reader/2013/10/31/test_20131031180358.xls new file mode 100644 index 0000000000000000000000000000000000000000..8a222782f7d1d0478fa527968eecadd8de129c17 GIT binary patch literal 416256 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 J|0gN%e*kZ7qD%k) literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/test_20131031181023.xls b/uploads/excel_reader/2013/10/31/test_20131031181023.xls new file mode 100644 index 0000000000000000000000000000000000000000..8a222782f7d1d0478fa527968eecadd8de129c17 GIT binary patch literal 416256 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 J|0gN%e*kZ7qD%k) literal 0 HcmV?d00001 diff --git a/uploads/excel_reader/2013/10/31/test_20131031181238.xls b/uploads/excel_reader/2013/10/31/test_20131031181238.xls new file mode 100644 index 0000000000000000000000000000000000000000..8a222782f7d1d0478fa527968eecadd8de129c17 GIT binary patch literal 416256 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 J|0gN%e*kZ7qD%k) literal 0 HcmV?d00001 diff --git a/uploads/file/projects/4/20131022181249_mustafa.png b/uploads/file/projects/4/20131022181249_mustafa.png new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 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 literal 0 HcmV?d00001 diff --git a/uploads/file/projects/4/20131022181504_mustafa.png b/uploads/file/projects/4/20131022181504_mustafa.png new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 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 literal 0 HcmV?d00001 diff --git a/uploads/file/projects/4/mustafa.png b/uploads/file/projects/4/mustafa.png new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 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 literal 0 HcmV?d00001 diff --git "a/uploads/file/projects/Deneme-Projesi-1/20131022182140_U\342\225\240\303\252G\342\225\240\303\245G\342\225\240\303\245G\342\225\240\303\245 .pngMMMMM.png" "b/uploads/file/projects/Deneme-Projesi-1/20131022182140_U\342\225\240\303\252G\342\225\240\303\245G\342\225\240\303\245G\342\225\240\303\245 .pngMMMMM.png" new file mode 100644 index 0000000000000000000000000000000000000000..6d040e8ea70f67ae030df1e28087fdc048dfceaa GIT binary patch literal 56594 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 literal 0 HcmV?d00001 diff --git a/uploads/file/projects/Deneme-Projesi-1/20131022182709_mustafa.png b/uploads/file/projects/Deneme-Projesi-1/20131022182709_mustafa.png new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 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 literal 0 HcmV?d00001 diff --git a/uploads/file/projects/Deneme-Projesi-1/20131026155353_1382792004965.jpg b/uploads/file/projects/Deneme-Projesi-1/20131026155353_1382792004965.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ca4657e70f8a2c8fd02d848fef4914c0f7f75e5d GIT binary patch literal 1342286 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%0Dt+O`L29twXsQ}w7V;C4&@EWAXlGw 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 Bndkrj literal 0 HcmV?d00001 diff --git a/uploads/file/projects/Deneme-Projesi-1/20131026155504_1382792081329.jpg b/uploads/file/projects/Deneme-Projesi-1/20131026155504_1382792081329.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a618826337298d79e2030537007cf096f6e4a0d9 GIT binary patch literal 995548 zcmeFYWmH^Cw>H|iyE_C+u;A_qZVB!rxNGpnLjnYMch}(V(zr`-r*U^kb36Opd!IAD zd+r$Dy?^eXuSQqbQ?qAP%~@Tm*E4HXzx;aHG~Sl-urdb#l#~EW0000PfC+;MfQ2Fi zXl{VP`U}I$s=oukVE=_tq4HK3TmT%jgn?!N4C!CGe{eqx*}r%U=Jnq?(B5D;{_S%P zhVw6s57l3S5&Bnt3XAu*KD4L6<bUN?->m@fe};kP`w;qnFj^7-fSwGM0RT|rs8#IE zsI~v9K;QnT%Klvf0G#X`T!I|zf}Fh696W+N+=AS^e-!^obb+b=*bG}4nDH-e2zm8i z_J=V32g6(g0MP&d60|WqJ0~Z5G~7SFz;;B#|BI(%VE&^60}BU;f&I77y;yj_pZS9t z2zwff@UQ$f7V%#UiADOaabuDH#?VHwD1T!TC`SE99}Y45AA301*|TB()`5<Y4g1er zA+cw}{e#iFvJw8lXgYcSY5Qlw0Qvv4{exluYutRe|AyiJ9Tzhn@xRHb|MHy%0DvQm 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%0AQc@3DP6*_+B)~9tf7JV za;L3Zk(_NY@yPN`pD$#1;M1lJf--U6G@%=C+He5xOEQzU=HT*iRbrl-4UMqCi~<1} zH4}dAzZ_7>9I=)Uf$LKFYREPa>>IsjQt1iFCdNh%-bU4Gfm%axf__CjRi;L1IOw9Q zDG~*6-lWkTv??o_>~!dx8=U%k8frI~0Ow-$%`~!X1Z3po;-y*BVA<)&BBpwvTiFrL zMn)8_-gkC25{;zf<0m_fOK=-+2aNPJ3*@%mx#vBrNXJ6gVoPX$cuW5P7b2yV8+wz$ z>7Qze@<QMc-E&fc+?GAFidMVOhEtj-%57}E;(FC6;1OM?$WkThJ!@af60Si6{{Sk2 zay;OqZVGx+Tk2Ak(Tl1=E$<v{AsdjUse-6^8@;Qe)U^3EYdgER#At1hHW{(In&ylw z2`BG&t7_z3O6Y2$#8?i8lbQ^ekD=Mxk%wM45-IUq`9qWrG2W^%zU0NLwj*3Aj{*AB zme(w@uGVMmii7NpC=vwubInO_lyi<0e-W#4<y@?;WUkq+$-MK&si|X>g=LSHUZmDs z7wI!N-H-_6Rp=xI*dt_~YX@W;%6gC6z0{0{q+P;emid9{KrFJcU}+XlDqNq!h~4Ul za!DQDfg3fHKwxJi*0juJbqqFuItt3r6{XPai*Y7STC|$sGqs;A4$^U6oEm82a(8-* z84`Z)aSct7ZAOeC&jhjKijp`4OiwvI>5nT$G7w7H{v$+|w<h<{P0C*bJPx!6X;_28 zgN)~`HCaJ*Bo^nTEJ?f$dH%IFy3`wO3+02(120Z}YPHbb>J@ndHD*b~OSOi<obgc^ z6_uGzQ>Q&@l&zyQj1*&`PCUAT;D*V_6*$6@fPAgfG=1Z{sqai#85j~b0(;V9eaUd8 ziUul3>S{1pw$)7Fa%o+|y9MB>rT}+*ptd~^S{;!*$-M>?EX*)*?M;w7pj0DoIW;V@ zW=tqC<FGwyyRj-&0X*Q=n`#MYhN}qFZar`^eQB&t=05cN25_WuMoxQD2-r7Vl79+K zC%E05ZgIXdo&4)O0t2ZzKGn`#Y93U1AnpK>U0;g{7qEu_W-_Baxvq9t(bTITKU(RG zU6Olfb9_>K-Pu&%iDOAWiH31aTf;dcl_QWU>~;u>HtiT0=9vwmN0v}dPkNaltu%X; zRf|XzXFjxfk|Uht=C4AEvj%12m@uz}-Pa>`YS)$WmvtqvPDGf1$D!#?DJhM33+q;f z)(?_dfu#w#w;mJ<n8wUc@+mA$ymOL2y-W5WNh3S6p0#loaU%fzYE@-N7#JAloW`HJ zos93Ww2XIfPg;}vIbsR44c*ONU>%82Nyi?Q67D3E)`;qZn@tL`*@ld%7#Zrc=CBJA zpvWk^W~Oq?hp*C|4)X#NjIih0u3CcBXtRc9h1r-g=bqW8i%9L~Ia0;B-%f>uq$wCu z4?gtR_L9X}_#E%7nzFL!4O>;dpO^eF=2+qx+E|gsX_1Yt%sJh``c#7^GOTxG@O>#! zPS6jf238|dA1XTa#Rg?kdSo2tra-Z_@%O4QqE>C{HlDbuU0*`&ZTB3r6Z`CLVsV2= zvM|Y!g0Dh7C`Q`bSEp>#%#IGiidI9HV_92KyFEs?-}x}d9OtD(!_0LgV{cq{t1*!o zaxsEBQ*+0qZl!cXjo9NLSct=JJqV<L;1%2nJ$-47DLi%*)sthAFu#RMS1Cr{G19IW zZ5$t3Y=bi(2M4`N^173Z`WlO2atP~DBvfsCbrZ>wBH_MZPX?or0Cnm3)tQ`_RFjUt zd(#?2AV}680NllgIi{~+KY7~5b?PjKcEtywBdt?=xQi;4S0lf1S`GkgvBLTewVWka zk=bKWfyUw1vy$q_YWk8xC}{{PaC#A1&|CRX2R$3svh7J{QbsezD`FW!#j-`-7oa_< zTH;c^g2|Z?bJ2PVZ^+04e7NXE12P^ssZ~{>Vn$C&w2`MZ^jZ<3?ieZ?AH_{oF2o}7 zj=7~0tbZ>wDE;z)IBx!wJvJ^X$+5wXcAi?BE126Xe=3-tE+%yZ?I3Qb3zy`aXSu46 zb|mkoLPBLsZ6_y;&|_v2$Xj!-IX&s3QeT$NdJ#kJiHd?)XB87oy?PMRTCSvqH4*P; z$!>5dhluy9bCK49HmS(Yd8c`W;Mh3>o|U3x$C>NYB;mS@im?;zx7^%07^<Z1LRSQ_ z7zedF<8z|((~c@0uI7%*R7G(q5f$<`h9DNtN^}Yd-1*zs8fkK%DK#TX9X8{da<<6H zu9qB8ZE}Z`QOGx_1La}Y-j+Drl0h9hQnGG4zleHK9eRyjYAn|T#~xQBp=we0cs)f% zKw;=9RhYiefUY{`jopwmN9QuR11zW3obEQLJxQmeu>v>zt~kLIjq{v^#(EkWTM4dR zg>cx;Rga@|r$-2!WPuxJowSaa#&eoRmms2(^)(xsE7|Hh{YFtFFV6(?P!&05VtUk( zuG7H6j!C3HF+GNQ)hRM1Ezuluh~Fb5bmpzIgO6NvJt_~C#t*LsmRIt~An(ruinh}< zPVZ6b%s?%LKGf{4-lqeoG{Gv(mBuqhHjt;Bdeli=Cho;oD<J@qr?IGumz1$XwN5(J zpozB~qz=vRQLo5Y46!Dfi3yXw*Hz1fX5oIc&zLyKEZs9sFz`14^8CXzv49z!m;wfA zw5_1qV`N=`l6umI3b@8cQ<`#JEXB7j<p;eJx||R`QO^}#q&0mK7`=G|8T@Jg0B7%$ zLWN>Bo)4`JBF5oE6H_ZPFR0k!Eg@wX1Fc9&2P{d)JW_eUu_HJq6g0(KXaxMEWY%}S z=Cis>zM``Qd@|urdTes}ZNNKCHKl18L*oiNQWo9RXFOu5M#jzQZlcOrkd?q4^G#P_ zjm(D};B}`XfyQ&5)Vq>5&N*R@lsz;@BP0)#p5~R8b}(`Erum5Yz{7h}iOxd|0p6O^ zMizF^Y-M15**T>Wg2%5k={`_0yti{vw0>HG&wx)+P~UycE|84njtRyyNjBJ#Tb6FX zR7@5iU7sM1GgKwId1S<7fIFJPq|`Pyi@MO3=Tu9JaUu<}jHy%Fvz=v?L5+-T4t&5l zsic9il>vd|=9;cnR{(st#c|3`r&FcI%IIaCxU~-QO46}AncUQ7Q1W?<GNAXVJmmR< zkQDmWdDO^C90fj|F<Hh8T->@6IUZ|7fMvdAJ*pL1{EwWj_B=4?1v#NbC3hb$9<>mb z9Ei}7=qu2r2$?=@(SJvXUTYTi>;AB|?b!6MSAnCo1zZ+vbv5N)8$tg72^FvmSLHm{ zrCrQSG45ZO4Y~ENr^ByxBjhnp*~(5UTZt{uAn)e~<f>C&By89%yRJJ^<p3uj<+>WJ zD((%r1_0|_v3lL3&%CuoX|*X_85ZH<nGu3A9Br!8{A04d@R`%Eyd*C58Lkzi)uxjy zHunOd*VJ3-6I@4#nZ7{GJDT&AQRQ327&X}+HrC@mO7gMzxxz72-q*MF_n!U}4Nh?8 zmGA!m2UD+`#?XDLCP<?&N%D++;76@ie;l~E+Lqp8me0&^I@cv7t*yLkaJq~v&Piy` z-UM-0tdQI>Raqs-;4Egmnd9ZwTK@oFndnCaMa3&O{eQqZLGcRST}tvIQr#Xlk`~5( zU^-Ih9xS@lZ!KaH;7c0F!1X7%u71-)y}Xg)w$SgSn>;s?cJuFB9um_pv~6DAZCgp2 z#Zqr1KEl~Oxc4TvrHGrA`LzDO;Qi(}j52Z3J(sTk0Prk&GAVc)YIG!g)YU~1sEo0Z zk2&Zodsotqm8dnNnHJ$!e2C~*X+5hx>fMTN9D9zH^pxb9yn3HCD5%|aU#8^-4ZXtk z0~z(A&K8k@lOSN{j`e9UV+4XKbxiHZB~EF|S2J$!Vb;lvDu8lubJSMFy7^=ljkxDE zTF^xq2*d)z8?oNBk)H}a@C*6Z9a-B;9kk=7y7Vqbu|mlrmg(|}npS6b?6~;?nvO7# z%dwp0#(Ak8McOdn?XNlN>~+S`i()gCO@pp-K{b(l%#Nv?Z5zgVRm+RMODf<Ft?O9# zcYtkT2n=?O)!RZRHEFf4XLB}3Gx^OU0C_4a#J(}=(CL06wq{p++vkp%uW29#a@cLG zTbl3>i%f1jS`@bQc!>ZUfz24T7Z#uOs{X!aSUbj1`@aYNW-gnrMSU2V!rQSpDot%z zmAsIoX9t6YJ!^uJ&^*5=#yj?=OLuo+aT7&!$+YfLok11zDk}Q@$J9!%x~{*k_;cP~ zdq`o4qmYfmm0`#==YA(eO;Nx<A?GKhQqn#qY8MRf>MFMZdNLpcijP{>t@SzMbj)B3 z5Zz4`Qg2Pk=1$U2V-Dyrxnidv)H__a8O=|38hxO!Zoc&qm+ask7_)80Xj&rf>?BBK zEs}VvnsWKGg@2c|Qn!EJ9FjBXS`dQQF~~A@bGEu6X3V8~nv7S@8&?Bp>+4Y$63)o2 zwSdX1Q?3&|IL%fnNIOW$?^Qln=!=R?KfL`Hnnz|B8@TQ%v8re1`9aS<^&g!igzPzQ zanh!Xa~wHV?UU0r;I`wj>pP^bIAxHW<vnSR+ke%N2dAw_Wqq4K8%f4$FDXl5UknF& z(l*`hHL#HW^CfVMIup}08N`!1@A-oA0OFPR6xd3Vdy0V_mA3KEQUyJ?GhX(i{Jn{> zHxu79#%-=ZW4K`8inLrV6gLdLXd@~*WO2LJlv=*MO;>R(S+<bdw-QJrrAQcUDpV8K zB=b!Ll0eano|!!<{{Vf9I^g#-rFlE_A;(d}4B0<-ILN0+rC*2IxXwVP;28YHJx_WP zLm}GS40Wruy#|{IobGJ7bL&yba2Fv#RqjnAW+g42rxhBgm<N%<Hh3Pi`E(k0e8jUx z?-9WpP7Ne*vJ`h1!0A%347+p2a43-O033`D&a>BGP3V}JcLZ<&sn;nOOn`futrk^> z7|%JWR%JZwC4uUD)n4Ovxi6O#VSogkxuPP=k`D|%?K}ei05XB|b*6cPJqTWuMtvEa zwRRpEe8727O;?``fM+Y6z~+LhzvYv5e}tN3iI_shFscr5Mbmdg{6q}MGPy0zc<D<S zW|U)vJ?VsP3ZP(Psi`+GIaMDuYTq`Ga@<|4OxDQFjGQkg>qKL1!*TNCG?BY19o<OD zp_nQA!#K_=8?&<|CbR*706YwHNLofvse+{KY<g4K(nSFQF5PIC_dqI*yN(+bJ#14= zyP%vTNw|Z-#}(%P021d9dava(2aj$*uSAsPST+?p{MF~*5ayaQ3TI-n^N!+_m6n3E zl$DP!n5slb$Tbotn4r1CRMR+Sa0YTuHC@{nCm^0H7aQ(%-<4RErd7g)C;h662h7hx zY3q`?H5|F$xF5o^ci9ss%ds(Bk^#?fX;HF-AHC{mX;j9$Mh<XuN03<VU~yV%jT5@C zvVQf!3)-Ixk-16x-n6#yZVW*MSCd7)(CsXsfuE2qDN4fWaYjpFNm3}>8=io7H7>z( z7~1~;H>nsjktqOyh69R(+_e?dhPJ}$%DLmcNiH2YTo4W^%y*wm3{uR2VOI^34LA6L zeHmThbMulJM`PBW13Y73Bm<L9T#_4%ij2m5<yB%vITcCX_hr2hGBT3H8gwUdV!+^x zQE?+~alZg?Dk$1eNMn`lLXEW{r_gdvZOH?6GtDTrS3Y8vJ<e%aqm`vVyA*I<nE))o z6@w}6Dy?!ZDJBV9<>AgoYSb7qZR&cQ)oG(LDx{Bw$@!9<<+I$6EbLL$iR(+Pf$OPd z#ECG=aB|;DbI67=bJsn3)p;Z?*k&NF8O1hFn1EOedeuEuiReiTtg{c7Ipdzx`DKvI z7BB!jmNf(yJLM=cc8|U9QY&td2W<OM-3`0-E-*WlMsRwXWS)1Jp+*-RlS<A|4nAL6 zll^o@4~+WNMXsQmPS5(-K^a^ejCJCpX&L4x2d_g<D6TOZV~kP>NsUzS!;IEaU5xdU zBrZ&-bDR!pH)AB2Xz)F0$(`9~_cu-{CnRLXxb`)s+B0h;tVCjAD2yq|8-d3Z^|vYx z<_t;6%})%9!xFehBBEr;Id%Ga)Y|%u$vw0q7Um`lys4*LHt-vO3BbiULC*&Z?@e%- z9Pm9UH+88IchrVe2zL_Oh~<qqleHXmBRL%nILNYLF~8JPB$xMMB*0PM(w*+C#M^p` z*89-1pP2TjHnQ>7rhUOzX(V^179sazEsSE9LEh_8B#-w;f;-b8+;FIbuTpbTmT3S5 zNbSW}j|$8(er~jUTd<0<FCb<F9uIGNYvp5Haz=AQ&9#&TI27OjUz8k?-nNSFgKfxs zkik@sm#L?+g$%%8pGtAgPIJ<rMv=E}Q?*V-OIqp;IW0#5%^MC!Bp-TX0E^og=~GU? zV6I5&)fC?{gWbPMpN8Fs74GUr?;n&fHaOz~m0(na$R8k&x<@&u#LKal7;~IHDOzj* zq*XSXvJ-u_BUcT<2ORaNql83RnoOwe?NUvQGhpN1gS4uGI*N~ZXo^p#ay`LRw(pek z4LN0Upn;r@^rgJuLvnfmDKqCp5d5SXsJ`NA>p&2)4glPG)3TW%@a^qDAvW%APZ*?; zP)Jy|IO*$6-HV}8=Gr^F2SS6O8Q}eEB1j6fgfQz{!c=|P7~76&y!OztmQ%>&iaFa> zV}em_z0PbM<m3_CCZB0-=0fovyNSuE?~$OJ?(k1j(xDF`wpXX9tzzxCt#@WBZ-I)j zDi0VnYTnY`dqaZjFwQ~mRh%@Sv2VoEM=seI?)kBb&UU@b+9C3i9Dsxo&P8bH&AvBq z2qOlgy0juFWmet0?+;3~VpLmP2aNpK3c&QmLWJA*iC2b$q?gQ<NjwUBG)e((=kcnu z$*^q+l1~PWujQ}|0dbFUTShM9m6|)>3(jZL!i~Xmfx5QijSg2GPD%F_jo}!TG-yd; z#D5iS#z~NE0|z;-$oU-2S?Wj$c-sxnO022@`SFGr8S7I>4&ACUPg-W*F>|;by)#=a zMAAv7MpaS3j2+B*%@JW_lWEU9W}ISTH)Qin^AuxeCZ|=got))lI6x(JU_l*DYB{7? zS-=><<BFMN8#f@@b41RiwmJFFAc4TBZ@%WP_bWT5aH>JZ+Crhm#^ccUrBLqtfCpkK zsh4b|Hs&mFFe;-Piucs87h|G`^Ydh}J*kVg%y2$XN$XBx;~f0H{b{Ncu|wSTH4jEh zNoqvOV>vh@+L{jGfY=_@D;15%#^oIiRVrsz5t0TuWv$}$1lGg$j1!y?In6O;1Umq5 zqb8$74t54(fz*n!BMB2GGFV`mF0W=9Eqa`1imqCFi*i+PV<ZmshA>F)-nTqhe2dF} zm-sPRAcDUt^4_)E7L-@W$+degKh2TI=p!rELVrqzHr*f!7~}5>nP4lsc;~h#;|+$` zao5(3K4tQ0psqJ3OcBjSHx}UYNDBkIIrYs-@r}F0faLTP(<fW%LU#gA?m^^Yo(Oo$ z5J2>#K%x0O9_Flos;BzYx2^h;*;IlKPylm|X=86K*qolg3X(DAZpJ!f(?JvClAs>7 zE?0J7wcnudSgsI|ag0=ADFNKzu6vr5oCeCAp4A<}Ym$M!>Kx;_sk^<9{zIm1%k!UZ zDInZ{a5j_2H0Fh!h8GKr;F?gOf~g#>SCchf^}a-N01nVFc{!jt*movJtvKXACpq<@ z<roQ%&XaAKCeYZ?_Nm|;o+)xnm<mXtBQi_|ao;p1cStk4<~THl*27`>9GA{LGfM75 z;F6&GQlzD1%P3=>hJh=z!+M1|=~u4gy>}rh+2H3t#a5A{DI9yjW1eY`xunU!UrJY( zVylH*^yyID#d~PPlW@pUoOLvhxV8%5W34hqk^cMOpGuQ+mI}n2_cYeRi?gsKXF2L> zHz50cYDXbk<?4ExU?7lsk6KN$saSUMpeX4}u%0uH;EH20-JI}x3V8V<C#!l>Zu=NY z>tT{1!65JU%`8#{Lh=Sy9RQ_VoZ}QnpP0897|H2M_RuwKuQCQwz;Z`g$Y{)YCy`qY zf<=9VlA}2FtjmQb8*+!bwG-DyQ+L#j94o6iA#>DL%xqn^DcldOVK?u#gPp_ErEBTH zi()gJ6U}39AaSxRi2+v6%E0lCl&;LXeGjEZHzN$3igSI{J&$_TA{S;p2+4ADfOyHJ z#=sPu<Ef;H_BdnDY*I|CF>#age|D2sD);I%xx)fZ4{8xW5@eO!Mk!t}Ujrm!l(RO) zY#(}iA#Ai55GHviH7WqdJBCNCGEwMo*~JeTQVw}N4I#G2J8pbuoMRNQkiB@%tpXK4 zGv_0mie}*G#N^|Fnj({BZ>X{&rUB05%}Wss2&(F=Fj(Yt=A;gGlALGOu381#)O)Cw zHe>ued(?7#p-L&~&S}m}hyckw!1bmXa=QxSp7ky0WqUn;uj^6Emqpro{pv|1Ae;`} zyVB&9005?#+!CjQN-?`NjhozjLLqJ(smVAa-k%z~48{VEq*O}VzD(gs%`8v$c3@6H zs%rWXEp@O-5ufiV1oSlV`?M>Zk;l@TB!vLM`eu?)al1WvBB#i{RMx-NqN@-|$v;{) zoyT_>p-;>Xcs{f?UD>%l^rZA;w|f$wEfXCx-l1cXNa$&-{{Xt$M&M6VPLF8gX%yC) znXR=INjb>rOP`nkJ?XL`01n5!CejF9+m3iNd6#{4CCd^vg-rF`MB@*D{QFTFncV!n zDUvSM9=^2GY1n+%UWBnqs)TMo{dz_H*(3&LZvK?Wq#Jh-2+vA#%&e`GgV<F)5S99F zOL1_fO}$5YYP!gB00YqXsJ0EGBRM^3NkD;Hfu0DW=+63FdwhVlK2t}TvO-jDQ%GFk zD!AHDR;H<B`94zP)21l3^+QST{eNHNN>>q<BP-W5z!F(EDLL&@JcDAWT;nAAR7y8V zyBGtotW=*;`A0BeCOcEr3prEx&}BS=GEFi!+E|?Kqg~N0gGP$Pl1EHa6`5bx9Mr1t zgm#mYj1NrIVUr=_IP7s+C#8k2QbO^lFP+1-2TF8^O6~4@)Nz0#b^~y3#+4nTMBZ{u zX72SLD_Y!*P%Xkp#N~L!Ok^?;3E<Rn^Dr;a^#YVkh<7TFrA<jANUM_;G7!D}>b1@I z1)(?$z0F5;d;!QOa}L#<#1=c0mOtLENmagx(hyDEj=PZ0wTUjhhfGkX2(CHj7^#ua zrqVgaIi^NcLvPLj&P8)i-q`9%C3^x$S@1#nR8zcQ0<H-s?uv5UM=Yu!Ry=aeRu@l) zCCDNEwY?Z=sxg&Cv6^A?N0{;DSDMbfk>!{-AY&L6yQvk1)s(Aq(2B+z85DZ@)lFM- zs)FWvjE(}yg2yM;u3K55AQs8>6<pzl6{^fP0ul*Kvv3&H!d~{f7gaSDTk!N`_>MQ^ z2*Lbo(9(ZC-cLA%kaD=MKJd%Dn$m^Z5U(YTcXC7J!cmUx-nI7B{phBAE-fy0`;59- zquLnYj8szPH)c)6xdYmtfYUK@a(|^G+R1w=m|}NSQ@DY`{Y`YWZ4tv2e>b^G`qDew zHCaP4B!RK-R;_G&Kc^&Rba<z_5_ydzhoQ$b=&d9>(;)ZjR#G*1)tW2<NjVkgR>IS( zFWzc;RPj@!xnRqddd8g$2khPy(@PR@B(Z{iwLE?|)Z)7^rjw?`0^~e#4AxOkFaxxO z=m@O~SG0pt)8xL6M6-?2r7`{X0Q9V05}ZC5+@G#g=8rVDX?^U|xAESl@J$k22;I<) zsTdnty`%PJ@eQwuJ|pSA7uVv`zRxwZw@}{9fu(8Gt{0v?O?dB$r?J#^-9uB;AbWi( zMqeU1R}Iq!sQIz!?`wY%bi0Qw8AsYdBNSJ{!gSmzEnbW8*Y3aGO*~y#)LhE_{Fj%W z-y^B`zvAoP7JOgv<d>J0_i<V3X2#X6qX@oQBKI9mN#?jIW-$`3<O9H5RF+UIc0m#o z33oEcSmmAA<gq=?Su6LjfynOF>cz(1>ayP5yuL@7RY`JRdoMDzvj#!5ckfps3L@W< z%udohDbelQoNYa@D#(v&24RBS)>3HR6y<A+3@W8^2nXh^3w2fs<^6D`sJz%5=cX!q zdBYGgK~cqV%}Sxtl8Uk}hg7;<{DP;SN=B42J`^hS+|>xX-1yixd(?7X0Ij_{;}wrA zuc`$%Yoa&2jwK|aetuFb3sJsZzG*B#ZkXt5<;~hdI4zKjIP?{XeRQH?8bGn0gVwz| zP`<|<NnP!r{{TH4FmQIiADw*r<N1Z(i|)LX3XrQt4s)DWyRFLwP)71jK_iS;fNL(& zc#l<miW#mOpzU0k*5gUE`meiN{z&b^B;^(B_-Xo>ir+XSU=Lcvo_CVsLU4Jlo4Ee~ zcQ7r2rm*iVq=2o;ld#|reQW0Jd$Zn3>g!@#7iGVMu6CBgR*t?RNfT)s@y;r?nfu1h z+-I7C^5JftNf2ivgHvTEb|%{*X^R!X$sOs_O75x(jyc^`U=7f6TCcQOOcR4uD4hw} zd5Nd98-lsxuQjn}BQ)qw8?Y-L)a{oU#(UP)jN%K3S(oJpsidx+h6*lrPpA2s)4<zV zNe8tsZDt6gw_kdm=1|;6(T;Ofz}VUJtz3Dm?h5O3^fb25mNj6#%X(C?s?GpzneEns z-gJt0<uTr(2&*Y9NGF~v$-3P3E}Oe$helY|F~?GK>rLQ@&-}Drr`D^@FU^ujTy-@n z0Lr0TIjEGmEn=j-+c8+gpLvOXxD^x=GEFAvzjSz0QOb61Mgs)(CahaYziJ$+j@7HR zw0AK|+Srj)F>VhF!NoQ`#~_S>QWh-_5@37N84B!?93A~dW|FzkmDBlx4Ws2!xM9@Q zf<elY$@Qw}&HPP(4|<UrH)aeE)~OKfdyQ#UB1Q|8;Dgel+(*rV0XY?9L<rnD2d-&+ zvg&gm1E<n}PU}LfjU)VoW1QsDhw@I+1Lvb2)ZvzFvte<LYC#xoJvqszdn*w2^c;tA zA27*Yw5%in812VS4K^tE7ThuEKyr*XV<2Eu$=^mw+dyr^J7*r1BILv}+3(Vt`C-Ty z_oP*Dc9DhTWKwO|)=y1#B!Yd}7&#Qyl}}N~ro}Im3gd(8Qf?k#;AD&gO~G{y$fSi7 zVN{tqhV4xAT{1chWAUfSGf1d%P$wT+U|_@n^8z~29msE62&@44*CRRRoS>N)<F6nN z!lNWN3JVrE=e11bautUMjylygwjZ6vGCC4KToJV9qb#eq^kIRKQ#cMbFwTF3R7tcW zMmzRui(64Gt}JqHVYKbZ;--8vZwDtl)p8Ooq11-$igL38+~gJm9@IT`L)~aTbrL96 z9JgBYzlqQnlEkwyE0BJb=&c(Al~b{}$*v>f6hQ^66Thzprb)>Qn))-zZtW7)8IZQ@ z^fg$%@EZWI^{bc6WR;lbCAw8Vx^k=3;O3H+nw>Z1LzRGL&r&l?GBI)Te4~?6<Zo@` zw+5ry=3vZzQ_u=qy#m+VXqGl#Gm;qK0ap=+*@B#s4_d7j$eF%U6q0!rVo8=r@)h{t z5z?x06|CFrDnet8zqsC&8BmgrPBD@7sZn2PIV=YU+JTI)9Ot1mp5s#P5SCZZQR`C3 zb~|k#78MzlN^DLWIKin5Ilw%V-l48tdIMKPQoOM+-auA3G_o(tl>p%M&suH7ETsI| z$0DnFjpt<NIn7#J+L}XISi2PAq}%0@pI*kKl>$qg_3KQELO25%ImxMJkr;E&ZYwEX zD(r2f?6w0Kn;}3axTeOtB*P4fK%xdxK4QbBd8c#=s6J!sReRYP%GR*1%7}I*eR!xq zRCU|I>%gRyCvk*kIO?LKV)#*#4@2u(rEft-JxeJb@K~-#bDotS5<URn8hbjh0aTJl z%nz+KN{I@Aw2n`uD{IV&O8bqTSJ}{>dy0)l{{X&)o1x;Rdw^sJKKFhpA9|A8h*mXe zpu2rUx56&N+~m};Cz~b*LC-Z#HdMGH%+I}9Q7bbl55C+S)VI)<mo}x9a_TrcO-i64 zZh1J!G}v53sGA83$23hpl_6#wdRA^)S&sMAn|cqfa4|^b0PFKpKJtP%%|?M^Axrf= z>e8|+R!<g2a>tWN$5kbOJcCX^fk@BiO)MnA004a}ORHHF?!}RJfZKkR6Q)##;~fo3 z@`X}4;8ZTmVB8LQ=xJ(<`q+%f!ce|u19Zrzpd=RH`cp{_v*p1)wIa6D$7*iP4d^!6 z8ad^Zugu*ErB_yV`9lIZKJ=1CWME4Z!S6`z<*K5Lb^?`>UZC#ABOf#Xym!qam5{Lq zZzqG=p9(te-OhOimHuekpd@vpUc+|iLM{V74sbcmJTzsvBPO7Uf=EPwgU}Pwtg9gy z2)XqX)|vylW4`m}s2p=s100RRaw<59XviQ8(k|sq%DmNc^KL0in_(xsAdtK_OrDgB zD=7hn@PCMOq>)y4K`6l-j8mCHe87+gYKN|f9i?jxBM*fjDeFXqoRFL<_w}UMWLV!D zOLY|X0aKoxDw@Aio4WHLEYXmvpyc!IQnGQ+IO~dT=+u#)nEKK?;k_58O=D|pWZtAx zINTHyvpMFQ<^YFxMeW|Dc*F7t80VT~t<ZtV;F{4|MRMO@45`zWBO;=bSmDO=)aQzw zQ_LKJkSPR8xcPI8(rWvHT)Pc~`S@kdI}$0E5W6{GGTptY^2xL13xP^Gar14@b5@gE z><;PP!xr32CR^p>oYhu|cNGM-c+FZe6=H`DJ!zr$ACwX6N%;xN+LbP1E~QvyewCFX zY~8SYy@9QXU7kPyAqP@wDJ|r=1OmKt<C?Ve)Xwj7Eh5M&Mt5}0K_X&8tAbCZS-A!o zPgB?$cAaeu+liNJ=O7wt($Hz^sLL&aMOj>hJabwX5PgieN8K9?=95+M{md3{>Jc<^ zSxiVJPbh0W*;xi8E!!2UwYJpJYV6pJId{)&<Wr38EQLo>56pX094RV5IQ68|rDYM7 zV7<PzD(XfuX+@*ZyadlLhV4sz?m_hHT@+4QLI}<~ispO_LD1GPNC_bo(8uze4wct! zJkEJEv?rDF%D{9TYB<?jIOO*gAtFJ72soxhiX(2Mo|S1diGyEofr7r(Y>!G+gf8>9 z=j;tNq601U=iZg1F@WTfG5FGYy^2ZN*BkSF)0_^}0CqbQ^`@kcF;-AiVD47yPH9-7 z00K{1mju|}!zU^TTwsh;X(>U5KuF|ZQ_(j|^L}QDTNyrs?+PuaDJiA$81c8v$L0f( zP&C3^Z&Hj$YP1RRfZj+wb5-1#PVRc~O(fQ#xf=#5$ASpp(kev+AtK(4$C`M3z$&Ov zI<cnh5=c&HO|_vd-)$KLNXawjBp!yI<x%np<bJfT9HKFaww&-Wnt2N7esJUr(@M_c zzc*8a@nItF6_c3)=ku(M><ClH>}zkuva4$mWMnL3n#Z}6r_KH12Lq*g2`3c1jQMXX zcN!Up0OLNUhDOfUTocgH0F$ZdPdlYxcVwvJH8$u{zVG_;5F(BV3)`Awm4plsPkMCl zIJc5O!KBE-)K17^&eOQ|trS5!YD|o!OA(GUQI>aOjP0ibxfGrk9Vw{ZTY?Ge(x;S` zwa`UQ;E;QY7EhQcz#Zw+Ge}vOG4>SLSZ$E)z&$fb$Eh0iBpV#^cKgx=!{j$Td8R9c zQUJ-%Q%YHOV5tw<h2~pVh~o0f!wfQMS^U41N!)sxL_1p}ts-*F7#+>XtlM|co7h!u z4tVs<0zAo+lS?!Jg;Dbp-_n?%%eFC`h3XAbwTe=@x+G;}JF|i6YA}4r@HlS7Q<f*- z=PE~fPb{MXze=UB-ipjg3aTFG-kb98+}UDA1w7!s(s=8dRtTBF8SG6<ZD<!(xP<0K zPzlc!BRU{x$546AF=QZliSrJbrk7tR^(EUmq8r@JtEM+;k@s=}p7mkmk0G$epk7zG z$)~e!7~6sAO{Z~P$cb56LQX*JD9IylJ9GHb2(u<Rs~$i?3lW^-G)qpV*XSd8es09v zN{o#9(n<)!9AwZWMP_hL<@Tn^qDekiJ6q;C>}wQDcGL{J6sYPwX?)fs7vTsWoi=w2 zeqNk&QbV=lWPRI*Lsa_|t!`#9kbep1)~H;7erXt%9XPAg%oM7HIbNo-=l#x062eU5 zjN+xoool&1^VMuqW!v{u^WLr5NMV?b*xqrrs<}8IlbV(X{py}c9<?h&NXa#0RzN_` zd(y;#hdK4;g6k#-&*MtW6oNa}sou!WUC7RN766gyM4^KW3{$zm!ND}vc0to|?N@Xr zoV6buPKmf2jB-2DKP(7igWjAaR!8$2ZyBf%pR`J$gGLX_QOt|!c1{?vJBB?fHf@~& zY#yeZxDHEaYL3*NaBy%A8#v7o)X$qs3bL6~zdc16z{YTWDG=;CM{(AdZsy=}D7CdJ zQU^aMJwCN3ntY&)1~ZUpyM_U7KD4f&^PJ@I?MF5AFGih(S22=$XV#e6l;`-m=AtOg zDzfFUyH09T@{lvmFijq0O3m`2tnIY(+nSO$ieyZak^DxXw%8|d&6PDY`&Z;pFgjwg zdOHd#?!y>_Y?Gg*I!&wrE0c~Y22cnqk<Lv|G~!5b7m?nyze45MNj9`gkaI$?+m53c zrlTFBjDx_<F4B%c#%aA!?{WCcWCBGSl^ZCVLFy_2GqV-xj@298fWQD*y=yjSDQZ}i zgErB{IUj57#zF6z&N5s)gp-A-?BPWoY-~vf<_4-)W^P)jzNPOe<Wdxzo`h8KX;T1> z#Fp#`rdw(vRz6k{f#}>-*)<KNT3M6~V=Qn5Wvb9}YS&{S(XIoK2;O-o(v$uX%hiw) z>OuY{tCqUno{t;NsKX9<C75Fsp$@rWdc|SXE#&S7>S|VYdzsxWSM-c2d^>ur@+z?J zilS_$g&pUN#5n_ZdhQ{Zp+7j<Msg1oJ=BogL?V$ALxKiHZ6{+#E9#FwLVi#O8S77P zoi_XMO<dM3lE&<!ebO^jo@nG4$;jzRru7x?{dN?>%&eIh9OjV_M1_ld&EA07Z1QtY zA$KSv<vi6VeaEbHU_+|qd+>Rri*um$&IzQLDUgG~?M@QmRd7JZZ(351Vw}4VxCLbf zK7O=}gJ5EIv8ZLb`#O2DXK#8h<adrKA==Q9l1)X^Y9z%rOXY*OkPo1tkgA+01P%Zk zW|BD(BN8@C9>ScnZa-dX9PP2QTG(WAxJ43UaU+GPWlj7Mz%>KR(UM&VUECa0GGFe` zP&3}JsZ!e&D7H;=Ce_FtDvL9^=XOEqidLAkfxm>&6d<@E$>f|G=XE*Ni-c^hHRAxM zTn}22g02Y#o77PtW;o?B)SmR$oJWE8iLQHH*wJ@G<Q#4s6WG)c!uJi2x;vVcB9eQS zaHkl?Gge>=&J?L8yCX@n8Pw@<k=iUL)1IQGU`I}sC{pOmM%5k7LZ{3M%o%>Q*q16f z<#tuoTW6LeUobGw(z4^WNkQXaUiEiaW|{XX0aRl(ma;JgLHom+;i;=Vd@hk=V+Bhb z1MgORzc>aM3a2?fwOa#j8;)^S4%p#vgoVL5KD49E<dPmD?lQ4+z>2c!moCYYj8i_9 z-}7(|I~-!TZ-v&(Y_D#J%QU%c`kL>MZHe%uS%De!HTKlyb$Fkh&T^?|HK`iG`@xpv z9{!cAE%oD~MzGpTXJdBxG7uDy5A_vMZMWhw*mAkuT^^69$!}t9@AW^lT8ssXRm&mv zrCO}1r6_B1=%p*BU@o5DXbrKD?L1Yb)1|qNFst)t10uI=?=9k$K#80XR6a9AcdD-; zE>s7~;C8M_SDV+A=~QBsn=uzhnmHd47upXQ<27)2ep_j6E^jTQHrNbZTY*#0e*wrX zCgO5&#%e3AU>i4w=fjMJEmEpf=2luV`6Ey8x30hDXUTPSd#J6rV9`q^&@uN#Y3e>1 zFd;~#^I3*}c(~h&!-D;6^(drR8bFK~kbBU&z3S?dU9_@I6uXzobHamK$~7GMqqp_? z9Pp_H3r}|6%HQx!7&I%PxJe+CpSWV^GgDjWPOeV;N`6vbpr|Z$`NuG_00!I+)p|`< z?p6%!gl)&&r76{SxwKU#li&UrNpuE?Zd;h;BxEo=Rh=fyWN8h{sFN5#dRAOgHg_m3 z&q30iE!URp(S~K}+q+avRFbo0Clv0qMwFUSX&v7rM)>(h2A=kdC>vt|vD9%`U)pyo z=3?QDay~+5r7W76kOe#NykHtRDn>$8DY&(>{{VoFf?GIZG4Do*jAhvHO;?T^X%gmF zUy?T@Fz9QVy1ga<&p<H0VdhUJ58Xm@Nj9xFkYO%FMCWh4Q>9axDL?pNc#3?lrvCt+ z`~o}a%;CbS_2WL3i7`ifNTbvmw|g{-!IgJ+z%@pDp*jpG4f@xzm6o3)$ktjlr}+-K zJ1pg3NGTa2zIwd4-G6q{1DAF=_pf->l1TL1vRH)jSd;iyflDgS6Uey>A;>1ae;e;c z(r2xOTIs+15{=7@0IFTHl09oaMR||QkeSZISLZWFA~a96*Pfk4XG(m@gO?+moL7S< zC(!j>)3WsbzcRw&IM{$o5rK}?pXHdL5ym@Xnz1W0X9tgJtdkKa2R(bxu9IxlD<WHK zcSZyZ)w`(PbpV6|rbS6;S>+{hf!3$I+bqAk`B!Mq*0oklad&zd4-=${7ZtUm?t80q zB5%WErbT98iOPU-I%cn1O)aJEqay_^D&(=?Wb>M}?|Zk^lI49?w*Hya-o&XZU;s}{ zaZqf+42<MgPvZXo45pv0`71Y?CAUdY)No1ktVV#SA1T1&n%j{$-Twez@ZjgA-pAi& zK*#0)DCYv0t-Z;}!5A5(WPV3OjGihbAdt=6<BIv+wLOb@lBnK(@cDY?mNa1J<^*TA zYGSC#8%_^7spOM#1zfMM9qPU=qLaBCw(B7&!{?I6wL5^o1B2^N2z;ZA{LB{=r4gN@ zDnV18YWbS?Shq}X&BoOvdvvETWgLuSoEnpH!7K6(!jfX7E95c8Fi$i;ddU~e-i&Oa zpOAMc83KsUm=NP=Bcbb>kM5=v5J~G&qy(XSo$Jz%heB?ajB`2?p`;)ajN*q+DqI(C z2NcMpMm&R&?M|9joj_m-T;PthT&`d1<}1R>gP)fj>PSeL23#C^Rd$nVWaj{Ps}Uej z7$^sBMtu!N$Qo^qF_9vi?*r1Jl!?>k{`X<cKkseBk@Tiu4aLdMe;iV2qLz)1RT6GH zh)^-jE3WixWS@GDXhSG$mG6qP8Dbff<gm%jYM)e!m6p8<tU@UTPXn4_q`g8Cq+}mT zo#Sa@BoaMAsL@;?3!l!a@1Ub3;+J$r2r#}+Jt{LV&Y=Lp_o>}V0uS+UMOSFjJgP83 z?s=-^(9fwfI45%84CLmgXD$X8Z@H@RDG#|DBfe_i%;k6>6P{}+J#T#i%1cohcFb51 z03GO9*K=b89%@Ggx2mS(DnokJc^Au!9z!4Ds<$!~v=Znfn^d{nJt>gCnZRN@4A6yx z63c?!Xn+?bdV89DwkMlFxtO5}P6lyYf5a%2lFm%<pys<fh>25>7*{3Z_=om1Y#U=M z^dqRKmAP+gm43|f9Y_SZlNlp$#a1~foMdOND$b^|3!b2>atNxf#YWONJxy~b&7sxH z)dP*|>q(f^MjPg$24eV9I`^hrgZ7{SU4(Q3twqN`T95Ocm@4vvo}FrQD!gS#3OeGD zGRC-3^HBnBY_}QcDw_s|2sVwuh*B}Z;;bxcsu`OE@sm-OEO;0Lf$2svcK!bSc&Tr= z?QzI)bI=sWTys`j4=97cJu%j+Abb`)5y%;-q%2`mkDQ(bV<zRG($`UdleKf#p*0`b zJiz3!LOA4ishSxs7<62I6y^peIm<6YRFmvXowP+(GDbo33m?*!CRdOgoDTh}K@oO2 z=}mQL_MjYg;<n~e(FKtt@(s%(^S6weSgtn^!<QuI+M`!uNOCdhPl@*(g+ccexl&dJ zueglF$=^QQRHg{u?;dl>2fZZHFAlte(>~Pz*(|Hq1mw`}(GR*LobO=75uEp?v}q!* z&Orw!)}3&qDh=5nb*9B^;!<(<y5g;S%IwkYag)Z<@(*4?sgb_wHz0AEY@xuyngZ^O zob~I9&GPOmUvi{~8do8C&jeJccZ78%Sx<Uwgd@JfNa>nI1VT%`+@6@EpERt?lzNup zxMr1sU{7p!sifa9jR5F!NvdFozyNjV)iO#-?hH@^&%G*<<$gyxi`cY4bZnBWz57&b zQaKR^&PXRdhLwbKDJmOl@L2SwGPDnXpyXsVYZVr(X?rV{BX<N024Z?*pXHT(q=0ju zVN`^VCOF5b&owk-b`+K!@@ev=BDUPP%7f+JGDbx~JYpsJUnPY}9trt*?Z~L^mwKXr zK?kii(`Hk@F&Y9&l5!WlDP=Fa7^c2dsHc;Yx2PQCR&te<(N<tsZd_mkM3NaKjhk-K z-xQ0%-RaFBVLOnjMh|*XdV|nL85_q%6y)<%1|dqg??S4VVU`)BA&}vlBi6LPVQ;X> z5$8n=%aAd^sO3h1IL94MDn?*jFgO_J6yVt{@{*w76W)zoyAJ7#1;Gm2S8zVG^dY2S zyNpyMmSME*!RHk);dgBXhicJAD{iE6_6_{~&rmZ@F<>DlaXesC9hjb>dz_jjW01kJ z0O?t~Y*ch#nCq-Z%C6?eK}^VWQdFsKNHnuFd&Hpp<Z=ZF!SDeX9<^6V4aUmr`u?^c z*bBB-APx_`G$!}JVUD;ywDc^_-iNg^W95=|<l{AydXj`Y12-Ij-lCD*pOj=A<c`#; z1ns%<2=%9uq+w3b4^dhr)q;B17GUQNHlJ!iDBZM-4^u(4GRRoB%Z?aRT;a+RtUGbd zHj~uaT&ZX|{z%(B#}wCta&w<rc^Ob#WOVvcDPeFJ5>)Yl(-b$Rh6%D6Awd`c@<)1Z z;X7>OXdO*hmObt=FmqLI93=k$Gmf1AtnRuE#WYCJZcm`7rIB_G$6>}gVxQ(2wlc8+ zc;me>hn*%I2KO~vkd@t;Qfp5%0IXKCW`Myv2H@ucw}3z~_lWIGxVIM|hFz`LkwerP zcSb&!IJA((aVr~FAhba6Ipo#f5NTFgebka^_a<v*!zevPQM$JBnU+Ms9qO@UmR8;{ zfY(hvRIbZOD~MO^Hs@(#cW{f;)RwlULgC8^VmN5recD?|MYZ3VZ}ROq1oOzP2iBhY zS*N%NWt4o(qa4+?r0sJ#U1)Zm1|hV(xZ})hR`g4`i)4BQu501+hCL0pws9j@PK7su zGF#TVBceE(>JNsLwg?+Q!S$ys!ZU)P=hl`)EJ0Pztt3bchj=-`BigD>C8#CQfpfL6 zIK@CCeoJyX=ia4oT$W}EqqaKJS)AY~BpQpSu})TAVn)v<NdV_LG>aJli6b32ri0EK zK8FUG<;f$QG1v!6PFD!tT9Zi8vML27k9w^kK5hZy9X;vmlqYdMgB2Wbg5G1cbDUM} zqXlidi@i*Pc0(R8I#No-+iuOg`qR`XAxXf_YAe7Q$x_>M+NHacmZJ~NAywz=Rmv4^ z2``?etw(^l0|a+94B2e9<D43_@1Z{q{{Yp7hTaB#@}BiFCIfxd9XY6?Ke}Ew6Uoo5 zEQI-t<w4v!3ZIK$wYUDXIByh>FH>xRzyM;iT180_SP-l?X0?1u!8M5oUCIwNn#MI{ z-a~q0wR#EKI`%T2nh@?10#~6XfEX@R)2Eg-R>pk*G`N>)XB>_Qs!saYr7o;#m@Yxd z7{)#6h4X?yS^|b=40#>trbPn)<aEiV`whFRk15Fva61}ZgyBi+(27Xe0Xv(Vahhz7 zU5?R#j<u6-p)YRZ!j|B5&NG^g2GV;noY0pg0r_*!Tu`A?=FSTqO;)`@q%PnXKT-~9 zC4V&T=z8-{3aG`ik<z5b*creFJPJ~J4Qlyz8P3d{9Q4IT(qXbe^vI-uae_{Ib4j=s zWp-7_^{m#q6Y)I|_}#fGNzEdtXKlowBaUehqALXAf-(kr0a_*4q>>-J$DPEGc;bND zdCxSSU{FEt(9+8uLgSKYuFRQgHb*SLg#)(~uFB&(NjT|IEQ}OJ6Cg49s%c89<#{dN z(yBJtO*rm7W>}!|)p8FYijG!IiccKVRJt<bJ8_)*)UL@Y{QNgzO5Chmx@ZxV*^qL+ zrk<b!xbaLRZ40-7=}98H4@~qGGE5@u><-Fb7|1+QN~6zFmgBBz@+gCxhsR!OIi>TT zb^xOKYF7G*w6k<LCX!h8BR4=gnrclfd0sGk`_R%nki1+Kaf6XfMRf$<P-vR~;FZq| zDOKBMSE1{ga;t5PK>=5_B+N!sa61uMNj6RSUW7_A;IX1{y<477OjLpsvvyNHndYIH zj>C=(J<TIKX>%|s+;<cB)QHA4%AC0MrpmicTO&Q{5kHpSFeG*&p~bhLlD4MhoB6RR zlN<5P3$i9TB=;VbS4oy>%)VyG(Z*DFsnCaFrz{UcLR~IHvvy;Ip_uS#%-nIvJq;;^ zKvA3nPMZLLy*+8!7k-GZy(5|+;J7D|Qu%;LR~vEDieVTajvLmdP|5_30nbd(;jW{T zy0DTdN66$JwG@D(5AO8_n=GV08?UuJT<u`YNId}^DZ8yqxpmZ18OBwDoOh>&C`LIr z<kV^i$2kOYY2UkPLV1TcJON9d`VFpwnS%q7--;M)1dh1xO$<RJfWGvEsZ1~|eW|pN z;;gKM^YYjk&w2s<-_6vM)|#X`Gi@lj$Gs>!w(x%%E}q>1u8ewT7*G^*)|$-7P%+#{ z<cbuho3P3ik2o~dA*DGdjyR~b_XO<q9DYS6pB~0u`R(aZG8J++6Oq!17^Vhz#a80J zwh^uiCd1S=b4X=v#g79Rp%fgG*WRBhZ(csMozon&NMlQZ!jgItDwD`zlPaZ#dy2j? zRH}|oT8>!4o~Jm$6;|rWvin3bT!~X5cD6lhp47ZgsOgSPjjGJ*NE?sK^)<itBE+yi zg+27BXBcH2D>=5d8`|A};2bTczkjQ0gj{8EKyae~A8Oi7DYZ5#l1aCA4)(|uum1oD z#0e>GG1L{{=CyR2D?=+mD?Pa54oBXkr={Mu8cSHUd;b8yIs2_U!@4n&JNe?dc*oBg z@>aPWR_4lkgp*C&kl>7tE7mT&FQ7nYHyex2erW>awQ{G!QCr-%kN}T7242+-yV+>F zj!)Vv#h4x%TgY`0dHthu>9i`q%u4ZIp{HwdPrV)g0C>O870+Agi*AG}1<&hOE#vZ# zF5Diaf#$j_n!HS8wem0A-b--d=Np@D&{T0zE4VzM6y}l2>?E+ydSS~9ihV4?Hoe*& z&Y}KZ{k<s>44EgK9@G%Spak{JJUC*-N8K2}?^*2h2CsM68Wk<ZOAlI$b7vrOI_8qz z>&$oE6E4%&G_P_CkPzeEs#4QY#`1d<@0_^g@CPEIw!IMrk0iwB?)p^49z}DrB=J=x zj9N-}DI^~C<vG4<qrKD8%j9g2zN#>HbfV^Tv~^tm^|}hjT}<sUfEDwA#Pk&O9&45? zS@G1>&Z3k|BMCQlSh<=>qinHnK}@$&cy-96a7f@B)P)h07G_q*V_etMLuc-TLZA>2 zUX;l~#~;qjr1T=4CCqlw0?cvKCZZxuMUgiZgq-G;G!JWy63suzQwRVaU_EMh?Fz=M z!z7+fO!n-)Ufe86#ygswSYR(a*K&eL%bw2T3OE~MI}3F+JV+xLY`3dZTX-xOg+b8J zWk?3rnlYbKTk|-pAwPRj_av|bsvk<NB+a}4PTxvo`jjx7nN^f^!KxP?AhBrOQKT{) z50z@UxmK)~uBc|EA$`%N-G`D$syK}s?_>_OJ;l*{#1kEZ8l<QuV~p+x1oo~uw%O}Y zj+&NVX&aSD-Rn_mGOQYG=RB%rhFJpvxEu~KQESkFpkA^2+cTQFFW*V`3{|5_O?EoJ zg=l5)>2i`q=C*L-t}D1#U~!D8I3(9E@WKX*z_xBTGY}X8a%-_jfplg$1bxx!YwPLD z-PHW*s=TcddvhAds;VSXxZU2TYY#Qlk&b!IUAM3hn9CI07dTqB_crh<M{%+e$A@Z% zQrEH58ckcd4ZH?2>coiHWEyOCpaulv(<ZM-_URh_@f;DuZmM(Lz>HWjkez<D&&->; zMLuS(ijptx*B}h!<kc7QMot5gGtEnJsX-|D7zRGQD<kd6<~(9VbDVA+tEML;)3ulN z{{Rd|&c<~h1&Df5HOf4yGxFw{I3(>{vYv7&BZF{UFFa>8*A*77a^1ypviu+=#CvcM zoDieEYL?n}9>bxkkp*{+R1!As7#x#VO|*(p*f0!u+$)x%yE>z5IIruV{m7`hK?L$a zs#<_nAOPPtrD#nXM~{@bZo5Wmt=*)t475xMZYwxFY->2QjOPc-ZZU(_s(I>U0a<}> zy;9#P36xm|KKX8$s%YoT1Q^(N!;IHnscE^u?>Ta>_<!q9xU)0BBwR5P<A#2MsLymj zA<1SZf(0bkFx^N2l_HRE5u1}x%P?5^nj*uFSXD(Nz4v0homSiB7$?h@k%>6PS1cJ= zgNIheJJd7X!~jOPkCV|`nx!tGX0dK-m5xKn1oOpf?IN`1TAdQ1JK0750K<}arr;-q z?&K}ChE!zr;=DHeG-4&&wKk5G>b@-0;M6p9vxelm$VWlb>t26-;k(D5b59XcK2hmk zC5@}^@}`<S+%6ub%05r}`JDWPP-nRnieY$XVtL3I=e2d$J`1{>04`QG>JHv1w*CXU z35jpgd3#6`9C}xmDwj#4(s+5TQvSc;j%=d^4so@(=9@B%uFx`j;=1JU49_CH#nL2P zE){ZfP96q~&caKV`CH{Xa4Nm8DoVzZqbR4`=d3JeM-0Oeo=NFfZewkmRHBZ#$2HT> z;n-TzOK@3>0yFqi;_&UgwXAqTTL2x^qMnyP@U7^dYySXVr=Q7ghTurf%-~=F(yT)o z`N||<0X=hFvS=3Gd~WdadK1#F#iH5y?8YR)^;*t#B`0O~gs^g*mdWmMwq7N8Zi`;a zJ<)*v>4Ou5=mm5Z{vp%utP)?e0?)}tA29mXvC}Lag8iRs1Aux8Z~P;gb4erppXP3J z+P8I_ec0>k{e8zz)bAVG-bdT!Lf^zrdXZ8%3AG2VPZb*^fx!q-3EPAG>O<wLIv2}< z&mAksZtBI!Ys!Rp7>tJF1k>D=+MBkX2_mCOQ*cms=Y#4hT%<tY5uaXbTUmLT-3=|4 z!6dGG8dj0oUE9C|uQd0K9YW^^^`d)G8c3=EQ_#|JQnS9Moi0kUly$-h7x;*%WLJ_x zKn)l@2;@`XDHBGnafLbKy;^t_p#=P_GeXdJw%tfPz>%HMw?p@P)M!{I%&#6tb5=aH zmMk61gMm=Aav6f)xHX;2<%<Rb%j$XWQX75Is~0~`lsYc-k7-s1oYTZ@B9(uXe+jEi zt;i}Mc4rKw<5P;Y6By8RE_eW(@lm8Pw2}po?#Ccf#UlA&^kq2auH4#@Cuej@s?O>_ z2;)6ZdWi&*ZZd`Q2PUj2^H`7%2dyNC4;ab!rLwaLb3GQ~5@bNkGwn(OFU-5gY>I{_ z-T>IavyW<-S=B->7;2@a<h#8i_Yw(0uJYT4a55={#^P`QG{O78QPq<?<aDVPF)jv6 z0nmz@TJO1~(qEv6qEvm$%8Y_)4=c_t%?gYRhO0!hv0xl_&MC92G=5lex$BCk-_XG~ z*K(Kz@`?Z>xT$UYz^>1oxW;|y>lln-Tjo7;N)^<em>kqgT?<c`b2ehyxmVBL^{UIc z<il_VbDEs7EPi3!nvPIpZa*4n^g@-E-lLgRll)wI(Un<MOlLl{;TYNhZKji8=LGZ4 zYTf#gyU>DJ3Z^;aoYy7s5@QXek;deAAcN_O>*U*z260@kj_rfl+boLbGH~ah6s2ab z)VQU#$CGOAvRtbuDyOF$R$*=91D>^~sr~j<JCi-@IC*g6ZWx|Ot~H}Om6Fthd+x`V zw;kyuW;p(JBRQ5;-n&q9!KS~<A<qDxmam@sm3tFJ0Ejyr1JJck3lMsP&lsvxr<kFO zZUgvFN`4r)d=v+ushy>&Aw6tbk|63)xD+W^qfnSQ;|HxGoxzo|+<Mai8LLdBn_G@% zCm+z$<6kuW@=sn35(IVm0A}yo6zJjG^8>ZLsasotAr3$p!zs=)OL3VM_c6ieXr`A@ za;uTJj!RRXCIl1nW~Np~a?$8U%m7iy_cWxtK3Il5u}=}MTcAGm5N|GRfag8UWS+ie zZu=4pNN@lI4)qH#T#V(r;-yzpC|_Rn9_-DrK;+<-t?u_|r57vt3lzW{5H|D`B*GyU zLgBMe%OB1H05R5@@??N|(@njAnV@N5LIEHggG@m_z$IW)J-9fj1ky0tz?JQel(K&1 zK4XDNzp_@lv9rG2$8HxK4)qdz@D|(`JncPcMa*S3xL`@+G>pVPHuMJ+)zc|588;$~ z9G1>0(2qJc40-8JW)6##E0Mu8iozwqZgcw6NS7-+1fPH8J+aLsjrMFA8ymf|#WG1$ zfT0FS`_(hs=0DyyBaBr_SJ0%a*J5FAj@U<XfPLPBH2BKx!WL%!>vpI^v1P*%#Vceu zz%8Dw(xFQGvAfuql^-$4J?ccb+=#(SjPtv_RuQwZ9F<i*xyYx-a;)tSLOB`dim5(t zQZHrbU0H&i!B62#mBTVHEt)XLkJgpj%Zr5ENB3xtx;saq8^rRyHtrs|r7<5Y#<}{` zyTf2BZEt#EZb>=MN|}4a-oiAcV%Q_vJ-V7~Q4(?=0QRXEZW+fkrvVqHdQ@ANU~OAb zjkYn!C3DHB3Y0&8cw?NC(x(8pAaw7VVT={%M>VzdxZ?L1Ib)7}38miqL1o>~YCvTm z{GekvrP|(NpPLxzio56%rjU6%hdErF@lqjD%m(kyg*(CL81<%v^1)(q4{=KAtyvqd zcv&{Psq*^pcN$&9sNi65aZF-7z%qJdaZ==M!u~m_X(xB7I@-fYVA$FSJt-bsKEWAM zPg-#-vF_tJ;1fY?f^mcER`o->V;F7RcMNo>-OFTwj(8@f2ny{0o(U$R2uC}{bHF~7 ztrk<V^BCdSe83Ug6xWGB1<ukq#S=7z8B~1u$Zpi)qEZ=w-~-RCQf&~^i`;3K%TS#& z$Rn*eL}Zs^v>pc>)6}C$yslVqDUud>7^)n4o|K%F%W_t*B)~>lxj{}*wleHO3XNna z8+Oi59+fO?U*s#xckNT6&~D3AMAAnq6S(kdCs56}s5z<bUNpxX4un)wadQHU75*&H zlOd+|VH8S=LJpkZ(-#2rB${)$Ss&)cIO2_~fX632sJJJ}%CdZ}NL|DpDtr>a<gYn7 z>q<b+Dsf4WPtUj$(3-Vpt2Vllxmx<wZj^xSlfkTu%Llb>ta7K2YkkCQ#3K?tY8h?f zk;*YFea%#-ZBZB8=7O*UA??jR*s+j?U)_P6)|RJY6KRa>9Wjcf3|k8;k%l}UO3E^A z>KD9rx#%7T3i?LmA1QO!+PYLHabd!+<Q~Sk&jM_J4wX&BB+R7OMv;#&Bw&DfC5?Ki zrnER-<F+<1u0h5#QMU}Ze7G1O`qa*<tUheja|Y)JA1QvOlW7UsTB6FTM;`2DkG(UA zI^jpP4IFWxVEfNP2WpHcjR6Fl`qGNf%`R<N&A4K40*YBC0PW}q$TZ|nF}Xh{Ls7hY z;y3|zoGv@kdOMbuw?mdhBj2uSIrf~he52Z&7t6p4_|iL>3j#h+ahgfJ*)Ls)V+f=U zx$bI5k#=F6Ml*oKbu=U_<dsbG+M940imMEdOjWyILY$j-A(VWQ1aNWJ6$~V>JIU$k zQ<4k}e&&1Pqj?BIrbXUJAo_|Qke%(QvBvTop~(7DGCCIAxFk|28OkvW=s2d8W4Yal zVtbku*0&cjIByn}O;nMc;Xop@M1LS8XCs=w;*%)WWC**9E;H#_%FOOl1s!=L^flhC z%8|_}IeW<p>a7%;O0hg()IvN#v>m53`OyW(m{0}_gO28i{(OvQ&{m7xEhiy7oso_X zJDPJ8R2vi!c*&;9jfKM;bSe!scCzG>IU|uuPWzO!LnTzmQ_Hc!k5f+a-YEj$uc$R7 zfGZ@5!*cYfgt8eA8_7J9YLd`azOnw0`FAD?j&aUug_QC@=A<_S4Y=#lkcCoCIX{&{ z(?VqLxWahYbIBC4M#FFi1GZ@;8(mAWBRpcCBQ$`OJ8|n#BS>v<E4JD*)rSPrHss|{ zJMcPE81}Am%*U@h3RU6vD`JvPS`JM&b-2?E!H(s?9rH`a&+;^nkKyPkM2s?9E>C0Y zM*I)F0qzA~E8HVzX2n3zs4f@g_st_d@D56fWPk!T@@dFe<xgI@s_Am09%f4NZI3K| zn4{#DAVK*@86&+jX+JO^W2R{qT&Y)6$>da}ZCRb}?1bD(mCkw1In|1dznw7PZYjX` zsiP+<s-=k|r9_`{wAREQJA9?jH25PH_XbBS#~AsINb&`faSFjsF-<Hakh5?pCESSj z8*-&kvW>(JlmLyia(KxZsUB7?LB=XJ!t%X+YUQdfS4%)LB9i>$ro+~la;G7SXVi42 z$tZ?1Bb8Ln3lrX@5i=(9_ejohQFe$@xF`&A#PLHolWOB2bQq|bU4xvHp49Y_vKbVi zJY<TiNUl`a*<n#IWlVdDX$7;;XSu1QX5Yshi9PBq?72AW>r2U*wW&_>B4ar@8SPZI z_F^{r)`i3F7#tr%ROe06ayiWxzUI#Nxnjo)aEv~D0t0$g!uvrxPESl$RhO9*fQc|a zyNcSz^ew=}WZF#4jTv+V@O=#{GY*&}_oNSn1b02@49Xaz{M_~FinSz|tk$BKoUU>) z^`_fQ&Z+=EF9efK`PM}v7|up&Uz971sdLHNI#DLx<CT`I4ji0}k=)P%5L8GqO)*J` z9Hu$s(Hi8I7zETxSJL9$T@O*t21pdflXSyj;~6c`(x2TNf^&=-8C6voK@3UFG_)&a zVa!1XC+KJl0aKisidOkK<D60~WOO^d&1r9SrbX__9yKR&<P+O8&|Dp$;O3X+R~hPh zW}Km!&VKeYP_%b6bLQX7MT|82oUY;CpRjqZ{1TvGiiD|<u><j^#RA*pZZEs8YUN^E zy4*?J=Lek9?MFaJDt$?zqVuH<&mDyxQ9mmKj=8DP?DaEIyZeVop(10A!1OfcQep&P zaZUR{2g_AF@C`H0c)=Lt`qb*pC9ANIjJDM~<UKHWsb+=2!vM5Luz*!UyB=_HMDMm; zq@13oIjhxZf!h45Q8ogbm4O+-p!|#vC)X6QsPdUW#!ll#Km*#dvSnzs07yO0JZ7Hc zNXk#^P2H9GO(MK&wOPO<)8$K2E$<4_62LPO2S91g%vfg!j`bj6f&c}xjmE3blHP#z zB847^w`kchyI<>4sVbnm09&A@qZVxR$4Ug4KR6`SH)UdEu1&d$0t)BU)J5<}-SdtP zI&(lOasfX>NF`Ih10y3fH09h*Bid3_4(Gi*KgtKF!6KWD$0LE$nt4Sa<*<8u)XLim z-7Z83MG7+9@=ZD!51bnUgyqgpPW02YGBQ~6+Ow0ouxoEJB#@b$j)aqfYAr@7vAKut z$m%Or+ewd6h5VpI;c_s0)?B;eMp>mVv9_>1jd_!ci@c7?Q`s1n5zBD$vjttO7Y)?b zyl$Zs5D5nyRU37;Yo~bfBqzD8465aiL+Mi)tJxOQPUv$?0y2TmV_DN`k}S&;Ld8Zt zbs5R2<CMzh2j$5einR@zs*=Tv9)h|R8B2F$VL9JKK=$V4(1r}X)~@adfVc~el)(c> z{5whJqmtfBf-xWfb~V`=X$LZEQpLo}_9)&r4<>$P%~g4(U_b?Z7*hS2txylXJJY=B zN`(VveMMg{a|@MSuNhi5khp9BNa;wnO7njGncRDET47E=W1M<ak`U|nm}mHfG@^m( zWyx))D-Sjj7>*k_6xX%3*@RUJO<tNMWB}q-?i_Peu3=VT<$$>Dn$A|Xqvm$C$mFz$ zsbE1->s1yqv4DUD?af@cjIF-Y!6&FSP0#=r1UId6H*?saoMCaKklg-alU7H)&~G4% znWRDxA6iwnF`UTEtJqbtVi5rvjDz=&TGBG*X`@=PRjImd?vBI38kV1;_)|!>xxau+ zA=@IWWQG;fN8@h{z=`Hu`Hh@>s(7yxogy5@5nMKNx0;qWF_m?dzuh9eFReJG7^R`$ ze`QCTnaK9}eku4m2^D3%luG;nv6`)W@khcF2-@O1`>0f(l_SM?_I%(=s+T8*#Yy(Z zT*gL5-VeQV{bBUcol7o`y4>{k_@UvJLYCSs>qY_Fz4@wA{8-YBw5tYzED|VFvPp7W zp0(#vOS5Xaki-I5bfk(jSqqW8oczbNV(Ykd8q2A3YIgJdNP<aEm!r80)HC9<ue^4~ z4?5pYNZ8AtES#KIHc1XZCp{^JS#k(C9Q3W0GNg8pODdrzq~rZR_$Nm{jddvyycV!2 z^(LS`HrAw3gn~2Nfn4O%<K*47Ph54WV~|PEkUi=iGQ6GK?p(6WF8qeb@u!GnWr*IQ z0@+4X<We6Rc#mTu>kLOcI&`eK=K;R(Tn-wMfGfNbz#dISTwO`%rJ>Ut9v&8I3u5fP zBi5chqg9ngFiIR8)ppf&sN*bkD~VaT4J?G!d0e^22%fb60O1^#2c=}OGyY+$CLS@j zDjPfA-7>tIt<gC7kUz?Q3X&De2HwGk@ouQ_v9@wRZl794XBi5miQ_dcy-m4|sZoZO zibHPC+9p<!$trkoPDMA!hF`eu=y)tx^`ViJ?PJe+k!I=&jh#ToDxF6?*{>{8yilnO za2x<R$0w~e;Hr{ZAmx7PBBGQQVCvjwv8M-?XufH8jARa#hdWN;?D<xj{{WZuVlgiH zN`(Qll07p@#5?VLV05P>ayyWVmSK~cisbJAMx+ze8mBIOUs9zQ{guDwT9Awd8T8L; zu2G{qN`N~MY52HwQe8wK46ZxVWzUu|$*i@$gNs&c`p|aOER5T@<Y3cfXJ;#n6Uwy! zb>#3VV?*X;j~xbSH*G~I#^S(C@)E;tIH{w!jSH*gfIWt3BVa>q>FZCADCHwnEhh(e zK}}CvvTYW%5uIIBuS_4pn06TyV>#lS=z}<5gmJgAsLGZ&;|I8{B>JzA(oa%LpghHo z?BorYE>BZJ{_NwR0+K6lD1fX=AMc#igBS=&;EqmeWY>F@va&wdxI;LOWpLv?2T_WE zMz1H%HZjQL^{L1JaGSHi#}ws=MJl!dz~mllJ94cV=HIIRx)A-H1SsGD<ov{YQpBqt zEW3&4ntM9=YM*g|J-DQiu^1->yKV1Nd+cKibsaOt%%zlacp!68$uP+r=R9Cj!-24} zG^0I_-Kp)`HXde2IRJN}?)n;~yJAOy7T}<h(|1~ya;*^FKwvl-sGyZLa$9as%)+8J z@iUhDz?=h`r>JP}sUt|lZdll_dUH1Hg1862r4GV4&fJmMQY3_AmB8(hNv>kwag7T+ zo0N>_sih&1F+Vm3-K#MXAt%e}##Wmna!U>g#%c3iC2J9TtCYf!&xH%<d(>|(N~<SR zR<=IY+~BD69Mj_RiDlck4&-#FeMaMNc#=KQp;asM5OdsAQ==*QNhJE!h{Eq6{KO6h zaZH#KCc=eJAe_|7UwE5J<zlV5{$dYOO)mY48-8=xRBDCgL;#h^$;~;UGP41axuwn6 z6|AMO@h(9H@K0k?q(PwoHqq!RBA~Ir>Cll<nF}sJK7@)BeMyq$*pwp1;|rfbQ5apN zVpJ2x1wABS56`!^N(b+hkmRvFaaP+)LpHDPBB4NJJHh9*Lhir>JF&>-t<M2z3g-bv zOI21MI%F3Ip`tRr<;E?o2~ci~NLP&DlS2<Ek_L0@QM`N6lO;jO$n8S73aaFi1_|}5 zmA2SE)~e*7?+d^O*R3muNH=X6ZV#;@6ik8&VDXxnM$Dr&<Zg!?(6m+*z1N`&uvpL{ z?!e@cT%V6e+H}#luvniUgN{#1?4=y}kq?!)t~cT=?H`BaWl(Uzj_<8Zno9k|q`9wS z$Zoc&kr?;tO;ICbDf`8;2OL%F=+UFgx6hJ)8lfV{h=iPj+PJlB^etpZFh4OPk7H0z z8%k8}I0GEj_6nPW4dWbCagjWQP7}RWjc6;a*;M)Q!og6U`R`U?o=Gj#kV7Bub*2(s z@Sv)%2i~3uM%~JfT0D?O&!HqLj=Zo}^(LLMItCf-il~yTtjmlLc+FTvDpcp@^s2H& zq}J?xy6h(;5`Ae_Vy%`q81$!05J0Vx522{Sd9BI$iRdb&H5j{<qa;8kCQghyu%|mX zj9?KX90S^wkT}LkP<o0s@^O)x<x*_HwI^ZRFeHH^daWdb?zZ2XzZ5Cm@{&*koQj%P zj{xoj<E3pGTT>TxBDatW243BBQYlj+5T%Ll=}eTVBXBq;r4CBA0RWCbsg}C4Yd5b@ zll@^n*#@fILgqZjCJu5z6=h2dBXk`pz-|mr0B`~Its^A15`D_vQ+YWg^v@LNXTcz; zb={Cy)q<sf9W%kIZE7N!m(0mLg&nI{>itIFDlN*<PlCYXt_4DjoZ(n54h=JQ*ayx7 z<bp9yS+c1cNB5V9&lPV?Oq(W^q=G1<$Yf<B2iBn|Q|4w3f;c0+A&zE38w{hTwIDkb z?>rO6PkO=FwyuY5%N!vY?@m0q4B02vkqPqwX2A=<HDX4EofqZjsTCLQ%_8os$XYXu zg~lqh&dr37u>j=arn`bjrUDk+8<NEEDZzJ2Nh2rHwNg=ImfAh~h=CttuHaXWyj7jT zCNdNOkIS4@Rg}QRK><nXYQo%>Vx(nA$YIdbwA(Y3yKkrY6SKRb6vw?z?X^cu#Bv2z zjGd}a0Mp1=+ab<RI5h8ZXzqsuW|MwGsO?U;ZO)rdQ`&<t2MnYFI@18!6~QEv#Z{3C z?TS=_PDpLvg)?E1*s=LB`qG=d((GpW@sNa5l3nZ<ftpU~mnD7rjbr7EDJ_nbDLGXK zk6MmMOcE}~Sphx!QnB8|5J^4hy+swLF$~C0-8+5rPu;pT3Qrspnrw<AQaJ;PRSvFj z`{O5rj8?m%_tlP$EDXL&e+V5-EUM(P^uYV3l*a7EmCGFc)9Ffc<`+AGJ&k85rDl$M zd(471F5vAdPaM?IEMGf@C60Z?MI>R!8?eWaNyR=mg}glH=qjX@yOk!o2_k`p&piP& zfV-;kfOyU+vnmz~<s2T5p7mxoUnnm|8O0o(MxD_TNr?(Bc?4#OV);ixe_BM#hLJ#R zy-1=t3ys+8O?M^TYKZs7v9|Je=cPu>eKK*<tg+k}H!IT^s6zrsBWruqIbU+ErN$~V zKOFm1qHHlyj8Y6CImyWCDY@N^qv%aSX+3o&&RY;f%FI=fh|UkSPQ%MiyMQ$i$hec` z$FMz3O(x$jY55Lw%~P7)l;p??mu{nOat1n6rz*|35xLJKcEv~=e+n^<^xOzTD8?B2 zb4g80scGL*CygWlkIZ|}!B{9$<&oU<q=t2Nbqd2D-WaJJ2dH3wN_J`38|cvyb(b4k zj`YHCPaB4N(~>Mm#A652qzoEGaJU14bKa|M85g#MQOs4FY<M7XxN%Wk+&sW87B(E@ z4ozJ16UuGJa~^SuhILsPO120+dt#l_+_hq+;ViN#I4r#ntyZ4GPnoa*_p9MSavTB& z0m!JGTqz3M^W2(CS7Ax5QqdhR!?q_uxI!67oSNyE5@a0mKJ|0H1BkAfIc_(;aBHI& z^BVx*dRL_lU6H|Oa7ft36ayh%qzZ6Mf_Wfzs8F#k+n8s8gMo^a%43xV+^HQ!Yb{An zP~8>+sADS}kOeCOu2iSzPDXJdae#4-l*l9)knYZS!*{5Uk)`ZL?6L8?89fa(-CjRT zb*HlL`9K&W8OKUtjE4Yx++gO1?`{j-TabCL8xYHp*wUc$lO*xo2dzzkBH)|~gvL}k zj2+#oV(vp<Wg)}mUyxvvp0w!;5C9_tay!&WT;+<8K+QDB*v2qVT4`HxU%4BdssJQo zk`H=Fp%OyQ6Y(OI*UbfvMi1vg%FFVAa7HnjZS7*!#s>rB!ESMp+LkbjGOHcj6O7YT ze&`^`<mc;54nSrhQI$_UYVM5OZ|{FrIDZh#^6K{vHl$!}2suAfS>%#c`6PA4UhyFZ zRCYswB7$myZc;`v2*zu*a=S`8BL=l;{J+SFq*rsn$vs+$2^iai$9h&6d^Z&!UGbcZ zW4Wzf`kN^w29mJ|Vz|drbDDC$%s29S<cetoq2Yk_rZL<wKRSG-Nx3_dJ+Ob6V=emB zKQ`=RpIUZh`3o>1KIo(pDPqS5nn~M7snun(2+E^;z?`16mlI|98BtGcgOE6;1!4*6 zYbPCUXC$sJz{9;Ym`E@>Q~drw&f1CDWRP-m+=|Jo{6zT<VhF(KI5bLjg$TbcGrE}^ zfJ=?Qhdz}y)h<J1#s+XI)3dWQQM=Rn+>J)`+khK(NzF--w{HTHLXoL4uPizqwG?t8 zEO1o&)~%$q)Wx^Zca@Shoy|(clma?`6+QPUj!4J^=dD93&fj-}Tb%k*w^HLPuOZVC z#3==GGAY*ZmL##j^)!UE(hgUJBcED&tEv?$L;6(8>r)i<^CNG)$=bat!INN8hqgCW zd1KtzBm<1%kd-#;wBtNrnwRe@rZnzJnA{e@=hxPw^RPiHf!>^?81uj&;|7ss9#KZ* zmd#6-bP^vU?;vN2hz3`~W}Kq~C+`|`vKIp*Y4)WnrC?INh+_!fA=Bi}es5Yyt|Z5n zyRg{f(-eVMen}@CGfpYXKKfT2QtC4s&H=&oH7R0>R52~<ND5~P4&&=c$U_rbsa<MQ zmByKzjilstsL5tO<4eGh<#UgES2%EZApZajEf)F`)7*-D7_dMrPu{As@rCuPEChtE zNF$|HxwSE`m>(nfs~LG4UqT?iIa1(}*Kbi;P)oc30b%P|NfN<v<|L)n$IJ-tT6S{) zSwRc+6@%Zo38t=C;{ar5-j~Z<@;RbHy9%!)^)(qEGVCM{`>SY;yR8Z2UzlSp#{g6l z!elMUK;1|@)QWt#&Ko3*WYk~~t<-_ZCbWt(wwLSw00fpPV~lxanTZ^e%|zcUhZ)*C zntOb>EV#(dY4O|)5Xc-JD?26dnyV{5gc8gh_Vq1NY#CL~I`yWN3nI2Nj+7Geas~<a zs%=`xO<jpA;c<hWfY9Kn@5srgx0s-VkF7H-%ky=sj*C!9Ce??#r~raN_oY@>Q_Cx! z^%E5`WkKVnYDEQ)Jm#U8H+c_C#533HNL!A2nvBVriY`G@j(Qq=&SX7vikpJDAVy7~ zf;W28E+mm;*kc=dXLT@)?RS)-gUeDr=;r~3{I+s?ip{&Tcr>*gv6JTL$E6Xr56(F> zttv|SPrJ|IOjE|vMo+D45@j0>aE^B4gG^LKl<;%!Ph^iO(QX7Da%r+6y8?1pRXJT) zNm&vZml$3TN_=1_JbrZot~V0hD3OY~u*)M3v^8=Qxgv})=Y!l)HpeT#Jaqz^;hByY zZKVK_fN&~#u4xCQ#!J3OUrhSc$2i-^<4w*9G#LmVDBfz6nGI@2uEFu2mY=){Hk_{R zK5ArOGkUf<0Z%y2)&w{i<Wx7!xpLD)89+!R<NMUAca8@hxTa(b`_s^GY?44cQK2z? z7_zz8IVcZuDMLQ&9(@U>zZ;QBKksuwN?IMVDdW8lQKw<faodVjBWOFbob{-e0f21n zBaGCi%XJKlG3lObHx;>8wv3kE=-A2Tp<qTn>7!qJTbt#cBE;MPTy_LiXHW^qF0IcU zsS6`U4ha5rH6WTUGUTyJ3s_-xU`|QnH8V&|s#pvt^rey?F$!RXBZ4~AmZQsXQMV8_ zo&47{C~~{V(sLAmt;oiC=9YG7p;sKSI286zHcSvseJL&!Y>5=)B9d}@*JZ4(a^Cm0 z!$YjRl0o$}<K{=1Bih&<4Mgwd$GBrS?@>L(n<Hs36r5)i^|0F}w^or%l5oecJXMet z2I&E8^ckwM-Ig)og5!h5PG<`rnIXdZip|SQf{L|?L`wevcOaffG=+iyq;#tOddSW5 z;4r9##PB%zM6sSd#Xe=^Q)^<#XXUnoo`W4LKIiwB1yBS7B%fNAOZDBf7sswDxL{u= z=I6a<H*E(L(@aT<{g}2(0&18-N8b5QJoT%xN~!XNA4;szypQrH9m(lj($M!QNpkYB z$OMZbXC;8aBQ%#0hymNXYc4?}y-6INRx^-W_;J#sxVvWxt+>b2BD23%3G2Rv2_eYN za6M_tfGZr}cFjKG86qTY=dV8W=d!zv*L|zHH$tYZNj)rR<dd^x4Iu?%9A})<#7;)g zNm6^&v1cyayhbJd@u@8I`KLH#AwuLZG@I7_45cK!<jOY-wCw{J;+8GqBDulA<GyO^ z=+n(8A=MOiey0^+=vNZH{{S^IPH>{7wYWO4c1XpH7XxvAxXJYuJhRIwAT}e%O4WT1 zO_=k7=cvUbIuv2t875|NjCQGVeG2xFvQ3#SGAf;x;hgYU>R8IUp^z#ZW99a(fA~iX zas^q7W1KLiCXTU_=H!w%0AmKLTNpaAz3ySirTVBCHDhrR?E?Vy&1=i1#_jW|B#zYo z0PI*6A;S}ngw*qW=APOqTcLo*<^b}T#UOt%f`(PV$6Dx@OSIZI!b#3?nzi;DL$s}` zF5yk;taHk&Z-2Pt<RV1a8#p~zo@wDsV-C-|7#S7ReTLfANVknsamnMo5dkFFWXbPI zd%o#Xugju2AtJ_GcrG*4ijrU6?b@TBMRm%dK3%ba{@RSwA&xmb&|&}(agpAuTZ`)# zS4iXLy3D3GjH-0ptKP0hV8tUq9kOyVF<lvr89>;fM>!+CLh!Rq9G#axtz!9`<{Ybg zt})Q(-%cW7BCMO(U>xyEH0gwjtr-OL_pXJUsZdjI80M!d3~{SS+eqO_HLN0=*Hb5n z_ibaBmq@#p$|fKcSmZNcdsURtWe8Z!7W4hyg0*Ekq+lC*o<YqLTKR-+JbF;yE3y<Z z4ZCcNL8H$IV(zYl@^ezYp6<s0gTMre(Kb8D+^yH3JXNc2HI+QTstCaiQ73&;9P72I zkp`HuMX}`a$USkzBj^MP6qY-BG2@!np3gG*Y*fX7a;H4hj~hDxtXn<3F<B`^nYz+x zHKyO!<YT6j82#MIyNu^GELuED50<Ql7z4FwOAyX;k~$i9no0n8Ju_M<zQ)R|x-&98 zA~peJkz_dk09M_NSf5CV)Az9<Dga%l6?8i7Wjk|#bB~zOJDGxESb#EEpUR~x8PuGn z?SJe33H6Mx8%dRwKqHl?t?oSAi6TLeqa}#qyl&&-uZb=rQapqQvLH1;d_wUwiy>`Q zVn4#E5Fdf8=T;ZBn>$txtBv$Wx;$+&w#>GDIiw-uaT&spdyci?BgeYM)?M{EEr{q7 zjGC!);*DIwMB2>rE51W1<!ZgOZK`8<I<~U0^fXB<a)wyO!_HjbQ2s*6mAQnsP!Wa& zeB^ao$rCN9UNFb;N^wv;(}>ASnZ#$S2O_if(Y=x!@Ks*C$ofX(QnZCgpHjDlaoRvm zYLwnA@cp=4Yu11--)Rrs`q$3FFCy9q+BCUl<j7d=%}UIXoq{MnZlI=Vy3Wa{t9q3z z4DZaPe=8pOCy)Fs3T|H!+T4uvw^GKcx5V!aDzm-pjEX<GitwoJBO#e$iWkNRjRNNs z#4JhqxICI()^^b?O%@5g<a=v;Y4GGEDlO2*CBmE<E`BxmdKEk1x<%SgoZ~B>!n{;V z=8_S^FMeqzkSu8$vl&OsaB?cS=exJvr}V?>uu9DO4@B|4i{hw@X_u(rE?cqB(zV)I zH>`0uWnq@=Yv;QJj$2_hvwe>1oV+6kHQ8uC5#`h5wzt&7F&`(|0M353w=$OM$D7Nq zk?RQzGRPV7eMmge{Z|38oaCOh4wrJ8#iyTVBvJ#$-Q$|DcL!Brw2wncEp;Z%tJrFy zl_VAnIXM*>U^bFS1oP`t%WxE&up6>D877Gwg&dEm6p&k6u#a(!Z3nL;`caG{BIIP` zlT9GX4%Rz6ky1!E#v5lH0Tp($<`PY}VL>6(G08m!DIX?vB#;M6VPY6z36Sy$=~A+Z zl0C<3V;CJO+S2HUE?pSH%H{j64s%e-B2tPnGCS1xG3^8?^{B31HgGT#98ngf?%2MU zT}t6cC0K>eb5i+g<n1{<Gf@cCkciFG)2%sTaK{<PrB$`F2|IccGUd=X&mBcPPRgXK zfS};yQ&4Qc<(Wr%Yi)2D{!!GfDQR*(J$edmmKdBmg;DoP*FWPi_MHys7FJ!DA1_MY zXxO7<2?%b0cB~H-k~AxyERw`>xTM{+=qNs@@tsNymk$|loF3Id;ACtwWMjWUS~`k} zo=0!Id)8z}Zbw}9Cb*TJ$94IYh^{0h@CHUX#Vk;KxjYloH89A)VTSrsBzE4VRP6-k zCX`+D6R@*`fG`is&eP6mu@G$bmki#Rr^avz+qj=vXOezp3yMv3v1>#!-Xg^1K2md> z(@tWSleBajjXE9Z2`o1Dz^PovA^C>>I-gpm`xKjOXPGRr?I=WKWH33YRhXtg10%5J zkuFOpOmd^|0ZOh|<7uTOeReZ#-rEj@Z-9bYCMT#pDPneca0@;-$)qxak=M0J42cFA zuow!9v`S6tHs)V19nXBy?oy{J8@A!vnQ<@-t%6jJYBq*ckz9YPlbn;*wn<pK4~@?K zufXaJNb)$8l~BZv4J5EKV3x@Aq+6~)199oaB)Oi1>#`(@7I>K%%Q)wb)f)mv4<sIy zGGw`U{{V}<BQDn@zIPr4O1<<U=(iZ;?EAULy*zTKfE|u=M3NUkhmLcad|;j%1df%p z?zJ^a`m(XN-2VV7a&k>THpWPoC`TjGtjL?&mSs{-aZQ<3;tEM@3@;zfu2NRCnUtb7 zRs(5bN|DAX3`ndG-p4>Gvq;7$(EOo$)NnBjOFq@=2d!mh`js7vOsgX}*jkw7Va7&I zFa<drl2|6tdy05LD-4i(b4^)4A@f^eHjYW6+Y>LD>6(ohiYfU|I3ygJlI0^Y6%p+( zl{h%6rQ?ZKFbLbg097>>G@XfCX>4sR@0yYUgaKb^&P6sR-Z8W;dI3oJR|)qU9q6~2 zn}SW-a>AE(%Qi@<8d4(N!6$-gk-8=_4o_1|Y^VSN-k9xK%R#So*^|Tj<^+;ddexH_ zNDI6ARY>Ft3C8Z+Rk#_XB!(-2$JU5R@A-tRzGGE)Ox*(x2_l+v6B5HYJ!)L2BoawH z=hW14dap_wE$T{etTEoBa344r$8u?~5<v&^H0F59j)eRA)unwAozfVgw;Yj!&|;8= z4ngVJY1>#0z>aBGC5yXrj>5E8S~L-texhz>1$hMbp=2^hRhY3+NzUL{76;yuZBger zBq_^fPC2J^C$Fg4<B5qRI625U=~g6sju$D9T8t{Y?I%6zWMpH%1069*$&l>+L`q5n zxctO=bf+p~k(_(cD;78%#VWVSj=ghQCw)pz&dg|uW8^SZ=Z|`V<(urFL_wRc9r>xZ zd7-{hj)0nUav~|+)7W!L>tdvpfIwR(pzo7Sk|l6SIQQ>Inv)Z>5PDM;Jis%Yj<u7E z+)CqEd6^2_f3zuDKO-SJW1jUKj#fYpF;lCLDTY4(07}npnhoqhBC7-QVb4tWro|ep zWc6<Qs!i<>AjTMWY||Zx?m_M;NjK9|JKc^sBjsSY>zZTCo76T~H}L_|kolp>EH;tH z6(mv?Kpl3UQQn+mZCS0YsvwmeM$*NU^lESnP^e(5{o*P>=1|JOd1Kn5kSSgpfzB~n zHq+cM&0;<HA&%g`-XnujAqVad0X$P>o!TEPrei(2Qy>J6K2;vIcU+{nYj#d$Ht1w+ zt_K_nf=BbC`GypXe4?e1S7}1Qv*}Dbn+OI6txHzaHtIrl#7g;uCO8MBG1<n@qyGS} zRqkd!Zrz2wg-tEmM1TX0-4(bZnpWJ-NxcrU!VX2X!sF#HTabYi#lOAUu{;+W8+Sr6 znKDTpwYfN0XDC=6a4XSGC85t0orgc0@7soB)GBIzOT|pA7`2I2qav~QZfkE!)GoDG zBNDNN+MC*=Xzi_(*t2F)v_@6e@6G!!<jLoG?)$pV^Ekj+arwv<a-UP3=}hnKs$JEq z>!i5xK29QOGqs5jW|2KRZ2eX4VUD!CSYOo{g(<J0@jyxe+NzPLt&$F&##?x_UU3cS zkkLzRjJR{4buJ9T2x;saOCDrVkhW#fsCzxsU)&+PR3zhHsKyWSo|H2-kNFcB@}iDV zz{N<AL$XX-95>IlxowvZSPpTQawC(gBuNb`Up)r;`EI^Fr)2BW9`AHw>`a?Ak@9e= zRchWrtCPlWucO@ZV!erm!w)J@mhR>u7n=csj>=4be)e{Hod)PlZ#OgM`FXHvj4w^h zaZsA{p1I7GOTRb9L*x0XEk0N_=v}i@cl#D7>N}Ze-s$X@YT{TsR*uSiRIu0cWX{R% z-FmDS?b%J8UrZ<!I9+MUqzTwF4%QSB5&lR;k%^g3AdmfJYC#^KgD$&)9#m+e={$eq zChL=S0d8Gi>A?BAC=~tAN+}B5*(tY;b5eP<9V!q!XD|@v9-r+!MT$oSvXYS}-OSvi z>K}M-)B2-Q0EiryZ>4yytA_bCO>=P<-x%ik>oV&||0tbbvu8c+5{mXFp=0p=vGZZN z8_h+VqQKj1|Lr-^5>UJH*}oqUtAc{&o^VElC;}YcLC$k=ul|9~5$0=K_?^+Lk43wF zC&MtsmLM{`sWXQCZZJ`#I<@voh!QogGqK<GA>Nx09-o<@Q`p6M)VK5O9UHf?9_@d- z?(2g`CTZ`6BF>-bOxG$kM~cP$6E`GHbSi|_OhVRQPON1wR?bjzdY;V@(nRRSogD!@ z0Y;%0t(D>bnWAV3pSHijC>JwoviAIh>!0LQG}Jqwf;u_wUcjN1%?#RXf^9Me@-gcq zpFEhfEwC$y!+59F44f^U$jNLt_JT={`GnZ6!Y&mLtIdU$eYW-s|0HC8Y^XEc5OuAO zQ$i(-=)*2a2+Rm{&%YP($v`1j&O1uB8Wv><kH7X5-d3otZ&$1Ql$pvpbf;S<o5R3= z^7e6SYNVMIB=>>nnxd{tyy9ULT8?bj#>Qvfydd_IJn)mh0jD$U)d!l5^^hM=d#8E4 z5Al*^{{SS1t9i-;hS{hzW8;|!>flHxTaJ(N(p-Bcc4RXAl*B;mx39PKA0$pvQl3oD z?#isaA70bfyCqch?UEzI7pnF$%bs9cO8u;YY8s{mkSxt|YBHkb6_!4uWM{SZ7W85z zPYT;*7xz_nnejhZC3&>_YZ%w7p^|ZwTLKkooHy0mKkDsIi%yXUwry{XK0p7}Hz040 zSklNg(vPNRG1R-1y^<jD;W2>ZZps(x(64&FJuCN-(vLI(h7s(5=IFNWgQ7Q7mYe}5 zurK8~>70$wIzgXVk6AFrcePjLucvPCJ?ssfQy;c`u?D^uU|bgUvh<OOm&}=Y`g(3z zs1+(2bqOy*kp`3L1>Y?g^^p>Eb>h-wknXFW_hEj~8vg28v2y#-0ns`Z@f|+58$?0j zk24x)BzcTY{8gx>%oj~$)v(y=qL&tk?2d)uP}&?CzX*>$yc6;IClePCeUayf8pdB8 zBdR~~xzt=da1l*o8{Z%VRoW@(d^)|&5uc@_hM=USDh%1L%0lV?+1>k5!(y?wF)}DW zQA`E{Io%|dD>=}80LKzc?+gk1Ib3RX)2$41g=Fy@|Ffx{q&O4q@bUFbrk(mI8C6;( z69+|V>u9};br8~J)_)KO*{9cZD%XuLW{yY%dus~@h0PC=-?6N$EZ5}UVJLzz|GPt& z&35zPWnq$D$|J@Lj7o4%pM9fFX~FNIzNa9u-0aF>3n78rk}UD7n_U&XLvs`kt@2N` zU}wVtBFlIsCU_w9A20yULXEUl9Zad}2>63i7#{>cY;(_mF7UNuN?DW40?hThpe|{i z)Py-RH^ID&;R7kmp~r5$$tAx#f#PFW>|$by*=uia>XU@)%2z$p<9}9sKMSJOf&K;M z0iAhz5}Lg+7%6?D1Z#1C8$XcVQs%Zu8dU9cNy~hy*<o_NR3lc)r_-GSh%mGX*J(<h zI;K#Vkv07K^$ET1%hL0pid(^{<&#Y1Lz(QHf_L{{{*1Jn=na|HK3G{x|L1w8G7R%6 z6{V1p-o$-Pn!H5O{$S0|U;eMwB(TfKJOhX8FS64F1oIc<6AOYPEvZ%*dPB`ZVbv*i zGo}C>M(NYkmT_(I!Kt$^Yh#$R*{kPTsT&}rL{Mm-K-tB@{fGD$eKK2OQZ*E2LCT*v zn%B*f>aVE<(NJ*GP(W&NGo*A=`Rhbau~Qann7eNA+Q?>@#nW`T1Q>sN6LI*oc*<5e zT`Ss?PGvpo+qY91^Ut<(iRV8~b*{{!D2k^fPZ6Xob(JX`mGM|iljuFqgzkJ~+d1Ey zw!hF;TW}bcumjpsDfb^txeCha$;X+iPKl12?XJIQf>jl{DNMWW?6>eLomr&cXNuz% z0zuCp&a_U{y=bMvYd*bfO5~r>Qpugtu3R4$C`Yuy_Tn*l>o2~##z}H0t=yqt3KQF5 zfB&UFDt1^^_pO4kv$Nin3gm8(fQ1T)0y%vf6T<U}Y_+FuAeyxD&O2X~qpG(+TS7JW z21NzUoPaJZdZaj&dm2J1h|$&|j)+wPRq_xMs$Wt+vR#9>AG~bfdo3VQsZ68lz6Bz` zahf&D8i3`Lj-<m3f|;isvsb@DI&>YiEW6UYOOzR-Pb_w6n@$DUuB-mUdzfL0TP)66 z8viq(?vsVstQAj`Pn|Ev5AbC=LWyGc-)i9MJMdAKrc98>XeHm9{its3iEw5E(|t?c z$$a$$*(3_REM*2l)5|G?pu;vq2XP6n7@!CLQ3)~I+ve7p9&Z;CSS}B4VThkKL5&TP zYeWT|<ax^Dc$9Zlq!%k)jm(>}`jxy&re)r!w{Og!6hE~F+uB=f%am3E=kK;ih%b9b z9F%K(+zmUO(a8~Y<4xE-*SydOawf@;&f2@Tb832rE|Cpdmd7k$R^)PmCM>L433I4@ zp=9xGxEJvltAiY5^EN){_Fd}(I=^K(DM0`N3O#Dlvn~-Aqxz-A)gPpUYb8Gwuch|= z56~){vS!u%XXrc5;F3^E%QE^l%u8|TzW>O%PSE><038eaFJR<ez#?{Z%#ThVsPo0P z^15om7e*f0hCh8JRigdh4!!my`f7Q3!jFSZVb3&oQ4}P6+x<{xdu?t1S@wLnNNVk} zbEzm2saEx$7~1)HPN5ky<`GS!niMOg>ecQ&4fssG2X#FvIQaG-NMf$lhex9?pv~V9 z=SXpw9%d$yV7*=#0j=he+QaqTlo%|*H=q7M{ik<D`Mu2bQYT9K-;Iu1_dTH7Vwz;m zx9+rkt4onw&#Q1W!xb6omkDLWM+r;NzNgbi`DTVOl9BJL<=RZ!sdG-f8ahgpA~sf5 zV<Wb2iz^TU>}siRmLCK(?4+V-{|8{@a=n#{s(D{_X{#Y(o99{j>O|ds4VZe-gu$l{ zp3U}Wi~eLkS4%efpcIV4ZK+g0l?L1YN-_Dgai)vd2>yqyXDK35KknI>(sbu0fqyaU zx%nJ32pLJ)<cd~uH1!{Q&AbWh`r)tdo=orT3+Q8+lGA7$C_KP)qTz4It3Ik7s%A8G z;m@!!3d#aXCJWE2pPQJVifF&X#abXlT{61IG}eht>2^kDWe!0#38WuPS<ucmQRNg@ zae?ne)R<?S9z_3MUcORoUEXD5`(27FyjtNC3+!a7GSnloVPQ797KuZSG%x#cGdj)z zrJO|<N{lAY%`H&0>5(^KTB+TvY=_vz5~<c!m{M{$%aON@aQ)66O6uhhqtz$9PpUKW zXw*=E%_YP385#5_@2wZxzoqDB?%Ko(+snC6KDUJy!t&tUw`Hq(V9M#g%k0~M^(#7d z73*}HJLNH-d_b%BObPQVY}G>YdzbN5DGTfS2k+0H?s()CY{p8ByI1wY9m|`ZrhWd9 z6r?x>TlEt=#}_2cTymF(dVkX4r!RA2<Es%%9~aJd|E=+jGsNZBgAKF2)bw|c4OEP; zAZO8*({~U+-)g>2T8U7~?{9g&9S(^(4eXZ?{?rq1r+m_fQ%PZY*L0MoElXm`C&CWd zWC48g#46nr#_ZM<|CJp1`ojI63+4!*bGlmflRHB?s@tZRfno$lL6r0NSPSyEH1@QI z)u3|stxb(jN_1&7qX*!iY54HVW}U1@gXjgj_V2y&jI(KBS+XY7o457=&g!Zke6}0S z)_o+w#IsCoHLbzt9&VdPcI&P?O_<OM#l3rCI=k4sdS>C{w~o{dr4V$^NlKa$QIDf- zY-xFe-{lY8$rT~_A3)S#=g}ff*}2yl?0e%}yptdpO9TY~g`qU-PQ5ZM)XkADWHLX3 zF?(s*Z31!m>kimG7Y;w|@ApouxgbgJUq?i7Jrg>m@n39rO^#tg-&bZd3k->zFJE`C z^wW%qxTE)EV7$BZ@b`5Py#JBJUfMvFx2QUh@yO=BC7oz|drakA?TD@az!FnXkcw*Z za;h5ky(`aQueOjA(o{w1M=fKK1#)ACd`^ecyi@`DC?o~x(Mui9xOXq(`<bx+KJ3{m zvB#c6Q7|oK2;w1x`FB|ghXr9WcOAv@Qk;GuAkWyB+&ds^21saO`~3VNZ$A52&7|L2 zd*<$HF`}~AqpgMwH~<$Raz$ObTqiP~l!yA>5-HGHBa-Kf7(lu&bPa{FNcTC85y=f7 zc>EoqU_^y1!x~6Q9I?H8Qz6`KhB!Dp0J)FaC{Jm3iX;6I;dyyaq$a$@{nnB==_Fs) z=i4g5LS}SQ?hht7#DuU_7qllhQYv57Z6U>fXuf`%1>L|6TSD)3l1h(gX&=ZmrB1=5 z)Qoj$r>x)HF}z`0JOZ~K3$5PSsAeCatMNyNR#kAgu!B^H+9bT4F9#fiC(wUhM{#bQ z8ow}^x3JogQS}i0x*kT8#me&;4pVJiSW6mwIfRa=u8U(BCm45kiTKEZdEOoR(cdGU z>^EAYB0PqJG&C-T-11VHe@<j>oLIxB+ee5?D`4QMIhc2!I4i%$b&XU{1^|SP@(dNA zer61n?8S)YRorU?7WUN=)bL8j%37~k*mBe;+%?PY5Ylbgb!rf^(Vk1f69}z8pGp)F zv$hidoyo-5rLGiRp(V90H$V8$ZXr=prJq)fZnH=ine7r2)4QfpQ|emqPwhAe>|Gn9 zY9D4~`$%q%>KIY>+lq-)4PvO1=fZvqB)(Cp52{6uW{q+DWK*c!&SQ_@uZM3vlO)VI zT5zK*=}<EzTQU_o=d5=rHebQw>Y_dPg)jS|EPh5@{$^tML;F>$%kkQvdFSfGH@+EV zS^Hju_BzIquslTC+1U2wD9bDr_O;yCtDQ3S-jQwiuZ59CK?}ZkRD%IEJ9~+Mg=ido zD68^kr&P74)FXznOcKcn3+pS#9s;vUGtboD3J{3jP{XI!4-WmGD>ORXgqt=nP(lX} z-{m>N=73Hj`onh9;(KX|5wksoJBjSu+#`A40i7drS~_vt=`f|}#a1Jq(DaRVUN@8+ z8LkxxAJ%&dT5AW9;UifliOHc(RE0a*QvW0L9`O<As_l0Z%@!D_DZ$iWCkX9f^c-m& z^c#nOoT@s>EnH87Z-Y2~_rc>b>E$0P$n*tEau}#)if-EQb-%-`@6kT6&uR9BDRDPd zY&qt?uXQM6@y=d5HENrbCSPk&{=QidMC}5RGIaE?aM@_fCJ(O8Jd<rerC5FZA0VG6 zY>p_sM8*FP;7&*r*hPny<=IEy=lpKql}l>yL#_If5fsxG$jTD0Nz1f;nP(R>oe6%y zRwh=^Nj!I17&dFPC7zKZkxDdZcyO~sL=mmMX)MJ!XT(v>M}zR2dZx@efD}VD+mn^? zB41=s3F^g7CA>Hq#Q)2b8XJ@eq2iVp7QFAH15f`PmBFB}Q;J+0^hfWqtT3V_@xSLr z;!Oj%GYxruS@`bTX{akRs2mF)7<anl6ehMIL|@+*ii`0B)Y!zmcdUYqgzvN>dd2Ai zA>*8VBI%_n-Sf|P(!t5!Y*jpUa|=!f(AE?R$NEw`p?by~F=WtNvmn;lqWWWv%=!0; z*4tXR$zInWh%<+!N^PwNYeDe!3^_W$E<38_hgUoI<vhFWQm3@gR@Bxe>t_9{kUd=c z{{Xx{ha5V==nBksQJ>Pgys*@5-jADj0&j5BN;=7iKJ-{j%vrzZp?9qDe?+=V_<Z8o zmd9;JWX9KBWw)kj*9BBz8JG3C6~0|E-BWWvjvR%)J;~!wWmOmNUMfhy14KY){eqRA z7F|99Z;_>>VSh&F-ZW-x-vL#4tm)Fyx*h3-thyLAvjB+wvHI>zp%q4U8yKKa{jlv} zeh0GfPoWUbArnUbdE8OBp`Ix{GE#b2AKxzR-`zNZVRhxHiPm%1)IN}S8cH5qeyR7V zW6V;u4TvhMNnd|KR_;+_L2+yPL47Nd-@bF~AOk4Gnf%e?oBhKn>K~O%s8L_y<yGsb zaYp64UEQy}J_Zm(^2`h9Ym5osX?tnpUnk*kv70gya(EBR7pj_b(4F4gMdK+xl*;2O zg1$l{zDVi|N8Od+NF(dz#njrPMO@$YqV~mo5~*#GF%%I;&6578(_uy-EW#;W(JU0A ze!U&L*<{f>cUSH$!QW)v>5V3WO$|D-?O_*FS~U%O;_RI>rb^g9(8TqA;>l!YgRZ+@ zYV*=x{#{K`Si;jQ?nJ>tIJ+voE?@}tT@I5{se_Zm`7JA58-_ML;LIbvV+M65b5xK7 zcIND)$O{)R@A|<uW!`0?qF$K{f0_gSuFt;5c;G)Skl7x;fp@~2`u@UBdwFz9x5yLG z8$+l%=uv+Kj8fFVUx&>N%mjfFqKE4rqu6#q0Awi3Pv6D+?kjiw=)+CHAr%e_EO>MK z1F2D^47}OQlL_Q=Gd+IMLjWxy?le%7@O@g1h)|ZybXbz9_$=s0_S{t^0%CL?=zl&) z|F3n$l|KkOEMYg~EHdsupwC$BiMbETLi(vlnhReE{0M3i7EB|mOZA)r4mlxp*^sRl zw`qiEg6VyeL@!d*@;UlSM8(*+TU;cykL)(ZXK2uuq2cV>M1+8iv9Be;sVQfx=<BZA zDoG94d8?g$PTWvnS*dtzuKc;TCT`3*SN(Iq1sYGdpr+!D+AW?|D%G{?1gE(Mqi)tc zlz)yXU>Fn^sOwiBQ}QNuR_!M|Hcl<JW#1_g$^F6n%B6+)V}h6YfxqSpcN7L4`oTdp zCbq465~P@h0ZP-Y6ePL>x>H{b&h}~bro@fUcslfo(i2vt(H{S8tf1kXM;2=bWN+un zYki+j<uwcI`-7&ecSSz3{HT76iq36BsN4b1o(lR4a^BJ4Aa_%!+ZQ>b4)C=7jR5$l ztrK~zXm9AUpY&X<T5(EL4-U1E5pA5rP9OfG+-=tX6H2}U26+{vzPnifoMOmu<tdD9 zsxC>J@~Lf`d0VcGNo^F6-b@x&Nx|bF{DVv{N5DS>%3K92#g+*NGLoN1;NTrRD?QDK zI#-*p{OpW{iN|_O*WT5y`LcWas1D<$&AMsdW*uNm=OHO3o!LFje}s(D26=1}k!$l` zM%5+9ltQ&m<83l;(lNxJ2|`Os%?8@c7W7pz=SP-$Ef?>1W{2DZG566K#LmDc-lgC2 zkge7sxWMFobnt(F3P;+)zSxx`o3D7}?6}}Ng|j_z36Z7MvLX#TiEPhps4Sq6x&XA7 zSivWnC7}W-*g$@Td;jmw>Qxf%yR*c)@Q@r}SOF6h`z9>Ng16#EB<C)?vUr4qW!Et& zSUk8;Y61HEhXJLgzQ^RBO7QO6axHwrliM)t42!3^)v5o?1jK5{ApT{u^@o(arYOxU z`sMy<L(dPAM1aA^a~;kSR3!&7-P}Q{*F=5=_)#_WikKM4vo^Ntc4<1%r0avnLI#)0 zW$Fo@<Ggp?DGD1gpo{1|cGgwR*F27?&vh|H0o^JdrBbStzHtk3Urj9u&XV5i-7~-o zh2mi7zMr%yB~s@w#ePiiL$9Ehr|^~|e1R2C_VCnL`=)stLuqgge$@lEk9m}mzyI$> z8LKbGIo{$01Ahf0C!+i}^PfY;#Rn?af0<$N9n*7#DV&Ht)53v_g2jAXxEGUXr#N5$ zwJU)CZFg_SVTKi4WxH>j4hyL&xh12Z43ueze&U`OKe11^{^|khqNQhuA}T?Z8foq| z?5aWQDjSkn+9`}C;9%wx6CvRQGKDhC9h!(Rf^-L^lZ&<>E3kKV?@Az`Yi#%59V61? zpU(UdS~@uy3`oS6aI;36o_6M^%@gg|_8BE#vySqo!@`J>AxHJ5jNrNukh?79Mh4>j z7h-S%EEI9PqWZ@oaJZasX1!rciA>#qtev@0<q7|H6Zky)dAWIa$0ZH?O{ik{0-LO+ zlw##1q%icv#CCmagW?{|;{q}_oJPcA!uRF(sZFuIM*cH02Lwl}aS`4}I%C<oSv$__ z{pQjAGht|Mxq;7FFI>m^pgWcMQzi%wj#Z;+0L}8Q-%gRP$DYs4V_)tKHttO8)(~fu z;-4DD?fHF-&amlO7-8bbI(K->xOpgzJVYrYb}s2NTB@8St-3;Kgq2mBXE#kJPk^M? za<K^)G`slFxJ3taNRIyo;YhXxf2&c#S@_~Y*o`}udM$AiZ#*XjW<?507t2m-m+|Tc z8mjil5WX@-8L@(0u96Zp=a7NOvkiLf>RS4Vy&K~b>y6xnpijqOd10AO61>xS(6qI) z>sq>>iYFMtfE@+eo9+i;$#};{4Z}XFRx$@Wl_Hy)#@5mn%iUKkO$^oprnSi9+5Srl z_D*R6^`Iz%D)sUV5D7Cz@@l)vZw*vDXuH<{g$f7QO!;_vjxUf9bCX@)PfZ^+aq}!C z3s*8f@U@SLjdXI-fN1@+sY~ber~phvm0^~~*S`JtHUe)Z{aXYHSevyH>5S9L>pg`( zbFr8R;bE4v49sA!`iGZQG!mQ$Ryh-aAiaX=!f>;Ra56;gZL0WmH;5umQznW81C?dV zf0??pK6lEqcj$hUvQS3z^fVq5bslA4;DLMwhyk4FiJG?*bR8L}(cn6Fdj-0`io0F% z6{z};gcGo$hVNi@stQ+?&*_H(aGO~0It>oxKP@a$PZi*-Vanl)`4hJbFkvzT6!tLd zg1g5-Dc;`GI8>VFM~g6!mf$<!eWe&&C)&WnNaiu6hRRV&KZ1Q#yI!U7zUb}7eBOBY zKrn)waZiq3%Dt--KCb7>8-@<8khiPm!-!uX6avO&-&q8Q<HD7QBl3B+W^Z+D>Y(zx zPAiH{@-~bn^QMvA?t5&W-kojiys}AFMaq+;ew@Fkl=Na<iMGIj<pr_*u5F6opnD@U z@IYHl;bK)wHL=`jT)<7xkv(?>OV1%lMpmyXHQ?&%6Bkp?@?9_38n&=rI7Ddrcg7=k zeV$V5Q?$N{E*bBJNRB$GcUZ$+fe+P$)2GZM?arOh;ilsj78-1q%R6c6U4fcIj@B#V zeaiOp7k9r}fJxT!QjHx~t$RKy(sxx1jB~IuA`%{j8c14(f5AXSmKR+H;z8i6^3O)% znojlBjJu)_B&4IeMgsJID<nxyv?k((&+UX85?2G(_WxP(L8jt&0X4q}o&%BAkq%2N z{{x(gm}5Vc8&%-5Extc?Hq7;d-4T|h!m(TP|MgZH6ZCp`7j>zBCt5HBG?ycI-#*k! z5a^d!Tr2F>T9cWxx0{q)U1`B&`MPuOyp;U`v%qOtRdE+?-^8}@ruLcr``1)imgx;a zXJ`r)&+rH`^E@raFWGOxDPSgd1TCar)>h$k4!l+od@<+yOaT{{(=x+*@1)xQ042|# zutZXQ*P4txfgu&oT!*a;6W)t<x{jdCKlBz#Te6<>gM}?pZtSoVwr}KI>3aeaA|Vxv zigijb7*Y23H1YX2rQz(Pw=xni#K^#P<in`<0v!c{)UGAc2^QJ7tFnsqy6qY9UaN&n zLiVlul+{|0Cgme>_0cd}4PC`#owxor*}v!(6a8h|c5Y2!+LL(HgOZ65HbB_I1@g;> zTHyNlpW)R9%F)=uHrNrF$Za^bll-b)3tRL$sBcW=w(j*bZ0Qu0KECHxah6FlXYeay zt$mQ`l?0WG9qRAyW_h#x1M^8ck6?j03m!Rol3~eRRMd9z{VMyAnhpjE^B3eb_{{0& z_s17U72~(C$4^;)Vm+$$vhr&3m8MuPfqxpp9lNc{m>M*h+4tdl55C<E1qD*Lzqi|y z+)FEeq59xwbl~R?S4wZBE{3%yd4EsN=zNL0ZFBFh<bI^Nl9FIo{YB9vnNwq%OPjQ% zwLWs`Nwf7=ov}TK%xALxPfGKoMj`5KDgkDN9d{x(wUYY9N8M(QJ+&#rDM7vppvBTu zbHc=mn!@%~<@>|rBq(KPjm<CW?r2T+h&sg==SE`!+4e@IoT1gEBh8efQ)=Xd0JnlE zn!wwzdE4dJ&nzBm(jE57vHCA1ExU<&TJ2soQs`VyD_X4(@N`9fboV=jE-+(GCJ0CE zx#qT&-S)ZX&Y=vv@iAE{-)$LDv6tfTZKrboXDn1)^zVJ*3*`Zs3OflKtuUW!H}umP zaHPR(dCc}se7@Vqi6O>WnklC4hR=BV>BahG{X?h*k`lZ`W4TcJNnh4+a;llG_#QFr zZ5`YN1EYx8ce)kx+vtyU+AOZp6MMLES&Jt9FA6Q%|B;XfRh3LuPL;)k5n3MRS?-fx z&Xh~eIqQi7RHo@fnCfSJ%|2|9?~<f4i~5&jJAHU-Al#iBJ2D(BJT}@ZdP!|=J|fk5 zWPMTDx%=W;(;*`#!O3_WcwGk5I1FnK3pcT`D`lXx+csMxo6_Vml-1RzvppVBC18TN zTAL9U1-0FjMKZK7dhM6aa~LuJ3(2Ww@0q4Q=C!c%lgYL(8SIHFUFD7(apNkNb9mrH zUu=|=B)V1SZZ6`kv-Vx_(I@rYAfTC=qoY+kS7JQ^#Hyn6>%sGtmq)A}X-0%=b=HL@ z6KUqAt*CICAQCkl{I6dGhh!o+Hu%&ey+tZ<4B(&QzxhL4zg3l?sHGwD`9x)M<{HnN zqN);~lyw)x`LY>S>b@&w;YuY)ByLWK{7Mk*Da1^YEV_xG-_O*;M}s1SIonC%$CXdZ zWt*MewZ{cCxM;TSa@Pyvkf)#y8!Xs^AkC{+NK&;&J4Y8w9#kT1Yo@dw(CP%hXa-io z=cMjvwkzBJCYacsd7lnjT_ma1NZY``;|+P4`W2QL6TdzMP^U;lUqsZnrD*$it;%vH zhIxO_g2akpZ<1>en^T5kHTERxBQW907rI@3(xcOsJT7!Clt?rZBC=+YlXb5{w)_{< zdBlj?2M-LnBXK{kZZgg0G_ZHbUN*nu?ifM{%})qXkOkY7o}p@)vBrYcJ}Y)=rFYt$ z(EcWxz87$yZkv*rOqDP7v7&1xK?%}05FMQ|&F7py@3{E)>qNk)sV=ZvqR1bOkR^&e z@8Vxf>y;%Kh5e{S=a=lI!*foPk)VjwKU&Sw#=fEk^J8B<=ubygDEAHA^rQX<;8INS zXy!23DT2>3bh00^?0kNI$kMk~GzkRGC2&Nm5P3{KS5&pWi0Ib#5He)~qf2hDKKzNE zw~E4HFPWEsHZ5d+Zs<b@W(*9|W|{vl@-hN&Y9Q!g*>^L|r2kI(e8k_TKG|T63Lx1j ziq!V>s`hd>;|g}3|IeGjK!+KfS<E6L^%Zc=&a<d5L${KVCyM$1wMNVNHd^h(&~?+` zYZh0=Y#fNGj8xK!KVlM|ydHnsMgCp?;{D5XDp0g$yFYeV4!Y2M|G;~vU0361WEGcb z7tb!EDEyKI^tW`b7#E!NQ_%m5rw8ds06t*^8TLS|q0S^*d?3_w&Yo+-qoGJ1h=T{+ zRxWi_N>_<W!9rM5--47digAwCDY3`G>GxO5pH2J#)$1I-2uF-5n>Kd$2TnxW)Vy|j z8Z#=nZVL?F$r);TxhKq>sw(kJC9$}8rBM@ORR~%8>JkBuDW>7@w^z!8VVX!NJ`?7; z$>zy#SeA22Tv(juTGGXc$vOs3>pU$H+z6e~I~S+eOu#o0rz!EETFCzZJtBNRGu<y! z523>}OVsjWt^a9pJ1bEMHh7ll*tKK{qOW;rt28d(m1tcub_lO+0WH3xPz5FE51((& zd3rQXIu*c{jv&k*Jh^g~V7cEbI!1X<B?Yyg<9kc~Ee9$cFThJ~JsX9GV)JdU@3w21 zZ?aSRxmz)jw2KWWA5xSOI}E@I!_Dd+@1omo3ghzHf7x{hxVLM$YSBkJa#T^oG@si6 zhtqPd`YYjk@@~(K_3e}x_F@!2xn6fZl0;R5(kWH{dQ2rwy3k!ZDU><izIQb2tc=K2 zZr)}EHTk-~>mA2MkP5DDUvtujn`tA5bgIS1s{y-HDi;zI!Y!>;5&+1?k$gl_;_zFO znn`fg&|ByTowA-;6il@w<IhJHrb<pNwcjJUI<|#U!W$)TM4w>bT|nR=v`mQOSb?qj ziQFms9x4y!CI|pf`V;1G&z<D<I@Y}-v`vro@8ALe@LfF3fBKa`=Su?`vs@CAh=}7- z0nB_aPI+zU^6ihW6RbUL+e#La?<{;$0?-Gof2>(<xOlppUF_9vThQT)!i^ac+tt^y z>v`eqI&!*iuSS*o+KGq4kh$W_MP>cQw@?v0!NmGq`rYT`-=pX7S$m<;x;)CHUa&P5 zp3JYh{Nrdf1S`j8jkqnPibQDHe^5K=?EeA6(v_?xImgJH$Yj$7zD^<^o32A1jUk?{ z$ntHB^H2dstIE@t1QjT`u6~|=BJFTmVnJMn#V=`4bV+c(>5y4`=T()%d(pDAZk_>u zyrb>tKc*oi+#C%a?rA&0lbD>vPfk}`t$RZ><RsHZ%A_VmL!c^AwTu&Wob05LtW2=6 znGLJ&Ha2@lZcMEP)4Xo98vAfcmZW^iM)|4G^#F^W(gdFEJiG)J29x~gp=+2cqK!<s zO_g?PzPgqL*7}PM)#gM4qo<#WvR|SLGZIPl#}rgsVRFGTS=c81BA;mMG|GBah1}Uc zqi=1Rcr9T{$opAbg!SaiAkx=g+|v(0=1ok(3cN|aqb#r8+LAv8hnY3sp~Lpg=!Dvj znK4zAAZ#^E_nnQGN4g|aynlE|F|F9WVyjew<9!EiDs{e6Ebi;e)OqnA@C`AL7CC>% zBRw{CY8Z}Cc^0sj!0&J{KaD*57xz!zdbXWgqR>6s-MMr#4nM`Yq@N&v?^mqU>?4N2 z?`E0PobO^pym?2|xicl5M5hcRGp;x^>3+Wk&OOW>!$e7sKpwQ07_5;FkVTJGsuF$C z;VE8YeXK;N<ni&z*m_?eaYY~GRuk-GozF8rko}VWUZg_B8C^y{IdQ($O>8xw{RuQa zTaFK&JIo6ir!SA1K4#Wd6se^!JvDyMpBk%rx_nU3dS@tv=KTWxja)23Oec7D5;*l` zVq&zoMm6k^+#%6s36snkFkT}M;fg4yG@ujD=YUy$N~U(TUu!zD*v2uFPN!6Y7~7m6 zl@*4bZJeL7RGKnG2hXu{dELSM?FCq0B^UH_iGVj@*6+2}@5x}ann^W*^ku*1q($-D zv0Ji+0qlscjME2h`-h7e2;MH@vH!f{D=~`7ZW1yrp|hXl=f6x4c%k`ZyipT)sV6$7 z0Cp|*pyAGVlV9Pf0TdXgKlo?fkpG}Po%@mugRI2QFA!_sSBI=D+JGCt)wIGGHwQ~) zwLtMLn^)U_24@)XdRY6=e>O(p$iUmTPkG+Dz3EvG;v-~jmMfo0Wnhd2NZ<A#XMwoP zd-Q^y&@4=29qKe|@_4UFs$oE3%>=hkehn5Bgq|Q;o5rq-@sNboKIW9j;Z!}efeM6~ z$b1BLLIRdui#%Qr4cWU@vRvl?v2$6<Rs1ZHqnb7qadp2ur5O12XnoJ8^?h<)Kgye+ zf><g)h~Z)EQ1sroX@aNm<o@_mRTf<spksXSNdh;op9l%<X|@l%O%=MsQl+4G$g(`X zz9n~VY-rE6Tlq52VsV2OT6cYi7e4XL(AeM-kio-Fw^<TnQih!^y!!D-^&kF|7#-in zD5<6d&vtO}m_zi;T)HhzaIAKznh$U8;O(<ZFuK<CvXxZh^^=a(p!gz8vW7d+!^$^j zX2h<Wb=ioqdL1WrNu*bTe-T_7)%!t>)n)rgTPUYTv85mR)uAlSQ`i4|l7i*f0?>eI zg*W-&Kd(QkpBvY39s-3`JpKm|qD@@P3tOI(HnyZXoMfVa%ZfnP*1lEkUMvi_(W)OV z=JoI5*bg~{5D2VT>oVrd*&9Ww_`o&jWv}#Nj*H_q68h)JS?SwKe~HdSKWqI8FFzlT zGs&-c@#}h%EnOcK0d9w&OIpvKGgi<Te9*CWnh74fm%s`0WO{C4Rv)1g6P}$IqH(xd zgfs4?u~4#S`*s&CVojRyR7!F+8(a*06E?r2R?eK$(M&k_yVp3xKLhV%RXWN3&ud@b z@yu*{`<u#%CyYw{QF3LdmsIKmogNO(xi{CIz*(7;zGL#TVC(}VCbSlLTpLuR?`y2B zNm$65JB^FZ5{nBMmZGx|!GS#<G(DwuunLfw$m{6t!um^1kY`CxGuoX^*jvO`)Ldw! zj8XSbVhIcTPbS}p0aTiX9gZ*C5<qJA{l|vwYDDgHhjh_*{iw|;@(LvXX07k_IK@^u zN^wcLq!osoXX38ed1q^zboN>lz6Ci0FWN1!)?Eo?r0-Kg!X8B9yrTM8&iwmpiRf*~ zv0=tOYq^fGsH+AK-5Qk|oiP-#s%om)_&i;U2XCM9D#Hxhu`d=c>o%cfV%4DbQCM(! zr1i<E17F<OVCcYa^X5L`Cq)nIEmKz_zkIHFCH*qoiVyea$;tg-F?wM!Z%G4!@yD-w zj3)N1ce4a>IK5=`b;P!x$}xgpH_&7~b}kuVr+@j#_FmF%y41?{Zn?<z=nU6YHV0=@ zPfQO+X`V9{6&nQ|b|&Cv%N9DoK@)ES*@p!I*w(hk^8k$wvbi^OJ3T1;9{qKRkEerI zH+35}L18yfic$~tLuO-?KfAJ5q~KOXa@d1?E5I$>D!j<*JO0B{Axl@aC{jac1&`x> zFCTlv^RO46T~p-NKPk2&Ol_{3V!pgvd-dT@JY$q5t4wmVz~=<Anml+zF4zJz1w^~E zi`}F!-IIkF*34RXdlA79?5Y_QN;y76?d#sDW?{H%PAShXuB-BM(x7V)+oetugt}5B z2miKf&{Q{O7q#09Eelb14cVK4^d3WBG}Q(E>~Mq^+VgkKJhMr4q}^qw=_Lz*`&#;K z#R<-(DU$*O3xAgU(94w<8-2fkK?a*9KU09I{ucLmD}Gwtap+2nIn6cI4|H)WqFm9w z=0P$Iz1riyn=A1I12aUIA5zjp4?W#OH;FFE-D^I)J8Baz^5C9#JP+A4?Dlu@MAMOe z`sXC}-v#hdnf+IC8fJ2mBU)zpZJ*@An|7p<riP@+P-d<OCYQCC`e@v0VWgUTy47Wh z_uzz}@^@^SjnT<MvslFa>)B>=T{p_$1`mp03I(4w@&Ia(s9l1r^F!YvRDgc1uc{>{ zc|_Ils=3idS{QrO_>oa<?1Sq5wSLOHFkG+z3uhE^D7dVbAk*se;iuD4>^I5*$wB#C zvh}fD-a*D#o1iV~9)2?6Sp9UU+U@K2>cc^z{HU6mJ!ZlcD_^P98%g9~r|h&4Oh4f9 zX&{6Mf&6fcY<wyAZBknD)9xApL^58x_>cbE^gB!;cNFkY%oh8&z5^;sjIT*LO*yJ= zAK6r?duL89=wO2nTqEA+I{3O+$xNEVb}1zMO-7x7R6)alD`SRQHB!W*ZgOY0MHH#p z5f-1PUtR;BQ2uxm43@voHgFpEtAy56e}9BlYX~23L8HN*?F;i5w#5U#<5FI(&ltB& z*KRPfPG)C&e)b<$WmX;=bA4g@NjpqVe0_{+V-c&quF-DA1wBQq1I6pc%96U+4xdvl zrPz1Snsr?)1tHfLS}oJ29HMBhmA46uv3^C2ectIFBc@&&_~*0V&r^cld^ers6@c%d zkUf4PIgiuG>><6;vMVo*vbp%-1qu9d+i7ZE7<1wuOYO{yrorxqo0bgTS8B%vEm3Yb zIbOFmoN~bP_Q4o;!{@nH@m$?gdXBYT(_CF0z+q$E?QNh;_^T&67D29egn*$S%so#F z>{C~fn=o<6XFzIMj9MRQ4c~#5Uc^WG@CA8inO|vgJ1(p1=u%c@C3TVg;L*8;Mi6a* zwrBEtS4v-!Q_F87r|GAxE{z^xgkSC(jstTcwo_`VN2=Ff3h)1{cqmp9`-IvfXyxz4 z-;wd%yi4J_nSx$=c|VK1DnFh~d6<FULMz1MZzKh>BK`T>Kin6ps1|Hb<Jjk22h4_g zt)vh=+ZAV`&bMji(Y&{D?V|qqzX56?h}(>C%etShhAj#~sWyaYfsJYEM-uh8!(cb? zeC&SsgSk$qYEOI>smps89-!I9Bu4!yrA&M-QX_#pu+~sx&C6JwQ3CLdQWjX>QoPma zN9k!28Ch(gxRW{QLsSfKaS%)nS|of856rO(c$V9U6WsS9!>W*At7!NE->%A7!{CHy z=m5&X{4XllNdNBPA&k3R;JilG!@HyD(q{B`)GZlA3Zm=sTN<sZZHJ;szUbajv9L6V zNQHjJ3|{=F9Cq~<s-z^{RPN&XL>scASH*G|9BiCkS}n82PL>XUlHmy-_i&>-UIspa zcRgW9XL2sUq0B!2JlarAm^0FmWw%N8?wFGU)0_NiC!1dN);3mibM!Y|G@??Hmpd%m zV6$~!D~W09ZumTuyvZreH^a*3+C?FcS4dKL^n;V7@&~cly)55~nlZ}N46-)FjI2GP zZ)Rg!vo&Eej~=VOhj*%~GThw7&d4fXj?$p+NfZv03i{d6y0tN0-FcBYmV?nq9gd*0 z>M)nY)RBDj07mu0{7>QKk4J?pfu`O_8#{E67$iZhFA#cS5*lquB^f)HIPOgkuhgbI z3&wqv#_FubIhPkdXohJtr`uh#D!3rv4ta0sA6Si#U&-1}pogtFpvREC`l@}eFCsc0 ziI_Mx$3l?N2jXChFQ+><#I&PL>2Q*5Y~$~|w&d&gyG2G(#4fAn=gQ#makjx1tPUl2 zLKM7TRF$-^*F9<9{^pKgjw}lhcQh1NV|$>s&)~+cqK{}(gVYm<m-~~9JCUx#!s3JI zx0&f(YYE$xju0z9q7N^(>W0!qnJlgQaZ%T;`XPR?DS~9hb2wwKV2~nbj9uPYh?Vyv z^{Qs{W-&)j!I1wdZpkd+e71?{KtN#+<;F@r>iqZ`gvx6)+%WOum@CQSmPU$)-qiGd z%3FFG=P#q?OQpG6UA{R*<yaI{?&n~~h}|s7)Wg=oK3jG<7$dj4axNcqi_o)ibrz4z zN$S5oXWhG@TgCTDf~r}A3AM7NUnCU9XDG^HP?8YUio5{<<fm#;;&PK;(+5hoSbo$k zh3uZiO$C`I94Zqg)cZ%D*;M!R4JWP>LuDp{=Rld<RV5l|9-)mZZmMYCe@oe9nCkYm z+}xwMc`W)5`Szvpc>2$OkoH@wg;!P0);qy{5&VmTd@g6vFCl>I-8{QHdO|k>S!A)7 z^mGcUZ;SKSUzCy4z{df2Q>UqkWsUnPU&sQQx9zWFu3Vuek|}Mkuwu{rk~jxN;%=(P z{eG85)b;Exrt`^j_NCQpKb$BZ2OT}GTP~A#PadaQ1_`RR-U?DkQ16y2jVq}-suMG0 zsT%ed8~&!@$KH9KdmOO2_X){P{AQI;HhLjO(bj`*dG3EV7sk)jWyRhX(3yVG6y`y_ zAmbELN&;-ho|>@fRU!P-%0;4#_=w!JOTz$_heffOpr860r&+*2g@dwWU8U#BFG%q; zyiOef5A_z0x~+4SHph||)Mym1cS<`A`6T($H^$14D}r<#U7Xd;QeW8|Z&f_kpI3VZ zSvbv0b^2PWRIk09Gq}fjWYoAi5f)}tqzI+lOdSu;-17jivnlk+RAT@N(<-da6Tq|p zy(}n*`yIE$ZsGN7%P^K!0>IL@mr^!A^7q&iJbgl2q@Vg)BQ`;7vnY$4N1V+0GNo)a zEOV;l>tcmjHscTgum?bT?3g?QRr*_iqvT-gG?h|yG}Z?2W08<)Sx4s=+;kg7`Ie~@ zd+!<#7rS#AJJ%7Qa{tY{wxQ=|DFY>DsloE~L4y92L>JYJ=jkW!&~a-%D=VpZq2So1 z#qz$mtdApCvaCJb+T%-vxv{6#NSI-mhuqWb3(dy-Y|l4_Bc(WR-&^ua3lf?MwcFlf zVFHEYkn@eq%aM(1Hcq%G{XKgRtA_#Iy@F$v7=P@vB7(G<hv8nBZF;stT>zKjJ)Jlv zL(14=&!K!f|G8SWODQ)c%b(g|d~^K0G^d?olXyV*EPE^ibf&6uj4E?RL3t-Lm~{kj zQ_rElk?~_Wdb#`iNci08i<5z0c^0YIE}p#y&PjeXGZ<|)8I=gq^Pn*TWc*sibLeeP zI-XZSHS+;2gPfldp)B|QzFqVzjb7oiuyfbYtyG=<9T-|dvXMD0Y$!CB4Zjz@xb&L; zGVnKkL>>URdt^=jT9};(rv8Pn-IVm%_+U&z-=)me2K-7Kj(pUj49E1v>tQ>%GO`)d zb12Dg>PHH1I2q`p*C3rAJzLW*eP<?*J*RY&X25U4qAGqsc2NYeVE&2~VfQ^FZR7qD zSH^Fh&MNnM`HIr+{ymGy6@7fIa?i7WWU9WMlbjFchzvsQveFvZ=v|b`s`PAHt!=T) zYV7-2{ot$b0N<htX46Txe+A3*?UGo&F*WglbiYcPr{JUQ+(TF7S<JrNh)cu8AW2T( zLuU$m540|6n%e<04mwh?f)$<xZQ}U+$nWg822k*9-2m(`wI{-3X7B<@<iFEug@VKK z9=xM|A6F_FJI>DLq`#lvfRMpTHS);qUzcc5eQxwpI38c2cOa19^kCX--YAn%@yqC$ zUTyiwStdh0)0W<7FdVF#rG%9GMw~OzHjXQt>*Rv4G2!zq@xOC#WEDZM`pyL+E<|SE z{v%~r@=e#Rg7IRO^!|HWnewWI8?I*ib_K30%yU1h4#6fFIVs!1@CW(_Y!@(jf735+ zgs`ZF$UwTkXC;~Zm-SPLz5ysxK0VUW6SyzKgo9nyapY6sN1<6IU$@kld{5InjieN| z3tLm(JFz~!S1d#K$#=#^)FE6&8x|leuIs;;@1O9y7UKzZL0$11YPh#Sv6=ZCY3x<+ ziIcOzTr6CjeY8z_dUegf@UzKway|_ekfPE)U{tnJY9+n2e&UN}77xzIuH$3Z7~Ag! z2_LkYp760+RRg=T1rs-hcH2zXWWJ^8aXZ5IeH)TiiVPS9fRdYYZlg$0SCxYxYPr+@ z0is<q*vmebPrnWgswE*@Ps?C*8JA>|YDRhXcI%nQ-pQJx@XiZ}XPP3sn-);P1LaEt z6ZV8q&d{o70g7Wi?Li&oI_Uv15-MK80@pI=eC9ZlO6A~bS&oBX8mnDd=II_O;r=hw zRo`rVsn^S1u2fePToaXX)Kna6PJZF0*s!QU_5+M!qTqA36L=AWb3foP<%{nxcA?Jm zzq|)BAJqllyHlYoG4x0e)`gG}mffNw;~qp;%GhwgW=mF8M`YPec<{F{bQ>+=U@Vwq z{(L9X4|^};4bnr`&yQY3NPkW3>4|qFSO@`%B|476Zx8Fa97Iq7=X!b>KFcTOEG2er zz@k(3GmqPg<%R$pp5SVbqZ~Hh<)4ncBU0>Lr-N4Gp<6l3OPos8y$^o$NQebC2OGj= zs{Dn>rORY=bA|2AnY`cC%EEb=F7X7UxM#dv>6=koxQD-wS-UZTw8-569#)q;G^ON3 zWRs*EKAK3t3s|Vf0}mRsD{%>~Y%27SJsY3*k@l|0upgD--B~r@f~j)sQ;EJkdCe5e z$an`R$SY`dU;}RXETdzxa3T1&_(mCTMkWwtHvYv@vG*OY2+TZsXxv3(pjddlxc)P8 z91pMg{@0MAu}wu{4b%6sE~M&GOKZKl%{9tbMOz@Bqna+ZpvTNfq*wZMT2AP3b4)tX zuVTEx)E0)eW=k(RT${rK_J{>(Z*yn<NaFWzOqu8|Hc&X%uz1Jk@l5}<@+mo53vAco zKZEp0a5Z9!nZz?6=@{l1Du<<5aJE_ksjQLk!>furLy4iZ(!<hhH!?fqIXoA10%syJ z$yAeP;JmcS4Lq>vAIPKx^>VZv;_yazv`D6_zC`%A6=XC<S{PD(X~j@G;sMSU>#l5* zjK*YxSkBi6Gb@Y!2f%(<1irEf`1^T(m$FT(Wy(9aNXd8nWR}cwx}x&&lQypHP!nmc zsB|yf-1E{0Q&rn_22yXA^NuQ<_NK~e8l<$V&h7YXbA5pf8qS$qnKK~7N*m}y@=XJ4 z3j@1q+tkmfQT_=QQMeQSmqlCepq3Lb3WyzNjjxhwyQ;^>1Xw=`loShk_(cztF=plj zWFBuw=ZG@51xSvKu}%@e+%X}>{SA5KC=F_Fl0W8nQ_tzF%?|OupGS|>(qihuu8LiO zC}*eGxnlg@-#>-Rr`FaLVXgl-(p7hgS^VfUo0SVb{n>WL9_a$(swp4YyyRt&aB)RK z`%m>xOQrA)tqkpcE0CBsnHlM6ok0Tm18*{E(ln>_!C0bhco6?!(1%{`wzOe8N~3D< zU@I@gw1=LGbL{A`nvZa6W*<)>VZo>2EC8L+75IJx+1{6}w9gOoTQls{^cU-2|4IJC zc=Zi+DtR><$4ad8Zxg0SlTv)amd;joc7RgD(3_J?O&(g6uz76qqhJs2dKngsbGwQ@ zlqQQ9f(+KGbg(f95*l|fWNg(Lg*t{-(XhI%A_GilN2WXf1xg{Z!>I%;vdIL=1kr7L zutMX}EoH3HK<6z{>maT3J6h?!Akg`{zKW>pmQNz%#Z~{bFcDibS^;4*xIn^HGyVsV zz-Yu62px0_%M;;k#*<tuFDP>PBt^%{ew+C!pB6Ep==BkY(qx4N)9$D5_!PTQuI``M zO9L&ueU0bR;d<%m(8FFGH^&&2Thtt1=D65ao3PEnTQ9MZoR>X^bZ9MTgYp>R&h7h* zzmuJAndf>)+FZl#Bdg63<0b9CuPiu;PwqCV5BR{Hx;MYptykpbp#L^k(HzCy%$0(T zFNn>Z?k}P^nPHvuP8CX)mH#yQ=>J_6Ro@1`99%6HblN9w<GQTd7TWkHv`4n5(V2{H zREI$vP?q;Pcz7={MuqnKw9SaZbA_3AZaF-&l?oE@Mf9;${U>F6&TP!w1!FrK7T0q= zQ+_e*@YcApq_er{k@zQ+f3)G{Gk4k=tKbSI&ZxuZVcC;DIfAG|fi_fk@`>yJ0QFYY ziLWy5h%KgDQ=@p0`L=koJJxO-(S1j;COxIot7^32VY7ur3t5Tlr;yH7)<#1x!G+e> zP&Dl#)*v6!ee)c={jehphpZk%?P6B0t2~dFWN=TYvVFJ9(3CbtT_^LLU%aywjF7^l z;}E<&cfCM;vE}>i0T|5J)=lfW^t>kbzUQ?vp%#)Ur~o}tdn7m0i(6vNSo5*!ZYb5L zN~J-ePYv|{+4>d#q75^Z%UPpe>sRR<rurbwG{oR>u@Rc9A_vZqiAE?#qah5@Ers{= z7wm;ngGuQPRToI8rp3Pn;e8H!pR^J>yN{#g)hKzRi23KN9sP-JjhZWa#ksxhnEcS) zU>$LW(pnTl*e^5d)iG}D-qwGorB7`23pksd?2$cz*A09UsBPfhh5u9R_mpKRkF)=y z=q%it`r9}>ax_u`GJ14KH%Q1}bT>+O4kSfs1;>DmW;CO_LlmSN=@^L8t)y7Lckh32 zu5+DpzUPV0eb4CBoa1@Va)^LjKLfd|>%79bOR0Xe|N40HLumE|`!r`No~?(_Rt<Lg z>cU9%rgD~F%a!A5fuPSUBoq9CZ||72t~)%1_GC2;>?OPV<|OY;!0ea-DNf3832F&U z;6`b43WoaO?5hlQo9!QVH$}8cY0#9oM2v@3xo;OsuW1QiN_|m82Jc)lu~n$leMaU; z_Oma$>dW&Q0@ipI1SLmC(_RZBubj$$FM3(Zo^W?%x(omvSZn(8pqwUac)c_TPp!-* z6Qr+I*`9RXy@5@@rrj^o`iAnR9=f9y-t|-b+*$S%TaSTEQoI`GQ}YVZk3wv<78gB> zxmA72R9Azq89vPJt)F-_gk)Nm?$TX6i|xc$1wVBr=jZR=^FHvTe1Ce|X)KnqSgkDo zYk4L9k7;$7iT1ouc5hQsjLd?}Ik2SuXwk02U1}$E^Y%XgH}>hY5Qly_Ixf#5Y7Zib zSV}4jThRGI@txeA#=eU=I)t~w&6wF?>Y?fro263?OO2O5b_<RNl1_|AK6)Zm>)|5- ztJfvDyYHL@#ts55^wMvMh5F4@Ha*uT)y<cy?u*RdVs`5o|Ji;ph&tx;onR~^y^pD< zez1P8u(Xaa$M7+zm0i6u5(|13)PvGH!7xm8C)L}(@0<AYxI(~59tP&Ix|G~1PWr^D zmWh*%KY35u)_gkBu&M9rS|WVN?XZ2$7o#BzQ~CBPWQRd4sYtMEr@PA7LKZs+2D#Pd zO-!fNU(t^Y!oC~bDSPI)b4g~Zt!$OQ&f{W0M8p}tdEHh^vuLXNMW$Sm_B`d$pAT?B ztNksemake)3XAiQRr|AEAUtw0g@jX04zRnAqPNLPaC@613sE&)WNT}v1jHb5uO~c+ zlj+`Sflm|_9oY0Mq%!i{Yco;7e}sD4q((A{JYYtQQj3>Lj6`{wB7D0rlh#*+bct5{ z>DxrVKsXLyybOtdt45V`9I?pmC3w#t5H?$aY1^8A$SOJcXq|eK^V#pL2?8`l<4t8T zuZ%OB!uG*@+SeY)c-sN^@39&;kwb&F-)Q^OqW3125p?V0Z&8T%X&zQ1w?5mCTujdK z49MwL=FDTwOUbm9!z(MkdF!jGC*f_NUEFfq2y^aL7Jp{uOZdzHMGE=h#2L+i!k_h} zZCnB}mM~@#pwhRz_>l(HG1ef{wlJ(1J<^bYeD68%{G&}p={qRzm%ty|n1NB1cFC^` z0sc<yxENrLb=lVzxmxcyb|tp=W=E~!{<d%|RjA7^Jbfq3xDhP!Q5w+}OP?zJ7}ix= zep;`W(l=y$hiu-ZP}xhrj=t#vyI>*lrqCh-S)*P^?bWqzA)@$^bFRr1e3hnYS<p?> zI6)0wJduG6FcF4U6}+F#30g<lH5^7#;QoUy!x(t~9+14MC?(k6byhN-pe4m&8yU`( zKZowA{H4MK*mfN-a7jW!i3n+oB;zD$Wk8q8Ubg2N7K<d*BL+Yl=81xupff{JJaDk{ zv{=kO0fMDZ|6(yPWTo>DzBb<#abWEK8BH$PI7@afsGtlUXj}+UIgeaUhF;GVMz)x{ zx`GL`a`z?9b`ZEA^&J2QQa05&uA1nL#sN2{Dn?_3wnrdAsICwO7oEB;fh#tzBJ_hy z%DAn%3Kdh^-c?3p7hy|a;xJ`r^xoSW`U8%%P2AXL<Xqyf5K~9ND%P}bM5)k`L)$?7 zuBwP!LbxQ33SJ;+lAJIG*mahs>vm_^P(hpX^^L##P&#HeCKgz@U&5~!-w|j!_Ju>) zDq@jy@Bz~md^yDPT(NH`bMpt&6aGr=9ZuC>={mLh1Y=C+o>ya4G3tALwYJZV^gElW zv(#JNSKZ276*b(I5rX=KKCZtTy;9v&0$!Oen%y(-Chm;`0;n;X0WtQLN-wI#ra5-M zd%7A*#mX}TUP*2pI)w7=GBNj8QfKK!<0<PaRT-c~O!M?p9$m;gM^i^k*lscqHaZPL zVp^Cwq6B{T8<_`fH0pTczaay5OSK5biWfoxEy<OEJW&wcY$dUB&2=b;dxgGsbKIRK zWHMV&;rAkxzd774dD~H!h>tbFEK-VlpGi1q)~09Xvo?LB|Fd=$ZH@l`)jpj+EWGpX z1di+H`nJtS>R&grxU-~$plIInQcrJne<T=A^0zi1r$9!o7=!%i8GT2W`>Yhp62_&Q zc7e{PBU((=kiG4ji^3cH#BeeCRE+-n#9eo6@<NbGHvLqc0Um)g;aqFl)Hk(W!r<zO z^E6uV^f_a00$xIS#fbg3zWBW;F7+A0TDFDR2y<|^Is4;21t_@~iCAE)XURqjQh{Rb z%-Qy+`1EoEK=@-?I+F=G9UCQJu&q5JIZYNb#u6Jhq91foozZ5KS<o?xF!ZX~+f6rS zAp?qBST^|fyRpQ%r)gRcaR^&&Hy>FtSMw%rW{xefx_~>jBh36ZSQ6H$ZQ5K+nFrXm zuHmwS$gWYn<r>S+DLNM>ojLT0yUDF|wNF6>U1xeJ#M|;Ji)-PJ+XE!gj}jLm9<G?q zyfhR_eJ}&VHFnd)t?6V=>C)7uy~FBGS9ZtbJO-HRTtzQIf2Uk5aWkRZnarg#Z(304 zff8Fd19Nr=B<koCYT9)$pF_1UK`?4;=@7Z<NU=i^sQN^J;37n7b4ZrsOsY6j2$4HN z`G^Om&@s*pn~aqe+mAgyAlw1v#b6vc)~&6681TQ5=bPIv-TWj_88{DNr;>A=(Uj6h z2CkG~OpL?`eGdi2FiZ}#`j7sW{yJ7V4`(_bCrEb8%)y6<k4o+1b;<_nTW+#&GAnEH zMdeFCpF4tc-vU$Cc1_<&G;+{Jn3B*!yJK)SXe@WK1(in4AS<Y|E*foCcEcBNp#~RV z$>vy?1dSuC9^>Z*H+(Q2W2S%hi_+eTj-0kp&rIhONyN=@H4W{e!FAGb3vh7lN?hWN zFYv=Bc-CfGt}>uJtre8|Dcb700-Gl_%z#=aw0E)NUd?sul~E|wK6=W`y}8(T_IY0V z2H6l>6eZ>Jr|O~Ls|*f~mm@i(PEcvay!sLOYs?t;#s_ajtIy4PW21W%f!Kw8>~UQ= zJ*(NGh?18XO!5oJgjr$~h!`mn@_*_Mdy(lf>ulhiD#BEH4i2qSQ`W+{u!Z50o$M)m zJgoxjI~pzmX@qXLX6a96`I>V!Ppj0PKD?XiCDu9jWCL9%JM;4)LZ(|9XtVWa)%C!; zs@dr?sOT*rw*%s5-CY_-CVmYXeNZK}v_7?Ab#-Dq#p0CU7_*F&eO6jM+8j~oW@SY0 zTzywnD15=GLAQEcDODV;wi}q-n8f<_nHgMMYSGpv?b;IZV)x^FqQv<~JX2L28S20h zFXsCEnNJ-z&vHw0pyafWoqoWw#Jq);`dwMA)LH+CaiU7Q%-J@+;(o35Nc#F{b2!1i zw3N@3K^ShN@2qHrn%L5P3=S!Y4jki1_6T}UB*)js)s~PHgho3xQ0Um$MOF*!zqlFZ zBy8B0pp<vr@t0HfJmTQ?U^+9|!UTmd(>VsViLt`GH24F8GH)3O)GdSKl&CaSc&$k| zek6CG1n(^A|6M6vmjpz=W^9*uz3Ec;DkCM3)|cnDnpIyb?fsivjV$(hxd#t$<h1B1 zcz+}Ja#DT-&BlCVM*M<v3)9WcavrIZ>XE^vUbp-@U|Jl6hm2V4ba(K#r7{UZ#3>)m z>zUtHVU<0ZTxDMix_#}Ucx13V7YYMASrZ!w)~&F+nT+o9MU$LZkhl?2#g+kNfuLW@ zLf@nj!z7RKXMSHo|5S@AY54<C4iaOGdxoaEFDeoZSb*|`7D`(zg?9n)ZsR-bqs?KS zV7;uA((5g$t}MAg=FXf#XFje*tCOD1;nB<<PCAMMCa&()KM%Iwc+Z!IIHK&`Qaq#< z)kIIy(de5xv%(emy$e}^$LjT8lKq6Ac}%a~(}AnTiCf<c^{G|x_~Q?Dp0_xlBbPtE zyFQb(YD@BAsP{|V8mklXC%F&1V&%gnH(Hzh1fexikAMCL=vVLse$&f#lN78=m!$}@ zmF@ZT9D*NP-ps+Sv*&vqCQ<-<cb2?72_OdU=-2znHP{37PKSutW$VE%LNUg<p)SGF zY|Jf#aTez|`nIsdePh8iB8MJ1mOkA{_<)!x*@^LFIm<BL!@1C#&84s+JxYO&^iEa9 z#3=55Q73vk)(BKZujpq~7A^3(G$nU3%JV8n5xLp+K->J6A1)&opel4(bu8FROG@6) zmdX1yW<*lMlVHh1uu9Ypg;X#>I=dXi>4{|eMciRR?LXA7n!!5GCqG(%lPwEt^U@70 zS=Fj^o5%XOKN#wyDU_=cQ>LeRL(Y06BKin(|6~Zu`veF|{Bw$fgF;I^C4i09<y~BI zZ#S=;FwdJy+Y>jbe`ZhI6J|KhdR?7uxVlqmIVPV;S7#~9Xi>H?e5zK~5AX@ceUR;G z7^E!?O&dOoS{+GDP3a_Z6W$KHz7f@>>+Ms+c*TC&@?h2gNAK{JR9b6;S=462h+C_> z+ZCl6{5;+rjHkVSbWF?H1`xOV^2R}?Mep@8`&XaqhAi&mS6(xxwbj9V=^6s8n(pHy z(0rWWSkfj2Pmd<<BoD*OoZF0Akg^srJ_#BhS(($GJ2x6lZoN$#a%RyYT+&{)%nW#C za9`~@WXC_om&djaV#v&OlX0hDfEhw6$KNjQ`bjfAqw{ufPS=?z2NnLYc(^aVJV1}s zE*Bs0doxF7L8J<-r%B6^-(fv^PBEM`c4l3HYDO&`i_X=!>~JsV_wv1xjL`+b*DL{5 z^7K-tyDl#5J{HK(xqM2Z5Z774gXAm+ZoLXSRJ7!JdKp3Go}PmN+23s#zrj>jy^rn# z-`@WKiRp>^PKFcu63n6g*mCicBSUa2P29OR<XrI(XINGD<(9{_Kx2${PzEH-x)kTE zlEzuY;+J20e=qimjJ>)Y%n}}H?4pR9mL{RO;pVFsmE||iob~b^DS7H1w;~;zxmvds zo%J()q62z!W~i#c5Fqxt*M!mBTs(FlQNlBYuGYQ5+xPF+&BHOUOQIvq@71xpY8tan z(;^K+PRT3YZ$MxlSLv7p)Py=BY24;4lOgJkmXYUE%MCCuki=P3AT<6}_^@VXP*Xq| zAAWp6gL$^(;hWSR$=J#~D%Z@S;%z*=6jc^{x*0)hI#2GKT75n@z7kM+;s8PVR_4pM z8QEZVy@=26GmjSXpe@`cX1mu?SR_L}_vWPo1!9TdULE2KxBV#X0=-O`oRO>2k@SbH zLU#NF7c6>#7oKytLX@0nE0SW)XqH1b0LSV~vanilAervMg~98fZ=H#92o__E4_TjD zKaeAx3$0F?4Jy2^+9BEIKSFd>XOLvzT?H*;4h^N#*|Vl5Hr{RygWu(b(zCq5s|gK? zwsN6bVx6SLdlt%;S+Ftx>merSJe<TuT?Y}s*j=^B_`8x7B4}<Lt;YU1r0V;BfJh(^ z!S7oZyrGc?GyQAz+!X4g3(fF(tds|F(@6Z|Wk#Y+xXt#hFxA-Jii##cTX;~(6m~w4 zG{DO5G73N{xGY%l8%_O*H1`-5;LYYgDq=q&#-?Wcn)lxjc*+vP?BvykluAtia<k}~ z7n6){PEzSV@?8uxc>INFqvtiLvKOB!3{Hv-<5>Kpe;kt9JEC0)Q3vP}bLWLx;OJhC z-IwE7^1x_HF801m?$l4{c{e*;);>8Bdf?ztb-=Og-NMuRa#sFl4|S%i+>_q1RJNP_ z5&Q298;PJ7jfOu90iU-)>|fmTF5j(j|9-Ny8f0oBwtDo=@8s9|u4yx@_{EHYSHWOb zc6we~?-Psu3Z1D{U}JsI6+bSS>Ce}wZgi3`#>DmZtsjsZZSGrlE}5R33rOjfua3z0 z8bvOyAVgEtyH)72Is{WY;H_<@7@$iy$xB!9n9VKNDy<R7+Rj!DXni0i%O<JeI;P2y zpv-TaQoMuLNqnI*!3J?<@{4Ux4RPlQoq&WSGP{AUk|QNLl=`N`m#SNM4gDiR$*8c= zns)1lqGok-<8xA)YZ^EibGwG48<x?(-c#aFE&PlXuZnr};KbTjh+D3z3!Z37Q42Ph z8!LbC8O<it{QYj|Z7FJOsaWtq;&0PVzxxJ3+t-So@H3}yDXdiZmFf$XvN*FE9+5Uu zHQQ%J-w%3^LXD0sps(Fw*&!{I6Q2vkJhSoKh2v$!#~F4MWIk4f**Hqa`$qZ&l#bha zC9noQLw$YBZ2Plf)!;j;!hKGy&BWR&bzf*TB%%!Yr=@rGlATG5=i}SQJ6JJx!I371 z49e-=&_3^<h)dl*lOL7oPd`M80*j^dDFP{~wpR)i1*B5dDRD~lAq={UnV`9{?<72D zt*J1vZh*z5Q8jWgRQ%ke+_eYaE4=Ou=Gt{={Z#n)KR}=JtkfNw_Y0u3I!icLP@9X` zL0-!bA2@Z-XgbPvO+P%TVT$T5qZAGx+0R<DzDrbD99v4l&UUg+D=5Al3|PBU7O+{z zzvRslE2dZ4S?QB@5)4&j1YenKt1ORkTn~%8vMdshPs`}fM<h4Y^4U?`Rqb_)8f;lA z4;%creDyr%3Z;gtam=h`JbCjuLPYws0kV3g@#S9wr*T947J~rK<CmYxAItCNv86P` zAy0hCS~U;2oQ04uO|X&A5x2OK!*wk!S1sct`Zcu|LZVK>?60JGq$kX0tE$syh!~8D z>z7)2+c7#L7G$g;G@eEeCu`nod0GNJK;?lKXtxgOVvyn&hW3}PZ$BY2k_WykSD$XE z8d1p)l&I`MQ!VARf0gVfILsW=H%`w8@_+FkGq5sCSEOQr=gr?jLR#n8!_q)bX<9P} zIGB_P;|>)}kxt!>c8cosKLB}<!5uJ)m;qsoW>5x5-7<|TwvOspX2bkkNM~?P?^<#7 z`ZlU?OcYe-FEI1cmPj54!SNAGt`W!PITozzp~h~iX|>XeUIG4r%yc9oQhk9Va`&^( zGD=i|N^FZ;T?AK^T_SB1=QlN$+65wx=kOY8K;eybjPclrA#a@v(O^;jR%!ZRgP2-v z-!0)e1U6WRs{@#`DZ=pM{qtFyHK6bD3c5~=*2;8)<t9R6;5)@txf7jJxxW_QS^)wt zf6ezY^6CW$TEGpPSp;v+^m)h|RhD>_P8}S~Oe7KyzLzhpiCbdD`m@04>qSjtbqW!t z+D_${nq;3iPN!3bUPwP(>x9XHo%X;7bIDHwTzIk-!<bKW*@n^)-@>cF>>r${CtzNS zb#>Fig~R1(I)CM6<!jZ$*0h<8t+6;ej6-s>&r{^rUkFJ9lT*`V&CfE<a)UI+bt&LC z|E$v#A{MMeK2pYPWpjSGo4&AEj_rtx4xO?3>#5P(#7Tw2B^+_E64Mo9v`kik(uK_* z#j=)NOqxAaS;gUtn)uECe%#a&(Ibhql@F0BfLWcYX<hrFA(NVroOkEX$l35PR^?1i zzy?j423Vy$0aqpl{9Wd^G4FC8o@X<2f-bG$Gkr-wG?3jUO>JL0U=<u%Q~o3$9zdzs zUM0Omr%!X4A@p*my6Q)}_^$;w_l-1C0#tG)TBk^G+Znx7!Q*Sn$rl{Po?G)xQe?jP zxGaFTZs>~uPlTDS3Lg`z;hy!l$O3uWso~zP9}xUwnush~n=`eKT*lzbS7iZPs<i`U zBKHGWId>eJ%m?ZShfn^ihSM{Y$|HkUIORf_7(Rd^2)nS<2gUkSH^<5GDN|~I&)!EH zc1hi5S#SWXoMPYcGNsgSB|)YTeyKs;1E&KQVk);p!RNC~1M>a*-Hjw;w4QSmKhP^C z=ckn%RPxgi>6!C$2j0fM7&oGfMCIx&Z**N8-+FP|TOj~Keiy!!Wxw<4l<K~=#g<!U zK7uX@F#0`OArJ8i_Bm~oJtUn|LOWiTe332wk@Y9$#isy~mG33>KJdE2uWZY%4!ve^ zUF<ecTe7k$gR<o`Ie7{yN|v1gIgU=kx${mLo%3DAJGM8#82v(L{F-~UxX|lrc@t$o zKXG*Y*_QI(TGn=titIriSZ9`bCn!tFeZ4Fl;L~$)EA8f{7!8VjE!glMKr(Gj$$V`b zHIWrB{7xvAyPs9QTyS1de2jpA0n8WrlH!0jeKY5bl{(Ny*Egxf;`z!=)jSEo{)|C* z^@9fuBnP-waGT#1{~_Ltm#dqlb78^ZF{7_-_koJ|{Y}BdhR%@0lShM2Okcz9>QkBi zUD$#D1JJ9Yel9-@5g%1oSiz7+R`bmvT$aoBLRg{)u7_2F5-1D9E2Teun5!gwQPF*9 zg%oUDO$qJTMf7Tq0uZ?sXPZ}aZKig_fLL5FG8+vr5b$hj3^CAx;1Hvuuf^YZ1=IS@ z7=oQjX9lA~Bk~}K!NrF!ACjYnl~mT6NF7g%zPkzo=N@^!Y~uK{Hb9)wE`dBuN(Q2s zkHah4Vr7+R70h&|LA}}4@&lDn0pIC<mDtw(-ll&HHK0p>A1d*!jGhLaG&@8)@pd@q zk>dnH(AGKPSeZw7_2xoXp~EsHK*7|!16^2=Wr3A|f^RW6GS}wk>qj~r3dpbun!TdO zp==rZe>Wb>Ul?${oQfqqu@oB4JG}NWl&Vr5^|$dUI~e7R2J)hjO0G%dsJUcty7r{Y zLA`1AQ@H(Bw6&2-2Pp<cu>WOLM`<`+eJ3wjPkVz(wRFdZEV&<z>&+EJyH1kTwff>b zS5MX}d;ER;lzy2R+UxH52R>8B>nDm5SMLttThFs|0MQD_!aL;X`C#2ry=*G3>-C8^ z5EFz}xx58o+bnIHr5tD?R8WsvXxD|Jgd{#q=K>svqXZsV5H$_1*UH?7Z4Cms>A#MH z3I)w9_ESWSCCu1hk$DzVWqxPfrI7ViB?4nVRxP;;(~83p(VYpVIsCP0@qd1dH8%`G zl-rJ%ZAonu?)x`4_4JwTEWUo?q}+jak)}wKc(k)J5r^|k_%QUc>!6xG$g2H9S?~7| zoG9Oat4925jO)nhm5nT6DT8CzYjU=woT?CUC)tO5G1e;k6Hu<d@Lhw=M0w)I@Cisn zY+&AGbHV#h^|6&3dGlHt%*rIJ%3i*&5@|!76J-u6mCRz2YoY}SVgCUJJCnnlhT>3& zC0`E_V}3!HA&a3j%S6-25J*<dc$_v18xN0JS<WFzi^itf=)Z7lPHrEcp4_g*8#}u& zz*ff-B&V!q;u+u_Ysv;#GJ}8TrFur;`|HcFbNg}7U9n~K8{Y{vL|#FKE374maq{rf zl74V>WL|?em;LR7Dflr4!qSDI<Az47n)Z*M7*E8iS17$K!*IZrsxt{2bzY8hJ?e=6 z=RX@;ULo(5;7Ube6!Lo!1v@T_*(&YPZ|n}=9H=tPiBg@|1`uoM1j9hA{RD-A;CD0j zzh{AYnW^Z2GPWCAj}-elc^<_iitrNySM&Sc!b}Q2K-GZ!g-J7ys?z?OvbowdnhEig zK`souAm4cm{>v<!(52xIPBo~po3q1Ig>sX;OIrg@nI{6BO-OZ$jmJlAqMx7#p4Z$+ ziwX8odH7`XCh=vxt>>I9RAT^Bfl&RxKFgr}m$lK7i}MOnCO#%s5z8M=<_=r-L@U#v z_t_zG`#H1i-$#X3ldH)}C+tnV({U;7^2GlDkKUY5Mp0n>YuLnBE~pj}IurElU-yyn z#1fUsDdShF7L#-ckDz8<bEjb6`Mo64Ljj|dKMiWi$IUq-^?gBci^c~J1B^ga`mRE) zBBqbeP0Scrp;cQa)7b$mmRrT?R~!M<h6j4EQBXiQeWNp^;2n&XSni;^0+p#+QENb+ zUYK)YV1l1g$=c+}H(m9u-Wx#?Qm8n8pO2>)`p8d>@PK{^wLhvD<^2NurdwE(*Uh(% zlz`*9Qj=pmDcWijTP}GvZkil})y8(PEVufjz4(zXlL_)85sOF}9k_dkz9ke4vxFmH zo-XKreDyX(L9&snm~YWZ6@I^mEGb1kF&Y=;TqU2rnCw6fFX{M>f(yOldI0*}RDr{= z#a5@#59KD<_bV(i+poh`pkEJj>t}$1ltB<f=@q!cO+)YC1I3Mpdgm|*rDJeP8TdL% z|BQ_T<&NwRX+TJJ&#2tB2mK<;<;|Za0>gLw>w_PD_T@<x-W1Z@+8-CPf2hg=l?N|{ zJNq7hYT1Zv({I&Dc2RIM80SV75lq4Ccym^rdQ%93OV3{ZN*`Cr1S5&l;0|W6eon#r z0i~N0?Xp0Txrjx5wDgXrhc(>!BVW7x2=-Ur+l}nh&>XW}n&d(;btLwn!t2#ID#A-P zvWq||0+;%2GMozA&l}2C4%$f0Mi79C?1GFsC03orK{3%^2X;+IBqSF=rrJcE04f9O zdifn1?Fmv`;AJ7(o^a&eXCfe=4;Had#<`Rju)4hfCm9+?gCZ83$-86N#Sc9)tQx&< zom}Ja+UVx;QgBN+#P?dy1pCP<y<ct~rW8{I0M)xnO>`Z;Jd5{M1oQ*6^uDDVW%d&m zw%sPZqkK<cx~h<w_JFML?+NimbKkej`oDJZLS=s3-1B+GW1$X<RkE~TWrHA-5pJth zXO16GEp?}PUxs-I^OJD3YVIJg->Vb1eA<!bjB&i`Z<O^JK8SB^HtCFwlUH1Cvtg34 z0^`hXJc)*VqDq|vgyOf=_%JAr5~Ks2^1S6jGXzw|Mtn=>HUlz`@9-imp9_HbE;;}= zm4dXGxZrwvOWso7FUH@y;K(ssC4wV;afg@jDQnZ(JlGg@WY7!|*oPwCpBwNaIp@=J z8f2cq<m~057gw1;)F`ecR?(Y=6qO*w5$K`djeeSunN3psH_7Vs48EhkKP7m+kllxR zR^!LNdJYe%I_HryDsB-|%4^DdIo~}c@dHaGXfa=zC-+a!m(X_@)De2BW7(WnZpZJ0 z5tBct7aT%1TRf4GppN*^BYhnE37c>VttI{X?xVDySg-hr!L7i|XNVP?yP*8fR{P`J zy#R>S^>uyKOL?y00iGY9Zl@`~{zfNQ4FF^HY1em0j6*bm_}c%B@Nnr5VT`t-D()BK zCuC1p?6)m@aA>vdpe)||?wCP%jKK<aLZq|f&1$spStkpWby}XsV*5V;HAae#nZh)P z;Ey_*F)*s!?^v!OWU)>0i)%B9?{93ZL?FtPf6C!iMNTVofzv;kS#aR+lPNy0mRDRI zo*}KgmJY`!@M^)=$=Q4V4&^E?97^Olu1p||{_5H{br{~PXjFUNoI0(>6{m$%f}T4| z7dJ*R_)RBUWxFga3D1=;V06CpqM@{}u$K&G>K)ZDkPfIZi)ji~KGy3!57@H!{JDEm zFJ#<!#>yQ-)9Y#VA)NmbVMI!a%X#u=<_N&F3^K-<WA3#K+P>21l4}RhM=ax*P^;fm z_*I_|9<P$O4@mD^v}mn=Nr;pkx_16r$-m0-#^%R3`0o`Rv-y#=nSZ0R&EscQ7ykh$ z+_2wd4#3WF7ltXz+9OMoq0_otFW<W>cfP2psb}(ipSO?tFm<R8ZSfuc1&b0$bLR>9 zfw-=rc$vu3WGFQmoU7`lm=<L2)+r#PzmK;VWcv75U%%h1v$<96hkxdVa<#EfNr++8 z1_IqO@8iD+Y5SdB#EL};sx^Tg4$O$_hnnH`D8KLLZ0PRDGmlAoZkWoh!k*4c5(B6L zJW~mtM(lYRzYQ0)<w(WIfISvlKm37{RST`fvo6P*xT8=DauqdoH3*1SCC1<!6#XC$ zp)c62x&E-Eq7B9KagS>v(T9TKPdi0RRuBt^5ZdfeqhJVxiZNgHDTw(!S}2&|(@uy@ zzOtU^mYIUd^G6Bd1^*~G;Re@ZK|waUd>I3)bh9?~%DBYCb^x{1Vi9hk?&i?JOJ-JP ze<P7k@oI6AG@Kp`E&{({?Ok44WHWJaiJ6sFkJN57YX-0zFPbT4Mm;!0)0&|PKG#@t z&5-y7F1LnEdyBfTxp?<WV@k1FVZ4wR;f$H4N7m+cHG7BI)y$i0_OByq2Uw5slI-8| zu|kgLvzXJNX5_z?NYlqm+pZQ(;mawUz3oojfkI4(z!Rf;N>H@KK6hb|#Y34iMm|sF z-g!T3u*r1v`$wP0J0p>qS>+bzPJ!bb!P5pz>^Z49c|NzlUF5h~)fi~S<pwrqZMu4C zqzY4=pGqNbly>0r%^U}z25nha;_eeEtNk@oR@%n1rf}misUAd#kKgkgca+H)ImdzW zB_+i)okB4l&_H3)F&ccv%?GEt!EMu4=KXre{SMIV82viA?14Y-L)@u$WH_l^!YWq$ zr~j^Un~T#pImO3e^KBXv)vLn;l!?p7DJr}RV>=qImXCtrm7Nz{>x1OOdgeDSr_v7A z1bc5s11%Hr;UG5oDw;4q6%z$BBr8sn1dm*JIq$F{Q}#{ZV^A>j^ixdJ6!8vD#09_u z9W0mHC0S>uy%ua+$BJt2is>~@Z2qN`li4OY(ZSd}$rmIJx-jMp9gJyX15`#Li(pzP zPdm}myGo^!MOyI-y;Lq42oCUD8Q1ZIZ*t;5{^Dtonnwo{H?7zXL3g=T|BQj4X&Zh7 z)u&u8f^oknO1npC7g0kgpB}t#l2+p3W9Q`f^(e-!&QbMfZUHPDr&Mt+OE&L`X_Bi& z%B>o}qK@DU{mO=FhD7L7r3L_{Hsd5;^}vaB<^0#lia6)MEDQbae}c~ipuSiq6tnwg zEDJ_^@`K3K>dVwDblremikUz23~uN=)tZJ!(=J}YtC|4ChQtckcXZ4JAt=r2`iPas zUGEJj)z9HOi1&HHh<F(TG0ACB?$riT?)$|-`%&IfF1-zjSH?y2Wr3g}Zpw)$FW9~{ z06;W~(Gt#eAQqFurR{IIEjHioZ+20|Ef;4dew_(28Qa4GVB#qA$tI|Z{%CO(9pJaw z8PlwWVWM4H$;U8x9Ha`MX*y6*r^EC7gB5NS_;#)noI+Gk0GphBY4$Z6giliAsqm*H z=p$%xZw8B~Z14*2K~0Ur!1vIB6GH+wbu?<L%qTu^5#jkYc8o+Gj_@iyZ=;Ji)V`!u zo!!&BBB1^T+)7N7ifL}ws#n<3?9PdXc$xHeM_g|8vnWCW`fo74{b|$i-=<&(qy$Y| zZ-CV0K+ly;pESMwW~|2Ese>%tk#RFt_CbK>VM*dnI*v8yq{(VV)qP?5I8qg52?eCm z9Dv>HEfehzU&oy+*U_@?j{*YCk;?Oud0Yi`I!_TBbOc?yi~PMsPqr%cB@;fS&;B2^ z@J-8%`DWV0=GY^zuO~ItX=m@gPhUc>d<_&gw@{GX#rYd<6b)tOKoe}C?8h_XU-rU+ zhQ-k5!%7{W$16s*yIBG+pbf<ZOK*qD)9BL-Af9gk&Wfq(URnV|2~2G5_5;Rg28Mbj zd#6vcE@l33w|OxViuW75S?;L@k^J)Gi?i!YWO#asFW*1g_re8Y#hSz0NAl!_Z1;Fn z+N2Zhj$+t|;7;aCT=lLxHt$P#!7Z(_YqgfBOBX9t;-&G$_=leaZDrhuKub-MnatM} zLNeT%a<l}gvc7^vkX*l_7El^`QX=~y&O+`RtQZMYgDSa+u>^1{3k>||I^brKugI2T zc?;-VMz=>EN{4;qlC^M>XWDg2lZ5D*$PnYWrH<n_rqhu5V&O(6u*<o!Hz^N~Q+Iwu zFo!GC$VL8g?L#MQtXehGF4~=~-40vL673|}mL`at3+lUGwAP80yu-yN{qYJiM8zcI zOkFgyUuF)onGk!b@&%6S6s*y@XwM8Oo{?>eo8*L~&Gc9AB-?*{Z``>%tbJS^^GEqg zf7(vOCH#3R*y@j}ler)FUatjNm%+#S;6f#qmufK5%}Y@#q1-Hy2^LVO^x-Eg&O?`- zb$dRf7}|QxDv<bsQyrbI+a$)_O+U8Cw>7%l2D8AfL_KLd`7_$qZPblRp*{b?+CBO* z&-no({iV5)W6y0}H*RV;q<?upSQNocRTVz2%<nGPYlaU!^r90`|1!}QMcA7~Yr(uZ zE;TF1OyVaforBa3F8Ap7?LUx4bqw|;Sv5OQiJ#~r?OQ0QQA(e=eC^i`=1Z+V_&9Ui zluhMtW;y%r-hRtHaP6QOt(P8I`m{^6#N-MRuf{G#_RuC`1BkVi7Vc`rOafzuExElD zAp<IHQt?mtUOYUG&s@E?4@nzE%2n<7)<L&Ta~CTKepJ-uo{iP`9r`;#oE9Yh1CRjX zw5NKT(aCSl2*(J5mE6i59-totnn*Qveg7tzUKqBY1%2=l)c14`opO-62URS^nPuV2 z`G;?qz8DWgztSSc#OjS{n*h$e$_)9);W1ko4+XLu%CL(Q3iMwjn;rKqu{-buTD@lG zldTdroMvN0nu87R*D_-y>4oD(nuOfWg(-nA!Tx6Ya$1kvD%B}lc%{tnGe+Qw)J2Iz z=o0mB^;4lgTJSss=U(c2JG$lE4_vsh=1sBT?w>A}i1YIE<pjub)7iJZ$;V`JlOdHE zPdVOT#SwzNT_Iz?D^fEp!Rh*uRRuII#pc%-J6TgRn~-qebh^d+g?@q`b(^0>&yGdU zqAxv55cB;mw^cLG!-a{r7BA$=h)u+_ei%oV&Nr<Q!n?9-Dc}}9I280+QADd!;>%VU zY9Di6!Y5Pr&I{}HLJxPQtD1CgL)^yYZ|dQUDb~jM0W*Qi-6OuIgVMD`rz;PeA;_GL zz#<zFtXGlAC1av#-z(FTb@VxuC!Dv|H?7LkuK7k<!Wq>|z)Xz!FeJ756a8r|Xta;p z7YHk4+9pFl8B_Dal?9MdHxA-$P8dUbH9lI$FzN~V)Ou}~q-?&#QJYF`KgC(z_#*IL z7#HeN<fKF{H?SQcIk({VJlGbOS`9Rh`NAtctlR-UAUxx~sj)a0qJ8?$i0q5NnF%TJ zpSY_~l}z)QJHqYC#t2w+J^BaS#IOG=%#n8{rTfUn6is(wzJtQu1X+!(iY#*{m1hNi zy`&7)Y<{OoCTeQ`Jl6!9u$j+DM4AZ&S7==NjEx)z>S@c$eq7Gais83)QZExW%N)4a z%AQ>pBmNe#KrdAn8UWN`LO|qi$_nbOF%3gJIcLvQ+IgAjgvON~!6g9(3(3L%-=q#S z79iK%OtE8}Rs4Iz+yN5buTw}+k8mp%Q<~0VdTxUOFYrk7IF2~va0FuW0<veAC<xdi zQqJ~J905Qz6AjPyPO*cz&%r5=pdL>I>thEiy%NK1CxkzWQb%NwYsvxx_{sjYJyRbc zCc%s!YJxY?k=a65LUs2q4|Z>>8JY%ud`T`;l=8^l8(5c!I+}-Y2?mWwqE0l=pZ%us zvsN))kyotVaxj`8euQ@X^oAz{b$6wq<_E7^z)L^TZ%e1NbIN|fnJBqcigZc{j0Of- zOx>2y3+Hdh^;f}fB|Ec<B;5~*+>cE{ues^YIehuH&`=9*w;e<8UPDPQwCrmgmtUCn zUe+Htp#IBF9m|fSlwZ{Ly*dwGP6g?`&i1!^1pkTHQViD%tiwh(uBZOg{swO)4}N(& ztAp{T?Z(tRt@%AO%p8PWT-f+`^bQm=7i0Y&;5%x)*~#g0g8@{?Gh}O_-hFOSqEeqS z+(%BU7RZul?oJ`ME^tEBpOinz**ENFxC0cw513N(BR|_U(fB5m0mp+)t?f3Qn3WgS z8KB3MG}$vNx%J}p4CrI*qCVlz^rumSSM(da5^p(L#hr^Lx@|W<cZ2^Vc6$j;s_Fdc z;IPv^Hg1u$Z%oM3zP<-y9Y%?}(ne$`DpPgNg2RV8YJSAlY^K)pvBjG{yYelN$z?{X zz}UG(PHf*eRfD%<hMmL0;h*(vk&ilJ{ZjW&EHbkNmZqafIYZIJMlzLr*hSxftER`J z%@sq5ptOK`3+@;fX1??z>pzc8=T@@zOsX_kF@IIs88U);zQZ->;LC9S3yE^?EWhqE zdxLC$G8<tRfEM`olD@r1kU0`+?G;4rD&-#yKULTct<?309S!&X3T{}m9pRb4Hw?V6 zAj|ojn?VFx4)F!exD&7yMQHoCc05_H4OrXMhH!1%G_;M7ql3`wUND;r!UOnq`GVf? zhA#RoPFHI34|@OcUAuxl*{|34P7p&8``mRp77bi7ctnDEV6#KweZ5Cvwv(YL>OVld z&0qUhE>_Lx`HGmZ@>FRt<=Tc<VVXQiH&xGb@dUmgy*}_1%SL^k8TdMxv}>Y+ho<$K z|LIup!NLgIFLz>FW6658T=BMHY>i1&LKVMxw=d~E%9jcFsV?`6$|nW*i;BiKj%hL6 z-6moE4bkZVc)-wVu6zQ@9ig9*OKtVRDfH)X$oIZtA7a?6w&tI(&)oO#nlAD-gtFv} z3$IJ%UFBZ-o+?+tBXcKSo&4)zO8*I4R()kbzPewIyLi8;SU4zF+1vh`-Gk_}vm<R& z4z{=jX_#)Y&ff^;^uq@N>x>_nrDO`|WELK7Q%TzBl>4niolQVeR%BMm1Dy}O3bWmU zBg}hB&tn24qqTHgZ1g;{Qt06a7;nYsPtrtP<8p^yieZLX(|0g^U((?|irq6hIqN|d zpqaUwpMfA&OwBJo9^&SwE24MUMS-o?1&OybP^leYXbZ+$k4?R`$Az2upXiyw#d{d7 zvSByEf>X^SL9sC6uqx&sZ1hNK@Pc8Mf{&R~F7>)&41vzJ(092iNWDKra#>kmuP-bw z<+?F=yJ(YO<T%?fIr9D!_)U7W0-p8A*`Z(N(rIwEO|mUf|CRiRV8Ljzuhj41&MqJ| zW6s+$aFI@JwPz~s;YMZQh9}A=g&!VE4{AGeAn5OgDHXSt{{y^{K!@9>K24R?Msl4& zm<LWwnXDXvd`Qx|Msj&yX^n@X)KgZ=-N|ZlPLoYAN*SE1apHW;xy{9Qc6`)WCoOy- z7o1W2JVWSFTZ0<p6%+h{f+<ft^vQIhP1a`L`~~)xT~|iKk%Rz2CJ$ppnDdc|NKcD9 z(<}kQqoF|#Iblj?R*OnYi9;y+Bv%y?f|P+Nqg$vgRv}i<(urC8ZX~>dw9uLb0X=!@ zAK7AmR=oW6%?u>0a^$!6C^ts#j1)C~UA2e<bxm5F@dSGmcHqypBMhHi-@MNE7QiL+ zcf5kq1l2dGpKS^$hR$Wxy=BZ6v=#3>vS27syAQ>iTX^837!g^R(Q=<3zyydA%nR{| zN3}X*&o?f2q()TJ_gd7H$XLJyWkQI5Z7r1jzARSMpIYCwF3ub32FpKThq!+qUK3Aw zJJ6yZR(CuC0cI-g_brS*{NnMwuvq*4sa60V!`Bwb-UGaTqwt!dkDi?K$llJIzgDw( zstFND1M2ptp)kXF3|gEJ<SsQHHa_<JM}sw{SMiBBvhH<M5*d&;PQXf=Y=eb~dp?&; z`*sh^v3tXygkWHZNFP?LXprhfq%6vi0RJAR4?a*aH)p%C4(T3&`dl4ZQjei=QW3$2 z>%|!bH~-og#i#k*lpZrlgPWcXeZ6Dbi!gWYP^v2u<0DLNs@*GIi>5x&Z_sL}pt^9w zD@(GraycN7CfD5;vva1uj<#pS4n63PGeqwun23Ktct3mPbbFuTX_%$rL$QNl@`Y=u z1~A=K^bK;_<1j?C5n4rLR8-+|^`MY$ySzi8$v(42pd44thc99(P@F6#uho~AfRV5@ zKytk#H@bV43FMTxH8p({2v@pPodsf4<kDjx&*G%&4!N)@7JN#k)?Yk)u5mNzjdxpK zV-r1#U)#D}&}Rf6y)>LU-DlbyY%d-d5ZUK#v8?I^sk4$CduILevUypi7&z!wzvh*| z=<Y0I6%yMTZFS3#6I{{WP3^Z!{H+HnLfF87z#U_B*7*UdJS&SKRXuBE);cHZDTtCc z9u-7(q0(;dEGq;kqgfYTnv^{%n1Q_15;eeCh#+pc`<@FEnV8}sV>OoJ%f#2<sWJf_ z!5&msQ>0BC!JCy1q-As*{J_oMdPL{B?p%30gc5z=!4<xm;Dglp`usRC{^>gdDlHq& zc8I#6{I1#X3!u=U28F>O=M~n>mmmv!7E2Xg-EmKT>CX1IdhC<t3HnaDC+EHg-qAOr zA^Im&+DV=wUEl?vP!))AohktV3_l2I;h3~{(WPho(h^@(arkwR|1R5o#pv&miGSvx z93~?u^Tk#cSN}FV$U1(-cp<2Zm-Hgfe&2Fbs->Dl?`4sx!3dV!W=UB}(uU)4s#gS~ z8mAwgJiCtCl>p>doasO(@_>Va;;v@3(wN6BaYrd`yrL!Z9!KX(&T)b!|Ff$22m}W$ zNEMvb2q+#yW&$ir2mte(5&-K?hXd|pYsj)mU(ce~X$!iM7^5gu>Kiyn7YScVP(<kZ zR&@a0J5XKw2oqB?Us$X=ERA<$F`pQZ^X2>$#J$8z;T48looc`P<%gf8FG4H07zBeZ z3j>Ym-B5VB3-SXP!y;DC@h<J5V31pd=|1+&bR=zQD>Pw7@f#}4L=~5Ke4I0(2LJju z()8s@9)yP>a6si+xgl}GYlp?rk9s+m!(n3(7j(}YSvWd@HlyL&$tu(5z7NsbbFZ%5 zIc_kC^q#t6U{spEk{`}~Ak8TUy0mEZFF{3YrrDiYa3Yw{R04-3x#R)#!4=t$3nmvz z%55_#7>nv{R;&4ZwX)^F0fHj=G0K#BRs?hDdXM+2$Hr7L<Ui~fY@~Hk0ZbxM=6|Ml zLiNy2mB^?4iUz07_2y}3<fFv->xYSrwLoUyjh40QpuL89>vCbWD)N#Lr?6@0{=VL| z(hsPQ+k*eEYfx9pKez2`X{i>8mhD*8s!-8|E9Z|=$b|GkycrLa=Cj=+u`$JH+{(yO zU@zZ%D@ElLM>Oem^*8fZuuy_wvT?h1PsMDm9-q^&!AGzX7ONN*Vz~|TWkWIak7QK1 z$oPza{1bKi<>5E9G5{ZZ6*um@kZo16uPZnjT)ZT|92gy3U1q_ZImmxx%Uhn@qF$%Y zfiDiendXLd@uJPryD0KfW<F`SqXsbGtvU;jSN($oiqSRmB_IZ+{{RX_Gd?%#3T|bD zP3tb$wVf9(<rme8Qs$Xi!dh53>d5lUnONF&(!rb=UwFWEfVW|YYFJQ*y56_ZsMqf- zf;3%ZRuCe$pEui{i+><8hLQ6GiokEA*6u*m-%dSH9}=un!j{TMs03UA9e97d)Q5^^ zw{V-{ES!EYL$B!%-$Ej35-taT`xU8MbZ|f!Mptf<)&LtgZ2r~7|J$sc#pjTvq}~d@ zF#UzId&jh~*E+|9W#PN1)knL3<g{+{s_bhX<elW2Z|rU(yn7zDxC>n|GhY^{81K6y zy*9t$b^h+ZR6cGizyDmw<cxD=x<Ck+aYq}Dtf4*L0c8@-Pg)<$Yvk5ms11K3FVEI4 z=RlJvKP*POEdh6Lh**+dwQQxyhNVrA&U$%Z0fO3!L1PyN76csPI01W5vn!DSQxMAJ z{9QyT$sn!a>j<86(gCG~T&01ozkgm-2zII3!GABFRiQdQuH3*RKY=K&mTQDYLIs?& z<Zo+XQxE8qWNB8U^P1(pyvLOVlsq5uGtMWOnZcb?@12*^V_d=Apxs|)#?Wpx$F^(v zYN#8N+<JJ;N749UFF}<76jD6K&;)Gv;8jHlT~2`^OJpL0cv>@|C_Tcn>Whhg_1-I` zbj%OUfiI&O?=6*Pl<Lc><)yoSum$>mvs!efq_XL@79~Ed4NN|XYcm1;<MV$qfNG1s zEO%EvS`#LfBV6`DHK>k+ZO^S}cEDl$`}?%^5!r(eDXfAS$hCvgUgg##9&7LIZi|gd zo#dzc)s#^TEp_@*U~PSR5bxRwpI6uX^F(I}TJrT-SZwyF1HXAlb_5}{oS_qw>i70H zqM^qm7rOgZ4w&Y`*w&$b{9WAQgl;Z769EF^EzNtaVFX)UDts>fotkM_)dd&mA?(yM zf1>nv=Pnf^IphBFY#nG?*bZGawg_?E?Iq;jf{w`3e{FRpK;EBNPYu5%bY>-~w!y)? z$NehjD{eJ)$J*cH4e%Cr3LYIsE(aD|(o+Fn+dwiv$iTvO(DdPe>U%$iGEUOXE{cT$ zdmiEE+{)r+nX_2|uS_I$8ou!mjgKnLXCPPQnf;uK{f>~HoEd<A26<M)dNU^%<{8fq zet2X1$WQ^u@zm!m*kI`Q!W%lB7RP{B?Rr>AQPQ1a296gvzTHADrfRosHG9UzK_OKq z@#y86hKyD_-<JUBXrB~P_90JpsHu9939Yw@t75L2Pn4&PW|l^J|Bigk8BONQKpL@H zHF?5QBl%HY%!mGVr?;`)f`QZ8eg+KIFltldkx+4L2%H9GV2<skU=rBRJooe_6-qf4 zW5AJq^PtQUcuIf0WZ?cYkw0`ev9Pc^%v8F<YL+~~%dVZ}tiX86Uheh8w>{ByYHS6^ ze92ZT(JF~(xALj85E2rOOS}sUF4Tp~&VsbIR?rtkwQ2qKJ-Y`Gtq60a>2Uc3>!nVy z*XF}oA;0kj3%kobSPdN%jX|{bqRglOCD&$a0jv6l#i~||t(2=Xf(dJ61DUNO(Cd2A z>u(ot{6&7u2r~PAy)Tn+DDwK?jhb>h2f#xwEPX{8@vOVgj14Is=4^5XKp;fc3)5|% z%P}^}qv*Wh@p@+c`biT#oo04f5Sf#md{Sov_4g`F-t9OQdBy;a!y-+t$1bWF!dk1z z!w_QT50;U2nCfEc=RoO#5kCP@`qGW{qf-;~zxGS*EwG8fFVYBNg=D1$DsF`Dw-riQ zBNqcCwF>T?^v$}K>yh@`w1D3quE&+s{4QDH^v)%qr7Mw_NfCY?Nio>S1B|BBp%oQW zWeKUIUKu0|E;7~b`4cEK$qg9#Q$?iJmK@Qv7Zoad2PkXjN>k&j4}vz%epHk&H1RxZ zoVsMk)yneIq8NxouY&GNmz3f-?BYy3EerWbxb#Frr{K1`%4!X?-u}ERlnDN=4L=OO z)wJ7>7IEMWG8*fhN~aA2v@2MqKyGtYpY7y*bzJmg@t9d+Z8nx(Y<w~;^qqRLP||!R zuUBYI3iW#Brh4n$MmXc&Kp*!GeuadO$WcXHphziiM}M-3AaI<mZ73h?iqL|2*=x3t zeD;5eOY<8{9WS3ujMYI$s2RXLn>8Ck?_I;!1A^we$^!cW6bgfk)Ar<@Q|q6W-!=Qa zk*)kA`-iTPjjuENuL*wf<+CIuOHcYR2?EX;{6>b+x`ZG^Vn(MEk)h(D)8Xoo<uG~3 zBMrKd<5gxk`jH<v9AC3LA2-9y`}hY>3b@B0iaYSnj}p(33X<Q#a}ma>H`8K25n<W< z`J=y=;;j_mY;9xv;yBGf_`RlSLBSkG(^kXr4;03-=g6e2wx9VP8qU8yY;Wk})KsX( z?Osw@KbMs8_rlmzptDsbg(O6VXOVR=){1V7dHd1ZV@Wh%BZC4aBzq=mntr0z%@K$$ zq;#L%XPY=5KD@xZ?G?JzBKT3Y+k<o$zGylqT~cb^0n*p(;KX%a6=fv`nM>p4J;Gvj zP~1VRbNK*@)gF~5fD9*60jrDExW0C7FPl_{x=rrs@U)?590DZAD#CXs0`ELAYh4WN z$ZrPvWTCG7K_XBv2;n(mpel0Bo6nWN3UxMaIk#i`d-BY6btZUYH5=9$Xy{4M2*ju^ zA2V3JILgc8>?Gs<f*R*-^}XilPdPwnUv8hzMoe`N()FIF_e)oX(<bh~m!qbLegcW# zDbGC0&nzLCPuQHrgec$(9(|F-n`Iax@)#p@jrl#;7t&-y;0f|Xr{e^5ycrKGEx)d= z`7)*EgX3(QY9)5qAJ;qobbX}A%evHEU-vdqa{SD!qg7O(eo`myv}*&kkjJT!-gc%j zz*M!g8cAkRsKH@G!c=Og@p(&DWF&UW_fTR`Y56=0n4Uf0c91vP-epn_l5{4_JM<|v zY%Sp<L=d@c_*~U`o}+}~UreGyxhgd1C}ZBe`5yoSLHxc1^HG&K04_o6Pk4$jZ!a9+ z6I7y_vSvDU1XUZ8%OF#eoTxabZVxuV+~bmaQu$;^ISg=l6%o|MuEQEOTpkADj!ik2 zcq8?v%DIybgN%N3vM&CEZ*D2Ma=lF&84<z8bMIDGB?=sn#GZzsj3j3-o_NhnP=Ne~ z1o4j5Ji7B(hav?I;ag@I&)@|)Q0_4*=byb&Jc$_E54KH5E@Qx1InNlaIh3?-P_x{W zlt;s1K<Fu;#sK-pJm(a~7>sXUF}G)$S0iCyp?SsyT1n{l7Lgp1tI9?`Us_3J0l^s^ zMkt0Bk=p~OIQ6H9(ni?8#@@7SOKIvgu(1q+LHDL5yE=tbC(ve}`@H#k^Miq(T65&e zu1Qc2N{@-zh1=B(Dr3nb4e3uwNk1}_1a+ilQgY3TRg-Ty$f9s^FPi!d-dK^Jl=sCx zDDZ_#5-C-dMEQvgo|G%>`CFjpG@5p^2)hyNYk3D5M*S)K!$=i#u=m9{$Yw@$0aSYW z(gVB=pppk7r8f1EcG0^C9!MF;P|MJRRWGkC^!+|-i-}egL6TdgS@P2k=tyF7ioo%* zo6RTef<3}QH<Q>_y!SMO5|*s;-ABj5{{T^vI~7(%>AS0Y)K>c5w|g{bpCY*{gy5g0 zUK&M}mDDg=>Ff5DK^sY&{JG9+YSs;x5h>xLIZ~s&XJ+27PwVwPnssPX_+ft6FlPSR zwvI?~JiO;@rz9V0%KL7u9PJ}D!ufpcW#HGQ+G)?NJmwpf4-zvtKYNPjr)kTo43#J5 z&w80f#ip)A@vv^nn%iH<>%JZ9lIwAiEGZK_e{`I5uBf))P+$Y=T*rp=(jF<qVj!8v z<6SDmU4t`i=dCumwLEEWcl}&@at}EmR7^{BI3BeoHoG3YcBV?cX+St6<29sXeat4$ zr9^=x+nv}4p{XNfG99FWj&ti%2-G<kQlpZ>kt6OfN$Fh8>7n1GqDJG&Absw0PGjbD zTncz|^KJ?W?t4^j2_cE7=55&&wzC==IX{r5h9@}$0BT>|vjqnPiX>RjkCgkG6VR6q zXTF10Q|75<;GXn+%Pgd~2Y|kmvmjy{(9)x1o&onXxtdQ+M|RjMz8D@sq*dFHGD#nm zBFN3SfsWNGvZ7!y+}v^~=5Ipuj-ms%Bc5n*>Y%Fwkxm6b2k#G4QM{Y52OM)vd|Ism zTGuhWQ4zb*F4jd27=-T?;USnzgLY%$z4ukOTb(}YGVGDOPNyGA@Hsw0Hu8Y&1oh&S z;^S|h=uI@6_k6!n4N?!Y&dJ?|K&-ok22eo29cxDN@uiRwIq8$>R9K{ew`7yjx#}zG zbwQCuF8tsW!N)Zq3d+nusFX7?1Y-iGgcnEJe6|Cc$v$UeTdsmen9c#laro5DakpS_ zSOeR&S4m_<*k3&ECml^s3gts&7B#9flGQKkVr}arr)C?!H0al9A&z-0FlxC+1iFpP zPC2DT3Nqt`7$1!a_q$?@Z=oYgCfp&}p7kmH@L%ua=3`JSYKS+I*!47}%u;;6GWu0n zU9oJ!LD6x@9GU<kH4Jx2xSj`N(vn$7Cvd<tqCy9`tz$lnr6%<p@s!+2&!^U_K4tmH z%X(Doo@y3cmhYOb)0~~799A-(wk}JXVaiJ?<PE*EPvq|OsQl8y1Z@>6@<7^i>spzs zrbHN=g-m<YX6O;+l1m;36!{<bhk~o`Pg{VHe3AU*^&+jLOO42g`EYU@wKdK`QJkI) zJh*n={{Va1nCt;B$pqIs_g#rvm2V;WRH(xPz%>l1=Al^-VE3(QSwujS@{Vc&^M>OK z*P1P@(OYhFceaEnDCBkERYcV;ZDUa~h3DmLX1ZA-$`%77y;PpwD~ocDzTAr0yXx7Z zv)s#VNIHghSi$N|TerQ6>mFRGARJ{*Ynat^86%j;lam1J8Klx#Ey5U-L^H^!Nv(|J zwL1s4C0OThKDAy{5HjuPMoQG>+IY};qa<hLs*zl}nG$s}5ZpK&sIq#GSE(vQ5VIZ} zuNmf=5s2JmErZh)Gs5n|L-z{zq6K*Kj1W%%(d3Ix+Kop^K|GGxH6rc6JF)AUY^Ytx z7+fAesL5EQQbtKQKGfE%m$78G0ZHSoY8hn=%Z%l652ZiM-}4X1(11SdsTe(LSlJQh zVX6#-w1WqrBCU*q067EJqYREf#y+(2ag302RF&P^GHJ<^d5*ELMaws>AzzS&``zj_ zVn{4V_o-cj44e%5(C>R1Y>M(ZINW&$8K*p><V+l%b4@5)k?Yo-vul0sp0%5oQqsPG z8v3v~?V5C%Y2!s8jB`n~VE}*t>zZUP#&iABI3w1rEeTCcleXlUj(%R$(HxKSjC}n^ zdTU5g@J31F6=Fmvs#nvRFMSy@yjFx@5yn8zYK+D*aEt-(PZ(}<*RiRi2iN7Lq)=UG z%B4UkfUqRyr<);g26IyF13O1J>V0aoGVh!tWHIM8uPbrT&dtb$mE?S|JALU%A+SLs z*woWFlmK&@i+Ka(Lb&eLjk>MP<7-@WdzEpx^Xo)_hbKH5jfQ#Ued+I?EMfO{sd6eY zP2G+t2mm%cY6(|lzbNCeH1#C`4f)fZNJcow7{xfr$6?9Yv8f|q`Isl#nQ-7l#d{Cd zk=>f<fKjkgTuiGGUo7DDZ%PzfcQU%UN>^r#Za*`29jOc9RY)z{BA<M|Ne($vPEv~y z$lAxXQ*9bIbdw<3W*b+99FRpiL<iF?z^9;*rrd)oj1WypEKMu$qmD6Ebo6FFp->jU z3_e`su&INrl43lnp5#;7C&=53R1C+Bhq=h2O69lAy$K!uVnEJMT0G&AwDX+PxNV?u z$2Ak|jhi92cBJ;ynD1g$bGYv6M-@CHGIux~Y7p5_z*0#onF7Xtc6yQPNhbA0x6r?m zyq*nNiv1>s0Si8U^=Dg8y~+?yI_9oh%8~C~yLsb^sNUjsO6;+`wiNuN)G~s^WS$L6 zBl3i8&vI%xBoVG~8IMZR_uRFvfT_DBjs_`bk0=>-<PXN91hOj;)bc7+Dy#uH2D5R# z<`QqAR0nIMBq@)%HE#j9#sEB0pop;zk<UsFI*jf0HL}=g>NjxSc*qpbnn^N0T6+at zk~5k`e4co$uWie}L1ZEzOVw4(((XaDXT45yBW^t6n5-Cp1`i|}cC)%CK^`!2eRwq% z0DrrTQ=mq;$iX3r&O1|xQc8kJ98z2ER^{IhPNP<3Im;$TwRW4fMx=3`21Rjt5m@zI z;AOVsHQLC<;ao7=*1ZVbql!xGVL_3Oa5*(JY!%g8rB_)?Hr=?v=B(``fH^0c=}k4M zi%n?7W(y$$Bv4R%?7fFtiBL-5ZYl>Rq;dC^c^!=x*Ft2ku%u;4{xUimVB;C**A*mt ziCn43@0y8JF)Pk_r7K9dJuTROGGmOdOq!}xhhW_L8n$E#;4%HyJ9^U{mjt2b8NsPe z+82K1Ymh{JIL9Wlo%eH`@!GD*DGJ-NGt^WHQ4!8F-lkrJHKwI;fy?BNK~^DVk~15x z9hh|$UKZXw&7>=HgX>eIii9~{{E8d82&*eGT0E8A^Mt1fequbZJ?VmGnTc5TAU*ri zD-!1;{{XL6rDdpDT=CzDP5%HDAYyoEhd+&SQb^k{2;^W6_0jxL5}z56W7?t-fEu{j z48CD32s!Ci<o14Fk+N%7>-m%YqvqSw6svLsnFgtZW|KMV>+4oh+YH%o8`7hkPTLb) z-7A$p#f%eBJo|_sel*nz31)s5+Mg)4P(ZjK_sHU}p3cO(ErIS%&4ax<JBBHP(-jLF zW?&NFH@z&AM4T4`Jt|y>8$HPjfq+j_OC*6w3&_V>sU7rQctg`Yb5DIn$r!AXEJXAy zdeY_xCwmieMsrSSmpeBD#%h!5(8aY*7`AX!)kf4Kc?%2$s`iVinuC+m`rOo+&Nysm zrYbn)AmxtL^);UcwFE?o31tVcrar%Ib1SOuP&xxiRgAQ`T#~wtjj=Y~ah1g~G-(Mh zkSiWtcohKyF42l1@e$a;v(tlFbHzVXS58S@$3f+lOdnn;TXQEERULC&;&_r=GdmU| zg&3$0h;9$c$gS#0rs~Gphb*n4I%smta6ujDn+|d@k80*0UASo35GoV=LZceY$r(@M z?8DZw_R8dP$-5n121Y^VmPsRlfqad}9V?Ok)VX30n##aqKD0imbs+iVEC)=}Rh8_` z{hii_T5jPic9L<{o%WcB#&hjldg>CECFCG<sEz!L<wLsn>rK^2o=dGx%*@<#g&y?> z+tY;@1fHyTu0?KN%sG+v^~Pysm8KzbcGP=h`VG-%Ub>tZC(K6M#@~8|O-?BHmSBXB zy0yxMAYgRPaZW79jO2UOdvw*TTxquKbx~^Yh1}2XJ!%;|MQr3^W1n$cyNtF@Xb2yz zX6lycC97vfz9Eh#FS(@l98!-FrNd;SCOPESKeHI76v@e~)mBTQmZ;vFU;h9{Cu<Vf zzzu^{An^o~Mo*UU5X51dIjr=JrX`60AmE<#jK@FLwf2qgxlR_?(~nzqI622)O)_0W z%wkw`)kr-JWt`_ez3KVN@xiE-PUBS6w=X`gca7d*k-GwEt*YI=8H$2>dsRVz!#yeO zv#2}{)jaL)#OW=`n)Ydc5;-QDB&>7uHU}MQ6DVRmDOydxDXgyE<Mvn7QFOq7NhI_= zX&PApFPxLuQzN;KLPDLy92#+9yRTZOE~AWjMe`nD0~`usv&2Zx%jr&eKs<6YfM`b& zDHSc36x*^Kq`MDVj^;MXk;OYKK4HNWi1JDIzXMREV@XAI6;;BHdeW&;%P1$_f{b&6 zO_5*8Avj~)j+JU@lghQwm(2vykQMg>pK7clE07$p0CVqBC~c$W=9-nZ6k~LnM2y25 zv&|s5Ty8xxjwzm2?mcQnwhDuGFb;7`n#|SQP0Ntpy(&A22sztRGK3>{;ZG2kT<!UN zY07U)jxn;aU3W;Kx_VNRf%60HQ^ElU9VvXjF!5RQS=@2#SKP>VbM&P<rUU{;duF97 zRDLvz8mxu!^Lo`fjV(nqLaRCg2wuHvP_6-H1P@xBdCL*`)U6?uVTJ(hNlQZ~u7x0` zLzC8&L|O1o1x!Xh=%$r$dHgAEX&C8m>-w<7fbMJ_1vJID<C?X*XFTN7;VQ>*;8eLW z@+Pdve7O2J>E5C+CjG-TW=u*O2a!>T*e+YWQl5pVbP-|XgWiNvq^T7m7bj@snw{Vq zRF?U>)xPLkZbG1zJAWE$MgtwI$8%CJ5p?Q%(}Qu(PW3XoMu}bNu~e@90LVVIHqbVX zryV^h9hK86%BQwzaL4BSDK&L-K3A`pFy}a>$T-hh6z^f$oFOS8&JUrezhgxkD={Tb zI(6?%Vy*xK6)xvvwYqkuykIVB)SK0r>v6t8+A%?iw}H5=N|7@FbHyoA&+Ag9b`o~f zt#fQ6!Q5Ls^He68RzsdM#c66XWGaE23>w6^ag&wJbw<x~#jQ5vQ;#xEV<er~=DTef zS!}I@WU&Jot~SVK`B)5&c&_(ID;<<dqa95;nzdr-#i%#b>GVhhF*1VVaU|sNT8Z;0 zC#W?`OM!w0Rt?8FtI<j2DBL##)}KqWWQo>L5E4F=@3pI|9lLh-^{6F~I2Z&}Lvr-| zz3LiC9gAxh;vvC2;PYKZl8yFQ9hjBR1lK7Pe`-+~CNg=*uHMcqmQf(dP&lJ?Zs!$e zt&=TAnV9Wv4J47s?Sf7-$35v6<N)A;-73o4z6R&Vv7#1^rxf(ihshy}bCbquNTS}% zrS>r#7U@n|vdbRA8$7Y;M+7!bNXVhx^&0Fo$TKi)zbPDwbB1nLr6`3a+KN=3rH^WE z*&*E<;~?!A?^M!#2$R%6f@NU&!5wN<JMa`09sTi2rx;A-iRtM`9hJx)zMbiOT8=Th z82EXSP^^3scT}Nv${CJ8?}|fh=Y^4Qu16r!q$(voY>lvg0Pk7J>7iP!n8KS_KH%p+ zE@*6x#gt)=MJL%0m}UTkY=8;vN^p4~fH=iz2c_;BS-yk$Cm`XNbfigJcH+3t9MZ1{ zSC%KCq#=Sa&KP>ra@SJ}Bq?v4ZBP$fk=~Pb*@$D3!k!6t`A7q<O*I|ZktW6f@X9+@ zEj`g!Nm|0nsVr){a@p%k1;4H~j?{|#+=V?l3Pzcfw$O7<H?V3*$eGAF$;Le?i5#Cc z>^C?DrjkbuxGJ#Q)83dEqmF)3I#$b7pf=Z_z~Oi+k;theK2IQh?lIn+Vo(kPQbxO* zaqZr+ow_Xwi@6_ii}IiEd)8j5ZmnlLl6>R>Ijxn7O`*2+JxHwmXrfzfE4$1%#U-c2 zQ=PA4&$Q?-Wp=rWBvl+1Z%V&qW@fw+NI_t8R_;_<uEiS=o`7boSgz}+v4EuDlf_!q zSkf)V*8ab%8M>X1k##J#vdd{CgJUv|2&zq|Ga|8=wht#9*F$}6aXixHfrvND^{VL` zLnhn<k;$y3Ce_miK5bw1ZB73G4M?+T3I<5eUwYDwOpSq+3cTj1_;{EVqebCz*sW(I zg1Eym=M*NNyZ0E~y;|3)R#5V|LGte7aHS9{l}3H8GC`}JKvF;1=QRm|!xB{E2a{UH z_wp;1+UL@W$>k8Bf_l_3GqlXXKvBomrC>p9l>pK+e7W27BDmI?osUJ!*hzU|^8IPV z?F8UswrR`^vFDY+>r8T|j-%eIeOPkyy#)@a!w3mHeJSiPS9t^4nHh@>^ObDzflq(l za@pgMYA)Nd72Dj8DoNebnrcI}K4#8I>DrC!CO%vd&T~@iLg9*%F~H3^b|%i_Bvxb! z2qV^<su=U~f+<l$4Ci1p-Lh_ANM-f(p)2S)NvEKInBQPhV?7wq=W)(D@lROVSi<i+ zRPZSqt};i`wb*>x6!k2d8?HE5n;(^Y?J;GzXtVNyK_2z=KD8_sx^2YH%p*vSbL(F} z-LXj~b=Xmyk)KMMk3^T4;TO!ApE)m>%HZd%RCHB#RyfC6wgy39diJWa0PM=h%bq!| zR<EK*R8_SEK5FjWfIA-asKJwI7$%(*D4_mBJ*a5df^bM4m7gWGOs9M3Gs@Wb$T_K4 zd1C|Cm=kd0ImddI6;fBsJ9E~w)1fW5W+{?il~Hm*&S?Z&q#q*{Jd#g(mPT0QVvW#b zdzxuMB7#c?2RRjK-$I?*N+TaE=XM7)p~9iZ-lj@JM&$J;Jkyj03d0*n`KeD*Y}&gR z^D%=RQ#mH1j#A_{FgkNml`K6IJt>KkCe4SAjoPnA8yY0iEG(NDhzA&|a;Wo8-1W^( zxza{bbCJePLjM3Rer&g;VyP>MJ1dfu3>AR<>8$S0jo8PfDn3z%rB2a@i*Nxz{cECI z7~c9aB1D55$UUkXr3`?yg$VxbNCOf;0OO}LrZ|fY=-$0*IiGUU=r&d#cnpH09<<PY zUPshY%6ZIv4_(wS^0CfXjPXY`-S;N;Ll~A~n?6(5H0f0vXpbagkUeN-W4H`@=hmZl zC33$h9dS}Occ|T^2pGw3ap_UX14_L+^{M>K5PF<o8V2#s2?xDOmo~+{jH#j6BuOLO zo}^X|rKiTKra1NvMhANAQ3ES(Zck%WFKlvtLNV7BcebpBt2tON<kN@;Bq-oj#PK4@ zkmw_7w|8ceXMYWhbgT=#7t4P&CCMk1YMZ$eBXD2+u0+^RJ;i8)&pB^#Ty>7KJ&o)L zBFZT{!St@h?qaxtIicjY{IeeQYAvgWHT1Ds<dWG{=N#sO{$l6LAo_aK=4V-k7bm9N z)dkk0eNO7t*a>0UaqMaIzf(y`B%{>Qjecb$e7#7iu$kM*QYn$#DF9<Tjx$m}%Eds& zDxluRSG&}uE+dggnY1zIy<Nb-<Pv$#J5>w#!bqe51AjU}EP^oEA(Ue^z4}CQT4-q@ z-g3P?`_l|=%rZvbdWs2KA%=PDnw1$`VVLjDLu*7Rt;ziD=&6hm=~d=pn~!ih)PsTV z>rs>Dvj!X*hQ_wkSXf6H&moU`ll@;ia1XsSpkNmmUwTOwoSs0ci%U?5)^^{xaC=m- zoH#khuf0O$XN%-)9MqeT90nzasHHpXx|c5Ggfz2!zbXOOzGzw4Wmp{g)L^o?$i{ii zO5eUrsQHI_%2$01x*_i-^uW&@X^$eRDF-LoqgiATkTQgxXb-S*Kpk^hscB?Oc2{Gv zGBZl)yFC29l@zX}PTr@ur$aXGHj$1w?@;?P?(K2G41*m7HKWN255E*{3QB@;=|ORl z2L#kGZP*D4qdb~xMTITN&uV0`jo>NguQc_Mh#dCCYZaxE2J{DF6gD_LY8(Jrk2{7i zYElO|$vuTeQP1$?RkdJRY*e@gL?b+dkSUC%kUu4=!DG1NAB{k+QNBa+o>@&ND~qOp z3zSwrC?^>d){<s@s@VE>rxhhgG6JQt7c}e)1B?+_y)`MM-l$Z}TUD~TKUy9}oS4vU zIqGTP0U%=hXFU4Qi<sGiVUBQWlen$@e_n)39IJ$42X-f|Hbcg9_|Qps@gtqtCwHwZ zpi3VEX#@<>u;lHrA~bIwOmUJ4=Acypu^1!J8g|WuFgYY(=9OF!KnITGR=2XUGLDYS zRbvp`!{*O8tLZLKmK%L5Fi6V7f<db>$VvIW?_pEEri{D*o+G`my@2adWkQ4q0u#Z_ zQjL|cz?z;mX)<wy&st5~9ocb$Bwz<E#&88h6=Y57PvR-3CGt4!PdM`S@>|xeJ1t$s zZ7w+m<ve8i(javhIoQXH(-m0&Y~*@Vi<NAE*e8shDx%z$qtOj)g~vO(RG%P53U@X+ z6&ouKbCXes%SnO!N183GWAh{|6?$NvwHq!<vbF#@sV9qKg*X(MjX>MT?@_Foo77G0 z7_yHqC$%)F`FF6~$DpNo4%4?ged;v|M&L4i>R-CeBCL%K2!F)IdjdPxSOYr%2E<Xp z2dS=4L2)jknd%n0{rGX50oxVn!gfa;O*R$58*|C42>xt}*uyB>#X?Yq58E{GyR(NQ zCbha|Pf|&tA1kJP@j(C(4&m!ZmWvZ1VhQ9CPcAl+&6C)k^a|?MBWy>vV!JGiOCL&& zAAr~(_s?3Dnnqj?yP7163CFH^r0QQphof4J0PPGIdVp#Rfb4!xy#2>&oe&TK^yZ?J zH=0NUA>d-7FSz68RFzogc6wx!-k_O)#?jY|RMMy?I3dRwCZcr(M2D~StK7TY3{k-V zV-%s#0?xUnLd7?de)qjLXx+Ass!uf%7sTwz6^kbyDwEVxjQcT`%7cokA#{}d<v?OU z9mP!}mS%hwQaIziQr^U;)gBM=hgUX!IFS`Y&SDI5G4l2`z&^8bBrWE3{u9!=&yDgl zpA%Ro1X!S8ezn2eN4Rm;v#BS0U!weus&P__Yr8I;VtKMSR?h~blUcoG{{UUJ!Rn%^ zrbko7Fl9-{O6Q#JPqN)I((1Fy#7gC|F+`Wn>9mtojs-3=kWM}8K52J1_GxZ}GPz@n zjCxbP(LQsy5uEeZkQ@$q6tX^WKmc|%eD@{7>_H~xC!S7usAj~@1E^u|Ob@llslW%H z%Bjh%hbW3zBKi)L^N%l+!KO0_2GTMJr!t^X&H(kSoymge$2Q>)%Zz%{1{0Cg(IlYZ zROXQePFkTivDB=rhr}`tPg+gCHU%-5gTci)TPLqH`TLr*q=%kg8KPM5qaEreW_+A? zr=yUECpAsooSe7S5-JGOKhC1u0nRg;Z<u8J-31{Vx*jVwZ5SkpSnhm-z^6H4nH&M$ zp<v1m2jfz1K3+4$X?DipZi81PKy#8i)QrJE8S791l|5;W3CGP-dzd?>(nRmHxNP(o zr-lHEj3;c<w&AJX=Szl~68Wk}y+I|wM&~A;Hi}h@XD!ZqP_zqMQJ!w#8?mPEA-EMg zM}^>VOp-jNLFTW03A2*8o?~wml5WlgHqj533*<5Ns|*G`{c0LXjxl%CsL;q<Gx6A9 z)PgpCGIrGXP)2zsp2P(7KD4i6Ii#M2Wh7(+-lQmYbmY><AI<BUd*ySV!kT48C!-)$ za1QR26<GkrMOhD==bkDv7+=Pv$+u)_%W=ZoI_Ho_b4t;F5j+|L6Y`21Ab@%bS8H*l zVkJ-<;Xui$Hm>Y9LTUR+1mc>+WM}I|?o+gcc+~u=Fgc`1!ahmsPc8@;>xzxR;~dlG zQZrGotjtODr@=4^QHMQ^F<XvlR0eGJtmNC!+RK;T9Iu?3UB?G*KBku#Jt?X}zciws zQ0gyGc;xd<RqASIE836%260+8X8eZdVb5P$Y>dy62?C}CNa@ddSzHhY>qFZ@uEr_K z4Dx+yNRmcV^PQ))5CF^<)|AQ40NdKLjo4nw$Zi!E3ql=-^`j~q9nU=Xq1!CD9Mwr{ zVZ}G89P($8oxb$a*(y2%+|=0&!y=@TC6nbMsYjbp)V9_mXvB+xDa-N>ooUQM=NwXl zk<Z~(YiMO_kuztf29-G=4oRoJ44F6_V~S9pHboK86m`E*tu8vQ>I)eM$~KQm8CW(2 zNMayor9`8lrPN)Bgl)JH(DkWF-NB{C-ZPw3PYX1GjD#ueQv~b}T}e=cVrfe=bJ~_f zML-pc9`sw5W+%6yt?hDLo3Pm!?8)m$fG|GwG>N<%5yxsrW&RP24r(r1({dKJjzv(z zp0s&G%mkL(pIS0pk~&lJ0)^^n^IX;0YCp<V9^I-GK__~VgE=5_DWW`bMh!|=GH&mb zbc87sZQL{1(s2A9l%=+StDIA@E!|jpgOCS$Uo7Vx>NjWHqoq8O%Z_vFQnfPWZ+(jQ zrAJOZYaUe}F=NNAYTmCKPdV>dR{#V!Jv$ofQD>7|MnP*37m8E3JeuxoVQ=jCm}4fm zOIVm(#$WE|o@=|)5bOY-lRQ<_+|rBpUCz5n-q3C(RdM_^q#^TTW(RK3o_p4QlOZ;N zc4G$_J?iAA<Rl8ss~bVt*^n&7$tnmVvs6uR@-ZZwdI8?12`Iyjxb6)t!Ypxlfr96* zYBW02_jS;-VJkh%LmPoO1Ju`|TeB=N2ThDWhc)N=60Dcd6M{E!UYoUKLBQgZy^k)d z_nTxc2w|{f9!Iq}MJ#|8C9&3~O`*3pOmRwN>Q64`fGSe5GH;kc9^?#BPI%<=NgQgp zz{=p36)1<y!ngpa>za_puY#vy(!W6WdX=MuG>l&YH(s9fs*$@4o(D>rSd5>#1ar{T zdlku0d0sF(;;!z-Z_JF_4d?hzT$)&|{Kv?C7m_MctYTr2xcc^`w`H}F!+p{LEm|hp zvL(F;$IBu180Mth8QUW(#Wmy;w;y%-8hZ~RenEp-HP|_w#>23b1v0rL8YL)XBqmqX z)LVC_-YRkZYQiJA-d75HpIXsH?pwCq2&0d7SPXq>@v6+nJP}Kt7#wZ}o=6)@0CIa$ zd*})12^PfwV{!GU&7fHUEw^@ZJ5!9ShBzUPMkxt$gC_&Ark<8$$t&Fou`c33%XG~- zUng$N5<2?RB$o`JFU^c|Ro_rcasH6%yH8c5)|V~&?&ZQ8X=Ypiag6gw@+MVC>(Ap+ z*hu=E-{>*Rc^KrfuS&W!-9~K^?^h{pVPkDKm-dUmRd;=9!8fuRv-q|ki+Y^(&tp!; zbJMR%=@;R4fvD*gTE?mIufyINEhZ;~{M#}(81=3PQt>~AtaZ&-P1F2g2Z}80r70ez z96nTX06E96)~ZlXUdAc)M$DHY6$>nzFg{?$uys43bw0$IS~TiG73hBsHJ^rBeusCc z{6=j`DN6mK&23`y7HGh(UtDhj_`c#xuMP>c%Sq3g1=8%3A4-l!)rz{-+iG&9*v!fR zD0u|a)+O@@ARO{*Y99zmEy))8gkr}8`H~KLbgUSqLv<~`+EQt4&Lm~;Q)apwS*3Df z513U*D^NNGkxmK7s{nN#y~QyO<oUWUO2$oGQH`x~&XsUtyGCc&q+pupK`A1-Wr;c5 zM-|A4l4zJmmSey;>0OqcarU?&Af2HwRQih9D=kcB?Ct$-7a^o<ZU=UHQZR8CaNGfc zDP~Y*k0<5FT325xA~BLrL0erktUI=kqCByjobB~A2iuK@dJ)#0=8q|q{M_;?G$|T| zLA6Ip^W2kKbUWVn97~5>j04nDUn#o;dVqS=h27PggPw=IBScGyGERMHQnu!ic8!F9 zF=PaQr>`8-q}WMiW+6_~pIU3m$$^uc@I^E?oXo&vgUvLrxeebzSyaA9%1Fl*CemDO zbzzKqgHeZF#1ZtQi#gqld)9AF!*y~+K4B;c8188p6$dO1O##C&Cp?-H9r3$8>h4Xi zr(!~>I)u&uJyx2^vAYH2V>E#bZdmddanE{Ptf&e3OHz|*mt?QzP}QvyQPMAM<VJOp zCKv}5^TS6PAy!hmNl*#T0=|%yvXXFfw2nTN^S$IkJGnoMhHe|{RVAg%rzN?V*$Q@= zti`3v<eqrVUXg~@*f>3^v#Yq;1~J;W<tCZX>_iyH^Bzun)8xEtI1PZ_l+5h|2P3}f zW5y0Jr0zYb-qvD_^}8pB5{&NYOlA?WCnlS2Jfg$-)c65gk%P%5w&qP}hkMHCWP6z8 zC>ZrMG(^T2ZqGFwY^sD4md1XyD>CjME`7UI+UQ)@waA~i0G@JbAtw#BO-#`MyZbTZ z3a=!O6rd=|o}!YH_)tajYuIz2Ew+r7?@I0gC=Nz4KD3S<&H^0bqk<tL;n=FLQ&StQ zZaF*Lben<mHU<F>a(mP;e)S7&+Qerh)2Fvs&P%aY;-45)P&1x7(a(QTJC9JIb^=K> z{{SJ1ow;T2?NK{!omdR7N|A{K;f@VkOq(uY0!9uu9FIzIJK@0V?kWPU2+lWd=7&L$ z-eUqzcsvTu+Fn4Gw?cp;QV%rI9_DO<2<~Z8VvETox@LzBD*y>3o_*?eX_2&p=4J!$ z9AILRttKCP3;5KE-di3@aC>u1QpE_|U5U<3YoV&th-^uD#ut!JOw?v~U<(nCYLY_x zHUt54%Mr~-B*HMEhV}In+*bA~*Az0kf&nz=jDR>BaoqDr?vby{k{J3@q7vXnyWPD_ zWZRaEnJWwy={Md0fmy9;i0m8;9tL@>6`oX{K_$M#9rIDR9%3>s?3|Bkg{siWCiOY3 zM@3tPc2lvCaKpV;(e-B1kS*5LRX-~?dg^X1OEWM$=CiM?1>$U$1lZgi-Ro67N6IQl zU89y$xn#*!2O~8M+BK_cGF~9W?gF_T@l@K(={r{07$Rhd*|Ib3R&@PUZb4a9V3+up zJ?SgAa=Q{lcHH1(0i5JjnM|o4%OT5mG>oCwlZK{B2~{VB>}v0=kdjSZk=_QD*g0-f zo+!7NvWFxPdlOJbz~mM`HwQIb5gf|CUIORl2a3}6b_?9vb}_`Vec(<oD!a}EiUSdo z*A)yGB4$+&^L5)!W?wZVP)2=48}3fpni00+!N~Wf8Aq5&;}nKa*cirXBz=v!t2Wzq z8h0!!84f#Bn1xa?iiKn(?&+RsS@R%V;GU%Rt4oxwyu+iE!H_UP?TS^}Mt5W$l^QaD z;j&MySV+{w3X!+hJt*c~MCIm388QNJbJGT$<-9DoJ3~@9kr#5GmYRr?@(URO?rPlQ zvJ+R2H{3QiE=g>t&JKIjQYy;46T?*OLgY6lp<}Roz0Pw`>^;ZGSTcZ|8ky!+3Z=2P zjw%+oV*pk^Hhn5Gpefs)PEACg+G0sPUzhdx79L?3%V2}XaZ%x!xWFBaMYNRKGIQ8a z9I3}Xl$foqz@hxc+%mqkD!AK(=9+%#G}YXV#sEC#w2p|mY*;`CEHmql)g8sh0b?I~ zxTZ3q<c4l~^H96(ljhC`BLb>Y>`tO&j;ESZfq^@7+nS6_B}})-K|CI`o^Y380}YZg zO-grn2kyHJekD?iz^PcNBc8O3P_{=t;+*jUp}&XHt=dKNUqQh<#^epO{{Sy=Jm7oO zCR96B0ZeylS){_oG2GNW1eT*6a2U5Bcc-xgugmh|ttrUDl_x)?LLYpOhR)syrkZ6n zWGPlG5Af8IZ83le58sMqv+YLSNCm!7)EPYY&Pw8mT*k`&WPLf_RP^ajXDYpE#yzd= z*P30gCI$f{{#2uMJL{<??1dk#Tn?(B1I18Ch*N{R2A?0xa5o_;-N$2Awb;9JEm?jx z40G>NIL>zPJ5*6j#flVFPwyVJB$BGe8JU0_bgOH*oNn$pgDPNkJ##@~kZdcvoYQ>L z&Lj?YFvi?dW@hsgf<n?kWIOJF#1K1BxNsjlgHmsK`+&6^iqWVDH*-}k-Ah`FIBBp$ z0k)vp75;8>Qvk;R@Ytj)llQr(TUbwWDFIMH;b{>vI^c3?;}QTJaunz5M5Rdkp+}}^ z-sJVOEckUq+K^zya1Y8yTI^vlnLsBv^{zugmm0h(paFx{y4d)XagKV|WG!nWlB4H$ zMW(?dd1@B~?gyGhUNOG|J#kES0mjpScqXTjw#I{K;MYuDw6UG6nh=bT3y!!MrkI3; zXSFM+kOgJQ9Oj<t%gT|rG^FjZ7Q4`6IYq`e?M+*RmGQB-q1?7hbnI$9&E>g=X^?u; zj8f36U09gHZZHr4GtN#b3FK&$D&!AZmn;~uCkOayJA`IA+CVgcYpGgBR>(h6O+h1; zkLEc5;8lhMD+lkzSD0;c=xTI#HA=`uiZ(k)BoWCzw5)L09S2iM9LiX)TvG2VxCI2B zv|q@UueltdU2?60dKyp;&<XiK&lH|nG6BF`bg2^zn2ZdLIrOEsP}gLSn*KOV9RC0j zr1H)Qw@m#jhu+(<+Pja8@sIdemjDh{AULiwjzJuH*DTvovpq_1_cZe>&Bxt2rhrJ` z;M9dOc<D@BZpJ~yV)c3hh0rQ8oVPyol7`32$USOCkn|#si=Omr)NK%way_YCG66h; zPEr}hDpxAYjNp#dp3JD*Z|h>KM6w)r^`(>rQH+dKfk4hWnq|iTXCk$eW>uDs!5VKA zte-Xy0MwCVZbdzcupP|~?F1}VjsY7n0P=d8u?P%#>S$k1)Ynpk5&6`+q;$J6T{mRY zb}Id8j?K^-olr6mPdTWH*5hf}H{>wky{Q%<^8U1{z_vRIdf|^+y|*FS*F;h#;&$<x za9=HQc{JtcoKm>vruHf><5-pe_VlR9a(KX6lqlVS-iJ&aRjoHJ>5K$zBi5B--~RyD zr79V?G_4zh!5~w<x}5gAxZf`g?dwY8AY-jLPIxr9!O5t-jb!vIkjtE&y(v+o+&k38 zceYJ3QdbzwRl>}fpNw}k3k)BvJwcQVo=0kOkgbE>hVD#$FCm3WjP^8ulBAxMES&uX zL}rp!3$auW;`OAgZ0`0S5CnZ`U2sP^p_c<RBXjLT+~jGuU=nR0)7bfh6G|fl8fqat z1NqdcU7AG!+O9e4P6_6m6NRJ^GB#KPQzGuoTZ&qmU6DqjHaKE^%`26au%zG)bL&fh zkIzb1kREZ5aZuPNt;R9P<M1>pZsm_O;KPC_11BBL4QXLnt!^ihq!PK!B!4+Ox>TZ7 zj~q~;a!yNUnu~JvF5Sctt1waDxuQsdcc(Kc0~E(XA0+2BNS?P~fRj)1zI>jPfw0O2 zIb<wIKb>2)#7Wta$iFr}T6rNjr7MDSQLrS8jx$oUDLaa)3*>Yrrj!6`CrkiT(Ah16 z`I;WC%-3{15HaBMO6(MY-k94h<XJzAoPHGcb&-Jrv`WTJYoOPRJE7b6d(k6paG+$4 zrlc>1Bc~apz-~#UDQa9MpY{EA8jQIl@k-2C^`vD0bmE*dj+C|?liWwcEjSWXdQ-+5 zjD9qQeqo=&t9DCvdJH2i&m_~DN5B~1Q;Fny)RBNm%@(;!dx;414oy9WBo35<BC-rN z(L|_SzzkN0u8hi7Zs?7hZb|7;tND_5+t}6CwOP@XiNVhznzqXxQ?57!(n&4NEvB6c zs=HW&(D$ndn-3IB!H5bvQMtb#T8Afl5o@cV(vYMB_l-vX04!Jwg2yD9d6Dok17zf! zb4te~XQefMrC+%lM~JhIX}(y<Iqlx3a0l^c=}Zylnr)}KuS*WL`A0ldZVpNQ9Q3JB z{D(XmXhS1lXO6Tz3{rcMs&P)*6P~86TiHo-D2^eP`chw5O{dJMFds0;BCA;<In~HX zByt95Ozs&Jn{!j385rc$SlzUuX5O*;LvfnSyH7Kd#w%L<h|3%RN$Xg%Wyu1&6SCC# z+OJ(mRG%;mWY=|J3oW`4k}w*$YXDyGZqIu34LQJq5^{HpW73`ay-}tfDMhw*`b#95 zdN2oe?gzbCx&`g{Qm$A6YMzc{f&;Zfg5JD}w|6I*7*I}2ZXk-zOHB>nz3o{Fg;fi< zxf$KXM=6=wHHi{MY?s~GQ;(S(M2s#zZhM-NHZAku0NqbY$v%km`E0IT&`KRbGB_i* zU~AH$04jnABywxdd_51Dsm6-90OyMIrA&ee+It$Sbv#<_xiKU{$$^Y}({`BTR$vLo z1a_w&EglJ`;K*2Vqda@n*;>X5>v2M%KQ?mIs^NG5kN2roHC2zCu^Hx*VVRe<(@|@n zy~jB%^A*AAkxbsIjj=vs!Kb>A<1S2KXKs0>GY63D2XDPNr?V9GR~s7=tChl^UiB=| zD39kLgT*tSB;`-ur3FlgTRaoN?@XNsc}=uBs8sAJ5w{!?N8{e5U|BF%85zw&Hlb02 zpXE^3G7eiI{!nH(A3ZprbMrX^`=HVgnB9}lLs5L$A1g3D#a;BUthxZVSeX39TR9!` zQZXS%e^E%xN_?Of&IW1o5GLNE2fx;%ccE=rT@knM8CeG%@+!Wis+(m?drvLy+>!)` zjw)H@F+j<dB=Nfy=X#~u+ur$Yx=E5usXc2+FCtQH=xypcwx-C<ad4%I{n*Dt=~z>0 z631@N*=Iclb5@?p=JmYcE)!`u6-MO`_IoPvARrbs5^4IIDsIoFzo?_ddfGG%X?rEK zae_8Nag*;|1=o$dQRD9p9}jA}s>Py0!hazU4>XR<Yln#)CEMmVUVwG226@svM#U8H zO=}sq@jvVS7<D4oEw@HyyK$!(B(gTPuWsNOBbGhem~_QsL2V|tclJoF(%()+!+@Jq z4?$LC)6S=VaOEY5qu?BHz;~<gK(>}<IHhK30W7`iOU62_AN(;6E?<w!`mq(Rv2`u{ z5#8ON?E6$PMIT%!=~i#`{{S}MWK7EW;!=7KYR#V9Mi2qcIvTGgLnv&ITJz^ox9;eD zRvQ6HMLDkT?=2>wdh&ub3z3h#hd4ilZTKcQqr9A^{5ag~=OvAEA{Mxl%a1<TuSxLE ziZtCiAu5)XuPkUz@!a!qw0)atb^N*-@D+7XMm^|t+F60)9Vlo|ly;K5@lGXR+qnJi z)S7Ja@6-C!sHrALlZ8-nYkR}fx1A(i6faV1A;|Me#+;VOYHW8x3H-tiN8Vi3MfcRo zO7GC^9v1R;j!Sp+roiGRCT0wK`&1SeKWK><Hb-1kk|qX7>T7ir(JnW$?0pX~Sl0}v z=BB9y!Y>~9sSKp9A0YJRg(Q&0HpUn4cg=9CbVs3k=p#lL0I$G2nq-J~1ZHkI0CcAm zVx%$P^b~I1zy;fndbxY+MX@)wqLx<(i;%;d(?R)}vxD4prpWw-ZNqj?y(}!UE?AN1 zNv&O!5ly80hkepcLeO$!ETkSfQUQSBK5X-x)0gK$1{9vhijC}<3EJ)>Rh>{_h6v6o zKvZ?)(nXcP`A8plnk4yIzEuDY4m#8OLUPyCdB@&7rZ_(I)x?ZRY~!(@{D2nV5u8#= zia1_#&onirgk860B->;GN6K@I*U$R;M{liaaI@v1orY81z4^XRkTy3Cqt?75#g2>O z9ZD~}-eyT6i7#=x{{UK=!E1l(p@8znQSlo`kK%Jx%dD9BiszC=OK@_`3gL0ad(<ST z91m<)FD}pTI=OmxDv(`>9G=ww0JJoC^&P;eW<rj;a2)kq(_SzXbSmSnYbPFUdKGlt z*Y*7|vPfi%;nyd*r>ks0qy}O>V~T8Ok*O@FZgLoo^!6&mJ2v8Y095Lo(Kk)%F$xLP zWb8a<tOFQA6q3iKLZM2w(X@k+nw0<`?KmUWx*KoMxl5-}rP<?=lz_nFX{f;iYviA; zJg3Ui0!ha|T31F_RVsd9F;3SKv~(6(h&z~YM?iU~z+5tnjl;KEaglcr6o&7b8KX?( z_WWx86id@l*9v5aA>@EDp0x~Cq^h<vk6H}AV}iSwW4%5%ZQ~qd^d_;5uW_k6SV@(k z1ZNo(z+I3o4n1nafh+vn6UId_fgj1du<lK4+j<qa!wK9l+lQ?r?5J_;(9*1=$X9L$ zV@{APgKGi@sjOZ0u(|crK#k>`u*cJyY>K2Q5^NpuO>B>p6G|f`c?E~PHk>sHD~MBg z+zxwl)|x?$LxNa?O3V|1!yig>PJsbf-6ZL_o(&P4ruEQ>wwW1}PUq)2KBA&zD&bXp z!cGMdoz7Sg?fF!`V=qC1r=g;wwuPsy#vGWkK}QGf^`ur+K4u6$w58atP60HN1_4uc zbJW&KPh>e-VdoZN9g6}ngH473lZHOj_`*a~u*#nFjKqRQK&_tI38&CSQzPwOea%E7 zV$P4#ur(kAA5rzBkzaTqXTE9jU0izD&%U*EMPZg);~nc0RMLczv#BCNI&>u0VoE$@ z%An(sk6NQOkhvS%3P&R}qodT$O&p9@Q(A;cqru|`HGlh5+$cZ-;Po|n?@BVRBtLj$ zHY*PL(AdV3#^y|XtfW@0^Jx*cWphXc05(H=ifKfVNg<f~R5ll|P6T^`$VN&N&0RL8 zHD?=}9Pv>bUg*v;T}mm4rQu5CoIi0^&BSlF3{QL-hUW|mgYurntH$K=0b!hRTRpB1 zQ&>s7u;4a6T>8_4yN!~5bxkEz0~zDJJkEEV9=%Ow*0({vg_vXwAll5!jAyqMVo(^2 zu1Of;tNFs+TWW7Z&lM_2R023t>MHbTvPEU{UoHU0L+eLJ!27M*nXpRRjy{z34S;uk zHC&o`jl_^ns>M2i+MEDVN{_~%U^1ti)8h;Y!;%}E8p_wvid&8$U5PzN?@&h&W^tZ- zW~^=Cl0IKru3}lvNFjmh4l1mcj7{mF;vF2WGCL9}g?6{hF`9JIG;f7+RDN`%nZ2=8 ztk9dX7@L%wV;;1G4a|Al)|`)x*<2CFH5*E?O&?%KIjQAraFz5Qyt1xF2dzakn^{0# zko9i$Cr5T8Af7SWqLJi8JPp4}(QRVeQhca*#^xD4I29a{6*%DiDa$7H&dd|s)n|~m z5rLfi*{s<T30xM>-fr~+5$5C_%Z`|*V;hb@CWMpBk%mJ2r{<>(tY+2S$9bWjX*d99 zikLps!6yQ%!-Y)byJwSA5=m2m&s@`Qu~TH9D@VAU!#xcteS>pjenA5iD(~oausGtD zSyhJ8Hx)b@$)b|JqDPaGbAyw*p;*LCg<{1201>NE$axIB_RT>oZ0vA$bJ~S?gO@eP z*-rcufzZ?4LdF=J4^h^ICP_+td87yTn+opZ@7CnGEr|rG_+FXmnj}){W8Ji#Nm^qe zStBF(bCP@0!!sUE0q!VD>p?vpgQ1N;7<OVf=A~5&ChYQkX&?)XZu~uJ!^RHG5t@}` z^%ALPWJ4SN@PgZ!k4l`oTdM|O!MXXnQ)CMVJrDP(Jip>6a6Qdxnr~B1Wb`LV1iZ6> z#}y>8vY`W>`Ksu5U@C*_R>Y?O0yEf}eRMH$v#|_eM42Bk>5qDMm~z{WGI7NKfhaG5 z&m>ZqNp{<o9cX)MRCSi4RSQVUr+EW8CZR7Rj-zVed(@5^GT3dW7&#RTFSWDO4*2U? zH`uoAxZx_hGGKx!u7SwUZswlE7ikY1VwkS3NF9A?q&?ApNrhWej1mbQImLFrB1q}{ zV1O%!(_)SF3uCl2p7q)+VJ6)8-P@Y(g1R`TYv@kMyp{xD-~&#ERBgn9&N#sx4LPMO zxMA0vnrIB6f-n17^)<A$RzlpB9f@uD&Uy+$GuHsrYVRY53IOO%d(@cr=hmg&nDbjf z8ZjmSAg(jkqiB^rWdH-#lqejZmm|`LQ9sL^agb@ja_QWtw)Y2#q)Z0KrAH`nB8KI0 z#XVTy5OPOc(<N2jA9p}_tzD$G5-JxN+IZc`J!y}yup=xx<WiEcjGv(6xutY<Q=D=- zk6Kc(q-AZ&;wZ@_Re>kHHICc?)}NBwNk37Fl*pv;xWN0yvv;_hir|BjjGtP1!evvn ziu<oxK%sc(4_Zjkhum^H<j|w0g*MNeeln`Z@e=C{?fa!aIKi$R<qE{$ka*&|UyAXQ z@dr>wmF8uMIeOvU2xHB0)LPv2sH;H;P>w<CN?};QAYk{UFOWTH`*NhWTETZ5uh522 zNd}s8k`GFd$fb(s=AdJf%{M#P(dw)<5F8PjW1Xbusi}z_Mrtyu(q@u<Os%th3h~SH z6*&ZT%|7GzhybbNPzFe-!tP$;v|jTwt1orfYJ#XS-khM3oN|3?Rdci`18DAP>Okbw zy&a8UmqIQ<$E`|<<_>)*05Q*6PcW-{R7sU<v9A(^!2BtpNmEWQlj%+j6cTx-uISP2 zW<(?B*wdOLjC7;S401YC$=ra^t43@>yaAplWGl(Z&w6lNfKS~N=b2dJsO?JV9G1w4 z9IylPr?xUEYy-tL+;3c*3T{^`$dLjD=Z<KZ_TvMJh@74dMM$`8f^cZ_xmz+X;`-Cc z&#x5GgPe0fY@b?BQXcw-RJR<{!}a&3?F4+iXi?8|LRtmxIAD>AL;kZk%{w42bIl}9 zB<H3*YOig{&{oMjj%haXKpazi!@G)lI~9D49{Hlz*wdMzjt&XkjC7@pWkEe?b=;Wf zeW}1<IO|GV5ceLuj`Y$tvB!E<BpzudjhOtW2dJq^`m&aT@^<2g&pk~8%#dNRpK6jc z01(2hwv6V+GJ@I99`uDr9A`8-o!B3(JMNEql(~&!?uhUgf@$d6fjtck3EZbWYC*6_ zF~}5MqePR`h()~QoC+RKDUe{{jxs91RXzAL$BmLgcanz~UrJ4L5~bW@FU`T?i~zu% z1xY6aH3ijy1a{)C%^5eM7y<i9bz;fJ6poak!Zs)wN_)btyM{sbq221s<r;GA22LqT zvizs;sFb)pPVZW<&RGuOhNa4y8nV$5pf1?yj`T4+@tjnNjfWKQxlRUg*8-+7ySTZE z=Pmb#=TDZ@n8OT=`csMX0UfGiE@KJCdt}z>rKmYsSr8;-`k$>l!^Te)EGQi9&&)mQ zDJBasLV5J4vSAjIy4Xoy<xmIdQZ5-lBL;?IHjR&hdo4^>M92C(r~Uy@*O*GC_GNO1 zaRBtEs$m9s^s8%Udd>n^%O>&1%4%Qi%i$SsvB)-z?J9Vyjh=~-?Gx3bG)MDf^gZgt zac+DsBDMbj;T*hpp~sfY>_CeLCybN$Q{TeRZZ|d4TcaS6T`ifnWZ(hECp5XE)B66u zGMuAjZOn(ZVIVl%p!Cg6CAeY76}-O-{7@Uuv(UUxt48yAC~P!$A&xS6J*%$KKV?sh z-YAI$x5J+hTS)G*ZqyZG8wv0DQ7Q7pO4@&4<PlBDtu*uRvF1A+0M8@oKv2#*W7OBs zk^ca}KmIa7G}BF_=D?#er<x3iewCs>V9yp?!wmQGTNIWe33<RON3~p3sxNjsnbfNa zF4L0e&zhbz$vii&G{Dep;G!R`eK&Xe9@^=K-Q||aiySivjt3Q$d+-+0+9vxuS;*l| z2fwvnvZ&pxalBnVcH-`jor)u{D<Jw)AIjdbmn5(xC>`tF?>-pXLKPku#~*oD9Mo&z zt0*K~V}XISMGl;jy^8wWVJq&m{{Vt`WKrZ`ZprP6u&~HT#Bb00HSMqA%UGA@g$_G~ z6++`ex8H?DRL4>~)AmiPvOcz((P()&)9x4p<q{9QJ#@RokyQZ1Ks&!<8E)0+a%ooN zoWMBlDU)e|t;()_i4}gu-%)*Yr$dgig8NUn62k!!cge`bL3e9+sN6i0<Pb0h+zRZW zwF@a53a&Ugq@L6&ZXZ4m%neh8)`ouBsb52gmqnEo56)j1Ax3Ea%^+e$k|rF2M_TPA z1~m+azdUnLUNOd5N%?mMq^YH=DdHt98RoZ)uI+=k0!Jeikt~}75n8vKWV)SzD!Y$b z%#~EXwN#qwa>*v{L13>X%u1WGTbJ~&L9;tvG)y)-wQ!no@~*bW_qPn!b*F|gDfK>; z2z1q<q1b7sd?1mAJmhq#?tw0(4Exer64o~O8&&!P$4Y&}?EoIXN>5|9lTO4es^xOL z`qhV3Wb%~m9ePv+v+62HH;j?Vtody3bJ4Q3-p1F4QKHn-<R?4~SA6+)B@TUvt{=mZ zJi4{JBVee`eJi+lfVkQ>?{0E?*1N3_7PrJM2~WCubfm`FRm)`KI5lOg!>IX)Bc40c zV~99noktvson)?ZscJ#M!-2TcA`vFwTXFsoR(y%4m1EkuVU8(ew{Xe|;g*zcHuXhW zr3yDHuwlknQ{y10JOFtnrh5Y_hTd`06sF2WVG#LH3}lYf<#w%LS6db20UI3w??itw z!6O5`U;7bHkmrt^Re5bTzEPNy+=`uS7S&jZL#&v|$9&TzjoD8m7VBCqZXAXkO;?r` z+*kwh@Mw+hZGA4kt;)p`7*TgNGuTk(QIpa(8ByM?`3lOrWWiyaVx&m$aQ^@?>~T$b zm`l8ODMT>XB!ULwr>!BI%_ONDb;nxJ*a3G68Q5*f>xzrXMInS+8~B^nlTP<7w3eF? zO2nfLyTcBZ$?MuOtgUx$rdLi`3g)|qjIYg(4|;}349dU&rH5Sgs#@u5l?0={$C!)3 z6fD7vL=a9-A4<WS##WO}Fm!Siw(-Cwto&88Z5~)qzGJv0zy}>G&(YPGj(u@lPIBfw ztTr7~jpy?IzVoxT)~sf^<z!Yy0|a{4W#LZ=+<4yZOI;$?eNyE?c_Ft_$7=F;73Fp} zBHB&Ci!*RZuUPmO@dsP@W#hdsU-0GZc9#H{?(OAW$#D@pgZ?$wNvV6S*qmMw(vLMK zeRY0T{;YdWoA6UryZB{!@f*bd0NDNw@V1v6rsfHvb8^ukz}=pNn)9{r_KA0*P2v@v z-rC0LnJlf;{`N)2Rfz4H`)lGK?Hlmh;y1y~drrB$DB6T3%3C?D&V14`M?4YlUkhH? z%NLX8+DU5y58Ot>b|W1R9XJ)+QBqL7wN0yeExvcX{TFk_Re7h%w@Y8W>;7i};uw*& zHvx8qQQEL>LbC(AC#7_n+|gX>(n$#{yFlq&{oS$qPs#~WI*(fM?AyCX=yctwru!Nm z64ILcQ{UyZkp&|labAwFltl=nkf0Ho=lmRIv$c*jO|iRVwrj3MI0Z*u_0W@Av*NLM zk84q~qARiGO0T^v@qrS^A>Qi155}#+rb2LXMNi}qaz@_#)wtapt5%Go42v#tk4)8R zteB*&yXGe#<EX9J?fl0wJckN020EH-h>`%Wz&vK5EpM?-cUmHjlXV)HP%|s!1I=~j z*vza{5COnAu14w*&l?DK1sDWZP2rt!rnmbf!z{lx=B;C*yEBsABj`^mMj0n__NE46 zSy-G7Fi#aNzEy(}hWgS<K7Gb8`TiW^n&DnYLzVOs?7@(;IaX7}G)%9xx-NS6CY2C^ z%-CJWmCZA1@`^@B-S(<Ws}pZlD{gnd2XOCBj4(#XQggs+aw%tKci2x%Q%Yrs&&$@T z?pkePIk}b58m?j)!nS!UQn3W`igDhNvI2v&@y01K3v#7NAB7~8o~6cK?%EI77%4v? z?gc%INZfKhl^$}%i)~zEAXIU=1dZ>SdhA`gqQM~XyCc7PQW@9eBL{=HQ#!r@3JB*E zigN5)P6q%E^d#-6gG+Kbk$@pstLNolI#-AI^rYS`zG(36#_~AHuX39_1R&(&1lNgt zNzzkC@n-1!#apQS!cX1KeQC}6oXFCYz4*tk^v+sm-v0nUPJ<N@2uBNmJJhlvciM*p z_cb4s(gKnJkb19r=4(w^*50;7c?a54C*)vyk4g=gY&l|zI0CH8@;2@;I|_)Ta~5nq zM>x-V#!lZbX_3nzWmxgR<C<pC8R1VJwIs1Lh=eIwGunpF-D8pK>slz;U5+cbir!-9 zqZ7q0MhSEc*b-^tG-$WyoNxspkzGIp<Q_!|Hqn(Q%rzG*cJ5_i%AS<;P)K%itPjc! zF#YfpF<rUNd(+D%HneKk9244}s5&8x9a*<ygUJ-eeZVOIpImcKh0e?#5c_qfD+4YG z!6O|i`M&WHF!=!tG3Y2&E~nUMlTUaIat4b4H{N11#U!Z8z=ME#16lH@>N{Uyw(Gh< zxP?#e6HI-hIU&w?BAn_}6dlfL6PSs}1pC&OxSx?AlWti~02w@F&}K6I@_o3b?HDbb z7aZ+06l@MTJvSO1ld*%42i!0L`qZFc;E$&@4$Ytgh9{{VsEPNNRdePJ#<H4i=xu&s z{!n(wz$!7;i6aLMxBw1u)}oQtNZ4e@AUGh7wD{!_Tj5vcJxS)S@>>P2t#C659IB`p z<eXxYYcOmOe!b~rVptX)#8rPga<Cj8*reKEyCOo^Rb~U+8j0JI)aD?m^Ek&sMIa0E zusKpXP}Ar>qhk@y4%~)b)PhwcjNyUrO7Z;2=;ax6)4ec81e@7GKDBM#Y8#VDlIqw4 z=}Peujn#eW$L9%;r65<4-GM9z1a_?4tgOMdmC(_X4ttS<%_0`aT!WF$YDql3m?sZS z5`4t%Ja?&sxf9n^F_<)XY>a2MWzVOX5C<PCXTMt0o0eiY$74<iv!DdzcC8}%Ee4hJ zIXnLV4_n;It(}vikd8R!x$C=2+erWy62w>LJ5EDap-*J43U1`|tf{QZt1N{{Q;%8` zQf5k=Z=r*vYO>w$hUEk8AgqhQt1OKKjH=sJxz1`CG`TINGeFCR>Y43TZzq+Mu>|px zo(Qda`INM^wf?{1&BZbm+Bsh4nv(657W=2Ds=9kL)~dsLg4iVb;;t-luU0t0$u&<! zYZljELe!Ub`*spg@OKmP;-rpf=Ul7r3)dYhE;yALgD0AbeqVZ;+!*gBY>1tkEP!P| zp{scjd$n!L<<Ysz1p|^QXr>bG^2yjeM|zB@W;tNdf$4#oP{TPNDr4^Z)u~?PIoWDE z&CG#Ib5nVY2Gv24{6y6`TXc%4w+F90)u@8F&h-R#tfhU$CQr0Tk$I%3?}Jc8dEAE} zlfk7i<;g9QItq=~arr(~{c7~Jn=`$L?k@bBkgCG0d8OR|QMC0W;;J+Y5aGUVxjdSN zMk*Vt5;&ng#*dV`=<AjogWPneO9o-L4BtvfRP0d0018v)2?$KD%lEzNE$-cfqSMfu z&pfU{2c8BgWpKzaI&}t_<pS!=TY0G5w6bkE7(EYql=L%eqXRJ97Z~F?6%^+zHmKZs z^HyPGQtIa)FHd@cVxh-!e@bmTT&`;sXF{*?a%vRHNxSo_7oWS@z!RFTuF<h<4Tqc& z-n53-?ljh)*K%cYSfh*slei8lMUVvA$+%~!s*JKbZUm_7ijgENyITrD?@Cv>O>-8| zZ<Gv_%V#2z=Gh&$i5qTt0-p@H=rG5MjosAX5~_NN&zZ^SFK1<9cqZd<TmjQ{Hb!G0 zDnX2np7ck)IGLDkIqB_9*@2v&U}@Ugkrc0CB@Cl*{wh^00A4@~idAg32&I-t<aOJS zz3Tb|#V+1h0B&M&%`!lCj4pH5oTLWGJf4*38~e?IPg-_lCMtv_6dV&)pxh+|%IqGe znv2R)FguEo=sMMb2bg^+IQL-fA(vYu9O0uUy(SDe<0<KyM~%1aW5Swqp*$$g1zbHv zzTyWA<dcDp)oCPMqka?)=BX6@!5s5bLndJ$u<OE+oYIzsrQDKM8-{sbQBICza8+AA zxTeTilyVe$cBexaWy*oiQ_{7+F!V~yX3v<YBxly2ac-*!c-#~H-t^{&jlw`rah&3z zQMEmJ;F`)&T-QX&-(n*vF@#}*-jq0IQN~A1)s>yL6!}O#)mfreen%8o9E~kJq*|4* z&RDl&n(Trsl4pf)TH*AlLTZpQi~?)8g|RP8<oB-nUk%P_x73k9cG}#ZdYUlNVEm+H z@J$TCj^Y8wPg-U}42};$TU|G1Mf3p0vz5+Cz#RdpWI-0gyCjU_qKlB~Ne8IKE0Mzn z%YojmQP$|n$><7L#`}pSkIJXDHP?(3!iCx!-hm-^P}srmPkflpNg}aL-$L0EM66j^ zh+Op)%ZS3W432$jSkrqp4oMgvT8YBv455yCn!At8ts*+0*g(ky@tR2qL4w9po;He+ zl#(`*06hgaW1+`Sb4Alyk9`Pu$Ya1c;+o)?!(*O{^{2Y|j1-Q2sqOoOP)<&BgHyh! zOG2vy85wQO)POtFvd%+nBP0L?D@ZvTMjO(Nr!a+5Nnj|KbXt;b{m+{|F+M&dUyvC| zja2>>#J)@PuH)k4LOvzxPy)>)Y6;K1an7fE99I=o+i9Mb7I%)NeWO0~rLaaRS1jg` zt`Dtqw_~E$dXa71#fkZiNHLDI70J&yrr?vu>s88`SH9rOh2+x;ZCvw$YDMeLO+HM% z&`-)b3VR0Zha~&cjASlBB9tJ>In68OqhJR<^-(jLBF_}L$i*R3j2^V)kBTMl0QLb? z5mC6x<eq8jgya)V5n;05ooCEygvL4K<FKS<I6M*TYIRMgG>pZGByefQO4c)-*$M>< zoO40Q6(~{Acc<(a!KZx)*%2e2hoSYS7{TOqrVd{uREofoF<Cgh(Bei<G_3|kNF-9Z z8R=3Ic5%|RTNdO*5|QFybDp$|HW-XI<x+>wtqpfA>9~i2HjdoW9Zqs8Vlp$((qIva zId7piBM*)-QYraItvO-`+|ef(;~1lq&9!kpTyj3Sq9sw0N>_N|qh)1138!wQMrm#+ zjEPAHBi@E$U#Ar4^PCaKy+|V)xZ;|62R+!u1Ft01cxG&#Guo`QY%zh!=}OQsBXIza zdRA{%K4q}g0LRTlWcmGtS@IZ+fJn|db*C%@vtlPZdXTjFY$Z}8NJ9WY$@HrcShk?b z0~AdB%~Oj9Wdub0`U;(N`H^t3N{1aq3O&r6*F!a;!?J^%9AwliK6hSzQ^splXm<it zMaxJ=NNTX28n}{1Rv<rLnyx4%QA2*F3YHnjsgfe-HsdwXH-#kf#${GH<PlQA;T8yh z%opZ4BAlV9o+dWYoW=^BtTvx|jUH(vA~Z4pdsl2cB?}Tv=3H^}EooW!Lct?vSO8)= z<c!hC;?{#z($y=TcK-lqcM9<B_oZ7ahi~;qA5mVUz6sININp0-IFXVSk6N<67t*qJ zTI?M_s!2V}o+Hb-<?W};7l@ds?rFnJaJ!4Dk3(LhG;0`u3u>#osbk)y{=tD<0SqdK zxvG>S(8ud?*F(wIPiK^QV9HPTR;FzN@^lO!aJl3##d^xwc>`ic8tv#+d8Wq-gDNuR zhdZ0zhfP~iy7K9{<@Wvvx!>lh%1d=#)uRuC?#n4a#fqGU7!~Mf7$!j=bmFWmu{P2j z_o%@Hb*AF1OsmRLQ)ix!0MB`F71<y-{u9=;qWEsZ%TgirC7Y97>f5VrljRNSMLa;c z4UqZnDJZUp=ap)jS^of6If#B7S<7vS5fO)V>sPJ*AJ{Z&!kxTiuQkzI#k3aP_|=$Y zNlsCLT;Tm`lovz}tlwQ3j~9Y%S8vL@Kf8+FvGB&6NL7FWIOJ8RK*JM-2c>A+GQ^lE zxF6yNnyy&urlwr;*|Of5py|=wiI@i}0KiTKc3L%+jlIAtVG?f0E@Ka$z}6+ZG;!fR zP(aQ_bb1pl)N$nD{<Tp_t&VDyC$-MwLesRhx{$-CT29+`{`%2IcXh>juY_$hSf#T| zT>`>bZNkYSJPL7x&N3^@bXcX5YgRY~93ES!73f+kT}OV>`QA`rv&&z)MrzeK%33Xd zulREnUZQJL+G6osP}oSerg+4R%!A8S*^|(HDx7+>iyD2SR@9bV<Q!vZ9lBRICE8L5 zt`*sO6ZdNE&Z+0i98<)RI(&hb_>Fc(_HliGulOevxw-FuK|Dp`E2sMmDXU2XE4#2) z`I!&*tIfPcV%L{{XkurL8Hog*b6sAic9w5Et87~7hQyO@;0L{Ov1%|(?-j+)E);y= zFUy|Q4ibX8Wyid>S{`+;*xAm$W=nF(<ztHCF7%6d6D@A2%5pZE^sRd0Hd$pz7C4jm zM^-(}aDE}g!gB~^k#V%+jzwhTr1U!?^tr_AD3214Em&^IC$O%1?mIIJC<Rz#?po<J zTz#!$BWr8}1E;yHEA8rq)F#489QCZ-xs4-rq0Y*JIELep#DR{rmwShO#fV&E6}5W^ zATh}x@GCk++*x)4qmRy;veg>PRbw&YEAt}nTw<!rAZJ~>x_!}B5-^*#6T3Jn$GtLS zDtyL|V|3z`@3EDfjQL1t+0<hnomGw8p^=vxxaO|Q7%aO6FiAP+Dk;>gTl1CfL8mRO z&7;_Xz$I`_@23@+sfiNO;qr16oMyB{qAtah@C{~bY#U6RrblC0H+=zW&o;O@86ymO z=CbEjkdcgiD^gL%I6sY0y2=g1rDAU7p$3LhOQ``y+`N+A>(DGWN3m1oIO4cn9X#8> zRkoHmKK1CDT;e%MXz~j1$F)S$PjIKKTRQ74rqMUHNE|PvMI@(i2RNxCVz%r1yz$BH zQOGyQtDTwSnzwY0%6p70mpo&Pb5?C#Am5z3x?p40px6+ck@W_H5p0BVqx;o7);s3g ziP!u-w_A(H^P9?Uc_)BtxUqzZgFEjYr<&q?1sjb<U^bY{c{%Hv@2&V{QN~YN=yq#E z!mFg)WvL@vZ41+(6%#B>`%sjSjN~tRy(Cz5D%nyw&#gqrA1k<lo}!ZXQG(T!%m`#x zELKJ8M|zWMa>S@Ur1MKFD3O&2A$X(;j^lFfJpE}n^(cf&<+hG+dgF>&GS9imA%-eb zF69`HVLbsA9#PSm&&&@B+*9ZeO@e24L-&-90j8<k0^=lgsV0*uRaD>{1KOcS+c03I z$3xnqb*Wdf`-zHxfEPbEBaW2WK0(LM&&CBaVQAcj8`S4%G;tyWxW_2x9<-;X<Gt0` z_+VVKkWlspqkNe<l|89tR*)$V_029+9CA-$MI@~5zzdy>$L2WVqd|uaE>8Xe1Jb31 z2h2`O0npSE$ome#^ZM1drIHjLx|7I^fZ$|jy+a_$4U7XyXWRe;li%x6G1#PUFP~b; zO3d4(jt}E)gjb#xit#Pb%L@by{l|Loi)ok3R{&s+g1(FKeY?-$E8i|9lgf#lZaw~$ z^N*NbADCg!Bx4nvqjs7-tPMu#>i+<(i%B-u+>4X%(z+cxQ}XsqgJi4xBdD%TS+)Q_ z8q>0nqpO9^)06L6+Q+Vvc2e78)Gj_E&wJpTZ2{nq<x*PuQ}gF`dRBd}j&(ggG`DN1 z?=4i|6W4A!eJhHR;jSIXB|q7%3wy?MwFukpD|)r+Rn|<^V5v!~$G734{1Pn-f|E%q z7d~NPQTgJai_N*ZQ5f3Cjy-C-O(QX9IBtTqd^KVAtN5F^IXN}XwPu*AzRC{&0N3=7 zLeezvvRjCmL2-glxvd}yV0v`|qKpW^-0Vo{QzU`#4^Fx7TXMF19G^9q*kp{#0b?IM zan`OO8}WkRoNlJu#*(-N#~f`u)tH^5a#AAE=LO$|Uwqb<Yu!XSX=k|%z_XRc2<cEf z9&zrfal7kUC(63>9wH=Y`N|yAXF`C7QV&uOT5?vf<0Y}3c1~4S7#%ZE+sO8pi!w48 z_MPFlt4%1FDGPzf=BtD(<w#am1Ql+Emimdis~=D_q@BZr91<zOi6iO{In6|nB5o`4 z=dOBYo&tsow{bo5fn3j1soO!f0Ox>JdlOGjn5#ycamTr#Ro#AKI`NjEIawPn6b><1 z>wA>-NNaCa!7KGN@3^D@NbY-5?GAop_|iVrjFsv;R<BZ1>=3AaHjI1ISzR5o!20&7 zBvH9SNrQ}*?NJ@VVy*M%__NZ8t7-|Y8YP9v467L2dNDmI({I557IDdHOsh0tFg$Vv zDQp5%k@cy(Z**+kh|7sK^jGPgf{~TM!+=lwJt?etRb?%>_4lbHV19OB4@}mQS{%|& z=^{DNOGcoQ<n*sC_`K4k)rv}wFHkxAqt?AsaWV!3x6-`F<0K^A*-DI5s+DY<@M>kO zbR9e0BhKX<<pxi!BPk1v@_7W(t_Wn@!LgH(#W7pY0D=l*w_3(Ab~~)TBtt5f=nvHN zrVXmBLua-sTa%F*<*`Un9Q?Qo-!+?8ZI+$%Au;YD%WY67E}IxGIUP+rgl7mFa3i3m zl883Qi~t-kq?NTm+PWJQYKwvi02)yq2?~0SgmX^=%tGOb8Q|1=rOL5wob|<1BXyu| z*^)-)6(W&y2y?+Fka(jRX3kGNY8GQ7=dRP!6|z?xrF2T<s0p(P$2A%unfP8Y)S3ec zWo^d<bAd@AIV0}IIXN{79`%TftceL!La!&y*>jqKiE;~c2Q;l7_6)0)9Stf(Sx(|< zzja#W##cjkd5pw1LF1)0R3yK>7*4)n=svYF?~DZpjQUd^Q<h##OfXj*Q5P<vsV>7^ zK_mxB0m0oL0-Gv1P)XnpDP`XO04n|50gPgr$s<NGa64k1mHCX)>PC#n`*D$uPrXeT zR(;5se@5b%22k!|O({Ukue^_8N=ZFRO4^AcdCW_$*#YVeIE{dH$Gt16N6y@mbHz7r zn0FI_?rBG7b4a`O5IF8S)DQc~SSo;rqvx8OqbT_S+v`ka8~GgKvr6o4JgVqnX=VWt z!>Q^jBn`afi5`_SNCLYmYygADS_qW5C>0R!*%>u&O%ar3%r(&RM>Kq_dFXxVVx3qO zjGPXog(63}hA<o2rsj(MM?T%a0ze$~rnHDoBMb{3Mrub#3faazYAH#K4XN`V;-u4i zA=>(~c?M!F@~K`qsE6+d%afk8f)<hY2Eadi12phi^O-Ogo&{gRXA(aoJDCPXI)hDV zf+J;c4@^_ne%yvQJ+VxZBgX86Jt;SJsMBIc61s*5p4`<^LbR^&sx$CUTD2r=`~z_G zW74CZ0VH^CV`GNf+N0EWOwE%@h)P{RZ1<`c+HjO$CRO+<1!(E^lWCI3f>S-YW4C`% zR-}#QV5_=3kGw0TJMXC}HoZ;+X;bMJ+v7(O5?Jq)k)Ne>);EhGD8V{Y?(B-QqXr<H zmLoNhaivTaNiAjl>E(BH{Ao^an8`U^xo`a=PDT>RA_7Mk1PZMNZRKsikjE!I>b94w zmVYMlFDBqHP1*Ta`&OmgJC&IT5`ln8%~RF#l@}h5V%rfaDNN(84Il&pJ5)M+#o`Gj z8Ps!{w-EDNk+DZO^{iXySE*4W*xS0Fdb<*NU=4tKiiif4!P)|z-jz9lqlH_{&-*96 zRXgm&^_7O4#@QUdp{ZUr``t6hr~@Q}4A^7q)}}kva7iP!YgZ0cppw*uh-psXr;Ksy zQM^FJTX+JWDiYZz6&3=omxG4n=AmfsBG9S;D9i~2b~P)gOc>RjOLLRbn!BR~Mlg68 z6)%^uv)4VUT)CZ)r6!wfWR1Q4Q`(?qW^9ES9m%VatZydM^5?0lGpQ48S2-Er)i~dB z6T9X^CsrVa2h$>>-WwSNu<ujn0e24hsKn_j6(eZ%t7_`#weM&_G=!g+AJ2+wx`bXi z9;2;DU|F{f#YpIBCdom#hR1qqV>hd?*OVSdeuL7Sk^_;9=dDAyF~b}Rl>m}5sKJ<1 zX*684`I5%MLc}lxACwc5Rz_H5$LCbyK*TsrtSU#5ka@T#vkz+Jv0BNK+rITI-u%># zpr(0l`4tojo=9Ashn{KjkYXyoD8~d=>g<G<F<<8|fg332<|d>-O5}_Vl<>;xaog6I z8HRFm=~T9|8~2@sRsHGO4hMRc-X-#aH_qF$%`zbUTwv9UcM-S*4ZT4JCp1T02zOfx z60=Ik!x*U|R)w3EEsliHs?9qQ^D}TMU6@O?)GIFqhc&gVf$kt*HQ9+OdYlStN3r;n z;P)b=&o~S)-^Ecm$N(IVe)SDlTe0i&MoA;v-iTuZp1$Uz8~^~wsTIi^NW~|6U6*_8 zE4W~J%KFr+J3M<@R145?imoJR*o0A&*CL`)?;~;u9<<ZC)X!JwSykBHVyHum5~HmJ z)<RE1N#~SObDla=V`ZBM7;fNHw|&hyN!0DY?rB|y;ep4!3PR&(=b@_7$rzmOV!z$U z?@2yw2x{g1GjeJ+;AbVk1Xpbnr<}hq&Pe=ghOw38zqT2`-<~VFXqB8}<vGqpcT>?= z<eR>P<(qLC01muV$jE>x>UwciVO&kXX6KUCWy-Xu;c)#r@mraz%R)(CY+!tZj-wbg z8%7AlEZ@9eFt!+)Bq~aP2wZY%+g29Z5wZnCh06|T$Z?KvM<9CBpRdc`rfCLv9Ax*b zoOy$GF<hV{^`_0Y%P08%0EAPO9Zmt=p1G)}4ALLnf~TW{$gL)ov^BSw$yCG+69uu! zsM#>TGZKAjX&ibp5ynkNC}KAs;_O9Ww<FYuqbq<9C%r8DPbFBlsWl;Bs1HC*GGuuJ zWw_63($4AJ3g-+;`)4?%Ku|1;&eM=;OM&E)i;_U+9VyN?Mh0=XP}RKx_p(RKe-{|P z#LZdRhFK8c4{GEKh|r$-=DRP9F~9sQZ9s%1d1?s*+PJr7EL17?;<;)rSE=gIvw|T} zx=yD*T9~NLI+IW|P8{GGk`yZ-at=jv^4+7QzPAY!r%+ck-MPjOUs|<yJKd`MxZ6;O znOg>}u2-Qv*VK%mUikV`WspY73xHVTnzGh{XpT!~*wjYENwi}-dK1a0<tN%J>PAKl zNQ5#K&NJMaB)4J0?kAz*kFgf&aaySP4pQmVYzgKvDe8F5UA)u2$qaINoA;iW=~2UM z7Xm!wRjD*f=@nU{m5}l>dRA*~P@I+Qo`!K;9F9#f<thQ%57xC;Ntz}3qbfV@G~uBe zk-111=v$$!IU8FE%^AwXrd#l+7&Cm?A!~eTE{FpaKS4_tiYAQie3QW#z!e_O&f)D+ zFr!A@lhYhhsA(Gmy>zy^G)?=t9ivhFO1Y_{(ISud{L$_(YQ3LEX6k9oa^GiVeuPr2 z2L#~PLH(4dGEX__N7+W>v~gQPmG>dkYhwsn7hS+*M|w$Z{!y?NJ?nNz+9EwERaQW7 z2Rv1}SKW>^9_Bn&GPF#^N(JO+y&_r3C*6&k>042u5tZH3y&GB<5+Tld)T&FUrCHxY z7+AUc=vO|qBw9vf-M<6Siqs%9n~xj1)6@mz3Vevo)ORvI&Z^%i=hmhBBFXoMKDBM* z%M*?TOppVE+a2p?2-r$(txVZ0HYW!p`c#Xj?F!ju$mb)aT6N@OtvXgJR|o4^IK}K# zrJ-3YQSw_ksbaE(KQV(-Msoc#Q|%FMIV7IOsZvc4q{s!NNdEwL=~kn)w<mMJtWSJX z6ovqk$m>=R`KlFr_cY?V1Cy4;m~D|tY=i{|IK^s3FOrNBH3XdJ0;$?W3x*Eo9gSQd z;Nf`nH4=(4lXnT2xgY=!UIjqUo(@m7P5|4S^Gq>@$@J|+S7SL{E1*bJI5^tGbroQR z*a2hpHC#%vID8yq8&4G@m3}sWJA+Ba&vN;>t=yELBxeL?u4=?KsLhh6^QzIfQUF{I z)pK$3#@Py-^NKaOoRzwgqze>|0Xti@TLBs!iWm{x)o|hPPDuki)wm2&A@afJlao!m z8mD~;p_oS=2x7hWQ<eVG{{XvH9`w;0NPsc<aCsFp3bBunR&PyEuhkK_7|XVBag0+; zL8Qkx>^<tt$g>=`$~x!Xo{+F_GdWi2nydFS>X}@?(VU-^y*ks&7~{zyv*}YZyQyUv z8OGsERZuWH_oUxJO|ANXRhcl^+noI<AV;t%z#MzgAP7JiIqOqf#<OQ5Ac|?}xUX#y zBxqem7&h;EnPOm}akP#)R8YhAegXvx$YOalc^RcvYydrT)|Ha#N|lzo4vQn@1oO|e zOB4b&kf;n?^z^F1n6Qv32c`+)twnsRz>+9foP5kW)~PXHl(h}FnHCw!;P$PJJ|8$P z04>flSpxZY2+iHNkoDYZ{l2lMM!-p_TgM;+XkK}y*HbA=q0`x^E47$%csQ=NMvWzS zkV2`n?G2n}xLZ#WXtv0|YQ1GU_JFaLCb}3rUE$3#Kn=zFmXIJ}Y*~5lRc@%pO}39l z(lq}7H&L{e=UD_niNWJOmE7sK1ucx*cQI@L2N<s-(|#oAFv%FSx0*o<Wc-^q{&m$` z{D0Bx<(A%EHLcUl$&T(+K*Jf}=B-N3*U;sfaaY}*vu%2gh&KG>X8_iLoo8tGD-fK3 z!@YRb&+Q4PDYu%#L(naqvK~u~WkFCqvs86|+TIN;HMDxChV3LmjgfXFIX$u~p;V_P zl4EL9)h2r;qkVU?%D0flu6a_Ku73HR^5$r~g0empmu}pe@V^m$+4kCPwwlxUi$H?r z;#0m@_ej9|U}CtffA-?h?xeUEo*=lrm1M$6VPk;f>-bkZs$S_bxi4gwuly6=uC&YH zEU`%%!o)CDBP4)&ir}?N34}8&b`wNmCv&jI<DRwPx`*wdq2JwI&bo()V`KZYSG569 z`j2|%uYYO*b98PkpHjVI0=nEb!H@B%jac(LGi6GoU7FPQ9buF_Ok*By(u`PFFMkw5 z=tL%nmLxCF(AS9SKeS`KjV-^1+T!G%v)q+YSelQ=ZC#n3*Tec^OT4&gq%1mAMyzTb zJgsWaZ)tW;=W@!UkCfyJ$Gz0;;FX`u+PUROJ!`~nelmEn;?*9`Ejr$2AhN`yZ1wBb ztKa-l@paY%>d{ItGQVdFgY~D*x@=b~*`CWTrDwT@_LRxfVw$0Ge#$lorf9n4FE!$6 z<F63OfHiqnX)IJA!Kh^MHm`752CH-d=R3Kn=U*}v_G?4h<hu{KllNPXB5n;+xYey~ zWZq?6z3{^o<5p5!-(3Fk?&9Hz{{WVbYR0*c@J07o0R#rEFLYI;+jc!rYr1rqD|s7| zbBAC6tX)^cwpS5J91_KG$pl8-F<w_CuzZ$K#;s`Z2;7+C0Q*)7TAIce_>CKZvSQ!` z1fP^uOUtJaunHMlf-%Uea)8f<&lOVgM1W`JVeB(a?{Q18{R}9*h>}-n&JB7En>4b7 z$sh{gG-(94FrB1tIOnZ;CA2LJo5Ns|0IVCk6djhQQwaUaIbPfh=AyfapJQjC$@i;v zk!`k7yLLrUyUVx(@2^5SR@!pd@1Z5laj~ka5(QXURPe_D@lhmMjFNfIC|ibsSQ4dA zsH|D&C#Bil{6E_A-VlL#5rgfD?`<u{)dkPBaQ^@f)6a?IM%fzxcjG+w72QNw%A_tx z^sN-NJSw*4y~`kO11iUZ%W;~CNtA6=*yoHIy)ju8NiD#}4OS0^D~uksqH^6CG`2)D z0<)&uKsXzl)QT=tqXU7txg#AaMO@4azXPKd^{DP<E4u||$>ScC5>EGIr*=e`Bo_IX zJm=P$8)$Hm4(I3QpD@PN7z3{ql1#{eDBK&9fkW~x-Np^W8-c@e4KhQquruwBl&D*8 z%vj|8(b}86w&dl2JuyjL>^tkAskPiQa0%w4VhpZJ0=tP&7q%*C3`CY(=g|7pVe;xp z7y~$^z4R+>Q1Gj_B!ReOQYlll$>Ce5rm6>gbR5zUu^=080nP_=RnQV6mEU>VK}N~W zc@*%UbgmmT*PI`@g+tehW1*0)$1#Kb+R4i0a@<fGE~9Ac)|@dcAzKBM^%WBqCk1c` z>z+*{()nsYZLQlB;{?L(E3!MgSZ*PB@+FOzYh%*BZ}C2p7L(#z`&f4v(XtCRcs`Z% zg0MT{jCqo5+(Hg<UOVx#OG|x!OTV=Znc-xVFu(+KsFIbh{eNHNdUy%0ZeGU&3Xo2E z8ql{asKg^WsL9*tD!skDw^AsM7IWVfx29;iq~!&QNA{L|f*HmYv+r1@+qv{S(NC65 zBW1iJcWI-;dvt=^&moZ<VTuvKthmf}(vaxv2ST;g_@_YeK9FOFQdsA7j0I?>42Yw( zVR^Rjf+m$CbB?4{$tK%T_gS*WQ;n5LZ`g;)D!@O@8!qBl@++|LMT@Lb+!(^4I84_b z;@9m_`MQKl0S7I+rFGW+G4Q6Br&`9k`b0ODZ!rlt9mP1OZGW%$bIHfn_K<EbMQi;3 z0O6U|FeK-vy;z8BRaRCxJymnfX840%@NSiB6q;AWEjw45=q!<2DxJtk$p`VQ%YPpJ z>@2=j!zVkTYy<VJBGPSK@MlI!PBL1fs1UcD7Csq|&Fft!gtc!BX#OIw{{V!>39tM* z95nWjl30LxkUEUxj`ilcf5gidd859!TSp`1^4}$~>0Y1kqvF<^pp9w&0O1GI{9g_J zo<7BOJ=(01%gUJ94?)N|9PwS0;-{t7-`CIlndjna)uR|roE)Dr)8@7LZv2kJ#hx+v z3$FZQ&?JvVz0tfYYL0JiAPp2(GH2x6pp&z921i=u{vh1=R{sFvw}`b51?jgIS`4Nn zStfE~xRqDuXw;LmXM^fRbRHG>t83t&2{wkG4m1SSPMmF{)saNtOT4gBulyrCA6n!l zyqfS5%7#W_@-%6+cOG~hg*vc`g0-)=$!mX}-y-Ah$C`V&Ia{^u`e<TZN?Cw(1iO{O z4xaT~A(Wk<@DB#G?(O5rU~t`VDx9|khSVE76IeK_Ud5|D52Yb_1Y7{yx`v>((lRh9 z(<+G98OC`6h{El{sRunzHRnAU-5mybOu&M`6VTG{8x$2AyP8&fpO_Jjr`C}JFwQU= zkyU#R*LGu~;BCnSo(&@84TO^3q*8#)a(D;UfZ<(EPSSdgXl}x3JqB)JBIINf&T2#% zW4mcn+Z3NGG06cloSH-+?ie9^8gJfOlWU>iDv~3@@!FO5G3k$UQN<Gm$@{qLPu@xS zNGb<<$>}SimETbWf+ry5op}cwQ*pcH4T5<9iWIi@+(}Y+T6kjaINGD2J?m#Ev0BK9 z+0on<+*DxVyyxQTAzeA54$j-W(s~a{^n)1W;{}E@To1)r0@zzHjhGh3dQ)q5M1CZB zIgpt*dICA9)r@50C=YScnytw^;F4-7E;;Ua<QnIcxlcw*n_|`3Z;^%w$51K>CQ%l4 z7jkjHrpI+5b!8X_ovrCk-j3mpQIA26^()_6k*rX#j23k}8z00db_|3u41KC5c5VtB z=La=3Opgu_aon1#cN=!ssRkKiP!#peJ!W;4zI>687aUVdH<`I}kUCQE31H!0-m=}H zG}_R6fFn{|44!FTbdO=`jp`|^nHdM>Jt#6PmhBkj)K-_}vL&m&Yw7+&PS+&I$El@I ztfY~+bg0-XCf}J&3_wt%{J82W)4sh;S1Vc%5P(<~>(d68rb3=^jGBZi061a|4jjq{ z-5p6aI`uP3?@=4&d~Rdktu>@7NDaqKQq7fogOEKb*ihW4C)Cn+>}aC4V`C0iAmDY$ zrbdkN1y=ceDf3GBOaL~XgOF)P_B*f?k-@HoZlI%W#u$R5bze;LOXde<85@skSqTY{ zMsv*~xyjgr{o_#W&>9n@m;)_JO3NFl0hsZFO;FqV@Z5aV)<0(XVo=%sEasw3H>f?+ zNIcNnwt}TVU7e~u+>C;*d8eelVfm2#Y0_b~xm=Ez=}|X*1mx~V^G3b?ZuIq)*b$w+ zgw$stmmux*sTtju5QQz=H5P6mWpN@^1S=8GB<7lk6_|s`??Rv6e95)@<E2S51tYdb zYF77RyKc;c$YVkn{o_N2WX96e;R{X(1B35O3}a?i1Oe)6p=qiX=u~4G>|c-`pi-6D zlbmOur1^447|(M{mEd!qdQwTCy`9H10L!s}C$XfRywU<U806BJ10iN?4%E_CDE$Yu zE?cb`7FW3uQIH78??T1{90C{GjO6f18R}`wzzi`U8qKS%3$^td6lk*L#^Bun?MW(a zcJiBlVV(s908{Io$F)8}pfLoTcdb$<lU+#4vk|@`K_7S?l}cSaWt{-q?^hL?MPNz6 z?@|^0*bmBMtrAyT4XZs4dj9}TisB8ELIBP|J&k2KlTE?Nb?ilT(;&Eu41lTQCbMSK z0)x4CFJfvHx{(<2{{UUeb~iCxgEC++>U-7YxsBuAu6+pZD+=>RcqB5~xmG`UJ5(Bf zh#<Gr8s6q6idhHx!@`qPmp-YA=}BDZqj&RzD+X0KBCSW4JPhNUReNU}bAguR<GolM zFl6~n9}dNC^b%)Fg$uK8KZtO1SX19#{{U#R4EabgwU1igb;}Hllj%`UZydZ7Dt$rg zTgGoh_8V!~tqg{E_$RLf)V@wrC9-?wsqSdz^5bXNI%cgqw1}u%p7^Y1Ek_-$hoc-W zNYAEel4=OE`D`$KY3hJDAPoA{Gr*EL`F9d>SoW-=zM#^Qu{wSIz~PTdb;D)Lc0ElC z7SN1v#~H_bQ<gS(m_`>QlgX~8)7_A^D@?%?f=M|!$4WrHWI{zi#Ewbe(zK<LMUWId z0}k~9NZwFWyX75?WZNTVnCYP@^9&4*^<DDND_}2PeQG$hCAf)>?Zkfxsaip`0&u>S zO}2|#EA=b922qes;nJnIB!|EY{OVA^vB<zDgG~Wr9l5BBa#k~PW8){2{OMLv9u`Js z-ahag4{C{IIU}j|rGh^(p92G_p)E}>c-WQ&#7h_?<Q`2)DKNyFN6XWi3i*nqPb=v{ z+dB|gp1A<l(Z9sR-lIv~w6H7g1w9xXo?GinAtdqB)X*hm$OAt?OLF7fkR9vPWA&%S zZyZA_kWalbEXrI2+IpPTgkr;PGlQJfuC^53wj2|0%pC6QDHDi^`^;&8GfG1^0G{HV zC@DXdfcr3|HugfgOmtub8Nfc2vHZlZ0OpXxi8&>YT+*_bj_i;<Yc(!rOq%F5BuLq^ zK*vLlwID07zISJuY$}s`fl0J0Z6`lU=ze6R6OhWRqpwma3_t+ee;Rh|ebIsGOmGW~ zWRBvdS|ddZbs0NiAVJ0tJW+2bOtSNy^x3wv1kVSlH1irLI2ky=#bV@D_a*bP#0-`_ zDa8rK^Pgi-+hm;jdenuChat1?=~o>!W6_i88>7`w6fy-l09T*`zYVtvdkWxmiFRr> z#IX6BY0Y<NHl8HIAIiI+^t(7}B=jt+`J6<)TIUQ{@@iE?QoLn>;F_w@Z6So4f%K`? z9k^_r-K%A0uX6_Nu<$wgi3FYi=Za0c@Bzpi^G;bpZrYzP<8h|#R!oM;_7tq|abD<V z;;0EmP)-5HXq6)Qg6EUNbmpF{z~hjsz%&$6!Ao`I6GPbBl_Dj>5O+9WdUm9B=OMCl z-k#i&2VSS?QM&@J!z<`J(zW(8eVE1!ayK8XMj4MM4!FlXb5AXmDxrg5WS*43hiS)O zN^!Q#2FbQVfzVTd9$5-Q9=Y_U4h~rgpF>V4>~RtRdXi06h=+Fl1vzj*>co?Zgn~#X z7*@v~l{?Czuz4q`sMauLZQP+!Mh|)%o!!RM=zQt%Wr}$6>BFCy6cLKzXLX#g95y+w z&*Kz~e0O+$@_8|ZQNRYcL^yAASjndOk4BSxr~{Q4BPSHQ)RHiIQb^&r5480;6o6-% ziCLpmp6qf*l6wxcDBi?mXRc_;ZfG0~)=^24rLDwScmuKHG^Z*H3IPqqF-wA51Ew)o zEyUgR5IMna#*=wWlg?@TKwMDDt&TrBw3!^~kwtX&vaE`^=O((FZBcKaTuGTR$TiDI zod7te!<g7O$UfBC(9Zt$r%odd2t0#J<ftkW<yASwQL~)Qw1PoAR-XLuKqnO2X&n-G zS3<G*c%&S;Wl+5Hj`b@5K>kLZ5z7(S)?1h@1YBT;P<S;4-G_tLt%cfLo>UG8twS^+ zh-5#VQY)EtWl0dUgo01jqBG!NfC=@h40mUb#-mNH`DM>uwQ;rXChqkklMKB6w9)}h z!vS%cYZIN0GtYXKHB^Q~W%(PwrEctnWVJ<qGkL<V<3yR;f!?JJi1vmgE^(S!VhR`L z&Q~PTZ<IG>Y%mIO$9j?}2Hv^NI7qv8o`#?+gM}P+qE780J9QoAbM>iF!vm55s^v=k z?1S%4S6*|D2UAMUMsGpHgTVX4y#SIv@5|FCu4*KZ6HjSSs3uGWJc^!OO(Oe~#^N=? z<KH5O+(;)lZj{9<oyb8Q^G!F_(#{aKmc!Px@)Ob76Tspbz&JS>=B^~=^YV-n!4;k7 zr<z$<kOnf`3RTo&T!71;Le+~WnH!e!zun|6c&n;+930m&z9fp>l<?l8Jt{@<<Y^?T z77h;G(i~KL%w6tu2NM&ufyW$EL~Nvyo_g0WAB@GBD=C4XA)m~MWr_M#X84P3Bue7w z<c?5AK^1AGuRxRK_gUIBD<E9(bCFMyBfAR0KqHe}0rB;@3b8cof7=yQc*09dpO!hL zAA2tO9QLK{6Ghu*dUB&UBrgLz)a<@Q3nY%J2;*_DCcE*?#L@#DyoO@k<=VS`l@vZZ zxx0zt`wB!Af!^*~ruKUUoz?oD!yW7omGhBLp*4OjLr#Fly7n;G`>Dw_;%Vb6(<?q8 zVB7##rBP22Ur&{FRen#K9|oz}yNc3rx@W!Hc$Y<q%ztfGkwI;Wq?&ZTC)2iWLo=yw z?qa+Q>sL_?t8*eYKKKJQT<RKxs@pXifC=X<S+~kfp6hS;C%xVHz9ma^ipE=kBjC2+ z0{v>d{xXI)SjL|Fv&Lr_uLY9gX*hei*k?cM4_a@ORh5LYZXF3?YMgCm#XGe5QSQ?G zN3*vkHH{-?AM)Bz25PJPP`8Z=&iZ^2sRc^Ql5t)kFlP!R0zf$%soq>0f;17F^aNBl zC2df0w|CcL+a>s=rOCPC)UB2<K4nq3pQTX$0ENM#+cqS)xjvp;Tz+-r2Hq&!_i>^F z=(S)F7oG=NwI=spaQ&36Wxw_M9;tKjqfd_97!u~@R&Epw990(hw$m=?>@GuR?wN2a z%vt7=VpYCRVNtAdnG2F>Hzx0W4Piz-_1yG{J}XVXD`P7kN1Ke*NWLlR24kHb+4_}f zWG9~0#H72`yB@^SM|34WeR3(e%X^u)B-Qn?+W!E;;PG0k2$xMjdZ~{m^QK(<QSl|> ztdU6-oXPxa2qQkAR~FZ>MCWsjqp9?x`&t4>S<vUFHG`XfXnxKzvTJ|P?U&-Wj%8d+ z;uV=X<Lt_$RcU;6;?}$SNBkw4ijpu<2n(O3amQI$W=Q<2o1o(=&_ZAE;<PQA>gl${ zr0P!IhS`Qsr8O&FBb7C}RyEheTD8=&wf?oJUYR?|IbYCK3%gjgDSX?jo4bbjND|z+ z0FIsNVWMl!P(|UbQf<R<+X3dZY`z(MMb%k_uYmPYAYH@lBg<SLb5NWXs^*cT>N{J1 z(8##cblpPqU0hhlG^32}Y;o<Hae~=aRgT&y1fY3=7oIwDYqHTk27FJ|_A7XL8xNR( z&puC1_0d85AN*sK!zIL8EH;dQm-F{A=e=&~MJpul{zb+OYqCji_#R&bvPEi;DFzfQ zR5Aj2_ogUIazZZF_32*GFYHtCA}2<<*R+cZW`s0t8W{_}a7U$Ei}oJzCB!Ca{AUfl z%xjYvgDT|KGEOhukM#92il@xmn*RWX{{TH1;iSmf-0Z;m)N-?Y<+H#9pKAAp{f;l7 z0z1zW&*x)tSkNyX)hs`<HLawcbei4tk%c?im~-ecT?x0ZDCX5YFMWUE&z}RuDaV)@ zPpPRqpa%p1JLbLFe`l=$50@_H11@~V+QfTPZhj5;E+DbPr`=!-HtC7Ur6n%MGn$`W zQQ-#i7>UG+2pr_qX)lneW^XKQ+;@6<*S)vH-wEjcTHEMx5Lf1DSg|yhJ|59lXSjVL z0tzbOmm>qEON`{njMCMf0S)vd6P`VBQX{LlAUOxPQ(pG=nsK(;x=p4JtYWJ?PzC{Q zB3yO|D*c=43Z>cPT7TLjZ#Fx5j^3C<PM*&4?rp->cF$5$y;--$<SK+7fKwz=*z1#B zGKJNyB{g)<DuYGTX8q#YIz|o)NyTW|>DLx0%`8L@?*YYn1duDKjn{Aoy<_-{C)rU5 z+s;CRT$5bAP2($^h0zYoPCykw{$)InD?<22OYP2a-m@-4c}y3tYL@O}E~T9qhP#g^ zklbRu7S*14<NpAjdB?qZ_lCK-h?D{IjQiK5=_v0cX9WoEd(ySpaaKo0@__pRJ3^0` z3Z-?2U=^80a((Lhe64^$CxT5=)K|-$7r9<)=kDlwG@_!&6t?VeN3Bh4t2B&~ovKGt zDUql+C4fEZc(7j%Fnb?b$u4b<iQPxB=)VrYO*?7;W6p9bxwJ8!#Am*1jQDUCJr$Vm zAhG#WS7&Ky6pCe)Tsat2&jPw39;bm(s7l3~nU`S6*m8Q*WiaFBRtz{bG>r@SN@E2H z{wj(@iJb^i7dhGmZOp7D^|~8A(xFlnRva<)s`&vGc8%D<ImRk?Y`eDuCydo{h|(2e z!2X7^mZpncMoDiYXJV@H@{(zfz9t|^hW_d3Y44IUs=+#B)N+TCb=-x9I6bK$+WL{Y zsBtDR)YX~1!}DV!fld)TvST|y?L@IE0Cp1O;-R#fOj1|SYX)-sfC&Vi^yy&%8*j`z z<kB(>1t*_O)8tj)G5JW%CiNO_NRByx9WnK#^8}y_ckfZ8X(m~DQR*qm`wr}KDetJ$ zBAzoD3<v``pr0{=rsp~6DyF@vTIp6s`u1NY*$Cdpit+yd5Pr}%H#5s`;iP+8cx1u4 zxIz2D-xQ>}vfbU;>{_O&ZKT9xy_GG283oAAdH%QY<3Y54Cc@U{`Ns_@OdvJk_j<IK z(n<D<iEd_jjNWvT6Upocr6iY5{{Sgq-%(lJy_LVM4JpIgUG9%T)P6X4j%IeZn%ho| zfC=_^vc!5C<Zre4^^1Wm?fkc{IxMG!C(u?4&my(~<J47jESV&o#OF0Klj_e#oizui zU(D%X)}Go>MtCD5rCGDqwI|d(pS3Dk$l;U&^8@v+Str9_v19LAdR&5An1g`IUyRVT z)s<1cZe_XN{7|)JlF=S%BUuq&WNv<LImxaZtTF(MyMXDFn&^CMdiV2MyE|ey!hxOz zakE^=l6<5PbCXMzMOl+QF74m?{7pZyK`GkNhEv(PRPozd$U^xsvabLUz^q|&B=Ll2 z81@*emXbP+faDI;IHpXb<)hTogG{qoRHd8>M?w%}R9cHX7aJmhP%>bQ^{H*8m@e#N zjyR_nC%I*kRaGDw%|S;}n@?BViWpioNe<(VM?ZAa^!v~3y+SFYm7-;4D$2xi-nDAe zNuK4%RVtlX*zhYF^{zF0*mSKme$ynfglS`3>>2A_DY)(Ze_EXL(?z-LI!DGg(`=d< ztmV~iB9JSjC`)wh>svB>bg+Wd3#}(mwhY8D@(&oUufRSVvhWt3W4XSD3zS4%@~X6q zO+_ZD;mu!FyGyH=Pb-fyc({<0*b0{Bo%B5z)4<L#yj|9h&790X89XsM?kRl<{`*D1 ztM;BX(DjDJweDLP!;Q6W=Sa}!o=9PeJCz3v%DBL;SHxcnA=V(1?0!|EfPQs-u5x=+ z^VRCEL&9LC??z1@XL1O`9B0yxGi!iy*&uOEjmw8Dg-$vHPYxGp191a5Zq=5Xvw`Wb zO||4XB|z;+t%A5DjBshoADH2aj2@>nfr#zLPARmWgeJrQ%|J50GcL|mv!0lxjl+D% ztfSD-j1-UyXTKE3cXw4x6(=7`o?Glyo}{d+AsGch;F^4nA_rpb;{!Dg&54ZUdghWQ z-sN&Z$5BZ(iFfJHd&tv(rB6H)oKu_>MiJ+pqaCS)^}%9)y^4^zZ<a*^JOVn@&GR*6 zRi5l(D=TDza63{$>gY=okl4W;DeA7c13hwcO_hAfO5+2m=Ct^>M7=C4e9Q}E0DAVW z8{(-mXtAkL<)pkY_pa7h_!wvF_eFAF6jUdNHYyb=!PuHsy~(=fy6AYUvF$kI5$RQ# z_Z;>kxaOvwf8XvLk~pYX$Ost#9_F~@(cP+A4J^$2hd3C;O2PPUbJS*{3PJ!IobuF# zoVU)#OmxLeF1-qN)RaxV*q@t>=7`Qi5&-rTJh8@!w}RbiHwPnO>szPYY(%4XVOiZq z;lLn_nnVdQXD1_$X<R#DLwvn*X<`V1K){A(1RA9tqHQfu1_8F720PQ^C;-HJTb_NX zk}mA9$sVSXHznK$AbZqpqAQmBjx&v<fDT3v9V)425uR`tpRG#qkO)(dDiA<Bard|c z)u~x*M$XG&?8Z!DN7xewZ>=~*xSi~A?rKQN!v-0+9cnCjjM5yco|HDbnl9r4f)7#k z=|f<#R3mryk4g>#`D>6rylOX?DF}n{qnn#X8@rM;a}q{I-u!o@=XS!_<BEC95y?5I z<%9xB2Z7Ey(o#!ARe&IARZm0I`cs*cfshm)qLI~ODV_t2W{D82W6LUVc_xy2jB|t> zo<a4h>^82@ry0oFDqDv0qX<+sdxMH1Lmt&rpT?5hm$)-Bsmx_T;AVompXY9!GfD)R zaL!pt=xM>wyL`%{(Yn%-zNE@Z#8MET7H^xkpr)<b?NAq=Q%$;D5JB7zr8N;zM(pJG z&S|M>sWOh2T9OxH;h2rSfOAR^b0Fk;F`?mR84RR)nuS|%=aJf-u8LZ#iIFiNou}B- zWL)HRQ|f9)j6}rX=iZv+f_UlHl6D0lBTz;dZosKyP`NxfZU%c(Q#%78+)q$xh|B>v z!w*V(JB6-IGnY-63)?xSv|-}}f_UW90=3vuzzw|!>rxHst<C}MQ}(nJdomeFU7<l4 zJd;r}7Jr$JJt}1dz-;3qy*ntt{nGspHKJ-;6!h4RCHekhO5>$H6U@mcAe;p~sTE3{ zr1A!GDnBrC2Rz^!X{!;<(T`->-4D{DkPYB&BY4i=N|HA$TPGMe8Kyp6@=i{0DwLh| zE=uadC0q;)<F_>RK_YzofIHHe02swIwos0s)-El(u`9ib6UUZ2K<B9ynW*Vd+~H-6 zA40>St>{qTuX20T&1DR>QVWdk?7-JWuB?cZW3k1h)}f+Kj!|T?Oo=$j1KPH9&1%n4 z!AZ7;IaQbCG{4#6*&Rt~Vt%2k7W>2JB3oGikRO*lsky0Z*vYP6c<LoaX&4qDAG?7~ z7-`CH`GC(ggQs|v;JN!f@yBiFftuP`;+|Z`ARzY!rpx40yq(!v;XJ#dG88vBspC*V z;~w<ut4-iKzE})%NgEVU8<Kn0UlX~avQ}LJJSoFd7cV1o!8~(Pqq;uU!^S^4bZU(u zD!3hmHoA#+AXM8XS(%10k4m07e5VY&k3&^vSqqWSX9t>Co=EetH}HGYYnfW&Z&pt# z`Qh+3kUco8i_JN2tZpJ{BvuiY42K6Iwh53Z-SV>xm8$MA$7w3vD&r-x6m@3_;Tx6# zP>CA=hTYb>iCc0e(l~6^WwnU3znznU>`4IeS0$9j*<f+>trA-x)g^M~Jixgpu0=VK zl!9_V^{Vhp>{ldtVAaVSOSlF4X0c1&2D|J;h_T4batY3HOVTzg_nVB+jvSr;0Cf6O z9nr54Az+(xh8<09W%DOucrpoOIAg{|SlZZZ%uair)m<CrJy+?{tRi`lpRGfcv_(Dc zAuka5h-mTGzG=}j$(@K7j&o0pjIyxcb<cWoa61xu0Ykgh3CiNe>=lXXdXrCug7nTk zsS_t5$sBaWO9)2bWC7l(XvK8&8tJ&Jbz_{;H_QpaI5{NtrD8@v>FrO(;f&-F$fqkc zb~O?tRz?L|Dt+o!{opyzr7}e^l^DY3igU3jUmLcZU>caK>mnK<i3-ceH8&s<2hHzH z^9dOv2hh_)GaL;4YMECh1mLp}1}Ka?yr?_9sn`-Xx1prqFxn1#^Fw_LPUvKdyDGz< ze_E|F?Qj&5eX7Hu86fl5ny(@klwguU=hBBA46h{h*aU66l0{D&G;wWF^5>F!)M1@T zBy{zqIeZ)trlB`+OH$^WaKG9RDNr0ZU|3gko$?kqP)}OnECRLkJ<diAcF7jyaUyRS z1Pt?C&}TH|E7-cRh}}x%vJcX(C?pO#`c*<3<k~)7`R!KX`>LRo^dNMun_E<6@ir-5 zO7}jrn}Tixk;gzNC?k|M{{S#&lTk>d7k$_acqXgKita3UW1aF621gW<qY0gmZc)!# zW*5F&Cp^=cfqZQwHhCSXJrS+>qrJueOZ?16PkKqBNNx)Tz+eVxWXO=XR@=~ut#sh+ zRpS`RJ?c`FrEBPCqmQWn05CHH&N^~xx=5kq^8hMxLyoi&=Q@BgN4+D&Vo-+|6lk?W zyK2L}Qe!I5u;V%FPJbxn)>0Ry-sYkXBso^;L5~Vp44+!P8r6#W6EuQG0RUg9r5sEH zk%D&PH3}YwJkw<WoWD?VGAOmZL#>hXuf|CVd_la3F2(Yf9`(YIS@_5`-F#{w{6XD- zH(LTn<6JR(F#uK-l8gB-$n+>{ADjHf2)XO|(}BUqYFy+RX<`uIWSYt9ja$%=EdUZv zr7;_TagVJzWF-4i<*^%&%7z~<X<MhYA$_Z!rj$RMfH?ZpJ;v3<5oL3eKp7lxX<H+L zb4ZK}){9-t`7Si3Po^p<t~`bgK`N(^Jt}!50jfE6vNlNo&{rywDSvNAr(L|6X|2dF zv~>s4y6a1UaU4>sFV3NWEHW$4H3$H5SE1@DE$)8G5U%5c*wM{(sg!xSn(6%`)5P(d z7LgG0Ick5~VTgy`8ytM6HRhwllQVp=uHW|kY2#d#L2|)Q`!t-Ab`|-OJIB_c4f9HH zeFZtSTWox?Gj}*z^Jei4zz?{VA$J0MnvD2@?(QWU+8}aHD%`Z#R&U+vdL){RQvJf; zLs7}7BpA-pndFwmdE(#86ZxKFXX{CKcGn~^2OV$^dX+0Z5Zlo1pIn8f4AUV4jil5U z8srO>GW6^_*ASC)ml-FfY0d&2#N$5oT=v{oZD@7(9wG=-#9}!e+nSC~5;Jka4{mFZ z5AzZS(A2TqWR<}!-1e%J<t>Zk<=3gw4-uno%N^hD(@%&{?kG#R85uYku6&Yub@iq& z@@Lt&9F7UBuHKBoS9>#Q{7oWE!C~_=&UbN9P2yQ!B*J6=0ClrjNh=(wQT3)2CPJVR z2YT5yk)nm;c55eyX9<*I$Nj2`ZEpHS{{UDONyz|J6=A<^NrKDI9N<xR+?czrR!KIq zeBgfn0B(P}De>wvuqD}_JmmGLR@}Pr$)=<?8OlWEI&`GhF{)A2V_ZtSZ<0mN@jps* z(i6*!=g`%-^y#EP#wJ1PYG3Rd%Y@w=L6mx$!RYiCC7szt92Cd}Po`-Zx2fEL{{Y^t z7(6|DE&zw0LTcCiB6t15BIBtv?xe|f+~?wH3x-kU05}UyXJaM<a(aVZBz_LKnMUh{ z!1SjN1z>?Bm~ZcnwNjP32Q*spImL;I$p<EqQo*<fC%LZ1F9yXJ%iT!Fup<>actXo6 z(ln3lnv~yQ(YqW>DdqwR=hT{$$}s1rJ!`d#!diEk{;AiF=B|IjJEz3Tn?YXX#V5>8 z=by*0F~|hwoQ%0G_fNfgOj;J4A8Ojh!##1<tu~KfFn-Aw9@Hfy$IWdS<*GrO7-l_w z?MNY%HdZIYf3se+wlK<2{hlzxju*9Bmewf8`jAxmEgX%#%$&4${<J)A`!?l(BF=NW zsR(gXCV{EDVmm1a#~b*sU@<g^BT!XGwN5Se@EEZ5HN2LVxUS@`*K^4K0O1nW?omhB zc|F5a>G1ns-ZNzuK;g`l>Y_3Z7r%9)CW)kz<#JH%%Xh4mK8=!{<#Wv;_-n09#L47G z^nBCc_+@)EyKXOx2s*MZYtvI{Z<KYVx4TuHW0hE`CyZA7siNgRoqyrc!CL$!jz=Hy zG@4z<l19+Abv_YTBW;%U;y^||M#XloI;*%?_#=T%Nqo+z6k{Ka5sYoIF_f<Ca@OAq zbT}>c$ny?9{&G!fCxAREk*tEkNgEh#+-9|H!1<GwOyG0Uv^=2Ej=r4HB$Lz>rFU=Z z`ng8S!yX^9AtTVCc$@;>XCk*PbR7l>7HE7qr!1KMDDy-X0LX=<ZaK$l(|~4Og_phv z^r95wqhz;jQ#Lfsih*I%tSm_7Ofab8x_ej@G;+?URa<^g4aAz~ptp+YBVF4F>U~9Z z+C+P&g+dd6IjXdGvCk>DqIw-AtTM?AK2%E_U&287tGCi^2)SwQjJI=00NEs&P`K%e z=CrqhM<L{s&B4F}iu4OBWm61Mz*xEhTncfLyG}M|CFa_@(|7oewz9W3ktf)qw}g-c zc<Oy?P4v5I45jTBI3R93qk`hJEv+Pt5;JYPf6QfZ_eX42t*S=%5yoHxlBBWY>s>sH zl}QQJ(Q|#r8>-u`o)u7(2)ofp+(v6ARk%xeWSP=+2Z-HpYqHiXts47yVy;L8=hM=; zom$#RE#+oLf15sLGsR-pN4ZWq>F4(xCbJq6*D_&TjhP3LisCQenObQ4)-g9fF|PAp zj!EKmiZD(KWR8Zotxee3kQXwr#_vj{W{qL^9G0fB#?I1y`;ECHwR6&Kx^kd0^TtL6 zZ(PGEk1X4Y{KqwqadX2)2?~FTvUX;Xx-m5ia?0apm@~l@mvIv*Se4rZa1Tn=nqeC- zUz=&~R4&WBp^AOckVQh@Li~*RZOm*i4%6QqDm%3ivXVLMMO&JAWO4(1hxlrh!?cbg zDS$c6T3Usiit@_6i8(pT3a+3mgCw7=OEhSt7IL}mNhB;2c6WMJNxhLa>{fT!(lI<| zoYy<z2^FSSLRpB%Ju9X!8pAAdD!-VeSU+#2ahkuF@&tlFL}LsHtYzlTnr&XjCCdgU zJesE?5Uk3(yK_@aNpF}{Yl6UKKJR+vvwIrO%+b(MmQ`bsj{f!NT0~`nHt~_k+<C7* z@Z^4A4od-?kZaI17K-BHA?Ama{JT8`Ro&L5L3_43fLCtR1&KK=j`g2+xvt9+doDdI zUKPs7I&3)NvM&pH(g1&psijr6b<vmHF*dsZK-@AjRw0R8oVm_8r~)=Y$4>QPB~9U^ zBxAKrJ0@>Yt2Z`!mw?Dk8UP=XPC%}&PL#_lugpT6V-?DHB~>(4bHLns*I!~;AZH8r zv9$L!){<=Sr>^^!XGD(UYb)d&uN(?Rm^o<CaqE#*6{Lm4&M<nBCpoHeN#_QTzm&x1 z7~-2()siL3FP4g@F2fsYl+c(J9gg#ww4cA0MPs|Vuoxnkh{i$~k0_iC-D-KQqYK-q z1ny@83{^*AQI=@H*u~g@a79n$msgEhP?Of84tEif*ci<%#-(;cB#h;90QXu|em0T6 zKD9Cv5|gxTKDAy)K--m%JYZC~^FKnY+t;X&vD`q6uHNiv!Tiv`k(_Z&`J5i39+V(n zODQx;_t$ag!BiLu5r@umOy04n4t{gcREk3oI%M~#q-TJFb{QLi-vXiCtpQ5U`uU$U zd}Hx#=DFfIwDWjc-qH5`lNb%?O>s9n<3W`raljo0Yt_Cl{3O+{HFVdsd|YJadvzIN zJ!^*0;aytX+Fh&I-zniIjIMF@tv5$ilyz&){{V9P&SgWOJ4Q#PO%uzGSA$(c_+m>b zl_bM%C*}i+hFupY_fjdxUDcCMV^t_eU5p0L9=`O+mA3)ZA4=5Jw2O#LavWgrK&p~i z`6M}DbLeR}*=$@VDeKV9xM3GRF=6RiS}dhnCURFC^H50=^Tu}`rndYk;fZydm5Muu z-MC~0&tBD&a?vDQrn#^EbRDca+(^5oETm^0s|)Om%t37PoL6PyZwb$&&d{?tl?hxj z;<;k7TgpU>k9yM2sx`ki<NbaC6{{m<t7}HL6G#zb-siaND=gdwUA^i{9ais4oXr8r zKQ2AH(4C%!l(5dTvN~tEw253c;=o`L(=`Q<)is;cx6$k#@^$&PV}s93)!z(7apG&+ zi+e3LOW8zWp9{kNHB~iDPeQ!BSe|VjX<K6e!yxAXgY~UdrK<k`hdo*uZ#rqcZPe?0 zMexVP@OX8vE-gl#8?X+F+nA2y72p2Lo&eIHNb!!TtKKf39i_h5BUJt7<Iv){oj<@H zF4DB=HBC>%S6ZA=L?-fDVUL(_D%ZjtTH{^t&cA5{&_k)p<~xOQcc2|B8kH3|^EKP& zujOFHVPQ`Mr%5K`FNt~F>t^xag5=iQO24zZI)g-BJBEmz_~N=@r&~h_Yd8<tLI!E2 zQSyv;&2XL!HiKQ#qm|No)sU;12IIG<<z1h}JtFH@y|nO-op~G<*Q8B#IufoUToR+} z(z&VPBVJsOPwV>o&ka;@lC!n?{ET1tN%S=N?)58sJ7#U7VgL@`-KYNmY<OPwSRww= zj#rhoM%L~L4W8nzTzD%(pIU|^r^32sn-CG(Fx(zr?;1<L4tP?+?|IWLEUssNFft4f z`QVD~hN|yR>;4+%6)LMI9<AK^HBs6o0F@+U98%-=e0t|3(xZtpjsQJLrn-kmQg;A5 zSDx;+8ux_*blKg71EzY@gA!XFz3Bttmv9I%)}JFC!wbP3b4NAZ%v8ILWyxSN8@LpT zG6El!vD%TD<Cz--Z~STGC}V<mj!7Q1qiri8^ENeCZ~&YfV1r8SwLpzV^*QI#l>*3B zwy`_9`qGo;yJ1R|?rA8yS(_`!daRQvWgjT&DZXCuxbS*|Oe7LP$m5_iu}76=3`ZCO zi(HF+p;R}Xzdm@Uu=&dzD`J|cO7$b&l%FpEoRi$u^Jt7^b`E!_2Y`7bb*@X|7TdoC zU%ZULkPW4m-nz*Yw0RAJM^W0aJa4*h3F={(ZCJs{9qMe_<y(fEpFT1Oz$J#@I3CpH z+T${P?!y%(qXQL*x|dPUwN&#nCeU(69M=TB)pxPqtGg0wg?-WNJ4nVs#UhY^3}Abj zMk?}T{*@oj(hva(JDNGY+Zv^I;!f_#z2g9Z>L^!lEM<q~NI%tWW7noBs0ff`jkxG* zSiJ>ja#qZV^0!|8^fB_+4*2vYmNZ6SOArTTs3!tf3Nq@Wky^Cg%$+x6!Vt<!Ns-vo zW579MxMKiQq6(>j#(INHz%8|U`kFK|a(2*rIOLue7ywfqMR^Qp-N6KkYZ)6VsmP<| zMONAddUIK{t;#sAq>iOy0r14pBC`x5V~+HIv|zh~oOP!8rOOo!oMW18HDgUKGnrJO zI3k%EM%my4L%Fu=l3zUrY0$KJ4$cWZ1}L_cM5k@Xh5&Boih@JBLhGCp&P`dz%fbBV zj50V}Wc949)6l!6x)g&k0Fnq92BHMA^4)sVkMQA%IKibDNl0D+ts?w{ozSp3$pi;c z&<aiET<?o0cs$Z6E5ZCJ7!q)Oc*QGS>NdKHqAkopZLQnVkid)&@q6NyI6SpK!ZVzn z^wuE}+paw;M(v^@Ed-O~P@sn$y{a<7Rf`UTigK>x1(c?H)1(UV6*$QpX0mG97M-^M zhsn-H#vKhr6fg?8RUH7QV1N{p)9|S++yvd8bBfVzsg3QTA^Ftg^Pc9IV9RbilkZYW zT0P7BXMsq^VNgjv!li2Lisrks98pZWLBRE;MJtsDIqC?ck}yHWd8I54LFC{J){S=` zJ&_vBk>yi{9dk`R0~RdZF-Rg%?0V*$_zFs#3cVJ=b+`rsHbOWx8HGj)00(ktVA3!u zM;&QH;l>6I4l`NuwW|j^2m=wx0G>1LOv#J~QPA*eO`*WaB#xuCNJDVF27d|@yVRBM zYKXTPSg=x0T>H~Do&26EM^Ym>VpyE~y{UL3a|~y_Yb2hCyW4U$UzM9Y4)oZ@8z(%B z{uCBtD<(p#bR^S|$Q`376<7GW<W@3Ishj@4A~(xPy-pB*w5EAB^u|XSsU-5FBr|Y+ z=pMBg0diQLeQ7>znBTk-5~t=}z~Z5v(Pdwg0!p%F4nXUkf|wFdHL$rot49~4i?Zr- z`mU6kj82k53l0g!4P!cLdKSqoB1s}n7)jS2)!j4<T!$GwO;FTqS))E)81=<&t+5h! z(4nXJg3nah5=yaMu=|bcR@GkJP+SZ%X9No7F8ntn_YvLLs>5)t^JMc>VewS@O!C`m zFx^WabB8>Pdsb7lbum(U-0komI6TyM61A)*UBm_C)lENHw!a&#B=cCVSs#M5c!ow@ zE?mY=;5r&3u7-+A#hBRKeE1_g)cme6aqm&t%=22nV_%oc9G_ZqZd@1O9@Uz=cO0Uc z&`C*I7rT+xpn27po^p8UPPsqCyf*@(l|!yT+ACy}V48~5qby&%XHk>hnIe*>xvM~~ z+-I>IRc6X%bCK&>wr8xKq;X<Z!tsNXR-A7@0U!a%2byKLRXF1wwIs2yCt%4u44O{X z*wXr2u=t@=0A-sa9Mo=~WsrX#bCb<VBxu=H2Sf7{O`IzbRkw4=H5|(Nk#_VfM0~-J z2&onJvZy!*)|+e??f?P1y%5I1^5g=&>R*vo{0k0#U>lL`Q^e^2B#xcxDCWw(S0s0- z6ZgAOjtMn!chQk+k}h4h1H2xU6S;+sRhU0dN>b?*n{)VzMtq*RUbSxTL0ZD?E&;|V zO8|v-ocq&>COjz|bfjFA8^|ZUOOH~cEp96rRtE?boc{oOnjaxN%me-JtrAVOK3-3~ zHBibFo<knTy&5R$#@p4hLfKz)>MA8o(lPT0W5zMXJV*oJuK?|)xlQM8NCv4ZqaJ7I z3xp>mvBoK0LkeUZ6X{0mka3ERT!$o#=b)_Q^)4>L85<pPPpvyBxhIY@nrfZHC%qw1 zIV=<pTG23eZ&D#YoZyKvxadVm=H*K6Dx#UOUO>QS(vg%dS-J{y*JMhz*Ce-gitYzl z8F1sJdL)wUm0NB}>ec3|e|;Gl+qfLpps6M(z>%Fw=Pg@P)aI7vlei!a#0-LQSJ0|3 z!ybBKvh5}^@K6v3B-QvZHj{-U6U}xzJq+a9)e^}ZV<fg0sXaNW&l<kZ;~jaaCd&*3 z-=BJPqy}B9g##I;yvbUvcNmelT%H%4W~3wqIFM|nozEHI;B_>zMY=eYZ38$h-l9$H z9SCJf3Cfal*j0B`X#gOC2Tyvla6fnovCcZvE=rjf91@?cLUwj3+wLi-WN()M=e<s# z?fv204@w?9jBqi|XqHnN0HY-L6|7?9?6wH&p%h_J8Mgf0y(w~A8B>m@H0DxVC<kub zl4-@f#pk6}tioD55VD0iRqMuSO70sUsOG14*n=Ykbf}oLkGYp_<H@PtQqr>WK5zKj zGR5%>sZ-6e;j4n0U?e_<yC09&1bjq}5EwAD-VQh;HRk^SZIQmd_0L&t=)WVToA)o~ z{{S;r?IR~2tu)A62C?S4c2YBg?MoHIH&SuwT<%uTeErRHIV7$R9qHn4EdXE#q0M5? zbn;|w>DU^sE*!8^oco$NowX90QnES$J2A)r<C;F!rNATuioufMyupn0>}iH#@7y=3 zG}gPKxtlr@dmeCD2B=?BP<ZFou-Vzz@@ava@T%CQE4@v|)Z&rzy95qJM{%hKTt|?7 z>nP;s^`sJ#a0X5~)gfJ?)Ux@D&m`4GR}uz8f;p)X%Ju2*N)(v@UO}jBr=gtH<Ec@D z7ROWGo`8@>(*D@3NOa(=WG8Uziqo-Bn}|RG?}`^RozS6lwK=r1^Hh=uAn*vO62?}> z$QiIbE3WdyjggPURDlYgmyFijj8}KD#2YK0;<uCXsp8WvU!N(JdUIWR#srz%O*|?Y zvVLz+Y5P42du(!l*s_zzKaDE*Ztc!Xp&#v6Sjwd240fmQ#sD3CXp}BypDVgKqv6(L z$x)v}L|O|5a0g!X(_BWfkjgf&9MnproK+}B#`jitG8e<4a9UnHg+|^Si_8SOH~Yf6 z9@sS-bGN<^G;*h+CJUQZV<wFXpY>zvYGb9rgYp5#KJ~2FmB1ViQ&G;iI0K5f)6|*D z`XexD&_*-%b<eF^hT0a!Ax!$>trje*2nQprJ}8zvvl2Zq>s88@sGHw%p|(YF@+ci} z1yAL~6XZ~&nn^jyJr8=D%fwqi<Q(R-O656dG{w<e0xD#PWCc<NDa?V$C#^`ZGT?%1 zK3JLGn_*^w1OSCNKAmb?dt$JI&RApv%}9aO075tV;-}pxVbQ?v(z26$wj$+uA$3jo z$Ec}B!m7aJcP5;cer(L{<Y%B$N?;KUgQuyfQPV=Mn$RXWE4g#%X~km)aZ-7wG$^Mi z4o*2HnpKtX0d9L#GGz27Atoqr0UiBnDIsa!3cc#djaO#X+HumHpfhAt$6bV_VyD^U zj!3_FclF|@j1t5)N%gA?Mh*uw*dk^Ck-+t>Y_~LI@orpT@M_d$z-)9qH&hXC1C+qe zQ&t0EhI&=2Zeb;@o6vbI<#WShoKnIA7YA?yi~&;0h!GwqB=;Do*`#BTHmU3DQO$Ep z^DCiaMu-;l6!_E4UzCn{BNWW!j5bADQdNf|9nLDWdZRa{#YIpY2H<x3)7sRPGUc~a z(!!;K7TmeW$E_$YEP+sM#|P4`=_{>_+IPDLKq2Ip$9!{5w<^b#C3_ltqYiL=sqjU( z7VVyty$eq1mLY-`a`{kw2dzkh_keCW9P><MiT1abh8^n6O0sQZ_kg8q?!n&e7cJL3 zfL|4I&L|$>2?tTY6-h&<LUx{hTGi9zTZU3_Pi!7&)K1MCS}QHQu(#QSq>=~+psuq` znU>}`cX?`{<vQ0nWDU3q2psq8T|Sc&XL7Fj8={K4UES<()^=V;Wu;m)#yR$UqoaLm z()=stLu$pWq`i=2FP7gh2imwT0v|r<ErjzR!kht>-RNuDyba;qRj-3VYa>Kk9&ATF zJw<EFB(7(6^poHI0j*=F$#b;8b~~z|j$@Fup(dAYX*#Q{k1zxgA1jkxrkmil-z3sN zV|F0&dH1Oz@YTXkDf=){kOQ*;n$j~)7LQ_7oTX>xd0qaBl3EScxJcZEkoT@XT)B?Y zSuK)A0!LC~BY-hp!>@QU`dI=)Ewph)#!_D343paiysO5aX0@@tOSiI`QtAj73M5cH zD<<UF)3o$=Jhxet+g)4-Q->U2*9)v=Biy;$j!E^c{{R$tpG!iXPN@>@CpLvkKcMEg zU2nzKF9Spbtt4k~K&R%ZO<wD%*(kdt%<V`iP!Wh?xX7#t;85gqk9xCnt0bF5amY(& zwlP#1Ynee-LQZqZsI}eLMO`oJshe=C3!THv+<%9YR1LsjN*6*246e0q_F1j7n0B)s zx$RY@vb_5u&n)rnlcJ8e_onS*W~|a=8<WaWk>(uWo+^~CBpo)$ILN0oR~Tb}LiaTc zmNU&5DE?SHlT9bo&1&w59EEbSE`158%i*@};Pk~y9+NDN?Iqqv_e%7lO)$s;tfhSq zN>4(ydNV&%SkeN_*xiwmaf;(L7Bfh@2HXr5AH`jq`WtGJ{g}CJ%gJuou0r&|6ppDW zaT^rr+*UO;+}4(|IqQwdlFQ#5p0yi|@i!oG>sGHoc?<PEhO_QV5I76lAXa5f+jC>X zM6~g%HsFeS_pbi{!y_7kgh9NIO5nUT5LZS7?I40{(R?`$`Qs6*8FAL8PTCqRBCK^0 z{DFoslaebI;enP?Im>V>X5uphgaTXC4z+_j6C{KUq_-ZmZ7C$q$}zUAu%v((_w80K z-XkKk#01U=HAz{v1sNpwHK4Z2khG4Q@Hhv#snHiw?kA{tVD8a)h>}Udo&|MQi7c=v zkZp0m0P%|E{5$jMaGa63bGEuYH2tD7uevs0UO27es=4G;R=H`5Dg~8`_Q9%?O3#(X z05}Vpw?5ERJCa9AE<{BYvGcb(g<kuZCfl`&VZ4kMJ6@7loF^}mPhQmPlDh}-0How~ zs3RfOhz+&C+DYhY9Iw>4tLiC@No6FHj<r~)l`1A%JMvF#RhU^(nH|Vx83*Z1^A(tv zQb^=tqW#O|wuEk_n5fGqUTKG53K?=q<Jz2;;K*ZTC@^}^Cdyzg8`iC_ytk!@utPGd z5OYXLVlmA;ux0ti&UqufAO}1z$~|i)`HbZGbQoplap~_+y9aVW-JUb)Q{0j=c3}eb z&su|dLmLd>if_2DXQ3R9M41N!ahlE4d_AV>lLx)ES$N=;8T{)`S6qSjv(7P5y7D>t zb3>D6s(iLEF1#0|$b6)?A~JF-l(_gnjdLlqz7ctikg_g9*QLk`{SR?Q2KEX=cgXEf z(rCC#Z|nNd@|*92x~^SX>MNw@YJ-aN-xzoT^TYA1@~4s*g~&MuzM3C2io+_))cV(( z{BTisX=u11+n@&-B9)g@uMa76a(6sMw89T3-<s*ZAIE&&B-4{ixrWy1?omU?yMY<3 z8>20|VpH>Do_bb~!|R8a#JY08SV}Ik7%gJw7^eDb`7@@q7wr^d)!*)Cb@3s!x%_FV zN2}dOIxDx9VO#(JuQR-o0~uK#_k<myy)VUZ>P@BU&d#RgZy0Zpa@$RLMdh50ATBpD z@w*gGaa(zv7)X1onf4%EhC&&L_pN{I)r#FGRx&?br?q3lV$(>aoP<83t!_<y143ej z%Q}D!XS`j{q@x6#m-YQ>Z+Jh&t)tjoY4Tl30^T-U+Kfm*9WzlTrJ`zD%$L_Yps{HD zk#BZM%PITWuCw9qhJUs+h-4ALX?(4e5A!xXO<M84fErmelW}zmTS{2JmYB~q(akii z{eM~`YEz*XC@ZG-{Zjjhw4aFTg)bwwwUz<`h1^*iVdEmbPeSp(!w(vGFI#UD+TH0I z-R;6G6X<ru08z(L-n{Pf!@6#lq_mMj3{el1@ByyF;Kq~Tja$K5ozA1G-`i>u&$hzd zVg1=7wtlt2ij_wmSS0+szpc+F9qg%4=BC<Bqqy+iyYQCQ)-4mkJ{HyQb(pq^_1#sl z7Xz>~%|<7?@qD+8aplCZs0r8TYbV2cHPkxvuOt#dxyU5_*7vVKw1OC;-8v(%JQL|$ zcs^>C9PMRq>+(KgQg%)6{{R5vEb{t=>O5^5hX>|8tIhr;=!>fO)(PUdb-IQD6fvV= zat?EkTK4;$IvH--Xd*!?{J96Hubuur8_hGtdUX0_!$Ts##B;%adiT^@R(n{^61#5N zeuvt}Vhx~YJesbrk`yW0N%pCgqn1`NurH1=O=1^oG0qQ4<aXT`6z!|rS*@dCxUuQe zJ?VD|#tPt$0i};*gCu<^LiXo9b6N8_HFhL53r6@L;M9^vBRh{fxuhyzo>X+CLQYBT z$0oFPdXD`;6gMr9LEx=9P^cglC%)=MoxIZ)2GP?MA<BXQ$vsAD9GqDBt~Tb}E(YJ5 zsWe2#o-vLoKtJ#-e-$)Ig_Ahkc;bmZWDW0et@FPG`}$IZ49a9UE1oDw$rw0Q2b@%n zI(*-aQtW}fNC@+C!-XB|GsNo(cz;tU`_GU`Qa!6!e59{I+!~{-E4GVxxDA+FfI5n+ zT1bg2rjMI$g9!H*Vo^o~RS2_4rArb<PHOerh)XusE=kC0ruPevl?u7zHN#OQ3p2Vc zp&fRf7ib&`PdhBCPs&X(*p>%8)Sg2#C{eoyJXEOi=(aSAZv5MiWDjsLksUr!iEut` z%g41k;K+zds^pwvqi#Sa?+!96TcxQIzd(^xmD`m#s3Xdk+sVf{s|W*?Iq%k>WhpBF zNe4Y^NWNuY=DmSbuq2XlXn8iee7Wpt?6}#<RU@3y!?Es10E*6Up<Jn<66KSB893wC zp_GX>oMFdY)bAGHjsXmLs3c;aF(8Mi*7ihMCQl0)RBz-jYEplCe8niPcqX7mBN#lM zO-nt`3A!^T-T<r7I~Vb2O7{Q)s5#C-sEkFM<pDwGr6$nLhCW&Jrjoz_7?N@i6{^({ zw!^{uIOpd-rAF5|KPbwu$Rnm{0+fvPEALO(scwNmB=dn;+n`?WQ6jhp1IxkgY4Y(P z=ywcanx`$ZX$1GDf|1FMxph5F7GqinV{3FIW&51eNDJYCBL}5O(K9iSN%y*jr!agj z2m{o0ts2thZiHj!bJc1xxn@=v2emjx%Ah_}debDs77E8d-ZeK?u{Lem<7bfhgg4y> z<pP#T3a|w>{{VKH7mSg(j+C(^k`*nC4lqp*T|un_dANK#fw!$JXpNo@3B@BiCg97G zdx{j~VC7VFHB-@CEH~svEEKTyG}jHiSybfm1q2-RB}u71^klY9I29|*TkJfcF$OtT zC!ng*O7Z1Yes6k{f650xS{YYv?!Khc+n_aKH!7)@2aif|KqCaG!*lplZuyA_JC1RT zRN^Bdfsmwh%~E#MmvyNE!m7lB*QFyVf<d`Up%?{v=BH@4sBOV<)GvBrkfV{vBaw>F znY}Ndw{{~8Uy`_1I63P}83QWEzA|ZDi(@>FxIVOqKY4~2CX010KJJ5=Ht~=F<24g8 z^BZ;wuM1L37|+ZJz~Iyc8bUHgD@*gM><>r%c@2?w$ghlhRFCGgnM`cQG&wN=kV<E* zHFuU_kCgNxlI->;S9=X|91MWi?@~?o0X+5;7{D7;4ZZV7vLGD^$7)W<ao*@SlW7AC zJ!$)x9FM6q)@66d8!{;Qy*M=-*H%Mr+C7O7lKkX?F;0AJ3W<U`lT5>}Am*f%i$a8F zcXLiD-o#05VvW|ACmZ5#DqrVV8qSa%40j=S9+IVXvY`>F2R^l0dwAL`FboZCYohFV zHle3qX)_mr{InyP7pWC7@kG+ui(8}SDI0vj*1OG1L^8(D3T`A|p{^@i@VZG0J+@(S z&eozfGL&wejqeESNj19LZ{EW{c;Mo;u7{f2dBU96mRMcQq+O`HjI$<KIviwIplG_q zzO@3&2`Poc2{<{aad*1dN>|nHX&gQY7^cVpJ#fCJh94^s!2bZVLbl{8%auKiT3o94 zCi)a6f#PNg3xm@Y9u{M_X$(4w(F1!DxdWv`Bur&<xDI%$=F;UYRjsNbXiRFSxTd?2 z0g>Eq=mk1m!T#`L(x7-lIo+I|bK0kIrLLu<Puwr5=bDI~RIUo157wkvHiXXtodTEL zlu{2*tz~USo{6$p)xi0^YC!71jP&bD4&^Jx{`Aw7`A>d$t>d<(G^DJ_AVvuLh$>f# zRhJ}W5$R4z5<m`pu~0eRBXtYfp(dT|WaREjSdwxoWkr(%Bn(wz!5n1N>mVco4n1pC zD-TwQ0{)%o3zAv529!ybUA+%VSqQ)YoQ|~ln|38i#ANx2mE>m>Lco%xSyc2UjBOop znsSk|=g(TsYp6}PW-EZF(M?4o6>wBwRI(ka0Qs^r%|;OLS-%QN*=Q)GEhW^FHOS8g zBeg?zo>^179>DWY^7b}V;2%mnl-MM9`N7UHPkl`qNsNyKslgc>14YbfBw)x0V18aW zH19M%#y_1lS=pFwZZp6%;}_I58W<vO0CC!xBN_9Qz$c)mk_o}jJ?R=@9|}%rsH|mc zNPVP{v&36+;jlw5TJI55!lilvz^)QGrIfDl0ME*M*J?LM1VOW&mDfhnS9_6DO-m6L z+WTCCo`SByBDw%rmK}3h@nFCEUCmpHMKX+npm(l~dYrSn*wB=j9Y)m%K*<J{FeELU z4YeAbsko9=jsX=WIpE{B){FFGX_KoSanzcP<1!f(e50t(tqAI>z@5iD8j%99&RMhC zsY=0nnesaoF5s@wk|`Qk_N%*vLNZA>AXS<4>)l7~5ZI{uNP*;4J@$;^xSKBz>U#3q z&#cO}=%8i@TbA}Tp7*gbS6-y|`n|`9ruz<*S}0M5`=U5uo<OddV-bKi5<th+nQdVf zpKlxxMj}P%swz^gyFDAdOSe%sZGiK~tu?XOfNAnK%s9^-sR|cy@)4hEl_r*@T{o!K zRRnH3ml@B!62I=p9AML=LXvaNYC?ikAmAOn>u9U&Uo$>j{i1fKk8DdFvPooijP)6> zFLfki_>Fsi?GK|xf8%{F<e@B<Eg0jcJ!{O4l^QMr{N387vQEu*Uy?d#H8?fq{{Zx+ zb1iJexF(cB(XS(u-nw{nh~yb{_NipjZR1tSF!`&6$5Uq>ha2Uc$8wNcxD@xccK}AL z{{Twv29*Ox%HuwjZo^NvfaM|?#y1g7M@zP4YqNrjPq-tP90T0YY=|QO=e|XHTItZZ z<$2Gq6{8i53{`xD+DBcz>TlPncDMES9#C}o27W?*f~1c?yp}a(w{-{m!o6<Z*#Z^v zkaLWMs{$2Yx;Q<JLVe9tJ=4nvg>?mkaDZTp<kMmBMzb{R%N!;xqwgFX*Q<*}VozUc ziKAaL8*rzor@ri5nppDrya%i&DGY8q;i|Fl#;a_g%V_J)I#;XhP52Bz_Nk;L(;JwM z;MG|(Hj<KxU-0LZHI2rfwQgf%R_IMnZlFHi#=D(kK#NecByKWfkTb=3?9k0+c4BZ; zgZx#xy3rZ@3*I%i1v^)%<24}|$USNpK6ups02VV-WP_4_8m7miV%w~3FU;Eqa%wOZ zMlLrGn;ed{F5s}|8D{kq#go5LoYuF{FKtQIJ<HOgC}Ltr&%G#e#1PmW#W~cR6Ub^j z*$ie&nsLGb>S<XDfsUuOA#er=!4*whP1#sx-<Y1X5s)~+r*-Z?r8&R`o$SpZ^tlv- zBIhTX5EnT=cC4x+uOpv&MsQn&{HeCtl-{Hu5^+N@&JP)>O62D_^`mH!$FHqKwHosP zm|S)Ood|BS5O-2+`N`eRF^<$De8e7pwA1BQ6YM>sB$g)wwMvf4gLo{tz$2|jQ$PKB zng#%X8x5Ky?ulOMW;EM_>(ZxFl*m#jh#dU*_RTn4BS*h@0eXUKpH|HJ*nD6CyY!@y z_ksf8`kH6kZKN4lIrPOR+L9nk5=XGDSCON%Nz367U}RK^`=cxnf(|{ZoOkg}f`E`Z z<W$df^5AC&k_BfdDKj^IguYXwhUvlUPuYQ-^{T&WGLovL@zZZK^;!JXjKcev@x>;r zN@%qlSzK~Yy-FMh$2lEyRa)0lY?#t9?#7VCcq9tyxy}hwMY*~f7q|==j|ZSNY$0%Y z3Vmv#cz;%tYa=QQe-O<qwpURdlH3r>*9%%+=p~}pV@d^eiFa+w9-!0ZaTv=EdRAI# z&w;w?K}XnteEp(F^~tGFZ&Zxb(swj1{I_RyH~{|u7ZmAkpp+BlqGSE4r1nZwU^4^9 zT4XwHx)L4^a&pG4LGIC=+WU!{QMZo^zay^(k#&e-+!eN-*{R~wZIk8-gO2p84Z9XA z9C-r=BZ`Hq)asR*Adg!>`Dn|hs*KayT6QDJhDA~iPR?rL2qBDPXb1bAw4!%i!A9Kl zC#`P0&Ut9kWovy-?s*mk)9zf3a?5~f@?GlDD`QC+>4uOBSne(*4Zc<&4mrju1(AZQ z`K-;Km=m0ehMw`*PS0<VrxaT96lm>jmvGJ=T;i;WwWRXcCYx@<?=wlwU`=%E%9jd# z>G8~tcQUc#o%L!jsT;O-&|b@Igk1QCO@d;>DipEBZ`*j{(@u=b{kQgq2MhLSI&of4 z_Gl-$^ER(s=WSglV8mEoprs{kE=zHevq!Dl{Ast-k-xKbO-UqSnFByMKGjms<HoOH za!sza;#ioe2g;FEd9N*5SRp07`Jo?q2YaKAMmicVJA6d@Dq3DAu0#7lc&~PU;UV!W zbN>J>ZbmAF-^afjNyJm!To!!1msgFPeii1?yD*Tuvli#CN^V%jqj3W@QH*tMT&UAp zavg@R@jt{j4I@J*`gHCcq<P(t0o$!ZsQCW?RlB)^e9#G3YZeg}+&hA6mJ={wPimil zGrON^%FR6)e$FYWHL<gQ;{9T4h6{Td#=rrx5s_KaYnO6OiSC+5?7&qt+Hx2Y-Fnkx zgf18poagCQn%Sb#(%14EbE;19zS*4fjil8m^$Vl&JMIUJ=bBcF4BYM+&S`LtqktS7 zVzg;CW4^sVLQ6(}ySdmmA34oR^OgBq=JqulM3|J2Lj#I3tQp;QzBtcHNi+?%$IUxS z4kH9FdRU_(H90wMp48Yp$kgpBLF9u{#9r}1!sHwdaZc9J7NqTR8Des{ao?z?N)cjC z3vJ0Jr!k$(4;UR!b5Xn!Op2i3bDY*vjhHP}*$tp&FFJrQI*Rg}usr#jJQ*1Nwd}2@ zLl1|qWo9AKOYYAc3h}_AYf~ogzDogI^Olx0rK7SkCmCWutm}i+wsGxRGs;k$^d_j> zt0>9A4c@WlNflA^Esg&G4O^L$X6yz5zLn^H9gh<M6uWSKV8@!^d@{<HF=sfyQ;$<! z_JE4|pOPaEcDK(<<CVG_rmUYsq$pUOj&~mQl`J61&N2@swVo3cYmN%^=BShawm>XK zH+oZ*-iKW^eMpiKA@p9xucpr|767XDCaNd|Z67feZV5-0KwZnYXEY>K?`xygG!q+X z_U05ZFi=i<8t8QJ*^*7g+C|%g&{htdjFDQE#@{cI_*X?{#qHAr9Ca1f2V{89-gh5y zl7)C*b5#*aTY%#uJ*!4sG<=}XPHQq(D<dHiC?41bn_bCvYT<JtvY?HAbH-0VDhEK4 z?ZCnBQ!4^-f-rMXll#I*Iqg|rpp(|bbDTP;1&_5jw&rYQ3h*i6V>6>l4n2)GV#W(( zE>9WfH4WU+kh*S=79=s`)K0*1cW`roQd~Ca+be)E^Djzli@rb*lB21n+j?9SuJss< zW+MnT=eePuU}nQ(zDE?Ye2$w39Vx7aY>njYI3V<-4K_yd1_P1@y)oNxE1#C6c$Hb5 z*OurhvBX`U0|OZqK8$Hyk!B<N!W+ySU<yY8!VS1qKaEWkWXG2UdFf4*NX^Op-)gt0 zH2Mtk_JA0G9N-2t<%mSsPzDcf^i2Y&Mmb_VX#`Bfw&JuDtn?i_8A}p&pK9`-jgsw? zP6Invt$NHhjUiI!<u&6!8m1CzmiC|l<*9Zg^NPvsvFKs-seXr@+z8~AnG++__payR z4YIF^Y}sMluW+%J$4s8J!9j4sMGQVnb+1(T9XHy%Wv51rh$NX*gVP}Ou6fDIGW2Jo zDzQ~9J@2FYwE5ihy#vEqcDkN7(rztgmr!Y(!8z!F9OPHe`o5nfrmE3LJTq-2S+VKs zUh`$*rP4kn_?9ANa}!7hkUm!Wn(-iusQ9XFmfl%;8T_<Ac$40`XYa~ZR@CCB?IB7E z{{TMs{+XY3Wvt)WX4ZRYptc0EEO;aFt~%ZP=3+ou3;f?&_FYp)z0tG_`R))y47n<R zV1ZssrP_&aEbY`LXP9NA`=g%qoZ)GEztxYe%BtTFDzjRxy$;6DT(Gl9rgXWA@))+6 zE#HO%+KorXy0)hfRr6lS7xzl*k~3b{pnNE{pGcZdwP{ew<7zSu+0A$Me+B$Kr|G&h z+Q*0@42WftD`<dO2cfNFPNb~fpYQ~;Y!Yg974^5D^|#!7to|m{wTl})J#6G5Sdj8$ zD{bvxQ~uBX8}L_)yaxsEi0}0+D^a$XNfcJ8x)GiTtycJB;rrb_S!^z&lHM5JMNt^s zzf)O12qzJE4$3rF1>QzDPNOFkok~%H=BxMp=Z%lW(!|q;u~tdycd}V%@kuh+>J4*l z9}%>xf^*)v?-gAxm!MB70%VY4A_hlXRUKCLOP{pK94;e(ZTSaU=Jh$Q=38ZsQejjl zWQM$o*^MU~Mn5yhp-NoIPg0Go?xmz&+auonw<Ig5;H!17KK-O2+ctx9w4sq$b*`uF ze{8?c`nd#|cIoY0KkXZ;S+&lHlg?vXa3x&ih8V#V^6Jv5Hyhn~n^lX4y=_0>?tQx% z2`E(nXSfuSMB&^iUA<}l03cz!;A4ZDWAGaX8SZPfG`<y~$$KjfU`%5i4xCd$o}iJB zT2Sf$B+@YsM<*1PgztNQS`PE1M93MW`}?;JyylJ&ZpK02b4vVh2N>rSOUS0X2&5>+ z;28SQPV=~OM-(g}qbz=AC#R)8M+l?k3OZ({z~lG?tdRh$<8h}?0z}^_1RiodYBwms zcQ4J17R4MB@}HMH)7b^B=qfo-cK-kuT+)$|$;dvm<APX$#Weo&3Pu=o6>CRw`izjU z!tKj;H3jk;iy3ygjI?Yq_*JGqDI0emTCR6GHWXn&;QcDwwy05edhXAgu4DfIOu0v3 z${2<BtoMU1cq1o@)Rx)S?&Qn{@iX#0GgWRl4sw3)2j0BtHvQChwQDaUJz>k>WsO@l z%wsC9RmUcyiSf|#deRAU=NZA^d(-7<S(4q|#6*87fpX2Bq*IC=sDR<v^`N|pLa^Wt zl#J}mO7OsOicL291=}T(B~7cl4trEmjJDQNbJ3{#JIymQzdel&BgC6ocPShndev=h z$7^baF=C||Gw5j&J<22mF4NMUT!@v1a%d`&l+O%!z%=cB3g2WzXWx(*?(gg>5rX)} zaqCmvC`JGbrh1BrerzyOJ*rif#BZV{j4oN*k3mRSIp7|&5~x0LjGhHEb42W!+<kqi za;DR`YVOkLK1qD_>GSq9+&W|z!RyT_Rlp$aB=8M8U?7qdu^2h6Zl19xrlKPU1$PGZ zH0eU9RUcf`1|?IR;QCaJxB<pKwUyPzk|m8kU|S#`(xceLxaXWw8K27|f~UPKY!Wc1 zJRIh>OmkeK%0oFqq?O}v=~DtWgV!DExnPV=aExkCm5$KhFM6i0s71bkEWxoEZrSIG zjwDT_vBB&rLaO0P;m@h2v_qV5!`7zS3GZSxmnpRu9;ElFRy8AV%8yEmBocd%N+Wkr zceY1rrS9%a)s7LPw?BBAf=i5C`9d;NA9z&lfSdUTJ?XqLz<sIQ<E>1!S__)PSoAo^ zJpragBZm2~0X?bG765<?0l;HOQB;lRp4E(G%DQY)#TcCZDM}eJyOnQBRb?=<HVNIp zp;L|d*h%Tuw4Cg&i)}db4ORqgDTNsT((VN^Mh-ZqGcLdeK__uEt~P)G&$+0NVlQWM zIN3a~4^U~l_pTIWzr9b|l5af*IL#uUMpJ?_jw+sxz^xmy9JkAn&t7R+Bz!ZsUVu<j zo`jBhG%?NzQrPKKmW3s#jLfH!eL1M|49m^{8O=>17RkXMT8dTKwN*p<)^1i}vu{Bq zKR?QM0y!S^s7PO!;Ab3ksR{-=i2MaMRNsxHst!msqxY?FcD;}{%^nw=_ojJjFb;8? z@lrwq0HdC~ie?CW9tLq!CfYM&2+7Yl&w7#DYL>x0fE4MZjwuumn>=IQkzZ+6?mJd- zjkoAjmEN66Nedca5Ex|c9qA$kfed%9a0M%ub_Iz&@M%^ij|>hoT`E>u0(`m+*j8r9 z$`!>w2`Ysr03J;_oy%mLk4lM`VjQ+h_NYy{U5ZSKaw6IzC9>UWmZ7Ju(`3c4f#24& z17P9KMmRX8x!&cu=CrycE3FPoQ_*)PlXY(%0_A5;qPZ<f!sAMin^r8D1QA}baS{~E zD0MwStUXId0a{2?<vmu7?PE0)kkb5DFWM1rT<*wGfq{zbBO%u+;iF^2R~@YQayzGz zSY47}afafvEWAg5;imzV%^Dx|PtefyTM;|QSnG4q0rJSt@lzb`cH;xqv+X=X4yaL^ z5XeW|`qhojSr0pUoYW@mc3OQ!l02?S+IrBju!I~Occ;3E01cDxNdVA5FTW)J0A_<| z1m~q&ZrU>M*f1Pq@DF2AMLP#z2h1tt?oHXlQiUvcHw1B!RSPwtv(%9!B(okedsNCq z*e#XqP_B0L{Ax}38%mOT(Jy)Fxt;H@;TFfpJP}NghC6Y=9GZBaINQp1&uWSBwYOyC z_VlVuk2Xo=DH+M!dR4f|1#kgX9MyYS1d<~v?q5SwvbP~d0ir3r#m%LMh{u=+JPKLL z?gt%CIH<y%rFkt*j@^rfkTPSn4JEM_yVOmg`(XN0@LT0PA5%scZsY^no3Qz#%xnYR zlWm$^JrInBG4mQ-!x<w!)GTWx*vZ8wmcDlKNXHoMMbcI+DBk1QNnV)EF|t!=%T&rj z{olf&m6|eee;Pj3*1;#-joW4y)4fG3CPKM5In6ze;Bn8XrvSx!5!lhrx-nd4S#Y@o zdYX&L!Q5MUsih#1%{5K|1of(Vtx3JK95A6y;z;BQ@1l`rwT~;+LCN*50IHGzBRLi5 zc1W#l2qTTP(G-#~p1O`mLy@rL<C?bcEO7(obI_?2!5W6#gC8y`Unxi%v!1oGZu%U} z+fml|BLg@Cy-Fk-xj#Ws;394cNzQ6kY=A;!ky>@L6WYj9Q*h(}dR2s9EbJ!(wN{N# z9i=yf;|8pwZgAMZ>P1tuwCp0qwxd0a##rzqD#@PsBL=dfjU#`UWYyPG)TzNgcplYK zMA;@Yp7lONq${Z}$-u={!4f$D;F`0vJD%s(m{`c9DcOV8t=X$srP+})1C7c>DBQVi z%mC;!PmDB(xoyq|@lv+^q~u_NFli{KxM(ynZhrQ8$*B-|nIz()h;>kS0~x6wD0cNy zI?~qmL3?g^hsXR!;!Qc@Cv)3u9^BWM67jn$@<HlFddJ60XvVRm%nEZGa!)*0mEDuO zc+2OLSxHH>pO@rxVdZGQSNXB9GU1=7ryul&-60?jf~8dwAQ%Xvy)ZfhfzB#aUt_BG zOmgB;!|XowdfEaPC4paRs)9D)uN7u3kuKFZQ&QJ44ckO$M-Vs_qXc+Br@dssda)2s zE8LpCx{aTlBNvfxBRfInp}@GwUd*;42fiuNARKoc>ZsK%ZN!FKg+)=-sw3hZI!4-; zA=v)_ba7dzy=-)*n!D&|@7kcR-pxTQZs#m=eFa2yJ6*xUHbCS7P|dAEvSnkCuX?D* zT>^5_<lA;P02-Dtuwe2HQJYqZIQ+tneH0F9k?OO`hZgRrIo!h;%~Q8iE^T$#ywWnU zRq2D0-HmfzBh$t7USLz_V}|XTyl$qLk>$y-pGv2HeR_~8#b)!VY_VVA0<>D_j(NDr zoXw1+Tr@{J)N@)fH=UI$$mcaJwS=<B@{4vta&xw{MuRMiz$=l-=~}qka~^FBmK)mu z@;Xt*<BkXQttfmb#zrkODC|W_d@>V1zG)9?q@1175@^O!5r91j=AS&KC&0(HO>Ifx zOLvTUl0M;rKr|<X?RaMMNgW9}&1=fu%Te>I>R}s<I6J;-R=h{X;0LJ{)LZy!)ld^2 z=iT?4(yd3JS*~2bxd#~rrdL~olD3HC1d&UfrL)tKPFUJS%BwKW4h43tr&+9HWFR-L zDPp%sLGsWpdeTX=FKf%t<4hAW;URn;_@*tb$zTLef_mb+i4N5Pa8J0Y8X<s6jQduK zFKZR;6Gs#Mm8cf^ATR09H6hY(IQ`BE89vq6DJt0q29_|q=YZVPbh?MM<wqSBiFGF4 zu{(cytij=HqNB{Xj4|tq>aH1Yr$Z8zR8S5_T36b$urd6-n>C!F+>dD9rU(2Y>J)CB z+~XWmlfuv}h|co9)6>?s<4mw5kiOL9-R8Qn>B^H-sk>?}V;BArdugZh4EF=C?(@Z2 zUk+O@$|D6wJDBrYh18<wh8%9BnFceH$fe7D3Fg$P7L8=@hmQdCAXAr3w~TD^xgE`1 ziIhd2<Bn+CgO+T4Xys^#zGv?cC9F&LVNJdGr?e;?Sz=YswN9|+0?Kepccf(Va0_xh zDYe+v)<Y8380A-3RyQQ>Aa$o9E?8~Db~P(Hg$P08y(UyJAP_xh<+{I8HNDvgP_70s z+JkSuD#Q$u#E!LLky*EXBNZ8pvhE#o*0Zuo<wxFjeNC-7jJ9!*#FhC^)~jo(Sz-A= zARWz)O*=<oCXysze~Gsq^`)s<o2yrk?zS=rq@!nR6H)U;OR38|e1&Gm8Ks3jY=s+u z{OVC@DRfh?^~vu|h&p_-V>!Sgx4qSfiq`CJoMn78CO==TJcUkNWqs)+!nh2Coc-Zb zuvcD2d*Y$m_C?v1oe|WP9cox0iUrzNaDKV%Ng55ngVUOo!7Yqsi2Ky-aFm*rkx*Nt zEYGozrCE^gjb#LL$jIiAa>Oo8OFHgUMIVi1uO>{BdyzDzXu_ZXo~EMvDS>wboYkaK zkre}<T5`sA5_)63UHglc@v&87M{UO-kII$fC+0XH@lwYQ^YY^q>xi3Y10sh}$El)? zwJR12(Bs~-?scdllVEn;>)Ni(Vs2Ea$PK}+diO?qE0UXJWE_)>k7}g(h?3P<zbA=f zc|=JOI2bKXI;{If$n%~7>T5K4UTT87N8a7*R_x4^OxR^rPnZg=B#hg>i_Fls)GsA( zE!Sx7am`({l1Yvl8E`tj-YXg_+myXhB56o&pmAM=uBh!Bp^wV*IV<RDI@q{3e<F#9 z$_ZEKITbL^1aw}tD%*K-w86#?@Q&uJZb;cMpCb&lQ(cWEE9_IBF3LydC=0kY?Cl&? z>7z!GnFiFy0;5P$MgjN(n#$a&?@+bMNoE3k+^&BfX)Wzzibo<a3-goIR)JB!80p8g zCzP@h#NgwlY@UPV<xLbtwq#$BvUjNFvt^GAHzOXEqN-E?23OXeK*<F0?@>1Ip_|cN z8R-(Df}rOkihZ~GIWl=lyEhQWuQhKGji2ov)Y)PT%(%!tw4&{~2+Uc@JDcV?shaIh z-;{;#PitML3&0)fE0{dfv@z^`IigRP9pf7k_`>E}9|KOvy9AhAp7}N7_ZyWqAOHc) zdf&voK!3t9Z(%V5%$0WI+Pso!01fJLIj%WM>g?!(v(U(u2i|T*II1@>iAEK$qo}L5 z50=2r-+HTZ6-xHxWY#xU)KgbX-|)i5#3>Bh7##G?dPjzkvx!##;O4yV!{GUDRDv;) ziu7L$$L5E1B{qODR+gtmn;itIRu=iP#BeJ=Dtfj(t3jYx)VT$Wqp9s#Zkrqf!98<M zTAlP#x4W>7mL!JSdH^c^m1<>~7d=>KHC8y)8w6)P4QpuuMf^+s<{Z?e*mdQ2G<t=! zMPZIK2ZaE&ZN{?ODsX(hG3!uT#kMrY4glu1g{sbhS-NwQYo<0%%<!(0u?^HEMiEXV zKaEkI2A?6Euu;uzeTsH3y?m$<OL>L3#c_Ts@urvIZ5rxJYx`@RM~^Dh$TH_Oa!rRT zdv0vCvc`diOB{}AlG+&};9<7sn)3@!+8*<IT3qO{+y^XNMtKAt#<UN|Z5@nhd!ycu zFzwqDaDZ}2_N=*6(J<wj-X~un$sL#uO+_h_U<-|)@O|r-(|#=YLsGCarml(^{Ird} z@F&)~ojz-ANR+d<j_o_k8-fA!r^wc<ah1r`**|yO^Z3)ykF&Z4B3B?(v)TD>t;qGq zG?SAx#BMQwIH+q?VJ$R8X<66hE6Djtq7Wv1nK?X~P_FZk@1Al!>UR!4WsDQt)^dFj zqL)sDr4~*K^rr*?bFgO|3N77Sgl^}Gk=2L+MoxO>sYd-ti|YCih>}%cM_<yJG9*d> zASv!@X@kUtl&Mx2IjAIwWJvMOI5ncxuELexf=dc~hwo%?MK6<vQH*-iVUWY!isKl^ z0-WyBa;=}GOs{Jew09gCWRP`LU)H=Q<6^9yCqi&H!N5EdUg~gwG0O4=O?><DxnBFn z@*r|HKoxP@HIvpl{{UK^jv2Kik-|?GljS-2Rk~)q3*e5UVWxP`O`h^lwz1rYkPfUp zD~i=WwJ$XLSZ-P)1*+{v3IjLRx^IBC8ePZ43p1_x-`TOv=1OBeg0OOxrDfCfe~)i7 zTuq^8CDlDV-}Uz$>iCw*Ul91N`qDOv-fM|OL5Dcad4-3I;qdo~Mx}A4J>()zNNgUp z*m%3c7m(<lF7YOql7GT2{iN|)-5=q}=zkjXX3}+GX#rbsi6%dK?T|g|vZR`vmd@_> z{A_gKD903|8T>Z;uXCjF-^C42$1HTa9Rf{0*Lh=cBXaB50bHojuIv>hy0<YSaJ!Bx zpiLiKSl|~IQM(QnMf9pZA+Wf!@{Pslxp&SG^a8TKJd&2bm-PPt;2&X!jA_$UV{Tv5 z)cO~}x^9y$i{bKT&Ol-WoM+y;JwoSBy1XW7AIKR*UU7=x{vGPmTWC6ZLktZPE@KFp zWBAums^97_DIQZSWkK@HW375g$CYy*npca2<)*hftuw@MXu3`FLhbf+w{XEmbH_^O zyd&ca%@g77pLu5hXe5lT`IiMVRqih4kHR{_$e1k&U;yT~wB0*a)V>$#`aYEvya2G8 zN$xuB+sGC2xxDHwRSDT^)6@F-o|YCV(NRltj=1ry{lo%0d)={IH}4rouUuCD0QT0D zw$E&n$u#H!jxs^7Jn@d5sd!B-KG$gFE>6UjF_qn(E2^{5A<=X<`#sXns?D}mGMsKc zgXv#9oT9C3uKxhn^{Leax!X_6`uodv8jZXOC;BW;Be&j|agTbR#Tp&Hy`?a_wYHdT z`9dH#2hy>u=4mfTofM1^Q1q_DO}G0`GCIbA56N0#`QcL3?{@G1007Q!mDzt<f06C+ zC=3WyVl%jtnpKruwvb8gF~vRcZjMn@vGk<-P>_sA^RUUsYWkOL&pzMGHF89YvpkGu zq*6<8xTw{K%nuykkZDvpzS744=QK3k+9@Qo6vV&)!=cYKDPlqQ$)_&qWNeZ_^`^9+ zc>p;aW~Da7u7!Dd7>wZe6wXYeC^_dQotHv)Fvd6o){w~}lo%ZMHLm*uyWjfgIpsXz zcjvV>FhqG#f=+Q$5D<`iij79nF_Jscd+bWp>Pwu;5%|xgH*;VzuRRS19&iDPQ~c>k zJBR~;-h|Y48f~OPSb#`8XPnU)IV*vN9MhUG*;W|I=7b--8+zk`N=@5Rt<?GFUfcbr zeH2PUtjrtO=DGP~k~U>;m>!kUc$7&WiFHIN<&Qk`>sS-S2_(4$9tf;zNkO>S>xaD^ z%A*-$$;j<PpP33C1}UhHvtdp_^{IeD8A^~>l4={%n%6^5xTtZLe3DH^^YYlor!^#3 zQM#SWQ71BO<de`*2CP{&@Prb1z@k}7L^8Xx#R#bTjDP|U2A<Iea6@H#)kf=Zmze^e zlw<OzD@XQ)3^K!-jo+vPkWEP(A@W~2#~G?=G)AfFB;9&#QhJ(*u@jS$!x-YFp5t)X zoPpOh0;8*MELSHRMP%-`32r^t&Kui|4gse@ZycqYpOjL{@5VS<M4m`N*a6&m&0Ln3 zLv5(p2|gd?1A)^u62<eZl5W~5?;GGdbm~@_GdWctu~IsER9U6&irpB=U04#JgPM{l zH)WU>PMp&r{o)W5vr@5R!i}T2sa=6+JIh&4(EDTRX?(?v2=CLHWN1rw#%V-l*^Waf z<Qm@1E3lTfLw18Amiv`rR7mhg%!KD~>xzw;r3yF;?NOEiHYhw24rooiM<&wHvlE2c zI%hmmvb2rEV?5MKcXs3s4J-lNlbr3X8cAGRjb<V|e-ZSgjBRpB$p;uT=2cl-s*uON zX^O-+TmnJM8kt(eb6AtjVoBN_qsuerZWq#?(hU5)J*mX3NOO~(Mr%8_p_?Im$@f9W zttpVRZNVfCq*9|gjo8Wb6so109T@u4jjySzRwBZ=Bx5}=Y2_KY2NdOm1|*DR^G3kA z0rsBMJ#=KZa9@-a#^a2djNKdp%0?-YTohudpD_0$gHqc&FeSj;KPrw^gq79W5U`b3 zYL)MUNW?nsVtV4A_O@ou2chDaj8NlX+BxQ%9=$;u%o}!=QOL(yWUC;_Wh$-GluL;e zsPfKmY0~aT>$^PjT0yH>k5P-ea8}$w^{4De+aMf+>q3%#Z<{%#2!U8+ob#O1X?)9G z{@V)0H!#lJjAo+PHfM1->z`VCd3YZ#d-F@>g4sO}YFe$yif=-@F2@^kGBd?EGRO0M z_8pB%TN2=*+3QRwsVVah%bv7G-A5(Skg}^w<}z(3(wsvE%E!CV=cP*6z$9e}#YT$4 zQmWY=^f%a^mPD=c51K$o>}lJJZObXo9Mnf@G2Xk+Y}J^~_<#`&-NEftlv3_Yv>MTt zIQ|^<6v<*dvGw3o@~dwEIRoiYki?v~$_6?0rqZ6E-!8)>i-gY{R8o0+(_*kAj(QrN zRD1xZElgP6Kt!r>*biD)T|y|0!xhFbM_R1&?N6NbtIVw=fk?pbRc;}6d~jp;6?Z_@ z?yhBC+N8{-lRLQvxy@rpR^7fW#QoRBc2gh-tFwP#eJYz_v7eOs8cte~Cw=xjzT--| zvu`>XHxSwP7_E&D#)4;9Ck4pJW78O}pHtDHocWNCE>Lrh$2G?4{v3$PM$>OP<bt2Y zO=`JOEhQVT>-yB~EoYAIKQbvpr=aagG)!0>+zRuEH624oz1b%Cm#{o5VApGF;y5)J zml7m-JgGd=)tM&LtZ0#g&N-!szUEx*+&j~9w^%Vs0rjUAW0h~1j*UsCmWM-=c3`UU zv#2}KyY~j9P}#_HpL&VU`m|GrY?1g=qAp|1pDX64ne0=2NEo_1AacRE#aWI;krqBf z9<>~xMgi(ib5blpfRlFsbgNpSN&TVGjlXme?rPju86gShu4_2R{j*kKW1Qn8(HXNh z?>m-RhHy#A?@|e5^9Xaty+EvS^J6sGE&zPCbL~TJMWvuT!KNh`kiBzKiAyT_dYX(C zW#Dz|Pgt=R2iyZqI~3At=#U+xlTCKWCpadWtWF10)`pQC$>%?%H+QK$H6^x_9RC11 zWz2>~$saFFR6&Z8bDuzIT5RWVJn|}J`V(~6MoHYb+n)4+$WjL)qw^T6XTM57{#ePV zvs&KZ*eO{b499RiJ!&B+X|Ts?^GoNSH#;zM-k~5%K2P1<k}GuAQ7yGEd8rzg3J4v= zdM2GPlTU?$kV=jZTJvzs6@*H=i5o+7uSv2~<wopww!jGOoL5yntYKB(QgIuj5Hfv* zTt;SaT~sar7^<;`NAnAlk&3Yb23`5j6|(a=T)UIIZeqK>QP>IuWk@+7b)+!wB*!AF zcLdXs3OPnQjylqBT>)xHNS0Yh8v}GEp0Kvz=}<EXGNc{c4th~)W{w67Ng<92^s7;A zHaFOiyC?Ce9_FEV)<Rj2%y{CQ0?Gho=hV{#_#`<aAn}SiXbJ0U3}gsg1Jl-{j50>q z0}OIKszO>*o`m$GXDfsU9QGAl!LmZAzzjz0cN8_kI+ele=~6|x#s?f{nl>RvIOovz zqU5_?#7nmr-NRGkT$fDl!jdyYBRS*(2N|b1INW-X!4%e#CtjzAe0I|BZ}q($?4ytD z@!OS=N#wCL!Ka6B+>x*%k;YAW_r&q#Yc?>i{O~WH`OR^}yO0|{jdUtXQBK_#<aMcN z((^efJSl$B?H4hi&pc+7ct+r+P12skitJdD0l*(hO{ziT8K$YNh3#FRk<DB9R}9Mc z54Y3`d-!fBSPwbbFnaaPZjxjB**T>#q>0dj+ch$xlesdRZs^DV0EBuN)O_+hZT#q8 z4p=DjJf!mv0l?<9{IeNd#h=&;af}w)7X@i@M&)y8qKv6DYgQW?At-LUsbbTh1V{E| zPI$uBrWFZ2X=Eq=0Iyfe9gP&6Y|%<BI^4<kKUyTyVThu6WC7Hk^*bB_%O3UvIL$On zS-Bf?*!HE!x3N6Z)LSHm(shxJ@DD~6yDyb_2bRcy5OBa&7nRQLFl$RryNo}U>zs}c zrDHmG_k^a>w@>&6d9^kUQ2gW8pl+pALWcCNmg`Jgu-kExKK5&#niqy<ib0c}7*#8E zGMeqN4syU}Z3T;N9Fx+dF{`NsvA4LU#que}Sf1vtMJ>kpIOKPyNgtIHGJwsDVA2L{ zihJbbdQ@{Z2qPz)RjAlfT-UI#x%nUh-9V>sSdMTyQ&^I~_VlN*?yL2!66|4pY%p%d z2_#jh=TN&CbL~|cOb`L<O(5erAm<>|RDx!aZ5JU^J05|KKol65OSiQ{u;X^}3G}H| zgZCwe88s<cYD3ma<DM`8Vi*ro-k%-_+D->zXq6e`QnGNpL8l|38+}JwrqQd7gxI0^ z<l>sqXBio6{uE?K_m3yJr%25B1BSuov{E3A5Qbs2^U&sj3loF+nwQD|uP5Bpt`Tv| z6IsdJZpmE{?AVzEk?%<)hm7I7b55EtLX;2BT+@;S7-Dy@?NHu^ce)y}1{+T_=8tlb z+tk#UaHYC)&{Coo1e4dLO|0(8z4T)O4=*ZnO0b!EB;<2XjY2V8W}M8?u1D6i_>PNN zTzqh-DC+$<Ak&>;+^vz<wMQCm84ZGcY5rdIDsjQ;D;;mBb-7+=2>95?H7dCvsZ)c} zpSSmgRkFUPts^R<9jr;KOwFgzcvgrikK#B4(4dT?9^8>h=5GocsPE}cMjU7JscPsI zw?r0A<Xy?M77W-Xx`v5_7!SK69Q)TiW5cwOk`Rm$j`g`~aAtxcGtdreDP6moq`6EB zoGk2skW}(%9yLH%Wy$9ir>R1TD;A7ykYo@$)fE6Q^QU|2Vb?+?!$-;6o_VPvMTh~{ zcdaMN?aBA%o#sW(NGv)G(9yG++)pWEkaq-eP6fVUCI_HeQ0PD#vQMo?JkY`!q>unR z(|cUWJx4NvqkyM9Xjt&%^#D|cdscO1e>D#rQ(oc)k2|tAcA-1&Q(y_~KRR-P=MCSA z1No8ejak$l!k!y>R7E?RrbRZdss(kcAxmU7&Y_sG{vpOG5qy!3a8DWMHF<614iRHx z)SfBPSlqA&>~eB`@##xTJC_=ZW>pFnE`I$@ZtonMjtY_dLajEHa?SHW?mlX>4~KOt zkC<Dkraz6qsBX(rc4jl__VS#Vk-GMwEnyi{g%JHKqE89xBxOF$lg<o+r2hbfGWmkE zmsU}q_xe>iS>LEDNm%Ehw?1J&s)HHMJJjn6My$kOp5v`<#o*hQby2KX1OE0+SpNWo zK%xe1e@;?=gr2mOuW}!e%^33ARZcqOiV6w3^cB^`;d?CR=fsxroN%bSxu#9w-8M!W zHSia12oZOx=H_FJmd7g`d2I9TQ?hQtvi#X6HMus6;dHn2AH=sOY=Sek3=HC=HeM1~ z$r_HMK7Qy4gICPtDakVmL^v5z6S1mnrYXY)%8}64^!C0P3lZ~mHaH+gc*QJs`W&u2 zt9jZkICkcf(G%@1wJ|ctrE}N4NLn^h%tn1HR%FnV_iJl#t&&MES+`GUAuAoB!Q*jm zK&;l+v3g5=2t>%3VT=yOn)g4u>N%>WH3~ZI>?$R6INXQQmajl-Lh9T?I=K95IF{b; zQ-g8F-hHYjP*~wq3bUhF{ifpLN0A{^95JJ4nP1*W=Kd>Ptk>37NCPBlWh@7CUU7RF zjJ8J^;<|qqO(oZeXYy{0&>-3f`?b#9WFsSF<mV>1o4eTbV6^ozBtWg2&AL0^7|72x zdgpX!an36_fq4ne4s%z^o~JyLy^g!XNb6{PylpMi_OC|psU`_Q<f$Jwt$FT&<}IdC zL!&qt^sh?r)J8icbMlrX8gXl5cNejxFd<lnEWL1hRRn-ZFlNaf^`USKaghA4_o}N) zwQz)FR#Vm3^eKC=cLz{pC0A|*XlSJqSFtj&P-F@RsWp^Ky91mYR=<Y<y73j90A-cb zjQ*yo4aMwDXsO3j*%3ijK+W<IouiBz;r=3gc(Cw0#inSMvFm!j0^`hok|Erh=6*SR zS(8hi=fe6N^2>BW`R{Hqh40OHdnLWB?yQdsNZw<-pEJmN<kqsC?aR2Zm=9?WX;bbx zty9N7Al9!gT7MDU!v)#HTEcLMxy}KvLj9Tk7I;s_-xM_+Z{iP#G<`Ei)9ef|L8#mq z%R8UGPpx<j?yU?@<hJ1?x!9}Mk4m>|eH&P*ywa{_wvc8|IwEofW~R24n|=QPLE@t6 zu39>JBkya!*q6bcGPb_G@NbN?%a)Q)-TjkNLKgrM22FAQ02V)D&l3DF@HVO9yGzH_ zptZA_R*M0=u%oU=t$cT-YdRGBZZ!MLof>AzSdvDE*zs3<fAL4e3*nou4?*MIadhVx zme}62BPIsrBhs{#;_4?(7q^+_$J<Fx6(p^0#}8xXO>YF(F)UZD9$j|e20q@^ucP>< zRPgP_=x(J*USBcRDG22C;<@#if}+PNO9((!^PGcHiOB^{G3slgR&ME>vWl0wozd%_ z1O1@2{{RnOqUz}urKN)-Gj9FhR_VoiUxj`sXdX9)IQ03N3+_}~&GM6q`2I47YbXcn zS~mL7jnScvqq~Tf4yPTxYbKl3>P)RqTOVspJaM|Lv9wa~Iq5~g51izI(2Du5;qS+t zUqglqEovdDTNCAZvK+dM_04@1r0do`BC;1ce2UArb4CtGtQ>n9JF9ao$%Z#7f>#6_ zin^B#^SB4)>r~rxjgi4%F;8ilB2~Fl)EY}$1F>P71QvaO^NL4k)CR%poc5$i1CZbX z#B@Cc8DY?j5!_an=n7YN88%dtkh$wf;ZS8b1HY{jFp<XopmnJH$oPCQ$3Q9G<u*D= zH=rbz$?0Ap@l(V90BP0d)J%?&;X<l^7AxBf*%)Dgn)%ztnzilcj<qPo+x?Cokzw>T zjGDdnJq#*tdcW&SoYmFDk|KsBbH>`~J{*NzelQBCe~^hAXeS=Eg?SWYC-FEv`_|8e zd>D0&Qrt-~1*O0M@HnhpwZ8uV(>v-nIVT%m&)0v%_A5<COuqOP<821&;Hi#bJXUKk z*v=cRc;=mQE+L90`H1;SkGcr2NBCdh8!O)tN#WU%8W|-nUGs<M7&Xm&Lhx3h@V~}- zu8|@If*X=hu;*)XxUJmNZtBke0G;3H-^}R2D9}+&-F{wQnOaDs`x2oKB!J`y*P7?N zOJ_7UutPXdT<uT?Jo?h>2gG-(gH60>Hn804Fmd&$bbTJ@#Xc#uv%S{^qk??Pn}fpQ zvFCDpv09%`1sFlpx>2{?*!HghiR>&atnF=g%!~5KSLM%o^j%W^>0nLZJkGcuFM5N) z_TLSBJ8h-dU3lSdBx`_$k-E7VBDMTU@h9NlhxKQ*pI5q?K_FEz##m?5HR<!HtKENE zeuw8ZX;ht8E>`)UZ@lBRr<Pv^c!uF7NbYUm;c=X|(z`zk+1$6o?LKKG4*O9^=y@5g z8{%ihUx$+TYgV@K{I@B0aTX(1gq`O;wTq{Gd52B#y`7_Im)CMEQLDOfh8=jXoXy-N zPAb>6_SZ`*9`zh8dXyu}4zJ{Q-YnBB^<5Uu-%`J8Q5DE#Z1fnc4PO5M!yX#b>@1+v zqtx%!oyJb-GhCv4eDLm}b1WL3k9dY9$r7ejed<*ByYR$ZhWiZPXu<vBTc1x_`FKWL zt}tKLzvf!O)uhvuWn}syGpQlhBL%a*BJ9B6Cp{_)4;)Q#u4-}VrLGbL3dQ<nq8=;o zKA_v8pUB;kJi<Z6Pc80+Z3D?=aRMyd9i3R>y6~%#X}+I<73q09`J?N&<XL4TU;r{R z(v+h4is<`z$rOthmyyN^&S?h#kO4WxeKTojc+Kh}5e{VX*~#Yura6!XBN^uv49_Y= zSx9E=DcN_MY2)6n%vbHXF8)=J5J~As*(4pfrSgiLf_WL|r78v^Xy-k7scWfR*H<Bw zFl;EuJnl6qJHqrNclV~N1j4fY(cYa2Ql$R?5$Fv|mn*v|HPvb<k%+<^5_u$0;FcqH z(8H}YjG&y6jP|Gf(}Hq+Y45PN*U#|~0;lGDjPb`b?=xZHPDeb`N;5bmcqfxecE-3? z-Hv@}TH1*{Rm7d7WmZVTZtKo5NJ;a611v@W_otKQ62p=Fsju@PAeA74k=C|$G`^Q- zf_y|)xA7(EXv}+0E$>{R+QaV`&wB2@C_-Y_u6O4W5J5G>FxWr?@vcdvYel|Ph*?-| zAY>n3T5GNl<AyzRQ-Hxv8$Vi(WZ8m9+D%N8O3QP0uG1lq<<RZp9cn~nRxSoly+jC7 zGT8?>r-nE=IYZNmntJXlB&~7MINS=aC3&Sr%91z)bf5s6N#LFUrkuvir-DXtT?)x+ zE2p;PTZ+kr0H0G+?+Ob$XSM}bSCmJ>C^`GatQeL<?@=eM(BtMtRF+rht=kn4mkf7w z1deLV)0a<|ZWkOHuMqPlV%YTq-lJK&u)15JU0K{7fY9hr0CEjXLE5?NQJve{ErHuK zS=_}o#+Gmn21mUzDKe}ZIXyipWl+VGxWMV|YP)^ofsbmQYs;0`w{|!{p}fJpPo)Iy zaO?bBZ8SM5yc59Ynj|f|egFzc&1lkkJ%POkyoF{Ye4ta~e=(Vf3NgqX>b1KGBM8b% z58};Az{CLxaCoY>L?s5@#AAj$V~#0^Bvd7UBR_hEVdgRs$>yesTjmNz0Pj&XX0B@V zRvm65XxnszVER*{Xw;Qw#^Lv>DDpB$sbSh!`H9!==CxYbl$S1~F~+9hiZhYZEPB+F z$FVo<z|PWpnqgM+Rl(yq#YoJ>cAj~sE%Y&!+aeJLVpQX`4ZC<yOCNfkNdQ~{^B%Pr zjW{3@{YfUXdaVr;w&ESpvXXgzK9t#hNp`6(CU9}miAiQ1>RVDEcRNlSsjT(fsWqjD z&SQMBBvT|qEPx^1#z3jrL%OIrQhU@^o=iofC6(BBty8frbz+bNc-yt{&S?hIYzmUC zoE4*PbHQQLG>rm5^S*bn>FHWWYZK}S3aL0!r-AEDXGP9iEO^^Vw<9WZ>p@gfNMD=O z)akP(quRoPcLEnAnswBL<Oz+fj?~7J<ro~%zszn18`iLqOGxXfEMSqAZZXo4kxXHS zxTnUzXK3g<)Mx;in4O@14Q!>&sG73Sj3db|&M<mYypY>~`^)Nj)R^2$4m~N69nR`W z4c9d9Z4lJ72a(hU0}60C^{Cm|n5%Z=)1S<Jqi`rXgFr=+G7ksVvufgU>Ck9XC?p}{ z)X^Bp2Y6HINZU$<<YJo=h}Rh1?rQCO*m6y)+fr#zl1L@#@Pfb-kw)Prb}rodnsW|` zocfVYFQmVuPmrYwk}^-BH5nu(*5$gIom6v^m0m%nNDDY<&Q5t1cY6iMp(`ryB!=&v z)gf{K?T+--`@p!`Pb5>Kl(dh$0~uVX^sLpN!p$DKkVqJ@Dt>QzuX8(rw2(nO)wggT z{if$N1krL>j`S$I3EOhCip2)p;-F|tazHh4k(o;885~tjyCmC=an`j-HGZZtLtkog zMom|^vV!?prciOf$6CGRf&S3<s5stmFb!3-v0STTnbdT25@KZY;u*niqPbh`1?^;c z;Q-?RDC>&!>7rRU#&g#-oqwl9{O!TTPd2v{qb)3Pns12Wvj9uD6=19nUTdwfxQ^t$ z!MN?+oYyg__+~rV*`>-z7ls`TWJfjLk#-fCljX)i;i)-aaFls%ZI42A2zL;9$mh0c z%OEN8@^QstSono5UI?TodyTx-x}bI_8wF2l6n^6-#FH$e_=q(0%g7g?#Um2A<E2L& z!2I~yM;SFO+eC}HwxrT9h!8>Jy)|w?a=hoYF4Fx*@O#js5|FX*2U?}DDHE9(1HtE- zIANB+H5(SssHk@_mye%4Dm6g1(7Gg59et_j#heYq0Z^oQVs`WI(ycsg2@cyy_Ns2{ zQKqkCMr88NdYXydj_e^M9O9hvZa5r~N*ieTj|aUt-a4>)Xe&;vbGHN2H59V#9nKFF zl0rLj4Lks=^9<&Pu7Zz{nfZYkIiz_=d^cK(b!Sejze;QEa4<-5>q1s`9*u;I9)Fu9 zdhtrj``nHcif<8>IO|Rlb!=v;Ny(V2t;wQQk^<~;f!e(`!xCxs#2vuKE6Xlrm2Hd0 znPHAU8udL5Sv0sJEBnHmfj*VpNjK2Sq_44QoM0|`cB!L6$UlRT)}Sh5WAc2*sj00q zCz+NY^yar|$I!_{u_CE#s*#ST)}_b;A+QL+;+y3($UttL4JJxQkT-TY^{k$+MogBv z4%|yKDuyGmqs`rd+#K^vN05cU7$*ddv@~v9jrh+{MQEP7j7cOL)PuNmrnVF@Am=$P zQ*A=*p+bN&yVjs$+4*?~u4=iJ*sps4D)Jx%_3A}94YFVn#(6ZG&hU&*N2N%`Kmc=- z*0YtAhWjp{;9%_|cU;sHmS8{_IjO@Y(YRpeG~LLK7@oY5T60~8O-Ps>iVp|9NDIiE z3@R;151K<9?e?T#7d?7(H1;8`Zl{_2P$2k<%0e(c%a7K%1D7P82WsoSD4go{LudT3 zJpMJtnS8e3=OVkItXHD^kVmTXf13t!gdgH313l@e&AH6O1fGM^klb%!=C>WVr6jxO z&~-Id=vzX(XP-{Ol(q=%$9hy&+Fg$s;*~+#?ZYlJ^r~{XH`c^K!nh%hdy1FLUB$E4 zu4)az+olCS<#fk8fxyjX;tAhIApo&pcs{iZ()2mcJc@BFGCzb<{G6$5jAEgyZf(zU zKQtWd;NzNWD!A{S=A=~_+qaY6iEsycYh48<?h3$1w5iWyOk*YsZt~m?F;7xEjIKB} z6B6W}qNVAgWTkykxuV>))P^ZYUN~&^H0@T*ylW!lo^!=wg1{~b3^@gBqtY)@`T!Gg zkPn$;>zd|q*7gLGe5~e(j#SP{A8KM2+;TT_(zNxP1+|;)5rPqc4!wnDp~>{Ele+RP z>7p2OmQc6{oKx0F*fJ6j<2;HB9oSwEtu|7QPUZQC#%k})u{xv*${YeR2LggqZ$B<- z7nQugikMU0mQpaHsoiRfUaj0vQQJLeIR_hZC_p=KDH!7*65mQrS9UF?kto0<^%WSz zi-kDBrBZM}&H(R1V>u)6rj?c1nw8{8A7KO6si!2nWj!;{W|{}cdmQzsCPJ*l5>%eJ zsal%z+FF_bqo87>$aD0kiA0U_1y;veqi*F$B%D;|ZtcS@pISVLlUtHGA-j-!)QaHp zY7o-IRdyKxJ$(fiR`MS#BVfN@YE5cpoy#Ux>9maf);$dos+K*R^*xP3A$+Q|q^k54 zDq6U8`Hwv+>{OMN?jp!p*cKxkW{u=+!9QAYfGovW5KUPMBPv4heQPj<uXa~ScAWKM zc&U{6k#8V_>5804*w2=@9)p^kJ3N0ZWaMY3N|`%5BX;kxT?j~lWXbE&s|n13g2N_5 zU>tC2<Yrb19YXLqJ!)SwY1@)BS+>Y1pp}pMq8RkgN=Ay{jQL|da1CB|c@yP4fzZ+h zk-z~kao06yo29u5K_Lf#xyKo%HMICD9T&efWHW%=bsbGGI0_CjSaoVIsVhWPHZs2G z<h}Cu1Awbr+7u;hKFnqFT@-xBtx%1YL7s=FHE%|lE%hv9s<6RgGtFUZ?q1A(yQaL> z$jNYHaNUJujU7x%rtVV2WSZ)3Ad*#*5W$m@A06unfo@llII4=Xu$ou8MKA2A!{EG< z1KgZcgG{s9;nANX8P7E%OvSd9U`JYVqrP~;`qr&CsG4X<Y~YF_!ZWpc0&;0$OKH$< zw-OdSgHi+m6+u4qB7|ZSBPYElv3gqUmRTW<QBvM0#(wGwSm%y40bq}>8<v`2-1!{y zO2`$Cb5ez^t+?^2T#!eX8uh}UrY-B9sucSQat)-v=1oWBY@A3wb;dA#X}ulMlG~J# zZ{-pe-gAs*l<Idz7EvQ@C!sYNxATS$RGxAv3S|$>52E*`l6#Ix?P4)3%_=iHl0EpV z65TP37I){i<50x19G5E^0me;3CDp3G?<ME`lbTXXYm>9FWKSR%jB-D`#-xrfG0P|* zo=?r5YNz&<xD44l2Ro`ueNHKIQz5w{J?U+*UizZS?^fdg^v)_Lg-$mhY#uXA7lfj- zsU)6u)!m?lJmmBSv)%JEqiqonm$<7Y)eFhZNxn%ZP@rXoGAZg5V;_ww1P-N`fDdlf zt7ygRq9c+3LhetLHgJ7MdY52!E>70!DJ~gMD-z5bp){`;mM-LugjQ{&X=L5l#+L`@ zB>id8qbMP9f^r9XbH%+>?F8eHX;<$9f<BdR)R!J@Q52D#=O+b6=TKbb(BP0e;;)nj zLfgJW*wSHkvW4n%noZph{nnE*Sx|rgIrXR+g3Xg2<?0Blvc<9RR~f4E#$)-p0CnP; zcPdTWQLLrGWI0po)K$wXdx2>qMykQV8DUi6A|yXAEIZdjrGmDBPIi&fvzyRyNjsi7 z;tf9IO1u!<N8~)<$RttnWY$Eb!fm@~{L{eM>FZv};yXBX0%4Lp@s-9;QC?xMXp-qH z<8PS@3?ugy&C6w>)fvUB9F6n=FhSgh*0JXwzElUVwQk--SSpi@9%~prZ=uHnBoIeh zo9IOLw^O(9+Qgb&wpbG<Tz0Qa(ni}jlrK(lYtQufoiw|2c-PD)KPbV#uS(MuPML1F z&&o53X<t)lU9Wp_by&o<#d+tEk6O=Igk>9PC5L*_x%m(_cqXITj+ouGy7Z}cJE{CB z8CO1H90tKXs%<~Sarkm+^+}@KB87tB^O88CcnZqI^N-@Lcg86qX~@yA89cA3qn)h| zhXprhxyGBxuO^abm5balk>n@mB%fM>=K5Qk>s>w{-(Fl390`n)YUh-o2HHbofnJ6C zJNPo!T=6B|yK>OW_AI1vu=$ktBBC~wypG&WSmCKB_j#S4!yka!e}<s6)b-+*`mWOD zSY#%9SEN3jV&JdYVe;{fzF5Uylt&|+WUCs2M%fFUxH;fgVo7X|k)9%?<#!{V*8C6Q z9eLF*d_Qcii;p#9!K@o^gZ>lK?xnxC(IL5aU5)3iK^^O}V<ew5HpT8~SxTLWCgjF_ zIjCt}-EKc?HneBVUl>1Ud#g=m<5%#T7im#kX;}F&+z(3f-xPRzR`8UPrnjd(kPM2l zpSzY7_gRFQ8co<Cah~;!u6TD&@eQLUscbKimkk`FAmgE`lWy9Y!NOAPd^u-4axPX? za4>j1t4_}0OR!)E9c$D6BmT`gj+YJAqu}V{k~tM$?1bcloRB{X@;i+)UD2*YdbW#o zrzDERNh;woJ?dvB)}_Xil#^RCddAStC?Yc^^OR9to{Ow&9u>Vw>?QJ?vWZZft03wz z>sT5k`dKxzsQZdK^fj%0s0+Ewh@m(C0Cd+UGg|jOYPe`lnxvMU{{S=Fw7-m64x<W1 zbS8%6;iP3BbJDwLq)XdKt|66Xib3+eK_<RRXo^bPSpM;TVhwHhGsW7Uf#jR)u5RFF z46sh*?e)c4o%EK6omU4aE@<nw-Tr6Oa7I~VIoW~S^{1rfNSh27um`<y);|+GJAb4{ zeLdgV)mswA-+Mj4tP9_bdNVtnHp=p086+&jZttaNq?6R+g&MP5(2Hwt)b$@da5wST zoK-0<$D8HGzawXnUQ7P~3&U2s5;d-!1Yx*H=RDP@{x54V%M6WUX*6VRkT3M1xW(G% zQo&b>_o8}p%E=^ey8&A*y1sVtddnY-HD^0QNhxK;dVQzGy)yPsD)~OZX89ElJlBwT zzgdQF72fQT3_-AkTR9aHR!&>5_;TsFLP<R?K0FxrkR)-+hV`#v_(`H0{d+|VkF-rA z7DO2X3tk-s*?Ck9ZVj9h!LOq}18VwOc;`oJ`>|;arL@x@B{Iy#d)E?MzhCnGe-p3U zMly=E_WQT}KNEZ4q;_lZC+$~~NpBPvGKH1n$`)4We=3Lex!2<Hhs6o?!m-=iJ*03d zsKVt3-ahrfXx=wV&k<Z3d$vtG?UGEThSGjx)~Nhf@!S{g>_l&Fv3Xg3a(%0<zGm$I z0IUB1lKl+nN!h#V{{RinH|$4Mh}wOwND-TIIyN&`Ec_K?2BR0+ZqcI&gOkZVwSl3s z-P~J=<YOBt+qaAZTh?~g(CWW4JkhFv3!aq|)1lu_6IOJT6Slv7uVbO`mxF9<uP@|B zwQGA-YmeSw755(Xm1`ZDisDGFL)*J~#LA(*Z))oNGpuRW34XUaWLMD2yGW37eY05+ zS!v0(R<;(<yu|q{%7NHcoUK_ty+5y?-g8d9NnTve=TmE;t=69u(OX43KG@><a5o=% z=zL%B`%(CHHI!PE))Gl_rTn{T12lYeBk`<z{aLRpt?eQr-qJE02!2zatya`!d)GHo z7nWx{ySC;vwBrt2MLur5k3Kk>_k7aRxApQC_3fjwmE?vN+%QhTlU$YM#iWlcQQAl4 zl-dpeIW^JDcUcxHTL(K&wR3aG)9;YN5E4!?f-_j!_vm_9d`(C-c|W}3E;N~Dm;EEk zSn_`8=M@mr?P9r#NTr!&OqE4B1md*+0JA1%KO~tfa7AnBJ{OW%1G|LBa(NXL=+j%P z{{UZ+y-a0ED@pD8pL{R?5(hNHxrfR+)Q(AEx9-zJu{qj!{c8lJyF6>_r%{YbMp;JU z7m-qVSU^#*ao&)~Q<(THIT)s-tsuq^;wd+Hh1=h9!yl9*AG|S|h%gGLl5>pIZ6kfs zrz5>MW<)E{j&oWy_DOBU`4Tza8v`U7Mar>aaA{#uL1riBIKcI#WzG(MZkRQcVAhg% zA4?=V%*Z7F02MV?ByvHfAt@nOP*q0<H85mhk&ru9wzAl(E8UJs3Z@S}q|{|vXWj<Y z9AFA^z5&U}JOC<07#VE0u&BPbLVCSO8G_^-u6vI3*ZKC1$Ddk~Pm)iYJdP?kxe8O3 zQ{J?-?2!!eZ;H_~>bD9>B%-?4o=pRk!r%_%*QI<}KsBV9{#5cXK<;bJw#mJMG4i_n z-D{d@-stS4+FBLVnBrE*VoyqK!g;aaowW3tBl7W+>OCo!afu`cl6vjvDjnK2=G3ni zVmn9&Jqf9mgKf?-dkT3W0Qqr_)Y#cGk^p+nnzQ$do95JUDwBNqE!#bXG1Jc^lbyVN z6!s|O@9Ib1q>dpPCplr)J?m!rt;C~kh?ffNpdNdgP&SfIaqUlLDsU7OZiG}aZg$y{ zk&eEmsxtRl{7a0x>^a>^G6l-IochxuSbWt~f17SfnwC(hAq&EB&*4xaBLN|C=5o9b zN=e&vOIi;5t~bez?Tjy6QVpe;@^<vyLy>^}`(~AaDtZPq?;F{Wm%VUc%9w4Vo!nG1 zocm-{!5jCOBN^wKVg_|N3$%AN9H~2@^s*%3W8ID0suHIgfd`(3oLH#Fc<gC_;Nt{0 zy=i?lGqtrO$lO>Bx#NmAmmn6;Jt;ih`T4QxJJZ5$$j&>A);F`<(lXGAW8XR40qvT3 zR4%(SxKcEQ7-Vf8w6VJ>0b8ekTGsZ}?lM*0B+0^&*!s|C3UYp8dy0)*E4XH2=bVv5 zONfYXsHEN9x{#QT{$r4Y?G)&xJBV&ay(1C5Py^FDg-VQ}7?3gCnsc6(A;qPz){Pi~ zr1CkY5y{Cp&L|TCNCV|P4Io@M%yK<y5@>H#sF00>mn59<Dn|jFF=hkMQ??^9%T#lc z5OOn|3{@nzCz|6VUBhlp2Q(@33C?o7gHuLJ#M`<7)|s8E8a_Qip(fwDTX#cVMvb=j z#}xs@j@zAy<E>6+5-@ynIK?B#(}DZ7UilQ?VWn{t1q|Cs01hef<dAl&C_MVpR#rwE zdC25YA|^qf-S^4#r031DGkwQx!6%}Vz%-5WfwdX86Vj%3j#0-WCz`5c+IFK8?kQ^e ziOTv9LfHwlsXnxg9C6NA$afyp2O>zzWPp0mjIleGT;${$g*(5{>1kP@mQfhzG~|#W z&IS)tP;Yr(ETD|=DqW?yJPOsMv@u#}MpU^Z9=y<_a+V}~ryNtC4bbB>(S$;{`H7`= z$ELvHS%F-E-lS}KBn8be)TY&6nABxin>gAlSf<v5t0p=%^BGAe1DsUwxFms{$JU`N zs!0cfQU%=*Bjq{GOsvH2$y5?>*})j%n$e=h_}$NPY0Du9S#n#@)1{Q)0kk)vrxw=b z>c&E<3jDOW!)F+zUD7ZBklD>F{{SJzK{b4=JxJL|lQEH=<cf)<KQkN=-Ku@uV>JW+ z0Ch$I>q8>^&9WCHsmU&fr)*SGMvMb<xN(Y>cUbo+;~upGyI>R}8Rs=BU4*r7L8K7l zcLtP2x<&*QU++_;Y>!;hIb(r>6xDO9SaQEXvw;iXeA(|+-VZSK;-;O<xdA{`{x0<h z4;fR9!#=f1C9Bj@ZpBN83*{MbnA@7iz3}=Nyu!Y6t8_g@blaLmWIuG|(>IO~fHR)G z>o&V?JN4=Pf05=IpNA*6l-%2Hl@(5Qo>Q8!p!l9kck*sd?wqmY*Kc>HsVyXbE3m=z zHOlJ#6}Qx*Y{TSSrbv-H`cu1J>7Ock$(!+C$9gjxZeH}+S!K!*_}2=DQPOUdNg;Ug zw<Dpg?IXl++y_|$BPls%6>iNKxXWXt^Vl#7xKIG*q}k?>;E;MBN`)m>Rb@MohC^bc zjfyj8?q@WVR>q4(aa=ahhQS?Zh+&QaEC*UbRoEX+=A7{^_}_CeJYjumUt?9OC*Ftx zvFqzkM+9vE<KClaw{wi2dU8e(a8Ep()IG>b+K5ys9kaznG=ZF{JTDa_xRKO<5IGf9 z!<(bHU^gbZFL;XSyRyVD$Xp$#y*gizX9c<9nH-^dbo8q#LBaK`maIM>Lq7X#$_q0_ z0qQuXL>54vU(BbeJ!y4?-x3Y@Iq6YaWq{;>c;d8eM^?>JQdeY?oVGKNI27gJV+N8% z9%6!UNX;t9839m9%@KDomgMdS*<{Jb%5$3Z?+vVn!`2NU{o#yeyv3Nw2pId^5ni*U zfHaFZ`eHF%adtVRwa`g-5sq`$C$%yh?j&a<)z^<a=bEODyT<H*dXOuAZlX@x7k89R zyT?5A?@Do!a!1Xa6HQUO04XCG$)^xEVY}3&sg?E6SpMz+AhF<@nVFRUPz;B=RekK! zua;R<f=)*qRmeVM%!D8(jM9>K)LWHi8>QnX91lvZBZe#pBMbV~*^tS&H_E-4Pg<=y zCUT&Wj!B_tXxgzCot02IKBlDy`?&VaL=?9J0|K1iDHv`&Xm^&#Z%1TKx!f3nz>E<~ zfeWq_0giWbLLIB~8hDi%%AR}CW+^q$Y+=lJE)Gvs9Vx1OwJ7AV?8dA!6;f9i^r#wO z$Oh7Kcs`Y?72fRgPm2Ci>h>fy*ASjF*P7xOF5o-YZ}DM()U1FCt+NG>*0_H-G@09) z>W$P>^8E>mPWJA}7w3rN0te?%l8=Lu7<w93x#uKp=e;#R-gAym6<2RVOCmsorrqBB z(is_JWCtHg8HjMF@TW%Sl_`<yTBW7fs(ZSkEsn8=>a?ow%PNu=txXlzl*I~ywJP6d za8*(1p5~!k&1$tPG>s?xv)i6d1w2MdfXdi4B5E@Sa6*RdfyFtsIf*$Vr%)>?$==A( zrJ_Uz8Ad)r2dxYWjFc=7sHr~HAW%e^ZoJe|-MorH>Ut4VC!wABo})x;?eYwLO*~o3 zHV518b5S!ER^Y1+0W^;!&)agS=B^&{H%?K|np=4UnMOoFF_TWS1`Cff?I^F%VAN4C zV0Pt!JsOb0r;-M9`Br?6Pf{CwG-p)84Mk;%)JX#ktjc|Bo1aNrIa(<h(l+4;^zBk< zH=|6te>sVT*Y6&Jx;xuAb$exxa=tlNUezsf^)!dQ8?%$1D`+M1oXEk~hX<upk};4Y z&d*cctV?Rv)4X!$aNrj7p-KcR-nt^~pjya<SA&pv>zXD-W!wPGKOv7_Y*b*3kWB!; zKtR7X?u_km%Nn>PGq`mIo$~F%t_Y=A$Q(9(X^0%;o+?u4DL$h=<*8wwcp{auN$gEO z%{xkg$vx?X!C<6h3axFao%@aqRDn`1ZW9FUR3|EX)5sCVJJV7lASGLAJ?SOY6DF)i z6olFiRMXK&JaP>=E!{&fed|ick^17JTa7g&A)Cu=5_8)XKb*1=%~h5XSbOuDd|-k= z{Oenxx683}IXi{`&N-<=C}ERSvinfucn39gf--}&Zanc>$#WIWb*Q_5UPe!;rz-Aj zf=YTCjD{pJ2OhOCjY|WQjC811WNoo2m17(ZPilN_@~_HDj+|1%9^;n-j+m)ZHH?xA z6(_wZS!y}Hi3yIIx(@V>9!M?F^r=^AVxXPA^zjkK2hE=K38$kf+^B*$!H_5z&r)f# zF<x<xn*$x{#?n^`aC`dEB8;x%!1b$(OG61J$OCzV@r?D&JSc9%0QVIjU`HKsPDCee zK_DFPDM{&bRiZ0|+&LZk)UgeYrABainwjD|7YabfCmrcx`9V^LEO;l1&f`~+zXFy) zj^j1Y+*|CK@sX3%*F~cTxVHIMEV&09)m>)6)!=4UQb`>!Gg7Xe#YL-K{{UAo)*qLi zN$Z+&E+obQOjVbRlZ<msXv*WDJ@VD1*$zqQS0i^g!0Ai05IFX!quA<qkgMuVBTZ`x z?iW!KPB2(hb2p)1*Y)>~NWv%0oEnWc%1;;>;+ZC+Y^lxk3;zHEq)lT@g+Xihi#Hq` z)6r@PZb`R$5O^4(Kb1hi0Q%KquIWrhF2)B_jMZ`DO%zB{D~Tp$IAW>NrPNLC9G6;d zXt_Va4@^`^Y{)WsHJdk%w1kl6S+F?9&ZeTi@&1`*bFw(@Za#@u%@(Y>iQOdH{<bgQ z>2G}*2ni(p(s5XNhKH!wT0PuW-fTnVaEC0WtxxeP(lHvYk9j1nK<omKQ%K(sL}=?C zmnI+Y0{m2Srdy>ZtkH#R_wG>KTf4?ol~KkIy;yBQp=52JK5?-2tDo?j%<?P8r7lK( z^KnidGrebD_?20y&Pm2i6RMt<AybrBHNUHyT1=j9z{6-Kky|XNR25T^-ne_O9P5f? z@*%N}Kx}VJl6zAj@wbQ?)mCP;6P{0&oK$lpwP!-5J8kB6@xrez!hd+!#ZJ~n9$XSh z?kj@0@ou$r6MI7frV6sJ%xRGL$69kKYooOf8`rHTRdgD|)s$S4>UsiOx!Me5rhAI8 z*3MUU7<=Np-Mm|@$^QT^fd`-!18VxT$LG|h0QOp$REq_Mt$SGXxh={#0G4Lt<BU~# zp(%7gYysSw^T_orLOt2NmGX1*8i-$A2}x_28*_T}q^nzPjh-FDNm%r<0LaR>{0f}* zD{&Z}M~M+ISb2aN^87jZnrSdjGrpExHYJ$3l37W^e9{~mnO9p_iQ%QobtAmKWRB&Z z?GbEaoCn|vtaT_b6x~Euxn`~^c;b=6;eqZm#XVq!qdSx4?TQsu*tLg~TKtZ}=TWuD zUp_LUjllG+b@4uxYZ4)!ki9_Q*PLuX+kCNtDrIHLgUSwql&ZePtQ)?p>TkSDYb?9G z&=VXGIIO$9Q%t_JbRJ}+ou@0nKGmHh@S-+QKceEHg$V_Z8953%3QBFO><bBIoSDe$ z`cbyKl*N-DQJUu&0Kc^xuuO_SI`4H|(p=zz*<4pUVW&fT;{7t#H1i9}7=hR?TD2SM zj4P!Ni0*YOb+ov&iAG3_WS?5>Y@=kcf;AX8`G~G>#i{0aip)kn>EI7a>zEI-fw(CP zidz*W(&AnOQh}q$9qOFt8;;Sm4%K4rQqaaXbL&*+ofH7iu%3k0Qqk^p!b;aGT-<IT z4&yxf*D>PRird;3U%cfw?_2Xsre1}(#&N}SzAd_Fn#mKZWRvMxS)QI5UP&DN%k8#z z1C<8`zLWS%r9r0nBF;$R5zTO-M{IIy=9|(yri;wmxOF3~eQDs^WQ)RjJZrhYw;QrC zT{NAqbI;8s?<m~UEUK!<oOTsPTbC{y07a5cYR%K6VS=C^!^!Je%O2T2XCz?YR<eA$ z9t2~}sP^3875UVS-0@92ih|sCAXChtbGYz2Q6!3C804S4Y8<;7O2}hnqDDY>9y3fh zRWY&Lae`^U9pOR3fu2uVX?#d>fbsW%qU3bC0p;4n0?5dD!+}|TD$wlwW1?K?_v_~a z8*FTI_*RQage$m^eR>K)%+eQ35IPZ4%<ZYHWhneQA3J!5_IcLy?M43pu&)fzIxD5M z*uh`#0BeJed9>T>oi_bMS8yCUALc9SPZjvbN$~T>_N%v=`MN<7$pXA*$37#p@rJ7$ zvFNcuBrCJ+U}2;l^@~wU-Flx(g`H~l=Y_i8`usf(D%M4r$yVTc)#&3%##%lz!&JXx zi1C1=RLOM}w0Ic#dMNdx&Bo03V+9!d`u_mIA)3ksk87v{JHHxMyz=wTSPluQH~ND# z;9&datl4-^S=TKkyReoSQZN;uKY#07^1L;QGObhI<%gU8yvXI%l|r!!q-Q&7A*%!} zwT{;q#dCU-UTL>Y6De6aEV3yaRY<QLn|}UqaaHX(wCZ`1sV19?IxGE66#zk*M?&1< zxuO2OnTamPC8^6O<dR+6sjC+D#z<a33vKE^=}jix&J0YSHl07O$iHcM<b^DEFt17Y zZLe!L8sxT`KAiV@i>n0khe3{VewF4HF{7~DPVDBro8bq>T?fEZyzgf{%<x9&<|NB* zBNXMNTfMLOob!uvjE*<Y@d{6SyGxZ6Iaf`cIqRCj)o-pZwK(E1w&1yFPc`bcKNl_H zv%8Yt!}pgBc&B7|`=>okdDWDY>b^61B#7FApoC%bXEktfYRX^N_4x&O%AFX^M}P8v zsnh5_8@`HLdFO>=jq$W+k@c+q03A(v;k%h4FA#=fgkkrq)PC8ecy~*d?*2uFCIjc0 zx_v9e{BPpPJZG)Nb8l<q>Ch9j$^2k<6}PkBr<t0qvh4bQU5(EN*!Y83l-cM~$#p){ zBP*`p0P0P4u$fZoEk5OvON<6(PRG4fw)okj_-De9+W0!gTTO222ZrwMW#IuI!hLHK z!4pnALmRTma^6<vmP4GMdW-Vw)$ClQ%@pC+_5DvvlF^xVBZ$T@K@}ruQj~}Sc=>~N zt3Gjilzof1kC=58a$CH#C9n{50<}%Fa><cLrN7x1dXQU?NX1s0M}c5IVrEL{E^ghS zRdbRD%1@<ZUHQLfmQ0cldKz1m8A(0PTIS2oJ5-3@IRsUUJ72TxQbRdB)G^4?$jo>k zV-<eh1X391dGA+F_t4IBZ$<roRzATvBO~P$!?<kPatQ5Db~}MQ`(liRI0Fm(tIk{4 z*H@*2IYP(_4mxIqW4VV@lSv|D1QGQ#{ih*`1eMN35{#PApM}^=Fc~a9o#;g%^~pZ8 zm>BuU{3si7mSP8CiY?UDw{3a~hD9Z@v~KmFBRlRKpL$^>feOcI?^2==MjM0IHBy&h z#p*8Ba(4mEJOT2k1B#ADA(;K<A9ZQyj2Ac{^)&33te17SKq_($ah|4ter^s(??~Bh zLE@bkmQOhu@9#pFR8K*!1Dy0DoYPAXx&9N-ntDVx5KD7W$_ma`B(8V{swyt`6q{X7 zHTc3vp1_P{<2;e+URgA|q}W^nYuA1+sm-G>0SXmEUOh7b^Mnk`#!X{2t<pQF>l=N; zVp9<+2H<mpO4urL4t;4OcV);K^`{pEV+TH!%XNKC<L?yJ<Qu+1-0?`8%eL&3pH7t{ z?k#{aeQFVP_IVC>9E@O7cGRu5EP$l-;CHD33{lPx)}a!I!Nvg;@Vww-6tDJJ+t5~g zJ{3sx^ruV%4E1VP4KNrx0O_9fU0s#Faz+UltI=z7JL_^mu&d{Tf_bV_hA}BogOi+l z)rqbc40&W^V{;BEgp6(5^&*p>D5C7`A~@ubC{~OfJJgA?S8tr;4@!(@%LJ3pAewp* zi2KfD-~m<-O^3K8nY&_`$_C;Xbj~TMBLjwFdFe=scQS?Cq~|7$VqMZh{_qEO&^n5S zNkdKxX9uCFNCOH+2YMYJ%RjsMvw_bPuce7j?&Ka`8<U)#qMq^$f!7`B6tcKU5P}AC zKp?Tm>r|DsG?KC;^MPD$%dqcG5xCmtXgTO=tWk$%4oLJhXt;_nnBINrZp>TzHXkTW z{{ZVhDr=}afICNGY9{j$vWlRe?^KKX!Sk*O><<-dO+b4}6%|iDrD;6$@|$vPL&i-m z#U~j9>rG};A<hhA*QHOy#?_dkXi(!A>BTc3IR__o3Y%0EakaXxDHsCa4a`8~)wF@3 zWkzREy(uMiiGsFC_U%dL1I{o<6yUqg?d6y5l{G&T(497745%k@D0@<rEz|CvL8K56 zpe}LKnsY?Zjim0+e@any+|y2gKX#`Hl6n(NXC7u46e6Anm_5B}xz5&7q`vI$K9niB zZc0hqndK-CL7w!)mDzrLe4P)iL?C2v-@<w3r84fxI0l7g^%Y2{>@d5lHZZvuG>TPR z<L>mS9x_<<JZFlDwt~0^CyLT-S#qN^mr%ivA2#GUpvk>yWkped4tvu;8#2m$iL7H6 zd)U`;S@OWBBi58$A2VqLgOf~IGm-}xr-=&S<39CsO5S5??#ytNaxt9ey)c;zxplx5 z9L~*#04ekorQT7!oaBEGN*B75A^C0#a#X8@ARP6l77`uUDt$XsR!=ZvZa%cQDl!l= z1N=v|T9ui6t5%6o0UqbprAIl~2pQuhqE;b?ByrM(1e1~gG~W6U)t05Ec2WX>-n7|p z?x$c!QOVC*YUVPau*)7YX)Ys0lYY`0sU+0hUdDXa)e@xp7+`XH)K0DDZ*HccxsjMJ zmKc%Mg*|SIBRrWKM{3pF(Q1g_d2&eOrfMlB+)9k(P?L#^Hc!(Oz|n^-&PQrn=m{vR zv4?!Q<2!v#7{c<rk=Bsyl0peMZ|<B@7b9`s@{Ry%QrORTVW)8fFD=%9(mP=Ac|S^w zxyw47ZtqBDDl&dy(34P?E~b{Y<6?5mbHF|6?Bk$eOvx$r>F6ne1F$6H+|?%UV>Y@H z`GFKRPJKOTtjJ$?m%AK{)KXwMF2@3;j&!+o*b1(3xc94tn_^p#$tl1D0iM+nLR(;6 z*{M9yDxKeWHaMZB+IIyY`qop@dX;ozU+KPlWmE%`&TEpr(=II@Mn%dTjlJu><(L96 z38=5M^_VauZtA2~$)%w-Qqi-7(|l1bl+mTiNi1U@x^vU%U3IpzX@2Z2*o8dd>nB&y zzSf^O1g|Riu5h)+lPDw|gz!M7p6waQJ*{gVkg;_KjM5}>ACM9~4RV@SjUj7|mvKBm z;0Gr;HP%|(i-H<945y(cr<J`*=CUnhugjiCb4c?l%&5l%k4i?Bqs~who^w#mFPg!R zA4*#bV$S7P2RR+_)}Xn=&y^=`JJZC0@=qkwBz>9BH5b%sH`Hai2Ac<`TAWC|a6#$K zM+jAI;B}-_V)8RL%1%eMQ{O?W^c!^nmj<PR-D2BJS&J@1Zu}`51%nLk9`v5QMJDB- z>(P#PVD_rviHz;e;ZC>#z&z%lNea1B$Ud}`kuEkgRQ~McOMJP&uU7E<!c7X+X)_j7 zVOy<vR4?W%qox-Ey+cHlwuxqp0ReiSYVL%cwK@5$?u*m8bvqkrJ?f-6+^Wx<4qF{+ zONj>1$OtB@#@Qu_Bv)OPuE~>Z&=RpbLgh&2rW<71*}{%J>ptFdyn~D$hOB*~U<ydV z>57-=WTM(7MqfF$<i@0onv^lP&&`B90ZbBtyL$TIb)dF>Q~(h}*HTwE%$7vlxCe@* z`@<s~f}3&8TWN%wlmo!@?^N7xZM?4>ijdViuv`f;LZAZ&9qG>=HW7fm#X`~q7}|L} z?xbl<jpz?yR+mFrE@g7g^*f_yJC95Xb-ZE~CnUM*PfCV46D_^Kd}LC^Hs&PeQ=hsj zyTpX-TaAn7j1O8SI8`bKCZbuSkbkQw&M;}R&9XC-y9Xm3s#Tt>nLpI?e~Qehs#yjh zi$+@&!UZe~ZrY=%#dd!cWDlz8prIIriE826C!K<VK<oFhUC?UU_Fs`S)3f#cN5})l za(8q0syL)k_m9jE0*8=BO8JT~aB|eZ&@*m%qeGnJwKme+)qBjH=QDs2dH(UGGq;pi z1Uci1h3?~xUv11KM<ut4WS3FGRa$t9GVTO6XmeH^?S0EA9yvD1M%-s3)_~Y=UUQRG zpHP8^`sB~MP@0XplfLFGdJ{=B)yazYZ2A`b#%Ta28;&w5+y=)dwNV<Snfc_qgg2s| zC_1gVJC=CL`x=R8^fYSmFRVeF;j%H)(vuIjAaD;ktoGL}V^(*#MF4U|R+nG5Wek@Y zL(des;`*7Ww5?-iO~+_axRZ`eJco=B$_E~`hyMTx4X*{H#yzS8@gxp`7tJ_s<BFbT zBGP@0)p8K$f!3o8MtC^uS%bwkth+=qnFk)#5%E}7^2Mnuk6Lc3i)k8sOJi{npXOp) zKf-!qwe%~svY*LfS!I9S^U}EW@mu8VwF*0KH3$48ZktK9JBK@icdR8^GEVHZ3BHG; z_=`$6iRK_HGWH$ol4F-Ew5ut>2CGN$V^VSD9XVDgkO3h-Gd61?_r-dJ{-Yf06i`A` zmR1~=r%tL(CRZfd(Hr}Mmi6h)Jz_>d&tB%a#@DV}B%*G~;}sI?dVne#Rbi4y+gnPk zYzmyZBdZA8wy(?weA0-?;Hk&0a;>S{C_7(nd8+psrR1?P`R(h+6_TwM>}4u5ZuUDf z2bZ{p2acU-k;dCVR6F-|BeijlsZT3zj_Ko42g%-=FK+RVw#+gyoYtP%K7>3yMD<5= zxk$u~w3F1*V5kLpdWzxg+Ttbh-tt-0bS`-mHN?X>o<-f;bxf-*k+g8`-tpZRjAU;E zKBpKo-!c)vo*bX{>x2r<$8?U_?pmEBQ638C-j}wD+#`mYM`tzC#G^7R6WlddI)p%D zb_*T3CyL~htVpU!0CeW3NddqIBeATdUfLudRef32&#Bv_tsmM`XaEKVn!44pkiTdg z4jZ*{X&S2#>M(jzyb-wPprh*z=(IXMsJgSXkHogos-qpm_Y~MXUtneO#BR;bNgNDU zAroQ9sg_J+;~Dg&?O#?y!aMGE2gll4FpceQgX1|1!KROhnrnQ6PP}aJ7>+BGCCd(^ zQ(i{hh0hfdsM@hh2EHcFzy202tZr0TyZvcj;u5;%I|dj(-mW)kl#|f<(y9d?d*(eV z9Y)uge^iW-)&Bs(c`CNyVmatbR8R2-P-i|~pKL~Yxvp`UwvccLqy*!3Mh~SWQhVHQ z2~DMRbO*;8!_Ob?tnK4D2j$7lM<<MR$z@erm}5*faGm>B9A%q!_8#7}{ox2bNfbJd zqZieoqOqs{00}O!ArB^?*&P)ZjMEcd)iw`1QF)wj2>@cV)Uxsqe9*S#n|M6uG@VCn z%|5Rf-6grIy4J2GlgidE5f~6rc*Rtf`&5-9j^kOpo-{cM&rwM)O`IP1sN|G_%zp1< z?^3EZ`L1-VH8p>A7TWf9A%536MIGOofXKpq%`DP)=0j02WyW%>dFQ=O^Q&5@;4^hN zsZ)JQRG}TxyC6uVl4q7_rD9)lsB?fSXNmxsJIfQ(IjF|qe(@mG$PQ^=-sWa5H&*_- z4f{M>bLDV-X{i`Op%efcJc^Nn9swslw2F+Ulla!0_t@5qB9_|^k8(cHRk-9+nq-Wf zs#NzNb*QtM2N_>lmPv5D52a%D)VU>nwGFE>lHZ;w2qT=6?rD*d=Q*d$On4uAC-SPf zos-cL2aq3_<R0dfISyNr4KT3)XPoz;q{aZ_J!-j|*uGV9%v*AVVl$ljQpqHlT<$sU zDUrxQ!5wN$7XBg)M>lYk6VdEHA23tTy)$u1TY|xluS$7{f*Wz^-kJtjllW9!Jy6_y zg=Q?k=e7W(Bb~X<c;<%7o^wdK95RqkN~PVDtd-Ch*#=K19jZvDC+`eXQbW6H{<R_J z8@X(Dsd6SmrW^UsUc#Z0BA+mJ$M<SXgCNMxItr1)He?_G4k%Y_sX-OvZQ~fh>&;3e z#xM?j>0UC=<`28u6y?ClVbi@5y@>Z#mIYOG-N|oCa0PNn7y~re!j>cE9Mjo$w@$va z`9_;sEry8$o&8s)X%)da<O&!LgN5{|08%lW8quu{7P_H~OXIQhr-=w$W1m`KMpKWx zDZmvYAfIDdDRw4N=G3F9N??to5t*<$FIvy=&YJc=5p7lAkwLdJ0{k2`FNo!uD+!w4 zcbKY9SDYH!@Lk0E{{V?}ORKDz8qA}+jl2$+uBckqdLAWtCnXlTn)=$hYmhgVL5u(h z?rW}S44WJSjB*dHa@wJ9?dSm{ubH%0T++$6YVtkl^%8B|$<;$7L9v0H3|3K*WjV%v zwWqDiwIWWeTcE68JO&^s&*@oBTT`|P^5|PoBQ8ngFAH3Midgy9tlR*nt#pZTAv}Os z@qt{gisv(5M*}X!RmVMQEcZL`+Ehuq8LS#cQh5WX74^Q4bRzKnmNH2;$<ygyCdHI7 zGPco>2|V#%MtBcblUeZPtkRG?wcEkt9jj>DV~aJ6l;Ymj(CJXInO;@g0nXD-n}NRr z=3{_6R1?a;Wc}{dADHY^5LgV?OOG;Vf|a%`Gb$q|UEZ|=xojR4Ivi5C$@zvxc&2ai z&dgz3wR5G{s5IE{Ng!lxB<?5DnZs@a<&UUgNhC~w92^tLu6M>?5p;hA!wgSyC)Fk( zMQo#jed^R(*2b`er!HD*?BAB=7;Rd2l_ItPw)svoit>*ad}6rNZH<?Plk7kSNiQWC z4ep}2-xTZD{y3fPb%$tTSs2A_YTFT1jx*|d)^xr^L@JPxZ5USiRx+11iJw=4%W2bU zb+v2m{{Vyk01PtTIYfeMtA@P0Ve?MsCB109)Djt2_p2BQf`C?i-lY|}3lbB7!XU{t zzodL3*E~^a6t~w=*xAhd<PjiVpjR{>yyF%9f0^G}yeLNRPhP*%Ia}Rw5M3jkOrR2| zIb&M-CxJXq;;VCU7M~8C5E%0%e3w5;_RR<3r-w8amU~?~7q}oN+GiVy$6QxIJV_35 zg<haXz^<sm>sP7s^>b;r%LwV;sq&7irt7)^km?#d?1=kJk&N-{O|aM6ImD1%%Vlsd zOkwt%dy4v^?l`7WvLdi?&heV$JV)@u!~Q1n#P)I9Uoa!>F#Mz1v2c=lGmT>1t!?+e z_1NPyj}+)$B-3S!#Wun@n+px(L}5VnqJM^(UZV=hpe%QgO03>u519Q0Vd`H8waX7X z`#qt*3H%csyjDho;-3@v3hpOkHI%3dBH$Dp^NPhm#kAvY?CbWISGu?1Z}@WyUGS!% z;k)LF=H0|B*hzhV3Xaa@tQu&*&zhl5dRKMv590H9yG*sThfGMNKuni143<9C=i6LF ztiyBnt+v+wzt`Mm(w3Ic)3&fB)sT(Hf#@r_@cx+{gc3}ty}}aA6RECON{Mcs*#=pi zfZN>H&>spsFa4o+t&5aJwzaV=sV5wo&T+a@U)Hw%zGj}}V%ECf^8WyUa-IjUX>Z}$ z%ogR95FST0=${n+4L*h7{S(F(npDtvjQ00;E6NrJgIxE4><xyjZq^d%Z*Z)tdJG!$ zuZtcg)pd`D8jhO{^~`#D+zAD;jH0otj8e7UtAEG-2jXoCtCng>T1)j-{Ew8pRWsk} zA7i_d%zyyJ8=<auQkvr8RJ7BrOvR1}>49Ari>%rki)q=i?weTsE2Q{upxKxj;K$}p z#|7B*t)nZ)m7~g>Tz(x4KMnjMy^}Ies0hR0{hx2$CcFOt3HUYqI?}bo=39p2a6c{w zO6jek0rzzJ3T^1i@JRYoaf;Z(oxkhT^&ce57*Yrr9Q|pMUP&~eSZpA0PfDdQGffy= zl?R$xu3zl~%{b2(0;On7t+CO)$SD}kPBD>HHLJ*@(^+GXw1s}{Q&~5C*CQMZ)eTwY zEUGvo2YqS3x+~pWEX-F4@-S>4n;ng6z_2r6(TOAhgIRib2@{C+g3XfNzO}Dq6k(%h zkyTXpJ!@DlO%O@lA6T9k?gW~C#VSu;-Dyh7$8*Majt+X%XxnlJ%bsh>=Df5z+ezr} zVNo|G27Sq;EtS|hdeR}z6rR-M!P+uCNj0t1k)7^^@_%%^0(yf;cu}65)3Lm41nnH; z(iOoRjk)Vlxuvb68mW$-H>cKt6o+PhP&qWFOgU0^jPT1&8wo3x&O4f|b{4Vq8zZm< zheO_<y^4?l9=y=|4$!$LJm!^-)(lSEo~NZtZSER1sM7`lo}lyAr2%k21U5L$N9C87 z8%YWe&JPq7Z#7v-{Afw+_Z+Oy_AF6L4W#un%&ygAkPB_(RMV?Ss-rjqo+=3tI0$zF zzczDMYoZ?C*K>sUxRPAy_FN~I6o-@6yn_BT&eOvlF<#5@S##l(k&|?3GUVr+n(>Rr z3n5I5o_Vf%*INGoTb;C((|%+HBp+}EUYpq9Q9872V&I(p@Ny}$!xQ07A3T*Nqj0gY zRr~nPD;H^Mi&|_pQ-XG#qZlOm)ka){xDudl$Q5md=v{bXFmdlxp5UWrI|eXCQd%M1 zyB6VX+f)OOrAWhJ1Pp^w+Q{LQmB2mCTHcw%52k3B;!2gs3$K_0zCh<9nQ+oB97X1b zB!<sQagfA8@`{7ddsA9Jk~ILTV*t>tEmp%@40m@=-VCTCfk?$ni~@VpfGjpCImaIK z#}0UW1L_Z2l#|tz_puw2_);)CRIUR^0VP2I?x8?&fHRRz+M94kIQ6F+CwmS}Ey0*> zA+pCf&$Trdc6KopD8@$|9`wL6*aRrfPrYc;ZsJWfb~L#XC_OrpPj^{K=jA<xJ|MEo zfB+|;H4_K7cKJgOK}DYFjYjLxR*U3gyC79$jL5|Ew>bpVsWAvt4z%o+LOYrkg(;Cn zjlVezqqSHuvXIOO6xUL)<X~f=_osuuhkT556=`2%Cf4i(h{FVD-klOFws&mnjnx`? zT=G=sr8ZY)mt{nkVWghK@fj6K+NFzUImpFF$=$Vqa(Xc0g^+CkMsw1d>$OG)UTR|g z@|?6C3k8#GiVI^uEhEjB8$$!0-RO<VTq#7{Fn(iC5C<b;HvE%XDMw-=-TmSsS&MH{ z0q97kl#OsVv1T;$aVAQ+E(H$5cw#cXhLzgrTU^?pgtIC6zdC5Rc>^n^J?SPy<(DWk z(Rs~CtFcHq1ot$bb<~FJHWCCG8NkjdhC{n9#dF%EQWxbtIU%Yyc939z>`&ezw5JrW z%p}}(Ta6A~Ne3X(w$^1|;yvmz%%cE&qmq3pSc)`zk5kTRNpigkvwD&{7KjyKIl&bV zL{d76a;88m*e%mEj+-2T=}~n(NU|BWR*(?bQ_1(Jre-%P31J!SQYdoy+*EhXEUwIO z7!WD*7Uj#L03?m`87G`)6rA*9oQ_2}N<5&co#*cpQEv*wcc`7D(VAo5<{?7hXO^bF z1gJuD(XrB>A0vZKVZC<$03%Jdw;uY8Lzd54bn?b9#jsBVQ<5^7BdGjnWQIoE!0*T1 z#afcLygS+GC}m{?4Ej_ho<J99UP-6<%fMgMQWjBybCc;*nKE3&=-yCYGi#7CzSRtp zIUh4-fWtUFF-CJC7(b0GCAi{=B7B3iXNrX`LY9n!&wkX!eXK!k*f<+~>9V?`VF|(Y zrlnxeGv;n?csM*&X`D0stZ`3w8;QvzoMSu+s>~yE&Q$u<YtVPQu;9S4`SG@z0b+UF zJ5x}j<f;4I<Gn`jhxv2wP~TurPc}@$3PS<`rn?4RqlLvWQKZ2evF}bU$b?{E(4}n{ zUh3?L_ryod`@ZA7OEaqgulGO%W7eZcR!KL?TW&Z5)`Fp%J%vkp>9H+~^18Nuf}?H9 zp>jfj+oej5319{=deltCiBa=s^sQ~wm8dVwI%1TD+s`=lrl{M{_3ciRJ$V3itZF@c z!>x#kb}j-i!0LKZd8EWx9C3r5wDx9U!Tc$Y5|TfKy5_Wuv>QvIUP&Ni0kYe=aanqv zoRg~nm<?N75+ZOgX(m8MM<Dvry~LgG+~DuDD~o7Z?Do8hI7vIzYg^fD<8Vu>FdLAy zcXC@9Bj^JI*V?jmJrX;RJn%~GAT(o|*7_49`L4D#G;M8lOLmBWjDQYLCa*kg5f~Zg zy?K#__eG6NjAVr52_pN$(>1-J_}|J!x4Vg^R^!emB~QH$?^_wl_B#b7j&Y8AQn>_l z$)>?7U0eB)w)G>ZqyuVXo_p4N4Lj^E=FSvxP6q_@PK^TvW0DOvQxfo*OnUR0t@bo> zv(#&QaZ&l3TW~!)Q0<7>^SJh=#V%q{;Ai>OC3UGX(@|t{IsIy^bLIEA$RC|gB)@b4 z!8oeY6@uiUIPaQP>{ai%p$v#s<W+6h!3MoEK$q<rC4=W~<UM_B%i-gZoHr*m>7E>2 z`W>-Rh36UVT~zF}M>N)^gRoh4=OYynZLflQ^G}rtzy~Kh=An^YxflTPn(J*4qjF1G z);TiDSOdl?{zQ=$E41f|$WN9)g}!sn2(3umNUxUcIIPvKChegqoW=m#Pe@ed!C{<c zpfEC(Jf8Wh3j5R(!L41o1(5uekY$NddsRD^3e2PLXRTP3x2r5{dGA!G0rRwBmyDCi ztopl=$*3t}*<w$%E3j~JfrH+o^AX$~%$}x~a=Yw}w}agEr1Ugvuz=(eaK@&$0vXl0 zP<z#5!5=mklZucw<OFgLN~Z3D-HTsn^B7^ewlSK0&eT_4bB?u6IGZK0^u<_a1(c9` za%taNnYE*5jC^#zxPwvAk{Nb+k+E!!!o1Gvd1c1wT(|du#d=4_r&ZUqWFvzNgdfJd z%0TnFs-20~G)|{3iuSVnj_foeE6>gTWn%)!uCF8Ex}Dt8eUb!GiC#nQ)hUb)rzgH@ zL{unHMh_ip2~};Kij-4Y738#zNcOUV4{XvyYLT`SbBuMV#CT6ndI44F4)0n$qp?zi zU9Ly40Cx}0o-L7vMh<#|M5UYMP+FBomxIxbE`2v4Q&QE8Xye_DgYu+!FjbX!&myLF z83c7bX=HH3ZT)LLW@@08!&X%c3ZQPpFrZ*C8%8~aAv>ht0DIEBqxgD?cWDZA(<KBs z`@DP8WoH=*!~!}~QgBxt&w6=vWdQZ3%+u6L3vw`C6&L`M-_o3nMl;DhO&bXukOeSg zoK(48-J01Fi5L?}6s<Bb9N_apfB_`&iUg|)91gtGQZsQ|i{;BAvna@3w4AmneABan zMrpCLGLFWU<=W(u7EPgs8HwvrvycvGTV|d`XJ*e#nvKwxexL)2dZbO092wn*UTQ^B zKgOF2eB%Q(BP(ynkf8JemC73&MagV&O2cz)7|0pPrzzXJ<|KR53lc#=k?&V_E?bNb z<~A^M*wlw>{b|hppDh~#fI;g^n5!lV!CU~jJ;|rCgOVw`zFr47q(WOc;QP>8N?!;_ zxl(yPwINVZ3NF!(hLKo>DmW+jsr$(JGoN!)c0*Ts5$8B3nv=^6qbF$fsNOtx{3!zw z8!2KtgNkX`SLjMY?A#A0fK5mdlmYA3tHBE^ZZhRP4O$I>kVb1c`3~rb@(2Ktk9u}N zQ<L*k(Ra!7Qt%w{jQY|}>ruHbq)@+@?1zBd15R}jOo)sbiN<>hca)xP;@IP+JJKvb zZFcLE){bsn$egs?S661q$EJD;U?*u_-D%QEykqpBAD4wEp0#n6%1@h7OKpCb^rd9^ zRGwLh#UWr@*WQ*eLn$QVJ?MIxMJ>WMEWY&e%%cORtw|gz(J&qR(;dM=0}T7rZc?!1 z+!J=tLG`A(HsE&SJwc~N+<g5{<x`m>Zn7vJ?Ho{_LLJ_OO_`-t$ILsLY|%0jtO3F3 z4Lag@cdB`Tn2h|q@lne%B8|N>%~xFv+iZG9RYQK1;U>^e0DIFC?iXBV4T?iGyAq8c z4c8f@`>?aU?Q&4=*dqtj;-0dH%Jel@&;8T5RFPbVQW<u?bBcCW3ArbxgwfmX{x78? zZctIMRClQS;06YBPaB*Mkdsq#Z_Mt=AZX=M0^=XWNw*L3_3mmfFs43Dx#}@a6O#K? z82<pZQ_bAdM4MxR{O2T`p7kJ%Gh^16<<55u9MKt)Q?)=Rrb()DyE5jJmcBx<D!>te z+t#OxJQIw2(=Fm)TR1K1d8s_GHs(NsIV6gvud%Q>4!9X7)KqMwN0!ZA32VPAF6=Hz z#sxUbXwmcLZqMODRu%7|NJd#yuOC{LB?zUDJ-Mmpk#~haKqIYJnh`3M8-{%;+QloY zKkH!HicS=a_cbA8@|&}E$*OGubn@GO9{kgm(Eu6Talpx_yIZ2I*21iS65NtGr>)5& z1%?k|Xlqc!43Wn?)PLEQ#j;~<!@g<TLABhU%vDT+x%4KQXFE$dP!H)yw$Xyv7#*qd z#u3+mLF1)2bVZh$khSD7ZTa$8XEiCkgoC-8o(2UAXc@~LzQ786cH_-ZJM}cKX=KKm zm||QOB>H2Tak)hx<FBnq_OXX7zj)J<C5!^VA6(Q*Pq_^wu2pNsSx@fSf#4q0_Pq)T zXxlxFS^-_VP|-%C=I1`OH|)&UypD448QMtBLdZh#*P88gOHH07(=EajTU$oXd)8K& zqNU!k8BiKB{$r^=mD0f!jqwCU9uhyY95Lhy?Tgar@~Xu@d#RUq5k4)q#^+R%I6n2- zOa@6+Aa@nRJcRr}NE3XA87!ma1XpzI?Ys}V2PUq`XlDz_U6`7_6$F4|(~fJOdADTa zn%dW8MU^6VBigd%Z!0PkV2{06%T{`nt;?|JBS`j0%2@sGD~IvHk#+s;84x^UYv;Xp zizqhXutqwQSYHry_~h_yzOCgsFx>f0$<GI-YdI%vQFLlKR9w5WnYN$g3Pwgc*Rp&X z)Yjujmc)OrM=g(P@k<F*!yA*F*P;9_)}_<DR|1yV9I-a#QO-?VWv+)_X9YT3%XE8m zpfe#PhW_?yVHlBIZXkbps{tgt2**r<d8wt8l-rO8bJDtb?5))K9rYMw5h25G_U}=d zO8IP6oyb2bj%qi(g4rZ%iIU#hFj?h20Iw<Wm&GadXSma}AkkYoZ8yq!KT6HD)Y^p# zxS8_78$S_#DGdg1?Asezrn`N)nHwQJb6#34p6c>@+u6<4<gdTYkYuRG0D4ocEa9>l z-114z>1A!qbJUYrx|Xr!d7oy8-AGAQjZZvxtff)4WwG}(F!XS-_Z5d~x`=`%QsE-& z=09F3x^9WD_`3eWJw74!Nt<h36w2bdpNGE--^6lS>pJe_g$@Oy_dfOPw%UEIglQF| zLfR<)>P9dHD8;{tSn+YWiffjG{{VsLa~=}-Yh&S*Wt}6sygg-Mo_(vWxMYSQ8)M5P z9OHm#ScYt#Sn?aa5pczM0QMsyw`o0(o1IxsSE%ka(MAA}GM>VjC~`vJ;0kjO-VuO3 z#Uhiuv2xiM=7#K3Ng@`E5WhCz-#v{nt%FIPz4@tR8$Rzt+|+o;++P{sVxh;IR>5nr z9n4B#U{E$kIj@{PFzc5W9xeXMiWP$1+=kw*oReQiU*9E-oz2XVnNr>(D=$oeUm{=X za`>mkch{I`#l-C*BOL8c)U`?J{eM>b(GqXnitqVp`j#glhy%4bomL=Q(w%c_<=ir^ zc8)VqPa@?|@q^y8dun<q$=yeP_+)fm7`oH#uk7CL;6#y~**qNAym$}dZ-w;l_((3U zE)B?*%-e-kB<}5BK3G5uk%;4GW?(b7IIio!x+L1Y-likdwM(H4Wq^h-6YEhaG@P{l zwfxq<Gkwy(%f5-deRev(417>cCR>{*w9DJ*^(jFT#-sN^dgnFj^PdrGz6kLF(==O) z>tu;;ipdt=l}9|+&YBLLsEuSa)>n|mtib`0WAU$}{ugTdq0<hna>Gs3W0J_*rRj?Y z9B1*ZDo!dq)BcxVov-&9!Vgsb9T(46bLFjfQn=Oa;CHb$tQ`LB_#(RxhYC{JnaYCX zwlh!hPk@D%wWvV=h(QeORgK4(c|Ns)VRJT*I>e6>H<&TF<Pn}~V=iq`g<5muP416j zw!mJXZeBjMR2COPH{iFgdXG<>Pa2)b$a)n#14%O*nb~)bF$Os6Tk7^X)Kb)r?mzUw z8iyN3S-WPaBguJrz}f)neX7I{Biza#JJjG4+*Hw9`Bx>72l;+u=qoh!aWicz0FAwO zIpkJ-_3xiB$I8HAm+4w&<RLBB1E8#%dsUL^Su#rG=QX9RtK6optZP^x5v~U8jN=ul zrP}?YP>wbVQO4{ZK*eR)g7PB+h2(w}+UPn-g4^wZHkbKSk(`R^gkFfwQo7LV^$#8R zy5~}g=SP}5Xcs<gGK`rHFgdP+!JiSX^(|s8Gg{M<+ftQ`e|v+0oQmUoOLV$X)8e<3 z!*w*l5s3Lu*0gRT)U_DkyVO8?`&*SUOBWd*U!{495=&S3e_f9GMk>uK9=VaZ*dClz zoE0VbLORu3MJZ?rUT_H&Kc2EO#&U7a2&mYVeaTV7N3bbTj`Y*DKJoercznO9q>~eZ z0NO`P_oH=izrA7RJcVTg9Z9B^QcD02xuycx!6bhwM@%kvWMd|hZr<=qxVQ}<I4hd5 z!bk?v!0}a9Mk$70lys+wjxraXpwdmPTNI@okn`n&33ekqjMLeekV_s$7agiCqA(by za(d>bMO~n?3<}ZPV2irY6f=?Y5Ct%jT(Jc9%`2;C<!_}lZD83yJ`FvIvyyM3IbVtE zEzgDKjdp}qSqR5^@XNQ{``ti2E8jjK#U!2+yH&w`p|kX_0=`n#>QzIQ8@W9z3du<6 z!^-WhgiHja?R8cIIPPh#Galp97$kM3t9g8d86yOmbTTZTBa^q(cdk{njrC1Q3Fbtt zlu$_>JJma}6UbB#oOK4Q<fCI4AKo<C@fx$3)tHPas#9;Nqj%N+09{C+!ZPHOo-vA@ z&?p0GIqRB=C1Si1qdCn<g3=I22PY<}+hiM(T&jdP49o@;W|@){1D``tJb{2^$v(N_ zo&=75atI!jw6>%zNF@xU1sDMJ29hKD!OjWwr^w-ORd%0xiapW>{oX)qa(VnI*}aV$ zzT}2L7=eO)DHjbYo&YAK@;>*<S8sB9(-&^+W1o7YyAD=pSx~4r=~axWC){p*#wy7y z>c^4C=THX9kaM@72el2^8MfHvbsI)-<YN?`V<O;S6UI$8GnWUCOw_V45(AJ2LJd@H z@gQu0ozd}tK<+9<2VrB5yi%f|+=@Xblaop2e5^NZ^r@ZqCARhlW3vQ%<I<8m9(o^B zN{zUa_rA2>H4xy8)^EEUedl3Ogq!kqV0HDV<3)tzZY;+jwMw!pzfwn~NgsA2=(O(b zYn1O7VF7KRu;<#HGNC|KvT@LLrNJj808bbch9Tvgo)70#tzui$iZi_k`?wh7^O{h6 zvIK;eBLmu*<OKuEW+9I`sg1Y`=Vv6Gb6M$q2PfD_PnLuqx=kdk8H#{g03F?^buA=B zF;J><4Iq)5JI~5{3ert9HK^3sVI`dTg}6{EL77(>&m0p-ko>!mf#)35Wr%W193JA7 zWZ4o|T8kKC^1cQSH0O^TugYpY$|u7_&T;p%PA#?e<n!OX4o)Jzqa_R25*TxuQh=x! z!1kuAD+9Rao-<E$DiMnVlh9L==S9Wx=tpr7a2bhias@{r-SeF8Ju%v(Y;Nn1#+Zz* z<P7Zx?;ezryl-Oql14$?2_?GoQM##+V}nu{(<OlfR5P##<tK6Gi#GKoEn7lv1Pp?N zp7i;hRn>`HcY2R`z{nZL1k$WKhCv6_O=z{;maVHFy+}JwK|D8OPRWRN$)(TA6oG(p zF-&W(EaCajPAVj4sVAAV6OKJ|Q3fRLQ}Y^9=;Nmcy+xld*!DGBYhzUw_9yZLL*{MF zdCf7MFd1JXINE59U6mQwIL10+l~)NU3y@D3?MXXoL|<?+E`Ds}jE*Tpn~w}~cmUJd zKRhD&m@$r+rb`$bLncmg2&-~ZS1Q&bjl?CgIif@i0naCzR*(`lg;R|D!kE)D^}*l{ z2YOm3sGNDWD!i*JGK}sW$4X&{6*)CDtf}Y;rsH}NFg@z!G?$qvUsa)7{aN6Cl+c~Q z$vo8Yxx*ZS*vB;zsSP1+KN{q7Z&LNJ=5|Pd1DxWR@*{)62hx#Cd1@KDQ(bp5g#_ol zYpt%(TEkHQ=PjQ?Y3xs21D|?)z#}LipIV5pEZ;6i*0hScBKKgAf^r95K&9P<&H!W0 z5<|6=ugVW6G>+=5s#pWqp7m3=K_(21*QeH-Bk{GHB=xA>o>DU3DC0DuE%`hg`qwLq zY@6AHWUQS1+LmP87jNfLACvD?VaY5Nj^E{4*%~{vN#*WfNzc6_jI#XL1GOqH)Y?vd zw4DwIPg+h^*%_psuVI{$a5(p;qK&!f^`}G>hUAk|1za9MZ+fLGtL#&H=wj*`Y;&s= zLGHNV*C(uaafG4mlv>D0`Wo~WP*;Kh&J9(%i5YgV-mTlcYjoD6{7my}J!4YS3@Xwr zZn6;Lu@&8D{v(f4lVrhTm5v8I8qC!67_NR<07m{7BDqVeJFPXH4sfR;MX5^2n{xF% za}Br;x;^SSpi&Ng@${|_O!2hPA|&CZKzZ(QU3Q<UTI!x}*`>=SGaGQ#NpotnGUv4Q z+?<?n1reR{ACow!<Z+Cg{{Sk4JF{VOGt^M^*mA$bO3r|iG7f&VSytYAhS<)|6ce~$ zW~Dhz+!E%PvN=66dgHx2y_u_8Xij*AhI0LYuTb!y13<O~$ja^>mE|$M>y6|0X9qd2 zQ1Fs@`W1%oL#mJnZY!diR=Le7d)6<r<u~^{)Mbfqpd1mJmUzk?po~;IhCs(|)xNj8 z6rPBdMjM6>O7yELeAOkff^mV?sLQ}sUPrEK-I)@Plaq|~p<O#5iq_?o${ngm1Ju*l zDq)B@sLOeb8FSNVQ|nU&+;UWw>74K@Pf&7;Rzim(XvW;|DviUUup0}OCy`es&KGaY z`Koj7Ab>WU<0N;br!ImSv!(%2`qZK&jH?x91QC@O=Ant7%=x(b)sHi0AawOT>V707 z>{f3qt`(0?bK0kd94S0)z#|5uE~Z@U&VMSI<xc+qBR55<mG&x5_7t2bDss)(Q(5|{ z<$%elW0Wq@v>tkzV`q8kxaW~nr1}}%>vP9GJS>vmXzmy*MvOQdkZa2P;vA_5>t3Vr z@>3S2qsB%vxQ87N9V^ToLg#h|y=6Px^sw&nzd@{==c%Ud0|%j`^E{>_gP!yfu5wN> zS^6Ey?2%u08S6+u8NsOEjFIV{DOTlTWzRYFqfnG@@RCM3?~~q%BMjcaRBX|p-i}W1 zQ%UCzc>HNz?9Y|0SuVf@G@d#9DWUU>8f=7u4r*<wv|W(oCnw+5kidTXaZK~ZDMaiP zoM-D+o|Z*8bwtRS1m^;mcYJ39r9@?NybNZAmB7hfX>)32C8;u!`N+n43STG=_&)Vr zuDRkSZvAPdRwJB@_B8y(XL7(&I4AL^WHU1L_p0jBkU$+p5+sZFcyB{e-GQc&G=pHk zsTHu9s8q;Mw3yGZriGG3Vh$J7(af0cx|0c-Lxa<`ImYp|c{r-kh6CQD3Apn652>o( zQd+jQAIvA5jMIznJE|EX1oGvv-iR$vIC4k57VJ{glgt<(g2bLNODjhh2Rlzfr`DoK zgUA(|XFYRIlG+AxFkI)ZXnsU<B<wigfO0YQrv0G_Dozh-8qrK)j|cm-c`LAugK+Oo z_ce;RsNjwdKBkdm$v-w}BV3?jq;{#Jk9h@CZ#`&R66Djhgbp#9U$w^w-q|Oo12jlB zwi}Gmv~1vU+|b6`KqchABz-AT=!1}(*U(bn00=#4!IX5z)};|P_Cq4N5a(oUNjbsh zpXZlt{#ji1sTHGBw1JlBXqXUjjD8d}x|zZ1Mr4yanNK|pE+%B(w{o9)nIZEqc{r!E zBYKr$xb0T$(9z1?g;w)+<Y0T6at36>w(6LozFQ*{(H0bt3GJH3cWhkBTHI@fBO?d5 z0+AX<B?Dj|TC*5(I{q~1<6Q2+&#h8gYCdZfzRK&6SY*<zvmhkMPHM)-X3h>MXxWAe zlb)2;g+^sYRty`=VeOtOOM7BNmL%q+YiCk-4yU21p+Zg@jyllOPUv!yZ$bx)pvfcN znAUJgrDl(KJ&CJKr+xqdPjgD?x7><-bkG#8im}+hqzK{>fxzabXvXYgH18<N26*pI zF_n>UrGf8K;+Ddb)67Wi)pru0XZW#5Y+^6J0Jp6nN8Pk%8ShWr!yul0Dwz;(n0jsd zxW+vwCOnkd+3TLv)F*c%H8BEFkTLFSH!J8{R~p+l=NQc)oE9p8jyjrBqs#>IxTiAg z0Y))S$*o5AvP63eXD2lD`4=Pdphf`5;*|#@0RA+RDXCuUd45M3snwNGvlUVAPyvSL ztt_QvO@%|}s5F|p@)J)%&J~E*`OhO1{iaL~`0q`MMMPM_s_hsCoF#Q^uT$QyLkG;X zWtg<rpDKk!ykmC)v?cJh^}C=lTF#_r_ivxT)=OQ@H!R#K&m3mDZvg5#H;2;pO+xnC z%uIKnyp!|AZwRT};+<NQ)rT*`-9q97k*~D)*r_HW$9FZ7-V)U9oe$aGW*~+tc&@%* zihdGLnY9f#t~0%4rYFVU4u;(g<*TMKhsma?#a&H_V=6oQrz(6atFdjir{?1<Y0-Eu zR@%et!EitY->qyv#*G=IV6rOl@`Q|>lTgd?!%9n^zcTFL<_-xJe#SE1L;CF2(YMH} z2ZJ?f<y9dU1CxS!RiF4lH7RgB#8OZ3DHU1&0BD^$Cv}P&sZP_iqKh2WS$;jsaJg$+ z$5Wgu04hD2z4?jy<ym{yHva(OU0%f@M!L2_R1l+*Y0dDq=28##fJevOD_q6L$3p_2 zFGiYoE5mR3hqXZu$D5fzGib9X85x_JYA{cl_aWECKZRWGQ{iN=vb490^NpY=$0DB> z!eu}m?^-qQ<~XlCw)oL_-b+2Iq+@e3%_$^(DbxI9j$3Ik*3QI+BbICf$Q5479NKDN zv31mYe2+#S3+!V#H+%ElWT~O}d!iD;YqwL5naz1rpBbS7SGILTP#?>5!RDa<0EORh zGl0Pf>XFs^I6Z7+@iiWjm5*H>1kfQnyvAkjH*;2G@P~%T3@$dX#uS{_h(E?TB~)<@ z&f-aSU;xEOAH~_HhCwB?lD`{O4hbJx)j~1oX7LqgqM7bD8djC2Ng~;9GOht)m<F>f z;a~Vj8t3@@y@!s~!~8k%WzUE;tJr0Rcp_BXqG@;M>0Xg*8bXrH&D#KCrb^1zI-w^$ zS;^bXzwn)1?2j34-%9F<A&5N>QCx<N=8qiR%0^;6&uZ-f^CvI2a`)qk!K*Ijw6r<R zZ6jIsY}{DqajcmXvvbn5HH=HBNh2IaN6I=@F><Yu^Lth;wt6x5)!69+ZP+tiLTSgu z{{RlPs|#j{BspNms3X2BmotGd+k?j<v_2nepJmi;AO&TLO~9dSAEi_*nae7^&T38R zbH=n;2~!hG=Dba?$ObY&=DPhd{jILP*%R!M02#)36-VM0i~j%!e~T`lNIbiHq9%-I zx$9M|^$epG!m5n(SZysfKBnJUrDfFmJ3-ZdwR|&Yd2F)et}~2e)3vQ`*F&^x%~oL) zBas$z#=M)u{{Ru&!uCZQ_u-TnEtRvo*XdXqzO{Mcd&axe3n2sqw<qO{e~oJ?D_I{u zM=hy2{_$BZz0000@tx<4-bjcxdRxEA4@PzOteECoJ7$SvBNzy&N%jD;Kuy26?V3{f zm9~JMm0r@`{{Y0gnpkPcA(6&jaGxZ9jbSc+t5fOIp@fGgL`Qq9&E~DWw0~&6kYX!j zIowZk?Ow6qzlLyW7m(_@#0xH?w}@Bn$DdK_S9}fd^3THx&pdG6YFrPs732?U>{SeN zmXPE(868D$2*xh`Pm#uBJ+pj`+w&z>Ngr;|s55}07^X1T*i4`IsZmMXLC7bANMgbV zRwefxz?$2w&nazWNT4yt3+j7N>=b;jxb(=TvanH}2YL`F%7c(SXl->Dp%aCTiD1Q# zUTLlSp^!K{;MB5tdrL4Zx#Wt9NgR+)HXQ99)tt4^Hybh%L2P`(fmL2mcA|~A=B!9n z`F6+y0~Jqtx$`=y<BBy!MpilRh;Mgs;cZR`q%rxn&Vi6+j~v&{UKfM=J55Qhzjr)| zv@YIpUsdXiBC(oADxqR>OO7#$`CC@FORMQ8Mqv{iBIl01sb5d)%li9`qSBW#?fSCU z+anA?1;IJaX;N6kpqz8lHG=oc6ZJfGHEJ2mv55`>w?kPy9;c@TqG;_jooV#zq-ctU zJb>em!o3&4pBuGb1x0oCYe=pxZ*AV*P10@J4?~LbT{OjTiRYc$56Vf!XhjXXMI*}^ zuw}}zZb79u%4*lQ{6G2Gn#n0G{{XM+V)Pomrne^--dnVc$IdweHF^z4T9Nh*X3xrx zFBk)qZ&6&W^s&a6Swp$(wNeX)X8C~xbSA0AH>%Wh=ub&TUw`5LXGHhDB$y9BQ;unQ z+{l}EXSuAY=GQd&#FsHf%2$oUIUcnEK5${?IBa%mT{BeFG|Twj3x%B&V5QLBFe_Ln zMO$CY=fp*%-LL&={{RH`-va#lI?Tm{VExnUT2cQ1$Lz1Pgd?tbs{RVsX7M+L;gV}; zEhbkX)+536IIAfjN0`50Ye^=r6!qKjJh-)>;3F=~hm*l1(QOz<Z{8ipusv!kP`_q& zPzY1Y8hi{}aVys#RyMQH&PmHhu<N0=W(orF*!8G9-z;F23Qss3)VESCygRTr^c7tb z&B2knbr`Mele^eyr{rnb5i6z;-~u-umFZp?yoyaaD|y0?Eq1F0uQ0cNEgAa#PZhPL z-9)m+#mW~OM?7Y_p!yiiyJ&h1uZnE$A^R?)3$TwZ`}lUXYUx&yUoYD4Zxc?@Etog& z9|V!pn)JKKE$*3`Ye=Rq#!3w0y!+y>hF?+BV_4<47D_Pils$WA72{5F<$T}pPe+|f zR*s+6r+udC7FwJSHlJ{}cBJznHbBQ}wn|KQha|5U1Df-Xg4$p9MTPrGZUmPtpOuc! zs1@k|ARyr8l1^<&6*QiS=nH_uo_h49R}4uU;9`;Z7z{!BQ;Wu_)Q0boPD;-Em_7Fs zX#<`IY)~<<sa%6glO_fZ)BIGZzELo#EI`O(NzG4WT$^iPjxvA}c=x23i34pMsO?V! z3&#eC<XJ#0er}$WMpoQhvL1vwA@=7Zy$iHRtAIh|=8$E*N2Mz^*$`mlcQtRwt2o&` zh6wpC8`ObIG=WTcAQEtRqEnHOGxRjqnPgp~?;34fYfTa|d|@8V4^cygK3O9MzID8X zR2`v#UzauXj=yTRz8}=#*c`kg1&$aI>0deAgov^REwzX_Ijkx)*2a`yJ@o#Oj%H+b z#$TLM;JF1(PfnqSN_2|K+tlELL*iB>41?=j?_C+&*5!!jSrl(RV&kY46o9jB^&C}L z;AM8&%z*w>uW;CI><%|5sg!!X2-fA4C0h^1Dd!R&-M(8KRTXvf72Tv9<c9B8T4yVW z)-Z#e=dBlMS!yegMH9ys8Ntap;}t0-;y52Rc&O)QnX}G8&jO?ybGIjflbX|A&0f0q z{{Vn6kuKB@p@%FDCI<4DZ1oM>idTh5c|KAHTy>}<o&3S&z7I{LW~Rzc`h>P7!w16> z!14_t2=Z;`ILQ<VWn~25<BpW@86S5{f)C?WCgQG;EAGhmn3V8aJq1R}OJ@WhdV3HK zF|+|gs~1Kbj8w_pS#Bp5w=0AJzI=e(@lq*QZ2i^knp>EIx<8l{1)&6FXLuxct!cNt z%-GZ!X(S8sXBnj+%0_znRfUYSWzWn9Zj}Sh77glzF+2q|6L)^=DeO5x*_>eKr6jWm zko=&#a5$$T7I4Lw9{HxeB#@8Fg)U{WotOu~DA?RN$Q)CXc~&EkIjG=5@|7naN|rz) z!UOXj*`}}1(QCNCrPnRF7@pMjD=r2~qK-4v(v={f!6CDgo|FJ0#^bxbXp*>|uGbjL zl*cRdq?i(gdIR~?zIu{)=9o!#0JjI$rq|VtD=Q5Qp#ru;5lkodXN(ijnw9u*-yQ0( zE%t-EBy<3p6jxElQb?GtRWM6+CY65n+=J^)Xtw0_9>$u1wh#{)rsHCoOnWz&jmFmL zkx>%ykQ9ym$u%kEHmSiLw8<k=8xzCy294c`(P}l&GW@JWndoRNc-%SZK*<1Sf#1D6 zkfW6ko<XghtShAT8MDm$-zIqCn%j_U$4->-AUtu3CV2oZigy9up{P+?kDE&|2>sE> z+moMqiR0&XdQ|U~E9MfdjFDCM0vm#N9;DSS!OYt79La_Now@31S|$z{NHOV(b;s_` z8byDXI3Becsb(2HM@mguTd0$F+$Al$U|@cf>9amDg(Hk&oUyVfI34=+q?CnlK+BQE zW|L@$==5Y}28b5^A7fFo@4#b$??cM*IFr<2fE4Y?Aj+u&zG#%2US_h>TMkz~xL(<& zv}=+#6$hNHDSkj8kxY{dC(E1~wAx$fOOHapnNd&8mLr2mXLl${oUeL^<tL2i-kPQP z1pU*%^{k$b$flPq$=M9Ao_71vxdVVQN46=fWXKuV2&PW1_}KV8PI?;B?p~%#R#$Vq z&f$V8tgd%$E4U7rt1BpFC6sQ?IH;r{hoCj0O)DbPXn`AHU`Yh>Gg3zw!QJzd$R70! zfFz}|c7dFcQu*7I6g*aTv)GBs?2PUX3n5eKLrW?Hw<4r6D-ua1yV5%RySE&ARa*M7 zC()3r9jmzH_a>h%7X?m9rn>x~XB4>OAI_@lVy>FF)e;cJi1npjpD+jOLdv`VNhhr< z$?cA6C3I)j_9BWuD{)-&*wevg;Bob#q)ZLW0jBg~KU~zSJ;{D#Pa6_XIH$%#_2WHG zDayxb2aMAcY|jTCv|Sd}(5$>3xa?_!tU1E5{AyOqE&wOJH-eZA^JAf-eFmO`A(<sR z2LyA?SOr)%)%(0>6<ccgs2q&?fmc=XN-Kgo@mHeQcDm6GCx93b3C?P?@$5e;md`mg zX_sloJk%Ei`FIEB_4K6Wu7tbnilj8ERls5HD?a}KNRH)3-W#|*2(1F)W-bmu7$8)R zrbR3`2iCMwC8r~U)pR1N%?JiXJZ<k;78i4A_d-`}T%o|-#~;?cIb%iwFu3-|HG|?0 z4n?SkQlGuSD$BvDZrcr0jqZ@$AH`3pvO#kcXjBuudEHyqw@G%cVPbahMmkrP-D#SR zjc~p~mr^-n#w$Zf@htYT6;@?t`^P*ScB<3nV^+~=BhY-7JD(>Y^O{1YHQ&esxT>~# z+&9|^lqT`Y9=WSCNJ{M^ip{rs6&6IqO^$l^HR|3Nk7tIg)F0sOURtmXn8(ToQ(l$f z2W0T{D$W=HaBHrUPejZoeq&Iu3JC`^#wC{{uS$7jFsl$V>rwpqZ<$FP@m(uHCZ53R z7XePu=qkmi2)SMf?@%x-ayTCKB9$Njeq;JpPEE15V$z(cD#Z?IOERzu%t0LPs65T2 zf<-7{DP~`pvw{KXT5~6(Vztp}<|aZxAdKS`PUd~v181D_YIS9bO|3HJhuu-gs<#V? z6b9e@DK{RV_Rw2-+TpUSp%mbPIjd~jL0-G62sY<xs9%3twDHF2(1YumN!^h4xmlFC z$OKf9BP)-YAJa5~78xTT5!R7oP;$?cjybI&+g|p?wPZ?#!3CmFgN@mxWC<WUfd`t2 zPdu^Cc&Qk1fI%m?rDc6toV2myA0HtfZt(fsNj_r`MR{|k_amUMVEE&w4MO8XV=_nO zvndCIUU&VE0=P0?!SwG~&Mm%Xw>$9lS0hh*{{Ua)V6CYq1E;Mok^=2NooqFP5cR!D zIqII2$t^U-P}1rT8O|`PnvP2y3b!*d8!>b^{3!zNP%)f$#cQ>OmW&CxnoRd)r#-%r zAi%tlSo8sLO5R4!q+W(YL>rPgri@7@&<<-{E{uv6MZ1vas&q7wzJ!cfEv`3zz0Exz zR5?#gzpv?;o>m(G{b|KiV3z~yT5WTtF(EBv2d*8ePqyh$$A+*D*#0AvnugJvo!ydV zRQQoP40{TVLMrgvt4Xy>MPkWhG0+Ay`1OcE%2-5)-;qh{sMSYnS(#}fxWMc5r|ob9 z1uVJ7aa!-MHs6-k1@{Y4#jZ*jcS9E$#sxbksh2$7wlluYSbU)5@J=a>Y)4gN_*Rsf zn=mqkP2&LIahhlL-0InkB9IPFGn%XExvX5RW>fNH^CMWJb~xp>@m3_WxY!%WW+(Hh zn_9b)9o}Zc>^P`jSGk<+X*&M^67XsoyBd_Fo`YXYyTXxgBW@YtdQddWwgNV`k$ulf zkZO04kfQQUzL}_A^5$tdxRjIMG+jq>T9eqYG+Ws61-o)_yR|j+n~dP9f;(oJ3ry@c zT}nVX#_lRf?wj}=?)uYmT>>s?*ioY0rWm4tMtMD{$)`vGQ0Na_6HrSu?h3T5P~(i# zzF{6f{A#(auuq+>$3B>IlO$WcH}gyVoyglNgWoj+fbY4nxDKFDr=Gog)4F{LN`1?* zSVnmJLOwd2R6@%WV9E%p?~<cv`sCt}$VMtlROa61kJ#d62X`HKs@_aU+oO2{4E+T{ zH%Pb)z<N@fhL0%exMQ)w%@J02dYW>(mszdkw+$?2Vcf4A)DlSpCfH(l!94CcsBL#J zWev1?9z{qaDtTbWi>r~zZJ8v}TZdLy58`R1k<%*=m(3#Khy?-q)0KS0WhZShHFs+c z6GaOtbp(AgQ^_(sh{!%(xiwtGsxyK}^{HZmgCRLRhiZo_1(VT}wbGOKNcE<Dr4~R{ zls8NfQK;ni%{p{YG6z3OZLz4Q?y<5wlCRCTU_Zh!N@Og%RPCZOk&JOeCc;j5H8*$H zb5CXfovqiC-kh!S@_44g#IaW;v&aB+sSIKA7c})+GI?~^j!AasB!TTwh7I#&fgLhw z;ZEWTo;#X0fZ4`#PV1=Lc~!+X8x&+0C%q^pMi>NBwkd4m@TU>;0=#Fn4GT>g0SIhv zrD*<PgMsy?Gq=*4wC6s(>TJ!FY_%oAhQP@Otw>p!LdF2?oYN305L==5sbs`MXkb^d zsc)(?X*=Jb2=;IZKIWsBDi^=dRDwAQ62CTSsN450#sy9?M-*L-KI+s}KvZx+r?3Ey zqMEO?<8VINr?K3m0y2GRO6zi<)A&&vfC>Yhr<00v5C%^GcQn^oa=S3t^`_1uU>0Tp zy6pzFwws!#)FYHgTWS;N$DyaixVOwUnqZY9Wl+O8#?X1GeCR}(W-7$=!Ki!L3z{=l zBw@VMKpV47X;8NXiyi;~)TZ8DhDCx_2ePRqt)!LiO4IuCxWtdnkb%G*O*pYbgZb0a zIXs}v4A88d42ia*mL`zk9tA-k9_(pinZPZY&+#saZLGDj%&RYyNgKv-T11G*3J!hg z@v5t{GI^L8BNcIzO6#GVsmH20kN8HcH|#cWmBs<tQ;h;80~-}a2Gv^Ll51l8Fhh)C zxTYJMbbNWE7|Gz(H_onS3_LlmmA|W)b7@hAE3|{u9O9JeN=8{53~~l@TWf!6?oblP z9Ykc+m$YPIm3A1&WkZUWHqM6yw?hSV<Ym~f1L=`SG^7iG5#8>1u7pNWhUn$%*UL0r zSiA&C_VYrG-Oz!WySB7j9P*B>Si=6#@{2c?4mtuUr%eu~MvXvzGme$E6Dy2oBfT!w zAm^n=Gc8iKu~s;L7sR%<ksl>dOYIE3>yqB8a;b*vkzJ>c{IO?boR%{a$8IZ&lWAf{ zTIqz{m5&ayN~D`2mQCl8lj~BfrI#Gwb*8u&$?NG+2!xT4%s@Ve2D)!_b4#ts8c8#N zPT#Fqx0DnrszVO-RY*~{oDP*NGHq-QwUZoeyFFLnN(+nqL@wbZN<Mb?uWW!atYwu> z?BpJm<KMIR6WnVXqtBPO<_D9S_L$Xtk-y}|LWZJoXzZtF1nh7g8G_<Z7HXbrN3}sC zXz!ZqrcIWCfyR4^=R7XHX0@s?U{&PD9Yu8aP8=+1FoULPbIR6cut}v9a$4du&&w82 zI#w#UKPbq_<kse__`RF>lpGuy%a`XrD(wcjUaz^_uWgEAKPqk9u;kYXpx?(9xvJsX zIi6x;`Mdj9c_S8Jy-p9cd48$pXj<w#icwBZM?B`Vjg#KTpNZ+F$F=-H@ch0v@U^AP zLQl5a!X0;vmLPI7UO8bQkr@iSZTDRqV1r(-;r{>|*m!@!(#d;sB+~B0OS=T;uodT# zi1iIZYrielIa!=5o_VaL%C<hEE2%1!toB_;T3ZK|S%xq$52aYUzY?&tMUoX!z31Zu z)Kg5hu`;vyZQC@>7JFN*PT4LtG%VmZnAjL6n$8bX(Zph7LLANNT+loff8z-kbG#Ng z1I`^=*1fmGz8|#ko|=|gdNQCGXJeAb>sECAI^NnKmXV0<m+mk>FX2}aTLk5>D^&*_ zE_^006)a4-+OX*ERT&wSjB-lUlFPY+C&&rl9!V7o#Lfqo@}GKRF?m^hvaE*$n$|lU zZ(`w*RZy3}$y^S!C^CZhD7~}ZphhZznSNnYu2_a*ew5a`4_kYp2$baR1UESbg<yoK z=nq<mk{rho91P&ocYsb?aW!_njgXbJMC6BEg!DQ3)N)}Q13^=TW00rTm&$1glOr7f z&ovgdk6}KRDo#OjgV&&_USBRShd3v&tFt0JncL1WQ29F~EOU<ep)SbQ3d-A@FU5^= z<3#Y;lG;=cD~Jj|aBJr+N+vTD;4nYKUdQ`FM><7k8b;{>VC^C3ewE`$9%;)aS=*Y< za*KZJ{=ea@dNk<sMmB5uxBL@5?PesSFataj-mJv{3=lRk`BN?=JAp0#0M@1!JHrBV zNnGirqu)!K_G;!;UKvMP))Av7*Umn*ouoG%&urH6X|i2H7!bcU2_~sP>y1by?>lT{ zT)?nP`?2z#f}}{YGTFsTtW9NYIwiEva6)|S!x(Pjt3`OTCN`1pM=NE#OkZ6DE%T5Y zXvZd@k4)C@Zc-g0(eEXY?FXha-iv7?ZA3)x<*R=Y>0bHZdpk)iEhC7@G}8kbx-J`W z>4RMmgtThy^hcA7tIzJ!^ENy!;j6z7cz(_swI*Vlq#$&ql><G)Z`~UX7QGMROK83V z(>x_+i+wfi)tgB<Wy<l{k7JtTKF24BG`7_AT^@Mtt)MbpGqzPQdeQ9XB&W*#Kj0pI z-iyD_Pr;bh^8sTll1d^}8Q2Hjsr2U)+j-#`bCLs9IiA~E)7Co~qLo41&AX<18oV_d zOE`8JV%(TkK4>}oDqJ+?Yd~pTU;6SgwHbkzbFn|&0C%Dld7>{Pork7rH3|OTa^)ja z8vNV005L_ZsOXtsQH}zs%|@-+ic`6vZz5q;)ELReO>KEeZxECw@HkMlkbuJK?12z+ z3;O*lPV-O`0GLg?2O#w|)k|XuJD*yR8KdR7&nBzhTBXV#F>((ajEc13<Yf*OLi$hx z63N3WbOOAmCjI1h&8W8()Tv`^_RohX!?8huinWo@j!$}NM~nq*r*V-^M%&12lflhP zMX7SFP~)^Rf=)Y{M<5<X?C=dpWK~>wXD8pOrn-^<Yz+3KwA7bo$r=-kHv<{Srj#oh zp==gCPjO6HQNt2=>56Kit1fpQeo%SEXA8--*tHgsFv^xykAJ_VGatMJHq3L3Q`mgJ zF~Dy0)hY=9ll84Rm8`_$%$iJaaK)X0BOR$rfcz;r8P0P{8*E{L!R*wS``nD4q*IN> zYi=`e1;!2!V@}Ay*g^I7rI;*X8zXl@X#spT21z;1RIk*fqf#p0fSP5`uEym3E9Tp{ zwmgF!Nn(E*`d;99w(^a+$}qwDSI)ZqtF6VuAw>xLa1CWvH&<oRwd7%z4Uh&0y+q-b zCSY(EoYb$i$U-)sT50)J!~DwKg>j|O>yMxHpu{b+=4|&I(_@QyE<jwK2dzwsp|GPV z+dZkWyW}zeR2+4xO})xZGM=k#B->19V+A8L%VoM<s?4p&aaYV<YVv+=pqfN)kb}U< z<eH?DV&zHQZbuZQkTa=LM?h*Qwy|d32XYwotBVqlpfF!^Rb|r=WN^-|8>baq+`Elw z)O42%8siOv=}@B=X6=qCv$U|}s%}K%<`}5$?-f^je;XbuBGWHu*%}bWtO?;*_cXI@ zk$zVBfc_d{9mone1a{3ai$=mmQ;Zzbn@>|1++@mD5X793)})F}n^5z|Ak%IKnXv8$ zjBTU}ttgO^7%nkQC1qn*X~$7iq5lAuSoG$QZBjz1!yajT?XEBe8ko}}HXV;VWL4|A zjnK0bF<6<%Kzc0%?81OD56TZ}Vg>oPDL##wkiapxkV))nEc=?tr4b7i0h!hJXQ9q0 zR$~F$2JH0|&AVk)NP@4S??t;f-NrH76{AWfaaTmPvNxR=QJlC9pGuzaAi69-$j&Mp z?Kvt>wsBI<7Em$i)YM7YY!^-F%Hl?L<+$uA<fCV4Wdn?R(ng{{c^ikN4HGj1mITzr zzTn-q(0T!$PbaQwEJ%}(n2{gf?$gSEHnNfraZ1P_4(JBLdiSkc=2`-8Vlf+UU|5`U zoYKA!f*2NKjI}(3c)@Jsk6vmoDP~>VqXW>^X}J_Vn<S}Gk=~+@Y#^2$Pik>vmMxG+ zYDr~K(e(pwHKycV`i;p(BrZWc1qbJl2V4Wm!Jx{l!A3zGlS<^b1M}}qD5aqJm4?l@ zunGV}+?s^OVQh{-JOl4iGOIAoa4D{bXuu$oS+?(Rwfc<=5UJXCXQ-r>Pqa1;-~sie z$Cg+gPqiIKBn%$?Yh<pjOInXb^<u}bCYvhpoM$~MP&X+ftpN*TaSBah<<W`VYDKWL zVG5|vJG0F+O@p1h`igw#bW5L?Y3u7ynD?&rm~9`!(yDIJyDkkoT$~c^kljamP5c%4 zRC?m02PH^2!KofJWiGkhj+K&fa<FM@^%%;)Gm;b&flXH-7#TNbrUeE<(R0Ipbd1n^ zw%9fv2Wr>UX}7r63LmcF)`^@mg3LN_7L09jpd9t$qrqti0eBhBM=<x)aBReK?7i_r z&YoU2lK!}+Na9d9!+MUC;6!6->(+*w)+}81TL~K-z=N8OYk<@I#fdq_2Lh4CCItz> z9XnH9ijI2IQcFR*F^Z^U1n1kD6$@p6%IDUaPI>F}piUY#O}NPXb5|)_VM&PJy;1-i zbCFOCCVKK}WN9PD2Lq3-M<TzO(}UYRDid3FGIsd_fV}}3p@{m^yuFRf5Dg*>f>};F zWYtOBc5g%yfwXos$s1~bIVY_=lx!B{_5zs5Q3;df2ZbF?C?@q}=$52s3($4%QXI<| zQ;t0;JiMnl2d5MhwpKto@seup7hA2yB!4;MAR3LO{qH;iY3{N(*|-Gjz~-3}`D{<# z$E{7(?kDC=B9w)n8<=y+ro$%X-GFo2p5)3h4o7iN0k!zzi*;djZ3oN<C`64P9N^QP zgX0}BfN8A3$pn6M*2-f&DO&GRhsMMom!PL3lHlVR?kXTkxH$PwQhQY4l@y*xrsH?0 zM?!Wnvf!y_>_Mm{h^Pg4KIW`KS7BgA4@}i*HnXu%Nj(EpJzl1oy$XpDR>}Lvtx9(` zc8-*(78j_^Kjz5!Mmfu8n$lXMH1!K{yOxgxccpmLzWit0(2Uu@z!~Q>=1>L)PfCtg zEfEe^C~BHTzMxT^7%&HwJXZ^=cuXm2?F%s+v}d(?OJod_*Qd2tmNj_W2pP|<Qj<Z; zbz{kF?rtonaz+T~Pc_h3c&v!Yyp(U<wN)3ly=rQH7>;IQiRC*3^DjKtF7{GcN-`MW z;fY@L)RbDkQXF|s{yW&Ew{%y@3CSLquSW1`OOFabA19s~ynjUSKZqvsbv2Mn1fZ_K zdJlT`FAnMR=~`8_wZw|jBIJbW&1($|Tf4H@)FF242P=-W=$Hp$k?-tkCt?t{bL&O7 z%-LSO`&UMcg{!eLI1BTf5_nVEgaiirq~@kj7C`SA1mqFdCWeJW5&;dK)a<QfTXzv$ zd4X^MJx(duRd(2+Njcm)nn4-ngkpI-{{TwQZHZB^u3A|Xk&+J>>rl+hMsf3d)Y5rF z93L>AFlf0uSw;^|b4`@m+i@UAl0<13W0Qof2;)$g$<8^f_??-+0|1;=_69SbT3v5* z7W7FGU~D5Lhg|okIwr#40NpthxFL{(w;bdOWbDMhJF;>}6<2Z#+hQkN9#7L1JW=p7 z(-jnP`M4S9-ki8sD9?gH9QxC3?6n$KiaeL&@|6C<WMBh3=LepZ<m`z505IgATJ>+* z7AB4z1-LkN<PT9^QW#-z$n~sbk?7Hl;vzc_ml*dHuQI+=44h*%8J7)!q=Io$I^llr z=~A>i60^G)3D`z?_ojzD<OB7oqd@D(#WFy}ut~>ZLswf3wR;Y?VvoBx9q5tJPB!vQ zBB2C!9;DN@f^xVgxy@$N-Jztqj*(r!00Ex#*Fl1y20rxTF47S2%n1UR2_D4yntHck zdoH62mEf&7$K?^;mPx@2oN{rRS1OD$-~;PTtCH5XA}m?3cogzFb50=~?h-1f1f0}S z?v_<MSSL;0sVxm6mh7K}{&f>GOin;hJq1Y{teFGm1B{ABZ!hKA{P){eZp?|!Hf&hr z{n$b?=~4Miq_znaGKmMx<Vr~Cg*?-RwcPELw3H9_l!}WaIIf6+fbHMCO&ok=@lwZU zbR@^vZXa+MDu=C1bUjj4SB}DBJqX82tAyl|D57;a;+-5roxiPK{=wEHz=unBVsnDn zt5En`SCPscCQ!J^VEyQAvK2_U+{j?VspgnuA&Q*iy>2&zb&gx?45P4PQ>TG7nZa+f z#uO2dTbgPwsvK&;tzL!*IbW53@2U$fKb>?b;2mV6F<2o`P6M`1Dsk}lP%(3H2bxB3 z2NWplq7>>vD*VXh_wWdzR5?7?VgCRM()LLC)L~a#7EvD*qv5OMZn_H~{v}>3RS7*} zg$zwQJDh|k=O7-`zE0zupT@g;Z-%~8Zn)GH$?5W7ik*HK+8iIZ%*=adgHsquJ&cwv zllw;o7zR{QFnav7;~Q=m<I_Fsygv-BBm37gBOckSQG7Pi%BsosnM#ZTB&O)ee8`q6 z3F!1Z+DU{i5RaJW2em9GB(afBeGPhyUk!9HOUY?7W0hx+)W7hA=uxjW4TJsDifWAI zrHK0N9<82M(t_bx)MllKhja6;G1MCMh`bS{G9xCKt&WVqoQl4_5Yi(98YEzm$qH&^ zLQUAGiG{Skq2nykqZ~@D-;QXKbY$S4f0Wm^+W20^2Hh5u8lQC)E9m<eD6oVcpzK=H z>i2d`=Y}mN?vDnBXxUD|E1y-2)Qlx{{{WA9@D4W^&NE)_=q%6)R@O9b6pf=a<8fyc zEav9ZZbnyfo@!kdwq}#ZM|7Ft-($Q3Y&JJCu<BI~DqDRUS)Nweq}&pD#xY*WKZ!JZ zUot=KOE_guzn2OstX??K(aOuOY4MUd#KMoO$?J0;t~<RoJjMJouPk8y0Ax$I*L6sq z3)d!GojOG0jzO;ee~I1>)0FxCD6=cngl*^YtjWGM{5^$3f5J)?7;fGpZYq@o?Q#8j zO=%ODgW>mxX8^UjK)C8#nz+9XwPFBP8;4THwb$c^!`CGL0B`w&KP;OL4;4lK0BH}0 zModG0b2%Ulq9(>_ohYel*^Kesqq=^8pAGdj$d>Nd41W;KO&`L2P0%pDw`9RTEmEKM zkMN2NC6&y|20_Luyx+9mgozP@!`F;h;JUw0!mrpSgX{GhZZC6LJ{C_bsASaPgpNPe z6IR#ZTqHlAs<gn21&%xl<iFvl?S}217Q1{CgChV9K!0jm=8p;CXf26+0@CN@^`@!9 z_OTyZsRe#->c@JY3-rLTht)13`F`T@Qb+K!N@wF#y7GrRB=25ndHYana+X_v3)u{) z+a!(Oy;Yy~obh|KL3GOq2P0riiczHt=tQw~W4y0(*H_`Mhoyicr0hn1<8x0>hI#{y zzhIb!JQkFLUNJZA8Sw^Jb%iv0XxMPxPG2=fZ;u}lrI82rrHT+btQ}2isKG}~hZ^-; zyLLy=F#J5w(1nXgk;hQaDaLC2J`B-gau-L9Wd8tc=DugT_}lRwb`0Jjf)oQDQd<mX zH3R%u@#Vt4{dE++c}TewojBiOWnQiImqY5L@TIH#$)iG}`^*P5Drg9@4=YKGHZim) zHSzTRH1V#WV_7^)c8ZI&uyMQGQx3D@ho5`+vsM29SF>u%ik71tR7~Az$t2nKNYX+B zA+)u%#|5Md#UtC86L;FJ)xWx-dRN9KO-@A%F1M*%WZ?O?Cnmi&_Ha+O_|I53H#1Ha z*f2@uE&&I&YgFBzEOz}}jOA8T<rufW`8WC=kMSc5XJCB5%_OW3KGngt5P{s+qkK|G zn%7P#8ldwJLG4~}p;sZYeZ_e-U7z*b`Ya@z>88YJjH7zGuHWxhqI^2i?XE5E-dlB+ zR>Jw4a-zKRXkbA&Uiq$j#NH<HE{S;p=z61BK<T~HU@AzhXs&(H&x@0T_g%HO=6x)_ z6tj_p!phoMhar5il4{Mig=}9R*><ty?O!zj=DtCj$G$naxDNXK(Eu^FA%R)ih4+dz zWK^HTnv8*5NKc$cHRy6i+iCrNr;{qxp3M72bfkzeTRU(H;HskW%@1XcRtsc|FGng1 zeJkRJT}nnKO>0yP-9p_k6vWW{#6+7=)Mr)y0G^kQPxGm9?5>2In|ic;t0IDf=CWM2 z0&Y^k{VSCCgwWjhe&jrd%#Q~hG0lAK@T*5#UyD8;`z*Ip8Lk`5SuPou?l)Z5(|$L% zjdV>(wkRb#^NwjsEi|qDT;B~<%5KlCy!KD^Jcr9F{A7=6SBzsGz4KB7fs#9BpmzYB zhjVqWHcIk7k?4*?$MBW4wsD`na7eBQ6Xviy*LU$XMl8__`HI_)4;+f%Fzq4Eb6eAn z%VX!UFq5d;CoBUU{EpQg3od#CPINEEGSsaLtRs6Ip5B$zak4cPV_?ok0Tmo+k&g8s zjE{17sEX&7hK|u%p1<%K-1$1gmLXZ!=N`hnor&^`azGj9n({w^w!U76dz5GMX8DHf zV-@R@IgZjpw+pm^-m0^1S4ioh??onYJ_BO+dcVuGiN79eua{sdHulbInD8uE8iN+y zA)DqnuAD%U&4qA>o?5bcn_a~unZw+=e`(HHN{z&m)EcQPo&uq7rCYt1ebX}#c_5V> zaZv^iRE&%R*0~?L&sA!ZWl3WWhY9l$)b^}zi9QR9S@6b{tUy``Z5WA^jvBWno+!Rq zA8R*3ispP_;wIH1hfK7Y#k6Dhflmx-l=S8bSVxJfq0_0(>4WV`oCosG0CAC@YSJ=A zYP(B=A;~_}kl96J3YjL_#dr(rPVmQuFMMaNjX9!ttRY~{Gq3u<f7-0l=2kv}wR#vx zH5ajkJ@L7?B=sC%(kx3c^2h`pYtTM0_!i$shTBrpEseY|5e(!uLl0W>%UMIX^2m11 zIIPlX`JAz-PZ<||j*&hmc+*Ul4LeM*7g}6V95w?!{@<-@Me(P`UKt55iu4z`vr-9b zRoLA!Ya-ao9@!O)G5{DAJ?quH4dUqhQDY{VtVa{g7y7v*h!FMD8{6ai{{XM)pDB#P zEHz7Ro~zTh_0-nzC&XV5c>d5_>G!E`K5}fX9}+EX%*^sjBaMZdkk#fMF8DodWqLKQ z46|vPgl*<X5jc~Mn5|!h-x6=UX>B&0u0tFe&5DJZBl5WPCbr~!x9D(5IJB>I(f2!Z zz;1VO!K7=A-~!tlr`DR`k4%s~DkpG@x%eKqsEg$t+StDgXhN~(OklC7+a~0x{{U6D zf!{R*QWcPq^C&+`Z<_N<mQa`&7(HvDYwBly<+o{NWiB@a;15Aflm#GwdGx5ml_X<1 z@0xl@PD>mdbTy9eQnX3`0A64TE{dcn>z40LH$GzQ5t8h1Nv0f2hG0fJ8dYWmS}>;s z6T8x!nvSb;b+@VIpR^~4G|L?d(@T;gd8$t)5N^PX4yL?13FApX1Stc#uFK;6rN*J- zrp6>l!P~(Y$*c=)0@l{#%Qx?2+wy>GoxXjM-3Q4VKkHMI5WKU<amdd~d}}A1s>5me zb*+6*%d$f-7%X^ESqpmC4ohUP=uJ{~R}yluwPP~E!{!(#rD{v9#I}YpmYBBy4gjt- z*K_CYpHWXqWQ}(#^WQa5sVQAqe8LX;%Uv`&TPQ3w3#3P9ibnZDpw3wO)R(3k35~pA ziw+pD?^r3SPa5Xk{E52xpk#wkGu+$}EydiEOh+w@WY&_`W&M9&sXUJBU3dI{U-LI? zqu;4Q#ErQ*%~-MV--z@J*e=%oEjcY_^B^v8Ne6+B`K+Bj<)D>ME*G30=DICT>f6K` zY<B+uW{3#R=2?&ueul0yS4!<K%l;g~bYmrMpYY%C-+4;s#~S|tiuId~e*XYix}JIR zp&ieZi=KdeYk$N3A@L@zml|9?BAZIKz06aHq}rPeavxx~g-lTwjSujHPKw@3ds!{+ zgtA8=3S12Qr>Ma8tz{>B#!uI;tMuRGj4L@d<x#8Z_3qn$d)4}$i{M{`T1SX4F6>|9 z9+}`<NVXf6ypXdvCm$&Wxvv-6>3$jUwyCH1Z^lQ)dQFlnBKcG*$o~Mu!1u2I0LC$V z4ZHX|9j=}5562doybvfpFSj!rcaR)A5>C=N>5Nuq?E#}`7B-#`zwlSWE6)!2YWCjQ z<MA!!td{<KzD^_qKQ2kj8tSb=3Mz4&Qr5}0eJy(@ySw=%E9`mHarLpSC55X_GUl68 zid?a}wcYyjML{j%+j}$5ukROCR9RZ;9fJyEn1D~Xt5zC~&6F`1Zmy&12hUj&4U%xf z9=WSl(g|5ccvIfF<10r~wYSZ6zvy?q74c56*EZ|+wUz@YF1HK0g7@aV79B-e?HO4% zbCP%*SB>e{4IHdtZL9}c>@2Ua@XGlmM&=`&igf<~uj}w4OGETkR4^q0J^7<_hy7qx zBz03!qB5NB-Z9P%93dxf2Z7H@@t=|ENpnfD@x_*1&$u2*ZfUz=RCHoko`iO#07fKp z$i_O-?ec+E!v^GHlI+P%C1gb+9oZ)X98{?)j&>F~#WjH~w=51lDd9w9E;k%!tvz>R zvXZhDq(hZh!0)=FS%jssr+00Kr8%6Sz)|yaOfr0gt`MFHBBen^^F+<vF~LDig_t*N z(6VKAo=TohC<7#LcXi#KDeTIl4Uky%#cg#hZJ^V3&}7m9y9<-S#W|%4GqaJ}ki;^_ z1pCvsD`P5GBfU#;+SfEr?@?z}kmQU5*!DFTCmaSNu@x&weST1LNQZbNHUR6z4P2gU zYR0fb6o}a@$U>3VHS?c|cP-`82pS-g5JPjj9qZ`X72SfbIThd@Fh%~@zFos2Rv7d& zr)yoBQcs;EwEn-$<(~i#l#Gmuf<^*D3YI;MS&<7T%1a#e?NGQ!2YCRFGhThPJ0$O* zlBsYGaC+1(eCZe{#@-D{9{dhL0Q%H-D%UQc5Ubyu6I$Py6Mj}cNTfw2Ic>aVkR9l* z(cw>0$Grw}SRrg4DRz0AfdRS5$)u#MuISk|{JVs)ZjW|8Q^g`=6*=k9RFg@-SHK>E zqEDZ3$4*5w+l}7jyS1qK@gkEnt>yLrcdC)V8CkY24?&8Qxk4ASDd76iX39dYPVDEJ zR$Gr$RF2L#`?r`+Zj|Pl;T4y5<j<vCkpyHHJ8*wGj(FBXow!ml$E{0`Vd(T_c;-dH zAe`_rDsMGbL@V<8?x<Sa6SZ5MWM-OerD)F9JBMRSmiv)WmQ_PDah!h^X{ARb06pog zctlv+mgsn=#Vm3RvxOtpw2YO>TU<bfMjtmGnWcEta1KwcAyf>m9I6xdh^G))vah*w z#upShTvFU@&%HYAIN;-vOoX2-Wz3o2p7kjt5sv(HrVDV~D-}KQRTf{6x!d!3WtC1j zH7wJyi9#xnM<mo@0+=e~{{VY5vJ7B$K9w`o8Kv)BY8Ba%n04q>^{LiVB5pYusD=uk zl&(1Dh_kyK{VH#Gl<jd<esWKK^x)ofdtWS|k;OHUk%+-;4C08&Aj0m!=jQdPTbArA zx*=5nBA(`>W0n9A-h>*F&=bFIbHO>NB8W%wrgNO;w_E7Ry0ynh+rR}%oP5-~BOqZ( zBfUn7<gpE$)Tp6XCEF*pOr_*auc;F#2PY?Sr%FP$LHSRu1&5o0I34{dkB!`&!1~qm zYpFZ1jF}vq3>svT7EpQ5N|7A2ffh1Ptwkv^Nwg>!s83st*U^jtiWAE5_q&QQkRNv9 zMsh|f)<EEe&JJolgP}i#RGWPY=GN?vGrK1we=3+G1r5s+>rn<VsT)B|bDp%mXnZkz z1sKL_HoA`K?h@^Axn72lAZ5ld2LhhKLT4a@-!&X#Zde=~bv)LqT?F2m4cK8hBs!kN z^r+R?Ns<C&oMY0Spm|7LgTEn;DHQpI$m9+NYErfC?{QyCq01;xPVQ<Q#~A?N^vI{9 zkro*?mNfn4#?@dLaw{g#MJMzB03s#o#IXeRsK9Ko#&gDMN02j;zz|O&px`@g7+mKB z)|xool-;x>c$*j_IP{^JS(k#i>zYU0?UwmRrh3qXmd8PkwVyrpPeTj!6gsqnEAoz* zsAhG}26O5SO60`HCyaH)R$>S^t*z8GB4#U`AIgq?Rs(K(cc-x2y*a2|JhskHUiB?s zV%pK`{alfo9J$B2q><7#+D=L5iaLywpRGdje)JN#$Lmn7dyucOGZk#G$jIaxXkf#3 za6Rd_6CKJGa2u#SsUss{2PUmaUsFiz5(DO8NFyDoBnKHd9_N~Lv2EJju}VI1f#24& z=IL;hZoGyG8*W&Go=Ft0cM`y4^{CbGNMpz*qzoh@X$lV{noSuwTShRk1Y~umCfuGm z#wlFy<Wmuq*F5HvdI{>T#9_6#q;rBWIj1{=&*x3f=N$aB)9OmseSk5SB#atk6Oadb zkmn>0ooRsQ1n@m+DJQY2xhV_~?i|yT^UtkEE8&LUn02L$lg~p<XvuApd8Kj(>q7&K z`uC{M%gH@WO(cpFVb2&Kfl()MYRDZz;FiTPq#4IhdR49pfL9>)s>~EIQaT!|>2O+Z zDv+n9b5ePVPI~&(VY2kGTN8)*uySx|UHnB^HK6BQgTY{Fiy2n-sols>ynsbAMBKi^ zrCX9@-=i2(CEx<vjc4BJmba@SvJ^c-eJbft_`x9e;++^oSq^gDg;ZYF39BY_9s;+y zu+h`ZRuN1~rs0EKM-GIOy8^0c(ktk;nc=p5+|{t<Tb?u1itUcNGmcHMl9hP!fU<gu zfe!iAVn2BPRXc)<^8CX&IHk9jV+Ft&Ip9{zmicxrH0IkYxtNZvifO$?B<>`haA~qg zu5by;@N-ej5rXu|92#j3Ek1;i%e$fA_NDWJXC3?05gn`pFytS=)23_<x!l0;G1S#H zt${Z8C07z1;ktT`^&F%x&QB(#$Vfo`C*+E$D}ySb1n1I|OLRrqeg()ISPY(~v{g&0 z{K1c{WP<Uy3I-2CO<zsrLGy5fuN5q9IVQ;&RR{;>J$N+SF2)MHA5%(IWg`cVTvCmZ zmSueUtvxNFFMl!(g>jFUy(s0wZRk4CTX5%}b53UphB5b#b4l2w`Hw06pahGjXpUrD znH&Xi*XdqMV`=ue;)ETBL$n`y^{<bJWz+OmC4otp0o$c{rh^&&*tZIW-#GxDGg-Y} z$E6uHPn!DO8h`Mv^&FgDTcUdmnri$xy;cTYK?)w>E34LZp`mFr>Jr(>KbD2sD41m8 zxOMpNr!+|a0NFQ+7-wU0SL$n3PCU1{&pcF~k=)rI4+h{ypv7^{SG^7J;O+$9lD>d* zT>k+4FSsQ}WYL_c&IxQ)WcdF8G=-MmL(8h}#I43Ey^L?GGWyL)JEnD!d^fY$MAvsR z<n&>{siF9Jr9g4!&yPSWj6WWAxm9-PR?4USx{1Cv_=hCNZ3h0qs+|aYNdv}JwVS@D zpvB-#CD(j2NhUbwwLTvL=|V%5-bYYLuQYFrJ}-~~5VL?c-X2{+FU2ny7jl<yC}2Sb zDu+%hOBV4pExo_Y_0{k;mRCPyES{j$iQsJ*CQXBb*svzNOng)E?2?;%Z9?3aA1Dy> z$6Bv<<Np91G=NR6J-Gv-N5xOGk64`3uTeWU*!Q;Zrj-y~nsTn;)yD>;J{`7{ZCf~k z3=$6miuuxi8+g9qNRz}<yL1GgsHE|CiKGEvSD&14JJzZR>X0hcCi$=ZcKuJK7e<38 zWuyuK^c`wpr>JZTdt;7CI0F^)EZXL+aDYCeI3Qyx<W+XPzijW+uNW}H4>aJ4*;9_s z{u~`iHr%`Z2h?l!cvXu_X9jrXmXd3WGmKqXx%CpQe66;0grnR|AU?7ZDl@02Bs8i| z_hdB=Hqyo}bKTtfqD@}L(U422TEwTZm1;luNHl$zO<Kv&WRlY2zE~P8aye#KbC0~z z6H^@`JT4Kx@1s=X4!ecs(e%vzG4T8Vyqe{V5w1RElQmTQNAQaB-XVk^Q=C`ME1^Ur z<`BdEu0>cnV!Hg%p&pp6c~y-h+vt1!@5S#3*&r*e$3Hm20&1&#aPW*VmTT#lf73XP zcsKS^<ZXx!!{rq^=+2PhNfeCa0JRP=j<Px2rEQOLe~q3Gf=@O%-hIFVj;5*2@#n(v z9QhY-lhQQeyj8UE7~B;`eX3ux<v}C#p*1ZK)Fkz2^}Em7BSKX%!J=vto(OKntAE2t z>B?9S3|${$-D}Ju)5&b^!1SbhH7r6LH?3)9u~wPsx4*QMAjZ&mUUzZP3yvzO{iXGc z{Jt8qi;RIQ^Imvu05~A-BN?cruvR!=ex{c#wdhNX-Qst%e$gHwWIkStZ5*eNS+ccS zUyuGZn~1IS=ni>1b6khnfeNY)0LE%a>~;g5w3ORh73`Y2xzabrpBuh0b7Y)znDbFw zd}Q&|w(`dwt8E0VepwO#K>RD6k~PR){mndDD+~jQsOhMbWVE?@>*9Bf=Yb*~A(AO} zfYQc*bM&UKjl5*)7Ecphy83~GRa(tR104F*@3SXi&M{d_szq|9ts^r309My;<Q{j3 zH9$$uQgSK<lTe;HB7J96JGd-vn>ek*3M%x;q+4jhmMzXYQhM7_a`rjFYjtj838-GW z$M;N=vvsC6iyFqq&$`~{EJW?et=VnVH?i$XV?Z&AmX_?&Fw)7K`e;x>a)L+o^JFcb z&Zdt_gxq<i)eHNrZzKx9U{s3`euJeYB;KJI^82XglS;RaV)5F>g^qF-thI{l{{T@L z`k<|`7Usbpr7xGb;}xT~LL6497$4cONN}*C<aR-da%rj*gjC(^qPN~57{F1|kq~a_ zQNN*^f@<bJ_Hfz(P<!;JE}Xl8QGwi6#IY$~b5SZ4CyIK>veaYPq%4c@PhQm^(-1aF z?lpQi`5Y2YLsk+eAcCZO)hjI-s!5|RTR`jq0OO|=Er4=&CMx?cI5ePv*QGg1<}N98 zGyedyQCQ@fV%QzT0h8}qZs3kP)1%4j`O(h$mm4LaK`dG@a=AJB(wh}xa<zQF_j#u& z{`DsLfxBvFM`TcBj2f6(tB$!Rp{p#wu_K}4k`devDRtDjd&=TlS@{#Ij5+KWX1jmc z(l#DB*UH2WU{%Qa*C7)f;GUJ;e$GIj68M3)a?z*+eQRdZjI{0fqmHV);ePM`07;SP zKNS?NpJFg@B{}@7&PBPJO{f7QoH530(0(mULTPacPt5FDPq3~90WG_s2ZLTUXzOF@ zaEdXetVF=C2ad+Me-pDC;0gIQVQZ|Bx2etv^~G`CC~exBr=()Eqke4&#iXgL_g||q zyu5U&LT*kD38rq@*P3`kEP->3j`iN;`kpUc2;@}30A%B>H3?D%4i6PKloPK|DXzOl zM>Hu}6z#h=J{9d>j5-RiV;cu-sqPg20F8YW<NpBPcxO`D5q?mk4TE1i{364AU(kj) z3oB#(0&D0mi4!>R#mG&BmK>Gmtz7-iSuO0pHgn*j<x)xi05klN<k1#*!6%$zgh0IG z2Rze&$r$3FxF{j}_pcTFN7qzMCek=>h<gRilQNtg-7AUQxhJ5`d9K6aEXG^AHNrB0 z*kRVW0T5;zjzO;aZF1;*-XcxZZFvk611Te=J*6$dIK?AG5x!ByAOVJZ)|xYzX~^l{ zy;*}V&N_Fd1l!MAnhAe|bTyrvU%FFi#?1ELf)SZ~H9VikCBa_4mFhRaf3vPKO1h!N zdB?#h2=I~+Fa*rm_peF2AuMi7eEXqnW7iZ_cY1Dg)4EI0<NhB5E|GCEznSLB$3Km9 zkMpaljJO@eW%wISpHI<JITOm0l2rSe*wiKRW0BYI3Yj*Ji0YM&0^=oa4%{la$^2>w z-I5h`I8)Rbvox4oGiQExdz!=5^+@#lcFs>-x%I9F^*wqi%_VJFnXc<o2|TNKm8I%S z9x+)K(3X&wz{$zStw98aS81J#G>0Ug=|#q%`gks}d8FY$KBk1O(r3{|3lC2HdXT%D ztM#=~B$bI(72kX-@hqAw!W)?c7MBzGQZa4YF~>ff*GKT1!5`R~Q{7#NZZB>d&Q^5{ zpdP}wpNU#2@IQ_v)**|_(r?J~VMFqyr@lL8x|KGQcmBVx!1%0gEmwT<=+AJ}?cf%7 z5HwNT+fIdYz%u(9`GdrI6y6o_9mS-cNm&n=zFFjFps#H3XNn=!tfbT2NVjW(f%-W1 zte=YB2EW$y!F6G05WR!voR%A~J63fgWvbMy4k5;(P3iqu^NlBGm_rf|a!qJKc|MJ* zt?i}wNcSl6q~UjG*13%jRx^ciqsx#GSRcAU=DGnC7nZWcDBP`r8yV)JEhlHG^tik$ z#88wLjp~n}G%bEV5!%B$s1AfI%Dpq|US)FvX}=!C_KE@2?3vw1L$HDUX!u>Ln=NA6 z*5Y?~rACSN4upNuMOlLC&r<l;wgzcl!o`u?rUI5Z$LU>>dP*<L^Iz~!g0oICmD5-J zndp%M3vCBD#W&56<~$BMv8fVGp?JY#iji&591_HmPIFn>%x`{T2T$E^T%E@UCX|N^ zfMAt50E&AvG<b2lY2f`SjUSo-XE<&S4<f2Emr+@5Vf*~E^YPrAccp8D!DlMlPffKK z9$7^VxDB~(b5*CFC{dc?;6oDq=N)L<QAzol*1CP|`b{OgF#Vq0Jjtb=K!HcLYs|cL z@w-m&)s)fb_H$j|6R^o40XKVBpZrDmp8hSG_e!#ocyw4MRe6||X_$IrwR!HPsC~9z z$L^rQic(E_{{Uat;C4nAwbR@2?e{;>(bYUrs(7OF?Rt}<Oi$d4ijVDSYnd6C%Z>$P z#z|7j-!SA;?e2F55_0F(uySc`&EW*JNQUlbzL7)a20CVtS!_+@k&gbgBZ5wGib-WI zp>xQgCiFCv8eFj=Si>=?md|)Rkx-+N^AJz9Y1w9ckU9z?to0%{(4!rzM<yI`R%U=Q zjCxmN;9rKikHoEAH2X9#5bDox%mD2`62BD{Pf|&&qv6|z*EKCJJDYjh&f(!Q#`#mU z<E?Zh%&pZV-;#H;eztb>GxpGwr3>o6uk-tkax^AD20_nS(zIz6#yK4_MMgHPlBwmR za)%zGyDty;KF?9n?`|&dt}NadgU1{xxt)onPY+h4tq8Wxigfwvdp@n&-z)x0@Hxwi zRGTb5S3N+fv~`W8Rk+^Dq&Cpp=RK+mfMI=^a>I|GgIZB(toj6(zGw`DF4Z_}n$dGf zd#vP~dAi%w_l*zshxqg2&kL`CG#?vjnooxQ%k~A1eKr-8M0hxII^&Gjp8Rz2{{X~a z8hBsAei8AHk8S)zqv%1F-p<0@LS3UfRple^U;qVq_KAsOVLZ~bu|D)*<PrH&LuS5o zjk%;|B!cHS&uY10Fo{O2qUBl*@=3e$sV-Uk<r^mZU%M`gju#H-LicT1w%wzvl5OtW zYR|H3sfe)|oHK*+oK@v<yV9;+MfN*z0xPrg&1J}0RdP17bBb1d4oNKyOB<q>XjE`| z=Di=l&laP!yksGh%gC=Tf^E@`0=0G?5Y;BriWtt-XC&@5ye6W#PHDG$pQYmf9jml| zc7eBO7{Mnw^r;4W56+pmVV{;Kj0*8NljwR<c6Jd8&V=t$cVLWA>97tnj`bp`U_MMS z8K%eyk8ab9<eb&hYnsDNOVC}Vg1cl>k%^PcU^Wh*_o&(12mv5^8fgT}_i_hA+NHa@ zvMko9e2Rgx8)|kPXa{j0E>v=8WEoxE%>gpq&lPE;?#tD^!Bi2obB@`m0*MrdT#-@b zfh;&t(uJL~CQf;x&!GMp4hy%r_N8LLs2q=aMRMgwMQ*w6PE4p7!(-N^+g8y@^oY=; zkVwEZ@OKghKs+4Nr1_tw4{Ua*q76Ba0#_aBDW<*VWv?~G1(H+<*}y$3!F+iDU2gsM zy6z>geQVwo7*7!#Ww1?nU&Q5_4;NoVLj(X2-HvNY)|E7L!raQ<f1$`3Sz;>~!6TE3 zia@?tR>@=Drn#5Ojd;&viiTz&jkvEdXwJ0>Jzj%eB`(qscVGeOOm&T}3-tqvuzpp` zFwagZHwe-7!yam^wqbPi81AJQDhK3t=A&ivNnNB7??5hB<vV>%D10^<vT@dpV6JF} zsStv{d5>e-q(u^!$sl930aU0wVE%cehvia0JQ^cp$(E?CI-quC+%fX=PJ|)DfL9!I zQpx-1&fcdzYADs1sAa(DO=)!9!8`6wWJz#J?`-i<G*9M&Ng$q;U_>qBBrs<uim!2S z;O!u;ayjo%<$aMWP@gT3004KPF}N`&BvK@!VhnTLeW+#IovLxvR9&~JE%hHDjnuC^ z)mb1C6ND@CV>M|p$Rj*=sF!NCLt%l>Jq<OhD)vbtCjuqel5yD73v@_Q{{XugzyQ_O zgvxicfFDYUwCLt_VmSvntz?{Jmj3{dG`f!aTx>ufgX>a;LN};6?@YV2Sd>T)2lzm$ z?;NEElOaNR$E|3h@7OM#lPo-}+d#nGo;@kynWY<-YAWMC^+e23hn}RhTf(qkn{IjJ z)Xj9cE!ciHJcMMfax+booPw=@d(t`iK~hihrPwe6j(Yo4Suw3iVqZ0PXOYHpNQ4F; zfN{{&5(jl)7^ysD3X^Ul0f8shqnGA3f_82cu18vKLO3HeA&g`O1TzjPl7kT5KvH-D zsy8LusS*Y<5+6KLv1d5yY4HN!0x)rtielt9s*~2O+o;>p<c}Kt-si0i7$rdJ4mh9= znCFi59HgLLs(lAa%`-IY#PcxB!;aL#xlpPxxbkR_2gV1?dBsQ&g&=&SjPp+AxpYJm zB7{ADp!J|a+k>kfoy|Rwfdt@yJNKtX0dh`PBDCLfTYUy+IV>}txu}8y&bxSHPdQ+~ z5C}ZxoQ_Eu#s}+HqTHvVB5y1zsK_cYj@2TNI&+#vNZIm6(~bb4B?#kq!kWhRb}P+^ zwMq0Qnx&&8H!JN;jFIzt_BATVTrmh)f#)=v=5{leZi54-JGzlkvD>wj;ah>lF5q_@ z1<9!2ISYz$P3~NDT8PdRWQ>ebG$uvJkL4rfIjMF4$_G=%DVH-mGXb6e$i+FUXpCLw zD@0+0$Bo2psYIJb+*2b{ATD{%c{HjSj(8-}O&ZBJro$f+F;+RMy_k9&3bQ8X1gIIu zYN{9qInIBbRIJs*W(%Ah#Cu@UxZN1Z&pqlQ%fCBtb5ky4atRxIQihs}dulMU`D6^U zo`ce(7?5WlF!ia~RaosOo;aqmrroNz^?vnIiki8HO#y&Bu&9-kIUEp2T5~yQzy$l} ztt2t2CwEcCDk8d-8-o%?GsnFlZKJO=*?@$ILJ}M1Et*Bf+;yvZ7tL{}Yshh)dgg-} z2ZN9)?HC}i&q{DPiy)E5B93US%x!VG*@NGjh&X0qPaxu+%eaHP9qA+?S0M4<ikn&8 zY-pC6h`Ta!ImIe~Tm?O9HEr3(e;Rf+wnG&?YNaJ@0VUK|Vy;01({dR7-<P#4jk&Ng zPCA-sU<X`%Y9g-gTUrwg5r97vQY!Jz3H7Lvi#FbXj<qsIdJf%9X(!5z_uNKDeZg07 z10>NJx6G~gv&QOU`KskZ6;r`JwJNDh7A3y5pG&a2*ir!bLFTK43g-tosUARwk;$lh zz>@VCBfqUTqOd#2mNFEU#&J#)$Z*3W9Vrof!}5&N*$y`JG%H@jtzDQ9O73Hf`qXNG zp#`}#&=@htIQ6HMG7;LdYg1VymFzY+nerL9^rSHf2GYC0&j8@kHc_&2XiUr>3_u;} zrsC{k-S;|Q2x_fyZ6&;sChKFgFgZ26tYlD23=X8%E#Q?^d%&X^eo60LQ<%y~2PYsE z$6EGa`L#zqmcZu+q1)RBsir_fzQRCac+EuTEW3D7&MJ6zNh)Uxo|&y1Bb6s)S#jm$ zfw<!wRC00#cp{%Wrz_@d1A;r|nYmB`TQ#C-uXs;FD6s6MhDLMGTCyZr2n~^gk(z=} z-Y_}H>_tfwYjZBu`7kr}sczc~n))(SP||bA1CL`(WFQZi6VEuSI|f{Ua0Ym)!A>$d z`_wr%q9vu!a!2N172I*$)%!&oNCW^6L*A<Sn}9g^hZQZUMR2knPaxD@+o0y_(6uu- z8&y~Fs2r8SPyjtmSh*Wlj!S<Ls)|U9?(Zb})vbvd^7%zh3*=|5E65lL2M4&ON?Fk1 z4hN+olPCd(#m6F_EyuCu{{S6aE{&zJ=lA{n>&*0R&#c*i#eRNBuS@vt4tzbOkjLe^ z0Oq{cL4Df%2o(IMuWFQ%{=H7<P5U<A^|9CZ%|rNCQXhE?Er3OM=Y@3Tme$ZpzG5=~ zNv~+}K;58f3;zI2oB3CfcueLEIv}NsPC6RwgWWx@{#qOt<*4Q4zczHsquFnj9?Cta zGIF@$uy5=kw78H%0<2BbjMt@Wnzn&?JXT3?vEE4DS%?gfMRHyz(_clnEiu~*kCE|} z{7q`tD|c3BQkt5ydVVGqsfsa&jWOFIro7Va?oddIp}jz=tWs8Bt_c+jT+0h>M<YGE zR7y=F7ZrP<$z>310n(W@m@<1+$b$7JsL91LNmuTUro8>#(dfoHT)E*(R84jc1`4n_ z9<^)Y7M&HYn-<UnfyV4qz7;@qOMjRGTdA!tiEx=bIdH*Oa>_nx-VLUCwK-kWU)Gj9 z(AuNKz5C{)HiOO1II9+k=37SRJ4owKm=z!nhrM+{wrA*9YjhF?9Xr#!rE+pQ4k^KR zXPnZK0NdWQY4$CxE>~C-l6s#?K?;cgsj-GMzb<lm)@xKs9U3SkcBvz`-bOeXsJy_V zC$X!MDIgs2LRKB^xi652gPgS?w;MWrO-RufP-(2r6oPoIci30CN)w52IjLl9w>>I3 zFsCa?=Hv|2PAj7YX=*x1ywzUVH8Mm3g~t_L$siDF!aE<lrw6@bYZrU5<^@zPK2`NK z2IU8p?@}`y1v$oPSOJQ6Z4Yh8ra;W3bUw7rfbc~~`P?#TK**=lP;x7x^Ny7M#2Qur zA9{8&r`D<+%-oyYsPTZ=9Zfv}Vm&GTUgqTDfOZ~EDx}uLH+_f08InPq)s{O*`AcS_ zhE{hTp4EMzS7kZD^sFWBiAv*qrI|Q5K9vAXy?G+87(y_^0K%*Jal}||%M+fp4n?F^ znLN@Caf$>nlqHT&Kq^u<vBye0ut!>?t_i#7Moz`bjEY-#Ip?A4PR2OxN^plA1vML# zK3u8JIQ67O+%h`SC}~(I<Y3f_;A81h@3SL!p%ags=9ETP2AED|B-7o=<Qk`_-*L{l z88n+tGDRv9MoxbkcbITT<4*Ps$3^?TNUKrFy$*QIQ%PSRcR8zYI=YZXDKZuAG}{LU zIo;ZzNX&{s7(VrAyEa1Rs|NDit8jhjNux_#SG3s<cM{&6syJH>gHrj<WZSfb^`^*x z1CxVSZf(ImL01p#YGzR=BA|^-pM_1cXgO>jN}F49CB23!1_0v~CKO=<C?~J2IRGQt zp-6+=HWvrf($(l*k}U}11D5%{>%aY*AxG4FM0a5S0DBz;dF*Ie+b09DuSWftrb!2i zT0#5KAdPX{Ri?RGeqWi-Q7KL@*YY~Qitx_y>08(_Qp^|(ZWX~qH*QzRBb?WH@p2ZD z??}tz5wHV2tAf~7v7C=u^D4`lRz9B(1qw+m#!f_l4w$Y(#PO8W{K5{`P%?dMv6do8 z!RuUiiUSQ+RAN9-FgsPzUiHpwV!Rc*ugJ-hgeM%1X~JUau73AUDBZb8^%$fpuzOc) zS8nH!^z|7e%-P_K(?qS61#_OJt}n?Jc7jfN)B-;+5Dprm%H^phbiV{KKgNq9i@8?T zTx4`4SHAfEDJ0OO%Hcz8B=pUAH^8)U@nmgmEOv4dJLK29{7I9@@XI>ozk0tfy*l%1 zI(9<AwyJCV&-(dT^3x_0aRVoS0j5d=VTWGy)={?&)bytlu>r>e*1W~!eN{_68NmEQ zMoX&@y%}AbisV!=ZZnGOz9C$*YL?NaN_k|K?Od)2=e>7P_)nU|>sC!I1&jh)aqYz> zz#pet2`Krbnps_Q7#ZwMX=@{uzJ#hbbQ~XAv1<yPgTcmXtWwD1=ir{8RDwx1uucvS zH8yw9ne5Mh_$>-S;E0Nb$(7G1-n-3Ei1a(j04;>z3grG5z+>=@jy9-u$iS|j#Ih_N z9=bU=+uD=W-JLMf7EhrTgK;(XpB#i><Du(;NvVbcT&@suT%IYu6>ZuTtf<?!DakaN z@5v0ivJ=ZB=b)&Q=yt~L$sT2Ue2IATWGbBV+cn7EOFpTnkX3xKkQtk;Tk#e2Hzi?; z@CFP+M5C|cRBg;MsSN&8sp{3mDJLW8u(a3l6S$LHL#DzZo#lCe!YZ%IKN{w>O;%R8 z5XU;WMi1B1wOsKH^zY{^tGKG*72`F?#~Ef408xh~wT7<epPFLS)TqW<yM5h{cldAd zmtFA%^cn@-ot!p?J+Vy){o>=+yT6DY6^F*26TZ_fH%TVl=^)_bazB-P{qSNSpAjs% zY{(?)c(15Fc}_VQI3#*ju3U{fpCuHm)9%so?u)P93rVd!*=?qcwxrp_h{|hg;rEGe z^le@2^(n6}lJZQ+Jo9Hc-~sJT__g7o;r{>^OEgI&Hq*!?3|Eev*CVfA&u#WcyMjf6 zU<^_!oN#h7M^2S))@tVJQAsDfPP^hChUf5Zs_zZAlcY^32%)k;Zb|&<bgP8Oi;}n` zlloVA4~#q$;;#hS*?5Oij>_efASdrD`sTd7CbhP{k{e60cLGR6a)bB4=xd5<&epN^ zSUgL_Q`dbLk<_`8GV@x?ExhrjRpUL!O74CYczNw@FSUEC=`L?B=iJRFByrQ}Tpg6@ zBuOuso#z<$uGhhO+}7HHTS`mCJCnDdTngx?J1cq~c4vfd_t9(q0qGX_S+_UL0O5V< z@lHyO!)tTJM-!_;hdC@W?^7XGW9Ac#5;5ylDRUn=>N{j|<Pd)YQHa3GlpvGA%|w$j zvu@~l1k{E`F#<*%sL-2TXh$GKOm4wFhbQY^Bk{||e`vlw9k7u3OBgdv5!yk|O7+cl z_-L9%_3V-m>j`0wwen=zl)Ap5f2c?fE@dy5``GP7Wy`96*MH0JG-~eO*5P}0v7*5k zB^R%`tocrG-3B|-PjmAT>s8u9MmmprHG3Y6EePweVmTO)0L@6U#S<&PQg)6z)G<l7 z80ve~-98Z4aXg=N9(b&+%<Q%at1F^lrc8hfU}TUw3aug)a;NY$-daT~Lm;&PM$r)> z`B@};8s#R13Vf=^oMneKv|!YHjU_9mZl8&mA)9c<7#s{{w(M;r`GSI_dgNlL#UGb4 zgOZ?vO?UQkE!Kx6{PH9rBR)zzcrqI3!%&tX-Vtxfe_!y%O}QqmvTxBXU*J1L*WmEi zg|#~qr#$!Clz4{mW-I0T^sHYEBpPMZF(%k8hD!i5liZWs=CHogf?p>mp1gh)G<vSU zPTZVUa(u1w_22USG+hjwQ_=eVthF_gJ>=e4%CnLW<6S(yDSa!!H@ZEwn?9#@b|v(O zh}O9{FTsy|hX$xgc<(SidotwU6U9d?SG=CL@7wy@u7<X}RKKlJW^%|=f6m|l&U^dR z(O!^-G0L&Y2cfE0R|KFr%NiiLQ~;ISI#yAaE4M-+B%Po9KdELBBzG~ekj4vV<s4(u zwB7ddqrGK4%5E7r=Yduy)D}255P1G|(;0JVa~VEuNN?Tc!9B7oGI@&yEy-S$TJu<G z9ky;<oa41e72{0b>jB3FHq*Oo;;Er+CCIL;!xJsd+%UKINy)A}?+w#}E3WWjtT&<E z8+*1Dv%nQv=+T9nc4z8QZ!rA1KGe;@2GR<g;EHwtVg_<K%{=9f*2@mH<u%cs#G<9R zz})8z>6(7kF@+?Pob{$hA$D}Z1Ju;G1%?UDO}Y+IRvRH#!EVE)I7k&nP?aW{3b7w1 z7d)}1$09jmp_JzbH8)=f^m?&o1QjXBCp`9}CPoT=QO`;`xjgWD(}@IdGn%xuy~)^g zNQl9Tvmoa*z{@m}e1~Bj>F4AGE^ujte5WVoHF4VV6_xJ8JBKllqxgxZ%0nWe@y|J? z6>d4m&J9XPau<-;#&JpMX2)eK*hw}-atPgyC_%Bj+<oEGJ?Jh~f)cDxT#nSipD?b% z2WHJC+gbx!j&NmMV+5YH<DV7a+2R*%*xZ94`&Y6!MTmgpw<L=4PmFHA+faW4v^c@* zQ#Rur2N!vy-k<O_JlbaSdxARP)F2Jyk&2Y%P^$n>Cv{e4>fd;dqPW`TcRf4bK$=wq zqJT?xYGF;IAOb<a$*De9Z0-7FQ<;8FaBEI(gq7xIbQ~%WdgrY~X7eT8w3JbvJDRY= z<PRVY0l=sg!xk%*Q^smr>c<3<vPFoYP=a4xNIj{bfJ<Wot|_rQ1aTwo0P&AXSqKoQ zA9vQ4?{ZRWM#$y47{Y!$Q;PxzPza{U4)n}q1JH_kAtPf9l^Eu;Yq?6>5dwa7kdw6J zW34)8^YB}pzjt*caFZb<pO|;2OmYq|Fgw=j-8UAOx+1_<B<%!>UEL2})X5SV!(=u_ zI-d0P!Xq3KJw-!Z1tqBN<drM+s7W6-<lUZ?XsR-e&Bi;`X_)RCaM9rXYf5*D(1`oj zU55{zHNeOBu~NcSWX66|(=`vC$sQGOTiTIi+T^g$p`~YWH_*FqyO@9oQ`)P6<&(H% zcEt-i$_ONb-k3I)$0LrWs_$fMl4w$h>PcLmdV=Bz$wk}9KD9J}0yYzzbDCh1CI>B^ zagjv5;%#jN+VKIf<$Vn{Ia~(Zg#hTp)XOf;;gpV@=yq3&1#(I6S;b3hgKw~r+$^hr z>PSAcI<DYDk&d8MXS9JFGDcOqkZJC+#zTeyNX{`<-n$dc%egbY_Y4j|q%%7b8!hO2 zRdu=>g0hepkPp2~jk{(XA6gvM_7dAs<nS;~d;8E8V(F8(ckM*^JSoLT9IxN*`jJlR zWhmWfIi&%xzkAk_eiS)5^%NCC<gZgj!Y=Qbn{e$}a_gZlvJ`>0a)M4d6%d581u9hI zJoTr=FYg3<cjv2Acw=<s*o8lI4?$F;ais03B!F$p<Y40zif~EJa&R+1P|R6d<vooe z720xp)mq+zX#!xWX#iFk=}iSB$Q;n+T~DPztCBI)j<n+*Z95fv?nnp?hU?gxBww2t z${t77n<{`)c1a_x1|m=1IQOZVYQ(qA{dx$vU<u>c(z_41&5m=$G~hVLG@f4hOCF=W zMY@vp)sJP3*M&Ly)J-3l*arvJp5&updE%PfVB?e4wOTC%<<N<mMEO$%iRyb(W<uj| z8;^c!Nfe$|p0NS}BLw%XWqa6Z^6Eu4S7`gI*iyR`X!fRf<kO@=bH@F=Q$rjQy?yH3 zQ)9k@WFmm0Z_=UI3vTVy)1^|wAnjw;p?t1DZ2HvCYZCNhUuky7)|-RLC!b0V7>DE2 z0*R#K<r|wB6)?N_b|uRC44P(*K?+#sprKoTVkz6gum?FKkbP+jVDVZz#F*LaApo91 zq%XC}$Qbpf?ik6>)}eEk=aKJMd!)x^Ji5r)Yyx@_Ov^Hy01jwEtWO^=r8+_bg&6>h z=8|0jr?3)0#&Jqml_7X1tucvZ{{R{iJQ7Lk(xFD~<fQi&Gn0eY){<?Aa85z%Nb!dm zZULl?0ssdi-n3<1Js8AvEyH9~xdF}&aw;<(<~ZnSqAoF<k=}%^wL^+Yk7ZJQ{pu+H z0C_0~o@vb?Madld)pdv&w~jN^X0(iKv=ePTO&Nc8+XAHXFvA@&-lK&wR4~Z*rH~Nk zu&flE<z`KjBw%*~kC)b&w`}`{2yau;i6;kYdiSI(4<P2QS6V&8o3Ny;l5jJMWZqhq zYz^f7+ENBGGCk?7wT@bni2f~yqcFn`GwD(kc0VX2`kH|qW8;%nJlvJq$DXv3=sQ?w zJbyDoHWMLoJxw_N>@G)Ihvsg*`&Ib~>Ng~uFvohY46Ip{ouQhoG2962RN-P|AdF{` zT<y5CHm{+-;JJ4;sJ%)^HvJ8CE=ng%Kdo~f7GEN3)*Ocm`PW902U29nleTNzqh}MA z&dD*2`^Qxo9AM_Ah7cwjfcZ~)gYTWg^Qrdp@{^Y5CbYY6lw8+VG-i%TfGHZYAAD73 zLWcx%&{Uut1#X!2s^tnw!#^nDX-&#4q{+SXA0HV#y$xNr3h=2T1ZR<1@vt+Dk_TGQ zgZ)bGRtUuGD@$S|iC4MLv8vOcS1weMo-tPPHsBIL9edOhFn$I=_olSeH_(bSIR$gi zTDNQzToBkK8mzGwzyyKUBBjF#xIFc&<=vFktX-N%f4k5QN$F5>i@4*Fk(zbGkeCDl zeJL5kD()a+wAovrC2h*`$Q4wR^B$lIG0sOr+|a{$>B;D6V_cAg;MJ|Jg?5iQ`1=t5 z0EBA6kYjDqXBFl86T0g5jIDvcocFI$_~1wUBe5vSKWS55U88MHPSIOG>o7jGjGfY6 zzneR$$*4*xbzgOn+<3kt{{RTysjz_J24HK)ydD{(vuq!}I&ogd;|qT)!&;*PcYT?M z>0T}2D}&_PxeQqXk_BzAF5UkCBydL3n~Pl+=l=i>T}YNM7dy0WrROIsa&ukYo#Q(n z4akGUdVHGCg=ThJ=ttj#9ygBo6~)ZQ{t|u$cSsL4(Mo=DkHQ`>MnSE4eWTY^{{RkK zr!GrV(XGDZdZ)#|*w*(=@J)xre}X!{{49?KO%jXk9@GcBw8+V21D3}^I`LmN*k7gf z&Bd!nHJ$yt6q?TM40A?DVyBw=Gxl`&k8$uL#*u5@9@MU&u^_Gfi5binY1bQi2OWs7 zX8o&v9egeQt-Kdy@lWBtuVteAN46nkv6J^w-(!Y`RQ~wv)z<Lpr8Ou&df$6n`a5gc z>Uvcw(48-9Zdt1*{pYjvZCYKMay}@x8&QJ{k}*`9{bBuUMln6S^IP6P_Lo-jG*ZOl z1srfk=TONKhx^;P>x%Letk|O~$D5-xyfV1et&d!umAUaXL-=}gf~2~il-4hX<Ib~e zz+{74-x1>Td^d2xNW-r=_pXSv_BiXUUWb`k5^V<<!5|8B(uO$4H6@7MY~-or@M$Ll zetoO5HaV5_UW8s>mWKncQ&75{;e}aN4hS@xKt9z>(14CcdeiWmPdPr6Ff4QLPaqMT za%(iwcP7>%Rmzdv)%XZ1s!z;nAipRlw*sV(JA*Ad^J)!U77DiCZ(3`n_>Vk}^rlnD z9S>?pVz3YgCZ6U_>vK7q=EqU%Na{%kw|a6W^GhT+=uJ)4!2xn{#ZHW5jB$?K)qEZ? z-maj)0P#aQP|yJxG~xqb{<OYcew4!*k0cX=Nm!l6vIow1rYXlxl=8*1ftnbV`Fqgy z2NE_Lm{Pj3$GCK)8Sg-EE*Te-y#7@E1moO?XFI$4(X)Rir6h<#0h3ao1v8#1TDl^_ zz;H$?@M21m30&mWNLMYK8onDU0323tT?Nb3aRJ6gKs}8`Bx7Oz_q|FO=ZcPe?%?N& zg&lPp_jW3VWf(kDa9zG!npP%83I<1WPg2pN1tD0D2^Fs>(`f)wpl7W)uvl*G){!J; zUPgWBC}bzxb*d9;!RD267lT3*=3)30?<h8MK4HZ*kgMXQ?j-t(6f5#F4|;s6ppCzk zA<J~;oS%D<%_goSu13;;Dp<;a>QAj9g?C|wGwVx$I2;OQwzk5&s;7#4EF2sjML-b< z$T?%{PlXD-D_I%c-%{1Qn3oJVrfRXTnh4_~JX81#38^oBbObJHKGpgP{Yt>7Dn@@A zS++SGa(bGBaU3wgr=t0%8RoWD4YwW{cMzu}REk5$Hwt26Ai;nn`qM)aNCUT8O=)r@ zn=ITo!DZu~D!GxJNh4_|sH9R|d8OD`f!p4MMV-gOSuwcab|$?y_GR-WkHw79>@nP^ zQaTmKTJty;bm$mm0q5ynt@|-V8&B~|0zw;-Fnv2!Hu+lg{XyDQBCXN>h}-zAyR|JT zlwpi)54~|R@m-h2G-&nBH}{!ev$hw|=D5{R(_xO>^OIghMekXkQ9{a^NNXS6u_puy z;k-)wwVA)%UTeLT0|pDz*VecX5iWJPhu#VY=UY*_en&Pb=unA6jF3pD?hfD{5qb)0 zht3BAoYCz*`R2PWndDq<#w>nvSFoo402f1=a)KX&kx~T=<2(%WO-B0IT-J9w&ww#( z_^mrXQ)oyYxy^fT#B9EWvyGl;B%fOGkJ<7UZ;INR?%Jzm@&@OrHS7NX6r~orKA*T8 z%W_qZ;Zt5M-AA|R7$&`>Tkih=GtJI22_vUDq+$=cpIUT@l>~IhH4X{yl^oZMqTYws zN$Jea2gjIQRx!5#N5(6f4h3}{H&v5VhuSLU-Y}!_uSyBqL*=XT^FC4{;g7X0cmPz< z#-sz<m&;XdNUg5ch8AQ&$YKboVtlqX7DnSEwFN*q>sGD&r3Z0PdvEEQ&TiHmw$-0S z{4j)n!W*aKg#>}kZ1~xHuL$Z4Pt2>w=TyEK#>?R?C(YO&X)WdS>sCG`{{W--BT`^a zSb#q|nM>aDHTYrj9pR*Cv@11}8C305ykB_@hllkGsTH3wl~winR+fm3{flkp1G~#y z4xOvZelvKF?YH(iO})b)w<YI<ch5}LE%iNIEG1HDBhT!7>CtW)AhJG5SL!MEE%uX% z5U4(tAlgRl%n0dLtf7)g0dc-RdggCa>uNPZo$aZe;wx0O@YIqnT1Jon%yMyDY<N__ z>yGu?_}QELEn!{;_2RiBXp4tA_pRyE=JY-z89r)_ofpEnVzu$^n$t><#sh|uM#8Q~ z74(Ff_K_66OX}8NGMq@WiupoFAh<%3L>*2(yj2^mBTp<Hpd^FG&UmhgMop(1f5RSP z_iUHXPd<mfd{orDE2{WzYgO@8q`I7VWDMJg1E}J;uZJE#(l2}ytZ2R{meMHTUAC{c zEZ}q^yrwNW${o)Yv}#*|ag$2X#_TeR*y)i^n#n5!({0K-lOMBOKw?Ovy0up?8cM%- zdS<-?Q`9^yulP;_ZKFPgs@pnkXotxl?_O&r^mSz$MmVi&9db)Z;W43@gM$<FtYsBb zUdN?{ttd}Nujl<EqqCRF!v6pW>Fr%EnW@bTsM*6NFmcpZ8kdIQ%-ckJ&Pw(b(ppWm z5p$JM!K@yK+es`<9!}@C_+wVL)U>z>$DXP43epaRjxwX6HNkv5*DOQaK`f;Ls2OpA zpRH|cpAkGQp);-4s2W8$c;NZi55l&!wLd+rPIRg|a^F*++p!AZ<ecTIyGqP*fH56T zc&<G@FlZC3@>s`xe5#{pF>T%X)?NPq#y<?{%HM2|SWe&S?cPvWx8Y4SB=s><P?}F$ zmOeS^(nIj}{79c8D1<t2K_<R$R%>WgH*N!gn(w|Kd`r9WUW0XQ6@=|)1mC@8h~w*; z^VVTHhQaj}4srNn{cd(BwC^S9{e9ylQe$a2#YBUn9&=K-c_MWg!59@9U`K)o^rocF zrz?^i4nU{Dcwu5$v;N675s)4S>qwETi@5D<9tV8YCa<X}_d3lh$2VGajEQ7gE!=+j zb6HaB7Z*{;Bq}5%oT$ZRNh1;o$pWL_`@@Dmjc+E}vv)I1C!#OgOzOuhPJ7m+#-(*F zv=K{pBf${DN1s~5QoxF_BfP1>`9)(2wJA2>?R_7iw=VC#{+oV1N&eFmjk7x(bAwE{ znUv%l0x?<axqaPFtt^)%aL4cllvg&lC8ZMl^5QhX>M9{AZMg%AsT}2(BocdOu0<Ex z202sfLcQ$AQhb|rC$|kYS+V)lf=?;7@=ZI-*n<NYr$rEBlh?IpyVT9-#xXAWVS>K3 zpMNvFB;}4zYSna8k)B0QZEXQTmE7d?Cbn8VNWHH8e?yT;@OGU0lUHDGEP^lz=QY^q z{twmsS$-{aZ7nWl-G?~=P<oS7>mC)k@SdV<wL2)Ix&xL*-ns58rK|NhT$H`$wEqAj zkPg!jGq|1xE3NQqwZz2<`Ji3R&05hsCpU<0UONjUl11g6pK7jZeOFD?JR343@WQ7g zmxcFk_RUI_nu!h;cU?a{ALf3bth<XHzk9s^5=%E+(^b?fHt(XEk}yHb94QBi^0jB7 z&2&c2?I2!?2d7#^Ba_b^>OfuFD#K{?pr8(*0>Jghtu*e;*81u-%M}<ODd#4JQID8) z=OUcy%uaY6I@2A3I8&36Q!QSbl=-$>k5VLNUa8wOjxoSf^`%^bFa}7cGrMQ$ikB&E zxq4j;P|OG|%XFcR&<9o{y)1~kkg?~ep+?3mdYawpu1nI*i5#qD002|Fd(^TnB+8w_ zp_n`E0x%SR5UF7y+?)}|e_B=smXG>EqXEk<(~hQ^{SF@ov8Mu9;f5BN-#EbM*wVhD zX~<)y^#%E1&TGv6GFwV+EM=50&k-s|UMtf={F{1vSDk!eCPAg(aD|kgV@jfPg^{Er zqR%6hw-(C}Kn+HxB%BNmw2+@LI~eyevE=(vBgZ-w+Cc}5de;+5Ivw2HuEa|ymPf%q zE^-K=_P$gx862NVkTwDNdG2W#gaiUIc{vpMZmtcs$V6KcZsQ>Bx{**UM{vbW<^>!8 z%-t$7#JJ~jaxsqenoYe0%-*PI3ovb`q2iTB;s6`4dQ)SK;gP{0gUI$2?u6|GpK8)p zMRO*C;3)(~b_3p{b_tG8J?Uf{_Q{YAaf8y9<`W|_xY`FtQ^iG_HqrGOh;jfY81G3c zV2q6M%{O}o$v)UMCidKZU(T*NEzH_zt`C?9+q6^EsxQjKgV@xP?cSt(xu}`9xl@2M z)|K7$5QT=qq-Q)+wkoRar?UVE03S+3m3jr_*1XGOJ^cqPYW$bm>}i8~z7&Ep!Nn7u z$_V*SzpW84Dpz+Ssih}vO69t{+$12##C7kAAD0*u*$6~A&V9{SNLgIS9P`?y4eAN& zscDxuWyn1UJt{cWBRfQ6l1^#GT*rkaff>z67j8Ek<YV!tDe94{+T#ML<P21J1d>J< zwrWOgt&i4^lY-5-`csRtGQE(7QtF^61HCDX0l4x{9cT`+I1R_rn<9{LoQj80M$MvH z>@XFXm3HG9>M2E_9kJ*rGK4FD20x0Sdu4mUa?Ja&frjHBN=-&hv@Kra9LfPy{Lflg zu83liDO~#ZsoV)k0A$lAEYOp*ZuB)$Z6vO0mEDm404x~+1oYyPMe`=zyRJIZBDIo8 z@-h#8X*{_R@J>#9)4xV1Cl{uqr8#sBf)4~#MS?KOmTb~}q%4F#$TQT`o?@_RREOsj zZ?PQL*o-M0_0MW>U)=^EFF3)cC+|TZ?ad)#tMiaY(ymQ(8oa(Bjzn@5SY+``kT1}l zY0(Y9w*Y3DAl#TMxaW$^%c|U`r=T%M0G>$or~{U4V}nn0R(;<xoM4XB<SQDT!vcjX zy$N3Ky+#bKe=11Su_WfC*bja&kxLuw4Zs7`)Vm;eY_B36`Q1+>50#HvMqJC2jMBWS z<SC4tbZWh~GH}-E2=1Wt$fo4T3t*`ovra})l1>M`Cz$*3vkLtUC3f{2(mD){-DC{7 z$8k)PCSk`0r7`VehQTAHN6X<y1a~z}ge`Y*lFPN13Q6fz<=*oGS8n0gwOC^4a2sen z%|hzzH#=@C(0bIh8?8q@7m*ee6P6hDr(sHg+pcOihmd_mIH6qR{MDjX*pGJq0M}vT zobk9G=Ak11kx~LS<M@wSfUt**<%g|JU9<~ZVP$i(ImJ2D#1N6Vk=mZixsE{mDJFgU z26$SSyDdk|#dje<DS&(8ppam6EOW(6F7*KK&$U8ZaqEwIrthIibsVhBN|nYac~hVq z`qPn_Vg!tw<Wp6A>^rW;BQ<u@K|NTdm5*F{Qw9k7(iR?>q$eZ}nXY+V=!Le!i7HDD zMImxKWYhAzF5}eZm|ay^@^M>2RzvDEpp+fMKIWqlFy|QOgHL8+Mn?vkTMVI}0GiX8 z@|nskm1imsm~wro#zQ92l0zDbbp^7#flXIo^r(cn9n#!(<wb{3xjD(DRSE-R9kEb` zW>7{sH1j^r593X>FH$zxFXu~mfM(bj;1f-QGO5pRdc^U>@*Of5<14wO&&};p=^Fi= z@eoHiYpBtD$bjintJKmuZf&G%8QxDIcdIJiWLuN~#;ZQ(AcfBrGI9oZsM+XTm@y86 zpP6Z;OCUaA$vp)O0!TSIG;PZQ8ywa0^+s`b8g`76kl624UA&RzWM>@-sjdMmU9uGP zs&a)SXPk5<l$G}hZK2S3NzK*O_SXH{k&OD{x?rp&P)I4#xeo?PUh48Z^kCVp-WWmq z**)vhrp_lOv?7iy5OKACyH_p9>Q^H;q7WKEk)K@E*y2PxyY<E^d)sm!nOZ^t034=q z%`$u;JdS!*>!_oMZE>`ohO=gfHcH~9>h&pDg4}IzbCP(?Y(VN101n_f)=(QxJC5S7 zM9fOQI~>#8Qffu$g1ICPN3B=6j7WNwAoEg0L!kpZz^3OTFUjVqJvAYwwGt&H3>@RV zDgZL&`N`s;+EPP?`F^!13gqK~)}hACBGM7|1USy)>rV=vQQs%fVyhM;a5$#5&f>!a zV~#~uw-a}}EXLr0jPP+za=m-hQL>d@a%xF1*!h1dyCL4oQ_a3OG5-LBYT48c!s$oU zSC#2xzN=@G(m;P2^-qnvpTf{_w-*Z7HRSqQnKf%n9+Ha9B;|M6{%r53en<UuN1^z& zjNTf)JFrYmpUS*j!awRkEx=_0y}!h1j}B^i1Be^1(!4*x%%UbzrQMh?!RRZh*NvZd z`6JDXUeeud`pDYUp%LrSV0_`gTG^ReBq7dRwnx&jbq4<cik(Aeh6g6P3887Xox>}@ z2dSr|RoUO7g1(y(Sl*j?eARC$)Z{g4OX3+G-rh(j`yQhNf@HgaLbz{Jj=Aq#WB7*1 zT%;06*3&s)i*SWE?cnXtTC*#8k@52T(y3?tehk7?wbgz90M^?Uby+WUO;Y0W?r*fo zGZ$${<%z7@h>D)#tR>S%z;#eNnl6aA+QW}p^7eLTdxB6(Jqvyp`E__cZcb}|;xLhX zGUyltE(zn4SbiRiCbMUOjn9H>qxgzj{t>I9K|4tNvt3mCo_$F@SM|{IEj)hjXwC<7 zMDgsG2RJ7gB9l&iib=`lw(VzE#B4Wzyera*(8;x-f_D7Dcs}(R1+puDQPTXtuMo-f z0<oD+NF(s7-4>rx1P5sy`(~V<yeA_RY{BO~)V!9!7(TU}qj9%!5FFz*WgDOs2#k)V zr?&vNx2-i~8ZuE9TX#xp@(HUlu6a{c=E^5dw6Arc&o_5soSpH-B9lwFkj1|WOz&KZ zPA<btRZM+q&|uqf)YUwYMr!OBQIarCO{{92)}s6N?@itb$6WNK!E$z~Bi4ksCBYoh zzjJi0xXci8wG(8w92&E?V-P{bLpURAC?sc^S7NreE0Wu)U`dGLocmb&cA$`;fOE$+ zs(Kl>a)h#y*fl&XHi6SLu8Q2_niUTN9CoJJi+6e!t>abaCpB>F*r9&*YKjBWv?7cV zk(^dC4>6A(8<W<NKvTWB2Q@s5vGRFhFa=Z&N;;mPR9(n!LqSr^$^h$8vgeX|Qia0g zbf(}10RI3NJl2bC$-iK3!A?i5Ju=*MsRT+R0eKkWnVq2V%_i=(Cc|W0zoDQj6Z3Vc zalG@vUMT=FA4)7!+T$Z_t<6fyfEXTn(llF}o+?f-2Wm(oA~$BAmiylHjD=Sq{KlQ1 zoMh6GyN^!vYt-86#8Jh!oNhg;SlFwu$Kz73%Ze5E$Uz*?<;<*OA>l-;lb)Q@(65xL zxgh$}kw{VpB=o10$^cH%co?N_gzmhGav%<R6F^lY9)_i8S|`H}eQAb0*{RrexRXW- z<nv98@sC=RApnAMwB3pb8SCDzGQQ)Mh><oVe=*A%jz-2v>FZ8-vVAGWAV3+dG~Af0 zjfCz-Il;wx@9f2Ft)S~{9{}BS$5UQWYZ-QBQGtWadq3=@99Nzk@eqn!{{W{I`MpP4 z9<XoCex`DhRbskX{%icnJ}VM@MFczzumTP}>x-0uHq^@xTI~KN$REc^2RU1CNN(dj zYXI7-Wr5?;yxO-?*UR!giwh;m_x@&3R+JS{j2z_G1Fi3qQn_LRw(N0Uo|eF5V*!s^ z^Q~P0)F(aE?dGbM?X*rZ{HjU+0K*xIHlaS9>5f?T9MqpKdgs0YrCb*0k?UPnYh%XI z>OhLkk};n7r^X4C9A!!5)be>~`6KC3$0i$S7#Xc%?u4|F+y2i;(|k?T*q^y!jC%5G z)_y9JCZDFp*#t^tAC-A$?Bya!@e{;qsM&_fA-r_U6Poo8it0_io1UvF!9PmQywa1u zW&Z%Aqg)JIX}<6O07_?_J8sA)0MthaHs>65r#i5lWMmQeQ8I>&hw*l=DLrg`JGxpP zd*cgYb+-VL0t)Bkv6FU2aBHRUOwxaBPP=(sqd4}gNv3z;ab3`QZhY1uB{r8r1+`=c zsP?3i(|H8vH7QxPft-`xo&$yX$2FqYa|l^zi2RH$0sQJ$h=}(T-a!~&T8M5Zq0LVN z7l@VzZtj(O8ck_)>K_9@>EVqunD&zvap{_^@kl!OQe&PO)PA+C;WrU@drt#}@)wHD z_@Dm(ARA;sg=v(qKU(8=QaX8mcV=o^1cy(B3bU1kTk;k2r-`+Ab<Yvr-@^k!&gBZX z`!)0rif`XT@U_k2GNg+K$-lYBL0>pp`IjZ8d<T__viq9CQb*C{(2lZXt>x_u(XcJ= zTGny-NPcdofmC6)c9jF;o<KFWkmnVIt$QPUWmk0wtDL`#<0j5BK^cBca;#3!q*r0$ z$uf{eLtv8F?Oe>Uf=N7Abt&B|pD&0>NurwWX8>?1C4+e6=A<WS<C<j7LJ`+ByL#wx z+WQbWF<@Yjd(#>tyLNCr>FSRmT;wl$n&u$U=0BRUc6*M@h(+cuGnVXX5j2rXV_|_( z+LCw~9`zOEW-eWe6Wr2icLmKCbZgn%vP6o@xE?c_=`1E?RZQn2HNeAmV0iNUN%Db= z*IA`rJB)$Q6$Y@X)zdz=D#Uw8a`aky9S!xj_J*3#Ni>lLA^!k%#&O!A()<_V9ZL6h zf#HbKJE8MxH|@Y6am8G<B4i7=gSR|aq<Bx_O^aInj^H#tK_IiqfG|4ZstcKG(DU<p zN)<WYxBHj;7IL;fv+C*!w;K0}ZUd*zZLI!8-RbnMgGl&I;Vl>=E|CS{M&0LK4ez_x zCb~o8e-5%7>S+GRGm6I6J}>xdO}2Pok##GjjFALm2P39UQ&CFCffYGBM{{oe#tmCX zy3-QY6BLL+K!9f>iuo5*({8j4V&hJ_gv8K0ARV!uE7tYjioPZB3|>Z<w%RN~7jcB{ zmp@wKr10JTuJX%$Gd$=1UL`!SKDCE3T{ZszJ^ui&Q?3zvH?habJ4M^CLs6z=19M~E ztZNoSN|n-C(m<yL)aIdy3y=b^7|!f*TP{>MtH$fF)(A3Aa4Ad10AxJloYbvv85n7R z@6x4v2wbTSL}YS6r*z7Wk>9uCR}${Q11H|0ZS5gDa7}C5X}0Ym1h`<Q)hU-+MeKQ! zC=Af=+r4Qyw5`yVo%@-wG^)g~IqA(_ftleTFFh$^f?1nuTgjZ`Ax<kmX*V%MuN}L& z?f|HAPeyNhtv{=oi)i@HJ?XN>2i_U2G}7;;V~a^uv5**bsiV*@uA?pXc2cM2-YOME z8Ci`+PB&}%+QwWK`+#B1XxrKt)D}GTt!rNjYAKS|Pq!Habf+B)QMi+0K*uAv#W_^w zdUO(lwyXO7k&!te#s)<Zf~Ru~3f_mox{DB95D!9XOOFZaGDdd9tla=s?^Szh)y$@x zRn97T9vR8!EOUz7(!q>JBQNhWoHb5<8S9rHzL3NL>|V5O{1vGrkw>*o<G1g09<{Qm z%$<>xX-(Nl9k;`|uQhKEYC3k0aTTt)ad@f=e4}U9rue&W4vQv}quyM>ajpfC?ivHT z=D_M}l1~EPTHK_D_sQLj-dhlOKBA_Rz|%``^ELT-Sg|hLu_v!IduPpie_!wn9T~wi zzpDuqkk`H+>UuVfe9`!xOSF_AJ2%DYx{IAZ{t?|CO*;I=aeS-hGOW9b8f1P1iYwTr zk5G{=kYF@?98#YGw0BK6+FAE0EX*>@PpPdVRyVu;oBca^dL0g%lwH^SH}zz{;2)<3 zSe%Anah;&zrDp+v<bmAONiO~Bg8&SSj`XaXfg?RKYl14wFW5leKP2qxFez8g+H)=w zc5#dvb2D%P<0FAX#!n1(`qcbV6m`@|;xZ`tvyup4Xk}o^ugU5Uts;Y#0N@Vhkf2?q zn{n%bMV;);6mIT3WRso&=}M&oG;O#rIpUT#R$`-)eQ7pqB<;hV4JOxNJ6-9ZqCp@5 zl&SSJjB+u_82i-aj}6aySa^|@kgF);Jq;JIB&?GJd_tvp$;KLxH<U>~F+P-sb9}^P zf@$CEfyw5nT{6^cyoGSyYT$JlG&5myw*(qTCKV;l_v|U5-ItTOkMPu4^%F{6bO7FI z;|C_Z{{Z747WOs`vjwF*`e0Xl>Q%r4V+!HED<_|z$25z*l72JTVzrd4v?rBaYh|bA zc$}`t4&GJHc8Y~05`382!<^NvL+^mN>CP&a85|zRsjdenbGkNrlBB@64n49cm0Ct- z$T{Pl)Tj7LjB(8=bpYqLIHaa&DBOo(id1Z8wkd%5e=4^_kx%o>ILAExl#c35co|@6 ztG95FjV2_=T2?*75IccH#a)YVrys3Gr1_kw8D75iN$Y#;O_S72iEzB_C!wdgA-2cR zbIGXN3hXv;Io(Jcg1;{Z)~UF?jV;lSRWfpLt^H}>2>$bD)YDlN<QVEYiY0No9dpHJ zt0lHJXHyx+QOGpR?-)FscBS(pVib&f8d64IU_J3sc}rlwL5M)fD#}kx(gIA%tBuXl zo+D>OEs}A_rbvn$a8UMR+MS}&ladvb%%C?_IVPTpfRzIoq_;RFc|7$s44c|g6k{H> zX>(}JQ@(?zh{)Rs+<(38N1M16Bw;-VT6}wn%Zv(cL(WxWBWUYY6>SM_?2&R8sUY^K z%7tL7)bq*aq*6;aY*Sghwq_tP>}b9HO(V0gC?UWgu=l292HJ8CIH}{DyDMU$!;Q=i zMml1WOR0-rfWB761oM-O(+MloXFUL^WFZ$LEXST|5OP;zVS&#ynvH>7>LlPW9AogQ zSrcM`$;VnGM`a}7nnWS6IVAL{SGevl7FEFHlSv}80n~cZ%1l8?KR2a4W-K{eRo?my zUOL!|V|iOvMnRmCDYBCzk~bAz=9Q&CaQvk8qHszaas6vcH=`SAff2ha72Mr{?@-HY zn70At5=klzOcdoubKa6{JYeUL*sNP?OA5)5#9kE6NCQ1-8u4Z=xbiwKD#0kpwX=im zRo*-(<Bpl3q@BdIzxC9dNU0b&IXq+DkmbS8EsCsMs-wrr4THL(mg4S9fc{=1!O0!! z)t<nweT!m8RLiIY_Msbdl6(5n#W9%*ourQ4>5UTul73%mj!kqLl1jvqVj>UmH*-+A z2jyZp{HnoFVFiwO>S_rUQw8}IrJEvBLlnkOB#)&(rvT&qs%oK;hTI|!PH7~O8zDg% z^{M7lb|+9|A-}zm)`^DzfO5Q!X%WkfzLc^=cLpSt9+Z_!v0c6Q88I&V*bqp?Mpy^Q zCjzWbDR2=7$~u$Qp^_jFK7L?&8n)88QPgA0xRZf{Rixjvg*eX{HDcpy$L0gdoRAGc zDf0lsW4>rfHFvP(+=ZB`;zN^9Ic}e=GT{kePeIg*a**ru94P7UP}{zSeAZVa^BI&W zQJ+y&ys*woaw=`vKPcjp8OR)S)~}neMd&kWZbRd_6x0nXf<9kd)Ar%HIH=omWGTgG zZA<r3*mUc+r##Xks}c$Msq;yg#?j6&O+;bDVUBW5YOK}AcGZa{zyrB7jNoM(sOV{o z*$1)dQ9BUoPs}^i-Q0%LPTpjUFgtTX0LLS>Chsvv1Y<nXu2u7n4PKVi9-|$>afQ#m zX--v3cQkR6$0YTo-lg$Ve|d83N`1v_BB>{n*wk{S_RBA7eB?VR?glB0#CPM~n|68@ z^wbV<>r4l5AdS4^6#oF3uy+6rB!Dlet0CNEjkE;^lhUAxCb@hcl{3p8hNYTsCL=4R zRYB|Yt`Ec7_N!@X+oCrRJgn=M=n12fnKLIf7iMmFwV8DbdtJi_oAFuR7DY{FW&m%H zee8NvcQeg<s7rMy#_$5D>;+AyAUdQcmHJbhEutb0^7T8_cJ!$g#EZum^{AOvMN`OO zgHxbaQ-T2RSxH$PceA+I-9xc#liHf$vQBZH*r`GV<Pn-#F|%<ziiJBpNljd*bW1QK zlDMkjN~>-hW369!_h71*C%LM(F*B~x3fAvd4fZd1F^AhV1_S^CfnDvC0z?`4Njc=# z1K~SZ{@-$?i3BOf(z~=M03nVCrFYZPCkth+7UN<m!99IzUe?v#RN6NG0C<sDVr`Eb zDL*GaHFTO)(?x9?mk+q)k4n9Xenow5-^h+WOpM$fI#w7A&y02B718VWEi4hbjsd}} z37tghK;Vzot5vZa+LV=qbL@4&Z+g3JAtkUlUU8naR%rLQWFSAOsqKR&FMvVDM|!O~ z1GTg-!o_4c7z9xw?gWl$mbsL^bAWo9l0ait$4VOIVXGi0FwRH^ur!gd3VFdjDI-ia za2#@Z_odsO*}%m^mDufdaguzeB;fTG14z%tdva=N^4}=HIO3poDff;Gcda7Z+>TPs zqjE?Y#{|^paPOM0YEIV2KD9h;o*N|RBCVi}w>U42q`!tOPCo3xN%gNHu-e*`1bn+? zQ(mv}rQN&$&_FN0H52j?X9MxCCDRV=X45?kqczPf)z?q+JsL}vFRtIA={_NmPJw;D zBQU@6uN3faEphv%U4d}Ny?c(lp|ov86Y`jw`B#Vd9hOMu4BYSA&!ueLz31Qjjt*qq z*Jb&$SHvY@@qB82=-Ha+E-jwwWs=p*S18_OB=p=mXWFoJYZr&a;TU}X03jsv#dQkG zWo$N7atN-t!AWZR8%=Y<QAe`tKOcS?d}a6;o(K51@aE@9@m`w*i(##3_UaeSQS!*H zIp?@M8u`X+1+cY(7-ciYk$|px<KN!8`EESO**EVP=+(~M`I>a<%7R!=-bU&HshnqP zH>c(Q00XdldCA4gWfYgn{{V%omHH%RMy0?c?l|jAn{hblQrivp1Ym?9k(z?%CTs!6 zYVx$^XRCM1sk`CF#-(IBklkye_=g)G3f}i8XvnT-!)$-HY}0N4In8x`Hk1A-+odCL zY;#>S-}Uo6YTLW*{{R5;tu=ST7@lhKlM8|C=}>9W1c{sjg57&nsaZV5>SQAv``2ak z6jOFx%l3DKFFfO+tr4R`u0y&oA(x(4`I^SHQbEEtM;!O7_IEF7IF>x;p&6$c>t<gj zti{%JdyOXJ%D7GsDIn-YW~jp-ZuRLiUq`HI<{PD7HawI#?OdJSleO5W80%Wiq^w5U zm|&S72e7H(8(11fgvTyO!Konuqy+S=@1cWFVo3=MJt;1-@#mnapUXdV<-IDk@sWVQ z`6!O!u}mDcDOi*rck!fF!N+=YF-7%0^>V$#ak628g1q(3TY^2na!=N)j4|9zUWtPR zJt|$<(NA3o0SX8iq>c8LC3^QXoAJoxdehwuk(2GfsBpgJx68RyWHvHRd())bv<4WY zCkL)6B#_9Y5!0cf-NNs3w1BtW?dwVze1gY2$6-!RLCrE#9B4~12eHLy-Ij(;j7A%V zXnDf71B!^{-yq~vqCSR`S`p@0w{at=0FY}+Fv^@&Ya$8A7zd2jlYoE?r*<=0N%R_b zD@zXTr#{tH(3v`MioW5@XP<hka(O<O=}jxE6s^>TJ`uR<Og5r!xi~duG-)_h-HKu( z#^p{`k2o}3u2hCa6DtH!*Njt`0Q*Sfb*G{E^1~SKQOtl&8C!<xF-J1$WgvKneCMxP zdTl3x&%HWG&J+W?jFLTQjX?REjyly}LX*9S$;^xoJoTwOrQx&q8d8ICEBr$unr-~o zEJ?tm-Sr|W!p$1W;goI1sia&9cIW2wr--sMp7ewO`|<O1%}v`c&5y!`$z0-ukVzvp zFmc|Iv&X$VIOO!kDkY}oa@<&D8~PK9kwKPX?UBa=wK~xeK_GH{YDq>P?%;aUjFzNq zL2w!NfHxWfke_!9D#NA|AoZwPR7_-=TD^v)t%$;JQZs|rmOFk)YH<rG1qu9W!XQzS zOB2*pY>j29Sy>F+l25%gRoZjA^Q&PClk)NFOOTuzE=HEneVFp!a-48_*R+1g7DN6O z*1d2e7=2Cf*{>tglzpe>0ESirKDe)Q{gf<X9|LuZmSt&|SCS*J@tm6Igj=NVwb$h% zo_FU-c7L2q&xkD$@#~9&5R};|LRfCwn&-5U6xxiiEXd1@fO)|^tLaaHo)OUeN%5D( zcOD_|%zEvemX#0$jJ#@cSc=~Lj=l@{E8-o;#H~W_NqfC1wN{4A%1C(8Mhb!370o&h z3C-(eAH{x$uZG1^l8TGfxi9<%R{YPFq0!$_({AOCGTuSUlm~zhHRGCy^DnMjou)?X z^{=~iAKC9v@K?aiUVCeaZV|4omL#4*6~aOs>>T~<0gCuVq!T7ovmML{Zn@1hPm)rM zx;uK?sWqnNqbq3F^or)pGjO1L(*!Dx**F>CRfxp9$RmO}`cg}5vP!*j2PU;?bvRY- zSC-VOhwGXVf->ZM#M73`7-e$o4mO&#9jJK%h0A1MlUS)F^($rldY!NA%>i#5_@Yhw zGies@`|Q`E{915h(}p_A<Mgfr_Fh>(xBO$jY;6X>cXeP%#w)w{ssWb44nZ!?KPoXQ z^ON-d0Mb!eYv*bC%l`mMX9d@en5gan;}rXdnBevvl@p^oeeaYGmE}g;pI1BB;e1;v zwzYMFcO9qntTI3uAe!FsG$d=Y<a2@6vL9jtn)D)?vGY}Rn|^GB$;TO{d4-!8t0=Lt z_NitT%NW`){<*Dn=tjkGg|Jj}QkfZ^7@~<mk$?oA`KO4&1t8~e%}WsTC$$mq{%ZF3 zr_{;GrE}`94cf;JnWx0dxCm4n9`%RuMX_t9LmPl(yH&@wYpK#Le5ham?og^QewE35 zONag@dK6qLwa#*VtC}y!?&WSaIWO7=Qi@9*J4F`_6wJb6k)BGAUuyE`+Bl)WMkljo zx?hRDAR5PxF4yd#e$N`)tc*E0>s<1K$IH)Z<eZy+huh#`%TL}!noXyfelBFVXA!Q| zPkQKtY}sL&si)hwleoqsCzF#`;FBwZoQ}L!J#{>q?ake@3&grD&ZyRnY|1>mhg06M zX7HA#?m<LV{{VWs=;ALS%7ffft|Jl*oGH&*-D<Twxl;CzQ_kDK_tI}Bc%V=Q0p})& zybW?Q=UijmR=o?$Qi`$=z#Qil6GbD)%nI$#0M+xfv?XES-TItq@E^&AxpK#$BZ`au z74^g+ai}8#4t`#h+N%lT`3_hdV;v}1w*n6y^_!^PhK_|dE^fyUAH)9uoU>oL9)KX= z(R1JgnlNR*Z~*MJ+DHoKnIR7z0(0Lqmv$#fK|Kx~JP{4EuG@z#)NUM9zh*WQ7~ODt z9CfatfMnc3CmVRKe_4i9m^N6hFr?COPgA=F{hXIBi59FcyrH*l=I9&JuG(n!Qd}9@ zAKpK5dYZ%2E_TDQzGIH2x(z;Toy6nQCZ#<Ob01Asq0FOo)V6esVJ`KBQIGdV1w}TU zWdpRIWsS>>5(W)iS$FUbLGMvrz$c3tBONhTnv>M|=LH=sRMB9tlT#M&Z5_Huge<Gq zJ*s<+78qw}X3U{at_4@Sw3cl@WwNSHyrh}#E1<TLJ##^h@6C<w?Z0<8Ubr3VoLl#z zdHjkMEq_nH`umI%;oUWugQvvdx%rl-eLmFurrId+{>K=r;P44Nb~JG6Hw^pMcXrh8 zaZ>)g%=OZ(S@M=}Z6lneAhNX11&ml7_STYopoHKa=Bt29Fv#Hcr5CNyov!R<-C0E` z06>YfV<1&XW1B;`E(kW#9J&#a&1^6Zuj^IrZQZTdvjQ>D*2+m}_Gdhx?Wf4my|GJs zqZi2}WkahffH@Tsjkz$!sQKfJ(%Q05VHpb9LA0?ws!Mh#bAmE>H8NIu9W<={@5AvM zG@F=i0I=(Uij&C_FC9O-OC(D!dBHtRDn=u~B$JBGw|yDYJ4!ZPbt0S>Wl+o)p#ah3 zh*%ZQN4;1Jj&_f&M>ZRU`AP3bGrfpPDOr+8q0{D3>rugMkvqwg&uUp%gdI*P%IsGd z>+4C*;NsH$y#(5;oaE-0YAy)ifz3wfO9tnPN5Nou2dS#LmWkbeNP6N{Byhd+Qb<UR zwvJB}0GTdMGfL-hzy_z8_cm=cW<Y^q7$11`G>;?f+)jDoq$RiPWy1m9m*)yb0plYy z^?Q=z818<B6(U#J#&8IsH%3a2n4I;cW!er$Ki;JqN@SCs<WuEcj~`~3xe5W1w-9<` zr4no>a6c|{&#f3Qutqnt98$V7XDf^xQnlD6WpC@S-OACru_2gnYBt*YP<*UM-!&jP z!BMo1wCNM%7~qqVO-i-(9C>zZYe$y@Iece<OCXVt$}*#_I@6=v0W9M<?NQtARdNaB zb*i&tz4c>*<bt_5?NSLzB%hUsN=V6pL#Pf;aw&=#iDpC1Rkah1{pk<$N*%zJ57)gt zHkKtx83g3iD(7P$A22)<N}gdHfChTzhLwtozT*-{mR2rQj@YNjL0phC?MSMH*|6KU zZO3d=q)Z=`R4L;b<kjzSOTC0fDl${=at>>d_@Ivd6)&)D5)A%z*S9JHDPOH~pAn+- zd=YdR%DOONkF8~8W|<ee)bKm>*|-2X>FrfSYqfW0p0#%TI4zPG^;*l!q9Kx1k0!Y% zuBW3Fb#hh8w<Lj+gHX#iln!LypK5%r%_5E8E<aji(V66B+7cnt)S85nckXG-?frR= z3AHi@EHh4$M}<CBUV4wMCesN6s)3BtjDe0%dc7`Zd$Jr2#A7Cpotyx;2f3#f49ryW zJJLLdJ2}oXyWXd**k0Nq85GAMB;}1bZe~z%gVvuW-Ri`9el*!*C<Eu5{**S^R~XTN z<<>)!$28`PxE%J)0Pn#Zie%Z5)PsNzH0`E>)#@yfhG22?1By&BQ-jdbw!)+XwTaCU z?hCkqn$Mc%m$DRccW!T`MDsIB#HlHq0h*FY0<JxK(j=fKDhaLZt#q|9we%aiGLpO# z%{&vF_Y~%F<avW=V^OS(PDgr%koMQ0;QQYM{pwYjgKZ@NJx6+t@DAhhk=~q)7?&tF z4&tFEfi~U8<P+EMsN%zJ-JE2KMM)==WZ+}14-+Fc!cRP!a?##Kv0K=7(7*t3ih7Kn zl<vn<N#(A1Y@NC1)|tO+V>}*BXxeK-8;@hVBo1mHEHh*b8kESrkImfB2#re;a6ej0 zRdI7Yi15jr^O|7Y=HwltcNHsKEWGCfr2v39JPz$iZput+0lRzi^{9k|^y%+XZy;py zPo+evNn$$t)x9+x@3{B*$trROO!uc5S37p{LF-W|e!Y(XREWkoI&qA1M=>vQzn;QH zRU5hLC?(}r`F5O~W9wELMQj0q++v^rLO@fVdCd~{wXpOb3@)zfT#_@^n%^T3PC4g3 zwDKM1J-1}=XfSTVoVPtstxLE)SsQJS<vfNtCXuE{-)YVW&T+*`iWHHOeze9bC(7d- z<Wwm>qiJq2VOa}0w$|O$dR0}DOLjQKiIQ?^=}{TT92!9e*zl|Oj&f^l*qTyzWi+~J zl<&wH;-*)Lmm9LxI@^^%4iB|MC9X)o2;S8BmqRDM;xJ(!2lA%0Kwy`q%(KV5E(jeB zLeq&thR?ozYYtv#WQ{G&8=_Wyjq;pl*S#;y(VTDzsPoG57<vkR{;CE$(XI9(R_Fx@ zKPDKTdXC{(KEO!_u4zjM@y1y66q}14M$=m9Yt3qFWLJ?!2_ui^Q7|VMTnu#vtk3hr z1~Ze2f#X~$<w!j%IXyHKo%AAGl_}+?IpCJ03G(L{3ri-^fyPOx5CDe<IrXVel^8Ue zve<M7YTy7%3XW*}(Z>Tk^HQUPQo%^c#%dj#_Ysmh){1CWchpv6oOh;3S%v_?^{ET- zj^?9p^{A}a;;wSi#*j(s#}qzRM-56269=H@G=LrCG03Em06TY;&w7Z>BAP=R1a!?C z1IPEau<uL6Yn)`$e8Sl!arC5`-IHr>G&GyAM(lT|yQz!;^H8$ylOvCMLyYh-?^-u> znjV(WYy8MPX`nX>2OW1(zkhmE1P{C$J$<TEcD;z$Vj{^d=0XVPJ*n&v=Z-Pd(lcQj zpOp5fqb~c#NM69wi<F(&Nw>Kot~>EfknQKF9ch@(MoA0Sgqd*4Gt)fQ&2$o5wpYAi zJ)G*j!RPR<D#=<qNYor)5&G9}A}-kma0ox0aj~#aSJ07L(@AJ@*6m^2h(nrgnR?5r z#2kFA+eJTe`sdoBSWHtZ?IfuO6;dXXPDi4+z>E%XF+#*t5;}D`roeZ{87CQB;MImx zApmr)XD+98*4;+U89=NXsHaC6Xt(D+qMGA=(a#;|B*%l!dk)oyP;G37H_AvSBOfj* z1_xomEOXzrPG5IXP?g9hI34R{E|xNrMc)ZO{7f#v8OR*sy4WOiZJ^@09|;Y&msuwS z0h;QgelQ6m)Yp7n)`ujm9gAR>mnVg-OF7D&nZll&)-Wd^b<JEr(5jw46I#cynwOcc zt4|}@CP2<{#bGu<!8v2zv|%P<UE2T-LFrUMX&kX$b6P7lXDu}%2Vf&6q!KUzLXN{G zm_``?0JYMljxRT8=yEC=*FmP*yEScND}ly6eQ7RJEw=;%)`;RFAj2)xgH~h@CA!KK zv*VCERY^CnJ&eu1Oqd5C`qam39&?_&Rat|i!Olo0k?B&q`9pq5Q_`_}=qD!iA$e4C zW6J<}%|NJ(6_{>3=QSjwJcim^o@rtkC3c(vjGtQFFn`QR0Da6r3M$6eVe=inl(z8! zlhlfQk;>!|j8==YWM5`^zs8TB!YG><ZMt2}p0(uGDu1=Cc8vb?SFU_@i2ne>Cjr45 zZc``LyoSy<d-y+iW7_IL{A((jrRe_vHhPqGqbvUaS|ihSw%?>*AK~(wkHWk|z{u|; z>M`>WaDKJ!TESG&@3MYV3mpCx;=TvNU);JdV1NKUd97}e{=APK&z}BE^JdqH+kcIr zC5Xx{@4!~dx6VT2Xdj(r_?ds=t^vxGWKu9INmCaA6M>5Arqj`MvEL-rJy|?%8v|}g z=cQ$8uG3r=BOcYRCBy7E80c$1SwQokUZr}`RWc%;=1MUwjAEHGjoCbBy-pD1f-rhg zTtkttit!rdm5)hX#^tR5h14J*=jRzU)A->FczXIg?IAa*u4BXSgujJ%WA}pqitM~( zo@a;k1GHsg>s@e5W&LV-)mxR<L&^L<XwcY&X<9>^bI?~)p{=cz@_n+vU)#(II)jE^ zaacMsw~|5i&2+X7sUoola*EPVn?_6Mu6pl*zhQqKd{+2pXX5Vw_{&Jt4BmQAq~641 zk_i?=wRd(qc;>uAUD3Qv@bku39uV=yg)V{O8235{2g$iWe*A2BBEGHtntnd(zX~5v zi%&>y?JmmAC6xSbV0kKg5;I<z`$l|O_#yjE_ySK4c;)WABjSj@eIrsZ=2$1jS7d{# zlfeg$YN1LIT%6AB=-=f30MEHpu{5PkQLL0@2>e~zTDf}n{{S=K=H7trUPp0IM|4v= z)C~7E(O&pBRL~;wF6D~*Xu!IM?#svC_Rm_uys>V4vxA;Nr*|#J{r7T{>FKCkg-6;m z_lT%&G~cjF$j5O!f;-lpp9zlgGRG9(5jNY1z1FWw8A-HaG-OHWDmg~<<ou$hl0eE& zM#!d1Ze4THPfFQ)$cZC0^D_dYYUiyIe64}W_p6I$?0#J0rT)!l`LZ)rdv0c#L1R2s z=!RF3){=X33h+6p?Z{v=$)f5?=-wJDib5)dJX2V_apVz`z^AYb+iC8BROIoFDjGC? z@dVK><F$t3IrOMDl6K>ooUU7N??S}cCZ}!1p;Rdn<F!5FRzuEnNLPHl>E#Gk{_RtJ zNNVV*<%Q$59zbD`#8b)_#yWJTBrF)<_25voxg9KB(KP8b30fG~mI_-K^sc{I&>qk1 zZ{@i%!laSV8qDwnEV{AWzy?+XSG&RC81=g*K47<D2vMFzOOHdI?aIf2Novuv2Lu7$ znf7;ht{oRE5c#q?S8scvJ(Raefgpx-jFNNI()gCb3rh`l7;(IW<aWneu2*e0{{V*? zmHz;*L(i?ak8$})>s45ZE}LK{9OTu-MKOTG@u%C{#;nB%ENhl4cK13j-IU9Kc9GVf z8Ov=WBNb+75zav8)}n<1yLTO`)I{GhB2rcJj=ibj3xo3Kjs;4Qqwi8mu;dy=*$Xzp zSf1vqayDf!ts`WT4{DMaq!}3F)~tM|2h?*;G7>;h!K~c$v2SaYnF{hcQ-oWiEt;BW z$xuZ{<{vA8$g5J&S8PaPFP{8no@3p?p@TA=r)eV@6&z4JNsYyc=O&X%T7>i^NQ`fg zYE@Gsl3Q`<Oa!)1Juy>T#oV4~QC2c+cy2I7SMrp(J$dO?5;hJ==AxP`u{bN5ZP=w9 z0zd#!`qYbpai7kk5ckjLPFRV2x80_-DegIfCp)kxWLIyL=QSjdWinR@?r4nw`@DOa z60ly{7qs~HN(ek)_4-%P-?BZLN&7bIa)K1i;t4jc+;n4_`Q|Ae2xoZX^IKu#JvgtV zzhd~-e}S_k?y<)%sWgFekU6hH3Ht{p{LB9UNuT+gbDQ?5E~)<j=}|qe_Gk?skNzRb zx6r}{oejGr&9n{K8?)c7dLQgRr41`V@uV>7Huv#ItxX#FCoH6Yd)~f%@NT0uzO(TP zb7cct#*plk%e1*(tBUV`WPgeJ(naDu4^GhRZ7ww%!!#3tv@5Xc=eZcHD@s$0)L&Ts z5x3!`{EaBnX~o<5{{R^${dPS|_MGt+pQU(LMTcCrh6JC@WxhW&Xv(Jpj{Mi;rKo6D ze1Ri0uHk^d!D4z>-rpWhucv$jF>5z)_{M7qWq&%&v$5V{2*-W3@Wl5^Ht8Kz3lcWt z7_8?ne$S?#oBVJ39dnb7n*Ov%&t`RS8E_lEX*NHaNI3_lYFVX?h|6G(m=vO5`;OD{ zj<ph!Av+=i6RU5}J@HaR&XOSIn4F4FGkC}qJPy8clhpD0Rx;GJu7_v)FE5{~_|{^j zcU&U#&uZ>|E0h;naZpJihHIAnmvE!S4!wNk;CDSMqxhiWeOk&rtfgZu%{)uHf7e0f zNnR=W{r6`M?#5G+N{>o>icdMlX<K3*;P<8b<PN;okkV}Wxg*Z}Or^E!vPoh#_4-y< z*+hpt<n^r`dD!bWU3q+dRYePyIO4r(X<0Mn>TcMP!c*MRt+$%}eriIJgYt4|(c8*S zNg<DaO4eMc&z|U&ZAufk<l~Ca(JhRc&7aN!?@^3*&1a-jLm1xs{mov`)&Bsstq4+g zPM9Ou)-KOvWhT--zOZmDRA4a(27e0Tz9*@hU+|!aa<0rzp~ZC;j9~z7B!DsvaGw>W zf9-t~tji0*6pl+DQGr-FS$vO59`vKy=ZI?;w|cLLFXz6UCYW3}%wq!-N3}L@muY6& zGgPcfrOb&Ws?zQ(-uXRiR^Q5!WDgj14Ulor*94xY=nvhZ;=3DmrBW~mB~M(M(TVT| z01H$jj1o4CRm_$@<3iP3`HHZ!xbHL>n6KXHL&5^F8RsUQ4YZPOkRZ$SsXwu&oxyp6 zD9_5hO<H|USyfvmQr_EuBP;7p+y^A{*j9_^YO)nG5Ts-udPwxB%8l|dC%F|I*JL@U z^)gyrj>Khi&IMVB7Y!*RX&eGNn$eF+RFHs6WOX$wX^3BIb<Y*AOPB4U)yylFM#7(! z^O~+3W_UHxwv`ws<U2i0Mg5Zr+{zCpIL$&Q+rg`x!^Y}zoy}(7BT5RoG25PTU9>t> z2-zxFpYKz~n+%23)Cl?<RkwAc6f4=@$CTQT&cJp!HM)wiK)z8d**PukRlGx{E}5-J zs6m0ib=&&X(Mn`0$11q!Yb1}VqgmFc%X_0%-dPMt&48`Q#au}h*W0~Z&~)^<vPWVL z-o~{IF)`s)Msd=irjM4Lc*brvdK{$p5yg2NB^;{)LjlEJ@SKoo-XNac(8q6nn=_6x z>s=VP0CO7PjyS9z7F#?pTHQb~C8UA!y}{}$qMV!eQ{3a7MBA4{K2167uO_zM(nPFw zIUEs8Xk=bIvNOOnzZ~m(XKy~yi4#7!q?n^Dc;sg_omi{h#<0ZN+88SgyI7Diy+u|q z1#(!Cp17`{KqMi6P)|~6LaySa6#AS}gp;_XU0F1aYwT{y88fu-4k{_^=86%RS<4&| zT{#I85_nwjF-a`zFI6YgirHC-*SxOIXG*u7e%%R-s4Ba1dR5r;`;?ES;(KPNwhT23 zg*`|dnz<UXxF@wtyE182X}2D%%uPDrl0p!B=A>I0U6gF(n%VyVTh8Ny!3LGf<X`|h zQnitO*`{Q+pDOX&IOde;5=3(35!)T>SsXhQa1?sbSOp3`ZMB=+Q?Dki6EU=x`EtM# zI#M=`A#!&SjANS8X=EdC&s-Bun}8H`>P<>quheT1H>YDL>8-|O+}*$w#j$6Q2W^0# zO4ZzvA~O<8HU=trE%yA_`AH_Vx@5ZU*Oulp=&GcC^yK=AR?#F(ZJ!wGah!_OkvzeH z*RM2@@Qwp@80M*q>lG8V?usATiz9;4l6qv0)cN%6qA2P*8n?I1;B`C?tvXUx-Z3D= zh%nVR=!%tA<F3Efr`>FXgU2}ONRb7HcTNvlk)H&r{Mr60uFWH4o>Mp!)!Ci7wj@U} zoB@T$E$K~0F25)xM@BUELFMcx+?rN9lmclcwn&ZL#=NBo&kSj*cfNVXa5GD@%uosE z)|wPXS1fXB8nl^r<_Q_2lNt3HrpLS>3d9yXgHKe+`I|iEn<tpEfS)qwgNo5T0#WPG zc33b67(SINhFO&)AqFxwoY2yFXXpFGdQ(vcnZK@knq1abMDFg#le3&|4cyW`#Bf{^ zG1`$^%o{gu#(AM8+__!|I5jD|YCCOk3?z3dypfthqjD9Gbffr>r8tyVE)P!Bv5_WN z5}=OtYWs>~WO8uKq-5f<d|e2a!?(nrxfwOCOJoP+de(Nk51*ml#>WAW^X*Y3c9{=E z+CFg9<qqn@Juq`rODPN#{N9zLcW%ifi1@%K4W8ATBwk#Egz7%<t|qn6^`h?|F@Z}z z3<$+YRh2gqF+nQIFgB6j)`03hR?ZJ|OKEIRa7WJ!I6TsU5Rtc*3++Hq@{V}vnq;bh z@s`P<%{6O-@*~QhnF0K2Wjli9Fx}|fPz4=5s0=c}nCGwpnr`+$^+Xd$R_T{+cJs|F zijp0y+2V&GF5D5g`kEL5I2a@KtlQ;wG>W>^89|I9z6VUxh*)GHNO9XV*jyv-+HvVf z%o=1Hc81OmrF8C1`B@@iu`GzYv-nglq;A3B^~Xwkr_I+R(we{`oMcuFZp7blrajy+ z;Bo~qimMPfp`{&5<2+>g)4u9Tt%lqN4O)6x>`m-OuB4n{g*k}?k-!}=X>HY5fT}an znsJl2w+9tm#W!#{D0dy;^Fq&ofCn@@ilYOrX%*G7I%IV;Hrlx<T(Ao<1r8K-rDhDc z1Dxid4npk&s6DAX)AR3ae7F^x(^fawbb-EH5$jGkk}bqzoMxlqA^<!1@7ARX(iI0G zY2TLCC)9^>huPPR(~3Je40f$J#t<CgvrY1W<xT;rO)*=qKy8JxKRP8WR1AEgn9b$B zz_}i^Ah_Cbv@kR=>X?zTzE`-WHVlLm`A<0}mPHv1qiLqiCQfnk`q9kMFID6XCQt<c zg&nDoI}qE>Y4NJM0-u#fBkbe=&C?Y(vno2FVue5@e*$UpMnNSU3=Eu(^w{5U!2v+@ zsW&8nKw=4Oo;y{x**ESqF>qbmYn~Sr2V@&tgPem<&ZbEjSp1zwtvk%~LuIg3{#07; zQkrXVsO(PM5rfIaKMJRF9=+*2`2=NK1b3u4`FQ$L>vlV^ZNTx(JROP`In6P$Fi#$$ zhmc4!jhGxUt6hoTL9ZbaVR;_(-<jmbdQ#&Y?hM$Z`L}{PidMeD<-bBnpAg`Y$;DFn z0}ucp9<?-um}Q63qew(@7h#<CG%XF2xRcw7GRgb1>rwA}KxBL}fI+Jc+n9nj=bvhh zLy+Goaf%yjV;)--Bh+KLJupXdDq@bxjvY#q$Uc;LAy^fSRQCi_cPdL3QM85aO4nMA zUv;t{^28fxBxfR`XAXa@N4d&w{#1f!qa)4Ak9wOn>_V{{#<Dhd0RHtLOb$6c>OIj* zf&mT=N2N%t%m4!!?kVy;nBKafr1V~K{b>Y+0SctIIrOO+*?v-^>r81IAY&q?5$1Pg zHP~qRy^p;-A>qgb6SpRzV%xKf=hCD}HmP2@tCB`)>5joIjPeaIF8uBUa&S#J5x9(P z2ce{$-+HQ?fG9~>mwtm}3$q;4G3EjnuS`<y0mvsL^FuDi&T;gpx+SI&fY}(q^`cbT zdHg8(3vfsWxukQE_kjR(?@yU^98lQb%p-y7b5Rut#108Lr|n&*u{5d^cRZ8cx450I zHF3#qN2M>y;DQb_kxBe~eJR_3TpkX3(9-yX+e~UQAUWW4rm@;d#s_L8iC+MHX@oZH zXCzZnPgKXuIN-;;gM(NahJ*{d!}8~v-Hn;|a&hQsN^dF@W7e9Lw;`o#vxu6)@on9f z5_7<6O%e&Fu?9wCD1D@#t#@8t>?sEWifnph8^By4&T74*YeqyOp)P9|LMgV73<(Q^ z>q?=OMmQd{h64#uSP|Zd2bfppDzy^#RgJe}_ika6ODD|Z11cy8ssIhVp7gOE7?YY> z35`f|keuhWS8hq#P67FWt8q-xI}}`#RSYb$vlSpY&svz?_A_bjUhwD!?%)i7K(3)3 zRX}FKj+w4c!;bH$T&u3oplu_)b&>6G4gui(>hvk>bIVs^NoNeIA~`3a6(mL2<<2`` z)l`^5fp7@y2dz%Z-Eopg&o$JRmom3RUQ$Zpkjv#TW0R4MwCJ`nbs&x@l6<NRjh?2Z zzQT5T4Q!VO032{Cc(EA9IVUEo0+`DZ7p_HJiUpO`x3&*K>qXL56ty-q><9=eka9ty zISsP7!w~(&S+d!*<NLpMpDaP)Rtuk)6NB2XWJi&gaT}T0<2XatHC+6xz&7MLKaE+D z%FO!-BRpoSI)&UAgvrPTv1;wfgVd=qiAGsN0C)zi+eRd9>bM!Gi)F%$eML=cACWO4 zVYB<E)~YvT?p=ujWapZ4ruH2GQP!k_-R`DfybNT~EIvlup1I<-c5cXRJ05rO(F=GY zEbYhIQ;zlGmib$ViT?VJ*1fOe#9=%Jt{dlTl)?OK#bO3qm<LQaJpF5)P4n6I{aN3K zUgWR+Xpd05h|8wksT?)4V4tOUkAM)xadR&iKQBL8_j$0|WZjfN-2N5eJ_U*An(beo zn;h}pw`<;7Y5xEWaJ6|j`G1+xc({vi5?X+}yvUH&pORK{>P2Pv$(?*hreuJ2ASC)$ zt<0y)`43L@*F|!x`6IpjEqRh9lF0m$7}X2wW{Pd3?yG4d$@3C&c&IK9ltVUKKDBa{ z(Glr#frm0438ayUlPoIIN~<sTLF<}r_wK-Rf(>{zCGQ>a(GJip+4VS>k+;nGb6tmw z7iWd_0gQ%>gPP>DQu1F}1qX3_k814vZ65ys4qptmL`OIs>#Cc!{{YsfpIK_z<k~6B zT|KL#wQZx^)=rBDm1(zN%YPBAm|#x3j^SMq_m#}r=G5BKFO96?Ku?%BR?kYktLn+C z+cZ}UB^!2yb?Nl1G>o$0P8^;pE8Dv*J&Rr6LvH(bFqOdLrhht~Yfs(}V5&=Pe-l?s z)#b4gBNm#~7k8HDIX&tPRx5jnKGANTQodVfpsJR{TqtN{NuptqA~r!4A-Msz6Y})@ zD^%0fJq`I3RnZ-`oS>Nmoa3c)z9*4|`iy*`YpT<2;+E;zIU7zvu5ZQh81-i3<iN+} zT1GcHoUgv-6Oe&i4hW%TX626^s2FY=r@afcmx1)EPQ*)cMY$R1YC$m@i0XO@tXKQJ zed({b;YS4bsh7OTwZ)Q6$L3;c+OP;PD>cDh2<mZ~)CuwcoRBL;WudC_9EBHi5uPf% zxsZk#=A~3Q;A1|t=7gg9nr-sxE06>r8kJD(9qBib+w-K1kPc3B%|x4!+PWf4OCtsw z3Z9~wxDddMik$-f@bv?&K_dxE<0?C5gEcPYR}B*aqagOHAZ#6eYKW%g_Ni0`QZtfA z0MxrZ32&*r;menT{bxhSUi~Z4?fhW!*g}r)8>#t~I0n3*O=%)!M98j&3#mk93j%sl zyV-1K7;AQITxy0}sbt(#Nhp-Adg8Nny;fV>o7PtWCFPc>O(cjzZsc~X`Gkz}kbeCR zPEx(W$CpbDK(2ArVu;~XatC^BAff<z(z6od6+Ei<F6?WuM#U~N*gOMDP=YsfH06hJ z0gidiR@$<nF&BDaha)32(-UWb$E{dxxW_|C+qlI=?kD6xiUA^(WdcuOPkVd}=PYUI z60Z${O*<`^w;3yCc&3=crc`rMJ-QYLBoWq~fTUpY(vw!utMwR)Q9|OJ%YX<SYHSWO zO=-e00Az}lceyfmAVp~3)E=Uyx4Bj<6kw_EOA{6(o}^}+!BjII{*>>~Z7Yt(9JnOp z=M-GV^2fODU-q#}u<hOHQ=6B%P@NPCZsaLjLp67Ba$S9KRwF|q6Ys#O06E$PIyECK z7oS5(%du^B7}2|6brl$c50FpNt*d;zi~~wR<l~NlmD)3Jsw49@TU_oO7?>0ISJ1z* z<YvR*tSt~8OWjIPqh~zV&$1{wUZm24g|>70SH1qr_X%t8LqbGCs?8%1N3C}`IMCCq zza;+v%;QU+6r}n`^OFAnBO_e7NAW(fwn-FCD#+UyfsirMt$1t2`lf?zEH*l%_PLp7 z3cVPwZ2OAE@iAyTL8zG9tK%K{s+MgjOd{@amKm-Jl2>Uf-}-0J!kk=U<h5HHJ|NZg zy-&hdS7@TkN`_`uP3P}9&Pe*2@cC@xjoSw#l1Xmny;oY+FK5w>l&E92k$mO=aO4{D ziDF|b9nAj#InLol8_Bz~maJr=qb>gcugr#PR2U@Wnw~pyBP3v{;~A&C0!7DqgxiI6 zY@82z+EKmiao*dJh|(z;G4m6iYVDwfol2E#9Fi&(x8<FW-fZ(zSzARL6B=z8Vt%HR zwV80TlKCCq?6(v~!^F1>!#&>J!`RmU0L0m|u3Ecre1bn(=l=j@Ko5qsrc?8Mx<ixf zYkT5!xba*Ns|Hx@!w`K<ELM`4)s}p5({*!@mPK+nC+SRy%Clr+(=<2k*~l5qH16X( zj`^=EdszBew&3l#!Ri+=t?cjQ?tSNyYOubAr6cUzpMI5Y{6qHJg3hRdL)6qNEZK%8 zUv?GhL1=uWn{Dbv_Q4C1A;`!WG=lKE7uXj)s$kIJfMDcQS&Qa4AXbv@WowBf%*qHs zlj~Yu5S~f3tv(r1Qb922J?gYG!mJ1d!1b-43KYKau9g-up`-wjS^L_clv8N>Vgv}F z?If~;lis|q<6>J!s#{4sW&Z%t8yGd~C9s=Us(iS`c?ZU}c=Z`}##l#ZxVKzn*9}FX z?_iUaSf-C9vxP#dg&D>PBbwQ;g@lL?LNi$wXUtGR#(AxsHHVy|CEK_itBpsw_EqI- zdLw4pNI5-ys>G)_z{jl!y$Iv$Q!*;B!N@($Q)^@ACoZg#-s$A>;#I=;HK3rD1E+k| zD|c0Mk&Fyxt`W|2+OyH<j~0IuCt@X5#sdy=YAEE~pb|6hOo%fcoOU$h7}{hb<zDpp zZ=+@n>#1P~C@^zDkbu}3anm&tN~)t_+@x@6!eNZJ4OzI`alJPYT+JB{!FlLARBquE zmCn<~X&z0@xd147<JOqd28<#rV09*h`-!bYVhc7&JYtyMfx3=GI!A5)04N<fsEV_0 zJqhnx!t1HDPBX>|vEAD^Le8o|J%=@&XSzgYk+YM=D|5zTMzm8DiyDu=k;$%qO)Ol9 z)66V8nsQ0*&#BAg<4Wgo;i0lAnHaoI1_A6vZcDIi1Yq^)SRNVNpewJJj<`7)t?jKW znI{WbEn{=%v5m&O;`@o_d5!=$0-1K8!7{oBjG-G(eAJ>viOTH+R2NgTIp7HK(AJRE z>ColnPf2WJcn)NjM7e>ab8~HS$+iCgyIai~!u^Q!u4h71W8z!byuu^6Pcs<)D(Oxc z6myf*)|F(OuDYD@*7589Lz&qM@CZJ%lRLKxoc18pOcf+h$X$8E=e<2=*xO3{zPPS! zwMMQFazP?UpE{8xLvZn<GW_MS)N~Z~Qd@eHOuTR1jmUBicLUoMtbNpGqjzhWx?G0l zY0I1hI2El7il-oSJm$I24@xdzyO~aLF|F9!cm(z8K&L0EQBRdLPbotCnC%{-rrxCh z9FJPBv|L8R9XfMJtQZB(RB=R~HJ@Tt+SQUYiplqId(tWN93NU^D^I+A&<1l)aGN6o zcPcZx){@%Ht!_RyGB;0`G}gzPoP(3jX;d-{9)$5v*&f2pP}SarsM<Cf+gRXm0N|R9 zT0+A+um(BlOV%O*!N|d-AH4t;VBODbQctNfjmM$i%|yp60`)y;VicXA=A#72+54vz zs(M_jJuFDYq9vQ|deaLjExROons|}6uy^2tfk*(6e|eT-IK?Havo1DTpLHQ%h&rBf zY3{@@BkuYiS`HFkdyWlBxj^}k$~nj#X}e!SqT|b9xk5S5%sSBPvuN5_b~M0&h;xyH zz^O9K>Pg^nihVAK<x5qt(4-Ud6W*l&e1NDVsrkJsFbH{9C$AJkCg_OU(Xo<iHyJnP zE54f!R0>L-TQrD_+rpeG^NjOJfxmD$9@G|Hh0`NE5#FiYEe#;_<>&x;nFO5e?@eW6 zFZ#fdh2(qE?#>t<duEes9mHUcr!`4gI}Nw09TaTr!7u>i`_q*ddhP{4Il%R$81q$6 z%5m10K4LIj=d~+yXeRoNl0DKXP6_6uRRHbAbKaP*wm_IHq;);0A;Sg@?Y67pT&<bQ zTaBMTDh%!>q1EBrr`&>fZiv;n)VWuAFg*oBcm(!yAnv%SQRR)-LCL40{<<GD>R6I# zGxtjokH)Fa<}4=OJx`@y)YPTz%8~bGYz+I=ZA>zR4USY1Tx}iEdL+scGL>8@<kB>_ z3>kBdnWYbaay@{iOZ&hEdCqGUE9g?V^x$Xi{yk~f1P0DH=9m-ZT=u0h4XmL_2P2v- zeL-IO2`So{4U##{25*^mfs!#!W>QMyu;A1$g?wWtwNih1rIRBqoA+EFL-iE)A2tWx z?@$FYPQ;Qp<b%|jo6HFL+D{ysPhCWxU<WMR905U0kVhG#e&)bA+&Rq*qi!?LtvI%Y zbisELGs61Q9zF6Y+;;aAtIohqQ@u2kGb<03c?1($X>AGCTa63m0vR_iZ2HtFSg{N+ zdQ_!dWFTj0>P;gJt^W6|V{toQK}#RJqZp&11prdRnm$z{aimilHdTWjm8I3LQeYR% z-;=bF$;CA=2F;mMj!it|9OJiIa>!GR52>Yl3Qw^0z!^BrM=1>X?T)nNUCq4o#X%R& z!Gj&AIR>ph;!fm>8Pj(I>r!tavN_E+rc{zZrBR%m?exuP<F&@^aw%kCCfpCHr?%i1 zkCgWmu|OI^?Up#|dQb@`n$0fgrzEsQVfRRP9A~vZ<l1@XwK<BkgQk5kNJk-#0TeZ@ z*^`jhRvds>Vwmx4J4<fJ=9P=&kk}`^Mt^b(G2Y#2#ogJ2pJ0r6BMZ+R>A<TD;Ah^L z7&>Hpq|=GXAObPm(aO3FU6Oo@fwT<wsHWKYZvC-L-{yj(?f0j%BDhYwfH|SGv>mL* zDH$PwEP5IXh}H6dob?^eNhTN~=e|xUlIJI4<dd3Fc4Kd#*!dtIn71c1^SH4D07W&I z3ys+)y$Km7smZEsFl}@d#t6?Ry)y;F747Rm$y0;#P*sEg9y!iwLr`kl4Uw==VCA~f zzE!~h0DWly+`EC?!-`o^Ujc!|3D^?2-HcSeGq<HjyU#fo9q?*R(sWW4aoVCIoB`Lb z6lm4N+e4%q$-`g{)bx-d5IGeYj3^`n_|lR>?p}kIs_G4CaBZrN;QYtlp~E^JIX<+6 z?p^8*4N1LrZIG2d)lwamigJDM7w*(|1V}cJ2t0FANCI#HAfB}xgJ302=03fvno{MG zW>?o@vs+}HkFl|VP0W_xF7n6Lr7eNRNglN5{{Xzh^Q()}{R_32*yi8!G35Ht?mndS zrb@nPB~B?khK)lL!S$`uidI`0w(X%h@|ngBG%y(_twOSp+~kUpZWc|z^&Yhj-!M<H zBawu_&gRBx8zJ+Y(*qKN>yT+29QEr`)`Q*XNUi{4Mtx}+i)4T(Q@JTat_U3mdWkD) zRr!d+aC5+>C<abP1aV5+r3Zq`oKxnKHNnmgPHSZwtpVTRB9m&9OgP$Ec^&9*7@QtG zX%TT2-0jb&dQ#OBwuF%=1Z^KKI@4!}NZU`$r;$s7R04icNgN;}5y2hlUiw&-b}`YD z0DQROl>)KOaB0kU1L}I_lL1r_$)d?E1t)FB%B%)Q0*^DvWiB$NmS34W(yRhT8Eyw^ zrrSkZO-q2rp?+Q6>Nfz(y?Ch!I0`@nQ(izu6cNoNgUBRT`Adw0??bR$FReYePz^N4 zxNc#S?N=t!*r#Dsjt)3I%`A)~$2=Y>1C6^_WRa2WPBExe?NFuBhf$(Zhl*^HhkWNI zkb%FGQb}&ScKTDhTMK=O{5|vDPwu0d=~NKgx`jB!bNT|0wayf03Jq@rAA6CS^dWSP zEw>kXhxviQ=B+~N(e72}JXI$Rzd6snSP!vR2c>B#TVh`N8Zow6fo!qC>BSpFjfXkM ztw0|wkl#v?)y#-DmJimn=DC~Ew#Js+>@o7^kEKr&G?FgX!BfB$1gM8<uOrkNd~STy zP<EeMakJDU`kQf0_D~!G9E=icR?>KxNh8c1Hl8b=X<Q8M3^DhOOK*DVCQdey*WRn* zS{X^*-5MH<LADhhUIsRb%e!)a)^+GAS+1GOGdAPtnx^s=F1tWdax!ZNy_rhMSrC`< zh})7yO$@0q`S|B2)~Yt_@yV+SsUXhnvL9OLi%5q1e_z&y-M!e2N~_>9_o#l-vbi}R z4)vOn?_Zd7<252N!Qf!FGAZfMcIx*zKaK8__#Edd1j@>G<P)0k*r)R5OrArp^RILG z$0pwe$hZYoMLhb~grr7fQbq}3-`=_EO7d3U{tG=yPSo7Ltr9(oM`W;+4u5iS{{Vc~ zhj<d<-%`HanHUmC`Wp8J2)c6w8Gj&<bN<bEUx1WJtlp5U9nQ`UI<<A(DBt?%d2)XG zw^jaUQ{#jG02KzB?x3T<sw2iR&sw)9%Y__vsQhha>#b>?W<rR<jQbjym1KWIThrBR zri=1B({3&KvDWI#APh2{$fjJ7B*ruKr(3Br@Ox9W8*&*NcV5DZi=*6#JCqd`Sx9Vs z1vgPbQB*I=JJhLai#G7Y6UGfcQE-Z=gp<_zSBo^cu8&UI5_oCVwHPvR%12u3yjmoe z!?))oC{jw-6Q%%f?eW2B7Q0Uu%2UI-sUsmECjz#oY5TsPndM@o%X{``o9OOZ+#bNz z<QrcernwIc>IO?ESIBb1Xvb_<Op~l=hoQx73-W{=_GYp;1mlB_39nN9oIFqPpTfQ` z)nNFi;RV*MHLEDn4OUo8@xoBH=*spdAmn;ilErY0fRpoe!L2PjS@L!-@aG_&f`@jU zp89%!Pw=?sbtq1ovx~pr*Xl{)j}Q18Pw~%*o8jK2b#vi)H7O0fwZaq-4hdAxB|#?! zuy37&g^2l7;9z#ER~LyUtt^oN%XI?+tLhVmX8CZZtv2l~7u~m^tYvuWS<sxl<81q^ zry{U?SP%BhiM#$;sjZ(1U88Fa2vQ2ikj>E6caO)B;tqKI%Ko*{2`!fAB=`Qi9Qz`Y z0UfEL5TJy~p))UE!mL}$V9qdiamcEb#M5t52;p)^9erxRu`b!pFnZE7kMkbXCEhq0 z&%IO7i<R$ej4Y+jQ#q?JFa!l3jaHsXB{*it&00)FjMY0dT5qUsZ!mx}#z~-({{Tu? zJGldc-kKO;xZ@O^jS^2%Hp`Y>xb!rO7*ebJM01*+Ga+nouzPb%F*l#MoR3;MTd1V% zu@>Eo;0)*1qL76g^{JRh%t#r{K`1*8?ilo{v7DDuAlO`yo_G|Xd8e)krCqL}Pbb!& z8UzQe5_Z_fn#$&mn%f9cxqg|gD9PE+T=lBnAAv3;13Z-{CbwG4Vqz377>u`ES3ULA zwCuGgZQQv(G54(bccIFRit8ZJjnH$kx1h#xiom*y@2=7|wh3X1tD;#>Fi8Xqp13sW znL>gW2faQh%wKtW_o<pC;E}~U_ZdNzi5UFp$sty3j2@L?;>&O|RhS<z=Yvr7DN4dR z?<1}$!!AG>r1J^jb5VV%f!bGV4i0KpkU3~rWp->1MIK(`j{dZUc8~xU9kWObk>z{P zyNhj!0%M=nk1R?#>q`<yqvkvwl_XJ?d=r7|TD?i#jaV3-hwD<u5Jt;=<KC4LLd5PT z+NN7~a85f`a#z?S(%ge)Tl&z@4W~T!t0LW>1EHp}7@4!rYHLv@?PM%SvLHMGib&H8 zamT$r&e~*53>7@$ru#c@B>m88MD^6F5mClYGwV-cGsovs8!;&)oB>kBWs%qA^s3mm zJEn*mV@4Mof!3Rx;8nJ?L6S4brCT7ZHynx?lOns24-I&MjueY00Q=&-&-QXxzW58_ ztCo=9p-ctzuNBuLNW3qt>>Gd49G3bD`djvK(-tq;zrldWfK2ZDlwkAHx4-Vc?dSgh zq_6TYP5We@Z~eIQ+ua=AOX7V&BNBa<;3*1za66n+JS(6bXT#df<*Y4ncVu#8Er1Y= z*ROmd_%UbWZwLHa@nx%De{9)Z&24WSk_3WRKtE4<#P~w~F7U6zZyjo1@Q&H)Ix)6r zuJ=f#mmhe8?Nacq)OXvO-|#;l!1bOfQ^ThnecSx4f6(N7S!Hhr?9}(#ftr0@YsLEj zwu^HJ)cpL8!n^@r&I>P9al1A4x5W<-=-Pkmmt*#+BhYoIt={KOv$a7ZJPtONBzE`h zUliC%?PU(+Y>+u&*WQ#;<>pG-wfO%4k)3&3r!22~E8o7)@kBC*Zes?cjwh3@bMIGV z1$quDHkr|}<?qHgJX3F~Iqh<+s=>D8<F~y@51kxyFmS4fSm)_e3ChS%mM{+ktwS`e zBzH})s(EZ%=}~pClUtsX`!Gr7_#aa{5Cy$(7z`87H8;eh2gTd-^EJBj^riio!b|Y- zcZ;LmOg~zW;z~4rGh}X`XHY8~Oqz4Qcln)}VzPt&>imvn*@-)HLXK&h*^fEE<m2g5 zW6LKeAksve42Q1ZPJKA9J}%Ew=xRMQI1Ae)dx;&Cm1Zr?L~UW(NI;^cxJlkd!FB|Y zJt{vf%zT`4Uc2{FXU)srVtFya6q1xIF~DB5i3*Xwx4&9G%{!p^x}Ume7P#A;#ryNc zH1yQw+1kX)s=SOhIN;Yo;5&ae#+qWQ?IJ+`09;o!6`5AZ2LRV&@Y2dje0!!Y0S%Gv zIH;D1n_XF7x;~GMyu^|5g~=Rx*O7czhJ8ZsTDP=tj}4l%n~!StRJAd|C@NT=LtaPY zO(GpbU-5LZP4-d!oV@Pzt{1J^JqjGoq&Z(x#jF)oBMyIrb@i@;PGw?PCez&4J!a^k zN{=+C82<ojx(zr>BL|U0aj+Op;<)71&$F)YOH*<s4l)}xI;xYBGCk@)EF$1>#Yl_- z3><<hIcurlRJw^Ry|?d}@7$-1d)2v_l2k=p5APFDSjo0B*$b22t?u(A>L1>tnDHe( zvK6w6z@{0RJR>et_Z0bE(0$#&_MuMn<G-y{?WrxT$Wquwq#<VNd8bN-So-0?0|usv z_HuetCNaps@7Mv&Htr`Y>M$scSLGv|;8brjF&&0+im+HX86!Tm9H$DUfa{iFO3K1c z`U!#qWMKN#LN;N7*$398Wm(6_<$*cPG%If?t@Cu|v|8+G&C8+4c-fciDYhUA$})3Y z^^7?HhTEFl@w~Cb(A%`2OCx>5*NVrqj1bukx9L$Q%X92-iF*{$)p&kJLnLI0BhRlj z(nejEJprr_4%<YrWRe`WVVdX!42}WM%rZEp;`*O2h?<>gKQP#ENFlzI#(>D6HCw}l z3aCzckSZBslW@dRaoi5{LCV)_LzTOn*12@HTE&Efd1)(%xB6zcOSm$|&6bVv$E9I> zN3xatH#DmpyWnM;D7=gs*ot@5Ca^G}V{vGbmd8HzysvLB^8WybM?7jSW}g25=l=i< z%LwSelabF9h1rgK1JbSyB6VD>E>3vJslT$W+XZ6IP6~m^HI218oZ_@8kQ;@`e!TP* zo36B$x<%Bg+=L(z>szyE0PjE$zxsl%=7(w?2vf~s_`gZKUkd6=u&<XNnl~JATE$(h zFSqsj7|HUdeXQ^OdKq2|xAHVz7?zNh=hnI;3KeiZV_6>$wCk-?LyX2%in6g@m;`jL zw0LInHYH(FgT8A9nrv!G#WrOw+>e*=qD5JLMNokE9<{D~HF{Yb2*_iNp!BI9!&foj zKEcj%4OCN1o@CjKAyt4bNN?gIksC59?JNN5Yi#&pa(0&v*v>Ihf5IPmB8{%7hn$02 zIK4`8v5PALnG3=1Q0@Sz!yNanlz2WyO}}YKo3`Pai1<F|C?4Q&KZMpR-_aV%eT*KT zC{jVrPrU%K4VA$a(f<I#BGLZ<%h@NmBegsJ5ilcW`%z*C+#PE9EwRq(Yw7++FqaZW z>Vh!CIXUY@(mb-|lWP0dP&^-CHcjWx=5=iJr9K+BZN*vHhjyt^l6n`-6t8oVY)a#I zPL%v2;F5arT`Zm&vn_{qcVWV(6=3*s)<S@W9Wh&N8ze4&d){Z*E=a%_IpZ|o0yjcN zF^_tP>~G>Aj;5rDnD&#FC!Ex8sn>46`&(-BxSpf64!B?m%{$8_*ssV>dTCZ{54?R( z6)p2U2){G47kCf6dgBI%-5&FhRGjfcZQro*j;4r^I5;`SKxs;&PV9RvMMoiWK;-nP zB7CvjJh0pkdX0`Tl`Q^(n)u^#l^&VzO{F!afuq=S=grs`?u_oG=RYz9Q`FHT?kK3a z9omq#B{8d)_C2ZYuhgAWxa0*Lx$_kL)9FpdS%BjmsjltijfV^kNMvH5HaGR)RV`K6 zH*Lo5QX?ZdBAt!SK5UOlMSclylw*nr48efM6)Q({MV`Wz4Uj<NkZDk5+nxwH&rXz# zQy~hIk)6Y(MsnbRlg~d&*7{h!wnxr-^|^ysy9^a~Ox-@ULs1!x7`S854@%VWq(VOu zY6#7~KQxsdm5Dnnkfza$XOe50r`kyB)x|aHS7ac9NcX0Q_L4_A6vu4x4(@TqJd?*H z9`(SL-l*w|cGP;1s7Ya-;-Xnmq{$>4X9k9hXOqF^m61r#2DfjZB$lExd5l;bF!i9O zer`$jq%fkZ$i;zSjtwYKP=MWiYBzck-lbG;-!Lk`fz;E|V>2;4BJ{|ljol}3dEj$X zU^I)LyWX@`NO7{<QH*3@8g9=tV|Ln9Q@advgGlWe&&{}l+qFfy65X~L6lNmI<TCYI zf=z-(I4kruFnp&uC$%Ik=E%#ndS`P{v39<qC=$jHH_SQ7q<{6J=Hi_sMR`&IsPYR0 zAav`RO*wo!k)qX(U?Y5<l;0@{1v_)nq-9ZndkTmgK5}tTn{LG?eTM=I@_td)oI*E2 zochtirvoI@S8?j0d)C&r!f0@29B>!fn1d2v4l&k{$-6zN^QXudIlvj>w0B#Tpl33k z!1~ik!{wK7sUwqi#@o0z=}9Aiaz`Iph`Z@x8n&Sfr5KkdZa5UwkOpEwIq6R^hbzhC zcBp5>ZmrJRrPR+|$);%1WXqKu@kE4Sfx$hEIU`pY7&)k=jBPtu=8JPMO8rJ}B>If> zrpXW>_RUKgF^J(o!28702`s9va8L17C1hIHQHY$3^gZY?jk(Twr!x}?Rl^(*b5O!I z#DwxQgPK;lxHqWs$czHu=e{V$LC*y7P9z85aC!<Kb00+=>RKtg=)+)Ez+Qu`By!*o zq-2AGNLUsj&N%N;N;Wyd<aWg+8#`Q1@+Dq-=e-KpA%#_rMph+3^yaO^$IA?HlSGr; zhj{Ksw}KeplhTv`6JZB~%{oThNipP(hNJmg<~x@sI5e(;{q_*4FNIyJ)`@VW<@$a! z_h(U+18<@0Q0-PHj$5uNYH54!1=#>x?gzajgpe_uw@gsc?ZPYI`_dO@lLUc|GAf(s zN_yRf9R@L;+|yB8p5KiEY(LGMXSFmzhup2f^{P$U#*WEcb4m{A_8fYOf_G&(Q@;bf zPRWD!i5{Y%1PL(Tbe^?I+jBkkB59Y+$@!NZDl_xBz}gQqw^0akM>#bcy8tl1iL6{M zCe`#Jm9~(l1Rirn?byNN-iKc^2OT*knn^gwJe~-uPTC6niB$r&PvuI;jmi8e3V;Sl z-Af?df{l!J#a`;yGHHx<1-?`u0oI{#7>+TXD$B8T+qZYQq88m8h^h;s<P$}%YaOms zNFRPgxm<nI>ru%pk$v^ry)#w>yVobU^rsP(8<!yZ(AD~f_()Pf>Y+|Yd{fvK$j{5y z6pIom$3;Gr!5pgp03!xW{{R<ScT!@LvcFP78H%VlKyyuyE1jhBMsrP?LVyAYBds}B zCUShxt_J{`S8!HA%&a{TTH6Qj=bxoV1VE|u9V%VG0uFf{YAD&l<wwi!QuZOH!a@*^ zq#AMB_{K-pm6sgx(9<_D8D0maJr<~AB?L+r93J#PP&x{8mL&+_<22c1-oM>B%||ue zg4YsBhV7&AH00c}0DkH3OkbRH_p_XekZx=P&(^eiXlb%9XXn9SPB;|9f&m!d(w{6L z0z9!_yn9qpfX(kjS(4m;m>(UD8Q(JJfr=zfMmo|2FV7?|dbat!4Vy%a#L2iE=YjO0 zunv0C7|zhcp%kj?=6P&z2<utCRq&ZTNLlwk%~C_uobEWLvW?BgK<`XIqmai3(wbM; zxT}}^Js=nJoE+@Mbc)IlZsdAbIpOH>soWjJpo|~Jx5MSQuR@a19917P&;pj}(x+Bk zxH$ULHvrh_NEx?d0DWs&w9K_zmm-mTvbY5F=A|3M4mj=YRUmB02<m#~tg|;zaZO#L zCa<`TgQk9L)VAzaMopmc_m5hNMA+Ma$p^2!EOKS?KJhiDE}E5lBG^J1ag%^a1k{SY zR7Y-pW8Rt<G3AfW++*65Ldu_ecN|h%lNh0^xX3{VrgCZ-9I?UTl?%T+zFwUA(#SE$ z1M#S}*)K<-83!sz$9i!afFx69FCqpc1JG1T@&Gb8`qs9-h2NV-SZCXk%672e3YyfU zTZ^eD91nVdWOrO(9ixhTV<&SQQna3uGkaZ}-^GwFd>cBj1Lg!8@j&7=j{~6<?SB;r zPY7L{o&Y%>wc%l#D}&D!o4cAw^)T|iCw;%*BiE%2G~SsWPbcuN7w{ns;#=YdRa<Z$ zLtfl~&tSZDgB*P;!n_RZz9ZC1uiSPV{{X#RiD=sXwmj*iq^<pKcD_BCX4Q0QdomuK zh&1buo${jrs;`aYNM_RH$v6ZMKD1xzQCdkHPv&{7Mj})!$0LpfY^58ee#Y^W<g#18 z)VX5YWWi0|ri<dt`;QCIR!yggET@t`DK41EasHu)^z{{~b1JsL1O46KGLex)<gI&_ zlf9&@$U!1Z^{Dk7t%4YXj+m)pIgk=K9<*vKS~tS{y^brzn!7zHJuFkwOAS`lyDNfg zx$$Id`VIIb4>kg#xUC&`-p9@`z}I==f)0&v+gs&;oZ`A@t6JOt0Kq(*TzRE$U&!(g z45&7(kO2*f>Mg7u?k&+^?KmerE11$0rI#aXZYS$qR)u^mp=Bw!Gj7dvxT_USEs=Bk z5yx=k`qHk4GJr#c9+h-!Fk~vD=dVg^y5wXGLP5_Q^{n(-+}*-mjP=sL(sGT3A9x>H zf_)Nc?p@<-M#K24VYOzscFl;0oaKjls=C`n@_7e7=9}ejRvePGlDQs}r9PW==Sj7O zDz}U*4!wMr2+Jb*KovXzin`t=dsyUgXp*+v0^KuMr^LFflDtC7)#8_GM$7ksHLA7! z3}r%6*%8@z7gN<`n%7M7?k;1G%-9bKJ?o#d^HVEz7)gOD!Fd3KiuR9z4?LRBjjm>h z7h7np<5U>KbDHtfAp33l;DWbOj2^#u*KF|eggNiq@mDw<Yqc9|ui)%X$-33sZUFC9 zK~ao;b#g|3vlYnLYLdhW&Uh8f)y;iM^T<|JTyRfX(TYIN{IgXr5lB)_(VP-$+-bC6 z{K0$G$)<;IG44TA=}@s=Dp7!c**$YnM!VRY<P*}dMaQ!hoaZQdQyxZeK=0m!`J15x z@lJ48BY}$5B!XIOM6$^r02A+3<}W0hoAawlE2AB~>It{9Y$K~@G}3L@$<Epl#-nlP zim((nAB|Pc9Tebt)vz;+<P07~OrvQlnRjQT{2TBzz9gO*Vu5aasN`l=d~sgSar-g& zf^P-*e_Ts5Y?`g&+iVTM4EO~4S7-kK1o`lC>jy^EF2a?7OtQlyV-62Yn)W~13*+yG z^$Y920BP`*O*%+!e%WvG#w171)g#ihrA{t<vU*$Y(@(_bsa3`e?(g_q=Dr#J#uBCV z_L<_@p3>egFk9S1{9vd6<oXkz!oG9;uYYGZ_yMZ;ZraaPn_9Be;Bz$7s8?AK@Obsl z>0eGk`(jBihV@+!Rnl7Ro(78A`DVdw+yZ?FuaW*G`2PFi9i@`$ceCBer%B}PxRZI> zJu5jvDZY#K@9DWvtmOq1y!`r}ZZwOR@cL>#Kx=4-Nf}QnO+{%0W>D;NfOtJCUK_`< z)2_7W4lU;D8>V|!d=P9|1ejJ%r?p_yi_q*^>NZJWnO#~U8wU(MYYJ85=ku*;TyeLh zQkpHpbq#~pQkq7jV0Im89TmzGjl-$+s|^5*0uND9n84g~$ml2)x`Zkb^1z=;o=m$2 zIQ%K_2>h|Z+&bo#Vh1WWdsEoWzGZM#3_8-P7d&x}^yE+&65J8f(w-$<`+33dLY>8a ztePmc{{Z#r*(;o96w@$-eA)J?8sS2Gpyc|{r*Y`e)pkF0<1~di+}S+yOh<g=XX}bQ z$#6p+Gr_C6*p;d*hCurU?oKyiq>?VE8zAwTfXO!>ImS9-rYP(_TAOM=A>U=(fT_<s z)XIu6&IWnSBy&iyh{6n$&M8cCG1wI39MrTc_9pT}Fxm<2#ZMKo1UVUOahi=)!u+g5 z=QNux7ojDOdTv*?g1xjWc(53J4Xw<eZ%bz2j=WdY{{RFn{{Z70z8}T*eEIPiNnX|R zpN)jJ-Uil7<-xZjKIXox_$zwwd=2nYtFUM+hF2Xcc-k=YyZn(7`0pL;zx1YhH^KWW zYmb4RHME8%)S;Wi6VH1My!#p$*OuISbm>>V5GR4){gS+6b!%&LCY^sh)OWV`1LsoD zf`gtw9M^zB;=NLT2YAE7ma|^PqFi0cE!nb*VUuy?OOIalH-&sB;;nPxK9{A>YaWH7 zERA;;*seD;%g6#l_*Y!9QH57G(tO{Hn!lahy(~;{wH_KYlm7shc5k=3mHz&ohpT?p zUMTRLufZz|Uj=D4jdu1aU}U+sAz`$2>670*tKpdKlHM56UvN|kSXa~E9K269v->;f zu-)r+t#p^B+*n5rCfI`mE#K>3E=6NGJIXL#{MQdP;G=D?e^saGm!d~aM&(h-yXcqe z`i?$W``nE8sZ5qTTXdmV<F!?mCfd0lD{?8VZU_tIf(=rRmqfPXphqMj$z#W3ijsSn z29>CFB*4RwO<O^e&|<4z10J7wk~Zu;>MqrpoVI?9^#1_ag=7B!g+v*57i;O5@r-=c zU*c=2@w|zie3bobNA_%q;`mVz&K2&bU_E|n%lL;dJ}kVHfLm&9&u%N96Dv-4?*9NY z(90f?{{Ra7j%|)xjz?_M;Xg6R&U3-<#YXMrfw*Tq#aXe4-OiD(2L$B(E6qv0&!MRA z8zgzv#;J1^)1+`CL{51;gPMv>Rzkr{N~1MDodIT)oP5pv>8){U<y_;RQC`b;x;|oC zT!wquUHFe^1Fc4v6BEGe+|`%VA^En9gU2G6_i@O9k#GkTMd@QTsNnK}@{Uh>?fwgi zW%!A1TN`7Ej(zKgO-dynakHFPfADhR+x`-hD{e<+AxK(I=`pz8QM2lOBNM2yW*okA zlU{1J7TUjx{7v?VgT(O&*+|Yt+Vm9KilZ%t^sXzzN)ErQPRi;YaJj~MS2C5gNbjWW zDE|Om518y42rjN;vqy$F=VVlqlDIXuZ4pVl#+l5A=Eiude-Sjhog>G3j8j@95lr4> zQZE~Us<te!#veXok>0qbtlK`)oZU)xM^9`_kf)iPk=CbZ);oC>GP&m>tLcpQQ7dfD zFj#t3lk<rH$i{0ll(c7wU9}k{xxL}<2+4b-SjqOe7ws%a44r}Jn%sW_!*6#ai6r7S zI03p={{Vy{h<I~OfrD+04_?I9rNx`Y986|MR?o^hicXSe%(-4q$m83>Fm4C!5~~By z)U)_PCE4>}j&e<OpJzvzT;z`8pL69*0<2qP=cjtoG?v5G_D3ju9SnfxOy`~|L*W~D zi)5-w9CfYqP4FCKNVG`P`59yKlheIlvx{35*HZyJF=U4e6F2+DoOEkKc6lgBIL&NC zGQ<|(_w=ZYW6mec+POU9lwzAAT1!Je`xe(@0Sa#I?MxmXwUK!kkn&h@T7|cC;1SqX zXNYwZrRcYJCMT22jNsz~KU%#bx-_R3R-%gCo<H$5;*-U4+K3@VwpB6Ahb6alth*$C zD{kW6wMfVIo4IaU2j3%ZBRR!gj?7H(M3*mbB#+5al6|Y1aki)3IL8l%ZM~Q1dQZch zFuk0TOBM?*az%E+&Lv=W0yg6qs=gi5*27K0Z*^QLk-OHiBV1rE7XzuS<7B+ghH`iJ znN!GKN~lH80~F6MW=KJjdg84v0XvTDdQ+qku*lpynzs5OPTL~~#P$(i_<Hu;V`X_F zaCVNoR~6t(^?OYwb1ntCn?_b%K^5t8t4f&Nu;&|xrFmwPXEuxCEniNXZ<e<r>K5)) z_2Q{tk-zI-_$e7TXU%Wvf52?@i7o?U8@h4EDS&Q$-^4l1OBwU+qL?=Q$^1hU)st~$ z0~qQtSvH=+wz`bkOrJLI?^ieR4ko(rrl@x?Q4Zb@TIyBXcRT_xE0p+&m^>wZ6yzA& zlSMaaEB^pmmhR&HALL{FCEB_}ZTqf(aq0zkgMLSsmLznp3*f;s_<JC3BOir&F;lb! z#C?hHN>+}<_H3rH&Y?s6j7cXQDtQ%fxdr`kN~3(GOqs{6H6mq`Bz&j6YjvwDbcc** zA=nle#W{S<+fjzm%{Dt`MsT5+o^pB$ehM7!=M^(bQE7=wR56xq-#P)`lT1kda!)VX ztVp4PzB2tcQg6TnWx2trin6uGaUK#>H$zpxR*<stdNo)$d|;I$-iZRE1^_D)k7_K1 zd-{<%+@o$tCm5nc7z{Z8_NQ%N=kB&T^TjORF&jQq?gb`Zjye&Jeqg!Bd{PB<<N!&j z4j2LsG5XYOcR0z<9Vzr7M}1GJ(o|<C>Qw>z#C4%$j3yMZ*fxbVEQ-&7dSg6_MU2Mh z1x|gdIJL3forMl~IQr7Q*8T!mbHSjg-Hq5zxdMe%50yD%!D<^x>M11kLy#$E8OPyG zUS!TT`cMddcW0jCnlQwcQ;xtIQd^2Qko}BKLBT!ArmG_Z{qN^b5C>LQa9WtSLJlwo z9M*SFP>+xm+(UEpq(^2}`8ny4O3Eh6HsCYRbfs^X3WNo#dTRFvri?-d1dL;oL6uG$ z<_ES#J#ym(c_XQ&naW`885|mo88&y&OcLdlOJHN4T6X7V!$*$Q8Fni8EOW`lJ~ul@ z1cS~`TG88~O7_%yCcvwV0m#XvMO8Ut!ya)_w=OftJ*l!s<*q=$3_H;!rsc)0&jR?7 zYS4J6P+XH4e4`PATyY~MNk2;TZ;KlTieyLTMqe|In6Eau46V5EN$p&<Ci<JxcUBz; z+CEjlC#^~V$IN*-#Z`^Va!xtGt1PZp0P;DkHhP^J*$rsH13C0LG!+V1fJS;^r0I-| zlibstz)}D>_oUe_O%<I(E(yRV6s)2wo>@n&E)0?!9l-RX1S!G$-E&$cZNqZBL(QKf zgHo}^<>33&A|o7`R>!F{{{S^u07p6MYFo3opJX@}W&yc15l<>#yR;MenwXQEo}RRl zP4g+vK<A}uv{xm)G$U*f*drj&tAzo6@#mUGKx8eB8?7s@)D0Sg*yPr2YFba0<Js4Z z$2?OV)EugYG=))qo#~9xjueu_^TiFg>VctVc0~;1mg&!0V-g6;6f~s+PORjezjut{ zrFni?0r`%4nlFD+qi3avl<o)R=j%_{HWEqciikGCPBOHl`HDFxrLuEWx47S8NcMn0 z7|6#o-TMa8y!Oo_m2e$SMM$AZ9nY<3-PkRzF>(por9q%a=CLh;gPK{=VbStB)N{rf zAVZLGP}gG{>P*KoFP2D9Ii^UV*-37>;M1T@(UFpHI+H*}2PASmXx&{Cw&Os`g1KB# zAvgo4H0K3|{*1?<=~43UhRCXJ>p|Uh2MUNb=Q*VZZZpXzr7Vi!eq0fbLvc)ufZ)Fw z>+MNBH5+|EN4<#8Ii(=4Y*NY>C8H$z`cTS99OsPGx7c^?H|`MF$)+($31A5g-#liV z_Ztpa3K?0(a6;pS9Vx~stBEV1X%w(l0Jh$QR8q$3yOBX004h~hIU$0OIv%wfyZzZd zUU;V7qex&-qX(%q8?i(vq@mAWN_YWI^T<4XDHc4t6UgnFe-gVc>!|gce4;h^lOKED zmQpwaITY7l?hUx~sEal_{KwX#XJkuBzai-DAm;!M^l*fd4hKV3mOb(gNGIN{%tUCb zo@+;;Em_!zA256VwAUvDfs71u>r(Db*#jig9zr8%$OW5_O)cJqHPDP1VIiAt4-7F* zAWMUS06bGn<;Do<QZ7InyY#5i_a*K|Ncn&#ft*xs%6RFHa%uV4Uyh?0s9Hc!sR7%k zO3}4p$+WZ?JBD0+;tp!NjiaXx+NE|m0FFH>84g%(?b?;~x-(knASFK$Nt|S;$)h0p z;*^jF2LgurjV&z5{%Ir%aw_AzY`9=U50qk|QYCUn3<n<c*$b;3%Z#2W#amX#quf&X zJt>(1js_dlP+i(WxCMPpEVu`ZlTjzk^kPcR;IEj%<E0^EB9>8rIOdij9Jb@M^%Q|a zDO})ZHBF0~P-YAP3(Y8vKn0IO$fZmL3VQzldYL1zW8R&}ma4;M0ojfVV0NmrX{j>? zZU`WT2b#J_QI!}cu4)#OG68}HD=EtFLZZ458)>6fD<<_`a%m&E^H+@Hy;=_IxC6oK znvG-%+^FZSD@ZGkWFjzTz+g|kN}GJPCnE<2pfK)j*ud@05<kdCClu{%OWh9I9kMxE zX5ex$%`zL3jgys8*CLh9_TjKkdY)A+NY>+(a(LpT!B-sAaDt}{#ktOD<Yq!a$Q|mm z=r-(GjP3+uIrXKAHQsk;rv{60@}9@FF4hMOcs=S`2eyN=xNti4rfx5l$qEnWPEJ^` zCjj@M*gFHAp?RuTS~gTt73OBzi+}*?X}@`fNZsp0xR7oOjQ68zoDu2HeQK9vOKR3a z?HI!zJ!&kH-7q^-n{(t4ezdTiuG!>cy-d}e#-(Ik@bZ7e#!`0>@#44Gh{^9*o*r^_ z3HZnZjMngwJ8^;TYrd2BZzgcIlYK}AByLH^rA`T^IaYAvw^Avp=gdDbZ2H!+ytN@a zyBBRSB*V7RlU7+UG53f$&$VVk?zad~;2s+_rxdKDvmEF6YT})Y=Y7WK5oaf8IU=TC zDn-f4p1Cyx9n4Qm_Nn7wHpbY&^`@POdXvPA%0XgBVro=WjR<Bu_ogmF6Z|K=Aq>PQ zWA()@Z3;wNL~<T-x#E@F6g+1<W}hOe#{S&ZWN^q&Y~qWNZgH$YKwqac#mgul5%sBN z*vrWITZ&{3s-;gMcmkc;DQxUWRPGxO%ttin$zVp@kwjpHXD!EJPmH*1;~Zm}(&ldL z=DsEExbQxtn@DY-f=8jR41bYPzJ|Tu;uQX8f^|^D?FoPft$08i;E!?R02;?mb#v3B zFWoecXSCwV2VOyl9)6YKz6MV(#Ja$25*_n{{?&VJy8i&gsu+ko!N)$;;ob)-z9ZLT zXFJ2U1b?+%cD!H6;GDUnpReR~ek@Q1n!$4>{{H}4^}hmmre6#Ay>&}_YiFCwPHrGs z5EUMVyrad)5<3Qb?cKr6cA9g8a~l(pupOtN;;zw_jbHjjYY3-yn%C#4?AQMQ6|}z_ ze`v3Yt{~EHV1zB4I#!yA6Y_eI-n_$Bk!H}fCSa14jCn3&0OK^pQ*ir2gM*x!msoEv zL%d`6LT$|wj8ye^6RA1gQ<dJQoy!`uvANFXAbV6gkYLV$g;01EHuJhX^~V&;+(<K@ zo4#wusNX%0dWz<WQo$K6p&2-58O3*gBa<E<)Dt*k0Tskr<t||ZCl04L_pa~6s*j*v zy92nu#CAO^t`>gl@;tn9cIMkd%5)o5mrr>cB&%a4x@{jxN$rwDAW&NX4)ulMRNtUV z4(=udmhLOI(H`2^Y}~P^B#isk&K%29Y01Va-`0aihLB0jtfYDxnmrCE*%~~%A;=9@ z8vZ5NRQbD`83wJ#awILZjjPt5ByMQxRFr+@WgR`m#HL;{$2c7+An^QiZ*rxwHst$O zrNzn|g3dG5lxC^Js(Dk0w#y>mfW>i|BTYA^r2AL)SxS8l);nj~haQHj+3D7{yC)EC zk}?@jp{>h?Mz(ivl~{if=~>BrZ64T+k*YZamT{Wuj1*O$Q<|ja-R^fE1}q*6UlLC6 zDVFN%&slf!La!pc7WH$g>P65YYpD(gKg4U<{1f9}59qNs+BImP+R~0r?32(}i)t5e zwcYK=kjV^_vn-0eK|Yn}*L<|KeOKy^C?zSUzMq|$G?B2jK7?>;nTr@5s{C@T)q!}4 zWdn?iRV9;f+(E~D*Okq4q^)=avFyhNtSYEr*<r`86<+3CFvm|*RsmN<4aR%cwsyZm zPK1Z%$fgA;(9_*Y{KK46OA<5KR!?1tSGd&N8z;RijH}7(PgfWohNA@T<Yar*$GbPO zXkF;h?im#U3g?r>PKt^cl0ZGGl<djQDzC1GD~`4Wi35_qd(_pdc3t}=1(m%kJ(-AB zA1SMmGdKl?PqioSJxOWU_fLd>74Lil;A`6p3(29H<%vzFlm~-YNvcSXJkeaqERx7s zw~~7G>+f7vgLroNY6`Fisq0-DksM)&`~l{sRbwA_t1*mHRy8Hot|d^OTCn3RUlqw- z-#iyAW7*}BK?AO9U8PnVh$D`bfvD^#WZQyGEAuhil)q_m6&K9~gB<3aslf3UmM7mE zV{+A7X@7MV7jpa6`>T(%TDl??Qh6q`mZqsa(UTY|{{SiD(9#fcbJB=LCeI`alLlE1 zFuhG?-j)*Xh;Aat41Vr$P_nLls>^O+%|szR&lPZ2&}@z|lh^R6gj<^#siCs-aC5Zw zsmuzl7a$yGHKd+|q7eX0lTCP)uzF&y8*RwBIQOPYYFRVWoDX`zJG}=eZ`fo}2^n&D z&w8;WQM7}OM|zGsSA>FoWj$)igvfUfka|$wx&qTch9%rVag21STGAqbZ3Ok*OKENU z@t$%xH8jZJVF%6Anq1wHQBP8|u_+1%P&qX{sYOhXe=4$wv8gS~5sDQ8<07?9+d(&d zNYI6RsvdjO#JMez$*T))tW=DSbJncIXp%{ixjwWuh`CKLRQ#krtyoxz9DVF^JJrRB z2JQ|=YMvNX$&j8{W98=*OGGCdJx)jBGc<k!)s+3y5I>G<=|6?Cx_mD1%q=O3HPe)w z4Cf-gW%$`ET6{RWc#c`+SkB?wHT0i>q>?WK_;M(u*|N<6C!gW1q^&|SdVF7nh^Ex5 z%l_T}0NaiN4;eff2BD(ZNhP#$-%4%@u^wvYy;-*LPOhE@y3mHLEH+bZ0^SkRp3T>u z^~uiX?bpoAtW54k-s3fP3#9U6DhMO4YnpXhlTmin{&zjfbh&B8c_Dmf6c;`VvX(g& zr%QtfjJ`+%zAJ#58;tG_$2?=wy3J`k)l3hR9p~z64rxy55E4hdO*vm*>-yN@#3fCr zJ=*^OFVjOHMI*)mIZ?$b+DRmvml$7DijPvbxU?7whAiOV^H@5TvwJW_iT=-q<bj-u z>$SHzWv0DOgLWN*E<oyY#dG?^L?!Q13<m_%BIaZ+Rzh9=@u;sZE}F*io<+jM*#vXa zrZ3(Vn~U^4`}TK0zX$Y$=O$SX=4+bqqIte4)T24u8BiSkE2{mT)SrZU44i)OIr<#e zCF15$;tf;g`HZ>Au540Ky}Q56^m4@7i}GKQi6Z=<DJ_C}(?qWhSqm!_Jt^mSZK}Jo z-l4u$Hm(a5J4nc`7`wCHsjPH3X0gMvZQ3^<z4fG$#RC8(R?lJDklIM>Os?UNy)|rH z9ie#aO?s!yOKV?J!r7vR$U-rk=9r6ZfU0(!^PZIoY3}UGPTW%?w&187)3Rn;7Y)6* z<y<ow?tTud9cq6o4C@hXzm0Hl*pm)$P@43wf!1+Hs_Hj@WQf8k&p7W>Hr#A3X6B-M zrH<x>T(K;}b`NUhJSTVdnYC#nVm407aqC@GnNb=uF;D^NTwj4DNUimG0A_Z)kYJ8F z`qvya(Cmw|U5`5bp)?81`fj=BZMPq}D(5A$-n{b4V9^9z?i^Rp{yotX#2N+67cu>y zEL)Z}KQJSnE9U!0A&$^u0f^e&MPpezuE*Bp^=}U|uhA|V5(2ORk0!UI$${imEa%d= z>sg9IxWfW-xEks7yVRB+o$#T6_pW#?Y|L{QdpLVYt<P=n%rPg2?SkYvP)_lKpGuzQ zA&hMqJm)n-N#Ap)!?b{`pr|JVVzi>#?EBvinE6k7)ui=4IlHo>xQ0ayk_|YBmG{Qw zk-vwyHF8_`ftf|TZX1uEx4mb(0Wm6|oaX|LW?I*9buneg$j?F6qLjHsV8knqhqX-3 z>^@uoa&l@118>gR_p9Ggw{e*$%mWN#^Qhbj7zOS+Q{+b602v4PjU(-k0Ji2mlvLi% z*9(r05LQNJ0at=auNe5B<F?jrMv<qRi&$;TM{o)GWIol={7Lb=R@UvJTL%|XkDgeY z?s`|2t%T9X=NB@a#Fmiq#<Hm^?0p_xg=_coTMx8ZB9T*ZV!&Z*srYqeYvK)k)>M@J zl1@s-a0u(ob3td+uhK0$5#EA1Cybt)SGRamM!3*4(*w$~Pa)kSpvFn-L{~nntkV@H z{fu-*#9<<l))m_ubGP244$9!<h3G{#G3AcD)8$oQ2Je{qiqWNG=MqlWBzd9;KqsCt zii|SuD}p`Rln*Nhf@ul!2`soKt!-l`?!5?G9$?SiJXf3e@5|EsRj1uy{JXfG11kRj z2^}+Dn#`bZp}FJ=<@|l4MRA}^*5E@lK-_O}yBO<=sQg#A_5CDP@w@5%U-0IagtY^E zqQa&@Bf`6KdYaeynB$;5O>ln?btIY?1V`kWJn#3fK@pda?`H$8VQ#i3atU2f>`*qI zt=v`zkI)|pY9uIPv0!Gp0kKQ7a52dpYoGD6t9VOLB%CyCc^=igVa;U1Qc4oHW109O zqx%{{uD}9vE7EdWP!wT6>+fD=@GO&|%dnl9>U-Cw3Gf>$!8q&9WhSp@u%jInhHW5# z%reLCW06w^ZJ5UV9PX%zGBDr_4r)l}o+((a4i}*uRm)#fMzqjLjtAfQPo+0%ZOA#t zH6Z(-;AHhCoWK+(9l7_Zi?d>#wnS0<>xFNZ8O1e-Qc(_Dxc8xA8vsTicJ`^C8^eY9 zv4VYR$K3_4zt{EDiZQf?JdxPZDc>UJ?zbn{)49nZ1A0;w-1x;-{YtWq!!{yu>yd*< ziV505$n@xHVdaIBaKR(5r88(m+#4gMB$E?zTA>?oh^nea+2M~l6ssQQCpqju6rn+3 z9)4rUq8X#!(v>LVwrXY6YDpvNW>BCE@!ZlY7RUpBI0W%dWX1xV=ZqR_tD|I*yU<rU z(CTX9ZvbPGJq1def@FU0+|*+pVjei_nmF9Rl6vB*>*Nox{j8`Y3%DLKX&;rz1Akgz z1*6)`LW9RNjCjvs-ji1*?mLno4xod`>zaNHnFj<@6}#>mPo+F_p2YMuHnzsi-&dg= zNw!BPBzDQ-oUs(iaq^yN5+ce$JC1WwE1josImKJsLUnpQhAWpV@`T4jnmon~S7<$k zX~mQ{U8kSoG{U=N$ml!LvbzT)H2IsjzytNEe9W#2fKR;$;lnm^SG6;G?cBpHRc_>6 zwgK{h?PdA8(r#cFHW^PD2by!Ul_5Ae{v%1{t4SVD8?t$+YTBTa=5}X|d|b0=ykM-- z9gl3dUrO_d2=m+yKs;u>OXBn&@i?+|WAm$I{VU64h^)>I4su0u)sp7E&qJz=UoD^Y zt;k#{Bjv#EMNPZ+WUhB(sqai!!S&obQtu%N+H>1Ao3yQSv9-7YS+gM|;~aLTyPcvi z#E^QQN?1#k-tI6*D~^Vk{#!_eHwPVaL}Sj3v?4;`hy<t=Gr!A><-1~qZ26pw5rOrl zDDttK4mqo9mqc7&Rz?ehf)6LHN#*VzHv_FSPqoJA>SH))-AZzL8pW+l`!X2|su7*x zMn-8|tc{R*(wS79y+9Zz6xTafE5Ij$YV7xAJ2i1aNa{ZCe2OCkN60^jrZ3N)p}neD zTjgck%-F^a7q~4Dj;JCea!pqxGaw%(MoDUWGQQwW(mGO3GO8Ji0nmz8v8B1R0L2-Y zeBOk1r5I=A@_kJ+H~<5U{-TyeNeNj1=e-Kgb1O6w1>eK;>IX_Z%%Sh~q-+7S40fTT zWlVwrJprqeva$=^iylOKx_bdYK->~=M|yNv18jsT#{^PHcP}ULp*FP|lTO3%s1+FG z5scF%h!R(fj+BZ)W5IEZ<kQLtP!K;FzGq@&(jyTT!khv9;nto3!5rs28df+{gUvN0 zR^8Vly$@|n+jbPT<vYpr6&kUK3?7}@o}V*gIH>0<=9MfMtqGHEVn$;x%)^o1m<upr zw}al7l7l=gHYqk76V!L5B-_=NwjTotH!Ohm3P%*t``0{`=cOoh^G;Ni1d&OSIVyg% zoNQN^=@v1SakvqVltr+}F)x?290EGh2M!4Dii$Kb?qYWnR=yp@<TB?c=FT#32&aMy z9nGIpO?b;}Eyy77YB&AZz&&bw%@*1U5m~@2cIUMtp@RX4`M&SXnsk8%)m1yl<mZZR z)GP@A5Ic&cG}$(|sg~`G^Gs(WJEGbF#^XecrcM~-_7o$?RfA*(=%$AjwPRg~Toad5 zf;kmnIr7+*3`y@yi0#}7=sVMuADlKvy*p{CE#G24l(0G4-2N2kmo2!lai6?tNC_vH z*v<&`sJzBgxk(F}rMBT`Z3oE^GB(h0NL#1MMhAKf?dJw(X5HGIAyxGx_pF?hv`A9B zAZeLjJ2EkjJ!%$gF*qb2TABVy2mq352}3C-VFTW>n!bW+@vxUEk_xxp9V)A14Y{#S z+}Yd*6pX=!2<P6dHys$FtnS8%5X8F`l;h^ldTeru3FD`&Bg?#SFuBJfrCq*X00KEC zx)Ur&P`sey@y$ri&A~ax6#~8`I94iGtttb%+p(<O@2-Yy3JjBzpF=@qcE-|M)Kro# z{{Wjf`p}pJ6H|1w8q`gWj5eaM>T^SrAv<HpBRo^5V0jtoP$Z4!g(QSw&~a9hl6MYU zyN?kv0#5|?G~8?l87HkcfPer=8SZ(Zr9Pu0id?StMad>GgN{0$)H`BexE(r<)S^HR zTR8QlX=2GLGEaJhz3U@8J;(}^AuQP^gF%Bl<ly>>lps5Z;B})X8B^2NuT;fx0;tF* z^rlLRxFBQJl(Lz=_DSUZX&!uyxWT0NDjFc#Jhmk61oR@R#}cXGiSNx>5$=rS<MF8c zv;dw<dS;f}?p&?A7-VR{9evFzT&Tw5w?4Fl6O8rrru~&(W!{^V`qe_hTIy*j$_#ZK z=|BKwk39gWwv`)If{$87nU}Ww9=+>cWfx)@b8gko8T2NqxDTDnxC7di?ox6xr2zG) z%lzFqH1%%fMnt4^1MZI0jQNbHBvV|l!BT#d=6^jlwgEKSidq>>6YVAyIn6>-3|rTw zGBs$jcOAZ+szEOF+yj0U$!j~69?ZSr=KlbRh0fuDv#oBT>|d9ssWs2&N*hp=u{kT# zwRA#byr}>w>BV}m_)*I?ub|1cX9<vdjB!tl#-|8!Ph&_wh;Iix;+We>7*mpZiq`i= zaV%QIp@`&rlUhL)vT?u|2C7D=jtUaRxFGhck)dIM_eUnG>cq*AvK1$D4i8aEh)ld> zsQxcXWX>6aob4x;#Z7F>hfT*B%C;%H+UU=k`V(7D8~1Vo2;-jhJ2>1GGD>yDRu0pA z(tMyEwKAsm$QaLhn<b#_eMZdwW2*EAnyOz6$_E+aH7(9j{y<xv52aP*<vAH|TG1|q zt1FU9OKr&d3Topx1D^C_4VLRcK3i}yPpwRq**CK#3L7}-^{2CL`cpt%xdU&l1jrqR zK?kM<G_)zcZ4Q6Ozw#(*EB)w>Yr`$vJ-P-1l^tu}d}*?83Tm;CrH#4gJq>*S0B8f* zC(K96IjLGyzn}RYl?`c1J%8cPXw%$JrrDLjVF(BEuM6;|KjAUfgDUP>oHFO0weA`; z8+4d94e#WFK;tI7N5ZB#Ja?=SAC_K8Hw@>!bVd8G<atl{kyq~j03)ICQp_W=Ny3HS zxkx$VHQ(vmWS%7vt7Q}teKB5p;`kHnx>~fKBHS+U$ExlbAC-FEu{Mh*i*-lQ9fhGt zypUH4K0%y*HJhz!-p1W8f56+BIdXX~zffydx4J_cVOzC7#ArX^8PsDcSh9=}+nRJY z2YQzQn0M(~7q&wG0K;0*^BO54wP{8<4T{;e?cYz#YqS2eJgNx8I_HuGGHPq9e>yU& zfOFK;7J;A3amn;NR+NyFoL7%k+D!MTHmr>MYf~JtxNLmu{OhstN;mc;>0n0aNC)t) zTg^z_esE6l{OhsT!EGA!WP%_pGtX+@4%>G}4nN(0Bg_6Cz%R6ms2Jp=n69C1RxtR+ z6yut~_-KW!?j+AIE)EBAU9=Vnb0mSs;p%IvnJvy(zGSRZwes+)(d7Dp(ys^rO^63m zo_f^7P0R8&f;x(^94irC<aEzk&z}0DOI=)rATh2-Q`A)GpeS|&<>`@9k~8(=nvP`M zv3hsNrlic8*5@H~%XxQu6otsf;12*+Lg}`1I<%I{#|4dV-oVMJUB}c64Ax?<Ndu?7 zdJ10cpHm51*CSgi2$-Z+aE0nl+|yFpA2Z}t9@}`SK3It*y3~<KV`hD%uc)Ye&qfe- z*rR<Ky`9n9^CA`?aa`}66UCLm$mnaL)Q~z!zc^&BW;;=U*}$t%y1ARR^eWuMNaS@q zW~?sK1_d_s{m?Rb$*B=Dg;BSPyYp@eSGbDbd3S9my++&;4sdBEDzX3_OHwnj!8DpJ z%a?LRVbl&PLfeSr0-}yx+!304b^ibwhKr2uh@?B)9jd*^C3pt|y;wo>8ZM&S0<b*# zQ&zo*-*S+Tasp~-<R$pdDmfggf!z90YQ#yB*k0nblx(g{yR)Y7_*o~w=jE;Q3-1It zE9u^`d?2p(5)e>ESB#Eprf9-H6~^Otce$E&D>5{37GQCMT<)N|j^L~m{*}~Rjp?1( z1J=3CM2C%sI4AgNsI*hn53-$Oi_4V$b#^&bw<dm2FmYKHs3mnnfN{eb*0*0GedV$r z?+T0Ank&T>poL@%Q!SH%JJM}2NI?W1oYmt3wb5w5c8%0kXAkDc8wZ{V>s2dVlB~2U z$l@XkX9VM=IyEyK3<2v?Nh0Tw_j`JpWK$~VAOntzPAs<(kvyJx7$h&POtLYPapxzg zq8ZXobNSYkN}CAVmL{#V`kd)FvHJ_a2pK1w)kiLohGY&i$EdAE!i60$Dmj^37+m8u zidNB@$*+-JV=^vId8rZ?JQ4ErsXvE-+Lk$76$8_Z(rV^%R(@nj42tLGHEuY}$CWMb zN|}?AFi(20n}<qD9faFULN&4g5_)=6vD)QNr@c&&$WJ6=98}Oo<lyxBR_Z!>39+{J z<7vkSrCNdlc-nF6O<QJZP$4{?Yfj!4Z$LfjNs}tYVmEw+i9FVfHj5D(SY-8FQ$>&t ze6UAzinR=Q!ROPOt8*(MIXP(0IQZip--maq01`B+5V*+BYv>;aTuW)-9S}5%$LuH= z#=Z9QUIF_<IgjD-&QP_)V?R@0Lg*>8!5Tzl6@RfS91ai3T2+d4A$_ke(8`SOh@5+J z{{ZdBi<qM=D2Z4C?sDCF)u4pI@{Ez&J!z55s?uUI%1d%Rb52>7SpHIS2O!s$+HU97 z#kP}c`ekiNh>aD=2ZP0D&m2;|?^?TXhDo9s`Ey8YRV89b!RSe@>M=?ujf-5>5y<$q z=H4+BNURyYV%?2$i#o};^T##Qc->KT8)RY>2+l@pn?$!(+$2>eBN?q$njE)nyZMkw zauYa0!1t!zU4O)$@yYV@83f}zRi7?0PFYC$)jts`TX<JfpLfWxvB<3;xulZrzcQsR zShl>+rhW$?PlUc3D4`ZaXAGw~$?IGviqT~87Njx9m_>Rg!Fbhv5qMOu`oFUPzPPV4 z@eJN~iM5<R0^ot4pszm@Chz9|08`S+;MS|6U!h2Xgy56MYOko|STP5cjhN=9MnH^6 z>O0jvM&QS7AyK&OAlD5vuVdM*@Jii|8aXZ)Wn>3ENgUFdE?5ohNM87;#qaM)5i+nD z!Ko$Gb}mduo}hDHvGUC;-4V+@$|hoL4*XPRInD`Vlj%=7yl}b1C6D(>z%=;v3x_#2 z=&aoo9M-W{R|_SlQazI_Y&^#d3GZH~@D2|w>aNl|yodl&J?qTY=640mDo6*07!~XP z00i20w!3+iH$KodbON!f?!+RKoPKAo!y_z3hgD1+-K(7Ngv@+DJWVK+i<uAI$9mqB ze&NiD<~^jGb;V-%UE(?-h}D2*W(9@`$*x=Ib}c2LHT;WjXK^`Q&LeD&_{Ds+;yXVs zN$0e40P{c9xX)VpcU;O?+{j!g5uE4gUq4<z*RYk`n_QAh4o@}BIa!|06GqvQr(ErU zBftzfBzGpZp}tECh_>6k%WhnvbsX0%aI#rk6l{PF6@cK@rk$xvo}g!jJ@HY`XLOH# zPMvB_olS0iA)@$--^3Q^*3qhCgBU!i1De*7R%{M9?t0hHo*36(Lez!Tz8y&UvUsm) z@V|&{yiaPf!#WFu;iHgkIrbGvHhe}i2`nu6Ufmh5KksrFk;N8wXG@tRw^*I<Q2B#A z5moMFZ0*4;c_$oHDH1ah8x6NO1HD%-V~cfS;DX%5*`3~2<(F<04{D9ZF^`r%Om(PH za7fNT9P?S4{{V@sGz)npo?!CE2`~ovy||*<+^F7fmMc?ISrrjk$y7Nd$l*Y*Hu2BI z{{ZZ=)|xs&bu7u1x(|?^waa*;;*PK4Q#4v___otrZD`g%o1V4GrIZ%Y0U6|V1Y)yt zzKHsK4p_cA{{V3NcxBr6GRx=9A>QtKlS?bhb26>GW=T&9qt>fQB+;^qcx0Hi7i4Rk zn)M%tJ_GV!`%h3Tvi5@*!Nn-WOGbLQ+*ELs^xV++b>MW;ZJPe}1#9;lG5#9vAlyS2 zIAPNipvmNeyP)7=qenAAxVI;QK*ehWd|hgioSdZY#~kkIlj~9}Zzs)=2^|eNTjh_Q zG0p`&quktg9qGxV6y1nsBoG*YPp32mJGQajI}uMzB)fu)cLto$A|b&blb$KvEycM3 zg`LPaKzZVzyoc?}<v0d6jK*?3YTGGM!Ry%6k;+Kn1C9m{N{Kez(QDne_0aMAMZVB{ zK|P6N@?f8IA|srqdiBUvjkGe7cFGSGz<gBGS4_LpwfL?4xR!4sbyL(Z>s>E_by0t$ zNTmko+_Hk?oF0{|(v#<3*8c#Lx-d;fUd?nh%0vk#aBj!7V)*Z8{33Vk=+dx^j4vIl zq}Ys#WKomrSbjK+N#V^%D_|@R#~!sXm888;=c<zOXBF@{aiJB#3K-y;^rnC~I2m$# z*PDD10v`_sE?Bc}+m7|=pt~_)3qD3hI%cL(Qj<1I-AN1)7?Y+OJeqRE%-eD|dY<(5 zjfq{+m1ETnO6UksH~{C4qKBcH*HRG<V|62I<Y3fNBV%rN16Ka@fDGV{Ni`6Vq~9uh zxaw$H4K8g&j4DJs=dNgCb_L^}bKFypELlbY>%}`_$Ub)4#xe&qSWVkbg;GWWsX0AO zCzf|AtNi?&5mTMW-eVEvfB-n;nvFhT<{!LH0Q9G*JGHqM$q6N$SRODa5R@B6NGGqQ zOv5Zxi~+|K?x*GGI%cW6YKu=zNJ|qiV0M)l2BYEKo2kuCTsnY2AB99eb(II)R(ca| z$J8o3rrKD!J%=?SHVIy>O3IOA%j#E>O)@+q92~LalU&z3p=6!MvXBYD<JP1x03&bj z^%WGc35GYfuN2_Lupf{*W}KHW?ajX9wvsp?9>CLMCE3*R-xT5%m>hKERBqW|M<tFA ztrl#TsN$&V1~HD+Ex0cD<K-O<N3uZp4x|s^BbsxOxH1wLcc``WB3#pULbuHA^5A#H zAtF*ggaM8ZdQilcBoY{MDZW~T1da*mnzYwLReRW320XSP=Okj3XTKxXkQ7%Wu#Y{M z)8oO;Fw4|n=QJnx64kUwY|asZ04kpJ+_I;bW5i_r;ZI<a5)OYFO`8*D;z2pUt3<0e zcd(25;HP4f>)w@+BDcy(J%Ob^ag>Z_^P~)^k&I)h9FtP-dz9_a^8Wyg>d;B2I71o^ zxfv$BlHrs}-F{=i$4d5pi|~`BTF6)zCntAW@mrZPzz}oS>sZ!Tvu5<Ad)NexoPmr} znT(7JccWsM@&*k+RFj+%0j_kD(CKR9oOu}paKf4tDF^tm#Yj>9K*}(A<-1b~D4UK4 zt!&npA}evIrH9O)jWzP6i5&WxQhcaL4cyYUUMzJ6v%aQ}M|%v}u~e}PdGF0D7j@b& zJq<BFT(Ml9)NeRk4!uoj%h=CW?l2OZWIG<-wB|yne8Z1n+M6Qe_XpO6QbQ=oJ!v+Y zxwe)bFh1$xnJyY_%Gki>mNL;6Bhwi)<sru5&TBS_u*rzW3%vCtQ;I3+gi+hxf)zah z>zWe|1NS|R4QMOdsG#o0ObUtLa+8CaPn(?gIqSwL{y`_@Bc^C^aSinvqjK&UrNJd~ zOAKe4WGqZ<SDc=N(z^_X=Of;guETLj0gg#OT0(L&pO?6%x|bOZjE*W;m0B>QZ9b;1 zQC20UfNX>YQ;opU9GkfB){wxZ8TRG+E;>@ijKLks;11NZ=tI|WF^6U#=hl$MWZZWJ zT>QLKq(LdcCmyvM0Vf&2rxkapLX|3ZzaI3nLlGHom6+t8T9eBKRHG@+UEOJtug#VK z<Dsf;bP}`Jbdp9;6digBfz`HxR58yu>?%!)xL^eexMFg7q5I20HEo3>EwyswdJ1I3 ze4yu(f_*A)Fh`IGR>u`p&zF*N$E{B`mKdrq%r|ac#~jn5ZP{G&?@nn3;^1IYASvhW zINU)r?|n;lvSZbkehTj=frHYbo-vK2?LDa^lgT6Ze*1+-G=a|MBz_f>O+R@B*zz~9 z=rB6d31cV(a7S8nd1ZFU2%|YPfy?p7HKu}3T?oP`l&X=EKZ=xm-!^#s>H-;EzFq@V zv3$TN0Y|lJ+qR?G=p(2tjBh87Dqu2%0)GmOk{pbHF-M!^j`;NzAtikfZ5cUTzgl8^ z`+!}ldzyTXB*9k<$Fb{Cjp6dZ5$i%~*L?-6dJRpXMn*kJH0g>oSXUdn5l-3|;FVH( zZm8r$QWPAM)YK(=u}LwaMGisSTikW3^NdPlCBAON=M`#hN|kJd?N#RymfY?~uoPcX zci5{TIUxbr>S{9{*IeXhy*;GM^1OT0Wym{mpL1G8CalNkIq>bk&N>=XAMVHp<~$mY z<O~aBbJ*ggSruPB`%|*&34%wofH^pz74tSo2?wSQDH;C&cydPUXRQ(d>M}X?H4g2R zl5XUP0P;W$zc(Q`+PUL2$J&9*2H<33lg#p>*@IIMQdGb@SPY!jQc`leC8rm5LL|b5 z1FvE!3l?BA&(fAcWp9+{Z>=edZX0%3_Qh8>E3tcxlrbRg0OPeYX(v3l9qGjm^4yb- zl%>97jx$@QV>bD;K=$%HYmJAF=M@9SRk<KHwLHa+c|PWx(Fec>=Ixq`+U<jG_GDi^ zz&Ql<sWIiIPtBfjPA3H9;E&duHg<x%lh&>#Zp2Qpu^vz$9(n9(Htb=ZwCLAq$zz{- zjJap&nwP1fwTG1~LCGSTQ=Ih_J8kGsH6G%moSvO3TrP=ZvE!+4!jL&<`D!IQ-yJGY zq&_-((u^9_p{=znLkgZ-j{MY%w7DQ;4#J`ia6uICdI9;>^5{=dl18r~02W@g1d$eC zRI-uUueQ`oDZ?J-n7jj%_|v_Xpw_o54dbXM-jO6kkcl4y)~q^);f_bGG3{;U`La(P z&1cW5)El;pZ1)4~q!YnCM_O1d*%WL%A5&H5jS#BG{9lbK-AbnpqYM05>qBgpebKd` zmTgW*+iwZGis(nr7(00Nu3y9VX+EZMzr8V$pK9rs8*oX*dKBNfk<Bf`uF-%8Ow+>c z;GBWpqImq&;g2VSPCE!h%V!@k?OQgitY>>WlUtL#w;X%b@cf1Y85lJ}*_CAZRAIQS zQwUhTP=2*(t%#ey%&5Z*SFK2kwRk!D)I^n(jB(hSkqCCiK{W4WYnfQF12KrJAaR_E zmQlDXa=7d&1wyTtW&m{CQ^&ZImr|#(9MmfsN63a}+Jy6i#zCrTxjTUv_cdbmT1)}* z01rKlRWK+xU^AW#Zrza&eF;e}LE3(_m<-=|fGOGi*nP(;IRJ2J7v?<YpK4p8Z+CKG z_e&9wI`cr0$<EP^26IanmH`<6pITt~Lu6zFoQg@^Gzq3=__`82H>oIG7L9->>0SYD zxQZ|a&;S^(fAK>H@b;v~C4?-?liwBd)H2BS@!)*?WM{o)Hj`i1W6_~&J9hs7Gum{O zW2D;!Y!e?*UK^k;JawxiW1l&}J^I(VX$TibfRJ<Kj;6dPL<wW#{a<{AS*C0$8Sh<D zyx`kgSo3DBRxLjN0HM_QxBflt00Wohh_36y@HFnO6yahAkEL+lHDI=Os;|p7K?1Gl zdaL=X6HMWZKoT1O*3gHv)&Brmoic9Q9+Z$YhiDiFy<EJsdtE0`3vl~nwkwZH<1O`O zhi~s(73kTmEA2*hw^<F+`FR;e<gljc+1>vDR@6|9{n!0&j$r_fMFXCds8eiZh{)+w z?ixS0Zb5|3a0Op^QSI9eob(mqVjisb@XGGSVwkMm3BrePaz=U0cRHhs%L}r=0MH%) z$7<nqLHoO6y+eY3I_|Fy?H+dn=JE+2m0bqx&J1(CM!Ozw@Uj&adV%M6oJh}V^bIyR z<+*ah1P_(H>x1}Q{$-w{?J2K7(@L47P~51=81=4-soO&gJ*5?)X_sio=bUDrDHEb) zKp^l%D<ev9yoyi?<#10O1!u2AsikCBHl=b2;GUwRXneN=ad114R@@TUU^wUjp(A1m zkc?wE2C6;IR<3e4i01lo#BV(gF<3dt2y?rd>Gc@Ny18ZsHC4zy)y>N4IVbV2Mw?Gv zj3=gydq5We46*g8Fg9%mIqy}H?llZu`V8i#x0p<#MI0Ym(fXX}X`v0wIf$`4q#bkV zT;vfOyU4A_%e<a(U28IkoE6C+^P1(XgA0wp%w-tis;-(9^+j(H>2m318Gdyn44+zs z<uNE_KuI38cf=B0+@gn=%^vKH-nBv)o+yBB2^s5D(%iVc(;$_@uzjiyIXI~IZtB<- zIdDl%fcG^SMc{GlO=Ttwkt5o>sa3-j0ZGq%Q$c)f7~9h|ENsyzT$Rl$wW(<?gfZ?h z?kn?j!K8eY`MLBI^!bZm6U{|2Cpq~_@(omVIh>uy@Qhho1F+2zz!#%u-jMvt2^@~} z=$koR-74GC$hkLTtnjP^MxYW7(oJ-`H=w{`2YgpO;JnFh&RCPQjMvbg3BCw7k0BRY zp1U4}V3v(?USI%iy{nc@tx_|+w>)xNQ1<V_^v^ZQYAWz5fJi4JHSfL*_;q9AjbmK0 zZDj*m!85?>07(LajAp)lyOwcgzIe=t#5X?mOPQ@vNv+V9psT4MG4(a2AY&LR3CZd! zJ}i|}(ym(ENd^>SX&q}fYnn96?+2T=41LX3nh9i(uH{e;Dos9O(#ht^04I(qW=t_E zatYwkxRd326<XPqo$wh4J!&SkSB;9`NNURocVnNMjwymN%>Mu*4W|T}O7|*HLAJ5Q zouCF{IvUemsGyUy)jJ3hON4T}Hsoj5HKjeSBp!@<n%Aj|cifp%c?UTJXPQh$8{vTf z^gfkxIDTEHs2CLywP_fV<OS_RwT7E|42s+dGGr{il{CIgjH<X<2d||`4Wxf`OY<I? zr~R2yU?d@k91&5gcjz|muE=9ikgRYj*;L?QkU8RrqDfyF0exDn`7rPYKBlThZtXHS zi1QZ<!95zR#z~Wf7#@b6uM^=}LFTN+v8f7#KnGIXgGKbXMJ9z)k-GzE{OV{-vkb=z zl^sqhR5t8(j!$fKs}Wv97UnH061l?kr_)0x7jc&5$>ngp2{mx0RPqP|t|}Ceqi)zX zKRnf_<j)&$F<Lz~W8LU^SM3)I+;~GwfVfqX<~_jo!&lK3bC^6KU{${Dk|6&8zH8^N z+79w((DZoGRgc?a9FE(o=vl)50Kzo_ow0?rOnr9KsjV7!T_5IW4p)eszq|Q=!8~L! za$9ife(%<zkbLJ2hCRhdQ(z-FVoA^AO<q9HENjVnGwfq)Y(ixyVGO&w6W=v3)0#}~ zY~*q6P)_7Zn|mDQl53fyaH%Hd+nzYC>Pk*JY<PH<r8d#V_}5Kajc;Z$!ZBRG_6oG6 zoA^1vuAjyFUx@FuSnez&gv8rH4Z#@eMv>tg;Kof#WmXN6k@LEnlTORX<@i(inAYAK zp6)-A6302g;;Z<dN_#H_-y=qi`?gZK?~h9KPq51m&KwP+fI8Qm_{pUjMx`?|x`M-D z<D6FX6Llh&bWL3;O5K_Cufox@;eUnWRT0Q6lma>fURkZbpRM0W&byj-$P12~SFHRw zw^%#@peS5o&NKJ3j0*AXMqw_idm@8@JC1&}=VBzJuD`9%S1y+;lIi~d3`21PJA9-C z1CDvBH(|cbak+4y9Gvl2r6BEcMsvWbdZn<qwUJmh$uby^O68|_B#%<Ne$GqC<~G{1 z^DIG>bMtklqgp#1vcv%Qs?qp%CM_UU!(<GtO1cCQMiy96-yEKquVF_-e8aw$11^;v z&zUo;oMQoUDhJfG=%yhUo_OM?hefspg096s!a7vrMTyyhykNIL#8s!<F7_y$UfMwL zfaTkOxW#)1!BVfMOR*X}91Y!T%OulbwvCyvWCO2K4SN3o!f0cQL}wh}^{ne^tcOj$ zdtXD*^(iEaNVvf)!ZyLIFAB%I!&b&eW|J8Q@vR+s<c~tQ<b^P|-Rsh-=oZo2czVJ# zJAsHEde;KJ-45vKuaQT^SFzdYT9deEUoU_cJmS1fBMgegc7iemdq0b$Xgoi9s^vy7 z)#MWb&_#y)1!G-Z=z4fbzE+IwLrISQ)sat@%6A4HwaTA2PPurd4U@p_n(bS15~O^m zy-8`|rSV<I*sm^3DE|N~aw_t*hP@9;IGDo8{pTrbe2catx(LQeVtK8LdEKs|y|%lN zC0uQI+lCd+_@l#mpMmF=N$u`#Eh2rNY;^e<PjgUP>p*!1)=<F*MI0KXE?pMqqst1( zDXXK_^k0iQjht^4)M=<lfMBr48RoPm_~mSlB9BLqPIH7UfXCXru{AL%QyT0I_rdk4 zR`nW9(kx)F-F~K*Jo+<{<#=gtr(>z{2gQA7Qm}hlZ8jYoJf*(YB;5OPz^*R#D~&>S zlK$iE7c2oTNz05?xiv@~%K0W^judm6&A8Rd>K4{UDH`VBVl`CB`evt|{{SB6qeg`s zJbl>h)SaeFJv|!U-Cbeff(~jcM!44RErq;S6G<^3tWo4B9<|u`Tj5r-tlTD{sMxip zl&6JhaPl8<>0ZC#%?885Fu2p;SVQ&$C-be8Z>u~!W@M?aXF=V*rzzm?hJWymLYjp4 zPTGqd;x-&8?Oo<t<yo5r^Oj&J^Q37vF#F!3q-}uh4rAPNmFB7Le7#DQCoX9_vbid$ z@;2gop4BIo3NHYG)CyM#lB5!#aY+^=cHyEby?Yuhb0;h6AOr)ocq58&8zt&+MM)3> zKQ`eU#zrw82AasL`?NnO0~t9rJhs$vmbOB}65LET91P>FK4k(;xi|+I6p_M<hW<X{ zmQajFN&3{cW>eQtFTV<7+!Ww3q(#}0v?>$H6(Mdmp#*oyrf1|Jl0fvPwRaWnW%!p! zT~|Yz#gM-CETnq&t|P#gGTZCEL(8<LV3IOG!*(XUE-{%Af!(y{8LuYs--hGS{ARkG zAVAmu068qgF7@eEd#0BE0N3kp#8R7#ZhF<o0m5$JcLO=BPZdNP!y2H^%+QgZ^>f48 zqUxGeyz1(HU9Go~p7mG6;D2Ij8{95pY;O8dPR>YjUhDasKfsb3MVEQ`3oufBYt(`Q zgcjiQ!LKa%B_W?jnG!WfQbzg588zy-PyolZT$<*xWUHvf5RIyvnTs}innw<SS$p=W zaJ#-?gX$^&04_r?+y^3*oJ}s?gi#h85<?!wn>=UERX`Z@>rdgGm}W9hdL)T=f|&|B zw@jKhCCXO!MoiLMfTIDsjM90}_tkR5a5Gc+M8Zh}@if@r3JKf+#{lzC+FBHm5r~2F z{pK95dJ#?X#{BKz_Z*6P#g}5p4`a;|w$)IrwST$=T4<SFAqfnjwz8a%b4%tTE=f2Y z=~+DMrp8;2-6|Pw7A5kE65TQ>H+=zi5Xh1+TyeMWQfyWMh{+ig<u8rQflpv5cCjV! z0M0<AZsYFHr=^R`jHwwo!No5>yHx>k#_DL0f>>t<j0#qUUE9=!k73Ctp{%VItai2B zmS>JK%D+Aj-o;lB`_jQY#>WG-NIp<YH%{ZdIz7>X3FoyZ?(9;y2*NI0U}A(jx5&o> z04VgKq}njV1nP2WuILVOeZ4AEcGQiei8f>w&f)AS7$*f4fIhU>!zURZN?q9jaKZcf zRkrz4W{cgp5>>ew80cw_lwevg<F*Yd!Ix&;yBzaM*%6EqMtS0+TWan-v=@t%ZOSk^ z5l>7+14R<5^x}j&S%QJ{44PCWl;CwZ!Rtr7?{}e#YhjLC&BFj!)_|Bhve_LmPhzFE z?Q;I(ib(fw&$cm7eMQaCbdq!($6AeC$jr;rrfFCM$Ok0il(&{PsNuTftvNrkgqur4 zgZRS+JUaxzRo!LUN%XG_l|-^A+&XtP?7tf|3%GPxq7eCZd&7C;@w?KzdPNVkl?A%w z*Ckn~=@xX-jhlNBC@R>=8T96qOOcdfRQif|AwZA<-k=_o*N_vPpaa^u;`BQu?_7p- zGM&Wj_Y}f6XKCsxW?<*#92ylF(*?Lw+qG%WdnOxhSBS_$lA|sBE$vcZBJRLYds6(- z$&jId=*FUxEM#&>W7zZ*NsD$Tn6BLkC$0}P*DUVdSRf8QYI+RgJx_X4j7~s5TGN{1 zdJX5yT&`0bnt7ASp9+1BDckU;zA7e+yoIt3>~*Bw)yKF^i8m<9eBEhtjBPj+f+84h z`teBTY@tG&5!ceOlVWcAK7h%ROH&5bZU;EUJhA)4<eD-V2EkBx$*p5`xSQr=ZzAWC zdUP}iHu4D>6z?sV<dDnQ(gYbLvysLqw=2}smdK0~&M}HrM=rSlsT}iCjk|bSW5^UL zE>=#bH2RRW9wRE*{vUdcrd5|5?-V%R%=_B}ecbn{6#2tEZpSrxGIn6H{KGu1DOcqf zz$@uYP^Kf)5x~tT;9-g9rfPXZarq0#7|%c|EsCEv@g6y+2Q0t_-R<d1G)xXoaqCZ) zsGI0CI|4dw#~7&CNLT@p^{E#b2faP~*-ql5fyEx`648+<W3)C^Pih}@a&gZcDddBW zGfm~sBAv<^7$lZ_2|48YQ&f<8XFW-&m?3UH_GoDpSPk5PgGQ}}jS=Ng{Mp4RU{4=H zO)E*BgD236jd!%by5Vp}Dtc-s+=hQNTo2v@7xzG=VZ4lTDp>{&&P6o_81vGqdZ28H zPIoCEDe4V5g2Ka`Q$|>@BR=&e8d9Jr+B&u?ChUg0kld!trMV{r)4@=oRP&ylDmS=! z{zS_W!Dbkz7T9xv&r|POT{x?idpmU!P|Ujy6cg5*!Ajuvq2$b4)xqZ(VNsDGOlJi2 zH8()j_5rk=!>%cQ_XDqUOu-oLY2<AR-7+$1$!VaK+qg2Tx2`+lp(8E`;AWpO1yz<q z$j{0;)JjUY&Ts`?{oO(Bpw^Qz{EQl_xGqlR0Oveawv0P&9Ana<nfAzez{h&eMhU49 zU^gX(?|O;wxyUDuw5))gz>MabDwa`(Bvo@Yu{QGrD$B{keJK?I$j*MW+^X^pO-P8+ z41w00lVI0YGzB*~IN@=e)UI=b+L$42+&3g(@j#DZ0f``XG@bWgo!2muMq~#kKaD;! zw+dHy1F5E{C5Z}fDP78AjDy~jeA*-_DH3KVxKWPhnnLQ}l{h2TpnZi&BnCWlOjg=3 zdiv6FY20>gShfngD(5ZeO-DRiI3ou<RAA;Z`2hB(G>swLSmaiXsc06~=v{{eTfeOm z94Op5?TU@1K48ho%{<5scjxO-D~7_E1~K=KYG6a3oA4B%h0ZgNdTUC;LzD7#2Bpcg zh>GSCKnq~;Oe?pXa%xkww(Mln9e#38df9u(rkYxf2no(IX|ABU{J1^pQUWKT#}x>6 z&JQHjJ&1jSARlu|7`tOTc<VqMoY0^#=Yvl6h+kV1M!DO$un+MyIY#Hg5HtBxanmP? zdMG@1rOe8D3}<b?IqB)rqztEp$v;|ukV(KDd($u#%8XK$yA>C3kxo<|hM<)W{{WYf zR$Yk$9Ft5882VQ_T?ubtPz1putIr<yBp^Z8IjP+Ipc;-$;D9(Hs`l2xdKWxAj5Uqf zTo}7oQH{gWxt$6fnv#6QcOl8Hn||K^08e`KDXXO3=M?mlBb#!lXvYJ-f2Ar*<}(FC z0Pbl?k|_&}DxReDsQmr!g>3W5u9mH-o7LF4VgPm|k<S^e9l+yr9QLg1LRqosYVkQB zbB@%vBgql&-6798r}=FlA~K=9O)$6)8*WAqN_H?5p(@?-D?~!OyGXMT-VRCR_o*Xr zip<$9&}N`{S@DsR+NVgca^oW%Dr{AnWl76z1o58LUEgT{5=C3RY&xE!915twGj0e_ zA9}RzM7Pk8IYjG{ds8<`A0UD54JjC222Z^x0Y*scMvGp6hbGg>0h`p+fr1YI07{BA z=R0;2Qi4dw8OK_-`l76@a)!UR{t^96hzz0zJo?wqR>SupumNF_Uqg777Jm$1G9IwD z;5{*4I|3Hisp+)i+PUPDl6~L#9rTlGPX7Sbr?Tkr7t^eKzzArDaBIT!Sy_G|YX$Pz zxOEvBz^`=h=Nc}S+0X8lyh6+6_=~B7z&A2;T~N}U{{X}Ko?P!5(M$W^p}XSo<~6bt z@|EM-lf%}`*ITy@s+g%fU4aw`Ll*$^j@2)QkR-s9@|gP9O&y-Qf51Bys^8Y8;EYMf zAdZHw-CFOC2{W_~2=%BH)F?eZwRGwh@mh`3L|Z?1b!#iOhMH2)%9NPpJ;rNJ6kVM? z>o)G?CAchv72xsBX<AFZHY`8`7&z-+JBn$xqI-B}c_|`}u;eU7NIx(IaoW3EnFHw( zp#9i3$C5p(iPQqR=dRYxcFy8WE<$mSvmU?h)nS$6c5!AAwPu%P_nvd`wUKRamNr*D zW^xZ&^ea9t7y+3XYs@|$Ut4KEZ)u-q=gNRP8tU7{Hqfy!tg__eIKi&goK=n(O<5#$ zYbzA{%!GHTBbo8Ef=TG!waO=pf}Ff0DCoV-EM77f1zBxfBR}nODkQFSsdH*|MI2<5 zKUz?PvX;RBb!z1Q0O2z7^2Qmv<2?zhQFy{h0Uk(k)Q0O+?QKCe>=&fTJ?_OOLWcvk zE0akU?$vjKt&@{mSGwz|y_!pQ3yee%_2Rgb<5(gB1k$c|70%)JbM>y8R<k(kyURmP z;@u<0(!?G)ts7md2#<Ccde<#?;%9NV*)T=wGv2I2;+c$DTTQtB@X4(d(Smwtbaw}A zEW{JE9P?O~F)Y^+tBj#MjMWJ|OM7&#rr%<bfH6s9sK}EqnGsRyE2TK@WZtN~;>bn3 zY9mZ3VOb2{y7x7q;x`j%%PEzK+%Pj)tiLEe)iUmGz2sJ#444Dv9OjY<3aBI#k6K9? z_k6uO)AwiZesz=bG_gA1r_0BBlkcxg)G)s6aZ?r_O3muV*HDb?1P-RE&f8e44aD=B zlyN6oita$=Fugb}Tftc7mW5IY1Rm8byLyhaJ~7AROA%GZdKz=u;`BQI00%|7&SYTf zGqrYguSnE9S901NmX?=SkwF{=DFYw83F%&Y;TB<R-0)8T9&=qNZ#DL@Adgyzr1c_O zA?vEkZEhJ`%Se!@C`ctwP-}$LUK@DQI8>*Y+lroRw3GpE<eZN~T(+?UQ`{*(C=1CI zGN}cpQN{}QMJe0>01Q5cr4Gd~0Vh0D9Y)YY0tW*<YR$Qck(rJN?Vh!Z?v8}@C9&M| zjp#P7TC(q%Po{XLTQq9<0|eC4w0>qn5=iKJRBTT67|i>RRZ;C#{Ogi@qm^EMVmUQs z?iIlKNk7F=t-xY&kli^nxv#Kt>1I06y5)1YZs69A*(I4q4hK2SP&4@}7{DZwaw|e9 z9hF^F^IGd|3|@u6j?6O6N0LkK$<KO}%FO}eX<iORB2OygZa*qFS4Cdx=vd-;TP(Q8 zLTT$~GtO9m6m%KuKxw9K2^{3{Ru)HA&QDBYlXfAy>NXoq%yW#7TC}ljJwf-VW0i|w zj$4X*L}YNIATN4pH@I}UW;=4s58mfI@m9nLNg({)G4E93^A6B*NjSp#RkXHfz$nb4 zJoA%F$geWQaD0r+z-{kVtx;T`o1WO|R8|IKlH{rC4P3X2aRG1u_p44;vNC?9<k-gr zfohQ*OAt>LSs_y7kO<B*Q~4@@Yyb~RSH6sxo>Tik<LurZAY?uKL!YgE6{#w(g)bpw zAMxXrAo9O0eBJT!ns)Gf4CPg|IQRpvHS~tI!8|v9-BoOeANS2}=Xlavzy8=!g{sa^ zZ6Dne#Zgw?6h$mlDEr4Ilui}K;CCOoK;ol-d9lP;<0>*K({kVe!uPK!>!J27DDE=i z;bEE<Xv2a|K%_S@w&Ud(+qNiR1=I!3)xpU=wCj%`w&K`7TI`^-vEgEVJqSzWoyt$S zra?0a8C3>x!8J2W5nPUfpA6PzoXatYg~;PMu8FN0I2+ibd3hp7EQN5}cpz7tc*f>= zJU^-{#UGb~cjpA0SAB7)TT5*2Bz97y{L6ug^G_dLES?p(5h#_s)f)-M;YA<fM*Yzh z{{VwO@W0gh$H9>sF9ql!un4n{IQLrc>ww9Bc)7_p4sw3A?%Gk=;f*ZeQ~eG<kR0O+ zUKxMRrF2Q_A<yStbzLdyyB_uhCpmhJ;E$YuMQ3Xc!ol7m?E6jv95#NHb=`MmIr`NN zQbo77mTV2+WD4h|(voLpBJrl$T3MVjTI%K%6WmMv>@#5VR@Y3snR3z)N2?lrmbs`r zTV=9<j$FQSaoVOD#pI5DMU8QemFx5MK5{*gSNj%O3K?f*RXHlH)|6-_ZGvYeG$ew# z2Bmx3<Zc-h5yn@&HEwl784V`yOf4L|+m!D0u(tXKl7>$)*|WebPHWqK5k&U>8by9d zkfSND4V`sHx0h|#l>2fEFTH&M@T6Qt;QLk787Gu6V(7TedRH|^Wub6M%gr4xjV^_! zhc6vfq>&)u0qaYm22CGN-Z?O-E9si4;_S_$+&15ofVn5$v=Rn}&Jc$RsJtJgWbC4> zbSBi9&iLKI(k|2t7UL$oxuamC1Md4*r1<VtI!GD&(f~1B6XlN3xdd{@ishTR>(SOX zGs>2BY<2Bh9uJOFt}f|F3_(Q;=~X0%BIh{It#5cZMg6I6;nyS|ke*M_R3~$v6Y%NO z@9r$(yFnf5CGE3)=p`9n%D6p$;8%qFMS6_@yVCam00pCLOxK{M7@R8(c_dV+0a9}1 z!Tl(m+SKBuiK#{VlCj~Mx9s7n+6|gliQ{qRa3@XQFS(?P_IlPtOBB8$w)uHDkG*@L zwOOQ4j8J;}(+nw+k}f0w{Nkn*(y`tBtBA6CXn7W!`#)R3bY#?ZnQtO)0>U;GIIj0Y z@J^NC%OP)X51v8F%{biS@vXSg!wj%1j^_rSvu;j*I^C$n^F?ZKRmE4V-!%6T9a<#> zkgL#krmL@-nBDGsQ@06A5P0v3lt!qf)qb?Ot)a}VuzATdVL+Mr9G|;QiXww?E1u^x zo?4Y92F=|_>S-d6Y;74;+m5~SPe7HgWEfyuAhr$$D3}Eaxv{^DVxAO-9AqA}F!_Lu zcLUESrAl_#&iu;kdW=HhU5fPPp(v3{g;Tc~-TmWF{qF#R6P_w<tK_cHoQ^Y8w$!NT zLb3xVBmg?oz*!W9!5u?-(}lddOEMrB>z--R#pR$F`E%ByO6)G~L72k;-zh$(t%6xb zVvlb^dS;pBhIT>&H)>f?w<^^piqYyvu!cBQUUCBZS3U6yM2}w4XGTQbZoYg{JAV-E zT?!*4&%74n0-dk`O9f=;%HtxEe6H<WhMd<cJm=vqw3CQz9&9mEL}7se`-<&#r6R`r z5i691_;H@q<(mGFAB8+{&kxUQaVp(I_F;ez@hy6t$Zbc%^352>nG+QR;NumnS1gmg z)}PnUf0;^6Cw=ui<Mw@728Sxo_u5xxUfi*-SCR$ap4qQ5_!f>WuK{0^&t(Ta^IoPB zMhqJzcN|p9T9S6^N|LhW*siFma0@U!bJ~^W901uMU~yIrp#U<2_|UO7;u(Nka0u^F zYuiGWnh;Bu!FC%+$4+UtV{~Y!r>D}a7_!;HB=$6nS)XS01a-{|My^z(w?sHm11Vw; z6&gy6_&|QRs|MZV2WSWCX$7mQH_WP{rK^c;uH<hb#krf2>FZ4oxCYoz<G88Ky7`Op z?gVEP+k$-J6Cp-8Cp412h<8m`t2DR@eq)~Ep9>QC;~4bjt$77k=O6>m6<w`kIby`I z;2iKPOI$3Tq)z)>jGX@fI%JY$v`TkKyp%nKO)aM4r#N*P&#gVcm5huBn8O8^f<;!^ zhK*`{DyKONai6-vl)>i)M{-lw)|#g=7}YWld{mOe8B`Z<U8`J)^*V0tsELM0QZS>8 znn1sE2P6(@N;n%zl84rS6;+UAbvgH>p0+evE>=1J0DN-MFI-}WWSiz_n=8i$ib$jd zK{@xO5_z9@a2|%Kv`00>mNk$Aw5s>!owWIQUPn@B$t}}?Q8cR;P2q{-Xr(0Dv2oVR zu>SxsNTBl>JOTwhw*pQ<_B79!D!P-A*{Q)>Id1*)#a)*`*RG?Rl^p!-LuYn#w{LoE zk_BW05_#!L!43xY8@h+}p?R3u3j?-W=WKh@0L14x&w6VkZUI<gq+AYwa49zwyvEkL z12zW$j@dNV8=r#1zG=j_-6uP#vZ0AScELRWsZU!KvB~^RNT0yhO(ZJOq^kb_KPRtR z@Qa2~BLT=`$I`xp_=6MNcsEl}#9|O}iuvZ`k@Bb;unEm$Uea1G>-uK2+Pl~K{*eq} zgr#wWJ#$gqputsQGwDuYDl%kn-<>R=md<lrsoCszH*HA7IL|G|G;mn_<y4Ne=_Cp` z&S{&5?s`?p^%M8C5M_rC`P4TBLB>uG_lJ6!nM#5<=bkDjA?4f89E{O*yA`*v*x7_^ zGlA2Zky|O3Vy2;xnF-s)OmI}I0LK*GipWjtaRylYrwVDWxR8qBPI=7<AyicgNFLMz zS&ta^rKPnQ8}$*fC66AJC}KFt%^OljN8C%TE^#K~(>*GbZisuk44Kuo{<Ou2GZox@ zNFJ3dFfuS7C}GDOQ(q{|6$26mS!%Y?Y&#4_{o%(54l-%ZcRK(w4|-`>%z;?^{(_XY z*F5~Au4(zPr_e=@%E@OW9>$SCZ<z3U0%@*3LdA|j??|d;k1Q|`Kn*P<Rf&mLBwzp! z-Za0!KnsK1R7F}a-NB@UkeJUs^F)(NLTrT(ybf{)6z4-AB)2%@J*mM^@J_-zj`Y%) zWBfv#UsO}_5+J$xR|nJ%w1Re#nDhgT8gX#ABP-7YQuQQ~Ng|q>L^~o6oczq3gZw6( z<%1K=Du>;{$?hp#aze6@ayd0Su(;B=8Qc|5tvOj$_&N8bC>b(-_UvP}DG9+C92y(a z$ZcF~%FTucA4*{biRgQhY35cS@r?AOCp~xsVw#h%KXnL%42)+d0E#9oK+Z_cDn=VK z(NGT68IyQ893NWA%Ucn-8}%f)VsX^dWc}oSFU#wWwBpDyl*#opZy;e;jMXg>PB&LW z1M&vaGCJmzPUyrb!1tq<b#DHYj?B!%9s1I<+!I?7?qJ891MO1q+yH+XVPL;5c|6pB zjB}oQih8|}n%3k~5~vi7%bt{>zjRJXrYMn_fhQULDoJ<%1GPZOIO|gHvK{p!U9uo< zaC7ZQ{{VOloB`5;da(pAY*U8O^8iUB9M*|jb~UcR(gFgg&ltukyu)K<hhIvW2*_@R zp}1niVF)?nJt$T+X{}K8Dgj(_YNgCrkfUUrWFFOQg=h30l?33uz!@QX(oNp?GFDnH zg;5%pA2?D4HO>Y><oZ;SAS|Uu2_4NxB#ROsGv!}gQkD7^$RlNDKOq2m)Z-3-54+UV zU}1MD;Pa7Aje`=QuyLGv(HGRo+4>AD&2Vr|6m+My815rJ^=cSG<dKT5Uj>FUT0IMP zdkx<2g#!!iK^s|%lH719M7RLsp45)#oQ}O}ZEZz<T@cA1d*^NiIupsr08=JxHdRO% z??5<0dRCtlYz=F1-a<2$QgYq9Q6bvleYvJVGa|FHmqzXBN(p8U`WlGcJ2O2~)H0xg zPc*80#ws#*4rz@0`N!!<BrDM4JW{FM1H0Ieo_6Dd#Wi?5^!236U}N*AK#a_Hfv|NX z)J83dKI7Sg9MpS;?DYE68IJz|mpq;+&V-Oj#c3DHQ&(0)q}%fI^`u~`a~TDQra1uf zoP8-DXjRBQqZLz^Qf+Za$poLRH)<=AyyvYVka`?ao_&7`$}(+_Lf8u65J2=4pcc-; z19ax1ide|*Savk%<Y0wxexz4JLcP%>sk4p5@z$EDo}IeWN)iTJ@CP*4XH&IX8R}|! z*jKY8jE%>D0T|q9*c%ycoy8|WGB*lvb<b*sx{p<$#*IN4Vq35@_yZ_Aj^f9FJ5yPH z(~t*FjYK*AE~BZavy;#pS2Q%O&8eq+DXx)XD9Y}G1Cg5Lba`9*PaTM^oRXjpdG2e_ zryf|?<C}cWC~iwJF2DiK1vN^!&IirNAXCbL8xj<I)GFYCx0O8zuC(r~Vb?<Sv5(9M z0cOuy&{+g8lDR(hm14)vX3lu(J!?eBWnOTnr9M)gz{D9C@z;zBSc1ssIRNvTK%oA8 zYEp1X1A)aW-$Hr0R)WT%xb4$5DIzyvxE?xF7BjmioR3-$QVIIg<?J=@47vkh3aT5| zHCduUz~!@6Bt>vrk?B=VGIB{Kt*r^Nwxgs0TNx+Z&{=^59+aWE?M}!&NdwlE?n~|_ z^CJz%9`!QDs7XB!Ow=q#0e)<rN$pZ$Km-zd8mnkduTF(Md5h>;iYVHq-TwfUeCHM# z-aL{49Y;0vj<A8WeMciJ_GjSzE9VP!U$P(ouF=w>R<gGD{SoQmZq%Z@zczaBha9$r zVVB9+0Kl&nv>SdU>S)<Nzj7<uJSMxedj%bK=PYZ+A-Glesi<Ny0hRu2<QnLWxh?7X zo@D<3i+^9x>%2z`T)_rCFlw%y57+=_2M3JSw9I!h0k|I6rU-W-M<4JLT1C2MsoLwz zuQl5{5wwBW)TyIGK4jXvm}frqDqAi_;#(fQt4hr`rg+*8Daxalpy157;Y(M?Z>L(@ zfPo0zo>zgI&%aP_RDtrS=xavYa7o8bE5XIuFGJnJ$#Ww*{sO36G1^Grcdp_z5^0PN z8=)gVg>pA8t8e?xK5o_6MCh71Y!*IVKsD2aZ`s_#G1jZUk>nl+QGEJ>N~|6!3Uau} z2D<xQEhLcO627&~_$p;xcTnAsj>L@pYqyGcp<}e+PEB^b^gLL<brl~=Qg~bsS{F&k z$RwviNUP}LN93qdIulP51!5Eqdm3-Zs7?GOAF$=Z6$BH;YRo!Z5I)i{#QevtO)P_Q z9B#qS6iYmhI+a{*?de2y(HisVp$+AfaU+kspl79W$4!Z&D#$QN?Oi^lJf_}4tN{Rn z#dA$8ulHN8dbqc)hdi&;YH4spq!>WYuQcOky^4K!rb#5sFt3A*W~(Yo8b16nK8Cd9 zxHr_lHKZv9;f?+CR9e%|iIsXEYK-qy`B|SmiK*gAh7Ss-t!lJHId(a(65GpX9kP|o zEcoEnQ@Q(|ohwho$s@-W`~VoR$9m4TCy;$9JKE^lot?%<^DZ0tQkcOw?N4-Vj8J8% zHsJfx*K<jGqQ>A6f%wy;0mgml(cr7EP2K5|uuKIUR4rYJOjv*|{xucQ-@qLWNf{?6 z1PYFD0UoBc+1Son>Q+U`IjJ_PfN(N<`ch*9B+~9|ZU>HOy-bp}?CrcCAZurIAd$xG zR_^@2Op<vfu>2S!8fgHWo=$6U0fI5jVxM9eCF&2eZSU5&%hWQ;OS$=vL0yf^VJ#W? z4hM5wJ;amTIc%81w^ki%JszcBTM~#BMi(dEr%O}?er)=KRg1S!$LmjxWVpfIwDicS zT4`fRYpOKtt+R3tL0+78t539YPV63;s+Kx$*(43-J2B@3)wQ)y>~YCCtCCDhO@Ns4 z3t(;>gH0hLTqqvI(wlxsINp0wN`q+mfyYr;#a-BU)RiTTf)Il^<bhY?ons0{7!KZ* zO5FplH~@}@uB=Fr_0P3x`ywQ|7t-k@jf<{#AG!rZWsl1xbGRI0q=h0eCR=Obm=!$P zK4F}GwHMTj503Rv0kMHKBi(|)G-Z7;N`-ut5*%@ynqBH!aBam+YMt1c<wKHYk8*$! zvB4sxj^Wl!vTg^d#W2qlgDh~vrAU`SR{#?2)6%P6g3%Tsl%wuZ+r3ZcKH>7<Rb`WD z=u00;ohR~!;-#2$6`NPot(}=5EbW!ZC#Tl0+V74aUxS*gE{wrS#E1`GYJartAOH!i z7R1d)#Idt9pf`R&9V*nDitG)|R{KWc2wV!0WoHD1=iafC>?msWJg4J5t2VFU0OXYy z@sau0(f%MmXYlRoe5D1RSh4o6o4zc(vv|Y7P&{MGYs4(uyXL-+@i9^1`_Uqet!`Hz zg>2ouoAO`!Q#7UTN^$Fd{k0w_UtowQ?>7K*jsT~RkRO<qCxAsm7F`E#mjfNDU!N<J zlkZ+^rE}`7E??`o+lU3!(Z`Y)e8#2w3Mw7oIL0aqt?cNal#q-D9cm$KB&A4pEW8|? zX1nOC#QEG*zk12`Czf-C81F*G7+;u!&jzEG)_uzx9uKE9v+1vdSo8E@R^9hUKV8b2 zz=9hI@(|`T_qtb?_|iLgd^>N2R+u;(bIp1eh%G_V=7rdAd??S>yywO?hSNuYcWaoy z{{X&)bYb<W8}~V}SN0Vx{HND;0DoZH{Gm*CXc&LME5bH?rfFrBvRT^zdlO#sCI*Hj z2X6Z{&;9XU4Gv1K<^$$opT@jQMdFvp`b@vxa`htIxxin>v-O*pZ0zK@nTU;eYz)?f z&dV|9J-SwAw;Xd?Fqy(dxK>oRJv>AG+q39%!&kFEb!1?92W>KKe$^R)w3<=|aH6dx zuACr_RJ}qNmHCfMQh9bODaF)z9T*-f*oL+~Mse(nxV&9uaGdFvkQ39)O0gG;Mnc7> zOmcqogMnHM_A>@&omo?<4NRL;&}|We-(k9ux0=#gt1`N1Q@Gb8xp1b;lHbA(E8qSc zO>uYOdnS_9TBZoWY@RE@r11`gJ2Y`!G}5Z)9#J2yd*8#O6rLBgF|#&#%W+)QVyu|y zHtJ~fFL>ZD_CSoeQ005~&1snTTSvK>NKi4JyjEw76whHCWaKo9+upR;=V<5v99KHk zCU>nTCj5>|#>GFgppBoM`NzF+aDZIybI(lluCL-FjrMss8;&cG^MfcD<QnCwwb1lv z-9&8h?sf!|?rW|1Z>5R#$mc~&M2F{N-@S6g`HV6MHQjtQg<QOWeq}hSg63B_@vS(k zJ00i|T*#m_op5;I)Qw>avjBEuk(zTTRN7;8!+q)t?cj~s7yyc`4;?psN~@+dzC)=w z8<l~`r+I1_Rof+oKq9X^ay7Ah0Kg7&#Z;9;Ww_i2TCQ6msa=p<!341kD*1|dIO{@K zB&bU%A1@g7p%?^E7hngt>rNAp2*WCq#bYS4Q?nvpk#>mJ2ZC|UBC{sw{H^g5^Lq5{ zQxWqKoM3e{$DO0jI3#dITf1DSq{_1x<3qtxMgTpj6b77p=NS32JJgb}C`$m$IpkAH z2F?x``qaCv%6>puRPVtc`c#bQWIzB>(<Y)DxMcgIsPz?UM21EL!a8tG8b4AWVks9K zj(v09ql<G4Faw^(rFGh4!w|UXNQeZDjN{gqH*-Yv)Rlrr#BSVk#%YeEu5pqNL(+wX zRfz?IdWw;7Gs9uMYL@p*huBqt0xW<iX6ixag;<MYZd<NtU&|Q-C(@cE5r7vYXXf>x z>NlYD18Cz4a(5bN*k5q@hIzowYG4Q@mA`h&_YbX8K>J7sVJ*~C+)KH|{8iG@<4A`8 z04));lg#-B2o*Pg^_J9pGcCWGWig|G&DR*MpBC6lKZh@im38u)<|mrteig6TG|SNK zB+-Z&nTOJ^Wq195S1q*X^8Wxo@+*7>j}59s(d4X-`-^lruUUM^na3IJUQh4^qiaoC zQyjoN@&NDCuS)e|;ILfmQNT1$;+6Uw@Y0&H9P+Y_s51R<)R6{otsn}=u;!JRtCBu$ z*);Wb!0l3-wx#OZWO6i3akV6U!>HRtFeA+DW56kb+2=JT+>%at?@=nNyJ4`vXP)&o zZIs&R1P{6mGDZr)aCz%eOBN3Rg49V6O}m(6{&bv>S;UFhB8T2U>4Q!}te@(@W8c=9 zBz|jP{MgMf?%9RftUXO7ZOM0Rd&avRnTnOiPHMK$@$xqgzgn>KCej#`d~>vLYBc#H z1=NnXCYot2i;I0gqqJzsIO&ttqhYh2R1P_(Zeitx2Lq0@#wKIjW2iJ<`;SxUCSnS_ zfw|)fdQ`Fvkh900oEicFj!!)l(6F9ZF*!eUn&f-vcShSWBg^FTf-{17r8qncFLG(g zg=X%@ia{Um2qSI>dT~qb6xO?j(8>zrigEzt93PjcG@PNw@b{$+`^78waYm9>GPB(Y zw*`)Io|&l=DCom(7Lz_{!NH<7RtyLP4%IF4*tomi;KW1=AD=#y*(Ckn&%%?%ITR*% zC4DK9o!qK!Aa|tSEB8mM9}xvf2PAWv9zsYiyMd)m+cz99wKwNt7<BfnBd(@N+4=}b zW?TZhdXHKh;lKcr-7`*URpcl^_cTZIDaj-bm7;c6mVlP7<4d~$I0a1vA1pMSu_RIj z;NYBfrD;o$22MD^tn`x}+L=Bu-7khU5CP&QBzk}==Es?*l(5QWaf<qbSX7rp)REUY zfxuzTIIo!Pr&o=o8FR>7`qVo(CcmwXC~GFat=Sw=NjsmLDh2>OX~q*7C77PX0ZuKq zE>6}xeW|Os<%<HRwrh(1@!N7H0SP=E!yMBvLj$pxcfhHojBFzxF%=TLkpMRpE$Qi0 zw00j$A~H9}g_J}GKQO4>3|n`wazXirdYOtcleZ_aH3M;O!16&D%{c^h2*@Xcj{MNz zu6W};sS0^vcM`;d(viMQu|Fv5LXt|vz4aX(z$|gNdsC$f8|M4{aYzW>gnZc<ruhnA zcbH2Nlb+O`s>RuEg!xV}kbSAegKZe(ni)uS0Cww0NiA0ws084g;P9rQLIk@8a@?F$ z&B64|D(x|`QgV36ru5i{e~}SyEr`Z5-k5NOpPjw4OD^VYl25KGQRFT>$ldYNniDB5 ztbwE|`$^8>nsUgYamITJj#$jB2s?33Cu4LhX<fEkvswzS#GTF8wrWTw1ennQC#gMZ zw8{&H1pCynl|}_VUOLv2Z=kQxRz@$_s67oy!N^iVj!iXATNx)OG${<s2T_nfsOE1` zJF-aMDmJNp^$fEUGHs7&AnrM-eD+lf9!3XTQzL!c9Fz2=WY(g-q)#G9Rfg>28-+@; zvw*E8RCn)6pEK=c104bHOk$;qs(^ZsDW%Ys8&tR|*#ea1vcTZ_Qx7aKO4GWGk6vhc zGLycD2~s)Z(v7RMkU=Ai8bU}6#1aQQ3Th~K86*S9$fo<EUGHK?8=?V#%|gYIK3-5B zK<a7pvmPTLW4WX_SIhK1l`ST()D`XqEy0+c4?t=JUC2uvyx?HfqU#{}Ps^HuP^HNP zk8agUS2em~Z3uD>O*PYV06H2{K;e&CBF6S5j&|@VCc2qvcE*Jag^xw<DWXh+g28>q zT7Q_MZop7yEPZLt``ZJbO0>(@sa{9hIANZ93Yh_LcbtRR)N(JcZZauU?FS4`9StX; zJgvKjmK5-Kq?m2mRBrXn60h7NAoQhXR{3{)*~UB6b9ohOEeA+|A=-rJr?pj<Q4ml` zV%%b<l5-FVoyXprBFAvN0<1l1Q`YP`thFmkDNNyW#X?DxfOEWz<kak|xM1$=X_5g9 zn+Y6_4O+9*o1|A|+a@?I&=FAG`HjJC<NK^Qs}e^9L_13+G00I>!z|qxup9z<)XMBh zxoXhRm;)z+z){+z#@A4sXN=Tf4fr(nRwp3j4)s!cd!#lxQb9Ok$GN8$1O+LK4yL1X zwRi;N^%Uj@Ahs|?Va=(kwT0fYD=yv#Ak=$^Y@e7PT5xc==abx1V<QDmQ`0rln!cuQ zS9BwO@vs-aYK)JY2c=IM{gH{?o!RM4ct+!v`c=2sa+AJ*Tx=nJ?^=k;t^$R_XOe0~ z8%M|qpvLVoJFeQwQe-F0G#@YTV9?uK5Jyf|>p?@jl0JmdBM^r@Xq=t3+;2h`B*;0( zdYPpJd!Dq&<1+$OWQrFtou?T!r8Q;BH!gyCn3NJYqEb!|YK}~A^{Wce$cK)7O-!_9 zCuBqjlPmhu4??U@u@tNjCKn-z&S|AVKyyR4QWFwBa4>PtBAvSiqsw&81xN`16OXB^ z`sh`zO$v{^SCiJQL&Q&(Cnu-1M2-TSa9Wl*02wDB@x^QJbus1c2Pf{XX|jBT4*f`} zS+UBFdsG`F3|!#-O-hxEQSLc%>`QZ=f|wYCvt~|u)0<&T<L1tDnpJENatX~;yVw}^ zk6{bD40?)HKnVoodee$|tV<jd%`z}oIOGG?rA;BEPoe;IQPhpR5nVeLVi@%t*D<2V z&8)__$I5uFotP#;&QD71r|_$sl6r|I@_ti{b5W1p1C_=*3YQ}X2a+kE6$FvV?_Dv| zV<t~y6DeQ^-sb|Yrg4qCdy`cy?o3adf3up=n3dsJfJZ*{uQs+ZmZ*ioox4fN>rX~y zBpyNSQ7OnAayh}N;vn<f8WT%EvTI$*2k#RBiXQnDA|jz2XN+Xi0_<#qoch&;IT$hL zKD0RrXjGhk4t`U>BC3!#ZC*$iB-OjT#EXzgEsP4PRaQbv5DBSILa%)o5HO$)L8T<f zxgg*ibf;~`c>q#}b&LgVyz&U^O%VG6?Jie4kJ6q7->os54oL@}N_=h{a!!54TD^g2 z^&!<T+HL6|<iObctLE!`kih4Hb6-kdF*Z|?!1CCBmGg{bAaX|Iy@%^q&FY`^(DX33 zyGv_-nd=@HB25C#)E~Qy8u3Y0SK_78HUMdkG1|Sq!OpVi7PuvN$0EE{!oS74*qHq5 zA#9r7I>z3gsl#RM6rZ2yce6x8Wiv>TZG7@c9ZgQs00|t`3ynyl6j<1996!Bv!%uXH zUiL-VB#ta)hd#AD7a*qu8s=t@vz^RX=RDS?oih*t1cvWa>AvQ%?peAmEz)uF<C?n> zDlz)i37=)!j>KS^xU5)XwkzlHad&D*&|vMLY8wrVhZ!J(KDn;LaBVFVuil5R;ar61 zpJaW^F`o6<d8%}D+Iq);--SFJoT*&q%%jawSn=-+$irK_Oyp&=`PW*mazW=c$#`rL ztzDJ?hTK6PTI?c>5@crEx3zn5iu*^5tfGVj2O)_B3Ys|x$0U$D(;hPT&m{NusUlJj zAY-*@D5M=pZLZ!ze}^1&sZH{;<-S%tWSWIQQ;vD3Np6x5TxCyRYMUcVU5&h)3t60U zc9UG^+7VE1aJe<p&lR|{pUO|*=QYnoWUhlNxGy+0yc4#=p7tYYmyM@`Q5n_bBezV| zmWg+quGPgTi30GewADXD4^pR|kTGF~L;6&wRf$xvLg)uOYG~t*HOWOj#;nA!Fe;I# zZr}=?I+@+v<a|Ya71Va-Ez7u^qYgz-fwth0n%wcE5yxh-ssSNva648yL>4e|cY0P5 zm6eU*rO??vX3yO;#s_yDPkMP$N$t%w{duZR=&P&hIx(?u+_z&xF7wu;hDBezbLcVN znDQ2KPk%~<y_rv4hr}0e%~dWFdy*>Ex(_T9kjJf7olFv762SGXQ%RXO)MQ17$A5ZL z{;&hn6fpo}xurs^gy)g#N>1hycJw;m3^|G;g#-`*&2&2n`H48Ld&5$Bkjk4$!j5Zg zoTBYq^I2V#mY(r0r6w$;W1a_YwZ+SP^2*2~Awl3*W2yixl`);l56xV3g*^EVLY8Bk zRIS0qJ;!chtU`hmXPTDT<dIaU+N9Hb!5XRv_#ec3)T?x(18xs*K}~{YrG!Og4APb( zBWbHGytm86R<M(G!ki4A=B~ZQ!g$H4Zsl*e17sR$1Tgt>4{=X20$1hh)|f5><VExI zNg7(j;sUaAO<PFLKnEo7Dzr05-9|l)OswRt*4ct9UR&yCHfSskzy^yx=8<j5Z~~HZ zkEJ8L#4coEk;W;=j~HTIosTt|O<cnF+>l!XAuZ0{Dq{d4c91=)xry8;Sq@Jpj8obN zQ_1Vzgs$#3(JG))7~}D&<4nI%^r$0<#~ukU>6(=govpNjdkWU~(3G9-TLl%e2n1B{ z6lMM6C_RX(D+v<s4UbSoPviwBC!W04dh`iB3kz_F+jEiX1zC#XCPiYo<ow<0ui2ss z3clt&eX3tAe5?+mj%oBWZ@FjfNrCfZ4o(G1x8>6exKMaCRIEw}3<s#E%RF0G%NYZM z^{AD)B9*VH=KlZ_E+d=b7lG}vip_o*bJU9Z7sg6r@V27in?6nf74yH3+TLG_z5<0X zWqF4zybqzTp}c&uL*Y$OCJxxZIX#K3YRlQin_ZXwl+7qwrAaUEeu(lIPzaGo$qF*m z)^!qKWYewN%Y*}inhQqbjO2S)kej`k^_<sNDqk}+%2#k@9cdBgkwM8{dY0kHkmPV` zC%#`VYM~??8uVc89S@ttYc|Gt*O7e5AsINy>q&8Qc_+?hY_B=RNiL|dp#9ly)m-YV zuIuFf?U$<>-$ssg8*X#{A(r&pLWW()(r|IjaGoxL=j{4(%n3;^RxmT}Ij+yd+QIVR zi6SFwoR+S0UzSVhbSR4K^KO*@KDiv$)MshNR{pg)@locbH2Z&->V0u~f;|=hwLnV0 zQy5Z-V4!EzD9v~Z;rB5ZC5gh<&>HIO@b%FfP>Wu0aoAVS@NlX@-JG0?@o^V%OZwRQ zT(?Cw$mL?hVR7$SUL=6r>FXNgWyVMxirl#1WRH5m@kF=Z*{GJX2*b*!IOiSf8cSOp zxT=fUy$)4;9TZ^47nsW-$!6yVy;>d?TUAmwNIeL}K_cq0rq-T9{QS$sMl7{SFkb1% z^xe&S5%OovN?P2xABH29xP`J#ahjH24#walvFszh22E9t4M-r{y94-{`KGp?cw|5> zWMX=p^sQZ=Lo~V;q|-zIo$;wW0NAgfd=v%0hxF7zgfV3OYv)_b8R9|qsW-B)<a^iA zUKb@aTM(!2#sD7Gl=fHH-jYg9z02MpYj=tRER3MaFhxx&v31(zm#8&UU59_z#y4)5 z916QDh~zt0YL&;macz4YZb=+(k1)+-8<0t^NC?tHhTMJYrtz$XONb&r^2`>laH`5x zI75<h1#?a5W6-4eRhZ(<jr)F4-n(yw=<5aL$O`e9c~)#!5e$qAq@0d|y$9j6aK&MC zHf7nz$is@5Y}NERajy1>-HVSg4qE{I(VBh4oC1YT4nA%w9ybE&tNqX^{!ZsR`X0u* zZPgx5uU0)LnjOJ{NQZ)z32>#hAQ}BB#HlVoBPS;mzHBNSEDq91kDoj)DL(8ITA~%? zF_2&n)}WDDq{`rAebZJXw|OuEu+MW)5b8nBPu<NzeA=?KdJL4vMlc9HO-7dg03$PG zb^@$R8HgMlp7h0kG6hp3BOLasu$vn$9RR>yJ5(q^R>;Exj%rlOp;jC5{8bYmcTh;< z-l3%Z(v-Cw8|-Baqnz?8VouV*af6RqfPBhO{qIpyC+^S=r1i}u4pnqgu;RszTa0tk znI{A{Ak^);PNxH>6$FQL!2#WXa%yC)tJsG1B=eUF-^GrUV7m>>Ks@j%q7*}pN%b9S zR>tx{I3tYHS`(lbLKLVZbUF2<3(I_gOB~RVDimSKVY-HPGBN5qpGwy0Y+H9is*D`x zIHm#!0Z+^iIjLj&!vu!!nmn|UP<LU^e^Xh?O)_^muODin%feSg2*Gk;Qq9RGyyN>{ z`v<|gq)R&`_1Xw6<57Zm>sr4Tb;~Pr_6x|1HLLxhcDLVt!xcy2?}0T>7V6gCA=lmD zwSfVG(5?sLT~Kz9HMCCl`@c&u+A_bTzpupZz7}|HZx8q?$tP(9(v9*X<2$RaO`(b7 zBy}{#jZExSJh<ELjMR?`g1bo>9qXE2^01Og>LZogxwH6s)KTwr%Yci{Ip&@K!0Oy` z4JuogCm$mFnsG~Z7ikExY*Lvl4?|4|i!L1Y#svl@MksK=at%bl1D=#UwG!NTP4Yg{ zLa!m4r8S?->T~WWS7QqSmQmCSkfQlvMsvqn%a@tzXjYO;N%Dh^gwxfV%iJS9a9OHp z7oIt$a>M5NS2?Onpq`6jl&|JC+#i>oYD4?d0p~npH7i=S&|~?*Jhz~z5qHXR2pQ|r zoUD+4bZm-{J7A6A;18`mj$q3GBpt_kL1>D1zbtvpNYTYM-dq5rk`H=^<Y~<t*`G$X z*SJSlFYYQuJDZWlcr=+Mz&MQOk=W9#f4t7%djaWKwsqa4g;5#g44+KXBzNDq43ASz zl%kw>&p4#OF4$sEYHID-i974m2;7C8h{(=OJOH3$mBk=zqAZP)#{dyTY7rSn`oeNa zsd_InPHR0j0l;hyeW?(PFd5u^seWKsdeV|q^Tk#D%UFw9hWz}!4FSBiBRM2?r>@NJ z`^Vm+0PZAUj<k|-R$BsG%EHNwn9fNDlSvj4Fc|K~Pg-k8N&p5)YFNkw5Kn$jYH53# z68y<Ayb^Yf<kWGgGVR~N>}kb$0Z-J5R2a(<lhT__p(l1GbH^A4l#r(w;P;?yW$17_ z3T%?7On}?5z%(f9pf$aQ$s;Ab$UGxN!=9Zh<*S6m*BeIFS(}0NHT5mr0`Ae_k;){h zRF&#7E9P7MJ}oZh^4T4Tjz(Ou$vo6e`?ofv?NY@OH>b`xJ?X&)z^XgcK4A)@9Xr#* zqAppE;(Aw|YrCDc6e-+8H#qgCPJ?e4-P1J-;L5`|$m28z-N&aD({zxY`fLY;+Icj` z90AD~=BAD?7v?x@(<F~%=NZLh*G9y=h#*!0^Xb7fft2C!dHc)iDs~_eNI2keNbn8E zXF@8ub<{1b?l2J1?oX8T0Qyq{6%3$t>rafdWw$Q}flY0({q}C0QDx8*ad%^bGYz2N z_N0-s^0!iO1w|U>al1Tn8$PuuRV*{}GM(8qPA)r&`sgviPzKTg>S^J;r3}Lh>qDbT z#JDQGu}o;j0Sw-p^rV_*ip>pK_rmzVaqH<%kZl9GG_ei4n6D<5OOUC`<&R2DT#L3r zwUll-!Ka*jr;MJanz6PJoZ}pf_odsGCm6@AP@A@dl5ALyBPXpu>{dlUnN$A&Edk=5 zhj%1oVx8su*dHjWQo69O%Jl#|v5;_2b5AXWDi8vDj`WV3kH4v>A#5G1oD627PRT0` zO8SkB+mKGcdem+T5;q(kgi^eP=PQf?ooN{fJ3$=uKJ{DZOVn-%0k<*QI@6u^I-GzT zsihIhnT>~D>r8Y6V;QZ|Rvo*F;Fjz3H1~X}fG|Mo>rCC0<#E_^OXijVdy40h_pVxL zbP_q=V=qD6`qL(qxf~Jz=N+k7vkkq6B#I^6vGMm$QYpOz$fO0~$m5aLtTL;jkWP7~ z2#YAd+$u=VB#xabRD|!)gs+&3wD35<rZR*h9Ff@6$$%T>+md+|7xCl_{e5beb`7>L z0lVfLjM8AAW$sNrPFaB%WEniuJfi5QvvWiKa-yxcp%kZ1Xk}8E10M9|To9n+CloN) zNC!CXXk<6dp$R9Ze+qY&q=y}G)}t9>NjNy`L^9=euR+18lx`PxXpx*`WRZ%DmM&X@ z7q}dnkv{i4(|2!T7v;@nwA5+0p&L3%>zsmmk||wI4$cAZ>rU9Ji~%ftTA_S{*CMF4 ztcIj}So+j=MO~NW%MPZbetK|yYCDaN@rBP%nETRJN!ZRSxn60MNtFO89ExJ?bH@gw za#6~!T=%3oMg;JC;;PAM67H?&J%(9xj%me0`}f5(5bmJ&=}K2?b?H+U-?~F<sI#$U z+Mq9fX{yAK!~!vlQpk%UXOe0pCvnN(cBygH9=eZWP8f_)wWMM~@+e}=MmQblLP0CY zJ#$*e-3PejMq$b4Jq;Ko&Ob9ujz*Em9cW^3PdN3Y;_tXyONw(J&7Z(ik%J)I$7t{G zO&BOyi6r!<6l@Sq6#9zEJL*G1%EaJw#RN0RNnlirV2VdVGD~C%G6RA;if$L&(Y|37 zR3X6pjUfa?NL=>>(zwH(a77@S0~Kl7#!FYI&BJzf@O^2`z~hQxB)&f?dBNeE@v44h za}1Cb1B{Y5rZV|JcjGka8|N6w#SelrQ7tzDJOk9z(OKL8Gxem}837{#o~H~p@@mqy zqf+Qk8w_L|{c1@Fh@fAYpPUL}#(-c9eQ6Pbzst$>tzRsou(o9Hoq+8l-kE||Bnpxr zFJmFjah^>^$9rUOzMi$kdq{502tXWgO*d}U2A&i#>4Qw##AM@caa!FFwIqql?(PR1 z(5?{jNy)|qExPS2!0-opXlyP<b4oFBWpA-(NK$p!O7h!C=cRQ_3I^Oa1@z{*O%Ri; zMh~H`wPg#vMtWy8=+n0?&MK*?70c(985Hj~BOU$eoIXktxIE-jvb?SVC%LVX>So$x z&<`?Z%HS`5deHL=9AF=M&sE$ryPWi^f<47lb<Jp!xs0{kaE*8K#(Ijfi^$r!V^!Dz zB9eF=N3Bg8uu;@!kwfkY6RugnBOK6VBoIeA;|7t5R$THAdN*>|#%g(0wHqS3W4r(k zPkN~)2mq1^t1hl`S+Fylp0!b%%w^g}?3`w_<<P}W?!t~(W0CJp!#3|hL3W6J&=2>8 zIyr;oivT<3m6|Weau1Xi$vCHs76&*u=}L#?+?XS^HOSwdNve#mqaE+Kw+OOXU1Ve! zn~%c2YD2O~{{Xrre13KG!H7D(SnVoD>0dX_7wvbcjs&uG`qWfOy^mJ|drQ#uKML(S z1(Jt2A2$`_x5U|eS=1V0uHIoIj)3~tuy{Oe@YRzb8QMn`<2wHUn=i$i)!N&R2_$h_ ztree_>Ur~i^3%WQc2{zZz@zck<vdnQlHyGHgyi=%EyVu-XF(rhS)>bx+`o8p&2~mT z%^VUgK3ms5wY8*%j@&C8jmHGmEM<rQ<382DrpOE+;F71Bx2A-rt;bxz1<Y)u;C{8B zvShbvsdzRJK)@!YjYtINIj^6^E@?B|!s^o<a0Hf;##eHcAm+OG+)bk-oW+Pjfwu!7 zS0gbZ)y{AL&2|d@ZjS)Z47vR(u!<@kw=m5cjYzfS`LoG9K3+c%`9VWQ==px&=DQf< z;FjQ59itMSDv?3?cRKr5W*7mJ&3kZGx#7n0f|pV10U(cDb5h3|vk*%I^rj=_hkSA> z-u$Q_eAR1LV_nse1h(cm8FEHB2Ar%|?IU?Tb5oDrWU(hcwH#_ht<DFnHiao{%2%O< zg~$UBjw_x^*S3f^-vnct>F;GoZRGO~2?POLh$wADL@{8;p4CgOiIn-4q;hK#NDky& zW}$6f;6~e`MNn`ya&bdMhE-M^1I1fdQ3eJ&ahi==(9d%+4OyhQXUS#T%8HUJ%iYZ0 zVO*Yqw4%0&Nj_SsZlnrdBpH5H>q<$zE@qj{>yymTs=GEz4ox7(myF@PYTt>}6B2)Q zw`Q}Kb8tyM^^=YCxx5{&J(z^&pL$1=?rj~$X-jQGxP2)PIPFhiqHickmIofxz?_jz z3yx_^b4`Wx9Ep`U8O2h$Rt#M74O@+!3FM6NQQVBhk6MRxM7GeXi@0tqDLkP&9CqV0 z=%WEXY!G|X#ETgKFCNrKR%Fhz!wO!_a4_rg=C>6}$N~Ai#bNkmysHr8@XSv&xg6>b z%g%cWdx<yDi&sV#qi;QP^sY*1lg`Te^P1~5NsN#e4r3#X4)x2lMp8*Vd)80gk!kZQ zSej6(pl2+4Q=mkX8_v<5wF!**m?Y$JlTyZ*ZLi;&8!5Z9UeTdv4H@6hQ&XM3X>JJ> zQo=Qf!l(y4=B{i-&UpN3a@%0_7-Ru~9Ze#z50Ic|(vn@O{d1AUHzTj7IIR-4hR#|R zT5-61r|VWDV5%6d>aP^4%2#W8=BHWFmjbTsXmY-{G!@opI0bf$1|pdp@+;%89cl4R zAC|F}ImSq#t`v=+ZuO~ps|<0Tau{^U$ZS&ik|qNjkOw%Xi?F$0Eaw#=xhR{qj8<u* zK3#4}8Igk=?&H5|bS73+A&5QcwwF>dB&KpX%}Uo8I0?z`PBPZOn(9ju&h9`tTy-?_ z0|HAiEKdiuK-0Nka#VX%(cCuTr2M3Js%&zxVknsWpzwQBytY2zdek75<Y#xSNF|eQ z3Cfd8aumCg{hgfy5r^we@&G_f5;~A7v~uoE!I<NMDnwaTfZRgA-Kdggt3%HGQUw11 z9ljsOw<?lv!LOn|C(L2+zMw%3=4}J>ub#Cw+xtOyDiTXJ3uM>OpAyLb0EAyrTyDky zIQOlwD&EfD%OAzFEC;<>Y5xE_{E_6yp;a@_9MVW|enr6cq*J*^xTV@l0;JcB^=H_m ztVJw{@`Bk3?M#@!nPNavDi&6GSPYXxScw9S#5(%)uR@x3N6q40s<b;c+f=lRh9nI7 z(`LD|C{@ab9qK=_#$?L?-k#KtX>O-~$j|O;sVgIyGmzJ{T{`Dfk}otq(g6D6u{CK{ ze-L<1DDpR7t#$HvQp#JGn1y*=vN!NET=$7>qtkqE;F#d@ou5%eC0{#w=C!1f)5-o! znu*FDt$t|wo5XV>_;XPzp~<%@yZ)8nF+|W?q+{hOxHvWMelT@U4{E|Nz$_(lM|$u) zF_@vqJ3-H_c@@8}!1waR+*@pN&yF{4tX~&uvT61fs~xGFnSN&M1#WBr0k;5m?^zxr zy|jYb7_Md6m(R>QVz8p`Jr2xoENQlL68Mf>9kzk7?@a#ygqGkOrI5(=t3TUXD#}vc zQdn?FUMOvEP2Mq?7>w||SE{a_$IDA{q45r*D?1wiBLHKXU+v5D!oeD`>_upQZ&*sX z!;Fu+j8rY+8z|f<w~(LjZOv(Wtw~blA$f1E<5O_4^6QpQt$ib*!Q|=I3hWdZhE6@J z=UKJ5Cbo<$427jt9k|VX9j5};cIfBs#yI>d3X<6!RHe?_A=M@aQq$v6kj_XyL02Y` ziQE)yQJk8gbcg$EP5^HKnX~D|UAvHOX#2MScC1>C%c;6b_Gb~}9LcI9G3{7@2b3wo z`<l}6T!;H;1zo@{8ndC7%^);<j)u7ECZ8$kLET)l1*#cWJdb+xKZkn`iy&yC5B7pX z=jO&MfQRn_#DiXk;0U6)vXXgQ%C|?_#~kLW3G%xhb}7DO+d4SQ^d~*@ijh_K?UArw zBr)wy+994n6yIrx{nNJ;;ta5S+)3|StDbiI6=Qc+Wq+7<Bz3C^I7HePC)CtsSUApl zQZsGI$Q|1?oSn2D`h=H`VF*~41hCCiV2v3WD*4DAvsMUenF&=PdlSVD6@Q2a9O9Hx zO2&^?5j+Aw)2kED3V6*hkC*|Cr?;gsqcW1nG2Dt^5;Dlg<=fLe=;?GzZH~AEe4)5J zaaGnO4y;$2l##e(Z8!%anp{43<KCv-SSNiD#m@83&FNFJsBkw9nawc<9}Jy%1k|2h zSg_lk*{kO0%ed4{%hx>SoeAEoc5pZ*n=FFgZ<q>)C2|LPcwm5J<ui(I)+ebFNrFiE zOL5Oyl!L)7fIVs_k7VbMmpKH~!I%y)k9rzb9ny`55w~g%c;Jp{56-)D#xcb(IfzG% z;GP2kn#l1_jr3myTRZAkij$M_LDk>e6`k+02DJGd1Xj~sNCa#0<0X$wSD*Yz_@Qgy zn+>*e!+WYtCzBL0{KOwqisH2&iJmX`jdI$4l)vze=@G@XwFlvt6UfJ|D|f)(3T-Ez z+VWWZ%V-?9o>7*SyPkb(p(d>CHPtn*`TqdGD10#ZU3soe{{RUmimnaC%#LJ8pYE=D zabDUYPy}cW)nAuyN{?zJ2^k+M@DvV$pEGQTMuR1WREmj7$=sPcJw{|>4l(JPd`j{$ z0|9Z=(?>6dQb=BL?@g82oF_nd2kBYFZL3)h+~Q1?=NRBp@8bbZ53LC+#y)ONar06a zU^2(Q98%X{xRVS3Fat2?Dj8u`D)C8)2;>@=D#;<nL*s&aR1=&Lzzv__r0;DDOpH4w z?Zat298`&pPjV?j2|n>qzNVr^U71%H2LOt2^Aonii-0nxw>he?>QKGG0k^Ry3VKzM zob?$!YOET4wY|@r@otdyY}Co!mZhbcV%^xO$OArxlqe2Z=V+tkX5Aj(Gv1O+#~PMw zf_cSDcSKuK9sXyS2*6R0O+FP7mSq`n+t!(eNg1CByCFw%Da#_Oe3?9THEXam?tLKP z-2i1?Msq}DCg4U`p0vO+c`dgb8ZcRyF6L5rBv&k5y$?dk>DYT9l0BOWkaN0_k`D?= z^%MeB62#zk6uEpcL-P@Z&04&)2|GIoMp;OZ_23at`5lPdLwnN({{SrukRLqal(MXc zJ#mn6Q7iI^>#7xygMe|K^n>O&&jZ$wV7Bv~I|_SB7;f9mCc71Twwe$PqmDu3QbVzw z*mWYDjKx54NwfiiHvK8|u)KzmzD^qh)}+`~ww_0+q(%X7LCEx_M_CU;pL(uq=!kOe zH84u`9jV(`vFD7_oif8G<Q(zqP22+jbI&=dz4jYcc0<$*e5dpErkt38WjUn;k};6E z<bg>bDasZr=xS5whp@X0i?ny{dsofAFt%%Le^rI^xJp~|ucT4D(iiTAI61EY_=y^? zi?uWgRI`D}^c3peG1L0oRHw@;vy0lnMt=;{!(_-9;IKI6l4W9}BN*vSRXYj50=VLl z-+riR3LT3K^N?x13C0h(sdy*><&UjL<%K7lsO?bialawiEWqRuj>efGEZJ5hXT2&# zw6RvfJ*adgaJ&;k_e*g}kW0Uo4Y7TFY0(hbC<rI1J?caNu!>Cl<16@7c_jS20C=lY zwuoD?WCWgh%|s(%C@1Curj@zm9@QH@!}5d8V&!o)eFg?601ka>Mhd-Yv7PJy7(Vo@ zoRUp#W|ro5NeuhP1Dw$~D7!~)b5iYG22OFtO*U0*jPtm3qRXgrF^ja0PV9<vpe22( zIM;N907l<hu$x)%LCGJjX5_}-QUmg~+?@5KcV)mF`kF~*@`mOIaWv^LBFN2BchM5v z*u_<DaCZ;NhF>+XScUJ3RqR3F@M+^X<BDmt^fmaEgb}Lql5y)wvI0oPGAYh?HbB6r z-GYKg6;8xhYc5>vYG`2~>&T=osTpDSk5Xz~tjMJ83yksJh^rMQt#Oc$hD<gK9;EcA zlY!LG(Z%x>02Uk%dT3lB0Oa@0UE3uMVjTv4UiqmbjZRMN=9`B<!_7$BnC>b8$7;pN zqV#)+Hm2+o?@DC-(}92wT-0U;JDszG$6hI$TZP?J?)604-A5s4hTQN*c&2Xo&N86( zqG<O4w<<vEL;TpzN$!1VD{Ubr*z6M)K+Y;6`+(0GrHPxA!CdvtG_c4+k~6^qh`wj4 zA5mF%?oq~ipIU60K&qz*1}b0mV+3bC>LpTG=Qup`Tgjr5b`<pocO#tBa%5&x-ldu# zRFTHP*VNQZibAk&sHjOa?o4di8!pYtNam2RQU?PyCzc(sqmHD~;T6vr^vzA(>?dKN z3rIFF&S|a+^#nMf2EuW{>(YrFUAE($!}z^vtzE(|OR>9=qg~CH2P7Jeh#a#3J?YO7 z^FYTZxu#q~pyiH!wLI~?$0<LN6Eiz8Zbmq!=V=6x8yOj?+mzs7V-*yD;BXjw)>3Nv z66E$OGnQ<S2|el-Y`1e$w5nvz&^usLB@D8z6a`_NihRv4G4gWgMCTF%)Q*)X%X5yj z)5!j`EUK(daY`3jG9>OeHZ!-MdQi+h@C1D+BWR^0sAW0mY3czdoMW-Bl<uxfZYIKG z$T+4vn_rT7smd2Q5AydF46!Q`H*%+?Lz8aF8rtI)A+#_hTPG(ysmSFVt8%83APg@` zc5uM${OX*nf$FR^lqA4>+f7L1zEJfQ9E^8-z~{N4eqWe(tSxqA)40V`B!L(d9mt@v zlk5&D;@~qf;kX&iM&J|1MQa;Ja2mUqwpEB7>8<zFbj>)q2zJPDeJPg+5fy{vw_`$0 zvqZ14EQlc)U!9LmY6;tON1SAJ^vz0&WFrF<j6fLRjMHxBPvQf}!Qz_a15fh=ncyBf z)FnsvvV8?M`ZAR6NZ@%}vy678#mOz43RiLzsZFW}Us{eg-^MtlxiP)VF}Mx8Jv!8d zwvqr04?C*AmQGH3)uhXSgN5me)!8eXEyoEANy^~20GecO2_SmZWH2R577BP7q*n@G zAc8tpO44^CNxh3m`H*CBM58UVa642Hu__y;YEt`{A5U6KMprI?gBb^*>rM)xift+N zrn&Pm^6Vr~9p8>g9SNzPi$a%?E{YHK%wQfcYpTdQw*n7iT+W{6EndtOA2PN`^{%I8 z_sQrzYt*A3cE_7h`_EE0CA#F&XPgnuJ)K>)f(NBUK4H9bjybIi8D`iMA|B-QtE$Av zazGx{M#+(6V<M8o931qkPyp+=H$IhV36i)Ywnwc`610Q+tJs=>d-{6Rxi1#dFrZ-8 zk6SW)iFW0Q4V4@aYEPARHVs#e#tsJ+X9dPd?b5UBWG3D9D%`1JG3%PCCelG5h8;0i z?o_DUF^_tn`55QgwC1|hgtfX9g*eM#A6j~BEK?Z=ieU=hDd*`@BBWWtJohzjL%o?G zDuZC*M-*YUoG(gd4%~1-=O&~M{#fHIcr~51x)YZ(vL1w(fgB!k4SeBo3nl&fIS2Rh zVE#4qglqSCARe{zefbAk)q<WD=0G!9Px|~%V*=K(=z5odSzE&PBWc}}{OiX2QzqYw z^N?8W;E!`&!SMQGz8bX462XWW9`)niE{&Jt9oqw)#ZEozqA9qZT-=n`G0|!k`z@7^ zEuMX=E*0A$Ju_SSt+^J#i36T%4VVcw=cjt~Dc;sLjGINPL=628UbWF_$g2w+?HSKC zi4V#YE^B8`d?^H$ZuL&r@+R8bp)Jm3E9uss58fcQeJQsmEs@1X45NN=&3xV~<C5xo zcvhQHMbbRWc~>96Ypb_){>QW3!ucaL%dy=VAY&rBdv0`CcmxQ#8k`iQ;K|J&zZo7! zqBuS&kwD|jeWds1yI??5$0v>}iPBIH6y-R?&&79=Lxcr*_phT#%X7o0Q6#Qbg(X=} znA;Ezq*9$pAiLPdDn@ryhDJHbEIlip)mRI+9V@Caa&~08j^|36#3<i=7$16(b!f<9 z0+u`vO5;)@&HZY^hEO){&pZzGtf-`}OO~eP-k}3Rz<knvm58Z`w-JC(G)9j)NJMPD zSKg~aFD}Re2?mpe)zc1Zl|o0I<pTr8O+U)r$m6gTRoJN5GDTcTVtCUpw4V8{d9F}b zVmlOEWAUc$1$Pj5^r&XKQ@d*x$9imcYa(Eb9QCN&Pex_<rY)jAF_yq1(y}5Cl^8pH zYfD|aGdii~2dz<3NC8);Q(51wii^}FPcR%FM_Nf>5&&{@Pawy@A9{%L8=T^@d)(DB zSh-vt!hy>ij8uwO)1O*wqYZ&oap_?&$0T(1s3d`iVo&E+?IJA^+;h!7=E_G>5PZaE z6!}|MMlMXmDoz(YdQ$Brf`QLW)Uw87WfCb?><vGve_G1+FqXO<K7_(60~=uN<MFMC zWFBIS0K{N%Sb8?cwZi1KbDG-@6_bp%I*O~iT)hZ&q$>dfuUh3?$nvRDah_|S@f#5e zw)Rpu$F6IeS=ex(5${;*Ekw0;F70U_AmDn`@W9GLZ{6D!1TQ8z1e|e-o*AUvF&kua z^HkZkY~|3u1VLp4lgAu&tI^u3w&A(S<L2#D<5?Yn#@|}D-e%n8kNdTzl4w^P*5QvF zV~VcPeVSeSi*DeGlgW|6C`ivxO-B?(w(iJ1>rP}2?7IL$0NsycPl`CxXe_I_y3}80 z`MEe9jY}nnn_wS%c4+i7dZSNtPy)|_am7TQQ@XJEcXp+Q&&`l49m)r<dPK01a?Q5` z-jaH39LoHqmzp5_08gz)_LvDHa4dbPBZ4(doUvoZI%1vVM(u^b6*@9x_9R=BjYi{= zdH^ZH?lPo|gVUM}Dbx|b;L|*%B$D8hR*^A^dXufd*_;e|nw8~1nJdrMp+JEM+@xn1 zqDDqIZawIW<|&hloywpO&Yvy8M_r)sd8n<-5uMEZbO4HbNQ%-N<aHD+^(Aj|NUvGJ z9#BD^rlf0z-aFuNRmAb*ByfAuwajSccLG4oDK!?gHoB5W12dVwXzvI!9G@uSzKQsg zC{GPuZBpgP7#~{s^Gb~_{{U$J01CT?e=a9wQNTE_d-$a|hr)$WD#<LtNj#CwZHh_8 z9INcF)aSt`8q@y(8~qO}`NqTmudZqGN)fiMS&n$cK_sRz*OT6wWOrb4LB=vG#Czy{ zhc(dyw7z~JY#(ZZduyd7npa|a^Go)*t!@q>^EQlU-lhK3nnuY$qa86`oi}uu^O&7# z$=HGzB#{d9_|qiQU0ksQ4%H*yTu3sQU-%6)+*}0t+awI~D*2uCIeB}Gmex#zo#~&} zxgAczIDRL1Oqj4<^;l=8PPNqe)43-nY5gmg@}!gEzk=<HyxF?k#gE<K*6>&6YqR{B zH6OUWSLVOrkEi^8{#S=JDFDi{9OtEYbZiVr`$IWVf_*F6ej_PQ2Wtvk?O1nyqP$HV zOiQqi00O*xQ*Te}q4ZgO{hR)~jF)jdU@7iv7sUE}I;4>am>@t1_u{usc-#g%ist-N zV)qk8<z%K#FnU&Wz1eDwv5%UJzF(P{CYNjig$O`6$-t!k$hKu&vqThswkn~}Zl5@1 zY;+82ygn0Xq{vT|j#w7&Uc7B>Pn_m!L~2W?>FT2{famWQsUF`;`#w^5S%~B-b5$3^ zF}eg~100N;)NpuFU~R{q_*zd_bSo)pO&k{HMLUC?>y6zy*U~lvb)-yqV;CQ$eCr06 z5S{|c&UY$=&mC*%i+!TjFbNE*KMpINw?nF$w4J<)vYhHL9mgR}S-NscY*WvAs8|hN zIGBLOJ;44oYVJ}Qkxy<7VDv`b_4PO}5}-QVr#Q+3k4mIB1{`DFuj+8J>lX~ec`5)c zQ7-3V88D;0b2QwU-3RW1A2r9XV_u)&OBR#EuOU8MD%m;iYs_7?V`w3Tdbfj84L?V) zk*1dGG8s%IeovvTR+=-;#NFs_+Rvx9gEYw_t<jrgW4Qyb6qz1Ugx>EjLRX5mZ^gt( zEOv3)vW5Tz<DRCHCMdC>I0K^}S{2$kQcH5Inmnl)-FFC>BDg@=I6Xx~sy4W2^A<<V zj;4!?eYZ0<))N7Oanw`gidfMKh6szCH$rN;ZMmD3{zOtS&i+)6fQ(cu%I*%|m~crI zp>+wpMU)IN6;Yy+PE2GB(RE?QH+LY)y8Nw??NCg|8+VeU_(-e9&P}MhHl4?saJ2cQ z5@7V&N9$92YE+ZDv6S28mwx3DupA!MFZ!%+`MTham11irX8qXU(7JrU;B6p!)ID|B zb}PEM+l0VUa8G)6F~M9vb{#WT9Z6+Z!6SkwF>hWRft-ZJX!X*<(nzk)BQPbmDDCe{ z<(113)Z|p}V&n{v2U>Dztsr2o!1@!#P1WoT+CD`${p*rTGiQo!qj?6IZRg$G#cdjl z{_(=(dsj8_3*sJ=@bb)wZqcvh7)Vs){#E8$FT>4m<2JG{HOXa%OJDVI?kWiSQ@U=< zq?D6w=xX?%<3_jQtyBIH-vZj)Z;^bq)XHW!x#hE1*8czx?R+(K+J?KRPp@k-NHS-A z<8c1y?ag`?r7oH9&rXBGz8X^|qj0+!P-OM)dsgp<JPcNGd91q6cvNhJFA4AUr!RIq zw*LTvTwS7)DEMQ+&3hDbYH_S~ir!+tzj=?nc5+FdEl_z7rwWQNF;^k79%xm{sOJ=t zTW**J<TpV{%H+1&yo&H)zyxQWNvH7b$IFiSt4B^Nou`sG2c;+2%x7zW-%5m>jM}@^ zl@$-n#ko9Gb1~eD&m8h9=(Yw^=}PwM%0bG5)vA&$#G^X2voFiMfssb+#-WJ>oK^IJ zNL{%hN8WDq!(xux$ttRPd(|a%=m?{gM){bwDY8EJ^X2ScTvnj71$P%#1D+|bY2|Gp zo78cdcIq{$h|9m_Qg)AOd@<}ms1$nUv~FQol1ZIqc=7?*nWr5aRB+2>qTk=P(;}t3 zMUK!iNvx7?)?10PgoxuAP<_Qlie1}1dkViEnR$7KO&3vxh#Qhf$RO39_(v}uV<^)v zm2rYLcc&ztjH{$`mv>r(H*vyjhmzcxLEs9rEM-EF%G<f?TK5_TpdBCVS7{IjcKFXV z1ln6d?$<EO4jX6=xD-YTTkH=_Oo>`Z)l7j*oxLeM{{S$6$``j4sC48K=VAWtPa>e2 z!CG#+PHJY7dJaum$ods=%I$BI^)%r76ZnTY29rNF3Hh^}Qlf%$oP*oY*E8<VLNAu- zh{do}9A~{Ojuu7v3FoMyQI;44ZaJjM$#0wH82VJnU5YnxU{Fe11S_v2cY0mLTMWBT zO~QhqhE7HYdPvkNVCQM|t^L(&?lk#z^AsaOz-08!eP{)lfX3o_&<12#7?ZSP9<?AL zzG#Lrde#ktZd$f9L}esrfzJkzpa@Enk-!F=M$!muA4)}(?_?@7*ygS+HL0DsfNwxD z0R(gPr35$eZERsjy&)`e7-hQTQW6-G+#CvV&=#)De4CqY0N$hK`qFbI)3mK4fYNTs z&N%{}%o&45Nh{S&D|R$*pw%U^n}{8#JN{4`KUz@vZo@qVF8!qMQGz<>rD-JAmL)xI zhN|Vpd!NYHhI~u4So~pi8yqsI1+(70%rF6hkCAy5;=dN+Gx)}5RolMYGXv{NOPVb$ zM;OJ;NZ@BG2~c+&;-fj>E)N|IIw;D940E1>tINZXp!;UL^|{+6ri79@mToXlYK6!S zFq{v1l(6110Bm!bcGHiO6z9H#r_^Tb42pqzD&>LhO;{KS&suKP!3R6LdQw`Ur_hQf z^Ca850YSr5&;lD68wXSCP=vrADZwOWk(`5oP7it%UqeLhI$$JklpGpnKye>aN+dgx zM?=(~T8W5ThR7kkdscC>dWpV+*p1-i;8bYEn1V?Jl5<k4Z$JRS&ss%_KwJ&H^sB#H zlI+mtWeL+csLQZF%QWyANy#6D41!Wf>MD~>*qaf_x;$mRW7JZH$UO7boK(6U$1R?| z)F2VIdXh2CQ;#U*0k)~g4WC*`V;c(N1Ft5UUAG@B<Bp_MW!caM<*IFcOXbqT7b;Jn zsRrVBZ^DHkv6beZoHp!a3elieim<2VizIXy#X?5)&v8<hT<+xm0JBj)&7a|;p+17j zQTFgMdhx|S44^LsdekwH;2{~QW&$@08RHz(U4@9+Ez&Ci(wqr*`FO`#R+OTTm*%7@ zT;OosPAR!)XuGmgkih2^5pOgT^8z^LrF<|?n35_vUoHUj$)y#2OwzWaOrBzx*@;}_ zQn$>b2L_uzE(#1Uy)Y7uk(^eNv{5#Fi9#_uxhv3`V;*_qnpTkcMMG@>^Y22I5+kru zpk#wt+nE)<<SYwImE@7ul0re-&$*{hD>c>>1yZ2oRBx6WK|fyf)OndYtx3t-7(ALm zxxj4G6`h$^otWm8!2Sgw6Zus&(IZE;gq~*QBLME=t2r4Uj2z;n##@if)LvsYNkPHK zG~8~C?B2t}ENB4l-kb9?VuoQL7#OCOIV5m;Qsqev-s74^BqFap%^Q_hjtwzbi3?_x zpLfhh2C}{O3twT4Hq({_k6McEWsyMIaq2}&_tcS(#-Nd%awK3;x_eZ7$6>FQ3yk8J z@4ZTajPcD1+lbm*3F%7iBz3^#=bEVBaxHgajHt-iBNXKuqvtptwPNE8qq}=l4I`X< zyH_3Pmb#+#da;ZMPh(M_9SF$vsdw&=08>XKE;{$EA$1){dOL)GkTx7t#ub({IOKIC z(zG~C^y95DK~@7L^XpdDx{2$sCKbsfW4AQ<6U{kM_qvfyVlY8oz5VJCT%iH5#P+F` z)~Ka-sNz;V#h74HZafq7P$LLKH_SiUr%2?SgT*G-LD+PTB*uQ|>rieg00WHEu+q03 zD4TMIQoZsB>qV|4`V7Hf?hXk&iafwT>-D5L>+4Mq^Yg;uvy<#agpyogjS+#8dXCwr zNLAPXGCk=Tg0|YW^xU@Wg>jL_e+rFB=s~HFfN)JXHy}4m^{pb+wJ~<Sg?1SnarC9~ z_Mp#GPmu0%r+_=tamWCc`qa6np-;$1%M53aT1fDZwwlFQl>mZx=A@1g#Dd(?O|6T% zO2qN7bSef$di&I%h};5sH55u>ILPGpsU?hU-TYp)a+ajWdm>4K_BcK2p*x!x=A-}s zcN35^O%Z}}&479lS;?ig=9_Lzh!>OAhRN!r5l@W>Vf<7`S(x*<no-np)J2TGSey>j z<&dGrUwVn$k&fNz#FC(3fNIigjkM@m(#M&uTChJT3@~e{e3HxjtCG>lPY^&!`F5J? zSRLGFHR#f5#NerG*ooi{oP4L&kd+J*qWaUm(azF7Z%QyvMb3CRt@N?ZuHBf_$&@DI zOB@4Q3PdFL9<@p`!c`kVTw^`OTtG_lKwncv#l5_V;bAZ1&MDg%I~6#|8O=nI@-lFH z8krnM;1Wn9uf1AiC9Z{q94j6Md(-f8<cto+n#YhBpI&Lii8k-)?NjJiDs3jnC;j64 zlT}y;Bmwe)$*VG;A;{#Dz%@;`e4~t0FuzgQRV$AEl<>$HZpfx4GI%_9H08_o=e1R| zCQkbgW>Wi9k~(D2%EWw)wY_Pop|UVXtxSu~-rn@qpCDb(D{{Fzjw|O)W;V6gwQ$3e zaO7gXjob6!5T_Z*ubzBK8b{*oTt?<W_Kn9qy{jojS<Qc2o}Lfl@4x7J7l4z^@Xe^? zF>H)ilX%WxzZWIier9C{HR`?tFCK#l4YUauit^7JL|5X&ebCdWA)B$Th}%?;I(o`C zJ56E$noIeIGH+gMmr|vO9P@%Jsnnzs_<gy{3}uI?u5A%i7w&nlLYA?))fH_^_Uo8~ zkOLl-r=~ye8G2-AHJ@#<kQ2eJ3q?h2gV0r|EpAMoLR~>{QF>>b)KNx5gYQn&U9k*< zrf_K^a9^!_<}G{8KBupQdL?s9aBy+xb6qB#9(01kEPT9U(z%GhWym~`YpBy1*2PdT zP*WK{O3MeVUCYeU_YWh`Vs-I+k&;i$><O;yN>ND8MmyIJqspn`yO|uYD)K1&>$C(C zcOE?}=xMuL`S_&btY+S82h8%~Y+(G%D=PATK3N+ZjzOiFe}5t2PV-2pq!52P^tqH! zt#x~oLn0~8+>CXttudiZ*B}O(9i}+gaNf0p8+mPm(3}dEIa$~gVu4Rl-mOcUavW~& zbI=X$muIEwaK^Dud3A{aWWhs@MRQQAEFeA`1D-2BE3*+HnBey{t7mqT#<>F>GAme9 zR@{p|V=qv$;a(&1o~u}M+Zd)JkUH~SoR-|<sv76DbP(zzJpisOMLAmi4Pw&R&yqce zq<5&T#D&PfBRo}-{$pUK(MHm{i0{(5BP(u!-RflO_RbVMiMK6)MO93y<JPU~u2wsJ z*#mjbDg?p7>M_={lY6qEuAmPJdg6`8zZBMPfDgun1RNemy-zB8mtsiV5!byvP{?vm z=TV?IAT9=bRNMe5Xq|zufXIW>J%w4+^+a@l#)Vy11dh3?$gUe8@ljt&Hh>2{wQa?# zBbrx4mpYI3i9v9yl<2^7QB4M9%41^=DxP-_tw{`ox~}7q(u;F47N<+2c}oz>6miBq zYh6n#XRdlyW|<I`KXirMb;W6r`_Tv?hg!wHoeSL*wSXBMvj-=!>}#Br3{CfQ-nxBE z2P?S%J=(FZ<5hA?0rjfbw6xHUJwbpZ!~+4vTo?O_{HL~Rm=Ww5JmWPjy~@VQtfiIx zt2^A5n$?>SJfX9*uVYqC!?6Jd+N%xxZz6>So6@cMo@!*S&!uS;+uWq|8rKemj?QsV z`H}_51QX5;O!E<+mx^!NODM{7O4r!YOHBvGB(nYf1}eg|kusGfv&Awg2bexwn%&X# zx0W~5ZY|mEVeOm)n$a1%UdD7HM^dLFJmmGINLUu+f;-gL6SR^sjy;He=<kYvd9D~J zJBaI9yQis=TIfm<)-i%}OC%c=a8Ew<7?M(|7=y<+rz6QDWSpq%X(wbkCjLaI9wCp) zoUkwilenIFrn|F@dQ(~D0Zs{A;+^icAw~2jjwVBrybiSY!#*?HtwSJ~J0CLu@wC%? zra3)+lqJ-+?`&NV0E6bwIH!n;p2s5<QYcAqS&69{DG11Ol7A|#^g?$?oWd1;X5jP& zo11)-(echICb3`v8;%Ji=A9L(@<}IYBWNA#HoCC*pL3h=;X(UHXvj%YmZg{RuWb0E zAx{n+xWJqokzOm{NSa^TQq|NM8Ekqn;c;Hi@m0d;tetmAKb>7?Xs;-*$kPtLc<ubp z^GBD>w2(*4*vO(C$0LlNT64ls0tn}|FtJ0PKdpGOZs|RbsFty4uRYh<rExI%RYAZV zY8TX@5rUBt8{3gfGp)gG@AD1~L|O$Zs@Xkj*P-uIS3Y+TtyQKZnu0{E1WZS7T8(vu zk(M@rlhm4bnQEtWlLaf-`qbj)#ngi8&cm&AH)p=*J>OEO)QY2RivXMq*FB-g*Pj}E z9IgN_F=AK!(_JjLc7ZnGx?r4eE1dA8&|ds=@OneJlXH^Cft(uBou$m*X?{$~w31Pe z_oM#+r6cH%iHw86TEKQWbrF&5SZ2IpNaBP<$}klI{cG8ND6;<m!WXJ^Q-Okd{o!6? z;BB*b+e)^PR%n@B+&IYTUS&vg&yjilN4<rq8Z^0?jAq{|D2iN3(3Che$#};1QcH_l zYdFohF6Ehr%s?Hh>CI1G)2uZCrX4xwBWk44!~&r;<$tu5;L@)=J1W`1A!6XXLu(L4 zRVo~^z4h1fF~wrzTAw10_WaKuNi}vE5|Qh;QbyX8vJ?}rkdxP?J^V`X4aUfpFNIv^ zihN!wkREJNPJZ=lwCZ_|Hr)_4j;_-U*V&J_0-oAlpv}0=Ay7LtTbIO)0;=1_bNowD z{{X^4cClb0bKevykE<#OwW3%#)^zhbN>|Mo!R{;QXtq3R@v~s?!K=VLF{s?jt?Axy z*gnt*AbQumTg)9v0lhM7DK#W*PfdnlMySqHEUGYmwJpO2C4eIx%|RQqx6^~c019>1 zN-sZmJXUF4Yq98P(Z=2@&!|rO*z-{#$}lB|ILWJHK5UrhENQaFK*lkiYny#h)RmQx z+c2#vlg<x%_U{S!chB&Kn{qc^UCLa;V{CtTanm*8cFBi4a0hc=L3l;AD_ti^w9{dM zFWh{yZo>s5oSxOZVC0eG;#2mCBS!Z^Z9dXh@-CL<B?fD0RAo=GrY4uE>81<2y)8si zjqvUu=hB^avR>TV!*XtIukG8(yJ+0HPER?_bQ<JV_PS-i_GI#03830i@beo3&f3wm zx*U_{i`P?}xsv|vE@i&AiYZtCRYxo7Rilu>u^J?mI*`?;ByqfGgL6+I4Dvf<eJLK= z#uxj1(NA${8-<-A>(8Z2*oN$t_A%r(sKHS_cO>CY0+}?5i?l96jzwtPM`soDrH!#m zX%1sEa==wvm<%m87lFYdvtItiY*yOxMvdj{482WLcn(Sqp1$>dE1$AY6EsF>*$8DP z7(J?n=8d{zl5lBRTSHdHs!EYCU%i@iQEXAToP*ANY1Yo$m(0mhderk6$z?!rdY@BD z*F-1G^fNA^&B18Kb4?iz#GLwjRiv_><ex1_LDc6J!}!zU_l7(Yc73fcH3EFUv#-sy z`V8aVjoK|Hw%qLQZeg<1rM<hEEiIx1wDOz*j%&rdaq-(&@d_q^;7d3zE~ZTX0BGme z{{XF6R(cPPK0RD9zsx#6IgS!mJbTxz=$;Mmr@@U8WYlhLtxFKEI}x~X(P_#G+W!Dw z()|33gsCXIu4nmwOY`zLe*%07mVH4rpBGL2rK~q5IeAp>KML)<Y2%2|Kj9wm`bRdg zFx&o#_h93xu4?1rCyG8P&wZu%LfJIm51{f}TDf1|NPpP&#dcl@@E(`ojWERkYmH7; z27AZlocHFmO)r-~sRbP+yWM|YrEdWII*-F}MXPEzFR1I60Er%MLVYW?RRxQYxSpn% zfr@ayA@!-bhkh_Y9SvbAHunqm8-u$z$6-zhxv{_}xuFxzA&A0`2+bqLs#QXf+c~04 zoh@Wo8(JZQxQ+>^SnWCLr<y=8aI4SOhhhiJc^m;#(^6a1YPd16!5B3lP^-H;v(Oqy zj`ig6(wH7xuuL+J0L4<5V%6T_EPM03kom|1ileLE!EYPyeXPoMpz3Q(hd>%d9WnUU zMx|z#5Uh{Eh!c`MYgDfE2dOWH&=m6@ejRvLuENI7CTP6OWb@CZbGj9+wAxIPznEqO zDxCbFS5@KF^Y5+E)HGp&xc>lVwzn#3#7V28ddY1q?O$RhIp2Yt*KOgC6dw-3cx_$M zORHl7v|}4VJ$|*tz?PQRGQkR!LRf%##c$~|i>m@zdT^wSS5G^Nx0#A+QM3NHU#X=Y zrwIyDNo0_H?cTL&-R)Z~J4#!Vfmk5CK7*bOY1_!|skuQtGHRZq)>@IvbM~l!SCDnc zVbZuSi8@2y>3(WnJG5te2T{o#tGm0LwZM%d*|)2XhO#xA5p`({8$&em6zATvsj7A< zd_1Ry+Fq^6%zrYD4i7^^s~NWTCnTC>zLjgFTwbld<zKWiwoY(C=ASf~n4QNY;AXt} zCbTxXdmi%$JEY#&UOLpH36h;XO=szP<-dsGS)eLa@(5GNBCdwU03_q6HOF;rPfO5n zVnHV-ns5M&43VC5NUyY#S0foBfWzly8&#ViR5aeG&F#4?Wf_KY!12vO`Cxd!=qbSm zeBzwtG4kY$_N#9D7bVJ)>L%^GK*v3EN{z9J-M|NdPV!@Q^Kcc1878BO5Lvc1cXc$h zl6<1&T?Lco<uj5wG@vr5C>4q7T7?B$D?umtnO2%hsYxphFCh<rppn{|nN!oZ&Gn~` z-V?a+I%B;^g8_*8b5*v+ZM)qJ!v@Nxao(4oGd=OmIEIQM&RcI>4@zT&IAqDsI5nP$ z+n`0a8@<Q5P~ARml#dx=axxD&rjE^mPg+kfd3{^2HLdmB8@1X)<iNMef-A{>F(Hq| zP{^Ypt%hsYIAl3(qaEwYJ~Js@b4`>uD=nEAKBJ{6-BW5m)~H;rQjNMl(VkZ^Y?5$E z{VKJ{K*{qH*b28GQ02Cg2<cU%K<)@YG2XoXTRSt+xXGjdji9rUidA-0AoV7ZgClUE zTR9AA><$R(Pc%!Qtga)r#Vow!VCI_JnSGBLsQ2{b@z~U?rIkp2)jZ8;XyTF>&cLrE zg&7pWGZ8EZW6ekuhuj-E;EIZ7EuKkG4N^_|6MGCoV#~1w0LjfhWgGhE12q^c#AlJz z(%dTr%5lvpXbCqfGG0+f9cnUJN6dd3QpQCJN#N#@HZzjy#ZTp0M%FW$vsV);PUX)$ zQ=Varas?#P9s6OxLE4z0Ofk^WYkWmtLF$ZDox~~aO)Y=`Y;#U$+(L!}1HB>Ii<ZGX zg*NZFA!b*Mbjc?b5)pxs^Hjq!rr-~+H4q`&Z&OCw6>eb(B!kgu=*K6xq*%yqPAG{^ zTP??>Whq=&*HNj=fDS=DX=aQK*cs=oE2xcz)7FqN80RCsYaO&7F#^WRCno^(6r}8s zD9+>5)Qr2yImyoy_8S<1^*O1OSev-lEhoxPC!wVq;{$)oflev80|G(rDURk(l#+PI zHAyGFgS*&}!}fAF_vbXm0ERs?z$Tu`U2s^FjtxfgmLUMh9Fs$R7J}CLkw_b6&_U-p zG$+p%*ElDpDbCs83}%q7I}@JtIX4?Ir_0nHBM=!pW0GihP@^NS2At|$NzP6?(g_Q= zEIIVWOm_1XuI|Wo{_&3Ew0EGdn8T<T>rPROcgf8;(2g_DT#9$UP~UM0Du-&E5!BKv zk~5qR;*vFJkIx}EImI=I^NHl{JX1?_E34U#cJn@6xLopSlM&HI1xPZjl5nSvX^a6L zqdiSNap};Fvb^@jO#zZZq~{o-Mj06EL`QP4JRJU&FI|P?F^YqbY2*S1?rD=p89+mC zZ|>3uFZY*iP3){ytgbsN$mvz&gUlkH-#0k?X|l7C`@RM{)`~aKhV&7YZP1M1_Z3`j z3|NAphX$p`nxx71sgujS04J5{S+=$km9!uvw+DlswHq-xQcGa<r#idGxZnZlQEu7@ zJ^R%z=C4uQGmbC->+ee;jmOM(`-({8<ek_a^e2|5=E<vXO-%3HA1sTomO<X19zh43 z^d_4OoI2ouIj6H17{=dvP3dQ;4_$!B0}ygYV@-4^CPza{g$;v}YItN_r;N9urtPt< z*2u3XF&6DmnOF>LE$A1mUUp0s;|GdGL@R|DKDn&pzJblu&kZn`Y$Y&x$f;#_^Fw1f z7^@MO*t2A3Jo7}GOXq?sYfAQH>9Q*~135YMr~t!2JinQX9CbLWk|J#{ocmKGjZmwe z0jwlaX)>r%7YD686vzN@JDPK<ZUtX)KGYNQW$ALubVJpRW(480oKt+#PR)gmGEGQA zwhv!=NgU^DoxO;~Qcdn9+(kg|^%T-h;sC+*sbIzqPbZJ1LAB81c56;m5b7#~M)~>A zLrTG9&ur9ku_w0_1D96x>qYGDOGM5Dh=AlW@(oI^%sS^46lZo%Jo?nBg8Aq@D_xeQ zMRgw{?gM|z@9R;>bAY+p1xX=bGI?5Se8US^w4c4y(T`OjLCMMF)QIIIA1_)@Ih}T3 za6a`(=CY8abB?tST{a_|qeEE(Ze;+RR8h9$*VyKs3&#0g2d}L~DhFcCk<U1%8EIi$ zwO|MK{h!T%+0Wr!bEx}6zH$#kTyByCn$^B}#&Bz~PzN1r(50$4D@yLfQo9%VSDf`C zrQ{AyJ*f)@ZO!zgE*}FP`L2bjD`Gh?WL>0+(qAkBIX$_o(njLg#ySsL(224EAmorp zs**C5+9nxp-$PD}7h}N4?NNpSusBkBnvrDMgpR!dq?5j(t1Y7g7Dygp7$o{q#)uG^ zM;)n=4luxzicy&`znxX=!LDLEhahiI2O}R!qF`rf83xgwwR-CzNdtB``iiKoRU57k zYO7rk)|W$aSB7uOo(5ywuY;NhSAZx7KBAFNmb+Kx9)^<D=!EtW<RIm9?ntR3edDfA zG{EGQP{Z6}tmF)I0P&h`Nvi_U*iE>aH&eJDTJX;w>C;$v>rpczD%_QH+3AY+Mgd93 zAlH$6TsZM9vjR5=4Jmvre_g**zYF|JFYBqZ;APpOCVuE<1Xq&y>@WN+g<yI46?0y# z@cK_P!@@#x8d59Dej}pW{8>Yd!{ltAYTZ6nWV$nsO3g1d_nqdlLTED}Uz;N!S1y3E zjl5S$smvwO=3&Vo8o;)2ppu1@c3!pDM@6B~<)L=kB6bz$J!<`-0pE8YTCZ+K11gms zm1@Zl+(_-u*1B(Hb0+Rdt2R8aK4oE%=~cEdAdZ!5S8|CEPnXk*uZa}_$Uj>7{9;m* z=z929c%{_Pizya!&~&b&Pi2!yjGPwQ4l9|7%PvkABc*h<F{#rcVZqys*ESX1HFKjf zPuzX)`W{WBh8`-^BV{2(j@z^EU1`Z95BQqpH1m%ZUV!-?V+O9N%wjeq;Nyz-Q?q_& z&qB@-OJf@Eo0rMX4<@1xQL;u?)YR8IUUnRuoYZPJBPnl`_O7_kpqkRcw93fX;EsgQ zyAm+NAXIO(kO0W3+`?i~>TtY(D*5}FE34d%<Psq}`3I#>Wh+G<2TG?e?+ff)3>N03 zf_<rwKN`M!s}1VS`%O`Z1-^At(y?{>p+2nMSpD7y;A*?vktfTLI@4Xe^6my7JkqIC znmnxpbRJcTZq6z}xPVV9`qDx(!O5$s<)Fz20=bkdwJE)HFg57RLKf-?zz5c-l0X2A zR>z5CMvmWaLQ7=UNp0PE^sJ=yChfKWhCL}5xRi$by+t?=ml(k{8<UVTnw#9(H?b&u zfsR4zO(gv(%0Nyy%_d15Gf}v;V!~P9f<QgZLv%@OXQ8Rn?vOa|Rb~Z=?MWESjrS?S zf%wy*8RX+N7FnbNoO;xN64(a<w078ouJGw88If449yqO*mObmcCCKYs{)*qbU>p&F z$UW<294G@k)>gja)sSk^m56l4d)6$L;%Q4aAoew}s7Q=~WL?1YBC}T2&mf!*lwVDT zuW_c*IWe9GYI???3=lEXG@{&tm*X@wvliMp9`&8|v8PQ*;kVdQOsP4~2DDL>CJ!9* zn$L>LK+BVb$7;N>4iJ(>Yj+(1B39di4;k-7v7}o-!6%&3OA5A1^Vc;B^C2ygI%b!| zJ&|P@BRRpXL#<5Oc(Q5R?1i`aYgFywjUsl=;(xtRDy~e7!wc8aso!EArT+l6EMVe2 z`R|^U8s8Y^$V0KZij4}DS6nb*>rWHHrv%}LtwWb7F4wT4?lvyIOp4u@jtw|WK)@Jp zdQotjxnM_8Ni2%**I_*5ikBy|4rQ?Ax^VbV21jv7_c9gf^gi^9BCbI>=c%CIK*wU_ zus)nqO8N^{$$rr!y;SGvP5VQFLhx$LSN8EP8B1rqR9l1vu%`z#v{sh5;`Os0lFa08 zY%N)qYlpWgy*h(cV!hcQ+Zb$m)rP+$kKN#&!lPz_duTF4F2z-mzHYqnLnNgYRhW=? zIj0-^AjZ($Hjz=A%Zy+uj&do<-D=5eTfgi69LxA;11IeyH?9D)Adqv{t$P>6mPoXy zeoz$L1j+QTANW<9kJ=9P$T>?9j(D$K_^yF8?Kc=>CBZBk*i=^9-bsJtqr;}=wd&vg zOnJ1jmi`|7YAo*RxT%|_bKaSiRs^2)<~4SGQ+%;(&7J`B6PzBW-lB_5G0Mk&bLrZR zLMh~(o+kr61y?rrZiJaO6V|;tQH`}eYY@|_**(UU5!_BbVaYzUMWsb1FcdH!c+?4F zA?2L6<3P7}V&X;^`F5JwtE(8Nc8TV-jWRs+3P(Atp8`aZe0uP#QGix3-!S)6R<1Ou zB#KX%kO2al@WRDo`1_znSox4dSz90Mp0%Yn9$7ZE<(K3|cX-8rdO!MA{{TbXJ}ZPi z5xgKA84*c8?^mDvI)X>>&ALVqf1^Ll--UV?#WZQW8*nq7^QM3Atk(zdv<LWsX}x!C zfyu8v?axEekNdyO?z~lLuW3Q2Yv>XXGO81EAFXho6?6-~7V2IXTWHc*WJ9<)#sM91 zUbo|0X>YW9gBoNi{qExx;eQ)+;&smr&lTm(q_J6$rWrQ%?_DyD(s$QWiO)y!I4x?* z&%+v<+utybWju^zRS0!GGv-8;9Gv47E&iKtsA>sudwM3FM$po~Q&F7~$=rFfLN@nC z0-T-neFponB-OOlCN~8No~pGX>iTRDZ5Gl>I`rn4bo&V0d6PtQ(C*Do_B}PpChbZn z;aAq8Ti(_k%ia&Yx70jSV6nu>$!(9?z0TR0%M688Ij<D(a$1iUS*#;*!6bvwSG3xo z@))-RJ!=|`wscXJn)e{ICG}gjVlXk!YFoBokF<l1#+hV^=1w!ldeU6B#bLM=2M5-r zzqs8^y%Ecn{p*3$F~O;ccE<CPMN|k(@_=wd5;NYeval<>74@!X&2!a`krGH!Xrze- zT!Htx6Po(Bz-{5%?+#l};!PaslO>YEE^W#A&MW1hLK}Q8_Gt(1$KGyu74>X7Y}V<d zSx;qjmhK@}j12O^yD7@bEuIc8Nlm25v^)EK6T;1DYoy557t)veTDIm!9WqZ$)l2JJ zZB|`9fI{L-JW`#f>G;=Mpj*!N@<Aq@<OybIlHOOx3DD!-nJtyhqvvXp+i7;P>F!Cg zx_y$#fx%x|y0YhYmfxwvPEx&^IIU+%aW&QKQAcNKB!oo<?Zraz`qpsMTK39O1h{5D zbRMKufV5eyW4X7G#MgVIxQ;+@t-J269!y$viV}4$%2;gdYaUri+V?cw*`pzCrJ6L4 z%H290pywGiS5S&;S(?^m*)H#!Y0hhKNgb4S{{U)>?GfGXbLF=x0jzoEOK~8C5=rXZ zn$3JyWl6$%nT5olDPl3yQv^k&+7~;!nvt#Mig`TPo;Kqfh5-lCtSYiwd8%V10thFZ z)mrw{X?H2Si4Z1Njs#Qp<zNOYlkqpjp9pwrTdQW(;M8xTLPfo!?|hEjQv6i#LGky3 z4TDZCk``Gdm1QZr2RJ9vymP}|279eiTTcyI*h98vj(hPQ^T6lkH8ys-H%bs`KfC@9 znFoyiHtYU1h+FBpWZD**v9Mc-Uu=!Ib^I%y(6v7S_(}_TbsMXlZ(LQ4%qtF6-#^6O zq}Q$3{?FO~gto1JeW~3sB<4&ik~#tDS0eZ^rCUfA#z%y8#Ic7N9V+6}cAxdq-*BYV zQ-9Z|+>AXdQuwR!3r{g<mRf&<G-==}9v2NL+}%j^#cSz5v+j#&dY8T<)$jaAeG{vN zxRWt%9ZuTI)jTWWKLyLDUg?Campi=aB9OFeu;gWXWLII~?}_$$l!6^y;Iz7IByuk( z=hN#%<I8J5>fhuO_ZKGGboqb4I_RN--W0dBiYsei`AFkjVwr&r$p<8!YQco6?f^0# zjJ%4DSj4ia-LUj6S+&rGq8^fzV!wO1_NOwwcO3pT3ZV>sU`XyNQz4Y7V~kcdw5|(M z!v6JmAOYCY$-Dx%7^rd2sHc`@1Q16ZYM$B<)r2v=&ZHj3qAtzJ0Q%;vL%HB8Pt2mD z4BHA2xIO8uR-hzupgThR$F(l-2`D)}^pUdi0OSm3)Y1h6^uecPYcpHwJ>+Qs40?8| zx6p^To)G1H!GrBqc7+Vg*ci=XUHF3DP-Bb-VtFO8R~Kcb$X7bA4%&U6!_mO%Bz8Gx z71d}q`zKdl#<^`5ShfDkiW1>v86*yCrqVSSElDyvV;R6&=z~q_%w(Hp;DgI9<l~;T z(CIK0wUBUl;{vd4^=&rb1N-gAu|ta5xA85k2+fHES;0`8*7u9n`w){()*W?ky>P=E zf-6eh1h&XI0G_^;lP`+&yWO}Gj1kr|S7Y%dn2h;R$+sO@4No#_Mma_F5#kQbwTok+ zs&~+nJ&|*?BN9HMqnpOMVhIZ@yVv+qBUw7PjICye&WhFLk`-nOayp96q?1-#mj>nU zTes$T_VDvwY{B0=jg#xR)p%Qa?r<5y92yIKo=M|nXxq#ua|{l7{<I=C@(BPB*0`qA zlYLm}#?VNUNY>jzoh~ipXh=Dc6!2@&bf1Wp)7z7EA&i5#oL7^fj&~Tq4aQA6S(XN6 zknPVN#=KZmlGPtc?3BIJ-!$!J*IQR>JDA<G@}X`>?^l^XBXGe}$OgW5({AU|bqKDk zrZGHBSRg+udW!b%3HX995?bZ}eB!&EU$O695UcGZ(^h8<NOCVDY(D7-=bu_~u}HRz zZYGi?FAxl+Ppv(+mq5Ie(z;tBF8YG7MIo0wcc(>!TmiR?(h{WlA9`ZC?eiNWowY43 z4J6V{A?VD*E5`15rb>QYp>n|TO-f3s&Iwc4Q$q&GWgwoM)h6y{)%OuuO9f+$bDB75 zPcN{J2fa9`Q=EGp)aR5mp>TR<j+HH^rHQ<g8tf482`7$vQ<MWC+~e1ZLclpwkWWnd z(5&%DNQqdJjG9(kY*f6v{-c6&NMcl+WK(5Dj1?Imo=rPzbzJ8;_NI~wl1@LKYMt&o zwv>c&3vKEM#!Y#r#&{ILrODKSQ+Iq<rW6~4=RNDs{xU)vNz-NH3nORiP3*}{r+3`( z$wt!2jMZrv`J4}z7^!Y@W?&ktmTY4<`qvbtZBI`}A2BYmAzh@7d(#T+YzE!$=~Jj| zZ~@~anu<uap&<R?#Y4N*k>oKzB%JY0ez{Sad{E^`10;IW3vA%$C#EW4C3`eqmB=Q9 z#_T{O^{F<6fnT{DC@jS}>+elMOkqRvyw=?9K2j8$S7H`j_{L8dH2fJCXc#``k-~*i zx!iap(l|Rq43Y;mFMAC>s7RGtAjkpsr?7VzLN@xEg(4xhZN_Rsan-u^p=r>DG1$gP zTpxN!&|#RI9=y~3QvGxEr?6AT+^s~Nv_W@bE*(I}{0f|71OeCF(%_MW;1f@EFpxI} z7^-q>siJz3F%g_DS&wRJrpC(-r}C)_ga%9!-t`BV?JF)i^OHk;OM2`~ha`+~p7h6b zAc6Ax(31I?{u+uX%jZ1>JsQ-_>8T`Res@2~w}am_(mq~0&=hYA+|!+iVxt^UuHv(? z3ogU*@<{9HP7L5=^T#v{?;vqX8!SNWRHc2!+CcBP<xbFe!KFVd40G>D-~)kDal;-v z4AW^QQ`l*f9Fh4_pPMa>xfC$L`A%~|aKNu|&MGdic1`rM8c1=RbB-yj*aM%Ml(@pG zg0zDe=kHdVtpwLmR2*cS4(6S=0gC1L%^(1en2a8k3zkjWNe4YDF18n#?ZG4~?Vf5m zlon#S8@h^EgUcg35Ir+X<{$*NNCzAa^l#)+eFn(*K%+lX){`J9C%;NrWciBmk6L1% zn32zFS47G;W5DxNZqCt7aG2_Tl;Qw99G^;S4blQe3Fs=G+X-Kwk`(~%10B6;3~w0Z zRQ~|PcP?m<0n?$Sdm{O*ps@wq02nytqj15_K*bS*8<s9g`VmVr?gO2<JxwL5C2m0N z$T%mjN^2=R9E^0S8G#v5fl!GIYy)KbniQSd9JNDAl_&VHDVHd5l>i!9<O~T`7#)Q& zP+382fO+PLK51EW5?|NMgt=w;h#u7ggOE;rDoK+hFj`+Yu*N8qtn6FSD-1>XPD!9B ze!LogGByVw`p^)e!w}i@?M`10nHN{GWJO9j<nz*|RBR3TP(>=B>x_|7-YYST{naZ% z)dEjz6__gJi6KW;G{cCdF0NR0soHNin8*Mh;-r&qKvf5fRjn0*_uPj*V|wJ~p6YiD za5@oDfsb7Dsn5(d^SJYxmm6w7$cO;4ZN|`g8flfh(5C~iBfU+vPz;>Dc&0bs%Vgs? z#cvj@Wpxpo_Yl0~3R$y(&lvAcTq!aGox`}OJjRi-N6IS+?{r?8Aj>lVql{9V$hbVx zsZdTb20GIa1t*@hRPC@iU({7RjB$?C88^st+|x+I1IZNdoB78S=IzioT8?QKI6;F= zX@lV7nqiD!k}x}BnsA*D6&KRXP2Xl%47*PlH3=J>h2oXDBc8n}gfVVN&$VM6$iG7L zD4=7x<0hP7T>RO_dsGmx=W*mz+xLCaPJ7pF`XElsk;yTzRKU$djoTRasevXjxb0v+ zI!Ol5G4obR+ZWA!2;x!+JBbH_QX-CVoc7HmQUXZEXqkx_Kt?;z)zy(M{YAkY&U4<I zFi@bA)ODqIA~122ijAUag5>n=Q*PxC(=fWMBpy!{*q`-_jPh}s<TSMrYj!}lP}%y| zV6IVca7pfKx|FQ7IOi^5T>{_}obpX36~=lBNlxYdw1bq})cV&<S<NS8Byl8@f<YKL z6{F@BWAfu8wPwM;&kDFX=uK$B8^@n9_cyg^_=2<Ck(6L4=A8)0EWr9MDl+8lBZKH_ zbs+6Q_m5v{tMmlk#PP^Z><%;3(}`WVQ@OFor4jt6o+yb5IXD|wb*LspS0PMeo}Eon z4U$fBD%AKn$2|9{tbS3Gj@T8VcUBhSmc}v0deW+aBNpnyqe*at6+c>3%!8ba98y<X zvMk=jhXsKE0gQ1@3KZ}^Izy4PaB<BbA&F2<<H<EEM{u`7W>(q>9Ah=)e-(!R01;Y{ zn@d7LCcSBn)#bVh@^6bI#jfetISm6G{xnMbu1osW9oR{wQ7=Eym%bma{{Rf(mu@F2 zIj=MLlDmE;z@+4mroBtR;6<RW;y^PNuPykVf8y#{u;3V#hv!`vQe53E{{S<JZMh`( zZ}dAYKog_PIvt?mu`QUQi~<fTa_pASZg&ruN7k?{3mBINIUQ@S56bjsN=>~@n^!wB zSAr@?7c#h9Z9Q{LhlEr)IUQ<9U_NdaKT}<HL_KYCO-+?7)yVs&tz%qj>l6{l27YW2 z?OI+UC;K@-I03MI>zS8#ko#A01EKF;1}S^&^|1Hd9gUo^+(fLSe>l#1S6iig+F}PI z2Z3B>f&?}ZH&&5%Fvm*l^iYP*CH@{rC#`w7H)+i`eGT&meo1uy0EYb!CDWN##hQTV z%`=Xk_0)e3&N6$N<}DX@j4zKk5-|L8T@>Wuk3t4(=vK11^VHp;6pV=`D>Dw+G{DT+ zG|AkSW<7e+#^kui<y$!|hTfVA%*;bzj&W10iy#VkrkMd`jfcyeoOPy_4>3G|I0BNN za?`%(Y~hhlIi-z(w@h_B8g1qr<m3P;A_PXHa)P$HYUz^In-WASNg&Vz5WhatQWx`= z4Z%~^nCuFjgMmb)eL9nEbS~N<EP2nZS(lJk992C%nPep7U}WaCuk9p;+S=rm^5;@P z_Y~96n_T8RRK7*545J_#p%LA)BLIrk@d~%tV|;D_x>X3*E5|1p=DDA|38csD4f772 zL8v5ADZt^XP0Yg_amN&d0gBDLXlS+?%jKvCocE{0ou}TEvas6R`cp{C@x>(7iV{44 z#P+JwFx}U$dbTm;6U|nZFvB%^9P=W=j2zLo<^*@3qMQ<XXNq!Uk=q`$os8YiheU}M z*yMoO&1wt+a!DPHWa$cAka!G16|W;Iw$xMj)ZWiQE486k>Oqy~BehbF@^+E%a)Y)i zYx4XR=bnSLR<^!hFrc<$oPzkMld+;r?YTOcoy%}nwrW&aLlStX;+V|ab`|xjZ9WSw zFbAz>yS7xMwn7;tbSIuYDtJ<CgS&&&8j3rYMI;~%yQ%3`7I`IH;|-e8$y;$<q4GlP z8G$3G6ow~7$oYY#4#>wRie!%?3<L7ggT8>>$26Pr6ylp8-3vxo1w4~fq*+Ac895y( z)5Sc94t5Ok4Q|pU?PBCIB7qveDk{WqtGBOwnuaS(5<tu2lT$+*IAO?PS@QV_y~#=- z9dlBuC<M1Ygwz7r!+gt(_a>)U2n84%R!TN{Y(itvV%TzMF)XeXTp&GaFS05g3Fon; z@;+gXzLnANnyWpDnJvWI1e_@6-jSXa3^UigMJ1*iBoN1gnwVNEMn8#<TB2`#Zd#5g z9v~F_-FH+UX}5|&<}eN_K^R0Fi2k(O%V=iuwiIUWb4uOC&Co${01W>CDIIb}He1mU zQlVToV@e~4N5}wrR7-6ckpW}0XRT#+`q<VMR&0mh_AdTA>Qe17v^sb@SD_iNQTVem zEryroDf2$i*gn{=Hux^_KgYijZw#9>=+qOyJlCRpT2S`-S{VX^aN9vVo+@!3?%kLE zl2#F3e>eXCr9BP~Spfl+0U6-bVMW787-3IOYFNobvAH6hk+@_W9xKg^mrc*3Yu&Mn zJ=4U@3}oY>6<TdVVT^z(<o8g)G@i#C)k$@T&&<#qeJj$Y{oPNSuGFUNELYbK#~hxc zBA|})@ue$(N7A0!qDU3OZ4@0-%YT&zI3SwUUe;{OV!ZEo21~dHfsTT$d?r`_0EUFN zibwgPuxT??E_L}t%M!++NF=j#tq+6ACD+I1xFDDQ&1DUbmx|JzpEsxZ8CA98uT}c9 z+CC~=GI&fV!*9A#?~K<O@T+`YHl2q!v^!6wb^ibq^A>??9Drf&2P4-Ru3zBv0$&zt zuG{`wJ-NpNB;v5snYO>Ho$_|Wt3JP{`~%Shm#0a(c;qrEiT5k?#duf8-85eKpFn{w zB~_13$Oza3<X5fh8a$d-pCs$4%&6dphj#}iyl3`+yqeqM1)O$gHt=bPaz;i^UTaBe zuWNt9qk&1bqi^d|&d-Kr+^H|m60u>EmN}_o@UWUTPa)JdIegYt_lqv=Vvt2L%PAiz z^fiHV;*E0VQzY7>g*XBz_yV)Kle1?`ljx3~_fOLFmL_?`T<zKpYMfg3n{RRDTb7Ye zS7Cu%vs@6xq$Xx0l3eGSYR2-oZKDMA6+GTSCDir*0EJgjTzJYkBO8mUIj?bPnec}= z_OGA53bMb9VL;4TB4ShyE9g+6qd5f#Cz_cw-ivcuO*s6@_UI#qLWJ_giSJQP_>MvW zB#qRz#K{!FN%={ny8Dlie(gk+m5tz&k<LYzoXOPWoK^Vb`(Vp`;lT!@fdp!#4aTKJ zSs1Y;Ph1MY>UZBmM#j!LH5*WoZ)BBQIpuI`?2QiRRQn7j#tWtLBaZIs_Ep}67oZuh zkhFa_&(y3XXKlvfJfd|VoLAbS&iXArOG`_upR?G)KG6zCl`23XTODh<F-{9pz{O3< zt5H`YzSXX^`7SQz)O5`%6?HHP+Y-t@iK~sdwYIy}CwuALrw_3ucKI>b*I_TjjXqiI zAwC$>wVgud;8>e^t;#jLYPm0i)Mk$sd_BLnX1b2z%Tcttk8(tjl=6T)C*e|}o3z!h z(23g7Yfk>BA91FgKJ}u!xkQO#^C3w%SI<mVJ@1EONoAJe`YSZT>=A;*gI%rM5o>ys zNv>&ALvL>ygh)EDQNYi=a~kD~++NLcVV6y{Ko&cB`8X$x)-$Cz-9#?jRi39iHIz~6 zO&lgkp$oAkZU<g#I_}Yov&3Xpj2s4x=k=}mwCNXqT<v7xf%$79dm(D(1l*v2K|S+H zE3J1LvLd*7=8Fz;6m1V7sw&U|Q+mlD>$8zpn6x4`54n__qYSC~(=Tr&)JZbi+F8aF z0pupqa4KA^xmvh$S=k;(@t0SV?9phD7DIKj%-Gl<7XVjf;cX7j!}=sp+bW{E?vRDS zE!@|hd{3S$Ux?PTyk=`@79FJh>;sSHYt-!%Hc*9(gd+n!luO)-OZxLEb6wxR=r%~v z6+>s$NbgWPx=FVsax+$)JiK|BJ9=ZVs@Db<kQ9(H>x##H0gs00g$j1;KYJrQS0S!^ zEU~?bC({-SE0md~*xZNBb}&MX7y}<L=QUtNHmpyykKtk3v{JF9)tp|(kJ$L9Rqz(0 zcOCo7JUBaIJgEn+(_Q|7<82ef=VUi#3$UTS%{bc4pGwuf)2($&XSckzNr6&;?c{w8 zaGoLfTqm{rMwNO6#4-6^MBFhR&FfleC#UuOex77ECfY}$EJi%;jfQwRAC)HMQdA7% z*R6Q`Hy$bQb30mUH?ku<c(=b@>Fxto<Ubl^x0El4d^d9ph1fmCkIsO4n#QFkx_2rq zU;6&EJs5$th%LJxg-C>yjOPWi4r`szJbmGR61;Kg{vfnBPn_D!`yFxEgIzhbl@u^l zkx1c@ffbi4YQmDS3Oc6qo^y;;GO^w}ijX=7B3#6C{6eChFbjOZ_s(lbgC#+h#xOD0 zwO5||?B$bgS*jgJQ-;b7>^I26YJhqg&9iA{Wt8NWJeKKAUADR!*+|y0ifh>kbNj6F zD{D*e=A9dtHc`vzyj6WBJf=v%&p57*)k7v1Do>}SbfmA!WVGDUu(N=~LfSzSHZid~ zR<)(9JMuA+!N97PtF=B;&rQa)Ebz;}8I+!JRms?k#U{~uFEN`9_YVMV6>TkWz$>GM z86(oG#2MsV@JBUwA-V-Xcn99K<myVEjmUIyF=N0abQl#Zkz6{i_Sy$M1}bZ1D!6Z% zk9ya%wTa_KZ1L;Tw2W1Zx$Nw7gvfFGqz{k07lTyp^shJ<WKW-hab13`_GgvS4YBkp z-G{AX%Bi;nv+vl^C`Xr@sY%-DGlJH9A7_07iIDx$co^hYnRt^(e+tZxH}7qv+q8lA zbL(F3a}u!m2`n?g=xdho7LgvMrrcUj5pg1d5BEs)t~!*W?<9?sox9l{9I-J0xZJ%l zOL7g;jm!Z9xT#j*5>3p%FM6-$tgW{>1o4Xbs5j91m+sw)B4}5I^9FFlR;H7yUFfam zK_OAc%ba(r5y;VzmSCO7txhLNfG6c6oEndLOPV?v$tis7br*jUwQGx%c%<?KV+K5A zHFw?;@oM;*$r?bZbqOfpeLj`qcX5_cw6HyQQ}oS7_dwL`bqi~eYqiImNXT{ide-o- zB`#)S>GG~+{cL>|5DEhW<_>Z@gG<wB1Ssl3to<Kbve)2g?5`t{#yrJ8DarH|sOWRJ zDac$L*JG18SG=zD2HPP39zmo~8Hvsa<C;cb_zRJq;*_8WORhZ*X{XSSQ1c054|*k& zY09fIifUx9-P%t=Y1_EV1Auypp1K6IcS43TMsb|4BRy$eLdtSZ>P^7DMt2cQBW+Ni zeCO7xTD!D6r=XFOxaE#9$fp6h#ySz+m=Nv&oQh8{7wB?2Vw;la$1e6HVpN_6F^b{- zFhl2fO(YosX9^S!a(mZqgKGvWyV|)gifCWKuOKIP+7~0xQoYu{)`o4}FPG+cE!-qt zJ_ZH`54}@zXXj_j$PHI6ZO7Ufyw>ZUO+?Uug;lxtt{FAVta@vy12Zaf)QoXR+lqj4 zJt^t)=XY*~qm)WtVNwrV)Jke4EyOaFUUT?UlsIJhKm_v5+L*%}9R4(X(zpkw`&27S z<|eezYqliDaslM})MWg`js;rT_IE5BIpY;d<g|Q)ob;+uOLAAepzVN>$;Vt%*x&$r z@lnM&a5AJ3!5;M^w)2)84ujIA$v;A*t+>^2gP}dCoJi!Km+MO@MH{f$&jy0SgPp|n z&05;%!p#PLWf<W1r#iL{8)@~Yj3@&f`qGntMnPgI+|n&yLO5B~o8}!jC%r4410HeS zm_WvR_opM4$ic^@Hnq7@Nv#Oc+2jk1gGlHaQcg!|bbCQznrkpt#zEafN=!D`dV#zs z18Jmn@|ddR1M5mxpOlU|=9<Nv5uSR3Mupusp%Rj^6OWtLr6+R#0Jlw9a7N*hY3$>H z(3-AoH3UR*u1{0ag5B}fq-P6`DO4HGRYI!uH8M@=g`;B>6N8)@Rzg6}W8R*MtCGaz zj1OvSoMSDYdcE|q4o$lut@6LiPjHd~{Rr<-#@m}D9DCEr=Wne<v_U1U$QANAIqgz~ z$RzLx;+Wt9PB0HaPL?qc1MdoV((7{cxYLlMYUGYiX$y`)T$Vj);zk9C#?~8Yj4}o} z$mXA!Jw|jUp1bkDz&$CehB!3#3>2?8#}w9~6qe*ND)L*XrmE~re|YAAHz-_ZwG1}P zupHnF)Y|%kxbomgM{&uhq;kwSJRS`_#w6|u^`^R&eoiR2$ZE@8qNJM`ZW$i*#*`Mu z)*0?8Nx?ZgxWLUQWe|*?nD(LVp)#`?TNo#wr8V3*;O8BUG!<sRKQ$zqFmsh-#}v{? zCD>-|?g8LX#aL}Wogzee3)`M)82Nw<V;oZ1gVE?ixj|qTIpZ|hCzI|j7<<%?6$tN+ zwG;H*yb89QwJE#mF`0+d)pt|BADvAhY!6dSRV+YkDI=PjCPcK*iyt<65IChq!tEI( z^`?-^C|qz(D3j!F0VH*#+LnQ(wIp!z5w=aIKX#_`$+z0)dk!;I<c+q61coM`7y)?d zPdTfLRx0V-h;Dq9;~upljD}*|j)I=W0l_#p&q|9Sn>fWkk8qZvFgeb8_NihSWh~u0 zdeZIl69_VM%|ys|44y|6wM$Vuy$4A9%E+8ILX^*#79{dV1KyS}Hy_fZW&sa(><t&v z#C#$n_1<%Vnu!q1gvX7<^lwT~#D>Y)yS)d4*V~G6kGrOXEyhF}4aY0_RB4uTyQ%F{ zslg$5`qMCSPH<{tXQ{GD40bpm55|b)AY&Og;M12fxKY6FYD2Mef!3UzmV~ypBPSe_ zKvk1Dz$d0@Sph57npd3Q)jf4c61~K1DH*}-QHLIGFhK0ap1>>T1k+1yVYic>^@>+_ zWH^%{1)p&3Q$*NPv=NiunjL1{#vJt&@TZ`yTfXHd(2%*xjiiqB*#T|XbNJKA`7#a& z>zZT8NWkQuTF-T$?R`*?7FNp)DXCeNzyLN$=qWyP7!82Ou%|~KUAfP4X*R~?)N$L$ z?@@<4!+q7~8K#Lya-?^_CW&M`4yZb2wbN@5?!~i+%c{WP)e4=<p8mDk!~5oA#t7?N zMS$I_+Y&ieJXdZPfL8!8>0R`d)~xfYT`>vEZN_O7Wr-YM&@kK#?#?NMHul^yI{{q} zQWC!7bBQzD8qtkRil?CNYJ&d&tS1BLYU-btuhfo}H#1rjF$}{42RW$`i+t=k>zarF z=dLPbIROVxdbQlsPKA|;iOY07254mg`;NdG0m_isY*XEU!0U>rr($IFxmxAELzM?7 z0~K8!OcW}+dIEaYo1mpmc=xJozF7x6A6ji9ZX)Ei(0I>Ue$#`3IPL300&}!uj#`|c zHZV(j)LzUi;>T{~vUxNG#t9W3(C?0V{<QE2%H;djmK)U%lMaMq9;Upb;>2I^H`ALx zFOtjn*Q*dpmF-?t@pxla(?IF9s$~7wAM12)hfCVUzw2`6fJ~C;az@`US#UF6Yw<wi z;&r1R?kE-M-wvNT9IWmC04+$xd6&iI3Gq8m=V&o0&%SF|b8@u%Kg`Cxl+#P9{F&El z1f2rxAo={RE1T0pn;1)tt&ARPq12d3pxmlH=>&Pe6_uc(%cVuQa#)^v*HsqNf7e5z z4RYOoTbnjese~2l(<Z0R*)jnfQxt`aC|pv;nIX9~)}6FwZuhxgUXVVWw;bm+hxQpv zK#UBG^IN*1658woq3=~wK2rnz+zR>ZVrr|7$FGNe?U|!s>*XSogSWRz?6g!?vbQ7e zV1ZnQknFK2muWpXuCqovEh8Du0l}^;AH^hTnctQc*&a!0Ht!hfE1p(oKdp2gVwHWv zC#EZ&w@)j_8lvpvyEgIlt;?IVx7)jd-OYUic5S2Q=`^XuzQ#<)bn*^^G^lfy9jP8u zbmf5gjVxz**@N#^mE~h^A;s`yByKLa`cp?84LQ+}i~@7(O*^*{xACh=&c=6b=sl!& zjE3Y2V$N1HRRbNx6ERrM+??=g6hf*2$<0!eOdHsl<levmfJHe-1YmR4kN^~I<mQC~ zJoN8Q$!aHk%hrx$$t#WAS95El{{U@#JH2?r$v&2R)d6$zo}##mSH!BoWDeErp9bs} z{q-njVzJ8^R$j*<x?vt`q;vDWW5adX1eWl!u`#*G<Jz*o1dI|ZW5rgDq~BfHNC+0! z42z#k@mSl4<c<w-%FASHA9>t#ics|;nhtuL(<QnqfK>T?%|9apjB&+gleNx^TvR0S zPj*FKa!;V9s&4Lir#xmi=aK7Kt?Vgw5(!w_xC`?Nf=4?ujw=1O-z~5)p0z=~M%#i% zsiEp&Cw&Nm1II&B#@HN;ws_4$Fa^O=&!tHgR07<4nyWO4c4*nskDM5=!5uMMF-f(s zdiFJ!rNjh4f(Gt!p0%g93zOE4Ta&isdzn0`Ip;YwUMG!L4EuK+{VH3v$y1IGb5SI5 zu*(dJ&QVWbxiU)#Cl8W&CZ;zKJ1UZLMsjMp!5SU;!0ZiJjx>~lKqsK3(#V;6+m;cd z&evRun&$d7jZV#jfOw{)Q7<gvjx$Y=$0}_jp&e<(b8c#oG>ZL3S2PKJPn2YO(>&x% zXE-M&lt_+LA^CdqRc4-q%FWmwQ2A}YH=wCnN5?=^^vy7`#!1ItK~EDYJOW2*rr&YP zYYMlI8epje@J$fhNhF!Z+61V6@@A4Z$4(A<Q_&(4EQ5C2w!~deMm*x8dFR|W5)XO} z^vZrfK=z^T*!|?s){@l?t8^u1XWN2vN_VC*<Q(TU63*DjOi~$Uk%3?aI#kN&5+!Ao zpXPRB*EEtBz+g%cdsBDJ=jL#Jl#(==z{w-EILl2;wD}XV$v7LBu%(92%~mP$;Po{O za!Skr$ReaynLz;HR;i$R?n<`OL^931XRS>fCRr6pz+;Tncop|xlY`eaF}IdW%Vdd; z8bOi|YKbduR2M>jf#}ci+r?_YN+Yw40VAb%-xdH^^w6jo(stzb$ge*Ao{^*Y+2i8w za*@WPd9OqGtnMy!#8L=iS*me%Q?u!B{UsHbPn{|Ea{mC*+2^boWFYmaOl-h#Mtwz2 z@eo!<JQKxTjh0><9e^AkO7a>_-1>(lp~c+61oFzSGDg9&z?z0Xv&3@lteC*fE&i1m znsXzE4%r^H3)rEIC~uT>&3h4xanT<+QG4zAvRJ;y<deJa6NPGpuWY21SIZ^34k=$x zi#aWxIOd#|(EOoskTaT5+>WTvlT*`%rndVsNAWP=pGw>K9-{N({-rXbM*?Z1<OhMt zu5t@IXT8fy8Ih&=a(Y)?@CF%fJ~a4^qZwFik~Sdr$*XC5+UsxC7*9nXH~KTvelE<% zL9hd-+H;fJ6^rml6XNYz71)WRRA4$**Tu&l**aJZb~V$ZasJ8vwSn+z^yyl*xu|Vz zw!$(?50sk9F-}jLYksFxnvNbV_x%p%$F|nm9h^qs6^qW_BQeMd4SbjJ&*GJ@jQn|b z{e^ZU(XFl45bB$ExIB#a#d<gGAMxu^)FP9^_G@OhGqZV(8Oub6rfcS8g=36HIu55D zPkK_FqSEXBf7i&$Hs0F*0K@(uC3TYk@Oqk%9j}hLsMn_))QD@Jo1wA-OUaTtRoLY? z0A`|!M38_;Q&tgtrq68D^J`;e8?8@H_#qzO6kS|{^2ZL-_}9HjCiq=R;Pf@(zXOU( ztY0?VMj{)%GhW#uA-4y3C$f)9*G-J$7qcr{?utAGCwEdRJHzrZX2wP_>rzL)Gxv@& zP+l;W7CAfdgdX%uRCU7FAcEWg2Sw|ea>4|e3eBFFt5)%}aiYoczB0m|k|3N$s6iv| zS3jZD+OezPn@IJq8TfL>Q1BUb2%`<qkXpY(FMK`XKMv_S)EX_?K_W+#CJpT~XM#Tt zE8#ze8hxg#@l(RKQwy1%=I3fHs*=h;&VLI14Y|7>AGNyGQ7$eX$oUfeu3e<Yqn1(J z*L-#5iSx69sa9?$3vc3GM^8;BS=KxyY6HWzZA##P>i)yFYmtiTEA%kw-`X?SOEi+k zv3%G$>7Pv3W;LCES@4;?nms&tel}?YI+~W6L=BJyC6=9OsQ8}2d^==UM7oYiZcK9d zNds-_KN_jue!tiC=qS@ujFMYx{{ReeEqQl+GU@kFUEA8kyJV0iW)0L=A8)44_g+=o z+(`jeDsE0$z&sOOeTBxL&3|koy|dM!xRMC&qnJq>sOU*OYZ~Um#4+5fu91ClcQTRY zs%`;$x3{fwE@(M(Gfr#4a;r3Q-XM?cu!~t0VRM0mY@T{nUF>t)T&m<VqF@qoD|27a zEuqzJ*7s3CcM<2Gy~agyhG^$>3oo2poHCzI)k&qJ+*WQp%!HOpZ!&1)-z<c0$IJLt zH{qiv<^T{&bmp&IH=X4p7xLp`RddEoRhb>+5e^r*>IFk@qaE(GI3J6C1e?S@A6uI@ z5o#7ulN&GIBRS%-z7+gPk6+W`(RCZWnys!PG2DEv<a>9oPr8@NCNcAza7gW5bK`G> zdKZkYE$-4;^o?F88*Z)JZ+zs^=59XDeK!99BKMX50I%ujb~g=>!I6R7S2(B{QZ`NL zoc{oKt$B{0ru<&;WXox%UFqH>(Y(eZ?SuE&C%Ny%N}mvZC#B29{{Ra5%Y1KvaMS#( zx%8|#b$x7Hsmd396}tET0E4;eDpwyUARfe3kqnL#%7RvlyM^EkSC=lg@t;&#-E>_8 zNQjanW_{#mp(3bW{4w~a;yC0wzr>}nic~0VwAl89`WjA2?190zX*7>yn$+7kGD{u0 z;~}PSqZs$Bo850iwUIv4t?AGgJU`kLjQ(}yw?DHsiK?BN--xx{R0SC(?S^nMS7H5_ z`~bGr_V1%lJTc+Sl3X_YkH)r&Z{x5y#y<?T^!~dY-QS9I3y3_n@eZ3h<b0lJJk&Qn zAJBDu;yp^r86{oWhTvqMrE&BA%{~G0g282TYzuBICpFJ&f3pUIb2`3}t!h>>M8xOK zIH;6TwY3~w<og|tyYOPx_{l65R#y_ZKfO>9@_*VL>jv-P&cET%B+@T6TTO&GiJZ!x zPo;Cxd=K%ai71;(@m$wd;1)4SIR|}Lp8o*j7l&aH*)v>}Qcs$9=B?9=+q1vmYNqbe zvtQQ8>yyWS5%f9OU&W_ucA@@AB~L0qzUHT&<E_n{a1BqvcYnNcjMfe21s=7+kBxs6 zZKDaPcvcJO##!C%`6KI9;Qge_yl~ujC9GyR+)xqt)TO&}xHzXTdY{dA=yn%h8vHSP zb^G|W8weseCTn6bn(B0aihcv0Zz?|$+C+B+Smte{{&nO{@xM;Jk=E<O(wuNukigb< zqvKBnYR$UiK~3X;#vz`4#W>zgkKMn#?fCj1Rp|Q0lX<XOYj#ulzjQ3iT|KqE%Bf&h zRaM+tGoCBqA$8#8!rSTBR)cm-u}VfN&X?o;W5cpM`X7m}VhjW+Z7UfR^WL_CYECaj z{eQtZE$un1{{Fp>y=|_7u*X6(gIe}?C0L)kk=ne=;ctrd9~bya$57OwM7t}pLW_*! zy?2(<3}g~<$2Fp6aa_kw1mrMvJajp&2&4lAxgB^ND+bAgi;~4a^sOmw7jITw!vLDn zQs{)!HErc%kdC{TC+0nBPwhbaK$NR@O2LqagfoNNZVox8G|wB7+gFYnwTtH5oh)s& z!pNj#XSu5He5ipy5)6<}rDwq-d1MY$@>u%NrBD{&^`_+Ftj6q`Cb_s!a1Kc3u=P8q zVB;qYGQP&G+{&)_&Iugj(y=dEV7Wvm91lvuQ?`iNB-^p#3`=~aOD}S1keH*8?a0SW z)Y7Dmqst;S2b}k#W)(Lm<mBeQMcOXXKC<yvxfh)vwsvL=*}|X|ASCQ&UTFv-P0NK+ zahi?ERsorb9mPIqrLmlEt<4x@+;NQLbfEciDOMR%)EcCMNRCM(KdnftTzuas9<(iQ zbT=MnWz?R`wUyi4+el-RuMO6{U%?*`ZM7-Z$5Lr6uNVbM8<l$UNQ$rwI(nL9lU!Te z#PJXwKbcvFN_5<*?Xi_esrsKxO&5_MW-HI#=dDJ}0m&PNa&ywWpTJ)eFIIT0b!CcJ zOED9-QR!Z(4Z)t;JD7sJ56B?rHQyP=r^5C)B^I=0gU;8$!RhHtJTFZ1k_8|x`N_hu z?mAOcN{{oD+nUps%X2$9T#;XPL0!1%OY<B`SLG+U=9w|e0y-LdoNYZ<9<>*Dur;oN zG@;IM<$`zyn7}qLFmu+OEQj}F7*obb%`g&Q895wsI@I|O({fp|yEb5x*Cx5YA6fmQ z!ndl!?x}vg>!RBu9lM7<y=x=I%0J;2)QS0y)13NN(T>`R%GW+|azWVZ^JBj?T(JyG zb?J(?atD@XCmiuqSZ_V~?_PB5ndxny=_On*%0WG92_)J<1&(`~V|>zl`M~rwEQ5Mr zamQ0r$eyL8WnrKh26LUGy%A-dOLZoh^KMYTjZ747$;lNwtv`2QZrhBNw!b448^$Et z++!6b!ta!P%TY?6T(RKiy=!*SE69x7`D8dHhH`V*)7D>+vNCf@TL89C(xFu{I_Hhu zE1pU7c@=dfsHzW~Tb;Pv0rja7z$Hi=`if)jOaKTTv@>TMVAoWA;~g11johA<4)EUo z^#t-U=LL^WDfZi)dT=__y(M8uB#E$t?+p7>F@u!^FG?A=5SYe$(uUo~RjJ*V8`%(% z-x#I&NdWbyHs;7Zy(%(~l2uC%Gfg>O#XYQvVq#s(FHZinsWP*Sj1!uPi)7=a2Mz}Z zHEk<diAKnfCg}`(4l)?hs9Y%SI+IZ<lEZ6qeQDA}(fq`5>MJQbJrFCgW{fc7=Fe&r zV}&FW+JxO8Bpm0ZH02K?o|U4L*@M?|QoI6sW3@MOx&yR;I5fm0an1z*?Qo~=p7o-7 z56;5*h|WjdQQDU%U*#tQxu#DD+(_UaX#iz8z$@!XSu2v(x(|Kwugbg*^$>l|H|1B> zpBu9Y3gjkvq#0Gt+~?MzOI}+Bt8uI{8(_#CDI!)z!yJzEts^l6C>(xtZY9rS)~VlO zntfP~s*(dsE3~I*Y<CpqJMn?@0h&ScDe0V4DOi;5@7QFRL7ebv79T$cB>GdFppyZ< zTz%hqf0w<7MIN<%EM4Osq(U;oXm;zKX?XyKImdce$ZwbPsL$^d@^=H?rv1s>Mj?pE z=|%$rGnzt-dYm6xFcnA5^BSkC*W^pnQHc=TK3+lYY0RukGY|<l#V|r-a#-MYG>o~F zZYHX6ZEg~8<UPK3I2iY+rcW#a4+f=qf*f(0uQkrlK^Z2K_mV<-=t9$HJBE42X&vy} zcAbZ~qz{k@85G7XoMiJ^-o}lKB7|OBC+SfQyyGX_(CS$`k8?<?##qv7`x5nI83|## zB!f+Eaz#6L&&i>`cn-jLJ?lF?%J*J^nH0zKWD(w<5c4+nQ{I}<gkjF$S2Xw-lgPr3 zmAqD$Gmf5!Oy!t$?V3glyF0nXNhTz0F93Bl89Q8LWK}n9N^hzh8({f3$)+&g%*DQA z%{k5(fN})@p#ZaB;{a6My;z&=sM$KGBN*o*k$}lzoMhuQD`kmZ3Fs;rRI3b}_323~ zYME&!?l{P$IpILbCZf*rSRDIPg95Ct@`5^=X;Zu984P<>rsS=;l&qy;#em2>=9oZ3 z*QH3Y>>oJ*XE{A;6ShZI8Ot6;CYtG?r<nX>p7gJtt<skPn*{MgHU<Fsedv~pO^jO9 z5%-W!6y5udGmotRvJgsxpVE<s?|3-x%|2wbW7T>OW4AnH)oc*N;{;Uf0=FkM7n_&q zyB@VXvYx0puc2bnY`NT{C#6{PcP}fn=Boo40H+7k)P(R3a(iZ*Pj|Rl#M8D^V0^UE z!tOtvHRfeIPk&lMGsAJsIK2sJ^$6UCX6kd^tS!*N;DgelSiwDNK#Uh7gWj^{yoyfa zBtl<s=bCe&W(TLaqy+BgsqagI?f%I1r73&E&|65@YL;>X)RDz@Bm@czWcC%u+RESB zHh^$98tc{fWq94#n)K*7HL1Z_-RM1jLfwg|+_v&L1J<5Y6d7Z@p4}<0o^m<Q1lLbC zwllrZ!f`Hhn$bjNjBWe4$@<n)MgxL!PpGXJ&S46K?IV(XD_a@b`l5A4z$9(-G_jr1 zZC<{#*okmCVxxhYk{E)wm|MO!(zu&tm?YTDxZE49Io(5&7X<a8cMR|X`qM;md6^50 zbCPK`)~Kx+9IPAfjE_pFg-8ROf3;VxPWNs{OxAG>Ty_BUtu=RKw6`Rgaj*tEK_vUq z#g&U2i3c=~lfcQ(dInVp0Fz43bPjr0kpLJtJbtt=5=a;mob;dq6kvSEu4$?JzA?$} zY2EIDO60-RWda@8$!hYyi{Lh)r{FT3t;rSX(mN6{@`5l(>t1Q`ibiXVB^ND>som*Q zQCVr!>cid568t(K>6ZhrlRVd&{AEu&;%1vEZ;_%=f%UIR_;9(=Zdfi4npZXF9~aYa zj`V_m=aT;b=vBJ1jGvSI(Z`5S+DH6fqdM(Hg6LPJ2hHS_B#wGk4~AYiENv6!W&5X` zoSNR$3cinXkK>O3S3lvYGM3S^GP64ZtT^_nr>>3lI^zA;{dGGtZ5*-gP(f4Ps~FpP zJm6KgmG*5PD9<$|stE_p(z~y1S<bB`{dO_6GCYFI+qGwjONCLvJxyq93M2C)PrHiD zg|;t0t#~-a&r#U+u=Z5$YS}J6RBxN9HQMNjn>Ya($ic26(m@^@p*7n0e23HF2O+l; z*0}Jx-9Co-r^8M5JciyRxAES#zc9m|r!_9H!sb|*F#$ms%@;8&Ul27fn3a)^?9%It zy5T~M4Y}gJjeFZ4IZZA_ayUUjQ%AW*RP$9~Q?PT$=qldU+<|`caf*D(CeF`7Lvmd5 z2s8}45>C<TYFB{AcMN4u%%`nMaUYi>1sV1=4P9s&lr9yCJ9r+nkc<P8LwcT-X6dmX z%gG%^DwHbhpq>S4mX|VXTcXDShTgR(gc$RWnxc>U-jzB^PZ;Y|lTPTFOWiEkLPg9< z&Cex(uWI;1h~t&m5M&2w&!u?on+h4($=k*^9@XxD46IVyO&snKsdJI*UbYrI`pKNl z>YF@k<IbKfe1Ci8wjj8T9e>{MTtAnz43moVZ;$$wrO%BP%~Y-3vMG=Ofr2=%J|L0v zj1JZ2;^WCxrJ^^cuD2s67~C=sN@!rlq>)wFWbi5>wOE{2B%X&#b}Yq=^rex31e1a( zmh4#jd(vECpKf@p)!9sZKzS_NhI7)XOxa_f(yc*_tOz_+X%h$6J?e}k?nTgX-?^t5 z3k(tTrpPglc%z0LPbaNbh7H)>(=jY$;{<RqT1fdHHbFI;r^K)#fOmSD({@ruKb1y+ z^&z}<AyACAdekD_p9CM2(Q-G>82W~(tpKe+Qoq-ofPe=C8id(*O#rYvLo*ii#Yq*Y z-JQgKG|_E3DGM(hfv3f2%8E%L`<hm7V9{%Gc<qCoxF<iwQZ1k${P^d&rg<_0gxqP~ zLlKRnH@!H!F{U<HRat_!0QcgVutY--m>OB&JAq@(F%xTU<da)HSyxsplB|D2NFE|c z3;-UqjDg#Zr>#dlno7&O5Ia;#{fwLHi+O@IGH>cSR03GZ-lrten@IeigOO3Cv|w`} z13fB|`^B@|wH?%ZNp2dH%^MM#gowHZR>cY<cEcWhs836=w|!A8^B@5A!J+Pgj0DG^ z^{07Ip!@1U>za+-UO}8}9q84D%FLD<m0WH^xcgG9;aQxHv`H*)&~3or)M-3NB=xM_ z%;dS9hb`D?813Sv6PI5~t}Y>W$mk9_RFmp3M7T_jGIA?u-RMG1+_4Z~grAst(QfYd zX&&OGn~YUxwYZug7nVrtnzyG)8uBRue5Ca!r4vbxF4iu7&oF1=hr}67Z@esOS-X!~ z@4hESA5yVgoT~2HMRGs0i3j4B#5E7SHXz9LuHWKRQOV+46=o{p4CB;Mil&t1ewO@@ zWwKn6w_E;lI0>x0vaB)#az=Vn*<CHjEu8cCRqKdE(s^W&j`bVc{_T+%0(i-<Cd+Fd zPMz({&IeGD=eRC_=bmb)g5qLuO6H)|wTr7wN_b=1%7ld^b*3(<dnOC0Ry{B)*N4M) zcr$l*v0&-fA&DTLeA2d`a3eiXu*FrETfJ2ayaDTqvG$9(q8sEbk(_}?D(YmN_9<BC ztq!t=MNomaWS*wF{{Y$b9X>Mnz!V`xtYpX!9qXNr+FQGr@x9nE_O6Haage9P{{V;x zSe8VI4o+|>N8XJ67ygut>!k@oG4B5W^p<)L#pxK?X-kq%+6lnvz^pHaHxXE9{xZ~N znU>NFNiaN&1>&}TFWnTAOGPTGT=IUE^S8wh80uPohVL{>3&C#=r*n&?h+&#AI%nRw zl8-f|+x5To=6Y2j%|Z=#{VaL!h&)dRi#$uJYv}=m-o8)~&eh-=%M+IvJ!ppAAxPs< z@}lkLmBDF72Nlm!SJk7I+^a%(un>Yj8j0lR0;daz$vjnfkRDGpnp)~<u=G}E1Ps=M zK4ZFu1+&_#$CMez2DELj76POXo4GZ=D4hGAyZb-<t*VfC+B*Gf*raA3GOjqqc}Ku_ zg4t?v@$+Mm^{-b1;ITC?cFk$YSzKt4k(S8=nyn<8;9?^r<YOkKl)T+G>>Yh-DVc;L zYVN_!RHJ37(zRpm2cD;TI)mPyY6Civo;Wny7$>@HI~~2M+Qs&HLWJsZlUVHR%_pQ; z>E8mw+k8~;w1VbKSzbvIB#Co^S0AN)zx|zW4!fr4x{A%HrK~M1cQVP7Jcp7PeJkUS z*^|SX&xrmjX!B_|P+I>0X2mSh8<D&)JYyC1ezB-ac0|M_ibXETH2}OEaKqSFu^95Z z%S{pUbtNXP9h-MK_4uivOQt~vt7#^SWcLzULp9_D(751j$87hgB(at)3skew2Ai#E z(+!eN(|w*ui**L9t(@AW{oSUIb7rvHC~IrIKnWw<PD=$nX#T*uRk^qEZPu4AoqR~f zn1vp89>d$MRO1%yC;tEdAt}@MPEKtU!=+tY=@xg4$r8&Xs-{FO(Cu#ZlX<S{`W*Ay z4O&}~<l-+SN(E9rWpBo}4xy*`I?qngY`jIQ&uHV$7K;)6(h`1Fe@xdW@gBkrBI+xv zO>Hjpi;yHEe>=0tt|@ytyI%G*l}kIvZ|h^3ENrhMd2OS*-HqpN=40+^h4ag*Y2!}& z9i4;`nI?`{z*%yAO>D)X++S+!mgXx<LZ(D4`8CH~+rx9H+y}T|W0M=xu<ux;-n$jM zz4tS`uPV*Nyz&CE>%~*^mPCE6xR7v16{9}L+s#5<9N}5|W9d|{W7FCtl?(l#5(=o| zqUyy(w5-ZW8DoYFO7W6vwcJKsn?V5eAZD#xTq_`t?t}T}s@dI561YM^&N-~5rp&iw z^(uxil2S%I{{RmaG)(eGoUsJ;CWnldc42@`JQW10XM%XCPF)zEM`AMxW+ao0`qZ9Y z(gERnnnx?Vu+PdrT2k!TI5;&)IXje<ka>-`;Xwf6mww=L!0%D8XUeg`&m?uF3<lx` z4@@_DsV?0D?Y%@T5gT_C_*4=NnIUtYaaP%g=)W)0t4`sgRzOC7y;(JFO%oa-1&Hb1 zo#s3&*e4jqeX19Yi3gnf8c`c6mLZO6{E#gl_5F1n1p7f7iz&$3!y>Bc7MfMSA8NF> z8%7Ca9EzL<zyW?zdWx;8Sx0#TML69Xbv^i~Zrd9s=F(>a9-X0IUff%~m9!*C#YVt) zD6L3*IpJV~I%TN9$=sY*G%a@Ob1Xb2;-H^O>MX347BF9Wu)!yqbZRL(*yyPaSeLDQ zE8&8Q-`TciHzlwm;<ju&GvSEjNn_Kj!zl$sagL(1;k6PKRZt@xt4hwsE&N6zPQ)Ij zy6@Q>(pOrus<oa30X+Wzv!;Gn&|p@joy1V1qR!-=a7}YI_SsMa<7w~BYFozmEr1&z zc+*X{b0-@sZRmA+Y?jl5{+%Q)Mln|IWYg_H66!Os?8ST5Hk)jw@di_IUP$X!=Zu*i zJ~o4lu;#jxYBy&)jkGPBoi=j0zLrSv0LjNSaV|8!C5fJ5K<IfDf-RObJ^A#kpApFR z#sx7kw~*o44<fiLSCtie9Z;gGJ0qw~UqM+M8=I)+{x!!Rg(=o_Cy#l)xQZ;{nU{*? zZk8W0WEm?WZB{i6wYtr2*0&C;x8}oiHRmjR<tG%EH)eVd1qjCNwskV<`Ze00v0qCf z`mn`jUdd~JHrQ{ZBpyPXaas3JLlw9vxF|ZUGf0ffJ>06BcEm?DP{%rwRNQqimKj3w zj@=JDc?86=7Ax6ErU{t+<<D%M)o9Bapl!Hu#!Xk9kP{(R9^<8XQnPnQu%5bk3m(^u z1tgK4y(yAMx1RLNVdcye<RRxcsqR%CPy=Jql2=*{`?@j}oVZ2kxz1ay2;xU(V}b9| zo#m!T1D?RsRwg0iX!j#}RBE~reyExtQTL%&jP|LeY%7on;~do{R<<SMZ<hn*s}o%L zkuMw*o+`PeYxgu;`4vBU!~vB(*jH2F&mB+Udzd4+-1aQ{7?#LTeXE?n>BuIT3x}ED zVg`8`s)U>!{{X8Q)PkM)k@U5#+!wK|wzK*0NH-}JU?xXgk9y%e19~4xgvTf`sq*>i zYq>@qrw6rqJkLv<3Q0RKk}O~x<oBgm(`XEGDOrS4WWM3pQ4=?s#z4CVAd1pT@zBOj z??FTCI8l-BL1Q5g!9LX*v6K$KG0sS*uET<nk~7U_qQNA!ALTv?!6v9{R<T{^+Mtz! z18%{0bj~W{M0X6aJoE;lxdP(G>Nizn3cvz6&MRd3Sq-$Tk@D=IOA_UQRL(u|RTw)A z?%R|1YenNTNK#15J4-3!jtx?l766jr#(q<Z^QESivFk<M5KO8Nh9I8Cnt{m9M$dYY zve6a(9Q7ikjX;2nfR9>Q^)0&<qm;K8;I0Xz2_TPymiMO|E=>|QnH~uvoa9q-Phxqj z?QKR}#886xQgM&1BO%HM>Pe+8WMjXPkG#~R9l1Fp)}s8YVfi7T<b2Ec)D4}$;D#M4 zXLBMF2LruUSpdsBW9v`i9n##H@JI!YanRB~Ad^r|?dBoifzX3et{D`tC!TRya<pY_ z2xiGf!QhN!(=7K#jis<U=e=5WQ=ZA#8fgl++tBety|puUZ$NCb`HW8PfC_#9IpAlt zEO-(CdHT{B6gw6m9+;%8_byHJ12X4s2ya?rGsg*Roc{oLnrL9}v~!;I8%XF|o!RK7 zhoiXGq^&5HW!sLNno;v})4fC-N!xF&OsKDw&cLIo6`Zck9J&z;j5zsnx#}un!Lm+% zl@yY3u~Z(!)T0GPdYW;K^?QbkRuHz*R3`(up@=Lp!||XHgpxLoQ%z$VHsO=)THC(j zZ9O^)a!CMV+|!jnB)2&Brul*X=qf$xK_|)3{uG_k)J^C%Z=NzbR4cjjfJ%-C_o>~( z01Yt6%Z;P0OKmL{pq+*yuqAr8aZfH)cpRTvaX4lNocE~Q2L$gKP%s5r-%(!UCG%v% za0uh21P*dQAZDZznOB2>QL1IIPIE(&OF&n!k+2_iiO;PmE4cIXQk2W>CjexOR8PkP zk9vfc#P<@>*hwP<<aO;v7>}K?*9N3T8ySHFfl!1lRGj0kX(=@HDfbje4;@J0npMgI zSZ+*p9jOK~$Fb*{9l=`B>uU*ZauWE?PCe-lCyY@cGENEFs;kiVGzD`ZEJJSg#wki# zXacND<&`-gobqZWD!}}_=dDX3fWQ|Z4#J~mT;ON%;-W80y}_pS>_pL)kg>)Oy%GYs z!frHA7?@<J<KCg(;I};XHL~^f7W$16861$MR}_x;+DNA>7Q&Oytt6_aE0epitd{$l zU3DO5-uPpI^rU>Wc<)b__ij|v8On3kpEZ??+<Oqpe-r2_$rx}sE1GiVVmf_ja#c2i z$vCNQDcOS58Zt=R(w!dNo{gUM7WNeA(Bz-Sw7Xh~y_qa(8P^9HIHZ|Fx$Tbh(D@*o z0q7~`t7DViv6QvYS7IH6?Hr!wkS-6&^Bf+upoBZUeQ8=k#GVu%O4D>Lo|_SFb~#~& zCxcF4TR%1jdSf@v2^q&qc1b62!Npvjg}2H?%e)mWlb)uUyR*jtQ<+QhIK?I~oOe9b zML6rwha|#B?8iLQ;UG-8QrsGiler&_NgHl+jt`|)=qI*;Dlt!#>~7+cM^#J(%O1Jy zLCI|NC#GpIN#x|7^xwQnT|{D8ezdI@nxi~>&`uX8w;82r8Q0|>FQ}-J<tpusc!G=u z<J8naM()3j4$m`s40oYp+A?^pBHgdlJjvoj-?uz^)T#@}cIN}WIH;muE%IL#ZVjs# z+~0WTG~Btg4r^#KSJ=^pT=T)jJ)3Yj9ertJDqCngXQ`w;vM>b>D%*`a?jn%60A$mH zz6sy*o=B$2AkIS6j-w+Sag$jktJKa{j^j{yoc{niMIe)r#Yn|UU<@Bxj3^Des5F|s z;~#8K+pW6~Gt#=|jYNt->7Hwmv;gY%!C0;vC(zeoU2sbRPqlg&d#G~Q<*932N04Ci zOnl>xc<WN8+$$90-kBt^fwfeEIM1zh_0Yol5s|UJX5iKI0auLU6`L%7IXn10&1kbc z%%w+Q52aSUNxIl@a>NkL*N;lK8XdrJ#PiKZ5(1lQWMZtVoVGYLZYJ)DgY4vt5OIS` zINoueyeZD4oy;>x+eX5qraKxFwupC2=0ftZMmQMzxy4n^=+1hMYSiq<gV6I-)B(sj zKJ|CgK|NS3!O@E35$jS1+yUwJrb?xhXB5RQ{ETfKNu_5knUh4BBP>ovY2@*d&UvQ@ zqSy$Ku|IfYjMQd5xn<|toL%*awX`NEyD|?w>&w0_1sB?50nQtm^%#oH8xRWnn)1(! z=gYX$8@XaRsg?O%&8SH#sCUCj&}jOQ-oj5iXpNVTt$E+Z(qi$>i_SK}Kb?9H!-MDP zSC|B_pOapD@$CovCi*)60MilI>sv<ZFJJ2D=ET3=$JhS=ZD(J0Lg<d|$@2SF4~D?a zqAoJiag*y?m-D1v8@OpRv_+0SmBHC-@mR+MvB1*J2@kc84b5pA>aD5K8Ad6;FZd^{ z%@aX*(7K;6HVTetXNEL)c?3Lv8OJr}y2r$gPg%T{>L{brW0L@^e78=ugZ9ZKxH8K$ z(-X(e*{-;$J%6v6#eQ8D==6P3?%reuH;&_ucACj52mtUaBTBga%(3KdCnM=vk1ISt z4l~}oOl(q}&wB|sC|#Frz~F8q``3S<OB{N9EKrvZ)bz!9t-PUrP{o_4HRygDQ2JG} zbv$)7mL4g#X^)pWicIp$hgm#xssJ|S*}13cgLTqm?M=OLQ{6zR@h4J87~PNn^{MrX z82<p)f>ewQ9+m9H@6hoTl{BKtHWsGoj?z>Q;>C3~mQdU5WILqB<G6RKx=o;pFPi|K zcsy3DQSFc%XV#VPFCgaXj4e_|mr;gNz!XEr)~j5|Hx><&Ygb*ejwzy$1DP|PYbtAO zO`QCOwt`o?*sf%*R+=NQkarAcgH5+Zc)=W+vXC;86b1*1MT2VLMloBZ+){TED7MNx z&IKx3U}MZA=Q%ZEG!k{rM@qF7uHn1Cr8`}jNtC3&y3*pz0X)J+JjKX0?cWc)d8J)= zO5W>R)Gc(o?>NUI@BR_fit)Wl-Q$iu@s<ZT_Qh0#z<SQTXZG7IE$*N~OS1B&y(%?b zHEvs&%A1qrMBfv&3q5b*2DPba_kV1*mta{>d<=0|GA`8_B;-^VR?_M7$!j!XCqwr| zNX$%Wk;hEemx!OYsOFWg(9#J(Sqyat1Rk{31d)-NkRtBL<c^fqe=v>19QLj^riVgz z)SXa9st?wf(TB-X%{ctxo?!_eED1F+(5=wOGGaV!{<RC?TL!ILz!n#BPIJJjH!1Vy zcLuchv^iw@5zK+G25@Lq35t?bFsMQEjBsg)%D{qff0aGeg3EJW!Ni<z10I#5hmKG> zf-((d=|N&ZgXTZP$GvMvckRJFG0kVqZ35OSFx@#SbDl{xASN;h7$>=?SqxJb2RIde z)_A9faYAv_RNZ$H8naxynOKRB`}Hi1HVMxs)~1R@L%mgp94YBY({63vSsZmV^tR(q zTMmL*SYx0AlTjg*mMq7wdYtMGqi)Qo80p@t8_mzaB=^lqSJZ1k=W#jCX{0jqoP*F( zJmm5hy)({ckpbir(DtFq&deT!j*<{|@NwRlZR8+jn38jfmU*Ny3?Gzw3SqdAy0R0u zxTS08#mq{!vP_2rj0#BYcpIt<iDrCkb{|7iMrBCG?30RbO^9z>5+$U2ScUnIdU`;y zsldTK%|^m!z){;Y{{XPu9<RAuoDS4J=t=4+w&&*PdKz=tE2h>2oaci~NTd#9Jx4e+ z_~B)8$0O=#r_HU0y0GzLiifK(^)%50Y@?hW^<o9(hDgset!85zhIyv!_amCkm5<q# zKKcgFL)NtPtE(FrCo>dz938nC#b%3KADKZX)K!GBiy*KCiSN>t{Io5}?u7EK+kB)d zlh9S$2%=ldY_J8KVNE00BTka06b_&sDRj*`dyR6}Xbw!n9r&WB!q`WbPg7&|X^747 z7ve(&Dpuh}K(5o`PGa$0sAebq7p^_)mHm|>Yo8Z<Nn#wxx|u`x3hVwTLf0NTwTe6p zT63SRYmC;lPcEM{XMm5hgcQ1e!8r4lK41i{ak`|IGV$Rs2>FS{YNniHkwmg5lhop) zzDS~3{DHIuIM047%xS$*^a@vY*zoJUTHZ}!cvce9laj!3jMQ(em?a`u2g{H*9<|zd zd*P+7yEOWh^vxDd6Ul5G16MVFhnjRz6;C>49PeS0KDFpZ>1wU9;5jEJ9@qQ29%FN@ zhLHqNDF-{Yo|QemyDF7Pp!?nWjMrU#;B7wA7L)C30%L=Y{*}!ax6)MZ2jwS~8Qg0{ zIenBTseaR3xq{}~F`$v0az}dK{hY*?Ul4qMd4=BWf%c4du6oY;+HFe1WKN}|1Q!|R zx_{Y~_xO|ICCd@}+tp8$V}VUe-IklBf4}|#g-_zab-cdrQ>OUae2SWTTt=-Lha`>| zV0EvKwarnreNy6ne3K#a!yND{=^xtXR2qGUhwY;e6t{*&5(dUV88!0+t>v)7k_T$@ zDqYX=J(W|MpR-**F;wBX>U-1HOpZGD;-U^D1+llkG)Hh-w;k$QZIYvX%N}<A4*++m z6K2ez&pg#&LoPcSniVmO0oR<>Ta;G0VmB>-dBthjM89~A+38u)C(I8@*0TT%)pK20 z2O_cU9|T}A>6)7oFzf*QE7IjS9OMsb^WTDTF!1E=!2a@5Mn!rI<xt_WewA_4MqMbV zq)C9lZ6g@(QNV$&S9W#-$Q2;Ng$wCTw=B|ZKX;M3l$x{ZZGCKL+E4a$VweM>?i8j| za=iS~4uhpuQMHH3kU8Yku5%*DFrc1uT<zW5sjV*)*nR@7-Ot2rA+)<!7f`~@I<3c+ z#xcu%YwEXu2+wk3{@t5Ty0~V!xU?muPoIsawkzbX+0w%MTJiMqL*g49BG~Ejq>@g# zkYr$Oucy8pTU+>A8$^!f{6joZ6lb@CCVU>e*Qldpq<s5)u2FW}>{MIWO$F*nVX0|R z5{Jo6rYOSTWcuc)>J4Xib*7Uu>9ATv(?ue<a`Hb4qNTajF16h$r?%5AuB^n(6xufl zDJRz*`_?QFY7l8r+S}>&I#lpU=S>CaA<sW5#(lq9Zc>}uec$!{ZWELt6q@<>@-AQL zH{KP|bz8gbaNNx@LehDPxP<=zciTKyl<OLG=u2BEw3WJs>NcHjC;PCR<Zw9273rQN z@b0iY6MOxy1-JZ6B{JX1B)MRUK2X1va=LsP=ZL%+dtn9TnrSH)n7&NF&e$9dc>@)k zl&8}B-TuGuKge<Ble@OwhZo`)G^wJuibxt=QW+O?c8p6DBiprc`mDAWmk)cV!9A>V z<yr}lh6Q-8t4uer-6S>}A)Yw*O(KxaRCLL#Ek-F8Rf2gHkr|z2jQrf5^^~ROa^)>n zmPbG3bNlvWU+$jOov6rwvPJSQ_nW<2);#rS)+t2FMnPlA0<rD`8C1%wL0pWQ<!`G- z)+@|d$c2t^&P6#x$+?pY&l#r{^A2&)aY#wujjVDoG18KE2Ar5dY$V^f9qrtnD$Trc zvp1Q*=cPi#q{BGC;EH3pVYD0u&S=+UJ9inhNatzUmc|cymB;UJp^3&Zo-sfHNDG1& zscK`oZ&SM*V~Tw3mwg47Xc<sLcg-d@m2=Y^oKq&;K0tXr>8|nzVm?&qjPXKiVJ(Rn z_O44Ey?CngO7bXG1dgLL_mzr;#zip{2UCu7p0yIQ)T@z)kqdmeB=i+wo8<(IXSQlP zu+q*Pe7N+cCs%emduElp6MK&H6ewUw=b)<h?YcK8e}t2ouoOua<!z%l2Nev_g|}qg zx%LoRvZ?OD$(mDFl3r(=*@c?+K+Gcni7b29MPqLw1yXQ3ZXHEnTA+?+WAkK?b6qx- zI;;qiNs-P8>?_Qnh;f^Yo}ZEGREx52p`#7FFy$17n4E!{+qKc}7h@RyOl}N%b6j4l z<D}EnLuYET5ZE$|7B!NdC)D*1m8H504sg$bir%JYLK>&Bq%!*Tl9JJRp2cNrxk33^ zo3?9e*G`xgVGB3|ki79;FJX6fBN2U}z$ZD~&27PJd_}Oe)~~IlNdq><$Z_avH=f~P z9%h}tug`B%-d9yEW{+<0W`Z>hcHCi-IlfnAjI%G{NvYZhFYcpfXA119&bv+l^sZCk z*1h9P4-=M)RvMZrGsObMf|%!%^r_|en_+)@GV3iim3Y%KZk2M5dhl!4rH`dw;GU2A zXPHw2h@mfeb0yV$i6oZySi6$e!92KPKfRtojD0Gd-GbWBG;-g<#Q@1?$<0~TukPkg zCMOp51On2hS$>38HLjkka71y3Grmb-lU_w^Txvd8tDW@ex@k?a>dcVCv`@Yw4p~NV zQJAC30V$UQf_v84@c4l2As=dj+f7F$yb3@_F#iDFuOksktw}XF^7c0Nu=_7VE=adR zK_ut3M1pxOuUVCmQE)c*t;uwV)&lBxF&R6JW$O8|(Px>mu2+qx(!ER$7F1p2_3U}o z>nSc&&pss<Nf6~-ICXK1W|->oAzi2D@185&^*;`2+SRP^UnC7FLjHUSf>;g#uQ1g< z9&1(t6t+mO?TBXI7Y=}Q1bWdra)sJj9*kzBuJ`Taa^o9MsO?Bpk`6jkn`#%{-cz93 z@yWw0R7_+j&JGnvBOU5e>dm6m`sw{>N>R7&02U&k^2@oyFk#68pAF2iWnYu|8geS3 z$05B*sg#mdGg0JYKmhUz_rdQ{F3C_STzk}Sy@p5317MnIU7sl@)KYCWX!O~Z-4-*q z86KvQe6r`{1Y_@Gnu;fp_Z`_>bUmnIcMNp(r@MUJ37@?lR`okShI2$NWP;v9<wn_P z&#ij&Oe9cL=jtoM{vXQL8vN}il99Ub%-q+tX>*yagK)dYP<XD`M^AN}Q(TRg!h*z= zJ9^~O?^3uTm`BOAn6dVtMkGV%PpxTdyR)5IP1sV(S$<r%Km{j0VaEr!rr_=vY-84x zG<&jg8@*{OTTqVU@>J!rc_2_5%#Kem3>0pkN{`IUp^5oUYFHxkyx%reMcP0hdeW1Q z!+npMHFPU~d7qaOzf<p7bH=#AC!c!S@j4;ZuaOS(9K~3km4sXk!IW*yaa2zCM@(ex za<r(?=YoCvRMxJgNGJ2Cr3F}oJasv!11hqD4hg8Ay}7;liDbf!<1D28(M*uJJg(oZ zO(0x04hZB_ercH;w<TBQ9WzrH+f-85awbyk&T&$_gswK=;*nKGNhIg7?L@MnLNLn1 zfyF6V>N_UJqi<5I0aM<fdsN(2hi)@cMF42qacuqJia?7iuq<1@PL)x5d#uTPS0Y<) zEb;(3=qe_>R?08l-Hv)y(m5w23~`#QS`y_}GRN3c>!GSkQSx9ah66b`6%bI|^SJb@ z8&!twnB%=84=kz1K%<q*OAy*jVr4)BhCR(CoO@+sA@dGM<W#H#lAtB_;~|GZQH|bV zz&OuZsM}^u`G%DVCk?Oyc&KF|m@itiW8EO!3GNLSK}K+(vF+(p+rFWDY*&PQ-j!gx z6N9&Jr+S4`4u=^zsb{y^``J6>5NRl;HRdqFB^gtU^UXNK(V}F6bJsNs%t~%%$F(d> zB^!Yxd(^!coSdGdgb4#H9C5*>0z{w@k3uQkc<6f5-a@KAP;=gwH)6d;u{?|rX}jBj zo<%+>M1ZmVX{>>qvg6d6rLK(<q_1HZumFV&ea%beg*>Pu>rr4yjGnagO|iGm3XaFE zZOL)B7VI=g1GYKOYF{L=<OMxyEC$-koC<d;`Q6u!Yc!WYmW)*jSc9Ius!1VJf`jh& zs1^3H10bH}p6bISo;q<xl6Icpz0{f(HS*JrSn^4zomg^52A;WK6FmCUByG|rPux6W zr$qH&wARBs#EvjZunfdziCCmWE_2iAPnD8c6C)nA1GxE>&f;pc=!YnPVyqWDW1Q5C z6{Fe@C!C64V%(KHdWt@6;h7H7a4|{POHw=%-%j+b6#S%|di1AcF>H0Hm>1yVHBBe5 z;xvUa?c8&Wf@&G}bHO<2p5~{B6hAPeB_wPx<2~y;+2~B0Z$dooMadb*BA}Fz*-%b+ z_Nk|iCCd;<Jq1G~m`;TUI21+N=ySVTA}~s^Bpmv6q?qnd_{K#zOSA_WZ1?R=ck@*8 zR92cbWC(yt%t&GM%{7X?cOFNfsSex%P7kd!%i7?abIHv@PCANG<=A4#s6YU()}Jhl z6ta)HGoN}%GUOa_K#O{E#2oS|w|%+}$t{PIy;lP#6!=&m=fAf~Zqlx~Vx#FzQN4;N zB$9a)N8XNtx4mKc`J1>j!!sA#jHWS~SjxweNy~AHat-o)yo!{Q)TLp<U4UZ*4_b~{ z8bg-AC)*V>+muna2X|vkNLE!moQih0p*QM46^7z-jL_)L+lT8?+$w-DP7i88cN59r za4OSFR!o|b)QOc=O!pjnQM=70axi=1rAfA?Hs>dhM>QKFMKb}M4tb-UJ@gt%T87XU zfN|WKX7894Jo?g*OJHZ3SfDDUO9naZRc>vD+P#Iw@-fJyKPzKAb~J$swnjkDB9M^n zw;M${B$beQ5<H5dCy;6{I5$k-_UTX9xWN@0fTstZYE*BbmfDFn9g7U8&w5<3jIKZc z^*w1>lyi)aN?;>-+73HpRlCPRl&tmGvlcewuHt=aX2UA3I-FEcz79wn)WjFS86&ML zE8HZkHBc+<WzW4nLA|&*6!y;rK?9+tow*~uMC9A|b{cGE-0~YgT9HBZ&$Tp0P=XF= z@sL~QJkz&Vxfih;NI@WsQh?04H2IVgM^Wl&yH+Itl5^ZsX*ZyrqQG&f+c4wi=DOzv zvDoMHu13(aY8L!)y1O3vJOSxlbgyHctJFy*C<1LDo|zQIJBJ_>Pmz_gjGs)@TZTBu zKT7OPTSJ-XJ}`n&y-6PRc`+aXNdTU4R0#z@k+5^cX-15}cHk&I>i06Ya&IJze8iFO zQWg36QGz%pv8JOEeN9V{>@%L7F-Z+Hhk@o0!10a-Xe+p6jx*k!kmPj1?MU&efyq4g z?M;=lvLcmoq_=F<XC>px;0)ENN=XwaAzMBB)m2iczsjfKdZ9}~FvJ79oKw`G%HXLy zoYF{&ta$6{XfowC<F6UTTS64fzrv-6^r-{<%5ja|jYSfbQ^7p-=~7@bh8f7?lS3-$ zq3X@|e+u)Dj0zv@1%M2!K(9$rxMP#_uQ2$vC+}>sPSGg?chaG|tqzPTPNHm!;h)Q4 zcY}}K9M_)weGI-a(5B)=k^sDay<Um%<Tu$b0LS{!z<XB(@$_fJ`Xg|-7+ig8rY}dQ z^>lLLllGrK(VLp?PllO)y&CkdI1muqn>%aLHKJR?vbbD<5IhfR;;fhpQ6UM(UFNo< zG_(|-ywO_T(p$+8M8CQ%g2tUCl(y3qb;mg$N=datx(_6IVHmRm(W<<c#&<d2xQ^z! z6r|;DfynKlt);Uy<ESI<`d2`av4gG-Yn;%TjO3h>R~69*D!3ean(;AC)g6y#2$P1L z2U@IYE=VPZrFu7olz(JG+fECdX1wO!Wi0O=MmeuW@Of!;SQ&vvEy|PcSy79<?mS)6 zjn6T<C4MGfDH+;#55~F)?p8Jo(W{~PST$nartgXRk;f;G(zWja*a5~*IK_K#S9Y=D z##fG?)}=VVcFd`ehmp@py1KN{kQ<c7FuiK3{E4?4M{`XZT=CbnZlIL4WoXeg{m|3` z0UU|5l`eW!IM!xxt>2+Fb|{)seT7D2+b=vHT5VfIMem@(hB8m<Qb%rCiN|b%PJBo@ zkUi>nV<7+p*0EX?owOSrxh)%Hf!tQLg`j2(tCl{!DItX&;|&{U89eb_4wGQA6$}EY zJOf)nE8U|PrS52Wf5R5~tWv(GYC?ciVZQR3>AXLsSa=h|GFsV5G&Y5psxuZm)V6RV zY>Fe>8O>4guAv>Cm{)r6FhhFRsS0p~Hu{*kK4l(<&)zB$Ho0{qkLGS{gN|`jN)}ub z$DysS6)-6q@T|v^j<t$i^MEq7^VRO=>~_Kzh=6Sz)468kaYT!S9N>4R#QCmvYvhR( z0H+-NDf>7lJw0eajC0KryRc!~=~=t%4U)v{BfxBX)ftm{+<FS0Bl4V+gG{&}t_b`^ zRCGD!uc=u{Zbt*QX{#Ua2`4nJ?5Y$}r|%dpai8L+HbZvU*wY5+@K*!W3fDyg2l>`! zmKr#i1uPik6IyY{jn3aQcJ{2Es?09>l!__2Y!k4K^`U672*%6|)nyE_ecUM>>eMi@ z#lAEw0qsO@EylL7J7Dr^NQ7kN`5uCput_!m1xf5`M7Ctg=PWw$M6I(k+1P7M6nWVn z2iB>XBSKk)T9z^a7~E?$(aW5t$`4~gZR~E9$<4~imDoT%>M11yXaMkf(>XjGg*36c zsM<rZZgNLTrpfD}C)xqX0Oz$Jx=b9Y2iu&|v4wem%hs07p?M239G(yZO-D@u`HC(J z06_P_6(n~o>_HuQ=~6h@*k!@TLU|OC$^q%xr<J#<53R&`uD~H-%xpgR?N1liN;Yr8 zk6I1O236X`6Vo*#NToLg6<t-#lYL0y^Fa;|%zBej`K5`-CYv1F!N)ih=D5Ov76XpC zt#8;aENsax<B>^l@`oWLEuMaqt8?;#!vxc#XSulB9A%riQJOB7Qmyxug39M?vNJ0j zgXvQ!n`0>4M`CJO(pzT=@wYt<Ak<`rOl=Cd$IL4>uJl0P;wxH7GynvUsq2GUz7e!3 zuh?yA5z<k{?^?}mN^*cF1Fk{hw|oNcapNsHWL%+r&S_LhQk9;ze~{JPNcykP>%U`b zYm2WK{7#Y-5&^19%k=cFhsU~RJbf~6c9J`FLyx)%IjUc<-kUzX;%|vC*|{*TsXWZ9 z_reC}HPqhQcym?#qi;MneXmVz39}PiZjW(=PeO6ho+>TYsMkjS05oZZkG~jSOWR+c z_2^(emMz3k-p?FHMg7=MoAa!X9BD0KX%)@9Q##<bcJRxNwdtC_ge{=ExYDezqrZkX z9!2L0S#!Y#v3?-w%N~&HBC@nFG&oszU=H=o%gZ$xKVR$m*y(j5<10Vw`ut9F!(JK^ z=r)fT8QbO%gPwZktlU_oyn#+pNcoiXYT~qC7~JT(AD<LcT|p9n;x0&ETHe+^CTX_1 zOc#<w>?8`NHXEBKr%LR%I_`M!zc(i572@c$$)uVUm|DnNK3u1Ax6-%?e#p{(@<lwJ z0phnjQ{ou4X|KM`aR~^xQM2Y5t}@ES<(F|FgWUJ0E3FOUnw6HvMWg+J_02p9Hu69O zahluxm_~IU9xx_leL;k12TU5k(X4^jEOwlL$0Hdhit2x6Bjx`9!f7dtd4F$pC5}28 z%UHs9+fU7oP`yY$U&SNIKWdK@9}@geu+!pML|P@b*%jDr4<POMSCQN{c>@DAwc|VV z)jWOTd&HB?S#Mbb=R7YJiy+;Tn&GJ0m723!ecFG)JE*^P$#vKKh=<Il2B#<jDHRfo zaynI%Rd~kJ$9&Yun>|qsV4|}(N_2Ozq~bPk3H7dn!@45gxwyH7=C(jdKyi~@k-PBh zaILnZ;iM4Dh}P&o&V$yooaDCZZ%Yk1#_ZuOSAQgRtxHt|A5QgiSMXf^8JU_DdyP5U za!gKkgU}j|!3Op|)ulCOXSp>a$eL%jd>q{`gj3~Uq0R~V*KXt!=uZ{Nd?#jK2Sbv6 z`w_>zb=wS$+zz>}hpTrni_rprt=!~wsVuF&(LT<Z=M;{9ZMg#-D#n(qlQCnCIjN}~ zF7z}+>!!3)HdUB<hRCAcD5P*3rgMW(ok)`5WWdctlFuB0%MFBZG0kBcH=%QFM)5tP z_IkFlUl3|YV7PT?wn|`(Gb$cQ8Lz6mE2P<6>a%J3CH3uw*ivX-?J(sC`HGQWGycst z*IpjK)%7^g%^RS#VJF-S!>_e{CY~sg7_TK7g`C%xHtQTPT7t3#ILO`7y?HA&%D=A1 z&GUOnD9IY071aDc;k%^M1Ku0RCzRY=v<y7PJms6cJuWnzQs+%e-A35zH*(87HwfIv zkGcqM_@`)>9wycnTl@EK4{7BTgD%-#P<R;hHBZKq*<9&XmR?lW5~Cq|i^~!F^d|?N zqwuJdV$;6v<F_pNr?vfeE^FEroK>!`yiFzEp%lu}M2@9o$oXUP$6_msv(q&TZxq~W z_ZkJ3p8$cuf=3bgio+Slt}9nx)BGC`i7s!U@fD?&<Wa_pVHA6bkw?ps*Cf{);{N~{ zX*!*q{2nOVYpl&E^5op-YVF3{4w>S(@9ftkC2POe^zL+2a&qUj+y1|%Rk-lhrJ=(t zBf-*342aS-?Y!Cj%XIIW^Q~fAD>yB!?Jb>5q1ep%`EYu3T^!PC_EFhbTuFJSvf6Gl zo0Er(@CGXj#L-+@*+p*cEXy13SCDX3hfz}{DOt&U#TfK`3}fQ0O5ej*nl+`4opt9p zb-a~-dl>Eku3BF@9fove3_kw=QJT<&S>};Yk%NFhsS(vth3B0mpgBb&0H3XMw6-<p zQQ2vsLfYMC3f^eRKXclN{{VNp%OtAucU7CKXsu8@ESqt{gU}j>%aPFw50TWcJ&30C zW|!27N18Vl0Fjz$!hY!IbAyNUq(oi$#?_~@`GBgN1?ir(O}&v9`$SBo30=hYCX!4* z<nG8ly3?jE=Rb6D$*Rrs%Z6qfvz7v;%1-Rk_f|mC2Lu2?J?Svf{Ir01XsAm+Jxxh$ zSV~+mVbD_0%2H#1`9W|OoMh7vUc(&bq@Fn&%Xb6=&ortOhC6^g21QMh>R#kG3Q7kD zAocYIp+{ZVVh{T!q<kp=xErb_z>!!SvinoLw=EL+rK2hb8SPZHiGIyuWKd77SPYDK zI46vH)opYy_GHRPQ?mo>Sx)wLE<N6d2_3{qB&>3(4tcB{X6AijQxq*CL^vKv!D_Rq z+#5|ikU%Gm-t^A|>Cs$juuXAz(Cm=O<$<02SI+XhMO!7d{-@Q@QNvR9(^q{FM&8ay z%t`i3mw67<8wo5$blOdvvakznJaHBX8b!uWab0$a<->iW3n!L&15F`T>$?XPb4;<l zid_!hQA?D$Gf6W?IODEC`ctiy%6GL-m-YQ?<P~#P{l^b^6tw$Pj^b4jHuyj+G19tg zIK*!m2M+iEV;QJ4;>|CKB#$p}%oSBePv9$R+fp`KrL3!CCZTHuznL^prs)?0o+}9O z^8WyzoBsg7{{TB26URz_XLHcL2;J$rM~-f#zP<YrL8s3#4GDE)jAW7d*Nb?YT(<EA z-OZ$s8|ZiL6100&fhU!(r+;VZB(gpuxUhy@Lr9xU`)1qNRb@#I>><x=cCVWJORT-# zp>sQ;#Ghz%WL$iQJvgqceF$J_TK9b#URS^BURheEE~81>*ZdxzJqGw|TyG9)2?n6^ zU1<^!k;F!Pul}`n(_LFzT`R=IhUG{Z;=GFL@=4^xQU%9N+}EghDl45sL$xvkJg5(u zF51fnU!UG-b0f1f!g7A~J14sSzT-#jLS54<K2KbXRbRK0av6!p?T*!S+s!4*EOC}z zgSBSrIz7@zOKy%~#&O0gxv9;nmg;zMw7uDN67J~*$dy^&{haYtd`A9ug*&>kua-c^ zsi{*;bcyAbSs09w^6^=oFuV=n{mC#Xv;(*GuV#vpg1N(8E7?2wp0^AtfZ;Lqq)AyB zwlGFshx${5-yl13bKZu*Z21_^C95Cq$nWLS<}RV(Ehki-ON+=$%`YqwLi1ebi9Qxv z-p2P@Ouj_yLbbH5oPk~2FjvB<@69;GU!BYd=L3q)aZhtd&RVP6udhSJ^<M+)T6hvk zr}?p*6=+*0--^I=5J@6WYdyIK1I-<4=*ck(#WY!083aEfvNg>bFA+qL-6Rl2vkxpu zhsdr^VC~BpU(|4{^=)i;V2jIgyYk(Wy*5XZV228&PBKM$M865+7NhKXiJ6oVOo^8{ z?V95?UkmEGBA2+bb8bo4=rfV(YY9ccUP$ePlhrdF3G&LaVZk8#)QJ#aPw<n?HYZDg zx<0=2rsHn)1yqirv)|rCJ;p0WCw@s_FjqJ@uVC<gvlZQ?tZ?BI01#U^#dzBwxP1M_ zBLs?;(&p<=VfJa-83#^&Q(aVM<D|A`Q-#;2$I?D)1to~ic*P=>z}=EhI2FnGGsXi{ zv;ujeOOTsNG5g<2>C$DD@r+>q013@?==C@rlGvLuklFbN?rB?V#5<BPkxI@26OV31 zByENtAsFrJMY&evx{|OdD-cFIcJtHkQ<YWb0H<7c;*v>O@zC?o9+c=DM)JwPzyK4? zD`}{duceQj{96*m;vHQ=7|EReHO*Whi5q}UI3~Lvh;ie^x|T~hW(||mkz9q(+!#4r z^IY|QCuDZgx3f&B3o3^rsP93HvE1MR&<c<MerDu$=8v=j>Bm;-S!&jrvq<T(AdT5% zY$!Mf28D;tVc)(@OC)RzjD>P~DHx~(L`JA^j5#D4(n-IBu9ril3IH5}PBJPhgN5b7 z4^vVi2*VBA^UXPjn2VJFfPQA=X0v-){p09I8uA$&x&HuXy*OkZK~vnCG2{$^^J9{< zkGQfElpTJwC2dig^CbDs;8{q|1df8EEXl|rf7$|`tQp4cMI^3UfI{T{l}^i4R)~e) z=How&B9qC_UbQ^YnHMK<J&r08yl^=cQIfsPx73McWu1_z@`%V|(={-`7za40_YmPo z{ORh16UW}9-@Ix(p=Bo^06UstC(Bd82fZV{LGSNP{s6#?XBAuSMTP*(#F8`UX$W~7 zGdE5E6!1&Q^9p-z01^DD-pspQSfxAxh(9)QQ`(O$Uyf-cB+JhP)6_Da9|OM>=9@&l zG!>uBU_hmdJA$5b(w`Y1@BSgk0+}vdmG}&K$E8Y1=*hkG28aWIc9YhWI7vQWcH<mU zsS`NMZ6lI<Q>Iw<WHPe@l5^Unq_z@wBNzk$k_pW$kt-6wb?PbsF7_os8?)23EL)<C zC^-KBYdqCPO*?ccrF{h;1AsPz&`{VXB<GA!#EwZjk9uUYh5=*20Q1FCYpAupfglTp z=RK)kdk#+?l;1PV7(9DX=3&N8Nb5$<#gP?qPtBj8sWzl(gS#Z~aY^$BC0wq0QlR5& zwp-NGxlg#)0UIHi`}0n2c?dZjaYz?)U@#{hv@(3aDbKBE@R`3o$oI1MAW{}2<DQ*O zD-;D+Cp_^_A2O4iQr}XQyAT&;emN8pGI7bIb|Ou@=M?3~-X|iVFC$6mu^NKy$>O4a z_1!*EQ^Xh(xPm>YlA;#KCvR-jw%M9#i8KE3aJzu$M{1{VSoY3%$u(kAwHpH@ijEX1 z260zwtqN^g<4#0EG5|i+T4A$+Q_SBeI3S+&9BkY9#xQv!HEZ46R=U6Sp%GA|4^f(q zQe1!ra%x<OT%2-y(;ZAp#&>$wl4<CKmGmPn!1uuIPme04xng<dqh<;KT%7kcFkPQ_ zkZ7}7BIJ;-E6cQwa4D>$hA71wrdO>?5+jrI;k_wW0m#U~9Fl4|Y-gj;g)NXGsz`Iy zjGbuO18{m$y5k42r!Uj<rnKCo+ayTaV*oRe)YMyAILjjA9Z5XXgwM2v9FFJKn#&<# z%tswbq^*BbC%u^2C19ZK<n}bXvQdKLC$XSEo08ZgJW;cDF~Jq2lD49n({K(GIQfas zQBgVa-vxnY8?jP0Q*hiAfx#l9ja2g{a({?dKgF))t6I!=-%S4iT4ZsuG1|nAy!NNC z2muEm`qDWgCpah4x)N<_5naVCjP7GhQ@?Xyf;hz~JCDpW^{FJ8ij=_1ccJKv$Rq`j zkl3cK=D{Z?H18;@VU8(sFmQi5&NI8vFMR};arwt{(w#FgaDjeMGrKg2GP4e#j`Z`L zyp6>7tv72z+PM3Fn1DxaDstg|q++7C5@R4^(9_v6Ks{>SjBRr*Muul%dG-}5VEn{$ zO%6(x*|(mw?aIr>cY4!(h!vZ3i`{$R(uX9FKpu=Ks=J68G_E!{$2FbEmB+B!2RWou zxbxDO?Y*+6@XbGV;4{q|4JWz_2*2WOZn-;)_chnH<z@#XHObkjZC1<zH<>ZddhDf7 zF5t5Ax#(-qq~9*5B~9+i;fK)Dvnc>7;N!gxz@NK@K9uQG%TjQCs@vCN7w-&RtiUkO zdeXO#<p2Vs*w$oh>_g)O9ssS&U8RQT*|ItVTivy(n@@0tGZ`hlc&Q;^jmg2ur@UcL z1pN&&%Q(TuJ?b2_CznD~@_o>8*qUk|-U31VY0bbH>}cP(;{*>{mirC673M!NU@&SH zEI}XwJu1U9Y$UJE=}<5RHr%8Wz^!kk*fIrK0yDH{9jV)WbM!SUDNU)nBOU3SNEt>> z4IAn!-u4ZS+=6lSrxh6F;Agc)0S*BLN$x6bgp7a)>w+mY+*cpQ@r>Z(7&YNOIn-}& zJWHtCTubIb1<qn$?u=KsiCwM++yD>VBD^EU%FE*oSRTG$JXB6kmfoMK*@M=yeoyo| z?}fWs-%>22D}bc8^shho_+0px!^$uQNzHbD4B{SD^N<NHxhA<U+6pBa{*L*4g({fo zn&^exf3G8-6K`nK{<k_UQrQQ?iEd5D`a>Tm#gE~|c=Al%Qi2H}W0TgsXH?ug7~u8t zgB<$eyqet_TycPFdS2{Z-}U`ih^Nfk>^0<PC+5NQt2Pm>#nP*samUu5d2EqJy!_eg zP}<5;b!8bV&1&B?U57bx=#A|q{JYkO9DJuW(Ev<&B;ys#>5gU8!yc@Lx?{V_02~du zuOhaxx$I!>;74k^3ooyF^uG)5Z6P)SaK^mS-OtKTO!Hou;SIw`#y(Bt=RDL?ca`K` zH%O*=wbwrtXM}G_q&X`7;=0Mvp>3r>Ju`~uCXaW<nQ#ed6CnKsc6y59UoUS%l56Q` zE@-5Wp5|#kQ=hoBTrpn0^-RRrP(D%*IIZ?b-AEv-1Ju<Ct%?#(20_Lvc_vbsO;mw^ z4>d29fB^*Osii^`;EJ;xFZa$s><H^n(JxJk%^#TH0l@XEme7xsvttL0Q)W_Mb11+( z8nXl-g-}P$&0Kb|S9Ub5p*z<kWcD@H=>A=pSsxO)7}|SRIb@>UvRgcLYSpuq<!q_X zt#1l<dJa?4$5p4z<*c)jw?A}_)x-GHQu|R-q~H!g?^{~dr1sWp2w}*{W7@puSJh1J zKp>u#+g74UMkg{&zUMvSck_g6o`-fTHa6%_%024#u;JHvRxN>stm!tLy-j!(q@^cg zx|`O>e7NLiBfUcI0KgnnjJvsSN{{6SJ$<W{?RIMHnJh(=0(u_xHgX#s$9hP%u*31~ zNW>{P;ZLnXZG@jen@CazT4e3Gf_SSDGRUpp-k`ZaNEzmvYW6wi)KLREhsntu>B`Ey zspGMx6fAw|$V^isEGAH=Bv6(0Ou@dVQ>3YDZdYl?9`$-SWGnzdgWojGA!WOP&y}!& zz%{jRY%T58Ux_zmy{ZJ|sh2geid;B5fUP@FiDkK$85Mt8@Z^@0#znk??GgEi?%Y$N z)6dz{=Np3j!lL%{Daof~RF7$l9Chzc`BY;V2dVE??d(=S%gDjto+=sb85x1fj_hb| z`U#}<Oro;ekX6u*<eJKoSVhm@P&3}N=hI!wusmao9<_$rbTUrQAZ^E}&qGya)~1}^ z=$AnW3?Bo~)8X<mo0})l8lMoPL`N8GjC|bHPqM2@9DU+3#cI;9qbt8cYlMR@<*6z< zl4_?6I5-`M?N(b&l0P?Q;;r1&a==n8sIAWinzqkiYeE%=%ZqbKz1Z~}oKhfc^&}pZ zv8Cxce9-K>)*`c%u0U$FK8vBE1hv;b(K?Kf7c2SDmG(w0uDhJ`G^$P%xgM2f7iG4? z{qtP~vS?P&A)e{}(Vv)+#w#aKz0=tmJ7i+a+4CBfm#{&?+J9fw%2Bc2*v&u6Sr`&X zBi@@4R(-hupIWdj1do%DR*?QDVWB_+o|U1d>$f^1yq0nzJB_SeH*r<XqO*;}fP0E$ zmTwc_fWY)(YegHYbuHMmw=HuZl4%T%PI3k+#Ir1jpvSy}$?a6*jX=R+`PHj?Xm@Uz zimzY~dd|$p-egZAf}_eA?bsUXz8GDl=fo`{)Z2xh<|A+2;CHNO<hN0RMmmOi?S2tm z*(bz}DL0{?$(_c*o{2=F-8QYdf01f-oLcU`1KPjfmikytQ{wg8%M5~jWzk|$lAsfw zeKTIQqj*e@+H>NPwYG%1Ro;yhZE3Iz+lFNzVY?5fLtaz=00g|#JlK9BUpx%UKBq1& zk?^N3ayI(=*V29l_-6|Ick!2tr?v;=ip~d-i!s2-KT7DYB?|MBT3vn(HTi4kb5et^ zMwG77)xVmT>eELJ;xE~{I}7b1`@<SM_Igu5vFbK6O}W%BAg)herFloi{R-;O!PDFr zj+v!_EHT_(+xcwm&H*RAeea%Y%Rg#Q3eV$T+3&}?RjrhIh3uMC&u<KX9LTG<V?7TC z2Dl=lImKID67|`Bm-1IVOTwKwY0<x(y85;HpN|@MihM(2>l9K!_Iwp^21AVcRne{h z!$3U0YDpZVm^tJw&Yw!=^iL6INwQgVd$<@x70ZFa930m}1d&NHDdAXWE!wu`a$aT< zP^TuE)aBt9*H@&w0PXjipf#;$X?7xKRc)k@F;;%jHNELXwvKMQOA67KP@WZ4eX;zx z+N)Z3mcm@NZ9nV!(6ivnIj($5W{n($R68*pu(Y25JVOtLejWTr)o!6O2yd=k9iJTJ z{{UL)z8|d5sLwUTQlx)pmt&yEA#0BK8>K_9d<pS--T93S_qQSBelvnkHJqlo8hYy= zpTz$FA=};bzvPdaEM}hOIWA?u`$Vrc2Va?q{<R?|J#uOtHOaF~AG@4$+a{(8OOxtr z&Xk;+a^3EByG1Tti4b)4HL0gti3rHaJu5yH1-^d0vs;>UCjo)L1RT=l=v_6<B`(K( z;rk>yG#JRs>}(E6tDY>n(%vX+e1f-81snSjnvcQ~eX7lo1`HDk82Yb%D$k4TFGb8V z+uE$Qtami0s1=<_G_22MMamaUyBmwU1cFcuY`A3yBDpPJMqN5x_W20F{HL{bdM)LS zqoTBt-a>9-a;$*!^sMbvf+Wjvw=`0fq>;^tij*#oQutSh{1;;%P+5a>?_E(`0u&tP zv;G@c89W)L?vfSrV=}K}is&xwe2B^N*scNd0+Knd=<a!OmF&@+s-@0(BdM!)mgaS7 zvYuKmJo8o`O;l*hAyWMT7|k|IVQgKzvl|?6I#E@rD<ep?&1TG}v->=<c_ccq>-DGF z+aI?=tuu)v<Bmer$Taz`Wp5@qB*!EzUej#aX`Moqy6mzH3dSnhofDF=^bhRrjb-6~ z5*YL?Q&D+!2xAu!vXpK)ARg893^&?_o8kRpJ8LT+515)b?Pb<Bv6<M6qhp+NiuvdE zf6?ck!@8Mk1fF@d0Sta!=}(<U-c`?0Ub$!R{{TSO?C!2^QcW{cw7C02PpV(}hjNZt z6FsrVy?WB9r!B60*6!<cbXPj_=z87LYmVBcrtK6K`eu~biZ7RzBeCyTy2i7i-rrxQ zy??AMQvA?;rAP?t&eZxJ&b9m>VW1xi_=&W=cJ1#jrZRtMYS>v+;D4$(<X~}DZ!9l0 ze+fX$zimw=h~IvLb-`>5hV}=oO+_T6m*3c!wwi6)->HwSY7%Lh)r^AH&fZy}Szw-6 zl*;%VaqC>I)r>Coaq3ar+zm?W?KgL<tGHnFUrLr;68l@Uxw?+d=JG8*RRVN%EUBJC zpFva>2(>nOZ6v(AgGQImzIh@$;*9?Qce5JgT&_IR)&1YsQ)f9h%FbiNQ0sU4o~LnS zTJ0k^2|3=;L7WfLur(t#sF6DlG9^Hg0{rplD}TnaM|#Iou-5JlpL=r9EwqW`Ok+?m z4myn2FLn$um5+pPmnFFb)>BFKEw;35$CpovTd36Bt(05F;Qd&73Yj2VnHt5eo9xQ1 z<V44h#F~;Dfu>)qge}C;oxy<wR#n~Hmy;hgf|qi~BN!cUD=u4V{_#p&-uFSUOBI^T z^4mvv+jjXyzEj$(%)V<xTZD~v#~Pj#8j=8#m-1uzR31<Cq?8Xehut7`H8OoRI#X&Z zn`A=DQeC}=T8dcJa&X|E?$hLzcYg1lK4b4uvl6{BezYdmrfyF5K_ZiGK5S(1nui?q z$n>ex3|ZtRFa}g&nHlr42R!F-qf<!eK^nWU1=~INskW452y&hC$2BhYINCR7zA83N z%g<v;>JL`MmD$-9NXYdx+l6ugTpq=J>1IDLYz%u-ButRN;Nvx(#q=8_Sis=0?kX~) zA9$}hCZCh@W0C1d0PDA}V^?x-Ycd%&`HAxG9Ya=ci{nZ33(U#ou#D{b)|{M3NF@3S z$nhhu_ASwTjDRw08N-`>jp<a?x3T1A(p9w)+&=6a6YE<VD#nVq1ml5&gIaf5J74J& z`B8~31bfpS)k{JNJWv%RGAQ#@j*Z+`#$xK!z|{7M+qL%e{Ex4q<6jQBwl?kAiiI)x zYPl;SN<)vvw6xu1+232rWqXOyNKtbmIUsfhvgZn9O|BzVZOk#$R)T7}aPwV+v6W5n z;yw?yYu3VIF?C_>Dm3r1(D7=~r5RmCo2{!e>M>vGpJ~zO2Q#kVQcTvKo2Y|*_JD2$ z!O1c~DP6<3HP7gi4PwOHNLmD7KJ{C$lHui$M;HoU5d+5IQ!HjOjIUAIKAZmlU!l=U z2|~PDSHE80)`!sF2epN__<!+2?nRmz*H2K2@|I=+PBHkJ`G`d&jfjbh13aE{Daps; zYv}&~2Y5y+Z-IV3@rB*x&7H(Bx-3@mje#S_W7jqFzN376M>J;6W4K1H#$_roj%qWU zRcf@MN~CRWtF4kve7{rE$ncnYGO1D$zju9;a(}5-D7?lqe4$sX9xK!|m?V$G7WVO6 z+(9$)S|f^sz+Vnh?P9#XT-zZIp~n&)+*hDo+gq8L(ltgWfTI9njK2YiloYm4`ut8z z(=n$~Zi-h?>T%8BneUe`tzFxd0ER~7nxK3EtZD4>MdN)+R+E7Xs4AZMuI5A255XNO zCQ>;B0gnE)^%UsG4Gu-A;7b)Ly_LG?dGq)?Rh7KGOT{-@g}jllD5?_#`--jOJuW>T z!bxLiBZNiZo=$!1xOl{q?8j5Zao-X{MP(0AU4ZN8Yi$y{IOjP|==Nb5F0X=6cJ-+m zZO(CpPTbOb-3w$2M+l3PfCuJljlSopdxU_v;jm9ilaY{l2f3!CEY1!v2=7nw*+CdT zolK&>(K2o7Aycr7<$Cklns8KSntWuV4(pCVrr`pBH*@PzZEQ5{q6p%{Zbl(M!S|*` z!+gpni$64P$j5q<ag2pQmG4G31|cwcIn7rs*1bnG+^%__#9sxav@>fOG*Uu>P0~P9 z<=fvC=cI2Nn`qtC1Cw7t-s-wlqzx9SbZudED#eck8u{}6;?hk{<t-EU0mxZ#_qpP@ zt5Ayf<DxpDIZ8Hrm5aH#WmNsq95!lrWf<DqNd}NxupkmP<2fdw!$#~_D#x4xI@dei z=%sbBp#h%WM{7mFQ=P>6*L&g5iMGtqTVDR=<w#HWg?Y<=3kKsn;MGf{mg{S-6_bG2 z=C!9TR@-}(I#H?bGwDldl3(>@q(jb6O1YBFf=1KScdrca=fsoY)rQYexS8N%o$9&i z>t3U0;@u|Z7>U%N4=4xAX2HR($j&tt(>(8H=|6c`=q1`)Y7Rv`Scv006zzWfGg)(Z zn@O;ZWt&j8jWdiigCy2`9})aFaer@Ym&lUOCL?A!LspZEvs#!rUd|_){8l0_9_kS( zjkhAmLLLFfO5r86WM&JWpXNODHR%5U7Ol))ESh4mVd5V=ea(5?&Q?cIPfX<26?BrZ z+eY@&`qYMPq#^|kj!R~uD!3(&IO3lsc7Qq_b4)}Vak#slgVM8)x@_8BgBnkt3^EAo znq#ZEJAQ0>RFWc)LX0=4r28zaq=x*sqEgbx(&>yq4&X)~wrQb>Vh&C^ij(9V=jQ}< zr+>@C<0KQFDlF}BD-pDTh;GA-Q@oKQ?opA9b)sO;j>D#LOp(lKh2$Qmr7d?sX7&~1 zF}I+msX*#TE~7ceT1Ziw8_(iRJIYm&h-@%9`qD|<maVYaCT+lc#WBD%2~>3%H34QS zOXM8VB+-Wpyf)$aRr2Yeno-r0ZZ6=nV4vZoV$l-7WcJNM>$XGd>M6!wF+jr-JJWG* zb41p|a$It}^`*l>!)+>kDoA&SY#amF)N+Dc@r;^I`w;gfA2Q?)ed(Y{oHjoSVzEMU zeqTf0o~#QFLXN=EYdy-pD!9gv1hGF#H*U`#N-h}h0D_~`(r<CpZu(ZLcIZP_)DJ8- z3=d;VDFB}N=|LsP^`@*~xa-YJosjKubFh4)86D~tc7&)4!yIO(5#`t9Y|_aV_6qBb zry~ZEdgwNi_gJs;0DuB}nrk1F@!FDA!volL%`nZlVN?U_QnVYer4~>aKRD+-DY7U7 z2Mh;wsS-dF=NaR*F>@|^cNJFZ*rLW5&d|W)BO;orU*G5{?8OunJg+!3!2bZf57C>j zs8{Q_<SFHVCj+3QJ#hFvsZ5L`DV&2$5;o$bbsg(VXg+J`_Y^5VD&vmkhAw#M2U01F z&5oy&ObAX0-I`4h)wg4~$v>?wRQ@#gDzWWjhi(NzQIYsL_7sX<@U4$9vH6BE^HhBX zDnT2z<~;|kGF9M^X|yZd`3!a{%0@*tK+-o;w3=}NA>XvSw@jXu8{qZN*F027H>jPP zvKJX76gVC8O=e>m9TJ`tuiZKC$*5#mJfgYep0tzJ>tVF4MIlv;Ddc;af=PZ+jOL}5 z-yuO_K<k<v5<R?w>6)gS*dr@wK&_LJ$F(Ci;gT{>tsy04C3+sYr!Y_kdYZmoWK3S8 z6+)Adli22*tF=RJ$vs5}<;KyI?@A8vLB>Zs)4y`3CAg6;=E?fzmP88YX(v5Nqc7y0 zsxjW12`=1q_o$wqpq9FibBrFipt;8Ej=c>z_<S5^v7~ZXs-B+I<0Z7U2L0^^IQh1K zFnOkpyGUT!{V5!(aB_Iy(^1&DCm>OKFEUc*TaIv>x|QROIHm<ZHVqR_K_OH!o-%t> zaI-3t)aSh`-%&W&d!T5QiR88^3W)Hz$<8rIqj&`F+7AoTr8`Sy{!!O8DlJOoZbu^E zU~@`xV=w4wWd=N8mIu8g#I?CXLIQFK>s=S=u?@Y%ZQfvJ8&e*X=5>F3bfzP@P^@yG za7d=JfZr+PRLb&J2OS9{aK{I|M(DjkIi><xj(XFw81>?%E?pTh8<NfP1Nc(!$-&PZ zsmR!yDjR5~$%b}p5uZxcXuORtsbVn9pyY+e-KjoPj0244lTq8rkOw%c3m8(_9r&n{ z(?WT!><r+Xi~?y@1D(eM=}ic`i9f9=JaTY7>8I6<X3R^Ha0k6Sw)2(bdV@`2_>WUW zS&4xh3K~*ZDe54=$phx;QiVnVa(8zIg2DOdM|zC`Fa2pQ#&*=Tq{1J>nqD|7H&gVk zu2~7YoCe`ogU1!h>6ao86KNUYP0HlsHP~u$=TN#;f8BY6j0{(88`$8iuPa=x03;L7 zy)?$`SZ>;J{8XY)zbcQ$mo3R-*Vei@T6Ypn@3}3uB$XFF#ER(Rg)OY)Wjm!_d9HTR zK5#RGk%L`HKp|bHIT$>5rx?51`WenmI~5roee!u{ZhIPuoFL0*t}0no$1D%Z$0|G2 zG7`=cYXC+`$4b&s(@un`His@*zHE?r%}wNI8&Al4nuU{ZOyKqAj4@mT+ZZCE=p`2R zA|$XQxH#)kN=sy8IO$TV;${Uf-1Vk%82(jOlOp32fyv~ar?n;kVxZ-7!S$(8x3=66 zNa$%3a<eN80D5AQxGQu+Pt3bW`ZY@uGkmH?)wrg!U|<Xb>rHSR47Sg4TBm&i_tbDr zlL3%&dsl<_<7x4pso3wquXQ*^+K$_g8_4NiA@K^%OAi}fq>ttq5nMhiny<s>{{Rkp zI7RQfe_I=04A?cj`uE-|lKA+o{js2y$xsP92PEdYzlLX>MF=OAHOzc^$kjYNOFr2g zuF>gTG@rWHfAcx9Evl{g*xA+X?pxuj->tb3nFKtZdRLP{DT#5&K8C%*@EE=WPGTox zY9b~N$<94%#qVsH8aIq`-9a_nlx*U>{{S|QZ5wTQeo2waRz%$8v)EKoC>ddzv_lcJ zE=d@u+TZMJx>+{6bdMA#WJS4|qoX03{aswI$X5r}x|aoQ&>o~#2Zwf>*in?61|)-B zGZm60-M}3=uNx5k<K4nF%W|A3(tM+V?_QJOqYSz@k%#Y9%I(ilUUd_Nm;_#P#%t32 zFBBi}j#$qO;#nmG%O2cpIiieP(P&;a{HpsNcXrKh@vaS^Fl6cvO7tCk3t5!%H*#OK zdET>bKjC@X+s(Mfwqk5Va%;HPH7iYPLpK(z(Zv(_Wh7D<u;aabRvE?+jr%XhRDA5U zzb|$~c1!~UxDk*=P`E%{yVgFLsN5~7JBh(7v~h~Qm%eLaOaqKo&ez=1D*Lgg5#x@v zJTv*{YZm!=<Wo?q;ehGKCY;+<*|VJRXyuDxC#hlMESrBGwPpea08#a-JBMIEKD9Vt zh`2axWG-pS7A5Verk^_DhT)3PO;Q~>2g(LdEt=)-bqVd9@-RT-(x~b>q_+wYT$u6c zTPMq+A>LY+HSKb1>70f*>DRSlOv<52JfB)go8>$57r(t!lHxbXd;!>Zu1VD9X6h*| z2yg!Yc)32cTW(ZSp5a3k1pQ4os66MI;hI;uP`O>$qhr>bq;bbIkCI60XjMH)Irprk zsyDG>G~N&AlTCauBQ%l8w}D9N&IwVI=~>0tnKx^p=>x64<m6|Xf>7o69%|L8DFaB% z6Fe0)R%iLMo+?gR-Rdy?@Oe;Zlm|u|wt?JIHXT4Y7^D$yTq^*%!Oc=vGn3Ht&jwgT zblZ<PrFUgrk}=>{W29&+d1rEqXw$n8zGE8a{4`*+u>IOGW(uU|Bl53H_-%1#W;MHw zLe}RXe(GqS<pd7moQ`|BJq!N;7ql%l*TS9`)Ge*9Bbk)j$sv5GU_C3$(V93H8De<k zR?mujUOYo_4Z5_g9kDJ{x68Qt3dDUyNdfYs>0H%4)oW~T4YeI3Ob|8z9qOl>G>X_6 z$^I(5x9Y41l3(AoX6jn0g&I$@mSfRYp*L+xcIb?m+GSZ}-g+K;3dKc~7G`{g^sAS; z<j-v;E!7hkY?{r6;zv*b;QH08Ud@_CTz$lH0<0ek&lJFp2>F;)l1%$Bz+iL5M%Pa% z0ImS;MOQQ4=A6BU?PuN=Ne4Yx@k-H504hlL%|=>ud}QrC1}fHN@>!$*09Z!>t5>~@ zTGia7q}*@w0CiK2R+1v?DA@i|`XK8}GD@+tj2C{R-j#gi>+=)a(y86PYm(!kUgGqb zok+k388u)7J-?VFP*ii8&$@zUm5Jzk9<@>4U$_~zlhTxzV>PO=ek*w;xe^jwgPy%B zP6(u)LPIw_vsjS*p~xs7KAkI1PLEKT(=eE0&n!<hrPD~!Ce5g{+n$?Ql=L~NUrv%W z`GYP!Y4O`ihlz+E-X@<EZ8gagT(psa+ocI4?8%c`5yxQC41%K^@_DJmMOj0(KD5a+ zu^rhK?BE_jX3Y}Y&Q(N>$?r<aLcPnYr`y~_i1LRlamQ-)f7$!P7M6byAd+CQ`FeHB zi6meP4TqqwBGc`f2UU==r(EN$cE1d7n&aXdlu2Y{)2>t#mI?wK(s507fACq)R(z|P zJMO+q{sHeF@K3*q9vk>w@R!7P_iHSTF12wqbH+ExKIb3;J7T`b_;cgS4;>9w;>fD` zbL}x7zPxo|U!ULbPfr2AjJ_A@mj_(8(v6M$vY?(YS3Y6oiS1ua{0Q-unWX$p_=9D8 ztk_({td6&q@+w3^j#Lj?F%g8SR7-UJ`@O##n&9O*QJ}YSO8#0S>4IzL58J~~Pxw*S z7FPPynr-du>jZ0SIY}l)1UMMvjk&IxKiW&f{wHliPP2yk#G#Q5<@Kw10yP}SNbTud zpT!S|ege`y9^FZ0ccyB(g^rbVCBCCAv6&&2(BX!9bK1D<;^LO=+wryiF8BGPz0{`) zbE#KEqTjBL{+b`0dT)b#F{kME*5^@?nIYS46akoI9*j?VgILk@`%723xw(ooU=%>D z^N=da-`!1N4aT8;YkM@&B#$++1V(Z>!0lN&irO(pY2plXh25SjvOf%5ck(!9lD+!$ z?dU-_inL5a6`hod#FfYei6B=`;ok;$v&1@m)~z3d?`?G3SUlM;ZrM>vpFnx(S^ggJ z+xS+^;nSN<c^!$}a}Z`z?OM@z(%V_SmVXfH*EcfVLck<<ERaS3;A|XLypgFT2P=8} z{{T<S&ZSODa-U^&@=sfR$IyQcKW8r%x9sVuc;@Qb3mf*+F7M#eXCz2tRbsi%P0BNh z`Iq)$v>La-d+S@IWA^Lm)rvQ+MSc6Ne%L+~)W2q{hS3sTOIo_{{Pyu##UA8Y79$_b zPi+2m@h|MV3^05Ivo{Q}U46df$P<iw<e$p1ohYgt>DpY+P3*08_dEKU(x{_f*+u)R z3fJG_X}9L|`;U(GJtphJJ|NXJi<@V+dr8_g3_kK_<v)n1!<KRCYr6Qo;~P&Kd_dJM zH2D7j(QVu8=3n{f%19=-jBJ%~aBGI76dR9k!^`Ed+Xu}XTW`?61(}ls@O>+874p;p z!0B1m@&-^(TGB-GP!M|8EVa<|>B2n?Z7TBTOS*>c-a;7(%6|(FLteY#{bJX}b}-7S z(aRVjRB`f;!n{&7WK~VXsO_54(sgT%D&#y*BXgaBun*RV+hlddrz5k`9X_q5S!nvr z=h)H|GdA*K7zVQLS)}t@c{^h#t}|6HHHk0o-gd&0FaRAY-JA;6Q=5e?9?nKHk(%kH z1$5guF_pR0q>=Y$!*7IIntU_xW!Il&6}|1AT(A!657VW06Z|BJH24~8$t1UpzJDoj z52a-MD)`Kw5B?qLdVZT6Vh6WF6I?(gSccw5JmR|8KWII4+$Jt;1XCgNAX`wVf4WDZ zt7<hbYuxhvq@<KmvoWuJ58T`7zHIjP%{<St4LV2v07~Qdhp`;jk$B@smrc~n4-Aoz zGRWiZA4>P6_~m52F}2n8i-gL=R$N7v1P(S=&tDL=r}1}+?k?=!Q*7=@5-CRfb5Y3Y z`?tIPzav;qQj))+lV^W-Y_8DF<rc`?1wxvI!MjHinPdz%6Hxg^$|MeOdYqb$(pc8= zStOTY07=hEr8`R2Iw~aM<k|IS?Ee6!>HZ@4QY`PZ)t2OHa!VAE&9X&i=-#|nq1kvF zLYhczgqFIk+!3*6jmeRE<y$A3^6!9=T5JCR3bgMKXja!3vfJD}w9veP0>5U@wR-8* zrtl7zryK1PNV=Rv=_T!?z_^s2g!-J<r%pVvO~oD)Z&cX~wq6zZfnldMtA3hOX>PGC zy5=@iQ{UG(t=q2+X}&knr~bvg)kTHf;uoCUZHxur>{HI%R!*_v3!POa{>`znyjG4R znk&$t#ux8xBduiks^?$vE{G+cK#t<d#zY7#C-Sx_<2W60>0DJKD9f8${{U7ugp{n- z=4PjDZK7Sx;NJ?%er(b<j``*Ui7?s9xAm$TTsF5h7w}u9{+_tmG_5J}rU-dfHPC35 zx7wACr+;~8b7iN-!qORGak<!xXV<B&Pg}I`{*B?Gr9X-p9@_n;mrt3CPD2hsBi^!V z+C_g|M?YrecJ(<uYhQ-$RF%@wM3gXvE#HLa0FruisuvAybrf=mpt_U;`>2lzj^?x? zl{`MT$ID3VCuCS5o*+&=tDSuYHnoy#MG-SGO`#4L6Ot-<ZoT4~ZCs~yFmE#A;G|<a za)SZBl}>B8$weqIK_erRQps;|C9|l9%ZfJRBbutrf)nKe{W8RJS<79DTCEU~+`@z} zF~po;b*P?Sw6u(*WFB+Yn9=5Ju=!7|M)M=we(pZF4bNH{xRbt&QrHK}jFNlenxiC> z^8hIvl5(xE=Ku<bEP=L608ak7sA~E%PEmgG83&x?lSDuU<F!QWiJhdC&Ic5`$C;H= zv~?b|G?5Lxk!L$mi%0?KQNV^svm;=1>(;BgG8XdzR3|v8!Sgb}<}fflsCTu|X?6a* zhhag+H)D+Eo5tgiN4+R*_{TKqRj_#tmEd<3n_8E9khb7SQZ^CW){}S*w>czdBvPq9 zSQyF2dQI2~yp6fVH+JmEzgAS4_-=A*3&axndOXV@Ibtv~TUS6bl?)Scz-q$R+ii+7 zm1Xln?yGxQZfyjtKSqe6BSzmaQIT1?r-$KvVi|Pc_Se@$hE3Q<Bigof$lYX3rCWD= zV~Unz9G)-JZNe+;jo&_oxU1nQ;@2fe-_N(1=uodZGQ57{mAso%(WOXrT^{Bj<dHf@ zxo|zjK0D7cGO)WZ84D`lSFh>qB+s|Z-a28q6?R=7&UOak*4jci+)})^l1>u68SM5u z-f2O_Mx+lZvoc(&!xWLbb#I#hS5e`;3Q4YF4RFC^-G)^xLwi@E>AEe1NVwB&92_q1 zD!QExB(Y?8B0z{qD6x(!dRaYxZS7@OUfcfwU5qE3C{uBx8zZ~Z{0nbk`ylIjQWv?B z^3GS4?!hJ9oN`B{c^`-TAz`Q4+Q{s!bdiPf#9+tJSJA#OlIu$N4w0#Kmf<6fn~a5a z$^9$Do8)HzaH;?%zJjGF)}OSRzOApFzsT^Rh@CilI7-(^Kg?{zzA{G8Fsh>ge+s2{ zfI_Jofab2q00(mgTxTY@UlRO5pF{ChnWWoj52#0YH%WE7YR8XLT{=rdDDyvr=?L3^ zPDwQt(-3f^l4)R^%vqW-8OKcIR96mOK&ge`oQlTkZpn!$Cw68}C|k(kW^9v^z<Spa z@f3M&Z5pv7e<iE91>HbyBnLZ>wR!Kv`To;;XCC4Sn|I1_k&bI+6>Bn^cln<}1ucV~ zDXpI{6xq*JaZU5nX<)>G+Z<9mnGlr+2aNmIhSZN%?QA|+$$y;l)MKRqc?t*~xu!Gk zDU~N^>}p5L#29?Xr8Rk4`-)FN#O)Z$)NW&xC^8>xQhDA|45Ib!X$+~1?Fw_6sa`6< zW``9bLC+m(rl)x_TFBOr`S%KPA}8-vfE?wS@()T;mCGuHC-{e2HIfG1v^+<~TE45T zUq}71V-1U7s>KdS!1X@0&fGxE#2=M=3in?Z_)aet>7w1Pn%T3E>b&N>d&FKD)Vw!* z@ZLsR0C1NIa-@6L6x5*o?Y}GZJ88*160`oSWJTsL%FVe)Ox2cfaKmeH$fkKiZwK#m zAkfeNG7*Dd^*w6^bEZ#GhDf3v8A%)pRf(7ryM{gLxtypf;~w=D&@4Ab<n83t%Uz7z zoxR<O%wimg0GSW>g$^K|RB-}E6m{=VEz32!E1#7|e)S{Hg8+Bpgs-K9HhXBD_p*jL z$luR2=<Q?qe7KPc@}ze9RdQsR{{VG2%Dn9&pEbiOFb51enk{A)S6-%t#m&|8=67jX zS7;>Xim!8QV1Z>~IXEJshIGPVoH6QiPq~wR6FCR3dTLzSUgSLra_nHh0uOqODF{hI zanOT`egaI$+;^jQn#biKM;Rl7TRA4|7QU<c{;o1cK!H_u_svEI;C7NlOC+K+eg<)h zhjs_bN-w2lXS*%z><<`>WxMpn5g8s(zbPk$&m2=EB+8|Z0*>_c!p|FWK<ipN+U(6m ztr%^Qmva>0{nb5aZorN)QN^6#<2>_HD9aTpewnIUl(f-_84n;u&U)mIDfd`LEZt8^ zv2AR{gCnQ|s<l<Tk!~M&`EYT!JXVP-XhV0Bv02#QW7nys`D>5}4T64RD#3vQb15y` z(yIv>*bRgxdgGeS%ao^S5;|`qXa&8ghs;$ZsaB_}eqOZiIAa8o4QUx&64?NE$lTxz z^&+O0L4a9-?U73uBX-;zjx*A$K3VpVf2B;C-2`3PAY{+XarLLVt1#LQ0M2S00^E)V ztv?&2<0Fi5P~G)xy9A#%C*~gX0#$alPaGNw4tA4|dSP}e&u*1m$-N2FWGcH7dt<#g z7bL$;r>!+k^(5mzT4)F6$9`(%8|+s#v@AYD2Q1C?;+Pxf&T<VYWnis?pF>H=B#MNr zP4&1EvaWY=(x7D^`i{n=!2q!!<D65_tb+lv{Yas^l%>#Ppek_Krkurs$7$MgM3M;Q z+Euc8dr`PZ$1FarP3gFnn~hRkcpXPlDl!^21cA>Pscs_;!EF1jG{zKQ=N+n3yR$0k zv@-x6xy=N9?2daHat>H=>-41?N%bA;N2bOyZt1chpqz~UKD6mr#7^Qt>J1V`5%=eK zJ%Q;-Bjwj8f$Le%T_gQ^l;oO3XiTq@^JBdt${t1l9x6qUu>hP7xT^7}cF7pQJ!+QP z7t-U|0B<vE9Q*M^fRZ*GigT$e&qGZrZ~!>>slKk{?6wh!Z@th|JnucD9<?svyJ;k! zT5OD>GBe4mw_=eOKv*1S(xctD@_DCv^T%pwD0(+OwGvHgCeZ|p%^|_!p=i&Z2|qC% zF;mF78Qgv8tl1o%M@o9?(Vf!RgDf8{`O?Z+h$?pu;Lyh>7$oP6(#t2x2^c*vDCTNh zuWsV_wh|THE?kqrz^KwTC9-Kt5;2@-y($Jw7Gm6Ws=RJhn?kV18S6@suuZ{BFLEeC zLxYjlwQSiI#_3#uMhHJzyIJ1hCuePuocRg}P~N$yww?aO`qSK$KBUm-N-5}jipo$@ zVvAPw6d`uvi82_1KN@r(Y{DO$)O*h2vH}m*qvCf6rbgrz<EiUQyZ2!U%Qi^%rD%gn zst-LgPZ4a%2QAZ@=}$|sIXAGvTL6|McFiQH8AB3zG_nyIe8BK>K%t7tLFe(Mr$b1+ zG$D&Q!96<~kP;;1WFC~P>jNoHPkhoB+)DrkXtTA+-Q029=Nzxnqbe1EBPZ6B%wx_u zG%+o-w^LB3cd;^e^%hlb85cO}X^O-!$9~l21P(Gs){yW<cs`XfVtNS2aUpo(n;9F5 zka+c_Q-*F%ds41lw-bUmtrKhAWN)e_O^iV20MyE-c{nFN^%PBmgWjZYBvLZUf4mJT zT^e%pY)V&g9DXLEldmTOJ!$IZG65Tb9nUoecgR7=Ui3IS^9xi+Wf=hE<Zw?)M&#i- zp5l^52WT1EI%b_2!<=#r9L;De_9Ts1F492+QxP^fC#^dtc0r_hgLOR6z2$D>+>*j# zHQg}%-P3>x8LsD62kp|o-plZDTpf#s*EF#C3NBZrdKZWkL8{%Ns})zk{A<3HUn%F+ zPBUql?tX03R0fltrhwTauj5Wd3|n&r_pXNY&`}H@F-oxqIRsZv1;b4qHxh6;>0HEs zB#P^h0p!-aa+Od%W7{=vYa<yn<Y*c4$8%)kB-9eklhlxEA|1i!iX+b;kVprDC}gOs zqC!X+BxBy6BdIDCzF<M(p^3c1hEu`DGg1>0<oRvCpgE_?_ePR>SY)5QJBi8Xnu2LO zh6FC`_BCLsatBI+a#B_U?w?WKos-nXYoNh!Whz4LJ?Rh3a6=a-v8JmkxabdhmD_U+ zah~+s>W0{g4&j{f-k%s*7>_~Ln5xCjNJ2kalr~i7HJf%4)M9*_v(Fq?kNjH-o;QpY z!!@e0&(^(wDd6V=-n?((<jry8q{@}qYOA>PG^FmG{{XE~--PB<)B4=A@XRY*Y7VW> z8<w!YXb2cw_+{Bjs<SpvpsnAA5re2-E^-P3SzjJQxzIY549oe})RnEF%ZZh$H|BM6 z>K2lI&l;ATB6)8ly-T=RPBF(d<Wk$b+I76l3gF?hUYxK*o(YyB9aSO&E7;<s@K?i` zd~@Nua)p&7y89x8UCh#BiaGgXcisLsf9LlKoHcQF>2Ja-^gNL*-YEeJOl0SAt1<y1 zWz;vmD`vw&N$&MMEpDVbhM#oy)7#Fw9yVW4Yd=x5lG0NXE>B#qHM5o8yOiT~bo47} zGORk3Tx7OIbaG{FPyxF+&TE>}Ky6wubMoZZQn7(<jLbplit_6_Gt<JmM%@aLeB^~V z`q!iQIT!m3s+_YiAB}nXMp?250QWWM9uHNEO_Lwq&PS~jB>9c;-t`4zk)4zN8XnD; zZW7u(!21K5^lfU%H7n`#*BHq20;=N~?_Oi76K(O<(sbJ5SXDxI=uLYa)y=-PZLW+> z6vOv&?Kr?4E9z<6k`{V$t-r5R=Wl*x)0v)6tl7(>YLi(>pWU1*5sZq<kVsD4;Ac5C z+IY^*Us|}#hj@rMEzWW2T#PnzYntAXqT0!e{aSHrY@17Ei06UmDM`4$Ui}5_6ccZz z-+hw%#g1>?jjT>N&MEDB+kWxIdY{G*h1&0felzJ_1h~^;gY6nTcNX_B@Fiv8!S@_j zoof0N`eoeqlS0C1Ut=Na4HWBNmrc@tdb%}?qf++n*WAjH>JnpgjxfXJ80k+<KzSjv zwTDt_jIkJY?^aBl07hx*Jkn7hl1@7<T&nA%6_Z1r{LJhRE#8pGq;3uy)KpJlaeVFm zhj5bp-Kw~u^gUJWWJI%)J*Y^Kt~ylfJw+9(E8JXtq0Tr_&{bb3Z^`9pu|LWf_2^H% zNs}XSSh=|9Z*4RxT?NipBcAmvnITE%BefS1s&d^0J8%OyHH@9z>?n01$<Io2u=4N@ zA2b%v&6;YTm=ZHlElb#v6(EmNI#RL7kOT7pnt6sdQsZ!8+cenXG6!yRj+HB7B<{q6 z=8Tef&w7enF;jz@y=7{z5!`SFdesZ(`M~z=Qxw}Umi8l(LfjKc=a{f|?iuM#Wd#8p zXe6@*2u~erXp<#%W4_Wg1La0Du}B98*19QmeYVnM$O|@bkAYk^pL4Y%$RHZp^UQ#5 zCjz0TC$6SkmTtwPc_fm_JAyOUZ(7lhQMQp+mIRJL6^Cy;ODicQd;M!lFDrq$Nj>X1 z>c@1nWuvIVfbMO)jl6ZL(_cd3Oyq#4lTu2tM0u7ojAp7#ZGO!*MoC|nnu~R?*K-Eq z`WCj8*d96B!;@8QHAwEGEgVi1cVUXW?+~+`Jd4wUdsRCl0-~pxxE_={$8>84c1&&- zQGf^-q(>3~xE;CaO6CM5RQ$uRro%Ymo{f8^+_%)RG`?8eITaFKW%8qw(=|KXLmVZT zXOFwys{OXxZs4q>^aNImO$-`o*lSL~N!l_Fc&G-UG38<1>6*J8!~qMDoz(bErPQiR zv`8D~BxZ=YY_%oM?8>^jmQVR-pIi#1CivNzkghwL>RVFq)xKmgUEY;e`9kf<?N4oX z&}g=nx^|ZK^Go~7nJz$LN1&>TmESp&lK#K1R$<#*$nc;ek=#|pp70IEJ*(K$R{AJe zc3ZLy+^Of9ymcQjf7G%Lop`GFZE)wazo18Ve(<8m%FCXCaA~qha~glVa0V&scm%vg z@9$F$U+mnpCviAjjPpsQEh1D?>R!@ey}3q_lz^*^#<TBI;cbdXBN;j59`y~+iLOpi zMmB+hLB}<W{vp&MVyWdY=Q&<;PBzgKElm~h_OE3e6JP4B1-bqg8D{!dLGaAnCyg(z ztThXW;Db$_=0-br<xOxCYM0k1e9gJK4oSs#KL`9lcV(;VsU?&**3xMAD8f&b!P;@p zr8;gdaZhWn&3=asXEjZ@t!)1QDL>5j57-5)pWzkJ)U9Wh#%sx$mN`0&$E{t^wYJc_ zS>pMud?ROlV{dW8Jevxxc>32d`xI*nrTh`LcZo6fnZ8ACe(~bD{bKL!J}1|vjL3;` zb-9o^0OO`bXN#A=K3BZI%<0SS=}}K#b$(0y^*yJ-{yK)j<5sxU?k-nN)S_V?pQp?j zgZegmdsiFdomvF=dv|GU@|zjA!qBULN1#5vYl=6qLo&{gnB4)~dsYs)su?uPw96z- z^RUK$5ngO&`K<fi=d&6rF?!!~m6yZMKAMqQT09#FK&Oy+?O8*>dYqA&Cbc%Pj(o|; zQIE#0>YB;Wv@|O6>5)45ziOIKowNPbHRad7K9*EQjj#1Nmv9qb&+;C4`9*f~B^#$> z&Xjq*=)3-Yzj@yO0Ky?CxMbfMLD933pRHS84nu5)DGXvjH-|kr^{*Yc@sEh^_q5mP z2xcrJfiM8<D!lsct9!X;zL}BKDF|`EsEv2cYZ^)kXwQ6$;>Ev)G;K>o)F-uo&u1)l z>uPXGBaQ`moxjFQy#wGamxA=m10Jz)b303R{CRP|R?T_*(8OFZUGf2d@5vO=o=GI} z-n5lwqOIQl06Sat`^bb6l9JskFTVc(r`}Pwjcg$iFF5axr@5nXEx7SkBu)lKYP^w_ zCmbHt%WIuiRxVoHV>zyZ!c~$L0M{!MF@D&`IpVKr_a@4GV6<fO?O4j4^*Sil<aU<K z>J)L4QTdGvZd2FRr-@eLA2AMApqT=xVV&K9sMkhyPD(>X$yWq(^{v|*r#7VS#D#`N zdW_dK8OX`&S~iy-AOo)8KU(O9uE!;7I5X=l2UnWb%GFe$Um-vabB-%gKN4O$?voE5 z+zq20E0VU5#c6J&ZNy8{=~iOCDkD*nq;$=0w@t0g94_@brtt>Jl2~x<)OnpoDpc_` z&ZirfVEc*lK3@LDxfZ%;z#$d$oDA0g0EDd;OA#f>B$p?H+OnEZ>Ku;uxi!Pvu=3`S zL1FUl6_=@7%N>ovTf%qaDtgxS{*aTPEPh_O^sG~7aH8d6ou32cAo8M$a`)4*rCWO@ zmt*R`g1>CO_&cI$acK7U7WR$jUOlXAfr&rGk81R*-w#WuyIJXJr`qX3P2~2MQSj1% z^5MHzp8O!!bzk^Zx^0bwlg~V|4ber2{J=&zZ%XP_^++E6!aWvb)U6a7%*-T=sOf|B zuE|qf@8)=LR<ldgkHgw-mtm)CCjRV3>QiK~I6HIq!jAZ^p3d*Wnoou`H1MvezfpLE zZ5`Z<?0?`MwZ@AbDetA!^vh_?;sUL2AS5HO<bhG?vq-Hg-084f>N4R?)w={Ej+muV zbt>$?ulNShO)Da>(L70arO#~IW}^+GIK7fdpJZkFF5ge3VqfXET6Ucxy@E*BYz)#| zpe{f;`CIE#ORlz&V<oB8wK*<eMlWk{Nr{^$XwRUoINa*G>=w<c-%l_>wlsw8LC<Q3 zDJc1eBGtVSF0FZWs>-i%rcGlDWW>`U8}Y{#n%{5x3@c}F*70P!`JXR7)w^k@oo3=I zYpqWGyqKgh8>@lkry0d_*D_6Xu?d-^js@G0atS86w_MX!@;A1wEX}jOhfkLFd8{VX zrTaNl0$r*Y^);7mGER>yYSA+Q!84pz-Nlq!*DbIxA*&_)iI|9@+7xZb_N>!yaoI)L zBA=S&+sz@{pvM@fq_>&?HjWsdnyw2*P1{ru-`=Ekl_OLmE1sF6&Fo)WqJ)X_AlyJ) zlTrwg!6HCFUtUS8k8XElmD<ak3ao9GH!Ktp+=@bNyOGA;YAUJ0_Z4665t%{Ualr3a zoj_0k$sUx)Oph##FJ6@vRx@NJ46T5>&#f<%U2p+fwvh~Bcu+fasUlsx?O-v<G$~tS zRj!E?{Ev`=O5?pKhhi&63k>pV`B38roYI8>F@Q&LO{?v(9No$raCZeKH5`y^R%RI$ zrQ|4VDwI*$qjXt88QX)wsdtHK>3-%6f;pLX62qo3-nriwyf#+Qtn;i2SQ2F56J4v? zgmBr;PIwrvD)`!|5wIo8BDpOboT<$%Wc1aWQ&Ia*L#WbqJv!<Y^0f#gCjjC>#ayzI z6XR9#E+ceXUUq!lPpx<a7J?z=$7us2H_XM#o_>|pczaaW{3IrQ8ap{;lx^EF-GQH4 zP;$Mc3qJn<G<uSyMl|`MSDIQ`A4c0czzPsqn}Lef)8c7Jb%~rY+B5532W#<{$Cj5< zLmr)@8A|P0r){8n)zR@A#Xcd_A+^<S28RSrfn?Jd0U^gHp4IC{6PD3uk5<uxsN}7- z{n_*-uIO+YHbM_Mu7=5nmnbe!7_+&0*MR7M6ud{I*hrFD$E@4MD@HCZW&%Pxab13s z@qb>t4;+3Pw^>W9D4uX_!2baH>uO7yzazcx*ypWH#*>tqwY#5Kd{vV0d?nB#jf<qM z7o5(#;4VdY<Pb_D3$>m@*J#cwyZxy3?-1x84?GiXrfB~F+Ed+KqFh@fn@W)$M?YHm zU&NmiJYRdLT!}4i{3zD%<^7t{Ws&6pc{MRktRWh4yR+NXlU6>>O03?OUy?nlSe&Y{ z$QeAau0lEFxbbxR$eI}93Ki4k&pE|$8aKu*d&72;J=TqP;)t0G!qdvJI4#<U{xa&y z&38Y5?%=nQRfz7pRyZS*f!ew1#ofQt=5J1%q@vT+`R{B007&%-KtqtKsz(8ORYti8 zjvU~ejN-UEpNsmk4c5O7b!&*h19C8B=Adtj)5#f<ZwKmdF#GWB&JA<Aw9?h;cf1ZI z#{8NcnI!;HcNXbhaq${>-^3P>sZ}v4%J;6jLGdNOiXv%XjqM-26Y$Gkf8+gD&fCP~ z-p>`ZB{uo4dyjh2%JI56Cl?uV%TMc5>4kF>;KI94Tp9?<uUt|VGss2>IL>`4L60vd zp4?ZK^>;_4{J^jnJ5S?4kwb0a0nIgoFkVWGVD2=Gpb?R}lD+gac6$Rw4&#LkPax1! z&H0WnwBIxUM$`1ECUhtOTpwyAuIz~BzN}_9ZEiU1dQ{GZRJ&w%#YMOGU@<?1Bdg$( zDLc6NxxlApQd)|{$%2EZ=}=s0w%Wy<+I8$GQcV8wx{8%Cv<^do!R%?kADblS-ib>3 z0=#Y9@m~^n0{6oYyu|kwq_71?A$wOocQ_$WY>N6SWlMsoIA;W4sppFGuN3?<yf-HQ z07+$NKsmQ=39ffb?M0eGw59I8hnLS0T#^YM)m_SvKt>G5t!YghiEzm4v9d!ee+j4n zC|e^Sam8{wE~j3pSsA7`EIJ%@2a0<FvkrJX=hCIQj7r6j9jCvgMu@oEoUq{Lmon}f z{{UX3hIWCm8h{A<_~xT3rC6~$kF7akTr!#2NjM5<P#KJDLwZ#5J;a~dWo3_hdMFtt zk2~f&0aZP7R)xE4K4e7`rgPS!HnF5+hJRjprjx#dX*~p+4Ip9Mb*5yJLlcimbfs2R z*g65$nIidwllOkLNvUo}HTUR8Dv-|2-0_+enBr#HliPJUnICehldyf_c&9(isgsrK zReLQ)ozWG>*&-pAEXR}SOe{EEqzq>?`4{Fm=Nz2VNGu5)P^EDu@2L`<%(*yRRqIIB zMRHdMJ!+8N%D*RkRr`0?jk$1Jv8@y4&?NLDGD8tyr0>sqfye-E9G<{X#59ag59vzk zNCb15ZR=wvsS`_)!i;y^d8W8+yWRd@ts#r|#4`pyl*bs8Ip9)h%R^N8y+;QQyd3k* z1|nl(qdDtL4TmRhCaf%~10$ZJw_0BggvoO3MH6KR3%Bb`Cv2Q^?rKlILiE7zOgy$2 z<LD{sx|7r%OfDOd?Mwg=7%>f;REj_)dXhL58!1=882Zv{m3o@Jt|{Fb0#90MHsHa( z3M7P<3>Xk;(xC(d!OvQ#tJySSn&>eXk&r<36)7Qh?aw`pBSg&zXCMxl?r6x}jFa37 zrzf&4yY4(-H#~Y%CL5R(=y@WYf<VuDX6>?J8lCR75_;TKBLi^GXks!LE-^^1100q= zhZM0ARr22{=~>8eU4{PuT&_tz)m5TGypmh4<I=2Uj~O_mlLTTl{0%n$0F)G(A%XY+ z;OC|VIkLd^$E_+!x8@@a&<{#u6C*L?XPzqTmcvT!<3r;tI=2+K!!aj{5d$d%Q@;5e zVySBN2{+Ja4g4dotwzs=^*O~z?X`y|nv4Ks1orP))K=9QwB@KOmSR976tY_fQ-XSO zed)>!jrX>Jl5^gW$X5jC9XY9TceTMeEk==n@{({n(;V`>xaOU>FB`Z$O+g?m<Bq-Q zKO<j@aTxE<zj|Oocs*&w3LNz(wLPCKILYp6+q=0Ex_S^Q$Ywwz-lXzs7h>|ZPy{C! z^s5cHoPt31sQyp^-Sc<PdX+n?4pFwGCAPUhG6?TX3%Rm!p2DS)RcT7{3Ga%mREEy% z5z?BAxd~~ugV~F=0)RozY9`Fhf&d<-gO??lxio~ROml<lRPVZfc$VZZ{<CgyI%cLv z-oz_$NX-~gxlUWXIu+bb%pX%zy3o}%*I_|Xl5%lY7V)AF0>rG6uikE=qE>CidM}|A zib<3M)SOd{rMokdPS@x!8@cP#H03#L=jC35)}wX^d3^E56!is$)$8j`SrcmviLog- z>)MBm$j2NGc{L<?0f`wPaZO2srdf6|9P>r5By68lM1aHzZbz@Z0G4d7cKgt>d4z@s z2c<X`Rv~b6*wuVn87JfuHX|ev&lsrHS)vSk@qtfu=aIFK<wztOusI#Rv_0&LzhSKw zKu|XjI`^gMG1C;`F$V{adTvJM0mBk{Q<JuaX}6&0V_61C2R!m>H$@VVTfGm4TxV@J zjAN+Ic&L{t7k3`c%^+1@m$^M?D!Bx)_u`Wzo(?-?(@)AUPT}0q6=qvvZySILTb`zz zc82anE(D}w=}90dCevEKdt#NAgzx|tjzI2eXkA^%^zTr^j@<S&F-Ad<KN^K*fyjAO z8FnO|n5avJcEB_%0ylG-k{K34RP{c!daX#awTRrQ01{|GQ~)^t0BF)He8e})kVZ{C zNdPHe;d|6c>MLDnF5n2yQ{JPNE#n~I)8s(N26p?3Qo<;=xx)I?Ue5O#e5{0ShVsFe zCBD-iPpx`yiNij*bR#$_Mt6NH%u?VcrDe$=TrM&7uTk-ljr>P;%kwT2=ciQ_=~8!A zX!Gi8J3s4V8eTDuPo)a{o<@BsfR{WB8aAphF26A~y3=C0Y&bSs2f6QBk&+-Ijm&!b zRwK4$z#!v_)wM0<u3L_4TPLy3*HYASwiIvV{<S;qDur9??^NPIBm}+=am`smOlmXp z4D&*ERwtUosViruDb9C%#Cr;8<R4MZI4&arhzGuCPoYiUQWcU|{$dwAj%o>=n3p52 zYE~*#0@!eI^LMCcMlYSf`wo;giF)XWcPkLs&PE9}I+azx>F-MDo?75w^O7l>m!>_9 z7wBg1e<9n!1RVP0QpJ~H%N^a#H5g=MahgSuW5!sq=YS}ZD3j(AxGY&$rxoM>02X|< z@tkeW^8h&ZuU#tcGlCZt<KGly^Sogh^2(pHY{~D<MD}l|{1kT3Z`vns>dd+D&4|6d z*m0B<L*sq9dAvMX7$}j89M%5-hCrsFdIxC7CaZjJc_y>b*m7f&t!o`xOZw2y5jD*D zj=RIQ2IImv%2O#UI1)D?99Pu;0Ps&=f>+kR3obQ{Zo)`qpTtK|u{Q^ng+?+5p*8cb zgRWM?!d`vNp`HhgaG>|crGA-w3)FP|PvJL)rPCA3wOd7xW-+ygQTfzUs@iH%()<4a z+pac$DShdjvWzM_b<^&;m**6Gd;4wv&VC}$ymxW&JHg%^hs1hjsFB-idTq2=xru?m zoiX=^uX_1MQ}A8vHxY-hHccZGbeLhH`h#D!nZ<ks`(aPvJzvGw8l}D5Ndy2|-6gv1 zV<)d2Yo8a3YOFaDP4DM!zOQ%Prg{?OsTWe#mY$9Gx1!Z`)cBtN084!*Sn^~j`#JLz zb*Wxe*`1`HTANZxf3}H%-grNPNh&*njJd`RO=C8tD<i6mwAh9j0hNSmb{@vN{{RJJ z`!-_dDkkIUUUg)5NVxT{LhyI|gCtz_l$xp*l&sA$O{k`hBg77i@t;kWV#@-M8warl zy*7Jv)3vEAl2?gtV+|X11oai=zBX8g#fx}k8=0Y5Hj&0Ft?>r0BlsTEScSJ;>GxY- zX~|Sm)czIqIA<3a$88n8b!+v%m5-mBY0BLj{{SNAi$TAJ)_IgA)wwIX7%ZobYtcVp z?Giix0NOV~hWqUDExo+gcK&jPV#|<1=b-?K;<X1|R%E!fj#=ZlwprI|<Pv)Rw4V*U zQ8&WRjouIO5sjkz75I+ha(~MSM%Nz0kZ6pROTlY&?cM1A06o5bMs?FrjMsSY>;78# zZhnXSfA|)DB79Z&UE)hfr59RN-0@!BMghgMCUD-{g?wfEVfb5C_;ve5YD;$*9vjvz zBfQe*SjHL062@`d9Da5BPpf$IOwzS44cfKDOuFohmeOw+Y$onKbI0dj7Jl9z5p6Y3 ziaH;LqqB<OXwVraxNn&GlXQ#^V4$C^a?z&SPEq?hKQ3+U{{WKP=3C_EmoDwA{mFh- z`Rm;Ip2kaw;79us4Z|bN9jR~N)MoO4@@-*WNR38Y@vAF&FWQM=<)P@9=qa}V&p<H0 zie|V+IoNmuHR;C4#mJ9Tj_XmhiaBl?2vzqx#sFeIwQ@)xyV35gmf_91#KB2#o|$@J zDIAj@DPuXy9t~+N?UXjHdprtlRD8xR<F!@XlD9(K?IXil-5_^_63C|ko32GNS-hST z?|Rkm6<=E1>ymwj2_UwU_kc;)C#__;0Oh*Zoi)nak=nizIb6*7Z<v!-+4kXagH+d< z167wBhU3@PvgTyln_-gijN|J@+_q>`2RY`DjlJq;ZiPnga%hy3k}1RhuE6p;Q)6ZT z0n(o;0y4t0a%Eb`TWQIM3J)f;?;N`v_3c*?nIkH^4(An0;SPOi!($oQ{Dz}sA6j^n z#@WVd5IN$9W@pA~%(@%aFT4TJo<OZtng0O1ao?Kft$t)uTX7s!-RxuCyOrzBLzbp) z`<J7c<hgOlL(rPhg<p3rdU04*@4dIH9mB0?t@(%z-22v2cQlGpTAB-Ft1C=pVq21= z({3W%hdhjQs)G4s4bLW_d$|B0<gZX_8@}Uv5Km?#wvskqmAIs{vk^wBG4k<MFJ+Of zALk=2)KqqcM^MVguUz$^S#DHxdK(P{Xg51;&vQ<W2(kjWII0Z<vLM|f6Wkh9gqcYh zQ;boiigJAm#bRLjZ~z@?UL;+lvNt*6pi4+`iCCQQK&GafAa>Yy1HzJO`O;evx+Vc0 zQSzAx{uLFfH2WPaf2B$i;nR4HIV0;?I(@|2bI5Wdkb)GNf_R0+!`wWZr;`DgpGwv- z)flL@?n`xZXf87g=Zt}l^yJkeyS7g;g2^61Bhsn0pkfpd3HR+$yb+A5kVrh{v~?}+ ziLT}JngRpw>r<`dN=PF(?khE8g^tbY-TsuZeVAOTG@x;u=BD~wwG`}XeX1iT&OTgc ztyiB`w!s5){VCFaXM#dV2|a3+%odx&ETAWK6;XWMM)c5Z`ka12D;ebAgH;64$d2D< zWntfUTC%Thrz8Uz^{B2jO)?3ghs+?z*y+V5bo3_nGv?G5*_1uGY@CCd>^>Lxg(kc4 zD!q%QG<$~gyDtY7%Us^t+ss|@B7^dbWLH(;FBWN5-VO1+vqH&rKAj|SxEzd*Fl$O} zDW@maJO2QQejUzQ&z=qocAx%|&ujgQJTs_jUjr=SwYBqIWs-gQ<CZzidC!VGd*ROo zc#p(zYnr{hb1lo^7m}ybit#@T{?dLt@HfJXZv}Whf9yLcQ2nC$j_G;o7v8+m#bmc> zrMa248=2U=v)ugb?d#2P)T!;9s&99H&!?TvyeuU~oL633TjaO@03+y`el&PATeakR z#Me=@WzCW)4&O}InfQ<6UbEtO79BdwX%=n@?wn>_y{m?MfMg8ljKE+pP%%xOP2e_9 z<6PX2(DY?BB-(w+bsMYAO5jbXU(cvYs3TuFzEn}z3W&;B3>;KaNuE^wX})ON^`W~X z4PLU`m@^jnj(DpHCIwM4XStzC9PY(sb1mC!v`*OzQ(i*V5V!!~)Uik(JaJmy>f={J zDcz82IUywO?NgNb^V*gF0M(Tp#XXT*nU1+`xChpziMFvIoSwO*BXA&7V*s9bs=d*s z=9ZtU$!l-}1~BcxT=%V)x=GL#;<>OgGAh(El*grW$zAGgPF$+Yycm}wo@(8zWziIp zORi7jP@q%aHLs*-e`&al{N0<KNCWF#6#gX96`<t@W9ZeG8)(VS0;>L$?=?wLk}xrv zr?{2cM^#V=sSuoyNd~n}>3Ie0%h6>wGaQbfn(q8HU<QkB$qO)WNY6uFdR3k|Fmv+c zSEA^0TqlP#^;xnN2`k)I73BGE_zBc*T&QKm^LZvYL5sH9rnXa`wFuMAXG{pUV?LbL zl(042PQ;VAe-&a2h12yj45nW#@EyV64AoJ3*qX5CgGbq(3GnuzW8n`9MQAKu{_+B* z&3M2AA-8rkz8BQB8%;)AYsZGh=JHu0XeDCCK%<;DewEDI+d-jdT1@tLf>~u%g&r%M zx~U)C?N=?XwJ!`Hir(TohqHaw#^47ex8BJ$(Ea7gk1h@>?XZIE3Fo;I7-vS=<c>4W zI`^yAvw2T67Fr<GE}SmIGZkKXus+o2pt-VZ9a`q^MBK8LnjiI&ZpU$1num>V?&Buv z@-}OznIJJku@*e=N4-P6M`*nRnZ`cN7<#^+b8^zc&<j~cM6tA+ut%j-`!x2t3^Cfr z6w@Fjq?F?WHEzPfN$r<A=5~KA9kK&{CZK~*x6<$Cwbd3>fW*O}h;Ai^O2xG)Z?M{w zR;bFg)8W>j9)0{4pFSKil5l$9)qPeN^m|zH-et6d5wuH?NI2%3B(O3xhA*=tu)-b* zs>&_hHbEq*8j={d%m!&mUsB-Pc5dZ+g-HOAzsfo0vlv94VN-_e1zgmdWS&?DVK_eZ zO5z=numk4f6`tD{xm>iHuw0z<r!bM6463M7TXE)^PQpn%W|mfYAuYip10-iOCOyc3 zF*X^4cNnD~D)PC>pq=A$F4OHu{{S`$g5K0PrLjrdVY33nHqZ~XIP--AEll$c3XTam z%_6ZU=EywrO7|hADMfWB<_(UZ@tT??Ay@`J`KZ(kaxy-&;0t%br?UmC(6ERzlGKuI z5`4d{LM9-AjFJe=GbHpRv83IV#M5t4?Qrk7gS`mG&?$=>1q1G$gEb^DO)=XV<kvIf zpNN`wf#CCQB}=*T6<~<uhCaBiXC)Nf!OxRfZT(p2Ofp9y<%<rv918LO0FAQRh+vXd z`O6%PX1UAXiC!@A3(T*4A@gKm6i}!KZ(;9Jc#l-m^!sf(*TkmcdEPZU$96rdN_A<u zB`uM@9!|QFrmt&!{{Y||(7((`fWZVr2ORv*R$<l@&XKAVaxw{S2=%RtSo{a&yt8Td z^Gv^VDedi7Ej3?<T2!z++Fr87Kvh&iP6@AO7|KZ~#q|7ol(5t0)pgsclYQa^mrA=1 z09e-!!FLm%O3=Hyx3WzkE*}C_Qke%i#ddxj@b7^<SE@^CWj3d8aPj%361X_ccDA1c zbcrqmhWhcmu0Xj!a6PNGIL=#W-LLqhVJtKu@w;uOrO!0dW?RX118r=QjiUjZ3dj6w zwD8`mHNS=7dv=N&#kr4q5xJFwgQ2dL&*1NbtR%XE`&A@Jp^;u~rAa=Oe@XBUglshn zXzcu1Z4AQUcgBmqc?4i*>s!XGYR>PY{5;Pxyce^SW2&=D*5|u^*w;5F!~PX1uFIo{ zqHBV&f&0eV2PVEJw%1+!MSVPWw_3f$yjvbdI1J6+zQX;g>})(`;_Vm1xBAp}eomaT zTidYv&VPvdk81IlJ_J}z30tjRSe+#WrM6PLzP_~>I_nFoS8Xp#Z~c0+(!@n#tqHvq z?{B#AxbK?(07baIc%(8y`xOkC+E1wVt@OQ!yf6!xR_Dk~qB%F5p5%Jwx4eJw&;Awm zlO4sC^qP*DHP{lv9l0&Y>T4t6M}~CC{6U>NM3rpfl*w~*DzGd_&N=Oxb*sXyDJUkc z-rj%k-+M5pO~JQ&=&kbW>#y~x*T><X8R)ufS62T35v=s9Ldwz^<H*K7?L&K`_~ul5 zn;#Ns*D%bCM2#Lqhp`5_j~aL)KN5I)O*Si)vqzJ2Jc+nq_NnYNf9wq&-pOb4MY;qH zj1S7bX;89FHhl;7gqw19ep?)WgyER@me6WQtEmWxnPNXIhtyZkAGFo{uj9KIlo;TG z7A7)&`yMOm$ZfpsPwmr2rdW}Jy6|y|_`CLwoVUe7f!`v`HXGfmdU0y@-7nVPsl!@P zn@#P1>+(NHiEuNYuN3iunO;3}PG{XCae?blsQu;%$9`+bw_T4(wI_5v0h0>FPr2_+ z+{v^!1ZSY3VK`jA;p{O=V_o^rBCa;J`jd5Gvo79%^Ga2=gX_&Xi=46hxyEUVdBU8h zziO+vyN^b-6_BvxXC9QYAXOw2gO0TD?7T91@+u<bq9hX8Al7bLUtn#$5cVZw2Rxpc zrIY8{3j%$q8x6P<(-_F6pygK?s<+x9>*^~UGje^}p#ZA+nLBgNO<K+ia0uy|f<g*6 z%1HL8dcIPndmML+yayJg8|pfGgEl{T7~?hNS2i=*&e2I5MtiFcmGlf&`<okB1I}~a zu>4)&8-Eko$YX!AU62B>9Z0OI(O0@<#<wf9j}N%FXi3_+2c8cVT_6d$%Vn|p*1oA{ zai-l%X?JZbZxP3sN6O>WRR&zJ!sFh!B^w>mcSSde<Za}TPh8VhJ&p)$gV!gTnc0aa zJX8}yv<xsL_N5!iSd|vg>Gy@ou_}7=QTdF7s~y7`=~f_v%V0nSGlDZqI-RT+qYm{+ zT+wo*R=Yx~j&L$DjMNJIkb-b3-P9$Zk85SR6{_nQjxtyRJv-*FPMVzacOwVnzyk#H zlTt=W1QC?S2Q?d^Y~T!2AtewK$R?pjTbFkB+_C}<+m1=7c7FjZ4?SpUgSQHQ15HK) z<}67d^{sXJ3Nd=>Ce~oYHZjjydKU8Eao!fAR1zr2&w3q$F&#73mV$d|JTM`9w``8o z#ZM|{=RSkAIU8zi#~JHJ22ag~C#kAhE3!IRidgc&mx14!jzno8Rtt~`$y$~|8JJ@| zv)Y)<iZQgGrB&7S+!l`LY)TmcBWWYOF_(Oyy$@=0ARPVN`_qXJfU0xc(amz)n<R3i z`}C;U1GyVp>)M86pGK!;ok+>W4cvvH9(<VzC`$AP(v^UhoE&=7mN3|P5AL)0(^^#- z893-FuXSTdO6+RvQbrCa4ij?k1e4r!rzlrk=RWllb0HzJG1C<beF;&%qu&mo=Q!tz zXxbzPCnv6HxH!P-ds3Fz!#|0o*T}bJp(CBZIa7t_twHBt{J(XNTAOHMa@&^_(8<D| z;^;?XTB}K28AaQ1&J>&wagLemNYX~6xZsY6C;+=<pFizVvV+@$(9}s-cDofv+9M<| zMp2v|^uf!FoC8U)t~1_=T|<C?<c@tRZP>f(sG}epE^<2h(+3OblS-4wh*Ld#p4B0Q zsw{=ol>64I?P^1IWN)_$OJh7#Dy5GH9`xesTm?DnL%za(Q;%9oO=vdL*lWfI%v_E! zifoFTc{tB{R-1Z(w+B5<G(;rb<{ihiS3=w6R~1;PUVG!3S;>&H4&3H}(~<P0k%X9F zPI_&uWVN|EH*_(+Wat3{nv9@mw+H5=E<}I?1y56&W1lgO#lResM=kVV^wE)HdF#y~ zVgWedQZXY2g^>(g=O?JD<!@3qc4HfRoP)G?_o&&6by7X*ToIgi^{5$`9*3<YtnN8V z<bH3K&R+luM*-aAe5G;?J+RI9a(~*Wq+i};Pd&v`l%KjE5eupF0_T%ZmTmic4z+2{ zTP1PmO(u5|HsqSUw76Q^k-IZnpO?Q{Z^`8a0D{Mo4k_f2xE=db8~_GRDx(zc#@8|? z^FDADcSbsT)WRZU5=Or_In6?{mvzGYxg9EVDGYH(HPMrHT9Alcq#%q8V>qRRoy-Xw zdr-4779<msQWY31Pg==qu->ZT7E(wJ%|j$%4oefB!h$z+?cRiqnZeH@t*)gj+fV=@ z$yVv<Pu!}+k<KzH&dlI^!~xWL)MX2=Ja^4b`;ztb88JBB_|g~4DaHqUQWh;60C?z4 zB7%#KPaSHVn$T@DO3T6HtwVqxaTz|e_LZ1mjF35@l~8VTRJOY^)oaviN};`tCRAW2 zL)MzfmiFsQfCvEl=AuuP8aAb<@&|6X?@gG#2I2DKwJA}8GtbtV18h9xcC6zkdl1#v zx-nPgK9wMh$~Oa&4<?Wn3DbgeK*%@;8R{!mu1c1+BqwBq1CUP@WJ@QM*u_T>2k&uG zg&8E^FJnzR8t%xOAvqj+(X^<@I5hSrcNC1+z{WwUyFqls3Nw?*^r;XIdh=EJ-@7#A zB{TD9H9I>J$$YZi@F-?wAzKAO?kREu3?95uB6E^+Shsg{#kwoaHr+<ZfJg6Bw;gNK zd|tv$Y1k3UDLDF9n93Gg+X7@|9%|<wTJ-+_6&Cw{I190Uy(`n9q!Qfo>wJILk%(I( zYV|amoli=0L>TqkkK(3`G0yyv`qy5MP)tUP1e|=t^IA|AF=UUI)Ec0~vku47v|-v4 zZhtzbYojS@JP$Jsw<Pj2R*|q9KPkuSP<02f#~)gHZYY6{NF9CYTV2WBlPru-g*+an zpK#wQfcuMbc%}v}#FjW6u~EE?&5r$z79Fm~N=8mc7~?d}!z3@vaZZyva@{eCi+BX> z1PZi7lY0tXV~MiEcU`p>TOfr2NbgN}bCP~+)S1fye(!2qZfKWq2h`)zl5#`GgN%Ao zfEl?M6tfV_zL=$QWn|dx#h8%fk4o|nip+oEG=K)<?5clS^|2rg@{PE!BKWA={9_5~ z!ruq;sHtZge_Nxo3wc!jyE5;?P10)j<0^3wIL%b}-W@cpG0_22J_+4}Q~Wbg9=Uo- zsAF%})~I}ZK>BWqj#J9>x1M>fs%|N+-|!Av?K{2o{Z7}zI_=%Jh3%wvh({O<Vk2>3 ziu&*NQux`Scq>P}({(LIV+`O=1Wn2;hpMUVUlZwfvDo-Z3D^`ufieboqr?6)p4nX^ zy4`AJ5<o)Z7_8~OMAFqhpO?<}UW~?YZ{CBmKScg3e$$pS_<DUh#v7|+b{ZzTfwIUk z+Z_#leSAaloR6qnSV1KB7U2BST##9hzrAfq<IP6ITnIH7=2QFDM_ioxSCRO`SBC3X zp7mU`lAO3-ySv)6td&_UESBHb+-*uykHpB<`GmVjINiAOR@Uq^Yzl83y{nnA)B{{1 zV1nnVt<_~K=-$=OJ3U_KtA^!q)4%x-xAM|Vwm=;IHRyg7IMZA&2XJitYs^yjZ1{8x zox!h0@HFZ)`-dPEcHmS~rqr+0+YsR@T0L+6XB*=A2mCG#A&A|+9j%_?z0W|<ET2r4 z)or5@%B0Mz&U5Qt4e<)>S^P!QWePzNt7P&8Pp<q=*R%lQ$5MzmQU3re^TmBu5mTHN zsaYfEB_^BX?$4?G1%Ib_X|5pEUdqDK2(pt;jiEg&%Dypp`@=GLsie>^?R8=TtimCH zqqzpYd)4);-xombtm-pf$shovOi^$Saf*%^;e>69KP=<0=Z{+2zA6fug*fZoXk_Sf zw&w1iPM_6}XVgAD_`>4j!%`-(i*F3On=RvWVZBGSVe6he@kfrlOL4DwgH=zp-b`ec zRfldcFg~~y=k_|B*5UlL3m^w;k(?7&<kl{=8;6$ee>AsXFa>$s{MyR>zptBTLxOKz z`~Lu6)~A2q-w|G4Yj^rw@-6gnD3TkXIbeE&Taa5^>Kf0PF6g6)h*<N(d)Ja!>bF`w z>~~gVs{w{V{7dOxq2ZqtN#YBL4ZLWPDibof`Sa~wgl8G840%$u(XFg#ms*VK8d4xp zkU9+2%dZc`bEc)c-1!hG4$Zp&n$FdvyVUioSR-eG(lrd*Px`~@R`rbr=UI*j0~EJh zvkc=Vx3YFk*dD2~&%Pn*8fK;9)BTv?ptrVI*~d-et#Y$6<l(cPwbT4lj@M7|Bo?qN zQGcPMvc|h|-Os&pkicY6Mn-*W%CBWT&a19gqp-0qTyu<ctCF&X9-j3K(WjFd5tdgB z4NWN$g1}&8)>=2AP<9)*bIl+DhU{jUu!TLr>q0Tk0s2#xi&I}h!VUp6>05Xwu<1-8 zqa!AV8zL{9pGxPER?_2;lM`}4>si;578_SNJ;iCl*n=c~6`wNfW*`tfX{|OnC9BY2 zRth(D^`?%wt2=lZIrpX=px}<RcQaZKw#unF$)|2-lQ<w_u4%DMv9>*F=ICP_9M&!B z46$liOE4!H=C8ETFys<F>n1ypt%K9Kt8Frt802D_yLu9tbM1qL$9}Zwq}vg|<kd8p zC1Ob0z|@x$`EauZEs9b~=FRgWwcL*OrE%V;(&LoEga8zJ)kdA<fx(Qa&PHn8oy3a* zZjWijOVph&X3GsEs&=vbK&MBZH!%R`2BKDxn34uP=#ivm0AMKTOX4m0lQ=uQL8{kQ zgvlF|A=}U?$2B6n+1du?2NeX<Ow2)M1e&V}zT+fG8I$KZ$2+;fq3z6{#BzH3)I-e@ zI3(w-N=%+m2-{qDt((w|1dm6|yYlKt!RDqqTEh84*gaU9h0W)j#zJ=y)|!G@3007T z?rAuwJM=Q=N!kAZUCG9p86PC?ZjIB5x2EZFMB9nvE;*`-XK$5QwmRml+rq{0&VBiz zr(*2WG!smT<lHfy^;&H+F2Ph1D=z6Ijhsg-6Q0JXx=h6W`anlH4OJVhR^sNrsebw| zDV19RyDe0@h6P13tY;^=<W*s3E6KRDl6#YyCDYbc<e$c=yXq-eba26+n1df~YL|_? zL^PidJ++*lXIr1$KFk(ideZ7pM`>v+(>X|ET;n*+d0w@uNvq5qvm6M1M9=F{CarK# zQ(WD@uk$Bo%t(W<#WQgj=AwX>T$-;X!ATFLWn}g`7QZsg(jy#ap7hBaunIa=V#Y?u zr+nD!&0_u57qYP-!mqtZpfCW{VEc#%Cak70lTkOJTZD_{p>DMn*&G9pdX?M~aZ^Uy zfX8adF{P;i&cTt%rC`W14gun<GKM^g9|bULb+I?-EOQq?4>XSWs_L&9Bxh|ooG|yH zzJk|sNaN=;g4`A)@l8oi<@6@4H#j4uG?A*)QUp&g<r%4Sjx$aJa%ZQ#Hz=$(8Xvu& zITn)Ws$;8G{)cwWsOiXfEh>Xtvs|cSfsi^H>3kM`)2?a%0J;(nIY1=zrlYRob8T{? z=(w;u<$wbe_mg)y??TJ6c3q%?cJWYzD=x#3x%{hcg>v1r%Pju@yE))<UXP*NMP=dG z)JA5RlXFN<-Op<CNmME@0P?ubYr4}UjvFXqY?A1tl53WGi<PN1YsVoLs`x0xbS9|S z>8Aex#1V#(b~zah)2&tU9=4h+Hq9deZzF6*9Fl77m|KUiy=RR)$rTjmoMd*bDYeae zlU*ejbLi`D2a~499FQfmS;xFxpd<o*?rQbEt!t!sSlirb?X6rE2hNSQzddRxR{9J3 zn`q{qb<|;oSgm8>SyXdQxYD&onj8H_&K)|{V{>nDybm+}16wJ$X=|Jc5lZr6YI141 zJU(TGs@aR2I?HjA#N+1V))l^|axLYvmUyqCDpnU|`Ip#Mo~1shblWLzuJqxh%ozet zAZb*CpS#;NMm=dIyOgc0QOytxq7?Z^_4?LVw$8+@uO-uQgT*?u8WZ?>3wZ9JGse+0 zpL`M21NEvpr1ueC?YXi070Ncp1aimgT@Hl8$6SW##jIXZHNb1rwM%uZUleOoc!R`u z+J(%py3Hw(1PA3A^rWf9JFn{G#q&o^jH#iQSiT#?Ht@%SpdNAudaGxu>JMwE!DiOc z*~q8u6G)?Q!TuVV-|Z!lh5-bUrw5Lemozr>X^~ri=_qz-a(G~SQ7NT+7ND=q)T@0z zoe&ClgY)M#StRoWo5#vX<Qkq^XaqnEt78azVxbY4qY=WmAQHzligzl?Iw7p;&4j=Q zk_|_^yRwNu$25s<!M6tt%bez!v~DecbKF$QJy8BD6GQ~E?I#P5zG@R9hHOX(?T+-< zJGmLpPCL?roP4<Fkxew#x)$D+KxI;^wMwsC(grTz@q#m&YR9)Ixxpmh)aKp%wFIjA z1Hm<#i%UXneaO7x4tDPJ2AcAw;7Qs~YFVxBBV05lJaf33mME8k-dCw+aYIsj6C}4H zM)`@sAoQW-2(0d*5qh~bUiVwmEO)HhjjHU%<r0E<uRQU$i<erN?X>9{J9wLGKJ0G# zR&^?JA|~8dGSt7~pNS%KHI|Yd7}W|r;5hla;=G$sOC2WGYm0=M<iE_XDf#4(`ew9s zHfSIwAkytzBumtvTFcV(nYA03u5}A(C6zvC<97L0xRvDJKHt~;G0W`g*OjEd%l-*_ z!#ZS-c?P3*50e@U#)SOb)o&YlHyXl9s>FZ@-r21!L;F&83FU|)2jw94tW9!8mgk%^ z1q+(lMZqhh>~hLc*4;m=6_wr=G8Z9n!8M|~+`5LIe3^W<$ChM0SJc%Ds3)GyVgXUI zIVX%#L1tq&5Fl8P!}7LxEniK6RQ-yKnoj=!h0i-QRX(#R#`Z~m8l7K;HEH}YeGTTD zI!UO>7>#F}kl6OF;eH_aw^6&E>Md0**%Swc-Y|LZ!R=mEqBZ5jwyX9RjV%=Uk}2F+ zj`$U7>sC6I^4wbZe(K)kWLVA8$W>i^NUpwGG1I4C^81f6q^mp5rn>#<_xZEE)Gno$ z#Su?=EO&Fw<@v9VZbmy-Vc>tV*lV`Bew_ikxti@}M2G{DTpVQAncTs3X{y;YR-xc& zHq9dv2;;4GzYQ*~wEqB!dTZG-2;&IJIT;GuxH#`y&Txbjp=}bsot=^A)`eSH-&d!S z{<J+$_N%*q{?L<29m@?)!%ebt6ofF0uqOa}_o;jV;%^Z6miF;)nPsw6^8<N1K5m%L zdh%b3vtH{z6#P-I>N=O&wU(AN3X%C~vObDy)qWB9pz9iI*qFp^56m|A2i~}A%E~u- zq?g>a{=CkLP;}<`y175SxBV`MqW!Ys3vG!cVOfFw<YBOX8jbFyX&42G7D0yckSK4; zmRQ(?<Ba5kO7VwfZM{7!2ep$ncVstlp$WVx=rBcN>Q?cxH_8rr*1YTy$t#?k4Aw@h z%p;JT0C9ji)^pY_MJ04|lSAaga^(D~yjQ|s9PWP6@o!aT>LEoO=L4GiqW)s`S7=u; zo(p<c!=Df={{XgrC~KEH0>KlARl($y>z~e|m)dXo)qjztMWij?@UuTmFjFCqG{j&I z0_2|NrO9G*$u!3bSR7<ywRq{Zqdhd+)2MzV4ucdjvD$Jo?Mi1Lrx*i_Vwz?Jl}Y6D zQ@N$|6@iek+*b#or<KYQTd#am7+?d8siWm2xF-XQ3T@qJ7HeJ5xGbP<%X@dGx|rie z+t;pYMv-@@KzZm-ts=<Hg<+A~HJfeObRGG91wyURXEdzBJp8%$rmKDCQM7~iX$y_Y zN|FyzReSXzbddQ7+CE;j1dEKF+kJ&e#=(vO&l$~En<uV$q_tvuTynYGgRW0{cumuj zjk|a)nyl^S5wLwtSy?hLtLP0L(%K-3zNT-8d^Z<}t(x9t4Y!ddaBIfAQQ=v<H+*5A zf7xVH<;<(bdkojQOD5%IA1Mc|CZ%Z(zi0MasMbirV0&V*oH?H{x~V9=v_5l7U8n;b zo`jl;;sAj*;Ny(fZQ|br&!jh<2{KysU<OM4YmgE~(q=aEeL$`Wrx$xz?Nh$bR#PWz zgDe*`0;C_GKJ`AMZyUt&V+^aFD?K+xK0(GamZh!r2_)08B#;vkJBu$+MMg+5ufITQ z(jw1pPI`3$sLJ2IPeI<RmRcCz<Z?-pM)8ikQ^4C8T!r_=0Iu8w5;OHaf|ZJeIqrMb zoc4Ap*n&&~%7-NMG{<nu8g1LRiX@bYihyy{5mI3%CkGPaf_hcn^7AU~3|DV8QE&+P zxv7|L-SVp*aB<SAq6p>ru+p3z!0}eV+aWn8Jd@g~rMfd^V5T-9ju`WrdmX&+YCEI* z@OtKyvT$2~PkNQFplUg!E&w0^Ij9Rdt{n=o<Wtz>9y-%y`IIqinw_47bP-fD0NKxa zMVFGe!3PxF@B6Ga@=H_Il&~W#Tb$72et?ACgM+~9nnY4#+^4DUPj*<xBPFT7BPnbU zdJGz?6)hHo%dyqB6Ts*y88ISYbrgUw=QuR0v@UUyPZdd78QG_y9?iH>xpUlAt4m0y zlPnnLxIO9?EXR(5tl8ydP!7@D8mUSzpk2k;5X}jWR%IKMoN?Ntnl>Pua(JolGLuN5 zvZtk2F|oiepT>)~xWo?WfJe+nAw?$gL0y=@&T2?o$Zg7{xW_cxhe@`bq!KyBPKo)G zD-8sZwTB%=Iost>TQo{HpyOvF1fH~qZzDZA)V)hjOOB0_Oyu%ARC|Ld^`ut;oRhQ> z$JU=B7}$K<vIamDB$Bh-NvO6)>_#)vfCDJw1GuL=E~|`#o@pGG5^Yn{y=kV66MK;r zP)Js!c5ntx?21(cuS^edN|GY63^^5&lvDSLN!sH;z|ANHazNv$r!$hlRBj&hh06`R z4Azo%S3t<{ShpZ^#VPqmL7#e32j0$mVwQe@fsFJO7U~JujhtivFi7TvLxX~Lp17fp zCkum2Y4#&=$>?iV^thg+Q?};{s#SlyYBv}o913}0>NDG#VaamAcLF=sP4z>*mSYHE z{6y!qG1!~{aq23>s<L1!?a!rG^3<Kfu6xy{nCzb7o%sbv9`zH(dXw`SS!FS|LQi@b z%!|mzMK+Xe%w=Y_A$2Q)er_n-Q<WIcttJj~Ptuz%NaK@GrG3pDbg)SYDqDVisu@W_ z0bK6sQUxR&oK#{~X?}CNj0)3O$5NtMw<0c2PWhxQx>L6x6Vic_M}KNv<VpzX-jjUG zQyD#NVJ1)*4C6kunJV8iap_V^vf}`PyLtN5EWTs);8Tydi%pU<0uIxHdWvkU@u^TY z?i@Fz4noKRu2_syw;2fxxd3npr_7qrQhL~AZ@C6C-lWpJyGS0rMK1N&%0>=2`qH;i zoM!`?%Uj!_o%OiFr2zn(6O&91Ps&b3NbEyoax+Ykw{;jf?OSebboLq<K;SpNXjk^* z)YOj)6$CK;w8+j$S2!N@+gH%WO|Zt|NbOOmRc~|Jq?SA!?&(czuq>mmQ&%LK+@zA& zbbBz_z$d*i4iUiYDmFq6G1jFZuWko=!po^zATlyURCPV-F!}W-)}&=16YJ|uUi*eS z@m0-bVr-s?6GtGCI*@8*18B%K6iBC#aw%eM+<Wvi!DvXMYh?00>8*@>oO@HBhR0mf zTLHH5p4F$DGuey{h9R?xl~^GJezcLH4#18v_o>9;PaO6&n~Qp(%Ilzn=0bX!l0DKl z-r#n{M-+sB2+8%Q4a&r>FnwzV+?XP~kp{fCRXN1zoOb5DOU3{VLJSahM6Hj)yvYKI z;cT3lRP*((O7UWk?HC(r2gpI6!o55)X*;8Wuf$^)`A8=O)MIIHmjwFK$@1X0dU}QO z^4+Vgr5AE9pwS=>6pXPQYV04pMFa19)et<+hXiw)xo&bDdK2EXA?jI>NrAH)vO3kA zxGLCCIn7sy>~eFtbKb0j=B5ITzP;*iV2z};L%wFn-M1q-q-=n3+t!pF$)5S9<&1y^ z>)RCW`ifV*kR+XtMyO1?4$|8_b5p!z$`yMIpK7e*lelg<>S`Olh20^hZOU=ZP6atf z$`!uw^rip`U>qEtwA6A3J#)@0OCu)U#JDFaIQOJdT!D=C%|y5bwt`N3)RFxCQ-j<Z za*l&h&{-FL<UA9`Ysda6!R7eM0;P)mmjrv}y?WwQAb{Hl=+)%^02R=uimlzH4jv4Q zRugxNU)JdD!N=dd{{XE={5X}HS(_V5h_Qp#s(g0}nhm7R0NFM{#aj4q74@0EOdl^f zs$aAl?C`CT&O=-Ut?4wBSM{;ajk0r(^|>{j+YbUkxbU!K4^xWdY_FL8omNu3{{XA5 zg(W}mh5@$$ZN}5@iu1djMB7G$AKrGPmD0B0+gF9|b$Z{8pwm`pU{#jnC?Ah{<j$hE z5)xRF?YNG^HIp^tT)8e6aqb6NkIgY24l`THUELD5yET#VsY8SEmmJqu7bJ|}`_~I& zbDPU>{{T4O>x%5+lgwSjZDXD@Ts3r(Jt`Vr{{Ys)aAs_FIIlzadm();;TWHiL4Z$c z^Rf&_fx9)_{5hA-Tl5(KGWGSXDcLb%J`1lSm-wo7c-|5^3uXRw=lb>Bvfc0*6KKwR z;=8|!hj)x2CqMD-2jpvl)mXje!g2r@&349iv$n~8Nb#c!sb9PN*=7|eioo>(t*Z<S zu1OfpM2@=#<JyOES#kJON~4zNVo9>p1%$sVWpR=!a{c}DRHEFjrF#3+>csKT(@l}S z<(Z!_y8=K8af;CJCbK4qtm%_r%9jVqk%`~~+}1f`<VrggHC_oy>G5!Q#twROU340Z zz3#dk_3o9=p!FSTKeeH-vy4pYerY=jZ;Q1pNn?vm(;;=9NcS0m;c9(0dl>92u5I9n z-dGiyK;t>7H4Sp&3w^fsw)05CJEV{eqP<wln$|{7RMOR)U&aYyi^LimTrT+|u~mPU zsU6L7I)<jQu=1lDae!1;rug#K+s3z6Mtj=}AF{#a7FOI@y4NV43)7+iw}|Z{1fI3Q zR-1bxvND8Kq;ihMn*?H|X88j4tq&Av>!Hg4it;Pir5lz=t3U4`C#`d|<M9ubHK7=7 zppRNWxonO_5;nn*H)p*rOg#0?LwDHHI%vsL<|iMmI#9(~O#|kGaQofyQ9Evo=QWyl zW0t6vECs<l9;T_?+j;1JdQ@knSxC1;0&qL#pl4vfZ3I=``lFIbtww|@n8_e_G$;?( zttXmE!*nzps3wy_-%=@AL+3adr?FB#UJtcbc*`*~?35IoZ>bLZ7VVdEeB6Ooa~?S7 zJ?k>j%E{b=TaeqMj1~jFO+~ttw!MY7Xc2cd52(dH;%MD4sCMJ6HaONP4(>teOFO_L zY_@#`N<+Ps%Cp_4*xPnN=qkmX^8K9wMmXa*s9s1?1}aqJoEo)ja|1$mVM(G<w!@CB zk*5tH0dP8#P`%j`FfnC4ed<{zhzHrp1F5EophZS@&h9q*)@oMVy|*H5P4{3#5Pv#> z^(ONOXhFw0spg*5U0jAFdQ@}W+oKj#J6Lr!t9v6W-*^33t1hD=$Xp;Lx-X?M^(k<F zbOEL{<V@MxYB}x{ka;=mYSyM!?bLi)rPDV7Nj|iK>g^;f+f;giPmbjQ$%_V__sGxw zsEqp6r_gqe>;?VNg^Wc6hdi*TB74Zb^u^t|IIF*GjyOs3OJHOSRcN&^NOXkdhamQ% z_gaJ2&&ZE;*Z0jNLQqL0{Y_eJLR^B-sUG5+E!mR|urD12FGD>@b8(z`rAM_AEV0`& zmpM84k7_>9?%#Jc%=q8LvsyqckwIw&-VQeV(K{uftXDD4c&}HvyO7y^qs@hW@y~kZ z<Xi!oUoeL!B<HC#Zu1Eh$9tP?(6bN9pmheIxQKbD(9`3WYU8-7^0_a#^O~6RUEHR% z(0WI(=kTVIcX!1CO}GqrH0F>V7n)aXlhjCo50g`~<AF^Kyl1JVmL>VBaZMJLiTElT z7&Rm$5t@zv0M%|Z_(1Z<tw$$fuVhXi+J^av#{!zCIH>~VPJ8#Qtz<^8L^S7S4<i*s z#$zY04r<(z>|msDX}1w?P(^0@kC|AgTW~lhBc)9iq6N9!xMkx$v_%4va(Oia+hcI- zIjgnNcTE#Mq+EcJ;YjB-1k<yT%|>z$Oj3?poZ_ccO_D>Rl$Jh~*Zee(&he(36J)7! z<aX&?klU35@vhh5fA0KwrsE|}N9kIprk#x2Nv~9W6qr=ok9_;n!4fkNcR1wZwKb(z zU%SCH^kSuzMgi(^Mcu4)UEE8DXHkx)0=nyX<&;I&F{l}?L8EuthzTWtADwi%zOwoy zvnh$%Q}O@@8OM6%s@k=gq!W{R1>LLNvZdF~vAJY8;8y<tg5*c>E|qB*iRYH!1rm&p z!n~U6$8xL59!Zi$!o-b|4SNT|YiVZjK9r@(%e&28;BMRpKxxwEg405A9K5Yu`a49s zyOk~{l*<*(miVHOHw8}^_7$Vzx%DkaOz_lF=tjoU2>h5XUVXvIIb&Iny`pKi7Z!~r z^~$;XXP5{Pl4!BG5^1v9Hnz_QZ!#$6JC!{^^ro6>>7GM(lW4blHixNSPY$Eu`)Oc} z3pMO>Wy=AM0O?rkeKwl5(r6J{v`-A1pt}W_05~-@rR-LAtsmL^!t8SE#}!?5_|sCJ z8+ZgWNp4VQ=D;*gJg;B)a$9nZnI5B{&3FBuW2|06P1Tv4ysfoxMs}@cYIgQoT##GY z*}O5w5{=H;-JeQ*^ITk_CH2^t#~BgES1dgMHA7$3H7Oym7f{0(jxdBTEsoi%i%Y4r zFUpr<mCTYn&Zss5ez>YPJJ|_V$>?h8BbQ{16<(*lPAaot$l2uj3W;6ILF|Zp^Ci4c zlmJ998mgHQ2hQbvFgnxkZ>+SNXTH?#VzID{lJ6nM0=#R+-?XikopUao;Y~d1cVZ`K zXOr$R2aYQz?(WJ<+B4bI>{$>YCAiCQ25S#h@h6A$2|{XGy4p##i5*AF*1RUxZ;PK6 zrgoS<pKeA7Ke|k9$mhQ`tEGO<_bm4Ec!yS)%Oqe*v9|nVVBngbdq><_mf_FwJ0q^u ze`p^G=|<$+eWzA1DQ%FZ1A1WA9N)B*a{?{=IAVDKAhfw7@UDwY_$}b=A_M}?;`M{! znt5;t?OWFV9`N3b6x;ZE)mR_Ac{Pi3a?u(}G~@23c@59Ue;jLbD(M<}M++~?MX6$O z)Ml!@{{R!U=%u;3d7u*!g<uoPUuyOJL&h^&M7H`}vcdC^cE&ITVap`<uJYW>?C$vp zP5>3WY00I|$!RO3aXMdxF7GW}ul3DV?oiopHgXr}F<SQC2DSMdUR>_mlfGsmx+v^C z!U!NQpsOpjRijnF1A=?kOrou0O>WExd<&yS!K7$=v$rIghJOa>45;2?IY!(tam{Sq zL|cHM=hL-8Z~`DeK5XEM!P8OqY-eWe*u{s!+I_s9Ze)?NdEG<Vz*vZ#z#I@wX&i2D zan`9#0*Nv?In7jJtnayQHdaMREFlT}M2z5*T-LYYdE!xikG|KVpd62S>*WLjG0%F? zg4r*0*=@<nI11nz#;Ur}9r!Fmp*zXx)bqQ07Hn?$K{y+^%`!_e(kde4lU|6P2efAm z=1Q1eFmfpm!*(eX3Eb>`+lcBbg+_6F);^(Q=vnhL?c`hdE2aICTl=9Pc9HglATS=a z>~?x>yRb6Y!#d<0#Q?88@Lhx+AAsAUY?0ZRoN=1;TYW;_D={qhaKjj2yQFYB*S85@ zR(y6QZmjwHn!`)7xFpG^K`6)EWUi;e8a0Y|gGk$_*~c5p97W?m3JmqED@m4R8ygAP z$40K3!*Zpi$ZsKJ;Ny2=*w<6E;@4Mmf>WF}^8CqsW2e~N_{UhD=S;SpURF%JYDvdK z#bnu9S=c}p*3LU!#If>IZCkx8WS#f#l1ItSMxgCcPU=#<tY-O|w&cZscCr(-Sm0)z zk;u<li;{3oM`21(6*=pSnwEh(H)6fuSt1*oEu7?54zV&XoLO>0f;p|bmJ$Pj+luG4 z*}TZJAPdkQJ5<zeG1VOqTO7pq1N$#gxat``RXvC`@&2%Z{7I|Gf90jq$aC*sT<Xi@ zcz)m@&P#pT`8MV_F7B@yNeXYcY#ejevWss1zoQ(J=8vcOAEB8MxgB>5WK)>se|N?@ zRC3%RJ8}+Jjyu!fTmXA8&MV7y-1YZXL!{iPkV9mSwAW$A2R$lPP{>i23^^4Z9!J_# zCVz>IL)Wc|O)WYLyJC!FgF%aFE;=5((I7Fd(SpQhBc&*HSkB@}C#6bFEjompxmrW~ z!Ij77NMjGm{o&AqM_B&p2hy8t0!iE)^O~)9EoihJNbU(e&%G#J;D$NCr1J*nA@?b6 z7Zk3?pdT^sNvjhnbXyRV+;BnKJt{D)tT_2`$ZD_^+0>tvd(;y&lSom{P;dyLb+Hds zW<e>)Dx+>rDqV%PmVKkpQj`v)V`vnJtiLbb2O~83qWTn)OF?AvgiXJ27|#@lM%CI5 zeQIKYHTlj4F^^hep;jB4E88NI*G4rc$$&+gH@A@ol=<9GIj=YI$ACqmHTIN%p=>-r zV*q!rPB>w;MswDy%P@rDesXwVdQ{FaoNUQc<<TELI`HaLmK+twHJfv6j7t?e&+z9J z>wYQlLu%e-_L!S4RFd%yjb3Ly8H{qoVz^WD2kdKw({a;d(1g_1g&SyJW9%MYLC$J} zgO@FWK=0nRrI3gu3NT1K)-eTe&+`t3sXkpvd-)M7bDo6pidhd_3{xbKft3MBIjaDy zi=1sItvBy$Vv@5fnKt8c<l`9><pG0{^3f?Qpp_*@85H0GA^EV+*w$}NMEfG1(YWKL zdepAO6xw(PoX|pHfcdudrUfP-$K}saS~+s=M4jzng;}2@?m6O|Q*wex0edi{10)Vb zNhsPwec|Y7##d||^h9GNxyP`flWtg!am@->mc~zEniP}I-5BU;Nu<j45fyf?KPz)j zScZO99)hEddgngWp$fi0;)}c5;$YFU<eo5bnrX<7<s6=w=}(daC}JeQ@6AN4%%fl; zG1E0yOUy6T5)>hRVg@OzwSnzJ9l!&gdeea&0)kBpp%-^OfEoJKwr<7uZQ~ftMV-e7 zj>e^d+_*qM8RDaw+Yr-Z?^qV;*Vd~!3y@Uc@sZZFH4*|x>)(pccHVyJ&#f2c72UNP z9_{Q@<2^G;_Jv`V8@a~=y*qZ+^)(TJgt<}zwn-JHmb)!kqGA@|R~ZBvic~w;X9`VD zig2oMJ?be2GoF1Z#!2oTg6&c>fP3>zc4cFZIO|BG4z6+u7%NCyaoT$NRxN_F6#U$0 zlir)S2+kYkH7s#}%B1o}YBHfmPERyBHbYh#jvE2<#{(4<jhTj5gV5B3f(bO$eDVf4 ztz)V+j)F)-I`UWPNhC}N=Y!suNoMJvQ%+`mqX5646%R+KG(7>^)Ss;~Pn738deg}u z{KO2?7ztxwqv~qnudx@{NgE0<-Fc|;xf$eo)4>5%NaGl&j!WT43!ZaB>!61fRwNFU zUB{HiocdL%Gu1#i>?)hMEWmM}T9~qVUB%h8G6phx)GkY5SCi{V?#^%t9@Lq@&#hZb zyEK~^9JH()93JMH3o9R+E7)SCZVu{c&l|dfQ}HcHl$Q1s#$7is0|%u<r*m}XohjbH z6YdQ(6-Hx{GtFd^lT8NT&#+^z?zF{^_lusCxLG7QI32S{tXyCom87oqD`lYYN1DU~ zjL=Rb^b|(C@Yp`|>5vk8(^1)ytlfx_n4DuEjAZtp0+~46O#m@$V`$F?q-earKztB$ zLTjm`8@q80w1Rt5p$f&AW6;xM4fjKHo@wla@Oc9@TkK;e&~NU{s>}ls(=?`4CjfKn z?@>hwc|x(m<25J%u?j&RriARSh<3Q1VJn7SdK^<ERo~nnN^+9KkT~f`stmmS<4~mf zq1xLC9F4myGq*pjF`If6bs*;%H1Gq4QhsB`DWH{X5=iZu*}lf{SJZm!Pyi*5eAG=T zQdN7?nF}5bGib@d#Y#ybG$D|*q+_32ammVtz%<;2UV8e_4@`b^U$L6ha}$N<nqd3q zoaUV2vK>xE0kI}Ak?TpO*!t*5j8Jem^r`LH3o$<_>&-x{tHI4l@{@uykyU%U27}~e zEC}S|p{QgEhbx{cLn0^xzd$J+Jk!^cRVs;S!E%r4tJIP+LXwhhJda9Pg8;;W$J&?} z$lUOK>po{I_A|A|<PFb`Jq0<ODvYV;p`-wnBRzXk`G*+m+nSf?QbaQ!-ob-{BwoK- z^zRi1Cdih{m_a|4d0wQO9RXr9B6IkP^?w!Y7Z4JDRkuJsxUWkOFL2|kz2lo^DYRs^ zM<CM{P0ROibAwAOZ6S%^&?E{u7zft78@bPMz%w=%A#qpi+Z}$DN;yJhyH)#T5=IYB zGtFK47`xn^NK7`}<n|RJJ7=cD=~b6=0s$cBITdLcWCZek>SYx7EhdLPTi9ZOoaE=_ z<WlD-0sQGnBo0T`huI6s5lYRpy5))L4M5wRe8(PuRfl6CBi5pqa*z*k*V3WwaVKpo zFak&nIQOLsj9}yw$fg$D<2lVeSg9u%tuLj8dy3qGqn>e^RF56-I|@c{#F5a_v`e=D zoc(F*(UhNXmO_40gZNjI{8(lF-LO60B1avCdZAz#@Il5a%6=`Vlf+th$17}l{cAbL zM{b|yj=VFx{{XKspARJmTagYy@`=r7{?Uw6!WwZS09=Z_@ZjgfQmb;lL8^bWqDI~d zvSlPNxlRvCx(nV~{{U7w@vq{x?%$amp%QpLHD^^*2q2T+737z<zH5*$a7YX*xbX(I zG_M0$+l37^!i5YEAY#1ES&l#h3I#aHblhoOmr_h;dE*qulXxe!G_rX+i(rw)YOo}s zBbsft^bWQy*+>obxIGJu=DiBs02q$BuRPOZSHFdro(McwpxXjfiS@2pj?Z(^!>4O{ z{)1%8NI)bG)!uwI-0@zner@9?@U9rJGLqHYd^wQE9qR*v%qpoqcc@~$*j;rv-;CF* zYvT(Lq_JyUk@(l2TwOiQ)5-?YPZ_S?<6>>`Rg{Dhe2i!Dt_-j&3jQ_O7y5ojnw8^! zH~F(-Hw_T?s}ZT%PjSeqaY&v}=W7mw)~!WwrG9R{)cJL}ZT2TZOLKuwLc<`Ao$9<- zQM0Ns#^co0zy|KQryUsykX+2sqyGSOsi?HlB(_e#j`e2X0~7JaKRVR#Zi#cKrM<&j z0R&?%Pfj{k@s}*FjH*YN*<S_6IE+WAOp&ULDzO-=C&6~mqO6yfQtuc!bBfWp)gseE zhXsj0b!wf@jIHF{7Tw0qnKb26Y3U&^bb)*$XA=#wKV0CNudA(woKhJWI}w~?IHuqD zwd5JMhs$G*TDj8RY|SLEmu{rgdr8gRvC2k^U&lN_BP6080Uat$+mvVSnx`H&9Aj^- zTFy>M`Dks)>S+hmYY`^^@DF-(fP4E=HVX5{wKWfJpwVj@D>Pn!g^Y|;GvFy5H&l^6 zR1emhJ|BQVKGilfixSwdfB-TxQOZ2S^8B@8)a-*}cJEc4h8Sd%o-tP)bUCW8w1yRB z1N*t}O?F|PFb`@;9I}dvM#$jyscEfDmYR%_@yVu0+t-ei95-5sj1Krc>J*9Go*4+h z9Awsx&o(&On3LACAY#rjSJ_>o01_#4a|7DUu!ZDrnVSNV?jz+4NOq52^pPXBIXE=4 zS<G^CmHN@57Nt3$X<+mqpT@N;ZNtEe(YOSfqb0NL+mc0IwY8BU+8b#+oYcKbi`|o? zT(I0SJDOOQAu8@GydDXrNoW}X+;<Pwnk{-B57wuZT&YSdOQeY#CP3Ley=txFL=+sH z=B!I<q3{SlTBmtvMg~FRuKmoUw7C-bPDuv<_oZ*L#fFmLD-(bS%|b1KAQr|ABHBc5 zH)Le?YOPrbx1n`Kp(MPd`T#0MxUoeT-=9({KeNUd0zfC;mEedz45$~m%_Vz-S5_Wx zt=k(xBk4#dx7<lm1w;}Povs*q)3-nvWrjU#N$Mo-NcS*Ir4%<@<kU?xNs!3RpGtJ5 z)(~6H9`y@PZpf@8#_op|9NfAZ#T@60d`ESo#}KlMY_d1re!{%^_V#P(%-1dEOvLl) zTi!d@W4_dlrMj0$crqVa<q06?sWpqJ=JjULT&ap%anC_Q$N>aWXCnrHpE1QI&|G`D zX3wo7;ef~MQlf&shL9!!Ez+{))Y)3ZTUENzj5ZhZrRBPGqa1bSo~)T!jstsR(vxcz z#VWQK5zcDB2N~~G<X20Pvt$5GT7wP6S5@;DCxQ(<UlIy&(8=mrRp%8inY7^36@liG zU}VS~d)02qcSKhTWRMVZOoneWA&(%`-d@r<s@Gp6fR6r^jGMiNtzpP_NO8?r2qZW> z4_d7gW$-x1da`84YS*TPKQg@A5aSgDyf4dEq(FH!62+QM$cVe>LNLT&b6wxUr48d7 zS#gqxNcz_o_Iw=Ip!^<&Ht{56A(7T5IL<hy9rYHR$oFLd!weIinDwQMJYOm4j{Rw^ zaL93h0jCK!H$8D$xSEo|8MxG}7jZ%7sW|qo<HVK?ai}{@8-12$`=onyt~S<Xj_%!< zavU50#Xvg0S5bMbwxs=8V@!Yvu1bkZMr{WrCgOSB=fY36Ys)>A)7x4GEcxxteG%|= z6G8Za;hD{f>nm!^Od#ct9c#^_y@n``a>uwQt#<za2jxkAA!+wb8<&SNMIE_0Z%}=x zO>)@Ez1FtY==Zx+y0+K#O&Y~jq1B{mO`NP3W=?QTV#{wPo2W}=J*)yoKPQxT09UUy za^ZDv5cq<52AGz!O8HV;?%UfYhtjoe4*CnZw8$s7wU~LT*El2}ylSb&GP;U9_baj2 zI%GGovfNyl3t~vwSB4$MWye2;ZseY51>EIaMAAeGox`<X@eYl5rKk3UcacjK#D(px zJk7#1&T*PuSHv=yQr^PaD@$n`?K4JDV}3Asrzoy%UdDdYmGZ@2{Yr6NHI?n9#E=VE z+-`}b<+JZpbv;6TQc2OS5<wv?zi8*!Ro2w(h_I6IE#$G!zso1(+3A|g@jkDoU24<8 zVWusGn*abwHxNfBn!%{e-5Ob4J6ii0sxCB{<%eeJSd0>S99I|PUx>DU476GGEn4Cj z?-U;{9F5FR1B%n}XNWBP8KP=>&Z9WBwi0}-@44Nv#sz%k;cp3Ee$c)mkHk9aPIRbc z%10*(_&FK;t68Pb%JuU#<W^0UQV$${&==&+WKA8UEPsIl5#QFmv%^0NG!FvW$8iK! z*O&6XOtL2COfE1huzAI<AhoxK%GFdN#|nTj1}i-!UoK6q8JD1}`68IyrFVX$>hj(^ zLRZ?VIoZI)K`aZrx)x;|1DcEN43avZn}AJH)OA<0iTt7p^#J#*<*V6`n(bV6p?r|C zL|b%?k_V+{y{z)ck1V}GJ5=#eTg5fmX_#P>$!fRdDuMHtY*$jWR-vMIA!xt~K@108 zDWW90CnOWlaZaCbVULwS=}Q_gCxuar@mpT&LG7@KWrFHDV~VUJXyiCvLFj7tnh-NE zBp<tqj#u+rcm!ghBD{)^5fbMBXRT1wESQ4eWwXs|>}Hv^o%!Tvih+_y^0MTH<ma_w z-QAe9daaILK+4$X8K)fixy@VFwD~Qv>cm4QD!_NDHqX8_U8J7vRVASB)r`DF`^4dn za%(?NmPpm6iJ8^gYn<_lwRV831}6j@W}l+PC7zyTTLrm_HY{6yGf5`agO4uk>~uLK zn%P0^_i{PKbZQzKa^^E5D(7JDT>hW0Tiv8mIxWA-I9CKMbcXiP7TKEeG3TAJl7971 zvwM@ywlR}e)$Z<)Po_s>W}|-L^EnkJsif&Tj-_mM8#$-64dx7FE^DW<yN)>mB(O&$ zhhS!4b6o^6{hBn*#k%hPHo?c?T`-Ha<gP=K-um37Y2$qw(o1_wdpn}i0I|gy7T|i< zpm=^~Ta=K-zz|Nx9Q3YF!*<a}Yj)3j1?A()Wb>iI`Dy80uZ6U`{a;Xy+e$ul<cL{! zIR3TJwrE_@lUCfPaCbR;V=vN?PZ&<V^)>dJeWqN^XM5$F$TQ}y;lor@MI>@X6D(^v zUo&p-PAGerr>2C2hGDqkkhmFE1Y^IgF~p}kM{JrO=0mvUy5g9ZD}L!#bFle}!`n5^ zYX(=f0i)PU5?Q;CYUrhn8ZyJ>1D<Q1)*pA4xh@8IHI+u1X7STb=N;lVXmlxDIaR~A zA4>ST9YW&ZO)QVNw6YZ4>A2#)$@q(KmVOetWAkl|&d@pOUl&?BM-q9+)~&gi35PpL zr4;#F{<?&dynn98>73Ez?(b8^T(}s|9jP{!nY(0Ekr!Tfb6zyGN3`yTxonhN?qQS1 zN{pS&^LFBrM`(#)3D11d5zY&#0P<>X-mDv2q)MeiFvlcPKtn(q7-8#5s~dD;2ce`A z0Cp(d+Kco=#p!psCg#h6<PtdIlW-sg$z#TG)|#YAkX?Ysr+Q4DS9>-+Y1v#?ZHj?V zbmyfpqc0%^m;?Mmq!=G~HfY|%aU|_LfO}KEwiECDZashpX$({kTCZ@RfK_ph^*WJ~ zSnzwAj%3>0o+=l+bb%(@NUXUHyd3AKsXWX`<xT<bOp|DDyMyaZ^8ypl?L5%z^d0`u zVPXUs9k+UBkjPmSXMl6fFv!yZyOB)bl|{)p=7(piCO2cQSmUog)kaAIjBd+jv>x2D zo<TjUJi@|O<J{2hw<_A)%)8bGj<OBT(y$>;I0m?#YTbNCB#!o}6y-J}CmBAq+xUk@ zlU35@SOW`;WpV9TUKz7%i}+(_`J!cGymZG}TEBIoBc`$3^LvYT(_Z4v;4yT;$r!A8 z7$L#K1KPcF;>YiGYghfySB&l|xF)=U>OU^xOmsa7tY=S_NgZ&Ld+tLh4T3(DxM1v~ z=3sap)S))3bJv`jjg@@R!HGEP4MVauzd;`2Wl~cLdQ&C1<#!yM0C?|GT*h{fEPUK# znu(VHfx*vu%SX1RoVV2oq&Q%Dccn3vBpw0jNuMmL=W#u8QW3aiy7cChqVA03ASwt4 zuUylH)>6chX(mAK3b4niqCS|&Cp?->HDrZ7?wMOV*bYrRFx`w~W4%al=j3%<9&=3u zZ3M1dp8e{aWZ6-YlMpY+!B2XR%wY+_kV(c(5*Z^ck+VH9NH?^qatR}$sztciav(y- zKX`LW(jSnFZSPUboH5<WJ-bqmnl{fk9GYEka$b(;MkY**0qIDwsdX9og*g+=A%P3W zQ%o<h@-e@;t)`ofg)Od!q7x$==j+;}g-D$bTpZI>Jb|RhP<S|}K<T-IWD+n4^{#7c zWJUBeZ`Dj3wli5pN)MIy^P1DST)-2c^);4bXrC-{Gr$$n?2<yg!aa|YK?I&bq1YpQ z-1eX_+({S)kP#aaa>LNpZuYpYIaoTAoK$BAzTr-h*r~t@zLdz<0|a&NS=#Qy+fnG_ zYZLc@sK^3kVsgH;_8&LOK2y}v6b+AVg04%I4#VXNKYNa&tw$>)iWibcrApBg8xTqM zs>FxS7&M}Z)reHHae$}Rq+o#tIBtfW)-_T2(<NS1XPRx?cd;8FEs@i`G=sbq%8r!s zH~@9-X_6AZDb9OTUiuGxSmG7>f(9x%B?SnJk=)aNco>yax3x$ca$u-Waa$(iv3Kgm zM<TKLmZNoG#en0|owRPq<KC6Y1mltGQFSM&Hn|vnNvI@IB>5fs3Ypji=e<>uKnk$P zHA*QxNwxF|BEiYzj<nL@hyiw}6ruCG=E*%lr?<$xh&@ec+L8@!MA3#u1QJ`)qhZhx zL0{H|n2g{OO%1)VlZ^V-56Gt!_ZVEr*cbwu%4KX4IO8IuXxBe6!S9Mf6DRmhQcf<$ zOUQ(e-T)3oBOpA3PtH%bN@teavCk*1RIG2Mu1KU{4*h9*ec)Ffl))Q!KGicg42s`e z(&jT-U5yS8Ae;^kX#<6mBdMt-6D+8aKqU>%NyRO|Dskn6DtYHPsA;?E9LbO#o7?4J zdr-3ifEV4(N}Q`41NEw`r9dQL`&QPnBHY@O5xkNq5wdbQrksEQ$p_M<jpJ{f6ooyF zB(AO!R@DdzCj)^|N(x*n1CxV_lLcJoDl<)g-ZvkG3G%TkF<5W;is6q_OdFCwK;8AH z{J{uwfs9iWg1~O+)0(MUp?4Su?+Y<IjWv$`4?$0KBLwnKQ%)Eo0Cn$4zI05ba8yT7 z7#=D)R4Wn>9jRT2Ja*!eQ@AI~l^uO*ZE{k3p#fs21pO%qVm%Ee?fj~;do?(M4<wv= z)n4yno`ivwr3x}g?rPo;5s}SPwj{Yd2lJ~e#5Oo2igrt5KBE{1UBGR@%}X0^KtRX2 zraJtp#N(Qh-POqlIO&?sSC-*^qf0WeR3v7aMjzGj_l*SMi65DyQXPvq>C&z#+uby_ znvX5WJt-XHp~idCG?*D2`_oG-j0Gtx?j@lW=q@92_`|6u*P8Xe7;KUoHwopJg)$G) zyoT#^k8cn=L6mMkje8G^+2w;z%I;%sqd!4iSa`+R^f>1I>$8!a11{Y3IRw%L4(h~{ zijb!My=jCM1orf<-EMQcH*^l*zaMwjwC%QtMn?ozTLN~bc8=z>p=N7kR>sx&N3CmS z$g<qBn@A-IsTX-5bO)tF2kzGgl6q9={9yWap}XkHi(~g-e8acvO?2BBE1a<Af<^;p zBhrve9k+iEVd+)5GPSNVIs4pu)N)7xVS;n(Q_AY=j-xeMgF9d@K<}DXZQY|OCI=`K z^#`pwM$BNU<kL9{R5lp#%{DZ3I4{?pX(g@pHPND7#1CQ3IP}QpJt{q?C3BK{igxC3 zFaX+dTHgB-)y6p>h9bPP;_Qw800}OeDEp5AA5Lr3ijWRD_OC4XxSKV-JLVk1NEMvj zqV4@^j;thkswIExQn!FP*G>sjv#mGwh#~wDX25O&@kV{9_<6^O26@UJ4Ii{aXTdhe zqi_0JRnd1>?SILcW0k5jyT|_kN=J+9I+N-WKyX6E7)*Aox7<%O{{S~Hfk`87ITg&) zy^Xna5x{sr=WsO~WU0aARDpLX$5T<U+G}XLZee{(woXONKrm9w7bd+1&N(54k=uLc zt$CfZ;_3|dkXNTeFBu<0T(W%ENc8Zj>WDngnZ0Yb_-QYl2CA$Ax<~*%qZPsY#^ay6 zn(qD^Am6BtfR#C`qU`n_D%^)D@v*bwO*r;2k;twK%0P44y$j=){ES+0>-(N7&y~S! z8uSv=Un9$dxlyhdNI=fo66luCHGM4BU^wH}mQ5AbLQrLCDRe2MnF3B+fz4PK603u} z^u<dSjUwUv%#u19vmTQx9JUA2oz<=ybSBWPWYzU3E!sk3Cna;*y%SN^CGhIOV`&<! zK3UF3TI2K!ai>bR4fmID$Q8BXX~g%iFnz$nxcbsc(z+s6lDR_W@>`ia$r~i~0;`R` zGY&mzra*er0+8p@x*wU8o!G4~&m%QnRSXVE0G`z$UZ)hm;DS$MijJW6EI@ILbDFu! zfGVB2EKeL(f&k0MTD$3HX-y(24oZS}^{0gi?@2ZR`9^u_X_9UygVfS`qocbnMaTpk z(~bZq10tDjFr&2-HvR_!vcEzaxaizSg-1;Fs2(B@10y}^YkX`p$uhvGJet<_F`eFw zg8^93$e{8veQ8RvwlHXw)l`DmBymG&>}1n3rhl6sts^mD2WpW<=?;1Kra1#6sTG`_ zmPFWnyRdJQ1dmZ#QR){efE6E=XWE=LM^oCgL6E21KE|<aYz?%Bt<0`-fS~rJn&x&? z`LT|}y)1Gt9HvL9qT*fXHlR7@HCkVA-CT<1X(Nqrzj)Q#c;;JGk&9&VbK0|Jl58Qz zBb<R+5Z+xn1qTCe2{nAm`;V=ONOs_oed!$F0L0UL$#-(x{W{ShY0)rox2VT@hodG* zku)slD!`8QM&iO?&KgqDk&%PQHEu<pcGSq@tx&y^;Deb6+t?1ZR#G8dtw<KqWpG+X zZ%UF&W_Dh=J?Rl9k#Hqp^`pp`IU${~+cjLtXvX`ZcCjD<$vEpvCYU1%SNMk{)MxD^ zhAzwPOl6$0V(rgt($jKNdkz|Q=2Cba`Nd4uN}vTe6<y<!RsfTZ$29S2BCdBZ2i}`# zzcx?yB@q^2Fgu#S@n)c!W|_T@E%Kr-Qfp9Y?CeQ*Ip_)EyywMQs@`f16h+z?PSRid z-RmhkXtypq+{B(kER5XmW0RVMf;rDxQu~<t=dA^ZKGlm|je1!v1~A422nhS8og{n5 zT8(!p#Z|NuU0FW!wCAs_CjHzJX#$oRq{jaI)LT-QVK;3))a757uUd_Z2f?RB^DrRs zS8F3nSy>hn<zI19#`&fc91%$nD#tx52jpbr$(RiL)6fm$Bk`z@P;<ej?j)!jb6Vd) zHEl^)Ve{?9N*{6$T5BeG>%~Wdjw<xAUPP_V2&$KyFeklA9fe18hEuwt)>j0s#kCvB z9eCobwm$ATs&+w%Jm6KOLJuUGT=o=|*w*BKT5jxgsgBddM)>F{{6>7XV`I#c1wAX# zz79dZ#Si3@gn@x$^{+NVlahHIYt%joKHYw01SvNC4}NP!w!v?GT=o?Df_*AYhmsF9 z0k|GuKD}@%$dDHw&a2-#((FFjch3s)@@IoxA-7*I%V0?yoK{YOkL^f+j5kxb*5sF| z0V4&N9&3`aypD=e(_xmnTi!4ct^quj>0X=gGf<C0_=78pb-0aSWGWBcC%t*IYRM=I zY)B-JGaP|lpZh;0#n;3wLF}zyym&23l#qZ9M|#qg`CCU0CQYQ@bJ%rzonukG#+i8( zmZd`~MnPo&@(HaiV%tsD(Pow@r*vgLS~k$&eeBb$B-3>yxYaFm=eM5K989+C6<GQK z+|tA0>%C6jOjBoZrO7CB8Jz9k-naH@R((%3$*4DdO!d$-C~ht<Aeu`XVTai;G6;v# zs@>n4``2AI${kQ#%CT<7#Z^8304lq#>6)gQWRb$}Wew`{J=9^9@Oc8WX4S5=nWVLu z7HdL*x4|CGk`9AEN^UWCw&uGf<Y8(OTIpd{D|qDFDTB)+J4oxzWZzCT8@F3KHB`xO z-Sx&RxYq0-xU@%W18VnHpJ;%y1q{Ue$K2PQ$*aYsB(Xro-tJg`bPqWrIj(w_<>iM{ zXv?c-&z~7JX?$(*3d6$DmR&w6Rw*OuT1FZD1$!o&X=&l_587!KF&leZVYh*e%qzsc z4Hoeaj^)?223f9>X=V(29oQKkL0<T8EVTwEMrEAt-MfX&WRrqXzxj~nn$_%OPaEDg z$sMCoyb(-$RJLG7I^%KmtFm20V^Y$l<uzL3^UQsLLk#4amn%I<=H_=>6)vUR<b%i< zC)T<BPjlZ}stwP9ky}@CB*!4_aCjN4y{!6_yN@V#kEL|QChm<ctdr_nk|P`}o3cUZ zDgOW}NO}2iIHs^{76jzfYm@^lN%yU7&7j@e{=cosT170w9Y=bME*V%1@Osnor8beA z9Ojza+YG0_9CoU-Y$-{_f~ZZ|Bm>%>s(@uq(~fsk(pyaE9H+`T!K!ys0IXRsNX2D- zXQ8F}v_o!ZDIP)HySVLCq><##Sg`l05lbdBwLtGt$cl(^2_$ifn{zQH`j)i|N4U|v z);LupDD^eT`AriMw+)Qfb@p8NQXX8!a``^KmC9UMkvL<VFdcguw`+3)_qQ?cIkh=l z)y)q~i%`?#fmOmvq%h7Zwy+f-l0ExLs(KC1q349P)Yj5GZDA_pR42>6+nT7|X}Qu^ zd?M1LHy%~Z#jl?h&KR}{?^bQT8r<0FmiC8QnrJNY(U}t@{xxGw*RD%4E%bLKI3*UX z{{U*;5J#WCzAJS$wEnvp@}%!Af8Y@4-wYn+Cy_Osw*~(Ib|lV0J?ml*gj&K)=O(=x zrqUglp0!@nSG>276)}usYk`xR>a^>>5<|90^yx1w-MC&CKJ}`tK5Lxnnor$V{*jq$ z@T*c2UNF`oRgnUrjGU9+x4bdnU3w22*j&YZEu>afXUn(~kgWN~BDQVyi6TN9L%WG` z2s{ywt!dip6U${RiJ{(RCL35DqtdliZy6`o{s;MfBZ^9C+iib8^Ee$-;dhB{C)W}! zc$uyy^B!iEiEvLK8s5=7Evk5C;_pxZ>X#<aMw_K447Jdvw{tY8zu1@7;zP``FUl(H zt>%yxV`!ZkLOObrN3^<X_rLrP@&=XCaohe6`JQi~_=8rx@q<YP&BXVt5-IfQ7ZFCe zJcC}1u0wk*o-J4R@(#zRYM^iQI4;ML;%gyv2n~e*x3+4xi}Xu9WLdfKDAO4mV!U$g z4o~y0TGEr($sIKPo1NRTC)Q2=ouL<s2Ya=TfChQ)YmD%orFE&naBe00L`RgFml!$a ze+ugC?5s3hIc-<Pk1UavZ$EzWeU56Cv{pvU#cz7Iaq@DDj<q&?t$$zF`I$DKx_R%$ zN$zd@C8|wif@zlAtZUE~JuBmX5?gB%#-jI6nXaQe$rmfPZgKh7+J6*mn(IZmv$Ysw z7$b1%Yt0R|tz#eV^pN}vv!`Aw7c`Vr?R)-6(Q?hVZB@TEeR6P4dN-{&72Awtlh&EH zcG3Jsq}t~S206w}d8xOjL(#p4nN~Injr@Jucy@U|dB7tdN?=ypxcOTjdY<ZJ<9;%8 znlG@}(!heiH_F@!Rya-I`DC7P)}E+#k)7PsU^I-%!-^f2tbY=B7BU_c2;Bbwc+=T( z{{S~p{8Z4Yps!J$D3w9uaR)!8B-&)buA_@(MmuygitJpm7-kq0BW=ot<JO%U=NS2z z9AMNfUWH5F)sFkoDli!CX_7Woh+27!ggjsxbbl&>Nav1gURM;En(k0>lBYkNJ>%*C z1h-S`QqKnSyJ*NX#od594_cM3#d9Wziv?|@VZA6&?RL8p9=`PH0pJWa4<ysKv2lVF zfyODyE-K<y+^{0^A3Uk<DJHg2lD&A&Y2)SEG4pphq`4(oOCOgV1x@8`LM`6ynfi^- z_HDn~XWEv;He@Y~eig@fD_^&ZU%Y|J6`hEQ<rv`lR;P~S*=YnNM%i}|8oc9DhFIMt zMpbBz<=yL7%+s<6rM>LVlj4P&N2^*AR!F?F^8?<zjzwmfi6;P%1$w`Vrk7XHbepyU zDPQFyKbfy8og`W0RyZNgKDCuwTIRH*<lJSs1dX*wWjH-5F(4ULz}?=hGqUFj2_Cgr zvN<Fn;kn4~Ty9P3&bw$hxm7tCE5W88oT*;^w2s9Xu^G;3QSrBaIXyiq8AbXJnWPiP z<+euz^`<##1_8$vB>Pz862so21%qT`KJ~M2l`*YBl|jHH`_p7VS91~<rxi2)<wNIq zZn*WRWJQ`VS0MGPi_-l}UaypjCPZL?O9R~0?I3TP&~e8~tO~|A;G7DPq-F!R;ZI{r zb{dLXEX1~IMcAdzNNiveQ7b-3=nt(*%e1CQJaTFuar0k7xX$+UYIaITz}=p-ua(=z zbIm9$0o*V;3e7v{OMS*N9Bv<U@sCPOs2#F<`&5Y@RGq~0-jE^yLv9(ZqdtsnsUf0F z$@1eBWA93VPTcd)tx<{+CS%DAGBZ|QA2qiVf;r7q(spE9Tbi$#pgV^nxU9lU5CI%@ zt%j8(P6h~2KBlo`8yMsjIXSH5qZD1jLB`YHxTKVs2<N8)hismhG}X(v!N;y^N9I$| zRxDc#1~Jxyk;X?f*Box>M`J<A!3UpOo2}U5?h;S)0Gt3h2iB4xzye1g^Gme-;@g;x zw7JO3930Yeaz!!WQ3i5DazM>NF$XL@@#7S%H~r=((E3s41SF1FahemhjGHh`%8QQO zYB^ZB;NpM@=ub4)1z2ad6q!vYuTjhMXO7)ymGGfQr&CNvT=EY?Q6m>1Fg$fMC8g1t z)RkG3U{glo+++@>oYG-NM&Ch5k}xc)dWxj%tj%PVu7I~3jt><K(|HTGk_qDireJV0 z#YZb_8vxFFW|u9Vg62qpn9M-{fO{Hbkg!9z0((@bNAVt&9Mfav>yyP#HS|JG<SH`E zc7oo9qn1A?VGyZ3ed<QbsQ~Rhw2vboRb#k;)~-Hb&8XFkD(*j(Mpw*yo<Qg*GHoLv zn3Ikva99C@#%afWO1;NOF_G655kVjX9Gukg45nC)PB41aR&tUMI(DY}32HhhU0CPt z)1_8pv~W988F%nOUNC;Nf=sqM4)u>KZsKm@By5fIwn_A<Bv8jJ!-{Dk`f^1wHyI(9 zoa36;mz4_L$tIY~vuHbUkkr*+s8<Iq)ShZg2I_WzDgyjqWSr91p&e{UHsGEQwKiZd zr>7sSITs_IJ?c3WHrz2Fa&zlVYCC|CsM@*ag^(*M^2^ZFfiN;Y@##%u+7vS6Fv-WQ zTvhf9b7+CGPBV~C8Kx1nh+e(v(W@2+1{7yIsN5LmA2I7u%E{P<>fx{e7#+<vG)DlB zm9dIfk1}JUdeh8aTtKnPo`=3_?$fY&pe#}GjEr+g(iR+WPp_pSu-sGvPkf4bkulKb zp*=^-)es|KoaU8eJHRVTBVz;(3GYuw4;jeErBi)Lzi^UlfwXg)gL&Rt?`NnrD`R62 zK4H?KB(nn8T-7T{T&C6ROAEgvg&l=VyMZL~O;u+xk=HeCB@zWJGwvxn+Q>|B1)BxC zbf>HBMpfudH*_LC5xmUxCyHcalE<w>yCp{ZlSa5dImzuzc+`Bnl6z9f;EXUMZ#${L zs~oBN8fm!diB4DL86n&JH5$jciw^y&MwO%(bpY}yVu;A)PYdnVtC`7Ix2EN3!H;7% zUomm{*RJ@XnY67tDpc$QHhPR#lHV#xZZZhNsQ~?J*E~xiN2TeYh5;a45zcd6SY+44 za8_FGa*epK83gvtL}p@e!;{*il;ELG!1Gb;Ehg;Xk>0y))WJTi4>9MO(6(&EzGH1Z z^+P*wGlAZxQcPveTWI30_ZOL=6qv~BO+F{X<#UepRyPjlK<B+r2H5uulem*slH7M? zkjIQE=d~XzE;?qVZ<s3%IH;Hfj|#c>HIkK?GJOW9P<EW2I@M>F5)g{m{&hK<f(XWG zzbccCGv2G2bsuI!yUaVAsOTz9+s8_2A%SKceJNtf=YYf1_NMOj=uNs3jfGIIRe<L- zz~vt#@Z3`1=h*wu#zP_u0F<oS7m^t4cY4>8{90Uik4+?;eVmSdwd)cwNiYW<wdCIx z9p&)_iZiwr5=bN7qHS`u{ceuTD*fu$`qZo7Os|MlvIsGit6#J#5#Y;G5I7U5Jk>7% zH~ds+r;t$MtbWlE=fLntM;~cHocq@FY@q&skr>Tt{{Y}Wnmh!Kq;;s|a)8s@{b9l2 zcc8DEka!g`chI~0wuu~blGIM*@+q>e!@;Jj9ORnkcRBQ054X!*+mHHawdwIb&_L;4 zZ)daZ5V!p_9GdhSX5vAE!S6}N==89%@89qpBmCTO4R?PIK51{)1mpvX;Z&<WI(wS# zei}-A%k#G_wLqs&Ng87$y_J&wwK<QDIFDY^@GuM}yyfK)wof(bKODe)TSR>F(J&+4 zyvtCLV&HYgb6wGrvF20JKbf;{gA%rDQa477f%m;@Ho;a)bUErf)|A%b*4{VX7`P{B zrzL$tY>DLb6+AK)#tuQ}nxwZ#b5}IyTZh7&;PPtuQrwFhwz0&v1-iRsfb^)%zuPU+ zOdm8ZLH4PV+2ul1U~RywmR908BStwYE1vd{?E0MC(K5C(npm<|pIX+{Y!_*kKa}T{ z^{mdFtFkYc#epN73PWxm1n_E9UyzV9NPb`qQdZOwb`md@h|UMCSOk(b=bDUL61&Yv zI3F!1rpA#^aioyn&Ya8+FenNf=RDFNDEK3e#<S+^ZFkhS2?cqgQmUh_J!n9u-!zgP z(UFW})~Bgfx&VGmFM4TRr#U-~It9v+oZ^Qg9Chq#OI*TZBz!Q*$TbATcAu84GOq;n zsJ3rb$>xjcabD(oH_Uc|Jt`6yw(Rn1)xg>@p7jV|#~tf8XQ_<5hg;3$%z&olW7f7` zP*AEBPCM3Jm{BfV^V>Ca$q@&RdRAAvvJ2=~ORz?KvPWS_J<wG^(G~T@M6xf+8<0II zZ!fK*!C0h!P<zw0g?^SBF0P1!5fhB?YeF0JFrip^BPTVK*YHlERsy5muS0bdaS+IQ zU=c%$=n2`~j(tJhiSj^P@M&80zy>r6>rDG?v0MZsALmh}%zR{L*wGZ9#8Z6`$uFey zakQLws&`kH7;T|co|ze|O@0}jN?@_-2Wq1|@`6Z&x4m8a8EDZ6)Gk5&;)29=0;Y>l zyetBQ3DoXhb5IROIX`D3@u?G08-^kyKD63W)K5XuUEVXEai3}p&B;{_@}H+#opl)1 z3cLlu^r+hL!t)T@RGrr3r*bE{xr+y`PC8VAdy-Elj@Y5K1|x5m+M+tMMu0p)cVq+B zt3|6TcVeEot6XVXbdxzC9uTjsd0dhgV#hm}mL#6$x{n>}Gu++9Wwk^xuIz)!HOaH! z;8#7lwK^jWbm%L5iMaLcLOV#gH1mc~4K%jS0N~U%ZJ@&VJx(YsoMM#+Jc?@-LVYP; zp&O6$GBHjH5N;i6G{HN)Y0@^rv;(sOOPX-uMmVJDk9uzGvBg7rmwgG6R^5u7`V&w? zA}PV^>r!ss*c^%)Y|l%NjZQ)BPe1FrWExo5C_a?KDf0zVw2(5{JGvSR1;@P#xg2yf zJVd@bX0?oTuxQW#0nJA;2UC%cdTq))cs*&!C}@d2Ybm=jSCL*bwYW87%_kLKa3tca zE;!9&YwC?Tt~t5mp`>&to|LS25CFlWB#vuEu{_H95X2Rw!+q1%y<6b271T8;&&~{L zv7B<auP=!P^Io&?RB!&$V5LCX7y8z)>c~m+rh0Y+dq7?LhhIvS4?Qw*(wIJ6fZ6A% zsf42n!|!yhr8d=$jc!`e<Oz5WIqh0^nT+n+_s-sHD@Xb7_cuFvHM@Cp7nk#L2X8}M z6&;&Q>4WG{wPm%rZ!RMiP7ghO>)ihUWF07K{{RtnQvOt7ZJiCwgy8}9?_MLP>Nd|f z$`(B`)%0iV!K6iT;r{>`UOcAS_xEWK3&>C6#wzJTbBl0x*z)nsyCi!SnWy+~M$@&( ziIPc?yxV)k=<S|HD!#g5xEdACqpnG+$sj8oybYfqA5bb!587Ml(%ak3V4A?4Jj7`n zsTu2$RODf$X?lz{`aDqGM&59^X@Z#3JqO`ixV>9v7b<B*@7Mb1N#eW9ZE|4NdX%fC zTHCJ0x?e3rgY#oP_2#}S_~YP>KS@YDMdG^+J=%P1NdX{%-xcyF?NR$nU;IGvuBG8$ z4(gJ_;k`Q8+sPzNhMHsdfFshrd6Px5wX@9dwB|w?gzQ|FJas+jl|>sR{dpZP4CO1y z{Fmf?wed&xt?-A2w3y=Xo}heXsKXSI+q1DT##^xVuL03NYA+q>8id-6x>lK}OEe{8 zisir5HZjF{Kudiz1d7#d_Wk8Sf~Vf4^E|~e1IX@b5^Xk~o=0aSBk-@h_D_QTJi638 zV-2pMZEa_DsVLngxWX$I<X6x-r;5Bcrt6pbRNA6VeFJ%G90Pk6JvbHd9-XXQSx+6r z4#_-nD=TLh$6D_E9q|x&PsaA%B9_d~=3h2vRs@r`jOM0FGQ8Qs(~b1L=hCrjHg_mi z-s8`ZsZt$wkU{5zN-xN5%;x|RjAJIe8%_B22=O2GmF|giapuVE(Z<*#am`-Ue`*Vv z?=B;;@XA3B50@p>fc}-wDBH~5FmqaHdsAv?-c&*cXKswCny+YGudW(-p|wMgo@NVQ zH(h*w@rI$8p61fR*@z|Wljj4_R|j>eU*DM$<5j%7MsnGbQ|p@Or>eAn5yqQuQ|rA~ z;)jFuLhE<pOGRNO%tm+r04l<l<F|q0o8;7{y!p0;iX+y(S&A6ZwnqXe>T)tkuD9Xm zf$uzT;tP8_H;&t4F=lKIdm8F|$~TJF`mpSyWhdl&b+7Fc;JJR{U$YquY)m9zir>=y zHh3;;xWno~H6tZu7$Ur*{uy`0pKFQJ#THSqk&8z*6gGNSGp>9M@y3fi(+dj?Mkq@I zHN3+tK9z)}Z5s3x>8q~Zr_(Wb=T6quTEXMEiO<TyPz_IVb}r`1sW`!}jP9*2^huK1 z_S)jg<YCrDaxi}i>hzzD9xu?N^4jVxPTP1Z9Lva2+ccpbXx;t-<#%ZMU|uEy{p`}0 z*|~y(<b1ojSDW}#<1UHffMV30bc@h<k2&35hzFl*6tKu7L($iq)u=S}BL3@l)a~W* z0<XhMT^+4rhJQTB*8`J-+Pwb&QArY4-5@zRQSDt~pqoaIDU-XYu4`9K^5hI2nX2Z~ zQ$;>!cKaNci2nd}WW<B>9$0l1o8kRLUAsjSq!?_MbjiT2UlPS6mc|t$e1rup&{Yoz z+C18n_HfN_EzCPsT>k(I8t0R@L$Ni;@6$uHwer&37>s9d`I%Q4H0WZ$%C=5$MOs}R z{y1cYXNA<B1Y;EF^n2kEF`|YeAm*+uwV{QZb{N56kPV(`9PQnT>$LGBEHg~Ew-KH^ zxMb<=T%>wE=J?)7jEqOz&jz-%eKTAVOFT0{Zvqf}nIz}%ty5O!6N6`6VF*ZGB(T<2 zH#ykNxR0f2TS)d(DN9cfbI~^CPAexz(EL+%Y%XQhEkJyrK|Tnrt9={Awn0QXno6Yc zn}BdT({p^<{l*R{tw`pu)^)v7JCE&6Q%|%^Ft?IFl%IOLeI(XCAHR;~QF$vP9+=~` zXPrOBP$(wwOSQLcX|fMBHm&ykM#1bPvo9pW=9V+}am_cjp%-^^!?eq2@8;4POLCrN z)Q(YyBxeG;-y9ovmqoSmRheDgWA1P`tvf%3SGLnxTz#fi7MUu9a@ppzb*}^7>l%fv z-c6#~qX0_$#hR|_Z<%ec>;7a}^7-ldf04;g1-aAi<dbY@!B7r|Cc0k-TgPdp`3sdI zG0rM0kB3v;X|h|*cIwhf95G%%$N1Lfo2AR9z{>J8fGWlrhB^w($tc*RXQ7p>BhPWO zc2smH*0C-eM{_5b{$NqZ*0#JsAhJ8Q7Tj<-u6dOnLan)^Kb3OLFNJ;PiT&rh4eiyy z_Y@&w#ALokbMH~ANEZxOVCUuQQlL@`ZaceI28XFBH0@zboDN6~Flju1Pw^AeCXvon zcV{^UmT618e=}o{R-rdxrmPGZKwg~nsR;Q`&Gjaj0Xw^#XPOF^ZcYK{D1Li{w3dRf z$Ok<S08^MZRt!Mrihu;mFb6#|PXnP0+zMB?mDuY|rbD|UImT$h$l&7-&&}&mtgKEz zz#g?QKt?xq&0JS2Y;v<&^c0hV4}W@6z$hvhwmXi7g=As?$!}UlZ!-k8<>)b0b?Qn@ zy+noG&RAq-k!CTw0HbO3pp0ZLM}Ms#j2r^niK+N**2J~=joFZLa1AwLj7${eMh;0e zGbqXHfl!<@zc<&KZ%F&WV)oS=58uxNih}5tlm=gwPaIX4S(*{hupAnV<KD{iGcP$F z^-JNk#<XtcH;XiX?Q008jS=LBgi>&8%x-k6jY@NDA;i95`AM&0S&3#};crn~KEHA; zJWmred0pTFyip|?MIhb#%*^q%pV%~g9ZIqo@`Zb5yq@C*;zOML#=WQF(R8)bPSA?d z6M}P*it$^eVRFtF<Ss>XRf~7>{{VtIPVbozNc&ghOtCo0sQM$|9F9o!sSEWiG3imW zB-z0r^v!cgsKr?H9;k`GdmiKR<Yx!1G&aw?K8Bqk!sS@*QI3?pUQjHDc6rS-x!M+s zQOwNcPSB$mC)T5s4oKjhMK#e>e5BLKRYJ@O1GPhP*m6su0)yq@i9F{N{l$}LJ6qPC z89Dh+JXB1*59?YxC36WOvPK3#EOXq_5>huH1~}uIS!4`C9JVPN<WYgeP1D$`w5}>2 zFlUzUNW`oB`BfBQFbT?o{n|wfGm|3_n8@{{+S#)A0F2Fr8RI<CFlRx5&T37;-ypUH zHB)v#BzMoHB(6i(aS^^#&JWU>tVub}O-hJzTRVa2ifgzhgU`~bMWW+tSZK!XK|bP> zAwW}~N>ehZ=s`SW)4bLvf;S$SrzNGBo`uUO+F}m>0FYH;QJMVAx6E;xjwxi0N6u58 zNT$lH=RERrnp@}&H{3Il7>+wqGwu1v!9A#6dLC$H-U;qI(I(!ExS?3Avli$!(YS3n zKPc})1e9fl7z|TgaO4c)s>)h0dX98gRVw*C!4(lg%FG8rnt33U&PIC*B;1mKgM-H= zrq;Nd=tg8!3*C=uRYQVL@gDT|$z1Ij?r8uUl(E9(VwXa1eMDonGJxc%rZ!nyBj&|P zHb&s1<~io7$Hc6}vk})ds?`+LmC&ji%O|EiX<1KPU>>zEBp$|?@(`zw#;K&Ep%!-= zxeha&o&^H{k(x$iWH|<-Imzc~1FdG#O6e5!c6$kPBSuu`Ae;axvP-?d8OR;#W{_+d z<aGw3X#)U9N^VNQ>O{<0x$9A}P}%#()}`D0K$1P`Hd5z2eJT~VCCjlKib>o%R81gv zAaY2lUjP8dq3u<+7Lbs|eZ@}NqWWEu0MV!<W|TH_yNWOohz+|u^G!L<f1MV)w_;NT z+Rc&<MKVG$$0T+%?=u9bJkl`|5ZnxPHLdyyJL-m$mFbh|QHBG9kwKD0kdztv(_{>Q zo;js^6)hWRkiV56R2#G0(z+6(c@dLLh-I^!`cdS`aXN(?*svJ&HCJy?(@PViWPy{{ zy){r^7H|(vdeosLh211lg-!~$P-?WN_pEc@txq>`#@n&cx0uCqhV4lxDhUU_N^<RI z4UPpQyo|30-mN?CWhG)ZV!$(Q_5-a-K4u3bRACsleW}YJ##81X)0NZF4Zc!IF!B{Y znW##Lq{(cC^r;*d+{dY?-Z02<Qyq08?V>PAZQVgVO*vF6gOln3r$nO}2RWrGM5lsB zYI2pfDlc@%UPm*uo~JpXfshlBJK~*kGm+~|iH3f4&lM?OrlW1{g+5t{nbeRw4zwy@ z0yBa#0i^QV%sJ&xr+QF#Fa+)T(v!Z3R_ezD-j9L-9<^Hv#Pz`I^{JCC=L3&gOmIi* zPA`$zhja)s3F_GIPC~%oaf*whbg6?DBOFz<*f#zmPqZn+Fwdx<Kk;^`B`qA7Jq<|_ z3>X3UR7BA`txEyKiUIqr>r0KiV;!nCP*g4$dQ!O~@TzLg!na_3u>e~HlTt2s6VUdk zB>m_fy{YQhJm+^x6l}!Smnv!`m55~J+z-b!?4Bao{fA<9VT5W6lkHwTdGjI@jms*L z`PZ*_jZ1iL#aQPkyw`OEuF=C=rOrxGxURxSu4$*{Zg})G@G#ivOp!479Q)Tz*@M)7 z-j9$tsbZf9K<Vge1|*yT)4e%aNCTx^^tlhnvIDSI7yxo=#4>J_1N>D+7r`L)sqJ#t z89gza)4iR`jjeWRGZ@5Zc)-Ou*+P8T4W2#en>V2(l1&8Q08U8hO3R^~mDm8J^TE#* zUg63Ns_r?)DpKBNeY?~zAlz4wdm6OTW7q?ez#X}zMgev&B=t1YFI~M`jL=ZvfIk`< zTZuc8LPE0x>rZKLrGUs45}dA22dx`{0DaTgQWS>WO3Vhpc|6yY{8%UZX2%5X5S{-3 zoqC1CoxmTLzH7^VCqC_V1qUIa<eJJ_U;65f>@U4Nf2|5$1V8ar*!!zyuYS-te*x?{ zE9Zu+?*ov&DYQMpn$i8B#Dn4cG(>LuLS(m1x#qT~??%hd@?_%mt!L%=qvwe-;BDX@ z^(DIbYDP&U=aWML+r1e8RyRv=MfVwX*EL#K<BZgo59ToR^``9^=C5r`B)Oi2$RpnH zmEi6f&3Zkc7{TNoro6rhnQm>yc=G_SOtg?D;oq%d-sg1`pTn@pFtZWK=DW{^a{lu7 zrtyRLR|_Z4CTq3$VV2Z21N<g1KN@gXb~-D37iJ&F1;ze~eV)9wRt8Ra=Dj=P(2hCu zVnJ78+fU)md5WkfE!MiM)~A~WtkJV;bLGOgT%1*NG|xG5NXg)K6)Y|m0fEV-k0+?d z*0zdkaXrO~7n9{xXMA)5y1ffTHgK~_aVzpc?OFN-(pk>WA`h5t-R)gcly+U8Fm7{P zvzxt;CYXSTlpt=Nz3OO&=)qjmCAYvi893snwglUt??vve7aZ{`C;*)I&0%VGFK;Gs z@_N@qKpRFmH5J9FxI(1med)raqRQn`M>3L+Fhn|$*A=4`me^c?8e%vds`aj&4XYL> zaXzD^TezAVb;d^K^sc#7S`wnVn0FS<96{RyoMNk-haQ!utFp;vyL#rcK+5O1?rE)2 zTQL{gsiql-I3krFo_{(<IU~8JZFMh`xoX};kw!rS){Dj-TPoxeKp~e4$F)Uqa1oVx zB#%m)bs|pMjS?`o;O!kLw&0Lh_3cX10yg81T8=pkQiiQtNXe%oP3)RWUoaf8?OFG+ zO={a^jfZ@J#cbN&L%kM8+ON|-wXW)};4l&|p%mp5mCTgd(#HVLy!EIYW%xW-MdA++ zExe+8L}ZMqG6T~!&K!=Q=DE{)v`h0X+mX8+hc%|DZs<<@R!xx-%Bh@g?rTNufEzL@ z8+W=Dp3Id5QHBM99W$DmSZ%@uXIv5MRQ!m_l+Ri}vtx}6fx{m|O6~L%nzJRDZ4p!% zcCXT`D_i+$JkSOQQCYLv#=&ynA9{{yH!xo@SPnYXrJ-oEe}8LkFs*}<Gm52Su3Ek5 zgsZV5A+g0lbsQ3mO(Gn0`KkyO-YcbO*kEyrt2Rs5Q*ExJhYVD*la4Bt-OL-wh!eZo zt?iEr8yihho5@M`?f`ZsgoL#klE;7!bDv6{JBxJt%1_W#P2^+becshHa#|q7juo+- z;)ik==F}}vkCE_w1wC)AnGcs7g!;Eij!7+v2YT)8P7P>^er|u+qVIANNwkKGxC`Zw z<a$(6>z1~gnA*!SgeUIs4M-)n^D<8!xUPT4I=|U;vlY9SHv}&{Z4{*>)s2*Gsl#el zBU8Vc<Rc+-z+=!=Eug=>1&V^8pRFulDfRl+7ij5T>aq-R&q_W}-!^eWxOT^-HP=5% zrtXEP(oX#Jq;?%>a8Ck}<HjjzaW$aO-!^+x!Ni%!&lMX-@?><ShlT>CO<L$^c_%!6 z6q(q5w6YviLx#Y{YA<(kTS=0T00-8B<~1|~0~tKi2;A5`J!+$<?{}!FD;Dd3eQLmQ zoSwA`rsF_TTB+#D(9nwMR1W9TrSpq0HJTd-r!{g38GzioeGN9*lU6L_%{<jvqA2Gb zD%SDFDIIrnM3#YjGK!HK9QCP$h`<c<OqqAeFbxX^&ZnH#7O`!XEyACe@_i_G86&+l z4&Id;5+5~D_n0VLo;K}_n)Sbeu@h&g$&3);MR^UWEg;C_HSB)}M4#EZq>(1{5)6^r zv|2q1T1h5)IQ1ind|^urf--6uRI=opFQD&J1M=mMJ%FtexuuhLMuwjPeWYOQ>yw{a zzjLQ~tBv5dVhv<i-4C^4vG;OTx836w`7MU@t}3gUowV+wc2l;}@p7om!62Mh)PJ(A zjlk3VKrXc?H2WVnbn?0X09Obc*Ua{^9oy7_ft}U%7wmg!r9Z<j66#mmHF)lBMXdJm zCguauyQxMBo4-@a$7?vrZ>icvqUn(97mhXP*Gzk6du!=mjCRMhaeg(jw$uC-;|XqV z4fV~gmn4>xzz!#Egz=uHx-S%<vAVy89X>SBk<o3w(H;tna-zBIW5g#`wR<U=FWkn+ zu*tyM!vtf$S|pTXW#n^Gmo-%7x%mm<i-ns{f@c|#<&sBcA2#C0Irp!1{hV|^4eS0p ziM&fH{hr=skt3V#9COWix5f{Jde^~^73$;c7q@;HGWqF#v3!wlJddX}g=OMH6GL^S z-^Uc{z=<~kr|Vp`71M;4uVc2QIYMid+o|hc9L|ldd{6O(?v%E1X>BIh#iHRx)gP{F z#g*k~_6EWd4l4e;<3Xs)Ai2M{4DHNTz$hg8)_fN!DdB+nnsnl$WcLK@mZiIG#dd*` zc&|^<zh{kaTliO~c-fXjw~FyCVha2p?^l;YaJ-1;kIcqE+$%|ZSK@g5JlZn&mi{dv z?+xeJBbWDkv5X&K*0q(BvyJ|L*O8RHqLOiH-|$YqLHK#1>X#R=>fRu{(;DBETXfx= zd(;y6GsAI7B(@h<SFo1OZbsA1aq(*!jB3DMF)hP4b4{07yugd?E)ez=oTDf3Xg*o> zeul=oWv9S}AWf1E`N*swr5KFR@3d}rBp&4Ex^D#d3s~``!WiOf4L_@0PQ2~*6|^~` zt$VVr;;hbE<5IS;Li5h3SE%ZLDw5AxlwTzJRJX}=4#4)v!>={;kA?mV_*cW0u{@T) z+WL>q&vSCQ1hMq4zB>r5!mKuS(QP1&kpM<0yxQOX7_Ml&^|$r;A0<sby{kG)aSw>* znHzGuh8^l3?X6bE>Oi`-rX>WcLKx(G8v5?~<9sD#mu}OLaaFzt{4=rfuBYR<b$vEF zgww2lv?FvN7v$$Aj#;?rulyJOb~&dwDJ$uF{tEv9k@8j7h~(5IMZUadkY^ryVW}h4 ztf5j`_T5LRkXP1L{tNIAi02+>fZ%bF``IPO2i~5a2YwW3CP$OPT67W<xlGe;8PC?6 zRTj-7Piq}4e24wHrU{x@<@-dy?FQXTw(r8be*}1s$Ck2N{{Ud=+RmjBm(6G;h@!Cc z$?0E7FZ?2Y9kG<@8b*O<EVBR}Bvy4kwOdm0yq7i&5B8LPSQ}f(AqGDR(tOH3^p*O4 zL`rb@l7Bx<jgJj@#!LG<do60xT@O?Mvs=tVDJRi|I`o4ygpgM`t_MMM*0q~7f@Zmq zB=a3Z?g2-suGdhyi7uKW8x|z=>?<irJxNQ*&%BO1)>z#`4!qXRlc3pJ%O%aVq;X3r z4CQ*Utcc`Sxa45=&2;*H9w0eV4l9|<qdGaX@-}Skf`w<~`c>$({p_pQ@+!Tv5V*(# z*R5(nHr!<HW$BKUt?tNf$a3h4=Mt$o7{Z#CKL}}T{{Zpm$ovA^&oyQXvaOJC-=%6r zsK`QPlXugtZtb%po@+!`u<%x#2`rK#yK;9L>8$)CVQB%52pU0*?{+*Ip=qm?!jZcN zoYtt<q)e)S+n0l$0jJAlsV=ONxka?|4pfF5_NTy?5#<))f^`6|BBlP+VKHf3KLBt$ z)aiXI2FOKLJQ38<7Nlp)`jNzLx12UX7|tmtFC(8Zh-`NiI^HnG4Kho`0}`CcjNnsp z<ysCl*=|sp88+_Z<Jz)sQNrMZ%T~miqq?1=YI=IsMfK_P*kp0W4{FY%PB%rhZH`;S znp<3L4=XB{3=01MDyL(m2_+!|5_m0F@1M?_226r|YgWLERB|B?&}TTsVv=z*PWm0Z zZRX_X0CdN#NCxC5jylsK`EshmY3H9>lM$*pW1dIjUSf9K_4XRMlXqMWIj00k5UD#~ z)|8K(m}DsA(q;Ds2nw*t$mCQ<SD_N#;!3zxQ6SDaB8F4O2Ll5loPjrGlja_@#v=y@ zZcjm4w$jjBJ%6Mq``dbT>q5#vZO3Tokx1K$?hEtwpl?&a9P)B1Te`WTenX>VXo(qO zMnN?^ZIt;y4UTFAB%JZru&1kc3=cTPO5VgtTI>P&$s-5anZFD`1n2qGk~T&oK&->9 zHFs@LMh<x<hc3X^QQL`N4&z7$_T{#&d($S7(om-llfy4+cm>ZxnzY&%Ti679cN58| z{JqjH@07T}r#l$3F^uv_rpbdk5uPcxa-U{cLSX<qZ3CgFISn6}&RC9^=}Q=9IL6?4 z=8{JWp)r64a0gRQ%I0ZZ=vERJU^(Zxu5ZPj9&JV^lHImW7moGP2F$p@0~zMAb?*}Y z0Ak(C8MkH&7n-FxBz-8qaCcW-PG{mMo;@Q*SpW<GMkl`=YsT)$`$Vcv0CGipH^d8p zs(5ovxOmtX{o=4cp|2mFG+U;~%VeHvYg#Eji0P)1x?k4CL~_UoJApXC9MfNi`Ekk5 zN|r;hTNoMWY83kOo~FF%O6=&Aoy0C*J3u7ygF_)zRyfHVjM7TkkN|&+wID{518F1F zQ5Mq^cNC`JMsQelqss+;a&eE=n!`9n-JECUrDn_|e->%U>cKR%8c+d{8HwkLPE2Kr z{J&ml$i-wBZoO(LF}bkV$?a5~)rB{GNLoOEGaP5uqybJz$r$4Yy%M0A6?bl4<%J@m zi1MQ(defD;bR$NGWUwF)&XDD{<AX{D7%Oycq|*rU*+@M4Ru;bHMLXPfaDlfB^rR9p z5uQeAjO{BXFjR4mdXqc?!<<%$H0)E@YDP@HW<s3((NVZ&c5a;Yrx)7H;{f~9Qc&tP z=Q-x7&822LTVc%^;PuCPYYn4+IjM!lR~`CuO>)Xq`iv1notA=n?l;cfp!K2OaU7ad zi2&I^Cci_L+zxwEyhs5f<<D%^Y4t<8L^19Je-Y0k)}G@au=z96fL<^$&U=AKs2>1l zKBk8xB<}7sF^>U3By}{@m#KFHC!y<7vl!dv6$Gkg$x;WVMQs~fL0#U&kMk%5V;tt1 zh+X$*?vdBMIDp(S3fQ68E;#2r(v-BZT3Asa%LXQ+2*Ne_vPCHf0WLF|Qo&Rd2Lxc} zrDRUq2(J8qH+^b7{IFr$tss=SVaVEXL45K?O<t>3J$j1)+{^$Z<EcDT2?|(b<&QX| zmG?=tK}92zOkh_dwtCi!Yn1HuLYF-Er>vOH;n#|1LU^Zxlp&N8*wbwpv948y&?+Wv zig?epJ<bn2Vw)=m1CPeCzd&i&j#oZd+sCa}^FYfk3F*y9=WB&tb4=OSBaHQ{we}Gk ze89JUxTu7L9OFLKJ{7anRBTG%RJ)~e-qsvnb_%aP^$dt4CvoPSz>ahH)GSDG^Jg@# zCQ4V9fZ@=MgckRw3w`amy82V321wMl7Y9FD5c#N2KIBz9C4G%svJ9ytbUwJM<@X(@ zp4B*9ACRAX(<g+hD;|fMBX^@Ry~jd!a6Yv?tl}%EW*uW-!261>oD=RT2pPzJeKASd zt1-Pxw>J-abu{v~%_9~ySjFfwlS)p(lS-2Q6>jfa3rOf7k7p#~2c<>-04*|lRI<o8 zJ^E5JZcWRdL&YWBce}9}V7V*Sn;I&q+rjE-K?M5oOAIXXunWdI=Zdt|itAxj*|;N` zXc&_n@tRVO4-7dJh{hLYc2{k<0<vCaO(Y|$M8K#6Jw-^;4hU|dn;RD=1C!j-Sb*8- zN=>(*E%hJCUziWZqu2|Q207<6jr0BPf}TzQ$>93dvAv3E?lk@81mg#cQyLJ=xbIFY z$t%$IrnW~M=8kJ_OK#U7xRAvr&<@_2sg!QX19Fjrnq-Y5kff8EZ<@+kaBzC&mn=wk zW1Fr|2hx>f!vJ&jsD!Lo3<5n(J)0vLr_F866jEA_lO@Z5NF8curQG;c<J?pM$W4KW z1oKkHBn0JwPT1>7-D*qILejCu&_0wfz+h<{oG&{^twwVnEO%9FJG3EBKq^9{jmMgd zO}aT7t~v};p>`^AFh>=Zqi)4{q7z6CP78p4I`!Ri_r4jkZ1SoA735PEJ2BUIKdpN9 ztTy;=#2@aCYr2G_z2<P$O6Mgrn9*>dvVCebJm)>>(!z?{w-Qf!Vdo=|0qSeM@oMbH zVPtc^fx#VV@g3RhPpv@tVYPm0d_|aniXU=px)Op^j0}<1tXu65!)*tVRl^=Y9G)rm z;jy%jlpJD|Va=-%se*Dd#We0OjC{GpNw*9(^dpY+VU@QIGB8D2m9AGorAOT@g%w_4 zK~s#9d8vUL)EokNCaX-%=C^-JaBZ?1(0Tb!13u=RkT?ggP-+;J%Y51Ar!^;=h9r<r zN^M<=E3oslN6#NxNYe)(=hV|&f-(2A*9Mr(ynt}ER?r@-OOgxy?DoZZPsJrM_=?+O z0;UpiUZ)@c7RMN`B>0dEYqreC<`9w3*0XlxcmB0UZV@?D(5K+ByTw+S>fnmq`1&4C zhgSfm)e@-(HG|;CAMlh}6TkrTT@S{?=lndn8@C0J9%!fV*?(FSjDNjtbhqey-}5p7 z?M*Ti9MXb80Qyog?l`RHqtNEnY9l`A&UmPm@+tDD#sR2e01{75m83NZO8XMR=j{<6 z_QiT-sa6ZzkSoj;u{>D*_^(dV+sub{GB7!;rmXcl@bbDOar?jl>T9_8Z5HeMwcJAa zdB8QoNg->Mz`zE(kA}{_Z@yrQpC}E$^VX`K{{Yu>Tui@q%s-EEZl6St{q9Y9jseAb zhsTuM`ZS$O5;?Cj3A}{^l545!W6Y<sEJRxXV<NA{rN(;Wpro?4>$qfNy<JOksnZpA zu-t}ug%@dGt#4=-#sTEb%x(7@(y>H19P?Ac#W9Ya^^1+l(VfOOrgM>wv?^e5dF(3# zPt{~FybRwU<T2}8o0e!&L?B>t)Td6{i<;!@rF#AET45#mZlabsJlOXzAp6ohsJ%`r z3-&L`5ly?vYz|Fl7}zlkPDe`BW1Iuht6W56IUTD+@1Xh>)QOX1oO&9mIM^5ik?T$@ z&e$JHia^75d9It>m_1nmq{(Kbn>ZLG8i=!FuRgV=<8PxUGi<@eY3(<fy)ngC<-V07 zjxpYz=64iwgbuY5f|6u0%}E$4#FLU~&QuI{J?U$3PUEDR2nEQ%=M~iHJ8o4%&Wt!5 zwhuMOItNlf$rV~i)@3;?hdor|r5x!!LUdf6(dwG^m-am-K`teQ@(JC@^sg?yM+zAf z40Q+6ty*}Z^2EGXGPT{SuHCG89`!`(DLx4&B;W&0w2_6K^+G{zuQHyQ_p8lqA^W70 z+nT14?{S03tC2|H<2-uTChR8`wI{Z;nEmmC+cll9-b165`%H!=kY#by*2H%qS~!|` z<CLjj8HR8x%{*u%e-p_$m83>MvE<|d?L&6d&E2~l9-ph(>u4ilR%QPHo}6SFp6g0f zn-Q+Vj(M&n&Y?VNw$ZvOV-lkG&3FF*XxNG!jEq3ZJxQ&jC1g`p*vgAe0m~HunDxy_ zEZE9^UOH3eljhEFbHJ%0zF6ELLU1{5)k$h3^e@?2AG3m3=RFC{M{%XBk^t;L>-4E$ zoupl=*d23<lg=-=oMdolX#;O^snhndtYDJe%}@Q08t2brk<%4DtcxQIlkJ07qPD^L z+i^WJQuQZuF*FspY@ytvy;wdSRa~>SJ*!?hVzwY|+n&9t*H<d7!WKjPRSwOT*H&b% zi5O9|v2l~ld1sF=8eMzr!2FP}Biz@pU0=r%7v2?AWsjwJF0FMX?y-4t>>SA<+DD-2 zLwylZPFoQG38dM{8O<;;$vrAVAlf;pX8RFr#!q@wY#&;ZKyi`K(=m{J>RzG-`J0N3 zq!={h1RT>Oj{`onT)hI!P{FvN7$+S~ByJnn&|~?D%}$#FvJ}YA%M1!~72U_yn(h^O z?@W$B8lAK=alWO71Q2^3=78C7F~u;sW&qRNZ9(hnS*;y{B-p_iqC!>F0mpMuB!?9_ z`N2Kux2bJe+*BK%AXKJPC(F|n1T5Jj^{Hcg&4bAGs=C;gx{fH|<P%dQtiTT5v>c=0 z^df=sjCM7ndJ6iCV0p)W^wfQv5KT;g1J^mIn?7TVWFD29S`^2|+0Pwm%z~l>FBGih z_~wK(^(Ku$UwZa0gV0S6haKXPLQ602FnZUIz`!OCLtfMHbu-~0;~PxuF^@{qmrIhJ z=je|?jv*q2WjGw}rm;nn1%S^%n$gg$=G2>3fW{<_D?>71<B?c_9im5-HaSp8?hR;^ zWgD)B@O;m5%pncSHs6?5s@w*Q9)r}^IMNvI0A0g9>e^g1h@i0z=m!<SR$b3hI>lJh zwZCsHkf5G;?N77u&xv%6GAnH#UAfR8hU8pH_8tt4@9S9rOA?*0*S&CeKND^sx}F<o zBT}wZ7aW{aDzW8iO2?gvr_8Sudu^x0PZ3!`E$93!4OZ=@B#7_E^bAj>b{-e~tNcOX zJA_NU2TAcrmO@_gLAB9#_8(gLmrwYMt=(P2Z}uqOHpwk08*8Ia5@|OhY}b)TF5J2S zfIVvoR+My$R!4;``KO~jw^9A5{5g79_=CgOy2YKt?6|Nf3`(c^3h<v4>Awawjc$9L zAK|_Aq)b~NT$Mt9-R)1GSJHz9w3RLuhbKH$3#*%pmRRhg9$7rT+T@lZb5@&I{En4~ z_iaq64X1{!ZI;_k@KuJMjmyn&e8~YFIW>)Q;Jr5OR!MCmAQQ|_kL6GCYU>s{9M^MM zBEZBTaQuv(wZf#g3A96XBm=1mc&+I<)mM8Kp;l{}_B#zT;opR{y+R9fc?OcCi07V3 zaAO4WYq$8D`!@I+!JaDe{3qhr{6Py@q_W5Mkl1oNSC4&?-tkyX8c8D$nVa~&w2P&| zX^ZIgz;Gi^B%R!J&$V?bcB##EYg*r_v}HSTwsf8&_<puJG*jtfS#KSQXu;qL=5Dn6 zxFK!!?yi7maIWLRo-KVuMQ1x^NP$p5``=pVE;dig#k`#Jimz+Rbhf3b<o+MmAkp=B zE-x*O)wFT~%11c*SFShhEooyn+3a*VZtb?I$N>l+O2NH@PnCg|(OiLy?dG$uG~FGg zSsKWO3P2$G*3rbq`kc~^_dUN)_@<i1p9S5mu@KIiw)a!$Y18=DSz1x{VjYx)eDtp! z@aC%?gC~<6yPFvspz4J8uDtlCN+m(PRbknNDY^4(4JWa)s(7kvSPZhA!MF%2w}!l9 z;tM-nWav83(VtSZHg^hFIZ|s9TdPe@cw!POqd3b0+N@9Eh*IW6x0UwD!)V7jt4;h@ z{=eWfXC$5U=>Gs6KPJvw#U3Blye_(3_2-ChF0@P8e6@6tgh?0I9jl=K0EI2$6w@Zv zlQ&i@1cBwaBw+LFT^;n1=>Gr@ZgdS@7U6vT*73@@WG&vgW8!T}4H7#9xsk1a3AC~8 z(uS$a*ZjKt$0<rz^k32v$4Jxk3!8aaUOS1~osE_B?_G_=dIP<*FAn(|=Ws{LM|$9c zNvd93Be7*c+~XD4X|NV;!bSN;)fvg6?da9VYo?D$hhFeTg{Rv`roxu9lp&r7$R@F` zd{tv`&E-iecHGI1D;^6;oc{o+Vn+kzsc!6V9wdq@cM~@t?cfTBdlP$g7Td)3lWGWw zBNMwAVS!$WrOFEvjD{HoygKjAvAsayx2fFNT=8C;;f-k@PmJe3-E8sntZesXM_ms_ zwv-6hE5>@(gmY~p0}6W@!m_)LR8BwyXRT~P!Qsel!l_7hxup?S!BTOab5o@3Wd(>T z4;ZQu$N=Sf^yaKY?aoKaO=}7CWXdf&vp`Ohq1}*qseaYv#GxZC&M-}9qcO<`X!jK) zr}uHTcMSEajZ3>WM5AVE{jX|m;4$thPq$)40$dTsYb77d!Q|qk0LVB@9Os(W(Y4-# zNt*uvZ;(3z8Pp8!?V646WKdssZuLrgnG8v|h=zI&^$f3*mVD%JGg-QkTCqYcvU8}m z{mjK!bONz;ZB-$XLgciBZe#VL^6*9rbHU`-n|w#{^^b(@B)!xw6>ZsYvHt)QFgU=h z9Pa(rY>xi`!?#iDcQRd15RwE122Vqt4Rlj#J|F(im0Vs&a5J37LgxhVYv$c2_NwsR zv^?0Geitm+>+6c@$L(9;j}g3ScXt%3Nkk627dYapok@GTikgz1v1ijv>foQc2<|)6 zgBcXA+%K&$2>@>Ep2npmz`({c!LAo;-JYCZVlezNkaLQWou3Pgaf}L0+kph-x)VaC zI)XBBNynF7qguTQb{N3RWRu24M8`X_Hy)KP$v#{zLX+Q`Ybi1UenNUuyFqKKE~6DN zrFRm<XA~<P#D5kkHxVHK5<$fqjDV2Co;p<8`;S=qk23tI02%4^q-4h!`Iz=S=>mYD z5IFBrD+q_kGTmvbq=x0CpHek*8*;2YGg7uoZpVC@YvuXw2YMDq1RuSg4r#R=(j{G{ z#A!;m1N5gz;jlp<`gWj6^D!zMk%~x3-O3%k38>v&0O@?U1hDPL)}jhL(9P1P+88nD z0pOa7OuV5$Q=a*)FLVtktqU+n*k{H-913iR%)yvoV?Al<8Cd>cM;)nL5~lzzM}D;} z>7g-Nlo4CZB}vA6*E#V3+a;6C-@DXRLLeimn(7%$m>D03dcpBlfi|fp+5#CZ;zh`Q z)Z?q>NK#Hn<@{e2!gxnZRR~d762$T|UP-Aq`*fK+=eJ7sKZpSr!&c~7QPxEY0qezh z?b`>rl{WxM$=oXn_vJ>hZOxR~m5yI`Jr<b29qdo;@CMUE1|u)D6(kC5swM+D<F#-* z^JsOZOhj!WjDSeU2CK})jt)We6*2|#8CYPB0X;=A6sv$pWjzV4<7;kCoko(X6r7I0 znoJRpax?2o^2aW5l^p|fO){AuEI<`D>IqBaD2;Z3yD#fVV)DUaMrv5Xo}>)>)Dwut z6OudN)kf{uB#6jWlrwH2z4)nCHD-_~Ax<%xuhSXMGm%ymw=gcmdJ4I%+a;@PGIvzM z?Z_SKB6B2cNg#F<DBk&Q7rtpr$F~cTO=k$$xcj<|002tia&ko=Vlqj<_n?k`l_M7N zzUVw-n$fj#<i-b6f(CPpoKqqB9z%jbJ^NFmBy{{~OCK-Xo_(u1JxNaD2*i@|cpjA5 z8I+Q6a(W7iFznd#PvuhxJjn)mAa~-Lcid8yv;YYtqM903W&n(0g=Y?U01lWmttMP< zA5sMkSq<oihH%*p#yiwsJHH2~B;uruE58g%=e<8I5nzNJ{{Y_TDiU2ty|yY!OPubd z2YAmJ6d2Cd<Y&D@wWAqU&w6oux)$2K$LtM<larpcAo*00&(@H>;1rzqr1F~pk^+;A z){e$+xQanJ?Mo{cQWu5y>rQYCuBtjzdpkCN8l8$vL|i$~Q_nQRF=8^g#Y)(2dKzvK zS3UdlMcdVh@2J*orBs9NXlCT(WK!+j$>~b1jNu0~?$XdMMBg%=Fgp`SvTe^9C)S5| zW+NRxN=)PsDfyaPsMZ<(0PE8I<!lZXowufGFfsD?>M2DgiRMdEr1{*q;j_guQrot% z`c#bGY}f$t)Z(I$0VhIv>smb)p!FI@r{1LdtU-U7hXc}<LKK3dp5&TumW)en<n$(% zoe?OGMP>@1WqX{``Dw6vj`a6C6!J4rt1%}(FatRhwAj+u9;kZqR;6ZDiI9vI>xwPq z0BvO;R5ua^VtV`1^Aq>C9Ux&IQ=XL^vX;i=91mKN+X%QBCyIw;WSzu{QM7&}XKN<< z1Tv{_pMX1>Z0r;x1CU#&6(cHR)b-|@B%4s-K@{b8q8hqn#E05(>}gA`LXHR>X_1hr zo_%N%eAzt>JM?0G#$>v)Alz~~(Ck<dz$b!pPhbE$en3uXyFAAv41#(Zt6WjnVkpCo z2;<hJ`H#vQ1F00k?CqRzcmkYb&lw{%PARQTB=orEZM}F0r8KZ7BmwAXSkbv-@`_`I z2jl?f)YehEb~9RzCn`#ue_ApTRF%)xn$nphRa3WU$JU(1nRd5PT0H{ky9_r3j1>#) z1vLX)h7W+C@rr2-*b1eI@99qx6+$-S2NhSgjHfFvbapT>Iv#?PhB(O>>S+U<7F>f& zdD)P~$0sC?wVT&tG~ZEFZaaBC^pnO^s^cftof+Ds@_lMAHH%{>@uO9vMI`zN@qvPP z_olEV14owUs5JKZfGzn@&9?x2pn3|V)OE0x(;G7g*;IGynwH;*IBm*1Qyk#rsUXwU zyr6u%el;4ma^9uiHAn!AgG|m_8*`p=X{J?T6ldysRIvg<K9#1n(3han=W332^*E;! zzyR`nsuS}u!(%?RDv}Nf2i#Ut_n0MewbH9NLc|teH!s$`gH{0eb_E%2h@g|~E6Ar` zDM8M1;Eeri*fkHE!w~dM(T|$D=s9&f{7h1kXyT+G<AaK8p>3cLN&Koq7z39qK>R8R z<l2A+AoT!OUG9#1v8wxBfKWl`YCyY488s4gC0K4eb5<3%pxwa(ma1;Zpe?wP4&FUG z)8ggF8RS$xYUGUOpAZ4V?mc>Dt7Ty=U6HcP6nun(O>#-eB<HxOfq6#!<JzR%xSVpJ zR4340L}g>iDo7-EsC?55gs&$ZYTCpaFPIN(8l@uSj336d^(C~O#E#*Z9QCIMRy>T4 zdTBs8IL3O?k`6GVnya)<`do9A3{_VHjzu#W1XAtY>7Pn;fGGt1<IzP4mh>ym?5mH* zHRZn(IoIuZB(x_vuTs8|RTt$U&r0&2iN}A6AYe`fxZ=5LYM=Gk?ZGyxlsqDK_?pc~ z;j%MbAI3Fb_*Yth`LGys_}4e#X@BCRvGzUdsrbgfY504ortP~*x%cL@roGGDoLjw1 zA2v^nDer+$83;VpiO0#2&PNqbeohTfD{l5Vq%4we&fX0)E@Q##N=VO2a}Z7iUb_(0 z#0SdQ-iISK>Dpm$C;)Sm8Lu*C1OR)Q^o=R^LZwg46le0OYi7?!3%$Ru>r!Wn6X&ig zv-oErT~=t92Yh)yopF*mXKpaZt#*G609{SrJgN|QrxRREZ%MZGGX6X+TSeS}6?OoF zUVQ>`t}D?#JaK8HKX#b^04np_cKyg+E3PZ={{Vt{l=V*E)`p#?C1S&+Xh^D81M{ld zXh@-4l1qHmV7OzPR>=`3XJR84027*gU@uygNYA|!B9X@@9MiU--N<CPXo)H5Tbd4{ zvRfo_ADy|$tT}&o10Dd!B+}Ww$YL4i83a^HI#~_-yB)J1OyZ*ALx6LRwV7k7ti(X< ze8JwdqfLh(9(tPL<ksz)McjX#oUYPH^r!6J-zfYkVu7ZSRS(R^88y(@X=`r_5%bD= zv8z$Lx(7Z}nA9}c7Tu%~va<4UI@S?=%bfJ<UYPB%aLc%3k?mYZi0z?Syx0?Bw^bc0 zsxIWhS8T(P%K`^_gK$y?2_~d`lsj{pYPbjH>+4!Kb4JlDBmxxmH6wh@?@=oiIjLeH z&gJjL5LPmmW;r6M7T3?n1P1>AXwn7wvPU@UP9zdJ=B=xo>Z6M(-a#ds5W@<2$f`5G z<Ty3F_l15^qD96q)thl)9K^gVRgYCYD+xiZPePs|E!pU1+e9vIV~ynU(U=0>l<WAT zf>u=_f;kG^$fv;=ivHFn1eTN+`E$i;YPMQ!=CL$(((EMe%Y7@Asb6zxNjGL>+g!-9 z5X<rrkiwSxSdP-dMv(b(fxsh%%|6>rpOVu?(SHdYO;*<I)@?pr%6Ea4CYo;dWK@D% z9A&+{dX?9odpoGkavXveJb_QtuA;iVk!{0$mOdfh*A-sez>5C>X=Vz5lY!0$TvP5Z z^t-o1rmfH$eq%gj4Eq|rR)?Lc)YC+>IzXCx%cyQJcEcClV^YO%e#sFI!vm>2)?9ZC z@T^A!DL6HH1vA?2=mQZ~8`{j>E9yvY9zqFnanmNGj(1$-oF7`R8W7--m8&K{Gp7~1 zy{yP<v13oYoKLX3728(Xi?}726Y6S(t`cxFjw;(oJj`_Z)LW??ENoeiEpwdljMalQ zjKGNr0Q%J%Ma+APe8hCAQ{*`W`-+XalcU(bB%Xc)e8AIgFAcH)GD+w&PzlOlu1~Hz zR2L469!!}6f_S9-#<kJxa^5=Eu0&~NZ1`D0GLh6*6tU$%9cp{4wz#>S@<3-j^HsMM zKJ^XjbFQDdkm4IVNc?GE35<>@RoRa{`_U?gARdCIO`{3Q>`mK-0pg6{XSGMSX~!m< z17{iF)GoIzYpCMEhI&+gcxI7-+lo!)M>S4OD;0aIiL@!*PI(Jp(+O7Zfj|KF{AgZc z<+!Fnk=)a8rHLJBR07;}r#=M^M7@V@8-YD)LQAi(sCtal(LWxwlX{c05+yPmbg83{ zYVB%j$f%@&PZ9?QwQIP!n_`4v(xi=fI5;%e&J>f*PZVz5kUP*da#oPAz-`#?NQK$? zCjyI6vw_~G-U%ZWrsQ=Vv4(t#cF-D`9&^^F@{b(#r1dGLK*$Nn=}|d3;;uS?F;J{T zu*XV;?&@282g2h6ccpuW!kElH2ek^sd6Kha{cFP?EAr#6dsn`EH$XfgW`q&9CqB8Y zqwg!TIIGQ`i=j(*9fq#<lE(zUXV_Ve2?waGBO5M5GduS=&oy%19hz<2j6PG2^;K@x z%&fjwo9Kk%so#~{=z>w#sOwZ2XJN_UgH~fzjU0tJ>}r&E4<yq_S8BP)T=b;7y_muk z6akK;*Oybd>ceXf`9yA|usO+Q#dEQETfuh>WVpDrS(u&Qzvne|!%YjUqacIUu-n6y zGe#HekuN*5vbmhndLkuF%TuEM!SMP8TN{Y>ZQ3@=kxOgg%`QifHLbMq0koeq1~txq zWm?+}u|lW^VZ|{th!~d<f^*3v(P&HJTb#8pJj-*rv+!<_1+>Q3Pla4KDz7LU8oIhg z+<8>f?Lv0Uz*hx45y)`+i376{Lfia-K5&Pp&S^nYPe|xYaBdn!Bc|~_fp@9svuT$a zbSfqLtS09@jd>0C!oL$~aqjX&+goWRfa1IBmzm-U&hl*-8DpA(e$$2<<iY3Xa%-he zw#P!l%gFM{d@rxUH$Iyn?U>s%me%^jK*KhbF;Fsv6tS;VD*PSo`P9%|+`x_@n`04x zYE-YgA>n1KRx$n=_%m8t*VNj@?O@yTiP!HRTJ&+C-?#j-h?CT)u2gDQ?C=?{r&Nu0 zh@*d%zO>mc?~CqB>xA^f)?CSSY-<lB&ZqtnCz-$1Mh-bFFe)YZb$fKp_IsNcPo$() z16*9(L<E;}K0RKuE^SidhcXk9&zO5tyj#7Qq_DHySnLzwb0Y1NP_&kJ>O9b@DZlWi z8M$kV7A!N5Jxy@;T68jkuCC}uIde?6((RE(#dQOq^BT5%w$(CL5~nvc)xWEqkNhb6 zfijfTEs?>>ubKd^uE)S$B7#`Lwwo&80N-g)!H1_c<Wk!tu0)S9QP7DPQ$Mh*5=EQ+ zCP_iu7~DT!&b5r=7{7MJ%LzEiE2et4ihdjG`l8HWn%LZ)tu4a0AoIm?!{G0VT~~F* zqi48q05#3QZkxQ=+F;y_nOi*d?^aSvmWW2zS0NXt?@dp%jn%G9a8)klCcn(kKLhp4 zc?&(kcE=_;c&kU?p0uT2E4d>*GM7U&k0sT}h0(9BnH*!w^9@66TF`D;CqfSFw1o3n z&Z<hv;IMU?Qo1&-J_z`-SB>HE4xw!_9EV$ge@eG=@SDfbplLiueK6WXIAzNNSQ1^` zN{yXD={I*-4K2Q-ePo6xHA~Hy>e7=<IH>5Ev%*xfPD@=24e*D=FoQ1bLP9XPGG}nD z?*{l&#hx0TNIu0i)ue>FDLEkeRs>q!r_}0~q=CopY3t$*YBtPTz1o7LF!McYK6M!B zaE=mEwe4frbZvK7iWVA=hc2y{9ib2dk?UPGzl<QXiGI;<cWk8NVT(2MvTC}}kTYx7 z?0?#qG_R}bEDrrf>TKsA%4w>O_aay+a^5W;OvU3JF~<{mcm$P^ahlQ|Gw|w!->L05 z41Qh#^skbo)GsAPNo08x0s}OJnusYl23awj<8iGOTRjmA1yV^i&#++e?}Oz#M~NU= zSE?|<tBK-Y4LgtcoIuEX?gG9tZ!O&B70xldo=q|1!r(Jt@r;^ktG2`XgXsGoY%htt zEb3SLe#sef#0dc)RNveB3a0q=+gCy}o!nQ%e`Sb9*gyj=*2i&8Xc3`QXPBt_s3jl@ zUe^5v@KQ-WZBMov#2O^;gQ#0JIZ`AYYd-$~Thd?*#`ifK7{+m58MUN*67w!UyD6zv z2F6sqyFlx-m6+BZ+n;n?a1|4`GO_hF_PGVzmg{WNN`wvWTnwM3d0&ry4o%|!02Eki z8l2BHydapZ7Eyt?{p@<zmdSUC<8d_d72_`{6xamuNTn}tfzIvba!=FgNzbjG-`Dl# zRB)50vq@a^IKBgDD<p>IH;8o#<T0jPe$IXhoV@RNHz3N!Ul^_pudh}>R{rZF`_dDd zt#_yp>eJjx$7u??k3UmeMxwvF5+_EjDD!h4e0XccYpH7*j-Mo|?H<;QDC|c$uBtQ* zoacdAmO34-p6@IX#;+mynR=00FTpAsk7^|KGf|38&h`;oabOoBoHrEYWcC@PWKx|- z?M(>C0;wPo)SmS%w#to~NR}pb?iG*lv7};UW<M@RKo3e{FPbt5&N(KX3PeMF?ZD$S zpK-TfEtMs4yQXOu<R5qb1Wh4+2s{JRH1dHJMsTN{#-?3jJ98n3peqxSN$P396vL~9 zC#c0ExhhoPC#a|5JdnG#j_fM0bR@fovK~q4-kcd&;fVnH(tM)@K^f?2TYny7M}T>5 z_@hRMw3f_sMy&Xa!Q&x?Fv#GX<lu9f4iU1L;CAUsCs|RjJ79zBN$OUj<>f)LH97wA z=}5pter5oU;)qbO<Z+A&B#C+I2dSjf*@{iKsb&V;g}0r)hrJ9s0>rT$Pik$u?2iBz zq?Og!HW^%c(9%Tt5aEoYZ*Jt`t83FtnsvkO0y7y5LFrb~Pce?=UAf}3JVj)0H0cv} zzS3|%8qqe|O=?Wjwc>DoF9!3%nsm*L{%%j;E6FZg%Xu^G+En8Qy?bWAr5i5^tWz>P z?;v2qqK``POQn!sOzz2@#1Jc*vTLvPsl6x6+g*Rj5HgtXTW%km`cugPKu-O0LZ;@! z9=?OMB!ni<m*vOau2-h}ol8<Ri|0Acah#J+*&3B%ae+jPGv*LT3&u`4s64}QjBq+o z?2u~p9;42bb-~XS9D_L_NL4*ZrHQ<^AH;dd^rz14!BRjyL8RE!tU$`y+z$kGp-5rZ z<|32MWn;J!dr~+Iaf6ZRQx_>{iRMgDrDFt)DDG*`BQR2c@G+cH5}@rMk~zVnEzit) z=N+qEdX1~<H_bDUu5w3mDk;}&ha6|HsZug?yo_gX$7+gVu6F~+(yN(uDRu<TNIVnk zPmt~kI+50x*(4GQnn!=$f(aFieNdXzc~CasGM>3K7Yyx?Po^l5gM})@oc+^LnGWuF z1JZ>ny-Bs0m|wlnQh<e93`zH-+mc3p_evm7F^FaZ@TX>-#@c8?#0-&uJJXBh6}fDR zOk*G&$FQabE4fb;-oTy7H{n48txVx=c3}?y=O?{D3i)Sf=Q$>&jk3Tg=e;YSYq45a zXm|=p=y6Okumo*5Z(6lFe*HGCdE^?ea2U&iI0v;te9fi}3d!Yy2^+gp#D${T!z<pB zatwszs65j_-}eqG;=7R7@{f>|BgqOka7KBiY+|`NZQS$Pm9Ve09=%OS>?2GECm$#k zZ8Wqr*^rb!H}O<S9_cpp8RS&$Ce~~=;739^sJzDW0X*^PLw8mayFw&#62O6x?^10% zXNrve>5H~TJBmXg-NsmBsifm%n4Y&nPFrC?oH68q%>pryMn~49Nf<JcF-(>5E)7hi z*1>z|GDEou2M0L8rlSOm=bw6#Toea2430K&&IV01-RxAI)}&jv?)%CK#s_+V@*g<J z&w80b-?@0_y)}u;cRuyAYFh4Q-LxYu&m${CzEpg<sEpq>-Mo>LPBLQ{9XTeYHG3A; znvi_PQrmH!xvK(HRoX_}_ohBZ<GUfcQb_E}w><X9sg<r8wQ^1wa=)EJAqu}R&S;Kp zfkT2A@lBT}BRL&vw7!FSqF~!b(}wq`ra&={0i}(w06(1%jG9_BChkTzF(h-I^n`qz z<072L<sH4Ltl|0stUp?6N$9pf-GKuhL+uBG4LfKXxh#7e(q{wKgl)&Jb4pjff_kt6 z&BEa1Re-;{Ax>O%6&g4WNM31G8RW_wXOqt~IooqPT0~Kj&C2cer818=U>pxxd$?|j zLC<=Oum>GU>T5+VYv^gZ6^0~cU%K5Xo5^#=c<)O1^f~_Vrl`-i)}iPo#+V!J3eAOH zpi}p@au^>|ikBOdat%i!5VU+`JyqD`Y#*<sB&(L|$E7zLh&jebektZ06Osr%hKu$E zpv5~$12l)_EC~7>Q2eP2kWZ~NGh;c<JDRx34%Pu1Ic#uo-lK3;K4FZUREK*5h9r}k zYaPHNo<5YD<zSl{NF25R?M-K51_xhSQoMycp48&IzECmVj#RZF%FI+<=bqH)qw^mp zg{F=VwM`Q4=t!)a)X{25v1A)ma6PHyDzHqFX_3RR&RpQr-O8MUocF47wt{Zj5y(_N z&@gDpC+_4@vlTm=A6jXZo>SNX!5!(@0&NK{^9(4X3>ajw_pfAkN&Ga+kijAtC)T`h zr<l8UV<)MvVvaAf_)Mllt46sZx~Mm^II%wUnZ-z=FOZH;I28oyLnr_i&w83~^@YOi zZk+X~3+~D1KBm10uBRoeLW6S%_H8|KdzzF2s6viAnq*|WfR_12deXB5+y^<QEeFh* zCzeRb1E*0-0*%-s<tLNrQAr>Ga7IT#PlfUnf<eb1(sD@@jfh+@`2i!>6yU{%I%hbf zfZ+p!fICvV20}7P_Z0bUshqAO4=iAOt<=?Nfgg9A)u~FjBom&WN`g{LWpEEqtu?OX zv?{9X8Nu}iqZkjn8%Lm}C>Sp6kf$`+WZTXHf^mwd>W3HHb}~uDBjEr%vi3CfM%avv z&r|7&M+6dajoqqasM{)C$XMe5t~&RxFZh!gUl3a!4){H5)31?~`VU(2?}<zXzh(Qd z7+doH0F6yVoPVz)w+Pp@OSzfho;*#bj-zqTYpwXXw0H+nU^!3$u1CWM{wjM9sq0;5 z#iP67-mRC~S$a`TUINAIUHp%mWaSeljiZ{R=MRC+UlD_Dy~fd5^6=nb){WU1?npX< zMKlkeC#6WEBymKU3;-FdlwVRL(ql*Z=+8m8SEK38gj{pL$*(<V*mlYGuKP=zJPY!b z!hy|1o6_fY8QC)AjhXTnuX^l$95WqS<y#mK@x^h)!IvD5Tvuc8>Q!B4PIl%z5^CV= z&1-81eaasm<;9MSa6l6gkHWm{k0})O+%sOE@yp6K8b`_INM<L@Ex;J`uQS=a4A*33 zb^Ui|mrDNi_WuBYi}n(;#Jun;LNXb#-`=q7r!hHD4h?KWDz*>Z&rH^d>*PfAWX*)< zJkt!tsb#hfGR@bf4JbrhWd3!!u@@t_B1l<Vp%^t1CJ_cs0030;s=RpZ+|*o!;N%{J z)^A;lPWm!v<(e5cK*|`5eAU=!(*3?JSvRjyo@<C*z<^KUD*cV*mNTr-I*EG*=~&5Y zbPaN?4@!d7BZ)y@pQ!h%Z#r9r-0i>9JXThLt({X#^X8dkkP;Xw;Hjn0?|jL6XMk&W z1lER5U5h%ahKR_5Pcgc(`d2e~A-KRCf^mxI*HI345w<bbv2M(5bpBY#CpFDdT&A$> zbGntZmhxmS5cATg2Ez<jOLWL`3uN~Ox!KiL?fo-XPFK;IzcI=KeeP;&b#F6bj-xdf z-f^^Iv?R6`)=@Z_eEBoESE`EXjjzg#XC=Ifvq)92Gw)G{B$7=G3GeutPnRQ*MQoQw zaw%#LDaTH<*&M2q(wzLCYL0$JDqg0yB8KZ@f=1#!>L}8Cdx<8qF|n5*iFqSFhN5!J zIuETgadpN>$Gv4LN?Nj&X+vTiW5jQuMIOjYm0%2PJ9jy(OZ{2(S)So$W`;w#Q#=9b zT{oKz*x7jyxK8`J)-2u&7YNg6mkOvDmbROW4?$eBhbp^ALaL{G85S2FMevbP3k?17 zkyd;~;!E9HIMP*)B#m~2g#ZNl)?isJ=P^o#IY$Ik)33?zP^{9>C9HHQ>DKe!ULa7< zx8^wP1z)owStUid&sGsukA%o;nbSK=kuVq>=M|Ht#j@z_By|}h1lG}3A}-Fw!7(LQ z9edTEG%A2OG{G1Rk|{!Sk=~xDm#ffxbD_9GN9R}fjrnTJYjO96NzZz{7F{_N4eMcU zi}vr8I3x<Y6za@3GOBbVzG{R}l7KHBwQeZ$CrpaPvFurzIMH}wHw<Sr%lNM9TOB$- zvRpKAsoLk)HPT!{vfyJlu3yHm<4Q<}-f02+s*~;yT}~fxLP*Kyy*Zyfxuj$vuxYzD zlar2X7WLHVzKEF^xg!*$W4%I-Vj~>X&UbTE-iC5O-#G*fd(t*eDW+rCQ<cG}v$0D- zxZ<OABympN-`0`I&IM|%V0)F%B=yBUFbdML20T(H1e#2w^|0hUX{2SaPE7(fXUM4) zI+NC&mr#|SqeJKA$65*$IR={|@JQg&#LVgQ4u`EvL?v<Rc8{3knvg#<!-nJzO)DNb zszbK7ALbr;;*d#}sDqQ7^rtHK%_#-a(3|Zicc2-eZyBFx;Cj;xJ^LCKFueDvi`2!& z??U`H0J!Hha5nxkSjv39MowzfH#iw5^Qyk4k7DD#%<)oN$gDu`QO6?4y!AC4s8sx! z8ShQWSQELRBHSB}mG0gFw-NYa$O1?!-n;_Z?pOxGMn~~AeFfm+f8ia|*-lmC+)Y$x zrG%SuvC=f?EE?D$$za>FRn)A6Zs#7f@hXH3w<I3)_<`QvyIw~Gnx{KN>WpsDPDxcC zX#2V9DYCzq!Igsg1KyyR$YfySobgeWZ#5ek+tR$rFKK(8q->Es;Vfja>Nu!Mx<!=% zho^c&Dym5%gOSci{#460)^)s%A3(XfRUbK&Y#&kWT<$hBid{w%6r|*2ft(*&u1G>i z`<$Fr%Z(3P;a0_M<tGfTaz8q+{{RT@h*o0~X@+cn7Vrg5qH~SybXT`4E9HjJYUXy3 zxESqBx$wt`A%vN<;S!OI@6SG&r`h;tSy)E<G6CpIRa<Qe=7WC`S>-7CU`Qv5uqKU= zkfDg{o|Sq}3hH=9FsRAk6U9e;;C~QXOgBXlfUfV|zdY65yV(&r!=p2wV}X&5;}ry< zW?{5r9Z9Qmcz;=nHC3{bMI`qW*z`S7gCkgwdxF@dxcTC@Wf-FiCNZ9R16Kj+3CGr~ zN8ycWMq|^#$>6in+-Q2P&`y}yJbmse9l5M0Rvj5x(Mo5X`RWZvFl+z@KDBLhO-V*2 zvXcjpQM38dHjRAFKXh_^Yebq`8!E9~N(7PDpRFN??HJ=d>shp0ox^pj9C}nTX!nxH zJh)1LKI!jPn|cuIMZFoBBwHIBw*yPDv6cMmMCiJg0NFDSV@h;QOkfKl0XX@a6*{+c zIaQ2q+bAhx#yO?)GFf)x-!)_VGW||I%5&+Oku+UMu|HstjB$fmw_!SwR&D5Jy6$m; zM%tD}55{@-t7k*hoagM03F--^HixJ&IkjvLLz+{Q+|ksEdb2)PQp6FDr7TggQ=gP} ztEa=-i3I(MK)LGJ6xGqSHgFQj-|?*!u0p7u?G)KhMadMzXN;4b;Qs)7wQGN2>N~c! zn<yTj_oN;kzt1*q4`5AaE8OT+p{y=uM3Orl-~rg?o&nxA{xzu|hc!bc1(T0(!iVtX z`sBPX7r%O_`^!U`c!;jL8P4b<A-bM3QM(w&KY^>yq1>;`Au_H2<ny1UOZ|_iq)1lD zpLZKhIH-4TR7@*JuH8(uA^XuL;m0`Zn$V9xzYa*WC)l<r&!cJu_BEp?zC|Y{Ql6aG zMq=D<j{qO#P9;dos}bp1b9jGHc=E9f<JPK;4^b0Gx(tl-&lszc=8rL~YC)|YyOgu$ zbOaB2U7>x=Y&VB5oRb~Cdw@+a_;XVn8yPzF1XMxlDAirji16-i2=y8Dsnv);NgKP? zi}-H&*eSGNea$%dX84I1+pxgE=e=Cy+aI-ETK<uY?9wxBILCUaa;2i)TXr%yu7x~5 zs6>8iQo#4kWzXU3^&3?_eDq<(Tpjf@sWoj6(bZfW6<nV~nj}?bAn*z6NP~I(+Z>Lg z6zATguH27Ww%O)c$KFD?%3v@#>?qhn_Z(zXc9Op_ARZ1lr!tJ-F*xIsL(^baRu&f+ zJPiBPjVGApO5s53oK!@GQ<I8&$cJg?CxMa05w_)8`k@(zIU)Tig?Am_Ha*P?hB-fm z2TF1tdT@BoD>kmjdmx3`l(PT{;ABun(z}?jKHOA=Fu=FXjxp&`?%c;61zzaMX}Gx& zoZ~)}@<C&QyI6F_O-0LcbAjtpsc_g(Fa~)wFHJ>zuo8ey03h*$+M-q3#F2t~;-@TR z`@vV-3XA3+DU+XCZP^VwU60wcV>n-2(`IEU8uTFbC#@i53QIU;>ymn!YbanOC-F3! zO%-l!OR@dcY~b|i+Ll%&a>MT&WYi*V7i$(B4L$O}0NM6ED!EZFsR<0y1#O^q+gV!f zq?U@-Q(K%&nORRfR=7eX8?e0fu201iO>^RFJ6RhGEM+5LG6pEWEL$;hy3_j5=Jjo5 z?>sRCB}8uw#Yo5AUt02wQwx1IFi9kXUaNbjlcj1bAI$P4+q)cBlxk8&Z)Ew%BaW5N zJIP(>bkSYEt%gRxkaNi67^wHloIGo^94-%9U?hN5fzPcB^C-a_laRu>EqAHWduYeA zC~ui@o(O8L_TVy=Bmi@a)cF&q%t-^DY6gAp$r$ZXC4J2nx)K#7_#J9Aa*{F085rbd zi3gTd2|W5!nnKHhIqQ>J$*WtqxpdI3A9EbHezcOg68xlrM0u4Nf{-)ToQg5?E?9S_ zv{q!!$&Xn#L`yKuMvs{n(wN!Z#SHtGpvXOHTP<uz9dN_v2cYAvFog}19_)^Wm1K3` z{M?Q`1v*9y+2{`y4(;51EXJbCD9hlIa4<27YoJk_?kChzi3;cE!5sxGZ-&YI3H7T@ zAvD(HCwO2Ka0e$8=}@eIV=8;ppJ-T^mK*ceibr;oZWthrC~K+}`m!*u9Gm{|9R)Q@ zZzrWZf(ZnGy|F-Ts&mqlxHV!y4&n&qy{VT706C0?9SJ-dQ9BHj@82~Elgx4ollauz zx)SDZQPHxMIVL_kdel)JvJ9LI^)({G(t=I~J?S1NX2DRZy-s;Fa=(#%ZcOTr8Eln5 z-uI}TjHt{`ae#3^UoaB6D@<lw9Ar0j6{3aLc1vpFg;yuI1J;15oQ1(O+$eHEBpQ1W zySjil?@;-#W@gyZRaD3TY<6xbrv&GwY4QaG4E}W2EYg6gr8CY=Y_wX3O+XQ|aVqCH z08>_9DaQ5Z98;NsouP0E&T2VFIY7;hzSW-EGWR568M@>*T8c&~BLj`3^%O7$F}1LM zl&#92ex%ZGp>J1WH$O2QbKaV*<}vo}Y0B!kJxQq1goJ?HdQ~UThOMwS%R4JL$r-?; z-Gcc9<Wq<W4gfv!X@QzTz!8jRr5C=#Zsbjs=V`@9=cr%^BR%S3!N3IL6$5;#-!Aj$ zX~tc`%0fIbAZN)w`KbKet&ia&kx{IEYYoAa4#u3|Mo7<JT8VdT8o1V6IO-SLl#s+8 zX);1^d*+?Je6V`dy>&$Dv_ee7KX@E*N=DQA(<eYs5P<hPdeO+*#2hzbd94$6xcURW z@$w8P>za%P5(ADq)S(rbROACnS~8;tl5vXCElXl#nGArl4tPG58!!@N0!BL3f~7|X zuQ;fkSVB(2g{<beZ(*-_3PT(b_f0n|3w0+w=@`1>X~Ozaf+WFUNF8b;Q<!$KBIVey z$Q^1_Vq{hvbJSF9S~Ld)3V)atK_i1(NvEi!`BuYuX^OjGbCx2T6RSTsIL-}B${h(T z0QEHrZDIV4R9b7yo|hjao0qT3c&0joo@io9=NLK0D3k#F93Os^G??O>cVkr*Mh8+U za9rT_r%17~hGr|box`EUGHCH|WKem>dR;UkZKt3gnBes3PHn4#qX3^;89`j*CYm7w zl5>vLF6|2a1(O@W<b5hODS`)6PI3wibLuL&B*}xvr8ru~mTY=I&D4rXGsaIIv_HyE z(vuAEvjRUl8Wf*l3xL@zocBGdRFFx=a61uEMHnOIIVPL}#^hp-Ybyd*Byz>aAc}a- zI0PSBg*Q1k0ZHghS&TLgamP$ixbBB3e0;}uwkd}pfgq3%K~lRYan~olDUNbZ2jf|C z-HF^8vaAYZXN=NdWUeqpMZn13PI`k)kd-GSk=C@gVs&dmNoDe0GmL=4JbIe;e~~;m z-~!*fQn~f76E^};oHry44z=wtt2Tn1b%+p8UX|NNSE<2Ov~jb7%w565lT{lGrB|Hw zBy(C<Bg}vtWU1;+WXSBSK?{#uS9+6LoY%9s#7Bj`_T}^<q-+!<0vkVtDU)|#aw*8n z>T$s7Nv?g^)~r||+@eC`=x9YJEC?qwvA8j?W6tV`u=58b4CAMIX(Us+Hqo&f?)ixw z_^Sj4ML61h1!uzBhu+*k#wzE`P-CI>G}Yr|P4^^N)CDX-2enam2Rla{1y6=|0I}nm zr7$8uLxsucO<K0ka$U)lixN8VnvI7~lxM9xNxYA{(1VI%6;Xz6DqoP(CW*3}x#Ny$ zo0yZ%eJRTE?fDh(-EwLz!bV^>V>rR0+@Z?lc2~a)tOK?|<X4w`No?!ZxfuP&ADw!A z-UA$U#yPJr_>u_LEOY+=Jc#{jYCFaM09{etgm$T^mEobCdd-JpitK(Yp&kR(kOBU$ zA4=l12V~c5l}}j!uIJ*b74S~5dz7b5zEp*Zv#Q<y0IMG_z~ybxf7uzQJR$IV(yuU~ z#yAxszDU6QYLdFSi<DC%2tnz^N#%fdRIWneqAXaN+QxER+JTdfocq^rr64h>1UCad z)x(5w^DyHz-RaI;Cd_@&lUUV_wmR_2*M5c4fIfPY#dUrGMQvrhLi3vA<!3W4!bT2F zbpHSkCXxI@DwYbRIm-2@rj^ZWHk0f><ET`z(;T1#PmF`@UUV_#sVBE;^goY9hKr{a z?{kiRmE=*}N?&U+AXfbs_0^tjH>{VZ<c%=kxe9Tf^>sHC13Aa3thksf0!?3zb;$KK z(FfepO6Al$4tWNpFCko#Fg<FdcRQSS=Ct7h9QW;8^f{f=E6nV$x%<N%sgODH2O}VH zRwXLLt}>wDimc=U6$SvT{Y^9`EJuDRts!oJ)RwmED00q01HCuyxm7tHwJS$rZ_JGy z4^Wd!xDuhubYR^GHQ5=`?N)V{cs%SC=Yr#F00wIPo$<AqUCT6m#%d}_rD%yQbvnnm zGB!%>{{Uw++?PKv#yu*qyMRU|S%8hYXRUMk#=UlBQD-0ScYMspsIEIXGh6g5YTCJZ zOfmeV9B?yPa+Zz0bMtquhSJ?5L~x6}`8gF+TC+DQtfy&SqPK;jHuTibg6C@jYU49p zDQ(>685KnlP~ne0^y4zdNZtYWHRwXeG}Dr~Hz(yMKJ?PNv)+~_5-A~pH5$mM#F+=@ zTDdKVNK*d*Hs0Oovak!^KIW6{FtnQls9*cJ=ApQq3yiqIIIQH-D_E^aob15C!S77s zMmgf9l1R2~EHmqxjg^>XS1NmhO-lP5^43}rDmu)0!uG{V3oB)KKb1Fk9GX*c6frwF z+*EGc+}3iEXGBvuU3na8o8-^T2R*7glBOkPIr>yOo~ruA-<jo@AwjiN^&+iDA~l+H z+6FpT6WrZ)8KlkR+{ZA;Wj?s6BLwRWf&eUWpL)!=y7EX7@Y($-t#;eI%oYeiX3bPz zL3Kv;;B=Lg9F;i8rf+c`O+9at;x%;#X&hv8NCxB2N^RVm>L8Wa0!3T5y2}x_0~{Kv z@+Uxf9Yt7%a7Hm%*|5<XP|Ql7Q&wRv!>{8-m9S|1$w=Ft1zLq;Ioa#eG$qZb^!b(L zX%z5IGhDBX^#yi{1#rx~oF0|e-`!i<!e(=gp#9TcS9v+Qo=I7WF2t^S;-$1UwIXH7 z<DB=Xn}g7d)X{LbZ^Jbd#IXmpVw00CJuJxfg4H}=9y3tjgZ*j9cADBrBxv2$i3r6v zX5&uA?g{*9rA~U|6^+cBu-0IQ9qF$8pMLc1q4H1bOmXtyRmI%XMkHS`KJ;wCs1y}! z`c%Gd>Zfxi-$Fp!MrpFjNC0)Fd6_uJ<4O0M6t^9(sU{1rPtKMlDo7&&kzA?TXp%zQ z4AQ;I+j2tO@z$ee!(^QLQ_BFnb*S5({L!#qu_R<aPPwU7g79jgJbDpQhsx)z4Vg;l znn^nj)WY~2_w}ZQEyz65y6#-J7^xg?$HYrEJ5sj|P^aD8PZc7a(dLHAYVORPZzEO< z<^adFTaMsA*0WU??=T-)vl9Y%{OVKG8Z;EEADn00*U?@ZghS!YGB7}2BycO|7$giC znYM+&Ccc!>BQfaqic}NjsSWs7LU&0H65W~&g+)0e9^REQsq(jzg~mBGU-yp}I0G~s zvS5?I=}}Vl)aZoUdXW)<&tFn$k+^nXFdN#lB-Q4;ltwM1hB)%O!TFk|f^w_5ROEH9 zE^Viw>L%K|E?vM)qnvJTIBo|3>p&F0TJ;EZ3xv{bZPGyuDG*=Wj1!)@HRRXweYz0? z{n-dopyR!F@y`gef-7)URRAQlc2knI(mae`G^ejZ?9)UcAb@_Snqowkw(=v(BDrA5 z%f>NOq$mIfEKN6boA?D)e<MRUos!dYMtG)pR@Pa(=(lcFbHFsB(_}fC?jYFWG0jkC zF4-ZN9?COT7T<cQ+D>~OwF>sRYB$`eHO5sy9D~<1@Xa9`yZh9)b}te%fdG#g!5oT? zILk(k7b<zH-40!aZNm$>zXMS`cmx0mJ<n>NX}HK%+HuZKF;LvFDp3K)>s8R7i(3j( zW%-E%(*}sb$me-w>Q3TuLaui6)43EGHm+EbPg>3U+LvXrAyA+L5Ma6LcodREv9dEA z#AoiGTD2%L?Ful1o@yq9XDon%yc0(^FqZdZO`YV7l|SC?O_f*8A1H2k#}#Xch{#dL zZfd)qv`8NyW6)Gt-t2DI81X!F5*Uzq>(Y_D(~^E=2N<c{bCHrb?NND*z^GCWy=!*K zZu^mf?YNay9kJG=QvE{`2V!aAK>(a79-^5LIU$L_J!%`a!dmFWl1G(;6O4{APB;ya zc|2z|BB}-e=Z{lRl-cjiMx%}Q5pviLOrC+NPb~rYM#jc7ngQ6mg5c)^bu$I`6Tv=} zqPr@|bQGbN8>DfA*wl`)%0^Cc)0%1mPeXt^)602ZGjd7b8qKEL2i#`G4po?feHw>c zqV73g;mOITZQm~KihytkrnR|L&f-AnS|rwi(?TqM@Su%IJY;sKs95k_PT+sNPmNS< zIQhLzB$#<Jc^;ISVsg^y5wklFnL}joeJPU0Wl*XI)YOm5f)3wNp0sbsD4+($X<F>f zNxc~!7BW;|k}=km<aK?!Mgot{h)^zDXkborN#<bWf--r{X!fzMn2gN9cX8>8M=d!} z2^jP}Y0uOi$I_W1Iu$=QJ5~!#hkNVPMsQf5C0KrRI|t;k104-WpvX(M<vj>B8?MiM z^s8wVvmUBKXK+5%QZ_zo4CQfCwA}H_VxWi<F;EH5QYh7+T+QfxtW>|s30(J6QZ8}x zesl*2Gk|`yZ{Cc(GupAgK9)TfwxX-9>=fLGv8a|p#ID_@oXp2+w>TKcq!MxfP)N@v zo7%wTu82{VP;v<!Gfp9g-aM1Q6oBt22?IUNBOJb124y@R)t;|l=CcfSCqC68xhy!s zj^><r05RnI()^LB+(GosMcwT88{0qun2=k8$R>jubPl*Z>LUBt@tQXlVmEPGUh7c` z!{^3xgPNH!!BE-mdsTE*T>RXT%{(Crc9Xb|l!L`nSJFgjz4RZox`rEbnn^(*1;K8# z5_8mh;)MZNo~@3irh2P}tu{tgh#8GG`h(u2+Fe+WyYEiIp2P8`l3Z*>%LATzVyS4Z z9IY>Oawy{iKJ_U9xnqis2^vVcuU^8H<7UBZWOd1>b+I;9A)7h-yR+O>S668Z!o^W$ z!BoiRrgA~b^sLQh29oPfkSQu3sHJ%%`AN4^jJa7q;TzTV83X;Ndj?)GO?e)*3X7&K zka9DM_q|kF$>Hr<D|s;^I4m2sE5dw3GMne}&T;_h-m<Kv%ek!=%kHB%{G{Yyd(?8_ z#&SS3^;Vg{P=2jZ%KNzNIO4J8(C=ES3+1xlMsPOp4L3Wa3`PN|Mp;HdPzO^<C{ux* zrxlHuo`YG=??c-nk&vGGBx4z-mw3Pg<Y&KHGK^ec;Py2ynLDsf&f^QTvF+QpXzXdR zJ`c_L)XEk-U<CwyY8jbXg0CkuCR0i5EQkYqpySq?AQ&A$`cuqvA_oU(Z{Z%4!VHc$ zs@-1VLb1$jIv-y36e!QjHURahHx?uuo^e57ryP&1WZS)v+PEui81lg&=QyUw<hDTy zI^u>OKJNIyqsYUn^*HHUrF16sNROFMP<_ojJ8o6yX!I0}02sw6+{^N|DL18r+DvTH zhuWZI=eWfROKwM8<aGw5l1;%^BXH_Tpd@=kK3SWtDqFI<CCL!R*+RZqU8fysm;(e1 zA6mB@h^e#^es1EcecY4l)|J~DVuWV-h~v=lPG(6NR|QUa-OURrd<S#4-kuQ~aoxZj zeQGY!6J%)_NZV@`1oWt-BMN_up(38l>Y<SEdWwkTlBDo@=7>$FqZO`23gEsox3+3l z5-=E06pp0Oun-D^w4QQkVT=GybB=4LM){cCy9$`ft1fbRB+)bqSe3{*zyh5n3Inu) z4_a<`$YKpccXvZqXiTZV83YWHeQA#5atRsg2YPZxv~~H9awrj(INkYDUB!M~SlCfU zPd_)Q=}M({usnc!&{0AA<S_Q8oFiwbrK=|WNZlLwdU_f~3?DxzQPg6kkPHF|6wRTs z4}PT8tr4#^#-xhOcPI_$dKzm5W;pprQHqccnX`^N)N;rbumQ$7te?f94c}4><d*0v z8C1LPQ`V($M?I;8_Z6y=mdtn8LNN;l$$aEfWR6*68+P!yJB>=i%s2-P>r7N6oyQ{> zt9|Y}>Nm_)><u<i<l_KgxxqZp`wHYP&Ak0+UI>%rV0~&<yAxp&M#cyRn9f1YF^-iX z+R_cI7mjmHbrK#ABl*&CySf|KLC)LI6&*(>-k=GbfC+C}oV1968*bCiR+)^}jxmb! zFU(|M7x}j@Y|!X%RI?M_p2)>V%f@==nrY%fRlhpLu7uocWtZk1u}X>zXXXHP$)`?3 zDxQRl5ls6t<OIMS@@krn<Ue(i#1+YL#(2hfr^w3hv%jSvaD)Q9^y8&Je({n&98y;k z*Fq;!UuooZrpJK99+={s6@zomd(ss7j~Mr&JB>Rbm|)(5k+VB(89uckkUr2CI6Z1f zGNced2fYoqp?7w<7Cf~IIbOK+q<@%)T#StErE)Qhb4Y{+A1`cXoE`KrlDOf=%nlBF z(maSH+D|8;rm)=PiZ%_vkx!cXAWHj)+26p)rn_M?B4Zut<;-Uz=BD}F<$xg3FLz#o zyoi{y?qmQDdR%#t93DrdB+~rcB9O;4!g5F>0QwrJzGZS=g2L+?42{_BPk74`$K@xH z%`syDbs>Fe;#P|smmN72J$D_O*bz=~lg(MS%MvrkeARrC`8)$wpdro%7ap`q$k9f~ zes;DP5~i5LX#;Q>=qa-9W^Q+4p^T8tzd6qYicO@fnNy9?H<TT^VE3v;zj(?){{R}k z2nosO)~HP9%PbW2>M6x@G8Tfg!XQ3gSbz_wHSRWU&7z!Sgn)8-9xK9Ke$yCTyplLS zTK8=*kL*t?)-XRIUDUfCej`_OahHyuoDQQn_pGUlGJ&2+JF7xw50=J$Y+|Xhjk|#7 zBo#H+YZ$2LLlcE;GO<04P3CPF=)}}<qZTYr9fe3jvJ%6Q(=?vCTosm#K+IQ!E$%4< zyIcnwbI&xXkrE<FgPuw6NRoWmlW8EInA2Nb6D7=O#=#1(!yff{h}ucZ0yFeALfO<N z?mAVLBO!Cvt!g`5kxoE3EyYxjjl_i*KBBCme1`<*7~-lv<ziHEkK(49*i1xVI0Bvy z(0B(vw5mYK$6lGH?q?V(6w>tA$u`)zY!VqqJ?KW=Cnv9<qa$t<l6#y}2;5g0=BoEr zDW<j=coTjyGt}3ad{a%D&Ygqzp(edTSu$`G1B@E;4~n@u&X)bWrWKsiaDUfhy8`*D z+5Z4roc{oa$NW#Mi+|5S&3B&_8_e)Ns6hS$&2XA3me#CrK>g?(*M0FKIUB%w;uR|C z87G`(s)}tc{{Zk=IOS=#9>>hKaqqT4{?B@o%LqB6PdT$p_1Y+5xRaXICeCFN9ow=E zE3e9=91~K65*m3`2zaeF9G7Ax1=ndCiLTQ|+G8Qnqc{Va;kS~1t#+DL?U0=CW9G1^ z?dEskwN3v3T}$$kvg0`(wb6V$CHzwmA9u=PeznV8USZSaK8K3xz8|jbaz4ydkbSE< zX<X8?v|26vbqcx$oXxZ`xbI#<BMjLbn)RQK@Vj_-Pu!{s+y(_-+Pup^W%F7&0R8AH z9~mI_uDLC*{c6t=o8@hPTOxyRM&ufrDMJms=iaT~pjk-VAN{Ois<0b@9MF!gYiwCb z%p@Nyy;`=saq|VnPewITCj<dg!x@$M;<Sst=2F#~2I@Cm&T*c&t0F657U;_}NyrDa zW?fo@PzdDr6#IEvGzbp>W18CSiN@ubBHM<^=hB*F+kz>EQbrF$RPJuD;a9C=H*Zi^ zE+dfJv5`}U1m~t|oGe)ftyyOB#~>a%)TpU$DP0q0MnSb$j=*zTT5g>4I=shV#zi*7 zC8~$#BxH`YC9bFh_)x)f#(ir!+WH9+%cx0lA%@#KRN>x4$K_Jmx_R+Oa>iC>+kwzl z?Y^NM?W4mqYH`L?b5q#(d`TKgth;m3ha!cw;x_DGwea1A+7i%=@BzhKZwKj%^1Y-k zbJk9^cFG|QxL`>O&OK^(Z#xBeC%HAz6?bzvJuGGq3h78ni%8Uwf>y9KNHje%Sm2V% zBxX1az}INV@rB=lalx!zcSQc#Si`a;f8HaS&Qr7ZMbM>b;k_>QHh=8c9FB|*4O%`J z(w^BP`yvgkoDrJ8YhxXZ3mP^+>S|-py)@jkVsh707GDKvWxnEr*KXR&*EH=PLbdbm zt>ai1jOQHsS6t3e?j=qJJ?j@;v5Q&L=CHiCOS@UQD&v(Sr46;S&}l2`a=Ol!rd(+c zb72?Rw}B#%bJMkX)}v=7w1#zaBDYcLUa73<@adXFi5yD`M;6ekb6$OPjN@i-4>eJI z+OtdQayKc3$RCY5-<XKc6|t&mqDTypaKL=P_pDn|HnQh~Qzz8XC4CChpe@f&T9{b0 zHX?T)xtXvt-xS-XDX~|e_3v8x(~Iv6K_CJ$tjace))7*2Rx_yVn_7_DKqa?{qx+?D zD#Bqw3^GS*e0qVGMANNeSX9Ce`8HwALe046^RGgjG}m(~*Mzx7%7ZxrZfi?NwuV<e zV**DZJ!*x*WQ-HHgPPFL<b^Lkcm_(~6V|YlZ+3&3J<aW^Pz}6eps1rwtieGWjZV1$ zp2yaaxCa^O+PNjBhMSy+jV>kA?7WEHG4_V!9=NVCV;g`R8qo0#;J?+Mf>tAd%~|Uz zthhPOJt|Vx=+Qk1<X{v5)}aT3ns+Wqrm|pkt9lzo!xV2I=ZceXCmpIDKqj7;+mqI! zcW8#1)P72wkJgYj?B|LVvb3xRUs}(784YSQkU*v~@yF**ZKPmRN6ZatVM|0KNAenr z7$6F<xB;~CY7>=idQ`bJxc65VXwE>S7|!Z>BW`L2CAx4b*Sv;_5P6Td@k5i3mz>gs zAuu|cBg*xqYXkEd6@et4qM9?i6*gCX4|;5?gO%$_S8OgDGIP{Z)C62pV%$L8-kw5$ zHy-sP-CRiKA+d^<M*Z3SGfeXQv!1jUR{PnewH#Vo3aO9>tx4n^pbCaLaCV*#V^)&j zV-45Vl+)-`+P%okC#6dg1s!>&Ex;M(kj=S)2ZPp{k3wY2*7yzIaUcQf&3!$mZd)6D zzzjry6ZEf`bjRCtvJ>}YQUUtc)Nu{g@aLSOpVGI2(R|5^T9Yaf-#zIjbX9Dfq>d_9 zaO$HN0AQM@dWHlfw&Ww8I#krz-0P(tXLA}Q3vnPEsVACr@_9t<J-SmQaHr+rYBM5+ z035OPuOaHsXO&oVU%hyklbz$GdQF735EM(3bG}AZQ3QLj>zebMCM|z%qXXv|uS14M z-@Z2~j^etZqS)}UYo2Wjbs8<)#y>M)VidT+#W=|BxZm>n8n>oJYdy{{XW0=1ZYTJU zOw}}mi5YX|1vuWlDZ8ysS8s%$&5{_wjP3W&T0?L}!pV{55s-75iAh3pf=T`=Ymg*Y zL5AoBRAp~bD<WC$=DA>GnV%dLrIz3<VG|?~)YMHQ8FM1-<B~dNlmgAP9uImhCa<X_ zx~mhr7{_`>VHqcI%XXz$im1ZwG|43q@E3VKc<ECoriF7PIh~j`2>R1J&5qmASqQ<! zIfCs>0vL?*Lxo}UXMxilX+*CyJfkdQJR@|;sGA?^%AR<q8JA-G!GRxij+mvD!;ZLb zN-xWz3pKeC#kMejboHV*#C^T$Oq_*dw>*PD{onxg=}_Im+U!P0m`^)F=zG*mp!r+! zPJZ=S2n>q64EmaExqp>NQQn_5iB@_LqTu1Vp}{MV*ay8m2N+@V58|gW3lYyxT0I8z zB2;Nd9R3uq0CKzXti3bdrg<<FFALX-O~P%Y=QP}`uh>bu3}91XI3NsDW|QR`Kqz_< zNhj{hDJKob(w!tKh^8_&fk{nRorVVJ12;aDl6>q3e$?<wNEZc0GAZf^U`QX0R7-72 z#AE~;NjW_QIU^l0lkRC8d5+JK#Wk|r{Mqb9F};P9d5#D>Sb9`%8xX@MaqenGUy$|5 z?r7(43<s$-Dq7u>)5vVf4oNBwI~qW-Jb<o21MeSNd)kfL+YDG|Drut%cLi;ywMr{> zVHE7i!619n6&6U&_Q5U1O4u@C!P-v;wMbbMw*Y(k({gBA>_N3rakC&}lR`>N+eRB8 z^XO`HMQjqp1KFwO9np*!%7c&;^Fl<XmW--lWqg-sUgDA0<^&85gLPOiY;To`bNW+c zP^1EPIQ6Ktoyy#)G;6eyLuaoQ6_Vkl;O-~%tCt%GBLoqSwA)D~F=GKka0sg0rJ?p# z{O~^YD-FzC;A5$%m5xd1PZ>2RNp=?FZZJo!Wz3ss^zPWu#N-7S9S^Ml?tGjKXB8+- zsuXe$C)%SUf5<+$tna;s()o>8l&%==2hyJw*vSJN@rq-|&nzj)9#ApCB=J?GjM{1U zCm1NZwv3*AX^oJl4Z8;eG~x1`;Qln$+|CX%GtE0+b8m-6D<LPIzSP~I0?pSwsl|?Y z;E_moJL5e&3Q7*->1#0t$ugxmBLMWJjXQKAf%32?j&NuZ0_2$wUIjMvW_F5JTM`4j z<bb2vfUH3SvCS&3eq|Z;qk3Z`;M8uzQ62O0$QwBHsDUr?fZy*_rP#WKB$Lvb{$QMN zKsm^#&GtdENR&q1z#|y#Qct%7f6NCw4zxx93dED`Nb-=3+e(agr)_i*SwN6wSAcn3 zb4<EOUL|w6LS=~{khrM?#e*;yAbxcP-OJkPcap2P42LRD6{VDyD5WNow?ohMsU}$O zglxW1Zg%(0c|N=X-!?`u?cTj+=quRYxg@-xK6?uCZGK$dV0Sfy)`O*PYjrYOPrLVq z4{DT!Vb=;e(lZwrAmi4X{;kgb7Zr+kdY*;a*mD$iRNO}&r7}PZZ3jN|`F8arD}j;p zsFd$>>T5Ra?1d}6L7#x29FDC`kd7E~ew84LamIKwj~NU><$E`3&Q0t}T}Vq~8^21C zAUP5RC3@sjC+L6xM_N^Ok2qomF^<)m?rnRk14Palx8M$WsQG>Dgy3}IrQ7C5mFRdm zq;+_s8%A^1w0r7i^h98j^W&d-LnzK<KX~=26#)dh6*%cptYD1p+`g2W>{ME~vT(Q@ z=hl?&WKzDE2AoD$a*X4#sLP2C?d5v_I#!XEggGWes>_nuBRvf`=hP-@Mn2`q8RyoT zc9F`0-K#l0ZfUx>-HW><hs`Sn^KddgT4-(G?3~dwqjIqra4~>-)#&#!YnwoJDZo2d zxuthQ2wd)Myf!I}jUuS$1+qb)p^cnzfOy4Ck|k*MBZ-(`xZwB2J%$0sXl8AsbVJiL zJ25_^prOS{8Zi~eOn2{1WW#42>GH%CH!#ohs6vg|EO0sjN-;}v8th2xBc^35&rBYI zq>;A;QofjAYBXOk?c2K@jY?t>DN~Ml6{Y)*>tT<*QI|b>)FFm8^Pc9W#?0<)(gGwr z@Brr&owhFTu@RFJZ6NYEG>MJe9^Gi4JC#m&IiR5c5O}C^X%M~TW;#!po^z4jp<)3! z=B3HTN&IM#qXFMEmvPI?jh6^AMI#IW)}@ib893U#IH;CV;O@f%-_o_!iq}?1O~oQC z%mR~&XiengaZSl(Bd8vtk)$AFxu{Og!)c6jxr*%|bOiUPrBy<?$Ta6-jHd*SwAnsp z&m{ZRT?#k7h~#1i4YVG#WDat1>p@c4W*Hray)tMd+nxb#aY|B8V?okLtZ;C1(xPU| zg~uJ~0ucQ1%}Nt-$)fF&^w?;HBO#Owb?HErQzWlmY0MnA9Dp&;N@znd!8~@W=DvdS z6KY6Vl(0QH=}4UMjy+9CgUe#1@OY@hmE66v)~@{C>)fWtBC|*`*f==NL;&PSGoA?) zZw0pj$QcHh?$Wy+MrtLl!du*tBSp_8y)t@J%N7F};;Y1^K_|K5q(?bmJ9VSfQq-A# za&m_NQplvn26N3u^0CHF2cW3~F4bego}T8No$f`gsKDD7Cm>R$PVbnyp5~h`?_6#_ zC^^MN_fN=38Ld~C)yX4WiJnKHG)PsxUcK^ZcNQltfJQM)U_-8YcdU}u%yweQy8~#) zy)l@8NTg|4Nslar_3ckw5O~O;t1=|@u*7msdt#gcm6zu!jFP9gq)^Jo0Bxs8;NXt5 zCDdu$W(m%CJ!unYVi|V^9DQm=IUe|^j!}0W+|!-spt=ozzI$^+0gja2`-$~EDP?j< z2CA4@F##{vI24LlD9_F9N-@Aa4J%8B90dc8DjU|qyS~GMmLqotrHh8=kxq#WgLdzi z)`8T4Nu|`g^c-`$<ve=OACsS(j`Z0i18C$NQZuT8NN$<kO{;@<+)1X%;AX0c41|G@ zr1UjvQ@IFGG1oOsnnWXV5(wbcuX$;?litIpXIUX=h~5r4uW!;+$D~{Hl48pr!n_LM z*;I8LgP+E|-$(^?7~3TO0Hfz5`&VQV-6N8+e8(Mk9A)HBx%1>2q|ogoZaM3m^{eu> zS#U#wa&jt+_-l?c`PWXbLL1PHq+~0Dns6pf*&DwaW=k`51E(~-7!IPDkmQa@5M@Tv zcmu6CsD;kpN3o~HBNtQy0H3{{l*vOhzcD+($Td;i8@evrDgsFW<bG9Ya~t8ZGt#rH zUT-{t!G&pVE;l~}{#C4(Dkk=0)k85OziO=Pb0B0YbHNp7_{JFi6;<2Jlz_}Ic^<Wr zyC-oS+jmknjy)*gVD2UHNcqV5Pd@Z*9%)nZeQR4?Y9dE;OlKgT!kF`5XB?Vyu3HVx zDS>|Xm@qq1CCG|aZ@e5Yf311H#Q7FoPQVZYDja&^y&=b$k<JILdB?>VK)ur?B$n99 zYdVecv$q8=-z0MyT;(-;G8DJ(M?RJ4zY^kG-vsKudij}wvNMj==b9sJ)h&mVB+P^F zSEcyk*&o3=sX1K0N#~~(czNBXyRXdCFilCmw*3#6w5SW&#xb|$0|KUKg0TeiNv642 z69+tSX(m=@CpgV?sa)j0QQJ0(WWxx4l_aBT0l1zjl+!Tdty5Rk6us-R9PQ82yL}yx z*x){>4RCT~qaM6hd*QR@Y4+Jek1wt}*Ckb{=wat%;90taynut8j!ktw0c>mVgVW0* zx#?mG*#qxaLExCP;#)Yu!w|=s#vc`n#7TQLTKL+4Xg2xkCKxs4`bZJnLhR)NzDciI z_|a_?o)e6>%*k@39OIhuFZEHJ9-_Sl)RJG;?C~I<Gx>f<x2Z`J%G($>%uYpRvykST zg!CQgF@V|rbgXLj)RNuzH#q{YTTkRa9M*mgH-{j09jbd!#lXQeQL+`D#p&gicL$H9 zH+IGwjw#+|0m$dIQIbZH`8@hnxpW<!u3Db#x7`>6y;cM{+<7#P$8G|WeQ1G6JoKnu z^Bs%vHb5e*xialOl~oFjp!BOz744EMTO{s;*{dA8;m$Fdh>fyt1p87!dt(G7T(ptN z*r>>-#c>3Wm3*P(6V|3tvorEGbjE1oE!~DrYqrvx&9+g?4|?;tbrEjJ(FQ)ly?5GW z=b396Vib{_Q}}iwZFDw#;1D9HQPPxPHb!yus))n6IQ6O0Vgc$!3EM;$xiOP)@1BD- z3d~vYkClCCvP{c@F@ky%%_x+U^Kby`S-(K|St&VAy|Ylt<fsa8$JU3LQ|_?bYB?@E z=!xHgyaUp%;<~#`m7`X`50>kURBVT?DmA!y06%*j#ZBj^`LmA18duW9w{~+LFEK}F zET%L2$nZct>&}alCUKm0uJ^__Kt(8U#ZYs{sjd!bRleXj_7tIe7T-3aUR$GS7gvii ze(6AHk5Wx>cChA9i{GHD`j48@$+&Gocmu!Is#?Cwox|{~8g1O(DXm)}y$+I;ani0w zslz9S#gSI?)?(oH#wsmTlFaSNZb_{B25IKlr|$#TwQUz0q$w>Kp`_drt_jHPSJesR zb6Hv%mYU%K+!LV{rm|zX=e2fv9M4i&PE%+cihiErEBkk4$lNk%0SvhvX(9}gD*=!X zdd_Wf+{(|P*0s=QU>6CV4N=u^{>7(U%2-CKrw{0RQ&N5FlDmCt7sfZnJs-#g2${y< z-Eb?CYWf<+_Gb+4&-=%1?);K!1}AqSrE$)CQ%KG$6{d$px{gL9RgyBC@l~Pw;MDg& zGOieo^hugs5i;&L?dws>n8B$TjzI58k)CP#i<;t=+@k{&(8s^$O>##{k$`CZD?f-i zlF(xihu1W~*ck6pZOQ|lM`~eE-1Ay3N!{FxNtVbI?aW*ZaD8d0Hs{pTnZ^kerEaE* z%?q?=nl=H?YGV@pC?xO+J!vLOU55@^+LlAcM_NR1vJKq`sU-m8ZxpYo3F<<UsUR@< zy=mi@=7m)bPg73gobqa{nA+4*+30B)2U0uJ3xY`WpcCf%8c#u~G)xbf>;*()=RK+a z0Cl~nAoJ*GT5d+eOnGdM)YdsI>r)^qIpi8yR0QC2>r~{J?B3)kg}BW+ILffxbDG}p zzl3J-FPzD6E&Q>Zu;9~mKMUVz^I}Mh@iF;ikDe<(Xs>A+w5@hWr$8<ywv9;3$e@Gu zuc#pTk|0-Z)C2UdnKWx-{k5ln%#Lmll{{o;n)-Q$6<tXIzzQpP%b8iTI(kWqE*bW( zBi5U#f-KobC5IIx(K;0kfID+gUrv06<AwFC>U<|`Z_RXK8**dkgYQwBe3c+{s|g`@ z$pnMnu&J4qa5m<={-><lwxc0Xm-a9y-ts>_!o3I15l<p2k12o^!&$P;s@brKRn(jj zU6$ro0~sfuYSmAn;a6?V+(#JPtBtMLikbr?Dp5%RyHhz0xPU?FQi50>I#asZ=Pb3e zKz?w*t}t<*T6ndNR6j9|#t0&tw{Kc}xm5&oB8y)^A(Dv#<K<|`@9RwuxMKtJsS(VB zYd6b|n4k|eLWr@n^`xV1&2?;4AwKXWM^Fs}<##HSU+$Bf(2$u<?19ZL$eabq^M`EJ zEi^KfuXe;poczFT1Aq@|WRK=ao^#uZoOz1HRA<yvLVUr9`LV`othOE7AaxsdD*V~$ zickYE1ab(e)yqEpiVvx#D+hAtfNEM&Es@GMIT;@);*vM=+kw#ar-budU@2qY+M^{h z{a6E<&9A(7&~lvNnK$F}qC*=MAP}b@=A;Y?g1j1bz|oe@_CCF-rPRvJJqTB7pP9MG zdUB@p!NJdAPa7k`vU!Za{KRod5~Ac1!Lg7BN_`4r7&5OB?!`4u&_Nl={HkyniBrHQ zu4*ZxJHGX2%Y6Vq%3lMVbtan1CC<~(<C>d3S^!2=^T_W=%fEI8GI*=BUWK*H?nC9X z$O$>(n<RiRQgD3@S&cB@pOrwtV@wMi(`4ZD)X{!|O%N~2$Mva}TmnJcPiU2M#%ZQK z=PEfJs?axgsR?Xno^#*5AY}uUJoc#=XC#af>rV230Ozel+DgO_2zL+e@lSXoz}V!R zV>G^EZ&vb|heB#Y7z_yD6Wmg@icozB)d7qa0G~rmnM-5k=)_f{8W#E2Dm^KnA=`!L z(TyC|Vq5A)7k<z{QI7Q3;t1z&4eBak3YH8<0Ou5^hxtKM?M+5PZC=G`GORZ`pzcpn zX;2NsxGm{Ra02bh?#CpWRYF*{Fk920qjHt^D&5=pNx48OPvcFtjm&sP=XP^eF2a}< zL;T%ow%Lj<o4MqQP5BzRTSM$dkLNJw<virl<%0bQ6i7zUd*`XB{L;7t?io0)WhEQ7 zcP&<onYT98&JHu0Vyg~#BfcqkF|HKk`qC)L#t0tNlD?z5*@jMccJwtS(YJy0G}#ok zHnG9riX_^R;PaE(v}j56B$0f=OEx&;no`WC3PwHYkb}V>mG`Cl-~a(^kx5GK%r3_) zWU#{$PgChiA0&)rse>S3whboFmpQ>b`_)Tcx{~zVaf~d49Pad_MGu4A8X5)xUwCkO z`qQ{xc^&gaRm9Uy$dKd?4>{{YoE-ah6&k7-_X1e=&lLUZxmOrcI?~;Z%S(uNsNJxh z`5kI56-MH~H#t3N<z3l82M3N#M*jdiD*hSGO}m4AizwwbA`Qc?O-Sq=h%PbEsis7F z54_mNG^H{dC<hf$w6reQPQ(RFdHy9m4P|(R)M>?Jbsk{AQhL^-k`xW4N4;VA#zjjz zRUkIpjt4x|N4b=)wK&+M^M&YV^0vfCOk^7JzY((=;qnzyJ!{rpAsiQ^F4kyxEnZpT za<N|9I?5Z&J4%sRReaH~LrJgextkR0v_ejBd(;;=+FP6xPIXZuHZsPZLNbgJNbGBt z?H-g`u>_Kb100T-BNW%)5gQp;nwCaI0yY>db4aqr2^&KCk}E5_>ItoZ9hha+K^WW= z(l*k+c;GSPG^8%)+sVgjh^k1%nM#Ased$T|6OwFA>h9YQPg+L-Ph97<OtB*_6k)p@ z_o(EIi3bDHoKsq|uW&{YjtTlx-ezSR8lqszMovAcR047UBzn?z*llTYL{TxsxCb1Q zQ88HLC^NIO4wUs_wYVUY$@ZvTUopS{;BWz`vwIn<h_2yI7>}g@j^uh!GC|#e?MR6j zKPWq~-n8Xl)%6B)4i=q(fC(YJX(J(@1RR6XoXA>Dxg>SXQ&-ru?zI|1s3U$e(3)sK zSTgd!)0=3(839j2PIuacQ>p$VLVXEqlw^!p=Wz$6Ft%_HIQ69w0;~ZnM>#azn~|N4 z0OFm6D>b+?d51gzI?_DAh8O_$rI8e{RbX@8kg(bQtyRFmJ<Vj(>$tQS!d8#51EDn_ zLcu{8CXY0EU}J;nL}xM}Cnz(`UHS$44~>Csv4UK6IO2<q%;P+oU8;$QiC?WS?jepq z$9m35r=k*lhe(m61eVKsR7&JyZv^!;ESzp{o7#ZHl6LhqQM9)zOjadZa{<$@y&>gE z^`tvhzI7xJaDC|%?rac#wAH$fHtIw`=Q+tesTimv3;;WmQ+aAY=dD2^?VFSinBbai zSq;8tWGqrE6Mz^DgPIrjL9#$!N?rIkP!~M$Oeb+}q?5_3O|_|-ZZd12tTzzZ;MHau zi++_fnFBaD?N9{W&oz^dw=_<|J0B|}twIS_>(`2YTN&yz#RY~r#!tOzCCseFpaY(V zG}+`B01WX>$XxAglhJ5mG0z5$UQ%SWB24whY0AyK?&*$#rTI#KchZD&$jBds4aU|f zKBH3vw1PqqkGkEe2;@}<=03)(AoAFfcN6W!M(50OP7XQ%DaAg*w&HKyjmJ6dNXwEy z{HdjYnMemX;-4qV`7NA`(vo&2?1T-Z8b)pTIOKCqm;j?3`_n@LnEdE-vb!mF5;D>z zGx^iuh{w3@$zf62!dflBk~4~#2G>>Olb&i**HGvJFwE-Pfg^^;8K*pC0EBQk8TF}U zW90#y^OH#L<~HnLR?baogLFp{FklZnb4V1%PeGo!r#zulvVuwCq9@KP!5>;p>X`S{ z5;@#A7U_U7Rl~8|Ic#!CsgKM`;~!d&02W@EsEe_am6$VbATd8dN*Lqj8P6G{V$qch z266X=D14p>Zv0lVZ>aZSBJ6ArxJO@lNj9G)Re@#&k3A{O#g5!m3WIsc+H=9BbdgU& zZOF{(q>OsgCSfNW`{Iy~-e+-te08ZNAqXlyv@Oh;0*oA}$oHYXVtB{BO0q8SN7RE+ zJjO?2M+c=7yVU}0NXF(TIK?~59&T`@2*Js!>>F`8#(gSOJ6Lhgt!CYx!%q5_BOz2G z;3%Wa86acclmU#6T9acH<P4umsXkJ>F%|sA`4=a)Y0vYV6$8{!j+p$#MJp92X~(&# zz4jKpL}P_<khrMjk*8?#M%DDE1XYZlU5_T2_qZANs#m?yHt2+z7i$dXkTdw#wb(dc z4uuDMeV=DcV~X)sQLwMCdiJd=pAK8FIV}(LuG(%+TAWp1Q;wCDB2-W?qp7UvFw+JG zw60W-lo7zest&tfZ(8klO32MxNQKA`#&J@pV%tjXUOu$VrQaKVQ~c@EA2woF<z*XB zr9*uMwt%crxaS=+NMvbS%yLSDjwyrY`L}bNP~XHl0oN6(-sD`lXsH<_bw0IyPCyyp z_N>GX%AAAW-n1AGEkC?5R<zJk)gj=AS5uW9qN}&=*fO2Kp0#0kB$9jerVX-_wQxOZ zl1tD@-$EkA^T}h5Gfr%lImz@UgTd#mInW^lvB{?`O3;kPOJwkANF<HSO-gWZNg2nj zMC?{W-_sSH?qvFmkd}`FAm_NRHu$6FeZNgyfT0+$$9nXKnU7vgdB??KS5~mW{{WUm z<KCS|?mz3X*@H<}i}n1O%IPit026B#9Dei)^#1@EO9}91vlYV0AvW%zP;=6}y3EFx z_Kf5ziIs^xxvyo4;=<*~YpZgS3?1$;MNJ1Ks_AF=o8y{tX`dwNW9;@&4<cyOZvoVj zDtTO;q(M0cp%EJT#UavQM-19)ASbf)sdnj48n2gW<&lt3Eok9WrpFqT9?72}+^pn$ zu*?4dd>Vl)t|a6`CVkY`*Qsrzo_5$1=-X+>N73Ybl(15H`^#7R%PmH#L2F~=GifAh zLqQ<*J56s`c$VJI&M4VtQiBKNHT3+NR*R4bu;;NWO*%)1_7k$eNEl&8(~(^Br%}Dl zJ+fNreAgd|B9wxOD+ALiYfD1$?w_FQ&|TfzUo$2{c~O(aeG+sX7G7H3$$N}#6b}z* ztUu+&57lW#l~}vBh^vT%n^tx_2gY9%G>;r;qRP_N{@PzSN~UOz2o=UjG;A<S@&3WD ztJlN23p*=|2|8^6fm0@h;rLr`*);L)SRQM1sy#%VH74wQikC`_z<hh5rJn5&68rjR zgf;c)&~!&q4X&2JpYJYdKj9b9$QiP*!5u+b5~{aibs+jP<R!XM4oH2YpSo(q8j6J6 zyRr1It=GevESsYi8foK_#d=d)!ulZ_PMxN!9*npmm+u<8v6_^8&ypt8K|jUML$uTl zeu&$PvFpYSeRkdu(v=r=t)m0R6fF_>M?#IajWWZWf?I7R?Jv1*tSzEv$kFRo<~)fD z9C9|Aan)c<Ze{_nK?-Z@hVbr$Pww=MJZFMc7NSoF=n*joO|lvO@ElchRZpQRq<210 zk6E=`{_`i?8h`fWC+<u6SJo@w-2)^pmtiM=omP>&5ulv0(lq4HWdfy2w6|z!#qNBd zb!3(DS%?Fv6z1_Km$o=?AE_><fnQYr0KyNVPL5&H?6L+%af*^p1!#=<Z7#<-!3&Dp zns(Gp!{mIfJXIaKH=A&c=zS|{-{Slb#1jHT7y!IusIQ~jz@8m0r06y>4&a5Pe*<`Q z9HxO`7(K#@eAO33XD&&6C(rTxY_vN<AeGNVkl@sx@VgL73u#j4ILJI#xk=!U4$9lV zuq<7N@ogMbS6&j(kOBRbY^3pk1}Qf`vtWXP)!gwozB5}hw(U8_8yvMr-x#b)mHP{Z zBm4F1zwm<S4okL?YRnH#F;XXlv_QpMLbNJ+e4?k{Z$VAPuXOR&_{Rd3Ww3Iae)f5& z?mjTb9_{)~!>H$YUMt<^@HT|dAsQ{1R2>d8lT7~rgeytHpX`WHPjP}Nw^GSm&)j>S z8owE>R@};T`O+M2I2?|BD7g5=3o&TyQ*Q-ic`!)&SFzrBM@`Nn((T<&LEu$W;N1+a z8$-5s^<))sZKGDHrD*PWUa#>c4PM?z*hYo=yFW_6{{V!p#wi&E+9QmA7hKoUN#G3z zW(WHU%}1zFQP1FS42gn1ji<40HyFoiPug0@5{y~%T-vRz$#oKm7;;EC#Z)ev)qxl% zf-C3`7Qx`p3R*(aX*O#u+lWvg<-Kdf{AYh*eXO|C?Gn-mxCtLZYd&cu?`UnRj;Nt} zo^%J-6#oDWBArOaP!eNe2_5lGknV(iDY{kaX?mO&E~StXtOubK)4RDdSJ2GTFU5wa z$jyM;*PmL^O-2PcX_xDoheMXq4;b4l@Cjj_<S5_M=C5^c1ZeQcf8tSWNB5LwwdRsb z`tmT3!>Qs2R<>8#E+Z$dGgbz%0LCUlGyUrJMDUJ=vl&-Ovz549GE|@Nh-jlY(JcP} z;44|mq=Qy@3;3P@qZ>UB%~?ABq`HDep+LrK-e16)Nq|ZHk!X>E8JU2u1M$Vo6ZpGQ zj@H>N;DNlg+0nSDl&8!6e_aaEyBKl|xaW#_QB|dO2A(7%u_Cb4=#IJ)9zVvDaV`g1 zP#KqK7|luKG)NeXnjEzog0Rv#%`h-6lTI&?cq8jfI3RYXdy?WhQll8@NI5+8q*Nr6 zo&^PtYb`|MeFiWg_~}cr`~BLG4AL@hY@F87ZE8!hLkt-^vT;cv<BAx*2+tK4JN=Dl z?9fMD$q{k$5-@37X*_;(*G=jMYBCBEK_;-XX0jW!?)Ak?WFbvPyp6|<(YtvSrs&IZ zP~f3G38sf3X)(tg1sl2b6vNa~K2qK3$(BrxzVzZj;+oC0a4E60NUfd@Gg65G82l=z zJIFl<H6ypp#YvmgoGw)3^{0o};xafr%|MbB<JPS2UI$-#hG?awk3#r$6Gf%S%o$^M z;QH5FG-)6!kCUbibAAVuK7|UdcqgrOF$Go(MnJB4OH-zryj8~8=+;u|)>FNtMWSz& zw%2pFd#TRQyaC#|izX9Hpe`_TU0u0diJ!VZ8tSIo)Q28d<XDwbSwPPKb<I%L0>uLb zY@RCQ#0U8g9qNv#gg~VAcB-rHMC+ulBQ*jLM^TK`V=-b#%7f5mr)YO6ImgzRh_QwQ zXD6+Bjal6FAG)k*czgHS++-Z#4R)%VfXS{i!!ZTdQMm(Q=DTGI$$_2TwbYg3consq z6=Pf+^XW$}!{x$?SoW^wDqGT;u4nmFV~mkT=PKN>6}(K$Tr(cHQ^}^!A~7a7-4(v- zzfnvs6ov%u^rvoS3grDUMulHNkrG{(rYd}>P8jlVDT<63$~n(-NHN27Cz@Q>A<Fs> z+m`?-7!<}$uaXYz;-teF5M=T)O*&RC!~uXue_D6D1+I)j<dB)#ROddl_l-{H1LhqM ztufrFUY}YO+`5IpIqyw2X>L)apJz>-xfKWjvN8zmQ%odzcF6n_+od~dC}053L7G~0 z9_WtQ6i8T%Z5(5{rtW2w0E$((rv)f-Y4N(4%DUq`?j34xxtnP_q(;XDh6;hlN>v05 zk=Kz*s5$wGIpZ}sWC*Os4T`&T4~t^BVoneL0IHNGTc;T7N@iIc<Z?|tuvi7pzG_;1 zO5G6$P~SI0>q#Q?!sKS1_Gc}YVS&<`Nepw5^{8=gZGqa>4Y|N4G_CUn10d3_9A`K^ zsp=aWn3}k&d5LI1S@s0jNIgwE$_XY^a4F=mB%Ji44JR2Y38PEgTad4sWy`n72Nfm( zB!Jx0wj7mg{xu<AyUqvJiAvzLDu}^s=cOw}k(OdqHbo;9R%Pl5spBLSZVo?%hgyju zZ*XQ+KPsL_T+??0`1;f4Lg)L0`czvCY^0D+wIf^UVM>>8VeLZ!o`7I=r*1p>IUVT^ z*I*AFvTD4><U)3t0|I(&H6relJ3#<<BBhW--!6YDV9bBSaa&z9Wuh3&e&`Co<mA!^ zE`X7S$pi{MXJH!v6gG37X?a&Fq;ct7^3jytkyh=tLIA;Tcr@!m3aYZ7m~urIN(1G< zIlvVn0fWXd(-b!L9nY`ujz~~J=}|H($iYeA;-)S0<R=*EL}~^=Tr+c7G@0nF+glCt z&qjZ7PK@B4+%7N=y(lG_bHM4EZs#i8t_kBJlI7a=2|KMvfCOV@!jgLYw8<jc3uJP8 zQ`Z?qVT|_!y)3LrWym9^6mvIjU4?71H4Lf?9x3@dKt%zMB${%lF#vGG6oU)~1`mAF zYnyXxSVcn5)33cFHe4X>+|m+D<I6l8Zlh{D{J^d{H8rKvCCi&sI08>vd620D^V=Av zZ7$y@&r-USecKLkifU;Y-un!B2n9L{S7PYDC?p(arBy9}!x`tAjJe5OnO|BHZRkU9 zuz~VaF#6OIH#k9zat%(q58hLsY8WeIDx7=Ot33+lNj6Iyrg95&>^Q3o1~@oAgw-2O z%_toJJm#!BZjkYsR{N0KQF;k3*_5{6&D#f{u1Cg-WcxmMY|c0p*GS5d@Tv*#T=$Ag z$ERhO1r5~IrlqkGeNIsku5@i;NR-IYL;yMIUQ6P5m8Og`;nNI0wd@uNG#VbSDj+es zg=`+R<US@Ww=u|ixI7-**ELj<vAi0T>}2gL5Rl+{=9t(HuBUJ!q};o3PI&1}2tMiH z9`(s~&b>EdK=bZFVpj{#y$pwT6au`AnrnQ!n|A}fBQb3Al{}2nd)mO$O6ZJz_9Ho| zbGZh1CYTkKzCp%0%?lx2-958O@2L$~MQ!X)Ksp*^gt;d;$2qBr?NC7D(xZ0`837JS z&TB^{YnI){$Y06@l;nETlx#*~*lvItjfr5tF(=-oWk>mrPAe5=%6nOoNfBI!=iF6r zH#Z=PlLWU7mB$p3gCxXzccDSXS_D>v4luwDX;=gxl6mJfC`9uKA1R^TN`OXiYfGhM zLt_gpX}y7FZib_2FmsYBc{WIhs(sBw69h5!<I<_Lk)&3d?mU&14?i|Jr~>Rx`1Lg- zxp^1?fPE>FNsth(F~>EX>|&d2Pc_436R5^dN=&mHF#vZ0p0i|Z!*t~Krl<ttl1)ro z=vr13g&i<`>5M_@2&SBI&fL&rWAl<qfm+F?g2L@(P^xp^ia=RLeNTFkG1VxLnK9fG zNp=?cjgXvVo}H-Nk|yB!9mXkGvS96}?u~&1<<DGIbkr4yLXq<UxqDNgibA`Kah^W3 z_GbPPcH_M=H)%*f3Fq=PjkO%M)LDU$=WxfRH9<m7PTE$FXdw0NPL1}(vl;8jqo|X1 zB5lmdF~R;SX(S#LXC3Lv07JOv&`=djWr4@8>U-`hB*<lTByu-Xgu6x$G!TvVc|CJX zJmeA0Xr_v_#4?ThPb*Nf`HV;#1wZcg=7(1!aU2S(q(gQg$I8TJs}PbhvEh{FtW4{- z-1ewcD*#4G?^UT*>O9B$mX&a$Jd;q6uDgjiH6ww_<BxiX#^_Y4?!{#%7oeD@B|_x& z%^(?K8-a?ETlc>(Cp6Ni&f7@<p7orUGqFka5CA?<PAQvqz7IL6Tn0OOA6klG@_@Xx zYMq6+?g7ZnHbb2H)0Rv|cN{lrLn5Af`sSQ{2<B;!VVjPAloG{`2Tr-E8L|lkk4#id zPDXj5*=}php2Jp0R@$Q^o&{P*1UB$<oK<LdHsGfRIn7!aBxgRk6`xzCMD$9-UJ|U? zB}PUDYCu$w6qcq+?=0C>$j%PxMGS~WFnw!F-^g~lC1L<8p0tQiIw?JK%|yhJyV8UJ zF(;h!SL!JYcT@xhFV9m>2xS11(xQ+8#IH{DL<wwzjC#~HVjbnLQO+4u^~pKpRAYb& zuRgT&B;+#^J5o!MFgXW|RXtVHu}j@n9HrUG>S#j5wpX6{9jUJ)M};8d_7t)f*tyB= zS>L#7H_a^h93t^VxpK?gccj=CIL;5PAl}8da(fy%Ty+xAB2~i{JPK$b-;zSp&~oej z>T9MGApG8ys%}Etay;RWIT^^Qp=EdE8i_$IpW&&ZV!Mi9H@!JoyO5VMEeSgSFnZE6 z;A6cee(rI&_NPdMxW`K7ljm17Pq@Wq2R#Kb#{T?wr@7~DG4D~$9`wfIze;glW4?r2 z_L5h(dO#&(kSXj|B>6`^^!VjC$iWTN)}CZ}jVY0V$@TZIW6_wlhX5EGA;vLYGcyIZ zb`7<I0zW$TjTDE`p~o4Aui;*W1#4X4#5DFe`Nq<{_Y<10G2C(#40o$jw$L-vClyvt zzmR@hbgt`kM>218RV1kyCprA-vPfP`FB$7gA>2XeL8$jL9v9{(y+LhgNd3N1^%NG} zkb0h!q+}>O0os6wxx$}ZnycJRCW-CPM#YaO+ONbJ$YOFa#%hI$K*hNOIl-+&WeNz! z59vkkp*x7pw7DZE8Rn}<$n1eK2;`czE?ncN#|EI2<t15w2d5O{B3^?Os~%f4q%r3h zJ!l9#yn)Vo&=~Dr2_)k+PVLxwJwcU8Dx(C@Lqu0<=LZIn!vGlP=IM%Rp;yUl8l7!) zHubp-@(>O)li1gr{82l#4LQicC`Ecr%CJ(+)2?gHz9(er779thjg3T~y4O$mW3vgR zWn++FB^->?R@Npwt7q47r>c;=4AauNo9d5w#Xp#<Zy3l#I6ZeU=8^5tvK4t0uVr(J zSvMSDoX`~Fv*(rf7b1(gLq(i8+k!zk<&J7Uu|^J8BeBa9#ZFsqy&-J39qQcsuyBJ` zXkDrp9ftsM$)K!KI~9xOJsTtuO3i`IA`)^(6e+f}8mAlGp`T~@u+J_}`(~cdN4FcK z4ePwpnFwsRB+>}XtO+<2`P=F@2)$ZE#k^#KOXt+Fr-oSY5VIT{g2xmPppJS{J_z{_ z9q8wkt#V~f66iEp#e!RQ?xzlFNbTYz1!;d5G=St|)|`*Cp7lJ<>fWKt9>5V5hz#J7 zgY%rx8f_((X}}zRtTc$B*p|pAy*Xtu{JHrLsHWY>aEj3_03i+>T-*bK2k%We-Mod2 zNi!06Z!#R_pkj9(IPFi3w;uVaPRi)fQH8H$PK_$5Rk)l2G55_egr|nNoxZXfP55r) zQi-=SZt2*HxX${so>XGq!=@5UfIZc~3;o#$q4%>REzQTv(=r-h8;(yW`O}x@Q<I8P z)2XVAZ+j96W#k*Hgvh`vAr#1(P{qF0Kg@Y8A?rwtpmp8H@l#BJmuvd=sk(1La>mwa z5=nD#vU7Dhf4d>(tIs{mkAZ!32ehV#ZT$LFdzW=+mG@$BgV7=DJ<MRL-rWFu`G%Zk zx{53%?Zyeo%ac)t=hXJ4Iph;Vc2-2Ft68Bw)p5XUsoUJS%{<&n!yjt7BmTOYiJddZ z%|qwxJu*G2xwI>iHnK*F$vZ$$UR)?W{KJ~AmlueDi~Gd(GLup7W>U&eKcz*vm+um5 zK4wp`jkZIL_4k-h_Lb1jqtwFo_h&kV)-i+g)iylmIH!5d<&Y1zHLPaV#QP{k=!d<` z@vtj<ay|URNcXozSbeT+5>MXss1<=c_4lQD6aY;*RC@|>gq7Mcd`yxXOLp^GWQ~r| zAly^mHOfeeGQj6?$v(B&-^g8d0!k2bn&x#4JIG?u=Vzy-Z%y-P&o-?)HrG-ZqAzdl zSvSF>lK`9nTDHU<GuEnIMy66tZ6#-OhD!Pwq`J*(D=Q%^8-J!N(JeK5)lgSZoT(WZ zYUDg;3R+%R%LDF$Yj8?-3_8~BgL$?#%sa-X^sFT-txlXgBP*tA{{U%R$o$<*Gu$>Q zBEPwgLz}tC=cCn3W33=?4<oH$<esNfqMt(4^36EGy14@*{#qOw;yg<XacV@z&zQTI z=RDVBCd!<1k6Pw6XwrM&;YK#%ruyhbNUf4E8r7YY<BHd`)1r9BS0<#`oM2VEMFqh1 zs=H)HDlE*N9ftr?1>1saR_@nh1K8C`VDmas=v1T3X3ZAn;-XtJNjUme$kXL?Cv8t2 zjNwBRoo6^3{M&|O6tyX8gj%($HmOmY7(uLBtyRR17!|ZeQN)T(1QmPKtgW<G>|L9h zRjYQXKL0oGcV8Tb{M@;(`#Miu_@Rhd{<oB#5GWtWUV2cVN*PyQke3p6Fd3@o@Z;yP z?Vrf|uN#%Oeu;Efl<q%7)~sJ?nrf9k_>lXm%UbYBuEOf}_=B;t-*gAMXDoc2qMx}q znvztUq#s#U{~e=M=oQN5$|x=nAA%|J<*uGPM&^(=yMv2{UXTvZAyg+Hv(ZWIEts%p zu_v|j2^(J?=+WzjiN5-KZ(_J1@@@KJr!dmgPvN$_WMZTyR?rDl$kwmUL$TYQ;6pxo zN~dC%^PeQX3bxT<xvO6R452oem>vj(&tVYnNh5ox5r!{*2MMnzYas=)HddeY@3t;p zCH~=fy%%BF@!R}!nONifd+5f{3X09VG|i@ErN1#Ln~`56w?MUD-^H}Ju`aF*DhP(J zuuru7hP2B*YSeeHr`{MgVlCZU;anSF6p%Kg(4R|$%-cyD=PvyS#B(t8Y|QXx%G>q! zvW_Fn*|fhq%kgP7IbW5jYc_;-Ze~|rH!y`Om0?Jsi@fb&<Uf)V13X^%JW)~<Oj-Hw zd`FOLpfP=`UXP}RHm^tQAw*I!T5-twkoy~uWX$QO3dyOhWK5d6<VWm-BJ!?)&ujGa z-%nu2wIL7s;bQ^dd}ElK9KKk;DbX0c3cji>ovkpI3|AKAA}oLt6DLDDETS#{#MOkj z<;pwikiuVPJak*hI$6oGKewr!nJ#xv6Z0+i-ix0m&0JXAIJN5LHRoL+8P}C%-ri39 z39eYo9{92P!YRt+>rI*m*FO=Rb$Y-S+h(z<W^Gu=cfRIoWFm;K^mpIO*XI(f3`N`D z&Eg>vYj>7UHvV+tYjeiUYS)p!GUT|aF7TB}^D1wPn{w&J)yDPq%0DVsE_}1U=7b%z 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%0AJP3H9&9=8=C=#wP^%kfG{VHqpfDfts8*s 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 literal 0 HcmV?d00001 diff --git a/uploads/file/projects/Proje-1/20131022185231_mustafa.png b/uploads/file/projects/Proje-1/20131022185231_mustafa.png new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 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 literal 0 HcmV?d00001 diff --git a/uploads/simple/excel_simple_new_location.xlsx b/uploads/simple/excel_simple_new_location.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c7c1434310641441be495e97de9ca38b865cbdbe GIT binary patch literal 3120 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 literal 0 HcmV?d00001 diff --git a/uploads/tec_service/2013/11/12/12_20131112234806.jpg b/uploads/tec_service/2013/11/12/12_20131112234806.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a67046338ce648e051984f126c594278235c9315 GIT binary patch literal 45448 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 J3IYC_{y#Wb$5#LV literal 0 HcmV?d00001 diff --git a/uploads/work_order/2013/10/Proje-5/Siverek-ilk-Okulu_75/mustafa.png b/uploads/work_order/2013/10/Proje-5/Siverek-ilk-Okulu_75/mustafa.png new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 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 literal 0 HcmV?d00001 diff --git a/uploads/work_order/Elkotek/2013/10/Meb-Projesi/Comuduz-Alimpinari-ilkokulu_76/Comuduz-Alimpinari-ilkokulu_20131029180042.png b/uploads/work_order/Elkotek/2013/10/Meb-Projesi/Comuduz-Alimpinari-ilkokulu_76/Comuduz-Alimpinari-ilkokulu_20131029180042.png new file mode 100644 index 0000000000000000000000000000000000000000..eba378354c2256fd840653cf83feb56b6f953d3d GIT binary patch literal 84392 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 DdFJnx literal 0 HcmV?d00001 diff --git a/uploads/work_order/Elkotek/2013/10/Meb-Projesi/Comuduz-Alimpinari-ilkokulu_77/Comuduz-Alimpinari-ilkokulu_20131029180457.png b/uploads/work_order/Elkotek/2013/10/Meb-Projesi/Comuduz-Alimpinari-ilkokulu_77/Comuduz-Alimpinari-ilkokulu_20131029180457.png new file mode 100644 index 0000000000000000000000000000000000000000..eba378354c2256fd840653cf83feb56b6f953d3d GIT binary patch literal 84392 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 DdFJnx literal 0 HcmV?d00001 diff --git a/uploads/work_order/Elkotek/Proje5/234234234/75/mustafa.png b/uploads/work_order/Elkotek/Proje5/234234234/75/mustafa.png new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 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 literal 0 HcmV?d00001 diff --git a/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_61/mustafa.png b/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_61/mustafa.png new file mode 100644 index 0000000000000000000000000000000000000000..d3293476a2885b085f281b2eda61cc700544b395 GIT binary patch literal 177242 zcmV(-K-|BHP)<h;3K|Lk000e1NJLTq00BJ!00C$S0ssI2s=B+5000;wX+uL$Nkc;* zP;zf(X>4Tx09XmFS#?-c+t=P_l7ShzySqE2yQCY1VW^>{L68(B6f8tQkrpYz01*+8 z5Jiv>5DY+3QB(|+<~wlp-uwIFzwbQHIp>{q-o5tPYwcVE0Q(JMSXdB(7J%T8$Z%U@ zJzi%QS6=K3009J`20}oTNQwy4wYIhZ|L65{0%pV4nAEPW|C9E=f1vaBi68+0S;L>b zydy}#Funl*vXvAT9ti+?SD#=^WY{jwgE3<`Y#@v)cCp`IxOEqM{e=hjIQF*sFlQD3 z3Otb*?gs#236}Flll)*k)OY|e^da8l5V#mGjI~JqL~j7tJz<VyaB%1@&VjM0*T3}m z{R<O`UVrN(68-+hf3*cJ30G`DjtC1P#_j$1|9k`oMZx~sySU*eJ|fW09DXyyev2g$ z4eeme3geUhKBgAG<yB#kdbYpi?c_*Pdl)mqoN@ms6NlgUeN>=>E{r*0`DS3K`7R&! z6M{9wYrhqY>0vBLiqMCBzgrhVIo{vi={Lv1+sD8V#&9n}IERPY{^9#aMBDw5$H)8Y z@BhOOAe!yQn;Pb45yN4$XAh#lC&+lWUVd0!7Zz!~Yv*oVLm@%?f42qk#y8w(m$NHh z_lekR@2+kBk^c53upG7-NgEk%zsrH!h~)Go8=1lwwhbxkA8ztTt`iot*QepKNc-?8 z+g(2h!r0d*#9`NmyYeh=qQS0jVV@w2fe|2raNq;HKnU0ZyubqJ1B2gBURWLi%Sa#; z1i^PWFU_AX=(p$*^gQ}0dKUfcj|?vPn+M3i8^(X>`d4{aZU^GQCs?Zwi1<?*iXEke z(m+|jPaXJ{N2#LJ{(Ku+YFYY&f7|K@mzDahTkp5^(f_vIgPa=v-^zIXUE+V*WCY&8 z9`O6akgb(nl->MO{+||O3^4{66O0i?40#-R9odiULJlC?ku881c@No&97NvT#lP+P zQwtH6?0RL_!x6w7_M#7n+WQsqr@sI2Qq<p!-x{dJsg-~&Tq*<v!r#b$*WkEkHTi#N ziGmqkaE$>l*Zl8z{I&}v40~4zrH9gl{S5mU#f)MHQYb~(<GLtqI0j0v^q(mHXKSQ@ z@1D1#_u3K&-oot&j`WF*g!>ZE4-Jb8C;RzF^6J8~rH>@9X$VPLl2=|<P66!By}KL$ zzT582sSxw<KQi(J0Lo49_?-Gj<_C|Fws`<>7XQeE>foUT&utHIq^R)dzx1JYUuZxH zXy8%72DpI$5QRM=50rrh&;f?P3|Iks-~tZ9eb^ra!xqPY1dswUKsLw&=RhGS0p;Kd zs0YoU1+;@M&<7rYC*UcV0kdEMd<4tjC)j`>2n!J)28a#ffrKClNFGv!v>-#s0<wi% zAWz5-3W1`a1Sk#4hE79;P$^UcH9@zbE@%K6fu2Eg&?58=T1OxecmyMY3n7e<L8u~h z5#|Vc!~ujK;t(Ppk&ZZtC_t1U>JYaOU5H1Br-)g^N5l#eAgPedNIs+#QWdF>v_iTf zeUahFBgiadKC%qifNX>N;uvxkxrAIpVNeVxUX&CZNfVR<iiA3ZI)chU6{4=7ZlQWm zW2iaQGHM%5Ky#uc(CTPYv@_Zd9fQt5=cB98H_^TDcwRvN#9%PY7!iyL+}m9+0hq&> z9Lz;bBc>BGf_aTu!D6v&SP85q)(T6+Mq)Ft7qE5Md)QIz0(O;xih_qip2CR2l_G>9 zl_H<wDn$pyD8)O94IC{_2&ay-!g=H3aJje&TpMl}w}9KAq@xs})TFeh44_P*ETC+l z?4^88`JIZ2il0i2%7%(el}uGYb&cu))g09to*plb*T=i#qwpv3)%Z^QGyHb~fgnuK zA-EDE2`33Pg!_b-gjH$=YH4ayYH#W!>LTh})T7j&X>c?`G`chgY2s<}X|B@@(=5^A zXoYF@X^FH)Xp3lX(@xT^&@s@-(OJ<2)8)`zr5m7oPmiS+rZ=Sbrcb9Yr@v4CngPim zz@X1SVn}1CVCZF7V8k$rFq$$3FlIB>GY&B>Gto0CGC4BEG8Hl1WtwG1G7B@CG6yl| zGB-0%Ft4+4vFNh+uw=3{u#B?&V&!1fVfA6nVr^u7%DT?R%Vx+H$aadYh3y49id~%D zhCPP;5_>QE5(guP1_y~Fi=&xiniIh(&S}een6sR7kaLBLo6DFhjOzl|eXb>LW^Nts z0PeHg9o&mN3_MyqWS+A;_jo?=GV$v22Jsf~_V6zAaq^k)Me&vL4e@R8i|{+}r}8)Q zzYw4lP!;eMI4jUCuq?<UXepQ=SSvU!gcDK~@)tTU)Gzc)SVY)K_?U2u@Ou$f5mS+P zky?@Gq6ATG(L<tTqT^y1F;%fZv5R6)#1Z03;{M`A;=>XM31tbg#6^h_NwlPzWQb&$ z<fIf{N>?gcs#a=FnpxUHI#s$w`m>CnjH}EknSPmVStZ#Z*$UYiIeIxWxm39}xo`5~ z@+A2p`Edn;f{{X!LaV}8MF~Y8#Y>7)N(@StO2?GCm9~^sl*5%9lowS5RXkOSRVGy# zRjpNXR3E6J)%4Vo)Y{e7)RomE)tlA7Xh>-UYFyQLzfWYJ&%TO%uQmBKiJGOFvs%1b zo?4f+X0`dWiP~k_^Ev`L-a1t}?{vj<19a<jKkLcrh3nna`=zh0pQztyfHW{R$TAo* zq&IXhEHr#+#BbzhRBN<stYm!HxYGn}Vs3KEWYUz&lw?|Cx@@LmmT1;vjyJb6FEpRG z5Vr`oXtP9EnpvK)e7;|3f5`q8D_~`6b;jz2wTSg0>pM0W8*7^)o42-dwh6ZVb_{kN zc316w+Uwcp+Rr$MIz%~iJJLA1JJvY<ax!o_?KJBw<DBUH$c5d7?9%Frb#-*Da$RvV zbUWv^;I8DJ;XZLd<Us6!frIP^gAU&Hpz$DjT=ztKI(c68+$35N%ZMvpre4Kf%Ori$ zdD2I39q+T=i$0n@r+wb}YWkk`eeb8~cgAngU)w+5e~GM5E+l^qFbOCL_!VdsSRJ?% z<P_8xOcCrEd^?0bBrv2WlshywbR<k7EF*08kouu>hnB<5!>b~ohyxL=k&N&rcQ8sc z>S)wlv{rOc^lFS_%=K8h*pS%4IPtj5xOeeJ@s)>Bhe?OK6ZjHR66O+h6HAXkN4$=7 zCkZ5_CoLo!CtpdSObJYRoGP1oI`v1IQ(9X(S9)^#>!Zd;Ycr@b!ZRk1X&fs#jyg_0 zK9s4Dc_DK<%RB2~wrqBO_GS(#=iv#t69p%BPWql4%2m$2l!wU+$(uN(ed@|-y3_He zU!So&bL%Yc*{ria&Uu_0$XCoSIZt^$>ilehMM3KY!3%j8HVgd=pBCvAH5PLgXBPju z=zVeYlFp@u60VZ$lJ(2v%TuMsrMJq2%ks-H<<aGDD;z8OD^)9Ns@SWttG22`s%Nj* zUg@b(sj0cjc{R5dQ5#jeSm$2%q~4&uwLz+(w2`?n`x>|wb?rlwXVXNpd2{!5)$0v6 zgl-hyWVo4i3%V6|Yq`b0WwzC&b>z0$?d~>>wwrgP?^L(*wHMuGx|`cU*^%C{b1(kh zN@rN-QkP%X>u!(knfuQ7$9rsghI-9=AM_dZ-S5}!zxP1%LHmIE!0m^s4_h87Ke{!j zG<fr|(&L*$%0st?Rfb!is6A;L**DTLsy*5@W-!(_ZaV(x>Heo96AlwolkStVQ{GeW zp9MYpIvqW|F_Zip{XFXh?Th@EoG;5>iM?u^Ri3>&XD~N7Z#O^ln)LePn}|1?3+ZnO zZ}Z>rysLRH|Gs_EXz|Ghw+{;+!#-{-WqhLhRQy@=^NlY$Uj~<*mlwW<f8F_(^PTN` z^$*1#-7D5BFMkIA-1wEX%C>rCO?9n*-D&;ZM$9I5vtUbXt8LqS`}t1r&Q2IHoVd3a zK*CRiuP*@Ks^N2y3jhpH0HCD)>uj{gfVaC4%z?2ZBn^E;^dKWpLZ}buQj7<d4?9Cq zh6|vSr`)6(#+MKxsrS=}(PC)l>3Zp_7%~|{nH-r7S)5pd*)rHKbF^`eaxL-Tcm?@% z`8@>^1&f4k3r~xzi*bl+Nq9-7N!3UX%Y2t(mDg4vDP}7*DUYapRwJm3YZ&eG(mbM7 zsC`3cNcWxIwgIc5w2^_alS!ayg4s#)OBM~5clQrkO<TXU`C$jy;~iKWIh}Z%1zbd2 zCEeuR)eq<&H1}}uBoRZsj*w1xm-saK_WDixF9%Qr@&>5|+l7RNW`$KA>I#1uu@S`@ ztrTM)dnhh1zVYyI!j~hoNeamhDY2==X<g}WGw{b0j=N^2X4Pbm<!qi5&b7*mJ5_P| z@tH5@X!7OGI~2rTC@$<OdUug<NvXvBa$4!tvXSy%m7G<&)jn5_)m*vSU;CzRr-8Lm z_L^~%dvo~p%o~?(Uc1%aa=*3j_Wiayck0^<@1}H+?&);0bbjc%-JNpZxChtsus5Sm zw{N5W#)H5C{(<R-ryf}h;s-|_=MT9Ka}UoysTlDc6&+n1yE-25RQ&13iQ37)Daol% z&l;x>%_z>SK5u`K^3v!P;nnzT;oQM_{`tk%H{Tpv@OZ2FPT)Q5BKia3BjpmuCza1` zUyd!eef{xW@ki`R$1m)v&06vL+fC`MsO`3$oxS)AK-Um1NIGOQ$_-74uE#jTyP8G{ zB90aJh%%i@50A#*Cmf|VrJ<&oqAjBfqE}(SGQ40MWa?w?WVy@Q%66Uo8b=*xHCF|9 zIZrun8DA-XnLveLwNQ<4y-1Vj4Y4-yE{R^rhf<@`Q!+1PU&_6Zf37gCIH~khc}!(k z^`Tm?dY8tXeK$1gwJNj=b#isn^kVb_3=SCXH_|bdGvPI*H3MeL=Fcs9E$jB5u{vz+ zWn*e9YsY2}*)KYbI^J=rbk22&clB|za^H7A<RF6w<nh^ahB)BWLaOvW<CE^2;+N{5 zMotSz4NMD44NeP53r!76J(L=r8j%{A5|tdC9Fr8A6n7*(@o+*yLgL{g@kw#Xv2gFm zO{+|AKRTZA@i;P*Jxe~@B**ha%*mYGioCW{Pfou*vw4m#U*x=Ifz1Wq!i1tz#T6IZ zE)AEwzWl2UU(Q#dTxnKyusR&>Aw^dkYP;&j>)$o3U&A+XH_Kety<vNkbSt7Iz4h$v zN_YnAX&<}$y5qyWC!O_OS>1m34SINcHhZV~uJ@mOKpxP4$o25&qv65o$4Ntu!%|OB zPo_tjMl;6T$K{@)pUzA)O=eAzpP5g~&+t5FctP`$;T7Mk#+>K;nb+eBqHlBFgT>5` z{7a8NXD-`(6a7K8vij@G+J}u#Ti^HMF9CWWb7%_ThWLaGM6RMz(X8k)j1uM%yrbQs zD8gysW+{(R$y2?;XA|}jmZ&e%*wRwb_R^iC_h67?L@|ytRWir2ShDi4uCP61FXf2k zwBi!whPbDBuJh*d1@IdQ2ncM$`>0moe33{|YcWx=P4N+lO364WOKCpouQFY-r{p~4 zrRCQYy5af3PMKACMx{iRsK&20r(U9Qa39CMNzF4_R@wyZQJq3vlAfgAcl|pC>4p|Y zj7BrY<?wtVZ@OmIX@1PY%90u0Pn21at);Dh*tFRu*%{hX+7CILa<q41ahi6%<l^Nj z>iXI3mV5F6vxCeB-@yBTbfS}&Bnd&9_P*hh=Ns&2?k_>6B7X{a5_lshKR71DIaEE2 zBW&x?tMIOf^2m%Ra<pZPTr6|!M%;Y-!^6!9MTtj`geAEro2DqI3Z&7eL+M|SzRg%T zws`z==C`b$+3PvmClR@rJlrY5Y1%W4XIaj%=X0OuD-gUOQYc;|RV;T=@sdi3#$~Ni z-7@oXQbkH-NmWPn^p(}C%(aSjHub>`S&h}#dYWdNH*c`qRJdi;63}||c4=Gtor(6Z z9r$~~ojP3yx)0w!-_y|B*Y~3T#{kVknMV$TM;~_#W1e`7^pBa3&rcLj#Z1RPuX=@> zt9x_)-N?tNFS$Q-*6McS|5uJ|cTK=315l|AF9`6uVOIt~c{>0?s_^<z34k>L0DCon zu#X4O%T@rnT=;wafB*_mz_}MTIFqOVXG<L6vw13fmb?i@z!!)Hl7sA_c=!zX5L!WS zAoLIch%<-|#0MlR(ij<otU*3U(V~n{iSU_h89s;k!)LDrj1a~jQ;Ye6Rl+7>`zUBB z+$m}(e&I}T#kg;jrj%urTU4%8t$0>^JpLuYfKW%xOr1jgg~o$sl-7v$E}b%66TLKj z1A`31bw)MDZYFc4DP}+BRhB$fan@coFLns-rFt9-oLOA5Toc?$Jfb{fyhr#X_@40} z7f=)UAb3&8Mi?vHArdVrE4n0BBkm_5BJn}8UMfObO$H$|C|e-sEw7+}R2WyRQi@l$ zRuNX&R-II9RzIl`xX(;eTnn%DS$j;URrj)9rhcS>r=g{hzOj~xnyI3hoVl!ptfkz3 zc`IdW4I5osQ#(6*4~JmKM5jFGN|$!mNw<{)%m>vyNS-H&9bVtOMSV!Vm;GLmxdTXn z^}!&-E%e?Ysqo53@u)j7E^(On`w4kRf|A`+-O~Ls(vR0=y*R;|>v*c@%;>q*0^UNa z;*3i@r4;2hm1WhxuG-Z#H!?LPTz`Gbs`bttvAY*KDZ3MTR{D<&><k_n8XXZBBR<WY ztb2BQ=EjS%SIKksuesm6dRzG3YH{ad-6!WSsO5%l&OcBqO}~h1jOzoNY1_Jc^9Kay z9H`)o122#Px^VP^!7(_C&;{lpG@Ki-h4TP4&?Ewbkb}?m*@!m85|RgLkIY8)Ah%KK zs2EfWY89=4PD1x$2pC69860&@><R2Fg(5{J#T-rpcLBFX=|<T}B|?=;wT}14PZ7)r z9n{LyjWm)pwX{;S&2;K?J@hv8a|{uT6pW=z8gR5@;S=Tq)@U{%wkh@#9EKd*oOih5 zxiz@Ad3tzr_#F8K_`eF=7t9w56xJ8v5?L30CU!^sl0=N8m6W(NR{FinfNX=@S@}c- zvZ9lcv9g+qw5qTguR5m&`#ug$9xWklDIFDE13i0vUxRqVT%$bWvnB<mm&~fon=Cpk z2lv0Q`f7u=<+M|=w{Zw_%yVjXo^aW66LGgWkaV!oV~)t=WllQkea~mZPs2Zfd@m3c zWD$HWWG+nhP)hh%q$s>1&BUt2<;SlkxF_CEl1wg0#iYfgf6O2rdzNXRHIid}Vm#L+ zZ}v3#tY*G&0Yf3OXzk*+k}sv-%Gat;SD3Df*BLZ;Upv-(?Z&GXy4xmq((m?mQgz$+ zT<Uu@!2HPYvHx)5NcvdPQ~yc*XN2j2=TR>iUzN=X&KJGGF8IFfcu!cg`*7~#&?nSq z<u6{#IbW}R8~^@&h5o11FXL6>+Tr!n8#SBvwkEbe?8P4ekA8Z<2akO-IM101%HXWg z62t`QLSaxDGy&&$v=LE=dc=FAFwzHk1-XP$Kqa6apqbIW=-U`-j1T4>mIE6P?>V(7 zDsTkcVccg*66JF$XR1lO8-AV;OxUE(qY<O&qb1YP(cPsFWe{eVV=QCxW0q&$V(Dhh zVsl^@VqfJL;;i91#!cq2;#K7n=4TPW3u1(j!e|jnQARO7aRmu;NwQR?biK^D?54c1 zf{o%4rCQ}@suXG}>OLCh_VsG6XbbB&>t^e9>i;y9H1apTYVyfU!93AoU_Yx>fOUs0 zqg}9lzoVd2s`H$yzFXx1+`&+f38I!)jW@GTn(udiA98;nUr=K3Oz6I_(r|1<Xyi<^ zX-r$3RD5{?M`C^wL-LtarnJJN{26t}RWkds9dkaMOwMCF)qF<x?45k2^UW7z3$GU| zUu-YYzx=q&wS2KMzM62Q{HjLnM14df{k7}OPS>|@R<&5SZnf37AMBvNH_(-Oe_zj! zzPblN50wX@$3w#xN62Fe<0}&lQwOF|GsQ22UslYr%*D(PzF}Rkew+5L^8LNVM<0ei zK3KZ@sq}Nk7w2Ws<sV<0zJ+`j`u^m{;T6G^yFVR&F8@kd#jT!NV_z#;r(e(7fHvYb z7B($6Z*FmI9o<^o*4-}L{=Q?mQ?(oa2ww&H-PHp?cs)4%_;P3GyD$LQ(*SIp+S%DC z+u7MFhYuUi0q6|+>wlMBG6v4o7x(X?zMfkTcHjTL{tGYo!qTmO(^dcgKmbWZK~#7F zOx@jbW674-cM>E)kgV#Sqp&r88HXb*%d#w8_{L#JND7Ca#aDhAzt)WAobKu>egYs! z|NbjcJ+r$S+{m4|a(%CrUmKVI-~aRf-dtT@TwFZt9-g0H+}!MLKR!NAr}xcV$K&zx z^78s}bANyT_WG*A$MIds=jZ9;^5gUK^WyU3a<jR*x>9&?vC&q$%gd|h*VpTt0dakK zI2^XuxBItakFHc!_wxPyU8|ezmBQokaD9EP+Re?4awQ)ZpC6!HU7b#+huv<!-w#$F z5OCG+bacJBa{vBuy1Kaz_JCHRvMzi*zSmHRuew<M*2SlXS1)gGU%&o>+^HNN-rtXx z!S32zTyCKHQQ;LLH<utC-j6u8-Q7X~!hpQJ?h)MeQNQo+AKUFUwABx{&v35ms}002 zE~@zU_I7)-1@Uw^ZnxX__tRk*etosQ+<XG7Ii6p9e4gHq?!f_JbA5%9(?tM3FHX0& zw-=w6$J2*LSDS17?%$7_&yBBdFMCbC-hV;q>+|#O=0+2woWjU;^7ZC2tos7~#|J{- z)7N)MUTm*!i2ef3n@imz{Qa=k3jy6+Z4s%?%gd9#kgRDy)P%Ncy9Jr1Aalvu*XO6F z?adAsuCA_M<Jk4x-5uq5dinvg-R>3-RKtOf;|W9P5}xbjbi~uQ&yV-r&Gq4QxVZ)9 z?l=f+HYk0CfZlFyws`XXe)znM+d~C{HaKuN97Fqh`*zq<m|&95=!3RPwXUwOZ}0Hw z_UXst@p#(Z-lt@rpNIWBi42?rhLb+Jlmmi!+wJZ|`#zG$qTM|~U>yQo?}yWuFJG1s zK`))ID*HOAd7|VWA2-`=tv*h0)RB99pksPbO?7av|NVdwA9veZthoA5|MS1Uj<r{B z`@^-W3GyS+TwSg9+JJ=ybYdu@OL;FZ-m>SEX>=xy{5ZjwWoAft?vpt6madNAQK~kg zeFq;9cN_%d{7;KMKVlGvpw89x)kXGv1P7JFm$-u@U=#jL|81@|sWL8PY`Bn$!`u}b zu_z4#Ruh*S5L}zoxVD6`YJTK);D8SN9kY(`3&na<zCXNyM*c2(^YI?eK0Q(rD(aK! zJ4l-6n0%#Yp2G0+B6dMcAxv(zH|T&OEj_*;A9i;qhR0+R&uQVR_gl>`F5wytu+H!C zCe$qbJ7{@4&<0@f=xTF=uI<e&?NpI9tFyVh*luql8w73r9blQHuR*&+B&z+HIu{tg z2f^oaGdlK((m27zaDW(e+~<yfWN$EGZGZQ7zo4HKP)!cQ>Pvcrw_Nk??)I9wZ@1(` zBPkdNNtq|0b~ky<Ba=(kxmfr^g%pw_2YPvN8+SKMWH`n?g@=lg@x_U6{qPx=h6zdg z1~mEuAJz0ocQTi8f|t~JGtM+K8h&nXlx?rKtmx+IRw;&(mtIt$p&${1atZ*N3oc|& z=V6RdOqwXg8}QV)BHoM5o~O9F(WysEN8NLTq(Fpv<J$0nk`Noshbq+Jtdj^EY%ex! zg@I)qm*aD<Ri)m<L|=Aa?><i`JyK;1T_IOv^e+}D!J3Z?)>sgZ42nyD44Dz98dtfH z)5Xn%Gpyl7)XBQu^@^Dr#*YySFHxK160OLF2l`r9C2C)8PM<twj)&%5T<lqgHgN%q z(4P$_JWK>owP~(6G8f|d?>mAo#-U7&I;9rV`&a}{9am!(k!g))qYDSY&G0@yHY0$y z{gF?@WeP`)-gE4LNf5{@EnH~m(B1T$@vyd4t^`a7B$8TeKHpE2`uX`;;oW`7&g<(d zaa?V0(M3S&smwoAIZN~T$u5D#qMO^hg&56c%Ya7;9)Fzp8QkGe@C&EZPgLX?a}q1e zKnwYg58gtvj4&IBm8CE@SBE@rZX0dX2mb4;l8es`lOlZ2|M>BUkel5uMNcl9mzU?* zLrhl}yX71|-sN2HmpOM@i$*<OUd!P4g{VWX_y)C<Dhw$nS=4Q*1QEma>Lydh+szeI z$fZ&VOp^a$GY!Fbs1?tsO6tuPNrO~{Q=RI_y$7f0^qemGCbaHlNA>$&`fyPmxg9sE zo<=1y=>|3y67ds4(dsET^Nw-3PPbPC>K=sC4Geh@F5{penRWeCjLk;U!L<Oc^mV_- zf&1MZu*@?#%>~X<PRt)W+Td9>$DXs*YyPtKBu|Hu5HC1+GRopZ7*k-b<^6hF9FCP; zFz0hq+5KA)&!w%$(jJhy&-c#_6i4S)HKrKg36cqHVwbLuhvQ0pwe>Z<#pa9hRbOGN zd|jGk1521=@PoKk@fQxNt-hjvB*caldOCG_=spQ2is1YBS*lH*!nL_6#tAg4<IZq{ z6T^diR^j*Zax2vtM}yXz>moTjqDG6KfT*J@UzPJ#ZhR#zm!}Gqlt8*pAFunj+bfEg ztqORIe_guUzrE(!BGpHX1t*xBD<WgJy7ri+dhqh{5|V0#ysJ!%VzP+>){F~0jUr4K z<K&X2FPTFID)0z#CCsOT&|sLLN0jZEP8rSTmUoy04;3(?;;_EGy~{dS!?-X}sPYrD z!SD-7@5j5`8XhMx83!_qQ?7?wh6q`^MmHu_2`}8r=2}vebCC5M4%dbKY5@p;MEXxg zAnQ>ICOm<K6&;x_w!<sxg!0^5sEI2RHsE<Y7))%W1^|&o%>1dzl=*a7vI;{whlli# z!%;#w*Rq70YXhH#W>=9c!+=BV9?pQ1oY*#&5(n0Zt1$d2z9mQHS}nT^@@Vg$pG%b` zFNnI%aa<O2)WN;wlOUZ8=Hk`nUM^4Nvp`mqCm*-JbSFHh1*zjADZU@ngcj9U`m{eD zw1yKyPMn1HGZRju@Q(t?(#Zzg(XE}4%+VO~+8~5v;&I-*OIx3DB%hauS{HmhT2Gh4 zqifM0@tI+YdM06WS)M5Y!>q{~-sOaI)no!PYC%TPo-4WB+}%HbvnS4vyqgSX^(Ya_ zo<HRXd9Hl_rr{_k{sXe!!I?`Qc($1d>B`xvlu6plc!@)WWu){YXyS;5WnRI-B{>!v z2_<2@8%uA>jq!w!&-gOOEau~Aocw-qy1Bd&k9Z2r!5%F7fGFue6T0*_nzfc~9f}WV z;im}NQ(uVJSFwYIsYXpzXGa7h+s&~ezYH3BY0knBH6fCu3R%bZ54xRrF$kQDCm>V; z2Mk`L7l<6kur15HyuH6iY~fo2v6lQ<N;shubHxmU7?c;1!!0$7+$!k#BxhluAJFrN zIBQhQ1RE%$m3=%btI#Y?ifnX)0@vsG-|4*O3J=^g=&2Jw5m((KMO&E;4ok#VeoI<C zooj*0JSNCV6EGhWmVSO2)gp1-Cq(?tY$IW?EK*8Y+&8Z1F^+Fam9Z5>uw2SL^%YRK zVVb`>mYNL|`piqEL#!q|qC<~o51~~&PBBCdfqcBwIh>yT4LA!Yz3P$i)p6sH;<?`O z7My&y@U=Z_suGu{>&gRjJ$lJZ7KPv!W(Q9nu@yD(VJ=_!g8Af78--4#=*5~O4v+@t zY?(gfyg5{b9HBnkWLei|*H#x)37e)baP%W95%J)rExsvHt%mbeonf%#t=WX-*Hu=n zG1<kt5fU<vAMX^&CC08^*oEL=8b<#rst?q<0B2e%1E@!dADLbl=l(R*Qb~_7dgQKp zKw*_()=o)gahdxDeBg;cp<R>B<*iASY#>$M?rtdl2P-%n<o0P&BbqH%;6L-#KO}E& zZ+HTaOwvr1GE?O{GQPP!9{0Ep!^x@N2^&K;*IQjsYX3vlQw=k-ln&QNAwVgW<u!17 z{7Hi1;?hQT2>{{NFfZ81Xi@DGpOqun$70}ax098Sf<o%x#(Y@ew6DvFL=`7C-r(x? z7Unn<|KYVXa4f(hPUc>uS?Z>vT<S<x8ZIEi7g)YW3^KN1x8R6*YmlWrY?*%;o-Rf9 zdYDTus$s}=@qWM?v<`~C2NX8Qu3ocEW?z*QL0A+&!>>{XU-QT8E&qiayvXs#@tDEK zdde3J!8{%zZ!V4>$BSIdVtr_bD3>f5({IRdTc;1Pd9yjZH5&|3|3JmTkQs*;gk|TG zv?v6}rH-1E#EnAp2tgdn^w6z;RUUcB_)M_DE4HZAtV8n+u$Z=CgO=6&_Iit=<T0~Z zCKZ$)OB6H6Rc8<Y8@qKsh!b{JUFNNh3uIL2aPW~|#EQmeKpF122D14>#<1J&((%EL zdIuAJGk%e7>yFs5-_#aXgZc3AP@yTe52K)Z%x~P>?GJ>w+*8P^^XKKe%U9^?iGIUn zdpiOmy79(QQoI*>uiuL-<7X$|(U5U4rqF0Q0gftO${<K{zkeNvoMMDy$`L`voS=}Z z41*5nhM0|v!b<9F?qnk3NP+M!_OA!oxqk6)SXT%^U6{|x1{>gaiX+2kNfwe8*F}3N zuIa&)hZmfI8!nbPlpkxbF;APV<`hXT=Vp=yQ8_-n$}I9V#V{A=NMm))l_gMKs_X$W zle~Zcr{=*YXvW&l-S!U5v_y=Y%r2Ls)%J!0fy@UP9(djaXOIm2Qx!5!?qXzMP?TrC z`ak~1e~ZVS;6jY%?2o2`%Ken^9KO1EIH0-G+LZqB$@mx8`i_&#^#hUA2zQclf%bF1 ze}i7eFi6nJo(`hAh;p`00G|z{xh0sXlk9=KmUJ~a9x-MhXKq>X!cD7&K_fhs-5@Mv zpfVT7y}DChA#iTsKXo7;<_KhmTBwPN@W~_&<XMaHUr=(ZJgJu_-#0I+I}0$wmf_}1 zgXdxl3T8xP*})iTlogEw{~UEAaN-j2;23Vm52>kMc6awEm12RfFYe7aUu9_LVdHy= zx4Ri@LuyDHM?m|u1q7b_Wsg#)w5H(!mzh146{3^6d5{89dg|n^0b3a$=3$ebe3~W4 z#AYZszz@@{@G&=ev1`$Vi^&w5bK!Fit)J;RoG#406<SH(gyK@FktT1L6mD;KL_XYB z>wQ-yRfvn@rZ!y(wxt@lD9Vs%IMXVE%CVWd$!Cu~nXCK+lqU2kd_-l5mBi28Fl44t zrLj0Dw`jeJ^p2Cj(g##q%xjI){gN`p00v69v9uz5W}&MXQcB3Y8!-QzrOqj-Nw_iy z$~NRQXkYlte2@WKh^?fDaN)*P7^TZ4T{XGLSb*YBbWGL|pk;6?f@nJd?CQV#`~Lut z#y!imX5z7{i+B0Nl-(`1o^@KOGU()A*BmK@Goh6Nm@UYsLr=AZajYDl1WSebf~#CB z9!+0vl#qlgOD|HzAe7*3ey4xwRsBscPb8D)SV|!x`c2J|Ey03kfP#rBs_QWT>Akr$ z!}-ZbJ;G-774lY7=kmDUtDjJGpeVe@|Im8MJ(qsj6wtK86cl`$Kcigg=VfE7r@E9s zEyWB87~nf)!J?6KydG=Rk-}w5L#C#&Kc&dnhJI9kM4$(721OO~+1i3lpKvDy$`TSU zJ*N`f2bmG}$dQj%>r-wGBp&Gky}ITrK`>h<0PbeFNZ1z>s0^57HVBPyCm`@27+uE2 zd%!TKZvtk653JgJ#9$J=@lP#vT3i*Ku%UPbd8PEh4Xx1w23A65<z{JG#)mrjr-m}& zPa$MCjJhz6@0ygkr7A1`mcM4CeJe?@ay}zQNrQXdki0YmjSBfxQYuNN#WP7Y3d$~( zadQ+yMT&O2+a`YZ<>4SS2nU&PODqVjYPmkhYDK?z1*l^_m8Xyeg6y1%6?j)v@QoZ( z9*g!f*6^ABPxL~5%eM6<XXfB8#d*eT6>YkRb@W&gp7UcWQ)w)AtocmmC?23=46q+w zq8$5~4Gm2IlW*q{2hxT=F1uETHpoxNOnSqg9iu$^fud{GSIv#Dqtc<}!bh@`H+C~{ z5)(9L!~(ebz5?aS3vwGNdQ;&8AT9t~|No*RkN&ySF>9cb;LmH?W`S-1{8`*zz_W)b z0@JlnS~t}%tHF-t^`McFgw0U5Kxv|WR&mDD<8yYPTw}eK9b)Fc$fGcfEVXsLiFJu1 zp9s)`(}U^PUjTWr$snpmOtc1Y_2m#nnGymsZ_%jvVrlloLXD-5LXi36<#S^N)r~4{ zupBsUivyI8)HSy<*)Xi3$LGrS7g&#$+Hebk4<IVQ&cCth!IM03?fvo`p_hq&e7?Or ztHX%^lCO*NQMw2L-#lmjtR?G4cwzuWR}o=Kr<Z)A^-qL~TOyp`Dbs+%=wxuoVHR2x zkWzZGZ2>Qy=)zY#q+Q81RwX8dx^o}D=Nfli=~<q`f4fIinDC+U^~CMwWpk%^K5Tch zAcV?ltO>{{NYPsKD95osLiRceA2QRHS8&rXH`$os5I4p)KpY;*K-3Y(eVsLrx~Ov1 zBuIwAQ%~t20hMeU>2a$mzxE8QokK?aoM!~L*r~tlDq%8!;x4I_TMpyslzzZ&GFk;N zeMzNJI~$u)fR-806ThYDVK$E8j1msuf&T|L1f<)B%@tZpfJsg`zZMeu0vuf^!-w_N zlXU|=ACN56;YVtBzKH$IO;vwhV>``tjvDASp2XFRGh!oTx#jNTL)$MRKB|YAeS~!X zr=}#~Gdihe%~2cPK)DL0u{1*1_!VT+xJs!d7Si(ib!Rd+x*7%OLfgv2xErJ?OfN>U z$dRNP$Bjnnfm@M~#9X$L5}FNWGG^fR;_xgR*H#7!KJ%lm3lzZMlcJu6v=V7UO=Z5i zkeSDtJX4`Gxl+!s2gSi=owL)fKmk@|961xN9L(%<9_6#pg95Y+lL-re#bnKB0+8qi zzb|<olMb`vC|{H_K*9u6RnqO5R|8Z{lLuj|R$|a&c?=c06spj!8@<_R$Kzr%zh9HU zL~?pYg=bcHjTe+gZXya{Pg#Uerxy~(#?{JG{k`npinpt(n{_|!2bU?)pDSR%O=9dB zoL2g-5CEU&Y6dHZM#Z+#<R=?vy+DF9etkO_4ss;ZBqCujpu5+VYUm-2_=`8>I1-B3 zq32IL-Jr4hGaimjgR0Vn#^_-J02!X(sXSF;nL4Y-finyp{2`&^MVHE+s;1%UD+s=` zTi+9jxxO~RFcXy_;1MUZVA3VTEW1^mk}LO2*9#MswOXGwkHWeP{~YB&(+_zooR}#) zphm#j5qWrfa|dSiGqxD85JoI#DPu9GWdNi*By+y74~LPR4&Q%jl5Ah9X4F9Ad3Ts_ zfmUVB!;IQnsV4Q2$--(B6r9u@(kZ-(@;dw|N>F_vS*I=;tN!g&94C}T4Ym-mN8^2a zaXpis5>Bk1`11KF2{h(!dq$haavDub+6j>hsYj!NnekpLHk;#H>s2|cbnj>ZO)olq ze0;>-!J>&tJz7e;+ivY|8JXfmVbgt=$YI&$r$rI2wts4lZqvbWE1^DYRKX=``?~Hi zM0ffEXKF#)@S&L?Rdk{ngY`*q`xIZNt<Qy_ZW|SN)M{BCc4-dwlOhO8=)m{y-&qoz znV3|{ly|-256=fy)-y}2@Bjcf1NhOcm9wZ4hQrJ<t~BG~;xB*s%k$F<u5tXvOWYnP z#EvBSc&nQ@m^eawKx9R9!^PQkzao{XCjKT8X4-ZlTgDJ#R!N!$*xY94{X4q@;sJjE zCgpG&RUwj6O`z+AcW9RNx^!Y@p^PIUJg-((=?aNx8v!D1c0px;6_U7z$&sWebNAV3 z@_~ua0vH}wL17FUXv426tG;-5=HPHI2SI+B;6jyKF9VGEg=aAE$5$G>0!P*^+NH^7 zgrSYqA>T~W#2NM5x$*JIcIaoGrT=@19_=$cIJ3`|nm{CW9KOAM@YLAX>~T|V`Hpf_ zwWSC67{McR7E9lXMKhZUw*uMX`}_NDXIP%Nm6(u(UNh~w874?HLSvLIC$Q2P)D-xz zp)n}muhq7FJ<T6Bu%E!2e}gx^O-5z}seo7!MhPCi{5txGHp@}1he;8sv=I_q^q3l! zM*<@4pP^!8nTu+l%-8}IYuZ0?G^t5{vU3~i4P-49M}nmN;zS+jwoeS3<SelnbbE@K z%*#C}gs{A4iZrgD)@hmUjV3I%Ea_VWG|d1X9u8Y{R$rg*HnHZ;RMMvQ|Kd`ws-vBy z3d2@)TqIQ=Evc=xbvb&Tv%&AD$7hg)TwKGi_m?*iZtu2O0Y!{}@oCc-cy+z{io5Gd zA>{3Ob)Y>3RtFmS)I=?!cj2#fB41&G_ik3@Av<2HAHt(CzJjxQP=cEYVc`4psG2Q$ zoj96Rt-jze*|#PpNYr784F%O_<i1Q&S$!#K`9U_jz`~F-Qo0aO#f@v3qOYpeaFu&F z&lOS{PzSws6;KJBnz@i3>H@ZKBX`hnYbZUFuVgt&c&p|c5gad$X>%SLm<&}PQRjA6 zfV0nLpr{}v$%>&}*G2~LW2iYOg3q$}x?G+NoJ=4XFnwL#eYO5{`EkJ7_{r`xC3@pq zSRogDG^&&O%;0ipEd!dAB~#W)m{H#d7jUp--&sSW=XMRC7`Aa})I<}LVf)uNYyLQ8 z&-eE3mPuKBdfD$W0iNJbrqWRd7l!zZ?-^T6A$ffD6+RSz;F9cI)8hQ0&YxdZ9RM{! z(U|nKpQ!|2eJSstJw^`{tnIl8FTPC-BS*cgPJMzb(!vHALCl5my|r2rSEnYIvmbfq zct*h^R>~7J&ZvoIl%94fS@&yzG|U+VOB+Wcqjz0dlv23pAa$Eb2-9O2@#Dvj+wB9u zYfbBeD;aAXoNA<%k2vttfMKj_h08Gv=wx$dSqj)1EV|aH^^C+A_V9f1bSbxOYw0CS zXu?7h`@%6c`BO(J5Y`Q+^zJLSQM?(~;2}*C>~cR66VsI1tFz?A%eh-5V7S?u3}F6S z6-K;zsmY&G$8U`^!`WtTgp{F3z!)~e!SE)589o>gE-B{ON4EYBsQ@P8q|L<2iPjZc zC(2o%6Q~NODQY;^&YTi9x=@b;m{FFz9$vqltesGeJR+P~1hDey96)Za2`Xw{gSj9H ze{NZNdAGg8YSXCJW|Vslz2WEROkB|mWFcIHl=Z1zT4N4o^ix2sLU^4;BV=L2giI06 zqee-nfyj8F*8jnaU(#-m+%}a4TyWIq2EwV_WLe-aAsvrR;0y_=KmuV2mb+#<XB--f z_%v?KR>qx%pQ=G~t4iiSrlfbbn2B!X{)0og8kK->V~P@x<zZ*RctMDhnT|iGNI!jv z%L$@*fU2wg%c~WTV#xIRlSgw9PeYeRz|-%Drild?Y%$-ccSDyMs=4p+Sv)GEuwd(` z%E4Yhvd^JjZg#KxmkHep=vK|(7cS`uXS3F|n=7`{Fa`Z-w_qxqP864E0lt!F^e^<( zjiD(+*Q&g3w1(2+6nxI~ivC4ke8i7(<5k%wY*!sXLUN#?z$Ag@7NC>>=t2e7^Us>k z6~o6VgDM*V^Ni4XoSo154fsmHnFiftFGa}FJLGzv8IP7H>C@iUdrJ%EPMae;N&D=k z8m}BC>5=~iZw^HX_=kffhxXaZUW|3wZ5<X07#rfTH2-cR1=T6Ni6SVpEQH^dNil73 zD|9bbvyJ*{JB_?aW;$G0^DDM+O#p#AcK{dLkI4zmKXaD&CQ@EIdWa9<ll_z~m4%d# zH>z%3ioLOOLgvmkI4|tJH*W2Ux;U48@2N^>fyg%rIk1)AZfPeRx$4o1gy>43<jb#( zrKzJYHDWgAr^7mJE`3Z`S%l-{YUneG>pmB5(jglz{4>rOl0^9D=iBRA^3~A3I+&$r zfY5P#z~KUo`a=x}vIr?Ro~PCbTSK0~+?2S%fi1pECuzR4L;pqQ|MP$Nw?si9q@761 zUr-s`oqPzUVKbvR#9^q<VM9@%`nqDr@Myj>-2o!;%xVEKqY<bGXdy1mwI+14<yM17 zZ(?Y6Wg4mNJ*fqtw6<A|2C>)$?_kbFnk0Zst>Pos)#n;0)w24i0Ne(wR>NANXs_v^ z{d5t|q+(lVpCpc|5fx<OgZ(kKo!G8aF5SGyxR;iT@d1Xo1XaD;7FQE0g>QH!Yo(Fx zP-=%da)C!%4AOF#vJl1-UsJmnn=1HBzw#i2mNHEXAv@`2OKG+ncG@;IOd@E6+KP`Z ztidN((G8VuwhpqAAj5O8(`cnRe8QyckWmB50h^772*+0C*r4-yL<MGXL4>DyW|&IA zbWPxcFb2|Fa-!u-NEA89d@es78Ey~3kwlz?gUd`Gg)lP+Z5#?`+a#^I9vn~99CdhL z@@Bic&sr(*%)!9916L{_<YkZ2_x%A0EuUJc&Mcv;y4|yduO3}rIw8De2PxmNT}LUL zT4zr4Rs|j&JIjluqigetvd(24JX72J7Ew|jy{n2pWDQh%ye@2ZXxxAyYCu9R!i|oF z=Y#k=Dug3AfNB7hi262cr2q;jTfCsn+DfAwz-}1uaoFGA?`%#LNc2oWTf@?K(vhgX z+nkVn<1jG)*T4IZ9?*hT%tl!=i7^#OQ<U+|H74Hy(hWV!8E~aj)I|5_genLI!4S~I zpi?7_7es*AjX-nfnXcyQt485XJ+nzY;xEtY8b&Y0=IYX8Pt}|xr+DsObDWw>0lH`s zv5!$ezHU-9g%0It9unA>?@U5uK%fAVinIWP!GGaZ;q*{teYwCt&+q+9?+dOA&Fd4U z(ohwup5aE;kfyiknsGL}a;`pq^xIVzbT}h=d$Zsf)kOvyswQV?>la1Gzp6P@eakzT zo`9P^3Vl3OVh(e}`da20V4gmgH@KYh4t&#ja*6GkUpp)?Ipq|tntn1wOh0BaDDyDD z$lJ|U+jP0@H@FN`{@CjTycD6@jsN|NYnL`lZsCk}z+uJI(Ex4!;`Q~3ZqXt`S%YE@ z(K`%=?NGB%u82;A*b8~d9>_$XxdVM{QD3PtL&~!=Bgir1NdeA>9Qi0sg9b-<x(}y` zH)^M7++TLx#Y~1{>ZGAM@>Myx^k8<^a!6@{b+0^rdNMu%Cu~x%Z8PV~ZQ&BR$AIt- z4R|7_&eHEz3E;wwx!NwY*}ObItKY^cn|UN7w|9HpL{XYU_?~9H>Sy+C1uGMv#fiAF z%n(ZFsQ2_O1ZY2Uw~m^atD7ct=>zCd&decDM^1sOol}m3THq6K2sz5x&c2zK>d2eq zWKwG+c?tqK%>s4P9$Nirw1Y!E*2Pq=<BSt<j;6FP>~W+;OCNb1tt7X;xuTT%U~cxD z%iyQSHmFOc27-oF7=%|VUp=aMQcvv)O4l6&Sp3mTO=3z{Xn3mx$1#&w6soW*lY>wL zX*#a*n6Y+>YWuTsC82o#@F26L=Kz}5A%YtkPE&%~SeH|vD0+g%pPsI;GpNE-IslH! zJ|mpc%qC5ED#>vU+JkZ|byN9I+QDftiTCL^>skGCisyM339d=leE;s&rW(sR>8Rig zOa@^-GP7vi82jW0vMeE`;9QK*pM!hbGBv87{={J>?j0a*iiflR)L+eS@0_q{<=OZE zOzs9n+wGOtV|XskhX2@K##3O_j#d+NdOXx6I~XxPM+=7{NQB0?cUA;ZR+*M!u#9l= zNlh;^VM})=R_84xAYe)(!PyORW{zYS(vdE%=$whg+HP`i4Ap$6x<o?zL{8S-^s@Tg zH1bKwSX$SF=mhd%UlQRUK1<@%kXXXZH5ZZU<?28GPyb#A%vUAiOqJ`*rMSO{$1Egf zLSva8K~hOKF8;NEm(!iem_%-iPZSnTy;j6lPcRAx{pmF~(~ujS!_!fiMt9ZoeCkS% zft^dSu2zmZk~r&`hwJOvm1MVLB7?o=<f!ear7qlLws4z%%Fl6uJ6xUgnIj0M3fj$Q zs3~+0VH61HAShIg7S^cLG>3Dxi|(?S8mhu@V_@{?ZXvt~3qDScuE`ksdU^Tfm#=oJ zFg1*Icz*0!mX7>kNK$BjW$s{x?i4FzMh`TH8^sDWJRh{3po9QKLrWU(D${FRpkaQj zoWHt_p31S0_xHAcA}jr#t|gYyD?9)z*bHsi<5>9S{^6d4hRzZPmk<2_;J<YebtF-o z2ex&NNs-2}#@OXb0Cx>ml8E>W?Sr$H&BW%j{OeUUNKQJ<wBtEuvWHH6PFAJ!pL&~g zR2vyVKc&KP@KKX?cSSxXW3Z(U#v+S`m9Am+laslj;g2N57^+kSv~x-3&=uI>(y|ET z>lYktF|$6CWnpINB4uE6y1%_KlZRem*$S<>^wc*soJ>M$tqDU@Y=^dvx?307B+j6N z86MmuWI43v{UV>?E!Q}L_hr5oKqd|h18g_5>D;KPAt*>o(NB9UZ*wf4dR0DNq_N^B z_iD3i@{L5D0@4NcIAf}y<B&l}?asllyL2zUD27Sm&AZJ^+iazRt2*O@NhWjUR%FC@ zH)G<qiRucyu3>JgQzWQnAg3>%dQdHwG?x;wHwa_QM*MCYmqVVlCz%?B+<5sZ<~%0Q zPIhz#Gvweyyo!RRstIg=e7~Py4nDgI?x<ac(xDJTqqt|oe~g-o?7(ck!l+e5E4UU8 zYdZM5K~_i^elLgOHcXSErvR>89-O9|XZg7>G@R7QqMBlq2z1)pUSPXBng#H+-eubK z=`4``<QQ~-qS-SDh>ptCx3In1AKxGcb7tK3cO;nP<I`sVg?1${w#h^+lX*Cozq@;Q z+rN01#3)rO!xp(9mIeNt#*0!?_I-3I<>=}UfCF|4$Y%6PHCMJM@~7fNAa?*@bKUv0 zvlKJgd{7!9=0wZn&kIj2XL+fEH=*5-qF9Q>L6}`A4s|9-i2y;5;*n$lHjWrs7&#-u z8&p_Odq-2*jl)7ba;IxSqryGSK^rYEB*v%mF}hT;x*v*wp82ZLUBu?Dl6c?Y;iXtn zmy`xYiw!54@Z`!`GAHBge8(COn?=Z#tP4qDyw(VZ%k}v4slSUUZkEW`265=A6+6Z( z)}zrh(a`96dvZ#ACfC!a)N~I5xFb2Lt!_l)6ncR=Lzte`0h!?4xI9|u0EKKNqOnh{ z)~BaP&_u<$Qw1Y(WJP&;TQ0;RLVynpn94rY2-;jQP(waOO6w`an%XfZeB6^4bP0A5 zKFWUv13f_WyFjg|OSD5mv)`Jm%OGmrx~6-54<Vzq=~j%1YR{N~X$1F@+7$7s1=xjT zHFLrxrFvYQGFiP)rK|1rhx2;HRkm^M^d+K<W3>f5l^ZBnA&N9mV<;Ohlo0T5-d_qw z0Fn*OQ_)BYw~goD&CsBo@-}fGXWzUYUU_sla7|9$U0ocKQ64JBhSjK{3K|YuqAq?X z-^fH!5eXlQO5;jkGqb+!%~+=_h9Uf*R*q^xX<h^9z91~WJp0q1YM?q$t4B@rs3X^S z4+ZHM<o%o2*ks<Q2Ul|Q_G*gmR+yE*<G<xnF8Ats=Y3Vq-s&20gbWDQ`nrINPSNB0 zq5-BMOLHTv?w7|kcI3bXtC4W~7Q$w9y|MkMV{Qv~O*T3iJd<0%qLXz>HV7j5DQ~K{ zP5{S5<2TiOT~Rm97gjixpDOO@ssJU>aL3dBUuo(%ws6h;7gLZ!GlF)GJjMV(K)=7Y z7CUsBk6^b$X+f#sPowvG2euM)H3~D5Us4~$Rs<N9F9fgx`_`xFahOnQ)ECjvGFZf- zi;lJxa-s@yF`2BQJv7gBp)~Tv(pI%E&F2L$T)N2G<PH7Sql_VC7=&M5Uz8Zfa<a@x z7|evo2wQSEB#^;(H^M@HY@F6DM4UV2dCR8o%hTyM#|od(k7AU2pnT3~@S?@T^=c?# z#QYP&Ol3KR)4<ipe><!%nz>NqP-IFe$YNkM8d7i;+uiQf`$Jn$^*!_0c2e*Brbvb4 zY$=P}a=y-#&y6!GYd#0?^&YwDrw`IKBOscG68*yS<s#!-mO29&t4e2Q-KZia<@GwY zYijLi<*eg-Z%qjw<%ZDM?&dutlL6rd45j8TFZ-;pX~LXE(T9-Y6<3ymIp+v0j=3(p zHRyblJvKs>uIR4Z%TT5DmFu^+gUNV!3fP20tdP0<usnfb(}V`Gw^qbjpS$|s|NDQ# z0CO|*4neDGGy~G*HW~U7Cxq&oK(zq@YUklg+(|JT^Xu8!?fn6Cy39`I(O_E48C#vi zwV8~`<&xQqt7uG3VnF#I)@R&MnV_dyk_l2YxKxITR_=Xjs>m(OB4@_WN!pejt_z&> z4j5NA#8gs{up5W}nP0fqBi!`8lpcgtLdx#hs&c&IaX<=k*EsN^bkS=f7;ou4edllu zy()#?8GnB@U&b>iU4HrUmFS><cke|lW_C1hr}uKQd@!M8V!f2l(}VFRd|WFF^%P17 zK_1SSF4AM}G8NXUWm91N6C!aDn)uOy9($ykp^X-__Q^+^JMsP<E^PTSAmUn)R(IV` zsHf%XBU1rKw|BZg{T^rbroC5l?#z4PR1iOLgw+zXx1YVfS#Gu3zy0#?HOb&GwiF(^ ze0psviqOb!h|u8Dk_e*svT_Md175s^X_M5g(wSP}p*Gg@=0FcT;(Scd*Jy7g=}Q5? zqvY#*Bju~>zx>^=@wDl{<K51H&tRm6cHBdpbA({W+Z?ZJf+H+NX<ijH&J}+YA|)(W zR3Bb>dhNtAhl_6w=ceDhr*U|Jx-sqPgb(CSGY<!Ir6~`{Y~udzKDU27Jv~1uR(AED z{>}fQCsdhUAU`_S+ki6}M8c+k>>tid-xGAkDzwMM9O1msL|%sjbs|290B!Q(<K$4w z0$Z?OI-V?#(z8Sm8F?wZi;rXHW11e})9@4~(9??IKo#p<xK^7f_cczfeTc0On}~0= zGpJT{1eZ`(SPaEwGd(2FF<XMt1uT*9YQ6l>6tPKCM8K->fzPlQkv9$>eA0kKUaCjp zzLM6mD@;)QXy>{uO^sHHkdDIVfO-v3rbR^x)S7y?+ujgAX#DVT-<lzbFwpi4=mBo+ z<;?q}Te&cOagMod!`um;7zmN#fI`})vU_sDf4EO8lj;ZfK+mO+`9s4!xgr91IJ9d0 z*)~A(X)=az%I(MX5FI6h@>~i<T@nHC?d=uA#hBOQTS9C?=u_f{;R5aU_IA0atZ1xG zN6>|&_Z|a+FL}`pS8E+lQnqoO2<;smql-j5_PO!KL${QeuHHE>EX_9OS`t?h-x>X} z6Oc^L>Wh3~ON5rAT8gv~U_XgL<IH#=Z{dR$9T}%s<acjPm4tCw1S~yBNhb(3O(=0# zFKzRV)y9=@9*aFL8_9^^ng(SoG!%azCJB2#w9GCm@-Usxea(>=^%Qw^Ch>XW?A`Xu zmwT;wSTZFvI4s+|yW8<Dx4S#T6@-N}Y_W|j-9Yjzuxuxqsi6|;i4W?)3F|?l0!*|@ z%RT6$Y>^Mgz@iJ!sP9ZaMN1?a{uF;t$g4lK@8sa0mpZgzdIU!g47+H&?tSeBxKSqM z21!bM^TDMv_Dp9kbqG}*IzqF-w3BPMyLYpQQs_p7>S&gy2);{49=Y%-&7DgjE=A|u zXq63&#;B=EY)s*;jdqZ1(Wtz^=V0ZTuetbKila0a?{DVw>u})M1XMFm8IlU*JqdR) zzxqyQHxP|s;Wl0S1ap<FLQ1eMO=hCdEY9$u{38)-0+e3dV}e^5n!TuR`~Ab$do&|c z9kM$Enk~ma8_wIUP0!@Q;U1L?SM}cE{#kT&yjIuwKHU#T3o)4peNCfyD8>VLNea|P zqB@njEzabRgc@U5E--QM$gMf?@!TI~E5s+1%Cyb<#IoY;Coy}3A<;gUuOzM{O1*_< z(vwi2#`NdVE=I;p`kbcn(G+uLyX41d4wFGuX&`T$QXObB#vXxcr9^LTrq5A=_)Ku1 zuw?(n?Q$7qVXd5V#51&3kbmc#pWk}%1<cAM(m~DIC<1UEjL|9bPYZ5Emw_QAzE;G~ z0iIoKgH8aFOyigq6Uc#4HUJLS@~}c$O`4S(;~WzBU;p*wXJ7fansgwePP-5ATzv}) z3o^BLZpnj%iNYr6gH`jwL6RKk3Ms@YAGW3g;YLN89_s?qz4=I{slMG`C0J9<*D}c# zkJCKT^f{az3(8+bK6=$m-&5ux9Jaazal%Mw40V{Rx+?GcRM6F`;J6z=$UbPJs6Q!( zOOV28>aD>#xX2xJ>J$L&l=Nlv68?liR^xCM@*+?cj+{W9O-laXJcmUN2rPT_)tDHB z$!`MdY7^wF40{@F{y)pB9zkA0_sL>coTqP%!$@><<4vV(MtCz#=%sd?Q!kFoFasBe za7rCnkx5Chs4s~sD`quyc+<P1Ax9A!ea&l048m@$lsIXSXv~~>QCX4J;2Atl7`?{& zR+u1`v|?0$bV;Cv&N&Ci6;jb6m!PW8$%Iq<Rwc+?Jj_t+phV-i8I$*0ep_D0W=W4P zpgc3Yz4BgwQ5(H+x}y@AsdTS*==|(`eAgiJlL=^6r#5BOI9{jO96zG{OfRO-qvHY6 zkW_WUbtOVq;N$6NMcC4Iro^@Ad*(LSh7}>NGoSd}{5yW#?WikPK`7h1hLLUfBK80k zwdw<ubVP7CGjU<Cq^EF|V_BC5sx>pz`ebG~Ge(*W>k0R~X;$4oA-Lf~THj%~xtC0F zfh8yIL<vozaAu!0BrZwG>}s&#Gnct4`%HO;8$aRqNCiwy29Y&x3$w9ksq^R~#nOv} zKz%ndJjG*PUVn42&F`YElR=aErZ1`uivZLq*E7&_Z}m8<Sr88Y$$-qJtmXrsQ*Bbs zrSPAx!9-yIbLU-d7R>ZRL}@mLF|4vA!Vh}j*oDE3x~4ZlmBAWfX}(a^g_=NV>k1J4 zkRQ&}F4Oj?cMFe6vpiy&jTX~g@sI({yxMS3<z94-U_{J*!sMJlKfG(p?3^riyAxLo z9h<M#H9IloVtm!ac#S$?cEHY?%jd@@{y#^U;h7f;F&=;63{@8hP$2d{DS|4IL1YOI z*UQq>T!{Q^LQ2D*$R9{0jxoQbl5>VNz|Ra-hwIU`&f@+seYG9Fp_6LUv7Brin4yh| z+@DYW8Lm7JRsQhHDio{^jU@7w-~f_4E5TOla)UoST=PnH&s()`oJQRz*DEY*Feaoc z4k7ZHZ@8|$p%GOTR6+}NSKTUCyCEjc?^|_BqSLts&7LZyT-}U>BWqrmh^^{~u|YuY za8tuTv_&=r0$nvsEjB72?gQxZO+%I3uZ+~xuY`-Z2*cjp8bOTH%hlvZePW1)Zk9xc z(P7Aq>j)1^z=I5a9kbp+VA2zX?Gr44Y^aa5*PAzD79-|m%R#ohZteuf_(8eAm>F0t z9R)v%z{HCTj^Iboiidl{`ZFJ@T>WyB{880C8iRI^HrG^{;$HLFu*iVW_ryNK$O5Wf z3Yg_dbIzmSdEHCJ$_i9gGk_ze#UD@QrG~-ti#yFSmgJ6)2o36?Woi+x>ORp&lA1Yy zOFIp=ez-u3Wj?C4snY8u;2&?RMFb{wn~AtJG*z3|-h94f8%MwB@cM>pBK*pHQs~j8 zLMRm*^$0Bf3@aD|IwS+Wp+-lL8TG^g;m4S^>2R9Qqp*Ue|JxtNv)ch4x5qDI(hRBQ zjh4hC>SAVe4bN>_p;Lcq5fFv0MhYUI?1NL1qLbI+jNwA5s;=QyiWb6Q4cYmF5?#l{ z&@Nas<&;S<A86&M@~8P@-cv=*TuW@KVWKg;n;B>OMUpnpfz8i36--mXG@B>WjO9`Q z**TK{UTE@PZdY~i&X;eaaHFXyPgj;Ym+rEMe9UqI&;*T<#2_t)=|KLoVx<p1Q==ZF z(4FU0eZJ)a^r$f9m_!N?9kH}khwKN)Kf|2zv>zJoUD_i>Nve^wu!N*yytb}IXM5A5 zOk!2%6d@-zLTQSlB*|m{m0vE%@<50YxoZ#xwXXfaS~oPA519UBlg-Ahr%L8&z1PK0 z9s)aX&MZ|8e`Zt>A2e|Vn?iif5bM&5-F7%8hhmeO12{BBwZ=Y|qXag-d57pkfa!8} z3yjx*KcTyAdrAZAFy#z%tw)+b*cJ<C#5SxRzvGcskSXYl1NCbiI>oxzlc;NC`RD9o zgxu{cm{~VoQpkikndbB^8V&?)$X9g{Qc>}(p9nw*jfGaMvoUpE41zsp4y}mVzGA=n z@gQYw2648p2_mD1LSq^TAlkz@q`THvpB{nls@H6u%++LmoaS;I9=0z?t5s)7OP=}J zJN>*v%J@eI{6t-_FXy|ErQg!@<&G8-)AdBQQku~?Xoe1Nv5x+%bd-)JRN%+}mXugD zTj(wzWS}WYA=IUs`e3f76%AlyQ5<-k>8nnc$EBvh2#+ZVe&L5-nJ~+K^ts$~kMa~0 zu{s#hu&k_otS%=oLIQT)h3icynkb~BHpcdN-e7omZ=Ie000DIoI5CIV3O{H6)6<3I zxSH7NvI#}UoNe#!)d1VQYiWLkkd|;{B$k#<n5AL#n^Y7eQs&YM9)DQ>e41R(jeg)c ztcvis$ahq9zVxfw;2#T@-FjB#b4J0t8!y;OrKmIsx_>qqhf_+WHWQ1*_&&cgR0rq0 zIs)OL6>Qh1hwg`jp04g#x$@jM6QbyXA?2gM4fje8wGAvdRCC<ZD1Nh6ED8>0)YH`& zTLv7;T<hU@|8-|uJDui0z~D6qBLs3L=Jn3~u)#X%WsYaZlt@N`{xGF{Zl>JC20A@z zW?)`nJ5#8l_53qWIUYH`KdL(%?wzj|dKn(ALW{m(B7*t47_!8Xr*csMx=mabS#?4j zI^-03xi=~Yvl+*&pfJ7>_PmclK$}L#kHK*A{^qptzumAFRIK_m2hhI9qTP7k)Dl|$ z)$RDp^LPoO%ALtrLkNJZHbIP3eYE@nE25?2qidrNA*__}m~TChDvem59zu+UL`Cyc zqqpV_XF+^O8Gbk3#&-y)j5|qxZrr;<H=Jp8-VEbr5^8c$985C@@MK?jjdyL-wtveR z&IT6bRgxSgal8w2L6uh1o6@JYSIBRBngL*+`Y8epw$;WCI5ee5D%{#3;5E!Pj=$`2 zrrAzwbhpmFm^8Vvx0tlel_Do|zPjYkxqYhOid74RQur)7V$&n?DHY-~n|Ya7A79e6 z@~NtgVFW~RX*_0BCSrRl6;LGyPQW_2nvLN~>8NV0Hz3uXq08%syZe`y#<zL|XMt5; z_UK-oujVogSZVH&Bm}2oPn#2Z-=Jdvvl%ntl8+CA*`ocpRcV_Z0krsG7Dcf~kjx|F zQ13^!72vg8Zrjgf&3Pw33fE3DXz9_Xt+EhugTqB9AYhy>_}c(4#*EvqPOQ5y1w+ke z9tbac;Y(*rHka0BF~cAy1sk5|A`{+lC3n<Nd#iYnI=@$8yv=HmmK}MK{{Y7pC8Hhk zso4dP%qFxL63>O7IF@RSMuT_ulp``vq3RGDu0@de%;Km>UsBZ4TjA>e{*V9LP}_cG z39wHZAxE+Xn;F3)$Ix*?E?q&2fiv<qI??JAL@A%1O0#J&eNji>*5B6BE=JIAM8*W` zW;jj-JC=EJ>OgmLenuM_T88eV@+n(d7|I!Wl&S_v1X_>`0sA@Ub=$CwJ5sS;3*5Wc zC2H&}vlP~_j?scY#)ea%Hg{o)u$4o_*)Ro2D(bqQWH=9m1vB7kn$vGvHEr2T1IJbg z#s<0a3d0V_0g4?B+PuE_)neWD{q6Al?eY4wdHb<{`Qc}}%7vvk7T2k<pMll1%QURH zSF<(a!u?#N{SEx(k8gi8G2(blrlqs=6(8<){SYhG8K!OTwtk0pl(*GwB8ITdfvg1U z8fW%0q+$Y6hW6aV_y*b|1>;YgPfsVz1@>y|oKl+Nm-v!^bn%vf&G4`My5EKb>HeXY zTCkYpL*kB1PKIT$N5NB-mWa20*q1irkBudOz*9Ulw+<OHMX-)C+7U48w#eBKa0Xe# zakJwKTcfrH3M~XlELXyPOB0A8jiWG41vSV+NO8Q_1lowbV4%-YEt#5mojgbfUoGVJ ztFe$s8Oj%_RxftvE027Ll!0=J%4v5KQgiku>e5cw2-ozXJr%e_xgnIwWU+Komo{&_ zKEL97OzEeOvU7l-JIly()_Q)?6D*f%B^By51cns~ni2-sC+2%m7`3!^bl&#mf!75f z)?6Y5u{lj;@8&o9M+TaiVhP6BRh%j^{hVTI2%67>ImO3rvT*5DE4{_n1wqRh8D;?! z?08dkFo;UIse`%r-a$I4_`iR1t@TXmBkZZ~QlTugwW&F27_tcy6A{~^vaLcC$~{W> zOc4+AFDizBOE!SxZlIzX{SZ|A#16#91vgR%kqO9Pag)H((%cDNPTa}QHLbLf#-%yj z<f#{DGD{P;wjb#27Mg9!6uwGZ_zW?`^eLPkpB~|Qe|`P^k3XCy2mkfy<>8mFUw-)| z0k}G8?T0qsY~avzC|G%E<vHlipmjl1Zb94f&=;H6*Jm-yq6@nMhTM}*C**9zaqP1n zjO4Gei<6bZ<1mecz>tsvDVf3+@TqB>^jQsjZC$b3;#+3mk!s~5_hqxWd2?N}${lWa zx4Y?R9>!()Ilm<4{e*EXZ-#S*w?bpTrebkq_Dk0(84=&4ov66JGQY@~lK<rJ%RudN zdFee;Bq3x_D+;=Dn3kGy@x=xRv$HvL*uni}3ouG?@ut&+xA0L3bRl2$NGzz5aoV5` z*5!6rQabBQa&he`1Q$?+*uLdwUtV5S!xp=*v~{V5MLtzS1y!L$uFM8}8Z<GPSJ7z$ z2$bNHZHsB2LwqF<6ta6YsF)jiExY3!B4R9X*)6%~a8?27LxY@H&4#NNOK2+?43GV* zn|Y%mTWJW|Py`zma|Wz_>pd#chW@PXhA<^#Y1&sqcSv1K_jMu6PxRQQ+T&U9AUXu4 zF~XkZ!%Cq><;cvKf&g;m>2Dk<+wXVQkboj#(GIYJT#wjvOa7d1zb-eN0IlDueNlh# zZ+z4NnbtFm?hM8J``rC<|Ko3eJiR`@J^P8#OFu_+BV0<O?;ScTg(mj<FAq1nx)Ooq zcDG-*e|&%b_QxM6)#=OO@cSR%S?|C8@BaSluYSDz?dj?9VYV^b(D>fg;7q7wBb0I? zje?_prZ#TkSj(D}!@^IgGJJ={4bNg!nA4ON?>RqGvk0p^_7aF80F?raCF4vZ0+vum z`dxq&3Y8@h{*|9khNaYmG4m}DdB^H6_s!GR^3%xv*-C6G!`Dk38eqg>?2`u-08G5+ zI{?wPUhPkrS(%)G|H+uI`Eoy^&EreUg;h}$*iYe^9-<3pGU^%G!xBLQkVV79eaVPC z*$SA|yIB}Bi7i_+Y{~HLuEUAAB5%XM@R3N$j^f+wu?LD;x|F039ei)<3)dC0SnhKw zXTX}UO#V>?ej(F??aa(UQ%_XQ7zEn5OrfK0I5x&{wuKCU15mxVMDL3av|!c@KH89p z25{5%^tVyy*@}Le94uWRXb2&`C*_tpcxm$-AJN!Tbs(UQuR3*M%9Qj-Au^gV8p~8a zBl>B^l-vEf>TJ4OUqSE{YRP`;FW@@zXgyW#W<6c4)S-nCDGR}z@sG=uq9KNOWBtpE znGf6LY-}@z*TlXWQIUq>BY8J?<J2Tgeu<mwEon7PdOCSkv`~6|x&3;5cXvy@>;a^I zM!Q`5qo1OEeUsGOJWHBQUA>EdUw)MoT<spb`vyX%x9!ItPcMJ`cnW8~A3vwVo^Ag< zynp@0>-EUsUDi$N55GPTtsUs((nP;eV5it*%f}AoG*9O344=oVqZQ94P#U0i<{q!v z3obJfZp-0qe%BHJ06+jqL_t(Rr{wq=j({e}oI!K}II>&OAiX4|*!{Wbg$%iHzFsZ< zB8GPC>z3pTnEo|T6?lb!ng8E?xigJhS|GwJIy?&;82i3wA|OM_Z)tX9OsP!7V5*IG z`G`+Pj!4NPf-Z2(G$aLsEutnm76DDrGybL!X0CfQ4;}chT)L%`6eC5IxtP=5^59xu z?)*@&QN^4bFq}4WPOqYtsqheJw+ZpAsEwi1$qXAWmO}c}6W%UEh*u@0)@Iu)zMdK; zNf_Omw}*zfsLA56n^nsvS1v!xy)|`GR9ek__f?m(y3peyJ}Y&8(g71+rN<uA4C$V) z?p@WxLLZ#LSi-pZ_`*xdb=?^b6ys;qsN=lnT+xK5$$17KAp+riziTiaeE@vwuMd4K zjQ=bnD)-74N+9@}m+1Y2U8~$@E^E9%(9ik6+zwFZJaVH^(R`WPu)&8SFj*P5sLY~4 z5^|e$X;&vFgJzVlp4nh>f3x$Nw)f{fCD=c`?4RF0oc5w`yQ`1e-P`H#+uwfw>tFwB zZbMq~=+~nTe(YH;=?F-E&Rh}xK0Y7CqUU}43j84T<MaNXet$f^HP?+GZzf0e?cv0_ ze*fbe)>01H7wNnmKkoOZ+b=f2d`e!;aM69ya{qdK{PqJu?4rz~Io>y0kR@$eL5Bb7 zMCf?;SWxyMS77}ll-b!mk0SiRC8NC<-ty&eKFT}(jy>8kGTi9IqzWwxwz1KTMMmOh z)guw27e~}C)?;aGz3Uy3UCw<{6%gPdc_0N-d|*?)g5KFM7#l~ax_*2T$Bl75n<vEb zIP%Iq`|2rs9wjMnG+yOFxPVdJG_NG0>7x8g2|U-#R8M#PHoR(D^pcPm$Q#aqM2VOv z&!_jwcxw>YJbI|k8tN8*=yq*0HY^&YGHo=cFGf)z;8G#BmBsNCxgKm*vSL*cummV7 zh^1hgzGa4L!igWuoAyN-aQb}M-C?@srubB%D=xYaL``!nGgKZA+L%d{qw|ADVqj5& z%R&oe*!%Q#m2eHJx!kOBpS2qL*QXLUIdp+1!p_`Lh@B|GIQPmIB=ud81QV5i0*P@1 zvJwaM4;2fVI;bI?#2E6FQLhP6w`<>zp6>4EJe?5g6oj;G_Q9x6Me5$bNbHI}KO1kt z^Hy|wdOkdUdy<JVHBf*1$G;lZHu-e1d3t%Z3;pf=^N*+JRPSb9zQW@kKA7(F;p2e| zd)|Ec@?fXFUjh<ug-s!uV|LQRPxi4kgHwZ1oM3zR_g^kH&v%cHzx>@VfB*OY+8~bJ zA1|Fg+ful{{q=9Z{q~LIa7nlz8$;x~FBf+k3-2GM?r0cNnnd{QN2SFCz8`OWatbZs zw7DwTMe;D*XNV&$vuVO#^362V!AY@2u<srxIb)Fhp~(ZFxjN^}e5xl1S%ENZd4Jo= zsf-cw9ub$;+5j<U&686w$b}^^y|YUXd2S;Fx(2agFp>HV1nQ+-vw!&<B&106VFd&L zU9_c!c72ClNdymXM`Z^R3uvYk`RArfoX=5zIG|1YCfwUcGYL1;Bwu6y#pZc*d~<_` z!JUj15A+2SC2q3(_ji0olxkR8%NcBw?A%~PXSwm)zxv2CDuh~7E$Xy>=&MpSs0a#Q z-d^<qy2pCz!AP#pK<H-nSKw00t9Z&Mz7Zm-FdNS@CICdLAmASt%yZSPCNZ>?=ztH@ zX;|Z&Y+VD>x0D8c^)i=+o@z2c%KF@+rzpwVGQoVdYlU(dp_;D2{Cp1sybC1B`~>BW z6V<7vIEBSJDjTd`x)kQaeGaeuQ`qDJ4SX=k*}CKB>)Y|i)62UzarzzF&xhBeBLN)Y z&Hddk-yi?>@+Kerc;eVUF7C$n>w;1|oi1MA_CNl~GV<luSN$FD9v&XwY{2?_GnHkv z5FQtPP~&)fd^sH)quKuYmzy8o9-(``-@YCR%c)nxp*B;>61|}4Hv{75C*!bwb8_?f z#Q~GMuMmE>=ihYK?Wa+-%aBqc3fpFLOky?tp8Dgo!7A#ir1yEfpxltEXo>rylZMT^ z*fL*nSfX3VpLiIrW}#t3!JnpGY>yI*5|WdwL8uW0JCzQ|3^be5AxVOq<FBS|N;@H; z$7It)qunWuRtP$|{tLwruT|z6+-TS&x=N7~UfLq1h-Diy?~{~GXYhmR4Ao70n+@tB zn$qn79?UjNT>E_tX;zW6^LN}+Q#it$`Z0>%`aIo#{Svep#y7QYAL7<BlGXT=eAYmT ztzrfH;;`fdGfmiztH~rV6O!p9S-_TPGNdT4(5JG{gPCsXbbBN7wlGT@OkOXR=mWv< zt{O2KE14(2THdDS%Ra0nL~}0l)GT8CP55=M&T@^@Zw9IR>9d`~zOo;kE36IPr3N84 z)&keM!Ek+NsdIS>B}CU^uIda>-`xAe<%P*=r3-~V7cJ1257jD1<0N&Q9txqCy@N*o z#Ug+R+`tdfy?F^PwrBWrvJ#l!q4E5Be13d;`u6>A|JDEB{K7Kfe|>uT<(FTszHER0 z_Wh4%vr;Dk_xt1P{{6zL&Ld9G+g@zMd3=4L1Z{o1xO|@E^}o5i{`S;31%^B;+68$Y zPsqK#d!RRuFE+T5wL{|9Ab$J)>@A*L`fhV=_RF^3KOUd`PP<oGzF2L%y10GtLp8Yo zMr(^=+vL5s75N?7JMAV!@4S0q|I*pUkh$`L<Mb7Gx{}U{Aq)-GYpS^c#K@Jae4q79 z0`m`Q8IO0T2xpB~+CwHsF!O`4*0rLmxftSTbMcJ>dGdLA3I^NF?Gx6CsF#mg38irP z;b6AaywqbZBDNj^A1)VU6K9O8)c2zUn<Uz|)?<3#4fx`<p<|;Irzu;l>A*(ww5Fqa zF-tc8Y3_+zu*T^HhF-XP-&XBFiL@50OX>=Gyc?dl(BfM6$g!V?E+GMecX#s}4j&&+ zPfwy0Y;guRNA$im3vG%@+ds=uv2@uZRFSdBmz$_O1@;NT)qnnX|G_tY0cZ2CAdj*6 z)UlRUa<RZgeSIyBapmorr6eR!!hVW1$8-EOkS~#$9~5R8VLb1JQ4>OqPaFhk1-U^J zrO+*6z<{4I7?^mmzD9sezveI}+Zoh{RbzEhkdT=zqw24x&_E?r$%Y<r0pNoPRH%*v zCY`#^kMI@QuMUd00|b|_pETgn84;jPerHus=d0`kG{tme%>=!FF@pX6`1JB$|N6)8 z-=BZ~@%s33`0;G}?1$+of4#oN;P=Ull>0(C7rFDkL%zUx)u_pQ4qa?=?9y*`HG51u zu}pep#OO$uI{1Y9Vucy<W`M;FT(xhv7l~~4v!TMzZG8LV$B)OCZ{HvHc0pr!J8wR2 z?;jk<rl$_YdM^S|b3TN_Gl?|jhuXR{Q!<Q%a&z_R{r+Iqo3g8KE`|KYfy>{trTOA# zubxZJW8UMC%Ls|TgWv0Cnww<qP&W%{(Tn?`_Bd<{w-Evs^lD+iu+@nk=P{1G-*K{O z=xInCybNYh4}D<*&9vE5Ank3&d@X~YEU2n!2+n${BSN=zSpg5msrR~UT0w@U?>K^x zM>x(>{G{%jj6=o8m)AFix}y>)`OVGC;iVay?NzT|n)zfow^Zfj`GsoD!W#qY)V@>i zRti)W<l@UQ8-ZiWINIi>yrVJNg^3I}j0WZw=_f>V%?zQVp+ao&LuB_4y(iGUX$`Cb zxo4^PT&%01%RGQLKumY(x<_ix1dX^|ZA|j0&fGBR%(^h;t528e#524MabMS?b^qrl z*8JH-D**WckYT0VHGTQ$VwUQxayRMSSh&xc%=p2lOXU#OX;ST4<?EiZuF}%24F@lo z6zkQIo=7`w(&5V5lR?yp+`z-$m~5U;_byp$F^8ugnEA#KzkPptdOiNbKmNvM*lH72 z*V}Kb^mDU2T?rGWNMEGYekKF&+Q5<O4<^kc<lrz>;F(z%n-ZSv!SohyN|Li3i7bzc zb{H3a1qNJd)rtgq!w78^dEfS2P&1KK$B$VSSIqrf*|YU|dOf}EGxYo2*ZT)2fIiwa zbJf;#vc0|(Z`sKHLNc96ix_OLDJ^-?d3cr_c|e)6G14$RmyOq$DT=ce*+-bQtX76Y zA#CJON0>l5yeTxTF{MN<;-4!S@&0xT`(-fQ%|J;-nMX7BqU~gL5El~F1Qx51P2N-u z{L#aekHejJNc7%{&`J&OJnxR`Z3K=zk-Jfy8no-@B<;HQNfs!j^MmB!-ud*qd&e*> z(dmMWGLRvh9-5_>5lm9R{?lQF4t1*-KmyndX>J<I!GuY*w;ahepHJQ4*iu)YE9qRO zCnEwA=ioCYoTFisezG(?+m?Y8x0)4A>a5>N@}3&=8D6sPegC~eX;s0*w3};0!vx`M zDQ(341|fu)bhD|MpO`4F(HO7?bJ2+jY+1MhpY)MJvQ*#G=rQ17MetQgHlhFq5Tw=> zs#@Cxp|1<n+4w_qUG%AEWeI1W(pQL1Zk)$HrwdsGnD}7ir*s@8yT~i3!!&RM5V_E| zzy9&Z-~RaVY}N1dRQ`AQPu~Pxlbd3spJQ(t*VOUV#fy<L<2Uu^Sa-jH(|E)8u;eAs zng;qg1qs1C6SAK7Z`%uRHlO~dg@zN=Vh}b}(Qc;MK}oEv+o?y>*nAfsR1V`H7#Usp z?T;ec_t*Uwi(Bs}zh!WjFzl-#z?=IkTlf;OH_W`fd*xclV6q@XrgmZwtL#viPS%Ye z#-&EUIX`r(e!Q(_4@Ud?%6JEjc4<PIoYLR^=8<Rq%<JQ%sTpqk^+pc;wuLLj7pU8( z)sC8c02{4sqiC@W&Wt=HQh^3L<KWwWrE1!k%WHr5=vbRO<e~wFA(xS!kEW`iB?Nf5 zhT3MtZ4N0`=3=B;e2rP_-U$71vf&ak@+7W|Fj*btY<o;$tMH6|T@TFlA&;p?NYN=X z7fP4)qKiRKtbrk-$3pUU*pUVF_N=&=ifFQ!raAQBmhX2#F(}3!hrKky>LQ$oN)4qd zKxjFJLaw3glq?K*<0#kV%0**Jg3)AMnItP4Kct$%^>l&txh{_u$$u88IgkPsA6w#U z>_g)h0^qpRUpMNk9#@Hb^slz97UBpjrcPb(0*oPD5~7m)cn<vKm68CZNK?fuW}<Q& zI9c4lke8?ZU;ptp>9JX>-+sJ29jNBj_vhCRjTk%e1nuNAed-{IQD&)O>0}a+b06tV zsx!_islu8@_Fl4nzBSc`IZttM)xIU;84uV0w6=&b77ZU^xr`5%c8qfce&5j^FQODl zv5BYg>3{q>@&hv=mF^f4n)Uf|zcWKElSODRjgtMFe&0ysoMbl$bUMQCDz+SAgFwtl zuwYtlC~i1B;OkPU;zq}1GARmJPBItXGMEv>_#5jeGdHQZSpj||u}<UxTs4gV%rCRb z993258m(J3RjAs)Btk}Z+&8?+TxUhSktdLy*ULzh$wQE^^M;q+=k_uyn1o(<sa+Sn zVCB&zG`bm;4r==s=H1$jpd`m!D+{0fA)IZox2daQn5bx$-nt%Dg$ch=`!v@OI)78x z@8=XUE9|P*ae{6}5psGkssXgq^EKxid^{Q6YG>njdp4SvN_X=UEVpJDq@Hp7x&-F1 zAo@6n#Hw*4G!Gfmt1r>7X(}b<Bfj+$81U5!;)5bwOr;pftycQ#ZX|)x{z0z#i>dXc ztFBd1eOHqc{tPl{#o)YvD27sX@JPgy2<Ysm-%-BcMNX*!=~G7IewLDM;cjB%;^y6Y za5m(%9BHCrBPnVK!S0=dzt}&UTlsi<JqfXPLjBW^NAE)LeyW<lkFsp9&HmCrh-F%{ zBXW>o`DHBG;vmfgbzMBlvw16u-G4`)a!A8bPaA8*coOK7J4v;=@<Eh<Dw!(eGsp|i zuEZGYI?UU2y)r~h!uIX?39mrolph`*q?gaO?R$Uq#+xur4B4U6AOTbX#Mo1UNik3@ zu3z^;+w=*Rv-(~NSE|cErnn(ov{waTB$-nj(ctisaAdpFq!W!1Knqd6v<TBW?$fSY z3ZOIjc>sBQE{|jyw`}@30$9<qi6UmSIMui@%eT1}onnYuJQr;JpC8Fen_HGR7mhJ} z&`$aje6s+~tigN3pk`xc4#`#*gB~s^RWxpY^GiiGb6?>$SSixvy(^C$Y=z&I_ohgC zhfi@{+jq-*Bjwrf$IgLjB6wmc63(jIivuWdITIzP1`Nu+c4UBsfr56dqY6OdrwMU< zT)D2P5IVt%T=uD{lP-3T;Y=}D3I#FZQ8Si<2%he#)=Z-VYZStV=l*6fWhGP79oGHx zmH2;7MAZs@+#B;Nu}#7Y0qOt^QB#jg*w9-~R|WU#yAQ-PR1ygTTq}S;7$8y<VYcsC zLei6~bO=ncX(7kB-#mn}X8Kxq#8!tMy|nFf|17(^`sLUE_UZNFAAWzd3}gAH1CiuS z?lTvM_h#mE(2!}>FRfhaq5wX!A77iCRHcB)+()_Wcxj*TmOM-uIkzKoi^gRniyJ0& zXywGm%e_@wq?j)?rAzy8KYCFLn^|9WT+UqXjhSO0rC+<Z!`JtZ-S$RW|NHmv#=5`U z`SIF&J2{F}r}wwZ!{*68o+fa(wAaJi&26unB4(!J-7scH&}9V@V)ko_vU(&KCnLCf z+;5t(kp{(UAiu<+SP3u1F(AleCSZ|_;zl6-Ay)D-aaPRxxZO1GMeDI7+oM$N%FNCI zq<AuvCF^=Ynq)zyQ7%lZ?7XAbM34nGaXquRK^vc;$E=*ea-sP}&d&}v#$g(nU$u*6 z^dx4o9)?`{Ge>qEP?DqM)l-e8#Al0#OreuG*5-0O1XfT<b}q7pq)t$&FZWAzJ#sUl z$|HIh6$)|6E6~=LRo`Qbf&c{dEiO*zDHF@?mbx#v%u*X<*YV6B`0A=!9P5!p?%b+? zaPBfA80cwYDQD>9cgN;Abp$9}<x3=bTGEXlTzXqAHSuKtWM4VF)yAjdL3Mc1*nw3n zt1hAP)Mucknj4^$4A#m<Mfjg=HTPWPm5zGepz(No-P3^W@%rS|NLt?YyKA3&Q~ZaI ze!E3G5mnUsW%uRRjg^%<uMWF%&=zx%DtR&mjJ0IdC<?mLjTtNOnv@McU=lO9OTyB} ztOs+lo&iEr)U&NoNq(jDAU@=3Xs{vZ=f@k=!LXgOb#(3u26klxmyW02(aY|S*Y6v< z%sbK|LtdL|%$a((pdjXTYF|%g*PdSAzTEA4HE^QMr<8g2p2jxZT_3M3he%m5vNU2+ zS!9u-m8CXnnME_-3+afxY>ln7I-#&t*l9>XiK&!~Y^8n<a*dP4ghXTRwV5NNA;`nF z89l!|8*1|fSwQ=)iXs$)!MGaD<k^}!EN=TZilK7-+M8fS_`-`gI+tXsS0^;Kp~^Cp z77uz8l~&w<-v*)wf)6&*H8bK^h^sT_WaC#u(3^{`S7KA(2Iq2uG6~}9iYe^_(KPb> zn{g*(2_jvc4I7pqTEV6UQ9M6)gb-CCASF*@<J`J<pX?LB9FeD^!>RYoC*u~!d1rHM zSH><Knl+xi8A!A3=Ia}74PeZJg|z|ePP|J2Y6ci03cp{^_)eZlMa=;Iq;2jSCkyMU zz$Q{#ZK7^N+emj1Fpg>~nd>~Olp}4VFzUF-I)9GI_TEF4alt1RqrL28UbiVfr!?>y z6&K}%R613+O*FY-7ffM9YE9+z;#?Hx>U3WNk{vQrii=nKq0H7D^Mx<=99u8Fv&ZbP zvjA{BJs+NV-UK(wA0I?(G?(<joLUxfdP`dBMZ4KZbF7>q@zcUPOKzCswPp_V8Al)9 zt)}K|*#D>pK>-I=uhKvcGcIlL5OoE!85YvwF3k)-IdML)ACTzPIkc_$%*XvvFyfbu za$kP?{o!`^i}!ASJ^lJ{-#NZA54K_K+Hw$y8Xa?Q>F!Kz8YP+(x0geSUnD<V?jL^r zV)S5J0>fbM;ey4+_`C|gm|=~zkn{OiPCA<XjONcn`Td23Eh|^Vgg-?2{P`i8XYox< zWdHg5;%&Cczm(IoFhh;`-NH0xQkc<6yR0oib6uxfvGMj6Jw@z7zAIor*h`{K9soYJ zWXyu1*PU+mE!C<|ulz6qRHa7F9^nknb$fT)4wiBp$wJF6KuKtP26y}vfNmt_{?h|i z03ydyIi;|X#*1txDEf*)n!+O~`a1C_GQk^>0X3vI;o`dbFaPd;#n;@r@)W%6F{Nl+ zV4-p6y}qfx6138Rn&r%;g(<v*X!06Ct2(9!`7pac<{b9)lnf+5lmJ&Jel#@?Ik+(( z<gwO5PMH-X^%cPcbsiwL{bh!%&L<rhrzhc{U!qM>22Mcbb-wWU_Si#IGnz**8UGBN zkXmY#o@~79=fYls4!avOSSz(PkvV?69B*WVdpoo{F7MD+p4Oz%kJppk$KQYaZcjr2 zszurt<DAbc(aVy9sR`B7MVSv5qicx9xdM7(Nv}BcCX1j!EmTe%VU!ZJ79?5CQ8W2) zGd@*6K^n6<Al>wg$+<X8T}VhfmCp_usem=K&rL8_K?g%|gu=)sOmxG6?m&yj7TyfP zm4r4;k|Ef$WM;cg$KBes+aXofwDoJFQsVcw`3Y@7_SODOY&#tsuRnc!dAN5X(RM|s zilhjf`Lf)llJxMz$K6L^0|DphdrM<%KzAxTxu1xdn?b8P2OHRu0}?iwCTQM78q=<9 zFQ%H8{z%1THW>_4wJ%a+;xQZeq-NR>9M<Q`6M25L0F`V?<w$jBzS^95XEyCLBN~g| z>c$Ohce;RtbVp2dR9iMf6->xk%tt7#9Sg%})a)_45ro%A-?l=_gTO>abi1?8+{6-v zm<Yk4L5eiUn%%LFQqjz|5R`oB0DM)#Ar09ZJx4xKk^-FDYKWD!o^d18ks$^`bb)CS zyp1L$;&_2gBMD+?U;Z#%Q8VU1=~5QKXeD^Sn(LEXHBmDq6YS4<Y|v(Ox`xeoFS(<O zR0q>=juK_|+(Cf@IZ40xyxyM~*12$>goU|p*=U&5Y<$XCe|bSJA<UPftsyFu0m&$U zE|8Zi=YgD?d9-=q+cRaB7*UPwp_dDOKJDLry#Dp~AHRS5VIRdle`~Gt(~50arad!f z*e<}eIkqGMB3MccRR}AGV_?FH=+NK;6O_tf$G}PwT}AgbNGi6#k1o@<c&csa%Z1z6 zgWAN@zu|~_8MH35S=!4mf@ew3AFd*Io{HdBRs+5Lq1}<$safU2+6;qNj`9BT>sK$n zux5I&1?zCw{di?+pgKT-^WJTL%W2z0d4Ko)`{SqMG?(7#NjI61_j$0orkD!_;oyzx z?HZY*4HQJ$*eJ{(*?R;^Un#)xaCdtTySY!Y<J+Y^=}-Qynbl@xU|Z379G6`+j&5!@ z<~w7|fI&|0`?acrZ3#uW)4Rmm44m$vltS4)Rm96p3AGY2)M4oA!lw!@l|!HzKUSR{ z`sW4cCMV4tc|<){dZL7c^(d)C>C$k5)n{{*n&lHBu`omOrW7m#pv2FD&Nv~WqObV^ zq8E}D0(u@ZhE%&&+sj6$!puI^(FjCk?`c5B;$Br1=spZ2=v1mO!t?M$1~GFi8yre6 z{`Csd+=v|5ly%9^tfRC^5S~r7G+axIL<<gftclj-ic9y(FZmHF9<%yCo6qY&K^MA) zmG01k5*IdO)2K)K4N0KH98s5^nXczVz|o_2gw#+0L>&UchnmPig$)u8=<F|le0#Pp zvAv3P&dR~#-uMs13*+0T{oj87{<q(3{e6wwwltVVelv}%SFbOdnLHLA<Kz+fI2NUk z3bNcTYUs1bn`#%!(WICkp*~|u>NoT#ff06Vgmdh+Hd!q%TN7}7a?z1F{;e93$@#YB zD4T(Kf=WfRC-u@FUY0-cv$|O>B{CQD{`BdG_C72E#Zm-$|G|v|4HwVcyKN>;9oV;& z<ut)VMluFkU_$FJU+-_9e*F5c{_^Gh^6s9EFf<n9p|E+)TB)dh0BM=T;5Y3Rsg=(% z(!7FPk&INBMMxx!bu{jz5HK7=wRp*H-Df{}?UFT!sjx2cZ7x)Z{^(c~_T|Cz10po~ z({mi|&%gu(1YH4}1kyAJ%<~e*FhOj+6L2xaH9FVBjkUMNL|j(}L*Bi|Q^<`!qrH@N zAv|!hSml(M&%*aHAfc!<8*EP1CFxui*B-U4klUWPQ;atc*-t<b&eyMBi#cQs3iq!Y zEKk5DRU<i;;WiYxVfZyCSM(5=I%*FVHOzFKyBt)AlhpF}j8;a$X~^y7J+H8g{WsNA zZpvD7{YD`j@W(wS)5JKAo1V{^8?G@eWu+Yz<~VvV9EX^yL>{N4d6X3(gMy}i@}kAM zDAF^9J}bHtKX5344YIDN?S&(FKYoAt?H_;t{U5$ReYe+e)~;+lVs~q5ksoz9?)k|! z#z$KmjHc+Ovu?&<H#;jfW?E(Hxl7*44{gk_qydxt&%@+s7^T!_ZfLyMOd4hc5Rc_^ zg;Y8uv&#4k!et-C5U0{0R%L~TYMy2E6RaokxGpKL##ueXO_!Na*)m^2&l&{AU%8q< zMWEOt?m6~gHm0EmRvs_D@AnQhL55t$Q3`szoroi)YJnPitZ>@C>nFMF9{bDR*^&L# zNhhz)v1Ov^V#AOzyp)>&8vFFKJxr<B!6QJrWcx5|ns$~{bE2sM+N`CjPm2a^t75j0 zqz8C|dw?*Bxi6?B#ktf6)0hJ7X~n$ojZLKS-kbH{*Y2{zQLYRHT?;WV-2|zuG2aRw zkf5ZvCUdC+GT~Sv(u7f|>BT)%$$(;aRmOp@3nm;r)gzKnuUVoSS3JNHldqn+na*c! z%uy^yXw!+N0L&(+5Mt%?HXYCU?GT%~Fv{^wIc|JSg@!s1d6>obR@S`46cr<b%o6J< z#R?}S#)tO7sRlvR`kytXJGjsm{24oYW_0f@P|ia0#WP(BgTX${m<#iwdCC<)1H)A} z=7c?WFeP|0ZpE>wdMg-d1$k~_IuGMKjVIX9f3&tFljh2D;*AdF#QV$FA8&vB?eTBF z{jl4&lknW9jfq}b<Oc@J!a9YD1jq55)04EdT3VXT!i}dlyNf$Hu#t~c$o{z4f=|U% zQ+ny%usX}b4-qsY!{jSlE8=D*H#M@h4BG%mDmAPtYca9mKl<7^p+-dXEV+5opYBGb z#*qf7gk&BMSVFC4|EEN8)?>I7-%>TUlgAfd#ya{%xpR=JN$`DbUr9sf)1B>-5@i!s z9YT-@-kOlTbP&Vld}y~A%u*w%*JiQvUglO-A`AdWZ8%{8HXm`Zd3=1vD}x=qxCzB| z<?La|D#La#Ps*Cak*?kW5Ti#|HCkqXGoH0SX{=21NjmfG7IRl+Q0ST!PkQJ*Z1K+| zR%u8BJs!OY%zc?NP?D>>7k>$*#)M5`mp9sy#tY8=Rk2q}^735#H?1hUV3(|c4@85v zBR~&uz2ix(`ynkq_9Z5l2$`xO)iL!M1vEs9ALB6zAiEe$HY~YWB^sY5h!57<Fr`hG zy;GIy>Ko`D4PP4ii?p2(x7CZd0t6EfQZ|l6y>TJFdSskqPb}H!Qb+KEh;nsSkL=Jl zB|}n=vOaLnC`wiHG#HdT@pTrT1~^Dle?(Qu1l|a6jo9F`+%S-Bm`wuB;<#d7zSMqt zZ=_G#827c|?B|uUHLtCmaj8;1l=Z8MW}y6RvdK%bqzTQ*4~7)t&2PCEf4tD7mvh_A zDCkRXEc7O>NMZ;LV3R&R%*dZUg(UnGa3zF`Z$DL5gV3F;;D}wbdP(lehSt)$hO061 z%!>M|k2nu<pQJNff^$3t3cCUKl(>o{p+)A+Z<-3S&8Xa(&0RV9FvFZn!e)3{6JN-B z-}fvgIeJ$zDo)x^xtn*-*&jW>SjV03WIyAi`QOHLP2tBmd(Lw9k=GPxze5l5;RT~@ z6VEBnfCq2rD`8Tb{1@=XXA^2FpM(=i2wZtzgp4LA@l+P>_?%AIm<nc?%oTCa?$1Jr zL+4Ai;z0xc(Xz$Rx#w<av3j8~u2dZtY7FjW&ol`(>#44-ndQgFSwO=*%yD_-F!}6= zbwmn`rr|K;2x7O!l5+1;=cPP#O0B7>cqJ#F-~LAX{awH7St(h=w|_BDQe|=``Hw|4 zMThG$&g@iIT^T=wbq`~C*O>vWfXw_MM1w{ja!;VAB<A1zV(7eahq8dHhsNS(1w*w? zeMvV+#E+fLi<}@rKOF4HKWM@Wz@Wi1YiuCZFj7h2Z~+Y(<l|z0H;kbSl=)~O(gUMK zuMw60)4}7*-e~steB9fX(qQ%K^=P74dVDA$lMG*PcDn~9Bs=2H&!P&|;1LY29J7V| zLi7F1punC>N@^i6X3IL6-(+++6o37pZG3jZg<YTE^nf^r1byP6+Tuj}I*1gMNv_-z zT`XIA@zd<96^+xd+dAWLxZPD#rzrDW9cOpk;jE_`@nWY-3n&|VAZ447;n;9a11e;d z$PORdug!)K>HXdA%kA~o?e43e{pcuO^F|vhoG_h8r(X&-go!^gEb>5^47Rupq<fk& z$h5g_#%~;3L(*y%3t}uhF}njqHA9P`wE$>8%$y=fW8#eZT{i5^F$_&8Maqby1&X-e zIukj~*_C0#%&|+VJfDB+Q*Rup&p$V@2pM?b^^fEY>Buqz;6zsgox&V9nh9g_wfTUg zHi9C_#^EMqW_#mo_4my?t6avTe#I}b4P#nqsOQ;T=aeolW9=GGEZ3<`^IfCfGj|fD z<6YduL2K(KoJ#Y%82VBs`058BmDy(oFrEf1+yQ-kWk{OnCd!8Cz)~(KcJh<eVTsOL zv#}1*d+}4*6gjrj!KJr1yMAz}AApR1Np9T$4lBK6kmNfPR6T1uM@sJ%M?mE{P2bg* zei(V4gdDLE+hu7#o_|m@FEDP6|7~_RHBz{Id@<>Ca7M;EV#OJz4E=F8xi5I~IrYn| z@-yx8)+c7<JR2$!p()DxD2;AGhaBR-sKR;3;IZb}38yood&0EV0ZPz9cpRzd&S`_J zCK}Fch}=+F^hS?loOhrtnhC8O<#~vumMfU>&TrIZ$fVFgHIJg*JT;V;!nH!iojW^W zs+q0wkVG#=`q2O{AC~rJBxOYxcelHL_2u5Q)Gzm5@M61>^hF-uqA}}=PsV;nE5Hov z8fXJ6>9Ks@kQmkyZEE9!U*_O<iL8{`3zm_FGdYtr7XANR-C37iN0O#z%rOCAl9|<m zevp=QqosQ-UFf$<-BrviCI<k48PM~7eu7=nCU{~G?&da|`LKNp^+b?9O`{0iQ-`{i zZED3G=S~!JcvtS@XUn;A4H8C?hT8c2m;UX$-{1ZT6K4Qai-DA+PSeJ)3)4IWZJI_l zDVtx_l`Preg*E|i1wwb0PWs-msDc1@!WJ)hOulF;xkOINlB#Pvmv6aBn+uiFlCNBw z1~`WjfQMc!9z8#}xorN{FMHC=y^bAM>b&M8+;a1J#v<K>TpVzMmuJ3M0R}YXGY(ev zgDgYsb`>)U7FCMlMP@1hVL+b06)ciUyb~~tkz$1bri}i>f=VYVBM9L`FjLo9;3(DG zAJ_v3ZJczz038bnz8xN5+ivVFI-`{Q3-)BS-@e>j-=InNfMGz@e2@K&|M=y10|8zV zc>DJL-+%kvu*q-tZ-w>Gf`@d-_F^Sh22$$&HR#k>1s}mD1e90My?`uCgz^TGQhF~4 zVLr`4e%!<g2mN()*160`FVbgPn{0MDV@oacp>qcrf3pIrFxkA6<$>mB3Z8-nFOllF zB%vHeW2w5W1sRu1h)Nb%S&o1<;2>D_nzM|2WKp4P$~eC=l&Rr>T#$}#@2_{B{>_^T z8aZ^>e7k$`;>TC7|MtVHzy9$0$Cr23Aw0ipdvLpC3Bi_O_$OkTKce>|`wZcPmYf;6 z177-!ZxG40CvOCL<Q%4$lGlw}{V0hoeh&|s;_dCNN~@QVFj0q+lwLf>N!X%A#8Vsf z>S_#UfY-U4!_1|j^3%r;tX&i#Bc)<ZBCLX05@=93%V5CtxosPC;Q2vWTgb;y4KkK= zATd+(jS69PgU67M*NLgLUoO_H9Qadet*KwFT;c@NWHeT^heksiJvE*%XO1=Qo`~IO zgxx^nXKTmeW)`aiL7v=hUJVbT`>^1DMClC5frBT0;%O8|Y>r<zd){PUyLBiAv-Dxz zVaTe*2=FPdFRurFoIUdJtIWV(WV8J~in?x73nY<0HifX#D}SoEgAaMPr*g2b9}Rw* zV*B{<#pCwBG#v8v-RBR#zkl-O_g{Yg_079azrML=z8^k+ln`RSU`?yvfBE#}Q=4&N zGaQklm8SHm6c&H?-YLYgm!#7a&Qm?!N4+l2x*(ZHQ&v?!1WVrj!>r&b{ru_mvum4I zhx5F$P>)_j)ztEBerM8bko>SJgPTXMWb)sC@mwvI>6dms#1L(T1!p{D_`4XBAVV#g zbf8UiYs@6aCTw14Bpt-k1PJm{(0g_F@~0nvw7%;4MiRyUJbU)Tm35Z4celoV3>AE^ zM}P^1>-JBIDFS9KkvUGGB~glyyoD37XbRtS08)xRTH;FRL28lO6Dx`PJ*ZY<2Ie>N zXUv|a142uSE;@<pd+OW?qL{0b@(P*S#$smRPp_|RaNBg(^s2FF^_;7?x{6<dJOo1K z@v}aC&`SuVSAD*)+>SC<<(&J=lcs>~TMc@g(TLU7l0ixpZ|6Q6=w>jGW*uz3FEu=T z$4FfbxupCMXpBq1#v4P0{0*kZZaqu<nU1!kB6TciQ7b4+_$7hvO<|XmR~ioH>$4xB z3KEo-gTZyjh@a9s%iCAiUC25eha;N5hmpFc`Bn8ZG*eWfHAuBx)6-FfsV2?H7}Pp# zDNUSJGr3j&`kMhJ$*=8wxFjEC_V<rB@BaR8zuf=!*7(tfw;z80r)Bnyz`Wo40NXh= z_0_eAtke}_N<FgG%rw7Bx0+C7i)`Gu4l8eOimK>qP*Ipg<dUT{4&gDP=~Fnelm&%W zFMa#4QAA$y>-XE6J8tEZnNF;_{A8DD{2);Kpv1Q*E;zyh%jn3ucD2%@eh)Wt?AQxs zom`<b{(2E1F93jt@jQc1$`p{YQQHVe<2MMaJ|}eTlc`s)|02%HjxB;QIdOIU>c!K$ z7a#d5{E{u3D&`C<K`?mZgC=-E>6sHD=>%gS-DsvKmSh{v?s{8;SJ_4-A<-jE=USX> zkW0Xce1Lbj9QOIL2xq`t(X5Nzo_TY3G<S|ANPS)<c^&s_Qp_=xtA=$U`H5=a%HbP1 zR3`r`L2Ae1!ZYDwBe5fie_wYU;|{mu*wDv;>{vyqX!-wCm237i&y7m!G5E)fL@gsx zcoDfoLL3x;ocT5iSNnMr{ob4)<PP4kmc1c}yR>Jpn)^s;1SZjPa!0Sw8|0o>n1AUm zW**k8Z2HGHL}6@8Z@S!Q@F`YcnrWT#ejSP>*T#9$9qCjGxdR|ir<srV8<zlT#X~fZ z-#Pz}IH<3RfG4fw+8Cn^hu^-lm*TfS?%&_rhwaUqUw`@S{`Y$moA+-%+`s$y=G}W# zDvMO^(4-s&n~Ci=r=E)r&*_vtijk*b#j&UPaiJ0(6yaeT{jAW`vXbLGdZ5Y$0Oros z3%2VMP2?q4y+l1ykUJQTP!dILH=dS_xJ*4kF#1KU6ePLMyhze@j`DJ(0SEc<TV?pB z`pRUe&hu$P9um@~DKP$5j3AT=f&iQqg@Fh1DKi$lGq&fr{pWRZi`y}yMN8H^Se=xf zAE_ZiXs6`rCfP*^f8n?Q3<n(b)VgS1C2t0Tr>a|3J#Xc1dJO2e&<|jY^ALJ&M#v7A zHNCrT_<J~+R+U2c2D}EPpl}JP+Ool7QzyD^43+d}s5N(BlAd#gfpQRu;oI`qHZaop zt6!r^;X1XXtEXZiI*Y+9*1aQ<^H0XHavxtc3R|VqsARXOu0)PBQwITXzjzC`ySrEJ zr+J<^I7)QuZzPY_J9OxNspEocDSDjjj><@+!Q~DzTEqmzi39Y}9C_*OL)*5+g1-C> zvkK6uqISF`+JJE4pUC9@>Lj$ZKc4n<>^r}B>O?K@Pd*PI$RdJhQH{D#wQD3;{>>K{ zNnx~q|JPrC`~43Sj=#UV|3h%~3e1O3AKtw;+xV_m^DJ6y;_5x$IqhyiBD&aVF0o|e zU@2e;NG)H8(J3@J8F^YSDb<Plxg2S(Dgkh_5u5X+V`MkqmZ`DW_K9jcr@<08%2Uj< zwYEr}Oy;5lJ7SKFQ2BplGdkt+;haiYnITGg`4GlWv%@2nWUQOFV?OdG<`c-wAjonu zl$ASVUxc~ZS~X8u&R6IyE>Q*khf4IO9WIwunNrvHAx7`<Ht)iu!?GUP^G}8fEhN^{ z>Op!^!{f>Hq;KsoZ*{fLWRN1aQwC9Z4hxNHIgTXLl=x3|N?X{^oShT*9d0sa#oT9^ zaM$3dL1>b4PPT~Rmeg7(Q7?;<1F*(gXs&NnQK?6*D{FS&<h7xh&uvx9Kp0y-+!{sc z)!1xUi)|Nu{aN*BBrOX`*_3w=%=t@k=Jg>OEiP^M`{D&fbcwg>8I5vo+ym{g_k^FB z6@c`CYB<)vZOmogfTj6`h2p+DiW&TK4iyv=H8aKQT3fed<`uIX8bF?3>^OCCkV`w4 z?l^%E{<E@9V(AW;c{WPGNjaf+wo{7BQF!XA;RHPz0#IcZl4vtlNLH4H`iNGrjj&Mx z8#{gea{v4LU;gpWfBV0GHtb}C-YWq{#XsJcy@{#sAAf##|4E7_1X^_r!Aq>b$=>IQ z+1^uT8o<IuGa4x>6sMx&m=tBH)v$3hUUcgJk)US5*v+vH9ZE)qj&h9ReG3DA{l{&e z{7~JKbql4M4oDkaQ}m-7Za9Wdz7wyk>F<#?VRx!iC56u5ioanD4)^FkHp!ugCCaFi zB}*5GAWyuwx9mNVJFXtv!`nP#qaH9yElAQ@llKk#Kkpsh7fsq*uEG!K-GNoUTv|A` zU_cHQC<Hcw9z`c#&g|{~+-TdfXhU!<-#|#+lQ@blB2z_m=gPYbt#SCM_)!)2T`Gx` zQ{L}66!4N)h4Y+;MWu%{Pc%D<y3wGLCprxHK-Hp7kUJ~{DE#tr2Ti=bwP(nlelB7s zMz(Jq#ZqgesLo!@YpS)Bh9(Gkp?4Z`0=Qo#ApjE#rRn!U1}zMgD>vo>Piw^$zN89S z3)uV+!)-X_v1ACZ0fIe_Qy&E67)8oN&<&G#4lSlg{-=>;i3}Sgn9b}bU01!jp+7RM z%~0JBkk1_WdPnT5-#RlGz@zYW5To|UX`rZhjZPjOU7prr$9w|x>k07@pG-9U_TisD z|MK7epPzsJ`QLr2<L$?f_Cn2xdJV7e_S9N9PE%||jki2liUvuj9;l&LgHG1jN`W4E zdpi@&=@~f;uLvFPs?@q$7>a)G+4-onavWN?rmlwU43ruN35KaJp{9!xW30n%nA^0f zL<uG}mvX5Qi-I$bLlGxM7i|P@k1G~mU=rIBQBfsdi<I(fkeZW%5!{tf9+gT~xKcdQ zbGGAxq&NUM9dNkAOEEHb<iy_M*F2XYg(S|Hd>iYFtx93xBS)xcM5K<Q8x5VTA?@H2 zV?u0tqKQ~Grun6vnHsm0lEEr3)l*3A2p9Eo^5Z|XgyinTpG(H!)sr*_X9{)NKS1Du zC*zMMH05C$nrmfBQBD`2*Cnt)PN&@&AGvVrL6}3?sNZ&mT)5#zj$o8!u+q~u`KrIE zrbTqzTl%8Whum-kk22_KqDjX~#|rJX>%-=-Z7ui8u7g=u5N=TsezM4r^r3~AN?F4; zvu!1$uAn_28L);q8Fi?PXaFH)L?_=UC5Lhu-CnL^&Pi;ijcLH9k6B_#Aookgs)cb` zFyQ{7uoP-y^pMr)4(5~fV6S_%>fl-($MhQnm;=}ws`J5~R1CxFqct?mNouQ)%zk)e z^NQd8`Q~5$@yoAo-^<|Ne)#n3AAj6@dTAspk4)?7mKRk`P1mlR5IhSA8VYB(TXF&< zR8j*C)mB<nIk(PlT4-@h)iJ7d>{3RLL={x^lpO*K)jn3*T#}o1Q6LXe;_2-y1DXRj zB?Eem2$c@GOeo#Y)EzkMGJsa0jQjXl0izn*7Fe0F4n#(j-Z<vy1}B=MXsDGl;kZJ; zDoKY8ouiYV%`6bAdAtX+p$|(N8E$aUC3em<>c!W+kr8?=uF($wBqK>%3FVZR25Fc> z*+_4hbh8%u4Mpmhr6_SYQZY(DAx6(Z;%Xc}itA5>;{3Uj-pt<6Vx^RVR1xZxX<(;< z{s;Hma@VCyC%+5Hf%^2>7OK`*ZB>uVClb8jDNoe5JOj(9a5Esi;rsc~W}$)seygl? z$E~{ac_h4TxkSD@%}24R=^Ohn*8x(x$vNGxEF23?_qCA*<=LI`ft)`kH!-8H0zS3~ z^sy<-0etfG|M;K(XA9M|DuKiCx=pQuDn$a+6liYA5#{}bHHO5mt->H_{T)~U>b5c# zd}@>>u*Y;R-mL=8`nSo$b*R7)$gre7TSo)e6bg6d#;M%61aMTwY(Tvmb{U9T@-*ra zFAT6Jozp%cTR{By?U%Pd|MJH#fBfJ7?ce_X_RYV&ee>(*4>kzLHRklevbj8JSwD;s z>tFI*FoNlEA9;vyMo=T7M`|v&EL+}7trkgh)!7)9x2!5R*b(z-K8dVujAbrWIqZlD zaL_=BcgcT=a%7%5d8l|8BuDHIG`7>r@<<J^-X_C5@_L7{lE%Qmr+MXcKJZjZEGf-= zi8Uz<y&BH41P+kbMcQ~t8mnLDr&w7Erg1wgg-S1Q)qhaenZzxpn=juhCmYp=KY*q> zNmOAEO%!E?-k!}MvAIzk;M~(Zw3y{27`0mTPm5F~>T)a>(}Fq#BXhKJsnr!xMg^=} z%2S|^hq?Lhd)v<5BhiO<wW2mHg_(cY&=M%0E};B2b`wiT)?%^ey+O?z#t39yJ!|aA zK3gS0Ijo7I!DM7}fdYi3!QzS8o(lGcedDHbtJ@dXZ-0MdJ;@p_=P|c$npizE5mzk` zt(w9aWbF+(n%qYMBM+w6cefg%T73sFvo~jB$yh@sy_g<#P|!l6Q>oui6`+zp;#fzI z*s*r@u8+U<Wa_+Se_UP3POOUWxx0QbtnipCNteTqi7MxVXsL9-(}{Yv-LI8#ZE8At zcBf{+ElKc#bAi30Nd*M<3m|QM<lE}^AAb4mAOHHxzy9k#e*XKv|MT<5-!V*#`TXUk z6ro_e@V;3EHcL4!z9$S|wB@x<Ffe4r((sP_*ntk3;s4PRwrmlE?o!wXZHr&<qM0MP zCh?Z7Pde&jS*+?snO<HXo;U$Kh~#boyXvb{<K0{gOdwC5**Q)iig7I-&TSk<ZG=N^ zl;vz1Hu<kJc|-zCJK3~f9288w7{$paW+yRmG|`XvJZtC%;rYA)Dxcbdj(NEQsCMlp zar3-UsXFLX``QM}%>@oj<AUgA-g)R6hDg~N0G1G+UIU>pd<3B&?#1QsP?5IKPt=lX zLRon1G2bauXx6QT3^spu$0TZK>S;f<vvhEjaal(?<x=a?C8i{W2mFT=+&tr*EzZ8s zuV7t&*!tc|>tV4}mthAivBG!Hm^a^+-egtjKMHKG(>4v1W^YiGv9`b?N0eXb1-ssM zC<pbYEjziy^i5p#kIb-C=MkIKh+W&fT}9rwAJ(1c+z}0uGW7%Bp`GYVJ2p_^eC{*M zFHbm0Wz(DJ?>K-1!1!nOX&No`fPq?btYj-3C!QjFEK{$Fe;%pzGPytRsMRq)mz&_@ zfpw(g>h>o_^Yq?M(T)E6)jPER{_{Wn+kgN0=YRX<@4x-wBU!DAw=yZGn_C#XroB{U zn<tlxh5-)Xj?_qbf+~-U@|?sP9fX{$g6#KTH12>e&%aT?BiJ@How--e+ITlRU6aZT zY-1I*HD{2wTNx#%sTckv$J&W!bf!i5M_Ox#V~n5LcF6d{NpZn}jG}C?u{H+ki1)r_ zfR)x;P0(UjL{47>tul9MGbbYd7uEz%-xupeigfw&r@q<w`NgwaDdP3@vl}mo_PHI4 zhM#_VX73M7O1l0xYDhCr79j1M*2Nhu@)?D-+%b1ZX>-dHsGG4h>AIi!g-thL+#L^7 z?u({1bw}Zk<2Icm#ZZPv8`C24ur~5=DIS~!jOD<i8M=737WeCByt8apQVHUgKxkbi zT-GFo@PmbOM-Wq<W~<LG;Kc{KX{mtM+_T2@=~|DajEP@d5QMAK91m>Dky6WXxvw!4 zM|-{n&)c3#<58=rhRbqnTV1Jccw^4)#GxhJ-4v6@t<F_BHS5c9aIy?wu)fw6qZ$L7 z@g5+GEiZ`9XUjg+;zq+ZWxnX{DXeaQNV++!Jsnd}bV>$%=coJw1e%dwx3uE@oA+Yu z-~aL3zy0>+AAh{F>7u!Ful?BLgpWH}9dRw@`N^QxAn*WpV7gxz_Uk`tjh0#!rf?Sm zvR%kWZWZEa3V+Ulv#`0FQF8I|ngQRXU%afOlf%1ov<NfqHVOcc8yj>zrU`s%y@Hyh zPequ6XBdI(Sy;4CmI_ZI%XX*bec8UpSS?#l>AQq*T^d?cKZ<d7*ZmpN_zVR_0=`SH zycpk1V0iQVi5{)qdPBj@>v9Fcv6tgoc;r(<@_}NMv~{(Iq@ooog@7~sX@YwWA*+7A z_Y-1F_^IVSUPpOT67W5>&PaT{LB<0}X3+#B`NtN+uN%1q07VQ;^*WXwEz*X*XD&5z zn#!(s)}I}h$5Uw&5H#3?4IQ^aDyi#884qe1St+g>8D<Uf7-rzF7@Pty)R3pAXS>#G zRTT%E6*$fL4eWxGVndI5Ji=W2>WlcXqO?x5J9Z0bSP#z!%@be>{Pm<tyD9cmVy+K) z2~K3ol<ShVEK#8}L++Xo!0A@rItA>QZKNx+ZTKBs82eU$H2^!Kn9MLeJae<*W*J>| zo$e~-J;zF*$Ml4(%v(Lb{_~HY|Lxa*{pI(6zWw<2)1wb<9&Yu#mqEQZDZMs5^!>?| z4EciHX)P4tUvxdEu5u7Hzo9m#9o=$xHN^R4(Yc7!J*im?3}@?x;$6`rbpJf~uj7nP zmBR#24*(D&@F>vAO-6XAvldJ97f}xPy>31+Qzk+ZVm+tCMvh7nk^#>GV4|(JHo+t_ z7mBPE&``%7n%vrI-ql9Vyz=m#mR~%qy_UTh+BSBN>;XhYjRyvbzW(%=S5M3l`Piqt z(QdM)I*aKAbr_5@lNljudI@c3Br?SKMSp328Z(a%pAI#d34=k<hN&QxlJ6Uws_PgE z;?{yFLo7yrtcT03X@$q{zvSW%aR4nD$&v!GKNDRzPR&MfKj#^pnq$zF$bI9y0W?Bv z04Xbrd;AkeSq1s69eM1z_pEQ;+Jo!mtCwc=GVj4r_#EKpX-I22?=oP(&7{@UZ|+D& zs1MP^I~IY!MPf#`T|{=p(zD8)g8BGV$xRIPFYDsO+MNI5M{8gWt96;w8Frb)c{D%A z`KNgc(QapzJ5HH?Ym|iY4!pbsJ%Gii;()R+JXPF2Rd?qU+Z}VT_n&|L<@dk;yPvne z-hV7zYh$yUM>bG}j{YNXM$5l`$Zj7Z`5JG8&N5({002M$Nkl<ZMH(46<cjvAn%X@y zdLC5vwC)K6#_rhV!8kbEqGkusdRc=Q989aeI+yaH;11N%OD%>{CH?P$8S1YwvlY?a zMZLV}U!Oaz)p^UPrUUG@iF-YQ5F=|eQ+)4NP$?kM?3Vivej-(l+O??pG9yk~YsNZM zO<5i8JG5t+d7)j%@j4FcqYj_a5Q|u3lh1Ciugqt%F}ksERKG2zqzXciW<*D)kbt#{ zApob`%4KnTYNp7;QM+3#CFt=Isx++i$b3hXvWIjaH9=x`2#2^scbhZ05kAxKjAsG5 zhdZ1A4rV}hxN|w;LKt2i*~V-$w@`2FyMbaZDS<vNrt*9=2BCFK@pul}dc9{K-<AAh zKClWOTAa89U-Jik=R@Xl|HxTi**0gJ%^?HWc(q&IXjY+=d7eWZ2hd=kH9cB;{zij- zPQEKq+SDXz#4&bHQ5rx{Gu1sscmKdgl{^RbP7dl3s`%DpI0Y~`)eQTNR5mm^&2ea+ z04kPBht8je7Ry*T;IBT`{?9kR|MK>aHy?aL_K#k57hiKGfEkr)zF~u+*@xhoya6u7 zKj7A2LM9Ub!XS3INcPIWwvr(n%f=Y@Ju3=gjb}+I&F}w;td&8Ag#XsB3`#C@Er&uZ zncG!EEwsWSTR~l!c>pl&v`?Jg%2dTzjlFV!688phX^8$El`5!le;n0@*NWPXtbOE% z0KzlmWJ^H3N*Hr1<p5D23$Y^!x@iMxNe!y?J9sRkAE@RLKYsgS`<@qX-ukwyCCrq% zeyYhNOtc%$>N8<2Nm&~jiR>@|{GbhC7fef8T1`*f57k*(I3$Po?@(Py8kO?S*Q{U# zc#p<iO-uQPB>t}n<;!3D<W*;ybmy2JXtmP7SfM?EZdI?z(I79E#F46)yK0eIleYXL z$-zKo5vv%#C;-UZ3LaB<h!_i~X-5OkN0n;YQ}?_Ppr9&;uJao%e1QZ!yU=|ow(}G{ z_5Y-|6`mM4NpU3Z;u^tC|Kd@+R$-Y1q*T;u5Ow|MGc>OmjS(@;EixW<!*b_`FHZl& z54(|+Db*in+G7H^6bPI7(M*M2&mErX2UKnOzd!x;Xrl4T&o^oD+uz>3`@@E<v^fD8 z-?vAmc5uUxIrP0JPAfLfl1T+2vMvfy7~Gw?B+eidtU~bk;<6|r-;{DAU=F_8F)Ve; zO0ehY_Q0F~AU(bjDo>PVobqLVME~byooOx4P-lD9a<2m2b|ho1xG9$6d0Ok12zi<~ zo>5dXLM$d}D~FWTDvYp+DTwRI)_u=5#0ECl%XPhHk`KeV0%<+jZ_n#xh?uxU87!Pm z&%k0Xk&FsZ(DmifTi;NB^UWU2FK-N18CdB{_8!kJ4kaqJporyrZodNBoH8t*s*74~ zMQTT?u_<OY_a7&fWGQaqgzlo8Sm5oGh#qYpDHiKdT5L1A5p4r{0z?%!W9E?#tldb9 z@ik@^9dY$2Z0(}aV~2CPN=xAc0l$pZfH?nUy{F_{>&S1Y&fx#HYiEtel%05INO>P9 zX$)OgWEdVeP<2_NJbMmuNDf1rifm9I9KPDv^@T5YVYV?>{72E#|MP$SU!dILifJ!c z=vKPjZYYGMTxl%-n9BEXUa&EVr_YUXqZJaZeA{QN>@?Ra(MoUQIBYimyv|fJT4;l4 z%osb`M|WL(?nHUOxu7(^Nx?KOhG5pktzv4Er86}eT&Ji-p`r>Bb+UxkFW-LtZ~y*} zpMU$u&%gdgiOf@*9<QT7$=g`KPM<zV(6ZaQV0J?)kw+#m;Tp+NL8zyp)KXI(9Qk&` z)sbthD~=iNXx)kHd|Sno$woLfx~+byos$UKl;2-UT+#HV`>=2)`$BjA!2E#2qMr;q z=hcj)hO*U_t$2lFRF+J)Fq^z=utV}qZ{UrI1-}SO%bCnU9Fyk-A{x)zT}^BZJqm&6 z8d3v&3V_*dCBwa0G}cAQ(d&%uxd2W~&=zH|C#x6xe0|7Uh<jV8$qb}GDAbiGG1eQ+ zU;w8#Db=ik(%}J~kb1<zcKNf!y^7Wqa!(>*Q8HEZ)bG}Bf@4o(#$zVuiOpQ?N{KL^ z@WshCOx?G(UtF~k=IGefb32&FkE*xwA(&Px_;qLkWQHJUF+9hgjbiwvfMlY6>~k-= zShJm)Y(K|i?;s~09!r<p%L9FYM7U2=old@l=Phyjw$4Q9jeNKlGM@P?hCx1GGv=l$ zY8xeQ#hUS2mUex0gRXg^94r6y%quW760UGCgT%X95h6E%pWW*a0^@8BH~Hyrk3F^M z!c7ZQStpysmwl!UiaBy-3Djg<T#AfTB{-2e?jIhx&n=(A3W&eVV)xP~6)V3n?F&1q zfR;<R<IK?i)^3Y`-2eQq|L~&EyFc1Vb!~BwOYB<1Y#kX^Qb81KP3FQKs~Ei6T4dGW zIW5r&ffSu2oI@M_{Z0)l)-j{iQ&7|4Pi}wdpvzMv!-@k~H<*oDHQo!_%<;HeuR6u0 z?q}R}D_oXYpC$t4@erz5qg7Viu1e3=_%Y@Tr2`kN$M(LbhD-N4@Kd-4pR`?O`<Sc* zb&^Nqaqy||xQ8Je)gp4sAG<8=oFi)I(npW%5)Z<=5BABhpfzWEG&q|RKslq+fT9~= zi+v{pA@0zSaN}>rz$Lk?ysD6-Fl$lOW6$Cb-D@w`ttiGKUQ)32PbF1sOiuuM+79(U zzH4q=dwIwdZzS`kxIjPWHrGw=zUl~!KNFl2jdFbM!-`6~@1~d$DY$D5{I*=YdUj>X z$B-DOX-qD++z>$fzQwUshbo-i2j_r#_x3%*akz{LjZ?HBIn2NK;-b#WW6N7Y3`9}t zb6c@TCyQkP9yovCV5)<W%$;m-zHDdOM$AnbWUIZe8#qbJ0uIW(Ee(UPJkZD)@&4oW zbMt8%r=uY(V@(C4^%;0UNIROpR#({3iO|#(3N)N*sA`F6cowF*^eZ}>VDr`HH^0CA zc>nSK%{xA&kDYNG))jyLh#7iSUc99!jTT9xe21V;Z^{AN4xpHs%cwQ8oPu|A$oQEC zt18gdoA67?9I6C<N7tjhN63ZPd2pUi7ieiHpeX;yuPGW5(@jRGPKE*9L!FXgr4<-; z0zLQ0OLkZ5pvsa#Bu5OaI7%uCe;QMe*2a8X<QxoJbMc^>Zi+E(_;(5<EDEhKFn`+m z%8lNDFua6?&ZL3ieF~lH{O#G3x36wryt=hX*UfF)yipJDTZEU=>sipzxyq!RY-2@s zJ7aDDAly_~C4V-wSDrlm#~7(&qZD%ybhZwI-x)Y!k79f`%&SEy0yjd{;A}4xW<Zou z|G38+3aw```98LwDNSp@Z{@vtQ$JC^YDq!gd&)03(g*1J{t$(y3y^8qNqS?>R{z%t z2xqYgQ`FTe=sw@>Q>>tefnkjL8z&?1t6j@c1Y4wQoy+J=sl7=?=s4h|7~8lYEawPY z?~DtTP8cM`IL-hDqy`o?4ck04dxI;gLCMqjIP#p3m!u7OYe{*JlvKr~bLG!TluWbH z>Haj~^3(l?#4mju2Pf;8at;8UfDb1pesRP>KmYjkkAMFB@5ZCvy?JMOw(5PS#2z9= zSS<c(<~)_>DCh-`yR>+w3QYDg1(MiDV=7y|I?eH$5NoitRQo+d3`<I-bb8jw45O#g zCbiS2%Wr6ha=*)fs_mFvV5eXLhj#AFCLE=y?o>S;%lcYX9U_6h92_ZDf|K{^rOWWA zUKK9yt!B*xCtFsnM=2eojqWsm=xMbGZY_EW&QwzsRH+NB`k598u2oV|S~QC4z!<mj zO*A_2?*9GtQ=b9|wX3_E+&)Awuce|9HGap_`mU3y^YpmnSra9ITDdS#bHh$NrE`*D zy7ckm2Q*%i1(;7lkWq_%3cN*@K8z&cp23%104`wqZ~+{+fcD&xvJ*Yu2Bx}4lOr&> zv~FB*3f~FQeMguw-~bwiYS;1<t4<|mf4jPs$4XA)G<<Bo>gY9uX$(+uW|(-y&_HTF zX&dV>2RJBT6RhN6J(=~8->uEKh)fd&JM+g3N=?;tXN~l^ol`Fg_Nyg5K1GRloaviX z3X=xt@YYfM>`PXgvFCU^ayMuWbudQ;L|j_1hPL3@s4~^9z&s5Cn4BxMh^j8%1}Hnf z9I?rWe=49!iONQUr+zARurzFM%^zMFT@YUM_w>5s8c*a4zItoLB)p&*>oabo2{ZFi zdxanzW}VX{p+sxC7e_PDr1`bhPb%wY5-fX-<a`jydWvz&B-Y|shTWq&nDtqJZBh5b zB&u4OkO@E4m7(AnZb`|dn_bC*Y?-Svj#`0+0-R(CIW%Bs$#)A6FrhdbHyB%>EgB9@ z6%YC@vcCSs|7pRVcc-ozFGMq4?Jm4DR=ZlQxmH@!is8|1=6dt|B`x&jzC{8<uVURd z%XaadtJkh}v{h{E1q}CbI1}}M?tq9DT^e=lc2tFj64bgP!p33%>!rTT%=#@>fZqz_ zqa$&nwX`^9#(F$sR36!m_3*9Sjlxo4g~Z7`Bkvy9<M|FQI#Jm-XO6&14o@XDr6Qu@ z3o8YrbSq3^4KOS|oqa9hT3h@h0cdJ(49L7LEr&l`fr1<@#m>&bwT1eZOxGqy+J~S{ zr~<NP+`#YXiUm2E^#{0QZ<t<PEs6JaCS8-(wQJZu2Kd})#By|a9ICQ}IWWv}P!PxA zwY(ghgh6|UA7<zum{0^T40bs8l#t{G=VYUZCN12gaXxHNx~PDX7YkXhfD{1XzCGdz z)GhD)_Qh-PZFchB>v_hN+ZI0@YzL`-?j?*ekY+D3;W_oDY8D>BaU`kZB+q3cWCy8{ z!$WAC^Zj-{MQrY|JIpRjqp?oG0r*gZy4K$t;k~<xjRk}S?<!Z*@#Iqqn(MRh&=+&g zGNY-HhwY3)qS!JQNd<V;TnjPgN^^^ZW^guIAXm`L<wGuCHk3|Ft=HWVU1j`)W%x=N zYO5UlY58XMa`yE*RSeG<qROF#Mdbdw?dKfD{60?42+`|=5WI1ZKY%yYRUl%eJc<d0 z(0QmClbuuIusX-GhNSHsq!&Ii)=(-g9=%f7x%X_A<xL-OA(e}2@-QgLzp(9)Q8#Et zF+KFuen8o2{;jadaJEn*ElBeZGR4xk8(8o1(5UmsO*t%y8#A{_K1}wg-ia7#=0|I0 zXB1$i3aiz(O?SA{<;MTq;C%d^G9GC+1k7W#zhP@U@avc)m{F>W$8O84Fj8+r`iOC? zG2!HUaCG3vAnEz%X39Fy+Vj*)!)vJo11hIsca(#iW0FcX3|o0+u)qPiv|~+pswAEt zUvMlS5UJ2mSc~kA_HzobI2J-Rl*v_Z-MF_dl)00by|)(Ni;vQB3g&}+)-|Gpi+q)F zYUC7Wg^e(s;DR$~PI|J)Sm=X8YOTfN%lACqgc|h6n8=6(M|BKO%_XFl-DgbRt2FFB zuWZX6^@GgHJdZ`a0~l%?(Dc`KSdaGZbVgE>%8&|;XN>#ec<ZI=66Q%MC(#CwZZrsj zzPJLdDysv4)7lJcI?AXh2$M*T@jW!5qD0{~03^+-fK_`+5i2~4iT=?9mzwfeg(G^M z4+psG8}&w8y}rIf)Ic4oH$ckuCbH^gq+z91f2v$|@WASx!Yo@2J;#cLq(hCI)?8I$ z;Lw>+=;XobetV_akzueveo2?RcPHiW(gh)8ftmvGc~wiG{qiWR)BuBgdnk?ZCB+-% zam#3dPx1+D&(nXvW#ef1@ZtU0zoq#nuQaZYDrRC1RB6YB2#C)$FbZz&G@(zL{>(I# zH#Up^SmrGa{J=LdVXmY@GAUC_OmzfJnr}V^qeW`<(V!R6y0&(>%+ipW;i-ySW~;t^ zwj;Tj6?Tx_VpPK^ZPG_GFpg%x3~#%Pp^nS8Nj`d@Ct?MRkRIN2#>=jKH(k~nh26yN zbg6+L(Y)HDyrhDsp9pafUgAC99}c+v<;#1WEL%8ZI`#YVxxn$rXO5ZQjD(iTn$m=X zl<pbzV~6x$V-iJ?(Wt?~iH;`a^EkIw;_o?ZKvSR>FFR7H1V72-61FKscdFEQr^s;C zr{c_q<+;^iaD>XC;1j>n3y5`bnI8T(snb{k{~$*SMuU^s+s80S;jA8sO<B<429ws6 zs)ysiO-M2{CPR7q3bjU{R#XD5g1U9h2O6UYaSe4JwII5iT?9SSyDE|+GuZwmUfK$2 zO$nfVx`9!&i;K;tuW$7vVXJWEH%3}VNa}a|qlTKfE6o~lv_{}3m--aRW&I<Cpw$?K zm-6(X+KAk6>x4el|Ks;R*o6^hzZhoNHz8Qozpv8RSrrT3_Sz~N^ihxe69q2Hp(ta6 zT0;W!)%gp$C$B8JF4CmHp3<fD(%4A)W+d#Z??U5tKR0)`e2e?<DfAazVzeKQ%IQiE z!Q>65TzclR>kgTzU$s2-`2PKS4e9+lakDs!7EKeE?kLHZ0X}X{*ee}<C4+c4Y$*+s zHUF1Yw6kgDQrhy^{9Mw_yHf|xi1F&_71rxnB*`z|sbu9dj(U%DP2S2?&<m5)^ag`i zS6<g^<b61>FQ%qHG6C9bZB1WWX~On&<I$i!e3fz-my|<(GR|iFS+ZpBY_D;G<|WL> zPd@CsAXis6e|!DY-~anR>pDGqY;~xGM0H5|v}Xyep33_#9|a-ru89mqRSrY*y_cGT z7WWJrAhkY~IgcXsVu5U8FGQjZ#>DSUE}c~0SvsTqZucaOJN~s^w6;rMi%-@N@qj#w zI|&1$eDU2T*(MT8h~n{wkN4l6w}B7`OLQ-;Zis-k&G+G23-+Hsy;99&!;*~Pm;<y6 zG~>~kM?(1*!POaK-X#TXNB-rJ4g<}}W=<NP6ME$BT<o7ah6CH3_0kTkzyr`H9gQJP zLdM{EKTZi~&V<soNcXIrcyZ0k-#odthdfgQNMFGI19fldz~?qJW|8Q$z(_B+cvf>X zBBM-E>x!p%<>`GfTxscLRx{Qr`rTwHv!dqdNn^8LUR>V*3cq}uI+y8*K5L+Qta$VY z@3|tKC$kJ?7JIYjv&H&6K?-JJQ?FOCRS|&K`)Css)IIGJGuf2I711wl^FyWEDFZON zgkS3b-rv9FTs7p?-KA1J^`aka<$$SIwqt7tvJqhGi;E~Z#1=Tnk)r5X17`I$Hy`BV z0S$Jbo?dF5)Fzg^K-syvr<-NHOa?Ar(8#(-Ra@eYM<tng-_$#Kf>n}BDM6zSaYt?c z3Q#MQMaV{|mJ-Gm2Z7tLb6#;@rQGMXs209_%%YKwb%|wBUW3?v5tJB!i(LE2L!(n! z*do9>Cs>`&^T)?7e*EbNdGaq9_VN9_iu?31+0ZV?b9D?9({o&~ESNzneLB`f@E#Ry zu*p7d7)(sUgdIWhxM_0=pOwMaIDw5p+6$Yy#2@y#j%)TtZR=aLmzqq@!N?tWQ#MBh zo{Bv-81_zioMhs6jP{$4-M=qEp*WkzkGaImaTiIRdL5eEcy#sT>xXi+5&_O-21(?W zve2^lPp*wSNL`{WR-+K9EC4%ezuZ(oPu&dr;lDr0KTD-=3HCo6U3-89MUsWcyqu#k zeXR2C28;Ab>s3@#{PFQ;7{<Unlp|dd=MYVCol_g?SYLC&#|1{m<G!>yTQ9A}wXj`o zQbh*r3XN)2VWJ5-Pxbuj%jfs`tm(a*jtY3e{OmZ9JMAg#3uJo2g<^NNaKN1{ZzMv5 zxLCV+LY8|#33W7+Tu_nk%Q29~H&IkOwl&t3hNUo5HrG)$>JB~_u##_C(E*w5t9p8+ zFwgKB5lGE>4j3jYtqTie>X6rH^I7IM*?HD;za5cOe|86+;x0Zqs#;$lZY3y6zyby$ z!_<nVqO&nLU`l?1)%;46XsvzY2<xeaM1$|DS?2ML66g7@eQ>}onDLxrUdoM|jk#%< z3>8jBb0A9smV<2=%0ihRetdoX>gMU&7hm4KHP`M#7$3j9H+*3DtCzXu%rEp<xU^@a zmFmsUGy#e+^Jy&@kD}%TGix#s#$w|fy(IR0QO@XH!#mMtMUD$4@kheu7K`fh+Ur*N z4u`}kOYG3km*y3ZBrVFL`n(7rG(5S!VfQ9IIR>w82_{ygDMJYCSr3XAq@kR$p#@vF zi@N2Ng>>D^_(^@OM37z!O&me~4z|lGj+z~TqU@YND7(3&9dpBpHeJaru`UXUF4xI1 zt(pfX9FIhCMH2;bXd6{veO%@nsowkdw>MTX@mj6naZ)cv#7<`-MomhF#eW_{B$r6v zAnrb<r3Z=)E6CC+nn1}gKXzugC5DNI{^(DYZRE2Ikd<~t>3&kpV9v}@oHs=c$WHvE zwAC8X0i(U+d`sNNkc=vq;((Fz>Mo~$&`%?UVOuc>4D!Z`i6@#FF5$`F%DA<|i3h=} z%06qhk9V6FXqtWA4QX*!iH>8UEV;E^=so)qB%{PX!(FM$rpvLc!K8zFkIvEa{Ll#J z7oZZ8F_vKX5@svL7HoY{Cbm|5D=Dxnq(KJOp$9VHY*=U$*oZTka8ByP1{LCdV{6L8 z0Kg&UUWe*LM-cSOr!HRHJiocSe)gtMCs|P=)=)9+5t==m5_mEbyRAA8ya!X*@iPr1 z!?K7@pk0Yj7BF;B1-31G`zV(BmSocPs(x#A5+1p8x8zX+UyW$DsO<+I<aqrWz<spc zN>6!jsSqtH=V-g_xd=As!&d25FZj!|Uixa*-L=V3=@iGz9t-@fl{dfdV|=}Q-PqK| zN(DJcUcKNhzJ1o0m)3dhKnUKTG+$?Y4u*I&NrN9{u@CD~kvL4(((dj~Y4gN6UO(=r z3pwpgUX|}r8o-v#sPsWikKVq&|NZx;zrDP&=;HS2^SkR?uN+ui`r>-tQ9fX{0|{Hr zdcgX{NklnuOt{dD?aqmtZHn~J#Nknqi`@MOqfM-}ettbl$vXT-TsD}oRWawY16Y^z zK`m7%mfV1}H}l-GN^Cc7)T3;*_7}|7$`H%@?9h^PMNIj+VVrPx^bbDqAnssZ03O+d z>(g@|+ev5qNEzr%9e*4Mk1w*Mkd#x0K2#IPI5RzmNhQI;c3D}iV$-qkgi0P!PLVfH zkhSRRMqC^ubh4Z{kICj~b{~J1kCSDjfPnv{frbq_=n$4NX#n7zqQ>QBo7z)LY}ZLx z%2dT!B?E#gv!%PylGDN$tjzG3gtnaURHhv4x?}*zp8CE;%gXJh@2f;?S{O210`OJ2 z5F44Bz@u6zaPk+Sn-creF>mxlza0T})5?0<#q+FE^GzIdVGmtmsc3;Pj^158yY)KT zvpX-zl>N45w~tKNlH|%Vd!F^1?K0CpA(;i^rv^T~YX-}wkH0_pfjj)?Z@=4}9dBN} z^h(-e!iT;p@1H#DqY_V_zy0=(V=kY^Ixw($ic7d$T#8xpXrQWYQu`M&L0qcWE=89S zUcBMSsgA`&{tgYfL)J7P{YV)y=;J^=1@5F*+C8y{1rwrkiYrZc^Y-nJA70+v$R{ih z&h#7J3yRwKRK)CZ8iI{+QVWiH%bM$Q#??=cvbKp^sWfd7Z&QQm27B0-Cc)`4GrLp| zj^;?2HZ;^=r;bB3?f?WMWC`Tr80S+-i~@kqTX(dL?++V*av%T+WCzM=rTD}9ZjKWL zTEDV-fR9`5z)~oCeX_>n>c>zq*-D+|^YQlFO-mb&$COro`6x+D{nGJ2HGH=B(x<l# zx#sxE(D1Nff^07doxHb`Ij}JzWIYH>u}BjY#f5Zv-6!^h!8i~I(^Y4{rjbnDs}@BV zI;Tx)^E`)sgl(LxMJMXkkg+TMI>Q5;R%SbvY??t~3&ZP94bPDuLbI-?&D?(a^77d$ z7=mN{>Pv8_?t5{*{bqH5Up#)HI$uSPd@4ZNmWN9(A=S!+2xn@<mXbGIfI-(U45B@| zx!xMAN008VEk1o|ykY9~sBcc1MfAq!&5fpU%!uFZUE4E0eR>CzdGnZj=i|u3JWMbI zo~0!$Sx(Czm__gvPZ>}{GoK!Ryt*}E`}n=JwV#+QTye-wM^A4J2l5n89=~mUT*G(} z;DoGYHIA+u%>j+aUeWn9Qu4Ki=*m@clEorgC1M{D`#p!J52u+>xm{XVpy)`OFD5)d z3hys@DopMtHtOQamVKYo;MtZO^_{m89SJaaxf5*37Ir{BZQdLqojJzs$%@L<RE$7q zEIh_8LUf0&@s+CdG<EFQ{dDhi9ENZ=&(o2UCU}?DO;{J0YRey_HRLtP#3jIWJ{yiK zkRO}K6qU~uVg(v{^w4gNh@e_WsA9C5jcLf#z{<oVi0A5#GxD;b^~}kutk&HE1RH2S z)3#*>#33?jw}HDykA9QPz;TflAxdV1GLy;;l`tA~Ty_&BLGXWe&k1N;50_BEC)<iL zh!s;j%$$3c>Iji@0lGQ!c_H*rn3>r)i@$3rCGrpeSbRUTtn==|qcSC#Ml!`!Gh^vk z|2OgQ;>G<Rf877}#x?^6Z1hxbe6sfO)3*kBzP{HOKI-q7cZju*4SfsFy4nEXSl&Aq zo7Hi?iJ94np0>5ImG`aL8)4LIDx1~N*3Iox8!C;(-(J1C!^dlOZ0n$sE+N<T3q84~ zH%7#bPD?-fYK~kWnGp+rX(@uX=Lb=34JH(xSs`<Ei}xJh^ViQly!-U^!`CnOpM7lM z%l*bg3~lKBw;AA9yM?u9ncf7nBc&XsxjC|+2JO^WcPa@=E_g!<u~1M)OI^yil`SyF zL*<f4KN&#S2p}`s!{h>9df|B#P$7S4Q!H!1qv%Wc@p*;NC;%FHf#R)Qm4m28^+Bx} zigaq1&UNcNC6F|W^7P|&bC~hUKmZj#PWJM6RE(b}=H+Ke4K6g)x2QV^afsy-wA{!V zu3$TBm)rEMJS!l~jSF~WcWA#;#pG!KC|;qlXng!d_@t%k_9(+qGBvM2YA=>JH*!q# zGz$S~aTF0op-YYE)IN0ryucPFWuW}9lI;qRWX1)4sr7pBx3foSR~bdG2*jTWY*MWF z10PeerPE5o$L}7QKeVF9_+hgRArv0vQI&^O&dkaH5(xDMfgG;62(2{)3ehGi>eleY zrfPiP?EMGbo~&z=lOVv=Q%C{}Dm&2P0}fCRs?G%B!SVU&k6+(=tI7CH^N8QS*hgOw zwe(7ds!2JUL|7~;FLhVO4!g%v=yrJ5?ja$xdCjL!^ko_C-PQA#mcaOmMsJohCB{Cl z<bP&e<hakbuhKjR+dD(X!UIqre5vi)CPU=f_zDcEy7@2=7+5osFqd1dpJs*#cc}<Z zYGTgV`|D>v{6z=n<Ky?f>Us0_^PBdEvWP^EhgS^Z@#BxrpWJ?Eo>8x?x8ujjyY?b7 zmuR^1(Z{rv{*-If|8y)?p*wBJrs4MR@>;ethB8484SGbUAafJFJ*sq*BgWR8CvFD? z^h~@|AoFYCE=AT8c?376d-v^zIP}(HEIVHx*f5*WrU?)NJ4+@61zer`0}qV?k-CP6 z-SOyfOfhEG{Y|Lq{^w*M815x*r}|W6TC%n>-1*i&n>YZ`WeKED!1j5uCOai|y#Q3? zj3NdU8aUS2ajpkDGd|}URT3OjD4$l4;ud47%o|jUj#GHGA_4rYy4mJWjBB4PiNPAu z;Ym<Strt#4l~zI+FYH@Jy~PG%s2fb~MFzFgC%w=;69Dxmed(w$g+X$FLku72MC&a@ zVzJE_ggshq3G2FHaj!3OfxAycLPcEdyMu<&k`3%_=-epohTn)5wI1+2Rcf|6z5tsd z*spbSbZJH8wYu6F$zzU+29s}}-+lS;StO;T_y2sOl8`NY0tJk32rwtS<C_}-Yp97O z=XCC_uj!$0hs%KL0Dk}WFRx$Y3A<&qKIsa^)2nYUU;hP{Na61FtD76kQ5p&J@lj5r zFQGv<kwvoY(k#_w1<o~UER~un&U+&d?V|cQ5QyVo`W}UdUtWGgHlM|)XWyTFzV|-Y zvzxoC55L`ic*E+g|I+vQppW|M+w)hq&)@IEg717skPp&zDyTN#ZCYLkx76c<`LK^4 zYl~OKE^c<=*Nu`(o`IXF{n_DgVtct`W3&F6E30mFg!GCrenLpfEsCJ9J*QP9#TBUw zFno-vssH}%hnFvJ&D338y%eT-`kR-xvxl!{IHO2T+ejg3C0%SCR{0dl8eWZ1Dua1@ zORix-JrQjc4vPCBr^*yND#Ev5(Fw)al^Y$j+I%}#rMfJt^#!p$74o$AY8oyqor%V} zPi+?KsT&mL1r}~^ptz&q)OfxI$BYYZb39y9@er5^>dR~ulc71aVF$Q2YIlbsw8MS3 zsi>TgbAw*lK@_ym!o-T=GWL*M5WP&Pf#Mn}Gr7gak?SUu4<j@XIWPg^g?7yAh+)t5 zNbmx0dqh*^_C#qI6GNxBA<-OZ7Fx*Nu%Vl#2mHLczVbM~mOC?4HI;6Zx2xJpGcE?K z3}d4i<w72_y|PmKf<5}-habNF`1#%6|B(Or&Mjen``DK|KGI?Wo~J;zd<UXAP4NaF zv;5XIqmhp_IQE}@{Lyl%8?oK4yjM?u{EKm=tE;;g*Ds&H{NWWTLP>Zu%T@5WzT%Hi zRP-2u8+<|KjFzai!@WSUoQdfSTNIU*r(X2i2?f!^-5M6pTFZl3{4f8+6ulgwH+}P$ z>u(=Set$B_e|7)l)$Oy-mRr07{O0=8mBkJgpHRS8H`k=}!K7CVw7!LxBP-t=>J?IV zYWs4m>7hYZp~vU1jPj^)gj?k&jgwu^NGd;TRY8G@?#P(TPg{?+126)jc1FW{%Ox5M zN|>haC_Km-#RFn!RO#z?V+6p!F7<fGww5|R`|v)C^$7nxQtU)FK-^>rjv*T!>+_}k z)G|1AlF28&*SG<Na{fp@waCZ!hfj3~>yE2*-VD3MFxG*x1z>QLM|~|F*IeW0G8b^p zLDRHLzpzV7*W8{~I5^L8AI?`vMcnjgurK~7JOO~lp-Lcf37gg5i?4{wB)EqHW^Do; zY6(Wu;JVV_?6V91h%E@`b?Ve~R;qXpv)zu-n7TNzZgY-jqfpkbwpNU@iSaQmrexlH ztd{(v*f7Yi%Jw8<;0N4sbe@i9*uwtvTT3Q?$Eo-4?&*r}+=idXPa_-~4^WW+5XrlW z;H?{Ob@&s5PghTETOj>>Z_w%P_W57``j=O)Z~yk6{>B=f-};#P^Xt2tXZ!lLG^Hr2 zx=dJXkVl5|>~Ibuk%(i7mrmkO<#7&UlONY|C@MxqG!|N~<CTY4E6mKNMkdVVp*+21 zC_V>Acpvt$_xDeqz4`X(?MI#V7oVP6qI9o|@$t*^uTQ+BV)uh9mOy3s+yqqL1WGbF z@~Oet;=VpF&jS4k6^CO}ho*%qcUQK@ZdPq4ex19j<Poj0QO&vc?UTiX&b582uoH8+ z&Ud*Hnyp8HK*H1+Uxt#4hZG%KGx4Md+&!4XIbJr^<WDm+;UEO<B+#ka6vgc%Gvp($ zD1pg}q|%fj5fH{!*R21wcJeREnEHXbRHX8Pc?NPEQ!W0-qxSwh<_g)~%%r-W!2ehe zltpsdT28cDz)N;K*60QbkWJ7DL_c@6U>ltBAUvAg8r#GPQ=4iPW8=S=v-fdHr_$?m z;rQA<rkkoAJR@JcZV}mJ697#>vcI(QoWij|{8VsD_iMM&1&`n|zNMAr!?rIihv8`L zvbgo1Q9->im56EwwSIF}kW1IdqrfH7I@fy-X*o{5DXeX_ck}xC<4><{U)|l_fBNIg zTh*%;FA)_V0w{|4Ba%7qts^l&hxD5vq}P4*_q*{X=IY;HetP}G-(J7`>D8z2pUpyE z-`rUD0D<RMmZlp^paPUmR^95tF`b2tH)Y^D=zvF))-=4FveW^e=)5}w#JP5;PO73A zDB%{;v?f?ij0)?8^uDw4gg9@2%hC)B5DalYvl900+s8hA^u&xPw`(Tp@q4>#`QYVa zUFD6PwCeS<7o)#>8GFVi{%&#*?a)j><Bf;^<G^|MNh3G8$1d}r;XV{IvoSLhZq%-) z!m0FTsb(G)^BZL}7J%XUe=S#%S@4!VVJgy+vPescRFQ*o&i|zdnP*Mc9_|>W-zo+7 zJ!Q9UvQH{{?!f6!B#$<J`l6@WZ3X;g;rf$)jZQ>I(>x`gCmP|jq2pPxQ-y=3@CKza zU4%d+Bnd;d*XBMGX8LtG6m!_BNj->Fdm0E7yVyXd!g&Xt91aeiU#_Z{o76t4nSk<J zE_Mv?00DW5-fV@uLw~Y)UL2|(Xff*H$WOTiW;#@RIRh!|qH&$a_?H)_1|Yclwzs8E zxbDIJZOT&<>P~(ejKM{TGQP`<cVJ9>lr!hJ`p|og`p5h6<WZU*W%jL3GI6EB)H^TN zSlc!8yZQ0U-+uV{A8)^W{m1)z_JMcuYMDFcps#P0g3&TU!cA$sp=18vK=8GXFZ-y| zlkY#=X0-qEU;ldh`tFDS@)LJp`>_{xD7?Ep9TnRHs7$OGSH8SeOfx5{+2{q1aX^eX z^E{o%Sjaq}pA?)U*4e}wGuK;!YAdtQ886H6TH~1yRZtc5kVl;pX>*IAp1pkh?EMP{ z`uO_E)yL-_ti2X%-+r^}NIAcc=6$#9#hQ3Sl+Wyk;M+7`KG?7hGnz-nYep3kIrR%x zS`V*tB<hgu|LGP))2uAH67+&ma?|<E?w@i&K$OFE!+3@<S|i<p<drGw!+bOCToo-; z4u-fX6~@%5LjiW`H+<%qTR)c)G!8vQY*}bI44hZ0fRB4UEQ>zIBbq3{`{xlv-<)`u zJDN`6J>l7qVSQa)UxjnzNuXnplfcBMnOd48JHeSThh!;2=SVy42IrC+2PzvIFiol$ zoSc2O>M5tJaoR$qNyQz?kWk!t=%_};4wc(K85tOAyvubh&(kP0?*he<nAxIOOJU>h zM}0!-uT?zg)pdOa6LpJ~5m{J)8;U6i92b$pS0>^YZI~F$2Sr)d1U{uNMh!#S5i|X` zqp((-oO8U+fvdrC4DT08zh1q3`tonD@9sZc{qo}3{Zspc!Zt-!9g)E)pCx)D#Nwv3 z*9r-%BwpWL=^5T!KWhN_)%8#R`KOy#*LOd?{A2_Y>cT}Exojc6wMvKHI<4`V+J;k1 zhR%3cs?xkXbR%%iZ-M0UVzV02z59*&CIKdz&Z^YyF(8wO?6|@Rvk_s90=O^3qH^|c z|9<7ev(DbVxqtinyB9YmxhxW<yw4uLts4SjJ4bIyJZ8p=*naql&kwkFllHl!J<c7m zEzvs-5y#QR$_T6TH$s=Vfl?kTbfcuvMe|;QL&KR1l9*<I-EbSzH<Pc&QQX*DT=Y`| ztVsWMnKBTuF~oLs(bCA2*iFZD;eyjCbISWoG59F1^Wji_6T=y>bHAw0r~i++qGjX9 z@>pz8>PS~|Duin16kR<hP1_Wl;FF$q=X7nh-u@uzj<J_Dodr=sB!Z#+Y`9}o&$fXj z)#1*;uy5b51189;=r7T<0#v7iAKW5Licc@H&qnQ(AWFBKDR=bH&C#+S4-AV@q6~7% zheZ95#Y70O>>`8UQ|GUsRI!;NjUX-ENR(VOV1fwa6$-(r&hk+0#AUX&h8vMS9Hi9{ z(_k$Zk1g&a{YN*q&;R9r`j>YfzW(*i{qORkH)4<13>gL!NIQlLE%PF;!El~Nq`i9e z`tJ7S&Ffd!fBWf&fB8>8(ZIVOZl7E|zW?$;7;g^ey7b1;An#N2F81G$eDai+bpk!> zC6H*qe!MnEOhirT#L;BzDyuFx>nh5|WtxtUD(T%em4dAH6QU8;A$t$0)yc98wKoRH zH4`gSlm}+If~~Q<M$zZIukSx$`lpYg?w9+=A7n@tO!Xd>PxDbzZ?-VEnH4~FN~d-( znus!xbHex{DwUgIYhpU^@HCY=WgGLw`Z?8A?h!FjuiM)j0s^H@fe}glGKo?P0J=#N zxH^GRsCJ1X3KR|zM*N95@1;dp95Y;U7Yg$xr-#+$oJGr228ZhjxZnDV;h9S7)nQS_ zlpkpgV<UFdl{=P|wLZpfO6*xUhy=niMAe|fj+$||V}D0=7bmt%%&=|vcPoxO!aWw` zWe*vox4Xjg!ro{+_R<;r0-A2_0+ZCOC)MPolnHKaDBPQ2kk^Vw+Rrl`AAo}<0%zj! z5pi4$U!%ZKJYee?a;9CZ$=On$f%NfWIT`enmO*ka_yv1)8L&%2I>(U*s<1H*NjTen z2yX?3hNfk(RJddgh2&UEX$8OLR+^sj2|JIxEeu+!@1F^hzrDKo`>(HmxO@I{zDT|J z6*`ds%DRz{Z(h6*V6Sgq+`YW{@h|3eUi|RW-QWJ}-`44V^7Q)2?W>pfUq4y~Wpmz8 zw-U{kh;#eW@?5EL5xb?B84`D<;Om#Apb*k%0scYOT}E^9YQ!X}!}&lHL#C5gR!h$z zdMVIWbm?UYY|y6fy$nZ&&%Rq)m1_fIYu!GXv1?N5`h`JoUnT$a^{siMFHLXWzHf=R z4i*iSAK|%?qrjh$*tiNvQi3Fh>;K`ZHP<0hBXO@${$ah6h)&mdL{IR;(2Ja@ujcN^ zA0z9imw7VbS;2G~r1j(S`y+JS#ay#tXRt1<)^7FPPc1NEx*ga!wzy}o8kYILB#VLh zXv$&Z&b@)4MdjyS+qlb+iY+4|Au54stcx9M;?svOzOc8oXO_~b6dC@O;p5fbTO_;0 zXW9D<yFyf*7S57SF(n=4<rHozXSzRaz3lB)#7ZO8L{SP-sE5y-SMLcnaN-sDRyC94 zbMF$m%*boVgwtN~`M>`6|E(d#X8c?C$L-)!hCxmHI2w3yAx5d_@!>??u^|mCAp&*v z#%xYsXR(>-1Uet#EJnf%M@Y;18LHzF_D0^#R`M5<PJ=E^bTB-{0%;R>Qgn(3^yPxX z$;=hVFEsl?0yy#Q^GC1X^iEt62I%)6-~N98>#uLjg~G(RAp9gZCY-O@<*sF9UJWt@ z%4UCfb@S6tFZF3({&aUOQP#K4AbiBtx+yQ~>U>O!Kw|(_Z)pzFiVv)S5U?Im%^b_v z*I7v#lUqDU1Gq*4gEfOhBo0uT{H0VDJ-z^tAt8vHYAH6>Xt30*3Cxxm6Xj=%Ilp`` zOn}ntc2i}V$pRR%Wgc9cZL;%LO{-|;v&|3sSW)kSCqXS{lKF+R{&c!cp6M~ZuTxR3 zsYs?mqK$Im^BlMkAGTge6Q!7IU9B9H_j5PcW9{3`vuC~)^k4tWzx?>)YrO6|K99`S z+MEA79JEUXEFK|!ULNB5Xs4^0qO9jdU#5)DjV|@!!6$aBXs#GWUXwzFK8{3^R}vm| z&oHO`8|D@jGIE4#EI>o~L$8#OBNanKFX$Fl%_pomYVWXFYx}6E3dwAW_^BUnQHV>u z$&0wzq<MY__nmX&nlGMn9FW;g$jP+LqnMxtMSV2rtF9OI75>tv7+o9w&IrKIjx?&U zwPhaSrp|;-8cUpYpSD0{TGwP=_H6Xg$gYLw`g&X@+Zfz@d)7%)mqWn9*qFv70ECmj z6n+}cZ5wr2xHLf0+<K6W_#q4%>Kvrbi!zF)kLCKOiBxu}lsgJm7Db0yQzB1w@8`+m zE$k>!LK`I9EDxWu14R$qw~{-}ZLQT)6a9aAeRpR+fsO3Bv%Otn1gazfGBf_+?&Xz8 zOSfLVy3wb7e$6w%yrG~xuZ=l#wB`)+e3&~cq{#ah5=B%_2vS&j?6+?uYX!zg9=%Fe zH1gmlV9y!L%`%ku&M6Vk^3Wns^C_q9HxuK&p5B6tG)_&-moY#6Zs8aBmbjGbQi_)Q zm?wH-jfLI4twlEAcKiM6Gps3G+jf7n{>NLfK3$8U$x5?SQNClnjWQ^hIfkbH(RJzj z)yIM;^@`;z6nYPGj1?WN2kL8LWk!h@QB19FSZW=5G`a;3S!Ic<zqae6PO7Mne{NE& zC~u?@U#Smh2Y$a>8EWe=HHv=c7fiO4{y;gE?Y7c93jJ{|tfXvUw*DE02Iq^JWjBo5 z3zccIO^I_>4rmO8CDv2kOaoC%+zO;|qY+a;vN#tm)tn>Nyz0fV?Vn8jFg&;{zrJVB zW#Qv7NRcn3`gLF$Sr>yWEI><X3^qjjv80W|rqP6j=F3RZLmHXG5ulWYWdt&7ZhOos zt{0uxd02mX^D$Fl+|N}xKfIp&j$DV<`O%(}L8chdkLiwF%Y+w^566;?3$%t16L6$b zqj{=$fGEY-TC^>T6D(id-qm6C8qUe8!|ELM$xYA5<$Vt0hgWy6|MK$3zy9#@$J<wb zef8qy)!rm10we}u_F^#gjbdUdj59Hme2ypScN#we-5&$CDH+Zmzsjqr(&ZT~M*_^F zWQsC~#6jNf@r+0IAg7<nAy>F*?%2iX+`+mzlH>U5v(fyomV40p?LlvKw1h$r`Gv8c zxA%|UyuY^zkhgr-xkZZnC?~Q!0I(2`KEqk_urvsu-G6x0Q!0$xNn(dbhq=V(oEAaE zNpQ&8BEjWj<QspI+=WIKlbNm;9T1HbUf61F5O8AUvSb~}wr*$XZc_tnueeYxW)4Ga zTBLQ$9nFj1iOcHz-U4cZeWW$k5Ef9haG;e!h9>~ZR~&NGf+Kk!;0jNi0M>b|OB{hq z66eh{><-!aMJ#zAVS$FW19PbAQvn%R&d+bpv&p5+vj}Z1p68jCM_f=ECeh`@fe(I_ z#NI{J)Ad5D1gUo{E7WGQi;aomL9Rd`7WPmiJ>!M&YeT0wKX60(p?tbHd(N3ooNB9x z7){sbJ}VGLWYmoHe$96HC9EuDZrmk*BJw&SW8DDarQdkZ^|Dy`T#v?V@Z|_zM2}TO zV?wp$-FKfXQhEOJ_W7%q*LN?kZ-2PC`|<9Fzx`m*mCe{J=HwA2KPrWyJyulSDmFJL z0JS~v{hA8HpG%8L=`x#7ReG>HvvEZ(d{@hPT*f`#x<s*_hP<mndxUZYHlOExDFw~8 zWHV_-R#&p4ru&$1UPubs_wPFF@87k^K_4TgJnHkumR3<K!}mTZ;1T_^>fT~VF1<JL z(;bXoI)eZWBnJ9D^dlj9&!M^kJFk?>bARq?P4Z6FCE{j8%*VE)mb^B{BD2naLA5<< z3TY`f7z0y~{r?;R)pa88*u^hEyl&VICH-APGfTrtY;}DN&c-8B(GbN^OJ#SQz(F2$ z@Lsq~Oei7+ZN%a{Qf7WIagF~FZwch%M^=@(-#0pHS}VB|-M@s@w(oJz+Hehp8wo`8 z=@p(Nf13GVw-<V+`87H<&>?~eS`Gqko|8X+l|vV$iGBw`hAzl4GQ>40oD#BK>J;#1 z95UD^5VmH<$0n*aS`9Zh2j=i3;$!s$ve58NSM-!Qzp-e>5Bon+1L03Na8N(=V8r0L zUC(ypiD$MoA}Aubrwq6ZOXf~vV3s_L!qIXZ^rWqx8J%>}_gcQ+ym<V>tLxW4zI^@H zAD(-q=bCRf`kSW@dH*=|CcNAr+;fsEhRFjWhg+2o!LBY$Sb^rmaye9Vtbm_`isW|Z zYcm*k%QOlg<bi3iQ9NeU+m{D@#+>khIFtif4PzntoZpNZI~KB9iohx#+seZyGyT=i zZpai%cpHA|hu7XaEmP%|n{(*PW2o)Bl5$^mZed^fOZjq9UP*e8A{K)BPt&6`;*O+7 zP<jWV5(@JyR#VEwd1MEIe40m_4R=-@bq#aasBBtxcosZl)rX!^0z-`&IzC)2p)r10 zC)VIUMl(6`RmpGs4DxVWa>CLodE<Ter6Eerl4n8CD8y+fezNT?<8dw~L=@ffIQm^g z<}nCd*7Mi(t_)mrCXKKxW|UYYKEyYI=_`p1BMnHtW9Ut#QY#L4YE3oLm)<yV)8QQO z1e%wL|2^K#ixJNun%&?HGfU&}SboZ>={Sw~rT-osmH`c<r(j7L$UAE7{59{wL%2g! zV@N(mu}~PoPUxMw2R}~_G?WJp6CT)f$|%74_&twPhsmbktI=#WAq5N8$e*{j5YW>w z56KWXf>~xn9w~!S8%VGxODwEh_~G^KU;p;wkAHh@+*qWgVyd)O+2p&RtUJI%gH!4V zOi{n)#$r0<BvBthCZ)+?cl_vwxQ5ax5REI~j`PDG5L~8$dnFa}m)g@Uj}&vj3YX&0 za-0LxFS)G$UJpt!jH$<#QHua<PXM8qDS?dHh9Ew)r4xGp;mf^62ECcYYd`sB-*Cdh zq1c(csEWE^4)cr&@LeRUxIIFhJJRP_u5(4bDxBpTG@>G(E?L#2-F790Is<iN?l+&U zp~Ing>8W3&(F-m_H#G;Mz@jYNSn1ishzcr<V{ZB-JD2QPb?kERSrK!dP716>0#{(% z!P=OVwp^)YL?e00N9r6z*0CGR1Rq`COJ9*`v?+f<`7QG@BC-f~V2WZ!pjtU=g&JY# zhkW{^zXolUl!;4@)b_ACEz(>!M|f1Eyj`C1=c$UP2`BE9alssBY}ycq8gx_<)#L<r z=#wg+tz@jl(X6p3HBJ74KNK#!{u8cNaSa@hfvx=q!p==4>0g6=ZCw`vCA@3#Ps}=* zt)=akBTf2`N03vbdB_|pz0Hsl9=8l>Z})5+NKDW%FGGsm*Edfk$rf7N;iw&`u3y}@ zYpWwCrRDKb&RpBBdqqehV&q2blo?Z`!~OpFhjR-45A=fYaO5c?Fjk#FeV(T4O0A$f ziEdWP04q>Oqy(awr!9FCOUb>P-B0BH4>k;t*Qpl50U0>po{~m}41$@ZZ3e;qDXo4v zaYbQAbE54RKusG0YJy<*6Gq8p<oSuqjsov^1HE%^=<gZ3`pUbCIpIM~#U3**@T3g< zeAFeJnnCRGwE>gJ%#07$!5RW#uZ%-=zZma88i0<P+@>RnxDQ8B(*1|Nbc{-Wl+wCp z$4@iY?lZaLDoQHoOe<L++goC)fVLK(29+adzcjhj7cyx{JN}$lof|Uts}-(;7r%63 zp)Yg8rBbc14Q2`&MSM``%{8A#V8*crdoiC;+EdnptY|&QVUa!tbd_&#sC@vpM>CHC zxpOcDPSaCScMV>CKv67i6f3e!O)7(Ec3|E`fphb;2g^>@F$FCsTX&%ryUl1v*eUGh zxePJg#O1@f3;~?7<fCzQ!o~;Hfn0c@ofc7;ZqtD=8q=P-UT3dMoZ=;aqZGDnv#j^_ z=J{*Ur=WWAf{^sl6ujbc#O&T^@z&E>_9m;`h&lw8pk_P~F}hF$`sH#y$Q@La(fKoz zoYr+SJm#vDImJ}0?i9kWQ&Lnc;OmQ$6Z4~k0?3ih(JVKQVf13^_l%@Y_)JXQk`jYb z&z^pKR40?(F8d7uT-0LPyaAv3^9+j!QhwDM*BaUkwFKk12oTkUnH!K%BG&*KVD*wf zF3BM^FEhc7o@#d;7K=Ac#o6Q7R!uqmL%8W2pdCQExzkv&6E}1E5+Ik_p~d+2sAZ0$ za12jNRX?fXgA{<$K-)z1A~(BASt1+2s*<oYB&?achL8T&)P^1pZpz^yz)p;{)2r{T zmh1AYRIv}y=MR)WguHy`-E0tWa-HltxX_M8U|3U{6;aM;cc|ii6b>&8bK*`o$h;N+ zoS!W6R5`zgcI2R2KLm4oncH1GSd3OjIVX(D=1k5JBXy`jmhAD)HFo%+IS>>BL|}nN za{vH907*naR7o+;xl#%{$Cq<?3XIh$MlE^?csqcr1$h5Pj7x`x5Tl1p9k4iUqMp+j zzYN+xsn_mj#wUkS3tF1?4aHY~xqJ0WpPYzVuVcdcw5}at7VQQ(^nTyp-&^M1+xA<b z0;tZIVOT>p=DsCDa!R4{aQ5J)I{;OrX)9FM%TGPxP$fNba~-^>a8r4Q!m2!=QC#}- z{(%e_$_9opgVkE<P4j=VFi@Fb67#cX@9gA(?#5!)J4hh{2BtFjz<8X5%yUu}`gr~e z<Q#z&;JuT$&edF}`k`8s3YUY!K`%1vyQTk!9NKfr6wp+l6i?c1I2nEacD^e~_A*g% zfHzl0js`ab7I>am*~ay&msSI>xfCLoz)NyNHaEV)S8YmoZ84(tzMZ+yr0F=k48;k4 z`bEAn(R&%{6LNcVNR;Hb-@SitbF$-Fn0nE8p_o}NQpN{5?||y`mg042(M>Qlx*_NW zdwEHCtFj`M!BTgWQC$k>k&|hn7bonzpK%h3i4Lzu!^C5kc&Zp6D*A=ION?^Kk(6{O zwuZp3C#X&X7SY^zW^Js)06&$r;h<ygdkPAc0_zf$ewz)NqG;?=U{KTr^i=n&jKeJt zOZx^*vo1aL+sVm?c76)i94W?bax7DrQ>`mBc9+i4uL5tX=6`{~I)s?Z<K?Pa5%Ki- zbzk-%cLNCa2{C-i8u7F_qL(i*0_nY}@rhAdLK_C<1R5{Qn1j%F$D}Mn-g6?e6lLLM zzAO*M4WDt5h{nfQxd?EqXbg#=7uvI)3tMV$hezrv>BJFB3uY)xJ1tmqzTE00+Lxx| zPc2>`SA9kp*N_GY1_T=mn4Ueoy1DxPp4&<cN;<LYq(Q6Z@bmpeAaom?N>@-=(pbRP zz!6(h|05~#(}C&CgAhH!Io6Zv8UFfW8{D@kUqi=VZl7P_;kA!kFUImFSPTviB|6uA zQJoLwit7usNC?IFIQp!Zu~n5ZH2$m+C-|MbgH39P251NuXz~>F;!q%=lL@jDNWK2c zU-(xhfp1D*c<n(#zxaAraR(8Xv97?bNFElb>at8IVg(Y4!Leo5Vau;}Aj9_K%Z!eK ztD+2?xgpA~>kNL>Rq#kK<R8=nwCJ0egxC%x{mliJ^%J@pXTU8-#dUZ0PoOG$9Qf>Z z^AJwDSv0=b?b=bm9iUgX^Z(y*nxCLIcN1Dux8hS)i#w;<0R?K%;$3)w=Dt6jA6Oe) zO$jL{?BZc+ry>k39+o9~UG^_O{pD}}`LDT~^{ko-++=pe<OR3wGy|RiFy_9SHXQh9 zcC?V&NGqgBIC?|up>dZAi}RM!IM1xp?Tfn1;`BMn1P-%s{kY6&>cu{1aM9!hwCn~1 zZPXM(JXl|oNH(iqfKY;onSib>c~=|F{^?r*p-0FeU_+YlFFihaT|;#+92GU$v_9o@ z_UVIdtF61_9Vl<($v_i}n5T@gs-B9NTwopTHM21ZsH9Vz11c<mQdi{J)+mS-9<}?~ z?9=mJ?XWAoz{O=?7hOy5WkKlx5E3r`fl)^>U8kU$ER&^{CzC`#EKL@pqH4Le@N%<o z)e6%IMKdkw%?9LrII6HrI2}C+LU8!Ds@6`Cz{9X`gpcER&kU)Xj_#%Bfg!Rf9f8V; zz*_0XnCXU4Ts)_a<dO?rMdWcDR`?u!IM86_B+zT7@*OpyEsTm+T(H#^qEn6|Y)*Dj zTC2En9-R7qH6DJcQ8)7o4;1`a#>qKX*MX0I&z*z8xfy(m4IL|ges_9d$*FRh3($c0 zp+rNXY(Kc6VNwD2VU;+t8KKZCZ)+Xj4+f0%#jPDGZf;-QeEDED`0n$QPck>Ioa3Wa zCN3;Io)t9fA~$Xw`taw*fyNG<LM7w7QJ1C4%qND34-B()DFr=P_3OVXbpc5oIweJc z^HhOjx7{2Sr=m+h7@Aod!CYl`9Px@W_2y$AOgpQQRCIWHTz;L>9rP6^(nNQ{wLl?P zU^%`OB~PoTInoBZP};OyFXX4P;}}C6-edEMQRfb7P3s?2>j498MR(%B6J=mvD5Z&O z>JoHA3EnWA(0ePJC*x!5WM-7D=?1>&1jaau&Hk$o9ZW!bd|@xv(dUT7dE7YfY?m*V zzD6}XmsC4x@V|Zk$_?W!UAHuJdu3pz!Vk8gRuv-ygz^r$bXt$e8({Utkz`SZOge1! zQYR}7xX$2qx_6=&KWezaHnfsE8O?fudDyb(^rZ<45Fp^!vCG-)0~+AC51(ll`qmed z%|AFSk5qRzL_w70JQ!*&u5k!6F*`s%fcyf)V4R=~cc%<BQ+ojYhrH4GpGYWhF7en+ zQtr-7Van#}a`bRw0KNE=@aWl?8_V*!=}h6wU5`U?4aGI+?aQ*J0X}^G`T-G!rtUx0 z715t>S-xzUL0{j<5$#DgNu;+Vk`zuq<V)Mubd`j?|JLBDJJ0}yUeQcl6KLv#Ztw<} zu{*1VK7bS;RZp;v++%-ZSG7P=zF=M3<QD}s7Z*km*2bhb<q7=aF4c9=VdoecXJ&M6 z78NqRn)MXSR@0?i$KN+VpkcuvUGO=joD7wEEURs(x^OEOJq;EU&ry35SuKaqMbSYz z7w*)3F>GdI>b+6RT*Ou1do=7}cus4o8l{U|PUMS@>pqPIR2g{|Nz37^dngdu<gaj) zZ;a>lej5Xyea6;~`H>N4(e=j<z~Yd+6ysSY?M1(rbz3Z9m4S7?)`sHwY(^`<a?`2H zg?lADKp4h2!Ic4MbPK)eIU`4-1Xox^cPxn(7`VR<1WE7_-4{gsj$2*g7xu`S6gF*f z_wvqexdv7|V3~juW5DbD6`bNSxsJ`;8>L{Ii?QMWp|ui{-e3BnH87DtD}8$KNrA{c zgu#ZZ!W+i<JP*J-EmY%jcnXhDnK{LyG8o=?Uf_`QP}twogp*VLocJB1N>ytTgLR-# zm#fNG&1Y<%HxuSa<$!#(tR7Mbr{F$6cysmg^{w>m&F_Ml(K8byk6wI6jG-D^M%jm0 ze%zXYX5R(hw7em&kT*`=Nc7%8scW9$z%{B2b*MJZ`0a4%{)`4h{s;`h9xapf13#4k zBt<=kB_KQ8H(m;olK`&#5yZKJhqV*85;MV`!(}jcoB~j-O8Hvfl7@!S9g|=@U4t4K zOYF(}?>lZ<EkbclVO34|)8~?!^m`L3=$oXFP4a$`;HhTUdUlJabU|PcP#B$6bQ(Um z`K6%NaM@&YTd|oJQYN{<eesgJ0Z`*mOQBl^BARXo4<}HAIeV4|Yx?*C>Z~sS2h7n# z)?U;cVis@fz`NyBnyH_?2MDgz0E!v5%ak-$U``%+33fEsN$;I4tb)lA7Wj_C=l}Ry zqiJ_s>T6r=vuAkOo8`}O9>=u>q;o`o0CRJWljFs`;-vz^C1l3bT41z(6Vl$qP;qXv z!0BdoyFw|A6Bul8w1G#kj=Ct4V5V)#yRT$M`yUSF74UnGKcBc%Il?XxDAZ8O*=f&t zT2g6*PmHUnl|0hqfG#ZO#nPQo23Fci)Am;jfa5iz(^*I-eB{t1&$DMQU*Flx?ai<5 z8JF6tMtXL9sG-!BBIt<FEgcMQuMu!4qy%ZUf8JT)EU0w>MF*q4X3j6;6(?X^G&|PB zvy7sP_NlPWvjT`m3$Um~!Qo!SM@`2A$B>X77r@GR(nW=Zg%zNYl^w6D<w0~G%{OjH zs^OJpP$scLZg&69w#(t!8@i^Uk8)S45gqXmIWZ0W48uz-IRvdL(8=13Aa^Kw^TJ1W zYXARp0Da1dasZlxv0aN2kU3fbq>jTegNct4gWG6UU5+Dt&Q>Qm^Wz$j-x>)s@Fg`C z5@U1>ij#O6W4I71I)CSpqMSR_-9&_z*)5)ss9Fg2NCc*PcrOkRyM}|Q%<`6^16}2! zj~FIsjP5cmPG+57o{Fn%gp27$h1v%~<86&<VhwtU{>af&qX^G@Wv>@P81(6uv&pb~ zI4-I{*|26bdIH1be&`z4o%ebhhX8$#Lb^gR#JQ5wq)w(uDGn6(G?yIBA)SQ>5JLr! zW!G8)0NN6O{Fe7ImTY55l?0^+`bn{l`NQ!*0#1bkevws<bme;r-24LpNHM4rN#_L^ zo2_RIfjs_fFUCYGRr~nK4rxs{K!|_u&FcEY{)k0_kR7EkPLdQYj$mR$W63QC>?2E( z63WNw^7Mr2?kUM0j#S9A6;BXz%pf!AvHGZ1<<UY-ErDpftsq}ki<+4<z)H^Z#QmsF z5aa4NL-QE0^5C3WvX|5ZJ8F2gHZGxcTkL*&)pr?bT~m5CUbfT`Cykl3n+}J=4C-l^ z{Fn_-#IB{RL%mHdYm1WS*it))K#GGOMqz&}MEl&(w`~n=9Wnx%5COmr?bpxjaA8aV z&jq!&KA-WlfkP7TGI^%fJYRa+499VZc)f8cVue5~_v(-x&$&pv;(Oc5w2a!N>Tqz5 zt7M^-beEAoe*EtDdrNPKuAZ&!!naYbr+N3b6M~|J=b7jTIq%1Xfq{XuHYMX>4Abq2 z17nO*)~R7EWCL;h5g*_-|4LwVr^zR}2M0T<=oCZBu!{ceCXnuB5r!*Lva$~+oBueD zJhKUEoZb?VL!%oBaRcKs^%jzm47PfUs!<j*#7T>ows6cGq>j&=W?fu7as<54-`rq@ zr|>%|#gd?rXJzsQQIbD(OsfLYI!-T8$wM=G2MgSNuM}=zEIG1-I`N_-7j+tv+)gTS zll~4Y$Yor0RK1tHpqCrrUabRp|M~IzZ(e4z<G2t1BIEP3uRap;@%`Ix_pctker_S& z%}Z+4it`-fiyQqaTqNUk(zul%O}k-}cgE8CGEa1)bfgPm$D=jHiVO60OkbW7PcWZu z#LJ8!-KP%*f%8a5Io&1({4g+OW5zz~lLzlxjBNuHYipj^ctpSK0Z-{QccNcfZ(UDk zOtDs#el%O)bGO?)@a?;ISW^sXB<Rui51(uY?PCt_>|pG>2v47W$PsWomc9@YZ-L>~ z2G~{?13mfv-gY0l3)T|=n0wA^7@~m*$e4lYSTUJn#dZ;B@Aq8O^_}ftNjdv9t&2r3 zp1*209SOVLZY>$`F$nrGXGizqlJL68XFhG-(hO}nt%=s>Xdn%QNa4imilp|%26(!N z^3la%Y06+`YzBk42VT7$#N?Jbz+Q@+CSkD$$1S?iM9pLG8`6Qc_uPz&?F!R6fVl=m zAOwwGif-15gOER`)exJn=u2xX)cEJrr737uN{E}D7=Cuz|76rEPTH-^dV%yQhW2KX z30?|gzd<gxcI&6;mr=^6wk74Pw9hB%!{Z57TI0S!YAd1X{;^DEmEj4DtUjAc_4I|} z8AfN3e#>KL!LHAV-~L?=_P-t@s{(-@2a;@~Hl0??nV)&|1A$VW+kqr=Aub&+un(oY zP~Z;))jL$$vUTGPO$mOpXH-jJDXMV*FUNeaET3G{fEcdA<GvAMrZ=PHc8?lbTNZdR z%&Z15UR!4*6y9z-2#~_PV4%I0urFw87$ULVU*u$`v?lN7fIlt4He`t92`C-yU-I#h zuJv1(DHW80L=!MbnXh7cS-3mKU&Y9U#8{$4Lba{=m#bS#(>}t#^&@S|(o~N9JGS-J z5mm6fp5g;=_N0ZqWfsPVUfueV!1ueGJ0m_+<Np4AA!>q%i2MQ{^i9VxXVIN}*U5=W z;C3W9C%eW_;#CjN`Kd3y3Y-=`w!eA%B6tmJUoGve23n3Y_UZ_<?}@k60n<Br_nokl z!5DZvUyV3+C-;g872pr&TL7eUrwY$g;zS}zn*a40J>*OH!Y~+=SzTvol#<i7GHB%~ zw1zanP+5SXBbRLNV94^rW9a#-e92o4jCEi?9GK3vQIhu`-t(aP^L=D!dY?X+qkwt7 zP6|gp4F)+G3B?XwS4IHXMpiCMkCh354Ua=lvDOmSVzlgUIE9rXu}9uKO=(in3HyRk zEuZ5QKELkd+e&$|PbK|^Q!KhDhdb&j@5CP$r&#BSE}QdIEeVfIZwwlT2dcm@$Ol5d z{%Hpfe6n4(_Wk+CPapqZw(fJuk|aCudupAfx@Ry0a1C4--e_&#fM58|Yil%;07iCK zRjPYa^7lV}vu3bH@9N075iX7&?Z-v<k}Rb+iaEP()Jv0rK^V(%_i8|xtSRe;%@SbB z`-u-^TsYiF7K{YOA8M@KhXj%<y1^i<vq9<`FpF#t-2t3)9zTV6qC-_kgc(1{8`kn8 z^7#Cq3uhbO8WpklDO$*SoUflbxIUD5oJJncUiE}yOq|wznL(6Q#L<EiM2wWruf97g z9;<hFD%piA?zhqePk3X9hVb_@`yVUNb<>yjOcALjSwMyvAqu)7so^m|ps-4+G;qo? z=qQ&PT}pdJN@<bC;ucS!10z}d(8ThI!yf`^9Ls81Y2{zV-G_&GBulF{H$BAi-No#+ zGi(r}7lOw99&~o6gp_fvj~-V;?(|A(ljQMpnwZxx99GjkswJiH)6o;NWYF`~ot0l- zJP+Dfu6vjMDjGiG(pLUNU%B#^;1jXpiAhsLt`frd+5dT8^;Z@REs>;X{A6(wC}#ik z$ULDZ;%daJ2$&z0CyG-n<yq>v#5?d-Vb>b-JE`nA7~sjY{;kX^a<e)q|L*M+gqiHe z^!B~a^*q!s8o<#4!=Gp~AdNn&my=ZPZ#7REz-uwVT>=!#IZmyXg)}V=b2ORj$$<|V z9X<Ey_LMqyV1ybaq!o<t+r%|PEQ{1Go^g8eVX6SrG3fr2FLrU2mE#GxTo=IO<AEap z0WtWIpXVcgu+2t7jD>g*z;9VYq*z6fnVQ4Pt@g<sfD4>7*oLuLhrpr`OL_AfW|vE& zCaW(!bee^omA-ydvgCmenmRzlmP9_-DPK70>g@b!?@<e!EVXVooUT(xF&sZU2zd%F z2d2ILIq|4Q6P0LwFy^d+8Jb{CP94ec=vst8emNDAr%E^@tqEy@%eodqB|ZlyO8^iW z8^<07Yz}ke@a2W3?4;qHojj;{KyZnaD`7%Sq;6*9HD%I8)R%7h>8%u0AendyCR$H^ zR0x+<x|nEq2>`(8J6gky14#`oz`R;zJ=aeURfsN7fiF~#hXzPDGIn%^93<b~Z)2dd zi}Um<JnFP!1C>gC)QMQ`*U#1ENH7V4<y;Rbl-0p#(da0-uAgzI6fx?l|N9gAl0(V; z>XPUA&ntrtRBGT@?pC6e*~I!)Gp-9fH2^?ARF82}0J6C^`cT123D4XO3a|pT71-0% zt~Y*8mPO{Eh-U<PUON5k*uqA0wq^()+66|p-rRoQ+}}c-kIu@5tM48*zx?{^*%byb z#7cBq<w!zs>3Abm>iea>i&fovK|nZugjs*aS)O^<P&0%CPf+Ft&5&_Ot_pB@sIv7c zW>KNCxoRZ=wP)+oLxNaEM^PX!<!XMF7a$vU#3L462(754Q2!uM*x~k<@5lQ`zO8$G zd5JQc`-kPxk?<72G_8tMkT!j9g@VY0=OV`Xw6Pt@Rt6ZgwdR@VDimqrFtoBfRGWYp zc14LMVsvL}TRbuxrY~xhGFyh(4Z7bSg~*u~#Qg#|d>U0!qt@tZWjw{K-w<(E3i7+d zLBk>LhT!!gCQSRcUgY?wV228sR%00I&+EDb9Oy0Dlf(wrBxRS({CHBMV`G5rzWwK_ z^?{->xw3JR)el!7p>L!m32r=@Aw)%k5Z!7%&`nTllcOY_f~|P9k+n>?FV{m`$wZON zd;|;Oz0*1Os#7zxR3OB+o^g>CjSQYV@1R1Sg<4ix_|0n^((31esTK#&stT1cqR!;` z;bk>N@Dw1Xl>`Cg^eR}~tXC`WQC$h<dOO_+Tu&r5yF%f@w1Tp&)bmMhJXty2|9zUZ z4P_F>^c;&rj)0ZJqpnPLLnqbMk@Ni4PMp(G(4)L;bfiK5+wp7$%DYbBn-iAg<ru?$ zO11`Ty%(i${r<}<6bU8m!DfeLo!oHLIh8xqq3#r<NR(%GOdKQR(Pm@L26p=J)a(8B z_F-d%Ag~>KwKYV4Zo>w&1C0Q(u}5#GT;E^szy0#ZUsQ;ER!3c28WoQ>+h~`HNFO<k z3hi+rEHcT|gL$y~?aTec_S3`t_d79|X1>91#RL|FVUZp-AL)ehhr;hf(Zkfwjx^m) z!pP0XE|KF57>R}9;;2vpJOY6!7xj~km*?ZN;Q4!w3i6pR9TG2o*wv5kMz}Hu;apr< ze4LqWNk+m<<OD;&x|k49$<mbRepqXP2QO|6br$43eCvZ+e!5pg{je6yBSk;5C2|cM z%K+?Jz>4vHhHsQb!p46PJgSe|tu+Fzj$SL?MkoGgrFN&eZYF7Q)eK`EK&hYV@qC5` zfhR4%FxU{vC4!VzEkCXR^>75XS2+4do^IY-^-85bO1bfNx-`%9bf8&=)FT*JImpbw zL$$Yw4tBgn9;hKv{#8pPh(O_#!<M10&{W+;9v&J%b(V#E^i@7S#@+#6MQqmf=w)+n z>yr;oiYx9PZ?LjW89sTTRk6EMBU|SfK5?uE811Q5{X$;pQk)ogJq!l$M7C+SNADzQ zG4sf0ha1Y(05>dvi{*4xdBC?h>Gfq>t+N_s4kP5qPPouvC>9rg`+D>6&~8G^vb}$x z4fNt<KB%h=+Lvtb*g=1Pe@Dzt&rUa&FW<l2If^9nQKn9?XtsXFu8l@V*9wUlL2RC1 z&M!_sfBx)XOFembxNq6iL?7`!-<W+&sB{(Aj12{Sg9esDjmrED{gFPl#_KIk(aAlV zR{$B6(RvmnsFQEixxRSeN8t%qX2L^eWY1Pk3d6(M@*}nTP+i-pO1(&iXkh{VH8;y( zC|_n!2dww5^<vVzO416vacGnOd<3|~HgqESXJ9o%&AH0IlG0kyw1=xISN5&ycZMlu z8?K$|3mVLk9y3*ob17+nDxXSgU|VhD>W$``S4r12K`YJET;Uea>xR!h<ne_8o37H} zTF3&%jsfYNga%;pa3J2n>iK#Ym$C_IT}?NVOO>X0$bR$Yaw=G*ql2TUC!=>$n2gG3 z*5U9ZZOLkF#c^Gh=5enMP!Y%ljC(-4R{3;t-KdfOZ^MOyX3tNL@F2VD%Q^^4l`?or zQC!Ay7OM$A-Q91$-Q1tC5Wb>g{)j6$)Ky!=rf(x@a)y=$pNJeA=`b3%LLs*ZcI($W zZ0jCup5O^&&Ag=9;-)o@l?RR?{q=G0>0Yd?34_-MsNdfE(4N@tM(EcDrNggZzdKo0 zbL2MF=7hx4S<p8g5-q|3<0k?WcF}J0aJ${U<XJr43L4909&(@m>nLa*YDc{1<{_I+ zefCM6JnmmzngcsJ{&vXJgHZq+?Sct2I1!S7t|deoK;L)wXW_nH&p%`>VS&Zk5XjA$ z5hJ;kjk+^6R7Cvs?dtrR{=$oz5DXV+MS2)(LU+(u)8l`wpKx5=S&rNR4~d+0j4@y+ zF1~;!DyK)1#$jN*i!g99QG!a17$kM8wkm8{XAvoUp%PjS+?pV<emd)m7%Rw0d1p4i zqy)qtHF&;ii)DrrI&5t3_2KqTIK^9f)?!cf8}z7i#9Gn#8Aq*3VzyCXLH73vD1Hi3 z&PPLazj|f`9>7XvNbX43q0h^#ch!J3z4CuCkd~Z!=4>0+NPrRfLNhdVOStf2Bc$Pb zDB+3)<0K1nveGkAj{nMpeS<jdD4Q#=Tp7n+LM!2ClIa0opguaK$rgLSBYMGt%#u&& zMf9h>*PaHFY0rfIb3UP!6}(ASu9#j_fANiAhs13kKb~D}pWe0)Pn%0l011bYm(%ML zL-70@``T$>!1G07MuJ+%LeDpMo69qMT!2sBa<{ZyUsB-<Rr%P8ZnqD<x&o<i#d_HV za_Wp2{_Xb3JZ-0rKOR2ay?y)j=K0~diIK<GZ#TEHHIZm%;q&Vs{_v*{mmm7*8D?rT zs$&4mxiWSs*!h@98*5Rpv(FNieH(HgA8*}U@GtfcK3-n=NaB3Y`T5J258IbJEt!hV z5-4=|a(Q`X*n8f$KTeK59{uH)zpk^wfq`D6xOIjQRL^2)OVGG(){n9n^`F?J<ESrz zu5FWR*}tQ`IpB_PUY(uMIL={@rflvkU_!fgPR0Upohv$GX1GRclmbH{X@JuBaD5{t zUn71me1KtyXt4|8>LcC6SS5yj(VnhVB?44=wGk<;D3h>^_%7y2PLtl2qe9?Nt+^IR zCMp%dU6X7Qz?^CalH}F8UtLg}8}(>V8@_TX7^;0tvfVtLUY<IX-*}!UHTE`lQmv_s zcYrBHZ~~+*q&@ghxe}w-I9Qi5r+8qe58QN;00>E!c8gn}x#D0_M)EL3&FcX;=~8R~ zJsI3a(%$ZNE~WFVNuyq5kbhNzc+Vz5r)E#w;Jj*{%H{M#e_-5Oug063s{Ni+X7J3~ z)YYi#y4ht2Z$L@oMqEo(eAVhoxaQ#Z|MZXl{%?Q&%b$Otl=z4AHLehj5hK86j>kY1 z1&uQ~0ej~;s|>SwTBBXZXQa@uL8Da&-gl}!slM|G+T^n}F9wyfmB$=BCHTf>0_@ar z#;w!~nz$u{*wQNpC~`&xXI?fG^UKri%lBXJzW;i=F_e8Vv-51`9Wsn^Ims{En_T&! zt1}hswq|PrC+ibJKu+DY=wz@8O2lhVVjoLl!p#;OoYO;l`?q((bdOvuBqk1){abQR zn>q4>Nw~hcbo#{iqtj%SayCI`R!OLD1|}?<o~Td1@SOq1Y7Vs!*eeo1igesw*!|<P z3nwS@e8$OISW*>^NHl>)p-y>V_`7&)UDMRVHm-`hM&m3eHQrbJG*!provgnMK7|z1 zB2Wq>)c^(UXW*la<shyrv+SX5*fq`^k8L%v+TsUbZ?8OrPV#I;oyud6N%K4@@C#II z!*VFdp@;Ira|UB(Znzn(kt!Dd;uH4j!M%Dbv*woF2Co}xQ$wUwwVD3qfXqgG_a4rZ z@!Y24ep0MiMUFBTP}`sZoEL5ezC>Z3yIJ?@QDW?VG$_gJ5x}6jmQrjz>^Z`Ow%+0e zzciqN3S_0zc{>4ZKtNq~o<=V~G9wDj`6X3iq&@f4f1Hx4FKNgXj)2%nM$MF1{xt#7 z4Ah&i)Ef1@i1<)r5BGPS3QjP#_jeCt#;hi#<Jj2TU_Nl$=+m`;Yb{Yj7Xw`ew$E-J zJLcx$+4pCe?hT7{e{;W_0mnBuip7z|#282-e7J1EXr3uXNfeR>^0mEt5)r!jzWM&` z;qKPKUHf-zhmhFJ`I^zuw`L}ed_T?lfgD!4hBaBkPB*IJeDn!`H!B!9J7FXF(ihR^ z=a+|rtqtpkS4^Pq@L7hqJ!2|gpZUm74_ha#F!0pM`T5!B&mUn7Z+$;LxqY}tGmRnx z6^~rFfwEY1&{%YV@KmI8)Q5@3O3+`<!cB@1M-g5Bk?Q*HC!2`qQcGdRPAm$>X5)$} z1gjA4xg@7fdDtMf!Qt3v0Q91I07xd_T$iZ^XqczP(bc~|h@FzgxCo2(TsM$+n2O^7 zY$l!T5#1Wi=gXIIQU~E2bCs6V?8>kzL1lS77Xfq<$r`GwJ54$bwWiRNK7DP(XrN}C zR=YTT=`PoU@3-I7qd8FB-Q9o?^#KDW==C#r%*D7dVac{xD`x%XVtQBuicEg4Ckth+ zUb(Kfpp*xTSDm)Wp5a%OWejV=i}zGL%aD#nfFqb&wN2>-dMNc!p_N}-?p@!LY=8SX zbx$QjI7M{0@%th$KFijfa0KZhL^IL)<sW|f^yTBPH+Rq99sZVXs*+|6w7YI{x)>Qk zVZZ(6X3O4Kto{^S8^*;k+u}@5w;PTFB1Pbr&enK*edKUjaL2u;ti^siK<VW4b<@-- zdz+{iS<4iNFmVqbA1pr*#6KhLzx?^z_wRQPH+=`*2W@%L^ai0z>vIOcGD}TIXCyfo z(tln(TC>&n2{OJki+?bk$25rIRxq^|W<$l}>6x&(<L}O%A1!&X$5#Rj%?xa+>+NNG z&{2PYJYsbti6uJ5yAKa33B%%<y@O?*a%4iv#y3Of)?bW{hJ0A%-{+J+!T*6J7g+wR z;VTJ&Z+a2OfFG(SHeku#BT4lON@XB36h2%H4Arl>0W}2T0Ww8-E~#8>T8^aMNT%HO z5Xhjyq7#bHI`3&j*^ixtcPE>aYgW;E;ed|yaM07h5=iZ&O>rb>t^;3+LqaByFW~*e z55Q<HeHe_lKyIwcqeNL)Wf6!Y2mhLjGa-7cqvoP`2YnpC8Q7q6S`=Ss58Mi313du7 zN-2_8RTa^ro7L0Fu`3))<gaH#R6SQ2kzm^6(y>u3@#F@er#$G?irlPt1l0u_U1^{e z%79zt3qjSQ#L(4q4*{qC6mPC>o{hfEv+|a_TzjdP#7<8X1V5JMg0h)>6|T1FIA-0D z?Bw(HZ+`#tU%!6)>o32OEw0E|{xqtyqdN0~{)_BT`)2)pZTM&)2`WVLw#6~rTCtCZ zC$S?uezW&5ZXhGN|3uGj@vo2j;X5CUp#a)ZNfQX6pi&&(2-in?p0^Lr_ctur>)FvB zhQKHW+qjkBQVEtxwM)q`l~(o*juYVq-s=<7pF!~5x~8x42?((@!>0!K`Vh(})}h_7 zF9X1j(hY?kEUkF@CTKxHe?Ge0-?X};<rXKVsh%y>W_`uBn(W#;yu9!^TKKP|rJ)W` z;<rLM@Pl7g2ks54pkRcIXVhm!X7Yewe5PfoeC7Mor%!};%nJq?o*P%z6Ip3A%%@O9 zAGVGIbpx+V;J{C<ES9S|^c8pDtHh@j(jpKhwT|8SoifWgX-2_`INmFQgB61?=Iskr zu15K4(TIB(bT0$WaYKq!yDD13>7nF_YUFp5SDfQPSv75kc)7pyzHttlLF0%!JUt3( z@PX~EfWtU}V6?cps$9n{0Y~c#<N87^sWq%a1rM}^QWKDYd@9fpOH=PBE(MlG5u-at z9!BEPWxSxoC&Vp?RSUuj%u35;AJj5YWhj_6?0!NAya(zoX?pl-M-MqA@8n%Kur*$L zNaRB?qE!$-l#<wf?hv;gE~wnAC#}{HBAv#gqWtOSj?y~Z`}q08m!CiX@lSu<e7h}J z?64^-BJUrbug*eKasMVNvuS2ttVWOod8Qs;j=d9UC6fHq=V#l~v~h8Ep3vK3`uZqh z<cpQ3*6jOQ(vuybcWlas(<_mN<{3cJ{z*zY=mBh0lF)v?Ls36%V8SUTr7|0Z*5{MS zPbS%0Wv^GjvyGsEIq%W-ajLA(NeL;{YltFPBw0V8F|^d7{I}jFX1)Pc=xgum-NpIQ z=Z}}<%QzoNX)K3>+wvsutef69Q4G_Tf_%R{c3fdmJE{7_SQ(5cs3|&aH3#NyVtq$a zTh`+9o{MLS(?UMcSWp2iz8T+491&`*c?5&EWW!ZEixV{F=a8k!>qW_Y?`a%4tXOTy zuAI4hI_ny!BkE89u$HWpLW@FPh5WxulYMblW!X9~1BRu=ML^|P$v#m!DA@6#CktjR zViRn?Lv>D4TO+8S$f{p2Z>N||q*L@)7YD#WSY`%fDR+W7(RI~&h$TF?s@Xy^oz+mm z*%8Urt~?|eY_07c6$op!=c+EK>&ns=D60Q-iF;}C4B19!q;fL+EuSM>O6^h=ROkGi zdzBCGru$NeT-EY7kOe^lo{|!plLpml9DNb+RkjisU~S!(vrhZ}z?NHhnp2XnS9?1E zO+d20VDaP6S2n@?$G`vCZ$un8t221DF%A#WvVwN=bbs5rzyj2d+XtZnqUx-SyGP$@ zvt#?s?!d=;x?%6;=+=H09IQ)1e&^3GmkvKWH=Ur9FGjgw<CJNR3yT#-ZgClvVUYdE zJ^ps{b=yiQYN-zd+U@2W+gw5UttT)p;`Xu#?Js}>`wa=I3P9cAx}8JmaOLDY?>Xd* z_uBM=QFp^CvBw!bLa`v#lg(_VueS}0K77QGRzZY6$U~uw<^*J^`}>FEbDl0g<kdi6 zH^geKijY8|;CxxRx$3b7435L4s?B!8DLH*>?cy?A9wJJbh0F{$vn)HJYk1fr&X}9& zgFB=DMeLZzD=dNB>Tyr_sBe7NICpqy`i_kXZ<ofJH4Qb^&4cM6B&)2XD#BS?%bOw> z!gdqKX2iUb$J=%zzAF?$qLh>|9M=Fa`E;Ghs9QmsxDIr(<xLo$%?wCGZtT)&8=~K> z=NpkC0d56g0?UzozD~?5R}bB%Ir(V>q0xxCtX+;tnIV80rDA4}^$Pv9{w@iWGS%-1 z+o?+$_;OBWUMDlZ%c8oGa~Sm&tz5B1B$Z{k7M$2|8db8(40r@p#bi^zss)o4;>s3r zBHm)K%nWf?Yr@e?xuPpGpTx+4+j*L1Yw?pNjP3QgDAnHcr{8@3mw)}|Uw{32cl%&o z^zq<H5asyvBbD{t>6}K4&)eh2w_ola{_vMyc&>;6Lt=bZMBdq>(8P~;oA2MTf`2LQ zvwisaw_mub_*)-|E-~hRpPnE8{F~1oK40Iz+#j8B!RhQ{hickHSeW{yO~1^Tk(2&j zTv`Zaa>^Hpe8=d5dgKD|tjOu@?RQQx#gWj8J28+99#(Ls>BX5Vm4Q3Ony4AF1rb?Z zlxeXSd}OQrOi#EKgxhQ#<Ej2XKX2Y%uDOF3mmS3lhmLtB0;vZu9h{id-GBQ`b07Zt z_1pc!FL&SZRDtD4QOrprO<%heVk6j`7x+3n0G5xFem=YS{pZiW`^}dNn_w`5O}03% zh2E$(v*%!|r9<Nq5-NNR-Bg@wl9^h_vS|yI@m{<HnC#Dt)bI(;jZI2k<yUz)Y)!D- zgkepSpwbkt%@pYh0W^&jvRcDPR(0J>^YO76zEtO`HXhS14}8As0oc&9FT(c-;Y1h+ zio?L&!#%KN;~ODBg4-ymLja6Y?E5k)$jMisUKZ^#tk8Ki>gwBD_S~`x3w}nLI|Q3v z?2zq-Au=!`s!e9w$oY72cF6-j{6GKOe^)>Q#!{JIqCu~}(I}@*=pFBOMy@geWeg(% zxzk@u!xJQcB2I2zivi#}hDg5}O?CEfzMe{naO6l@{VfNIx?};<qOR_c6@-L@aU}J$ zz$&HS&{NTXP@O9AuPbZW2tJ+Hn1;iOhdQ#ec_Y|8V9B7v?DSv%?N5LFk3YTHPTEPV z*S;{%kbQmFeA_(!a(n;nR!Fx+0T$ce-aZN#-EB>;I;DzJg113}+ltMCq?Lz!jW=JW z)I5<RH$KeM#yhJSU{)B>>Ly-|^XviZ?AO*d-Py2&lXTMLzQp5&X&c-*KL<wRvjLkd zi+l+q4=HHBKCk*@>yHnAo}3FQL6-Jqp|pj&n!rQi@%7)##u{*8RAvYp7PBJ2p^xV4 zQ|}IQH#XLpgh?h*@^iVcX_e(Z85=xxkm~n`n|m|e$2R8S2{CH|b|C17K&?eF0=IMc z?3gox`^{h3j`WW||NQ$;pZ@XZPiAoqn02JNH~REg9KQA8R3564f%LX%#fVDw7Ps4< zggYsG%-Z~L1fJr$rifR*md<g&HDd<A#2AXS7xINjGLW@s>Ye7*V?DC_B1K05C@yTs zw@BT!`aem;w17-w=#zjgW*t{f={Qz6&O%h0a3)=~f+sma&`~q0up}S|EozD3QzU@n zXIU5vm3ZO=?ZgUv_8EU;*?2$Y5@<RRs*`ara>qzTjGZ4x;8Yn86!V1=Q?O3+5Bc1m z#>C#FcTIQ#bbJPtN<lp-SVsTJ>|SPx)deexj8K*#0UH$+?k9POW8989m`6DlAaf1K z_~|{><!Q(RH;~?&q<iO6&D&Li*EAF!X^#n<DFbVXsUB1=)V5wi*yxeBdVY28qqskP z{`leg${Lo2s^WXl^Ykis!?HETEDZE&SvV8S>e|^_NXGQ3{p^j~kKMyJe8DoR!iI&z z)>kxEIB*=KlQ#Me$qmUkCmt8AmpHSIb~&>twGW@Jw<j-m-^@Yv_1Ah9Lv=0-Nc=`t z*M{XL7a~}nV-~r<XF4J}WqlXLPR}0h*=Q0u5+d5LDfF28LCo4mu6>(9q}cbWIl#@? zST70m%m9u{cQzA`3g&5r%!_+vtX_{^Ogx{R88cj;pMBq)-f9Y;$*M^4q_B&S7=Rq~ zsik<AuhfR}4<A2$`S8I=-=q!OvK4_pc(G47U)k)~n7-^%GGJabIizWsFIU~bB-5Sf z9&qm|eKaYi95aZ8JkVuBnLx^`$ZWt{%z$^|bDd=#uxEB)%z2QH`cGsvF{#EBff;Yf zp6k*k>X4WLfTUtaB0OaG`FqoM4NPMrFqMDn;}ZRaZMA|0O<y~esjP8+F6EASr;Aix zIyRscTey{R)>;l8Mux)-n6vZLB+)JUK62{{>Z(E&xf&8T^w-REFAYZ@uOHecR_nR` zctJ}MXlhqfr_w<9yA(v=2HEiCDyW%xp4L#;kL(^U9Ib3Wo)4pEk!w+=l`UCKx2mN4 zdLI(8rz!aK6q6|8X-HrS_sf^hb{Txv=jX@!+wW%_(AQ?qoA!1tphbqQx#;XMfWk`^ zvUUT3M_K~D_;ZSo6g0jQzz`$AdYn>0Wz4xbKYP1=JKdby3^FbcWt>{cdR$#!934Dw z@5~ldISkj+wD5nz05LLSC9ulPV&qK`+0BEQ5(md%wAjHo`6U-?<Tk_-ompE~q|mCP zVnU1+b9j<q82X@CtF0ry4#~rSwKPl<NA29JudrtPqld=_=iC4irWVlzq|Ny$N0w0~ z><JIQ_&0)NnDqXqpM6o7OK`-7m}<PgeXup-{@dNf!PVZW;W*iDACD@X_OMKCOsq45 zW3H=LegY3?)U|nwxUgiER|~yTquShYPInaN9A0Bg*Z`GKAv)Tyx&{m}YHU!Q^J?@~ zEa&H{-XHg##Np#_j(~XxwuWO%XywTnoH8NMh&0)UhkWuZe6~=8ISCgUMiVjt+aX$k zNorpAIFu~#JfL1JJ!CYshl36B<2Bumu=oQ?up_P{tOMcR*xRv~8r-2wHPb^S!Bp=? zrsi>X3ky{?_j)_AD=14{cv#MHo2y69A~yqA#{jc3xURITwq{CTP`@gxV$zT2>t;Pv z<AQcw(<9nVw+5b`$ObP-OSUmyJi9o%{`B$k@|^bvB=H+@U0$#W7+z>!Td`&#a>s=F zFgWKkH5FVdXfbn0scv?eE$52!s`4>MPqNXikAAU_=is9m(_A0|&KAUK4F*$%nafkb z)ML9GS|L00Ux3FSAV(E+HwXLB=Y)wm3CXhY?0B{h8`GXCNz+je+q-YKH-@<MrM^Nf zMWd3q0q_K^E*J=V(;_MZEi(Yv3v)vb_R7Yp>g-e#nBAl`S=lqbettW>@O1$P+7`kV zt7+mGC=o#KGhrmcB3`{gb2bjjK3`q^!%sh5^Dhj;9y|T)=GQw5n&^@FYSUQ<cu;F% zZ}D4X;y(jdPEj%N6rO$Ows&?|s2`m&y<2uNa`1W-Gr}B)k!&i?n5$MLJx`_TmVeEi z!UzTlzhdh<^R(DCt)w}nR#Lh2{;MLApX!9nxIKmaO07YOTV#q-qe{GzD?BYJm}=KO zs-%kMRlGV0jiAvjdUd5#)R-%g8$W<(yb2a$>l0p<xRbeN%vFlPD$1CQ=;XiQGy=e{ z+1W7APpdds4pjpM6CnD0p0WsmpqvN_TB=8;l^sBSX1dvy^x4Q5`i}_5&Z+S7GMa%n z|CI71wKE*)x++ATxk(Y$-HI&g7WPmI`-T?}{YzqJuc^Sv<;BO(rWHSbyWcPo_!2AM zS|9Y-hjx@)nep==5X6NCOirq^4$rFY{3#eVUK&fqv^gy)@qlyCYZ6{IT<r^EO#Cs4 z3%TzjTZpRi<I{tyj~6rwCXRWZpoP2MEO2<W6w>fCKVG2Lo`;k3%K}^n-@e`4+=w`w zonBlVo*CHj4Q}plxZ=cSSyzZ>XDAn}LkKlTG9~P7Y`J})jv6(2A{#B?7u3Ng-Lf)6 z9Q9@L77BSN%j6n8&}EBn^g!LPi>vCIk%nmZ$*BWrIswh5h_~BD>}KGg{V|LE0vUH( z>}6o7noMy<eDq4&vBsFvu$}EuOi1Z~1}ri}LfoFd2P<r0J5L&e!YO?*MslK8aU(6& z^iM<3V=5DC7$jGAI1qjncJ%~j#f{||7x~>#$*FB+FgQEoXIY2G+yfG2a<ukejsK_p zj4UC5^LTvl>FP;_m#An4?lJ<6f&DjP!N{fyHB@jO#A{W;60KauIKQI3tDAhRP{@Hv z7huh4%o{hR`F;TECJZJTIrjlET1U2(2cW7z`Wn&vnAQ-EeuF95R!&!M*K@BHP25Oj zP%ql7`?)SOm9NUGZDHC?c}H7U^`zZH$jF_DD-{QnmpP!L&ee+G=a=UnzkK}d?|%A^ zKmUbBQW<Y~<IA@MlEKJk#E&@8-Wl><EJYjx6Y4P#U!O&TZ47`yi<Lax7!)@LTbuxc zYK=N*aR56i1lzZ@P(Rp1T9bHm3O#y26bo}_kO@%JPMBe>wvWWqZ(T=AGD66Gr1$dM z>Hqwn_kz3NxxBbUlwH6^n0oM_5T#(GzVE<jGhPr&7mX&+F>5v~T$scEQn(aW(~jc> zr*cLHO-Lidn_Yd%?(f^3+u|=9s`A_nIv}Tg-!mzV#(Y{Y##`9i_chYref)BLezDH| zVe8sN;TWs8*Q@gnA`IJyM@uvh`{=Y%7$S~A&6qm#(m*{_4+FUV{mr^308uK%=xoYP z8p4sD1Z|>~wsM0#R0`8Nh{WDfvdIMwOcY{|vJKW?y9`r9pbT?@XUR5ZTCZFekgoF7 zkm$nU`C_g*F|$f!#9I<8n*`2APfNISX|iOs5mdMhl1h+FnJyi=BwTY$UzT9n6<O&f zdZq-TpGde)uh*W=P;iY`Dg(aQ)#Kz~L^HiGqCC79ynL@@3)}ZjTT4FG20)bz|EOfC zevf;;(k@R0C*LlAWY`tc`e=cbWtCib-;o4r0U?+5-#(x@_y&XWL7q#;$?VE5S{wD@ z)8+s6U;gQT{Ez?Z+t=@#hda8e#X`v{o@$`clK5hFO>JNW_lp~F0to~a@L>)g;~yHd zrCB+`t%?8yug_1DiRl0WIHQsJlH7ue%Wki?qiR8G&BMv_=5+JA4b~nPVHWs~^#q8h zhZ84D9-Lnseg1OgyNJL3dj8augSjI|)a1gPns@3H-Rg#cb^sEOHyt&N8Vi$qN*Z@U zl595Z892vDzRTSb>^N9K#4HQFozZvfgGu5e(^S4%C>=9XE#Bs2M_$14$kE(9E#t}S zH^{v_J-KWjI|Q+Kg077pd_irF9#|}vgNLxds?msJJxEYRP%GZ4nj>F`$8O+>0X&y` zc&sA$s(-D2Zwx5|y4OiIsPF!@*oYcLLiu<N=Z$S6nf^*+V8%zw#OS6fsSpiyvsm#5 za|Tjxd$-IGsOK%kHJpykY2_I;6oQ_;N1&{sBrC5VY)<p_hATF53VWoTikG(;_<jWd z#MKw_>H%a!M!4fz%ILkW7kE@L4>`G24<^%$CY08BBmuV^DrE^&qmKcUR?}jYs%hbF z8ESG}-NV$l6X;S9PI6aAbZ*pJIm_&CR9PQQTgB)3yqMZR^1tXj*;F;Ps(x30mS8tH zj2gNC;Wf|yV?;)-V$0)$lgqQ8e*4qq<>~jYZ@8S5WIgh_xL%e%2>#m5l2=A)r>j&8 z<$#0?!!JBdF_K>cPz}PedDo?~<PqN@otT%z;iZ}Eg|-sO&O`FlnCR`unhsc;;Thbk zy?F?MUo6W^8JsK&$=X?3{Q2Y6rw>;bXGb@``z?p_;cjzx`}OqvqPU3AOXC!(bl-e0 zUPdZlAPsmzg@!qsevn%N%~0fEv24z?rK-HK=CP$&DB~*Z@zSD2kRD!IVtjdHD{pg9 zDes0!(4{emM;Z76wzwA!ptGE6_du|KWg47G8u9$i<K;(k-Nqz-V=G37TWXHJ8k^68 zfL4klDThfh+i*$1!`FCHO39;-e)2e^<t}kj<l)3R9>k3zMjO?D7zmnqTk0S>NHL=# zmC{Je5<KrrTR|x;R$4#Z3=}alB{}e$2PmRQd4Os$uIH7V$t2b2pa6;jjZ5lzF_8uU zDormGH*WZiDp_G(cQHZ|!~e=Fq{RIjiSty&g?^y|CBf(PelgYat4nNSL%j(^%gX9) z+*^G$lNZ>(`N<%$Fc96KTvDTqpme3Aap6L-tD^8UdZ5bc6<zhd3N)GUbMPMa-*E?$ zop4v66bLmysAR7Xt}r5+lt#!?hLD&qO{d{bvY)|y%Bsh{!DkKW)iqOc<TEXi!LB-= zC!IBGm;mIKWT-ZC<Oubbr<<E^cHTpXwHfyoKU%xn>?#9vARxb-JzUO(7Ow^pGPtK6 zL2F&o>aTm?7<6J0ZVu3G5MmZFEniP39Lpik<>fWWH?@Ky2B-|jmDMBDyY0i~^T$s= zeg0%^iD1a%!~Mm8`uWorrA%@;SM{gQUkK`G)^?@GNlg)@#oZ65no$>@<UsW;Jp9ml zfahn&anW!7fdK|s{Ue9S*eJ~7K2H%vbb$l>J^QPaA~H<{8*%OJJ9sbefUOw4rc?H_ zz>?+G@M9oq<p!KUPSaPWPg#UL%cLLi7<3WB*aHuBf^l55DBFYK3arMm`b9?MUpyw; z7`A46Xh4XS1qI<*K{qOa1Xpy&B<wkUTAUoS4!ceZS!~Il{_PSD&5z`h$hp8!Cqy*% znfd_`{YGLz<wm~keAvbF1U0SEjDUiQ$fKlxmZD`n#V~x4WRx`{lb!KUEWyBsE7w56 zqCk!hr%#{Yq#UlamYYV?kvBin1bS;husd)cw!U=Set$RzfzStz8e|ne!0q;ACs*(C zqhPftlbuEvNG@)UfAMM>14DugKHh~~wH~i4axDZ^!RTWnefMx3jt6%?u1e)-=)@pi z4HByNXcEhilY{DQSc1O-vtZNz!}CK^j1&u}G*s_7uH{07VyC)gRRH`LJkZyIx;1oY zG0j%I?P+V@c~)2_6ZqB?zTDjPA-|L3b1xP!dT6TE49)TO<je8#_4S9gn+IM*(|vHz z2nPh!cDt*ym*)?glY3*`i>puD&9g5&i&=I$|Iy*u`5DSvrg;DLyHZ%-*y?{<e0)nC zUmmnGo_ZlxPxss6zxx(uoP!auH6&pT4x&5+kAlr4UYv5zXk?LH_&cU!TgDOTf`51s z12j8mv6l__sh;mftF$9p38HT9?<2`f-BUJ(XCJSwKVN@n_Ya&e{%LC)2U8gQ*_j&$ zk9%jYXGslyn2`<5%Whz0ILGChmKvcVI=+3UEFyy~CP2!+<AI(H7xg>@v^--Tnj4sH z<Rq#MI-|ph5M5{}LUpR&Y^o<&b<$GJey%HWYo*$nYs@^lzqmLpuECjN2qyl7O*}|u zVIiB1+q1DUyI(TwMrCUlr}_}4HNCYSS-$LGCxMdE_*1hAs0Rgf%|9#Uw+-gS6Ijm_ z=X<icK+UuKYBlM-p@lJp=Gl$3wUtFQZVT2B?!~BTCHoQ$zU|~U`X5+l=#mgh=&v4% z89TFM14eMOlPT;;tD1U-(Bt<mxs^@Af37fFKjz8qqGQs$RSn9y&Vwpa_b%J~LFde} zc8xSFi#Va$pW6y>e)`+r|Mvd~rm6q{KmbWZK~yh){`2?Sn}_=w+U@-ET08tk5NeVq zO3c+ki<xsDY>PBm?3gRXdI?scwV9*DPvG?Mgr$8FFK*6dx@4l#aT6auUSD4li$%QF zinFkXCpW*|ng}s|rBp3ky1u^9s*^M<sKc@sSC=O*CTzc<AbQ>3Y=9&htttgBPA;#1 z?<}_*A~UmCM<0>&&e~~V|CiT`edmFso(zQ`=M)7BvNoT?^*Fyebr!iD5?)d0au)DJ z7amjDi}}SNeUi)k*n@@*Z_VuR*j^qF?(v-g?F15x`!7z<&W*9H4>UL4P}sUEBpLbu z+K|s2mv}sz!f5o5s;5pdS<8~N)tB<d`>pLC)NGflvw6l*TF+My11<BS@?3Z%iY#*H z!2c+#Wc-^kh}+4BjD*6UVRGcbpX2hB2MnrN{H8W<QMo^!Wf{T~iIvk>-w$#p`N=D3 zJfkrFsP!rP-U}=p`_9;nR#^5#X30Y}AeLfC1Fy8s@-deeUZ)b?Ix--Q#N)_*4tI^I z^K~#^F&KT^G`b^5c-CStMK3f%d5C#d!FYNeD(X4NivC%a0}-RHJd`V(wrVXgZ?CoZ zK0}nymThGy&%#k!W^fZ`%_!_ZgY4;Z`9sWPc3nwB(!?aDAMfyZ>$(32<K+dLsvw2t zM8PIM$ldY&&%gW4&wuy{@BH<bZ#-ZtF<=Skgs=&FUnSq%5ilg=+W|i3Y8+q=#L3yo zZ+`PLf8#&?^lu1e2zq{oY0vGoUG91aLXf(cYh-HJD#Bc>T;f+FTRX_YVOWe9f=_3A zjJ-AGm&aW6fIV{PE{#r{IO<NB`u59>NP~`@9$FHO|4%ublt7U$%INjYib6W08BqSa z(<BAG8v8YG01j7HkqseQCuct1(Qra%nGqrcNOQDo2?FUo!<td@f%Y$--@e^|ly%V) zgR%zFEEZew`etYC#mVVaix~BQde+_au(G<jd^u*T(Dz|q-0(_6`m8R)cfCO3V9RX9 z%Hd@A%0u^NJ={dlvAr_5m2+|PFoicgk%F8N=~HS|>qb#UX6!VhTfMFRj06_ZNA-F# z4^bf-p&y!~@4zpurdR8=H2GByVD~b(%CjsHZd6reW}NIQ`zo?Bqj!2=VDPxLZXN=! z<syTGDHp2;Q1w=G@--baAl+q{#&D9KQ3x5qfk~JgxFmCm|A0>=l_wAD-#`TFNX&Vo zv3eQBt@b0N^hZq(#@CJVYGeRvDN#zEW$?56qK2h_b6b04EyFKi2*Bu2KmIPMWj)t( z<+Ls)x-tRCyZ!~RXq*_+C|64f!Flld@yn-w_{ZOU{eFwl5rRW!K|H#%UWQ(}@VI#} z9WuCoyS)0qEdJ@2zZ$xn8~mP~fBEtSS?}*}?dB!yj4eUJW^7ao8ktA9<5E(BeI#Ie z)Q*GJPOxd96?@L@91OplbfDRp({eiMseM60RGa&!Yu`}(`eYZaqV|(Hn&bA{tp#6< zn`Mt$ygWSR=;}9**J>}@@kqri)^0xDDHm3CHfUYWuyK14qoTw>A)P5SKVK}VH+Tv2 zTu3+{e}dA{iMNaE3s}7_Bz9{5gC*dUp7BwZb8jDD<d!?(Q$tx`2p(d=!>|Ol!(e-w zZH$Fqi@45)UPQ@kw(^PUR4gfBe4ug}sNtLeih#=-iI_j-CJWxkVuE>=^6(Gvaa4<M z^l3T#aioELTt$$vnhMp#|F@Gt%N{pS&6c=VK^z@Nb!$E#vBX2}*OLXa8fb;p`ruzS zZ{q5?cCR3rY+NM#!86dQTB&G*H#R_U&poJyUljqOR#c$}$*ky|;-d$HqU5D(k~l(w zSI*A>XJvLAAVM&50*NY;2?w$TdYfR5>$UJp_1XmvM-&Kvu<Pn!t&zl%q9u3`hgH=| zs+Gd=7-#v`yP%g6xA(Mza^5ef2c-3Sb!QY*9rCaaw<@bD5;-s}PQr0UDhYNU9%ePn z2L01N{nM|%@RT>>8uDO`=b2tZ+6{cd`1Af2dap0efAhQFuwQ@p;~zO#v(4(LLtYO$ z(ZQZ}%*WcoNt(Xp`{qhsa~}`)ZQLQcFaS1`3s)HU;(GJ_E;{PIbxQQ+TD9x*&irpH z@1Ni9zCY|0XK2F$$K`3eM_f4#oyU86baB?U3FBwZCxkKHylXn{;r;<lbBry$zc~H) z$+x*rGL@Y69GqsYnnd(3*RBB`BQG9l3;>=MWEpCn7HiBb(S-BG$B)-nKmYW(eM`4a z))K<#m>Z*{ORHFp&n_MQ(L_)Iz=@(qkiJ*f$JRyu%#AzIE`N^7Kob&9tax8Q8cl(? zc_o+!0+k(xsS;p#s7U$ZqBc~yA4Y(@p?pU&57Q>xGXwHIqbq0Un2(p|CBT(YkL#H3 zm__xfr3-?2?2t-i@Y7Z6ZN+BU#y|3EJ@>?0Np11fj$y}#njgx^v#xltf*Ip_;vt%* zjYQ`<UN7U%hshHdq4WnRGaL>8Wvj;m5Rb=smW{6m*QQKnKszy{c&Hu2D&57zsV3`o zNqg~+sFMbQ5mOEAEg2AlY;}0p*E-pSp!DSQ#Cw22C0A+{AzVsTaCmxQ#C6ox{G|(K z$hBVWP?fTYV9{^7)Oc#1sESUlxmE=2P~XCf*bpNDs<;AYV9M`bf4pWo&7j`g_(+E; zi|j46C8lIN#X(h%1rjzS9GzYM%fJ5DKmFhTvAx?k%J?sT`HSHV-9ue9?PHCeB}SZ| zdPm8d(IFgjD8V(iwB6YC9V504rLgKst0RWEQGgJhJZ=wtF7V`nY1+P>-S1s&4{p9b zSTucRa`fcn_V&iYr;bqAet+29e>nM+PBa_D)KEXV>hv6OBpZP*Pi=NGIpZaAkyDXX zfeMx;>O&P0bFv8H%<SNv$U1Uc0EVSBOLTIyz3*#xqFJ<|?YHg4G5vFL{Nen<nV1)P zmBO|VQf=y;YKxiYqk7rG(NqL$8Ta=Uu^2E8g<lgI{RESxoU<s6cdeTO;V{F3(sU6s zr8G8nXr0cNL{E~pCEIaD4}09!r409olfU}4UadUS&9r7nA3gzROm48SW4@KWt0EF* z3VRYdt_gx7;65YL5I4pS+Ob<dN_qlskWlo2c<Z$0#)~0^f`fsJ!8@pDOzFs^d%ay4 zQKbl;db}U~LY9->nqZw&3xrk$+5V@7S$+vtg6du;r9K4cNgt+ZM6Mo4A;zPOc8bMA z6~chNwO+jb@S0h<6i#j`B;<U>>@Cj#5TTu7>Rj*z(j+(9jUCq$8FzH?pjU9AkQ=1+ zM7xVp<yTjDEUnrM>9Dtaq=##C#|9Y->^=VP|N37yk5B*a|MN#nL3wa+u(3=(J-}Zu znPe*?i*;^Zlr#7*|NPI6z4*iC4?GzC$m_FOxEU0)m?xwNA}q_*K^Ve((YV13waAh^ z8oe5sLIgY(^a6TQwjxtd*$&><<F}KmbJl*u{KzJz&u^cuuCKrT>FeG1r(gg2&DsWM z6<MvpDWE()fBs~iRPfYlJGupaoz`IemX=Ms(gk^5VhcX%VUh-yGw1XR%`zA>6#;2? z+k3sE_?biMCeT1OXG&gQT+`|g2M-+VkJleQUf=E=+;2U(yE)u%p4Rk`?_i@rQVU-e zjf&rx?Cqmirg%1O>z%h0jn&S;u-+_<khP5?y@hHwnQKux2L9>MxVI<NoJv)TS+V;h zUGq1-z^FPy9wtsime$DGTLmRIJxL#DpFL4X{hqr{#Vk`THjH3tGx>ZcnR7*?sYXX* zR8asw#S4+mjy!KQ?R)6DiJfwGhmnzBF`o)$kmOu)k-W)f2-y~>22j?=U?c#z&yXrp zw_;f>79fvr)`ak=9%{J|boz);g`)rCzx{XlJyAH101vfWt0}(zk$=x~$1+t23v-E| z_OoU!lOmahF4bkH>(<AhXYaq-;Red$nv{)k2-^pPls&W!THVZesDK9+9)Y7YYRPD1 zXY+}*f3%Ozsc__7`+m1*NE@jI`7I)^<LUUplNx|dz|a9|n|ZgwK*R6?658F)@Y`>9 zg0ollB0KD{U7eY5$6_kuFkQop?CHUt#Z{uX@S@Jks|&*lyk@t&9eWz#hH@z|3}&@@ z2=|^_Uw>t;c>nP7@a07G7*FZE;WJ{{Apm>CN<1E(eSqxH*I7*OQV?RVM4wYD#sX|@ zaHo$>^SZA;a!X}vxq{XNZ#OpF&_~6jP<!vw9LK{)Fr3X96OKAR6Q+in_{$}&$CtJN z(6OfW^Fq6jW|oGBY;m!W4Lx*vaON~DpLw9}UhkiN{mZWpw-0yLJyO|+N0*H4`Ncn6 zez40an{cpqYwIKG8HLO=2_;L$pd2Cc+<YL@WVCqm#TmW=6(Wf&48!ErkF7(`H<Q?W z^(k&>&Rjn>7Xnw+?GNh({03rD;)QV=s`}j)W$}gci*s8sW0E}Ts5yd>Uy875Hm86q z5rM4GVVsU!O9Pxl0)<k)U~}FFYpHexX(Fs3x?a$tsmvysL52|Ku|+Wv&_71R6a3Gj z!e^dWqN1JtfkX@Vd+bfR8$r@b-XWeICXyN?g>ghIZBihHD_o+Zon+L9a~qa&26;fT zx9-gNCXvzMy4^#hhp_Cc3X_S%Hqr2WlwhcX0x(WAuWauF<2A;0^>8KO(Gf_V%xkX0 z2<fQ*@`NzxpK*vEy&aEecyy`7swqz}l;l}AuJKKdG86E(B(tpP2nmRy1qx9y;;O!p zdv;=5-}dI^FMs^1N*EI|V1`&@hSrLT>_I1XI6Td{eh*ej*ui^ub1OzJerv@M8k*)o zRSL|M2`OVz(a3TI#O8RD4bP0~5V&=GgEihCx<%7Gg+eYCg%7(Fi;H}`7HnJm=LoM~ zUSE9peC5zq>t|R{+J{lH4^FdZdwn8=8*7q@Z~WoI2Q#i6(;VOvtI1r^^OUs_W7+}? z3qcyDO@P1yOBC=?i>B0%CKi_1Tf0$8Zk#>-;SGR|3uI9zi*3!a8XB82ME1wGEgt2V zZGJ>9oBmU4;#+!QVbSfQ!;{dbRrolp1^WCD0f&O^w#5h}QEGH+U(>Q4IyN47vYWod zN#D`)@8Mj13|kY6uD=ZNgsj8zyL+6SXq4JnWzs4R@8wB+{VjnxZ=60sfuyT%Rn}Rw zW5&QW4Czk>XvV{>;$RA<oEwT;so2oNsiAuPSUN`e7!dn;xg=t-Zk(yha*o|xm8b@v z3x=C2OJacMZ~S8hZziSWZ^U1p+~s^$vasq@S2y54s1le`488+VT_G`)EHMiLXrk!k z9}|S?2NvT^F>lxp)^+O1rO|ZWix$g)d0bZvt)I0r&q+rNJx}Uq-Fi>K^LI%R$%A!u zBR>}isGfG6w}E1->hZDNqIVxQP9ArRW4g~UL8KSTFlG)(%LeW@cMgg#n0$0~d2wot zPU<_U@Nmyqch)r<yg{0n3-=8M?R{lNI)rs(pulBDA2cy$%%Vp^5{N}f>RR+|`);yj zlv)S}yEH7M9ok;tgw(lHLtz-M?k~Umm2SOYtxB9=yA+Le3Nov2&`EUAomS^RSxx7t z4$lb`5MjcXgC^IwEUXYj^;B+bKEF5LzS+rVDKyLhv37H=vrMj9ee-#6=fG_ql3V<A z(c&<vOc@r$P0?GjuzzmxWISgRCG=uMu(5<-;Pp@xY!z(*Z9I-Fn%x43pc<Q%$@9!g z#)@%YDfw`X-2h(l6JUWcg3$}P$#ZSh17*4nBe~BR8wZ5IW{wGM)sCmVjwft1M7b34 z2{t*jHR~1!9-B14kd9Ej!a6=ba{zmiQm(NPidp6`98P<dds5c?eGbe6_u!juMULjL z&`_g>Y@J!y2vfg8Z!wh#A>bL5_)klYD6laA0W|$r$&chA=ZlwHhf(`2Z@v~r^T{@d zRW2i_9Ds^rPEuBLKknTO-d#rV&2>FoO|P6kt{U=OCo45%=x1ao{m3?T_DudTGRa#% zB_wYs#=B~GN0%Kr^^k<`Z}xmI7puM<n&}XVYlWJkw*NVYm0dWw;(1y~ly)LlDx{q4 zwzKHKo|sc7tQOl7W*_XfMhx|+${d*f!D-5dFs+~UJ+2c8S0fEImXf%&aDwbYA2*7K zUSG<l&2t7sg#6eS%`Nik10486xAc+oV=?fL&NlFzUZ)%_p>c)=TTF|OBy!h*4insq zfq|qo<4%TRcC%_$Q}zYznMj1^LmfO7V=qKbU!y<a)Jt~3`Ap<bphN{NJj?aSLkp;~ zK_tCnr{cxcxhZXhw1IghzDZT~?F>M!DQDVnVWh(FJIsnpk;_%mC;p2!iuj34QDNC+ zFbv6Bmr`&r)d;a<DWVT^$}qA-7)fK&A<3yKIUqBw1J!YEpVi`6@gV3F`a>NuOo)ER zX`y{wCpD;FLv9w&xEYGatKGK>9!YZnCTEXB#Y7xDk+kS4gEXw|K^z;$q#!i0OqY3+ z_k?TNKQ$4?T2X6A8$~pE*dGZj-jcAC<Zz>(npZcDt(jRP4hHS{jqB5N(yRy%Bjpm# zHv8P;z?zz;kt+Ao{oDY6zDspZqoJlQO{ogca}Xu*2}c=9tFEbpUau^02SMIoJJMmc z0xCEe0?XcP9y&tN9=OMchw<>NG0JQv6r+8NzSsfYD_Pn;d}rm(FWaT9V+NQ;be8^i zBC##TVUb3I+l6aZtUjUH3^er#=(s&Kx3G$VI+7~-0M+8q=)<p)>FCnuKb{WH4W;C5 zAZN?&m+PN(pmU_c0!HZwINd!zzA)bLNH;a(s?kO!=s<@sLK?~rH=RHs0H93o*w!6P z<q7zex8awvC52E2hd7?B82@(I<2Y717N^1%lmNNi8W4C6rHWIfFn!Po0jD&(MepXW z?(a`cY*o+LHsd!LWj3S$iL#af0zSQfLxx^D;Rz?e<|q$klX&QhJ=T+TU$2YKKvGrd z0Lw#{>AU{1r8)+Zs4q=b874iAI4qh^BGHJmoJ*_m6jRG5=xhLHp|<D$Mb^qdjyFLb zV*43sbv*o+LSLrcLphZIl*iM4*Wla@EfeNl0&(KqO6=VEM61fcpax?Y_b{J^P{8a? zs;LaS<YB@&w&MMnmUDi<wL?>Fr?+I5Cm?p>fky{uSRUKBTA{P#0hMB*>p!RIb`Ffk ztHPcPS5<s6yIF;PWSE}=!8`OnUR7!U14CFChH#JU`l}&4#8!$qwf!O=xHHo&f@+9h zqpVE^RzyI95tnsA7D$~sSD^3`F|^`9-Q-y%;;zaX(;Brg+b|r*NZeg`2o<rx0w#b_ z(srE2PH|Pq4fx0M(46DN#2XARUiVEePFV#>pS9`E!Vzc_(F8&COb6ty>tH6ddSnxS z8|>lXn#TRsA(>&(I3!3Ba>gdwFTei@-te8GCO-^<jXarCRc74guv>$AoaMku+S*z% z9HyDZ<n%Z&W7edfB*4k_hiidZ&o8c=p=p*oAW2u=O)7cE1cQRSk<mm{js3fgohQ0l zpS2E#%0lYs5%sTNGG?lKvwwYQ=UfLpo1Dl%M|-Qk*j+<z!nY@_y$w<DRfO>+6~`H4 zyJoCtHEM=hZr9<z!P1z*+RHv?MMtn!6ZK=%W(=I5PFj_?m0#<A{z#+6sz7!RD>MwD zQv|&rE)U(08FhK(w>-(M9|XzGbSj4-Cr$Zs^Jgg61_afcnw&SD3<S{BgGtc2kP<7T z?prkCbx6UzW2hI<!+-&*sU=Gb)<tsnlDFaDT}s`6SI6er?y|DYRsIB^e+mxoR@QBr z0&6#z;P{d&vSdM^b0v_EQC+O&-hs$Y7CTHrPvRMiej%ESI%du3ijKCWI3Z%+ysm(d zjcnySHw!GyL`yAhY?u%I?jh9JbG{vh1kJH}NU3vMa}{Vr^27+IB4BK(>cpd|Hm|XZ zb%>~e%bBLNgd-2rsL%F&OqW}RDJf|3o?IFV$}NoylFP`B*p@@JESaiKCjx9(KeC0g zVPd$&Al);dsK(vkkG6vS-muf)*^#uqmy50irJn3zI&(%DceHJO#LWi9`s$3=Gzo7) zUHYFSSZlT4**XE%Q6WLw?x;33*Fg{j<cL#U8SKfanmRDa@BnNp$?PUgHewUQ4sU?7 z`>Cp?WWcX}s>uEPoB8aKt;{h-ndVx(DOg3f@-JZe=*jXL%nx7BP5e}9EUqa-l7_-6 ztm-sk-rUGGj!Lb7clfuO<&b&^7AaM%OzLXA#R!u`1!FBDBiGcBG^n{!@}O^>#>N)3 z+J!qP7?~RSQJzJXCq#}VXwX^A`K~yom$kGD<;QM=K9E(bCh=gSni|)$d^@l-=>!;T zmaHaPsgY6Pqc|4qm6Bu9qUC!2<BFz@KZeZf;p#ljWi4xb(n9gd0L$`VQ)%7ELLL|m zf!Pj6=gpnAjm`jp=Xtq*#<kko)6DQPf)1m7d-mZBy&?GqeNK(II{k>BPcKeCefppr zW+e$l4)VsI4osNz(Sz-w)g0WymlMldbUDwD&KSvoK*+!>h)$NhPC1f9ImADO8`=xh z%tQ;)PJNE7lk5TMt>!w{g56>;REwU;4HZnhpP(SV#R2JBIEWl+htadK=ZeR~=%J;_ z+m&>CnpDPf@!L4kG_}A|qlG<lLBIL(nc>6a`YJqN#x-T%<PKG0@(jzy*0{!u8ULMu zHN(^fRG&vUI>A>8Mwhwhk#TV2rQuAE)c}WXyjp}qsbN<+cKgY^)tprRW}6cg`N0er z_wwgC4!Rgje1`GhJ#45xrIaaCRuPrRJfirNZO_Cw;Qqug+vIj(3c<079;HV@%uKqD zVSqNpci8KXUvex#=s7-Awoc8xtJ{7C<1YCr&-yWSMFlkEJ&_b?Ue#IIq_v2=je=gt znNk_oPVHE*G>#cc%j4eF#Ic~r#H3>lPZSJU4UG3s4`xT$d=FbC0u^e;PMVY{(1#v4 z+;TbKYs4}+&t>ycl!3+pMj{}l->J5}0*Hdq!(3(OeThr6X|2csz}hbBRjxOZ54{27 z)hd!dHfiN|t6GBUyL`>ET&DZ&VQf_Y_H=%D#xEdTZ>JWD(W-ez^rOQZ1W!Bealg;T z+P-V%-BK!3K5XhhNS_?teZO%oq`6iz!1!ZM(-Q6Q-HMDC!qWpY%WXYMHWF3HCS$Er zF+jmz8}6R8z%8<9BP#}o=hk4+kMT4EH6MLtUGu<8`FkUbY~+bK3~U;Eq^1~LC8&z9 z9|k(Q7472&Tm%n}>M`=XKD&T<Glof|@uNAK4uAHMKt?=L@|mqvR*iL?AosnM)><AM z+&<h^KlzVvi4C=al)MyCD3Z`{I){2~L&Y%QC+(QhY;Y=ASiluOO*|~P&~7Kad5KY9 zAJy-?OgmsA3dx*si5ow?1|Cju<+oe*F}%wf<23E36$OW<T60{@FA&@zN#U5HXw>2O zYdmCgvzzCZwGrl+XY7iG+AyqdzQGNLyI@T^clavF<jwVc<314OIhS6{x#<j4t^>K{ zWMSN)9Inz3sH+U+i3=haojw7eN}&;6mN|@(TL))~lT{jO&^<j@c|Qk@RCX*b)nRs; zgcpcPRmcgCUSSB&*TXEwh}mSQ9?y%x1=bF-_3B5q_ZvECDyi~x&pQ}PVtWM(0|}oB z+tkv^6I7GH13?Q~4}MTrww2kdzom?Gl(5ZM23EmI6c)fRtwyO#w}B_zS=dI0JU-q- zk0rN#Zq=i!6H6d2KU^lX&1cpYf?)_ZuuP80tvx-hVVtPP02>V&aPgN}TAC1_W>Dd` zPQfD9fvTmp>{Y;!SX{rj{c4_2PX=mw@nRm!L;Q^dJ;LvLBH15D&<U-ld8=t3__t@Y z!{VF}(8}w5+hsi$e^vlbPsxNKCy4bn@#C}i?KH5MBC8`0zOy*Yg2x;S(Rcg45^^lq zw9x(L)@DODB6gG%x3+f6;lI=YM$9`agcC)GIWc4M91R3%$uO2RiuRRJ_=448acXoW zDA1PY>!->kIc;^Q_tSY+6xWGMt87ehtFJoy$I%DH#w)68C{-V4HY+Y2>9Pi}a62fQ zyau>w{G>zO`HW65GN5;Og|8=xAa;CJq}Px-EgA#E0tpj(1z0OoVOH{!oKV|dVOLM! zNb9Reon4N`z~^UA$XlE+5)_Ar=at|}+3c;~Pz0e!uS|2YVK!OwDj|Na*ITW+%BQ~z z5#Cm8*I4;i19EyL%CA2Pjij&&;Tk@?lH~N3bh}3uIGx8`kdC(XR*vXAuLAYmBMLT= z#yJ3?w&Id9d#<|mR;eHMcGXbLr9CmH$2Z^C>(jU`d!o!b7K-G)7^0!s>!}4Awg~Ls zo8NtYVq;saWD@A=<YJ7iU}-YfBC6r|nKB7&c?uRDVfAS#ULj37*-B|{VVg0a!-vkt z7n0eGR5-@s91)uYZXbM5L2KjWHs6bx4P&P|@(v3|=bkh$P8hPNp29p`&{{~AIGoJ! z*(z)}g}sWAVQ7B*Tfte#g`G{9BSIbAgW-JE!a=26g~2mcTNXppdB>FkW!ix)O}u9D znO>U)yL8l~1D<{Efg+nZBwn(E<fsL_OP2tN=7JV2^D>6!5z$~C43+^Uc=(5EfV81h zOgVh!y2MF$mYM-eR0hlp0amuU8F!T(sJRdDDo9N6O^}D}feipq9IcvRImHM47i$qu zHq`<)b7t)vGGvUcpp~;dy;uJdc$%wu^WkLdLyjar4F}kKVNU)?%WlS;RDUUyuOfkm zpm7{b!$c5=<k1vDfo`(cLn63xlhr)1RI6=(JA11Df<hqFOpTG*jimfaz)DH9Q&H^0 zx}!04N%1cDsf5}qGaed>?&KN5@}+k*`nyD@jJh((y}$k+_fAjnBijUqD)fr$HJvJe zqZJ~Zs(#-NA`jx!w-N6^Qu(;b9x5J`^GcCvC?cUS&3A5Jc%R%e_%d|Ki4d)|(YE-} z+Q?!mh9+h`(b>Y>bCl^r0DLWK+|+y~hG`XO?gNy*TVU<@$RRxE`m7Ye;K4qdhFh6e zU%?{3;BFQtJ(U2Oy7j#db1L*ZD<?qRIZ|GEvm9O!%0`@IR}Md6WvGYsg@NQ(FUQmq zl5o@V#$#V0Xkjcf`SNOUb@hZWz0ARwvd}(`&;Gt`@#e;!T6&!a$T4<9IP-=xGE@dt z-*FSO&Wgzus5&F&K2oL66qNqLX58E->5Ot?7z~0M)PWv($g5O?rr-6ukF(9tN#7*g zHC*8~fd(zY&l8nPD)g!=PT???C-L@wsBV52eey4~6{@^%91$Vh_j(*X7{dUJ3QELR zB0C`sK}l~cfr0!ZT*_KqBTf7(R`hncNGepVI@d$ZA-wx^;#2i_YvRlk;|}nQTAvBI zsjyZixxuqMcE1*otcy;9-m6tMx%F=47=%>x9nPK)SO#UQ)nT})PV<v>Ebz=jq?d+a z5;vWJKaJ5JXbeqDqzAaEU$cQCu8{Q3P_6c~ID^Wxr7*_eLTyL@*$9ox7r=7rM@<bc z)XJpQBR>{|NA24f$aYPK9hoC%7CuwpGeB6^jiZvx*_sFPSvg-dG);D5k7>cH!>w<e zIyQ?H^~v{BU%2GfW<o`!0FbxF`65i)jWBu~yc?+mlNQHa)Rt8afFW?PSE%<^f61Kl zTw3$pq5{S+=u`F~nb{@NKYF2A#f`|)*37^nL@W~87hgtV?)O;8w7kROgvOnvPNtZa z>eqe%4Aq*Ife=loB(l7`-QV6>CC1^$D3TWu=5<6jKTyUlN#s%6ken0ZEvD}wAHKCm zd3QUSMx~vpVfGORH#<s0*+Ly1Tt&*uKZ;JFsHsCktcGbR0n*g)LRTl=sTZMdqB4y@ zW=yWdanr~G#alptk%FYED`5|Iq+fNtUQ|a;DHbg(qO<X*fI4f+y)U4HCVg!Lbne+s zc%eU_cp)vDKftKmE0(sO8UAE`Sh#p_P2|O>fApmlv*S5;O46W7-bGAk0TK-mKEwtF z56be=@hAF>{q+EyGggBp*O53EEo%=DZWd&NSnOiPq_S!R`pTeb*<#2+kykXv_|0`# zp8qAuCjX*zh<n!{bvYbWYVy#>Dl5Snc!Fvw#3KtZKXs-Y1J8Q6do>94e6_AZN%fGp zCc)uSQAc!({IqZ)(FyccOtqZf;z4^R_iSsa2p^i_p5>`%j&Y#a&REd_&CfLXp^fZe z3)}kF*I@{q-!+P7d=WExKn<aft-Nw}>8nYln1F`o*8s>Gfa!FdZL3P7N<~_CH&p>< z_^=MYcP$z*-yAB9@dRLnS?l<iX7)NB)lMPNH5BHnYsesW4F4QPkq1!1aM(!!8x*Xi zr203TUsVV(jrgdF)tB*3o3=i3P=~Mh1ujNhgcB3mQDN*Ay?_S+3~bL`7w_sVOB-in zCqoI@xQw;6lgv1G2%GO*w?f<E?$z-^l{41sCt5g~V@{N{3k1R<8Jy_+_!mge@5rur z2=$sBA#Y~;ox>>|sb<@B!L5&9s2@*sK!xd=wuJ`Pkf6C`os!QJfh#}VyQxTA5h_-{ z<Ok2H1UV%?HL|+4@~^jC^m#dPb)H1t>)*t1hg{7-(4a*<yR>TYW8JvQCV8Uy8IpAq zBaOOPbXt9r2N_+1coM7w&Pa#p*;SdE3!&cE%6yo{jrO#%9{RO}cGs?`4(T0f_e8fL z#S__9h6Sp!3mDHA!Q4n5%BKIp#?KtUh@a(b&WXuioO+sHH8)@l)a9vgXEUfGcvPV0 zowMd93iT7W4Y=v6IpGC*gi`$^pc&Bjq-ll%syL(_o}TyEXQ?#Ja^hZllA4q|*ymJ< zk=%X%)=+B>E17600VI7oA30(tx;)9xT-P^{k8Lwb?<>h_%8w6UdS$VZp7*N&iTr&o z8D@Af_SLG_3_|O1iBr?CXD{0a3len#x+FOz00UHqs$BC%UvC|i)Ddh)PQbcuR5rR_ z9=2;?TXD@rDa*>5wlIaB^(JqN4<<t_tlm^%M3_E};_k;H%E$;1*Av%8>s37T4r8oS zU|<4Uc{M}2STEdAetnKKWeJ5VKXaj5GV37Z%&N&8A-N3H1RK+{9G@4HBMp_c3rnpS z8}q&T2o^8-5qhCfRf&1YtGJ)?aCfZ9(QAz=PDRw;8It(9dNj`~E1M#4Os{ftg#z<U zI%P~{h&TffVF&2*+u;E*Bcaj~mq;hlYZOe}mipCON+0fVNT1%sAR$0mMSkFMF$%(_ z6eqttsIA#LEq8O43Qqjgc~7?TVl*hL+ERXxjA1ci=%I4j1*iFlEYuK5O~B*&Cs%PN z|6$j{`tyS=<dnfxQhZ3#Ji0Cu48i1^&b(}K54+)fH&J$<VM{?`Eet9^>45y=0nI_R zI4mIq6->7Kd_DsGc5h>ELCE&q`Ust1KtSmVLbU3{(wsf>m@x%*!nQhRnU;pp<H<DX zlcC+k#fif_0r~ygHz!Q)Ii3j;tY>u6GeU%C+6t2iFSiV6n7rX;Jdsf4aJC|{;q7qi zObam}Ah^G~F}c+T1e-YN+(TmmyW8mwsv`y}d{fEcJn_{+V(@O5aBfTB+nzx$j4@Kw zEkZZ8w|Cg#>!&sbV3WSkHv`@b2uz`1ahJUEwgD|VZU~7_fM$h^;+jBbFBum!S{|%y z=@#gozo>?I#`&=%zLLiH#)_l6btEGQO2|rPTA%vkRrzCxk|qEqqf3%Ag5*6|Qgn?! z!X%DYxq2$w7!bBI!hy*XN!@kIY;$!3Lq&4GktPP$kh0)0dLFpQ?VJ_@3H*@RY-|&? zY#2+q(ZX}E5tn!d<*pDH75IP-wS8<e78q(M&(Z|foKmGV3Vb9g96`4Z<W2~9PHzPD zfkL4IYkIqS6avG=q+$lW?o?sPk2Kh*Jz+bYXINxR6985~slShA#q_2O#OUiNe%5CN zqnIjNVwT_y7Em5AH4<p#At7|l*@OD<<$xGZ)>@pUFM?rIOqmN4FDGZF>05~E6X`xz z&D-36y}WXClPzWYrd?Ag^NCbPr7EwSBb3aYU{($ydNLMr(yOQov-Zo<Y7T>X6On!E zTO_{p3f+qGAmvZ(0U_~&7=hq^q_;c}#^%9tjtTt5m5*U@j_kt?r54*iA3nU8E;fDV z43X#7I~S|a7Z$$=Cb0^0!;APVcUTxE3iul4DIXYH=%>?VommX&U?Zh(&kw$til4-; zZG@Ub74v~Qv@#qY+&^wplK?JQB>MIG^OsMYe?=HoY(&6ut)3Mu7Nzmwg%dr%hW6PO zMn@kW1RY1nsS(shaSDYo)EDrc+n4W**pMG95G1vE1+mnR=koZ8(=^IR1Da3@+v*z3 z(S6u5?m+rs$DPf>n=Qfu3JDlbka1;``cOk5U;GsYBTjhKXx_*e4AF!Xf&TAPYJJZI zJ8G_GX+4wJPOC3>1xy<z%%-@JW<IDb516Su)Nb5<(1{d043q8P)d_F;C3(O0_exF( z0#7~4sirQ(07o%5;fJQi+RhvD%4e?wMsKNL9c~!cSZxW*n8Ae2Aii<Dd=Lsl)59|D z9tN9VklFZ31CmOlsvb9>qJD*=9X>txu*!Q3OehNi>LcQ1M@B4ldMe>-8eaG@A-rl{ z^{=;;9rfV~ciJF7N|aVTGYV3^8m3b+E+<D8uoWkReH(b#*sF)f@Ao)b7{d8X)^+AE zD@?fR_0*u2DhdgZx4bNWQXwqG!`8RFc+cqYM3$(-<Ae=<^oHj`>Sj->#fH^qHbyBh zlOg~LS_4V3a6y0o&6uU<8ZW+5vP|`h)x0#Yj$7tVTSjRFgb?p41h(Dmd{xuFR)ECC zCjA?Fx4v@ViAEk4+Gt@*km!|egOy2RA^<?kfZZ%3DW$2@z%#^8qUez(Iy&hhx%7lW zdA9su|Mld88k`9x95&-Z9$QDkp)Q<jhMxk9fUX8g4R$hx09(mp9rPq*54QjiCP_yo zLZ{cO<!7W0qs3h7ihMGtPZua2cOI^)+`y7LH3U&8*E??+SK!SkRDPLtOEdI^U!Jcz zr;^Y}E?qrFNNDs!oz%|Q%tI3m+xzBew4z`=XqqOvYet=r&~vDq<vLZnthyJVUA-Gy zm?3LZWgsayVp59+8bO<B?Nvggi~gnhc2+chRG+Fno}H=#yXsfB!@@K+HI%^{4;KX0 z8)i#h=^@XfB14s&C*7X=RZoSb@>Xyf?19uXPv;t&BG<H{EAH!0v3nd>$^MsT3a$EM zw4q{^ythdF2`HcT?CSjazUdi<DiwR-3GzYX$np{=y*0~IcGcDO0Eh=u-@_~Mpq2e2 z<%K1|+a6jf)<J4m+^|L!nP_J?u#6kylr4EoNr-T?LpHaYR216fKhHViptXFby-Q90 zFG9drJF2Pq$Ui2cj)ErycVrA6w>nQX;0q7goZ>$RRJk<<;0Ix2P8?5Z)|bYkHIur4 zSNFprvCD8UgPh!eCw-yWrerZBw@)86jOfWZ%b<KanKDgk7Au0rhDJnWK-ABE5_!;J z;xIXiSbjIdDLWc@A_dSeoqI*<<QP3rd*T=C^`k1#W}$&99yq*L6;m)H<Z;}Q6s78h zQ&3P&ID`3l;Q5TW^cB}nc2{^pUH>6`oy`s2Vnw=2M_E@$F=|s&0IFg5Vn#u;NPcEy zw5Tr>4#a{=_i3}mPW3U-+9mbq0tBuKCx1d98-#>AUDs4nKwL@r5YcNilw>W>dx2Fe z$kwa%b73~68kQ?E*qIJYK~Glmnq5WIkcFTi=fP@XWpkyr$;dF+-}j}wzACwz))Sc5 zTnLq>-S8S&Qx>ZsW!#qw3{+_vNFE-JsKK*?3i&GM*H<C{>0=`wdJDU9;@h&9?nf>i zl=LcJxBBA=Z78A(7+5femD85<)W{VlF<2uX7G}{njtW!JPQiI1Kf(hChOxrhEr()9 zjV>H1?n{4mHh6C`^v+ChBZ~%Cu*dp`E3o$;STJ*cv;wN6BF7L5wn}jhuWSfPt-ZcD z8S=4h2@rs{h7~aliB8w3+3*L=0itUpzFDnVg{zm=evAhQg_$To#J95u8Jr<92iP#x zL6Ds(L)v$^g1q?3w56j~G-UPz{K=oLj5P{{8uAR1S1H$Ju@~*CVF{{cVp0|KCVYg5 z5*Ni)K~+uh2BqcEzsV8kQ*7NVfpITez?82_yTS4!5?q)GukaU{#YUBeGBSZxYqSnv zq`+I;-Ux-8y<$!QfQMp?37X~>@#uH{X?&=@u90n*{KTYqWkI3_Lj#~nLAAqDLvBC4 zMXSiw_+}mfjzm^3rJGJF)w{V{EkV3&A`ak|RJzi_0>XRP>yg;iOg&N0)TZ)0Z9F{* z5yG2)<=>&uJvNU(!~8US^7ftwj?`cjq4!CP)jtq4(biRO^$n@C;0Aau?hAX2o<n8q z*oTu?JPc@{VlJn#(UZf0Etg^i4Ze{l!O0WJ-&Id6p`M5xuN0B>As%Zso{9m2k)dSS ztlPuhO}<!ubkIIHBy{4r5u?}?m-O}F_33Vd;eF^p<<5n(9ZCJ2VI@+?U&RMLt(%}q zyYmO@6f-gcVE>?1dB)i)!%4;!?qZle{ln3Z2Dr{Ti9Qo54rvBAhZ$W`M!-{Bqs5HJ z2tVjy$8N=X_-bC7BTu@?vf2gzl*#$PG4WTEURFbKC1M^hh^AU#`TQ_IRCx=ONGv@u zoZf&oow0Lk;dP0C{38Z179dG=zJG)p>Ch#A`2sS=Akq?Cza>4WcagstZ#68-0nAmt z0wbU4>`6;(YAbT;%Y+Rz17RbLYO0lHf_lX!=59uejHoUtm2sA*<`R~s5r_He&Lov5 zK%qA4s(M8dP9z#Rmm!3Y?O9!4@PI3rAsgmLC22w<y6>kKxfHvs;jXh9JY^{onbr0P zK-~bJcT2qHA(owPs^D*cg2_uodpd3G>X|$muZ~IUX612R4~Ho483xi`#fnqmWKzk< zk2pq9*{=;eY%+2kS#c5i*HI_~kCtk*K3CfS@0yi{Yi~R|*yLrzRV~aUKtHT}QEx&Y z?bM|0_)sZbX|mCmeE7UR^!oJd^L1F>_wq=&n63J_P}XcPYowWsFgV+ryCc5U+rjqx z#<xYr#WVo2Io>C*z|^}|_R<3nkEE5|_muJmc%4wEzYZogrrz9%%Vq}}?_vOJ-yCw) z)&h$^z<hUicjiF$NjN|sj7(Jldp4SmkCrCV6Ks%!gI-PE?1>pCYTC(yrVl1H(&E(Y zJYfMj83prBIplU7JYrJZNJTW_C3^{*!g++SwJ@JH2SV(j+GUrLrDf84F-fDtDJd-v zrtFZ=<1tZ7ZWCyzoq>`UvT->kM^XEf?(qHOs+Gl+s|r`o-`RNx8puhm>l|}zA!_ql z!WLk_YODO9GdOf%<O*O4>PzUsWik(cc3s@(tquYlsIqBca8SQA2mgww_Qw^4`Z?a{ zdcL4?AHAj<qk01?fltF=pGY--($Co$`UI0>zX5K^5FAbI(<BJcezYdIcSO>R=dO}| zGV2@}m50J~OyI8Mfh1cpvHCQa!dyL{OjAi!wMN+D_G#BE9GBm=s9OcAs#M@Aw|kWp zE!))NUHZBH=$J+mrB+9`IKad`{8HS$Z^$dbDZ$X#G}v%Pcf%lJvu(;jE*t2a0%?SE z#QZu!-Sj6Rv1|2e@3RAyw<dCm9KPNB<=4}f<I~r}&CT}d!FKb*t?<*q!TH<8)4kJ= zO&FWPXoJ2G5&l8ep_xw2FnY{B&$r1{>dX?H&U$lAL>gx1cJoCnK_i?y1w8JU8sjOv zOj7x>3l&`xt%OKN*^}8RA%+)f>_U)1V#=t1#L@SZ(pjvH=_*cyrTBan+aFp-k2?=7 zD{4*!*nRj-0=hEMMTc~$6BQfKTfyroazwCNQ|*o=A~U#BqZEbP0E7H@UKsUN-RM#A zZfntA=^cp?yPBhJl_@A!O0N+HwCQUVH|IJ@CHWr1`muHFFsx$n<BXNc6__i<ah)eo z)9hfK^B(*}rG{J)M(}@q14-sNGXyiCkemZjRVB&kJHSjw2A&a@)|q?gm2B&+t2FIA z@8mWF<pK=kAY42@4QQr5K+pm_)gGY2H>;u_Rj;31jnxNv+^l<fCKO&4#PjM0te*HO zt;}x1FEYH-dOeqa2@7k(Jb;nzkyCgLc8WLB20OK<t}0wLud7!vdKxPnrJqudMxCe? zKjC&H;POswFNe<#cEhfDABY44W8G7_>HthUM)L7r8yk*oR=vO9uyx{EKD77!+gE%1 zEChc1z7ew6?mt^}?>jn{tP^Y7^WV0<#a2+_)^W&Az^0GR_KEJp+g)`(zkIv-{^iT3 z%g>ht-Y7E&@+#7y{C2qDjW=A;5r%;@Y+kne8{-8LVB7#{6sz3<-Asyk(g97DDx74t z6j5FAu8ylzM~EKmY@a(0UgrpOc$SGH=xBIf*`=!B_ho-$iSyHalh-Y#*}MI=xxOk4 zD+r21j(s@A4)4)6YSx%m$O#tJZfXY3BU}bVk^vRmEa2BqRH@6u)|hg+R9;Cxo)-og zM%B3=uZDwmjmo()_^T@S|G!Dul!S2(<wzj{rm<aI=(-Y|HL9GU7A^q%;4pXRN6jmz zM++W{YxHQ%Jk-SWQ6Bfe;5qNsKMw}djC11(=_|j?D*u5Nb$Bx8dB`>J<+ed<%%F$C z)s~j_YGk0~@y5LtWAuS_Kp%4-+b;yMAApVq6`bUr(~)f~ki$52{Glemjh!^_zmc|` z{*xcj()#0d9bS1D?MZrK=Y>wOa^5Doy1g{Q%0JnPVghzZ3%**K%HtSOL8{-RMKc=5 zj|QBhhpjQRs@cd%wK`?bx=&iB|FhwV0*<CCiM;+H&+XUmmd+Ee&BG=#7}svZ8l94{ ze}8b-nda9HbJ;%P<A+Wv%yz%*`w)Q%9LpbW9yYe3o@_aoN6s-9nRL+jK5IV)OZ_+r z7>m&{kx!7Aaf+0v|2zYAt0`nN*!DU4S59)m(2R6_W&hGy!#!NTTxfVD`PQBEc2*#G zn1a~fdwjLCkN1>!K!%HLt#ex}j%|3B#-lt;3nLz`HTf>$-EIogjL3d`^z)bBY~R{) zWCjQWK#>os%-`xHx&ngPqM7Gf%-vulP6-}Q7E^_Mj<=+h`LMm759wk;xrvlN^4B#- zg3M{jN(Fp$j+gwDv9Yw9`KF2fQcjSpl+%Sg*PPs#4FV^>Grz?=Y`!(QWfr~2NRUa{ z)0oHue=33r05XuLQ%BeWNxUOwOi;0?8;#=j+6pjZT{JS%wDCw6NX94~aJ*}oG~lGE zL{&+z<T=QTda1e=NGMp6P(_1twd%n#fU*%#Pgx{y6_ivYn^dPp%F5>FJaMz&=!v_5 z$tyWlhdof)JgA0wSW!>>{E=4uo`P~&J6Wc_dXn-_3B{}kxyuZmN%BpeN>?wI)s%c0 z(4K^{@Wv$-$`}=324!}2zuG#_n20vn;}XhFV2W)cGId^Diwfc>W`Y<^Lea?;uDJ95 z?*2qv7Y2$^?LV|q^2BqY=d}mH2lpN<iQq3<CgC%6rjQ-4+2r5J(*{JXgf_*I!e>}V zgTyecM{K9V{r3man0o%M+I3Km5!I7L(j~Vb_t4u#jhWMB0sKt8O0M!KD?_rI3D1>4 zUYLR&Pt-uTSjwfXBK=<Hp8omkFTZ~MMel9l`*3+>0&{csaCn}o9Qll?fDyLG4~6{| z*U@r%@7<~Zqm0r(qJFn<5n+a>Q`^xrK3RNJ=GKZj`eTVl!#@@3dlte_?>%TLTjRJ9 z<JOr>wF@2Z9mkQ>B-s2#VlG4RPM868t%eq9)XT!%>=_sk7C2r8KM<f%CFL5$rI^w> zHlYFPE?RJlJSWKu1CvKNe|Oey(UG*zllO_@2~fjTJN-jQQLVp~(V!oV$(s@}v<k(M zbW)=udT#Jonfg^y;71w&*2}J*i$gBf$Z;nL(JYmjR(q$-<divP!fQ&Yr|TLBO?~p# zR-CN8QOOl3AJi<ml1KFQOB;w$OZa0V-~qXSBj(UK(-q7vx=L}^i;<e4+No0*7%(6H z;Q8_n+e&KR`Qww#v3P}iH!s-`rT84hY(-77%qw;@q_A;|2l2T>Kzt;KKsw09YTi@3 zbozWP0v{Zcep+W1yB+tP>{e%}*pA=r`BgT-TII{D28yFPhjnP~Q>UHsj7%D)Kp^&b zZ`RXTQBU)Y+(H=?#fFoTy20gAlaT;_bIT?$*&EXiGXNeOr$8-fj5IO75Fin4#XpZA zQ0kqHMNSlW`sJ6e|NifPY|+%g>%aW-f4O)%7Z1BWyGj817`k;uX-TD!W(YUL3pOyM zgaKHe5fMuvEKV6JdLq9b0jYk?P-sLi3D+@z$<TURvE%6|ipq@Q^&(>&rK^N8?S#X) zn(d`%>0<W~KIqAcSal<-?hX_+SwvEM!}nQQsoeemJbykN0*GACTFKjKQ)jf8>GrV= z>Ato}3jAYgHDbp9kE=Ut(j>VO^PH9YUTZG^W;kOq()4R6Q8Zo1bVr)5^fPs()r=-_ zhO>}^0S9ORy`ieIa?h&L^B(^)yUFP4$oM?mj~_p~uc7W_aymSfUqEZTykR~vi!#Nh z3q#3OHG|U1W`trJL?*`oZk{e!2*<fLc)xiIITyU;PZ8$=L1K7#`q?#ke@c^Av%E)e z_t1v;@Maa4VZB<3i=$vmgql45sK@LBD$7b)6ah-kRd$41P@;(`=c>DURR%lVJ&jsM zao9k7C9oi36el5B%4e^Pb6d=I3TQ>o9n`=ehN%gs#-P+^Ly3E{zXC_&G-AK#MPG~r zf4sZ8y}G!9v(2j(DfvwOsiEfM6YGon;@{n8r)pf?*c!G6aKp@6iy6XYQRpYjo7?4U zIqUhs>7EajST$&4FMdz2W|&f3QK(9rbk7@R0t8327Y<Pdx-3o<n~Bz`!Pb^e)j&2T zoV_MtL#D(qu#cDLIQjAO#mz+zNp0(v^AdSnlOIgH#dj8p*CICV-G>k25a*t2G9g86 zS2`d*n>Yyaz|NJra`-6LsM+K7Sb3P>SF!KB8YDN;<<Fp6UN4`DtnqF9mAK03gitCN z_^qYdyQ1)gm`&}B4q`1Js#B`n9gQ}W2<H)`gsoZkMm|dKB7#Z#&^kd2Te!HDhpq^D z*TF1wn@O7VMiV&vJu4r%`t}K_BDG&@wyUDz@oTlKQGi6+eVEw34SD?JpQ8_GV_>oa z^$Cy@Y6WwWF(BjgXy?*yu)Ru@m|ZLH9xs4;nOL~G_xtfuq}1jBYOqVoR}pX86I=&i z!&>Ro62fR+)><NMRo=tAZQneYb1QB~!k#B<rRI{sl^5l0v=3syOx@8mE^|=2@n&3n zAjg5-J2;A-ZLu}V=kxT3mS;F||CTmsUS4Y`(8@&dV*OK}=dnbFoS9Z<^>=O@bSiiz z*-ZpT3=;1sMO)9wQC(>RY0qwW2;JHJ$Qd7kMtYc*dY(By-ks9!S?Qc-g*NCGh14A| zWvsx_@qrIZ##-l2I*Uq3{;{CZIfPMZB1UK};uA`8trSQwXwW$G7deoK-eY*nJ@S0U z8;kPTBK6B}ypp*hj!lw^A@oj#Cx)Vk+0HXv@zWoVP#B1}mlt1cec=>|Y@`6YJ)|Tx z<Eoa(olCO@llP4Sd4+};yJ|@6f@I`tqF{7*(z=C2aLT{zI4N-%ikmzmSYtHm!qwDK z16*lzYa$WeJ$bI2P$QUAZ$nKnp~7i+G+EN+q2bY~k(t8Gkwv(xwHhS=06+jqL_t)v z*P`!T$zEmC&1Mn7G~8JJu?q~O1w8D*0y60fPi^rpjTJbKbf*#C#ji032o;pt>VI#c z7xF7|Mz&gw7!)hwgj2e{>X1D^m^tb`kf(rbXs{MD%<!6Q5`v}Lxq~ndo7?;hR}b?X zIfgax&PDiHU9F+X!qZGC@ToBq-Ym#moII#VimX{E!hgJKdGUTy=TS0%=}ufJ)K(vG zpo!uL#(3~-lST@(lB<lIZ(b$SXtclOIJo)Pb%**GO}(Pnk*Q(N&|q}PC(f<$y)0b; zXCC{Gyc+`9`uySI>f2}EQCIu%Ei7`l-i@V>b>G@Q)|sXd_T3GO^gmPV_-H>1iql(! zpd0G5ry*lbZ-*r*dK~D)FL-)IAO)J+j_Kc<A=xp$3Pi)X=&Eo4b7fsLo56~4&TLg; zsip!m=%m02Z+j#WB*li7a8KiWiMt(mR+f9knh+dwLRX)U&M&X7g!KB}+9Q}SBW0M{ zy0e5U8Lc~(9EuZUAj}XR?~%++z&z}VouLhtmQR%@f_Dr6RxMeNdVb2OpgdaSp|hdv z4Qdq{<RUQ&t7e*(Feq|$bw%Y|m2IS=L5N8E=mVoCD^|Vy(^$r-OIa70AsZ6v1%Vsz zsN-T#y^uVODrFj;C@Nyln{*FEh-vh!c;m9ExhuWE!9dUDfygbKH4VcN8rsWIGv?%* zT&xga2tyu5x$=5rNLHsPDp8~GLy>ZL>+-Om!{aG&)TFm7(cKtIa4@-o6i0OLeU3pX zS47CTfMz~Y*2S14+}nyxFISn`kMUz~K~8E1naw?+87ge-R>fUPZR`r-%b%Yq04Q2k zoBr>fFWsK{7J+>;S+Sk%Yu}FKCVAT1;$L7BfuT4tj_LRJXQ!uTZgbJ5Px?j|k>4@k zYXK|fm%R?N&tX3t9qWe*t5r%JwY9;LSqj~r-gh_eiJN|qj<j<o{dfA@Co*@9Er5(V znozUmAoV;IP13DQ)2uS5Dve@!HvYZ3lq3%(a9$LHNgbylW;%pJ(Jpy!PHDDnC4x!2 z7fRQw7L9mbb`T)t+QgT=t^;LG&VjRr$*r$yeP^Ezv`R@n64YsTuo;u<53s$dPgiRu z02#ix$sd!zWh>VJQr0ywT&!HJD7$2o$O4BVc#2?T9883|VvtvQK#Gl!#D^iEdz+dK zl#fd69JMA{aDWk=JBuXgc7tfC8b}aZxCK3V>fR;TPY!b%{tL|&;)o)WMhXYFQb!c! zR42!r>WlzOK}%dfeEFwg{Q-Jd)WcHdQa4S50I?5jW6eM`lFE{g*-I_^99rWF!>YoJ zfdW>Dhf78-r`N!Orm1QOrvk6KkFtd0VCh~YI19c#%a9NyBOV~13`txuIZF9G0OHVp zbtO>42XLPHNS<Bgtg*EtfLI8_5!?mju@$WZ%wuOVS|LmZ?Jz@z)1%{?-Rt)su0Hy- zg)<6m5)vWre7bY)VeTlbbW%N_1PK7vQbQeE1Y{2z9MoQu2%NFrV8fD7$cyq?Tf4Vf z=o@-uZR}D~ZR!=a`0orllVdg)HaFpG#OSi^ToMZ*m@80~5(BV)7BS@zxE4cQRvE&a zk=c-ah~HrMjOuBlGBJmxOY1UmsF%&66g6TtMWejnWj^Fl^kKzCvcJt*0jn%+q1qZt zsTc*ap54fMtoG`aKNui&!k(iUTL*xwalAukK@&FnkDP?vbZY#8#(2c!F5Xkc8rgWb zU&|GbvX`iy=})DgevaYYNE$SrN`XlOt3H*V(yT;HNiI~OE=ucBw_HK<Ksafb!U{DH z(m`-X4K<-+QteSmLXKu$k4%YLJT1f;Q;5P?Z8q`1`98f%Qv8cdCVSY5PL(t(;Yi&% z2ZL`Qq=Md6BT$N@UYtuk2sVVxjgt`5tY(bH2pRX1Xp|>2fLbOORO2M!`_InK$=a<M ze9uavrn{q-7$>7K-V&b$k6escNn2NChemO=M;4$jUep&C7D5rO&Mu-@L)tWcDoJ7> zldcv2w!5w3C1-GGKtBg2)B!O_D=sWLkw*$KY}TwDVp39E<xB<$mc*=$6b4O-&Fv|b z9ijC{x@?ozf80H^7j6HC%j>O!4&xP2aw?9laco(A-a-w`6zX!6Eq_f!eKcpk*;ddT zMg=_H9DQ`q>49+?K!|wU^C1Kc7bo7|`@jJ-_$nmT|F((7T5GGAiT}}yqfh!xd!J9v zj}`L8_dXFlo8xAMun(Q+J?16y+BQ-fEW^<ZY!XilOrp|S$5qTePs<QFrTP?_ay4Cy zqsAw)0E80N%)VaX#URpX4tYtGMG$sJCGi%9Xr<X;J0AK<uzARvJHr7~<n-*t&fXu5 zMQ~%(h}F~g@M)Hh&W(@D&S!UGW+yr31?vIjaY!=B+3`^i-!XAvEYCi3HtUX*!pc$S zWC_V5*Q|4Bj-%<58xl`RqQkr;Gsq?4oq7TFbzVn9HJz^EOdiN&zer@Pn9(Y5Xad3W zd2(<RCoxOTDbtF_?a)Xku`P|rOqGocX7Q1+(=)_fanR_O#V=RaVx)nbOMuKgTa$AI zLsrj1faD7GjcM=h>v^~|aP4OvW8LsA>!U7in{I*NN^UWuHI?b(ti2W&!`R4v%a7{P zxD;#b!q^%VM`x&kVM?#+WlbRDnc$Y2p-Kiv&k&lvj^WR!jtNk)lMZF<DDWA-1;0f= zvL!`hM71;ZoEXS<vzR@e_tBH*IRY`hw48WR8$4BTOtc3G0bWjz*{UQaxI@HEhW5#| zgVcYjX|#fy&@@LD&IK%mwlyGk*^bO&LW){^KP>`{D1xn)Ou{Vgb27%A549#H`Z2cR z8vTytNY+9H=JT#&A6P+kp#<Y3Op1qkgGPQD8tObqPLi;3^(|nG4z&qkmSDATqo}O$ zGxYCEmfVq57Io_S_9u;UdUO7ns)TX9fD}FL!MiAt-x|S1H=o#L)&WU6iv@Q2p85?# zA=2!_b`>||P1T|1K5hik2JtutQbP`piKN-7nNa;)yuqk2N^R>yGF9tP7V%d-#<vDT zFFN|n1t$n2=;9_3ifeNL<?=pI(=$wYidr(8o?RFd{;n3Qc5vke5H<}E^or(&?(d8@ z)^C*GwSe=11p=;OYtp--K>FH@7dcAK5~41z)t>DBT&M;UK>;%-&mbbGdTc`db0%Qh zpnPQ+k--6lJ<IGS-Q{@&CmK9?V5Oy@MUu&gl{p;h%mWQZqct^At;(}N5Dd#9hccce zR>umJ<@AqICAro2gl-TRzfm6dr}RhQo5pDUuqS>*n#I8lbvDoxS*7MaxJ|yQm`1us z=d3{enN`;Y8$YPuL>h{({E<nbvMLfJgHw;d%fPk7|7ic<^n}4km#H^Dh-w8Fy_MZo zJ?@slw!<2;nKG(aJoVTF4;*p>OxZ==tp!hzg9#+?paD!`t!7PbZyz^=)(`yQ-tpe~ z^Wz5G)O&yJQ~-1>#>|2>@;3_G;5b7ub<&06=XUPY8bGZAQ=hnfV!z_Kx~alo!(y2s zamVm9`nTu*Zq7iDJ^~IY90J(%Q=ClfNr|7nyJ3Ki7;x)i90a(t(9x#TPTvr=nBLg) z0S8~Z7j(2ZlBJ5Tjr=2iL?2J37WEE0@^v26D2sFtNouiuo@!;&q9xfQBxO^iW=?+h zl>rHo*g1_25P1;UU7|2py5ccSyt>E@I#6T)C&v0yp;G2rfnK&jN@jlvTUfdLre``F z5LvjbibT|Ys%3JmHm=7FSZ&fqC@~XqF08;$P^JpGJ$MD%qLR^tp<nK|Oyh@CR|{QI zh0tWevtlkF)UmP-WuwBTu(#P9pd*Joff&VjsyIC#6lDOdpK~sj%%f<VB1$oFkO6~x zh$28FRn5~T<`^=46$MxO&|rWJjlC}#$#ke?u;{j)7h($~iBGsm4=b*c2jDfhcC7%U zd09N)J2*SO`EaAvjZlmyhL5qBLL#R+Y#$Y*&BtJMS~B&@$|#Z>Qw4tC)ot>j7*&|n z&6qO*E#$V0E=DbUNVdsOBTL7p2XY*q?md5V=EJs5Y^w2Dq(p2r%Hulf1)Vqu`xm_8 zroFXBgY8bo8aFmmtPkNl6cRE^G8}z1EYDe_O%raV>U6c@%P!l#h~<t=cacktDn=xW zV($a%dpZb`SwIZX+*tu<Vx1ly`U)r)eRy;rY~8xMb%^csCgMBbGADryS<Ym`J`y0A zws2@`5B+K*dVBc!wFo5zCg9+U6wmI7DB`0}=C|f(9a&3tKW=)G;L8k?mES9+)GI$e zN>^kltqd+!R12#M*1Gg9$en1I@k}!_p+=*%q-qycry&e8fSngPmr|guhRBwjfID>o zK9}T;)mZ4Q%<C?c1E9{cl69U_T|a$J1^7n8v-a^a%csnM%530@pOIjZek?)t!JwW5 zT8*Vp0!d9(;B)OxS~nO2FQC9Ji$!>_AuGnDpNjia7u*vAH*|`*Moeg<JQ^Kl!5YJZ zpKz1nuDBNfECP7Jf^9NC5^MdGdF5B+>5@X>r`<)&eqyYfq6FPG`s<5p#|{c?TAgi> zXs0e;yFzEX4LA!p2})~gK{B*Slpl}$ABKT7c?!Ec55^Y{_es_ATgE{8!8Ag0v~&8( zLL=YB-oD?u=ecn0!_^JNK!chvdrE{c=~Cwp-!z5J>PLR!)Bo~CF6bd$BmzEKk@=Y- zskat6CkCq<G!Dv?Rp*`*L$)x0?A=}80HSjUAaP`zYNO|o5FSf3fF_QuJv!Ly(CO_@ zr)S3|t|a2~Ff&9nL61A+CpwQ(`M9CjVj_|aLkTVfRxSQ)ba$`~;mJ%CWw!Y!TF9L5 zi0IgaYjlREV886_^j6D7t-!hx=A9<z4M!RO1LO&2)z5`ZYR8fSG$(&`+MQ}QrboN` zk$s4~HLX75MjBNo#a%@#W_mQMDR6yN<kfVE1L9KAN)NF@ssv2Rx)weX*QGwKdHhw# zPFXkpw$Y#jd2`96ov>V*ywCz}Rr!=SIQ(>55f1vv0C%JX#B0V($|}36_Z-G4ZXA{9 z0a-{LVPZ!02%%Epfgp>YsErJIaYWTmNecR3F8?!s0G0meZ#^uWWst5FPbq$OHOFMS zFPY~HlJe=f?;jf|+SemtPq-SZf`m{6L~~eQcMeStbySkIBF5;ru!2ZJrgJ{Bl8w_R zn~yaZ6>}Li&=-zN#)g_XoRuesCkH#n2l|;OXD8I<gFXC6R(o3%8D^xa0vv@l>4KJW zaCnR+#1R6H3)Mhl%U&Y@Ps>okQTKTWtJaC%W`qJMfvHPqTqED}Abe2#Ml8&#&UvCe zXpB#g$hGDd(nCbh)sM*Npv^S(NT_B9;>po2U&8<$8dv2Epi&QcqJhP}FdJr#sr$L? zj%vv~$d@Np#oS@^V@?>N03t3qUYVcR>LL182|-V*T|==3sNsquG6*GtKUXv!sg{C_ z(;_eQV0yiZvj{8Cl*krWrhXY5!JBHv5H#E|vLO-aR0r%r7y^p86J8c!VdAa)>lNUB zy8LvP0cz5oGOY9_lNKDmSCZT^DX_?=ZV*)F=K=?V)fkA6q$i@V9x_KV<XSFTwpJhH zWy51$iMkSl)p!k5O6Xi;@^Y1RAGCw#k~;yM_AI>xi4hH3i8+*5=mJFQli5)uo1QWg z`#{Sw5D}WyW1|A1p!eC1!~^JDz6UGbc71d1<k&gfPJsg4l_gbc!|@ptDRuLZ*N`&d z@EKTMWn793IE_{^79me?rN(BQNul9Tk6dOI>L*)SQ3ui)R|kiO+_{4z?O`=0W#&l; zpP*|-Wa!&ajFTk~v|YO>Acj#SMrB&3DLTN>Oq;a?Gijh#roJcGDn86GA;&a73UqBk zDs{95(4r8#i&})B%gmECajqLM8IurX&xWAojE5VGdU1aG@!8?)S1(DGu-9rXcv@9Q zKIKB6I5M1YtG=PWpkYI$5i@B4k6oLKPaHPl4KNs**_tADOYRX%&%{-!N$#fqW*FR+ zV$>6leSW$#wG;+xECYuFl-#AeJghvG6#Rr?_5x$^z)(f;pB8U|Z6h8lM2;)6sdtJb zQECAKwiO@Q&z<-&0S>FX>e^_T=FPf}Fh|m%Oj#3*PJUc)7CF3?KI98-{#Nzqs)8P- zJrd>PD<Gj^#SC*vUk|8bWeUnp1Dn^;TxDcvRD;Zp-`5QJVcF!Hd6y9>d0f&3sECi* z3+9MZm?+*#nUxw{p%`RM!%6KS2+QRn`KTr|%J2xMzkbHap{bwRwFoL@v5FyqG3AmK zi&&L}JOwo!W2t_hek6mL8e>&`oiQ!)zkm9EQAe!`<Er)P{AkD_rp7j%U;&nj6v|uk zVXTCc=9GwPYf!e@rRp_04Z*r)!%OepUe*Qv{PFz!lxCVgfRlNkx*<TJSf~Qw9GRW# z>spO4mRHdx(j^<94gGR-%#4pr&C&}bwrjz)iQjM+#TubXtN^{ZxWKcM9QY^0Q6d7t zJi5iyS+9#~8fY9=D1p$j@ze4+RL?iie9ds*(XRX3`xaDpS_X-v3^_3n60z<}C*3_` z-KOiS0T5e)r!ue?`=)8#LbZF@u#YSeNTTJL9<G93LCLdAX7w)JaF@qV8C+f|zGT3& z%<8Ji56wUKvm*ieMj>f&DZ6TyEn<X*SIEF`&o_Rix>acdkB?J0Jx!lNF%};XIGX@+ z0kSTM3aSMHo?QzQJ6=7TTo_R;TpH_S5-S@)z}({vPo+F90&cYpQ9Pp|pjy5v^DMFZ ztO$dQ-<t}T3(7%uiI5Q=k>vpy5+HbRXL10PBAba*>Y+wIAvgbGoA&!HfNV7!Et$;n zL)TA}VBXRe8NKRxGI;5EaTJc~dcs`UK_UMvk0wCI=*vh_Qv&$pg=`vRR6-DWaI}9h z{(Pm93Poq=KK<df2Y3^b#S}bq&e8NNMcL!8tmI%{DEIECZSy=6tkR2CCGm)khE&`P zuz-X>?b>xC7{0#|ZPM=dmzOB}`R;0oCN*)cGo8Usm60{pL|Nd}$17^i*^ARmKnLTr z(-j(>>E5gjWo=AY!)NEhtl3Oftema0iW=A?10crD-@ktkXU}GJL60mh5cB$tgBW|G zuEymgf`C-&)#RfypEW${6Y?$4m;rVl)1Ae%Gw#~a9O^P4=VHdtYPhNYk%X*DJoI9G z@(^765*}O$CHuEo(0%JVK3&~^kVpgFm1+@%6FDZJMKsok!D1!QScWCi;6#~m>7G5f zt5<P()>|kc9j}b4y2=R8l!{@<i!9{Q$n?TiPWcvOpcVw4S?y$E!32DC^_EaDDqv|% zV_s;^8UN&IYa`my6_$ZA(m7>uZj?`#UYDbZpoK6U0zVyCqUndn2=~~SF?{2hr(p{@ zZ`Xqsc*u0l+kp1C9O=enN?h&4d0G&oixMNBbZqh-K^BC8^$2`0(FWkbD!5B>f`(-H zk;lan*o03=1a2<bTxhyb^~$xL*Q+TLkfMCdQHoI*XzFOom!a9u_buzEes=KK7d})| z1qjS2q1)zQRqKaS>DXn<Dr_b)IGv!hrB6t2Ku1E63{55P(@jWyZTB<SYge3kIA>)z zmCAZ7qsbSBRQM4`OzvKPxVyNx1QG8ctU1@$mkz!;K0S6ocJfhNQkTkS?|sS0mqbJ^ zIYU>m0I*m;BfuF_Mw$ZuMBYUc<|x)El|jhNHe)>Y+R1PfZ)k)3xp-)6?C4UibHpsw zhK1hr(dqI1mV=}@;g;7&i(zz~s^JbDs3DfikHAm^KjmDQc-~waw;apXwepX8z#<-E zgjdp4A-;pyaHdzXLCgiNpE4{-kfPLF|3x$|4>$uMO_pKqe4w3G8-pUlN?)0SKGw{= z>PG)PdvHln>B<1CXNihKBdJHppHwU<MX0bEAgiTXreL92wTzLg4>zrvRsblP*(A^l z?^aFfR>rd&9)Nqgq&(_s5qyn~KyGD|*&~Hs!~LL32B%Ju(Tyfr%2&1x_4CdWr3QI` zEI2i9bankyDzV~mW_|gPmsyHHGAJt=u>l<`flJTLxfafb*>JmvJ_0TEo>7Y;%c5|_ zb5}z9Q1?LeP7cK-4<GI?-)7qD+_Ln<K=v8MGVMZz#UB0Rk4(Qhpw7|^tAzXH^uxoI z4T12BNMi69$Wrchri@1@kzbbDxvi`Q4MTeCoM#nxbH#d@Z{NPxx`i-<YgfK_51XA} zl`XItP{#c|noO%;xc}lbE6&)NgJUb0$gysK^f@5PS*(sESUxm|+-Gv%g0XF$CR(-F z%eGzsxt;bU&hkcuIA;>1Sh4q<r>DP(v@Dx0rWMsWTQ0i6Py8M8vHWD=95KR_jmV;> zABws#&ZSxwef~*JKzsLi`GsK9BP%qhIX}A!|3-L*sKessr)w?y<qh4*T@bSz1z|{$ zzy<>y^d;<2iZqjg#f#wegsO6?Q^8!TS|A3>Muz1_z?A`H>(t!&Ufmn7{7m{Yc`dVJ zwc+NPTBZliU=Mv35M>tv{EF%X7wG3dMHbFuDC)30x+#U{S{Q($wq-mdOI-KOLreUk z%u`}biWF;+$FyXiNtr6iGhNf^i~kb+7(6s!=9xx+rfO^(mJV}~6Jyrz;E}s_%dRU? zsLDZaA?AhZCapYAiGxL8HYGhF$=HRm4Y6pE9Oe@x*pZ`RdY7Wy-}?wXee^(leB*#1 zUftfP#iWgerWP5S+Dx?Qy)z!|<Gr#Gfp#T;n21uXD;&G7l=w%bDC`&w3}>Qi>vhwn z*(GG%`aDY{bG8nM98=u}|Lf~p=T5OF=Vxbq0%z7{q9m<!DF_g)R4rGJ<Gis-VR-f7 z+Qe=aWG=O9d)Sd}{sB8EyH`e(HYzt#0Yd}GUZUwxRj+BxIfbCZsD+5uJtYb%IXKZN z6BE|+B()?@sl{JtG=eZZ_uSL?kc0v<Y0XcUl;KH#kZUf6Z_LD4R#{h~2O>IcO0r#k zRt(G;|MzocUJo*m1c*t5Bp@rZpI*5yxDw~pSb=5Z%Dd5Cc`AhllhWg(|6eJC&!ajG zD8R{o@RNrMre8FYzEI|n9NlIXr!R{k3<~430Iq_7xB&Nabb5ZPT&9Htpspv{tn^h_ z23HKgbb_<_$;PryWf3&FgVo*aXAI`O0ULPZ=r9Wb%RN`fjS0v+4#y;i%^1j)uk^W= z9n$J*9_7ahZxX(_gdW)E5jjY_2N_4|$|e!rG{A#D#qPNSzSgi$WYUW<6k0knXjI4C z<Yi_^2y5s^m94i)$S2%2OJh@>?c(<UibWqTt}fnRUfueZ%<S7z_2^-7j*B)`J(MCr z@%D&4${<JH7&5|gXt?CduRhAO@cXutnr(I1KlariE4H?Gj?a!83L+FfyJd@#&k9BJ z=62wmq0ABqnLn~OI6j<9%{;ig?aw?^rS8{bjg=p&jdT?J8yyBfud+qvI$Ub&NOPNn zeQN$tw_T;^W?`7{J>=)|B@z%K!Z3G&&!sSBfWX3GJ^cK>uv#hQjK7gh%7)cb8tz`A zty;pqwxp|*tsJWs_i3nGjF|UzeV=exj-%yT#S29yb9oq*uHGCwPE8e=z@bob_*4ZP zkjKyUYGK9r5?W9t!fs(O8PZZ>D%*mvs+^x0k%*?jkK9=}ubf##mml5_+yt8OmIB^t z_QFicf~)1lg-gjElUAOegI>?>L#c5u$TWcpOSkg7uiDvv7fp$#gQx}~r3M+D@~Zz= z15mJ#4GE$#tP1zS?UB+EH~0&A&revX3w&?*aAB%ff=PeVUv~!mqw`q~6krQ?bS4Fi zx1a9b<;^TCvVza&L)W~%!5C4_hxZ@s;-OuZ+B-7EzP}&eUx+(}-x4tlf)oHMJ=cox zY#*zZ8MWHBa$llWeDcA&`oIm!3Gu}xJKXQGJ2tM&por7z_Flbwar*rH<;&-tb85=S zS|w|DbZ31B^l%eBX|D!qn=>P|-r@<vM$uttf(SJ^FBb)th8tiifTW3p!TY(P1JaO+ zLL|I1bE_vpL+Y#{!wqxC);L?w!_m=!51aWEuzmByQC-T7l}xNvn!pTiJ!#)Wo2kU& z)DypQ3Bwwt2EqP%JB*8!o}*!wy_`_#kDsJ}tbGNhh&%Y9KOND9Ox9?*)+x1KDGSaj zwd&dcOxKEmM=+}ZzME{Lx1Lu9r98U;Uk~nKIyCQDh&rGa8q!Ik=Vt$F)MgaTb5V{l z#Ya$b#?65yKOnHp-!7f@8tPs|^r3=o3?!Z^F6U4!;qy?JFbVKD|J1$F^RoHpN=*|2 zNUKcx%;x(W!>FYY0fPOWOBF6{=>8M)yz^^wfjaB0w57zz6b>38Tmw>1uXbV=5OR2+ z8w3V9!v>iKFI5oEew4pIgb*P~*QD#IKBJ{NoOT1$gB`oDS~dZW^5H3V-MaaB_0Bnr zj&^(aaCs&4DP(r+qQPFvkIVOQ@4;Rp;dc9NS=ctLI1eI<X@;J^fvrMTJuoOLVtmR> zPYa;xq^tb%;n~sY`RSW4UwSw=JNRtJi(UC$IqD)<tra_)b7p0%rko{bZF>?P?Cm=6 zRg{2Kl^7G3bA6N~R%AI6Yzl*d=r~&=(H7_?KVpFl^>3rA7{fUseK)ih^J+N|E!1W? zU8zY`l1^2C*_4}fZ6cyjh_EOyUGd@O0`}9r=F3!!wwde!-|LL`2=S^xiU;?M!<a*F zSBgZ>fG7x+pR2mWigcljl7k^vm-sDh*${aMvf)LgRvGz5P~9bH{$vBEy0Cj;I5kRB zSJkbzgrv#_XL7f2^K+#j2^y9g^4gkfsS3PNMJk$=jwhe59ZhURaX?FfMDuTBNMw_H z8m6!xPzdH@BK1Z}XiRE<yiaYJ>Z~;xb7Xs?Kr<Ykn_WZVc$kS&VqF0oMyp1-gg#g` zRV%|FwrFIGpMq67Xt&OIWyE9My_&u9XiRGW<-`eTdGWDX{AsxmBXrA9eb6;Qg)<f* zK%PT8IX=1lOf7F)AJk`jV!vSU^!)5kfBZqq8&8@b9IF_j>nr=$ILRb7ft>MJ6?m(D zo3;-2k5p^79Z9s=_Tb3S^&E2r)%(s#)VF@VYvu1DenIY#(jV_1TLat|dbf_AA6-6t z&|@VQd`Zr{8DNJpHx6>=Xsi1N9a?IIW?Z<zFq1-v7nUxTNo&)C02EHsR4c1^Qv-;I ze%~3TG7intnYz=+-oCMWE2``B%G#Pb17=&7mu9ecj!qA3RHG|s&ju+rE*(9hgIbr6 zX0<@{JD1;;o=uATFillS7e<M<k<mjmH?Pg%H!)MUSq~QWNGcjyBD4k(AgKy0o=WQ( zd62=iq}s!Jr54Z4&NXO7te3ia8D7A9i;uK!h6`YeY_0c4aWFuZO=f6BoVh&s=?V(& zw`sIc3u^|GY=KhJAw^2PnvBv$1lJD@m>wL;O%>xJ)vdZH^J(XQ`S1Tn>Sa}@7~F4T zU|zMo1Yd@jHD#<<a4mxoAX*!wRzFgn{&CU;S(-9NB9~%MS!;Umtf4%)=!dO*<iLQ1 zpE0FB%cO1mPB`|)zucp?F&>O&n7ZbGwO$q?G#M>>TjM6`W;D=cQ32Jg0tP?PbRLqX z0!?8W5JImW?Expf3fKioD5YA$h$uF`wNPk>r6lI|8rWIakdK3cA!HrJ$=TV>-Hkos z%*yrkm7y4eRuQdOvd*t%y^Rne<X9~Ti+@j#kKtw=pzW!?xB!(lr|);Bsxu;d5PtvE zs)e*hjB7CY)$5lpUp+TwclJVw-REyk&R(7Do$hWQ*#^D6f6SI!BYdMGEVC|?>~PrH z0>J%k%llcN!-JzHaFGLRv^8xr+`wU4PLRihTk4f#K}tIUe80EA4JEZm2I+dwhueo5 z#b9EXh@r#ioZUXFkvovtVTili2S+>S&rfGgzGFZI=m$r~6j&MEYuZ6RTMCk6#RKHu zhYT}HZIW>k(yVxkWT7N7p(I$`NPCI`+fH3JibE`0p;94JOi7<fwQ+wtC`HAHIyfw8 zUqZy#8LT2ahesy}p>p!7T_BU3)=-gW+SiiLPb_K+DnvsCU7z*bJ&;nP20S9LMWZc> zYz)E?8FGb^S-@=Ij3j523`_vEkMEZKW=~l)Tf|6Xr+`fC(zb!@0y<k;tqAdOErmZi zKJwXHz^7^iNL;8*XyTQj>3{Rz{cG<u4>f(~1*@P%;&2YEh)4mlg(Z##duB%y1UWsU z9B<~`RFg(Y9;;E;w6S<f=yiX~?jH#QkV;FI)7_u$n`_du)>9;nD~OG`GyLE#BPF4< z9tJx`FA@xZRjT&QTiGic3Ftu%h!Al<_+mEvqlNpe&szOB*cx!EV8T-9ISz#b#7>>b zlapf|Q9V!epfDChMkxR7K07;ie(*WI`h_MfzgC~yki$Ag(f~rv2BQy50O=a0N_3#3 zCNN-k%cqL>5BT18`S7vFw#A98De4L7;`JN{Xuyp5#QRJ`n_gp-Z)$bs2GW~+8iX4C zMlT%H!M^g5gy|EJ)a=pFo_u3PaX6crFL5X3lo+Y(qiFAYd>{U41UhRBA=d+cuwaA; z!kzD#lf+GTk3ls&MzLERx!M015Q77Z*&M8{BFqrHvvf%ps?0w<y)fHyJYVl|$5imX zJ-p@RsTu!744S>3|GT^5In;;)B*7#vIpt(8r6rc^vA38s_svX9ElO@D7E;8z!2Om| zU?`x<dH?iGFVNFlZ$`#2P6gFHICRUd&1j`;b~g;$H;aEl%-2QLm#ZUc;MGm#ibG)J zIebRELz$MOSfWItt{Lf9u2LV$axQT)%*ZcT1sjYsY-)I_0u^_cGMk5`?93<X6)W{B zlvf_|AZHAzVpMIqW8ioWwq|Lmf1x#wefn3y_y6PdRBu$C3$Ydg$s$8O3uU}Da7s_S zl1?ktqFN=S#M5cUR8*b*<+!6@-aA*~uhFA}Jzt$xlocRCu&8(g_YudADZ2FT$3Ka6 zJ~=oUy~U92ol7RzSi9S^!Rne7FNdr<6}`T-<jBP$*NV(wTgDb{=_&)x9+LV@d8-PK zkDXU+$vaN(eDTHWmQ1*|KOY$<vk>B7w;jgn@fj0M%Ss`?n{X}-fQetQyS7h=<8Ywl zeJeAKKzBEe^lT27NE#Guc{=O>QoT}Q<A#Tg2WQu`473?FC)IZ3*3>qN;2Frew}^wm zIblJjrNAb|&bI8d=Z~O+%#rTy7N@Lpnu0_`avW0WNbuwO1iwdifmce5f(6n_9$rBC zF)3RteY#4Sm&uiG$SJV0t~+A#K<(?WlsX-gCkr~$jSD8`x>QHlYnYgT6fv8-dyXg) zNg;q&$e&yd4ihJ2Kafv~3xuZ!ZG*d?gq+ZLAUoL-1OsS73C{~#%^C?!<VOq()4bC5 zbq#j)W5&XzTiy<`)h>_X$sBi|4u~g9$UPJxvV}8772BbX8_}`K2n~p<0UPW`Im<Q= z?kEks6c<Xn69~!iV19b0Nedxw!7XKTty++MLmJ3<>++z8d#DD@-^ejGp#^kk#`NH; zXVur7UZ#j>3jDfH`_-;p*6t+=E&$yZ3J5@MWp?Qqz{J8_zc|r{`|G3g)0SI1$fbSQ zx5t+F?eAT+_3z>E{KSqP=gT}?igfttE-<Zd&fV)87ZvM9BuKzbRL$WCfgb3)Z9T1* zvgPLPp3s{su9r$PjF9O>PlzQ<VtI1t1X$DZ?$5S;kTWOPOw5g=Hsa4ZL(95|J=-J- zIMo^ly3o)-8q2OK_N-MP>~+RqXrR1dvv>`D5uNV6BkDRj+9A(|*sLwVh3N(f?)hvM zn7kBGKFTy_(qaebVIx%-ViE+*Zb*S|nPhGmKIBlv9z-^HI?`FRi4QZw>BRZlN8WAP z0D>apq!-h=gCKqNl9Lm^QDS*EP2r`qc`90E=6z-wP+B0-J<Mkkaiz$!8I&7&QJk10 zZ1u}lrD|BnbeP6Me%>ZRfP<s&R59&O07yW$ziPR3^vmnQPKHS@IFd(oh)jQwpQlkw zC6lMfV|vR%G{%~Vo80KGWjVL>2m_Q<s<%t)a;AWJ?e9E?wF^Qrp~(7KD?(3Nn0Z5I zFt<`=46~nI(QZ*ZNE;X_+FT28vBQ`^X{ZqRN*SD}azAV51h}JonPoiG0Pky#x1+kH zE1Ih#OFBY*mDFG^<af6Z335_aT~U+erW(GTAzr=y<J+67yFGojVVE<;gnk$rtxdw| z5NpCN!<m+;^w6e`t!q;vEkAb@k{AI!_$i?gPb<3Rvw4@Is|b!IHUnaiAj{C#o?UTA z{$z*{(y@{xm~1`L8dIDxG+a{Sgd@}kotL;EevxlYHVF;SaZ3JTcJjhXdxzBa+%_%U z_%G_!`<;P54X?W%HDJyWu_kn=jL|n%=aWECLTjB_dGqkfj{l?${aW5@kCTb0dS$pU z0un=}s`|bDS6wD+hHd0gANmJ=b+|XCe5$L3YiJR)>_prxZw^!6zz;?VJzFz3a{=wd z$lNC(#P?COgeFK7l8NgW2!|rg0u!%}k5BC@P-<10Tbq6MxDr+)x2nq5C!UGzq=%}D zVdn+CP=($zBsEfF;LC=y@}PMu6vG9SF|&)_o`VI|){2)sKIZmPlcqz5m0C)l;-<ih zHz=!IF<jKs#kzw6oQp`7fniQnHnssc2&FAkUsXO{5oIZvcSEd-d(cuvrsY4SE4gU# zn7&>ulepj~ds9pNm>TIV#KL##bw`fTm@%AVy;PbJOTOC2o5h%W@R6#5IzjqkPStoY zHT!AnF2~a5DOTQY8-1bsz87H3W$W3iSFgVL{hvCj&zC>w?e4RK^Hb-Yn~d2%Jcf-r z_c<YFBU@?gAaaMV0p90G!2jrsa>F0>LB_VArh40OLsRh@HXRyfR_BwCloXroI`ipN z<&I%y6C9i&N137`Yr-uuH+PH?BBUaX{E(77UNfliVDI`)z>NJ3rRb0|$dorlWIs}@ z)Py_>H_#^~Cp{Zl$5sM?r5;AmS-k{GF;zslETK_V<3^^gTOqc8a_Ce+mWNn1@av3A zr)oK~tTE>X{Fw(zs{u@gzOe;pp0%ASrx1_!8n)`iVs%L-lUbSht``>KW*nSr3T3Bc z_N*XZq+RP-EhD{&@jBJ%$urB~TCF2dIcH{sv)wieeYB)YDV4BU-ph;}>UAwKr%=pI zI)!58%%#I*A+Mk!Yr!LE(wV2#t6qV(4CVKKM6N}iLTUPg@-v}9Rl({LL?s#cRJ@ZL zBgZBIgeb){$@%0T0|_FjO)57RgqFi(%@kkm(H||Spt@ZiR7;FJtF1RvoNYwZF(kD= zDV)p8;Latv7s}R{5*0>{8WT&9uTl%7`_CT85@Fi#W7RT&h7#;oxFQqC;ggj2pGV9V z^T6E_??)Vn^0uz5#ZrdxNSU?!mf*VVN3m}3;_Zbo8CXfN=@Z*soMfv2c~I8iaQFV> z_1>-BfOueGD%UDzPipl<S1s=Rd0d!=-rwB9geHg!9UyL~8IV?Y2-sbaWmX1v&DRgl z3g=+*wFyRXSmAD;YO7a1LTpG@KiaqcI+gLZ!zPsgh2{uPZ_%2&gkkNc{4^^8iYhr$ zG{-#SOXgx&a_utaOq1%#cUFr@1g9r+96s&0d;Z0Xy^|wrE*KOGGf0HV6Nm*UQZJ~9 znc*|U0DUY@>JeIVf$6(?!*r;14Jz;>I#dVt4H`|E#K1+KaosKXM~*tGNuGbD%#UF{ zp^9Z7F8FCp+5Ak4#JR#EZVXKFJ{To_jX?sek{PdBr~oT7id6w1qt64xXS+AH!yG0# z6{J*4>%ANFa>*aFR36Q9HyWpDRAoU^QA4K8XmLX9MY~O-WJ@__TuN@p@wqmhq73zL z4atg;Jh&Fbh2pwL;z#oX3D54T^!BNUJbrems*N`J4gbrXEnrOMTEN|hgOfWn0gOp5 za9ptRZrxWwKV34Er~v+{27JwwV-A&P>0=ZUFDXZz>W+>c5bp5cz}i}bLQ^h|hOG9Q z#hS|PT*b>zuim`5e0y=@s1p&&v#p~~XLxMA6vJjAL=&@osUta&*_edoRniLld}HK} zyUC=J;uNf~kgjIMX6z|<T2HtAXb-+qazONEq|utkHZv#jBZ3<dQ5+;l8v43s6*x@x z9K}q<-Q62^zVcbxXFd<jf!|veBEn_nlLpx2yPW3Ylnnj|{i_Sjiqud@rXq9XvP|2j z%sT$qq#$BCjz&<&SZGHIY;s#3gRI+khp!G_zBzyMm%lhTMTWi0i+6?IJM7!FLv8V6 zF}B)0siI(mx)*tlMy1T^)Gl{ia9?IOF(>G=)ETpI)+<-V=28S$icwilqvzg;fY4Za zwf!VxQI%g^#d|fyX|6{n7>J49zkR0-Adoi{K{uuSBsC#BesY9y?{=nM)eBCv8(k>F zAhIcC3}XCZ-}Wn1$=JzBT(t|!VBP<Z*VNE3Rp;RD9b``#*`(Ef#VaoAE!)n&{a63P zGz}?R7qRr!3*fX|1@pG?s)(zo1}MlB)PD%wMHfZ1ED2LYQgj@SRdaDT9Z`ih%ixt$ z4{3-pb;W>H?^B`_*U+V=u54Pa9#~0ViR-~V0))dTeKImpn6`MV@e?o)l8HsmrWyfJ zf?*2+Eg@AF$M-dA{)8-Jq2r%?y<_Y0!=({rvjv^|w!3S#5Gk6}6P<oc%FRh8XCMQr zqm}b$h?anu?S#MnGtn8l5uU9`d-!<d)NoUfeJLy93@3VWY$VBtHLbz$U61USCYx-; zg_^Hlpr6LDIl|YD_*pPxm7x%Q6w-=@XBJMIsev1VG-T0EXWJDdTmDGflZ559DeUgP zF|FcXo89|jnMrRX`Do<4PW-mfv<|+}KnPgLc>Q2{@%G^S@c7N?$(Ls@e);P3%}eIV z?s@%%_aEL-YAurAM3!;S`Z}qR|A-YC;!I4!a^E>01d*&ak9y3d6ixF?krva@M2ni6 z?TgZl!Y9H@_NGVOFyt5}iL78@-Z%vU9gAnoRa4^llmfQ$-hmt|h``QuXL{#XNgxJd zp$C`DVkLJdfgokzB(Y#XR+Cs!&&m=$+77I@YCG6JG#kG-1)_AVbFF$+CC`*9EG^qq z#J+<m`k6j$t142I<ih-%A&c#u|Mh?RpMj933$YrrY0{(pt9f3JVVEY=;9AmXN7rf? zAOok&Q%QN&!z3wRI^>d}bxrK?1VP$@kVenAnUpG+YrXQgviUibjab0CqAQ*ad~Y|` zP#F!R$CAee$Ul1BZNY~f!IC~o4{BgnerTn?&wPcw>6Yu8TfJ3D4715rdPR%y9yRgR ziE5%ylaHi6=zNn(XU#&USoG-d_h#gCUBuYGjHM~9=u-biHk8{xJSciM?=ztt8HyOP zgGs%y-!gJv1I!*b@J;i5kC*Atr@g<KuNn!+n~ZP$lfHTap&^Y+QDoDA5Fi~af)FOP zDNd1~qfxZ%8?XkY+gqXD<NbX`3QZ8e$;>97A1uT=+Btl6a{T(_<jd2uFJB&=p9$FL z3|!O-!nJ6hS>d;B;8anl#xFJw5l#+FnWbz}5FqqCHP1B;e}u$ah~WrsX0x8SI)+hZ zw1rao5OumFF84&w!Cx@ReDG(aW&^XTVl@b@2FVX+Gc{L=3n(|GJcEy+@_UxzK`^pZ zOG<F6H{tOB8!2R?#3jlO$1Z9@PG|<i-IW3Eq}U)2gapuoYzQJ43TI5x=UJnDqxSO3 z->8Xy5d3s2BuMoa^e0#z)-#AhmUK7*W{^Wyo&97G6TSYd2CRZl_f=ZfsJQ@Dw76HE z)tJYEHEbFciXLQNuiRC^WdWk#{3@<k1}vqWtGebwhLz}7ZzgfwH3DpAzc#q4ARSIe zHLf~KR$aj^w4Xifoa`Q6AB$$qsai`|nCOsei~h2^eU&3H%B8Zc6^kGovIRy!@?~Om z)!40iaFB1b%<cNl^E5<}#%YKN5{67#UWXGh{L%<;f`~yb>lS^{!(7BPw{?Z|&>BZs zhlfSKh0&dq(6De`U$<aznD#ASA><WbsIkxpSTfH?+cBUws|$??aM1(?An(kVIK{#+ z*}?YF@#)@+{TIJ@dGO-s;M5AoQ?t3=-(Rb3>)^~b24`RH86&VP(}F9OhE1a&B8VJ5 z<mT)c>pg3N@pY$F%rt?XAAhB#xQz0!f*z{s3>Ty8_6*l$0HmlP3K5Y6WAV!`9AGTt z?_5S`aJMN3dm(RbqTmp;-pVLRL1L3BGyIl_rb{lhEYV6>HgW@#ECuLG0p$S%eAQJD zlVx4HF!D3=4y?0KCzuFP8?rCi(1dKVRUKl>FqQQaH~|Rjn=PBcV{Io^$k2<#eKR8} zHz>dkw4`>Wj3BQHQZv^=*Tc%=!RuZ;);iDg8$lmivJzL$X<AAy5wumQdtx+;zkjOz z2@O<^#4$iAAqxCmiWjWV(nmB_1K@;A?mw@$#QB{yex&cTx3+-4GOJ>>u|)mhlOtb} z-n;TmO>?%zCdRmIph*xL`!@<<!I~A5Mn0I!E}9#tIND+f&>_N4Lb%YmC6*g2&RhCs zXIY!Sq2+zm-Vlsvx6ju4)``Va#gmwyMAEW%KfW#A>Kwn^7~fAJ3@wY~X=c+azOUkZ zE7nE5bE-zmF<|8DPsj`T2IrWOWY-1LB$f*2r&}{qEbB9npFduGym`3!v}@Vq+0o~N zXM5-S`>&6WUY{SoK7Mw*eZTYZ$~n@-2@u7Y{f~B9AjHYB6FlHzysvoGR>D>(W*r(v zEh=x|rHN3qM(ycUs?P<F27dT_kt9pVrs_{>$Vets6QRLbK|jkgr97|8c!iYML`BC( zP2+O_t`t`~o&hpbNAp6oP@fh-6?A!vSstF^<nj-mVK|*tDV{;|Fv3~1@046R$@D<9 zi368f9`zFp?Qoah9Q}d-$dYZ<!4U4?F>%0eEJO@Ki4H8RmyFs>wJj+yGWs4`s5Rt} z&rf#})JRG{3B4-t*PG3iT5c*^v%Sk#NlRhYeLZ;A!UcS#XgqX-H&ph(bJT!@xU1Sn zyQ~yYL|%87SLo78fV@~CMu`Jw(A!`xTe3R&H+L0PCc*%pd&PDCRtw3-G))^47gaZk z<V>Sm%MHHx<(FT+{Nj)Q_`92n>+27f)=`~2Ki@mvH;sdui&c<EaQOS#bK#aKyqE!z zOxXCcCJonH)o1^3du8t7^7iWa;fp#{PMk^yK3&sKs<Str>ZD^sfvBW0!{ELHhDQy9 z6B6sa?yf)BY%gf?>3UY!?t;dU8_4D;cXtd=wMjo+1ZDzD#ZA?;*N=o04I-cc?N(f9 zIxbN#pV%{yMtAg!PIphfeE!9s{c`v0aPRDR`(*#wfpCI1Y^vkaov9R(YUy>86axLz z7q9<x`Q5wsx0my^p%VvI%6e;=OB;zCCnro&Gd+pTk0XxBDx!~mdVp);BTZ{4D>;$h zAfo&kt(i1REX!D;oNJB5xMFM08@V-1=u((Q?RS7X64J3b#0Q*-NVC0!pvtoxAvDky zS*A#aSR#vL{c@Tz_MbZR5Qowf0bc(|7$?7Lus|y@I-yP8s(PO5=}X&a2O(JsCDFeG zHK`U2Irt7!j9uS%9Ll}X5FHk}%T#PSs#EF6{SYmvtBxMzO?9hj!oYCUhJF?#bgk!U zSbYGOXK&Z@`nj@UbBS>$W3QG~(aOKr1MbRP#-Hk11AQSTvz)8CffG3vzy)WO`Z)p% z)Jn;zRT#l4IEm?S0}Ih^E=|R}9Qhow(<a=yR_`w^K3zW0ti#>Ii+3LmKOLFQ<(fzo z2+WSDm*lT*CkzdF5e-x>l*l0uk%h3vk!b0m6NvNSdOAK2W(wWhrcP<{L4mB^cU<wk zd0p%68#Qa;v9a7XJX~HQOv6cRgz)K^gH%t<!Wam#WYXul1TnVd7VP%vY|`7@j2HpM zu{ijBxpOo76){^NumZlV!;_<%`>Q6a_qPwv4v$})oV`4K@zobcug;zwSuxdCWU`wf zF%9hG@x!Cr%S)7^;C&v>cBHNS?>_(O?c2BaA8t+^>;B3J8R@(s^iBLe>ogCsg2-0@ ztM+yIRKwzXA|ZV^!;7=BD;=kbd0jt~E{RJd<XNn%6F#o8oO5|a&(-4Bl7Z1u-iTd> z1F|IAtN7xPY<_}6%U60z%ShQ~lJJw9s$0-Jr~-GOK+{-K>Bc*Dog+kCfg0S@zCcB* zIrcbES@jyVpvjL7in~^tN@Z5VG^P3QUQByDgyqV;s1Tr;F{8Dmk4>21VmYhywj%Rq z-fwhx0YP+ftp5HbEosQprJxHPWnPK6xSqA4BO2yfDISsCGgQG@nvbAzdX_HSTKORq zQXoo&GCtK)EXmyktMyjfaZF0-3bUJC<w4W+1L_iFpbWMdP$Xkaug;%e++EyX>CjsB z)clHz$yG`(gqPJhwEJmC7th`qR6_*@0sCei#1U$Vf(Y1PwNo8Gf3%O!5(Sq?r`o%W zNHuSPxOTO)LfB^m_6|@m{QEZIk(Pl|n9Kw?p32;#MT?(z?E4+tOzCn}90*Y@HZ>K` zb&e4RllbSjc9A+8f;|2cngS_=be609eS5<CuIC5mzkGiB=KS#G$@b|U>idouw@lk= zQ>?YjfEjL!l~dU5g!p8OuJwZZM^`uZfBfC=k>bM_@1LJrA$o9ncIZ^}OwaRdP-_x) zI|&gV-7}OU!8*Vqvo$yeC4m<DPOK&lh`Ii0_{yBx#bFE(gFx!@fh9BkL{wUqnpx6D zc#J<q-Khd!y=@_g03kj$*QyGV5GDfo$3uw6O(1(RB@v64TKF~ETRKhRL;X&Oa@~1M z(YjjLw`CB?l4cJ2<R!fmlvg03%gsLhQwu0A3|_)Grq+mNs%UJyagoZ5Y1y=Aqen}C zl#Ven4Dhn5X8jDqNq2XtO#2tKsW`eI-r}xCO(n9?m{lS@ubqSW5<v}>SOh%84S-@9 z!dOMfgwaM>F#<aqN!yI2)%J1@O4YjxZfNp^d##vk8~Q2$mkL)hB9F`6ptLgUiNJ?3 zZW#92#}{9}=2R~lY1r<Qx#F)|LNY#8BinH(K&@#uyQCEfRBXhSi_0skuP#4b<yI1t zt*h%xbI86qRX;{p7ekX6&Gcz5!Ml%n*yD#^{Dtbh6lNR8_Q>uU3F?!}WahIW+=hFu zE``k<OO60K$Z7@|oD_oPp$nL1B(}()9oJ5-$mOvYve&sYE`4zOaC>;RfBxn9$;*S6 zU!T4H^EW$ZN83k-zN-*k=t6jPubPu<=tzjpeaCEl9D__2S?_EeoSX_le*cGWFTcBZ z|Ha!s`{ftAfAI?o_wmq~)YfX>f4I`UaAKvor?ZnYvO`Q+O-#D%z}F+)LQMd_DeCG> zX|zt;hw~Xt`n+UFhAfrbte8C@4A7YMPmRgVFgnX<TpFD57Sze}l&&AkfQ}6*w631< z1WTe2Zc0gRF$s-sYBqB$C8>5_;V3y#l-j!t?-xDTjo98PGR9OUjy>T(J~6xh6Fwuo zH4S%c(h!!kDl5r{-Y75(>ksezn}7MQ5JBsJhq;RlP!3aQNyI|L(FiI2j<6+vfR5$K zE0#DBZ&V=lRv;Mr7Do{a3xJGBc)gKbkGU`CCxBxURHq5qu)>3aLCI@<!W?Dv$;=*| zF=Z<ntSb(u>5D=mFg0M}0ne#=TzBvP4MWLyQyf_{qFl{^@KX~qJN`!u5;6bUA;hfJ z@S;HL4aBgcD1u;1002M$Nkl<ZQY~<R^YQ5+>F`oI$6+5WVKa0D@bR$&semf%MUrNI zI|@8~qqwL;RBmo&zbFvH^bT<a*r78=`)DP`bj-1x0JPMou4B}VQF0aS*M&q&At;?5 zYtcu_=onW$+e=?FLOT8#*)?yM%VqsAO&8aUGtVyspXLKHlOlf1+3payX(RE>T0av7 zA8{rh_dlL~b@t-xvsb@-@!}UR4qlv?u<lSxV<L6{o3DW!t{O*kxRy@T5Nq$Cm5*3L zDoh|>U0nX--~7XG|I>fI`qKyPf0z%HSbKeRa;oPbnzs+}=Ju+?(|zUS;=}pzY2)<9 z)AS~0teZ2mak&lOBP4NexQn^sj)s)iId3cuEfAh0x+yt9!j8C##Uvq(NlHfpC6aVb zxS>suWnf|DNHqK@H<|2t7Cak$>>MAgK|%Rf&Ss8U%*VsDbj&=Q%s{CF4u<8GqL-P7 z5=TlEZLq(vAbDuA7aH|{0@Z4(IyS7Y?VL%Y5q=YgzNtG%l~A_E$y$~rCQ#W3dgAU{ zKRsynB&>OY9v3Z?0xBh+=1FvU>!(ZcAf!_zvH3-SLvwFExX^v^U=?&<b(f*<P&Hhk z78W<s&xkpj)A80`Pjn&!_`Nmi7W(r%Xgon<mFI<oF3(EEm3|ax#M?)-J+A!Nzp%j% zl|ro}kr@o#%0uT>9G;3rFK_Pt^xk4eGeeeNnAkMiarxl`g|f<`&&N^>XWX=}x($Lh zv{=tDL2i|6U<0>B&ce~YTVH^2zzNxadvJ7qf(Olr4w7uun3hyH|MTqG)!h|Axi|Rq z;g;XSdmYuQtDAS1H%?aFF}!Sqnzj!0lH7(fJKIFxh=`Ao%4}*Ad##N|rdrVeS!;6l zp8eUs__On`&!2z!+^4kn&-ZqZ4}F^M*|v|N0O8ElK`4;eT2JS2|H#6!4;LSfPi#HE zL3BU8IDh`~<n;OF4|i|h-CSOOOVaFfG>rH1^*OmD>W-CbdA&s`&$iyZd$)gh(pWc9 zPQ0lIDQzT~d{3-tR;9sIH6}k#(l~77*044&SVU&&+la@bTuGLnM6FT@!N`1_T7pv} zGB@rd%C#~8k*AxV0e?)-&CDe~c_ubw!!tXAZ-)N?$36!UcxwSkz6iC)<Mf2!3H2v4 zYE~<X*TT(sh%YVJR=sB#%xobX&u{LkUPCnTF^cPL(V6g}dWkTvI2V}yt|q|}I6oJP zPxqA~&&sCyr&0*;lx;;a{nVlf)1O|g2c<kLTC9|(y7DaJ!vT>Y5p>TqLRN$0Mm9Lx zSJ=TsJ^=@Il6&Qno_TBhVTiXXji;mQ8#7WfS3|K$?F$-vjBPW!h_fA-++KU@bx)7Z zzJB4j)ywa%j4c~lCH^cga_`zj;53=>KaeDXId_9BL}rfWFdbq|9c#(|+0{dl&<DT8 zn|gYCM~<G_aSleMcG&p+;x~QCqTLzW;N<ZCS#gvD)FDmP9ir&GRWr8in-SY)S8&4B zjvTS<fmgAkR+CcenA@+*dDz@Qdp_OoT1vsz??2yv`TF$e#p&rUU!T5te){rc=cset z(^d$gI7>}HVtAdGsAL_Qk9ztL%XDz87}0d-KJ58O!n^<c&9`qa3~;x-|N7znk3YVB z_D{dL{CxYDpMPm}WF~EI=Yvmgn-OWMYmdX~tcp=3p-W?B*?o3~3606ars3o0Ezc1q zN!WCE+e@3kh#gbz;WZqGwMhb!EC^@_CC@95B2SRx(^zl>v!-o!WvpPQVJ!u7SGq7` zH8QAUj3HM+p{7oPT_Pjcgoo-yAu-HUmC2h^num51z>k&z%NB-tVSZgj7sDk58uO!@ zuuh8YBl8)uJ-avWd0(hYg|vrNu`+(HL@BFn@CIVx?Ue$arN~T&S2m?q9!1i$db#ny zCBx4zIoHqis_KR&G71a?KNzCrcv-)HGGi3gtV=NfRg_piUO%q_G?zDJoD6;<jpr%) zUn3(6Pe{sSlL2Jyi%&=&7B#}bg(^OH{rt_A^+3P13CO3Kw|wK=hXbq_v?-So9tkEh zD|qSBls%^{3z#3;wX1IKkp<<w&3URzMWfEXXUA0vk7;}2Al~p6uWR36-Na<eneJPG zOkNE*J+$Zcg5qXz4vikGm!MlHrLAJH)SjMdYh&CL+FTnL)@tqOu_MpP$?56y!^5+^ zqZbFyzdSqp;^ni`qy6W{TgM06hX*EJ%>aW*jF%)3K|&ZgVTKv4E57wP1*@2^F0bVg zw_m=$`rE(z^*7)A@TZF#N66~!nMk?0yxscKj@@Xw4`*EN&D|l&3MgB(fwqVYCbZVZ z{n@c(sDR)Q&gxsrxM9sC<PUWbJdct@JO~usJ+XLDMa8F-#n~l1G9&&*_ePCZ&IKIr z)=$}7p50e4SgA+V0B}9W{l@tU63yn<N1ccdZU7n&7#$3@+970@b_-+)aGxvH5n&oQ z=^L#8a3a*4c|Tjb@*w8v=c-IRu3}Bi_W(8pu-V&ntv0Otrp+VJt0hvpv|_785i6U5 z;1w-`Cp|sin6&D7yp&s2c!)obSCA_bDkPS$`8T#9d!c+JbbmCHR6HC8NCG+xc3;Gu zyupz{sf~+eAs?+zIE=*^{Hv0A$4lbbSnYh805d3FUT%HYhj(~+{QQ@1isawl+~3{o z%@=d;@AmKWlTJugIpeJF1re5@K8+r;G;Ub{E^YU8-z3n6j9%DOKt~Q*V`Gepc#>m! zMi^_VOAjJ1hlNIN9k8xmjNZAtwfHKB<a>HLS>`Q`35d{<LJPpChpWnBg@P-y<U9uR zb+C6R*#XE$XNTusAD_HFJo)nY@a56&(WxOQ>zJ%2d8WrZpAolYNpMj4q0R6MtrK6} z0nH)OEQn_MTEn;Bz5Vq+{{F-DM@u#so`x?f*T>6l?3#SG_0Rv?e|{*eU<-xr>4Nca zt0!AP;(;LVK5UyysUN$1Kvm~(<L=`12mq>ZVN$Gwp?~#O>vnejiL1=fkP|E1&1h~) z1Js&?tmBADIY(>;b{$+oMpf3&rHV0hEIUh)F;{EIf+#r&j72E2`raS!k&6@v^66Ty z{6Db@K`2)f=DJ6W`@|Chy0%Nt;R+jFS(VRyMU)BUEON%oHjy2+qH<cgY3-7J=!O-d zjN@Gy)c%w+kehfT8?%7O?0JnX(^y!JwcMyQfKx{|`TblMnkcoNSNc#XqDt&O8LHxE zrB;5RJa{!%X$!cYU_P}1kl>&(RLfP7@R-X_e^*QAWw%VGwZ!bCk2dL)ig%nEV?@Cs z{k`qe*QeL-E<U`!v~kA#D=YPIxqa}wqZkb`7+Yxst13w5C(#W;7H5I_iB|0GpB$kc zZ?q8LRlsjTlo`sE&B4g6Lv1z^4O+=8786zO9)2)3eP#En&fm5<`4NTMv)V|B^ErZ` zCAE=3*%5seAaf$iTQldoXF8!@9KZh6^W!)C;Let#n2!u{wKyy5JI+-{r!niHJZzC_ z2@;5YklxNu{%G~}u>%GSbp8F`{)X!Q_|Cv^J1CM7zGUm!wa@H+eCN!McW*BacVBdl z$Hz}MK5M4VeR~ZX+O*JFh*IUDS*=w5DYkmTVMDY~k`|BrRfOObC(qT3p^3L12J>=z z={cG#-5zOJ&x?TR?c`ZMmjd&9K#aewIQ$k&9KjXPWRrg_U)6^NVR^^L8XHH<RDmpM zMu^5gle#3sGMFjC1WD12NRI$_IV*+HSzpk|q!*lwRzPDlV?6*0P{>8gY1TADX0M(a z>{+}Xy~YyA?3F|{G0voxH8mKb_Ta2*lvDe8pGG8eAey)MQbm9vLVjYW<G)dGk)v0k zQ<GP2DS<6br5kE2^I!ma-l7xyJvN|+7YX6d>_sIXnYYl!;E+et02+?TA0pJgF+4*l zMSKIIW*Vv5dGY3j?-bm>yE43K)@JMOVXq|_Hp4j1#cCXqAB|%?N6Nbx-<`!SKDJ{S zkf9nI%>_#;70~K^DrF}ZL04}d2I9{<r;1@{$qucMPTg*=L{y)hhU47kcExR3L~&<? zc2);ks-fFz9vPiP$2348W1?uq&GJQg;{(0-o%`pnPX7E~e0^qnz}M%`4nN=M2e27l z8%|)XXZVug^0z~_n$kd)sG8zx7&JAokxyTG-?i}L`)}X>?O*@H|Mh?Vzd!u;hi7xV z6nghj(yfQK@jp9)7EARH|L~jptLvBN2QOcp`j{WJi`UM1H0zd#ZPW&p<6pr+(QwTB z*@bAa7J*TgS@*m7XX0LRK>Du-iDlS0hO#f22CQt8$HQZWibt|hoA^DN3HZuP7^JOI z9^{H1z8hgn_AJGvV;&T*_xX9gJG;cbniJjvWup{r4oQ$$1j(d6UMBnj7Z?#6tqzYC z<ZW6v^WCEAf(ICHR0|%i)y{=|FCMRId$e29fYN9fOH^dF#82t#t!EGQw;$CuVir|L z+JOr1G-Lor!PsLLp>dA3U#GpbU+Ci+%KE9`LPNuf6blEcaRG5(@Vo^O4(l3BYQGTm zvGzgX(VY7M)GAf*((qub^K74DMCqL6g8839p29cXm)Bo?`EYsn{lgzD<2AHG37y(v zkq~m2{WtGw+Z?g83*Y(*&bE59&Z@FvitT-NVD3ki#%iB6(=fgX{^(;+AW1?8IE(kR zZ{qD8&Xxu_TZf5zc(4IY*9hK9X_^(kEvXT4kJfe$i)xxRiO1DWmdk&<_u}Qri?5!) z`ODW#>;0DX9b3L>dv<b2>5)1<MM+3eP_w+d^*^(M3B5N`!&3Od(r$k`IXwC1kKca( z-TUAC$KU<wyNi}No1V3o)NU$YB5M%>;T5(#yLf-|yWf8M<>~p(@zG~1yPiE9oSI2C z72R$`-kU>F)8b~bCHTOM6k+2bhs9;UAd=;Qgb;;POH#;fuBYH|aa>MUSq2@?(p{50 z7J14kr7p<xhZ5u`7{Gg=FDziXI_`88oH4t)Mm{FID)v_Xxkz}QET?2EvwIyeClRb& zF--_H(xiXOysSB-^keEJc$$XFz#bnTH@5t5|K-2V3eB_!^cCWqpae4*>mPd=5~xk> zR%=Id1e+t%h{d1JY|ykEmWo(s2LM4)<<bEWARY(jkw8#iYAZ#N`ROsvDza#aie4yH zYt-%^7R|^o8ic3;47AIUc0IxIyy8X;_DoiPUT@j5Q!%t+!?}QOOw1#3+4)In8_S$1 zkVj=8RHjl&Yq)0i7Z@zCpPp;{czb6@IcM7{jQz%PXtw!S-?r6BHXbd&AO$F9B!(E$ zXIhGdz%~dst!0DpU(;fh<EwUdd?-v_pW^#)(djb<q94p<GinO0XsB&NoFSO2!D1|B z*FK>vIC*9pZ1*E>Sh}}${^s=Szx?XWuU>!oXRnT5o%jYq=Q*3~X=_Aw24DS0JPepc z`VO(HtHx|;7V?AHz;SD;Z=KI->g(#m-8cXA-QWKEfBd_@`iILOu0CGhX{7zWR!cV? zEoeaz8fjb|5u7T%wSBa`ceK5G+{eN>Ljx`CdN+$BBjYACXEMblbQwZ`sWi-f8t|{* z$Qm+AAP|*tLP_hS=MUhnR8uVZwB&uU6|@9yE~1p2Kl&CASS-K#(4fW#u|)(m=<#Tj zRn}Wz!@us3g~ORk*ArxK***7>;`~3xYOMKQnUlk!;;_<ZwO&MqR2=&z?psy~ZL%P% z`2;gXSQdSRTV<+T4cIi#k7<wF!p1$xf4t`X<`!|sP^shR)56Ze0&U)A_SO0L^C#Lp z!mAc<Bl*(ofelGN>09?9N)1L|a;y6<r_{MTKV7TTBd{!%S8}bkczAl%yLtPVA$Xo8 z@~}&Cc^ra;WD>kE=BoscxNG^|moGK!^4mZ8vYz8Gd`I))#1aMzCUD)rU#k=1x_@yb zH1u=f(dh<a@5AF&d$|fUR1!Y7f>xtV*G8WlHe;mG7u+ci7!5()-rbn^T~Z>vEDWe| zNri2&F~DF|61e44W6JPlPLq88`t;S8&tJSgJ3c>p`PD1m88F$SN?x_OHT}!_^A-)H zui*8jL!-cLCq3MWCjm{hvZ5{6G<bJq>iGTVKm6{y-~Q&Cci+DgWauYs-CPMP;1=hy z+#qEO?drd{xc>I{-=A;$c7wH?uY3-;Wxe#ex$=}v?F1&Apio6*y=(DBiU%Zer&`{X zC)FRRP#XLE8&Z2-*CMiPG6!)kkJ?ROJ#bfY7X8fn-?EJixKsXBa6oB9K;|BL5|=C) z=O76`rQ~-~&4tZ~bwV2%CtQ`29aNmEE)`rqK+ZC9T@!BxL(%}N2j|zw2xidb5&mHe zHremX&P~(0=^(lf(iyPztX9`bbe~|gB4rqm>utqjnG9=j)BLRJc^C$)Jd<A&HWkI_ zd0X+xvFhp(F``G8w@(k75vR$owJX2(+FZ8DSZ8+#jn+VU4*284%Cn&&vi72wkUXg= zN*MJCL;rTTLWh_iy*U49bmgrNPTzLojM3BGi)J&7$QdG4GPA9pqpM6r>X0IDR&#a~ z)7}ESK`)w^SK`|8jsO`rv=GqXjRUoXGx*u?tW_LVkF|bD<iYc0zw)uvq!kVH*5^vJ zzY+|GTix`N^WCrh*~?%2#aCyqPOT4df+5}LLq?iOK&YzGr$#J={MIQ^pphc(4#^U~ zXu}gCr!ajqSlyxni=%h`@Y_H9&0qc9@Bi_4SMM%;rm%%Xf`5Gt#6!Y5#@bt`Mv*Tr zuD;P6yNEuw1@e{i1orlQlUoFF!@?LUu%SIcB2H0QfCMr8as_6diP;nP13s4w7=<@w zid$(^ZQI#=I%j30JWDo$FnK0>!hj~DT2&{}GmTRH5~mPg9izwSXL7BIfPkzwBd3P~ zpX3S_kyP+M`dy`B%B6=DsBpJYWNIfT5ZQ<UFh(R0VU-IO0))Z39?jKC@h*Um1X@{E ztDc^p9>RApma?#^*^}m`6lly?s1GWS&tWifpd4atFv+H%QNd3s+VBKFXyps0%TIaS zE8jzSc#g*YAKI<^B+iS<4NV&X+NAhX!6~cWN$$3R4F4QXqBn0NFw8cPt#-l!t9^{Z zo*lpV;?=vGdzx$P@Akq%;d++)XGcDkhmDk(Dw;pSL2q)41x23^cDWogtG=QODaM!6 z(+&2r;I}ECTdM{=^cI3zz(t3iV7oB13n?6pptNyoYo<D_u^7H_Z&IR*WMauzOTPY# zFMsjhd?85Q_X*D9qg+3YM9fOJT@F;ywv_{ZsG_bWhnEONaIoAxHx=3VCr?Y%cHVw} z@#D82{`Rl`<KO-JzuS4(JwHCV`*>;5P=jPe5R4wOO+bL2BvX8N_woJp&38XuoE-fK z6N^<|nin#k)It<qHa~;ITyQ=6`U9I7jdV?m)7U2w#T)o7-Yq7&hbUrYeAu+Ex?n3Y zjwS+rx(d!sopqLl5y6(nQ&Zz)owGw1nw0GF450jV&nlhZg1^lAsy+#wIiX(9<?RfL zBJvWd43KNRUHa<TgKP7uBLTu$rHy^)2De7V$Y`}U(7f_#970i-)SWzyZCfpoZ&k1) zTmDKub}*i5iXHPxipu06eot@xgjM)IL4yGq9OWFhqwb&T>3M8@Z5cvWaQ;aNXFW`z z-0aIxb?~9TAdKN!urg7P>}g(vYidBrZHg?zI9NU6RfQ4y3DxS$)^6-3w54dEh_~2D z{Fvm|nRovA*RLE)`rYrpGoQ&O88yAVy0^}ahuZT^_V%HV4&(&&admq2-)!cys;P7q z0BXiu^KCZc-+lIp5FO{vkfI;i;;gS+yfXxF%2*CrvS<p@bQuZStM}j_-}=W0lJM$0 z9_+q)efsr3`{JvA_WJpkr=RwMqyx3PcbFX?EfLYT`W8+7=j^MQ#X|FRh@u)V;)vEl zGGOCgvSopAYf|q|zWMcU{_yMXt+;4$Nk`8)(&ygP&M3NX@I=>G88Di`#cUZ4cz1XI zhj*7d-+sSkCUSr8^yRTZ_NIxA$i;G<Oc<<4sh>zac7`f<anuQQVZ6v=yY>4q*M6ib z^uvXd+%2L>A<`>Rp6p0WE#sz!VfqvqIYH{_f7V)Uhy8?{HC#U_4_Gz*UyQ`Mmo3*h z+Mx!QT!^Z)x2dMb5wB@nni4d;rG5rcI<PhwfRhaCBEx<%f8EC;I`_O`01i=9#JsI0 zrC!tKicR_T^GUBJTY0?qylU{v^TI<qY=}U2!<;kJRHP!1qhvZ>2%$+!X{)9y0zO{7 z5u!*POtiMQ^sY!dEt=*xRig?qCsJ&3{=}_K%e|Bbq()N~w6R+2xuRZ;p^@T23T{?g zm2cXZ$@dmfN$*5NAj;^dA&nB^Q8nWR+vmqeUp%)o?)yKz<;eE$ovwI$aCOP$9N0O2 zaB%kg<?RQbGq^8C1>CH;#cF6WeF{F9erl>w%<JnLJw~MSxh;-X94#9b+}<<~L|!K- z!QtdWOp6NFK45<>ciza*?0iXP>+tmC`0U`#%jduP^RK@8)te*ZPsYWYt=|W&#z#@j zBvNF@KpIa=bB#*Z70~ET3y#Y|VFuEcI{m=<_f|G0q+9#9A8vpBH{bjp|J%R&{&#=a zf3|mfb-8{2@wt&ttiRL!c2euCJwd_Q#HKc!aF!|f*PlQAaDDyp+wUXx_UErZzBzkg z)rUzczG-=aHmI~`pw3f^l{7yV%@s}9;JL@3x#mp`TY21Nb0G^Ie@b7xE?=^-%utFg zzij&Oo;@Ty%M*;808&b-xDk(NP#q(dQL=z`DqZ*|U6@n^tqn?Ta1YysBY=X6mcQqS z{Ax>2>OAfpcVQx|({-`|69lVc3qOhjQaOqy@|j`u(J0l6<m7YJnCa^dLiIXUv;7=o zWJxPl&Zj%D5pCc{xgq!D3~a>Oq-;pAGJvB^kz+MW`2|^i{X`|1y(yXG1*M!UfpSv^ zA!|g=&uEY>>&4Q&RmJ$`$pFygR6{wlHMo?X7o?AJ7AwxPdb6;kxy@WNH=~Pct-KCl z$38WW-6E=IUp;(&_n?#eY|D_6%tj0M2(<6z-MziMz9Rekr$-pEb8=u_Soqkehz{-j zM@uOzL)_cDEjHGpHSE)hhulSeRuG%7)?%ynvmu(#8CivHAo9*Z$(Kb{TI~b4JLLbx ziO}6j;4i;CfAfXS@5h<*tY4E&giA(3MV;~qjkb35GH1(<$W-rHxazE#IGETO!M}UB zu`myZlHkv~hPZ$Gn{WU6|NHfKzkTnl_3gI#-&v4lu%uu_lp7Ie_AA*`Ih2b8P;8p8 zb;(;^UTy#JyQY-q<A?`#R_q+;KgU}C*LY%?_NWw*Nh<c>m&PXCIli$W>mA0YGRy4y z(FKT{E;&bGwC^X0McAVEY*&U`eh=jTZl+Y0EJ;*WV!@hW3)GM^A^Pb`+9sQ1<>fE9 z*tQ@Ct@2g9?|<!*-m(`t-~`0H+~ANeAJKxg_Nx@6nlKwD8`B8-2x}7HVJXIhxX4ol zXf%z{=@40AA0jM3!5ZtaR6@(e5?D?MP}ticS7w9FPz;T+f-Mmv*29h=(MWr0VAqNe zBIvrbFG370=<?zbI%=O6xKk~KtlBp%cN>(X_sYPK(s}9V743##kLbk-@OwMBu81I> z{B&u2sK&-6baJLGXz06Md$*Tud$j-v0mW&%M+Yx<4!3T$-+%954CmQg<F#N$#LR?$ z*twvJhv$ZHw{L{dM0~%Y>HABQB~2Kc@}a+LjWhD}-8<fOcTOkYnE9w@5IQBGTzv-B z7xymOK+-a!Z3j#_Gm$?(e`y!qt1o}`^~*Ot6=;Q(L)F`;z<8ru>k9iWW;<8XAyK>_ zxDPmpVFaTnfL8INj}9%V+H#Je=)Zv|0?Q{E3V-|E`(OY4fBw6F|MwjM_3-)f;)B4# zf-vhtkuVknXeb<!drazLdL#zQOw0A{{oAXX@84a#`qQOj_q^m-cwIcUiiL8TA!$2m ztS!jG3(Q>Hck(ecj)UAWp;}CC&SE1)aM++RV}XqwYjUy?R*4|Zu`>gE`*L!#wVugX zZ@0Egp300D4BnUv)z`59LPl!J&n|6Ct~4_oJmwu96<4h*YiNukFwBS~RZ*J~Y}rM? z8U~*=V40M2tLseJj5ynAzyy|!I@F=YS^)5#D>1sEBLl^(Q`+bN2Wlt==Bp8r^}`9R z8ch1UddKtYYO1qYbVDb`QxEnHeh&BRNyN616-EGeXq?y#Z-fKgTX9jIn!DJ$luF6s zBzl;k$!14@NLwHvZ#}0W&Kzo3aYo&GgWEecf<kJx`7c?79oUOP*n=o*t&-hj%Pwdz zO<R<Wss16o)x;xgbW7zq<b)s!)x}~4W@u4Ho!kWJ<$a5SeCp2z?)y*gF0Od7^Ye4@ zUW2{YTUVbieFW(8)6E>SY^>LM^cZH@#hvrdKU`~L^>#AbXA|kH61tl|;U+s=V(;ks z^18t*4#%W1#@*c7him5kLF(b&(U;HP{P~w({OZ-4FV0Q;*qs-LVQ$YLx)bV-l4>Pm zeBC?9E3~u?@1g^>u=<Mkt?}%UuT`V)Cks3b)ol4TYd-ba!TYxt-~7|}fA#PF>cfxU zJMQxG<Gn5eD@N!HcKceg77Qf|;((fn#Mh1}E7_qc@vcLW_YW@aAHKV|J^jNw-}&vl zx&57!<KuTXZ^acD$DAB)?_XTL*C#Q@X~x(1fK5o)!_m-I*69AaKmb8TG4fa9Vto@4 zf;_3FPfzUj*@lVVpoYuoW^Wo9Z;2vpk<>hwhHH9jy!%8g&(2t6LE!#ipu*N%lCyRQ z6?rMh;CicG>ZAE8G9*rzSYBifp8tsyl8~kGdH46eW!M`TG8>L+1a~HB)5ZF;i6Yrk zwe#k{gxo|gijiP?KjT-_MOGZmQt&Fg!!(XX*8R}+w+qF4K!AhO#GugVQbabjCSeE~ zDjBNLbS~PbW}9VRWv7K5O+q|ZegGFt?V>D8VKfpP>Dea#8S|+1T^m{?8fmd?5u|{k z_#;!)h-~4NSkS9QAO&L#@Z8rxuAqiYio0i3mTe3}H5IhjSnVrBg)uI{W_2a=LQHP1 zL|4WAdG`6uSFd35<GZ()x0l%Gqsdh3^77`p4?jGAd3JPkaP{u$(}z#nPDD7|chs=p zlJ@8U!OGGHlkXJ1(cLXO?HcrI$|qKId?ZV7d4Hvz(}N=x+8l4z;o-ASej4_A`TWKC z7cXh-SB@h;KRWb{UcFfxs)k}Ujm(5(OcM(5S6NTuX7FYbhm&k(dM>a@bo&58V=4x_ zxLa1b@#pQmzxfaU>978uzrA`lGs_&KUN|Jh;`L+n5?hZ+BNllvE;fyIB4cQ!htQ-@ zGHn{#fmP4mU0nb0!^J^+S9eY<-p08G_~eb+$0sL3gDZUx-)fFeg>J*KSV4<mP9w^l zZ%jvs)-3v^(J^r`S?fn+Ggh_U$e}aq+d)DuYPD@Qq?B-;ot`!@I79hZ<LJG{*{2UY zB#e;KT@~c>atQ+@5h7;J`fDWr{;KZ`PDlu~97f7DA8N!qmJS4_6f`fWY1%iCRb4(R zN915um}AeSMTFx5868E-OD8#qX`dWat;B@bOk$EVL_zK_9{T}Xf{q)?gljoD?%JQ7 zP$|1XpH+{9a?v+e*)6^S5ki)lSSrKTV^9AuIN_K$I0@?-STKmoPbxKTmk5MTBS!ve zb73*PExL7vi=ssb?7GT8Yj;ttc)TL$q%4YOwgT6+vZ=gD)FwfOJqx2u$sEWg(?Em# zdI0+Ss~;Wb|L6bwFD#$Ay?VI*(78+UpS?L}%HLhQH(TRdSp1#u+ZPQ3e{^W|GtV}Q z%&a=TKG;5{mix~RvBub}4=1S8iUk3+x;f$7>l<zn+=hQ`FA(Y;JUe}T@Wn6BUVrJ} z7YDfIY2pn+je1~_|6r0|&{VNO7ugaRO_zcgZyN@?n*(g~FnhZnb{=ko89Lg#`!6X< zM?c@+e)G*Ae)F4u`olkc_wb>(P0+uZKipzsh1BR0YZf(UT}ML5I<fkEn&Ysh-<3F7 zFJ`#z$M^4SyJan$EaxP;&lIQ~{hx1zk`K2grwTB1$7q~Ie-5%nu_B-j7|>3q_E6p` z;^I;e95dfm99dt*YH(xUu?u3^q3N=Ruc0+6XBx`3=#JEz0PVmkE`rQ%us28;UNIg2 z!Tp(p_!&rWkc$*~#fZ48P73<UUvY5AVB{}UlJmp8eHZHs$>sMf12|k1w}R4PN_P9< zeWE;twFoev2Bg%qL)MDwQ#7{e3Ms~Nx_Lb}P?Bv>w@MUeM!QE`4vvc98LaTKQDtT@ zg|2b2um(hlrk3lKk7?P|0=5gf6@X{PdD<JFLko;(S$p7^sL6(=L&t<N;1n3Hi7Sde z4$2c3C%dKDS(dqAvL0&GR1Kv1K@9e)VYGC;4K-CnfJnK@x`zpZ4cR<+ODEyGbG-Zd zS6_U*d-m>!3tLYK>HYORUtz3<qGG9_|Inv#Bb?zL%b!fVGH&r+jqZ)S@9c47W{W=U zBkyMuLu&lk_ISY^?`MO$!1J>;PtV_+pP8Ed#j96VL7g2Q`m}&GNIC#}KF`<psn!*$ zsjYspQ6LQGatn`R;Mmzhl`+`Fgst_F75F+~(rG;6bUpU#>kB)5{_p?&uYdoWKis^% zy7=LeUu75N7mpUKO=vfc`LWgw8U4&63-Ee7A(KKRBooHVZEwB5x%u(K#p%WItLqz~ zhgFtd9-Qo7x9yqrcbZ2--X^KdOz4s1lMNsV+|*kqrlq{h<a}UwFe%hbVCvM(@C?KB z|Fd;pYno(NVxBWAy(`<*XrN)na7dAl9v+ETp(EXZ?v@7<MRGI-g8>?i_O5(-pL)L) zSp`s1baiC>5!<Z2{9fD1Cg1}V-oqv=Nn$3cl-4%3BFTR@*VZm2674jukI*uDoX@@S zGVUEGRw2u!D734<|MBY0;Kb|L^WIKm1`=AU5ju~hfnpcFLoc?|d&MUIBgsJbQ<j#R zv2xaW#-`u}e!Q!edxniUb-LyX5~&vX)OuU4ATo@xsTx1>EnlVghje5G6_pfn^f*NZ z=EggUU)$f_X;C=QBVCgER7S-l7~>`+x;3(<b|ti9kOwbHuYaQQyw-Xlk%UJ(uQI*3 zIz|fckx7Lvph8$R*3VDvEeZNPiJ``rij;nO89KlQ?_Qzc=$(3HF6C6u6g#yAO!A(~ zdUSenvwnB*(f;=4{?^02cQ4+ZzCESQnGaoY(FVhmIM&KNmeX=Jk>qR;N9ghtC`NbN zY6%OjoVV>9WL{qz&b4$8<<8Gff(HD23)*&b&0x=?kDosMWdF&}9_~M>YuRZ&jVhR$ zo1&R6M6KWz6IskL#x_?OUlukFV>K}Lmb3jmY&YwK(fAt+)i5)$uPlGM{^Ii=e*Dv` zSKqw7JhAh6#9%&YPmpRJ2_aDRqah^i8wIKJo=4v`jE!7k3gcHz`428>`PH?zCz^&` zZr69$pMUh|(c?Ys6NPhp%1+Zv?X;D$My0}mo9&b4@-xPZeccS_=*Qw7?|_`SV}eaO zQxQnC4`m}&v`g3XH{_%*=S8o1&77YmjfH1o?hma-HDnT`sI9Yl((ui~DoLGYL*R{h zGKS&Cbsvd^Z{DSB6a=sqyNcuN(i8B)gp0BsV5)9TM)s>qb6xous~4wd3O9GGH)?8e z_vju7kg~Vhwn$L`*FtICy-Xmd6&f@Jmmy-0V!-sd_3y<%HEaSAsICzboSw!F*U&WP zUAZBwOGft8=PH7!dDREm5qW^|tfwyn+%KA>heg_#qClFVZf8(00=R;J?N|NL=73Lg z28@3A47m_G>HFznxi4t|R%T5mZkS}g;*$?)D%`)&aC>}qfpd3uw)L$QyJt)i3!u{G z+Up-*ogJO!eQj(S-lXH5nzwF-a8bO7Y<g=YnXm8g0fC~$hiT{=x&(yTLanw9h^mkc zuUzjvG*#=#(@!3M{L5#1k2Z~>2t_oc0z<HwTcQU$ib*pww5+gQI+9<`6V46r5!&H) z^8ji<mA|p_Gq>)zp%=^wx6FU~e^$?OP2c=<`d|L@KOTQ`died@^_Iogbf`1iAxT9N z){`0k(C>%1<wB>$+DOkUfzk%Ct{QJ@(sCr!U)M5wE^XRCV{3i?U~hNb=2e(=qn)_y z(uH`;RP$EW!IytLgSr)grW|~n!hEFz$uQ43{R^}6eYvG+hW<lh7%V&=?_pQNal{;? zODBS_ORPqXuj!&drTw3DbC!aZW-UD6IiZ@%GiI$oTxWn_*8Qb@hi!s$cnRl?3}?E# zn&#1@8Xb2D7WFjDP*G|jNYb-5R0t+up7Q?b5Q(V-aQm#7X?w!6)YLt_X2&98qs^*M z(7l%hV<{Tw_h9KLx$0_zD2%XB5&*zktt!qYVu{fCPD6Z3dX$V3T=(tFm(PLo#zVD2 zDnR{6x-uq-`u&T(<b$PBmju9wH>C`+DP;NP8Q2nekZXSSShl(RSgz$OeiDr-`cb1o zr3VSYyd>+5@>Xu_``t9BHXy&W5t=<*SOzHzf-s@G=a;sqxUg@_DQxfW9-MTxz%G3U z9>i0`Y^zp?A594FH2ZGH{u4<b@~qnUZDVVP0cQO79`5}7mmmH7uRht_GXn~*(49zE zfL)LQ&oVk~z&IX+4Wl|=mr_%W$w@Ump~XlwC%>m16-+qRX%0~j?Ax4{;0m0d9>4tl z&F8=S?)%T*K6rP#`(S4!gF)EN5oomYNQmM68RJE|bVq6-)>;?|708l7NY0^f`9&JG zszag(?bU{^{L$t0i?@f5-ig6KG)83(DGx!SncjJOE?VGRZ&`}h%4ZaOll%*46~S4x zPcrRUC(V$>I#bntJ!WnUiGe$O?kB9qICs{~Zi)}Nl-9Pm2HuJ?(+VaWO1*T1c_D;3 zP^rt7CXbw>5YAR{@7Yu}=gBoij7a!ay;V|OiNJ79SQ}-h5ZF#aCfsG@<+ek2t7Xz) zfozFnT?T84RZeDa>G(~`JK4*+V`nf!36O^`?-{e_XfP=YFQYxp1bISa-e<3HNKSI0 zoQBh4xN!_r3O42I*s;ODr1kqYS7vjJHcVoX<!u-N&rD2BAC7TT#L^&u$fX-uM*riu zT88b)6|M$)>3a=FQq}7XB`~G%<yv6ytPFQQC6E3Co0kC0z3Gbiq(LWh{w4FOJ4l8V zdWI4DsBqs(C*la_+Ci7jZYr;6&xINLw-@V2*T(?m@v8FetJl{I#FjG`6@0b#a1VcT zi%k-&A_ZZ6PrR7=TC>Mz8*#F4H~SCw_71i`{i{!(|NJAzSdMMcLeU2vi6)>*(Mh@> z?wFxSeg&aT$if6n=O-;qixlw{nkB06CF;|RXQ8N->+{R=*DqiF!~gkD|N7s)TR&T~ z(T8r?*~Qt?H-QQm8>B&5NWctej9Lnd90o{GZt8;&4b!cRltU&du%Bk~FA3<;+3D&_ zyV7P}9+~lVa3H+A?HIqkO<nhE`?RhXhmTC<EbIhBjiTqM(;-YqRAfffpgMBnL0S;{ zAdSnfUYd%`t>w!U4Hk2|Fk#Y&kxj6!j;_GKH@UcUI)o8!gt2AEiA@m{rG$kURP8~@ zN>CSzJ;f_OPHQu_^ZO%+mt=#bct)ABNTUS74Y&Y5bH5q<xs%H!<sy$5LzCD3_y6^O zt0{h&Kcg*3S@IIsHzJ>gvPprNpN&oNm+CEq6fU+N{PtFghwbLP>kiyFe?^SM<m?Ml ziC|kh+wQ5`x=~BSEQI1wJ5VbZ<c%4o<>9(`*U+``VV`h(vQ7wi2t=Lppr!Fz7{}0= zC%hoLQCUZQGgB7AP>SYt3`w#blE)k1CHr$t8891T&Cs!X)y;(UjKF+?Q&$;Xg~O{C z@b%$n&B4<9a6;`<D;*DGB@%Ip^XX(3Iu{LgSRQ?RVc?4s>rqof1jGCXoJG2l&S|b{ zNR}}}{$LRcz+7HZ0mus)MWeCsg0YLeM?24d{`8Yi1)~mj3q%Dua`K8DMoX`1Bemh4 ztjf@SF+_hn=6QzLY2Sc6I!)r_;POoUVqi9!)m)>gC)W<{KKcDWfARbO`lrJ$57*Aj z@jSh{z1YN*rdXJur3{D)M+-yO@6H$UDvt!y0Dly04i05+g!_JqYD^X(;SL^b7sq3k zr1N#0nqsfHt5fpCxNtd53v0}bh1%J%cV^?U`@8$J7>pT+0z^hhD*^{ig~3H>TUv!g zX?0dJLKB5l+d!mttlj)JDWJz)Q_^O@&`(dt)cXaSPs;=cg`^JX^f5meuf4A?iyk*< zSR2P%p{**rK5_qIDR|I0R|^<07(VnmQ=Y~NR{#kB$~%>iwU7LTByu$qB-z9dz{<kQ zRBG4Uliua$SVHX264F}kV~k*^&SG3abjupADiBuP7nqXs+TI0*o|j@L{c@}GIq<4a z0)j$3{Y#X=5<>(@&!FuZv#(-r<Fi^pA80RLRT>CYLy=(?SfKz_n#pO9upq50l`@dH zPnm%SX1I%o=33Gq1hT6eN|(ew0vHJwEeM<5FL_Eal9TW*LNPECQtYE}SHeF!QTa?l z`#jz?hlvu@W*(#-Y!O->kYOI1Gp}voXbq9mZ0HAe&d^iY-+lD#!0g2*A3xrGwA*IO z`hO1!Mj;5+!=pXHKgo6Qbmq2EO!)LWt{fadT_C@|JR=x=B$~Rlvx^ZWJbL?9r~Hq< z|LXJKe)al?*H?$<n?guhRHG6B{y^F>6uHMngN8Kj6bv^Wy5madE}R*@Xpyo7ioYol zcy8K<nRSlgJU+2X^3CCct)sUW2RpkD-yG@@>_6IhB3^Z4n{?Ab&x@8{nIwkAuO2-* zxV$>2I`!X;Xk!X>SbwE+gHoo!F#0u+C0hW^QNuwX8v7PQ#SHF6M)Wj{Dvhp;^bt9) zmH4Kn=aP82@THVkMU5U@2<>N@6zvz*S=e}Czd^gaVPP&(4wFiun<%^`JCgY>jZ2wV z%Q+Rk(F2s-OmC~~rJyCzB(8-X0GV>~i-@<RnD;b}bl^t0<ZL7XD(D-k2pkrx5FVdH zOxMtAJYi5kUB^T!dop4kB``sXqG2j-ky~l#p}Dd-T_FIp00SJPKxDnO0h0Owiy!40 zKR-%&Dr5RTrg<;z$QgJ;lLhIeS~O*2Xtk<Zx^n)8AIF!3kx-YFc1^PMYY$qvY}%?3 zA*Lu+{s~)Q+eNXBWXOT^xQe=Ak?qS*1PE!X+Z`lQztY2KO2BXEVb<27=8Z*T?9I*n zCkM}-KY8@@V8`T&-Ax!^_5d(*k7;i9EMK^QC}v`xT2edR!JPO(-Q1PCTnVyDyVX06 zg4{Js_rMN3S8snh{rV3tzWUd1k6#|yQKl^?X^51Ikp;cDaYMCN{(2B06f77=;i$3r z%CUMCM5-ZOpFC9ST#H?rPyDI7Q`1dOZq6SV0Ka~>dA9xbttl%HZC`hI`pMDN{$nG! zo0kvt^;eztfMrfP?!dO2jF@rS@qUn!1)T_N9Yx%h%aIm#5oOe;8G!>i3mq4%47(DJ zfo=HHSAdrdR}@#KSA%<+P*aO2Opg~+Nh7_VjG~LLq0L1%D#}g1kYinnG6gImO|%;h z2A}9!g~ie3Ul=#!mSQ4-?DGgo_?s)cHev>oGR1bPT0~b-mR2KzmY0Ui1}%>B>;;^Z za@e~d3s<&)UxvrE6yh%Ry{uvpF20s%V>lWh$OXg%MK`5|?)y)g-L?D*Jz5fM=s*l~ z&chY~DYwg{Fq&cZ#bZDk@E<1;z!~|`QwzG5=f!?P>Vouzc<Lhf?(pi~!%}!6YDw1; zr-#xo-Iuy3?*kQ~y8q_V-OyF^$PkJrAnEdc4g*lQ>^ufxgQCGk6zkSXlbfyt9<Rwm zl;Y;<<7W>afBg8PkDqMr8CRGHWR`U?v!EDF&$4y|bz#vKJq{b8AD#sez(IOn{WQu? zf04|$>R4Snx;Sxq=)2=nJ2U?F@BjGuKYV%m^3;^i7{|s@Bf3UPQ@=5BED@5sH(I0c z2s6c|>QJ$b8KzPe7pgGLsEX(gs64DpZ=_U+ki>+vFgWfuQOv6PqqFnF<CCMqvv;o! z_x5)lJ$hse@S~5Pt!-b}z4_wg&>kbA(CQR=qplJmR$%&>;K2;{tt59LAXW_CxkJ%{ zgv>y8Pybwe?p~=ZpO(Ay%9KW#-nhegZTKKW^EGx_gp1M3_EL7uc$$piC*`=Hp^Wrh z;v*$R?CX>_P%3SNT1?aX+2$)Mt2<E%rjclsHB{w-*WN55)$?)*i1U!l(=^P*2B1YW zk$grzd7_jT<~2;6`NfVVwWLZGLT0xzmsQ+;=%k|XY()n^?z)$J8vh}m(tDXFdU1V8 zX)Si6$Q(|Gh{0VG@Jg4Z5kk}_5y+XWiA}mmvOz0M@SHjGdJOU|*-@ef4GqRr-?w!6 zgD1oIkVhKVz^b+=EiaxWI4UO&8EMF%<3n5xO~;d=wbi}7ZHL=Bki*^><|k4slE`IP zwy+tuQ%FH&Na6T`Rh`EjQ~H#Sk(+}-+;=xky86YZADJ(?`)H3xRTLVdjmuDDP|h!1 zJW;XD4))8~;#f6}!WjVpe`()0GQr6?$#LO=-I?jZReo@G>~xSHe|q=ZfBO8l|JUzd zeewG4tWg-lXlk@W^F$*qZtt9qkvkVI(4ejynCaT|^;8<RKs5?%=+#s1vgCm9f3zW8 zY-6^7C1}##jk%LF!rkh*P@V+Ml)7CzS$TVS_|uE+E!&JZY-n%i?c1}J&6R^kJ3D;m zCp7-~e&_MUP-vrOrE6EJ01v<y5+!n^1orci9CpG7ihKbK<SbKM2~A@`yoY9Xs;`<i zeX;4S)oYg#GNoA_92*P~k=7NO39S0Fo-s~pZ-UIz9|>o}P7q6eXib^82FrW*k`iWK zLJS<b6jqsVCpB)t&@pJx-di{gP!2^Q4KygStm^kJ=87(w7;pNfOkbP5eCwneZXr}; zj_DOFr*p~k1Y&`k@R-~tp_T1H$*S-#0gH8ebN^oP^X#S8hX5bpJli2dpacbANJ3+e zz)tsXbhec~E*viL23?4}1k=-N`Y1fOhMfiD%S&=Xh866m_bx*1Cq?M)=R)13ITGXd zQVuMto<4SS2nr&hclTtN&NY7*Bjs(Fe^fNyM{sv!t`KlLy@6$|iF-kk7LdIu!Zx_L zxN{KJ-of)ncA0tn*me~rN=d?S(QmO}w7~fEsDfKiBW6POO*&%UC#3gY-3+5tL+l9u zbH!DGi5$(!iY5;>Uw;4N_g}yM{Xc$j_~Lj)FVdc`Sfv>>4G6=3qe-oml1c8Q00N*B zuSD39lqp^aIKpOMhf^}C(J`i3h)xTP%8s;9y(Dm_C<+vVhVFxX#bpN^FG{hT9iCpk zIy&Cp-!%aC^!bym7weB6?md6{6xK;f5xy<aUzn<8IBi^LFpob_{o`T4gyj(RZ|*P8 z>Y>_G7qui=4}4j|Oo39&=~^;)KSnzy0Aue%L}cgc7(eVyIH{m+lPx2xz^QA*3%yGt zi<ir_$SqCmr~a*bv;GvIyyPZ7way9hPvNQzeaYirTnnXV_^ngnqm%Uglc+cYm4P%y z=TW5L?1(oqEdlAnha_3QYxKGjl6&<=&5Dp3EHPNpSTh2x#;Bq#uc9&DueG5EqM?Tv zqfDY|<ZciV2lT1z$_)kcribyGmNuDlgEro1sf)M{W60VC1FjFxHDrEPGN6`Hhd1SN zEm<mOy`#D!5fGuw?1C^clLQ?rq?bz@*5!!0Gh4SBb2*BsHF!Z&V6kR+z?LwJneY2M zPk;6N$)`^r{p=x?ZSEmmJW7l$&GNB;Fwzju1~-wSY_~{WKn}LD*|BL(=mc}<nFic5 zjcQGQfUUml?W`MpesgmE<=3x&_usz!;qw=_r>B?(wG5Zk!?Iv-<<bbl7C*~5nuFaK zM@<p1OS2P|BqlAL$2l4lIV9;{Xr$-UaRpjxeVR(gKi%#<oDM_S*G>uI$Xq055%?5^ zU%Oj7N2h0w>n(Ef?#B8g;oGNApB#OBh6+Yy_YZdW4tBPUr*9HM1Jb!PshQ|l%T)*M zf&q)v6$1zOgoUIR%mNieX*lgj|G9>nV-AWz8Jf8mKwTj7q-({Z?MFT(sU@U(BqW?j zP^vDK`l|H`9(G>Y8nu^kS3?RdL`|hxV52bI?TgeH-JSi1Hgb=+5WLIqneQjHsjq5+ zArg@`OhA2(8<{QA9&AJjaDkx)9uCQA`ly)(HfJz5M;~`Qs)SZCinV!PzWMBmln}bc zrB%N266LXwUMI0iO>XDH&S?Q{<PXEP?~1(LY9xQdGEL@8Y$FptY#`5qLus_gmAmT9 z$c_%6j1A6Vgr<g~hB?C3uh5YmwS<AdOqc;-@>xMf?->>_r0PN~e{ZFYVq{ix(;MuX zsv-VKEL%}mQq%Hrrh7J*F|~2Uh7b^@hf(xMleN~YdTfML+Nq@%*47&&-P^D;<l~<` z{`BAcYU8o(sLYl~tLp2ruyx=tqqcB~Glm3JR2*{Z%G0E=+ad|!ZPZYfR_lx-08vrt za=(ICB*nao2X}8yj=ucz<u_lv{@1_%<JFrhLrfy^>l=G^&&ebk^Srsx(b`zGcEL)f z<|o_}NlH)t)kR7dsR=>229}SfJ^dfrCbIM1t|Z!{vPg2lu=H{KJ-(Cia{;h8M^0!_ zMq?nBBG_Bw?sk7?`}HA-U0pqPV&lg7#mkqkPmGG`{faPezdaVQ7tnH6pffuo*LD+N zk|rp(R)VZ^5$jlCBL*e<gL|S`gDw>=d<1U={lhlUre%N%t~65=Nq2j{@F*6DJ^EE2 zBId?0ab(2~x}}Z7E3@U(i;#0*VhCESa7flinT1%m8+nVzuTSJhwYzPjPtj6GdEm%j zj`8MbXtOPiy*oj&>1Vf>Vio4+%^GV5VeE{cOTXxF1L6WI$iH@acCPV)7BFFa#kgCh zc;xBw`l#Ldyfg(=eGY3oYp-Vfy39B=jax4^adNT8S7WzKg)=OlZCt-xX&-mh7~>{> z&5diGXb~=#8Yz|LzpU5}b>C>94jXwT>O>P)*z`Mx_3GAXTh4kn?q`ou@W2fY1f(%K zd@$-mLxF~=jPAEc21}ulJsG%dWYwxV3w7RI9N8~?)yY>^O=%E~%~_c~F4ohzy>p1q z%&QRZJw3Yad=XnxthGt$%Eqdra6qREyJH_JjlD|)o!;KQx#bt#9XwqB^w&RgI^K?D zr>&Pk7<~{CR65Ht*T#MorGc11`D@NgsPdT8o^@2#?aFpuBQ^-7akylSVA_xzI)HLz zne^_Zbq!`9tgW6~$$x(F&F4S<@n62WJf>4O9E`BFxq}NgwkYeueyJF4rwRPADOpRQ z3W8}^3X&ILC~j76Y679<?-3I0MndxKm;(k_e2|8LRjyK9xuP0L)ab<cXl#zph>&F- zE(^CMgF9lddVG0`b74;t&oA{eZni9dIC|ie6ZY1%ZPR%}y<3})&E0;yZ~NMVUFVEG z*x%jZaE)H((`=tzb|_hD2N#iL#IfeMEicwZyGSeorcSiQI4xjIU=*-O@2y&FF`6s; z#S#qX@O3uyZ-lM2mlnWZ#ZZ=BvZju$BLZ7n+s$ssLbR?#r#)7ws~bu)6T+O5uNu(q z#rjV_z48aCclJ$MXu_0;f2g!2W{aN33&SRZtRZoLd;kDI07*naRJ9c+akk8N-S(NW zh_`NqOr%7U(!-?$K4;Ws9h0rlwzf{rPmz*ognMW*{|`(On-DLTAqsxA4w*D-8x{vE zK_?mC-gop%lh9czeZfRN*siyB^S};AO^daPb=5kRb4Qy!Xzqdesy0xtF&~R|b9;Jy zs&}Ui30`dHP@bLh<D+;$xpm`g^VG_Is9$tP<J)?mbd}v-c#kGm5mrSsKqHH9#M}Cm zBwP%|i9xJY@swL(8(R>jlA;`KlfuzW&B>t!op9Tf0Um7zMH0p`(}`?3v+#|)*A}Uh zLhkPE^JmXCKi+@(i|6}Kog&cs9ufe7^=B7*RBjX`%;DaYBF7{sgbxlm2?s<=I^Ej^ z_SCi!EC7K3Qfg0bP$n_~OY7RI>dP;_`RsR}fA{5&=O<UDGUMIrD+gXK>x$wY)d4&` z7@NmcK=8WojhA>JKdH;7x$p?XkKt8J?Pl>l$feAFSX`_qBRdt8xt-YLbn~mkD|GAw z=Eq{ll`Rt6%umiw%8BLOjNf;8e0Ki&?Gg2*f4l3T&MoKoZhiFh;lqRd=N~<`7Z@F7 zf;eaj#5A+w%6QV&s<Cuspbj%^W{wkqoxpSn(<ZfPGAUrADHiizQuNU{U<`R0*8$~% z4b6ja7jbZB0uxx_%V`%@zweY`0AW(my(s}ckB=QAj*U?-Jjkk5V5z7X2VMXAoA3Of z-iK-E2@GmA)0MG?jN#(Pjt&R<!NWbAtvS0w?EV=1ngA@WQ5;5*hPig%*QYo*&}b(S zd*jHt8~^Ib=w@gRnKb&_lJ>p5J+<(Vs*9wz#Pb^eUY(rK%3>>K0zwH4f^&H=PuxcL zU3GQqNZ+l~Caq|rQ`a6gga798oIp$Ogvq0`L)>Ult9t7;__}$-WxxdXBX%(nyF2^a zYrDFoRgrePy*Mr~(^>$Qi#ItlH{cy3Do0acleq=}tzpu^jx}D4YB0ft_>(ELW(Z;{ zjjql7^R%#3?CI+D;n~T9wPVhwWjk3R7Kqu+=VzC0)(iuvn~M4Q-lJbWb$VEHiq`~K zwjpTsCQD0NV{x==U)TEmqD2wHqgMrx`B=jE$d2VhSTOs)NnIMb43+V;Q^9<X%UcV3 zXg0ieb@=-D%RhYc)feBrefe(7sy1`4RO=Aki3Q|e=F8XdfrW)l<I-{eQWkZdbQtIW z;*d$4dPl?qpsP24%Oe|Kt^VzMC@0=%SfG4EdP<I)J|at7q-lnsQ&?)FeQ<+lji#d= z-ZD|q8-$9Vd7viiU!AQS6Z?0sULQH&{@LTlkM<oOx+@oXd-#Y{o61VFv;U@+nG~%Z zR78^$zy+Bu#+hyyCz9Jz&m7zFT+vN(t^wBy4`b(AM}y#&nZm%G!6`JNLMo61nndHE zMf8h4FpmRtdn!^p^M)l(jdp3h-;)>8@78~O^NPUq3b(F0?vyvRDr$oLbo@>)&Ra=5 zO93&2S!E|DCoqVWx5?ZU`qqoX*yb4Gc(h7-Mqru%NQp3y8yh<h_m6l%6BcRk1q&39 z1`lMsl!lu(a_jV+j^P#b@S9~Kv`%=GPMOOHlV{MPmd0CNqf)9QlrUCnoq0pEHlcly zuJp3=TFeAqRg{-`L{QDaS-aKONjK>yu|}K6jDujW7Fh$J*fwo55NKHc^7822n{6x5 zSvVVD7M-9B>F0*j%`RNu7Aw42*|jba;W(xgTCVBvz>o+DQ3G;JLE&W^xiOL8@?@Q} z&#y6o7d`R!vcAtq_{z1djh%t8^JIPV+4k<^-3{w|B;t?)HE$;4fC6SjP$|R}wTMXz z28c?0LBXq1BB-n*GDJ_y^d7D2a^-T}uFyK9knF|q<}FhGNAC{5`r~)seeuGks^;q( zA-Q%;tMjO57(7Np^>}bNr|_BHjaurs;Vo=E)u>k4LEtB<#fN?9=i;x$%4rJiQl!$L zAo@y@_fXpYC{qE&veK3+@NUd(lS6tTZ-wM;FV}-}^T2iZi_xK5tfq8^Mu5)-Ugzgd z6uW%6B_xlDHuIxjt{xoh%B&mm`0>LhPahdxLPNba7){Y>FmuC_bGa}sG~$GUSQG|e zl53F1ImK88o?r^aiWT38GO5chuN$Pt0bF+S0>^Bg!*KJ{ukotMuWU@o5|(tv<V$p2 z>xaj=ujRBFSf6skKJlyPr)N}-C1?6NwmF)wAY9!#-#WFU3a)$bV0T-zDSIonP%}=$ zR}OQe46KT8aB`KizQZxr55&$!O=)79(KSTb-rgm*(kHj;c_5YMGUuKG+_+f1v!Q7! zDxY)q%azjDq?ZcTs!lqmE|^J^PU^T}KyaldO<i!*h4fpE9~_f#!6Ev{ARv{@VIE^{ zU9y-ybWxk3mBt~@sKVu-S~dCj@QC-6vs1vfu>tF+4RitZ&6|}cpFDOH*7k#KIs)$y zU2xV4^v24`Z$mgD0xXJQ9^$>ZxB1{WYk>NCYC3#&Iu#Y*c+iCx)=t^Z@X_9ueP-+h z&f`!fU%#os$m=X`8D)>Tec{#DzT#nxdWaI?sZ<{-jDjEAl+28g8#%!0*~~17q6p8R z9a397`10kOfBdii^4*_)xH)xH4<#X5X&qe&)9_N^QyF_~>g<dGWwbGuT3}vj_&b`G ziaB(2E=<gvSo*6$7`{iIsH9q=SUyV@caiPH6x42DM$zfxdYK+b>_1!$#?+u*wEC`g zum;0{tJkJFiUN|ahCd|GUv-AbxJwRO<N7ZAKx~1#x7&g(e)6M7M-N}V70_yYcz5gB zvsN=>b{b%JH)~{l1&;<P>spG1r>kp;{y7>n?<56MHzAbcM@rr*A1#zTwK=FVg93kW z#jwOU#pquXWuh8&6mf+71y%|kO%%zCp4X3#_5HkRL4-TgOJR6uwA*bgCuu8C891%0 zAQ-yLL>e4bq#X1dJWmeOlCh6yHI@P3&FS&!>gmbWuKlT#Cm9OZVK?<VO4c&T(NdH> z9c;R(7W<%;0$%GE_2YR0L`C}sq%@iQctS0p^)j2q)3lEn<+5dN_r>w?F%`LMFNrPZ z?qm+3Tl7icILa@eDH#|YcDB~phYfVw!fs<r>yUn9yM@;@pgS=>T0N!aXZS<?ISW)Z z#bVae&PNaTt&`Z<znt)pR<Oi28-{X~VJSR`ecB&tCAP4+nh8CfvBd}D#pq=qv-5i# zMHg<a?Ff1B(cb3M{r#u=R=}hwitiZArz;0{)Ir`&Lq2VV)L<%ERdX@qtWv1WA|(X{ zv2$pKBBX2NHlanI<TiXSiiY;Qy0RtKSD$_Vhkr5;`S99w1|`>Bj#`L@5D-3wR(_1A zdC4OLR%ZrLS&5dPq$WQQODAr@GgT$orKbXtvshDl0FC%1f*Djl)mgtJ9qs3GDF^FM zX-o6^MT=Bg$>;*5neRnv0;tfJnoZa6>u&Az@&fJrx8gW$+hSf^Vb@dVKd-I6IXqG< zakVqSx8J`I(0bB2#_LCiCnjduQd58d2{m6w)?!PXZ#l4vDas5>>pwsu45O2h$T9OE zzp@?J#U%+E6lLUS5rsfCUBLFx{}{6VGp(`J1h3=sb9^|e8Ada3S~T<>tX^GpT#8=1 zhFN%#`vLiwB>mZbj^xs~297S$fLbCBoHZj|Dufk8PwS`j0SQ0pHQISah?NRR)hT)W zr`wCeqe>WK%Z--@3YzIX`)LqAONde#yi=aW%H0Xz(o-oeO*L^*6-w~4H@Lg481fdi zbJNz_N1}Ej#`>}Bmc1h^Ocz>ovZL4-FR#8F)VsI|geXTc>%Faes%_!WX2s^>m|HNr zlWq=$M7dSEwr=aD=C}+;7P0`#fjIS}Jw5rAy`2a4XA_gKH3Wd@!I6A!4(XtGa}F}C z`BY|HvgJ6YfuU=&e920DY?u&22&N$Q!Sn5petEEZu)XUvdQQOff{a#;t5sYS9dB_- zA(E`DelVF;G%eKp7Fq)ln&=;{@&W=&HE;kqp2g%dJJ4uM%E))(F;h_9y*>Wsi&y{f z-~Raa#mSvOOy`vl92+|+ObK&ZFNF*#DB?v{Ac<ACui<p6Ssp$-2L~920Ys#dCvIS3 z23MKX#$e`RMNnJf^7^k!pD}L1Wj-uIJMZNKb&ohtG6hz085Pg-FLF-NV4$URg@{6A zuuML~1Nt|dEz^Y3SKvyu%5!WlFOvLv?d7f&M;k9+zCGCAe*F00+0#ce;o)xkU?=-& zx96?m#_5QaS=L`5opWNAQH^PsyHE@3c5CP^Lzb+=Sf6{q73nP$(z4~?yATai7pHis zuVEwcPctMM$yHN#<w52LozxmF5~a>AnAC0CYZ{|br6f~xJ><<Vx|`L3Fa-ibxuGvT z+AxyrqHq{ANh9x+(IzQNF>}aunIz#jQXye3(zj#5(kbB5=r8Q=Zc!GB4e+EFlv>f? z_#!rvvo9*;{jQ!lT$ZPZ3vW*hKA}AcFeGq&bMpE%d!`dxB&kiC?S;}ltkV{Ihu>Zu zpRU~2tKe(GGA{xO?RsW3Uk;X5PCK&<hvCyfDgjzs*`YW0cb|Ov$)o2VS@~`hWsNr2 zYFONg6n>P7APhIB*_uyaaS#4<pkA9damJn7r$GIFo&Z_at*xoMYkQCP9)0x4D+616 z@$q3<IliWl9L^)Rob6^075QPT9eY=QyJ?MzQe^+=-Y#*P)<PRl4-zT_#qw7X1-D4W zH_s%}GENUWdUN*uSBIbd?)$sTHK&0(Z+W#{=w@+<E>S9oaZnIBWw&g#f$@t>i>XBZ z_+b&YerZl(G*8Q4Uo(tNL9E*r3=D0iGHgi`_<{%xE0+>?OBA2|#pR7(i&Q7ao)`A} zAn;0RFbJeIciN};%E$B)XDjIe(^H^w#U#obC$VhqSpR%^Zom1`a{2CFAD%ooG>z)| z@Nn%V@%`w@<3|rg5;iZ+FBplfb#ZAR-x>)uDrQe85z_UoTT2dU1z|q@YsZA%BIL@& z(fxi=IF1z|Cc0w=sBDGlndb;6dQ{gZ&A~F>hGxknOmjETe&iPUm?%iIG+2By0fhS+ zIWop-frC6V?$9WD4u5p4%pz})!?<tMKfk{aX2Gi8OiB1621B--pQLk546Cp)QAp*` zL+a%WTYBne(@pIDAxn#}083D9bvt5NC&=g~4$C$vj&gLa>e*}o({>&Pwpg81QT@lr z3{*xKcU9fydL01Uo21icL*TWQa~?H1@sJEWz_B47R~;UmC5^B7(0XnS+tOJm%<h!e zB7W46jQY~{k6qo{e)j1n!gM@Hq%+$=|2zQ9?3v(%zJHz?$tA{AtbN1bWA%>Bw2i}y zZ-2B^vV)EdU~+bM_jVpXfB57VPaggHqctO?J9$Hb<;EGc@Xg7)l^r`SZ?5dOLq(nI zan@yYU?sO*&$bvFUn!e!Q6>zaY1W2x5`p6V6BAC+gBFqKi_O)e<F^l(ko~7We)Z$; z|M{!``hWcE-TBV-`5}p=A}syoLpD>&dCG0-$m@pfoD{Bu6Ynitn4#K*1rnj;!_|{m zE~L>C7$FkOdyNf8zGh|k(omMiF*_~{`bw7WsXIe56KQG!;)VsXTNS@l0k=gpuze#^ z&3i#2vM;*X2m)ST`~nYtsYUJH2?+KqW8|{66}H8f=-cu*??J9io3Ot-Ho#aY@c88H zV7~=PFlkMN)5c%j{it6~99$x}n2@wuUtK4_axYxIWdgrxNbPSQpJx$QW*DD;o}Cc$ zF{ukR^vHDCD&gXiJjcM`WL}iD2(5Nam%`6=&R(5(DH?+*a3m)ng1a@1w=>VFHVFoK zsWKOJJ7kaYOS$kE>yN@yuJ_(3%A2L`kU9!A-obSZ2d!W3T%VmZNXx(8$O^9SP(#LY z>dGo0(sL7)!+E#;sGVKtGn$mHsl!0Ch+~cs#<g}dm7XvLy!vpjoP1n8jPpXpq|-oa zN=A`U7f7v5kSyAFg#`LPtxQf~O|Q8&;@ZYz$%<mRQQP~L(LMb5)1U1;+}jX%v_Y=T z*GjKeYp_Oxrpq;-bi@jb9ESCiNn~sdfW6z^d-v|m?a2x2y8d{3`^m${zx??pzy4(V z`NPXi%7qjf2--Nd6_{;MH?5UeJ+w{s>D__;7S`D|&}g!hNI_y~i9WqvH;4|bx0uOg zUIhoTcr%bNQ**Je*5^x8RkpTbL(WcbU%hzo;`_H>|LMm!Kb>9KSM{>Onl!Q24#05G zD*R%DT=09rOvf?$V%y|F;!zM)^*#ZFM1iT^vkD_>^vOpXOPMTDv|jg6Pdd>IX_`do zX~*IrphKTYR!){{vPnGY-`7}ih=d#M<&v1A>nM<{Lzfb!qN=Niu7c49>-958M7<07 zf`A)%D=NzxU~<}n5_S3#Ecjrs&P)t75uZfj{(L;ExEN!uP5wgf5ok*2;NsPSDLAk2 zY<5K@nCsST0!Z>kD8Wzuqhwe$B@&_%v7nvHyeEINw-Yxoh+=+_U2E$%Z||h2F1Ux3 z!OVx0S-A@+`h+G+ARe9`$C^zlm&l3grSX%$p)$QV0b9i7Ns+EUiz0`s9RYNfSiHI( zlhNdFPFKO)hFS!gm<*Fm$bi9Qt1E4ydwqF)dIFaA5HW;oUnP2{m=0&-?rgeUw3pJ7 zTfU*znHaEryW=3~sYPd=61}9`Sd1c7NQU2H1?3<a(FG5dQGOUH_Cpw*CxQd?Be&RK zlzjg5*{8qy<<pO!lPqy(=jAbtxRM_W-CPl=_%4u-qf!L9d^%nDDQ*#$azLJ06vl4O zug~^&Rvv!3`{<XCAAa(5<LSed-94Qcr}SyaTl8LcWS$=@c2w5u;8vTLpk!UIQG((i zhPbx$sq^{Ff@;VS2<hou+S)}oHJ;aQGl@pQRci+dZ#M(PX8b4LfAjqxe)rX%KKtSF zNW%Kc<s4Tv<&|gKpb9xs%fjlugOD$eoOd>xUGSHtj#Z|1@FaEwpc<3H$qEhG+;j~8 zgRbGNFS6@PboalH{6LCF-D!dv@jfCuB1f=G7QYdys;jWjo5!Zo%&ON|ReqIp!BOZS z5fMTGqZsr*QA9RUE^pzs(Hi5oP=frXYNs3<_vA%f3WT;Zu2ABQ&I=CBX&?nRSI7K5 z>P%f&$R|Q1M^;m{qjZQ;{nLr98caE!&2n)aHQ>&YWtNMBG+@Cv#gO0`3{^YrV!&1f z@UO?dWf#Eu8%>Y%?b7^!Ej~<h4?&(JP<h5wO&{4X|5jPH5N!@P!~t4m)mPy1cK4=Y z)rznl97{va;@sF}K{S8P<~KLDd-mfgrLWuD>6_7Af^$@pVGrlFpJR9v!F2WZZnx3V z3OL@Ny6}?;r<Bv~?CAwnTIh^-ZBEMowz+9BhY&#}8v^1s>tCd0Hm_DM0Hz#!$ACE* zo{5cvrY3UbR_HZ0u%8h&o~&pix29?Q-QWG)FaO<dcAo5BKDaqGPm(Zo@SOQnz)bj! zK*T@(_mlSu4Mja5iZdqNgG(4CypJEj)7Im?-A^7q`OU{$j}A_3Uw(7O=jPVwi`ya1 z*tjKshleL$ef=Gk|78E+r@vUgedfH$m5trpIuAsGKhgj(Nyx}|Pf|iSw4)DJr8dSM z=XoYi7>SGX;`>)b=j9Ktzy8zrhp&zwtnAnZtEp>d0x+|<A4fJ}Q&Ad&ky6uY^oiP2 z;xa^svQwctqq4hN$p@i@-Ci!7H{6uQffxvy#L_R<qTI((h|}qfQh=Te&oy3KrFmZ^ z$sq`;Zn@Z}`d-m8XAPVq)P-ge*6Q>}Ce4z!KzZPjNg6!~5fw$Y_)`)x$CEF{ps_S< zfnx19C@?3Do1%1m))aT91ul)po~5x3)&a&()|EmJNknYgW-S1CaAv)aMWpYpH?L=o zlV+q7sA%%mkYIRzf59@KL0HMmy7!RC2{!^dh6np6sx{E65?wpeSHIOz5a%Y>%lq91 z#8QYjTM5caN~!fI%8qME8>ul74p9IOFOO{Gx<D7LM!O}qGKnN7TiiM`n(&j(qv1V{ zhtabf^IaU2WK$fBkm&q_Q^2H+w1G(2FohKFuC4A1i*Bye(SW`-Si}7JaKOmrHJ1&# z93E*++!npFde(%Pc9Dj|g?Ok5pjsJ{FsXJIzd-1Vo3rbS>&@F8Tbc7tA3c4twa2M< zI!Nrna1#rug?6^hi!=$YSbsicSK6J+7R%=vnGR*^DAU09oTa%b9P;cpf?H1vJ3QFg zX1KZedcp<m1%fuW-d&wL!SCqk?wdayfA#sd8+TiO{hP!8<v;z0wcDL1pYTLdtpYAE zN$Jx*ajFn8{Tc9egV4vMjus1yPn+G3@3RRGi9dShT>85&|M<gC-@i5zaCd2@+KEZm zT&}e(-mi5HTbGD>)A|s`wK(!920Yel?Ptjs-XFbRliy$P8Iz>5BZt=nFKnbuT)>MF zlWdB1tS*rm5fgyTZs!A`M4|7zh-fxqH`!~NM%+sx)v~<Ec#QkuclsrImQHHrMNxf+ zMp?_7F{8j5_FKv%9(YrY9vA?6r!n}l)<qXF;!j||A_)dpW?u#)x7<#%1x0Q|cSsa4 z89Ip#6bug<IAMncMN;SD`m&tsjWiXP{mtvlKNx^aVKW<aT0dH;5^CaHDNXty?g#wC z{XK+-DU{aXrmf6|5Qo*e#Ib4g*bax(exhpa31UpUlfVyc&fbpF;yVEyy|7h|Zj<pi z7P&lf!I&~FH8c5v*bzUU?0*SEq=+&|O~evR)hxc3$4Gfz9>Lk*S#abyBG8IMIj4fL zv>s#UJREti*QrB5Q5H2;Z?Mi+k(u5IW>I+osHbbvX=-XPld`a6qHu+HwQ}Uv+b4&N z{Nds8>g9v&t-VgF0FE%##?I-=IoB1K+49(PdVp%vLNxNFUcKKjL6)CZN7wbcy{G%< zH#?%q`_DH%{hPnpd%mNKu2QTJFJIb>pY7f{xiKU1`pwJJpT2$j<5!0-{&aMC^7_@6 zhYaJl|MRc^!+-qsCx7+i;p$Fkx|x}z%iu<%?VE&>d?jLnz=f>902n0B3uv-6^<b{r z%{oi_+kgDy>lcR>71+XPoUo)6_uJk0+CIwEKl#xB9Gu*SS6Ur`$wd^;8W6^~YS=55 zsLfNQyPjYvAUYQ5;lmZ3-pkB9l<&hE$%y{+Fw{A}64Z)G>X(dTJ((R`<aK%ggd_0d zY%{qr7*tHj>5k-Q>2J5o+Rd4>5u=kb7<QElS3sNb{NlG-sr^Y~>pd!oRnN^qT;v1@ zfzHD!GoDmZV#U!U#=1D6uK5Bgjn}7h0us86E3GoT=%rdbgO!Z=nI;%d_B}>xyh0=v z6El<?uA`&Q54r7;!|CUxCz1^?8Nw6?ua;K_I#k1G?s|xWXtj>M;a2M5)!_lRYFgrR ziE24JsLt&ScuGKP1Xq=b?5s2i${`bzPwKC4^jZ@kt<YXk)d#!!QP-A7GpX2`FF+yF z3qqwQSV2GD2(YAbs5XsCtEa0n&jMI%>2=fAIW!Mw1AF&Qj~_b@&E}78Dyza;w#zB$ zE%wb2G-so|7n{+vYHvj$0RQ&3&&(=8Qj}L4AH?H$7J4cG3sJyGv4yrcTlkC~2A~O? zxy%oq|N7zn$IlG#o6_tE948qtnjmY-j$6y+AH05j{>MLj_lLj#<MB6dZ%?lGjVzp8 zeD=@ZoSa=;Tp$0t+fRS<w;vrmc_c=y1|2Sfr1-=t*}^I?fhUaFH1G?h95e%ex8}5* z-@SSL_M5MN{ICD#KY#bd>voa4II~4Fu(6!U$Z%yKa2Ce!*HKgaqlQl5m^XV%PKZ7X zc&)KsxMW-&;=JW)?%t0g`-@jo*77^u;J^1mJK{=qMmlrjVi{lOT3Y9E>YBO(1-_Y+ zuFxN#K@xwC1DQZ)IM{wsxgvQfZ>?-pWpv8OEmN0m$4LgTrzW|Ry@Ekm6Y;GX<fNzd zZ_^dvF6eS;(@7KW)sV=M>fmQ%u)dn*j2PAGRlQ%8O1ZhRt%w{_pfGA&1SIn%Shc@K z0tj8|)ye2nQW)cT+bDHE)Ym-0_GMRY+H~+zmjp6M!Ni}cQK7vGh*7BKq-XlQ9DMbF zawbmJUCUTfEaFM55gjBUZLU)hF+vmHG%XpMkrQYt;$HW?6Dd^&IR3W^)n(#KbcD)= zMg^8hR|VF1tm$fU2R|jPrRhV#@RFTw?cR-%6Uso<E-J{qy6U_cI29l!`xXg0zlw)! zUu`2Tn-{mIM<+)Q9_-XXUAa9yd}nenUxb_ipI1(Dgq6vY4)u=Nabk6G1V=hrLd?d- zwxGbJJw;Jt=fRUl51;+~Bf#n?#j^sqMb!B6$Y$Z+)vK4s-~92%uRs6(^$%~>POnx^ z%>WTJ+dMlw|I_cjJURK{@aV<a>0kftzx~y-XV5ER_b^Pyl-zcTzt*`IF^7#JMx7f^ z1B2h{%<sN^`P;w$?4SSp@99$5wuRHi`tI?`aZ0=c*HgN-%+SAAUfhHP3XcQBwx*3F zRn79-9kTsfzC(B)nsOeFGrB2-;iwN8<^lI9JRO=H>QxSc{0%MBJuV*hKrnTA9W|SQ zql-ts)+3#27cf)Unn1F=k7XNi;NR4gIE@X55_W@XmsuBsz%lDt%lM>@5`j;HXSe3^ zD()kMLc&ChM<OZGw`O@bEaC~R6YvokEE>cDF2;xh!&b^ocwQ3Ya(gsiw+y>uPQ@r{ zQD!iA+JrbJW+ch$Y6h<^G0D+o6|GGYvH_#bXi;?6Z>H}_Z2GdA^*JDY?$OG0og(au z7dnC#)RK@WEFvRGi^it^08`9~sF<qXuzG7sf@}npBQHwHKsV)wlk7c2S}PmFo0t`W zDSG`y=zvGq;E~XMS#kzObBNxxKzK3a$mfgFH8+|YB_sB^FM9fX64PAhVQt|G0uq=o zSn7tXZ2_ob3A?5=)KjqkwZb`$Ix{RgY2*(%YL*T@ZKJD`jlG9J4K4LeDCu^MHl*eZ zpxByHHw&^5^R?l8L`uKj+SA)aR$l7)*5>v8<CQ1-t=b<idxf^%+1)e*XtD=We{pr| z$gEf2zW(+PUkRdJpP%n-w94${_;h`5(-OmX->>}k?2C)T<4wn3|A&>wPoDxtWOv;@ zt&TByU_AL$fF7>#D>bEKU9e!~fe~y_y*oes{@b^o{mTzqtGg=?jxR5cbTTO3jrD#0 z7_1CUH*DG7M8^k?)k?3WS#!F1fQeTYBIJ$yLV7Hd3dJt*47`j)YcX+-d3~|gZyYZ| z();2_JT(K+V+d3;0-J~>I(UH*O>xBAB%jg3gmu@9&6xjy7ddT#;yrFvb>StSvn*1Y zj-K!-Ruw6ZBuBk)EG0eB&MjDG*sDVP&~+`mOs7xpCZ~`rlaa)lGeyYscc>uT*J2gl z&9;bpF&ok4M&CBECn+V|96W9sKT%s^xTeftL(0@{L&Y93t|8^(seMm#PzR}UZO*oZ zCQOZ|W(^1V&h%&hrZ}Jdc1Iiypr+KZbQ=6dlFCCXs7vq^q_nYTVW^)=n%=uwRG1mT znutiFHz7k<OevKkt_ziz;l4Bo)vgo^@asmwBsoVhl?QgceLqx5esRSN8*;!I2JlZo z;D{!Wj^q+krCI@inU7}NtHp*c4V4Ua`bYR9HcOB3QdfY4Al%R>xyTuQcebQ!_0A3` z{6Y&!sJt~>r<goEYkp~As)^y^P@JCMtl42;`{v<;+g*cB1c^6ud3SbpXS&SnO>t)! z=<y@V0IsZ+7r>)%%$v)cuHeK?3sK+x^yb^oeth-y>+7TQgZ1s^3S&P9!`+xq%jjKQ zA78%`LOMG#xx|c>|L`9-pM12vDx$7G631d_hQB$4_>#^tI;X>+M=k_@c6#>5&%XTX z^Y4$}oZ2d1^KibUhz5k)zZWya`g-`tpr20Auy<-vxwvPjjwLY^A}fESGu(GY+_~qU zL+xC{SMg3b?p=a4DHEgE0vSq)5I8M1!x~9iqUx12F~O*ds)!M=KfNzg->0w%yCl5W zE9>n`#>xd9OWqM&Or+kjN>pk0Y)%UWIwjMU?g~uFYHH0U)eV6Lzf4Nt_5w1Q^07c= z-3Fx+As_R2IR)8aQr>S)cEUG<v^5AE^(Yl?K*gY&V&zxj=#C0W+s2XsAdJ)dM23K% zN>-=ldT{lugEu>}tI9J_l!&J#@c<owkhuHg>%~NvmNM>>B|<qHN+3x!bS__03M%gk zNfInq8f2<i@KqxQUrWX%x4YNNn+gCNL}A!m<@-h`pC_X<q)ilQryd*}rI&k;9XS$k zUz8TNsFQN2kEkD!uGPc`w{PAZ60J8Emxp&&O|2atpFP%*y*117gp-B}P@ceJd3~eX zogdyD=^1WroIQVX@X5zc4l(rzoiEqg;}YH-NOjq{89TeO*mE9@uU5=VvI8*Tx02<- z(d!4_et!Pb7e`0m9o-(CuR5{08N=}lQ+M+2otUvT5ioZ0=I&qq{>Ssvozvs(|M;Ia zp8ovKc*V7Wyp_GR4Tp4!mlz>$qYvoH=3gD#R^jbWm!JRc$It)p#qrTwUGl5T(|Uw; z9AGs!B)y0@<DRHxG&c2xOrhF`;eh-1|D)LcnJ!QwuhcHJqjH2xn!P}gi0Hyz3hi2G zIy^=MV3?qMpt1+0ExfiA%K`pSzH%zuz5Z8W>R5aEBasUa3~wYtHDDxf-jJM3##~vO z0o5O3P|76m{u)_G6sv~>=l|7=+R_Yp{#24tUae_HO4d#TeP8x2>TRYZpK)<d0($AC z;>#KA;WUn3!O`gynMqa{OZ$icg|Ae|(gG=<ZsZGcdc9nw?mhEG4@FpDsovM+Qy3p& z-V<iQ{xm)(P`l@%x)F}VNF3lSWFslcsU4C~jB3R&UIJW^OM&jLG*=g-N3BKn2AwdL zTb^mpe=m3lGM|=Wc|4wD*#VfCfyzjlp8yFrQ@d`-;1{$LBOL|5xN;_~I$-$p(y5Wx zCu^(r(TB_mD?qI)EM86rwKcJAdH8&1w+~ME#%7;hcL-3kx&(Fe*w>ys?KJAcV;d<L zec0swbF~|$;m;b3;7>i+|KX2szW(g+Pyh16@lPkKCs+GTo4Dkpi`6y6!OMV2M)3BG zPrSOZbM)r&Prv`^!TR3T!P?(#{N`s{lnJ>jo>|~x4!lNB`a*<Fu=@P?`n%8Hz5Mp% z-RpO^y6<$IXv&6oJ}PwfN)i*ZCb&F`upTKE!RY4*ZS2th5rj@p7(QIyyM|09!Z1F0 zqm+J4nM=8F9vjVtt~4x4N({MWS^S@o<nf_$4W<21QHhBo+5?%M9rd&%P(r0vdH{d8 zfZ@6JOhep1qy*~%jjsz3rSY;drl3qn`UIOz1CxYEk{91M>@7=s8OS&M0VL`rjW|5X z7M@jD;ds40G{O~vtnMnUqGklE47xQeo~qmt_h6Qbgun$ogj554xp02?Ra>*|r!TrR zUkatwj2fU+KVfPq<X&IiJK}-0=n~b0f>8q@icgBg`CIA*PJJ4+b@>Ung=TV8vAGrF zMk|9IrIM=mp01jiG*(J6TKWA?%aUC*#CRFFCB0%xZH;krS=w~h++)2xMS-LlW#j&V zM92Q-tZ11%DWDD-&Q3VC4xPSgFMOLdwGYdK!*{H&752^Xa^ySYPQ|KOKToOZft!K2 zYKG#~h1GD^htF*8i*_-}*7Gfqo!tYg;Vtjhc@|0Lp$gSr8_YL+W$wi1pMCfH|Nh;J zuU?<Oddv7e68tiJZ0aR-V^a6c&F=a^PCNI>O5uIuW2>)UzrOqIdhOuS(i2nOoyTF; zfI#mI5s*e53<FDcWjxjkd;9YEvw!;b$1mSG7VxgH+j1Fupjw(MW=K%4jWk0M+{3Ip z@)cG_Caly8H~fI1G#N9vbw&F3*YLskX!G8u4_DM)<Z7H9oG~QC6G)oqCfYqgX0udF zONrzN4(I$uMZ;X_Y}GD(u*ocU)D2)Dr7tSPy`P@vy&lAXl%OmIn4nYzn-LEs-b??B z$s<8Zk$x7pBn4xm@pMWKYf`}>gz{@}SJh#jX4e}OEXC3gRxry_HIq))udJ>%1-jY# zhW8n6r6dB7ysY;a%q~nm>I4&$t7x!XYEqE<f)o!yH}a{4?{WU;rv>^jIoG7==C=|& zOx_;uFXb<V*E!E40H;7$zgsW@4hg7O7xD2P-vFsqC<EwH{*;zY#!bFXZuQ(>H6arl zVcfISlSr=o!<h@}g-@RQv=DM2`wJE`J195mynXQv78@S6N@LY<%NuU7Bclxi6>;A} zUTZRs4o}w}8nPk~OtPs(!EQ#co$CY}Z54t#B;v)JcW=J_@%z2aPoD1C*O%;?1G=@p z`Skfi0nU@l3+7T*rUH|&dFQG*Ir;jF@4xxttIN0NHz$W%9Nmr8i?gGAOI3^&#mKlr z#G2Dg`LUs==ckuHp56WS##uq@yPJRYx1T;>rlG}HUb{fiCEZMab+X)7pZ)md@4tQV z-75!U-d&xU!nt@)+~9@#sfLBo;WUjuoIqk0>@74MWg73!g?~c6PYcPG2lrUz{mUdN zP9S440lfmXO0va+_0aP|dS9kqiLmwZ96Xc8Pk)y?5XnuV_WlCMJmz%Zl5#Y8q9aI_ z+}+2xEjj#J(u)PC&d>L(O?qorU%|r`OdH>)FJzB$%g5MGF(aM5S<Fm*!8xW}!xb7d zVg?ag8g{`8aZk?+&clnwz(6WT9>B|2E|qeU-4dW83WYep6UQs1$k61zZ?GmIV!3O7 zy?xhM?TA)^wJo|Sa!U8$B84MqG4|rgj6^A%(xIA4U+19NyUSz%{;U$ct#!09bfxjU znTDi|{H!(A>^>#HMSpYGCUK16ssD09q!d{N!yqWPB6z3;$`N<wR2Q{E)`kcyrLri= zd_o5IQW$dOEej<aY@VVqKRVQ$@9VphQ=5tibg`UN?X>})rpB0G(hkIoV)1)AL;P0Q z==ICDR`H+ywDZVvfUS*hzkU1B&!0LCdhf}m-Exz|&9#ej3I%|>I^REi^ZM-%FD{Q? zpB}#@w7LL>jN1vsdOg0h8JGf8FehsCVAt>>yL)TKw)rT#TW6<tUw`xV@$(-aKA|HF zFkG(PZ9Q1s*Rg|So!GOJv!A{>|A+tbFK=ErD*o7RL&P%6*9O86(5?;!zZ%Kc_`x?p zSr87p6Lax9=_x@U#-!n)<eT8n%l8D5FcUy1r+MzNS;5N1LSX8lW2HrS_$)`{j&&<P z5%Lh%VKI+>c!N)3l3r%!G>^kFDXWuT5JxO2t3Ivh>j$ChYv0`}-_N?T;}_-vPAwP| zoV0=e@_rM7n(iOL@jO!DcHd;B<-^Cr(<mtefBCG0LN5x;YLPK~I6)ute0XvWm4LwE z|32ZN<i6fJ0UJCl@=}pY|8|P@J@8>mHBI#htuA~YT9AWyrFZfjq}kqWlRMW35VdKb ztc22~1xC5d&-&R>J<3K98e||KLQ8c(RF@1?gl+Y9)_0XAg6SSyl2>G?S04PRWvQs_ z0x6>!6apj}<my_r*yco*Im^zjad4X6ZY!9&`=f@Y4M2iJK|<21II)3~cFl0|^yP{D zzMC~~@)4K7P>~tVtIi2IJ0;5q5bFr;6ZxhW-QFIHdY!hmgV<iK*e>?w>h$vX_}#l7 z4fcS=wCl}Z{>`smzdL*OtAkH|^Kp8^z^@S2(Z%`E*|(p+_}xGL{@Xu&PaJKGtDRcS zxo+Xv_RdAyWSG$6umiF7+pVpAdlfd7tleqsW3#^h#1PKa+qZA+t+QvEc)L358ekT) zxhyer!pX(gpTGF+Km2jy+CXA!yE71g$VcOE6z}JLi=q`nD9Sh-8;5#@X7~4@LQS8m z-WHi!C=%j7kYKnXMhR7Mb!5!Y#RdJVM>DK2xzMkglrH0vckW9~OKo_9(<bFYXqEbk z4YWipo?U86%YP95<?WvVTN(n)v`!WRC<`z$6<z^Gytnui7;c&d6(c45!J@wY;o{sN zd23-7rt3XmO3=DggEa&0DK+}gGEnhR2Jr6ALf+Dw<kJ-A#7&9bgnB&6`D|XLHvp-b zq>uYlqNaEFFl4fjk9g_-!7L70tmO#plqC%a6D@<87j|q^4S|Wo@5MW)X(Re%LP1Oc zL}K9?xgE4=;#lkuH7^hVm>)3i<)5Ehqf2UXb$El#XJ}e-XLC^mss@0m%;XSP)bWoU z=HLRIhxS0}5`|JEjbuA1D~H;`Li4TDhs0>rg-b%!TFY@yF3*n~xO#0A)uxPBcDSmA zV)weog>S?RcaDxvUcP$!x4KKswPg9OH$;ZTaP6ka)3)ckShOX?>uXlYef#@=Ens_b zYWRlcI6GeX^6DoODt`9n$;($qfAjBt`N^jr5h#7mZ~pM=yU$<z@cW<EPEGUJKTFA7 zSvGXR7VK=D7=&71HPQ0q^w6F-1lh3=j}8vbPp_WZR`mJfXTNy*<Y!M0p6=~EG7!FU zdUCzJak0&)(^%`9=6V=?{`!lT|Hps+zfa$tt=}A9oS)3ut#kkc<R-w(+4&Jp#!D)n zaABmOx6vy3PtDLy!&nI+uM+AZzzSBbL-T>cWf<?$v6CH^Wx%oNYag&=9G9TDqqq9p z=5b6;`U<0R#7K`vUQynr%9T0Vxmh66i{QVnY{WQVs@X)BC1fM-=;$Vr(c=+1X`ARt z-N<`ALT>dq2h56<oim0#)I2$Ywua0lm*76g1}&(M5AbJ@D_>?aZ%GX)uwc*78YM_N z3p_Ojp}QiiD8nRXa-3M*p4G-g^?TZBioesmDAfZiH8Pf-)Y0$-tjDVc3!s9J;++ei z3zPs|o|ij(O*`q0rZ|wv#ae>Er=>}X_5gY*mj*A-GX`51L=90*jaUJtJ&kTwmvT}o z3eR|Up^Em$RgH{?99qd;2VXf7M9u~H#aZha2zlm~-vsbjX1RdTRDH4)cBPJ4QiW)* zEw^`P`lYwG?@msg_-50Lb0Z_yEl3o@#V`yO0DxOL=7?U{Z298!^xX01dYHuA{@B7@ z(fj7c@D4j>|1exTV@`Uf?F?t31Uba^XLt65cevcen^&*T-=2Q+^gAx_tDoNe_{Gt? z@7|rfI=Z!`rX50QeFM3gltsiCgVojT{YTqdJEn-QJN4`7^XI?b+5Y4gA0Is1*?YRP z`*>?-e+!;LdLg1FIK6u=0B%Q&^V9RsfB)Sd|M{!eKUyd+!PUY3`kh#EmajfgXh}?{ zDe62P9X^gh!qzY@+zwfza+1{re@(4fOw-Wq&$kbZA^l%ovSw+A)8=;naSE)rrK0Ja z4Q~>(g;T}{kOrQYcoNF^veXil^3jF^fP=wm5cSLf&S6{%{{Y5P`|@)dm~L8rmNHht zOL2&{&TVSL?J0oBQf*<WT=|n@2Il=_9zggzD(*YCYMRPS;xt3mQo6<E1T<eTt}L)@ zG%iTO`RG9JTiIs@RT9{ojiuVOPJUj2RWaQ0lPLfgkwfi`NOw)H+=Iqc0+uq<t7ct$ zjJjcMgjQ+~-Y?f=&+IRkmvmK0rO87Zr^MU$xnS8ZUn{d3>w2*24MOrBryx{WYSE5b z`Cc7L11~OL6==0Rb0t@%yP41Ss^DY>K;;hK+0n+{G#!*|hS8;6C~S|}SgfP)Vimj2 z540n;^<PDI4&NQUd3*S9f1mEw5`yh$_A6(jpE%WGhbMQl(G>m@dqk{nU*DaB(D1BK zRl3IT*YWL<81d2O^*h6@FKt<I^zP*Bl^MquR`{T5i3)bDbsmC2K^0g|v9_~u_wd>C zXY1P+yARh64tAa~v>!it^pPFp_yM=A;MumL=K~89Y=^Sp@aHS5vd*_JZr{8*`|P*h ze({IzPmfM1A#0g=BFzr#()m(j-A+^Lvp4X>a{7g3V}l`O_DY8uFW*zAB(aXq_q1LJ z9p;CjF<XI*C`p<0-&E(eL~|-XK|t&Iq@7aMRjKNw&~lZ1Izeb2KY*B*H(kG_#Ohrl zFW3oGAZ*E+NMS0fSGfhs3GxJFTIE?CoV97ueG{f?3Dp_grKv587}54h>sul>qFPD5 zPm`C#zRGF>rlRyfD#DaRLCyx%cqx=gu@qT`7s60TOl<3x7ubs3t91FN?OYR>zL(pj zn&qBln`i;NDPS4%^eK5LidF3+4m!9QDT|K^YmExX%FGD+vc6$yLrrnP49iK1&~U_Z zNm<W6$V7SCXM+uI)kn>OVw`&~_R2@K5yD`w-|V7X1C=?7&#2oLCw-7xZ<K;M<#qhQ z)ukCyQhFI~Y`J`H7ide?rrsvFHhtVK0j#b)!K^$yxv;lJQ_j$*MS~d>yoGIXZG8;o z*)sC&+ryQ|>#a6&PQ<E()ZBw%8nYhoMT;m_3?p^CLhGqc6>wvVL=c3@)wK(QvMYyY z$0j@7ZrQ5+V#Q_#m$$on79N|IiO$^H9aH0+OieUw^XrKDowY~5`t>g#>|8&6w*AD0 zkK1ccp6xr@CBtml_T4##qnvrv^{AR@eq--}SFgVR{+q+EKl|au5AP7ez!@c+qHi%9 zCl=VS6CVzly}%4n{a*cP^<P{#K`rjXuQ<8qehz&XR#~1?t<f(Y^?*i8F%pkZEE)T{ zWS1!R9GQfK<>gRzDZmSKhd&CvH}Y5DSZ^qIO#}nxl{7wrfZ>Q)8L96gL;jXI(Hp>0 z-D5bstb)1b`5v(M?-tlqM*`J+pIS=QRxW(xr$F7kqbeioK`Mh7G2Ry+R*5F1=A}<K zxy=a$JDU;2QA{>Q^hWxC%Odh|y}}5VjlYLT%{9LW7nf|XJlOHwCk9oynY}S$BRLu4 znhjW0tG}%L;P;@tFM0W^VRVU-;>hW*5~-PkT+2l8v~BR1IEK+_xst=ledih6(qu3d zwiHVRgv)86EHLE#h-e9<G@&ftSVx|z<6aGPB$nrOCI-*b&)(af!n$+upMvvESJKdU zEXu>KqV!VgGLM?nZcx|((hf4u);G?~k};c*#9SCoZzE5$ft$HN-Cy6Fo?7rnHmE6c z9?lHY#_R1rhwAnEtuZ*iJlkO9uAN(A<?!9R({{Sp-94}`^V-hVlg$T@K009X?WzCd z=|d5(pM81&&krB(J>K6li}~PSTi>4}UkCHb89z*mkb(x(<2HI_sQH_(U;XPpef#ZK zZx0=KWy<5#>E6~h#U%%vL0yU|tC=X&n~av^7LW^4v#@Z8;J$kDffin<;Js`Mb%q+f zo|j7R@>4m`2|vrHQvAi`{TK&{h?%RHke5qo@<IsOa|3|my=y5JeWa`f1OeZcD|!Kr zm`1ONm0IH2szl-bF@vQv-6b%47g(B5&igATa6VL-Czn^To2Oj!c{LwGQYL7Sw;*)X zHqHrondm-Md<{^7QmQd%v6zpbOw{%7hUxgQr2x1*O4kZGy(t7i$jU#cbeCZP3XWV; zXzPXpdup0qc;<J$hCb<sE<G>r{q)i$`|>FPO7!ZIes~M$bPUDC87&ehdjVwv3DD`- zC=$RGtNByotYB2~I8-pse&=Qg0ASLg-+ixR=8Z@Ql<Cm6iiq)Kd4Po5%;G*JE;qNw zMq1^e%7l_pWgJuVo)beT(0F8NO%wnY1C_(lU{X=<tDD{3{gbnIB3cE7?Hy~^r|p~5 z!!rTTGyCSA*o8)P>AK|=xyfQ$k)kuT5HK9K5j^+biAG5oW;20m{qE_<Po6%1`sCRo zJL+%mZan?y3A=mnaC7gmRY}+T2c6dgCtD9}Q;w!0%!Pb7^&7UN6-~3wf8<2lEF^vX z>g-RyfAQrXemFmhD*8$yAFErt_MXi|M2wDz0Aj4mN7r<yowft<!!@WFwtdetlrbd3 zYP71L`%B6tyKl?04<44!k+$f<pMSp3H;FO<+{6X*OLZ}aTJQ>gc??Ce;DXP&0P<cb zj28<z%ZKGY5UP~p7m)X#P=IdpEg!!3Dw|@*N(}=`8T`{U&sl8OlmN_O#pyyQI<RtC zhCzAfEU<fX^5U#fUb5<(eLxiC5Q+qI+I{bbPT;1cG&4vs?8&)cnkWm!r~!ji&7gRq zILg(2GFD|+d?rPBs4G}}s0RB~V|2RaYoILjSlW|o9;qaQ*hQJZ&XUo4S49v`@h3QI zsF12z7PaR{NkDJ1feFaidF3U&6>>jc6a^`=cJUc_eA0|MtZ0_!qj*II2E8+uyf!jI zjb)KIQB%_u&5p2YDGf?Jv9|y&3ax}eNlF%PMOJC7)|IXnX&d=%^S4XGGHBAI!v?WN z3FyUK5^~!NoxVIidHt3J)J5G~&t0=_uw(z4*to4CVyqLIRbXr{D1{bbZ0&7t?r#0{ zzyJBipFVl|(XR7rOcglT|Hys-*6eTWi1zcen`OmV(z~g;C}P0aYNiX*3QSg9-F9#x z4P{l(&b!l#Z@<3y{>!7ox0epY#?F}{JDiv%d94$GvG_CGBwh?!cyh{7ViS#~{V{bv zAqq-{ltbTQWt3bTG+4{kOwq}>r1!A+pOc(g;lxywD-6fzC3el5DuDgm!Ld!=PmNQt zPjaNF{hS_SkCfFE)FWt8gfWwBBvc{e9po^@iCj!9<w33B$T|ZolA7CKZrSAWwd#F( zuU5RN^aaR)TT#}}#SQXPn?6w{Nw|CNYKX}Kqd8g&CS&CGwUjbBl0QML^&j+zPdR}! z`??;Vcyh8CZ_W`HES@Z*kqSrO+gtdf$$S{dLn~&b+`J(kL^ke^!TTglV#8|DfrFj8 z(cX_aPRNJ9nN6T|*A!J!Eye+0Wbw3NoZo4W&s-M-pMk<=oAZUbl(FcA(HG2A1DV)J zC`A|?byXS7&HuBO-JW_Br*d4z%3vu-U93`FIpslbVXf6$)1i(}^(CEvYhEGhD9HYg zZ6gHz@Wc(Vr)25}ga*kpgNjoIV(@*{+Ol@DdQFDBFp<I8hY#%HR==zaz<Rv*<ki=2 z&R<_#yggwi;@%Z!UR*REY~nxwBR@^wQ_vmv`1)Y`(YaZUHh0?F-g~zD*Z<S6e({^< zPd{?>khKJsH*N}6H<Gbt!^<_NW!L}!5)9tvN}P*k$5y!BF35HV*jU@vJqNX!nTId0 zzW(gh+gGPXc^#Nd;p*B7C4$Sm5gy5~lcHVZDr_(m5H^g3+7OZ6jIHDGIC>COG{nC& zrOW3~^B(bkmdRea`sz_uY9kSf8KxV$P)b=#!uvb6k@mwYyB#I8sgJ4))VY@VhT}+L zvzZ+^Mgl1$b5}yP5CC&Uih!B-!^~de8vHaG`9p;@q`Y&Np@-!@MU}2LRA|riQvtA4 z#ONbjy#VhaP;jLGO6}JatNDQkr8<ub%zeJIH?#6gT(?63H+71y8ngu`RwsciM*tDC zk!S&A@Pe{_7Gd&L0C6^J;uMk@Qb}V|84*%b*KHWvtfI{=ahDGGFvwH;#^|N2lM9S) zceO<&Vc3+#a*@XOcrn>XyHg)EMG2fnYLJgiHH?reMt8OIgxV|?baVEfn7KoQ^ycYu z(qP@}I2L70)K@M~ul5d1MWE+wx6<|zhewY5H6Xc4PDGNV1iy}^#4uxP4x_JNP%h<E z*cmKK8yNp=B+MLa+@4<?+tL5rer?<Ps?tHWtY_EGGPWgIx4Yue+v6XOZw@c_?KQ(! zm2=DPbthYQ4k+?qmyGrEPDx+g-P&a*vka?id(QH*C-cvqefrm*K6z$~<xK}rP`msZ z(n|mUKmbWZK~$Y^uzt70(Y8T$+r^oNp$Ub4i~RBhnl@KkItgWUn~h($Gu6h%_dmY+ z@r&bcfB)Up>2aI$Byx2M=(9-BE+V@ryF1H+EtMNrIpRr}lJ<XA?w;pGA^h?)kuJt3 zQ7)4|*=KFJ=j<7LDSly~(G(XQ?>w41r*u6%NdZF{3XyKSJLtuRm81kD7nK<f0Z%8K zq=Pu90PFue&xLbD`RL`qA7hXsh0E;gtd>+l>P6ysic`^`>J*VhNe+k)P9wDo6J`ei zH$P;ZhFQEd>^c}=ITK#V*mjMrZ&vwTiPNI1ywA2}Bp8u~xU*XlD%y=*(P%)A?n}0H z<=UAb|EP8~O}33$Om2-x5IbH3tm%xQK!&6~LyCV?PTo^uvOqqNLgZYf_=~GVf~CVK zA4a#eK&@bv5H!eQc*g&*gb+ySJ;djFfo2qpL`0?k6xFJMdMV9P4x~Dgp(s=hW=2&( zc2ucbi^yipLuQcRiBb-WRiToiPCHOgYSz%6lJ@JBlZ*2=?~WXS=5QW@j7+)FSO;_w zw~d!0PUjkiYBLIf%&g{3)@rnmK#=dy7w6VlTeH3OkeU??WNp{(wlTXQ;G=iPXD8=+ z0l~o^F&CNG+sxT1WLS^gU+=J)yeZCv_1|P>eQo#Q{;&S#SHJi-KY#M^;~mF(+BcK! z(;j%Vy?{acXxO-}KeSmLZ4A&VWj&<`$a|*&ZMc1Le(oT%m*2ho)4zUq`p(HW%&%3o zvLylK&PI<ff!~HY$l{-3HM}GvC_~NYg&et8qu@q#HMEqug~b)+QO;rpC-49?J{nGq zf8!u^*1KC`tK*lC+k9`eFsNFB%%z|K!DBCRe{3I|3zfYmv`E*mRB13p%u`mT4>=d6 z@msCK;fvK>_LPcIYG0%Wm{O9$zsR!W`ZGL}zAS?}SwQP~;cFEJ6-iE-qtGCBk?W-@ zA7-BMR3}|rt2&NrWdfrTrtGR9)#mwa6Mo&I5FY|egT(p-$xOfcv6HQ??DFhqWzPHM zVYw^!FE35X$Fon-oGTmGwvuGVT2a%5tT~pR=@@n^isF<7p|x>REwxjA+~b94d1)ZU zswFLvjNRt}q8GWH8XAA6jC<zGy>B@xdXxBB`|fxyJgehs7N~gcrP&A0UYUa;z|-Uw zfTvBScj-_<>k2vk#y#!CA@n6MoME@RmUU2$X@)AwBD6exeedzX-s6W35o*tlIXTHk zGxuM=dvSRFPMz&gji2bRRch6ilkIg;Yv@-4Uo<FC)w8+1|9J1?Uwrg;|Nh^6^s7e? zY&(I+FIRS2JS8|>R1Zr)aHoMmUZZ^PmuAkmx*}C=;MgD5*>M@C@2-#D-MoAKdUtot zDtQ!HsI1x0xUdQC^OJ1>g_nc2a1O@zN_%;kDGsGrD5}PIOmc|Fi*=HQ6;lR{U@)~U z*KcpVO=1CV(H1cGTnSvZ3{GJlbyeUXWdv+sNbyec)Ts=_D?xGh*_B%ccgZNIqP<j8 zjMvIs&O=|)F84fDp5HyU^lss<<*PfWK0K@1um8`R5(Mf(LC*`Tf5^5x^gX1Foe$`8 z)zR|45&)a#T`ZZGFgO~=d*Vw6vS9}Q;F}<%kMes0N8XZ;0?kuVUUE3<M}qiln&BA- zM9!h8BD}e${h&AqYeS8Re3N&cEA#z(T+wmOVIp|La-Y1d&p6ffu?KlZhG*!xA}VC5 zw-SeV_u!>o*I7~#C3*WMuhat!yom!~FGI96^3lm@tMP8{*xN$~V{%1w8aFo=d8TjJ zJOZ5F(NeZcDOg3hE^{h5sCv=Vlx{-G`Hbc4ROxM#E>@Yi6I<ArU8<t9<J*(-cdy<Y zpB`S_oU!5^o2R*S1NWd_Fs@E5#f}p`0Jk8MVDsbWAN}l?Kl|j<XS+{qI&o@9*i1%K zR(UQuqJwr-*Q-<>M{sy~G(Eh{@S9>;8ZBmPPmZs@{p#?$FJB%Xy&Fx03n4qqFC2;I zG*<0%AI#m;bZ8f!bx9-_G0V-E?1SlH-*Sg|SH+GGwLH(y{7CAs{|u&$GW9IShjNrJ z<#LaFbA^`vkET^zq-FZjeGRtv*?Y#<K`F-Ixs^PwIAhTxOAb}IMz1W7+>F6NAg3J` zk??IPS$P_?VCg=?{E_l6fA%~8EibcDUO-sM2GDL970E#6k4Hu`-(`$a*7+|{TEfYz z$#ZzfrBxxo6U3>rmbT`MdXr(P+|ffAR(lq)Twb~_a+|7~=iKh8N!vWQvqeiGOGbsd zB=*(&Ni&2QcahwJwf0RT{$Ghh;uJpLM-7kc$e^5}Ulkjjm+aor0ouBx@8#$-5@K<! z!e?kF*Vn8LVH`2!W<hC;F1i?Q{+;9Z@<a&{eIm}x$;^N+THJ|#R~H<GxRdd4dXRvD zjc)WS^|^F6%#<QNplTznJ>qe3Y{NFw`VTK#)M{IL3bK8O(1B-wxlAY5$dm)?u$Vk$ z?ruMP`s5dX^~<0C`lC*%-nCHn%DT)B5acpA$G5E*iTdcV$;H_6IyF)iS(>g!6r7^1 zQ*h=$o7IaqFMfRa<B_w2tnzDL8x2|P10raI;zrxL4_Ad`rGO3J)>jP5K6yReoLEJT z?y8l`<MJ=E=;h1+27%#TRXVcG?4Mv96)5AxqlPntp>fY}(E|Oj`#lU=v=9}y0Kz|E z^9o+lgFl#phdNmLS)(N4t%PC`3vgEGKswM$@A5T6KS;v{m7=)|5H;<do#yYoj+lJ+ zuq_GPQ%C)X=c;nB2M-M3biRB`S9qNwqJqXMBohn0?z4oc8Jv<5-qUN)BB*q+>g=UT zHlW}xpD%_meZ7}k0%KB<dOpl{k}i<m15{ljgi8Z_!itF*&|q^hi8B*;`MD(fa95g1 zN7@&5-s8nf7j_2bqSTcJowd?680_Ia4V2c0*`!M?9;pm^WPy`Rqb_(CN_!+|x>tnO z{3pKg(HWC_Y1Xl5l;|;tT7Ir}osyAuEmVT_0DY&zint0GH>OIi?J%GyXk<BXP3G2- z#=8$m7<&nRD};#S>GAoSSBI~@e`zUTfO!@FM+an1PuRiE%}5U3W{atdO$YGpeEPSa z{`{{#e)92wiOSAq=+LN6fU%&*QiPBKEy+{j8eMvWNtI=vZM`RuwF^SZz`7y9ptIwP zS1*p=y*Wa2$B%Dp?t#Y@LgyM^JML53`*-h|H@O|2RMA3?_bC=ieW0uYm+XsAbk7oT zbnHPo(x0(O?9>b0u`w0HU*6qk|4^WD@1A2YRRx2Z<>E2+bJ8hi_&I2?j=MMRUiK!n zZb-cG1wX6fJ<FA5u1WUiuPTAQCE16>vEW}^@-4saAEwMjDTMqH#VH#k&8>{B>M>x{ zzzvq^#Kz$?4zMQ%<E3JkO0i#72(t`(V^3Fvs9~9CMM*;D8Y9w_1)&lJ`}<3A;P7&x z!NAmQd5@X?{CqEIeNxm?zz1j+Tvhjd?q2x1XsZhG|CA6tlG3g~nZ}lMO7zu*Q^k~^ z#Itx&u$37uV%n)I?Vxb|Lx&wAH5*&xn172nSjo&KgR0}gsaVfZT}WN0npp{>sTaS7 zcX5H_bt*7JqsG7`Q@i^+Po8c#pmy`Xx58vR_S5ULH)lsL-Z_l-^3?Wli4_G>1dI(g z&eYxw$`%|Ueh$3vw1I<ztzZ1r^N)Y|=+SdCq*_^PcQ}D%N4c?14#wsL17|>hlEIZf z5z&9!Lgsf5nt*LCM-yp`T-mMl^ueD#`{~t-H}nSoy}%?6AOQCyh)F@9i2Qy{>bcAN zurNf?{t!wN_`k@>J;m>_tZBnI%g@jg)%5YTt<Cg9OR;+W51xU7Npf!OBC#{3Q;pGd zDD2+zQ1M>c7I~W#>VI#(2DnMK5K_@gUb5m@G9)x?l;xT$KTTsM3(Ex1<Zb%lHMoyU z(*6chP{mB|FG)(}{qm;2u}t{+|G8vmC{_RGGNuyXE?H7a^Rc#fO2bmJ&)(ye{&aL} zqcE*F#g<maM7+M>`E;9KFk=rS=BofjorOyB(&eQ$k#5ksyzIF+Z90`IbXS}Lm+F^$ zI<hKV-T96EocyYkS0V1HA24K2Dr*7DT^4tr=JJ@JdU>x$rqY=*F)JJvgu)6JH15GC zj&BgnHOP9SLwjQJj-R~M!KckEC@@x`ZD!h>wY?qHuCDmAD-P10_4a=aj_T6YG~j|Q zH@DY!AL>HrC%=7ndUJH+#4nL+GoFuMpS}L>_37I)v1_U}F^%EOXTVHIWf~(rkS|v# zYH#!5)9sI*Km5(V{p9(lPk;95{=>%y0OuExHDf-U;buWB5RCl9Ps_M~(e(t$q#WCq znyxq+$+<+=D`qvmesT7%zx&b&d*U_*>e5Ct$g^}Z!{*?2+8OOMaaw&(WoXC^85+gp zG}*-Mmh`aX!98_3&+}9AXu72FJe5Q>mqKurPt2*Gh{zf8GZx|I3@<J}Wz;I=q=<$G zpijAR!(4q^#0+3ujp03S1{?P_1ES@XvWDGjC_hov;*#u}T6|ZmuYN8S_3Yo&JGm$G zB#>sgKD=KZMx6T+ae4lg5E2wgK)mE2Awi-s{&+B@;kpK(j0MKYll&ih)M2O?NLR&< z^y#z;!}@uTL=5Q)@A^X5)|Yo4pRkS09;B940zaW?iYiv*TA-Ju(uZswy!2^7=pd-X z3h{;^1A>(5_Q~b1QfeVo&XI&O#22qt#8fA-3$|$$E`+j{^4%9d8LES=QM=VkgSnb) zHsH<8+Y{?#&xo$M$5!VVJv7csBrOial^|8D5EY+SoDn9QXI~pTZ>8xRNGssc{1d}C z+ZN2P@3c|o=H8PBy9evLJC+Uo@Y5Tn_v+&K@b%&8>&tiFy*T@S=(^A4x|Zy~^8^VG zki4#{R8qGT(TbRU^!YT8FmKQ?6Vp~wm2TO4>l%8(69ne>UwID5(rA+4K6|HGxpKMm znJ+J0hi3d*X`TP?Cf`n%xAESXlujDiJv?xx(-&W#{{27x%|HHc|M5Tl=f8XU#o_ZW zY#KN`ay6zds*Odq3*d#-h$v~Ot}3u<5%tqt+&MT<P$7p0`!{y<KG`{bddP@4@8b7= zc=3Py@Bink@84a$e{1Kl=$2U-?uWTC-l1eXY`Gf#4!>fb@|VL#6o>mwx{6cmR5@!8 zGclRP(tVb8lq+QrSWH;XxiHIWw=c~AXJO$n@J3E>4v(3{faQ7_`LRos0N|7eaL`~8 z5jDy^Q<yxAJTI}{m;m4ugN-b*PI3*d#&uRI^}TE=^`u|6$}8EUCR+q58_(suD-^dv z#au5`f4!{0Oz1conm=0?mNE~|d`Pknufpkcg|_CZnK|!J@~nmg7OxqvDc;$|g-a=( zKRpTLy~&P7Sd^^#Rsv1}YQQ#7TJZUF`pF>I=R`|^fg7zOG~!4y5G%QsH_U@I{vu1b zx}ex^g-$}CK*N<yArVwxQv4}4Xvi-JG=^Dn<>9>WT($K|xH9GMB{$)!L{g^Thz0m% z3!aw?cTrCZc}Q4-NSuJ-uv)L15t~e~H()k3R*VE<L>R7d4axUz9Eo;#`sFuYS?_<h zdwlumk;&OdmuLHL9ewPe<ZCVDtCzPQ-rKWl*!k{p>lQg1gKqciswXf`-g~_7tc=~$ z!{d|vumARozx{__{mnmo^VP3TpFTg>JJ>lisJyRn;#3ZMrVj`p(QEjoD={b!q{50} zhf|<$Zx3CWeSc@iEoQ%e|Ni{!=J&sS`J4as<J(s*38X!3TCk9Z5@!BCYq%}WM!9ib zz}!+ZiUO|in1}-A#>8rVc}*@%>>_QGV-y;Ju=NS-gcqZLam(a;6+}FH60Ib4^DZ*x zY;aPrg<A$CAikho^5M#$yvdYwtn8}c#P3LxOkTn|;_4}av|}e`q+o#Ozj9gW|N1#0 zn}(jW>(jGBWx9fw8P$x5Cv_FPO^%6~v%*uslJ!^!z;JYa)y#!7XqUb6tP0cAP=kqF zx^Vyw%z}`bE_U@ZyO1f^wjZpc5NTDmOHrkTa&SQ&a1o`$A&lpip9sT--qXE_M;E|> zVg_&w-Ue@V=9Gb0FP{aoR0H2<)_O8Z@&^vE&H6L~GdYe3R`jXB(INv;A3y2R7c}O? zQaQHb%3?2k?1W;8$3&|R(0FhFtL%trpP8qTjYwO)gF9@dZn3pCN2j|g!-J!P(=V>( z^vfrwkG}ZEZPSNY)|)#+Uf1t$oJ?#LqDfXnWkRqP1*~OOd7?|Z=1%qxo*sVv>#zRy zKYsPMfB%bL{mmEqry9(U5BHnl)Qhn*;mM;zDgy;&W>`v>h$N0^9pg2QT}9I!@Q=>U z-yiHBVTLnk41T@*@#2r){&@E8(w2W)lBBaN)T!(4K$y|w5r~8pm_!zj7THHa7BR|< zprK8<w*D;vss7rMi^h2$Dh|LBN39wL5l(b9PPCmwni?7ONy4+VMpnwZ;zai4cqI3w z&4~t%#UAyH&GNAO&fg1ADasxjlZ0Leg{g<9{wNE!WGbW;8D=KI@oMEY7*C@0J<kX0 z^U1F$3Cu&PsYXe4s#dY+z~BTC$aodK$PHq^-}K>3HjnuNpPnL9FbRVKs_GkCnexb{ zc5{@Ef*SSF$ViQAHjR=z))*rda;Q!d;Q2s1dLmOkl$N%vP)fLBuAuc4Br-&OE+26u z@$|V8dVxz#K1<T3dFxYkFI2IslhfiHFS)P<3!vJ5`ImfJ-9RY@PcIPUKQE!07`jVB zTesm#Rg`5zHyX%l!r7j@WNBj78i#Pbj#2q$w`_7XNW)eb&LB5%pC-BZZSGTPm!&4d z&e4u*s*g^L#_t{O>>S@ddv??!%A0E0_t)>v-=3Q})w;Dwcz@@BfpRG{{lKPxL-fg` zXJ0=({l%Am|DXTvZ~yMg|M2%;{^FO<cMcyNAKSFBnP5u>jIYRac!_+NV@hciwkL~g z;Ck+1GIr(u5W`&#O~1Xob3WsXzr6nL4?kU<Uzq%|?P6-d8QnBCv;_f?%;9HtbA|Bd z5SH{XznUrH@LA@YeEGx+kta^{_u@G$t9%p=fPQ(7b_ojHIG)Riz*n;DB4iL|q)1HZ z$%beP$jYc(7P|+s&xg>&41bnTd<GxcR{_Ob@l{Zo4GXgL4_SB-VQPwP!B$@Lwa5_y z3nk#j30w(RRq1_w%1y+fOIn#8j++d<t%572*VVzc{AOieAsbobt&PPnOpZ#SP9jo^ zhO7h_E!}(gjw_ZTxS6sulWtYHh!S16QBl8GxLjSqf$NEv;Gi}L+Rq{^O`CK9ka5%a ziDEHVsPcI?%v!YJ985O2lFhZQMGVDhwxmKLH*nrTVDD-#F+TNqZ)B?PsuyPr=;FiO zg@GuGk8wYRk!!l@4@EsmiRE_msT#VKWc4An2|j+%L{%y_pxUi0B(e%$6SsM+W_??H zAzuSWuEIUp`|_J3lPn+4358Rat<kqI)!qpGGWlw%ruS2XJ&oXFJ7u3AJ^$s&H@`ml z=2yp0pB)^!4BH{7uD8(yQfZj&sAi658(B<5kw*{`CPhq6q=*Pw%eN-3TIQ@Tef8vz z-~RNwfBo+Di`V-HpfO^KZJm}0v)PS3W`0o^P%lA?sFPjh%IoI6;>)y1#VerfOHv#d zWje!0I4Tt(L>FrDap^6g@FE`IJeQlelT>{;s>`Q(btDRlWn6DZj!g*E2}kql?_^u9 zHSd7a81k8AoaGI*|AY>Zg;&x7ld&BlF;@g;i^b+Q3RH;jd2kPLNZNWIoHs?Na@oe< zPm)SFAbfh2qwJ<C9R%F=G{r<a>1O+Ql9+CYX0!|il`NR>?{7vl6fkJh?_)&oyD4$H zl-0Mz9cFk>h&s(Ry$#|Nd%f@xQ|QvV?D6F4lg<P^(^-=Bq{CjqBokBB3Ib2fHd|PD zlX6Z9X@JemQ1_}-B`N6!!q8=WKnIRLC&hXJcgTdZ4hn7olS5~iC~f4d@mO@wz(k&~ zfsdQIrZTmg?cRuNLO?S#X;dqE$GR^NumDN3_0ZMQdk06x1R9lg#>Mf$)90tppPzp9 z^|LR(KDv5){dQJCE2D)VQ=c1KRy3sUtcg9CmgCOJ^OIly!{7Y!KmGFW{^1wjeA%(A zr^l|a*E)7}E!9KbM(;8q@jZDQ?kX=i1q4F$n#|lE8~=A?$A$d~oh|s`X7|<47vKHi zr88eGxi~sF{P4uu5CT<$NECh4#ZB=S(Yy#k5KK{gj?a4W<cYJKR2b(eRQcc}6oiME z^J3VDc!-slrn7Bfi)$+{{$(|eC&!%q8z0$=F+$Yx)udiBmT6^&Dk!tY(np#BlLeGI zA<@6VpYX#>rm-T03{MGr*G>9sx6!^yuqsE0iSkgo_4(I{HdNXaW`0)u6?v0nq%J^< zAe-1hLK;ueM)0HR@*#I)xDvZbhvJ`-@yRI$XDZYC8s8hq&yGf&ZPRFFP;LXOG{cF} z$&Fg_S&YYA%v;P@Dhdw9t9(l}=9Uk)xa;X%e1O)w=R?euQ6`qaj+7uT&v*bDTNS{X zlX2Lg57zTys|_f1O50O$*-j-phr0Wtd7<j&HbZD2CwnA{ps6T^n}AgC^fo(Uq>q&H zp-6TJ9i5&?CfNJF{^^%bPrp9->g&^^la@cfcc13FR!>s=M#LOj;bOiP9%>)kP1RbT zHY?oSAD^Cl^S8hJoB#0j>2r3#(yT7l#f1;&_j@O9#8cf8b{MtkYKRi$5uqZq<U)!4 zuM>H7eck3KcU3qe>f`m<oAZDAufO}lZ-2I@&&=?3xBqG9n)yYmiZg^yKao($eFBmQ zMd1_<rxwj8=BV6+Ze(RBpBfJ+F-ta5LAao5eN_n~tF-=B_@`%qt1()&TGOk)VprE7 zv=rIjan(Md+LHm;sBW#ITKLFe@u$#ORSfNIKcl+{lr5V5G$M?QC47@m8h>Rvz(L?Z ztKJ^UPDr4*f<AMlD&594Vi;RK`3P7^L@QhWCsdZ37XUNA!A)s5IMhWGTPpqtp@AR1 zn<(MMK<nIB@6j=pv-w+`2pz5_tUAyT<)L7s$_NAxA&ZpI8aeK<6g65;lXXQC0V+Co z8gOe!K*>HqkR=F1ZV>TDaus`LzuY<6zeapmXxG;YX?%NO1p+7$I`~Cclv{|cqqkh2 zY};$X;^-M0;;*kMt-1!BqG9D{6qmWL#Y+(Y_e@!a@7h{swL3r?u6teX`NVGZlcR1N zz1ul_cD#3T@a*f8FTXtc=BuaAPY$Bl)#dwl@2!H|Pq0*NhK={{t~yr$((dZ(+HMx2 zrI4pC2m1Q!qf>)ihb{wgvm!ficzI=3P7OPA%9M8KTERE^Ru3ct8&`o$Q<O;W^}=lL zoOAQ~?b+{t_h<X~)w~XlbX1Kc&4+tOCW33(T(7mLQ3Dfz8nOUVPTrR*$Bj#k4FZYC zgGN`=<`Rj|qK)D$-KZ}zvlm`c4-GeC4YdUy;!FSV?qvW5AN|X2l$K{eYjM=+?IaXJ z>ilYZ4{NfnREF$ir^cw>24Mqj=?Q>PVUvfB51C5N#{lN0h{JbYtI@BOC*KFG7M|;K z6MvhF&yXAk2KmYYB}SstrX)8RQw5Ut)yy`2S}6Vvg`*g>^GPq48?MxzO3R~y2qU|j zdPsqBq0J;aA9qzul3KSe)%CTC;{N(W2d~+;Hmpjsan};s$TLVy_KkY2EcKajmFJD^ z<91r=j5KwJ2I?+&v969#Py}!q?p2Z*hpy{V?-KAkOZ}Y6tzK$Ns>^9C@DXfLZW#_y zR31fDbEUW8!tt!K#U{tBx+D_(d%avb^2AYw*JRGT#WcB?B=vrM)H(4|S{h~wH2rP2 z92IvH@dvVQrH1Z@)fP0@I4t2ejQsR(zI^lUjZ3(m|NS?t{qggiU;XOz^knDh!R~p6 zXUF8Np8C#J9qL`1uher|yhO?>j(ax~Sg>{T<>{~Xj*h-~ws-L4^3W00)-l@3XIZ08 zv|EeqN~j%x8<s2fN(lA|x20W{H9J2&CDR;7Mx5KzIJR#2cJJ`z>o*Qy|HJn$et7lr zt$VbuZnXNlxujuje7L&_Ei)1bn8Meizy=FCs{fLVI_`C^v-@lH*sRXdbej4fV<>Rd zShEL45VG*oUY(f%0!X>&k-k+!iD^r+1!~+TeB{&LWFIdH<QU~8wegXGFh(J*9=zs? zmVi1(iX=*R47+#k_YUj3Nto!SEuw(hh;8|7tvNLoGH4h{yqTlK<7^!7!0pXi`mmT* zshDBsAN+VmrOnHFr`FT~u63Of!YU4BMu)Nabg^a-R0w;@wsbNX1hx1nF|2SBn2}s^ z${%&JFb&x{-YCKVz=E+~tO@;6T!mF+7c~+CM^T?VI)({SZ`MoI;0WhoV3~b#4<(5o ziz^X)TfSA)k~a8Q(_yNDL@X;^k<!omTNIRLhDug_D&{mG;!uMqxF_<mk+@eTiZKnx z5fs{8ihRNG2;(IIUemEg-5dblK7RFriJvA8?81`-WFOT4YOCRKeNW|$_6Q`MI2q1l zCwX&kx1*x0Kt4Wt_Vno&U+z9XzO=pe+1?kY$G`s7@i)JE>OcZget&-V_T~EzD$JW( zM78hl!(*p0?(8@;on#qO))~Q0;M(hNdDi{$(e6=KEkjIDooXC~GQQEQDPavl=s=Mq zD<nxtval&tvTX5*lg!__O4Gf^yN9p7d--4f%m4V{ho5#WTy+Hw!|bHy?xfL%(E`@$ zu5}gZKx!;5(YDeGp>$aJv(Br!t8P<=wbUfc$`U5>M(<2nRn}Da7!bcm6{O(VNK!Pc zI9Z@t_e-M1+PDZF`*LC~-+2#|7qFJ6SjCJRqQ$AHJR;5p*8K1{N&+RJL`7&0<PKoi zblD==Hq!zp2MGa!d+~h?Vhgf&FY7rzwM+AvXFM9iko0|Iy~t!P$Sc((AA|MpU|aH3 zR-M+*@B#fQZT=hAOIX)33VCn-*EC24BTDroCzz0}F&vz#^SE^j=>-&a%lq@Pc~_(b z#A{7o<ZsSO!zS(3YK9_5TqG|#8IeY+JVJ_hbtP?Y&N50ZVvsYaltuBZ?{5XnG$;^F z+Qq8&r8*{9Dh63w(E=$cf-vPkCW5O%#wd957EPu%ZoG`*ovJ9K6f82u3qwVgE;^5R z*9xg8M<!y`x`#VY4v(Jvhrj>jFTdP>{`}A`cDElmtmfs*HzAl6oz4l<4F4L*JGTx1 zX`N6f*9H7>n+H!%o*o`s$V78nMnqPTNXAe}_>3s0pOL5k_2%$db;xd4=Gm-<h!?jz zCS~{Ey}10Z|JQH6{ii=&z5k&1>AKs>m}L(NFsW2TjLVX9*+G;nxb9-3<wc~=)pB(g z7tN!FD7oe1iAtW!tsu|vEZdwIOE<Q$`UQ2Mte8QE#DEROz9y%YBp?IL=fnZ8SS$45 z2{rGyxqMa*<uZ;Z$y=V$l(m|EAHd~4kYyw85Q#i2S&70GV_c9Ym~MDY+8THGgb6vS z@)@_uw}XuW!YS=MAF>-84M?e=G}Z286u&+dU{mU$eQ?-8nbbU;v0fQ9^di7F(#xh| zcuqTHy)P8vAQzBjr6wMmI^<sd6C<st01w72JCTu2a(E(|4Cb*iwIzlQ*W8&rGy!P4 z8j$dmD#b-J0ErrdlK6`0zmg2=mxR{)oc@Gm$u<DlMo>dvW02uh%`QA8Bhrdcdb6GZ zZk9sn2l)tqN)Xk8-Q9QI#6Dx9^Lg|7{qZ-4Pk-_B*T4SyAOG>!2fH^e=rT8Z^Y)`9 zN-quJHg1a*4Xe&HXO-v5G?URxh7#h_z2O5#Kw7_KoYV^Cx(OrZA}3Nw4;fmV&J^%! zE+>qK`lEif9N#^@IevEZ-S6Lj_s19i{NH}Rb8~dMe_%m&I}|_OUf(&RXxcp4Y%Q%C zx*Ip#8tg&|T&+ib(?*HS&>-<_p!f-cl#9V>S1^WC8(`~4Dy3&$mgT7dKBW?KBCqtD zv@6L9D%->@_CG)jx0>{kuxLY{8ZTS-5ZMb<mv=Fj^bXR5C%qj<0#{gP4}8jJ18z}v zRE)@N3pvFUBMi2RTFkXPX=;U)K4iz0ZK7Svkx7<nL4Jr<xpI|jnE{%+KE;U)*bhim zXbr*YVTGQ!%?sT-E9K_I6_JDzh*h?+CP<)INQMJ-QOaZujbyPy37EkHFzI?F5tv-e zvAMPl4#{T6Ad-iKI`YmO=qBl;Uy9<@JTP1(so{e8@YTF}qF<d9WaiW|Wu(zxKf_r{ z`Z#7wr4rh+vog#%AG8dGG3dd&>la9+B7rzHP*3$MMQ}#47fmT7-s>d9^jWdxMq(nY zdnGMN-c`lQ&e)GL-fw?p^7Wge;}iXKM_XW~^V4tMzq@+%)7#z4eUsFW9AL!;xlAMl z?f}O{BeO}s+m~~2uy=fXd|;m*uE3&A&{k$(MB!+OS4xV9_)y!hg3r>FCg+QU2BIkM z-IE&z<&S^*%eVjh)7!sX-kssPfi7KI7l&w*Ah2<rNG_jb9>8H;mG`)@Baz0ayUeEB zIKoidp3}3MA!5ixGu+rDlzJ;O0b2eGY<N%Oil;amlPmf%v4vtsD?k{R;Dpo$tRJ~7 z{doZEW$Q-9Vo<Wq0hv}!t+kQG@Em|?P!?xB6=p>!9mEF6fXG9wLSD?pc^7TD>C6T} zhvq^3L<4eUX)p*xN!GKT0)b45KZUNe5pPR&k%ecf#t?l@)ycjQSqK9}?~@Z!K3l#k zO!aNV+vx3pjaPv7Gq!4D$wZvmd5}v_gf2v3OjY@mT-`V?3lHz&C}uIkvvGN2BeW%| zEf66Gi>SjbnDVNjJSLyYS(<Cc*UYM5{FW|mfxx7XGLUlFCgA3W9U@ilw!X1*4$T)h zslQr~jwMzlpK5yZqV-(0Jw23Vht%f=c+)V)uNh>s-@q)3?&9J7iTks@e){bBfgSCR zzc@HF<61BJ{OtPj{ATyv&AzIR%Ay01i%K&^iIv&=b^<&;I(l+)a-yb&l-9s7v$Cq9 zS+)3x5J<PNrAg&bhaC7rmMAkd=tuW>zW(X_=O5pH`!C;pIN$kraevS#mSOcqoom-v z?4?JF4?HAKZX#U(m$VIMA;HK*p%yewFSlJ8m_UxR;MtMU+(AJ0jS&Dbm=1OWHmCw8 zgIKlR`_B0kp*SNI8X2OJ%z`S@B%II{*>{pX^22929NffQsT3^$9`iG~^qmz}<XVw^ zZePgrB%iz{#{~^m0zzjT&xPmuRKoSLo)bjiDRc3mB=e2r4_0ad{-0O2%2&))#sy_Q zrKJy_w<ETJ^PAqvWU!43xmY!eAT~Az&|nO0lM8QKYEqCfUT|9+*CDF~l4Jn1!2ruC zg%)WJy)?`!Og*>e5O^9RQIS^c=+X#eSS{<?vtkJ?)esnhS{vb7i9s6jb+li*9mLFc zT7tU`GdIPjsqCl+_9635PHA?drr}rvxgpRIg&?vw4c3riS&&2+7|68wp*4?($Gb-- zYWzoTp)~&U<k8U=`-jiWsnBG7+PBZFNxuJhVZZJ9)%(}i_wD&{6Auf@OdG$h(r`Ny zBI`O{cfMomzz>i1PoEyCZ*^;1yxN=rE_Zf;s<8r9ronx*0^P|5kf_%nW*Q0IC`ixs ztN-%jo0mVH{rs2LkFIu3-8Fb<68lP~Ku2V;wYSWeu(WKP26WPtkxf+><&}D4h@-<0 zHn|(VY}mc@N*Wo*ppjRp#o>mb@yP$JVt}-9`7aJaI{6O92>M98pfRRoEl`uF!h*G` zkdc3%Fj^{@*bD-C9wXSeG@}xexXiM2;R$es1#J;^&>Li`dy6oLO`bh8&OTu)e?un5 z<B7$@T+tXaFL7mL)l(92v`q5xe_VW<RBB)eU_}PyDDvc6FBe1TSSB%x8skU3BlfH< z37B%A$|M?aMhiPk&GTb=yWA>?cQ2p2<&!Fo^I0`TDY9re*q}9sZN^}Xxr-=I{>sVu z)D~_FLTu`<k}PsS%Ny9kzhP~nK&8w%rfz8+qG(TU1O+AwJ&*^AvgLG1YhY&xJL*kO zfO<5?msXT#w2`kS?0`iWW4}6g(r8FqmeV-e0efUC^1+kiL-qdd$-%vwFkKG))zg#b z$0x4NayRsok2=55XCv&}fBp0ON7oAX<WK|NoqL8iUB1QQw4|eIUgO=sJ^r4Y?wyYE zL&ijo!Dw;g!Ma>6q79#isvhZVRMIA56tgU;`IZjX7k7X7-H*Td&G(mYuPu-M^7Q2P z>da`m)gqhb)M{26D@JzO3j?|{v|n6{C?sc%$8LnVPC5;bP~#?MBIbqT2l%|O3yVAK zebuWXqc?&tZp4vsQ&_nU%q>(Yi3$x%PR9jvG&lJe08~J$zt4q$=Ya78`SbzgjUN(a zhLQ&bERPXI-hPpih-a$DC_oa1+U-6UVxH@LW#N5&K7<ZKs=r8vI0>_~)sPiqWO+lV zO;IOhov$HO&vHP{2KpLvuNoS!!GUB-C_<J9CzPf6Z&ax{GNXx=$>0PX357Y2c4=a> zLsR%Lusl$LmL-3Dbba;Ve%I7V%P^8cM?K8RQXw)ntoBm;GGS7QD%f4SVa2z;5b2ZP zF2riOT(+S+SfZa7+3SGTinlw|rBr@q6hQ?=SLtSjK`^<jRPvAu4WF}}vrgldB-kQ* zesOhvb#s1hy}c8`jo)gEhE=p4I?h43URBG@XVj*3jjkTP&Y<Ek+q-+Md^D-8@9Efy z)1$}78pOMoA1=T6<x_LL<kM<FOE8qk?H&?cyt}@5ePQMC_2t>6O9EV4xqonRc1|eG z7HS8`t;sMw>Ycm8!@aM+c@FEny?sO5SC`k$jyXEAvrh{<B!?B|7SIIZo=Bw#PHMh< z>RvCkrwert_8j}{?}zW-{rL|sU;lJ=bM?W%x4VU&9DKOEKCkm{*NbJ=6`jyC?ukM6 zu1r3Y8@aZuGENCqC_0YpCgElzG5X3e;<R`JdbB?75AQOxc#{B^OA9lqIQUF1OQ^6+ z4IyEMhqICkL}qxVofLB7*FgYN5*`>KuZO;37!S@Z{L1K-X40*Y#Jmiv&;UuyWF=pR z2e@a{>?0rD^l-Ka!DPp@W4#AyR2?JNVoIJNISw+3TbD(Zryy>0XY&q2`PTX9IX@G@ zXYq$tVyx;d+^QjF(F7=|Kk}6d5hJnNgCS#*kWT{(9|>ru5F%$Xklwn&SbPQHdPBte z<}R(UCT1wZ2Uz$kCskZ{^YOAuB^7W*8n?hb6nGf08S*AIxEn%|PE$nO$m2nr)72{5 zT&#kh?(8z54QR4$jT6HfZm{wsfhKK4(_%=(DU)R!ySpyTv1FvXYRRWcu}iM%3@kH| zd;~ulTe={Djy3$%4^4Y86PZJ}K5;26qR^9rFHd(}B&!0}em=bW<`>VOJynxdu{4bD zn!mG)S3kUR?Pbf4_gT047q%N5J~=`POATYJvRqsKdG~mK=jeFXwp-=Uf>r43;A5LS zP>Yo@_>_FWQPCjlE0mh;a-^xNKreXGEHrfQ_S-kt|NZ~@*B}4%){2ZHtFfqzdrB<u zu;YdDtX4N9vH;~pGNHVYxNId-)K~+*JVSGwA|%#Ym{o2QZOFEC(YN+}(57H%hrF<> zmYwul_`q(`ikyE8+*EYZ_~g87;7{aW4;t$wv+duw1;KL#eI9LsWc?6Q)+0}BP2#x% z9^`pIhAMw3t(+wpFWwusvQP%>_zZTy2BWFZgC#gE*Z|t<?MnXelmuL#N;HFLB!3nx zJmjju#a^jyMOn3ZE0;o0hTyM!`7oIaZ1pXmBP&UyHm+dnmZER{Ls!Mlpkit@a>&kZ z8aL|Oq&OBuf|_A`P%X<2PffeYei~=WwmOjs3XXejh$>bpyFm^hwh2ge1OXY?(=?+J z43a|VWY$zBUsd-S`(|tHBDk_seR{XXWFb!_>Ad8M5Xj*6>xCx=t46M)D6OhS5Vf;Z zv0)bGKhi=r8M^oQi-Q&?e)asw+>a=%f}_iKcMi+|z53A^$?vUiau}3yTNJDoSHo#8 zW4NRDG$^#Dsez+so;^Qtp<ed2iZk3s%IsE%uebxVT1+~mQ6N0|Tj6I3h->wr?(!h% zK3v|t{rT)q|MdNvAI~0NGcu|feg3P*d#x^-rHPbDdPS?R=m?P7px}-4tZe`KnG7H; zJSzSOeoe|$J*q7s2{*+bKtM&~Ro$#cDu_|_6NO_>WS&xfrniF%v?^|Btgh=;xRZme z$}UXgxDbz5xl-lE-Y<Ms$h@bJh3YP4_Ug5+ge$b^yOJu6f(5E#OpF!HQ%r6HW?mIH zm|G`sll=x6h(+Qgb?V`$&Tn)=BH4tx@QCQ*n>s%_V)YXe*PZ))3;yU~X1DeYA#x+C zR6ZlJ*JbazEMEJl`c^qD+LC;cm{iSmbCFw-x^81z<u0H2)y)w#z4?Hkpnz~bl@LWx zLS6uNBfT-02BFKpuI0p+N<H8+9o8lh5|b;m#37G<WZ9zxeyeIAt#;%QstQuWx%=Cz zg|4)YyBuWSItrpnTa1fR+Er>vhS;c39h+4eGAFB$22G({&9QfS`t;svrv1ks9@}uM z7qIj7FHWC*d2qDv2y)FzaCS_<Fm3POTwc6AyE(hubDG7;VRnECXoN*&+L{whtf5G9 zt&9ezEt*1a1RlFJ15!gkin?S67DG?+ziFG$@F(4!qHXWOc)Oe)y?uT4+yC{)H$T6> zJ-cc3sinIbC3iR7H8NveLD1wy#l9=?jFj=tDR$b}lyWqNkEfppCy{r!KiIg@`VsOP zqQi{8O0h-_(%Fer?p(|xilecJ&rPDxn!L)F=R>|;d@h|`?<-Wa%y?`M;x=eB!N<7I z!K^r<3h~Y@s)Duvt|TjHJ&QTHuQ>5-Sl8#6l?}=(WndrhiC@c!x_vG4@-5oN3Td9M zqBYn+m}eeXXj(CNcA%IR7{gnIrLa~XHg8|n1eE7QB<j$s@#zhElp;M@Ml3rKhxn)O zM16*vfj|PyRsZYzD$=r81F}LI=h-&Bq$jwW>b`U9>;F(ff3T1OY2c@Y<tIB7a(Xcw zyH4!bMZ~LQ<2s+sUT_Nqod(S0Pzl$PsT8!HJ1gSOCD3<z;miP{h#(d1QaV{FVelcq zeCR>7&URX=`f|KYdpK4fX!~L5?eT%t{-$paj8C0BdH&38(YsIgAKP0{4eiv`dp*n# zE+lyO;+<35cAOh&e$~tqQ1$!d(4lU$5t2?twQ5oi*Lvi=eU*B%g^JDqB_B=4sp4wY zOuHiXpgO3P{=Rh@I{G>+>`E&@F7IFbc=q4_?|(UeaejNz?Ry%+4XJ)qOGj17kQ6X4 znh=1Qq^`vrc^98jkI0ckBtrraCT>jDL-C>%J|g9rAO{1vvh~XaCO2U+EP1YxQty+z z&(Rz&EJ1nA%skU3j(5-8NSqSOWI28k=0<7DetbfGWjmi!9c<EwAnml-^_erprQTxY zg(Hw-0eUC=Ba(yvM2jQ-FC-=&fMUj+Rh}{pEbr0Y;0VVmISp==cO_EZ!g5*b0X6-` z@x<Rkoo>Q4RjXgBxoQVli&IsYErKpikXL>nlLV?%J2}aoZY{W#b87`B`vyoSzchA) zazl$^!e(SEQ5^??)LAw$LVi=4e&!xpxM5Y&6t}8W>1FLy^??*JkffHC1epplSJgF? z$}XW`l~o-!xi9uJIQ_9C8KAC-Z_jNMsl??aVH7S^)5R)UwgtioG=%{sJ$7G@0VFgz zI;6KSbydL8!IS4t55Icm0uYDEz)aIdkJoI`!Nr@imp{FJ_ww!0o|R8*piHZxwIJNp zxkLvRG8ltJm0KC#aFtrU^PB5?mwQ7AWBppAK&YZ4%6aKslgc&pHy0A>T3=q=zWn*( z+u!`<H~;Go2agVou<6OhKW8}Wl{i0Hu>nIkq>Tfi(1{{0=}X^6o%j@oD>Dhmp}4$4 zAu)+!f`^S-26cIh%|>n-KV`#bcs}Ia$_!6Vm<S_tF?HpVy7;HTQi@)PQ-D5mr5(sY z7~EDM|HcSb4ZihXxi>c+E)Ab-AT21L!4?GjO{hu3Rq8Dq(V<#beZ6g!*4HM<_GiWL z#mpPy@KVz4OS-$oe`T@#j3<?-&<q#q`YmNJ!XC2A4kYx6Ztc*loOi1L0^sh&dVC=J ztU9VIJnBRvRISL&lX!{YW$`lbKsU>RMFhCdK;R_Y3tN-dX$wzIJA4yIw|PTTNM+Ym zFac*1Z9t*3fuIhth5U&`+^29O#lrw4^AXkxFJBGLmKnFjodVDUYkmw%-CVn_UH?5M zREZFpC0><0%0UT}(%+UL8~K8cnFPxf9L7`<3ojlY9Er=Y9q#Xb@zlPbgQwOw-CjXb zf8HS)5P0?K&5NI2UY%X+C-D?xzum`=jgYs#39dTZ^>YngXUIMtHzX@#n}(tmr=>~@ zW`mPndRN(I1C^c;nKz|WbXch6^tG*%w>ACepWgoYPcL>HK&2Nzqm<qu9gm!8&IIqF zlBs|JuXjXPSV)5n#9*xRkR1u-P0lO%2*JcpdSoABFim-f?lD$*CJa72hv^ULP<SO* zMlWKB0E7ftUTz?yH#L~cQM7sQtM?H<FM_y9;cGb*z<B6xh$e!74Q3N%+2}msv=}_W zCMkk802kN=IRRckCJ3vR8%s5!HS@knigJwbEL6Os1gFRtRY@UVk0;!Ot!NLCKcSiA z<)jTw+BhRwKxh(?-4WB$6{n)ccZx+D#i0mMVC&SQsi&x-b+e;;F@~}t2q?^I0s4j- z;?&~BiI65s23L5dS~HB{Jtt$`#${heb6TyBnp-k?2Rt<$ij-jC$QP>OjVTQEdaW(* zDDi*_1L<W@y+^RKDE<>&ZR&%)C-2VBfHCl|j6x*O4yfmEZnf)&g*yC@<GWTv8>urO z7Z+>6%!mR}GpwZwbshZC@ty(XFRYY!Vy~UaUfFAR@84YAU*3KE>F3ukUcF)`&boWn z9$le=JIv#WTZeAi8U-2W+05DNAC0IV9N4AMF+fTuvWg;z*~i++vPKT15juzHWVsOY z%2Eoa6W%_0|K{SyA720FfBx%l|Hr@HUOMDeGv#B$(=G8bUZwe6g_#i5(e=MZMWoHP zI^07mz`yZHJmO$Z1R3LqzmbnHC|0h@b{HFnAR2cAxI+1enV}UwN%m9L(>@P=|3T}K ze$*cslvrC0|B{XaZPNDS(Q{?6C?a`7E#<qStyC-KL)w4yLO4>4E#w7nl1w2cqfw+4 zGT5%jBXOD440K)tq#{qgE2d&r`^kX_4+w-0^C|8F`h}E!LGE{8ASz#bN?nrTYy+d6 z4ysKlqLN6Jbh98QAr^Jz5%nem)12*(uOnJ~f}`pnV;TaiG=I&=Syw#lAsA!P$XO%K zu#7rkFQEQAPb0E~2gq4YKuwfHj|<S6=1^-j>|M9`NqBSFCVQ2q$fBXut}furCAL(f z>Y{Qg2KiPZlPkNrmqvWx>edg(8d~3|(c-YDgO4xYzE?zj!1|Xhm1?zya$|%=OWp5$ zcki^}iiqsB8a~>$eqq1y?!m1M!25@fgjzIl{AB<5(c$skH(wnb?>&0%LXql@j}+wY z`ib*W9hdn1&#$0OL0#>&zjJug5TG9Uer<qe-c;Sw4rpjS>tR{*j?l*zOF{Vq<Hd^5 z10&GZj#&%s+*qYdDU$OUQP7fiw~!NA_mAD;dwF^Pmp}gW$8Y~^y6eOF<=&ymBZJsU zA&o^S(|h_AYMF*STG-G)MC1d4DmyinK+u6Pi--*|4zqAPC?%Tq<jie|HF}jYizZO> zAqa4+G8&iE)~TOS3mFBdza^@SY&8M2+6gSBf||aQ%Sb|Eo@UP@!QKGvC*z#9H|h>t zeF;@XQydu_iTI=8CZBSt1a0_A3{9O`)B!@_3x5$LBc&`yBw20DSQ9jUx-^0Vo6M#r zijN%nndTN@f(WpH<wCTCV^*j@k@?H33j0$z*88$t)e@r%6h+Af8v5LhDjG;O9JMkg zI{s<?8O$ZX=@Oo?c=ZU7tc~O@cg@g>+R36ORA8X|fWl^h<^#o)Y7mWrRjO(#mms*= zv0nAE%IZEE=Mo)0z|b5|sQ}dX*4Gvd3#wrd!p@Z^dq)Oc#>tDDgi4MgDx!V%qq}%C zz=WmU+^*gIQ}M37_>i&3VDCfMCZ?+m{F5bRoq1qm>&mSoo4E(1$^uP73z49RA5Obs z1)N0lh)zT3^iX|w<W4R3^z7}J$88x#EJSdZykFn!?47;4`sw?ZuV25mwP*L%V*UfI z>Ljgtt4#}C5ttxIRR6NOZ~Ld{>rPE2)z5<h4d0ZSRl+Wb$F`1A8C%rrezNZ}LH6_I zi?@IL_J<$-{Nwfc<rk+Xt6fT@Y@eY1^^+Nl_7%jqMM*@!n|Nm>x;aB77$GBKNV(W5 zW->6`Eunxo5IQ54NoRfuH0GCz$>b-pggr-C^G>4%?8-llkf)F0(Y$b+8fE-j6*tf% z%;h=G+v-w7oTLdd^tY+QH<<P#U_JYxlNB>m7O1Ldx;{?OU(qDFEMOira+Ij{j=_Sg ziqAp<r(aE-(=?cr0vs-^CUM0ZA|$D`b~YJ>Sd=M}C-F=ClZSkiCLjxfZ*N3540zWZ zY<hRj>++q~WGy0CI4YNECzI;s1}Nqru-GkUaPGubW3jxP7vq`pHJUSdYY&@Aq60-} zG?(toz?aK2<qA=P&|C#;msRL{3dUGyuTO+fR#u@)W?iV&jE~e!y_7HHSL3Aki=UdB zb{?=gn_-^KskXsM)&jTh0(j&m=G97%x<;Tie+a1t=!Ezo+2h00ll$XiYozozKiuCO z9G@Jzd3OJ?l@d+a!k2MVk?wcG+SR+W_b=a_y*_hPoYh$lDp&7~AeAfjYbB#1`(UP= z{yK`L6KS*zvKDD<^d5+nddS}AFoLGb$R9&69NX#0oexjG|L(>2-@iC}cWpG?P4cKL z?Q&pxK`kuxl5HKA#BJEur4Xp(PXr7WjvaAi=C{4@LF^5jaN7PKvdcn@p6QEdD}&+5 zdLKdFq#3DLk_|GL%T@NwN5KO>SlBcm%demfH5Q0+Sw^C_6sX?}`#ABHZ-i#j4td8j z@0d2EC~OK24Q5W#jl{2FL>A39G76oc*Fq?Id~yS!PnpD*jNK3|g4e;5mBb==U&+d@ zWK+>cj!+d;I>WJ3>k5~sLNsV3r9=&eCm+7bj72Dl9-Ne<N5ajR{t}*)VI=<H`GCao zS=^nR+}f;zvbl$%!K-n_S4(tFUIo~5$cq*W6i9NFTU+apvh}-}hKxd@FhV05N3c9W z=D*l8F})&-wTsp8KJ?|GAsXRD7x~W^ZPkw69(I}21t&QbaTG-~hD<>!i*fI=0ktdf zcAZ~*dc5=W<jKjQYqa(bG~?}VHyCC1#S*BhP-2kT+jE!v`RgBEJiff&zuUVyKexu& zu7J!3@Rh8+d8WPOQeE4)+oPl7BNvE(xx^?0rnMILhC|`P%LAiBkQ*H{6=44Me*Z7u zzy9q%{psDybKPVudgn8f;E1>^taQ*@O4(ZueG=+%Kxg8s8%8dIpGeK`$ks$dolU}J zLO{ft;l*SWk|V3Zmv+JGV?I}2lkxbB+^<|#1W7>PhG`4U1ZJZ~6N+R-ODk3t7bvCS zIZ9n7Db4bo^1-7RWSfj9W;Kj-ygP{i06+jqL_t(wRMdgSvk2qhywZBY!!vs{*#)6! zJT?`zOf_$D5Fx!oq4*)NKD8LeTY3pU+f2KRPYE(ash^Y;eqo-9Pn{&jWG_l4V=bQ! zEwT-wboIER*HqZ{ThbOSxZ0Lm==TmPn|I9046EXF(H_byXejPELaEbMYuEK}l&GM( zjZDaxSB=_P+Zd>69HiLdz+j{c)LA%stC<=!g@SlA%Pk9=W_Ea$j+=TP1-G##VoWH} zkiPd`LnLUEOXY@=lcp5WDyx=|I9@!yG+AmzJ#9POH$!sx<uiJ_|HZTW!~LC;Cr`gP zvT^6xvlIIZY(clr!1R)Cb%(Bf+<E!t?Vo=8yAN+KPj*hu%&#~X%F65})uZHCNu^sC z7r`%6qKwa;J#(02Ct0P;;kzEFktD!m(*&)hH)Se<HiGe_50@YR=YRXxfBql8yL@AI z+GhU!_?IQiCZd-reVAKHsUFe;ygGpq0=ywnp$UOjND9Efg^gM<dX+ht%ON=m$2100 z8<!EP5s^V0nHM)VpjW0VZE}!*8Ln*mg{Pfccr&s~C&w}s5}!C$QC^}A)bI#GA-Re8 z*N^x=aYuOKeDal>cp%l%Lj6HIVq*JrU4tsxkOc^z_4`&XpdiD_3A*%SK8LwuVB{fm z1Z`dj8#f(htOhGB*x(SDL8wMht-kRu_lS*$!SOM@5(sGw`Uo>fR4;{G!vtx5=u4X3 zt@=F;F;6JcBAm~a-+Fm?56YtE+`l3e!aPyNQ$Lb+()PXm{Uf{K#>iRAQ?%fJI6Tw| zwXmDLD51Q>Ni4>JEZU4^OJdy1dH>xWa({F8!HOhH_6?OO-wYxrcwACYX92p?P!~Q+ z;kCsmOcc{wU^~T}6UQj*j6cf@o@P<@caPn8YyIKw$?^X2(f!e`B@&btsz(QAxHVpG z^bHY+VzE$Ktd|$pXD{A;czyZ!=HAkbdn-5+gH7XhI07%+PBg16)9G6~iEJ|xPuB3k zFYhrJB3{Ru@mb;F9nyvi?<|md@#DMS{pQc-Z{5ZHq~6B;2e$~iiDA*LG-OUxNUWX+ zbFM*AZ-p_>4P@^db(**fljtC{`eibm-w{Wo9o9UsNwk$?5Jwspp7YsvM6Uq-t~kXT zAYLYD#qE9JuwZ)jvelMNr1{~WR182_C|MDwVqDP(Kre&Yry@|2hV7FFt-6J0poTtP zq$tO59#s8Q%?4=T4b1sokJa^H$X2RNrjxA*F>;ctHWsQIuv-WrkTQ;uomA=MWT-Sy z5fN_TLtuw|UdUB?RU;9uF;&y9IC`mg9m>+Mk~p0bi7`q)%Mg4IX4E}Z>Aeov>RM0F zWN?ybDIsxj3ncvvEF{K)nq-xPgh(eQ_zTq1?O-nQdF#C#8*FVP`@rmM&4p>Xz*7^T zG8Vs1<uqQypZrC=Y*_ZbPAtu7{&UxmnC?r{USg?z?TS|))}+!z-amQ%+-0^0C#Pn^ z_B4zwXxQ6T)f&*#LOyVn>#Ys6%{6NkUB174^XC1Bvk#B2?wrx+z(p$?Nr<yHI$#Hd zp-f>LgKA*dc3|xen+h3%j<!|V+H<3L(Q+uNEYsL;_!GU18?dix9c3}3etZA!_2sw! z^5>twdyN}P$&_54Uu!LcKq99mX<<~9X<)&Pp8H^@xHy}rjNAU^y(M)Rh`BzoXWWXw zpLD4ZP+qx(Ox%3D6(<(u1XT%D^^I<cH^LN?$D={*TGthL;DkV>n}`d-f-jwz0UY?n zpS*ZU`ByQ8pau9L$Sf)^u}!`KSsCGlS@}SPPx#9iC_WEvdE&`~&y+eN%17j~-r5N7 zOI-n4NUl0oOmLJ&aB#}2U(c1BG65FTYe1zt$@b7^5)MkF#y<&CXHPgc**duM6HJrR z0Z*w~FSQ)8TQ3@Q0%S0eHl5FiH0Xr<B5vh~9Grxn%YU_d(-F0Kr-bjT3AOYZf@<or z8^g4FCtc-RnTFX=D)<53u@rf4#)!2-IRIUHr%Nugq@Gk({swU6#9Qu!*xU~UY`vfD zWA(dfo#ibDM~6DT4xPEWn*;u#VIsxm9an!m`*PRK@h8V0O(;2W_{a%xPo6n*(dnqp zO5A&Lb8)_Z+?mq04>;<y+jrhx>_O|}4K3GXQDJKKA83Rd+|CR}Wi(f*4_W*;FLm$W zSPkA{0JSj%RbHXh)iKO3evP_CXCWwvV2@tEP}%<J#SgEWU;l9Z?DXhrXl0Wcm0FbX z1XaN~V9R04Ebm~+hny^fSm-#u{rVoaJb^;pX+g9GZF#Pkm@MM*d3a7x=}R~+AO9<0 z@YzQ8%o`Dz<l*xWxs(HQ`#Z=_`4^l*6S+jWx5QdTgZXDjY)i2br$jM<*hDM4$sH!% z0SWm3k4u!dlo2Ie9mVbiGQz4I%FrA68ti<H(uP>?*f)qv#C$goDj{iL5<;FSqntA> zBz}mDb%=0%SJ(!(oA+AU0A?9X=P1+JUP^9Mjvg1h3I^1r4P#fTmClh!YKJi*l#TkZ z(a~7KM?V-VW>_Xq07drV2?7mV@+5LErfuhjP8RCw(pDAv)<Bh1imYL5q7_UrS6<+7 z_0y(o{DBpR{)=E)QpFk6F~^J#tyu|caj?d7mn?+QSY)80yo#@>9dsa82Tu-;^j*yW zIVqfWe{p(hg~XSqPniUU;q>s-8VB{{o7WfbUSIwB+wXt+?q|!8RLM<!X-PcV#~K|` znueQ7WSPVwro~pWcAV?iUw@^Yq6W9!Aw#Ba+{k&T)r`2g%nT_DQiL7(xjTP<Zo<j* zkBdz})EYQHd!<vdh@&8!^b5p>?5u@R1M^ZNK|DF{3SKU)LN`UN?M1T~96|8tk6eub zR7+Ps;Rtb%Y5_-5K8vlfV=MZR8kCtzSjZGQ!sdmm2~y>es4P&P<H|+8t&!0gusbus z4j*U;;?FQ6McW)EI|`spAy}pW;xAm2JUPVEPbG~m%Z}*#OW_Y}kLk5ZUB{iLiO+3i zo7~i?%mtq!C|32?pae4vLu~<g!xAS%HLdhUXs;4au|X&w1xwfs;w;REx@leChK3tD z5>KjzvmE!?0S4C!O*$HP9Z{e7*hvU$jrmk+6$6><eq^cw8P7Eeh1SHvb1KGNmt#E$ z$3u}qep@^-t3Z;B3e|K8Hx|2c7SHe4+RbNaQJ>xM%rwyX`mWiR;dl|oAVeZXSO}n? zMAPgl7IZZwT#UE7ckEc``}b!;6M?m7NacwW-PaKc17Y6!Q1xJ^W7*8yJ~@5<rQHKA zx^xxTvx7&+&zzX-2v#eD4FYMZGa^thZ+z$cx9@-V(+_`qaboS^O(Rkjz2aF&#(bje zwDj8f&6BCapS!(--Dgh^zIGkZ>Cu!J4{NX?jZ&c5(3hTAK0$VuReJ1ry^HhfzkL7V zU;p`!?_QtpI_JvBc1mFRGsDL)RGdW_a4O^gT+ih{ewzm?jL6ICF&umsm+^hYkOT|- z?-OF|<`zExi6cs`>@xZZH4;qp=r9J8f8|=9UPM#iN$yb=>-_=eiMc6AF~$i6nOpI( zi}!?1>Mg*}ffQkI`vifQZQHcaTse>39v$5h4a9}vdajIkuJ9TkWE(o0@>O=NUfNdf zaWNq%`ey+1*ivu#D@)=&aUO(R9NL%zwdPi2Y+S})bQ@7A<IFBk5f4TIb{Sye@_Cl< z20!bVd?Vb3ui-T=3_iojXLh8q^T}tC4L1Ev*``d461!lO+4&d{i8>Q1d2R-g>Vl8n zgGMIc?o2q=azI6x(UVFj0%#&zQO}9Y5yzX3AHTIFpe;)+fk5AESCOQdgvICYvY)*p z3zXd{<j)$!yWQ)P6Z5$H?h>&WNjm)yc`|owu65mKudaXm-S^jTE}y$ML_XH%*qsd~ zF))rUCkqrCMHrde+5K>ReQ|whs^HWT6;+%WvQE$s`6OXvy0_4aT#T){OJ+VTTeZLU zrypN`|NYN47U(i`d&tMDa?+zSw6~UMZh?RkS-J61ModK4Rqo+i6{Z(-W5RpSj^j!? z%t;_JwE8cP&l<`6x$M_aancS8^NxF@j&%EwsRu<UIl@DCXulE)n$V>1VM3{*58^8h zOcu5SH&ntcw|+fA<=Jo(8CvSt@C>pSm?mtB<b8RKzei9ER3uOTj@#xD{*!Mb6pPNh z;_ONkN>h}<DP&kN${beHe;b^og?%YfYydEbKrziJ1=smO&>4PJmzIGbxYdAY&;q$4 zCCITQy$)KXs4E)?jZd}4@Rbkhi!j4TWn3mp7Bf0Io}zg!7Z)a3hASBtR7T-llDx&F zS}}iek;SqfC2ZBis&$IC$lg-gX*UdoDj~3~drYi@4_iecg|{D_P;)saUCcTZ*=C#i zvrJGjc`2PRd>lenB4bmB4w2eFa?`-E<rycIMmW~|@$pe7#?}@!wB_=V5k+0w*Dua~ z{_fRJzyI;*-UfZ$hZaNZKJF}Zg-^kmIpV|4;7xL`LUVm0`{5)<wZ9=Stye2O<J`Cn z_0~_O7!WqJEg84A{%DqW49$h(g;=0zB-%odou~&90mnT+SwwEs;;)@pJhYw=7PY+3 zAU=?_)*{rzU&%qk&CemP<op*@pAR{H7A*-|PP91Q)YOvxPw_=q(C}uW#U%fhTaZ_T zsx)?GD|<`PB;hfUli&nPyK!Vye+YsLAKp|#GqjjKmKzD&ynaG<6R3Hq_!88_-Nckv zED>XTgkx?hy3$N-mz-@t%nt<g`ZQ&5EA(;+qqc2dad>pE*NV5)b;;*M&Sw#NDrZ(H zx{gxmBxeXdkX-%5X*kh&E?C?mX!de!=~CtgUQUFfDOE^q?1bzTn{bWJ52)-VeFkt4 zG1_XP3GfI#qnI!U2hw>?i%WOHsv@M2P@Ar}+4xD{H8xUKYe_<ZbswZ}d;Ij@DmH_N zGA)`aNi7_<YK=~eD8jeAhvBsIv8w;{*u`7Bu8pRpb`LzhIXOOc<kT>XCL&SG(@h@z z=sxIgzrXnDm4y_yZUBGuK?B$XkE{1OHz?wvSXhu5-0fI`s>FNCEx!E4R~AkpbyYIT zMJ%L1LgY*5p>FxM!fO7w{mUlX%kz(a`R?8Ke|~*&cF`QJ)y$0b=AQ8lr((kh2U&<r zTc_+}tE{S-Tr&I((CZ0BI%8<=D2!Jn(GuV}OxZwK{tFoRF>#z|pFXGITJB>}Yj@X^ z&6uj<R`sHol8lH7$>}jCG)pqqOLcAk9voYVaU<;cEo7wi;t3kh1$3jQEd&TLQTz>@ zB{M6lXce3S_=uCNF0d0B;)<yCL2htv<%n?`1*<8TXJYDCyP|<>3*purO_bfZDxxL; zOGvaA!pUQ+DO8>+twQ=gD0v}`c!NkDgC3Jl3TDx`i0Uo@3T4H??cIJmtUCun#aRE= zrWR&cH+re)f(!IAyPxZ=ph`S012-6~nEWc#w9O!HuxSYw9a*hsyH{d7n@>dp{%N2> z+LaJnWyj_SMT8}a8~B@2sKP8Enycsu{}`e+!*Mf*ypjl*@r)_bY88zrEzZlr^;KqT zwLtb%g@=|$?SHtxKHh)gA_1pBIYk(`z*aMnAnmI2tMi|JeEY*6etLAJt@^<RKX-^3 z#d7bTMz(VbriC*^B^gT4dabftHsu$;_{E&J?7WVT_69Dy1=S7DGozB2<}p~ME8F^z zvv;q5`0niwe|hWbB9&Jo%kaU|m};n|F^Cv24yBfqA;aR%u;Y^+Cc@^%NL(X;o#|yY zhazIbr}$HY#r0u4f6%0hw%h9cA#%jY0&awx-aaT_vEyBC>22KHO6v0W1lf~6I4hT) z4<tc;$(QIXrfxBrgd56vC$(d+NA4TNZgl{+g(ONYtjJVamm<l0`Fn~_<WytKOq|%D zy0Q?>iyEMk0_>UK6SqcBy;Tau93XuzdKG>0Dqry?w}~HomMt9)%k`*boX^ClPlnkl zDgvcf1?%j4aS)QK0+_BY3D5>$&^I~bNL6Ah0+x;~($|HnwrmIth{-n-3(%kvimT)- z%ql=$JZ;?G){2X!iO*R2VeKfh6<2l<8BNs<=5|}9AP>bEXlzn5J!BY?f*M*3wl>Zf zObH2oX)v?qlNRHYxu%A-&crdQ+O?zRGVtUu8h7Fu6h1t##`xfP=g2<W=WfX(N=}f7 zOO5M3-o3iL{_gu9|M=~n-u(3XiPLZ{&hPh6Zg)OXW|11yHg<J)xZ!_h!d9l8!y}gx z7#Y5CZ1S&N1ZMGbCl$bNco-%GppMwIRZMOxes|Sd{%m{g_uu{Wm+#-cd3k9HxWPH5 zO0X*sScS#^C>*FDa#Q<wjvCA}4%DnmX(5Ur#y4m7k9m+Z&W=I~;))bK(J7;uiGbV6 zV~7!C#-8QKbA(mCDSuq@y#T;y5DXqSAbYIO_4EnF2hY%-n4UBsWM&WtCKZhvm=Ezq z<Cpx&YRT+^yM3lb+urEb54ne458vg*;g#WpXeD2z6V3+-WU>@>QpinE)gr?wf<ZzN z7O>)Ro!-!_&q}$1;EX=;U=WoM`38<M4Vx6PN}`BZ;#b_Fm&afjN9Y^>EVr2r=P>P_ zpPvuv_K`G@E;j6GRABzvEj+?$NCtrS(Hy13-y}gfh~p|v(N=`1TAPpxPogp;QA{IA zb9gTwIZlhcV|7<OP@RPYOb24&CHrm{fOSzfm%0|M>p<eJrL&G|pV!^{cZP@ufuJos zl~m)<d#92|KQ_!PuG2a9N%8UX(<e{eXS;WHcVPneu$2v2?5u|SdtAZO6q?HR?$6)7 z{NcNoEXJOT^)!#~KAs-#UEEwheR^uuRCK6l5UOup5B$-N(_0&abHvTbk+UFO3Wm`v zqo#G$=IHdIM8iZxip{YD;b{Nu+55-$SAY1!cR&63=KRc=tM3jSfP-sQ=l0LT(T*s4 z7@3yjdGkMN_m6dZ;F~Hxek+tU2+pt7JVsGfx7)6bbXD_YIN}RbJd>ChBUPJqm1^{7 z#aSv!JeFe1MZ(5Us-;r(rHQ?JQ_y4&uQ&JvoF3N2NlMJ{l-tVP&(@KO^p*oX#MVz9 zfUQh7^bTR<Mu6I^(V<60mMj20Ca*!IVb;NNd?z5DNj0d9&0n;tPAap7f>&=V5yYDK zQ359xOzDcVbT!!CM!i?;Kx`c<)ZT^8s4=;!Cyi@c!vpO~D4rkne<e?!6$pNQn&Y&* z$7L5PD?J`L8$BJh8G40d^NHBU6O+mev^bD}EyK~Ut<z{1d8ZPPh1SEZMz_h2_O*pF zG+eah$F())X(5`rW=gd6EVWIUol{}h=GN_ansBj!>^Z@Z`A|J{prq<Jp>+x=ZMwO& z?jIN>*S55;4xv7Lyf#hT-geE4P=r@~cMVUMJKHe+!QmUq@R(j4+}u5Kv)0ZR&z%DI z!ERh@ova)@yg%G|bZYg)T{n$<oQ1?zQADq+-8Zj3oWH(uAHy7p{LwP*59jAkkB*#Y z@#x8sbM#<MDwqq}*@~zdInmbkS#9y-XHQO^l4R(cQnpIha0<dW5=zBlBuaD!(Bh{% zC%+v$af11iAHMtH{kyj}w-<I+*IXGZulrAC?BW-BwU_AENEEw?ZHZGPe{6+Ti_8*S z1;BW=xJ~?eNDM}n5o-uR7KBh#PsHWgSn!JFc7$e=!6Q5+dc5ag61-zy&9pI><PLZ` zcCf!UmrBpxFCf{15xxZO&dENj4$x~IjZCad=>J+@y=>m#(|Rx1r3%?H>M<yi_;A=5 zATfEvbZHAf5Ef3XgqS5EpS*NiVFFSJ)YafHXgZ#rwWhOQbuj8Zc3)K4uDrqbJpvqj z<W?B8$%=tlr*g#>NvwusfJt;)O#jdh9~6;To6uDAW?rUwW3ae1Z)Ub<D2MDQLN#Vg zQ@&V1Nh)p;<E|9il<vH16@*d><HB!X(iV6_F%AxIJOP5*#uk!}!4>vo!YYE&My86n zl3)xlSrN_D<g$`-UbxS}^6WGCpQ33_*i_&=NEj%LDpVEInJf-`!C4TEswGjfkUG25 zIC=yQ)nL-$%n~C6EV-$rQDs3MER}LnqrT?Jp&jW5Pahv2KK}CAiGz<F<OH-XG+<!f z-t4@8cm3u?<GQjBb<NG@X31pg_GrHrc(R57YS@ZK1d<pOFyi(6n=d<D+1~ysJ05KC zD+YepI-L|vY8v|F>f+<&#m)QIXO|b}#<cElFB!yS#u47_ijQ=mF&QELdZh)?Fj3$a zL2z0P4q_A;ManmshiQ^iM|l#AnPX654bU-Tq&4k@Ahu462@u2+KF^}|Z`^R8WKdK5 zq-+F6E~@v`1p^5iI@Q%`DZ3;w%hSJ-rGDZ|JI|#T52U(ty$s{AvfD(D5(A|oPM-8P zo3J5KrEab(dW<yY??ry#7>Jy#3*?U&V0bBuA*T0#*9oT{^`e&0PNat-&w+)($<~1! zc;r|F*^EaQT&J8p1}xrY7&2rN5CukRg;p6_<Fja$piwB`(%VIh5ot!N`cPE`iVCnX znOgHKL6k{br(m9#=NY-^_iA7dw+4|s5r}*s8{r^M10>Q&xaw8!JQqMXv_`?l(88J3 zhSCDEkxPlf*}o)-N>a#LqdMpgz_5NWeaz05ZJoER^F~U#4KR6);KqHLL^f<|ILbQ4 zH@EMeA3U{B{?t~!x$Ib5vL1XCcyxAg_2S1DuU@>mxxUos&U8(^5jFg!ufzAsk=?}w zNJI1T+64xWPrf|<<`-XBy&+lW#lo>uAH+iaS`2j`Ql$>lh>f)A_S%s&SC`0tYv@aj ztp-;w<T5FWjq=(-No2WmL&m{uBYdI9`7vTNxYaxx+gNrZql5dBS{X0$Wzk2PHE7Fe zRAA+hUJVnwC)!I|R7j4`Ld3fu?{bD-7$#)ecyrs+r&vW;z`dkOi9$$Z3v+oa2WHTe zL`D8db<39vPN6yFn=Z(RKS?8i#Coj5puB8BQkRJrA4O87WxfUlft#EM`v2!4>GDH@ z^|Iwbm<%rchz2Q;`WWOf9I_&<R3eZ9?}J?yX8iM6Nh%V(R~||^iUH{;P_xF|?}}cA zy(N^heNWixeAZwY#|QA(JG@!(H}8vl8=eha(xCJiZ(?5K<EGSdAaKLdx+Uu~(8{3l znY>c<;h*+)1Rz6(knO(R-PNdGMPEsR7_1mqv_x`7qy`xx5caEDW?aUT@*116uir+3 zj*hw6IXrLyJXO}tg|Hr2T>%q_S2wq>-<<vU!^`t`?^{FJ;RlH5>>lPs#h>s}l*Npx z+2jV_l*dGtX7%Z_{a^pbZ;oveJUZN|SMF$zdY#cSYR;@d%R}@(7wp@!v&-Lo`_t8> za~$o3x^14urXtIr>nU_mEvaY{;xipsqNDgjydDAX8M78XIzH;l#+Aqu+9F~yM7G!j zT<{*PBuo@YP2T#V3(xr(y$Ecvg1^QQywi#R<zfz>#S!mPdY?Agttws2$!9W(dBv|W z-@kbs*drC28YK@|U|X%gFxf<%_y8$LWy;dd>xK?%^=^J5mQak1Ms1MHf2@x}H;o}Y zISORC477QdDgTAw%2k9#TS$&M+<0%&iYq>OTtG@3b+z;Y3wWUee??dvME1Z)+d&^@ z4astlBKbHayu7*Iqr4Snw4@3k1xv%@ar()lV>%{@aw{Ww6ord<{UBEOS6s2Dw8GZ> zTYB5H1(1=Pl9v65z=kMtUaa6h&^GiE6Q>7<MwoOzD2=R4WAN;j6>IDn;5(b>>P}n4 zS7q2DYKj+fGV5h1p|s_vwY)2e)l`Re=5-C;!S3zu{fVQW4i8Rr*dE>4C_hRyci1_T z?e6aE{O09PFD~DocLI#5+p64JASz8x_aL<WN2La68s_${8{2{n1I-7IPM)fUvxY6W zfKwy;f`&wQtzX4=K8CwoORN)gaeni!|NMtXw@-A%wJXe8NAyynT@zrPIb%?2#~O@D zjP7H$7HJ<S8Gci%FrIBdWYFL*b(w<|O?+v;j^I}>^IlXFYH&eh%#LYVyL0@I(Aq5Y zS=p4J<vOrWCQ1mmC6pnts!fRlFVp-)5OHg9qS_~!fmq3hRsD{e<m(NZf9+OwN;$w6 zlR=z3*paDkpbLM7xXJGnVB;Q8E!Yeq64%mD`(|^e9NAVBlz`+99r$2GqRzAaj=!N@ zkNJyy)7p;~t0n!AqmoM9-mh{ilX37D#p^^=#t4<Vgf3mLg&EbQ>c3{F<+aWXodk*d z-0viaf}$WZAL9p!6{n=}usk>sAvwLZyyyebWPlfS#T19RnDS*fQ~McqT0u&`c;@Ln zH5-;!=fOLXYm7>uVueSQo%=MfN8~kvSrVC2*4e!uNWh_`%szy28Dc|1BR4`dBAh{^ z1Ar6h&!dlDI<fI+@5r#t?T6jNPGE&P(1@eCd~tRA@~2nlZ_f^!cAmTQSgP*n!54d6 zt3$<4=w=PP;fFqSd#$}X+WG36ljmPJ?ZP4~%cZq$3`J#+G((rDWGP2fuU$ZRee?e9 z)$f1z{XhTD-(I{q&py;rK^nu@iopO{x`LL6qYM(_@uGJnRXVOBPhn*;Ul081E3a(+ z5GRWq?p$PLV2e^S9OxFC$bZEg;6x_Nom>TT<+9%8yMfbBW(b;M#y7NpbkYf}5=%=o z)SmNF_OkW90!CBTD;l9v5PKpwu8qq|tYix@&kE&V`cM#`&{u0MSxPtlUAHI}{_2<o zJ=xB|5Ez-y`{Xzv#M0&(TE!H8$hDGsN0xBdARbeO5o^@p6A&?15)r&3trT9orkxXt zf+;Wf6UR%vx2gc6Ib+6DMFOp5*APuboDZSqnay;b;jvK!Ukx=SrP_Ob25wALn}}0E zSHnm^H4mg@I(CXyPmE~0SUY9Uu;6G~6!e*Wkd~4o0Yf(`jmPGl1`mpAWDZZF=LkgE zWARKG@yT=QFu^t_+8lGRXXA&Kr9aciE+tTIONNc|=y{sTJv}x;RWZSVt#~8@$cxMC zSI##7`PKFLg=PP{cQ?*iWsQcC<^JFzZj{W*XdCf&x#6kH<xe%giH?30Zb$i=Cw+*7 z=VNy(KZ3Zt>!aPazyJ1!%d=|*R7Gf67?43&1hkP+9oxWJ3|GjlSkK2`0zSB9H;Ooh zGi4duz;K45PE+-VXyTObh{)n&p75GL(t#oPH!7Eq>4>YibY$eUXcZ#kCijeE92Y2h zMgS{fQwfqhOsuF<tc=31_|WxN7R!IVFUWZoVg5(5Z5#kc0_33#<&@i~O?j$8#xxp6 z6adaJmo6leP+EDdOg+V3J`2uZ)oVd)P;IOt0JAWCuxLE1o#Z(9uR;v?;(L*BVD=aY z*in~lkp&U>Cw9uHbQ34}PK_e|Vjft7al_-1G|dyZ)V=d~HCr1r>Nv#~A<Zti2#VN6 z+vF9MNBAH)$So9@D5^;_WT<Us?qMJ!34SjTkr{9cPLYS=v2K6|mKzeUS8)I-t&&o_ znIwS6pj4EKN5m|5Y+7>6Pn1fZIngp@j8O~19^21rvz_~Ctr>HNtrvHIs4tHWXCs2z z4Of~KZr$Sb?fu*Lm#<&Fa|w__-S23ln)Qj1bu1or!PxG-<x-hGc`*VC)&zd*rJh_l zB6xTAR1@5RReNr_M9-$doJ^;zQv`avR^e7LI0DiJAlDIm|EHg`RwCLYp@0ntD45!y zF?5U~n?piB<bKIS2n^*mv|aBA1Jfk6y_V*t>hdY$48g}E>=VRANFh+K0tr;UnjF*W zs>n0y0h*1*LKfJSi_pp4@6t))BP18(5d!ami-D2(svI&IT%SulLc^!W=fc)^@JHwh ztMJ<lHlMtMGc?G2tTbK<7#G4@8D2i(dkLkfXdBevv1u543#%3L;YmtiCecdx5MjO0 zq`|G|pUd+$bfj@1oO(``gWNNuvjO!fN4QiRIaSAkH(7cp2(EUkZE`pmnwnb~JFfzU zgpV`zB4#H%CI8Lc`IU_zZO%YW2jjs<r&*B9aGca&cr%CGTy4@?sHsS4nw9RPfxk>C zJK!~vr#$e{9Rvqe!9a(Z5Kg#5!*V?<qO1~jbF95TJ3A*QC+C-)(+_8-vKzPs3|Ns- z%bGrst+lwZ|8{R*>(?Yu`|}*Qc4(8`;oZk;*8&`XYQ!mmR2odTOaA-se>jkNnx=hT zz}%zD2Jc^9e|X}QMo4~iyLA&lWP937?2CH&@mF7b`OB}qWE_qUPn_C;)X0jXx0hFX zv-_5dIJOES5y7g9oBOl(*T4JCcRzn`o9~&^c@7=l`p8AQR>x2#SRqA*sUQ6sr2uZJ z&{ohV!qSjLR_Q%wJ7M$1s`=@g7r>uIQ=r9Dj9}cnD`xk~&<#`=!-vb_mQ&LTw64`` zm}|+)3X-Xl0FCR{%t<bnG%YkBjSGCM=z=+}vdom+@TY>6h5sT}^|Xas5CIi^&>55_ z!h$fbWf4`U{{;xFS!czY>3Z)8)2HO~Ru-J*fM&-yK6Qq}4MqJ9GNVEw!fU$9>FTnV ztC&7RboJ)ardY!*_!-&K=EVwgtIe;@&S&UP?^c|Ln2T^5s~R9>37Hka&w2+TjlwM~ zqyw$#A7(=$m1r)YaU=QgM@lr}6FI_9yRY)Y9o)Q@8~T%y=(pAvBm-FiPn}?d1dR)u z*+bvUgY%wI0HESoNsJLxHCQcF*gdz;mMAh983-5WrTlEjKwPX3GCU*mTnMNMp#inl z__mkeVBevQEo!#jQH|MgJmn%sthbh`f_7uQlLKyEzjV;Vjn$8}qgj^*d1Su&K4mvP zkC?MKPM6vrsq9az`nD$N+38aQ)o#qQ5Q2Ew>~F&X@u&xGoj^@5<szGV@87-u@y{>5 z|I<(B@2<u!YD~5E1(wyAS!FcDAYxFXT4o#s=BEcRKF3_v4$mt(R7>}=2<|zWA31Xy zj(daNG@#KeS=j*IrV@ddCup^92c|5gN`7|td8{~MfxYx}e2VOQ8Yv;d6R-&i$;oSB zyUBHB<oOV~B0u<S{8!o`MJcyV?wQSUc+ilofMvuR+bgI+l~7e~j>H2XC}NqCNaQy~ z9>91C2r{NiVnn}f!(_T1;ju+w^4=mAJV625l&H^@*V3;r&8_5#PfC@HhiOS;x6t~O z<Lb?(egw5S`s|1FaoWI(Wi-lV0nj8Npy>j`WXGlfo_e{2j!H;UT|VWKNhMZqlAs|> z2qs6$Jk7SU9~2WtYOrk5$dON2A!Fg~M~daB)F2Q$Pm&$@VjmA%vqWnU)V7QC3-i$) z@qjIM#-(cwM6gx}0tTdaon)TU@^nMI3+2_Cu?~TtIY*YaNaO6{;{ChxH$T6!OI<~y z&aIU^%Lc51tc|RddvEQA5j1w7-gvZkk&nfg_f{+(I-913eY&)3Ii}JWF}B34D;J`8 zTlUxpWpms3_1W!<AK$<E@x8>_)_0GtNrzSk#Eh96tDe5Z?ByDUX3sbJHHhO@WwxI` zx#Wmf{71exA6+Ou|B%FWqZB1zcUXDv@NDE#EINi)<zBx7BLTqdNGiC_wu-l6VYNmL zVD)!|@t>FV<N?3(h>2Bi0V8Kzrhf!khNUd8jgvEM7jl&_gi?ctXjA*GvI?shiS`78 zjg2UV-K(G*pp{~B3bOe$8CKQ-waFb328(RB=qlih>!4EH-cn3-8sSP)AQx_OZ0D77 zDjZ=Qt_*D(EGyrNTzOY%x8)tRfHJ@vw;|UcJ$e}U$$DT+d!E^(Tv_%ppaXhK9iEkJ z1Tmt6H|>ptdmCqpS7~acBo)vYo(z4;Y*J}qI_^|($5SLQIiVB<WQo?N7ge06AdZwW znZ-w+5b1xDUvnF^Br+xVYB|W?blQ%kA`LvD2|a+j$uH1`-cT{=Q<bXpY>x=^uSRh_ zTsvr0xuK*e>QaR`I@-7D<<;x=Z(iC)cX<lFJN`OGN)_MTNE(!_XLK5B`gc294#_i( zOdssdy-`gb?H`>UKY#wzaavY-8a$AQ8sDDZy05cllfH2K>CAFH(n9|JkFS3C^GlYZ zqTX7!d0{hz`$r(97%b)55j>5YE+0aKC9kWLp4mLlS$>@I#i>Xd>9XrhKus#Yk!rDW z=)D!CKCnAknY8@`babhY!h*cG1_U1lU4$XN$Qfd;R6P)4X?3lmXj}tQoIIBp7jf%A zULQQYZ$Eu);>6qD1HN);iHvo$D4Lu?g#WxviXco{FDsMP&56z9W=*>{llC<|xP<OA zH@ZErHe@MG0mKf!=^F5vTsA1JOdoPA+FzqFkynzSt<T;#s4Rq)WrOkxn7VNDYO14E zwS%a-X?Q$ADjf9a{F<iT+X5z3N?)_0Q0<p8372*W{RqXh7)VKU1=_z-qTPmkt0}%P zlU+JLnNE^)Sfk4m0am}I+$*yb7^&a5dwqG~dxm8<1r7<;Zx%DFQkRV$q7D;=9co(I zg4{Q^Hl<&yBSAGXd(_Ir?qL~}$^rQ>2G2`_7#5cwFModX=Jm@rcURX>?hmZN*UDfw z*ak+3^0&Ht41|+$W;s+nBRHs6mQLA-fBf{&W+1?Eqt<}g;}32_bg{Nkr|$2ST_){r z@7<gCzyHl&e)!YN%l8)z=;>13d~hkr%%K_*Qw6c;<<H!W##Kkw#!;J&OS48xsYkS; z#nj(FCdVteM4t@bR^<}z<V@9vU371>y8eku1hinpM~@;hOH2O<QyGrbuDr$JmH-R! zo(MI{o9naCXuF;Xj{oq_)NEvPLVJf_;06d!E;Ls0P-bX8fdB1d=v>-CK52P~G4KYf zh0g?lydo%&T;bxAClY%ZdB{hOE1Cj=39oQcq<p=t9GQWtm4&_lC7u|iE&BH9Wn6^a z`g_@WFF}vQ`bBt<|J2kgM&GnUMh)JmvV5zuJlp5lUg}U6B#!=GF|E#5XN(iXQMqY3 z8^>|HL*O(#)4Iv5py|ps*$PzKzBg;37o36F=E>Dme$ZR&1)RtwrYbKLM^a^@dPZ7C z;H1aX7I24;%cd33Al0Hmb<Q;88aYvdIq+PNIW9H6Zf9coNJI261N3<3*s+dEVmJzp z>YxGZ*wi`i=EH}pE7O1<F0Ys|<R6q=eCY6VTGK)VOGh0#TZ?<R12)lu_5Q)(SKoYj zc<Nf(1g&8-%ct(IG-8kTPPN6IIEkc+lVaW6wz>Daw`Z@e)U?zbo*Dya34ZH1GGq?Q zK#YbP(yi&~WEe*vDs=ox8kA)b-ypk}nl9~uLQI-1H79Pyd`aZct%MmvrofQG=)doL zSC1otmq*NDBbhB?HCi}wluizuWJVgO`Vn15IMq`jJTewJA~zkyi8V!-^u>o?Xs`4G z7NFF21ZyG1W2xmzl_2|0;a5Q<{!AI7OwJGZtA=cZVLqh@p{-lux4yzTjHDa1r{N%> za?GH<alzCFg#Hb<sQXt{Q8n9wHbvRI%h{(C%TuC<Xe;t$Dl#H%lW);fR<UK=x`ir` z0kV>j?v>K0Cp(Rp{&Z?0KYdhH_;&9eOFm#d7ak9}u9qoGxS1nS>eYl>Dk_5Hg4U-O zKI^&2JT-HS<{34#NRcS<nV<2mMsXI6{-HHfg0y5|My{t@IC`s<?s_iWVUwfk%{|9_ zgxk!iIvnbx<5+Xx<sWm?Y}MGs#nrpFXGn2-bH!k&&;w4~^^=u%XfK6Q$gO27@u86< z2c_GeV5Iuw+41u)P7jaF9=q-6gPR8TwaY)ah|G#VEtA$rnj(Jp>iReT@`oS4e|7c# zx-lWENR%pk?z)7#jSHH%)>q5Sr~;CaIc@Cf)kUiipLZ{rQM4GIh7o$iXaJYaY-CJI zkvU`=bCAVRYj~F`PYJSurAo<7kB`>s*5^|QOP8TCAmJ<DpbZ-e2WLn+%`x;EX-ST` zVr`Nv1(Q5XLD>2SZM};>b!p5Q&mM7N>N>Jf)NxCQ!a=`DzKP{X<^-(7bVS^^TrsC~ zgGnu!Z7C)~S=7KG_d{l(EY{$;avN(B6#`PJ#v6<Ue0i>@0%f<2viwT2-lmw_qBTs> zJ6EcC4kiH0s9+_q<E&X$HI8`fN1!NUZ4=pxWg4@C5m@oYsK$-0??^$M03$zHh@9@k zm_=>?F;20ojpA&a^t(Zqa;Zkgg`?cZ>KNA%p|fD7dbc(=ov)P{m+XwtI6z{fQ*2Qf zD2s{N{R6YDL{h2HcB-Vx429dvo1^`Gx0R^>Rc}<*FzxNlwb>n#4~}hn`mAGu@X38- z4Ug`eU%!3v_T`T+)jkcP7!GxccBZRJ38pBPa?J|HW?N_7q$Y<@gmUoe>2s$(0#|h@ z@_wkbTu{?N(^>_nvuoJ?^3rCb+duv82MeTBwr*Q)GO2m=CcB)(V=TJSYr`Rolk+Lr zktJ}MB}~Gw2OX%qu`LX}H=7?@=H$0_F}2X5QamuoyI576${B&B-Uto*ktnD<hu@$H zDmq3`h{+(HrXy94%19K3r|6N!hu%2gCwZ1f3sccB1LBZdq8l1eAK3t~L|dO;M>Zay z75djs3YDN_5>2+11EJBXg*P$^#<=F{64A|<m(gyY+9jT&oSCk%Q%Nk(U{add?!_yk zM$S`WRbG&iPKBSy@Spe_GH#@r<dCoj;V;p~t;mB?5(4@{FV-nQh4N4eImw_#o|GD@ z?zi#Mjg#k>?@!zTi<4O4Je%WVi+)r{iGiDA?KNlSO`L{c_|%-Ph>aD-v@I%rDQHyl zzmb}B6$ArRajH{u+}ZhozBq){VQGpqy3h!%Nl~CR5kt;c6B`UY3%g7-BCZd+f_HWu zt@Fr%FHd%_<-fD@?!wU%&8#qwE*vvoYsMBFP~56#E2-1gZ+AXO;>@Qn53OR_J$R-* zv^kfm9k}i8AZA_B5SxI{-(B3jz1?|xYk@L7_1`^8$N~{PMo6fr>&-G8wl3rNhuhtw zPR6V^{>0|qXO}luhtCd9zdEIxRNID#_MNCF>CoL(n~Njf-ud~Pvv+5I`1bYrt84dz zs<Jz-Jz?8biMi{5SRgDZxqoyugs4`GT_jOAL|E%U{8joCD?KAwvlV}=7;U6bLE${q zjoKxt+eSTj_r(C@mW%>t?EALK2HStJ2QM`Br#{qil9`OcLOaB1%+;S6i&1jO!o;v* z8G4^uV#3z`*hW)uJ0F-q$qO|LW}=!E=7Af@@Z`deBTB@hrbpo<lxY(;WV|R@*pHKM zL+PxBQ(bBwj`&r2Af-mRiiQ<LCE076$k>>wq2z!=sR0(Alet`y0eP@O$Zj~OyeChQ zfc7PMGTPS~c10O>pLdp#Tfozbab=WZa%JZ;{J@|tK`u9xjX#+mC<yC}p}M0|jv7|^ z=&H5*1Z_nz>UwiWbupcQ8+|q3DR)OJb>i8`2^ul9><!Rp2|?(?A|eesGA~#8tM8^^ zjF2c=ArgyW5==8;B(|cn!~{$B!qWUW8lQ(A!Od9IV7Je(VHp{kM3jZu8Ew?yAT3NJ z*?D}tw}0+(Fr!j?yN&Z&1>w?KbV8uEk&9O2G)Ykinq$iM(WA51=QnRJYaziOUuD;> zMp%|zPwXdu&Y`*e&|TdXh1#Z9nio%>pMLfAQ#WxIYS*l-`#W~K+ii$MSv2gryuSW$ z`QiP$o8SM-A7A|C<;9scxw?8tRb3Y^IjSB*hp<__+;BZfgM8&pX`=%)y(Fe=WrLnv z{J{Bo%n?&GsLDR^nwZgYqal7v!Cy|*OiDBCOJ1-GfkL4e<HVh+Ca@V4R7%IgGHX4e zyZ|o9`4=3vqiGc+zJ7*DA0e<oiGUTEfDPo54~FZ7zsSSz%EGf}X{tC7S}_uwiM<pt zz-g(nSq?zjXJ<u9A&(_lD|%_jG#g4@y)<K&rCBP6H&t)hKrJ$?lAhK;VA}$R7?5!B zgv3IRr#KaGk)llg9XE0|Rt&%>UTq6XYFstjY8e$yA(=a~8)`qSvEK}<+^nPgY+9#0 z=+Cxe-OQwFK>4W3V3yt@UJPrhV<xhIS3Iaiiui)15jYZ8gjEc2CT$VrDRlhf6FOyh zlt{|OrwP>{3ji>XUgb}D!bd9eu$GUg(N^}g4{3~+13!aeV><K<E<fDt-+g>){S;G_ z!o|gH?keQk`#-&W;aY0LblR>~r6}}RWThA`WLQwGWZ2Rg$B3MbR0fOA_x4ZevgMOU z`zMw@hp~Ast1=KIOl>y4xpJ`i*~gbZy!-aIzq>elhkz|A9NyQ+i&Dw=GSrK=m3iv~ zC3`@RDC9jKEBupZxkXY@;pk2DBzK(1>zA?S_jy|WaL~Bp$skQf3SE_OqnRR9Xprg) zh}}(MlHlpc>Jq8g%CpGhyvS38EPJU1W-LAn9R?4;@EJK0T|{{YG}2Fqa`~M1|L-HE z9XB~<nPE6~B8$SPmGL%f5o2e@4l>K&l{mdfG5VX&3S8VlxUk9oL23Dnr#uUQc6ts< zLf^j!w<7$TPoC&7K|?OVzB2`6Ec}E;3X>pd+Tz3<nC6qlTJxtHXFTWe@je9fR-D#g z>;*&vi9ks#=F&RvXy7RY9}*olWw$NfD%{|p7{0<{m5R=<wQSQ-T%J<KXZA3JVJ%4> zs48pn6=-#TLX_)Bo$0pK>Pj&vb+*+@fF9jj1^HgAyIyRlF%<NxCTNTtX<keoF=HwL zP2WWLp3+*FWr38Tp~jsdJlq_MTDDcdWzM)MQ-kUdbGu(VY#TIc8J00Umz*5zA3Dax zNRlxo>o8^u$D?bfLVoyv+q#z~yK>~P<9ybGub!TV6|xpucqOm={Xc>oUN}Obu@o^g zn&}yJw@7xA#j0CXx5%P@|HQeM9LZ?*DO@0tNF*{7iO0dYd-KDG?|%2g#ZNzHt2r3@ ze;g2)>pcJ0Pn!odmDZi4jUc2!f2|S=V5BiA9qK}uhVcJq{~SkP7{mb#hS5*fZgpJ6 zCXBL)E#P_sk;{98B97D@0MrOZf6lW+buJv93uZ;cM^&a3)2CB5b1>pkL39E}%fc4? zP%vm&sv}~_>Q!<`Ssa_p3O0~5$5^(gkpk0(qbLJlgiH~JXzA517cSEZ;ym1osK^JI z{!MJUzUJnsdoJq(Dw-R9vn)X#!pfRwr55!f@{jRj`bt?@k&{tsd4HuSG1aAC97ZVO z@@Xe>yBCT=o<Dzf>k_E*lNYBaJ`!X#$jxMS9Pe)_*+-D{LbWcDAoz8=ug-A-r~j7O zE;<dEc0|v#XpHBytEA!JaA*D6Qv3-O4r)-su-TQ7K>Cx{%BF|ESx`Ha>8Dom?KEZV zOT4J(Iu}9ld=m`$cB_4F_hx@f@Eu)j1<KZsZmQEZ8sur^<&`fD+!#UZ9+|9lcCj~r zHG0;UhLiEnO4p~4Mpi3bB;S{E9Xz%*_43uTUwreNZ@%B{t#T2d*5<UTo0-jSeb@Ky z_Im&QAAkDY|NZmr_3fz@_oYpFgJDnfhon)#m>^NdNlfyRJ>+C=^lS6#7+&J$Pc|m? zZyd&^J&emRUSi21S43d~h*1=!K3j{%0fujEYd9Ntkz~e@36qN)*}+#uqgg}w1T_hf zQcWczJ#TWlyY$-9b5e%r1scUe9??3e9GEC^UX77$epTa-$~#R)JASp$I_*lED;1nE zN7GXg)oCV}$vxCJKlA<*w5X?_OhW@vM4B7UF*svK^0?ZUHy!qB-Kb4m58jFlwHv@{ zq4?kd*%w?70YF(3RzW`(_LW#8<>Op!5}MT@Hs`QQ&T@zy;2V3KOO)Q8ocMB_L%$Cn z``pHhXOF!%V`lHL`L*u|-F>=o?wsm)XTTkazO0uMn1!4j2;!&`DUAqIWfC>5t8LQ^ zPlB)}Lh%Q6@wBESgoe(H<0t0=6Op#cFh8D=2LF5UuEW3>F+0cE>RG|+r9(Z_qF<d0 zPt|_<{QT_v>Z1>fIqH9Mx4ZM{y_bRyXSzaph6q=vSP)bHi8s}->)}I6dwIEY>d9+B z8Hv0p^Jl!nqDBlbI>EIX$k337zTIP|rp*!w%_x5JH@|#-?j;~3_l3UR#%o7fc9$4f z8TPioo7eAt{L|aF-@k9cyf?FYTgZB^XWX2y;_C@@{kL`bn(yIPz(|re#WN;fhn48L zW?!<zm8v&p#E56w1x3yLQZ-08Ju0H*3`(oSHA#vxQ^MMq|M&{y4URLtC;_uViamYj zXEjflx|T%N?f%VZKiWJJ3<}x}eo8SUOYmjsU=3cV;sC6Ad*-h*fhr46<3%E~2)2)% zpJ~3bN<uIy-df>Q^kq<GjtJb0v19OJmg=Efi8Gy5CW)SmQCbz@1HD*;#k~PhD<(`8 z<&=I1D={nw#;;sFz~7-f8QY5G>@2T{pZwIB9D3WD%9x2%+8XnTBSq&=9{cXb>Dj$k z+IAMPSTBvYwgOfI)}*e632s%?wfaLGqA!%xE2XGhVv40<+GF$^NLk|9yxd$|FmAQv zrG4O2RdjRGl}~xiy=??%X!uNik0v9mb*YbysTK)OJ8`f{;b$+STU_hl;mK27WYFvO zf8WUCEvOGg@ug}qqt>P#J$iq!ySTWx^MVlv#L6D|b|YM})wm2aK|v{D;cxV=Q0-y_ zxdBb{AASDz*S~aihH!TFtSRy1yPMmqsGU<NSb4R(``vH<)t>F={X<_hF#u~;;ybH- zYFZ(_#XQ_osfvnYS2AoqJg#0UG_t-GSrV{1J8+buH(n9ghEZWvfM^D`e|~2;MXF%{ zRUBYVP1MAd?U+d4KmwJ$9qfZI0#e`wi9lko;&Dtz>zFlH4x3+<l?=wuupi_-Pp;07 z5GV$F^+4cZUr$_Sj^cD$^D=R#P2lNY1+gk6Quib#`@=mHs#?R)Iwb2k857c!rJ7B` z22YF)Tl9_*h~mW~REB=S2xbK~Oj{~C2Qh9;3pY+mi=4q+ywyI)x3X0?S*ymitguER z1O2ow+PbF(aRjrp1i>)|SCQR6b`I&3W7NHy?9txqF`usU4?27^Yq5`g(0OZ&j#-th z;WuiAxQOsSelye)*_t$eBt*ir349%vdp1hjc$o=JYT2u=%1*yzEVv@1jVidYY2dO5 zAma%}TOg@+U&Feyn|fni{L{x5=jR;O-EL=N#xh$|<S1?Zd4_Fq>ihWW>iYVMH+_5V zYL{-)Gd)E?<}Ta?TGS9HhG^rz!H5Ywd30iNsjZ+_=fC*om8~8I#2b9BW^SRL(9I;% zYS-@S)9-)x{kwm^BuAFg#=6GL7@`5>?GUu33a46Z(=JF_^H*lz7faVu?l>D|RBAY% z*;k%H>BPpQZkZA9x3ZI3?IP>B(p5M=qehB;^vwmFFN|s?JmkGo04;d{JJPdA@N<=2 z2-D$Ul#_0nIh2kDtg`9{xq!E4Rp5N}pft2VlMIiUvuQ#pg^COU6)CV9rY_8viDS0y zHG`LcXz=Mi^RTGMkhRo4`|vfSrOhECBebTt#|94H^p5gt1X5jQZRYUe${h_^8+yzB z4uugqc)(OS#-eX}Vc0S}oG!294q@m-s3EI0VHfiDg#}-#GRvYg_An?gRW*C1z4lME z_pUXX-XLYSxLl8UhCJ3sb~xI(m~U;acd~P+;+NJ;&oYN3R|*E}S2Um)clvtmirXAz zPg4Ab>@kqF#9q^5i(<Xta@W<TMoSg-c43nTo~8ys*c>(mHitFPo>C#}KhvWvx1quo zHL{a4fzVL+C*B;kgJ;bgk(}IakU*iHcBX1~bJI50z5|SpZ@s(l3V|y4000|%Nkl<Z z(SR6j092FRwp1V`Q;kkwc_O{F^Wgs4g&3#jr%zwJ@UepWMk&sVcbH+ocPzc$*>ZmH z<6qwI-rv7_`_^pu`T4m+*Xe{eO00ynG0PdqZC;eCEe#WfeT02fIjUBO=dCN1oG{k6 zsfV8e7!U0xISrcA7VwQCY8`LcF8Zpgna(QW9zI(j(<d#O)fP2)8*yGnhW`-sx3Z0T z#(`1YnQz1#3|`|#>MBHM1AFM&5?@V7Qx`y_A}<nkE3Jx&c!<hn_d_zFMkwCICFuaE z5NeNjs&~v%YMhPeDKSlNcH>Yw)uq5hC{k^xLumV8(UAH@MI%7D%T9>J%#>-U40dKt zoBBm<4IEzhap(dm!a&zjYzZ=%$_F~qyuh{^2OeuR%e2(~d7Y=%3bSoJa6@75&G-V& zwPU|epPjsV`SOALdzI_7UE`peO6?{ZiuTS+bg_AZUUW<!kRD;EZG>FiA8FI!WsE4- z7&r|?T~l#ql}pF_ha9*lJVvWDi@+xFh(x#xW1p(a%G9t1%wVKI6(>4CNT&&MdqFb- z!0D9H+$O~xS!aS+1PKr9o}Pa`MdZ-ec&Q7$?(1{9yUVNV-HvPP%~vaLZE#g1Pt2ZB zwlGJa22%UDD6lJi7p%9Ayxz<Fbu6ijmOJWcG1i`la96w`_@_Vq`1bXM*ZM5$k)e7} zV=^Kq8Zr~$+sxA8CWFDSNrOMb2I3ZG^b{ITrp5tHB@d>0xTKj}sxR;~L8X;j+8!5D z`JUss(bZKc4o$(3PuD@+jR-nZN>5#a&iOf{B+@uMG(;Y1VfL)LLVYcFu=QK6AOeQP zWNayIl`YvF`<S9e?_V{uvaN5xR!Bt$32c7$<G_6>i$#fOgWFU}*m|*KRTTUpqiTj! z$XWU&w{lBeO0GfvC8?_+Qa5TBhJ`BYIWdIKTFQnt<8%nqCTxjCtCXiq^w(WtrOw~5 zv^A;T&N&)L$p?WmQn`vrd4`tIxE$%}v-1{#_Ma~2%K%SLPv`_lxeEJpcHXTeHbfnM z!ja~wn4+fD$OffilaLFVL#t$+qQ4VvFRB^G4N38be&&O-quHS;)o`jmnL)oZ5*fj< zg$qe7GA=cswS+Yew(&jJWlY-CRY8d~-1_jXI~sSlh^43}?F;&B2lTBRdOg9buy22O zb9ZIbZKwU|87WSl)IaS|Pqatq^j#wet?p7*2HU+{E;@hZO+ZC-M&q02(1;}2F~C-( zuRiR)`_~^X-tb|pR=3ayIHVdzOl*yrO^=Y)DIK7~!zTFZ29pirp=gd2>;~C_aFQrD zNt>{=x@daD*g5>1@+5H0@nYY|)2NfqiG%^r+`6gp3S&r5|H56xqjBa>8@!~p<XoIG z!Wb)t&aIQ;R%B1Xicch5B&9B%7A@?2c)x6?8D2CJISW;cl*aBH!s5e76(rHWBrHMK zr2a(22JSEYoS&YxavB#%z>x=Fq;~R3XIi3JpqRsz@wyq<N}x>6szm8S?US@JD!D<y zFjj0+i>Yqo<c49Ra}t$;ud=mk<BzRzB2>RiO|U+@Z|Rm!h<iEv;_C9%i)X)h`pUw@ z?&9YC&lj(zGi{EV;$45ZIk`XK5_<=nnt!~tbes#SnkIPDVJJv(zalG|YC?jTH`R7T z%u}QBl)a!H8~k+qoDZmN0G0*F=B2GUFl)G5@YZo8i6_6_VS>+@=a!~=7q`#7a!;LT zJM>@+Uf!WKQ@^~v-T64B{-Dlv5%QFxQaJVTW`Fhef>LUv*8z-5xMeKXPTj4xDy#RM z(qbI2SXbsgXrfcqoNE`IKl3$R_f|<tJX=<nb-zdZkDu+^x@q<L^19Ul3P;`_SOq*I zZTPbm<gsP3akx6os}(hNJ%<L-l)GW34&6ja+gH47|MCJA1TzDZSoDT!fvw1j<Fmk6 zRQu+PAM-=PXw)d}O_Somc;Ebt)+@uS<mkr8SR_qSRjz{2t+=1U`njHnlC`BA;$S4< zGv|6XE+9N;K-xnv3?QLGxw68v&!=;~=<^XR^7zRMj0-8UvIu-;9z88wOuFYJ0T7P% zXf$>pr+7t%^I5uLVJtFX0Rx=YEKFNx$yau0Ug=wr)$fx0E`#_qX86JDK%Bc-PUu(@ zPN0NV9ZhxYrR+cLuWpGJUA*1x&DXBpy}x?DyTASX=sbtjm~nG`X(9FLgOAs44R=1s z2SE;g8d9L!Xc@v+lSsOb7NTW3bLjw<l$sHlPM121CtP|+rk5HfJ95~JB{1reil)l7 zR-BUD-#0}>9s-gkmL;$Bfj8^vhfUlhN4vpT7P`3dx{ue{&&G@?fi={+c_j#w+Xqja z0ll47Is-~>vD#DIY@j%u$9So-_$peUo|b-|I^=lnoJwv&C#aHcLrAixw0HTg?tgmw z!FPbn5;U}_eXS2wp6g7rYhGJT3N{st4`ZC_p#yJ4>iUknC5SP6Yznno?36fj<zD*b zW?0@Pep5s22fk2gNch{mw-L<HFhvG^b;nx)HsKHtQe2TdAWh@8bWFMTG<hCer!d!Y z%m)yg;`$IMYvK71&mmx{SUdClALG24j%nLe=BHYd-mglIg;8}$@mCj2?xNjuT)ipr zg?`dI<HSJX-l2VQa?--JO(Sat_b1b^vX+q&pN5pE7(<Y!?O$wNSsSJWIo+tIOFVM& zKeIy0N?Z|6%+a!78{9;Hh>WZ4-@+(HR$iXJz~$RZLxP2r`=38tU4FPed;X&17Pkhp zC!`Hh-(_E&x2Ye&-F9&e7~A)e76lujLr8TfMncoQ<Ysk({q!=X!MuTr5aqF*$aDsn z1Yi__)sg&1T}f}p8;cS7Ny1~7AEySi#Ud3vUTUqWK~l#oR#j64-S+Xpn;&2QeDSw` zbN9<fu8hI#bTGwZMBD_m-`(8puDydBe(mkML_P*K8k;a|9Xw6Q*DwkdcW3g+iSJXt z`sUnfrK;<&-nL;GLDVERarfcwyFdKf#l`!(+nbY4bXy%TY3bvAitrkcfsM3k^k-Yw zQ6)+sikI`8F31uhUBO5lk0E9jV$S+Atfjq1_I#F6_$_w;0<DCw{^l3who`-VtQvR- zaHO;PiSp`A$HPdtEv}>}<pDfeT|X|`CT+t|J)7tU8Rv%Dg?{OOXVwHXw1%Yj>rIf- zR&hmQorWJ?EDK)VgzTVSacjJ()vg9EgL9bVs;)j|tum<OY({p39kete*-eWcS<a0W zi}HafF)D<X`~cS~kz-Je__B{n%U0IHCSGK^6sE8p7%`2QCP2~jFUq?hh3t>^rne~5 zE(dU}`0jVtWIO47`1$QmKl|Fnx8HX1@%+)*=hGL|7^fVUZ(VeMbEFTi;~@Og&DD{6 z*f7$wH4yu#w=_(WmQpq_bHp%?jZR_(${KqYl{2{2pF99V0C)^&Wy!kVaDor)D3hJI zy0l>`U?B{_8f`J6>a3lC&{8vkHrYQteEs8(Z(jej-~S!|+9*Np9Lvy)H`mvfKV95h zT#2}*Ss$ByTCB3nXi=|@?VmuY=A!3x?DpxCZcA77+1cs&v$Gd3&oTAb+0uu=#*n+4 zyZ1j|{>wlA;r+XJboKP%*<_)~gq#jLy)hlRG;><CFn=XWk&rwfLF-U+up`I<yx_4^ zgm>2hwT-=w8?d=!?qW-0@(Q?(doiw{{(5Bn7*rcn?eo9q^j&>5{hhIJD8-tW+e8MB zKF>S|vv#$j*}Q{Xid54<M#V#1*lg3v9a~hMR%HSQX0kHYp~xyi(*`>cYoQp&Fk!@Q z&<@t>&A6{tiNH7(ER?_&<Z=lPEhupj0BDGv(zR(QiG%`@Db`Z;5lfvovO2i~5e;9< zr$j_A$`;hb<G{*V&(=N%(_&OG)m(j+3|o$J8w%<7c040zh1Vfoo%hK1&-OmbY`3cw zUXUke&z@Z0*=#X+<m5ej_8dF<d^tgCk0#d8B^NUB&!EprWQS87LS!i`>0ljIKVr!1 zs5IM7D>O|vC}3E`;$E%7n#3zkZT!`aeo1OA+W#p~YbUhPSO>jiwT!{&#U@=VONWw( zS(nz+-aC7A^Wo~}H>^_oZ5HSpNc3XggFC9Y|FF9<FrmPgzf`xsxpF4k%@;bP(~jBr z5pIOnl)0tRl%p@xn|AQ-y?WHn@JtYOE{PqIlN5)NKVH7Oe*Nb+A8)RWPc4n}P#mU{ zr)4uh;03|5=BGKVPn<nSIfmDNv^5c*r5#DQk^-xxFx;KdDlXw7r40jCC;uZu11ME< z^jg1?xk3d1Q-cs!E+GR~CrkhfUi9#cNFa9R>X~f-O5)O@dL&~}*cOMv4*_F3sf+6A zS3=;gA$$#B(^}*Vl@7F|qfzC5{W^9j3@C0~z>bwwg35FjQn^QvQh<tp$(BvE(*zP2 zwx#EZ;MORKo7HIR(Pu0D7wemOO~D~etR-K_4@~p7@k3Z(tAXn&tBi=>!WJL02kV#G zHwZo58eM%by#$H_nid#2jSQT)YVuZ-Gx7ep*~ppN=dOV%-wner^@2N8&R)GxJ>|4& zip3onwQ)+hTyCl#PEUFp=f>(vCm|>e{lx&nV6*hrd*@RNQN=x)*=t1|`Y{nrY^g0A zCX>0X^;W7Yv<>U32omt%<IbChW?@EZ)W+~OZ)~wT(FLs%^;Q>hV4uab*1zZiJM3mf z@A|r7QDd2j&)4^tKYe)f??3<j-~Gx(z|{8Y!_A9_wtsJ4|NPEblO2+7Kc7E-a{l;y ze|Onyv?&LpV)xQSkx`&gdn?3V;nV02JDomw^6Js6-#q{J)widQpAipp4ew_t;EVNV zXJ_wsD!ICNf4$#*^tzA*GPg{*BiT_iLxiIs7*l&kb6lIDUo|sBkt_@^)Y4=>#?{Hw z<s=NCzKtgs4{+oQvwJzqyN!K?MMYhes^=@VRI-tbjZL0J;$(y*C!Vm3Ds)6@ojXwq zmpf&al{m;>N;EG6;Ir;a8)@&Dh@lDSNHP*f^VJyHL=rJkLnAT_s|}qmFT~y8tA!^x zg{DAyLN-!nBrpmI9yfAXG;K5YYeapRqoFX=iF}I(8ihc-^Si=Xk}6gYo=3r~HJGGW zE-|fOe({owN68#9>ZP)VfSTgJp%v3xI-=RytOG-y+Lx&Te&g^~qq?f5Aae!U0eo7& zB~5M&_8**R(C4t>N_d>Pa5C2i8+GlN{B8zz;(&Y;`WngMxphU$H@Jfbcl-V2?#k$T ze*WBe;uXIJJPI}!Bc}PxE+vk$cn4&*gYnqRYMNR<w!+U+6c$Iz5@G^XtU(;o-tOg@ znmT>@=(x01R&p=S*WG_|^1pFdIfGR!_bPk#kh50924TYA31+SUmNtG0BvB0!VgK>< zcmMXocR$|$_y6WBqOMYWe|O`Jb5_YUP^>;_aBK`=%{kH3)(P!F6gx*YAiv4tQezvt zXxZOj^2tjtQ=NYE;+5;+`-;qL6FJ#|JBaxC-G_hr$A7y0usioLK%V)YaD8q~&lDi} ztH0HvucsMF2@k?x$q|_`RijCPb$M@h@Q_k~xH^(CgNyNG+(v$JY$XZ}p0Lfxos1?A zD{JIrI5}MqHdU{9HV+i5C(+;HQGlM2LfH_NHCP&I31Bx-bK@H6;K`0S!wICY$!7f? z%`4Fpk_l4*i@lmY*^8Jk&41Dk<S7xvdQN0RxMeJ~ffSZZCSjvgleW17;>!tVn6)5b z8QoK3meQ(Q_k=7aC=Pt%Px2SOzY1zsXz<rAdEp<IW+krYN?#=x!AG)>Wp!zFZ7QvG zjqL<uu4fn<@4PshDm9nJH7dq|`#va6=A5rTIejMm^z^(*FjMcpk9Y3b_ktR(;RTfB z-dE<YZ$Hv`a&Ii+;_^HCvc2pyFw+K91Z8WWh$<)>X>01h083t`&E{tJ=8JGXKYww< zf}C{s0@IQSHz&uA96_E#^X-#QE?vZQ#-rXGj)kZ7lEuCmz(dY5eEf8MaryeYAKtyW z`1RkuGM=2BKK<+r*5gMvyKCnzKHcmaeR4}^DnkR6AIWjEqoFV&MdtsE(4&Xv&rV-H z$1WGNwkyJ@aWr^3t-RYlzJ2ia`=4I_<+aP&9sXe0e64^#=iC{&IN+?e)V#XCwoDeT z1Bm$tQBa|jsvnE)DQ{W2B@i-K1Oz1XH}ElFTUN;YAD4tW@}P=h!qheWbr4*MN4Z=` zwr6W^#@l3Mb#cF2Ok#N(IXcU3;0mh{;zgU{D@?PBPNkcg4%oCTkvX=fk#ixEHgx0T zN(f3=NT#ZqqPCUpDKUVBby%3=Jj3-7=08NjGmvX8vWl;oHfpCaq1l-Bg@7X^N1Rf= z21EEUYenRWOu_m_d{Q=#VmU~2ptPaJ-0q>JRNxrjvvpKgrF^=0|K4!t=u|_#&S1`Y z!+Z%Y3h#4HZs;0)c6$17fBKY@(TR>Ku9?KkR$9mCn6rq<2KR@MB`K`~i|45yNbG>` z!+Wyt#dZgU9sjtxzI^`d+10I8F(pQFrbZ64A7n}G9D3_I-NsQTg;}EMJ9pgcxkfCB zhGq-Mb-FV-`};S4{{Hv>{QKuG{^8N-!@E4+j~~p=uWoKHciz7rH{G`?(c4G0(#sK! z8Wu0qF#W_dm2Lw6@L7ve&*^O*%3Zez(E3Ey<ioM=>(9G)x3-|zmz&GmCk>@-#0Bc! z8i&+ka5GGig&f|c2J!u1$fXF4|G<_ePtW+l@E*&q$Pv$xy(?us;W?rOAV?`|?16}| z0ARz@BfuDeB~L)gqD+Ip+8XDiKEQRQI?GaUR=dNfWR`S<ZE<j_2!#|btRfXHNSO*n z8WI!REwQXYkOC~=siL?@c_0tsv=RfG8mDYk6q(h7g(M$(3#*&AAD}8b5~ZV!3kH@M zj!Iu;*Yj)252cPQ8XWTg{B`asyRwh*iHv%GDHp2xeJHW{_n5P0xbziRcN}5=i6eW4 z%STVVTi*Sq^M<Xjt?NH`Adw&aV7TifVmqC-OKu*RAwK1D-@bYC=InuaRHK8{B9<)u znz~2sV%5|e*Q9u63+jY`D3(GAWKOD^Ty6~emzNjMpTE4kx^zU@{1ey|qN{_qBc;a6 zK32q<F!HT0WFARm>!+R2stCWi0!#NKp71R$Z{Ggp?c@LP^wl@7_V+stz5DoX@77hv zq&iAqVumcVIgFSy)vPLkZFSmE?=Qo#h@hve#_8D;M?nqUE?jo-k5PNz8+r`ce#dBi zczb>Q{_er;=d;JBrkl^)`O`+wWB0r=pUo#n()Ew-5f)}+K7Pj1O@Qh@0smI0QNz>G z+m3LSGBUi1<Q2_Us@~9?EkEA}TVf{QftNc%4>`Eht3Lxjm2Ne!QY$&x+DL7YkwscU zPjf5CsvsOb_QaAsnTUB+Vp_YYS%}C>?fIg#(!vZw<RN6K?P_PmF@%gnX=8kULzl0% z1u(Vst6GAdZ~!?}*Qi$C*52uI0Ht{PIi5~;XQO8zfk8FNlemq=VTFDbT=B0{^4+!o zWVO8lVv)L0dH_-Lc-OUSHEnXDVH*0x%Q3IM`Sw@;<u?S8+&eK_p3!M2ut?hl!@Xe8 zx%1PfC%3$4>pECKjm@FlCw}^b+<*J4U+tW>y?^-n&p&ui&9v8Y0$<Ps5m;w4j3gr~ z=D@m_%+;snb<6v26M^XVo*mOnZ!K*TtgEZ5XXh`ju0C+ouWzqw@o*n33`D?_!rpzp zZPQuVIEfWYS4{+6F%gdv`}DAhv7e@_E{VDR>ET~~_uY4Y_{-lvf3knLJALwLx4+%r z>>avrUysAd4d<p38qterzSkZLSrx>M$*G$R5$*-y5!wNI`Hb~rYMf~4=##Gw-0z?G z((BF5hl_W+|NTFI`+xq|KYqBlctQ#sRcStjPqE!ge=Ho&A<5yF&)JF8k|jD!+85;- zj{f3vFO0H&Zt(5<erjD|T&fMsp9zYLc=Th5my}6dLK9o0uTZ>=&hdhVV=3hDRu$4) zs5l7s78$S_aKMA-xHidQ)??KNi64iuB}{>y69A0D9e(~b*$~NyfCC!8($CEDpc>2o z7R-j_@Mo(I%q(q=vl6QGQy`J)W0F`@E2o=RsR8(csCrX#+^*gw%%zOM4S0f-L-8+U zuM}AVsN?ehDFsy{!_)f!7N10x;PpCNJ1YA-Gs#o0+PaMClec`*2U4Klygxt^ySaw1 z=pFM3mT@KW1N|o9Ytw@CJSDRoFl<#sqqU)CSZrvZsz&`dN{N8lQ<2&783T%2WFqZu zxzAM+c4(fSIoJT_?d>(M7leU0Hf!0~ZFuUn<f9u@jf_otEseJaRZp00lQGi9KwI`s zS7v4V#nV&1_|LE3|I2TG|LVW~^6ZyS=p{$)=4uBc#ipEOBP1<y`Z>cz&A`!)@9^Xq zA18HvE(i%U)>X-7+IZSRn%Vfr&!?v^jhF5mxcu<;`#=5o=EtAfE;oohee8-1y?pk> zs~hbtyKjoWQTNPzT$z@%){@duS5;$7R;)$wgbQ_kY7v@;!JB%-+(J{qBx5vriOAx7 ze4Da>#E)Smt|G_8BaHO2gh-86Q7Q4?-;CPuY)W>bZH8+l=3mTYo(v`OSC<_zPYF#M zc{Li>DDV-#g_>7`gREwejdF=;dv$C|0_~PJcx4?E0;?LO$z<uHddpbIL>B`yB9!$9 z5O_8FGuWyY!eQ*p1jD1$u@;dP7Wnb`H4WlmR@O0cgq-4a^r49=6sAoTa?oPGf8rha z`6y<u+a-(h2}4_xd^<*c#>pvG!CKWtN{pLAw65=FP>v5i|KXf1hq-w|0?iuqQg6KX zur8O9)64L4g_{ty=*(r6vXpS$I}u%R%P`*_CZ*j-YSGo{u2dSxki;}(J=hnQg`>yk z#;mxRU%D;ah6T<~oo)$nmpBq^;WQRn#^TA|+}+<^-2C~E|Mm|bcF%wF>)ZXs<<0H& z^|giI@xJ%w%Sss-vp@~4xjLDRO%9o+Uf>q&UgiMYQ^or%T063xH$H#<$jiKz(>`48 zuCHBcdv0C+{()CmA9$fTSKoIGZa!UJUe@^|UV|?;X@#sOu^~t!Hj8hXW~n+Zj1G*D z#}8$75OKpH;<%jFk>}O%|4DogqN5;eAv{F5v{90XZefId8&4Y31tU_D9soFYuXAGJ z2PDT_YQf^ll9MjaSwhwawN(<_A~UjqN(p@->~Ve~;t{zdU}}-6LrOPPWY4#7Y{>cz zpprN>HOgHHt6=A2CwEmc(f{9L!|_*HgU6!)E&Q_A&jq*Ak2M|>7uYfe3+9-mQH$HL ixPf=Wx3TNNgZ~HYGD84$U~y9b0000<MNUMnLSTXoQ>F?4 literal 0 HcmV?d00001 diff --git a/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029110847.jpg b/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029110847.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f54750cc124dbb5ef9995fdb2ff2e3be019b5eea GIT binary patch literal 16227 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 literal 0 HcmV?d00001 diff --git a/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111003.jpg b/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111003.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f54750cc124dbb5ef9995fdb2ff2e3be019b5eea GIT binary patch literal 16227 zcmbW8WmFtdx27A1Kp+GsNN`VrG}>r_yEN_&jT77<K=9zuSa5ARNJG%z?$)@wyM>U+ zckisb=I6}pI#sJ`Rh?S<`BA6Ne)m3q=l`w)UMa}P%K%VN005MK8{qE};3EJH74<*u zpP~P27}yvX=;#<Pu&^+(@m}EJ;l9AdeTo12)k}Ord|cdDq^}5xh)GCD@CeArNr}l{ z6O$1C=Orj;|N5X~;9y|j5WmEIN&Nq8e|u00{yBw#@?Qq{--d$v&ml}KY@8RkuK=hh zXlSVDX#a8V-;)9V?g7vVF<#SgOJWkKn_<zr67z&4=3_HR)pU|*OrA6Hn!APKydWhb zr=VnFW?^Mx=L7N!2nq>*{3I<SD<`j@sRh>7(bdzpu(Yzav9+^z|Lo!E<?Z7e_9Z+b z@@rIdQgTXaT6#t%w4ku4xTLhKyrQ<Q9?{VFv#GhOyQjCWe_(KEYI<gN4mrQDxUspl zy|cTwe{gtld3Akrdw2ivhyp<SZ=8R}{|5R$cnJUTprWIrp=14r2L;vZ-;PFzjzPzb z`C3vP%gmLCo+kvGSSm5UrW1#OSL2+-+->p&DI?zo)5U*~{)_1U4k+~hi|BuV{)gvp z2Y?V8MFK?v4TT<nN{E6+i1K$4fQN?i?*fewAPz|Lb4~}iURMNJ2>mW;z#)+8`o4|C zIRLuT!A2}ZR257eTx4F_uQ&kqrkdIydXaK*+lgK4uF(4G0s9``oMr7zd3|Z+%CRkD z$osex1kCmz%?Z@HQ5_Vn+U6Q4cpv5CQ58lMS#O95c4|iqt$5EmIaAH|aJFlxcrQaH zN>%1;I1fEViF$=&_8V(kYl|1VV=;sTt01EK6lbH?Ud)T!cLk!oKGb`$%Cl3WnT+Wy zqnzFq<y&C^B0cLeu`bxvg;*T9ljYv&G7aG;*I6-EO*xIAqRWz|fS^s1v&i;gF2u4| zo&0mlj84X~%*%b-y~Wb(==gmfBA+BBOU-G%hbrrZg~L1|XP_Bl?HSZZ%y5LKCc(aM z)`PBUp+B>`UR3>l8_B{n`Ps3Q3L3h)J;=b&q<*rR&g)C)UORDJ;~qpMz?wF&9BHB9 z9mh$tYZcY$6iw9TmU!reD`>mTSk^IE>9Ug5q;C1fFqZVL*kzXr>Dq1k!(ri_8}^ab z&PR@iI9}dsl*gI$Z(rp#+~1yoi&82=1MloH+?L({q+qTli8rci`~}#{yMGW1Gz=oF zvR-4%!B;I-YDnsBkkt@Xe%sXIeVDfM)SD!8eWEqGtlo!ax(Bn$Of6=bKjy1F{``O= zu8+E%>$~#m``45p5>>mZH&{#9_<wL4mB6;(*Y5&vg(_-a;cy&9qwX%6bd26+n%ph? zE@+(YJuX3)4XR@iGxkH`Pz<hvdzqOuRO}x@Z$%*E)J6t|z3*nhC=Gk%CGeh@Ke9@> zy*u+%NpC=#O&nRXmUPeNSTwWgw{1ly1I&56wA{=4!bOR~b<0iG8#2BGzSn&Bc|PA` zBr@gIum~s)+Y4IVKc!Hh4*Ugp?T*6{khMdZLojEc)K67s`-W@EWU=ORn;zl|mCUTB z-eHwI2Jy9zhXIwwI2O<2c3}};8#?|(UBi?8xi|er8PuZrv+T=W3=y0orvhJIXlKIr z`<2ZiW$=n<N@}v5sts+*OI>h@LZYix#1Q3PknN-@{%<04TK5{R{cWzim2NZmrR5~W zcol%{&sEsFot06a?NHjN*7tU)*+2691$b+7ddX%#YDJvU2lFwy#=iuosVYQO-<cQK zHChMbFm2Cr#I)X)Te*+7*{q07O3e@$CSX0;D~07g-)OV(E^p>GGVJzmD!Wi0N1tJN zN_!)F8`Au6)6gI6Iy!rO$BN7Q@f=1vTwI~&CQ+;G5sw@#th;mxEb-#PhlMoO?%=e@ zap=rz$@288H;~UpdobPBwz}5oS=^NNg!?N!;hc^nAI!@ggB^Db-KCh86y@+Qzc~1X zb&4Azp$jSonrU?U;6S(fC0%;?kL#@0PKcSMd*9QZn(#0g5gLfNZY?TzAA#pmnDVj? zeXhaVicuQkoZ>pe)f)D!q_XXv*0ORZfluPmpJ+<ktQGovc-Gke*z3OL@Tq3lH@L5G zMU_}mv}%*q!iYj~O*o@L@W>n`{}MV?=15ZM-0G%7-)pn$cf}ZSvNB3S`{wJeC!MH? zo;1_#R))>kBs!`Vrx=x=n!4@2n~0qIZmVta{KN64s>yO$63<t&Aj8H9XOs->yWKh> z1oeZ(TJ$@hOwvL@T$haO3OfOCd}yR}=}7&d%7iICfUN;NYsvNH0JUKG+*S<<{tZW; z7iHWoyIilLsh-yxd1__twL`zDvv*{)@%C&&rfh~dUw#WyX$`ySx#qHG(H*FCqMOIW zW)3peFy`r3<1G6@^8$A|%etuY6ae&@->S)Dsls#$W{l;76B}*LD_8(inBAztvqm8; zT=RNKYCA4&Dv+sX^84yN<raggA2Dwh#>K<E=aWY~mQ|Lopx4U0I*7)`hB}=^3NOWw ziAU{3`^AXTIl}uSQ9s!*aI{1v`w6S>HrR)%xqJ(&oMclR-`^A2*e##vN~1F7J#K&V zTQP2p4W01mD7VO?S(t&Nl8pbZ+)WGLo~tANIzmH*S9iW8&3`LIYW(Lqv|@^tT1CE8 z1~)JLrijc6&X*gJM-?kiAy~rhuFdc@$yNSXqlqd^>?X%=jiiR2ibh0R`mp9iihZvn zs$oXMumUYRdtxwmR{vy9aLmVC5H2c`b3$d)6A-}Hg6abZ8}&cgas-PFoKe<+!i3-^ z_k(3<7I^mg>Gv7PF)<EgYvmWPxt41qNT*a<kH*99vk+P0s>X8o_{Sq7{Dg9*h6RdX z@L@Y5V)V9`Cm|)tn>cYPDq%z+#E5KWTjWTb@Y7s!q$k#5xnkAAAz`c2JX&ynd9~gd z<-oVR4^H?HVa0;u1#+hw6&(sMjplgzi$0#FF$m5$R0W@Xx<PVW=%!-F#n+?EavAk{ zFI#QoXyT^qVX%1F?@CU&K$3x`1nRcD8|!pa+~+rqOBf;6R9=9-S;&ysuWy*sjUH@E z=%z&8aR$y&s2NqICnR@(#=Qw*fjTbR#u?y=r?S!I!j=yD+*DyI&6<SY@&sJ<t{9|A zN4maKogT?WquB_-WGD4?$J3L#Vd`mvVWy!)FZ>5%l0F4pPV;4M|FNIZmQLSeIkabP zaJVb|tf*v8m8{Cw!aWnnNB(s$o6_rNRiDtC<{6bhvvGU>NNQOinX&H#DNU&>+8j)h zO%`9T5kGrY>mgHB#eU2k2}2cj#y{e+@Os&!WRXPnGWkiWJ!j%c7PGB*X{CdI2k^}g zIncm!k|<9>er6)=FGN5P$rVM8S)pGjM-%aGRNzF<=_ZG%50KBq)FcWab+U`PgHG0q zRFW9HHE-ZlC3%Tb`Z|Ih_O*k`U9AJ*fT}fT-76F?c%bL?MZ0w}ZPaR|%RZT@GB+%# zAHD~MOU?rrSnd<dH0x$L%KKMDxwDZu5SqACpM;)D@}OF0O3fB~URG*%6UHMYMyQn5 z50(V`N20Bl&&BTLilX`A3rBAl-uWTN$dY+SHf87<Kg0EDakjx;iAL6cR*7~x`}t~? zPh4A|;kCSdLS<P(mE5$PQ*xfWvEdH2&|K`0P9Q_q8=-^6VAheP0V{O8X@l?70f%<! z&S-*V11PSm8I5#{GCsta6x-HCmXFh5Ol4+L!VvPe)1k?#S}R97RaN>H%g-bNry>G1 zlIEPM&M-_KnRQ4}WH+2y;*_1@Nt}_;Cby}0EKW2#?;}af4>T+iE<{l}I;X|1XoYj_ z5E7S07<zaN;&R7RbbmFh&Q?^d#U>;|(ctMe@2FScAaLPHQfg(#AZGMobTUEV@Whc) zE}x7rjE=h3Fn)0gIh<y)TJ3{|a8W59S0Q$&8q?r<e|%RKEx?zfLsIIso|E_hr&099 zPn|Me_~cC29>Pt^!{Irs(mcD#DI`OMr~R%nzSPj=Q0}7q`u(afAwt$4JP%@>Vm?bJ zzlJL(cen{F#EV(1kz_e;EDf{fjfey@;<LB4-O}swBW$21`|^Y@04xXU@4mhW-^#r? z{NQbIVzn||iojhD2#$60At~r#wBTfL{@8;s0(FdF;+QB50BWuuk%iuMQV@==FCNvH zr?kvFDSrX%XI~y>C%3gC8KLz5I`qoXhNx2oC8}VBXj?T|PYxtIx4WAt-?MvHg9Oa! z-){K8GwH~eRea!|?`bPyj)Y)TJB1*yXz07K{-R%kZ&c@sqeLr)rEu{P>=FWARb#;s zphkt28U&NO7S|?9Q+0f=j%k?{mpol?d{H3Kltn#JlO2<|fXW7DX|Lt|c=^)Cs83Yd z0pvZtrRSAnmw)PE2^K*Rydkh}9tOXg$@n3hZ1``eE8I<pS0CMY_>jqMxaR{$Z%N^c zw4ra0{Zn{mhNzRHdWc`aIWgf=8hI0ay?za{|MhAR|87(uuKR7`fqG59n|)svVN+|A zd#H*~g%_`W3u$lrHHIV!h<}ugaQzRYZUV&Pfur;;T&mg&MH|_@X5IFQl|*-4=)f?( zd2!FJdkAT};r#i+*-4&iPKjHNHaO6IS*PG|5eItTQ|dz9u|6Y^`=Y7-tBO{*b4#yA zRm+zjX9a>3uwv`Q3iqkZTedKO)@~cor}LR~>??(e@3dnG@eK^W4(s1BVX^r2!Uv+d z?J(x*1mP*ZzW^~u*j!5+mfR(e=hIXWDM#K<gd>sGr)=`sth9b|xY0R&^eSCzltuVx z#d;L#O&LtwbNAj}CpEKX{R~Cgvygjdsk~Ql^H(HyeYj(xm?`?_Gvk(xKQy9zrmwIJ z6DJ-uiyPv1?bOA5me&EoI&mi+P1g#M&52hlYh77caY9an;@*+D995J4_>Gi)tZM0I zfMJ~`$&DK4Qucu_PDhDa9*!s$!N4^1LmsX8UvWAOKhr2=wY-C#7@UiSOq*ln-wtXN z)cyt3t~a#OAtRoNj9WwyLp;lioC0=tA1|7l;xrZNn{zoLQ%%3|^S`Ih6E;s}22X#M zJ56H5*(s=&V1RvgwLNl*remUhEF*E78j{fs9Hw35{|g|KG>T8Pp)k5MAP}Jr;7BSO zoA20l0C6x{jDM^7b}3lq>@Qa3V(}0)xY>qwVojKn+3%q3Fn~;Q=BUe^jn14L{_HyK z?MO;2;`vMx?pIVn6kpIre<L7+a<bYK^ILlGZBk%rbIzDu$9WL#JSL~EyD>LxF;D!h z3q}Cl1+FUQ!V-m(pH2v*#>Z)k!rWJ<<xA@1WyZa}j*w+S#BE_dMdf>nPb?JU`oY!z zz8bkpX*>S)JJdFVb?LnYU^($Q69t@k5j}I<DWVN+L-`;^PwKl>ypSk++K8h2ArV<d zahv@%X;DbOy;B|zbdfu+6=l@HKyo5Tp|^#%2u_kYt}xyBrL0nIiQtmGYYERo+)ztY z_jtbHAXz&$h^?giGEe_UpxJ@iXtm8SEpzSZ$sOflri%*BZn-jrv%bV=1lGi?kA$du z3l(@Gyn^M+vlwC^KG$M5XwgLZPnU{M=TqhGgNlwIyh7ae$R=6NJ=8TDIsCc-bM+oB z^@hgE<ZC{|>y=(dZ*6YoM#~~p+%0JDw<Mn<0~*Sp_uBOq6LPG1UA+WRv<myrq?ZLr z;4vi&G!pIZPDi+jp(LnXi``A<=cCT|dyR=TT`8S!79_vO!Z$-5k8oZK;60bLD}b#i zcu&owc)sZE6?P<|y{uQ`HlEr{?+JXJvZAL~L8gwxh29VxbKH=Jc(GCuB7qiC=WSC) zK6i3cin+Y<+RmCLW^eTSBks>OJc|nt%00~9JoqdhVkmCNMn5jTfn+?7U9brSqEYEg zZAl7O@M+}RCZJPx&j#825!YS%ecKqDE9C)Ppd3<M6|y%wJ|o&b`h($bb%8&vBvC8d z>ZJPsKwE9EpLk-z4>6~&MZ{Cb%-|D{cy)^du1#JT;W(JRck><k3-E2(2l1WYca;=0 zFyt^se#9$pWSO~A6s7qK0Jmsyv&#rE`XcSVdozoW`9;K%nT6yQH0N-1qt4_CXV3kt zo%gPGvS{uX{0vN$u;RojD;eIX)Jbqna0qSA*xcJ42XZX*zf*NE&-<WzX%y7?;ZR92 zKQ*|+<%6{Qt0#trwbuOgJ#_1~&g*Nu0Cud#gh15n$H{TiTERA=E}YUX)K5axb45*4 zpx6z}P2bJtTd54H%{l~YEv6`hO<{*2Ic<dfm6mnIsCjg&2W&W_R#ktfc__J8(uTX7 zdDgkF$?q4mIl%S<mDi{{QK&3%k~-GfXFMUbee7hAYPXfBN4?1X>?m<YXG)AC%BC@i z-!K9Tc$E;l$zL}}!yVQ?)z(V1@84%ZQ_2!3vHgMKM9VAMppjWUS4DUli{s3=8-zj? z+6@QJ-ea`p7^5X&o+5^1isvcM0x9?14uw-3L$xU1F(SmO&$lO4tpMoBKioKq8X}9` zbKlhdW-8){_5T-Hh4sTMxW>Yy$os_={Me3P5~BKfmZ!L$9I3m5Yp_IqqR;juxLpes z2u7SDY~Rg3&ZOC>5&$W_&=ivRf|u<|-UXD=Y)^a;b)PB<O2uC-oy$UJQdI&cyw8=T zUA?aU<lvpqH_Etjkj~M{db#k!7uiQ<tG#Ku=A(iUaCbo<Nj7(fF;h#vw0phT{^mkE zW6`O}i)Okp2p#Dt@YxltpZ&YUAp5$qSt}R3%(dTf1=jW7qni0<h0PK@TbaS)sD6v= zda3Tr2ML%LQp15;{|M!elQ8PIy3!fRtGjJ*;_LmIo!T1!EKp2U3*gwg_^?wpn=tVq zmH6P(BBI97<tO7UOt*e>xC3o9zs}Uvz(wW-K^Dnae8bS(qi-l0s#vymTS;zZUb@(q z8{*#{vTr?LA|8F-9mkMQHf7%y$~!rdL~;>4QWf5`IlA$Qg}vZod1K|oT;73-(YFqd zPz0Y}gzFLs*lgI;tJt$o_>IdvWA^k8hNQY`Jl4zcJxyhrUQQosoC+^AwgMeS%dK|1 zBxy=_Z6_K*8F_Nx@R2ca`ugPep7auuxl~&*DSkI@<_l3g;HE08{A%zaU9>WMrd{y< z^T;{y+N>@C=6?5!;&aL}Lz9eg)2Mx!{I$?3J#K~Q>(fmp7EZE52>qq4Wgs)!kumos zZGygo1_==+uoLpDUW;c)Y{&<T3eAYHbIgETl^UB%@0!1o^1*Virt_v+W8Y2MWtI5; z&IV?_xGViS76aW2xF}y~uo5@aVd+_*Wu+=l+0_c+=;@xVk{;pwAjbgn|9zqO@dIyj zC^q%cLHVW#F~)%C(a1CNJ>;bM^CkL2=yi20Xqhpd(@5M-Igdl`7q1NrsOh=~^u3+$ z27Q&Ki??qzC3*&48&u}eZOcO(riNZKF(qi4Nchv7&!kN-TQDu<tc3fVb^XFr+%(dP zC64pqGST%G@47f3l*Lm_j8|cGBqLAfa!}y3L8sCl;YNu^h%eN{3zAq1>d@Dul}de7 zcVkz{sc;NNiI)1{8=Z8`pwbG?sC}Xgmj#;B^Ui(GH|9PY1*W<Q&x}cu;0n+O&yuS9 z?Ax6-9rZFVYcl)4XMwpwQ-F%zrxvV7KP@oZKm92Pq**!eO}LFiG(ohF>OaHbyCRX) zs=m8V78||D>vG2;N%q=Ya_w_Z-f|ktKrbF%F*%0#lqos5%zfPXr3t?Mv`k_O*A+nc z#Z_gvtu=S!s!7|KQPi5|SQ6ypYLE@JrU0*WZbW<IM0F$kAC8Tn5dHJ%R^1w+S|LG> zBNMxQ0l(B2@ZosG)z5wX;@^1|X`>1W`TL|gZ?Y(Qojc#3KHs>`A){VIIF%yg-^ZL( zfm@M}I_X2>W`p{B`SZUR+8nxBRDCZ`1U9L7YBv(K@T(yD@1rS|cpah7*yDvCU|Njk zht+$<eT7bTNrIz3qkDaAuZJ<<7HrR*6%BcBu0>jYv7FfFH}g`a6*Wq`_uh!o>q(fv zv}G~+MUUvmd*&9u{aMbxy3?gWn67*g_0=*&l-FCS@pz+^SNrwSysw}7?)5sX-ttQO z%sKeSx3ED?6W%AK3&-A^ogPl3#6AwWMgemcCi0aWtY|TTF217&i!1{22N}rrdn$hu zB(U;fUX}h6)wO74S@VzP8KvRf5Ahl*(^E~<vYmHi7~i9pTWSt5e6JZ^_zs+N6IJT0 z3l2V+ap#SjkBzv=iym?$kgbf(V|@Ft9#K6sy>8tSIP`ilT7UsKwGcS;ID0zH@D;Ep z1ecyGO5i=5kMPc!%jaut5wbYbf^L2e#Ib(_1r8>sYv*a;Mq8a7ACw$ad^B+i(o{X- zOB*rKs2<PBpLqv6C6#388*<||UO7+R1drZK=@||qgLUVu+s@-x7nv`u@VkZRe^x58 z`M-zt(w9GwQ+FSI{Cw2IK>1V8*nrkzaT%vjY0fJerm>}x$(^LrX72sI*RFcu(@`>A zb)l}rZFg*v5S(O{^U=w6CZ^_MJhqCmUoQvjItYxkaYFJ`IBw_8?*Agao`h7?=X*wg zkSrS^#J;fFA6IT$6lW%qIIHR0mqg)}Zg-+*>tx}^Q!<&g`H@l_`}<t4v6E?se!@`? z%1h_<28pHK?&AVDCh$T(^@C5KSNl31ER24F**wJxucfsme2QPNSu#vzjQ49AAwhkE z6hAlf6CcVfvo8jZ<dQI*v+`g(@~MMBbAXq-TF>{yUIS@BJiDF_O;EAaAA2`;vi@Q^ zD8uft{hO~!8U4iu(!}e9z=6+v*1$qX)W|3e9#xQbVZ~;-GU>Vf^xMmzui^w`eGPY* zOj=OjfJGl<o8YT4jj-sTrjtbyf49&+<ZSro>WZc1fCe@T!oUAwt^1D5*0QnTT~(kB zYO@*hnEs@qmbYx!`@rtaN(wYnpJ1v0$muVFL+<X9ei8YQA4Jf53dc3&*{#?4aZ{#2 z`i~}k;;+ag?gK0bTshD2sF3(PdG$#Rdxh!RT3aI50%FYmUdrrO#|@go&F3nDaQYcB zehBZfPt9_DOfERi2fSP8TCu`+#cksjcvmb2><7G7HPlfCanij3mJb`e(J0DN{rGF< zne*t5-O~v4_NuemT$R*bID9}rKjn!k?B`91T`uM9O%$n!pJ%d{6r}C^FW~qAZtsqn z<)BVQx-6{eR;=pwwuZzwU1%Qkv7!uh_23k%#k!F%&ROlJCNYdz^1*T(cw|g<k5Zz` zQ`KB#Zs^u@W)$?q#>GF278SzWy7;rgK=;<p6e1$Ppt`R56>fQXvX?8b(5Q0_FEV}U z67m-i(H?Lf@g<k09fJUXoDh4{6o1=G?9uBz%a~oA;F-;YU8MSsf`Wh}`XV9fktuuH ziTnB%?vXa?wx)3L7Z6p0o;jmsRGMGPo*R2H01}`+8ImQR=bgDQj@(#7x4V6-$cK`R zw-c$q%W3212OGkag_+Dg8Tj)}rCp>P8~rMF+FqJX$|patQ0>X(nttNh6oh?Ae>uf? zDEcSd$0YhMz)p6u*qh5CaPo6&ZT|r7Aw;n&5HJS{svb^<_>uZA8wx!X-I^%mU%+q8 zlO<nzeeZt1ux*qOmUcJlOYS}WtKBD~IaNDljCAX^dN$#4h3Q3Zr1)5V`fX^$?I(dp z{|T&Tu54|VkY~(8%7}s=@>B({UG&v^eUS;zg!_pHYF$cJTM{@l-*pUAagTkjcVeJz zW9au=%1GB+FWg*gpz%@n2YYlmg(SZ@{*d$SW&0^y54IQl#PK&LVl?Nmatsk#!+6?m zDQ4$y%2ePN*zMH!kl&n)p**j=PK@UAsmvGUb*T}sQro_{HAtCU<hgn6lk8gqYw2~1 z=pDCRFB`YgfqF6f`;qYCRRAa(|7Q3eOC~^74Z%P0P|FZn_ynoB?{yk=GNj2yf`9Ye z>x{_ESVtvd$(qfzIRzRDt^a;+7bACPf`ys<QPPzn-W!S6o(i{ncM-c=elX3ceV4Sy zz5tk^Boa|lq)pjvH3a1~OgtJI0govI#6Ox#7(Ch6PgyXunRq`d%~F^ztIoAY+57t~ z=QBonh<)gXW;(jf+H*)qtK;e7Flv8MPgY+t@Sm+DX^>UON;OYZO<%1T?tsaE?<Y~w z6)ne`LW2|gSdC9r(L0@~U=!0kREy+TSu3$^A;36I&9etzyHS?Gx?6AeT!96aJmNJz zLy~=K9}R6{Tge|I@;>Ji_o?Nk?td^i18m<^@-A|wofcUVhQ8#xVd~r4P49V$a(t6j z;8xAJC9Z!AvLIUZ=bBn3;GUIWp@19S|31%jR_^^%`@r2(oN+Ry?6VgBxg4at9#YcP zF^oncL{R~Ir&YYGj4d)oJ-Pi%b^dcU`XN@!26`)w?$0xET=ZM|g6Hk;8XCl??V{Er z({;m?0k7PboV{St!(Y)LAJ3^EOS__n@$M1v$nz=|AuZ3CiTz@Q9P%qI9ouVh(kFvS z5NVu6{z2lhu?2cx=F&Yf<;aAh73}AVtL#7bCHbob`BnpDsU7p4Orr68Wdhk{WVno% znc=_udzQ;<y)V(Pys54=VUT5Kxe1t*L+(`VF&59<*quN21e^o@dOe<5-vrlk-<8<| z9+6VE$iGi%)L4?A=obgJo&T1I>1sA#S~M4O4dcN_)HtsnDGryWZBWVtRzXH#f`j{2 ze%|)HrEip%6QpZqqOO=&C;tM_@HgAuccqWx6DQ9#{SlXrREQjkS}6nt_ZLGBuq==2 zO-ZXM7@B~7G$FTj^seJ1J8Q3!N50iiL9d5xgX2`os(Jesy)*R^0Df9Eg(IKI-$Hh; zIu_RGn<0Mz*!o8`Mfp9FzO3t%d+Uw5)l0eLNFB$w9|}&z!yWxHk8fCY_X&!)A$}3s zpkvKof~iUfwDD_U_!ihNWBiTp+*-E!80J}7Ia1fL1>M5SEr5L{quAQ#SJtLzT%9W6 zwx^*Eu*};4Jl77{W#t{i=U8?E61lX1J-Nw8)$?T5NExYeAu55pDy&xt`1ew)eVB4H zPFsx8Cw#Q{<xQ_i{-qlWt@0J(QKdX{Z>AOw94&B`c~l$NguWG6LO!rdEXgSQtRkqA zcch+E_ZPp38QA<2e`fM5V^xVI4}}gB1TF|d&5(?-%K$<ZT?>R~nmkryD}UOpnYsaP zIC%xqEyCfw(3$q<CGXQ!#&i+&x^ds5WG9w9;#9>f&t}U)<ycHXCs*k7wBwK={c%4Q zLN~lnKs`86?I*52AuHq?3hg`ZUaQDwcHtVgHVTv&cJDvzbsy6}UNECDTKz9wJdl0W zB)`l)Dw?p%a&1t2s@?aO6VE9-Vbljnj1o@!;_Oqw*5#bure5G9*W|fx{UDJRu+T}Z zul5ux$30ji<@&pMPl{Y2aVML_i9%;yu`4x`P~ZjCO=&m2y))ZzY*_5<zL`)3Q)O&J zBpS_4F?ID#9~<45XG8#<NPu1J)xTea7=Ch(FGg<_i_^L!JOzYOl81AD1fJM2&o|ui zLPxH+>pL6zBER@s-J3I9V3bB(@5dNbq6nd;%6jvSvQ=tn$i9br%W$ml>%IMgLmpJs z58Txj$H|Z1AEzf25g6&wnWA*eTjFF8@q8-unk!E3RvSjyf?hD__3cd##oE|d^j3ig zgv$-=R{22gM!zD&-gHyh-|>JFkT8!lUrb&0Z5{QJ1Nj&0@veH!=>qCC=~mzS?F$E0 zxL4ubrrkS$y#pgW{xTgDWs~|J*xb>BhYp#;^460CS)%O90y~-V)JHaI5~U<E_~ewM zP$m!eAN2tf@TniII<L|O?|17zXYyq5jT6dH4raBpEpDo6_U@{(Z|C{$^V#S{msfG= zCi+SqKx>Lu{^VSpDK)^$*WN`lN9hs!cMDZq+2%?t>m>Kt-$eqwccX}JdOxpfxy#<b z)Q46}F=(I~{_9%@`V+cL9W-Vj9l2(EK1&-IYrR^FtBRDhKOs|!ESgsdg!%E$wi^~e zN75DWl@+ZTLZ((P)pJ*FMYZ!__fdzix@(-JfunX-*C2mjQQ1u=@0XkI-o$KoQ+Dd) z$VfP~tixQ~*PfWLnJMF?FK=(lHZy{yu8)kIwS3OxsdI|6hb9%s=wt#Bh(d$G&sR#r z;bR<8w67ib{)jH_ZV+xtwdSU(uG{p#5&x>6TU<EMCA9wSfkONU(}%vXYuYVcz=F!d z@_S)`-Vx?>tR`av8uAiW=QudjaHcQM6_5SwaZH0ND{RsE7jUFeWg&W`uc(<l<7n$1 z?<&d9(_?s7*-#$pJ9FUVt_@qKD<dy!^*8~)OGDs^zgH-AC3M!uYRbbiNC>ol;$IJ& z`~GF4O$-r8x&?EkMtk{_x<YsQ<y2l$kNeEbAjQgR#^CpuoiUNwZA1K2VhM~+(C?Yy zF`@66Un5lY$L8vLTc=CERJ-AfaTxg&`&*J8#8N67>HZuV+l#bIf9dE2tjor5FmJy9 zWDP*w6Fo}1h=bpnMC(ne47#}qYp>?{!(W8@z;nxB%mGGh?$SJ#^;T{}+@rPz5-X~j z8VmX9aNmXcnt?&u9P7B1i1|e-RCfb01(~Y7sVsCqG7PyA6V+5!k-3UFp7v4>n9=i7 zFeZCkaaZ!FxUN<7$Diw4ZPo_M91W6H3&msO%BETtu``b&R>uQ_75W@Fs8`U{_AkH^ z?&MD%L^jb!4WS}weLkW`%;s<VfwSHf)OA86o%Y5KRYN?o2%hYEk%Sj(n4huT0*<B} ztay69XVW0A=8~&cY&9ZHdqu3<K6d{igt5etYSc6c*Hr2>W!3DbZKp4eh8*dT;kijv z+ulbkno>~9i$%ctt584ay6cM&LZAX}-!;GS8qO86?=iH=mmh)%GVper0u;dvh1Rux zP^NrMBYKAjAsR&gvJz-2?DTQ=kBJU5|3f=s<WK2{r{ltzK_BN%_OW4$=|72HKc6w& z+y$_q!s?f^yjx+k99$)UAJM$A>!KB)enr+>IXrAaxoQBLDOi=(UdZK*-g#o$tX#u@ z%rzrYO4#!KFP3S(Bh@b&(R%l{?$co|cuRjSj!a}_mSZL!3_s-|9Ph*y&aqA+&C05@ zAM2%Xz5<%##r5z00&wq_WG_4_MlC+qlB&6=0w2UqSd)E4D)B?xh&Cd70}Q$!Q?z$a zHeN`O+ar^B=)eK0(_zj(@%yI=k`}&guSZ|5g|AUL-c-uL5d5DqSbO4Kp|`A*Zw8WV z4dscvG@*OhOk@?pg-lHD?*|vX%hw~hrmBJMsvk9Ev0qNrI<&lccpD7|iTFm(5!%!g zLB!Re5q<G&RB2~A-<|O7tGF}YKqo_y|MFe`3O0VY_WL$bP(0bACpcl~N;^FB;pIq( zR+t3~Q#vRnjvL-ovSFLWQcZ{$hO08b(9;}COV}5e0s`y*6$TK6<)%!}c!K&jOEPzs zWPJ;nbkPjw!aW%+8TVq5CHKFTAZvKW?A1nO-f*IcGyiloeDN>Qm#%6GI<hTc<=#s* zN0k2gDYR-F1&9<!DkNd4{R;*FjjO>NG?9BJ&S&`J%zcBfiJ*DSO`C=YD^%8$TMO<l z)sT3~LaTpC@Wy*HKu5!fXG+RgMG++jQG5z~V?PGH>Y-gC`@}L;Er}9^((Cq2(?Ckp zQ_H{0z?i(+Vpl4W{eG2v^y5Ut>1kXZ{>aDg)wL%Hi3#e4zan6`scy?UIw0F^*6jd@ zE*DPn%#}Eao{$~BFp`!uo9QQAxbIq2eLcj>3`v97y=?VFzE58YTP-ein{G;|wo?y? z>iaM}F-ICZiJdE?s`8wB-7au3Tb%3oWq3C^9JNUh^eH+*I|WsCrTS~{k_EI_uC!_S zPxD`Z>cff6ZzYqJGo9l=rjBlh={G)D<j(q6nirIFBMGY!)E%4oGycx`MoXZ&o><xQ zO4GTDn6&-g%@p6<4u8nYuI**cu$ob;)%y@;@pq~}fmbS(Tevn**=aaqtyywSmS>Rg zaXW!G;>rASahxU7m7;Ic6*{|-Z82h5Q<L39x>vYnC_>#dcBqIOurYtTMIw5ebL*TD zD!1=0lcaCP2Fl*dcVKH+P%*p0!@r3uSFM$ynVnpv1GAL2b41OaiBIYB+Jxy#8t&yr z?*%{E<po7;qE#=h=O?qTBBuQ{W?rtvFbko}pu!tT2D?^7RrMd)6((edb&^u$dAjl4 zwJoQihdoC6wAWwb<*1b<<msyp^uz3Q3{v6}E`Kom)7r<Zeb<7Yv@dOI<Srd@nH~~+ z&&0?BXB$^(F35khGH(tVP}rXv_-#)Yf0Od;XFpxay|L+}#Ph9&bM=gOHOLCWcI<u^ zvk4vt=H09IE$YM`2hNr*GZq3;$KN6)Ds(XiI*&zkx@cbgn)PRJNry6RS*hsrxDjla zsQZ7oA9mba=Y-EJ9xB#bMW8{~E2aCjyrc@!Vs98#Qf{fD!DjIff7mGg2;Eh)QOj+f z5Mxq+wCkB%Lv%f-{Z}~j=ZyM`E!>8WFgKv7bc03lswu9$a!Ikze0Qjyq=c_;D$|bA z^{eB#k4AMvnzo=ywTC6D3Nl}brlJ0{{M@6eJ8lFp42niy?`A|UvzqoNjz^tg;aKIu zBP8h<f5r|d5Tt{Qa-xXvCb_cdH^Sa;=ZZd&nSUqaerD+Xb;a<gdpLDIVqEKOJVZv7 z5Z89h0E_x42GNG01MRq2`<kaTU6hDp-A{fD8BuGgIjv}|IBwfoi*m$Yf_PoAxCh4! zmV+pYne!-GX7HVz#H?4w#`{_$C6Nw%2V<o{@AHBLq<pa1JjP=ooI6}aBEBz9;wcdM zouJRo)_ymmJ)F3`Z<mF&NT2x>eHh|*rNPUX?$C$1-<vbHx6)pTEGme-$Aq3Zsb?Ea zk?*2cQ}ywf8bYNRT_UuF|B?vG-+tgTYGAL&+xx*u=#p92;d8%4TbVA-49;hAm6G1X zxb}}g>XUEtGfoH%Hf04ns;s_LQsaNMCT4^)2e@yF6F+DlpRre1R73U%qQxn`BhnNV zg}~J~eX{Vm*1v%MUnKq?14`*+Y&TL~_ISeSXA6HDM(k8m>^Z5ZDjepAIj-6;b8s8B z*2e{C_TAOl*C~3i*?C=rePgq}Kn!E_oFva6S;w12tKGILeP_K~h&O5>$XoSETF?av zO{1_72<&qCfm6npYL@n1j^#_u75U9JwCnX%s82bUgH4-vqT18;4NS;_CPHk=ZKBb& zd=wPYXqDh<-1J*;|1o8i1#*%EYtAN`&}Qj|M>zYrS+^-k72*3KXN}RPPM$<cid+l| z`k!Q}keJM^8auM(U%HhCmFqN3e#*fzY?y0XMVPmf-)19pE&_{p<-i2!GtX234eJ)k zqdq2<cS23Y<;?ZZh6GCt(U;<c_L%dA3I^etgK&k5hN86FBD7Excy1u;eL2^4e*}LI zyw_tQfme`Qb0<DB2?7n7@i1tb->!Q?81pot6Gg+4d{~ml>_^Z%MUZXOuVqIDulR@Q zx<7-aoiJsvL=Pl73M>-u!G_-u?LNhfdClBL=^;Quyvx27gJKs?th*%Nx$5vTU~XZO zH_VL1MYLgDH;oyEs?s<5kZ+vK$UvT`eDPo)QRbx!^wY&Cx&JPLX(oyF=Vr6P&*_>| zDAoxsOiz(gVb~qJgMFDwr}>^^GcapQ(Wsnf$tb?2k>s4gzBUrS`d{|$9@3BWm7dJt zWq2<|pud-cJxcwdVyo%afibdA*?zIkqP)u6kk<<)VuLl;$}q|Q-P|?Fr}D*5r?$h? z$~{cDGdT-p$f4pdDuSV^#pG5uSG`=9ao@=wremcKQ(TnaUUScY>piz%(x_qa_HG%S zM^I@}bGo1X#-&rOOIv4QYdyw9kTN0xQd#egJx5=U3QPBicsr!_um^hL0Gc#?ii=-# z)I0Mn4&HzBQd4W}g-!~wS>|8gUmB=FKjf#*tS7EEJAXAMaz?*zFmNjzNX?v#R3hrA zn0xJ0^W%lA1Lc*`=Be)wd-a+Ntk^T>&pG;6Dm=ts_fB9qY56;!WY-(!_Wb+2b5dlF z&U-&XLWQU7M`Yr1;CORa(`5reIq*~iuH0*sCuH(cpEp3gL-ZO(B+p>Emw%>rBGTdv z3Nucp?c{Rdh%!f!t@f#QJKDG{cJ`(J@Ih@wRbfTDbTXrr%VuJy^L4{yUa`rKdXHA^ zx9ssUko=eqWX$_PhvT4DERy_xkv@L0khQImjBrS=B8+UNY`x-aU<kR`gLGx8d}R)D z7OjZ3n@}d+AOGDs<~R2zAsC2*9ku0F<$D5LzV}-XtgLJSwk5ypK9ldLVlw9VG<N7s zIlV$d<X${>_x58_>D>39Q#N|8<nR10rrLi@{{>igI@2yX??$tjw70JNX`6iYCn#JT z;Jltkao$RaXQ%nFuLr7H&b;!B+7MaMKK{3;LHs>^+fj!JRxH84NeYfsu!Jl0;OYIw z8$Y3~SeX{z<oKJTN9#Ol*sr&Q@w5E~WNfx^Wu|5-`q?03s`!zLzUZjz6ZH@yg~kO3 zLGpp!On-H~AK1I)hyN<hMIz9mw|;RWS<Bk+Rdw61oWUe@qaILtV#MH3whge`?pu3d zIfo}!n};#|oJ>^72V-m{<fqgrSx%-F8=MRA9&VXhG&;55?cH{h3z_=I-IDD(@`-gz zq}hdd-&y%MSL>&z2W{Y<TuX*c;@Vsr^xt4u8WICLVV;@?8}(Sa>d*l!(6AN@ak6Pr zE_yw4ecqesM{k_RAw@Anyygm8Ol$DBAJx$K&gI=7r_+p*PtT4t^b^=o<$f<~SxGX- zgskoh*U_^syBe{!kYQu^L}d9p4&ZgQykybP>2N?QS-A)hzrH^?&<G19a9vH}fe(n< zCA}`4YxwB!`w&A2#)^qDsulyYHQ?tp;rFwK<qwefiPKfhlP9(B)>|0c>*;XRp8ALB zLqB_4@eLFVYr|Su63$Cq(_k~R+ZyWjtuJKQ4^d?T>?s`5&>}jnD{W=Qd@Ax)slc%t z(sVRI7k(Xc&phYXOA=&rLq?2e(GLcSbEK=M2Idd8SrC3-=q<q#%a(r-ZXort{*nr2 zseg&!Ou#ARDyt)i$oZN}u6X%`eOWwXDN2y>>eKnDYcsa_mV$rPZ#RRT=Gb?#K=3h% z4>{LOwRl%MZ;W<hyqu*5_O^~4#^!R$w!5)~Mp&I_Dw8_PYv&rqxxau`fag}58}u%G zJvB`7)jQwUB1rpJ4eJCHC5qNe8p1%U0F{guMxW<oJCf9?;$!ULHPn_RzVpd1&+9hS z*j1u3qlr-ro*c|Z(y(S3Hxcvdv-~BzPhyiu!^5->eWd-Waq%+vWA;N3vWuVCq!?z? z#jaSrWF@b^mCPMWU4fmd&z#OJ(<El}m6&3SsS(0|AlmQZNM^@)pWfb7qy8yO(k4vc z+&lA~%{XSssolw-IhjLn))T%H9QGPDnAj@+nrf69;jKUIe(Jd#0BN#oO{zT6;^ZP7 z`tSkeQM0-lS3xW_dFE^1z%Y^pK;?%dsJ5?~bU+U=5Myf71x@s)jS0cITW4{XNw_Ze z+CFQ<jp2PdKK3%E;9lyutaHP3H#WP7=|7HQ{4n5^+OOXN_uk|pQ%>UZPr?_1=iRJ0 z-V8r5yLmsz0{7JlcHUY02u2^i+KJy`D}h9zSG$e)j4G0o5G$Z2Ym~#yIBdNgm$TYP z2p#f#y@g895`Y>TF-l~sRdUN<@UF$p_m_ACTsqUxuLN1~2)wCp-4rE0rK`a#m$e&F zFc|+%BgWuu6*?COK8MC^YbXIs!#8B{;4Xm--yJ$94?2Unk=`xM;LY7;@oQN(ThPt_ zA&utEErA=9i<ZUX`-11`_DT;-K;tfHtMm$&LF_XTJpIwpi>RLG|IQnO*$x!8^ut>X zWLZdH4q>Ym*q6&MCL0p2iqxIRy}T;rX^5?pR)k%G*z*7c#Te0Lt=r%Hz%RWt8z!%R z#|%e-ewrGMjCK^ydc+t}jwxmhPLY4JtZTsVNBeE?Jg0FVA>S&rQ5i;EyThDG@bVf6 z6Ljazg@Ki6-u%{l($3pV=oudTlvV#*)-w9TQY044`<T@$jfF9<?b8&Zr&`gnU6K1x znUA_AxM(~6W}k~6q`jQ8Fy}4O-}wBd?f0&(`<<eB`?qt|9*CpErvvuOzyl}9wxa75 z^#aQx+^%_NHBopJ!om2}O^b#jseuLvo|-xB-rSL1Xd{@&61mAC*)o+p%F~~U#K-p@ z^&dX}we>}y9Sl2iNTISC<2Ctc>)Yd7iy0L{J|G0og(+y|md=?S$<($gi^Kqqz6n(= z!6+#<nbP+jb>tm!<uHTv8=z`Vaz}<k%GAs0%U6@d*jX>KA2-t+#oh7f#BTP(x-VKV zH>+Nvt}cA&;J1J1JCJ4=gYlInwyViK>PVOD!(MStZZS|H6&<adQRvhxHO7X2gt~~b z3GvIa8{xZcsep314-8KW(3M6^$WM$&E6W()UP2--Na1+eN$v9MS1Ruf(4mT&<Ng6v z*htW8FAM0UsH({&VNO=A-|QOI{r6R4@-3!dE@LaWvD{#Ub2sqJY=6JnKaIU5Wr@Q( z%s5#q%lfkNX4Fb17{BOht}p?k)*YHDK`nA+T%@7T(C0X~5`QXG%2u+Qs;nEiN1rQp z1|$b*W;~?;lG-t(T5E(xImZ*_$)<?`wdaz=H9b~ai7HNVm1<?`x%DXYU4`U><qg?E z`qBUo`dmZD@3^GN=vL@9&;y4(l7Wa$tYSyIJA=s8qci>9*gtv(8U{z&^o{I6ln5$Q zXzg1Hbn8}*-1~-uVBy(&Bot2Njanr;_`S#=iiiCPTi`_@;Z}UACrjsEG^R0QFn=yb z@_qOPt?a#5p>o-gfIJ>6F8k?Doa_beCV%GnSvQ$)b)idQU$g=TjV^MRtbaUyF`<uu z&`@dGVVYERd8tHV>Fmfrvv{;ph<#3LHgWEGf)>$Ub0K!>C(18dGZnTW6+{k)-iS=U z!@PBJ>zPS-cc6$CP7OHFyHjq~aL>LK<(QC{*1ar#XXE+yVVk<&-ko;UJd2EYAL;)k zms>8>c07$&txoF_Fa!XCmy#DF&<ax%JL5l61#biWf;to8HTHeKPzF{#L@m<~K)Q9= zIvCb~^bOeJJ;JmKeZ{P^+KFwHQ~B>~>#oNo{z=9h*gFwcsg~RPzS<{ko6Q7yEP|u{ zB<GD=Ics4<dL{yy_9|!}wgZ9J=@IQbcD{#np&Mux-<17#{)JI>$3N!x!SU52xAVJr z-MMU54`W`ghTzDU^`9~H(hk>j&06ryPfCezJ5Qjy@;QN%qM0-6E!q4W99nG#E)PzS z*Jpj6x96x<FI@kVyoz~dHIRHmoT?XNYPtusf1TE&P#XcuqG7sFQi~vXOZAA1^FG_e z$tAL~-mY_ztNNn}o_*4B8>EuKj@p!Buf5lU1$t_n3a3?P$h`9M%XQRGt}OBt%o=vL zBU0tv)gG)S05=H;Fy6u?E*$Ig-^BZn?0K<jYpbf<oNTP|myT~HCp1epzEqscyDM+& z^~^?D)@<~f_DxhwfPEmVeBt#MU|hIw_tEl7g0N9PQ%Fs&jDSlMZF(`7xRHVd`q@1d zL^X|Xc%?vu8O+I9wKrGQ*V{ac&1@x#VH7o-8yd{yWZ&DmYVe|J#%bC98*MG2DUElf z%ZbyC<Qpggg+*Ndf}ntpA;yKA#LV&GKz%XPb1q4GF4)R;t81&x^1ia?Hjr@g9YW+G z3D^5olg&QFV`-2=T;cxx?dAOjTYEw$6x_{@k`?jMKr=yPrmyOOeqnR1-sS|Q+~4Rz z>Gncpa{s(ZcSEz=qRsob)=}zL&&-d4#fl`a<UxxguuZ^dV#la2j$0)|Uv_rR0@e6V znekpSv|_>fKx1fUp3;6|0j-dnT3lFl>v~k4Oo)WhTh?60U8O_vEjy2jU2yzg0L&mW z^)NF(I5^3hf_U9^##LD*B3oIGfNPf^uhjn6_d^{@r+lXiLy+s)Lx*UcUhCsT6WZHL ze0$5LMD=tIrN?pEDd?S2{lB$ZsU*nVz1Ynv<)WjSxO1br(xxhtFVKk@e>N)V+5wJP zkcjYd;Bjyu;)=wCb5X1>Ni)<Y<xtoO?%QkAoSr;D&7u17obR0^l$SGOOcz;ceDBLP zFBqA-{o*^RU^TizmK-&NOb?MiQC4|qy>PG1N{^z2vM+6U1m*ci<k$(9inAa@g=8TY z-l-R;U)hi(B{%(|pFcMtJ?IiK$jT(MbPc<rN!`@p<(erD>0rD%GTyj2(u$O;X`FVP z_nAtvq?z4t0$8J!a2%Z5{T8$KPqP5Bw^n}7kA%?)@r9<fp$*|(vboFoPS^rin7?IH zDz9;WZ%|=HAromDxGVRAnu4B*pQcgV2a7pH?V9qNhyf@A|3nx5%iw;XiOUTiR_A8$ zdr&tTRBfwix1#W@A1G$~leRVkaL&F{U?Z+y@wK<E*SKNh7Y(FO?CVTpEXEkmO2zuO zFV-N}sdCx(XjruR4tM6*s~X+r<t%)6Xjq%730xrD4Zl(SOX)cCuc_#Nc6$Rq`b%Hr z^vAb)RX~zzg2beVf9&%bFa0)n@}2=XZw|vS$99m42oVD+s}|(w7Xhc;mIK*T!%J=w zp_N1q`L#BkB;^tLJ-%Iw_*66-m}B_>cf6{qFA6!Iqq&^~9}4Fuwgb)3)@?U?fW%F) zX+L=dO0tC)iP6&TZKVvE;6RyWRC>1SM^vDorremcxE)%lKBSUX;Tsh!mm8V{943r^ zDT9Lrb!!?*oCZyriiWL6)ZZd`^+A!&=P*C*)J<K^8)AtiFAq3WjB+Id1O|+uFQ8q* zy=M6MqsLEhMuwUMf$N(G#k_|u!1qdbFmZ#%JQZs0#`0<#wN%P`9+FN`3?I_e&Ec~3 zPmq#z|G@)&Pvdt)Yh|h*E<#5H;qSDdGq((2-l?LQE>zfJQ=Ex$=zyvhFM1qtcAkCr z97q+B1CD>vN$}UXs7jvy3$W>Cz@hzPb`rf9j-_G8%c(-oXV(~@!qOkelHB{u-1N(u znKLDprb9<$LL;E)RfP=yHA5S#!}TA?;T8$@W#LAtfQE`{SxA2|YrssfKrwrm{wtAk z;v!f1FsR`a3ja3LVq1Xt&%EeC+!c+uzA1f;&~6cW?hR!*#a(H%1S<<m?#!dL4`1<f leTT<elq@JORAe`p_FKkMuk!A!wOPM@s+>iiE#U9M{{o~Zv@QSu literal 0 HcmV?d00001 diff --git a/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111008.jpg b/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111008.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f54750cc124dbb5ef9995fdb2ff2e3be019b5eea GIT binary patch literal 16227 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 literal 0 HcmV?d00001 diff --git a/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111131.jpg b/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111131.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f54750cc124dbb5ef9995fdb2ff2e3be019b5eea GIT binary patch literal 16227 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 literal 0 HcmV?d00001 diff --git a/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111655.jpg b/uploads/work_order/Erkotek/2013/10/Proje-5/Siverek-ilk-Okulu_75/Siverek-ilk-Okulu_20131029111655.jpg new file mode 100644 index 0000000000000000000000000000000000000000..106ed6502bd915fed907088872d3ab0f7b90a67f GIT binary patch literal 25438 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 ar-Xce{{UU2{{Y)h{g#R-tl2U6QUBRc@U8>^ literal 0 HcmV?d00001 diff --git a/uploads/work_order/Supercom/2013/10/Supercom/TSE-Kahramanmaras_87/TSE-Kahramanmaras_20131030133146.30 b/uploads/work_order/Supercom/2013/10/Supercom/TSE-Kahramanmaras_87/TSE-Kahramanmaras_20131030133146.30 new file mode 100644 index 0000000000000000000000000000000000000000..b39e55050364047099e62d12e24437005c82bce0 GIT binary patch literal 2076178 zcmeFYbyQr-w=UW^K@*%HouC1NyLKSK0|W@}!2%s1xYI}=xLa_72X_q;q>%s#?(W)n z15I-~`?vQ#XWVz*827z@->cEJ>RYpC)ta-q7WK`l;(q3SHG)9a!^R2#P*DM}0{{SA z01+Ay03C&}P`Lq(_%Dp9@b)DD?crY-4<&C!BLQHbN;FgkpgsOe_YdwxqxlyPqdogu z2h|!H@4szMqVfHO$x!-pXyX6MkI+f~)<?AznEJ2$?6VC3^Uq^Y86L{~55`Xc00>f1 zG5`Q&+!Hl>%O|>j-JmXiR2BX%0RTQ8UVbrN9x*<_C%i&p{5)a;f`1hMNlbxh|JaOP z5t#WeZU|-gFZ)AT|Hi%mKr8@&gQ|?l!^g)Hi}8;y=<TtX|KhPYwEyU!p<@8z(En|7 zD;^W@r~gm}q94U${VTtW$Nm>1<8l6e);$0akNY=9Rf>P`H>N^iynpmDuyg*ghnI&Z z2kmbi)Dv>h|LH4&&K!(?Fb+=+);}0uFYiBf|8y82|DU>lF#3NzHy`7_Va$J@OO%iO z-{epJ^8G0QfI$(D_K%Mk!tww5jsc3t_*X6;AM#iKJV5EI<>UR`4$6wJlz(H?n29I* z3!{E}4BdF2Kl(V=C~S%{?@#(O{wz@W&satKpMK;2Nruw>XDp#0>qAskZWQQ8WmNj> z9*hEi+WpfffAtHh{69*68S+19zQ;}n@MEIkf5;h_qN}j&e+;8{GRuDXBw}30LHE)1 z|6cYi-w`emJU#TCtzDod&3yX5fB(;Y?FzLSz~4;lpZov49LM`OG1T2O6Og0iOvJ48 zwt}#JoW6;n5ChMCsg-AaT12s8@deK1QUlrLYsKE5Z6@BavWNM!V96d2izaIad{5Y$ zybnvM_B9JbpNU_WMI_}>&T{AXoVvwzPTPG}ElS8pJVrJP9OUw0e#}Zqe^6cjM&j#c zGutB`FuK5qVpXBz$^C>^;&NAijNul6OkS_gUd-#?q_r09EmWFj<FpNB{n^$p#sUtK zCoq!?DwV<(+inC{CjDYw;fQ=*aG(av3e$3}RXVuU%RJ?{stUtU%PDyCPI29yWr>1| zyE6CfnJ(I!@4rm=(cOxBZb1$pg1btXf??ez!=fH?Kn7$KRrf5C!%EK1&Me16Qi@(> z0VeUtM$N5Pz*y@sLFv1RGrm2(^R4A$tQ#m#kvN=}hoJYa)-h3lKIQ{Y3>lrzOXISU zVRs7Ka0IsW#Z%LN?yYZ{DW3)X`uRg->0?R}B@UE91sg~f-Ap1|+Iv{_YvvtGJNIXk zpoRK4vTK4yd=@?J!UP!Olm*mv4^4-Xmz>{SkhaSKTW2oxJ?_)>Npv@u@uKN5GN;sn zb*BrHZ<})==IhzV%FV?POY_))PJ;s+v~3JML)!huVYK?U2v*xet(RI2)@m<lkxnl? z-}B?Yz`lN1wsTfn7)W@g2n`b6Y$eCzB50|b=2&5|iNiQc#ZKJf(Q~4g=OYt{&8l*H zJ#YVP>aK7?jr2ENrT|yitDoYnO#I_6!!^W_XU`$2w%5+z;V-|v=uyf<|H6TtBxKE@ zn#=B)q;%(V)6hLF6!Aiwm>DdB#cSQxH)t9s>g;PT0+^{tSB)vwO@*~9z0r8C#}P!( z+uBd!M5k%R*Oxe!{Fw5MG_6a0z+TeWUH93vvk`re8Rm~dWXsd>{YQxb6>17kgp?WA zXl2+o6w=eT9=@9IRFpN`+PDf2z}TI7&PKC5S6Ddk^+UJ8hcC;^@>E++8!CI`AKWs7 zdA_pTYM&~huTYF+%zmWJD$9z~@_n05EZd-3oJx0IGhpCJK*;({tGfRImvsge1*ZC& zR~cbhu?p2%0bNTHwt<LV`*1g{eal;GtcHie&(N-4$?S-d3?IcF;re^bFnb9%X^lSx z(45KaX*sew@mj}mu@_v1-+0}t6Q*)hm(S_qEZRQ?uUS0_5o3HFqM~DIQ0^#Fxmq9} z+`3ow&Y2mQw7F*{J_Nd#kMhYHB_wN!D6oHhMLHvVp!$4wZR+MEHt2Ow4W#=$xx?uB z>x);Za>y^B;fNOok5Bb;NE8kNq5=hl4D6Jjj~VooFa3B#9ek>_$YCJuYdaSJ{Z2SF zd8<H-lV2qAJ(0yq#;}e_lPo)Ty&O0Fe57fBjQ*24E+L^+-uGTcv)T&2&gPIi?O9X& zXtD2pXau+8q74=YF5;ZMj?8H76|Seqg<8BlY-KF+pkx|XxX93B6-qF*gX1uDN&Jt% zrJ^VKuC+%c3HVbP{LjW6yNtA+5e;fOkbO*j>a~#yDtkglMHfJyJfp>~yt4Q#i|WS- z;j5f)s!}`lIg@J7*H`C27NW##ZA-@7d0(o{P6NOBd~sI!Eig&^)w|IFp#^AeXTeN+ zU4}MDjukEvm_$=-ajEFQ!6k?8!rpq#rRbb-rT<95d@p-8Ee(W`to(Ax8P{y?!w$4y zWm6H(q>kB=^_z%s-?QSm=)G=%&A91u=oNoT(eldDQ2dXqr&Sswq|c5TaTt3xRAzqS zQ}-IZp7%0K(5JiM16kEdu7oT|Z5L_n@urZQ*c!$~Lt}r020dTcdBV<7#n<=95x-id z^6RRCi7pulw2BUEY(CptY9?;mjFxW9^xCLK?IhKLUNN7hJDunsdB`LQ`8QGP3V7_t zG~T|e!4aw&qQsxq!vBBy|E+#N5frq)NXioc0N)*j{zD#ld3pW^uJC^q{Y@7EnCSoE z7k{qks(<wUL#<FWh=3eLhW?Vv{*nKOqWzI`qR85R(U^ZJCV?!<hClTFkB$m}?ytJ| zC~OI!`OCUzDE#qHQ>es@%75DUqmL?OR8ZA+{+pcoKk}Z=zvZagzw`<JF6sX+S^t#( zMacltnlBX<Q8HE8w>oMX$|&@IlW@`g;h)&37XHV$g8=zoaR(vxe~&xR(f;9kghZ$g z{G0pvUjFx3<L~GG6EOT$-p}0613m#T(9!>VPze+D!NSGD!o<YF!@<GECBP#fz{kVK zCnO?yNJ#XE2p|6;#luIWWaQ-J1jLk76l7E+WaMOM7$|*AtOr<F56B4d3CaE+r~4kX zuPCpv(EdvQ^bjhlz{JAF!F_;-kBZ6AFfh<DG5(l_()9fkabP~eB6-RyjZLa<hQr`U z#upHmi_0ie-9@hP8^*-{&MEK#9t9;8^<!oh)@N+&0)j%qBBEk1U&+eJD<~>yzSYv! z(bdy8x3ILbes5#z?BeR??&0Yb^eH&xb7)w2d_rPUa!Tr#w6A&j1%*Y$CEsdl>*^aC zo0?mGbocc3LHh>=$Hpfnr>19S=T_I&H#WDncXszqPS4ISF0bI%H>fb<KklHe|MBR* z`SS?n4>~3$1}4rQf6&m~Q5oYACe~A4Y!Yd895Y8!2EG7XGMTvC>aGWj{2DOwcTT_Y zD3}CRnNR+>^p{8fXATAazw+o`hyL~Fz7y~W7qEhciUk<}Xphj)AEDjP0SHhp7uqBA zM*tAu*Jq_)b)5$iY7WkieZHY9JXkNrBoZ^-KJE1yJsA3ClVU>Ug4LLmC1a1bCYg8l zDrb9(wdoH0vgaN^FE|WYT@Vw>H1l@&W~sk!FxdTk$p2`t7-}Z?awR7GqIEQM2}p@# zn5cMY45dwO)FBZ|{!lT-vAvEf(`Gs9>+PBSa#Zw(a^gkyT-f1Zo8oF1SN!kE!z2G& zquaTlkch(N?^mto2=IVvYvFT0{ka`8$9up_%xwh6%ss$%hQ<3BSCP!UhKrjKQavN@ z=6R|x*t~vpLB6_MxM-}D%P?KzT^aHOlp--bqiNG^^6OeD>}*Fr{8r88XGP1)5~Hu& zhqE#<J{P4xoACh=6@13#6U^<K+c7%&T^tG|%gsID2Zuw@Js?ISole#rjX3OWgVb@b z-5DG)k@5A?WO@OQL}`v}@vCy`5&rw|hY!tF+%(E}yrQ$9-+7PqWnSB@jz|0X+OBqR zFHP>+335h029YFP!OGAenVNw=4%>~=mX<zCk$s96^O}lNGC*26sY-$vsERt06v9mi zE4&iQN5t;z<?SyRgbEn>B030z>CpFUwlA7X7{|FKrZkCaL<UBKa_o6`Adg9vT1hgZ z-dI=M1F&9zg>my#ZKSeeFPkUq6y#DAW3PDNktI?KKW)MUCq5ox{|ecI_LMfAk0>~f z!Y8%{Keie!_(QY#yVUOi!Aulr<YcMyjHPfM;I2Wz)IA_9{cz~|(Y(sX$gb3ykoAER z4Q`Mo^ZPEB;YXOZ8j2Yf9)sll7n@B8_M(}u#A8F1tjLEW9mZ_roGTkq99ijzC-SHI zBX9GTPXvM$?X2D#T%R^ss6FJ8269K5jv|A#In5{JAELV3@GWhmM+FY`RyF37=+ltU zqAZ$jzMvbtFhM#_rO)?(PcF0>pJ8`DZoKf65*?b2r@tf5O68~CnTH|_0sHp=a;#QA zfiiBY7-1wSV?e*y_u803e#5es<Y=_(HZK1CyhRMex1c?*mlk0@9FZ<!mUH)jgF4ml z_~o11K#^#jqAfQPX}5PKTtEs}rlSeYQLj9~=}<fMw%oPiYoM10E!sU`uR`l0>M7dY zRWPw+*)izrR6|kGZklDdvb*D|h<yYWSdpPak@U71%R_=hx(kqte5%LJ=0ejWYRBEv z>h8HFnrC^-8fKEa+(LUp^rE=Jp-q2kNw@BV<SSy<+r!XtA1XNVeJYMY+#Z(afWi2) z?G1!ijnBsFImW6}5i;Ap*C6<O6LAmt*{fu5b`LOd{5EaOV1p+Z6ZYk#DTu%{VE;;u zy11x$^0c}B<ndXuPGjgv(67UL0PU1=6zk6=`H%;!G4RyIK(;M9rV?f!!E8IL6>X(J z2Xj|_8~f~~_vwe~lM}mMSKqeAu;;vi7rr)6rd=g?9=m<7#}Taws71YeIF;lv0%EFt zX28$*Zhei8(}=a==J7mGYfQJP`O!V#gJCwxwCR#0vW8}*()z^?Qm=jONg7+hiiQVW z_kdVKiAm23?=?jV{i|j$jq9CbuXXb8REyr#>g=0HH6*$I`?{~6l3*~Vm3u(XmILft zl+aT7myxf^t0rM?-t+TyPY(sZFp6RkCe;$(;q1QU8Y$&^Q9T_&?_}C&NVFbY);jO| zJoW`_K(cLE)e4!tO&)V;M{9@;4Stm=j30LA>xlR^MF-)(jkGkn2e2bl16Kw6*pR^$ zrjLf8Xrm^w_khPm5;qfL*xp9qfJnAr`3;I<i5A;HVYp7n3g_??mR8!fJe3iWn&~6N z*9B6boS${H@vUYz*G)N7gH4#m&Xkv`JJg;2lXG--us2Rumjsd~T=`QLYl=p{vVX4s zH4Y3WkKIOM<1(FM>Ojn%)w%HKX1W7GrAztav00<gA&tq=aK$mVl<A1Dv(ek9RKt2? z8HE?tpZ2*oJyLr3?Bj&N!ckkIXLzI^H|#Ku2VWBA<=eg`p<z~5ctF_9DBB<&=}dQd z8R;DK6neaE?`LRgdg8BzuK=oZa20RYH8fsqb9y1vKd{}eXFhsUf7`n$so-N_KYZ&F zjqj~<MuOYLK^FcAO7RhI{*|Zuiq*?y+MxPqK6fkUrET?FONqmEBMJc$M2pQmKzjx4 z3$Xg;@%66HX%mNIBtdeL$LOl@^(`0;*dxj47(tjXH^?MsUo$ig)W1G+p+N&#Ey(e2 zbO3`rJsQ1gq+;+oT<M4_Al9>A$6Yfel(+g-v+dV#MUsYO^4vT}7FG_o3Gc>cm*Au8 z)PmkdG7r*8b5AF)XJ$4Iu2Wf*WTB!fK5g4j0S9um)!Xk3V2$e6$wE?^uW}7I(6d!V z4}5L6!`j{o4jfrzDe|%{3G-U9;x(Bc*ZCR21z}W!PMKCWCa2crDjXaY*<VJkyR8n$ z&3}I;*VvMNo?aWm7*C9OJMmk<*?=L(sH<bjg>`-$16Xp|t0J=*Ak9>^N@>gHb6}X@ zFYctaops^XBCOO~Ef!&(1%NWGCC_bcydzt$I@WbsOqoL)ByCI>5Uec7c@Q$Xv>v&R zIMEX+F6_Id_Nu^|YhIuw4V3ij*e-Be5{d0yyVGFN2*FSG&ymEV>lkawCNs=4#0kU8 z><LJKRt>v@$nEBq*BT?un2qFWJ%*}-00c)b)+1M<K~msp6<-sbNxvf6q{6aR<Y$aB z$EZ*v-HdF%$@9?zQim;gc8|NbXEg5mXyF?49$;CS+NQ!+X4}N<w$cEYH$lw;T~e<r zOFVk8vB{#R8L7o%(j(~?iFbF6v#`g~8r4okPas_o?w=RL^JA+FcgbyLq$C7~HjlF% zok<}F_3&{q%(zhctq!A(mAsU`@ym~CJdT%{+H;KX2f%xPMP>hP7uPJ)%GuI)X!F@5 zees<TEdNHm+NC40FL$0@&n;GmiZv)GnR=aiz1(SuW}@ssN&v2nuNIF{uK!G<yKNVW zvs~2Zbqb;Lm|7cK4K6)WS*<F1QY8WO@xFB_>j++Ynt_mqE&eR1r6>VE?Hb`_r(K8b zngCT3lkDxy4=Oe(Vw&y&c3?pWp@-@L^!*m6O5UP3Q(O))sf){|+MpQBvod3?A;1{K zM~BPhInpWxlGrA{03Eu59i3N<9+ao;(o0%#j@sDQR%z1u$4AX)eFtxQznaWU;I4f5 zQ&ld=;m+V5P;Qc=?zej)SeM-Utn7S44xO8T#EW;jLjIySFGl70OW9SQd%%p_4usLj zw`Knp0E8u0K>_cD;EcPi`)Yy9Mp3ij9x<#L9U<j7XSOLU9jo_%6{6p6zx{w)P8}BG zLQiK`KP@=9!2`D<AXO{=E-!-uHG67__j}zQNaZpQMrARaJ)|{%RRc^T?Y}C^BPtit zl`fAZf^3*HI1~ZSrZOxpJJy1w42&4Lo|PT3SVq2wZ_vWC-ZULKYcn*~k)SjGhST9h zn1IUPOWS<A{?-ZhhD4$!YTggf3`nE4@sOrQN9(kzJOp?C;YZ)>T_tC5<;4}|yKJ@o zp`_dpt)3}dVw!|L5nvSmtvukcO+y|nr7tY#y#HpZxN%Z%Cf(NoCtf~q#T@Q~Tx5&i zoeK!$oASyL9pLj|d3q11os=s@P0`Z}Y?{kRwB*K9a?UMfxX0LYUp8)*miHdXXVFgW z!eNjklh5+akA!Z;$J}XCV6S~a*rnYnrlIsdH=<)!EJk-G^S|wOpzN|~yay0Pw%Qzj zdhz_G6XUjBuo1F7%-L}n=MZn_lQ1ix_F>YsZphM<ery)93^QIps;CG(w*RG1D9l*w zfIHaHe><hr&;i?uFI;LwyxFwVi~W?|i$l8szARTG1@n>PvxX0_Vjx+jqWRBzwQhwH z+dTE3b&jZo9O0~Xl}?Gpd@iq>YDiFpeIFhgXdO<MZquG`^cRYYq&?q{yPF%+;_6ua zxmG^0b8a>1BTl~9Qw9HCFOs>!!E|Xyg8oI3M0zrajWL5Si|+xWxbC!Tl#==rDNf!a zk>?H16+t0@bM;O-@w9D+dQJvQT_XvO$33e3eGy)t=r^*8a`qFTt9qkc{t|7(_&j}l zF8iBhqGk7h$}`T^a!dF<pi_*x!Zq{LdhZ9wTtf|LEGJuIvWhH*oHpkAq*icLh4r(A z6{g3B>g~<O4)r@<_JV#GT)N4_0mom@Aw?o9!z<jqL#-=*<8lk3n(V!3D%)xuj&s*t zHoE(U&RY9DJf>%38+eLca{#%y2+Jly&EUvKWrzLf2ERu)^=5zJXQy<V9&Py6oYNw; z-s~5x45YhhLt+pZZocxmU3a75JRT_OAX^AhDq_0%{UKCBD=TAHC>7yRrW}WQFF333 z0k|{9slupfR7HmZN&nQ}geXg4f%_O+<h+-yXdXu52Z<17nh^Y?o_L}yOdF7o8d|}; z^^z8lA#PGr=aD2EB>5*8+%pg$008YH&ww|Cays3;u%PY*cgksB$Z;B@_aPk5zzEcv zCfrg{RsPeDd3{=~2IGP}ou#yFleQ@A?W2iVJuT64gm`_3gj8pwsnH^>^<LW~8>fVj zF1Z?UHAXi4R>SXe##GuR0<`jl%@YZN5q_R<)id8;OE`0@t%dID9ebCBjZpS7k$8Z; z^+)1?L}*DyX!sU@O4mpvBVy|tS9Y!#h4!zoZGWy&(ADtEsC&R_`1Tn>g_`Rka3f*O z@M@W`+<Wu~Qv&kgB6%StgC3XO{GrlURc6N6HW!Q{+v^r1kb<Ye+ux4Igd^g&I%7cW zcn%1<hwHnCxZNY&2ZKXEl70`u(QP9E@<K!A;RzTG^{W<4f|<9;BKfHciVe?Z+f7+5 zH(~+vc&7mB>mco^#MdqL`O#yt&Mtf5Km8X6i5DOBh=fR(Q+M@!R2Ymlkp@}9kfD0X ze0F9A?pk~ec+c(ua-pY?{nFD#4^!t!xLF)RFJJ$eM@3OfsEQ5RS;fY6pGwd257AAW zq9^ofEE@xRN49=*I<M~mj|A!>2PMiG9{PMC=W`d`mb^w(n}`lLvjA+Y<ZxoAmG3wf z?*ZUuisQA4sTWIHpYRjV{AQ8$tECuHAQzdC(IH!G2*0s08}i2C=gkN9y9pO@_X$H; zJ9>8v0`+(UR(5|^1UpBRj9en4nG&KI2lLK`%V%aQjl1@UXMjmMX6Q#|ULzg5kfN2@ zlSb-3xxH(p-x>+mS#27T>VEj~Q1G+SisQ3gl@=4;pnz&M_M8oXZIi)gtDo=qJ6F85 z${PuE!~uPx5=3Ae)j7k$KHP*{I^Jk8?F@n$#}L5nq)>y4EV{A6Ij~&kdvms0Xwt{o zCw4gB&DrhU6eFw@?B=y556u7#*GVt>_gl#);YVkO9S<cGT|3yM3Y@MbJ(FTC%8rA7 zs3=3*>FTmTX?ChhEL2@vTEMBQyb1gIh{on@-;UHR4I$Hvc*jwxq=l8c6b9dDx4Sz? zd8lgvHXm<LkUueMx<imQCAFWlB$=fidLAg)K%f_uDU}RvOerJ{QY!sCpi%hr^m3JC z#!wMF`A7?oDd`=6_{bk}X?tEXXiqwMg@}G_QK>jTbjElO2uvT*S)qu{i-bpGiPFi> z+N=1z9l8pYY@RnMHi2oj9(Fts5Px0sc`DxCi{!}{j~nZYtID6)G2R=5lgHl=d@kgj zcho34xwsS}u{R);plGmocl<!1ZSu4M^=p2n3}Fc#(8jp_ktp>{e{aAjfZk>*Mg8^2 z>-?;b3Ilf>+j%ld?k(2ythqP7w{PYRlwkwbZD7H``8R<Y(+B$$itK!vTO+#Wbnwd5 zfZxn7`b-G=It~@xAoN(ig12h*!`q$1(g#PzbM9#aQyv?-gZF@ZIlnV>Y%iB%6R}<G zw9Vlbwkbht8tIvqs2r-xwf36C%=7sTA0yq;`gdQx|9<)=(B#27-SiubbD)0s^4nik zy%w+tyY-ku+LH_Nu?77-W7YLy@Q1s5z?!G!O{|EZ>H|RmH%<2nzG!K&#UKm6x6P>N zel;km5^m0U;fsqRFmVe0epfdh^vDaHTZ31gskLxfGUwApTi|$sE98BL$(N1kCQ(c< z1uKf<l}&d{V4h;pKUvJ;_qA|xo<4G(4=-l*Miy&&K{}u5@9A?LJZ~p4^jhANgb<$% zzmL*XX1ucwRuj1v^p%G6mkNnZeH*62>1k~-vwxm?cA!z0qCSb9ozSz*dYep`tr~G& zpm8~U_A;n-{FLvp5nZP_cZf9b0@zO0=<a10n?vg187lI_Bm5RrIo4p&IvIngI$=C@ zz6X%ZQ-e~AxmhR40KYtf4J0joALumJTT;(fo(aVNo<Eg)EiCrI-^z$~#To=lShPOt z)eS%DoDZfHv-(Jc6TyXZrk_kRESs@L=$t!>P<$Q@Qc7*8*ekHBUlY9td~q8E7OfkM zxNAF{@Pyke`pIIq`!l@Tntp=z=_H7_JE?HMFY+z(fCzN)<TK=Us~~<}CyrFeYlL?K zt}%NLxYIITSDW~Vp}%*%d*&g9jeI#*tzv?FU^j3NP*AIH1tENl2qG;dj5{VYDAL|f z>hEhmId${+!Mzz?bV>6=J*r>^rx=1Q2Pt^8TT|mdHTEq;WN}6736e2wCo!pGrIy@1 z?+(8zqL}fA;eM_oLh8ByJwPd$O^{+n78>fo6x+^HFNN6923?wBASKu4BPk%5*}H0= zm4k)`>Kp7)b7DB%^&Oa+X<4mjiZA~7D$m@lSeID1N9Fh)@PItwt@W)*r1IL!fazO% zD1t-q{Px8R#Z-PH@RV5r8-#IjXG{IzLjvo;<&!LbxQqp8Bq^!IkJ(x3_*iaLth&K> z93Jb4&@T@nxV_cFRxu~YfhWJF%|34>ZQM;O5R6LxL70^_D?to@b%b_fEvPE4!mhC~ zV?%T&<$%9POKcArVH;QEOj+m^6`nqki(H=PGsu!qY|I6L$DwKk(%WEMr_r^Cy4E&r zRXC_M1Ihiz%7nrmK(le24=A3=?}URf`;D4Y;3)guIDaHvJ59@e+_4r1Xg5Cps$(t6 z#zf2d9-z0zpvsF(GP?m5XvNiQvFpM^H{w%Usy1#R!IlF=S$HwkHUVm=vGD2LMx=G6 zex;*L(eqrtp@J&abOgWibXK0gSmXIXVkOGLR^^h-#G$q4kcX6047HWOH&Oj(^|1U6 zhsh78kW7taLW!5CwNEdb{t=wuB7`SPv9hJD1)ALlf2bBLG5`E#(#Ql!JEVi+nNe(h zbC)IU>w2A{PwPt`vZtgty^wM%!vXPwwX+L3q>O}E9-(11mRQ0*eL@zYf(7+VzGvgM z^WW|yn1&F$EFGmm9csgrnf7!eRueIj26~Nxhs(s-2U+-IS#s{P<Uc<RJxhv~=pG^> z^f~%a{geUiFouA<(sdm2tDUTr_DO_dt8+V$2~rY!n%!;m7T9r$>ng#}$7-Ov5;}5P z_KYREA5EMv2PkEJ3eA$%>Zj`J<2MrScGZ(`$elBYeP;kCXlPMFZbCdn)69orJ)w+Q zxVyS(pPq8AMt$X*Cm<89@r@si=8KDzXfxm1bL_8(SWQ%etaB54`uT3w3C9UI$py}h z@X?6Mu6vtzV6Ml4)5P+vg^rFi@A6$FmEXcEOIzlX8p9YumsD8#AEpkm*99k$#TKDO zE3PLP>%!jOXidb`?UxV5SAWkrHN|<C=rl%n81lR<ol@LSXXEiX_uLpb%uisSN8oH2 z6CeF0%@4~*C1JY3qteY^s>Boajm5#FWu>RdqED=T5vzJl$AsEUW|vB3eX`hveyu*b zi3vN8^Yn^=-AY@N_T$$t<>UK6v$(}C)?&ePfQIKttlt`j{<&Nik_En_^B$mp(ME{G zl;D>m39aI8+MT%aiMDDC|GOH`QF3>~@b~AHeBy;?I?O3g(0SCTkD==~I$`Wd%<hzM z?o&x-B{rs;>)L8NZ<*v5d7X1CD@8bmH>toIJuMoO-(EnBoz~AUxLrZW*OjcF4JZ62 zgZQ&@vaSaX)fd2&+)wxnc|;k1ZBrNPhDmax+7n2oScV-VM&HF4jWJ`m2MGkepe^6Z zgCbRKqw8kt7papz89y8w!iY7#dLw#q4@k*&Hns$Y9m@vI$$r#kjkAd3zY1OPdl3gM zDK?)xqR>-_3y`es6#QCoUW=f-roJ;MMJ!)uZNs2FQ#!zhKD@M9<YVS$CG#Je^p0PL zz6vD^oW^<T7RiPsM@*ZxYOca}DPsXU7ec_yCb%1-w}U=H*!y8b)qEb)FB6AD*S?2n zj#_?%7TI$U3O29TJDu^q`zU2TUIM*7*7vslj#{)v%7JtYryAEr=5HD0T^-;l#hoK^ zdEV36Hx9=p@BDgX#36Y5Zodrj9~SKM^o%LZM><+RKN$W+yaqKE+df;HH)ti8NlGP+ zBtfg}fS7uRw8DtmM)-d3eQ3S1E>pKKZ&aH;JLsB7{5IR3nPMJ8DXm!qkvcdVg|i#2 z#Qey@sb8V4u+JZLu4V+@YF<<hH={lG1xZZrd`6J#HAurI)}KVZ1|kwGM+PhwR3Yr= z#s??t_Az$gQW_J1D5)t4sp$s~`xHcWa7^X=>ULb`^)kuk<sLnFP>(ITA2ZgRDR;7E z9oKY5MtSg{vqWI1+eU)#TInF4d~qBU?1}mtmSLGERl4WlDO;jx;snw|_%e8WzVxkc zwu*Y!R9)R{!y5YY8$XRbdoyQro6a!Mp}yWaR4_6J*zO~OKz6K}yo44D+ykoblCIAl z%fehJaX!ogo#r@b75sMlZ)euaedg`T!VcmP9a+*>>Aicz$e<wO3u+Ed?o%o2hvls1 zHeAn{1A^|NI*!ydKp03tBN{buKm!enVHQo-L5`owFdxmWvwhCtGL&<jjDC4>t(bWN z?bITacf@fWzyo1tIy$^z6ezDj47Yw7ClGyPlXLL|u5E!-G29r=hq`P()_pf4`pX`h zcm*sYp3h5C+t-W=hF&L}_OVCC_cwAzB(tlkE>k@{KZgHSQ-pNNWR*JnOkPr<7p95+ zq^0`thHe$v4n?FjO{dWdKk$)S&*AuLjD{2>FIYGs{JM95?s?h<Mn^kdt~@W5J6(lR ziUo)=I>EOVJGdlECg+h<F2}yv3mVDCFP)_6>FD@dRoZEh*g0wIvPm)ts~O}g5t7oN z%J1NU!vRy-sc+;l%syZ{BsqtgZ&jRgC10SJN8j)38$Yc`qs)%}v3!fE(Ie4Y8y7Wx zoAhoxq8AHkpAEgWN`T#)fnVAflSDT5Y_6v^Gv<PXB#s|G%J6Attwp-JEZRb!EW*F& zUI1Z9x^aiYVAN8Zj>5<z`x`$>Q5-3tHFXp0>*d;&hRMDfac(t@HLM9Is8M?&CA+UB zIYCcb^Rk1~tTp?gE>Et-lu_udNjUNAm_sAUljF4RFU$9U1|i2rHALbj`mPyu+c9A! z^?DCwUd&mVSynH#Ld$QoQJ6>k38aX8N)cS9$fAeP=xx2e@wUGBHr`cQZS3<#K@xv= z10uG!<$$E4y+j!oBAVD%d!1;!b34H3j$o#IS-FaI)OhLqzBROc%zuP$iM<Ku+FQF- ze{ZJ~(yRJi&TR&`k91b!C_4m!!umcg@0FqEU1+JWP{(Rtye|lY`_L`RUIm#-Mo>b} zg`%){(FW<hD^W7tL46V?Y)G(y1AT*n=n3!WqM41UoRjxfZk%hN0uUDOdTd#QY`cAX zc8z2<DCoenRQ4vxMeR*xMxZF<%TGnwgEhmw%}h};zj!+bPQZc7@MGt+T`u#f$PbXU zJl4pgn(@xjX+c@ei_GTvH7?JA>MDn6LC2KrHEU-3m?K`M7HP(oJ)tH^{<Z1#djMTA zOY>`VL5?@_Ch*eKtVNN->G1iqd0odJ`-cfxF1NswZ|-mQI!T7sXwkA<_8;BZh<YL! zlu?FRwCCY7+yjc{Ts9gb@@f6FRPE#_nd%RVnPB$-Sc>8=uak2`sjY~skA?giNnS<- zKCy$Q)@G27-1B!QcswXt8N-3acu|;ngJkf_4&<qHrSYVRlItCnG3nI=4sFu0M@~-_ zU^~=}Eg{)6w$Cd95_FU3;v`<IPZ;RFD@mF{ev}XMq<gLJ_n@>Rdrd9|N%bRbYe_rG zZ?-V5krw{d84;{TIg`cbH(uy6LL6H00Q5Tix7#!&4RPo_fC@!WGL^Ul`y#e{T>>4W zl0oYl$6)TCw$sz6qTu-mZ@aDvfttmEX=~PV!K1AApI3%^`ti|L=ffxut}`+^m)+gD zR6R!ZPgQKE-=g+WQpZTd4r+nLf_qs^7)UbJn%b)E9|<_ZF?AN5XiEd*mCU{;YJ_ag zgLhE}<+*EPsU#O0aR*<U+?O89xZ;0>=$>6aK9ZuC9TM(|B2hdz(z{AFh|*Yj{t1hf z_Xm-@YQ|dAzFW(C+|Rc!dV@}PFL%xHi9KoJrM|Y@0|H<MtUZg*INLMr;fX7T^}Pd9 zn(nuGMUo=JHsqd+ftS`8w<-&Y#Xfo`D%Yox4;Q6BjHUSC@L0ZGk6aT%M0rL>P&Ied zf1(2U>;-MbCdA{I47NH%-3*T-WKZl0nH~uh(uID}A*8YZSm#{NR~mDq!<5>P+`rbj z;NYeZ!oh^AK9NeIj=sY!Un7cZ!FeQFrni&z1WP&wpTcOQh3h?Fe{%AKdGV7%u}=@x zpvYhrylZ!~z*5C&Od*Odp2~N%4?@qb9HyQ`>72VGTA5;3;$3#*PSrH0V7}yAxTS|^ zO3HrTC5NrJ4b0TCIRi3FY3P!6u_9uA-i|TNzndegq{AuDCSsup9oX^M&b|kzfAbCr z)1yc>r@lt7@b$U}WS^9pe0X9RxEZ!P;=9k=P_0qk^}%#1g^wIdm48(9vWTjcl-0Qw z?&=7bPF>i1r7f&c`ZY_Ui77UF0HP0_s$}5DwX1^lpno1YgjQZaR}HcW4uks|OLLg< z;NE(Ualb0kogf8{?e@dn8P<__dpaBSjn>SSdadUsCC{Ds#Bz*vPjT<S=W3S^f=O4c zavA#63)-!n<d;P75s8qD?XyC*q%D)U7Q3$Pw7aKwpTZo1hBHi!6ew{Tw)Ty)2)&Pg zot_+>C*5XIqiBR~tHv_X;f)wG;>$h2qZ4$gk2ubHP2wa{+0n65e0gdDhjzv0pX3-x zY0t8CZW-rAUfyx6ig)1cIr<L~XMI`C`>-7e6PwPNQ(3qkXsvB-ey&ay881~&o*>+R zZ7SV4YFq0vrt+aC2}=|I>SK=EXvgcUyFIEmh-ULXQH+yHQY+sD*VlKda63<-=G!MW zijM_KxkI=(r4)K%zB9TQ6XP7k1x>8z1lZi5ma=B6#Ps)Q(78ddDCwAAXU1o@ymE8L z2cPo|u+a*uCOB&bnuwQ2^4P^rqB*t*i3mmOnn1p*Yj}}K&F!>zXd*W{<Ew{*--#o7 zQDL-k*%9Y?>r}%+i(lPpOP%q<I`ipRsw`XX1MnyhaTS<R!m^Fr7PUIl(@-@w$G7D` zRL!*gGhO3@BXSg2&OT?u(G(`ZRVL?|@D`XOSfFx_h<rK(ZuLEw5i>dy3$QM|z=*+` zTi>7hA{65Uyh`?p&ma+obD<%kEPKg=YGTB@Uw_&-&elL01RQIsQ6yHB(m_MsTr8wT z=YP6$f1JAWXY)dd8|=rtb8eF+7xjU=(M8;c6d$;)SrO)nX<(w(afIf8@dH%h_%<&> z<qU8u9|BX8o2&=!*c{y`1s1M%d(ye>rNwn2ywr8T1~4*`_6CIVgFHjhgd!s^=ataW zQ$br5x}P7Is$HNq61d+$JYXuR#ICR=*vUPhsXeD7Qvs+FYQ}X=t_eN5nBN3N?+uEz zcQ^?rgd1@8d?$)5RBsu16zK|69{?%UbA>)ueZKZ1S{lZ-d#sn7l8n!Sg-i-W&1d0R zJH(r+-kE|8R=0Aj38Ud$sL(ZMs-7YnMz9XP2Xv=I$B~)4&wTJWSi+A5j^#c6KqX#w zzFY!xf#0#G8|rc|w2$)`Y~in!Rw7w~TdSdug9H5?lTIR6e5DReQM(lWZ_DS;n3MbZ zrPjfDcQikQUpCg8?WH9L6*Z=~bBA!!My^2!4Wa(d(M9{3`)T>wErzErODsDV3ZcFH zhW(O1J%Fzh{2iwYJic%Ln3~Q@F?#S#Br!x`@HNt@1j+TuB5qu?PjT4ANS343CoYDm za4uZZiThw^f}6k?m_dXAU5#kKS!UeTW~#4d2h{!YazRDU#^*YTdOo5jm4T=|{yOcw zZM8bUbzImi!H~aK$wE=C#5Q1iew^Zn?TL=v3z>>=q!BcVIjZx?qh`F1ALW4~wcC;H z4@{1@T#B%c`=(DhX}~1dc6C_SUO)olaIn5^tRpy=NMwGs^!N2!-bE;fW9bXX(#g;4 zNw%dAdYX4d;8yB&C};K^dNkPn9>DOpeF(;!Hqw<RQvZw3bG=)5_M4M|&CGRK-SeAl zLKA|w@k_7FK7c7^kjDsCE@wFAx4@%$DzVIl7x#eNC0XeBmCHIes9z)e5Y8u5Tea9* z5j+h%<y@N7D}Rp5q`zanyE^n6v1jAJ`Fr9X@P59s(8um6@P?~Y#TB3pniE=QMSfN! z^1cT+r8~4DFynnG*JK^(v+drWrb}XlQsXWGTV<eC1V1Uy1X;pXKqMZg3kx1#g|Txu z?#yYZl>8_w;2vOjUZL41{A+o6Ck?zTD_B2#@a|*U{<1&XK)<Qb20H(-iMhv1-MVof zzIegjtS?|PPY1pi0rFR&hw$m7$Udb&_2`2ur-OE?))8;+xKp(#AG9^%&kZWYwk^z2 z8$5`y#7227^?fKtg=5h0yB+=Hlr?V*Z=%e+R|T^K5Lnd0PxB||&m-j=V_=nq7sui4 zWG4k#xkbBP`H!1Tr)n@rb9^@FS`)FUMj6^QVN*dR@3n7gZTa+P_3#sDO-{sor8u`G z6U4*th=1bvxEFVtf78k+nHsMyv`JCVqnha6Yq_Y8nk_pBGiuOR=<kOHbL~z|O-1lM zs~P9d>VQQUp4?3NTqQ@*esHD1?%c?xGK6r}<Jk)R7Gcz=(VVB}Yy#bKqE2BqpAPG# zT!<V_{3M{jDI|Bn_Xi!vgQpQMoh~8ROs5fY!?|6!rw`@i*71D87r2*J=yAMG9$e_M z5N65@gc>86n;>_|-!<1h4LHE0dkR@zS{KPInRzmrP74i<NLk^W36#hd3Ek4E$J^+h z;m<zxq*om4=@;QH-m}`QJz@lneFt88#EVykHU!dS3MMf+nN?R?AW3kJsilwi4WA1$ zVFb4~09=Elqh0_F6O2o5K?~PQA|$@0+Nn&;4aRz*?`{W07&|0+5v97~1GGl!XQO>X z5RP?V)VudH2a`vM2_MSGwCU80lagTY&^DXgYI*g`ekc7!9bg;v0PQ4-6{cIm$Jam4 z5&`vELBgq!%{=-A9r2ahkAk;~=soS~XVUnrut4Wgy3%dyvY3h@gy4>}s|eWJvTNa+ zJR{Y0lzOXO7ka{$i=`<JfZ(C8ngm2F>*m)>Q1XrtOiDAuUG!T*Xg87K2%6|xyOZLX zH*}ms&_zkO>cf)(Dx@JYNoUXz%`Wv#C-0~e5zday?GFmmkCMaMvWsjZy1f18tf)gt zV)-rcm%rSPNfZ`L?IbKLNSEpk=9EKB!)Gz7R^Am?y>S!bpV-cz9nXt|e(Y+9E%%r1 zUtiD;qptmpq#W9`^;#S`2(9Ck6C!|g*f1GE4s$AmUIs@sL>E*!j!(5X0KUrRz_%`h zf*kT9BkuvD%B}A^E(@FrS6Ots0k|4Hl>oQx6Tyxdd8rHLU8F@rzGr$E4mBg)b>&$0 zj2wB)N`})j#^Kham?EO?8=bABAiIUP_L_a()=M3#9cGjBFdVr-EEdHP@3`%Lc~F#B z6Q?D&+9bWI={>+5X!1K7wI|)BMQ{b8kPs!{m$2e|K#L_p4G#N^95TVTk>Z-<wB#-C z<^w1U>>|l8Aqa9|y)0l%3&AV0MtWNRnhcBVdL#F3>dvbhonB?%q8C5RY&T~=&NvbA zk7ppiez!_&lzQi&xx_N2J}s`aaq>$4T?ImJ;U3`DY9qysc<GPGk~|TRZ5{-ZMt8u( zz96{}GD$<gP-E8JPUJKym|EN4UZ9wUxFbl9)<xSRPz%8RzSp;8O_13kg~lfV1Xqq{ z$Na*`VdDq6;Av9*AG&+hnK|)kiy7u3ml%k(@1vJbPNa&~DubqV#M*ORzb(m^s*oBP ztBxzYh-N^uVmfIp@L<VyFt@LH^?Z$xv`!@kuk6c{SicXazWX~ohsA|H4V-?LI${cK z>VENTBpyM7T{M(ELZ#CkyStjgp%s=NC{Lsu{Xwft_0Z{}rV7V$&ioe<mK4~;h;Uud zNUj|(K^aLOpV--|=7hIZi;>8X_C0_!>20Em{F|G*aX|I(nt}zBSxngTenb`9ajC8F zqi3EzDhzR%>n3$bS#WZS+?Uw8$KDE^u##0ln(s9~0j0p%8pjSb+5SBwsp#m+q|_jX z0g}-*|J+)Yt5QKUyH}hyJH-gK+ns%R+n~jPS~AzX2h`uyTX`T#6CV3*;koQXN?_^t zfRne!2P**0BE8@X2R!9FLRKZteeNFHQUk_P<#hOfr5XiaTt9NAmhr5Y*S=npt^Y(m z+2AQr?t6pfY-GJtgzc9nyA8Uu*2qVS&8UdD*jrbzYup9a8e@VtI*z<4x#ZDb^j+B- zI2uVuvPcJ<w!I-%6~uo6N|M^MlhdfdHzDKae!WM5nVtJg?X<#h?&Vc<W?|4THdsN| zI#53v{GOUeU|7U;9r;K+C<fv68Tb3#?QB9~3%^~+cc$R6(O!1tk3@Oz98r7dyYY>o zZ*qA&(%I#-wyR@#MypUOA=T}p_6v0UuW=^eO2-IW48m$h;H7<fMgVH2jhaP>O|*R6 zb?6b@o@~%P32v_~v5ALznwNChSKy|+0c%nm$wbPepDN;K0Y=m?$PKhx;6<x(g+)Ow zhpd{v%>pQFDuz5OX0Bu2<Vn^-MYkh8g?oXh$P{K0>?*!Yv?oQ?euDY2s=l%Iw}qlG zEt~jIY^yYDR#UH=ANvVw7(z4GU>+`ZJ{Pu5>7@9On}KCa=UwFq#;7Fj6?U7?kBn)~ zG)IVg$$7J^zSo(Na?4>sa*GRO%hlwOgz^aqgnV(A@-cn7aIm=v=LN3b<P{H1lPCst zAF-kJcg^3#q4P4eA>wp4Xu&U%rw<4pIjlWndIR5|I61H6Oz1=Mz<?pHY;B(3hFr}Z zfpb5vWb@iIn(pS==J-4SME3yw0~aIZS0~27Hs5xuY#tXB4B9Ifw^4cvr^*wi5J^7? zB$kvOcD6j%Pn?|Q_B&V>D}V5equn7nV#6&I$@H4|;P_DqfHZlmdUx8Ac@6&MD_{n^ zih=GV0L7t=#)EmRTnY|H36Tcf#T2dwWW%NH`w>@GWkW@;>?ShlyD@U5aGL>0@zOb$ z)kPprkuYlS!4|*rA<xGtKW3{PvW7HD$yOpTGi6W1Aum|PPi1C~V2VmTAWKnnTPjK0 zfa3$=MkxI+TFZWXas3T=uy3`{Ek9lzb3;<$oZY+gCdP$T6a;sEGf?@IkmXB7Z7}0c zQky~fN+wd&aaj7qap%e^2Y3?v6YmP7zy`{AqQA{FzQRX(7hx*LiyA$$&<ijBUG;_+ zzn|Bl4(Z|wARy}(KC#|2(Vp&B$;~!vboRdwx$2^<4D=`oshh_y<8j#)sU#j{iA{C{ zXJL+=gC47`fgajcza(7HkaxzKH{)?P9Y_f5ewK3~g2S|t%?q!tlwSd28t=vJq`hwz zH}fA|CH;^-v+j2FE+?Sb|H<}ys$)apgX5F5d9A95ANrRKAGoQrz~TckHGCFZ5AaLf zvHa=ee&P0U{Di)-$9psDu;bmV&G4vnNXOuC&)3Kdw*A8xXppHa9pj!_25SXqnvMR9 z3W()%T+Wu^KXdO}j@EAsyx4?6L((|BBiwH-C$Bl!QhqKismo+P8`>6SrE!dQ-T^*D zio!KlM?b5Z^l+4dEnmIRA9@<5!^oV#44`$wcFZ7}Ji*!y=Wa7AH?h4cqu)B!<jCr- z2{-@%yb0VY2s()Nw70$bKwl2FW}3zecVz~K8m*fzgag|J71u=(q072PvgSkc@}3rC z>+qy30oDnB{);|vQ9_ScTSlAy3{+xI3<B5b6{ghaVppWGbJ+lT-Ege>bvUdK6AV+N z+s;LG47d}fgsi1L6`ga(rsbjD5szNDGfH{6VwEOIF9|l}Pu1YmmP?KL)|gC_dcGrd zQu!L*pJ3<%WDrVJupA3;ZPqmbg8i${)G+)#5v9E&LF}(-cQGGAc61_%?}$N3-jJT% zmv9CS-{3FXbv=%A<pYE92)U0$LKq3-m9}$fSJpdkftvkuY@3;%97lzC<dZ5&v!}l6 zTzZFlLnw^f8m50et2L$HJF${+&t0b@rt_;`ze>@r{`tdtJZWInm5!}^#*eKRwX$*W z+lH{Owq$@z%>FXS`inWgi0C!}v1(RksS<ceo^RoLdu{3K7((UbRiGA4J=+X+3%h4* zR#Nt=co<i`D2asf)B2`o5sb~88|?tPQ`rv)nRX8;26(s!r(LSx`S6$L<|*(nBxB52 z85{y_X(QUDYlx$Lw`3*W2C`6o$Ffo#nc)@vId|CSyCQSRCE0kQkVtxQ`k`|MIrIE= zTBQV2(@F^RjR*Oz210*Q*}`UtT4cBN$Bn)7#VKfno&O}pM0Q;TmW$?m=Ao&~deK<< zs8`fT`Al+CU(p~A3Ec9`GZ@@4%zLQVjW&(gihrhuhbUqVIyO$067&cy#!-P~5ier= z(AV4Ey|k5u4^-BQMS*^RgEB`~>7EflRs<h-1{EK|kS1H62e6hF0{$xzsuB`xMrPuw zeWNpk%?V8d#pn;Hq&$K_Oc(XW&V7YMW-&UwN`nM1TmfO>yZ(O3=Lf9`Be&!TGFmvt zn$BSN&oRyk3$xn05)0`&LMM8Q(0r;9I(gO!os#z;GC_v}5J}4%+>7qAx;GRdY8uc1 zp)m~(BD@mco-VF1HVJ)P(61&m{)#qBQ@Tb2^vt&-3GA9XL@}QLuI`_wR7`!wWL;G5 z_YK+4Mhikmh;NQwMs`wX+W>i~IfCxSl(ySN);f4MPgD?J2ptLv&*II;Ia99XI4&qJ zjXz1lG`kJ42yI9YwK_F7Sw4z8r(HV17l*I?icg#srF1L#&!9-WATO?t_h8HA1d0eu zSv9TeO^5Ddzxor`3A+r4w<rV3D_;lHDick6;PGYL3E3-Po&LN&v=#HCsXVmk#H}*^ z2-mv*qdU<jdX5<>C)Gp#-7kE285G9O6Pg(-CH<<BHf7KQ^(02R+NnHOR_mv=`zDf{ zqa7hdJ8B5hIhAD`!RkJ_R<`|p2M1$w$X7j^w5?{cw4^`*ucWa9JA04*yEE8ZT5fwW z9n`^VOjv8259ONp3%XpffVeOadt(X}Fbu8ZIBi4lj^8)|y2SZNrI-rR;NVmLN#B$^ zYXhy>d3-wC7(CxCF3Z1Fz5A`EhCRDVhX3+Vw0d`qBmCXoV=tx7rCkp?=QV?9n^DWs z&LV!>73aZpa^T?CGr{*-;ffU$QkAC8*D?11EiaqKWtc>iSMI6pV?CO-J9-&WOnCSX zvTk!iV1wEqlTQ9tim3%y!5-H#88E{-HEr*4c7S$uc&KJ1uknU#0c@UqeKX#Pe47r= zL*O;r)ElrYBGU`}y@J-jWvFxcQ5Qo3qc?7;(wO&v{$V#zfh<dDNmh#3Z-A4^C2BFV zXTr(0B`nTuv@EcLTlfZo;))uZ+@Q{{o`S6c=IMw0bbJ!(u1MfuZi0R-)4SW(G%-vb zg~tf?2laMJ#*JbFos3bcU2=W_?BtWKnpC|@6@ZJ$G7vmw^RH&yo2^v*W~B}<GayIS zZP3bsH_a!^WpU1sLOTfpcp>akvicC|QP4CgXqEoHZQ_d0-yJL@KMw3Ve9JO%p```1 zo8;dUoPQ#A4`|jL=D0whwZ`se35~lLJUH5FAOHC<uvfF^Y6MCLc+-~9>oafyS@*pM zM6V)8t8TU93dBi%Wy-Cs3|}dbP}2sYX}kb9d5)l!Lh4w12$i*`-~Ha2;I^o(?s{Kg zzn<x{_F#d)_S?rYoF{Q1+i52Tr9b-j6!gfjjlIs0vR)ou+TkVqLdReE3!6!X-KYs- zHj=t7225a;x$T6Am(yHz&z=jkLO<&SF1%y{dFDqs)=$vq6*~U9ILuD7(9>}Km~S1w z7$Sm+Y_5Fwt8ODjt*+x!>Ox<9S!@HIkSKdM=0hhwj_%<+_G%?D11sMcB2#0j{8h?t z1`q=};X|^<X(_Dnt!eJf>^I8!JWv)ij={!3F|;P@g`#>-;Q%BvJg7@M%CZRl`OWyj zm!H`d4b5@t^Ry(n{@d@dTGpqjD!SJar}YbinK$na8ih%4*GWVSzm-}80N7$#8K){9 z<AL@XPU%v=cyvH6(QmDHd!099OH@-h<=r9i=csM0BUMOHGG3eS*IL`l>-x&Y<!@3` zaL1EUwUfh$>wTMoy@%}A)yD9cw=q92EYLE{B_k~S>UXNa$t(+r?PI!Chn0Ip*(Fq! zpQM2BqvK9vj;e`6>*k1|1k@=N%k+V`HM7reW<>fgFs*4H-!jbi=?Bf_s<^%R9EbX+ zr0=yD(4qvRi=2t?^VzK4E(oF!m3JeGJku@jagc>{YQVufU*lnS;`-g6sA;R;UDIKj zelj_WeL}eUe*xk^9ltu+&m4ckX$F7vO-4Lfbj;-H`$!%9X9@oR+CJv9_q_iA0$h{- z0ER8zY8HS1v+2w^&UKws{{Tv?+Kr<XD{-cJVCveh^r$8ARl^<4t*Fj8{{V#6A<y9r zRvsjkq+;6SN1x;IynepXR;vDgftx%x_OJ0;AMA}5-JxVr_SuXVS92*RD4*-k1bqDm zanEY`($?wH=HN#oC(VPkv5{T>0LK3S7fa&59%`2pTunT1H`yU+uRhm=PnYGF19Fz! zz<@sWd7hl=E~Qb>f%+VOTFJdl(zS{8eOB`9+S$!<B)0bBYDUgTL<czfR_2j5+horJ zZhn=^T>kR%=;Zy<2j(lO(cMH5v+ZDTc{m(YK`88ta&mWN$wBh>HbHM%m%{!tpTRyR zw!Mi`bm=X$g@Q_*)Zl~u2NfLCEa135FYwnfs?YwPf!RPmUcc70ZqDX%)oOjUWv*#D zrjrfrqiNDx+#r!zEw7&$?boR2aC(DY$MJ^Z2>d%^3$?gczJvw2ouOVKob_INcKV(L zd~^Fe_|`+G-)L7i%^XmHJ-?l+J)~#}!+<bB<b&J4TKfM0;_Kb6o2H9py508m+-*t+ z1MK%5ckz#5$v7Peu8MC-zak>77LPBL?~y#qc`w8q;jC^}`Y-$CvVRKpFWHWGP42Mm zJQKFmS1D*<laTy4@Ay}NUfrW!e5q|M+VixA)9!))0MJc)ckJVLG=}~;TKN9<1lxWW za`M38$KD+Es*aB5JT;m}&E7A#Tb~tb*BcO*xRLU08M?9Wo@#Fjp_5W|3P0o4=;dwM z2m%*5=DGcL?m2afwl5JS$-$C9e@;Itz2SMnUlN8UK1|#ObJjK;>*cE3k-sDC>0d)= zwXhkN<|n8wb5-Rw!y5w}44j|-zw1%TtWfXjM`KlqZ<$w)`NeoCd7kTJ+tJySj&KwW z-Tsu(EK9r)<2^RMIrkowTg!AAQ-C^iP~p{&B#iTsS|-ybT9&@lp~CV<u6?O~(;iRC zd*hm@5sMSJXB|4`ra)D|DmeA3lf8uPZ4Qr4*q#p6<xo_$-K;s!s?6B`0LLo~<7gvx zHy)gJ{{ZXPOJ!}l;eNM1&<bmsYUezR+u#2Hg>vW>qeWuCZsd$H1K4C$y^+Y9yw{)T zg%SYha7iNsHGZ%D&d`fLg8mkdB}&-Eo!ySbugS*2WE~E8=D%9L4C&VzKf@0X*j+0} zb8TrHGb5fus)b;E@+;^v<$h-SA3K`K+9>?N{{VuF!jXQ`+U4RnQ$4M#5C$?tO1aPc z2Nm-A-3$!i=da7x@vo&nZ|kWwAKDXK^CVEQY>7)Bx&&*-=32gPTQx$GO(HUI0weHG zr%o%<Z9Dq@r-du%kD{&ZTkPP-cCSzY&MLHpRz(>+`typ|7Zb$>#?z&^0geoj$-z7f z0fV1>)-;Y0L7F!h@8vK*%D#R{UqkO<C4Eo3{{Y~f7e%~1<4b&!t8;B22OZVH{{YZM zab7m?j)f1z?;2gpZ9C02v2yZm(nRW9xjZoI*S&6k!8vtU=a<Je$tW&T%214@TOYp! z;Qs)?e>$o0GA%YQivBZ6q|?&iU+-Zx<-{&`My-;F2+j!Pbr`Q-4!y|f{c3m^>w8Hw z&R$IiO)OG9E!h76dAvEF<Y`WgYQQXdG>08__-8-+H+qU|y*Q~JewGOw?!UawJ!+}F zuv}t&Dc7MU`uFv(MJ3sN%<<j3nn|NZ`P-z+fIsL~U;ZkbG-g8{G`Yxb%i(CpfA^~) z?kwbPE;QBXa4v67J^EFMWz(c$%|4REbBAm4dixJ*dM@8{A=uR#ETM8NZgbRU!tsCc zR6ds~pZNz}V?5)-5r6SjMn}^T4i1P39d_T7)~ju>Wn7IM4|uf({c0aCm)y-3h1o1F zOOR}DuufS20Kzp0ANm*asHD@bf*fi0!1clK+yHd{0Dt*aNg~ty+yv2>oDu$sf7YUw z&dyj~MT1DssMD{=2kZT5H6Jg;S7nJUFTPRsJM48kygO_%J^pIvyiIkeX?jMXc(ymE z?AGrtB=G&JqY$L>**F;-oE&q(=~G<CWXRHepGqSb&-PvMBzheG0G=z%J~Zpr{vGhG z%Etznmlt5c8;c9583x~(gUE0Q1Y?7ON7jhOGj>USAlp85@dl%Jtm=2S_aZf(>Q<Ii zR0;Dj$-o~d8R>urrE~YIl|~$lk@?lPxSZQ4b8bd)<r2dK)NTNrk7~x%wODLyE{cBU zWK0ytD&4r}y?c^zQPW~mA<(rCJjSj|e&cf-aguxfRqVeFt!J0Pw$USQ@)^_udE2<) zkJpOuzYacbjzRe$P{fRb*NXZJ!1E=Zi(?w_1b%F+P6FhU$^5vl7ZlW}tM@-b;Dp{| zFYrIkB_D|v#%&D(kCreP{RlYx^IkKlu@=j~I~h)Y9&6}(n?LQl3z*SChFopP<dM)< zfa>eznNuL+BQ>5AX(QF+oIJVc;yN_f-LaP)!J21~_Bi^Q`iJ2+#64HWx^2{I+N_th zrA(=1r`TK#qyxOP+gq0p$00`1p4IXVxD#cPFE&C;Z*BtqHRzuN!(90K+BTLu%tb3a z52u^eZ<OG9Lzd?UIT*n?Jr6|RG<H8JZtBeYCKIoOcPZjRFgQA9kU#cnRsP=$(X3u0 zR|9ENr)fO@0OQrlTG=F!fSNU#<DdAVB>w>8l=rfXxF<%m-P4Z+IR60JmCUW!n`m`6 z179%7`@a#X`@iw$q<$a8SiT{H##)>ZX!;EL-L|`|PPTSUePyQkSt?#kn6l#$EQ|_* zat1jdRSQoJORH)z+DD~XLhf_sPvIqsHSS4flmI`-=D8hH#8&?R2|habe(zTnvguY( zGYRxdF=g{f8=-%fB$Xs}BxCq_Ai1e3QmF{->RlBX)r=<Wn>`=m*X)1c-y3N$>lzI9 z9t?YU++E8I(q7tJl?teUe9s)bKH_jPyzXWuzCrQN!)+tN3R^?hXYniAGOnvKS@|&9 zw1D|a33ewYIXU(nGBfT!8Gb*uy{xRh9`SU8?TI8eEpK`}*<lM9Rg}WP7?Kb0f<VRq z4WBd8j+Ga~{YKW}<jt(=G0QZD>q(AT1iNsGE*e0}K2`0(B;(h`z{;(7u4lE+rp+nP zpxmJyU6+#cJYsHcrT+kFO>b#1pR>XoF-92&u_v5YITIP>OafW5wbW^|#{^zPd)abv z9_^$bt$Oi3b4JY>6=eBYm2f`qdgN~Z0DW~cft6;+KHaNpRl9q1#Brsm=uwyEK7=-T z{3|VEESWufQ+9g_PUmItZ(ozc-Z`>yJl5+tYj$g9j5*veqcVJ>=G&5M?(dCPu*s%r z!eoL(8isLkZ1br907sl><mGz(?!!IEug+~UX0pGA<y3Bs!;QluAom8o@%WA6t6g71 z@Xn(Plubc}%p0#h%J^$?!w2}A4fjtS&r05(!7q^uW^h`q;8j9he#Xazy8i%6vp&K> z^QYs|zJmRit(93yz+#QBZT6yEdGWB`yrJ|t=xgSS%c7d3iiTvl##y0^M{(cp#rGv1 z>t9Iz%SJI8OAxjB@1h&+6soZjNB5BZ*7X%_@91Mmd+7NuRJmo;WCmsjJwDVIx2I~* z&}L~boOz6K1F=4K{@{P?)rYCvxzwEQVT@<yjCLNiqv4B&n*RK5Ia^RZVh>qk^skh} zKXLjWWkFs?K`)tujoVInVO6FKqX!*&)K?b>tF^O}{o_>Syk1y1#&ewU{&=qmUgx^e zXoeZ#PVah!q;0_M>JJqf-J_<`FgsA7Ho)0Makw!ZMo8n=q5P{$8L?hQ^9M!B;+!TZ z**N6mkw^k>V8CN;N%x_aH&Kpp>G)NvbtT;GY%YQLO|C);<@K#O{qnG0kNuvxRVRW5 z6lbk#!!V1%MHCbEi|}#VDH;C&<F$y}fEemH>04UqFY9xT`pLfk0HH7#*g?Q2gPQ$$ z@Kxl}ctXbJMP|8{5hE)cWr@kp=U<Vq*v|1=%lB2~FsR5UaKSu(z=uBd`sd+9ap8Lt zCeXqlK3<>5SJGu`NngnM+|l2c=6*bW*BZ>eBKZFR<C!KZme#th#keZC;T*0#&&$@l zgHE+N=ZGvVB$1+qdD1MX#?Z_LN9UUE{{U#~(RcB`$BVlFc#BXV0sjC`GGej*5!faF z0K~ll5{s~0d51sj0^j>BcQllnM~OXMk63AD`G&!{h{F@l;q}jdN~n@tnfZ4B`nO+N z?QXmYE}Jvk>oQBE-$dj|YjX)%SJ<l%LF67qb9cH}TeetbGsngy+E+Y!8t|nFZhhP* z7TQ~%S%1MhZrph9#W1|7x%BmLt@oG-21xcBhvqA#_^Q{Ed|&Z{!F72IUulR1isluM zh!Z#tG7fn@<l?vw*b{ZP#yw4Og_A>>PCx6lxvuBp&xS?+0LCv6&E&MAe=0)Fr3;ae z3h>#_ZvNHkVb$QSc-e*d^f{-B?8rl2-w;j#{?N5rO}9@O&BgmJamKA`KRznq@S%l< zEgRVX0Kz+w{OVz&%rTo6C)>jce>|G>Q(x0OOB4*3A+om`ngDa3?b}h){sZk#7q?17 z3(Mhw)x1e;G5HUrUR^TiFUw^<cYhCsqaXV<Mz*)nmfdA^2+2S3PC!4KQ*Y1l0<5~6 z%-=Qr;K0GpiDCZ$;%cMnjvc|io2Ev5On~#B_I<xf+u42p06cF-21s23(0Y2e6&5u; znMkj}ApFBgvS0n1@uB&CVX2aJ2X;HP7sqYhD_jnr>{ThR$CfjxZ6lyQD?ib3T_=&N z$remHpE%)cEI|Hs1;iS&6%8J!JN(gDD9^1eeE#q_>+9w6l$}O1ocyQ75`XbE;a{{d z7oXTst;$alywW$9slD&aHU&R08*!8P^V+_Wx{FoL;M%U-oaSo*{&}ww{i8ISyN?Um zY8MT6B$iY8d#)~Rq*O=y-z;4J00MQ$u9_bj=Dm#N<b2zG2gq`dAlr;H00-yK^RF`T zP0GtKOfoX5Rz~H3&T;NCE7F$fFJ#>l2?tHfw;w`4C;Xb^JWHl|+O&d88683Z9d@dZ za!DOBJ-Dv?T241Wor>NZu#r*~#`c(jj2!MhzMhrudKRDdt4QI058VxefNoPgJB{P{ zSCn`+NQP;mEj_Bk)8~;SPzc60=bofvk?wnY2AikI_Cncp+5DimP%d@_P&fl&2lF-a zIEs;*P>!}gU*PN=Tr6s0YewAKCDz~Nf1aI=uIg(|4@V7oBz8h2%A|!<f;)TWzFgE^ zDP@uOf~?G{G1ml->6-V8yFDvIK5W{pfRv4<Stdn%f4p+WzIO2q&9Zoc?%F%3M(cw# za_%8{7&vp>U?0z#RBCe1Ya`R+RVuhhHnxAK^p0yzk*;L&WGrJ}yaB-{)AX*}Mx5!l zR(G+WkihF8jE2Jj)k#thBOs974P<KZX}1}_x0Wk=px$Kg&3otlp~)F#Aw~}*oUzZ; zbLl?^{0Aq+j}+Kw7IVR9B?4=!>A^AD!=7YdIb+x=@=iNsk5Zki`SkTa5{hz{ELNwl zX|{IvHmM>(X7R`a0=iDD!G~f9errkeYkVUMD>fsL4uPujN7d`8(LNkl=^hJb(mYcB zB5g854b)dxS9)xgs0jgDB$7@+R$KrE2YeE66IRlhh&R?GbQ#yR7SH}WUVJACy244L zY)%%o7F?C0(=>cBsK?<5bs19L3wODT<|(IK+HL^<0Mm9P<9G1-^Iti9UhxF_&bK<5 zL&XWo7a(Ilczz`3J^OKr^}mQZ#kIDD=2*{a^Lc@D1?}AKqpp8^HjYB_Ip(|{#23x2 zJd(fe<~a|v4!trvdRMhdSE0&zR<&MZlhbtbq;6|bl7Ek>`X5T!i^Vrl#8J{W;~z5f zim{~lGUHsZzn043Wx2Cx@n&LwG1Z6O3;|q>9;ADER!!75dS%Ii{@zHXUQBbL4bRt_ z<b(ElBcfjR=Xvm#;M5-wz9U*`S93juypfx`;}FD=C~c-S&qpMI$inh)cHsSG;y>A| z;fII3IP%4zn~Cj^B3#LRKbbceEI@s{oSqa9YVn`h`^0)Z*Tg%WM$2?habU2?48@DA zoU^x~2X7cYybAQciF(BEWa2Bfl10as7nVHoHs_u?f%O9-yYLaEI(*e5?>6^2ajtag za#NOy+aEUgm%u(6X<9Pck@DD;m(M`Je|P;}KQWr~ZCk_ldL)e2vy1yd$t;^)2e{|+ z9-XVzJX@}<%rMKk30WAc6eKoJK)`@{4!*hIR|_TP=?QG^&#yuBqY*}ec8-BYbsD^# z&Rr+-mvm$1Kf{{(XT$pJ`j^AshnCFKOFVCT49JnJge+^cD<gFQO7J<yO8Mtm(JcbU zJ*2@Va0?=20DJL{E8Dz1;8{E$Vd1FmZ=t>t{i^K8EM+5w%y2Fh!OFKFZ#;2~SCwZQ zr{(#bsoiL4+z~wDH7HYe?vr`)nEwFNDGxC}`v$(G{g`C)t>P^0BMZeO%O1%A4HpmU z+zxw;SIYB9#`1P^_n1dFo(9r;EWmg4kXO_{v&QRv8Xe0ZBI6!h&A6{C^6vg2#|P4# z_qjAx>O}b$SVfOgy2w@7dN#m+UTVjKl*~1!VmAv#JdO|V;;w>!5L?ZtO>eDOol@Dh z$LAq2T*kOhxi;1Zg$e_!s08f*^I94Yge*m#tu~9PjY==FqC68t<XpnWSWZf0hEhWS zQJa7_1S|!7wjvG1^7cN*4>cJsZ8iBAa@#kSc;siTQj!hPVDp3Dq0Myf;mhEq8V6Z8 z`^%0o$LK{=mq5AOw-JUv?Wq30=N0Dr3bwy1`;SrL@bB%fy&U+qZg!|Fc<2u_$l+yX z+`upy$XePyAG%n;c`f75LnXp5=aW&#ptOz^Z*=g?Kj-=%{wl3ft8az<%*I%(H~jpM z-ik4wGC~Vr@H%#@F~Rd^8ON^`df&p=K6e*-Qj$O(W~*$uJao*Jp$~*^t_JVz4HOg4 zI@Or}0NS;F#;vrA`-~nh5B%%zMT@v3w(ur{AS5i>hN6sDj#fK9Kk@VV)-fe<*Z%;o zUXiKzHvT__UL1k0w8xq~S5tO)^-ESwtrdU(IFo5PR>;mkBRI$>oVECWsoo*kd!s4a zosw&INKfZ4`NbTQy{t;BO{UbAzGZI>>F=%T)>>V=IBT1wTYbzzhh_>spU;l{EA@jw zm&@?=qMy1U8799qJ{){M)pXw-_;z-mN|3>M6~Pc{_LH#);mF#Ou{<f@4A<!$jDkH9 z1yDdS4hZ(Ir^{2cuDgDx&*l=0oNVrXD*S7?v%dI|;%mr?OC`>$bs;K7a?-iZKBlGk z6Kb+}`U|E~iEjjs8IN;>9-rT=pNT1NHPn}pLL#1d%e0(~lahGOKT6X0Gc$i{U(5GZ zZ8j1I0GC74{sUUKrO!Gr=dBp`XYB99&xTqz#ElY59ZJ^TSyfx?_Yz0F;3uh5*9QYQ zBey~U9}av*_zypZb$P8}-D!0hB-_f{<6v{OqkLqp2LyxAgMtVjqU?ug&VLi1&bVKR zpARkkccU1JqF=xZTTH`@o~YmKpI*lY)E=qQja7EFCku+59V0Cdkbh*Tbq@;sb+fj- zh3)0Kw77-05OOwe1Rmg+$4d0?jQYfOKNg<d-YA-D6qE@yDJ}E+*@ku?=ciw4<h0w{ z&jWbA+U4SCH7!0y1J7OFSSnPh1o4naIKlVgwmfk*ukjb+E}N)m_SY*1_Ij*>8Da_M zi5!uaAMFq4j%%4ilANO*?t0U!?b>Y=ZZEABxx28&M?c!Pjr}Syd8f!Wne?)H{Mv={ ze@gT#4~L#8)GZ6ob$e%Y5S4@NFtEt`ps<evJ^elE>^}*7K_Vc1Q&Ns>eEV*fVD-TX z&mi{Cu&#yA)jz=Fbf)%4n3k}ZHs;aXf7i|FBlD;v{>=;kk4PiF7XABuE7hOi?}&+H z8kOr0R@9hh--N1{9|b%^<tsJ)$ZUWY`(oh#0O&FF_oeT7{lV;HmD)VmwTVLBPLjlR z{{V@7`yc+jRS9BA0@qAz=cbExbNbh)TYMST;FEpL%$G22JVoLglw;}1iNBRgFTxv- zyb|(1m+zkwTtDa_U*}cJF01e%!d;IhmOCS~jXuG>Nbvo^{%urdiraWArrUGQM~0<8 z&8yev_&+1Uit}8oz1g*!hEwZ-v}3<|%e?qKXal#Mb{q~r;$<`c0EIUP+wcWWcF^)W zxDk+%rp7mCk>QSiSFbnt!=_tY_y<}SvCCm<kq7f)(Brqu1{)N(e1Ofhf8bU0UH8GQ zKg-%=kdk@dJgxr#v;8Z^KWX0rY2FU_N2y+*w)4EmqYix2Atm$j=0XX;Kf_lVc4^r! zlO@xc^4Ehr8?1P*Shmu1Ejr^<)FwGgYe<U_G67?cx}zg3a0gS0weic~kBPn+-szT} zEz-`NE!1s1C~i_n<N)I!qZK4z@tll~n}&Y6{{Vt`Sv{|Y{84>#A{kp&F&Aip$P`Bw z6tEw4cQFI8W<AY)5&KDe9??EE{5tyvqVQYla5|kn?fGbCbG1S5wax+c;Nu`y1}`>o zpRwilI=|QYx$RNQ9ZCwUTjqN&)6V|@FSz_>xbXF??ybF)uRt3B{c1I}lH3)JNRB%d zWBKKq`Bu-5bUTj^YS;RG-JG^}HnY9E2Eb%>BrwS7$ozTqt|Dzh<~Prn91cEUKbY%H zsLNX(RBKhD+NUQUM`NInU94LgWJti}5->sh#YF<zPH`#;l$@%`^JkAhG5HV1u)nsX zWC4hF>yz4|`&XRIWj<&pC3-G>`+j+=R_I|VxoX|n)_u0jL{i=)VS~s3C$~L2V~&+3 zfq$!be){U?M!J^G?xXVMPytC-IRL5af&u<jiDWLW##grh@)UlVtvIc&k}L~>3CGO9 z0=f3e=A4vg9$764gxn;h4H`XD;qS*SL&7#!tEgGrUg{Tj4K2m=Zc9p~Kmm(3azA<h z0Db!mce+oHlf;(iP)$nq(PnncHy$NhZH?S2GUNfCIXri-oZ;Ow;#uI8fcwQkC-tvg z_ywjmsj1yVEb`l0TnF;xjyT&g$K{p-da(Plj)Ofbl9nDAc{$V4{XefW)T@fEm{U}% zYT~Y+T@~#7t@<4ojjq#D@SdWhS6QSHd7EYNLfnShLu1R@H=mb*p18$$KBS&hre(;D zxHa~Ad^CqsSF@8+yLe_(6Df||ZdMp0A|Z~o^G}I>8Q*9&n$u5nZ+4no{zb==9Ke0@ zo4#~iyyJ)3-1Ojq?$T<`GIqJ(PA)F&uke3Y8h?tWM!Yug+}a)vr1mP#tTC5RazNd| z^*@iM>$ch-h}9QW{?61ydD-^Q63Z^k^~Pi4@UIEe;B6yOu+$Rc$QIM9`K!r58#%@f zM_$$S^7uLnw2tB}Qu;__P~p;40fsUTLi$#6gwuB)FSOY3i+>I2o(t7Kwsc)W(hn#* zNoX}Aagl;BpSn}rj!ElP^{*Arso!GZjF8NuIPLB|Fl*a<LEv_e!<y1t-rmnFwv!}r zNb4rzP~d#a!Ot9E``6A6<@A^?KJ&sragKJkbM2gdb<>8EvrNjhE>@d0Z*4!ct)_}^ zE@I$1-0c170FD^<>({MuTHcOqTLpk)&fN3<cs1+a2PV?*ynm!y>w$l=BxXrLP2d6u z9Alnw*w@k8cfh}d+Qz*yY4-M0%PB&?ZVZK;n;TO*dEgEQbNF)O>-#xH*}J0f)ZCLt z#vc!S33KBeW)#>~&N4U36F*P^@7J7+XV$)u@y>$=kD%M#{{U(&ywE^O+6!RYk@hZI zl0<*IIUECzRIg$2&WYg<hN2xV+rf|xR#=itYp*wSXuI)}paZxSIP}lw;GRFzFLe!e zSszkEGTThpmO^GMOgM13#?kWw+vWniwO^T}wr6j%c6T^yZL&`*9ntwqoc-expI`au z3H-%<L-03!w}q|UBSe$U45-p(EECxFTnvwD`EN$GXxOVELlNEkp_YrEzMiOZ0bbd! zs=f%Jhr<@TmNv|zB~DO`u;b8Uw{Dfa?wK^A)kK-{rQC46^xwSw_E##vfzWr&YWRLB zAx%-3l3oB82S4)CGyN+*>etWIobAqWoc$|vPqN!>bg7@3HBrGo#54S>!K#~!KAwx! zdj6$pH%Z2FdF0hOBR*LeB%EWM{#CyYmclt2Wy-G|2+!qFJ)mubM&4dV2~&^d^{+eG z-1Yg@>|rl4<D7erbInB(d2T*JPCM4yS)l>JT!bg5QS_!qU?xH&Wdw1?HxF(ps!wA% zR4PLg$s<Xyup3V0JPg&_XqDBMxZvm3rj|8=;5wCDFm(s!<0rN-eL7>>t_x2uIbH3X zf(CMX;<{r>+nnyD&7D$tBJc)-1e?F(?(S@#?v;T+&!_Ik<y`9B$#u0QndC^<WMGqo zQc1uahUR1SC)T=O5=O&8@a$y>L1yygd)!K={{ThTJsqP);k&oZmS5{v?3-pVoul{u zZ0!CKTS<NKJ3)ji$i8u6ia^LzEZO$J<a%bmNHr_?bgvEh^AM58ZM?I#214|&&M$+_ zIryibh;Af;LnMkC5thM?@-gT}LH5mlfqYJqJAa1$BVbG-JtpMu2PJU{<b6M-d)Oa# zGWi|`IrCIU;~u-FJo{q~<yR+YKdvjY_%Wn5HLb)a5URJQ-|Of*=i0F^Emf`@0Kn&| z85Pv{5#1)dfmOFWer9&$<R1S3_ti|ajflfTn-K>4pSFy{B=PCjtwSVHzA`b4<%g|F zCNY!99sNJU@u-XQ(~-`9&-3YBiS|5LtDa@?PvFI;jpCB_+hw+{sfD=YEP!-b0PDsE z;m97K0bf1a-D<xM_4KvXp)g#=+stp#)HVSJq2r+(aB<SU%XxX{gZ_Wd_*XmP&kAW? zG1J=5Rkarpa#hrUBxLtS?0-Yt5y7V(eR`d6sNl~rwfNcLeI6Ljui^_0GD51rUfjoS zSaFh}-=9K#b6WHM&^`gN`#MeI9StOr7FF{#OLW|g%CO9X<;OYbdsmyMhvoQ9<2!3j zcFNyY(Qg=~mY`wW4myr=vB!1JI&ww{_bXij#%SV_-rmwnX%lo!3Mt&BLjpMGJ$OBZ zPqvypIM1D4$2AY_1K<{vhVkcx_GIm0t3VI_jQ;>QscybFcn%h2e;Vj2<dt0NQH-!1 zI{Vj2CV_7s4Q_%Akjt=Ola4<h{<T%S(B0JxcI&jZ)48^=UNTPyCyoahIOJ3I((G%Y z#@>F=Uk_Fczl}6xbq6c<z;niU03418<29Wp$Ik*yX?H9hBZlVQ6((t{<C<{*IT>QH zFdU9E+*f&XqM;%+9#Vmmw0HDBtyO&{8+eI`go|!RO}zG_+s|S9tnxd*+CRXnd>Stm z>K7=v4Fc&GEREB;+T{KRy=S+_e+W%7%)TYRM4cJpj%_O80ooXq8?C|f2#v^(?>F#+ zkzS#BqhA}LD_@AMLo+lnK%t22GD-gcIjVPdDIWPsvGYeEvCkaw^z}W3N~<sG{{ZG; zB`IHD!1HGK!{OVAgRRcBC~{Zl@b&mTJwD7h_vuuB;cfVKSz15%owG9VWbp2wG5-LN z2SZ+id2T$lJSZ7syo~c$*B0AXCQ%saoDApF-l^7?^?&m-<(2n7fA}R0_rn(PW{0-- z`z7@jy0N>S+E@hfyhrbEP<Jnupn@@z=s`Y-@l)cYdKbda5$bwty~XC9H0zj-cQ(bl zi~0P+o_VUD6eXI{!Z){LHgZIP0oZu;&$ci>D*5l@cDbqDX*!mRqsMBtmv+!w-FfUx z*p5LWh|c^4`?(AW;QZX;zIPXbsamf(NvFT+eJ%?$r-sA2O|;T>_14Fj{CM%FhP;3A zPgL<AhZY&2)WmmE!Eq6ac;_fQ<spa7^Y1wwbDHA(IiYw`TkDIBY+PC<Ji!Xu8Pxv( zcx(=Y9CMtJ^y0C#M7+|TJAF>eda?&du8@LI^eRs{<EY}RTH0wh{{Sp6Et8+U7<0Gs zuU?Y&aZv5t`AYNl)g?Bp+rEco;=cfR9_L4v^TYC75HaO_rf6+uY-4`tyvYwk#yb8L z=C+;`jYj!eS;Cx=7fgO!_O08W58K9@Nk3-;ab*BE<<R%*Rp!&@jxaRYBMpMerY(k5 z_v{Gu931{Nysa*V3r)m9b>%9<YTH+UT&#bg#WXe7{IroG$4~)(<yY){J>rYBRyJ`) zryn~KLC;USn(w?9;kYfNf?J57)U{V(<Ri+aG(6<_XBj+XWd0)*IJU21lTS;Sz6khX ztN6j<yn9=e(ev}%Dxygs<A~MR1DubWpy#O=uYI$(xA2+puAgV&%h;l_YmJC*qG={W z8*Vur%Q7+To&{>zYE5jgtc@DYAkG`6?(6l>9=$m2RP~#=C-DZHqC;*H8NAzuAbBy9 z8#`q5`D0;|(;~R1QNri1f~D<hsHbbEtMq-kcRG9D9bago-fMph>X$ca>d6M5darP< z7;Pa@c;}qw9Ac{cb(i8V#2*LWKDj=jWuZ^9?rSYx`seI{h8P4{va!DGU@=q48Rofb z-xPQeb-grM>ap2saLllz(ZeRmGI5C|*h3~yEs}A+9GcDjsXP$cKA+(`y=L)rm6|(* zmMdwNOU038EQ;WApe%>w+y-}lbQ)5VsaBUXt!I05d-`Ag3DZucDm3vNl=;(*lWSP* zcW-*nv+~jIeBV8(c&Au6L-TAr<C^+|;ZKe=PZM}f!dPuIyXLir?DsphQykmZfLbwb z!Ey$A{{V%2m8kBPX=936p5G)ZJCIy^jGxq+@4f+R7g`sIZ=i@1Z*yvM5Ih%F8(ZAq zu>5P$t6evEqvxQUU5}_`)wT967evzn7Wqr-ZTK90lD=xcW&Yd05+cQIG_I0EAKe2d zfxzk8fzWYY@YfeoMZ0T8PbVXcSBdzyOMN568jYN)+oGJ}MGSscIT`obMr(W(PI<IO zDLzC~@J!F6c)H37%e*3V5zQInB=B;0$JV}}_<c5@ejs>tWs`lV)Sx4Bu6U7p5PA`j z$gi7xJ9w6Nuv}hPwaP&%%BcB4AOsz|x$BH~udY5Hd|~hxj66@_%S7;X{*$ZCeQ)I$ z3~dZD2?6<-GO=EO<$nq>>ygE&cNQ8=^JsM6v>m(Z{xR_6wzsl1wavQBt0a3^A<0m@ z0y^jC$;%w{82Rhsp0#bD`0T?yuEu*^tEfIqaTaLEMjv+#vyw(f(3<)$<MQd2{xpXA z@@co*#1hipCkU?0gN%$G++gRL`M=_gk?{rGizKJ#g(Sj!*y9~L_Rm`IAr}^!ea}I= znOY}?uP$wk%z@!dlO4*iE{+dT>)d)CLE!WBAHo=?w(xzbUI?SP^Ie<E7)Cqa3<qrR zaqnIq@J~y+FkabemhzX=u-12txr3qVfOI&(KklBuSGV|QTC>wMS<LbTOMf|7%DsB> zMtg<_1J=7zym^M2a!mP{g=_a+y>LnAwRGB4W#N)o!R1rsBaY{q=f>eYw+Oq)0|0VZ zdj1vD={lrR*)-T>Qz(ds9ONqz`d6D#U21yJZs@TDZ7eLT3NR!UBN=Z`<@wVjvQ}(i zqhZ|+J*!lfl~It9#^6ZDdSu9>cHrD#s8Lv`qoz`Kz067Mkj$=Jxch*SjQStT`Bf2Q zkX#<2KKJWe(+81RiBuUFByJ>n_Q&f~{>Z65=Ox%5mCiCf#yB5^4n9MS{K|_QQ!2?D zGXj2Wa-$jJzDG*C1WR)gwiqUI2wV!BfI$H=Jy`XniP~b#=5CF+P;xO^t+q0Edfeaf zZGt|B;U-op(rFAnzv<U?%!nC)M$2OZC#kNp#PhV;PlaLwb6e@mhaGvkxNrTMx$Jqs z<bWH1Pkx!IOG7m5bYBIb^8PXSZvda)$ft161}6vk{+0IM#*2m@2|Q(&+Q&$|Ku@WK zfc|yy-|Y9MNq_Nf(&%z5lg-*jcW!v$Kl(R0_OGlyJYF(<B=H*WDrALX^*=O<zt+7f z4$zV1*H@~K%zKLl^N3yx9ANeQ>$K4HKkREnOOxc?Uc|Gm8=P~sex-hIaDA(w@aKaL zuddrgCfBx8=1;Y-c7h29zdQ{3p0(BZ)5B29c`l=K^Q3`x#17w>5sVz<eMhA&FJqsX z(vp%}AEt%Mfd2q_N6H(VeL7`-l}99`{HLyVfKCp5J&(AhGsied7%n7lDqwMsW7n-$ zk#~Ho#4#@e5!|RHdUxWxl02xOmQ$aU=Z^emu>E-UJk>d;<eU@ict7W-=6xx*Qinq1 z?JT>v>z0hS{)Dwc`uFE&QUL{+eSdg=&*5DWNYSg5d`qTjo+;8UG@Vj5pHH|0b1B2b zLHT7v+0^nqh7Saa#`sNnsOeX_pM-UmGu_w~p4Q~C32_7R9Z!6po32LUzr(}z8{oM` z`Bard^xIYMu0*z$`rHTpCO#j_KGBw%$&Mul{mkzKo&kEx5l+jU9awp|%FOg;SRhnZ z3i2>37<n*X1E)Nb+~+;=YBoag$Q2!O**_r|?0=SPTH4HAT0?gY)J+VbWk*=qw*$|1 z`qbl0ATW`}(m>7+UY@__HRtmq*19>Dv=133KP0YBN`gS^)Edg3!YSEELdw7~J1|c| zGoE|baUO>aipeZsiCM!EsrRx+wt9}IILWB4{5Ku+k;wg5IXgoZ`W$iC@#sA%-4k=p z?`-Vt9pt$3(<}gKa0YqDUiFi6WfPtwQU^nvWAXYL^gFF0A$#Qcmob*c-LO7C7AjXf zeiaqZfhC+_E@wd50hlKq<Zbr-YTHEUd0p0)XE<ca=OfVn0EJ=d7HoyE+eqx{eq+eM z{71hP?2-I9+aYN$CMc?Yc^Gkyr#ovh>*2g|x11%yk_29FEC)=H#xweH?^5K6cRqgC z^i;pGnmfR<#N(8Z;|JLG!031*uNkip@yEiOZEVRTcUShrbY+xChp@;wJqKL=Ccfdk z_&Vi40Yc#MjB~~S^y4+oYCiyPuTv_Wv;MRUgZR|*+f>MuFS+oqj{Xp6J|ytPlzN<D zF058NXztX0^PassE;IiC0%PxA7;3sr&4#gcZw~9IA(fG4QP>hP4|@G;)W2j;73x~z zHQoFX=&8Au2sin=nRb?EW;g_6<xl`19<^d0*l)tINpA$2bZ;|{yBm%^gZ1O3VCQWT zA<^d4{FAcPF5sQ5=SOu5k-TRjy_@0h!GYsH3q`MgYwUIeGz3Q)M}}ZkS>G(c1te`B zdxCnO(%UcC>%jUz1b9jd$rXP5kgMbKAIiRT{iuEb_<}DKX>s^3z`E2LV_Er9#ii-; zv}RrINj_TRp&flH{i}+-i=~HkCCc81%6=s9my0z0PD>aqb)8bi9fCWUET!_FDi0W3 z95Ev~IUwSz>DG6acXsf}1oro=RZ(0R+b4n79=+@K3*o1MPLuHa!*&;Xbe8g2X_nUV zB(acKtVkOm;|D5utNPc0yf-TU0Ho<Q(}&3_(Jo2GNav5t^{Z8!)~rtt$n<B%e*?c~ zuM}!pH20depDgV*9^N?9%_^k*;#VW)$T{eCo=!OGb&uKN`qNvwxxdrpiq=a3ZRN;- z<1R^Jj5+8(FRgu-;N3?_@cx>*b-Ym9TgKoolAvcQFi84f1J3{s)hCWF;Mepy^vi9N z$u``U<v;`+emsxPvgd{D_bNQ`_&nF&q4|}se#`M`@M@QFd_=m_ptTv4O&CRt?aGF8 zC{-MeaokkW_?O}T0L5)1!yXHo_Vzc;q*r3<(hFFnSYnq1N#-+ok29d)7GT5^-o2~# zqxe0oYrYA#j>E(4ezupQ=38rMH~D}gsTfh8;`YW#9Dr-(tAB-lA@NL~*_QtR4P;pc zVmAwCIAtzKF2tNJG8h4X3Me3{WieT~$}P&){=Cm;0fwb2ReAS%EwuC2-+}D!`!Re! ziXS9s7Uzzoot=KIocedIO*7#C0EDy+vgz6`pJ_4z719Cb9QG`EKc8y#4-EVx)wG=x zOpjDaTJOk;Cz@s?NZ~+c0li2kfGbh{9BL`J8+fwEYJfk^I2|jYO6c(=PR*mr<nU#k z&<e<>8NnQ9@~@PCXe86T6Y&AiU0iBcm$3=uh6tB1sW??9a0i9X2*?Fba8K2r82m+R z@SjL&ujjUpQ@8~!EZE`ZY~wiVuw)i)!_<%u#J_3Od_}L^YS$KW>YAO!z@B@EVsAB0 zKvER$Qj3KgsN(}T;<|9tl{xc8oVDW_M$#zwsqefrEd|D#HI3EfxSBZbiU&y9a*kC= z#(IFj91wAWE9p;yUJZidQ1FL~Y~+yHiJ-cWV}MnL@%S(!@UI)xJQw00i@q=OqBlD2 z;fWetMj|Re#?86F+5pZE=1qN(@U!8zr{Rx>+E$f!2k)(8Ws_<Gs7teBr)=Qky%?I3 ztuK3_6kwpVInRz7JRU#sv{&)O^V&dxQ_YKvkh$RF`@hP$Sv)H&V|lV^i;unB@s3YE zn6GQQ@S?nU`zkYIJG`9d^!ip*o(O53Ry$D5*<+6c_vi<?HO8UT=(}1Y!fo`eQ%Ug+ zh1>auNrpmaf)&F8aB@K^9~(d*k@B+)9MiQ~>@*Jp-&p8@t>d-1GDGI=B?Ha80m;Y! zs+^L05yg7#?w1CWJ4V*i!#+M^8gY(2YZF`WzLTlKW1LInJWUf68+T-r$-xBf!N~;i zfyGn)Tb8c1vEz{Gmi{5On^V!@SgxT`ZtNF@kDg?Ve{-fs@cl81+IF6T+G$!nrKMfV zjIMUD$o#td)RtZxzwj@KW|B5|2z~I(INUk?I}z`LUWaAj8&4PM7kZYLac8BNW{qzm zy`5l&HY+C5uH0d;-!CL>ZrC-2NZu^(r#nd=c()N<Ge(Z;7mh{+BgZw(!ByCiAOm}H zT#u*VE4v>I*pf!Q;myS7<<(;6-#Mt?;oO2njO)4#fxo+`$A$XWDvkGNWahdYG|d!C zmt;}EQcrpy0GHZM))--&WOe*`0M}h}@abmxTUXH}9-nPfkH;R=tKe`QLDlq#(2%>$ z)<F8<Nvh@7ayi#Sl8zXH{J<P=3srQoSg!oUI79c8^UtWR!sEeFh*6WodP`>^k})$C zJP<Ns$Mfk+AA~IALelt;Ooaacb<*UM?ZhN!@vG#ym$r)Pj9(D%7k04%RbjP<7(F*2 zfBl}a77~G&<YzhUUC)R-Ed}lJT*a?xqS>H=HFDBrw#2AOK)b-o9#{;54|<J!52krY zM~w7Fe3OqN`|v#5Q5fh;sTFNazuBtYzu{tCFdKlikG6UHR1N%;{{WF+M|^FM`$OU0 zp>4}F(nJ6p^mT9jl-H1a6wve!4fu-IOJ5P&YdWpmn0sqmY0yC$qmo0&i@Tk?U>~nF z?|Q$FEPNkvV|8^2xbtpS-C^DooP(3dJpd=C<6Usl5@!`zUROR^@cxjxR8zYyB$c-E zISN1hf2Cr4N4Zm_qceq$IYYL1;|GuBUZL@0#IX36#yW-lx;!w+uq<wKw`v7FIO+-f zYrsA$>r8FqwpQBA3!g%L{{UK=Pnt=b)mnEyQe!NU+oSJRc^c+Wz>FaE^yn(1-Lo%D zPQm5@hasdpWA*KmNj%}phABHp%CdQTe|+3+ia+*8C6AyrmwA1KX?)OG*`zY4;I;yn zQOC*w+P<XMu9K7gzpv}e^P;V}E}=Lf&~mschdJW{G0*+|KZa|c)HOsxUq350NXKK6 ze@O`ZJ*jVX1z7OPKvls&c>`_={XoM10KCoVT-E*Io<?RnfzM8z@<+EWe=6&QY+DlY z@trpkbCoCX;Qs(2P15yN(=XQHRb<-4G;T7kxWg&-Ad&PnR^m<HE^(4U{$I>z@vO~5 zRJGIKl6$L&tzqh9m4b!#=7}q&nK#u~_Fseg#8F!69va^BjV;8sPa(@oX(!DVPj*wf zHuPj7y#%nHOmmRDfN{4x;PZldf0JJ__+!QPwi>pLu17pqR<_OMOv-nw*~sBpvH=In zl%o!K4<YSePC*(kDG-G+eoz+-bDi9Nb@TOO$txbTCCrl$sGU`_fx#P;h8*|LKAch+ zV}Z)aB7)rf&5Vz1p4B4|(txTrs3&nxUqkqRoYSNwqi-#MVm?+QaL;Z#)=uRzn`-)e zVlvm(pt#C0l}6#mBiE?>#X8qfg8J229V2NF6C22`S0ka?#C}H}^>1-iCBAHP!v6qD zr9G4~N~jEr^ZATSt^mrFz~{Kn%g}YeI5b=c{{XZt?(dle-Mibu3d({-B*~G0N45`o zu_C3)#vKfDILdBNN*s3};F0zJ02+0Tg|?pumuqg8=uS$+xZH7!pHqN2H6$>+acpPY zcQM>E(<Fh(C#D8-`E;V;agi#bw%HnCyMe*kjtCg{2d+<At#f}2B#9E@L^%0Y)<+#r zqMz~ytzX>Rj{|RRd8FLs`VhYKoyM7%bxV7IyQ8~O<f;>AFe-Xyl;Wsq=H5L?nPt>u zBz3s7n`zEFl*i-Nx*t9_k)jL?fMlk5$2d6agM-htDU}j6cXdT14CjoKfHUq$6#Ycp zx)C%Yc~Smg7mm2kIqCQh@@iRr;rR>y0JEOH)cOq|)s&{SidfF*a-@PlLCGi6@h6(X z)HKU`!y-v#cy=b{3nV!TbAyff?0+NPx|5!H=eHFF(g%T~X`Kt7yfM24haEa{2e0GJ zJC5x0{afK(o#bdO*HMOOq*()RLZz1kalKA52N|jSJKzg#1z5{tcXK?F2Qr66jx*}2 z(=k!UW9h|r`<u8>eK&UR+LfFqEJBQdl6#&7OG)m7nXaaNy|9fGEu^vW-IpV;`$nWo zAY<BNDo7yZvytw4=B^RA5O~j_q(oTNQ4v)XVL;#k?N4oo&nKzi{{XaCz&{XtV$v-w zH2q>YJc8f3o>LOGam$rP+%l?m?ZF^)>s%B+v#-XF5-qeIA@QBHjh(wId3tWQdm_rp zNep9=2wWYw2+9B$80tQ+R+Q{_Sdawy&UX-hhy%wQb^ibkW=R%MN|3-D9CKPJwV{-k zGr95~#ShrW#C|{V4X(2uso~VrZQ&4!ZlIO^UT^}A0Lfwiz{w}6Ic2x(C9LWe(XO-c z4&hgiHrmeI`A)dOT&Y8hamYRWO?`rSrj4?40U6^sAn<AXNm|K?!Y)^Po;C32_Gs|0 z!i!UHq(Dr!G8K95W!~+8#C9FBa0l|p>|em}T3&>RCd-8@ow!wzMn*sc@}T>CzWnyP zzH%@?#&>o#1<Wryt{qk&t+)gw_hc0zv&JxZ!OtBr%=10&X{N~>b<e}7E{cN`SSONm z_;&XGRe^W#xxaEFww^h^j(b*!E^vE0XVay6tTQa}hg0eZ&Tv7&AAtl@`_ok<iE8JJ zP2dxyyvF**ThPif>u<RGa-#(OdFHvDQ^PjeeYM20Sxs+lfEG)eQ4z*E@&|nO^y}8X zjXh}{7DQxa46HCi41zuDPi@@`l=yGO{tAy-)17Xu)i;t-NV#Nek6d%ugI+_dXfx>^ z7u78$Pu>gbQV#3}Q5^XockN%M`i6~Vt3)HawT9pWxlEC(Z9Ry{HHR<5e+piWmp&cR z<d7VaZ4hq9ew{h}YdVrsRz*^7o4NUnA!y=63QjmDztWg3-4FZ3^%eSUAHpvM#~UE< z#+b;*aSv{-llaqH;P-*ZBmNOhC316>wN*cuAEjf;bvo_zKQoLi3u6R<&poMu%!3Pz z4tdTo`B&+x{2%aAu|M#PX|JAscmsbvl>Y$uRGtg_J462f2)2{uw_o%`&*zNOu)VjD z`H|$xs9AUnPB1vg`qQJf44}C#NB58U75Zy!@SDMwi?Tlp=^=T*Ybe<MWM}oJKf*r* zgSq@IrMExDYOFsjbp1Ngak$lf==|2#tlrw@)maMewvCqqu^AcntY=n6?s9t9>Uj8X z;V_7w@Qi5es=HJ*ghvC@mFZOOJ{0&qaN;ixX)r%RVY7{Jap(Z1k|*0f$LA-*UlCgP zZ^u@5*AhCx8cKHs-PH&mt$UA)UKU*{Eq?d@5!?HsB!b%U{LRW#ur071hhbLo&Sdr# z?mi~{n>5X6ESi1P8a?E0j}^ogKx``6;07IfWaooi&y4;FSZUfUx7zH}-o2%?+kD1n zws1yD<2h1r22bAFGI#(s?H)zc&zqiH%=wR6m^{-Q@XUGS57xXd;yj*quQ)1SVuj<k z1N>{+^_SYs&vJ8KEWRDq{v&wa_ek*di(l#?USkN6Q{_?yeqskxTToYL4Q(_(QZIEK zyNfVikbU6Mub0>X{{SrG>HgDW=~!2qfp<CF3lZ~R2FV{UupoWa&J=Qas`od>AOOk~ zJhv-`J@br%&)#pC_5+H>ytyloGn4Y;9=ws){{S7yB>n386$KV~@snfkuZy3Q;X4!^ zyJPb>`jb=)h4MpS^&X$+kH{LUHOA-boPv2Hk?Wu4e*skWeR9`C(`UW7m1B+sE=!ya z2Y<&Opz3PdERV#R<-UbuB-6+vRa46zantkZ_^I}<js83QUext{Q|wVnZLCI5m!4Rh z_4LT+Bc?_VQf+)+`1NtEYHt;k1ItiCi5oi)sU1so=b+E7bK_QDXx6T7?{21@$p%TD z-8{)3Ey4f@$tP$4p1r{4yy~@F-J`eWc0!zE8_DW>_w3c;-BQNaP>)iyeMd+v$nS9| zC+7KOiFy7sW+e7IPg7r`p9#EA{kP$J6l<8LxwT_!b1;x*a;y8d7|1)&EA`F@?Oy|U zA`LoUhdvwBbePiK(s&vf?c;Lh-sUrwM`PAQ8^bFOfX#uxuUYtW;<?f}Ee*pXqemn- zbDhe5UAX5sIW3+9Yw28aik_ybT)H1@`Hn~hLygBSK2Qg5uTl9Pohi}CX6FnL^dw-P z!>F$#@R!BOquFn(Ig&LwYk<3?+sWi{oMdu2!06d5Jucez+E_*8HxU~~0(YL+uGzRC zlfmEsry%6ub{z7`E;=)0)Ru+WLPjzWEUx(gHqGyj<aOYFL#JwzC{hqmF=lMD7H^q} z@BVsl1!OFC=4lb+ODn6D^O8O4WK>c!@|=uhf=C<}#(Elk+>^uw%CwCWOsG;c8}LX` z)N_VC_{TZmRNa+hSpCwWvBw?FBzQomNhh}Q3Hp1~GS0Tq6LT^wc?cR@43a{CPfkg| z^~e-NS1a>*+qW=w#zsy+;B*<s;4_oW3`3gg*(HiLo-s7Qv}wEpCNYu+d;&T5sU7wL zax!oNvtVcI?^Pt4J82!sbR-6MeC+@O&pZLgIQGx2MH;l%C(O2ADP+Vh!<G3ka1Tzb zGsjXfj!0Fnsd71%WiA{HF+xG^56n6G5%^Sr*gB~p$<B6+V0O<xhq?5qCym+|m|Zox z#{Od%_U&aK!o`8()QlcDB9w{0v_mR}w=t0H&4R6wjiYZl$;sR?fx*eady>geiSlsU zLlK8uat~3T^WUZ_P2YFrJpDMPhHdSh6SowZBphdP9RdFU8dnX(j!`*BRXYeLE~Qu> zp&1?e`%^9%y!&h*C|u=<<QyDvkLoc>t00lMR#M#M$sl9t`cq`MR=tKDj6*9r$OczG zhq3R)09a<)2|2*$fs;XPyz|etX{hD*h5&MLgOW$DN<7h*z;Bn^srL1zAQ=E)6OJ%Q z6yvz4!wuYIk;lD5=byAl43YV26?TujAHGg~*NlHU49yj}XZ`Go03jD(cK-lpC%Hbq zjUkf&6++-B#sD0CRbC{tvR%=naICB{$e;!%rbzYvzV#f^3$(U<iU#oHN;8alW2xt_ zLD#hpeyeg&g1b<i#k%zSqrXwlY>!h(q}|xlYeZU>Hg|}uuNX$$%AjG!2*JoF86fe4 zkU7RdcIDi0jok?qTH4tx;f@&EM~XGrzHF^4ek{b2eaSSCmsN=;W&1;^a*FxJ2*?Kt zN`gSn2T`81#97HB<{%!FGwmzEAf8C=^`?`$K5|A!IsX6(?44CqTVM3&X`!V^OL3PL zcXzD-h2ZWf#fpUB4rxoF#fukBTii7`q{ZDexEJ>zkxqX9d7g)PoVDgY+?AJ`td(=_ zIcM+v-Jfrjr#A<`5cMlBLz#iT%`pyt=3qU18*`Aak#;%qS|z7DR&8G{D5nehqWYqr znsa7f%};EgK3m+)wpZ>GVWoU@{H^v;eNDHKmHLI+?GlBSgLizW%rRNJU}eRFrNAeN zgT)+aw6-13l9X&0Q#^B_yq85kGDC@e25hR7?b>ndsCoq|73E&Wgv2vmdvhyLk`HWF zibBUGe?)F9>NQ?e2$|?BahSyG?RyaF{CJY1=slNN$JDEr|5J_azcS<%dwj>|%c7r3 z7wp0F_DYry`PM4?B5GIKRb_W@=O(okwKatXdYO~HYN~z*|1YjJ;(T$#PfL&46`T$Z zdR_^fcJ@yW@wtHtsu!PvmH-r@jU?BLv1i|Oc;(3qw1sYc`6XK7X}*luwR0N8=QHPv zuowSk$^9Hl31Vsq|0E{fUk>=Ys5xCYy%vX{eSvJU+eZaZMDz*d;jL|_*d>)dMhWWh z4*>#y49}hy^YgV-|M|^?E3+y%6;1K{8W+2NtNKVrrHCW;NxSH1z+EUWr(-Ob9+Ag+ zfA`~Fy!S1Jmw4Bcz}>sw?i-{ZH*kaJ972Cc<A3CQ@I8pdIqPgj3lZoId7QLQye4pX zuKxwUK|}Fw6Q95?6Es@jP5e-s?|2Qm9`};~vTA^Pv-V3APO?Mbfz?g)TTfPU_L4_` zi};9!XV*#J3w`e<Fj#ZoA3w}7A^a9Et~LL|$-y2sOM7sFr{3bhoWTGCS8~8Rgj&df zzwG09-5h8Yu!?DnBr702Bu1b+ZOL=`3QeeMBcJQScFj*3Ztp$%<6D7W<>8ZjCwyp_ zqO+Bt*X=aA{y{|{{<E-iCi@R^((T?5s$;u^^|>gE*ALkXN1FxFS`q5_@%i3}2GaeS z-a1}$v7#Y!k?t*)rCjwUg}Gd`=QPFQx?ju7RAGuA%enqqd9vKO;;(|J@=DGgwt17@ z;1EkWnDj~}Twj}GUZd!X{J{@TB60&dW3hy*;TA1d8@+Y07u6e0!r?$V39?9wgs3U& zsblwdGf9$wEG_ZZ`dMtBjMh#@U-TnnWH*B>#p5e0SpO~jkLUaS|1l^3?|%Qki{O9m z5B{@&fAHYp!w0zQAt4dr!-tP>pC1uFdPGD-OicWckc5PUhy?eU=zl-<-*W^+4<9@v z`oF&Zzvuh^BcAVsBBa0nPoD1=C~eoFz*jarQAA+54S@*v-|t!#N%|~4QtCQv5b$z5 zmwg-C(7TC>Y&##hk`Dln)JjwXcpc24TfiUql0OTqMyOU1ep3WWZ-9Iv9u)`4BO#US zWb{Igvr$;Z&D9fYOQ+S6-g2X<nG>hm1MK^w%LJwc?ZPgwXHiqqn0I+YZ7na7&qeJF z8h(Trz3yW0DJcd^Q?!-pv6DeGcMbI;M@MCad<j#XKtBt?S)PY7rHy*sh}iLpwvQ|# zpVm2+q=VyUwntr#V@&}kbA_$&KgjVvD+enW$@2zi;><yM5G)r5>?DfM6R)$<G2i}D zsC!X{&|a>DuP;nn=2_<-JYRZqvr<&yb^3?1BH!fG{`Lke{YX<`syf?;?JWAQ#86Du zRpi#+=QCRBqqb~pyY1e=Z*+)84i<nX$5<@{m2=^Kj|FBDb*+z9av*zZ_PbiZ!rWs= z2Ove*e7}V;lp6phv+OF-Sx~**iE0)IimoX7n?_VH1o8F~LYMrBqY;S3pYn4diDT@^ z>@B|wOLnDtV>lYWq9IPtT^Kx#u$f!ZTu#5eLRBnHO!{o3to~j76_3-WX9#5!zCR6c zzc`|e=BP`#wPPRi83E1P1oWPv+ojG%Q@-WLfPF>O=`X3(E;=&{dQwD3?kn#3Mr}5F zuwTk@)%X25iJHwcYMJP$r-8o*7{qw7s1!{x^B67jsO8hdw5P9!LXKv&HubG}23Jh6 z=^K_!v-SK3MN_O@2BIiNGQ}lo6P7PH8^Ngx0T9%95{%%ls_*5BcE&G3&WEbL-%m5S z<Epb=A3~KCqxYiUymoxq#q9rNX8g}u1;d4Umce9UBvR#<ImZRQlF?aeWqvjgrZckF zeszn3rr#wb<^SxT%_)a-Twc|Rf!FJ2u6TvO<pON2KIDiEwy&WtB%{_V9$&70ZQv!S zAYF0o5qs&)h?DiT``mpF@+&BitUn<TQ@Y=pvnI=A#}x096PaA@9QJ&Q<!)*;z)p0u zQ&&)fZM}JGu1Gztpn!WD1H8MC5jEOt8t7dFgCzFy&~6FSV>jH^vz4p0qX|wWiqj)h z=M}9(EHm?r9~h@9f+v4fS~BJ8N?rib6m!NMGym`$IiiD`UoN^B^pNTfe03_?1Zw1Y z7}anFaGYhLT&jIGAKkKV*BBPal}wpTf#8HVZrc~5$#TgudWmJtB>-s`#WMwlfm3+b z7+HWAS?ynb3BB7wee#srPp-j;#C&6VrMAqkGbL1;v_D69I*(w*v-tkm>g>@KPX4YX z3Js@e#(EQSA_xshC$=qz=B=lEjBnO8x(6$*&q=89pg|rtF!9`)6tMkRA1iZ+RsAVz z-w8_q(EJRa{ndsn{j(+|ce}^q!KQWvA>QNnW18Gwo4>Vll<6Bc9fLP?#6b$e7FnMr z{>*$}tx=?&yUNdFhvqN=ejZuM)J!fMo}_sa((MK<2+}Sd9I;;X9@)uu&*Qgj$0>Pl z=I;`8FnJYe!JiPNU(uaOY#~ze3@xkmqd86>fjdb|XR(q^mrPgCWmWDaN-b?r)=<mG zNg1wWBd$ADZ!PAW-yA<Pe$rV=vDmIbC0Ej6js+MBx#<e-jUHX?U<94Ef{`UCgM#wJ zQXAeU(Oa0J<AefrCzS3Y;Mw<sb9zgjXXYNXOLK8!>t$SZaRoJk{EutW6Nq(xN-RhS zipkQ*r<&y_Y&%4VvHH7&oMxsh`CbYq)uCKgy#6zt{Y&;ZY|@Vlt-<}(JvI`*{U<P8 z+2St<;>KES7RA+?lA1g;>R}a>dD}1tsE18uxZ&uk^qr|+A3!S1XyhFBf3|-;aS&n` zBX5fyEHG0J(+_I^&TWkBVH}BI#=`s!aOSaMpRq-y*)!5O(XYk7!SW|$A;zv%i-0Z$ zr>tFTIXMS}jB%8o($$4M1L4A@8XQ)iHu>rqsHVhg$XJq}29|Kt^4T&YMaj?otzut= zr>sG8eKNM=5(mN4b&fZ*y0G-!+grG0)zU_J?Trs@k5COzCElJ@dnT#u=}8|g<S(^k zjVK3*(t0X<-}0fpP{kCaG$bg@dI7e{tG~Zt_Z6A9+&kfuY#qkxC5H3|3>=x{FfOYi zFRrlVKv<9af!cEA5k&XEaL*6Z=HvKvIgWJTnF@_ezHE=GKPv2f!|adH+)dd>r2)H5 z16A42KHWAX-izn7sx7xxW^m8riU@Vxs(Xki_|2O>!aJa`e6(H0P!S*NURoA{Gtcqf zLqQgcRNIFqmIxAo0!fsuA8(CGpo<r}q;&m<`<0rB*~#O?x22C+CXY#c&h6Dhm)2@z zu8OR0f;s{7Ts5_sug$&;KII<E)qb}uc``t9K(}}<R|347(>+)EnuR=pO@ata#Y+SG z6}oex5{WLUanO}hJwaO3%h@r#)_1?DWBDk<_g#1R=USm=%^!cMdD1^{(#_FzGm>Vo z9(*ZjIil>b^bq+fNtceU;E2b(RsQY@qvY3InkFZxLml=H@1lLIxDeAO5H>)YC2?4@ zRPWjRPCU1Zsv5fzq?BE_L7N&gQe7kaR(H0;Ieyljrs3SIwl{VZ@NCpmOT@W?0$71F z1Ln?LUte!OGs;iiNy4_xz2XHh`s`_2md#zj*DjTE8*%^q_k4m3|0Mf(>#p~AGt0ur z{mCm5al!R(4+JylsCOF_UAOry1sM&RrEOk^dvFvtF2=@-9~oNi`J3h%nGT4nP<>Mq z?SuKK`B-jmH(Is}V*JEA<b=+PGp``KMeF;a0B@AH<@{b6Vx&BY?p0bMheFbmhpMX5 zM<aQNpSc@bH6|CEY;XCc+e7jm6wa$>&*}VJ3Um~s{;lw?C{*ZSEdWr)hJ7#e`fr%k z<p5Ri8_lDCc*%{S+KPpIzOvS;RnUXEV<jjqcjdnDHi_t2^LZ>><UQWIfD;oC1XSU| zSiIFbvysa20bM%)Yw`SDm9pLtT%cM%wT)S7)#_K${V`%b4X^9Bls)7^X$d!IPcWq_ zrHXeO?lcMw1p~2+Ct_ROID4TwU7QCP<6X_=7Nk-8s;Ay?V?m3fCTh->T`?i3X|-Xe z$iomNZP=hn=#!Q1Nq+?7U9SA75CwL1l2_1#%)WlPJ0&Su_CoG+=IQ``ctXo`fklkX zr9~KIZmZpF^J-B^a}n1d)djJH8bBBQj#p-m^UdrZv=xF6qQ77nC+{Y$dgL@?3(PIa zz7eX(&5cYIexymMT{geJp~8`q$Ek8%V2+l5cOYjb@P{!#B-@^$Y4#`GiU$@)73uzb zL7aflgby{YH|C7}EWp$qw!I=?D4$E}{rX6x!;V#pK?1s%>Xhv~K1SsdZRwLtdIpp^ zpbUVRM7+&X&*k*H2&rz30#=w<6RN;cD}36ie;H(D>=*!?X6udfl$<3F(diqPe4;%U zE#FFL;H<qTyFV{S=8k5Hm*5#prO~W|k6X8uHlmb47_|*GXPAW9OhY99C*21A?X00t zbN2YL!@tktwTI5}o`mvRFkA3v2&@9K(w<~k#hOZ#P3ep$v_xl%rd^-WSmHG7{H*$x zVT&ESO)Z(Tf)1&9&pwZE&Hg@$M(8ene&4_wTGrnvEX$h|wiBFrgXNqBUGZ>$WV=BZ zZ%*hrE-dew0Iq!+KJ)n+wuBTl{5QmZ15*3v1mVDgt=BH5DcPx}h->)Ye|X~i?b67T z+URX3TlXDtR0H3WeIIC}adBPJoq4`fAV7reUV;w)Ho#dyp81pI5N-1I{dEE>vfdhB z)<f4OPD|H7z2U|2Ukwi&j-K&LG@N7M_l(NoBa=#D2fr|kPV;Hd#@^^7WDJB$@{QIT zu5akk;0u5gD!`INSIV`_KaKFoVf-T&*cs(}QgBFXp`&qVk73e78A&_siTZ<3y<vwI zk)b~(hNE&*z9oICSijpi)4mtZ%DH2gN>k04jy6RwfvHrw{*t;xIVWQa<uM;U1e`+y zlF~iI6zYl(C4^+r>*C0?5hoD>KJ&vSi0=_j%@^!1zj&~86}$kgM|`>i+)8F}u?Cb0 z;VG8RK99Sdyp1*--l;Dxzbk_Pj-BRLPnZ3XcORyXonZXW-FfEdm+y=h|KTlGxSiy| zqWQV)STmcFIux^1$6<7|!%6#qUq(OP4Dpd(j>t{DK0WHK7J8f&#g?*I9-mL~X3t!g zQV0A7p85}O<cVmXa%2U1Rrntsdt=7cHuPvXX-PwI@#R*c@b}n<z05AbCyVe`X}48E z;CFuSi3iQU;P6A6O>NQyhE{=s{1OII(q!qmzkaox!lquH56F_&+}psCAM(@6xvs!g zL2(7942$XYmSD&YjZ*g)<jm<Q3;=M&Rf;4zy8s^+_Ogv#;fsx(nchhfPHfA)Nj>;D z=i%Fyxq(>=LlqlWSD@fG>}hiEk}=^FsmPL!{Ziy#Z83KDje1|_3g#0`AiTdtY?w2j zPkpx$t(;qgP)81&W={-xf|*<tjs}y2CVwD{S#dubhnY^B=%P#Ydum!4mU_;Oe0@q1 z^J8A)DWGOPc`BhmjD*N>Dr88?TWZab)Njpi=hqo%Py@5|iaOTt8nk<`jXMjXxW<rE zr#Z_P?~}edWau@ixrs23m}enj<I8C($PUM|dN#ss>NAd9ni-1#a8H-o-|~uDtu(`f zm3p5O{H4{rWlP}gYu1&(q;F(Yw|kf(@WJsb<ZXC(j0HOR)(pjrb3$Lfmow|&F<FyH z_eQFOSzKGWAvZc6EVOgMZG5hhc!!EL?GDQQxKT`F_OnAYLWZ=Ch9GEd`e+@HW6={f z<u3=Id2$(A-p9;u@>e3I0ozKlxWj8hlaLE71Aasf0~>6<{!sNTT<jlS{G1y`7d}5t zi*q7W{+QPoC^RecP9r>=2`&Z;Q3~Pqnk0%W^JVPxTHhMgmPK<1bDqDsZj`4-_r~is z;SwXo%Llhu_-S{rR;Rv~c1Q&#OiF1h0r}@N_JW9W`YB)0_xzzxn@j#B0uT_8$XcP% z<U(b<7QMZQM}7pP0TifAl`gAvxV_?i=5}^jN*Q3Yzv7o#<on6?ymX*GH!y!!?U%l* zF7QTq%d~!&p)Lu2Rra4n#)v=4{_pxL4$&bRY2~ygHI|)H3+!STMYW)0%Teld1n~l1 znB-Z{?8hAojr-QX&mz>rrpnyUYuIiA%jXfdL7=VgL`fF|?Ql65kc<ui$vL?TdzXD7 zEmI^3?mAUEY{XOx2tR|t>t{h5l$4D5RSBaxI0YO8$@@5YWpB{>TAfe3l{GHp8Er%r z`=oaMT?}*5L;f8pB1IQWMBCHf_{-uEpyJQlFIX#{v=dqI-r}SH$~P=_S;OqK{IIZ* zFh5L~(~=1g2I_B2+CcS?zsY~9DZ(LKT~dx4{q3m&l<M{&?bH5NP<P@3+neZ{4}W~U z$zjt9zo!bPiMXh|HA>B_p2bfhu&>h=DV}F&2t07FF)~g{SO*_$Ik*|P=PyF!7w53_ zcdXt$C~Hkbme$1Lt-MOYko(myh)dRYN)YxZRexRxoA44>2R-b(XvU7V(e%;SJqH$B zc0ajEOldHqDW$8ln>ega<aY%Puh+#(Ih?`l=e(HWW+&-$msP)XG+DDCj>{GZ<_bLC zt^M}-LToaEz-h9e3G?%aVxrLb?T6Mt(6)92|5erJ$}2#9ri|MaDp9=CKvJWT_qvB6 ztgI5^bTr%cN^zu17iOpPgpY<BVd$<Qj0;A7*XUFP1eYG&wpI;YpvF2JF@+Lwa^v-l z4F+${!nSjDRxOHthE2Cncl&D|xcAKQjPML*-te~R1{V%+MJZkug+x#vGY0oSb*9s> zY%SH4IQlk1to8K<FIO)<{wh`Wujb^0Wypm@oSPO@Qp0D;*kQW?C-lDVLrY9dU450f zsd#!jXfM_|IN0WyY?cW=vaJ;Qj$|0kaO6b2;>ob*+xGXI!;Q<$P`3ymWt!<_Gubom zxV!>Y&tliR4^7zzh9ZqBD^~ub8id&!^+h(>mT_i#jo^XR?UL9t;{%QJX%|4KAppyS z0+?f}uFTssCE#^^Y_QI#w%_xFE0rr@(<X=jfJWt%!>Io=&_Omf^-Sw7Zd!`O6H~yC zDUo6tYEV_0@iws5)Fmw|Y?i?54)f};|B1S1t+bMon&N})IN9&@h?nJm3AVmU*qggk zUqJlBJMwk@sZJ5m*hI@$Q`(!~Us&z}Z}4r5@Zpcsv3^cu^{bcaKC_|@|Hh&-THUkI z+-l{(pA}?In6Xog|8~z{Y1PK1C3Q3lvT;znu)#=e1mcF{8fqf+^|w|l;YqKRt5zn9 zj~33ckD+$&aZ8GDMBx-W<pyJvZuZCC0JMwDKRgheXxZ#`(mF8C{jfF*(mt^F5lDSt z(s*vA>MR5kNMLe!mt=VBZAFt%6o44hhu1cp2@HlzvBf|8+&9}c_&u6wbblFM7WT!d zVR$Wts+~0*`Z_EccaU=nc<!2y9Tpqq(B7dJqxYPiuE8#}JeW?W@iS@7TcT^rmYds! zCvI3m+4U2wo6LWL$`c3bsZTP~%-ddqS=O%rF}@el0~}t*GSo_QB)sOr!Uw81415`R zR+A9!xjCOu++;_+51_dVT#I9>XQF(@N5mXhp{R_kJ9SG7H-7pxMwzG5(xYz|n7wN> zi(U1aaB;((o+QNVcZ(EE+8e*Ny=;g9k$n}`NR;IfF+wq9=#s8BvmP9y$Ad!#`cjA7 zXQxgeTcJD92I;QH>N<(!k9?YL+j`&q-c5`(n!wItAEes6r?vZZAH=D`d^fj?jVTG3 zU9J?Z(iK|Guy0|bJo?5<_%%c;ZNkcWNvF0({#KwUv(c1n3e4R&I7e2#<5g4+e{d7r z_m>+jangx-$@c3tMH+%h>c!Q_Ysh=Dh%ed>mQfa}O^BEMDtOmbV|$WSU(?dx9e3%A zzraj3_qtjLKfOWBa-jsfw1%Z?@guMIbj0(d?Qvw7*1NyDvvo?Y9GU;{NH83sXLe_0 zzooSZk){1&Qfa8)p)SKv$~Fq*kH;^Focb9%cMqb`=;WR-KDePb*pu(k*a)SpVG_R_ zkP2-OKV!0M*i1&z_^o)!Nx`wC^K*f7|HO_=4^;{yCJaM1UUNpdUeVK?2oTKEetKI& zXP3OM{W`>X?fHtG%Lj_p04CGj(YQ0ljZaIIOp$<$YG#LidX_6Uw8;(3NdTF-koiD` zSb{^z%Q;v;2)#PDGnnQY<+be*2AmliXT8xzlM_6Dk5-Rb*6lCKfm@Unhp3!JR4o3% zwBsjJ)G~Js@6L8S{nGajkDMDUgjG#sRWkY^lWKGqpQ^YU7vfsHmnZ@cSfSyue<ZE6 zlAXz^OXkn57^*yU4)IJ!rb(w(YKLT@$=dSI#y)NOxW<`33$zn%QK#b|E{0NcupkyP zgcZ~>GCrin;;7~a8`h>cU^j)N?juX>z>1Uegp{)y>v_o$7iEezXDaPN4d1WaG57Kk z1Rh<NY;|e+8Nh$>nW2qL6@EJGtnPYW(#&lTcJ-Q1j&+aszy8qu_ctD|-PuWah6Nzu z={LOFf)zX_+(@@mZWP5=_@vZDJ5zubzhpkV#-EFB^*nR!6Qy@wng7o8AW5<3qvB0T zK!{@2?(KV1WIVqyPnZ~n0=^M?nJagidg}<J;Li$F_`bBpOW-Hzg6hsCnaX_X`#0a4 zChP`3x7)D;e=>|GAoES-yV|MUB<Jr6j}Bkj2Q#>$)z4~|h6ItZm8jP*Mkf00{_?fQ zF<Qf}g)d%VXL|Ms0XtccJf&+e!_7nfr|vMov-Za1kJ$;m6?+{DH(-AfiI$u;Z+pHE zUWIUlFWu1S_qB_U8Tj)#dJQ?Gftt;(X9s=6JJhEGQR^NZh9!DS@6xM(8XRe3S$BUb zBbu63FAVD;M<>|V81gUOkSE8sPK|SdR4;gLktL%pJ@8oclUi~de0*@CSy#+F#a*eX zYK%vT_hv+#-JHXjdw4&I`4<jFR(3{=Fuxp<fA3F(KB+HbI#djhw5or;m{N5Ofo@q2 zpBZSE`d#8sq;~*}?!@*PFp^W>O+nQ~SFo90O}E`jiSyKASkKx_)B%5Z<<Ur(E8y&6 zL+P9T#+M^cP4NN#gx)y7CcN9jp*6a9J*3Rw3}5v8+R!D_3O#hZde+|V^PIjxNX*?6 zJgbXNyaN(OwF%!>gmpJ$nH{fHPKLU^dVR(n!O*K3k6p9}whMUthH9dRPt%Wh&&aF* z!9%T&oYG{JgBb_=X-`kAmBLXkLSAMLx(1V)CDb!@Tk;JCN5hB(v1ccHU>tYlLqXO% zS<5<`bX;&4rp$gRWgWc!H8H<!Mq+xDaYyEz?&Po586`&k_WtJDW_#^8I)0pF7=7My z)4oBFqz;c=8f5%5tU?Gg%G$(%A8mA>BY<L7{KC-bP?x~>%RO)?r0-I#OuScKGhYI? z?5-z_Z{ZFzn};Pz-(RhzDn8`bB73<1nZ&vNW`;KSk+D&j?`^BoSyy*$@88;#kRv1K zX6}90;>ix_n~px6CXI>I9BFl)R&MsD9>anc6;9W<?IHsp*`ucOEAJMo$-QEl27i*% z)_)8_4*H3bKI+@mca<~!ko-DS?ak$NwA49`LG+{R%}n$^yewqI84Q-@PLTZNAD)qM zh6jHT1R-ub?PGR0QZUp_JM3^lwt_!dMRvG1dTap!dQx97q?Sm_2p?1&mWO7@hX^%J zYE3GAUr*mz<snP3wLoGiZ@jsn4xtnXwInrql~k|6(1)%UtKI+b=yy7ZooHWt^7!C) zS+U59pfv%=Jc|Z2=gNHQOC9|!Zvx}iE|ZnNQ@&Wen;y-T`jv!CnLH|mZ{I<~_8M63 z!9ONFVr#mGu8o-cz}u&NN-zhs2MJ9J1R7iaQK|Y8!i)kO$b}`~`fF=55LUt&N|R(k zb-pOAn;8A(rufr0NgVPXOqk78$sEa-N8Z-|@T}$24MmCzhV#He&|odpClKpzKaV(B zA4?~0@!M!xy311bH#gvb@>x0SVl~3yB$a!F9sKKYjL6(GmY7fpi=-thiMLN}3<8us zHAp5P+;_0#&P4!!(w)aEy32UESH3*@NwXG$3h=RWDsQ=HtNqNWJeQNvBjIt>0|m;{ zJDCsBD-Y+l^8{WHFyv1C&LxG8#BXXeMspxGv>x{)fD1y*OF}~CHm53Pg{fAFx>aPb zPalYDV=8^G%x$bq_O|tFB~rgGH#Su%?~i+L#a7`a0`TV|rg~SJ_k}-7`HSI^8J6LO zLEQ^soct?oNr(F5)rg}NTI>dLzy0qNh?pJxq%TnU6_CRj2#ar3{9`(O0zG06reP=9 ze_%AD?1EdU|6aSVIyceCpVBBaY_56~2#C4fWTLOIZD|E<#|cXHI0vrZKDaphAQ&3S zLec>f>&UWy!#I=ir+-Y#IQS&8<3ZYj34mv2IM>#Qm^!(Te=A2G**aS=eY|Yf`n3MV zPwwOJ)s=GG!2)&?&1T7a#1NReL}X`0)3<3Es)N+A_=jgxJZj#~xFT}CcV~IwG?B}V z$-$Xmq^(#>A-HQyK7SL$I+|SVG_5|y4zQ3;9)nIKj~qA6MZiyEe*93+{oWUJL5r!r zf*z?g`Q<7ndoC^E$ET8D7fKwStCp&Y6)U->n5_Bl)aLLt8X8<74t8BJ!(YCyb1m;J zT+I~R$V=~x`G7y!Fwoi<SA0|Fk6a3Wk6$E7jAl6X3ft`0K75n*ay7s-ZW+6PP@JYL z%z-FpW%nl4;9xs^@p&jaM#bk79L-;K?9aCzO3B{6t1}C#)VBGDH+O|~Odj?~%yd>; zc86;xfWYCoq_7StkH4b*<@c69sju-3g)p7Q)w-v@T8Q9qkL(DEL2l0qeXdg_O`BBb zPA4tyBY1LCflD=kNMfL*8lJxXp2)9%44kZRukwL$3$^hgC}b5)vHpF%RO9>)7rd3Z z<1%Pw?$1A*5XvQTS1VFgFx{LAA2&a4aFVPG&QD8j?8Jccj+xB{+;oT%jvPVOmAJPq zr$lmgCSR3uBb&#;KCUI4!3CK@Dhn|0qXT_nY6r#=*Nev6u+L*+oy(fe%KY4Sd$%mR z%ALY^njbeNsdJv%muGMv=tDnaA7+bd6g`)dKAw20yyLo?C5*Vk93u8$RYFGF>;Z2a zE#|%;JL7rU%G%!uWGfMH3n;;Wrj@JwX)8bK1ZV{@&^73C$>C%O-)T2^x2vee?mBWw zP?z>MoYaap&}Smn3*e<u#np_dz6`AIr9o`|Y0;};a(A0lM_G(`2H5J-^+`lD4wB<J z;7?D>Q5akUcW>t#<GUoofX(VxpxhzQDeLc7BvMe3_mRdTk4DVuG0+fp&hmI4_4%;# z&-nCJJX6YU2l5w!#WUyqO3qYHnPYRx?((ffo2$jxy_E8Dz3m!H9wVT084~A+^1M*| z9uER>a(Z-=yXkzY{`<8Ch&p@Xr(P>9P7T5bNLbihU-EPR)WwnHmomW40^779$JAe< zW}C$i9&&nhyjW=Ef<4F73T{t7NXfjb`c^a&`1HZR-iXX(`E63#DrAc@_D{PN_#D2U zpfw4162@1@bBt<BoD>PaU!+{8{!ugWk&%EGu`k|S+9G!LI-N*?&@6)8K<dqR9B3FV z8JF5}UvfH?K@2X6Wk=Md@WDgdfmawS{hqfeZtG5nSzHl{a`H0agVK}g=HNFVJFl(Y zDjw4AyXm00L-_hZ6G2RnH{-^e#A;mI_h>oXr9y~tCU*`v6gplmQaZmAr;dczH#Ehw z-n_v&s5vLfl6o&qZDm>=10lDNZ@I#R!$*%5Ap^M)wkVmuQfEAoxA$_iA}9I;<7YmW zVn^kuN1<}+wiLJJFV5o`lzVGKI8i`nxfpE-SJk6vYCf}ukPg{WZ(PhQF)X;)O<Xg4 zYd57ZTVK))L=3LZeJeHY^165hJh+f!rd(4>E!;bJKi>Op;j@#hyP`|?>OBd1pFm>T z2>OqHs)U)lx<};eL#{oR7z@P@yRp!enX)QGc$Y<P6r^Y`jP2`F6@<zrv#2%2Cy-LY z@pI}QiwS&F1;_vJ!~iFsqz;H*IB=*oQVUERIRGs{RllvN^1dH#$_`3Y&<zkamB)!A z6Kms<@}V!y`f|wcJA%5;X7i>Y&bEclPaBb6a;d79WO~W&N6;W~LGH~%Ve&}0MEWLV z%upZVq{y<fIb>$=dUUx`&d`^2Ay_ko`t8TfkV-~n&CNq)*SN5q9a{$~5sHxYoqi(z z%ZeB<;vI6Ij@g$4B8h{J^wYA(*RQbXn1alJmcQos+A)l{xhW@!$-Xp+0GX*74Ju6} ziD$z6QKA7sZye&CX<qOy6WR9;`#mf%4;x1aZZ<;8RNFSpjcipU9dHq&Or`MS;%Pw& z1kSNqWZ6vTiJ^<w;vKf!N3DY2dz4lF=-SN+xL~Kz*g%9&L}MiqI`5#A8rFpbO@WT% z%9i^s*!uZM9LuVX*ng<Iq|YK?bz~x+w7R(e@~c9eg&z$+?$X8YFJ@5pBT4u<V%OhX zj*Iez54ONpnFgB6iXg0`O*=}&%*yKXl*P>ay<`qsjdJ-_97xwsF1y-X-GMpVjY+Fg zx<=8})Cg002_Q_{VEmggCrrcY(Iefd41+b)Z_FO^<Z}z|*697J-byh9EkkVlBm-h4 zH7r0yxP<5f7Q?czUI-m)kGsI-kjxQ#wvHsF_k~yu_L#pNykKY$+4HuoEqdeSszjEK z_syJ+vdajIWlW4yfRXAq3-$Gyz38E7Ww$EQdcSRfUm4-46od$6h916=R?c&b?>{^a zmwkt&BzJ?Ls~{{15W4bC8^zoC*8m9-rO{rM`=FH4gZVCTb1vx1)2l8Tv1T%?+`t+k z=`2M34yKpKN1<|Kdt%-Qg>}S^5BW2v<(|}kpxNB%Kl!K=w%nx#C)>k1x|q@Rv;(2- zcUD7fn6$Uey7f}|wD|5bdK!hVP(pzM6dE%P3DU)kE<Jrm(Di?KT#p<lDy}te1KHCB z6ay-TbP?WvXicN=DA<xj(d<>T*}2bMQ~A-UaI%B`QEIU(zvT`u;FsIHjBw<;`lgNy z`|q}6s}B7mFO(0n-p>kqBDYiI-9$6+cBhH=Bp`^guEv%KZ01Di0RFd+9{!%QwcMBz ziDFxR!4%6(tIDv`5|}HbOSu($ue|gvlk9rker0S1#QsXpZPv&vjd`BKw`c?<(5GP5 z&~DD6itnlQd~>C|2W9z}me$LH*3Y4L4evMl;04^}gsd~>ZIqi{+<N$t8)_2iYrIsC zZCSmX8+Pdc@&s3`mhFJgWv?-b+0D+roCbei$5L*y8R6FI+R*KW>jcAu>va!GIy#*E z_OJSp;*T7Kebo(-R=UpopONaDrf7MTMu6k4Zqp2BUA;Z*^XTTtAGctAI-Q`3mLp8q zJMTY|^wKARjsNgS<E3;LO!OfVylhSgCiQOs)&gx;6xV@=bMg{LF-MLF`!~EisOG{c zE`Q~@-tMhq?YQ`&ks@O;tzU+j4?>Jx2&13A0v@);$;oJ?vpPAAZUOsXudA;(k0rrL z|7Bj^BEPfP7bpkbHhB3%YgVI#Ests>I7+u3H_;atU{YZ!b-FCy3CidwJ7hRKZJ?V_ z1gf*+(bQYM4j1tGjy_wLRKV|YOWj3Utr;Pqg4Wa8-z>_BPT%pm=J00ZB#->+uWEEE zf%JpWdN0&JJbB=`jBC|`t7+P#%&(@1M{b(kP6;pcm%;{vQnx#;2T#im&)a&F33!l| zE1SsbQ-^~3pKbCTs?T4thdn};>4(ig$xgb{Uv(`czB46%<6ZB+1JkRr{{<(zQLgyv zJp>AKg`X+Uu=qh7f~P{hjHt)+^n+sJ`dDCwSo&bgwz>rYH)5&n`9W##ULF2vT4es| z=ODLqgFQ!O5fS1yZlR)vmLZT+aYXkNqDE}}({94(Pm}|{*U`2Y=wk}_Ncr3etNva3 zFui1jCSg!io+*jrLEu$kABs(~U}||`h>Gs5J*R)XBL7rhAN1jXhv0mSU-C}!b^fWG zryc@3&hqrTVz%Gn>M$RN-N)$38K%IbTVi7oiaKOGX6hf_M+}bWN4DVp!VeKmm!H#e z3*}?&Y)*($uJeykP%g7@4FX2m+$q!~@lzWR9X^sgMy}GeaUy|oXY6!uO;nb!#*$UN ztM^AjkWpdXx0c_?J9E*qUcRg?sjEeo9hdU!JDW~hFkr;Y82%~rH~4D@cdht73t56r znx8Or{ZXWzd~Rn07bZ=Tx9T0Q1F^iP^hmtxj638#kf8jUap&>YRYn0}5$uI0N)Ihf zqX}B-NBuEX0pP^ilV!7_Q#&I}9^PPtk>8bi8vHOS7?w5g^3UzcmCF$F_3U(L><e;= z2IHa1ao5&#<d0LveYe_|sLz2zA<dFicBq#D4>vfz5fJx18*Y9Zd}gK$F7vFzwsphn zmYQvqdsoxZ_ybwUS997s|L`PPIK8-^oqGS}vqf<|_#h!w$R(iSbFVsdB&Zu&Z`!rs zHc(F?@r9eORZYD_lDeqx1pk)v7_@BlY1q8OhQCmlvMk7da`hvHxs$k#=|8;2WL(%W zM0S|$52iw1d_}zYRIBl!OX*YjJa%9blQmZJTpcg(HWrVo{Y{9^sbg6KlFh;E139|~ z-}?^n0FxcHy2y3PVXIF~za_I$LC@|Wz>h^-)*QR^?^{;yYPRaIgVGNr8#8+a`#-m` ze;F}mtqopW5UBghM_OsDdF~;<(cYpQrNpd!c0O_YQzXBG=(>aq7v++DB;^<IYHjAc zWmLJYjJ85?VnTN);~CI%bKAG`rvT`JBLucMnpRv;+g9nJxaWXLHSO16)Dn6fH^&Ge zjYc+y2?eM^eXLq)=sEbXKIzJIZG4l|(j+h)GnVi@i-A^W)`Rg~{jLfZ-7}Mac;Wj2 z1=oi;J6dVdnMU4hU7*B1g3ISww1?Hm39%)_J-%UMVC3dL|HAsspY@@Xz<0NE{txur zpBE-?0KXKZw7nq>yl=|w5`Ll)>?$$0)<?It+EQ?n%j}Qhq4%XL{Gu8Eio(7Onv%Sd zrn{h~C=xRpwdL2pKtFh_G+zZ$ruN}#vvqd-X&TOTEW%e=c2=Y^1<G8mz)sO~>2Kj2 zgeDt5Rs3?j!#qkk)xX(SK4_^`&;c&wN&-dx?wB{a6L8(%tuAeV*Isq1T%YfG4Rz>P z7}2wIwpUJVK1`5!`<UUKabsQD?T0>3W3ZBZfVb0vYI%>|b_`BLVl5h>VIw4Wg@v!j z2c?Qcp@1$G=jcW>8AAfnHa?IeT3ey-OFx(3{8+mf3Td2nS{CCKDSOY<XuHOyS4rf? z`q)CWnqE(7LuXA@3rg*yp876&i$8BS8?W=1Ubck>E&W<Sl@u;i>pyqGWC~Q-Yp|+^ z{(a;B_TkzC(=4Q2ZT&l;dXHZ4Iy=XcnZuU!?uzFtW`E}A!=&H_p``_5J@Ohb-nAqd zzz8d;8u63)3R_M0<M+`pku!}8>%&X<M!+U^sG*UjkYt2uOI9x$rM5DS+dpbCQ`Rp* zms3o{A72Y(H6g3a(>Ekz2`tA%<j1SB>VC3Z38kNjYx+dXRE5ig&<KVn6gU~AObb1& zh%i7px8{l$V+Z+5Y&7nhC)TP^k)<S5hyfRbcKD;72TMo4k>!S1AP*qXEw3A|ZG7+K ziKMrRt&XlFl0!ffl>!be$qwDM0GPqOG&~c7a6OP9q^d2d^s(fK1BCPT=v={0ACsO_ zzqMSXu<(p);LmQmD(zv~oJA}@`2AosvAZ8`E1oO7nOK+Qa7x$u&W|@d>hUVrI0hbT zLp3gtc6=`T-AaV#N95uab(f?8t%fTGV*Lc+`q;$g5P8wORU6iyImGdki}8`H^^bT( zZGGih$CAf8lrCyU<Ta_0u8a0Jdus<WW<%l;_R9^N13RSvTwXp7`)v|8Dz&$E9+i-l zreauC(bZk%`5JHUc?rmGN8!^D(xUD2uv3KnfPBvHewLZ1n5--6Q0RiE0^bvYm}@u# zk_RgnKrNKNEWReBW`}TTL4$4r6^5PKpq}(9v{jb{D3rH0XzL%|EA=bIO~bPo^fg+S z3G&e*-&2QU;@8WzS1bX_aUQJXN)$IM1g+6izZ)r+mU_z^1j{pGMX<;q(<y0Idh`Qi zB65%X`JZ!yS(I!(>?V0_G0RReb<3T67^<`aAuf}F2gxZ0U0uwby;dFf+A?&$D*`9M zI@BWq$dEQSAFzzL@=;`}OS1CaIFl&hN~0qt^Xg%gZ8J=(clU$XBgq4Ow8d#sDL|~( zm@&AtL;S{w5*>7E+@90Ds|z~A=OIV03c9j7^YXq3vcxjS|LW>n&QY7f1v0uf-h&R9 zl<xjqEndcMFU^K~=*JS+;p;;B=TiLapR8+N5Sad~Iubrb|9O%pp!0XF?&~O15UHUp zCch2eXZ+Dd%Q8o764Aqz2Zp|fP=1JDTcx+|z6YYP1D@Hqld*G(9okMGZJc<Uu>soQ zwWN3RjGYz@8@f)HPFmUzqT+G*&{tzdp%mGQ@kT;V-3;6NkhV!OmP4RYuOcSLukiOL z4+qN>{N9Rw_*S5?JKGrRTA#mxtJ7pCO$q9z`3he{(zi=Gt+At~`j!e(EdnedZyx}X zBNnfy8liP=;%dHB4SH+O2i(l)`j1~!ECY}~Phs2BFXf$cVjelD8qS^Jq;h!@w`(G1 zW^OEwlOIC1Uz}JI#~Itt!smvLO)q4*fka$O4n@gx6MMl-y#**m*c2wiN0PjYjidZK zJ9Cd&3nsJD{dlb{A&fnNgpQ3YB>FE-X!iawK_E_Wo?m$rdYYUaWReR#>lod)AEtA* zigdF6ZZV_pY1MFB{}0blI;yiV3?gqGrUCga`x7Pqs50-uG$?|{P6ZF|T4FI_;Y52{ zD6c+UQ<{<jDBs)Dr<00!aR%0I_a+|xV#}pLV#mK{E{^s+EvGfbwc(eittz||kHu&! zmjQM@`R<MQqMtY`JCT?(0Qm-&IsXjs53v8>`VOrN?XF>rDz`QC{90S|LEY107G6&S zm7M+)(VsA|Vo&a1gmJMwTYQO<8*<&Tk^p@>4{6mXO(m&xL<WIxk>U{+`bpaw1uZ5( z#dwD>e49m=IIwGhy2PU_jx;YqrD;g#*BZ>>_+C=rc<h6I;;lPVjpC5dnz|QECO|ha zB}RN=vf1x&MmI~tC?P=`Dx;PCuDe;vLRc~udbQQAof9Oqf1ukOWGy_rD+qBKnzw!1 z5S{d~tAWwoMVlMx-Wq>)EPPBm%-_cJ*51^*2o0{z-2R-a$p-q9FDt-@nd^m+^7p%+ zur1x3_xjba%=8$D#WXLd707nwih*tJ*yF#fsZJN{USxQQ`OC<%j~izwJH5_DkQdh_ z%Vmq|$C{cd_nzSI^(VRLzZuSRNf2h+UHLJC3xtKgc;3?JSxe{MQv#6kuv%=U@)kEQ z>grA}%>G(|Q6uXTJ6EtnbL9QcYi6?W98y(A`LeJ>*S6?ANr^Zh0oR(c++sQsc6z>~ zO*i#~I-bLnKzh@d5m$Xh4O<0xd{P@u$iNjc$&GQMgnLg6{&+78oq#aIg*ae=#H_wX zQNcV1_G<fee_x>s|H(q`V@=`b$7^+O-M%F^3Bz18P*(3vV>nyq>)zxg(ytMhD!U3Y z4jHr%(StGq)z)}YT;!GV;;h)~vf;Ei5l}hA5y0si;0`GL(3+;49p;k`sZ+c4mMR=B zZ@r)YmRbo`!+NBc$JzEvkwrcEJ>M^@5=jDFdMEilY`R6`Wj@8dL9C>+iN#RZ9eD_e z_JuPppUX%OMhSB#GuJaTW;`Fs9wcO6feIfkA+H~MQX}ZCrR><>R?uKdLlm8g829R( z%`*n9eAo{FMPYL`kJ<$tv6M~X3g)+7D%VA{(H$dq!h28m-@dCXaM(Y5yAP~eDPb&W zoqC%lsn=siFT5{)V$~6T8r+?^Qd_%x!!@Q}6MZ&*6gu|YPf=#X-vc`nMv?61TC`M^ z%46dEM1*e+jRU(%GS1bb2oe`dF3g5lj1pHRwP&_(EHB~Pkl_La)}EtOcz4Ia{4g$I z;x)OGB+<}hq@RBNf|zi6QX3^<7PFTzdyfO!=9f5NfVbw@LZX{s!`K?V_oH4-FZ?k* zon)%?k#LcE@sNw#x1MUYSpVyiSQnkb=xg3F5@ASV4lb}toX3vdg*Hb559iUndM`OX zJd?~R4S6`_OB>%SFG_xqt%<*8*Y4Ma3_lHDw5*pCmBDLm`*5#M!Pq=Z{zmFfSq`yW zi%Q{$`k--HId7P<d4ekdB<y(W_)P7j3wE50UyOi}E_Ly2ZyQOre~*^3K2l$|I?g&} z=)ARWtkd72LJTzGI=L;7@?*^NV+y=Z3gl(nDbH8LTqDnb-6UjB4(8HlwTTO0$uy?l zs0EyjB8psb`FP0O@Thm5iBxgDHS+d-X!vQ7uAEb64&$qqh6LaCY9hYa@Q+i`h@B(y zg3q<3sic%l7+2|a$tl2Ta92y64i(V(Z0Y;`Q<5Nt8D5?T?*hG8cTD8%Hag&>Coh>$ z`9{0Ey8mHf(XqE?j>e?T_%7(Bgx*@Pkt%(p@yq+}LfttFN0|%l@yE{uYT7`_ALx9_ z<p=Uovp+F$85oTQ_PjrYfnNy)Hk-FA;Pix_RM##E`&#(wA|frvnTY(e!+Y;ld7Tk1 zBp<yWkP++GB^pOok=%qj_H8J|xq_H@sTx1M%B~CFe-PZ!t}wYzN#_VE+`_Xyn=E~N z-s}UvS~88v!X}|1h8NOU;`B|FE-`kA^>ID2+0s5)_Z$9ms>FPj@VmM6fV%Fv#=F#` zD{KyB;8c>MA7{27SIIxTKb_Yt@fj%101}|-hb1Cr+Z3zEXAyrCWp}DOsDMjo;OTO1 zUeU6KhXHlGUJXU-my)V)zRltSM!ftT4l}D@?yAwD{wc<OOeWMA-dfQr?R5;b4K5#{ zFt<!y*$`zeSse|IzEfV?J^Y847vR_*u(=VMqPM6{qtERoPTv2!5Y2d_xHk5gg#i+^ zN-ijvw()w|8N74<xT|RBz{d4#6&ZfUop3ebKsDz2E+M6HJIrRu)T^k>`Jf#Y2!sz` zI2jl*lo`l1<{Nih<BAE#a^M7Dy-xe4<=+t5b?2lh)kt>t@lGjP_7AQD;9u2g8h~;e zui{s1IP1IEYg*OyBoY{*a;O;?UDkZ#beh!-r;s$kX;rs0SiGy<31^#^QV>SVEq=I` zoZk?S!UN5s6G7fffGbXxZ^-&5?CBZpSKn4k(f9QB>2Hlc_m8$W9RUG<Z5U3u4^it= z8?3a8>Oxh|-C^~a3T}!~m&FCi>y3wH>&d<qT405jvz>roBeq(MD(>rWRxr6WXY5v? z{-*HeKnJi84_#WE5wgc^y22h^Syi=u9dGDkpOY@X=m2h>hxDGrc09XDuY_Uq{5E*( zm#IV=u8?$<ntf&;5GBnd>EBAb*@p0qiz3X1)6za>4I^Srou81&RE#|cAhSBFtaJY5 z%-~u-IfmL19!#_vX)T~G0>P`GOLla{M!sCfs}*qm(5*0rQ|Yg5ICGXEkkpJh*Nd$( zH9*O+>%r<r<vP>w4vL$gxefJh|F2>_$j`6SDN69U@n*k#4r2|G$7Htg<cgowEe;ef zsVIDBKL1m*DtYnchy-OBP_^M+7x=E_b6SwSw*bwz9#&F$EY)#y0ry@gaC!HJxgnA< zt=-kz$3#OI07;FXL;l26D!e$O8~Jr3-c2$8x2AzUpIiI^mMO?|bS`rlS>x;t-s<uo zjgh*gH$t5mOG3r<a!I}yC7C5XjC)1`3mG#!F{x+8Up<g2GD!zK7V@WyH~hF~$U7BV zZ?YZa><IO5z~w@1m4cFYE315c{c_TiG?tZ(-N$T)-Z`Zq_6N;kzAzpw=nUf2cB>Cy zVCF%|vJsirv%fQ#?K;;kx8hT0u%oyhsm99h3g#8C_J(XFZ>la*(Nzx9{1BU)o^{AQ z#4=j?)Vfyw$5-nWi@xLw@;{2o#Qt8%`r3_ERep1qgDIR0IQa!nMLB#;cxW8uw4M;L zb^4`Km^eU^<J0>ipLMP??m?2+i|8psf^_1zqQbw&v}vPD39s~SJOu@nm~L!j^wC3c z&*>ekAl0&xUZW<I0yP&6dVfUQ6O>Y~^bNL5Luu0*nDS_y`&QsZ>zI(ytc`{U?+tLQ z674A*5!Ux$Hf>F@_5NA24cQ1VQMn%c@!6^L5&2pA`b<&us$SD%Wyg@W*ChXN725#8 zy^nM4VNC&*y^Gz-4TK+mwqK<F9Ovo?&`f2V@GAO;R{>0bu=oOWsnGs66KD7P07-+| zuHCeTio<;_(n*UdSBm^w-kI?>qq(zLy2tH{L0H%RYq3#P-V))uB1`$B_Ng%KrE}BM z<^J)_$*tyGBcuB-t=OgHJ&n}ARMh{TGu2OLTYviv{QJ;b-|XgUr0!4f+leDp1U}yA z{K0{qa@@8Q;6ZI4^Kb>M8)q@jG&ejI9&0?eme!6EHrxw57zsOrYn$#tCj0~!|MJuT z_^d0n98#WjhbxveA|zYP2UXid%D;h9yPmGyZ8jI1_6$7E<CuGLF5!NdSWL%W$WTYw zhqDUxuS<*9e<<`k@j6$Ip~FlS1t%NBKER@^m^BkLd@U7~2eGX*hiFA7Fe!;!=eFkN zb!orp^vriOZ-M5BzXTUm0*8d~w=mdO1t2G;W#}<tXh`%MI-g8S-(jPKYbr;qm0%rD zO<8$PGC#k9r$W%Z<<3&|A6`;2(e$L=!J-31n-V>eep;F6Oy#wp)yf%LAIER|9a;2Z z{jn7N83(zTf@+e=nuxNYv0I2<DfzLnI6KvA)y`t(KuL}cZibY@C_J{)s%mQdl`mZR zxDe*xT*&8)X;6~!d?HM0b^3dNy$xGDfbM8ILD2hx=8|LDpXI4vly<=;#{>Y?#S#W~ z4=Bz*<4i$%Sq%BuY{=pndvC`k98b@&@I{aOq7d5U)8JCkP}Uq6rO=U{s@ppcMS&3O zW2Vp~tRKes7$@D0Wb|J*V_7jf@#AN)&`)zzj8J!74>ft6)Mf8g7BMLQRP%01P(fW{ zR*)$j!u{Rqo5#w`(=&xQz6>GGk7w8h;heAK+?*pPS5sBn@a1#0QDdRw!?`S++V9H} zu=X?u_PNf?(n99zMH@6*x@fW^1GfpQ+yvoJRDaalB;{+KE(Yk_9IF1Yt3J2ru$e?# z7#f;`wiCOn(*2SNu+&#jG<nBWn?9}<b3gYEp?+Ski@&PP_C8Xq9}->mWT_^_4GHnT zTEIF9+42T6j^IutuHcR>R#+&q%4vf?M_MCZ(kF6f&)7(VSIK#c6<86>-F>pK+uK6c zxq9C+L}12UvYpWIH1Mn{iqd%cXak@z5$5oEUsrkE<{9es5@IP}<x#<mEo_-7v2x>O zKa1g?=k1m~tPds0$gpF1$n>)noGNgkq!6bw6(;+eS>hVg-i5JKdvoi(*k}l(%`mPa zwRv98>1+c~TXd}jmJ18rv7}L>WDVVO7Na#9c@{@xiu@PHeylDK_A>N+Qj$^M7`rjI zh>Xa${+r}{2TOyxC1tE7>X;D{5ZVmOnT#ZKjS=kOR)^opk*n4J@M7Bx%UrAHT`ewF zZ=x|<<TwhVpRL#-Q}QRc=EZ!Q@)_6AI{2f4H+X$SZo3K$e67u`)A|s*AljvwmrZ(+ ziDE>$+{BTt!qOwLWFaQ7Dasxerc;76C92lydWzDRj~NOJRBOy_Am*UC9FtU+`aRos zx7=Li+nA%x;q?EwyeS6zQDu>_uDbLxqk}@ya~X?8$`S@B=+Eh}uCV__(OJed^|xUh z6BQH%>6Da~mbS<VNXLLlGe$`F5G15aKw4UIbi@91cQd-XW3cc!&)dD(&S&SG-+f>A zb$_oHxU!m|d)+Cm$kXM|MzY#7#wrYlcADBvbxEv-gtP&CByt<ixYbre+DIaGC~iYK z=*iZC^NM%o9e%PkLCE&tnudz!q85=XUmpIawDR@YROYFmo%hwt87Y>N{S|zC4$2zx z{8DK3&)GubqC)WksY-j{Fh18m=AkrqK3eHyxqF$whe6f~r>1sFkIyXJs}x!8q&mir zx$}(IuIW>5zfX(!{^wc3`j(5pGnW&pOzUE2C2&IS`aUIVk_A_&OpNz^+Pooylx7R6 z`li0~nkM_(vrF}fMkch#iRv)ws&g8vxw;6_t{Ro1FW?QFuIe_co4ll+5j12NDkr|% zOyYGlq&(5?7Qcj^(VP6N=KZ1)HkF~RxPEU8d~d(YbE$6S_aWAoBwCoC%m&U_H_ET6 zh!nG9-7OX36BD+oA2G&m=vtiWYCs5mxTf0C0qxv<)eV`dWO5be-x}V2j#DV(9`BGq z^E8$b&MKcY=c6X%j;g1pcjDAAe>b{y6Zy%WL_s-@c9H3aWi6SiAtMY#CrQzGKopsT zbL=>*PS>73tD+3>p)6G1vJ4OxoKUTZPwyd=R2*@F0rOVCI_m}(MXTpwIh#)p@xNSU zNoVC8i=l3(rCl98uibTspM2kZ<Izhmj-W$#oW^%$u#d^SfR9|&dXd`rksWSH=oDC4 zF|)@^j}gLx`c}@n-zbgPjGtQhw+in<i14KF;Y7Gd*md{r+C+)r{%!Y~N@-x6RF&dS z8A}US0>?{)EN|C%$7YRSvs8gG-*~h3yc0&Wx^$mUb&ogQsl(U)OX>Twx2<5?RIoC4 zou5odD17Qxb0<UOH2RSKbVh$##P6Zp>8oa;0;uCcs;BTSb1mv+MfRNrG2)|*AALhG ztolh*3&sfF4rfF=t{@-or8smwrTpaU{;qW<+k~y=PfYM{rEv!!02s3NcGvhlM#bl| zY&Av8DZ{eXbain!{k=}7z6Xoxll!Lpb~83Fs8>W4c*JjKW|s+l+#ei=x6<w7MQ6Zj zlcs2<`HYGJyP@jZz25t&zXJ*ame$AXD@9aWC0d{5>Q*`0h&7KN;im4FR)JzKN1OXg zKfmNG)8&eBPgrVfIhr&G-?wo1xVk*A2{~bmXnu7Pva;PCO*g-XJPGqq-R@+NY>ZaP zm}77}%an>>GGSk>sX8>)%<b?lvq|i8_N75}B-7u)%^7~vX+%8nu{eF`f8xEi1u$dL zmm=uzb%~8^xK$`yc@0?{?dDEFd7sGkw43qkF<~Q0l@!ddLxlqUVAzNIRQqAO{d=RG zCSRu}UBlG+Pzo@%P2_d*obhv&3C-<<>&>vS;+@;P8WjJ?TCum0#L-g<h~VDY3hLwY zpH*};gVTp1kq`A|3~DfR6Q~>iC%z{Vaa^#zQXlE{5PavPHsBb@hR!%Xom_G0k~^jB zzMTp4F=*wU647Jj1WFsr4m<Lcd?E(Dm6_3r;AbA<7$wYZnRYSKd-vLS=5Vt67sr#d zm?oVAB(*btgB&)TMj>puon|T#0p)Gp(tFfVyYO&bWMqEG*`dgIz|($9<&ae{w_&+{ zt5h`Y*jJ?W&ysr7h>amt8^JS=i`?1($rf>rx)#qf(exi%GRX*uy6Vjcqq;*tt)>Pn zntws?nYz8q-nb#*^*j*F^$~P4eu%G5-@;^%YpQfJ+02uRBvCrkI{+s0*7o4fV~3y= z{m^78lk?*g6j;2J@}Leu`YL?*eHH8JQqYqGtNw&iG~CM*{;?U6-<pU8W&q5*jOz7b z`PR1CzvWAIhBMi`bPoo~@PiCA<5*Ys(}6aUqJ94CIxI_UQ9><gjAQkWwqbE`1V?MY z^+C*U`?bg4s9EHG2B<asb=kT6G+{943AfdyHBj`o%UNow#LDsTF$;Zb)Lm9^tJB%v z_0w`P`*vC3V#K8Zln4G3lkUN*4b74K{F8E0XD>gtDSpXJaPoF3`_Yvm)k<ex)7%ma zi%Y$Jx3}jjp+i-bd@$%0!{HL*_KdvcRI}N!sykTN;*l=zuq@4{YMQlHkdck??s5X( z6-W)d=-MdBoTt*JwCH+vF@x<tgT3gYK&`yDMjMhYT$fx<1qD`>;OS`T?{<9qW|*n2 zn@BHk#6E6!nFwVKami$Vg7{N(t(utFXIs(F((N-WM(nb$H}|$7uN9Mv%}lZ=y)K{h ztaG1Ht;M&9a5sWWZ|5p`JM7MD3-45V)4YFBP4=N~-XQSn;AyDS>_zsBK?YS`3PyEs zIHccG%OYe|D^(NJ(Aq!RC>&m6d?&rNLAqFxQ_dJCJW&9Q-u=(yRFvoQkGHFikcima zE1~?9Bnq813ipL<EkdFLo8~b+BCGnwP^+{;5-!<6>9_g2aFa@N1-BSFl4_-vZ=B_Z zAl|`RZkvqHV_Qnp3GaIT>>DW6=T3O>y3XT$WjVG6=MzNO5d9cWX<1&MfeeOGEQ&J^ zISb&<?UKtC83IanylP5Q`wF4AhW{Dmw>x)BbHy!{wlo>`pDKnjOr<DDOBaE}+2XF= zvZX858+I0B#pxZFDiaKpp9j4@>lbsXYQgB+q50;+q^9Wp;2BWhO^4C(3EQ#kv-yGk zPsGHAj4jLiN<`cvuM>KocWv+~FqwrFKd4!3*>H1r*XZ4uRnpviM)<d|tc;X9nU5t= zoBC{n_Zl+ZoC%W%9XeWEoM@RT#p8U2j@ePj{Tn!As1$|M`#h0Aa~0O_l(AqK<9i*R z^vyt&9;=M`H{`sA!c9y4U*5b)^I+~m1XECKs>58HZ@)BDV`*!C{V?*?KZ4I}Y%YeP z66d;oR_;X(+UN^6xQeu-%gbC;d@5G-%vWZsuZ&`g8w7SP5Vm9g_|~XKF(GK_?5O|P z-0d(fE`ow#D$DzC7xM>>`q<bzvtn_IC6@IWoVjk5X;~42)SLGiZM8)>A+bj84q%zJ zc$kvIM)i%0pIgvAcuIw-@7_YK**Sr%2ibfvRDN|cWZ+!cj@>08*vV^B)8;6Y6=d-Z z*{EOtz*D+tIJ1>%3%qT+@aF|*L|pQIV%cnQ{aH``w5~vWoLyZ(DU$!3CCyg8+PeoL zsL~%8+>@sVh8{9-vNsb;4fTdIazxt{IOjI2Ih41(o>y9$wU^$V_`v!mQ)Dju@T{+m zq25G4e+?BqVvj_mj;ieC`8M&RrM+q+NotiG+%c=nNp^>Ek9($n!NRv$r&G<N-SopY ze(czgXMpoP*Yv4BzU1aOSzpR`Bu{UK34^GA2NS&***DtD2F=y&Zf`FiA-(msKq-0K zFM-j$?2f@yP91AySFKW#;G@<rT)CCA&31Gq<8QQ6luVZsuZl@gxqMP6%~!7tg+Q5k zB1f)dQWT>lOt$Qw)KN9xluw+08R&Qc=JXUz`{}=jD3wnjT1B(^mh-wKT6NT&JC|K@ ztfNZKtVr8fnGOnz7&>_niE@RjX{#zKHzM285(?%{=|d)Z|2*Ph;(n<+jhffH(cvCd z|6qI;Zp0ADkGz!!Xq!WGIABD(_K_l!A!oG^Ti#U0$d+ZBNS?g9XgSlyz&>j6L#}di zW%TmbRI2<`-ZJdl`X7rOo2wk&3kJq8-iHd5>RmNc%qvk_6{g(<uEdeqzxxZJ8}T^U zo1+I_dY;2ax!|ZoZxQ=xceT^APrCU<nhETQjf;qLwGCf{JJ6;0P1*U7mw12`aM8`& zR?o6>KF9F}O{#-ymX>3L;d)Dw=M&SdAY49N@;&Aqpp27TTB3b~ebv-X&gWpIc231a zpF3CV)X%@Vm)Y-0QeRXE3XiLh&!pCJ3^?yePLn+h^FDOUZ-gaqP3vgb8O=(qkGBrj zLZyZS!39*s{M&Xli~Sli)6*AHQhX0RluMPXw`rG#<R!4bz&Dk&>0Dh_abQp}f{Q9q zoR?<ZrU}T?*3{0bt*OkoVf&t}`@H(a_FI|!#>{Xr$h>HZ$YIhC)(O+#DdV$$1nTLs zK65)+p8NZH^FBg0Yq|~3i+Y#L$bIwhr8DF`I!TqCZ^a7E?c8o9eT+*P7PyLj&Bx=D zTphX)&AUECtEI}<+F?d)Ss<7TsbLi|**_{_C$oxK<u7~^e&_o;xyX?y-ql2q2Z7|| zrXPvdISC1_tiOBDS7wnlSuf-{sG4g%z?<gEVU~T~&f%&Y4ar+VEmG5VLgq;yZPDJ5 zTPde6ww0Ri)V!`%k#u!9c9)WxQuUAs9dN!d!xM>>sQ~^qG{;E9ap}srQEp9;DSx#% zRLe}{Chw%D+Y8~p3LcU{sZ#1na88UXnF#Sb8|b6HK#U^L{OlFZ*+9c8AtmQ%ZA!w| zlK;-Yt^F^wTMem<J*q$HF39%~WuzdY@Rf9NycvsWH4l<k1KJC^&p9auFPa-1HtnZ@ z^8y|ss!LTuy1jVoawB^#&`GKfjqUq8z&6!c^^&JJDE2mv(=O|y1D!K96*I-_j+h}O zz8sfC=*urGFMrjaZA$*q27^%H!D-ozEOJQFv%#B7M9fxr+=i~fp&eu9rSn2~TFdst zlx)&PuoCfAB}$|-oZ*I;lP+{ih(uiz^mOox(i4<uo71!P$j<+Jws>)gO?IU|MPmde z3P$}@m-%flU%u??xIWg{{>?mEyf#NGcUG(ArdY8z0CE9>pB9f{DCA8(;#^q68^NWh zh!IclsTE@XChbvFWoRV9TRQ3VdAfqUE|HFda8f;IkEC#qlFaD8KP)%u_I<>JUKvNC zk!23mZ>8qSYEg=Ru@4w}@(goWQ!(HRJdz+{o6$}827)cUrkWvf|7)e>&u%2Y#m^>{ z$EPGs&}H$Fp^Eqn?f0eH!=866&f|#iSV?^sB{GF}=%lIpQPX7PG(JwzSlgtl=SB%o zkx%u3jfI+YXG3)4U##L(vrM*%dZ+XI7qib}XZDRk$BF~DXEJM3%Jv7gEoS>KwRNdJ zOdh&mWQwf{QpNWp4WZm7k1GMghjnP3nvj1*6S1a<q|pb@(m4F3)NiWhuyve?G-t1a zd#c_FrFo(Cs>_Z4$aSQop67NlZyCd<vk8~|*z1w^DfQX~Y76Q!XK=_?oPwdaRzueH zKHBbvRR~<IZQcG9@hwmJUc;k%Eza_i>6EH8>cMZH_VU}9ZcCj{H$FCtfL1Cvm-jKf zZt#%^kO=FoAJ>>(BC5}d%~D$kPYtazo4jM>vU$7=-o^Q0AWQ~wUCWm^vWtXeQ=-(l zX}!4tZst293Nn*1&HFTpH0y$-R1`M~>uMR&!eG!<GW*Y>#IVnvsnND~v@cR&7+GF^ z1E&T-6L}}eZ%`FwwUmtMnVF-R373zmHhu8$GxjN-IPcf&iCb=p_COwd>phx^HIBwf zHqSp}#AEVfeM}Y|?9z|-m3-k2qY6R_FTaLT4hB~AUUo?y%v_JB61lN+z61&T_v&0- zk|TKR^XMm*9ni9yQ@_upnU{)>uo<o4lXWHqa>P2ft)_a^vx^-9+`q26>^;638`JhE zw%`0zX^d|C@=RPLz3`*&)8z8X$`8!pu-wolCk##FjHBA>9PQ^s$_y%hqBjCOR#a`w zbzc&0a$6iGjwZGa;oH2Pb;{Sr#WgtN<v3Xr*_Gdk1`Ck#q@XW0Z&RS`iQ*q`QlD3> z%LaK<w$Iv+&qWUOy*gj^jO{SrF7+(Hl5IT&$>TzNDC(X<xAH<g4H%dS;wR1#T4<L% zyW}<3q``#r+>Z(S^R34uoS;W2kOj~`2aSwyYZW|+&Cl~57+Qv~S?zn%Tf9^^lqslx zsV@I`g+a~BeUFm4X8xmKgRH>*d|pwbPN7|4ZlrDL&rR#u%5_%PVr`8rwI#tn>#vRZ zR*e~fLxyLXeN^_VY<NmF>3wS~nFmqgJc0TA0`4*58zRPUrKMG9+UF@S%8fvyimfR$ z)m&wRTK{YPoGm7oXg&3tY$tbGq~MWy+IFQXKE#-YVdBN3YhO3n^dZvTS*$?77>CC? zSdDARlkQin8h40PN?S8bpBL0Wz0$?t^V8h6cXrQtx{2iZyF>~5&@3L9qZuqmU$8`j z_$HDxaWNymKJ&Sh+i9C85!F=LMrc|u)qQ$FZe^*~c7eoxuBG%814!QzYT;ZQ*PQVR zlwNzZII&!dbk+gqFdT_j?-#>777ayG4J$sq$o0A4nEq=FuBb{J9)1&I-SE766+5nG zrfY#rrKEgQeJ;o2{n^;yaNhTE2?i|SQfYL<XQ|lvB4CAY;W|%qIjK$!WOJ~b2OymG z%r}Zyx6h|+@D7j!Y-gf-Qm?+P3F$@$tMx~6lhIpk?%s|1L@HiQmwXMpOGV6=s41KI zHkUs0MS>T^>0_c-B>Q1C_YGV)pS#<2Cey&u(yYqKpMghonvo-rMvVKLG%d^O^QGlm zP2^44mhV=)tJAUT!z#hvy<%|<@^^&0I=aerVQ{;(3~^TCAxGyRg3Gu2ItCl1#cjmO zLlQ|EKM+!mU*w47fnEL=bDfqf{b!<uroLToB@r-b%7Pp4rk(na!1O%x!`fZA3ix)^ z>dF~q+?R(d8>UrHkF<3I_IzmU#zScYp6jz<qKc^x$5V?z&USRMGC5W)?*u=c#!8uA zbdfGr8^F}aRJi~96URnSFB6cj>je6gGLLI)TEu27^11A@=82-<rJi0j<3oCw3Aq{= z=J9;D=UDS%$RuN)wRi?U|K}gX&lo)Ket&-<lH<90Szd4Vfpabo`W<C^bN|_;+erJF zNXx>|9sQBvDn+rolDd6sdtE*AN~lwu=*{kwAx=5MLYcSt4DTm;?4Zd7Yk>FGCQ+yd zMq*FK>ApXZ>0YA@d>cNXyU6k#^l-#$eC&ernBCh*UYMt_xi_YcxlG~DfK;q<V%F+A zoo{B6-M+=c&cCvHFO8AooYk4!Zobuih^<g6eK2%fA9~ik<ik`FK1nuH3YkdRy-21m z9cxZw@~r1+!4-jkw1OQsFXxYWazZ1--=A(U$Jlh|SXh+3hnn$D%+*xEPqmKjyR%pQ zE%G*Es0AM8i5uR#zoZisB*C{pJtTO1Wd!U-J<PnnL%Qv<`a-l$x?V&iIKeT0KW2n4 z)6LF2g8z4>Bp;!(CaBcIa#Y@K1sa_34)#6w;fRUBIC}VYpQWP_d{gv2mj51fUk`tl zu!tyFu->LtsqY^;o<cTh*a@jcfrui_7g@g?wckWmoL`8Hs;%6VV5MdfmtIkwVY?#? z3rPj&%ypjur`;!A(%rb-=iPtrB+LenY=5G`;VZ5pWhNBjytTX9;u%GyA9Cf%Yp28~ zf%3c&8MS_r;Os{r;y;VWXEq}v3h0GBteDmMQ!#_8rYYej%V3b3rtr)wPnm#XE6@qP z!nGJmLmeg>SThS1vzP8)t8hio&F<02{qk~-C5?ES#I?5`;jH8HYTeuDo`DkIMZL&< z7Z@}rUQ#PIM#W`yVRF8h7K*rWz$@?+JhgDaNY7+fLJHm6V>}EvEhbB=MeD=#NjE`! z%5QAbqLq)Nyv0JAo!1Y!J1LCm0;V`3J`F*g?kwa`TS)IGjFKtP<a*@==h!61bL#(k z5#;3YutrKLM=bDiwlr%ZQJ;FPUg68PtPu`|-=({K3e+@Zsu=wXtly9)^`vtKjYgc3 z^#7InjZ)k;O7=wQ-8AFFW|h2_<CN)ER*!R*;IHD{ju1VimYBf(J=ppPnpOC~hjD%X zqpw{nKV_xxmz5-1LE1}11%Y~u<QeSvWdYZ>U)Ob)wITgxqzS6lJ1M9SEz#)|UmN4S zBN}|BV8wl76|AIOP1uMKCY;S_wE2*v@+`{(Z!NDt@563NM_ppUZ(Nf(LvB%^x5de# zb(#yk21KD$^2!o7zuRs#FQQ-ccyj9-63Xin+oHbrOiu3Aju{S-eTr@VF-QfcrQhf8 z{GvZ%Co)JXQHJebb}?h9nR}p|Cr44bjknOs&vReSJ3tDZJ6s{q@Bg4Pul}5Vt{r3- z7;Z{|3dMN-$E1ZP$0e5l7P$t|@ekVWf_69b@S0)#tl!IOzaRjyhYwy7$fOz0#O2mb z56Wn(lCWw+?%~IcpPWYKCQ3MT`q~iIey>n6r($JD=PuM#FJv!my~T4U<l$^Q1qwl_ zv3nR}S?n)!B%>zEg?}!o!|ht|@da&&KGSd~3&HI)F#W1>??9Kt_n!3C#n2ZiuA&yg z&g{6?CJl0j++n96!@B?UEbgw@G6r*hL7z=~572VLrT4*~4*tk}D?T?1P@)=g=?=rF zih5&#2iw-KkgJ7vN?bNw>}FDO0waVrDTTNB=J(P6mo(V@Y{b4A0v~840i;+jH_I@H zpe1*cd#!-6TLy0w{xH#Rp0M+$dtAJ4z9?(7kF#3Mv<Oi<M+h+Okzo0(?w|Myy=`YV zpth<Jb_SRpWGzi3YU4GsM4RfAmm{^jQ1F2aMp$szI>`Bc#pC<X=l2;kQ&Je`B-`Cp z6D#%RbHECXOuE}`mk0(}!|dXx<r>|ehg<J_l5;&aGzfO!#tEqaFjgU&r=Sj4U<=V~ zBtup3zKGO|o#3#upwbA}n#{4n%i`ZdPU&nki+;fo(jrUY{|FY4@zVbY@YGdp?Ar%d zS7!ox0U>gd?~l85WGkaX?5q1sZrFI)x8nrPnQl#+!S7BX(e{+Uf{#__ixIB$yois4 z`*jcV9jLJC<5^&Dhj}4&L3>UYrBHL*+Z7$XFe+V@wli$Q@qP(KrZ0v(1R=(uk^Us{ z2p0!BDjG3q!X;wa9{iZ^`4$!PI@Kv1@#;cEQv;VQ^#X_mpfV$EN=nW*YJ0oZ?AgkM zmG^wm$w+VC7aJ&NWX9?|d8*^!<9W)j(qdwDy0rC4p+l%M&D?FR0bcOosZ-5R9q{Vi z@ax^n;L=c$&^$+S0QnS^((L?m#T{FHhkvZwdzF=kMWg=~T>*w^NKi@j^#oISb>pvg zb23HT8(+C^LLR6!B1zTEYWmIbM;%IZp%iznsK^Dedgx3*6P|~3FIL#T#@J4HGF+Cv z9m^Bm1@6WZ{+>m(Bk>}wwBw=2J*oJXCg4XL!r=<KIq-p7*QzDs5h&H$bLQC_f_19@ zTRt<ZVUmz)S{9x-Chd2Dhkj+;G0|&;U7spRkzGG65@yL>e_EK8epDFUiHQ2t8V)^m z+7h9>`=xzR#?<TUtxiTa<#t%~I$kBaCD)AdwR|?@>M$w2Ar3oCyXJQ=cIqjmDY47& zBGW7;R_V#Z0Y<}_LJ#njsms_wNi#T0V&P}PCTUk>0X^*D#5%IOg&!P;GDQEm2{W2d zVk_EyyPh&phdw{$&=pe$R0kU6V98gECLh0hIU82ywpMV3a?2#T-FVlH?nYWG#|8ev z`v7;8y%%<D0iX+2$@(8oX;;^aantn<>~YZ^&$+Ko7w0kaWSPh51S(L?K9rmx0oW)7 zT>#-p&jei`$^F6fcR0D?nPdiZ)W_-cDAkM{h1IEnGV|;bOL&=aL^*lB&0l=GtIjO~ zbjI-zS0sT`o(_Kh<}K<ZG1G6stug6fd4<j2mRH#2t{)%yuREwRo4lTbo>ed`?L*>{ zK|qtK%1}JEI5vFUA$q=ll@~7zMp3cpX9+<S4au&XCY^mOPfPLDwv=o53<k(Wtk7<M z+WPG1t_l6*_yiWRiH8Tr7LpH{FHX-y?{i!qxt+rMjLCxA_1M@b2<%^61t>|y4ylJ< znVkSj<ztOd1CO)E?~3Znpsj*fNd4q`rC%fsv=+<(70S<AT5L?4IE1tKsN#F81J>91 z5>erjJo8S4>*Z}FMiN9RZpNA8Kuj4|MO@_%B&enU|G7ruHPXU?7@TXVV)DsUW%zH- z6JO6_iI9V~723b@O$9c^UV}@9S^sGSx|Av4DUhATPzwt*qJYXwt=f|}zmT?tP#91% z3?QUs7D`90EY`uCX6NgACFHCl^$$xmvvU`;CuZys(*V#yw%Hk>ti&m|=(+!oAdfbQ zvC<*ni4!xm@6qP<TbcG!j)U}*t0jxGW1ng3%GgT(nx<33FdrB?TjY_<*m^pB$k1yj z4>{NYDZ&=g6CLVR(;<TFdirq5nm$FYeta^Z{@{Iy?=PlxPJl6kyd&}J`iqyJH=bq- z%UH=69IxSVc&V2{6j2yub>ke>UZ@A}ZKVK=-iF3S5mbXua;$s4!MFz2b-OrMf|9yh z8F{xUbnznuBp>5!xYeST>Fk(2F8Qg@Uj@=~o%k|J7%xlN4st4uQ()*lD{A$G`3NKh zVmqtZ&yx4<(zG?vkYLaED9wZs+X+{aImY*jR%b`{DN5~?&+h@p5}S++)**PVH0Lxb z(Eoj$87_mIcB1gF6)p$==F!2C->S@*U2Zf#YyRMKh1#c9eab0YwW%%uc-pq$Nt`_w zXiRo|d3viH7k_wgu;wqE#1|+e#J9C?><HN8%+Uj8YsG5hXs~kJzUr@V&6l9aj1656 zWc7CUqOv|;7P=w7=?22>XXQ_GYn3uICJSSn*L3cZjq;HdX(pxbIRN|1)aT-Utxb|5 zFBjpjf7Y|N<QAOmqQh6B=K$_z<!)`IM~6~GpF`}%N_s!6F!Kt0l30=Fo2q%PArBG4 z$%{I7KQ&{VPg*zHDkjg(U>db}7F1Unoe<q!(uYyQn&}Tx%CMYlEZKTL!iZiGxa@-4 zU7%eCiA%6cc0^^Nh^+O+gdVbcT9_FZ>+{O$6-8aKSn_iodqOn>SHyw)%BKLMFMFbU zpKU+ie}3nx1UO~qh1RK3#`RtKN#5#>q>+vg6FQv1_%K%i=;pB;gP|-#1*!fx>YP_e z8MCE^f0d8pW&j~c7|G0`%D<@Iv~wtnm*3gr^E3TNKmeWxm|Qj>>4jyf{~B%{D4AiH z(aMMTL5D{cA1kOVz#`p#9iM%^)=aY3RvEo8f7U-PckeC1#m0o@RWvTkfe$|PFlY7B zBWHlHj_ZIhtE7OKr({6}eh4^g$yLU$QtArih8((O3+F)?Y7ZNQD9M>w(+4rx=5SZb zfh*pVp?zj(McK`>p4b>Gnagc%j4FO2Dn#2KD;m>1`@%3MzDHBF99JX@^|bO;?&g0M zY7xV1D)u4{mOdI-?d0d<H@t0Fyb8r!W+8yHgIffRjn+|{Bl$c|_=`<Gp@PRY%Pq}o z(ktlzyo%ag$$%;5r6@ITP<Mk{xrYF2CNz2;2mn$DQ9LPoF09^k{95VAiHj(D9(+}$ z$a`!W-5vn?WRX@KUFYWQ`035J@T<sN%(((!L?Y|{0!yB712h3OyaN8tju;Z~goJE_ z?M+=ea59)Q%8<8lq=1iSEr)5XD(jjE6u1Vq`JOqB*S|(WNl>rsO<QY6u}s~c&hyR( zlWlJuwf_(4b3l=NL3$@lNO9AZOHxq#@kDhb<naj8*!6*@8KYbLk~8bt`f3gemKJLK zZtlCg%a-HPH!6+t^X@27In1s*_85j$SYZg!j)&$-tWg5I<HhtjlD@@5lvi!IDhlx_ zJUyCuwHyQpP-L>-4Vv=t(~z2t#1T8!lk4{93#!FDpB*-4k?6y>tCP7K8`-7U$$tbl z0zCE)WRx@t?U(wi{P-8)pN~;jG^3^F4b9b)+s<s=lh1xwf8hc<%w~@oGJ$??Xhk$1 z6}^0c66wyIH@h0It`$;PQM*4x`py7qHp#l@<)jmj2X@2yCv4}y|7DQW|L*<!yVa>l zt?+KOo+7unir<RXKLVx4YvplnT2}i9#s3J-2;J>4q`SKOZ+~+Cp5SDD(=8chD_bES z^R%mq2M&I%PgHNouvQ<0%R}0_3M#-(j@u%)B8Nz>a=+i(ji~`^;tFN$!a?ESQn6La zAI9$nD?c?h2f3{Wz?Bnz*ddpI|MOnKKZ3q6kA=JF!bv2~yX+qU7tg_^!)%X|sqoLE zELM3@YJ&TC;YE%s>T*zb3jGH{?RL?vrF-7G0y+4x<=V|1BYDh9oj*v7Shm*uX*6an ze?k_DL}~ON>5a7UKbE7}T+GzB1HOg6=(adeoJ~U(P0w+o^~$WA%&tfTQpyD=Ry*ko zS(ryCLnT(t#UIS&u|Z7)jN@4ixWMW;Y@KJOr^BLfJOM=|<y8)@oR29<lkuSs-&~Tt z>GU#`@p=Se!-V?_6yTV{Poh~TR_)(<=su4Y+mt*bSeNBDNcfR{JVMTRs_BRE+cWwM zhp3$OCjb}zZNJ!e5?NO8-W5a2Wg}~K_Lc9|_Up$oH$~_8_HyG!iUwW1XLo<y0le+T zsH;_6Epv15ysST-@>jnBdqR!deEp8hrd~O&6d<7dBM=|ozVbO4ws2<REE9SriJM3M zowVt9obr>FZ9m8QTT*-Zge3q{%l?r2jfR3wX8B@i5$G<ev(;k<!o-+owTN%e_~axu zKgDRR*Pf<ut4%FylQ};>M&T***g9x7IV``@$$8chWQWnmPt-a7-o&LJBz~fuP5(xh z(*Bkv)~??X@GJlMM{u<Tqk}&H_6xQ#jm4YpYWT-?vL>}Jc<bvz7y7B^9>UoCOladR zyoud;;zimxF(q~*sx^6z7-Rgz$?G^Z|5}^2_iQ5HywsgBrtq=rEpS6C3DiPShnugQ ztiU*+Hi{<AbZwJz|1}D*i8|36@)Qggj*NXM*zR*Z7b-)V_$trwGN<glGxGE5Edps1 zA!c*bYNu$<CJxD{UNHp^3wmwUR`a7k>%ONcEGNv}{H)Z>4R(ffF`hkjEfByR*ov;C zVM|?=u4EhIb>-T-Q-4v`JDQ^`);NP1`$r)9(Zv!KVFf_5wEQp*ShC-fe&+Y+H`u|s zXAve<G@FwdbHz^ZZUc*<6k%iYUI6bf6q(Ctvj9Qe>&~BtDzwomwZBos4ry`TTgtD) zm0Zp;d2^5a2%=d(A~}>Jx+GT?W@`8q2R>#zZ^S<E;+6cMa?|Yv)Zrx?va2C^l!9-7 zRWopIn8-VSEg)hHabN=b3uUxZ-(2V!{90iO7D4r44EHML5p(z_isQM)`rLnu@9jCu z6&$MZUXF&gk`ED;xwE?O#=N^6BHBATbuw;*M?;L{aRHfv5%Gsm*32O|M`Grz>e}Ar zC2YSkPJz?iQq~)gQ4o=`mb8(yZ7GpcrDYhP?Wp+a`RT~@>Rtx-v=y$TBrEK-6<XR) zh+^T`!6PV`#5qkDBzx$*((<8uTpF~RfDRKIj17(VI@*upe)Luxel}z)T&Q{)z6onN zK5wbUmqo|6(xD|Ly5fF*9m`k)!5k|0-heE}Je}|&JC*n$v0Bk(+cDcUvZ3dmr%^B6 zL=Ns<<)SrVqFK2+%lAc+$QF5u--OD1m5A)AF|0)&uBubc=c2j)cAK-l^^Dc`6&f<5 z6NVOWB~2|Ou=hMATvM)G$#z{!GS@CJfZY(^=d|ybTF5RSp|t&4fv`Y5Y&PUd0$6%E zLzr8n`Tn^H40v?FJ$>wF?f1-bF@B}yA3?ehRqy%BSN9sk3l`v$5)7$q<*6(9Z07I6 z8d91$U)Q59H6p9+XYehmeilLTj$Xi^cGKcI<0Jn;Y$@n1h?<Xj>Y1Sc%iTZCxJa74 z4PgzE>geA}lFtV+nspKS_?acf37U5@<a=kHN?Wz4K-vMfyWt3w)#sL22Gq(?+4jKv zShITY`^zHL1Y9PB^&i2CU#u#XTj^tc*M9`O2S*;b<AZSLzq>tZky0a>Tj@mHeA1ky zm?wKq%1JbQf1dNmHj@Q_fEY(&WL-v3{=9*j)ro>}WQyj~-m}=5do2q5hu169sRwE& zh%QyCs;YEJ>-&C>F7r<=iU#6ial_Y`YMkO$M_a*R68?VD9<nSXd;mj^UIx{lXS_BK z&<qeKfD5A#vpxEr$f|;fADoK~jQ3_OTfPH>ML9eTkv<PUoW!FdM|?Ii|G9RM2y*2Q z<Qc<D*^}aCt=Qi|?R~iPCKJYXk0A@qI~2#{Yz{{QkdfOx2OeYcp1H<~o5{!#);e4m zR_*aqhy3m_doGK`hDvFhJ$#ojD~y9A-_~|bG_n=vCA@s1!5?&@r|g0Zl;Mlh<f9wN zc^jRP>!`B<Saaiigp&s1P%F#f3C!C4`Ju0LM>L*svnA-nD{~qABXEPv?3ka^6~|4% zG?6%;0G#^9$E#PT?<QHm-cYtL-%R)eo+@!1ykCE$KQ#FHhvVHhbJ+bk;J670!P1sb z+ME9)2)x&|8^aoDHp*tH8I_DuM4qT;2AuBR(`Z3Eth=~#3?^X3Ik#ng7f9uhmQAub zoPe+;P#hv=pE5jh87EbMSo5%jRJcbRz7hhnp0P&O*}r)?Vee<AM%Cp=kw^2nRipM| zvCa*)4Afx(;n+KMVYFF)Jn|puV@KIeuz6J%s85+E>WH~wJs?KXBlmmI%b``zyWD;) zwY9<Ok*@qyKwV3abOU!2&#>zln_Bydn9q~NE8dLg;NtNtspzkj<69You2AZ<*Y|Fx z_K~yy2zpLmd2<u}h>yvB-^5YA*6LpYe02bR$c|KgsI;npb~v2nuFUVhJ=m9wS2mSo z#t<8?@z;(U@!8@7jO|sPaPChl<H)lCY~-{Mr`LEV&_$z8u+r=8Ot>f?Ra)N#657VY z0mfv5!Y<&3nzy153l~zVkFoHH6Y5dE74<{EMjRA8EmFPBFB?32ddMGQ&P7t@s0Mt_ zagfPSE;Dj^cc(gJE3#T&N2T=-d7-B<m!RW@8w3dTp}fRq=Os<E452a@bIW{o^WnXC z2~fi-sa@2oc-n1Gmh!c5zd6R9`Pj3lloNR(!7`HVu-kX|rRB<muEid#A#Y@}V9C5@ zNyvVeK4V?aL3ST47;q5>7X6;vtoSDA>rr@HYT@e8h8SIP;DTy-WOmbHmoh!i4zCY< z*S+bbd2K(<Jl+)Q9cO<jVl@ZvHx?E>K}CwJ&yyr?8zhQfiCkvG7i24qx&lv8SltQx zmk(5VXYX#DNoa*!jpE|$@)tR}rFrh(7gP><_f_If*pSH{2Mjk4&zx~e{jXq1zHZU# zw&0qP4RH{C%CJhh1o~p7FD8!?6@YXXDq(ni6l13)55?EiowO6cJWJ`t`{9`=(3N`Z zg9{{$aEpIH<nDhu7jN?y@bi#Lwv_ku$nK&0RiNg_zta5Cnvq<o*2=*ox`)e4NM1jo zO>0?8SxQeL>BYbpst)q)ZJ7iE{<(o}F`d{qCz~5(biGEtjh3yYEx0N_3nN|aMzC6h zF{NA>n_$8XZDxBJ7(NZD;?a4&$lvAntb|l?V2f~L#Z}6s(1ne%Sm_qAe>*!)^5k$x z|NmfnZbnuRM$}`^WBllK*&+QxRY5|7zsyA+(vqKXPM%_Cgr`huGHKwZQj!c}2-t2k z@Wb)?xB@(dLkKIB_Hpgk<R@PK8jJWDNY%^na3VxlE1l<*&oNsb;k}c*1D=Ld<0Rl& ze>|RvZ2`IqBA|_8q%Sx)UN5Z9x{8$0pa0lsRAD#kJRY}wWp`Tr<*2qo;|OnT!2IUX zZVHBG`|1}ik*~}o0nTBqPHno#mHhqPV$o(&&+=T+mE45pnp#L~XRAZXjPhT%C~;vP z!6thsKV;CjpJX|I5j!<AQg{-Kz{q%@l$wX8V;xz)l`Y6ov$*+kDajCG<!UGN`b>h8 z-FmkE`z8eOlsmP$f=!e13$5t}rf;}eI@A>l*j{gwGh#VptA=nxJ##*OtJ&mrakl|Q z#dk){*J>l_q*J%lRBjTGf)*d2PpvFxM4;LCuY6D45^U#lZ{28n=XeUq?h5U2i!QJB zgsp`MS3j~+4Q2ini+d|_%OTTnA_fj#(mW;Uu&?Z<?Zr<-!<;96eA#0lM6(qxKQ;R> z>BG*>^qQ!!^MK@U-;jnD>9u+5#mw5w%IEUmiQ_<py25`U^RNm{f68xAS2yW!v0E}{ zVU<8E|E^<yzTSb{!@VoTFEn>_qk^Y@xjtiFu+y(uQg^or%X^}-0hjCPOlOmt;`yqg zESNJRHIs_IzT!cPA<$vVonE@#Fe5HKlYaz?0l*$Gmn{I0v3U^z)`a-&CGE29yk3PB zHJ?O_dGFpJ2hjuV%MU~_`=`7^C%+aV@x~7?Z6+Jg&@~**s%b-u&?8kdCFTu8mdKS{ z(!tOPQb}MD${;<FvI==Mbm0B-URv7Bd&0J80;8M}$8}y&#c6>cu~;XyR+zrr-{o`w zneTH!S3YI9%qCh|mIzQ^(4sz?u#;`bB(KVzewE<eom5qla&mdps$Zxp=eXj<++lJ9 zV-t&;q-pE%L@TKWMZ0U*OlM;3&;&p-v*?)-X8e)yG-dmc)FZers8EPdOg#$UUA0l! zY=?uJV|e6mYf!gV9U54!Q!dH(GKu?w*nb4gfx&;vTIoGfd?o0=c=*QcE)Qr@Xv(TX z+!nB}PFfZ!7lsf9y@UR3l&=-9_6;N)+Kx$fhnalURJH`1vOS+S;-0~*+v726fP#0j zJo7<12&%M<hy#k>k&#8oRli6L)PM|4f(7*V%8B!y%~sAT33+kcE&bZYgQWiN<*dFB zd@qoXg{4327)f6|Ts=E|Iag751ql3!{YSb`+j-8IhYLHoZ;GzI#Q~aP>A6j3iL};2 zJoLKK9g}>bwM2T#>SVC6U`?!YAfxD+%|+>OnLo6`NM4s*SR2(<Ys<<ob?qYiz(=Sk z%gA^RJP`9+wEV5iBt|U&PYx!G&<oY3D%5G~;*hhyy-j)|vfw)hDXqPcgkVR$%dWmW zjgw;)*xAxz%8mGVw>3d$`9B#ReXX7>YPw=kO4(`Tha9xZ>T4z-)+5xcM*H2<OfSMV z2(jFg{~ARn1m-6ce=q^^u<Bb6BjFmzOjg>Ihmu0dah*2Ka~6vZZ-=wj)WGzsMZv#A zlQw8;5&6D0-gcDQE%G%IQjy&6w-RC%N46o}^F9wwv;mF<QSu`GB!UsMS2FAK_(TOY z!a4pbaqZ*A<3$1>$DNBUI2_v71jE7bX38a*l5s7K7x*T|jP<q|fnf`LXQChh+Z)dj zo3QQn#uG<h&sF`L*F6IQ=l*-J3mREKLTfMmD>#y!WhtX?MfC(a1Gy{3&BGu!6Eedk zl|9hynO{D%Pc3;1Y)$`sJ7Xt0cC*ayUlY<AwRQ|j&SvUAvs(;PLo3W5e{M+JR)k(# ze33kKx^sa*0!_N*GSQL^NkK=xA#-=rB=Zq(k21m=Bj`cYDPdQdi>GqrdEY#7<r`FW zyp*?UnSN7!fgBl_2Ati74Vg%*eVnKdCw~C_A0=HmSK^|uEHP2XeeI)WdPg?&`NdPj zlgH$WY@vu2#w*7YQ*dd>l~&@~qti2XCvVrStR`G)GgrLSVO~>0q*81foiF!;4@yl+ zz*WpR>rzh1-M$7Ma|wrgQr%)r<3Cv`ndqBTY@l#r@Xz#TVS}k}Z&ZaY5w+ker;{R9 zXPM|NdsFAluQ4`f@ZlvY#paqZx5~A5`BD+SP|#CtWHh!r&zG&gMFU3?khGc?Ce-Da zy<jKLSH)s+r|23&qSKkoTdixt`UiiBhm`tGIAf%CG!!R9GLsrVe6s#+s4;Rv*q$U% z;tpqsepT5PLN2R=u(I05`E~q=OAJ*QC|DQ?v_!*c)J3|(UnfunIL1bsX>Xqxj(*-0 z7T+MEW>yKjL^O^ZoUXD4Y&zIN_y~XbEIhz+v#+mE2EMYaos9S-@FbizEwhXh^CVU` zt@U{S<Z&T?W%Whfj*k+@51NOe50hO3?wD*^IN5NFn^m`F%+JWZFyy?e|4EOB`-mIp zWM!T=s6QwHfKmP-8vkXMs{74#w7Kh&@FX^PzPyPhHoO-lG1kX+Du(m&YkOJ9L1@9a ze}YvDFI|m#=xOib{d3SNAoiqVhFsXRM<-$tynCidCeF_w`wF7pf#Ji&?MUZ7baiD) z{r(1!P>TVQn%d~G8S7&r0Vs?7%{wgjr<~rVD<Eens85T_Cg*{}3F5rs407e-o;W_j zp17p35s7?7Ea9kYQUUr_!Jf={{!2;VY~bD{qIl##wa2(Hu*Zc7k2CRi`9~u3nFr?u zZEoT8&9U<PRrE<qX$x_ib(c8LXTn+ToVm;1ejRYD0Wq(aS#ggJw}R-eiy~J1wQBl! zg$Lx)pq0$RMLO~~^4{kV!0!2Cl&3}k^C^E#Pw&vZ`_a{9nZx?=K_5q`4|xF??ft<! zuewEO3H<6s^G~m@({@S|&RcAwTVuI+U2JqFuRTBgYHN~0@>(iCnZgT}Xs_>jdyMnU zM+0iE@(s%ZF+QDMPj1EjW31YaD8b&lYa_#ec^)N?k#cw&8wkHF<ZovrS*(2T@ilZk z`r9KJOX+jX0d++9Dei6_8;R4h*UV`RUSUMX>VSwX8`VeOTxPKO`Q4FB!bq=6<a_v# z+lSW)fm{*tusx#8@B3~Ua(OWp(EH!BvE9WseiiV%qE7pXj!;{>(1cuv)_zY8@=PJ{ zvfBQ@?au2lWSi<g0*-$KgcnlJj+VM-)Fdm9U%r1I+e>&_lsN4sN`@;FjZkuWk9xtM z!M)4NvJxGVsp4&CJV&k2N8oW|>n0-KbLCUrQjd8_LxU>Q<4F4Nb~@vlI}rgSv{4%t z0sC{9|5tMvFWg_&x=o)^ZKhb7qLNkLNe8_zqJPgrL3MG%y7=l``%ECV4Ut9o-*m$- z==9%FTsn|unHtV$5U-9)7NIp`)v4-`LexZ5ic{eeQVMx<uZ|2lhWao_C*<WdqflA2 zY4@^5wc=ogdX%oIc54Fb7Zu?OL%qID5KZF#cX-VOZ_mMkEt6gukA@DP`}5QWnTsUZ zD%Z`h5{gEtm>f>h2zz_)uwBi+<D2n#B!ZdaL+aL60M3s{@8)v;XzXW9>#o}1X`!vw zX}olFvZptbWUXTx!hHg1#hqX6VKKI;!(yFixLGkluBnSlvlpSQj#^huXVG}{Bvm`Q z%*J<raryRap=Y+O?{5c0;bsRZ)U|qMQvG6Z5A)m~nNh=kmA3U@mYU2S3|+y&W>|6Q zO!12N-e4uu1~Ss|-rx7#sEZnbF=^@Y&9tRBws)9C&M?$beMCnsxewS0{iGbhf2@fC zGJLFJZEn-k0>n!LhxOeABM$bpm>N^n;;aKT<nJue-!b`N47|03Jp6^fkMB~xS$G`q z(pZc5%<&5dBX#qXFNq@B=X`j1pZbv@hQ^-EtM(s38BSKnx;?$@Pj-?Ea(LU{2p#lw zaxmUTw_J(3<AGT)VF7tg@rTBeN5P=dzjJ(4KSut(Tn?2bY-NRJzF-|a^5HG(@8f~d zc6}XrCbW3!Zw!p=?uqbnC<S)|!Ijp0mY)(*@29P|m`~|prpO?O^!b@hr}QU=&Et+Y zHu#N;o1AX;@!W}$@8d){na#t^beFxk<tHtz36_>|YhsD=LP~s(SY~zWc9yI1^VU52 zQq^zbK0jw+y0fdkhpaMMteJ!Pet^c`QK^ef^I8kyx)tHZ`+aXoc*G%V<tNEMpxLev zY-d^jf%)}!&sJEklah4thuxt7o-cc3o<Z%2PwV{;jdv|Dd=Q(vYiq*khoA4+{4VeB zC@0sLxcbmqpE@#rxCMQG&Udd{b-BGbrP}xy^6KvgCH$_Ran!Q^x@eMH)e`SiSsoMd zhOj@}bSZGsD<fUd2&~GtZJFp6i4tdmlONN#A84+9#K-d<gp-m<GJkqVGM-m~18fqW zPg|NvlUeHr;|8AH4YL<)Tm(?=-h@>F;i~Dao7db&KImIw0X3d)i-T-2LC*$NpUND6 zsBM~h74UU4D;nqKM0IQ03eXfD7QFC881OE6lb^Mj>ei9l&s^ytTN2n5%`M&;ZMYKE z=E>I<O8OZMvC%jsmNyw4q8TOUcfzkAl?L5oJ+zeb{pxxd&6D5eRV?U|Y7Krx#BoNh zDph6!hE_id6&*!Z4DY~aK_d7u!96Wu+1cVR%?ZpYJ6(^P_?<E7bH)qWXS%SIqbmSk zCo3dcD4(65h3rE#;7e~9h^#CMKivOPtZ?oSEk;GvBc&z5S{G|$rD>#+$o{)r+c2(U z7os3`V0)W3@_PD@B5(3{O@_yJvre`TyiLpsWQxs%9wk~@ypu@DQ0iwqkzE}~;M2D5 znsZB11M&ZN;tNeR(!ozm<vT{+{KEd3dQd+}q5q(CBmRJv;On>LNUxc0l7NEuC*F{S z`H@GS%}6nmR|*L7)Dy@mT`SAv_C!$ez@ut?AQjg_*P%OKpll--V~6uIHj&X6m*ht1 z0O5B-t!-;NESZ|M^{<|MEuve$mjch2?_<9#_!YXQw+MNK<hoUtwQNe27WFg@P2w;u zb54|2e3{~Y(BUex(GYQDabHxl5;MA~4@w8BxTMSN>x3sRo1Sl5+zxO3j7HMCLyF`B zhDUUoeo~8730Xz0<#PHaD7p^BjeQeDFTi#IimL@>$|_3$X7huAJ}VU~jd^CJ%s^^L z)B}O{(Mv}>&#ZCh&5gJGXAL6O8XJZK3R3_kbg&ZT5huAdY1V3e_DGO&p*zz8DB3Hl zY+K^q9mWFLD86j`2bq7lww9*(+2z*-%`Wnd@O?=pRI^5$#J?@J1Elv1_rzdKdU_4c z_0>rJ{p~%U>j#+;d2vgUNDAd5s_O8xAG($j`<)!&onlm5f?w7}j%fT2YJ9oKfT*A% z)Vs&^Vrw=a<eZ=fTOuvLKxnkMCDTI@jRaLNL`|i$d<@zk58C=iFmf*QjmAC9wk$89 zChm0L*|p9AOi=u?$#iXc&n@A%lqZ~U6{50)@1y*-Goi*)B}q<D9XYYXoe+N|*P>4c zw$YS7JkMDd&fnv761(>6AU`m1S*I+>ys5d(5T|2cnSNrd;PG>;mpIOftwjzd=@G8h zM8r_oC~7qP?2d*nH|oI80?K<ZKHe{yV)}6Hc@PIu7$Z9;f2$LxqOC*PV=^x_c<al> zt0AF;MGhbqG;;{KCA@$-y93dADp}m3)AKp8bML%|J0j;{-;h<PkCC4_OZlnPE*II> z&3B*WbZ^}9K`9+y3}>7bZ*?mPIX&_q+S$HdNy#~Lt&ciCPv>bNug@4i$zvCr#mpN9 z@?2!-!FrUE>wYNf?_Z9imL-ce22(K~TnoR*@e!3|%J@D)SY}?SoYGe^qLUvB@O|*~ z)+e0KX~4x?a@xNf{P<zpnY72v7dl^T@5E+uQ}T=EylLiGs&ct=NkCpAaEUoBy-A+x zE+?Oq(OPGfH9`avtojJIH7<04Pyt3Jpcxv_-xN~QUYFkta(cD6I2zshW?$nkqCx6R z3k{_#oYF=>U3$UgQoRx9cImg}NhiZTIeG(`PkKywdfw1*tl~$p=Li;dC^77(A6{I) zAKl(U0>PzVL00#`^Y8fPRJRgTr--x;kXAz~OOmwpTXK5nFF`-ZP{L`aPbR>!YG)0Z zRo7`&l;_Bs*_Fd)-8D%Io%*Ik<}mFKgKFe%{FM7*;ml9H{Mc3p<cHc!mKyt732d(B z;|+~aDz72+{)+eZzd(FwkyUf#e^Y(pu>CQl&%LK4;=NjM{ODLZDYNXEZHIwN@g{zH zbo@c9Yi&{gPa$>)HT_;j@hQJ%z^re$PMVMyFP-lLw`<7VvW*G$FmD|hQ^wbV&xy2j z{0J^z{ps>6gzm%_ml%KkTI;z7m3QU$glA4*BH8Ze9w4^e3s%hn>(MR6`X9H9VB-%_ zjiy8A&ifil>vr~gv%{`QF2pn<gmKb)GhHJAN`UX`Q6wT|b)mQ3SmMbP+UP`M`%6s# zZ0vWzhr!b<sb{~lMGC0Jh?XY+`vHqYj81bc(hVssOO_O`-`et#sr467a0_kPyKTpC zY8p(JCW1N&m3|}!)g5pV+FV$}@67Gd0Bd2%^+BYYS#B}5?duccH3+1Y5skM#Ysyaf zJ9Vc;71(8ja-|cND2m}l^Ns7yQ3`g1$&U;juZaxP6Y+!$hP$1M!X4UkLb{AuqSfQ@ zu({cfzc+|C;BOJyfV5yaVFjfXE@e<}PK>zQv;T>)YNJC(EAa?QzTVl#YJ{(G>e5aq zIci;h5F9ndf<SCL50o{7)|$F0iPpq)ZuD9D2skhEk~-lcb*4<yhFDa>|0p^Oho<^I ziesQ6(%nc(3(~0|-5mp_l4HUIq+<%w-O?&0F(xraPr5}IA)}<F8wMMD-o5|9y}Q4= z`;BuxXZ_B`1;e&a_?TTm&NEFC;gZYP(Wg2bb%r??UY+gDPY1q#?n>}YUg;3#wWg81 zQvGXV2kLaeqE3~2u?>CWEO*Qxk``CVMlY&T10(xPg$U!QX4=8!U3z@U5ga%Hb>(n* z-<Tf6`~2kd!ia$JOa*k#W7nt?_i!mF|A^ph+r9OpyuvYjg|0*|qoWXiNC2(}@o_2~ zzrXl~Hk+w<>~=C3Pu*8{Xwxasaol)a8UUS_(_-GZN=1%E{!_GWUI-rvXtipbk#uBX zK!rOL-(>|H&UMgktWI(Hrlm-?%wJ8(4;fc1{#eZqtxrH=i#GzWC0kcAYHS*nu4{mf z&r0F@Hi@s^{}T2MSQDzqTk#9(626u4Epq?=C00XLVIc-qUjA>dYy>_^cE(aV+j(n; z6%4?<@NrFlCE$dVC@y2F&8RnCC)VfWY{KuNlMtsw#O}>|WgZp%fqKU;;B5_&(D^@! z)76F0e!2mUvdd!8B9Mzsvv5f#c=6Ruv3Tw6l7$){QCBO{dz-4!*^s#sK+zxj8l1l1 zuh5zwTy}j%r4=C(IU2ezbgSivO42T6&O^InW$K^?$I)RfX!hJ|tFuGKp^9w@+PMWp zPYdL!R@b`_>pDRA_+{T+#<83r|AWvX5v|J$PuUAyYGcKBYu*a<9c7vof(!fCbi&pN znJ&A2zFU<D6kU62-)rA@rFBwm3Vb1NYPXAcjwy?u;$G&|U+q|FOWyoeq86DyfD(nU zwuar^7P`1@>NDv<s4KWH$k|q$S^3jnwYyGv9;NUD7!)purLVM@gq$Nf6mquzg`!u* ze9r$2xl#PN^_j^M<2xUppfROv%ZPM)w!>6Sc2B*?>V@iNXKv$79<20JV|Eh4XO!i{ zc+1p=Fp7yZ;z1^bc8t!K%k!#6SMNUaxmj&>*e7T~Et3v^p|1$m#Fw+1b=PL*YfD|x z#TxCf9BB&V&QfU}02hRu-wB}6WPdIVkg|`z7}LIRZMDg>%}p!<Su*aYr36O<=fY2} zCthV=ea-FKP*_8*=~}@UF<8GP;u(m!`cv`3c*#3-@!&raYp3q>>P0)lm;CMNToRt$ z$4G_UJb1YWD;B)_Ied1DhZ^weA=#PC!3a*8?w(s`TB%O*#N&<F8XV+<`n{7o4qS4S zI4&PI71kz8Fwh7!-Gut<VomP9=)O#B@__zrMckN}*u6IqQ)2<%?<UiDbMKLykLmcS zaqL*f`DZxrQQv#6yl^0MkcavyzhC<pY*W%BX&rik5JM4DcKf@T5ki@VOQZKl1R5=O zD?{4g{MRhQpDehPJk<`tR|KxyRk5nTnS*{ntk+hO6z@FSZGFm?dzAz5z;X`7)zwSu zAlIxW(w7fMlKVTlfpgbEwa$_|C6dM+?4fN9_#Lr;3y&X!{$dOLxjgMuQp^Y6CD>FA z44Gqniay3ay7@%wIEM7>2=U5Lb~5Og9sS_wL6_NVR;%Gj;xt*>GJQZ)JG^L`S~rrT zDPn$jK?Zdj6Gt1LG9CnRQd165GBnIIK*Dc>*36lxU-N=}YJlm_W*OM0tq&z2*~LjH zSi-uuJ=_X6a%PQZS)0VxtvBJ6uM^{Vhjqv#h_Fb(1V7qz{*L{H(JK0E`!ok=Y$qMo zNxK;U5tg6-wJe72cW6pESZxgDJz9Qo{LEn|*iKQHBi40|m<7R_JLQQ8faKu0`nxa8 z3)hzor~f0d${DxvY3k%I0=oc)_$|0ap4Fl){Gd!bsSXVi1xGL2UPh?&QrXWo+2S8e z%Bb)SbMUE4o;HO;%Cwn&MrRB$F?#U4vvzjMNU_Ve$TJQh4%}v<LgZNZ&Ky|1{v)X( zB3)=4Aok7m?nV`U@6g(<e};Z?*_C-iq2F~bX<@x5eBo9b@($Byk~hUG>HPwXMfT-p zX-T=<tkqzgyrxGYH_OYk+_~sc#G5tq5Wog;DY>0!KWUzI6Yw9&Wd4nDK~xlGKK)A9 zX6v<}KUk4KCc_prp}P1!HCN8wnEeyIS9fPt%3spPY$VX#=58vLw7zIT!L?N=>MmXl zLfx4D4_WZ?*RkM88d@gb%yW5_(CQ)K#2`}PmE8bLAkI_bG5;86C@&bTFRNQf7KW0x z7N(Po^*=LTw3s!kTl(}~Z+0x9SEynN*Rz#kG4_wza|Ms+>+uw5uL-ZHRhNSAoHl(P zB{Je(ozNpSQzL5sPv7#+jnDBi$|8pK>D~Y87Z-Hay?igDEE(m@6RP{$a>FNaS^OE? zq!;_dNF=VGFbZ*=cxJvX;F2Q8oSI(E@~tzSEpSZg$)=1+(4B3|y{q}HR$SahLc4Uh zgX%8o=aIDlP7m0y7)O0Ta-Z8d#G($cD=VIJ{eFzv{dvHPR9*Oc=m%OQAvEl<<V(ug z%&1?%=={Hi5i}Q>>TMspGROwJM0CwSm#A~(RW1^&sn&B%Jd3QZS=5b^j@610&KY8t z9XpaWpj5Sdh-kfNZi1T$D#q?Yf(9>74SJ^OQt{H@OVl4J?|nzNO1yC6kLemNL%DJP z*;_76vSq21TPl^UmI@Hp{~OXo2oVj2od9_8`VuOrungltJ^rM5%0`GSwApDsOU7<j zH%K4^%ob$Z%hi@PK!Th7F&E0&KJB^Q*3^(PHZXYdNGhew4iYgdr|69njjes5i@eQe zrb24hGbEz|*}Zw{85ZlH+DfP-Xvbjw$z4wBf~E8sdY=}V4vX9<l-eMkSg}3uBKReY zWsLcZmU4cEdvo25!8j#ZIeaGHROs>_P@epQXFxaZUV;n7?$(xyZe>G^z%F`zT+(GX zVgEKSq!&6FPN17GET>_RpSLT|lv{`7>wscWTAMXgS&()wka78!_+AY}5Cjold03|V zsO%@NU|E<_EnXlQvn0{DsIx-`y7QFftS@K=d32k&xthq=^Y!-jlv2x*ctGqu!DQ;? z_$3FZ<yC&Sq@}sX?mGNBbpMj8MD<pE{P>FCC+U#bH0Mb5Pd_M5&KUf4zP@`*R|psK zzcs|0jJWsFjR6^XCK7;|)F|y^)4u=Qf2zn2E!F<?i;|ws<Rf{`>9aF8(|($a?He$1 z6(ms5l4C4GFsN2YD%&9EE6sYlUSMU^*nfwwUw$HJC5JSQ0WNKzoqv)lMNJoJgZT*3 zA5dz0$t=6Y8~IP<tGHVLdeq0u+^4fM;Tqo_xuV{q)?3JEm6i~MeN%D^j5&PVUnZ<) zWr@>p8dZMN?z=+KZ69ihs7oue>1m^qxn22l?OsRt@n79f)~PzBbRvock>h$Z!gw?x zXZMsx>arsXeiNF~3&hHgJG9o_REJWnREM$rSqREdfBb1sSN<XWqax$7Fd7^UUg*b7 z?tdh1Dr)^)^o<d%<=+^uM7KO^ziVlkoLyVV;psD;qm><qicyavmBYju1B_S7SC#YD z2mNxjvYQR6@_5_n&c{1U0kZ+|VxG%;N0_*$v@-uBfov`SuGlQis`R$b>-WTur*!{h zMYJiLDqi0!&(Gg;c|E6+i%7+E<ijGrkMZ}V#t$!@`sLAWeEYsV**u@Ht2ERtwyLXO zQd1@OL(LB63B4P+CrL7-I>!LulUQ?%I%@dq`gILR1L#}9xh6IoHW$=7Sssr0;SlCg z7xQr9SM*VkN10Baf+|R#xH}P((d7C_ybFXHM_{dr>bQX%h027KPVh?=!!WKj2`0SS zO)imv$#B${1v_X;lWc3Ih^Y8YV}UnZLy?A$I<l*B91Uaztg@_#@sAS$^WO1S)_`L# z#Hy#+mN_bOOl6~|qjyqA>vu2-g_45Sj$Ke2@EULUTF$5>LLU>*lrViJgV$eO)L*?H zzjdq%=U9OAS8L-|bz-3n@nh~V&hF(QS4?k14nO6}@=T>27()BP$@x_FN;x+-?)m){ z$LgbyzqOTXFoPb3AA#PuAvXn0^975kg2TO8<6TcR^#YYbO@R)=P53(O6!<J13pwhs zJ>Enz#hi_RqsiX!`LmbY`;Ww<v-n3N)&<8GssN$gC8zk+!P|fVG(g^XU(KqlrNl2& z{72#pc?kHY$nKvPjq(*T9KMC=EbsI^K1@bH*nwfyeTs1*S6&89Si#}sXM=stf6EJ& z7ID{pR|LLcKhT)tFXOU{Q<+ZrQ0HT+z7bqlK%cR|S@FKr#qP79=fO06?*jH^#*SVM z?h406JRyB?Hpb)#c*(C75_k98V>U?_?(?6p!zfPDW4QzbZcI@3XkpU0<0bceYFf&! zSykmgx?<UcCzhyzR$W`aEZC}s)Gmt=pKfq2f%P~1e0QTU;+L(nR0@y${JTd3EI;8* zs#M`4d6b1E+e@O@1gReOr*ST}e|Sg~xTg<4LK`5&GvNk*fa-<Bo2%y){-o8o_|Rqz zk-vio%Gtk#Gu<tcZ)rxK<^TDM=14-c_WRU_b7p0f7L>Wcp*x!m1@G#&U|<zd_%%O7 z<>0*<CloZ#VS1n}a<s&}cQ&{Vc6XdK9Q;?3z1hxXhmC@dI7<U`UKNTXnECSn9~ds8 zSy<TfHeqma3H1K$lLz~jc|t6mz<d+~M_Dqg%7aEM>H}aIp?%jUC@86fQsMsgE}%R; zk!~J{4TE6+`6^h2p6_VQ%sUnpSD{C5zMwhof5IzylRam9-gJX;Y1$w)toSw-;Q2^S z>Sh1mXL@NLj8!PCe;?EyDpRdwThd7W=Kdf|?TfglTWu#bu3G8l`AC10t??NdF~R$n z$c}y4-h2)O4ZCDZ&;_0zE?W|HCm3^w@MT%n=Pj9iPJf$n!0##o`@<2~6`Y=Jcaanp zwlXFqwawY~o?G8m&W9M95W_yZ$4=)V2Rt%Kq1LT+{48xK_cQybr{%eIx>Gb;>zM%R zG1UEr?Zu?3e5mW>dvauoA=+=CG07Ra)X?DEq;fhn+vg^JzO4%i0w4}KFB-zFP)`4j zo@U8CnIc&1T`v1g6T;ob6;borITVc|?6AA8erYdw?{I)0m*iWtwOY=%iq(DakuCN( z1Zc#|^EO5>+F+@;L)$DJjC<@X(4#+|<?{JG@=ogu6sD9kS(-%xx5EV|)xjBa^A-81 z;e9w@VeKHpGV*z6!FavCPM5i`vy;kwA29cVrZ;;IHmi&X0dOC7;{8!efIgZxr0A7( zB|SBLA*!p?by+j;8!r8uDA<3y5y>KOt2KZbW*@XQ+};HCLd~R1{W6kl1npypt(@Ft zxS#?U<RkvA(WaokI;q#&j@6kK5;3zhv~csa$gtv(@oRwR3QT!yJ;`85xh^O|BQ<XK z<7CY|h+0%Ez_XGxQ+7gxBB9tsghh)ekHHW)mWq#5^n0c*%>3k9cL@O#64JH46~;kh zi@lQukAi3bjKA1A+%$cO>A?1?-9{@9*^mFshCx<B*kmFwA?s;#BSFo$-t($ScTA{U z)y(N<D+N~W!CUIa-@j)D!63Wiv+H9W4ega(xVAY>wY=$Yxif_jfT?nk%X%04*OT!j zh5h+R(=Lc;xCPR@r8!aZW)F}+1@kix^ch}}Th!Y~{CsMj946co7~Z#$EP)t&dOJub z7xL>zet`oT*LLMj2<zX`qQ7DzPLWPJi2UZ{_t^)F`%{EtdmY<nDX%~?J{}%PK~Oi^ zx1Onro%)g&wbf?7zqouZP4CwKh{%-nwvyhb9Rw{qcd9R|{<Eny0@?Y1b8nVs|LXPf zH+r=K^~08rj6CE!N00l~JFkpZJ8g-(qCF}suVhR8O`Wn~wH*lRmK)AxKOjx8O|!|8 zAD4$0KAu=@ZDG9dFLw98dJwK=cil#KuwNlih|>$z=!pNVe*ug}(l$zPuY8bJw{%JT zGKq5to<}2#VmRIGo^`jW^@VdC5kuvpGmH4J$0b-1$0^P1IGMgy;I5o(X{plY*76BF z@CNo4E)Bii#Ss$=Ljdo%=M5fRe5?YzSU+f<&t9N9_9I&IuEtk^@$Ju1%-N@gzt7oX zlEFeHbrH`;L~>&WZ>@16&fxoqs!;uuRn@G&sCX_a*Q0?bKYeDuLUP@R4c3{}bEi9^ z!FMvw8IFTGMaZ=oVoMU!w+iy&J8N%f{oBI6<sAf|d&YOAJ@iUf9&`z5Np2e5IA5y{ z>56ZWAG!6L2P#=iw`*4$#=ey%o0;=^#}mZyuFZF%UR!1n>$Cz)QKcdVp@6<^Uq@=J z0T}{0*ZQ;JGMiqk1_fGG3W9fEajItZV0TyGeOyt5CljI1Dwo`mOlTXs-P8I0=<5gB z+ME`??5}+X1dkZbwR^;9w^q6KQ&zb!DHjP?>!-(D-Bc7H0_PE8Hd?&*hjKu35U-}7 zps%csJXf~J;Mk6`UWG>Pse-!rvDdM&^K|~kA=}Bh`)-L*dghEU-Hcdy){R(z3slf| z(l3Q6P~Q>ztdxkW{*Qz@y5jiZ48Zn%<Mh{)^7`rW&^y^AE<W$bU|hFBP$mK^k(}65 zB!4Uyi+8EofzrNeYMv5Pf0_Lw>(RVU7frH{_mwpb&LmWM!f%=G1@0x@4U6<Unl~US zS!0Y;InWh#$*Z=tD=MxUU5m*P9aMjji84c~Oap6&vBZa(biP!%T0H`%Dzyvs*AKpD z_2gyX&|1M}b5*-%Xm>el;ViFzgQvWN+%Wv+Po;iMsasr`u)Oelu-1*;gdW8{SAxZL z86&O%HYp8f52Wkm<T;w^eB3rwtE|6zCuF5*I%6DBpWrsymXUgEZvicc_R}Aa-Su1( zGsEb^$ph^+513)hgR>G+E2U3*l>ONgSKAqvFOso!M{TRq%b!A({stbvMQb>BEn+OD z?Y1Y@GZdavn!XEJ<I=lGq4%H(l{`BCkEDOQHXUa>-H6adh~%C^T(;ImqWS)jcp3Q? zSQyjA^sk7l@|13O%>gwBv+Ek)=A**FS9@-(4DYb9Lx946g*7e3E?^PAr5h@`n|xKF zK<Gu(<oRJT(~NcASVgz;b`e7ny}r<7z&IxNW7pCbN-Ac~=89rWKf0HTK2#T{g9UdJ zgpVKPapo}fz;FFy%=0A=xzXF`(b@d_p$z%z*=>s_%3BP>z(8YLtR+q*5VArQTLXXn z1DkgIOG%B{L(xpQW2RV^^QCx<2pjb+ujWCx4c2-k1Q<muDhd37QnO}Zcb*?X6TJMm zNMc%Ozser7$dbO!G5kr9tKvJ;9$Lb_qs+<bW13VZq_G&Ig3!~??O@VmI}eR1OX^k( z)a^!yhk4dE0YSB%Jo7ung=r^l5yU!VWSKUwABq)3_KkD&tr*kpQm7^39iR}}#kbl5 zru5HfZ!y1x@VT+SvaSeRUJ2+fjxVCaf{rq}!qpHnq1s=zS>cg%y+~_XTg?miOM2UU zc@;(99g)$_`*>6IKK#8gRw$q!%79HUo52HoD+A50$rJ8I>c{R2d9u@dOf9*ysXW6J zO%T#O>fW+Q*f;f1jE1@K>XVL@J2hm#@ec}*xgR+-lNQC=-14RaF3X~ct0J@QFgMdR z^bgU5Bf<>WzhpW+(IzbANYziy&y`I#@BaQ<dTg)CjeQx)_E$tqmhJGti1*5kPnf{g zSUl(s_3c5`3-5wyu0(XG@^9&4GVPV>gfVT~w%^)#ewN`E?tk&^7X;U~Vv@0=%dX-h zBQ7>9Q<oxtQbn@NA&bZo@dC3MZOAg8Jr$O_O(K7N>S(#P=osQ@4`Mo2ZaT6n&0*rN z<Etl;Oq;zsi->&RS*b_U81${C3F08(g1l)jTfdZwuN>UaEYCpX$e^B7`#;S-)Sb!n zc*i^x_vp6GLN;Dgqs;wUpqM1bw4EY|zn}VB!TxzyrQPcG*AubsUVA3_1o>;UIjD#~ zHfZlRMCxrnvp>VO`q8BR%d=VQ>#+YwyeF(^3;Dj5-Kbe!XT$j$o3z2z12#i{o3HX! zr$Cb5szxgG($qi2`F~)Wk5ArQbxz{R9&$M~KIF(DRn6Sjn$-O}x3W7KA#hqo#bt7z zy9iM_Rbe{jUJRWUFKP{9pf6##A98grn4s6#fy{R>^xbC?cwU>_=KpcqYTgv|8YJ!l zM*7e)FE;JpnfVeO!eQ1Y2D4gK;5C-gj`JZqoT)%W%<t=7#1-i5I0Gg9(?yEDRWq*X zLau^Ta<cnM*J~FE`>Ho;^k$hI@ueoV4CJ}@2E=cjZI%?hY(N8X3JxxX__=z?mJZ=# zlRRnU%-(5TvGeQWsLLAMe105_l}MJhd3#&!UqcJl3d1h_5%?~A`J~0i8{{hpaZp_a zt5~t@znqmrwX<ljQ6_1ATU;F3SP-rxKYfj}q`7EIkV)PQOlZq>C`q`_;K2}Wqd6sb zV;AHcVFZ0BVgbpr+(tTFi;%rtutdSd2wNxj>Ts4T?aBL2ugWYdnC~!f{_qlL5Y3?; z{{2SRS>)3zCG*@@{y3G5nakH7Sqwij0QQ1CSkl~bO{m0mx`uy9Pgi#8gKr>^iO|uj zf{HQme2HmKEJZR~hb`s=bJvWR8zM}rrU;iTVr*J|BQ~U7|6qK{Y1hu5w(oVheb3vZ zjt>@T=BX;e$y?3T%JJhO1^2Q#x6i-%c2tSj0bs#IYA}uG@L}sdYOP{PNgoXGj(e3O zAg~mF<B^DzT{DO==kBRDjN&s$Cp&|MRF8=Kacy9_ANFHj@!RRuG>4L95wqR!>Vx%# zmX~*YA8}Ht?3RPHJm+@7yQt-A=uE$rS?H3-b-3q&l*rHlcLsq!_Nd`=Z-^{GP^QdH z7y|?>CAeR9KYGPEz)`KpGKR_}UCwPOm55d#w|ffsxlcZH7sjbf+!!isJ34?)EYg!_ zQNZydAt77aHey1|qw^cB9i;jl<~-e7(0u>39=gd|O{Www{><LWCut7W{)cab+3LJ~ zL+Br#Jh>~9O|<Z(@0<kkJu`qe3CSkPV}72mwy=NMIgu%YgYlgkXsx6*7A0GP9f1np z9>=f0EF*47BBUhF@{YxLGKIJ-XKTBvfJ!O(Sn=PFzBY&Tr7>ReY}YB5=`5z-ljkXQ zjo1wO+K~R7`t^Fj$+F&}kRJPvqa#qYIJ*t_8YHj@TZW7gt#yti;&89OM;E!l+$mBT z_0NrF?Js3C#!lVZl6OqZ_vTI0$ll^uQQz4hD%?za>hrHtOj@p|$>ug&Pi%DgOy+%g zo|+kZWhtkZ=6TH9I^g%ii+~^VBRY_6I20THT&U45v+e~2Z0eHIgi$J(ataqx=mEY= zw(8}7<o0@<HSDId=widurCt4_(bh`PWwq>A%*4Hd5(OT^Wl7#C)?L#}`wGr6kjo|L z64PtgwKyjiet|bbEvf0@=&zl#VIKV1GA@aO?|e-`))PjLbv<Wf<9;zH3{_3e4QKH5 zRsE{>l0cB$=SA?0c}PgAz<Q+yHCR~U)}cvuksz5c&Rt+3F__VxU*uE{x;ug_UU$si z0Vs&m+HhFT`%=tDtMutIR+Baj5C$C5zmf~)X6z4mIQx3E)~1EfXxhF+iL|hYnDRou z@|}!retRT4{cBQ0F^k@zv~~$~WOlfF`B2L2(hOBNi|3kZ^LeaLxbZ%q38R~#WIS25 zjeI5osPar(7Iq6~U#lf$VyXuDJyU-B&)-YsDTN}18QCY<{@)RNYOYGMb$AaBN05@& z<&76g#cyxKI$;`sJVWvPDhtm+u4y-%+N8zhtv+j{#FoDxt$A9gercR%!>g^YWnO2q z_Jx7|5{b0C{x&+H%NG(3QoJ=&xqH;}eL$eN#6uib4rm_^D1-}^`A<|oSn`<}F+QE+ zzogG^Z9vS9-CXKaRymUYX}l4@D6F)#+kfjVZSMMKsCdA#GJF4`CO{Gv)sh^z8T(zl zCpl!wiXeh!oYm{d#=M+je&WO)^oP&_gEN6ylgm%AAts-P#Cm}q&AIf^q}s#J0NoG4 zMc1&V2FKRzEpOorL-pO-<s(J*aCj0UVcD?mM>>C?oo?-4FI^Q<rxzf8#HXFnStiE+ zNc<KE$8p<ZZ+9WzubM7+45E=zdZTj+*E6p9-;}L=9Ds&GaU~0HTCPlr{>Uuq`KL!r zj#!5g{3n99{~1inu*qSO(D5_rP63ZjrI}F4ukMZ_Q!ou%Tc#gKobX|0Mk>dEOe96w zpJ=xHS)HZl3?+#ik+bo?XSwUzjwuU8k+6-PI}~Z74<2c6S-$mS1Mf?E@dZ59d`zp; z^T_)EjH$LO^S`>;U@n^+@<(g$R_~3z#<hAUolVbM<)r`X)SM4VYOTp(V$Hc$Xk^=e z<M}mKMF;+s=w-;arm7??Ldg$HB0}WN^at0Y#7^pqCDuh3I}xY#fPw1gCm`>j-^@R` z(@PVtXVGd$2J?YLD_F$GP{l?>)Vc*)qCCs$%?OK4GoLBT6J0HR<hdv0)ZoOIc?xDc zHvm;yKAJ8jQUba{;naj~s+F(ropLOXqw^m|J@1=#$c<4Bw%)R;^!;xCZ${Di@>1yT zqXxjdv*@d}yJ-dC4A(ToG2vE%0qQ0<RHoD;Agx<m+2xiwFHQ58U-v{#N6bDOZ+Hk% zQ`3r}$%~325>I@J{DcF**&+zU4YX9WRb(e~a(ZzQTt>`~b`poxmUW~v-x<32eBxj{ z{2^pI<P<`hapkMnzeB6#zhD{V=+}-WS&;hF@akP(coyj=vXBaC|KgL0(fR?!kCUB# zUF9v(+w+He!Jy%VanITV_(p|UVt}=^&*z6;f9ZoPK6w8FZGt~zw9=?o5|m?gHG#ny zMr}HfFJOd3wr~Xf5-Lg8Er>XQ^~_ef?Js#xWr1Pb-jum?VFUIbiP55}9^tKF2ZShD zB~UFHRyf*X0Ls}+!#%?;e0{0xXMGwWfu4=-c{VRv-qsDyHz%L_zo3{42(dAxuj!WI zRZFeHMA~1Spe{lk?J7?em&J9@7|=wA6vja*oC=S;S5P_`3`A~MKN+chAy(Qz*b&JO zu=aCPE}GUN>|E%_Vm5D{sk%v4W%u}3Q@Q@&^?1WE5xw|+>@vY$hO;nKhOMFeCRsC( zKC4;u>D)P9#Lh_gDH5_BAd@w}WpzFc+{_22WtA>0f&&hvgX6CzBFT_y0@^U~5>GyL z6%}u>xi=dnN|`u1>o?8GVm_u{h4<nD#wBB=)V@;?v9x$hSx2U|?C;pEpphEy2<AuU zGHvT^5dphIiFxSnwK2J2M3{^x!5X=|V>0bU{tXo1`b_DWTmkWDC3hF(CHgm|yAN$H zsLv4IIdR_9g2d0BRT{2)FfDn<^S;~3AoUmg@trj!4EG)vL?q(879KCSp4Fsuk(2J+ z7dxGnXq$=|qw)iG=7lTWjBJ`t?YlOmV{}}f*h!@impoFD-?kD<zwk5?f$n2JiMKg? z_Dan#({}-LELdS8TeW#o`4)7?afqDKkyfVcP3cUr5v`=gXzl=>R=WC&R^%*X{0vWF z?_#FB7<`Tgu6M4UD*O9<F2Z;5No7*H{LIouI2a><UB1K-&PKY6=E-^&^LM@2$DD@k zO#Bvurr$Pv4?L9EV!c*v{W!!vJ?S@$$By`K175()!449$6MjU`D&JHoOvsivfc+~% z5S@$mG!&oY(B!vGs*}_@aZ4!!=5_tbQJFG1OnS8_yZJzuL(^qDZ+=OW{`Zi#=!bM( zci+1EEihEWylOh_FvX?s(8l1W+txvAiPPu`88aaVR3D&o8M^7c+VWN1+YYpGNsJJ? zf!(A@JFSfWL3ddh48LrZHkZm?c;H>&dtQ6_lRS)L^!O&<rCDCxCOo1A7#Yrx-9v=( zXeB^>etAmkyQU4z{TfZaUk<K2a!YOd7VY-BaDcZXY@cz4)(e0i9|u=zu#i?cdV;ar z*g}4KQ%BEpmE9=bbo#%i^Lcj8u$UK(v_?TPdiy&DW$sPA2&BGEBB;owWxTTT$+zhF zfY;35`v*l<53%yPXU(X;>0FG0(|(WNru_j7Cc6l=^!0{V^VWum?6YD41WM&&a;zJH zOl_@D({skz)7UV=eVN%gB<ilOV>m?IzJgBtcUUoG6MgvmtiD;XrHC`HslKW0?PX`S z+HJo=4GT`%NP9Wi?Z6>OfYh^~m=R%;ThGsGt*z^qt`l@!PX)#<Mvo3m0JV%AbbX30 z(L~xP<PK?@;;ZJC!r{7i?=0!5USOKr=Bqo@b>J{@u?S%yAtqY6N}jfD+3)Jt4ie%C z#*Sl<KUd%T0GGiSGek??;(5KHzju4F#VZffd_zTrvc%DtH_5mEQeAimqR%!mhVv9? zSny-3j*_$SEt?BNzS8E)WSO@uxxSAZk(#{j;LqaCt*|k8!s7p7V6vdRbc3aX$#V7t zcP4D+ouizUPS`O-PVNFT(oc0f3%<$@u%+52Q2a+C&#TP({ZR3bJ=x~F-N#qY7ndh% zL<6k6?OuFuoRqq?IXGIQU00gz&XW#uk*Y}_N;j1YduETv*GdA;z>w^`&TE#F=8>Xh z*s^nN@d9cT?iM1xE*YEEf4i}m_trAQ8^HVK=73nSI@hIHg-3zA@%sDf+Z*vLt7+5p zgOhBb6ezo7g-5?>UPJBxhG;TJwYDg><4p@nZ%Pu30ZNC<RmKyKg<9*A?AR+s4zhR4 z&LNYRv@^?w8Frrbj?%{?59k`dv!#X!lT+7WbcnEvR{mNRnvzJaCzaymb&cudA^Lvt zQmE}0s%Bx^v^t?{44q#^j~K)wNB_JygNa`Sxh~#F<LUIzr9b^g62PKc>)?2J)Nmtn zt_FM$pCh8C%_l1mN2Rj^CZ7&79lj^YCO5+tl`dR5Gt|>UwcWl0JZSB55V9Zi>J#6I z{4=HsWtqln3&3I9X42G%27?CWV%}8Me>G#|Rx`>HD>(3&)=W?tGF6i=iHw|es}4RU z$=sTu7u>?Xfn0>-8&BO>y?56V!GzQT9GW^0zy!f@Rcfr|+I-3#51}$__~S~x?n(Wi z9`e){+@Bf|s;DLD&STL|`bp_ZzP!LwZ$!$lHC*QW{s7gZ?Q71;3cU6aBl3G^nIEe{ z6Vt;V1_R%@{i-?nCPZsPnY`EH_TNk*fR8;l0xM_~0xrfo0?#F@q#OqVVSXX1$wcQ% zR`JXD>kf1UfBm$hI3a&|i+3~gCNEU|x)Lq3sIg}(cbIm^nfkteMWDp<MnvP3^dYtF zh=`re8$h+%(ngrxECLWJd5r2=z9ksz7iOoFBCdY2xM;jN%xLscd(D0b3slWtCFf#y zZ@s~1d%mZvW*V+CIWfY_$PYI(Y#NF{!aIYBLgTpL$5r&T-&?(?h-<4$2e}hBn(}$9 z{{{kj-$Rmljd44`$(xUq{KuZ5?U8{hdxr%Y0q`bWZxInWrZL@_UJTVn?}h4?czCX~ z&HLMIP=I`&(4<yW%~Fx}wFk5N%Xz1X)f8{j3MbO5W|d^=ox@mEk+T)&>+LlPCL4LW zVoERq<os>16)?JpC;3uy>Put24!b5_wpr3iNaA_Tjo^zT;3s9rHN6=Kf6{({7Jmwl z)}1Ik_;Z-nxao1^KYz^a+5-EG5bg(GwJT+OdqKAyDU6NK5D8c`BUOW*suge`FUrw3 z6Ex|0;qd;v4ZQVAub{XoMi>Q<JNZ|<>dzXM5`|Eq95-oBCKt>G@uuo}v1@I#77*1l zZ0;z^GsxbEr+|oqm4CaO^)u0sTMo_p_AZyPVvYIk?;Qk<r(B9|UY^X`YmSQHwYRln zLXE?MY8@6qOH6Um`ETzC`5f#)=NRS{vl>&LInbW&!CwzoK^7CekjqE)>F0)pGi6-e zLY-{mr0|%HXu|5%YjU^yG>PYe2*K#{4r%P>&aU;8-L_}r8KTiDRfpW^>shU;aYB*U zj0Bf)O3&&bZOxxVhETuzlRvontXqL`X|VU-6O2RS|Ae(HyaR_)C|kOpTDBKnLQ7D_ zxR7<HIGASNFX_oM!?0~Zs8!mv1QDP-a<mk)vP_AMG($8eizM8bEG}r%hqUnC5k!Q! zs`wV10tKL5GKq}H;G1vKKYuZeB0w72H0<k??Xxq_Z>1~c-N+{7ObZEh5GC=}ZoO;# zLRQ|v{Pq9ZQ7c_p_OGKuPIYbxTgE``(N*N9^<0f!(8a=DiC~XIjWn2-=~Nc!K^KJO z4N8Qe$LTj~&oTe#EGzwqv~gp}Q}uRszk97nGR3mVh`_<S)(YQ2VDGPsbM<4io@oh( zLqlf_%S3HXOLjHUk9a<RjJLfaC6>XjCeOl@E~<|Z`%Q%$V|_Dm%2NBo%&8}afjJRg zjqfMZ8d>;|>7YE>6AMW`&eA*_7vW*t5z&NOOxMn|%GVN@N3P40ZYA$#I{U64JgCfq zQ#6(>X2&?wkV@@qMX*N}t<P#Yf-DQHYX2jV$O{W6x`NpG$NBkMAWcX-V^NM<;dUoC z>PLqpKi-gSA;@<~z!XVII9HjConbqR*NrD&M;mA#sIDz_luOLLCYIV{M88?A@)(xI z3tLI7OI!f-4|tF+^Wu|tL*|%f1u}(Zk}$^CgjQY!vx`>wa4Q@fTf{_JA*C#LAven+ z)mnbsLuH2uSnV)f&Bla`G@rDs2|sPQo^2e#@g>AME|KTjxrEJ(?nVtXR}y7_&Iy(2 zj~Ui!gN&QZbR8GltdeEWp_AZ)8&fJO7X4gv{PG60{Rk%EFvIP>J}q9$^j_3D<k0+_ zfujlGEl)06AsM6_rzbGMHQCXBcwxd6q1I?W$eZxQUsV@hMSeIZ-0jY~DJ1ZiNq&3q zoIbtUD^Ne+H_Gkq!CyG%!G5sPzj2oOWB)1{=Em8X3ZRfK>9_(1rF$5_DqTPK)ij?i zX2tnbqX4<p7s5jrjBPshpmuzcmfUCXsu(6`c9U^#yB>{kwn>n867_M>xs*nQ2!#`E z<H#GR`hshEj0ki#XYKcie5hs!<+qD1+h!kKZ`^W@Ksqt?G*Rbh7abIN8D(dXEb_-o z&H0MIjW8bVZ~bw`Ia6RGW6G82w|SHT*VxkZv5|Z;9HD%0uOx$Ra7D^N=3!0|9PF?d z%xMZ<g}rD*p33;1mTxTz%CPR{jhZ~*o^cgkNThvd+!4HTlj3LL+#Zj4`RJw3zTp@6 z8qspSms{;>v-xQ->XcbanJRetSD8RdBV>c%>hlF-Vz|8v?H?m5_LNfyv=rfC4C!H7 zt5Pvz*4pzKW;TH%7KxwQj_LP5PveJdb3bzFok!wCJWTopl3COnq(<0$=!2(CaUx*4 zg<<JUT`T#Y8G?7|mdd>vLTfL=pklyv2MISapXS|N$SJhAaw`uRJ2ooyX<FR2_5rPw zZbr)2nq46M=(W91!dxU<Qnb*$BiW+T`13Z%oP-?{(A{%vQ(lWV(>y-G{w5s(cBo@s zp&{$d5o6&_`DyA=DJW*0g(S2RwAG2(v8(L_39P5m{O^<OWA>RO(Wbo5T&QL4AWH8& zVU1M^ee;>uQOYk_We}kHH<&L}7u7SOYR>ywXG5Y-g%S(mIB5eoyVKR?)U3eP`qgf| z@q@o(e=uPh)_e7=tO;%Zk?5`KS(N!Pmv78^wh6$9LgjB;fHsRXpvl_>iaDw_o-a*P z<ym=bNm^FkWbP5Nf%{{@TQMl7{2Li^<BBDny*~4YfQP}}c1_E5sDzp=xq3Uj%3^Wu z>eKy8hN_C#JgdbZyTg&|x2#`(l}Ti`ssVR@AGypNstyxvao&$(_x#@k;yr|vjo~l+ zD5l4H7_$ft2S1-&z`vB=B>1&>0*s$Z$B8sBnwV6~R5}v+m$)0y>C;X{`X999#I>k) z_0v0K4uMT@JPI!5x~)f;2pfS6nD?C*x;e__d!7Tn-|F7*v22*n<C{G^YsTk~Ij(HR zJ=>K3Nz{;qI1KDLtTs!~t{l|z14R|0X35(y)eGVMMdH3v3wFPFe7+<kMmZJrK8#_v zo1rq^g`xfir7=%zY$W<QR)#|>Mvu2<4_u2_I_E{C-+f+CxC*)~L(WK;!2YzoWFP!l z*){M6JWp)8|C9i2yw2Hd0%}(h{P}Z}l`N>k`w5S8=je=ENrTd9V>~i;)w6;G*@y(7 z;@RA9?_bS-Z}Td?YUpF@H=2Chg7ODVrLF6{`x5*x((;(H&A(?a04?oJ!)=v$?|QZ^ z<xfDr<WkLy9ldvre+@^enUt}&?IpA>CJ{EHr0|wM6)D9L<E1iY?__!U<Uf+)1xrmW zJ0sc7nO358d7Lq)k06PR28)d3#~J+jkHjY6EyoW{iz#KN)r9;fXSuchD@fY=eAcKg z9BbgI>5o>OSx|(t$v7D~@;7U~*-c!#ad=&$o&J5XCIx?IXTR@B4`FhG6;Lc!B_)lg zf}B?zd}t?71DkJxZak&6|B>_R)HyEs{*>kWnRB4H4h*mHg!YYbe#MsKyc>=&aMkn0 z7gSxQHg8r|gfq3G<v-LLAR`N9u~^4YBJG5d!17OT+wVpfuSZ-Dx%vp%c(1_d{8eKH z@?J@>&%R_Pk9iheI83lt&g#X1)m}SsV=$2-4|h10*b7-*ejpnB=_255?d|?fqwop_ zV**P?Z#~~3e+y0R19HxOfkyAD`E_7a&iQ2yKLg0p?uzI)B2?set%|8LQ!LgtJOQJ! zriT_v{#ZI_^j!vf6?$>m<jO7VcMpw(fzd8EIp^hhjOasgR!yLkj-zN^O>uorEQE-@ z3Yv&hp4MeLV4s%o<R4us0w4Y9_5?i;fX_8`f<_=3A7gqkEv;$XGY+g4qHQTd13n<8 z{vyG6zt%{bc<a=+f-IXItn(Kp)3xFi5lZhyqQ!5gHFD|28_zv+L~9>>O>0`oe3>6x zS~;E5xtQCygA_5(K!p&RbVJ8gRmG3_E~N&b;iCn-+Vr3Aa~M5|T)o#)v5D525_lQ( zj83Qdq4wL^FCM^puS)M4E`gI3+ULnHW1WPT`(8rpQSp$P7eDw*Z1p0a$n$YdO)DN+ zqOS?H2J4vCj#<F+NrUo<aV)2J(4C>`g{Od|w$LRqRfGqWE3jC<<Ak&~Lu|yWfUbqM zt@kD?6ufB&x=X_Z_$a*Y7I<i7yce^k4f4JFIbcag{?1vo#m=z(WXeWm=B^LYI=2FI zcs_d~Pl~NxZQFlc*4pkLzYwI$o%*5u9Z8iLUgOyE;EQH$9iL9iX=^2<zvJHSh2Akc zi59^(tmfv6CtrQmz9kXpsx)xgcM$?$=~)os<qGv3V2~;c<3NpedL#=q9kl0J;fOUy z^9HO_V0UJme;U?fFz>%74A|B8J{Ig#tQpzZ`Sj?mNpCgGZw6TZA4#(EM_-Ve)G*tK za6<IpZkmOR@tkiz>&s%0du{QSl)aK0c^kromBDj_czAN~bbc}lN^+20I3#Us<XEF` z{La7CP2I`omY4b;B++FWF2_uLG=LyTh_a84Pc@Bbd&sOc2=^3Q#-FX@TG-QXao2z* z&zCTwM#F<Pn>B1H9!*JkTDulG#X2dBfQ50LWBMg*g_GLgyHni=Y{uH%$A4!NUp>MP zY&snp5!)izTAcIdQMZk!D0^hy67f=3Nq3nUC;jFk4v{2j7Jkcf;{*Pfw|VW3oYSoO zLH^MQGhE!7{MX81kV-JqzEc?H3blLS3dD;+Sr);4MlI66qi%VNKMmUnNl6SBj<jS9 zK#w77SM^<6$$@j){U<+L3!@ADfrHE3S(3jL)@F+Ra8L1?Cul~W>^zBV*A!LTvzjuN zO6mVd23sr>voiCqkk<rPm6X2!NLVz>#+auobZ8R$WDjZ`FIQ7~$JEapZ33f8<L1R1 zp7DM^V}WZ%UcACa|9IP41kF|Nq$5J$El>@>WY}Tp$yr;=Yx0w{`&@A)c_sGMj&0DN z#>dYJ^?X8S{jYXUXO_KlJ&(EiFsenY%jVgZf}`)DpWXh<L{;>2u`z!_>%p10tL(G< z#u2hT7eUx0(!Er%(sD|&H=nAu5Qa>9Yim!$m%so}8E8PfZeLTTqk;j{5hjO&K^(LS z75InGmZ8KZ=chpA>Sn{csK>U+Z$x9pxQ`D&yx7Gx8E51v$2UPzV(Tu?5KKk<)em1q z2Le4R?Gul}iRpDvR}@o!A5ZkZnnVk|d;SRLHF>-QupP$FA{d4{#D4pN?OVH7pGQA6 znBpy|Bx}D__dTYMi)9&9|AGNad*6ynHjpC_b_XYgJz=qXP?D7!JuRS0#yQohy?1zg z?@6gYTHsktk>eW!x~mxorhg1@FnP0#r)sY9;|*X#p@`rDvn(Pn7*1m_V1_6loGkPp zeoa48OcjxZ#)pd-%4*e3<=UE)lE15%X=OpV700UI5u9^Lj4&E97Y)yHlpx*^fONXl z3_pUKPJ4H&s^Vcr#zX*;C<7sBs&bGm#hiwOCc5K8R%6gCT$b8F{)dt$9-U>!=Dl^* zY#Uc!3}YRxIL|x26ULWh5=>4?a@+ep89X<TK+6~sZUqwU*^@3({n4(E9{3M%dyhe6 z6tppV%UPYk+J48$yqcTL{BS!$af$}(z-mf7toBodMYfuZ509=?jf#i<cmgMH{33sZ zf*nYJz2>v9ilKGN->sx?=pL2KvG;KsZ_Qht728|R7e^FR^L8W;Vjxr`+(q=9_!<99 z7#MWpehqKW4UsQj-G>mJ$?%{0DM_mQh-Q7IkbW-NA(wH4%|y6#VELv349=f~<XU8Z zmCc|&@YgL#=D`8QuN=i8_klN6_}UQXYfD{KYP_C<DTA~VeQ9;HX^Zyv>#0_8!(qMU zLKHA(6jP9%=Ve69=1bb^)cMy~oVfHfe&hADj9<>?6DRFI){~_<Yg>tX42v@NMic!@ z(;2&J*ocxMRhcP2`3$WenrXEk3zv9X>M&)U*vH45`cX)W&&u^&G6qD-gY!ZbjH4J# z30pnb(OaGkamOcdXk4ToFKq0?#q~*3#?+mE;z>0G_iwGLJ<)l2qRnm6HBTZ36U0AR z=IHUycG9udO5tB5xZs7AiX%ED026PhoBufbk^MaTDv;40fI8p6l4l2O`sR$OgjwTh zfmnx5ewVy8!zmsO>bp!1xDG83^J8eQ4_{tZ6H?Snl0sbT9#xrD%-@`NqXOFgzO^?k z;uF;584KnvShqFiem8Vlo=#}FrN(89Mm&OSdz>o-eKf^yCb{H=3nfnDxBfYDafE6I zd1X%kM<ip<L`j_TW}qock7bX#Hrfot?+}ionf`^$viKcEt_tKx2auKMKK=!K>-<63 z7;Cj8m8}&tG3#`oX*0qZR{7l!a|HCk6MIFfO*i3vByJ`zjQD=^h5ovLVyd<w%DIiD zpw(ZK6C`XYGu3MQB2^B6H*1EL_F0*?Z*`q94A_S<9cPz;=x6;$lOE*;G2UrT>Hltz ze|kLZXy3<~_8A#TlVw9o^6g#dFl}^)WrE+1Y}x1}q16vJt}&qoO8AWI&jX1>cmJhB zCr+d8hfnAABg#i0zRr(nyb^DJDTv&41Uenz1`HfefK<b2dwfBjZQdMJ4op9nM3XU= zP%2%z#{BxNyKb0<_h0fdE0=%G)|Gn8%x_eiF5dh{lDj+m9|=OX<tBsvWPq)zi1&{i zd+@QPxEe^sC`5U<$mdxQjPXDVJi6abzKZ0bs~D_1c&wwqQYEKKeVo+&pbY&vC?qk3 z{O>;JxBLo22m?Il9Luy{CydW>XeR;)=>BZplqW5wetc~CT#Np$k4jZL5Fs}8&i;>f z8IP9p!#Z8+tA^#WAU;R3V-PK@yx`@VTf)?oww1^wy5rAT;!N6~$2K-!3J(NKHd>f_ z*~g(?y4Kmm;D#(hJAp?t2Isp_j7TU&MGxp<(?SEepBn5%0M2l^&$USsl<gA>;PtC7 zDE5s%!9i{ZBHp4+72kii@yz21e-)mkzN~+I*T24GJF&<<kz<i^6)Z?v(*l9)`r5wn z7FoI&Q<FWs3FiETLa-b2$(sF}d0arIYV*M~xua_AaG!hyP6w*46#w|P{!a_-2s<z5 zO?A)vBrae_GLs?4pJpEI4NLHshNFtOH-6|woR;qs{xw0!n(eP*)P4|D=JJY?xxfOw zSq-m(CS{@MX5OQcRjFnx0@WHGC+^u=y?ApQ*|cXBjyxXdc{h5jyTTzA_-JHiF2Fft zwLN*fo4^xNS@XKFJzhsw)H0U&TTc%`Ah)EhwefYfzr>R*l?K4Jh(jm>e|BTg0n;ws z0j{Hl2-;N+q2MF-?D_mIMvBwJWVHtIg~)}E1|8U~zxi!+Ag7~wJ>2svjP^$d<4utv zKL=iih6YAZ*|?CD6Lp243Wyu+H$4jcbINTwAN?1X_Z_EG!B<>c?p1-vDwC<Wv?PAK z&o{Bte{Do*AgWv-$*31>yf(Z-3V+YO3t}6NT7~quNd6_)^pb|$DnP!HbTs8p?);Uy z2x2ly$z=qJ?y&{?8gk9oEynTx-b&RedXq*TiYhb9@&aoSHw=5fJo1f{CuVVVz%tam z;IV;TXq5W;yd7Tt_gZdKF3Ar~%KPD2mG^rgQIRI`Lg6g`Cbh(jW|QY0SRH1;Sv%1( z*$(^V3Tv-?xqdyfcn|P&WI6CMOd6(7)pBwF6G36IWoG!K9J6ezHhcQ4QAm!`#&*9H zI%1AlIbQApS2MU`-Abh=m~M3rSKSM%v)P4(3grMYOo{)qN}8WOtG6c5i-$EhzV@T6 z@O<0<z&Q}}wlOB9I|_X;JUHegeE4d<SS@7on{PGWl^b7&%XQs%v|)=6^sgi^MTi*Q zRq@l^E6>pUXA^CVD3LSQXr5B0p2KxphAoZaGV=Xav<$yKhMSviJN{JY)%5B|PGVGS zf#By7f7Qk-{;A||;}vtSLs6n46{7=F7B~YvU35X`&3&^%0hpo%k;2}_b%Gz))#)U$ zsRTn~^5hZv#gd`bGLM#1D@iZ+@R#*r`6~wnefi_=E{W98ho@ZoN?9!cEA#>V+j+hu z7H&F&JkZ{jCABdh%5O>jYM{fTPCk3y&n@6)8(O@EWzisuH1YqcKcTL+o_?-k5m<8J z)lOrJ>?ssqbdtYE{;G|bM`8U8f3F^GwySsKS@Y9tQJR+CkIMwyU-6<6@T2iZrt7mu zrC;$o<q16QCqrdnc~10c^qlYH7hl%d)OvdSI>Zru?NUcr<=f#GoEeTLDO-@Coe;y~ zI0ET7p%C<~;Px#k`=?vYy8t>zJoPbS85#0u&za{A_o<YT8tc`Lih2-ybrN>AKS(dB z^=W@`53C2+omWaMD;O8<q{=RJI;k*cvNM!Z08SH9u1~q9pH6ffoe?R04~SrV70kFj z_Lg)M`emxz=blHSA8t+g)hufCa^2$ok(Ke%^|gG|qa4bT`{?_5$J>Ghea&`*&-s&m z3$D#YH`7C0aau)JVy#cg3|?JNDNd^jr)Q&<h(1PRvqfPM9h0)~q8(_(?x_mm9R4v! zQhk@AyV;?w=tR@>?5Z+O?dM^mmKOy6E%UKi-43l3!+#{5)xBGFZRw8%zMy}I`VS<P z@J`0U`J$IMqMG@QR!+qz5!&<x8${cH{`G=K0b4_b5kXg?n}}{+3>BHC$Jp**J|zRV zYrhJo-}hoI=0JVm=edB=dZhihCy;=9WA@X3%P-JpSI%nfy__2*rS486&cQ}RJ?Czn z*Q5EdH{}bB8Mu+sjzuAj1NTdT;x5`QlBQ#$CM%i8wtjJes#|{K-YX#y(uY_h#9$Xt z8rr*LkgmphtfWTGUvm)W*GkIQC`z_?Xq96|7MiXluC<{i64rNrGQ-H@5`0ZSqDOh< zm+idq)_AVo^HbFfzFmk!pD`VvKdza_!^_9GL+=OHi)`&vDDc>1UNBe4!87^A_ENhe z&c3xVb-B;)-2{;|dHmsiaD;=0F`~zttyth~V^ZQ@${6X*y|d*BBFGt^-2lBf1@ghK ziZ;m5ORpkVFB8%%=RF55D&M-5gTe=A>*j5#FiL%U2?~5;)lrz`4{#1cJ1GB>Qk<%n z^<@m`cEg@ur0B_f7C$n2xNgwnUBSVc3*@Makb_Iy`1L=It~;Eq|7~lv)#^}G?NMUX ztX;dRc1cmxOk10xD1wl-YOmU@StE9&h&|HUTg}uAv1&%lAo6|B@4c@4mA`Uw&iOpg zb3gZ3WwS=&Yy@RVrEr^sAIm?-en*>K6f3)McIG9L;|%=77ryr*xb8<U2XBT<Qe<cg z27N9H8*eFns%s0HlpTn1Q%Yyh8?zT;?c><j)O}M4(Jux&IKk}VpDhe-duzkYs>>Dh zq*kN<qpE)Z9Jz_^3S+sH+sJ}beNS-1nY`gRUqh1=-Hd;CT*K;#>%#-DjcESx-QCG| zOBbbNH}|#YS3Y^X6+Cc|JqUz`6Tr<@KE6C&cc1z883zyPv`I{)5%b+njkUU|b0Ro3 z8A?H?dHp*V{cv*Jw^REKMbng29GQY7$tqDq{+#&*)Uqp4iNfEZ*k;j&`BF9QooDM0 z%_@9REPd~ybL%`~R-jQ=_<kP*YxSRowdi_@ryk&R#%L}fuH3nBnK~P;x)JcE(NX$q z2~GbKPD58ym%avmpn1iXK`PYL8Y03B^HXfJTB=wQ`b^<Lst8XG(pdjw9(bkz5)}SC zS*$`6qx`nqnv{z#T*@@KK>F4?&L%1wF}+qisB5#GXwfejfa08{JnZZr+*xDS;X1m5 zToyB&>A&67{K%<8GWl|SynwiJT|)U6wbQG`KUQzFA0*{Uq`KCVU8Og1B>grCAO%Kn z$Embu_)n7MvlnzPybQtgWD9x&5U#eaMlkKK@l=&N+#_}Ws5nlxRcqAvq4M%28u9<A z`YW~Z^Hzh<G;%)8oIjV(#w+;%o04gX6~Mu|7noe8^D(^MCiNE~NO*1=;Xt(_0`Jr< z`F31whb{i=$7k@@aoKG}-vfx|%a47XF7m~u?b$yiKL;CLb6Yvjy}x;2=#g$BS8-?3 z7!UwoxUy1sH{BU5^*;#SDrUFh;W{eI7S|M0QLv+E8JAk<?HR9nf)@-SsH3^FG<YPA z#Y1geRwCZaUmW)!>Tr+h@Sn?1vIVJz>qp%_*?NrrmQ(uJrPm>isBhb<4_xJl!8z*| z5-e}_D{ojvA9MwVb^knp&&2n!y)#v&&N;1A=x6W-Yp!6BhG{D+^_Z;O%|q1!Zf1(u z^(7}#6(ad&_VW3|_lr47lcB_*W#87Wt^%^jD084AmCO(IWsK~8ZBLx+muvH=fiFhl z6I+KR*dEmfY4&YmUTZ%^IAY=c8hU4~Y}@X_fIq82U>}8M%7utI{#aN0ag$4CZw{|R z*LSS^UX4o#Xqo9)5nFZj!Fd{>Xx>}z1|%A{AP>OH5Jt#+Uh|}$Ho7oh?(ww}TWB&Q z&g^FJ+ZRlGHh*&-R%$X2oMH~DRA=c8-MfO1|EH=JoRh<#>7qRHxoq=(oTiO^O08K+ z$@MYIT_(g;9zCfZ`7zJO5XVyc*Dn_V<AK@W>uu`J2CJmnSfiGz2$phidSxrl{dsky zZtLArrKXIS{*yJpM0T+BZJA!bBp|)7hxg^WaL3JbrFQl_uh|=y>h9z4r%zHpD)m%z zmWWJvTOQ0D7Hx1h^7`U~PiNRp>K<DO=4-mL*1eY;AMb*Zs%lXo0uz6y4Ujs!jeltu zsgDo}{fJ5e&I10eAgZ!WXu7RmjU07cnM|DR8MV5|+zw&)dIu{hO!qPdpOkupJcQ;1 z8+h>VorKyfNP+fuX(><JKx3+W&@x8Q-h96;-rx)CBSZv;V^Km+o9MZ-Sg@$nv+J1w zeSPJjv9gdXjP3)&)&LQ8w+*@}n%Pm9Bk_=a&g!o-h0{z|Blvjf2|!Z9IMYRqT7w0T zox&ygOTc2g^SXkSB1_FU4rtxNl<qs2u3wU_AfcTjZ6vQqgLt!RH1&4*TqC4ur-PdC zEJb2O;sRJlBwdZ_^!Bdwgv<llT^-foR?;|LA8J>d+p)luCN1=}X82b(e4)#Lrdy3$ zW=#ol3#$43-i}y_>Uge6G^vfy)5e=bQ{SAUA2*O@+>`vGi)hl-Wo>Caz%^8LYWE48 zA#L`rW!>{a<WSOglfWwLeh9p#{nN*5xkNX-`ApatNwD3gDNFgitLOMcHsGUx$90th zNo>kDm%d2#zO2YdzTNiiF)Bv1?GbcVuSs*P)-P7a$GiRcQL$StS4*(k8S`<CKBE-5 z*KlzmmGMJyQ{06Ukk3Lv2sfluuAA&4JTcR`j@;3Z`}SIB@D-9pp(9;#`Q7G-Hj!uK zHzZ8C_OVhf71UcFakX%|B)eHVuL~woO12<2bz1Cld+YhtFzzQk2GLd(lf6laMMG-? z<;;Um1)-l_05Uy~hYJtkEB{fEzpF0PVRMUt-Q=m!@dc_I96dN{)wig22l4Z*vF79@ zp5?qUBH5mle5?}(nA{G@Eq&>fG%#81dB<ViX<6UR&8iW^*;>0X2lS{yEb9w(+iK3Z zdloZ*K4orUc=V@oO9SmhVLlFRWDY#uXy5{;N5M>HdgG;P=`|M*2`j;2Uc{T07Kn!2 zB~gYnhX>b6GEG!mBtoR1(IUwuRxmNN&d%RX<V9tx*Hqi13E=xQ89Szl1LZ<T&2N*Y zq-i`U@B6MN;?aZs{+guOw$G(n?A;>-vdT^$wCuz?DJ?sA;9@Q}@8q5uS1o~;shQ;C z$=bjw;T2NIpcGviO#F}PWw^mOOrdU?J#K_)5p;k>z~0d9TwN~Uk+Nw9nRP#g&HXgl z8WKy`xk<d+#o1Qu&kp$IF+aXN;@bbdrbZ8^)?qZ>Gv#7y0v=N<^i!>GxG16EDy#={ z>2Bpdx}^H&dN08or7AbOb^CUA-rl^!SJ;|FZI}~vz3jeh&kj?G_M^Jd4}W*2?FO1Y z>q}OgkIc~Y5MBGcTuK@8u02o4V#Hp~tu8hs=$}#i;3dlL7J@sjeP>#V@I_s2JBjX0 z-UZ+E_N^G_$rH4sjRd!eu0&6y6qcT>n)v(tx8RFqBI>K-#Si7T4oSW~+0EYDMz1Cq zL;lzb)c;K6=aqcWA-DVG%w$zp*7t`7ld7B2?5G<_dTRhRbInF|!m7B#;OXU|lsAEy zxvHVEH({_Abd!bMo?HQY>XlC)G7FElAfSz0wiaE<$RU53Hd`N1DED*IjSyid5)qV& z>1GUMn3nO@EII@rz6hCDb!9=L$#98*Xa7+l=}N@mF4<ZlEjBQ5Z0tds;q;3lnq@PS z<K#&spR~m99fKD?H6=jyD`!3sQ6MQ04UXrlPBzSdNIjb~_MV;ryS6T&5*CCoe~7^! zV5BwCeqGiseKS{mPXXlV6)#C&w$QYuozrsEuQND>jh;8vF=k1wSzOg|F7jSR2JSe0 z;&{N5`8W9PHAgjxzRxO+sB|RU1;?VxYbliO;@%?p`1esMLCsZ-)oQcGvj3Eh`|PoW z4lKT9YTN{a-q^$pP;N+7;B12SDV~|0e4DZtMeaP|0!<`Mybg6SfjsbDyH3(D<{0tk z*_svPO9+3O%C}6{vSroDeI#zjX!)?NCs&mK;(6+SX#}YsaBf7}9Nv|y_kB5&|CH*| zzYoh2fmX-B>TN~mY%aqEz5#GXlF5mO6>7C=Vb2m+NJe<*alw7=H@8?WTpt6;TDb5t z_Y!?VxT;9}900}2v@ZrrLZr5UKdv~&ebB`nidTx@ALxY^TZD|-^5sl_*s%Bh&L2(p z?VPRhC2A-LF{b|?)mH)N`9PYO;Q9@<{(RNghKuSD23Iq6nhp%(+*7N|3&BhuXMz@^ zQTdc<$SnqlydjAn|1V8J?yF320rf0563T(&l2s_Ybz_0iNvxMTuj}Om+y%lgW36`l zGD-F2<-%Bwql#i$sZv2FKxEc)0$;U*+IijEuq{ZS+)Upx2XAR?02lKPa^qViPr?#i zEWgE#q&e~Lf6gaL&)-5HiM00o{*Q_UMEt>jElb<BCF8Wc<2aX?1a`SXe713~z(1|y z{aHq7MaXEI>_kyxJbSp7G;1=fVbKp6@P5ow*SUTzKKGPAmP?+IMbOYopVF!u!iA;W zIJAe<6^B1X`@k59k<XLYfdedUxvFI8qF$L_QEf(*4%#XCmVR9CHLAYIZM~dsM!$<V zT?j5|O3KvR?Ooq`4xb6_3NjnD81$;Lu*kYPKg;BLk0W@6K#>LNMwh6Ez>Xg9_g)?N zk17qfddjUiA2OT4hYo6^f&S|3wfHX6kuY*kVyA0yK3@qQ8X^(qm-gUr?9~MzB0j{; zBzO0D<gab>em0Y}koP()Qrl6%e@`AX7u{TaG8-B_T<GFs0c=JV|91oV&b99@j|i7- zX`eSDPJ&GSb)3J4KA7iCUc|+Ht|nNR>w)b3dhc=1hW?hCMRxv2Mcd*k6%u@=u|wsz z0eReW4u%%BFCpBHZzPEE&So)A6}McJ!7PH_rq!Lqu%(^%RBD$Ll^P`jEVe}>VAIua zNBPsKG*f5^Kiq{Q+$c1Eu$Veb$4xu_mfV{yZlVmDsrIAuKZDkzdqa<>NN>}CyX*Od zBD0@wT$s(&kpyO8LDAP=6p_L2cQscu2H6d-Nk>PRTofN|6!0z>w7sGw{Wg54D3g;M z13x~5pF*}ajl1wOwTe}?hAID1S@z?k{|TwNkI)vD@dALbSot^ww42?QN<)?#`9kRs z9ft`JE9vX+QM&w{&ZwjzN+ahlp))HnG5WcW?q83;=Cx({K4gkZpzix}(2w!3zrTw6 zX{HdyvA(fv^(V_Hipj$@mQt86A6!xDe^+~~Qi(g>-Gj-E>0oY<-PqDjrw<=q8$IML ziaEya*&`X@?TthatP;@JZM#r=ZA#i+65P?iOTyY$pGB>O^E|#(ip2n-yoHmh)3@`L z6@+_-KC$%tC@(h*8!KRiFM5$LG6d2j9$|CP+y)O{LL%y&{)|(mL+*dSzYo3!EddpV zNgyOWyYreZ(5jsLqw!lEA(CRN$A3VQp}V9msLJ{dw~v&S=B;Z+4;EHAuBz+%oNMX& zaHJ7uIdp5I!+TjO-ApVE#m@B9$jEFax3_Gz-R}X%7JvCuGqb~q<3=@ii7zo8cFF3* zw>s=f;gP!$*vI8D=Qc3K9F{3;hpNz{5qhU26`_xGZ$cpob1>g<oDuHgTXfCk>rOp< zGbNi4R@o2cNi_VdJ-yttp9^Nj^q1hId+^iCOx7m;KB0$U;Hi3G><GjjCzIZYzW6N{ zgNH0g9w_gKB6MkX`1bavuBEBbZLN;>ee5Y(^&(`PTGAy14!)IXO1b;x>rIZyDq@UD zWI=G5rmmD<<8L*+@1}-g-fC@X<WH^$w*@Jn)3`+-O^)xY<|QBJkleaD7r3w>7u6H8 zzM+rlF2)5MF5!DTwMU37u&}3ZaVxT4#zvo}QpDZp`+*=;&7R%CiuW!}3Ei3HB90jw zETs-FwocRuL;OPhCo$*Cz_fOy>Qz*533*wK@+w&UKdRfZds{D(8KL@}W9qlMS<=s? zJ%Z_E($#92+qazUqt}0hfGlDhsK#zqYL_w{@WBEO3SRwa&Un3Z{&Vcj%k%L{irnUy z27hc)SpyF!dSxYpqf}oj!=|wSMbWV;kJ8W0khcn|PN%E_29y5?cSFV?SA651Iv=S; zSl0g1q5rCnNXqN6ou~?##9XT&6x5EZa=Yc|M7qBmqvcutdPihUjbwdxpnfoLpesPF z;|)D3eLxzmoDr>a>f@&dCR1s_;x~GGaaqa0S`t9jX0=5fT)^KSLr}Xwi+Ccq8La;1 z+<<($`ICp!UT!3Huf?F9zMzMQ+`;iz(oKH{p1Qq=XopmeD8_Tn?zt1D1A5Xb^3~t2 zYw60NE7FY~mpHp!){j58>Dyg5i)^@>%`WO=_4~I)t>A_b<)=a!79~fa%T~a2nW`ej z;jVO{b$C99B{h2eRqfR^1D;Z<3)hE0b(09)lI~FZ(qhEte&ApEb&#f>X}<!_QTuVk z{a#X|&+kHbyy9wXK>b{`KI^5%Zf!f=hI4%o0N4Rcmi_89zPlUy2Tw0j6|DBkg2942 zZhM7>SL?qh>#zL0bufgeejjw}s0<5~*7h&DpGoYU``gLuNh<s`p$lymt)$gTR{>5n zqsG%Tm4BuUWs)!pQnVN%&A{~;-FfxftJRHow1=cW&>`>fpP5|T@sI56tCwdDG)doj zd6ov5$y_7{23-`ia|uhH7TRx!zvAj)De(aObv&sGC5PS=lD>8GF1&R4q8fC^ZLNVK z2`!shuyV_`fW?Mid*aU+EfyjT&2YS0Ib~D8Ar38H4@1YIC_=R-LDJWUG3d3de9TTC z>SA#8Ff4b+Ywve)x>@=!Rgpx>u$jS`7sv6IiT=42Szz*A!Oz^^3jzSAP<q4TBlmNB zo2zH6<<=Faxa6UCch@~!fnvZW>o{_iTyyXx_%D-kzqgm3ZPqBzg2>9ZnlcXw!ImT_ z7LA7i7l<~-K3?j*gHGcw1|@{IFR3?GT&#|ZNK(=1Mo{X`r)$^Lls1NPe_@A{$nehr zlb5X@M67C2rGh3j@C#K;1B1yGWjz768ZTTLhb?QxU|8VAD>X_fcGKe~UCCWFIok|Y z;@;8NOL{f71f#}3zcw!#3RcPljO*oh{P!05JFG}*-L$540p2bSS{)l(5Lq1gHId_% zQ(eRUNs-RGR7iW-9L#wlNvi?V=)zH?!J~|?_T?>h%*An2H1=-{mroiBpKaZsq=Jho z)ZFO4oYWQV<9@3O18M2BGWkFNs$uIzxhnGo!ee<45|f>ILs&KK7xflI-UY{sN@H$H zb5u(9ehB}Ti+GmHadg2ZH{q+a_;1`JUaqfCr5xgNLl?n(((@lxD)5OgHq8oXT=F0% zyX~6#swTr{YL<4k4dl|7xaoDw)LFyz#gMW4Ph>XKfG+piJxME=DiP$)kt?l#_vx=Q z+Eee5<&cJ%+M#)(v5gOd)?dKAfZ94|X{A2e!3`F{aEC7MTJ?(I|NQ=85S;TCiIycJ zKDm4__o7+$bOJatHr&C-344AUDNycCUdcPA_y5Q=NA0{AI@g3g%S$CQ;ti?>%XDk! z^b#*dA#(8c-6?VuN;YWqA4@O)fY8~?!1^8=M>pr5@ZA=I>`j@j<Dw^o7X_?(o98D9 z21l#oXMe^_&1-zh#tzUJ@!$}MzsZIbcS75ZMn+A#aOG!@SbxjqN$(6jQFBJ!{-KLm zx<$OKWwLUO3gQbZ&WE`YKln*&dX?DshM7HG`Pg|7-N@b33f2n}Dsqd`{q}VEje`PV z8^|_(DA+%Xag#sU&mxwy_N41z9`}WC{6|&pG+K{CtA)Bx#Go#bz9Swv=s%-!6ihS# z$F;FOqyN2k(n%k2ljrrzbs)`XSdq|;V{kQRN7S(lfZh};zkEov>pb4u4!3DGSu?X6 zc2RFcXJ9L<{?~S=$yqO~q+oV{PG=vy?=+e~oNaHP-(_FIM%{<V?B0p)SKk$Gg1PLW zYh>J)xbOB{mgCIfxtXgDQBfy4b@}CMXRHX{c|YhiBu@b(n$eXY{Ydc`-ZcpSusr>a zVL#S<d{_~_g28&VSQ|Ibf@?%B=1%JK4pj)<BeVe<cd{4N7<uzfSD@xDf~}f>QLL3= zW0nS8gsgk9=#SJFRvQ_oB$zqT$|km4Ia%=An>3C3gQ6Lj5%HcFZ`0TJ_UsV984lZ_ ztu1CaIrX-=am#A4ryo!q$FfI)lkwXqw+9V-*M2s>6Z!ZBuBc54`>}8}2&iUmhPrCa znr5J&yKcYU0i@DQV|0d&gg}6u&4Ptzx|-fg5^7oFdTWjkTc;x5hojztG#5<ZygY;) z{~r}p@lVovTC3`P!ijFp!U{1VT&7{{7!tv}J9H8<TARtOZp<AEzw_lks@DMP$g1o# zA|mNgX_DJ|Dygc{)ql@sL}gs-#YYWtQH6YG!o7}Sl>r-J)>jol@m54x<s{>^(o+P+ z{Ti_<#oErzZxx>Ggc%`H>(rUJyDf@oGB9F%Y=3Nxm2pS<NGAw(utf<f2pm6RK0;ki z$2&zA)Evy41T6=);DWe5=TEc=Letz{lp(mZPFIw#-g|7C;?5dkz^cs{5pA4|?I)5^ zq-L%I!7ik?LfVuVyHP52KxUHZ>s;g88vaBPqn3E+ZUu^}cQ!N32wN$#zDi0({gX59 z;@Fo-mRo%5tw9?t5t$>H8jf<Eb-&Dwz7gVR_wTm+jaHL!%n`-$XP1_N?FMGc1`Y~3 zfN8pw*SOyggKieMcq+VKz!%2gpRIX<NL-6Q-q0VcS=&v}LsTqC>yWfH1?74jJx*MU zf<oyEDGdMp5Ubgk!<ht&Mm7W6zaX)fxT6!d3lBld6l`PAS&09iv-@h1H{Cz**Y3G^ zM;jW9eKN)3ImXC|P@B>4^*5aOPsz4d1rx}o$NcT_*ZX=#MoNloNX=b}A0pe&oMK$k zj0^2UXOasE<=Az~J0lcIl=pC>cqt!DRQ(8vRP1zABNaPZm_ly^ez_Z5Ru0q1c^GPt zuhU$Ue4IDcavfT1^ZDLnnuWB8$DIRMziP^bHvU@GJ&4L;au8kH-=4AD8kc#s4hr3x zEW~WatA74q{1Eub5^S5}GvDwLlAT&h{QJ8jW9bw|vFGX!tggJar~ioU2V<EIGN2=! z<_>WcVH4}`Z)t-~Om{;BN#QeA@83kL^Kr(cvGgDz)meqf|DzXqhJgCfoCtAWkEUSk zs?*p268AW5cTFbtSBRPZM<0t5?z@X_h>YnPNd-q2AS&m#J1iJq-l&^6DA~iBS})(* zQ>!@JeU{a1;T3gfqtK!Mql(Z<*{mt&xpVFoz+M6~Z?Cjwj{_#oAJOE5K;Yp{RP247 z1g=r_FDv{VPBWIR)(O8Gu;HC9w=!@eS?m!id!3krqOL2J{VM=Zr6;xL;D2QHoW-T0 z2kzxK^PL#7i_>@+4ucbwfQS(cR=w$@WmB$=Fd0JgM-X4x2y(eSVRRbx;47nqp>Qcc zeLRd+n${v}trVZx>aXvi?u6p$BAIUYebZd~$jKSLZGs>rmS}&mKs+7uG~syDW_#p% zA9n<={PYm4qtGwEosT;3s>j*Q<Pnv}6?KE$6Gd{r&aqxj9?QOisqFA(=+OJ=<d(uv zJyaiif}#aS<p{VixVeR*uQ@V^Pw`dBI_Z;AD;8Q~X30pEZQ6bA+z@-#(j=pL`K?nM zhRvYSRpZtjH2jpaRWzgs>eo5zq8RieUNZ<3@W^jlDUdeaI4`C*ice&RI%{z%d1hH} ztR?5h_?upiJ1<Nhizddu71pZ~f3+WydYE#trTY(g5y+VoTVRsfYJSv)3yx-n*heo9 zFh8Cpd{(1v$8Z^sD2NHPTR&uBJwgsFu@CX-r_D7wz}|RS1ol@XiG6!<gFW<8j);eS zA*#VZE>{GI9@RW$gmE^?bJHW8(ylm3%9L?~;#EYjvNww6o=cU*E$Z}3#|N3G!Dv0@ z@hQ(V<Lab#99f0}5r>}c58)46x?t5+>~OXc^th+n!u+lL)thS37dya%L3RYR=pAHB z&#Um?rXQF_?b#C|TFNnKaNMuN&#g5U@-v7!l;q^LV}1JY?-UWw*_>7pV66STyXiL` zf}1gzNBhyOx`09Zzodm!KB<HSnv)sN7o8$Q_(^gS_n}EMR-8<;gGp=lbFA9MwXiQQ zH}U0|Fa=1kC86LPEkf_QdGDXVN*dsab`LAz#`S5Bdr>ZLd28I4zwoDJeiYZn@+G-D zV1ZT<JaZ4^8cc8xN9KjxG`)Y={ko}X=91l?uWoe95#6K~$wDibBFQA+idnQl?a){y z_Uoly6cv$5Ovbo%W#Mg-_qD}^#>&pA6Tc1Idfxg#hDcJ<Ne<8xn~$GW6$ju&hCCcG z#B1eVqD6kQs(W4O;~OspKNa~}vE-<Wz$)inpHG+x&5Uc@F6(I?nxPK7xEgfw3pJeq zxvM}Fj3O|D$BnK;3_cg3pIE`F#sg(6{PajhKmA0;6n9h(FcUR0Nqpz3Teiw+BAG+t zLC!mCxBcI5oww!`E1MURKV0N1)9i^n^^5=j5B{2*i|_8m%`7i&aO^8hfxAa${B=iV zzPGW%_@{OX;sx*8f*Cv<sY?L#MfN)1WbFXb5I-jPDR;!txy=!7Jt@~{eR2_Oo3Nr- zo#knm-I{MTjo1&I-L3ag>%;~Y$0*xKM8XULJcE5Dry0<Ni`;tSQr8!g*oQzj78A0O z4LiprvTmTs$_EkP+OS)O?6<;haQ(oRkf|=ReLbTn654H})7#>#&(ekU@6y<+2y?pV zJskSi<n9TylPJmV?3ek7ik(To$yk<UW24|eQk4dFi74M0?AP@nSjxnO<5!aU=|132 zcN=Q81PEZ3&U2XnUVXy3p7XaD=S-h+zahbRRS-<@A_=C#9MK{j?0OcPhujGt*0?mW zTs+mLK^h@C*^oYo);BHGw`qSJ;JyDK<a4@k_FNk?cCc9SgJ9qNY=c8H+aQ;d?DQVY zjGGZDfg?@cvT!(QH;vt^4^Vp8S~;LxLkya&pY-eUUJ-uu#b5RlBjTcCPH#sro2`q5 zdhLY>dXKxqYJ_={-b$$9^hDH)BeWq{s8paL<GhX>Zz+rx9-udE^Bixj9X-1zvqNLt z)^y+h)@5shWE|)S-%41-{8G_2idSki$au^&29{E<ccz(YRtv|}h^PP9Fw5a54nE)s zyIBRJPTY3oj?Lvf+<LszBEKj!VP$R8;W1XdO#1lia+!R2VN);;o7l4Kd=AslRcQu- z#pq9lKI)(ic*mxXyY8p6{aOu-Yr&(SdOGVwtz0MR`(}+V_Aez2P6~--h%rB_OE8uK zSt>KQQ&TZ~Otj3QZ-Tb?<`+h-Y5IJit{jX$%dKIl>^pPT%Q!A=Jpsy*M2k~2D%tX) z$~WPTD7|FMxajue>arbmRw(2v9PQY6HND3(K282)Z%*HCIXwDb$z1EBOMGJ($YS_D z?syto+w6HwF8{&L`kVYUfFZcBV%Fa65J_0T1hy0K&sxH}$b^qo9)Y=Vvd4W_k{D27 zJa9eIyUqOM0u~$|E+#)tPAC{?d}GsXOiCSVOTcPnoI(comyuw*^V0b#s|eww?~lGD zcdOBUV8+sc%#uWZ)@Kaw*Ssek%8nSoeLU^l{C#{|+jJ)M8s6Cv-WIn^A$Q$Pb{Hk) zB7}b3eU(fu@2`J`CakYx4M!l-8%*NP^X16O405jK#zEsB>n*dUFHc!3JB_~0M?Cev zlWKfmer*c$HO%FnV8%$8+Q&){{RB~&uR7=R!!S(dz=%e)U@K;xtss#nfzTHl?4>7$ z1f2n{=#!MEM#cQQ@0x2Ju^E`<6Hbl=UQF@;n{S`$6JbBP#E9bOlTk<0Es=h&BrUG< z2nWykDr{IAO-La7ZDw@-ojR}f`|o;L0+<K$TKm-Oh!SVCu4vM`=Vre1h1pHGS~B76 zv#TyPdhCK<qQ@XaYdi4pK-8aoC1Id}zdG+PsvcohgB5#68MOndfYh*uu|=EXnO&{D z277CV4A12P=jn$$xt4D?y@1U~5&uCbL%X<i{O9Uy$Go~68&#mqUr`VW(j0L2!xke> z+XxMFHXc^ckn=TN|EjOs-L7_JHktt(AKUk{RR2~+JwB<l)!nUSw*aMDJ_dMZe%$Gg zw=$BbucG_>cmr5sJ^5&^)nq?I6}2`|a^s7iZ|G;f+&$U?;*gctu?s@<!(-}_0k;ZH z+z(!#AR@Xhz0T6IetxjN#_x4F<Wq8%(z{)J2gGmUaYx0+WFsH{l389#8KdgGUL+!K zBru64hY(1fCJ&8^2cW@(!~Y$>+3_*uQK-fD<IHhUjt4rI+kiB*&yVyyU_L~QQGFJA z56Y(Vr@vi;<<03Lw%t;tYc6Bk9mfBN_0_Z2i}rWI+W>g!vnc!D4+%4ZR;`~|)>Jv8 zS#Ca>uivs^QFwW_D*I5x_S~)h``X$ggrbL(?#TiW>wZ=+Kz4ZD1|rqT-1ayFS6e~; z_Cf7ZW+l~m1lJ+oLYNNy$@keiwn{=qb8l1lpwf7i?Bm4$sIGgvc>jevtBh|{hhI~e zyd>n^FuctWAbYU>r6PoNi@P?Uj?`MQFtfq1`Qm0~oJ!C4UrW~y1zOpUW5>C5h;geq z5%0t!B0=Zku?HdhLD1ygfKsvoSM6#1n=nLtw^`vta6w5H`@F^c{?-Rvdh5lkYcSKT zmp{j{N~gPi7iH=ePNGTK*d$CMj?~<7HkG)XOAFOslIYe2j)NP}DJ-~}SRW<fepkC_ zE}WYu{mdzTl8}2v*;H*CR~RyyF;yDmf_FZ|Fua1>S=&GaX7_nbpRs^eb$h$DG+|qN z=D%|UNulS|<k#p4RbI`!za*(m_U{ZqSLt=VTVnfleyLnjWPBCE)ci-8?_9_kj;8s1 zc(WYGwt>03Q(2oWhyPa_*C{D<x?+7X=hIs<==!GI{N<)Z;M`duVW6lKy<9n0U$?9K zt;zV6s~aF?k&9_5cH7M|F`oBZwE-8yUEDPmiva-XCRt?sC?WPZ<BKuuX^i<KS<U~$ z5XiXqyK@$U#bwDwIT~ei3`q@4Jc)$4SCYkI3~TE4vg1?lQ8<aWYq}(>zn}d`P@n+@ zd&|@2<Epy7;;xa<v>b&=88PM#K%-=UW<wy?;$wUc(k}TwT7OL88x|RR;MPUbsGy9% zubR;@K&y}Y+t;lo&`RU<pGEV&4)7?L|Kbti$;wzPS97zqfMJ^*np^R0pw@M6k*+=r zI=-xJ<`Kg9-ic>w-Dxs>zUIVkvK%tlOq?1&b|xti4X3c387EO_0>hTymRBh>zWtK2 zIsV>hLDr5i;^Rhl;H@!I&@v9NnZ`?eJhM9W5o?(dD94w4$Q)8xr2GkbF~EgiUgi0! z{_l}+L??;?dJ_OnMex8jh%8uRA57PI_mytxLgjN~4HkxvbC_FnOvBK!tuC%xdyYA; zN5z%lz|*Vtk?_Dk?Rh<Yh0k22{By~HJCBOv0qmu8r@a5(J(qDy(4mJ4!}zYTfkbtp zv_+WC(`?-$6h=4@xezVCZ)|RJEAIZ*Vt35>WfHg>!$!6^-m!Z!T1-qW`d+x8f3P`z zUy>0Nu`Wy-E2qdnqjw-?vOG`b-UCyY(cRTYLeINYAA+}cgij08w-c?s_;!r?ua4M~ z)@pW@x$zJVN;@|#OpFNW^m=vM4bs+_GYkIMR|0arAvv(yDmgw@<_5Vd<H<=%=m7AA zLj&=R7B<Tsou;<%Nq0|sonh{^%}YI?mlGYvUG?H-rTf$9mDcro%yBEb&%f08vQ*B; zM#Y1f?lVKS1H}@#fDD@}9q8iNfkhw##y<BG?lMJc>zKmvj8s4qx%zPd@dHzfe!K5b z^DE>V_w#7HDrf^&1Mg4^&k?$4P-SZ2;+sH*DEu5lCkJB94BXyPUPV1%?Z4%ujB548 z2HpblA;|jvds`il8?Pt0rid-Fd5D9g4{>sgO>W8J?<*ExUtKwoU1obsa$jbLaKME3 z?uP^YLqx5ABf6z=!qlDNI?V&4kQZH_7JU(-v|*w$d&VwZ&E?ujMhW`!wVrE!DXIg~ zrAFh$!qWMLb*(e5l%Kk)X9XF=-Ev>#X71iMaU^F~Pn@p{S+l}o+LA@=1L_fFSH@(6 z(5E{2E0@tlQ57Sa^HLtWBba8pTCc|Wc*8b(k#HS~wYW%;9hm{vs(u;ZFqkB4>ax;o zZCve*fiL|WflWs$dzVmm#yk+M2eJ<e@4bOKJbA0&Ajp@D4TWfaGJO*fI~O23D)O&| z;E38^o5%SmlntGay0^}nfd>o`h)I6A0~?zKCQpU>6l?pce^*tQGInQfx}`~GNesUC zSt!M6-_H~q8k-q5vS(D(D|WW~bIDAMFO@g*#l$|cBR`VFG!4pQR`A_M16%;|ZT|bK zgUcJ`=e4@bezoObkYxp!R`(BiC+A4S#_HQDL=76kpBiGTnwp-k;n8i=87oQE>y>q8 ztX*m`4PJFv^AT?^3CL&g(oY2%VeFCJ{cIJC+7LVuRfMju3};_6U8TQ%{_Ev9r@9Au ze;Z*Z8FxXmWSXRLyB%F-!qFAlE315#-Bp`)BJZcAwMZlA4{@E5!TwzPM<~wN!5zq? z_YCLE`(3azbdPb0-n`nZv@-Zb+Tm5M>%bH$-+20KQYEwf`xVBcd&zF}^ER{mXhQ;D ziVK^{C(T#i(NK3pH0LvI9#6^8Sk%(1$(R%nVrry@(t=wsuFh?3smC6{S0Wug#U)#- z^MO_tsR}s)P4Z%lBv#O!1-w;H9!(SU{mY;H5g|wkH_(>+73;Bdj0-B8v3|bek+=8M zBY4_m>jh3`+;adkzkc!;R-TAS!>oO2Y)Dekg=O7OQ%Up$fCEMMEC)yDNyGO4s9J?W ztk2i-t0#P~&0mrF%{u?F@ia`yNWN}!Dk|#AswrZ(@Tf4wI#<NHwdrCucsa{)K646( z^>vtzul;O%QYn7j9;S77XX}Nf)uw#)MS;;otkGAyQ*EmF)8h1a<|I~+Y1&wE6Hwwp zLCXXv9<)G#NpYl7eFh^fb^B*183CBSt$+6Uhq1=h`#{-8t&$kq!;s=^tVVC%>kmep zL|pzcURX6L(+jHmtnHF~TVPH%RpsBuIZM8)U!HO9KbmbgGvSpRp`P#DM@Mf*mjtp6 z7i48m?w)U6C~mCQCwivIyCW61PW<7)Es<;A1sHUGR{!|Q{8r&Hl3n2QWm6bV_}PrU z{$~+c<eSDi{fEn{*0IkE0>qkY!N;?w9Er4<(C+p)t~tAf0%$EK1J-kEclHmv-{=OG zLQPm16YKnm{?lXke(Ry=*bVMM(48aiu?@3+JT+S%$Vbx0`-{ibptm&|eeZSYwerFl zp6_1;Up=#8S<z9Ra-JRRsc(H_C}}WZX|v(xeg><cXbKKyrp>F36xbrlbtD$XX8L|< zNuGXB;P4r%h|$&$Xqggpq2_`8n!J}G_H<LlqSA8yZEfeM<jO&}@Ux7E=*&z_X#p?Z z!I9sfsR^ufGtNp331CkuJ&N(RC+1iy@{vbpVEqiWzWqCg8>``V*@dA5Q%{fG?X}2_ z>v^CTNm0zAl9s9hX|nxJBRAby{9Nd4|5p4=zv=iOY{5Lq2Dzqoovu~h;Gv}@$_BSy z?9S}AEwljszS(TCb+EDVW~?hnwYZKb$?`y>fmiONl;8={*A=65^Fw>rW`ZM_w05sn zf3%o$HSXP<?R;NHm_pQN?7Vr+OV#`9TJOPQqyxJRPTytyV1}Ycm{^bT(?w5`w<&(Q z7;xu@B3-_q19#reZ_{gfH~O}Q%#)2LOkRY=Dtt2cNj`AQy@v3V?KuwK1`FJ4erB~s zQ}?8Ze`u-YT-xg0i@#Jq`<M)M)eSr-gl0@?r8WPM+%mwSVLl=;s;p$P?c=pfrP8^U zH%wZZ;xeu)PwXR%M6I+gT`P0_`g|H)AM>ucqgvYUxZGdPATTZMVE&zbWLyN_wT5*; zVWbK(gygx^s|Q0Bp;k{Rh^S0meXCM}rS7hPscEFc`yjS=Mhn)nnh#&zWQ3KO`-o}y zm;b(#VQyH%Fo!Pp6rpb^QkwdTZoQws-z{)^E%L9<k~(KEQ_F)Ps|>7d-Qi?N-L}KS zpjk*wHTjTiK3L8<Imo;rRO90J%rBYih77pY7qAV(y-RLekDCo28LL2ahQ65f_2nLp zy%IksE+W<G%21;pELKq@=%~x%nMKQ?GOcCRS_@Ij&8x7^3P?NN0aQO<Zd{bBkdgKq z?kjUnj6&2m|G5T@+ynb?PM#a^_OfV-j`i$6B7_<N`9|sH#A&O)tPp>KndZ!|z)70> zim5|uv85mb<*t1G6CUb1k)l|IRUs2wtB~xLid?G<S+TcR;Fg|joP>a$4s_J#@Fgu9 zPlTwyef}PlDbF>T?b~9dq56ZU>@JwX%eea0Z^){lwguCiW?=j`@^zG*5ksY+nq@~* zW8>H^Y6rceV5|VrRqn%&EG65f-W(Rr^gr0R2%Kwocg+UIzkRV;_52=LK%1|p;rP%i zKIp)BUf0R%N7p?MI)bJ83eSU9pN!B~<Fz+DKK$E8E~Rnvcjj2X(Y2e)8V7xUT^nuH zETuYpE5y<#>u6X6Ta=N69l(zJl2~g&7ll^!N3%zbh(eqzn`T8-Q-MesqEMG>xiR5V zf;vPG{#%SJQMtjrXAGyY+Ileq>RSrd+Eu^$+wnniEK2Xxo&VK`o@f@w{RMRq#tC=j z*S@GqfG`u^J<<uOkBdhH4slM_fAK&>fqcbZ62}SVd0LXG&gV_@5~N`Bt(63Bsd6?K zQ=~gUBUzjsJmDrimO4uRrFQ)=?bV>Us#4;*6u8FumDU{`ehYGIbG8zBe|T(9`BAU> z13>KRww*wFtl!_<MAAoG=R^eCuBi*m_r}zE2gku|O8!kb?hp4ouS?}kB{zbempJwq zyA6!6m1a*FwDPfwxSaSMn4dDIs}J113QBEk^C!dahsC=!pnr7?rMuGa*BPq#80u%6 z{b_%<`<a`k+s;{C6x>*3*}3)*{hb=59{bKd#4q#@cVO21%%<WeogKDmyQh&zfz@{s z)>w}FWoOd0w!;I4bp|3Ko_j)w^}n@}O#QQ{T}#cuZ*#aX%dtwQ+P12uc%k)poy?u+ z2>%TW7niH!r*%tDUe)i4{8m_bnP@ws`Ih0q+K@6{lE*mn(pGeLehkvNxpwtJqPsg< zPj?o+g&5KiCoA3XO=NhpCb_?7bP@Ja{(wU8Ejuk)O{{8udpsm3pR>SRTa&HJu(z+7 zOz10R7<)LnOOS=vlr3JHlUn~{#8$amK6=)wR*CtlXJi(KT1Q}4jt)g!Ex-7qSU$5l zBt2d5dEDvtPp9I%L^c4X;py)gO#AE4qvn^Z@k(^<NSrPDe!`V>p#&cB>d>@zeqBx* zKC>FWp2ty7eAsmbUXm#blW0%l8`C}k5<Nw@y;ZH^rZF=>Upm9->2!4n^%s55nNMD` zKfRk^J!$iN&ZWM(b!f@=E7Sf8B*pH}1X3a9MNq(p#<#b$lNd!62rqrNj(?`+WiU52 z#A$S|dh_+ID<C(X7IKuKXVQl-xnw4fWzP&mfkfjxKqbu^a(!g`@5HlQHHA&TXi%K+ zY4zN6;AUiDOE2_Gm=vSS?X1AV60*6ES3vm;#Cm4l(4y1f#S&9UPU>5QDP8+GB<O%a z`sXRsw99YQ>oYv81;8UOq>4qlhfj_?3C*Lh3jVItoz~=qg}Io3ERR^pIZ~OTW2w&- zoKu`W=zF5m*SH_Kc9tN%Usz^8!uwm$c-=dbx94t6xyMbWC>GC%i&<W-@Mlo&6xpyE zzCG|=r3pZ4_TV>p-wg1>2TV_kJrfn@tp}jD7G9)1doT#@2w^JlyW(~!e(71kx+D`7 zzEl<E<X_IR{Y#S%D!`K;r@9%`=wP+gyP{OZZvVcZ*6I2%LRU|G3Ts2rKl@p@-j8cX zhLoS3W@N~fI+R+?bt9FH0}L3MehXrm{#aSH*WE|*{wk-Bf6Zl(q+=R!1uIh2<rY+C zyUArTTOrpjM6R1-9U;DL$_!F!?tLdCm$q=Mopaat<%1~k$5+hr!eUzs*2ag=D7ij< z$`#!Y-vCsf@oF;gir@Kn@oO)2Ffd_zY3bE^^|#;x_4*W$xW;Eb8Y-;$UYEwd0l!k= zDCS*5)%V&+pQ}h^r9G1l2M%?gJE5MOwOL8`Pg@Wpm}MJ@4w@!KMfOy0dz(`Vl|gWe z=aFz?+@Xu~k}JmTn{oML3o>R15St7aMGK)G?gohpxBZ~)S}##bIo>i8X79qW*eo*4 z54mwiNePRL`;+DQpQl_|2idQsg`Kx#<*Y@gH#_t!n$!O8M~8m54H_ZwcULW0JzcZ0 z>uNI1d-<B>M@sXu+HUj(HEJlAq(JCWw2eDwf~q}fZIe52<EGz6A`6EVUJQ2ZqvRhq z_e)9|HNSVApRGTt!hT8@kc%_h82}y4t{052T+nsHS@=`DEH;_lIl5Vh_uTiZ$qiKa zhT9fP(MM@6ufsJiIi4$=M#|2Tnyx|@0U3Rc$y&lA#&p(GXr=fXtGkoDzrcJ7UcjZ0 z`c@$AW}a|PKiA}zLo?Q)=(xUg`TX%@(ZpM%-$Dk`YE;uk@INY#X15P-Aq%t9uUPTg z2Nq_^?pLEmY!yn@;JiDW6781~<cE?UJC^z~xe!(wUe)LEGmY<-+f|jB-=7JaJGdGJ zVz2~>R%bW72D1N*Gkj$s*a5?n8mSZ0qGc!C_l5biA@ZzEcMCyf`B_qS;a97EahCYp zuvZxZIc8a>m{z0j`Rye<fiEEr^0(5`>I+X@+Mb|l<?l?F9gp_*@|xb=N$G6NT3Ih$ zD^438S%ORgh{H`Azeni#xq=IS66OIYgNQyw3bfsL`1-5#t#I4Je=}BAtYcI2hP)%` z9tDEfXdUq-w^E)Y`TwZ2Q_2Qn@8q=J)=_V4az+X`B)#%ONB(g7=iIU~XMeabRf`3H zsatLjhqQ(Znx}?Zn_ZC}Q-SwppvJ$fXEuiUQ|0P&K0YeH)_wf&N1WKsns219?X{p6 zES6Sf!QX#_c>I&SdXGyyjAvGJD9)8>t2*F$J#YA(RPQ#VI4;4>>X5hJT`_5kJk)$_ zAcxx6*WO+ahr2=|LzwoSb1?)P-#kyrVoDU(BN$<$>z4^L`>Y?z6Yj*RS|pt@=`arS zRJ4*TPi+YlhEs7fC1(ft!&~{rVef-tqjUAyfc5L0T$J<4TmA0>2Zj0(3wDB8RBi`n zBt=gPlhIaRH^cv^Cfl4g4PP~-BMl211LYkrWa?UL>r1x*^8El(q&tH@A_0`Wy|aF2 z_e)xYV4@AA2NDUnuI%C^e@xRULa3f|mF%?-IQSXs6^k9VM8&me;33SYNT<<oylw+y zd~1VImno4eTfF=oyaw&^EZ5oWZhn|?Ftk$f?=8g^e6G}}m5rJ#2~sZI8lat)ZzvJe zXnR2jqG<oU4`)A|KGgkC&Uw?6$WvR#8ZdE6<GlD$5qlGli#kKa9x7CzTNzEpkC4xU za~2kETsPerYmo+Kyt@G2X?f$?C*Ke1QHu=`0dsdAcfA;+@R9Y=MA`bNT+8nqRw^xi zYfo5ow-TQ{y6aVw(6>Rd#Hm>A4lP@v<O%j;n-lKv^MJlO%E8|wwfhh<*XXt~{j%Hf zx%<p_Sn0~a4Zc#DbO;+vb!x;{CADccPCJ*C|9z|X)c{UhoH7J&6T(io_v<Wd(C;~$ zei#mYa#~Icp|{a^J>aNUwC3|?#s6|m4wv5Cj#W__Bw{msb1K<fzn=if*??syK!~Uw zB?(rSG`0|6=08@-%&oZ@<J=!5z3EyUtL#*$?QlCc!d)<0<o!L3cdIPD#Tkn*)8)*q zW)UG6-L16u8t+iv^;ECrPg0J{#PEdsno^ZZprJIU@7~2K2j-%R@RsDd8NjRQ@aXi) z=F9A51v$d>EMc7JrxH%UgXEbBzR0a)ixx}h%)jPUV{^nCl6+_VSxCJLJb&weZ%)5@ zY2}pb&BT4CE)6+Eso_~T0th|kt(c9ZXPl)$TI7rvzm#Y5)_xdyTGoXLNZzoGeNP@g zj+d_<!>x>Aa0AoU(Y4v93W%YVg%|>S#W#nO6k6dDB0DK@Uky$FzC&Jch3BYClRF9> zgX7@E^%`&Lf7|7Ym3(#Lghjlzu-<%O#S)euA@m$2=PkW}cF#*3Q!3Yeo3zjJCFyi) z|05lUYx3WVj{Wj}MTk3w?m)jU>u=e3mRgYUhPyj<9o5HOhS>wFh`ZAsyl9#j%?UPp zjL<TsE!#QTg1qAWc}1syC+qcEn-nmg+q+Uku@wSDu0|Jz={^p#<7ePzKjtjjb7iNj zqoLqbS^lu1^Z(z#9IRG}5Apnn{Y)2vHqu*{?bZ!@`h!7d$3n54)h_3zoAyD$$APs+ z4{jU|y&HSn|A_X6uoipX+0@ruP_jLmFo-NpJRLd@B-MAE(RHe@op<{SOe5-{sp5`< zf;rQbZc9C#IBMJJ7!^TC?FaS7JZ&oKcoAmG&Bmp9RTXWGiCvEcR-}ZHUL&tW?hh7J z429EnQ<ZblzPY9`C91zh$omJr^&}>5c((#Q4LLiiA0+Y%?;2-4_;50X^RB_ng~U1M zDDF)S9cQ$bD<(N;x%bGNdvg85PvKvA@JOLo=oSvf+8&IxxS*`8!@>iq)|h?nHCN?Y z)|8MnrYhEgxOZH@*}Owd3ZEP}NoB7F)yz);LdX>bNh#MC;W>5nN2`v(7`J6Hjwczl zMS1iMk?y|lUUMBeC_613yi1Th)b=`<enFkQ(8e8#Cq%sy2OjSZ8P<g)k-L;rCQ&#u zOs5?bY^Z~!VFwTTfVUa~YK?qn$(W@hh0P#cjAL@^5g6Qbg2DOh5SMS?CRmCnk$A&3 z4;a0Lzq*!^A_|8@NA)>;njXb?Q>k(5k*W#!o~X(eoGL}jN{6Do>c2jfG>eyyO&YD0 zpXB#V376Cs9IQ3zGEOD5Ex_UbtW%*qX(HfEfY=gT3T!G+5gi8a^Nf&feik|kXS5k= zT+WI)S=hwc$`N4Bezd%YiV`5D;+3ZFS<P81@;bWYz}&g;W$HwYZnJvS)w)Jr&^)b< z*V)+F0_U`z8TRZ?B=~NwsOib1=SES)TpdO6&m#KOxZ#&@!FR(rwIvh5&YgR`G5iy+ z1#gYXT}MTTQADA;3W%s9!G<d#>#&BIjy6|2qJNjc+S~wa_m_P~94_@`)hjcEKU@W1 z2a@CN5ryS}HhFfR45!{zCxSct&GJVpJ9C~AuH02$N9ZHTzJK1mvqPiD-@TM$(@uF4 zu?nG`CTkI2gzoSz6^O3;aD?_AmL%iNBNqY$((w4DwTsy(y8ec<DQ}cU=ECd<IsG(s zhv+KqrK?)Hd336D(KGi4=D4@BvH;t&Dl`t+)meVbsTl9d&dp7-e3pa1&T9rqQs-Xq z$~hvw%LS}{#!Gv@<X<(p0g|68tR)rW5&FGizW&kgFPUmDm5MsZ%X+lpz`*VwBK^1p zBE4pflOWwZRGorz&s3%hHR%}7UrOcFG27~PRk6a0N4t+38FA#BUX5fA54@8~^d)pj zFpd-k$8YXhfS@Da+51ka4iTC7gg7yL_}IcW=&30`U&C)|&Mk1|A4??D4!}%Sp{!V? zy4a>H`;TkGJDy#@sdwfz@SL?3T-twm6SuKD4lkGeIZVSz7|yWO*5iUAE5}U<<?ceo zBJDs@`1-PWyi==}7i^z3yo(o}>Dj8KDg<5K@px0+AYjfd+HElFCgC3bMM4Z>1HXD9 zr-zD4ISsV3VP17pYdOa}Csh?&%-?LD=DBoAi;DeZKE50h<qwr*VR|hu_4Qf$rEr=& z)JIW@Jaqm;)Efp(FF$tskNtp4R+T3a-XnLM_gV<_^5R#(P4^?^iSs~VT{Q9pM+Atl zzA;_xn}Fv7yAnJ-=+$|<XN;fM45Mm+$2LboO1N?ksn9cKPaXQx;;$ws^!k_@Rp^}g z?~LNE1WuKTq*=&LX5c9@%j2j^Q7yhrI_Gzxe3GUht(<<+6M`X9PZ5~!MI^SWlDhDd zU>6Y1O=M$poP4ye3OF>7X5B;|&4LRxo1M~m5+hi4Z%ZvNqy2r<ucRIG@`OCI%h5){ z=z@v4-Qrv>s1;+TD-LVFMp_?|YL?&Di_0pQpTw-FeQ)r=UT!=s@j)>8ZXTY;QCg!j zye9culbSB*&#t~9*6Y{T-j|xO3J4ou<$046ym12I-i|H5lk4tDeSKtxO;-b5_yONW z)k<nzhOWl1`g$*OOVZFFoB(0x1knY<mcLm;RmS()X))R2z!<`4e!2rB8?aqCF&hO% zo9*ipw&1-Nm*5F<>Eh`p^cE@VbxT)z)ILw1tHrg^O(nXI>AzvGvmeZS((}XzlFf&A z>dX{-iq~v4k9P4ZC~QvPi*8*SiLw>1sop2}@+Qf|iS=ZWe{%QNmYRJL9X|*1FnSY^ z%bUea_pt+H<i6Sy0!4`=s1E*V9djjG3m2ZtLorPP^xSk^rKrDzZ3cn2=I*~9JUPSu zY9d6E)$wL&R&IUIed7M8l0OEG7C@5?G9DB_KU?rN#L=Ql3>8j_HjUGz(zi~479eCT zx=v#L|0p`^s3zYwj)NeGs5D5Ul#<d779EprrgTq~t_cW8<49={qy!{KZghu?m@qme z2BQaT`@MVr+s@h9*`E7(?)!@G_j4JV0g-mV{R-kd)|=N@1NpH(w)0Vsx|Dhu&Ps?4 z?o>?vQ7%8O88w4WGJDG!b_~qVv?};fx+jV1URTI_G7j67EHZVI@d^$ztr=)~mb%3! zG2R=@);-fZ8h};nT9EJP);WoS{tCY-z2+`vDQwj2t$t;~=HDP%k^9y)d{$ONSeR(r zq6=lIw0jj~Kll45f=zzqj#h2txf=W4LQ<PR)kipJgwOcq4`rveTD+gzFL*$RFLmTU ztJR&8>VI=(R0D|ce6`w^)joR(WABeY3k$NY{)JVl^8TaKg1Yi1t!&-CL+}#`mz(06 zFH1xX)u6Z?B1gjZ*Y<&NssfhxqlmWZtLI-Q+$*vFk@Q=++jhH!$$M^fW!GreWEiC= zeIQ;2DdWBoxeCCPKc1%JAk?&ocle&aN9#tH$SQM{EKK>&yT=p4VE(=zlMuaUWWSj( zO@;jc_UBUupr4Y(4sNOKbmp7b%MFxDim+a!WyAtt!e<eY5h^t+3MTQ}d#corAH~fQ zO(^JW0*@OK%5OEYG?{HW|N8-Dlh(4@pT-pd1m|NJE(ab*{gL_e+Bo)&+Qg(jq&dC* zH=1SRY1Jm-P~YS1IMMA{r#>A%O2Is{<LX#HwhwsXWf@1-eD}=>SROsm=MLB<h+tlm z{72$y`P$KGF<NVpWWQhk<8f3EGcEq}FI@rr5X^!!f^&b(mG~JNw&kTPsWxYZt%mpN z=206g31#gbRk?9|&tFNkE^0ObntPXYjGT=7?B5>U^*AI7MSg}6-9wBxQa8z0<!)}B z4k(uN7iP|v6^E)afs#*n<br+QxAlHn=dtiQ)DPvC8(3j|@!=Q+;5%?UeWSM`L`?Kd ziEBVSI7@!FB>la5?jp!>-v7#%v2~iL-K%L!uWR``JOgPsjk|>4OfdJWKL-!weso3i z6+izKC8*-TZHP@MvQe_sya#~2oDeW<+*yV_Y`{*fXUFfJ2={{Sxp+tnsb)xq1|Bci zSP!~|a1=hun9nW{a{Nc+a@F!$YzUi&Z-%>p_G@C77vvH{1t}bJ0d?f0v2+-ceXGGf zE=qvdynQpE@lm?`BVD}k>GkDB+Ho%6PL7GILbB1XmlZPBeQ+k6X|>H?TY)AKkQ>im z`VSN|o@R2Nv!qM0he-se*_+Epr}G50?eH(wfz#d3=C!?iINLOUfj*x$lLs25Cpodq zyi9qrzom8L6c0$~!}P;H&WDB^Z)Q#Z#s6-6(Y^GDzh&R*DRDFJ*JjCjP%SZ*%?FXv zX>_w*C;o{S0Li|Ja+Bzz6>t~+ehLtyo=ee`xl~};qR~yJhN$YV3S>j9p}i3l8F?_? zUNPa*eKUMfhxsO|m#geazGT-S@8jP;@kKb0L!e`<9gM;tNx)~)#$2hW5VnO6m%SoJ zL2h#i`qR_1;bpsw!NeJtDfRPKFP9xM@#{6JQJs>2hk^Y3khy*Bh9u?A>=zLI@Srj@ zQJQD}>{z<wiC8@2W|+S7zFMPN|70r4T~b>-w*!>M6CeFjv}!o)2!lEnYj%>YJy>eD zv_2v(`>Qi!eK<yD?1MFBq<q8nyJA+=Sw|1G`@gbn+1pJ>HMy)(X<BM0?n`Z4_I(jA zX>CJ_QKhFWG4q?;81G<rkD1rOD(99yd_N?(?hJN%$Z@6<z!*=xx{q7XhPD+)B6sxc z!+nRfzBHW%(OlFpozwg77obwf1wbrF5+%}{`gm(%g7_CEZ=MG>ub)3|g?MX@lwL$? zmRi)~zvDjM9{d*cVGvUHIW0A8++3RJY6~B5`s{i-r_oJ(AA<+{sjCRoK=j*+i;QY) zYb|I+sD$7>G>9hEyV?~Z5KGHJ*t5-nO2$0D+KK(b1%`g3Nf8z(^7**8^3a@}YH_~T z@kU=n4BG$fo&P~dRM+{fvYf=TZ5*1QF*U~daGw%viWMiG6W(VlWKC-=)(Q3yr%Z`y znZk-dkKVaoUr~z-r#ujoM9LwRs`VE)&#{#Np`pOYjZr!XKPA7u3*bf*r#)S2O&w;X zTUYpOblcOO>bxr2iPgLM^rk1UZ}((`9=RO`YYT{^Khy;;LGAerbAEg*!s-a0DnDB& z)<Bgcu2#9!)h0C_5&ghmPjQEj!nz%CnVL(Jb45f9Kxnw**Ag4PlW@Fg-6xfOkcWPI z#Xq8gQ@msA8u4>x&ltLOI@NICffrwE&hV0%cDvBsfuYN<NTxu=fs%U<59ufVR$O(H z_+KLjkt<D<agRT_Rg?wIlU^Q(c3)PlVCHg`GD@4jHUuWss~VAT_A5RssuW5iwnnNi zaU%uq#&Q!?eDPMQ9kw)G?;PWd==fTk749+@w_$1{?LP+vdv$C-&9px$A6VXyIpF{| z0ppV!d}yb&zo4CXFe^H!sEfuqG0&3b%-#|6FPZfEizXw_{2Q+?p&MaYXJdp0jbQnp z1NhLjEYUf|P&ZRL6Z++mS<C6vdsc<ZYU^>q?f_bCg-A6O%sa17WcyJ-A#Ri`#=_d| z)U6JB^m~GRi#k5d3}0F!gMNHRAbn7#dFRvXEtBN=>b;TA`6XvSWG(^9;Zq-<1|30# zQ=5euD6?X)BP*_Tk-E+5ah!Eu3(BPJ0yVqpUP1;PJU1B_e@&25z+|yLH)f&gjmhhi z{RtqLTQ;i2-r809qpk8v<B8kH^a4vOb06NC4;f-UTSnVfXK;Y9iW*6#ETXgeq^b6# z?rc+)3mYKR2eJGim!nJ4OLEs8YrVDzRa&<wbU09ZLRlDm6%StM7l08E)`HPC2R39e zgGCkRpoPA9X?>9Qe0nr^si5h@W_qhbD-G)%9m)Jwc$Fv<aaATuH?iPV56kATk_v6f zE7pk+Q@2pM)hA2q&2<T5L6XzjGk32R04N2vJ^7O6uZ01(c}3(%iG}_fN7RHFVsA`3 zQ8PEYE;3Bt?PVT=4-p*<c<JtZ_hScV!2%(6$_=yA6L3qmEr+w{aKXHGuF_qNMwv<2 zW@Q1u2D$a+_p>{-h0gd!E8%I6t+%zKv=Q25d+r%!=qR^}+_;#GdaXl}4+r6%0sV@} z>80b$a2l-3i9q1YYB2(SKFj-0UX?5GewitA>UT2nNn;}v?lCrmzb{Syo(Q7mj`OV! z8bf^DL2)!;_Pc`f`}VcZ8#xI8e3f*rj9;p*z|Lawl4jkn9i}_P@^i4aynV%pj!`_Q z`MU7=C?<9d-SMV``77mH-FFcjhAiD`(Z8jQbiLSgr5!VEZhf?)5l6d#8W&6SP#=Fg z@HtliZfr`&1jyJM3xlQKn?xMAzq|YX28i50z5BOK(too7r+WJDAB+JfYWY~$gFPGR z!TX6yM)b1#C^}2_=DDe_=b<*mi?iCC#uSv8ZoX<@Y4qEcH^bz)P?Dtvjkp{0i5w4Z zT7A+MLzwv&{GRC}{q|GfAvk8>Pv5k*_A~&FQ!V?Gf(cmrxX75Z{?I0=JK>%LQ(*wc zd~Gs)`qjN~<46QcQuyUuhX7#Vm%g;d@aR+Wt&Jt)mGGIbDpgjK6-B2TYb5`|GYW;H z+Cx6q`LcuN1+loo^AnW~JuKBKnHT5p=7<2z&O(wZuAb_$F8D3fGQ|zao8i#`vS;W0 zp|c)0dbU>ecg}|;3cr!cuR}$_9t_Gpr8RXtZl+NU5=KRLCk*}J5{(iqE=@9Jj_`3p z>>n%e!7heyT-s?J3b}e?%onk5o^|1Zb>xjQ&eaWYNiTn{v4|Jm?o_&HY^{%!t3T!( zCP}p{;RjT^+l0^8ca1*YmlW$avp;Im02o?~FtxTa9>8fvj}>_nx?9?(Zis$|VXh;e z8!4Q8YwL~8f(ZwG#Ph#_mHxo`!3c5jdv&}T<a%5RBwdrGfjc-E9BaW-nII<(HDRh} zuef!x2yA<k!%BX+KU=QAU+78p&2{qK<c4Li@M&D)vKp!3iB1}zy`Cu6g&R*d)y@xg zTY3C-W3a32kpnru(NGa8z3c+r>h;WZ)Mk7H6e$}|JdQs-y?M6_6@t5WXzMwCnoh|T zta<8)uM!bA7y@ndYG`mi??y-2()A8&EJ1_8z_7$QIcn#08CVYR9J)TgOLhUoWGrZ$ zKG$-hXMP8DMe8M8yv4}PmnJVGLEq$Z^rE)<-!}uB(rHm`i~EoUa?)PyF5cf&bHJv; zm~G#J8`JzBt~h7{4~;wA{%qUh`lK$W@12A2hif7Rf=FAPSt5*vlh25ZC;tOF&VRL} z=%V~ydHH{Sc<+Au?Fe+#oh^E~5&1!#?yQR<OtD*<Xmio)I=Q?9RnMq}Uz#^Yfvlcf z1Wtfw{hH43Nril629-3bAYsU`@9iS$^W&^q9QV-P^u<dIAT{OPW`}va3s^$lNa=3! z<b^6mVn+YKZ0LYjo-!iO|5vUWis5zg!zr1UJdyM_m|Ic1`T!J7uhFud#fyp#qh9(& zin}D9H%R5*=ZC0#<aujbZKT=9q?IaQ6;7Xcq|Y;Sw~7ATiJkQLantWa-ltN<1)kUJ zk)7lphrA?aQ;b!41jgzcE7vSfsFX)48MAU1a9d%wpRce<{Il4n%<D}?$*fRWiTFxi zTcVGUI2_T%oGvPFrhE{fhE>W~$7d<aK5vLz;Ej2-LguEX^Fxj3Yxu&Sd9k;!Y>cBr z?|E1Q@ZXj1hwxo8FZ1}lUyBr1W}AuHsEsT#Kb3jID0V7b5ChGmPlpgKDUxP_G^|Ti z*D_e)l_Lc{e46O%m=grK{sEIA%i+u=xLz!_O!p#zHEQCs@}d{{Wi<+vOrVFgbRX+l zYbD#F!e4N<R8zsE10~m$Edy)Ol-`%2pJ=LI|9<at5gdAWgk=CQ#b6K4PjxZye;*_X z18p(~kQH4%3m1B!!`=OOi1^=|-b<ES$8VE03|M>v`~A&`HFaM9w+w-wU*>8(>U8hH z*<qZjS^%`HvKV0T=Cp-u#bKH?=sSodCcU*)=G5bS=JY1z@1@p^*cLQ?%F1PQ0KxJ3 z`fdc+VToODI*~<#g_yfZL8R=yiTAJEY5a;$>8s<dXW;eTG!@lcSBq|<e#*lo2sJa( z3K$%ZpWYjp(-)@S(J0AkL7~ewgY;JFnp2cFWgvG_oot_9rF<`~$0roe{wfI+d7CUR zu)ugPb3Aw)**8hC%jQ%)_kG=hOSW605A{VATT!@f@Tq|kvkmu*H=lg(LMDG9GimfW z-8c$B3~46`9CL;Bi8&Q4#M7(y?}-Zgg*Zagd%UwhQo?26?x*Kfl7yi)s?MB{za%OA zh77Fhol*d7Q;EkNmv%T*v;)_b)RQlmq^vC9o6=`iiIBx7V^<L-{QT~PK~mSXVn|@X z$lT0{zV(IXpAy7&q`tC_>5JsYawoygRSV%mR#bJ?0uRGV`CmLF4P0fruzfYKpl5i{ ze5_u<QxW!y0?ZbN^I3Chh1@>25fvaCV`?b$oK=>QE+D$Ak^13;?}9o%nsU%haHZOo z6C$X_QH9OJcGt5uYAZ8=Co#mgO#6mqK{nk_*h3rojimd<^m3;?a@{$?y<W)uO<{V6 zSIccdmAx4_lh<Qvsl8^G;6sU$PPMyWv(FAyRs^*$qGK#;7Cp{)KJ7tJ;u3edp&bpN z2Z-g9-0Q<tXDXb32isehUs{)bXE(0ctd&7$0+~dLlG)<~nk?CjdB%z;xMCoHgt_A5 zBE|H#t)s$2cLwWzss7q(Hz#)UB8lt@UqYGej*HW**R`6hs!Q}9cb(}B<j3OfgB$h` z#k{9y>)%`O@rSBN=JIQHDJ|+MIUaweGZVFk9cm2RX!cUyR7kg?Lz5DLr8eqk{TC}O zDlubLR;%qi$C8D(4%fF3V8==ssPC#~|KbV!1cg@g-g?#AgDcwjV=PL%TKYzF>z0q} zbJXRZKu)R(X3sW4%`uLLTo<bvU8~HVnKBfm$C^D*`nYO2N$tkBLkfe&Z@w$IBhR<+ zye=F<^*fhDW;ivs*zgV8QYK_gdez)VlE((`-my}rPACL1EX{xO+RnYh8Dt1F?LOA* zzGz?~3{#2(LiDE8`ax8S^2vr@3bT=sMe*J;X}TG3wG&C--==&ks^wP!`uG&k7~CON zug#)c%rQ=qgzM}I?m$DYFP`h>qV)0zX71NT;#*th2@}Fv4HpC=wALM;SjbT{tz*m9 zsC=t`52503k+=_(>{nQ-!|mX)YaguwL+|a%PyB=<zn#bsfiT7!!t;V5*8CFxk=)V( z81BBYBJ|qv(hW*y-hT6_>t6s@(|K;_JIu6~lH=E?4?4$I&u|tP^}Yv_9N)AqGEK?v z%?z(Y2;AG|vnMm>)t4uQoOa=T!RM(`)_*%bf2x1NkptPecy`R$cl+Hmf6^yP&!Y3% zYT$ZSboGobM-7%e-2vhb##+H1w$S*5ft1jC&6KRgWpmO7g*${72hY3%F5sfFS5g~W z_>>M^QWyBt*axP+j>Dw=>f#4MzpQtss()svzReorR_GoN^9wrW?zxVxZ-S+-KD`R< z{iH8in<O1qOKtO<MTM5@zL4)RllV9#cz;{XB?@>#j8)U18O^xKlv=pM3avE4Mj-ni z1?M-5)ts_`8@@fW97w&oRHhN)k*D7-&}|8utC6PdHbtB16(K4AOS`FBQsp@ynDhh8 zZk3GNeK(qQ&PrnrrzbSkYuTg{LPVFSszC8yWh%C>4qb-B`q_VmH<1yBxgKZkt<^v^ z>Y5ow<(V!R_RMZQ|CboVUoWATv#<63h^dNsQF$o)z57ONWtve6j_me%P*qz_kSaXr zI4XS9>O8Y(SL9Uhm*#6hS84RC3$0`654t|oV-Rb5_19`)A)Dq45-V=^5Xx+!Z&)4X zM<Pj?fM_f3g?!LEdf1|p*YF^sA)l(kvJW|L+!lIB+(h!>WE)B=^VWS?$MgMOj9a0{ z5+)B(=T$#0td4!JV;9uxR(J&7N$^IW^@rJlY6I<2#-v^ek2Y`X`Ce2991BM0+sQke z<Y!5wJ&;sdkN0)=Tqhh&bPvZEA(}gDujQ_|*}%Or*upoNLC5dEJQ86tcfBXnMi?)6 z+CG*4$$`J+=GDEEzvnU+$yr=!;+frK!u0iY++;GM(V4MS9#0og^e{fiTgKZ}`GQR2 zMv7ot-^Yx*!-T_9H0l~p^W~go{>V0YLfZ>BKE~`s1zBGI=5Qm4)3k@yxi!>}o+{R_ z76#uaStDVbZfxmR`dRZo(^NGa5<Lg!+FF{_Xs9i|M^wi@e9rGP*z|s+wDN>_V*rs3 zReOzj#`ypUe4`E{P<11Wtz0HPpwYNf#ZA=@q{`ck3>UV?KPIK$KS!;;J<5)o2#ErI zaNFpypR=rSYIbpZ)|w(FVTf%o!}!ORHh))0HXWeuYnh-7o+yE)rwPexX_}g?sO=V# z4q{jaq0@WJS(%Qbj3ZMSx4*>%jswB-g@Y7<>GP8}JBvHcw}Q>*!>N%lmOaHp)ZwF~ z9sRB5YhQ}Cz*5ZT<Hov<=NsX&_;r;hNlr3jMSqrW%ek4Fh2^hohtgFO##N=KYk6Y& zCQhYT`GXiSDpK)DaOdg(v*&GjlI^YdmEqL;VaNckT+u}k$TOGkX4#vH^?J4ttLf{g z)kkYZH$3{=3TotU`*3&lhX7J(>kN!s52Xyi@b+Jnt|n8lj68h0mA`26n=lbB)|Cd( zPK1(;IXdwj4l-T-MTE+GXN4uj$D}w;?B|7SL+*?Bm}T910rEtP6j*7QlY~9FfMo9C z4#W@6S)7cCqX|zmyBfkLfDGz+5-Xo0zUhoP4)M3!*QXrpZrqF;+^O-rS67UiU~f6A z{eySV#AKZJbX{bwv{Htq@bKhRhpobC8nrN`DTkZn^<N9zze^*$`0>Htl<)lze4^b< zEOqSd>}<jtc2Wvhe^N>7)%aH>%2Jj}5f}p!#OCB5*Yh>JE6^HtIIHdOQ{txnJ2Y8o zg{tSVx5Y63K!|j(SG;1hdbxm}%;}A|GDG;AgEw8yHO@>~Hm<lSMlsy$qSHwtfAxia zeZwD(5)JwrtKx|p+K)Y?T1%Gd{;WN({nJiEihaDW2J%K5Ze_$R5Ax8Is+R{kbRka^ z!c>>lUqLTFiS2FY8)zV`j__XB?D&@kEITXk9S`n8Gw$2ryh=Lgdy`b3aTT;Y_6fik zJ8=spboE2XO6RFLxkFRf=!QOT4;NEow3qaaYjJC0oO0Qwxzane9%}g?gg?KNfzq_A zd8^km06HcyleQo*Fb+6>vI%cAKMx6;QxyY8tMdDWW!^YtNiy0$=kwjQVsq&MbN<X? z&RckQUzmIOiRdsI=pSe_xH^8LFg@4n^U$Q_ag!(!GJ3l}rlFzUjrrwn<TKUu5LcDA z@LKqpjAfVyu<#HsU5C-g#fT3gfZ7iCBr9J$*l}Pb&HcmnL#~_q3sO#(XX^E{ilw&A z{2e5@`9DqEBLa()6PKB@NWBAzbL&klMc^x)R$1h8t%y3f!h*1c{*gEq+zuQ(dX`Cb zDu1dJY<)U|4Y0+&+OU;<LKyVs|2807r{o@u>=BR4`tt>;OQ9FT`!!PKcGxn34GZ@3 z6=<o~R&_X~XCd*eFo<4b5ms8zY?OTw7vX6()sdeLR@*;+R;8{ZXDUZ%BMyZX>{W#K zq;SZ^JdO{OZ@-#fe8k`X>L*U}IA)&BL&4t9N$CskW7tM+ZviXw{zc%1!Uvt<q`xwS zL8VyJTRXZ&W6PGLFE-|?5qSj(qt~`K@g}7%{4!2>P_e2c0>+4)ds_1Kk)%}2!*0RC zYLgiPHTH0M->c@E^iP*=5(f_Rh0Fz-SUcwAxp8d;)Z-^3g~1uppa(WrhU3o1Z47ND z9EGK><)$9r#CdN&{JDl!<DT0;QGFD<CYR#>#eUlQZEDb$-)XXI#x&6cB?(<HbI#wT z-`>U@!P_td_})L}2L7e$W<a*}gwJWX3?qT#j~M;Kq9z`v0yEPg&zxHOZTvqt(bH19 z*%9%?IIC3&haeQLh8l|#B|h9$R07j{fuXC9Nt{xuS-2^1f#qhLa>0$Qk4^bjk&Chf z1`MJ>F14MPIMmQqLyoISXTMjGL&6~UVN05_ILFKY1K_K$_4O5-;v18zEn|ZPaU{44 zo4K<lmyAA`bF90|o8`@-l%%WH3u4!WF-=>^V{Yk2T0nzuf~R}97&@ZYA@fZ01Anvz zw=9;0Fx(O6M11ym&3IWVVBxO3P0miWAmx$9veR_8hM{q(Fb=upVS~NcUkix)JQb7* zdQvD!cB*75f%!4W0{xQawr7|PAEA0eSy9_0LSV!x*VD*!{M_xjqW;YnGMfvEEnt|g z{`_o^4q}5_jr!!8p#4+~R;o*_q#6`1OguSaRQXfZ0LjGwNnzSCsw+q3x0g(uM?JL< zzvytvf7%gr9b~##%IbyRSAP`n`rGf9F0CaU*nl;qHIBA)y4WvFzV}FntDTJWTm2=H z@9L_H?_Zy)K5oLgta~W|Om0Yd`Fklgjo)I8H}1c@vy(HS>89<%erNZO`GVXEWhj;J zUR!wHiW_x)g1`%$aBkhqS<-{U4c$3qg{^EyVd`X3uBOlKf?^J(Yt{NMiCk9mE8b0y z$yhrD>k<oJL3WnIjNO!KQz#a^ag)%f)i`LHF`2{qytbWaQU8yGGH_JeONaW-oTgWj zpczyCIyf43?{~qIMvt&*?`~&>ow;ZuBb(7{0_^o9^}$A!*~uO;wsOE)Z@3ibR@ut* z84C3Ll9;R!Ixp-2(JP6LU6f{*uSvr7kVt0L`-qLE5Yd<9Wd3?_pM(Q?VRtZ|$4W~j zydkTqOM?;p`hWm)JUCn9b17e~%L&dGz8xwd*ptGt;-RxL|GMPCNaz;dDSpAJthbO& zwMjKEM=iH~o8nb+K_rYgO~j6wFm*$kNX3|Gd3Phe4@`pf*1eoT{AJ|@3G*iPcDf8L zZ0iyzH$8;Byj0A+0AGnE050JmUh}ENpi1j8RBFkaaHhaXBM+wnhiq=qRu42?QJ~No z^PGijkON3C3X2$CO}X`}&dQ)Uw?^YEY!w4*lsAxVAat@ym5#b;5OtRo$FX0+xdZ3W z%m{X`V%e(+|4gpg+;w0K*RvMP24!=$Q*1`c5smvz7J(LiOE(x{NA2jG@(j%jZ8Dxc zqahpQxCD4GM$a^A^W1*Hm7$a4R@$)0uVd3(PWX=m>vUB}HHc{+tnYc8+_%A#N?XzI zE*=%CO&n4IbTbEtok>&<5|4SOH8gK;0EGwpk<b$R_Gog)^<4hIR}5}X)HCaMtTjmL zJsC-II&2)iMts=6rt{?G8k?O$w~0t_?8S7qol3JLP_}^o^VqA`Z@w{qBeqSZ2a!hX z`Kmq7mA56e)ktnB+QYi*5gk+xei7wEBMzq=!?fM*1>k#F-jSA0IV#BpO05gD4Z@@h zryCANZdxVH;;Zpq;LMuA0cJ2|sGnyF(;tzBmssJv$dCuKR9Kny#>N=k5IMK3&8#uy zh<%`kZ6LTCDbBW#J=_D&NF|X0*kB400zBSdfbNJ9EVYhL<|^rd)LIj7if2m$uEVaw z1_y;PpaFY|8CGszBk!vh?7O|ImkENuKU~PwLFR3mHC6WatHnlp2l%FHvcJc*dJ7xq zvv<db*7?`#D0yuhSDUhiv<VYy#8VG)^4Jn##E98={e~twTs2XqFDF>q=exSw<ExYn z<E7AN*a*&T&$HO%WsAtHiEvP97!mGq=Q7$GT`=KlF;v_7A+Ur^Hex48pPAQ&b4*fF zMc5LNC0e-e@bG3b!vtr3Rmi!5<2puIg?+0Q;NRkC3}U@3nTFlPX=>XcL?5jrAr!f8 zhoxSdMT!0x;s07nlY~;W8fZrRm^znhH(T1?`S@s0HGNA%M{S4bYbDqx{1~6uB$$E2 zYX-+8arDPSrn~@6t<>gi`yJKwa&3&uV87n+-y#hoCu-JhSi7xe?`YXD$1_+^fKim6 zN$S53gM6v;TJ0Mg^i1VRRMp)3c(65{!rDx0>k$aEa%>I^I(do}-3YAFwQYWEa(YMW zB2`EWMujDutg$WWO)0Byq+|%dsvt@LG<pB0r+li`anA-y5DpkvRk`LncIA&623lPt zG&-d^6PH8=#VLo2L9zQs(CqGMbK+I_4RO=yt5Pxy;ovv5|BF!=ca-Y}b1Yl)Z$`ri zdb+)&Kvz2~xF_Ik7{m;sO!p*<b*QqzZJFG@F0}o1Apd)XUtt;BM@*Ms;MbB?$C?uK z_8CrARl5nxz44HX^>I^x$l?z%`C{=1m{b!)i);A}D#!FefSAX=s{^KVpk#VMH<ecC zkxz90tIENm-TI!Br)d*vA>Jm=mD2oz#00PVgi3y1)k_6LRM%lordMkdz00&~;+8t9 z(0Z3uS!(1s`-@XP@7LK%&j1rD!uxW+G2gRf_wPCqj^kHNE)~HM>%RGApEBgl1#dyh z1adP!59B#+JsCkC5=$cypnc;F6!23xZ{)P^!YiE{38_?Vg#&jG)@71jpSC$kzq%E_ zalc~+0fURK`esYI(<(RkK$V&!Rv51u;kQPGhC_JX|FiU`rDV!0UaVOz1P`+u@IV3# z7JN}i@T(0a?)m+`Kb9S4vcK9L#oLvkGRiCD%I`$xE*$`Qk}l&rkt!bh<-SL^QDpD4 zQrn-21pMxq$$XDhJaz;sN|pwIoVx~_Tz7}tUo2)BJj>X#!#5E%_#->REQPm1UtO3o z^a~v+tbJHScyN>A^g|p3ygBdQ?tZ;<3)YdL{AfE1`mDd{R%pE=N5Id;`G3@`*`lo! z-UhF3!F71mQA@#u!VJPOlvQ^7jMzsX!(Jb)y2RD??RuZ^>2lc94@X+~$+(7+9EWPj zu;+f{IhjC|OT}MLs3`Sbto?|5Lfg8`IXD_0>_%YD_<-Og9HjE933#}@@m@?`2>t)w zCiW&{gB`x_RJNCr<_)9RJB*)ze2=D7KIBV|`O%EMzpn6g-srV3sco?s%?uLB(j3m7 zv=sTOS>2e2k0B>>1l3!5OXq9;Kfv;kJo-)f!l9CQpAIc(Vdeizcj_{*0PX@ZbZ)ZH zDZSo{9oIsBfGRsTajym>?8LjYcxr^dH&u{7@Yqif22i?rToh-H9qLFwk4Q|u|FR7f zJx1d^g+B}+dG--7Un(B7zl#r-yUkoE6|BOv{2z%d{M80KAc{*QhKhCF#j!;`QQ!~b znM@UNJ9g-6_<c9qC@;o<w6@ZF72^-#?I`$57jwVmeV6ZgnKtgR*P~W`IxhV&a+}{} z2MRTrM?=Gv?p5B}YI5L70`;ltb2wIR{nW?HgFk0jB+bj5j<YBPVS}SP?jM_Uzv2A5 z^X_F4+cmzCSX3E7GRJ?TX_4^sx;6`$ToZodEl5AooxDxmLZfFgkY=>Ce~OFK2Idw5 zTEWDPqI9wg%v7w-$e+~nw2Su%P4Exm59S>RFbhz0tQ@877QfR)3A-KU@^cSH#+DGr zdva0XAe^i%y#%np205_>0g}+IpUCco?S43chQol!jf%!clq@o))}7b*!BGhu<?-EJ z-Lg2=Wr3TqXMLtxFw($Ek2-1Nwqo6rs2Su85+;brRm({Lv7IU1A>Ym=C(ySfp#4!6 z-+MVXl&8ePxP5M9<n4@c0XJtj)>FNe+cGl(i;I%aSig1<bA=`&qVX-Jj;#;UG<Gaz zyF=zSSQ<w339N=VwC$dBt>s3#cd!ud7CdG480rBHASAUenIx=EtwG|WfG(dh1Jxr% zyJ|R+z+HEG4@fQ}VCmc>x{05)Bz49KiyLAYYP6<A>Xc%+h3YRk_xG!8Uv&#h@ja#Y z0;PHmsac6Nfo?sK1fqJ|!+9MIVj2zHZ6^NjG5=%0=p?YD{*(9yp=u2HRPa<++rF{2 zJ&{XdYc*t+h`>;buP)KZce1S`90<LO2|><zRbtHmXF=XZGN2r(7Dv2$^>+1Y_Pv5o z%t+toD`dH9OlcX@xCb7Ii$QqRcwH~mB2QE;8?mInG+iFsxXXzhe#YS?k~8i@yTxgV zRPyoSUz6P5DDHg;dRSX}o^RZ<&62zzV-F8-Ba820o9#FfQor43*dCp<1jq&i%lK?U zPUpo>@Y=p<SwiJUdn>DfQlT6(4oy(qTz~#Inp}t0X}gB*Kr%nhSAI!N?Y&LSqrAxl zJ+P?OxkmnU2R%(wUt_V!b&68OngSW>T-|D+`8j)U@-KJ^v&PFd`2Ka>q#&1@hPVN; z9>=nslIMgatr~vv*?OGq$2}bbG+|aTlpSe@=DI_bK%snPfl6*VdkCAVq3%FF8+@Qw z_i29h!P$+zM>m_hCf{^W?hBV>E}sHyg@FMPw=*IQsn6&P4hCyo6`EpSRBHRFRGcdJ zGLLbmzr8jUC&zIRTZ4d-g%QLsqgA?ygU0Y$Yi+4tRSMN!FnqzQ^x5`f#*RST-aynE znt6}VYh-!QWu2i3QU6ONh@7i@sx;tnM68ON6qRhKdb@-XUz1<s$9`znWqcpyFVSwg zPRWX|O6)NgDb_oD*KPIt=>39?VS=CNmH-DwBI&?Ws5<YbNph#=ihC^++O<ED>k>nM zB`-kz6bk+$0prNHt{DQnF9<p<@1?}Top064SOe+@P7)!MSy2BwOwjOs&KjqbcO*|n zc36MuTS<wgr)iKq`xr?hLTS}%yDJK>-G4>Zub`kplz$<m2^8}@SV$(MSewlaq4hnR z*naudo^$e~C&LX`=ws({qtY!>NXuWa_!jo<@vR+lhF!Z9uz#eqb4x&A+{D@nqN;<~ z;6y%8-i024t*@>NzZ7B&)uP&t(CkDI$$PbXXS#+Ixo&0E17%>plg}yO$wWV8^FKf) z9Qb>v9L7eCg21d~^{>t5sr#iYPI-cYihIM(_{KAEse_XE1)tz`GY9I>h0rH8V^A)O zN0Y3-3K>1J>fHm(>h$c^N>4>M0&eTzJ=Whh@f$N(`LV&3bf*G#cmJ4PJ-KOdTwiL1 zwuddDoi1x7@w5Hqy<>;iE8Osag~U-#f*zu#soIL2nu1<>%(6gZaLZg-a19OYhr-{6 z$&@I4x(fHqxeizp?1tYD75&YnimmnY^eS$aqqXjMkw+`fgc1+2R1<}Z!l@s=3b+fJ zTfvB5hVujFCoh1AGqe~@9G9AphnHtS<;blVUR38tc%vHHU?I67Y!yVdts*eu<37O9 z$jn=i0oW)+KP?Y^*#!NAlkm^XF)=>6+iK>-S%>Jbwrh{4ZcWrmM3OJwk5$TD&P{xa zR=E~~tHL**DEfzw-*f`c;patzZi4MCEp&q%MlK;dq|o5P;MU?^aK*rND4kN@o0<zU z1sU_+9NX>os-}+MkO_X9Ae|4D*xC{TY54fp7bU|RG#sxuOH1pixP2Bal4o)gI!ceh zw&0;J!viD9P(st+Ef{(Dcn<Q*TJpY~&*QK^h$k<ru*mAb=?(BFxN{+?I~!$0<G!2B zL-bHc$sVj}7#D#5c@V0=1dk<fJg>WINU#{;p_JcD1IlI1$_&dWRa@-^m9)0{W!q?P zhdsY2_uot}yY#zyyd@WK_h~DvUA*`Dl<zpU&-T@zs(+nd`EbC+CnpzQ?l#dS?HV8S zJLbLm2C2gb^@(*Lz4$qV@0GV>*7JIst0DW?(S)+OPUBVagPrQoSI6Xv>KPsAoBAvk zFD^s&eMDN`&qbrQX#)4i3T9h2Map`mVdWGGp4bt^<gQ*oH<sKNt#+jrb;a&T^!OK@ zKZea<z`eDx++=6$0NTI_t)xExZQsN`CaCZAbYmgbtdJ-|cn3t2x6J7`3>>^?=Up@( z13pxh#OAJtw>4kpL|OM$TFHE{)Dmp{h0k-hwOg`=ZxO%|h@4*GS({0xQlh=JwgMUI zi!bpLXI>sH?GLVE3_5w6^hHU@$IiTH=~a!Lr6_KzB*ik)<L&1dd7rPz=jq-P-+efc zI-D67+LE^hU8^Ta+*VL9)hQPJ4DQj{qOpg)%{KSukjbf#dN6VvzRO|iBrxl8EZ8=^ z*=T-){ukb%!AlrGl*VytBi0r;--oYOEz?3<XNXWkJ*syPit5pz^+ETlN~=*<%<ie4 z#lqj0)s1=g%GVnSER-pO*G@fKMf4I*LLb!bUdI=lY{P~Sq9&gmmuiVoPRvoSM7bPV z{g{5<=@#?!BZ(`=&>EkKFb@n-U+LY3zU<q-Y5p3%w1Gm24yZdXLTI%H^^oYSUZrf~ z4QOAd6+(eg79v3Nv<KHZD1*&LLR`5X9v47Gn8%=YN*$SqCxZ_mW}}-#5DC@>A-e9s zD(Z(0gV&y_=91@|RH^$DvH<PdlTrZEA$|tp0bI!hl8+4B)gsV+6P;Q%6@K3%Xp(Y> z_xK6fds3U!(_tOg>z&2A@w?m}?$Nq})`FS5ZGE#u<6!668q~Rr0$T-hbyN-SKMmf$ zTCxoiP4-{us^=fy)gIBn2+^fdQdBNsA7$d5V%A=2Q%s5u;OG|F_Qb_Ky&LCiW@m<E zs~(LcH<7@Sxn->tW*Tbz>&Tz{m<K&o0ap{-)*y+>=9RLtH4oI`Ro+;^otDhQ`6Jc{ zp+Sj6qO{KyYd_Y(KBFut#-@-?E3v}lZyP)@q1E7$y|S5U%J<Q1qSWOhX*S=xH(pnp zlPdLY@+-FO;2a_cN61gy|NJ}vER_Yv>}dwC4=JVzFw4K|iP+PB<+J+N8}zx#`&8)Z zsaBc;1=EandGGzIQJxn5p%hx$H#AnI%uUWv!2QyW0&7k9gkZ}>=@aelUB8f{>+_qx ziz_nc@HAb_%AvDZ?yAM+y9(<e`#2~|q^U?3acmh)L^XfDky!@MNdsSrlR8N3yW4wu zz8SKhLaEBHSN0`A1>~oEq1Hb`r&Bd3%YV%<tq22&#!-^;StH$V?KLa4XY<3ltEJQ1 zNzzx_t~<_T9OWc_GW@ZToBG5_(+;LCX~OLJsF>hm>nue=8VJM<88LF^b-S%a`DcdA zsG*T6aEGq1L^|R!FW5PKcj==-$kH`|8xxwuSZcadk`>}{f&zYJRFuA3?ext7D9v~h z#4DI{V@#mB{e6BHP6>Ct$<>6odCg5cJY;<(H=Y=kgWb_PrYH>X;~%N~^lZ4bxo)yE zj2NerH^!ZD&&yrJAuY4UJ6ao@mQL#wcE4IqC7Qjv%{94GR(OR=wlUe$4nc$|*%4(q zo7@kYK=-Y~QO)5}$m;I}gRhUHf92$9jA?WA4QSgH#?@*N!-fbfPzMu>ZeOoW$dT)d z3iyeI2#cC))W^Je)MON4p;7eK@qB+g@F-UE;<A4nq>;Jw*1FS@SvNuqv5~lWQR|7X z@(VKnCByDx1folKt!gh`y6rk}X4JLi==V8lF@8)57e3W3Hx7(R2R2?oLp*#}Cd(i* z*NPuEE99$AP@TnRXqSL(UtrzJ;9tUn;Tl&(;{7Cg4kF(t@HT>&y34JD`V>=NJi-o! zd(03g$3MX8ZkXd3SvF#0{YDd9LnYR^sbyATq+?s-MAsff+}pqVzT`s)GBSKY@iUAL zyR;6xwcEDT)Zbj~<W*s7VKpBl%($kpMYhmpD=?^mIZE-Jj9cc0AQptdvCHn=0g|ZP zEDps?4zx1<$>8)4qY`)XgmkyzC9koZM#xmvRln^)2~@!iAN*PH+^uA@wx$XotaJ3U zS%vJv0aMn;O%p2FijbkXYl|(u>1hkY_wXcf{q6Qf|NaKBDPQj#T@&ns&m(Q7&VX^? zhJfhvb~t0G#`I^!QfRDzhpSgf(%pv17B6;S;`VQxR3%YpOHYs*#UP(!lN?t2j{!a9 z@0wFyv{>h|KwkHXd|TxLyw?w={1i?b8iWlz!XUdP0|R=4xno25nKEEMii@elzD$0T zFdj)8o~#W%E??(*kX!X+7!kh7ux)^6>_q8Mc_J#Or$z*wg549{W+LBwyv*4OuBo!K zGYt!>=4+O({j?w$3wOz9Fu~d$r>t+z1uWE5%Z&H;77zVd)auJ0>rf@#^8gL7`8Q$G zE>w;+T8aJ`sL}HNGOsvSr?<nBOnoYo<(Gx;F)uDus#w-uhTes>PAPj~P~AC~$xXsx zFE4257TwL&S|u4`GkS5QZRlG+kIRx(S+Tjjg$!Vq6t=zlWv<~*EMlV?RUXi(95{+O z-u>~2D)rv=y;D2)Xm@EFp_xrThR@*q6;sy_wpSWr`qie{J66!fjG*S#oEv?+C3fAc zX<fh0$vlFXyVXt)YMfeq){nn&I!g<3J?*u(SkkZ*wwc1Ih-Cfc))rRSpU=?6f(&lL z&WNn(D*>jgJ;EvhE$q{jOzli7QK3#hu+-{*8rABtKe`vvuMH}G?zaS_YJ_Y0O^|jy z9RC<j-O_oihUWHLuch7lZOQ#$?`gPW+6Q&M8@L~R{TcVBxy_FJYWegJ=AFQwh$T@J zTqcKb>c4mNy;O&=K>q>sbq}eO**Vt?&&2`4Z(QQl>{sSrUJ|*4%s7o}aD1rxdO1#* zzeJKcVN_Qec$wTEOkZfw>9G|uF0g(9X2HG2g1#?8KOc1%`0BE^*6rAEgsnk2Tx8DV z(DelZSon>s#|oV^3d^={jZJX)Iqt>iRFo|9V!QctNRWF2C~vzDpI5!p**fi~je3ch z`w4S2Bep4u6S@M2IGn3B(tU_+nJAw`Qv~3f>@~C#`RhA@Gtq}Gc4ke4dm*?&ZmfE{ z?Yai|>JQ<;_;+mYMaVJep#K<Us0*eJ45lt*?Jw0MPqSSfkh)v0jOpUuvZG$TDL<#7 z7HA0I>~9;2Ue*2^Lta2i`4v?iOw*qmVok$5@3BmJ%&6Es6Dr#l8z*S-Kt!*w$9noN z@^(cZ#*Jb{w=>ydZ2kE`D@j1j-m^Sg`Pp{E1Z~`<b}2k${(?y;zJ%96RDR%M9vX(< za$T9V5tGyP)LqoF)1cQO`{09!qt`@~w0FW&rHg*~obv?d#J+(tU)FV<ENSue9-3S! zpmPccI|efcJJZ#E_p8}FGbJw5I2-Ju<#kL@{wLPJ>zjE0q+Fm1Tpi281EH)-&?~r| zJN#zAR5{Ju(@*r-%Zoxx0xw!mQ&zV5sQR5-73lrGcm0(|k8)Ch%Bh)H<5}ZO_@K)= z)s9KFRsy$%YQdQf;b75h&cjv}4SsHH<gHEA7$^~<>$4W@YexP2-Rg(NAyS5m-`=*H z!_wURM<P{?wV;XKu-O3KD*B;eUI*26h@EemKlCv46JSD8GHiEAU51jV&?g2)QDqe+ zTS_;R=I|?P5UktD`y#+V%!}r*SCOPcHf*n;M5Kv#Tdd&sw>$AB_6BM~!R}CfAEw-W z{*J%*5W+uwl0UKKc<i$4x>lpfl(=Pb%VfN5W@_5np|v=*$>X|w{66sdWcpm#YFF4z zJcAD~w3zgCh+9Y8_g{@;{KB%z;RENqE$xd6c=I8Pu&-X+*1I=@Q?MrWf|HA<&S@sJ z>u)xN-hNVYF3S+s5nIYHz;|*(pcR$*T2%x&ZR>_QmCP^oRO$zA5BL`nDS)?f`OH&? zUeA5s(Bx+ir#h4V=f^6>>U|H*rsp4%>LT;<BG8IBFOE0UpRS0NS7G0xyu5!{^x6Zy z-6?w_AZDDAi}SrwV)(Z@$~0{1qo6SgA5YP#{iuwTwEC^_ijjOgnKAE@NwMialCKhx zGEu{%ODHV9PCHC?Nyp^tXYG${jgL%liyuvh)2Dq>mhf&@xOjJ+AL(YxVc|PhYA?G~ zKLmYWOZ|MC_ocSy^{nfy-9O5f7DVvQ>$gtYm*3xIO%kU563r<*b|jCJWR<ixZ@l`Z zUyq&)@%7$X9;o`-T+(P2)PC(=IB~K2?xeAx8JK$mr`P7cxo7l9wr8{atFhZ=fV3`{ z)*hmhd@=y!4>u94D{~8OlW4I%ABhf}iM~CcG#f%}IDUyp$}w^nW#$Q!(lP98U6@w) zsLeP(KbjsJfAX=(aQ=J=y4egLUl|I6jS7ERkcE8gptObaJltV=cclM$Z|>KZEV^dX zcYFk2O+KpN)Dqp3*SZ;=_oidYK>U@zzG@XQ-)@NCb{o+rru&p9sENbN!_jD%Vgf+d z8Z$+3%Jpw_pqW26m3){x5nViJkT;zvJbiaw=FFZ6C~^6ItD&oM(#yU1!x9RpC^!G1 z)h2%i?qW8*27{kE=InlU{6ryvwlc1$UOx&zfv_}X8)4D%PtU-rwQ%shb<D47x{xp5 zvhJ{Eu`VTNa3GDBUspWUa|x*|8`E6VsPiK?&$@NU!1t!Fyj*JLdd|BnaPH#G@*qgs z`h<yRl({CyTgLsPHn{ub6rA<$sVu^ZII{p)!CfHoHz*D|W>06cmZF-W($qhdGWsRP zB@{ObY0?OhKlFmIH@8~G9x+S;^LBpAcr{x-w_?t4Bq5m}nhc$pF-z08R0B>R&;0>y zbyBC`lpW}@UF02KR6=IV9o$XH-DxNYQ|^86GbD<?+$^bhGM|0(@JQR^Be{K$_xJ2p z4%L-3X_ShkmuiUPLk*!`7bZC)Z9=}H_1Ti7kY+}c{9gNt_jNe=wOg7|&e~RC$P<%S z?4k43<dIs59zMcVhmZ1SydUmbPOrS;N2nJsxQxH!`<0g(GM9Al;l=%-mZpyqZ~kO? zG8DRZSG<(W3p+d_%DN+V?b*_+C;hmI!M$YDz}E|n`*$-kgUF=Y!;Oj1fZMqpX#W0# zUsLp{#XAn%R$j0l{z+b*5EcuJOA>sbcA~)mT^X9%PtRgO9l9ADVHogK=S{HZIZkH! zdg^<>64BZ=txvSIr=#CrtU(^}jafYW<|du5Ha5L=WA$b3F$z~ol6fFB@ny=^8W7~k zpTw$5I6a~%s$6iZyJ1=saO<cWjeuC>m^ci3K%Fm;hevonnLK`qnKa$WlO^cCk&6Lq z>A>jE5Pe~?mI_ar@=B|EP5gI0=D!J82UjG&#rbeGr}p`MC9jP3Mh~IL68u`fX)_ce zu{|tQDbf3#)!$)7W^XE;X&pX#f(!5*flJ~K%(Gms!YOP~i($DVCxv5i7fpRBy#&*j zhfcHTTy5Ill3U9r3Y#Hpg(is5R}}Hg!ZBi5%Yl^J0?KEV&6jjy@Svab6T<-k53rYF zp>^@+@7TU>6-v6}xw;BP#P2K5HHXJvT>UL&+6?&BEdD52Sn0zFZ!_Dg7qa)=zw*)d zaDW_>hRgP7-L3fhlgbuW$@{{Q%Bw8l!K8+kOFv890%X!!w7ezwP(iArcIj3hFa5R% zwL~aW7UXd)oaIUI@&d4ZDHwRjN!!@o>gsjmtS$e%hz<cm5|aSFe};gY_t;otHqJ)) zJ8XE=je3^U078eNE990G@FD6SR3||)H`9J#b>jUqSavNOz8abNY@eG^^%1sbZrXnE zr?uNjN76THigDjHr_pS~=H~FE&;vO4*EJWhAH7z&V8Q=LNY#eY2-MftPM3XZpRE)< zzAo(Piq5WU^5qTR=?WD;uT4Hz@n`idgXTCT*<Y>YJzf6TA4b&V-#)OuuX|C6Rs5ap z*gD;qd+|-1bi-VkE2z7xHtp!0tKnmq#U?}xH~S|1AKK0g^h8&_Prj-NmUF#)jlw8l zp85VxcL@=kRk1z*x;of4XMSMM|0CQkzf)#x`U_3ysk-MLI+Q*9^xKKTuH^-4+3%Br zwzJWPl9MU`3stCX0Wb8Eh1}TRS|NsfNG|+*>zZvua+@e;%g9>sLDf7;y;^euNCjF< z+)B}bSR4A>GynShxKhjMRBrR_MZdc6Lcg!byyeRp{LSx=yRZA5sAL*TL=0&UcDQB3 zge@kF6Lx|H7goR^+i{Mf(n;}zZMYJ_{u|R41Z@O-`s1WK>*v~{iNv_GXP?}~oxP~> zq%X>JD@>|Hxb9p|9Mi>-=oIWlW1-!B+3o#<fG49(lY){LHfCS-`KHYRBq3()*ev33 zkvJVu%~u6WRsdD)(4M_f?z?I|KR`k!L64a?Z5}45%dUNbtw->5(7Kx;td*1wPNB57 zq9&P2>Z})+Ws6dUuiUoii^SADCLl)1`?@RF(8-VLVzz~A1P|OuvyokN+~~U~FY8aJ z)@w7GI0V7^I6xppSQkE$6J$O5C8gBYT;gx<+MuozN^y~uNiJ`@o?XxRPcd5(iprb+ zl#ii~$MK@(i-NYLW=*p{0d~H3-|iFyXe0J2Dk8$ltTo^B<yE2|>WvJl=~&z9Y<Z2o za7+*?JpVOFZWdE}f9qR_E^Dz+VyU(FL2YpLM{n=qB+(i+28j8y!~3?<k46PWy~5P0 z4+M5c?)qMwfQ#prllwB)7mf__OTU%;y*(@m^M@8O#d_b~E^^3pzRTic)M~U8S6loa ziG9l7s;)w=aAw>ae2J=x`$AK4!s-%*VOh5mPaJ;+U9OK^$tEclIZB|J%j#29&&NsV z-|xK4ZvJU6*Z3kC(OcIaV34FW6>Zt%d}fB+nI=93?MKcA3=C}NLeu*+@+*WT?Nc=+ zyCqLwwxqFNhR!D&{;I}=fA_nB?bFrScH?1=+Ub&aN?4t{(eW?d|L&5;imV5m4AV~x zo?VuUR<C=wirQ@z=RZUbZxqa{R6U((`%qOJ=GD{zwF3aYO><eQSGa|NS5fAt;5dgD z9klbEji@OBZ*TJU=iRIJoxE#F17!glNB3N>9s2m-NUuwMo{@tGQdh_vSAT;`DNDWb zHU3_vt9p+)7^wxyk~k*JVphgg<n4bXpCidV5>CJL9C8rTKRC7gOl4jZa1QNu`7iKW zBk1J^BQtP7H5zMM*a%ab@^sXfG7RZF-EC8RJYP=EaopBc8_UN{qrqhH7KciCW#iIU z?a<4O$;{`X9}o3)-INq66d5ec+O9#aol&_J-(h-hP5*4Epcppy0dQMzmdIXS>qv?I zaTjR$bK2a>)(;1+88~M&v@^Xa*a&-B<v!K0Ad&dgXC!Nf$vKzLgJ+>v%@|Rwq;n9T zP>`EIzm)K@WJi7{@gtz<-o3j|<pMqw<-{A^#S#4x|D))vqndudIF6#CC?egUbR!K? zqS7VZOi2L&=^9K#K)Sm`Iw#$X?oMeK9fOS+gT?o^-#PnZ=j?p8v+eUd_qq4J@9P~} zrO>d8&6j_??CA3?UvlReiTLh$Sd&u7$X8#k;@}FAGrd+exs!`P-1F4=W{f0?X3M8V z$sEkQ2B5RIfp~qq-@@FH*EkWAvJ;l`=M;&?dIiV3tCLlfD!aG2Cog#N;qmX%f=8~w zI(`>WJ}`w~0o75$(35wI{}J$>5#@whaQ<OF_D{xA4si^(-&egAm^QZA(Rw%eWYe%M zlhfgr?IQs&kHr1vFQ`Ny56ngj9nqAO@2oU4WGdv1FD=<{n!rp+rimTSdA7S>o4FNs zr5yz}*2aHJ>M6mG%(D^+T1aO2@NoSt6L>#d?Z2OHO=W55nd4j8?5^6hVL{z3+H|<Q zyG9qBdLMG$fAJ&y<J-6G9~0Ge(LNhDx7WCYtkkvrY!|CL$rEqLzEN8egO|BMmxisQ zh8s_3<dC|m(Ay7T%QXZb5&f40q#&~x9T&zQXG*NJWB%E%{kdjyWd;IfREjh4%l_Tz z>nBX28b&GUT5b!$piri)q}a}bUGRys6MFTWN5^T_oSkzAl+HJjpsKtUKwo$6wBoGh zVWv>`UG4pM1;H;-e37Y%*8Vgys?P}?Fn{smwAJX8`O4}4A3*?PXacVt-^Np)n?o#U zN}qeA(Gk+x&NZh+e#=AE_|%-QUAe=CJ$64VVw8(*^HFiu=*97SiZyAnK?Xmq)=JL_ zl7+r?WsgI7--}4yc=gFV4gUuvNT_AD-^&+H2kg*>#x_to=y*UHHX=Y1WPU4-^-}P1 zQP}#q$;AIBN$cs(`f0fYlr4Aq)?qcO+y!61)5QMP+ZDL!|1<0QAAz|qeVE>x7tY7v z2v9u@tO&<};24U<59Uioy?E+4ZCa=tJ;az8KUlBe0AAtilkB2j=%N9-pyF$CeKswF zB(y%?MiNNr(S9Rptr+^mrfdvM4`Qu>tzQUqoF51NlY}vpv$#>&V(;SaU`0jin42@; z0UmtRgP&Xdvbs9#Y7AXS7PhQQZ6QOP#CYmjfO@F#PM-OX6p)kY2n7wJC>=r0EFCGe zywj4d!8wo(Y24BcU={fvK~r42rwgBKng%_o(3o3`$eW!w=YCmdv=FGr)N8`Zl1l@X z?*KkLDQjrD94UvT7UGyjV)k1d(zg#D7nRj)l0#D0YdmFx0;Irr4J@EArr}E4I5_Gc z@t6g!0*I%H_pMq78qIBN$y)Dy-68&+-x-oM55K{@NFR!|{(6cN8LsA7S}`;JDa_FJ zUCZ0d_Y{ACd1#(Bc;-CkK-Hh!5zl4xl95@`@ag8ye7LFk=VwM{KKqZYH`*o*-23RW z{B2wJ9uLw4xCP01WAIe9cRY)3FV5Gs|0D4DvL_yoVr3b0dv2*#;upB1>Ns|;ocx(1 zaKBC*jAA7kTt0|`f}(uPi<SMx{iK;L9$EvnP`UVzzmKBX@$2A1zd!M9qW_s@f4pHH zSiq{C3ttGeL7U=cg(H$Sq4E_UUW>l_VOik0(&D`Jx54?1c&f}Dp7q}I=8LtnH4oY> zcrzX2e36omA#6&<J&s4KO_Z9}BqN?Lyo1~+=2Eip9OW!@s^A{Gp;b*(yunWS^jCv% zeo3?iKY4#1<QQi=g76tCOuzg=+zE8BkkU>urMl<qr%U5Tz)B%9p|;`sF@OqO1H(<5 zaYGZ*dKleje|`RIv1z<t>`><mf}b}VPR|y9HE<jmmHL@(4-s4VkAR|n7B69l1vU6I zvne@4$DFfYiN4?O_{}sbHOZ$2*^10>d^oY!F^j6{<t|j{BvUu|3zmhS!yFN4)o`h+ z^T;<1A17oqUT5tvs9jYv=^$IN72;+85!8F>#Ac-@J{WbiH~*u`<eqgJ%P3Eu9kWN8 zFY+2W*^%Pdp@jBSx%9<+^~HbVA++w7CgXe?#Co=(dl=bxLGHWj+s@;sU=;g*1cMW# zeIKWwa={Do>)EDUQJP_EflFK^!HX;nR|yjWn}ZX|=QjI%y3&2h0lSNqH!wx?dnbfe z(bNu1W6ZG!AmVcTn-R`O@BI7#-8xqX3j&d%h-^#sp6KWBHLqroUIgG&4rxx;;dM92 zZ}80!AV-B3)oyI?v>HdEKu9w|V~}Pn#C?r){F@?pOb5jU89I-)dWEgx7bB(hiwle< zt(SRYL5^U1o`d9s=oR|q5HjDhyA;khL$YT7E)A?aa_IuhNg;@fptTaf*oM~Twl#0c z@1OG2M$R>Kn@R=S!`K+_2h~pq5Yftn$azMU^sHBtPU@fpOG6r_Sia!s=fs(KJsjHA z=*{1C@98{f1gdR=eq?nvY%V9e3RfnQ`S9<O4T<03+a3>J&5P3lMP1yXB(Ajl6ozE| zOE1Y9<JYHjt#r4+Bz`n{S<7PXwyv03=?imq#8TFE<!n^WXV>WS^BJ5&CcV|no90EV zFS@$oTHdSyo8O`F>6G6(Q+AJQLhtQVYqb$JA87GOZ8BkUiuyrWdk(a#wF54nu*&A` z^H`c!h2MXWXU6pC&xR;d&3fqAGume?0Y`U*&2NHauWxZ#8ItPfnOL*}*D69@T7gj3 z)ZZg~P0U_|UMZ2-)oN=#9Ylz6L{8PKlopowvb_y!x#H~V`yzH&OrhdNa~7%ctnh(h zc94v6BFRK&OZ@(=37D?nvr9E(3dgW(UHpzFITeic$2kmY!Bqx9w((P8KOfw>hO(bc z1$;)aK~F>$&yrjwuOC0b@WEJ4J0&O6VIOOjw6+bEC7)ld#tMCilPZdv6P&_4ejeQD z-W#|UD|p9+1)Nh>Dt7tm9<2)mn*|LG&R{4J53wDIrvJo*UiE!1l7`k7pqQX&XNRWN zxf(hsc10bL*LqEb>~rj57+Mt+Na6{Ft?q5*1Lwc3eDQ6n3Hjp{2g(+>z;Tw8P$@2# zZUQc0Hw=S%IoU3o2Pi(s(llxU_Y75s#Wc-j{M4l%E_}dzjTi3XM6>tfHBz@@$Jx32 z@<GKxk<Y9s>N`cSNj#eQ0pfIqH<d_o6nU>BSG{T<1$ua2F(j{u-te{7VJghQH6L^p z74!LVTejTB5oQxZxD$`kv*OWEX$api+4Ch=HuWWoTX>A(g6@#Dv}*h?)2pF$AuwJ` zGX{}RY0iz@m!jJ+eo5R&jA21gs(RDCA_jOS(%y@(=A(*mGCw&A1a;#Q_4WhQ-657P zN3HO^_-+M?;@DL!@xu$~WwIRUZ$@1QxI+J8z^C>%-c#c(W8ew=xK69vwOfRSN2J}e zckJ>e&nw=C9d(!0xXLq~Q1qTHKiV4OWeuU<`X+3A?cb^}xp?b>^`-pGqcxTrbc9)K zQt6k-f7D?zcbc!2<{#E&V_>C0F(+P789a&OB6~OE7vPX&N;nyvJ2oVabSWv_VhFs> zc)T3b&0|PAv{)?^D@(<+vM!fGrf&M1c<t<FKuJ?vRb1L-^9t9%W2i1jmOiG{(b&8O z6lLiVqEs&zLNW|m`@~X)w%j|>GsA1k9FQHt8qOjgM#nhs^-NU<^*B}l<#Jz1^0>XC zVXyl&2!)t6WJQFy?4_y92&j(<`vEWW9;z%<sG-pyOEeKXrGK`XdGY4<UH(H2v>d8W zV}V5{R4vOe%VuwkKCOEQVTjIOMh~7N)e3~3m9=CtdA0-+qw82`P=b7|)u3&Lx@gaE z1x}I2FzprusPB;7IaZ@5EAaHwG$liBg!;l~&RuK~^Xd^8&wNV0qBnpp3D}J-1dasj z;DK*6>06u-rkLg~tvSzOUSnygqmSm8CkT$c$S48UZ&Xp0rS9hdUp#e9fBW^Oojgm! zzld?$FWoW$(8@Jbb1%<@Py~NLlzW>feQ4r!(V^kW6daeoCcUCpUsb&cm`bh0F-P>- zY^nUxgcTnfC5ucnzD_)F>$GrNhV-|Y7wIaB_SStneXi{c`+%ScJ!MVSZGx|-T!=p0 zwM$t{or;v@2`nBFLK<eIiPTkTw!aTF3LbTJC0pIIw&1BOU$E-B-rRy+$g{aE2lkh6 z_opp6U0572pjHiEVKc=8v;C{>&66|#CH_UqdIEe_{qlRC?6Ub;ukfYupW1yLymu7! zwMzmn*SW(k&)969PQY8bZgZlx?PS^l9=mJ4_EdXMN?USVgmXJvy1J4lYsThyH#Yw& z$@Qrn;UW6*T8SS*0DSL?s3|O&oV2x#c{ui0?&R!WhtAfvqg?7xM1g31j_ScKz=F8b z4w@gK#k!&OXQh9PCA~9&EZ=F7_D!mgGywhpem5!Zb>$4OT!wq#%@LIvYnTV^Od>{F zsMs!wYq434?V0b!T{R{lGOvf3uWw3`=b?GtaU`58N?&i=t!Y{D-n9<!b5%S=4t^>^ zV<CAqNO?2iAS(tf4!k?uygroX7N6p+*Z_`UAZ*)%_#Z}Jx?Wg&gk|I)<1#reRoQL1 zxqphI<33Mn-9)Q7<MT|a8$!R!o@QTd<jON?$JYi*-yc^$ku~2^``RN<-t72fA0YG$ z63Y<|o;bJM9H9^o&#|m1!rJC<HOfE054yM^7}Hs0=3NPyP;wPA=OI?Sme0aXW&5>; z5pmy0g3wq99BQa~CZ_74yuZq<vSWHzQxD(WRC3`8|801Y^>St)LG3)MF}$)S9?o~; zBwS8^v^jw*Jy?(L6{1?#@$_`Fo=c`>Rilg`f$0K(tf;UzBcw=+o~TL<8O}#aK@iSJ z_}%>Q;^NkAjG;-4b#@skp*ioeKtr7R{r?Es9<U5Ho6t%vZ;s&@FjelOmF}({(Mz3Y zKx3kwO$Lj1v2q=wzg<Zw0it9lhEu%&2Fw1+SJte_{^Pdta(u8ue%X6_4S9;u9(#0M zA4yBNU7mKo7_9bpEiUSQo^g_Q)m8l%;xB>cGBsnqwo{gx>13*L97E*N*MRbyPch%j zOl@b@xU$$Ho9%+DjXt4lpv!c>+h)~e$!#V{TUo@Boq4HnBu&~RbXbJ2>+MOH^pR1) zbjLlX!F4ZZ0H^2vliJbbm4-Na!MW7)mCZ_Pj~wuMrCiN9XdD&NMdG)QJhd1QzI;j; zW>KcQlI;NB91_`dqVAo}*x`y7B1#0ffoy<sO<!O(&6~1z#UM`MTm939^YELbbukGZ znw1x#!rOIkLJZ)pPBS1p2fp3YIXA!!#X<`1{f~f7(f$6$%60QAV53YtW2oUi%5%p# zklQt1EumqScFrRwWR<n+IJ*x(nm5V10{r%B&o06Kee#sJ_+}`M(&>ie;opBJjfFyC zx*-!h+pMLPI0(y0!5`$5ida4vBMAkP3iX~xO4g0qHpY)Db$|as8@f@Dk01CFU_(3B zTNL>xuu;>V@tw!2sG&Z)a&!j0;o<cAAd?)kbzR|!^4vE5w-+}!V?!F!q!<SYs7s}? zZ}*oA_7(h=4eS`jdaLyIZG(OZ{&e+PURlNqV;?K_k<CWO-$OOY02<bh`rppoWAL{X zxg$moslwfQ_b*P9b;2-77G=qVEN0Wpk5FHJ-HC4`yRqv9BL%8NNEZucV>tXuu^`Kd z^0`Xgi_0SX*jsihoTRi5O!Kr{(0Y#ZJw)1m*gdMT1S5)2E^y%(T4uLl5Pf)74fq|v z^}UPwwMKTfDuGa=nbL!2hA`3XsUGNTbyKb*+te%n$KCh;dKFU7x5aLsSfUZP{}E_n zb{Bx8J2HVLf_s01j#n+sSj~xM3z>-!a`Sw?9HH#O8ke#&B3am%^7l|m90lPntPAS$ zQ?G-zO_#bzP{!hYea!JMVi|45_W;cE^K1f^cwPZsC<8LArp_*B@cxfLpc=)JTe%g_ zyb)9}xiZmAxZk@L#&=|Jtwl75Y<ew;w2salP)Vm_Tg}3<$djSW?lPkko~*J`-bTuj z!3@uEEI_K3UuNrvx|IiHE(C=7yzcP>On6;r49FNPBV~vOq@SGS=TUEvBjk6G?GmE2 z4`O1;CeNLMBKjaqE%=7K#dm+(GHF@`bu3x@_EOKPGf!#qyPxp_siF7US07a#<vl=I zy8i;z3M^79{(!YaQAufW7wH%1auMnA;1&D^5dF)64vL*fSC=!JnGZ!TY()rD>5d<o z%mXQEj*_V%v%rQH&}-q?NESuF9|#;QPc}rK;pJ>O{MtnFncT648zDw`K5g5rL(<x2 zqqcu*_j{128hb-iUK?cS;?+#Q+Ug3|5uT8cpZgKTHZVKL6`?IiOV*hX+Vp#_Ltw{6 zea1Fa>%P4WOUAJ_0eEJ0DujjjL$%lwiniAV9}8VK1AapuchQ))X)vd{;&k1TBna~Z z7W7MbxN7iym~Q<3$)h(Q9SAeu#Y?&1DhDt~IMBuQQm%+Z<m<)1Ar|F3y<;nS1Z-A? z2r2!k7WT>b^T}e@UFbH~cdkz7U)8X!=c^rm-ww?$l%f>j6Paev6>@5cHO=2{)l`os zS~oVAuIKxfm(YSYfs&=0ZkM+#c>wq?)Z!!}Z%Q-qLk(@1>^Ghnl*~Z77B=te2G7|A z<#5C&@tY|OH#of6y{e{mAhR~Ekjnl92|{^)tMq5;ek2>V(ew6HSi6K_(_#vaxxuyl zFez8pZ96KS!}wrGLyF*}F%9QwPzttR_y1~!T;KnDjeXi5;8MiTU$jvN^GQ`55x*0r zImK>WKNTN|Q=Mh4BY%5mWM6=OgJRIHPds<|ZT(Y~_%|C{u^por=jqiIuEy;YA=2)G z|HHQ&ZMI}4Xa+}k2S`%-oQSY%wmEt87DstJox(wtc-!T#A0S*CwBXKFq&J+intqI9 zH(|8)w)FJ$k^8@eK*)06_URj^wvpPsM~baI><2juL!`8V4z^3++u*9vkNp!xOErtP zC*`+j>evdC(q#EqF=<dr+w};v@zhJ_g$gpn-$9gL_xu5KP}u*u)5I*@0af`n-f@2Y z-84YkPd=5@5Q2`U#0|n3dye-+=?GScK4(G7+afQ<>d$ch5nKxYWG@|ac>{C1#7srl zM)&*FzL%&j$$--FNR02u-4lO~f72%qR|f*AbJ;W5+f&$_;xfP;pzVBFg42inuY+=i ze*BRwIX8<#<G&zNgU=G#*i(k2u~(Y+f5}yH{Df#({zrgUgc6i{RsidgFccU`bbNTt zX~%nxs0n@|ER*cO+Vi*KMtdEfnt8r8J^OrdbGvnO=MC<xg4j*nZ<wr`pffEXP~WwU z3O`4h!>3~lYnvMrMH}1*sF{v8$Xbr?0)UOp*VBzKFLzKnhGl9O$mHu;spdjyWJFv~ z*I)IH9I%*lg4Q-9b+@-6c}4p*xy5+hIKK`OYNNU<G0nZ1%J<!1)*^U3k0MS?sO0Uo zd7%0?HBRtxa!%*6vm46Vw$#;V79gNtj;R7lQZBI$6q&0rt1*mS5>tJ2%F#bg*bx8y z_wpWSTYqW?5bzH-iX+Na3B0wjp!2BRx|cQ4hE3~`_@nQ{rd9R4yO2wq^dWooM8(n_ zE~Awz*v=W)c-e?Un@^+CZVVRo<I(cY&LIt%nu<ZZVQ~eXtd>2Tkz(X3G}#ox5n1R0 zh@IQhim<kZUzzU-Uky<)g6iBNg8wBvm10+922Lx#mUFTTtDjlHH#Wv~R%E2b{v+Tx zDO5$pjqaGWhuBG+p_Bbz*DxR`$0G4Kq_vGcv80*<dp42=<U~-r4VuMI(@MUely|Fu z{0YO;{I@)F!9yElt?^UYI)IF?Pnm^>78~yxPD{CNys)5m{}BL}-k5p8ZeTaqp?=-$ zUjj4XIUhV~-3Q&(+{7+d$5@YICK>J#f679~ts=$YKM!ZszC<?wD=Y{<j-eU9ypwF9 z9{RG4hl6oVXMv0s&j6*@mqh9wZfjb1DtL71ccA=AL^`*L%f3#6Xw8$sfJ?2G&Tx|h z<vPD{zDA4k2Y1G+`nW-}ckfD8mf2VZCVvA<%GZMj>20S4#@*SZg3h|1uS->Rf&Im4 zPQcf=w>yTbS$P}rm-5`rh!?F5VO7<fqI9yEFTm?J(v?lk&F^sLZXA&x*k9xZIiE%Y z{#B|kTocVN>4b1*iU21m6Ja{@AnWYM4@@-t_Jm#SqD!HU>Y--RAS=5@Ghg@8iX-P> znP6^IAKGXhfQ^Da=}r};r-fI1i8Jn)Pi4@_P~&{1%laadi6p4h4gJ_;eE=CL_)@Uy z@vVo?oOk@cH$*eGT{PV6mt9)@H4lknK2zs3UgJCESYJ-Diiyh#;~+0Qaa`VE@GFO7 z5zVDY8)2&vtFnswiM~pO=@jt<zW`%cN9P5nWZ=@0kHX)&=!}Q3S#?dj%+SmD0K28r zC;Z6EUjm7?#uV=**8dUJmKo&Cx(3_|_lCa$8q`4gaB8@S5seCyu8is7(ZQEPGOs;P zbj<<pT$)s&%6`ZSmd+4>VIP{-Y^5J=VZuNAhLS%z&Z&6mRAayV`#&Y7ZU(y5(B=~@ zrJ>CO`{2Pkt34UOm?6sK)@o%-gB|Se#yiwN-afoLKXZ&ksO_ot^Q04U#TYL<MN<uU zQ}m}r5quoG#KIaMKx$tL(^WT2SIfBazLgp<aGO9-@yq5V{{e4o!WD*ZQyUr0$G$c{ z*DOVe<`7dKQo4)x*CZr!&ixBH2k2M^4?Y+8lr^Sp;$RW(`{^ECS;VQ{1t8Jiov~K> zc9CO@!l2y1(_>!^KRo+volcHJ<DmS~bm=8z&g@1zN37<)n%k?FWH_<G`7MuQS3368 z2Z5Klf4b6i{!Q}vh^jbMvW%~)Z^igjz|bs5Q+&s)^LxQTAp!GkhC;!<n|Jsa%2KbP zqJx*SapJ3+`{j-PTd_$`=U8E@?1%2d*J5dA1AF_HZXXi69$8*!zge0YK{J~TgBc~x zsMUh~CWVuAwb11KW&B%zQ#0*&3BFbE7Sop>|3@G^`g12Bp|sQu|GZ#}%&)r2%+u`> zG^QY6vKzQxI_*6cX`S@6TCpb=PF2L^68H}r$w3Y3icKb>)y>`1*Ny)-`mhefo$77v z%f-$TFu8C(<%{*<d=W2~D-r+DjT~@vmpeb=m880AoshP5&v>qXZs^{dujuD<Ers9I zPORFif`<i4)&@Lc_dm>3YBYdo$}2sBhqYT&3-~D0_BFu@;*OHPqU+rNCwK3VFOuuS zx<GTXrn1I?-lZ#A$esNsIvHV;-*_E?LGpqhk15W4h-=xGdtg@J&uHc~xll1Z%q&w; zlcGhSK|=5l-qIbsvh%TWVTVN&&*Y|E(!0sO#rAi|H>E1{1WVu*yt3I^h}`qEBaV}* z?oUZ;`x&y%p5G=M-Tk0irS8w27voPu%S0#qro#mU+1A#(QpV!{?Qj3l$S7LnO=9v% z{$K}4E%hxcR*%Uo)pEr8Vy0f=TaJ~6&CN*~2Q9WXzYwnuD0g<Sh8(78TQwA}8W((v zX9_m3Pj9(4CdWkL)CT2KH4L$FU>o1>>8Y4)PBvO6b?>>3ybaLrTv{ER<<Vih6oBy< zshQAIHpU=w{`Fv=386t0e@!b$ju5J0cN`%uq9&v|MBql4dE(GPqb=dyoT6+VKeB~R zgR0ZXdjfel7~Im<g*TF`%><V~OIi`Uln14(&D%$vagR|`7K)4zH+v3qkHlsoG0A={ zYw;u#aqjurRbl%B+8U(JvO+(F$za0x5s%*4CE;AB0shW3UgFZF6fV2>V;q0z5%e1n zu*zSIH@r#b7vKm;Ds>SkPG7s8zP#MY^|vvZGsrUe&OW%ib6LznCSLDq-`u93QQtf+ zJ@J3<-@2}rrWqE_Pv@e1ueaYa@n&MvJ3f<S7x<~B%Ny;E&|X&?)bg1swBM<YY#(aR zq$miDUAIXgQISypmlCkDGU9?BN68?im#Exox>v1vNUfe<_ZVYp<oK#U%NqTE9qsS1 z=@XwD9*0bDfKMx-4f0-z8p0;<q8R8Oy>bV>qmv*IrIhZ^U~ZY96_Dlf#27-RUvID! zt**#CUQh17|65)G@jx$xx%l-v^g`&CP;E^;jxKp1E&s53zxK-*H{0F_%oK(e@vF70 zUV=Sqd8B*jxl(7yCv7tKPtPrv3(pwu!2~ORg-|!He#n9@>86>gD6QwPm^lND5c$hg z$_1Pk-NPC?Uut4O_UBXs6i)-W-hV5gP3glr)nc=O2FRr4h8oL}@f!D-kH?0_Uk6Q` zJUUg&Iacp#W8_6qnT%S3HHU^VpNNEVuF7k0LVj(59#a)(ZxuXhYf18M%kjz@`zi93 z3C8Jv8gGW*xsoJ2W^&hQ#OBEYL@QX^2I#51c`jXH#<0qFz@^nQ9Hf${J~^EucgZCf zPhPO@05Qk{T#AcCEQU2O8TKRkSCs*7gCKJM@0Q0R<b|&5D1}s`PHa9#hoAG@rQhYL zjhEBAw42|Udx)af)hD?ZwJY5`)<Ms|7;<@Y;2X!YM>j!(C!|`HQ<-4-_{F^<6a?z! zV{)yApXm5w^`it3n<q;4sD9p*YHyWO?PXM1K7p)5r~UGq${*}&t#p*pXa&@nz{Luo zn3BgU%?l?xz2eRje88WlrYF|sX~!4oaSvC)alr!LQv;j4NG^jf6V>J4pcbHh)!x$g z|31`ALKtwNICfg1RmJKUe+x0s-OU?A2!Y;6_EzDCJ!^eA_uiL}UpG(PVIuE3RzXzh zdHGA3U{V;}j*y^gO(Vf)gFVk5TAKL{@ljP@VKu+oL?UfvA~N1{BWqkiAvm$P{xP?w zS}z&;{Z_Mz6?*d-G?=O`94T-|7lstyCe*8S#UG!Nmq2fe@w+<s#0FB2EfQZ%P5bQ2 zN_AkP@ZOLCPkHCcrlrvrmDvgzVk`EL*d&&9_vJJ1D;?IXvx{W#nX8c}LcxRz8=b99 zb86X>6XZzra&~ys6@0QOxTOc)cmO+ZFs{B7xS1}grtfRG3nL=Ox67Z;HArDJI~0y= zJ!PV@6K!@WyJg54ZlE}#x@y07!PYT@960?=PP!tU<r&b^vHU}{%S%~&w*G2m`KlT} zU4x9mL8|+YdYaCK%yS38u%}QrLDf0k7W?-pWA4hOcsA-_@3~(qM;6P*-($WwK)5{T zoWQSmot&!DSE*{RA}h@DdpGGPJUQZ*i!Y^;Jyizfc=(M)9V?IiHEQ!RpJrQC;s@*> z1W+fURsCi)QtiBiGgjW6LSD1$Qy}9JU4^u2*}%VhAIrAxJO6A#`R{PB^0~9BR!8X5 zO|Hy0qqLxC-$bq~d*A-@l%X-*>$a4uIu1QU*7=gnq}uhB;2E4qxb)RR*RAP?Oj#+r zDo2QuR=|ZR%wvf_S=D>w(?)8)74QvWAg!pX$+Ny|pMr7Ap;0%qTVA@(@qv*@bK0}2 z5$2~3jar&Y>WPpo$asy3f`=h{!zyNSNe6|kt{U+az{jkObN3wjHN0W7ceFEbefUgs z!`{Zi8)oIG5Q1?g>GQvH{xeKf$o9i?N$j?RXNRgu;$me>6jMm#E<QCSXW7V`Luq5j zbpuMp(?l1Sc3`Wb&J>!#hP_-_Zx7~;XrdvGLCQGKl1W<jw1F%!F0LaBlI9;6J0zQ% zr|n0+^Nph1ja;XW4Pu08hjZj<sOn4|TlwCXe9;@L$~zq7-9nByWX+3Ofyu2QJ0eM{ z=yrHTdfn0|7j1AdChIOX$IEW<S#)Z#!&e9193|*V&r$Ec{^CbJTuU{N8sX0Jnc8Dj zi}#7*9{O%EWk01I@0%MLV_(fZim%J#9}~e2ZST?g8&v=o?Aca3fqPD}PCd5r+_p(+ zfsX3^*)UfW934b7v^YK9JF24pT8V^Z;+oRZ&$mB}Lvm51^3hsB;cAXvx$dM{HTh=q zn!MA<x{f(sgK!+!IR#T->z#5A{z1oRn>@u-Arrq6mcb`5U-{S0qlgDgf$K)_AHKp3 zJ-h$JC&9qJxEa0~iTTSuYtOOju6briI2++=7X$+5A00E#dP}$Nm1dsi!{@21Wj)^e z`D%Ql8vCKb<Y<pA8xQz-Tvz#sE7kSMo$;?&n*K=>!HgH8O%o&GQ~(^=Cb_u<ZE$zV zTg{L?*}uqA7&*QnzqIpN0-D|d-fe822rg|{!_Cup_D*jMv`I}uOZO+VN^y&i`2HP) zk4m}Byndpaq|@jZ_$7~{HBm3{i9ss=_9G1g<2L5H5lS{4zO<F!p-D~!M%oh1hYph5 zqtp2tjku00xgA|>*)^L7_<q})J=3K34WY1)R=D}eub5x`#kkwAiPvDNP$dLMNAeWN z(f#oU>{>*s&5^Fsc0T#YvveaQX^w+uEfJh5xy~nj6Ti-uM;nq4(vKmc^WJVN9M>}X zlyj<x_>A1!&!!-F$JH3$Pa28(zn?D<LpxUP%-LYp37#4Djemx>&&?9OVx9K4Zts9) zlM)qD><6>Oy`nco;2Tg6u8qXdJuFx0aB05{WX4=TGgK|4lLEj;pf@ra-$y3AM$o2X zjHA=306~7(r}xI812&a~)oqR<t^CUF--`^~|DmGwx-MC3g?Qt6O;lu5|2!FBN8;K* zJzS<rW0^uq*e^j;c%8yT9p}&5je*QeICZ`xOowT%!7SojvfO3WZ_3sAVB`w+rTqI* zRoo*wo#OW{C8!eQFa&Aa5<|W!N2F;qQ%QN7<Bd@qZ7_?ea6Y=l%U!SJATT9opQ7R_ zmka;EUu+Ko^|!F)r{QUTqhB)RG-pV$2N+MLHEnP<DVqm6uKBM<{XOLMYFw-;O%eFn zqxwAC;BU2|CB8r?VY@S-JE>=UWo(u9AA#gy;9fe+&f3*P%PxWAV#l@grKi~&04%a3 zdUzW*+?;u_tbBr6nsCY*7nz_i`TP7?sP#dz=4|zKkT6}+ptXUkqoJBjR?C9Z(f{|x zF+}s)2k5N}PbGvK2U$wIDpF{oPIutZ5TIZ395#A85nGb401GJ9kN%jg-W>KZUziQ} zLwJemGCbd|=9os!t4%Y+L|AL)+pe#;xnc97pm^l{BQRxMMMWz+H(~hzIXDmv2?XuG zh}90Ps5}G2{kl^GIm=OBb18hvx&2wE`kYFqrEC>hH#bw*q9KLTd+{Abat+QYep6kp z8dfisq^fw)v$AC%{JyNnZg0*`u_awOUhE+9Aif85g3o8ZJ7K{M7Iiurr}3piAZG!E zj}Fb$k<5=SW+Vxss>^VTSwW|N`4?LSH_WNFww||uvuzp|KYL2mrJNJEd{C%X@^yxq zy9xXWHzwk8k2xcnEfHT>O95PCeMOS1u49tX4fs9t=qYGrRjZ-hT|CpHFkF_@soWi{ ziK5WY!FElU?IkqC#ROh~^JJ?n1?WxrcgIWVR?{X_m`X|x-_AAV^PeXSg-<zUF2ow1 zbAj}V=}OY#7dL;XOuGlquE=HlFt^Qpw5TF{#nt45$#3+@=BM6lc{k}pmh<`soO5p> zKH0X3oLXSahF88JA0hMOW73hf0Xbdo4&l5W5_ZDf3B!IhkI8l-2Y6^8Km}Jt`Hhc$ z`iMjjXR5r+Iat9HL&CxE^~S1Nkb|h3w7-L^N+)oGbsn0~=k6vrp04MiNTt0e{xsA6 z(Wt{u0&{|pC=Mf`ZKMB})OpI=2aD3d*SGnK>$pW9PSn8jl3~+eQ?jnF0Y(=85j4n0 zc=I>Ya9UTq*6cXD0h32<_`h^snB{mI`t36L0hWg=NSn1*JO!MxM#*X7u+r)zr4Hs# z>vF!sHA#k+Q*OS2Y~P3;GO-}j>StU4XwKbVyR>$D@Aj)5SsGIFC&XlSJ)S(Whjw|z z$yq-!<*04-<?D9;DSf18K2TvYY-TRqoS@z7$D&?Vloow=3qEOCtCYUHWN&wc$jN`b zv+hGS{k<oUuG4I9ktXsiymSn$XTE7B7Hz{Q5`GJ;Zy+rOLTnxt@HLzzsTxpQu0gBb zi95HXzMMNq24*vGkMgOQk%xvFUqNm&oAvW^M=bq?F66UyR#Y_Ngd`A(i3aJJyZe9H zu?5vt&_vb_pClup7e1rLQ+H_Rw5-OixP*{{GRyc$ZU5?WG3>i1pq*(EW!Ywio)veC znj+Q|HY^A*C#GGjHtLa{7L8-Ll=Ij`X3lqH{4;q(tdpbhJU9h_o5|7~un%A4dYYdi zz1DinH}v&Xd^1gH?g{I=z^$lg(;1-Z-yvC_5W=-@)CwKE#kvZ3LglXo`oAuhn|GI* zNR)zO5bu4PA2YTIg58hV!8?Wy*gsx}8Tec_*ONgIx|Z*R@SOv`XZPsrED&n&pdk`7 z`?4~><gupnAjC3cm_=fX2W{-)c9Y57s(#^o28cZ2LmX)TxGps>dDnfP-J+~?0)euy ztmA)88U4(zo8e^0wZTOPt*E*9^^huCkaPoPn6I{U)^IEEX^x3bP~P5XXiOi*vaCH` zthO<mG&kaS7?`>VBXw3twh@T=b`~=};4h%X(qLG0LXr_lO`}({wROfMY9&;0w9=5a z7+>mmsllpN8~OD`X*H=$^=XT!DJ)K!N|k3aaItG;a-DFwDW5$RGmDvWjNj?3o-C@L zgo?iv4gLPF(j7N*r<Kiw?4U#R9f0+t;E`3{l`=kQB=U;1F3@+96jxNF%i=~IHV-pj z1|y2I75tF*%Z=ItD7du^$x~)=T{~+-Frh!D$Ho#TUy2$B5A*B>jsGoFLRNg=r|l^f z$EZRrS93lw1}=p-B{&<~+2E!gLM;mZsZKS1$O>*r!v!rAj*0H+G6jFc8?&qyKexo= zL7K}`Rp+%@+V429!9-o4J_GY!&M#gkfsynUd+g{6Ck@aFNIfx$&gC-!k1^6M;1)^3 z*Z*M9ZjSs(nutzX#DQ33Au2M@An+b~>A{;k4`-dPNex%{<=f*R#xntS9<M_4Z64U6 zEbav7kcG2pLiKAVm4lhqGdYCURoUQ`s0EI|GT5Jsn>`B74h}IUbMg>I#8l2#!ab*w z75hfUS&GjxJhZFRkC5fw(6b!~K8Km0Y1H+I+lanyy|Mr`8YMbBNFFQfHZmBrxOj3^ z;Tb$9k+eS4HA(%kl_7%m3QU--g!lk|>Rw>ibh*z+ALcdTp%LxLnfT@*JJmZ&&vPxq z!?Z34+?CuT+fc4_lLbYMj`wfHR=!L#Omm^<AL0C$Xg>QV0-5*s%ZB&tr{+}4#N2Na zRt(rMaP`{jp%TVH-w5|^>Cz29XLI{ZjygfhXjk2kWVOX8V@w_-GbdHYevhjVU-Am^ zT=8aEnIz#;%5ZG5at;~2cPZig6i1)5$fHXX@l=bGf#EM@)<vg`;-cWsij}}YV`1PS z-b!V{NQV@a$Cs9LplR{5SM0r~!~6no^N-DQ?3<sI)#K}_O?%CUs~A#!os~Qd^W{{p z;YHtM+raF-3B_{Ud@$#{;Hz+F?$_0gKa*axFsJUO2NNU0CMy{=Y;neT|H<djz{Mim z3k1<JwaHa8(Dw77>L0_-EH&`Je+2or_mN3D%kwt?L(2aMCO0Dw%khyXZg%p$+vhKr z9bxY@$0^*Lx&bTBP_{#3BE9-L{e$}7<cwj+8Z8XZ4#NVuL{4|xXSQ!X2PcLcC>Q9u z&NKcbBIOnLG$MG_&aaK5pmWU9CMwHgM8U^(L)Qp{*S3G~u0-ns--R1B&3*mNY*&NV z<&f^_9_Kf@^~+Rq$_c})m1Li0M6PYL)Oeh4PsPkoo9OQPD!#B`CKxgUd%`yd8Qyib zTN4mi1TCI9t68VNxzW39|BpbSC!<5$Sm;Z|=z6O)L}wZz1XJ8WO1=qDVqIPBYm;V3 zW@G+S{RPk%(QgoCV%=m?_|W>fvPa9o{noNB2ET0q`bFF#&j;5*Iu(YVYbvAj?TGlF zO@AgI|DYDygT1W1Dmob$osEZ9pR{`Ralc<Ho9`&R#gCBJ3>BLN&*MG%#2HkwN1OPg z45|vhNFB{KbjYA}{q6!iR*HPwC3-TJzA^t3-}?p>L;b3qa1*b3%$d%S!dP~0oZf@K z*l1Sm%sO<W*-lm8aqU>nY2y`l%@;7{DWFwGVO-;>UQV&NWNA|K<|xi=v-RXf@O&44 zOWJ3DXGV9GC)~as`>|}uq(utl9}bO4Tv^t6=C%ZK&f_&0iXEAB^IxIdNzYFIsg7Kg zbHUx>tsd{xH#<Ii%oyn*nXk@as$uSL_8$SBPe|}<u51On1L8n6+u@JKa@1qUECivJ zr@N;c<H-K)<6lKPOe9}>(8|tVV3f$HU&@D>fViBc_ze`{5V33}$3@@6v`<gig^zjt zWLcngP0p%+lGKdPTlIUyQ);z!*6XaQ*T9tvG1z7G4WH&QNb!^j{`?Tr`m;*SwXSi| zMrc`!95-vcq3ObySkXJczMkM|_1<P{iq@2rN1%q7EwlOWWY9OKg_|&p77~=U(A@(3 zuCI_w<s7)wyf3fT<>={gYkqkgK)KmKbp{SjVxQOz=Q)OiX_W=fW=&)%x!68SJ3@EP zmOPPP*jIpu`bDu*ySO4My0)T(vwX_8AY>!%jNgWhDEAgxZ!3b@oF;<K0r?n(vRqlE zTmS2mvrdTU+z{+lz;@NHML8R{6r22YbXD+lK(^E3idA+QzRaGf>^axu{A&(K2mO#* zv-guaS;p2gbV!>|eyW%L@<b%EdMLvr=I5yAxjyksfZ8TPD9LpevY&+OQYqQQSYN!K zoYkJi>+vOwsr1l0j7Cd5`(`qn6O$%xEMXq$!9+_dn#GW_{y_Ec-K>e^?k-Ltx-_07 zwuHEk2lC<R4SK1w==^J(&Bv7ejm49(Kuk84rF;X_3$0tI?#^V34dE2Su|<JthLjuU zHa74kchSJ{gOWE(6!`WjegK-{S4Zy?E)l98mRQvdQpCgJmbt6dSHcGJwpA^3H{!rE zzVu8iK6gC)aCq6?!-ua#gM<|NVO2Ou5&OVwPu99jiF;`~D;38eTCgC!^Oz;Coyt#9 z3cT4iw3S<y0cz0naZxHWoU-(toTx?_igbV`a`&<8OQYUV8`-~<DfuG47%z;_4Y)-; z`C~&Cx@u|D4#i{uU~Z%%9&&zwrx?%r=bFT;hk(BDMDuhBCbn-gj@(2dYs?e~Pb8+n zNSD;U@hYEmDLfe1w2RI!Zre80;Ntrl^Glualw6Y&-y3|~s#Q<5KPNFxGRB|oeIj-& zuls(T3D|B7tGDGO5UH!mi&$E<_sF%S#=cI{$T_PqS4a6moz=8porvVzaFL%mfgf=s zi@zO98rN+7eF}Jb^NRsZ^+5nIMwF*VXCp6P=n}B+r2uceX5e0AWpfakCk)YNiODL8 zS|aNRG>rZ}F{x7QX)I5+m}FVkf5Y|J5m>Y({@x9~+MgBjieG~Dbr5VwcX}?`<7Th$ zd~TP^Yo75mZv?+ULl#(K%_9CSyXGmy?ve97m=f2)(U|vv++{?y)l(vG0^<CrlDR@< z6~#NK!CzNXM~B;AKdu<tBC(#yzIkcm!IcvFBfvh+F0io>*BK18FrO{Ko9dl+LfG_` zQ3GX)t~OD0%=%;xEr8zx4FBPTH^|s89T7z_1s`E2QTzPCOedmG7Qgu_zFa$fyuKEq z+C_>`nrKMJnKd|a_Q&vy=xb~&2(|scvQTdDX=xDavUCpFni%_!Aofk;{I5~<w!b8M zq{6E5jVoUiC<SHTd*co44#}RiH3)vNpkatGyU3N?#x+ywZT7vqxbY{YNmG6vuw)J| z><fOW6BA5T2l2_;aIt5~)7wse;9V*$F8`r%?yd<^UKn4WV_&lh5*i%4RQM=vQf(7O zD?mIDZL-Wd#J0ysU&<D#`^Tb`?N!`H;6k+r!rVBa&c<~?e;WSA$Z5pgBhO`2*`&3H zi_v(x%b{3n^0wVm3P+ElsntG*-Lujrrd~0)kUF<O{t@`oVmb-y^Jw*c>1p{8J$fmW zokR@VYXP{MWQ~89wdZe3=M&sN2r-<P!DG~}-L>5tEdFd>Uo@}Z<dU9VCF|_OD({8< za%sTMq<&MBhjvmQi#G{%?Yu&~B+lGLFXiDTC*z@7fU)m6|2_|HxM!W86*twj{i>g6 z*b=!nwWlOg>f2l}rDuiKn*mws^ng+P{}Dvj;6v(<`jd|<mZT!9y*}e}uLpZ_cElGk zPvOXV#FWmQP{WC_qnQFnu|?k7YcT$jAN4iOJDVszp<iAQQnL~FvJJ<-%d79+S}T5i z7KLs``oaNW5L=<|Z(OsX8mecqYGSO830==@W8i$-e{=p;T9GYJ8ehLblp8y_2Omdi z;hS<`$ondIL@1C9ErDXdkpsxghdirP9)H=ge>T1VRiMF1p$Z3Y^gFNg*~xJid_kMM zJTL><Km@*-HS{K?EfqU4p4npmL7+DtUL)e{vXsm*`TMf<Ucc3+DY>u!$o=-srnUe_ zR31pSf`hVJ&08n<PKM9-SWDmxEv3n^!lB3HyOV5YMFlsigwiyp>(st7oysUWyE8iP znF`4|=nrzb=T^F*9Q%@_^@(=i(wv?j-?qakx>!lR)+2f2>r^WJ_wjD8fp=Q%zGr#G z9%wTc{bt_f&5OlNpAworw;xs{DBbNs1mO_P$JO>hc9V{dz0LuD2#f-)wc+H94cSJ| zIeZ%SVgC@8fQ}kOts-_TQ1Q{erZ9oDtqcLvzv^+BRQqG}eo>e;Cr)WbZf-7ZiX)@- zl$0C55?}#4NUrWJpl#F?+sS}uUnRynwbfMp@E^Z;ouV37v~4cFe3S*e!@M}6_X>2y zOtTONTL&bogmrLLp3r{{5zut1`)XO|vN`2+2SDnfUbrxy4+aa&{jQtais$3#b9H1` z6`zDww4WcJ;wSssohEpCE89YsDjQ*!j=|ic*ldU`*5}0B^1VsepAR;#vTXa!b*!8h zx>zwzD1W%lTYPU&q1!|0dC6ICU`E8~?(+a+Cd4_iaaLA=6vL`OI+JSYqrt9I`<7_} zI8k<TlXcyb2fxSe(NQU#(uBF2-HZO2ZRYQNeU7R(H8P;UCuT-?O~Nfsc`06=8x=j2 z)i{4M+d29UUz<j)=}1>)x}L#`TN~4)avGCpBM&~y`B!C|-<C8>^bb+acF|cA?H{yK zZDP3b!hbNcUu?sCLWdpY7RhRGNr{WPS#=}+OwoLO=sutTRli7{Sv5qR;J13*BcY!d zu8I?7%9PQl9G8gP1Nqdeh;IBV34XqovmLrn`|#=2b@mxy3sKt`!gI^#5%8()gKkS2 zw0?h9Slh8v%sx>cx$xja4{8PaeN-$$qc1=!u9VFz7w_Dv9J+t-J*YB(XVM&eatU!L z07kM`V03IZy1D>tS2X%9VH|3+m~n>?%{Wp8->5azdy<KRm{aQRsqd|6#^0V?SAobL ze_FszHtGGQMz}J(Vfxd?5-P%<C+)VWn)u$WQ`I7O;VRXbLvpOM?N8BdQBFy=&ozc= zbL>pSrQ?G@hdCk~IjqjS)O)eL?E4TTfC$+ndIWg^R09PS179@HyLr!eEitpVnU@Mb z;D;*n{e%HpHi<vYhyx<?DXwm-YPcM)3YkWSg&AHM-6~#-qckc>H2PT{iHp_O2Lgdg z^IP$OG<LCqw1T1ls$8WZD!S4y7o#`kkai8Px~1x=vK}jgH5<O=lB;&~b@TpRPD)$x z^;y0<GMPgC%=X7y$m=PmN@wtxqZ_}T=IGu#b&boRVn?0rv2f3O%}M0Zovt+Bhgt@V zlKbLGu9Ww;UVA@}u-A|TE~WA)Nhw`f`8My}1P#?{EH7IgV!$Xqh3?7<z*>qV$v0r@ zYsyC_AqEk@*i53;w-Q>IOp;fc#Lu6N1wIf}w)n}B`5`#(PyIH$<1*C!f%*@XQB|6d zlL7Kd4o9V<)unb^_54a<w6UI<mv0+-#d(*b1`^~#&aqqfdh!N;>kG|2Ds4wto({}u zXP+V_$mBm%Jn25ys)ZL%ticFZv_#qHXj{6auPT@FNJsmpkH)&hR%|z8h$r=YbzPS_ zuh3n=ZU{=p?LRAR#>ZJ0e7#RWpIQbz!eI(&u>IVd@iE~yIw~7SuJ7hVuPDsBOGXYC z{kM<`kG)DBE7zW)A4KO;?qyGhsFk2h&GlO($<|0E<lyDnzJUuGCXP!@-~(?+^`?!L z$%v=h320;!kVWSL7O!~1|G9q_Z##c1$7`M&a4%5ywerXH7qe*|_|8so9UR{DeVpGu z4Jxg=Og6%`Q8QJ9?Nk@9G#~#h^8+;*Xx+*Mv)wyzSvtW2qtq$q)Yk8cFY24}Vlgr8 zmQH>R$QK`M6PJ7IgSrc6E4x>s4r`Y?=acF71$qW&Hkziwt~Jcn@@5$#V$~9-6O4&! zcspwnX~SI3Z8);Cy;yqX)CyN7CsY9VdNVvo=-6P5-ZLhhw<!y-H*ptq3NCeu=E}8m zbh6lcF9VkXcR;pMm-I}6@oSY<RvB5oA5XoyGETr@!5k`g0?j8z1&}u8ig3SY&(7Vm zAB{2I0Km0!*-?SGC#eVp{lKysqnjb&@2}|osk~LPA}?0kG0>Y)2Bcq4UwBGud8m6V zG}_*JTR{pgH+xB+tzq6`3+>@{KZWEA{i`)6|MKWn=HPw%d;=iyvMO-U4##;cMpUA> z)TxbQf6%<$<>FDyr{^l_+Ymb~H>gA?q6`J;9W?I@SRK%BZ2kD^l`pVx18+WW#epd8 zCyiM-&68>Ta$UKuw$<L)p2Axo_jsr}*!M?)nUuB~dgcH)*3|CQbPJZr!@W{mtQ5;V zZCadMKW|<Oz~dJ4U!V>KBv_sU-4N~F#LahS`QFt-GUmKvz@Ko7xZqTpa2&rM4RkLB zLbNw6Am%)lZDV6oG4c5R{HJ8<$2cMF>uM+|%h4u-JT;1?r?8i-XNUCR@QPAXxwl{M zv{^hPbfW{k4e5`kbL^sD6w6iFuCCrswt=b%mMk=^Qt-zd^+GkhuEp!XdQ|@rgxR$j z@3)=&2^a_(E1vXM_Kh`N&`ZDhQ|!iBO2^r5slYY^v5OB^xDV8*nu3F%8|6?fN&VPa zCI-NaKlv|n!6$$=siPySBQ$#tf(WV-7R-)1-+s8XGP`NzMyw=Q?PHVVBL4^rkBxk# z_A$7mLk6jdS_NacP{U&AUjn~dmj#R6ocZ4Ynu>N_5!!^FTi%>1f_%3X?qkgH3WjQw zr#S!yCSN<cV+ogCGkx#P^AeKwc!kJHk#+)@_a^6XvGCffl~;OX1!-g^Qz>(+t}e0O zze%c`Qeo(0abwYB(RO{>Wu!5E+yTOS82N4X-2r+a%MyY3REe_@%Dvk$e<p63U4qXe zRAYs6euyT#K@RvZ6QN#hK^_535s+UPjgkRx?`;6dkh4vh`8d75gB-9?LHKB@)1M|n zoW%Y_J=t^#W9V$>zO|HZAn@5q^Ye0mN}L*VS7WwdsSARl*H@u|B~+f(xlOJq(PmGg z!0R45=<?vp@)F@jedz?f*zxRs`@(W1cjE@}8n^;Dc54x@t{1jP!T{Kcf=rH1jfgMj zNum``<Vn+!9ZSIi7!i0{K`F}PT(voVyd$J~uXR4fdhahDF?))8fl&{HJaK9>yb1Y@ zXY8>s9UTRhTm89BD|CHCWMR8sE3bfgI|~fjW(mtD?s)Qez7g$sumDu5gh{8aazy7N zYTUNu29RK=%sJthbRhMja%b5X+gF1Z&r^>+#=R1%lqzd>2*kBX?k?5ib+zGw9nJ$r zVNH!mYIn{4e7BYK_=-R1m$%!!lXRB4p}r})ks6a&do5QSoaC<}e<`o%>GOx4X<3r7 zOWOi?6}b1GBQwJvatMS^eYGaxn0sQYV)8~~@Jp2Vb(t7`z1>^1j_ojp`tu)1*8Kzs zXcOM|Ka{HBQ)_DILL5YTnS<z4HB>jX+UJ>FX6j#Vf4sBLqyOow?Mz;?=WV|_*U{8m zGF6pL<shytn(SDe3cbE9MVZJycX|_?4sC*i@mA`7-hmPgZ9i7`FD;(EB!o!Su(}A| zD7Hc1`=uE|tX*mIX2Zp{hLgr@OH}K?XD#q_ykf_Zg<RIrU3T%#Nll=AfO+@QfGL8- z!kDXC3(7)`S~5eW`UW_(%!~85z1PfmrL#^f<8Ddmzd<kZLygBg$mI@u=cSopIiHk# zy3#&(0r1P>um6H?4)gtwqO*)@!fnGi3W$UvAV?^Pl(ck%sI)NYW-84HrF$aXFiKiF z$LP_cyJN`cmKZ5xz~KMxJ^QwE_F+5Qp8L7(>-t@pk<UZPT-Vi+0kNZoIWL>lXspuU z#9KCI_s|*ed<#&jwA(7UP)P(Imx5R?OxJBR7_fk(3ntt+t-RMib!i2FW|P9Jqj%<K z&OKZ28Xj58^d0|&?OFXt0MNl<t{thXG8`2FBA0M-p&?8O%JFUza&x$!*dzXOBq>g2 zb{b$U*K6W0sWa5xHWia=QdYvT^{iIKL%5ukkD9gB=TJ>-K*!=d#ys}}0(ka**VSnx z5Dree_}ZTvU|$Xp8&U3DoY;P1$XYiWGXrao;^!}#IXqMg`m?)(i<LGt4bQsGS)Uv& zLdmTWYWhi$v6Fi=RloZ5AA#RVS&`WA;e`p<Z~?5oGvi>Oy@1C7Q0C*v$^-=16kpqy zIAv-pcE>GLIC;3Vb-A!CNeNx$is=edv7|dumv?cc7RFFJs6xL)-*T}3(%>Eu79a-E zci6OCw0K^5;@)|sWVX-ajSXvpi2`}wUY<?q?j$xoaO*5(8ELpt*K}iIZ#6u!B{|Tk z%7MT6cu?AU?;MBaVyi9_o2XgpdTL_xYe%8(^)Gc_1Qhg)!J^RQ(sLE&1U=`}{g(BG zwjw~<_b_3EiF{W>lSI7{o_e;iX8N{Hd~ON-Lk(XBFoFri5^f?E;`@EQeg?8R__|+8 z$7N(BD|hc%@zC26c~m|2i#(KV*VhIN(>pqU3hsKkN_Ai|ALr5RZ@2*(ayc$+peyro z6N0EFsto_m`3XyV#G@aO@4r_ekmKnGY_-1<D5hoRk&I{v)O2w=o<`a4+6Z$dZl><6 zKXVV4(XUm#EY^_7X55$dt<E6gc>?Lg^l?I7+GwN~$tHvhdd5)herl*hSf*OOR=QDK zd^Pm*K>%;&LTf3M<|fTW?BJ5Ecq$cx$iY7%;JVQO5g)5Z&Jxz~t4BN<tJR!gHRkHp z#_#Ibt+r^6wL`vtJ121^rx0A3C@TT7Ke7Kgt&-5HYD+<&8#Kw-;lwXDcXYjnJb;gP zZrZ(8=Jm*59N$VX>SH~>6kcTaKRuTy9g`E?Izx);tD=BHz|o$Re`3V#$lRBzM;t8? z53xKwspt%^ky3V{W{;MvWX*$4!gk62fBMEIw=D=6&kIj;?Tn<khBM%aQ^`tO<OhT5 z<>!m7gG@|ME^ziODdqb*U3O=`Qb_IDNJthr(=GWojc+shPc4k}Q)+)d=Pq6`uUJs? zt}U1Dev005zO0gtWxqn^BJqkD3xuU@->q>~vkE`WfG+9KXwDnqE4N=%dXa^RaI42Z z^u%j#t2B(zHY-!()+yQ7uQBD)Q0NxslW`@aXGeH~J!;{7+-fX9_PVIz%GZ-z^@pl1 z!@Y`fcO3`6R{#3D7IWWNQ*&70o&p{$pAOPJCElLv#fVSRJP%RZAzuG+S(roUM_jS6 zGz>TXsw?%D<f5{~FZYoW`#dV*j4eW7K8?>PCwW=tns=4Upw0&g^6^6d{K!k;l~1Z+ zgt|7zT$vn9&!4}`GVuyUT~*-6e(=Xvvtmv_Ly@4J9_JhO*fa{V%clu|QgikoXfHSW zV$gDGpR^DrcHRQ?R#jNiS;KZu%~rDG$DcgUccH<=U4xh9$?O~3?3H+CHgY9Ef%E;h zoNC}!+adl9xSsL%c$J%WBYi_B6JLx*FvVyWXZjTPP1(Lx`)vBtAs&?{<O3y_`Fy_w z^2k)f1|A9H3^S%V%I6x1xvYdSNS5Mny3ZEpXS7!{oCLF>h+>3CY&4VFZ@nDU5r@El z^GtR}ils?TcmFl=1;D^(8zTEd<<!r>y1lSQk)nFyL7&X83054)&eXmIQZ!S>!6dU8 zNI7Z9p`0sx0LFq9a&ij&rjmA678gwMF)m`-O+SeavJIoeKYT?4Tzk4JJ|Nh#vEmN> z?@)b#7rw!$a-)&&a`Pzp@lm2}nz5HwaVbSCi$}PtZE%k3n<8J!>8zI*pbg;9yB53F zrJ0m>X48LL78DMK2OYY+=M$nyj5b}%&k!duYuWh?@*Li7-5vDv>@)rxo7S@skkMA_ z7g9|~j_QN5qUA#gO}PZtAEec{8v*4pm#+KNYO<L4=f#^8fBH9gi~P9P1LltRDm)uo zmhC}TrjvbTTD4i$CFZoNOUGB_K6Xj<@N=_Y5wR-itSbs+cw;VRQygJ;u9)zxzy+Vh zYiVm~%rYMF?6M}Rt;O|B*Y(I{t$2(K@fE*4k|d+6-@zxgaA_lWUT5;Lfc>Io)wI_w zSxXeqsPMX{#?%FS8OHW<M9vji%rBuIjlTkUAeyOp3pJZ^KhC>A8&b=P2iOg$<jMiN z1?t`g%qig~$EHr?8$_3=auYS;zT`c!CDY?Ssy7R0i(+cC1|J(Z+$rGM)!v`+1~r)x zXk#mWw2;6uJcFZ>kqOIk`Hr$8jn6MCq<=Kh^iEYrF?>?}8woLep;`%gp;sLF{n2>p z=;`?J(*hZD4G&rmL8J_&1R%y|l;FYprkf~CnX+)2$h^5i#T_^@YjMlO9J7aArgI;1 zo-!Hum?1$u2n7G~`i?><<B4r8`mv4BQzl)FDUPwu29XanwIMjbi_pODdnQ?G9BqNB zQ9fskwAxKcD+mq5+7CweS}e^5Fk&aW@LX1nHY!yL#TK(=s6{ND9xJ75>N0~nzIF7z z%B<b;%fY+#iC3cmNChWYXp25HEmJg*p;;n!*YTmrdpw+scjtvgA72Bfot679^~T;- z=eIvRVTItero_E8FdP;Ht#bN!l*1@o9kRW76~_=><iA*HCSx(QwfrMml0H?woCNBF z{WETy!&!LYv{(c^Sj8KP-+Yhd6XP}pu?&pZg40IJoQTpG3qH(~-Kp{++EL%^FYT@E zUHSO+!-uj5uXtwP(?Z+AHc+c$_78Sku?&Yi>@9J-?u|&YG)@-*o9!A4m$~+2OX3Rj zt-H+AS;(=A%$-dBR*+>%okN`Q`{U(vTUy$~JXK@eFQzWiI(iA;0vsf=KezI`c|u-w zPS!h!*Es(Xy($h0ExqAeJWlRBl~*<MMdl1-oCU82xL?tiPGpaiq+L;|iG@eJ>^5zt zA~2==;r7>ldNg%j`^vt7_CCR?(9=dnmrPF#U3E)JWcu#k0vAQKM-6S;pW}8p()cDg zNx!SVsom;`KDz6$J|H<(n7T9dt(B39l}1yB`}e1BBu3lF{UVv18$|0M$-`%M5~J>I z_oM46Ja+OMW;k0CNViE}CV6h}D#V)jaT8}Hv{4Mtgj!FWAd^}&HB9lPNo&4o$1;0o zczudr-o^sv<M*ATy{M2(Pa^$0Z<gnwLq{D(qcleaAQTmmBPel?<g!A$GWF3rrL#f} zA14$3Y)`ml#!f>3JKuK`)M4{4Rc7PiHS~nK3zcXx8;f57@WdT3b1JHbf_w*7+)`f& z2Om^LG#a3co4(|V!T)J1;V*MO5{nCO&oZf0*o(9Rcr;|ho5MCVG&o~X>-qHbtR%V_ zeQlxc3&zK?avp4hD^B$h@AC$H|CRMStIe9hhS4~LLC05&d$}H@Wcqgb&NQ>yU;VTX z-t)p`JpdMQA?Y4#vNlq>u(<S8nFOmv`KoDzNy8|#s6C}J*S0RE@Sd`GkimtAaK6Qo z20Op-F;8q(;-9EsC3uEud_BjIl2BIvvLd?A+++@9KATeTs1X>D3OhdMOd&Hemi`A% zGi^+{Hn~<n%p#}x17{S{U-z&MQZuirXBwCS#n~5IG{V+r&oaR&pBiTSlU|Xh!_|9} zm(R}C@VNJjk-<*)Vf4i{vL+ta23ncAg5j~WXK(DwfQMBFcjV3O`Qsd|H&3BV#a`5b zh9vvE)AGbvx}E_RCLGPWlM9+!NxYq=8+o=JU2$I$_IjFaHuN_L^bU=nSnPUfI0-({ z8e?AU1vZBF+;W*%snpGxY>-m?At96;a5Kkxj2H+9`@!}E@Z$TSk56IIA(OqJ#@;T7 zqr@h#-TSiJWIVeZ0Gn`QG8rRo%mukH(!6;n|8=0m1l>lR>CVni{|Ilt-|gV*6!ai} zO#u;D2w!on$-3n&Jc*H4POia~Bn>wz1;i{@Qx>=4{ZAPzEKl>IW7yyU3Ph=4MR;_Z z@qtX}%f+_!TE8e0hyHSndqevU@UJOH;o3@1o#na_FTrbnn_*%=W`Dwy7IXG*DrKwt zXHQn!ABYm-gGI18ECSD*m5Z!W015t}>UkCHQn2qu>`MDfgjSMkZ@O)Cea?tw*#!3w z*}^LY0-qso(`Q26<qDCUOKnN3ptHU0Ghg|V9otATd*>n3#n*J~zY5HxT_sqOZ$XK8 zw!CdBlid5!gyEa?<W1Un>`!d{JfrnpwpeFKdJ)C`LzbSwDlOIZTCy4Se(~f1KG$aZ zu=T_k!xEiL&FP)#qj`Y-Ij;T;VA=OAZI1hlpD)e&%6aAbn)B1_t9FVICQqRcPa+nH z0vrlcCkLa6OmTz%5qOjOS8XcIp(+R|&QmiuKW0%R`05%h9!u~NPkn#LVcZ2MeG1u` zayoCvuQvdR(Mi$YlXcCr?=Z(q{}Grxp%t%Fb1GG4{MtJFjGpZ;kA`2wp(ys)<p0&` z%CW=n=}e|QOc^J1i!W}NS_LBi{V(^lD4l05p!kn0u-8(D{(O}-c9YWcg*g;-{U1Tk z@jif0Dj+|qZoeKdjPlPgyx=t!{U#_tWo15E`E4Wzd!Qc4W=fwbS3z@Rc%*o&y}~2c ze`91}x{w&?+C<iVZcqr>p@kfwkZNS1%GNJ~bK3M=hXemvz_#JJKvThY1&j{<<vgpw zH!!SV(o%$M_k|9_V4MYQvVY;_n6OxTyaAn;*Jl-;ocBLFeb=T<?@?*+dKxW>NC~p; z`_53)8*Epxf8kEBs*#0F&h-^>(50d-JrB0eXU+t4N*6=2+L_vK>@kKp9qp9MkG$^4 zO>dM|_fHn>?`WrA!M|*aRdi0USK`R7b1{Gu3NTd%1IR-76!xPMW$xTpltTT7+jucY zW_Ja_^e@2T)EP29Vg^~+p@y)j9w4^=Dg~t65M!e;6L@83Lk&l{4vee)d##+RIXZ9k zv(GTQpuu(HJFQUcdlEY!OcVki|BoOr$54KTlsNUvPR(PZG{Ml)cf*T~8*?28zPSb9 zT8qTZc(T9GI%rS5n~b2voV{9V-JS#)7jqdBiTMU2f-AK6xsF6uUG{ykQAgdWColTl zpG-CAul{&8L88QYF4{fFDC@U)hO6+gmoE-v;Rp4l(%zR|&sz2oRVB<$CaJuPr%%gD z&3XH!7cLiEwiGvbmsPZ;ty-qtdwe8c^4))%P6Fd>W5N_*(<ysgsIkJ+pj8@_IcQ#9 z&(l}Bey{C$A}hfU-aj3z{_m#mn6L)Beax)xrXWw$=rl2VVkhl}CVnhnyNwr9cqAC@ zjMID$Zv?P^H=1}Lz?LG(>h=!`GN`Z+@8%k9@boP@*8%!U+36L9m7z}?G3GAU4)Gb_ zwZ_w4S@6k7?=y!z=DhqRW7V0)$<T-|P1ol@1|!hw=ZvF1$h~b-bWmOEXrCVt_mmLR zHwSi<(@;v&JV8T4<6;9|HVTXHLd5Uba&U&@2ulf*-j>*AYWjQBlxF|>e5CqRD<lNL zP^e!Z@TV;_NxwELb=uc_&m{vFdraZr%b7>BtmeRvA*EZ-(1I>T*(82<<8N8eeC@;P z+Ub+ti8fBfi*uD;bbax^u6PjcRtCk{C5QxPq%3^`U#`T;#B;_I``K72`|?$DN57dE zt1Jf<tr0-8>1oRaS7Qsv)Vp#w*8FIBIDI}SSH0C<EI0h0Os01}HN#uaXc;d!vTW&Z zO~{AZ%-6NSyLDCr2O19&?Mv$+4$~t~Lh1Vim#MG6HuP>f7$h0i`*{VR?+k3TOBlJ! z6U~o7cL*?07!y?1d6{cBleZ{pZ7DtzFh?>C&Gtkd8@9AJ%n&J$bq`w;TUxH(FWdW% z;18;Bs->_(_$4)f#*(jHL}z)SO;;e#{|Ix*Fm4)y8N4X#I%_StKG-Wp<ht1}mv|Ll zv!_j%1B`Ej8>m1x*7iwD#^`8#yI5yK(sNtFZMg~zF{|on5aj7=XY32!Qx%LF(zzai zI_~n_?kIba7q?|}<w|iijJ`$PR+C^goIlH3&Tw`t@|A9<H60YT{6}CYZ!40#%$_rk zc0v5sR@Iu+A}y*)bL%Hl7%D)<+#5Prn({pUc2IT_k9)@X&<Sj__bQaN-m6`Wzj)Ve zSlS8$8_f-8c@`*)1@)%-rVK<DMah7y)F293Lh={a_#=ZjW17DKyx@E-0>Y#T_y<uR zStqdwPR?&5LU9~E<ydv33{?0->ywfUdjG?b1B-04j~jbx@~MkwE`Y>My#lh7Oen9+ zUWMT;!=W!1nq^bUS-(mwvTZi)`_i{U<VfHYDmAZoN%>MhAO@=$ye(hc)-m6e^D3c2 z?Q>s*ahzVzzl!fzjlMUUeBbs0ZJyWl`=aGjiex?f>O=l^A$+w~F&B5YV3AgqdT|(W zuf5n__t`$c46I&_S0m#iwo@6t&N3Jndp!*EOrhO{TaeEOJ$N1D5iMi>_^q5h+sS2w zOO@llEBCbY`x3{l+Mli&=MPeRGLp5a@~4xKx5$I*V>d(^CVLK==i~e#Zn*FCY4eqv z4!GyjKAl8A-cR^7n=sO9#1an{5Mm~q{{m5wXG)N64ylzGR)Ly>$qx1ys&5FbD7f!l zsvh#>$UK>b7~XY&(*<H1cIKS~!2{p}-PUS+ON_aWqu98)UbT54-R{b7h5GRlt0cB1 z$Ht~K86&42LxLPqBs%P1M4~%Ek>@=Ppyk8^J)@9WBGbdnPSgz$<7J6x*#UYY@Z|+R zmLHip-x}`E;YBaz5JZF6Kf0nqr$Nf(Z58=B)xa4Ey7fOQsa~w+k&c9DGa7H+-pdxp zT2uQl1>tY{`qDvY)fKu^x?G2W!^DrB5nIM=LppZX%NpkwU}VPLW%><$#gI%D3_K)r zofGPGqqG8=%A^#EB05`0IQ)Xu_PTl3SCYQ~-RfumRz9xvK!$P6(Vu^VtxUB<NwdSG z*?YG5y8#+UwPCK^TTw(Cr_5d${2kMow{f7j0(5Ic$p1$m3VP1TlzI#^PaDA}5D4p9 zZu2hwOwV=x{BWa8l$ew<W>SNHW`ul!T0geHwtMFtDHpPdY7I=+P+o#@tVk!L6n^!K zt%Li-o3j5cN8d`0Rh*iCG6y)qD_;^dBw*7nb_>Ma=LpX)-{V}(8JW=xwDl20bGv<i z0%0=EbaU(%k78{$uj?A)37le#j*eFJB_5{XH1>K*<Yva1yQV;Ewk(HOu!${nh1Ne2 zrX(`x$itg|O0ApeKDk(Khxb2U^AMvRn9cIBF2c=UIA1r~Ur3I*DY*&U@?V0kvLC_F zq@{h5@R@CU1}LHIV%!QP7pfkB7K4)O87&uD#~e|`ph-G3efF`0eL&Q+2gn)cUS0N} z$3m;99DK-1^E5!2>HSvFwnnp1f}GHYbFwtEGEify4@P5lO1pr=4qjq4zucJ1weN`! z8=;mD<1Nb+zZ1_sDKl2%Vr$U+exu`1TRGq8Xk=O%<khQaa~y2p=e4#<CB=tvrLH7Q z1*Rvv_o<Ntw<+<TG-M2|1<l@W{xJI|roj-|ssR|n4_~Rwkc{Nra^xOjq-6A;3>c*g zY=TSBoPRqAH<Wtmt8IIu4!Q{efynDgjzkhjihL^NDNjX2!&XLzYGO3me*_QsI?B`F z2d!vn`&KoV48^QBmAlau+BXNdj)UTNd9*%mVht(yd)74g1>ijxRo9>4PQhLu#c<_y zcGgL88e{-K%Wd%MY+L2ro^Btr$*9rqMV<5F5si7rsgqS0o15XnO;k45&o-UG7``H( zdsbeGO?bjmctnaO1c1bQCEe6?x8n!+uiNDf@W!maUY>aOYP6APBb;5zwUWcB?``QS zrr=cejC>?kv$r~lRZiNyic$@0yvbCN<bDkjP8hqZu$L@Fx6y7$38*Hi@e2_%itD_Q zvw#20fV<DhW#IbXD|!dtu`xs@_+%A4c$A50IdxREZO<IF5A=Ax(+I@C+ofd`zq5Cq zzS@w@%2hub^rzi0HEr~&TcRASA*S%bm$jZ)G_8+ftP(kADW||>GY1V>P?oc&)x-Av zx;IDv5e(fiGUGYi4dTs&CgT}J$oZv1+Hbz!9_dblLFNvc@9d78&Er=W*ll06t+&x^ z{5lFPO3f75AT`dE5&5L>vrW%q-IcFIw~nIE+XhqNoiQ$e>bMS!)_HDIT=dMky}@PP z6u9MkQG&LG8V$WzlIU?Z-Zn6s*}8>!P@AC~XoS8uE01~{SU7z@+3c<B6>w%7B=qdg ze9L@cjC%xShb%32W20EaXc|7()MnJDUEKOI-8_>S7Iwm*v48%h+*XNI7&D?_S-oa# zyfJPc@$gfBTjqk=;hWbY?2h<gll;%Ne#-DW{4g>5k$(%%{(4e;q*A0R%e~3^ougMq zeRInon#lKD?Q8k*9q@$0{E=>%MBu#Fm6x2z$6F}wb7PE);O|7*=m^Mj8C$4QY2ZR2 zf7Ba({x2$D8tA^9yII&u1h)a~-S7WV9Ui9dkR+OW-A2Bl-v-$*eIP^nb=(z9wtA4l z-fRMlzrf-mlI_d<AYT7~*|5t$7YtxfwwvKJ^~(NVz6yzBYEgn1zgd(E+IT|>y7NTU zzc(TD8EH`bC(zLPNnB~|ZRuXmEgOVExaaB33v#os>-=vY9#+<J6J39;lFUfk*;~My zx%cv>q@OOjC4o7vF6CMQw-qkaPtpudKOQrj8!vLn)qDh_jtxN18Z<a;49RP5zP4Gn zaYIq>>IAZG68%S8s7XuA_e@s*r0FDSSqcT9pV|js=~r6Y{hi;vvt{2qS8E<IEWiV6 zqYMyBzGyf)vCODq!l|$@jjxNz`8{I;3mOa)y?+#NpUEfBCB=%~U;^q5!&uag&(ryu z9yi5r8v<M046P?+HNIJl=-1m){}xJO7779!TqHRIGZ8x`-R0krE=Tcu*Ew+T%@^-f zKUzEz=EW&we9-GPNih#80wnjjg7o(zA@|REYiQ>-!xZDcEd`o1#(&yuUdR86YF<$? zY@YG>TSa%cNB(MpD*dFyHx#Yz-I8PwesPJIOFfCt)*L^80s8m@9WjvzkVbb+f6IrD z5vrc!WVybh^I*{8t>i1Cy#qIo*I%Dx<zE{nPJDrqm+As$mh;=bv8#k^2b_PLtC#yK zV|YUxJi@N~s4BW^H_^CK->|~uY6Y*nKhABrvVnpHaxwcjXFttcbR=hi_@1aX#Resh zl5#gbT__JgW$XeP8zZ&bI#pd(c46(_S-yaXBd!%pT)7#0V!8kD_u1Kb)Z>B|qZ*}) zk?)ckep0(FiYb_u9&?pk-1?*)a)=c+tRQiS^?0|s+iJ&DWmTkR4eK}K7P!AIAK0<g zh3iIr!6oqz^-b8l-3D*6J(EL2r;?$<q3y9$HL`DVbq4cl^JqoWY=y0_2Euxqr^Tlp zCR%uG6nq~ssGV}O$?u0cKDh;eYj10h1U}0f+@5#Ly$k$uq-13rxX6g@Xo6>SrbOuw zp4W%MXv39fo%DdQ>{Vv836yCo6)S%;mRuus7H^r2)8iq{gJQ`QC0q~S=Wv|DMGfrc zedyJ4y8>+VvK@%om_^@>SJ)M+g&nSC2_nn(5sf<y>}ni2kQp>lg~aghcwGyA|BQ-n zleO&Ls>!gie|^&YY}z2@6sHd{Y+p~4d6VwMc-k_Z23$l8C&Xd8E`sMOH5xar7Rga^ z77wVXBGs+XTr2f7m?=~8IX|iN{10oY@~3_Nc%ITiW#EuNd`d#>RLjw#0rcO&E|0T2 z#^`H6d28Th39ZEnw}R{H{HmMebOrZ;{_0Fg5k3kRKq!db4sbkKY|NzNyvhpe4$3Kp z<u1mtN}DPYxxStlhxnH-*8ydg7u5@wUr^oShEqQN##3NVBYot=F3hr`sw4L^7s&&r zssQ61CwM3F@=jH|;Q1w>XaZeV>IjzC3-P_LW_h3rc9Kf{8vvOYrAYVE>l%dRY{c!M zXyI@x)yW+W^HDJ4qp?56CgTH_k=+G9ndHW#z7`^D+Ht6x{|E*hVpRlu=Gt48S2J#% z1LTVD{^YzcwP|l{N|)?<oW6zWlLs!+bbIb6Ebn8gzK6zH_r&~zrMdt8J^O?_R{X13 z`eU~rN;;WZ8Fs1rn~FA;-;7+?Mmzt${Rhnv_~Zq0IT##wFV}45%*l|;-9RCh0svk& zHh<~75{!Tq#K}~6P=@I8drVi{>QHP{1hY0gdo14fD)simyqcG+bF2$J4?7^)7MYKT zx;mnhX&MdwJenBW^snrCTgeJPbWWV(x}Q3{UeGiA2b^C9zdtZ#L9KM3E`M|kNsza% z4GG{`0ymU|1N~jR;9p*Spx(_b@(;%Bng)R|KE{~bj91^}L=5<iP)<JeY0qd_&lzfc zE;z$u+?>@s?%F!6)oGK#o->F51z6K{oXetM595dXUv}?_uBiM1j6^j&LmRL29t4$E z#!>0o_c$-^e+ROu@Qf?ed60WHYYQCGcD|ElM9?<>@ToCv>8n4Mi5L$kUy%n`XnM8! z!MI#{bS#)Fv~=Maa{<c?7dDAEx;P2*Prsal35wE4!W`O*1E*JrXMd+@W$cT3Tc2|f zpJ@4X!D2?yF3t(}esu}oqq>T`o*Oa6vQh?c{8*a0CoVjSNA*j^WbQ<{OaQPpZY{J= zovhLd)DV4tZcG$V;I3}&&+z8Z%}?U5lb<J{>W&b0f+VsKrszM4pA?moAGZg=;`jtK zvnFhLWF1vMlWrwV7qrj5s>$jLU`tJm&hBA*73F=UCa;J0|Br%oE39Bl0yh#1=I-); zYHxr06Mc!))ph;IQJ~kf{8NTThZ05J1-SpgqmHTU{5?a>DzZbcu_FxhcJcum(GJ~u zfUkj@xyYhinM4{nw~Xrm8Ba$?W{Zh0xCeJZ(_<LZJZo5Ve9arEvRvaIaH9B$<MiP# zx^s@+-=R<8EcKK>`^rqsJ*;)bX@mo&fRF7_^$ONTP}Y?9)>d|_gz+Y}7-+^jfw86T z*Q+6qehe(l7$>t=&gGU|0nb_3uab{aT1NmwEN=KzPQA-d+gPac@nmlu+V=b{UZLa7 zjq6~((Hq0}42PbDqX}>YCA6nc=0*RAJ+R|Qq|>LM;b<;>+_;LOR@ogB*i6{}v#4cs zP0MD#3VfOJ+{9#Y#2n0aM2B5imx5AEVN<NEhad_PM0!XB15QM&u3<ic_9?5B2n89| zV$;+`;!>iPfuVXoeOzwuGUsLNig=QCbF3FyFEOfu#TSTrQnwBCoeUhVyG+)#a7Ao_ zM~>vTXXF*IoM(d7dn+Pw?^%wY54>h)`KT|2Z!U->S2aFr;CJ(_@~@`+GP}{i7Gttt z4)7~}H#sIis9yDLHN_&Wm*!8;7So}OYlr;`lbrA5>A$)B)Q-r&%4yM4oizFAqULl= zEDWu?-im!tSF*2uTDwEPx^43ce|r#N$D~f(*7&!E3d{Np4Eq^&XB5|4MKKj2QY-|M z@#xiDhop~qPy4fl++Nr0*pQ{bFWA`;hGzmMi8t52KH;4Fyvo4&jR3gcjm7}GcDi77 z&5n4F^%z}ly=I$Ed2tzaBpY7@fQz}|^kW9HxFsk`&cQfrw3>QtC&4>dJ8F+B-Z;^< zUmnO;@ci6Z)|$y;bskSK`I;;gx36)1GtmeI+l}}@q|hE7gO<$z^{Cy=E4$df)XLfs zwgg?da5KZ+)stT<P(&hgEBEIC$B5fNJUQ|W@>SCh@d|E;DA%^+xSdf3ztro$92W!Z zMV#}i*M9@1EN_$!3{LTWzWe>Zxv8nL^lyNum*z^W0S;_*%Y84pNcMn4@EDIF=N)0t zcw#-CkICM^5gvv6cxQFC4}JAPS)Yl1Os_^Vz@7WnlYeNrBP|W5uoG}ji6;N@jajku z9pf9q^)My#U`*JL#lp#hhnYnv`jMoWX@mlQo8|^g+%y+GL^iw`-x`%e$%4&5O6@kz zW^Z-9rauuf?)Ual$uYr0bAZO9`pqtQ35n$HzWn9PooMCRDDpbAReX7z^gaX_i}ZvX zXKyBX^F!8a`utzGoYM5_{<79|f~eFBe<ZvRMV#b%L-y84tIQaf=^jV~BGjj3`7)Dc zu8*scf{d9M$o$<hV%aJHZ{%nGS_coJ8(%Sm5Z1&5z1zAFQwGLldXPF=g^#>qb*&?8 zW|9kng*XPj@~(1cbkA5C*L!l4N#BLW+u+tMy~jA;b4A(;<)^$k9vHbOE(wjotLF+> zg@lfpUoxD_ZOMik8MlDufqqG}^^Mur2P;2>gu}=Jv&-!|1W~K~mxEu`Og{Z!?FX&f z$+KZo{g{GX$|ap{QrzZGOAR;TWAmo0n&9(W)K^{aNVZj6c~wlwF8!_xq~`lpCS#fn zA-CYM+yF|JE?57?oMru@MONEgF%3OzkW<lUHCL*Iy|Cn9CoD`LkPF+Qp?YY2D%N9r zIriEm_gi7+20S*4TmDT;rYEg_CNT*z3-l#r1B$(~zWJ!H>Nn+ktuS~~bjQ6{1K>;Q zdtf08Q62oU_puEd(V=d!phjl-_|DB$^#Dlz{#3Bvsr)Lq_v4h0Qic?X?nMcrA54!n zW}jP3+Yp{DvdHvYy}oN@Q1-ACu!kDtB6G_w1G7)>&+B_8+A5J?-*4MBBB52BW7*5) zDM{`le3@PWyz64v_RSHNdeK1kOd0`w#ZFxvl)u&Kfl)yDrXg|U=D6jx?sXr%V%Y*1 zC^+iu(VQ7C(y`oeBXZPkYdGT+y|65*buKvkH1<b;{j~+mxv^q<h~ZHvk@~|vf2LA@ z+tbjN#V)r>vvGl61!t;cDh}`x|F5Tyvq87nwA;f2<VWw=U*0=5;nO7TD}i6!dR%Y{ z)Ry`1YRrL?<PV~*@&7YE-J5}gY?P^$N^Zo9{fuWzd0TaF2HB7uFM}~ZPZO&Xz;;dV zlg_1fr$cUk%i5E<gzKkK(lPk1<!m$<Wr;_Z-yy2PbW&`t%9Ty7LDwv<rWQtBZqI}G zGyM_>C1rglUA_pnO;GTKY;M2&>?L-xj2MWIpqO%=Khb3olF{PDZ^`ZcBY18U{7vvh zNG==aUG!4a#DShQ=Os98@LPqp1)b*=xF^@PDlZTIi|+H%(V#4$PJPRZX0@%*2b)Q} zO=JE#3U(6=DweXb?r6FXiEU03lTiWlXs*r70_L0I@4;zYCF`H|*OQizsju1$@l<Bm zK@DbBt?1yMWn(Hy%+FBl=4rX^`(oqN@L>w=#yajb!~QpcGr3Rrri~!q=s1YgheB;G z@nrFeJ9dT9Bfzha;n1cDXNTr8&gP<9{4Xk_;l+|UK2RDDZn}}zo3RN~@ur%3N^!AK zZu#-X@R#V9Ml%7S`T)=tFAJ(*VE@dgc7R$G$nF<y9S$YGG4RINKN{;>s{H63C+bh2 zB;Y7wHnw<uSoN{SY5XhzoCfG${f^<t?vJUFt9Vy<B&EVKT=_m=eLzj%L24-#0r@uJ zm0^EPAksoKb>YalNGZu#cVA9Z#rDR``|Od>hG~NcDWkGX6I+9>H|S>Klz+pzK>O<K z&Jdhr`{$W-PNZwGV71foYu=rnsQ8bw_1?P@&*&=k)59*9l>9yLtc+Y5E97Y6YEgGW z6}i0lDV_!M=RX44jT^oveKblGmCk9mNt01yBa|Z?MQIr=cdbTrJnb{_caUj#rskg; zeXEnKS|ti7^FuD-$GgAF|8`KEg?#*DuV(yUx#U%c_$<N!{Nf;?%i1Lnb66$tVk4f& zvJv!d6;pni^rr|7?Uu=7U9lcN^r$k{4Pm;3<Nr<xLH=WR2<--j3R5RB90NuobDg&o zov}}h3JJ6B|Bg!cD8W)~`gvQ%CU$x_{jR=%#dG4%$hVUpCKt<u#b-i?Z7L9GuTyH7 z`IN)FMaD-RK-~=I7<P!}@f7UfsD);fi$TmFBd`q7bn|$Bv1|47!oyE&Qq(>Hk5sKr zeBjGO+R|$-@&=@0XOGiwEWD9O)cy+tffvDw4E=7}_PLD`z0s=MP6iq(QO2_MakL|^ zZe{~41eT`fk$AWrjZ;6}**0SD)>FQ#!G$D|qp0s^K-QbYu20IE(t0N^8tNlb4QfdS z4W7Hhk_|B}a|7wlUtYF2QFba{PqCnb+$`;)-3paSiOFHINQ>_5W=k2tgE8Q?YpSJ` z1Ovw<xKqAdBlrIBtGFE${jV5G9@#swue^fyO-5}1+-WXEze&W->hYaL<dq<~?Tob& zB{R$Ei2n#c0gW&w`!fa(Gw!6LpaXRy-r*CxcH`yAZ!@39zlmSqrH0SK#pMZY{h|j# z!Zd#fGL+Y1{nl@hgSvxy+>j8<bJ(wEnC2iT8$1c{j<hRHCPID=&#q{#iMms*T0bwa z6aTTSSXdn=UXOsa0mNc*#Z-&iGXEpkat?TfZ-+0Gkavpl)KQs?qmS}P4O%Bovs^$) z|L`n->>2>t838O3D$NkNHvSU+ltq{_COv|O!^E5|b*sAOScQVa<>xB8lnRRk4~}U@ zU+#`sV*~vgaq&fI-SXscxSGvRq<Gp(+829>lTdGAu5&%5b~YJ}tTWKAssf0d`(GK| zk(#`+f#yLlvLqAJI-RH!@H<RLUP~+BAYam&c6jyTa%sF+PVF2gpNfO{GUH@f*Tn6P zIOCSL_5K_uJh1<AGVs$v1g;79`IspoNy4IjwLgQYKEdUyBz+ViO?Mk7OGKN@gBv=M zT#D(P-0ecjH{PMM);#mQjmE^cZ+(|S<72Gw^%P>)e=a5c$=5n>1oJ|Ui02Gnl#AfS z{m$;~s$*!9pMc&8Z`TZF!Y}e}`8L?0jDadfoRp-4`#Ky?`Y~A=UR@BHXbNK9{R?pD zH!^C+(^v%0#qOqJo0sT105}A@U&IMz5Nm`wTcbTEyU2ZV3O)2X<%7&$Tk(LXudliU z-i)9v$SKj*`L~t4dsDqPAB*NX^j&;Y&oP51bB)dR#Y-x??UTzQikF7W4VhgPIQ%lx z0(K(clV<d~uob@!XIngOV_RF?3&tadSqCkQo->94AL1k%&hy1FTh9w)z7I^deY=}w zW@u@1uZ?};Q>=2%-v89V`Vy_O79FaAl=%RUiDMypZr~!=3YWOJjFW=Om@6~42o5A; ztg&uuGVo8SQ*APrB(B0jsG_8GKv0!+)Tin<Ql9$Hf69RdtZxfsUr>`eHE`%#rkLNV z{iC&+!K9tUWh&%y3~fI?StgZFDVfcj()a?l(~0k+ty-N1&Rfn5bi;^7xFH%=cH54x z2d^}3S8y+}VBY$#4~R+aRM~c%uV4!Cn8Xt(boAR$DJgAy=62d%Mqt6sdv6mG34ZSf z=baPFdFwo`uFc@C=XK9z%Ak^nT;O{+94oX|0jl?2i@!DIOH7P&=+8Sz>M}6mBr+pV zULzeS@~O(Zd56{c!!awJ<uLA<o4d28<$@x4+tH?L9XK%d_95ic1Er7O##)Dg^PAX2 zSr0BIWg)}Axqp4dO1h69m@lV4$|vFtAvkYECVj$ctnD^QJ0?7Eyn?d5W@Aq29J^8W z2CDK29M4(%6KTI>6BE9hl4oj?cUi3NYpmvv-_^fR8XF@u;`%kCHT>|%79W?aNc-YM zq1t*sK7lNXCB#IQt_!oc_HE#Y?>ws@ns$AGQ$I~V@)N~>1eLp@H^(T#E~;)Q$IWv| z8{U^!9Vvp8ud9@gu}dJP_vypPfA(xp1tM9&B=*J{$O4b+Bg6PLm9V=7Ob?OMb2~+v zmr_+0U=(F{<1<n(%n&s<`@+wKm(2g_0w;5xa*YIdc_(bKNYK*?_sjy6>jmhSWSm99 zIx297P7^1VUDFdUP>a1u+&oP18Cq`ai}j(Sf~Hh<K}N{a-Z!9M9oWsaM6!nB`faz4 zcd<>ux+ea1C+(Qu#{SAX?21jYZAt%1E`0peffC>*hjvnVrAI(#;JLJ#{9|tekY^AS z*Y9j0{`Re?+R6LwQ0+XSRIZ)31cV1h&wwoc9M+QJsDj2ja+g7zLvacIYhW<EKI$8k zAnKP%^yHCV^^E&0UZRI-fXzpXB70N}iNTz(tIUG6i4fa#iZ&-#vi$EE`q+ExuJ}75 zDiitj@0n+n#r$S&aB2@ayjKT4w)2$zH4&!56UdB{3+zL#MTD<-Cbg?nJKWy#Uk8?` z_kDpmYs%*SN8ohLW&&8a>=CIDA~Vk%T?)?iO#<9z`O{eQl{wi7uOhtIDAX!Ru&e6_ zetYZzRxLrzZ*XLApBqK&S7n+-JT7=0m6^HC?ok<7A#)QCySR0v?){RDrfi1|A0La` z;_01CuHm=LuSSJZ>A6tlC5Jcb?b7{9NdSE!+E0)4>an-$Lz|IYvk+l=XV!CF03L(g z{Ym+z;pg~PEw|Jo(*P6GB^_uOqRVz4VIU>{(2n39Z5z*XwA0WKex}O(SKI>8K+AnA z32G&X|Dx|6AA3j99<sdRz+d0|ejD-L1a?}|wKiCNP+qXDC!#P4g6-S4mfQxau=Rh+ zboE4o@{3@H7wdzC8X>h7&mmPmcA{ZHflOng(O;+sdy?v36QW>({a`{LrlSj-u>5+Y zq*RH8zu5_Y&xmu&ukYL8^vTaNQbJcza`M(%ZKBDRu#r1LZexF%lZ(>EMo71mWgMM$ zZhO*7`TpwtHqo=LH`A7&;9rezy3rTVUTo_cOHIA@{`bOBaXd|`^rAun-}(_qH{d~y zKT<^#RUR%K4L?5gxHhQknw&ci1bdY%Z`quxiK(jrkz8UD_z%;qc=%HKgODtntJ;&1 zduVO^#}|Ckdjbt@ulBS|b!|&Dh2Shs{Huqn_bYlo6o>}rI@sd)!6eX1iD!)e6t@_7 zri0>mxz{(ck8eF^R~Kh6Ik;znctm1o$N6Kx!g;rUxoK^vmKC9F+#KQE#0pc+jFtA2 z_26sDK#=(zKUT_??&KhGP+vkgQu0Aw?xtXv6I2guS24yz^>c|#J;wZ)7jZBc9vLo> zI3*`$h`YGj{{&n(=#ij$s2QVVD)Z~H136%!wL8O|pXgCc_IAXWlQGV4vLM9Lxbf3V z;pYmk(kc6n$@n|0PVdusED=)8uT-bdWpBb)?`)2s57HXqvZohkd+TpA{soiEnD*}| zFIjnXG5;!Ty3G;wcGelwquS0s8hj`=sd%dUKD)P|S6kFE6JD4_sI!XGn37HO;H-x@ zzGJ)nd#~<5Z8E7frTyM~&)#ru1su;iGLL(UBb^%QCwh~c{Nv^xJ#+o`ZMHkq#NEhA zmt-eJU-^+8te29qsL)NVvdr;~`wv`2M!Y(9s?Z3)*j1^*6vmpWf<Dmac_g5B_tm3R zN)Yr6Kl1n82zk5ss(5|*A*{%oh(83wzMd@lPyeZHr7qUf3T`k%V9$5erv)SU!-t2M zpF3S=47FiL{4ho$o29JhELMf8LQxxK%5d2Xhh?!lgl=9Nqy4+gD}J!pIeXo0s;rEU zq*{Yhz69Tg(gy)jr2~g^>x)~9+x;^YHSEtn>+7ECYG}Zzu_%e9cS-CB?n_!NLFT{6 z{Pzm6KK2ja)!j=}dsl0y3!ESMM=UG5DkiP9I-iN_i^c?=#AIZeEDTni=BZIV%c}}k zz0H#4wR|qLqWOBMXpvqPDTn9-678i?^96D?Qt0}PvOogH9E@;&Cjn?g8f7Fpdk%nW zV35quVRqHh0Vk+8GBWlv;#onkEkJ4D81u7C>)F(V`e6R2kk`ZUP$jNTN($;DOv3B& z1^KsL8K$`?u1*QhgyU1qmO<dqm)&oLdL||P2om~J@j52SBv-Ykn?&*2h7>XyDH@7e zjf^@i@mh!yommzFe<?m^gssx!P)pPsH?`8hi59t{1~|%6GhZ0{W%WSY4*a~Hx0*BB z)ZmlrR>HePQ^Q<3oI<53f2+frrdWwO5<<~k<xeS>99qf0x9N)lCobMV<?sJxyS36T zbS_NQ&SIV&yd&^7wu$T*qDf^Jv5EuuE>&X-*032Ll5{?F(=D`lp!F5jL4S3KjV>O> z#Gk)8e?V-SHzoi|92+UYTSVtC@^YUY?yaln&&<)MHm#3XzbzK*WO;1rz^+<Twq&3` zu`=+{U^bUVRPq%(XVoYY*J(JSOq@JDamuS$o52n_lCrTE33JS#C2EO9=4ThZ2mlZL z626=0c=61M^3N>&#9;6Bjov&EZ<Y_2?P}yp;xx{d+%kxr?}HLM|H#>MoyneNxF;vA zQ_|<eZllr>+txS?ONZFYiYC?h;bFumtl=u2$Jq^B*wqNpbYd$bWs<VdA}O+6z|oxG zM%hw{1++-1JgV>~*9J1ht@P?_mDre`<WmpP*9yQXsM`QD<ef3xPp9+3l@te3cehI8 zgCA<z_nn<VTiX?6Zt?sSV*gjwPv7*j$FO9@Y)yl^e^1&prsPe1`CQ3vZ{&7mkb>xA zc~tx6ZYuHwPm;^JtayVx?jG^{8g5Ks^2X#%C%-$ND3g=I=#ajCrj~pwIDK@<|J6xt zZE20pSPDhOgy^C|ko>ba!P<_@Honl&O5tvJe0-Z2?aio%hTB8O;2r<YYdtS8Rhz=o zjsRrQ^RH&>!8=I>v;yA8c&=VvX2met<={*RDo^8WcC1+P;UN*7$5lBwBBX<gjQK!W zg}~YI8aa>Si+{M##kDBr;gcQsu99*_bg<2BeWb$nKZ3|v7TyO=XB4+QsdSlM;M}dz zZJkONmm!7O(RQr<@8ws^<V2sol@n~9mPm9fJYF=q61LZlD{Q$pW^dvD{v;hDWAD*w zv>{|Y$Ib-TwZ&$xKRNB9gE0{Sv*B?dqsi_AFFbS4o`Z`P8*r!00qenME(de1qLtnn zvbP088N+)XJpg3cCpvL$S#R0YTVaFO$~XnCm%f+jLW~G_Ds!pZ$dD6!cbxD@%LG0} z8wN`)y*JsTmKGJ$8b`JN5y;#<@c)nCk*uJfbH0(~r?ziRL&rLJ0p?*FFIP5g-_O?` ztn_hUvYg8e!=BL(hJC4_SB6ni%4+~O{bPA9oLoagLOjz47{k@uZ*!RiO5z2tQcS8- zwqFFA&_eH+ynPpSO`R0fAv(h3s#%o%Rq$@72mLBOj<rU%G0$0wtnFCn+oVKYrB0J6 zj<#rxf4tO>$C}F%(ouQ@Z2Z+Xco({&of!8og-19LIG>W}T48|hlR@w+C`|WkpF9qx zj(n7U{?xTwHVCWB*LE+TKa+N5XgOV?%|A)c8hd^+r##dKa?V#GHX4fUL6tAzys+Oa zdjt7HQxunoHVFdk{dgV^U*qK@8g$JgoHYLKVzV3WPnD-hnpoeszL;hq?W>n&L2xo{ zKRRy!dI`w23nzJT5Z7}1JCM#qxTqvL)g~?IsoT$rT;CX+&&k-V`qVyan19>Vta1ve zF&wW<obY%g7baJtt*7ov6z$i5#LIidAEvp82D?m0w#Z5>*Rtv4<av{)wmIosxZ5gg zUe%axc0|7zNMSCcO#5j`&MEAmfVB{ZQ(ZlBr)9HjP6f6EI9RIlHv~GPpbGc&dX<#M zWvZsY+2c`*-8r;pmM(|s{x?B4lLtRZ#T)?PC??}8(tJ|3PsW%S_=BcfmrdJH(WY0B zU4zGmopoI7z6N38r<+}A2D~rlqtt}nNG(Z<si$yojllsxQ={;RR#Q0z=mOHnn^HB% zDaYwWzGiP?9fW6WzFU*^`-?G1Q%Y~*8~-OFD@|h>o4cXR>->Po+Ns#qkH2;bo3NK_ z8^xru8uXv@YONT6zRoF9`%ti)`%Pj7l-ES?s1YChlrcA4hlio|)`GP>yc1}C+)vU5 zch^lWBR2xx97AY2ghGihQdLBE(+J8E?&lWV!UFTuh+lzUc}5lL!+XkdR_NQbrjtWx zl{XKPjE1AM_V7ESs@3$uiV7)@3t$|=bJtd|XZ6tnioasdQT5}Kwo-g3aS<nRvd8_X zF(WuWJ6jn{wpoIgGuG2m{tb%#8D|=^M8LlQayR3{_|U|wm^EXf-vmIZF|*R?E!SoR zV;Apbh5cjQ+E%RBdS*mhm-RWxmhcZ@o(kNXlYiqLgvG23Qg4F^=AW;!$V&ORPm06I zh2i9gtc;0SytFyS^0DP^;%?FG?4i#a%609->A0Qg(%gl`k-NtwzbQj<n5djvgCP>7 zDQ^i3MJjOoljC_#x9OkF17~H|nco;RYrx{J#c<Wj`zXvxX}LA4Dy{4MW@E?(2Ru6k zz+RavI4>qYlD;B%eS=`~?~^{hvv{}48-Vo0#j7@9jn~7z^0mpg*1l2OT}cIo1U@sc zBd#Hfk+LB=8c?(VE1+qLRQSH54vJLS5mE!2dR(`^hY*W&<)QDx_<X)<YO3?%V|}?e zstFpcET4><w5t~v1Knfy85l~Y2`MhjXt1;KCz(Cp7nnjql{e3oAE;Fk-^q5@Opxz0 zcw^N_*CR_2>v@*(>KdT2_af>gAZ2MrTJiq~KBf4I7;fKnIAxC^dVr7H;=+)kVQlRZ z9$eFqn@(n0?_f>F%FqrSlO|&9M2QTqJc3P<wb0Nd`JTRDhm764goT-5YoeCfrX-YA zbJ(m5zXJ`Tq+!`G1&AY*7xu2fJwS4`^pCIIAS49SC>-zPSDSS7mxR>8l?R|vXou7u z*dgQPTE5B|AuEM9S|5EUt*j#^UC~_x|BP=#RFra)53B8ar;*ZgftxVQ?aZNTj7N(s z^g?`!#6M)ks}Ie}vtS)QnK>#6Z*4NgubUC#+<(59aD%G$nU3pqj_8x#N!gEr>#bW8 zpITix1fGg6b4a2LYseW?()&!OuXExz1c|YVqQ|@%(Std1Md{V#ZbM=g0fgN;{Rt{g z%~8h*VFc8?6VEnNV}0H<rvhYu4JMj5W5y(L&L{sqsffONQ~B^88?sEX!Rr=m5hAM& zet}Rp$BiTBdr-P&nd$D^RNZe`#5H!ZC4&EvHbgqcCVdFu8+H}XSgX8~`76Q}0NET~ z>=DTk((J(QeX)0AQuEH0&gDPPz9?z+44Mxq7;nTWJW|k|DL%0cr5102SI50acuLR7 z<WkrXt1m3PUCLg(GcRu2U){X!kE!r!SY$RJSky1X4wYz4e4A$t{0yfUAb|M1)RT1W z!ymo)PRMS}Zn87eW!^jP?4yc&y9|G)`wN|YnG`kET?4)=Sm0W#6U)Z4aF6I^W-2Bi zM=!O|5P_dz)WoTqMiU|p5VgsKHMY7z1XYdTxr;PMV!15draedz+e1{AdZDf3j~t~h z++vbYms=<3*t&$2o5{iT8QvBf&{Znh0vQQlcQ7toW=#62<)Fr@A29s4PZ=5RNg#Sq zK@^|_T}$S3T-!GN@pk8TbEqYy`!BC^_1%g9(4P6CHUeO-Rh(Sl-5SV}r~dEiz1yq& z+g+)N>1vO%X+EE-p!k<GKh&U^t;#KrAu2D`0(Fz(vJc2DLS6Wc-UijY)ME>~EMjk- zTge;VhT&L{t7XW$@d?puSVZQ-A=><W>Qx~r*t;B!ot7J=>i99C2cQ0QUL2TF9$s## zh_@w`_pZIVzndy|&^YU)*m}m6<!q<5<94YmqvNXS3bcI9?e@2Qw*|k&`w{rs-*ncW z-yZMY{&jj8>7mKUG=vrn6|YlOrq<4)gt~VKW1*GU@jDe{)l%x$yg$32U!<Wr+-@7% zEc_Ypuad@73`*KU^S$%&wNF}`lR<mt$3GhU;u(!hfN#fmj}}B&T10?s;X3gRZocOu zM`ve8%3ru=OH)iOhD=rbyyg^=WSoSRXE{L{u2x^eK~EH6+E~^TmQSZUaH7P8$GTSI zCy;w`kN5wAZ3P!lmqrT}*pv{@C$MZjh|&*|V$ifa8_w$l(H$#`HC%5|>9FRx)c#_W z>u{hR;Nms?A3^4!>x`!klxu``8#Xes<!KTg5y%`k*l~}MyD9F#tV#E&q!blICgXn` zorPah@B79<P*gx9r34iaB$Y;DBGS^*F_DllLb^dIr8}gibWggObc5t%qf>g+V2tha zJKx_Qu(Q{Bo##B~e(w9a-WQH*jiOJ7;ri9gRy*=Aaj^E~s}C8EwSDEL<sfUzw7%uo zAf4U^DPsH?O59&YSU0&fzke`b*M90;;?OmuFl#ZX)yETD1;(5J2uzRaskDN7(N~Dc zK=_H^Vpo70mD|#wZQ?q#&I4BE8A8)eS-O`MivEw}W8ITMDL*bh8%xd}L>TLGw5yG2 z6;HDMyY4nOX5P7uBkgH93cU1XkQbQN3_TRwL(R$&I6f<~ggyjklnljnJD+$qHZ^1v zOvYWhVQhNxZvF{b6+GS_VsPoSeXhw&PJ3V>HL#4bU-c};P=ra`K6qp(T9MYT(<y6A zdt9&%DEtC_DktndjWM=(;l=d^eQ&iBv9fC1EzO<DN?z{STmfNe())ZqlfZ13=H&eE z0J^K>YtKI5C+KOosK}UqG~==|;}rvcxzU5~qPeQeYhg&*X}U1`R#RVdFT&@$LFt5I zboOgZaSMExsnt8q=|tuDR;r5V{2Ajp(8$0Gm^qk1FDLpcHc+u*cV=83d2iMDXiaot zi3mwFgT*%Jqp~nG#F&`0g{a%!M^yTvjRT5fyJ(-Nb13#dC}V*;91rx0d<Bt+x8+j& z{%zrS`h!lJi^3Hyp|j3;KwIc*)s64rq&}FMV}3N$9`QNl;T~Z2q4zB@Ii{X5i+x}) z%qx?w&bh^DR*#e|UDnAy_eY;fZep#@g0^ST@HE8g*zz|J<2fhiZivI2@J71b&D+#{ z(BRRzRtPZK<QA?xTz|k?4{nX{7`~9$esSOfYV~31(TXP>3lP~a`?-tCIC!`+@4Pu& zT^<qh3{^^D@Gd7c|L5G8FiePQZTEG4nJlz3BZQY|tVWPI7Jcd1PtlrI7*uUKG@(se z9kWvDuD))={_AEuA4^dpXGfpM%X9QZ>6o88(JB07=tAY?hgSF(DFaZ{Ib}>Ui*@5P z%9#7pu&S&7MY+t0dIM4OaA7C8{)mDARPZY}mJpK77rw}~+_@sZUWa?c2(FWb?K7a6 z@fDTII?xrcw=MFCt-rO7^TlUnPRBs0H36*Zt6AH|%NNJ%y;y^$??BOiewH*|sZ?gJ z{tI;XT6IbyfQFJdxWt^?{WM-PW+)5uOE#x1*(4A5v{OXJi^EPQ*h;<4ufi35DnCkt zDThF{6)r|TR{cl9W%SRS*^bFxOme?h>X2ftyeO^3kLT0d(yq6*K~t)F7SorFYyymZ zb##L)CLCht#gIJV%-0CVPj#(gFI_jTKC};YYpOY4gcu+CA8%)EC%1JpqPMH_DtC@p zr^Y9(iBoUVUk5e_A?M0Xl}k_>kJ@#_K+=o9S*kx=^!X(9Jw*R~!$D&6SIvItFo-`F z9={Qhr=`9DQG6jNGpLZdmcOz7@Tw5*s<XqU&G;dw9C8^n0^i>7snfI(9R8CVMenCw zk<;jJkS^eR$lIXy`X*=FJ$KHzW=$B~E}#Au)6!<oZCaob_r3Njduo^S{i#J$+LH@~ zaHHhtR$zSt!ACSDr7HBgT2>QRb^qe0%qtwYMI&C@zICP&8?aV~e3~2;E{HvnSAxq1 zH}omNUtxDVgp#w<hPXz#;6+wn`{)#ZXv!f){SpU8vwdz3Rc_iZ8zJB?-bJYOjhkQ3 zB53-z)$K}l>~}$RT>TvOSq6w?EwyyK5_-tt&`jx+J{`N&q86xJ>S+9FX)w>OUC%B) zu%o{U?Au{R#%+Woc|ciX3q-E9IF6}b_yYzavs@bVFeOT$Gdnoz??0aQP?O?FUj7j_ zB|%Yk8hFRY??TqKp;9rv+I3HY7O>Ucr{M4T?eSe4GR^#_k{B%`FvG5Uz2sCu=<u6( zc!Rcl`N~urnuvfuE|+*`sfyd%t@i<Q)la+B;~i|<)C0fGstFee_8Kq#NAm0H?>|nA z`UI^7iuVXGu2Lk@{~^(S1!QB>SQhmRpJceV<p{=|+$GQu;*SKqI4^l#&2`Q-j)CHe zKSr5Hs?D5L@y*7%8S*cUy*9=ps{fsO+?5FGc%}>)t=>OB*9n;(#38VsX3i-?zFj$= zFCs;K`^I{!c+<(BfHPk_l!j{&;O!txt80|i^UD&<h*?L9N!u~`i-8go`>loFHLICY zF3^7BO=zt{?a&&0-`ADAb+Lz#wW}@pKyIx~9^B9B4O^#}m7^&X&g)bv{!xyLDs=nH zdc79OD%Xk1X)$y6@9;X=xd6SJDC!;7xj)mO#bb}s8CrDxH;MeG-Ly<uqDk%OkTsy= z=YsNUlvN|<?o|>}I-fiKM?x8V%lAm9{@AH;%CRwD{>jwtUoCd{0-r)d&#o0&Cnn?b zp%)Fa!_<qJvsE8R5L>!cz%NE6&13tb^$D7PA@`1$=H|2>YHb#sJ*)N0ZVYleGW+20 ztoy#frdfSu9=y7I;t)|5C!wF#;tX8|-rEx+*!c`rKqQ7P#2L6*MqhgX)s|&gl%B-g zc*60_jo47Pw__<4A#uQ|h7taCwVZIiR~5W%_Ta%w!|#M)+rSeV3**#4iK)(q*V>)P zkHA4$WUp20nl+-R-S{df14YMR#3J-%8j0!<(LDA}TLG~`x2F4;f_Z<1${dIXeL(A= zxhENLn)kk6RNu`sH4~p|62gMn8sT7XD~Pb&b*V;uxn^END!jVPe5kZRB-{9<$o#tb zv?n|&LvsZjlb-JH6Qz`E#Ytbj`b6=R+<s^22caO44b+qC(ccRH4gc1vQnniA>Kbq> zSJG@=xbUs43%;G>)q$1IY6n?w27>0GK^7orLr@WfwviAw(QBledHPQMC+Sj&Y*+R` zr9WP5%QqlRlATPUCO>CfT?^(RWO*%Cmj_k?Jx0!Jd_|*K9aRBd+8Qs->tZ?m&SfFv z1}?D;G1?2&>dPI4=}YcDyWin!ArTKc*=7`&b~<lgrW7qfSxX{?&tY_9#k>>r5kvYq zP0ZDx73an;RREIv<@9Cbp}fW+S<$~^^p}neQR@*-x2);(^)3an<EU&M1o5xtLni2L zi2$i*oY|r_WHUFQ@sl^<p$eQktl|Lt`=?x$hZ}j3&!D@iLe4onfPToVUO*Yr=5w-W zT8|vp9Nhe=;TD&yb#_n^l(FG*%|CN3*eS22Gr$yr%5n{L&K{iHZaK*pyV>O~hFog? zkA!J#RZD5@UWvy_TL4sEl1N`h>5!T#DrMmxn`7T<N!i_M3#JyS*P;Ha>H~**pJ<kY zN8KB{vW1#qj-$u$n8!0B^=$&ql5<nzJ*t*Z`>}klG)utkxPh^8zsmO;1uPn<fF;+W zWzSaiy+8A1vMr|GQ%9Sg2YaJ&G!L!?r-L7A{`l7^eH>K12=1ZVOEgD;UW{Dx{q|It z9SxMlj7`MBt2_m&90g3ML_7qi=qeig`qb_6_lVCs+9HQ%9R1^}bGawH<bQL#QETD< zaW(f87^P=8xESc+>>B!~NXPxF^fP$M`<I*@E3Zrs@ynamJdzu8L?586{+?Y9)w9@z zL+myeOuC*$g#N_E@7o3#*g;LaVq#>Od79q0yfZ}6JQUE;kE`!*h?4u39N=0{cK;@D zOmQ#(k0kF@SKHFJmJ0uN0;TDQ|2#wivzgfoW67<$3!^x{qYLO|+K0aRcgb82w=+(d zWCo8cX?non%XGmnF1rHnU=Y8Jv*s$?$Sj9yx&_@zmgMGyQ^-%3a1(UL&DHCJ;3|Lc zKH>P(f{=Y}SQe;=sRN;f#bxT-OlkPy9`%RZJ^bCB$NNA#{V^(casQm)iDSQPvdX=q zNfU4t{E&0>bZ6;Qsbxmo5~^|^{MWJ}wsh(atCZC}H^a2`#@1*6AJ`Xs1t*Q;pq=7v zm=tc1_dY*r(8SL-2;jOudbH6K9Gxs5-NVK&Y(#9}jpzb%CW{ZV9SO)cO}GoG2v|oz z8?=tCv;wVo<CjlQ-Qbedol<(E<|Ty@wzoe&+qu=3O1P}L#FeJM-s@;FlCfhn5^q~- zGl#y`e3AO`lRQ7Kczy~*0KE;cV5v_f^o+K$eJo!Fm!{>nyrwdyt+yUw<lP!Nuw?Lt zQQBTA`N17u7GaKc+c<51MR>6BDm5F?hZNNUo<wOtp!MuGx1kpT>Klm8rtsS^a{ut? zOZ49FR&5~hAVFff_7H!LpIa(6ESoLkblVH*nby3jitNH>SIMj;DLO=A?{-l9EH#5d z%^f<?w?{&Qm9#op>nue6@)Bke4`Ff~L6E3Vf`wW8hsg`8Qp{cG0cnW|@*_6ch7c)& zU)w?j>Lo%7e%5*626KoKo>O@d6T<5cH@cP120tLhs@Ab_r#PhMx$S8;1xWV*sp^ty z;3dzl(&9W#EjG7Cljw<)R!R3eB?2dHPKc6VgwGg5OVN=O(8$s`q$8T%?CXnbJeb2A zM(f^Ud*~P&dbPzYac6^Do5FCR-SB&UGq(k|(*Q-zIYpHQm_R2l|5&gl;l%^ytzvfK zEPoUlyf-p^=+JV)4Ff+#P!RloN(_nrbJY{f`OeDCP5XHORX$Q?)j_C-ZaT#~xymK& z@{cweOTB0;oQz8f?5ewvS1fOmY`S66)Zd&)-z@xGCvdKcKT2y+z<eTPZ=yiP2BKbk zc(ezHyF(NBmkrz#pVV>PU|@eg#Xl&{x5S*teL>1Ojx+rxPf}i@*~!!-m16Ns@yTjz zxYShD9-Zc9&(C(+LN`)R`{neZi)sk>^ehyfv9M1x*7A1P*-Ui~0TM{m&M7P4G9Mai z+-(!n^`73E+|gB+WgB#T(iEr`akoAD6X^<m`kdJoN-A!^&#%T}8NX#650%@!i@k5n zo;V)U;jTzb>)0rl<*D5vKvCEylzIGGi_mJ|<au57PhIeiSE+o_LX4;e(Rx8PI#0Rn z>j6`uIDZ_6nGA(Aw*1pk`Z&2MPrOQM)a}h0<LU(nQgmtGe)0ZSH{7?0K;ze1MFLAi zgfQyLG}E+-ZMvZWF>zKWfIh6vQRd#aRtt6?OFA%q+>pE}SS1)L@Yc+fxyFK&D4{<k zQ1?-6=q@ND!Y}oGp6{4NQ+u0~%9`5n!E5r|zX8UAyHY#^krRT}L-p~~rKK1m+1Wx# zfOl5hS?$ghG_C3JZR#eshguNyVu~|+`B$OQZxe&%Oc+NW+5!AQ=|}!ooISga`$n!l z*le}8Zh}GfHaW+p8d_F(=T^k|e<W001BN~!S<^@&X-UDajut3+yrk*7L}?zVoz`Ys zi~$uTb*r<nVx(*LFY%W5HRhVQr%}n=e-Gov*L=r3FJ71mmCMimK7E>fSII4UGuQZz z#tWYyII<IlS)9x^NYTx`hMhH>{T*zIAMepgzVLO@wtM>8BWr3p$#o0=2Hd(LN+wJ? zVPPmcScTTZb2ss0_d@Z01paNTa(o$A`&B~vQ12_dR~o|-xT#z~vgTCj>da7hPHZ*t zUo`0|7n#>&S$|yEHRhNQp#Ykcql3|U0o{(}d55f`{YbQKGp;}wln#|u%R<c-HvFmA zUGq9YVNGS$o5!4d6Z)6w8jd2PFiYFL7xWOxi#&HF?(m2S3uEsGyH)S1zNNP}MVl{r zx{O_SEI+ljGPIF4h?Vm1EK}&X=eR#Xrxuu&^i7vHxckRUhE`+lp^!aCNHUW?vuGpa z!c2bjWl+z88mn|;en#M-gwaE~t*fpdzv8SuvenRiJTH$>nZjl@)J|&>L396>G}9NR zjOKyeWN)SbZl+jf!G&I|H9_|ePloj<yquHzIyWxsGgDOOSCnSPPS`Ke7Vvo6{*opP zeh9BOQjNCPI%$^mSZ0hUs_IV)mN2!Walq!Qy*rWeSurk)R3DZbD{i|0QqArzlxwpu zV}egXy*jRL@2Ri`q)>cjI2kiJAo~0WHrHgh#j;_GmwV!i{YABbEi0axb13YXa^{|w zpExQcdzKtTt+*z8ps;mvTlmcVfcg)FJvSot-t3Wec5z4H+Ux~ld;6l{uO>{b{(#^- zeOwcw(Q<MqbZ%mrZf~co`i)NB16&TqylQhu!8#p#T{HbDU$~sIhggque?q*Fz(I?~ zPZlfc6*STpH`{K>234Gg5pPQrDca!a7pz{LBn7PDfw6yJn;I_F^9*h-kVTvc=SELn z30yS5R&BOUw<VaR|G~@mTxHFcvI;gtE(IGKygYyfq0~5CRY3a`hB>*zn?qH1<ig-@ z9Ih!r=&Mf>ggL}<4|j3<It4-JK`Yh99y-7e9A-V6d7^AN$fj)-+b+VLw=r<)ET6o9 z{+8Ax)~TbB<Tn|SSH@!>cyDhpr!l2?_yp~@RqS0>50r$)ytDSsXobO6frH~BQ>ad{ zr6MI-b+eYqcW{IZm3i^NSh&f1x>AUHz|(<b3DV?)G)n0`(T=ZeT$!@Vb}eB@9>YeZ zqs(o6dn4_vPXJUt5DqSM-Qaq4h#dTv9OK+T@DH&H`;TPWNReUAZPY+iEN}jzq-yj+ zDp<MDAg*HTJINr++0#OE&2I-Aeu?FBzCOnNU0Jq1<3N$CR{MlJ=Rx6~kj&u$y5xN0 zU3SCrp6d`{P`3vCK~{FizD0M`CUu1_Xjdz%l4<S&28ounSD`QOYiZ*2PhWyKvm81D zhYN3*U&2_QrXOR~#wVVcPVjdwExO`Y108SdHyM{luG3*(o@r?H5o3;8v`77hwgmNu zHWd_kStvRz!}OZ{c&r`ixR~{}LJOs;6z$yXB+|zIBSFvS$?^A=E3(hVJslF(8tRP5 zW&f%Qaqq#Dr<uwGNFMDFf*-s^%{WhQyH4wO^cRsE@4P=vXO`Wd4J=&$A<@s$@Fw~Y zyC$h-<jr(K$3PF$I4EgtYPw-$|NK?oFM5`<trj+O0qBUpe1r7c8lIt+Cc0z``l}B) zA2Qku?8=W^^Ae^m4&2w7PdZ&1m*M${mA+|CZ7p++79?->{toE7e^TRwOh}tao{0IF zQlC`T%%l>eSd&Ys5FHh7qhoYYCSm?}|L9Tl8@~mWF^-w>o<n}wc{xSrqCVbl@9SA^ zY5MW30=n7VDMa07*~4?=>qQhEK}NySy6eS(at>0kzgI-{XXn_mvWn09xkzG*%sIAr z9yj+OUq)CLH~icpdH$kGrkW@D_Ik{P<3ak}778Q-nvZ%mx7Vmvjm0GGl!1=qqC7da zyu7gi>D+$Z=`v9>?P4O`V*(fQIzw;&=nNFKVl)3{o$SQ|VU_#*j5ljZC3#HHaF+h) zBMGcZi993OC33CbxH<T3`SbFEx%_rh=cIIU%Yi6Eb8h6%1CiTJK4_rWTJdL36B=XY zg}a{2LUufqdN50nW6I`b+S=>So!a|n@B+{ZOiIcv`0vsUNd3n5?V0Yj9Nx4%0Py8G zL2a@8?L)(ZyN@_Lj~KFRE{*?yYE-hzcR>va;XIQP67gCJHUYffi8Y_Cp1(9Uyd!1A zzT-Gop@pEt1r4NR8@N)Pqb>Doub&{mV&{fLp}^P2M}4kzzCl8j1{#0Pi)w3waLI;b zTdvj6g=-0h=Q}SdAGfgZbU-&;=dXx+<}(rrw3c6`=%ICOHCjc#X3qyAK^v4V?`o*; zyTYo1a(x>zR01qJ0S<bI(t3e#V3&Gz_8!qc7$o*Onh(z7TDBX(p!beulrKNpY*}}g z@$xHR0uqMmR1z1KsoO<tyoH6u5#$zNwx{9NQlr7n1XV`7A2@Uw^T}=<FhtxmYYbmP zXRck^xH9|-iwR%YY@)HT3Wl=0>ruI%tdmD=Iqz_^OJJ&8iZfQ8shU(#-z{iuJUTJ! zNWyGKA9xP68;Z}p_?eEKd>a;Q>>i&sAhEH>aB9h1&}uZukNz^iIOCXt-kF~GWT#W- zr{EOwn2vg2uEkPcz_$U&gZP8fVjVqo8DU3y#~597BINyv{x}X*DM4!$5oKpqP4Ls{ ziwr|sWI$^1qnBN50%|6M=ED?_CuLgYs?ZH}_HOTZCR0pKN}hDt(UVYJq>-N3%Y}%? zb)oqc&8httl2?A;hMsCm<5VpSCS?bv7Tf%VkMy4uO|WJ-HxiL9agNCGLG%84NRO5P zRkud>kDE4nICaLBw#?geYK@JzY-M)dwq$L>mCLJ_7ay2%rjt)C3D)*H-`t_k5B<pL z8Q<LZe(gM`$@nb98$NrsXp+mFYIIZtH0f?4q{_`JXyq_nZcwVnhjIhYKl#7l?9)Y2 zj!BQXxfnaSJ0;(A@jva;@%WS|m0@dWrb_P@7D>GjZDMBaiEVmO@s-1Wf&Ua>ea0GS z<akXH2%gg}0QXePEqOajGx-W%CQBg57V@H*{0>Eg-s?`Te;@_&mnF#hyyT})zoXdo zi`lj|b^O!!(bYdCe>$_A!dz7LJ<k~CpR~pwe|K)5ek4ujW%kMOdS}sp53oAWl-Q^X zL;FmNW{H}1A>bAm0`VZ^!$eq~9Ogm9=CN^PyZmZU@D_REw;HOdu)(LDF_)D1m&8#R zg&ZSqM7_>8R^>Fp;xEw!^If%SZmwi^Klr!~p!R1w41PrXa|FLOI5u2tNUPK#gh8na zAGx|swO<T$3b@|Cydcs)F11`zg1T`y8*L`p>iUsUpjs=|f6Wwkw9jJqq)L2vFP+*G zoVz`=efjzMgG5*ZEAlsEU8?4GM+VPa(H?yu`d|*?l$2S>*K7YdP8(~<lz`&l-KIAj zy`Mb5YQa6r4LS#Syy`y$CMGVJQtfQ$jg5X@U!Gs0_Xiaa>j@_VaiQ~W!!aUK&U|$u zG`%&hIK?GtaR=3qnR)%gwu0k)my;2(QcepQ&^R{U?^yYFEeHF!Tm`vc`bPIr{<9u> zuEkAyXW$}r-FIo}q}KQlms1ct=8mh&l4h5ClE3GE<i#S1K6Q}~tbc>R=u>-Ob1&VB zcHFLYFT)5$#g4{~E`mbceVeow_bBA>$bme{;|D#6JAsPR4HF!`?#^a&mWG>IXjqC5 zFo0$~2yvJ|r3@fA<+M1zwcC_|a)a*2n%|fEHt)~)uwv}M6N;T#TCFT>{m=<b1p5Da zRxUP~8fj`H)DkRCGoFa#kZknmIflia!*lasZ4-?Wc5Sme{qyHCDQI=?Ab8stQ=K<d zG*a50h*DE<NNRI4&F6E4SJ_O>|1`S6%WbXos*yEJI@)w}vhMqh*WRr#C4=l|`;VpG zH-Gt$Bvye{EDKjYf!6S1hX-8&j)Gus<lvPV1CK_m4cfe_^C0+OjHiB5AEnM=duroj zb!U798lX{I(=-$~n!x17c3mE{7dJVDlXy|u7kGl^-WZ{OpH8vV79?vtoxWtQ>1(=l zz&64{?s6v4HO6A*)25DAJ(-4Q{PQ$hI!kLm18^(wGRFyx#^y<Q<zv8ANQL_b<9j&n z=z7mLKm}QuKkv0w)UGNj`@UMf!f0vp?1)OKVg$&%GHlA4lH^p-;XNsDG;Y+rj9=@X z8;p@nU5FT<9FTve4{P)4KyXeU1sA#ZAI#1o1c;R_Kv{L$1nMuJckt*<(h^K^Us}Is zE_q^gtHiBBGBqP<0aaM3p|<?|;kQ0d3e7BJkN4L2?LS=BKaF{V{n_9Bfw1NlCRz44 zz<B_-SXI=JE!m9GuL>b<l+jMe-l6iy5`c{G*_$NvOLc=O9Q{QOC|6_l<oTC0_o%gH z^37vEkF@<zXut~<S}r)UI=zgTZH`tiFy)Y+N2%?A(-c_Snj0=tR&yQS)`QUL=#Be< z|44C>&~vM9UkO?6&M1(VXl0E}Y_&AJe(>0p{!3}OOJ2g&)Up6fD91oIc}trZ1e!Rq zi{{Jk(3+qO>Q1UlXv@iiILJI&hgUrc{x}B0=yiaU8!kD^Agwul#_!y?Rq^p1pqH0n zUEn)`*|N?W%opODiuzKF7w{IuN+FSEs^MrJ5X;U=EYnhw+7*jqYhAlUONWX1h{r^_ z;H70ojx8ZEgUCA(sr?iub}W2fBSE?X$Q=2immVJT&_)<CZTvQ}r@wIBNSIJH4M1u@ zNf%#xK;e>@m<pkHn|4F@{waX1&C~xQxzR2}j=ZH9X&oU(!b}j@?%>6)&zy&=7fy41 z+4$<7?&L1uKY$&}gE|~akgF|zekk>#t2%Q!7R)PpEkX!d7K`^SH#E<ohj^*ab4=58 zA*dy>FZyfy?#;@Q3I{jH!@ERo71FV_-4tA5$9Q-6RxUTblWLu<YWqYxnqs@Z7(ZM0 z5pNCgCNO*}%pOey0xub7wR0H`L}IS+v0P@cg^Nd9hgG<z{$|%ym@TaO8xg8lsn6|U z05E73cFnzqEpBNLhU1&FN%saptF?iGlUlS8+NGV)PG2lTI;^4T>yeGr4fm(U^Bv=} zgGKwvK5=khBd0hP-!9OGOj})4AyoGLgD$#6s4V?p4w0Nvg^xe)9q53_#lLvw8?g3A zw_*9@2m+&Q*d|PyI(2;p$y*<(?3~Za+=zzi+yM3@)lZtEl95LJL3;`s+L8$qHTk^; z2n16DpoChn8mMgQa=nMP5Zs!3_CaMx_O*SLuLsrzW4B*D26>PoUToS_Di0krz?M$s z8`h`qd{5zgAv3XVWJ9Rk{~3`Vdi7|abM<!#Uxk@un>hB;#cT8opm7P&c-IiJuGv?e zg9jXIj<^CylN(%?v4$9OrhLVhEH@{z?(=brH2B^`9HhBYO=*=txm(^o_a6S($)81> zpT=G9`Y3#;8S%6TFedAHm)enIS8{&gf3WMR`XHlU+x=_t9PlRwJCyKw#47SgBpvDh z09CEZzpMfG!ixpUB}?<@GW4qBej5VOa^p>)#_*I3Ko8LPl$01)v9gt)fgNsU;w3)a z-=iv87{qNCeK@%)w^;ap4g4PX@R?2RKb@uGgQW?~Eb;3U7xok8In-Tf6_R%Scat~v z-32G0sQoNr(;VqgkSK1RahD+y{ypI!A;`n=W9Ze}pEyf<!i!ggIt_3S!&Uu+U^}_G zJH?EC{H^jiI+fai%~^Vv*bXNIwZZj7;g8EZnCpnXtbNZDE2-ZsB}#aOYw4*+l5r4r zYi5eLPl^;BfqS5Xu$#RrT9vhtEWd-ApA^i1pgS&kLRpd9Tq71bpO?XAQP%dT*b@5& zVm)wpRDsnMxT@M+*8Pit%@3^R&{sZhZ5Qs#UGI5*s|3)VyIuNtI7_7L46|^Zu4fst zBgeL}qm8bMs6DDBbDS}4*ti=iKLI;YH?tn8I$N!6nQpS-uAn!aHN|Y!q;Jr)dc{05 zD!QZI&yeB<p39g%LjF9XxfUDf35Ss15)G^xF8fT$(Nbzd$O&dEbXVjORp|N^D$P|b z(B+JPn$x>J58YSn7^i&kC|EoJZ*FQnDB>c_`o8=Lo#3_cTTHdpkt9OsZE#b@O#P<D z-u9*G!Jc=}eOR4qkMwt8h5lNF#Z4qho^){!UOG@gohwU6NUr-$m)bBuA2|qdGIz+* z6cAD;dM(!vo!WFh`$(v{p~F`{E5^ppe-xN=u~p-1mR%NNmD>@#Zn}=SA2`kwlyR*9 z^H2z{1#B>kBmmhUbKNBSgR6|-owFjH`J+`l6ohiMp&!1rIB>Vnc>D@@)XvrcjP<D0 z!7=>c#;ItBY;*>ZO;nU<*Z*t0a6=uI3e)E2irBQ6OwR*jdeWsx2Xi283Rz7!V$7e5 z3qrO68|Bv-*4qUT^~HL!uzg2L@H}jFA>t_FhaEUIgKSHoVda=OKjtI%Yb?;v=B<Fh zswQiLE8fP;G`*>P?%^zwi~8CSsgb5!kcWtCV{Ui3IiVqpzVZ+0l0VS_9{J+Hck&{A z%P&>YpL>qWjlp#~pO;oyH3!XyhMa#33-oLfepPPPQZsge9*<TCo7I6<tHoiD08xsA zT%=+sM@Z(?Of!%E_43#A%ia6^D~r={$O<D|l}<iA*7wrzNow+mXr8HH|Eq-=1L7En z>QEzdTRGM&bAxuBItxb}0Gy1ld13uIisjGMp-Ko)t|jpHIR!DXc`z1DmkQDurk<5; zV7(YzFN8oNM{K>TPmlQZngZIcC!Ad83x5AHRm95cZNAZ}xT9@=mdN>!r0#2YxPDJb zDv6|OcGraeNejX$=<Yc4wr12H?r_Pi-@K?|P@_tAy{fZE#wXi_u|Ch?7aiO7fTN1r zPQRF`KyL#&euVL<m7Tb>4`MvB^Ob9~o_*NNso@D+yYnkI4OAl4X-YNhWsb8%&q6Rt zfj;Y2TNak#yCeX99aqRNKoDx%<;(tl-#?TaaoSRe`lZM?dsE|jtO8IH&h;BY^>r4I zn@t5iEvOxE-BE<zdc%oLvKO=6dr`Ng7{vT(Pq*dT?JN+;BY2<el69pj#7XCC(a-i2 z-6ZDj-Ej+g?MVa_c6Sl=P<ZLOwcjUp=v49<|2w~y?DndQJIIo!GnL4oBZ7bK*v0<N zPn9H9dg@yC8gKG=K#3jc`zKv=gi8N3uJ_(ex0B%6mp40cQ#+|mqZI;S3EjmysDbWJ zc28#uLL@<{x4MMPUZ-();6Z7zK}GVOP$E#8$Rg7Az3*R>U?y^&o~+W|eDrN?L&^mr z0{Yk?Y2+Qn<##u<{NFtae?T&{T6+B;q;*JwCHD0ylM=l<za|Kk(GBtQ64<kzg$+e4 zSum2J%BD-kj?9m*hrJ$SR2OxoPt0?x687g;@iD8u)=e?Pq~?O6OYKHs!DGP>7I}K@ z8Bot7^2zV}pIUuF)L%r{w;F#nOl<nz#1D*M#PJEJ9?f5APKSU9geu$Hma()#C1+U@ zhJ@)&Rz$cgz>*Q`B}+bY%XQ$-TP<RXV|R<EYvu%ng9P$2umPB{qSR&EEV9R$O^FpL zmq-~my!H;gc}BzB@5duIs_&Ln0(hz_%-%8%`Jm8p^m9`(!dIlJN-091+!e64xmeUN z7_?4a!S{}2r9mH^S&5hZ;s{~WC!-}~)LB`;TiY|YDmXR!L}pPWM`ry`)<z}55lA&w z$cC%E2^S~~qsrWcxPTmUU+(&5;Z1RYQ!Sa>3Yq!3?Jdb>&IHJ1c)9f|<3s?0$941o zXo1;*Zdp-k;wDXA{z9od_b^7RCI@o*CzGc||5!D#^RT#;fj4)M`WA7tapO@>*yq~{ z=MaRG!;`j1N@``RrB`n&0a%6pzrHcR84TZhU0{CanQ#ycP~>_b2KUwpiPtZ!!?mbX zog&OQUCpA`u@aaV=eU{P?97OSB$GKr!&t)(7-aC3YJ2Nc#m)F9p{8BP>7=_gS={k; zGP4Ws4D04a0Tb%%rR^_mCa5;h{f*?L*f(GKUA$wHNH2WPz~@PRCm~Kw_F-3j<ikDg ze68IOCEbu7tIOAG_N`i81+TPKi0UP#!6+-{*2Z3Xt}W-`@xM0FL#^><LXr)k*<A+S zdCNgSq=)P8csy3(kC3JC{<d!1W7UXvE=s$QuUM%%rzlc~`L{oNO=SRl5+|Cbd+Wqm zRj<uZSKVRZ^DTZT0xh80-WU)EGKdozYh&ml<DJUa&<}v(9*C4`un%h~03Z4I%F!l5 z;#sr47WS!*gm;}<u6*AkLXr^cpRSwfH`rZLKXn&35^Bzd#5W_2zZC!WF_2_qtg^$u zcMw}+KEG*Cd*mSf`)am32j^_N3`|HFAuFlLX`1FEaA5jD{*z`u079P{Rhecg)+&J` zrou4&9L(=e`#b|@Vh2a~eX4wc%`oKV7}awP=P6Zp+RwYn04xrz{Dp@wTX$<E`L8&t zv?w3BdDVoA*8hD{pG$NOR(IX-@IlmyeC?%eXjR?f!!_RHujj0l{OTd+K0&2FHViLi zoPwdCuV#{{E9ZVEtCL<z7mwi896qal%J7caEQ7p~wzf<xU>?>sYa;keAB$l#y#XE? zj&PyMBen1LQIvUW+RP3jseV>6gy%pJekfDtyr_)6Pu(8t^R)FZ2qJU?yI5^Ab0aCz zG9hu<ESt!x`8Jtm$*R||@Gjcqff>rP;P78PvAvpj!jAE>sc0aE6i8Qy{O#@^_am<n zUV`)gkddH5)ZT8(3)Fy<4{i2qtfnFh7J?^<v}tY}1@{(-7SSj14U!pv)AS9vuXdN` zTLl-zZ;N$6Sy7@jCJ$`pUBP4tzv8A)=q9fV9vp`$6wkJkg!?s7q~?7;U+=e5z|=zU zu$ljk2*aQL+7~B(NK+=N{M$o-aJ7&+MD2Q8Y<u#Ny~@U2$mPf?<ehlar{35VfwuUt z4zr%=^6YsbxsD)(6ZrulvnDH8SSKuL-Ct@y?ft$k<cVtR{;58Dy#I#21GqLIMy6^! zTkc43e8uk(Y1nVZeUxiIj5;!FsULfLCRV)m{+;a<19aef%vjUm`rL}=2iv&yjr9)b zIlnvfJE#NtFAq_coyMQC9b;tGMC_npZ6u`rXlu>-I6WyGZgb<!_zP675B{ODoGM=R z)i=4CwOi=q-t)DN$dR>>&|5!UJw>K&HdAqbUw+gyRn&Rew>p2LH>*-#Bm7$?tS$O$ zc>dyQQ+1z*qWjol$#lphF+{BQ5h0nYKJM`SWMEu))Q39}f%m%0yYTFUV(Zc!l-E?@ zF+;rMTdIrS@ZehDdKKAj46P9@N$)zX-ZF`&BbYszQ8Gg34rJyvA8+Y3C>CShEd*Wo z?1doO@Ri2(MchjSZ*N>@o*4|JjDH}f*Cp8M`PaF}W&EE1RtXF%aewD{e*Pc+8-O9a z^<w!+XSi!D@u7NtsI#_+&==XsuDe=*$bX$C(&oj$_M3eh!P*U5{m8r7Z5gXG@tzwC zTUFZ?K*7(oo%tV$Eg$#%$9oySaBUmkk<#Zk@@GJ{vfPlu`l;$HhXnyXowR|fAg&*Q zuP{qLx}_T^-8iPXYtzZH;&r|eA1(>26y3h3u^}lI%|w^76>F4NL8QTbed63LOpGD2 z1Wsh1)BGh4&&MHCC&jbhxRIs+&Yj@FSR3D^K9_GGuYy&bs-TA=y&_ciKhUrUqp$lP zDnx$0Oj;dL>C5h~G!`A)zy0KESn*a07`d~{%U9)nz6czXC$bT%v9@{Qv_s-=6t-?7 zo?%OYPif*|zE9MF>3V{ot>?rh_-#p_4%rAjuIX59w}8W(G@(i*_}QgBj=H^g!TGh? zy*t)u@y-&4qXJ^vIsWhK=UZF)$W36J-@_>e0o7PEH40ki=INWxNm>55x*H$zcg`n| zg-yqDe98RTxZ;h@9|>zA;p}E#B<kN5<oT8;tsmXC>XR5=HYZ~*;UA0rI90KGmffCl zenEU%tE)d{juSaSkK!D4{_d_lO|4Wg^?tk{tTs^e5ltLy`lZRQM4R^-<Qd5Ybhk|u z9{cjYPgLS>oRh8Vhd9ewuSWeX)X!(Hflz&R+cDLlxpj!#l71bYHUoq}f%->r&w~fd z>Lp*#?M{ZNsZ&)%t08QuKTsxjPmYA&{RzzVJ3H%-MIsOLlM0$lsap^A@0nLAmHXCp z&n5pyQfNBXYD_`hzucemX=XQ|Hete;5ZGnVJ?UaKHFg#9{p1xP!R63}`-PGRTb`vY z%QmV|Xa32NcDyg0?AOy*M!kMq3rOUr%ZhGy4X3Kgp0@{y9%J;E)7^NrxP0=aG|~LP zkp#1069?&e)z?2(&Qs6M6r@14MQ5$UD09W<k=#6)H{2J?E?~8{YCON?tLG=#@PrnV z4#-3IE(29p&1L7pyR|o#*c|wm&0xC6oRJdGm=4XYAEce6#Zqy|MrT^D6$LPkytX<5 zo&Q6uz*sDZL&&Llo(0+bW`}4Sbb~RdwzJ~lOp1>CWJBqzSpUGDEIg;)OdwZ-wHo77 zuCj;aIn$SS9wjwMxA*6U+F~4YZ<hq5mQIH-RxRN<IW+Ntj#w9KywXuDf$*2Q^*iT& z0i5t-#4UK=j%Su3<@W*D9zBBDQcp)Yq!lWo%J@S)Pz~|fn59Fzj^rC<R91TLUvir1 z{bWKxF+>Ez-Q4Phb=PNLjKbquLVCNpK#aGaTe@@DCW%dSf(9X@UCG->D0zTQZFoz& zgd?(ZBNX&CX{c33%KaV4N&j~sDNm*D+sXduQAHBlWZ$jgcV$)YTnRxNl`lVK)WVh~ zB8C1Vv7ewHWqzKi`fw;3l#+fmrH&W4Ea$V6<|$5PGUR4tydb~QiDa^C<ojZJjrqII zX%_z<i8^K`!gwr7Z-M^Fi3-0VpV^`_;Mn{UVw{ulGVK7h-LsB;e{3swEKc)_HxvH& zQG(4oFxKn%t;Z<QKq_6d@<9a13?IKX@*88J{&03TbH4jXUhT?|tl0P7zqan3DE7F@ zzbq6}Sv`uX%fZD41&n&yfMTA&vE4_5m-Aga<Vj7ZtP}nEPyW=P4=?H48t~###wc0l z`gRJ~HIBZ!rZD|qqG-MEBR+w*HIs7B+}OCe!}TI*`)@55J+pp~a!WaA!rkfKX+sfV zWtcwX{=xA*TBoP=pU4sy)%Em2`^RgS@6!){c6cSb3MuNpBPyg_yvbw4>^o?+AFjRO zwH*mnt$Lj$93>Nvf)v~?xWTDXWp(dp@!CIV@9e42DTLQ%?ZGAK`e6Oft>0XFJ$X6| zzpg2d-9B(F^4(?h{>eNR)CY7uCnB!Duum#+y}(^?r0(h5@ihaBZt*ecj^D2YcSY-V zDHkyzaZy7hyrcg^!?a*}5hQZH8SZ@nlxYrkRPK6YRd9Ccuns^U_BN)d?eV4tzt*M> z!nv*J+`CarZvS3NR2|94dHpDuMXc_&jmg!)fJ_B(0_(mNgDg4!liAc3Y=%B=!ohB8 zVL$^|%zh~9^~8uk85yUBU?=tE)Gk|uCQH(6&FNzjg1`~z(pZ71<qL26lR7?Ls10vc zU<lROEk7ocG#{HB&!Te~8LI#<VikNv;(?T1kX%|q=t1W_-^qh4b<geFw&>F`nJ4)n z;R*`rTtd|`&*?xJTYhi&BrbqEqn4AED8x=LgwlSAm%E8R(wo4Xs;8=w-!<5xu<jSz z)5S=owt(0EBcVNM5#s2Cgn-3XVqoD!sm4ZX#-jdzUDTOs3pz!*oK)?840@IR7WuFK zCRW-eQU`}E2FgrQj!)OJS1U<fbX4%WMr6rdC{K>hy&~0>Og|cve$N@y1lV!D5P}~~ zCquJ!l!@Lr*xd<C#XuBuoM)7!diT*=+lx}}OYpk%TP)oEN4wuW3NDF@B6v3^&9a4a z`krg*Cgy}R$E(k%<x*<(JFDsYlZQip3m%=9UZvs$HyVJV^z%D9O?Xv0BA2+ndOMiK zx6wX;(ph1HmRU$_AcFVrETog=@?=`~^xk*DPM^c!Z&4(qNQtXEKm@L4kFnl&?j*7& zPQKHe0gPtgFqASp<5^0n!{}R83$MzL>Zg27djuY0aPe+RwnY`-Q>0X&0NuNGqsApO zB+~FvB#g-K3b=mll&Fn+B<Z4;Q>Vg^V~bouU<$7JET^_?u#u=9SO!NbE|}`lMM|)Z z>H`-$jBn*?&b{~$OGH$i3;dm}t8Y9*9x71OU%IW^D=U^f|2i(4_U^i%rpWcSZ_PPV zV~keHg^ldI+9KFT6+@}+!B$l!*dwrMLq$;~wB2P%_v+!nuOSxlH=jBC%ROfv&P^b% z@YNb6dKE38(MtvJ4d3!JzmpwNmWRWIpV_Gl?J@8eAtCb99ew4{H|6er6jedXP>jdx zhFa+Dl+Am#x891;>w^I}#={wLpo3t6rog}I;g5GS;42Hv7)m=g1=JWg)$56{2i;3A zyhRl9R%o)lyHy(`t|it!hHG3wVb9Y@zp%%jU%U*wkC}tHKFzj%kN-?L!L29tn{bB; z;#TsT0i&%bQ;;rcY!=kp%9y{1&?J_0UvMxSzgA|bHCGp1aY>+{yqw;|AfsHcI;?}= z?mTiCl(-NJq@A>Dj$az?GGm8H1qLt1(cl$)y`@JbuL2zkz3yZMHpX}(oNo#WDN6;I zUWI_8Fn)i|hd3A|Mbg~+Y{+joE+#}s{Nqm6j1yMjc6k)96*S<3e|hOI&AK&*;^l8y zi24HaFQfP^|Kcx@yeE5ri<f3hN!i+pVeOtN`X~?r+p}41`Xi?(xb~u8qDz$HIYW@6 z$yvgEiqnFraF=^?+?<&K$OUgeM19tlAs|tx=+-i%r_(_A?#YH3#q`t5cIwT{YHLpb zeiQKHO7<eiNy$HiIrv0@3;0kTai<&@)z#LzysC&;`(bXW&j5L#<(qG`#4UHa)Cq__ zBkeJxQZ^H{ulpniSnp{ERpiGI@9e;Ro4Sx@;r?C`(SC2SSf8Zplh3m2#g5ivQVzp& zr?q(WHQSvP$5Scp&aJaE<B%_yi5^5Kf`j<%QUib+aDFDTI=05A6mzMaR<#)Bz`+9e z*|B*m$E>2RUs=PuQ<r6UmFysvcn7rn-8?AP91Bth*2R}rpYZB40cV9Ec8T!D^dICn z9SV-~gyR(KD*_Aw$=uBDUAk*2W!lh8)mjz%n({|au^PT-Pq&6PxkIfUX^9*Y>NF01 z(=Ni>c4yH`e{y+)xVN{+ndpPEDwDrRVaj+Z-$I(1^H{pv-F)x3F{G|&i6(Pb!Fs@- zKzR(lrXR7wh^wrg4W74gr)7>oiOnJ(_6{sQ6LPL)0~$g5;rC+w;uPM??-k2UmH5h* z5P)Wq7TDcUKkcv*R&=Jotvq*lcexQJRsbI_8vtp*OU?G&p-j{0f64W+m9_^pulB&M z>Ud!XolkfF-claFc8iW)#(u<HU)cMJ*F8QN7O@U9n9wV(Jb!9pk4jxbfSWIiWhB}f zrP5o?%X~k@<fNYiw6wTaF!c<D_ne-Itevx8v8I12T^`kGz2teP^*bf!h99HZHdbpY ze~za$`r+i@n({ZARGSXvJs}3zlJP8edX3Sk+GU4<vHIIuh)@eJ>8sbz<sEyQUgoTh zde;tHkECsEbq>I=CV$3|F#fM;=CYu#kn%sokt{)v0anupF^l&b>yNyjW>@H6q+GiK z;zhpqyRWa4HWA6j_{zXA7o=!Np#sd?vVf$9nIwK@1iv?LxE(M1)sBk~M+)7y#*0Dn z)!(2@NCr(4VHpV;<IRN3Gug=2Fg%<8aEZOnkhT|eeE4t~nQ^}G4r7ts7YIyU>Nfl& zp4m0(C@@7U-%LzO9y?H{w2<$$TW?)>Ab58@@BBP~IC4e)si<J*A3F&E16(i+!wdbJ z;6$USaZZT^6vt&-W%e_Gfu<^sgDG%fobm{Hrtq55M+Q*FZTgVcYxg8Y|H(Sl8@2cR z-rl>QN%jT&&OCU8RewBLqEj!1{WB%ibTJ`A+}zJL>PM;+hpF31B9MIh@n~5Y2|oEV zwwm6#t2tt@$<Wb~JpHLYUD>I;Wv7p4cI*tpoTw3B$jF82tVqCG{`nAY-cdu!o-{C$ zqUnKuW@3R(!rqKl=1SY`&MBYBFa-&zo5+ax-v=ZA*BZg8Xn7w7WLj;Rhu`#eew5f> z(AJTz&fOMzhxFawa-9<Yt9+e#O-=g#Drj@mEs6`B4q$R7dKqZdkt6wY@d4dU3$KgH zH1$1ugC3oXlqB$k&Z+7!v~+im$$9eR?{L5N3$3OZuiKkRY4)aST|tXuL8<|G9zvd; zo3+aa)mSE_!BTpx{`3*cn{-h+HV@9#!74_xXp5?&Q^fh!n_r18hae%)7^k=b+|Svu zG2?-hRRBVJX2?rRWzqB+$K!+Z4&MRmBK8r*%Y$%^Owq68>rcN2;Q6|dl%C>U%;*}$ z-Jo4Zql*3W6tgTPiV;6|5#*_Y6>+&WPy9>L$kCwwZLWvAGcWtD_)ZTCf3rn#ksznF z@Q;4A-7<HGPF-$(pJcd<)r=}R*-E&ph;H_(ob}THG36D+vlgG0T!!Q(WTsfoGF_>f zZa$tSHRiTi%5MP-p%T%iTX)zpc3;6u46r(}atYA)U6Ya-0-yUUVDmD8y#X5@sWvZ5 znXk(`iZsi>;Ju?~tGQXaO#!CCC1WKfGpv(Yl<8C_WVyYc8=fEED!VHf0!=n0J5&+K zF`j&e=Qq(|QLFsUI6cDh*4BTk5LDZcn=+h^^0@uso7ix`)#O1%+wQ?-=D_Xg?M>v- z^d`X%_R`F^MBluj-kM)Eg{%CAro`JoO^GdDq32}6BLeS}1(x3v(r-haYJxg{_x5f_ zy9W<pQ_SRyC0CeI9BwN(WliNeRxCNgwK@-mDk8k(|8@bdO$Dc%@*2yBNTsb&+zlmK z_r=SK`@Z?R{T6+0!gCgBLknWySD^hO2zlbXSz(ytgXGuW$7K!R2-^`;r!TrvGPvxI zyr_t8y&keavw>WsT)CoI7~Jt6Nz&=$90{dhR&3v2mU~F<M0rQb1F&w4@2TA_2QnbX zk>voaZb}^TmpfvtOebnTkvpGg0D%cfXId(U&z_vJOg$`pP(qe9x#mXcJ#3<(YaA!u z5wbdYYOy5P_Repkt(pJP!Xz-ND-!q3J6!4GS{nUq-94%f|4|KeGZwjb;82!K?G-w- z-}TN%LW&dn0Ao*5g9_LMLio`Bb2OXS2~PS1aDcbdL~?<>qk-TQxaYMNq%yU+HGO1R z)M96eSR61=_gD*hJ#|Xp)y<6}r^)%;!g%)aT2v(k>Vy44cE88_+NX4zkm7lVCGULA zE@$IL;jhZPC-wF-#1IVGuG{i_1*cSXOX*^TMbY&xRREb_xJy?B7?Zrv=fknr(vvzr z?skd%Q-al)PG%0LqLVfzrFHiMh+8S1J<Q+fAk45->9qp%oV&Zb?Z_Rbv&fE+3L;Ew zyZKtD{Po)Hb3Yqhe5UJg(pgDUj4RryZr6v-PjF=OC$B<|ai<QR7e)DZD?#0Eo`Y1L zdB%e{nyC4r9r`hj1>4xivQ}>r9S1G}2Ee<oyY&qWd1wZJeA2+{PTraEtSaXaFS4P> z_Qr`}pMwOXOpfoB_e1)B$|NSFEAg6Ly#&pN=y(VwnriXqCr1qM%0syf2svjXerpem z=p(7WFvo<!%)VN++u}qnf*aYoyM<28hfkUSn=m;h^Soj^)>PtrU7(xgJ14XJu}WFR zm{;+DL&kIjdxCVbNf2~d5NO$F8$3st6dCKjO87Vuw)<=kFSv8a#MX8v_YYm=Es9M8 zL1jMyuoYq!etA8%8TwPafDewi0)IK}FDo4r>mCXE^oum|_FtA#yS6()<W&KlgSm@C zL+}DLRy%(8mhTzP!sYbV22MrRKp14lLj2PtmHxZGBJG>-?J=D>$3{RpF>!RL)U7-= z{2Yvv+QGp9dz$l@;3oId?(d(kZ;vUvm7z@0Vx~Qh(kujObKY}mTs;HU-DP{>cR?4a zXIzwjw&#E;Ru69<{ms1Y_rp?*oRT_aCH&{JIl%mkUS?&dewAO3*nXHhk++^TE@0n& z%Ht*GN)oE3P(S3g5xTRAhY(gyZ>cjYq@4wV>TcFwG)~-1Eg2ndz7tV?m9SrMb7q2d z-Z@jfK8kBXgG0FSB!$?yRuEbwy`28iFW9&ZpFlBn4xOv9pW1AWaDSU`EPXW>%OT#D zwItwsE(0WZ7BbmC))qhuA?(^TJ@`A*9z%>FcR#gU8D?|NTTRKQPw!NJc_LSPT_9n# z<P0_^{6`XUeo7H`;k1%5j=a{nqaZqq+TvU9NK2)z-W*?u4(t@0;hKGzpQqM(e{+y3 z0NFHw=P_GY!bvvPKEWwllq~Qf8I<r(RWe==uaD)vqi)f@$@{G=1iV)an_G`(;rCb7 z1hPTTaU3#I2@;wneG6t~dfV2YmO3ExeW<b!IcSq8r_`2x;+cFzK-$HAn`56K*RPL{ zjs~@vzC-Z5MfFt-_+Q((J<^rAW>IE3M`j2m<w*7AbYcRLbOjkKJwsXl%tw}v_#s(` zQTkY=gdu4kktudPu1VV$5ExQB*3hxWomlsbN|*Mc?nvK~IPzhRsUFHH0S>)`OP!AM z&zW=L2}><H>i>@<=9=@Luh3DPL{kS{OhrLsV65aP`CZVZrpVD~&4{1q^OSh+FsuC# zdrCED?ss3U)0M~H<xx0lBIc9(B~GJy3Rd4h(rn_--Qb1+Ljcz=BQz$uUbr1ikhs>l z*>qf8<RK7Lex<KC?Bt@QEe9#X#W3~}keQlxLjv*Aw>pNASi7dvjDufK>I=9&oV?Ie z!V89XHn(R4{vSo>;m-Ekg>jwQQfhBng4(q=ZPhMnk05FmCH5vQMeW)ZBQ;~kicM;7 zYKGXmcCDDn@6G!c<hpV_-{(2!KKJ?Df3Ix632BU5J4xl|NWFZ^qr$gMFkB+0St)Zk zn$@ftnx_u$h=_H4zIu9Id?;sFZmtwlmcejk$gZaVDh#|Oh-4Z5V5R|Uj(bw}=2gXo zxRk|>z<zX6ySeNn$KG3n?yU|;XYZJ~%6EpRpczEif~3FN4AKl18vz4qR}BP@UL|Sq zUmyNDmao&ZD0{4=S+7UN_ZNtm)7PknKKN4Ypf{PCz$OlW)L?&3_FuS5*)TB0yZ32K z&aVMm4HH8<J3V~Wga0GCO<xE)0Iy~4+3@H2&)tr+fcR(6N(zs);c{G>CCs%!-|}hZ zE%E;m)oi7IqTR75JXJX;^dHd?+Hc7lfuqv--u-r+rE?chD*Nuf8_s;+!h!Do^7`%~ z;oIA0J1EOkKV~g)>j-hARavMwFx;9#Xt+cVZ1}qD{-&gCPXo;X-wLZustRg6?MS)% z6acF^%&@zYHo*Y@kr>`La5;f({MNRGlekSRcT0@h>`%{0IQ6|9%Xr?DAu-BMI#Cb! z5noiY<P_z^wdgwE<nqf~{Ok-;%M#6>xQLOdP9N5bmbt!Tz==x}@FwYUOY5_GV8N=G zDVD?iY%-<b;PlG>Nf9Mw>iVM{f@g_5_hc~Y;}l0@%1HgkR)3}YR2YQ$$j3li7uWs5 zSLqB3-L^OADcz9aW-;SW$tH~ymDKzu2YY%-H)4*)X&<5UUSNrtC6om3W>k;*A)0`n zzoIzjl^b<YC0xkl-WR5Xu(}e`GO#0SIv@Z2rib!FbzWQfnQ9GzJT6PL(R|;(3)^Ht zuaN{nF`H;X?%}B4H0VwOQM6{l9K5T>yjGnl_34S7f2m)rP26Na0N#k^y&z53g;)M* z4IY+;n>!h)afH&QgYRB?7<D|};zaFg=@dKZ7n3+X?fO2+AD#Kyb^6>2mvQ!3fU7P| zHjMq1@GXpsmoH(iR#{WnZKlU!+1WoP94iL5Y-`#c#(}O7r)<;IdKVwTfK<ZrG`RQZ z&y|JHQMro}XXZnl%%S<FrZcz`+~k`UO<cuEp9DI|0{#i$3DVZO5jV}Wu9_oGXL{e^ zCaR|BaKqUUFZox&-=O~S`C5J^h2#h)Jd+^o;7?6f)>e5;IZyv162COR^6*F6e4ZGx za~Ea)Y;>ReGgM9*SK;KKF6Njw()ZJUfqoqstYdSdU~2Imua)m&gW8e{LRv3l1IAaO z!hS8Wv8JKek+(S<&_O(Gf~jjfX^XJ-*@}jUZkEKR`!0WmX(sBuvkkue7`a$l@zTPG zuYRK7ls#rJ<v#x-uJ#7VTpEw-D*^q1A766&`?(8^GO?x&)fpk<kI6++J`in$naL@e z)E^$ErV;puD|Y<M=BR*V3;9L1^()bh-&|k6xfErMc)WY9TI(wBw3t>XnJrMW6E1~G zlCkj&cyb-1k4sxiIsn|rl>Qoh#IP70gsOd-mH6vqT`<hehymlo%2mFV+@8IB4*5Mp zZ>Eunb=S}-jh?|R-!fgDDSQ;&bsyq7koxh3&W?G~)vm3vP1l=xNna{aH<{?TC-^PI zzMwJLZSoC&h>!BwIULd@o-r)T-|?cq!yKA!R9^-RL7{=k=kL<_lN#W+67WIehSRPR zff}<`>E~&WPaXEOat;lDHZ?Tne0<KE#4UY|o>sq+cs<N&As&Rb4zXM3Sjq#>WmEbK z<t#paZGOnCmm2WnGLx`KN|*;l$3I1uf;i!eEehs=an{FrTiZH~*394ZVBBpAyGI}1 z{+l-$U3~@~av_0fTssNPl?MJ8_vg&FJyq%W@@+Z-mr;LJiQU}+yb<ZjJ%{tA0<xx$ zF#i$Fpb|3R(@k8N(Wo)dUhe6G7RwlEfl6ApFGTdQSvbcuOhh#{jH22*>J68wTti{7 z+;YudT2{?+C#8p^Z98_jpLzZiho8q2(HWvkwb)aSHl4|9h`)Y*U@`dWx&g0t71}GW zyq@ze!Y8WT<&aEt--$&#_+x12@vw~%(~}aT?TL0mshIH`=v~_&uo;%j8ZhmTvY$y) zVx8jKBBiA#NeHmS7=f>Gq&Z}HzM9%t)PMqf#JIT#{<PIc{UbX~5Ciae!%Qw?JOV3S zBth2ya7LI^7y;kFW&LXK*Yl0={4$vTgSQ+~J6-zwz?1Y%f%FT%yA_7p7sizYfs2nq zPHZY)Kxmuol6%AmH2=~D723I>E~lJo;y@TBV6+_R`t5`OnO})Z(UWP*wF4qRfJlKQ z=y1rTU-}~N6zec?fMB7?6L~IZD?f&GW~>nMCumcVOP~L$rgo^HcWhzHC8yk2dn7yG z{fz9sQS;=lJGzz~LG^@dt2Rfcb|B@0wz|Ufxft8s&lU6idf!?@Y#d^P`6TvMXtMYx z;%i9{IhdXbISPE1nn<zFH1poYACPCj8)kZPbDm0kD)d)bSwT?4?9p;lP)E&mu9ws5 z41J!U_vS$iJfaVq)JZkyM6Al5L@S0}o6}a1`f#vYY}OEMHN<Ya=Cq*pHtggC7}QZ? zn%6tmF!4+QS9(<KgC^rfiwWPcs$z~wr0l`zLKpkbj(DjJW*#g8?yB%?XLo#vvmD&P zZ$gTgD4Gl*-f5WNGs6_CSZ_$}9r7|klT#oo49y>0Jb~i^ZH%By1>4D6*$T1IWYaq9 z`}!Q`#Nr%(p)HCqPk1_s#Nr0*r%yiuZhc7wSM~<f0&@j#G}88TS}$J|@e`ni1seCH zxrrDDy#dJ(bO~A|m9WDAIz$!0wt~hB{Ui<0-m@v4AAp)$Fj!dp^e*han2S9q9#54p z@Wr3;ORDa&>%P}|n{NQ5bD3;TT|^~Rz4J8U_rMVl^hE9sYvM8N^|V9$Y(?RkMoT2X zcdKy+ZiZkFu<#Elo*PGIEB}9pit4|i0;>1S)l;!I-N`Tvpp-790$2+r7wZ)?_>?sd z)%n&8a}4~*PzuW;`)#Q1wk8aAwRlS<xE`vGs8R1VBZNd3OgMvD5KA9^E@(tKH9Rm) zIk1x>w{*^#G6Hi+GZ*s?(-RMH&oq;4I*wD`)n_2B_+2ibv@aaRVUf?U!Fo2~*#3Vw zTfxYwGbdz^&>JSsg^c>-@*{Wpxi5wylehGO%j%k;Mob5*%YeDKK`yl(4^VAJ5`=Wm zSlb7lL#mlY7zufM^7VPwEIhNM^RaTf(`QCmb3$2LoC|;|X0ctqw2e}{r5;<`Kh5}7 zwfx4_m}r~5ec?Z%P~VWjW}ldUJt6Etx-G)W?okH<a77-=U+7WTzk>BkG@&vBUFNQV zSgv$(%`Vd<vV(3jzL}pMfJ|?#FK-;n-{MLC1t{AUVt|>>FLOI%h1jx#+H1=6bkmIy zHcu8(3>J-YFnl|E4t9S>Th@sWh*|1k-m5zIe)I27efKT-?IyE=9y5zaco#dBUVQzo zXJM&2a6Ku6ESxfW6m(T!pu0sUCmLwfP6+NeFa!Jm#<uu>YVqHy)JYR5oIEC6o`{Sg zaRzmxQskoGvLNb9J45v}vh2Hyi@;i{{f{tVSLHxdC)=Ev(YPHN3H-DHRb{eN8R)Bb zF2NBVQTq|`&n`$7&(B7GigSz-iTV)Yf$OLPro2lv$#1PR?CKl6A4yAzh|$p<Jf0qf zh|SB)zSO>)_QV^+74W+8h~jd7_2~Bq`93D7!m~_Fm7**R*{5;UwWbq)t9eYeiX?wF z@Z3`}n_8fsc~Trfvn$hHA&$F^6Kxz0PYxd|G@KN>6d!o^iD_8(`$ATdLh7IN+89lO zr7dyDsG#&F1!Hi-w}``nW@3A%3X^s?(sq|r9GOei!X`1zsE4<&W^UcZ%i~;K@4lb_ zmQwl#K>vo&1d*W$@UoYQ{B|aPtkf1q1JJFi{{L#R4u6(*1IOx}Dtlg;OR4k~+Rvw; z&o6vJ^253L#1DHM%bayk5LkxuN_vM7Nf70~+DpV5=ajC_7wpVQP1xC1qYj1~ThTb( zdPH(*bTEE5JBIGDrSGxoI(HnNe+cY%9eMpcE3fZGubRBDIamHh#b&QBol+<qzG^B7 zIA7LM9J{tG+SN-5P9^>%i1j@~gZ0&%F_rKK2fe@Usk8Gd%Q#F;bAJk1z>Z%Pd>5g3 zXsl?Ku2wgNj9I5Ct%|!FVb5?sXZjHJ7-ioQMR3eD1nGRL$HuRz6{X<z<5LB-JzNQs z%1ckFO1mMQrS!apA{b)Lzwb*3wKJZ#u|d<Bij-1hGdhd$x|R?Sp_S_=yC(7NdT}Ai zlIh3H9ut|HG<~Hg@E9G6r!*5x|D}=qo)ZID`BgzaXWS>rDugTc0wEWp?gzrPex=;U zj`)1YYg+d=Z2_YR4%Z19Uq)Trc3Vi=Jo?%aj!6<bUF1_@8v?|3=v=(n7N5C&N!i-Y z4qdIJe92$M$ncQfn9mpKO-s6IuM$+e6Y5-c`H}h0-|LxtC#r`%Bfow736Ts((<x>_ z30nl^=dYvo5=L}~P^`9@ZnSe9lbR9lgKv~Bi>8Ab^Zrd=e(9F%H^*q)xlU3J5w$;@ z$GTpEY4fQV5MG7Q6RNnSkK2i}=)JKXrna|x_{SB;+xnq%YK?VG5p4W6e5ppb$B3c( z6Q5N(L1b!15)qgln|PZJG8JJEYztWk6e-FT$Q5_Ja0aDUv?i2wD$V{W-avZ9=l~1S zmK8HLjGN`V%m?mvyM>rsC}==Of@#l%KDIR_h`@fFKQIhLmuRlezkT<jizk_XboTT0 zR+;)LP`dJ96SomtQ>W9cEo|<QlH%`**oI7kv)jnc#PdgsmJrBP90ZZLechIoZd8yq zD`@w0`_8GYk<(vaeaslYUKGT?PWHuUu&8CSWCXu}RZQfE+SK1y*EyoPm`kTF?MC5& zkoVS}qIQh~2fB|Mr?H6v`wgH3yZMjC+0y#Xsg>ChpzIct)8pKwd3EZq4pH>$vL5BZ zBcS@pN`WQ5;=)yv^7(X*oGi32Z6fy9XK;n&{P0G0#b5xVm<yG9{6K{uxPey`tjf?U zV>lHJ5x=;&X;EzbIWnoWZ0s6WpPqei(lEU48YEr(uHF4zXX12^YG9tGcs}w>wxR#Y zqxn$zy~esfpA|-sHcN+_4a08a6YyZJP5~Ajj5R5Jx<%9TKm(~jRYye~0-RFJBxNI| zq7q7Yt;8>G6J+Zn4n1bD?u$um4k@h(uDrw7_O*BSlNM(nYw97o=RH1dj?aLDTy>2K z=09cs5d2eSwlitI#vaNcEyEmM`m!IPRjDLJh4pQUikE_0l?8UR<*@8S{5D>d!8<?A zpMmC!6ubUO8SB|>9WaAEer?U9GxYVNIXSekivwBi-9>==x45X2#Zy>kg~V6KBo}Lw z1~LQYsT)BP!iBuWX-Scss*Hewa$+~cbjX|)fEbewp<%=+eU0A*;tzOkg#91-mNMa8 zn&T_9<@2^5ef)kMMAyc>0s7*to=T50lBBXCpEf!$qcJ&mnqmkG^r4o1#+pggNKti2 zK)a3I&u9J}Wt*wumX%mI_wwO5^F-NL6x=JP%$YAh-t;80GiIk%R(d*?_Tr8!X4B}y zdxzxTG!0}mIqXd>?I;tPN(V;<N`Bq|cN56do~6RoG67~qXw*HKeziLTHlxnkOMHPW zW}hwqE}s;}M0pm<M<%%ogIMV@R#v%@gye+tg=-xLZU#dqqc((#(8K{(r7xW&-!XTT zoH*MzuBpu?wQjfh!3HK;snh<BlGayZ<d1?thR3lJ7LHhr7^z4y6N>C67QXC;Kj)9@ zI?92IuaB8hqt!?#xLGdC=UfUV50Ok|vc?1tj}Pg8M6aG3YnhJL1?T&;EDZ!>rxh(s z`}XbV8{1k5_HDDFfAV~*+}-~XJ@XUX?#1YQ^<sMI()!Wo*o>?G9{oo-*Za819Ropc zpgeJxQ2<L1Hg{97xXNOn=ypEh2<BL6G`O{Pvc%O$3D$nYOeViqFjeV&z@(0!@q6#{ zKzXJ|Yfg6xEucXcw(T3;QoFePuL0NMyP)A2Uz3bVs<{GOoCV~d0=-w`s4UUqieU;o z({)1x=e9FJcq%xxYtHCpdFC@v88Z31oqqyPx0iG8vicbKVVqyk6^d6R@4d>|92jM4 z9D_Tp)h$z-@1*^3y0#cDlJIJYX)-3}p!S2V_lEG!90i#Mq3L{2)C5m`e@I*lA^rap zO>LSjpn>!G^QuMJ3iOqUV12`}@{&a@%z*@AkMKOai7GW4TQ%K4j)N;I#5V0tinP8S z|C#w(HSN;QxTElL>f@ErxiA=RrXbnKk#-$89jtHJ8q?`3Lld9Dvft1jG%?bYlJhH= zSL)XJVd^S8W<*lU#k$@H=GYOvr036fq&|(Mp5hy5aE0E^`=DEb>JPo%iflBGgYxRz zD_Uy7O2@<PloLTZs}{UVqukS<8E4ch>HLj2vf)T~Ji|D0EUNh;qV+}jF35J$%SX+6 zA#7*>oDp?V0itkxc4^$Dk+wvWrkQ-#d`MupPgE>2%^X{v8OWk!($tu?v|2GaY>`%c zW2#0t{MzQFlC5mu5&6k8vx{9-f#m2(%QR5lO(pJWHbfP;jIrruBU7Np;7T#QLoTCv zwvUN)*^chk`;UotnaxpQ1LY+im{2gkx72AiAVB2LDqIxM#uEbP*m2|=t0?=iU=P4k zx$ansT~AX5=Gw-VKo%0U@k3Xwp7P`|z;UYZF9yKOzszK;qeSHr3IW!HFRdXlF_xfz zxDoOi0Mxsl@GTgDYs;vIBquQ?OC4Ofp5hy6VCo<Eo%?gTLhZZ&7mX7>)ASFvp-bjw z-PsRivJ9}>H$Y%~U}n8vn#58?2k}gD3e*FLStdNT5hntI21z=HMmUljg2l6~2`W2l z$!>jDBE0!}N>WtxMOEFM&?dv1H`~!Z8KvFV<!SEyK7h{#Nvay()d7xJO=nue#D*wN zhEW|UaYMx~xh&I1Gka)NF!U;1sz+k0?Qk9f@-M+=Ku6v^FMBn+^6XdQ&WEBKYt|hN ziCdb*WZn6adalQ7!=*R*_MgMFp^pKrH-?k2?2Dj$B3&}a7GR*){3y;?E0S;2yiG=S z`TREV=~VJ#+iw7vG`)2rX!MIxe;IQ;V7@wv;X|MSS~zCF#+0Utc_V#YYCSrBG3kMt zYp5vIMc7Ibc_D8-Hm+|RqUCsboywvg3}G83*bBH}?Q49_W!*Qgi8r5<Mi<$ok@Q5_ zblfiwk9bI4XbN4|nF8mh3Yc1QJ-3qv_m+Vc9(%iO84XAYQ~YK#bJG9Dzf6!};D#6X z>!uH9mS;Aoy3x<tNeVLNJ8sqrs-hhQSVtU8*+&_9=)G@w<<02Nr8cT2;pt<sw-xbs z%KHx~d&j*py+szvOF5sf*64^kd0^Yp38f10DTtkY{biGKA-HSI_!9qMFZ+#^YMthT zk33TRujptDH2r;@YfcsoA3YRqU?w{|&^7CE5b3YEAEXRxeO!70&0kb~P_aG`mkGK@ zL&FJZa&m39+?)Q7sH56zL0?OD*@A675O}@7rsof^r<B#8v!y7#xG1r0YE2W<6;%a9 zlZ1az>$5RD+uH*gHMQ4H{*<X?Pt$W_%{hI{ASARYoKa=xCN=h}(A!($+-31fXtLJv z`hf*-gTODUK#43gk8D<^2N%rFb0`ba>c$PL?|m@S<WP~DmwxwlA?ltNF{aE>W=czJ z?f2dJ!8F$m-(2p-XBLZlWIjhEv`j=er)?mHQ(MGUc;aHdauHGy6<e@?oVWO#?ji|s zR~l}wj_|A8PWr^%q*eW3m2Ro1t+84r%p5qF38s4th<tvhhyR3+zec>4M};D5AQcdu zfTJ9xiIAmB^Ls|l?;$N;#`(B3NhdHw0ahAtp)AekY>TR>Al!Bee<2v#s>!1I=BA~$ zhor>!aym<N-1H?A3GMr*D-WH3T7Ukc3AIW=1}0}xf18qn4}A|R${p;+bCkV!zilQ| zIv2TWj39(Sgn78nd+x`Tj_S_Hjl<h|@bOK*ZLrQjb=o6<scrLol6#^txRQ0xxFzR3 zz^#uNn9+Xfki(l+CNOd^UD%nDJkYvS3?#a@W9%)v-ISQdnV|5=0^WFJ$W5=JTX0z6 zOfW^auW=Rf$?olq`&xHl<5Xn#lpT1uiHcX&i+DFTd+HPnXtzMZxfJwl#h<;4y`o5I zJxAEG-s{<EkZ!@#ShPu`M=P9aMr0!EAuU4UWBM6N+3-nlR|vkr0{W+TkP-}Yy$Qyg zQ|}Xqenu~d_#1#^<kWvZMqH2oO54n%bfwtXKovO|R@dI#bG-Pcp5k^ww-PM+e$oX$ zA1DsbqE#c#B<niaFVyY5!L!g+B2IQ?l6-xaM}Rsb2*uy?|JuG8K}{Q`KE@Jb5`Sd( zReWZ$Puh0brJ|A?s#?!7vTK{S5PQ}2GNX?(Gq=oFM;x8*!q~nUR}dueP}x6~bBJp) zSdq}=heUWyFH1!ELtt0AON^6eLlq`w9iAIppizIkm8pt56n4P5KcmDLx<A04cQhu) zIO3Z|!tEl)!4axa1vr#<R#i^cP0*0|o0z{5JhiuHkScrf_F%6pV7Vdr1bLG!U=Vvn z(4HS$=K*DPSxSUC5J~i;ZqkJEVi@|tv|@=tH%8iivDHWH(mq0#vmu<z5#TXN{W&X` zx2QxuWw-3!@D~NZlD{2`3So-PvVd4d-wxX!9-g6x@WfYf)8WXioFdJPhig5QuO4C# zOl1rLdXOpT)7C$NPhJ^c{XSo-Tpodsxgx-%nFfjXUai2K@<P|&G$y$ianJrqVqa{m zmM7zz?i}QG90TIgr+tHg`>2QSQWmIFa;}fS(@r1a@sKKuOP}uA$fzRwHU?7FfR3ga z)@6-wAuqV-b3;nyKO3igg`ea%8r&B_bHC9<Tx0xClSt3EY6Ko4i!C%<&#B`vO!jGy z9+JehMIkIxc#Y~<2_yeSFQ8B=VpqZ2Ve)$37@WSsc+fIZp!u|J=$RlunN85$yzmfK zvNQ<&HuA!vMN@QB%Xwjp<vdG-bGYWVa6zpwV1_d_&#}Ij$%fCxy34CDk{i00&m-gN zflNQO{EvtmwPDC0U`MD$@kf_7KAqqyRnnpjp*gi5?^oJYa}jewm+WHD!lQjr_#R_Q zqRi4>dh+~FeW$CyFEp2P1=-TJ8B6*s-9CiaJ^sfS9qrT`JHk}jCwf(JB`4=j&Ym{y zm^)a$Bi1Hsc-B?k9i)^r2BY)CjGr7`g>Vl!{PT8xGgMT9!C)uP6{R36g=4{MkV`&L z?5!3{VO;-2tEfY6P3XJzCy$65G)`Iykdx!(bptf&iCfvW7Aw`P$iJ}qvJAzQB0@YF zo7SIg&7bFdZvdw}6oc&_28<92H*zqiG@7_nj*N`Orah2&OiF%2w|W~V*LgcEu-P*0 zMAnU}<fT-hZIW3C%f4MlgVw~PUh6c&!1vZ@{cs<-JH|5yu1fc#vcHj>5@HVdW>>Sh z!r%D)`Qjlw*(N1BXCayF_WS*p60gCtN@+t^Bf_r372e_3D!0!OM3XRf`!_&~5X!g5 z57e4cY{Z$V1ElX?+|5;KRr~}!>`A2v1FVGokbl6@9l8q063ZQ(*cA>lV!gBdq9Kgp z-P@Yh)~t(i2Oi7aYw!8v+2SQFix5=tdTHTJVqq@9^s(S73p^<+6U?VKeeQjd!$CVh zw5w|K!TgGrvtkvgnwUlGvzMUpDKP^x^VgosW!~f&5o;<%af!BGe8Uw46e>u8h6)ZH z-}1v!7o+6lo;dxD@YB1)5Wga4%D))zXdmqfD7NHG?NW&lf1Zp<8{4m4cwF)4xo%@G zF=(`m#dvty_+aH!5Hu+D+=s?384RthJ-~fB+Av5Jbe;=1zqQ1FGZqq)h*U#SN>Di_ zyHYj<CQ$D9V1hTp&veK$V*D6@>C$V>ILi~_)}&F)(uX36bWsX4v!^*Az?Q^L@w)>= z3|D1O*>1ywrJ0lN)c>GqcySH+{c$*_CM134Kcej&c!^-;wPgZZqGOvlgFu9>q7*U9 zh?SE}>I~dErWlpg-(rz<NPpJj-~>&6Q)a$%+*&!jiFs#!ve;G<3e5Dzk3BJrB5FxU z!8zB{6rg#Hf`#(0e3Uk_oJ`Bwt{ty-u4wCa4x>&4v+l78^YX~~R3_+9nC+;03WQ}v zh_r&oHq8qo@{TRdgR>3<@gF{NGyC4H6Y>U@xI|<+$bIQvGu0kG9CO;qHKOzZ+ny6@ z1A+)2XK<K@^IAS?F=DJ86KF;IB>k|JzL&ikyc;<8U@5bHgxxvn3+cX3YL8aItQJ`& z{|PZ~cl{>4qDDz+9+m41CTL>tP}1R!n{z2ea#2z9?INLTMkG<inF?xKwk<DQE4I;k zxfpsWJ(y}JXK#h=`-bQxsmN;un-V_Fy2-jl2mBMh+_^q0uE|NIbOA}lS8r7<&rb-^ zdft2%5)*4^{dXJ(#J08$Pj~qU^o2_RHjl9V03Lh1Q$Oa-*|S-2+M+gRpsb%G&o@4_ zvTFo?k~A$(P<{wN$?BD@+IljN^rYS9v%d!?=ZddGNZT`szl&>$@YQ^~jNZ}Xq5H&Z za(1`9=-<M_d6iHuz>l8;;-~4~@bq(jRBLkSGO<YuBMMFKZZ(mEFMZ@FK<Yc6D0}W! zaWLFxym@lk{zSL|ggU!PNDghc#VrcJz5lO4yIT|ZRIkqOMyps18gu7d6+|fVzF=LO zJ=76@hx+bKt*aKWKnyBD{ARlpQmKFw{)Y}5aX#518}Yubr}EE@BE1}l(uTYd%g5+r z#5NF5qFw>%R3*Ge(95v0H^mDYVmic*7;t((xYgIr+j+${nAvuZ#zMTtF7{S-zum=O zHt~B({<jLL7E?Y9x;DfS0i4&$9!o~rwM<*bO9t8|0&I1uSYm&jJx7cC{1x0nWg97x z_`9SqdG1(n$Gn#~7MQM9-;7(R<p|en(<ZL)lx+A6fZec9aG$Q3TE|<d2?lIcLY;D2 zTu#ryh``%X#=XUs)O5)B;?iQp$ZqVZbnk$xnY4YDt<WNg;Wnjm5s3-honwK9{13TC zgE!}V7dC2t{eihyw7hDe!4!A>r+UDsrkWj37Lijf3uE%0OC1hUStPQRJy~<=;&Gcf zeQh40*|d7Yi%Off<&m3sbssAJ(pn|$#Hv{G=}BE?0G2xa=p#+p;rl3E&(u*ig}P)_ z09$jmZ{(etu7EJT@<pUY%WdlU+2oYE=UX(&I}ZgvYkPfFbk_Bt_?iD}Wxlw1LXaLs zJm$DuuyrVc;<4iRLhe|h*{RU|#_#2Y`abjry*$bCQ+Tb*TCIhQyX{it6I+h$Exr&z zn7hUS&tyG%9-NID>qqce3Ra<Mu@RhV1UO$Zb52g(jVV-f_MCzKDhD)%#OrHE`@81F z<w(s~?=$)MvzbL}niNch_lp$pwz!cq94TKd7G8mL(ys#OGz>6xfC|@=qrd3C?W#NI zC@*sIU66fSTjT5Zz*d4~G#OKqTjlBP0=98*=T+IfV0W>U{Sko9&z9|?(+hjLPsP(& z<G_y!H=TA#d&-lnnIw^zkn|;1fgJ2~nI4n1E3LHy8LP-9phslb;3{M((j3%jL#l)z z868EKRy{iZ+X(XnAP{O?FKfc)4wSH@``4-V*~<}Z7X0-~hA=~)+20`Yg58Vel#pkC zS|3#}?uy`&58iJkD>NNgh@-#Vs{Xq%4VH1<Gj2lKH#A18bw`s)b(BnqY?Y$hf~m|Z zuMgW?T+@U%Ji=EHmDuF-X^-V?&!Ol46sp%*^w#%f{C>>8uzO5C_{CegL?B3VeeB7O zo?m)r4p&WUx^^>xq+IZ;ov9vk*s54MZ*HOvzZ}zQohXd<p>&dXX~e@}vpiELurDXS zswJ~U*rlL_Vl_*K8yb2AI*u>YX-39qbOSY)1H}Wcon2&Phemtedgx>u7+tAq&(tPg z<qsmfj+mVEde)dgkFGqmMEP&50ao$2aKrW*3qIBCqiLH@>F!2Dp`JUI33-07UUw(o zQ+0$oTgJ=u8`=JTzIZoblk1tNvhrFd#_-%{gEwo-t_H8<mBFgi^H}vI+_}%~ldM&F zPCj^j8v5j_g;_9C9;yw^qEacXd8{@@Nw#v&f-Vv%!1MkB4HfNi@v^XX^A)LPd3~UB zY}~1(x2Np_?g$7<?w!|tZS}UnJ$hiG{*zg>*)Ce(^Y<1;%z*~%mG^J)RF$hHC&89B zx?9C_A20pnY~=&XwlqQutJsz%2JAl+D|i90jlxJK&Yq9y135tWp(&$X44nwQPdSV4 zSM=Q)W77#aNyn0|ZftUK;+yv`J^VXL&MGvPSk#=^0Y6kJOKE~{?)jGIt-x=lZc#<f zdd!tm7U)3G`SPE0MH0UhRq^&kDGI-g6Nj6>?!9*^<Rw2$qgFZVDb%Yul2grXSbE&? zOfb`#Aggo?9}ejv;L}WT;km3Z{UGa)qvA8Ibtklh`zpL?F@xjj>>ZQQ=n}o-aoH=v zFj<yPqk*5g^2QNziawIfU-uI`qWN@<>u8D?owQ*6NE|jQ6JWec==s4mQ*v|#mcaUr zOr3Z`g<r*peqd_#ac|UJHaftw%7V<O*JKClS!`xFw@Y2m2V-4v&oH^dszpjq`c))d zUW>>#B5GItdZjdubqr?GZpU)g9%*%GI2OTRdw2&WRcc+!>xC;HYF%a71=j5Z{DJ~w zLa$;i`a8k%!r@J@&3l}xw!L}e#`jOQBZqhb>;gVlf9RTaeqbr3lXS;O97lwoF`Hh5 zb;OymNOPUqhOZ6wHBuV<b3OsCE_cvOZDbcr9Nb<VZJt6o4}p#Q&do^EE@CZ7JH&a( zR-lY%pN6BScu^&$eP-|ED(53OH%9GayeLn^%QycKnKnhP8*8mEn$Mdm-yf7nH}c*| zFuM-xLe=yp$Z3-0zEXaERepSSw=f;68&v?=XK%Ou9Wr{D?|5Dk>g_P34{15VC&@Uy zEzsLk_azhzzZI;24lRui(EE+nb8&0yti4dHw<o+&Ke|^^$$yKVUExyde%h0lsH9C) zYn|lEiY`Z|LFSCR+C9}t{D1Z9k1F?b?*Lon5bf=t$=kUBKnirz_zd?MRS6$TgM4cJ z?y8q39pm!Dqi+VD<V=gitwpkiT<H0a6$Za1Y>#G&L;>P{_I9*(N^JitNXE*Ivuwnh zOggKvh-8Hs6dNpOS`y$f?^C4)N0b!_hg^0C49YlZR=VTJoizGshFg%H+0F5YN*%(T zNTNykn?XYh`BnTp0N;m^Zz05$vt^b4hNZs<7rGU(%ogZN2HQ4{KJ1?Viiy%ixXj<S zLnbNVF6OiZdk9XEV{=40R4tK7)o=ZNKPgJWeInD@#)VnIsjo`HElE&YeFu7795O&l z<wPOU_dUC{>6!AVYMavztg0usz9mYaAj^M#s=C8azSl93;Vtv{B4Q6bq@>!vxT!84 zO!$dSaO)NCq)J`gPt(B)Wc)VYn3<N4cKoE*8_p$L_jdhWS^M^;7F_5lYri<%R}MQj z@+FQvJ<E`;4?{M|<?j&KFPAzQ@$$}eLnFS5r>HSJ^WQk0(*|By?}l3fUN<O80Y*w8 zhVJtrC|QbKm(%Jl<#v-xiZ%V#@!FcOR=)j9MXMOTeysxESFS&jB$?Sd%T;gg{;ht4 z^~s?YN)R0m+DLHHPvM|D;6@<MuTsyQCTrt}2U}4qkPd~HnHr%>9ZSZ1PT$m909Mz! zE=7N_4V)GHS;O?|*l=QEg>$SodY>h))Lb=K;*#a-X9uDu*{F}%ECq=)Mp9qjt7qMV zIgQL%o@`nBJ&Dh+V3xHc<kK(V<OneYVh8N>P++m<9j?_^fECyWUM3PI5=~UCS_1!{ z1SytAbIHQsG{ukPWJ3<#F$eKnPvp`zBdf%Q5VMM1ou-168v}xW?uS>+_PsYK-EroH z9uUO0h6S(Sw=H2Myh2CDw?~Mvf&6uUey^@#RktdBWw_w*!b7Rz@leG%ZUcL&XKMO` z&>ONbEYbLOgskR#3WTTixaBC?1K-iitY2~2p3?T4)5a$JJ)<jJbOHi9zer}5;N^kT z&M8FCOrrHS9P0w7Vu!78lU1+7s?JMY^$5s9_ynh|wXQk&RP@dJkRC>ts#r~h^A|BC zu5>KYrN)ZYbdl#Tt)PcK32C!5_;ab5X!E4>(W9eTXrtV_q%!T)<dcSxUD#TXe-ZG_ z=Mj2j_mb|D32s>(v)G>e`61lTA45$0OCDq%f#^9me76~C87Upr>eOd4Aos)k1T0le z{F;l7eg<d9?0xXG>YL~nFMFC~S|A|B#zDWJcOa4c&DvXp&AO>oI2_pW9cmQyUbt3> zUfh~<BKB>sim+6A-~;-e;3)Eac>?*VUuQ0+kHfZLBV7N(9KI9kUD*ae0XkJXxkiSr zW|C45$ee*d-z(~W=VwmI5I&cS;A_~6F`Gi<AJ~=^oJ-kS3FfYci_r;8H*Rt{V%2;2 z-Wc5gtF}xKLlk2i_b8|iPSA&00Z#~!7A#=gTl4RcZNr?zU8*cA>l#85?KikBp#w=4 zyKVzQNQ{^D*IhWYYTU4NPyUoqKI4&tA_DVwW*EO2kHJ;>dVS*N*feegyRa1h&Lo$? zsW~dO4>~hM7}|vOofWHdVoEztNm!CZLapt(9H#U=lXGe&2_^o&{nUu8{4qwzHZB0h z#A~9~ZSgy?mSxnqn4|EW%|u>=U8@mp4;*(~XKRc;xFPvl@yX@T#>)39cH|;*-Awa_ zct_FNw*9N6#Or<&S1a-Wb-;WIZ0|CamnNlc7lPgh`iz=uNIThDt)}n4*HlVXM@!rJ zd0>k)HZ1Gj9>{iAv1%!jChM7_2GJ8GHEs3l=&=@DgxG+!!ITZFZK+{*5Tz^ya57TF z5#@VGm;yQ&WjnV!aStT!V9Z|;B7;)7!!CLr5{UzK!n7k6FaoVfeFID&qHFv1@+RDO zuSK#yJLF<{Z|DYVHlv7V@}~YHvT=DeTM4Vn?=Sr~@EGGEGjjr$WVJuS5oCohVK?{x zh|&Yuco+Ucb&}EqJ_-C3f{wHh-=6>iFMT>yGR&hkT&nxIw(nuu3Ax7+qLY>4{%h0R z*~$GBFkwGSnaN+c2rnhqUKPjI?*rk9BHB*4*m<L5P#hi~!8)RO@u#5m8hCxhCdwf2 zMAd_B#Og`EhbHM6d)^c)&vrb69j^e9r)cG4Ze*~s!_5mvqbiLmF%{+S4+ew&BTCg$ z+_x!;`Lv`AT^a1yB9rRRqb?|%S&rPhzCWoxNR3{FkF-F5Z2XQ~&Qv^am)>}C$RsB@ zYQu}<q)bG47h(^kY;ua)i$JsKY6)sNShl*SXsbG4yB_&R<*|K#8}XfJ7dft}PTA)G zTX!g2!&O`7A5IO4@|F5O0u<z(0EGtz8g)PTF3?CWT46AqG=O+|(9;X@%})LCPlx9G zDQe%)p;-Ar#X))eF)J%o74!A~*^X8>)D0<f7|EY|n|F8?LuF<{2#~aO7Q(?!tSKDu z-Op+Fy%oD9Ppde~1p0liZ%NeskuD&pvgTB~OVKu2M;tg$&ZYWVd*OmWtHgcFjVB$c zd6y<W$CxE?z85_L!?MI<{3rTHs1{z@_sK;U>s9F16KMW*l$!}{`{?bfHpP3J#rA1i zmzI^e?7UR8Xjx6xt%B%H<?$rrB(=rZ#D<I(N7m5xg#RB6J{n|w^tBQ6$hlto!$Ucb zmy?i>SDX{;;a0DH{z+5poGaWf6>P?<(A93nQr_YZP*ht{`|~COo)TsLR1Qx{XCD@1 zk9>=Awh<e?yJdcI2LZ2Jo=qEdNYD}$^R;Fl_3#OmVXT5!ku(X01^=S`K`tI+#W<?h zq7e|_c+tZ0B%QDIC3tu8)(qr+(p}zc(bLEn^N3L=y9tmyWsoj`9rLk6CK;#|EKM+f z>1_YmhzmVWsP9&oDWWeBU}sh5C{!xNcV6e~@L`5z%FC%AD7M_&(Mf~Lx+milKcq^a z>%3rvC`9*FKi}*Kb}vGJy5_Ns-!cd5S@ZCN4<O*epsnfy4#G;X_?h?7K1Z;_-Fb6a zkGGYRUlR%?3HKPns2Au5^9p_b?0E<Gp8iY2nA$WH`g{suN28M_mfgm({5NP%A)l|X z(?Xq{FPA7DC{>DaIm~B`#*P%zy$W4@G|&_L*!PC^GLG`)Dp}~83>CRv8hP0M8v<xq zO@QHcdZFipjHglT@cIA;#(jRb`l;m&o-H-w^i~g7<m_M6d}oP3Dt5e^2E6>$9HBB@ z_>@7mwc)qj{$qsiB+8nvC*C=*$p0}Q*IqV-O(PnOWuD@we^!7d8_3ECU=4WUDv~~r zYzE_k1|w_S@HETDc6j3k&+dJ1R2AmCi!Bj<_`3b)oZwwxoMDc4YfGE^i`@jCzE#Uj z=Nn2;8OfZLEuOMq!(m6O85iyCyzTd#tfk7g#x^#<z|$b+A`_1i`mGnsK{xWSO%Q*R z-?`e<R?{N+VeyCVW33vSGx(BUvi>w6;*p)KX-ASl5LNsybmJnvyP2R{zRD={bGc~s zyZQ+oi^K|}-%<2EC@Wrj8#8n_*jcT&9L~Ta3*W{GYs7MZ9kmcG*9|2b64!0RR3rFQ z5r7RZqf4olGGy)P2cW+ZraV*~CL#<;RAj^sp=SF`lQ_TtFfXZpX2;&n2ew&MH(kAc zVRm9?<>uQBGTtob#U(R;JPJLmSEvQT=p)Z2#!ii{YI_fmO>xDITJM`EJ&HY>B7>%j zX3ihf0Hcup)wJqD?%@oqsXG#oYD836?=fBdqsLG#hPT0S+KRRUmO%T^Y0WT(Wt31; zTeytZp65&6bbK>+!%~}CX-SXzTe|d8P%vz<sBMfJ%(w^qn0#aVFj1oF=>SXFTXYX& zmd}9rXu)9^UxbGS^r#4zAomtQimfz15dJ=OXKVsycf;xT1CWlEGO(xU2Yg<MZ#8Hz zBWPt6?IB^`c$Rhrk05*3S2?zLo|#T_x#rEuh>xVQZ1)~k%wO&StMuVd?f*u;z8}+n zZ&Cp{Pv{h(1->zNk50ajQIi!_z~;D3o1>+Zc)o{%UcHo?NzCD_V5+?efqmguV8q4> z2)5^>O92y@_Vz-Gw7fFkkj?(6CP&SbY95PrSA*WT;MxEm8hJUb+)S>aXNI_xR+A(4 zcXXR7DNL~u=4U-h#e@)20Znf^_o^bzZ678yH4JUXs>)S?g8*rUXqb8h7kzQAZbqnQ zttupS0Xu1*XriqCBN7xf(q9v-1264>Ggfmr)%76^=aq?s4Kxs~+OjQDIGyj5&YV_J zBO7HqMjge-AV~Vr=K&9HH)N9L!5B}=a?x^51Z&@u{J~$#p2?AYcmZ$21mIl8ziRcw zaMrVgW4=DFLp9g)=j;q0`8|@{WQ{c?_hIYlZJG{K+{OzNxpRqqHd@uVR6GZ;0}JeX z+S;091=`}%@OEzCmd8Uf$RZeA=t43>WNYcPF4Na!Yqt7K8c%%eQ2yZ$f7M+!tUngy ziqJAr`C5qU%;oo7YNkiogIH$MQx?8OzkU?UHPKsw+J_%A9O)f)dJ?Ig-c=(b3)IW( z`MZM}$KNvvAPYK<(F;LE-U`EfkM(<>nU7EhY)-O2d*u6^6kDiB8}wnY;n}W;ixtHe z548$S#9Y}Lb<IzNhwWzJ$!XoSeg(wth*|xKPSFeNiknRltK$RpnQqAuf&yFFbHfX{ zs||vzK_~yc+HdE(j9oDAz!mLw9JhVlDg?!{@<gBK25vLZn;OS;)&X!Cc#ghc@#*?( zx$?cHxp+e@Rfik7Tg^}IG>Hzev^KALF`ULU*z80$<F4Qo9L>c|bU<VeVUqH$`by?o z7<t6DG#uW`MkjHj)1Wb|@*h#w3S$o29Dy`ovGDTwq}fWISnP*$ao(W2mtW$O-q>%c z(EpI?H-iJ|nCj*aaF7mm6EogCpXDZ1JRNyA4JAGDp=#{Y#3+#w!n)rvWDU6xM_3<v z7@L3ZR6?puH|Wvv^kra8jaXuR*9lFZ*u~}3<3|g%!BACF52bq(`Fm2`3rvJCMp4zs zt`6^0e0KO0ULr_4er~P4?I#`4!}xVDdx_@p&DwCBh(s<&<9n5fVN)f;CWyn)_sS)6 z#?L(&w=<(|L<b+{Zt0KD3u=_Ti$wBBtCX*z#DyrLP+~^yut~Almp#R&145RtL|E~y z&*j2}grt!r$Fo-Apb@GZ9k^KB@%s8}%`k<=o6SY`rq4mW6-xhf*4|xG?r5F%n;+6Y z*Bki<?Dfd&!SX1Hg{Qw%TZ{bOV<E{RuejRxgx;^HsgM99{Ed4=+>46W-5Kz}3wz4K zlQ$j0FKD#qvEjJfywKgbbC{%a<p4m6Gtwyu5@spdZrBn(xY}AG$?$B&)|=+lrPf+Z zNzT^t`{qwwv1Oz|OLh3_@6&_4co=%ixaQaNw7L-N@1aQ*u1G;bb7QEaFPT&jB&Y&H zIs!uorW7i{?K<ZhZ<BWq3aq+oP@j!7ZiOzt*QoP1+q+yp!}%BIUs|mD{do)ZRD0Y< zltnQC-}4Tkp-}lIO~+|8afn)Bbh**ERg*zu<NkakPEXPMkEqrDAriG((*AtDM~rfQ zv`Ag4FQc|8crSsCywx|Dt9QKcwWJ_tg6n$Dl={EzUhMDxh`Ou788EY>@+IX)FC3*F z>qQ*H2pUty(tHR(^?1g}{@_;>^STh1&gMG^QZmjKnIZV%zDlO{QeGp?KkhiINUwU4 z<^jP?kWelSm7i?S!^_v#TK$qFTMFahL;*7h3QKI#?SMhvVp|bn=vuXKK4d0GGWyY4 zbA(IW9llqb%|2xmA!r4OBr(73E1S;nk6}laHV!LejE6wYU>Us*&5e?mM8!7$P|?rr zzyD1a0duMRP|?`_qwfbTHG30;l4a1&+^VhIPk5hzt(`fvN(0`g`ii*5?r$XS=$VGh zm@QyC2#XbJ^E^vxS7k%sAfYwC%Ein#Enb>#24eU5gwKi-B7)RK-c2|*eAw7B=+ox4 zi!R=1%7??w3Dl8F4G?vyD!OFv2Yyzj)9C<AQ=VjhkBdy%WD@mRhvNH2B8RfpH}%+1 zVN9zATJzXL5%XD3Ik@P#T?|r_EmBU6J!{}2-z!#UmxKs~slu3&mnX&F92=2CdSl~4 zEuM?0)p~FLb<E00`yFam)t8QR*shsrn>bo-tJR@q+faGu-`f-38`Y=1sdAsn89)yA z2{%*Sh*s}ju#CqB6`)W!%navKAR`L_eJRvF37RJ4P`Lg_l(Rja2B}}%zYx{FHYas6 z3_@=EPQ)o<N2k4pB%QxMV}k$Hexw*4bnXn_dzr+sQ!Y`o%3kT=L}GVL#7DE0GFU@Z z)i}C-V0eC2Tt{$x;|m5;Hm0&Ifd`)u(`>q$H=mt+^~e=4uVUz9W$HzBVAwycz)wZ- z6U&~6^hER?^y=$D>+8vafZ%VHM8o5)7C6U~H<db1qP(t@nDh4EQX6WrnF-gJ5xSJo zO&J=0pf_z!`YB;4@cwo5Bz8JoE8d|=(;whHe@dFlI&BG_4|NVi2lgkbCOs)qzaM{o z`f~D|kVteEsw!|(-+B9c@<CBu0~g;AgDI4%dQo(&PzM{X$`+uAPCxse%Ft$Gv{-+e z^dFH#uqCX4)KkoO=GsHU0mN;+61P;8K_EKy$bi&2c4k&G-nxd|U9aTZ^n9=|&Px*b zJ@(U+ee<VtrIQ`y@&&NJ$*TbVZ5Evhb591$pd#%2GA5}mb!sL@cX=zAfCG7obl9TN zyq^sd%5HjNPzm|m*v+}WKhEVl_?XR!5RQ>LxQLlm<<~X8FHAX1zxHcd@MvpNi8JLt zqUJj_bU8?&R{?OQ^Sz7tYdc;;vu#iGfB=NNmjH#R1JCOyJNn9hv$WMsd^yItRWfw* z=~7{hD_GzU4N>#PIU*eztTi4xqb>LMMm0j3CX+S}@}R4O`mLCW(qU#qNrcTb94wEL zR}{YC9XVBT8rmY{&>ShWD<ZdGZU-W-Q6eWsZ;9_!Na_+WuCko59%>On0`c_K0Ax_Q zvvaZ8@CabI|F@KZbV2JBLg9~qU47zI<uTGj>O6PdMsMK{p|{1oeO9^Y%^3payE<q% z&pmGrnPp`&`Jm%r2Q^?&uwoK5sz5nsv)ohW-`m`_KUj2LpD&9{I$w(zSqoL0o-s<0 zO(^7CM^=GE7(P(a^L%z?&ohaBB4`AW{p9k}I(XS%6JgP&Q(cHdoRyhuCJJ(&{`&Ep zsp?hm%XS<hh>x=?&tif7=PA!qLQaYNP4L-~yU)Z3y&$v0Rxj~;g9#^Nk#4jms~t~L z&m(|=4vo6XZOe6t<hywW!1~Be*-Ztc?^K~>66MTB60RiI`MQZHy+hmwf*E^L<#+h` zkU3vrhN<H>77@ESRnSmNR@h1YGkyc6L56f>>fSx=*Ldb35_9zKnA(O<Jn#x)bbANq zdZ7n`?7<g;Qy@+WB*8g>F&4@hvlMkwq*^95xZ<EEKLAM!8k(fd)%UmBxx)<ONs6H) zNgbO4&+WLS;bu<Bd<X9Qb{Q#Yu8Y-gyLHivw=vtjLks%G=Ptp07-9TO4pmFy{%UKs zrNlZZwbk{MJAPK-F0v_*LEO|g0#g{F5_k%tUE0;vax=B}{%Ipvu=3Rib7)GhHo8CW z`vT8AiJdaLgb1C8K`?Td5#Y$s?N}{0uI!c;o805MR{TTZQLH35$iPSuN#2E!P=?TQ zJWtq~#VH_<6I(S4Uhq%D%3jg;%_L#8L@+0>$2r8JmGZJSW<n;CQwceNxBXjv5(`it z{3$3!r_O5`Q?{y|%R4`J`&uRG^_$4&(5VJoNeHW{g+N?F?8nrNt9PyoVVHKBXC{9s zUrc!Q+`OxK5G|(jvzE>58vGkllMvcY9>m^!d2n31WZ&Y~^Y8l$cBwvTYVCFw3w6b& zV2r4l*ePSpIOo<TU+|IAK4MOD4ZMG`=5kN}*dDRY#DJ{eG_x=T+dryLjDKS&zR&uM zkkEXD4f|(!h9brT%q+?{fJ`F_hN-_?v!ZX8$8YKWv0;B*GOa1bvOTzcBi?kwq2%*N zXY(<ZOo<G~*Bx^27Br22cF+CaX*XQQF4;cc#>Tg9koq*07}4fgD#nZCG#aaoOV3B2 zft%ViW`A0ynppV8qU0e=xW1(v3S6O=&>VVge~I`qVck$&;P8n>R3QoW8+VlOGR@g? zH+hU1c_g0HNs+#l58@c?$PzjKt4UoomHqng*7+2*me8db2C4^j4dD4OesKrLMaDl2 zIlIBJKo-&EL`xd@t<hyz(Jdcr1z)z_@*mOu2Qv;wnz?6*IZM3_CCpqeZXGq``Db99 z5G^tXW2!eE#p*r#hXs?T`z^AyNAn5ugw28Li}1<!jmPKVEtY*@V)y-H8a+gzr{5K% z{m6c6dJ@OKA7gIu<j?oYLU%sF1XqO3nh47RC{)u1?#=vaja8?Q*Ls&>^I*Jt8`0)f z@{wofe)|C)yS(AqX>!FKh{P*S3<Mz+t|19I%u}xSXRbF}9Xar4`Ciu(32}Im2Nm-@ zGsiOZ9N<?^J5h?(Q?6b|Tud%{C(^FWb^A4x5s3vg_!$e8t!rHUTf^5sQw8>-6P#6a zG7kRE27b1Mb-^pz4;1y!X!q8^;evVk1e>x}wPA44hn0Hb3Nu9(IoT(GSAOy1Q<aiw z9Sn%EAr}?3RIk6{>ObE5x{BCrmDskSpvRR*-hnWIhrg>e+;mE4Ji0#?{zG-7)5Yk5 zQwb%we~1iQ@IuhXf7R)bTfj{D6E;!jd!f9wL1zEDq-n1=D8Vrvhv`3pm4oQ)DtC4J z0MB+$<+L^SDeY<(whHizQ=!H6)0LqIv#{2k_|_TMBDVBJ$QRz(83es7;)oB@ajS!3 zT7yJv*IMA&zo>nP%K_^i85|ON4%a^vWW`C;30qbxMZtWlw8xfZ&lqL|A4d@xod#V0 zk<(ctk!4u8Owy|0a<d)dDw*n>D^dK71kx}@|8coSoG9#OuK9$E2|Edto2vegqO<U7 z!f&HEh>9qPq|!=COG_(C3rIIZ8b(MrQ;;s{X3`R4(#@1^gps2e42c0FHwOIPz5l?@ zVeCBLC+@wUo!Yxr)`CXt*pd=ecSo7XhLVtIYA=cqCg7%}pL1uM?}amw&=2(_5k!t~ zVw00Nwxo5gRy|d}DWrG!C#shV4hLX4F0hL&LdKV61awBpQ6kUg<8O7bkD;#bw!Z`h z(s}D*2BV7uO7qMc1oj@>aa*{W{|!FQ+dnDQ0#<6**Vqx+ZPr#Kbt-f6qFgqzhWkoI zmKl>=#V$QsvaX-_*2N-Tfh4<cbT73g6MckvBV7CrJ6fnYNpo{TJjzz7JXxz<O+uDh zka1W!?4@OrNg?GE3*v-!k7Wu?;l86Md4Cw@SdPCvH{#&Dng-9hlvZ37Y1B%XHr}4& z7Vwz>7H3Rdu%*WA1RCA;%Y`4x{4ZstYYZ`7Zcf(nc@MaOUyD`Xq~f*I>KyN2y3CI{ zt3qzF#Y#LQYn|g#C*>qbQVseT;L8o4B1lz70}?)fVNbEbu$3E~jxB8D2KEy@I+R9) ziKH}wj<)a>0cYtHRpzRv^uPwm-c6+wQ~2C;_Hoxsj%w;R<Eq{mu>qraYVKc`+@{Tx z`NuEQf6Z%O#RcRWuE1gMlRE`NK9xNM4|lZKljJ=5iZc+w?rT!V6m=)YT@Q|ZXEyHD z4Z!z(zbRL5QuoeRWfsjxW$tVm$D3>0H_mZUKe!DYQ{Rjf;Gc54yj9%N?6a8(Y_s3l zzU0D!z05;&|9-2_c+;<<>5gOvOZDAweamX`>Zz?E`VjF2xM7Gb+muElBhSg+Sj&7+ z9oGiMDe#{Z@+ZDO<zCK_P0C2-y2m5PwssR{FJQzEet(NR<h^D8H>_B2Q%wI{`c!*% zT;i5<x6Y%jE$-<D*A=EiQi)^25vpJK>1t6^$E@k*GUem9&wdJDgODbT19;MyEt0Wi zDe33IjB^YAoEb2vJoJR`+1Pt11NXce%Va0I)45EG*|p(~Xx^0Ep9KBMSV18-&Tkgx z5$vMBoL~2cQ1KA{`J!A4^E_g>U;|ZYvRoJ?VYH@aa+=xq=A0@=u{xUlys@H6&od&J z^~d!3Yyiibw|=UtG6Hp0<1Ezxlj8KdG_RJ7SwqDR+%H<@?i;oaQ0unN|4t3Dzyx%L zqqMAS5>FoVePjHk@Cw_^VC4OCm@&G?EgcCq`<M7ZY^tjZG<iJ%aElK^>fu^%jjp>L zSG@Q9s3%bt%ZN-4n`fmYJgwqeZSajRWWv^ZsZUQv!zn@-C<laTg)=IoVl2mu$qz<$ zATq*<R&t5i{ng`gF@6M~wG_2WS1k*EWNrTZR#~RC-Q_d^a^nZs3f&^?rQ5nPesneA zK5B8)L=Xk(jZ5ZIzbwvOCL`m-W&2)^hj0X9ya!^*F{9OT!hA6c{hvQG)l$5z4)MnP z?vB+5<jk&<HL7|4-kLRlDwPJ>5W+P;IeZX<6@bIxjiTUWrw6prO%5IS$@*i|i$4;| z?&2k{bQGw`-xN$g25tm)O9pfw*--~1t-ruo`m-#SMI)mVFIR>Ys-@EJkNTQER%b1* zk1vMLI>SJ%x_yRP5@gN<v-#&$AiXDp8|ulC9)ns|0;53(JoBS{V`8_Ge-_i5b7(Xd zb`4p?9DELe2)`Ch9Ykazk)S@=04wh*X)C%05u%5AQ<>u+@YvLR->9*+R_#R#j?JUC ztF+$<{^pp_{`(Y>mT9uZ)Nm_t{1U=@Nk0k?p6~e_;)ZGJ<Z?S#5y=`!PfsPT_6+gC ze(Sa!g;>x7I&vQ0b9_0Kx;;hE_HB#=)F?}Y8J`&AbDi0|%=ZX2P&u9=pUmWQ@XVb{ z?cgt8U%b}q7yF_WB2797Vp?6|8b?+0HM$$$INT3)(Z{R}cw6=QA+~$O??y2VEz4I~ zIO%8cXM!cA;`8TW+5rD+8nn}SuzE{O&ma@8R+Tixd6kseZK5-uxlUQHY${b5<tZ;T zt`_73V3in#qtBNzWIGo{UTm@E!z-{G$Reiki_3dSNTCz8e$B|osz)CC{}GW~{c~mx zb?R4EvN8r7>omd#S6S<GHC6xGi9LQ&c(&B#_tNfZ3!}bDZJ22bd6*$a3p}{S3ONFM zZyKk$++04}Ea|@a(apX5d(-lROpzd&=y%Eui?kvYU6kInF^=VtNT0NfhR{A9b_`fg zZgH1$D@Ob#=_U(%#4Kpsi2b^81DC5M9skN91meTST_UsknBreb+?^dZd|h}C7t7Ns z@$uRn8|VAXG0oVczF=Z^{@HFWd|_I1g>YcI2_!>eq#DyK&-`zwE-h{);r$I33=A_! z+b3c;qp%7jkSyQIY%D?2%`t78L;@26Vh!;P^>y>Rsxyfb&A9s&XB0X)0E(^O^;T)W z65w`EsPJS!s}E$(1Ll_<&k+snbNGY*h{{8EZIL<@LIn@`OJvR;%`iro63RCHx9-9? z_#iiz0}>J<QhIHNjdm;<6-QKS%Bp|oa4UUTt%d0r$Z{FVI*1{#jp=dSE?|50Mndv0 zbbqWB^(<RR^{M01mFkjFq0qE@x!McKJ@n<UXKtP$#wzyNSGTRl2Y$_S<X-$69m0v- zV$pg}hO4U3#3wcW%zpjm1RdxSGUD@qmfFwYaBJ&8Qf7z7kEQ3@7lhs05Wu2uB&{Ak zLAdfIH@SvbR#=R_>`Z)NZ%eq6o>%`0NYh?IWwjW6YB@@13K98_=+W9HtxRyQJTCQp zN<wnJSCByqfT{brR@uN@J2=BD78a8K^Un^Qb^(Lb7}cPWIy{lUj{&<<1Z!z#;$Jxg zQchGYZ`Ocmca4@;m8$+cqO+ZlHSV4JkEl^6$!3Or&x1-#Rg%tc>&Y8b?dt7cE72LU z*4CN&F+bI=$+5<Cr?OD8Oqr0;Tv00{!cjJ~BzUucf;~xvZ>)FA@OetE=Gv286=KEQ zj@i1dY%k!ZbhkXV@z;MuvEY@IFNuKEdorU0oJ<^Ni+y_+AO3^@&LO^SM8sv_;xqZm z|G&Nj%)djchrBHrX4P}r@={Uy_1q!$d|aZ~q=bsr*|SiZqbtM;%oO5F``)=dJ>c=j zlQ8Qb8pACt8o6Ng?EWvZ#2m2gcTzf+kExfr_^ELLWv6c6`}3A;=QuVOu8TC<8v8`` zoZqU;3i`YHW^22ZK7Q@|)pWAU)~Ieyo#a)COgjMD=BfJ$*{!fy`n3;crj}aky=M2D zchS#L)t7qF0;OMVDtLKEgl>|XIOfD>91;du|7st+W{WAWh!HPsbx4eOY4OuxcOO8n zgMkkyA;<D`zqhBBi3VK$w8Newqih9ae&MqC7-AGP=0wYA@gU0&tD?Sq!P0M`Svaus zC}bCdXxi)xm-4EyvsRxhGf?1d=u}XSiTMFSeoEUP4{-{U$D&Y^ZUc2&>xcHMo~E$l zu3OFrQso`Y&p&4~H){c!BQi7LlebLAToW~EiMcq?Z^xxe<BNSo@E!B;%1H8!FXzQO z`gKvmR$NW~naX+tZ(0>Ku=Q+7R#Jj(P0VgYvhJ@H+Nu&UgM;&L^IaT1)|!b?J|{#u zJk~M1x|tVE-?O?%BYf(OPE!+w)nYBor+JL|n=^SEZFJxG<KkR9u_b7wBQZz@TXX#h z)4TLjrlcJSB;lT0$&EWjCdZSoiC!6{()C1e2VF|!SAEQzH@}m=oL)8_mUMNiy0~N2 zkX>J5J}P<QFOVPl_9rJsZ#R`U>7|{Gx&ZoQXSG`pek+PSQ|{LCxUn*MmR;+;Fyjwk z?0){6;LD?b#CPXWs?v<Ko}OL?LAMgdHPTsv;pMrd{f|gz3hWH(QTFwwS+N{;S;W=R zw)RUC8jnC{ng_@v2_apzQAVs@FQKq4;g=?bjoDZ4E-`IwBzqePh6!K4&%ELKkLX*A z&4WwPBqvna)3IED;`AX(uW#0(PTMFH4qLImVsq}_Txg=W6fqb07>y@L@6jKUO*8*# z2qG5qyQ$(6D1)#76D$nlAdxzTt#{@q)T?WqpbeS{0w;!X>`~#2x+Pk}g*mH-xa7cQ z)qj*VbGQf{IoppNy^bu=3gJIt?g#iNKrH<Q*m<gnLR06|@Qpy~){NOsvUuJK&4K6M z_W`_$Wu9UTG)5pqe^Zl&t^=E?zLhGx`eCP%W%m;H<Q(h4*%IoG^0j}c07?(#D{v8u zQ|A%}Z&c&Ycn$mCw&$lV;bFxsYu*PNNLe?Tze~&5q$OwT(Y9OLv#Rg=SK1{$?&b!O zfdZhwROJvLPg190aHVANRTO(OiB0FXon#H$5M@jd07~Fh*8#|h)0}zWwE4S&ob%^v z`V#uoRl_6sI7KVG@T5MP;+;i(px{yQ{9Pv-w~=}@OYrQttXX3^*WY<J#kqT<qxr`D zGV^^pEWK1T0kIDo?opLokI3(~`zLe;?0f8BWB5X=JwK`o6;~RB8)+$aoVH&N@@lK| z!gDRp0TBv2?Q>`6yaBmq%3p29VI14LUp09W4{FPFJ*!H?pK}efy|Uc}(71r8<UBwE z>ZGxZ_u?#C6A6i;tC{<o#z{~iJ535R<#ZvIRV7+vnWK=V5Rf1i0iW*yNyTT1#zTW{ zGjAvxn%GztHT~KDBXaJE(<kc8ejZm>7NS07G*7+uj^ovGAFEc#8wG)YyliCqDYtja zm;;yQWyS8TJjTbEd%IJ)EmN@2K$R#pc+P5$%oPR&Z++En+!?1`I)$GBA}8Aj?TVAr zs(FpEIaM?lbC`r_7=M7@vm8im1W}m7saPDgER1Xa7KrHoDY>~}lA}!~@8l6<CEQ3b z3eOv+d`f)tQsrICTr{7Twx;h5$e7O%`1Yh}zr^EMVXOn&QDoX~vAp*r9skC}NUTHp zyxav$FJ5;M6SDB$1mFK<JVaa0fAf!Go@e#-h(FF#!86x<GKLYG1dQ);+amICTCC<d zsL2ZjLBV4jR$Yhd=rtWIIbM%4{z|~+rF904SD;7KU4v*OAgXXN_59OAQ3d1Quc6UM zY}#gEZ7L90VZx$f(E@VGyQKkBjl|Lh{pe}%5L%XW#=lk)!h-;FWuXq8+egAZ`zNq5 zyxtBH{B8W#+E%*Yw~s-y<{nAi)VXu2>Kiet+;fSgI|@DBFFj%yk4+!UeNRVPGc29` zT*uV5eiu($6Jrxs%r+*Pc|Dz3?{S3-@1IYAN<ed)y8ToUX(8Unzr=>dyuT3tyYJF9 zI8Z?Ux-@=Rls$ZhoEVxYp%}wBQzxhEqF3i#2q57o(`&{|#vuKpKu<IroUTaP-WK&x zIzkC=c*@7>nA9%VBk07=qUW{Ul>e|Nt?rKkgAz3)2TPq+GEy>{x<M9~V22nX)kOoC z{v+z~uYL5D;;{Bn#<KK=S}7|JM!A2t(9L<wbqV=!kUjEQo7vS>8s9=Xu7VyJ7Ari< zW;ck5?oHhql};A?{>Wz#B6*2~hR<>Vc^ose2k$z9U9eaC1B~cg&W1e)rLm8^uKBs| z=jA?N1S$iDW2K}i8zlgI-O!yI7ij~?v|`ZzUvYo70T4wmzm@ic#bC>2Hgft0fi6^L zWu{7-<=HpgqA01&zje9^@%~uX)*|z5W7I=$XZzV@`6{-=pyOM$i!5yF&kI$KLQhq3 zW`xJp^@9uz%!=ZEGi)pLtuIFNz1KyBtql3LIYcDHyJXZ=Jwr++ifbDU;9m;JM3-l( zdAL(KZj@5nI<ltEVkDvdUd?Muq*Uap?OJ6qmsP$$iYC^sDfMOIO7K#E<ej4P53na^ z-ZFje`oyZ-+I*idK#hiWl8K3rrNMxQ6d^T;fs$9B=civAt?)XFmi$we4D~lreIqeG zG~OoH%oVt6iuYO44-(E==d4l^MkvGD$_PnNDd$}+{p0e6tIp3KKPH+`pA4$5!tQJ5 zq4jR6l#<=aK4Tf6naDZc?9Z5e@)O+qU#V8n3;K2#t1hnMzV@>pyeIh{LoNelF3zj_ zM@vUC&h2%V%a*rCH*HdvU?nFoHN?D6r+RE1Atpea7sZ3<P<#;3J&i>AN1yTg1ZTT* zuX1uoOXIs|PvpD1s?9B8D`p*D2>~8162+YzEf6N_te`ct)<(S3kKk7Hdhq<3=Yl_b zT}ezrRjsNoXy2U0il8Mc#+6-OH-S>FbZh0@!Z2KwkzNlEUlTnpZm?48n^u21%;1q8 zk$*J{vEpg#lydSL{QM|elUgO1#31(-`^Tva4n6}PXnnlSs<P#vy45WZFnPweqQ<K7 z&4Rf3&3;O%vh{vmX9K6-)GN^}Kf&bb=EI`*Onvs2Dj@^RjK615ybixgxQ|{ngcNwc zOT#P9Z$94j_Q9|11yK@Ob7o{OV<X00gb<#)H{&_(OSAH=J<x7xyDTB$t;K2My0O&p z-Foc(8~fNgt_yhGRnmFOCYd$7ao4sv65~npL*=!roBW=|bOdVFGzabpo4o1>3LQMX zvB!MC`d=(y+kO%_mOJB^_rD$(Y#5vt0%wcbyXFO7&<`!9bPg>_uN2On7{{M?e7mXW ze)*QAq<#`<-gd87Gyh4SO*iT$rkgw<dQ&yLritOsv#FNw-#H>^087?v`f;t+iX@^t z7l65*2r)>n^W~6$-~kxIoZzvc+Oq=a)9Ym!NIs>x)L`rBE<9%Yok;SB@#!@et5|FE zJ8B%{(a&|teWS?B-sDAOFUY-(EV!yBkm~iePAl{oMtD#@c;M1M)k>|08z5qR7ybOA z-#7TQUGqJj5Zn^oq2XUC<Ve`?oXJAt0gaH=mg1Jk5YkT<vJaM3E+0rXKtqft8E3a5 zbZNSfu%qyl7t04aLI3oo@%nJ?S+<EJ?z@3bVY_IZ<DFhD$9}V>)~4yP5##%Y3@<wL z%J?T&_Ag=kqZn>Tm9kOaO4&35aCALpI4#t~VmsX8k1!S$T8^+<J2t-Xr^&$Z#1sg+ z>XICS(sNgijsF11L&O`R`>bSI4buYrBcsQ9cP%OgC=q;?L7H8UdYJ?cp1=MECH`_w z2gzOB$AWs(Uh0>2L9{yrX&g<FI*F?+$6T?;lV5z!Ja`v$!Z`22$c-lvgYgmt{<^6b zCuBnGfjNchd0gseRY6u2o}myO$4aZgoZA2+QI#WaO|G(=qx`ukg}(1ah-K!WhdW*8 zgh|UB@gGt2n3sE%#mJPU;>Ou^=cr83{Uno+En-k0V@gjUs-=_dxLOYr)wZ?x`|`e8 z1j#d5uTWqkRu?b7XZ7muMq5K;!JJMeN+tP+!a4d9LO3kAAD`|rhJc-B@BIwaA=i(~ zE?>C>&8-61kqjdl7s>uW^U<;!wxYD-=nJ1?Ku?D%M!3)P6`H-Z+3~K(U{S3xk`1lp z`*V-t2i9+j1HR!H_d50=5z7O*9YuOYCoS84#^ub(pdR{%L){LZV3*TJxFd&-G`&n? zkL>G`v<NMwS%J&7ovQ{0<KT~GZeg&{HC$fMVC*@RdhdrOnZdAvQ`*C@;%>s|8ty~j znIEBrE1VfssvjOT*sIl(Ik4zRoC-yg<+?R{57@JvOuS3=2AF~Vh==e1fp{ee`1|+6 zj_tgrY9`r9pMmB1D;mc;bK`_QC-ew4X34)I1ucX{8}E1@GU5F8QdMO*6tiu=OIbk8 zc0<U><JZB|>g0bOnn?TT7E)?#6}-Ufi;ca`nK)z74l=gg;0{n=4QRim;gFtQQL3`` zfrgc4EUgh%FtvjQyaS>ix8b88D_G8HR{#FWyI#Pt3ON31gpA%X>LyhsgkE1<gYwrt zAj@of?;n9k&QZo!(jUtBfoDL)?~XTiey?Rvx{+X3j)PGjNd(N6r1f6H1GUAv-}0d? zf>Q5=sbJ@j#vYM{WO%n4`t8QoJ4vKGuBN)*DIsCrvEGS+hN*aAO9=EFwwhe~N7<m{ zaJam%nP9d#3SA50okU`}z#~a7hlFqI%t_+ZLwxVPuro^1I-#alXk%^avozPb`xauT zCjD_OpzcU-VbISJ@RHv<_3LN-x%&K?*@7e3IcQ?1h*9rn7k<f2(bA$DdsQHf(c1d_ zry0jCwk+agaXqW&!ECNs?m|za+<d{a3SlCh2y$rKkJl{kSd^IgWS_VoCN&1rfH;$w zW|_Es=qS3`S{T?HH;ha3Wg<jm$vRK@veoIPJ5t;j6+%IOm>L2Omek7m2MG==CXS<A zm>cFEf}wD8xP&61{)<VPMR`_<R;YrFPO3z2a;IkS44P#wd%$U0Dpii~cYnYeYIqsD z0k>zS#Y;MXgwRloqv6x|GN2#*RAVY%Dpa6=)WxLJBiNfHFxMpJ8HRV2Y_iD<zTnc* z9<245`5vpYuUlE&5*=Lua`hdJR@0+`h@Xmynt4%#Ec@+C+7hku)m6|ufODeZ1BR0x zZUISulUP-9nG+TS_oWD1eZf~#FaERDlxzZlvTg=yDeX=BTVrfgee?_>;JHz|N8}X# z?)a6miGJzjCOZBwjEq*$<!xs-(qA2bkOH0uhaOHI$~@9xdf9^K%!Ik<3z->O*T`3L zVa7MIyi60PMUuo|hm=96=QOL9U8N#J6#)(=@CpKpUi>_KQ#?*Z#d-|g@>;yW%D$RV zeRcM?5<>G(?wW^gYvWS(CmoVLlMF5t9zV^OaMgS@ag2^Qg`<!6!Xgn(|Ci(4&A|ez z<Z~@nC(G6bJ29>Kml8O5#je?xX<z;rPtJHdG;LMK=Y=Ccakp6bJ^?QiZhy@=EkPHh zlGoEBHWITGXgl0*tJhc-)i+x<O??g<Rq3o*9Mn%i(Pn7r1E<$y0T=~Ctl|0!!18aW zVv)0m&7MujH23lkFHcLIUY5{Cz&-5X#`$HW>yZ%mjN~ZDo9*a1-%5k28Qp5iItz#L zYzVJ3{{1JVSEG@W7Mr<*osVnBtgoQb?#hwfshvrFaor^}x`(gv*IDJP(UjCQ0go|4 zpfB$7dChwJ8F#c~b_qi_okoAw<`6}w^9{UtRFuWZrfbT$+|rEr1gy?5MI11sGfPrx zL`lL0ujPH|(A^#g19RsWt_L4xTLJ2M2ATy%r1<rU>}c{g`<9|%(`2g3a2=SNB1D%_ zs&-9y`T~Do4!7-ayH7|>Qa20C6OrDk4K@zl5PqV}k;u{a^trQ_DOYu$iW(veG|?KH zIU=iHwXlbl%HhdY(`i-xWcF(}%S@s@0IWHyb>6hBQExs{BBBsxYtmniP&YNZa_<NP z8Hsx4ZTqYsPS*}w*5@nR+!VsQMP~)%IDC$s$$WUC_@`2blVWtVUF6+Cw0rH{W%BKf zlBJxV8&)Flo!(y&#otwHUBXoYid9I0MQ>&YU21a0B)(mhonMP6alTLtO+_jS(YG<C z<0{eBtK(s@fu^b`pKG@X5#8o?XWXe`_XnuEebZaV(m`?fuM_Im=7Mb<X=eUc!jX-^ zT_n9y{=}&d5PMhi<CL7KQIq4VKkD*KrhFK#-<6u@1qTW#Og=7=3x21b6rVfT+@{8@ zdE>;C7xO2u*5(a!s`p$2R7I{3-&k06lNHu{FndGhE{QT*+5zQu_k$U*U@L4S(nJD4 zXKB%2j}{ci2bA{IybQSOQy!3cp}(o6eD)tvsyOM8=m@dH0NG}x(!5m5IMn6Uvrp>r zzmpb+4z$ER5>_BVY>&#&J?g=g%gZwCoc6l3g=7+aE2e-nb&ueK_C@#kvjf*{y6RbZ z@lKe+H~q0lck$7?Z^fONRw{W!=`SHV6j)gQD%;Z?6{i{@$7acL^JvotO410vZx@+` zOz=Zvt4``Q%V$x7^LHH&6K0hL2=dgsQ`;G-0v)oS41*k6O4I>sX_f^?J8RH1D+fb+ z1|{98TG(uC<50*uPqxM4jJqit2@Ow3u2Rl_3U;<Njs8a@gPGch3>ivKpedYHkylQ< z8v2xK`Rl%3AI{nz!h6`*ffbT?R{ZVls|VBURNU+Qz(p0kpz9``L)hq%!!CEaV~57v z{1zi|6ynxR<>c_4t1Z`9!BhErz{zU0q56`3PLMBMpgq8B`&!=Fzp7erpfP;PD~}-x z#ZeBlfoo&vbC`H@<%W>tTWpyzWsLqt4IqEqJ+&smTfiLnt25MtJ%=OeK1jYUWrFX$ z%=GVDS0$yy-xH6;^i-cN@<<UNI3IJ21~I_~epiWOmu&VK*Ne0sLMnfWt2+v259dd9 z_Mz)`HD^tD!WE9F@!rfyVA{85DJHyolwArtT2WeN{PC?+1!VR<98RpQH60tzGKx+u z$4Z1fQEnuEAI>&^bw$tgelH5cZne+?UoXmgly^WUcW{gYqRojoQ@4{F_oo-B%FKe^ zVyfgPRH!e+*L;aLUG*;9w4~vZ4KNZqdGx_ksAENS<58yF>H<Pp^La~i6NOJo*Yb~{ z{ycdZBliS*-hs!%z~J+P4v?jGP^w$4f9={lj@BoXdjDfb!Kds4>gpU09zU@OzKN!F zJSF*l%hPt*eolYwhk4DoOWWM1{aNjFc@~zqw|4k=>Qhszml(gYs-`#%xBkXN6m{=q zQFqg>(rc$rD+k+dvR4EhR|{Y`!mz^dwWUw@TIL!!g?9Q6P~fj*ZZiArc}|kbku^}* z+^KML_FSUCp*4NzVUN;JS_>D&?$-9W(1Uv7Ecvhumf3@=$WDK6tI@7QMSteR-&WXK zvOfyW+AfmKx%<1*tM03i0&Th%!mIohyB>r$Kd=%QT+yAyjk8Z9SJ`+rJlN#$r-o}R zGwWfZIKMQj#m~2!r2)_3JD(i!tr;J_jvhMjKpd9Fq8#C=nE3j<$dq=^U1M5k7}$Rj zc)ij&R+^s{-+gJ>t+f(576ukvewrn+%ts<O@$ZLq<fMinKg;qj_f?Wlz0KPIowB!d z{S%Ndq2l&$@4twSO?_WH`p}*v8){`eE#9*gn5MDJ9jyDh-EHD<|I{)VDhMv}OfW}j z8g+v*{v%?`6|z|2Z3>@xb20*VOD`hXX6x6}BsZFmmysQLKhhCxz<S$cHZW_SYijfD z6U`HJS_IaxJcr8GM0=MR-9yeirQxpYZxv=7mJ8L=rJpZozD0YSg7Ww+VryAZ>(T}O zxNvpjX9`~o>Qqja<PshFTRjvcmIk}TT&qydQ09ASf{z2PoxWR{o7Lt4Kd*oIkoqf3 zWPx#&ahRw62)p8XJ=>+sy;HL0c0?#s2!yZNc%A(;y@)?aow}9Y3G1sM!vgMeH&l{S zIF*=~yLZaCL3^8hecXcx`9BV(kG!%aguvU*?ZMJ9{EmFsNrl;O<!xs{Efs(hIQ)o3 zjYnH+A3ls*0iL#uO-<Fhm)-{k`$bawQJ;dvSi{Scg2y#oM`}{}k9n9=a<e|PsjZtH zxoh`m)_<W*Gm?{FmeQwow9Qn|^^wbsoBpgd3fc!@DHJZ*d9@nz{LbM!9{ZJCv&&gQ zHeZE?42RPATkFcrWx2+(E<!o(2;%+D&*|>{!;3CyI@vjEHvd~j>qZRsJDCbR_28QE zd~BhvV1B0@n8QmDWsuBYU!3wP@$$%nbcQWvrd}kN^>R*I_n9sR1?E&U3iipeI(vGc zj)(y$xw$ZO+E>?&_qJYJ+iD8u4m}>tWB0o1hb+Et!HD8^QX@i6j&1<3+7+Rv&3HlB zI&==%h<0mSnsS&Tv%UMZrBb5A%_lcpM%$8!-1hgNMB$v42h%dAF0QW5mdX2S2H^^= zRGS`lc|zRvHZ8fQ4RT;V$}i{+t6kMmvY+#7*uMeg;hrp7uJ+1mLq6B{<=wTH4hk7- zx9bk8PEWr*zgs;t>0+z%({hEhv(Yz>7v#_0@|xCa)pSqlkw`<XgTN?CO~-vkFF&wt zr~S6k?;8Ej+#`2a933iwubJPvA@BOUws)Bl|N7lqvh@-=3$Pi-G-C1aP{K{ihX3)o zgBzA0bZ<#1Zs{Zd$Bc%@?$tNx);f08pPJ1?XDSNnVxNusO(!bzNb@UP-Lk-}Zpba4 z(l0{^aYijx?EuVs{$T65V|BWHoR|HUZm+t<L{-CZVA%1Z7O^RnTRN+fl%BFLctOUF zK4p(Ft%_pM$*9*Z$XL<aS$y?H>iN-7(nsP1uiunr7wfZg?G^KyIFPyDp3Th;?}Qo1 zXysNd-Z)AZc$YV@`GG;s*5G9RXMR?5(?h}aW=i(P->CNkZy;S(1k43jjP^dQBWOYd zB{kQEJF;zl&-G4`#7~<@KGMHMdp>y04FcN#i=ZuCN$ogUyE+qJ?FTgo8{OXgh(s4~ zWYoc4PzK#}5qeH#li>=`ADP={CS!+a)+iO6!f6-=CxK1o`xjqospgugf8pq~`r-TI z)kWy4B9<qysQ`MQbv!5gY-C`SA@VqAYex|hoWn=x9dpgOwr_;nI8b6izb>i-_nVR@ zD5-A8x@B(4LGAzqc=PgFfXSSK?Kk3QGoHQDFQX*lvqd5CYl%}>w1nok-hloi=5O3K zzgf@WAu8Au<T%I0ubZN4iH+nKnS3+Hcsadkmnno)77gusMdi9N6J2eV6P$@5_hse_ zri6^U7f_PdP>qWEf(PcCsOizLj%$eT^4Y7;P?efWL+v>&`HU{%;HzRmujw7_CTBy# zY4tCD#s@CJkW|2ux(6x-+5Es<QAo$az`@zJJ!wKIl^2J2rEqT6+TyhVaY(V%$tkfT zz2C{|FZ=UW6C^*W+r-OV0xckH<D(YG#a7sHe~=cPdH)e<6f(FSt(s1gQZ+i-CLd9{ zC_63AdpEOd9aIqwOYr_`Jz;vPU~1S?x&Gb70&+O~4+d4?F5$Hb#t}kuT;rHb=iQdS z4<&ksTPDi|84Q>ryTW;haHlx)mD5H;`|#UfuI8upC<aA;ewKxEI&sMptswh!YGY}R z@=)iuXkCbG7;H8!H{+lXHt$P#`ZGt?11B2paapDhaZbGX>E<Emm}6${s%GyvWc68w zQIJWcpuajZfkPw*e|lut#FQ5+Ampn>XBU3>`T|k*=QrPL?hf{@swu#{@~zQ1?Wc0^ z(+rp(1pCOp_RmcOcbl(tO33LmRx5bIS*^+{FegMO*!6PNvhz8hH24ipZTH9=p7%3E zf|iCVtgLfU?oR_s{!Oh1o*L!xWODOqm-!1%_NA)PQ+riwew`I>KDW|ym<JeIKsb5d z8|CHoU0gfWm`8__qmBL?q8;bX5)|{ivmBBgNaq@k1YWcx)*gPVPkqO%$fhyVVSXdq zH|;F=NFC_SYaj9i_T^`Y>0Mpt|A-bP8-#P1JXF1xFC@Ac)%!<oFAH1n7uTKrlYzm! zVZ0r<3JB~@YG?*zb=uqjS1k7aPuS<MCZQCu5%%1fG`<8)2Dhb1)sma?>Dj`)O}adH zsk)KF;*nd_gTw=BWx-wt9+TrAlEC)#5~qRk_WhQ#tfGtyfFR^Vn~<UP4=}r}30e_Q zE-;~dQ85V6HT|Viz4GDL9zE+D)uH!k91Q1G^Q4A_C(h@Ov`W_*-X)$xSu5Rh1NDhk z9Sy|XabE_5&a78VUk_Y_<w1paaU6W$4i^e}-zGRfyycp$NPeZOR7_pYZ<5pV>kI$y zM9=1@VaMv`{DcucJPE6)uZain;O}oRN~Pn*Gztr1pt+D2GRBf{Ww8(V$-*`Z#;fF8 zGTsuwwQE}Ao~x;u7a7n09)47%4Iqv?hpIlhXH56lzifW(#2K1-V~TVX0_a{e7METx zSvA+gaOaM@4v`xWRc(wtau0D-cqwxLXRi+D&{`(8IxkaYHliA&p(hSXv!W`&0`-p9 z2IBFS&Yw)}yPOXehBJJ=Z!xo;ANkecjP~i5pR_7`n_oma@<fJ*Uc;bc*geroW04Gv zSagTSp{9+-%i>Oml)R<N2-&-ch<WJ>k`%C&Q*mXT?CCvPUCq#em;2cH(^x{PR6OQ> zMGfeW^{pUe#I%>CwxD#k`P23iif=H7p=<w2nljc<GOa^y{!|zr;*y0}yQYh{_==H= zhfEW5cg9jQ!2`=*eu}r|-_1SserohOfhMBfmrbgIf61V*3xS`A(WJP^%MSL3HY5u| zYx3u^%mfv4N0wXy05LV<a8SVWDH8TOXqoZvy=`>k0zF6S8P9d<#T1sDO+`yc=XWhx z#>e31_X`X=8|_EzHC1$;)d*_);-99FmrB$J#y*yElotiU5E}CtH-}k-^(DSNj3<Lf zLo8&R-_&yNu)~a3`1(=a-|_ay=j5jSL#FQnhXxt04DO4u4B@pp(;yQ&NlIWoHi)8K z+8C$F^-m2NcKY8GdoCirv@fdz$$UB6v$uvw#ie0i{Xo-%#e@Im``PWei^Cb1BFq@o zW7o=<xn!=k6Fs`dE;2x&?3yL@;crdko#D2W?8khX6^-F2V?UEJJChT0PRg>k7bb=0 zsR6K{-us4fwk>oIjh&@x@nOJokw)Wz1IUUcEFUBoGHB6%VS?&xZb%>ckBEEgJM-fm zS~;z4Qq9P|y6e7_@4R(yojn2?9*ovU8Ikwh=RxE>`DU)M@A|H4$68zFYIb#eG;`b+ zeF?;^4TYU$94`G^le&JSXn7q6Ur}a0{{4GQ1*I&Q<f(`AUa2vnd{k>ACd+Xq{g1+= z$(A$ow2lPz0`!?op-Bm-I&;Xy3hav;bR8c!8mTvH9ft&+;UPF*zKX_g>46AK^TnVe z5ABKrEm)N60W!}ZYUDv#qF4tu|AucciaWB?@Ltoko#1Lnn^I!c!jXP0SX4=PyF>kj z^?gqK;+5WD8BTIFWV$BIVBpQa1?Ds8H%Lq+f7`{iVr}$ps&0|ggMR0ddO$%MjvnGe z&?}k%r5Kx|YvtP)R|#>Iz7lIrYh-6S<O@P2Qn4I!=V*uZJ!2AGu+!V+hg;$^jZMb~ za~FuCf>4Q`wn*c#<(%4j<Ohs@9E<z4@OpDA{oilqZFYzf4%B2>plHpW`aogV3XG=& z02)Jhme8iJLhX63d~q&j-LM%sx8uznm5B9z_&bV4&5obkN@c`*5R0zv_zePPi!AN; zDpz;?47%i0vEfjJ)8io6s5WmMVinAP^tgXh`V4pdmlMxjf^V`N9vXMSN~s*P2LO$J z&53V!y^lY*l&Mn3_j|4>q!(z=XS{T8Y3agx{YSJbq~$vUPwhm3t<YW-{}H7vZNDtn zpT0KS?AQ-x@&0plFK=%>`=~^V%g&EwsNcI8(D=w1ky&(nM9^M+J)B0Z={}|R*Q&Vt zf~`g4P>z3{lHrk4r{i(U$JkFz2?NClBqbj{;lzb9CfBY|G)f+%2RbM)dL}pevk8=K z@%6HKUY@U|aa$6;WNCBjT((_xYRuPJI-5~&*~u|_(wG+34wl6xUh8ZCVzQh!5?xFL zpgU3*t4=*od`THAU)M|+yQw({Si^>RC98Q6pB<h`+T;gg=w{KW4v?Je54$H&uk6TS z8R!*DM0CMYJ$WWismJIv-^A;_)A}_dq@3X{)pW;Cql7H(=1^ZfoEu2i)X#OprHt3h zKqs^@4rlcb+?!eb)4YbUtX_vS*Jkv+T+O9Kp3wIz|3v%a+j!bwy9P0aI}TzI@VF%{ zkOsIHzL+O1z=KyGpv8b)fGd;sWg<~qaswRHYO(mg6h6Zfo((~k&cQeT5y8V8J>;N% zUFK#`bHGu(=$ZMA_S`nC?r1A&V;e6wwIpKne6D{WE~J&=5X!1GK$dXre(jR)huMX5 z^>2yxdPWx5XDUF9<P805|Fvh-7C8zd#PLn5dqXDC7nP-8SsitN!!#aRZCN{2yuIa> zUeN6pI^}G>C1u?CS3rDg#;vxqa<fY<_fhz($&T=QVf|raSy{Qszda}{0Yi+c@HEcP zq;%M+&2j$^Gd}8W9&)d_Q}5B_AYT1=5`=<TE83tn<_&JLL)ZeHU-+bbu#i;$ClB0z z9ojGRx5HynXH@mHLBU@tQMh`djE9N48D&gZ+O8LtDU&3<JV$j$XoAJMYhM1qUzSc1 z;(OqGq!jq~T5iDOiK~qZ+$at1j`Bz*U$8Oqelp<&AwC`qzYg4_e6$zF0+RhOXT>X| zC&01M#tyRsIqgS>J{(lfyyqme<FxI}xzw2Q^?Dz7hP^z#*y&|!g!Zw#+^ZXA2ht3B z+y#F3_Y%96*zKXZYU0a~Fx$luF6?H7ZXwD6a~T5Sp*tQ}1#sZyWw@g25it<)xg%-y z?as?jFw_Uee_0nb$7556n%VC-Vm6cR4j6X>PbYiy_Jg!@9IR(*^#BdUlk{sDp95<P zm&`lpQ<p<))j6e<<yx1>iCKUyhLtLERf@s{$VZ}CTSO<_S}s9%*>))bLkq6s^ZfDe z$Fs8dQ7@kd8}2J6D?BofG@S7lh#2?Lqvh=n;VoO+=eK?NYt~N1nAq&XMkO>-@s@gY z$J^8MXG5T_xOc|)pDSoHO$HCIN7}ICIjx|D5%Idm6>_;tR>`OH^R|bmn<6=BaxW$p zQ!^HDmzaXaG-c8%vq~bHQ9>*%0E(i3X<#)#PuF6G>t-|F#}pyOSkPF5(M`4|7CZ|- za!N$IKaLYn4T`44+r{(n(_Nf}=hd|F_8PE}Amd*78#ZOd5Va}$6WW~NmU?HsHq=G@ zrnJ$1hPx1POHE7vT`mG#7Q(?6(*z8(ZJucoO%*6xssD`K)l;qA%c4?ezI2PFJX|#Q zV8vGX{u>~S&fwj);(%I1p5ogMLfq5ol%liSL-Ur_RE!}~M^yY&h3v|xbFHa4GnKTx zL-~2g)@$NSm@N8y+)wsfrtF|M@yjKP)57$3NF6Hkg&3$WHEDK#em9Ef?Cy*P<aMn> zcMwSD^qx80gH!(fCC97l$-n9_SMcM&eP*db;MX=yuP>BlHHvQhl#QYi=xhfC2c<~5 zW7&Pi((kUf@b7_`FI<VgMqFO|S{l6ho2b0ws}$FlhMQtcXWVLrUUg?0;TN{!#w>Ap zM*H^IwbSe5?n9WHQwtv%I-Y!(CS~~AMIUdw8!p^D9O{PR=Nr>Zc!*`3)NOD5Vnq>V zQb84OpJb)0Q_HV7JhRjO{XZfXmg(fRq3Q2s(MtCmWwL=yT-)=;S7BDRNj$H1bO^sB z0-%oIi`)x~R>wOnAxy@_FF(o&tcw_vJ};D+&4VHKwOYR_44+1Qrzajzk-gzRT}822 z1b$z!>KqyR@iQHbMASN8%Ah+RPXomUT6?NK1R3e<Ij^n;xn1R|(q#8*P<M1Ur<y@~ z0a}zWQnY{Bpd8<>3q$#6s)`oDSB#LW8<!JZ+OX&QW6nAMThc2a;$xdfgNqk`$)<E^ zI%crzoxtkzIGUi_=K_D?UaKEVIfg4!?)h6F6k6N}2B;uHt+ujWiUgOX;tOFpS0uvd z5(kgM2LiT_{rEIHNwB(}cpI~_GitTt;SSHw2eQV$6TNG-8XTH9qwXtsXFcCxw)xpx zzTdoRZVsd#F*0&y-SgvgKj7OPd{|-ECABnvjSwr864P9B>qfZV_};dIf2iZ_oaa9= z0<)V%_;h2Q=O&$A^!+VvjN9b4O!+Vx`6&*|cer^wL8sD@cK=P>kS6V<z99r6(eW%B z5s<Wz<^4M8jfMyhM95Wcs~l;+AB?-o63}+0^v|gdboMaz_;a;@C*XdDj`xQaGM`Q| zS$t7(8Cz@GiJp7exE0&NpteR60fvMS3y7_b)AeOZk(=0PB`HN+R#+|vwEtn`7qsph zX^V|#4Q){V1<V=MA{44WVo8c37nxo2Ww+b2fh$2^kSg9OAV|%8_(g&qt$ogED&K)( zGg~y1!`(LroOB^Xq5G%xBRjfD-d?_KW}g>x$a5GZ94tMo)L1v+27#QUqaLgFZxm+o zdZZj#K$Iu9ErRo7oCRA27e`l%A(MYcbr4HxU3K)%mG7w@6C}`Iu1<B@ZmP~`!DI0z z(Ohp9>_~a`0r|NrTNh-+jD092f2k}ETS8u%+M0<N^WKMDuOA#a+QjAEP)AP3^L(3- zN+4Wk(4!w*d;xCijuh9rJ7r$o`XalPGznLAa=VZ#;P-aBy^(O(O(2AqD>UI|$&Gi+ z>pMYI<L$gGtZWi-QvnjP!KNd7M-d$AtUCf6JczVRHlz+n^43ye-6UbqRL6bS<<=Os zo;>vlZ;rKyVzm?MdonWp*jfLgt69c&5a|DqVe@3k_6Tt=%x9Mh$n8{Hfw?!To`xS^ zc$eEezDZ+;Ki~g8ViI0&FuY;wZts68xY_Wme-_;Z!2wR|uIOy>I=gTcQUrY464JWP z7L=!ZQyL=o-XB_N7JKL0!_+UT8-RQ-OQ2tKEN%D8Zi>2`mBR-shIGE_W#MSw{ccfh zq2#g9exIHu20|ctHO|#hz(`tiDOeJ|f`{!8X!6sRfQ!^=_gdSIEYsL>Dzx`^W75?k zf=s=4!>>RC*qnq>nSgTUJfGi@Xe{KuopRp9C?le^PF`kbY!ViG(AppKY)i%;x=kLw zFC_t+t?irmOs@n2t^gdlistFH>qqk@Yp0I?nAe!ZbA&Q^kDfdG1wvkCvy2ja{2{=m zHuggnqnFccD^(4)pCxdM-j&yCjFJ7F3NKP#ob)J7bz6{okDEm6W5)dEG9PWOys3U+ zoHl`Lc^pl<6JJ!(aRNFPlGb67?%+l@L2iR?#%`$Co{0lZ%1>)uQTJM&CR~q#^^GJH zlVs#F=js<8OblrZx7{9}LkYYR)g;56#zsv1D9V+$)jA>cAQzt3&&oYxb-!bt=hRx( z&?Z0fxgUG(;78p{qc#7PYTA7py2{2I0SMNV<Ba0=wG+(tE2Oqa(~%$b4pxBd;tR2x zo~TAG159JMyc<bzSm>k<6?Slw?jkcYS2zYScVKZcEotm7`!Lmm0edy7({d`O%ekR{ znM#$pf;JRTVNnbOE<sVz<FQsJ@z;vOx1|5fL#*JCEoZaC<>#S4aulqCjWSvWSDude zx~a@`U%#>;<7k6U0KqY=QkE?uz=gmKe0|+OC{O`TKmk$vV9C7#iYgvI(m3dI<M~0W zNuy+iB)HkE>~CzJvbdseTo1xh_So3OyA*;os~_!u)KlRrinv1=GzLn%fCh6NAR;>w z$NHjvze_f|#_BKzbSd<yG!qWNpTo)SK5nc=f*5IG4VEFpETbVQ;RX@sl}SPgbj2_h z#aD(RsaSaP-rDitn&-96R4QH8$L_CNDV^*12qJmD8MbGQ*^Qg076aQTBYV>~)}<Hs zVY27K^Z|2P&lXGr3YG2pw0o3H*j$=CkjXTVeE+9GjVBs0FTQ8VcjSUBdZh)y=YL1U z`ekPl%)$tY)08U)(t#BQUuh4{R;{9MPPOku=%BU)GMdr!277*`%_HmNEClRz1*RpT zthKH+0uW#@60)pQ(Ay+tPS`hQ$K6Etd8yg9o**P_`XY`@C#j+#aE#1`F_RWA=lL1% zTv1g5fOyyY#PaudS`qC8hu_cc22U@AO|7!FMcC&P)OilOuL31-J#wL&*zlU%{+@8P zCH^yofs(wzRZ&gfZXN28Jom4BlP5E(RM81;@Ez<!lYG~fI6U;yS5c(`i`y8M@M~_( zeA=g=%hWD?WaNlNZdAWCnp$1d)1xZ0mLfTaPMCvYStZ(MP^p&|Hwf<YmsrlL*#?Z_ zz;uZw!3Rr{igb$YwpK(`=yg-;Uvfe1Z^BAzw1xICez%>475}2I1u5^YSTs^rv%g3{ zsjWTKnIo9ENWVT$Sfa3D;5_jQXZs4sZwDpZa=!E1_1yGxQYVl0++yw2hu*RWOzJeX z11YJ>Z+;W=$jymWzU`3aS-NE_>J%~Ls&VQd$aqExVneZ~10K;{L*;uWHYv6f7aaM) zh9#Ji-&3kAGnb!Vdk;MLErFXV4bjAqj*4H^4@+xRaGrn|a}+oNs!kl5yE?O#QFf}R zPhPy<pVn`7B|HeKeF`M-CL7`tDiD?k>Omgc*UQL{ci3JgBu3<)6${6+QgtQ_dv0<6 z)n0!?0++xcU<`5&f<q0nnUaaPRWhznzW$v7Fe9R8C^zXyoYbBi#F)kBZG^h*J}FD; z)6Wu%ub;kAq&efg<--baCi(|I$u-0|Dv6!dprr^BK*0+0^h~1!5oaz75$GgdI3Y}? zBT~rSSIVhmRKS))LNIH9Fv)NAT{W1iwpPCg5t(cv6x(MjYaaV!e>UqRm@L4#uuT}p z8OJR>;A^=Qk9LPG3YM>@HgE*_7{3XQDESqbu-8%gob)ppn+8?^iFAxTsLk9&nr9C- zIOw)X@0udk1{7&lP5T=5`Z^zuN&k6%HtvT0XSzp#N<2EAADSSTyS!Bj5q>w81Rdg; z@GXrF>5+-OCw_AE<?;g#7LgB)nB<5GGG}HRgxX>(pQ<!;@`#dPkUMquv;geOE{*dS zV6A0sO6v%gl=Ga!AM@Y(hV(zV%3SH2B*?ku!-QZFpjc5zY<^cM5)R!3O%JX$U%|rB zg1IO2qvWYs>UM*=a}DRgN0ht&+*_7fJ3dL<`1|gE1yHEsl?e6}5l6{Nna8RbFZOOQ zAD3?7V5%B6yaMIw03=z|Vd8P%ot7lN@D?%H`PA;!!?K|1#8QacYWzvZZHvNXck8iR zU-ex{CxA`HKe2u@hvUJ;lH7oh4tIl2FCu^Ao))&o=;T_Vxf9vTkq<KY?#L9~VZ0jl z*krUE1mtQ=<dCzni~K5mR-Gh94rLhCQN-GE8C3|S%;G#w;o5^MnGOHwt0k7l>G~VL z+Ah6V{_VpI=ka)GwybL7M&y&`eaHKIkSBmb8Lt<xDJWp7<Fk<AN1FWF?>+=^J5wmr z{$<?rGvl6Q?@?aC56|~?K0H8;HGiEyAz$aV8*z*tqbKwF=$+`^2!qF&80A;@uBU%M zBu~wb8FFRS51;oPWjS+@pw8(qA3#kz2|VoMWdSIXaR=}Gqy-6mgPRIDd+)o!XM-t4 zp=fUgB<&pgx3sO<t6TXyzSRct1+Pta+u`R5hbtS^CLhfPX{u5oVnSY&ML&f}qf6VU zl|Ci0%cK+*05?a45%9q*ni#a(h!ByE#4Vtfk3rFe@VniGdQ;r=j&n#4sq~Z?@c&KI zHPX4d22qOe%}Tdzv-O^|-zYdD+S6Abw{bt9CJX5*t9vpuS*HBc1gj*kW~GV}5Q#K$ zV78m@H~NpL$v8=>_a~yasq|U8$I$Oxqmr9n*G4>PXfOUi&8$f9i)44+_62uGXAmIy zyiJov>PTI&<GLm^(f?@#s@c<;IMY-c_soxWUsmU#YPo#JTOfmw-0<)p=K21MwPw<o z+Br?G0wcAhkTTjY#JgIAbdo-d=-0b`#c!X>mZr(xm)$HjeCb2zTrFW^*_)1&qoXDJ z9=o@yi2sNdZW-D$N|JS3PQDIP{kjW=y!EUIP`3-%TsjqYZ^BgH&RTJ_H{Vg8)g+0I zJSMxK%{4|xZvHGwUEr+w^`#s5xVusMQ<bI)`26(x04Vpqa;7s4xPx;F&9N;Du<HNR z_p2GSo%fxL0mAF5!1_maweLmb5XE-tGvod=!n|^TQ3d%vq@qT@q2y3#vemh%Z^{d% zdARU4=UEQJ1b|j1ozWZBfFl5ap6Wa$Q!wWT0ag_H2sGt&*<Cw9Z+B`h3$NEz#tPKO zdgB7k^D)2gFsS{WbTu9}f;F@3FU8LN;jlPJc-2d@9A{sFPOR+h%CYBTj=t+#v&LE4 zW>+hf?JX71bP6J59wD?NH`M=1VB`HBMmhezQx3nTS<mt4JQBKZti<N8_zv*A1zi*x z$VB+k9KY|q8D*)spT~yIH5eo6a(H0-uu6&G99m5a+se369AcH$Tm^Tz!PW^rUrQE} z-l1uwD<7|NjmihaRc=KALJw>MUc5h9j9DgT;3x}8CTKA3J-i+N<sf5tu#0j_weBSM zJu+zl9qT^QJkQff>z)73K8zCl^IQLFF27R9AlLHph8&p<_oXRNyGFn&9531I5CKnn zy%&`r9>CKP&Fn$w&$9T9wJ2+m<)ugd0_bjDQlg;wzM$x9T2&J`swG<M>+l=6ec%LX zP}2{>M5AG67n}%GZ%vddo|Y5Ya)d)Z9qi8dt%MRn11I8I_dLtD$C}Q}LdV&hECbkj zQcBBeHte$hN6}gMHT8dC92G&O1nHEPmIf(B>F#Dqh-1=So1%bpcZqaMj-GUbwB+a> zj2f}{{`UJ1?!B*jKlhyHJm>vneEqXNmn*V9`3+OH$Q8e1vjdIU?UGkQ8t9R({#l@{ zgZC8^-uNRsd}>13mV0}7M&^SeU7xJJfQYiull5!w3vD@`J4}zgjMJ5FI{=DI56;eD zsFBGl@4DW8VDsmjIKC{-Uyl#lP3S=(E7Z`7q~Dp*W@8Ds)i#G`!#e<V<nmy+J>Pa* zs+T6V$$Q7NHSb_<`$vlf8+*fn`AANF`xvY?sjhACgX<P|tuDO$(khq+S+29E6Cv90 z>RfgRp@T=A2zdaBRv8ucu--9h4<y$MQFGIK&E|!1zA36)K=C-pE6039Hp}>IG;5ji z;5QB!1Is}WW17yv;n3Y0t?L2r%`zq)lD$Fn?Fsf5{f9o?*N^E5z8x9s;j?13#03t@ zo@|$?3~U_Pii;r1i&iFulC4uL)MH<NwqGmk#MW1T%(a|9w0OtX!m4$DaAm%}bo7L~ z_6qCstbb!AAjQ~i=MH|Q5N&bu_Sc}G=o{BBw{l&doqP=P*LS~)2Y7Yk1H>nc7?ffI z3~>u>q*YGsxmoYF(~{Y8#n_fgd;Y3l(@yg6x|Znt37kVek~y3k!?o&+n$=#d!Y>pw z6v_NmA2ZZcb39+?GQ4*?g8)<A__A24Z_c=UIj_sjPR}|&a$B10Eq7mYh&hCvPvtxn z(1oL#k+B`+{tHi*7r36yr)nCc7Cw{N;+sGeC7q;Sc3n)pzv0_h_P!{Z`n+=+DI4RW z6lSa!YWs{fo1?DTV%OL4^%uSxO_61#?!<q?54U2Yb`}%XYl4hils;1s()_3w;Fo>b zCAKo3Sg5?x0I$6Y!VgJRWQ&$#ae&ae<z);B@;Ze|LF#XKw}ZJF@sU0tm<U<iKi%(D z+{={tV36G)tp7bPLS=oh?qXTrClinmBR;9iua1{*{v)`jMrE~XD^bsUvQnU~WV!Iq zpb344gQX72+we>SA=_>EC71R9w4A@QFDSm@omTEwqZ$S07Hp2Zs8ckPj=T;N%Z($t z)<PP8szbg_JprEdPc4L}+`o5Z`3yH}OB|soD%J7E?1GD{W&@GM%9s><WJnX}%F@Y* zm+G<J!h>k}8$i$?YxvjnOs4nCEi-0#<9zSxFwH=U$&^^J+Gu{Y;Wtz{k`MZ6vm+sl z)gdz_7?;_vM~pC8C-TSRsJN*RLOZ;xikVf#npyJ(xUO~7<qj_&w`)7t&r~FSv7x*E zA0=<Zlr^UKuj@z7)(SXsbd9vGBW-s}jcVX*d!uD?IunT2_Ltg}wS-&wm%dFT=^`Tg zWCfl96Li$S)T#{6r6Y9h7SjLScqpfZW7_$TfZPmP`0>`H9gbuE<F=UIb8T9$CLHmg zpE0-2iJmAG@)1DxgZ9y7%Q9c9eqf;KHmp&vw`DA8xFRhe)xpWAXRAq0ANvc;X34Q) z=^v>@k1XU=lJu6B<o@V%^}}W|S!ZT?5=Sw#TZ4}qhmdJ8+xkYe$cqbHWZ^lLyuAx- z`{keqvafyXj)VR$|9(S?y{oeZQ8s)%=a3mzyhKBmD0(UUm%hwVNvMa56%wN7K_m={ z4mbc(D~>05u3rkXfWHZXKdsm#c?Cj))i;H2*q^2*4CDw4@F*?vD!(6B%!_8uBzEt` z=i=baosHmxG<~<ZO+LY@SSZN=e>C{-8eQDJ2&%|vNBesk@q^zrKHpq*0B7(stWK%f z1MUh?=QKtNtLrTCZ}4r}>UZ^DG8=?M@@EGYet<e$M35ij%Ho${p34hj@Z5era%zn( zTLWl%2Y>KnBYT%~=_e$vi#F0=Z(itpyp!Z2{*85gp;>NEU<iC++net_xA3Q0H7w`k zGn8tSlP_)}!fRy2GsEzq(ByG(!Q01p{=O;T$|13Z^r}CQnT;7E?tN~p1z}~T5ae5G zJvCavSWm?*OkXjX{K%P@w%@s9oTv8-8U`yZ>|KbaY6~_-x%ezvA(!u3cg)!8-6D#n zlkme?NF#%~sk|_;W)#IDoyN!Z`#q9Qk^1bq-viC6mHNl;zv%DZt#;#QP^GkX{cy;4 z4WRR8Yv}B6{GFfgmsUk`Z&{)<d7-9w`2B3FZJre*f8T!@Jak9>SNQWII~o4=*Bn3d zQA$&YpU|8o^|3LF3B(-YZ?GQngmDIKxKI`n=Se4FiP1yOOfq|{F4Ho|b@!a<A3(Xm zdHAWkCOuu{?WYCIgWg&t2Lw5TEyeNnBx%*EZU}G&*WaeF&CZ~gk&zJKR2)>4Pbtq7 zQpQv^Pv;sppsz+F@gD(oun0vuU($=~JavzYd-L_Vvb|P}ugrm+kWozHMPGhhe`+!X z&tiN=m;)E{+&Be_8+N8x&V~=7-DnjNd2*^~zC;sZ5wCg2+uIfgJ7Zn4G5e!P1cNn4 zj@%y54e9;LyV{4;{YMb*?RI0%%8r!kiZ4AXD?9rKP}$Me_gOyV3zD4<t(CY1A7N0q zW^sUNu3E(2MZF(nVJ&z=2}60kd4)?S{p;WUuCdixt0^^4g)>3gy9Nb_fj3F_2!ybq zKHb!!C4q`!4eejO%WC_&jJ;I-Z@Y&MY@ujvjNwfr(rJ?>|A&=+Hk$lQ`E_|8$@4=l zg@z*=_?KX#_1Y!BjbEVVjo?`?iY3m$Oc$|h)v6hkVQgT^{E|#7PwguFd}b(&Uel<6 zu|cDKv1}MDifd=q`xeZwq4yO>*@R5Sjar&UZyc2hmGLA{IfUhx`#j+Cny>E?hIGqA z>?Y&W1gg6?+JzXmg}3Lt8EEGQ(SO__j5A1H1Yo0DKz9}+bjD<4qwJ!H(xNX8lV(uP zA;96T1_8ku)3w43m*`4?prH2kNJ24t=LQJX-Gz;4v29b)&I`B}bdn(i4YRuAl${9G z@$B*Jn%BTi#oq?U=gHHc?_;5xj(a_^(wkL<Z?pWq`p~(QyjI+o;pF+<VTFEtll=$$ zvg;<K_5dWZIB{g7%$brUer-;10B~FmW}o4@!4ohafo?)2>lh7>xZeG-&i{Ei8900s z8C2?TWlXv1{|#+u(JLnZJs{zyjENl(P2YlkF`A`u3E!Ds19+Hx(uZ`WO0(t8btGR` z->@;Pfd_oeOpR2$1S_UW#-4WzT~$@a|65afp|(R0eSd-zR&2W3?&AE*YEf-Ez{mKS zeCzp;VpDoKz<iZ35@E2A@%x-W10`96oa31`yTZZrn<-1Su|kmfy^&s&tlf;NTgDgT zfo<>7Meu-#UxkF~cG%-D{W9Yr7N3_sraxIy$We*j-spZX!;^NZKO?;Irev`vc_6qa zxO;NTVv@wbx#{7R|AA8PU4x=QHcAR+l1OEo`2AmOnqp|S$nl5rUasFuBkGU8XnEvY z-nHYXaz*sIXa`5(*Kz%%4?=)|{wywSuGuXE*mI4q^S{#=J=#2ASBK;5jN++#aw6>) zfbw(W{JPy*dwb@5@iwh=2WwI`OFxY0>Rcm-mLEAAm+SB&oe)Q*$VO;fka?=!stRd_ zP*yG54~Y_9?PQ%{Ws=YP9>&Nk#!gtRa1ZE7@yRSkFG=k<#20l$4W-~7@ZIpYj5ozI zCS(xO4Sc3U!3DgMSJm^?8-tmgIx<BITt9wGB}RoFUTcChs>!0&r+$xAdMarAk_nuj zll(s`2FF}uEtfAMhDO}6alA#dufkGga<?8SCzanBpX0+~E_%|blpTyyuycP181Gt} zg!tD^RHAhfInIN7stQt|^R+ysMR4GmI50`o>XbE;r#|&n&Ai^3@XKz23lmJXqAFlf z&m`+=uIimfMVcvLo`*r{adOQt+v4-qzL+8!6B(MT7TiS4t3fCJjo%uUNrU<`1yn2S z_q9K$8)SheU;;_;yZj#Au-kyzivI{i&K1?5*p#dF&6nrI`gA;kCz3Ri$9R%+GblpU z;@x_=_a8|V<6)atw<~+3cK@&^-L51BswP+7D?6L`xkeZn8%MqInWW7MOLQtJrypuL zpcX$9i`m0NxE(>9RZ^quSrBnw4bHV3cs=~bCF1p9o6Feu<K+ahkXZYGjb9f!k`03# zC3IuDV$LL2)3HmU)+cUPQTe&NYEO$@Z6F*WX)Mqev+Y-U=UBa15tw5>Wf{54&S=id z_piBT^}(Y!fjl4eDrWh&;r8ce0B7rblGS)V{ijSG330l7^;S2K5vnp(wxCZN<uBy$ zC})6JXDYn{zt!H|VXzC`alz(ZuE=(R^5)w_hIK3u#a165g*f3!+dR0|%1Iu=R36=s zr@Bs`gnfUg<@rq_Y4qnI&ppB?=Hy^QCdtzJilUzj2REm8nOYR#E{Y++O_-Blw=(eP znzROIeFIdy@k@gi^uChUTiggvS}jbNOROMReUw%76ab98%&v^^i9syxbp5-bFG2$% zjt%VCjali%u8R51Q<k*=nXYLp0~4j|`Ioq@&GyqptA5kzlvGQV^MUD~+gWzFQJjpG z@<p9_k(}?<U}s2eK3VlB&G#;HQ{_SzG1O@9^vF3!$T|Jf4*mUc1+%N|r(rLQ4LxDw z);D>8#cb<H<0`5~=a&|o-K%;X*mQZ-Hejd>{rGcXR{N$eim9j~KUT^pu6GHfUDN$U z(#C<P%mUk0PD{&P0o9H!k3{`KL$3zCz1dRb(3Bkp0T?%ampk)JBENw+#_*ia>4k|s zp-6^TTM1w>eZW?C_`TnY-4F1%IaDVsyz$x}JOiXkBA*k$0zU^Ul<K)~T{l1D9!luT z(_DXvu;CB0kmJ6Aq%KZusit+!+?`fn^}+{_J2#gt9=A7SjB}M3%efOs3}Q1CpIeX3 zBbUag3C8)=@wQ0Beut1FYRbcdd4<Qq+TlLmUw=QX@SSxX*>Aeb!?xc|v`B0;5g1sJ z&Wnwc-O{6a^f7!l*bwp&PTS3Xf51X2kt;%G1-KM{+`2`fIBRVl>Nvat0LHN9EG#WB zKFn<A!zPelvGG~6Ra5*rNVNJ<<GrqtV(&l9nvzG`9xvGiSU9xu=DBV=pE*%vb6cz& zIJ5mx5cyX<`x!B0Ou<<io7u&!_DFy(Ydj@Uc|BC_E5IGUfaJe2$-$2Y>=Ki_y@BXB zWP!N%a^y%&jfxFvjck;vBj{(+#f^MnLAW3`Qt9LI&07cB2H9ASdmRJBV=IBvYG`Ty zP3hLG&HF=;xdu_k50|yj>JHIDbu*t7PjM;4UP5md5OwDiF0>7@5c(2)`lvE7$~o7M zB0}%zZn_8M?dA#+N$uL&_ylvJpzn7hG+cD?^%|if!0<tp?kTb_!6)4mVkSv5mij1{ zn?lx>L?Rqg8Q(CxM<Wj!qlAAU8=%?L9&+K!EhQUS10I#cKs;kTvvzLU)Z}w~m;`LG zcYtzv+>K+XU-y#mSyVl&AtJig=^}=_h_9FGHBZ+%ZW4JlUP&k_m>rt*=RW+6fpGH1 zE$8{luP${4Yr7i$qQd5{g7WsKK{nvifx$jHr3R;1&XwJ{?6G^M)_bf?rWYvpv;H;` z$NX`UH2e0NAhTto{UxGz!Uv5|(q~ao05X4C2}cbgzu@iIj@c#WLwqvk|C<oQUS6Ip zCD<hl^I)@8=_3Wh${U(tCR54h<>{v(z$EZQo_HeeFUvdU_IFMR3Lu1wni?{;ox`e8 zO!RsFo2zo6O8~K;;h<n$gnihfpYa1JIfbWq7x)QlZ=RXg!W=lFj}zr_7W(=>f)8Ic z>DGLchfDg=O8#p=(-8qL#-Z=pn%nWkA-~&1zE}Tx%lt`f<tzbsVR^%&@>Bw~X^re8 zb680-JiU(nz)_RZg@this}UbxZC2x*w$p`egDI<A{%$>ZttH&|tbk|oy1MRyghrks z5FKhm(L-f(iwmYqlCcii((9V;ko>?TIBiuaJ=&@_#viaZHlu<yrGoS=j12bu#oRjs zRV+)kt8b9Tvnv-WguS8r^B)0Y725%AJY!6ZOZNl_u_~vG#9kq)f3`+{{*s=s&MKgJ z(T$@NkJcb1>_bQAP$@Qvmn(Hl=P{m)-~C5msz?i2L=PA_-#?@mZF|YGqivV(g_iZN zd7SRm9sv>64!JiNhz>vM1=F%|s=0|%hCO<{w^kplQG8=Nz{W?a<R1_!*=-ndSnw*2 zE)=pb0sls0EofTfi-Yw9+e;rWpWVOXWcWtnF5{C798&1Vcj67D@q~3mP&?{dnThp~ zqvLEj$df}avDek~aYC){#dIDQA2>&afo*QoWV$h+V%5qhBTSr=Cb`)jY~1Q(_GaV= z1w6}H%85Z~+l4E%i#O61=cAm@e)TX^6@B`^p7JfJwYGsgbz^-xk~=mfcE`^vKhRss zmf1Wzu&<my;b$|s3b~|YLrWf2>fBE4)r|e7H#Vokk^9mS^ViOkfUi+1h%s9Qn}-2! zeiHtG9jh79B3D%qIKC*p32}&WGMCQ$%In7&uj!p-8XD!YN@+c2-a@b?nS`1!%Yy9# z`Cq!h%iYrO*io@&ymavT8t}30Lac~TaL4StWE3stKW!GknY^tgmnE8o<_D1N1Km}c zwhgr%2v1mO^M%7o2+s=ynw2e(9c+P9M&$w{!uVzuvd%D)D}k8Af?wRUi7XBdaBO4C zay%NJ_+i9LW1Ym78uiG>ZUIu{YJun%H-2gsRMwmVq$R3iDk3Q1c%iX)?us<~RGFbl zV}6CP)kh+6fdSC}2uOonc#luF%u)5q_$==}Dcw`c+R9*}v&_&(AL`<yd~Y)~hH9H; z-c1)}YG-^7ZZR38G3k&l(D1+3aBVjWQ$5u&s#t~9_P%-1<JYkY!?*ASXJdc{NUX9# zV`XP?yuYvvjqM=n(^=|x#S-9Ex~fo^O%uvx;#<+GIv3H4Kes>FMClO*wg-XKYGdc_ zMeFs#I?l+s)srz^MsoQE*h)Gcg+?A6sN@J^jMng7B`ZxE9-^ViKVIGRsrx7WdN_xE zfq@340*jCc@?UxwuCI0)JP1gMD(8tV)NrqL9vKdG^mSDXt&q`-J=fI4Ds8ky@{^d4 z&KUnkpk}|#gU#%)aJxTBk{f>^+AXM~sJ95|AFJ0+sC!7@^l?Do=(1_5G-a``JJm>r zvsl|3`^b%F%8~eq$AB~Uw@RX#YXlCk&HYN!O%Dk{!m|`b*&0-vfKq=>IZ}qXFs)Tb z@Wt8zzmq!E>4C8S2>j`NX;6{Ky@*ubiKv({8{<5JvdevWZkpLzKMwWtQ0jZ<d%u4f zJA1V>8=Ek28(QJ=%g-=?2Hjf1@VN&c!Vx1f7~pU42rK6WqxvGfru(aHvwsw<k$4F4 z!(R`cQT<2od~fO3dE;Bzi-c5F_>Tp)Fr~@`@HKc_X9|?2I~=f#Cvt=<zG7<-iK6mi zz95PPj6R}}Erwz<FgmP1z0V#rej+(dZ5f>Is!JQy0)nU9oM940e2K42v?^c7Putp* z5{Pp+aa0~&SwZu!umTKF&8OfC^bBA-K3(m2c$3NJV}!d)^{i8^wn-3dF}^>Yc3B?V zWfVFMWtg<QoA1HvBOa*RNB-fIKe{Edsu(TRsH!SPcTdIW|7>3p6;IddoL@`D*Lk2~ z@kPH}@MJO@%4QCeLTeWED>m*zY`b;Pxdh%2S1r?&u(<nyk9?D~jOOY#T6yNIO9lA- zEA%rdOxr}ZaH@ZD)cu{|Xa`|@&RmO`XA=&xa2wpuH?@}R7YK6e{TQE4aSRjXKCSwG zvGS)!_P2Y)f$4K>wvU!$DDf9!^X9ae^QOy7srf`eN=rsYUv~Er5#K!Re7$qEhvXmi zB|!4ymbnnyq8VLFh!sTJ*?Xp;?J|8kxPkY0qwLT0fY2hNg{MvA^Qe&8<L;V457%j` zwa+EW51vx{Zg%~4k=9e!jxWE*mNE7&ku=$m#Dz$M7U;Ic^`<@X>y5E-Z~JNO)o)em z-BXbxB=q)LQFRvLSRKfeFY)>|T=h|uc+Pe449t<tc79RlWHp16f$L8%K?vwb=q--Y z|6Y5?9H!ZhQ6_zNvbCHW^1#{>lYV?5_w;0isK!-uY9{+a$gq&-B)4M;Hfpr<2=<Z8 z&^T#{#FQyVtnu~9-87_E@UX$w&4^Qt_JFC3>+4!qdsBRmFUn9w@_<~Gb2(0l(GkB0 zOdUsGlcW}$_Q?4&yaRfRV_O)SGbpA%AH2i_;a=RJC>9GXET+!{Kk}HcN6H6%EMEbS z=RK#&e3+!(cl$X^SKt^lN$Ibq<J+9IOH~Z<E|zAQ%dK$kqP`ff*eLPuE8;+yTvr%W zZNsl{_9*W{-WL;-cj(Dfz2oun&gzD7kl;rSz4XVoIvOI!y;b8Jn2Kji39l0RumT6m zHdftfvGnQsOxO9TtqhfPioD1`XeJl1Q_*hcX0l1^`?4#ZP=+DCN!U^bP&eMn-N7M7 z+t=8%tDBv)Pla#ym?d0W4on=dIg)bO=9lPL$t2T+<_|(&h^s^Vcz<+|aQ&{g#`Hr^ z_-3&nsf+$D^09^$b<Ttd<In5!p1HP8;5^t2I@&x?)NBvai0h<C!H;-8b_QEZXqCjL zJa`uVeA*V@67Z>-vo~0eyzLl~rMYsPjO=*9Lc294LoZiIOdY$WMEu6C!R6ToDgfex zYqV{Gi{Y&VwMQQ+yo+wxjdn_}@WG*;Y>VH_v$i$oUAILhd_7F_QT91{kHS~a#m4km zRYC-D{L_rj+21W$WBRt@HMLwoy*kf@nC?I0-DLq8S9CgJA&IH#hGAA3@VhHT{56K# zcV=s+{<4Xi_D<NjxWt>$d&Qj9bVNsD`UB*dpWGSYs6<FCZPmGFdLjuDxfXNSv}a1s z{K5<3-Uj&)ei#^h;dS}Tb{cnq>ws-UZI>E~<XHtA9F<@Ez~<DrQ1QMBj?M2VEs!(? zEFK~(YKXG-5gD`m_Q=`-*A9yU2~n$IaLmtj*#XF_>VVCBvPrJA9`vKw)`^uQaAP4I zpRFD~xT;0(-(_09-z}R0?D!0&jv381b#j9-Y=11)TU?s9FbPYM6&P~d4qRv(uek~C z=AzWiE>d)+d)~}XQthXc5c!s4h=|CDrlC+)ZF2#MCC%AaJwJlqeLm|HK>4<4WUVa? zbH=A6=6WPJe}Xu*vWIE~fr5YD7emArvW9kMk$I_nCrWzT$|;Cm4!`cVsOv(ut8(OR zJhcw){}!?`FPw6Esx)|qYm2k4AxV=)r^Zu7pdg~6i=X1!JsHxIz)jW|sz&|S4c|m$ z;JY4Bj!xL*Uv@G!R0cm2=UBpf3g@wTrTRt2-MOvAXhNg*oxy5He&OO%k;ywOnO&jY zr-So_D|xBY^=}qS(0pdy*mgPNty-ET@QC80=sz$vZyU?Qp6B@=rOpxYUWB|0)!rl( zpAbs_Mo(Yp;lptdR%}m%y)_hNJ~8V4xrT}}q>6{umF;mf_8N7*D?-$2rH(sIWMh<6 zGf}Lad`VaHBhRPYY-0406q<!ztlR&J!ed7;gAXf)I_SI_RCP(engO@sooo6X(o~*! zwIrtPNnZH^8)bXU@Q5?PvE`QBRJ*jjBzlC<u;kbBp^rw2^c4=T%157B-NpQ<VnD>* zsLnm#tM*!|3KD&;h94kO_FLO6d$__m0$M+e;~iNx3<r=0CUhIKn=1+Nkd}b>3#U$v zGydDgRoXkuYDJ^3A-%2Xtv*7M?N3A!TR4B@Q$?Sxk+9$XEchL_XN^bga3be4%H`XN z&ueDP?k}DBfsa*uA?a8D_@oiW^P_jmIC`8f?qM+PnI3`#{o$sv2S?v>QMG$ky*f}0 zj^JY?mOBHKL&360-ec^#l~OpI)Wy^)+Uf)0bvIr<o|HV3KK44Z?Zp@23^=|6R<^k5 zfm?YU56~_@S)Zs}E6dT`Nv)5K?eXoifT%-<B(v;$vB9oJk7h>S=d^WIoC1XNXFg=x zeLPF$))hANz0R5gPSuW{N;Ty_1LcX%?RLOs9TM6dGq+bLnoR3oRnP6Z(7&r|9v~HC z4xF{6{_Ex=q$>1ko`dIeLq$$`t@n*ATH+ALF~>f4HT=%hfPjk%Q+~zMw!OvcSbr;W z^!H+aRpMj@48-L}tef2kA>9CHD$CJjF==lI&%<tw7kp}t@+rC=9*8)VEcRo6O#nbj zPxLh129)B#Y&Z6$TI(X=GXu%*<SVncdwCy}s07z;xiN#lFEo5~+)RYu;apFOfBRRK zRI@r<VgR?b2P~4@L$?90xXX^Y)Y@w%03{xmojjPeeZIP?%^9bYZ7^&bBJgD5Fkt@O zlfI+?u-8@9sw8-|OpEK~7Y9y(+`+^JnpKSGjnyU_tt~d}>54d&ncY*h`5Mn%Pp$1Z zR+Vu+=`sAdsMLG%vQgxbGvi#JbUbs}kb6~*!=2d_oEY+PR7bgo#i?&U!D_iI?}MDZ z>~(egLkthHwg*7MQ@f=~mL|^STF}bUU`>p8fHpq_vrjX<LB7Lhb2jHZa<7c-cjjhr zo|ze&m)PGZocs~!I}i6QyVQ$;HNr!|&u%Q0NHL08^jz<I)GUZtA~bIy{eWi}l`T+Y zlaQAFg)naf72bI$KHaKgcz50R(8$zb^)n6#>Cz~k8G|-Ygx;t&42LaJ9voOeUsMiu zRWF~wFR3exYab#cY-rm8(ao5SNTU(s_+ymX1U?y6hWD&mNLpuB(rV7)y(}*m(NJ}K zxDr`YEdzkwg)+DMMJ?3xi(J+nXSdQl4BL9NRY=glFIkH8&Mo^!4}_-tbXx5xJ{A7v zzOlU=T1c*a8FP9ek6+l8KE5hDgf`#BBvxb&!&}8;{Az1q4oVdJicikw3rY^Enbz>m zhkzu}=QN5<>vy#Su}r!=Gd=70oV0-VTlAB~ez4!P4N8$<(VJ5Jvj<%DDt48hHzEmG zGixvkosGt*nT3;wjLw>f_7HgdL2db!MwDsHyXf|3bi~X_pho2Qu_@q*ykUdG_c}jW z8D8fkQ1k_1gG$GTUPt950?9@5Vc7a)q+tLD30Y&*@j=W9YtylDFmm@+yo9-;cmX3_ zlMN;wg*BP|@Bu+?I2L}?GM>2<&AKkF`u64yT`&tP=)PLm9gMs5-$kB&TdcM`a?N7T zwLo&-`b*yFp?z+&4DszyDBt0{>G`c5$cyFDP!ngXZ_WG^!iZVFNftY}Q;lPj2R<ER z8ynD_$|1kHJ#i>HGYns;)0>3!;4J+VD<5z_VMgG?m$FP(fl&Cqhx-jXmvQLcwc5By zE9CobVu#}UR)|=iZoQ_qSKLq2Z#R{Cj}T8k+PzZGFdD4ZuRo)v>d$n0p!SUFo!ZIX zeCuwpAAVh#c<R(mNcUzwCl}#|^#LTAaz^xgI_1=Iqf6l6&iUd%yp$6xS8{+NwF~>E z#_;dogx5?|Y=?bmxxIXEy6Ca#@L+kx5+tUe<!kOKz0{MF4~bv=%ae2`$PXa4`987y zCb<@TKyMhu<hk(jr>84|eq*G1f<ZP0FBu}r$|oX<a$l<_aItSJvVTbG3w%-t+C)f& zD1z$B>+i$c&6pj0B=+TvN>=#wK9a6Rv%Xer<bnU63^l2{!Ll5Px71p;`?bnv2{q_m zXxUA0C>vy~=l4|bhPzx5N((*VJI}cN-17WCf>?w0n=m&9C-1~!svp^pGzoO9;``>) z`Kd^JDI5PI=t|x0CLr&r;44$ZoB3+;^WdW8BV@~Jcom<h54qnAYj0IGjV<V_%NYI~ zZ)9A8tZuXIF0tyadn7*WiFq*L&VTMds5i|G`r%|x)Wh6D?qyut;covOn>+nBCe(}+ z|HvXnr3+_}(0o8QqpAr@Rp&yf<4#3W=fiC6r_SU968`SNO<xdpgC$#r8U@eu6khEx zigMs9GGTR$bGCoi(u|!gpz3p9K(^g&`E{2}UGhkrT)A}7mrMsvIdH1@ciV}1T*u`( zY$)YOIdC80;)n5-a=S#!$a9u2Ew>j%em0a%eS2RIzq$kaG)$g|XJz4TAiu_T<)R_? ze*dW7^1T=j=EWa^z~0{LH?_g%-ET-(R~*A-Yg=J%F1|1DF$j|n|5^S_G7n||(Tc{l zpRKie#QkG7wr4`e-yM5QM+e068XSal;1MQ&Z)esgquF}F)SXD|z*n~b7oQ@b4l?(j z9eQyVI!;Tr6W+io`#62^2$9+K%Sv0OzY_h(pYta^{vV>I>E}Jqz3uoe_EFOAC(|7! z^oaxeMC9|FIUl>;k|=llp4}1IX>P`)kDe*URcaQ^__a?T;K(O0>N1NDdj2EO$O9Ss zCe*$E+I2!^JA2CA^1D9mS})1UL#&tUiwi-1VADEYlyGLekPM4G><;9#uLC^ht+vS4 zUFZ<nDBRF{x)K)PN;tY(L-b~dv(xo=9HrO6DjsPVkZ9VTa!c2b_lm8U%$)Rh)p<F( z_@<%o056H=NjAL!D46jkzjuwTvEv)y$Ev~~-%w!-&%h9YjPRSao2ppL;o@+_!w%?+ zpTfk!v-1}RtSo0@dbBlMzdscT+|xPnm?`!gUF;ty`q1DPf@Q+BKP(*`=JvbBo2Srm zp)7CBr`Hrb4|kW$OWe}N?pMZK@*e1<-95fK8od<~eBWf)z+La^Tjh_~I1?1rp^MC$ zf03rKSr_c;t3ceOM%(%@{QKETFZELYEaank;cX_lKhH1cVl$tHIX_#=MywxLWqHm0 zuv6%+5x3>66L@MA4u3OyrII$kq#=wrb_{;Nc`0dSxbOivpW|4cD=ew;;bYeG%qSj( zdx}kFYVg9t#KW0?{UJeA71?Tr>WY`A{HJ|u&-<<)Xs>#p+Bfa7EAPE&1|=0ubahWq zP`CCgtvM#m70ho_EMV`VO;yYP$gJ7CmgO13u<w_aVTQrC3(Bn3&IO)X!Mz3i=P9&B zAN9g293JOig&*sR8_yF}f+|BAj-f)X4#tZN45h2K2W=+E4)O$wt1xNT3$~^D?U<BQ zn>NUwg)`WiWhtNL6c7g!_`eeUOR<1@t1pkc>HCj_5&Xi1fB%=BGmH7V`3CYY=T?6j zifX#Q)e0Bw6~FP>(qhUb-yIa|6^v|s%+%#PJmq#}<xdr&^KYPtPX+ukXtOD$^F~uA zxE%+PbQ7~TP<3SrncS%<hEc2@y~@WQt79)C&ZA##?ePArW|6wksGoMVi`N8lHFP+d zcJC>itu@$p)y=LVxMxqR3*+AJ|GZzyB2x;SZ`-n&e6m7IA)Up|`N`)}@k%US92LL0 zj2D&IZk`Mzx|)4=J>AEl5$C47ao6h5GvZ8zltgv|0a~5P_5({X!0I7+R*T@@^z$+E zKX-FXt$CnU7GZ`xUb~*x&nc?kI+Y)$i;lVkc(?nlD-(~=8(nkygh(%p)|QK#Mu)cD ziX85#w&hmM5JNNMRF}CTv$^%AD~GG44xF^~IsMLAE=JJvYT?_B4Q-v$>;<Xy$LGS2 zWe{eUW$fRyg9JcZ;@VoG0(s_lb93<m&LZG!B>=!GkbcR)Rr~<1b_73Xr0Z3-3K83~ zOxjpe_D3A+fOI@i0oThDV~I5@ZbNKg9~Zj|m$^_-)X!JJb!qe;6()db=LeR+OvFyY z02oN$wXRTMl~XuOcK4|Zt3<n4HCsI_WE{9`)wP84m4r3grR$>QU%o34oAmSt2R*Q8 zrt>|IZXab}7W4=+ZBe?O=M#}PZoczwPW-1l{DQm+k=u0@U$UZBA=#h%J98zWN-9;E zqF5G<hZWvJaywEJsmi&>CxwDf-EP<dm2*wzmyh9&pl`dh<kgr8*;6+s{HsNkBM6Z` z)v<;)yNFLlDo)(vkg@aOc@6HYWZbwibyGy7+}{<C7_Nv)j$Samx&_;21&@TOmzTdq zYGI;3yFL%+bF7anN{r6vMi|%tmJVL8tXL`{ZeoVOCn0><+8&&vY2eqUyk9LAvQqH{ ziPp(yC4a<Nublrr-)wk|=M5CFhc|j!uDZ&Ocx4COSs``2FJR@aLKc>PH7gE}EzINI z&?sgzpREj5c8(c5B%|W2@k%tFwvrU3U;I0;W~KV-V|JP36g0`_$MG{)8w^!Q1s<Du zpf%c+t5k`(V;BJfX=)Zi6eP3&2WjlBk!$9oqH^joE`_pt_w!3v`ztc()jI8z3yCUa zT3gghT9T}M02v9bB8mOR^(n*ho=f})m#LBBC&9g~C1t}0X7lhpa3?fmTEg@?+Y-BU z+jQe2)p#JW&uP`3F(O9wQ^erLz>S({<AlW3eDI_g9-na+^`>+Q8@C3U6zupmE;g{u zpMR1C1=%OKXa?5{YZxR^*k?^AyXr?-wjXpZ)J(vqwFjQX)$3y0OYd-sVfH@qZLuqU zO0OFEM|aL91B)vTN1Z%qv&t-rZT38=r~|3^)u(Cm4wvm8Z+4g)0%b^BhIdO+RwH-Y z-6=^zqZtT)Th6KG!lm7ml5AXVP<2IxT({m(#}b&|)wap3+j`vIu_@{(HfpFVycBJd z0+p)E_S^&dJr6GE?0-E^XSd_SqWR9|HicHcZ1R4gV`H4}oLx@ij%LAY&AkI_AL;^& zfJ00dzPPc0a%)OA_<>Ea&t8GFj^4Gp@ESI0x2z@A<Np)ZGs1ambBg_ni%Eba-Ckr3 zq&M8?^Yu9(q&&{NqvNw;YRGP!j*LyFxfc7AsL~j`gtQDlF@xYsJ+`sP7M@!wyzRF3 zXtt@WpX)AWVWB)t^&AV2`)TAIYrCxX>BMv{Pj>6m@Ze|y<cC37^=__Yb?->Lh#(OL zL4Rs2cp_qZRu~4wuQ_!J<hKRQxQE@&V`&ihzbY1@pu@4MzQ(vbqc?j{kacma1Z>Wt zjRHQ<V9xJ7Ceyw)1nx~((Vd&e4*eu`YN?vb*Gl3JN)K)fSdJ-EdSj&7mWr9ehVm6h zxSGCJ6;p`yEJGuTPw`uAu>A4nOTNh^^gOI)^bFUQwLrC~9!C|xxzzQZN!LoDq6(TB zY7|8JdyxJ~0r7;Fz6xtKDm86)8?*KK`+At9p&ty|lIYSTv*(n49cqnKsAL>(4YG}Q zfdFnC52>ePH@hHY`5Um6*kPX+68%3&T>h5bX88{CmeQyh%|DMGVs{XGDfUbCyRh7} zHBcJr@s{QI%ryW?C+30Ze_J`}!<$U#b@C}=U|QrkMNf=8$98L$^Af&p2uAFWQ|AEM zx&U+VjeV^E`@&I2Z0Vka3Ou7B$^2R}T0UJjUQU*>f+l|ZvJ$H2nXXE<`ML-~es9vl zcxef-b<T>H_H4RL_f>-QW9S5e{Mv7s=eYg*XSGJ|z|PxrMt$$2$20S^!()jxC$b!y zyKbww#H`2b>b+v3TB{bTdR}NDK5svDcgNrI^e*ad*TQJTjbpp7TpTlgBJlTntHZDB zrtIYt2+~KaA!WJ=raNC})kgs$8D`{Er*e$lO4!hoPt=(|^&aIx%UgXQc@cSU+aa#C z>XiClDe9Y=M=O07XD{WXX9zIuuFv^l?oMewxo^U7sQPIZqTp0VRe0X{NEHXV`*{8> zR&D~YuybQQefDs+jV@G@1gq-T5h~{kS?zCu{-!}+p`VyHXQEkxr5l5szQ;da8r>Ob zw|L95{s__g1P2NJP@$er+C-8F;?nOstJ2hEi1Zi;Il5!HxsR{YNvAd#M5zD3kl{-b zEix|@$67I!`}LME#J{w=L5LpbmRAkXp4~L4^VQN??qrXGn*Q0t{|E+8BlDimdEX{! zbhw1vXU`BzS#w`8kYA5fS>!fV;x{JA9c(h0a?I_3oDo_}RDvjCPPVm@Wm1NUC)R*> zIccG6O&n=r<-8!Tc6lm+Eq>Eq2eWx;o@q-*5U%)wUcEfA@&%PP1U^PgEJ%e}+eN-P z*1RZ*Sz6&m_=z9XqR75Wb({821(GmRFI~XRVVG;1)bQaO{37v4)Ve4l-@rEHA*;h4 zHW*d}Vhstv_a<y@;|GVpmtOQq^NVSw%m`*?Z^GHpYUiG11Y-=}uK2@ujuWCwWu3@S zV)f{DD&+)s6)k4EYueCVlB*XP3HTD(zv)$6ev>QJ6ryI$R&Un@{7FWt`Wl=S9C5pV zI+Lh*GU$Hm0o`GqmK?4Ja<%`n6G0D9**oW@-e2w6Rd+pg;(4uE8K27Z*Vt4H_$nOB zkJZa~CN2>bAaG#8vn8;sdO8n}2S}G@7FAft6#Lx<Lb_EBuB<@jLM}@6ram1H6MN4I zuBzOq1fe{tZGO-C$@dH5^xC>oOA8@R0B6d{k37ltDY4cc)TUb>BScE(n#h!=vW4U_ zDYJuU02{2SUhZBlN<k+u_%CeWlU!b~l^me<$`NZm)jIodK22WAdH}7`N3KiJQYLBI zfmX?ltv)uiUaYrXRUO>zF6m`-HceO?Ik%cXey04|QrjtZX<_5+p3FROG)mbym<)Bd z{qi@RE1&}Ck_6l9gjF&Hv-JSoU=R~*08NLZNBP>?vfjg)L6jPhfyS$aaTo~O;QX%8 zHN_<q$?Y+@$v<CM%~M<oP)zLfq2Hx#cf9pI!SPQZ$BS26GxR)J9l3c{+TXrBQ2_n> zbtoeOqB(*O<HD_Lq}|k(CIJE^Fy3uml<Ls7i@utmhphjk&OkZI5l>>{vMi^OK%|2T zn^+dq=i#}<WT3G8+yyZihNt2!QL&@{THw3Bp+|}K1gUu1Y1h+KT@$9IRXNNORwKD- zhX*T(ah<_fd}MmG)rx)x6=)x0k`DDtJmg;n{L`ZuKMR7a%1{mDuOTe7ytt-CEi8p% z^v2ZoOsfk_)WipwW5vTCsy<*tRYD(9Z_We-05Gtc2pT^_Nopf#kOb`940cuUy9aKW zD0HP&67?cM{TC~JGQb?t%~G9oihJ^~M7eoJ%-kPrm-J9hRm}*%3U7p-OYIk_n)f-f ze<qh(SpJUysjMTWb-IivxvY7kDZ*(T$awr*x3Vsgo+))vBqwHzJ`f}#fK>|Q7Z#}C zZ8n4Kg89Tx3z;(El~|zZtM3Ui=vM&-?U-A<j2=j3Asv_#b*A@-9^;5svGxC*u?=lZ zMZCXI6Nn?nzoSYK#UUzAhBD6X<+}@ox40j-6=JE{+Qkqbt}ck*A=_RxwShIb)VDyr z%G{xx`MS7JKJnX8)-S6C_g_(buBJclUECW8++H}pMq4_U_UA+C21O{3R0^N^pImE- zGo-1cNxBjYD&<1-zceEWhGd5?Yj?~x73OMVAfMo|fmg6_x95>vB1cjq*Fs@J%o%GG z*BS@b8Lds05&Z4D5TCaF%k!Dpa!txVcDKc#qUw^itFHeDykvw-b|cqZHuUp_#qJT1 zp7q-~Q+8ZSTYfKjoJW7ZH4-1j`;F$We`;+>n%t+200v>P;~FU`;_CN$B;g(Yzh2MO z$}P*h4*?aXTJoc7tx$N<l~cZ9<E>A!nU(GEoq}u^gd^tKH`y{I3n(SHqJDq7(r5Q) zn^bxoi68dx2hx}<3SZm6(qvhRlDO9nE<^|Zsxg!?P7t~^=tlDnv5Y8EH0ia!SVA9R zh2XW@UaMAVsmE6bA<{E8^2fM$RPsM2OAl$urO1x>dETNwCUt)<3T4r~6xCK5PKL#0 zmN(n>yNcKwv8xIWDtQoBtFSj`^po}Vvl{I6oi$rTctn*CQ0eM`rEQ&;Yjq6Sy#`R% zMu<YJYeyrfmDID}$pM<?Fv0zi+c$SPzSGhwQ?Qg)gS}hdfnjp(x=bVs)t@H7)S5oV zJy#s_d9V3Jl<YTkVOPo+ZTgJm)4*+G6VPgoS^DT`#qFnYYNKf96_`TssV_XQ>t`wA zx`uXBRo#I@(v{j{g1^J#->~Zxh3wqQX^hk~MU&1;a~e}#0d%jREB0d6*u5vMUWEn| z?vy%wtG8O#ShT$seTHeGzO~%dI9P!Ga^XIo#im&#J%%-W(Lt~;3Md+XJ(M%{qg#jv zp`vTar3TYS6SuPYJ>WE+ON)rr6DpZ4C*`q8^mtPp_du*vTpI9cZkC9c8iN6zxIz{% z<NRv1rc)7sG{H>HE{K`x1YhZOH3MqP{Wb`tkp8JnLT`_oo2S@C9~12+bF{f=nb9We zITcOHm8S2FljRf<4WCABcL;10R@}tRD5n8<7OgcnbFgsj1<*Q{Qw2%71dqn`3XNBt zGcg%o$PZ3>MO}Dk$jXjbx_qp~fo4?pX_Kr|QnN1r;gQQji*>Ud425s7O>P^Xj;n=H zg8?3bA5AYrhj|L|to-n)o8jZnjoDWFj`3qsXV8@T98Y|)07V}4wuOz^!TU&)4!mqa z3J@nupr@;0pkS>jFct6`+5iGmw9Qa)#eQ~uiZE3ililqIm`~*!)^u4~UA`?|9%qqQ zDJDcb#EJOe<gokI8!V6wBG@MI(n5kSSn+-I1ntJ+W4shd;oN(sc09VN6lK{9DjYBq zJ%|+5Q6wq9-WJ{0@m7>a3MU776@$7MI^$%wX1dRL<aRycbuW+Nso?&bHX=QAZL^^$ z0!kO5^y3Mpy5~Msg;Bee2)hMo-{xD4*|~-iXTjg^*pVrqw}A^_5{lFD8Ujn<CcwOP zI)+=_ua+0Paz9fqbLF?@#8t)zo(quq4b0CAxCFdx4mEo^^zipel8E)fJm6no?m~<Y zMMRzmOthcX0TixGu8D72ka|yV1p3o#rL(*BTxj|{i?YHR0#vm4@3Jmmwu~gFOZo)a z0JLrcZ*39GMh2yPs@cvWAkYyQ<`YLVjkcaIiNn)w<O%O_fp$)n;_=mOM^myz+NOfE zepr%&R(k+gW$5q?OJzM0-01`g^4h>^>C!HkRiga=1&_q%cV1N~xOJyb<+_4$J>>s6 zh*0|x4ove_EEGO&?J?9{v-CdoK0WYmXM{Ow2n0>Gb*7>Zo32z{3w>x?16{A^xthN4 zrQVnIqzT%LH8T%IQI;<21bDe^-=<B_J?UyK_4h+aZ7vu#)`jnje&VGX?kSNyGH&wE zS{M&`pdTfb`$KdD&ar(-)5MM7+lS5_H=g@`G<oKE?TU4~Qy|5H74*!IJ6Ew)9xt<4 zqtNDOGYXYgFx=ybL?FDLB1~exG|8=@ALUENn=zGh-#Fh6bZ*o)>F4r6IR2Ma`0Vp0 zX{rFHouTauKm`P;W%C{ct3yRs3R=k@MI=VJuMlBXLYzn|M=HJ>#<siNV)v0346+6l zdpB@o+svtA?BskD5d~)_&86BHyv)JL&1;-pUso6M%K9SCGvHU&1#$Ucur+cZbCZRU zva;p;xfe&W@J#y=;0J&WM+wThM(AvX=xI+CCrxh|IcXStHGsyP)Gp`8Ej0V$2=R!e zXFKE1W7KtD>J@`c@Ov29$gMwYj7<Py(9)*m(1m;fucPvap8Z;<xoiia>!mKX>td`{ zMvrRqE}#T99-O&#$9sGoBxs-~D6Px&!|{1C{qyUZNgZtF$4pwBfRAZ<y3V2pKsory z+39h2<q;>~jQc-=rOP7+6OcoT$y)D<8Q{zc-}g00l?D)1BGZsS&`Sz0((`qqOTuK! zo}{wurlcbfSZZb$_pbHt_oSRgFwkmeZ1KDpc3fQE?dGA-Su~^C5YUo%Zj9xNMawwP zFWjTk#;>yc<Vp<gdQ)3C0Nq#+@hLgv0CH~XpZ*xSx~?{_4HhVWOLlCzQ{cx`MD&`5 z0P(g*3wYdCd#-^Wf=<u9z!$|)2&Mk^J2t*Uc!O)FSM%I^kWKn)37FHvOodqMWK_VM zV6`ST&!U+&q{2^@<`Ndwq4Dz|(7ioLGUquVQ}BEAywS~GPkI_z+0s8<sST}lr@Yo` zTbj`{7g!!F{%T+Nljpe(-j|Ido4Ux!Z;-@JK|7_ywwsyN#lN1K0Z`6!?}a=VgEMYb zSMEjK8N&O)q#^V+D<G*Kb$qGwpZV^L1D)bJgenjEx&xepf0`3{grjIgdo^r@0o$@= zA|aAK*Vq$8zVskk%=x+!RcZB}C1UdY3~wrhIYOQa_5P@S*!K>6#Tj2vTiGGEH5s<B z#6Txj<oA|;3Q2cac_$r@qu$>xm>25u#|%DsgCXNjVZ4Fjrw286S#9pVsJYJ_s|!1K zY`kjd7yfAsX@1C+g9Nc1MFS0d-&C+U^egL4VI<40@Xws5us47Y8fR`Bsr{w-70y$A z*`AzBPZIy_=6*O6Uq1+yEl3Woh;4f(OFZ3L_!z{%TbsWNs4FTeeiC`-eW`teH-Oon zJ{zS@8ZLEZ`c^g|^}CYxKZ1Jlb}yx+QwfxC)!TPOb4!7Ycjs<V{}DVv6ea;BX?6B? zV}8Ep|9aDaysTJJd6WlAWAa36mZ7f8!Se^6oeIjvKutx2qvIMpZS-!AO+e{5V6zrM z{K_|8vX6t3Z#2m-@CgirX1<BtUF1oX2iujsu==9+d0~3=tf4!bgb*zd4dYjVCmA-* zY|(vVDSb-FYV|mQ?sf=az;9yIZWRn80b6Ac#L*hygi@jVFt$;z9rOQ>Jf6mCY;?}J zl5(ZK-+R<Tz5gG9Lq2tJPLkEW2R3&oPNBS=`AYJN1=_Dfv^v@b^qj_>tN*(&Mc@Se z$u18J*R;GjbV{!?m#=7Cb9Md3n!vsoZ&73S$(1lIRQ-Phat8<Y+d4)lgENV0_vS1) zuBbm9F)%*rX8a?I|G}GC?ZipHGDajt39z)rs3J+HJFB}I?g7m}^#7g>N*anpDN$^R zP>(a$^p&rDOFXinMq;Kt0SnvJw~3~d9`#u>E=d4km`LV1HsUyUQx2V)U>RGd+C8+b zacY8h4m&D6RT`U*Nw~iV6i@KNyAfHWH{E)wDm2__Xy1|y()Y$(;~j=kYY&?{%xm4= zgl)4E^twElFV^==7l1^#9kpzbTUbntEM218l(JgSH*v#Yp?1gfs@Z^K2NyyoWTjtz z-9mJA4Ow_0NI>x0i?jZbz1gh0e3hGqbuDxzXQ-8_%7{Q+Hz2Sf<P6Zw_9=dBZZo7V z@y}|~D<ki@#yD8~(M^0>y7a5E*$|P7HuYO>h&_bb${Ao6t?pUjd9E&IJ|hHkV51{B z$d#ANSkt+QB{z?{>(Ps{r9(4ARedh(-}fbc!>{LRxkW2J^M3~pv=hlKQWCLD*R@(M z8PkmA7UDm|q~e){VBV2wT>sj0JcbR}70G3l{ysLj_$|e;)8+?PJVvOVMl84jlXDk! zw?+|__ay0>uROQEVF#(oH=j=v%<aazY-JF`m6Wok?+)VCtjhMVg5V`WvZ<ct);-q+ zD7;WnZwls+>ubJ4b?~14yx3A$D=@0G0yp#u8{1$#SllXzX2Fl(LVm!XV(8r5_+t$; z*-5QF5%W~&oJs#lH-+1!?J$sj$<!4aTq^x%vb%8MI1<OAB0GD#53>OWva#cvpnA3+ zTcIG5BU!GsKdPp}#*7h$*m%iND~-<%zgy|8OU5d}k|@Q3vu8cD8}{|Bk%h#vgJYlK z2iG1y;(^Y(j3wQ-ns~3bqbo7Doc15Vg2yZQVM&8vm@#afjd~G06o{OTxj$mT72^<) zlYBFKgyscxX)hS=8$RSGpsaEC0NAbFjQ&XvY~&e1$?Q;W{Gm4tIx``T!H_Swxp1u) zhMJ^YN&YRD%5AhlVFVptJ&nZ{w%-DFmoXHHm-&lw#%(j(fI6)QargWuHG85_MrXc7 z7eJ`gB!gB=-_)~AYO|HJE^#Duu}?Ah-NWu}?@P%Pyu=p9`}HJv+1oomg;e@0{<6!x zWwTODU~ESx?1GXSOOlee;H-Q$HMGD@`22Q<yHZ+(S8MCIC<K47YK1uSKyyEQ?5lk` z@i4?&5>E8nr!#Gu!z%DLzHv(;J+L&)#T9c?tTAoWO3Qnz#u5uWHpWAaYX{G%Q(r~> z&2~oNztp&Vk8|eydYaYfRr3R&567Tv5?`e3QV?SU@o`h7-sfSWoNIFOflub)h9RJ1 zdU>Puc5n59IJy^p)^a`!h^)Bz(;lHx>s8>za(do-TdrW4$+wo8-??tHu_D+&F-DL1 zoYpSDE`AC|k;se9kkonQ3vF#^U8y5BeO^a+wfnOLZ!&%>*@Y0B)>e(!PDo6<s;zUm z%6}r+(M*J0Q*+~+L-wo9Xa0|(v+!%OZ=*Oqs9+!pQi34TE!|+z_0Tb3N=S@>fHZ6v zbax0$fzdFedmtsP)aVY0F~*3&;(7P}1&q&q-@iE5Ip6c(cq!mt0N)6`B$nItf{LcR zxOV)4Vu7-cJH5e+scFU_CVV#mlmPa?vxS^9<-qtz)j#V-G?Q?zdEb6Z%WAKu<FIy1 zO74|LEwXEI8lggQ>pOB72l*f8I3<^w=C-wAzVJi>%C?)|Zd3C+QpLyeX-+juoLzhk zVVyQS6Z5=4?KG=#P+WlTuu9Qh=!PKPlWocEB!#p7CzSudXy>uTg~6M*4vxabE(gH( zMt*B&lao8YyAd1?R?*(L;GJ4bht_&o4R`LYf!o`>hriaD27~|o&b-Rge74Z1rfah8 z$GDGNKL-Y3qlnV0F$J4rX?khDGJ2)Ib<>%PL*IEl925Q1TWYYa;QVG(=NAU(Iu^37 zM|d4|h<#n?&7){bHivHodZ+SG50u{Ru1Lz}vVoexiCT#2DF6Scg3vNVvd$u=bK=tn zqxr?YRQKb(=0{FnJ~j!lC~K;M{4wX2*oeG3uEWKscgDghuTOd#!zvw}*K7CQ6fQq@ zy3`XK+_mHN4diojQh!HByRZl-KPxZSI}(;j-~4b$0FYVnG-f223ec6Ox#PE|K&oR$ zxqkM3#>63}di7c<)WL|;X?Zx05d$ppS3j=tnlrllJ2T!hb^TvCTC|=lGW=+Zf62yH zM5DEq%1QPUoE^^ExC1(T+<6s?xoV^=aj?8{f^1;j^<1qf*qFwH{BH>>+2!o#0odYP z$ehe2I{wu~YF++lm?ZGKj~ncs^XNO;BGwf?)oV<Ai5Y7&%{T{;&b@$k#@H;qTnlK@ zS;ejO9Wone3*tXPP{-HW_UY=r?ADXK4k>748a$k;1SQ9SncuC(3yig9hgkmA`5nsT zFFw}MG^yL?LHqgW|NXlh$4y_s=Vetq!=a;g&#!!Sw3ZD2FPl?3$OA>0bOvyl`E3xb z-7Vxle%d=J7@3^OKqlh{jJNx4dqy0~53*QDL)~0Yw0MSX#4dkv&RnsJe_UJEd@c?? z%xDTqydB>Zw!f0Ko<#M-?gbcJ<ehF+{QL!R-)WP@zcUnxkOLXrvKY7BD{V?5CXHF( zxi-PN=c;n-LWQY{Y!^~odBGMlQQb)Pl?mB~T>bA)lelxGhcKUkMKrzY_rPx{tjcbu zAt`2!#Zx938<vm!UX4NLm27r}lJW6pW3~(aV7H6w&t{x4N^yoLqIuUQ4yKEz-Z;2r z&vQr0W0*Jm=w<~l^g5O|jzhkQcS5w(v5q4RSPVQykRMxVsS<q`#w2;%@3Tk3Tk$Sy zUUmH$bxEurQnl#EgRd>X1&47!$ZEyqVN76f%7u%mXA^RdtW6y4z_V}irWCd{7RV-y zzr;-zs$W0D$ZjB~#Mzva?uZ<VoL1T$(|__hyWWyIK1AuxqoO*yi8yZWF?RO`bmmvW zhuNCNCo8D-0A+SQ2M7?G9-W$@dz}T&h*D;*F6T+U9vC}3yy8}xr^Ohlkto$oazjCB zRjl9M9T@M=1Y~fU>O43g?UNpSUSEy4js@ha%?9SjaBIrZ2d7yd(}X*H<OEBtD6&3` zANsvU$%Uu0@GO=RnWlCGXvDZpNWtXF6C(Y%$i$}=sg@M6lG@CWXkFV+*G8J(3l%)Y z>us6`JitS+_n(fknQpzLC~$wrqI%V721S*c=d1tiZ$Z;2s-3|$=pzd5%+w&jM+Ln8 zAGOW0wme|&NtMg}LvDD9R`mnOX1-$cC}mAmAA?`;;7*B>*w-MA&tp&563Xk}U-v8Y z`eM%`g?^TPvN(=oWo(~&L|7y<v3z=sy~EDi=M7HaNe1)!l}h}C-EljoM%$QqFu&A! zqR!uz`9Pth5!DP?J!VTY-PtKGYC?>R&DXE7L0AHt3CaXbu7)<xQCi8NF*&YCHIb>! zwpQkG6vGWmmsb%Jp{Uii)ou)}!HtFh=sQ!!pdVihiVDIvij&q{K3_}mn!GPySB~4I zsJ6@ux^BP|lKQA|z~?l|W}UPVN)<}IQ6><`JYWqN+IZdpgB$p*0ola9MZ8UAh1-2; z!2rYNLhm1EbbTwCU7$LGvlTxHSFPyAi>wj09vHcRe>m|-unO>Wn)c{Y)LcqQHH~7w zhz@8Qu{KG09tTF$fr;0XjN*b?zT`N&-C{Fx7Yk+DWdC(^-9p5tUQM3YIh#`H7=i3o zzwRzCTt7cwvvu;w<RbuVR1$jU_+AdnxoT66hdhIE^R;BveTzr#V7_KU<Y#h6PdUX% zn-91;X<i}YaARF8_`1HEsRNsC|1!NdqdqH9|A~39sDDy*x8D$WC-WT9)rbu5y3^T| z$UgtTe=Orcm(KsK8pn)17nVP1GpL+)N7x*+^k-C*n-a&)DG&JIw}An|MIs_dq64o$ zl)`E)_V&B?jv2wWyNL!;&>MlR^AQ>GKEf%Cskc;v`XS*jj%j|rB5^lteOPSv!tNBs zokNb}Es|U_LpT_p4C7vP4|SeWdP8#VQ8+itWIdytV_paqmNgTk_<`;BYn8bnj^-L+ z!44Wqw{|_eS4d}CS>zu>EgQlf<PP5b<XpZZrqH#BS1++^dW8Pt3Y*YJ__Gmbt~VBy zS9$r<ZMmABI>TbYXs;H$8t^tgHE?Ad%%E|5&QFpeEei{VGHncjGXqmBR0p>*=P(p* zROmj8S`^{ux}EYSByfFqoA&ZTmQwFarJ^h<soL<iPCojW_9pyIg<bL4B^icFQPK_l zP3{ba!Q>%K*o5*(P`htqU0F@G?WDjL731?5Pu`}b_m5;=KM4b2E|KphZiD1wyj9aZ zm;%r#;pRMuhwiZY!APEeyi2|>`D<)%vSLin+%#&uvd$=fw5h^+l}vMX!S&A)-lz}2 z-xVSdw5?B@DOMb^Q`mgm9G_6^LrMwX8XBNfhpsY`$H`pnEz+`u+fPsC9>mAidl6Iv z9d%-rg}}ej@1382kG@&CKN+{fFSD<Eq$6=~bp#1Td}{Qnht==JI|lImEZM$(H5-IC z-C)Ox*t#C+=|n6tv$!6KoC-_KSN=?Me-tm`8Jc68{c~Mw+Zv@_kBQh2xy~$4yCG$y z96nfEcGYn1<4(em4Z^m%++_J@3t(SCr|Rm}UH4Z>ogM8QL$ty@Sz@2jIw8kVR@r(t z29gJE+DZwd$HOWybjs`W5rr)xEKv)-%?x_m;UxEg@?%{0Tb<_LB{~n2|Kf=vkJ5z) z0uok-=KlPAmL!vB8glS(l}Mj+d^6`5W89cht(i&w_mZ{EhXxL)J@y!8SP)@jdmlRX zXHD?%M%cvLWA#_<@+=SVo^JYr{CtkreGhE1R_iXJ5FT+o@R5hj?Arf+j!@lS7XA?% zrWTTBV44o&iAU_@k~^)BjgP_o9j1+4uzE?VnpH{O0x98;gnNhk$@5ElCn_UgoK(E< z=42NZI?vLZ;^o=^Px+I<D|I*WpTc%h+G(rG9#AjA{5P@RyXRoc86zJc20TL%6PAUb z!azQ<zZ$DtZn|1PZe3LhmDzRPI)brZ>AwGav9YoAVc_ny!O?kiEaB7Y`Rl3mkDJX2 zyq3n>ttzpR7w69>{g`7{_G!}lpZV;lcqgV;^TRqX7-~;+aZy|UziBKl>_7d`+B&)Q zyjv+#|E`%&PmoKX$@u)Q>~n=4*$X=4;n#12Evwh57=8>4W%ir4k}^Bg@0Pv!0~o_W zuGY4~1a*y;jj+fw9DU_9{t`loiArw-t+h3^g1OPfIJVFw^riQKv3)fu?;s2;jizg; zEPq0xLNtmaoyC}r_@?<M?UsLkTba8wYIFfWh9PX9umyH1We>8?C4ZgEhNgZBfabtv z;HoC=r$)H{pURVr#d%tdf5g^`?`vL@*~N7Y!yFP{hAv5S!d?I!Bo52h_eOmwvEP@! zSa#FAf2r$It|?BB>Cm*yF&XJ?_l<yXmP+PJ*oJ_{1kfem0`_E~^_3iV#)bN*mFL(4 zozTT0Yo_N*)h+QMx3Bgm&W$J6>vF(T7jRtr$S=-@U+T_aRnH@pWfkPGTz;#G`)X5a z8~=y$;?63DGb7yZOSKWZR+d}RD!cC6qxo3Vi7I#B5gv3{>f4NLAEU-F3ZA&GBq^{` zVQMD!F8bC-<D~gl`UGEFJ(pTd<kN~R26tyPPZgr{Z0hu>*`@$U3=$0C;@SFp*4|o5 z;00x=Q`{uc4#lv4yCT@5q*Oi&?<Ng&RYK<ox>>qyW2u*u-$i&qkvGd=^QML%!Rn); zw9vQuu-1d5VDG@_L74d-32K+XV<;JCqPwgF1%AXyEib>~fzLxMZzQ89zLgl%*nf#g zwRTL2F}bCPD5Io^oFB`X)~P<Vig|ConyfXMi>%YXC6E<Vx;>LPxQJ4lv2BTwnIQ*| zVOy`u`sKFi!l1>WV{*;qr2Ib^CkCZAQUyk(GARdFJ&j(c=+tY?e8-oFqIFVciFIGh z`m7vQjn_rrQ*DM9_Jfq3+OUwA>z^rpmnVbf+jo`McDc|1B4YvkkxxQK*D3PVPD|sM z#avJl-!xVU?Yqlmqc?G%6)tbgb{zZiZQM1W)-q)157dR#qgqb%vwA1%Tcc)D@{`D4 z{p?TvQ5}`cyo#UlV!#Ak*_OR!={=-uS2z-VZVl0>Y-#TZEbgzjopZPS*L!yW7xO;2 zRAjJhf=4*QIn~5ct?^WtJWSU)^y8iOcaJ7&7FnC#bF(l@9Y+2fUU5uhOeE{QC1bRt zkgAQ|$Q5YB(d8va)BEOi62xVqsQ;=eMQm)P?k6Z{?wV+ygxZW4CdrRo@SC<5*N3_< zsoIM?k0V0PP=|hH`VPjWgS^f-DIKm+$(5pZQj&z%w@jha><!l?-KY`1mOWG9das<3 zQ=-?EEuvCGrd6GVY<aqL9Dp6DednZi$u**E|15;FwNQfTfI*Kc%}UMIaMHu&au6Q! z1zD%MJYMYirrz1@jfhmS73DHqhOE=Z#WPaCFzogwO83t44lHbRkg&6>nDxzxqh8B{ z3uSUtg4X63c(Y}-+-^vGb(v%RMakGE;(pwFQ~*v|=|+bBmp6%LhsNX~iSuh*IqFB^ zkRSlhHagaM;_yd#X7(%Zj_*t1rJ{6v_LZr-0YKEZ6^1;!U1rLBb@YS@8x{Ms6^8<( zTD=Y_G!}ST6xYAPQ$VWO#cK4uv^wU&&D~Q4&3_}MHM&-(Y+dFsQdMm7o>yc6>!8sd z(O(Y@w}hNbBe%}SWMgVh!`dbK#;x4laMMPZtiM?sL3*Lju^%cJruw8s6vnp{1-NW9 zvCT0@GB^f&3AS|nmfLNx?12<{*mBSP;^JQ&j`f>;)I2b_7Kk9~{^wRiAD?mZv!#}& z=|B7!z{uWHVJjOQABD@K3885f-_5Q1TP(4~5!C;Tr!p-cq#5G_`pEn!l>kbpyd%W# zk)1s+;6~5;0Imc3B8uz_tx&9O!`_Rjw*3oT5L}2`07yeH0V;`eh+?Sg1YTh9Cp3P6 zK5~PUprY0k+?B)NF0T};jr}ee{!)9eh(R*eWWeF^-m<SAp)GXLu-~L-eOqv7aH+FP zqHFII;|tihKo@PQ&q053vK|lQ!vU(r?G9;@V8z9mPG5WDLN{o`E}9z4{~y(PgF3@k zjr_s~fBm0HWVUj|r=VmH|Ad<2X$T;qN-HTFq854|^<je3b@rdJ4bbCMwnFyTwWIgm zYt!VR#Et>y45Ydbq<~)XH7Ju-37$)Dn!GADGqfDU>khH9hUEV(MgR3NKM$>2!5O$M z19c>{PE^?{WGi&xN=rk^KK+%06TpzE9}g)_rA+@(^@*u@g+m()GHyf=jXypf8wMwC zovu{xgIqL7b)k<5Vnm6SW3Qhi-C^{yHF~}2=JUr<*I_m@lx#;;=uJGd!aC3a*Snyv zW!03|xDP19IYnQKRPEvKGJ%~#u=-Pb=d-zL-yaXuEA^H>|8w8@>fP7MTZ9p9jAzz~ z8~Q}yAVl|l=40#C%3!jH<?i=hTcR0$NOo+#c191lAN+Z#C9Yn39s}sQHba&V9P9(m zY1xKQe7udhM<(laT2HuM<epM83l!V9oSG~i`FvLG2|jgOM#PIASgG1L{G+8+`<FyQ z=MVd&O+<t`of=)J3d#@j`J(9&=^|0zKjB7>SL56>V9rS}$Bfy41EbkGs4EL~6ijRm zdr-hGQEHJ_VV2hr23vQc2nu;FeTYTIjezjb0Ioi?{6Na!#)0ZnRr*6N=jA&Zq@4={ z8y10P!$$Qh<x_?<Dz7%Rx7s}P6p{p61dhtkfJgsP9nNolz3g9}o@&@**g4uaIPCN1 zFCQbw;6JT*E&C7XScm2?(fo3o>N78asUmPB4>C!+T+`g4YPpEyMX7O#;_)LqCz|R( z<)*AeME75^`1UIsQDA_=4_v_fB`&E?$E10hd@oU&FbZ<$O^i!hGq_?`OvL5y4O8fR zy?y+ITnhCorP?P9@8=K9P1#NKR>(-iE5YABp-U%TL(7o(A^|iv_5}sdP^~sbm}856 za{drSf|JGi{jUedW`87MMqe=1!0P3r#oyo{<KqWeX*3E?>rv+*tofR$SYE29?^6{~ z-^BUyM5XshB03adBc`Z#-0LDOmGGsNR78II!pC#UWGnfR)S!Usz8+@b)rR8gUDUx- z&zsL!*I+h)q<KVN{pIBI-49QK$ZlI94kc4a7dna{^)EpMH^fWn%eG3RDXo6(jX=-; z5S5wqHqGb^z%Bf=gG{P3rjGu~(zcPJ8Xeq$H;@X+Pv`f!I;V?Mc;mGvE0ZgXjQ`al zNa1G<o?1<gzfl?6+*#VBX{{V0$m3%LbCt{BD-XdI0^dt;Hyi5+uroZ}zj=>3bw~$S z#E7)>bbO5eFRZ<Y*bl{bzAYi2^^?xOW4Gk>-=@CkQc;O~888EYhPSobg(Z=ms7+dj zJOWIFlLcI3Z5Vexm03n^s!Xed!rI2v5JK)1db0<_AuaR^?9;`639m0ajW=m7>edzD zQRfx-@4g@z?261=@%Lqu&ffbX{J1swScCJS5tUclbAu^(b1u9IL^#bX_kp9F6qDAI zXBCl3fHK6v73GuU9DZidI!taNtW+JUuUB;mGm84!237nCigevtoG1}iWjz0eJv^a& zech$NRb1|_R~JoSp+Gc~_H(0rt4v25$xvF9L&Cd{kMpBlo`6N&IzkIFfv64nsJv}A zv&=Xb1O*>KHQPn1?0WLzJx{FMJN^5EtrIF!lmIx0axTis+}Tms#?k#sC~|uyd0-_^ z`8GQ&nSOr~!*;YPQta0?WEy;%B2S2$Co6AHF}H%iN)nnguZ;{1mQLh^uZn3>uv`=5 zYcu;?jaiAS=0T?8+}igF^~Lm|9_o){&|fAww6|}|%MNmVR1<}n2ZTf!3*kN`LT`Ie z0zO0^vDjCvsoF!A(cQe0fdr6~S?!srk8diuEkJ1=3PL_E)Nzl7GyURDyr<T9UA=L) zFAk8OvUeAJOkePBm?V<Xis#vU0nVIiR$tA~Bkjj>eIZM01%7YJVZ0X0v{Z!s?)Vja zLV2Z8-_?eTE=uJup}qO&RdfuN4K25@nA*MhmdEvBGq7<tNvvvN?{qNLA$-6gGz>IR zf*0F_-#COP^YGhhOX-D}l^<sfW=U$?sT?>eeed*Fwd`sGpROUQk_K9kBZ<Sd{Lhh% z7l{|LZMTehd$X78d{=Ypkd25K8@Vve(Flg{NS%;i6l^*49zKO`$zrzMUh#fZ#ya=l z=1U?iw#Vvl$6%LNrFCdxGIvlxS)rK1X4;Z{*-*qcPNLkE?e38%U8>NBap+1niBtvA zQMnYfVLb_<qVwQEU)|*mvajS2mo5(dY7LnH=AHMFWW5Fm4K>$;epz|eG97zM@4i~V zohekT-ZKLsfF4Crht3}Q^iJ#kPDA=P5%RlmEnm-nVVOEdGgI6c5~i4=VQpdiOUS0I zxGG97P?3(J*|l7`UPgOA`kyeS(XkNGG$j_N7rcQz52ua?`=4t)Ol}p_)9&_}-+MVY zrXB<Z2K*fql}RreGhUq{vz{r_FIEm*{OLc>f4mm&GU9Xj_T!R80usHuDJZiepW227 z%9Ps&A|C(1i*2BqN85=T{fS!xH12K`HSG@RwKXZyjfYUR?sKaq+Hq>-rmUdl&W^bq z@+XpK-c#Mv>mh5r&h?2M@twtwD7Ym>zW<9&_z{SZi5W_Ai`35ZMcXTSAHxPppv#)u zYgtb1$>BwfH0!I0VzRuGM`FA=&iXkj9c41)PK@jb8Jb0WmM6(Mu~g75;DuK|UZw}m zLf5_(sKy!dufA?g*P`VSrDohSv4<>n3C%br0^;OjHlFv(J5~o0h%(sauHs3%1qLkf zAUc{o<XzQLs1UZ}nGRpycZx4T#r<gyB|D)qE-cnU7CGUX*(Yd?S#A$g=Bx)NTGeyp zr2^h||EYzZ4C8=I4~`jc!h4WSG{a-14TU~rC$D2HHXFhjIDV%yvZtGu7T4ot6KNDl zR`|po5jo&?M-5%fz+7Sdg?D-L0y(+5<+^Ud(rFO9hupj>81p9h?Wfp^6$gLVc1(!& z=HkkiQ(sI2v~%C6|85n%{mf|7{srh5H{d(4wkVZhjC=;mCYS@DQEJMqZc_v~pcp-C z(#~779znys8WfaG5N<L}uv1lEBj*+jRX`To7PPbO6nCsx-HFGgp=9r_HdX&^P89^N zig6Xl-6I_gZXMId7JU>ine@EfD)^UMx&M`VuR7bDjh?3rAz?f_94YE+g8gH7q>frH zoj4MDS)JymPCo&hJ_mE1&(2m`h#9WTKpc^N!zZ-ol~UxTwpqA8j!r^Ke=AEQf@Yz^ zh|JX7cjt%a(<!pmAm(AY3Q4#h)r;Y@nqV-vjTY$`;91ZNt0<7qJTYFpB3DHg0W!x+ zVC!97l~*{`V57x2v$jQ$T!wJ+ydy(+(L)U0V<heuf-j76;PQ)Mu;^Ki#R8CD3PhXR z6KQiP<Z$f7D7~>!3*K?_n$w$xn9y3e;e%A)y??PO6tNRVycVLA>eErvM#ut&O#pz4 zx<S--P1)hU+M}HZpQfmTM-~VEp}SvE6+Zk^wXnl;cU?ZtF<)XvkDuy<SohCnxhyY~ zJ{0&6%`3;CUB_|L_{35j<$#hY#LNIq4fS8@UBoU=%My(b=?L!ot~d>^caJ|i34c7P zcA6k~-O9%#Mbs>48{WBe<R$y<1OVxX0MB=c2Ff9|OOF(OJqdnSzCe`4s;7IFOqDo0 zeqvD^Q?D_FasXE;eCRZH%F(+*oU%6vT<Qwc_7mPO?n{N$6PTUBtxnEcjtk$s79(zS z&Mc#%j%*p^qy^L?g6v9r=~*XsY-_$gu|kz*M9Qq<EjVRDg5WT1g?(!O66`Y@g-(^( zm8SowxCJ+4(<?Mr^oXll!H|4{i|z1dOY&GNExSW_%ah#PgY(^3F%9$wd`)roGikJb z<b($*b?_K5Xc3UC#hJUY{37T!u_wtLQBHh@#Vjy^PbXGv)k6F9!B>-+{BfySMnL?H zHoqm_A~9eZ3QIDw=W6OZ&l1M%U3{{3{$*~9W)dQ`jc)9){BaiHi2d^GS>F{ZL*qDZ zpe<t*P;Djpik|y1#q1Ylj+fk&4B;r`cg=fzP%ogG@SuMR+)#}JZmH>83hTPBu0yM; zf+xvK4&x-gFuAqLb->8KR06XIb##McyBu?{2fCK!N%HdvcwjbV8MFR__AD~H^RzC7 z?XLISOgl6ZBA+yV|7SH1@mr9(RFdsXhb@m7%LWoL9dY{v#*^7)oN{=F;4$c)CB`44 z#uqKpbWL%>eFD1p{*|)r2z>1PL%JyF>G~yS#<tFJ=>W42OsS{DQc=_KbH7$q=wod4 zc}deB0NPxm<wGE@ea>7I{8-TxS<$?G_2sX_UQ=tve^eB!{RB>{a*wN-$3Dk?_h-QU z+T^~vR>I&9YMBW<IIG}zZ^YSehxa4Q$B_b9*UUJM8t`qXNmemQ>*yC|)XYCd4g|<! zcotZ<OoqpJUmtasSzSRcWS~ss*P4;CvhJDCwG5;*YVmySCZqg0)9fYCHRE~rd07;i zl8QY%c12P3h!41czkSEpQ#PgBhynjC!KU|dgn<PZzk!zDF{1xp8<|vVm3kw=2N_8p z4IJHc4gUn30k_QD92~`+Wl+w{NIN5E;9?D0mK`jA`0jbdDB|gHD>_$}ezB0C(=uxF zVUo359E+eTnAxZ!is2J{eOViBC*-Fh(%R3;QR_x=rEOo0V0tb0#<DUJA8zD%*LJ3V zIHS0Zi5~}=dxc@2Nl>1JC!}_XcUj|U2CdwGBIRyemgi=nQI&&Y@bKU72w#W8)orkg zToDk-NIx@!A<_8zLzyam{d^NYlbAYEzs5Bw13rLiqgXGhdE(&z2T*<V;Q+M{n|hI# zp_Qr*g!5zaV5^=feEDY19l3{29KT`B`Il_~5SSUan|1f($)dfgI^|I@|0Mgm?O3xx z>_##NH!bLY0y(1BI&ZW1QuBtWz17(iY95~=%yij69!Z(2==mqSMs%)A;C>uttu}ks z%KAPY$nhWIea`Uh&BsM1&E50e*4rM{4MUD@w>(tBDu+EG5Aox7=CA)|(313WOw0A5 z>{|g}MJ?O>iGBW3LIUc#YF*zY{3R&pgpb}TV%j4s0mus|068#NIz)JHzqGOZK{<Sn z^OE<v`18}^8Kh@|gYwHZ|HN)OL=FoK0vcXiYmQy{!?3@2SMv^&uu-EXl2*n1pAnzg zv;vjRL^WH&?dGJ<sXm4zKjc=#BiZl&5B`UfgUJH$eOPnY-%Ql#)UIRgk87{Y0=Sx% z`xHS2_trAm>m05NogoyW)+J($(pTSJ4w%OdCTdkn?XC^R#kfR`X{2RYp}a{TMaOma z{!-`xNZ|bkNjhAJ_A=BTO*{%_Coer}ZE)M1^5i#7EfhRYo#D?SxE$QNZ3}dhm(01w z&rdCYMJRq=ON#wIX>kXn82>eK>|juJpZhp%fVpnajeq@#0MFaEu^_hb%S$L1{t;=d zd;?50YE$3lhYkNa!XQ2KEyNZ--0IV<dL^$vMNtRAs?HX7XbV#cTwh0dDV!tZygn9) zW)IyMjeNn|H}HU-da~sI$6DD8-HIf!NV(E+t<YJRZE1()267Ejcpex9*I7RGhbDYQ zjeK9xAXo*K933tR*Y$BrITct<ovAO<TLA6=gglmKb$T-)&%!{FO?Zio5<1?2KnrGW zqpXa#3;(Zi<K9$83a)6on1{mFx@DyYN~#4BU8_=#x>ePJdSAEZ7ZK<r3XIk(cXYDp zcV$6Xr4rY|sugIm@XlzsPY-TLmU3+QnTWm1jdo0K(b21V6FP?(GyA#*jalg)agS#! zSt<V9QNAxE>Hr=Z_>W4KY(yj`z+W~_wHpnokLf%{@1m_MUikm|W2-m$JRmJ4)<22x z<^U|MBWfAzkT#~DeC@p7oBmj&pN}_sLaF8XpNjZA!gR1vchddOV&xgc%}7cFt;?;- zPwuNX3P)6blJMxnsKBVHoU9AXs|m14LPKki`7%F%cSpJ%FS<TuX_9Kr*yEgB(E_j2 zv*%0DiD$c4Nj(UreWkB9dj~Rl4;FV?S8ffu|DY^Iulk1GdU*x#7O`=@Q+pY*lZBE% zNR0nSm0Cv$KQg?H%JW=8Bh0<}N6fBd{O?0h!6fw5qV1w`VWibu@NFN+>{YJ;Q-cLV z_S}{SN76tGg;h!!BG%?Y8;4jeI02t~&NfP?Aa?>IoB-;Q!?;Mn7dPt)ge6mr?3C1y zs0y+5tyOtx_jCKB)k`V+C~tN2+p5ORodpw~_;ybjG|Tz-S#h!4tM%JuX~MD3=4$v+ zYvc9acX;2f?l=cnC?^VW;{~d^Q%W-=85r~DD-)mQ=fN)z4hoykeu!siw+}T-7~wKd zD<3GCmdUo|nZ+gTZYkT)IOR8Jwe)4s`S+QknR))^oKY(azoU}Y<yUK-l`j6N+3;j_ zWz|RJz)%+K!>J#6U3+cijw!LjR?%{p=1o$Nb?C?k5mMY$BVNqQ3%2qBc06rUY$C-@ zDbLxyBYsFBzv|;tbrx>ciZSL_rhU%siCa@^_huM$ua`XN)L|`zezK`s0psMQ?kb7~ zFwXtPN`{2iP*fZ%*jqKQ-QvmO6;5u41Xp?GtYH1vD1EE$=4FIgC#l%)h5MV^uP4(a zvlMxLJJdPj={DE_FZ>!>Q(~Z!hU@qlcEsnljQ*Xy>RkT#_x(CU=Wuj-J{kv{h0T6? z@2(`*X^!3_19FoHhJkQm<-6Do>*9&*er$K?GUU${8s4F)d^2D<{E<GyFLCuI#W!=g zF|)lOhf(AR6FNuU^ox3{MC1D2c$4}DK*q4a{?F=FQ(v1x6rt%H6$aT^w9k~|I*-QE z?TLt*aL3amFu#1EcBX(wZv;+_=|!sfQhm>h5035Wzzc1>nPd;~>2knvr`>RO?YbWL zY2&wsuh=ZlKjy;A1l+4iwpRs0e7j*?uOgTfbu_^jb<NAr-;`uhWCqr>NA$(;rBi$s zpL<O{;rYSIPsdK@AU;oRb$+)xB2!1=9J>gpmHPc0>+VW6<Q7QM?i=CSLTQLJbwPTF zYkNb(Nf%sLRy=)mc>iD<g}DPuylV4`1#Ic-oCxtck=z?#97IbuPqjhU!~UTZ{p@k~ zkcp4M5!2;jJ^H!<16B8KDo@iL>sjO<eJs$<cYG=Z*(?5WTjyla=-_H@YF^gU8Z=cw z$cS1d`lEJZTq32M-ZP4?3R0Kd%mglQ^*>l4MHEtBynOxUvLfkN#4_ZC3*F{jaa$@K zfi6{{kz>A*A+M4nx9k6iP3Z@?sI1LaG8*s+0j^G`uJ(mY5XH_RS0WJ5iRd8VWnhx& zT-Lu*!y`X(>VMHRDoHHR16{-fvfLR=VlhIOwF+gWcy7Mx{?7DICcV5F4nE!oI-p}7 zlZM(50?NX5_h-5OuFAV4FlS5{g>Jzkt65>_=XBYD9J0$Sq;R9FR+{vRYj(Le!n(1O z-+)Og(z&D0T@n>%694w7NVqrCcjG*^Uhh+Dc87<*A(%-V`=2aOtTBwl&EX*J@xXmL zN0YWVH_d~qy$}fBRFSdKf}stXWCu;L8Qg3trDkt${j6IYY5r?mWFGkj$z+5TI4{v# zemVXQ6ed=%oUgXu3=d4$?Ey7>(q32rF0Zk8U&QSD0$)LU<RM&5pRwb+=GhAQVw1B^ z#!h6y#w<A9{WeFdD==62=~<YErWck_JS`#jT;Xj8^LZ)lvs>d*?(N+UQm;q99En{Z z^X<Fj{s8qvzub^Y;o_2DGF;P6Z3rKD#W?LRdpdL=z==eSHU{aG;t#Hh<gQjg<s2H< zLyn~ukEv>0`hf1SQ@&$u#wY1yhN9{Zxu0|R?^nIh21mIKa-NMJ=y|~V0z~*Hhn|S~ zsAYIJRlM|#_=?=7;7x;(J@C}Ub#T{+>lXv%ORoY=_oV(YErP)MQKvU`n)F^OppSaD zqQKjd%*ZJ46RosiA@~61aXsvaV!BgPSP6r52RAP1$2@YgWVx$z_XVxD)vSTBS2gUc z{8>OH!Vml(73VIl|JZAgG0=B2D?yxr=B~<HU&djDdjWZ=%CKO<)Eeqz2^KwSs*BS` zFrR!4-08YON>Jm#V>YAEHxPewA4l|$EC&uBo$R=LNk|DQg?Uv&`rK@q!zm5~+B<Y| zlXu3f096bx*OWEAhbG)FMd=$7@5z+3Umid(XEKAo^KHRa({387Ga096VB(n34Wa@* z=-9NEvIM8%kAF_F_9gedul{_7P{p?r{<S+0qI5A#L{VGM6-WF><+Es`aTSY0!~&U! zTAK!Mz0N@8CG_c5(kD+2C2fP<P3%`AU#AlX<aHRIgo#vUN<v7BP#+3zM}brro1t`j z$dj^dWo^%8Srmks^L8}0r|74$HR+8*8VlOgzE|5ceGOvQOs!cnf96||F&k*QPOjV# za!8z{N!ju#u<uQ5#Be^ubFF(_=T)MRir{hXy-D1#9U9IITTB2cv@QGPZIf*y90;?7 zTm8&c-}R%$;O>Qm8(qZ{sTJ+_My0a*ZKVlB>SN&%f<W)hJDui5Z=5WaUOa6<#zGr} zdp*dk$KW~}0Qh8N;JqQeEh>qqgO9io@#X#BUpqT)Gz(sQMzV=oPdH~xE&zVAC;R_V zJ$_KN#6vS8GSY4%aj^3N%BCiLaMkqn96-_;Jx)?}w7xeU^5`Ta!O?g|R#3bzyZJ@? z=abz|duzT=6NfdA_CcAyTtbsYz8_<HM_`O2H*?Nahc_d>tk<7bc?E!ip>~i>RR%+I z@vBv%F$ge7^RcQ#N10f!(AONNTdBUM2mt;uK{_xB&|>BHc-0}HV<x9?kfs1M*>w*x znk(_8Aq4sm-|z6iL-?oG$S2hbXacOE>+`z7UHq%=;DBV6ZH6V0aBa>r|FqZ;GVFLI z@^=GV$b6F1pJduRL`;~H=$-hOE5%nq!9n(In^C9igL=t)p?)a8Kf*n{hBp2QZ<iA) z4`Me|w6I+ESc~t<cgnXM1s`-tu}r^f{f|nRb&FuWsjP$Caabw{Di5t~3+XhS-pO~d zu>4+l280r+OYA^4)1L-?1!L+2o=0(aCWJXs^w>_#cI;~0nF2b0WG|+ZE90f|PM7X+ z*O#k;!rFc>>6g@sS^o5sT_}of?TXitxwHCUU;bhW-Z%zJd)g<L+IzHxGQ4d&*D@ZW zvARq0pKfW?=oh<aM6LWsH6{YneL;y2jGAXlE>whE)YO~+(g;fUi0|AC+jdSViQb2x zgjlOSJo6zHmq;zfE-6|Uaky7$9hFL(WA`Ptn?|)i#LofMap4b%GEmAYgA0W%kmb~% zl-~m1JCCFMdW+fb%6wK;U|thm!5kJ<l9oU$5k@M+{JYQjVCqm};aRRQdrstY@9j@i zh-nyJM6;=h>sUKMUZd?tkfkL`W?A%==c-KXlp;CfG7DS!a%v)0OlGkqhdfp?AeLS_ zjud1a3%%*)msC+&lhQnfL9U0?|CK@!D!emJ(-8<uyo9oK*KV>qi+tJ(nSYMVtyzM9 z0aKFP^}rUaGBM~UnRfNbk8`Ed5<5_)zH2QR=pCz{_0-7|c_F!#ED;FN4^hyDs(R_n zA%*AClPwiPL&_c)=m8EOUOMIT)>&j)mt0A#B3u3#GuX9N9!igJGAMfm9#_r<SHV4O zLagJoe_7r?p;XNcK=0aQn^TvEwWjgBA5fzH_tm<N<U{A8`}yP9YY^F7A0Io^8FWwi z1INK{uq=N%1e1^PYX8Gg4PWk<D%MVw>c18=sp84mS|WO3RK{G}l}T%TZ!Q~~RPE=s z9wbJ&KwH6cv{SWNxTC(8ef?>%&AHE;Xy3AX`&;lI)^W<qApku<ZN+mGDcE>vHGZ`` z0|oreDpZU!%LVA5i(8Wi64^)NvqnO43(oI+{c6;p;REA7Y2js7YpKax)lD7L2?^2D z&X)_Si4nLSGOf3Mpm=D3-qP>lOL$`&q4s6g2X2vvxFzDh2R$f6{#y7NXFs-w&|KX? zTwXjoGMalEZr8N&m!17tE9V)&dRqKO1+a0HGN_Z&v_oe2F}f**1_NZUGFgvb>E*Yc z+Bla+fjz4=4i*8Uw_zDs-lk|X%BN4bg1}&-Gn#qgo5(P6A_8@EnU^s8J&Y<AkYSxk zpR-G&oYYb&<S19^)CTWaNZT5~ma=QjHnD3*?rS9qI=y&8`_~LiWof*@9wuP&`&5;m zol?Xpg2=kx!+XIG|5G-#+u7!Ym%#hpPAeUqHb?9R;A|kJcl;g=t%C>(k2a1~j-M5% zNMzw+NpzG~JoyEOdVSKDh6Ls9SR>lKKOKwDy}6Bl^@nN&tY5yJ6l*w8`021tY1S6W zx#qnGd`lUxzGk5msRbVITTgJLR!73PvXs#a-|lX7EcLXpayY*`{dd*yKdRZp3*x;% zCEwBV7qab(h6P?{Ki0b*H62e9B`B3%8UeCX^}?l@-=(^}bH{$@Rf~sw$lQu{2rYgq zovc-@<HpyIh}io4EBuy~3X25prox`_!hT!lwC4CZDlm>!m}&@-U1Z_Y`zI4ge~Lz~ zmO8E)=V3%tiRc3q=6Cb={i%6vzfKXej7LHXQt{8Aw?Fw$hgxq?+<@gvIx3h>PTTg^ zIlB*21adr%ZMBCUr5?5WZ;{+YL(R(q?Z;*RRD(_2#A!h}$@LY%)CYFMRjUN){Ir>s zg`m<xqG?!8hO3FuB0NZpAs7<58`~jU>Kc)Yv*+iMA8EE^9pY(Wl8<rxE!#Xf)%zac zRzL6d?p8;wuI>FG-ryN4;>)(ocv-LyYt8m2i+nTEg=(#ESEcm+zt#u-Cwv*xKDT%p zy6K*%M%RS87s8d&mp2YOfoGGbQ(D1^l{BNSSzy%VgZ-v1jwJo&*)hD*7pZlygXZPe zMr-m?r~HF?H~(ib)}g&T0MD>hjDHnjuTh7niCTac_G~9fGRv}hV{Dq*BAfogTwP-4 zx9%~Bm94qtHEM{y-aOKfnJus(tBW8tLA3ot)o6Sefy_tXx`&_q`C@~f!Ci8ZQPH*V zrF;jZq+ZtOAz)u=>>{c^y<}FK8N2Xg!1^UD+hwwB|Iyjl8EJD5l_jq&E~oWylxqZ7 z?G6Zi_2*RC&L*VHQ@sIM-_=WNc867Lakd3c7_LmixUCuutW=Ctu*jO<+#sz2AT|(w zwek&G@oyOo%OZ!5+>(QyJ-J+N-#svofN!IJHO#sgM4F0v*Y;=(a!fm#eF6c1_m%;d z5-OUmIlxS4wU%FipM%A!S)|T#RuJ2b=*M+JI=aGWuS#7si42{Tv+c<1gk0d6`_nn~ zYpv}<|5iEq4|2{|{jGjGdAgH}v&%VoMQiMx`_-tewO||+0x+M$q_Inksx^MUSL6rZ z6T7~k(UA0n$6sn+wIVFlcQ;F~GXu5N^;*{e6z0_xLmDy3fFpB1t@oIBm^jj4sDzKw z1S59-9Em#(X0^%FjT>mTRp-s#Un(is&<pxUW=_@Ut%XD%>iUG+qwjaA*C7sSjbQSQ zRMZ}dGR_S*Ls+QP`-kOYPUi3HdHeD;R)LBQI&5i6QWhyLJkz~*fX4=Zs;+yF@B|t0 zIKhHFs@5I*wvH69!FFy&SLcTPd#80^CdtE{6cD^q9~-)a4O6d)GZIt1_4!L$Jg^-H zEZ8P|C7e$8!awPLae2?SyHe!{5R%B^+?2j)cKzufMyG_bcI!Nx4+x9BO)TPUbl5xU zLwlrnabtzz*WS#c8;YBN{so`Xc6Amt_Q_k$_KUX52Tg;0@+UpF86(3z>G0E$`;#Fw zA!1TmF*RSfi-9?<ge9}{Nvrl(Z)89*5)A7p&5YX>gy~$r$Wpq~fekrrv0~Bagp*|V z?;`!Uvl;)h1q{~y-PI`|sG&=H94o_YBbGl<UEyB)!i)3zzM^1Pu~{%MdhJK9h?V{R zpCho^qN`UmC$)-dzWlZ1Fwk!`CcLEqHfsQS%QbjrCZQ&$?BKYjT5KWe1=SnFwZPqJ z)D-OaJ$<~|4Yz{Zcyl;WT1gzf5rO?@?{|WrDDFjR1=V7%M8<t+<E5pYsB+Ld3CRqM z;jC?q!D<K`F|Mx63AWV$)|meM6D2PNv1meE5g%Y>i{@UHj8$A-82Cy`%cRO#9#>ty zwRVbs<<9n6(>hzxHp!+F@{Uoqa3O_R8YUfiURJ|v<(XaGe#?T&yFH<CWH`+f0Jv(b zzEJNth_A*7{r?QPy>F@4!dvSC$f7;y_D-cU>qzYXRre%x^p*z)31qS&<mAjE($Juh zu7Fu6v(<RmEayG;fRS}6xfJte#;m=F!l9;cZ(iEyZ7g2R%loj@{g~PeiNo8=rfvy} z21qw4Jk11gLtR7}TFt3N<%!+q<>He&e5pH2@+ths@j*0=a<4Ntu>5*&b_|^bJ3Hwd zw&2GY{3?;8<{G)w3J(iKu89$=q;4iJiY6Cj|D>vN8X6{;)EUXFdek!%2MF_$Hg1}P zOlRsEOk33HAHJp(p4n2V-m1(x87yhI@+)K@4BYNAf3bh#9w>8}W!bY5HMR3wSJK3j zuy=4F;Bpa^ESJUZh9-Th6#keT{vh)FA-<;2_>ord$diBMp0_-Ozx&Zx7veheCAGv9 zqAhk-V%3mp(}!TVCEXhSn50vdzPO`%G4&_tpqhAb5|Y6>5DYw?x;lG$L)X^ER&Y@y zhf(zfI=41fWzLxyK5zT7CzvW^qZsg2)r754_Cc$#qcv0DlCrrn0MMQ!=UUhGZt{hL zoI*{sPQSb<@Zbt{B*YiM-&{v2t3RnlTk2=qFYSv6XRkbWpc{JP-!GoWyzqERvrxe2 zQ1Vj)s)2cb_E2+e<?ZDK*H3sL{Hrd=x+RE~yHi6?kK)%nqtqS``|*vun>nA{TkJ%d zXhyE;S~Kc9OKQI={1w1JnJq<b>^!~)YOPN7W~6RDieNh{oiDs}d)(oDOY+lrYd2?x z?AGtDybtrwopX)ZnYe`1&PK$|1$3{ftFQPj7oRt7k8!r|`H_MO8|LoI9<9Z$9cd`n z(n-H={IvW$|F!p6vW~j+yBZtY1XXd-{tjrzOKQg7w<|$Umj)7incDSQWITO8;*D*J zgA^}2cSGQdSC;`dINza&N|YS7dWwUx_2IifZOi5aNzQS0&eK}iQHxla#U^u|QMi)> zpkTT>&~sZvI($yi^QCzwzf9z1{A><GLd9zLGgVNgDY)6?9rDIiK){cx%(#M8ik%A4 z{>wwpfA&N*Bgfj7Ibb>2XtKC1zeWbxV6{lEqFc6@cD;aTR@-nge`idMj)GeHM~CLu zLoWAB@)_qIret0OP?j#t%_ZwHfxz%Nceat1+f{W9bwFVuZWr*&bcqir$^Np5N=9xN zJv9e}wQQya?Rjs`LN@*3O}TNJmU5E?kum+{rTOSg?GY9a62{iFD0ciq#Pu}BA>Pmy zp4ldMndww~Fwkfu<mxtYm9A^&KPo+S*pg+tKk_ZFrQ?NT8+y;Yw6nhDo~b@g-_~g) z(a1#D;3Y`;^CK-Dj0<mGqNLe&L*)A6SnEkl8s1PT#L}L#A~Rvp%cyVIC*I+3l49-_ z#HVho>NQ!z8*Y9uF_%AjLtpI}DC;O9UL+H<D^sG)J*b>SDXq4cML$H*xe16eLj9RO zmWx`9g2gm<!ZALqLc5K@wO{h#d`+k+=mD8Z<7Hmxs-IW8(Fx==vt=sqz^6AfQZJg< z;Xsmg_xBXQFqOFEUhUBno58&CB3uh1JdpBjZzr%QWuCW<PH}%(nbCN3?BNXuhw#?B zRF~lwm2p}9VO@`9F5Rwx)6GKVHViWXjmU|e6eD}`R8~)NV-?iZw_@>n1C5V7hUR)M zIX09<^7FaJlt94)HlrJwM{$3=-KB0o)x_XhGQo!Vbbqyv&OmSY{r;}J*+70<tW^B4 zI-d(*`ASdoiS5yIC2+$|*ViZUE~XCvZZ->UcnC$}<=K*UVM+Y*rU5x}MDjXOr}|+1 z0q-e$UhB4{1dBe(Pbm_%3X19kz2JS%%`pGqk&r>_F1899#jrH=&30wUomX?AbIJz8 z78(>4yC*I>n0fJ>TQ74F2g~O0L&Wy}`A}}80cxkXbjezO1~?M`H8Kb1HmwG1jSlhL zp-Sxczg*V2jxHxp+&63Z2)i)$3Q9jy*Ny!<Qc`K~zLav~w;s3`Y+8*u5<6X+{rK-Q z#V1a=JC#DhH6obW!|EW<HuU9ESm*MARX;B+Q!i=9mYKR-_FLh;?2CK9IfCLf?**aF zRK610S^2dC-;uBq4Pe#4%0Jm_Q)r&ahQGv?yg`wUh@{!Nasf04<K*h3tZ_%!nB^)N z7(Rf+ITZ+4zO0gtuJb+62>|o01^Vc`q0jB*vOxy;L4I_&xv|j?_+MPj(6qOOSTy49 znox+}<E!p57V&GT!Q%Pqh?de~uN$P$tI%H`@Q?a4om!q06U7g2g8+K)1A)U#><A_C z+WDsFhA)aAUR(bOr7tDhmuMX)t*=-vn!9*tYAdRcRdV8+EWB50C~m3~T1_!jMbS>= z3;`&_vCvWF%77qGzv$}FZ}H~()xSe-dr#YaC1@UP1>N$bO~`s@1aTib%5i8yF3^q- zX!a84cK3{z=Q<DF(=<7+vl}`NReY&fu}mN$D+TbO!{x%hFxll!uZzRgLTFH*SYlz_ zz70IDQnZ<VN7PVjxS$d4bscow*H-c5A+;#7KR5I0=j;@q0CU*u)O47_!I7vcl*Q~n z`$(ZKbKm+sQ?Y~prs|Cl1)av>LPSY{UIjVDrbS-J2BU@8o?Mkmihs0S1?Fx@bpEsh zUGAVD6$UH$Y(nO@>grmhb-ct;?>xXfH3nV>bfA(p>wyiQFZx)FfD4C1eM88I<;SfM zxzQT3yGn?rQ7Ec>v{YsjL5VQM@}#tg>y6miE&N9%60|=o0k6*3NHAE-If9s7POw$8 zGPu5#RHjM^+qR!Ot*}&5C4#&jT3XZvIsG^pa5jNpnACD;19v|i9gfJjFx1!33cv&Y zd@Wvtd42^Bj~#5cM(BDLne$aF9GFukQj1t9zu~8l_8DfrX8reLv4lY~Ej8R;0<F5a zY;a_=tzP>yT-S0t<}-bk>~Uk}w-`UBWb4rBv>VAz9H)E0BCg~AS6Ds@)tV*_@dB(0 zt@(t_spZWt5L!az=pSx60cUzRVA8K+>55voA;agUCVOZ`QXTnDpza7oykt0w69F|( z^Cunw8*D$lENXXQ-OIgTEjsxvuA@2@=ymuXl_IP^xN#zP#px<<l34W~;(2xiy3h<p z&1^acn|U;BlaZA$ktq03T%|w}@@ytf<Dq5Vg(~yIfPL4JUx!uS=sV_kr<QV*MSe^h zYls(3n-k_H_>pOGE$gt2sQxlfOpUQ;m*{~!^M%JDwk|GmxqIycVt=#G26oOL7g9qT z+Uw{jyVD)y5N)W=VR-^xH}E0Y1KIF#hXE0O5*#3w5ij9G*IVtO@dZUIts-r!wnc`i z1`QWF@QYGJYCTTzN2>A93WT$XNcEW!NGwd|2=+1(;p^>z@O3vmT)X^o@8D2rmOkrY zrj*s9hVZ~0J7*dd+?c0(R&7I^BZEW%-)(vMl~<_PU(*stPiO2l>%HouS#6sRJ<%WS zZt=-&lGGMfU%H!JIBc8-pezISJ}lzurDdfEkeM5mdUuDfowN#v?bWe)8Xpxl#hU%g z?f<S<T($gsXZ&Gv?66++)|*KKj&W`3J@efVt67V>6|%>6v;Z5=Z)1pc2okZ;7Q9^I zD{gs13~Kb%((OO0ILreJ1#oGilS0l*W{EF6li6LGFcp8nR&^KdN0QwWFLECVw2Clo zd2L^|hr2wc^!JquWV<V`%$|#tKbh}R{RS=vt+-<*N;gXn_6;sm-E}ec2yF9a*_?+b z7;Q2M>Lvg`B<whqpO%RqiPcmChr@StetJq04{2=8zce*x?t?1-_Qj6#vYREkr;pwB zt*R{ooAj_2M5$#+FKei(Aglj1-7Z^6GRzH~rCg(Z#<sgZd6)eB;&Q{$;g<1%KFHhk zyJJLg4s0hS(p$eZ7mB{-8y4#9VkE9E&Vjy=IR(}U#x$nW?XbN4#7eqW4z|`+r?-Pj z%=U(!Um(0RN;5Es{1k%D`{vBwY+@HW4?p{gD~Fi;^;S9HgXg@KiqCm`T!brgZkXCR z(HK#5%_era87IM|Ed%*i9}Utr-U`3P9fKKzga{JIWBV|mgj(FTKcu(@!@f7=HQ_bd zTnu`Y73qg)05Pk5&=@rm4f;U+W23Vn@RiN+Y*z8XeK!YnI`?BziQVfa3n5inbnY?N z?F8YAK9O}ozCS3$OSB=?DT6ad_JE7N!)p_I`2Pu?abS$Zx|M!Ya($$x;kR(m=zwXt z!b;}sUMYnaUxQ|0YvJEoF#2<~3LOgO{47D_xeAC5ZS}iRa5G%TGvJLJjj>$`qAFBA zX|3dYNag=HIt#z1-?xinA_5|<q>@TXORGqWlWr!>7z1fWO_7k6mX;iiz+mJi-61I( z;Ya~TGh(psv)}U{Y_HFDf3Evn=e&;#(jvF7aOYNLveGvWpT2-v2E@U)1LoQMGAw^b zdzO>P3A=eDi-sU2<#(Aal;X^IWGLgX3_iTFWYnMO$18k}Y>;vQGiVkr4L`69VMMPw zUkUO~L^wVl()R;wAWo+CAFc|wrR~dRR=QlUEQXFTMKI%3B~zA}P!Fb#cj(x#J6r<O zkU6W4CT{0X&x+Aa>YxC%6=1lJwq4uoacr!??4Oc_G5(L6rNSztW!)K)$QFrj|1@Um zUHTGBN92%?@m)<T8i!e5$0w>#H{?tk6as7QEq~c};A%>;G>6VV1)oAw-F=41edlLU z`unGGzSKz-8vI$y|K59q6g{DZ-pfAlH_SI^ZJqHcFGNq^i|akTSsZMq9`pz9w0j@O z^^ye77D3fRTg9#{zYzO(?0<{d+q7V3+bb>GW^6kSSbOQdEImnnE)z6|Kr}>9+#%Z` zEE6_5?lM*C2xAacv-$hXODMey4jIpT)eigk|0n{t+Cn9e3u6GisYX4u9)EunpSc_1 zQ<){-K2*KW`=cu?I*+^Ipm$Bq6I_o~$^zS{(c}obkr*^<gz_3z$T!9rA8Yo0g@X1} zc!~#emE+6U=j`JXvx13Ay5*PvwBdf_C%L4n49ZkK2I1g1$q#h19XeJ^lLj#$2r6HU zlm$&<Ay?6y%y)1PD!SP5TB_r)oPir#cF{?bD+0ij8mfV+<vN#m$Q2w`BHR^EN+fpI z>;I0abgtfN<!l^}@~Gz4kAE!L*u4-ZtP1(O^Jae)tdPp0z?Ds4dKyTV9g<tf1EmPO zFttnl)AFb){d7A&o9q{IUo(k6wmh~ZUo&dkTS~W0*&;KbW%C-MH8t<we@V>!?!b|C zrAk&g6_-Z6i7X%m$FU+2BuilUvWrIi3+vIJ13NjU8>-PrmrxPZgpIhQAX2Q5hxu9H z3R)fZCx&5OoA_)SHXj&wh>ds5I9>Sm+j*V&<Wg1KS-%tO)J9UBOIo$ZiD{REgu(Sw zlmCcH6h*EvPqx%U7(4z25B+{pbWoU|O`RDkG9@Y#!UEQviAY_m#Ta_s#skNfFPRg6 zA{AixoeJ}koF97kl9#t87-q5AaLTy3W6lb*c^k{;(|opf*o(X0zc<C@Uov~+W@~Fg z7v@?M!^GT68&cjnA5rc-($Ddt+Oa8R)58HpI@XSt0jk?e@Z7jKLGk5RJEi1N0Vr;` znjaC$bC40`zBy@oKuh?&JmQogl(5=NsI{L|c@~giG*JT4E@d3R@}|mDeOhX$R$%}m zWu26bxilHvmuZ5YbInZsg;9!^PBE~9bu*b9n?|DUKGkH5$qCuA96p)S+<|3wpC~E0 z5|Kz}<nkyiH$MKxs$U(iXi4tLTG^v{c@WB=y93~V0PnGIqh;7;2>y?v%{oems%qox zR;^V?9zm9t?*{L%hX~}9bGrw2vvDHELxexIA>+$HI1Q1l#FX9%Cw`{tm!J9ezW#az zzBZqnM7NF)QpNCEhYcxOcK9H^VeG{bn@A>2;_HA}Weq)Poi5r;J}&rVg9nOw$N%~Q zGIDM#*(#b&ka|yl8-4dgw=#uBHUskLLr>o~W82@eF;!Xhf#<bnL05e$ePY35?u)Zz zf04(L?Dw;oYM>c3gUh||Yd=rJJ<oqGfY^(s432tBjc(5#7l5}JdcQ&mh+xn5eK+#@ z?Yz9oN)>lR9#7V2HH)mAemwp#7rs=q<BJj$PaExscqll8f>>X6te^g#`bCmB8-9}s zk6bb`f#tM+-&78OyXJE!X%_1eQjZ+&1-ID0r;sNTe?pl8E^fGHSg2+*qPEtoKA-D* z?`QOAGiAWvCKWl)bG+?|@5=F%S&A{SMpxg7VAgKdc)L@b0+dGA{9BA7d^%8HXhwe? z3421QZlzrylv;&Oa6R^uH8E+x4pF>+_yMl0U?P^gU)0;sH-}VE9z_cVgmXxcyA5hT z!kFA^_+{VKLu;C)`pnaUrpXrEQRUX1^JPE}@~(K6-p-=t;VD}GBC!wsAp5h++#Lqv zp6~%(4+2y50kN0h&`*Pxp1^BHn}tzM&y1=OYz~5#jC-dUs3zB#0~~~`0;e{w@-H<T z$yc`e8V2Au>G31kz`KS$LvpD$*&x`sT~TBNHYFKsw3u>ve7HSOa`pXEmk*gP(C2tG zq02})1~{9NUdCkiV}f;NwIz}O>ElAjHyYhQXo?dk!_tzL0En4t(2Bcf>M^-{R*jwv zn#lsn$KoA`&8KA-3u`Tw*pUAy27cjO<*muQyl9d*Of-ZhI}zjGH)o)XziNxVhD&O@ z5{lzSz!D+D0RFhT?2qF-*G@Yw=Jaiea^NY;!4LamHgDS8--vTc=yQLxIJz9Q<<S#z zbNRhSSAc)*sb@V1+9vRrX$}<^Po9I<Td$Pgg0-%`D?y64N(q0U{x-I0`ri&40ftuv z!6D__fQlE%H^C+g1_t;35o(4!=KGD1F&b@k9?EuiKOL^r@n7Zn4hy?f<9Snc%r3tv zKe<>0{lEKGY<VV0oYJLn1V078lv_S}Vn+J4e7_npMO2yh9|#3UJMww%?7db+WW+sg zjUsC59j#}3rd@Wu;3`B)1LhmdkC+|mS~Km3(YZZtA>~t~u{@siRo`T*t}(J_{oVb_ zzqEqURi&%vK;tVv;-Hza@YvhEw#F+_^opG&=@(n><S3ul+m8ni7@0Raj9?hveg!*Q zw;E3Sn^APlIm9{F<p!|^S`_xq<!B5|tOzepB?x%UWA{yZR&(-Gwih==4<m1s-m>T& zS{U~r@0|0O?KVH2P65&aL*r|IZdSouVI18Y=)a~^9NR5Y!|9{)XqP=UtE&>ceNGh> zN{z3duHV+0bMN0=nMwhFd!YJs=1WA`Pe5NoHOx6AaA;#?#;)Z^QVmg;Zm8BXiUM!V zS3`EdA+wC#L!w>AoR`VOtd0|6oFxEL*@q1L(9$@yX?IVzXYIZ+tuBP99YB0n4>tL= za2qBmdBjCm?ZX12X#5`U%vseLebdc~H^}a5@HKRlL6QSwRFaCB<#Q{2rPtZ6iYiwq z;HGUqO>XYLj5CjO_?Z-&I3{RCa=U(BHLH*R-LLcTO76fq7||%;@S2A>!Rlwf#LA5{ z-m8kKDbh8t;ka1oqx>LpV~2uWY5Uo=(5AY!VZKoNG`D!T^sJCJhLo#9rlQnV)W*>5 zHIg=kNx~DIp9vjjQ6h%s*(|1B=6t4O%JHUCFxT2Igt<<EsbMOqsI_O8J0;|lcCIbl zy95(8xTedssj4&6dX?#+*B%&N&Z`sNz$>u$d9p4~wkXC!bNRBhR>SI<l-EXFZidT$ z6xmmA6^MkggN^Jmv!#$^AGtSMJPBrj{(CR4s@t9GSH|@21~{19mXkW{R+=-lC(6OU z>^hJ+478v9zZu~|BP+M_8yrWIONY&OwP9)N=kfG?qiE>G9!V|zUa{qRZihj`e-wl0 zntpL^yzK!CJJh~@YCTmtJNoFuj00)LM&J{fs>Fy$`H}kLYjQK*LJoH0M0&(&%$UAh za2PotP;P$tXokmA_;>37ugH?y>-U7eLV02!l(qO3449NLBa&*>w0zNe87**Cd#R?} z1_OaID4q!M)4OvRFW(FOZIM^aCBm6m&D;6*o!q9G$3CoQ-)bPGDhmJNKZ?q51o+Gt z3;3ATJ5$tdl1P0m(!~^<Usi1&TRRNiLwf8?uB5X(JsJY4nB*^3D0C<iiVtYF2kYl& zHmpxQomI?llsK7_rn9mZOHw~9XbLaHrP(Jd?{Mp#IagYC?Y0JSKVwRE3+_p@5K*Ds z$#^LaS**?nLm1+*<8Ex8y~eQ{=q1LkmqVAkWUq(m`k{h1@!gIIl9kP<@_C+RqU6(} zfk)RCe#zmXE3taYyUFacPHvK?PF!iDa$U>JmgjVyrQC?GY7LJctu9rfyT+O4TbCBM z4*%?>xEQ>9e<D-ZXU9@Mb+J{%V-`fL@H^K%KxAzAG{Kr`<7B=~DTLrFdt#D#kI;Ew zJ+vD)BY$zJVvC&B^IJ4fAv%tY=GFaSn>HwysHEA_>m$1qC#C}oITJv6X<P<61TMZd zUXr|Cv38qNh(ERmn@Jv1K6Zo`@joCRGNJjg#B5~>(sZcsRIItKQqIqN4ptogy{12| z%6z9IbtTG%pDsCEH<zTGFuk5fe_(z5Q5*G&N%O-SO|PWi#u;a(N`k)s82ZN9A7t9| z*KLDUYi3->0pw&t?N4~50gQdFVO_Bt4F=o?Q2wsQTYU>deyi~NA($89I*P_?SB#C> zT&z(=Wvo+TOgVQ(AS&!<{igNFljHB~X=pgv-TQ?UHfO66uenaailHRSqFa15awce- z%3I8kpsll{6K7bcJBfTD&P~_`V4`~NRHTb~)zo_|jhUrUrexK^h*nk>;L;V#L0zjR z|2OOJ>|@qylqhTU7_hyrXD@>1dE+8ge$IxVyC7i0&v;V{hlZ}b?0|X6A<F8fD-{YL z9aaC6GwXY1;0{6m*;C}^h16s<8m!6)LMn>-J`B!IS^F2qkezr^mWYRh;H>p}GUP&o zizB-kz6Zsum5`Y+F4cc*OQeOYtlmFe>}5;rT)w|N`ZV5u@Hs<8Jr1p~d4bnmByajj zC;~);H)y)m2EEU{Ha7g`3Mo^5yp_Jay<u$d)|gJ|xMG#CGUL<=5e9@2Ofx;nHf*{# zbG+bv|6T#?KOv@cuj0Pur->G|l%3=BFa1SVy9O$Sa!II00H^SgC17XTrVlCBfX=H9 zuDw{E#*^K2ZXvE?Allxsf;(CR{D7fiecUouv4=HLrUMx*E_Paw6n2E1Fcqu{7M>Gm zj}}4r`KD~7eY;=G9au@(DbBHlNz7o0NuNC|@WOrotZLiI=Wb3-9W~|0cS%&LA87<a zy;VD{xjuOkEp`kRvDRX6A8Rwd|0vq~W=?uRR-srnj5Vf{P?>2b`Rs^}`^{WRVuX!k zgR{#qFK>MlwSa#h{hN-npjCOEkNNkkMCzZ#8`V4u%2H|IJBh!<BTqKK#I@>&7)%@T zOc;BhjMTdNA#>j;fv}4UOO!xfzcyZC8B3@j+N95YmF_IIyEpiD`;ZzCu_SClG$p*Q zf5XIkUA2UIf6u0E+Td1wI%SjB9$T_hzo&T>`0em((%#OVkbbV&k}-RtP5#_cATe|n zQ_?uXOEjNGD25HKvGl4@;;YLwC95pLKMhMoe9byk9FMelP827^?`GdWT)P?`PU%#d z(L!+qbnNj9!+Uw}_tI#30=p2ALMCmx$dkE4$#PwWtjdR=W#G=Pa_JOd7Cl{Ho<-7d zDdsV@s;dwr{B6{V)eZ?}9}NhvzkL_JjA^&){%P|_S52wO%TjNXqJMW+{<xAY>htcB z0P6=$mchHj53TA>dtG)GrDw?h!D{XgMisNM9U6^OrXC%Np_I*5p%?}DZ&^#%wp?EG zYZ0jZ(^7IjGPu7AD2{RbnyV})0s2q{*s`IN3zx|jc23q+DtKR~Q1F0h5W#8If4J3W zAX)OtOIcD_Yh~SMa&GvLl)vCTlx9g(XmH2wozDZO4wOkiY$TMvs!=|4tiJwZp-1-3 z*|dIqfoxK_G|MnGR^-uO%c*u^Nig2=Pa@0mZid1Bg{&=?jXgz}f?aBWX)m42+%J%v zq)rMX?Y@}br*WCeeq-%La{}^QkxcDl>xx8roBYkcWCvflhCEfpr#Olt47QM==JH1a z&mAe7nX)|aDYQA>TZapP58>i_Yg_pi=e@y-wN{c=-9-)9JJCy{M;uo|ytu_sTJ7{Z z{1Szs2Yd#Lnh#2@N(?5`5M<tt>QNoHNe-|@1`hGK5Ffe7^T5hO_~MkFEm&rlcvWW* z%4<|1@v<u<GtnNcf01rdYh|1tgx8f#Ur$#_Bea;~>b0oT{}wGJJNI}&3BUSep#Uk4 zwNp69m}m0T;tn~Ux0F}@JJVK(95F0Ifk2_-b;qO<qU}`^;mM<Rs`lN*oFo&(I968o zsRcFm``^E&lK15awdooeWm~5_+r3K1G1t;<e~!N~Qs_lSdsNS`b)o}q<W`0$gWAWe z@O=toN2S#dU)<hXzff&*9QMZc0NPC)@jObuHR8{Dy4KoS5Th<D9^!slbE_xR2<U0v z!h=#z>28e_n1UQ{T^0?HTWq$*gt|4AOR89a?^~1K-GoF_C!JJ8+M1k#hpWlw`*zP% zw}~mFLum$ur#~reBRYVl5VQ9I5XjRP6X|Z=3607b_{{I9@JH!~^dCNNG{?BH@>T~& zGne#u$Bvr5g*wG0-Lu?yMCdhY)BPff`kiI<LvrxwA!Ye-WxBmgJ4|)E^IzqWjigCv zR>%O6Qv0eNp=}F&A3Y^WV`XLahjE!>wiw+=$fZf7u?Tl0U(+@>We%nqFA3XCY>u5O zPF)RMH=+GYrS;2}3+J9i3xM@aH;J#Tvjz4`iOI|SS0Te2j78>)8oF<h9wf>EA{!l+ zTDQs2xy)LfeN1zNOnPFvQYD~&L2Bdl$`zm5$M5~T1g}z^==tu3<*MMqo;ZOFA34?V z&8dY9gARvk&^{kt!cUG1Q_Htedl|>!>HNaP*C|KHOVy>2h!CQ6fW<6}fBS-iyd&d{ z#A-7bX82X!Iz&1<lO8qpP>Wnb3}mhXdzMmbuVlXY%%Bw?X%py_$KNse(4Y^4@B9gJ z`j&GS@C-n1hfBFszx5@9oJQtElZhhL;|PbViepA4Pt`95VpOS8AI(lnEl6`*T+^aA zWm_i|H2$eUbA?x9iJ3S{%UP>i-fhAy<0lp4KI4?RPP+xmYwFxm+;0p?6Dbz`!0sa| zgY2?}z!P%$^>}j?+I5^x(=J|SEwP<pQi?)VfsY(n7fQbRCQWpHxiOL)=iC^q2`LB0 zLPZ=KS{(1{LcH#bs@GWCj22==(-wXWgwsia<Y=6+)vEX>ueJoxHH13Pl4ywROnW0N ze=TI46>o_1q-na1W1jxJv3LHZVh)CA`YceuS6+3e(Cn0TF*)GxtzZF6@K*U?xhvbk zkz&vFLY*N6-`<xp8DH|u`AGB4hwX*D`i~d!+V&us$>pf^b5_-Ak7^XmH`^Ht+n=(b zZ8Fc34;NkkF!mdy{8lJF5igI+J`bHnN+?+dm-{!<rU0p|RO9T^CpdNRrD}-t%twiV zx{Ff13Om$3v+nP;c9k}$QfV|@`QxlG;`!>^PCIs%>rvep49WSgQ#?`EMHT~=W{aHp z3e`L<+U%^(hGB-fw59xEcdxOgW<KJ$mv&xTY!lGjDXazy5uaZds*Bc%*z5pVxT5%y z1w!n5G9(5O-=>FNs(hA-f1~%%eEftA{n9gbvp5rnYkIWKscP1sUD33|fl1lx2{P|P z-Q#|5W~HHB+n_aRHfH=yY6<sDJtooec(V6y?ip5j`min{*MB@Q`-e=q?F#xn9gkw} zs{@A^7RHJZt&Nmw^~#d-<wG%<x<*+v?p%)iHKdmt1(K+|@a}c#*PlvKSmo>Z<Rj2g zLyZerNk{bG$cW|K=d~ZjPVjG!OyZr<E#Qam?-V1iMR|F@g)wcjNssc^6e$*@ieF4> zu4_-11ie*=Uy(qr#pe%#cI@|pJTO3ww)#V{ld|A}p^>&#4w6c$DxS6^H-j7F7pE(g z9Cb@Qn7cdxYt35Ow5`qeoTlJo*YrdH+8X%{K#TJUz(}#{{;cLTi4w(wVb)z{ao$*X z7TK;9GAxIu`u=vygR3yYK|{dg{RdZS@puepMOucwh8NW7{8Mcd??E29*O>gK9xBj% zwwRP(&4&`6Q~FlSw%8S}m`|Gw3JO+ebr~FI!6xhO0W;3?{b61ICenCfwn@yd{xEXg z;0l`AQjrd@R-O1h{as3H`AI6?qYFhD+kcu-cFNMavm1Xv?DD!(UZe5|TyI&^oOOh# zTeCA(4zi1iDZC;J*!im$2~xfME*eYuYl&@mlth5vz`2~MM1+WmqkX!njxH=N^lsD4 z&HLMxP4<T@53Zx=Q&u$NcG=|l=dP#g{ad^5jemzsRMO|16uF2?;MmjF677eTKxovZ ztMZm%C#Up6&6!}Q<&#6z7geGBXRa=9CTxCo<`g}3|E%n)`yWL#imN&8+p>i^8;)@( zxB=M_OzU{y-23jUsEqmbujY|}=cnb>q^IQG%sGqP;J(E<e!y()j<m;K2r+)9(xGvx zG=Ke~G9S7eth2w~9J8>DsgQE_sy_N`;uiWiAk^rYrqY|J4bX!l;0>!_{e$598_PW+ zx*X>TZ3(V_&$?G-e6$<QUz_#kjYkM_#F;dD8nr+u;g&E{O(o%#-SZSu8;In*WXh$o zk4>dgZeUp(uuSXM$rF!OVSv77WqsDR-#gQXi#fXoh$rzkA|+|9VF5H?;W}QG)IpNu zS(`AMtNhUVg6xDavrT-~2KofGF;yMC-p+eUmSy>ns;}%1Y9sldH+Kwi87s~70d%yL zOmVRT?&7z4Thrc`DE%y6L8}y=VOOxv`TVB^Qr@#$dUjU&EkC?;uIzKxQ!jeeW*z)* zJt~mXO38TbKMHbkvRu`oXLPZ5(Z{-d=06IxJ!$~snb*dlC8(yztL{8bw`K-dZ8~@9 zi<2A%yQlxVL!S}8wmOTV1jeIO*giEy86+yc@pwGI4^wD!K0x=TC(EEQ$ZIV6kzQJ- z)y9Fe)*Y=@<Jh@m_jm4BX?tg(aw<okjrP}G$R_cm_30o!%X7L410MXP|BnK0-PrtU zgq7xbe|505igEx-_`_DY0^o_Fk<LqIo#j<z?4O7#)UQn;Eel{y%DBb1nSv*WrMZ`* z%z?j>Qw!%RRA0DVhTy<E29T=Gb7;=02kzZMu==m};o1Sb?8RM|EdyMQ`@XgKTdU7C z=L@HMC{*cLd3m>tL`f<ElZuPoCV3`zwwY_RDFstvHZo?gfD51(sVz&%iT~As$8PJT z`2{s(wf2r^vUF4I#!&FA&(B-xnsPBp4}EO5`Ah-gADP}Khk*ZB0x`V3cP)6!hsCH~ zR6l*r*=rU{h&rIn5iNzDKKYu&OD{-6>$LhxuTgazK72U}Lr6e``(}eI;Y%UY7jqH8 zy<vuKU)Ii1www~ZwB-T!p3sLU-RJf@?pzSY=@YdADinR1V`ia6En+oGPC9{HAP9^s zt*}{H@#$b8kkuPv@`6VtcYfv6*5uFG6y_-(VnBfw|4}HbS_4`V8vii05ZR>cG(@&v z+*RJ54n%hkiU6<ppe0RxC7Lq(8JE(?m}(2%w)i7yNa~$udM~;0QY*xq<zjywBRp@M z_>Qr{{nWIQDbN2XT*`<98{qz;iVLyH8`ri|Hu9lL_c^9szUyGi@;{0j!Tf(b*n{mq zYadXH_I#Lc?2#SwE3QEmoz-mtul*)XqXZm~O?evuGr8!1O`%4Z+Eq=kEsl=!cR*q{ zTQ6n-wDxURjW#ZXu2HQ-Pwn#LoGjs6WQjO%7@L>Q4VL^3?dmOFoVP-ymAYj4D13;e zPZZBx+L>bR4FKR+<4J6;NQKjgOHHtnX)@xp6^uFe%=12^pP1|WA6q@FGISDnpJll- zlx3d~=c`+mrP@^8B2q=U)aRK+9&Vk+F@l8Tedh$<QTtV{YX1rl9^8?KJ79QD`m6j@ zNi@(0Q&r^rYdAZ5t@z&+#QwS6U(>S1dr(V2*kJHF^O<ajsCZZ?$E7105R1Cm7OQt4 zmcL=iK7GwW!!XiZ(=%_QWtFHI&;~F^R2!O2Ipi&T%iF$nli{A6>1J)Ts#~?w@``wD zfA~gwJ+c*Lm+kNbF1W!<$uVo4L6#h_3z}{$CMx>Q=SV58mR{Yi!(N?AG<a#}z=CbI ze|j^XQlNb|>oWV2b>NEe%y@sZTa_)?yX?~JpySUB|I|12TWxZ?oj2rdw@j4$|B#<B z=M21O)U?Ns1p^Bc5B>`|CI;W!{A!6(t~^4ML;p<)Re8L+E|=!e640sU@N|vnusG)( z3~eB=_dg2k)Z3IUS@g|N23I|<uvZJ)7P%uqVqy+sI=iRRY0r-q5tog>pxYTG=j}=N zdo)tzxBe0<!ACPB8_oGZxn9+%R{!`>RK%)f`ElDO7<;zCo+6@f9~^;hJcEI%x9N)1 z?hS5$l1%t%2e*Y+>WDVm7s{8v`kGc);xtAEbVF~KdSJy(vsNWv^Jv*GaD<$4^&#Op z3>HQpKNFoLkmZ3usr^G0*E+rPBUzLIdTT8N6jXZl_Ha*9%MU%=Xh^;h#D71t;e27K zMywxiVNP}YS(}PSL#+LDwM#UUAF-2*pZP*SDWUWJ`!>DReCw7&Ll3V#3Y9_powV7> zIJpX>r}2=+dfK!uAE^A8Ls+v}`ZrnL3Rrt1_2Aq<Sy-++kA447j&e`MhhmBzhgA&9 zuI&opE8nz?DiS;DJm0@|%Cvq}zgHyN#Z&s4{c<8FC(qkxH7XoxIJ0*JO9EPYr>#|c z>};NLo2W)8DY}h%-*g#P3HZ6@-|N(k+oOGJBdVPD@CNkdL(jxXlzS{;vaKb31Hd00 zkM>(*zN`54=^)WzTpADM{9}H5!i;k$WGhHSAyIm%)Vr_GKtBd~a(D%R7wktxx!Hr< zXMZ^*=`{PC=Mbb91z+#~Lrz>(EdAD|5c&IE?B!P0dDszQu(@@5t)q3?#^k1(!M8Vw zf$W49bhcUZOzz$0yJ+6)na91a_oqujO&zbG|55yuPEgp(G9aPAm*eGPN>Vs*M)IT_ z(t3yZC+;?M>-92SI}_PCXdIU)z#3fS8fQ9EL_lBP6W|Bs*tR$J(HdqGhG!gG(wC-t zpMa1M(a1M}b3&bBCM{{p@EvdGZ^N18qHWeBZSHs5FuF^2riw{TdX2c?gQVQ06AdyC z<AHzBm-UYxu+%)^&C{#;^ce;!{Pjph>r?w$PwnzhOkj{jEHu*?Fw8FOowQ>rB4XrL z;yle|tJkK(f;^eAy10hoJ~OX*W!3Mrd+#=GP}M?9h3m``-#a@?(X+3iFgKpRKSvOy zZAW6f$|${b4sGMbFJ;rCq&+xGix_nT4aeUp#ta4Uop_N@ZY7CDGnVB3Y4X&KvN@yf zrYpMzegcCYMhe}dRanN2eRWDIiIFs7xl2CgYw4S=>U^{zTp%aP(+K12^-ZjdT|c31 zqLg>24VddMp*g5BgPdN$5A&!Z9z%80__yF|K{TXm6R4g-W2Drsh*6&$4RH#u!hPnx z47k3bYm)rV?5U0SmW@PN=sb!YNk8!DX1{nkk=!T4fo{@_+@K#DWO8MHGP-bKV8-wK zP?y|Y19Rz|F%3flc2Wtt9yiWF50p3Z3X*gp&HA3Eqpt7AzF{Dj^a`x(X4Z1IUDdQJ z)|Dp7HgJWxiMhTc+MgM`ye_Q%@YOX2xh4I%+dl&2<ON5sU^Y&*5)pW&+QUnKWymEZ z4%%qQl>URIPb#6Wl$-kaIok_J^$NRZ`=gC^gH^)7zE3M+vX@UdjP*LCuL_O-gbRu< z7nXmAmK_X`G5D!2yM-PBKZ6(L7!Vte{WPn4_lvrw7L;^;Aza%^{QofGU!!T-r5g&d zpQcm!Z{N9?OYS5(1h5)5<joH1)>(gtHa|*0fMAVtQ5Y{Ifj@ncgC{#4E|4)@dV=ao zuvH%%>{QJ^Cq*I5E}u;}wvSG}-h3|+yl~?$i2qEyco^m@@~*#Lt2<GI=63CU0H(iN z%C)?FYjSAcdy{AM=qaK4fvTG-Er^gT+A}9o-(=MOTUhO9b6cO~UeT>@@3NXQP7?BC zlwDyFS+`26zFPNE@4i!G=HS*D>^RfLwb)VJs(NYVv5@1;b+WNT1O_Nr%k$)I0WzOT z?0$2YDI;sScK~j!65seTkBl1PlKu(@{ITU~Rc#*M@!1rVPT9R6%VW@OG6`|NELg=+ z%kb@&p3$%y$EPyZs0S`z0er*oKAP9~Bc}VmYg9>W-JO00L*hKIdhb@8pFJWxui8n( zG<34Gx?N}g;VcDh;H&qbfj81oHK6k6PFflJ)YaYQ2Fda-F<~uO;TMC(taGE<hM27T z&+#ASrnsgEPq&nAHy)q!x`&;1;JCJ{AD6dETu$#1{EpskePMcbu6@k3M-@5;qm!=V z2rT*DoNo9L<uO9_aLY2}Ei3Zx8_(z^3vprWW&Wa*FMfY^w#z9-%kD@J_)R-ZTUpA$ z=91@ENvhR@U;IPmhas(V@|B_UWNoS%vX;!r9FL73ZuxA_Sz&rrkK#}Q_(S2)S6b6_ z-)LmzWr}|o6{lyPL$3UP6vdsUVb0Mru*`{tV7@8$nv&+o2lH$q_su*8%4$)JE?(8` zzjWzuy%6RN=@Mq4!?NRIbPlk;yYQUo%x1Dms*c15?dS5oarq)(b~$gN{Yg;pM|t|~ z*qKn^++R9Yu2ARa*h`bkx$~@}VBud7G2ToDjFn?Fb=z(7CIv4%cEp<?j*uG}dB${O zTUcz5P=98Xac5RR#Vm1&GRK(`&TO$tXg&*}k-L8tsr>IJ#U1g4ll*B=2lx5~%R%at z>j9ArOvF$B&iHBZYN<3OHFfZzAG?O?T?g*F2w~;f+8ZCEydoYk=38`gH|}*|js1vx zq26JiGW*^cyTHJzQQD8&0~m*$t)vE<8=wB!g70};`Cq{p1QQKi>61O`Vf(X+!nNT` zELs!8(&nD6uQ`&ojH9~5Y3eLL-nbtMlu$4ggc6M|6(6wP<w=K*O*lTlD7-hEBf!sm z(rZ8b-R&gYK;IQsE!QxtzpMhEd>NF}uhreVf)@RV#mPklk3ZJG3Ez-^WCYkZ?Uu91 zT0nTV{d*jnv(kbi!#b`%z>gr`wI|;O-SnpY!<A+-M@T+1gu6MVuYabLyxq(#@sFH| zyQ5Ct1x201eo{uqg81@BLz`M=mM;Y+@Lg78KhUXB?;m-e&H5$ogS$UiIXy3U>hq?i zt@G~8xGS(xuG_dNl3h>AEjj(&9OLededbqlgw*|}TvrjEL!?%Vl;W}cCUZ)cY6Myt z_9wxt!u==)2s?-6CJ=yOS$uv+x?TrD5%SkG*eW&mqq_as?4Q*eemYEjL^H?fP1HM6 zqRwbcgTH)W9p)JpGy_rv?cLU_>U0e=`z~=!==>*bUqgVl#juAk>G4UGoD3Ei*0N|3 z%r<EvC32I2T&Ux}yOKg;>WjaVl=nQWt1V_QZf%a64lnVCU-CA2^KRahJQ*>*`c9V! z2;kZVt(bq*_(Sj6oCP$T9VF!!RQA8~k0t-|a+8BaCLRZC3fb92g;7-|U9#?PTehcQ zZ;LeZ*TvvORYBrW1vFkuaTMlWtDlXEuga7pl!ouRz80$4x}i(%Z^oI*V5dEvm7@4h z6>CRB1>fgWA<B2x;{EL1e+l3#``rw&IDyZuJB0Gb&x0X0@Pk?vGT-ME7m;(7Vn{(1 z+>aGod5Jek#FHlg-M&U`+e~XYVLkDY(yY!-vVvc`GaV6E@>IBYdG2^&ulURyhZmYi zVtBBjDxkGexp2upk#`Irw8`bYVBwD{Oe9psPNG4HcU@T+*yCUE7%J+>Jv^?s@W)f_ zlY*2_O-bt0lb7QgA0>=w$e3Bc4)T&7z^yl^!JP%nT*L%ROvY_IEo$<27X0w$xcnc9 zc`I6~`4hYU5<5k$L=+)~Y*B{GR9E8y{-l;e`FAX($m?THMC+%O2>uv{-%FNWbk&Ak zi-+)YQi+I>ZB^UVvL76%+NDaTYiDkoDCkGcfiJ5eu?F}tWazJs(%+e%>9k^7tA&Bk zH?0;2eJObEEVJ{5wtE|IlD#RcV5ZTT(ztW;P^P@h@&JA?P=EZHj(Z_2Mw|3x_xqV? zi7t(vD}6CVnC!;~#H<8B_=TI>2ya|-Ty#C<5GkygmYNW`-x%N8K}M;j%hQ|ZJghIi zFvfadVsZGLLH^Q$YiZNEQv7{d{bj{JeDF?vb)H#>85Aft9^Ku+=4%Nmj5}{m&`<iw zHKQ|(D+xEPrxNW+>gR<5pFBUVc|)4Axd+ivY&H|IBxGj2Fh0_2yDAG7svjy>Skped z<pFe^u`S}8dKM5NZ>}g#zWdq04L$a;x}TC6WZT1s@Q7<U$1+Ml+T*8u5Di?|z@eMf zeWn;(4Vj-!-L3dKrGe_hJH*HL3C(4ARnRi^;%{A+LP?$sA?7}HqYp`b+eQb`z5h_o z0io<??$80P$lrs$4=BO{SH4dN(|*T}{JKhVU{^8qeaJk5#B=}As-6WsPYI=u%Xxn> zHIC=pCxOy^Uf~-YBDFOZh{pZYoY47kk=GspjWEN&aokcyNXVTY5q<BY?>DYz{||Q& zae4Zpu4cv9tK-gb4HO0fMiOdHC5MkR?pRmd5vW)QoeZTwG(y52ItjNweSg<^wlRSv zc6!jRLPvHZ@nn5@PvI9XpSB8$3X>P;9~h2{sfM3<=*USup6ZtM-dMe9Dzc1#f5M-z z`)2ZVewJ*#uO)pB1Hqznz4;L)>*0eNx0jfI1WhKeq|Cs8-*o9^_Tb!uxgpEp(z=y~ z9O)E;r)j^vjqLXOqWwlmALU;AOW5X+<suwhi5YwYT2;Xu`f7~UIT54VH8fJV#X5FA z>_OrA`UfJUr0R8@uMxtP1owvi$)yoq)GkewChgz+S=x=G6@AYrmiJvpDojJ&i-9z) za<l!AGzew<*W+H-ECQIV+=e0GVI`{0jcBu1C@cA!S5FAiS$g6-bC;uB0>$=&BWSvv z4L{6ym^9eT1ot=uWwRlV(=&?dQh@Xnt~{}O$#XbzZKXLA=8||5p%T)2loMYNyi14E zt0%LR9=j=}=iN68?$TuU#Ou8)%tivl&!{i9sp-k2X>D;M65cuiwff@66g&gaIH`6^ zZ-?ir7r>&3GSU{Atc{y8g2JQ5R;`Xgr?~HlZ(w}`zS2K@81aMZROYQX#{cIiT?QCA zq8+NnSCq69Q)~Z{++m0wh+YvE9D%!BREEl4-dn+Thp{udHASi=ZLnC8((WPuR6Z9g zkR?1`O(pGr`Uq$493`5%umpAuCBGin4(?q%j44DnZhl_ZwyU2h1Q{6oP6kXEE6K3S zIKq!RP0RTM#xJe_ukyQR2^stvxeuNRtbR(Kudr~AQknZ;pQ3G~NbQ($yP2HzaIK|t zWk6%Zm{=(erb*I2$kGT~eeP~SPDcDQ`+E=QU;p^vrJJf>E3^CbvI;F&j_od8dVFL* z@h7eO7Tp|A$>&$?;7l5Y*Vi@d;C20t&|_}IZVLa}EB=@}IV|sc9HuLYfWP|aEZ!LX zr<ez_cT^DN6Gb7s6#~8+Q`wac?P;ht$2TYTcpB5U$6qxH@W@f>r^^&M<8G91fuX*| z7Ja=amyhS_(CTsg;{v`)iq-_?lso_>S7{OIsth9Hv-qQL5)lP@k4yEQ{es&P47CQ< z9;2_d8*2@TmFU*WaJLN~D6@D_Ehw*G=g+*vg=Ck^Xkw<3`;VGu^cu&~Zd#gtfP4?r zgDQ{Xjf=Jpco$s{UbCrObCcl3<g(&@aliT0l>an4u_K*tU>X8+41d*-4>~F1=;TvJ z@vh-L<VMoY-abiBg)fHu`R({r>>mVi>m-XuK7mkTqz9(eRVH_f&RR{A=R<$Xwh4sk ze$-Mbmlw`U6G1ojrsp#%WyBpmTU;AByP1%d^Y^8V9%N(r<cyxf%F>gN&(9P{8BJ~u zzYXWg1%20)_Y-mIqqts>f<rjcu7D<rzjf_CI<j$O#RK4Ed%~&QS?Z9HlSeAIPNWAW z9Xs^f_l_B_#0Pkiwk=N3zwL+|&n#cb0Uf<{Uy4@k_MVf@k7DR<GRJ+S@XY<=72@iD z=IQe9m*DS*x#uZE?C2Xdua*&{X!jV4!zc4|UWoY43S@qxW2?Q~kJR{1)4$Y)Mo{aO zCi1#BEaIehC~I!re`i0hqas*R)&3B(F*Dtwp-x;*Gx3P<8!skHc0VCV_%7kWA&l){ z5C(d(ke%6BmNWd6m~2mZP=y`G7y{CGnqsXL4Kx^qtRQ^E=~f}rHelk`6_n}VS$NA@ ziSrs-Ht8QBpRU+nLNvG8dQ*`&)0Q8JdBcKo#8^<K{jk4Dfr@Nb0b=~dmgd_>4Vd0P z%ib7Ntu`U+%b<9Hl^zZ8`??B3(OhZ?9W7P4tRrM7OO}$GD5#C_OH^fVnh=yo*5G*) zAt_G>_#R<ioR-7)*{aGk({F;3ugB5jZN&bgK*VJGA)^enCe)E5f3Ka4@&OxVCWI`3 zP4r!blGZKKAvU9x)xOJ@zfr9Pt}#1J89=XSd{ThWKo`IMgU5%%5@UPcD^5|jo3hkn zBpO>5)=|Kc0NhncL=S|2?0Z?y*9R)BT#cOLc!lk857|a~^>;mrUI8cYf68QK5V(Ho z`qYW`?+SkFf@@6aaq*#GJw>s)5rJ~HesjO0$|T-f#BVeLI})56Xqsk8noKWuq@B*X zs&V40K(sZNWfRhLONdnHCgHZ=1a=O;a-%{*16kVazR@F(3NanN{Ixx+!bvem2&ZrD zdG(2vQdy`e7x%ClzsukD%-xQc=AHXst$6EI5ss~t7^0o0_483Qm0F^OIU2;6=8yg~ zf<`^jfD&YWv3Xh?lUHzx4`<TM#i8h2^ey{o%Fn0t9J(A;@e?&vTql9!T_*IemO+Pn zUmh#oUyD4g<w_w$C&&xHki8u05|2U8IumV;5#yM<*f$8QXZbU8?!XPb`3j%%%Xi3? z|BY;Fx1!f`><s|B`oNHkoxeen0hX`mzZ9Ac-t9fT_SK>i8HqTv%NTBsPgi<$TOudx zP&-uhrHFoY<8bg%da~&Q%HKv*#8>9I5=)k8L0?J*9Ux)qughMFIfuZi<Iht`w1Hb5 zW0+9NLS(q_WA{Pj1@X)~V@tAgRiXW%Y$3cWYe+g5L8wnXWLgex(i_|nLR9m1NmnRa zTFYeKH@dN7LpCPeTsTmki-Unh_10z_T4TmvN(#|-zM~)Dtbo3Ub0UFrhAyLnB~*&F zGVryKxDOK&^rgJtzShokd=Nq${4f`|=NG>EVau>Ai6{A=BK=0)i`5NglRv|24+TLK zxP;Y@s&_Af<O-)QE=OyjHvb!b0Km*wyAMx<C*CEqDMc<Z9blP<cl-^n^48a*!(B)2 z3;iJ`gNxf*1pb}Vw54eq=E>K9dz>`uTB3(J%M7$VyHegt2G2H;Gm}SBIW_r`7XJTH zNRziSze()<x8U8@lJf3qx0=M*B+>`BvT&-dizag~&)8QiD>DU<=1PiQdEm}uj)KnH z9gLk4f|tU|H}99&O!G?7_|)=UwYa~pyUJD4mmz$wN!n^)iC+83{kR`zHkYsb)LYTz zGNv>GG3T+ftNNTwJj_sG+ZXR#4yzA-HA#t)32`>c_2tw#wzDf$o9sAUQJ#w^uvRnV z;`*vy@rq4Uz4RPu|3hZK_8;p(`5ubhCV<-j6|FBrHP4%%_UNZ~9NUGzM*D$(4<{E^ zBgjs);HxAn|F=&-iC3mwy}fYXR&8HAa{Y*>(e*6?XQE2<x)R@>&t$s4{j7>*oUa~! z+NUaIz5FvVtd-m)D=wh=8^Gr^VC>Gc3F1n_Ub0<fXKjNT(e&sv_qT@QL!!P*VrQ#3 z@z0nyB=Xppeq{5ygfGqVZq#hFobbzC`?st%ld!udSLWU}t!Ms3l`|hpO-Wfehhw(a z^=(g}{N?*I;z}axV)Z{H%FV6w`eO{miOlfX@Cp~a8k}*FUQ{^<4f3MCm26-r_+!*d z2${7bDe~$?s5X=AM3u6zS@SDxo4pGx=>Z4a93wUiQ$4%2=wUkDI6RLy)9+)_X7BqD zvfY<dw42kpX`{QzSuD@ZYl4mp<y-^@=6?NAm$n9294K4c4*@R+Un4%>3gwPy2dw-N zUG=?JDc7inZ7)K?&U|bKnb!GsiK42v{4U2>adMrUhBmayquHzMCZ;w<{xZ84PKo=U z389nkr+qEItWVp&`1N||L0ewh*rnFlCJuNl!1tK@c0W~nv)-2#RLEJx0eg?d1Tx#G z1GE86#lNjkL8R!nW=|C~*lf48S&F)K$f8RUU!2Vmb<S%0Ok+7rML|vt%q;t|l7Pwf zC~H){;j}x~9zI!<Nr#Bhs~F9?TlICp^`i1UwB-eGgX@?~1taP+4mwk7--s~#MB>$( z&URNNv&w_sWP0nKre#l+RC}cSSd`p7JhWv_b*CSD!Rc>mhy&hPUX-*RrB<YT^4E}8 zW<Hpe901T=(d}uLt>Y7aU@IM7X82e5H)9u!E|hT#4=o$wZ%%L<s@J;nm3VhJ>1Fv# zviq2P7)rb(Y6m?L9Byr`CwDO9jFY3I;fDi+IZXI%%(LqQO6}L_0xyaP+8+0|{8V_R zj;WJ(XuB%^qqwhRI+Q1VwlB80n($Ec5iI#}(h$+EV~0eAuF_lq+zM#30B=w%RfHdY zTc_C83w-WUrX!APn<dLKKPB3&9odhbcU*`Ii?$~guqdW*XWx(?V4(Pq!e3=(Dp(Di zLX=!K<FA?ZI%*JhY)E)fW4F*C@H-*&J$!SG&ej^x11>)X&bMxiX}}b~84^0bJkGT? zI$RH3GeoR0mm#p)c6?!rC)Kdt>CTb=CEZuppSs62Fgw*xdF)5)vKeF|H1zP!t6z^D zmJ^<f1kQEASY;F)53F0CnL8%WF+A^Er&vL)lShc@en@F(5Ab?%hCxdNW4~;Xk3=SQ zhGC~Zc4rd(9HkhLXcD_}R%iW0n;HaooHRu{hb#$Z5klmtAhLgH2=9d)6VX!J&!p|j z`rL^fa^#nqH8m!($Puy*45?G~XTNRwCRu9B*uv5hKT(a&`V_pt)Rpz8wsBEE1uv)0 z@GMfCUvo6(V?fQBIh4T4Q1eW3#6N_h<|$HOYn*&09skP9ug|hMvR376oL4pKc)Pn2 zWC?}1o7sA1(07^L*m}1NR&eZ;r61-iE^tV6T7)mmG0VkyoCs?}_}jpa))mF_4DMV@ zC*Oi~L-@w|bCM~IF~d*CLbilriss0>mO!iEWRFal5ajY4EPb=g!b<&CF{^*6qF1*& zms|c&C91=b$*ZITp2^lk{p6;E%q9$bRDD6!`6kYJbU^U85na&QfNkB<q!P(~&wG$7 z6|S!?+%db@0mF4XIOm(qA}K(T_7jO;s&G@8t8uITslBUrDH|nZV!`mk>df}^2iSG| z!y4Js9)&FP2UW=uO7-puvhLx&N>e_GEUx~nLap@-eQI1Uf2!)ht##%g$W0jFjLn*A z>g|3IkWBWyx3^QUH11Ekl-@MOBl524VKGN?h){G}J#wnJuC7%pRYG52WNl6yR<Z3K zv7W3oF>*r#FycAcP&iB5rl*YaiEvu(7`tV+LmZRDBF_oO6Mv1?R;CHZ$Q>}0w=5Aj zRnU~@bVS{SrM}%4GU@`d=q)X*^u8bcmA0p0jk}=ck*n9z!r02M{837V*D3}QOS$%b z2gA&jVV`)<o4Djp$^xRsM{6)JU6@{oeqr%(IrUcK3Cs(&xt*w0HwURLMr3I@COr2A z2T(H@1HBXS3Q=X`-(|j)%y?HWyXG%9{`l_Suj?bJQV`B5K&AlS6J<5iA5%WRi(4hZ zvIWN4U8Mcs9@F{deIx5vwtvtx=9%L;$aH-XdNF_8ZEqVVkO|$B-qF4}o$;|Nyz^Fd zTc+cF`BmjxM$}d9RD=JyYvT1pQ|}V>@7?8;38TX!&BHemEn;TRt800i6QKSJPY;vM z4bP4%Q~n<OwXn_5L-6lP9({j5LN{3-zqsC4z!^7@`uRQ2BNcLBP3L^TFygs}Hactj z!u;g8Zg(oGb(O#5w6S)5QOYNKU_&iLkx_0yt+^}Tbv#j{WyW2#KE+7;VNG=0knEoe z!z{|F;-i9Ob860E_RC&Cqy09kLO8i|iuLOo$y#DPT<Pd_#bNJ}uI4NjW{p2h0$Zzx ziefMRd4LSJTZ6vA1FZ4ph3_8N*ILZ5n$$1$mM_0$)5{mBe?(1R<Nuc4LgcH^BMH=b z>~Px$l@nhG1gMovmAgEiYa=V#mC(&>;6J0R5Q-K&<k#@qFhQPdo%8D8iqbDI6Wfz- zOQO@&xF$49LGH&Oal}z8Q0VDB18uAL9<H=^-`=NB$YnJj-8cug05}+p8>zoJPTp)- zJ_myzr~j6C@8I!D__-l`gn$e|*9x=uiT!%33X>uIM{&riGvPDuoS|Ef!u*iTERD3I z@bVs2^YS5@dw48?1iuav2YExfKdfdsg_Zk0Z1H>$vORSZQk>U*F>_rBTlvlLjU|BG zvE6W*Sfb`r8>qWvx>dVeyL0$-Ca(BTT7KGp6gbiwv^U=zTV6iH6Y)EshPXfU6Is5w zU5)$c)ZdN0oF5DVZH@jx?&Veu`Umca=yI{}XV9J-*2sK;)bPeI=(|JXZwBX=*SNH8 zp^ewqLlY;W$4u5^u}!s`704w$-!dDJo;R7UsOe+GS8xABYH$VqMHq6pdrFgGO4}}1 z<64V-WGxBKHMo5jj|>v?BN;1y{*Bpsw_sVM`@qD>;rzuV*tNn6H3-y0w2?aKb7dEj z6Y_)53$A9(bu8-o0v{Ll+CD3)(OE=J&YIPF>~cN&q3dNKedLYs>wP!<aPe{Gzt8=$ zEIa~_%9Qmir)=phI>P55JW&IZ2`#5J?ndkWs9F35IRabBUgJydGtWZzUk=lTKsdXj zaWonaL&|;3=Vi>@9rHhB@(kQ$?ltN_AsgeX-vCj5^tM{=bb)mR7R7RO*GFWl#F8m( zV0VAHUM(^Z$(?{__VWFUDaq(TSf})3o>c&=q?NQDZ|42oO=hkskD`T<j39pK^~{B2 z4P~LyjPe)uJ^m_=txl2>M|6E930t*RcRrq5@@YvO%hc=ans!`xTm}Doy^-3IzwD4d zPNI!+!K|+=K94d5N1Idmaf{JfB3q_MTr!YH(0VPeFVFj1s)AtuKKVf`G>#VMmtN!t zT-=>RHt4glXGgviT#$7319RHT;%bMM=T_G&A=~-Oj;9{yS*?u+lWXyafd>mhA|IdL zB+eR-r&MhpxGKb-2c_BVY|6fJZVEE;8oiws;4Ut;F%a=6CFCV;0Ke9nwF0uHPmT0@ zI9P2Rm|SE?_fSQr$vghoFHp7>3;*M3)P>t#VRrptP)-YX9Ce?AZNvtaboZ*v?-m|* z2anxbzub;d<HVo0LtYOv3j9Kn<0GZ5k_c4=X6rNkPe(yhg;T}p8;Y@Ca$Yyn{P}p_ zc``$!MBE>yr>abTdbuCG!EN}qOVwHlzGTAEv#H(<if?hMw_M|A5OV&0r?HHQ4P7I6 zc3;6p$eZ*J+j9W;Vte|}s4v4a&0A*4x*?)#U#pTe5gA^L5oOg6do8#bh~$6cO`mL? zQ=4jX#z9<{QA-dtdA<8dbX?^T^B`{re`E${$JBCNvidUO+GFDzEtOQf&^zllKS^Q_ zZ*TN78|pEl5>|~E5e*D1{O>DTlo<8zB?O(cc66`;g~gjQnD=yqPnItxH?q4#_A(11 znp$WcAo+}eGW?CnTK^Im-5u`*cN=Kb$xN#I-cJVddJN55#RT6rLNYQ5%j$$D#@)@T z@ny_O#{`lu;nMA$-ZG=)j#bM^%w>dZ2AykqlKhiDKjNcC`#X%A6g5-7i>K3s-{wzj zw0={}W%O&LPxi*BU-xxa#Ro~d#{OC*NP&eLDJKO_%Hg8_I~i!jP<#8y(=DpwfT3l0 z0Ud@%SKfx*GzKH5DU=`N2VFt1J?XMuxGLz(iGJ<q^)ses;z<ldVP%=d%I;l=(DYa= zgn!~&=3Tr&v9rHxi*agUkzzTJd>zaO?x^XudCTtpN5On(3QN*7jI?wq=*UR}X^Veu zBm~V=YBq!o2sI?J;}`lp--m2dk2fu1EFQYwcyo~dY%tEgLuC>3<YN@SL+b6H$H&#m zMVsyzc;S>TDTEk2vaNl1xLAU{M38Nyx;OuiqVw=)^L^W}?%G|pQnh#O+O5_eu{SAd z#;Coet)lj(D8BY8u_AVA*RD-MY)XV!5hMA%dH(@?BG3JN?&~_w<CrR2CedP0Vm#;P zHGzLumR!d?rr*F_sEqlBFMeGI=0L4ty4us7{&FOblI^0+JbBVykN@YFqI10^qWOtz zlWxe8PO+r<*MiqV*-i6l$4i0fixzaKAnvsNpxZHcvnB1H75UqM`zkCIO6BD<1snU| z#--klXLd|RvYfTfW95u<rqX7q^^u<7r<NfeE2!iMNM}bdHPpbnIaMpe*`UrNyAZ4! z0ZavUX`O9?`_AAaSCO{O7Vq3xwUD>cQ->@INF8d!#6R+ke)=~riFBH*x?ZfhoQ}R6 zV2K@Gg}HJ5C)#i!9j?Tl(+KyL2<X>skCjz0KInjS0ELcCKhcwuAvxJSZCYgJt(f1~ z83IP1eq_Bi2oCfi+Urs_J-m3z!|)no;<0pSS0Mek-a<)tLX#|X<^vSeia_hn+P^mp zynnChfZ9Qjmm53;nXDk?)nMIuAtB&g;P>k;wOxbn6Fo*-RMmxj$(FpcJYQEF)9$6T zyc2s(W-Jq^uPaxVCm>qTLFR~feWZGj4038*?oF~+k@;*9T<fYB%mam;mk_&d>zQ_S zhpZmzBx88^?9x!I328Jv)A?()lp4nm;>v)J-3$;`&p=V9Z<j69y=onPBe%gV)+tqt zUYWnwu8pfg(0;ryv6TD2$1debcMVx1pPi6W(hGF-P?vR%*Pu%6$fiA_5HePY7@sJs z>U_lcaC*ClJKDHXfz|YVOKkXtV07HuulSGt%F>Ex4QtEr;!T6-PnD2{Zyv4bNxw~4 zw4ZCnxp5i@G|Jj#?2=v3?Fpm-?`NYU@<n0m_;g0e0~B)AiWDm_<DJGh$MlOYFGVL< zz0vlRwasrbai`xHMjCefke}F&(@-PB#LX52J5WuGOliP7g~U=Z#?CVls}<5Ul6($E zQEHx%dp735YCfQK8xlaI+tDc95@~x)bVctLm95*nME4VAuz;8u``9p$T~~oliTdts z)d(W-?@1yH&iB|arRhav?*fO8gAm!b1d5wSc)R~xbF+saQCV{7T#tq~K|E1WeLOp- zw=nbY5K`8BuNkt`G{n%-_$}y0${)J;k#;3@<``1;XPwR3MC0J<096=>UcL;Qb_>oH zg3ai`7mDyeEPAccI%04WR|I&zXu0?fqUr7zS|<WyddTZ#IXo*B>%|j?80O5q!}f1N zI<4P?J^DhGNMRWyeV)4^E9%&luu0Z^;-d~2tTP|F8`!cV9*554t(@!%i{LR2i5R!D z3e+RQNI3CfuFxMAdOlScD@{ew;<Gsjy67IJd3s3~6t=YZY=rT?e)z45Wv_zidoB6) z#*B>nTgD3oAt)WDyW5Qiu{YMU=_4X%t}DVV&oUmi_3?2QfQB<QM{}gFuEJ_BJ^i)J z0$U2df@Ag-Y{#X(MSN5<=Jj0Oj0@F)JrPczX;9xz``#wYiE3(Iu|1rc$Y>9J%BmW+ z;9kjF9*$PmhJ&;pyZ>Vq$aamr!-UrF`iY2}k|K!D28VB*+nfUzin$6xuf16*!>Y%k zk`BG~ZI`1g;%$V|!hg!9A0~whXiBxtb9$4X1`m2C>_QpxrVzdR{eN`q8hTi9<BkTP zP_$>^kIg>_kFbjyDR3-ZGf^+u>+ZrKG84x2^N?+JTm^Tq2O{J<l{~@7hIhn-up)+o zy<`@D{P0+OwsN7XUJA*h=$d&wxJxmV5|IgkrtLJ%j01NG<|a>}+oDqu+J^EFX$#@? z+<$zgsAK;J$L07eP^|<YZc`^UMGA5FMxr&aDxp9lT=jANE*0bL*8A1_Dm%Cf%)@=0 zMuC$|SWiru2QR-O8@#ZZ*jeZ3$j>dT3{mPXHPW^VX|mQE-Wf!yh{;-C8+AI<7lxO; zbq*M2w$@0=*0`$Qv&f#d@H)jDv1VPCKK;~&N!MQizTMCj6Q%A`UgAb^M(fE4hcNOF zK1xp>z+YL_@BZ>Dh$T&%X<DumlpjlC-Do|#kfZnXSnd>6mcTmOn?RsZxSY+BMnhuv z)=W9H(0GoBfZ4wu8aoo$rL*7YJ@;5dTJv!;3a$Hgpl$md40sK}Pk{>++gmQ#Qim9% z8TjNTLe0J2#&uz8_})nW{yHkmlSWZst~L$YzmWa3!`fQu9GMa`6PF|p0`Q;)WWhpN z;@*GIak&rOF&HNa>&~>)b{<rO(VopCpJo$YFB`AzJpzyK>`&O#*_<E=^gpsHp{^#g zftNbi=Kh9#_Mrg-EL+8T9%e~GqJdAKOkP~A!O&G{(=<Cyenf=6e7N8#x$4+cChpWl z?XMp>U-Q5L@U@r=Hp(f#NoKs@Z<udRT{8r>uXjMf-NSe{^c46uZ6-5JXPd>wZPljR zdBVAQ*HCg(s`jYs{6_e~{F((9aQz;3)wS0g`e~t2j(oi@g(N(+vsDWZ2a#Mr&as|# z?pa>V(7vW---+d|XvoLktTdoKu{sYU9}EF(suW7@<z+g8z!5^Co*7un7et;?eEe6- zX4SCrb7qgraH`(6wIbYeIIHUG&pLH*h~>mzuksEFuDDNWkHp0+C3l%r0#fst8)|8S zu2>fa5><3X*OTM?Ek4D1tk*1!eLF+mDF6!)^@z{Va^N@x%F3YfA>(Vq;W{@42EG|t zpx7bHmjcjLEumaNlQ&A)8OV;0d#$k0h|RniiAe!0t<v38-zX60lh+*wQ?Q6ZOr0(` zNCEmiBUqb+Ne^0FlqvX7Q+`%qV5Kb&^#pYw$3=6NxXMyzLu5nUTorRo1Ls1AgKI7m z=f=FkJfm|{MsH~hM?Cs0&pguo7|Ge`(nu)RMd@(08Q|y3OMHb<HH|hKTt*x;n@+Sk zraU#z9xW>#_#O!La@+rpOho={&$hH|ykgRp*rlwun`x*!Jb^r)f}PGmtiZ_r+kw$1 zt|*jh%HY%&4n$A*Jww=zC~8M~dulbU0`*HHb(A-)Z;bjU?1$!NxxfPlczocA*3DSR zQ|<C9q!-@nbY`ZCdct?Aqim-5H1y`6i)}+l$!KtTWZH%+uhi~BtKdiZ`<CNAq2d=B z_H^bBX|7)RTr*?wY|^hDctJc}6Un;Xx5NaI-4~)ES3Gg8n5YeBBSlTdc3sA`L`J)l zk9XiDjjiX<PE=*q$nGfj;wbcO^}qGVA#aZ^%w>|sgc`sycVmBg+SMUyC!^g{^}%5w zL@Ti<4K<aeX3hUZ;tP5))yM!w>u-T9MxU-8a{zPn^p3;1t}j9Ou;CZEKrSZH5PI&s zNRxS2-Y)X6;lSwSVvYn_omt!o`S<rQm61!w96gH7T4VCSyV(!)VX7wm4P4@vo_&aT zS(`GDtCvVS5K?j`rR8a85I?=b44M<p&dk4Nhw4aPLhq+(b`JcrNgi`+wtQaOM~LUK zZX2bOH&ZGvba(F$e7vGbsp+{SRwSRTNX=k6Pybc>hm<Rqg~kdK*DZA14XR9YZ|v#{ zL;&}w??1lCmYjw;6C%Equa2}zTXG$fmm1M~bh}?gkK1CS%Qj;>?ObaugEZf{9NUMM zeNgx_r0;D_vdn&L=uYZI47m-<zI6X^YDQXGBm{P|&DJ%uB-7a1zI*m7Ezk5$$gADl z;Sqn1;hOGYFyQ=5O%K+T=93$FYDEMtyqh^&Wmv*zn-!S*g=Wq`oS&>9RUds|^na0* zIUQ7_z<(^~A+wHwBtvy&-p4#$rq)!?04lujgzj|H;>&!ogQ$&76>N7|&E69WsqvLk zeb3ey#m3-qPfPshI&WMATX)PlDJFK+9q%3da&<B|tXA;FzW2ZInq72n^KzM~!YELA zMy<Vkec!M57x$ssFV72uutu+$oYlk2{E8$;7&d`9Fj_%zv&KdR6ia2A1*1~3_Cp&6 zne{S{C-)0059LmNR~oAQz4P?h<Cv(wG;eKxUM)P|q@~B3t;3@INCue8EXxEoD=yl= z$4@;CZkXuulrfJtXcMop;{HeWz{BHgbnaWe`k2ZM#PGq}0XaXAmWXjCZlPiqo(D@c zsWB|0GbORYz*q-J?Gk(gl2Axffk%QjMhmI-7feH>YLEc#Vxds$<h<LReSP=BjGU{( z-p|$fgMd`~%;{431&!Y)O4)8Fhiu<i9rq0|L%!GDD0_iGW$&9BZCAD3G}^pp>rjKx zn|qu5=d>|$hgDU0+y9Z7U*EYzxHr7g)>xz|qYintXH>y=4aq&K_6SScUFgEB<j9?s zx1mS)m3}swo%@7Arc{5fChX3Knbla|=pTy%_pWGTcCUrM1?V4yHXJ3*jo>48doAHf zN1etB+`(dV9+uOf_!iNoPiraia{z`Lwc{^;f1S5UEsCtez4@nWfh1koSBg1CDaaFB zR7)*2bUvPP;@(Jbkm>8qz1%a72$S(+Ph5y!=dbfi=#Fm{*H72hlhtbI|HxQ)kt-4h z2a>DQQY-m`kzRr$hsAzQiL?Bdnv<6PSw$szec)0gP`48ENHy|0)62l3`{mrZi-%pf z&E}7l<~)to%eWoLKTA~dI-0Ni_?e7YBp?0Gy~}vm$|Tg4!lcYl>8NX)pnQsPFgMml zRbtpp*e51;A*nLokA(dG5m8qqEBjB?hQk@{Z8?)7r@IONBZ~~XQFpA4m{gL$j;FLb zHXic@a}`K1(X6GlDo?-_>!69!^6PY`jk=-oo`P&g1K;<6p`?s0Jc1L}^;d}#?|Ob6 zTJ>T6-470h>a%;T=<#p>%}j#ZX<*m<<mpZK)~5}l?JCVK))3p(P|KT~D_K=(E>+-4 z+S`k9x$ZQ}rmfyMzLNhEl3DYP*Flp9mns@l9-}_@L8o_cCDUPa>yrop59R&^ER=xy zG4n!5qDf)R39f(h0Rg_@%r@A!;G2@URo}mvU`BeFZs;W59+$E=6C-Q?*@p&aAwZgr zg`XXKPu7w&A=<Rg*|R$~X6K71$4QR|-fH^F%;+k4)P(Pr<IU8t!l-H??yMJSN~G1y z=hwKpfiV736rd6HFx~l2R6Xf|$czZm++6*RBEv_r<uD}hxFDYd^S5@8hME`bx5I)L z&O^U{Z0$;?=-8$fVSS9TGAL86kU_#P{ZIZ*m?Ok5Sf5|ZM<f#Fm6{sx;PsBNWuCki z!)Te_!?$O(AkjPjsO?x8LfpoRC<Ye?XVA9fWyEP;*A_~gjhbuSm)BoDj=oZYhJ)Q~ zY*`H1wqK}v707&R{!FBsVYJ(3874|!f)<Wm`fqKmOD||!kPse_6UAR)QrM4bQte{8 zl0qL74u8MfGZX1%#Y;&}g?Oxgb+r<G*=oNU6_g0Uyp9+Z{<R^?)FhC@kX7{y?0U^T zJ?3kP6bjx-^I>k@{%_fBWThQkP$~!I<SL`v?f_qD!%7s>lw%^;U@cErG@b({nKEwa z%Y5!+QmUNvuTW<dX3v^rp#cpQ;tErRQ49J2F=oZ7XCBCKxdm}jkfivCE^e&q#n1IN zcSx6XrPPrWA>f~7m8D6EpbUHd>I5RJE}W(OMj1=4{`RiX5X(JfnK7tTOrI!?70BSX zh;YB?>s%@SduC{$l6l0evqoF%7r#ATi<HCmJ6mcMZpzIQooEk#)+xDyw-jb~P{m~= zU5F<VGyOlZ<Si2+W7}%MaM;b%xep$o>gu^+Hj}|XO|$r$O5L*Hs1Fe)ZD?~TU8?cw zQ)Ga8Sy)sRaW1=I=_y-DSNa8{eyg%{1`H~sw;AVxNN`u`)Ua;-G*hUb<z=bZuftqs zEA*uz9>YSpVJonlbB~rp2k9lmH0#zqO`|T0yguUN69oUSS?P@vj|91|@@B(kB-wi0 z!Pyu22_+R<)l>0n^^oai0;Fzhs$|yPpVwcS7#hPktaPqy)~88&@Z{)aCk_RO0q`~0 zb#j@zpYQ|20Mf?f4%HEx=`zh+g>!k(^V`CM`SjaSC4X$+Dx!Df0f>%%=BWSX6pjQh zz^@ZF1LRD!frz?I{UlBMdB>zT*QG3<be|SQCwH}5dO8SM2j?XcJm6d5syylIe2`vs z*B3@)PP$#e7;Txz8!?wbt9VJOzOman{I|P7&4ea@={f4ETxpH}Sdvx?_i~ro2u;l$ zjKzi4UxT@GU(z*n8RK@MqAGX}Fi5YN(*S<^%gs;((lht^s_>1atL+n#?4&rMG%=%> zOzlC{uhA~~H%)V;)F3h-@8gp9l;NQ5aR*%cu|YIQn-bqQ9(Y|mn#w%A4~N#`+n}zs zs12|76HX6<FME~(lANwELWnT<o$QW?cW14C876?hP-wI#-7-}h7lyRU?CiXhMF6JD zTd}a{EeC(+M=nLlqrv2qUCAMrAs4uYV`{=w!wk=>{CJMBU?!a8C_CcXkmHy0Sg~4P z`fnBaY2#PZff;5yubn9Ltk7GSlZJCzoM#lv(8sLMJ0~Y(<PPVx81+6BjY&(gx^`gq zN2(+4Rv)oFAR8P5R?MiL&t7g~+z>w@$I)@aG0DNgi!G#$^TCBHldP=a(pgO+s}Qrd ztJNftDfN6I!U80++%mHbK2d_U%}93SmC|lAkqZr!P<F7*;;^_(;aF&Bkk5D*H{Szg z%S#?F1f-t<>?r0|#MP4W$0VC$_Id^acdw1O+Hi4bd;h`2Q0&#6qzbxB4gG*L<kijn zhV(RjUF5b`{@m)HtNqpYQ?*|G;!9TP4=>A-ZY89mO+-2ci-vuQhg4yKIiuRLZveZ9 zZW91ve}5%wU)S3@z1=ui&IpKGf3z>*3ie2n)Mu5+gYhCI`PMl@_X)Oz)gmU_<D<eI ze5=P(M0N=@!K$~LVY;NHecJt{cuK_IMm5H#I+5B_b<$cW)|SFCA!EhX!Gi!u8fk`z zoM(CFvS1o*=40kI+;$aEZcSW$QkGvjS*^XTp3aou>^dns;L7gEXDg=&3m|rzJ!{ZU z_$di<q$2`Ol^`us>v7|m&3q0iVhDTa5ZT$dxpwVK^w?Jq5f)d9NT#$^QVYcre?p6F z>aVQ@2*bX6mbH+H#j+=`LGMFJ0$=XKe@DEgRJZeDMm7;m`3jPSlI_7TLilEq07Ct6 zJ9(=BF34^JV)o9x^pqq4i}{umvKI61uzOpXqUf=N@eH3;OGFN5GK<Ci<%J<E5s{k$ ze0gp3tvFdG0Kjx)v>LIf4~;>*T-dN{rA7{KU7H#tJ=ZK>ScPBaYBP|RmgZ@L1BtiJ z4>Q+8`PSv!ai&hnqGM_Azkq4nx}j^z6y$Ni0gXc6c>^@s*p?va>X;%)zSv+$zeDTy z3<C~R#&X?j&%F@u*pgYxx1S31$^B>^_^3WfB-fKLS|}$WM{K`djTw3RtrTXM5D9?F zV!Z1*OL-!7ezm-(U1T(Fr^+%+9$UH~8$GKoO=vttbo<8OhC<c99?n=N1g~A%1AY?y zR+Mpdxi$_235z5(0qv+fJLR`F^yQ`7vLxbV;hLS<Q)jnN;J_W+4WRr#yz{ys_X=HC zle);Z&>P>5Jwx6;<p+Jv&wO1+SvcgiRbGV$Lkc7(5u5L)cf>lYd*8L*;$2a;Y;wH@ zS}yD0=H+S_7nGd#E_^~Me)RtQSgRO_CPb*<uz*}|c)BI&3%nJItHoCIKGppo>Jir? zZDIT3Hq<<M9r7g&6)G6cD4xN`=6vs7*pUpziprZZ*59Y+*^gqBdF1NtG-c#d{h2S( z`vb>3+^f7Q)F3{7nSlIu2p&X&<iwS~%+*3?Z-WSvr;3N8>wu`c<vhv0x1u<FsuioZ zV|tIsh6A$Ti^9w*7P%fB??}DMfH}B(jt;4sY`2mn><gXBbGg$kW(vd&AJdaUgI1u| z_IK4}H4u@c<eEjbF|&uZDh$wfbuNWF<CZRC^U_T{(}7cVGxQ~&X-i4edrXTe-ON3A zSfA{Roz^a-Eo+XE4}<CVd8xhZyg!3$DA<sWw@`A@9xP+@n6wvsph2kqRWyGqZQ(-` z?NcWeO0m5GSG`9SBEcOMq*(&F{T_y~3=Q9|7`t-oTX+6!NX|AmGP?beN8mqaDMR+i z?uYH28Sv;$*=)B=c78VKnggy5!7Tod-uYI_r{4vcCA=65|1#I<y6mb4FICNw$NQ)* zn97UvWYPo7NIGm9ry71GGxi>3yf3N@&$JdRqC@FiA8eJy8GWx~Zk%DwE3z5MWq$Tw z-3cw1`0bK~xJ%qBZm>J<A14oq4<9L1C%!cw1;Zp(@)Y4}v}4It8RNl!9{xfbRs_I- z=ridgQEGB-(^X$!%+1q(OGFC1_*z~EhK9~uZ{>I(w??K1PS#a}8gPE{hmp&!Xm}tf zI`Z0I*P9B)z$F;m-yyX0U|*oS>N-F}5|=c%_fF&5r1wm*wa)x+nZZe|lC#6Wddbnq zlx<9hB}viPIX}JpwnFt(c5*Z++%2=BCz)2&Z>o@L=u_h0mVPkZW)=`8l$(`1Z<d>v zGwYFYkCkX*rA}zJ|C?h6>nKndSyhOM%>DFVE=ipV85`dCw0CMDwNmD=oZOrIU>R|l z{;#Evw!waKLJad3uf9(5HGW8c^If3t<Y+S&dkshW3~A4%1LElOqSHVFDIa9YtlJ1} z&7)3Mfz6;c5o3=Zh39_N>(fo(h07>bPqq?IJ(;urkzoQ9BhVxcb`)=`hMCTr{Q$9{ zKP8AC5i~(6<|@+pr~Q{yZzf2V^DP3@LwM7od))I&q3cV1^J^0R6)CD+ph2QhiE{e# z+MWLj|3*S~ofE95Hn1MN{`(NT$7RW^9iDStOk!kStV81y-IoVRmz99uq{4zVfV-dh z%@eWy<XIW$Crd93Z2h<CV7TqlLoU(69^Tex=LATYgcrxy@OETdX(H@H?sJN;n=S*e zd7sqeSo*0Y7#RFd?B)^Hx=#4W@A#Qemm|A~I#e9^x!~68uYwOFHC83~kgaBScrl4( zHosHBE|v`m`6aUUN*OR96c+>be%kq0^$YZlAMc)CzMQ9?uq){nLV|^JZ18EqXiTs7 zCr&PK!Po>`@#{{>98Cp?jMH0X%c@Y4yYhi*^bXPLH9JP&PH^h&@MG)Vh^4Dfkq20m zRh9am$FLErJ>zqB1X^dVBu%C>NjqSF#K)v#0l=kLR#HJKeEGxQ31srWmQ_{lMwI*q zSc3Fq8>ln8o($h|;JN#uatP2{Xm>3dM6X%Okn5+WDL(N_<wJnf5Q4a9OItt7F<s}+ zZ!fQR3OfoR)r@~(5AIu4p8rYCh&DZC;Nq*@j{26ac@;o-{LP!uVpyvzPy1^B=tMo- z4lDZGG;5T1@yYuyJ;?2^<0So$(%mpgv2oTAib2@DdTXlNpeQKeSEq!~C!3*A#w6oY zi&#V}MpwDTiR2jIuu)sekX8<--(FsMSZOZcYq>gU42SeE6P)4=ed1tFdEl>q_n^Qf zQhPv@E-S~2;{Esc)y8x$P96??T#gt=F%`^?;-0cdxVsvtTlO~)Y7e9|pG+JX$L^?c zZ^cBtB=xDHGiK@znU|#a=p=T8@`(289|TpSiV?W98z@1!c5K`7C$jxgbiw(e5mdPJ zplALVKq!tEqI!SCnPw&X@7{Y7Ti5K1zxKN4)bCV{%S6Xy&!9b1e*p51N>}sO`QEv& z94Cj&{+Bs1-Uh40+4kq(j*HUdV|SJ8?^=JGgu6`#nGfZZ5kg#aYV5dbxw^by+36x^ zaAQo=K!z#y4Tsokk>mPX8Ge;e+9luK3tXxjfTD8vAsRFDx+XnhHsblL@Qb8<BBdj% zW)zk8Do@qGH2@!Gom{^kpf-s5z-D;4tdyxusf$F^5LOpZI=d?4Guk!<@Vc!h#6Jk} z-|-4xa)z*K_m2ki!mnT8K^i*9_s3deT;W^N*l@Hb00HRBy4oJ^YAN&beF&40-jOH> zjr$xildA-IYU8%>-To`vGc^|WD7n{)KvAGneVG~U@UZX&>E*}HnMqnwI_L_Vnk4O$ z!P^bQHQ8S)?WCI#QqMFG6ES0lwPN~e;^K-mO*5p-JMb=P(mX(yc&+ZMkWd<I7c@lo zOqtEEOUvAH*Yb;@PK^CprhrS3Uq*&$yn$S^Fq4X@*LVj3CyRN2Q=i&hu*BpP{)tM? z8rtH0?rl+m<87JtS6!H+)c!;vx3zXVl;WUH+0}zxtMl~ZtjBJgAt%*0!Oi&=N0K9Y zt?V&sazirqIp9hCzPxF~P!_YQ)iG(eKieH*cyZZ+A*vS+UBART?d(nO@SFVZi@k3` zcqPCGb_jL-m}XU(C8_tpB$+)wgeLu3HOPm!j@j;R4$9RLOyF0>3b@1BZUnAMvxaP1 zC>i<mCs@wQ>(5rZJR*SQg+Z5lgPOD8LbUT0n`04iRPJNIw98e3n68A*MACiQ`T-6? zg5(Bu^L#12k^{Yu_Zi*4nVS%NV2SpVW%RtDP@GEo=_7!i8;ci00I~6}B9G?59~-W_ z^`zg>Yzq9mEvIb>1I7`%^w_{l_a{7FTfZyGu$L~qeob(r1TM}Cu8eTrRYQ5|lcCPh zk0Pcbn46%Ftp7Z}<7wjjXZXCvl$}k1^RBP1)UuM@Cj)!$&$JGDK_81TBz;!k!)tQw zl?CjLXRyugfz^6dDl@s0$)ICTkAptonrZKo)n&nZfcsAp`m$zGlvJsJ#JD~);5yFi zdCGQqHIqjw;<4uHw8%LQ{H*1fdw3Gb!L&;^$xN}(4bR@j69zGM%T{TZK-EiPMP%Rg z3)Rq&(*d`M7h%cil(6Yq8{&{X0?-0>4j$dkViz&d+_NQ-Yzup8x_kes-pc$O{QQf8 ze|2_Yv&?6A2)Mq$`-SV9U{;U2p~mgv+q$*N48-@-6)}LESu=R{Ii8KOI%07C!tHT+ zT<^bu9l=-Y#7tAsB}!fTTL-L~{v9Ib`4w!LXHvTZfS9Bc)V@{?&iIs*>+8d_N?tr1 zi%?Wrx%tw)yOZ!yAlWigPq>2@3_zdIXi4a{2`hJIFGFuEP7|{aJOYKAr-ngX$$?@% z|2ki=Yc+UZ)9wp;-%HF;b0ptUX#9^uy)2xAVNf)tr9m}Zs<*$uj+|9b#xw^%g+-We z39{{EL@hT}W97D($9n|=z5zFVRkbn>FXy_<cEU;v>j?)T>qagXcgSCU$l)r~%00qK zcek|WqILm!p^;fjaaZN+NrjY$#Yhnj`bc+=%u(8lDD#+2nLgg;Ym<T9LtE>^bSm>u zqpfdwK1sx~ceI*=#3|)mB3xoCUmYhhSJI#@=4oO2YVX@+qzM@R(Zi717BOofnX*h0 z@hoJ)CEo`QgvW@ISSQgkrpGAPu?|y}#!-1bGMY>&NK!Y$DCKhAKMhAzW1U>V?|D$_ z%7ie5d5EEwNU_(%YVi#qsg#f)a^Nq^+umAWBJ>JntHJi8%3pbje+}BIEf18|&4H=> zkX0)0?f|mgylzXdR>bXDux#IbBxX|B|35O?T(S}7xAG5Gco;ksML%5qV!gban@2!q zFYmK2iCU&TlCn{>yHv?iosc-vQEp_w*&q_-)LIiFS>pxLmd@{Y!)C)Y*G)6j?Qp&< zRIfZE+0IDD@TkYknh@c!ywOL+*-edb01(eLkysJ1a(w_7jNlziAr8r{bXRc-Hy1i( zfyEwNbg8;P4uWfKBnGHrZ$Hkkc*-kvPMCnN*+0}(doj%9Z?+bF6gM`jV6b*6d~<DM zh|*#Iaqsd}ovXrtr}>naDp92Os$=fb>S!K~RRTofl;?L6tgTh7Rebhqnsa}xHqsP@ z2Y+fB<x&Bhi%GC1+X1cr!BFg)sBOo9v5)mW59$0p6=an&M!AH>kg<+?`1u-2zG41a z<+>e%Pu`?C?>J!$-|n@f-7ja;{OO%%T(NG>2kp5ELQ<z0q5cR2cIECEY<%=P>p?4| zzH}~(F<xp`U)7h3tLgS{5x27Z{Z*FGNJlSL$9V150L)iG^Ysj9+zsZk*r~X%lW0cD z*I+IRxtEDUwl6>bO8&I8Y~!FHY}!gl^$*RdowuO$$PUuilQ;r8xLxFuwLP`EmnD5k zk^WN#$^o4cKImR-gpBggi{IZYXx1h-%FYG&e5f+6DhW6RM-L4y6gCEax6iDdyED+* zzTIlH7xxR^2#MY5_QFt#SHlI`3m8MpkTNn#RE=HH{fnHzt*J29ohrqwc!g<z-R*Y4 z?1vQr{J$hnp4(6wPmPJumj98Z9(NWt4#i7$HSS%xHxY`C8%qDYk=ruzP<9NDIK&cS zb0y#bJr|m1kmdwSI~RI>2eS<N2o(&jrUjuKv-)wWS=F9No{YM%)_zawaP;aNh&?EK zmuqUcFdhLp2Bu=WRu9@Xeuz3ouQM@<0VGDbSg%ZU&2S%&T{JMA9dMBkkE}&Up2c0q zSkCx?LTA5eJumwqlU0*-``3Pe5<|<3T{PnzhGCZ_wT-z?eJCX~vGeHiww9FWI3fIh zWZqcPv)8y9hZ(|slgrcGR`F#i-%OpZ(#5j(zucciApZ=mYj%cx5S{MEgtPa(>_7TC zEzRGRv-t5AM&C_|1?xb<c4y3|UH;anW&VuXD6%uoFJB$K>3CA51|Uhd{{4?^Vz-|c z=W?7_;2#KUYvc22IJo;5(dbMl==63B_80Dso{~)tIO_CS`3&ijTw&-l(#jeMn;l$I z`XrrdX&B_Zj!!MSHfj2L$AcGM4q|S|<jS2AMK_dwG7B_XI3`6bpDRpG=Fu*#4vHx+ zeN1~Nr{0z4^jq`1!iG3Ol)9D#1x?>RJy>N8ZEQURoxK#ji??Jf%`(SiwDqK^K8T#j zjRwaMAE_?g>3KO=I($my`*+^cdVvUs<ov~&WeXG*o<VPxE^k)JZa|Kd!;X{!zqmO^ zvhH4`S|E~1*8+B{Jy6R)d6xYvdliNx=+z@QmEY&hgTGdn5x_}kqiprejndzeTtQ6{ z{S;&-!yT{rpPbL1l775)s^Pb;tsM-(%VDim=}FKI&P8%Xrf(q-#voE}WwF%zF-wz{ zamen-3UP73aP1W)H!ad>x556|%&8~ddSpIuYFSRLMAoI}&jwsa`6D2b?fHxpB?(a$ zl}Nf@P>I#NuZ3||D%O<GldM9t-@Aq9iR2URlF%&a1YJIGv*sNdt%S`~6W!_b47VA$ z^Ee~&$dEu2GAlTszBCT3-tuWbnX_6j?kG%7#KH~Q>m&P3aWf@4C=jAOW${q)RvF-% zl0dh*l@&iGE?LSh>xmV+B|+yHa=?l0FvKP{hP^r&pU<`MBw1^D?S>!J%R-n*S2lAN zBL>qD_f)N@+Onkgmue{5b&JZX;mQtDi2-h-<fxUAzb!MmOR$L$!Uw*?I`=123_EWK zKNl_fsW*}>Jz@-*Zx?+Urb1FQXn#;(^4=I7ej#A{aoB=|bgqv8qOPn{!qZ&lhPnT~ zS2B?da#$O)RXA1&a_%i)ivu;b6|DDG4}Lz;JjYdoP=;ynk^hk`p#JX0<OY-&)LcR@ zUBZ~`u#gRD=!QIyGDy4cbf3AP=4FqU^E0l_1OSOPatQiYxYUQEJO)PJIB(imZA9m~ zd)<h+rLVm6{?s%`dbj>qNF4~T!EWMwu)GH=n*_jy{~`1_a=3!K_NSVpD`s0clnkc? zjX!p<X~OqX>aO>cKS`uMACX@2OfQZRM55pMJL_Jzi;`eoAy;ng*6n@{F`#^u&ywHi zDR?gDvg$Z}z5mY8RsLjO2PpRJYrJqd8Ymjd-ZdEkqDQV*#EaMil@M=O?|)pnh{(L? zhd&Hc1Tnif=&5l2kIYzQYjgTLk=(_MeNVW8lW}nSUck@U>)8b%+hm(TtZ%0F0QU(I zdZt7++szd8dr>>k%UP<AzIU+FCjzQC)K|!WaM=@^w$%*a%elQ)u?dVohS5)9q8DcD z6Gj5X(5lJ3qO=<>+|w_4?9Bp})8huT!sczX%rysP@)pK!E&<U6(qFg=aQCe2yFaX^ zs6*d|u7RKCbE#7QY*gj?GMoBY_5gIIA{xoY2D;yptq$||G0xJrx`QA&3GRhScvP^M z{7q>1%1y<2%Q%Fz62vX}lNy2FuoGe)n##aw+|A@<20r*#*X+9FjuFp&mJ}KR%E=g8 zi55pdgGSOGQeHQlv=*dr=*8h!NOM?fkv+$Ir5V0><4NoTmD!!|x*v*syI$|cfe-_> zYGBiCSl5yA_A>qndvv#GsOEO=pf^Y4-P<9darQy9{my{s#}v1R+>@$<*v>ETc$N}m zS+DK~ri&EmgeL{(hC{e8Y{k;^ve?^W3IqBQ32f0BC8k%3#7&bZ!-MPn<j8Hj^F~wo zD308?`Qs<_$u8RT1J)}cOK8B0QT}cE<DU{{%TvTjTgH~JL1~ERFfIwM_{nv>neJP7 zt);T4|4x2(Yam<M<c-oQ^L#>Z3#7A9oStc=QgrktIcoB2n2GqXUkk}XH6~)5e*SCJ z>rPPCd}!rPqmo+{$C&ejV+g4+Q`jk1{`>u7j#Ckt!q*>n5vkn|@oHAi3?VLAYon3O zl`JXqniF1NQpcVm$kU`eHUykS>V&UzV+&&sNm}BS&ep!{9swFTqyMn#-$gkVuQ=Z~ zJ|7pePAJs6_9Z^!$#kgHrpx+i$dK^s^T|Dho7-4IQZ{q*V+k!}32O28l}VdD=Y14u z219hLewwC>SZM}tg^31ZFKjhlE-A#lbmtTNnQkz;w&H_0d`tD@DI2**d_n>ALI->+ zOf1;Xpjqep=Tla;*GI<C$)(fYfXS_Qo|-u~gPyc(IaNT*^lig{>xAvd$cwFFf;;A4 zvl55b{h+M5G!`_|mUyAKw7&G0BU4GzSAyhuk2PJWnqbmOdr%f$2`B4R8mH?=aK2J| z$nt58xgiwG(hI3n_2tgaZTY8CMRp5sgv(s@--g`K&a%-IVAQWp=h$g=i_rxjaDTBX ztyrKvvgLY?GLHoZP4#l;7Tk4`vitnz2<Ybqyb~rYf-!f+LVhCYsH8L^#)+)3d{O9g zaq)!ZD1DXrxN;t!?Wi-JAoI7)MJ$&k8|HqxrpWLioZmrX1oq*?no{#<7p-X<OerG! zWrN3`@sneqi%rB>_rv_Uu*w24!Qi~qKa@tp*NXT67lmu23KprN(0$+PxC(ckx21an zhs?$ACuzdyyfSM^OuAU*b%y!F7Z%EmTqdUfBeS45K`qrthp@FfgccqQV?Sdoj8ej> z!w0;uyuD`9w`TNSz2KOYR&slHtsLYu$oafBz1gVS(Sk+c+E@-BkI*IM#<NkBw{+3E z>RStYMD;#;6zwtBKt=PHZ*VjVtANRmPNofAy{!=;ZEt9P57U(yLWaEw5VO@5EaW$@ zW>1G-o2!9*j$oe>DsdHtJzD%YNHHrnmth&-b-g^dHlvLYW~kT?GYq@4ftIGn$r+q1 zZhkiTax`w$fd#}~40%X3fBW<>0*W*K9~q^BjDiLg?aA{+$~0Az<h6>ZyThN-b*6Q; zwY0<;X6SwjI&kwKTrXFzZn~)HX&;u2<$BG53-_vylS<aayto3rky$Q3{u8;5E5KJm zMX7=EZ-Y=DK9xN>Q_c^s0b@CPU#UJW)Jam8RTl6)mr}PN<lk^sn+u8UokYLe@uK`( zfwme98tmqcD4ZrJIhnl5c$O_`=2-~2EPS%h#?~I1sr|i<D<?hR-IJx#P#eurrWa|- zBCoz>_AM-#fp6W=i#~B(OOR8o|HHs#`~Vk(J*;DU?QSL#5L_ny=DhC5=;KfuOydj? zJ-Oxci`6Jom5va6cFDPEqy7#q9lHB9>}3x9dwbdzH$ng7J6wjn*6Z~n>XS2dpabv| z;$+058KH8R^hDWXK*1Zt(4K|<4H@?A)sC=YX|5Vg<9AZKs?3U^LcEJK-W8p@TR*ki zp5T8;^m?}qXhiSH+gMu4qGYXNR;J6LGo1#K8_xlKO@E&2^d$U`>;+qIcV`Ul)6{|2 zW|p?9OIdtqP5nef#va)Dh#J-BRoPQE`g}SXHW8uQc2<Jeus=N7C0MS0J%9Ge?<3(1 zGUJS2313iBgtg9c%<AaBUnKkWeYijgN(#wnbVOgtUx!l02!7+r+G2mZ2XsJ0OtMkc z&wA6xH)<C3b)2@6{&K6MugsKMetFt_(`w1F?1dv4)f+|5yd*4MK@qE>Ae4^&|Eu+o zs^cz9)Y(f#OL<w_9i0P_fe2E-*R|kfM_aNvh<}=EeGwjkht$sCe6b^Y@fBqSPGlvW zF<f{431A8No%|rs<Mw9p=Xi2Ky9dv`wfq|%C9Xrx_rSyS^%-8l!r{Qtx|o4?nzNi; zogG2tf`XnZzw2f9`K*M)In!_+BKz`=9~xQ?BmOg6s>R;vJ?W$CL<9>UFYf7l*-J3V z#NR8jbR89%e_?eimZ@Y<zs7+j5CA)$IboRNtEkpIDh6Un3W9!oy7?4Tumc3bcOzT) z6^1fbQzx}x!NSV{13ZnbqWn~JKT|;H*UHWwa^@fDx7ilQJKR$bxtyUME5tEN;gx+i zK}W9_=F$g_J>xp)4FM$!m{%HsGKook<mVHx@+orLVbjHV&O=mpxn29=P3LV{kCp1q zRGZow^@cQkly7ijN}tjk?%u@#at-a`(BA%es3G}B{2yhlcnv~!7}s%kvEM2*M_k4_ zfX)*dw10E~M<2f*dcZ)(Ku01|uq&QjCntI)wN+YRVlV>SToN(LBJy!TEwhqn$qx%g z_x2rqmIlJX;n&hZP7}VNI0II_Jda{PJEQ-&A!+#MRI9S>^raSK!po(~31QECU%lWq zyiZW3=`%Nfi}JoXyHQ?a=Vm<DeW&MY_@?FL^-va#8nrq&v`+m+tZ<o=6Pbo@YO>Zf z+a%5z8<1R{cpvmZ=I7`Oov@+lEF{k6@6K$h$EH~vH}7tY_pja9U!{2q@N*LK0QNO8 zue|wExsS+*CldQ?I>rL;uMK|F&~{Eg5U83tuf&wJnjexU9-q?4LYlb<g=g9;qfH}; zR$f<ifWL<DgPHZJ4*)UtQQ@8wtY(pem{<rr`!b{6_$=dPSHMkjf>Vrsi|gS>ZU@2B z=i`In)s!IZvc$<ezoJ3CU9MCN(8*1?=|R+XbJq0q?{UF%noiL!89l<!v&4qJ;PU?G z_JXPGJVhJF3d?(>Ls{JUOO%EbAH<4SiLX$fmJ)Oo*`D!`V#wh4u{3I)%YVX7H(4$V zZ^?ZAQ{YiB+4)ZQSO+2RU@LZ><@Lt0(y@*-e|^OGm1Ac#A7(B;J%=$+X;#6OJIpe8 z58S&Nn>XsJHB#JeQ};iz$ulKY;>f(v`ZX8*jPzzJ<LXgJfm_#hOO+#+p{~nF9G(v@ zkq)#|y_R-W`Qv&aExJpUc;f#dwAOHz^zSUB9&ppGEfR*g{aQ{z73U7v=LUi+&My|1 z*7;{H+8nk?A+3U#;U;S!viWqPi7PZPZJ%ay&td~@ldi|G5HJIqu%OeveJ?zU_Ml^( z(){3MYco41!%wZHRaEUBylFlUT&cUe)bqTOd&=j|Ez@JExmhT9Av8iwkeXj>PyKKf zkJg;^H>zN|Yxa=M5dG}CnUuVGh&yq{Tj3z^XKxc5tsT&GAKVn3beLT{Gwwf`HnJS* z{T|rlSs2Vk85I3OJ^$rkBvrVCfxujzH3SPMp-Atx*##OV@4z9y@m+p}kF57a6$VX& zPhSSdEKE1MpLOX`X3<Y|Qi~1?(xK5n8`5sJ$vIj?%A$G3qaopqiqX-Gu(H!6t*%`# zS)8|G>u*%6?7-`VL0?4vSb>#_rj{lU0$2cMRg668;R|{h$B+9J0~*uo-7LSSiu17B z$x@A-cM5yT<XPO^5rYfFZsppf=SxhcJ~rpqODrg_9lus~L4+kOw0I9Pd!<x6Fx6a* zJLPBB5Nmw{za|TO(jEp@tb)4=87)UEyQUg*1;74H+z6(8wX&yIuxiw1L5~{TbpIh_ zoblp93TFa4*j;}}|JK3fB%SAEaX)m<3jR5SI%>Ee^u5L$<;a>JuKH>K94m@GxuJ6Y z9HUl9+A(2QgHL!038fNukF9kY{)o5oddlw<Os{nHr!FC_#bcXptVmOodfMN#G}bS| z>F2!tU)WEGYt+!go18N38{c_*+~LUfxpbhmeD~PYi&UG55xa`pG1D3yhs>|;gn7dZ z;<zn5c!4MeeFn}#O9w!>NQH8yE5EoZ?E4=kw)69q?1Rg7aPuFYY4#63#v`&)A{EyP zF6pHWErrh>jePED@a0h4&$mQ_mV!x7Q>;OsCBXSamw+f_wchLIY>s}#43;GZxCfk7 zc@@ncDoyUVrZuL#%$(u=ADP@W1^Z_r^UO4*L>YOp|0QZG>=IXnTyu)Ld*~sV(onr4 zUUQM$rCk*p2sk7{8RkkRcKzTGiH*6x(9xRMT$C&oM@#je-Jl_;NuI{>>r~jdZ~e`G zY2dd&=V7d9-&$E_@9%UinGSXK@v}<yb>&FO`0d6*l^@@GlwC3-E~abe`<pTNh%Wf8 zaJ|enBhwoqE;-StC#3cS3ausdzXpnp-e%!MmB#ccaYr*W$AqSJyQanpttN(tD)-Xf z_sZXF`q6!Gv)D(g)$yPQcy~Zj#zFf>cJi+3KU%j@<fe67*`++u?7Eqy$1eB6GO>fi zE?i-MvW#Z{wzY$-O52~@L-lG7-wn0@g$!ab(ypwCpIoAfa1a#x5FQI@_Fs)AlGQh6 z>$lGQm9LNO)-zLr>fdl+6<QvHoodKvKFYtg+cR!pEE6oNyXFuQp{tdS@I<wAbq6T1 z&qlD}i=Zquv8FgK|5FYz)+(hRW$ZNPu<mQ4MccH0^;JS|mDZfPw`NI#C1I1=%~&-C zpR5F`a9z89>=ZYz5kD6$C{AR|P1HyDudUx7g|1$mJY27D@U$MaMc$D5grYeoca`oP z`~Q}1kqiGF#J!zAd@FRzfVa;hgj$O}l_85O^|9;?2xA3^W>y@(R;<h3E|EDhPconL za9*d$YEK`KWO^6%Fh0S#OQ#}ky918iYOb${E-{qJm`^Tm0fsDe|G{^AJw$Vp6l6BP zdvN^`SY$!#*{^HhLv%}fMsBItsI0*jU5a=bZI~IUQbK(u$P)gw$5{06;??ktKvK~< zEybR9ZSCPt$H%Q+uhb-(=L?W@eifl!=u5E8aFDg2mSlPM?rw4WO@#W;74Nq&i%NBY zaS)gD&co>^uW>cGfu9vLJ)V-A>ZU##8!znbZb|>$P0>-H`671leG%^79j0pZ8u;PT zJ72CTZT3T0%G#rFL3Y=;xM>`TJ^@Vaba{)Gt44dkZMuQpC$&Q{QrFM|zIS{l3eC>T zX2C}m7bv=8)4~$!H=T*wj~F>0{ffvu$6^_xL@)!ZxKK#eyTnMAM)|lde{5tg8@D;> z?E4j`PERRF6&$l{!oOkCwz5#Ti})Ye+`vKoNkDuYvEyHuPA+@wdF&(UctLr7<1~X5 zY8xO`P%+{TTsOZgN=Am!FudmAxz&0_^udwwKt)3DeL6C-f^+FqY<zD>Rl5Hd|5Swq zflmz2V{18qkJ^m7y207!`_2L~*#q=M%diU~OzHhhr_=^m?2tN76Zf^;CdcU+OzH8l z31N2;(+5e@Zb<zud?0v`6Y&Huq4!xTKdok@=doE9&#%JBZrYZvU{4`2`4=zhA3WQ( z><F~FXka&~kQz6sIY(av2fKy61Fsb_zk8gE8qxpyR)o?{y{e`@$N`x40N$1u*5*Xb zxDxFtXEuMe+Y6yxUaoCsc1hos<tt4$sOX`k&dKz|EDN-3f3Fx*$`q^lZqNjW_*&Ri zK_bw)o$%2^C2cQq^!SsN)unFjmfx3-`T{>AsE?gWzitAeUYKV4vZVBrR_NE_;Aq=N zP0bn*3tvvgjd&;X!ZLM|C$2B#Cl8=r8~WB-;5fI}uwPG)83_sqKO+t2Z$|z2+6K!L zN#i=dn{MZU+~lvF@4U&B?LB!#4mCNI{xd}4t@;IenSQmTX?w=4Mi%6ZhX;pZ7kXQ! zO93B_KV)(Y$~Yh@ydrJcvz8zTsv&`0w}kouiZVxko}*I$DPkiZyS~RCS|y0vzNx(` zWEftjecA_NN1h$wFY{Xp`L;HZP|GH)b1Xy{q1u!x!}qvOyyQ8d27ReSA7sDs!nX`? z+D0+(d1zf19C=08*{k8M!S%FR8n8fDQyZ(T?ga;QJvO7*4jR!~$rinlzn(gwBf&2e zEL(_%h~Ri)GkwZUf2h$mHv79jXz@eG3`#6Ylre_HZfRjB_q*TrMAc5#@INLN7JY)C zA^TS%Yt}y-O;HZoF|!xU1~ry4bLjopB-+%~T=drTrJvFpW!iK3VOthK@Q*|8QlC!` zYy~L6F_z<f13rI`gjaqfJ#aT$dUW&X??<4*V)X&n{Sz!u>0J2eH-=t5Wy&i5d(Pq* zt<r3M2sXgyniR9)=%mJ!7qmyn5jF6`B;t6kb0{*I!@$a2;AM}2UV4ula#Rvy|JtVR z%|yi4?so9ktFXqhxt$-k>HpYtGAHe>5%WNlgslGTG+jKoI;_?J;Xzd1y<}EUeEpWE z1n-Imohm5<?}CzDKg|#OZwq?H=~f)mDUuBLd!`bsfe#*I7O|M!#f5oYY_>Ly`+qH} z31nP4k9<u%BOdLgc*JQ-^}IH_!{Iw!XHpFvQLm5GL~c8h8W&h4g?6lS9FNrxh~$qv z_v*34tbjAAB8F%Mb^3gvNv}s5zl|TOo{AjRhHJqo{Nh<U8FkYBAU|e^n8jsnuB&zp zbmC0q!koop!iUq|oYhqDOSZuw`G2CA^>lrCBUY4UF5syr0Y&SDbj`|3y?e!iuei4! zq=Y63<nKl*sCreZf4mSDdb5q<qtOf3fc&acdhYVaYM5`RM(~`iwahDeej4FUNzdrX z`(Z-ffL|AOMACiKp-&|J?5p{PymT2xt4?e)*9G_LxcI%f;-76X{=_)$#$EFg$=?;Z zA;1I5kN1uCF|0Gc>(wZ>1S+>8q$b~D7qrrxL%)BZ_(#Vw+V?~ev;=ohrhK=~9#=P? z7?ssi{-abK7UK7D`+FpO%k@uHw-c$IN`!OnX=Zvl8oNqB{|G6%W%en*=6TogF>mOu z@r9uVmrF@Yz{=@mQN6g^ubNN7xzB)N?M`Y#dK=xO>7(zcgBdS(usg~1rMy12qQ)bm zra#h<`k5~Hu9^IXWJ{*=>6Y)^|CsLZBLH1~azBinw5xI)oM^tVJdldq_?EV@Qd?{D z@m^r2!|+byZYPx3{gE^ycfOf)#ljF=Sm_*39VZUA+Yik=?}d>jsrU5e{i#K9V#nKq zd5(`#{hSj<94YX~1)lE6si^<3PKh`h(hA6lrLQo9D%5Oz6>IW-S_EtldA=v}Dn3WV zuZsQ!J6VgIuXWqEd?8^?9$fe#L5}!E^HkUWv~l(PCV7B;k+W~8AH_?$=SFwRx0SVn z<qjoe#n)hCdV)B>TJpgLLNsO`x2gS(>b>AH=}K>^s0k@hUQ1kUsQ3(b1S~ZoajAHC z&0@ZpVI)Q$agXNseXt1=?#Ko>1Vnm~md#HbXC+r-{^3HzbsX4$hhzVN8AcJE3f#&# z^Fe|%1}!?h%E=sOY+b#1mL75*VQRT_$(7o4ZAF|Cb49(3Stqf5Er@+yo|fyyuSb(; z$AL<2xx2V#@_=mWH05b&%`EqVof;4=4(SjsUGc2(;AD$RTSGe}-3m<6Nf%x>;Rm7? z<_<6VPNAt3U8TnmmMba<Iw5w^1W%ak5Xvq?Y?Nn+6yi=(%FvxyKeUX<H*#j<31#Lp z<!|gwJ7pVHqX<haI`fWt-N-<Q)IOY=^m+elCWrtZ1uac+MRm@_v)ukNgEk0LBa|q} zuT#r`DT9=x3Crebe)_Lab8HhP&*xSrZ<_ggC9?%R)XNJO{(0<OIe%6nUyOx%s8H6b z@Fk>`{<sHlI}wd9Z03PftGpmir?L2K4Uu2IOC}-nlfpuMLj!W_D!{_OTffVfu$txJ zlP-YAgI(m`AHbrLGnj$^S_>wEp2V%#gz6FDz7?xrIC^&Z7?^k%rt1E3rVlpWZt?T~ zC^`>EDEv2$t5ixTMfS+v*~zLTD`bzum3_|M`x24OSs^ZayNtWDFWEcua5y7mJF@P$ z@9%#9!MXE!KF{;KKkwIjL-TkJwDc&}cW&Z#Tu5}vr=)|XKUbg}i3kLB?riv&NZU%d z=k0y$A-q845ozRkOq?H$3aAEp^Nne~`j@o0&GN~#c+3X;eDCPD_D%+$)8D;g#6;MM z2F<d>XO`sn6D?7!9!Tv-UXWXQ$L5Tz(AZ42JucH<Rb|5UF=Q0RQqo4!{JjN6=IejP zU27y(NU+nKWqlcEbN48R=ab~aCrMB6p*$KfMoD5SK|jX(I=Mr_Tnhgbru*r1z}D-E zK0oUSKG+9lo&vqLVUHlroOFTO(@N~itum-?uslqVUB6UhbBz7cVd~Prx2N<m<)~S3 zUS%1(t`~_P&z6&MyjZhPka7K?Om4)j`rX|ng$3?wR#_$w-}~SgTtFf(abv)pL&@@O zW8Io3NK22677|CyOFKWGuyXZ~Di^6?$aJxbo>a&+U>Mm-!M`~r_Wx+@J$JraVcKAk z3}LBC)+F%q0ac)f!IYoio@=qVn&{xigofZ7z(U{;#)yhQvt`-SZ>Jzi)bn^<&zfi6 zmMuT-jJDaaFJ7s_jkH~|6n)J6PcZ+8WAAkWYZ;x34NX3ZY<RvTU|!-=H<C}?qR8Hy z8jIO`$b+W=*Xyb8xc?e>A~DFzYRAjwHv+nZ5LrU$f7^fZXo%0<;(L==&wArqP4M(L zOESDdI@lv8T)z}eKIR2Sn9Iix_vB#pw>#OTwUNG=9*?oEFJ`G;b3wzi;lsEjf0k|> zJ)<*M=5k4@h1D}2FIfUv+qyYEEz8>6L2-T^XO_vTsEM^{^5O<6eVwM@^1><+Fu!0A z?6gRH)(t;jJ5qjrmqbUjfRBj?DA{li%Ijo=&7YDdMimr|V5Mi|+#(L8W3vN%9h8BK zE=lV4uywq#X%i{1RG@nu4AA02+v6I9`-=sYleTv~s`F=M+cLdAMuu+z_@YCMtanQ% zmwsx~u5&Re)@@nUpOuWT&*bOB4)tHj2GMT>2a_N(Wn>ewO<)n-My$!>VF7m?`I*!< zE`ySc>czPt(}ZIC(7vTsGh;c@TaRqJcS$SZFOyx8G^YSk#RW@Rlx4gLVM47sS|^hs zVc4y8)CZF)xp_;pV&i28Z<03VX8;YGWd`nm&(ItT2f7#^Rztu!rpUl!;?IPaeQ;R} zI?Hv!T8Aa#r*0qb#E2cGrA1Q`ekCnjEAd+YKZOdf`i9A}JhbZ2?-oC!)+h*jhvm1( zz~@UKQ@;jEg$u1TR{fb`6^7PNN6MYqcCNdE*Toh0Yqn~ctDRb+_Kw*eNk=3pOX@XF z6&~5qud1g#F}}^Df}k%tg<_E;G^T%Ct86q4GIK`Cvb%NgHj|(r&L4G+TahX>VOrCd zA)kl$UF4100eQKDT+A($>4mK^>Ls)A$d`2du8WAZns!`}s5@=<yfr?rpmLE(C`2y~ zM_vI&po~mRC1<?!^(r7hnS{T4{PG6T%?Xu4u?#O>b^lu>Po0MIqkIS<mLZWe(fV3X z6@-sICRD=rebQpSX##Y3e2*fzMw3vvbvj;%)evpyAJsu|88@lR3rL(hVFBp20h3dx zVH~as*^vu8lnCT`71>2VriBxryKbiU*L`3el1V53k}n^{SWOy)%G1KipJsylLnC?L z{>*rpnm@fvdNfr=!c7#*-^X%K)pRD3Y;jNjijZfT<&reZkyRi?qN25-eY4aM<#<YQ z6cfYh25H2>9Ok^6bJT*t=<7btE(OwtjtJKPYo;g298Nm^oc}1^WxffRx_(iVS8)bm ziGEih@<zM}RAAzmj?}t6(J0gOc|kvbq1rXI!Xn%Ig@;SkL(BQ4m3<Zy9Li4pa;G=J z@q3ZLIHZfbRL@K}`BPlDc{^ZIm*h`w^i{02=NvLatdF%n48OlNMQ$DhA|%`n5{LNL zMaaOewI;&M;!xMk-Dtu4uF23gJK3)+6V$zNCPCCHCbNgM!uC_`S1l0W2JbvH&GaI? z;-R^V9H?Z>IaR5i>2Nd>-R^7ZX{lZiA1gLD+LQXy^+8f|?HiE{q?AUvrp1t_?K8Ig zjA>97x%Z&pxxuQou3bGxToe&(NjeP(qyAQ$v9u`B`Y(WdWa)J##CbIlZ(rA4<eO8Z z?u<Az`Yd&dT|T~Lax9gq?JY;V+v;98?MEF{$l<G7FJ(KJ!4qlX2vr1ddt+ZFJ{?92 zo~?e%gSL{;wVeVCx3X3|27pKWlVwwGGT18V51>uaTbjQlma5}fd4ilzky#_Hx87Go zB3fsv0}dBnoc<n;fO4s2C`BGvw9w?}mfOr(01Cr$ART=}lxqTMRwvLLJ#n1k+(iuu z65*128a@ekgTQw_IHCMvN1|xB?(b(1o`p`ZuJNt67rkvlscmXJN$gIYoo+h#5U-cB z3O3<?@;X&rMaRcvzgyDg&gVw3*x(%#d#)Bb%Rz(2u+42kc;-KJ|ES&`@?h)27ns~H zGh170QjpKAGCC5$_N}4@5LguQu%wT%+t0y@_I8IbIc4Q#F-*)}%Y>wn;^b9<FlS!2 z7;H1Fq=2_N^UkD|?j4B9?3|;I>tv=D(&d1PS2LIX#}Zf&ejfBrBP@u+HpUeywf86g zS-GrnM7NHsofLCj$D8@6yE?6#jrV1zBQpgV=91QV|CPB|er`1V-BT{?4t0y?dPU(r zmAhee6igPB#>NO!f6+2<)mE}@z0zSP@I!L@feW28H0$CPrcb#N0A^#h)K#`wkJTE~ zA9qo_dPVACT+{FOG;TI%@;WIio^%=FEoDf|>l#Um_9%I-CAj2r=C7eNRXm*s#lnXs zXZ|4P9dlH@Xqu2r;!mW=&OlhO-$H-`z7#aZJ$G#NB(z+4`vwCVtAqtV+~|b`5#s#1 zvmDgayhOvD?&Uk({wor!g`7ewlDYMmlIX>f0}+*WcGAHJrN5*)Z-B+3@V!6CTlz+E z*x#2X;IeJWB_Qa53)LNs=-0xxG^}Ry&fWR0oBaHw+|wICFT4v~tj+N=LDE{QyiP^B z{gX}H6Zf6TBOiZA=kbq4eV3~o_tQDw6X}znJ&DaU<Axsq^Fr^`81jZXZ0oR7Y38ri z9Ynx>6xll3BevcmC0p}vhvR%YM>30&Ffk{C^8hfrqxxKx)<z$@`Jjdj%4=X*HbbP_ z!)46cj8L0g;3zh%pM!M%l4*+4-D=%Gxz*?@=hzkMBJc8BkxraJS-+i{c27@nJUStv zckUvr5>$J0ip*2v0J#60ZQfjJJgrYq?kD)^5H6ro0wP99u;~*wD|l7O#542FxOw*F zzN7ucr0>%~YntvS><22VH}*adk!uL68N;b~u;<^2gzCyWs<8~F<{KeHZPrzL*FuYL zKdFOTnvku+gq_xllYgjk$PmIq1(t@{e+v(|*<x;~;pfudeY@{9u=nfC=|u07Z*tcL zBnKkMk;v1Q0mgtbr^IzCGgZ%Pn%kci8AmlXbeo0Z7CVBRPySs6Umk4piHzmw0|BJS z%<ZKm*?9f*HxKH4ju}q}N~ZWeSs0lydaH`C$aq7TPm4X%UMnrg49;B(>fFl-28dcZ zqo7-_OJDLPJa^i%I+)kiGYr6x^<;Rbb6dPSt#EbT5^e@bOm*MiVEx(_o$Q<2;MJn{ z<~G|Di*=Qj7dMhsDe5>mm;d=>G1&{7l=(HK*B<m3I(HBUkc%p5U+@<_YNQ;d{_r)j z@6j4FI(Xiq3;~}c{O%;P$xqI<&S{er73`k36g`&|wC3Aat|%JJ*~+kcP;jlgc}!)s zph0dYlsltTOnGkZx&)y^VFWPs{nJP$*{j?jIUv?_C8GJp=<mrv;lCYt&FmHtj<ak> zVh$IB%Kr3gW3iN)5<IOpvn~4GgG60dp#(ubsONoDfAZ(W`OIy>4-q^uf9~mj&GiJ~ zdmOXm#>Ki~`4FJ~#pJJMMh!OmNy=`R0maKRM?Zyc-%S6bkR>3FI*JP?_xK7kDBYXI zxCb^-va*eLk)+Uy%~t%!CN2}!XB)PqUY_Rbb1^sYRfN#q)w#9Lp~x@mB|IBD2R6PN zYerD&{mE$@DzhWH&L`aeh?KQ4$YFUwa%j=qWKB<-%+FAqD?VBnEPUxXep!sB&hd@b ziQwH5TDoJBz-Ax3nkUSMn8CW1n=_PVT-*zZ+wiLXv*3RL{xgFs+$py_03M@PY^lK( zHH8Uw;>Fc*#cZ3+Rmk5sz~UzZ3k&MV`@JfS)A@7e2y`aL>%|R<po;re8d5cl^?G}B z!wf%+1FAR0%~2t(ZX|0J;)QroiLU&JAo<#iA^VW{EyJWVho#4aqjGqjC}~veQ<bW3 z<lb<TNu?Uk?oP-an=*+vw>;Lia4k48l~XibTMtcYsvPs9G}V1{M%UtOzRbT&*Id16 zz<&{7+Ctt%A^vr=H;Spx357#0p}?FYX8xQrI_KJzbFqyluJ43vEAdtple;C~%85VW z%>T;Nedw|%)eMI7ZO%W@dn<0hYH@FVcRATn9`<*Q1}$6d_t^nHROo>Q#lkZ$b|7to z4Os~9^|N5|f`f*4Z_`JL_%=y1N2k%?Xa#vM<+jVn`24~}jh9z5-C*2(`kOA>!Jk`t zm#kiCy#=83dwpig&D-0f^9PQ)?Qewe25yJ2oU9CPmru@-SLL!EQ@^Yh8obeEmnvvj z0i~sT@&_;3ZGh5Uc+-Og!fKJott!^$sk=8rqZ6NcncD2n!7YC;sz1Fwlqs(&ZD`)* z;pTtX<H(RK{CI!0r6A~yG(Z5XjLW)w&Zpa2vAuT%{AVh%@E4=QGQYSeHu}NI=<F`R z@Gr}^A6vU=0EXB!k8JLHG**}c7QnzVI7OUe($%Gyfz3orWzgAIvk}`G5c<A$EoFL+ z8D(Gr3Yqi0Jh(FVK{$iiAM03Ojlh5PIS`-!Wh9AQRjDw(Ts3n*HsBN6kT55YHlN-V zAPR;gAviu01wvm;x&J$Bid9m0-sb$1p4saPjE9}RK<ENa*Uwc;sT(8s@Dvhv%fx=z zo9*adGQ8Rsfy`>GQbE^?=s}M3CSQ2#*t~XtCK)DCQp5H$nD!3q6BQlCs}9GsV1Fc< zyk3<H=MAL&wTkV0ZjDHPc<;qTkelE_oH=aAQj7QQfoyzQ%45*`p>Ib%8eQ$&=sMpW zU+&kzw$&BVp*ZbKMS0{?i+Jam1z=v&GsSSk#UGZ>v<~d@+B5Z#nX6!)9Z=_yg>u-# zNqn8Z7F4nIt5`7&n=>@`%i2Z6zA$xq3m_)dV`2X5<*$x+G%(8?NWDeL?<o4p?iDN- z>b>p@Qh50jjZ_^yrS>}H^<^_z3-t~c+AEX|8nbN0%_nZYhXdgD(M!hlP4RkA5g0!x zXFZO6r&r@`+~fplz_WB)L~Oge;N6=?No}TnHIrDY0m`)4IBkl1xB!MCkV<B(mndTm zlUl@QUdeqII}V+Svkurad_$b<=*`asmtFANB+blhNc;ZoWnevv|Mq^GU3<p>`mY9& z5W?Jn4;v0#{TR2lmzh$Xs(SG1x*8*a#n!5aZ?_JRCE%{TmIBfiQXe%%t^LJqP34ZX zZciSQIyQPOm%ij-j3#Xb_Q~_}*Kbn+j0W?I176^J%ht`I0>eBMA*WUJ145`*Vuer> z#k`WYdpFuO%60j^@vkq=4Z1T~3EiH^P_a<UQ6`ez*TGf3;t!V$ErYNpSj?-a8R)`n zN4kTCyM33?JB<QaL(+y0wZRS00cGk(i-N8m)J)@gYa^I%%05$8jM*#^OS$pG&&`H9 z@j1ZYiAMHyo=*S}dr-{^C#bpx(t1grRio_|%iD?kXt|Tix1i#Xc1vo%rm%XQ4Ut9x z(CL%B^1)L=0)~+=tZwQdwiYKA*SwQzI<c`j|7N<N)uQkvqG=^Oy+IqQ!#AATB}!kr z{A%z0;sD%;MxI%VFW@{pq&BNn#_)_y!Q+@*k&x1U*bo4aUq?YM#?v7s6pOxL;3DrR zgl;hPzL&tP&`0hnf8i{K&tY_TfD%6WQ3RvfMr&n{gciRAFfF~T7w6Zdi!trfa^tAU zQY6_$uw1p}la@O0Oe=U%@xpQ*gz+~(M{f+&tmM2Dp&8yEq~JOoF{y8x^dBix^CE7h zNHeN^=J@!pM!q4*A!lRtPs=ZDs<+PulUJ)-sWSqP9m;#hvsu?OMWr}?wSYQbhAf5z z?O_g^#l`Oq>|iy{tVt|Vr+FVXty4Gp@5+BIRLk(tz9KuuKHXTvg6`mbdRmr>Sy;iL zZ+plo6#L1R=Qng3pgP5^O{h2vIah~)m&sPA@ZX&0PaHpXE$jE}+4SjuDMoGG8<+WI zko-<P_`-y-4xctIzUaH-Mux0(ANpjm_@>+8<*^>*f)2fag@q6Kdszg2$eHF4tmO+D zxBq9C0<k>h8y!ze+p*C<yl%&z#!@{FeekL}^ia{PIx_X!16&TFI#}CNr(OkkJHWCE zs)d?_!yr5F3*$thHwzybs9&4f+(o>ZymS(e&U|Z|uPW<kwjh6Yd!psKCi4y1?!b-F z<JWj)*cTbJ_#@D#5z&d1+L2j0%iZ-Pts+C-P9CwO4O9(l??Y0@S|p9h@l+WWbBz5H z*mwCz->UAgZ&wH(*=<?-9qE5cx;DiDK)F)&rF1Ef5sz78(NY5vof5QTHP!=?9f*5p z59>*I_M~3LkO#ntfJ??V#~O{~Z`UF;h~tR`V|U<nJo}nQ-jLvO_%rw>^-oNSWvKKa zDWhx)_t)!hW}3y2%zH(NbgAdw>Oo&)CE!MSX9gkSB#$HgnN72qn$PCW0tdR<rXUM3 z(MiiP5^t9AnY1kaW=2jm;|ui-rh5@*71-Z1ep3@&AW^xBTR#H|%P)$@Y-m8|Nu#XM zK5X@aO)np5w@Qtiwal2T+VsY_MZ}uWv7+vGO<@cTbK|!z!nMg{)01c0KBzH4IXGMg zu^CXf<#zXeSjN8GtE1uqrLNBTJ8R74f8<k#PmfmxuU~6Y;6(;cXBRcMsDo{}Xwm4Q zlgfIa`Xhr2uZG6zC$H@L?<wXO=A^k>)}YBvLf5|CqcTG)q{rac(cY9(`egF%F_(j_ z)!Qz2s*}P~*1-IUL8?D#UbfaiPg@tArhVRQiSNxkyExfyeWv#pJMXM4yR(vz$ZlOW zuqTJm({Q`rcSj$eeyae&b%C(IX!_;c`u5^QbV<l%O8tVysa8#fIFIvaZ-CXuuu8>j zx8;Utz8sKIm0lBT?o#!TTSW<Sjt^=dB;9O9FFhqIrID?fu{U|Q$L?mmN+aAqOZGns zF;(EsEBD2N5OO^{d|W1WMOEw6L547%PCUzN`*F}uR@fwG<-ViLW<I8I^eB<v&GP6& zoF3_)2H<!<&&EnsC7-$gEHc4}CjZ1cww5~Ca`1JdXG2-p%JZ1Ye@6$CtwKhIRs;*b zMG3Lp+#TO5{n<sGJ*Rij!1ULS@Ay+VsMv+vY76BJhdfJ{9|>2XxC3{LT4f^}jb48H zm;NDz=r>~2mLHOPhMa^KMday!9l0UI#Mu=AymfKVfy>%Chm~6Na_sLM{cDF+e8FJ; zqu`}eP3Q6c=(^x_U@C?H-l>fuxR<@(l9;C+3GooJh$Wah<>*GbJawrX91zk-jr14| z&k*>sCsQL<6Z&e5@^c}Fch+`TkI(cwud}e7tx0`!+0c|uK1R3d1asJcUiP<CX|4%` z=w;a)A{%_3W8X*_DE-2x_B$MyiK__j<Tlp$yt;nkbkm(2Bw>=8+VUx8qNxavvN&`d zFFQ4kz1ewGQ!9hDKK!V0*(h)^Wtn#tQ(Tv3L3}NTd3A$$K{acU?CJ|wG3F5<_7nxr z@xw}Y^a$7?JCAB@olGf@|0u3Q#1F=?Q(32VSKs%Q>{dp2elpHeJ`WqsQ_ZFb#Pi1D zc1~(pSIUwvHI{FoTMxI=m$oIpGQ8$Dc@Yd%yjz0@b{$zb&)byebD{A3b=*%iKz3f) z@86L4X_8=;kt=735-JSmg#=|t7l|7h@Pj!Mqc8pB)>bmGBuwnt%GP@}A)RbhQ|vAb zs0jEIh%>D*W8AUj8O+<;?*U;mi3Hs631{TIM^rewGYh&~KQ`xV-j6B3dLH!Y$vB6? zGZlnta>tWE#a<khTc{s74xaEPJ8-OJX4LVM(|bDFs+qR3Rn^!I(ZDqQOu;r2w~`ll zL847XY5hRsDf8O1lX4XyaQ>s1<-VAI*-8eWijtb;<1bjYjt>W)*+n+DR``Z9<4xx+ zi!av#&IU;_WyAyfO?7#8xELoXwesKZ)m=Yb5u0euHepc&RUxFYQ^>aPDIL#Di!!)J zg?GxM`#8{5xw6=+KV`x8Vc*h|W@Vto;WRo1*k!{$WjH~&q*~~+H?K^at1_QG$93iK zE<HwlTqu<B)b;$Gw@o#=+S@MSShhbC;Gs@FQ;eidxb63y5SiNjGbB0(m@5TGXu=WH zi}Y(<Y82!}_;Xe2{1dU>tePG-H<_$o8@6WlcDx#>nR1P4_2QjqaICxd;%|T;Dmmrn z)o#Afc%8272V|y3)}F3x_oO7{z0K=z8ZC9=o0EA=%Y{mE$Ekd}N!AmHH>v~y{9{Sf z9Y+vvA_}0Uc@v;#3)NvF`|xvl_tnv%9^4}t#lU%?fY;_$at@+Y+sY!#v-_@PP2gsK zu6(0E8MadAD@ouzk8^okx5D|>+K9?3Nj|&AF3EW>&qBxFksXX1$SI2}EnKQ0S3XFW zs<GG9AH%BKt?}f(WeMj+7>*H^{<fAcsq=y>E!oNdsHHp>dsnb9V%sjTcYJ@BnWq5| zJ^!lrN?{*-ltrTUmIzfP>IJfFx$ars{_$WKDarPRRD+czj8yC2V@%%sVd^Iceef%7 zk{_)=?kx)Q874#B@M`Mu-B}(2b3@quWLjQ@wOj2hW)&Z+^Z+8NI|L^hQ2BH`0#~-3 zb_wghJi!BFN~S}N{oJ140)IKT%_PR&o~W4*)UXbs`Nt?_tH0RN_CXU~Dl-<D&k}Dk ze;DNC|9iB{%U~e_kYm>AK{+5Y<W~LyFmlWq9-K5=Rdz>PY0?z!fAX|OuRb7yEP$hH z(XmJKTk|up7KicEvFnMWS})#&f&FBNvnSWWu40w`qX55?zjH@-_5f(EcG%kaSUfEk z;Fmz!_kI{8hK)3G0p4sA|4m~%zcJ!g;M1B{11s^>p;Hi0sd6*vAO{27x*w-Iv2MDb zMoPOV`lGq4^s-djuHmDWh(6NU5hx=JQ=2boo`7c#4doAa-tE`3Beu5h?9j+BW4ef6 zW(X?`rdoZuLRNIcrVHrn9h|u08RQSZ&>gOVUNyT8FXM8P1la&mtJ~Q_sv1B&d1tpw z{uh>BGoEZy1C_DD8hAg}-q&oVG_@%z!sWeDjCA~xdrh)%&o%^u^|`!#n75vsZo?D> zCYD2$Hg^mGq_GaRr|$PH6nJ3L(Y-1eu<1&z4m51hdrj{s6iLj0ZH&cjPWqJ~XlM%V zr!_xPSm@i*ZJcZ~k|UB8!X*JF^RJ<U;TflHS)F6ouv)xM14tpp>nJW{h?fxvcuk27 zg*~CsrVMhtceiw<kvK_cwb?%-As~l6T3Ul+K>Z;A<fjT>-C-&EG!um!r(IGX%fU$p z+m<vPZu}6pLnLwWDg{ZXgnu(zVCnmbi$Sua96O<mUokJL7@mmY?u1j#ZC8X7e7(~W zM8^}miL&bEs&Vp=DiV4nar!yzF4QI`+~a6+>bwQBf{WeX40|=H{XvxX2~0%t*+EV! zi7^lp+>0F7a36hJ{%()wx7p&vU*Jt&tW+uaJ&@9cS2xowRq|82sE)haIi_v}sd>df zF+<5F&fca4N%@9IvS9&|J<cY(3awzg%(?WN!37=CUp~hdk825z3nbf@WZoy^X0H7e z9*ODVd@x!!WLL7R{{ZT!#PB`@v-H@8>Rilq;9<Y@#EWE}-dhVNY%EX@+ECVvD1-UI zFAYId<JcRmN7W_wwA)t?NaP=S8Fz9sy0j8uSh+z~%%_9qfQOTKl?QF-AHpaNmtK}> ziGKc=eoVOg<x(6k3TtWfkX!s66ERh_c?AXUpSQ^#<{G!7>yfBMUg<BX*{{CY7N)JB ze)Z=(gMWAQ%RS?vU{oPBHhVpu5!=FEl5xb-Ym686MaTLiI`Yd<o)v0Hw2E+qCZZwx z6<hrfhyJGd(fLEmjt(`iGJzqX2Oj|fm}l_cyoVZHt?7UeR)?VV)EUh`G2c%svw$~A z44?ol-W;#QU+%(>zWvyVFq{T74XEUk!CI@PEDuO*YiIw*x*x0DYCQC>KWeNfT@VqH z{4(g1-?wF4t0Yl#Rj|i1QOk4@EiXt;L~IX_lIT46EVWcKKQHs@HSO>tdzMec)4+4L z>O$)-FYnj;V{$y$$r8|j!D2bN3$869AoTPci~j7_Uin`>xVVu2B))8tY%)>8P5U=B znl>b-MTs6WepQdv%_x4beDk82>?RvQ?G_y#c`-FjUiQ8Z`pQP92i6`t)i`uOv;r*E zJeZwWi^guNetzpDSX$->#*)}PXsibiH_yY(Ch@AuVoEn_U3kZwirZd#as~{03r}OZ z<kR~g{IKjGQF^K8A(+2L;X@tw8k?P=zi4x<gi}<SOX=nUI_vsZCqx2MIH7VEM<L&4 zyu0;v-LAsA+d6z;B4$8|qsaqR<vpdlGZWGp#iJH$O!TG3#w>lmMr_vJMH<EHI?hKu z(nLMH!2F#c4cj~j%&@OF5%te}M@3jIi9c0492!2Im>-?E1_iD!6AXkZQ`>S;W5;r& z(e%|7CK3O7NcIJWuB!?=PAPB6lu#7(NzI*M)MW}ny^M046qiYs9v-gX1^pyo{`z5d z6IYl*i^@QM(l3}DE*7ScxcafE;jBAK=2w^jY7KHOj+s)GX$Akfkn9F-4RRzKO+D8$ znJ9RfZgxSsy-CI`o=ooFxcb_n|E+r<GQw!#QZilVDDcCQJnP{t-S7w;X&6Umi<HAi zb|<oU4!2dPel~zDYjoYYj@=6Q1$rRIcuYZgR=H7*lWv7bbyNxU&6TSI3c;6{lc`Hm z@=8f+{_2+R9d5%8KzW*g$_Wj;OQ%ZHv=<=b>(6&Lvh@W1+d`FWA^f&=%qzzG)vdLO z)5uH=?TC(s4rgNIJnKGYzEK<Kuk>@N$wif200@5_53MG=eK8p|7jDN>mv~j0>eAPf z8x!Ju2G{zSLpNtCIHUI13>5=|=iVHM(>+)HirG?!?dGlAsCRxFf)PW+n5cX+4R0W_ zT&iT$z<V0#lMa5UP(ez>Lv%7mc6Kf#&ada+au;{W*>h7JzWjqa_fPZ8Q925X)#TEO zV%~``E;{6`2X<91f<7xDKHTYiuhAj$PZn*jdW$^eqM{cqU9(5&I1S>4<4={(14<NK zFov00vs6XaSSkGy|7SXx<Vz#@<jPNhFFLJ#Yv(My>QIGQpAswEZP-;jCZl^a#FXWJ z=U~hQaXSWGFRm0H^4@{BF2PA;D{TkpzewuqxJ|TM{P{`2WO{+>KMH?iy5M-DtFM=j z{gliy@mTMY*-D3cMcZ^cIb1slShlVGOE14;aLHwm)Y3{IdkP9hyeL1-O!Xdl9iLFn z1f*7Nc`kMZl`ZOuKA=o^*mb1<?+{nDKZrq{YRSlJCwq40`U12$e^mlVJuupme2}<D z@i!f*-XpFRufH_bIhnQO)R8}f<}Qbz^0^Z;^0=EE^*OPp{oCU#mItO8;hub*hT-Wy zw)h44W8G>W=|!*@@ULnr(SrB$9-k_nL)b8x;T}*P{|AbFXc$Dh*^S5^s#2d_gboS% z`F@Kt(`T~A@qpRGW2ZFY#08NSJ`zeU!^+`Kon2kQiK7MAz~IcIGyA=M0XE~9H|Xck z+*Y?N;i&#QT~FC*MfS7NcH~}b#*5v=kB3#}bB^FZKc||B%zqTKV?SF;5w}oR6?e5e zi|*}BaoPx4O>>IPliIJn-((1S34yJKO0TO0nvdD7_t!i5MwJWHZPeiYqU7V5q&AEi ze{f}}CWc}Bh@9s%uIr%psFpeT6wPE$0Zgg|A$hl8S#fS}?;!3;C8wCJ;<dgXHFnxn zX=vC<X%V3v;4>%$90Be-^^Ajp6A`Pq(CT}u22lg^&*LTlWAs)oX*9yO?x$@C>(YI| z%AVGg?MAG8DK+Q2LuEhgM&`V7TuGafTS|LX8dlv>KTp=1({h_z7Cy#tZU0dinZK)@ zF1iWHx_lHW5>f;<%QAb|^?l(rgWCQb1oKrDi#3l0<6l`3>QB2p^^xm_imAW?;9-BT zOr7l4lp$uN$2TZuUc>5=Voo!IWX-#7{3y`vbdGY6$bwy7yV5KDRtNDW^9E869ZHtI zi+%xs#F^^6$7zZ~I8ONXb1Q&d3=5|yTC=kVwbXO7#Zz1zT?}`d7elvu49|noc{kjy zQ(>NJKMFaIZBmrCe>f(aP&_}qcYJXHv3w{hW^t_0wO;6dVY%7G^Wu4X8eK!1_n;Tj zjElrTF)sT=Jt~L&Uom&TL?fFo7iO_Oyw~!*L)^Z@yLd!^Ml{LTCVY^ECK}d!638># zVg3-xl(yBwz$a_Ew+J8{U3S<8Dj3IoGp%yR<v<eK^&`q6jq5v5Am55r*9*ft{d^j> z$}T%s?ffi|`2{G+KJL-}%lVG&v{RMCy`Dx#uzATdnvJIZwGJ0W+-z$X)GF`HGpx`Y z)d1*g{<tfx_N@l2LLzf_j${bYPxcQ1|1J?7`7yuF605DjDS%FQ8$M5J_ltJC<zuaC zfK>zNhn1)vmTA<xuwy>!l>e~Wbf)E#bx@kfeT!bXw4ELWv>p4c(OYDfDET1l^{wkp z=bGxCk<iO5YS$D*2J>+1fA%KVw?mb9W@OEO$+RMyHFEfbuU~;4fh8@kq8GDIp>+$b zjD784<Ns0I`@E6`Y|weatItYr`w|u4IxTk<FZ1Gdw$Htf*cH3TyTNB`HBNgQrRn>a zwWGz$jN$c&3dT)czGGm3hpuR-dYSGjFAb}9u{t+T|6mrmcS~YDcwn=%VA12lSBw3? z^@MDn0q+Z`en8X4&S=U~EhkWDD%iE+;tC){It`z4)~}_F{<!sY^L}1`fw&f*Zx}JM zjQD1_<W;eRa7w@d<{(a^_sr6<LOHgH=r7*Ornl?;VyDN}MhPQTTAnl1pu?=i6RWpD zh$A-WUqw~B?Q`tiUGPE}bI+GGZB&EE{0@e^hDJ9J`|;i=r`<JS<>zLv1x&UWcM%h~ zDy>u_suGEC#=Q{Sp~kNn<dUGS3f1a#NjkcJ<Mq$j5EIZE{x#Hk-e#MK%p=+M9hI|- z>^ELTh02#-oW0rCEDfNy@0k6S?9ysSr2Fg5to@bGy3_ntXXoD_hNwE9Rx`H)3^|gQ zCu<7bXn<%tJ85Z!DC<Xr)>sY{g2O`Y9d3jc(Cq1UAn>euvWm)%dv?~%-K{SKYQo0J z=eSdKV#mUF(mo;|nB6`6;>C0STK#U-I`N`%r5whFb$H5(BT;d0*_Vr~1(`Nx^<aV9 zgs)RS%d3d;oR~wM%jC2yqv@~xr#XMHYlhbOhCkzcgOO+uce>RmF<mQT=(@=6GxP^B z6<lW)zep4ymZ|gZ+c|ILV1rUp*8syO(B_co1FFS=egSsS^9<W{r?N%J&Tk#+5QUeE zp=fwUa_Z|2{<L>NVu*`Z3om$0()KmBC5<1G9y*|Mdi%PgnG!xPLY1-YRXdogFS0v{ z3S14Jo=kXXSrt&0|5Z1OJY~_WHrN{voh6yx9MwAL0Y8qPIhX_<LB3Y5JjqzQ9Z(dk zI{7*@bH1bQ1DCZxcZ0_BzIr2(tKBIxLSNkKIL9a_y_LFR%G>^hr(-^3#~JWPN1fP| zkxtobCiZIfm-pyGC;e1s8~S5y<?gN<!_%9&E8sO+9YGLa>Vpz0;vp~zmZpDj!6~}5 zLz2#18eP@36+7LPvSrQgJR6alKkk)laYcz#-A@*B+e=M2IRI*4Nj>w`;qRKq4JG77 z$)kQb2O^kmHqykIuU_+dakIz<d-rCo5b^D6UnpjrBoC>`Ez%`!pM@zehAHFDRh&ks zS8M!rg$E|hHD{JgAKzA>zcIO?EWCXl(`^=P|9gI0!P#81)?w)>_^&hMgL3d9%OFlK z&iS6hk^rZiN(OB<krvqL^ki{sxK2~9(F<A-CR90%-G~n$kt;lxd8q6J6f=Cthkx^Z z*DcE+H@Mub@|=P=xq_EDwnt!N&Htp7Q4n$n*F9#FR+ku>lCUuzqVJ(vWt_84mR|-) z(cBL4lyy8cv^4>cARK{&xE);*?w~ieN#LL$Y+@~zTc`OPyp>AX-p6&f;<LJ`_BpV6 zGpU~jP(Ji*5>sa5k70Ej_4qC@O|9nb&^iTM1SPOeBetg6Ta@Fi3X7HZwAFcb=doOO zxsj!}4C#P8ycDcHR(XcEE_XKEE4j{9fP(6TOvmfTstCl*LBXhp--l<1gf7AJoTuc$ zX^*B`GRUAI9B*QdRJW+Vio3L|S9)sEnD66sPsi!7q5}9}$U}dpA7WN~k*j;v7b~B1 z={dw)hk4?x7Lx~v7TME>u%BmC@AClqW{U^zrRLRs_vdf_B{3`C+bi+~A;$P5er!K4 za+wfEo>)ZjWT1nLhF<1^`~b7lVpG6bah-XRV>(*(T!b)N5?Nf>-sho%Jp@L_#5;2+ z<8SVJY_z>EW3||48ptP2?Z7#~S&64St6Gsi*XI@k!W7_uA6GG<W{>1j0iRMMhqGN_ zc6!sQb};&RU_Z~ebxD7+p#HE1LIVYtn<^>$p2?B{e}>M5RO%cnHD2oD+4maXEp3Z= zHfRt#9~E;bSMdPwu-Hw6IT|5uYapNPR&UhqHH(3d5ZMB+YKy^%iv4c037jeAeTaAZ zbMn2J{;#kmNZVCY6?f`S?d{v^HbwsPOIcSC)l`USL4c4tVG)a0BI@H0;uxp@G*8!8 zeq~)axQ%d<@78~`b*k^`;gs(mcEqW8_tD88OrgLoY%Lcs;5%0$b?5OO;8R|%YAeh# z5#pfAVgtyns`5AAv||zJ*o}jjSI&DwFn=5m|B)l6$V3@yT5VO1z{>flrCIA1^<PNZ z-6_sP<Yh>SBv>T*S%2r6>B0+k;%Y1A3fcx>!crPlhfu1UjQ$SKFr7R#!h><?$dpWt z*+ECgwZG~DmI34Bltz9|<L?Li=&s}T;cIxiZZm3c%q`tgp3W=^RJaf!p!Yut=Jp@? zW9GW45(Dm9ce_oe&vqNu?%c^|vN!L1KVFsE6c<GrwRzfr{`8AoA@f#LCZCi%$6Svg zTm{@tzL50W;8idG)@Bd@c+F_e#14tZ*658hLua+uZ}B{7&@jP<^Sw15YA&>Y@`$Js zM!{gdb}@Viecw+iwiwXQqCg3K%KVJIvSw^|0MBNl33W@}7^<%9Oa2wRDlB^dAdpqW zXwK=ikY3$j<#1c8%Mg5fgN&5RM3DFW8xMQ+Kj^sOv3>4YkMB8Nmt!l=YuAt^_p0@0 zag@8S4Mk(A^4{p&`p0GJSV5FOC+>-ri$0`^v+vep9{XO5Hw0(SLu_6vJx^;b|33tO zGfegR;H3vXb!4#`Dt)_mt5|`HXq>6qNEf$iii%hySK4Hz<;ast5b^mrN%cHi-NAdO zP9qg+p>-v+b{dQi`lMAlAz)_lbPaq1R>EnOZky2&Oio(*EATljKHy~TYM!K+lZk5t z#&S8mEPqQaDYn@m{jcI5WL~XL?(B^qJWoo#+>z_)sqAOY-3z?PnJ0F(p-57SS!0nw z3D;njXx86$v>}*`__67(t6F1h*>1LT6~y!_KD|TW|9-k4IOm?gTADH@&qpv;??4bv zcRqa%alx_lxIkrzyfJ6-t`waVW|CmyvrCQE=^Tlr5s&`V@a<A%!gvr-DX^4+7b(Vb zt9R<=7mjRMIL5`thU}OI#ujyzglj{In7_CM-^~9g5U>P4MStjq!u@N_sr@!#6}DI9 zN+0Y5av2+E>NY(sRD)oy80LV(kRG`f*sQFG#g|Ma3cF{VhQbPHCwT0;E${me;!}8> z3}1Z$=`))Sk=b@(s;?M?x8%yoPR3Px`}YxJ^F>ymG;8P;mg+jQ^bZn)3@2hNPG(4w z1Lkc{G??GupctEJ3R1a!sn#(0O1VfcPN}WX-M|<@7pWqNi004i?DqN*Bq!qZC{r%< zEN+rOYRP%?2|}5N^VrePNPY#J2b*`an7f}exZ;PI(gc<`GKxHiR_DKekm1KXSh+6L z#=VYaxM<AE<1g+jPI02c4em$0qo<a2biY&|SuPgQsD!0G6~3Q0M=&z4kRQgJVD*pa zJ{V<X<u7@_mtdQ4pUD%*{A7<AOQ8(}EZn9log&qDqvSON>_H#+=?D-~v2N0UIA(a~ zwxF*J9!y(N?S6LPo*yRsg0jbC;XS!!4nb3$&o8|}0$4$>2hFJSR$kPow5uXGcgTyh zYeq%B2Zkd-)~YrpWjMRvn^!fVY64lxQBS*dn-eq?J;cL6zUcX#ZaLF&O+1!4Kt{Jg zEYik=GolSdulb?=S^}S)Y4W<!Nihd4UN$90d&)OH)w|O{jDG*NGU&=5gaS*zE=XV4 z1>{E*f?UZ@86^&s<GXMO>-EpOr{#_`p(7&tJS%25QiKTbJ$>&?$u0-~-Du#_2ZcrK zt+ssJ3MScYe;J9K1cv{5b0V&w<XGXN!h*Llqc0iB>+S@C?%aA9sDjAtRcM5cL&!Sz zMK+OD9Au1EM{g2<8zGgX8AA8-fLS+(l-*Yc?I^}4C6M{;4SLk+c&68VPzqZXr}km1 zDn($41Z8}&E?YuWy}o#$G8l1{0dasOzz}1}wQY*a9@NUw@de4}U(Y|0)M(m=oH(p_ zuLBnT{VU8fbGHF@;kP`DURMr+=LV1VFvqBo*&TN@IMMB3kE3sIU}J1Ur}@XnV85C> z<Q03>$g9iUylXGBhTeZOQzTlEhR9FY>T%sysy|!gV+~1R+EYtQ7NUvLuU`DwSM?18 zkCYv1!~x$v&hcyG*Sa>#@^*hS<*5jr#~rvIpL^8_7B82l^j1tb4O{~QlGpGUqixl> zGSc0beusTMYs3#ZJL>4Rx$?PACjS?ziF$#uC#v0K*xB6LY0u$0EH0e&^1Yk16*8f{ zw&;Vjh8O*r);m9rUbL92uj>7|g&@?^T-m$wy@$uJcj_+AeLX7I(DL)j8%6g5whjI? zWUp;2JY%R9?i|q*d!wUkGI<2W9H9C$zSQVhA-GED1e}iBvqm?!d11^QG~vCR4ZnY2 zLVf2;E<JVREcK<fkJgE>ik?uf64Jb-b;)qrw&rjGZ%bBazGX#9+9#g_pdvUYvkKyg zYT3;}oPGTcK%8_9t?%u0%EFh)xoE2%y}Gw{R&8>ZMYb;G?Yt{|czzl$x~WR_jXkS! z`IMHSJ|fU+$@eGC?2cKFX%*9l0<dzfna=2#$!5UzSPjI{W1i<Hjy*K&aTGshZQRw3 z3tUxoVPOFne>ujiJQ8f$Ky(Zhy~^%j06$<IQ2{>cs?ecLxrw@jaDVu*sj&6!7|6BF zNEWB#&Tn+*E0H1p<^1t)o^G8Hw6U^nKcLTse8*<m^bNB5a{jt`^su<19*W2y$C=;8 zb7<TZ$(t^)Ak!Yi^TK38R7S^!x2tU01)ocSkSOFBnb&Z8n1BUbp=8>@W{?LvXLamq z22TJ@(6_H*ei-ER!%inASPk;&8h=o|yarrX{Ty1DW7A&#6N=lCzw<ow=*`yTWC_{F z9OcxV`WB;G)Kb;gUG|Bt9c08D^LdJ)#S%x>gsekH&HI=Qe0)kt2ZMc6XFw!lZh+Uu zP&)(dy;>reOuz4ivcCfR&3r9}hW~ABzCCL;`jC#^B7$Kli%0vfjwVh@u=?v-b5pBM zd`PL3y1-YS2kr@LaP2{pzgpNVa<L@wB+q2Yn5dt_Y_@?&rFZkyj0OGKAEmP|)E359 zAy|R8TB|MAx~oa^vi|AXns!SaMyU9AQ?OA)eRi{oZDodyi*ASx{`yw$j0j^U<A;q; zDh>n_;VHXAiGirHIIs0|+z8?fqP;oYK*AmlvB^IV$f9XXqR9B_?s~FO-9rTZEgvcC z3KEeiqi@LT1phH>oU)v*p{eq$G|*@DdVQJ$n{~_+omEU=T#UZlBD&D-8<5}OfB7ux zFrT5Ta&WBD<S~!a|Dr|td{Q&@pP|-(N;(#ez55H?WIDR<oXVqO-#kk9o#99kyEC)H zI^ZBgE0qBMb_GgZ82q%RheR|(LFST!-`@LCOa|r{#+wS?Z6}FH$U}OhcOMdg*|M)C zmu|Rn2_6l6=BvZyq-kBjeT(Zts;bWI(<t5I-oN=B1W)28hUbb(@U<OYL=?{n=sn-4 z-l{3ru|1m!4&=RYEQN18a>?Y6+w#~MF0X!Dn@$dhJw&gDrK^HHXvSO|ezZSv^)Pc< zXyTZ*96Rk8FF|CzYn}2E$ZZ{7Y{c&YIkuL#A@u_RY*JG7?AeMM9m2OTW(M~@j>e&- zYxjPBR9Ksc`<f$xONU&a=<Y!=OSF^pjdnwl=TBz<=IhTBn^XT>sQi|03Nh)vg16l% z>9iAvhxTr)8gcX+DTYatD-t|G^h8-ZaMc)zyDzYN{Q2UA@|G#lTAnKQgQOStHEhvZ z%T#YWbEqT)Gm85tAGh9+6Asxd`H$k^?hb6e?^l}3a2;@jel6tf=AW_O#uKEe4hHDH zAY69cxk!<k_dR}F8u$?Y1u+y~f4p^6*zi<%pXw*UD6e+LFP1yaZ(zyv?LT%e4b=By zj2K#V2Xi2)&upkPFMoE0g*k#Dh=7=IY#69$8!iY==l=5!-P)&0ZnMdYjXPGY*w|TZ zCb!VU67cF;AO=H6)0ntvIjV;G`a<MDmnFJ9>!Gd-@A1pKz{<}>J4}AQiB@=RgH4^| zD}yt!<UNL!8(ax4_gDihZahdhtvbMu{VG++2`OM4%O2o@(v^xV|5Z|3)ivF-auH(- z_aA_P=3lVaSrP(bL)F-h0X;!pPozBiv0vAAbg&cN4N0F(@*LrOe&ZI{14!9YSn{ew z(h@7GHEC4LYXf0&Olx(|i1+Gy8_nq(XTOnQCiX;r-B4Y>+MNKiRRZhW;v#a?I;n@_ zYh~6FZ~M0))VmBy{qD-Phkqpjeavr!#|S4+vruj&>|wx5$ur%Uy@xC8TE#|{5lnBT zkdI;7k?+pQP6@F$drGQh=h0Nla~pd53$==O&x0p{Q!8H<vRZk+WjYEM6V@iOLsk`A ze_%{8W|G=ejzSB@ZEqMloDcr?-2Q?fs|PxyYiFM4XUk1Y<{GQcZ#~7Ace4esvSR2x z>g9^G$10-lO5ch<x!!Rr3y5b!c9K&)bhvXf{5yHJ%-k*k*IO)ZrSiXj^%#<l&{yHm zI`-S<m}JB>f`|MrW{Efw%k7n`VttYG6x~kGFHP=>6M#_rL&o-&Fe4Mn=MJ|#m*(IR zdS$DEZtMpV!#;xvkK7eqy7Ptcyq3bR2^9|o?>=3BQEu||cgDWko}>$BTl~fUDOb@d z$MLIWQ7b9T9v>boe`Ig&b9eTL@3`IKkVdo=Os6-Nz_XmkzrlONZ8khu#Eo!2pts=y z<b;*QpTtVoCDCXW-sJn-uNZM!o++HwxT$}M?jP5G@T|1p41NAsWe&D_7WrpVN3GT} ztk|9c_>8??I6oU7soC@e;6hk1t!ky?Kjd-6benca&WOXQ@03Psq=EYvS=qM;@VEnU zw_4X?G<5a#MU>*`+P~V*u|>BK=o2i7X%J!sZ8Jipk+M&dTJez1LXwzVFKHC~+5=}* z-Z?gdpzD#iX({B7mu=nuX_DBxYt|_ZUgADlg-(DnUM{WR3OEYO7XyhsS#MasBBB#B zZFvog*TH^YiVXGMWt|*{Fw4g#wdEe*4s?LoXOP$q?(-XF(IUQhS@hQfL~5^gvSn$w zKp<GRIZFqLA=^un#rHavRkhEdJF9eY7|qNTce(oaMU^Ma8<i4Ch^F7X9o$&H&c)Am zhWKaUZq`{Rn-?yx@_fIo-5w_EH#CM$e;MQPA}fsqdMmIEPvoAK<mb^{ksH5fN=xvn zD{JwpKepw3G+ZspT*GiR;X&$aVjwr0XR^$5)}Jow3wlYHlLcfpeggf5jt>03>tji` z>$1vWS~aFTbc4${GRAw~xynpG+bG}!z2!#N0ar3O>}8@YDm+IjHal^@z#*RS9-BIz zryg!l%Y54GMmB3v`D^yBL|koOl0RM)rhDeNtEjYSgL_DOc$ezuavT)+C3p<$>fokZ z{CRrDB>ou_yYA~cCP-|%5_(yYWG|etjhvSEkU!sH48xa&zC8EwtI(S~&!3kk%4a_i zy#DRqKt)zhKBcbG)>(&q9c;w<=y}<2$IqP0P1Jc>?a=!*!x_FHrPbF44Rl$m;$SuN z^XAnMqnmAyoulpVbEVT?Bao}BiXSg|$Og>OOm(Y24<DGnB7-iF?R03jaPD(<U%0d; z{$?GP8@MF5B!mLehjKf)n34^rLjpeKis_i2(t!t-Klp_Zb9%>_`ZAyU|CRfp<5-G+ z_c{9s80Wl;n`q`qY8M(TW#1`mAn&w<FEQyH`QS^q$95l14#=d$>9Y|QV~X%nbba@o z;=2i)E>!cd@Tv(2KGcvZ2<%Gn7Fky0{6gY^K4i=4l;bd5)Vv7sF`Pd?>(*ELF;YDY z;~vYudiht{$k5!~9i&Wt;fgt7+p#@qxd0L_v(K)^l0#|4vp4zMOZywRMQ(iSrwbm8 zUp0#s`$u))fymV~qhy*en8o*ma+X~h;FU9?Ow+*Jj<kaxuWKkv=frLHk))G)-2FHo zbTc}sSP6d}U=N-et+^vphC11V_mA6(R0x*K5J_1Ezlk%DFE-bvoj%=ZGjNQslX~#v zFyqzG8kr<xQC2^__Z6#ycyXb2ZNcnkPFeS&3t_LeacAK8$Myb&hm$kK9P;@5ydsIb z+AkZ&x0kH;EyE|EW-VmKfs(HC=;(6-Zr>C*Q}&mVllfB0udxo0%l!HxsMvw7zD5J@ zp>5$rq%E^$hXmZBy%7dJ{-w%!UURV8l5C<mde1(amWePu^dCiRhrk?7u?=6QLg;Q= zDsrmFL1=s*L2AuaQum!|kH3^Z@lrWcebCt5lB!qYPASM?8nx-A?3E)kmej#8wQpb7 z;QZ<Jy^`7&%sdllm5uY5RfXaZ9T>e0vQNCWK7-~wsc}zw^-cR}BjbE`iM^>APC{RM zD2r;E?5HDLsw<g_S@%Bg*cKvZV3l9pY&%~o%(ZVre8PJ7Q<fzboA}_1x+FZMP7jfL zYd$yn5TT5)`=Rf0AnCGpw7-UTYc)Oegjs>HOFYxA)9cgoIwdQ#cRya+l*wRIM8H;! zz06x1*E~cdj)19W>tnq%ELtO7V<15<M8FSLjfrf!UR4^vXx#{y`t_Wh@W4nY*MAiE zFAaRSIOm~j?&ejY=rxml67PAPIQcJP_$WTRLir75r0rXwzC;L4-kB}Nt`n>Oqfk4L z#G`&egVI{Nkk7`l+9T|egKOw|!l(iDfT}Owt>gTAqufK!Mnc(3Le=o>LnEMo$`RtX z$mefNq(JWB0_T~`VntcqZeQ+~Yc3=%ZB$ZI>nV-wV97igW_^a(@*L<mS?u;ZgZWDI zK&Ukw2b3G7bVUmv4gc)VM^uEZ;cf#grC)~8qnYUvh;ira;e0zOmKUF{Li@gHR;wH; zUsTwhmsJ5IF5k-TkgtIe3-(@xJ+nPQEO3W#5qwv6d*rADJ^(mT*=;z_S_%1*xg^9r z&$jQ@<#}3p2d}8($Korc=00Kd!BXSq51LS8@{1b3irtb{#0+O>O>=1G&!0PK7LPd} zDrp?KP}iuOE|l1d&H*hqGb|0=!&KorKKdYQnce@J0AeobS`ZSk;nz{qcCESQQA>@j zcYCj5g8epolF1Uen-#X?kAcHW+N0#9hf5vw|KsQ^{F-|IHjauQ0wPGK(v5V3h;&Ie zla5Ju3(^wON=i2aVT_(Zr!rtLy35hMvF~$!&p&X^>+H32pZmT(*Y&<U6X_4`(E4Qg z)OZ5XWQ}gmP9B)$>G3*?+-ShYpE*X|BHwVmUOofp<RZLwygEy2dU@C>g{$KAv^aNv zv+PE9(q`DrP(D{+CC?OA=Qwm>faPtg&)5|IdjRHuC)6kJ!|ecv%~ZU7Y1XK#8@yc( zzph%ZV-aZdzZYF^@^0bF1GG7AUvpv<3SS#e(bh%86-VxsTtOjyJ;eVE^e*$?Jke4u z`LTIB-G&oAuAki!^w;9dF&oa1U#nZ~B1=H+eVAk}la0UkYXswcPFHCergNead$!P4 zO`Ks?h^-b6r~q?8F1Cf-O&(83S{_AqDIdAhtVhJV-h(A+y>YaM&Lu}_aP@f-F38md z*ANlEj9hAB6F-(8?31^7q_Z@cP*{c!$-m4{{~tn(qFWj4&D7u4c6z83OCkK@s$oq= zXITV<tQj^WH_<CZxB=_nd|UjoC|38_Xdg*b!~4N|i%#LaQJ^9<mf*Icp;XQwoz8B= z$8aCKMswZO!2XG9xp}i^EI(=!N4KZ@{kmkm&Z%fm{MF``v16FudB5AiU;V(lhnQ=4 zyk7Bv{UKoMGb_T+SeVG!-F`a$QRFndjx#bPf;sNQee)G7Uqat|A}n|<|0u~~whXFU zf1=JPHuU3Ez6P>^4z83WKM*Wu5qVjD*#E3hA}inY=E-%o!1IgKp2^P2>xR|Qg`qOb z9Ay}O6W+&*ijI@3=tf7&suN1Btpd_(X-FJ9u=qHp2zo#*J4ljs*8|Ylec_Fi2;kqU zS8J8=L@JE?oQpDR*Rse*%n(AmM=A&OvO1#zK~%jguBDsS>YQJmaid-hReLIM204s6 zz-UG(O_hC0+m}hhjQ!W))Hd4nx1Z&*?H>!XlNlNxb%!<xpbP%PLmASTvJHFbE{4!2 znpUuv-vZL*%;*k8vR=$GQU`KSa`mKV1AZT6q2;bno}u!R@mcQDMXk(a-(-9Mz2;q} zCEZiUKQH-dP5W<i`-G^6-7o((j4}`M8|Mn#n1}{-4bsOLxKUWiqGhvl<fyT{xMtNo zT?^nQv&G&qS>Foxgo*$N71wnOdKbqQCO_kD+xdM4J1oI;!2N4yxh#I2>!bTmXxDVv z3IjoU##_n<Akw+(x^=PpTAZ_0QBJwBemmRe<<s5zz(8X>lj0YLY^5p3;*+dU7fsV1 z<T{`6rrvx{>oO7@$`Yt_;<<L0HF;^R!Tw_Ox#?zdV6AB+?YS195Vfh*EWG#sT^}z1 zA~(P8T9-)(yL*kgCvxLWK)Sur!w%$1(qL^xd1KDe_5UorCYAF#za+~SNN3|L!!bAV zx2zd`?N$E@yY|snkUtoI1)*!@aSY`+eu4;E$k@;v_x!qJO~BxCNst5fc*j2L9o}0h zDM+GNkL3m_`g1~1(ek5@-!&L=T-oVXcPP&quy3qgNqb8fxmiu#nFmBo8_Ap_z=a^> zd2dm&F|{DMXEs~~=M74&n!k*s410*5Iqr^U7nFVV?w#Re-_gB&^42|m-LV3qh$H4~ z0Lb66&a^pYxpbW*eG=WQ;xRustzUlK(qG>|onIfPuJMFj;I!b9AhU06c?uK<54=ed z_7|Wbgk&PNFBE3uHwdG5zCT4-MO+Ve>iQ&oGa@}%`9-~Iv4?!#;?-Y363({)yg6Ff z2!V%VrkW?(%a%9NT+H2m^*7zd>t@)6xUPAMmx;6=3sSphJ;{}1B?Do4gSQ>ERVFe% z2P>f8@Wt?a-;>;*>3zAcx^v0HrUZRxGc7`#2NZ#YV_Cb7<qICllCh|?mj*<Bow~f) zmsfU_PTU?~_e23&WxqZiA|SsdYCS@9#x(Qs-Z}nkbDatohXCvV;tmr|F&)QB6c^4G zBTFv-MbcyGWb0k>`>b-<NvjTkjqUI%LkT-lvW~BscAj%(qL&wnlv5^2jP$P2PJg+? zs2M{|I9m!oQGkU$uv~BpywAZtqEEzz$YW+L>}ZRKgm@~eHb3$3$belq_rjwUMy3=b zf-G)B%R`OQMrmQbf<!d}5wg2aS3YS}CBk0d!Nz<+RJ+WgCmda(x$VTwWu_5uE90sY zt^|Q1X}b>B#;sLYj{0DOE!u9S8+j99L9b$B(TY2|egZHzE-rxL9+vy&2kAW{o;#05 zllcNC++5)<AmZKH8fSXF9bt!e-q4<db$PXZn(x8sLr7*XL(Fe!%=|wdyAzMj6M@#i zTvwln4Lpge*&5xv(B(UE0JnHez}w*AOq~JC!{#gWbzC2mf@MB*b!1Ry;)jjMV2m_Q za3g#<NvOZfgfTVmKSuLy)O4G#53|Ls9UWF=NNZ#*2qGpM1Yn=UjhqS{J97)X<{agJ zmKr2Qoc=urO2HvFSqHOvsF72!8bBr^jqJma;^eRWS>q&(+QVbBoMl~`vA&2#R?KV5 zfyY8)<!g1DoF|H(*gsNeNKqF{rx38e=yb|aBnMw<ezp|9XwH=_ay&Ti=PYx)vqX;0 zV518|vKcZ!RXd&|gR^I0{(mFJxBGc1j$#u|31{o)BL0MMC#%pdTZLiR8I&NO*^w6* zg5(8;x>%HQ>D{V|xSUe0H5u#n)QwTZ$uTDQyvCr4p?&4{=J9ofvoW`#Ea(t^Q*00L zr?mKeei15q>ua9MyERr|R8eRxEm#u8w{$+TFKG>7=~O$3jFhk(vj>Bx)IOx99W&xJ zN#!9iHBD6MiGr3$%0=#x<*Q|2ixyO%I(-olBGj{YQ*8YkqrB&xohbBCHAJl7G@J*1 z+?{13`a6Q?bV$lJ8T0r?h7KyxPIFIi$1y&HuZl4w$#*}bxf27}Ka6>Df`ahwh$<c_ zugBd*u15Zl^ao4%jv(R1H{h$X{ks3~QcNK4HFf{W^~p_sFq;OS)N)sX!Ipp9zhe<? zy7Jy2POE*H!BGlp&`mDhm$o=|vM}Q>;-1u_9IZ{0{C$1;-Ji8Qm?m61l)tI~R|B!p zXI5WiV%o6t7oV?xSBVc7?&yqWor(VB>g8>}UZVOV<QUE%ajAp;Aay}?8oqZznL-aR zI!0xO%w7xLNB=nIEc4yacV*lek9|2ptaD{`K0zw2N$Pr|IH-5VJQ;W;)Kzm~1gEW+ z`%=-_-V}%*_qG?_z_Bv`)-of@Zk~Bt<KjhmCko=2x40e|xs~k6+g4M3d)gPHs<D^h z7H&WqfUwZY>VkhU&vCt9LoO<5Klhi5dgdyk?Jlyh-@w0OoJY;`c<;(1TmyU(Fu?Os zNimPsQTbi^HL^M42Md+IA`4dcL~H+TmZb|o#r(JQnf8ZmhL0?A=X5!!#d!J;@z?wK zH(^lj+R!+39>yL=^o+6>lw38t-Far;Oa2P+`b}6>^}hVR*90?4^z00QtXiDtmaVbS zEXXZHVe9{1@*hz8prg5bK7LiYA*#*wP#^Ol;5p4Ee7+5_dSz^~tWkEO;B(x3uP0=N z@N<?~^fzOtO!lyUe7jB;Zi>i@GiQS>AUn71<d&SSx>i8(MUd7Z3T-u*2$?0845f*q zqgKlOa%e}ii`ST@pC~twz4lz1ls)<D5YvZ7U!z2bNBX+@8OIM4hfdmua24)lWX=k* zc+-)?1x9nwh^xa99m&{z36m`EQ>SayE$}^uqysL<mR{cOW7xmIby~*^Vk0=KWJiGm zFEg2L3=-K^y;rheDc-TP$-TgKKg6G)7dUuFue!;&!~cQSIcCr$N=z*xaqNe-2=U>( z=`1f}YXDP&XxgnZTy*C{R~CzILE<7AK?9NZx`o$R$d-xx7MNINolZR>OdMJIc*`%5 zxq-zFEu7+x%k<1%p{aa3kU80Y8sw#k4RITyQESm$?L`u+1nKW)@mq%Ds>}CHmd4Xq zHOcwsX5F(CFs^gRL#@0Rnt2UB#E$zD%~nKRP`|YMU&|@f!m-@Kn$QnY-~JdKiLApE z-YzYf3l_~=(_gq}*I<n7-swREPYz%HAXLHlJ02~CRHJF%N-I}%1f8mwQ2Zs>+xs$- zFZ?%N*InHY1y-!-2}=?*w8643q_zH3Vv_#@o8hjoDK|_g)C1VJ-q1-ZlOAbw=v9Hb z(Y<20DPWtG+!)zX(q1&Xq@UE!GCKIa;LJvNJ(9r{Mol4(-ncn!oEzFaWNxoDSl$nW zX%0uf;@!%9j^l)ic|I7fk7@5}O0g>F`<pVoSYS6z1!sU99Ew!ej<~N2ERVOsAtv^F zD94pg9&c_FUB_#A9>qkj#D?faMUc3`MEEafzq7oIdt3gr<DW_h*H69q*;CxGc%gwX z37(V2qWj(j<P9>+_jqTmTdQIZjSqX8vhXWf<ElKjuQP;+ROj!G0j%f%_Xz%^7vBXa zLMlDsN<zPQXq3L)ws^;*@B%jlVC4MhS{36>zB80@vb)SZLw~eUKB?P?ObFBdV>Vo; z{#<Q^HVVLILqw*rul+5FggA><6KP4C71&KE3%@O7!Y^j#;hpQT=GKP4>jb}lM<PIo zBgt;l6F$(1DpaDZc4f)R`n!bwCWGm5BY)R0+ln5ZJ<CMh3!EVKaTe=cwVo&AxODE$ zSuvpppXZMiBIqQw8>zQ_m4?sQpxeMT@np#4*9lD_0LNsBBP$V!PA)XBYCOD?by-=1 zrRP_Oy5*9LmkW!06QSCb=lc`Eg5{jK;4#>IRnK(kks;IxJz#kPcO)-WVXj#ZFn0aJ z`(_dWXxPi**SW_VYai%UzN@jHP~Dd@ddVIrVA(I|$Z&8M;`W5fjY}qDD@{lIbYBt> zdLMU7uc?=TyVS?W-gIfPo*?8*r-AwCY)hFN{9!M`c8kDW|D$@hpA;mz8+3AHa^l{X zIaouP{AR&E@#n&vQ|~bFwgs*Tto$pf8kHy`xysl_QXc|sDbkDJF8s{Ku6-#B|KOSm zn2sW(|Ed{1i*qnVQco5BRC<~nVJR;P3}f9G)sB^aw;@_p+yOK{>Bx3%eIgJBB<N0v zA^sSxA^#Jtdj~0biWQrB&zS+@RG<2nZT-!IE$OgNY-6J66Sh00X(S9S?sykz!NMB( z)6@Ou_19y1!r2V=@Oz~a6CGy>_u+Cl{_ClA&?lMR986i#5WD7a;fH1>5x(;WIO3#S zz}g}7?}l&j6@SI?c@CPf?kt{hlckdH47M(jQo9)T8rdMos+zieG!eJ=#N2y6HjMfO zS3-l%(Kt&6tPYcB6F;LLQxQ`^x1tXFd$FHfgVhVfcaK@_Qa9Jid5+nxVCFkTzlfV~ z32a%no+sJqaTv9g3#2gXQuw2G#IkAN7Syfi^Mcg-@d&wv^#;3u?}Ugkz4g_eCkIXq zqFW%g^}lTrEHu)TJ-2^AcHt}Q*G-WDvo{S<?T^cG!d*E?jPCx{n{wV8j)*N&cWTbI z7!|f}*`sP~LR`~$($$rJsQF@ISsZfR=2MjmHsDZOG=s-Mq=0efO2e(}ExmCpU6nKn z<A=%EUYsf(2+7i(ZF%$LuI2dyxvN@auTYL_N}t8Yfk(d=jy5xagb^~fu@$IKyz5lI zKf<Ie(z`RL%O?RMaHCG=STpBbl3F^A<(1c{4IAFAhl3_?kzWgpEHzDFde=m_TsxgQ ztL23ofnaGK?ibdBqX%#0U=%h4&JOwv(!LUO@W=Dr$G>Y;N8K5t)h5i3X(OoI^a#eq zZ)x56(U*{nt%}7bYHmBex#An0;c!UbQhQft?v3BgGT-UBbeDC+nwVazIUc(S>OmcW z-0iff#nQRgNAKD%1%;c+SCg}y^H}=7F50_;XyJ^}rk&>j_ggrRzaq}R963OPNe0J0 zH;utHJ&YZ}k)RYPru&QP%WbQv1*||Xs!p-{N4!~@NgjSz+UVEeWQmO&`9!J`$)edK z7YoxI1+BVwcCCIZB(6d-)>^JIqG{sEKf*qQm<;5ujdQL`H(EO<NWI{&lV<wPM_qZu zRSsD=!KK$hS=Q?;Em4y@4#<7AV~j}~GwWY!EoY$3B(Yw9pjp^Npxxi?7Ib+DYwkHY ziaI~I%puNh0x#Ab8p(#<A``+mk1?>m6`}>c`#HCZ9&2{wafFp>A-61-b8$?T8?ac1 zqJPETT~7Ja|KUADbz>*;g8eo9#eFhNEWuZ}NbguWpN)<^w9}O-0z1jv+ZnGlh0umN zc`9BFm>AMJiOrmqC(BxXFb)^Zxt(cn3Y_NuVr4PlD5=Cs%jUKNqta=lM&0~<{`u%# zEJt`*>Uy^(B+nynuWC3LC~R1ow8(Q4)L+^^ybZ9xx!z_KO}Mvch4Os^6(XG35fMYq zU9S*1YS#PR_e{mpS~b=Q^TZ0NKC5uFhyO_Sugz)G@stymrT$&u{*HkVDz0nbUUhaS zzHgAEmq(4P0yg&S`f83JM!h@KzKjs&wx1v>+{|?a#(O?3Jau*-e~}zDSY4hj)}_9l zH=_47(bYgXM>lk)#$T++%ORok5sab(pQWZcM%q&A7S}~TvUdsvN-dBj)B7->`&&*C zqp;Kut~h`(%ghLk*W^fN&DXy<4uG*eKveh$s}&}CSsTCQdE4#r;G)hO-Tu9;cb*+* zRWY4m${2E0V~6nM2<rVSqi#Mvy1L<(I?%;yoZ@Cw)9L*wCeVWGbpOt(I8WNuusZWH z!!*>T^`>j(jAwZ`VD{fQrTz%pa;>Gu7FE70d(Nz{ia`7LhGXH@qVL=+5ZE7dzg!sF zIE`>Tdt9)3PNn->7uxeZ)xKpypw)KxUO0HdV!EgIKfHaQsIt>HtzXC=a2+sU#_GOu zP=9*A;k4IX^}=gMes5~N|L&X3$f?LMEsWD~iSv*2^O;XQe7f{mA?CfsAy%GwUU=Fe zPUSQ8e}RIYwIVJCIvP5|eHZWCo=7-+GP3KCNZgV8V(Bo7UF*}E)|f#FDJQ4rGYk1z zm~l2c4WX=hs-((wGLLSAbKG*!S`I^TeuTnnnkpMNYY!sU*h6^hwi%bhs}F&c(~R`n zh~vnH<P5{sl14bv=NIu8P5?Lhh~VYsSQQs@bV*0i>9#p%hPfBRm<jhI(6>4rkKT}B zfBdQM*k<3>4=QGT)YK_*j%FX*ly-Q6hWFAfFi%VhvWqU^H?CLad1o3`(sj^zNzdMu zlJuv|sdIY1f$Vks?W*q!Bugj{-pIt(w>&3q+i*fY6h7p2J@+TN^pqB4Djs)Y`K6=B zoL}FXVYyPzY!D?vg59Cae&Vq6@BrEin(0H$^xuu@O{^q5;%xccVwLkg{L-d(I%7rg zGSM}x<0<D1d9nzsqxyNy7FFvFXZGl5yZgN)vJf^HqO3dP@{q2t_NOwR*GjCQX1<E+ zbyx#@sU&&x<_7Hv_Z0ec`b?)NFvl?!kLY1R_u&23nB?~{R|ss>>sB8{LIgqW(wvoC zGMc(yG-@m6=1XW2yp~_o_4C5rC)YFY4z}kJtyQnRL)|_1EN>5u7#Wg_-~w=VlbOTH z;&H7Ywv;?Zg3q~=O*LXV9B9AkX+h3JC7s5`py&S8_)eB(&z76t{!H-Sa=Yk$yX1E1 z{=Sa2zEbj4@blDi`b31g&&Y~AFx%3i;^_)4>V%xaZ?aR%^RnlY$K5yUqe_jkKC4yo zDV1l4`C}N}0zJ6NfS5ijBDScG^B|#(@JGDehu|X%nq1s_-(~UdT%%icydImOv-&Y> z(w2G$Ge^h^R%3>M?1clwk%>rH6Jn%xf^luWOiHSHsiA1!m6{du*&!gjey~kP2(?o* zXxGp6RcwJMrRnwU>Y3>a@_v#ct0EV!tE9it^Hjt1##Cx_oY{Atv!k6i*rcos-6P$6 zA;6mo1o#L>wS4kIhu9a{6#|z$25LD90#55RX{)VPJJ|fe)*LgNuRd-G*|F{9mA6f) zZ9x~*sj2yK4#6a3Jt10ToY0H5;wfCc!{&}3a4x-;!1UbzrDc@GmDAthd^xF&Fp=iy z06Q8!VevSP`j`YI5ti`~Wupsm*l<B>r@xB^wcI!Vd?-TjMC11HcFjW~X%5)hDXu$( zr!_yzq(_#xnyt6xW!%#Qfi^y2T6X__Wro`A*Ms~bv@l+8RH4|@>}TxdEd-f7bU$vl zt6E#zQu}kZ)n^b_Meo>iDEInx6%gM~yH0oE4VI!hXpbVuk<9@X^S!cYHl<dLCqP6d zvo(X*zNStlwxK|`*k1LF-JXjyqderVuRSNA$$ID@N%p_vlY4R#9TZJl$#?EcQn$6O z6|F^`sS8A<dfOyZTDeoX-@5MMLOHIpgQd>IRvL1aWYF6p6Wc%Z@C`=Jv^kd~zox)7 zlMX|DWi@yLvX^>C$i17M%=nlzH>rI5SA%IqS!ZqKeRY6=ZT+hki+PthP>fG?H|8E# zU6e!y<m76A&TbU`jqC8Z-~fNt!@Elw-4)V(9ez_?hnUtf>Bpg=h7E`A0;L)r-yF{> zU66!F^bmWdX;SgN4>di!T}7a*2&US_p}Na}BnMWSMWaeXg>OibrtBB&(+Wp|%Y}fj zT{|L@6a!y{!1aD44O}h@%Qt*iKkXC^&RBhTNl=N{>a=u93T93DD=9jBCi*y8WfOFx zq;=@N7M;v^S>rf&He@#VtnKYEtM|<ehI1h&_iR2SI65<921p8ymNMD;2syl8`qez} zfOmB(#Z1F-!3*}dxx;p=J2KR>#~3=7)V#<#B>KUgj-X-kvZK-zI#s4V7Gd^Tfi8c! zeJ8F?T3TZn6Ion*FrQVc;OR`T0)*J-0oW9^*|>K=8~I@OBOIo8F@nm}yyI!dRG(G` z{3j=3(gMoZA{|H~clyCSjRcR$t+DB3!Hoqq$!uXnL?`SZD6`!XcdtLRE)da)71*j) z^=w=6$BG5KF*Q)CB=!a4u`>8reat+sTyiPmm}<2Yur&0=r@<`G+pNl_@1@QN6u{iw z<?EI#>r=lCvOVz%=VekJZ%^mHAkGeqQ#=n0BQN&UJTFl*+2@MP!9{=q#|C_T;%;wx zi!`?doBk|UWk1}gPa-f8+q~1!uFZ?>4mi_mr6hbJvz{){@b3^mH}Ir?Tf&K9coGAR zu;$a$(!al~rLZ&RD|rkFv(G!<T`kNum+b-{-1%ck91UC>J@RGIyY;v`5@hofb~cAP zC7|8Zc5&9fHPX4rl@R5a;t}a*g|_ZFNrl!i^(4E>QrnV;y>WhcPkvl`$4e{J)zI_p zh=}M#V?uS8l0ffK?hOsPOeip7{NQHq8Z<UOOJPQL!R8jb6yufr>?crjpCeOLMw$$9 zlC&HPRF^VP$QH3CHkF`J?Ed_DEWmHF!pdx`)n&eHg)Tyw;-N=1l=G;e>+^x;%LQyN z2sw5>IVY;pd%}gKG+hf-NJyj3tsa&{nP}U#T`Vla0c~aVd&G<QU+`nSH0A>vT`${| zQxUTqJiGrFHY~11*UEumL1b*VR?T(MI;oe6tZS#tKv)f)-q+#X2<U|=mgcDM)+Qfl zpjtW+=$Xo~gg>2g?F;TT<9FQQn(Fz-$f3p8hf!%L-a_h~DQJ-!qPD$ixDKn@CMP|5 ztG41}O2MEfdq~9CP2Nu;E8FjC55(oi@;2K(c_73zwu$aXWft7d<jd#G&IU{dQ!j8+ zb0jjN*{cUF0xDc<mitm+=|0!wzcgVxpa%w-W<djr$5hx^K;~`7P?_)yE5?t50aiRS zaj?%i{+iq@iHJt6$K<_WDhdN50Qx-;GE+Tews~5ad_U>UH^z?IgiDl>P__D?Xo*>Z zcC7Sj-uT<<(o9R7B668M8<o2V_$o+mvR^>s^`K5kq^DNus>m=jSA%s+TaU96e3XZC ziuUspo~EBW-KL`2Epl&i9|tq9*DsQ$Q1xB8$Fax0QdhL7ZFfQyEp|r!Kq$4{Ty^b2 z!N&nuBEh7txWw|a`%LY=t&)vAac@#eHDJPnNA$uegFpeI;+}#ZO#Qbf-hD#(YOSCR zg1_<n%kR=3J%46Ck*#sSjp+%%hV`DA8XQ=H>Ts=*!kMb4t!a!t-(1>SnAKS{>#BRk zMg;y91=BG2J|9q2aKi>%T^dHZupcHH(#a2m8e*s0-mz=YRoGcC>`2M~s4I)v32T&* z&&4vh-d>3q8%qYk&oG&$m}KxlsI&lTTZ@t{imho^E#%j1Wk)=Yqd6x1ZSaKp59xn= zWjT)o-sKT?<bfpKtJ1xcx~xyANAG0pHJW{$qhKm!!}FtU{IXVCW8rqY5>5{wEq)G5 zAQr|W@)Z9}B#jL4*@C59);=fZN4|1}Nl5%D7&{s5`5p^$8MI9j2$L6|Y0`jH20HN* zrFk6;GS!AcNEV4_X_gK9VUdc0v`-!e%86@9S9l5*A4h=ye0pu*4VdX5H$s`hhqEZY zY*^9!{l5GJZAN<cb>6RzS_FjzkM0G;T#0utKbiIX=YGU|I?M5{{|7_Vpl1EU@dBEc z;}MiYBJ6`huYl@<t`Z%e_WAjvneYYpFcoi`&4CU?^2YjWZu8OsHOG2NSvo6ui}KK5 zFK_3ZL_vj6YbKxOD1~tDJLZed&eVzyu|mPi3B62T+7e#14td`Glue&e(uVP&_Vx@D zyKVWQc8E<DCDrP!D>!^9lI6#QPYo5?uq%{L6_B=3Ho&i6$jU9~^zt_el9zVyx!$TG zP>KymA{@Ipx6c0<*8jt!;TK*Iz%>Nb_EV)DM$t(f3^Rex<k8~!e3os{nT95|;LRx8 z=jmzs%WxCL)vUTTCKeo#Gb4(hjL{$;*&#`Iq<J*C51twg&+C_!H}DJ(Jn$%LV397+ zLy1$O15y9sMKmtMz0b-1tvR@d@wis+Q_wX!D)N>-WYAOX581sn&4`%TULX8DE0Myh z^#b<ra&<MJKV)ui<pfeb*0`_IJ9M-7K-b?O{B;sHM7~E)9pLgzGPeqQb_`-Y;Y|oE zB_vQ{p81voDz&Jc-@e{iC+T{AT{t;*BKYrQLK-4_f(=}GhI`?<{CG+*k58T+?N6#2 z{w>~rH@b(-i>x{L^1NZYym~<7LXE=1Y*-u$+Ybu`zUTjtE6TtxrHyq=CFQpo_Fij) z5{XhKdph1EGS%H2PPOi}!U=Z+GM2a<r`VVchTC7$zexK9{|34if+Pxt0jXO2n(Luq zn!>xPwTq^YW1soGWu^A@wAbOq`GZOB&t7%uh+rmqrk=w(vO2$P@X=08DHaB2J94CE zKN7Gqgx>_5g;3cPR32X^E)S0jC~}2H5ODl!8-CpP&!N-IjE|b#f%yra!liU#4p*M^ z)4uK;HvW(qw0jBeZ{E7WYZW~0)n`$Q>oxlbySb*X<)+3&tpN=V3wdpj%Hn9%XC7`= zoxN89H@<FnRJrN-?t$C9u5sZN-^UZKxF0N+oNlBtv^M}P+KtS#-<2jI;^Kd@Uofk* zN4~tVeNE+Gy@QBhcJH6|A$)hwDGYu4xEdvP#C&@Nzqq1ZL9y>3-k^azZ6n0UG^#Z9 z?7oEgjsfR#)q@AKi7e!50{!)s?~D!&3-`&COzikc^cPknwxxsF^(Ubcv=y$Kp%Nyi zPSRvi>ASoFW93CDw}A(DtSAowy{ZwM<v#qFAsaVLnP)Y{X4NJC_X{cJKFK+2HhWJI zWn4fU)n;AP1TSZ6s$~Q6?J)f!!9zJ<qGW|wk47;#CXGyl4ZIASf8e1I-T2lGT6qEY zye2-ehlyEOcL}hR=|Fz=ek2~oALf6i!z+yHCkU3mDV0doYO$5#4_n-t1nrq{eK%+3 zw$Daye13X!6MPONL7SlDsD=@_k&4vqGb{T&L*r1X<;YUNAd0!5bT_b?zz(|x{D=3X zs4dbP!{TWVJp4d#*tf-j`+z?%s-7u?$v}(ly&vg&6<<bGC!hJOs0Hzs>R+A4J^hCj zex)uevN5r5$+Z0%L)he;Lg)V3#R{q&vEzw~>=e*r_kDnA<pBh%cq1E9T%)s)Eq&kt zoUM;ZifO@ldU0|B6}z*d?43E~H(y$4yh1ZkEzlGX7LvJ=?qYPB*Be%)r+%-)!+Dm) z;cczct)r2obHPX-O|4N8I%E6u%SJtu9KJ|uYnQ!>#Yx779jp60L$N~}MbrB-5#v&o zM?fo#J4Ct2>Q6xS(Vb`Ie|TT395+&&b(6sIua_C>#62as)gQ}~&9-Q}Z?MoUSYJo} zhFwvgsk7&CA4d8TF)fH|hWqx-27uSTKo7uDj_qWMw^CUm4-n!*$|p1f%(R(r^WPwK z3eo+e_|&^3P8@P9N_k0s9RHSh1xIetRol38gP1B}jV0h+YfyYpf0BahSc{(?{B+*V zV34E7rIFY7^sV!UzQ6`j-*wOaqsP~(c)#X7>G64(=7f9tf_K35XDQC>pcHWiEr}Cq zDARQM(p@E2LTqH%$+&30B89^9us7586f4m40KT><zJ+%Zc+x)`_E36X$E^h<0apfG zYj18=tm5B|Ee%5tg++w$!M>lxWPevN<34h9or&V`O%jDY#(Mdw6lhI<+L(p1-+o;v zuG2Z8Q4Gw$U@h~OGc-8DRf~}%X-nX0WkqJxV^Vx1JF7MSZO8_d$CcsVZrQc=FxjeW zg_-)DPO@-zn81sN;e@lTrHflUIs&~{SL`d-y(fC4kA{uCyK~1Jmr}NRXWOTjera`R z+|!+?y+`Gtm!Kekpg&W|wQ83LNp?f<rkqkpJtnFT*RuS3*vJuTc^NHTOx`bYm?FIR zVEpxyOmOYbuqo)A(aqA6{)r%|15=f1Wow4BF7Pe7WJ&X7-O;$@7ETL0&f|VQ=loGS z^sAkjQnuaW;pe`0>wLNk`c18!DMxex1F?DL6)!@3UdqhsEC!_14$D}}>Up>6B=;q= zyapTUwjpx03NLsz$ZIJVK5J$KS1HL;T2G-yZ{cfOc5c%)15*pP7x2~lrz`qN6SwAn zjT?th4ADJJq~Y1X(#i}bRlMvwaa%};>O}-8QQwcXdE~Jpep1l9>m^??QCuf`_^y^7 z&)yK20n`G^xWGPrcrkkH@~RVdRM{-6e-AaDTHwVu_d`j}h!L}7cD9cws9aQFHmzK# ztU{AGjyNgB4G&GYy6P<}T4>$|9I>qn0*KQG+(9X;GAd&}9W0$f?W7CdD^xd$z{etX zMow#$EKY{2PY7Rk-3)q>w7)TQV{UZ@s;002YKSz}tw!QrD(#a-cmtS$fG~N5Obo~C zHsqhzifi0aMw+^m9y?sn5Hn}4xH?_>E)b4(wSPskhvwogP=N#i2l}&Eg4Ft($00$s zLiI%a9s--cH<+G)XTs<(w*57(l9InQ67i37lcd?s9)Cn|_PU=C#-ha;z``yi%P*Nh z0tv(N`#@ph${sRPhnO7SyI4Zp?h%%EciJOY5_E8K?o6eU;7_$(cxeGb4q+J92GK9p zwh-UoJup~k{EbtThu&DIx3wVb<lu)5z@BP#m;$UE-0U>`fg#8t1qNgvMR9BIw9`Y0 zk|m1_a7fIlG^{s6YLm-erf@asAWo(<;ugN>Y)EQuZms~-CY~#l#cw#ruOZ5&{7$%| zX)o1xza54k5RtA8qH2G82Rhv+rft8zEI&go_o`(YbkPV^GvsHb*v-8j@j8@UZ$!D# zh*%EF1p;g&?GMeodK+(=z1@z~wgA3{pfOrH(*$d}9`5XYa;DtF_RnH+WbcemaCWlN zjbRd{%MJIJ$bEKSt~^ir$Ht=R2vR2!>;^ko9_EW%99iThsF7Jz3nt0f_kkA*T1b3O zCVOvaHaGfjw;KpM{GxQqj70-`nq&Gqy~cAr6xWX{kW0~yO7?baSk2QRa>)?P3|eyI zC`te}x>crbPr*wU_|O)_@@e$b*Q%lslNjj4@SA!KHb#1D*7bEWM{<zHwi*u`erjRO zoqsDLz#3lugxaGZr_<vK_&g}@qn$64{;>DBUU2_;y~*pD#@BT-O;g-j6vLT=lBcv9 z+`Op~dr$C)2@mo`Jh;I*iD<KEKkzlZ(XuM3NqS}I_s_w#v;-+1GXS!m)W$kA%NkI| zg#H-Bst=c!jW4L3t>|^%R{p-sK2EuaF%_|B^;KO^XVRO6@hiHd;j6Q$w|>{|;PmEP zd<prCW>zs)auwU<6b_Dl{mOQFHnlL{)#2|)9SY}h3dYaAb4FT>4P9ICi$C+W`_OU6 zJ%`>9#TgboOJGh~IlM|AW;;Ha7d9Yme{p1S5*B%EWD}m%{D{feig)aO3-flbF>LCB zw4^F8FwRcZ_%ge;rbMsW4Z$<*AY5XCT1YMkDZ0>O(OP!DrMhr~U4835gkmS_{5(<0 zKV`IARBxHeXd;(&y1XZASo0OpDyyS~8uc4~OJozYBs`NPkerh5p#iccCTC2DP+{vu z=ZZI<tz6H-EA39}K9s+ALIDo(Ae7&BhsUQv-a{fONXGx#mx@6s<Zlzw&7YM#xq%{w zv^EjY2qDy!7Sz0=XNryYTa?!+Asrh+{8XWsyd7g9@JXB5s-@S|<<=xb6LZKmWwPez zJg5Ct7zP&?8TeIh7#)ec0M@P%{l3=eGRhvRUbn0NJp*XLRJUCZy01TnPE}1NPfkZc z{Z>#@Q^QREI8_WPE}KXTZk>9ScpmQ}Wpr640!b{tk**MwP6<J|q6~;@X!%}>Jj=!p zC=JRB)leMt*|<m&V4qnrf?_EYes<nLx2#o}M0VLr*FGlR!{d~F%BPHDNTZ2+*(?%1 zo&E~%B_vJoJ(OWI=z@^f(fHj20nx3YV-cFa!B6dV?dE74X8vNye5OWI&)9$e{eeBt z?q+ru$91GShWX%f4c@%y;enr-dx|ZsRhkT&&crP}GaGz}np<FZe60BOsco?pa$xUX zoHSkbwxE`%TnyvJY%#~hrp$XUOZFmt>+#HPrzX88Ju@so^Bw5(%=?H&Q4RUaNaS*O z#tJN1vh%$cSMJU;Xjsf+vJG9mg+Zf4t~WiY<^+<|3}5aoh@aFQwWkZV?sBA!0L7VF zEESd+O6;BjurHYt-@f;Th8Uf_^>!W9D?U%UosdB$H+a;pK(G%E+7&&)KT-r17I-s9 z@3m=9i$pA+nA`A3ew^^_FfkosTkd^Z=<kdu3ANO~pYk$Mp1z$Lw6C!mV4seGyCepP zfvMHx_pPc`C6fTDwx`l=D^M1jRtJSI^h1d?<i4((<ZybjN*P~0Rg^jIN?R}-3{ikc zR0NinDYG%6<H14-*(0ttjNR?;QskyI2}#%%T0=|<aQCARr4D18KeJq*VO&X*2h@LY zk;m_)`HeNW3^c-k%s=zjRmeiuZ!&(7mHzkRym!OaIj<w>(XE~fqnfSR8H!}}jr9cR zm^Hngu%+rS`s2zPvdh@%XYmO%W^<GP)bjO#j-_l|9Gzepv%yz9>9?}Rqt7T&(`<}t zl5cPrz@i^NX9|ZUMB|oGe;b|&pE7y9s<l9(A^wp*b@=H&v@4Yr9}^I|-H3o6P4T~m zQCMY<2>WPUZdbb<1Td;ZGH$rh+_a<{6aCfQbKjSqWa4sW&()e&>|rrqjF|QrNMErA zALqPm&X8YHx}d6X#Te~%!eYuYe%bY#@mG9M2IBqwx4KaIt;Ja#`T4Bh7-;tE5|CT7 z_-q}Clvd^250V1O0A#dYg@(@(C<YrOCzv@b9>efPqC~aLOx7=he>ln(g5;tWja_;b zgMz;$1^Fv|9Hm-o(i1<$M_NE<lB`H0)~rE6DZ_*9to6!u`?BMGS0Yt;Rh~x@Rm?N> z;MWC!ST4aM_hu$<0lot+wsu>g3zM3Fh4{B7t1plYd&h0e_?mFul}0e$We`27^84P* zx#_`cpfuI{8jkem`+_is&1^1LD@BW_J~}eCo7w38-rm;TnPbRkyLoTkEEAD8WtQhL zS~ZG=k4b}h&MqS0+u`ABfXn!qQcq#Y$G0yUca~UNi-p+^rt0@Wtu*n6;&D)zYv8~G z&2jIuaA6QN3hWA&M$9g|L^nCOa`695D>-<(s256>aOht#T^0NgmerIW{c7;!-oe}E zr=H7^alkQy;u3u(egK@vh>JZeu-;Q)$~B8Bg5OxxH-=MH?`1`%ShijNTs<IO=rHU% zkWx1tZPW1D*E8T-JJ8xQ)z3G|?V~7h`K=ClAw8*dUI$vpyDWQ@i7~c$_A`jKE;*#B zg2bW|FiKtEUaiR_9V(VZ`p#hlcQ#VfZJju}rZ-dXNjXz!<=BN7S;V6sl%VEBRKhTJ z?z@!E&oRg$o^@;EBh-}TaDf=JOYRu|HwdyvAGacT336{cdAQbrKgh0xxlOlLw5kZ? z4&T<yesj0fy*#++jr-e6ucZ}Qec>sP|M(C=fD%5k2#9QrjFOu<?N(v$8o021{!>v2 z^kDu#C=|@@<Vyc)Q_NuKmFJ!bTW1l`x1M;zqQ&Q@4n&;BzDHIU!jx9Q);M%(Of%U^ zB?J+9s&JlrS$zDdezw#2+L_`bZ=%oO^y4xX^u4tjNNio*0LNG|vsZB{c<qzCavwE) zN?)E+%gerXCBC7@b_F<|6B5+7oHO&_A|n?Y<4l(as196<ri_v-M5jk4PqR@N>Qc30 zigR9`EpF9|FQm1|brxuK&m!+P{|_$~vld!|0)HAbR!^$el6bOzjklkdZ1Q7onYH^# zJmVM$06047(FDbbJ^;C0-4~d@+rfv~nvXOvgz6U0?hlMWT`D^i6(??sLxctz?r%@o z*6cs2$h>mg-2PU)!4>UcFR^3bUiy-lf+2mmmnf1s2%_IEtWrNl<tTW+;3=Vf-g^c9 z6M^wPw!XmU-^sT;ANw8{)7L0C{D=2I+PJ`esOA7^(!1q*h+#>Kpl;1l@$^D^KO0NN z0K#F1@5!g1sD_0Jq!Ww41EHf2IOAgyz|`qqM~P9s&e_YOyPq)fLH^XuMS*QUb8#pW zd_{f}KPF42zh{iL9Y+fRwL^Xf#;(7>M;*8Ks<1xCQpu>cat-^;oC&h2ini<i5)HXr zxGS?=<E6Q}^n;T7aK+s9@N*i~aK1iKwa-SP3L+6%Th~zy<6baWC-$_iCb;5Z(<^kk zK`mnE{mi->A0{W@2)=R`T>R}R*8Z3hf;re;{_|Dyi1;j=+cT+?v~Q0+q`-|@pr(6m zSWy#uo4anBxY?$4Cu(T>DC_w<OzLDw!=qmQps8&-fhnBz+zUs6HmG4dS8Jp{d@b48 zMi+b)dWowK#}M`bCx7;Sh`;C8;}HmFNQe=txc`V)E0}3oraewME;1k1$ajXsQL`k7 zg`R}^u79c_?S8Em%ekm~WHp0UUXM(+>wqBz!n8!|en-9EWai<S>N)IPr_vlpO)M>7 z`NNMC(Zp+?oVuWyZy%x;HHbYHww<eMDI)$XGk%|4x0LO3X<VleX$^i9dIloWIicy# zEBfY7>%Z{v*$*3)IVpf@Xcne*@~}JLN_d~lkA+oRVe0Dz6|A+gRa>`F5T&Mku7KQ- zjI*|PSGGzE6+UfF)vM&GJF)*MTA!h_u3nZq$xu2$#5{Ae8Rog}eC8bAXD}`-&`j6d zvZpVZET`R~<%MJWy41$&@GjZ^$Pmq~3G`SZw+Aos7E|><-pJ$7dVdpe0@oIzVv)z` zzu66HOw!Bg^v&{)(y(;l!7{Ez`~+e~b~ku9r(S~0fe7|g!e}NtbB6*CCL^A!YQ*~B zC$Uj6twJBMN9%O#e(Vm0RTj~odK!E<Y(i9dO+m=7w}ieY$e;ITNvStSr6p<2X}%5Z zhgWx9L)VD4l*;G#%f?Yta-UY_On(Ed$;GrI6x(_f%0QJp)oB0(YA}s^8C2^o;a$1- zqb0plwk+erP9-l67B{1Ij_c9b>6c+dEZr`zAU%IzCe^OLt~FSUPPES0rfhr?Av$bR z*Tb+DmR|4t&f_<gKGCWBnjfOV9<@2V|1j+73LVxE|Ght9s$~K?EBF(0Kl_#V>&f-_ z6!X6qd~=)rV~MPqrVv|e%{F>Ie{gU_TwtGUYf+)c(KW7W*8xr`MjRSNP{$AQqY67Q zf+{BTvSgQj^#|Ko<>)i6GLpGnGe;&Wh*I<UiEA+UKGi-GC3DjeT8F2)yVHWn+~|D5 z`qRIEn=<xF`Ukb?<_R6{g2NBz?(owF=mi>jdKxBrT$-%OvUdj5AmX`^8)-yAfd(mC zNVWjW3`#Y@rymh{*Cu+2%!1P#ZPuoJ(PkwNS5p{2_#z6XC2a(eki)Qr;j1RO=UsND zOk@@{c3v|AwU4vC4MKSM{CePG;Wu1Keg~gMzp5qJzI`$Amz&+WQpY^4AEg5ARQ9Z0 z$Z=fYaaG!xg)0d3vR}uouZPn5*Cl^B9=gIW8FT|$dql5Oxw9J^v$VT|y@wIZ7rc$n zRBzMiFSd^RA*Q9cUgu?c(`2y(=TK`ct7r-Bq0})6jPVVSZdGyrVs#LJW{>yE9h*>x zMDyb$gBmO}Dg@ZnH3@~<*Xx$U-Xn9k(MNPSVx#J(8qt*n2ewrV{^w%GC*)JaAZdWp zy%(9tOy1swc_Ydq{Y8}_;2DdO$z&fHN!gI&moC-zlrpcnVgp&^&pfUH2)X!B9@2^= z@Nn*<6pIDa_hht>^%5M_K=c0nDWiAhR2KN%RwR(q%Qy+@%Xhtv1Raz0b}OF9{sx#d z6SECl_mxEO^3$pt>Vz1A<i?PJf#jAqX54|v^w`zT>!bB3euIfCGG57?-OOyILjv$? zmei1~<)T^BTp9|({LQ-?ow9=>F#X@((;8fN;r)LHXOg-;;d%oVHC~*+;||F)(Jx<q z_1Utz50*4JfyCIs=)->r-7Yq+muG|@oLw#e!Ie+v2aatSm#zUr0aRhD0o9Io-@=R> zF&1u_M~sj!5pPwzd5v5<q@bG<sIL_ovOYjq$XYNWW)GDX$B#BK&wI*Y_llhw-|z@1 zdB}gaeR|5l^^E2*(O?946)c1@?GJqVtY&GLhy63P&X@HP=-s!AIS&+C?#A5yw2e-S zn-D4Qs{6EtZ{<)>I*ng}`c4ndFQ>mMV5SvVwbIX<MMRq}I@##PkYf0Aya(R;&rY}o zzn!%G_VM*=GL&+^_OIEMu{5Up>c(#57*#OMOHIzKp>H?6<{YVOx>7DYzP@`4w|9hh z6?Bjg8PUUC!EQqFn$*CkPh{NfZ$(ITo}?YGGiZg<>XbXZ1dRm_jfauBVl)mq3o<ON ztcD-7MwKKNyt{`sc@K9Tw?T<|1_z1-?Dn+?b9~vk0crpyQRd@(lr8jv2lJpqh4Ypv zEamVEnVwJTb=%!;8|=(qsyzg-41m7lE*YTt`XSpprqFXpoTs9jfX)5|yB0QKooB21 zCtI7h;UaF@V)KPS%y+vt6v+~ni@pXW`Z}<;RbSqw+|=Men`y19@jss}cb1`U-hC(+ zlzg__xai7EkVAE5LJ%qHdJ{x@1bPHP3$KUvyj$woxCy#1Mq%50WQvY-Bel3B@|%=6 z8c#`%)00iB@RTvNP@kZ^HQBDyJG~=o+diI*v9)KHH2I-fG3`JSbzW`w%Z7L)v)Zip zlwQSYl<^L{ZmEbW?gM$IIOS;I>p%TLA$)yRSBEijqq*%1cwj^>mJs2ZDq+gMH>{PT z69Q;p;%56IAma0m%K{w5v7Zj_qjewEztO^Jnl*|ay9xZ3FzA_V7%zn+fbsjJxYiWr z>5x`t0b<CH&wVebdk^na#bp72IgKp$<P1Azn-;&^Qo1!BB$I9cEvje_lKCx0KKR#; zeYWP36UnP?diA2s{UKatr0p0U`~2B{o9h#qF^<o|lYfxI0q{1OMBLoa?ZSW=%S-mK z0>ArJo~V6nqX(47?#$G6i54$!Rw}rCsVhPeIkaPjVw`w;v-=<3FpG)SnkR|XO>)gs z^FK^K9`fbYu|%CyG`JwsIe$GyztezZSKT#;CzfWcg1-FaARn0`;dxNuY8HWPTFNmK z$Ios%wog8efI?;T^_DX@D>)15r+}oZ@*V@gpYmbIuh~o(({ix=0FblBSM?rQJQGo2 zX3T8z9}hbKkYYLA=A@&FIU<{F4_Gw2B+>qaSsbaS+?7up$Td4it$8WAYN3GEbKpyu z7~5Ewt261B|D%YdFmDH)NMgr&`l*7YLSpoX4OOpy&MbFjN|vyTt{(Hu*%%A-?&4y7 zzq6vhBXOzJZ$UfratzT5zRa7{7v^L7*4K`gSEb8isRLYlf55xnpi>X@3qagm6|2Ca z!W7vjAP!0G98cS(^xTrMa(@hQ@(piFx7uDV(mMFlLGB@d|2f%{uUtCHHW~#l1C|E3 zd+xq>E8bP7Tg<Dsm2WZgXAkeYsuqgfAxx87TpQuDDMe@XSfOL%O`wrRw(srQ&`-kD zKEr<z3_<dKrJtO3U*wY8lgwekeeS@enV9#trG`_v|9pWp{hX{JD6YdH_2*p&XnHiL z8t<92t*&AW3k99Wx!_eh9a=OR%ic-Y$hGt%>XpZS(k1Ect8q%abT6+3H7=;0<R1(D z$_pqFKc^Q{A19k&Ae{^|O@yQM%dE`8ODF!ryIM9GpX5a3!Ac{LpBKC6^s+BqPSt&I zw)ZRk0tp32erwsrpo1%1RlUZs{m+yA$!gj%fAyOLd$_NTB1tz#Fzc6ftEhNR@sV3! z8x=xyO35cM+OGe#hBz$im-Yt+`B(M#Fvf#Y2}}FcWB-W1hs9G?#d!#fdV=<Hny2lu ztc-z#g!*l$?lsTqDlm(1D$}08bAIooVweW7|9!z#^4a5Gzcvb{eNK{IDL7d~CV+5A z4PlM<&_H~V+Kuf!n-dISnBOsBYA*-4tp65W9+GFN>Nj-cVGN*4-jf80|2FuPY}Elf zy;B_9uln>`BlNLX4{%S=rbZ2J=r*pd@@wl#oXEs?HK_Ha>KHtcFz;4!HDxf?5B|s^ zNKN^;>5p?$l=}{XdGYnntanX=%lKz`r<16Um%ukA&i1;vY(A*?=c)CzmH|{i0_x7K zU{wa2>S9Qv4<fsazcz{B#*&_-R4i9GyC6H=XX@9IG-(2}c^?c({Uj(c$hx7j>{ozY zS?=bwEt`rNmsS|aaCpo{hI#;<^nNSzU8}{v9wKpUSYr_SP8m3znjc<>iDs)wlfS8w zg1l(HOM#Aqe_!?T9S8nCuq2i!(&~}b?Z_fpX7zb=KD7D3296Pqm{)w#D}T+o7G@pl zS{C$C#YFF^Ye;e(OV*IOU{@Nq_h;~^qRZqpHzaPS-IEB*Iz6?anfj_T2j>3#Cf$;P zT`@j#q*J~y<V&hWbJ$;u40nH^PNd%0Mx8|(U%_U^f;DL3NN;Fk^IB+i^50c2vcaA} z^|aFTRRH;PxNm=e&7-^IFt%!x8Q4Z)x@-y!WypMzX7~A-|8utJAIG9dR4eW|Zkpx0 zVmyvu7x(-)`<I*S5o=d8YB8=$<nRXj3!8~#6FZ87x50kueF8B<i2+MlP$ouZK?RZB zt!Nt}@gmp5;e9Hx{|~gTQQmfe(CAWS?%wIb9~8x}F5h8J?9>8$_md3dpXD(^wdvS@ zC&}Q~y~+cT{z!q-NA#x>_RYFdXzQXnccI@YHUmNg!xf9JZ-@C$_Ncu+dWgL2xPs(k zfflHT6u^lVwk9n$-<ogaE^6N4(D6XQB_$!bT8^y2K1lhp2bQUA*`Q~V;*i~;%9vJR zZ%V3fc(;$PItV>9mb0PL^($=%XTOCas@6mP9?Q3c$(|_w#=uEXgeNwTyP9y$u`KBc zprPoQl?w7-|JtX}AoTNQ0S0wygXXlX#{=<~6H`;i7W2B5K7&C%qG@iv5%U&CjRF;g zVFNxAIkZ@CQ7hOeBg^g(Uhb*eOM1is8JXoOz62llKzIEyGOaPCIV{2tW*Zi9V+suI z%|RaMK0x^6YXu_|;#%Az-9ThE%Og`gUG^y-Qb|Qk@9OyD@)FC1ZeN9UQa^m16tCI} z1%rM>Anu*$?6z^V-DQQbfH5`CQ(cC5DfByfT8y4u>P^`eSQj$WDsjEnuV!?fDy)u} zd+M5}sVVS0c+2+J>gP!M>J@0{U?A1_hAO*f_dVL5mlc|+tcRm&@QZ0Kkf6Jk+Lq_U z_FeJ6`BGYTla>~Pr?F(zL|8Wg$xG+I8tUa!SvLjUNo6bz7HxNxVx)$_u>YgzD*T#k z+bD{H2#C^+lF~{yD$*q#qr1BXj4236cb7=V7&S(Z?rs>}-Hhh__WcFh@7bRFI`_Fw zG)KM=*6|>hs4pHp63lNo<B@ND6*3hk_Z=%(p)@lg%#+P>f5IMoP^I8Juh@QWtaLsX zX4&(+an%~GP*RLO1E^7idWJUrZx=Bg4G7tdj2CJ;P%*CduAb!9uQh8-!%zi5sNym1 zE0RzZCWXv?#&|63y>CToidycJ2=zoj<NcLz@?)ad$Jr`H+kBosVXuyPie?HC=ne&8 zJHj=-Cfh>n_gpgUe<vhuS_u7aA(=t|&;;K^?7Ny>w*7!Hi8o0~CGJ$h#)+*w1QU&* zAbAhoR$A>yb=94_Oi$=x)mrie7xU>}+_n@Y4v|}h?|K@+VZ&O4P$YvK2GQ2rpzsqk z@Uj8prTrstA+FBJ5OuMwd>VTqF&Qi9E`z4EgwcIwST38l|2OWzdjE<G2)k(5NujGY z4pLInZ%x$Zyk)Q*c;f#O&~HRWM(YU=?ULON+h!jOT5eHsj!x&Ob7Zq4T?P=!Iv4RL z=hSllUXf2GhbpDmbIrU?)9TGF)dc8dFb8zF$>%?y_X4~lmof8n-z#g=N4_WiJ2qt= z2`qr4|0}%Z`be;?zMQsLQZ`=lgZ-q*&B0pC;mQ#pjrjXs)y4USMD2lb^fLAz;9Fx% zw!Y8Q7SDoC6z4k@q0n`KJ)u^eN6=2xE~1(<3KG?mMf3B#b!?JxF->7dXuDkMp2J3e zYYY&9JM@p__l~WaQH$r9RHwR>YqjSy>`Zq7x?Q$NI^x>Fh_60yR_C`$G8AsZqY#^7 znSYJ|)szQJel}aQ4-E|g+=uBOW17W19R(7wqT4Mr8Wu5*Zl-k+mc|6#*z+qg@hcn* zob}JY91Qy&mz}Xl)%+;ZjyB&4F@#1EsqM9jovuwb-!ex1j7`yY`C_iPzki*8W-f0C zmngWc@^1gbNC&5FvftC*NGxlHqbp_9!L__;JY9Dh$LQII|At1_sMGmpgH2_NCW?P= z5}i!e8D8U@{BiaqCL<`k20QwJ3Li1(O<kij@F3w8G^UYEV$Uk6*5fhV;PrqY>VtwU zL6k>fe#V@7&9k~#Ja({{!=iu6o^`WI--uI8Hnz=;`ouif3|01hMhYm&$#~f7aJnUB zZ=%*-t&_d&-zG@&W?#kJS7r&Z6?Bze+W{)u-ewDOABH;czi1S+$B872Z9F!zX?{$s zm9MafKLjYUM#>z&E&c)eY}6td;ep-+2#z;lE%h(Og7!GYOxMH}j_sjGAIS!ls>?gY z{IrQWwdDWrFrJOe4}b*dqD3w2AQWQVXNazfC3wOe$Uh-w>BV6!ggwiTpK_?Y1`#lu z_@mogko#dU?sgU~*+qc4VjI5%wv!p}l3AnU0>3V^Jd<pn6<l_$_Xy;Ly=WuoC04{W z>^V=)4)UyYEjdgyoCTmiFmC%@K+l52(g8tcoAa|Cwpwu2R)*3n_n+yx1R{*-!#mj+ zvCk}N?zFk7<0Dd^Z(9@Lw0x&MdH!Y180g4eK1{VM-^8s!cX<w?=_0U}dw(rro_P(E zzu8V9I#*UfF=rmfq9%UB<GD-uzJlii`~2D&Je2Q@X=ovzoieMq;>HdQWN{FoTuIjV zW^Xkj>%{|-5_hMAltqC_6l<C3Ne@kQ;xTi>ob-V<T$;lSPH{?1Khe&?veJN_yWB>< zCQBIb_s`buepcge^F9aPVcGV8vRa2o%%%j@26XgSsKc=UGFX_(aJuci-!vOPgZkLa zdU0i(lX~OD<U>qW%%Okf%AcnW%>HCI=<GtVy>ay`-8`0SrVKYMj2)V?6|U9~wraY{ zKo6~a!dM2q${|rrU+V}D8dYWB2MyF;SCU#N+A6Jm+M#W9m;z}cAJ7%%+u;l_o?Z37 zEe;s)3M-ON(tD*`suo~yO_GXsH>#w1;(`D=f5<tfh{#niy`XvgPzoO_#-}0057aXU zI|hA+uPsnz8a|yJocx737A8^5uP0Sb8gMBOqDhC#(D!e2Y80<W5tl7MHD}d-$Mv28 z$)|*B{5>J>qL^>#N@-QPFIla;K*kmIi#%LV?N|20?DQuC8`6|#&?^vMsf1VUepCA) zTf>=gAPl#kZ&YB0RQQ$HVGjhEZmeF$maWYxq8%`dynCvXaDqK1I9AXw`_&))_!@X9 zC^v*{hb}{EDU9&*qY+d?lOdEk+DbK;Nd8OGWYp|Eht;#TxC=4eIdtXa@sY<LzJ~3Z z&vf(zpBUq#x`+;DiuN@WPQkNiayAY}=Ah;w;L<;*FknD1nx!#E{@fxC;l}_Utfl?? zdeV8GzGM6TuzE2#V$<zjk*<^fiZ+5aqhf_mdlK2@coZVmLxs}=rUaGR&ZZ}p_?(J5 zY;APVua_pj$xF&#xw@7-a63`pR9JYJM&Q!18VB_GTIfKwJ0`=(>n|iuM^)I+k&}ld zFQQ)lo9_xXNX(Y2E=3o-y+Db0@Q_9`#yhUCoM1_c^qes+_)L|1SiyfT^?!&rrOplc zyr_}==10I85hOI}u(>Jc6ZG(BN?kR&)S~M47Y~GtDrTaz^Zr8{)u0!UD)5|m)qJ5f zr@>I97f=JZXNqPIH6>0XXM8;|`6dVCd7nzin8H>)`2Mx(Os**#sL1PG)++(%&C2E2 zt;j4&L(e+>;0OHT`G6Rt(}p&Q265QpT&nEKTxE%y?;zdydr>pHd3MT%xpms9+(h7_ zkvdow?+rWek25LTSxCP8zmBFix3Q(D>w_Ps)x}v?b=?C#K0T~WzE2r>XgS4=rKqAZ zv0g>a`&bnPo(e$%g`%>60pE3FAf<zgOeeKm!Kp;j6%#z%L$rZdZ@y!K_c%&^k#`qg zs(hav{o3MomLR)gwn8n*@!T&<boF|UAbx0rz(2D+a3}Yq#tw}nN|Mt@>Y3mG%^(H| zU`|s%<}g?wPgKRxEA?4h4<_g(h}XVi_nIvZDNC37RZHt2$JZHM3gN(5Z-IB{6=I}& z_qum~+90C^0X-NRzsD^G$gVt*-_{{fY6(MiF9#?Bl*^N>Hc(<?odKI^%z6PPrC)k| z@92>_(I=YG-OZ^3pB;z-31(_dn(E>|q0s=Gz4_SEHDTDAjpW0>0K}=XDYY0<*{0Pv ze(Kgrb#4`BJ6%{$&2l*cE`$x|LmJQBV&zXPF3Xkf<#6g?#uR{znW5Gkg{p^%pII=u zB;2(QJ$oALi%rM6B5-iHzVwaemPT<XWu;T*{+yTWx{ZA5^HSu{FR8a>_%fhj`=ljf zJTI_t6$P8Jn-kXl{_)F^v98=0kd?#NgDr!gk7-mQUt6nl9x26n(f+(=hbb-OD~;>- z%4ti^$Oe}fdFSgKF7)VQ|6Ws=e6AGRxHkRFOxL5o4ELUKeo4Pva8mx=pCf}F33K%O zm?^<L1~m`i6zK;0$i-_jzzbAC>(01)oOlxIB8W3yEYZ>(892A3dV1&JVuChWI<mTW z8*+eBOJWScEi2B#v_yFKiPuAf5EkNGK&qqn9Keo*H!nf>Sg@k~g`rP+dL2W3Lj#&# zCCoF2B*z@ijtqnh&jniL_zGmot~UeeG!q+$X7A1=08?O#tZytnoLkT51xYYW)*<My z)oKs?LLmI>7*FE+i<|-wiT676O-4b@OR?eKNuRH2VfrgZ@TU3ay|j;qO^q=F)tZ)^ zLGghHMNT=n7nZY!pjUx7<>M4Ts<?S*dMDEI0|wo7hl<q3nkR(^$v2S3Xad9Td);19 ze(~t*+cfs}tACSSUV^dk)Dn)ffjEK;3@hl|RElE4E7K{bTB8(n>E8|zVeu%a3a1oV zP;@7r#R9Yb?M-g|9Su`hK}mq5y6nWFs@P7F<r&_aSBKvPfV4+uHA&-b2Q2WUh*(~r zC<^x)YfF4g>nqQfWhGftKVicFoimY{D5?-rZ&b4N@HM!)JHI9l&%TN$z~ZtH5HRd3 zP)nl!&Z+O7>4GRNAnEd`%S(f&tAo!4#|uxGUz^idA$eV#S(KMC8aW+~A%fyl2-a@M z_|S+i)L%v?k~2@+4oRl+V|^be+#vc@TcWnH_pmB|Zy~ECDpqe$CSdZTS};~?TFaD& zA(LeFPSsFwzi=w)dsMgD6hY_-7emd&5iJF!_~dQqivWIm9G#Rj_)XeW)GHWqN=4`p zW$$5@<v+XAVN-vrXxH-|`eib@fm%+4MTAfhVDRYMT-dAFZ;qqJ5YUVCP?YRqZPd3d z|IwCu%4Cqj(B81yX%Y6b%x94^P<%C6^pRjxsFw8dxZoQ35R-l^X)*j6#tQQ*fm1M^ zC%>9~P3&DZ_SC!J;H6MySM6vE&&pMNc}YQXl6*~RG5HFwbYx$b*szliQru9ZS$!_n z<@Q>rTXnijUbN+1jiyt}is~N2&i%<ePtS>Rysq&`yg;9PpCq@_OZ<BdJ>9kx(ofwu zE@JEb_0|h5Px$82uN=4J^5Rm4vQUw4#qrIhN`^Vx?X?N0`t)SJVyFZC7Y(z^RUqU7 zORWIVjF`IdJSEkz6RUN-xm{RGGOJgJa|e{=Fy(K5aXH5)86%!I!0Rihww^QRG9bjm zw0Xz<sN2T2F*?P&gnlTZ$@WE=^;LeQCu_fvRFZ;*-MI6y@$8~cRPSL5Nx|jBpgn#^ zU#8`!wrTWJns;k2idMrTJtIbPeKoURy5cnMyyMD6$?v3XecpV2vtCo-Z@#K1$2958 zHJ=Ji-DleTahjknY<xyspuE?A108*c+Y~@l!-I`<vyQEjVz*kq!a%phz3BGBd1jD0 zP_Zjd^w|QsI$-L^UuTssTQ8d;nKL7{c5~-IyYL2n+9^B9H0=pksRqb|+C8g>R~Cq| zhhOJBJZGKG6&CvVBzdaJjAnOaYU^=0e{=LVy%RP##Gbk;=9io|SAxx5lODJXvn1;g z9}7Y5W02l$GvlevG;3Mfch;Hzj#atDTbpO)*J2i=+7{|kP%-aHCYM<y%tcMTDb+jR z_KWqJx!&aGb<LAv3*dQg#XxS@u-ydK9!8tT1G}W*W11O(Q@Y19hMi$)spg=CmUwV@ z>kD~_S<_;qAq6oaH42ReLY%{wsjTEp>ve2ZmIh?8f`b#6PQYEEY7&<0+y`f3h$o5+ z#d@7&+|SezuYQTaUe;We-gzI^SQm|480Q<QseXuCyX_ZOVV~h!3C|{MurIUaj7ZJz zOP1-8+xICu*%-wgwkU9#b%$pbYg(Aq-odnLydGqaY?=lnMbSYTn?7j51`?7)9Xrn; zrlUA0_niLO-0M8|doEjex<A6E+U97D*2+{Ft-OW0#;nu*GX11rMcCZ6CKdnnq#FSK zlT8?p<Mg*W!=!^J_jR-HlqxzOX!aidgeZ&VH|O@$11<TZ;pU4|bmFEJJL`<7eTGez zSd1VShU<~axTK}{b7j`rahov4_|Ld-Xc7OBNKuSGjXQ%fO$;yB)ceSIab=tN0})Yx z%mIZ~4@zCwxCgpF%_ITXYemd#4nSxDo(I+-0)pDdWZKPd*FT80X!VTR2o$OW4~y(+ z8ufLPt$8iN5?;5VpjOpqDIr{0*?NZg%U@#N7t_{ev&0YVcQDvP#ONf`Egby+g@&d_ zA$hj*SUgX>p5j)o(Z@b2%e+EPESH>vxJ+P^wpptTIzP_OzLmb@s6~&(ugRpis#9V6 zM1Q(9sZ2Gx!{<a&LDhh|D&gj*d9O4}ZzfjLC}8qQe*Y6|@2lg@`J%d@8GGa8(D0>z z5mHn+*Uq?OUGV^SB6+;sM}(zo@uIvdNv11bB#ukwvrDMS6ik_L+e6BaUP(j9Jourc zF8lo?ed_m=dvp$H$k%Y^*H;Qgg+?=xpuTSCcXTfiOKi-%+Y(puTwly6>#I(XvQ8*U z2?oe>wtpVN>x@Qg8%7XxmFZydpxZ+AOLLe)A2FBsz7Ie0BUikhGeaz9+{Z*B4K^Y_ zQ8bu_u}&2Xp0Hd)FRT*{o`&jFu0I@a1aF!WSG^Q_WW_%0{I`cR4P4rE^XfV7!h7Q1 zhf`+fJXSap=^K1ng6X<|Y{yr+?v0ck`UV?+Sj9dYHPx=1sP^wjENP*3cFaP{S7XrJ zQ!1%wXlo;!osv}@GVtVSwSw}f3twHHYm1Joe<dU1H(O+2zrZJe&p&-nhAk?#xcSHy z^T51Jt{CiI!r}I=!JT=Lu0VJq1x+fn70JY-+XxOC+WPNB=R<gvsj3ozUsW;a3efJO znwEyzd#d>l?A-m_$@sp+5}f1QC;qe3Qb#WyAkm;b#A(Kj`-r_&!|U-tr2oiH3%4a> za$Zp2HKcB~s@*tXv_m~_;LA9EQ{Q|hs@Rj@XS)B-FYzCSi~!%O97S7U%Q+-BUN4`< zQo5vs7;F>X!zWU+dB;836Rh1o>b%2=y<}NVDBN<F*ZiIFd#210a;<xz==_WHT@0^s z*hVvUzj`$~BV+=K4pwo@|JKC0sV&U4tu{#8tYh!Kj==50?=+0sYk&63{8p34zL5|> zVYHRwNA`F)#~@y%y$7d}gtqNOmXuxWj&MIwY)|+F`Fj*wm}WsmpG|oZ4}yPD8t!v8 z$vW?l4*sLYi%~eXIAi(k=yBZ`ucOM$`Aabw&rVd8{KoP-q26L=$I}@jb{Pnmzo)<a z|NFfq35z|l1$Cb^qU(=SOX^<kQtNcDD;&#HF}e3+AB<Igw3$rev!!FoAkyFW-dD$x z?2o^Q*rlTaqYctlckZF>+^*qFFvPNY-hvo5gtjTj0Wk|$R23x<Jit8WyT|`9CWY!H z-rA-(Fr@(!&Cet8r!TD^h(<f$*|?PZQD4e+;wZlJNX2F9#0ZAh9<XbN^tg3Q_bouO zdRkIY7&pPr8^z5U-nK;5wiCDx0&e6pH}<k5Dm?lI%i%F13E(J%)N;}1PO|jLBOo!3 zgk6M&w`$xo%NH`ZCW8E4N=+GpQ2{1AUGC|l%}GNUGbR(yH3%!*UiuxC9aOc*3d<bX zqW#n_dK+5OMa#mpHZ5>|R($#!z73;@nmXkLIx`p)9v#(UD0?(U^7Q?c!g_45Hd}Pp zRZ4N&7jO;v0`>jXX_9GOXEQF{`di_3xhCLJ9JS|o<fzU{H-zi(%Rt~;rfZOK4&u~! z_}ifBV+8+!tEbDvDCJi?+;{H04Q;r_e;faaT5%Sni&|itoqiITZ3CYgAl`Ks_>+yB zO?y(=;4MJv!<>m+tlkK%*Yg6z@Bv-|?b45C0?x9Jo{to(h*LRqv1!`_@eKpn(X+E8 zyvF2QbBemj!g?giC-5N;yT#YLhhRZc<4pUnhau0}->PutNZEIoLTFq>`~C(3D!cKT z{8lryC19-*A@TKbqEfAAVeMt}d8ojI+=amNx6ir!&W!lE6g+I<^R^(w=(&*VG}{#P zqnbe@Y6-nvZ6nj0#b4tldHBmcv|Dxjp=DUGV?m+`I?Pn7uYGe&=Vu@+$z4xUwzh(0 z2ak5hUS4gE4>6~}Z)}aYp}H3c8L!|+kbGrospi@OTD8A_WL3HL*5_`z`V=0Y@IxPH z4>pt>x}Xb@#413*)8AQg4wam<_th)+wD^6$aYTpXuQ`_c!Xqk7fK$!_1t9@R=IeAl z=%4iA6WkcrhpSClgn&yv5v%`-xz*=vrRUMTi!#X2F2LjWfcd*B!-i|V4GO_gNQ)$c z_MUWs{UBUws+9#DjlGiQFTOUBZk5fzvAfiEN#88k1%6x9Sf4E_3a=+)W72D0CZlPw z$L?xnYMJI5j+^o?OpQ#6@cp%y?j8ETDNqE$GkZDzPSnsXH)aBc8sJVRK#T05al`6b z?8B^#*ONti-WS|^MEf-(3Hx;RxY4+BuY`}ERm60n3nor<C>^77w!0-ycyy1gE-O0M zirUdRk~)FQ6r>-!0Q1@O$e1D+2=^4RY8)&<gJcPR_@<?pRkpL^Oe06q%jzdD)Q{Bg z{gJs4p%0q5PupA}09&E24V3ZdghAVomkghGME}E}ygI3Q5WFG#mqr5#sx<v%+K>>w z9l#$j-KZVo@kD#$PHcgs7Tf*%+<jExHV6GoNj+Bx?cq4!GF8S2VN>dG|Elz5_H;pC z3Ka+&i6hCd;Iv&z+0+#x0^P6mCa+8$KRL>sP@izDhTYNSb34g~5yP285eP(NsQekP zjp1?I!8d(pRxNw`e9e=gQRt^b-~CsKX^07zrvsH<9N~w+3PIA*+`@u^MTQIJW;^*J zeI3=A6>-Q-O06w@RaK@`F`keuX0u-?OI-TnXSDCe?_1eDldTBkIEQeUIZtBm^RL=S z%t)P`(N5=3cTpgZ9&94y*2I0#Jt6#2=;j@1M&1L>ILCwd+ARm?_D>2(-y#lXyf`}o zBeTq1SR7H7qCj1P9%xA|I!W;lo+3W2x+Inv7Orv>UPbuXo0DKCieq|o@lFfRzK1-Q z6J(8mea(xMHnDFf!#PRJ-4Gq87isGC(`Q)v-reZ1>Qq6Vr{X?CUYk{7*U~jJ`a#Ev zvwv-Aa_q39L<V+`CeltHW8%Q8jcbx?#S)k{ql~hLcZ|`bI+#DZ2(b;$j0t>@O5;}q zbO-iSBDMLI9Gi4)ItweOhE2Cz2&a{xbkESaWAYpA^<&-n4uz^Pz_tO3{}kFKNz`3< z)2UnEqJ_JY6l1<swdiV$jW$Ya<rkpxz$}j0|6$~vON3(jrs_L#a;!MD(ENu%Lyk0L zTNW3v{DsC1f!*E$(r;~DzS`4tEOJz|o%o+U9WQjKlG=I^{yFOU^BYI%m@$5NYGdQo zix+xdCS}l#^BF(qKnFMj5*INCw_sz2DgW78bigUR2)b=YBQY=56#QM{hiFPLGTm;$ z_LDH&7RL>z|Mn~gVlEiQcfnCWA2oNxCU}u>r@?rpRgi4mq_>&XDhHQ&9;5Ow5!f1b z3vN5P_8+FJ)pp#w4gmQb+qZ<IIKJ>o;iW*2T2?a|6`%ETCI1`|s#MIjZ-;MEckX6| zxuZV-gt@Lbr8jIWu<fLB#<We(2AiK-@_aU%ye;3f9>cJ+q;wBdzi;BYbK=j_D7h2d zs(yI04L<A+$Dx(;PZE70Py0z(qp@jRY^E-uPvhN%+s2EXiG~R7ceS(c2CiwP2D~wb zbOW>)?8lc>27yi?pSr|;2?}4fAL+@L*<BgWz%AXh6I_y)(8_Oy@)lD2A_@p+n}_Q~ zb>>?TyP)P&{HRlo7bUki&s#kB6lK@6r(a0zymN8$5D`5E;DzsVc4m5h+>lU>Xz64L z&5j-F7>ytM?98*!%O<dn2t#O6W<z-+xRZvXv86J}<Chyw@Gox{3RI4oK6}YtLR*TU zH~VJFJb9E5IuNu|zf&kHWq|AOo?6c3`Q3IM=ZWR`TBs~(g*io{NY=(h0b5uZI)v!T zk932vBKtnO>{P}UoeaI!(A<}%QeIv1$vk)$18VSC?KzWz3a+fnp2~=5;Vk&WA@%yD zPw3&avpeW4r$bw2+e%QRy4m5VBl05s3XGIE7tKLp9{Rp)Mwb*#phN{o1!zu{ede>| zH9Pr9yhjPR_j`2h<Tn@>AwDgtlF63MOcqVCiG!(&aq;4%+gU`$1N`_x$e$GI(y10Z zXQev&@e<`omU<<wju)ms&1V`p1?3auCK#Kzaobj!c|^A0I*hx^H8EDpjgoN({lz_E z{ZF_L<Dta`TccrIYTojdG)STn%%9?=(J4&BlP|NocoVK&$XRKNV8)8qlu1iNXumLH z`$dq6-<g_iRfM?4bqXiU+;&qp53S57A)Z7<C^wQYFD0fZix?lX|9P5<7syWDO8S+? zBVj<9zC3(|uhAc_)?_Z3v5g-z7vAJuyr=K3H!P+W#zn+RNRXN==CoeL@AoJ%gWA5( ziZV-jWx(*ZoS?FNM<o+FJn4Mn2(IW+DRpFpJNI4){*8WGn0Cz1mbLvf)=zA1w)&*` z5BH-dPV3AGUa0^_zSH6klqOhnf}3;cZQWn(#gCSegjk>&{jpue;*~+Bh)TcU5tKvJ zQkA|C>k_+v5_%@(EbAv~W|ux0pBf*y^XjLz7xg(GXUqNG|CxH0^S4}Xq678Kx-t1< z|3MDN)h@pCq9RwCc&6YY-RIl{*G0vh%JLSgL%;!d5mz=--JGFbVdsfNPr+n(3SSBo zts3*XynPb?591wT?i3dgJee0caQ(W=pg&$`iW0P)QP}Iw9OGimTW$tk>P?OIvnuT_ zLw2%B<H-PpmnYm~>=c)LkN9mF<M-vU6B?!&Fz6p`*<6CQ>_L%9@}p=W4g|)b?C6+} z`Esi^ThGM&Tt;?yWdTaV1l1<s+I^veyCr--x5GH&awZ*h`89a(1^KIGV*|fQ6&MuR z>}=8R!WbLI5GRCtpf^=(^&bZ9zlhAGyIbVl!+e7ix5Y(;Wkd8!4s|9r-9XVGwf21E z0<60>dEBrz98Q?L3u3D=-mj~YNkQ3EH4z&#Y*R@5Ll3{V`WWVw=yFNIDzQ(!kuj)} zo^<)%tCc70KDVr_*{(aJ`W6J%94k@o(G_`ouE4fRC#BNtXD^?<FKcZWUi_=oMAblB zyQ+9#)Sl#0og+TskEt-`;(GoCXKtdbSG<fl)nJGB=WdVl?*4k{4F)VeF&@zmxVz#j ze_zvjVYJ--7w5fKeI|8+y52m~^j7zD^~w3%CzH(2<v7mAM3#?*PL^h0eh-Xi`lc&O zcBSz4atKQQGsAu6_@PfCxb*#=sC*OR0KVCJu3z?Ip{Ze9Hs9btq*Kb$S0DI?v7aTm z<Yr2+Mw+(F^RH@2ZQ;xhWa6><ihg&z%?9ju%lx7|5HECFVm^O7V^}d$g`P*KBdDP& zyP<r^2C)P=8FxTHZ%pj`Q7Nhih1+Gl-i!(IUKoiLZy7dd(@H$%w}Si^VwwI?MEx^9 zEguv;;#Qnup4>@i1p^zl2nlyC%G3_t8FoGvZKj&&DU>_CCcQ5CZ8q72ZcdBYBw-NU zD|?Vc4=}>1i-lKGdis9~!CCp%>^Vc4aKTf9u1aDgrGIzW9NP9k3*)LP+8ZvCl0@Q# zpIdM}I51aVv7|qtX!y6I@Yt+)lrja!rbjXvC<JQvp1|~bZkqm+(XEDbs|dCDMI2~N z(F>mULpA*p6M1vq5UQ;IFifKPTDsyhld-S(LtjE*M?>ezetcCqiw;`Po?T%>jFVqP z&j@j(%Wy2~8vcjzxk!fdYnky?fQ+Zb;*ntKilO6mN(Bty19^zyk+JE;r#Sf4Uy49N z@wnZt-GFX?zZkgZD3}|Fo>WE8$E{L;g}p53e1n^jdarAa<S=4^iVdne0CXbe$*lCF zjX5@}bkh^rQ|tM_K6mLm6jF*D_veTNYFux9N4mNp86aAPsYsU^t`m7pr(b1Rt_t!5 z`YWkRZ?3<Agi4g@l`a%apU<Djgboh<<#wHYUcWz?pJ>^7eE=T3JNEdh;9Uo~hVP$T zQ!Q8?#h|$7*1kFEspvi)+u1UPE4qxaCU(>I<DT;F>8Z^lQfFO4V}{?evmLR=XlPs3 z-y4>XeV=&OWX>fJwcJoJNWAdWA_?&iPZDNz<KL-UnH^3jk6&QqS<vrcObb`?@4<Ew zBEj5`Voyy|GvWxbGRu{9pd26ffHfe3b+lstNoW17IQkDmW2TCGJ>#fGY%;H(I@s9V ziP3r@V}3vtzA<@sJ7>$fk2->{Jz4%a9x&kZj&CB17}8V{P_;`J?W;IE_E45pnWrjF zZHmP))w{C{mxe6ur|6`H%O!r7z3XNu#yC@3V(KaK<A_~cbc_n36Qseegfy_S*Cm$~ z77w^4BxM}U44(7X4(pTmpL4D^h6rHtc&htOGXF$=<NV##bzYNXB8MsdtXR_1<{;oA zb;Aos(7Bfw?i<pdO}AXSNE7ZGl(VHL;=1M98gqK<aes9CP7uiMI8U#bb}U^9qTR5_ z{kgE@suBie67{4=iin!{Dg0npFjePji<l3eylu7lp^A;fiYL1l*l;J}%iBuu&j`?` zwq+TlxksWk-%^oGEypNi(cs-V9|w1BZL1&d*UuJIS)YGX>;>t2lj(RZsAohl5GD(0 zbxO`OfS7v}+wLyCj&nEXw}C4kFef0L-o>LVam1!1)HworaOXRXt^B2e76ie;CToYE zy(Quju@<#qZ#QGLKZ66=Qf*;)7B7(mIMUI%;7>drpmCvIB^aoYTw_37(Axg<g9`nD z%v-(A2(^noAEXzM+f+>8KEX)MYADq-mt5BLQdv3We`@)5Jd^2pY>%`vqN@XBfWFxp zc|K<(d-w3yH$2~DQh9(zVhu`zbXp`qUJhF>fA!3lOQHM+`nQzdp0qiLiLO@!7WWq! zfeII%$R~w-TrcqM?`A4e_>53qPc42|%xbgWGaeo(TEyW<&Q3s5)L%L`Eqtx1l^*4# zw)dYN7wtaR$0%&&0LFsnlSTWNrOxXtKI3h}X6`HkMFGa|#9{>G<oc|?UR7jU#497A zMSIt8_l7&OAOSkY5`{;X5N``oKXt+0Xce#YU;Jc&?etY)Mql4cFFw=0D*b%W(ec&X z6zDD%>?N3)N$7hK?ze;sFsJ$ZeD~8l?H39(Il4cY(n8ya%)9zfQsfu_o)F{*yxPtp z1c_r-N50xxw6lRMEb{|7^5xt^M&CzY8JU(WE(44Xzny*&Jfya6;1|=GC@i4l+ZbG4 z6dL(@S*qb=u(z;ae@m{Jn0Z*<;&nN(Gluq;qX`7;y(cF04Jvf6mBsOhG-(ac;E=o_ zF4t~BBPnvn@brdu8d57cht~2%C90$>a|d#>>1i=6Wrm2>uco8#;5Q7Spfc3M)bfF9 zjw3uUKYT>T;p3oX^a@!2ita{e`C38s=Q7sm)=@t1BfJ}sE&L1A{)GYaApMHS!;SKa zI_v5Ht@bo33RY&_j`N3m?>z!e8_@BOn^G1Dm4Etlc$D%yEPrkgr+YO3!F7Xbm1^`n z!^Cm9(spR}W{n9h@X1#Ho2*0G2fQs26VL*@(4Nz^<YRp!u<loV(KA)k^xOWABa!d# z!8#J@St8lP3i1Km4^hwDdBm4ydIa$WUk#&m<}xM4M)^_V(8RP(hVxQ3PP-??48Yv) z@(|%5j<`CxyP1H3@`iAbkb+`qiM*7H4BH1)RX;F;=J9PV!t(aeS@;}JmH4wrW9q|{ zStNmpJ)1L`t*Ze*zZ=YmZn5e2e4DbR3en28M=pI(63pF<h!jFL|H@`3P_C_Oz`JPc z@oS(8kQ3GQ;^+UMn0#{j=*?FoyC6IayL}3^cU?as<W#nba{80t8X`0svN3h0SmBdo zUPou*PNfLbZ3e~)7QQr}*VWb6XKLBXtX{+e+6~7hfjB>e&FuSVy(1pT8(F}-4<A<l zovG=4u(vCvUo4Einf;r%Le$cK-_n-}wE+U~2r7#>hZH@3H@ox5y=|)edgD9GeBh(z ziE9~ltcJ@N!Q}$_tbIc2*9G${o{!8IOwDt}rcU3FTu=Awc5t66VwwaW<eD2zaet31 zsSUj9>YkBZ%pjQZEb2$=iMnc-`QA(b9nM-6a&~mneL*4CzxP*cwF%zKBv8ph)C1Q$ z7KFI1fNJ?(W*bFDyoPL=@fy|V_IHRrt&ja>Ee|PI=I)&{_62gzTrjzOUQyX#_ojqi z63H;foj9-2bt(_#8-dO3ZxVsU0A<=7#uRnHZ62+Sb?=V6HPD2gBHNERd$l2+0;i3F zWE@9E<;t){a$vK7Repf`?lwTsAsydd<!2PLV7%=+!SBPErsDGaK+~FO>*VeA*&))p zRbVupf~s8?3}Jl4;J~j3p3p=#{BjT4)4X!@UD(&F#o^ZrolE8D5>`H#qwRrdvC6X! zuCF{%A+D+jf8Q=;JpufacVvqeM_qwjNmyCW;xzmxu-<%w=}lhVB&a>L$wAhF%`ZAr zw9F6EJ0`DuFdBd+YzcoO<*_h-A>*|39GN?MhkPagnTL+UE%P9P0x!0hrA+ui1+<TO zQKL2H4852kn|T!}_(MN%=zdBrUy^)-<nHDDtN-f^PpuE-*K&TQll|uBRQxf;Z|it+ zBKRKuyXKf<UieU`JHWfw)4pVv%&bQ!j}=D)JN3s7LgA6?F*$(D$5{3;xtVB#j=<L0 znF(2vGRT<let({Se~Wl`x<_71WkA5o%NxuNxRV{S=7Nb#Jw{dJ7~gn08@JtEuO>&h z+MB;A^ZJ7u!}YGlrVXk@(JPjHwT-~qm~!^mg;Cusvh|t&X^<4WgeuU81bCiUd84Y7 zFU6X1oix-}D%z!qbu#>F##%c5PIF7vTsD<G&V6b-4+MQ#FDku*#ZA@jIfzYU+Z}PR zLM)357b0x7p74FX4SqfCn^|6Y6xE7@I&E8V4C$Wrqbh>B(i3dcHD^EdwshQGmU#(O z&Fl4AlX`Xi!cr{&vh;#UeIgValO80&crJ2#G*bzL=06Ca=7#w9`W5Q){<T7d8=;*` zPG~xRWaeDL1l_0-dF6@Lb$$04;N}vhQ_r4Q46AryhbuqmK1&Ymm=g3_5Xkr|k2zo( zC}zO^_#ej7uUL@)dW02tbra|P6k;`<mRecioF(L>Tf5SL@i)1ZHjD6Rp%AotNeeRj zB^v;s`lH{oOftF5+dzjOLKTp-J`>5*MUoG5EusS2PhNT5W=&>h>-=u5+Rn;og&?J^ zJ+}|d?cNT)z*-=Ir!6st=!K`I@%Z$gXuWg%cfru$83!5r7$@jx9$r;q*v?dA0Ju#M zQ4Ez%Fc}TN*E*xg#PxF)L?zJiESk;9y)HqkRA$xP0uGjzml3njq-eIx5w3sAw@B&z z<m3zRuQZMj17-2`hy0Cx@q24NBiUkQx*Yr|zv(Z`s%fgLY~uPK^QzCeRI?c4pU1ZS z%)}h!XL}KdGI!`=#w=IodY$P}bl-F#&nZdAZJe{{-Y(5a0|D``oXnox;-wF7*>wGt zYdbc9)M6c}ElImSi{o<qfn~C`5&K+qCUiPrB8DTbNggPKLx@a#P4<{8n~;&JEt(Q! zx@hn|)_Re4Iz_BvF{uJ(jFw*&kZuhe-5__$9_3766AlnXF{)+7$h;9W@%BtZwQg-S zMARoP&z+YC&nlLJai}qBy>E9bDS5^0*TJtJEe{$7u*Tpd>)&ZbQbBY@H1<9{`0nCO z0gd>g{q>z%=qZGM>)#FuM6Yc%t7RFEIT@S66ZX>6%t-}#C9>67LX;~G!-v|YY?7_o z^dJ9yWsP*W_)5_&sTjR3i_f2L%HXEgZvdak0F?P6;j1PMeh_i>`y}K8!CaKK+z=0P zKixEY#=t)ceFE$mh(~oSFYhO}%EnhIkS>ewY+_gOPutJXav&x!;qwoF=H$1P1yA0_ z6aXjo>z1jN6}3)BG9Jr-9Gyp)Lrj81vsei6fPM*i)ka0=VAY+cLU{jZ5s3eMY`i7x zG74+oW=sC~wLcUu^}O$@f>-5CrF?<*FK0YX`uUfx+KjAl)E?l8rS<H)+<QMidmk>& z2r*OFcv*#27(kWq2GBWN1~6O@<B1)Y`HjPy?Rua)z*|J#bF6q~7&#eU9pSx?2J0Bz zGe`a!W&4AE>rJee$u{~Q<Cnap;WYx{cKH&Vr;qU9H(9QEVb<RUX5UFHLQAk}{nbE@ zAe{QilM1>Y_ago5RVHMZ$G;}(rDwnY-4`q{i<is5l5Sg?j58!*yiHtL&N*-dabAe- zF+ZXn51f(^SVyi4Z(7VIwt-BIb#q={R)IgQYhJ^h*Qw&l@uiet^|0#STS>-4EYWW4 zId$1D5V~B}Y{>5kK*e8yewybi91DqYbB2nH>d6LV3njh2JKGrv-jhY(*;7G<ycBM3 z)dT2mgxU6Lb4sHla_~c9v-#lMUpoEYhD+tHLv`CbKxYw&zWD=9j}3_J1u(~18_we< z<;;)S>7c)@XWn2Sm_fzZEk%SR$xl#Ba(FsXfo{Jh-d7k#^TI`&2KW8~v)s<EMN7v@ zsmI-|mrPBV`ra;f%lHW@V3N5E^AeV<*UNxf84J_~NsJ?~So(fYbZ1EIq2x2(yL)Po zeZyHVn!x{)L-xR(cO%)`7+glfhP2=XEPRZ0JW4;w3yt#pIO65{RI6hgJhvlKmi#IB z_=v?1FzkJ6FdU=Kyf5FA+VdqtEzfb$t6Q(C{=zDK#F#P6{e$f%VhmxdYL>+I{5iux zSB}(%*Sf`Y+3er&c|?(D{6u160YVn|V<z+w|IK1vS}qtMh8#oLkI@?%1feeUZ!9lT z8BcAox_b*K+4x521?8Rj)2oxRVRTHz&By4NLc6+=nWE14+8VtcF+}b0tvAuI|5yUR z_N_G0o;|(v$H&E=)aH3Q2ypvHm;ek7VS{gs4%FdMD|)r|p7*?DtRa1j9#B7wjjK`> zKbF>_93v7-(FtGnmAj^?$EDjKfo<%}7`u;>pw?QQ77c~?D+x+4Re-59vG0ZYhw5TW z(|8>0?0RSvcokwqk<*2!Awi$^CtHC4fmR)$(VSrN{A%_UN_@3m;E=QRb}#+b`sua! zI;UjEO7&=%^A%v8mi$<Hxbqb}3A31F*M!R8+-bpoL`fm?@8sOW#DoOKvRx}(4UC7Q z`#mo8*a!9HqzNBulm&>^-MIt_`YTU<;ony|z>e95fT;$<GT70=9K4&vuQox1HT8Ht z>#fim#nqEgI<f$~(KBAv$A7g2GvgF0(UZT}k9O->Tv_JKYIDhjg|(`UoY0B>zoC6a zFF6J4O1xUrX^Cv_d3Svwd#Pcx^KVv`a>-4#A(B>9&XxH5`WD_^TCs380x4s~8!&3{ z#tdBquygYjxGJjXC^N$Faygg1@O0y*66+8hx|22kpm=K76+4tN9(PR<|HVz*)zBr+ zr$pvp8t`x_Y_%s+U3hfve1^EC^&~iqqv?tFFn56~g<Dw9hmc>Fa7bF&ziJDdxU#0g z6iIzLf%&2rXmr@ORnoR#9NZ5~L921Qc8@z<C)m5y5lz;=Wj2A?y5#+3x;_dMpl{l+ zJAcS6tqa)F4fO*l5q}u}{67r(Xb`X7EVx?bS4FLcyfp`z*KiVEzz^(+mcr`|?BDO= z{S2kUGvAhfp`ON<-5>~pz(}KU>md}Jk=58B<leVPQ_;VPxlER&4=o&%Vilbz6P~h` zL~Ue#A}d#su+den=l#dUeaaP7T^{iHS3)-6XMjWh-8EG9bf?D|gIJKrs7qh<N`-C{ z|Cn8yF7k<>9%~(>Pn87;BT;$24)b6=*Fzkjha7h{PxReG?Je?Z?4llF?kKR|wle=u zGIcYMY8!i!gz~AUF{~aixEV%`QA+cPpul$;dSrYGSD4iATka<Q`xe(xGzO;8{8;e7 zP@13OO*UT2wnbi#LAma6TQD>e;hwAUZ|y`C%zwKN9C+#-seVj0e}(l8IsK+RM}G$P z7<&29F^<X*-eAhb$XJabku*0SFh%#q>Jz##IqZ7PK-9Gf!S6JR3O>!ZvM=Gs^|H#r z`Vjf?Zib75@o^fyvsL0~s-2Ls;XJm@_!#*h=~bi@s$Lg~s~y`&^mDm)CXMV+aqS+P zm9`2ufs!@eYe(oPe1G(aVU5#FvE*qXj<f!Jlf`M#_e{qE?eiwUxQO3g*7EUwyMusP zvk`7jKhd3fiI`P-(l0&f{D<+=)qAC?E{ZyE(WqmH%uO!nrTk?<42myYTt;!e`KyDu z&39HRb77h%*u>(~Bpm_YqneqY*;%dKveUVXU%1xezbCpylG+4~1=?@BbT4-1ro=e% zr<_}xcno$0a=Eh+$tl9<x)F2bmzGIe&1R!Gb95L)H`-<a9gXVypQ@LoYX<Q4YBz~i z_*c;T^fgq5lZD^oF)uu8IPOR$_uj-`v>6_<e;bYJdYkx6kovlSLtJr>Q{)z$D&j-I z&#DJTuFUQNldcbW@w{UM(ki4HxLP;Iw{-o8e%P*5a@3s*1NsCEL`Cx>V)L&__EW&M zJHH&RaLlrYQq2qpo_tLE4$>WSj_gnOm4&}z{a9;;M}^4F)Fv{gA2>71-ean!dl?>Q zJzcqvI3QMYyw$(dsUOsxD-j%<%MIWWt<2Q+9`Y9L3etmgWz<yTOPb08_>t20#y9jc zBizfvac7~+LUam{k^r=EmcU=hfkP2TVUe$aFv-l%Pn#>rR?9WM`ovM$tol}C!eAJf z8T0TdxZoiMeICZ6CfIpoK77;!*#te|9OcgM;oFk5bt!Li*xcNz+Fd3-7W?Bk2@K+$ zJH|LE1>xLG(xH-XT)iEbBMib+9;1f^ydLcg*p8|%(JXFY7ByCN!Z^SRff+F&X?jGa zT8GxXy-Vvs=}_>yKatl+2ltrCUbI;<#5RZ@6ojIJZ$OsyIq#&{E6-Cb@-bC2P%)=u zNlXp1OBBRh?c4*hzND1-kGrEz?R3S($har6hYEN1fUX7ZY|hcx9>EWc@)9S+_uzS= z?^Vsqvomjo(&A+k-_~DML_UqJygD3LhW{~)=+Q%t^z|KRuHPU}WsVPF+11GWZxdvW zZJWLmKElcu?t8nAM=qBoeu|=Z(58wIg@9pN@{omHDahVATvK<^<Zh}Fe7LqYSKEmv zsLk>2X9C$X-@Dgn!Ax+~so4Tm*dfdmmBhqkEcr`IO!TaG)w2)i^kC6s<}Vk)GJ<bY zeMDWLqqB8OecDx0rVy1=irn-V3mBH5tP5G6_E&UxvK4wJe1{os{?xZ%c?XpE&NBKw zghoYtU+}T;3451Fn%G<2=wGJX_Z!pft2w=ZDKO5jKl;mZr2H@8a^yelDd!}<=NExR z`J&U^JBMpmQ-&pP%p<{bF*3g>tm81Tcm!^RjTO2=QPN}l3GB6XBWG4T1vPiGekB28 z*;oi*?Y({2>&nH1ly-^f0lElULfPn%6U}s%G$R?d=C|T<klesBwPg*oT$4A;fl1Qs zQ{%b))ztQ}q!}H7-6#2gQ~h4Hp6_n5Zal9flJqZ7T&I^x0pos{a#dxw?iJW;fCZgs ze|D}ScHCPgIGdinXyB{63mxtNMjsX7nU9_%Lw~ArBpip>wSL<5Ppvo~JdEfkxr{ey zW<QP(Ar6)E_f?c(SO19r)VjVO*>^xxfkTcxMh_p2P;-56c5u$C;|%3)QVL{6+r8bG zkvZ%Zb3!DVKKI|6Y}Il1=&dEpxijUvZB<{gA4sB$!a6BtAfe5c#0$67!8wPxrcUEZ zcZuBZy%s2?I<kA=3JolW?74ldS}m8{3^dhzZX4u#hLtxF1&#SLBKg00fxn%1Fg*Ag zb-JLq?TjPobNG@c0yseYtFpVYNGR(QmU>A@Vk>E@{gqgU@m$EET?&?A(FjYQiwqei zjjhMYoY{(YgQ6bOa~mEg4}6*Sw@yj#Swtskx`hDIqTD%0ewuy&kFrDOnfo_6yac=C zvu+Azc~ycO1@(?HTLz!rH=EP700$s*6&i!xkPVYOMW6mje6=M*$4-6CKWw*Bx!lB6 zC6Qy%`6@swMnccIqcvjkiNi+(mmH6>Ilh;HDvWOUB?fkZ2tlO8J2D;vJ>x2-YuUOl zsdwmTd+i*~Yh{~nMWNd*3n0I20?9*~VnC-eu?b%f$H4Qr5b-ihjmMBHT#Rws>U@oU zW~S#13DL02qn%!S!sC+xM-BVri&rd}zYg@^#$+B#Do3=VYJVL1-&YP=<(h7lI;2qZ zS!|XHAfOB#wK;RLY9bnpBJL{k+a?0(ztKq#60jB4NNWc-_+7&@VfxmP%9|=n$9I9^ z0nF!fDKZA`S7rKSy{h=jixE`Ax?ggQc~9E{h<Ab^w6<lS?J!eo?b(!)i>HixjD2l4 zPS|wHT{q##kXMC7;wa%$mq>(C-GV?mu^dwSD;eD{Xi35bcIO<VbIB)J*bDHpqAaR+ zY&!!Te3sHCZ^N-Ub(F8CqGPd|#J@ePqUDdkgsq)kdkW{2!597Wb1JP$Ue+>^tj1YB z?)QISj62e&L|cI5Au3g>{4GuI$z$9tLaw?&Qr>4&?Wm$7x&<}43?9r+!lNxx1Thcf zRnNHK4h8}z915=}$}<7iX|B1-0*e{9j<-2%`^J^a2!ZT6=hsfLw=wjE)X+j{Y3xI8 zFrloA!;Eaq=C|IRhlBmW(XiH+iXF=9WVhyq@yABCl518sudxK|!EZMGYmsM>Q$_`R z{}(MC{M}nUy>3FUxS(n05{P@e1CgXih;0F@i`yRkRd0bj!69oYEWD@gb7(wgX5^<U zD8xD7!-Hg$8MZ#W=j3y~{FC`ncvLI<gFsYw_voLz^R8AS1t<P&xbwqc2v#H@ar+AC zC{7T^2c5(H0dGo5=N8@weI5UX_-<+;=1_J$fpA`y*j482ZMzN&Rx2WAovia#T@S*) zOLZS9GbX#C>`Z+_zvn+V?6xSsbr@-Zp<1A6&2qw0%z;m<$SNsO)F*(bTyC(pC&{gP zX8N`E@HS_0+Rz?_f0i^L<!9*}hWC@F2MBhCfO4%jByqaN7o;lmYU)L6K5_`{X*r5{ zpPt)?9c`Xzl^P%ePQP3959^2_odd4vrff#n6SSY|06A3qbd`v37(Nd`?#Kv-%N<u? zfbu*2-yjs#*-}doQ+SHNU%>W0J+5E)y~1p7>$4D{d}XH<&rY(W%%Ixo{$|kWez%&{ z8GnOqJ~FxA$ZsZEJ*1A;hfN^SP-dlQ*I#mNbS|i;aKP_73^e>9wmAysv;T~^QSy*( z!)4Uv&Q8qqW`*_jS1A1OL3Pz|Wxlg(CjM1>+*}c+L`XaV+0AR)FV1hfKV3Wz!Txom zA(BM3^>giK-mteC>gX<qRQmpny>>JgnWAP2P}J0I)f!@D53byaaGDTyEKk#Ol9$~H zinIv7AHfHAxH1k~`&nKnZk31p0G4q1tF8`@^-APfSh82?li??i`VMe4HR}r`V`ZA! zC|88G3FK5Fx(;x`mo@x@xr~j0Wa7bE(~{-{w0g=;>4g!jOkI;N47QqFjsFI`pWSE< zM5;`B+JoO4n(YkWw)aw$yhyid0%B+RS+VH7FsUs?Tk7|7M?W^!1gBK=k|;3(T!NLg zGi=cW%*}1i%bdBK-sFXK<9=(lFQ)y{qr!V}TK=;4eD(rvQ9PaBe70b>mO9_$&BtbU zmy!!|7Z=Ho`Tcmd{2RVv1`<Hr0vH>{na(62o;$iYuQ|d2c#OT&+KGETFvUldU!0g= zbxafIT`iiwz}^l358r>hNgw=P-!Ns?*idh|*vHU|U0^wQ&*~Eb<P^{~Skt)<Z@|W` zf{y9&kK*DpF->(h-cGC%_gqBJm5LOk1Q*qlCHp;R<owJ@4|QU%*{_N`o)q38o~2J& z9}R@j%_sD_AX{LCIj)3a7NwQkK?`vRi&0A3Mt^vER%c@Jdn=yJja~L*dqdUs$-S8X zP|WD|JGSxx#Q^?1{Fop|hr+CNxT4i6RoeGR`NNl*r%%J~Xz6#$OY$kl;z6U*ot@Oj ztmdykXKDej6hTWWi<g>EiZaU4!>o<`X$DvoAX0@`=})K+nyUTk0pV`1QGL_<^LyLl z+_%hojS7cL@R8i*4WY2PaBLlhi3IFTL{j?n!ylLG+I)0^^bK9wX)^Sl>84_;gRezo zouuz#(}hRqM2iXqI1Ai$v&U^Ij2hrm#-a!{V?WvDLtkqfQ`e*EKDQevtewji2psv7 zVFF63!(}<799(Dj^kfp;uanWm;WeGIK+V0I0G2jwI<(d+VnNCeD~Gq?i$&CrAf+6X z`x%d{N04lN=EjR#>F@;OJR{1}o*?h-eS18+&JRgvky<oTO5=xC9@RBJse&0l{^*KR zJ465nCyU$)WIlx_7VV+GNq~3EJk&UPfW6-&UeI!3oXyb=TKqJc%~#{1KHm}l{5Fnk z3GEYm#11YG?liV<)N0%b{TeKErxiLWM&Z;qb4MP>sO}B?`GR4VA6}WLwS;_XOzmNF z&PZe0K`aJ<a^{h}ZhcUJaP!EzZTENW;-$l(hg%z7jtRTx@}V5nzs{j+#<@f``h>e+ zd&@t0a?iBBbkX@L3($qm9MP1Y0m7(b_Xp9oLD#4vbMLS6#UuaV@zy)#h?@UVbQXS1 zzHJl-0Z~B_Bm@LhN?N)>L0Xt}44Be2Mt3M8-OY%pl+?&EdPp})3>e+gFks~Py?g(H zJ)e6|-1oW8`JSqHqiqg{1IC2y+<Q^xK6I9Bv)8>ImcTm9Q1kl~HckWM?Oax}qjmJ- zfrnwzLRlSe!w`C*cl>-7S6IYMgyp``4w4TBmuKjQLzrdrVu^Vha-fQ0ghb7G_r$Jn z78njl8_tP&ZKN>e5_I>N#-buq=|D>GiB*R30Ns^d5cT)j`4Q(0Gnu*9j^r84WNo{$ zmPd)<^;?K+um1O%7b5q1)s~%@Q|tAnQu%50J-5t}C$}iklh|8Yq4=U|=CvG8TXyV) zo%CuM@P^{JJy~=+6{rQ_O)%4K@eWB=SxJ1blay>-q&ixct#i@29%ztyqj=Oys6G2N zudbZ*x18=KU_3R~>lYM4$T*OHH53{W4>i8<QWSSppzy;`^rT2r7R?EE%71zDt15*0 zVvzp6JPOLSQ_lPZjZ(L{fGj`dFKTM4`3AKzleFp6`3d_OB!Bd9F)LHo!ND+E`#KP& ztTDOibBhw@Z#QqPO+h*n4A6=au;sBh7p?>c0ZY;hfIz;wX#y|kLVuBKARnWe>71Wj z?GoS#DrCy++9!vk-pzT^M{#%lZ<teBC`FJ|gB>tlo(1Y*`XG+TnayQtvf%`Dq?KVI zUpf$cc#}9P09uKR<|js}n{vGS@b_cNTX6woCyE}F>Q*YyTyXg%jHQnyJ|wEDQ;3u& zW!)k9ai8mQPJ)UGA(sBN!$Wz?!g2UVVb{a&Bxcv%u67I4Uhiu6l+Xf>)5ygTU+yjx zEob+dbvliI1@^`J2UXk=L8gwSh>_wP(iHPVE|I?}3Qbji0~5nSD3Nwr;Ft8uL+tUt zGs;lEsqPD_Bog4W@#(gJ!AxYVj@A`kjsKy)ps(0%U<mmZeaX>WZv!+9>=jRW+{ivO zD!rou`j04_s`s(e2RWm2QDJZkZl7G??COQ@k#DE*G?gc38vi<2_!a5#G(uhBk>BfP z^M<5ErZpFVr(;{1hSNQtDw<nBG{~H}Bf`3bAK6D2OcgalM=&ND(ci78xEsX<`oeE? z-Teq8)O+dxF&o#BkjSdN%VnO0;;(99jGV9$;>=ApeeLE8;$_(+yW5d(B~g0|aR$vJ zaOc=-nOdJx@eAh*wtTIXDq1I`9xz8Vz9}fqCgGx3=xdPcw~tyDsjP-kFMOu|$p+m& zqRWl<2$ClD5A{XG&t6T0u4rAz43cN>y<{JnDf+zpcb@~6xuZ3-g9?Q5E=F$M<Wn36 zbR&(7TBbZWiQVp(oiEZJ59ADHzNcXPKw~O>S$=v45Y9^768|kPoU-DJssSZa3FHXa zg*(^|hCHEjDQmui`sS-w0!km;5`Qnr4+WcFJeW{E<{RDi{3)4v?~;=*O~BCAi{Pez zwC%P21+DXSlTz0B-{T9m6@M;=-grihw<7fBWMf652Kb!ThoMCp4@Y4RSdPIzAzM^^ zZ6E=Q!gKbW3Ck1R5TmA}Cl2i|TRYpsEKNh~US+K<X8&ITjLOkfpVQ6;e^+dM(EV(B zDf(L0Pirr#g1vKKP>52IDd(2)<hR?be8KjI;v>^yJ4&Fu)UKvZ-QR{idw$;3^Ctc6 zKNrj&>ZiDBpy)Ym$3l&-9CmWm`b*+u3mG+TDC>yf%cOMc$8le8>CS(KjIy#_>-rT$ z8-7rO@!Qtv<lyX&z(tc-(5wod2J3w7O-I17k|DE`z!E_h1x+W(aa7r5mH_@-C<IbH z7JJEf>TA(Ds38qf*3-I+WEq=#adNlgPOsLTzGpGl<6{KqPK;_&Q9ZD5Whh^28|oA? zd`sPE%6K|s=C<YRW!U4)V}NR%2{sef83^9m!Vd>*%<oM@RmMv#Us841W6G7?S1EEz z^|}E5FT?S9NI^Ox7Ux60#MuI^e1`+uiRGOS=^d9L>1Ja%^P}Lr#Ua_}x|7)xY<~Ht zxm&{<KA<U%4WG>X9Nf~W0*f<P$0v5MK9};oBu5G5;*@ydBCljLe8yrPV*%9ELm#K7 z9p7+2?XPNniBAe*lY1QNXB`!xpv!CU^?fXkfBa$c_!*0)^veWLd!N+6o^!t87E|uX zPORU96Z6^#)U*Xa@j~?at)K52>|5mT(8Pyqb19t2i39ss9xgwrv4B&y*#eyIF>LR5 zsb5Kt%ybld`Zso7qQLgq2QlH!Z=r3uj|25e_5dsXV6+t6f}<fP$XB|HlJ%av^Iru~ zKmAoyuTWUC{qJ~C_s`MZp3MEsfS}5UJ@Xpph6(OxmA}xbxjz`;#^vopBZ8<{tgXS1 zA#DJ)c9Q^I)%kX_1#Et7?2yH;mI4w-pc#`#2poRb*3O~1nX`$NOVn|u_<%kX@G7u( zxsP8;W>RBh_V65YB2;!*%S%icDpL-46NfAPs5KQnG&&QS71EyAGnm`1u`?yIPR%vM z+m$79OSVkhGGEnnW6$+my<ebw=LlJFDVc^!#dKGkC=Zf&iZ-vQ&-?)xjez&~<9}@G zj79;6BCGzKSHWEsZ7KM6OG8GSYFa-ElTs(26*b`F!GZ#;^O(785zv^)B@wPHpZjse zhCoE^#i-GT8>$4aF`6MV`0l_+jSob?Jl9pen)fN<p_3L%+<1%XMqZi-Z`{@NjQef( z6<OZTnE{(z9qx?f5^;{u8Y^>?MPTf=hu&_Kzzz~y&&h5>XABQ>ADIHs!+9apjD2-M z>D)ZkAmUIb#c2KqlddqQyV3Jw@wLm$8m(@ABV}HiS=Mx1_)>L9B-t`bR!=?2g*Zeh za7tSZ_w?v&nBhrmP^O~rLnP^Wk1fCEX8i`<e+Dh>wMIK79}GyeI_~|!7j@vur7z?a zUa7Fu6VOv9mb4=&(0Zvt^jrwt-qe7P;unimFKEqYOmFx0m*ypt3+calRPaPRzHV>J zZ}tn!ED_Ap@coo+atAS{Cl5#zYSo5Y9yA2ME9*MRzc0?bd$k4vE^3K)!@A*ccjUbB zROV7OzTtb=6|-9$ZI58U>vA8qn)bYBd=G%+CTo}(i=R2&2t^M<W1vEb-pDV)9DQ8D z9M)sWi)eOkMCfn4j4+&eyP0Rdx<sSJh{!Qa?mhqw8L{7OFH6PAe<2krHZ99mP!r-> z=|hO#GLma2tXOBfwlFz-1>pLz#)0s-ZMW$nHeO314EE6_{Z*?F>O9@z<RUv7Fh^du zVYHlK>1-;5WwHad$Vl<nd1t{H#}8H-mlo?Ef9|T5Md-mR^}VLf9(Py`C8(GDqEJ>5 z?Og#fe4f$4(QWHkX6CA38)qGdZ{~|GGD?jugXm*!i@M}x1|3d}Qn^i7AoNOg4)?05 z(e&fBNQdNsk=?BUG;vR*)Lbdr*(2mH$v(|X%Etklh^rwjf~&l6m$Tpokmq{)()n-4 z*K0E)USeA%;MaXX`|)CpL@I<U``0`>J2l7q`~BRdhoE-^ghd9n0_M`CsXw&D1b*?W z4xb>j2eyh|)!0f)6TJK2*Dt><=E5^EQ%Kv89>Wd4AMr7+My^jQ1E0mOITzHas2Qn8 zfY(Hc<<#eit73uVj(QTe;-{pcwX!2V=lSZ7n1_Cw*N`lhS`ySp#7Js#u~_Zl3v27- z&jI6CXQo`RGra%TAxuj+D{R`jSE!xGFJ=vpK&4=j%Ep;jbQ5J(QgUO5j-7WL*XFky z=>~WlEk8+k<h*zao7G$cAfa0Zf3>FukhaKJSGuPO2(|YFpkC|<t#-w`Vhvl_Rh8d; zZLh4#8c)<mJ{bVFVv)P}09JJrt#_OFe?);*YSP(KzGD3fulyp=`vM6i9M#R40*%YT zeCRXCER~*70{sNL-*d9`Y_}=9&{;D_vE@G)%1e&&FUc@Xz!O7_S*8j;Uw6ROC3{a~ zPa>TKXnt;C=g0H=&Gg<<Qs-q7iceZqZj&D_BC*vX_3rE5|J1|}sjj(qFbUC2UDQvq zux}#6$aL9iDu?4TC+0LnL;G55R2%059~8xB^66hHZYNczTWCWdO(ALtCO2lsq}1Yt zm;vyTci|8L2%xaGIvx90;jedT?=Lw0^K9)dL_j(ru3tGO=3WdHkQg=kIFwo+I2EmE zD?60MG4hjya&9%l@~!T4Oye5g89|Yo_HbI^-wzJ-517I79md`Y(6qWO^$vd$Jm`oE zWU@`{6^dfB3DZ_IMiPZqBytpxY#&-8R;gwm9b8g2po@LIXg>19QEwZZ5+rincgc^U zH<FZtZ;1$5V`HP?weZx;7Vq=W<c)$g$@m5P=K40TWY7@NU{KA4fqRg}ab=oAY$$PK zQf3GhSDUpiKIzN=iQTv25SyD3B0s4B0%o<$o6xT877~VuL%fO4M<@0T>h6yq1Y)jA z#4l5&oE2l+#cE9ji_mIN6Ory%to@&>3GR!H<GV%~&Rbu;-mDAHB^LAjsUS?xd~QK? z!3nDp%E<k@<`Fl%6jd`zJ!qdp$|qvqIJ+31aI;SG+iIVR`l)%X!Ul)eP9Ye!9*0T- z`G8+IB0)6eq59IZ8(Z;tw}Y?e1ka(pPw0cada7A+<Ayu_r_=G>;dQTjwL#<m5!q7U z#YX(yi?v?_|7M(%8Y}u_%tF6(cELjZdn#wkb*QG7@G+#zlltu+$VAG<v%|a%)q*7E zOVv-{On=I*+tg<*2Rzt!3AN30tnc%#NzS@M!!0d_SHu|~%M;v`>PN^iHd9|Oy4XGq zu^r2<s|>hsz_}D*Hsz4Wu%n-K$YmhRs^qO0uL@%ca>+>alv}Ysc@PIbV{dS-jKry< z_s^maBBGzG$-04L+je@!_K;<B+n(J}t(Tcg{FNE($7NT0wCU%UnP<{Y2UD5Jonyyc zJ+<ck`QX-=rCsLqxeqfz{>R@chHKuNLx!HN|KsyV*)CX413<DG$)w{n*c1RO;$hWZ zL4|fH08BRNQ|<pYe9?7vi$xgIycS;plRP6>Jht)~M~93rbJ11DCp}kHIrjJ;pGUGk zOG~jL#8G|nMg!pGSR+q%sk`id4Dq5ktEn@MbqQ$D;7$d%y%Z(+vA#g4Z6bqZ?ff>U z9w#TuJj5jdp~Y+l$QK+Q`H(I~xO%LeWhvpxjYVSn@};5D1Tb8cQx#QjB7J+AU~68= zeGgdsrO6d^CljZM-WRe-8J}$*;cRl`wClAw{9-`Z@c@ibj)Jc5;K@G>hD54AEzu!y zar+_8_m^Ggw<|TDg#1;IsLzlkL&rT)@0nyzDUf%MNjN7UMH861hwR}L@n4-aH6A7f zSc}79b$8+CKAC3U8m16x!F}A~Pj1JIJD)BtFa~XFN)8exG4xg#Gsp%$g#9XQ-gQ2+ z0RI4|SYOp0W$`iPiu*EsQH4{plt6)s$UdI%N2kn_Q0Fz!<{l(HaKuAfm04R@>hCyy z@_XP9UkYw9SUMWC<c{BnGXFW>7gm$mu?g)Pg@6^|>%o?V_B=gpUN02um%6pGGTeU& zlng&0ZyXgyf1gA-EHMF{l6Fu|%CbDlGQ!qh7Ym#5nc^8x!;~qgVInb9zgiNZ6?!e= z2e(k7&%jVWP@=7?8FindCFIW~roMb!z;E9ENAzc)i7;^v61#Xa`96_ll-S?RtuNPR zvg-Q%#em{pfe5*Z6q`nVlUq93+d-MB8)v$yvUKDEU;nT!@xIO<l<gAD!nV@p<|g&4 zw3}pU4k0UTp{j<7Yg83hV0p{ckUN;bW(YG*#ARN@2!+<4Zg`5mx=-tIX*~}euD!TE z);Te1X`2GG<4+68P6k}8+q|&1Lkh1aIb&XVlOYYsA963c_>3rO;ZwzTBTtI0S#g{L zu8oJ#m@M4XcLY=Cz<^fX_W85)$bI&;oM2T7_5By>e{)Y1nAwYrTJhx}oLaw%34g@B z(_fduvi@Jbup%5nMnZ(Yb^{=u#aaTbB1xHihx$&iy2LoHoIQy|(W>m^=a))^5>!R_ zfa*SZb!HDEs^#{+jv|JyFXMb5@G;k8$wtz0*V9p_ZV&>Hh}fRkH!`O7XO2f^ORSHW zLS~KiwS2<-xS%ffe#sHqk8g)CHySvtaz;9(3{uT*yP`Gg;kmi1-A}6N8rlQMOFSkG zgp0fQ>g_UtnBXXzg+2Te;_a+~|9N9r+#@hN%>41>#lj2X=)xL&u6X&JBPC&|*LVp* zal5gmHH6mrlv7<jY>TT^dCH~nl$FZGK#h%KG2_kA8N1&0AfcW3MC^<T6S&GZ2kfjU za5&)r&px}>cR@M)N5t6m4BJyG7vg?5NO<e0q6IWt*PY@-z0fgDGQ#e+5%y(=PbYM? zsyEc7F`mOWLFqwIds=XSc0<ba)sDlj0gF++Cf6lg`tit#jc~#XY_Az8yKThI8O17R z{mZPc1PJmE<Py=6>DTzQt^fO4+7A}=(=TDXLk$sAy$1Ep+^efx(0m?)^VSX*_U)4= z>@E&P+oEvdc8itm81M;S$^QLS3Rxh~I*?{y(@ulK8tQoyc>KJPP%g{AlFOVbqVdR& zrPfmiFpKPwi4`?_L(gGHBWy9ZgFx+})>zcEExwF{>aE26Un^~4s&<XFhX}}<%K}NA zBBW0{Mi`B%7ev{Y54dFtR&L!4hkyQ#8?lVVMIL+kibUBjw0~U5+2krfhuT%qJ2V`< z1Dl4ATI;18bS11Cd6(?rS2fNwDjADTl!;8-M3-o_XmDaU5#N9kynlu`1jB8Z0I64L ztQ*v`QyZeZ(k%)KK9&)0{a|iww~f?kg*h4FbL5O|E0jOk7ixaYcv)*M`V~?70-qh^ zNS%MRV;U62Hl$R*0Ub5TH}rx_s_JTR`?e)*qa1|j=gqa{e0$#N-CdNDFOyY_58;hK zqZtd8+564ZrxK16!l45H5!th`EN0FX4RL(kxFa!(%|G)-*-<ggX!7q{k)@Dq$_}*s zW=GfiWsIkog%!?SKri{Icb4ii6E{*8&?{!*jjTcT@q_aJQgL681?nT5OLas2?6}nA z9?g%NhYaTnG6ng{^z8CR9e<<af?Z2oq+mt8eI)yMqYO2Mtfy(U=zRSd@kYLzaj?rI z%aFgf>;^)#*CdTLZX0Qv1@(kGTaBcJ@cm1AGfS1xE#WlMw>Mq3J>q6$m!>57$>0X{ z&2BDaB>zP_f+@XcJ|g%(B7XJ8=d2Mw)}+I{?50Ih3C@C5R9_;KTxnpb(|Zo0ek%PW zzfng)lp}zZxhKNW%rOfx4}`EZj>sGmL}c0{HQaUf!uu~QOzd&NPU85yAQkz7-6v-L zA=-VJkT72nV>R?bC8r0c(oaZ+o>C8?Zf4BjBiE!{)BBvl=nuKXMz;8ZAT5cXV)(Ve z48<IGj;#hVAc17l`cBYDR+gtQFkM78+lSYFx=n$=^g5PEE3E)J^`y_#4{c^YwXUw@ zjCEd&+_+@CW`g4&r+9JE$bE{{^{hV9akXd8pLeb`#7R+XHx|MiV*&5tKNk>@80+IS zk3}rn)-mOm9w|pXym_<b&ewc?n3ccie{u;A?se?%YVD@m5)@0&7iia%zLPQb@51Gw zHPwfUZMcOB9lZ2e?a%m}pE-6^KhAztwhQl=1&=Rmi}Zg+^59aIBKQguamvSw*|w6n z%A&5{)Ym#kB(6BR)KAy47nmyzxDFKjJe={RW1|N^=apYchynP4sIN0X0R?6AB`i<O z>I-L<+Lbv^i36BfrTg(#ck+V#bW#WJ=kjMgI%+{vBg{CP<Dwg@6N4CaTj@_(9?XAM zizh;DVGQO@6DA8g#v)SMmsp<?`7##&h9cy`CAExxDFdTLJJjX&MC$fWK37wtg%Oa) z-aG1ZZKLg#UER_uye`;dAD<NF{{=jUe5~y)$yU1*3!d9cS)hLE^7#o{r7?k0)2dd~ zF^#E6DBapOA`K&yPGxZE971;c=~-QML|oB}LpNu)$k*VT(9(zE^+Qop2Xe#p@jRqF z`!W6bz<ph)fK5ht6DDEf%PFqvP0a;K*@Dw94MoP6>4$u9VKd0J^o|6z8vCM_f?(}O zY8q2#ZZoG*p~F3?58$4nqnn&FsT`{NCKe`r?h5~cQ0azJ&!*;<$m=myJz%MHtJGm@ zUi*?ZUmS>ZVlOtJcy}aa?amTuc;BxwB#1=rZJ9uCJ_Js%jv&b}^ws*#mQ`10vcY-W z^<r3yQ1&6jweq8%G0-ZCdv`gW*|%9cL3<W*c?62;)Jd;tBiYH(ZOYxD#NxAJ)2XVB zjyNuKDr6*m*93bz62gA`D3dBT75KPhm@40WDP||$KEzQzwDMe<Ga~#T&Fi-9(Y+hZ zWBPRK4SBfjlTWaayUfL&i*Su&w(e~|^A65*flmJG&+o{q=>7t(h5YiwHd8t$E#?F{ zQ~fw<Si>i$L3NhJRuKn_fxkGKS&h@~z8SORQ;80yo7nN3?Bbc7aNQj$S-Q$C2(p>9 zu1~O&n#Fb>3k|O4Pl1dt=E@dcn#wkH=dANS_|<Ws;>!?P_ui-KZdwiCMZC<<T*`o$ z0)l2^)|msV1)9HnvGCMpQz-!L(Y-j36Uf*H4fOeIzQ%w1$}fN1$j{_;ItBZh9{^on za51%d`8{x>MflxNgE7r<Vu=&_|2zJ8Wq?-T?s|*l6ZP(rTp!|uyL?VvIL$BJJ`K)p z?@Ke)thzWRyPoi&92#c-BZ8fs&^j2dBO!pDE%JgJ(6KzCwQd$f%r5cvy4Ai?V7eDY zJ?|7^`J<8};W2M~A7nD-)bu|h8w*?3zyb%KcckDGFvW$DYw0!jt}qC3fw;H-_$_;b z-&v1-6`w^_7hw1553F1tkbii!jSnH`7V3r3m;v{$ZC<{D4O6m_4d4z94@1QK26q-} zd`3xJ<2rqE+03W)V0H98QHurU@9%!dU5N+g;QUdNB3%j*FI7Jaujkbl#GJE<{69)t zc>N%L&KCP0k-)8ej$$u_Ry>yRjP41;jA>Tg{uQpQ0Yxt^pm4ja7)`Gc!AP5$3JW-> zAgodjUe)7VWq<$3fK1QVz!y}<RR9LNU8yD<ip2GfKWZ#4Z#jXttH|*MgO*AzZ|xt! z=)I%tvP^ESFKqlpPgoo8R;nE<c9*{ds>nWs?Gm%LpN(&W>K?V>l*Mo@wj1l}69TD+ z#;f?8!*%spF^v_^+?GKdNBk#`mJrnVO9Oqgh2X)%!7XCz<H#Oj%qUi6an#U`EP}kv z;_Iqn^t%C<=4w0T6On!m>HV1fReZ)74Dk>*aW9QNMO9Hq{28cD;)iJV_Zqv<EXou~ zwo3i(5<%NPQy;dVsm+%Jdx;dVDyF$Gm4c#W+VlqBZxh7RH(oN?&gB;~K4=PFWaNrW z2j?;!ctK_(jU%QWF8s`ve1gD-v^fFCX2<jsL<<KB7#wv7J&w}8AJL&^=@lp-e)o+0 zZO{41_QgE5RN=XEtXHN4=I;{#wY_p)*%aT69^vF-G7`$H^Fj1|DfaZV>P;ffX?mqC z7{{LW^4(njX{GM9<U)n6Iwm0HGtWyo0>DJW*k=P`x#|8xT9)r{<HEsTeyck;IKFwb z(?HL>R&adSsUiDVtw&c&ut?!oOSj$2+O8Ig8M`(!s@YL>K|xox_uQmeX-`_X|9BNw z?R5p;*KTHyNU~GOzO{yp$N0s9a!P(}sQxteMGax)VyL3cumkPV1sYu7?bk{k!Mww$ z$F17pSN-CR?}}cp4a%#T<Em7e@j2p8tJq`s)H;$ss}O<3`C)Zk9Rn<jSr)TEer85- zy<Dg^_yo_$n_lA3w}srk%Ga0d34M&14+xUU5sTB(LfqF=sLv#T1a6cea$xr$YMf2o zRz9Ij?kf(Q!t9l@$Y2mJDnd%uCoc*>;9=w5PgETC4o}$4tDjTi=pIxWq=Ggbc_00( z(^-mKn!cLEmR!WI_Np~$8_<kz40=n`&fZwB`8G;6w6iC@>HqN(dqsVCXxRv>tI#JG zpdc4Hd>Z@pLZ2Wn?=PZ-kyddD3}0i?qw-*cj^XKS%O3qq&eQEBtensJDqCC;^cBbC z(&PC}t2_Y9Bbn(1wj+&eE&Zd&?);aNaC*r}ago2bdl@cXRZy|9&tNcN{B0L5R>3$) zH@d23cFm2ub2N4St^L0FHjU=f%H^?~yUfqAq826+yT-AYB{WjzS6MwKqY8CqJx>b3 z6=mI*2ou3aS5zvQlDuz8Q#gt56Br9Jyw3RyX^k*_LitRJk&uNC@7uR?<R;s&GK|`{ zoLJJgn>!E8mI)8De)(oY{cTg$vhZm|);nLBvozs3-T{`$z}S?xmrXs+OBx%mJ)+s4 z&kHZsfnR2vbo)pQIVo!eGx~VA6^Kpf>EP9KHtTJ0@@v2x1}e9GUY;oaWYvJ<o)G8I z-`xRAIQ!oMibfH~q(;8g>i>=p**T22jSyS%^M7gtqr#pW9Ot@&GGIsU1-+s6yIF#W za=-PkgN4@062(AF>pZ%m^yB85fQzI!9nTo33t-tdwp0s<J80+pm;4XC*MHnCDf_~z z>zO;65S-@jSO5W`Y_(=}89^GNJQ(?7OACU_EsfxF0F?X5-F!Mmq&UiW9sQgg^7_V+ zMRwi6+S~r?c)HJmVdXaWiaSim%G5AU&m7FijcJwQ5z9RThgwF6TkD7&>dGqYp5nD1 zvi*ipw9~wSCPpJ<O<liBgBPe8_{KtnLnh6}qHiaDTzvF5^Sx?JnIuy*J0>)GnjSO6 zEv{4v6`qg{#LvKwrXnF?&2b?rvl)^nk}4e9=QTTgrN1W3u>l1sCOMNPPJ9_cRiFz} z=y`ON?UWvEOBy2^o*f1|5s&KxmKQwxKyQ?kn=vrf=8Ew%)<<v6L7ZlScv5|bsm9xk zSNit0%69XOiZ~k+$dXhzQn?2g5poBf^%>vZN(Q(u9pViMOqC1gBbdRoy`eV8VSnmA zF}8e6iSM5fNzg+?gvsGqY*vO;^>EH>jjL$@S!Nd~T!#1yD<ijP$Pqj4$~Y_N4ZfgC z9O&qkM<r3+y5;<|-;SjEr?AHb?CgS0kNRuNT%f=bJhFB-ls1Uv2rFE)O*7l7)8Wbi z(IaOUUs+;AIcR(K1q_?1v{!tpLt59qGXHY3JJf2ix-IT2Ah@krlOmR&-<rRUwun2i zm}4%lV}3gA!L7D1!;~$~cx}>h&JHaCZV$prc5l_*yd$u#51Tl<znw?^Ry5l{*tG@& z245Ae2bcHvleBrcIZ8smg{M@OcgDon`pD4)#GJC-2^nKbjBy3SAEj7*9U?9v@stSM zLfGW)7;M?9=ohi7JN}zq^<Ro;eIil%q*oxesUv&vU~AhFxh(W~@kMLgqQy+#Gg)eD z+1DlnIwb00EAdf*O3Dtt%iLc{dGoO{o96P3?=j{nr`LqZn<BZwk23Z}5YnwW{DaB? z(w(Wf+9d*x;LwQeZjj`7v2(b|!AInY7CpIppXSxrazcrH`OWh`XF1|YEI;4Y0@8la zU8egV3$6h*Y=SioY~ww-fNpDO)O!V@xlvdh<g4qt`j<Auz|5U$l1bx`M;c<whXttr zt8WHr!38PjRxQ4lA>1DXyFJP^f=J}@H1YHKqNX6E$;5$i$9^E6mYX=U`txjJ-l7@G z<d`{xBeQYBFtB&ehK9$zmw5X_$V~tABJWW{(jdy=TDz!Q>*=NHQy+M%Q#+H<p7$px z4v9LuRU<S{9+{oICa5;4H$oGZo8#&g?QB}a+W!%4D~k1Pvj2hJ;4hL336V8Lf`KQ7 z`oWTaROgydivJo5-y!NkfcY)=4V_TO(TMxg^bqEjblr%jc?llQYx4H$h)Fr)ip4^G zYR+TM!8@LN!F(q-E^O28;?~|gI+94Ef~~-ydW9UJO%taNxkk~1Uj)wX`PXf)_PBb> z&iUJ%Fu1{BNeLYWSFZ8gv-?%!8o!goMq9|o@_V#>0=6Q*`z8!BBz^jd%u>)dGD7!G z7Fsb<lpIGam`vv8&NrU{xACD}`4wEbHn7%fN4yZI`vk1ii(4M}HB=%~d^Fgi-b*-B z?~6FPR`#wm_HDw~t;l>Q9Pb!9Zps!6(Gn55R6J*u@0tFnrKyP>icdTE=(Ix7gWWlA zAgr0IkaIw6=1J)EGU2HN^J>Aw-`BeM5Y^ke0=LmA=UogL8Gl~K&9}xG57_@xK>RB& z!2IlzKZ6#2jkbBlvUo<e@wJ5|_1DL_q;I6u8s$}iCCg^z9QdVOtknHh#R@fVr{<76 z!EJ1#0jD+lBs$mf@svv*yrj{@+M7AW=z3(|LMr2h>_2z&!QpZK0j|SzKoHcY$fK@* zZNFLzXZO_b&6>j5m>z=}!SftyF&J0mZCkb6I(?d;%0m3`=n1C3mTqw(o%7B9h%!~U zw`zpOMvSAa|BwoYa#&j<{Bl8GRoId$<D&#Iwmn#Q+rXQ-aD0)pAwIUc8zvz^)md$j zn!a>)Yd2A8<Wq~%+P@4bk+fZ@G%P$ha3hg2eH_Ndrn%TO4qo%2?%&0(4N&7sSI|N7 zbnUL<uQ}2i2HLP4*M|LvG_Pz@2ZjZ2O>)>ogJmal>o#uTpY}I+q-D!}{v(pS${X9u zE^1ra=UH)<1q(wl(~>$CZ;2Ao^(YsAGZ1FY1kKefN?cOm{w@o@7;3hN|61=S4#3EC z%k7h=mkbHpu}KJbY_@LU3Z_?(_!{p(KSXqElV-<1ef~mULft#J=+8yES8e_iXUMaf zV)H3;m-!-_)Tv!m^26|k=76FmF0HR8*#<#<@?{th2slHQX{c@uOcd|#w>aJ=5K=%E zzyS`QuAok(Z$<A}2}~itFZ05qrUzB8yF}O5y;mDcEJe~YZta^_M#pu|v9~B?HQnYZ zag|g<N6J{axtE47MXP<w6<8$c>8C?H2hG)5JlEEB*2L4x&9wtdC>)@SoWJ=__T&Pr z$~rL-kzkM1Mal)`^^`t8y@fKK$r9~FDs8WJ!m&{_*Z=3G?+xfjfqb_Q`mYl@;B%H( z0SDH=Kqdp_Ywzp%%MtDD*01`mH1&eS;0!42?9wboW&=s<2Mp3qvFHOP_YRq+4meL9 z+&ArVKP}jO0Kus2G>2wF3;+VBc)dSU0BVIIN0zDXm{Aa?q0e#v)4aCcNf-1PgR<_- zk^>FoVdHW>ncem+>!f0}B0|80pmY7sUe9zSL1_-><1`TTlEzK~9z|B{zU+%ta|3~6 zssvARYt%$|6_Zx*;!^auU!+-vRxHJAlpwM&Jzg}!b+c)1#0-y6$$y2>cNdGWSbIT; zhw&mGjQE$D_62UTAn#hy?z7I~DlWYlUuGQq6I!sRc>IsRA!J?rnUO=-+x<YXBSjay z3GX&_%#PV?qi)mUo0w#{#+bR@`~_5-*U?^Ejs<-oJjBL*T;hOB(s&SDHdR1f{2x(f zmAKI+H+0i^y@4@-hLr4_ek)AnefcOGD_*gxzo!p4fYNi`{TH+w_zmIR@HpJrFY|fE zPO!6%Qqpf)CRug+XEpBq=7!9nQVbb>g_OD`JZt21MsB3>?y~9?j|Z@tTGrd9lieo@ z28eNdhzsJrDUv&M?2P-b_jMKL_@RiED#u~(Bd2*!z$eP$K?f#{>M^d@efc?Mar9#X zi5S}k1z@%MIv<kbDyFg7nJ+lGI5C8T!DprbT4biL;YBzGcC6g9_>CdV#9<ROtHDaw zh9?4HDp(i2rg?xTGy$z`HLpI6Wc3+Pa2x7p?JYDF6g)HjKgE{TQSVJFuE(_fXbz*A zQnZrn`l;*ZSfn2BmUI!1Vsi2A`t;J3X)@+V{$(N3bK_FMemD}=3x8K5{~u90_|DH9 zeK+MF#92Ngx)XFRmBmoU^;Jb4(#S9;Q5oiMNZvgVsoeWe{%PKd(^8@B>;ZAXcZAzO zX^#s_nz3^*Bdfv4!wgFg?aV9MNhwaJtM^nP&TIDtWoN?7wBIfeH@bb$_;#6}0(92W z%KA2ZOvmo=<=m+xDqY%h=>}D`9bHvTIH56GS0i4oZm%|FNPdLx_|h!gFE<JZ#&UQ# zJxUc;>esSW``%-Wtypf!`H=A@d7z*8Wa5uu9xHakdZyR(S*gtlQSU?hvtN^rlJG14 z>?uuM0vY29uLTX>fae}rSj_j1x7e;(y?0KyC_}a&1U%OC{HF&EF>pWb8G~K0yE{o_ zjk_R4oqv$^?uS@*XV+=hL4)G+vEiTfrEwmyVZP~yc>n*1jGytSN~EL6AiGzM{azDf zH3@vB9K-p3JSV|wv@6~+JH%Zfdo2Bi64hs=^(hTU-TbQ=Z)V+w@>;JAs2nRgIdg#o zDAp(D`f!QE_XbJ@8}7hEysx0Hern5-J#qumoh>8;&tBJfw_RUA4<0etYM2^n-cL7t zH~)DqVJQIiE^G@B@v6#*<-naCybUXIDr{)BN$RV*UFES+Fpm(8xZ!iOvgNj`2VP$0 zj+eX|%FsL<y1I!o-Cvv7=Zs)RYj9>WhAC(80;I|Tkiystu!~J*V2y_5`@=ps??P4h zDr&NLYP~%nxDr99q5b`|yxNgIlj-Z2eJY2;8y}Zy_A0soUbtS2$I{gH)?bvEGsAt! z;b|BIpx2Nr4;|v5ujKz#%hKzTke}}O0(yJC_Xn8DKr!@<ET>3A4k;;N_e$&xs&Z)t zYC+16@}glSt-jPFn{Thf=we{49lmAp;G8Ak4eCxVSjdqO>P_^N-xKs2axQ(@g3MTz z;C+F-9JGdO+x0M8S{6b!`q=y0Zh9~}e1U-4<TL4##}p15S*>60O2YJ<Dr&l24+Kcd z9=k@>$c_dYj4|-0=;)m9ZX<8leluZs!2`RlnX{KZJdWq+2Hc6pFH?@fe2x^kz5Qg} zdmKQdMCNSb;9WI`1b_K&8W38&rxgbp?_7FbM18EeaSF`dM8xhrep_q!DU1MGX)7y; zOZ&Od3Okz(-s{x%^eCx1n-1+CY8e;wW)$?AyT2qzBK9rt`cXQ^)!p(^kQxJK_1zcp zocnQ^K4)W2tr?QTHb7v~G%+c*VL#@pyr`K3(~F68S0SN~2^zK7=7FaE3N(SiA`Ke4 zLS8Pl4f<?sLI`Qi8~pn$_UhL8UlR4CNl!BPd76WfbBk(N1qjdZk0UeqqT}k0_HUc8 z?mP4j^W?r`0p2Cy5HR@LRNGE}Ez6#6ZO4;8Xvh-`9*p-to%^F(!d!pWFa$xBoYf@D zS5{bI76%UKN$;8#{1erwom3cLk7BpS%&2dYJVU21q$Tt9J)BG_<&fFOFdUbeZQ>tI zneq5S;>6+#d>D2uXx*QUoM`?>^s9(|wd595a6@>J)lM&>-#R7tkZNxhtEwyfECV`& zZAo<(d*uGsB?}BJ-*JLhx>qdnEdZl#zTKfIwtLiZPGls$S<Js@Ga<J%+tski?`av& z=qUtY*xlF--A<PY!g-sW66)r}5CZOS&Wzs9O(Tle{`!n$Dk_1`%yMyuzszKM__G1R zSJm4F?NcNeHGZRscP3!_-Nx$)+eyI<^h;#ZJ1DbX>r8c_MDQ*Maxm+-aWz+U=CPvE z^Q&jy7lFF#ploLgwU+IU-Sn52e9hiiDQyIznguTY6E4s!dw+h1#>NGvIUorT$7mt` zBMQ0>J0N;d*#g)nPlj0fO_|9TkZy^)>w+~EL$kk`CGe#Xj50#}yPix73ri6`iNoxJ zuMDnZT=O_%oOJ>I5XrRf@K4NN=?_OZL>Lc(J{uY5g}VTlRb?id0l2W1IkDw^pLc`L zLg?a6wGH*1ZbPR=CFz{|RPg@LOqpmz-txq!+&-a4*rPYNVrD$>Ly}l(89$_!{?MQz zF;7(6-RF?El=$t8A}>s<I)PE{_kF0C`xbv{iifkAUlGUZtr6|71v8(}$QzOawu=|> z`Go20!xwA8=9aOIpe|hwtjNPZjqcyZP)It!?IWFI`JQmX__kguMZ&p!U@KhHWL1SE zIYIQmS^xIli;^y?o~0P1MA>U-aP#N*CRL!+)iebm(ZRWsWEtdo@nZQp(quDGwj~Ms zj7ZI#c=FitOhdd2f*De4&s#cc!d`Ii)ghT`&mmjL{tL|wfsge`rVE49FW>T26h3~6 z-!uA_H#D<d`LI4BFq(@>a0a_n^r5jKsye?jc$b+W9Wc~*h0gpet_m|~L?P<PiWN)* zLsnSStL{_^*>h45RL10U>RTp_?cK(H_{VnW*0q8^<^5MDtP-zS2p%j6r#VaDj503j zO<;r)sbY|1iMZb4?#q4ZwR}eS(ul>J50Uh9ywh!-_s>{n_09A+=Af=uTR*m;Yk7X1 za&5s1c+{}|2g_5}HVR)f6kg@{$pLo==J=dx&8n0ekifeSi`?7Wp99p^8rU&ol&7-1 z6{ZSof6et{-%{V9d-JzNW9W(g_J`kFF3uj~>OG5UE`%iD$77j=5C~-V&qij;p;r4s z2>!tkSwgz&xLQ$Ro%JZU&*pRe>Z`?U_n!_|bgdw#Xx}As@A&9-D}>m-(e2>C*0^=F zMVD$&&qM51C4*UBPp6hs(68KYO55}k1ik=^SzXbq$<mfkw;#hL_z)wJ!yASoN5x~_ zz<(@j@4wZLjjC^P{g}AnD;1p6@_lUDb8en@vVO)`X+QC@escJ=bc#llHG6{b<YoqE zTLaX@$iV8pn=*dS3*KzFS;j5TaCSnIH&J&<*yMfo6#AiJYfE?{rJ7Y=jSqiL5yfQm zb*jp$O{J)|CyTt-$ucDQ;{`{WA7#|H(@xwNR}4U6cfT^t-DmJ4X_rC2%S0MgH^A)g zN1G{C{BAC-QWbS8_iu3w4z23eE8Qog=?|Zy#V*cZ_vf6N1GB0gb{I#ilMEdun?j4B zXy4;8@wCKO<{Ta1_g-5FM?YWv1b5GZA*RbDz=kT(yj$SZL#tprfp=XGcZQJXs!xQ5 z;?62dEP!(pe-+1Wsj|h2B>gULZa3}6J_*7+#I~6hSzsu=IOP;)R)^7S&Vi<$nG9X- ztnCcxeT%zD$G}pce?!U_5ebg;RJV>DVz`f1n!5Hde8WijY2F2K8=ur<ZchBQ<22yU zUWsEL)M%d&k0F|CzkaVk2n~htyg%UsCqDQ~ylblS_cB!#U15>+WTWAp!X}{yZCVmn zv#3G2oPF_8lJ9ZgYQ1X`rvF?f_%l>10*`GlNGuAZ%@p(Bkp&&1E}vn;tsUm70NC5M z2QuBhuN{o_XXY<;Ea;7+QU>pD!OZa01Q)xX*wReF%1B%M@Cmy~VSmbzzom}zv84XB zOMuvwe0s${K|!lUtgr>_^_UsHKT!qkg0d6(Ry%tU4PO4LjEn#eGXy^EeHeUKbF$nZ ztrfA0S~zFp%PZP1;FJvIyu4(sIr3mJ5}?Oed}!5;7}jlCV@3S?9ws6^CJkp;Nlc|r zw%;;mPMrUbs6rq)*<z5+ma>gX{9rTmkUTQXy>(vVwt+t8Rh2xbbg8oQJE|FI^5ywP z0`Y0-E_1IWJ-S-yT%`KMmYVnLBAf#1#6LtW`9K6Ju;3I80YA4V?mTWh<7yJ{?4obR z*9X|u{j9?*YHZF^eo3KvhKASpy*MUotNbI}wNdd6chtwii&%=SAF;P!;{Q;W^Ql>{ zNiKwL`ra#9VDL=>l_Sr9^w`49*a+%E27Du46w<Zy@P;p#GRb7|My;XY?dHA#rZ9dH zaY<6q|EI<|UT|l0Sg2nY>Hpbl4G~gD7<J4T(<omv-MmD8Aq`tw-LJ47SuRVLo8AzL z(pxCel8qgpo6UZ?@EYSeN4I?PA5mxfiy>o&)48k5fIK=goLFg(7y@EU;G*FyYo^Yc z`sQcNL8cm{xc=~(bW<wXz$d20!gB*0E-4r>25M^$h3(`&=atTvFH^=%Y0iv*o*PZ7 z1J=-ismh;;+LFm@LGLnHKMawa!mDE6-3GT?Rpd4`9fk_t=C!F8-`&B{`|u%oA9&`= zPU@=T&>oB2SKZm}9mJ6#PMwvLN$)F*g$+JbyzQfuRzN6W=KAZx_>7F=?yAlS%gfk{ z6^$^zt$Z)d`|3o~7$m-nJ^NGRE0lHUHjNbt&aLf^e4!KgAi*jLz<HDU{&B}=wQ8H| z)k0ttwaI`3bzV?qd#-mOP@hPbboJxkAS^u_4@>zgZmxo96bNwgq&0o@%n}9tn~aC) zKyQ9O>=}E#<*HfA6)A{=<8V80<4r<@izP9@KSGxlsV5hhEy`%TqgGmW<=xiSssh*i z%`TiO8%thUxWTm+>U*{4XgioYb#+L{s2%S9ke^!jz=z!z7=3AleeOciS6Wz4*c$-n z-h4C3Eq?%vg`KJ~@c&2Ds$Vk|5TIM6A<&xqge}Y30(-|D)>+!*=>Y^N{z)(%LV;8u z8Hb08W(AXHj4s?YTJF5moBneiv!`&XRr2V~39E>%uB!lw?5X4dVp^ElLQXf-DB0UJ zzM>Z^BbiSfv!_VVJhdu;pq)_6lTPF?eBep%J-!2#kU%5aN%P9`+xF1tE0>kf_<g(s zcPwK6?I~DP3Az$dw6${b{6(+yoyK6j)7Hurd7VM6ChCFDs_sa+HF0<l(AKentH85( zZupo_BpSwSay(vLU!HRv?dpxU1o|E1`#76elgkD^b~e1bU5qfA3eEJ$wUur-Jwe^D zoiJDKGO#jEJW7_xr`K40^f<Kg**RB}g~tvW*P&yo^sXb#<?;RV%3zSuM60qpB_{3G zQ*|#+DYx`gJU*xzU#sQ(oTJumB_hP!yT1aT>%AWAtyOZian3xksky6$#e2Oz)8;+4 zm#hJ)@Vg3Qd8pn)nX|qF%dIz#H`Q$^#-6g@sdVD=e44zsIX_q!rGyQBtxex<i1^}s z(H-%Idd;EtL-Kq~UuJe7fpL9Hf8dmB+@3kYCzRiEN!RV-VqN>Wu42&UMA_v|v4pXf zwQyh$TO;Qk?C-w!Q_@T(f~*6Tq{;nvBB{Q`1sYUa4AvboeQ?u=PKOioe-GX>8jva< za?Mj?GQU0Jz7WR;4S0DqHrMMJz8j{S9XvTSgNDvk9&~`!<^1e~vm)*(6j#@`3}x+4 zVt`Fu&+b~xm{0A?;0~}ybNAWb!Ok6g)+hl1aQ}rj7}vj34lUakIYN(M5SwcAA?6qQ zT;|Cesee{09MQ<+xqDVET#K*X#mgZ1gTEA^YBSZ^8mlEkg2FgW3vE~}@BQNqmKQ@; z+uDWaGdQFsUl>Ca2_#ZWRo1_p!+8_eQ4$M4=_x(#pp_&#wq&}4r6X++Llxmrv-}fA z#dLr+{oWK~;BQ6r)Hl#~*OJ{4vMxJD3HIk4FihZK-XO|XuhPJ$35-ReTn{5@wv#nT zv6gM9Awl04zegtyEiQbSf>O;?cTc3<>C?^J!i?J&PWM8UUJG^%oWOGPM*XErCY}p^ zQf8;w6kmdwdjhITD-Mm`UpO@zLQe=(D1*gKh;D6xj7a%D2X)JMy9PlQ%9!1jIou0e zYZE;D0I37c3|cxoCO;AG33l&04w0_P42A6Ls~-#P;nxx)DQKO=ngi!K{&X`&_bFRu zSlII>2WJn&x(aV@Ue8`YRu&YywvW(5TD5tGi!;JAjs8GF|5wums8X^^+peqEk}ZEl z2yCl5!zsWV5LVm_APO1H=WqN|NrltPpicSbreN8fFty~MSbGbHesVq(FT7q|czVa_ zlb%!F5AKo6+z$mT&aaA>&fpo>WAE_AH;RPfOrb6zs@uP;6y3%$^&yrm5E`)Fo1I|3 z&KsUpM}Bcrj!Xk@+qgaLOGfeCE6I*3#*yXAAfe!2J0G^eFBGjE&naP=KZN#vLvW41 z8&U(*uqod(`byzZ6~??lz4{;YgK7vyg0I*!DMmTh9OkhpllL%b-9Au2P4UH?ZX=XM zkj2T4^&?c(y48BT?UCZFpgt)yzNd>{kIRxfu7-PN5^B7cSNgW}EyOYO<(t2kIi1T} z<7G41vI~UI)QM2Cev7-@i3Qr*8QI8FI>swBf^E1*r@3a-7?|wuSScGBr6x1DBz31P zFVsfcNV`_BY-K2w>)(ZKVI=NNGn&-JM8&PJBIPnjCLyc1y&?6b*Xl${><NLon)tiQ zDZp9Tnr^c4*~q4C;{!guz*7E$FJLQ&*3-+@CaMw3Nc(F6C*Kndu#CdY<_w&GeBo1_ z#(ij$6t1|nqO*#zwdhD#;6X$|H{+)ws!vx7i>P#<tbA|)=ls$?XtMRajY5l&vr=nR z%IcuJ0(yJXI|-nGRXvcgY8zd`iJ&2NT3KR&Ul@nM{F>@xgqr|W1B$D^Jh0F2H1;OT zuz%V=R%Fc$%vM$YCZ*~6h$$4v`W%{2L>t!2^9iBk8yS~6R>{N`b>^(q5|v|m{ibo~ z&PcucKfZtL*Hi?O=#0=^*d|yO_hOwycmB33pJ$2-=?v5-O&;!Up`>Z+<u#vg-Z60G z6bjp|Lv4To)L{o$t@8350p0H@CdMQ0z+H(>LB5zmB$p$i$>Za&uz#NVZckuX$nQnL zhDPUz6unwhHs1g%5#X&pCZrQ{7MHY>@mfmVupsF*zX@wZNq)Kc!1m<CEXI7|>rLXF zrfG!Am%3l-;}VKKShuG0((jW9pGJQge7d1~!fM+{=%=wKPVVz#zIV#Fg+;%UN(5X_ zHka%fR$<bXBqq{LzsObh>6(w{+46aYc8GaBU)azn`FnOfmbZfTZqa_PjIR`&@e~Dz z=o~baRjmf=slTiV>{a5n<~YbXBCyWX9RDM#o{lzXFA_+&*!=jz!!X9sKlGC#%^Y*q z#|FrfcGOhUTyl>Tx@>Rr6oiiOEI$9>`)}#&$H_WVew9FLi#RZP&9*<&pXh3Q)?x|c zu&0RFRE?ugj62)6JSQ0MNb$$;)CVe@Y1#2w>M`qKR61uKfEg0YmcKW7GH8eSyuA%9 zv3xVSHg|nu6HoR)Q(*K1xV<?<Z4^3%-~5?WGi`%4yi@;e*jm0v+qzVZR`<nZiTb$m zZJE``<@6sjz#e&}xnpAS&f$H`wOfh1wV4`@eCl*Y>vxI7gh<`9<CsV@vtE7lwD?td zig%vkpG)|;>68^zga52NJbsewBp22lQ-?45)kiZkQ1*f|sF&|1q}6!Bn5{akQw^$a z)5{Pby>?Ut!#&79xZX2@2HFowacnW3|H5U|#@1-vm+s4%ZMTF?DA*z<;rkHE>V=;b zLCYxtlV3rt5-Ap1qAgWVlM_s!SD-ieFG7_EdFy%}S-d*_tl7V8@L$fF=nq6v3PbE} z>WJQ+((<NkPW%w=v{*`AP;ej|wLBFjEi?_+zcR(Wx(ipREK}xti?1GeYTo^QnUKc6 zgQ^C^lr(BZ2{7#S_>c>n(BJS*A@`Wqp4vu}fYk@AScS(Lv?cY*z)ArkKO*CHBuZri zLhMJ7+M&M8z!?k8Vpkj6-Npdu=u{AehaM0wYUU`&^=1($L8O2<)2`anUyX?7%F%fp zZR66<@ocqf=$df^?A)|ZWK~GM9Fsj&HBkNsRkna~B==k^kENpfM~~a*E9yp4zN_Te zawD0bt8!cg(W@2QXTrUUj#et?0^MmZMc}`|>3g(~yllu$o|Afxr~gOvDd+lQ&4AVU zgRLMHTB5Xc$ClZfSU--1H3o?C=KWU3iUt@ht~p{!D0%aM@oePfjn>qmTuZEl58cyO z>okBrcI_EW_z3U7=ywum0Q+bULoWE~X$2m1d;bJJa}i{=Ey2Ze)6r=h^(^-U>RP`% zX@C^YU_EbTg`wN1@?3&6;7-(XJgXE@44ypL9L6hX41nH=+9_4dd-cv>4NrtbP=B}a zpYf26{8uppDHccb^>aBxPapQ^f@T1{!lp%IIDdblB|Z`I7oO;xQeBO6E<a;#Mip8A ze7+*TX^Xaa!R5Bx48019Q*o<l(4_6uO3Yff=UZQ~K%eMG56)NH0s;7FIW@5N!z;`P zzw--w>YMUQ!}7!#WH;6?hN8~dlQ%d!_fqS&DqqCe@GRcEejgv2ER^0mDtX(?s;p21 z?|>B6O$*V#dP5QI%QIq~$g(3t`4@!?$C7`jY-%@fojULc>1*yuW1zRg+$trI{5otY zb{5&iJv)vXUo`n205(C%zGQLcH<$&)dD?T*wY_w;fACD@Mv`svyM5^L5#r5G>I~j% z@*zUUhbQJIgHD6So*})oHqz_UtaBDaD17ce(!ECO_A%C$SfOd%r2E$!5a74;tuOdu z4NYV7<9U=94nYL3J#s52?V{|R!`V~#V;84$$h40b_=iuCwA9yJ+6#O!XDr*kwJn#A z^|KO)b%|q&P(nPccM>buZT|pbKNh96<QDeLaIETz@kCTEYd=!`jeKXNN)7FkPi7RN z>>FM-t)){ElarU-`Hm5$os?bAD~HCOHS*f)P}QVDvY5~${{VOzNc>~0MXFAXsN4)& zVmDWAPkQxhFW8@2wX~U`v$`xK6M2s@W;|yA8jnx?mHb#{wu)Uk?l~qdB{K2BsdL3j zO@4%X3URc#bX{-$N1W*XGw}=-LLuS_r7|-h269eu&T1Ve#X9|*6GsNSbXi@GGW5-Q z_lLh@zZGcrk=hRm-boCM@_Fax8TG2e_8#%ZqkVUGW2aro8~ngI+7S8?Q7ZVwE=$?@ z?EMS&RQHwJe|hIxf5aaan+1;VQ+tU)J6W3p9)_83<3AJLMA5}0ma^<=Jj9<We+u+_ zAJ~h>QGs!DV{sGb%XK7xK9w!E>_Ov;221F)%bCKK1-BkYrYky?>ZaZGFW9NQVBg5| z8T@JEs5DP5-(0zE=VQs{7SE^^dQXUYrMZF&onmdqA2F25cMrn7FH!xC{9P;%MW)Ad z0bI=Jc*`HHP@DEg@%EK?t$m{0T^ZxrlQGXDwPNbc_0!1F(}I5FUAsG;bq~ak7R$M9 z^?Qf;fkMrIDl6ZKel(65p}6rBraO%6b>yM1Q(xIj#Vc*(URuu{@W2F*g+E%WseZ_w zC~XE6wX~YzWMZyaKIrwUjaskWVeBOR^>%rdkMS?Xc2<zs-fA9Xhzot7$()1jR}<q8 zimfekZ>Wh=%-pgu##`REV*QN#cMZ~oOSd^bV>bxCz*Lcb$=*7S<k$@^>O@XfOkqi= za-7<;G)XA8B>w=*@HyM>jUF_1Gd`re$G9jNP~Tc3`0wKj-5~~}eHWb!o3@XXXSX%F zKV%<>H&K|sv+hnGYa=gQeJZ}A`y_bUC|*dCQ~|?D7SEcTT(xY<GikfG`hG@izZg7I z3W-LunOGSlQJk)Q>k`MuzBRSgXV&d?mwSt(D<~f>7q?Sgvi{0`GrO^ARw?0p1`O$! zIH5mfuNYiBb39UqRm6jD4ev)ZtdiV(k)L~dm|9Pcejr#%vfOx@R<&=L)z^^T#;fYT z6Mi6EOA1?ffzct6n+1t2o|U=d582=1437n!y`{l{Q!+>po_khpkL>61KU21nIIXUh zMI}|`h^BGV6})QKo4wNPVK~rFo!{3%&+(JuJoZvRHC2k?qu3o~<m1|@-27+wgQvol z(RiE&SvS0M0(TsA$gKqZo;-5D=|@kQ?gDIOWzJfw$@@3_Nijz~=7T7a=M93n<JXF5 z)J><V7bQ7p?{TsGYw`5zA{wefV^2OpB_ul@!kst84;#jbJ+=J%<vW<I$pL-EOR9d& zo-$~pmJ4ZP+rZtHV%0`J+1KKHv5|j!aH2K~9@xkYnuSq0dq&b_w+5P&r2A_B0HiD* z8GLtX<U@1f`-GFuX=EFji=W}kX0BiSVEBdoo|i4+8CKz>2reVJAbRwwr}lX9>fS%v zBb*KU0on4hkx<-x1@YTic|ykHWM?pLLIXPW=BwICzFS#(ZcLKaE>io>mecl*@%#wz z>H7TpBt;K!XFIoaYzl`^_{HNGrH1XiOLZdK7M59BQX3xrwSzane~8Z=wU&+H`5H@? zGC5Izzwj!(Z}4B@9M{p<wv{r#@v_{zsW>2V0i_z1({3w4#l}mMnf>?vnlvW;pnOrN zTSoR;=#?fRl1W(ZLF-Um{C4rA*5Z4=5XmG)Pb?xg3<pqZls^P~RjujIbEeqH7TkGn zm`a=jPG5nZIJ~-s+S=h0Y({95+pr8h`&Uoasx<EO^Ae*7wwso_dH(=iiElnXc)CW3 zEN%oA$cJ-BFU$>CwD{-a87vXa<c}6Wl1U{YLG`X)<Ka(?KHl1Cw`q3EjnK!1W8XDB zufmTUeVXRlJ823>mNDmy_7uLeS>4OzL#CWsb9<dFhwTIL3`;B``e#U=C|2g3qx^sP zktdy~Cbuetn5v0flaBR;55sSWntqm-kERHkVYDAFcvJ6D-TWl+ZJ2laTii%cF-YMc z0&1m-trpu~c~vQ1&D48rj+zgTzAv@7^X`04Cft@&CQm1@#axH>kMW#yB;xp#RoqyD zq@4TL8~*?bcgME&%XId48=I68kL63Md?E3*wV#nSoRdj11~P6qUuw<brzZKW_YFZo zDRWE9Tb`3|`%U=jTUksx^X_B!GDhFlsW<IW@dNFu(rYs0L{7xu0zK=5KL<Q@{{RT^ zxD#x{41vpJdeyssh8{GEG=H)*p`#^9;}k}%NVg`n{6{!V$K9LI>Yw(Z@vfnH9sK&_ zi0nRi#M$I})G&V3zBaqIb$ML@owxbV$pg5q7H@?9H@3c8f9$=*{{VO-1CgI<hg0}< z<EwjQzWW0RZJD<@TrtgB#m&RshK5cK{`B;Hw>>t?_M7pHL+uA&kzgz4i12X4b{x~9 z{inQCZQzz2M&dbVEX-a$LHgI49|Y^S@xT(&R*obx5(gC>hlh0wo0f{&DR+Fw=F4sR zP_c50y|f#{r*%2IbpE@Z(WHLX9~5nbe{1nHffX4dSz84Aj8%(o+TY?72(itsO)ejN zPNz6E<QgxByiqK0z%==IXI=9SPtZ`_9`P&NwY++4psc(Shl5;|DknE7K^;n^Xrz^P zdmXp!qvPu<yPJE<rcbn$l*uCUNa>oE@Akv->as1yu?Y@LgqXn`SBUB#4t!sEbS~Nn zb0Q8^i7SeV%i;e3i)Ym%Z?$0vXt6IjVOgn1pP8@Br#kU=l}Gn4@;$ps{j+>;ht#9g zt;<N+i9+_K-TvBMJ++GJ?n|Uu<A{<Fk-I*EyjIu1J}lGi3mX<DFxe`+4rqT4c+s^D z&!)*Wyq0HkHyLk1T2zv$tk#4&*qJp5RI-29W7jk<+f(8V?W4~%@tP>|@WDFZ<n^o8 z{{Xiij)6@*Y}P2zeBe87^y0iW*Fx3p3&l2vI%XgiCvHKdeG|m?_sFA4mL=F7i;Uyx zQuz~U$4{AVrDZFsw)>BGwf(jHZ>U@StVm-*qt9041Dbpvw;zio)#teL0fY>h3t@Kw zz{Py^YoU15-95#&m2%LKc`N`YKi#ILi{iVBX=k_7-)c4{h0|_H_o<gEYEC4qMk-SG zYPI^F`oFhN#0xmaojmsLva?TwUzB9<IIExV-kvHNah_XCVv&60s$_BNUIk;O>(SfG zEP51*=(|DQ4>+v-8pp(Q!7SHMO0hc>^4WX$t7?SXlaKZHgezksD@MM*FY-Q$w*9{K z$)*?6S~ls1;KDzX6=DAXZ~cDL&c7CGBO_&F7&*;+&t+xe<++_NygxM7>X?Co?HQ&? zZ>zx*O?tjl`8a42ERp!sx^%C8T|Gwe809Z=t^P;T)_=GE0Ek=-)|M!)NXo=Fu4?oj zw{`W!tC*k?$r(F-P^*#eUng7XI{CCWc6w~U1mBj3=klx8Q0n%U=Td7~if}Qv0F&)g zFJ#{`hvGVTtaMwCwNKT5z&@j}{l7J>yy>>WbAZU){yD4A{@dD^yLio_6p-%R2*yuQ zUm`3Tgxlnj^`K{;cEKK7Y3)mDnzs1#>zHmE_uHe9h6PLZX<L`^En;!4rm8P35%wL= z?Zaduju)_jS}<9ks3xgR`*dhxB!+7u?UG9D4u>`JhO4P+7FVsM!KK_uCg9AfnZWg? zTg$1=Lt9!+Atb9PzySR#YI36u8YXqIZthKarnEk^x&5>}DW=9Jj>Q=SfXEfPRFC^z z_-<h(+QGlhIYGaXpL+QsS#_H@4T?Y+GFsteUQJO;+qScj{?9T-2_WMD5z`gd970g% zTceVstIt;B>Dc=DKWuLe+Q{;zV%kEybH3om+MRLxX83mE_TD=;ERaj*%DiBoO8DN_ zTE4xI%L=rl<9T#HEnOP3+iFg-X!A-A0!#r5?^dx8cW+SV#7j<PZ!_$(`(t=!<$lv1 zhL0m>C}s<vd{JThV0eC5S}j9Lh6$ElSjZa-^skMsbuY3_9m45XLRVtT<pMz-hMRAy zPkAlO@1@L>vTiLY=mkHmB)MfB5R`E-sOIMv{eN2@WXbzpXd_jPEr$5sK&8t70jDSJ zYobAQDZ0B`g=S=NY~Z##b+3+XHJwW1NRIW}%2Ui``j!<Pp1mfU5=_>P%<NiXx#{XE zmMRysTNyZFpT3%B+VFnZ{spoTM9QVvw#c#&%snd2r|oy}<NYFiL|lB)v58}Szc*_5 zem!yvh|T4s7XeJ0q!KSD=xWq@)w~xBBfOAC7tG0R$J|vsRv%Y1^)0+qp~=k_kFsum zYX1NV%V_r+t=lcA7(odc;CG_e_N4GkQVWRYY>39tTn@c6Ul^{Tb#~jJjoKD%?5=oV zYdcZ#(`k0|--q6-IJPi|$zfCN=s8&{e~{%oVyDf_n@8Q&-?is}=eoCebtK&x#E8$p zJ?h4}`(=1G($!^2Bb63>%n`m|KDF?`@k9#t=_*XXubSvaG7VOr#LauDwAxgr3rAAZ z$2lw<4@$~vg;^=e_gWng#ABkZbeF03oIkcth3{-7dwXc)5)G;vagYJ)Qh&o}_$FI< zr52~m0TBYW;4#*|3$WK_hE{2G**v6-$Q~C9yVHuRrTE_FM{9UR++Q(fj!8KprcuKu zq+j*iQpaPXE?G%G$^5Q<f!u!9-wv-e541x!km!TtaydQD1r|TG{{X}G3@@%#3eB_` zNWmV}@CC<>H7T4lI$h)Qv^bKZm*Nez)9t=nm>F2d<vVh5-lkHa%DJ!pUoeg<6&c-f zpMUB<wXehPv`sW{{ET^#WB?IT!TVf%Cz1?Laj~(0Lmo-#U!Te2r4p=beLJB&Hj{x; zU3j8f3)s>rBtK|EK$VC%9l)Ye!=%&I4P!BGr!|uFKR|5%0BSFWdW6qqajW88p!rAc z<JUD~O#P|87CX$b+(rAT1WXyTk9z#?9yqv_zT2nV&oqtl1dM##b>^Ul;tZl=ZF?4? zjU>d$leYkUD;FA5gR^!u`u-_2;}rh@uj^Cvk5T=p{uP!;<GsqM+DkA{$J(Kr_LTT( zsI2x$t*W?OugnfB^Tsb2-0HUeYF$XMM%jnX$!z=5uZr&Nt=L@4C}K!yRj^vKSb85H zHp6*_J;&aTkI(u?=xY3P_;_sNgzA}d&z{GRdSss&{1JP38MN1<x3>GTGmrzHt$uym zc-HAOeY0x!Di7U5F)dP0<1ao7cWb+u7B=1hn4BL|PAZfqFMH*!hf^7dsVnkXdg^`t z-yFUg+g-K1*IA7@nqx34?N)!`dHgn63)^ZC?Qy^)AI`r%<?*fa!5yU9gR0zTddS;J z6vXk~v}|sn(>34%;3SN220Lc6sY?$jT1?hCjwQzYtM7mCe<Sod=i=wX&C$l1#4N>k zg;oO}S|<3%@XN}EJH1*s<#Y1waCcYdoIew_ODhBtYd&<v2yq*pO+IfN>Jr;QJlcbw zEpjk(hBcbPP*Ar!xj))f-O_^l{{XMZ{RmHszYmZ|_ZOrnd>{@EPin7y@ngX-+oKD_ zV$ZqCKO^g31SiA|UG%T8-|O;#l7qW`2>Rlw&+!|@Fx@iS_>7ob?b^;*kyjctAH?<Q zY4!Y1CEPw|=q10!zlZvyazUqR_U!!#cI19FV%y^1fFQT~75=qsviYh>Q_X&M4~jaT ziG2E07w*%}Hw8@O0o<CJ)8a0*dpcdosLAFLmsXJWt$l_UTeFd7So(5J!{u}IM&sg# z!`pkAE+o{T3cU<(_n7pjkBPnqYh(Wa6U%+a?-Jk?2ERTpej;m^EMq#9fltm>IX-40 zqfZ`c(@8a~vq}WVZ_hC#jCG;maFTq^TN=F27b(ASTh#pk(Y$Hkc;siY*5j34L!2<= zQ?5L1;QJM4I^0mk8wYR%u|2b20^9ia#I|-}G@W{XmSu}z{t=#PU032)h#j*hh;AMc zamXNz)r-U7;`w7EMVaCjt`~l%-WQ%b@KvL&#kQ)FNhF&=-GyJR68QVU){3U<P>w=a zkm}eOuYo*4@iWA5Y+FrjqFGMu?B%{-I({_`zr^1V-9-#?YZEk)f?TtlX0@k6gZEqc znY_;x3-i-yKKmb_m!3QDt6RwLJVA;AieDSEP{ZPlDYS^iw6?1jOGsD-IP}eY6+gyL z5?(5_+NH+iQbySc<Z+6yzZQH!YifdRa&f&%6?q88M{%0gRB*0Zy#*Y8E37`|eetAt zn?;hxeWlVBe2vQ}+P<{5n%{<sG=JKb>O|Z2cVqPx`TY;Y{{R{3Rx77zz9V)_mz7bD zLHz1#UyQysYt75zKQM&cv4T{o_vWs6d^D1~TN4b&5gB|fv+hgZ5qN2@{{VA!1`N9y zrF;U$wk_}NEZsEm9h>>9jmxx-YxDg4Wbu!k7VS=15s8tXcgh<zyKnJx#`8%Ps_OZ7 zQsP9ElD?hmXw$<+NjJC1#;!XO-!zl^ulRq#KHk67JUVp-({(GjRl{IyBjxt0wwjlQ z+8e7~I`ZA+93Fov_=8vYtK!J+#2?!7EbSR-BzuFBeT7xiJ~eo%&eg3~QkLRRFu8v` zjD2dWQNqt#`^D1CD=9d*xAR|uKJn9~&@N&TYFdS~7cn7!lw);L(kJlznv|0{fC<}b z{KKDdUl3gUaq(@<#AbWTqIQ+v9RC0(J&izqH2C(>qY~e>xJfdFoUw8F*BZjoZ<;Sp z>r;1{)lFIs-A}w9R`5lvGFwBeTSU>hSrxu!rb(>$IV_{Qvee*U-DHqqNw0!*&y3zC zoo-^6Rc4lHSP~>4^GJR)_@36;G&!|~^5cE+?j+)&;4ta`024yLwXrd6DsJy>Prme< zpAXI&W2jrqOBOj^7d2+))5G3CGu|fkUBOs@4SXYE@%zUH36jfEBPq3?%p)I4p4;R9 z0FTuDmg@FdV-bv8$v+va<%Fg2a~88|$~>~CW_{Zo$AnQLaW%5G>=ivtO+CJ!aW|K2 zsAGTm=EDZQ8@l-S;~0@7wz`nApOwRILUB~n_Kxw8iQ$u2m2P&NZJz^mC4<AyS;!V^ zUOwZ4OUV1OSo|@i!f)?ypojspcs*LEPpSA)!sa-|^inO%pD<?xHGD}Y$Nhb*65Cn1 zmBKdgrd`30y-z3Y2d>V;Qd#`C?cy>-3CS!dcq~2C=Je=Pvudr|m-_TR!SQ0~molVl zbsG7Tc|iahYbrkq=+N9s#?mPyC<gGr0beRye$##;)%50`;{50D#>b9pCe!wg@tm_r z_qu~ZF@Pg-#QU1{DN@45Ui16T97Z;+XLPjkKEBiReIDX@KGGsWa+_0(ty;A3u9IgS z#FIrFR>-^I3IHrke0c}$8RABsTbQ+$10paTj!)8^t$xyeFTIL8XS|%0$q(k>bnjcJ zVQqC|2x8|QEdKz^`t+X+UE9qAYIeUM1!LXwk6O8>>An}guooJ8!793yX;h4Yy?C#R z^nZ?iC$hKMF8O6Sl2<b1;i_vd+84!|WH$De*D}QmF=7K_HI%4fWc}7@_1e_jZyjGv z&$6_?3wTs&(b|iPX>R0<vPC0gk@TuI-Wo}D3%PGJ$iqQ4$dpI1dGxQ8qy44)V;`HT z**N=5Lu_-i4cPR}N<V79i1XjFU29|s5IUXt`LSAi943)Z^!~nPRWWrX?>qi~@K3E9 z!yXix`qu8|);2Lr2bbG-p`^d?CZBC3#-*v~cJRVwATV*gy({D4`&4+~sYta`E+#Cc zcr4xO&-^sckF^U!6~)xeDI3=<fLf{H@Qysum5@stK5kT>+<j4fp!jhohflw=m0+Ci z4v}so)6a%9GpMDto}A6K3zu*@d)LWxe$*cjnl*{9*j)L4d1c&C`(~xG{il8)LAEO| z5i{H{*>Kkn%LCS_)5Bgic0jR>y)M?<A6rY|-3tEI{{XYCQb%){008G5MJ=C(w5tSQ z+DuX;$Vnbp`7vJ|pW0XAMXFp{>H6_m5M(rRV>vvEwQ2iL`1;!2V;YptzvZ~hm>8^O zLk#worjH*{%Jm}k^6Y(g7K@{ZVGpG4L%FlT0~Hm%li|3oVv50$*uv5}E*PItUnMW? zPvgHXTX?S|O|i0t-;vL~XJ|jPua0z$K`%Vlk1?`*l4SGNrdV1I-teA2t($8904)!% zG`$DIQp#n59G9CakAt7Wmg~ZLCA9B#a*-s8+x)h`HS$E?w8xF@T3ey0Vig<HpP5>y zL;FwsLApe{)O99#3mjvi9lF+D!i!%KtIRrb-LE6;YmFaC`wW;^QRF+8LW7Em-$l@@ z?AA;38zh-!kuXN@rF@NZ`%n1Zdw9jQ%eX%)pEIL-Qfi;HhmPLV+skrLLPLD)06F|? zKdaH@vtwB4x!Ff#eM_q7)`I0j+mGG?@orIqJw-apM$pm+w2~Orr1{vkIj@(W_M!3I z@qo9!Xhrgf&O(fKH4TsLKjUewQGU<7g=J@E>5i384N7rJPt=!~UUy6IcRsR*!TK9p zw5vV5d$?sxW~~1J!Xu^4ByQ{kN}E88fLq?aNVEN^{9bWwZw?ugeA43pVwNA;yT<yZ z)NN%uzm(fPNBMp8SW68>O7|)`j1#n@_a9py3HWvxzR(>J1N_^L=H{AwA>pYkpUb_C zh-__eHyqc>H(#|6jitGtO<C|&!?+kfg+mwZIpUjiX#&h;EKBY<RsCxIrxvd%eZ_r! zUi_LLSIOb662ciF4+Lmqz&IHv=~S*XpAK8gZwp)e&I1XQe7${Z<o#RrlJRz-s2OIO zLV+-`vk(b2a^v=!@x{%AIxKH0q(~hZSYUfqtSviyL`xaV%+xL0eGjPS(R?>^eIy|f z%oBOJ-Oo>2h7BJ^OOLcF#H%!>PoHUSE9FZ++C#@y_tJl-DH5Y(fy;eq{{ZmOn)GiK zvPmOPwVW#S6+Xh2igNr({?KYxaes03W!;{T+m>}e0+)zm1-<H&iK0b3Hj=<qq=>tW zf`p!#ub4IO+H=LzC9B19Ws#vUxKo0nsGr(9#2SVDw2w54<-$~*`P@ZKN)SoP1<M(B zlSkJU8f~(Mo@Rv`Zpl|8@T)&y(LdHfW~77F7-hb-@=RZ}e~aW~p3><RWXj5tOO_;5 z&-+OD!p%}7XF)o%WWI2HsmBjWUiJR~%vCc51ex`H$Axs;%LkI;#wSK@BMtK{SBFQ^ zort!vi9~C&C~|RMEW!It_`cTBe1jvnC(JWT!&YoxwI_{bkgPDhv3#_Sulv4#8qr~? z@~&5QWh`@xQ<{I7^^<A(Om8i(+2Y>g3=0BUn+Jz%bjYQ<77@nsjk#qEaqKJPA^S)8 z)_qRu6uOXswS%YY&27W`SNQ7Cc}ns#f6F4ncLUb6czSJKOqYy&y!!pe)F`&vjhWKn z@`+ag@_-XdeWTgIVAgh1M6$bxmOm^p8Sh^wPy0ytvd>SKT)LZe%(D{FmfP38Szp>; z#M4B%g~Y5kh7FwkDwP^KS(5RVT++S$7vOzZY%O$)F=q{tdx;kk%18hX^-=7sV;^JF zP;DdU<Q~0i<;y?XKgCzVU$)%NPIg2Y{!#U%hxVTFWH*v3qoYCcF4+KCJ;iOwNj`)_ z7gDB?x?Y<8XVtUYY1Y;eEzOV2xmA&uC-9_>TS%D!x5y)D{npdZy?mdj{?wj0kwlWu zJAUvhL}nRG)n@&wyj>HB<auS6%-Ox$fPE_YD7NJ%avm~H?X&Bvp=YM)+{-M6N7^AI zkZJ=AQd+&-&_}a7nOFmWJ6Fnj$L%lUp)63tBbiad?G27Q)_eZa-ZNX`vs|1^ct@AN zrA*<5(P`v2ikkPm>mOTxY0Gr3nsu6FbG+jK3RrE#vo+M&4Il;IIL&;NpR~V;TKTNn z@gSB#<tm8@2Q>-(rTk+Z+S$W-Dzt1PbCN;9=ZepgmD0M<Us{~IzqtC`-w0#8hW6Su zhA@1&N{0Ed#bfCAmlN4Yn)|^zOb?JYjt^sBFiHDO__pHi>(00mL9plN!6bWDM8CB+ zioD3LAQA&_8U4^<$gLqxoR!|?RK-+DbGL8nsrB8hh4fGlD)C6&(5M|M^tSB<xV`&w zi8pN<vDUsqhxU~5(rJmP31t#Y#mdV3VD=SK=k|*6nQydBsz?<9l10xLsGT^sx*Z%# zhr@Q?%=)ua@rI|N-^Xij<+4c34A@eD_svZYidx~7F3e#%2S5O9d)LSid}+N8HPoqf zDVj4R5;W&vW9?bmZ^n-v#b|72)FiqhUpQh-p#eQ8_Eb4rcDnT@rYfvu&hFQJKTpW} zLA7gXNhpxV7~{(X5>9*6*4`n~Vabu;U93Pw9N>&s#hPEn-xk^G)89#RGeIk05dQ#l z`c?aHk3J=y?c?6=k}li=bCK^(r7AMD*r$w>mG%8U;m@$A@dlY1$7H@!gpBRM0eSVT ztDR2P+UeR!BXJXXgJ9pV<BIt{UyPc?qzvC^xKd@<Lra_*x_&(PuGl<LTu2gds^cRh zQfiv0(s%y6!dRy@ud27|eMGnM!Dc17yhALYuzmr?dSbL~wH-5La@^h{usL!-7z9_x z*8cz;{80Cki-wsZNeNFmy7Ac6YtN0oFt~xhX-ly#s~pGXBc)8^N&HWs)nBxhzt_zA z%T?F(D3Ro|x`|>AcQXw0TD~6DG+T&~zSR)m0^nm6@rBREFBUzTT3ub^C(L;F<0Oum ztJc38{9-hi($`RuCU3nT-sB!Rr5I9*<&zY#H7d!<-oNn2*q2(4oSLo7Q)&@NyMc3# z52Z_Sf1q3zX1caAY}*(l4lCp%@t4I<YS&jfgUUm0bdQEU)tCPO3x~zJo$wNBY>5=5 zq>S*u9)OyBw3XznSGTET`5E=4mZ4=VuOr<+5;8)DQJP&-#2O5@o9tayK!F_bmamj& z_`~ApB$~;tH(+_OqQ5_hs*rqQ@d|1t>PweG@$G1f=bx=-$x18VcVCb!OswM@-}3(e zGwW;JLrhy$x{Bfe6pi`80*~!~4lIon+O4#*U=NpoGhZN2@t?#EWhJy1GCMnMWLG%{ z+|w++D)_jp^F=tyFjBJ1#{-j^Ud|0(PeFZdr#ewrmtW~0W5?p33EDZgiuqM#i)@Ul z92ONOnc_bR<~tjWTHUud@kTNQd{uApTg6tk^R<=#0GSfZ8(@9S&s-B$-{RMbp|)78 z?srK$?PYiQlu-&$ad&^$V^@llCGSN0OHlDgfE9{Gdv5+)l#_Q(D!kh7ge{?24ykP^ zKROg%neAU2SbSO6+`JK#ZIT`Po1E0Kd{gm4=18xMuDv!l%0CJ{ohGc=oUxT<c|DhJ z_+#tK?QcLyw@(x@LZ2{YY#h~Sb^Q_<GX!y9{LI9IiuocRi(W0e^DZXT*;{c98Q_oU zRkXi}`u)A@>FudZ&cMjcB%Jf<ROv%id$e3}?&(G^UnA?c)wCD9Hw$_Ly5ZQ61ufr* zyf~4)q#CSGDmZ0vfCsK?<Xhi~{w0vd3*5^1m*pY0oPK=J-w}0|5*Rg&m;|_$@WlI4 z_H^vE7uM^|xhOr4sz0^#sbrL!^qHjTBwPS$w0<SgVu7c>)D_tqZsK|CUo6A%PsH!# zv{&+khbCX2?;5M9c<aPd#$C0Ul*xt&t-}3k-3W6fJsTI+D&G9A{{VUQeeLFw=+ZUb z6c0Bff@*|!njF^OY&XaeHyDh)b6+#B#7`7FGFzsyRzL>X-y|G+RFQl@@vB>pJ600p z88I60-%6)W3G+##7m1YlnomRNS#`Z6Ln2$<qO8asQ?vk2aZ@Ix;lUho!)qMN9Au_X zHS;~k#QlCP56<&l<nux-4hB>oQ$zes)XYC)TltoFm@63M1Rx{0s^zDBQIf>fv|^K9 zN7C?X7EcmhNg60`m@gi^Dl45v!giEAaR`f&F#L~fSIv@qSMd@{EPvZfkw+LV?mvsr z3Vgp3HQR9!i%}tF+<f5qQhiNlDs<cCR==sx>eQ0vNctKbW5f1Wf=O6xjw37Y#})2B zvX_Z%bx(vEjn{_n5>WcV4guV8=qvNe_u_83bZ>2^*N2wTh(yRYbKbt>{{Vt>d3Qgv zRjk(05+&3fo@bC|O{bc?3twAJYjb$ilx*g#d!FgGZkQATFEN$dIQFdjz3CbVog^E4 zz{<HJHKTQh+qF1pGr7)izLlGKESsNW5;KCp0e~yrcfT>bo86-;QH)&fnm`gf9OUC9 zR)2@?q?^T>QbQLr-2@v>K*vIA-k`{>=9!qNe=(G&Uuvo0kv+%64ItP+!CK?ZF5`ef z^sM2`wI-w`7;{3`J-<^~JjQg8d92uS4i!lCug*XCEa!tPejsW-9MHT&<xOdIuG+2I zJcIZ9TZI++H>$O?m(rVr^9f?xP~!%_EI;76UN*n*+&&-HZ&^Uoyj1~Ijqt?hfnH{F zQdF?An%?N&3ZYhR6YJ6Jb^ibmz9!yjJ{!|K9pT+L>H21uY_{;*qu>$-ImLM$_Mxk4 zeq-Or0cJ9^if{)#>HZAyoF5UiICU#`b}oUPTbvR**F&THCDpYy2?EN=ImXSTj2iJ{ zUAxkXwXLt8smF++Qd9P|<#*dv_j#N@_AaTYU9IT0BHTz=%D*zX>~Jg6J`j8j*1SkO z=`4oUkdZ9ps(^h3dauI|*{(Bf3hJw}Aj1m7YMgu5P4OS%-@|W%8cXQ<WN9_*C&@$) zl_s`nxg`Gp;lV|6H73-2^kr=e;V*(d9qEHq@dTFQSWf(&H)6R@h<~)i8c{kAgm{iw zGK3ANIO|?T@mJ%=i9B<zeUUFENTb6r1cU(g&2XBgyFH;>{{XZzDa>LZ*}?U#l3HE- zjw#N`Lkk@{_4PWh6!`O6@dl!|dX>R^NK)ccCe>eh<@F6~P<AnC`jWYlLWMxi7ueQh zR+_fD9yf@xOu(>Q;N#Z2e+v8}yS=)$iqgtQaN(I0U>wq_<tJo~T{x@CPgiY!tv^$l z@b8E9%e8xdoH>^ZB7Dak>(IOp@DId3C%&}Obd5TBOwZ>^?zrF{Yu3C0`#H38!+)(e zlOFx<od_RV^w;>2@WbH6i_2pxUEIMN2!JE5J?lNSU)PbZEb1pIyG0rP1O1%ze-7zQ zsrb3=j4S)eJkyM0+r3HS{{Y%6!X66IB+|SOV#akITF!-bkUhIsh<siBr#wsI_(TzE z#>y~D#}U8>JwdM%*Sve;T}f^(EZ^i_a33YTa4ANUlD${9w!h$J@h_K_gl_xT^)DOz zR@OC}_q^5~Ljo|9CCg-=Zk5Jr8nwo;sWkFlzm^xwP#*)^iso!?FE6d*)U`O}{{Tpn z$yM_Tll2w7qIh!ZJFhLS4p?CTJIFOvDqY?#%d-7^$Z>MJmG1W>(}rxN7Po$5-LZ@! za83`ce!F}bju?Ii_&VNJQy}p4URK$1s&URmerJ3(_+_Zy>FseOeq+eqU9^VV1Tk)N zn*C3)(q-_!fV?H)DPoP<$HS2%lR{K(W*O~W*=$;@(!H&#DNVS`&FQCa(7B^YESl}C zPZ1^946ERCRsR5Ki0<xwBxnlFByz)XZ3_f!F<ru?@bq)d;(a+8ytR%{S)ApL4N(29 zwRO_|D(EXM+FdhV+lGvdq<q61itokyw58^m(}ce?s!8aP@UQ$939hvd_$yQybL8p& z01Bc39zlj@l%JJ){x$KIx8j+k)^1?4xDqY3(|L#-C`SJPYQD7p0D`K;1=su*U&Qkr zFtfw(t4y|Q!zumPe36B(i2P3+kK#Q-;>PgH=if52s%+&>4t;CkF$!MVr24ttc7E-@ ztq-!m!WAgeryq$&u9v&LjZ6Ok8r<FA?ut#qAOk9nN3S(={t`c!lQz^;5;Np)B>LAK zcWWe9QUwe%^S;hN2iFxmmhU`KG;s$K9$aUDJ!^_uw&U0JJr81=N<Y&&4PV4*7=}lX zOK!?{VTzu8#b>XKtR|L7;rl`)T&~x~f5x$z#`^NuHJqj>M7TmuHyR=EyIf4H?yHHu zee&(++J!Dzb4XI72}yG8)!+0qqVZJTVe@WTqiOuWlRwPf)n8oJ^;uhdGD-$XMp-Zy z9kEcypkB)Ae5GY(AV2p`Ye;xa#oNU#=~3lxUW5kknjJ~%p|R2IsivRx{d|n;9cx!c zhHITb2_y&QkLAy~rMJ}H*8QXNx5*<BD#ilm+?t-#!tWj087|SJ3SDsd2cDH_d?Kdh zrA2+xWQIeWde#z?cjk8=EhQ_;*S3XA?QZTz`(@3;x}gaY0l@rf8=Y!sbo;AoVIg)q zx0AS5qj)v+`|EA+eWDo&%NIW{)KoVf1!=9WZY^aofKJd`ZttZ<o!p=G+x`uWWg2$( zZTJ}S>o-5x5<y`cO*D?X=8<y9GtSXgp_Xkj@;Pob3%PBC%On6uNG;zYwJm%xV(A2T zD9b5A*;U*!Jxxb8fq!yr^ypxeB$qqd;ah0{dscNLQT$Td=Wp@}Mw*wO-)}?c-}on; z{Mx6-YnypA=@)I5QfHTOAo>o~=0CJnqid}G+I}~HLd|Py3}_{E0IZ+viuF(UC;pQr zpYhXGzF#mbT2MRGWr6xviumeVEm!uX_>FxZ+ZaQBit(&pGq<s?FEQu#6yYbYJGI`g zPwPV*o*dYWMAoa9w^Dr`&sUls-fAJk664H2FaxDtjRY|?mk%5JMmIiBtvFkwMwdfP znk+`rd1ZMx?0xDR8<BBrFIvg%#EbHmPDvHy$})0FakqARQK-3h>GC66YbYT5L}f{g z?fH`jB-EE0PNfP@Jj@g{h|42@%BQv}?Y^EbY})tDjx{52c5l9Yg(Z%MWivY^^uN57 zUQP3U?{fQAu7ss4FYEgIjOshfPM!Mx12v5b>gqMRxtceS{_=JsVSIKKQ&C%sQ4QU? zqQ`R+0%mS=>CJ6xDR(T8w0d8eC)xmv8IB6$o;%fTX4dLh?c$EYH<{$ZMK2*ec%-P* zmExEDKdC9}AA9sNZS@=5jT!Wd2QjMUipJU8!?335`VOr2(6z;<maIcc(n*h)^s7qR zw6P0oTNJgCCOf3^zE`Ue3D~ZieW(_aMgz**g(M$Z$;MK$o457-YCmYHt0mW0b@?Jo z3pZU|tS=_>$W6;CoDgx+vSYTfxG#BR;UZZCFCu3p^U$|WYoN8Xw3^oD?JXWD<C&2V zvCDzMBB2@(xzHuiZK8FthT$(8I0wwnPg>bfn|!lhf9K>>>fPT<uS<S9kGSyV+i2`A zAy#=#Vsw)%Poc$P&7|v7-?f}7V|9oLA0Q4rMQ%ZV;v0Qj*l2OLn(^<FNmP_m^`}}{ z+(ixCz96+%n&x1vQeC-T<Q}zkslvUd2X<ozCcUGM{-37iW}_rlaIKZpEbLGTW!;W_ zsJGFquBA~LJ;DgeZr!z(wcAFqcaiM$`3<Tl<>uY<cI#Cj@b&l1me?;kvjQZ>-)iLc z6=~VEqwUxF>@RNA{nxjz;eYZezl7|iwS+D6#~dt9!!JT=bEL^@aMN5eOXp%JqG-z= zJJfS{b5?7cb3Dq38*8FuZ^d+0Q|hzn_YbFA0X$%A^M*hG@@u}06)R2&r2hb~ymcqf z7b$H1^N+r^dxf}rHYs@6jx;H<H6Zmhp>L#WkgO43TdeYL+_Fa|amO`gYk#!rtpJ<L zif0)og74f4(6+IP#oy1l#FBy`jYc+*D0p`p-}?UmG9^*lU3)(+-e!C{T1jO$+GP8R zTt~YEnuZuBx0*TG@dgIinmiDGwRJ5n*XO>8m>>p636qLNdv?3~J+#s|BuW~1@Njzy ziQ(q;f7OJlOPS0;Wpg~H1uDi@1`{IZ9<-9AZ>p`urj-du<npF0pDSaoD?%$s;JJa} z^PHrlmY;<g9kEsH^k8f}xNc<=NpjMi?UBj#t_fkBnzyODsd#fGugmW#HlJY~&Bxm; zVRa#lE0dM<sVu|^VlHkFv1LCho|R@eY^<-1)#E+Od7fK_0hLF!OB?C1SSf{>w@Oei zPN&j|VW%H?X#W61I+YdG{{Z2Mw0mp2REd7q^2rkkcAdln(~7JX(#GAUww^{(rZ@fB zE?Yg8v|!V;+ieE-SS>740<pys^loY8rLvMaC5}9zZ&umLw{NW_LP`n2YV`#qo!y$h z^`?a_I_OzjOzRsetVMj+1!N76O3t55yt$6n;^tF7mi}Q(?Jb{L)PW|rn7*nEl1$~- z=HUHBKUI5yedO;_Hm>NRT#OHT)--1*$y)CEf5ZO(!<8zl+F3mr16W92d)a45a09B5 z&PQz2v#sR%wY=J;vr48QkcN{0d*Y_l#3I$L(#!~%)%iUtS+3?fiikARC)wix<tOD) z?OIi#D8t;kY24@b)@pKgx8ePDB#s-uDtEJxBZ)Y{$>Z9V-qz+lP|Sr!^usV9J`Y-! z&t&a&sidR^WhkUzo+;LuYuMzT)!2DtlGr?o;&ddX7|#0l`~LvpjVRljl|5~#4V|u) z1k7f-kydxekF%Bcsch}+tpi03y6tx}e)OI*=||Ys>SztpGc-!uRY%IC{V3Mwx;Ttp zWtJ_gn|%JXRKvNZ;=S&@zple|qomvGs`Tzwa~<BDJ;b)e10fN}WGZ+)t3J-$5pgw= z;#rPL=b#<)R&OpOmKb4}d9lYQCmm1Hq>#mO-)`K{{^Z2Ui-2lXAF(|@Pq@xfcHLj6 zr<?r>hwOH-$8~mX)r5)|GZ`6}_s41ltdc~t+_WZDnTnhiBzF2#Yj1Zpr3ABD!-$Vf z+1xu89<^#lMsQ?U;|21@Jo8#h2&Z{Nr}eL>)cI{^-^>098qIO`v!x4Sk<S79RQo|0 z&jZ%3*=gimESD0Zs0AZpm<Ix*o(QM9-Ym;1{Oz>h@zSKTn&S4+r@E8NPcVp)zG4kw z?ERaxRl5HGUA;c>s)|;>&Hn(GnW1l?e`(mXw)-OyNF;VYbp91m{?<)4c;hpfp__Av zphB1<zG^krHrg$m(Mf{&cg7WmwK-<F)vZm^Tq?(E#vzl20Qbczv~5Z)X)Eh}zF*TR zOWC<P=|7deWk0e(8Jg|Pj~&AA@>%nPP+ePDOXXTic-GMUm6WT09x8dX*Jz9Vw1te4 z8O|~)?}EH}H-@H@SF^UUzIBbDSnlEuS3G0`-nwwqC01~Ye7b7-f5ZL;bt_5`br;3c zMW?6rV}R8)M$@egyf)%#P7GN203PPKjY=Dt#nZfHOl4kACA#O{x~~;!TGY=p^W8~v zE$cLw94u=XCxu*e70)`G4I<?)SVy(KNaT|&*!4B&Q-t9jNZ#weZ|nX6*FvIcRDFN0 z--p~jVQqbH6mthfiY>!y?K{2ddq^M*E}rRSkRe$N$;cHRiD#*6kV755oXqzmM+?6Q z81&}1uKXS2O$Wuce+?}BGcKjC>P!+VeLXz<jAtZ{gX>#Lg+)`V*?s*8t%y|b2};d> zPvl`i0?jMUbQ)MKh&WC%52aesE?|qqu_D|~@JfV74&W9s>yKJ~rKet5$#<k{-XFTt zZf&PF*D+3T%Hys@MW#S4@0P|`;{<&1%%6L2rF6P;rsM52zuso*QmB-alhaFoU*>Gs z*~g{d+}t*|G?K^rz#bkIeFa^F-rq$Qr4FFMV{**OcJ=kF%WIc%@>^TKmhZK$8c&#? zOjgXUEp*Tbj4OQ13X*>s=Bk_4Kjoo})HLSb@GQNOwAS-NBFlfSW;r<ZsdShbwQH#z z<0u>=1s`~Ks`fJ7TrieY%9Z=WpsAsih4W@&sH6oUPtEJibMm;xQ*UHrB`5Cb_kT$H z=l%#Srr6u-{{R)WOEpz_MX(8;anC=PuLu7CgNWn*0ECD3`S?j;BtVT5!*^1b^D&P! zb;s7ei2neB2<el}ru<3qDYr+4ORIY|U~)+ti3HcoU+`QVTf`nK{{VuO#iwc7)K-?7 zUxL;GtfAb=-1}G3duwp)Dm@gMOQ%!jaPAc|X>&XBru6>51bnl5p+{|}v~%R)Hp`QY z`eLf-nw8FvKa-`;99yB-h*NRN?^<@=8rAM%XT8*=kQD?xU@>af)4Vfgv5Ua2ts<Z% zNP+3sn&Pict4b|-ditML3h;~)siN&=`j|H!8M3#vwzt&vLj=>Sw#~Ul2dTwN;q4nx zk}$R_582_6M6I4k_7$(K>F_gK>K5=9dvNi)O#FTVrO?lr{{RyyOkjj79BcOo^}wzg zm>yVawEnv8Ywgz}oc{nX_;0+`x6*8NW_wmwR!&+@nd7xtwXr%bkgm+!x$>3VId82} zvbvJO`Z*;{@i)xF7|l4^+DfK1hEcjhBz{wok6h6l1?PAF01j}}sd-wX{=cs?RtCDW zEB0u%w9E5u0h1Lh*Heo&ic+rf$+%|#3a2QB4Lnb4Z6dbMEm`ErB=yBH5ZTWal(U&O z#te+<k~2!K1KvriuRZ?&;fRGz<!f~6Oj}TkQj|TynB>4zanp)Jr+MscU?pVORJ3OR zb4-s>d#g#{wTeS2&c~GiAP-8886vu5ouYP>F4x4HM(?1k<CpVEPI_<sSgFm+SJUQM zzLI~lMz=yq8WFM?W#mWdN7k}h<jF9RrUe-74U7POm8X9^pJI+BhCB!P*vwqj3(YEL z0@`0XDCIfasg)<#*IU7=wG`@qNQg^E7{8U)pLh8Sp;(<dS#?XBr8CJf`Pb#opsE_q zpD|%~C=tlBmt}VQ)vFc2`x&!jX%;+!?3sPTp%p^jM!3}Df48WAEQ9uh`_1WFEF5Jg z7_WENLB^z<+@JJ^*;-mySSm$#wPuvGh`fxN$JTVjx3_`~KE>G<?WDMZPnbS>8rd3Z z+@!)~lguaQa(+O4sw-uY?gLnAB)YcQ5tt4;nz&)rJz}-|zpv`!jcG-+@BMxTC5@Cr zPHSs8U0h0E%V)x+O<|_%7qJks3vnOLS)|-#KF76d*lF<_IWD(;_E{MG&E^B?(yM8< zI)pb~Rm8DKk;%%a;DcT9rk6BQ_rI>;R<fL@H1+F$^4so3d+i^@_xe@7k0r!SE!LwF z!Mk%m-W(HOwH_za^&2mR9}0XKdoBbTJQo*HY#f!1dXry}Iz6raspB6G!j}(hhr~9@ z9yQ&Oykug(WBw_@5Bw}0J~^jQwtgG7iXSnK22^L|uX81eoToUgZkOHtdLJp6&aCmV zYvHrL-<6L~_;F{aPir0Zj3PaWwEWow{VTXk>=`*Y<ku<i(kNi??X$dSnU5-{yL0bd zTAZ$N*P8Zo8l3gn=3vw2lVZ_D6~cNN?iGRK7!vCG(kWvMvA>#fPIK%lezWIo+V_&` zFklR<!y`GZD7LCx=fuU%i-&WQ_?;cZQ^Rj*BMr(YRq9(EMr)4n71jR$hxH9XZM6(s z%2<%ce+~7oO7VV~ZF{KN+}x>YAyQ*q#BR^6d8qKszL(=!?`DMj?ii6Sal5D$*+!yG zKK}sLr=ML;3s&v;AD%z(b>E2mIdS_v{15O<o*;zlll()EQL(W(W}9R~Cusb7*X3V} zwF}s<yxF{+$q8p^VhU9E1Kz(;f8gpEd<~;V`#Wkkc3<i7c*<zu)Cv+3Hj9C~rzbpD z<;RO|WV_TPQv??;B<xYvGQTgrYv%NxZHb+=yi)tMw|`U6t4eUIhmya&3-8wYdHl{| zOB*R|8*;KBQzq!7%gV>rv*m`{P=T$TWVYIXkXW&7dez-%LYFZeK1Nn`DA4DJanJ)% zJ)Wm;YWFiD34Y7wyexiU`1h{Zw<z<cqua~M$2`@xO~vnL*Y4BG)+#0Zp@iO4pE|NG z94I_s5)D-H<x5FnC_z_N4S<=?Qax%|p|&zS*3qux4#Zh`CB3sux@qp`N7?1w1=<Vn zp+{aiRYp2lb=~&<yvUqVc58mOcl3YoM-Z<t+<ecR4Wx``6<!FYdy^gX7SO8}@{gJK zvF%nbZLF5-hjWzkM9C%;HYzw&i!^JiINC&;VDm7{LGBG^l9O|$?{DhlIVELP>-}{W z-Z@07RdSPpBPwvbb)^zrHN(X)NWvVjVjm;e_NRt{Zq1WTJZjlc88D;hY9zF`is`4h zv<)JSrP^)4j@6@#RGqfdzuwDooSRa=&tKE-8#RT}>0VXs^UV^^z9mNsj(7yrmhQ62 zGQ%q&$X5yT6+c==wkF6%mH<aArR161<w)s@ONNz1dTyAqw3kOOa_S0#J*sq)weI_W zpJF;nZM*EQ?|%1hZ_CL2Db;mn)_iSr_7>`}#~VSCi`Ue5tXZ#DM_Hr0yN%iMB2`Qr z{c6qi&5Sy^w$U`+Rf9XbWXPwjW_Ysj>Bu3|W8CaK%rfp(KAEqEl5IBHZ=&))OZId4 z=WSQd%;NP%I<Xg58fb~WZ#v-@KT4}*saRUU8PIpjaIQ<UU}CS!_RBdja3y8C4J5=S zQ3&>|8DpBzJ={weNdr7-3`Bl)pFNkfhiffPxWWo9DRkfT)Q4X)u@@Gae27>XZY1-- z4Bpk56~MGX1IXjeLd*)~v!CyDt-JeKWbmeCw|HH!^5g)(4^ORNU0%&TnQ0xol89rw zKWRw^&KK~kTa`xBm#?YPqWzq&xl>luS}WEoYFL(0vRObU+*MyD>Pxv}ip@EU%oNG< zA4-o=mP4<J{?QbXG);$iitGcYCYg5~#opUnds6Pq9cD+s1M5@B<1S^h-QMV2(6o8B z^><$+FZPr_WqEF_SIl=9Z!>Wi;EYt0T*GaB6p0v-j77G);OEm74UUlv=$97p?zr<w zC`JPT*P5D10>O7XX~S%eJh=-1$iug-Z)L0PsW9gFtlqnRzGN0cSDh!kCfRaf@)eE_ z?_YYkr?r*jQQKQaZPh0Z#dGFxdXj1Y+MUE3BU2eH8cp3B@vF<HwXmMzKiw?Qj1lvd zVbq$LOPSqieZQ~xW2$vsMEtw1rmAW(MXE<)k~7>qo43l_fl*qq-0BOb&3!GEtd|kU zL<~?VYR%E$jtxC$ok_Ww4hd0`J!)^U%xyl)CBm{I??9`Kj89T)wh^6KDw2QF{LCCF zwaUKzzu*@>*{RDJlKxhYZNB){F@c`rHR+$Rt^SrjZBK@pmHviqU(1p>WRgOp9E^}_ z%C4@G>c$_ixK&3nOs6fo9dTXv!0l9cN8|qhf%V&KTazPeFxuI)1BinWyKy}M^{%T* z@rv%Z*Qv!>sMUm;wVsFcKc-t-+S#I8MpQB@kjz-*k5g7EwvREm(rsoTvewbDE!5>j zSR{kM&QB)3!hF)5<+<?n`MtdPx4RaQ5=jM5UbM7Q-&SR<#9$dpu*f3@ydU<N@Rx)v zd>i6qvC-rc$)rm?&D4xtQwn<;_n-6DykGXh3f~NTNupU>G<R3}B-?I*C4T7`HR)w@ zYY^dm(=fy(ZfPs}pPN1l@%M#(!DzC&w&=`lIAO4maoW9yK)cdyd_KCRqr~W=C0qi{ z^smov5BOhF(vtrGOM>=awA)=s49R%S7DEzv?Ou!FZ;O5}(=?Sg8kEwQA7Vy_AdGdV zN~I^Pn$vrCIF)ItT$JOZ+xlnPIzNdeymm`zZLQ9H(6<qQ593y5@uJ*JEwwwlWpd?n zZh)y3^2{F^yj|iuSY?*rLeRtq-pODpmCwe{9)D`ZErsN4*6qT8RN(hLtI(%g56iCo zk&LH^_~re2Xnl=q<4+Eu8g<3$Hs#!r$bbsbg7(2+mgK3HI8J=X2q0&*d~2zEV)5Ma z$En=jM$yS0)1C^NzodL=@zhq6L1nG&hC!E3c{Q|gRAl$l*QuPR$e%Lzy+7fPs;_)t ztrG`U5rfrmPT!>(e~Ywh$yux>FXat}DGuIi<pubs<D{GWLjM57QNqm`2%wU2+aslC z-h5^8+xb($s5Tlw=1M+N=jloS2SND0Sc+9DS^j2mt2W#}OKa2QeS&rUAzYZ<5w~JY zFu>2PPjT@dNYE_??C)c+kbtk&zB$%DCU~AFp6=Jg42Dpoqa1v~p@-u)j^c%_?zJqm zr{pEKE_+grDwCDu{RZV#FMV0|-1~;Z;|`w`OQs8=CYXmrCjg4It$bV22A0<_-pXdT zI~qSTx%RJzr}(AgZ?r`=udO+}blDO@F|+~eS&#7x;yc_-*Lu^*_LKXFS@8Rp)YcU% zQ<VL))g||vMzwXNIKR3709HQ#0MULo_-{?N^K~htSpXT7J`X*qx4#=a6MV~gZRWb6 z@{p|HHcwNE_;*YAm*eR4^KCY<z2+G!Cm<2qHD2H1Uy7DIgZtEMsm>6etzh06d)NN} zfOM>0Ev`qu&+xJLWWN>sA$4Nt4aBo-F~TLdz|Y}UEIugcmRfT&tikSpi^~&kMI*g@ zH#f!)7U-~M4Nfv#ZaXsDe;U3201LCl%V}dQ*Ir<og)5Rndg8OIR+af6_w+4dF&@#h zwe^<A+o$4hgRXMYIo!B2Gd2}*SEu;l@Xt`yJd4JOfGVL#$3c#@@O{_B&lz9blAa>i z9ZZra7#veCJ|uX?NY*sHP|7!%Nc+OM9O<;1-{fyRRe03AV(j*M{{X>0?!WlM;4Ldo z`(5^;W|=NLrL{>u>V0cE)8jXQZlG(Tn|#gNjIZ~7F<%PZd|dIm22xGYl=2cyxIbE} z;m?bHIgU%aJIjJ%^EaZ%auXH3KVq%S{{SO5j>Xh&QcF(vKK}quj-L+iBonusBnz@Y zB)}jJ4M%(Nzu}#nffn^<k@-l};4$ti;Ja^$zAU=cC)85(qt6M68*veWdSF!vzAE_H zWw+DX>NabB8sMHcdeo&wHs>$F8hv{c7~hp&=6-^I!rJhS{+T`f%rRNAozchUfIz5X z_`mS}Qg&->0b!le9i-R7cfS<;Wjvx!?LzUm!?0YU@z$x@{73PN*(>VT?!(O6Y|gtu zIrgi6R&i;)wdlzD_9jj-sTSXBw2!}Uek=GF&ypE@Nw|~@FnW4YH^wiA2<nk*vb=!d z_L55Dxvzw-ejxbIQnHop?vhD@{G@!nJ?gEu#eW;=&jZhJ-)SrJBRD91YB{j(>Q8SZ z62)Sh=5gidwP)SZd{gj!)x>XW;wJmqQ_xg;pTwUGT{M>8@R2!EIWftcH@$pGr+i`Y zOtDQQo>NH8@(7rWRA2D4JWXpf*H%u+mHqG%ZY8~|XjQ{ICHWC5_=!ozSNq+Mx2*hO z;Y%_hi^dl*$^dssWWXodqSX9p4y9);t)GhKW;r02B#)(hKYj6Q$1{~MYAxoK2Yjp0 zdS<qz`0eoq+R7G+<Ny<DNav~VQCAa&wc}^5yA-R{cT!C?wygT8wOwjymV5nTM@Yul z6v{xr>T#O2qj;lMZ93q`;tWReukNHg{u!^1wLgr15iW1-?k)8<k;Fu_L5LrnR=fD0 z@kVCF&a*5=;2oh`DhR50>^n{}f=GzeobNeGSN^_7+Q-Frx`pYBRM)(;E)$7*fn8Of ziaayn(dJF!W_9xL;7gnu_!2LR{y(w{8*0Zc0vSNbQ|f8@&&1yzTU!?UOUlF+XEPA2 zdsb4!(Vd`@Ni$a}l%nLEr7u@&A9Q$w;s%i<kqEU3e5H^{8^<p>J*upl#<?WFX}r~) zp^>-7B$pT;O89;cj-M0PPlUteova>1yYA!M((6C8*Th?ilF+9A0GsBKWIKU9I2E_F z!^xzQlQVT{!OBo=E}QOsvlou!g4S1`#YLH1`6;^qdsbvW5G^gFSoJ>;NbNRIh^9Cz zo|W-^=j{ve1{ZBE;sVYNRh_^+D>}pWgYo^IoU-aR!bwq%(txQP_p6OuI!bL>_AvUz zes-?(UEld1c8?hNa?(tVS)zh3n=ZtLspt5c1oIS*>nhQbp=H`guZ6F^G<ervwT|s& zV9+@85J}J<TE8#t1MwO=Yio!{nr-C?DmF4!w))l{Q*CNjwyf!Ebi3-$x3s^Do)Wjy zu46iy3)XbcoiAbUS~p%O@YbcK#i(0r>kpK~v{K8sIq!jA1nXZJ{7-i}PjLii<#5r) z4s+FWPEU?M5p4W79l}c(U<)cR$<L*0?Qq)7%ktC6kE~)AjXN(>?+Z_fULJTaEhM^! z&XO?7&N4^Rsp;M~x{*UgsfC3H?*UQHI#<KmSM3ku6Jsa#gbvp(>ylgLRqs};KWGmY z3w=Txd*X?4Fo_t+#sy~a6t0?A9Xhj;YhOS3W9`}gC25w(?Ao(0nIQQUuur{Z-uUBA z)FA%M{@j!_vzHDJZ%X*y`{Or{E+G3=t;{cX3i(l{;>)!6`qh0a<NpAStTj*U-9~jt z!iRP}LGCJ^BMmDxYl+scCgaTh<L<p5#1`<zzIE_tWchr;2_x35FO7UWvayp?Q6y3P zxn0GNah}!iwdcn#7&w;dD~SYZ%p!H4k~>wsFZP=8W}T-j3v6Tsyt$qEY@YR-t3rPB zVfBi!vT5I;_e>uZtn6(?yq+RJA<Lq>fDU_Roq6M(Csnn$yR`9S2{S-(3@wrv4yL{U zy!h+mch$GS5xLBKMA!%hde!JZXkQm;aLIixmzkgBLlb8J)VblOCv;qKb>TGx-QN5E z0Fn2{g*8{yY@oc>wd9s?fNecKxT}*-r$eY2zu`4N#v;No(Mhj`bU)gA#*o_}cvwEd z7>RIAP`Lf3{CjJ49FV~}hI72Un~3MNWol1YrDLL4)~WL9->LWAtc!W5E%nEU;=F<= z0CfWlPrXkp+9a2sXFAMa=PPWdJ9FN?6}kPYJYlBWMr`foJHOX4m@Yx7qy4M=M6V^> z_C<+Zk-ANm&*5B^XHCht+wM1~idN-~+x4;c9nbb8mrD#@Ac#buxd4v7l-tSldE#+l zt3s$_!=2z9iugKT+WT6tjS@Q>tBIwMs1ZrX_03Ih`&;;~bUJfsb4Lt-?RIb&pU$)Q zZ>_9canVgCnr}}}xci?^n?SaWA-vZhS7jzvasc+G+_sZy>1;33Rgw33kgy$V;ft@@ zqg}R|)L!ZDeQy+;ubs5#ur*>|+ULZLH=6brD5@EnG&_P0+|({#dB<Z<uf@AQo@d-7 zXqJ-fn&lh@EchdLG%Pwvx0GB9VkG&LI2q&Kz8SOqtTp?BH5<5Z0|46toGYH$tCqjE zCy4JtLw9W~bM48){Gz3(##e{@Fg$vd<1Ly#)v*4^i2a^-xAMp#f{@3Wu@$F>6>%lh z10<+i4h4K$2kmp>38Y4j>CBr6!l>=jG~1urzr?z(e90I{#0Y|MmaQg~pF4JTC+qa0 z)xRU{X>5EV8+Ez1m?Gl@=acPK8&dFXywTfTUR!PsLq-CwE8>~|0BNrfAo~oL*A}xg zd7zGWVDbe+b@Ag+Ta$caxXZW9(m&oNw}m=&6IEu6rH+&P7k@9#$J~+Wz7~>btzxya z!@rs(I0TQaPibM{i!hg$QN*#cG6S_(@N3~KFWRe9NhGtC?gx^ee6cD&8nI{lU23wW zyZP5r$CDh-gS1r2jBU!LbU*C~b6b+n(OCPQJr}~)Hm!6l?PJ^-_Z$q7?NLac47apM zq|@!(5?^sZc{T8Re%0O}ZBAivsonV@yvX(wj8?(@uhvl3)_3maD8zsh^D*u*Nl}X3 zt9tBAvj{6jQT!41ZRO8`G}z+}qS?qJB3ELZ)OWhxiFv1q6GXFQF2XI)r~<w_oA%0C z=SeOsB~=O&cVbViMRogMY18g$^$8$YMtrbKD<A1yN}ULNZ&jf)#$B#dy!1!eG0EWg ztn5-B4cf-)3r!<1A&z=u(xugJd@lNXOKGB6KtbN`8t^ORnEwE5Ei`G0vdCeMH4+yp zcYAYBZ`$?^V@@k2)BTl!M=_pHxv7uUrz<<?Oz~1s)hl#X-|#+{zSR5?X69(LcxFjq z+QClJTfH~?W5E|T){dGCVn(-U1X;mc9=WfQA^oYW?X4rVw!W5arJU|>;T<ZkhyMU; zdl@I5?s;wj!v)=t7P{KQ$~KGszpkb-#W}{@tItGzbTq$)@}kRmpv0_PkbsTD-!(<_ zZ-v*TVY1U8LN0gZ$OXNPe7Ar5O=!2eToJ>mNa+lK&dD*{0qf0Dx&5jvV!i(Wi6l}q zam$2x=LJrE=!H5pV&%=L5yeI;;a+d4^}Lb%IekCum%2nw*6i5`zz=Gc+ei3)YpFu- zppoXNk)Q+<)7HLH(!Xpi8&Za7Z*0e$ue9xc4m;M2f3+TjW_!aFxm3(-B=q#HBSwmM zZrT~t#d}25lGFO`eHpG_cnae2ql?4ufW*d<FygN!rSP_W6y2tVsXe(=5xRn;*UH!b z0JUz9a*2C+=U|+9XmH<+XhHi;X-VPhn4>eSo0XPBkCY#+WbpV_?wbhXE2m`y*KViO zdN+oA7vdS@vWr8?`Fq+(&~3@<OD}~y5oNLk(h;NtfX5t)`HxNgrsL2ojPQ7xX`Rrs zu6}Qzs$=%Aw0p#!>r<O^e264&hu*jPz8(9~m*Od7Eu@ydpYTtrb*~I~65h(*`pdz{ z*HS`N=8{FipQTZ|_-*jhS+#}<1WNmS$w0vb`eMFzzWt|Rn^2B(t+J{n9x&h|Q}u7! zFT+>XR<`k7&mG|`-egkYSbZp#6Ayd2{-r!?n&sq8Ka)N3^T7WA2lQ*mF5}Z8xderl zHaiF9T|J+{Uxiww=+<mBTWDf@0S_7J&3v0{`%36gTfMVQH=0)=-S=Y^v19vDXz)U^ zMXy|L5%dyuC$ANh@UTi&o~8YADcR9hUTFGq<Mws<U#VP2Inkh%kTb^0<!Y;b&%X`g zyJ+H)7zB;?ADo);D_`33#MoNf+W3^9MJe;=Cp9?zsqAiJF4yShG%T)V?_6`kH7lu| z5yjzJyQaC1V88eQ;Hz@ci*U*$-0Zw$RXso8SAcaZP^qJBQ6o3ZJNo9ls?+wfy-3LZ z(}!by_h!!rwOFwIt08-7?5(^&jnpE56sh{wZw~Kv^*UBF4A;FBm*RS@x9t7!{jDUG z^rzk={pJo=6kdML-w&?>zxGF(h&SUn0E+RuZ`#9Ik~tLkia3iYk7AH_9QQRNe%5kb z+cutcKwrvbl0hyM9CgU9Z((2Bw|xyKiow*4)O6{&>QR2q-w$tJ_xA9}@@1H9<uT9> z)gk?#yaOwQIx*YH$?O)qLrDFn8%=`UWAP`PRFcvxxdi%GO=tUA+)Zw)HS{=<NDN<* zTYDKN&CR8bYIvM0yc8Ah=6V7BoqitMiLOnOF_t}vAUFtWy#D~Rr^8!2IF{-X#zw@u zM_kt_7wtV`aI0^Bb`(4(YY;Y;?M>4E0BLa1EH^jM2~Jy*4sqxz9V_p*eGaJ9!*kh1 zdYxnb%iaQta=J~sDoopk=)U)@Lf^8#g4l@T8CHG7GX2wBh0pC>eo#-R>j=&Z7}-Vw znu-tFp7TzF`$B&Z!14vmfyfy>@F~KLN2+FXuYhuDX}{~a*bmt&z|y13b0m^RvgDoH zK&Yhsl{^y!zFKK9I?CIOoyVnfWA?6wYe=r`FCkPB?zqeFPHL^k?U|@tUlz5uNo_(6 zuDBRAUdIutWczHnJGH0Hoq~SL-WqF+EuwM`!bS)mN``OQE5WxCv~3Jd!MxVp$4cj$ z_N3LXC0o4`_T0*#Zi-okLiep3U)rMIQUW6yEXccMA%O(ebESxavnm*j4Beu>`~Luu zY9HAjz_&>Awv-ZC2Gw*N=BY32li?`kV|G$Ej&K7y<m6S$@7j_EirU&ZU`O*dJgD6V zY>LPqwCt9;oNIr12GMj$;5PAD)1zPBN&f&|K`NPaTzTWI^xWChzhut_&2ld-rSl(V zUBd1BDut))wczMH^^GETQ@EqWh93E?i@(}OPu0KU-gsi#xyfKRRz0`v4WzU;63IB0 zW01R_9M<r{)T*AO*2Li<KXxbw?786!sVBU+(UU0_6K*i|mfy19hv(CN(RHOGBTMo` zBk7KrttS1UEcCq)UEJysZzQp|&g1x1jW_m;iR_+uZIU!3Ht8Fu;a%$rlwUsQEUIDV z-kNr?iE;ZY_-P~iEv1BZtmDjYlQ}+==)YvGA)?2b6QDyOQU-E63eu1Eozv&kwz8r5 z!n}+IFlz3j`$70>E4ZxgFXLt9mv0$9l@Y^xNm;IjQm;lUOMhL?O@C#bGU_1dWKmK~ zhYT<WrYV}I?0@0gdujg52@+f`S<fl~uEzfW_Jy;1D|2qP=%PZn2mx<%OaA~1=E@gT zz4Bfuknh8Q6b_ZI)R)Bn05aoW4e&SpdY*p2vPOmsHd=<9hT0S%+9Sz5jawhG&W}1q zB+&f3WIr>o$=h92zZ+6bGU=sAQW=PjHw13SwOq9L{h>u--)kijIDo-BvyS+w`jdL0 zs@OKUWd8tDi-Yz^(Tt5PtT>6JI~C*3N2OLjvF3{RChkj78m>{J*a>X<SEA{E9{f9d zZ}y08qZuWFxWfVTrl-f99_BY|VICnn=8>f2id8VubLQwrw8E!$za!04_D#2%FSAEr z+X69<df<aufAGh8HH>d-{hpFF#$?=jhxM;rviR@e+xv-~wMgTNIJcsS23tL9zNPWk zM1syc+go^AKQQiQkP-z_!MQ(n;OgOKxt`0Z=STK5(xcMjn%)mS;FBDv>w*CuwFDoq z;m6r+EDTXc3D`@A3|p@??V2aY`w^zRNMl5jGTf?=Nf_#Clz$rZxGv(;&eBWmJ7mDk zO<XNl#xjoKLU>uZI*#3sA=Cc=Vf|L--Hi6Odt)2W9vEZRtEcQ*WYkjT;b1uo3L*gC zoqII@02?$%ig;s*WR+33Dz<qZ^&B4^bPKCgwz%-{h5WCb)=kG1lEYQi$r{eK6+dRA z-_2@xy{GI;9Gb+@-&?QQf*qf{+DmrnS77~y^t-8T=DN`1l-n^@GB$WU4SI)#{wjEH zUXJ4BtZo%7*}n0{{C#PfkBz(}VMjWZ)sLAGc_#C-&u%In7P{8!`uPeoz{>JTzncF5 zGs`t!*=o<inkDD<FND(a;Ws=HAjVF515eUFWoSH6V`qDR;DK*>BwHl&2PvM}uTRmw zFbx_5duyqQ;du7PG^x8Jdem+EKrXqdLv5`1hBzXVB&EDS5JhG6d`r=N_x%l1!aHee z^tbAdD3kUcI%xjRc(58`!BBu#J+o9t>>aCWWWx-wLJ^3TLiv0imF^m6j(#3%H@DGC zt=%-Kg^5Y(M|{<dJ6iBok#%!%eW^}G!YaoZlc60?TFqgx5qqor%TmI)*+u>9^10x$ z{=-`3rQ~`&yGJZ4Fz&-A@T!md5$jfsbA2_VN}%k5Fa}wx>P7L7fPzGV`al`-jt^f@ zX^G-r1RI8e>h@+SnFbCq=}E!G`g)F3u=3LG{%wDs=6szG>}9OQX>n(%Z;X}&LdBL` z_BC(*82eSViSF)n)_B!cBqBT$?_W_j#BTxG%+|*B-_QAu#sq>Y#9lq{QpR`6;UwTQ zzD8+#Hz%qkQ>K$?+TMrA&-)u+Ynsu9TM1m*!dfg2PH4UTinR?k#Wcuck{IM|@-a>2 zPkQ>A*Ww?7A@K#>q)<v_iXHE8ctct-c+<f8o|3c4d<!?s+YV_~i)~wEYZ@3?#i>1g ze>3B)PxeoqJF)gFa_JK7L*??-bN(3*UYkfaQQM)GM*Z9*6|bx2@fU?*Q+W*W1S5oC zHxMcCd_(wssl+be)Fax2BSuq@-T9(a<l>!&PYpp`%3Gf*C+vH#jJ*0#V9Emk*(Iu! zzp-YjWs$Eu!~wx7g1*R;#@-i17E#6KdCml1D9YxUr+DkYnw7oGA81{c(wJrpxFxF< z3hmm=sbTPzcAd2Dd{qzZf8v>^yS$G;o#a4K95&s{+K_(7{wcB2fK3Kxbq9PKw=q9j z`vM<`dJ|b(`PV3^9GgNm0dGuIsC;3hEUTH(9zmUws0XKN?09@bk1~(qVE&~qan*k= zhsL^R>~rF&Ez<Pq6D8CC0LvoeZ61|0U$Qre9`0B!BAy3cS3L47?JxLFJR2G;Eh&<4 zIXeKy<48P5;rZHRu~?pDQ6Xo+81Gz@Sed?69Stea!P}WsJ~*}glKfP=?u>G7Ans*e z{<WQH`ylw9J64M2ZVM992V<UdUu&<3d?6*m&2y>S#!n?c;MI2V$AD)t!Y-pSl2>na z$9ig=cQ>ZRsu)g7PI?~^>VL9#h%S;V32o(&tBD>!N@o>4m+X10+Q8D>NhE5lN#5j= zPeET~N8*nHYI3wN-6P3t0~axm#;3g2JRU7pOM9znH$R&DfCWIUqld33G|VQjvXi{D z`P}%Kzhy5H>3USUpZ09Z$PAuhv2EEtl^xIQ!L1N)H4O&n$YhMHgd83-(!S8R@lS`0 zOpQEvo$`z2<TB^hrCoQ!7I!{<{-G8W{IL)T=~pa1BjQT$sh#lL_Pyii{{R!?2)|~} z6HjR_scWD}s?+&S3F<v*FMnn|Zr(PtipEHtoF6xwk>0-8u-CMhtfg%}3wA>Jb=nEf z(z7poYoSSaAeKuqz&01l1d7M%*rmE<O<^varLT0E@s6$gF?fQ_#83%ifzvA3$j^G$ z@IUPFsaZ`GzM_&U$;pwIIW_hDulyjl*RZI&jLLA$5mADDD)VT%Qfm{!wh*Lk^F~U7 z6xID&tf#8es3=m6;-$Iqj=B3jc(?u%JDcRw(nt|AZsg$m*DVL^{{XDddvr{f9(3$Z z88V~TSKgZax5N8k6cgRsyx@Sz2=DJh=-w4;Q6y_`AI-Riz%^B)K4lneR47uM+MSp6 z<a{Bo{>|PhlS@lDOtC65=1{zoO&_x_jn>g&N!_k~^imWo1%2YWPlM!v<G8xFAdui~ z1z6M;wmulOM%-dAEVxw)4hQtEK5RrC)J^4ugjYMLd@FDJHF&WikZQ<QR(;!%c9ZW^ z_0QRt#tAO%KJsw;K1J#ab`|%dTX+p+5WLW|i;&B=J86yo00?}0qJbhOZsO)4*V>EL zZ8dU!r$HpDO!!kw{hz#SB5|nNIGCo>gd}I)kp9hnIr3y%>xc5CT#cC+{44K!4JW`8 z+h*aT4<m1RF^-hktiB(^KiN!{;hW|d`L_>B&R*HKc<N}dRJnPlQ%_UkEf@BG@g!P) z$xP)Lb|&QLeQQ2H*~eXy_k0&qZSx6s5S}sDHTNWv_ybRobno<ZmS-y-NMp~nYFTJL z3_{TPwq=<z#~3;9#bV=#gO@aPHI5Sw+EAU(f}7wMh@?qxqAu#B@UfG}wO6(H3*t+? zU+l8m%3+ayRcOdz^{>ze@c#gU?I2W^ds3_kDgaz&s`+0J>{+gsYckA-4sb{#prSLX z<7+ltu#|nJ{i55iL-XHI{hmBiXLA*mzntD=j1S4RV*v3|$M7%2x^b26kD3c%nRAi# zuef#iyeo5TlHD!2GBNp(WQxdL2f}j(wT#5+EANqlfz!2mlqg~(*FKtj+2ziaB{rco ze<pla7r=iO>Nn|YVH$}Yx1583D!tF_`{RpS*=?^~%yT!Ej;eSy_UHC5hb`|G>+G?| zy?mwla7HTG@b`iz3w<=}wI2?<c*w4gV_q?{-5Gm2Q=dK0g)P1Xc-G&~WR6GjCJ}i+ zo$@KCMerx$E9&V6_fZs>5lDpK8vBMVGr%{`Bbx}z7ya9P)@rjpnc=H>1-rtgW;x~| zk@(hr!nZPMj-+t!d7lbfd<po8rs^__n53CyoT`LFfGXU-1-xYYnn)arar?}t-Ooz< ze&a#W?JpYM&O|K3bb!VN2^B`e!B*E&%Pi`vZ#nX&D4^$UX&gOvv?freC-MEq!!djW z@z$BBBq*)(hLIT%kPlvJ!~8Ju&D<>%cCyS`RsHDUR~>8Y_VE7zg<>*!DA7y3mLht{ z2c=3p6XE!*Jm@sx5kLzU9Q*M?rCYHy;RxDMm7Vr(=frn^2z+2QWQ1N8+n3s@*YT&p z@Q20EI>|bS*_4l%WSaXX@4~(WgH>7Wt)t5>M(zV1^*z>);l;Ky+i2GAWNnbk)B-xx zye=Z`*t<bS+~0e-@kE~l{B<3)lfa}1+a&Dexv7W2zZqUM)^|%Pfwi!zcURh@O7PXp zg34_=*<CqeyavxomK_tra0$)CHmL44k`p9)R6IR(?{@`Fa&vQ^5;wq~7Ty$!AGD}< z!-JfVDmi~=e;Mf)lU&VtI!24;d1ow0uebF*E5o*yL8a59Wke0Ra1Ls<<&K3k{{U-! z9zF6#5kt2GVyoHLP2chglxeG8rN6GH!IS(V*Y!kS?2G%xa_!~@1cUUb^&f&>E4<L! z`2D$l%{T#fkXZNW+P?0O;qHiIFD{R6n^3uBJ8@a-W#OiH;Ezp*$uEY?fQB_QrCq14 ztH>ipn)_dl=ft+32K-AMgiuLsI;5;h63w_1Qr`Rq@t}yuE8IFro><_Mn)|LT8^X6x z$rPF`x(Lr3m}LDbD~}C$W(#$hH2Aiu+(eDuquAEjtxbK59qMzfbnBt;-LJt98l(+j zb9m%Og5Mz<N1>$Az6yBDPt_*-P4lUfl|siGewFtu`Zt2^EN6-h1{CvIT1PFDkxgF% zcw<wP+%=V}FhSG~f`>}I?;|%xE$JtJQ{t;ngdQkczp_hhBbHVH+Cl?nnQ!oC#x|F+ z*uyD6l78|PIP24z`;Ozm+76*TyoW%6q(T<}g<d<;H6IIjKHBzMiS(OykT@k&WDHa_ ziL+5!oj%G5^U7-d&x#@V9pe<#X1Sdm%(4Q^I{Q<+N$@+zEo<dNsXy;n4=hK>752nh zSB3@8nI@A8BMi1c0+wA9!c#KFnp`Z(#O~ZElEkZML}*dgN`Hy){qMmK9pC+)3u}gm zMIa2sV{jdFQ76Ga8BMLNg`5{N2++G+Bb}d(ea~~EcxEk0E&l+spxDv#k_ZRhs$FTG z6w>5t8*Mfd<|a2KLXIIrME42PqU4*Xt?GPBfAFuxHf=bTH$ai?6Ya<bnIFPW5ZhQS z_uCo40Ys65o@?zF@c#gVL~_|3HUjJh@J>(VRP8(`;6-MYVn#su^2P%GRMjf?yCPJn z#`9BF^*%Ho3VcUAk*%XhT*O<<WjyDgs#aeHJXc~Mu)TSF;KoTDju2+P-hT)98p`_7 z#hyIq%-B(tP&#I^ZtZ*sB9d!>xmihkMUunPwv{@qYD_6p)7mxnpCTu~FB-{rE#0hA z$!-vsWCH{i?@rUdXOD<NMYz?XcA6kS+UM^2*Vy*je}v7dM{5eJU8Wc2z#oNaS@?Iu zLN`fKJjWX|yPlPjr&YUL)7jFs<1g#f_@Bfd2|Rfgj+c-^L}mQ4jJ>NJeiC@nZ!+Fd zn1XV<PC*s-RK6eZu+zTEA_HkBa}4zKtlOJk1(foV(k2%%`DL0sFeklj>}u&NXmiRm z=9+W2%=o`e_z&Xi{SNN#+U8j0@|HDR{{Rs^YFK^-`0@pgDQ>O<$Ha^jl{g&N*+;{E z4)Fe!JSN&R=3{Q&rj|Pm3GKzCRxzFFxD4~|b5x;-d#kW?;}42<ez!g`pWvsDHA{&t zZ7i<jj%D7`l{-hUr?0^88{AvL7N0Dr$o^N(halJ3wiEbrPxNSQyrU1w%3F>qzO8ej z=q)9Xw(}l$7YVU5xACn#o*_e(8BR2=-!`5{$#DD&@r9S4b1X9tA%^B|6rSf5So{w0 zl$YQ}jdk|7-k_4EKc#(vWiFAZY13F-S}bB#+~vOU6lwOl4Xn|Lt+1-wQ3eZQl&Drp z=%3uZT;0BB#<$-C{vxiTBev70ous$|VuOTH+|`Q@fgU)9E7>lsZe#u7be9>)?SWrv z&1K<>JC?Y$ghJ8+HkQup)oY`sEMMvRaz_d#<t2t#k3m&VjcLBk4qnAI&o_T9kCANt z0r>jn#vN+qWqDOe8-dT`SkZh6_?@U-ODwuf!V;ySaG1+i+NpV<UFkn%g$!le%nVlt z9+b;@v<q3S?e1;mWoE%(xe7j%<%g`A=YQ95jH$_KCa!#6rhd)85E=gfwPblb*1$lK z=V=G2tt)SUo;<m@d9Do6xMHlzm@V&LYr~^>Vbk{!e(4pR%8WC5RSRVBuA8X<nqhA+ zZysR`b4k&!e|6{%6jqXz?dW`4sQ%5~F&d$U*(G+BGBS8yaw?2}0rl-V?&8||^|!`D z1u^x_eYCCNdzF@E((@y^K-+M7^c7!EweY5)s>$}v9yQ3=GZ-zA?@CmwIQA2T4rR+N zJ70I)`4ZRQM~=36rrt^7nC*nJg;b=6_HOaqNhBJCptGUI<lqDEUtnq$It7%%-gps} z2KC%H8KzIEXwzGSw6RxaeXbmI0+gxL(L{2E6)$<8A)ndP#sg0X;x{OvV{mX3)jdbx zhlu<>i+N_*^Vmf!#j-Q(E9>=b9%+uAbf~tKEFU;Is%oAEiuMSOn;ZE-r6HFqnrejN z-#aEs6KN-8e4z)x&k_Y_+`eT@nPgmnk7~}B;IED+NaoUl%2r&HjiiBJV*Rth(qC+K zi*fmb6~GzoR<Cq#4Bc$9vVz^WbGkAVk6KQhNxp8SP73mT-nQy|e;4fI<8;%-)%0$X zJmz<KS8xNhLwoQu#kUqqaU&Uklrwp1LC3XyeA<79;*MQ9=l6-_oy^jFqO+dsK#5W- zJ4h1|v#v&Sil<I)f7XQBoTJTqU-Uj&AG7y}B(!Ow6GpA_fhWv;>k=P;{xQ@puM<kt z8H8{ZX$iqr^a8%cw4Tl^JK0;v<$S{tBLh9^lYeL0Ar`i_Xl9puf<*^8?Zr7!t$%-D zgeh*M^gc(E_HEbiA%<3(Q4|1v^LF-k?oDXv{{XY^iY2`V?N0E*L34tH3i{UHMABl? z%u-t0fr82-7|R;ixA5kQ*1u=JxVPpo843VvK1z?`=n|t!r0*v0x$*?Rv%iUnV{39z z3xbWiaXz(^FYL+VJ3UU~I~$oo+)2Jhk$09J)%MkvlcGZjfo<*hY+xw->9_huj}?Tn z&TWvdNnL>aF;uD6c9rz}%@sKEx6Id){{Vt~G=FD*6^SRiyu6-9&N*FyML~1>KKO#h z<U+UdyGqK-AwoiDu&=CUTXuVmRuLGrErLqq995WS)915QjvHmi%t=9-BSx#2w9``+ zN)9gaZ`b<N`A1Uyo;B?@2`!BG23A9{%J9r<Do@$pT!I+B%Vl>v=lv{hI8uG<>%0E| z5ZisIJa;zE#{ox@IX_y2YPQJ>L2KlPk;#9Ma%)Lbt$+AoI8ggd>*{>1Vf!`fW)LTW zc+|;^4C57Lzh@5;wEqBS)8v04K4uIFecsJqPz_e;$CV^-1?!YiR%6s+wTz4TZKVY6 z#A|{*vM5oj_JKx%yNsW1r^?ZO&2z(I*Al(TTr&|TEs{-7AMEj~S;j0GCE5sPC5R{S zucb9F7GBxSEP7>>A~xE<vIfWJRquR9c_q_LED_DQ0XriCo1<QL=KTtlOe|Wp?!8X~ zv;Cj-$=2d8u{?NTvul<uQ77#G0Iu9>0_Re+k}(ccmW<`c*1n31Tf352#1@FC6tl+U z3{t;{*gQ=u#$h=dK^ds_byeR`wjMt8rR)7z`NH?$E})GXLu+#FAukMrCuyf!{>(Bo zZ>rwf&d#I>UPL3GYWikB5ZcQkLvLdeMxd#gvCe63wVfmEuD1pz3HP?1zLiQfm6$lv zoVAw6%Ts(2y^3iij>=Y8&JZdR8$Bvd_))hPk+e7VmkBJc9py&a6K`x+(X#l9NsUOJ z$sRRKmjDiXR1s>LY_WOJTBOEQE#+~MO-7~DWnPn4az1WvfcnI@5=8R9*@?=#5*+%E zdY4N0BX?xN6^?XJen%j;;a@_xifz>)ON$tWP6DzFkEJY{!m`aQws9SU<WYdxJu6oV zy2Q)<onMk#o&di9F6Vh9NLf+&0p`GBJ*n0o049nFt{&X1vpC-9I|}xpsU#QaCH0zl zXfnn6=C5fUAddR#G`7=`V`9$6N66#7E=k?CV<$$+?$5d4_J6az!|HQtP+l~GNeF1> z7*GK1OMCDE<F@-$%tDX35c|8$d$ihxrQOHcBJ!j$x!kd@%TlbGblP8+epG<wWo&2g ztehmQ@BM$7qEJb+&zz+ADX3}Jvd?c~jS~=d?BJ8uzUBRgJS_)?{{Uwj8$$!5&#21D z3Y-N!`qzv90BPtmKJpPFQe<p^Fa>=9`!?M^t?;7O{{YW+wvzT&w=2_csI71jP{eQF z?>D6v&ZU3A?=EDw`Bw260<Hrg&Q5#QW$a|iVOJ{=2XW6z)G2Qzqg&feJeXgV2d;aX z%e)TFBgY^_0}QU*=Dv>Hs?j<<=PqZr_0Y)GzjVG@N<M6bBb~;pco54k#2qCq)RHA8 zakzp$m1|g5g3T@jf>RmJ0m1w!zYQZdpAa<v045eh^Nh1La?8bHq|&q1nM;<U<~@e$ z{@3knmeCb$%nP{Wn*4$P0D}H&uvzH(V`_xS=J>KA5nHQ{mHPF1rKa-M@;8gm+NFjG z1oK~&fACdLfXng!0ORL|JQI55^vL{O=U$&QDhSkb^{*#BjGh)rE5_>nM|J_!b=pf? zHQS-hf59@o9Qd2Zz7m&S)hr%Md!kLMvXa0Kr_#Q`)~>t{@Sega)HMiRNaD*O0I)ul z=l7ow{4e`Dd_1!Fd+>)v5Zl{ZeV!|*ap}*!c$bKLZLN5gS?~2Li<WJNcbmeK?Ots- zN0*+X_kT0aty&Oqr%ij`f985O#DCh~Thv}%C&K7$t>Y&KFPN}BYsI`ttLr`?)kVzu zn-*W+u$2778pXSL?by#8a!TTD&9(mRb{-V)l>RDZcURv0061bRYLbGFEiJzjmT;?E z-o#4&TNr5aYO)<FIA472k1<aN6?;bbX{_qHgm#4<c1OqnboQ@e@CWSqs%uLH#nQAe zqkZW{(ht3QbUqLGaqz)s)HO40CCbCQXP=%&dQp!nc4n#)lfN(d9&hl!_IlLy8`qy! zxALvV2rhV9^xMnNhW`Kx^!B)slH%iNj3~x83gA3(`$)pJvs-v{c@Z-Cit+v24%x38 z@sGqCtzKB?8jDG|G>*ZyVD_p}{{Wwl{LE@iQhws*lIfyI_5T2gAGD3^kc%A}<!s}1 zDoQss;+`z{o;4j+qqw<wgwdQZm%q}vjZa;@)I7U8s0ouMRh&t~52a>lUK(q=wVGSk zW4N*qxW;M~Nb_>TYXs$5aQ2mTzf1l_``trVx}G_%Ri#ijfLk~on5S6j5?tM*St&=D zk@D~d9qXa+&w(!WJyIKZl1s^RwPR3u74H842)|^_O8)@Mzwte?+e0vQ5h=?IbUwA5 zn{iR-Qr7W;)&BrrGs^xOd^Fef*+jOs!gh~tQbpW1XPj5N_zU)VO*>E*-Y961uxE&5 za8F}h{gi(VJ`HHgV-2)^WEp7!{O-h#`L8eWm&ZA;TIMYZ+{9IPmVT@W=qpG<E!zJ8 zGe=L8-mdlNk4u|b@PC4|lN>=A#DO41>AafzCrM!b7SYyQU9t@_Ii;D8T&Tt?^4tCr zYtImBkXikypU=9DVqY^mT(IPd{YcZc!{Ln@#&j|__D#GD!_+9|y=)5jlHA5MQ*JLr z`WoI8gv;X#3vq5_XOu89o&fc%pW0H}N^goj8qv1LaeZ^IKvknmq-&Ahw)_K$J|XEZ za2qhnQL;t~p4H9#PSh+sL;FeTwt-R@Vb)?QNFai(+O)(r=`+6ux!k!|_1ygb0RI4j zk=@#ApYT{uiI*w}n%ls7HKcF9JBr813;k>5cG0xkO<woy8gMd6cGn(jKI4*k80}wB zf5Ac4*3<q9x$$#Wwv0(4cy~;Va@Zlvc{TEso*^21ml9sce$dx%JB2&Q=Yg8|S1NOJ zl7DVV`u0AaifO4^q<<k{(k*AaojimxG0R7SzbNgRw{fRw>E+uSVFnPp#UD@&WB&lc zLW1rXu5YAeyJmAM5D3R=W~JhNIys$e+EFM?!f6I$Y<A6YINhkNx_@1dS-Ot=@ALk? zW|-2n_O}+Y+eaj7!Gkm5f$dI`+SV6)iQ$WG(Y76dh(5K0FN;98bq=AXA;#G9yi*s% zx7HSkcXw*e*Dr`<#@?MMQc_A%^VH5>(oM<t>-}8ln!tIcdz+lVpcafK&8Oa;ZS>e= zxRwc_Se7v>d5wU?`_~zD;+;cLoLVwU^2;ahLNMSDT3utt5sSIBTfMSGA_K?^mg!CV z+V@%qHALlq!=cmKMPZj~SYc^=z{j}9)}<PTnAa_J6wW-c<q)g#<n^u_N1IZ&`6bgN zhE>dwfaC(bs%<Lj{{U3H4Gehmq|3&{fEu%%?c`susU^>QosOxj+i8#nwJh@xPS$O> z6w#{Kn@H{&VZHu#kFMJ0HOswS%f;kz6yi4CMhNybT{R6uPjd`bBQkT7_p#|%%A!p- z{eNA~zpL`Y+RJ}m>c?kqtJwx=<ieF)vD?WM=e)AJhCA4%4H#^w&IztP^&MV2+3$8d zL1Fn3*M>E%;aMdM8|qL<cc^D69zv5zDNR{_U+_$7Q<P!t537IRo^aS7ANYe>hH!2d zObTP1W;Mv**Mr9u#NV{<kFGDIiP3dn#^Njik?1SlKj5D270f<7O;w9#-B#XZk7ET@ zCl&Mm0E4vqckwrgwJkCX3!Q#nGE1h+jq_vjt{l#UWm^q*uQPi36PB)cR;wM-T3>xm zmd-fm)NY};o?D<<oCY{6o}D{VBv!{wh9`g%6BNSo+|=l8Y_G~OQ6Y?^jkJvVVAEX5 z6j43h!l+VmS#h6AinQ$9Bzi8SxwK?$V_|a~RyTJ^<fNNb5MlCZEVK<dUg8^B1fWbp zqwsP%^G$$DB#_@j<Vt+}?py;`VoQXc=HX7`=5CCl@y}jr{gvYxFSyOraqa&A1goj; zT|(U3->a1*G6RyHn5b^ymOF^9KG1Mj#!2OadeoM-e`eH5O(OZy=3Y-A3XVALr@2{S zCF5+(y_cZ|l&B>q&FiQydiP{kR<{u|?pKjlCnfge`%+m&Z!PLiBy!^e5*E(W=~ix{ zX|)fwZ*7E@@(JJ{T9PG(;>gQngKDvoR8;DH=|Tx5C#d5llIDNpT(N`gb~jp#Y8kDj zAs?Xt^{SFW)9n{_!Q*4TQxWGqw;FebrkH3~2J#g|yO=w)Zb%qB3N8}n+A(DctE`h0 zpPjrOgB6;i88)xBgOsF{o!`&=gtKWau9zzYX53hLo3al|anbFy7~@O$M6$;w<$dP^ z+M&}$kPf$&s|5Cv?Ul2*GWMx-`?y4E&1Lf$or^}q05ienr`WjY{vk@IBj;NDwifQ$ zZAbQWF~ys?u)b^XF;lI-+@3e`<b_W1gDP>_t6D9u%W}}9vn0*sp<;UXIjfM}3rjbZ zm&yh}9TSnytrMdpoR@!>{19`Cw4%vpypG|#xitA*(+sZX3(YLva#%b|5k<zvkV}D+ zRbKk>e|U)Z4K(2GLBgQ*r$=pUBe;>tPqj(7#!lr^>yFj0DvEa7zn@|z+FZ@uKIAQC zFCHkaCS>yP5R43w+!}SPR?jQV4a1|wl*^oho~ELb_SOfE)-N(bjfWy4deoK=YO>7s z_l@N;vcH&s;EzF37<*58`ws2L<JD|7-qIPBq8H|2aW|9)ZYn3yB(<JXzs>T#SR*e_ zissT;A&%8uO}ZHX3613YQ)IsK?gPyl{OnnJs|vZ&bAwjV^d?R7Tfg7=m+tJ@?3G07 z_`qnlV1_=m2ZybmThV4Dc^o+mvM$t7>}ppaSgh$TWG$E2xy3^T#P)X?GRjQ3kg-jp zr=>Mc7yaK&zfneR3zkn`nGNigP+r|wc@QK^CU>h6Nj|h(!4!H!NpEN!qj12Z<E=$- zY~)pu;)*{z<zibUn>8#yX|S48Bm}geMQ%qcoOi7yhK*Sz+ix=ERqE5T-^`dzd3nrh z9ElWI@|EzX-mPA0GjH-GjSrU+$oqzHezi+R`%U8py0AEnO8}sN#C6Rsp?`L%HPXQt zhGT-5<N?~Ucxr8@QEId$)OY27)BgZ4ywxuZziUfy=xxa)94PuzEhL^OW98CGIWi7L zJ?UnaYim?XXx2#NgD#}um+4R>`jgwnhT1tKblgzLcPJmHO0`Bjp5p$zhbKA3E~U4; zX`w4AEHkx^I5g5OVuY;Ip;mIl2Eik?aaAnfy_A^k?ujzwm1BipYE@yll7N2i%OG=? z^{J^%S;9XF%NaPkX=411b1afcEyQVVAPT#BhWb?2w=%wwl$FegTYm1WK9xhwYbz8t ziu<Jbl<mPJdsUlDfpHvBLXyN~kdHBj5500uhdjBZXJexBwVtm2b|n{=F)VRg+sGHo zGY15MPC6R7h~&~)rjd-n6tV`$9rK!Qt7WKMTfrr=s8%FOWSbu-_Nax$#0s#&&@YmA zxs5mO2h`Qm!@^gJTAE64b<@A-XGbu#wGu@nYSKBDJ;xil=B&byO&oAvNU0pM@6PV0 z>qe;*mp0Em=FrZBKu8!F^c7k=J-S3N081>GmGkoh*jBKiP030<NalYU{VYf!Pwhvy z2!I4KyNNj<bf}4fBzfZ!u<D>3h9vsb=pmAHdyPA51vc#XJHHy6PSTf9y|mM#BlnE> zXZx#<YR}kOSN#ZeB$m6_=$GNXwW4Ye%{1{#_Pa&8ljjUkNa^iVb!!+RyDM@2j|!<` z$T=iXFZDe(?c`~i;H-X0*vAcnz~+s2P<yor{ht2-DF$utfOigpx+>72%XmFkm*CEN zb!xdJ*1lSPW)-wocQ)}`{j<+l%Q)U}c|26>4eEK8j19P#lIH|Cr`#Cgm7<MRMnpc# z_|&g*ml6G%HrhZjsa4KviQ#F^E7~tb{%2IG+B~&3`Tji$Ph%-{4S2;%Z46)K{Hm43 zj;6QfYZ*|he5F_q&a|P@?^-ldbPFt-l~`vrso|{$PMcd>O-zN049&FR^YpD~;i9IX zt=mC4^2eU{?s6AC7nf9?Np%Ss1aTP}Lih|vKr0tj@T*+Lw-H3q6iv;)1T}Vgt(l5V zM%}L+?c{B-tBt1s^c6~7KTMFs>7`DAmj`>24l8<iXBv{`dfM0j0ERkYT2%fmw_S{j zeG>Jw@3u6_X%(`9io}A?*oy8x3w&nr=fIDMOYs}S7nbsBt!iP7r3&R(j04SJ-rU0# zypmlV>Z%F1Cm;ddtDQ$lxV4m9&20ni1s+AoAB}X;e^;8C*ZS|!^6@FxjJe&s*1o@a zg{xm`ekJjCv*JG*c!}@zT|)WpuI7=|P&@O0qtc|(bjYH1d*oZ4i;*TVx9MKj@q@$P zu@}OB*^fbk!8e!QBKViCUW?6E>A^5t=cx3+uO+gz(zOOyV12~4NspoRsl-y8XDGL> z@3Ox|{WDA!DmCc4J6lbBy$UuOWx-Z>%xVIe6;4R&TK6`y`6b?R%HS8l`BZyT7eSGo z^%JY@w}_a$gyZuyV)o`QDhpd1CU+nS8BRbRrnwy%tJJZhsVP}T?f(E>OBP#S9$(EI zY1@ELy*eeid)=ybKt^%9B${rH=0<ofETjOE1HJ&MtfIO^jvHt{))K1HHbFJXh@#vi z_IBt*=T;Ksmi~Y6{{WHtGyebv{@P8a{3`f^X62oK;U<n$k((gp8-ZUbf5BOGj|#>A z00kuRE#Lfo-=7XcU;{>WTQD5wj!CbtKj4Di9JtcH1o-Dryhnwuyj9AuBW}bzgWs)u z7yDMluY61WyZ$Ci;k`do)g+4ieWvCt%7_qj$?5o4(9JqoRuY}HZ8WXA`R(iX9tIv! zRqE7g{{WT#XPXE67=;{=t%W8&2jx=QqFdWZC+{QzW0en+`BN5XZ(Q5DxRN$LV#+!Y zYR#00%<-XUr2}z8&Oqyms*$|8@44#pOP5cX4xv0(@keIHKPbzG4hG|q-_n6%i>8>< zP8RV;lo6|f+;<;ZSgfSFGCjH^o_l68{eHNsx7PP-6e}!1F^#ellbXdtM&sPup6x`+ z)67%bZHi`@-Lv!ZR~@QY=P|&u#0v&;81gypDoZOiM-wZQQ5lzGrqi5L?KJy)ODNLi zTWQ?xJj0xyN>Qfm%@!4)?(X&b$6Py1Qb;W&2#4j2$&ebIhrYLBZXHhF-vPh`cFiMO zSpA747fidx^xu-oed(s!Sm1YA-PxBUX8`-wvW3?=+{)=}m)~)=SEllFDcY!ww|G2? z)YI*3ZWZnl?8M$vHZhF*)*ZA`eWq9=IE!xJ_{h#VHFjK0VunkWC}AL#;J4DTj2|*h z?o7F(r(eV-@&Yta>IPgNHHp9<ol%chlIB9w&c--o$l6I$R_!h9qS7A4?R?pr<wuZU z0qANSJ|$_LXR&C2J8++Kioa%^*{+KG`oHVYd(Abvi3*84*ZbSBR2r`GX{O`%YJyak z7-h)ky<gSzZBFLa4N5Z^fu$LYaUjRFQ@ODFFnhUoH_y0@zcPxrCa27ut|v6ol3#e} zB!WvxUUYAoZe)#$t_QV1vV^+(cAqS34nBO0zG~vxT(YI5x|dgPF|s(tM{{b+bP_ls z3=UW$VB)oQvzqJB%bVTNkAmgA;b{%5u%eE;0METm7M*OfeW9dqNybU)Xo4GA7{h4O z&mjgv^0riCu&E<SrJgkr7DAhk$VSuktvPw5oHn-q0M_PS^OlEG@MbM8*W=HD<<;(G zWnFqRu_OXB$mNH6{ag6QrQTkAdpAvYAzAdBd2N*l+7Kwu75P{2AHrTC@mK97;JpjO z`YY;ET<UR#iYWJaY8x!s?Ztk<d}&L4FUB?&F<LZJHkgnboacZsv{$i_e->36(Mf(^ z*5}UV5{tyjoloWJ`u_l3S=@X$mRqeV-B#sYcI_*kab22#qiC*Mz*ctl8eNsDC<P(_ zupF^Irn;K+vl(9y>~Y{>D5*KULW(G^6z+N*LaNIg&8eeoZJSBmo-^rIsj@PnnIHIh zs*IX<GpP=BX3Xt=1$&4kjW<e3KndX22jXoe@(oV^09c9v8MB3DE9Pf$&uZ^A*LRHy z<N`7dIvU~pTVtvJ0B)q388X?+Z;R!}CH=jtvWk3%1|yQJ-71IV{{Z|QQRBP+01^1V z;19z)cy3~b$5w9@Ufl*!06TCMf#meB&A$`K^Q!rmcG5JSWRZ(;h9uYMcl;dS-YAdu zhxjuU--mRG^!wc^;#e~|Te#gu0Nc=t{OH#0u99f2r;!!lebI=QW->V*_4CxE>t?vi zt8&RNJ6nB!9sN&77eb<j5=}OhJF9iqSFdipj&kZ4o)wNvffvrcVxFh2DxAjN3xLl% z`N9&hIbugX)vtOdl4$JV(*a~`%`20J6+-GIy9k%_vi+VnZ`}dO&lTGlw(s3NdmK`z zn{8;lH2rrdHN1qZ&nTUg`K<3B0;8HQGFA(4B68f0qnfiL+Q$pY=QvrICzYN)wOQ8e z+NIK4#uewsn&+GkK}wwD&S_rlz5f8OQBu_*xoEt|6{7jW1|?WyxTLg8o2&V6Wo3b$ z-*{c%$C1#AY_}Hk0T~Ov;A|kLInS*cg`5Iuq->+6*tWA_aK3`7kGlT=uB9f@YW|kj zU(FHAeDg-Hc&ySsV+^u<py#eCW_xMUSNl2{5;G?AlwLh)_Hre?$Tsk$+ifn{k8Z=- zpuJ?a1nMyD+%m|m)E>sACmHi6qfh1NT)C1<Rru-F+leLIHxYu??sEuuO}piHA8MA* zV=bla#9>FxpD~J(N3f=(RzmJOgte9<Dg=bb_dZ{0L2mb@lIfl041A!c01DDd5lS)K zc9!em>EH3t{R7tZEn7=x@f<j}4B`(dqsIrmQr8~eS+qpDzGy&@ND4mP<a3Pr8rHrs zYVb>^T|~|u`SU(taa3>gJ8Mk^u4aXrJ9plEwcYp%_*$=7OZsQ&sZ&WgE5$twn>l8@ zv6lY;dpDNNk1OW`J&3MzSkmOYnJz4~Cx%GDX`v|q9zo&0wOjD6gHRTld&6_3N@9w5 z{MkUrlRxg(HmhvcU|icnJIK=K&Ijf`*sf}lbzD}@&t?60H;fvc+q&td&(O)cyq4=t znr3jNm`Ama;m5UNYSG*Y5nkpP8fjE0MIiB8b3t)wbsf~VD;SbrF6!Oa3`cBMW~X%| zs_eRa8`k4`G>w*Fo{D{Io%3_@w`bR?IwcuDhimK5#nvvB<(-oBGRG&AB21VE=}n3y zXp-)6BkXWEZ;%ed0;JU~E>ha<&AP(UOsu|p2Ho^EQYMNkmACsq{pkWy<lrA+T@ag` zd1AHf$WU>2yVJdituFN_W|nJM;b`Jk7-NCYr@bx27Xb{VOo<@w0pyBil<{g1GhHzj z_V<Mm_7&au_oC{}MxAjJ`HO8G+Oti+=L0=Hm9(kzN0vH1#ZQ@}_x*i(k=pU5i&Zig z$M0osK5XzRXj1CtFyV^6cFNKnpbu(g#lD>d>~}FiD@G*}Z9+k8dsX+@E}#CFYrSq9 z?JU1@oZ`9SoKt+=M+<yyYxjNM)ytCH>Q{2ae6@CsL~AG`X<tgYVfF|$Xd#DHed!tV zk)tIKrcF_jQDL&~3&>FxA27$BPC5)$q*pfT!gv`>_faD4Xvizv;8$HLiA~Ob@c#fJ ztq8-({Pq0Aw$x*{hBJ9<z2x&8BxehdYo_o|iW^1ozl3~Lw@(~#>(C)ArbS%0Ad2R# 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%0Am*LN9D*{=7<t_ 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%0De%{%T(_;m59L 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%0AlNsokT0q7SJi}nK9`F|ebki(sFS%0~J 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%0Dt_M>pKO6ty- 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%0D@-xTl;*l%N!_%KR9`+anp>~p-KM$1+Tc)rB4zs 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%0Dckaw-Vf2cpk)g$L3EYZLZ3L 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 COiz~p literal 0 HcmV?d00001 diff --git a/user_guide/changelog.html b/user_guide/changelog.html new file mode 100755 index 0000000..e97b472 --- /dev/null +++ b/user_guide/changelog.html @@ -0,0 +1,1525 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<style type='text/css' media='all'>@import url('userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='userguide.css' /> + +<script type="text/javascript" src="./nav/nav.js"></script> +<script type="text/javascript" src="./nav/prototype.lite.js"></script> +<script type="text/javascript" src="./nav/moo.fx.js"></script> +<script type="text/javascript" src="./nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Change Log : CodeIgniter User Guide</title> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('./');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="./images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="./toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Change Log +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Change Log</h1> + +<h2>Version 2.1.4</h2> +<p>Release Date: July 8, 2013</p> + + +<ul> + <li>General Changes + <ul> + <li>Improved security in <kbd>xss_clean()</kbd>.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.1.4:</h3> +<ul> + <li>Fixed a bug (#1936) - <a href="libraries/migration.html">Migrations Library</a> method <samp>latest()</samp> had a typo when retrieving language values.</li> + <li>Fixed a bug (#2021) - <a href="libraries/migration.html">Migrations Library</a> configuration file was mistakenly using Windows style line feeds.</li> + <li>Fixed a bug (#1273) - <a href="database/active_record.html">Active Record</a> method <samp>set_update_batch()</samp> was using the incorrect variables and would cause an error.</li> + <li>Fixed a bug (#2337) - <a href="libraries/email.html">Email Library</a> method <samp>print_debugger()</samp> was not using <samp>htmlspecialchars()</samp> when being shown in the browser.</li> +</ul> + + +<h2>Version 2.1.3</h2> +<p>Release Date: October 8, 2012</p> + +<h3>Bug fixes for 2.1.3:</h3> +<ul> + <li>Fixed a bug (#1543) - <a href="libraries/caching.html#file">File-based Caching</a> method <samp>get_metadata()</samp> used a non-existent array key to look for the TTL value.</li> + <li>Fixed a bug (#1314) - <a href="libraries/session.html">Session Library</a> method <samp>sess_destroy()</samp> didn't destroy the userdata array.</li> + <li>Fixed a bug where the <a href="libraries/profiler.html">Profiler Library</a> issued an E_WARNING error if <a href="libraries/session.html">Session</a> userdata contains objects.</li> + <li>Fixed a bug (#1699) - <a href="libraries/migration.html">Migration Library</a> ignored the <samp>$config['migration_path']</samp> setting.</li> + <li>Fixed a bug (#227) - <a href="libraries/input.html">Input Library</a> allowed unconditional spoofing of HTTP clients' IP addresses through the HTTP_CLIENT_IP header.</li> + <li>Fixed a bug (#907) - <a href="libraries/input.html">Input Library</a> ignored HTTP_X_CLUSTER_CLIENT_IP and HTTP_X_CLIENT_IP headers when checking for proxies.</li> + <li>Fixed a bug (#940) - <samp>csrf_verify()</samp> used to set the CSRF cookie while processing a POST request with no actual POST data, which resulted in validating a request that should be considered invalid.</li> + <li>Fixed a bug in the <a href="libraries/security.html">Security Library</a> where a CSRF cookie was created even if <samp>$config['csrf_protection']</samp> is set tot FALSE.</li> + <li>Fixed a bug (#1715) - <a href="libraries/input.html">Input Library</a> triggered <samp>csrf_verify()</samp> on CLI requests.</li> +</ul> + +<h2>Version 2.1.2</h2> +<p>Release Date: June 29, 2012</p> + +<ul> + <li>General Changes + <ul> + <li>Improved security in <kbd>xss_clean()</kbd>.</li> + </ul> + </li> +</ul> + +<h2>Version 2.1.1</h2> +<p>Release Date: June 12, 2012</p> + +<ul> + <li>General Changes + <ul> + <li>Fixed support for docx, xlsx files in mimes.php.</li> + </ul> + </li> + <li>Libraries + <ul> + <li>Further improved MIME type detection in the <a href="libraries/file_uploading.html">File Uploading Library</a>.</li> + <li>Added support for IPv6 to the <a href="libraries/input.html">Input Library</a>.</li> + <li>Added support for the IP format parameter to the <a href="libraries/form_validation.html">Form Validation Library</a>.</li> + </ul> + </li> + <li>Helpers + <ul> + <li><samp>url_title()</samp> performance and output improved. You can now use any string as the word delimiter. Backwards compatible with 'dash' or 'underscore' as words delimiters.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.1.1</h3> +<ul> + <li>Fixed a bug (#697) - A wrong array key was used in the Upload library to check for mime-types.</li> + <li>Fixed a bug - form_open() compared $action against site_url() instead of base_url()</li> + <li>Fixed a bug - CI_Upload::_file_mime_type() could've failed if mime_content_type() is used for the detection and returns FALSE.</li> + <li>Fixed a bug (#538) - Windows paths were ignored when using the <a href="libraries/image_lib.html">Image Manipulation Class</a> to create a new file.</li> + <li>Fixed a bug - When database caching was enabled, $this->db->query() checked the cache before binding variables which resulted in cached queries never being found.</li> + <li>Fixed a bug - CSRF cookie value was allowed to be any (non-empty) string before being written to the output, making code injection a risk.</li> + <li>Fixed a bug (#726) - PDO put a 'dbname' argument in it's connection string regardless of the database platform in use, which made it impossible to use SQLite.</li> + <li>Fixed a bug - CI_DB_pdo_result::num_rows() was not returning properly value with SELECT queries, cause it was relying on PDOStatement::rowCount().</li> + <li>Fixed a bug (#1059) - CI_Image_lib::clear() was not correctly clearing all necessary object properties, namely width and height.</li> +</ul> + + +<h2>Version 2.1.0</h2> +<p>Release Date: November 14, 2011</p> + +<ul> + <li>General Changes + <ul> + <li>Fixed a potential parameter injection flaw in the <a href="libraries/security.html">Security Library</a> and strengthened the XSS filter for HTML5 vulnerabilites.</li> + <li>Callback validation rules can now accept parameters like any other validation rule.</li> + <li>Added html_escape() to the <a href="general/common_functions.html">Common functions</a> to escape HTML output for preventing XSS easliy.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Added <samp>increment_string()</samp> to <a href="helpers/string_helper.html">String Helper</a> to turn "foo" into "foo-1" or "foo-1" into "foo-2".</li> + <li>Altered form helper - made action on form_open_multipart helper function call optional. Fixes (#65)</li> + <li><samp>url_title()</samp> will now trim extra dashes from beginning and end.</li> + <li>Improved speed of <a href="helpers/string_helper.html">String Helper</a>'s <b>random_string()</b> method</li> + </ul> + </li> + <li>Database + <ul> + <li>Added a <a href="http://www.cubrid.org/" target="_blank">CUBRID</a> driver to the <a href="libraries/database.html">Database driver</a>. Thanks to the CUBRID team for supplying this patch.</li> + <li>Added a <a href="http://www.php.net/manual/en/intro.pdo.php" target="_blank">PDO</a> driver to the <a href="libraries/database.html">Database driver</a>.</li> + <li>Typecast limit and offset in the <a href="database/queries.html">Database driver</a> to integers to avoid possible injection.</li> + <li>Added additional option 'none' for the optional third argument for <kbd>$this->db->like()</kbd> in the <a href="database/active_record.html">Database driver</a>. + </li> + <li>Added <kbd>$this->db->insert_batch()</kbd> support to the OCI8 (Oracle) driver.</li> + </ul> + </li> + <li>Libraries + <ul> + <li>Changed <kbd>$this->cart->insert()</kbd> in the <a href="libraries/cart.html">Cart library</a> to return the Row ID if a single item was inserted successfully.</li> + <li>Added support to set an optional parameter in your callback rules of validation using the <a href="libraries/form_validation.html">Form Validation library</a>.</li> + <li>Added a <a href="libraries/migration.html">Migration library</a> to assist with applying incremental updates to your database schema.</li> + <li>Driver children can be located in any package path.</li> + <li>Added <samp>is_unique</samp> to the <a href="libraries/form_validation.html">Form Validation library</a>.</li> + <li>Added <kbd>$config['use_page_numbers']</kbd> to the <a href="libraries/pagination.html">Pagination library</a>, which enables real page numbers in the URI.</li> + <li>Added TLS and SSL Encryption for SMTP.</li> + </ul> + </li> + <li>Core + <ul> + <li>Changed private functions in <a href="libraries/cart.html">URI library</a> to protected so <kdb>MY_URI</kdb> can override them.</li> + <li>Removed <samp>CI_CORE</samp> boolean constant from CodeIgniter.php (there are no longer different Reactor and Core versions).</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.1.0</h3> +<ul> + <li>Fixed #378 Robots identified as regular browsers by the <a href="libraries/user_agent.html">User Agent class</a>.</li> + <li>If a config class was loaded first then a library with the same name is loaded, the config would be ignored.</li> + <li>Fixed a bug (Reactor #19) where 1) the 404_override route was being ignored in some cases, and 2) auto-loaded libraries were not available to the 404_override controller when a controller existed but the requested method did not.</li> + <li>Fixed a bug (Reactor #89) where MySQL export would fail if the table had hyphens or other non alphanumeric/underscore characters.</li> + <li>Fixed a bug (#200) where MySQL queries would be malformed after calling <kbd>$this->db->count_all()</kbd> then <kdb>$this->db->get()</kdb></li> + <li>Fixed bug #105 that stopped query errors from being logged unless database debugging was enabled</li> + <li>Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.</li> + <li>Fixed a bug (#150) - <samp>field_data()</samp> now correctly returns column length.</li> + <li>Fixed a bug (#8) - <samp>load_class()</samp> now looks for core classes in <samp>APPPATH</samp> first, allowing them to be replaced.</li> + <li>Fixed a bug (#24) - ODBC database driver called incorrect parent in __construct().</li> + <li>Fixed a bug (#85) - OCI8 (Oracle) database <kbd>escape_str()</kbd> function did not escape correct.</li> + <li>Fixed a bug (#344) - Using schema found in <a href="libraries/sessions.html">Saving Session Data to a Database</a>, system would throw error "user_data does not have a default value" when deleting then creating a session.</li> + <li>Fixed a bug (#112) - OCI8 (Oracle) driver didn't pass the configured database character set when connecting.</li> + <li>Fixed a bug (#182) - OCI8 (Oracle) driver used to re-execute the statement whenever num_rows() is called.</li> + <li>Fixed a bug (#82) - WHERE clause field names in the DB <kbd>update_string()</kbd> method were not escaped, resulting in failed queries in some cases.</li> + <li>Fixed a bug (#89) - Fix a variable type mismatch in DB <kbd>display_error()</kbd> where an array is expected, but a string could be set instead.</li> + <li>Fixed a bug (#467) - Suppress warnings generated from <kbd>get_magic_quotes_gpc()</kbd> (deprecated in PHP 5.4)</li> + <li>Fixed a bug (#484) - First time <kbd>_csrf_set_hash()</kbd> is called, hash is never set to the cookie (in Security.php).</li> + <li>Fixed a bug (#60) - Added <kbd>_file_mime_type()</kbd> method to the <a href="libraries/file_uploading.html">File Uploading Library</a> in order to fix a possible MIME-type injection (also fixes bug #394).</li> + <li>Fixed a bug (#537) - Support for all wav type in browser.</li> + <li>Fixed a bug (#576) - Using <kbd>ini_get()</kbd> function to detect if apc is enabled or not.</li> + <li>Fixed invalid date time format in <a href="helpers/date_helper.html">Date helper</a> and <a href="libraries/xmlrpc.html">XMLRPC library</a>.</li> +</ul> + +<h2>Version 2.0.3</h2> +<p>Release Date: August 20, 2011</p> + +<ul> + <li>Security + <ul> + <li>An improvement was made to the MySQL and MySQLi drivers to prevent exposing a potential vector for SQL injection on sites using multi-byte character sets in the database client connection. <p>An incompatibility in PHP versions &lt; 5.2.3 and MySQL &lt; 5.0.7 with <em>mysql_set_charset()</em> creates a situation where using multi-byte character sets on these environments may potentially expose a SQL injection attack vector. Latin-1, UTF-8, and other "low ASCII" character sets are unaffected on all environments.</p> <p class="critical">If you are running or considering running a multi-byte character set for your database connection, please pay close attention to the server environment you are deploying on to ensure you are not vulnerable.</p></li> + </ul> + </li> + <li>General Changes + <ul> + <li>Fixed a bug where there was a misspelling within a code comment in the index.php file.</li> + <li>Added Session Class userdata to the output profiler. Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.</li> + <li>Removed internal usage of the <samp>EXT</samp> constant.</li> + <li>Visual updates to the welcome_message view file and default error templates. Thanks to <a href="https://bitbucket.org/danijelb">danijelb</a> for the pull request.</li> + <li>Added "application/x-csv" to mimes.php.</li> + <li>Fixed a bug where <a href="libraries/email.html">Email library</a> attachments with a "." in the name would using invalid MIME-types.</li> + <li>Callback validation rules can now accept parameters like any other validation rule.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Added an optional third parameter to <samp>heading()</samp> which allows adding html attributes to the rendered heading tag.</li> + <li><kbd>form_open()</kbd> now only adds a hidden (Cross-site Reference Forgery) protection field when the form's action is internal and is set to the post method. (Reactor #165)</li> + <li>Re-worked <samp>plural()</samp> and <samp>singular()</samp> functions in the <a href="helpers/inflector_helper.html">Inflector helper</a> to support considerably more words.</li> + </ul> + </li> + <li>Libraries + <ul> + <li>Altered Session to use a longer match against the user_agent string. See upgrade notes if using database sessions.</li> + <li>Added <kbd>is_unique</kbd> to the <a href="libraries/form_validation.html">Form Validation library</a>.</li> + <li>Added <kbd>$this->db->set_dbprefix()</kbd> to the <a href="database/queries.html">Database Driver</a>.</li> + <li>Changed <kbd>$this->cart->insert()</kbd> in the <a href="libraries/cart.html">Cart Library</a> to return the Row ID if a single item was inserted successfully.</li> + <li>Added <kbd>$this->load->get_var()</kbd> to the <a href="libraries/loader.html">Loader library</a> to retrieve global vars set with <kbd>$this->load->view()</kbd> and <kbd>$this->load->vars()</kbd>.</li> + <li>Changed <kbd>$this->db->having()</kbd> to insert quotes using escape() rather than escape_str().</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.0.3</h3> +<ul> + <li>Added ENVIRONMENT to reserved constants. (Reactor #196)</li> + <li>Changed server check to ensure SCRIPT_NAME is defined. (Reactor #57)</li> + <li>Removed <samp>APPPATH.'third_party'</samp> from the packages autoloader to negate needless file stats if no packages exist or if the developer does not load any other packages by default.</li> + <li>Fixed a bug (Reactor #231) where Sessions Library database table example SQL did not contain an index on last_activity. See <a href="installation/upgrade_203.html">Upgrade Notes</a>.</li> + <li>Fixed a bug (Reactor #229) where the Sessions Library example SQL in the documentation contained incorrect SQL.</li> + <li>Fixed a bug (Core #340) where when passing in the second parameter to $this->db->select(), column names in subsequent queries would not be properly escaped.</li> + <li>Fixed issue #199 - Attributes passed as string does not include a space between it and the opening tag.</li> + <li>Fixed a bug where the method <kbd>$this->cart->total_items()</kbd> from <a href="libraries/cart.html">Cart Library</a> now returns the sum of the quantity of all items in the cart instead of your total count.</li> + <li>Fixed a bug where not setting 'null' when adding fields in db_forge for mysql and mysqli drivers would default to NULL instead of NOT NULL as the docs suggest.</li> + <li>Fixed a bug where using <kbd>$this->db->select_max()</kdb>, <kbd>$this->db->select_min()</kdb>, etc could throw notices. Thanks to w43l for the patch.</li> + <li>Replace checks for STDIN with php_sapi_name() == 'cli' which on the whole is more reliable. This should get parameters in crontab working.</li> +</ul> + +<h2>Version 2.0.2</h2> +<p>Release Date: April 7, 2011<br /> +Hg Tag: v2.0.2</p> + +<ul> + <li>General changes + <ul> + <li>The <a href="./libraries/security.html">Security library</a> was moved to the core and is now loaded automatically. Please remove your loading calls.</li> + <li>The CI_SHA class is now deprecated. All supported versions of PHP provide a <kbd>sha1()</kbd> function.</li> + <li><kbd>constants.php</kbd> will now be loaded from the environment folder if available.</li> + <li>Added language key error logging</li> + <li>Made Environment Support optional. Comment out or delete the constant to stop environment checks.</li> + <li>Added Environment Support for Hooks.</li> + <li>Added CI_ Prefix to the <a href="libraries/caching.html">Cache driver</a>.</li> + <li>Added <a href="./general/cli.html">CLI usage</a> documentation.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Removed the previously deprecated <kbd>dohash()</kbd> from the <a href="./helpers/security_helper.html">Security helper</a>; use <kbd>do_hash()</kbd> instead.</li> + <li>Changed the 'plural' function so that it doesn't ruin the captalization of your string. It also take into consideration acronyms which are all caps.</li> + </ul> + </li> + <li>Database + <ul> + <li><kbd>$this->db->count_all_results()</kbd> will now return an integer instead of a string.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.0.2</h3> +<ul> + <li>Fixed a bug (Reactor #145) where the Output Library had parse_exec_vars set to protected.</li> + <li>Fixed a bug (Reactor #80) where is_really_writable would create an empty file when on Windows or with safe_mode enabled.</li> + <li>Fixed various bugs with User Guide.</li> + <li>Added is_cli_request() method to documentation for <a href="libraries/input.html">Input class</a>.</li> + <li>Added form_validation_lang entries for <kbd>decimal</kbd>, <kbd>less_than</kbd> and <kbd>greater_than</kbd>.</li> + <li><a href="https://bitbucket.org/ellislab/codeigniter-reactor/issue/153/escape-str-bug-in-mssql-driver">Fixed issue #153</a> Escape Str Bug in MSSQL driver.</li> + <li><a href="https://bitbucket.org/ellislab/codeigniter-reactor/issue/172/bug-in-chrome-and-form_open-in-201">Fixed issue #172</a> Google Chrome 11 posts incorrectly when action is empty.</li> + +</ul> + +<h2>Version 2.0.1</h2> +<p>Release Date: March 15, 2011<br /> +Hg Tag: v2.0.1</p> + +<ul> + <li>General changes + <ul> + <li>Added <kbd>$config['cookie_secure']</kbd> to the config file to allow requiring a secure (HTTPS) in order to set cookies.</li> + <li>Added the constant <kbd>CI_CORE</kbd> to help differentiate between Core: TRUE and Reactor: FALSE.</li> + <li>Added an <kbd>ENVIRONMENT</kbd> constant in index.php, which affects PHP error reporting settings, and optionally, + which configuration files are loaded (see below). Read more on the <a href="general/environments.html">Handling Environments</a> page.</li> + <li>Added support for <a href="libraries/config.html#environments">environment-specific</a> configuration files.</li> + </ul> + </li> + <li>Libraries + <ul> + <li>Added <kbd>decimal</kbd>, <kbd>less_than</kbd> and <kbd>greater_than</kbd> rules to the <a href="libraries/form_validation.html">Form validation Class</a>.</li> + <li><a href="libraries/input.html">Input Class</a> methods <kbd>post()</kbd> and <kbd>get()</kbd> will now return a full array if the first argument is not provided.</li> + <li>Secure cookies can now be made with the <kbd>set_cookie()</kbd> helper and <a href="libraries/input.html">Input Class</a> method.</li> + <li>Added <kbd>set_content_type()</kbd> to <a href="libraries/output.html">Output Class</a> to set the output <kbd>Content-Type</kbd> HTTP header based on a MIME Type or a config/mimes.php array key.</li> + <li><a href="libraries/output.html">Output Class</a> will now support method chaining.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Changed the logic for <kbd>form_open()</kbd> in <a href="helpers/form_helper.html">Form helper</a>. If no value is passed it will submit to the current URL.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.0.1</h3> +<ul> + <li>CLI requests can now be run from any folder, not just when CD'ed next to index.php.</li> + <li>Fixed issue #41: Added audio/mp3 mime type to mp3.</li> + <li>Fixed a bug (Core #329) where the file caching driver referenced the incorrect cache directory.</li> + <li>Fixed a bug (Reactor #69) where the SHA1 library was named incorrectly.</li> +</ul> + +<h2>Version 2.0.0</h2> +<p>Release Date: January 28, 2011<br /> +Hg Tag: v2.0.0</p> + +<ul> + <li>General changes + <ul> + <li>PHP 4 support is removed. CodeIgniter now requires PHP 5.1.6.</li> + <li>Scaffolding, having been deprecated for a number of versions, has been removed.</li> + <li>Plugins have been removed, in favor of Helpers. The CAPTCHA plugin has been converted to a Helper and <a href="./helpers/captcha_helper.html">documented</a>. The JavaScript calendar plugin was removed due to the ready availability of great JavaScript calendars, particularly with jQuery.</li> + <li>Added new special Library type: <a href="./general/drivers.html">Drivers</a>.</li> + <li>Added full query-string support. See the config file for details.</li> + <li>Moved the application folder outside of the system folder.</li> + <li>Moved system/cache and system/logs directories to the application directory.</li> + <li>Added routing overrides to the main index.php file, enabling the normal routing to be overridden on a per "index" file basis.</li> + <li>Added the ability to set config values (or override config values) directly from data set in the main index.php file. This allows a single application to be used with multiple front controllers, each having its own config values.</li> + <li>Added <kbd>$config['directory_trigger']</kbd> to the config file so that a controller sub-directory can be specified when running _GET strings instead of URI segments.</li> + <li>Added ability to set "Package" paths - specific paths where the Loader and Config classes should try to look first for a requested file. This allows distribution of sub-applications with their own libraries, models, config files, etc. in a single "package" directory. See the <a href="libraries/loader.html">Loader class</a> documentation for more details.</li> + <li>In-development code is now hosted at <a href="http://bitbucket.org/ellislab/codeigniter-reactor/">BitBucket</a>.</li> + <li>Removed the deprecated Validation Class.</li> + <li>Added CI_ Prefix to all core classes.</li> + <li>Package paths can now be set in application/config/autoload.php.</li> + <li><a href="libraries/file_uploading.html">Upload library</a> file_name can now be set without an extension, the extension will be taken from the uploaded file instead of the given name.</li> + <li>In <a href="database/forge.html">Database Forge</a> the name can be omitted from $this->dbforge->modify_column()'s 2nd param if you aren't changing the name.</li> + <li><kbd>$config['base_url']</kbd> is now empty by default and will guess what it should be.</li> + <li>Enabled full Command Line Interface compatibility with <kbd>config['uri_protocol'] = 'CLI';</kbd>.</li> + </ul> + <li>Libraries + <ul> + <li>Added a <a href="libraries/caching.html">Cache driver</a> with APC, memcached, and file-based support.</li> + <li>Added <var>$prefix</var>, <var>$suffix</var> and <var>$first_url</var> properties to <a href="./libraries/pagination.html">Pagination library</a>.</li> + <li>Added the ability to suppress first, previous, next, last, and page links by setting their values to FALSE in the <a href="./libraries/pagination.html">Pagination library</a>.</li> + <li>Added <a href="./libraries/security.html">Security library</a>, which now contains the <dfn>xss_clean</dfn> function, <dfn>filename_security</dfn> function and other security related functions.</li> + <li>Added CSRF (Cross-site Reference Forgery) protection to the <a href="./libraries/security.html">Security library</a>.</li> + <li>Added <var>$parse_exec_vars</var> property to Output library.</li> + <li>Added ability to enable / disable individual sections of the <a href="general/profiling.html">Profiler</a></li> + <li>Added a wildcard option <kbd>$config['allowed_types'] = '*'</kbd> to the <a href="./libraries/file_uploading.html">File Uploading Class</a>.</li> + <li>Added an 'object' config variable to the XML-RPC Server library so that one can specify the object to look for requested methods, instead of assuming it is in the $CI superobject.</li> + <li>Added "is_object" into the list of unit tests capable of being run.</li> + <li>Table library will generate an empty cell with a blank string, or NULL value.</li> + <li>Added ability to set tag attributes for individual cells in the Table library</li> + <li>Added a <kbd>parse_string()</kbd> method to the <a href="libraries/parser.html">Parser Class</a>.</li> + <li>Added HTTP headers and Config information to the <a href="general/profiling.html">Profiler</a> output.</li> + <li>Added Chrome and Flock to the list of detectable browsers by <kbd>browser()</kbd> in the <a href="libraries/user_agent.html">User Agent Class</a>.</li> + <li>The <a href="libraries/unit_testing.html">Unit Test Class</a> now has an optional "notes" field available to it, and allows for discrete display of test result items using <kbd>$this->unit->set_test_items()</kbd>.</li> + <li>Added a <kbd>$xss_clean</kbd> class variable to the XMLRPC library, enabling control over the use of the Security library's <kbd>xss_clean()</kbd> method.</li> + <li>Added a <kbd>download()</kbd> method to the <a href="libraries/ftp.html">FTP library</a></li> + <li>Changed <kbd>do_xss_clean()</kbd> to return FALSE if the uploaded file fails XSS checks.</li> + <li>Added stripslashes() and trim()ing of double quotes from $_FILES type value to standardize input in Upload library.</li> + <li>Added a second parameter (boolean) to <kbd>$this->zip->read_dir('/path/to/directory', FALSE)</kbd> to remove the preceding trail of empty folders when creating a Zip archive. This example would contain a zip with "directory" and all of its contents.</li> + <li>Added ability in the Image Library to handle PNG transparency for resize operations when using the GD lib.</li> + <li>Modified the Session class to prevent use if no encryption key is set in the config file.</li> + <li>Added a new config item to the Session class <kbd>sess_expire_on_close</kbd> to allow sessions to auto-expire when the browser window is closed.</li> + <li>Improved performance of the Encryption library on servers where Mcrypt is available.</li> + <li>Changed the default encryption mode in the Encryption library to CBC.</li> + <li>Added an <kbd>encode_from_legacy()</kbd> method to provide a way to transition encrypted data from CodeIgniter 1.x to CodeIgniter 2.x. + Please see the <a href="./installation/upgrade_200.html">upgrade instructions</a> for details.</li> + <li>Altered Form_Validation library to allow for method chaining on <kbd>set_rules()</kbd>, <kbd>set_message()</kbd> and <kbd>set_error_delimiters()</kbd> functions.</li> + <li>Altered Email Library to allow for method chaining.</li> + <li>Added <kbd>request_headers()</kbd>, <kbd>get_request_header()</kbd> and <kbd>is_ajax_request()</kbd> to the input class.</li> + <li>Altered <a href="libraries/user_agent.html">User agent library</a> so that <kbd>is_browser()</kbd>, <kbd>is_mobile()</kbd> and <kbd>is_robot()</kbd> can optionally check for a specific browser or mobile device.</li> + <li>Altered <a href="libraries/input.html">Input library</a> so that <kbd>post()</kbd> and <kbd>get()</kbd> will return all POST and GET items (respectively) if there are no parameters passed in.</li> + </ul> + </li> + <li>Database + <ul> + <li><a href="./database/configuration.html">database configuration</a>.</li> + <li>Added <kbd>autoinit</kbd> value to <a href="./database/configuration.html">database configuration</a>.</li> + <li>Added <kbd>stricton</kbd> value to <a href="./database/configuration.html">database configuration</a>.</li> + <li>Added <kbd>database_exists()</kbd> to the <a href="database/utilities.html">Database Utilities Class</a>.</li> + <li>Semantic change to db->version() function to allow a list of exceptions for databases with functions to return version string instead of specially formed SQL queries. Currently this list only includes Oracle and SQLite.</li> + <li>Fixed a bug where driver specific table identifier protection could lead to malformed queries in the <kbd>field_data()</kbd> functions.</li> + <li>Fixed a bug where an undefined class variable was referenced in database drivers.</li> + <li>Modified the database errors to show the filename and line number of the problematic query.</li> + <li>Removed the following deprecated functions: orwhere, orlike, groupby, orhaving, orderby, getwhere.</li> + <li>Removed deprecated _drop_database() and _create_database() functions from the db utility drivers.</li> + <li>Improved dbforge create_table() function for the Postgres driver.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Added <kbd>convert_accented_characters()</kbd> function to <a href="./helpers/text_helper.html">text helper</a>.</li> + <li>Added accept-charset to the list of inserted attributes of <kbd>form_open()</kbd> in the <a href="helpers/form_helper.html">Form Helper</a>.</li> + <li>Deprecated the <kbd>dohash()</kbd> function in favour of <kbd>do_hash()</kbd> for naming consistency.</li> + <li>Non-backwards compatible change made to <kbd>get_dir_file_info()</kbd> in the <a href="helpers/file_helper.html">File Helper</a>. No longer recurses + by default so as to encourage responsible use (this function can cause server performance issues when used without caution).</li> + <li>Modified the second parameter of <kbd>directory_map()</kbd> in the <a href="helpers/directory_helper.html">Directory Helper</a> to accept an integer to specify recursion depth.</li> + <li>Modified <kbd>delete_files()</kbd> in the <a href="helpers/file_helper.html">File Helper</a> to return FALSE on failure.</li> + <li>Added an optional second parameter to <kbd>byte_format()</kbd> in the <a href="helpers/number_helper.html">Number Helper</a> to allow for decimal precision.</li> + <li>Added alpha, and sha1 string types to <kbd>random_string()</kbd> in the <a href="helpers/string_helper.html">String Helper</a>.</li> + <li>Modified <kbd>prep_url()</kbd> so as to not prepend http:// if the supplied string already has a scheme.</li> + <li>Modified <kbd>get_file_info</kbd> in the file helper, changing filectime() to filemtime() for dates.</li> + <li>Modified <kbd>smiley_js()</kbd> to add optional third parameter to return only the javascript with no script tags.</li> + <li>The <kbd>img()</kbd> function of the <a href="./helpers/html_helper.html">HTML helper</a> will now generate an empty string as an alt attribute if one is not provided.</li> + <li>If CSRF is enabled in the application config file, <kbd>form_open()</kbd> will automatically insert it as a hidden field.</li> + <li>Added <kbd>sanitize_filename()</kbd> into the <a href="./helpers/security_helper.html">Security helper</a>.</li> + <li>Added <kbd>ellipsize()</kbd> to the <a href="./helpers/text_helper.html">Text Helper</a></li> + <li>Added <kbd>elements()</kbd> to the <a href="./helpers/array_helper.html">Array Helper</a></li> + </ul> + </li> + <li>Other Changes + <ul> + <li>Added an optional second parameter to <kbd>show_404()</kbd> to disable logging.</li> + <li>Updated loader to automatically apply the sub-class prefix as an option when loading classes. Class names can be prefixed with the standard "CI_" or the same prefix as the subclass prefix, or no prefix at all.</li> + <li>Increased randomness with <kbd>is_really_writable()</kbd> to avoid file collisions when hundreds or thousands of requests occur at once.</li> + <li>Switched some DIR_WRITE_MODE constant uses to FILE_WRITE_MODE where files and not directories are being operated on.</li> + <li><kbd>get_mime_by_extension()</kbd> is now case insensitive.</li> + <li>Added "default" to the list <a href="general/reserved_names.html">Reserved Names</a>.</li> + <li>Added 'application/x-msdownload' for .exe files and ''application/x-gzip-compressed' for .tgz files to config/mimes.php.</li> + <li>Updated the output library to no longer compress output or send content-length headers if the server runs with zlib.output_compression enabled.</li> + <li>Eliminated a call to is_really_writable() on each request unless it is really needed (Output caching)</li> + <li>Documented <kbd>append_output()</kbd> in the <a href="libraries/output.html">Output Class</a>.</li> + <li>Documented a second argument in the <kbd>decode()</kbd> function for the <a href="libraries/encryption.html">Encryption Class</a>.</li> + <li>Documented db->close().</li> + <li>Updated the router to support a default route with any number of segments.</li> + <li>Moved _remove_invisible_characters() function from the <a href="libraries/security.html">Security Library</a> to <a href="general/common_functions.html">common functions.</a></li> + <li>Added audio/mpeg3 as a valid mime type for MP3.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.0.0</h3> +<ul> + <li>Fixed a bug where you could not change the User-Agent when sending email.</li> + <li>Fixed a bug where the Output class would send incorrect cached output for controllers implementing their own <dfn>_output()</dfn> method.</li> + <li>Fixed a bug where a failed query would not have a saved query execution time causing errors in the Profiler</li> + <li>Fixed a bug that was writing log entries when multiple identical helpers and plugins were loaded.</li> + <li>Fixed assorted user guide typos or examples (#10693, #8951, #7825, #8660, #7883, #6771, #10656).</li> + <li>Fixed a language key in the profiler: "profiler_no_memory_usage" to "profiler_no_memory".</li> + <li>Fixed an error in the Zip library that didn't allow downloading on PHP 4 servers.</li> + <li>Fixed a bug in the Form Validation library where fields passed as rule parameters were not being translated (#9132)</li> + <li>Modified inflector helper to properly pluralize words that end in 'ch' or 'sh'</li> + <li>Fixed a bug in xss_clean() that was not allowing hyphens in query strings of submitted URLs.</li> + <li>Fixed bugs in get_dir_file_info() and get_file_info() in the File Helper with recursion, and file paths on Windows.</li> + <li>Fixed a bug where Active Record override parameter would not let you disable Active Record if it was enabled in your database config file.</li> + <li>Fixed a bug in reduce_double_slashes() in the String Helper to properly remove duplicate leading slashes (#7585)</li> + <li>Fixed a bug in values_parsing() of the XML-RPC library which prevented NULL variables typed as 'string' from being handled properly.</li> + <li>Fixed a bug were form_open_multipart() didn't accept string attribute arguments (#10930).</li> + <li>Fixed a bug (#10470) where <kdb>get_mime_by_extension()</kbd> was case sensitive.</li> + <li>Fixed a bug where some error messages for the SQLite and Oracle drivers would not display.</li> + <li>Fixed a bug where files created with the Zip Library would result in file creation dates of 1980.</li> + <li>Fixed a bug in the Session library that would result in PHP error when attempting to store values with objects.</li> + <li>Fixed a bug where extending the Controller class would result in a fatal PHP error.</li> + <li>Fixed a PHP Strict Standards Error in the index.php file.</li> + <li>Fixed a bug where getimagesize() was being needlessly checked on non-image files in is_allowed_type().</li> + <li>Fixed a bug in the Encryption library where an empty key was not triggering an error.</li> + <li>Fixed a bug in the Email library where CC and BCC recipients were not reset when using the clear() method (#109).</li> + <li>Fixed a bug in the URL Helper where prep_url() could cause a PHP error on PHP versions &lt; 5.1.2.</li> + <li>Added a log message in core/output if the cache directory config value was not found.</li> + <li>Fixed a bug where multiple libraries could not be loaded by passing an array to load-&gt;library()</li> + <li>Fixed a bug in the html helper where too much white space was rendered between the src and alt tags in the img() function.</li> + <li>Fixed a bug in the profilers _compile_queries() function.</li> + <li>Fixed a bug in the date helper where the DATE_ISO8601 variable was returning an incorrectly formatted date string.</li> +</ul> + +<h2>Version 1.7.2</h2> +<p>Release Date: September 11, 2009<br /> +Hg Tag: v1.7.2</p> + +<ul> + <li>Libraries + <ul> + <li>Added a new <a href="libraries/cart.html">Cart Class</a>.</li> + <li>Added the ability to pass $config['file_name'] for the <a href="libraries/file_uploading.html">File Uploading Class</a> and rename the uploaded file.</li> + <li>Changed order of listed user-agents so Safari would more accurately report itself. (#6844)</li> + </ul> + </li> + <li>Database + <ul> + <li>Switched from using gettype() in escape() to is_* methods, since future PHP versions might change its output.</li> + <li>Updated all database drivers to handle arrays in escape_str()</li> + <li>Added escape_like_str() method for escaping strings to be used in LIKE conditions</li> + <li>Updated Active Record to utilize the new LIKE escaping mechanism.</li> + <li>Added reconnect() method to DB drivers to try to keep alive / reestablish a connection after a long idle.</li> + <li>Modified MSSQL driver to use mssql_get_last_message() for error messages.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Added <kbd>form_multiselect()</kbd> to the <a href="helpers/form_helper.html">Form helper</a>.</li> + <li>Modified <kbd>form_hidden()</kbd> in the <a href="helpers/form_helper.html">Form helper</a> to accept multi-dimensional arrays.</li> + <li>Modified <kbd>form_prep()</kbd> in the <a href="helpers/form_helper.html">Form helper</a> to keep track of prepped fields to avoid multiple prep/mutation from subsequent calls which can occur when using Form Validation + and form helper functions to output form fields.</li> + <li>Modified <kbd>directory_map()</kbd> in the <a href="helpers/directory_helper.html">Directory helper</a> to allow the inclusion of hidden files, and to return FALSE on failure to read directory.</li> + <li>Modified the <a href="helpers/smiley_helper.html">Smiley helper</a> to work with multiple fields and insert the smiley at the last known cursor position.</li> + </ul> + </li> + <li>General + <ul> + <li>Compatible with PHP 5.3.0</li> + <li>Modified <a href="general/errors.html">show_error()</a> to allow sending of HTTP server response codes.</li> + <li>Modified <a href="general/errors.html">show_404()</a> to send 404 status code, removing non-CGI compatible header() statement from error_404.php template.</li> + <li>Added set_status_header() to the <a href="general/common_functions.html">Common functions<a> to allow use when the Output class is unavailable.</li> + <li>Added is_php() to <a href="general/common_functions.html">Common functions</a> to facilitate PHP version comparisons.</p> + <li>Added 2 CodeIgniter "cheatsheets" (thanks to DesignFellow.com for this contribution).</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 1.7.2</h3> +<ul> + <li>Fixed assorted user guide typos or examples (#6743, #7214, #7516, #7287, #7852, #8224, #8324, #8349).</li> + <li>Fixed a bug in the Form Validation library where multiple callbacks weren't working (#6110)</li> + <li>doctype helper default value was missing a "1".</li> + <li>Fixed a bug in the language class when outputting an error for an unfound file.</li> + <li>Fixed a bug in the Calendar library where the shortname was output for "May".</li> + <li>Fixed a bug with ORIG_PATH_INFO that was allowing URIs of just a slash through.</li> + <li>Fixed a fatal error in the Oracle and ODBC drivers (#6752)</li> + <li>Fixed a bug where xml_from_result() was checking for a nonexistent method.</li> + <li>Fixed a bug where Database Forge's add_column and modify_column were not looping through when sent multiple fields.</li> + <li>Fixed a bug where the File Helper was using '/' instead of the DIRECTORY_SEPARATOR constant.</li> + <li>Fixed a bug to prevent PHP errors when attempting to use sendmail on servers that have manually disabled the PHP popen() function.</li> + <li>Fixed a bug that would cause PHP errors in XML-RPC data if the PHP data type did not match the specified XML-RPC type.</li> + <li>Fixed a bug in the XML-RPC class with parsing dateTime.iso8601 data types.</li> + <li>Fixed a case sensitive string replacement in xss_clean()</li> + <li>Fixed a bug in form_textarea() where form data was not prepped correctly.</li> + <li>Fixed a bug in form_prep() causing it to not preserve entities in the user's original input when called back into a form element</li> + <li>Fixed a bug in _protect_identifiers() where the swap prefix ($swap_pre) was not being observed.</li> + <li>Fixed a bug where the 400 status header sent with the 'disallowed URI characters' was not compatible with CGI environments.</li> + <li>Fixed a bug in the typography class where heading tags could have paragraph tags inserted when using auto_typography().</li> +</ul> + +<h2>Version 1.7.1</h2> +<p>Release Date: February 10, 2009<br /> +Hg Tag: 1.7.1</p> + +<ul> + <li>Libraries + <ul> + <li>Fixed an arbitrary script execution security flaw (#6068) in the Form Validation library (thanks to hkk)</li> + <li>Changed default current page indicator in the Pagination library to use &lt;strong&gt; instead of &lt;b&gt;</li> + <li>A "HTTP/1.1 400 Bad Request" header is now sent when disallowed characters are encountered.</li> + <li>Added &lt;big&gt;, &lt;small&gt;, &lt;q&gt;, and &lt;tt&gt; to the Typography parser's inline elements.</li> + <li>Added more accurate error reporting for the Email library when using sendmail.</li> + <li>Removed a strict type check from the <kbd>rotate()</kbd> function of the <a href="libraries/image_lib.html">Image Manipulation Class</a>.</li> + <li>Added enhanced error checking in file saving in the Image library when using the GD lib.</li> + <li>Added an additional newline between multipart email headers and the MIME message text for better compatibility with a variety of MUAs.</li> + <li>Made modest improvements to efficiency and accuracy of explode_name() in the Image lib.</li> + </ul> + </li> + <li>Database + <ul> + <li>Added where_in to the list of expected arguments received by <kbd>delete()</kbd>.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Added the ability to have optgroups in <kbd>form_dropdown()</kbd> within the <a href="helpers/form_helper.html">form helper</a>.</li> + <li>Added a doctype() function to the <a href="helpers/html_helper.html">HTML helper</a>.</li> + <li>Added ability to force lowercase for <kbd>url_title()</kbd> in the <a href="helpers/url_helper.html">URL helper</a>.</li> + <li>Changed the default "type" of <kbd>form_button()</kbd> to "button" from "submit" in the <a href="helpers/form_helper.html">form helper</a>.</li> + <li>Changed redirect() in the URL helper to allow redirections to URLs outside of the CI site.</li> + <li>Updated get_cookie() to try to fetch the cookie using the global cookie prefix if the requested cookie name doesn't exist.</li> + </ul> + </li> + <li>Other Changes + <ul> + <li>Improved security in <kbd>xss_clean()</kbd> to help prevent attacks targeting Internet Explorer.</li> + <li>Added 'application/msexcel' to config/mimes.php for .xls files.</li> + <li>Added 'proxy_ips' config item to whitelist reverse proxy servers from which to trust the HTTP_X_FORWARDED_FOR header to + to determine the visitor's IP address.</li> + <li>Improved accuracy of Upload::is_allowed_filetype() for images (#6715)</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 1.7.1</h3> +<ul> + <li>Database + <ul> + <li>Fixed a bug when doing 'random' on order_by() (#5706).</li> + <li>Fixed a bug where adding a primary key through Forge could fail (#5731).</li> + <li>Fixed a bug when using DB cache on multiple databases (#5737).</li> + <li>Fixed a bug where TRUNCATE was not considered a "write" query (#6619).</li> + <li>Fixed a bug where csv_from_result() was checking for a nonexistent method.</li> + <li>Fixed a bug _protect_identifiers() where it was improperly removing all pipe symbols from items</li> + </ul> + </li> + <li>Fixed assorted user guide typos or examples (#5998, #6093, #6259, #6339, #6432, #6521).</li> + <li>Fixed a bug in the MySQLi driver when no port is specified</li> + <li>Fixed a bug (#5702), in which the field label was not being fetched properly, when "matching" one field to another.</li> + <li>Fixed a bug in which identifers were not being escaped properly when reserved characters were used.</li> + <li>Fixed a bug with the regular expression used to protect submitted paragraph tags in auto typography.</li> + <li>Fixed a bug where double dashes within tag attributes were being converted to em dash entities.</li> + <li>Fixed a bug where double spaces within tag attributes were being converted to non-breaking space entities.</li> + <li>Fixed some accuracy issues with curly quotes in Typography::format_characters()</li> + <li>Changed a few docblock comments to reflect actual return values.</li> + <li>Fixed a bug with high ascii characters in subject and from email headers.</li> + <li>Fixed a bug in xss_clean() where whitespace following a validated character entity would not be preserved.</li> + <li>Fixed a bug where HTML comments and &lt;pre&gt; tags were being parsed in Typography::auto_typography().</li> + <li>Fixed a bug with non-breaking space cleanup in Typography::auto_typography().</li> + <li>Fixed a bug in database escaping where a compound statement (ie: SUM()) wasn't handled correctly with database prefixes.</li> + <li>Fixed a bug when an opening quote is preceded by a paragraph tag and immediately followed by another tag.</li> + <li>Fixed a bug in the Text Helper affecting some locales where word_censor() would not work on words beginning or ending with an accented character.</li> + <li>Fixed a bug in the Text Helper character limiter where the provided limit intersects the last word of the string.</li> + <li>Fixed a bug (#6342) with plural() in the Inflection helper with words ending in "y".</li> + <li>Fixed bug (#6517) where Routed URI segments returned by URI::rsegment() method were incorrect for the default controller.</li> + <li>Fixed a bug (#6706) in the Security Helper where xss_clean() was using a deprecated second argument.</li> + <li>Fixed a bug in the URL helper url_title() function where trailing periods were allowed at the end of a URL.</li> + <li>Fixed a bug (#6669) in the Email class when CRLF's are used for the newline character with headers when used with the "mail" protocol.</li> + <li>Fixed a bug (#6500) where URI::A_filter_uri() was exit()ing an error instead of using show_error().</li> + <li>Fixed a bug (#6592) in the File Helper where get_dir_file_info() where recursion was not occurring properly.</li> + <li>Tweaked Typography::auto_typography() for some edge-cases.</li> +</ul> + + +<h2>Version 1.7</h2> +<p>Release Date: October 23, 2008<br /> +Hg Tag: 1.7.0</p> + +<ul> + <li>Libraries + <ul> + <li>Added a new <a href="libraries/form_validation.html">Form Validation Class</a>. It simplifies setting rules and field names, supports arrays as field names, allows groups of validation rules to be saved in a config file, and adds some helper functions for use in view files. <strong>Please note that the old Validation class is now deprecated</strong>. We will leave it in the library folder for some time so that existing applications that use it will not break, but you are encouraged to migrate to the new version.</li> + <li>Updated the <a href="libraries/sessions.html">Sessions class</a> so that any custom data being saved gets stored to a database rather than the session cookie (assuming you are using a database to store session data), permitting much more data to be saved.</li> + <li>Added the ability to store libraries in subdirectories within either the main "libraries" or the local application "libraries" folder. Please see the <a href="libraries/loader.html">Loader class</a> for more info.</li> + <li>Added the ability to assign library objects to your own variable names when you use <kbd>$this->load->library()</kbd>. Please see the <a href="libraries/loader.html">Loader class</a> for more info.</li> + <li>Added controller class/method info to <a href="general/profiling.html">Profiler class</a> and support for multiple database connections.</li> + <li>Improved the "auto typography" feature and moved it out of the helper into its own <a href="libraries/typography.html">Typography Class</a>.</li> + <li>Improved performance and accuracy of <kbd>xss_clean()</kbd>, including reduction of false positives on image/file tests.</li> + <li>Improved <a href="./libraries/parser.html">Parser class</a> to allow multiple calls to the parse() function. The output of each is appended in the output.</li> + <li>Added <dfn>max_filename</dfn> option to set a file name length limit in the <a href="libraries/file_uploading.html">File Upload Class</a>.</li> + <li>Added <dfn>set_status_header()</dfn> function to <a href="libraries/output.html">Output class</a>.</li> + <li>Modified <a href="libraries/pagination.html">Pagination</a> class to only output the "First" link when the link for page one would not be shown.</li> + <li>Added support for mb_strlen in the <a href="libraries/form_validation.html">Form Validation</a> class so that multi-byte languages will calculate string lengths properly.</li> + </ul> + </li> + <li>Database + <ul> + <li>Improved Active Record class to allow full path column and table names: hostname.database.table.column. Also improved the alias handling.</li> + <li>Improved how table and column names are escaped and prefixed. It now honors full path names when adding prefixes and escaping.</li> + <li>Added Active Record caching feature to "update" and "delete" functions.</li> + <li>Added removal of non-printing control characters in <kbd>escape_str()</kbd> of DB drivers that do not have native PHP escaping mechanisms (mssql, oci8, odbc), to avoid potential SQL errors, and possible sources of SQL injection.</li> + <li>Added port support to MySQL, MySQLi, and MS SQL database drivers.</li> + <li>Added driver name variable in each DB driver, based on bug report #4436.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Added several new "setting" functions to the <a href="helpers/form_helper.html">Form helper</a> that allow POST data to be retrieved and set into forms. These are intended to be used on their own, or with the new <a href="libraries/form_validation.html">Form Validation Class</a>.</li> + <li>Added <kbd>current_url()</kbd> and uri_segments() to <a href="helpers/url_helper.html">URL helper</a>.</li> + <li>Altered <kbd>auto_link()</kbd> in the <a href="helpers/url_helper.html">URL helper</a> so that email addresses with "+" included will be linked.</li> + <li>Added <kbd>meta()</kbd> function to <a href="helpers/html_helper.html">HTML helper</a>.</li> + <li>Improved accuracy of calculations in <a href="helpers/number_helper.html">Number helper</a>.</li> + <li>Removed added newlines ("\n") from most form and html helper functions.</li> + <li>Tightened up validation in the <a href="helpers/date_helper.html">Date helper</a> function <kbd>human_to_unix()</kbd>, and eliminated the POSIX regex.</li> + <li>Updated <a href="helpers/date_helper.html">Date helper</a> to match the world's current time zones and offsets.</li> + <li>Modified url_title() in the <a href="helpers/url_helper.html">URL helper</a> to remove characters and digits that are part of + character entities, to allow dashes, underscores, and periods regardless of the $separator, and to allow uppercase characters.</li> + <li>Added support for arbitrary attributes in anchor_popup() of the <a href="helpers/url_helper.html">URL helper</a>.</li> + </ul> + </li> + <li>Other Changes + <ul> + <li>Added <a href="./general/styleguide.html">PHP Style Guide</a> to docs.</li> + <li>Added sanitization in <kbd>xss_clean()</kbd> for a deprecated HTML tag that could be abused in user input in Internet Explorer.</li> + <li>Added a few openxml document mime types, and an additional mobile agent to mimes.php and user_agents.php respectively.</li> + <li>Added a file lock check during caching, before trying to write to the file.</li> + <li>Modified Cookie key cleaning to unset a few troublesome key names that can be present in certain environments, preventing CI from halting execution.</li> + <li>Changed the output of the profiler to use style attribute rather than clear, and added the id "codeigniter_profiler" to the container div.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 1.7.0</h3> +<ul> + <li>Fixed bug in <kbd>xss_clean()</kbd> that could remove some desirable tag attributes.</li> + <li>Fixed assorted user guide typos or examples (#4807, #4812, #4840, #4862, #4864, #4899, #4930, #5006, #5071, #5158, #5229, #5254, #5351).</li> + <li>Fixed an edit from 1.6.3 that made the $robots array in user_agents.php go poof.</li> + <li>Fixed a bug in the <a href="libraries/email.html">Email library</a> with quoted-printable encoding improperly encoding space and tab characters.</li> + <li>Modified XSS sanitization to no longer add semicolons after &amp;[single letter], such as in M&amp;M's, B&amp;B, etc.</li> + <li>Modified XSS sanitization to no longer strip XHTML image tags of closing slashes.</li> + <li>Fixed a bug in the Session class when database sessions are used where upon session update all userdata would be errantly written to the session cookie.</li> + <li>Fixed a bug (#4536) in backups with the MySQL driver where some legacy code was causing certain characters to be double escaped.</li> + <li>Fixed a routing bug (#4661) that occurred when the default route pointed to a subfolder.</li> + <li>Fixed the spelling of "Dhaka" in the <kbd>timezone_menu()</kbd> function of the <a href="helpers/date_helper.html">Date helper.</a></li> + <li>Fixed the spelling of "raspberry" in config/smileys.php.</li> + <li>Fixed incorrect parenthesis in <kbd>form_open()</kbd> function (#5135).</li> + <li>Fixed a bug that was ignoring case when comparing controller methods (#4560).</li> + <li>Fixed a bug (#4615) that was not setting SMTP authorization settings when using the initialize function.</li> + <li>Fixed a bug in <kbd>highlight_code()</kbd> in the <a href="helpers/text_helper.html">Text helper</a> that would leave a stray &lt;/span&gt; in certain cases.</li> + <li>Fixed Oracle bug (#3306) that was preventing multiple queries in one action.</li> + <li>Fixed ODBC bug that was ignoring connection params due to its use of a constructor.</li> + <li>Fixed a DB driver bug with num_rows() that would cause an error with the Oracle driver.</li> + <li>Fixed MS SQL bug (#4915). Added brackets around database name in MS SQL driver when selecting the database, in the event that reserved characters are used in the name.</li> + <li>Fixed a DB caching bug (4718) in which the path was incorrect when no URI segments were present.</li> + <li>Fixed Image_lib class bug #4562. A path was not defined for NetPBM.</li> + <li>Fixed Image_lib class bug #4532. When cropping an image with identical height/width settings on output, a copy is made.</li> + <li>Fixed DB_driver bug (4900), in which a database error was not being logged correctly.</li> + <li>Fixed DB backup bug in which field names were not being escaped.</li> + <li>Fixed a DB Active Record caching bug in which multiple calls to cached data were not being honored.</li> + <li>Fixed a bug in the Session class that was disallowing slashes in the serialized array.</li> + <li>Fixed a Form Validation bug in which the "isset" error message was being trigged by the "required" rule.</li> + <li>Fixed a spelling error in a Loader error message.</li> + <li>Fixed a bug (5050) with IP validation with empty segments.</li> + <li>Fixed a bug in which the parser was being greedy if multiple identical sets of tags were encountered.</li> +</ul> + +<h2>Version 1.6.3</h2> +<p>Release Date: June 26, 2008<br /> +Hg Tag: v1.6.3</p> + +<p>Version 1.6.3 is a security and maintenance release and is recommended for all users.</p> +<ul> + <li>Database + <ul> + <li>Modified MySQL/MySQLi Forge class to give explicit names to keys</li> + <li>Added ability to set multiple column non-primary keys to the <a href="database/forge.html">Forge class</a></li> + <li>Added ability to set additional database config values in <a href="database/connecting.html">DSN connections</a> via the query string.</li> + </ul> + </li> + <li>Libraries + <ul> + <li>Set the mime type check in the <a href="libraries/file_uploading.html">Upload class</a> to reference the global mimes variable.</li> + <li>Added support for query strings to the <a href="libraries/pagination.html">Pagination class</a>, automatically detected or explicitly declared.</li> + <li>Added <kbd>get_post()</kbd> to the <a href="libraries/input.html">Input class</a>.</li> + <li>Documented <kbd>get()</kbd> in the <a href="libraries/input.html">Input class</a>.</li> + <li>Added the ability to automatically output language items as form labels in the <a href="libraries/language.html">Language class</a>.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Added a <a href="helpers/language_helper.html">Language helper</a>.</li> + <li>Added a <a href="helpers/number_helper.html">Number helper</a>.</li> + <li><a href="helpers/form_helper.html">Form helper</a> refactored to allow <kbd>form_open()</kbd> and <kbd>form_fieldset()</kbd> to accept arrays or strings as arguments.</li> + </ul> + </li> + <li>Other changes + <ul> + <li>Improved security in <kbd>xss_clean()</kbd>.</li> + <li>Removed an unused Router reference in <kbd>_display_cache()</kbd>.</li> + <li>Added ability to <a href="libraries/input.html">use xss_clean() to test images</a> for XSS, useful for upload security.</li> + <li>Considerably expanded list of mobile user-agents in config/user_agents.php.</li> + <li>Charset information in the userguide has been moved above title for internationalization purposes (#4614).</li> + <li>Added &quot;Using Associative Arrays In a Request Parameter&quot; example to the <a href="libraries/xmlrpc.html">XMLRPC userguide page</a>.</li> + <li>Removed maxlength and size as automatically added attributes of form_input() in the <a href="helpers/form_helper.html">form helper</a>.</li> + <li>Documented the language file use of <kbd>byte_format()</kbd> in the <a href="helpers/number_helper.html">number helper</a>.</li> + </ul> + </li> +</ul> + + +<h3>Bug fixes for 1.6.3</h3> + +<ul> + <li>Added a language key for valid_emails in validation_lang.php.</li> + <li>Amended fixes for bug (#3419) with parsing DSN database connections.</li> + <li>Moved the <kbd>_has_operators()</kbd> function (#4535) into DB_driver from DB_active_rec.</li> + <li>Fixed a syntax error in upload_lang.php.</li> + <li>Fixed a bug (#4542) with a regular expression in the Image library.</li> + <li>Fixed a bug (#4561) where <kbd>orhaving()</kbd> wasn't properly passing values.</li> + <li>Removed some unused variables from the code (#4563).</li> + <li>Fixed a bug where <kbd>having()</kbd> was not adding an = into the statement (#4568).</li> + <li>Fixed assorted user guide typos or examples (#4574, #4706).</li> + <li>Added quoted-printable headers to Email class when the multi-part override is used.</li> + <li>Fixed a double opening &lt;p&gt; tag in the index pages of each system directory.</li> +</ul> + +<h2>Version 1.6.2</h2> +<p>Release Date: May 13, 2008<br /> +Hg Tag: 1.6.2</p> +<ul> + <li>Active Record + <ul> + <li>Added the ability to prevent escaping in <kbd>having()</kbd> clauses.</li> + <li>Added <kbd>rename_table()</kbd> into <a href="./database/forge.html">DBForge</a>.</li> + <li>Fixed a bug that wasn't allowing escaping to be turned off if the value of a query was NULL.</li> + <li>DB Forge is now assigned to any models that exist after loading (#3457).</li> + </ul> + </li> + <li>Database + <ul> + <li>Added <a href="./database/transactions.html">Strict Mode</a> to database transactions.</li> + <li>Escape behaviour in where() clauses has changed; values in those with the &quot;FALSE&quot; argument are no longer escaped (ie: quoted).</li> + </ul> + </li> + <li>Config + <ul> + <li>Added 'application/vnd.ms-powerpoint' to list of mime types.</li> + <li>Added 'audio/mpg' to list of mime types.</li> + <li>Added new user-modifiable file constants.php containing file mode and fopen constants.</li> + <li>Added the ability to set CRLF settings via config in the <a href="libraries/email.html">Email</a> class.</li> + </ul> + </li> + <li>Libraries + <ul> + <li>Added increased security for filename handling in the Upload library.</li> + <li>Added increased security for sessions for client-side data tampering.</li> + <li>The MySQLi forge class is now in sync with MySQL forge. </li> + <li>Added the ability to set CRLF settings via config in the <a href="libraries/email.html">Email</a> class.</li> + <li><a href="libraries/unit_testing.html">Unit Testing</a> results are now colour coded, and a change was made to the default template of results.</li> + <li>Added a valid_emails rule to the Validation class.</li> + <li>The <a href="libraries/zip.html">Zip class</a> now exits within <kbd>download()</kbd>.</li> + <li>The <a href="libraries/zip.html">Zip class</a> has undergone a substantial re-write for speed and clarity (thanks stanleyxu for the hard work and code contribution in bug report #3425!)</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Added a <a href="helpers/compatibility_helper.html">Compatibility Helper</a> for using some common PHP 5 functions safely in applications that might run on PHP 4 servers (thanks Seppo for the hard work and code contribution!)</li> + <li>Added <kbd>form_button()</kbd> in the <a href="helpers/form_helper.html">Form helper</a>.</li> + <li>Changed the <kbd>radio()</kbd> and <kbd>checkbox()</kbd> functions to default to not checked by default.</li> + <li>Added the ability to include an optional HTTP Response Code in the <kbd>redirect()</kbd> function of the <a href="helpers/url_helper.html">URL Helper</a>.</li> + <li>Modified <kbd>img()</kbd> in the <a href="helpers/html_helper.html">HTML Helper</a> to remove an unneeded space (#4208).</li> + <li>Modified <kbd>anchor()</kbd> in the <a href="helpers/url_helper.html">URL helper</a> to no longer add a default title= attribute (#4209).</li> + <li>The <a href="helpers/download_helper.html">Download helper</a> now exits within <kbd>force_download()</kbd>.</li> + <li>Added <kbd>get_dir_file_info()</kbd>, <kbd>get_file_info()</kbd>, and <kbd>get_mime_by_extension()</kbd> to the <a href="helpers/file_helper.html">File Helper</a>.</li> + <li>Added <kbd>symbolic_permissions()</kbd> and <kbd>octal_permissions()</kbd> to the <a href='helpers/file_helper.html'>File helper</a>.</li> + </ul> + </li> + <li>Plugins + <ul> + <li>Modified captcha generation to first look for the function imagecreatetruecolor, and fallback to imagecreate if it isn't available (#4226).</li> + </ul> + </li> + <li>Other + Changes + <ul> + <li>Added ability for <a href="libraries/input.html">xss_clean()</a> to accept arrays.</li> + <li>Removed closing PHP tags from all PHP files to avoid accidental output and potential 'cannot modify headers' errors.</li> + <li>Removed &quot;scripts&quot; from the auto-load search path. Scripts were deprecated + in Version 1.4.1 (September 21, 2006). If you still need to use them for legacy reasons, they must now be manually loaded in each Controller.</li> + <li>Added a <a href="general/reserved_names.html">Reserved Names</a> page to the userguide, and migrated reserved controller names into it.</li> + <li>Added a <a href="general/common_functions.html">Common Functions</a> page to the userguide for globally available functions.</li> + <li>Improved security and performance of xss_clean().</li> + </ul> + </li> + </ul> + +<h3>Bugfixes for 1.6.2</h3> +<ul> + <li>Fixed a bug where SET queries were not being handled as "write" queries.</li> + <li>Fixed a bug (#3191) with ORIG_PATH_INFO URI parsing.</li> + <li>Fixed a bug in DB Forge, when inserting an id field (#3456).</li> + <li>Fixed a bug in the table library that could cause identically constructed rows to be dropped (#3459).</li> + <li>Fixed DB Driver and MySQLi result driver checking for resources instead of objects (#3461).</li> + <li>Fixed an AR_caching error where it wasn't tracking table aliases (#3463).</li> + <li>Fixed a bug in AR compiling, where select statements with arguments got incorrectly escaped (#3478).</li> + <li>Fixed an incorrect documentation of $this-&gt;load-&gt;language (#3520).</li> + <li>Fixed bugs (#3523, #4350) in get_filenames() with recursion and problems with Windows when $include_path is used.</li> + <li>Fixed a bug (#4153) in the XML-RPC class preventing dateTime.iso8601 from being used.</li> + <li>Fixed an AR bug with or_where_not_in() (#4171).</li> + <li>Fixed a bug with <a href="libraries/input.html">xss_clean()</a> that would add semicolons to GET URI variable strings.</li> + <li>Fixed a bug (#4206) in the Directory Helper where the directory resource was not being closed, and minor improvements.</li> + <li>Fixed a bug in the FTP library where delete_dir() was not working recursively (#4215).</li> + <li>Fixed a Validation bug when set_rules() is used with a non-array field name and rule (#4220).</li> + <li>Fixed a bug (#4223) where DB caching would not work for returned DB objects or multiple DB connections.</li> + <li>Fixed a bug in the Upload library that might output the same error twice (#4390).</li> + <li>Fixed an AR bug when joining with a table alias and table prefix (#4400).</li> + <li>Fixed a bug in the DB class testing the $params argument.</li> + <li>Fixed a bug in the Table library where the integer 0 in cell data would be displayed as a blank cell.</li> + <li>Fixed a bug in <kbd>link_tag()</kbd> of the <a href="helpers/url_helper.html">URL helper</a> where a key was passed instead of a value.</li> + <li>Fixed a bug in DB_result::row() that prevented it from returning individual fields with MySQL NULL values.</li> + <li>Fixed a bug where SMTP emails were not having dot transformation performed on lines that begin with a dot.</li> + <li>Fixed a bug in display_error() in the DB driver that was instantiating new Language and Exception objects, and not using the error heading.</li> + <li>Fixed a bug (#4413) where a URI containing slashes only e.g. 'http://example.com/index.php?//' would result in PHP errors</li> + <li>Fixed an array to string conversion error in the Validation library (#4425)</li> + <li>Fixed bug (#4451, #4299, #4339) where failed transactions will not rollback when debug mode is enabled.</li> + <li>Fixed a bug (#4506) with overlay_watermark() in the Image library preventing support for PNG-24s with alpha transparency</li> + <li>Fixed assorted user guide typos (#3453, #4364, #4379, #4399, #4408, #4412, #4448, #4488).</li> + </ul> + +<h2>Version 1.6.1</h2> +<p>Release Date: February 12, 2008<br /> +Hg Tag: 1.6.1</p> +<ul> + <li>Active Record + <ul> + <li>Added <a href="./database/active_record.html#caching">Active Record Caching</a>.</li> + <li>Made Active Record fully database-prefix aware.</li> + </ul> + </li> + <li>Database drivers + <ul> + <li>Added support for setting client character set and collation for MySQLi.</li> + </ul> + </li> + <li>Core Changes + <ul> + <li>Modified <kbd>xss_clean()</kbd> to be more intelligent with its handling of URL encoded strings.</li> + <li>Added $_SERVER, $_FILES, $_ENV, and $_SESSION to sanitization of globals.</li> + <li>Added a <a href="./helpers/path_helper.html">Path Helper</a>.</li> + <li>Simplified <kbd>_reindex_segments()</kbd> in the URI class.</li> + <li>Escaped the '-' in the default 'permitted_uri_chars' config item, to prevent errors if developers just try to add additional characters to the end of the default expression.</li> + <li>Modified method calling to controllers to show a 404 when a private or protected method is accessed via a URL.</li> + <li>Modified framework initiated 404s to log the controller and method for invalid requests.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Modified <kbd>get_filenames()</kbd> in the File Helper to return FALSE if the $source_dir is not readable.</li> + </ul> + </li> +</ul> + + +<h3>Bugfixes for 1.6.1</h3> +<ul> + <li>Deprecated is_numeric as a validation rule. Use of numeric and integer are preferred.</li> + <li>Fixed bug (#3379) in DBForge with SQLite for table creation.</li> + <li>Made Active Record fully database prefix aware (#3384).</li> + <li>Fixed a bug where DBForge was outputting invalid SQL in Postgres by adding brackets around the tables in FROM.</li> + <li>Changed the behaviour of Active Record's update() to make the WHERE clause optional (#3395).</li> + <li>Fixed a bug (#3396) where certain POST variables would cause a PHP warning.</li> + <li>Fixed a bug in query binding (#3402).</li> + <li>Changed order of SQL keywords in the Profiler $highlight array so OR would not be highlighted before ORDER BY.</li> + <li>Fixed a bug (#3404) where the MySQLi driver was testing if $this->conn_id was a resource instead of an object.</li> + <li>Fixed a bug (#3419) connecting to a database via a DSN string.</li> + <li>Fixed a bug (#3445) where the routed segment array was not re-indexed to begin with 1 when the default controller is used.</li> + <li>Fixed assorted user guide typos.</li> +</ul> + + + +<h2>Version 1.6.0</h2> +<p>Release Date: January 30, 2008 </p> +<ul> + <li>DBForge + <ul> + <li>Added <a href="./database/forge.html">DBForge</a> to the database tools.</li> + <li>Moved <kbd>create_database()</kbd> and <kbd>drop_database()</kbd> into <a href="./database/forge.html">DBForge</a>.</li> + <li>Added <kbd>add_field()</kbd>, <kbd>add_key()</kbd>, <kbd>create_table()</kbd>, <kbd>drop_table()</kbd>, <kbd>add_column()</kbd>, <kbd>drop_column()</kbd>, <kbd>modify_column()</kbd> into <a href="./database/forge.html">DBForge</a>.</li> + </ul> + </li> + + <li>Active Record + <ul> + <li>Added <kbd>protect_identifiers()</kbd> in <a href="./database/active_record.html">Active Record</a>.</li> + <li>All AR queries are backticked if appropriate to the database.</li> + <li>Added <kbd>where_in()</kbd>, <kbd>or_where_in()</kbd>, <kbd>where_not_in()</kbd>, <kbd>or_where_not_in()</kbd>, <kbd>not_like()</kbd> and <kbd>or_not_like()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added support for <kbd>limit()</kbd> into <kbd>update()</kbd> and <kbd>delete()</kbd> statements in <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added <kbd>empty_table()</kbd> and <kbd>truncate_table()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added the ability to pass an array of tables to the <kbd>delete()</kbd> statement in <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added <kbd>count_all_results()</kbd> function to <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added <kbd>select_max()</kbd>, <kbd>select_min()</kbd>, <kbd>select_avg()</kbd> and <kbd>select_sum()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added the ability to use aliases with joins in <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added a third parameter to Active Record's <kbd>like()</kbd> clause to control where the wildcard goes. </li> + <li>Added a third parameter to <kbd>set()</kbd> in <a href="./database/active_record.html">Active Record</a> that withholds escaping data.</li> + <li>Changed the behaviour of variables submitted to the where() clause with no values to auto set &quot;IS NULL&quot;</li> + </ul> + </li> + + <li>Other Database Related + <ul> + <li>MySQL driver now requires MySQL 4.1+</li> + <li>Added $this->DB->save_queries variable to DB driver, enabling queries to get saved or not. Previously they were always saved.</li> + <li>Added $this->db->dbprefix() to manually add database prefixes.</li> + <li>Added 'random' as an <kbd>order_by()</kbd> option , and removed &quot;rand()&quot; as a listed option as it was MySQL only.</li> + <li>Added a check for NULL fields in the MySQL database backup utility.</li> + <li>Added &quot;constrain_by_prefix&quot; parameter to db-&gt;list_table() function. If set to TRUE it will limit the result to only table names with the current prefix.</li> + <li>Deprecated from Active Record; <kbd>getwhere()</kbd> for <kbd>get_where()</kbd>; <kbd>groupby()</kbd> for <kbd>group_by()</kbd>; <kbd>havingor()</kbd> for <kbd>having_or()</kbd>; <kbd>orderby()</kbd> for <kbd>order_by</kbd>; <kbd>orwhere()</kbd> for <kbd>or_where()</kbd>; and <kbd>orlike()</kbd> for <kbd>or_like()</kbd>.</li> + <li>Modified <kbd>csv_from_result()</kbd> to output CSV data more in the spirit of basic rules of RFC 4180.</li> + <li>Added 'char_set' and 'dbcollat' database configuration settings, to explicitly set the client communication properly.</li> + <li>Removed 'active_r' configuration setting and replaced with a global $active_record setting, which is more + in harmony with the global nature of the behavior (#1834).</li> + </ul> + </li> + + <li>Core changes + <ul> + <li>Added ability to load multiple views, whose content will be appended to the output in the order loaded.</li> + <li>Added the ability to <a href="./general/autoloader.html">auto-load</a> <a href="./general/models.html">Models</a>.</li> + <li>Reorganized the URI and Routes classes for better clarity.</li> + <li>Added Compat.php to allow function overrides for older versions of PHP or PHP environments missing certain extensions / libraries</li> + <li>Added memory usage, GET, URI string data, and individual query execution time to Profiler output.</li> + <li>Deprecated Scaffolding.</li> + <li>Added is_really_writable() to Common.php to provide a cross-platform reliable method of testing file/folder writability.</li> + </ul> + </li> + + <li>Libraries + <ul> + <li>Changed the load protocol of Models to allow for extension.</li> + <li>Strengthened the Encryption library to help protect against man in the middle attacks when MCRYPT_MODE_CBC mode is used.</li> + <li>Added Flashdata variables, session_id regeneration and configurable session update times to the <a href="./libraries/sessions.html">Session class.</a></li> + <li>Removed 'last_visit' from the Session class.</li> + <li>Added a language entry for valid_ip validation error.</li> + <li>Modified prep_for_form() in the Validation class to accept arrays, adding support for POST array validation (via callbacks only)</li> + <li>Added an &quot;integer&quot; rule into the Validation library.</li> + <li>Added valid_base64() to the Validation library.</li> + <li>Documented clear() in the <a href="../libraries/image_lib.html">Image Processing</a> library.</li> + <li>Changed the behaviour of custom callbacks so that they no longer trigger the &quot;required&quot; rule. </li> + <li>Modified Upload class $_FILES error messages to be more precise.</li> + <li>Moved the safe mode and auth checks for the Email library into the constructor. </li> + <li>Modified variable names in _ci_load() method of Loader class to avoid conflicts with view variables.</li> + <li>Added a few additional mime type variations for CSV.</li> + <li>Enabled the 'system' methods for the XML-RPC Server library, except for 'system.multicall' which is still disabled.</li> + </ul> + </li> + + <li>Helpers &amp; Plugins + <ul> + <li>Added link_tag() to the <a href="./helpers/html_helper.html">HTML helper.</a></li> + <li>Added img() to the <a href="./helpers/html_helper.html">HTML helper.</a></li> + <li>Added ability to <a href="./general/helpers.html">"extend" Helpers</a>.</li> + <li>Added an <a href="./helpers/email_helper.html">email helper</a> into core helpers.</li> + <li>Added <kbd>strip_quotes()</kbd> function to <a href="./helpers/string_helper.html">string helper</a>.</li> + <li>Added <kbd>reduce_multiples()</kbd> function to <a href="./helpers/string_helper.html">string helper</a>.</li> + <li>Added <kbd>quotes_to_entities()</kbd> function to <a href="./helpers/string_helper.html">string helper</a>.</li> + <li>Added <kbd>form_fieldset()</kbd>, <kbd>form_fieldset_close()</kbd>, <kbd>form_label()</kbd>, and <kbd>form_reset()</kbd> function to <a href="./helpers/form_helper.html">form helper</a>.</li> + <li>Added support for external urls in <kbd>form_open()</kbd>.</li> + <li>Removed support for db_backup in MySQLi due to incompatible functions.</li> + <li>Javascript Calendar plugin now uses the months and days from the calendar language file, instead of hard-coded values, internationalizing it.</li> + </ul> + </li> + + + <li>Documentation Changes + <ul> + <li>Added <a href="./doc_style/index.html">Writing Documentation</a> section for the community to use in writing their own documentation.</li> + <li>Added titles to all user manual pages.</li> + <li>Added attributes into &lt;html&gt; of userguide for valid html.</li> + <li>Added <a href="http://codeigniter.com/user_guide/libraries/zip.html">Zip Encoding Class</a> to the table of contents of the userguide.</li> + <li>Moved part of the userguide menu javascript to an external file.</li> + <li>Documented <kbd>distinct()</kbd> in <a href="./database/active_record.html">Active Record</a>. </li> + <li>Documented the <kbd>timezones()</kbd> function in the <a href="./helpers/date_helper.html">Date Helper</a>.</li> + <li>Documented unset_userdata in the <a href="./libraries/sessions.html">Session class</a>.</li> + <li>Documented 2 config options to the <a href="./database/configuration.html">Database configuration</a> page.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for Version 1.6.0</h3> + +<ul> + <li>Fixed a bug (#1813) preventing using $CI->db in the same application with returned database objects.</li> + <li>Fixed a bug (#1842) where the $this->uri->rsegments array would not include the 'index' method if routed to the controller without an implicit method.</li> + <li>Fixed a bug (#1872) where word_limiter() was not retaining whitespace.</li> + <li>Fixed a bug (#1890) in csv_from_result() where content that included the delimiter would break the file.</li> + <li>Fixed a bug (#2542)in the clean_email() method of the Email class to allow for non-numeric / non-sequential array keys.</li> + <li>Fixed a bug (#2545) in <kbd>_html_entity_decode_callback()</kbd> when 'global_xss_filtering' is enabled.</li> + <li>Fixed a bug (#2668) in the <a href="./libraries/parser.html">parser class</a> where numeric data was ignored.</li> + <li>Fixed a bug (#2679) where the &quot;previous&quot; pagination link would get drawn on the first page.</li> + <li>Fixed a bug (#2702) in _object_to_array that broke some types of inserts and updates.</li> + <li>Fixed a bug (#2732) in the SQLite driver for PHP 4.</li> + <li>Fixed a bug (#2754) in Pagination to scan for non-positive num_links.</li> + <li>Fixed a bug (#2762) in the <a href="./libraries/sessions.html">Session library</a> where user agent matching would fail on user agents ending with a space. </li> + <li>Fixed a bug (#2784) $field_names[] vs $Ffield_names[] in postgres and sqlite drivers.</li> + <li>Fixed a bug (#2810) in the typography helper causing extraneous paragraph tags when string contains tags.</li> + <li>Fixed a bug (#2849) where arguments passed to a subfolder controller method would be incorrectly shifted, dropping the 3rd segment value.</li> + <li>Fixed a bug (#2858) which referenced a wrong variable in the Image class.</li> + <li>Fixed a bug (#2875)when loading plugin files as _plugin. and not _pi.</li> + <li>Fixed a bug (#2912) in <kbd>get_filenames()</kbd> in the <a href="./helpers/file_helper.html">File Helper </a>where the array wasn't cleared after each call.</li> + <li>Fixed a bug (#2974) in <kbd>highlight_phrase()</kbd> that caused an error with slashes.</li> + <li>Fixed a bug (#3003) in the Encryption Library to support modes other than MCRYPT_MODE_ECB</li> + <li>Fixed a bug (#3015) in the <a href="./libraries/user_agent.html">User Agent library</a> where more then 2 languages where not reported with languages().</li> + <li>Fixed a bug (#3017) in the <a href="./libraries/email.html">Email</a> library where some timezones were calculated incorrectly. </li> + <li>Fixed a bug (#3024) in which master_dim wasn't getting reset by clear() in the Image library.</li> + <li>Fixed a bug (#3156) in Text Helper highlight_code() causing PHP tags to be handled incorrectly.</li> + <li>Fixed a bug (#3166) that prevented num_rows from working in Oracle.</li> + <li>Fixed a bug (#3175) preventing certain libraries from working properly when autoloaded in PHP 4.</li> + <li>Fixed a bug (#3267) in the Typography Helper where unordered list was listed &quot;un.</li> + <li>Fixed a bug (#3268) where the Router could leave '/' as the path.</li> + <li>Fixed a bug (#3279) where the Email class was sending the wrong Content-Transfer-Encoding for some character sets.</li> + <li>Fixed a bug (#3284) where the rsegment array would not be set properly if the requested URI contained more segments than the routed URI.</li> + <li>Removed extraneous load of $CFG in _display_cache() of the Output class (#3285).</li> + <li>Removed an extraneous call to loading models (#3286).</li> + <li>Fixed a bug (#3310) with sanitization of globals in the Input class that could unset CI's global variables.</li> + <li>Fixed a bug (#3314) which would cause the top level path to be deleted in delete_files() of the File helper.</li> + <li>Fixed a bug (#3328) where the smiley helper might return an undefined variable.</li> + <li>Fixed a bug (#3330) in the FTP class where a comparison wasn't getting made.</li> + <li>Removed an unused parameter from Profiler (#3332).</li> + <li>Fixed a bug in database driver where num_rows property wasn't getting updated.</li> + <li>Fixed a bug in the <a href="./libraries/file_uploading.html">upload library</a> when allowed_files wasn't defined.</li> + <li>Fixed a bug in <kbd>word_wrap()</kbd> of the Text Helper that incorrectly referenced an object. </li> + <li>Fixed a bug in Validation where <kbd>valid_ip()</kbd> wasn't called properly.</li> + <li>Fixed a bug in Validation where individual error messages for checkboxes wasn't supported.</li> + <li>Fixed a bug in captcha calling an invalid PHP function.</li> + <li>Fixed a bug in the cookie helper "set_cookie" function. It was not honoring the config settings.</li> + <li>Fixed a bug that was making validation callbacks required even when not set as such.</li> + <li>Fixed a bug in the XML-RPC library so if a type is specified, a more intelligent decision is made as to the default type.</li> + <li>Fixed an example of comma-separated emails in the email library documentation.</li> + <li>Fixed an example in the Calendar library for Showing Next/Previous Month Links.</li> + <li>Fixed a typo in the database language file.</li> + <li>Fixed a typo in the image language file &quot;suppor&quot; to &quot;support&quot;.</li> + <li>Fixed an example for XML RPC.</li> + <li>Fixed an example of <kbd>accept_charset()</kbd> in the <a href="./libraries/user_agent.html">User Agent Library</a>.</li> + <li>Fixed a typo in the docblock comments that had CodeIgniter spelled CodeIgnitor.</li> + <li>Fixed a typo in the <a href="./helpers/string_helper.html">String Helper</a> (uniquid changed to uniqid).</li> + <li>Fixed typos in the email Language class (email_attachment_unredable, email_filed_smtp_login), and FTP Class (ftp_unable_to_remame).</li> + <li>Added a stripslashes() into the Upload Library.</li> + <li>Fixed a series of grammatical and spelling errors in the language files.</li> + <li>Fixed assorted user guide typos.</li> +</ul> +<h2>Version 1.5.4</h2> +<p>Release Date: July 12, 2007 </p> +<ul> + <li>Added <a href="./libraries/language.html">custom Language files</a> to the <a href="./general/autoloader.html">autoload</a> options. </li> + <li>Added stripslashes() to the _clean_input_data() function in the <a href="./libraries/input.html">Input class</a> when magic quotes is on so that data will always be un-slashed within the framework.</li> + <li>Added array to string into the <a href="general/profiling.html">profiler</a>.</li> + <li>Added some additional mime types in application/config/mimes.php.</li> + <li>Added filename_security() method to <a href="./libraries/input.html">Input library</a>.</li> + <li>Added some additional arguments to the <a href="./helpers/inflector_helper.html">Inflection helper</a> singular() to compensate for words ending in "s". Also added a force parameter to pluralize().</li> + <li>Added $config['charset'] to the config file. Default value is 'UTF-8', used in some string handling functions.</li> + <li>Fixed MSSQL insert_id().</li> + <li>Fixed a logic error in the DB trans_status() function. It was incorrectly returning TRUE on failure and FALSE on success.</li> + <li>Fixed a bug that was allowing multiple load attempts on extended classes.</li> + <li>Fixed a bug in the bootstrap file that was incorrectly attempting to discern the full server path even when it was explicity set by the user.</li> + <li>Fixed a bug in the escape_str() function in the MySQL driver.</li> + <li>Fixed a typo in the <a href="./libraries/calendar.html">Calendar library </a> </li> + <li>Fixed a typo in rpcs.php library</li> + <li>Fixed a bug in the <a href="./libraries/zip.html">Zip library</a>, providing PC Zip file compatibility with Mac OS X</li> + <li>Fixed a bug in router that was ignoring the scaffolding route for optimization </li> + <li>Fixed an IP validation bug.</li> + <li>Fixed a bug in display of POST keys in the <a href="./general/profiling.html">Profiler</a> output</li> + <li>Fixed a bug in display of queries with characters that would be interpreted as HTML in the <a href="./general/profiling.html">Profiler</a> output</li> + <li>Fixed a bug in display of Email class print debugger with characters that would be interpreted as HTML in the debugging output</li> + <li>Fixed a bug in the Content-Transfer-Encoding of HTML emails with the quoted-printable MIME type</li> + <li>Fixed a bug where one could unset certain PHP superglobals by setting them via GET or POST data</li> + <li>Fixed an undefined function error in the insert_id() function of the PostgreSQL driver</li> + <li>Fixed various doc typos. </li> + <li>Documented two functions from the <a href="./helpers/string_helper.html">String helper </a> that were missing from the user guide: trim_slashes() and reduce_double_slashes().</li> + <li>Docs now validate to XHTML 1 transitional</li> + <li>Updated the XSS Filtering to take into account the IE expression() ability and improved certain deletions to prevent possible exploits</li> + <li>Modified the Router so that when Query Strings are Enabled, the controller trigger and function trigger values are sanitized for filename include security.</li> + <li>Modified the is_image() method in the Upload library to take into account Windows IE 6/7 eccentricities when dealing with MIMEs</li> + <li>Modified XSS Cleaning routine to be more performance friendly and compatible with PHP 5.2's new PCRE backtrack and recursion limits.</li> + <li>Modified the <a href="./helpers/url_helper.html">URL Helper</a> to type cast the $title as a string in case a numeric value is supplied</li> + <li>Modified Form Helper form_dropdown() to type cast the keys and values of the options array as strings, allowing numeric values to be properly set as 'selected'</li> + <li>Deprecated the use if <kbd>is_numeric()</kbd> in various places since it allows periods. Due to compatibility problems with <kbd>ctype_digit()</kbd>, making it unreliable in some installations, the following regular expression was used instead: <kbd>preg_match("/[^0-9]/", $n)</kbd></li> + <li>Deprecated: APPVER has been deprecated and replaced with CI_VERSION for clarity. </li> +</ul> +<h2>Version 1.5.3</h2> +<p>Release Date: April 15, 2007 </p> +<ul> + <li>Added array to string into the profiler </li> + <li>Code Igniter references updated to CodeIgniter </li> + <li>pMachine references updated to EllisLab </li> + <li>Fixed a bug in the repeater function of <a href="./helpers/string_helper.html">string helper</a>. </li> + <li>Fixed a bug in ODBC driver </li> + <li>Fixed a bug in result_array() that was returning an empty array when no result is produced.</li> + <li>Fixed a bug in the redirect function of the <a href="./helpers/url_helper.html">url helper</a>. </li> + <li>Fixed an undefined variable in Loader </li> + <li>Fixed a version bug in the Postgres driver </li> + <li>Fixed a bug in the textarea function of the form helper for use with strings</li> + <li>Fixed doc typos. </li> +</ul> +<h2>Version 1.5.2</h2> +<p>Release Date: February 13, 2007 </p> +<ul> + <li>Added <a href="./installation/downloads.html#svn">subversion information</a> to the <a href="./installation/downloads.html">downloads</a> page. </li> + <li>Added support for captions in the <a href="./libraries/table.html">Table Library</a> </li> + <li>Fixed a bug in the <a href="./helpers/download_helper.html">download_helper</a> that was causing Internet Explorer to load rather than download </li> + <li>Fixed a bug in the Active Record Join function that was not taking table prefixes into consideration.</li> + <li>Removed unescaped variables in error messages of Input and Router classes</li> + <li>Fixed a bug in the Loader that was causing errors on Libraries loaded twice. A debug message is now silently made in the log. </li> + <li>Fixed a bug in the <a href="./helpers/form_helper.html">form helper</a> that gave textarea a value attribute </li> + <li>Fixed a bug in the <a href="./libraries/image_lib.php">Image Library</a> that was ignoring resizing the same size image </li> + <li>Fixed some doc typos.</li> +</ul> + + +<h2>Version 1.5.1</h2> +<p>Release Date: November 23, 2006</p> +<ul> + <li>Added support for submitting arrays of libraries in the $this-&gt;load-&gt;library function.</li> + <li>Added support for naming custom library files in lower or uppercase.</li> + <li>Fixed a bug related to output buffering.</li> + <li>Fixed a bug in the active record class that was not resetting query data after a completed query.</li> + <li>Fixed a bug that was suppressing errors in controllers.</li> + <li>Fixed a problem that can cause a loop to occur when the config file is missing.</li> + <li>Fixed a bug that occurred when multiple models were loaded with the third parameter set to TRUE.</li> + <li>Fixed an oversight that was not unsetting globals properly in the input sanitize function.</li> + <li>Fixed some bugs in the Oracle DB driver.</li> + <li>Fixed an incorrectly named variable in the MySQLi result driver.</li> + <li>Fixed some doc typos.</li> +</ul> +<h2>Version 1.5.0.1</h2> +<p>Release Date: October 31, 2006</p> +<ul> +<li>Fixed a problem in which duplicate attempts to load helpers and classes were not being stopped.</li> +<li>Fixed a bug in the word_wrap() helper function.</li> +<li>Fixed an invalid color Hex number in the Profiler class.</li> +<li>Fixed a corrupted image in the user guide.</li> +</ul> + + + +<h2>Version 1.5.0</h2> +<p>Release Date: October 30, 2006</p> + +<ul> +<li>Added <a href="./database/utilities.html">DB utility class</a>, permitting DB backups, CVS or XML files from DB results, and various other functions.</li> +<li>Added <a href="./database/caching.html">Database Caching Class</a>.</li> +<li>Added <a href="./database/transactions.html">transaction support</a> to the database classes.</li> +<li>Added <a href="./general/profiling.html">Profiler Class</a> which generates a report of Benchmark execution times, queries, and POST data at the bottom of your pages.</li> +<li>Added <a href="./libraries/user_agent.html">User Agent Library</a> which allows browsers, robots, and mobile devises to be identified.</li> +<li>Added <a href="./libraries/table.html">HTML Table Class</a> , enabling tables to be generated from arrays or database results.</li> +<li>Added <a href="./libraries/zip.html">Zip Encoding Library</a>.</li> +<li>Added <a href="./libraries/ftp.html">FTP Library</a>.</li> +<li>Added the ability to <a href="./general/creating_libraries.html">extend libraries</a> and <a href="./general/core_classes.html">extend core classes</a>, in addition to being able to replace them.</li> +<li>Added support for storing <a href="./general/models.html">models within sub-folders</a>.</li> +<li>Added <a href="./helpers/download_helper.html">Download Helper</a>.</li> +<li>Added <a href="./database/queries.html">simple_query()</a> function to the database classes</li> +<li>Added <a href="./helpers/date_helper.html">standard_date()</a> function to the Date Helper.</li> +<li>Added <a href="./database/results.html">$query->free_result()</a> to database class.</li> +<li>Added <a href="./database/fields.html">$query->list_fields()</a> function to database class</li> +<li>Added <a href="./database/helpers.html">$this->db->platform()</a> function</li> +<li>Added new <a href="./helpers/file_helper.html">File Helper</a>: get_filenames()</li> +<li>Added new helper: <a href="./helpers/smiley_helper.html">Smiley Helper</a></li> +<li>Added support for &lt;ul> and &lt;ol> lists in the <a href="./helpers/html_helper.html">HTML Helper</a></li> +<li>Added the ability to rewrite <a href="./general/alternative_php.html">short tags</a> on-the-fly, converting them to standard PHP statements, for those servers that do not support short tags. This allows the cleaner syntax to be used regardless of whether it's supported by the server.</li> +<li>Added the ability to <a href="./general/managing_apps.html">rename or relocate the "application" folder</a>.</li> +<li>Added more thorough initialization in the upload class so that all class variables are reset.</li> +<li>Added "is_numeric" to validation, which uses the native PHP is_numeric function.</li> +<li>Improved the URI handler to make it more reliable when the $config['uri_protocol'] item is set to AUTO.</li> +<li>Moved most of the functions in the Controller class into the Loader class, allowing fewer reserved function names for controllers when running under PHP 5.</li> +<li>Updated the DB Result class to return an empty array when $query->result() doesn't produce a result.</li> +<li>Updated the <dfn>input->cookie()</dfn> and <dfn>input->post()</dfn> functions in <a href="./libraries/input.html">Input Class</a> to permit arrays contained cookies that are arrays to be run through the XSS filter.</li> +<li>Documented three functions from the <a href="./libraries/validation.html">Validation class</a> that were missing from the user guide: set_select(), set_radio(), and set_checkbox().</li> +<li>Fixed a bug in the Email class related to SMTP Helo data.</li> +<li>Fixed a bug in the word wrapping helper and function in the email class.</li> +<li>Fixed a bug in the validation class.</li> +<li>Fixed a bug in the typography helper that was incorrectly wrapping block level elements in paragraph tags.</li> +<li>Fixed a problem in the form_prep() function that was double encoding entities.</li> +<li>Fixed a bug that affects some versions of PHP when output buffering is nested.</li> +<li>Fixed a bug that caused CI to stop working when the PHP magic __get() or __set() functions were used within models or controllers.</li> +<li>Fixed a pagination bug that was permitting negative values in the URL.</li> +<li>Fixed an oversight in which the Loader class was not allowed to be extended.</li> +<li>Changed <dfn>_get_config()</dfn> to <dfn>get_config()</dfn> since the function is not a private one.</li> +<li><strong>Deprecated "init" folder</strong>. Initialization happens automatically now. <a href="./general/creating_libraries.html">Please see documentation</a>.</li> +<li><strong>Deprecated</strong> $this->db->field_names() USE $this->db->list_fields()</li> +<li><strong>Deprecated</strong> the <dfn>$config['log_errors']</dfn> item from the config.php file. Instead, <dfn>$config['log_threshold']</dfn> can be set to "0" to turn it off.</li> +</ul> + + + + +<h2>Version 1.4.1</h2> +<p>Release Date: September 21, 2006</p> + +<ul> +<li>Added a new feature that passes URI segments directly to your function calls as parameters. See the <a href="./general/controllers.html">Controllers</a> page for more info.</li> +<li>Added support for a function named <dfn>_output()</dfn>, which when used in your controllers will received the final rendered output from the output class. More info in the <a href="controllers.html">Controllers</a> page.</li> +<li>Added several new functions in the <a href="./libraries/uri.html">URI Class</a> to let you retrieve and manipulate URI segments that have been re-routed using the <a href="routing.html">URI Routing</a> feature. Previously, the URI class did not permit you to access any re-routed URI segments, but now it does.</li> +<li>Added <a href="./libraries/output.html">$this->output->set_header()</a> function, which allows you to set server headers.</li> +<li>Updated plugins, helpers, and language classes to allow your <dfn>application</dfn> folder to contain its own plugins, helpers, and language folders. Previously they were always treated as global for your entire installation. If your application folder contains any of these resources they will be used <em>instead</em> the global ones.</li> +<li>Added <a href="./helpers/inflector_helper.html">Inflector helper</a>.</li> +<li>Added <dfn>element()</dfn> function in the <a href="./helpers/array_helper.html">array helper</a>.</li> +<li>Added <dfn>RAND()</dfn> to active record <dfn>orderby()</dfn> function.</li> +<li>Added <dfn>delete_cookie()</dfn> and <dfn>get_cookie()</dfn> to <a href="./helpers/cookie_helper.html">Cookie helper</a>, even though the input class has a cookie fetching function.</li> +<li>Added Oracle database driver (still undergoing testing so it might have some bugs).</li> +<li>Added the ability to combine pseudo-variables and php variables in the template parser class.</li> +<li>Added output compression option to the config file.</li> +<li>Removed the is_numeric test from the db->escape() function.</li> +<li>Fixed a MySQLi bug that was causing error messages not to contain proper error data.</li> +<li>Fixed a bug in the email class which was causing it to ignore explicitly set alternative headers.</li> +<li>Fixed a bug that was causing a PHP error when the Exceptions class was called within the get_config() function since it was causing problems.</li> +<li>Fixed an oversight in the cookie helper in which the config file cookie settings were not being honored.</li> +<li>Fixed an oversight in the upload class. An item mentioned in the 1.4 changelog was missing.</li> +<li>Added some code to allow email attachments to be reset when sending batches of email.</li> +<li>Deprecated the <dfn>application/scripts</dfn> folder. It will continue to work for legacy users, but it is recommended that you create your own +<a href="./general/libraries.html">libraries</a> or <a href="./general/models.html">models</a> instead. It was originally added before CI had user libraries or models, but it's not needed anymore.</li> +<li>Deprecated the <dfn>$autoload['core']</dfn> item from the <kbd>autoload.php</kbd> file. Instead, please now use: <kbd>$autoload['libraries']</kbd></li> +<li>Deprecated the following database functions: $this->db->smart_escape_str() and $this->db->fields().</li> +</ul> + + + +<h2>Version 1.4.0</h2> +<p>Release Date: September 17, 2006</p> + +<ul> +<li>Added <a href="./general/hooks.html">Hooks</a> feature, enabling you to tap into and modify the inner workings of the framework without hacking the core files.</li> +<li>Added the ability to organize controller files <a href="./general/controllers.html">into sub-folders</a>. Kudos to Marco for <a href="http://codeigniter.com/forums/viewthread/627/">suggesting</a> this (and the next two) feature.</li> +<li>Added regular expressions support for <a href="./general/routing.html">routing rules</a>.</li> +<li>Added the ability to <a href="./general/controllers.html">remap function calls</a> within your controllers.</li> +<li>Added the ability to <a href="./general/core_classes.html">replace core system classes</a> with your own classes.</li> +<li>Added support for % character in URL.</li> +<li>Added the ability to supply full URLs using the <a href="./helpers/url_helper.html">anchor()</a> helper function.</li> +<li>Added mode parameter to <a href="./helpers/file_helper.html">file_write()</a> helper.</li> +<li>Added support for changing the port number in the <a href="./database/configuration.html">Postgres driver</a>.</li> +<li>Moved the list of "allowed URI characters" out of the Router class and into the config file.</li> +<li>Moved the MIME type array out of the Upload class and into its own file in the applications/config/ folder.</li> +<li>Updated the Upload class to allow the upload field name to be set when calling <a href="./libraries/file_uploading.html">do_upload()</a>.</li> +<li>Updated the <a href="./libraries/config.html">Config Library</a> to be able to load config files silently, and to be able to assign config files to their own index (to avoid collisions if you use multiple config files).</li> +<li>Updated the URI Protocol code to allow more options so that URLs will work more reliably in different environments.</li> +<li>Updated the <dfn>form_open()</dfn> helper to allow the GET method to be used.</li> +<li>Updated the MySQLi <dfn>execute()</dfn> function with some code to help prevent lost connection errors.</li> +<li>Updated the SQLite Driver to check for object support before attempting to return results as objects. If unsupported it returns an array.</li> +<li>Updated the Models loader function to allow multiple loads of the same model.</li> +<li>Updated the MS SQL driver so that single quotes are escaped.</li> +<li>Updated the Postgres and ODBC drivers for better compatibility.</li> +<li>Removed a strtolower() call that was changing URL segments to lower case.</li> +<li>Removed some references that were interfering with PHP 4.4.1 compatibility.</li> +<li>Removed backticks from Postgres class since these are not needed.</li> +<li>Renamed <dfn>display()</dfn> to <dfn>_display()</dfn> in the Output class to make it clear that it's a private function.</li> +<li>Deprecated the hash() function due to a naming conflict with a native PHP function with the same name. Please use <kbd>dohash()</kbd> instead.</li> +<li>Fixed an bug that was preventing the input class from unsetting GET variables.</li> +<li>Fixed a router bug that was making it too greedy when matching end segments.</li> +<li>Fixed a bug that was preventing multiple discrete database calls.</li> +<li>Fixed a bug in which loading a language file was producing a "file contains no data" message.</li> +<li>Fixed a session bug caused by the XSS Filtering feature inadvertently changing the case of certain words.</li> +<li>Fixed some missing prefixes when using the database prefix feature.</li> +<li>Fixed a typo in the Calendar class (cal_november).</li> +<li>Fixed a bug in the <dfn>form_checkbox()</dfn> helper.</li> +<li>Fixed a bug that was allowing the second segment of the URI to be identical to the class name.</li> +<li>Fixed an evaluation bug in the database initialization function.</li> +<li>Fixed a minor bug in one of the error messages in the language class.</li> +<li>Fixed a bug in the date helper <dfn>timespan</dfn> function.</li> +<li>Fixed an undefined variable in the DB Driver class.</li> +<li>Fixed a bug in which dollar signs used as binding replacement values in the DB class would be treated as RegEx back-references.</li> +<li>Fixed a bug in the <dfn>set_hash()</dfn> function which was preventing MD5 from being used.</li> +<li>Fixed a couple bugs in the Unit Testing class.</li> +<li>Fixed an incorrectly named variable in the Validation class.</li> +<li>Fixed an incorrectly named variable in the URI class.</li> +<li>Fixed a bug in the config class that was preventing the base URL from being called properly.</li> +<li>Fixed a bug in the validation class that was not permitting callbacks if the form field was empty.</li> +<li>Fixed a problem that was preventing scaffolding from working properly with MySQLi.</li> +<li>Fixed some MS SQL bugs.</li> +<li>Fixed some doc typos.</li> +</ul> + + + +<h2>Version 1.3.3</h2> +<p>Release Date: June 1, 2006</p> + +<ul> + +<li>Models do <strong>not</strong> connect automatically to the database as of this version. <a href="./general/models.html">More info here</a>.</li> +<li>Updated the Sessions class to utilize the active record class when running session related queries. Previously the queries assumed MySQL syntax.</li> +<li>Updated alternator() function to re-initialize when called with no arguments, allowing multiple calls.</li> +<li>Fixed a bug in the active record "having" function.</li> +<li>Fixed a problem in the validation class which was making checkboxes be ignored when required.</li> +<li>Fixed a bug in the word_limiter() helper function. It was cutting off the fist word.</li> +<li>Fixed a bug in the xss_clean function due to a PHP bug that affects some versions of html_entity_decode.</li> +<li>Fixed a validation bug that was preventing rules from being set twice in one controller.</li> +<li>Fixed a calendar bug that was not letting it use dynamically loaded languages.</li> +<li>Fixed a bug in the active record class when using WHERE clauses with LIKE</li> +<li>Fixed a bug in the hash() security helper.</li> +<li>Fixed some typos.</li> +</ul> + + + + +<h2>Version 1.3.2</h2> +<p>Release Date: April 17, 2006</p> + +<ul> +<li>Changed the behavior of the validation class such that if a "required" rule is NOT explicitly stated for a field then all other tests get ignored.</li> +<li>Fixed a bug in the Controller class that was causing it to look in the local "init" folder instead of the main system one.</li> +<li>Fixed a bug in the init_pagination file. The $config item was not being set correctly.</li> +<li>Fixed a bug in the auto typography helper that was causing inconsistent behavior.</li> +<li>Fixed a couple bugs in the Model class.</li> +<li>Fixed some documentation typos and errata.</li> +</ul> + + + +<h2>Version 1.3.1</h2> +<p>Release Date: April 11, 2006</p> + +<ul> +<li>Added a <a href="./libraries/unit_testing.html">Unit Testing Library</a>.</li> +<li>Added the ability to pass objects to the <strong>insert()</strong> and <strong>update()</strong> database functions. +This feature enables you to (among other things) use your <a href="./general/models.html">Model class</a> variables to run queries with. See the Models page for details.</li> +<li>Added the ability to pass objects to the <a href="./general/views.html">view loading function</a>: $this->load->view('my_view', <var>$object</var>);</li> +<li>Added <kbd>getwhere</kbd> function to <a href="./database/active_record.html">Active Record class</a>.</li> +<li>Added <kbd>count_all</kbd> function to <a href="./database/active_record.html">Active Record class</a>.</li> +<li>Added language file for scaffolding and fixed a scaffolding bug that occurs when there are no rows in the specified table.</li> +<li>Added <a href="./database/queries.html">$this->db->last_query()</a>, which allows you to view your last query that was run.</li> +<li>Added a new mime type to the upload class for better compatibility.</li> +<li>Changed how cache files are read to prevent PHP errors if the cache file contains an XML tag, which PHP wants to interpret as a short tag.</li> +<li>Fixed a bug in a couple of the active record functions (where and orderby).</li> +<li>Fixed a bug in the image library when realpath() returns false.</li> +<li>Fixed a bug in the Models that was preventing libraries from being used within them.</li> +<li>Fixed a bug in the "exact_length" function of the validation class.</li> +<li>Fixed some typos in the user guide</li> +</ul> + + +<h2>Version 1.3</h2> +<p>Release Date: April 3, 2006</p> + +<ul> +<li>Added support for <a href="models.html">Models</a>.</li> +<li>Redesigned the database libraries to support additional RDBMs (Postgres, MySQLi, etc.).</li> +<li>Redesigned the <a href="./database/active_record.html">Active Record class</a> to enable more varied types of queries with simpler syntax, and advanced features like JOINs.</li> +<li>Added a feature to the database class that lets you run <a href="./database/call_function.html">custom function calls</a>.</li> +<li>Added support for <a href="controllers.html">private functions</a> in your controllers. Any controller function name that starts with an underscore will not be served by a URI request.</li> +<li>Added the ability to pass your own initialization parameters to your <a href="creating_libraries.html">custom core libraries</a> when using $this->load->library()</li> +<li>Added support for running standard <a href="urls.html">query string URLs</a>. These can be optionally enabled in your config file.</li> +<li>Added the ability to <a href="urls.html">specify a "suffix"</a>, which will be appended to your URLs. For example, you could add .html to your URLs, making them appear static. This feature is enabled in your config file.</li> +<li>Added a new error template for use with native PHP errors.</li> +<li>Added "alternator" function in the <a href="./helpers/string_helper.html">string helpers</a>.</li> +<li>Removed slashing from the input class. After much debate we decided to kill this feature.</li> +<li>Change the commenting style in the scripts to the PEAR standard so that IDEs and tools like phpDocumenter can harvest the comments.</li> +<li>Added better class and function name-spacing to avoid collisions with user developed classes. All CodeIgniter classes are now prefixed with <dfn>CI_</dfn> and +all controller methods are prefixed with <dfn>_ci</dfn> to avoid controller collisions. A list of reserved function names can be <a href="controllers.html">found here</a>.</li> +<li>Redesigned how the "CI" super object is referenced, depending on whether PHP 4 or 5 is being run, since PHP 5 allows a more graceful way to manage objects that utilizes a bit less resources.</li> +<li>Deprecated: <var>$this->db->use_table()</var> has been deprecated. Please read the <a href="./database/active_record.html">Active Record</a> page for information.</li> +<li>Deprecated: <var>$this->db->smart_escape_str()</var> has been deprecated. Please use this instead: <var>$this->db->escape()</var></li> +<li>Fixed a bug in the exception handler which was preventing some PHP errors from showing up.</li> +<li>Fixed a typo in the URI class. $this->total_segment() should be plural: $this->total_segments()</li> +<li>Fixed some typos in the default calendar template</li> +<li>Fixed some typos in the user guide</li> +</ul> + + + + + + + + +<h2>Version 1.2</h2> +<p>Release Date: March 21, 2006</p> + +<ul> +<li>Redesigned some internal aspects of the framework to resolve scoping problems that surfaced during the beta tests. The problem was most notable when instantiating classes in your constructors, particularly if those classes in turn did work in their constructors.</li> +<li>Added a global function named <a href="ancillary_classes.html">get_instance()</a> allowing the main CodeIgniter object to be accessible throughout your own classes.</li> +<li>Added new <a href="./helpers/file_helper.html">File Helper</a>: delete_files()</li> +<li>Added new <a href="./helpers/url_helper.html">URL Helpers</a>: base_url(), index_page()</li> +<li>Added the ability to create your own <a href="creating_libraries.html">core libraries</a> and store them in your local application directory.</li> +<li>Added an <kbd>overwrite</kbd> option to the <a href="./libraries/file_uploading.html">Upload class</a>, enabling files to be overwritten rather than having the file name appended.</li> +<li>Added Javascript Calendar plugin.</li> +<li>Added search feature to user guide. Note: This is done using Google, which at the time of this writing has not crawled all the pages of the docs.</li> +<li>Updated the parser class so that it allows tag pars within other tag pairs.</li> +<li>Fixed a bug in the DB "where" function.</li> +<li>Fixed a bug that was preventing custom config files to be auto-loaded.</li> +<li>Fixed a bug in the mysql class bind feature that prevented question marks in the replacement data.</li> +<li>Fixed some bugs in the xss_clean function</li> +</ul> + + + + + +<h2>Version Beta 1.1</h2> +<p>Release Date: March 10, 2006</p> + +<ul> +<li>Added a <a href="./libraries/calendar.html">Calendaring class</a>.</li> +<li>Added support for running <a href="managing_apps.html">multiple applications</a> that share a common CodeIgniter backend.</li> +<li>Moved the "uri protocol" variable from the index.php file into the config.php file</li> +<li>Fixed a problem that was preventing certain function calls from working within constructors.</li> +<li>Fixed a problem that was preventing the $this->load->library function from working in constructors.</li> +<li>Fixed a bug that occurred when the session class was loaded using the auto-load routine.</li> +<li>Fixed a bug that can happen with PHP versions that do not support the E_STRICT constant</li> +<li>Fixed a data type error in the form_radio function (form helper)</li> +<li>Fixed a bug that was preventing the xss_clean function from being called from the validation class.</li> +<li>Fixed the cookie related config names, which were incorrectly specified as $conf rather than $config</li> +<li>Fixed a pagination problem in the scaffolding.</li> +<li>Fixed a bug in the mysql class "where" function.</li> +<li>Fixed a regex problem in some code that trimmed duplicate slashes.</li> +<li>Fixed a bug in the br() function in the HTML helper</li> +<li>Fixed a syntax mistake in the form_dropdown function in the Form Helper.</li> +<li>Removed the "style" attributes form the form helpers.</li> +<li>Updated the documentation. Added "next/previous" links to each page and fixed various typos.</li> +</ul> + +<h2>Version Beta 1.0 </h2> +<p>Release Date: February 28, 2006</p> +<p>First publicly released version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="license.html">License Agreement</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="./general/credits.html">Credits</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> diff --git a/user_guide/database/active_record.html b/user_guide/database/active_record.html new file mode 100755 index 0000000..5a31be2 --- /dev/null +++ b/user_guide/database/active_record.html @@ -0,0 +1,824 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Active Record : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Active Record +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + +<!-- START CONTENT --> +<div id="content"> + +<h1>Active Record Class</h1> + +<p>CodeIgniter uses a modified version of the Active Record Database Pattern. +This pattern allows information to be retrieved, inserted, and updated in your database with minimal scripting. +In some cases only one or two lines of code are necessary to perform a database action. +CodeIgniter does not require that each database table be its own class file. It instead provides a more simplified interface.</p> + +<p>Beyond simplicity, a major benefit to using the Active Record features is that it allows you to create database independent applications, since the query syntax +is generated by each database adapter. It also allows for safer queries, since the values are escaped automatically by the system.</p> + +<p class="important"><strong>Note:</strong> If you intend to write your own queries you can disable this class in your database config file, allowing the core database library and adapter to utilize fewer resources.<br /></p> + +<ul> +<li><a href="#select">Selecting Data</a></li> +<li><a href="#insert">Inserting Data</a></li> +<li><a href="#update">Updating Data</a></li> +<li><a href="#delete">Deleting Data</a></li> +<li><a href="#chaining">Method Chaining</a></li> +<li><a href="#caching">Active Record Caching</a></li> +</ul> + +<h1><a name="select">&nbsp;</a>Selecting Data</h1> + +<p>The following functions allow you to build SQL <strong>SELECT</strong> statements.</p> + +<p><strong>Note: If you are using PHP 5 you can use method chaining for more compact syntax. This is described at the end of the page.</strong></p> + + +<h2>$this->db->get();</h2> + +<p>Runs the selection query and returns the result. Can be used by itself to retrieve all records from a table:</p> + +<code>$query = $this->db->get('mytable');<br /> +<br /> +// Produces: SELECT * FROM mytable</code> + +<p>The second and third parameters enable you to set a limit and offset clause:</p> + +<code>$query = $this->db->get('mytable', 10, 20);<br /> +<br /> +// Produces: SELECT * FROM mytable LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</code> + +<p>You'll notice that the above function is assigned to a variable named <kbd>$query</kbd>, which can be used to show the results:</p> + +<code>$query = $this->db->get('mytable');<br /> +<br /> +foreach ($query->result() as $row)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br /> +}</code> + +<p>Please visit the <a href="results.html">result functions</a> page for a full discussion regarding result generation.</p> + + +<h2>$this->db->get_where();</h2> + +<p>Identical to the above function except that it permits you to add a "where" clause in the second parameter, +instead of using the db->where() function:</p> + +<code>$query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);</code> + +<p>Please read the about the where function below for more information.</p> +<p class="important">Note: get_where() was formerly known as getwhere(), which has been removed</p> + +<h2>$this->db->select();</h2> +<p>Permits you to write the SELECT portion of your query:</p> +<p><code> +$this->db->select('title, content, date');<br /> +<br /> +$query = $this->db->get('mytable');<br /> +<br /> +// Produces: SELECT title, content, date FROM mytable</code></p> +<p class="important"><strong>Note:</strong> If you are selecting all (*) from a table you do not need to use this function. When omitted, CodeIgniter assumes you wish to SELECT *</p> + +<p>$this-&gt;db-&gt;select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.</p> +<p><code>$this-&gt;db-&gt;select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE); <br /> +$query = $this-&gt;db-&gt;get('mytable');<br /> +</code></p> +<h2>$this->db->select_max();</h2> +<p>Writes a "SELECT MAX(field)" portion for your query. You can optionally include a second parameter to rename the resulting field.</p> +<p><code> +$this->db->select_max('age');<br /> +$query = $this->db->get('members');<br /> + +// Produces: SELECT MAX(age) as age FROM members<br /> +<br /> +$this-&gt;db-&gt;select_max('age', 'member_age');<br /> +$query = $this-&gt;db-&gt;get('members');<br /> +// Produces: SELECT MAX(age) as member_age FROM members</code></p> + +<h2>$this->db->select_min();</h2> +<p>Writes a "SELECT MIN(field)" portion for your query. As with <dfn>select_max()</dfn>, You can optionally include a second parameter to rename the resulting field.</p> +<p><code> +$this->db->select_min('age');<br /> +$query = $this->db->get('members');<br /> +// Produces: SELECT MIN(age) as age FROM members</code></p> + +<h2>$this->db->select_avg();</h2> +<p>Writes a "SELECT AVG(field)" portion for your query. As with <dfn>select_max()</dfn>, You can optionally include a second parameter to rename the resulting field.</p> +<p><code> +$this->db->select_avg('age');<br /> +$query = $this->db->get('members');<br /> +// Produces: SELECT AVG(age) as age FROM members</code></p> + +<h2>$this->db->select_sum();</h2> +<p>Writes a "SELECT SUM(field)" portion for your query. As with <dfn>select_max()</dfn>, You can optionally include a second parameter to rename the resulting field.</p> +<p><code> +$this->db->select_sum('age');<br /> +$query = $this->db->get('members');<br /> +// Produces: SELECT SUM(age) as age FROM members</code></p> + +<h2>$this->db->from();</h2> + +<p>Permits you to write the FROM portion of your query:</p> + +<code> +$this->db->select('title, content, date');<br /> +$this->db->from('mytable');<br /> +<br /> +$query = $this->db->get();<br /> +<br /> +// Produces: SELECT title, content, date FROM mytable</code> + +<p class="important">Note: As shown earlier, the FROM portion of your query can be specified in the <dfn>$this->db->get()</dfn> function, so use whichever method +you prefer.</p> + +<h2>$this->db->join();</h2> + +<p>Permits you to write the JOIN portion of your query:</p> + +<code> +$this->db->select('*');<br /> +$this->db->from('blogs');<br /> +$this->db->join('comments', 'comments.id = blogs.id');<br /> +<br /> +$query = $this->db->get();<br /> +<br /> +// Produces: <br /> +// SELECT * FROM blogs<br /> +// JOIN comments ON comments.id = blogs.id<br /> +</code> + +<p>Multiple function calls can be made if you need several joins in one query.</p> + +<p>If you need a specific type of JOIN you can specify it via the third parameter of the function. +Options are: left, right, outer, inner, left outer, and right outer.</p> + +<code> +$this->db->join('comments', 'comments.id = blogs.id', <strong>'left'</strong>);<br /> +<br /> +// Produces: LEFT JOIN comments ON comments.id = blogs.id</code> + + + + + +<h2>$this->db->where();</h2> +<p>This function enables you to set <strong>WHERE</strong> clauses using one of four methods:</p> + +<p class="important"><strong>Note:</strong> All values passed to this function are escaped automatically, producing safer queries.</p> + +<ol> + <li><strong>Simple key/value method:</strong> + + <code>$this->db->where('name', $name); + <br /><br />// Produces: WHERE name = 'Joe' </code> + + <p>Notice that the equal sign is added for you.</p> + + <p>If you use multiple function calls they will be chained together with <var>AND</var> between them:</p> + + <code>$this->db->where('name', $name);<br /> + $this->db->where('title', $title);<br /> + $this->db->where('status', $status); + <br /><br />// WHERE name = 'Joe' AND title = 'boss' AND status = 'active' </code> </li> + + <li><strong>Custom key/value method:</strong> + + <p>You can include an operator in the first parameter in order to control the comparison:</p> + + <code>$this->db->where('name !=', $name);<br /> + $this->db->where('id <', $id); + <br /><br />// Produces: WHERE name != 'Joe' AND id < 45 </code> </li> + <li><strong>Associative array method:</strong> + + + <code> + $array = array('name' => $name, 'title' => $title, 'status' => $status);<br /><br /> + + $this->db->where($array); + <br /><br />// Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active' </code> + + <p>You can include your own operators using this method as well:</p> + + <code> + $array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);<br /><br /> + + $this->db->where($array);</code> </li> + <li><strong>Custom string:</strong> + + <p>You can write your own clauses manually:</p> + + <code> + $where = "name='Joe' AND status='boss' OR status='active'";<br /><br /> + $this->db->where($where);</code></li> + </ol> + + +<p>$this-&gt;db-&gt;where() accepts an optional third parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks.</p> +<p><code> $this-&gt;db-&gt;where('MATCH (field) AGAINST (&quot;value&quot;)', NULL, FALSE);<br /> +</code></p> +<h2>$this->db->or_where();</h2> +<p>This function is identical to the one above, except that multiple instances are joined by OR:</p> + +<code> +$this->db->where('name !=', $name);<br /> +$this->db->or_where('id >', $id); +<br /> +<br />// Produces: WHERE name != 'Joe' OR id > 50</code> + +<p class="important">Note: or_where() was formerly known as orwhere(), which has been removed.</p> + + +<h2>$this->db->where_in();</h2> +<p>Generates a WHERE field IN ('item', 'item') SQL query joined with AND if appropriate</p> +<p><code> + $names = array('Frank', 'Todd', 'James');<br /> + $this->db->where_in('username', $names);<br /> + // Produces: WHERE username IN ('Frank', 'Todd', 'James')</code></p> + +<h2>$this->db->or_where_in();</h2> +<p>Generates a WHERE field IN ('item', 'item') SQL query joined with OR if appropriate</p> +<p><code> + $names = array('Frank', 'Todd', 'James');<br /> + $this->db->or_where_in('username', $names);<br /> + // Produces: OR username IN ('Frank', 'Todd', 'James')</code></p> + +<h2>$this->db->where_not_in();</h2> +<p>Generates a WHERE field NOT IN ('item', 'item') SQL query joined with AND if appropriate</p> +<p><code> + $names = array('Frank', 'Todd', 'James');<br /> + $this->db->where_not_in('username', $names);<br /> + // Produces: WHERE username NOT IN ('Frank', 'Todd', 'James')</code></p> + +<h2>$this->db->or_where_not_in();</h2> +<p>Generates a WHERE field NOT IN ('item', 'item') SQL query joined with OR if appropriate</p> +<p><code> + $names = array('Frank', 'Todd', 'James');<br /> + $this->db->or_where_not_in('username', $names);<br /> + // Produces: OR username NOT IN ('Frank', 'Todd', 'James')</code></p> + +<h2>$this->db->like();</h2> +<p>This function enables you to generate <strong>LIKE</strong> clauses, useful for doing searches.</p> + +<p class="important"><strong>Note:</strong> All values passed to this function are escaped automatically.</p> + + +<ol> + <li><strong>Simple key/value method:</strong> + + <code>$this->db->like('title', 'match'); + <br /><br />// Produces: WHERE title LIKE '%match%' </code> + + <p>If you use multiple function calls they will be chained together with <var>AND</var> between them:</p> + + <code>$this->db->like('title', 'match');<br /> + $this->db->like('body', 'match'); + <br /><br /> + // WHERE title LIKE '%match%' AND body LIKE '%match%</code> + If you want to control where the wildcard (%) is placed, you can use an optional third argument. Your options are 'before', 'after' and 'both' (which is the default). + <code>$this->db->like('title', 'match', 'before'); + <br /> + // Produces: WHERE title LIKE '%match' <br /> + <br /> + $this-&gt;db-&gt;like('title', 'match', 'after'); <br /> +// Produces: WHERE title LIKE 'match%' <br /> +<br /> + $this-&gt;db-&gt;like('title', 'match', 'both'); <br /> +// Produces: WHERE title LIKE '%match%' </code> </li> + +If you do not want to use the wildcard (%) you can pass to the optional third argument the option 'none'. + +<code> + $this-&gt;db-&gt;like('title', 'match', 'none'); <br /> +// Produces: WHERE title LIKE 'match' +</code> + + <li><strong>Associative array method:</strong> + + <code> + $array = array('title' => $match, 'page1' => $match, 'page2' => $match);<br /><br /> + + $this->db->like($array); + <br /><br />// WHERE title LIKE '%match%' AND page1 LIKE '%match%' AND page2 LIKE '%match%'</code></li> + </ol> + + +<h2>$this->db->or_like();</h2> +<p>This function is identical to the one above, except that multiple instances are joined by OR:</p> + +<code> +$this->db->like('title', 'match');<br /> +$this->db->or_like('body', $match); +<br /> +<br />// WHERE title LIKE '%match%' OR body LIKE '%match%'</code> + + + + +<p class="important">Note: or_like() was formerly known as orlike(), which has been removed.</p> +<h2>$this-&gt;db-&gt;not_like();</h2> +<p>This function is identical to <strong>like()</strong>, except that it generates NOT LIKE statements:</p> +<code> $this-&gt;db-&gt;not_like('title', 'match');<br /> +<br /> +// WHERE title NOT LIKE '%match%</code> +<h2>$this-&gt;db-&gt;or_not_like();</h2> +<p>This function is identical to <strong>not_like()</strong>, except that multiple instances are joined by OR:</p> +<code> $this-&gt;db-&gt;like('title', 'match');<br /> +$this-&gt;db-&gt;or_not_like('body', 'match'); <br /> +<br /> +// WHERE title LIKE '%match% OR body NOT LIKE '%match%'</code> +<h2>$this->db->group_by();</h2> +<p>Permits you to write the GROUP BY portion of your query:</p> + +<code>$this->db->group_by("title"); +<br /><br />// Produces: GROUP BY title +</code> + +<p>You can also pass an array of multiple values as well:</p> + +<code>$this->db->group_by(array("title", "date")); +<br /> +<br />// Produces: GROUP BY title, date</code> + +<p class="important">Note: group_by() was formerly known as groupby(), which has been removed. </p> + +<h2> $this-&gt;db-&gt;distinct();<br /> +</h2> +<p>Adds the &quot;DISTINCT&quot; keyword to a query</p> +<p><code>$this-&gt;db-&gt;distinct();<br /> + $this-&gt;db-&gt;get('table');<br /> + <br /> + // Produces: SELECT DISTINCT * FROM table</code></p> +<h2>$this->db->having();</h2> +<p>Permits you to write the HAVING portion of your query. There are 2 possible syntaxes, 1 argument or 2:</p> + +<code>$this->db->having('user_id = 45'); +<br /> +// Produces: HAVING user_id = 45<br /> +<br /> +$this-&gt;db-&gt;having('user_id', 45); <br /> +// Produces: HAVING user_id = 45<br /> +<br /> +</code> + +<p>You can also pass an array of multiple values as well:</p> + + +<p><code>$this->db->having(array('title =' => 'My Title', 'id <' => $id)); <br /> + <br /> + // Produces: HAVING title = 'My Title', id < 45</code></p> +<p>If you are using a database that CodeIgniter escapes queries for, you can prevent escaping content by passing an optional third argument, and setting it to FALSE.</p> +<p><code>$this-&gt;db-&gt;having('user_id', 45); <br /> +// Produces: HAVING `user_id` = 45 in some databases such as MySQL + <br /> + $this-&gt;db-&gt;having('user_id', 45, FALSE); <br /> +// Produces: HAVING user_id = 45</code></p> +<h2>$this-&gt;db-&gt;or_having();</h2> +<p>Identical to having(), only separates multiple clauses with &quot;OR&quot;.</p> +<h2>$this->db->order_by();</h2> +<p>Lets you set an ORDER BY clause. The first parameter contains the name of the column you would like to order by. +The second parameter lets you set the direction of the result. Options are <kbd>asc</kbd> or <kbd>desc</kbd>, or <kbd>random</kbd>. </p> + +<code>$this->db->order_by("title", "desc"); +<br /> +<br />// Produces: ORDER BY title DESC +</code> + +<p>You can also pass your own string in the first parameter:</p> + +<code>$this->db->order_by('title desc, name asc'); +<br /> +<br />// Produces: ORDER BY title DESC, name ASC +</code> + +<p>Or multiple function calls can be made if you need multiple fields.</p> + +<p><code>$this->db->order_by("title", "desc");<br /> + $this->db->order_by("name", "asc"); <br /> + <br /> + // Produces: ORDER BY title DESC, name ASC + </code></p> +<p class="important">Note: order_by() was formerly known as orderby(), which has been removed.</p> +<p class="important">Note: random ordering is not currently supported in Oracle or MSSQL drivers. These will default to 'ASC'.</p> +<h2>$this->db->limit();</h2> +<p>Lets you limit the number of rows you would like returned by the query:</p> + +<code> +$this->db->limit(10);<br /> +<br /> +// Produces: LIMIT 10</code> + + +<p>The second parameter lets you set a result offset.</p> + +<code> +$this->db->limit(10, 20);<br /> +<br /> +// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</code> + + +<h2>$this->db->count_all_results();</h2> + +<p>Permits you to determine the number of rows in a particular Active Record query. Queries will accept Active Record restrictors such as where(), or_where(), like(), or_like(), etc. Example:</p> +<code>echo $this->db->count_all_results('<var>my_table</var>');<br /> + +// Produces an integer, like 25<br /> +<br /> +$this-&gt;db-&gt;like('title', 'match');<br /> +$this-&gt;db-&gt;from('<var>my_table</var>');<br /> +echo $this-&gt;db-&gt;count_all_results();<br /> +// Produces an integer, like 17 </code> + +<h2>$this->db->count_all();</h2> + +<p>Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:</p> + +<code>echo $this->db->count_all('<var>my_table</var>');<br /> +<br /> +// Produces an integer, like 25</code> + + + +<a name="insert">&nbsp;</a> +<h1>Inserting Data</h1> + +<h2>$this->db->insert();</h2> +<p>Generates an insert string based on the data you supply, and runs the query. You can either pass an +<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p> + +<code> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;'title' => 'My title' ,<br /> +&nbsp;&nbsp;&nbsp;'name' => 'My Name' ,<br /> +&nbsp;&nbsp;&nbsp;'date' => 'My date'<br /> +);<br /> +<br /> +$this->db->insert('mytable', $data); +<br /><br /> +// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')</code> + +<p>The first parameter will contain the table name, the second is an associative array of values.</p> + +<p>Here is an example using an object:</p> + +<code> +/*<br /> +&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $title = 'My Title';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $content = 'My Content';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $date = 'My Date';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +*/<br /> +<br /> +$object = new Myclass;<br /> +<br /> +$this->db->insert('mytable', $object); +<br /><br /> +// Produces: INSERT INTO mytable (title, content, date) VALUES ('My Title', 'My Content', 'My Date')</code> + +<p>The first parameter will contain the table name, the second is an object.</p> + +<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p> + +<h2>$this->db->insert_batch();</h2> +<p>Generates an insert string based on the data you supply, and runs the query. You can either pass an +<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p> + +<code> +$data = array(<br/> +&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => 'My title' ,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => 'My Name' ,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => 'My date'<br /> +&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => 'Another title' ,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => 'Another Name' ,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => 'Another date'<br /> +&nbsp;&nbsp;&nbsp;)<br/> +);<br /> +<br /> +$this->db->insert_batch('mytable', $data); +<br /><br /> +// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')</code> + +<p>The first parameter will contain the table name, the second is an associative array of values.</p> + +<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p> + + + +<h2>$this->db->set();</h2> +<p>This function enables you to set values for <dfn>inserts</dfn> or <dfn>updates</dfn>.</p> + +<p><strong>It can be used instead of passing a data array directly to the insert or update functions:</strong> </p> + +<code>$this->db->set('name', $name); +<br /> +$this->db->insert('mytable'); +<br /><br /> +// Produces: INSERT INTO mytable (name) VALUES ('{$name}')</code> + +<p>If you use multiple function called they will be assembled properly based on whether you are doing an insert or an update:</p> + +<code>$this-&gt;db-&gt;set('name', $name);<br /> +$this-&gt;db-&gt;set('title', $title);<br /> +$this-&gt;db-&gt;set('status', $status);<br /> +$this-&gt;db-&gt;insert('mytable'); </code> +<p><strong>set()</strong> will also accept an optional third parameter ($escape), that will prevent data from being escaped if set to FALSE. To illustrate the difference, here is set() used both with and without the escape parameter.</p> +<p><code>$this-&gt;db-&gt;set('field', 'field+1', FALSE);<br /> + $this-&gt;db-&gt;insert('mytable'); <br /> + // gives INSERT INTO mytable (field) VALUES (field+1)<br /> + <br /> + $this-&gt;db-&gt;set('field', 'field+1');<br /> + $this-&gt;db-&gt;insert('mytable'); <br /> + // gives INSERT INTO mytable (field) VALUES ('field+1')</code></p> +<p>You can also pass an associative array to this function:</p> +<code> +$array = array('name' => $name, 'title' => $title, 'status' => $status);<br /><br /> + +$this->db->set($array);<br /> +$this->db->insert('mytable'); +</code> + +<p>Or an object:</p> + + +<code> +/*<br /> +&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $title = 'My Title';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $content = 'My Content';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $date = 'My Date';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +*/<br /> +<br /> +$object = new Myclass;<br /> +<br /> +$this->db->set($object);<br /> +$this->db->insert('mytable'); +</code> + + + +<a name="update">&nbsp;</a> +<h1>Updating Data</h1> + +<h2>$this->db->update();</h2> +<p>Generates an update string and runs the query based on the data you supply. You can pass an +<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using +an array:</p> + +<code> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => $title,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => $name,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => $date<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->db->where('id', $id);<br /> +$this->db->update('mytable', $data); +<br /><br /> +// Produces:<br /> +// UPDATE mytable <br /> +// SET title = '{$title}', name = '{$name}', date = '{$date}'<br /> +// WHERE id = $id</code> + +<p>Or you can supply an object:</p> + +<code> +/*<br /> +&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $title = 'My Title';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $content = 'My Content';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $date = 'My Date';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +*/<br /> +<br /> +$object = new Myclass;<br /> +<br /> +$this->db->where('id', $id);<br /> +$this->db->update('mytable', $object); +<br /> +<br /> +// Produces:<br /> +// UPDATE mytable <br /> +// SET title = '{$title}', name = '{$name}', date = '{$date}'<br /> +// WHERE id = $id</code> + + + +<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p> + +<p>You'll notice the use of the <dfn>$this->db->where()</dfn> function, enabling you to set the WHERE clause. +You can optionally pass this information directly into the update function as a string:</p> + +<code>$this->db->update('mytable', $data, "id = 4");</code> + +<p>Or as an array:</p> + +<code>$this->db->update('mytable', $data, array('id' => $id));</code> + +<p>You may also use the <dfn>$this->db->set()</dfn> function described above when performing updates.</p> + +<h2>$this->db->update_batch();</h2> +<p>Generates an update string based on the data you supply, and runs the query. You can either pass an +<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p> + +<code> +$data = array(<br/> +&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => 'My title' ,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => 'My Name 2' ,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => 'My date 2'<br /> +&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => 'Another title' ,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => 'Another Name 2' ,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => 'Another date 2'<br /> +&nbsp;&nbsp;&nbsp;)<br/> +);<br /> +<br /> +$this->db->update_batch('mytable', $data, 'title'); +<br /><br /> +// Produces: <br /> +// UPDATE `mytable` SET `name` = CASE<br /> +// WHEN `title` = 'My title' THEN 'My Name 2'<br /> +// WHEN `title` = 'Another title' THEN 'Another Name 2'<br /> +// ELSE `name` END,<br /> +// `date` = CASE <br /> +// WHEN `title` = 'My title' THEN 'My date 2'<br /> +// WHEN `title` = 'Another title' THEN 'Another date 2'<br /> +// ELSE `date` END<br /> +// WHERE `title` IN ('My title','Another title')</code> + +<p>The first parameter will contain the table name, the second is an associative array of values, the third parameter is the where key.</p> + +<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p> + + +<a name="delete">&nbsp;</a> +<h1>Deleting Data</h1> + + + +<h2>$this->db->delete();</h2> +<p>Generates a delete SQL string and runs the query.</p> + +<code> +$this->db->delete('mytable', array('id' => $id)); +<br /><br /> +// Produces:<br /> +// DELETE FROM mytable <br /> +// WHERE id = $id</code> + +<p>The first parameter is the table name, the second is the where clause. You can also use the <dfn>where()</dfn> or <dfn>or_where()</dfn> functions instead of passing +the data to the second parameter of the function:</p> + +<p><code> $this->db->where('id', $id);<br /> + $this->db->delete('mytable'); <br /> + <br /> + // Produces:<br /> + // DELETE FROM mytable <br /> + // WHERE id = $id</code></p> +<p>An array of table names can be passed into delete() if you would like to delete data from more than 1 table.</p> +<p><code>$tables = array('table1', 'table2', 'table3');<br /> +$this-&gt;db-&gt;where('id', '5');<br /> +$this-&gt;db-&gt;delete($tables);</code></p> +<p>If you want to delete all data from a table, you can use the <dfn>truncate()</dfn> function, or <dfn>empty_table()</dfn>.</p> +<h2>$this-&gt;db-&gt;empty_table();</h2> +<p>Generates a delete SQL string and runs the query.<code> $this-&gt;db-&gt;empty_table('mytable'); <br /> + <br /> +// Produces<br /> +// DELETE FROM mytable</code></p> +<h2>$this-&gt;db-&gt;truncate();</h2> +<p>Generates a truncate SQL string and runs the query.</p> +<code> $this-&gt;db-&gt;from('mytable'); <br /> +$this-&gt;db-&gt;truncate(); <br /> +// or <br /> +$this-&gt;db-&gt;truncate('mytable'); <br /> +<br /> +// Produce:<br /> +// TRUNCATE mytable <br /> +</code> +<p class="important"><strong>Note:</strong> If the TRUNCATE command isn't available, truncate() will execute as &quot;DELETE FROM table&quot;.</p> + +<h1><a name="chaining">&nbsp;</a>Method Chaining</h1> + +<p>Method chaining allows you to simplify your syntax by connecting multiple functions. Consider this example:</p> + +<code> +<dfn>$this->db</dfn><kbd>-></kbd><var>select</var>('title')<kbd>-></kbd><var>from</var>('mytable')<kbd>-></kbd><var>where</var>('id', $id)<kbd>-></kbd><var>limit</var>(10, 20);<br /> +<br /> +$query = $this->db->get();</code> + +<p class="important"><strong>Note:</strong> Method chaining only works with PHP 5.</p> + +<p>&nbsp;</p> + +<h1><a name="caching">&nbsp;</a>Active Record Caching</h1> + +<p>While not &quot;true&quot; caching, Active Record enables you to save (or &quot;cache&quot;) certain parts of your queries for reuse at a later point in your script's execution. Normally, when an Active Record call is completed, all stored information is reset for the next call. With caching, you can prevent this reset, and reuse information easily.</p> + +<p>Cached calls are cumulative. If you make 2 cached select() calls, and then 2 uncached select() calls, this will result in 4 select() calls. There are three Caching functions available:</p> + +<h2>$this-&gt;db-&gt;start_cache()</h2> + +<p>This function must be called to begin caching. All Active Record queries of the correct type (see below for supported queries) are stored for later use.</p> + +<h2>$this-&gt;db-&gt;stop_cache()</h2> + +<p>This function can be called to stop caching.</p> + +<h2>$this-&gt;db-&gt;flush_cache()</h2> + +<p>This function deletes all items from the Active Record cache.</p> + +<p>Here's a usage example:</p> + +<p><code>$this-&gt;db-&gt;start_cache();<br /> +$this-&gt;db-&gt;select('field1');<br /> +$this-&gt;db-&gt;stop_cache();<br /><br /> +$this-&gt;db-&gt;get('tablename');<br /> +<br /> +//Generates: SELECT `field1` FROM (`tablename`)<br /> +<br /> +$this-&gt;db-&gt;select('field2');<br /> +$this-&gt;db-&gt;get('tablename');<br /> +<br /> +//Generates: SELECT `field1`, `field2` FROM (`tablename`)<br /> +<br /> +$this-&gt;db-&gt;flush_cache();<br /> +<br /> +$this-&gt;db-&gt;select('field2');<br /> +$this-&gt;db-&gt;get('tablename');<br /> +<br /> +//Generates: SELECT `field2` FROM (`tablename`)</code></p> + +<p class="important"> <strong>Note:</strong> The following statements can be cached: select, from, join, where, like, group_by, having, order_by, set</p> +<p>&nbsp;</p> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="helpers.html">Query Helper Functions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="transactions.html">Transactions</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> diff --git a/user_guide/database/caching.html b/user_guide/database/caching.html new file mode 100755 index 0000000..771f993 --- /dev/null +++ b/user_guide/database/caching.html @@ -0,0 +1,220 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Database Caching Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Database Caching Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Database Caching Class</h1> + +<p>The Database Caching Class permits you to cache your queries as text files for reduced database load.</p> + +<p class="important"><strong>Important:</strong>&nbsp; This class is initialized automatically by the database driver +when caching is enabled. Do NOT load this class manually.<br /><br /> + +<strong>Also note:</strong>&nbsp; Not all query result functions are available when you use caching. Please read this page carefully.</p> + +<h2>Enabling Caching</h2> + +<p>Caching is enabled in three steps:</p> + +<ul> +<li>Create a writable directory on your server where the cache files can be stored.</li> +<li>Set the path to your cache folder in your <dfn>application/config/database.php</dfn> file.</li> +<li>Enable the caching feature, either globally by setting the preference in your <dfn>application/config/database.php</dfn> file, or manually as described below.</li> +</ul> + +<p>Once enabled, caching will happen automatically whenever a page is loaded that contains database queries.</p> + + +<h2>How Does Caching Work?</h2> + +<p>CodeIgniter's query caching system happens dynamically when your pages are viewed. +When caching is enabled, the first time a web page is loaded, the query result object will +be serialized and stored in a text file on your server. The next time the page is loaded the cache file will be used instead of +accessing your database. Your database usage can effectively be reduced to zero for any pages that have been cached.</p> + +<p>Only <dfn>read-type</dfn> (SELECT) queries can be cached, since these are the only type of queries that produce a result. +<dfn>Write-type</dfn> (INSERT, UPDATE, etc.) queries, since they don't generate a result, will not be cached by the system.</p> + +<p>Cache files DO NOT expire. Any queries that have been cached will remain cached until you delete them. The caching system +permits you clear caches associated with individual pages, or you can delete the entire collection of cache files. +Typically you'll want to use the housekeeping functions described below to delete cache files after certain +events take place, like when you've added new information to your database.</p> + +<h2>Will Caching Improve Your Site's Performance?</h2> + +<p>Getting a performance gain as a result of caching depends on many factors. +If you have a highly optimized database under very little load, you probably won't see a performance boost. +If your database is under heavy use you probably will see an improved response, assuming your file-system is not +overly taxed. Remember that caching simply changes how your information is retrieved, shifting it from being a database +operation to a file-system one.</p> + +<p>In some clustered server environments, for example, caching may be detrimental since file-system operations are so intense. +On single servers in shared environments, caching will probably be beneficial. Unfortunately there is no +single answer to the question of whether you should cache your database. It really depends on your situation.</p> + +<h2>How are Cache Files Stored?</h2> + +<p>CodeIgniter places the result of EACH query into its own cache file. Sets of cache files are further organized into +sub-folders corresponding to your controller functions. To be precise, the sub-folders are named identically to the +first two segments of your URI (the controller class name and function name).</p> + +<p>For example, let's say you have a controller called <dfn>blog</dfn> with a function called <dfn>comments</dfn> that +contains three queries. The caching system will create a cache folder +called <kbd>blog+comments</kbd>, into which it will write three cache files.</p> + +<p>If you use dynamic queries that change based on information in your URI (when using pagination, for example), each instance of +the query will produce its own cache file. It's possible, therefore, to end up with many times more cache files than you have +queries.</p> + + +<h2>Managing your Cache Files</h2> + +<p>Since cache files do not expire, you'll need to build deletion routines into your application. For example, let's say you have a blog +that allows user commenting. Whenever a new comment is submitted you'll want to delete the cache files associated with the +controller function that serves up your comments. You'll find two delete functions described below that help you +clear data.</p> + + +<h2>Not All Database Functions Work with Caching</h2> + +<p>Lastly, we need to point out that the result object that is cached is a simplified version of the full result object. For that reason, +some of the query result functions are not available for use.</p> + +<p>The following functions <kbd>ARE NOT</kbd> available when using a cached result object:</p> + +<ul> +<li>num_fields()</li> +<li>field_names()</li> +<li>field_data()</li> +<li>free_result()</li> +</ul> + +<p>Also, the two database resources (result_id and conn_id) are not available when caching, since result resources only +pertain to run-time operations.</p> + + +<br /> + +<h1>Function Reference</h1> + + + +<h2>$this->db->cache_on()&nbsp; / &nbsp; $this->db->cache_off()</h2> + +<p>Manually enables/disables caching. This can be useful if you want to +keep certain queries from being cached. Example:</p> + +<code> +// Turn caching on<br /> +$this->db->cache_on();<br /> +$query = $this->db->query("SELECT * FROM mytable");<br /> +<br /> +// Turn caching off for this one query<br /> +$this->db->cache_off();<br /> +$query = $this->db->query("SELECT * FROM members WHERE member_id = '$current_user'");<br /> +<br /> +// Turn caching back on<br /> +$this->db->cache_on();<br /> +$query = $this->db->query("SELECT * FROM another_table"); +</code> + + +<h2>$this->db->cache_delete()</h2> + +<p>Deletes the cache files associated with a particular page. This is useful if you need to clear caching after you update your database.</p> + +<p>The caching system saves your cache files to folders that correspond to the URI of the page you are viewing. For example, if you are viewing +a page at <dfn>example.com/index.php/blog/comments</dfn>, the caching system will put all cache files associated with it in a folder +called <dfn>blog+comments</dfn>. To delete those particular cache files you will use:</p> + +<code>$this->db->cache_delete('blog', 'comments');</code> + +<p>If you do not use any parameters the current URI will be used when determining what should be cleared.</p> + + +<h2>$this->db->cache_delete_all()</h2> + +<p>Clears all existing cache files. Example:</p> + +<code>$this->db->cache_delete_all();</code> + + + + + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="call_function.html">Custom Function Calls</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="forge.html">Database manipulation with Database Forge</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/call_function.html b/user_guide/database/call_function.html new file mode 100755 index 0000000..35b5d3a --- /dev/null +++ b/user_guide/database/call_function.html @@ -0,0 +1,118 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Custom Function Calls : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Custom Function Calls +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Custom Function Calls</h1> + +<h2>$this->db->call_function();</h2> + +<p>This function enables you to call PHP database functions that are not natively included in CodeIgniter, in a platform independent manner. +For example, lets say you want to call the <dfn>mysql_get_client_info()</dfn> function, which is <strong>not</strong> natively supported +by CodeIgniter. You could do so like this: +</p> + +<code>$this->db->call_function('<var>get_client_info</var>');</code> + +<p>You must supply the name of the function, <strong>without</strong> the <var>mysql_</var> prefix, in the first parameter. The prefix is added +automatically based on which database driver is currently being used. This permits you to run the same function on different database platforms. +Obviously not all function calls are identical between platforms, so there are limits to how useful this function can be in terms of portability.</p> + +<p>Any parameters needed by the function you are calling will be added to the second parameter.</p> + +<code>$this->db->call_function('<var>some_function</var>', $param1, $param2, etc..);</code> + + +<p>Often, you will either need to supply a database connection ID or a database result ID. The connection ID can be accessed using:</p> + +<code>$this->db->conn_id;</code> + +<p>The result ID can be accessed from within your result object, like this:</p> + +<code>$query = $this->db->query("SOME QUERY");<br /> +<br /> +<var>$query->result_id;</var></code> + + + + + + + + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="fields.html">Field MetaData</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="caching.html">Query Caching</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/configuration.html b/user_guide/database/configuration.html new file mode 100755 index 0000000..6c3d7a1 --- /dev/null +++ b/user_guide/database/configuration.html @@ -0,0 +1,164 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Database Configuration : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Configuration +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Database Configuration</h1> + +<p>CodeIgniter has a config file that lets you store your database connection values (username, password, database name, etc.). +The config file is located at <samp>application/config/database.php</samp>. You can also set database connection values for specific <a href="../libraries/config.html">environments</a> by placing <strong>database.php</strong> it the respective environment config folder.</p> + +<p>The config settings are stored in a multi-dimensional array with this prototype:</p> + +<code>$db['default']['hostname'] = "localhost";<br /> +$db['default']['username'] = "root";<br /> +$db['default']['password'] = "";<br /> +$db['default']['database'] = "database_name";<br /> +$db['default']['dbdriver'] = "mysql";<br /> +$db['default']['dbprefix'] = "";<br /> +$db['default']['pconnect'] = TRUE;<br /> +$db['default']['db_debug'] = FALSE;<br /> +$db['default']['cache_on'] = FALSE;<br /> +$db['default']['cachedir'] = &quot;&quot;;<br /> +$db['default']['char_set'] = "utf8";<br /> +$db['default']['dbcollat'] = "utf8_general_ci";<br /> +$db['default']['swap_pre'] = "";<br /> +$db['default']['autoinit'] = TRUE;<br /> +$db['default']['stricton'] = FALSE;</code> + +<p>The reason we use a multi-dimensional array rather than a more simple one is to permit you to optionally store +multiple sets of connection values. If, for example, you run multiple environments (development, production, test, etc.) +under a single installation, you can set up a connection group for each, then switch between groups as needed. +For example, to set up a "test" environment you would do this:</p> + +<code>$db['test']['hostname'] = "localhost";<br /> +$db['test']['username'] = "root";<br /> +$db['test']['password'] = "";<br /> +$db['test']['database'] = "database_name";<br /> +$db['test']['dbdriver'] = "mysql";<br /> +$db['test']['dbprefix'] = "";<br /> +$db['test']['pconnect'] = TRUE;<br /> +$db['test']['db_debug'] = FALSE;<br /> +$db['test']['cache_on'] = FALSE;<br /> +$db['test']['cachedir'] = &quot;&quot;;<br /> +$db['test']['char_set'] = "utf8";<br /> +$db['test']['dbcollat'] = "utf8_general_ci";<br /> +$db['test']['swap_pre'] = "";<br /> +$db['test']['autoinit'] = TRUE;<br /> +$db['test']['stricton'] = FALSE;</code> + + +<p>Then, to globally tell the system to use that group you would set this variable located in the config file:</p> + +<code>$active_group = "test";</code> + +<p>Note: The name "test" is arbitrary. It can be anything you want. By default we've used the word "default" +for the primary connection, but it too can be renamed to something more relevant to your project.</p> + +<h3>Active Record</h3> + +<p>The <a href="active_record.html">Active Record Class</a> is globally enabled or disabled by setting the $active_record variable in the database configuration file to TRUE/FALSE (boolean). If you are not using the active record class, setting it to FALSE will utilize fewer resources when the database classes are initialized.</p> + +<code>$active_record = TRUE;</code> + +<p class="important"><strong>Note:</strong> that some CodeIgniter classes such as Sessions require Active Records be enabled to access certain functionality.</p> + +<h3>Explanation of Values:</h3> + +<ul> +<li><strong>hostname</strong> - The hostname of your database server. Often this is "localhost".</li> +<li><strong>username</strong> - The username used to connect to the database.</li> +<li><strong>password</strong> - The password used to connect to the database.</li> +<li><strong>database</strong> - The name of the database you want to connect to.</li> +<li><strong>dbdriver</strong> - The database type. ie: mysql, postgres, odbc, etc. Must be specified in lower case.</li> +<li><strong>dbprefix</strong> - An optional table prefix which will added to the table name when running <a href="active_record.html">Active Record</a> queries. This permits multiple CodeIgniter installations to share one database.</li> +<li><strong>pconnect</strong> - TRUE/FALSE (boolean) - Whether to use a persistent connection.</li> +<li><strong>db_debug</strong> - TRUE/FALSE (boolean) - Whether database errors should be displayed.</li> +<li><strong>cache_on</strong> - TRUE/FALSE (boolean) - Whether database query caching is enabled, see also <a href="caching.html">Database Caching Class</a>.</li> +<li><strong>cachedir</strong> - The absolute server path to your database query cache directory.</li> +<li><strong>char_set</strong> - The character set used in communicating with the database.</li> +<li><strong>dbcollat</strong> - The character collation used in communicating with the database. <p class="important"><strong>Note:</strong> For MySQL and MySQLi databases, this setting is only used as a backup if your server is running PHP &lt; 5.2.3 or MySQL &lt; 5.0.7 (and in table creation queries made with DB Forge). There is an incompatibility in PHP with mysql_real_escape_string() which can make your site vulnerable to SQL injection if you are using a multi-byte character set and are running versions lower than these. Sites using Latin-1 or UTF-8 database character set and collation are unaffected.</p></li> +<li><strong>swap_pre</strong> - A default table prefix that should be swapped with <var>dbprefix</var>. This is useful for distributed applications where you might run manually written queries, and need the prefix to still be customizable by the end user.</li> +<li><strong>autoinit</strong> - Whether or not to automatically connect to the database when the library loads. If set to false, the connection will take place prior to executing the first query.</li> +<li><strong>stricton</strong> - TRUE/FALSE (boolean) - Whether to force "Strict Mode" connections, good for ensuring strict SQL while developing an application.</li> +<li><strong>port</strong> - The database port number. To use this value you have to add a line to the database config array.<code>$db['default']['port'] = 5432;</code> +</ul> + +<p class="important"><strong>Note:</strong> Depending on what database platform you are using (MySQL, Postgres, etc.) +not all values will be needed. For example, when using SQLite you will not need to supply a username or password, and +the database name will be the path to your database file. The information above assumes you are using MySQL.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="examples.html">Quick Start: Usage Examples</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="connecting.html">Connecting to your Database</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/connecting.html b/user_guide/database/connecting.html new file mode 100755 index 0000000..679fb0b --- /dev/null +++ b/user_guide/database/connecting.html @@ -0,0 +1,188 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Connecting to your Database : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Connecting +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Connecting to your Database</h1> + +<p>There are two ways to connect to a database:</p> + +<h2>Automatically Connecting</h2> + +<p>The "auto connect" feature will load and instantiate the database class with every page load. +To enable "auto connecting", add the word <var>database</var> to the library array, as indicated in the following file:</p> + +<p><kbd>application/config/autoload.php</kbd></p> + +<h2>Manually Connecting</h2> + +<p>If only some of your pages require database connectivity you can manually connect to your database by adding this +line of code in any function where it is needed, or in your class constructor to make the database +available globally in that class.</p> + +<code>$this->load->database();</code> + +<p class="important">If the above function does <strong>not</strong> contain any information in the first parameter it will connect +to the group specified in your database config file. For most people, this is the preferred method of use.</p> + +<h3>Available Parameters</h3> + +<ol> + <li>The database connection values, passed either as an array or a DSN string.</li> + <li>TRUE/FALSE (boolean). Whether to return the connection ID (see Connecting to Multiple Databases below).</li> + <li>TRUE/FALSE (boolean). Whether to enable the Active Record class. Set to TRUE by default.</li> +</ol> + + +<h3>Manually Connecting to a Database</h3> + +<p>The first parameter of this function can <strong>optionally</strong> be used to specify a particular database group +from your config file, or you can even submit connection values for a database that is not specified in your config file. +Examples:</p> + +<p>To choose a specific group from your config file you can do this:</p> + +<code>$this->load->database('<samp>group_name</samp>');</code> + +<p>Where <samp>group_name</samp> is the name of the connection group from your config file.</p> + + +<p>To connect manually to a desired database you can pass an array of values:</p> + +<code>$config['hostname'] = "localhost";<br /> +$config['username'] = "myusername";<br /> +$config['password'] = "mypassword";<br /> +$config['database'] = "mydatabase";<br /> +$config['dbdriver'] = "mysql";<br /> +$config['dbprefix'] = "";<br /> +$config['pconnect'] = FALSE;<br /> +$config['db_debug'] = TRUE;<br /> +$config['cache_on'] = FALSE;<br /> +$config['cachedir'] = "";<br /> +$config['char_set'] = "utf8";<br /> +$config['dbcollat'] = "utf8_general_ci";<br /> +<br /> +$this->load->database(<samp>$config</samp>);</code> + +<p>For information on each of these values please see the <a href="configuration.html">configuration page</a>.</p> + +<p>Or you can submit your database values as a Data Source Name. DSNs must have this prototype:</p> + +<code>$dsn = 'dbdriver://username:password@hostname/database';<br /> +<br /> +$this->load->database(<samp>$dsn</samp>);</code> + +<p>To override default config values when connecting with a DSN string, add the config variables as a query string.</p> + +<code>$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&amp;dbcollat=utf8_general_ci&amp;cache_on=true&amp;cachedir=/path/to/cache';<br /> +<br /> +$this->load->database(<samp>$dsn</samp>);</code> + +<h2>Connecting to Multiple Databases</h2> + +<p>If you need to connect to more than one database simultaneously you can do so as follows:</p> + + +<code>$DB1 = $this->load->database('group_one', TRUE);<br /> +$DB2 = $this->load->database('group_two', TRUE); +</code> + +<p>Note: Change the words "group_one" and "group_two" to the specific group names you are connecting to (or +you can pass the connection values as indicated above).</p> + +<p>By setting the second parameter to TRUE (boolean) the function will return the database object.</p> + +<div class="important"> +<p>When you connect this way, you will use your object name to issue commands rather than the syntax used throughout this guide. In other words, rather than issuing commands with:</p> + +<p>$this->db->query();<br />$this->db->result();<br /> etc...</p> + +<p>You will instead use:</p> + +<p>$DB1->query();<br />$DB1->result();<br /> etc...</p> + +</div> + +<h2>Reconnecting / Keeping the Connection Alive</h2> + +<p>If the database server's idle timeout is exceeded while you're doing some heavy PHP lifting (processing an image, for instance), you should consider pinging the server by using the <dfn>reconnect()</dfn> method before sending further queries, which can gracefully keep the connection alive or re-establish it.</p> + +<code>$this->db->reconnect();</code> + +<h2>Manually closing the Connection</h2> + +<p>While CodeIgniter intelligently takes care of closing your database connections, you can explicitly close the connection.</p> + +<code>$this->db->close();</code> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="configuration.html">Database Configuration</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="queries.html">Queries</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/examples.html b/user_guide/database/examples.html new file mode 100755 index 0000000..c130e8a --- /dev/null +++ b/user_guide/database/examples.html @@ -0,0 +1,217 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Database Quick Start : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Database Example Code +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Database Quick Start: Example Code</h1> + +<p>The following page contains example code showing how the database class is used. For complete details please +read the individual pages describing each function.</p> + + +<h2>Initializing the Database Class</h2> + +<p>The following code loads and initializes the database class based on your <a href="configuration.html">configuration</a> settings:</p> + +<code>$this->load->database();</code> + +<p>Once loaded the class is ready to be used as described below.</p> + +<p>Note: If all your pages require database access you can connect automatically. See the <a href="connecting.html">connecting</a> page for details.</p> + + +<h2>Standard Query With Multiple Results (Object Version)</h2> + +<code>$query = $this->db->query('SELECT name, title, email FROM my_table');<br /> +<br /> +foreach ($query->result() as $row)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $row->name;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $row->email;<br /> +}<br /> +<br /> +echo 'Total Results: ' . $query->num_rows(); +</code> + +<p>The above <dfn>result()</dfn> function returns an array of <strong>objects</strong>. Example: $row->title</p> + + +<h2>Standard Query With Multiple Results (Array Version)</h2> + +<code>$query = $this->db->query('SELECT name, title, email FROM my_table');<br /> +<br /> +foreach ($query->result_array() as $row)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $row['title'];<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $row['name'];<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $row['email'];<br /> +}</code> + +<p>The above <dfn>result_array()</dfn> function returns an array of standard array indexes. Example: $row['title']</p> + + +<h2>Testing for Results</h2> + +<p>If you run queries that might <strong>not</strong> produce a result, you are encouraged to test for a result first +using the <dfn>num_rows()</dfn> function:</p> + +<code> +$query = $this->db->query("YOUR QUERY");<br /> +<br /> +if ($query->num_rows() > 0)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;foreach ($query->result() as $row)<br /> +&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->name;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->body;<br /> +&nbsp;&nbsp;&nbsp;}<br /> +} +</code> + + + + +<h2>Standard Query With Single Result</h2> + +<code>$query = $this->db->query('SELECT name FROM my_table LIMIT 1');<br /> +<br /> +$row = $query->row();<br /> +echo $row->name;<br /> +</code> + +<p>The above <dfn>row()</dfn> function returns an <strong>object</strong>. Example: $row->name</p> + + +<h2>Standard Query With Single Result (Array version)</h2> + +<code>$query = $this->db->query('SELECT name FROM my_table LIMIT 1');<br /> +<br /> +$row = $query->row_array();<br /> +echo $row['name'];<br /> +</code> + +<p>The above <dfn>row_array()</dfn> function returns an <strong>array</strong>. Example: $row['name']</p> + + +<h2>Standard Insert</h2> + +<code> +$sql = "INSERT INTO mytable (title, name) <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";<br /> +<br /> +$this->db->query($sql);<br /> +<br /> +echo $this->db->affected_rows(); +</code> + + + + +<h2>Active Record Query</h2> + +<p>The <a href="active_record.html">Active Record Pattern</a> gives you a simplified means of retrieving data:</p> + +<code> +$query = $this->db->get('table_name');<br /> +<br /> +foreach ($query->result() as $row)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br /> +}</code> + +<p>The above <dfn>get()</dfn> function retrieves all the results from the supplied table. +The <a href="active_record.html">Active Record</a> class contains a full compliment of functions +for working with data.</p> + + +<h2>Active Record Insert</h2> + +<code> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => $title,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => $name,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => $date<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->db->insert('mytable', $data); +<br /><br /> +// Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')</code> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Database Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="configuration.html">Database Configuration</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/fields.html b/user_guide/database/fields.html new file mode 100755 index 0000000..da38810 --- /dev/null +++ b/user_guide/database/fields.html @@ -0,0 +1,163 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Field Data : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Field Names +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Field Data</h1> + + +<h2>$this->db->list_fields()</h2> +<p>Returns an array containing the field names. This query can be called two ways:</p> + + +<p>1. You can supply the table name and call it from the <dfn>$this->db-></dfn> object:</p> + +<code> +$fields = $this->db->list_fields('table_name');<br /><br /> + +foreach ($fields as $field)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;echo $field;<br /> +} +</code> + +<p>2. You can gather the field names associated with any query you run by calling the function +from your query result object:</p> + +<code> +$query = $this->db->query('SELECT * FROM some_table'); +<br /><br /> + +foreach ($query->list_fields() as $field)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;echo $field;<br /> +} +</code> + + +<h2>$this->db->field_exists()</h2> + +<p>Sometimes it's helpful to know whether a particular field exists before performing an action. +Returns a boolean TRUE/FALSE. Usage example:</p> + +<code> +if ($this->db->field_exists('field_name', 'table_name'))<br /> +{<br /> +&nbsp;&nbsp; // some code...<br /> +} +</code> + +<p>Note: Replace <em>field_name</em> with the name of the column you are looking for, and replace +<em>table_name</em> with the name of the table you are looking for.</p> + + +<h2>$this->db->field_data()</h2> +<p>Returns an array of objects containing field information.</p> +<p>Sometimes it's helpful to gather the field names or other metadata, like the column type, max length, etc.</p> + + +<p class="important">Note: Not all databases provide meta-data.</p> + +<p>Usage example:</p> + +<code> +$fields = $this->db->field_data('table_name');<br /><br /> + +foreach ($fields as $field)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;echo $field->name;<br /> +&nbsp;&nbsp;&nbsp;echo $field->type;<br /> +&nbsp;&nbsp;&nbsp;echo $field->max_length;<br /> +&nbsp;&nbsp;&nbsp;echo $field->primary_key;<br /> +} +</code> + +<p>If you have run a query already you can use the result object instead of supplying the table name:</p> + +<code> +$query = $this->db->query("YOUR QUERY");<br /> +$fields = $query->field_data(); +</code> + + +<p>The following data is available from this function if supported by your database:</p> + +<ul> +<li>name - column name</li> +<li>max_length - maximum length of the column</li> +<li>primary_key - 1 if the column is a primary key</li> +<li>type - the type of the column</li> +</ul> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="table_data.html"> Table Data</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="call_function.html">Custom Function Calls</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/forge.html b/user_guide/database/forge.html new file mode 100755 index 0000000..99e01fb --- /dev/null +++ b/user_guide/database/forge.html @@ -0,0 +1,234 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Database Forge Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Database Forge Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Database Forge Class</h1> + +<p>The Database Forge Class contains functions that help you manage your database.</p> + +<h3>Table of Contents</h3> + +<ul> +<li><a href="#init">Initializing the Forge Class</a></li> +<li><a href="#create">Creating a Database</a></li> +<li><a href="#drop">Dropping a Database</a></li> +<li><a href="#add_field">Adding Fields</a></li> +<li><a href="#add_key">Adding Keys</a></li> +<li><a href="#create_table">Creating a Table</a></li> +<li><a href="#drop_table">Dropping a Table</a></li> +<li><a href="#rename_table">Renaming a Table</a></li> +<li><a href="#modifying_tables">Modifying a Table</a></li> +</ul> + + +<h2><a name="init"></a>Initializing the Forge Class</h2> + +<p class="important"><strong>Important:</strong>&nbsp; In order to initialize the Forge class, your database driver must +already be running, since the forge class relies on it.</p> + +<p>Load the Forge Class as follows:</p> + +<code>$this->load->dbforge()</code> + +<p>Once initialized you will access the functions using the <dfn>$this->dbforge</dfn> object:</p> + +<code>$this->dbforge->some_function()</code> +<h2><a name="create"></a>$this->dbforge->create_database('db_name')</h2> + +<p>Permits you to create the database specified in the first parameter. Returns TRUE/FALSE based on success or failure:</p> + +<code>if ($this->dbforge->create_database('my_db'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp; echo 'Database created!';<br /> +}</code> + + + + +<h2><a name="drop"></a>$this->dbforge->drop_database('db_name')</h2> + +<p>Permits you to drop the database specified in the first parameter. Returns TRUE/FALSE based on success or failure:</p> + +<code>if ($this->dbforge->drop_database('my_db'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp; echo 'Database deleted!';<br /> +}</code> + + +<h1>Creating and Dropping Tables</h1> +<p>There are several things you may wish to do when creating tables. Add fields, add keys to the table, alter columns. CodeIgniter provides a mechanism for this.</p> +<h2><a name="add_field" id="add_field"></a>Adding fields</h2> +<p>Fields are created via an associative array. Within the array you must include a 'type' key that relates to the datatype of the field. For example, INT, VARCHAR, TEXT, etc. Many datatypes (for example VARCHAR) also require a 'constraint' key.</p> +<p><code>$fields = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'users' =&gt; array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'type' =&gt; 'VARCHAR',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'constraint' =&gt; '100',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> + <br /> +// will translate to &quot;users VARCHAR(100)&quot; when the field is added.</code></p> +<p>Additionally, the following key/values can be used:</p> +<ul> + <li>unsigned/true : to generate &quot;UNSIGNED&quot; in the field definition.</li> + <li>default/value : to generate a default value in the field definition.</li> + <li>null/true : to generate &quot;NULL&quot; in the field definition. Without this, the field will default to &quot;NOT NULL&quot;.</li> + <li>auto_increment/true : generates an auto_increment flag on the field. Note that the field type must be a type that supports this, such as integer.</li> + </ul> +<p><code>$fields = array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_id' =&gt; array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'type' =&gt; 'INT',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'constraint' =&gt; 5, <br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'unsigned' =&gt; TRUE,<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'auto_increment' =&gt; TRUE<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_title' =&gt; array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'type' =&gt; 'VARCHAR',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'constraint' =&gt; '100',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_author' =&gt; array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'type' =&gt;'VARCHAR',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'constraint' =&gt; '100',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'default' =&gt; 'King of Town',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_description' =&gt; array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'type' =&gt; 'TEXT',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'null' =&gt; TRUE,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +</code></p> +<p>After the fields have been defined, they can be added using <dfn>$this-&gt;dbforge-&gt;add_field($fields);</dfn> followed by a call to the <dfn>create_table()</dfn> function.</p> +<h3>$this-&gt;dbforge-&gt;add_field()</h3> +<p>The add fields function will accept the above array.</p> +<h3>Passing strings as fields</h3> +<p>If you know exactly how you want a field to be created, you can pass the string into the field definitions with add_field()</p> +<p><code>$this-&gt;dbforge-&gt;add_field(&quot;label varchar(100) NOT NULL DEFAULT 'default label'&quot;);</code></p> +<p class="important">Note: Multiple calls to <dfn>add_field()</dfn> are cumulative.</p> +<h3>Creating an id field</h3> +<p>There is a special exception for creating id fields. A field with type id will automatically be assinged as an INT(9) auto_incrementing Primary Key.</p> +<p><code>$this-&gt;dbforge-&gt;add_field('id');<br /> + // gives id INT(9) NOT NULL AUTO_INCREMENT</code></p> +<h2><a name="add_key" id="add_key"></a>Adding Keys</h2> +<p>Generally speaking, you'll want your table to have Keys. This is accomplished with <dfn>$this-&gt;dbforge-&gt;add_key('field')</dfn>. An optional second parameter set to TRUE will make it a primary key. Note that <dfn>add_key()</dfn> must be followed by a call to <dfn>create_table()</dfn>.</p> +<p>Multiple column non-primary keys must be sent as an array. Sample output below is for MySQL.</p> +<p><code>$this-&gt;dbforge-&gt;add_key('blog_id', TRUE);<br /> + // gives PRIMARY KEY `blog_id` (`blog_id`)<br /> + <br /> + $this-&gt;dbforge-&gt;add_key('blog_id', TRUE);<br /> + $this-&gt;dbforge-&gt;add_key('site_id', TRUE);<br /> + // gives PRIMARY KEY `blog_id_site_id` (`blog_id`, `site_id`)<br /> + <br /> + $this-&gt;dbforge-&gt;add_key('blog_name');<br /> + // gives KEY `blog_name` (`blog_name`)<br /> + <br /> + $this-&gt;dbforge-&gt;add_key(array('blog_name', 'blog_label'));<br /> + // gives KEY `blog_name_blog_label` (`blog_name`, `blog_label`)</code></p> +<h2><a name="create_table" id="create_table"></a>Creating a table</h2> +<p>After fields and keys have been declared, you can create a new table with</p> +<p><code>$this-&gt;dbforge-&gt;create_table('table_name');<br /> +// gives CREATE TABLE table_name</code></p> +<p>An optional second parameter set to TRUE adds an &quot;IF NOT EXISTS&quot; clause into the definition</p> +<p><code>$this-&gt;dbforge-&gt;create_table('table_name', TRUE);<br /> +// gives CREATE TABLE IF NOT EXISTS table_name</code></p> +<h2><a name="drop_table" id="drop_table"></a>Dropping a table</h2> +<p>Executes a DROP TABLE sql</p> +<p><code>$this-&gt;dbforge-&gt;drop_table('table_name');<br /> + // gives DROP TABLE IF EXISTS table_name</code></p> +<h2><a name="rename_table" id="rename_table"></a>Renaming a table</h2> +<p>Executes a TABLE rename</p> +<p><code>$this-&gt;dbforge-&gt;rename_table('old_table_name', 'new_table_name');<br /> + // gives ALTER TABLE old_table_name RENAME TO new_table_name</code></p> +<h1><a name="modifying_tables" id="modifying_tables"></a>Modifying Tables</h1> +<h2>$this-&gt;dbforge-&gt;add_column()</h2> +<p>The add_column() function is used to modify an existing table. It accepts the same field array as above, and can be used for an unlimited number of additional fields.</p> +<p><code>$fields = array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'preferences' =&gt; array('type' =&gt; 'TEXT')<br /> +);<br /> +$this-&gt;dbforge-&gt;add_column('table_name', $fields);<br /> +<br /> +// gives ALTER TABLE table_name ADD preferences TEXT</code></p> +<h2>$this-&gt;dbforge-&gt;drop_column()</h2> +<p>Used to remove a column from a table. </p> +<p><code>$this-&gt;dbforge-&gt;drop_column('table_name', 'column_to_drop');</code></p> +<h2>$this-&gt;dbforge-&gt;modify_column()</h2> +<p>The usage of this function is identical to add_column(), except it alters an existing column rather than adding a new one. In order to change the name you can add a &quot;name&quot; key into the field defining array.</p> +<p><code>$fields = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'old_name' =&gt; array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' =&gt; 'new_name',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'type' =&gt; 'TEXT',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +);<br /> +$this-&gt;dbforge-&gt;modify_column('table_name', $fields);<br /> + <br /> + // gives ALTER TABLE table_name CHANGE old_name new_name TEXT </code></p> +<p>&nbsp;</p> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="caching.html">DB Caching Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="utilities.html">Database Utilities Class</a><a href="../libraries/email.html"></a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/helpers.html b/user_guide/database/helpers.html new file mode 100755 index 0000000..02d08ef --- /dev/null +++ b/user_guide/database/helpers.html @@ -0,0 +1,151 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Query Helper Functions : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Query Helpers +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Query Helper Functions</h1> + + +<h2>$this->db->insert_id()</h2> +<p>The insert ID number when performing database inserts.</p> + +<h2>$this->db->affected_rows()</h2> +<p>Displays the number of affected rows, when doing "write" type queries (insert, update, etc.).</p> +<p>Note: In MySQL "DELETE FROM TABLE" returns 0 affected rows. The database class has a small hack that allows it to return the +correct number of affected rows. By default this hack is enabled but it can be turned off in the database driver file.</p> + + +<h2>$this->db->count_all();</h2> +<p>Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:</p> +<code>echo $this->db->count_all('<var>my_table</var>');<br /> +<br /> +// Produces an integer, like 25 +</code> + + +<h2>$this->db->platform()</h2> +<p>Outputs the database platform you are running (MySQL, MS SQL, Postgres, etc...):</p> +<code>echo $this->db->platform();</code> + + +<h2>$this->db->version()</h2> +<p>Outputs the database version you are running:</p> +<code>echo $this->db->version();</code> + + +<h2>$this->db->last_query();</h2> +<p>Returns the last query that was run (the query string, not the result). Example:</p> + +<code>$str = $this->db->last_query();<br /> +<br /> +// Produces: SELECT * FROM sometable.... +</code> + + +<p>The following two functions help simplify the process of writing database INSERTs and UPDATEs.</p> + + +<h2>$this->db->insert_string(); </h2> +<p>This function simplifies the process of writing database inserts. It returns a correctly formatted SQL insert string. Example:</p> + +<code>$data = array('name' => $name, 'email' => $email, 'url' => $url);<br /> +<br /> +$str = $this->db->insert_string('table_name', $data); +</code> + +<p>The first parameter is the table name, the second is an associative array with the data to be inserted. The above example produces:</p> +<code>INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@example.com', 'example.com')</code> + +<p class="important">Note: Values are automatically escaped, producing safer queries.</p> + + + +<h2>$this->db->update_string(); </h2> +<p>This function simplifies the process of writing database updates. It returns a correctly formatted SQL update string. Example:</p> + +<code>$data = array('name' => $name, 'email' => $email, 'url' => $url);<br /> +<br /> +$where = "author_id = 1 AND status = 'active'"; +<br /><br /> +$str = $this->db->update_string('table_name', $data, $where); +</code> + +<p>The first parameter is the table name, the second is an associative array with the data to be updated, and the third parameter is the "where" clause. The above example produces:</p> +<code> UPDATE table_name SET name = 'Rick', email = 'rick@example.com', url = 'example.com' WHERE author_id = 1 AND status = 'active'</code> + +<p class="important">Note: Values are automatically escaped, producing safer queries.</p> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="results.html">Query Results</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="active_record.html">Active Record Pattern</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/index.html b/user_guide/database/index.html new file mode 100755 index 0000000..3bfcba4 --- /dev/null +++ b/user_guide/database/index.html @@ -0,0 +1,99 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>The Database Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Database Library +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>The Database Class</h1> + +<p>CodeIgniter comes with a full-featured and very fast abstracted database class that supports both traditional +structures and Active Record patterns. The database functions offer clear, simple syntax.</p> + + <ul> + <li><a href="examples.html">Quick Start: Usage Examples</a></li> + <li><a href="configuration.html">Database Configuration</a></li> + <li><a href="connecting.html">Connecting to a Database</a></li> + <li><a href="queries.html">Running Queries</a></li> + <li><a href="results.html">Generating Query Results</a></li> + <li><a href="helpers.html">Query Helper Functions</a></li> + <li><a href="active_record.html">Active Record Class</a></li> + <li><a href="transactions.html">Transactions</a></li> + <li><a href="table_data.html">Table MetaData</a></li> + <li><a href="fields.html">Field MetaData</a></li> + <li><a href="call_function.html">Custom Function Calls</a></li> + <li><a href="caching.html">Query Caching</a></li> + <li><a href="forge.html">Database manipulation with Database Forge</a></li> + <li><a href="utilities.html">Database Utilities Class</a></li> + </ul> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../libraries/caching.html">Caching Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="examples.html">Quick Start: Usage Examples</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/queries.html b/user_guide/database/queries.html new file mode 100755 index 0000000..63eb0c0 --- /dev/null +++ b/user_guide/database/queries.html @@ -0,0 +1,158 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Queries : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Queries +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Queries</h1> + +<h2>$this->db->query();</h2> + +<p>To submit a query, use the following function:</p> + +<code>$this->db->query('YOUR QUERY HERE');</code> + +<p>The <dfn>query()</dfn> function returns a database result <strong>object</strong> when "read" type queries are run, +which you can use to <a href="results.html">show your results</a>. When "write" type queries are run it simply returns TRUE or FALSE +depending on success or failure. When retrieving data you will typically assign the query to your own variable, like this:</p> + +<code><var>$query</var> = $this->db->query('YOUR QUERY HERE');</code> + +<h2>$this->db->simple_query();</h2> + +<p>This is a simplified version of the <dfn>$this->db->query()</dfn> function. It ONLY returns TRUE/FALSE on success or failure. +It DOES NOT return a database result set, nor does it set the query timer, or compile bind data, or store your query for debugging. +It simply lets you submit a query. Most users will rarely use this function.</p> + + +<h1>Working with Database prefixes manually</h1> +<p>If you have configured a database prefix and would like to prepend it to a table name for use in a native SQL query for example, then you can use the following:</p> +<p><code>$this-&gt;db-&gt;dbprefix('tablename');<br /> +// outputs prefix_tablename</code></p> + +<p>If for any reason you would like to change the prefix programatically without needing to create a new connection, you can use this method:</p> +<p><code>$this-&gt;db-&gt;set_dbprefix('newprefix');<br /><br /> +$this-&gt;db-&gt;dbprefix('tablename');<br /> +// outputs newprefix_tablename</code></p> + + +<h1>Protecting identifiers</h1> +<p>In many databases it is advisable to protect table and field names - for example with backticks in MySQL. <strong>Active Record queries are automatically protected</strong>, however if you need to manually protect an identifier you can use:</p> +<p><code>$this-&gt;db-&gt;protect_identifiers('table_name');</code></p> + +<p>This function will also add a table prefix to your table, assuming you have a prefix specified in your database config file. To enable the prefixing set <kbd>TRUE</kbd> (boolen) via the second parameter:</p> +<p><code>$this-&gt;db-&gt;protect_identifiers('table_name', <kbd>TRUE</kbd>);</code></p> + + +<h1>Escaping Queries</h1> +<p>It's a very good security practice to escape your data before submitting it into your database. +CodeIgniter has three methods that help you do this:</p> + +<ol> +<li><strong>$this->db->escape()</strong> This function determines the data type so that it +can escape only string data. It also automatically adds single quotes around the data so you don't have to: + +<code>$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";</code></li> + +<li><strong>$this->db->escape_str()</strong> This function escapes the data passed to it, regardless of type. +Most of the time you'll use the above function rather than this one. Use the function like this: + +<code>$sql = "INSERT INTO table (title) VALUES('".$this->db->escape_str($title)."')";</code></li> + +<li><strong>$this->db->escape_like_str()</strong> This method should be used when strings are to be used in LIKE +conditions so that LIKE wildcards ('%', '_') in the string are also properly escaped. + +<code>$search = '20% raise';<br /> +$sql = "SELECT id FROM table WHERE column LIKE '%".$this->db->escape_like_str($search)."%'";</code></li> + +</ol> + + +<h1>Query Bindings</h1> + + +<p>Bindings enable you to simplify your query syntax by letting the system put the queries together for you. Consider the following example:</p> + +<code> +$sql = "SELECT * FROM some_table WHERE id = <var>?</var> AND status = <var>?</var> AND author = <var>?</var>"; +<br /><br /> +$this->db->query($sql, array(3, 'live', 'Rick')); +</code> + +<p>The question marks in the query are automatically replaced with the values in the array in the second parameter of the query function.</p> +<p class="important">The secondary benefit of using binds is that the values are automatically escaped, producing safer queries. You don't have to remember to manually escape data; the engine does it automatically for you.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="connecting.html">Connecting to your Database</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="results.html">Query Results</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/results.html b/user_guide/database/results.html new file mode 100755 index 0000000..1b7d957 --- /dev/null +++ b/user_guide/database/results.html @@ -0,0 +1,259 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Generating Query Results : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Query Results +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + + +<h1>Generating Query Results</h1> + + +<p>There are several ways to generate query results:</p> + + <h2>result()</h2> + + <p>This function returns the query result as an array of <strong>objects</strong>, or <strong>an empty array</strong> on failure. + + Typically you'll use this in a foreach loop, like this:</p> + + <code> + $query = $this->db->query("YOUR QUERY");<br /> + <br /> + foreach ($query->result() as $row)<br /> + {<br /> + &nbsp;&nbsp;&nbsp;echo $row->title;<br /> + &nbsp;&nbsp;&nbsp;echo $row->name;<br /> + &nbsp;&nbsp;&nbsp;echo $row->body;<br /> + }</code> + + <p>The above <dfn>function</dfn> is an alias of <dfn>result_object()</dfn>.</p> + + <p>If you run queries that might <strong>not</strong> produce a result, you are encouraged to test the result first:</p> + + <code> + $query = $this->db->query("YOUR QUERY");<br /> + <br /> + if ($query->num_rows() > 0)<br /> + {<br /> + &nbsp;&nbsp;&nbsp;foreach ($query->result() as $row)<br /> + &nbsp;&nbsp;&nbsp;{<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->name;<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->body;<br /> + &nbsp;&nbsp;&nbsp;}<br /> + } + </code> + + <p>You can also pass a string to result() which represents a class to instantiate for each result object (note: this class must be loaded)</p> + + <code> + $query = $this->db->query("SELECT * FROM users;");<br /> + <br /> + foreach ($query->result('User') as $row)<br /> + {<br /> + &nbsp;&nbsp;&nbsp;echo $row->name; // call attributes<br /> + &nbsp;&nbsp;&nbsp;echo $row->reverse_name(); // or methods defined on the 'User' class<br /> + } + </code> + + <h2>result_array()</h2> + + <p>This function returns the query result as a pure array, or an empty array when no result is produced. Typically you'll use this in a foreach loop, like this:</p> + <code> + $query = $this->db->query("YOUR QUERY");<br /> + <br /> + foreach ($query->result_array() as $row)<br /> + {<br /> + &nbsp;&nbsp;&nbsp;echo $row['title'];<br /> + &nbsp;&nbsp;&nbsp;echo $row['name'];<br /> + &nbsp;&nbsp;&nbsp;echo $row['body'];<br /> + }</code> + + + <h2>row()</h2> + + <p>This function returns a single result row. If your query has more than one row, it returns only the first row. + The result is returned as an <strong>object</strong>. Here's a usage example:</p> + <code> + $query = $this->db->query("YOUR QUERY");<br /> + <br /> + if ($query->num_rows() > 0)<br /> + {<br /> + &nbsp;&nbsp;&nbsp;$row = $query->row(); + <br /><br /> + &nbsp;&nbsp;&nbsp;echo $row->title;<br /> + &nbsp;&nbsp;&nbsp;echo $row->name;<br /> + &nbsp;&nbsp;&nbsp;echo $row->body;<br /> + } + </code> + + <p>If you want a specific row returned you can submit the row number as a digit in the first parameter:</p> + + <code>$row = $query->row(<dfn>5</dfn>);</code> + + <p>You can also add a second String parameter, which is the name of a class to instantiate the row with:</p> + + <code> + $query = $this->db->query("SELECT * FROM users LIMIT 1;");<br /> + <br /> + $query->row(0, 'User')<br /> + echo $row->name; // call attributes<br /> + echo $row->reverse_name(); // or methods defined on the 'User' class<br /> + </code> + + <h2>row_array()</h2> + + <p>Identical to the above <var>row()</var> function, except it returns an array. Example:</p> + + <code> + $query = $this->db->query("YOUR QUERY");<br /> + <br /> + if ($query->num_rows() > 0)<br /> + {<br /> + &nbsp;&nbsp;&nbsp;$row = $query->row_array(); + <br /><br /> + &nbsp;&nbsp;&nbsp;echo $row['title'];<br /> + &nbsp;&nbsp;&nbsp;echo $row['name'];<br /> + &nbsp;&nbsp;&nbsp;echo $row['body'];<br /> + } + </code> + + + <p>If you want a specific row returned you can submit the row number as a digit in the first parameter:</p> + + <code>$row = $query->row_array(<dfn>5</dfn>);</code> + + + <p>In addition, you can walk forward/backwards/first/last through your results using these variations:</p> + +<p> + <strong>$row = $query->first_row()</strong><br /> + <strong>$row = $query->last_row()</strong><br /> + <strong>$row = $query->next_row()</strong><br /> + <strong>$row = $query->previous_row()</strong> +</p> + +<p>By default they return an object unless you put the word "array" in the parameter:</p> + +<p> + <strong>$row = $query->first_row('array')</strong><br /> + <strong>$row = $query->last_row('array')</strong><br /> + <strong>$row = $query->next_row('array')</strong><br /> + <strong>$row = $query->previous_row('array')</strong> +</p> + + + +<h1>Result Helper Functions</h1> + + +<h2>$query->num_rows()</h2> +<p>The number of rows returned by the query. Note: In this example, <dfn>$query</dfn> is the variable that the query result object is assigned to:</p> + +<code>$query = $this->db->query('SELECT * FROM my_table');<br /><br /> +echo $query->num_rows(); +</code> + +<h2>$query->num_fields()</h2> +<p>The number of FIELDS (columns) returned by the query. Make sure to call the function using your query result object:</p> + +<code>$query = $this->db->query('SELECT * FROM my_table');<br /><br /> +echo $query->num_fields(); +</code> + + + +<h2>$query->free_result()</h2> +<p>It frees the memory associated with the result and deletes the result resource ID. Normally PHP frees its memory automatically at the end of script +execution. However, if you are running a lot of queries in a particular script you might want to free the result after each query result has been +generated in order to cut down on memory consumptions. Example: +</p> + +<code>$query = $this->db->query('SELECT title FROM my_table');<br /><br /> +foreach ($query->result() as $row)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;echo $row->title;<br /> +}<br /> +$query->free_result(); // The $query result object will no longer be available<br /> +<br /> +$query2 = $this->db->query('SELECT name FROM some_table');<br /><br /> +$row = $query2->row();<br /> +echo $row->name;<br /> +$query2->free_result(); // The $query2 result object will no longer be available +</code> + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="queries.html">Queries</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="helpers.html">Query Helper Functions</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> diff --git a/user_guide/database/table_data.html b/user_guide/database/table_data.html new file mode 100755 index 0000000..53b8b77 --- /dev/null +++ b/user_guide/database/table_data.html @@ -0,0 +1,113 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Table Data : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Table Data +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + + +<h1>Table Data</h1> + +<p>These functions let you fetch table information.</p> + +<h2>$this->db->list_tables();</h2> + +<p>Returns an array containing the names of all the tables in the database you are currently connected to. Example:</p> + +<code>$tables = $this->db->list_tables();<br /> +<br /> +foreach ($tables as $table)<br /> +{<br /> +&nbsp;&nbsp; echo $table;<br /> +} +</code> + + +<h2>$this->db->table_exists();</h2> + +<p>Sometimes it's helpful to know whether a particular table exists before running an operation on it. +Returns a boolean TRUE/FALSE. Usage example:</p> + +<code> +if ($this->db->table_exists('table_name'))<br /> +{<br /> +&nbsp;&nbsp; // some code...<br /> +} +</code> + +<p>Note: Replace <em>table_name</em> with the name of the table you are looking for.</p> + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="transactions.html"> Transactions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="fields.html"> Field Metadata</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/transactions.html b/user_guide/database/transactions.html new file mode 100755 index 0000000..21bfd4f --- /dev/null +++ b/user_guide/database/transactions.html @@ -0,0 +1,200 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Transactions : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Transactions +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Transactions</h1> + +<p>CodeIgniter's database abstraction allows you to use <dfn>transactions</dfn> with databases that support transaction-safe table types. In MySQL, you'll need +to be running InnoDB or BDB table types rather than the more common MyISAM. Most other database platforms support transactions natively.</p> + +<p>If you are not familiar with +transactions we recommend you find a good online resource to learn about them for your particular database. The information below assumes you +have a basic understanding of transactions. +</p> + +<h2>CodeIgniter's Approach to Transactions</h2> + +<p>CodeIgniter utilizes an approach to transactions that is very similar to the process used by the popular database class ADODB. We've chosen that approach +because it greatly simplifies the process of running transactions. In most cases all that is required are two lines of code.</p> + +<p>Traditionally, transactions have required a fair amount of work to implement since they demand that you to keep track of your queries +and determine whether to <dfn>commit</dfn> or <dfn>rollback</dfn> based on the success or failure of your queries. This is particularly cumbersome with +nested queries. In contrast, +we've implemented a smart transaction system that does all this for you automatically (you can also manage your transactions manually if you choose to, +but there's really no benefit).</p> + +<h2>Running Transactions</h2> + +<p>To run your queries using transactions you will use the <dfn>$this->db->trans_start()</dfn> and <dfn>$this->db->trans_complete()</dfn> functions as follows:</p> + +<code> +<kbd>$this->db->trans_start();</kbd><br /> +$this->db->query('AN SQL QUERY...');<br /> +$this->db->query('ANOTHER QUERY...');<br /> +$this->db->query('AND YET ANOTHER QUERY...');<br /> +<kbd>$this->db->trans_complete();</kbd> +</code> + +<p>You can run as many queries as you want between the start/complete functions and they will all be committed or rolled back based on success or failure +of any given query.</p> + + +<h2>Strict Mode</h2> + +<p>By default CodeIgniter runs all transactions in <dfn>Strict Mode</dfn>. When strict mode is enabled, if you are running multiple groups of +transactions, if one group fails all groups will be rolled back. If strict mode is disabled, each group is treated independently, meaning +a failure of one group will not affect any others.</p> + +<p>Strict Mode can be disabled as follows:</p> + +<code>$this->db->trans_strict(FALSE);</code> + + +<h2>Managing Errors</h2> + +<p>If you have error reporting enabled in your <dfn>config/database.php</dfn> file you'll see a standard error message if the commit was unsuccessful. If debugging is turned off, you can +manage your own errors like this:</p> + +<code> +$this->db->trans_start();<br /> +$this->db->query('AN SQL QUERY...');<br /> +$this->db->query('ANOTHER QUERY...');<br /> +$this->db->trans_complete();<br /> +<br /> +if (<kbd>$this->db->trans_status()</kbd> === FALSE)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;// generate an error... or use the log_message() function to log your error<br /> +} +</code> + + +<h2>Enabling Transactions</h2> + +<p>Transactions are enabled automatically the moment you use <dfn>$this->db->trans_start()</dfn>. If you would like to disable transactions you +can do so using <dfn>$this->db->trans_off()</dfn>:</p> + +<code> +<kbd>$this->db->trans_off()</kbd><br /><br /> + +$this->db->trans_start();<br /> +$this->db->query('AN SQL QUERY...');<br /> +$this->db->trans_complete(); +</code> + +<p class="important">When transactions are disabled, your queries will be auto-commited, just as they are when running queries without transactions.</p> + + +<h2>Test Mode</h2> + +<p>You can optionally put the transaction system into "test mode", which will cause your queries to be rolled back -- even if the queries produce a valid result. +To use test mode simply set the first parameter in the <dfn>$this->db->trans_start()</dfn> function to <samp>TRUE</samp>:</p> + +<code> +$this->db->trans_start(<samp>TRUE</samp>); // Query will be rolled back<br /> +$this->db->query('AN SQL QUERY...');<br /> +$this->db->trans_complete(); +</code> + + +<h2>Running Transactions Manually</h2> + +<p>If you would like to run transactions manually you can do so as follows:</p> + +<code> +$this->db->trans_begin();<br /><br /> + +$this->db->query('AN SQL QUERY...');<br /> +$this->db->query('ANOTHER QUERY...');<br /> +$this->db->query('AND YET ANOTHER QUERY...');<br /> + +<br /> + +if ($this->db->trans_status() === FALSE)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->db->trans_rollback();<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->db->trans_commit();<br /> +}<br /> +</code> + +<p class="important"><strong>Note:</strong> Make sure to use <kbd>$this->db->trans_begin()</kbd> when running manual transactions, <strong>NOT</strong> +<dfn>$this->db->trans_start()</dfn>.</p> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp; <a href="fields.html">Field MetaData</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="table_data.html">Table Metadata</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html new file mode 100755 index 0000000..cf2b00c --- /dev/null +++ b/user_guide/database/utilities.html @@ -0,0 +1,314 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Database Utility Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp; +Database Utility Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Database Utility Class</h1> + +<p>The Database Utility Class contains functions that help you manage your database.</p> + +<h3>Table of Contents</h3> + +<ul> +<li><a href="#init">Initializing the Utility Class</a></li> +<li><a href="#list">Listing your Databases</a></li> +<li><a href="#exists">Checking for a specific Database</a></li> +<li><a href="#opttb">Optimizing your Tables</a></li> +<li><a href="#repair">Repairing your Databases</a></li> +<li><a href="#optdb">Optimizing your Database</a></li> +<li><a href="#csv">CSV Files from a Database Result</a></li> +<li><a href="#xml">XML Files from a Database Result</a></li> +<li><a href="#backup">Backing up your Database</a></li> +</ul> + + + +<h2><a name="init"></a>Initializing the Utility Class</h2> + +<p class="important"><strong>Important:</strong>&nbsp; In order to initialize the Utility class, your database driver must +already be running, since the utilities class relies on it.</p> + +<p>Load the Utility Class as follows:</p> + +<code>$this->load->dbutil()</code> + +<p>Once initialized you will access the functions using the <dfn>$this->dbutil</dfn> object:</p> + +<code>$this->dbutil->some_function()</code> + +<h2><a name="list"></a>$this->dbutil->list_databases()</h2> +<p>Returns an array of database names:</p> + +<code> +$dbs = $this->dbutil->list_databases();<br /> +<br /> +foreach ($dbs as $db)<br /> +{<br /> +&nbsp;&nbsp;&nbsp; echo $db;<br /> +}</code> + + +<h2><a name="exists"></a>$this->dbutil->database_exists();</h2> + +<p>Sometimes it's helpful to know whether a particular database exists. +Returns a boolean TRUE/FALSE. Usage example:</p> + +<code> +if ($this->dbutil->database_exists('database_name'))<br /> +{<br /> +&nbsp;&nbsp; // some code...<br /> +} +</code> + +<p>Note: Replace <em>database_name</em> with the name of the table you are looking for. This function is case sensitive.</p> + + + +<h2><a name="opttb"></a>$this->dbutil->optimize_table('table_name');</h2> + +<p class="important"><strong>Note:</strong>&nbsp; This features is only available for MySQL/MySQLi databases.</p> + + +<p>Permits you to optimize a table using the table name specified in the first parameter. Returns TRUE/FALSE based on success or failure:</p> + +<code> +if ($this->dbutil->optimize_table('table_name'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp; echo 'Success!';<br /> +} +</code> + +<p><strong>Note:</strong> Not all database platforms support table optimization.</p> + + +<h2><a name="repair"></a>$this->dbutil->repair_table('table_name');</h2> + +<p class="important"><strong>Note:</strong>&nbsp; This features is only available for MySQL/MySQLi databases.</p> + + +<p>Permits you to repair a table using the table name specified in the first parameter. Returns TRUE/FALSE based on success or failure:</p> + +<code> +if ($this->dbutil->repair_table('table_name'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp; echo 'Success!';<br /> +} +</code> + +<p><strong>Note:</strong> Not all database platforms support table repairs.</p> + + +<h2><a name="optdb"></a>$this->dbutil->optimize_database();</h2> + +<p class="important"><strong>Note:</strong>&nbsp; This features is only available for MySQL/MySQLi databases.</p> + +<p>Permits you to optimize the database your DB class is currently connected to. Returns an array containing the DB status messages or FALSE on failure.</p> + +<code> +$result = $this->dbutil->optimize_database();<br /> +<br /> +if ($result !== FALSE)<br /> +{<br /> +&nbsp;&nbsp;&nbsp; print_r($result);<br /> +} +</code> + +<p><strong>Note:</strong> Not all database platforms support table optimization.</p> + + +<h2><a name="csv"></a>$this->dbutil->csv_from_result($db_result)</h2> + +<p>Permits you to generate a CSV file from a query result. The first parameter of the function must contain the result object from your query. +Example:</p> + +<code> +$this->load->dbutil();<br /> +<br /> +$query = $this->db->query("SELECT * FROM mytable");<br /> +<br /> +echo $this->dbutil->csv_from_result($query); +</code> + +<p>The second and third parameters allows you to +set the delimiter and newline character. By default tabs are used as the delimiter and "\n" is used as a new line. Example:</p> + +<code> +$delimiter = ",";<br /> +$newline = "\r\n";<br /> +<br /> +echo $this->dbutil->csv_from_result($query, $delimiter, $newline); +</code> + +<p><strong>Important:</strong>&nbsp; This function will NOT write the CSV file for you. It simply creates the CSV layout. +If you need to write the file use the <a href="../helpers/file_helper.html">File Helper</a>.</p> + + +<h2><a name="xml"></a>$this->dbutil->xml_from_result($db_result)</h2> + +<p>Permits you to generate an XML file from a query result. The first parameter expects a query result object, the second +may contain an optional array of config parameters. Example:</p> + +<code> +$this->load->dbutil();<br /> +<br /> +$query = $this->db->query("SELECT * FROM mytable");<br /> +<br /> +$config = array (<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'root'&nbsp;&nbsp;&nbsp; => 'root',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'element' => 'element', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'newline' => "\n", <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'tab'&nbsp;&nbsp;&nbsp;&nbsp;=> "\t"<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo $this->dbutil->xml_from_result($query, $config); +</code> + +<p><strong>Important:</strong>&nbsp; This function will NOT write the XML file for you. It simply creates the XML layout. +If you need to write the file use the <a href="../helpers/file_helper.html">File Helper</a>.</p> + + +<h2><a name="backup"></a>$this->dbutil->backup()</h2> + +<p>Permits you to backup your full database or individual tables. The backup data can be compressed in either Zip or Gzip format.</p> + +<p class="important"><strong>Note:</strong>&nbsp; This features is only available for MySQL databases.</p> + +<p>Note: Due to the limited execution time and memory available to PHP, backing up very large +databases may not be possible. If your database is very large you might need to backup directly from your SQL server +via the command line, or have your server admin do it for you if you do not have root privileges.</p> + +<h3>Usage Example</h3> + +<code> +<dfn>// Load the DB utility class</dfn><br /> +$this->load->dbutil();<br /><br /> + +<dfn>// Backup your entire database and assign it to a variable</dfn><br /> +$backup =& $this->dbutil->backup(); + +<br /><br /> +<dfn>// Load the file helper and write the file to your server</dfn><br /> +$this->load->helper('file');<br /> +write_file('/path/to/mybackup.gz', $backup); + +<br /><br /> +<dfn>// Load the download helper and send the file to your desktop</dfn><br /> +$this->load->helper('download');<br /> +force_download('mybackup.gz', $backup); +</code> + +<h3>Setting Backup Preferences</h3> + +<p>Backup preferences are set by submitting an array of values to the first parameter of the backup function. Example:</p> + +<code>$prefs = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'tables'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> array('table1', 'table2'),&nbsp;&nbsp;// Array of tables to backup.<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ignore'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> array(),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// List of tables to omit from the backup<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'format'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'txt',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// gzip, zip, txt<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'filename'&nbsp;&nbsp;&nbsp;&nbsp;=> 'mybackup.sql',&nbsp;&nbsp;&nbsp;&nbsp;// File name - NEEDED ONLY WITH ZIP FILES<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'add_drop'&nbsp;&nbsp;&nbsp;&nbsp;=> TRUE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Whether to add DROP TABLE statements to backup file<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'add_insert'&nbsp;&nbsp;=> TRUE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Whether to add INSERT data to backup file<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'newline'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> "\n"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Newline character used in backup file<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->dbutil->backup($prefs); +</code> + + +<h3>Description of Backup Preferences</h3> + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +</tr><tr> +<td class="td"><strong>tables</strong></td><td class="td">empty array</td><td class="td">None</td><td class="td">An array of tables you want backed up. If left blank all tables will be exported.</td> +</tr><tr> +<td class="td"><strong>ignore</strong></td><td class="td">empty array</td><td class="td">None</td><td class="td">An array of tables you want the backup routine to ignore.</td> +</tr><tr> +<td class="td"><strong>format</strong></td><td class="td">gzip</td><td class="td">gzip, zip, txt</td><td class="td">The file format of the export file.</td> +</tr><tr> +<td class="td"><strong>filename</strong></td><td class="td">the current date/time</td><td class="td">None</td><td class="td">The name of the backed-up file. The name is needed only if you are using zip compression.</td> +</tr><tr> +<td class="td"><strong>add_drop</strong></td><td class="td">TRUE</td><td class="td">TRUE/FALSE</td><td class="td">Whether to include DROP TABLE statements in your SQL export file.</td> +</tr><tr> +<td class="td"><strong>add_insert</strong></td><td class="td">TRUE</td><td class="td">TRUE/FALSE</td><td class="td">Whether to include INSERT statements in your SQL export file.</td> +</tr><tr> +<td class="td"><strong>newline</strong></td><td class="td">"\n"</td><td class="td">"\n", "\r", "\r\n"</td><td class="td">Type of newline to use in your SQL export file.</td> + +</tr> +</table> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="forge.html">DB Forge Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../libraries/javascript.html">Javascript Class</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/doc_style/index.html b/user_guide/doc_style/index.html new file mode 100755 index 0000000..2de0dd6 --- /dev/null +++ b/user_guide/doc_style/index.html @@ -0,0 +1,87 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Writing Documentation : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Writing Documentation +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Writing Documentation</h1> + +<p>To help facilitate a consistent, easy-to-read documentation style for CodeIgniter projects, EllisLab is making the markup and CSS from the CodeIgniter user guide freely available to the community for their use. For your convenience, a template file has been created that includes the primary blocks of markup used with brief samples.</p> + +<h2>Files</h2> + +<ul> + <li><a href="../userguide.css">Stylesheet</a></li> + <li><a href="./template.html">Page Template</a></li> +</ul> + + +</div> +<!-- END CONTENT --> + + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../general/styleguide.html">PHP Style Guide</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../libraries/benchmark.html">Benchmarking Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/doc_style/template.html b/user_guide/doc_style/template.html new file mode 100755 index 0000000..3fde59c --- /dev/null +++ b/user_guide/doc_style/template.html @@ -0,0 +1,128 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Project Documentation Template</title> + +<style type='text/css' media='all'>@import url('./userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"></div></div> +<div id="nav2"><a name="top">&nbsp;</a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>Project Title</h1></td> +<td id="breadcrumb_right"><a href="#">Right Breadcrumb</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://example.com/">Project Home</a> &nbsp;&#8250;&nbsp; +<a href="#">User Guide Home</a> &nbsp;&#8250;&nbsp; +Foo Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="example.com/user_guide/" />Search Project User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Foo Class</h1> + +<p>Brief description of Foo Class. If it extends a native CodeIgniter class, please link to the class in the CodeIgniter documents here.</p> + +<p class="important"><strong>Important:</strong>&nbsp; This is an important note with <kbd>EMPHASIS</kbd>.</p> + +<p>Features:</p> + +<ul> + <li>Foo</li> + <li>Bar</li> +</ul> + +<h2>Usage Heading</h2> + +<p>Within a text string, <var>highlight variables</var> using <var>&lt;var&gt;&lt;/var&gt;</var> tags, and <dfn>highlight code</dfn> using the <dfn>&lt;dfn&gt;&lt;/dfn&gt;</dfn> tags.</p> + +<h3>Sub-heading</h3> + +<p>Put code examples within <dfn>&lt;code&gt;&lt;/code&gt;</dfn> tags:</p> + +<code> + $this->load->library('foo');<br /> + <br /> + $this->foo->bar('bat'); +</code> + + +<h2>Table Preferences</h2> + +<p>Use tables where appropriate for long lists of preferences.</p> + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> + <th>Preference</th> + <th>Default&nbsp;Value</th> + <th>Options</th> + <th>Description</th> +</tr> +<tr> + <td class="td"><strong>foo</strong></td> + <td class="td">Foo</td> + <td class="td">None</td> + <td class="td">Description of foo.</td> +</tr> +<tr> + <td class="td"><strong>bar</strong></td> + <td class="td">Bar</td> + <td class="td">bat, bag, or bak</td> + <td class="td">Description of bar.</td> +</tr> +</table> + +<h2>Foo Function Reference</h2> + +<h3>$this->foo->bar()</h3> +<p>Description</p> +<code>$this->foo->bar('<var>baz</var>')</code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="#">Previous Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="#">Next Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/alternative_php.html b/user_guide/general/alternative_php.html new file mode 100755 index 0000000..c62fef9 --- /dev/null +++ b/user_guide/general/alternative_php.html @@ -0,0 +1,147 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Alternate PHP Syntax for View Files : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Alternate PHP Syntax +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Alternate PHP Syntax for View Files</h1> + +<p>If you do not utilize CodeIgniter's <a href="../libraries/parser.html">template engine</a>, you'll be using pure PHP +in your View files. To minimize the PHP code in these files, and to make it easier to identify the code blocks it is recommended that you use +PHPs alternative syntax for control structures and short tag echo statements. If you are not familiar with this syntax, it allows you to eliminate the braces from your code, +and eliminate "echo" statements.</p> + +<h2>Automatic Short Tag Support</h2> + +<p><strong>Note:</strong> If you find that the syntax described in this page does not work on your server it might +be that "short tags" are disabled in your PHP ini file. CodeIgniter will optionally rewrite short tags on-the-fly, +allowing you to use that syntax even if your server doesn't support it. This feature can be enabled in your +<dfn>config/config.php</dfn> file.</p> + +<p class="important">Please note that if you do use this feature, if PHP errors are encountered +in your <strong>view files</strong>, the error message and line number will not be accurately shown. Instead, all errors +will be shown as <kbd>eval()</kbd> errors.</p> + + +<h2>Alternative Echos</h2> + +<p>Normally to echo, or print out a variable you would do this:</p> + +<code>&lt;?php echo $variable; ?></code> + +<p>With the alternative syntax you can instead do it this way:</p> + +<code>&lt;?=$variable?></code> + + + +<h2>Alternative Control Structures</h2> + +<p>Controls structures, like <var>if</var>, <var>for</var>, <var>foreach</var>, and <var>while</var> can be +written in a simplified format as well. Here is an example using foreach:</p> + +<code> +&lt;ul><br /> +<br /> +<var>&lt;?php foreach ($todo as $item): ?></var><br /> +<br /> +&lt;li><var>&lt;?=$item?></var>&lt;/li><br /> +<br /> +<var>&lt;?php endforeach; ?></var><br /> +<br /> +&lt;/ul></code> + +<p>Notice that there are no braces. Instead, the end brace is replaced with <var>endforeach</var>. +Each of the control structures listed above has a similar closing syntax: +<var>endif</var>, <var>endfor</var>, <var>endforeach</var>, and <var>endwhile</var></p> + +<p>Also notice that instead of using a semicolon after each structure (except the last one), there is a colon. This is +important!</p> + +<p>Here is another example, using if/elseif/else. Notice the colons:</p> + + +<code><var>&lt;?php if ($username == 'sally'): ?></var><br /> +<br /> +&nbsp;&nbsp;&nbsp;&lt;h3>Hi Sally&lt;/h3><br /> +<br /> +<var>&lt;?php elseif ($username == 'joe'): ?></var><br /> +<br /> +&nbsp;&nbsp;&nbsp;&lt;h3>Hi Joe&lt;/h3><br /> +<br /> +<var>&lt;?php else: ?></var><br /> +<br /> +&nbsp;&nbsp;&nbsp;&lt;h3>Hi unknown user&lt;/h3><br /> +<br /> +<var>&lt;?php endif; ?></var></code> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="managing_apps.html">Managing Applications</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="security.html">Security</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/ancillary_classes.html b/user_guide/general/ancillary_classes.html new file mode 100755 index 0000000..c1ea33c --- /dev/null +++ b/user_guide/general/ancillary_classes.html @@ -0,0 +1,117 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Creating Ancillary Classes : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Creating Ancillary Classes +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Creating Ancillary Classes</h1> + +<p>In some cases you may want to develop classes that exist apart from your controllers but have the ability to +utilize all of CodeIgniter's resources. This is easily possible as you'll see.</p> + +<h2>get_instance()</h2> + + +<p><strong>Any class that you instantiate within your controller functions can access CodeIgniter's native resources</strong> simply by using the <kbd>get_instance()</kbd> function. +This function returns the main CodeIgniter object.</p> + +<p>Normally, to call any of the available CodeIgniter functions requires you to use the <kbd>$this</kbd> construct:</p> + +<code> +<strong>$this</strong>->load->helper('url');<br /> +<strong>$this</strong>->load->library('session');<br /> +<strong>$this</strong>->config->item('base_url');<br /> +etc. +</code> + +<p><kbd>$this</kbd>, however, only works within your controllers, your models, or your views. +If you would like to use CodeIgniter's classes from within your own custom classes you can do so as follows:</p> + + +<p>First, assign the CodeIgniter object to a variable:</p> + +<code>$CI =& get_instance();</code> + +<p>Once you've assigned the object to a variable, you'll use that variable <em>instead</em> of <kbd>$this</kbd>:</p> + +<code> +$CI =& get_instance();<br /><br /> +$CI->load->helper('url');<br /> +$CI->load->library('session');<br /> +$CI->config->item('base_url');<br /> +etc. +</code> + +<p class="important"><strong>Note:</strong> You'll notice that the above get_instance() function is being passed by reference: +<br /><br /> +<var>$CI =& get_instance();</var> +<br /><br /> +This is very important. Assigning by reference allows you to use the original CodeIgniter object rather than creating a copy of it.</p> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="creating_libraries.html">Creating Core Libraries</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="autoloader.html">Auto-loading Resources</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/autoloader.html b/user_guide/general/autoloader.html new file mode 100755 index 0000000..764b42e --- /dev/null +++ b/user_guide/general/autoloader.html @@ -0,0 +1,100 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Auto-loading Resources : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Auto-loading Resources +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Auto-loading Resources</h1> + +<p>CodeIgniter comes with an "Auto-load" feature that permits libraries, helpers, and models to be initialized +automatically every time the system runs. If you need certain resources globally throughout your application you should +consider auto-loading them for convenience.</p> + +<p>The following items can be loaded automatically:</p> + +<ul> +<li>Core classes found in the "libraries" folder</li> +<li>Helper files found in the "helpers" folder</li> +<li>Custom config files found in the "config" folder</li> +<li>Language files found in the "system/language" folder </li> +<li>Models found in the &quot;models&quot; folder</li> +</ul> + +<p>To autoload resources, open the <var>application/config/autoload.php</var> file and add the item you want +loaded to the <samp>autoload</samp> array. You'll find instructions in that file corresponding to each +type of item.</p> + +<p class="important"><strong>Note:</strong> Do not include the file extension (.php) when adding items to the autoload array.</p> + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="hooks.html">Hooks - Extending the Core</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="common_functions.html">Common Functions</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/caching.html b/user_guide/general/caching.html new file mode 100755 index 0000000..af671fb --- /dev/null +++ b/user_guide/general/caching.html @@ -0,0 +1,115 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Web Page Caching : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Page Caching +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Web Page Caching</h1> + +<p>CodeIgniter lets you cache your pages in order to achieve maximum performance.</p> + +<p>Although CodeIgniter is quite fast, the amount of dynamic information you display in your pages will correlate directly to the +server resources, memory, and processing cycles utilized, which affect your page load speeds. +By caching your pages, since they are saved in their fully rendered state, you can achieve performance that nears that of static web pages.</p> + + +<h2>How Does Caching Work?</h2> + +<p>Caching can be enabled on a per-page basis, and you can set the length of time that a page should remain cached before being refreshed. +When a page is loaded for the first time, the cache file will be written to your <dfn>application/cache</dfn> folder. On subsequent page loads the cache file will be retrieved +and sent to the requesting user's browser. If it has expired, it will be deleted and refreshed before being sent to the browser.</p> + +<p>Note: The Benchmark tag is not cached so you can still view your page load speed when caching is enabled.</p> + +<h2>Enabling Caching</h2> + +<p>To enable caching, put the following tag in any of your controller functions:</p> + +<code>$this->output->cache(<var>n</var>);</code> + +<p>Where <var>n</var> is the number of <strong>minutes</strong> you wish the page to remain cached between refreshes.</p> + +<p>The above tag can go anywhere within a function. It is not affected by the order that it appears, so place it wherever it seems +most logical to you. Once the tag is in place, your pages will begin being cached.</p> + +<p class="important"><strong>Warning:</strong> Because of the way CodeIgniter stores content for output, caching will only work if you are generating display for your controller with a <a href="./views.html">view</a>.</p> +<p class="important"><strong>Note:</strong> Before the cache files can be written you must set the file permissions on your +<dfn>application/cache</dfn> folder such that it is writable.</p> + +<h2>Deleting Caches</h2> + +<p>If you no longer wish to cache a file you can remove the caching tag and it will no longer be refreshed when it expires. Note: +Removing the tag will not delete the cache immediately. It will have to expire normally. If you need to remove it earlier you +will need to manually delete it from your cache folder.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="errors.html">Error Handling</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="profiling.html">Profiling Your Application</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/cli.html b/user_guide/general/cli.html new file mode 100755 index 0000000..658754f --- /dev/null +++ b/user_guide/general/cli.html @@ -0,0 +1,150 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Running via the CLI : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Running via the CLI +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Running via the CLI</h1> + +<p> + As well as calling an applications <a href="./controllers.html">Controllers</a> via the URL in a browser they can also be loaded via the command-line interface (CLI). +</p> + + +<ul> +<li><a href="#what">What is the CLI?</a></li> +<li><a href="#why">Why use this method?</a></li> +<li><a href="#how">How does it work?</a></li> +</ul> + + +<a name="what"></a> +<h2>What is the CLI?</h2> + +<p><dfn>The command-line interface is a text-based method of interacting with computers.</dfn> For more information, check the <a href="http://en.wikipedia.org/wiki/Command-line_interface">Wikipedia article</a>.</p> + +<a name="why"></a> + +<h2>Why run via the command-line?</h2> + +<p> + There are many reasons for running CodeIgniter from the command-line, but they are not always obvious.</p> + +<ul> + <li>Run your cron-jobs without needing to use wget or curl</li> + <li>Make your cron-jobs inaccessible from being loaded in the URL by checking for <kbd>$this->input->is_cli_request()</kbd></li> + <li>Make interactive "tasks" that can do things like set permissions, prune cache folders, run backups, etc.</li> + <li>Integrate with other applications in other languages. For example, a random C++ script could call one command and run code in your models!</li> +</ul> + +<a name="how"></a> +<h2>Let's try it:&nbsp; Hello World!</h2> + +<p>Let's create a simple controller so you can see it in action. Using your text editor, create a file called <dfn>tools.php</dfn>, and put the following code in it:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +&lt;?php +class Tools extends CI_Controller { + + public function message($to = 'World') + { + echo "Hello {$to}!".PHP_EOL; + } +} +?&gt; +</textarea> + +<p>Then save the file to your <dfn>application/controllers/</dfn> folder.</p> + +<p>Now normally you would visit the your site using a URL similar to this:</p> + +<code>example.com/index.php/<var>tools</var>/<var>message</var>/<var>to</var></code> + +<p>Instead, we are going to open Terminal in Mac/Lunix or go to Run > "cmd" in Windows and navigate to our CodeIgniter project.</p> + +<blockquote> + $ cd /path/to/project;<br/> + $ php index.php tools message +</blockquote> + +<p>If you did it right, you should see <samp>Hello World!</samp>.</p> + +<blockquote> + $ php index.php tools message "John Smith" +</blockquote> + +<p>Here we are passing it a argument in the same way that URL parameters work. "John Smith" is passed as a argument and output is: <samp>Hello John Smith!</samp>.</p> + +<h2>That's it!</h2> + +<p>That, in a nutshell, is all there is to know about controllers on the command line. Remember that this is just a normal controller, so routing and _remap works fine.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="urls.html">CodeIgniter URLs</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="reserved_names.html">Reserved Names</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/common_functions.html b/user_guide/general/common_functions.html new file mode 100755 index 0000000..b3f4f32 --- /dev/null +++ b/user_guide/general/common_functions.html @@ -0,0 +1,127 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Common Functions : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Auto-loading Resources +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Common Functions</h1> + +<p>CodeIgniter uses a few functions for its operation that are globally defined, and are available to you at any point. These do not require loading any libraries or helpers.</p> + +<h2>is_php('<var>version_number</var>')</h2> + +<p>is_php() determines of the PHP version being used is greater than the supplied <var>version_number</var>.</p> + +<code>if (is_php('5.3.0'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$str = quoted_printable_encode($str);<br /> +}</code> + +<p>Returns boolean <kbd>TRUE</kbd> if the installed version of PHP is equal to or greater than the supplied version number. Returns <kbd>FALSE</kbd> if the installed version of PHP is lower than the supplied version number.</p> + + +<h2>is_really_writable('<var>path/to/file</var>')</h2> + +<p>is_writable() returns TRUE on Windows servers when you really can't write to the file as the OS reports to PHP as FALSE only if the read-only attribute is marked. This function determines if a file is actually writable by attempting to write to it first. Generally only recommended on platforms where this information may be unreliable.</p> + +<code>if (is_really_writable('file.txt'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;I could write to this if I wanted to&quot;;<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;File is not writable&quot;;<br /> +}</code> + +<h2>config_item('<var>item_key</var>')</h2> +<p>The <a href="../libraries/config.html">Config library</a> is the preferred way of accessing configuration information, however config_item() can be used to retrieve single keys. See Config library documentation for more information.</p> + +<h2>show_error('<var>message</var>'), show_404('<var>page</var>'), log_message('<var>level</var>', '<samp>message</samp>')</h2> +<p>These are each outlined on the <a href="errors.html">Error Handling</a> page.</p> + +<h2>set_status_header(<var>code</var>, '<var>text</var>');</h2> + +<p>Permits you to manually set a server status header. Example:</p> + +<code>set_status_header(401);<br /> +// Sets the header as: Unauthorized</code> + +<p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">See here</a> for a full list of headers.</p> + + +<h2>remove_invisible_characters(<var>$str</var>)</h2> +<p>This function prevents inserting null characters between ascii characters, like Java\0script.</p> + + +<h2>html_escape(<var>$mixed</var>)</h2> +<p>This function provides short cut for htmlspecialchars() function. It accepts string and array. To prevent Cross Site Scripting (XSS), it is very useful.</p> + +</div> + + +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="autoloader.html">Auto-loading Resources</a><a href="hooks.html"></a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="routing.html">URI Routing</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/controllers.html b/user_guide/general/controllers.html new file mode 100755 index 0000000..7600423 --- /dev/null +++ b/user_guide/general/controllers.html @@ -0,0 +1,388 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Controllers : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Controllers +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Controllers</h1> + +<p>Controllers are the heart of your application, as they determine how HTTP requests should be handled.</p> + + +<ul> +<li><a href="#what">What is a Controller?</a></li> +<li><a href="#hello">Hello World</a></li> +<li><a href="#functions">Functions</a></li> +<li><a href="#passinguri">Passing URI Segments to Your Functions</a></li> +<li><a href="#default">Defining a Default Controller</a></li> +<li><a href="#remapping">Remapping Function Calls</a></li> +<li><a href="#output">Controlling Output Data</a></li> +<li><a href="#private">Private Functions</a></li> +<li><a href="#subfolders">Organizing Controllers into Sub-folders</a></li> +<li><a href="#constructors">Class Constructors</a></li> +<li><a href="#reserved">Reserved Function Names</a></li> +</ul> + + +<a name="what"></a> +<h2>What is a Controller?</h2> + +<p><dfn>A Controller is simply a class file that is named in a way that can be associated with a URI.</dfn></p> + +<p>Consider this URI:</p> + +<code>example.com/index.php/<var>blog</var>/</code> + +<p>In the above example, CodeIgniter would attempt to find a controller named <dfn>blog.php</dfn> and load it.</p> + +<p><strong>When a controller's name matches the first segment of a URI, it will be loaded.</strong></p> + +<a name="hello"></a> +<h2>Let's try it:&nbsp; Hello World!</h2> + +<p>Let's create a simple controller so you can see it in action. Using your text editor, create a file called <dfn>blog.php</dfn>, and put the following code in it:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +&lt;?php +class Blog extends CI_Controller { + + public function index() + { + echo 'Hello World!'; + } +} +?&gt; +</textarea> + + + +<p>Then save the file to your <dfn>application/controllers/</dfn> folder.</p> + +<p>Now visit the your site using a URL similar to this:</p> + +<code>example.com/index.php/<var>blog</var>/</code> + +<p>If you did it right, you should see <samp>Hello World!</samp>.</p> + +<p>Note: Class names must start with an uppercase letter. In other words, this is valid:</p> + +<code>&lt;?php<br /> +class <var>Blog</var> extends CI_Controller {<br /> +<br /> +}<br /> +?&gt;</code> + +<p>This is <strong>not</strong> valid:</p> + +<code>&lt;?php<br /> +class <var>blog</var> extends CI_Controller {<br /> +<br /> +}<br /> +?&gt;</code> + +<p>Also, always make sure your controller <dfn>extends</dfn> the parent controller class so that it can inherit all its functions.</p> + + + +<a name="functions"></a> +<h2>Functions</h2> + +<p>In the above example the function name is <dfn>index()</dfn>. The "index" function is always loaded by default if the +<strong>second segment</strong> of the URI is empty. Another way to show your "Hello World" message would be this:</p> + +<code>example.com/index.php/<var>blog</var>/<samp>index</samp>/</code> + +<p><strong>The second segment of the URI determines which function in the controller gets called.</strong></p> + +<p>Let's try it. Add a new function to your controller:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="15"> +&lt;?php +class Blog extends CI_Controller { + + public function index() + { + echo 'Hello World!'; + } + + public function comments() + { + echo 'Look at this!'; + } +} +?&gt; +</textarea> + +<p>Now load the following URL to see the <dfn>comment</dfn> function:</p> + +<code>example.com/index.php/<var>blog</var>/<samp>comments</samp>/</code> + +<p>You should see your new message.</p> + +<a name="passinguri"></a> +<h2>Passing URI Segments to your Functions</h2> + +<p>If your URI contains more then two segments they will be passed to your function as parameters.</p> + +<p>For example, lets say you have a URI like this:</p> + +<code>example.com/index.php/<var>products</var>/<samp>shoes</samp>/<kbd>sandals</kbd>/<dfn>123</dfn></code> + +<p>Your function will be passed URI segments 3 and 4 ("sandals" and "123"):</p> + +<code> +&lt;?php<br /> +class Products extends CI_Controller {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;public function shoes($sandals, $id)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $sandals;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $id;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}<br /> +?&gt; +</code> + +<p class="important"><strong>Important:</strong>&nbsp; If you are using the <a href="routing.html">URI Routing</a> feature, the segments +passed to your function will be the re-routed ones.</p> + + +<a name="default"></a> +<h2>Defining a Default Controller</h2> + +<p>CodeIgniter can be told to load a default controller when a URI is not present, +as will be the case when only your site root URL is requested. To specify a default controller, open +your <dfn>application/config/routes.php</dfn> file and set this variable:</p> + +<code>$route['default_controller'] = '<var>Blog</var>';</code> + +<p>Where <var>Blog</var> is the name of the controller class you want used. If you now load your main index.php file without +specifying any URI segments you'll see your Hello World message by default.</p> + + + +<a name="remapping"></a> +<h2>Remapping Function Calls</h2> + +<p>As noted above, the second segment of the URI typically determines which function in the controller gets called. +CodeIgniter permits you to override this behavior through the use of the <kbd>_remap()</kbd> function:</p> + +<code>public function _remap()<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;// Some code here...<br /> +}</code> + +<p class="important"><strong>Important:</strong>&nbsp; If your controller contains a function named <kbd>_remap()</kbd>, it will <strong>always</strong> +get called regardless of what your URI contains. It overrides the normal behavior in which the URI determines which function is called, +allowing you to define your own function routing rules.</p> + +<p>The overridden function call (typically the second segment of the URI) will be passed as a parameter to the <kbd>_remap()</kbd> function:</p> + +<code>public function _remap(<var>$method</var>)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;if ($method == 'some_method')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->$method();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +&nbsp;&nbsp;&nbsp;&nbsp;else<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->default_method();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}</code> + +<p>Any extra segments after the method name are passed into <kbd>_remap()</kbd> as an optional second parameter. This array can be used in combination with PHP's <a href="http://php.net/call_user_func_array">call_user_func_array</a> to emulate CodeIgniter's default behavior.</p> + +<code>public function _remap($method, $params = array())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$method = 'process_'.$method;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;if (method_exists($this, $method))<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return call_user_func_array(array($this, $method), $params);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +&nbsp;&nbsp;&nbsp;&nbsp;show_404();<br /> +}</code> + + +<a name="output"></a> +<h2>Processing Output</h2> + +<p>CodeIgniter has an output class that takes care of sending your final rendered data to the web browser automatically. More information on this can be found in the +<a href="views.html">Views</a> and <a href="../libraries/output.html">Output class</a> pages. In some cases, however, you might want to +post-process the finalized data in some way and send it to the browser yourself. CodeIgniter permits you to +add a function named <dfn>_output()</dfn> to your controller that will receive the finalized output data.</p> + +<p><strong>Important:</strong>&nbsp; If your controller contains a function named <kbd>_output()</kbd>, it will <strong>always</strong> +be called by the output class instead of echoing the finalized data directly. The first parameter of the function will contain the finalized output.</p> + +<p>Here is an example:</p> + +<code> +public function _output($output)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $output;<br /> +}</code> + +<p class="important">Please note that your <dfn>_output()</dfn> function will receive the data in its finalized state. Benchmark and memory usage data will be rendered, +cache files written (if you have caching enabled), and headers will be sent (if you use that <a href="../libraries/output.html">feature</a>) +before it is handed off to the _output() function.<br /> +<br /> +To have your controller's output cached properly, its <dfn>_output()</dfn> method can use:<br /> + +<code>if ($this-&gt;output-&gt;cache_expiration &gt; 0)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;output-&gt;_write_cache($output);<br /> +}</code> + +If you are using this feature the page execution timer and memory usage stats might not be perfectly accurate +since they will not take into acccount any further processing you do. For an alternate way to control output <em>before</em> any of the final processing is done, please see +the available methods in the <a href="../libraries/output.html">Output Class</a>.</p> + +<a name="private"></a> +<h2>Private Functions</h2> + + +<p>In some cases you may want certain functions hidden from public access. To make a function private, simply add an +underscore as the name prefix and it will not be served via a URL request. For example, if you were to have a function like this:</p> + +<code> +private function _utility()<br /> +{<br /> +&nbsp;&nbsp;// some code<br /> +}</code> + +<p>Trying to access it via the URL, like this, will not work:</p> + +<code>example.com/index.php/<var>blog</var>/<samp>_utility</samp>/</code> + + + +<a name="subfolders"></a> +<h2>Organizing Your Controllers into Sub-folders</h2> + +<p>If you are building a large application you might find it convenient to organize your controllers into sub-folders. CodeIgniter permits you to do this.</p> + +<p>Simply create folders within your <dfn>application/controllers</dfn> directory and place your controller classes within them.</p> + +<p><strong>Note:</strong>&nbsp; When using this feature the first segment of your URI must specify the folder. For example, lets say you have a controller +located here:</p> + +<code>application/controllers/<kbd>products</kbd>/shoes.php</code> + +<p>To call the above controller your URI will look something like this:</p> + +<code>example.com/index.php/products/shoes/show/123</code> + +<p>Each of your sub-folders may contain a default controller which will be +called if the URL contains only the sub-folder. Simply name your default controller as specified in your +<dfn>application/config/routes.php</dfn> file</p> + + +<p>CodeIgniter also permits you to remap your URIs using its <a href="routing.html">URI Routing</a> feature.</p> + + +<h2><a name="constructors"></a>Class Constructors</h2> + + +<p>If you intend to use a constructor in any of your Controllers, you <strong>MUST</strong> place the following line of code in it:</p> + +<code>parent::__construct();</code> + +<p>The reason this line is necessary is because your local constructor will be overriding the one in the parent controller class so we need to manually call it.</p> + +<code> +&lt;?php<br /> +class <kbd>Blog</kbd> extends CI_Controller {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public function <kbd>__construct()</kbd><br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>parent::__construct();</var><br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Your own constructor code<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}<br /> +?&gt;</code> + +<p>Constructors are useful if you need to set some default values, or run a default process when your class is instantiated. +Constructors can't return a value, but they can do some default work.</p> + +<a name="reserved"></a> +<h2>Reserved Function Names</h2> + +<p>Since your controller classes will extend the main application controller you +must be careful not to name your functions identically to the ones used by that class, otherwise your local functions +will override them. See <a href="reserved_names.html">Reserved Names</a> for a full list.</p> + +<h2>That's it!</h2> + +<p>That, in a nutshell, is all there is to know about controllers.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="urls.html">CodeIgniter URLs</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="reserved_names.html">Reserved Names</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/core_classes.html b/user_guide/general/core_classes.html new file mode 100755 index 0000000..8cd159f --- /dev/null +++ b/user_guide/general/core_classes.html @@ -0,0 +1,186 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Creating Core System Classes : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Creating Core System Classes +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Creating Core System Classes</h1> + +<p>Every time CodeIgniter runs there are several base classes that are initialized automatically as part of the core framework. +It is possible, however, to swap any of the core system classes with your own versions or even extend the core versions.</p> + +<p><strong>Most users will never have any need to do this, +but the option to replace or extend them does exist for those who would like to significantly alter the CodeIgniter core.</strong> +</p> + +<p class="important"><strong>Note:</strong>&nbsp; Messing with a core system class has a lot of implications, so make sure you +know what you are doing before attempting it.</p> + + +<h2>System Class List</h2> + +<p>The following is a list of the core system files that are invoked every time CodeIgniter runs:</p> + +<ul> +<li>Benchmark</li> +<li>Config</li> +<li>Controller</li> +<li>Exceptions</li> +<li>Hooks</li> +<li>Input</li> +<li>Language</li> +<li>Loader</li> +<li>Log</li> +<li>Output</li> +<li>Router</li> +<li>URI</li> +<li>Utf8</li> +</ul> + +<h2>Replacing Core Classes</h2> + +<p>To use one of your own system classes instead of a default one simply place your version inside your local <dfn>application/core</dfn> directory:</p> + +<code>application/core/<dfn>some-class.php</dfn></code> + +<p>If this directory does not exist you can create it.</p> + +<p>Any file named identically to one from the list above will be used instead of the one normally used.</p> + +<p>Please note that your class must use <kbd>CI</kbd> as a prefix. For example, if your file is named <kbd>Input.php</kbd> the class will be named:</p> + +<code> +class CI_Input {<br /><br /> + +} +</code> + + + +<h2>Extending Core Class</h2> + +<p>If all you need to do is add some functionality to an existing library - perhaps add a function or two - then +it's overkill to replace the entire library with your version. In this case it's better to simply extend the class. +Extending a class is nearly identical to replacing a class with a couple exceptions:</p> + +<ul> +<li>The class declaration must extend the parent class.</li> +<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</li> +</ul> + +<p>For example, to extend the native <kbd>Input</kbd> class you'll create a file named <dfn>application/core/</dfn><kbd>MY_Input.php</kbd>, and declare your class with:</p> + +<code> +class MY_Input extends CI_Input {<br /><br /> + +}</code> + +<p>Note: If you need to use a constructor in your class make sure you extend the parent constructor:</p> + +<code> +class MY_Input extends CI_Input {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function __construct()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}</code> + +<p class="important"><strong>Tip:</strong>&nbsp; Any functions in your class that are named identically to the functions in the parent class will be used instead of the native ones +(this is known as "method overriding"). +This allows you to substantially alter the CodeIgniter core.</p> + +<p>If you are extending the Controller core class, then be sure to extend your new class in your application controller's constructors.</p> + +<code>class Welcome extends MY_Controller {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function __construct()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function index()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->load->view('welcome_message');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}</code> + +<h3>Setting Your Own Prefix</h3> + +<p>To set your own sub-class prefix, open your <dfn>application/config/config.php</dfn> file and look for this item:</p> + +<code>$config['subclass_prefix'] = 'MY_';</code> + +<p>Please note that all native CodeIgniter libraries are prefixed with <kbd>CI_</kbd> so DO NOT use that as your prefix.</p> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="creating_libraries.html">Creating Your Own Libraries</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="hooks.html">Hooks - Extending the Core</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/creating_drivers.html b/user_guide/general/creating_drivers.html new file mode 100755 index 0000000..46a41f0 --- /dev/null +++ b/user_guide/general/creating_drivers.html @@ -0,0 +1,100 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Creating Drivers : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Creating Drivers +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Creating Drivers</h1> + +<h2>Driver Directory and File Structure</h2> + +<p>Sample driver directory and file structure layout:</p> + +<ul> + <li>/application/libraries/Driver_name + <ul> + <li>Driver_name.php</li> + <li>drivers + <ul> + <li>Driver_name_subclass_1.php</li> + <li>Driver_name_subclass_2.php</li> + <li>Driver_name_subclass_3.php</li> + </ul> + </li> + </ul> + </li> +</ul> + +<p class="important"><strong>NOTE:</strong> In order to maintain compatibility on case-sensitive file systems, the <samp>Driver_name</samp> directory must be <var>ucfirst()</var></p> + +<!-- @todo write this! --> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="drivers.html">Using CodeIgniter Drivers</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="core_classes.html">Creating Core System Classes</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/creating_libraries.html b/user_guide/general/creating_libraries.html new file mode 100755 index 0000000..0d424a2 --- /dev/null +++ b/user_guide/general/creating_libraries.html @@ -0,0 +1,293 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Creating Libraries : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Creating Libraries +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Creating Libraries</h1> + +<p>When we use the term "Libraries" we are normally referring to the classes that are located in the <kbd>libraries</kbd> +directory and described in the Class Reference of this user guide. In this case, however, we will instead describe how you can create +your own libraries within your <dfn>application/libraries</dfn> directory in order to maintain separation between your local resources +and the global framework resources.</p> + +<p>As an added bonus, CodeIgniter permits your libraries to <kbd>extend</kbd> native classes if you simply need to add some functionality +to an existing library. Or you can even replace native libraries just by placing identically named versions in your <dfn>application/libraries</dfn> folder.</p> + +<p>In summary:</p> + +<ul> +<li>You can create entirely new libraries.</li> +<li>You can extend native libraries.</li> +<li>You can replace native libraries.</li> +</ul> + +<p>The page below explains these three concepts in detail.</p> + +<p class="important"><strong>Note:</strong> The Database classes can not be extended or replaced with your own classes. All other classes are able to be replaced/extended.</p> + + +<h2>Storage</h2> + +<p>Your library classes should be placed within your <dfn>application/libraries</dfn> folder, as this is where CodeIgniter will look for them when +they are initialized.</p> + + +<h2>Naming Conventions</h2> + +<ul> +<li>File names must be capitalized. For example:&nbsp; <dfn>Myclass.php</dfn></li> +<li>Class declarations must be capitalized. For example:&nbsp; <kbd>class Myclass</kbd></li> +<li>Class names and file names must match.</li> +</ul> + + +<h2>The Class File</h2> + +<p>Classes should have this basic prototype (Note: We are using the name <kbd>Someclass</kbd> purely as an example):</p> + +<code>&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +<br /><br /> +class Someclass {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;public function some_function()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}<br /><br /> +/* End of file Someclass.php */</code> + + +<h2>Using Your Class</h2> + +<p>From within any of your <a href="controllers.html">Controller</a> functions you can initialize your class using the standard:</p> + +<code>$this->load->library('<kbd>someclass</kbd>');</code> + +<p>Where <em>someclass</em> is the file name, without the ".php" file extension. You can submit the file name capitalized or lower case. +CodeIgniter doesn't care.</p> + +<p>Once loaded you can access your class using the <kbd>lower case</kbd> version:</p> + +<code>$this-><kbd>someclass</kbd>->some_function();&nbsp; // Object instances will always be lower case +</code> + + + +<h2>Passing Parameters When Initializing Your Class</h2> + +<p>In the library loading function you can dynamically pass data as an array via the second parameter and it will be passed to your class +constructor:</p> + +<code> +$params = array('type' => 'large', 'color' => 'red');<br /> +<br /> +$this->load->library('Someclass', <kbd>$params</kbd>);</code> + +<p>If you use this feature you must set up your class constructor to expect data:</p> + +<code>&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');<br /> +<br /> +class Someclass {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;public function __construct($params)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Do something with $params<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}<br /><br /> +?&gt;</code> + +<p class="important">You can also pass parameters stored in a config file. Simply create a config file named identically to the class <kbd>file name</kbd> +and store it in your <dfn>application/config/</dfn> folder. Note that if you dynamically pass parameters as described above, +the config file option will not be available.</p> + + + + + + + +<h2>Utilizing CodeIgniter Resources within Your Library</h2> + + +<p>To access CodeIgniter's native resources within your library use the <kbd>get_instance()</kbd> function. +This function returns the CodeIgniter super object.</p> + +<p>Normally from within your controller functions you will call any of the available CodeIgniter functions using the <kbd>$this</kbd> construct:</p> + +<code> +<strong>$this</strong>->load->helper('url');<br /> +<strong>$this</strong>->load->library('session');<br /> +<strong>$this</strong>->config->item('base_url');<br /> +etc. +</code> + +<p><kbd>$this</kbd>, however, only works directly within your controllers, your models, or your views. +If you would like to use CodeIgniter's classes from within your own custom classes you can do so as follows:</p> + + +<p>First, assign the CodeIgniter object to a variable:</p> + +<code>$CI =&amp; get_instance();</code> + +<p>Once you've assigned the object to a variable, you'll use that variable <em>instead</em> of <kbd>$this</kbd>:</p> + +<code> +$CI =&amp; get_instance();<br /> +<br /> +$CI->load->helper('url');<br /> +$CI->load->library('session');<br /> +$CI->config->item('base_url');<br /> +etc. +</code> + +<p class="important"><strong>Note:</strong> You'll notice that the above get_instance() function is being passed by reference: +<br /><br /> +<var>$CI =&amp; get_instance();</var> +<br /> +<br /> +<kbd>This is very important.</kbd> Assigning by reference allows you to use the original CodeIgniter object rather than creating a copy of it.</p> + + +<h2>Replacing Native Libraries with Your Versions</h2> + +<p>Simply by naming your class files identically to a native library will cause CodeIgniter to use it instead of the native one. To use this +feature you must name the file and the class declaration exactly the same as the native library. For example, to replace the native <kbd>Email</kbd> library +you'll create a file named <dfn>application/libraries/Email.php</dfn>, and declare your class with:</p> + +<code> +class CI_Email {<br /><br /> + +}</code> + +<p>Note that most native classes are prefixed with <kbd>CI_</kbd>.</p> + +<p>To load your library you'll see the standard loading function:</p> + +<code>$this->load->library('<kbd>email</kbd>');</code> + +<p class="important"><strong>Note:</strong> At this time the Database classes can not be replaced with your own versions.</p> + + +<h2>Extending Native Libraries</h2> + +<p>If all you need to do is add some functionality to an existing library - perhaps add a function or two - then +it's overkill to replace the entire library with your version. In this case it's better to simply extend the class. +Extending a class is nearly identical to replacing a class with a couple exceptions:</p> + +<ul> +<li>The class declaration must extend the parent class.</li> +<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</li> +</ul> + +<p>For example, to extend the native <kbd>Email</kbd> class you'll create a file named <dfn>application/libraries/</dfn><kbd>MY_Email.php</kbd>, and declare your class with:</p> + +<code> +class MY_Email extends CI_Email {<br /><br /> + +}</code> + +<p>Note: If you need to use a constructor in your class make sure you extend the parent constructor:</p> + + +<code> +class MY_Email extends CI_Email {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;public function __construct()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}</code> + + +<h3>Loading Your Sub-class</h3> + +<p>To load your sub-class you'll use the standard syntax normally used. DO NOT include your prefix. For example, +to load the example above, which extends the Email class, you will use:</p> + +<code>$this->load->library('<kbd>email</kbd>');</code> + +<p>Once loaded you will use the class variable as you normally would for the class you are extending. In the case of +the email class all calls will use:</p> + + +<code>$this-><kbd>email</kbd>->some_function();</code> + + +<h3>Setting Your Own Prefix</h3> + +<p>To set your own sub-class prefix, open your <dfn>application/config/config.php</dfn> file and look for this item:</p> + +<code>$config['subclass_prefix'] = 'MY_';</code> + +<p>Please note that all native CodeIgniter libraries are prefixed with <kbd>CI_</kbd> so DO NOT use that as your prefix.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="libraries.html">Using CodeIgniter Libraries</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="drivers.html">Using CodeIgniter Drivers</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/credits.html b/user_guide/general/credits.html new file mode 100755 index 0000000..67a461f --- /dev/null +++ b/user_guide/general/credits.html @@ -0,0 +1,87 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Credits : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Credits +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Credits</h1> + +<p>CodeIgniter was originally developed by <a href="http://www.ellislab.com/">Rick Ellis</a> (CEO of +<a href="http://ellislab.com/">EllisLab, Inc.</a>). The framework was written for performance in the real +world, with many of the class libraries, helpers, and sub-systems borrowed from the code-base of +<a href="http://www.expressionengine.com/">ExpressionEngine</a>.</p> + +<p>It is currently developed and maintained by the ExpressionEngine Development Team.<br /> +Bleeding edge development is spearheaded by the handpicked contributors of the Reactor Team.</p> + +<p>A hat tip goes to Ruby on Rails for inspiring us to create a PHP framework, and for +bringing frameworks into the general consciousness of the web community.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../changelog.html">Change Log</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../installation/downloads.html">Downloading CodeIgniter</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/drivers.html b/user_guide/general/drivers.html new file mode 100755 index 0000000..b2f91ce --- /dev/null +++ b/user_guide/general/drivers.html @@ -0,0 +1,104 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Using CodeIgniter Drivers : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Using CodeIgniter Drivers +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Using CodeIgniter Drivers</h1> + + +<p>Drivers are a special type of Library that has a parent class and any number of potential child classes. Child classes have access to the parent class, but not their siblings. Drivers provide an elegant syntax in your <a href="controllers.html">controllers</a> for libraries that benefit from or require being broken down into discrete classes.</p> + +<p>Drivers are found in the <dfn>system/libraries</dfn> folder, in their own folder which is identically named to the parent library class. Also inside that folder is a subfolder named <kbd>drivers</kbd>, which contains all of the possible child class files.</p> + +<p>To use a driver you will initialize it within a controller using the following initialization function:</p> + +<code>$this->load->driver('<var>class name</var>'); </code> + +<p>Where <var>class name</var> is the name of the driver class you want to invoke. For example, to load a driver named "Some Parent" you would do this:</p> + +<code>$this->load->driver('<var>some_parent</var>');</code> + +<p>Methods of that class can then be invoked with:</p> + +<code>$this->some_parent->some_method();</code> + +<p>The child classes, the drivers themselves, can then be called directly through the parent class, without initializing them:</p> + +<code>$this->some_parent->child_one->some_method();<br /> +$this->some_parent->child_two->another_method();</code> + +<h2>Creating Your Own Drivers</h2> + +<p>Please read the section of the user guide that discusses how to <a href="creating_drivers.html">create your own drivers</a>.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="creating_libraries.html">Creating Libraries</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="creating_drivers.html">Creating Drivers</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/environments.html b/user_guide/general/environments.html new file mode 100755 index 0000000..25190a5 --- /dev/null +++ b/user_guide/general/environments.html @@ -0,0 +1,126 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Handling Multiple Environments : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Handling Multiple Environments +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Handling Multiple Environments</h1> + +<p> + Developers often desire different system behavior depending on whether + an application is running in a development or production + environment. For example, verbose error output is something that would + be useful while developing an application, but it may also pose a security issue when "live". +</p> + +<h2>The ENVIRONMENT Constant</h2> + +<p> + By default, CodeIgniter comes with the environment constant set to + '<kbd>development</kbd>'. At the top of index.php, you will see: +</p> + +<code> +define('<var>ENVIRONMENT</var>', '<var>development</var>'); +</code> + +<p> + In addition to affecting some basic framework behavior (see the next section), + you may use this constant in your own development to differentiate + between which environment you are running in. +</p> + +<h2>Effects On Default Framework Behavior</h2> + +<p> + There are some places in the CodeIgniter system where the <kbd>ENVIRONMENT</kbd> + constant is used. This section describes how default framework behavior is + affected. +</p> + +<h3>Error Reporting</h3> + +<p> + Setting the <kbd>ENVIRONMENT</kbd> constant to a value of '<kbd>development</kbd>' will + cause all PHP errors to be rendered to the browser when they occur. Conversely, + setting the constant to '<kbd>production</kbd>' will disable all error output. Disabling + error reporting in production is a <a href="security.html">good security practice</a>. +</p> + +<h3>Configuration Files</h3> + +<p> + Optionally, you can have CodeIgniter load environment-specific + configuration files. This may be useful for managing things like differing API keys + across multiple environments. This is described in more detail in the + environment section of the <a href="../libraries/config.html#environments">Config Class</a> documentation. +</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="managing_apps.html">Managing Applications</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="alternative_php.html">Alternative PHP Syntax</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/errors.html b/user_guide/general/errors.html new file mode 100755 index 0000000..6764b54 --- /dev/null +++ b/user_guide/general/errors.html @@ -0,0 +1,140 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Error Handling : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Error Handling +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Error Handling</h1> + +<p>CodeIgniter lets you build error reporting into your applications using the functions described below. +In addition, it has an error logging class that permits error and debugging messages to be saved as text files.</p> + +<p class="important"><strong>Note:</strong> By default, CodeIgniter displays all PHP errors. You might +wish to change this behavior once your development is complete. You'll find the <dfn>error_reporting()</dfn> +function located at the top of your main index.php file. Disabling error reporting will NOT prevent log files +from being written if there are errors.</p> + +<p>Unlike most systems in CodeIgniter, the error functions are simple procedural interfaces that are available +globally throughout the application. This approach permits error messages to get triggered without having to worry +about class/function scoping.</p> + +<p>The following functions let you generate errors:</p> + +<h2>show_error('<var>message</var>' [, int <var>$status_code</var>= 500 ] )</h2> +<p>This function will display the error message supplied to it using the following error template:</p> +<p><dfn>application/errors/</dfn><kbd>error_general.php</kbd></p> +<p>The optional parameter $status_code determines what HTTP status code should be sent with the error.</p> + +<h2>show_404('<var>page</var>' [, '<var>log_error</var>'])</h2> +<p>This function will display the 404 error message supplied to it using the following error template:</p> +<p><dfn>application/errors/</dfn><kbd>error_404.php</kbd></p> + +<p>The function expects the string passed to it to be the file path to the page that isn't found. +Note that CodeIgniter automatically shows 404 messages if controllers are not found.</p> + +<p>CodeIgniter automatically logs any show_404() calls. Setting the optional second parameter to FALSE will skip logging.</p> + + +<h2>log_message('<var>level</var>', '<samp>message</samp>')</h2> + +<p>This function lets you write messages to your log files. You must supply one of three "levels" +in the first parameter, indicating what type of message it is (debug, error, info), with the message +itself in the second parameter. Example:</p> + +<code> +if ($some_var == "")<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;log_message('error', 'Some variable did not contain a value.');<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;log_message('debug', 'Some variable was correctly set');<br /> +}<br /> +<br /> +log_message('info', 'The purpose of some variable is to provide some value.');<br /> +</code> + +<p>There are three message types:</p> + +<ol> +<li>Error Messages. These are actual errors, such as PHP errors or user errors.</li> +<li>Debug Messages. These are messages that assist in debugging. For example, if a class has been initialized, you could log this as debugging info.</li> +<li>Informational Messages. These are the lowest priority messages, simply giving information regarding some process. CodeIgniter doesn't natively generate any info messages but you may want to in your application.</li> +</ol> + + +<p class="important"><strong>Note:</strong> In order for the log file to actually be written, the + "logs" folder must be writable. In addition, you must set the "threshold" for logging in <dfn>application/config/config.php</dfn>. +You might, for example, only want error messages to be logged, and not the other two types. +If you set it to zero logging will be disabled.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="routing.html">URI Routing</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="caching.html">Page Caching</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/helpers.html b/user_guide/general/helpers.html new file mode 100755 index 0000000..0614dcb --- /dev/null +++ b/user_guide/general/helpers.html @@ -0,0 +1,185 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Helper Functions : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Helper Functions +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Helper Functions</h1> + +<p>Helpers, as the name suggests, help you with tasks. Each helper file is simply a collection of functions in a particular +category. There are <dfn>URL Helpers</dfn>, that assist in creating links, there are <dfn>Form Helpers</dfn> +that help you create form elements, <dfn>Text Helpers</dfn> perform various text formatting routines, +<dfn>Cookie Helpers</dfn> set and read cookies, <dfn>File Helpers</dfn> help you deal with files, etc. +</p> + +<p>Unlike most other systems in CodeIgniter, Helpers are not written in an Object Oriented format. They are simple, procedural functions. +Each helper function performs one specific task, with no dependence on other functions.</p> + +<p>CodeIgniter does not load Helper Files by default, so the first step in using +a Helper is to load it. Once loaded, it becomes globally available in your <a href="../general/controllers.html">controller</a> and <a href="../general/views.html">views</a>.</p> + +<p>Helpers are typically stored in your <dfn>system/helpers</dfn>, or <dfn>application/helpers </dfn>directory. CodeIgniter will look first in your <dfn>application/helpers</dfn> +directory. If the directory does not exist or the specified helper is not located there CI will instead look in your global +<dfn>system/helpers</dfn> folder.</p> + + +<h2>Loading a Helper</h2> + +<p>Loading a helper file is quite simple using the following function:</p> + +<code>$this->load->helper('<var>name</var>');</code> + +<p>Where <var>name</var> is the file name of the helper, without the .php file extension or the "helper" part.</p> + +<p>For example, to load the <dfn>URL Helper</dfn> file, which is named <var>url_helper.php</var>, you would do this:</p> + +<code>$this->load->helper('<var>url</var>');</code> + +<p>A helper can be loaded anywhere within your controller functions (or even within your View files, although that's not a good practice), +as long as you load it before you use it. You can load your helpers in your controller constructor so that they become available +automatically in any function, or you can load a helper in a specific function that needs it.</p> + +<p class="important">Note: The Helper loading function above does not return a value, so don't try to assign it to a variable. Just use it as shown.</p> + + +<h2>Loading Multiple Helpers</h2> + +<p>If you need to load more than one helper you can specify them in an array, like this:</p> + +<code>$this->load->helper( <samp>array(</samp>'<var>helper1</var>', '<var>helper2</var>', '<var>helper3</var>'<samp>)</samp> );</code> + +<h2>Auto-loading Helpers</h2> + +<p>If you find that you need a particular helper globally throughout your application, you can tell CodeIgniter to auto-load it during system initialization. +This is done by opening the <var>application/config/autoload.php</var> file and adding the helper to the autoload array.</p> + + +<h2>Using a Helper</h2> + +<p>Once you've loaded the Helper File containing the function you intend to use, you'll call it the way you would a standard PHP function.</p> + +<p>For example, to create a link using the <dfn>anchor()</dfn> function in one of your view files you would do this:</p> + +<code>&lt;?php echo anchor('blog/comments', 'Click Here');?&gt;</code> + +<p>Where "Click Here" is the name of the link, and "blog/comments" is the URI to the controller/function you wish to link to.</p> + +<h2>"Extending" Helpers</h2> + +<p>To "extend" Helpers, create a file in your <dfn>application/helpers/</dfn> folder with an identical name to the existing Helper, but prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</p> + +<p>If all you need to do is add some functionality to an existing helper - perhaps add a function or two, or change how a particular + helper function operates - then it's overkill to replace the entire helper with your version. In this case it's better to simply + "extend" the Helper. The term "extend" is used loosely since Helper functions are procedural and discrete and cannot be extended + in the traditional programmatic sense. Under the hood, this gives you the ability to add to the functions a Helper provides, + or to modify how the native Helper functions operate.</p> + +<p>For example, to extend the native <kbd>Array Helper</kbd> you'll create a file named <dfn>application/helpers/</dfn><kbd>MY_array_helper.php</kbd>, and add or override functions:</p> + +<code> +// any_in_array() is not in the Array Helper, so it defines a new function<br /> +function any_in_array($needle, $haystack)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$needle = (is_array($needle)) ? $needle : array($needle);<br /> + <br /> +&nbsp;&nbsp;&nbsp;&nbsp;foreach ($needle as $item)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (in_array($item, $haystack))<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /> + <br /> +&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<br /> +}<br /> +<br /> +// random_element() is included in Array Helper, so it overrides the native function<br /> +function random_element($array)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;shuffle($array);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;return array_pop($array);<br /> +}<br /> +</code> + +<h3>Setting Your Own Prefix</h3> + +<p>The filename prefix for "extending" Helpers is the same used to extend libraries and Core classes. To set your own prefix, open your <dfn>application/config/config.php</dfn> file and look for this item:</p> + +<code>$config['subclass_prefix'] = 'MY_';</code> + +<p>Please note that all native CodeIgniter libraries are prefixed with <kbd>CI_</kbd> so DO NOT use that as your prefix.</p> + + +<h2>Now What?</h2> + +<p>In the Table of Contents you'll find a list of all the available Helper Files. Browse each one to see what they do.</p> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="models.html">Models</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="libraries.html">Using Libraries</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/hooks.html b/user_guide/general/hooks.html new file mode 100755 index 0000000..c75f45d --- /dev/null +++ b/user_guide/general/hooks.html @@ -0,0 +1,165 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Hooks : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Hooks - Extending the Framework Core +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Hooks - Extending the Framework Core</h1> + +<p>CodeIgniter's Hooks feature provides a means to tap into and modify the inner workings of the framework without hacking the core files. +When CodeIgniter runs it follows a specific execution process, diagramed in the <a href="../overview/appflow.html">Application Flow</a> page. +There may be instances, however, where you'd like to cause some action to take place at a particular stage in the execution process. +For example, you might want to run a script right before your controllers get loaded, or right after, or you might want to trigger one of +your own scripts in some other location. +</p> + +<h2>Enabling Hooks</h2> + +<p>The hooks feature can be globally enabled/disabled by setting the following item in the <kbd>application/config/config.php</kbd> file:</p> + +<code>$config['enable_hooks'] = TRUE;</code> + + +<h2>Defining a Hook</h2> + +<p>Hooks are defined in <dfn>application/config/hooks.php</dfn> file. Each hook is specified as an array with this prototype:</p> + +<code> +$hook['pre_controller'] = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'class'&nbsp;&nbsp;&nbsp;&nbsp;=> 'MyClass',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'function' => 'Myfunction',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'filename' => 'Myclass.php',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'filepath' => 'hooks',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'params'&nbsp;&nbsp;&nbsp;=> array('beer', 'wine', 'snacks')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</code> + +<p><strong>Notes:</strong><br />The array index correlates to the name of the particular hook point you want to +use. In the above example the hook point is <kbd>pre_controller</kbd>. A list of hook points is found below. +The following items should be defined in your associative hook array:</p> + +<ul> +<li><strong>class</strong>&nbsp; The name of the class you wish to invoke. If you prefer to use a procedural function instead of a class, leave this item blank.</li> +<li><strong>function</strong>&nbsp; The function name you wish to call.</li> +<li><strong>filename</strong>&nbsp; The file name containing your class/function.</li> +<li><strong>filepath</strong>&nbsp; The name of the directory containing your script. Note: Your script must be located in a directory INSIDE your <kbd>application</kbd> folder, so the file path is relative to that folder. For example, if your script is located in <dfn>application/hooks</dfn>, you will simply use <samp>hooks</samp> as your filepath. If your script is located in <dfn>application/hooks/utilities</dfn> you will use <samp>hooks/utilities</samp> as your filepath. No trailing slash.</li> +<li><strong>params</strong>&nbsp; Any parameters you wish to pass to your script. This item is optional.</li> +</ul> + + +<h2>Multiple Calls to the Same Hook</h2> + +<p>If want to use the same hook point with more then one script, simply make your array declaration multi-dimensional, like this:</p> + +<code> +$hook['pre_controller']<kbd>[]</kbd> = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'class'&nbsp;&nbsp;&nbsp;&nbsp;=> 'MyClass',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'function' => 'Myfunction',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'filename' => 'Myclass.php',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'filepath' => 'hooks',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'params'&nbsp;&nbsp;&nbsp;=> array('beer', 'wine', 'snacks')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$hook['pre_controller']<kbd>[]</kbd> = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'class'&nbsp;&nbsp;&nbsp;&nbsp;=> 'MyOtherClass',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'function' => 'MyOtherfunction',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'filename' => 'Myotherclass.php',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'filepath' => 'hooks',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'params'&nbsp;&nbsp;&nbsp;=> array('red', 'yellow', 'blue')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</code> + +<p>Notice the brackets after each array index:</p> + +<code>$hook['pre_controller']<kbd>[]</kbd></code> + +<p>This permits you to have the same hook point with multiple scripts. The order you define your array will be the execution order.</p> + + +<h2>Hook Points</h2> + +<p>The following is a list of available hook points.</p> + +<ul> + <li><strong>pre_system</strong><br /> + Called very early during system execution. Only the benchmark and hooks class have been loaded at this point. No routing or other processes have happened.</li> + <li><strong>pre_controller</strong><br /> + Called immediately prior to any of your controllers being called. All base classes, routing, and security checks have been done.</li> + <li><strong>post_controller_constructor</strong><br /> + Called immediately after your controller is instantiated, but prior to any method calls happening.</li> + <li><strong>post_controller</strong><br /> + Called immediately after your controller is fully executed.</li> + <li><strong>display_override</strong><br /> + Overrides the <dfn>_display()</dfn> function, used to send the finalized page to the web browser at the end of system execution. This permits you to + use your own display methodology. Note that you will need to reference the CI superobject with <dfn>$this->CI =&amp; get_instance()</dfn> and then the finalized data will be available by calling <dfn>$this->CI->output->get_output()</dfn></li> + <li><strong>cache_override</strong><br /> + Enables you to call your own function instead of the <dfn>_display_cache()</dfn> function in the output class. This permits you to use your own cache display mechanism.</li> + <li><strong>post_system</strong><br /> + Called after the final rendered page is sent to the browser, at the end of system execution after the finalized data is sent to the browser.</li> + </ul> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="core_classes.html">Creating Core Classes</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="autoloader.html">Auto-loading Resources</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/libraries.html b/user_guide/general/libraries.html new file mode 100755 index 0000000..6830fb0 --- /dev/null +++ b/user_guide/general/libraries.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Using CodeIgniter Libraries : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Using CodeIgniter Libraries +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Using CodeIgniter Libraries</h1> + + +<p>All of the available libraries are located in your <dfn>system/libraries</dfn> folder. +In most cases, to use one of these classes involves initializing it within a <a href="controllers.html">controller</a> using the following initialization function:</p> + +<code>$this->load->library('<var>class name</var>'); </code> + +<p>Where <var>class name</var> is the name of the class you want to invoke. For example, to load the form validation class you would do this:</p> + +<code>$this->load->library('<var>form_validation</var>'); </code> + +<p>Once initialized you can use it as indicated in the user guide page corresponding to that class.</p> + +<p>Additionally, multiple libraries can be loaded at the same time by passing an array of libraries to the load function.</p> + +<code>$this->load->library(array('<var>email</var>', '<var>table</var>'));</code> + +<h2>Creating Your Own Libraries</h2> + +<p>Please read the section of the user guide that discusses how to <a href="creating_libraries.html">create your own libraries</a></p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="helpers.html">Helpers</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="creating_libraries.html">Creating Libraries</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/managing_apps.html b/user_guide/general/managing_apps.html new file mode 100755 index 0000000..8f96736 --- /dev/null +++ b/user_guide/general/managing_apps.html @@ -0,0 +1,133 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Managing your Applications : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Managing your Applications +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Managing your Applications</h1> + +<p>By default it is assumed that you only intend to use CodeIgniter to manage one application, which you will build in your +<dfn>application/</dfn> directory. It is possible, however, to have multiple sets of applications that share a single +CodeIgniter installation, or even to rename or relocate your <dfn>application</dfn> folder.</p> + +<h2>Renaming the Application Folder</h2> + +<p>If you would like to rename your <dfn>application</dfn> folder you may do so as long as you open your main <kbd>index.php</kbd> +file and set its name using the <samp>$application_folder</samp> variable:</p> + +<code>$application_folder = "application";</code> + +<h2>Relocating your Application Folder</h2> + +<p>It is possible to move your <dfn>application</dfn> folder to a different location on your server than your <kbd>system</kbd> folder. +To do so open your main <kbd>index.php</kbd> and set a <em>full server path</em> in the <samp>$application_folder</samp> variable.</p> + + +<code>$application_folder = "/Path/to/your/application";</code> + + +<h2>Running Multiple Applications with one CodeIgniter Installation</h2> + +<p>If you would like to share a common CodeIgniter installation to manage several different applications simply +put all of the directories located inside your <kbd>application</kbd> folder into their +own sub-folder.</p> + +<p>For example, let's say you want to create two applications, "foo" and "bar". You could structure your +application folders like this:</p> + +<code>applications/<var>foo</var>/<br /> +applications/<var>foo</var>/config/<br /> +applications/<var>foo</var>/controllers/<br /> +applications/<var>foo</var>/errors/<br /> +applications/<var>foo</var>/libraries/<br /> +applications/<var>foo</var>/models/<br /> +applications/<var>foo</var>/views/<br /> +applications/<samp>bar</samp>/<br /> +applications/<samp>bar</samp>/config/<br /> +applications/<samp>bar</samp>/controllers/<br /> +applications/<samp>bar</samp>/errors/<br /> +applications/<samp>bar</samp>/libraries/<br /> +applications/<samp>bar</samp>/models/<br /> +applications/<samp>bar</samp>/views/</code> + + +<p>To select a particular application for use requires that you open your main <kbd>index.php</kbd> file and set the <dfn>$application_folder</dfn> +variable. For example, to select the "foo" application for use you would do this:</p> + +<code>$application_folder = "applications/foo";</code> + +<p class="important"><strong>Note:</strong>&nbsp; Each of your applications will need its own <dfn>index.php</dfn> file which +calls the desired application. The index.php file can be named anything you want.</p> + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="profiling.html">Profiling Your Application</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="alternative_php.html">Alternative PHP Syntax</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/models.html b/user_guide/general/models.html new file mode 100755 index 0000000..4fd9984 --- /dev/null +++ b/user_guide/general/models.html @@ -0,0 +1,251 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Models : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Models +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Models</h1> + +<p>Models are <strong>optionally</strong> available for those who want to use a more traditional MVC approach.</p> + + + +<ul> +<li><a href="#what">What is a Model?</a></li> +<li><a href="#anatomy">Anatomy of a Model</a></li> +<li><a href="#loading">Loading a Model</a></li> +<li><a href="#auto_load_model">Auto-Loading a Model</a> </li> +<li><a href="#conn">Connecting to your Database</a></li> +</ul> + + + +<h2><a name="what"></a>What is a Model?</h2> + +<p>Models are PHP classes that are designed to work with information in your database. For example, let's say +you use CodeIgniter to manage a blog. You might have a model class that contains functions to insert, update, and +retrieve your blog data. Here is an example of what such a model class might look like:</p> + +<code> +class&nbsp;Blogmodel&nbsp;extends&nbsp;CI_Model&nbsp;{<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;var $title&nbsp;&nbsp; = '';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;var $content = '';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;var $date&nbsp;&nbsp;&nbsp; = '';<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;__construct()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Call the Model constructor<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;get_last_ten_entries()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query = $this->db->get('entries', 10);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $query->result();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;insert_entry()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->title&nbsp;&nbsp; = $_POST['title']; // please read the below note<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->content = $_POST['content'];<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->date&nbsp;&nbsp;&nbsp; = time();<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->db->insert('entries',&nbsp;$this);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;update_entry()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->title&nbsp;&nbsp; = $_POST['title'];<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->content = $_POST['content'];<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->date&nbsp;&nbsp;&nbsp; = time();<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->db->update('entries',&nbsp;$this, array('id' => $_POST['id']));<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +<br /> +}</code> + +<p>Note: The functions in the above example use the <a href="../database/active_record.html">Active Record</a> database functions.</p> +<p class="important"><strong>Note:</strong> For the sake of simplicity in this example we're using $_POST directly. This is generally bad practice, and a more common approach would be to use the <a href="../libraries/input.html">Input Class</a> $this-&gt;input-&gt;post('title')</p> +<h2><a name="anatomy"></a>Anatomy of a Model</h2> + +<p>Model classes are stored in your <dfn>application/models/</dfn> folder. They can be nested within sub-folders if you +want this type of organization.</p> + +<p>The basic prototype for a model class is this:</p> + + +<code> +class&nbsp;<var>Model_name</var>&nbsp;extends&nbsp;CI_Model&nbsp;{<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;<var>__construct</var>()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}</code> + +<p>Where <var>Model_name</var> is the name of your class. Class names <strong>must</strong> have the first letter capitalized with the rest of the name lowercase. +Make sure your class extends the base Model class.</p> + +<p>The file name will be a lower case version of your class name. For example, if your class is this:</p> + +<code> +class&nbsp;<var>User_model</var>&nbsp;extends&nbsp;CI_Model&nbsp;{<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;<var>__construct</var>()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}</code> + +<p>Your file will be this:</p> + +<code>application/models/<var>user_model.php</var></code> + + + +<h2><a name="loading"></a>Loading a Model</h2> + +<p>Your models will typically be loaded and called from within your <a href="controllers.html">controller</a> functions. +To load a model you will use the following function:</p> + +<code>$this->load->model('<var>Model_name</var>');</code> + +<p>If your model is located in a sub-folder, include the relative path from your models folder. For example, if +you have a model located at <dfn>application/models/blog/queries.php</dfn> you'll load it using:</p> + +<code>$this->load->model('<var>blog/queries</var>');</code> + + +<p>Once loaded, you will access your model functions using an object with the same name as your class:</p> + +<code> +$this->load->model('<var>Model_name</var>');<br /> +<br /> +$this-><var>Model_name</var>->function(); +</code> + +<p>If you would like your model assigned to a different object name you can specify it via the second parameter of the loading +function:</p> + + +<code> +$this->load->model('<var>Model_name</var>', '<kbd>fubar</kbd>');<br /> +<br /> +$this-><kbd>fubar</kbd>->function(); +</code> + +<p>Here is an example of a controller, that loads a model, then serves a view:</p> + +<code> +class&nbsp;Blog_controller&nbsp;extends&nbsp;CI_Controller&nbsp;{<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;blog()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->load->model('Blog');<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data['query'] = $this->Blog->get_last_ten_entries();<br /><br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->load->view('blog', $data);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +}</code> + +<h2><a name="auto_load_model" id="auto_load_model"></a>Auto-loading Models</h2> +<p>If you find that you need a particular model globally throughout your application, you can tell CodeIgniter to auto-load it during system initialization. This is done by opening the application/config/autoload.php file and adding the model to the autoload array.</p> + + +<h2><a name="conn"></a>Connecting to your Database</h2> + +<p>When a model is loaded it does <strong>NOT</strong> connect automatically to your database. The following options for connecting are available to you:</p> + +<ul> +<li>You can connect using the standard database methods <a href="../database/connecting.html">described here</a>, either from within your Controller class or your Model class.</li> +<li>You can tell the model loading function to auto-connect by passing <kbd>TRUE</kbd> (boolean) via the third parameter, +and connectivity settings, as defined in your database config file will be used: + + <code>$this->load->model('<var>Model_name</var>', '', <kbd>TRUE</kbd>);</code> + </li> + + +<li>You can manually pass database connectivity settings via the third parameter: + + + <code>$config['hostname'] = "localhost";<br /> + $config['username'] = "myusername";<br /> + $config['password'] = "mypassword";<br /> + $config['database'] = "mydatabase";<br /> + $config['dbdriver'] = "mysql";<br /> + $config['dbprefix'] = "";<br /> + $config['pconnect'] = FALSE;<br /> + $config['db_debug'] = TRUE;<br /> + <br /> + $this->load->model('<var>Model_name</var>', '', <kbd>$config</kbd>);</code></li> +</ul> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="views.html">Views</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="helpers.html">Helpers</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/profiling.html b/user_guide/general/profiling.html new file mode 100755 index 0000000..e333cf5 --- /dev/null +++ b/user_guide/general/profiling.html @@ -0,0 +1,181 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Profiling Your Application : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Profiling Your Application +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Profiling Your Application</h1> + +<p>The Profiler Class will display benchmark results, queries you have run, and $_POST data at the bottom of your pages. +This information can be useful during development in order to help with debugging and optimization.</p> + + +<h2>Initializing the Class</h2> + +<p class="important"><strong>Important:</strong>&nbsp; This class does <kbd>NOT</kbd> need to be initialized. It is loaded automatically by the +<a href="../libraries/output.html">Output Class</a> if profiling is enabled as shown below.</p> + +<h2>Enabling the Profiler</h2> + + <p>To enable the profiler place the following function anywhere within your <a href="controllers.html">Controller</a> functions:</p> + <code>$this->output->enable_profiler(TRUE);</code> + + <p>When enabled a report will be generated and inserted at the bottom of your pages.</p> + + <p>To disable the profiler you will use:</p> + <code>$this->output->enable_profiler(FALSE);</code> + + +<h2>Setting Benchmark Points</h2> + + <p>In order for the Profiler to compile and display your benchmark data you must name your mark points using specific syntax.</p> + + <p>Please read the information on setting Benchmark points in <a href="../libraries/benchmark.html">Benchmark Class</a> page.</p> + + +<h2>Enabling and Disabling Profiler Sections</h2> + + <p>Each section of Profiler data can be enabled or disabled by setting a corresponding config variable to <var>TRUE</var> or <var>FALSE</var>. This can be done one of two ways. First, you can set application wide defaults with the <dfn>application/config/profiler.php</dfn> config file.</p> + + <code>$config['config']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= FALSE;<br /> + $config['queries']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= FALSE;<br /></code> + + <p>In your controllers, you can override the defaults and config file values by calling the <kbd>set_profiler_sections()</kbd> method of the <a href="../libraries/output.html">Output class</a>:</p> + + <code>$sections = array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;'config' &nbsp;=> TRUE,<br /> + &nbsp;&nbsp;&nbsp;&nbsp;'queries' => TRUE<br /> + &nbsp;&nbsp;&nbsp;&nbsp;);<br /> + <br /> + $this->output->set_profiler_sections($sections);</code> + + <p>Available sections and the array key used to access them are described in the table below.</p> + + <table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> + <tr> + <th>Key</th> + <th>Description</th> + <th>Default</th> + </tr> + <tr> + <td class="td"><strong>benchmarks</strong></td> + <td class="td">Elapsed time of Benchmark points and total execution time</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>config</strong></td> + <td class="td">CodeIgniter Config variables</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>controller_info</strong></td> + <td class="td">The Controller class and method requested</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>get</strong></td> + <td class="td">Any GET data passed in the request</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>http_headers</strong></td> + <td class="td">The HTTP headers for the current request</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>memory_usage</strong></td> + <td class="td">Amount of memory consumed by the current request, in bytes</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>post</strong></td> + <td class="td">Any POST data passed in the request</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>queries</strong></td> + <td class="td">Listing of all database queries executed, including execution time</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>uri_string</strong></td> + <td class="td">The URI of the current request</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>query_toggle_count</strong></td> + <td class="td">The number of queries after which the query block will default to hidden.</td> + <td class="td">25</td> + </tr> + </table> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="caching.html">Caching</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="managing_apps.html">Managing Applications</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/quick_reference.html b/user_guide/general/quick_reference.html new file mode 100755 index 0000000..ac1b27e --- /dev/null +++ b/user_guide/general/quick_reference.html @@ -0,0 +1,77 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Quick Reference Chart : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Quick Reference Chart +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Quick Reference Chart</h1> + +<p>For a PDF version of this chart, <a href="http://ellislab.com/asset/ci_download_files/ci_quick_ref.pdf">click here</a>.</p> + +<p><img src="../images/ci_quick_ref.png" width="763" height="994" border="0" /></p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/requirements.html b/user_guide/general/requirements.html new file mode 100755 index 0000000..9691d20 --- /dev/null +++ b/user_guide/general/requirements.html @@ -0,0 +1,82 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Server Requirements : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Server Requirements +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Server Requirements</h1> + +<ul> + <li><a href="http://www.php.net/">PHP</a> version 5.1.6 or newer.</li> + <li>A Database is required for most web application programming. Current supported databases are MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, and ODBC.</li> +</ul> + + + +</div> +<!-- END CONTENT --> + + + +<div id="footer"> +<p> +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../license.html">License Agreement</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/reserved_names.html b/user_guide/general/reserved_names.html new file mode 100755 index 0000000..34306b5 --- /dev/null +++ b/user_guide/general/reserved_names.html @@ -0,0 +1,128 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Reserved Names : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Controllers +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Reserved Names</h1> + +<p>In order to help out, CodeIgniter uses a series of functions and names in its operation. Because of this, some names cannot be used by a developer. Following is a list of reserved names that cannot be used.</p> +<h3>Controller names</h3> +<p>Since your controller classes will extend the main application controller you +must be careful not to name your functions identically to the ones used by that class, otherwise your local functions +will override them. The following +is a list of reserved names. Do not name your controller any of these:</p> +<ul> + <li>Controller</li> + <li>CI_Base</li> + <li>_ci_initialize</li> + <li>Default</li> + <li>index</li> +</ul> +<h3>Functions</h3> +<ul> + <li>is_really_writable()</li> + <li>load_class()</li> + <li>get_config()</li> + <li>config_item()</li> + <li>show_error()</li> + <li>show_404()</li> + <li>log_message()</li> + <li>_exception_handler()</li> + <li>get_instance()</li> + </ul> +<h3>Variables</h3> +<ul> + <li>$config</li> + <li>$mimes</li> + <li>$lang</li> +</ul> +<h3>Constants</h3> +<ul> + <li>ENVIRONMENT</li> + <li>EXT</li> + <li>FCPATH</li> + <li>SELF</li> + <li>BASEPATH</li> + <li>APPPATH</li> + <li>CI_VERSION</li> + <li>FILE_READ_MODE</li> + <li>FILE_WRITE_MODE</li> + <li>DIR_READ_MODE</li> + <li>DIR_WRITE_MODE</li> + <li>FOPEN_READ</li> + <li>FOPEN_READ_WRITE</li> + <li>FOPEN_WRITE_CREATE_DESTRUCTIVE</li> + <li>FOPEN_READ_WRITE_CREATE_DESTRUCTIVE</li> + <li>FOPEN_WRITE_CREATE</li> + <li>FOPEN_READ_WRITE_CREATE</li> + <li>FOPEN_WRITE_CREATE_STRICT</li> + <li>FOPEN_READ_WRITE_CREATE_STRICT</li> +</ul> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="controllers.html">Controllers</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="views.html">Views</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/routing.html b/user_guide/general/routing.html new file mode 100755 index 0000000..61fe934 --- /dev/null +++ b/user_guide/general/routing.html @@ -0,0 +1,171 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>URI Routing : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +URI Routing +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>URI Routing</h1> + +<p>Typically there is a one-to-one relationship between a URL string and its corresponding controller class/method. +The segments in a URI normally follow this pattern:</p> + +<code>example.com/<dfn>class</dfn>/<samp>function</samp>/<var>id</var>/</code> + +<p>In some instances, however, you may want to remap this relationship so that a different class/function can be called +instead of the one corresponding to the URL.</p> + +<p>For example, lets say you want your URLs to have this prototype:</p> + +<p> +example.com/product/1/<br /> +example.com/product/2/<br /> +example.com/product/3/<br /> +example.com/product/4/ +</p> + +<p>Normally the second segment of the URL is reserved for the function name, but in the example above it instead has a product ID. +To overcome this, CodeIgniter allows you to remap the URI handler.</p> + + +<h2>Setting your own routing rules</h2> + +<p>Routing rules are defined in your <var>application/config/routes.php</var> file. In it you'll see an array called <dfn>$route</dfn> that +permits you to specify your own routing criteria. Routes can either be specified using <dfn>wildcards</dfn> or <dfn>Regular Expressions</dfn></p> + + +<h2>Wildcards</h2> + +<p>A typical wildcard route might look something like this:</p> + +<code>$route['product/:num'] = "catalog/product_lookup";</code> + +<p>In a route, the array key contains the URI to be matched, while the array value contains the destination it should be re-routed to. +In the above example, if the literal word "product" is found in the first segment of the URL, and a number is found in the second segment, +the "catalog" class and the "product_lookup" method are instead used.</p> + +<p>You can match literal values or you can use two wildcard types:</p> + +<p><strong>(:num)</strong> will match a segment containing only numbers.<br /> +<strong>(:any)</strong> will match a segment containing any character. +</p> + +<p class="important"><strong>Note:</strong> Routes will run in the order they are defined. +Higher routes will always take precedence over lower ones.</p> + +<h2>Examples</h2> + +<p>Here are a few routing examples:</p> + +<code>$route['journals'] = "blogs";</code> +<p>A URL containing the word "journals" in the first segment will be remapped to the "blogs" class.</p> + +<code>$route['blog/joe'] = "blogs/users/34";</code> +<p>A URL containing the segments blog/joe will be remapped to the "blogs" class and the "users" method. The ID will be set to "34".</p> + +<code>$route['product/(:any)'] = "catalog/product_lookup";</code> +<p>A URL with "product" as the first segment, and anything in the second will be remapped to the "catalog" class and the "product_lookup" method.</p> + +<code>$route['product/(:num)'] = "catalog/product_lookup_by_id/$1";</code> +<p>A URL with "product" as the first segment, and a number in the second will be remapped to the "catalog" class and the "product_lookup_by_id" method passing in the match as a variable to the function.</p> + +<p class="important"><strong>Important:</strong> Do not use leading/trailing slashes.</p> + +<h2>Regular Expressions</h2> + +<p>If you prefer you can use regular expressions to define your routing rules. Any valid regular expression is allowed, as are back-references.</p> + +<p class="important"><strong>Note:</strong>&nbsp; If you use back-references you must use the dollar syntax rather than the double backslash syntax.</p> + +<p>A typical RegEx route might look something like this:</p> + +<code>$route['products/([a-z]+)/(\d+)'] = "$1/id_$2";</code> + +<p>In the above example, a URI similar to <dfn>products/shirts/123</dfn> would instead call the <dfn>shirts</dfn> controller class and the <dfn>id_123</dfn> function.</p> + +<p>You can also mix and match wildcards with regular expressions.</p> + +<h2>Reserved Routes</h2> + +<p>There are two reserved routes:</p> + +<code>$route['default_controller'] = 'welcome';</code> + +<p>This route indicates which controller class should be loaded if the URI contains no data, which will be the case +when people load your root URL. In the above example, the "welcome" class would be loaded. You +are encouraged to always have a default route otherwise a 404 page will appear by default.</p> + +<code>$route['404_override'] = '';</code> + +<p>This route indicates which controller class should be loaded if the requested controller is not found. It will override the default 404 +error page. It won't affect to the <samp>show_404()</samp> function, which will continue loading the default <dfn>error_404.php</dfn> file at <var>application/errors/error_404.php</var>.</p> + +<p class="important"><strong>Important:</strong>&nbsp; The reserved routes must come before any wildcard or regular expression routes.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="common_functions.html">Common Functions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="errors.html">Error Handling</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/security.html b/user_guide/general/security.html new file mode 100755 index 0000000..1032014 --- /dev/null +++ b/user_guide/general/security.html @@ -0,0 +1,164 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Security : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Security +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Security</h1> + +<p>This page describes some "best practices" regarding web security, and details +CodeIgniter's internal security features.</p> + + +<h2>URI Security</h2> + +<p>CodeIgniter is fairly restrictive regarding which characters it allows in your URI strings in order to help +minimize the possibility that malicious data can be passed to your application. URIs may only contain the following: +</p> + +<ul> +<li>Alpha-numeric text</li> +<li>Tilde: ~ </li> +<li>Period: .</li> +<li>Colon: :</li> +<li>Underscore: _</li> +<li>Dash: -</li> +</ul> + +<h2>Register_globals</h2> + +<p>During system initialization all global variables are unset, except those found in the $_GET, $_POST, and $_COOKIE arrays. The unsetting +routine is effectively the same as register_globals = off.</p> + +<a name="error_reporting"></a> +<h2>error_reporting</h2> + +<p> + In production environments, it is typically desirable to disable PHP's + error reporting by setting the internal error_reporting flag to a value of 0. This disables native PHP + errors from being rendered as output, which may potentially contain + sensitive information. +</p> + +<p> + Setting CodeIgniter's <kbd>ENVIRONMENT</kbd> constant in index.php to a + value of '<kbd>production</kbd>' will turn off these errors. In development + mode, it is recommended that a value of '<kbd>development</kbd>' is used. + More information about differentiating between environments can be found + on the <a href="environments.html">Handling Environments</a> page. +</p> + +<h2>magic_quotes_runtime</h2> + +<p>The magic_quotes_runtime directive is turned off during system initialization so that you don't have to remove slashes when +retrieving data from your database.</p> + +<h1>Best Practices</h1> + +<p>Before accepting any data into your application, whether it be POST data from a form submission, COOKIE data, URI data, +XML-RPC data, or even data from the SERVER array, you are encouraged to practice this three step approach:</p> + +<ol> +<li>Filter the data as if it were tainted.</li> +<li>Validate the data to ensure it conforms to the correct type, length, size, etc. (sometimes this step can replace step one)</li> +<li>Escape the data before submitting it into your database.</li> +</ol> + +<p>CodeIgniter provides the following functions to assist in this process:</p> + +<ul> + +<li><h2>XSS Filtering</h2> + +<p>CodeIgniter comes with a Cross Site Scripting filter. This filter looks for commonly +used techniques to embed malicious Javascript into your data, or other types of code that attempt to hijack cookies +or do other malicious things. The XSS Filter is described <a href="../libraries/security.html">here</a>. +</p> +</li> + +<li><h2>Validate the data</h2> + +<p>CodeIgniter has a <a href="../libraries/form_validation.html">Form Validation Class</a> that assists you in validating, filtering, and prepping +your data.</p> +</li> + +<li><h2>Escape all data before database insertion</h2> + +<p>Never insert information into your database without escaping it. Please see the section that discusses +<a href="../database/queries.html">queries</a> for more information.</p> + +</li> + +</ul> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="alternative_php.html">Alternative PHP</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="styleguide.html">PHP Style Guide</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/styleguide.html b/user_guide/general/styleguide.html new file mode 100755 index 0000000..4cd704b --- /dev/null +++ b/user_guide/general/styleguide.html @@ -0,0 +1,679 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Style Guide : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<style type="text/css" media="screen"> + code { + white-space: pre; + } +</style> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Style Guide +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>General Style and Syntax</h1> + +<p>The following page describes the use of coding rules adhered to when developing CodeIgniter.</p> + + +<h2>Table of Contents</h2> +<ul class="minitoc"> + <li><a href="#file_format">File Format</a></li> + <li><a href="#php_closing_tag">PHP Closing Tag</a></li> + <li><a href="#class_and_method_naming">Class and Method Naming</a></li> + <li><a href="#variable_names">Variable Names</a></li> + <li><a href="#commenting">Commenting</a></li> + <li><a href="#constants">Constants</a></li> + <li><a href="#true_false_and_null">TRUE, FALSE, and NULL</a></li> + <li><a href="#logical_operators">Logical Operators</a></li> + <li><a href="#comparing_return_values_and_typecasting">Comparing Return Values and Typecasting</a></li> + <li><a href="#debugging_code">Debugging Code</a></li> + <li><a href="#whitespace_in_files">Whitespace in Files</a></li> + <li><a href="#compatibility">Compatibility</a></li> + <li><a href="#class_and_file_names_using_common_words">Class and File Names using Common Words</a></li> + <li><a href="#database_table_names">Database Table Names</a></li> + <li><a href="#one_file_per_class">One File per Class</a></li> + <li><a href="#whitespace">Whitespace</a></li> + <li><a href="#line_breaks">Line Breaks</a></li> + <li><a href="#code_indenting">Code Indenting</a></li> + <li><a href="#bracket_spacing">Bracket and Parenthetic Spacing</li> + <li><a href="#localized_text">Localized Text</a></li> + <li><a href="#private_methods_and_variables">Private Methods and Variables</a></li> + <li><a href="#php_errors">PHP Errors</a></li> + <li><a href="#short_open_tags">Short Open Tags</a></li> + <li><a href="#one_statement_per_line">One Statement Per Line</a></li> + <li><a href="#strings">Strings</a></li> + <li><a href="#sql_queries">SQL Queries</a></li> + <li><a href="#default_function_arguments">Default Function Arguments</a></li> +</ul> + +<li> + + <h2><a name="file_format"></a>File Format</h2> + <div class="guidelineDetails"> + <p>Files should be saved with Unicode (UTF-8) encoding. The <abbr title="Byte Order Mark">BOM</abbr> + should <em>not</em> be used. Unlike UTF-16 and UTF-32, there's no byte order to indicate in + a UTF-8 encoded file, and the <abbr title="Byte Order Mark">BOM</abbr> can have a negative side effect in PHP of sending output, + preventing the application from being able to set its own headers. Unix line endings should + be used (LF).</p> + + <p>Here is how to apply these settings in some of the more common text editors. Instructions for your + text editor may vary; check your text editor's documentation.</p> + + <h5>TextMate</h5> + + <ol> + <li>Open the Application Preferences</li> + <li>Click Advanced, and then the "Saving" tab</li> + <li>In "File Encoding", select "UTF-8 (recommended)"</li> + <li>In "Line Endings", select "LF (recommended)"</li> + <li><em>Optional:</em> Check "Use for existing files as well" if you wish to modify the line + endings of files you open to your new preference.</li> + </ol> + + <h5>BBEdit</h5> + + <ol> + <li>Open the Application Preferences</li> + <li>Select "Text Encodings" on the left.</li> + <li>In "Default text encoding for new documents", select "Unicode (UTF-8, no BOM)"</li> + <li><em>Optional:</em> In "If file's encoding can't be guessed, use", select + "Unicode (UTF-8, no BOM)"</li> + <li>Select "Text Files" on the left.</li> + <li>In "Default line breaks", select "Mac OS X and Unix (LF)"</li> + </ol> + </div> + + <h2><a name="php_closing_tag"></a>PHP Closing Tag</h2> + <div class="guidelineDetails"> + <p>The PHP closing tag on a PHP document <strong>?&gt;</strong> is optional to the PHP parser. However, if used, any whitespace following the closing tag, whether introduced + by the developer, user, or an FTP application, can cause unwanted output, PHP errors, or if the latter are suppressed, blank pages. For this reason, all PHP files should + <strong>OMIT</strong> the closing PHP tag, and instead use a comment block to mark the end of file and it's location relative to the application root. + This allows you to still identify a file as being complete and not truncated.</p> +<code><strong>INCORRECT</strong>: +&lt;?php + +echo "Here's my code!"; + +?&gt; + +<strong>CORRECT</strong>: +&lt;?php + +echo "Here's my code!"; + +/* End of file myfile.php */ +/* Location: ./system/modules/mymodule/myfile.php */ +</code> + </div> + + + <h2><a name="class_and_method_naming"></a>Class and Method Naming</h2> + <div class="guidelineDetails"> + <p>Class names should always start with an uppercase letter. Multiple words should be separated with an underscore, and not CamelCased. All other class methods should be entirely lowercased and named to clearly indicate their function, preferably including a verb. Try to avoid overly long and verbose names.</p> + + <code><strong>INCORRECT</strong>: +class superclass +class SuperClass + +<strong>CORRECT</strong>: +class Super_class</code> + + + <code>class Super_class { + + function __construct() + { + + } +}</code> + + <p>Examples of improper and proper method naming:</p> + + <code><strong>INCORRECT</strong>: +function fileproperties() // not descriptive and needs underscore separator +function fileProperties() // not descriptive and uses CamelCase +function getfileproperties() // Better! But still missing underscore separator +function getFileProperties() // uses CamelCase +function get_the_file_properties_from_the_file() // wordy + +<strong>CORRECT</strong>: +function get_file_properties() // descriptive, underscore separator, and all lowercase letters</code> + + </div> + + + <h2><a name="variable_names"></a>Variable Names</h2> + <div class="guidelineDetails"> + <p>The guidelines for variable naming is very similar to that used for class methods. Namely, variables should contain only lowercase letters, use underscore separators, and be reasonably named to indicate their purpose and contents. Very short, non-word variables should only be used as iterators in for() loops.</p> +<code><strong>INCORRECT</strong>: +$j = &apos;foo&apos;; // single letter variables should only be used in for() loops +$Str // contains uppercase letters +$bufferedText // uses CamelCasing, and could be shortened without losing semantic meaning +$groupid // multiple words, needs underscore separator +$name_of_last_city_used // too long + +<strong>CORRECT</strong>: +for ($j = 0; $j &lt; 10; $j++) +$str +$buffer +$group_id +$last_city +</code> + </div> + + + <h2><a name="commenting"></a>Commenting</h2> + <div class="guidelineDetails"> + <p>In general, code should be commented prolifically. It not only helps describe the flow and intent of the code for less experienced programmers, but can prove invaluable when returning to your own code months down the line. There is not a required format for comments, but the following are recommended.</p> + + <p><a href="http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblock">DocBlock</a> style comments preceding class and method declarations so they can be picked up by IDEs:</p> + +<code>/** + * Super Class + * + * @package Package Name + * @subpackage Subpackage + * @category Category + * @author Author Name + * @link http://example.com + */ +class Super_class {</code> + +<code>/** + * Encodes string for use in XML + * + * @access public + * @param string + * @return string + */ +function xml_encode($str)</code> + + <p>Use single line comments within code, leaving a blank line between large comment blocks and code.</p> + +<code>// break up the string by newlines +$parts = explode("\n", $str); + +// A longer comment that needs to give greater detail on what is +// occurring and why can use multiple single-line comments. Try to +// keep the width reasonable, around 70 characters is the easiest to +// read. Don't hesitate to link to permanent external resources +// that may provide greater detail: +// +// http://example.com/information_about_something/in_particular/ + +$parts = $this->foo($parts); +</code> + </div> + + + <h2><a name="constants"></a>Constants</h2> + <div class="guidelineDetails"> + <p>Constants follow the same guidelines as do variables, except constants should always be fully uppercase. <em>Always use CodeIgniter constants when appropriate, i.e. SLASH, LD, RD, PATH_CACHE, etc.</em></p> +<code><strong>INCORRECT</strong>: +myConstant // missing underscore separator and not fully uppercase +N // no single-letter constants +S_C_VER // not descriptive +$str = str_replace('{foo}', 'bar', $str); // should use LD and RD constants + +<strong>CORRECT</strong>: +MY_CONSTANT +NEWLINE +SUPER_CLASS_VERSION +$str = str_replace(LD.'foo'.RD, 'bar', $str); +</code> + </div> + + + <h2><a name="true_false_and_null"></a>TRUE, FALSE, and NULL</h2> + <div class="guidelineDetails"> + <p><strong>TRUE</strong>, <strong>FALSE</strong>, and <strong>NULL</strong> keywords should always be fully uppercase.</p> +<code><strong>INCORRECT</strong>: +if ($foo == true) +$bar = false; +function foo($bar = null) + +<strong>CORRECT</strong>: +if ($foo == TRUE) +$bar = FALSE; +function foo($bar = NULL)</code> + </div> + + + + <h2><a name="logical_operators"></a>Logical Operators</h2> + <div class="guidelineDetails"> + <p>Use of <strong>||</strong> is discouraged as its clarity on some output devices is low (looking like the number 11 for instance). + <strong>&amp;&amp;</strong> is preferred over <strong>AND</strong> but either are acceptable, and a space should always precede and follow <strong>!</strong>.</p> +<code><strong>INCORRECT</strong>: +if ($foo || $bar) +if ($foo AND $bar) // okay but not recommended for common syntax highlighting applications +if (!$foo) +if (! is_array($foo)) + +<strong>CORRECT</strong>: +if ($foo OR $bar) +if ($foo && $bar) // recommended +if ( ! $foo) +if ( ! is_array($foo)) +</code> + </div> + + + + <h2><a name="comparing_return_values_and_typecasting"></a>Comparing Return Values and Typecasting</h2> + <div class="guidelineDetails"> + <p>Some PHP functions return FALSE on failure, but may also have a valid return value of "" or 0, which would evaluate to FALSE in loose comparisons. Be explicit by comparing the variable type when using these return values in conditionals to ensure the return value is indeed what you expect, and not a value that has an equivalent loose-type evaluation.</p> + <p>Use the same stringency in returning and checking your own variables. Use <strong>===</strong> and <strong>!==</strong> as necessary. + +<code><strong>INCORRECT</strong>: +// If 'foo' is at the beginning of the string, strpos will return a 0, +// resulting in this conditional evaluating as TRUE +if (strpos($str, 'foo') == FALSE) + +<strong>CORRECT</strong>: +if (strpos($str, 'foo') === FALSE) +</code> + +<code><strong>INCORRECT</strong>: +function build_string($str = "") +{ + if ($str == "") // uh-oh! What if FALSE or the integer 0 is passed as an argument? + { + + } +} + +<strong>CORRECT</strong>: +function build_string($str = "") +{ + if ($str === "") + { + + } +}</code> + + <p>See also information regarding <a href="http://us3.php.net/manual/en/language.types.type-juggling.php#language.types.typecasting">typecasting</a>, which can be quite useful. Typecasting has a slightly different effect which may be desirable. When casting a variable as a string, for instance, NULL and boolean FALSE variables become empty strings, 0 (and other numbers) become strings of digits, and boolean TRUE becomes "1":</p> + +<code>$str = (string) $str; // cast $str as a string</code> + + </div> + + + <h2><a name="debugging_code"></a>Debugging Code</h2> + <div class="guidelineDetails"> + <p>No debugging code can be left in place for submitted add-ons unless it is commented out, i.e. no var_dump(), print_r(), die(), and exit() calls that were used while creating the add-on, unless they are commented out.</p> + +<code>// print_r($foo);</code> + </div> + + + + <h2><a name="whitespace_in_files"></a>Whitespace in Files</h2> + <div class="guidelineDetails"> + <p>No whitespace can precede the opening PHP tag or follow the closing PHP tag. Output is buffered, so whitespace in your files can cause output to begin before CodeIgniter outputs its content, leading to errors and an inability for CodeIgniter to send proper headers. In the examples below, select the text with your mouse to reveal the incorrect whitespace.</p> + + <p><strong>INCORRECT</strong>:</p> +<code> +&lt;?php + // ...there is whitespace and a linebreak above the opening PHP tag + // as well as whitespace after the closing PHP tag +?&gt; +</code> + <p><strong>CORRECT</strong>:</p> +<code>&lt;?php + // this sample has no whitespace before or after the opening and closing PHP tags +?&gt;</code> + + </div> + + + <h2><a name="compatibility"></a>Compatibility</h2> + <div class="guidelineDetails"> + <p>Unless specifically mentioned in your add-on's documentation, all code must be compatible with PHP version 5.1+. Additionally, do not use PHP functions that require non-default libraries to be installed unless your code contains an alternative method when the function is not available, or you implicitly document that your add-on requires said PHP libraries.</p> + </div> + + + + <h2><a name="class_and_file_names_using_common_words"></a>Class and File Names using Common Words</h2> + <div class="guidelineDetails"> + <p>When your class or filename is a common word, or might quite likely be identically named in another PHP script, provide a unique prefix to help prevent collision. Always realize that your end users may be running other add-ons or third party PHP scripts. Choose a prefix that is unique to your identity as a developer or company.</p> + +<code><strong>INCORRECT</strong>: +class Email pi.email.php +class Xml ext.xml.php +class Import mod.import.php + +<strong>CORRECT</strong>: +class Pre_email pi.pre_email.php +class Pre_xml ext.pre_xml.php +class Pre_import mod.pre_import.php +</code> + </div> + + + <h2><a name="database_table_names"></a>Database Table Names</h2> + <div class="guidelineDetails"> + <p>Any tables that your add-on might use must use the 'exp_' prefix, followed by a prefix uniquely identifying you as the developer or company, and then a short descriptive table name. You do not need to be concerned about the database prefix being used on the user's installation, as CodeIgniter's database class will automatically convert 'exp_' to what is actually being used.</p> + +<code><strong>INCORRECT</strong>: +email_addresses // missing both prefixes +pre_email_addresses // missing exp_ prefix +exp_email_addresses // missing unique prefix + +<strong>CORRECT</strong>: +exp_pre_email_addresses +</code> + + <p class="important"><strong>NOTE:</strong> Be mindful that MySQL has a limit of 64 characters for table names. This should not be an issue as table names that would exceed this would likely have unreasonable names. For instance, the following table name exceeds this limitation by one character. Silly, no? <strong>exp_pre_email_addresses_of_registered_users_in_seattle_washington</strong> + </div> + + + + <h2><a name="one_file_per_class"></a>One File per Class</h2> + <div class="guidelineDetails"> + <p>Use separate files for each class your add-on uses, unless the classes are <em>closely related</em>. An example of CodeIgniter files that contains multiple classes is the Database class file, which contains both the DB class and the DB_Cache class, and the Magpie plugin, which contains both the Magpie and Snoopy classes.</p> + </div> + + + + <h2><a name="whitespace"></a>Whitespace</h2> + <div class="guidelineDetails"> + <p>Use tabs for whitespace in your code, not spaces. This may seem like a small thing, but using tabs instead of whitespace allows the developer looking at your code to have indentation at levels that they prefer and customize in whatever application they use. And as a side benefit, it results in (slightly) more compact files, storing one tab character versus, say, four space characters.</p> + </div> + + + + <h2><a name="line_breaks"></a>Line Breaks</h2> + <div class="guidelineDetails"> + <p>Files must be saved with Unix line breaks. This is more of an issue for developers who work in Windows, but in any case ensure that your text editor is setup to save files with Unix line breaks.</p> + </div> + + + + <h2><a name="code_indenting"></a>Code Indenting</h2> + <div class="guidelineDetails"> + <p>Use Allman style indenting. With the exception of Class declarations, braces are always placed on a line by themselves, and indented at the same level as the control statement that "owns" them.</p> + +<code><strong>INCORRECT</strong>: +function foo($bar) { + // ... +} + +foreach ($arr as $key => $val) { + // ... +} + +if ($foo == $bar) { + // ... +} else { + // ... +} + +for ($i = 0; $i &lt; 10; $i++) + { + for ($j = 0; $j &lt; 10; $j++) + { + // ... + } + } + +<strong>CORRECT</strong>: +function foo($bar) +{ + // ... +} + +foreach ($arr as $key => $val) +{ + // ... +} + +if ($foo == $bar) +{ + // ... +} +else +{ + // ... +} + +for ($i = 0; $i &lt; 10; $i++) +{ + for ($j = 0; $j &lt; 10; $j++) + { + // ... + } +}</code> + </div> + + + <h2><a name="bracket_spacing"></a>Bracket and Parenthetic Spacing</h2> + <div class="guidelineDetails"> + <p>In general, parenthesis and brackets should not use any additional spaces. The exception is that a space should always follow PHP control structures that accept arguments with parenthesis (declare, do-while, elseif, for, foreach, if, switch, while), to help distinguish them from functions and increase readability.</p> + +<code>INCORRECT: +$arr[ $foo ] = 'foo'; + +CORRECT: +$arr[$foo] = 'foo'; // no spaces around array keys + + +INCORRECT: +function foo ( $bar ) +{ + +} + +CORRECT: +function foo($bar) // no spaces around parenthesis in function declarations +{ + +} + + +INCORRECT: +foreach( $query->result() as $row ) + +CORRECT: +foreach ($query->result() as $row) // single space following PHP control structures, but not in interior parenthesis +</code> + </div> + + + + <h2><a name="localized_text"></a>Localized Text</h2> + <div class="guidelineDetails"> + <p>Any text that is output in the control panel should use language variables in your lang file to allow localization.</p> + +<code>INCORRECT: +return "Invalid Selection"; + +CORRECT: +return $this->lang->line('invalid_selection');</code> + </div> + + + + <h2><a name="private_methods_and_variables"></a>Private Methods and Variables</h2> + <div class="guidelineDetails"> + <p>Methods and variables that are only accessed internally by your class, such as utility and helper functions that your public methods use for code abstraction, should be prefixed with an underscore.</p> + +<code>convert_text() // public method +_convert_text() // private method</code> + </div> + + + + <h2><a name="php_errors"></a>PHP Errors</h2> + <div class="guidelineDetails"> + <p>Code must run error free and not rely on warnings and notices to be hidden to meet this requirement. For instance, never access a variable that you did not set yourself (such as $_POST array keys) without first checking to see that it isset().</p> + + <p>Make sure that while developing your add-on, error reporting is enabled for ALL users, and that display_errors is enabled in the PHP environment. You can check this setting with:</p> + +<code>if (ini_get('display_errors') == 1) +{ + exit "Enabled"; +}</code> + + <p>On some servers where display_errors is disabled, and you do not have the ability to change this in the php.ini, you can often enable it with:</p> + +<code>ini_set('display_errors', 1);</code> + + <p class="important"><strong>NOTE:</strong> Setting the <a href="http://us.php.net/manual/en/ref.errorfunc.php#ini.display-errors">display_errors</a> setting with ini_set() at runtime is not identical to having it enabled in the PHP environment. Namely, it will not have any effect if the script has fatal errors</p> + </div> + + + + <h2><a name="short_open_tags"></a>Short Open Tags</h2> + <div class="guidelineDetails"> + <p>Always use full PHP opening tags, in case a server does not have short_open_tag enabled.</p> + +<code><strong>INCORRECT</strong>: +&lt;? echo $foo; ?&gt; + +&lt;?=$foo?&gt; + +<strong>CORRECT</strong>: +&lt;?php echo $foo; ?&gt;</code> + </div> + + + + <h2><a name="one_statement_per_line"></a>One Statement Per Line</h2> + <div class="guidelineDetails"> + <p>Never combine statements on one line.</p> + +<code><strong>INCORRECT</strong>: +$foo = 'this'; $bar = 'that'; $bat = str_replace($foo, $bar, $bag); + +<strong>CORRECT</strong>: +$foo = 'this'; +$bar = 'that'; +$bat = str_replace($foo, $bar, $bag); +</code> + </div> + + + + <h2><a name="strings"></a>Strings</h2> + <div class="guidelineDetails"> + <p>Always use single quoted strings unless you need variables parsed, and in cases where you do need variables parsed, use braces to prevent greedy token parsing. You may also use double-quoted strings if the string contains single quotes, so you do not have to use escape characters.</p> + +<code><strong>INCORRECT</strong>: +"My String" // no variable parsing, so no use for double quotes +"My string $foo" // needs braces +'SELECT foo FROM bar WHERE baz = \'bag\'' // ugly + +<strong>CORRECT</strong>: +'My String' +"My string {$foo}" +"SELECT foo FROM bar WHERE baz = 'bag'"</code> + </div> + + + + <h2><a name="sql_queries"></a>SQL Queries</h2> + <div class="guidelineDetails"> + <p>MySQL keywords are always capitalized: SELECT, INSERT, UPDATE, WHERE, AS, JOIN, ON, IN, etc.</p> + + <p>Break up long queries into multiple lines for legibility, preferably breaking for each clause.</p> + +<code><strong>INCORRECT</strong>: +// keywords are lowercase and query is too long for +// a single line (... indicates continuation of line) +$query = $this->db->query("select foo, bar, baz, foofoo, foobar as raboof, foobaz from exp_pre_email_addresses +...where foo != 'oof' and baz != 'zab' order by foobaz limit 5, 100"); + +<strong>CORRECT</strong>: +$query = $this->db->query("SELECT foo, bar, baz, foofoo, foobar AS raboof, foobaz + FROM exp_pre_email_addresses + WHERE foo != 'oof' + AND baz != 'zab' + ORDER BY foobaz + LIMIT 5, 100");</code> + </div> + + + + <h2><a name="default_function_arguments"></a>Default Function Arguments</h2> + <div class="guidelineDetails"> + <p>Whenever appropriate, provide function argument defaults, which helps prevent PHP errors with mistaken calls and provides common fallback values which can save a few lines of code. Example:</p> + +<code>function foo($bar = '', $baz = FALSE)</code> + </div> + + + +</div> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="security.html">Security</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../doc_style/index.html">Writing Documentation</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/urls.html b/user_guide/general/urls.html new file mode 100755 index 0000000..9493eb3 --- /dev/null +++ b/user_guide/general/urls.html @@ -0,0 +1,151 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter URLs : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +URLS +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>CodeIgniter URLs</h1> + +<p>By default, URLs in CodeIgniter are designed to be search-engine and human friendly. Rather than using the standard "query string" +approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a <strong>segment-based</strong> approach:</p> + +<code>example.com/<var>news</var>/<dfn>article</dfn>/<samp>my_article</samp></code> + +<p class="important"><strong>Note:</strong> Query string URLs can be optionally enabled, as described below.</p> + +<h2>URI Segments</h2> + +<p>The segments in the URL, in following with the Model-View-Controller approach, usually represent:</p> + +<code>example.com/<var>class</var>/<dfn>function</dfn>/<samp>ID</samp></code> + +<ol> +<li>The first segment represents the controller <strong>class</strong> that should be invoked.</li> +<li>The second segment represents the class <strong>function</strong>, or method, that should be called.</li> +<li>The third, and any additional segments, represent the ID and any variables that will be passed to the controller.</li> +</ol> + +<p>The <a href="../libraries/uri.html">URI Class</a> and the <a href="../helpers/url_helper.html">URL Helper</a> +contain functions that make it easy to work with your URI data. In addition, your URLs can be remapped using the +<a href="routing.html">URI Routing</a> feature for more flexibility.</p> + + + +<h2>Removing the index.php file</h2> + +<p>By default, the <strong>index.php</strong> file will be included in your URLs:</p> + +<code>example.com/<var>index.php</var>/news/article/my_article</code> + +<p>You can easily remove this file by using a .htaccess file with some simple rules. Here is an example + of such a file, using the "negative" method in which everything is redirected except the specified items:</p> + +<code>RewriteEngine on<br /> +RewriteCond $1 !^(index\.php|images|robots\.txt)<br /> +RewriteRule ^(.*)$ /index.php/$1 [L]</code> + +<p>In the above example, any HTTP request other than those for index.php, images, and robots.txt is treated as +a request for your index.php file.</p> + + +<h2>Adding a URL Suffix</h2> + +<p>In your <dfn>config/config.php</dfn> file you can specify a suffix that will be added to all URLs generated +by CodeIgniter. For example, if a URL is this:</p> + +<code>example.com/index.php/products/view/shoes</code> + +<p>You can optionally add a suffix, like <kbd>.html</kbd>, making the page appear to be of a certain type:</p> + +<code>example.com/index.php/products/view/shoes.html</code> + + +<h2>Enabling Query Strings</h2> + +<p>In some cases you might prefer to use query strings URLs:</p> + +<code>index.php?c=products&amp;m=view&amp;id=345</code> + +<p>CodeIgniter optionally supports this capability, which can be enabled in your <dfn>application/config.php</dfn> file. If you +open your config file you'll see these items:</p> + +<code>$config['enable_query_strings'] = FALSE;<br /> +$config['controller_trigger'] = 'c';<br /> +$config['function_trigger'] = 'm';</code> + +<p>If you change "enable_query_strings" to TRUE this feature will become active. Your controllers and functions will then +be accessible using the "trigger" words you've set to invoke your controllers and methods:</p> + +<code>index.php?c=controller&amp;m=method</code> + +<p class="important"><strong>Please note:</strong> If you are using query strings you will have to build your own URLs, rather than utilizing +the URL helpers (and other helpers that generate URLs, like some of the form helpers) as these are designed to work with +segment based URLs.</p> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="controllers.html">Controllers</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/general/views.html b/user_guide/general/views.html new file mode 100755 index 0000000..c4dd6c6 --- /dev/null +++ b/user_guide/general/views.html @@ -0,0 +1,274 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Views : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Views +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Views</h1> + +<p>A <dfn>view</dfn> is simply a web page, or a page fragment, like a header, footer, sidebar, etc. +In fact, views can flexibly be embedded within other views (within other views, etc., etc.) if you need this type +of hierarchy.</p> + +<p>Views are never called directly, they must be loaded by a <a href="controllers.html">controller</a>. Remember that in an MVC framework, the Controller acts as the +traffic cop, so it is responsible for fetching a particular view. If you have not read the <a href="controllers.html">Controllers</a> page +you should do so before continuing.</p> + +<p>Using the example controller you created in the <a href="controllers.html">controller</a> page, let's add a view to it.</p> + +<h2>Creating a View</h2> + +<p>Using your text editor, create a file called <dfn>blogview.php</dfn>, and put this in it:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +&lt;html> +&lt;head> +&lt;title>My Blog&lt;/title> +&lt;/head> +&lt;body> + &lt;h1>Welcome to my Blog!&lt;/h1> +&lt;/body> +&lt;/html> +</textarea> + +<p>Then save the file in your <dfn>application/views/</dfn> folder.</p> + +<h2>Loading a View</h2> + +<p>To load a particular view file you will use the following function:</p> + +<code>$this->load->view('<var>name</var>');</code> + +<p>Where <var>name</var> is the name of your view file. Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p> + + +<p>Now, open the controller file you made earlier called <dfn>blog.php</dfn>, and replace the echo statement with the view loading function:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +&lt;?php +class Blog extends CI_Controller { + + function index() + { + $this->load->view('blogview'); + } +} +?&gt; +</textarea> + + +<p>If you visit your site using the URL you did earlier you should see your new view. The URL was similar to this:</p> + +<code>example.com/index.php/<var>blog</var>/</code> + +<h2>Loading multiple views</h2> +<p>CodeIgniter will intelligently handle multiple calls to $this-&gt;load-&gt;view from within a controller. If more than one call happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:</p> +<p><code>&lt;?php<br /> +<br /> +class Page extends CI_Controller {<br /><br /> + + &nbsp;&nbsp;&nbsp;function index()<br /> +&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data['page_title'] = 'Your title';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;view('header');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;view('menu');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;view('content', $data);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;view('footer');<br /> +&nbsp;&nbsp;&nbsp;}<br /> +<br /> +}<br /> + ?&gt;</code></p> +<p>In the example above, we are using &quot;dynamically added data&quot;, which you will see below.</p> +<h2>Storing Views within Sub-folders</h2> +<p>Your view files can also be stored within sub-folders if you prefer that type of organization. When doing so you will need +to include the folder name loading the view. Example:</p> + +<code>$this->load->view('<kbd>folder_name</kbd>/<var>file_name</var>');</code> + + +<h2>Adding Dynamic Data to the View</h2> + +<p>Data is passed from the controller to the view by way of an <strong>array</strong> or an <strong>object</strong> in the second +parameter of the view loading function. Here is an example using an array:</p> + +<code>$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => 'My Title',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading' => 'My Heading',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'message' => 'My Message'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->load->view('blogview', <var>$data</var>);</code> + +<p>And here's an example using an object:</p> + +<code>$data = new Someclass();<br /> +$this->load->view('blogview', <var>$data</var>);</code> + +<p>Note: If you use an object, the class variables will be turned into array elements.</p> + + +<p>Let's try it with your controller file. Open it add this code:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="14"> +&lt;?php +class Blog extends CI_Controller { + + function index() + { + $data['title'] = "My Real Title"; + $data['heading'] = "My Real Heading"; + + $this->load->view('blogview', $data); + } +} +?&gt; +</textarea> + + +<p>Now open your view file and change the text to variables that correspond to the array keys in your data:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +&lt;html> +&lt;head> +&lt;title>&lt;?php echo $title;?>&lt;/title> +&lt;/head> +&lt;body> + &lt;h1>&lt;?php echo $heading;?>&lt;/h1> +&lt;/body> +&lt;/html> +</textarea> + +<p>Then load the page at the URL you've been using and you should see the variables replaced.</p> + +<h2>Creating Loops</h2> + +<p>The data array you pass to your view files is not limited to simple variables. You can +pass multi dimensional arrays, which can be looped to generate multiple rows. For example, if you +pull data from your database it will typically be in the form of a multi-dimensional array.</p> + +<p>Here's a simple example. Add this to your controller:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="17"> +&lt;?php +class Blog extends CI_Controller { + + function index() + { + $data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands'); + + $data['title'] = "My Real Title"; + $data['heading'] = "My Real Heading"; + + $this->load->view('blogview', $data); + } +} +?&gt; +</textarea> + + +<p>Now open your view file and create a loop:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="24"> +&lt;html> +&lt;head> +&lt;title>&lt;?php echo $title;?>&lt;/title> +&lt;/head> +&lt;body> +&lt;h1>&lt;?php echo $heading;?>&lt;/h1> + +&lt;h3>My Todo List&lt;/h3> + +&lt;ul> +&lt;?php foreach ($todo_list as $item):?> + +&lt;li>&lt;?php echo $item;?>&lt;/li> + +&lt;?php endforeach;?> +&lt;/ul> + +&lt;/body> +&lt;/html> +</textarea> +<p><strong>Note:</strong> You'll notice that in the example above we are using PHP's alternative syntax. If you +are not familiar with it you can read about it <a href="alternative_php.html">here</a>.</p> + +<h2>Returning views as data</h2> + +<p>There is a third <strong>optional</strong> parameter lets you change the behavior of the function so that it returns data as a string +rather than sending it to your browser. This can be useful if you want to process the data in some way. If you +set the parameter to <kbd>true</kbd> (boolean) it will return data. The default behavior is <kbd>false</kbd>, which sends it +to your browser. Remember to assign it to a variable if you want the data returned:</p> + +<code>$string = $this->load->view('<var>myfile</var>', '', <kbd>true</kbd>);</code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="reserved_names.html">Reserved Names</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="models.html">Models</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/array_helper.html b/user_guide/helpers/array_helper.html new file mode 100755 index 0000000..6b0f215 --- /dev/null +++ b/user_guide/helpers/array_helper.html @@ -0,0 +1,170 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Array Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Array Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Array Helper</h1> + +<p>The Array Helper file contains functions that assist in working with arrays.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('array');</code> + +<p>The following functions are available:</p> + +<h2>element()</h2> + +<p>Lets you fetch an item from an array. The function tests whether the array index is set and whether it has a value. If +a value exists it is returned. If a value does not exist it returns FALSE, or whatever you've specified as the default value via the third parameter. Example:</p> + +<code> +$array = array('color' => 'red', 'shape' => 'round', 'size' => '');<br /> +<br /> +// returns "red"<br /> +echo element('color', $array);<br /> +<br /> +// returns NULL<br /> +echo element('size', $array, NULL); +</code> + + +<h2>random_element()</h2> + +<p>Takes an array as input and returns a random element from it. Usage example:</p> + +<code>$quotes = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"I find that the harder I work, the more luck I seem to have. - Thomas Jefferson",<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Don't stay in bed, unless you can make money in bed. - George Burns",<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"We didn't lose the game; we just ran out of time. - Vince Lombardi",<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"If everything seems under control, you're not going fast enough. - Mario Andretti",<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Reality is merely an illusion, albeit a very persistent one. - Albert Einstein",<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Chance favors the prepared mind - Louis Pasteur"<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo random_element($quotes);</code> + + +<h2>elements()</h2> + +<p>Lets you fetch a number of items from an array. The function tests whether each of the array indices is set. If an index does not exist +it is set to FALSE, or whatever you've specified as the default value via the third parameter. Example:</p> + +<code> +$array = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'color' => 'red',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'shape' => 'round',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'radius' => '10',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'diameter' => '20'<br /> +);<br /> +<br /> +$my_shape = elements(array('color', 'shape', 'height'), $array);<br /> +</code> + +<p>The above will return the following array:</p> + +<code> +array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'color' => 'red',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'shape' => 'round',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'height' => FALSE<br /> +); +</code> + +<p>You can set the third parameter to any default value you like:</p> + +<code> +$my_shape = elements(array('color', 'shape', 'height'), $array, NULL);<br /> +</code> + +<p>The above will return the following array:</p> + +<code> +array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'color' => 'red',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'shape' => 'round',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'height' => NULL<br /> +); +</code> + +<p>This is useful when sending the <kbd>$_POST</kbd> array to one of your Models. This prevents users from +sending additional POST data to be entered into your tables:</p> + +<code> +$this->load->model('post_model');<br /> +<br /> +$this->post_model->update(elements(array('id', 'title', 'content'), $_POST)); +</code> + +<p>This ensures that only the id, title and content fields are sent to be updated.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp; <a href="../libraries/javascript.html">Javascript Class</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="captcha_helper.html">CAPTCHA Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/captcha_helper.html b/user_guide/helpers/captcha_helper.html new file mode 100755 index 0000000..b67d9dd --- /dev/null +++ b/user_guide/helpers/captcha_helper.html @@ -0,0 +1,195 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CAPTCHA Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +CAPTCHA Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>CAPTCHA Helper</h1> + +<p>The CAPTCHA Helper file contains functions that assist in creating CAPTCHA images.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('captcha');</code> + +<p>The following functions are available:</p> + +<h2>create_captcha(<var>$data</var>)</h2> + +<p>Takes an array of information to generate the CAPTCHA as input and creates the image to your specifications, returning an array of associative data about the image.</p> + +<code>[array]<br /> +(<br /> +&nbsp;&nbsp;'image' => IMAGE TAG<br /> +&nbsp;&nbsp;'time' => TIMESTAMP (in microtime)<br /> +&nbsp;&nbsp;'word' => CAPTCHA WORD<br /> +)</code> + + <p>The "image" is the actual image tag: +<code>&lt;img src=&quot;http://example.com/captcha/12345.jpg&quot; width=&quot;140&quot; height=&quot;50&quot; /&gt;</code></p> + + <p>The "time" is the micro timestamp used as the image name without the file + extension. It will be a number like this: 1139612155.3422</p> + + <p>The "word" is the word that appears in the captcha image, which if not + supplied to the function, will be a random string.</p> + + <h3>Using the CAPTCHA helper</h3> + + <p>Once loaded you can generate a captcha like this:</p> + +<code>$vals = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'word' => 'Random word',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'img_path' => './captcha/',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'img_url' => 'http://example.com/captcha/',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'font_path' => './path/to/fonts/texb.ttf',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'img_width' => '150',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'img_height' => 30,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'expiration' => 7200<br /> +&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$cap = create_captcha($vals);<br /> +echo $cap['image'];</code> + + <ul> + <li>The captcha function requires the GD image library.</li> + <li>Only the img_path and img_url are required.</li> + <li>If a "word" is not supplied, the function will generate a random + ASCII string. You might put together your own word library that + you can draw randomly from.</li> + <li>If you do not specify a path to a TRUE TYPE font, the native ugly GD + font will be used.</li> + <li>The "captcha" folder must be writable (666, or 777)</li> + <li>The "expiration" (in seconds) signifies how long an image will + remain in the captcha folder before it will be deleted. The default + is two hours.</li> + </ul> + + <h3>Adding a Database</h3> + + <p>In order for the captcha function to prevent someone from submitting, you will need + to add the information returned from <kbd>create_captcha()</kbd> function to your database. + Then, when the data from the form is submitted by the user you will need to verify + that the data exists in the database and has not expired.</p> + + <p>Here is a table prototype:</p> + +<code>CREATE TABLE captcha (<br /> +&nbsp;captcha_id bigint(13) unsigned NOT NULL auto_increment,<br /> +&nbsp;captcha_time int(10) unsigned NOT NULL,<br /> +&nbsp;ip_address varchar(16) default '0' NOT NULL,<br /> +&nbsp;word varchar(20) NOT NULL,<br /> +&nbsp;PRIMARY KEY `captcha_id` (`captcha_id`),<br /> +&nbsp;KEY `word` (`word`)<br /> +);</code> + + <p>Here is an example of usage with a database. On the page where the CAPTCHA will be shown you'll have something like this:</p> + +<code>$this-&gt;load-&gt;helper(&#x27;captcha&#x27;);<br /> +$vals = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&#x27;img_path&#x27; =&gt; &#x27;./captcha/&#x27;,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&#x27;img_url&#x27; =&gt; &#x27;http://example.com/captcha/&#x27;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$cap = create_captcha($vals);<br /> +<br /> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&#x27;captcha_time&#x27; =&gt; $cap[&#x27;time&#x27;],<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&#x27;ip_address&#x27; =&gt; $this-&gt;input-&gt;ip_address(),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&#x27;word&#x27; =&gt; $cap[&#x27;word&#x27;]<br /> +&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$query = $this-&gt;db-&gt;insert_string(&#x27;captcha&#x27;, $data);<br /> +$this-&gt;db-&gt;query($query);<br /> +<br /> +echo &#x27;Submit the word you see below:&#x27;;<br /> +echo $cap[&#x27;image&#x27;];<br /> +echo &#x27;&lt;input type=&quot;text&quot; name=&quot;captcha&quot; value=&quot;&quot; /&gt;&#x27;;</code> + + <p>Then, on the page that accepts the submission you'll have something like this:</p> + +<code>// First, delete old captchas<br /> +$expiration = time()-7200; // Two hour limit<br /> +$this-&gt;db-&gt;query(&quot;DELETE FROM captcha WHERE captcha_time &lt; &quot;.$expiration); <br /> +<br /> +// Then see if a captcha exists:<br /> +$sql = &quot;SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time &gt; ?&quot;;<br /> +$binds = array($_POST[&#x27;captcha&#x27;], $this-&gt;input-&gt;ip_address(), $expiration);<br /> +$query = $this-&gt;db-&gt;query($sql, $binds);<br /> +$row = $query-&gt;row();<br /> +<br /> +if ($row-&gt;count == 0)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;You must submit the word that appears in the image&quot;;<br /> +}</code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="array_helper.html">Array Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="cookie_helper.html">Cookie Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> diff --git a/user_guide/helpers/cookie_helper.html b/user_guide/helpers/cookie_helper.html new file mode 100755 index 0000000..236f0c4 --- /dev/null +++ b/user_guide/helpers/cookie_helper.html @@ -0,0 +1,107 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Cookie Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Cookie Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Cookie Helper</h1> + +<p>The Cookie Helper file contains functions that assist in working with cookies.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('cookie');</code> + +<p>The following functions are available:</p> + +<h2>set_cookie()</h2> + +<p>This helper function gives you view file friendly syntax to set browser cookies. Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->set_cookie().</p> + +<h2>get_cookie()</h2> + +<p>This helper function gives you view file friendly syntax to get browser cookies. Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->cookie().</p> + + +<h2>delete_cookie()</h2> + +<p>Lets you delete a cookie. Unless you've set a custom path or other values, only the name of the cookie is needed:</p> + +<code>delete_cookie("name");</code> + +<p>This function is otherwise identical to <dfn>set_cookie()</dfn>, except that it does not have the value and expiration parameters. You can submit an array +of values in the first parameter or you can set discrete parameters.</p> + +<code>delete_cookie($name, $domain, $path, $prefix)</code> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="captcha_helper.html">CAPTCHA Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="date_helper.html">Date Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/date_helper.html b/user_guide/helpers/date_helper.html new file mode 100755 index 0000000..70193b1 --- /dev/null +++ b/user_guide/helpers/date_helper.html @@ -0,0 +1,408 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Date Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Date Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Date Helper</h1> + +<p>The Date Helper file contains functions that help you work with dates.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('date');</code> + + +<p>The following functions are available:</p> + +<h2>now()</h2> + +<p>Returns the current time as a Unix timestamp, referenced either to your server's local time or GMT, based on the "time reference" +setting in your config file. If you do not intend to set your master time reference to GMT (which you'll typically do if you +run a site that lets each user set their own timezone settings) there is no benefit to using this function over PHP's time() function. +</p> + + + + +<h2>mdate()</h2> + +<p>This function is identical to PHPs <a href="http://www.php.net/date">date()</a> function, except that it lets you +use MySQL style date codes, where each code letter is preceded with a percent sign: %Y %m %d etc.</p> + +<p>The benefit of doing dates this way is that you don't have to worry about escaping any characters that +are not date codes, as you would normally have to do with the date() function. Example:</p> + +<code>$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";<br /> +$time = time();<br /> +<br /> +echo mdate($datestring, $time);</code> + +<p>If a timestamp is not included in the second parameter the current time will be used.</p> + + +<h2>standard_date()</h2> + +<p>Lets you generate a date string in one of several standardized formats. Example:</p> + +<code> +$format = 'DATE_RFC822';<br /> +$time = time();<br /> +<br /> +echo standard_date($format, $time); +</code> + +<p>The first parameter must contain the format, the second parameter must contain the date as a Unix timestamp.</p> + +<p>Supported formats:</p> + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> + <tr> + <th>Constant</th> + <th>Description</th> + <th>Example</th> + </tr> + <tr> + <td>DATE_ATOM</td> + <td>Atom</td> + <td>2005-08-15T16:13:03+0000</td> + </tr> + <tr> + <td>DATE_COOKIE</td> + <td>HTTP Cookies</td> + <td>Sun, 14 Aug 2005 16:13:03 UTC</td> + </tr> + <tr> + <td>DATE_ISO8601</td> + <td>ISO-8601</td> + <td>2005-08-14T16:13:03+00:00</td> + </tr> + <tr> + <td>DATE_RFC822</td> + <td>RFC 822</td> + <td>Sun, 14 Aug 05 16:13:03 UTC</td> + </tr> + <tr> + <td>DATE_RFC850</td> + <td>RFC 850</td> + <td>Sunday, 14-Aug-05 16:13:03 UTC</td> + </tr> + <tr> + <td>DATE_RFC1036</td> + <td>RFC 1036</td> + <td>Sunday, 14-Aug-05 16:13:03 UTC</td> + </tr> + <tr> + <td>DATE_RFC1123</td> + <td>RFC 1123</td> + <td>Sun, 14 Aug 2005 16:13:03 UTC</td> + </tr> + <tr> + <td>DATE_RFC2822</td> + <td>RFC 2822</td> + <td>Sun, 14 Aug 2005 16:13:03 +0000</td> + </tr> + <tr> + <td>DATE_RSS</td> + <td>RSS</td> + <td>Sun, 14 Aug 2005 16:13:03 UTC</td> + </tr> + <tr> + <td>DATE_W3C</td> + <td>World Wide Web Consortium</td> + <td>2005-08-14T16:13:03+0000</td> + </tr> +</table> + +<h2>local_to_gmt()</h2> + +<p>Takes a Unix timestamp as input and returns it as GMT. Example:</p> + +<code>$now = time();<br /> +<br /> +$gmt = local_to_gmt($now);</code> + + +<h2>gmt_to_local()</h2> + +<p>Takes a Unix timestamp (referenced to GMT) as input, and converts it to a localized timestamp based on the +timezone and Daylight Saving time submitted. Example:</p> + +<code> +$timestamp = '1140153693';<br /> +$timezone = 'UM8';<br /> +$daylight_saving = TRUE;<br /> +<br /> +echo gmt_to_local($timestamp, $timezone, $daylight_saving);</code> + +<p><strong>Note:</strong> For a list of timezones see the reference at the bottom of this page.</p> + +<h2>mysql_to_unix()</h2> + +<p>Takes a MySQL Timestamp as input and returns it as Unix. Example:</p> + +<code>$mysql = '20061124092345';<br /> +<br /> +$unix = mysql_to_unix($mysql);</code> + + +<h2>unix_to_human()</h2> + +<p>Takes a Unix timestamp as input and returns it in a human readable format with this prototype:</p> + +<code>YYYY-MM-DD HH:MM:SS AM/PM</code> + +<p>This can be useful if you need to display a date in a form field for submission.</p> + +<p>The time can be formatted with or without seconds, and it can be set to European or US format. If only +the timestamp is submitted it will return the time without seconds formatted for the U.S. Examples:</p> + +<code>$now = time();<br /> +<br /> +echo unix_to_human($now); // U.S. time, no seconds<br /> +<br /> +echo unix_to_human($now, TRUE, 'us'); // U.S. time with seconds<br /> +<br /> +echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds</code> + + +<h2>human_to_unix()</h2> + +<p>The opposite of the above function. Takes a "human" time as input and returns it as Unix. This function is +useful if you accept "human" formatted dates submitted via a form. Returns FALSE (boolean) if +the date string passed to it is not formatted as indicated above. Example:</p> + +<code>$now = time();<br /> +<br /> +$human = unix_to_human($now);<br /> +<br /> +$unix = human_to_unix($human);</code> + + + + + +<h2>timespan()</h2> + +<p>Formats a unix timestamp so that is appears similar to this:</p> + +<code>1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes</code> + +<p>The first parameter must contain a Unix timestamp. The second parameter must contain a +timestamp that is greater that the first timestamp. If the second parameter empty, the current time will be used. The most common purpose +for this function is to show how much time has elapsed from some point in time in the past to now. Example:</p> + +<code>$post_date = '1079621429';<br /> +$now = time();<br /> +<br /> +echo timespan($post_date, $now);</code> + +<p class="important"><strong>Note:</strong> The text generated by this function is found in the following language file: language/&lt;your_lang&gt;/date_lang.php</p> + + +<h2>days_in_month()</h2> + +<p>Returns the number of days in a given month/year. Takes leap years into account. Example:</p> +<code>echo days_in_month(06, 2005);</code> + +<p>If the second parameter is empty, the current year will be used.</p> +<h2>timezones()</h2> +<p> Takes a timezone reference (for a list of valid timezones, see the &quot;Timezone Reference&quot; below) and returns the number of hours offset from UTC.</p> +<p><code>echo timezones('UM5');</code></p> +<p>This function is useful when used with timezone_menu(). </p> +<h2>timezone_menu()</h2> +<p>Generates a pull-down menu of timezones, like this one:</p> + +<form action="#"> +<select name="timezones"> +<option value='UM12'>(UTC - 12:00) Enitwetok, Kwajalien</option> +<option value='UM11'>(UTC - 11:00) Nome, Midway Island, Samoa</option> +<option value='UM10'>(UTC - 10:00) Hawaii</option> +<option value='UM9'>(UTC - 9:00) Alaska</option> +<option value='UM8'>(UTC - 8:00) Pacific Time</option> +<option value='UM7'>(UTC - 7:00) Mountain Time</option> +<option value='UM6'>(UTC - 6:00) Central Time, Mexico City</option> +<option value='UM5'>(UTC - 5:00) Eastern Time, Bogota, Lima, Quito</option> +<option value='UM4'>(UTC - 4:00) Atlantic Time, Caracas, La Paz</option> +<option value='UM25'>(UTC - 3:30) Newfoundland</option> +<option value='UM3'>(UTC - 3:00) Brazil, Buenos Aires, Georgetown, Falkland Is.</option> +<option value='UM2'>(UTC - 2:00) Mid-Atlantic, Ascention Is., St Helena</option> +<option value='UM1'>(UTC - 1:00) Azores, Cape Verde Islands</option> +<option value='UTC' selected='selected'>(UTC) Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia</option> +<option value='UP1'>(UTC + 1:00) Berlin, Brussels, Copenhagen, Madrid, Paris, Rome</option> +<option value='UP2'>(UTC + 2:00) Kaliningrad, South Africa, Warsaw</option> +<option value='UP3'>(UTC + 3:00) Baghdad, Riyadh, Moscow, Nairobi</option> +<option value='UP25'>(UTC + 3:30) Tehran</option> +<option value='UP4'>(UTC + 4:00) Adu Dhabi, Baku, Muscat, Tbilisi</option> +<option value='UP35'>(UTC + 4:30) Kabul</option> +<option value='UP5'>(UTC + 5:00) Islamabad, Karachi, Tashkent</option> +<option value='UP45'>(UTC + 5:30) Bombay, Calcutta, Madras, New Delhi</option> +<option value='UP6'>(UTC + 6:00) Almaty, Colomba, Dhaka</option> +<option value='UP7'>(UTC + 7:00) Bangkok, Hanoi, Jakarta</option> +<option value='UP8'>(UTC + 8:00) Beijing, Hong Kong, Perth, Singapore, Taipei</option> +<option value='UP9'>(UTC + 9:00) Osaka, Sapporo, Seoul, Tokyo, Yakutsk</option> +<option value='UP85'>(UTC + 9:30) Adelaide, Darwin</option> +<option value='UP10'>(UTC + 10:00) Melbourne, Papua New Guinea, Sydney, Vladivostok</option> +<option value='UP11'>(UTC + 11:00) Magadan, New Caledonia, Solomon Islands</option> +<option value='UP12'>(UTC + 12:00) Auckland, Wellington, Fiji, Marshall Island</option> +</select> +</form> + +<p>This menu is useful if you run a membership site in which your users are allowed to set their local timezone value.</p> + +<p>The first parameter lets you set the "selected" state of the menu. For example, to set Pacific time as the default you will do this:</p> + +<code>echo timezone_menu('UM8');</code> + +<p>Please see the timezone reference below to see the values of this menu.</p> + +<p>The second parameter lets you set a CSS class name for the menu.</p> + +<p class="important"><strong>Note:</strong> The text contained in the menu is found in the following language file: language/&lt;your_lang&gt;/date_lang.php</p> + + + +<h2>Timezone Reference</h2> + +<p>The following table indicates each timezone and its location.</p> + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Time Zone</th> +<th>Location</th> +</tr><tr> + +<td class="td">UM12</td><td class="td">(UTC - 12:00) Enitwetok, Kwajalien</td> +</tr><tr> +<td class="td">UM11</td><td class="td">(UTC - 11:00) Nome, Midway Island, Samoa</td> +</tr><tr> +<td class="td">UM10</td><td class="td">(UTC - 10:00) Hawaii</td> +</tr><tr> +<td class="td">UM9</td><td class="td">(UTC - 9:00) Alaska</td> +</tr><tr> +<td class="td">UM8</td><td class="td">(UTC - 8:00) Pacific Time</td> +</tr><tr> +<td class="td">UM7</td><td class="td">(UTC - 7:00) Mountain Time</td> +</tr><tr> +<td class="td">UM6</td><td class="td">(UTC - 6:00) Central Time, Mexico City</td> +</tr><tr> +<td class="td">UM5</td><td class="td">(UTC - 5:00) Eastern Time, Bogota, Lima, Quito</td> +</tr><tr> +<td class="td">UM4</td><td class="td">(UTC - 4:00) Atlantic Time, Caracas, La Paz</td> +</tr><tr> +<td class="td">UM25</td><td class="td">(UTC - 3:30) Newfoundland</td> +</tr><tr> +<td class="td">UM3</td><td class="td">(UTC - 3:00) Brazil, Buenos Aires, Georgetown, Falkland Is.</td> +</tr><tr> +<td class="td">UM2</td><td class="td">(UTC - 2:00) Mid-Atlantic, Ascention Is., St Helena</td> +</tr><tr> +<td class="td">UM1</td><td class="td">(UTC - 1:00) Azores, Cape Verde Islands</td> +</tr><tr> +<td class="td">UTC</td><td class="td">(UTC) Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia</td> +</tr><tr> +<td class="td">UP1</td><td class="td">(UTC + 1:00) Berlin, Brussels, Copenhagen, Madrid, Paris, Rome</td> +</tr><tr> +<td class="td">UP2</td><td class="td">(UTC + 2:00) Kaliningrad, South Africa, Warsaw</td> +</tr><tr> +<td class="td">UP3</td><td class="td">(UTC + 3:00) Baghdad, Riyadh, Moscow, Nairobi</td> +</tr><tr> +<td class="td">UP25</td><td class="td">(UTC + 3:30) Tehran</td> +</tr><tr> +<td class="td">UP4</td><td class="td">(UTC + 4:00) Adu Dhabi, Baku, Muscat, Tbilisi</td> +</tr><tr> +<td class="td">UP35</td><td class="td">(UTC + 4:30) Kabul</td> +</tr><tr> +<td class="td">UP5</td><td class="td">(UTC + 5:00) Islamabad, Karachi, Tashkent</td> +</tr><tr> +<td class="td">UP45</td><td class="td">(UTC + 5:30) Bombay, Calcutta, Madras, New Delhi</td> +</tr><tr> +<td class="td">UP6</td><td class="td">(UTC + 6:00) Almaty, Colomba, Dhaka</td> +</tr><tr> +<td class="td">UP7</td><td class="td">(UTC + 7:00) Bangkok, Hanoi, Jakarta</td> +</tr><tr> +<td class="td">UP8</td><td class="td">(UTC + 8:00) Beijing, Hong Kong, Perth, Singapore, Taipei</td> +</tr><tr> +<td class="td">UP9</td><td class="td">(UTC + 9:00) Osaka, Sapporo, Seoul, Tokyo, Yakutsk</td> +</tr><tr> +<td class="td">UP85</td><td class="td">(UTC + 9:30) Adelaide, Darwin</td> +</tr><tr> +<td class="td">UP10</td><td class="td">(UTC + 10:00) Melbourne, Papua New Guinea, Sydney, Vladivostok</td> +</tr><tr> +<td class="td">UP11</td><td class="td">(UTC + 11:00) Magadan, New Caledonia, Solomon Islands</td> +</tr><tr> +<td class="td">UP12</td><td class="td">(UTC + 12:00) Auckland, Wellington, Fiji, Marshall Island</td> +</tr> +</table> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="cookie_helper.html">Cookie Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="directory_helper.html">Directory Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/directory_helper.html b/user_guide/helpers/directory_helper.html new file mode 100755 index 0000000..6fb6540 --- /dev/null +++ b/user_guide/helpers/directory_helper.html @@ -0,0 +1,143 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Directory Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> + +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Directory Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Directory Helper</h1> + +<p>The Directory Helper file contains functions that assist in working with directories.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('directory');</code> + +<p>The following functions are available:</p> + +<h2>directory_map('<var>source directory</var>')</h2> + +<p>This function reads the directory path specified in the first parameter +and builds an array representation of it and all its contained files. Example:</p> + +<code>$map = directory_map('./mydirectory/');</code> + +<p class="important"><strong>Note:</strong> Paths are almost always relative to your main index.php file.</p> + +<p>Sub-folders contained within the directory will be mapped as well. If you wish to control the recursion depth, +you can do so using the second parameter (integer). A depth of 1 will only map the top level directory:</p> + +<code>$map = directory_map('./mydirectory/', 1);</code> + +<p>By default, hidden files will not be included in the returned array. To override this behavior, +you may set a third parameter to <var>true</var> (boolean):</p> + +<code>$map = directory_map('./mydirectory/', FALSE, TRUE);</code> + +<p>Each folder name will be an array index, while its contained files will be numerically indexed. +Here is an example of a typical array:</p> + +<code>Array<br /> +(<br /> +&nbsp;&nbsp;&nbsp;[libraries] => Array<br /> +&nbsp;&nbsp;&nbsp;(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[0] => benchmark.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[1] => config.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[database] => Array<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[0] => active_record.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[1] => binds.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[2] => configuration.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[3] => connecting.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[4] => examples.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[5] => fields.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[6] => index.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[7] => queries.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[2] => email.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[3] => file_uploading.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[4] => image_lib.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[5] => input.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[6] => language.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[7] => loader.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[8] => pagination.html<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[9] => uri.html<br /> +)</code> + + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="date_helper.html">Date Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="download_helper.html">Download Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/download_helper.html b/user_guide/helpers/download_helper.html new file mode 100755 index 0000000..80d4868 --- /dev/null +++ b/user_guide/helpers/download_helper.html @@ -0,0 +1,112 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Download Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> + +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Download Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Download Helper</h1> + +<p>The Download Helper lets you download data to your desktop.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('download');</code> + +<p>The following functions are available:</p> + +<h2>force_download('<var>filename</var>', '<var>data</var>')</h2> + +<p>Generates server headers which force data to be downloaded to your desktop. Useful with file downloads. +The first parameter is the <strong>name you want the downloaded file to be named</strong>, the second parameter is the file data. +Example:</p> + +<code> +$data = 'Here is some text!';<br /> +$name = 'mytext.txt';<br /> +<br /> +force_download($name, $data); +</code> + +<p>If you want to download an existing file from your server you'll need to read the file into a string:</p> + +<code> +$data = file_get_contents("/path/to/photo.jpg"); // Read the file's contents<br /> +$name = 'myphoto.jpg';<br /> +<br /> +force_download($name, $data); +</code> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="directory_helper.html">Directory Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="email_helper.html">Email Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/email_helper.html b/user_guide/helpers/email_helper.html new file mode 100755 index 0000000..1ec8015 --- /dev/null +++ b/user_guide/helpers/email_helper.html @@ -0,0 +1,102 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Email Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> + +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Email Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Email Helper</h1> + +<p>The Email Helper provides some assistive functions for working with Email. For a more robust email solution, see CodeIgniter's <a href="../libraries/email.html">Email Class</a>.</p> + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<p><code>$this->load->helper('email');</code></p> + +<p>The following functions are available:</p> + +<h2>valid_email('<var>email</var>')</h2> + +<p>Checks if an email is a correctly formatted email. Note that is doesn't actually prove the email will recieve mail, simply that it is a validly formed address.</p> +<p>It returns TRUE/FALSE</p> +<code> $this-&gt;load-&gt;helper('email');<br /> +<br /> +if (valid_email('email@somesite.com'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo 'email is valid';<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo 'email is not valid';<br /> +}</code> +<h2>send_email('<var>recipient</var>', '<var>subject</var>', '<var>message</var>')</h2> +<p>Sends an email using PHP's native <a href="http://www.php.net/function.mail">mail()</a> function. For a more robust email solution, see CodeIgniter's <a href="../libraries/email.html">Email Class</a>.</p> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="download_helper.html">Download Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="file_helper.html">File Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/file_helper.html b/user_guide/helpers/file_helper.html new file mode 100755 index 0000000..5eb258e --- /dev/null +++ b/user_guide/helpers/file_helper.html @@ -0,0 +1,179 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>File Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +File Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>File Helper</h1> + +<p>The File Helper file contains functions that assist in working with files.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('file');</code> + +<p>The following functions are available:</p> + +<h2>read_file('<var>path</var>')</h2> + +<p>Returns the data contained in the file specified in the path. Example:</p> + +<code>$string = read_file('./path/to/file.php');</code> + +<p>The path can be a relative or full server path. Returns FALSE (boolean) on failure.</p> + +<p class="important"><strong>Note:</strong> The path is relative to your main site index.php file, NOT your controller or view files. +CodeIgniter uses a front controller so paths are always relative to the main site index.</p> + +<p>If your server is running an open_basedir restriction this function +might not work if you are trying to access a file above the calling script.</p> + +<h2>write_file('<var>path</var>', <kbd>$data</kbd>)</h2> + +<p>Writes data to the file specified in the path. If the file does not exist the function will create it. Example:</p> + +<code> +$data = 'Some file data';<br /> +<br /> +if ( ! write_file('./path/to/file.php', $data))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp; echo 'Unable to write the file';<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp; echo 'File written!';<br /> +}</code> + +<p>You can optionally set the write mode via the third parameter:</p> + +<code>write_file('./path/to/file.php', $data, <var>'r+'</var>);</code> + +<p>The default mode is <kbd>wb</kbd>. Please see the <a href="http://php.net/fopen">PHP user guide</a> for mode options.</p> + +<p>Note: In order for this function to write data to a file its file permissions must be set such that it is writable (666, 777, etc.). +If the file does not already exist, the directory containing it must be writable.</p> + +<p class="important"><strong>Note:</strong> The path is relative to your main site index.php file, NOT your controller or view files. +CodeIgniter uses a front controller so paths are always relative to the main site index.</p> + +<h2>delete_files('<var>path</var>')</h2> + +<p>Deletes ALL files contained in the supplied path. Example:</p> +<code>delete_files('./path/to/directory/');</code> + +<p>If the second parameter is set to <kbd>true</kbd>, any directories contained within the supplied root path will be deleted as well. Example:</p> + +<code>delete_files('./path/to/directory/', TRUE);</code> + +<p class="important"><strong>Note:</strong> The files must be writable or owned by the system in order to be deleted.</p> + +<h2>get_filenames('<var>path/to/directory/</var>')</h2> + +<p>Takes a server path as input and returns an array containing the names of all files contained within it. The file path +can optionally be added to the file names by setting the second parameter to TRUE.</p> + +<h2>get_dir_file_info('<var>path/to/directory/</var>', <kbd>$top_level_only</kbd> = TRUE)</h2> + +<p>Reads the specified directory and builds an array containing the filenames, filesize, dates, and permissions. Sub-folders contained within the specified path are only read if forced + by sending the second parameter, <kbd>$top_level_only</kbd> to <samp>FALSE</samp>, as this can be an intensive operation.</p> + +<h2>get_file_info('<var>path/to/file</var>', <kbd>$file_information</kbd>)</h2> + +<p>Given a file and path, returns the name, path, size, date modified. Second parameter allows you to explicitly declare what information you want returned; options are: name, server_path, size, date, readable, writable, executable, fileperms. Returns FALSE if the file cannot be found.</p> + +<p class="important"><strong>Note:</strong> The &quot;writable&quot; uses the PHP function is_writable() which is known to have issues on the IIS webserver. Consider using fileperms instead, which returns information from PHP's fileperms() function.</p> +<h2>get_mime_by_extension('<var>file</var>')</h2> + +<p>Translates a file extension into a mime type based on config/mimes.php. Returns FALSE if it can't determine the type, or open the mime config file.</p> +<p> +<code>$file = &quot;somefile.png&quot;;<br /> +echo $file . ' is has a mime type of ' . get_mime_by_extension($file);</code> +</p> +<p class="critical"><strong>Note:</strong> This is not an accurate way of determining file mime types, and is here strictly as a convenience. It should not be used for security.</p> + +<h2>symbolic_permissions(<kbd>$perms</kbd>)</h2> + +<p>Takes numeric permissions (such as is returned by <kbd>fileperms()</kbd> and returns standard symbolic notation of file permissions.</p> + +<code>echo symbolic_permissions(fileperms('./index.php'));<br /> +<br /> +// -rw-r--r--</code> + +<h2>octal_permissions(<kbd>$perms</kbd>)</h2> + +<p>Takes numeric permissions (such as is returned by <kbd>fileperms()</kbd> and returns a three character octal notation of file permissions.</p> + +<code>echo octal_permissions(fileperms('./index.php'));<br /> +<br /> +// 644</code> + +</div> + +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="email_helper.html">Email Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="form_helper.html">Form Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/form_helper.html b/user_guide/helpers/form_helper.html new file mode 100755 index 0000000..2268d45 --- /dev/null +++ b/user_guide/helpers/form_helper.html @@ -0,0 +1,484 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Form Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Form Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Form Helper</h1> + +<p>The Form Helper file contains functions that assist in working with forms.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('form');</code> + +<p>The following functions are available:</p> + + + +<h2>form_open()</h2> + +<p>Creates an opening form tag with a base URL <strong>built from your config preferences</strong>. It will optionally let you +add form attributes and hidden input fields, and will always add the attribute <kbd>accept-charset</kbd> based on the charset value in your config file.</p> + +<p>The main benefit of using this tag rather than hard coding your own HTML is that it permits your site to be more portable +in the event your URLs ever change.</p> + +<p>Here's a simple example:</p> + +<code>echo form_open('email/send');</code> + +<p>The above example would create a form that points to your base URL plus the "email/send" URI segments, like this:</p> + +<code>&lt;form method="post" accept-charset="utf-8" action="http:/example.com/index.php/email/send" /></code> + +<h4>Adding Attributes</h4> + +<p>Attributes can be added by passing an associative array to the second parameter, like this:</p> + +<code> +$attributes = array('class' => 'email', 'id' => 'myform');<br /> +<br /> +echo form_open('email/send', $attributes);</code> + +<p>The above example would create a form similar to this:</p> + +<code>&lt;form method="post" accept-charset="utf-8" action="http:/example.com/index.php/email/send" &nbsp;class="email" &nbsp;id="myform" /></code> + +<h4>Adding Hidden Input Fields</h4> + +<p>Hidden fields can be added by passing an associative array to the third parameter, like this:</p> + +<code> +$hidden = array('username' => 'Joe', 'member_id' => '234');<br /> +<br /> +echo form_open('email/send', '', $hidden);</code> + +<p>The above example would create a form similar to this:</p> + +<code>&lt;form method="post" accept-charset="utf-8" action="http:/example.com/index.php/email/send"><br /> +&lt;input type="hidden" name="username" value="Joe" /><br /> +&lt;input type="hidden" name="member_id" value="234" /></code> + + +<h2>form_open_multipart()</h2> + +<p>This function is absolutely identical to the <dfn>form_open()</dfn> tag above except that it adds a multipart attribute, +which is necessary if you would like to use the form to upload files with.</p> + +<h2>form_hidden()</h2> + +<p>Lets you generate hidden input fields. You can either submit a name/value string to create one field:</p> + +<code>form_hidden('username', 'johndoe');<br /> +<br /> +// Would produce:<br /><br /> +&lt;input type="hidden" name="username" value="johndoe" /></code> + +<p>Or you can submit an associative array to create multiple fields:</p> + +<code>$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name'&nbsp;&nbsp;=> 'John Doe',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'email' => 'john@example.com',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'url'&nbsp;&nbsp;&nbsp;=> 'http://example.com'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo form_hidden($data);<br /> +<br /> +// Would produce:<br /><br /> +&lt;input type="hidden" name="name" value="John Doe" /><br /> +&lt;input type="hidden" name="email" value="john@example.com" /><br /> +&lt;input type="hidden" name="url" value="http://example.com" /></code> + + + + +<h2>form_input()</h2> + +<p>Lets you generate a standard text input field. You can minimally pass the field name and value in the first +and second parameter:</p> + +<code>echo form_input('username', 'johndoe');</code> + +<p>Or you can pass an associative array containing any data you wish your form to contain:</p> + +<code>$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'username',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'id'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'username',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'value'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'johndoe',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'maxlength'&nbsp;&nbsp;&nbsp;=> '100',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'size'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '50',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'style'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; => 'width:50%',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo form_input($data);<br /> +<br /> +// Would produce:<br /><br /> +&lt;input type="text" name="username" id="username" value="johndoe" maxlength="100" size="50" style="width:50%" /></code> + +<p>If you would like your form to contain some additional data, like Javascript, you can pass it as a string in the +third parameter:</p> + +<code>$js = 'onClick="some_function()"';<br /> +<br /> +echo form_input('username', 'johndoe', $js);</code> + +<h2>form_password()</h2> + +<p>This function is identical in all respects to the <dfn>form_input()</dfn> function above +except that is sets it as a "password" type.</p> + +<h2>form_upload()</h2> + +<p>This function is identical in all respects to the <dfn>form_input()</dfn> function above +except that is sets it as a "file" type, allowing it to be used to upload files.</p> + +<h2>form_textarea()</h2> + +<p>This function is identical in all respects to the <dfn>form_input()</dfn> function above +except that it generates a "textarea" type. Note: Instead of the "maxlength" and "size" attributes in the above +example, you will instead specify "rows" and "cols".</p> + + +<h2>form_dropdown()</h2> + +<p>Lets you create a standard drop-down field. The first parameter will contain the name of the field, +the second parameter will contain an associative array of options, and the third parameter will contain the +value you wish to be selected. You can also pass an array of multiple items through the third parameter, and CodeIgniter will create a multiple select for you. Example:</p> + +<code>$options = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'small'&nbsp;&nbsp;=> 'Small Shirt',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'med'&nbsp;&nbsp;&nbsp;&nbsp;=> 'Medium Shirt',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'large'&nbsp;&nbsp; => 'Large Shirt',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'xlarge' => 'Extra Large Shirt',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$shirts_on_sale = array('small', 'large');<br /> +<br /> +echo form_dropdown('shirts', $options, 'large');<br /> +<br /> +// Would produce:<br /> +<br /> +&lt;select name=&quot;shirts&quot;&gt;<br /> +&lt;option value=&quot;small&quot;&gt;Small Shirt&lt;/option&gt;<br /> +&lt;option value=&quot;med&quot;&gt;Medium Shirt&lt;/option&gt;<br /> +&lt;option value=&quot;large&quot; selected=&quot;selected&quot;&gt;Large Shirt&lt;/option&gt;<br /> +&lt;option value=&quot;xlarge&quot;&gt;Extra Large Shirt&lt;/option&gt;<br /> +&lt;/select&gt;<br /> +<br /> +echo form_dropdown('shirts', $options, $shirts_on_sale);<br /> +<br /> +// Would produce:<br /> +<br /> +&lt;select name=&quot;shirts&quot; multiple=&quot;multiple&quot;&gt;<br /> +&lt;option value=&quot;small&quot; selected=&quot;selected&quot;&gt;Small Shirt&lt;/option&gt;<br /> +&lt;option value=&quot;med&quot;&gt;Medium Shirt&lt;/option&gt;<br /> +&lt;option value=&quot;large&quot; selected=&quot;selected&quot;&gt;Large Shirt&lt;/option&gt;<br /> +&lt;option value=&quot;xlarge&quot;&gt;Extra Large Shirt&lt;/option&gt;<br /> +&lt;/select&gt;</code> + + +<p>If you would like the opening &lt;select> to contain additional data, like an <kbd>id</kbd> attribute or JavaScript, you can pass it as a string in the +fourth parameter:</p> + +<code>$js = 'id="shirts" onChange="some_function();"';<br /> +<br /> +echo form_dropdown('shirts', $options, 'large', $js);</code> + +<p>If the array passed as $options is a multidimensional array, form_dropdown() will produce an &lt;optgroup&gt; with the array key as the label.</p> + +<h2>form_multiselect()</h2> + +<p>Lets you create a standard multiselect field. The first parameter will contain the name of the field, +the second parameter will contain an associative array of options, and the third parameter will contain the +value or values you wish to be selected. The parameter usage is identical to using <kbd>form_dropdown()</kbd> above, +except of course that the name of the field will need to use POST array syntax, e.g. <samp>foo[]</samp>.</p> + + +<h2>form_fieldset()</h2> + +<p>Lets you generate fieldset/legend fields.</p> +<code>echo form_fieldset('Address Information');<br /> +echo &quot;&lt;p&gt;fieldset content here&lt;/p&gt;\n&quot;;<br /> +echo form_fieldset_close(); +<br /> +<br /> +// Produces<br /> +&lt;fieldset&gt; +<br /> +&lt;legend&gt;Address Information&lt;/legend&gt; +<br /> +&lt;p&gt;form content here&lt;/p&gt; +<br /> +&lt;/fieldset&gt;</code> +<p>Similar to other functions, you can submit an associative array in the second parameter if you prefer to set additional attributes. </p> +<p><code>$attributes = array('id' =&gt; 'address_info', 'class' =&gt; 'address_info');<br /> + echo form_fieldset('Address Information', $attributes);<br /> +echo &quot;&lt;p&gt;fieldset content here&lt;/p&gt;\n&quot;;<br /> +echo form_fieldset_close(); <br /> +<br /> +// Produces<br /> +&lt;fieldset id=&quot;address_info&quot; class=&quot;address_info&quot;&gt; <br /> +&lt;legend&gt;Address Information&lt;/legend&gt; <br /> +&lt;p&gt;form content here&lt;/p&gt; <br /> +&lt;/fieldset&gt;</code></p> +<h2>form_fieldset_close()</h2> +<p>Produces a closing &lt;/fieldset&gt; tag. The only advantage to using this function is it permits you to pass data to it + which will be added below the tag. For example:</p> +<code>$string = &quot;&lt;/div&gt;&lt;/div&gt;&quot;;<br /> +<br /> +echo form_fieldset_close($string);<br /> +<br /> +// Would produce:<br /> +&lt;/fieldset&gt;<br /> +&lt;/div&gt;&lt;/div&gt;</code> +<h2>form_checkbox()</h2> +<p>Lets you generate a checkbox field. Simple example:</p> +<code>echo form_checkbox('newsletter', 'accept', TRUE);<br /> +<br /> +// Would produce:<br /> +<br /> +&lt;input type=&quot;checkbox&quot; name=&quot;newsletter&quot; value=&quot;accept&quot; checked=&quot;checked&quot; /&gt;</code> +<p>The third parameter contains a boolean TRUE/FALSE to determine whether the box should be checked or not.</p> +<p>Similar to the other form functions in this helper, you can also pass an array of attributes to the function:</p> + +<code>$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'newsletter',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'id'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'newsletter',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'value'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'accept',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'checked'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> TRUE,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'style'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; => 'margin:10px',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo form_checkbox($data);<br /> +<br /> +// Would produce:<br /><br /> +&lt;input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" /></code> + +<p>As with other functions, if you would like the tag to contain additional data, like JavaScript, you can pass it as a string in the +fourth parameter:</p> + +<code>$js = 'onClick="some_function()"';<br /> +<br /> + echo form_checkbox('newsletter', 'accept', TRUE, $js)</code> + + +<h2>form_radio()</h2> +<p>This function is identical in all respects to the <dfn>form_checkbox()</dfn> function above except that is sets it as a "radio" type.</p> + + +<h2>form_submit()</h2> + +<p>Lets you generate a standard submit button. Simple example:</p> +<code>echo form_submit('mysubmit', 'Submit Post!');<br /> +<br /> +// Would produce:<br /> +<br /> +&lt;input type=&quot;submit&quot; name=&quot;mysubmit&quot; value=&quot;Submit Post!&quot; /&gt;</code> +<p>Similar to other functions, you can submit an associative array in the first parameter if you prefer to set your own attributes. + The third parameter lets you add extra data to your form, like JavaScript.</p> +<h2>form_label()</h2> +<p>Lets you generate a &lt;label&gt;. Simple example:</p> +<code>echo form_label('What is your Name', 'username');<br /> +<br /> +// Would produce: +<br /> +&lt;label for=&quot;username&quot;&gt;What is your Name&lt;/label&gt;</code> +<p>Similar to other functions, you can submit an associative array in the third parameter if you prefer to set additional attributes. </p> +<p><code>$attributes = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'class' =&gt; 'mycustomclass',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'style' =&gt; 'color: #000;',<br /> +);<br /> + echo form_label('What is your Name', 'username', $attributes);<br /> + <br /> +// Would produce: <br /> +&lt;label for=&quot;username&quot; class=&quot;mycustomclass&quot; style=&quot;color: #000;&quot;&gt;What is your Name&lt;/label&gt;</code></p> +<h2>form_reset()</h2> + +<p>Lets you generate a standard reset button. Use is identical to <dfn>form_submit()</dfn>.</p> + +<h2>form_button()</h2> + +<p>Lets you generate a standard button element. You can minimally pass the button name and content in the first and second parameter:</p> +<code> +echo form_button('name','content');<br /> +<br /> +// Would produce<br /> +&lt;button name="name" type="button"&gt;Content&lt;/button&gt; +</code> + +Or you can pass an associative array containing any data you wish your form to contain: +<code> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'name' => 'button',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'id' => 'button',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'value' => 'true',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'type' => 'reset',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'content' => 'Reset'<br /> +);<br /> +<br /> +echo form_button($data);<br /> +<br /> +// Would produce:<br /> +&lt;button name="button" id="button" value="true" type="reset"&gt;Reset&lt;/button&gt; +</code> + +If you would like your form to contain some additional data, like JavaScript, you can pass it as a string in the third parameter: +<code> +$js = 'onClick="some_function()"';<br /><br /> +echo form_button('mybutton', 'Click Me', $js); +</code> + + +<h2>form_close()</h2> + +<p>Produces a closing &lt;/form> tag. The only advantage to using this function is it permits you to pass data to it +which will be added below the tag. For example:</p> + +<code>$string = "&lt;/div>&lt;/div>";<br /> +<br /> +echo form_close($string);<br /> +<br /> +// Would produce:<br /> +<br /> +&lt;/form><br /> +&lt;/div>&lt;/div></code> + + + + + +<h2>form_prep()</h2> + +<p>Allows you to safely use HTML and characters such as quotes within form elements without breaking out of the form. Consider this example:</p> + +<code>$string = 'Here is a string containing <strong>"quoted"</strong> text.';<br /> +<br /> +&lt;input type="text" name="myform" value="<var>$string</var>" /></code> + +<p>Since the above string contains a set of quotes it will cause the form to break. +The form_prep function converts HTML so that it can be used safely:</p> + +<code>&lt;input type="text" name="myform" value="<var>&lt;?php echo form_prep($string); ?></var>" /></code> + +<p class="important"><strong>Note:</strong> If you use any of the form helper functions listed in this page the form +values will be prepped automatically, so there is no need to call this function. Use it only if you are +creating your own form elements.</p> + + +<h2>set_value()</h2> + +<p>Permits you to set the value of an input form or textarea. You must supply the field name via the first parameter of the function. +The second (optional) parameter allows you to set a default value for the form. Example:</p> + +<code>&lt;input type="text" name="quantity" value="<dfn>&lt;?php echo set_value('quantity', '0'); ?></dfn>" size="50" /></code> + +<p>The above form will show "0" when loaded for the first time.</p> + +<h2>set_select()</h2> + +<p>If you use a <dfn>&lt;select></dfn> menu, this function permits you to display the menu item that was selected. The first parameter +must contain the name of the select menu, the second parameter must contain the value of +each item, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE).</p> + +<p>Example:</p> + +<code> +&lt;select name="myselect"><br /> +&lt;option value="one" <dfn>&lt;?php echo set_select('myselect', 'one', TRUE); ?></dfn> >One&lt;/option><br /> +&lt;option value="two" <dfn>&lt;?php echo set_select('myselect', 'two'); ?></dfn> >Two&lt;/option><br /> +&lt;option value="three" <dfn>&lt;?php echo set_select('myselect', 'three'); ?></dfn> >Three&lt;/option><br /> +&lt;/select> +</code> + + +<h2>set_checkbox()</h2> + +<p>Permits you to display a checkbox in the state it was submitted. The first parameter +must contain the name of the checkbox, the second parameter must contain its value, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE). Example:</p> + +<code>&lt;input type="checkbox" name="mycheck" value="1" <dfn>&lt;?php echo set_checkbox('mycheck', '1'); ?></dfn> /><br /> +&lt;input type="checkbox" name="mycheck" value="2" <dfn>&lt;?php echo set_checkbox('mycheck', '2'); ?></dfn> /></code> + + +<h2>set_radio()</h2> + +<p>Permits you to display radio buttons in the state they were submitted. This function is identical to the <strong>set_checkbox()</strong> function above.</p> + +<code>&lt;input type="radio" name="myradio" value="1" <dfn>&lt;?php echo set_radio('myradio', '1', TRUE); ?></dfn> /><br /> +&lt;input type="radio" name="myradio" value="2" <dfn>&lt;?php echo set_radio('myradio', '2'); ?></dfn> /></code> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="file_helper.html">File Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="html_helper.html">HTML Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/html_helper.html b/user_guide/helpers/html_helper.html new file mode 100755 index 0000000..b594e25 --- /dev/null +++ b/user_guide/helpers/html_helper.html @@ -0,0 +1,390 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>HTML Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +HTML Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>HTML Helper</h1> + +<p>The HTML Helper file contains functions that assist in working with HTML.</p> + +<ul> + <li><a href="#br">br()</a></li> + <li><a href="#heading">heading()</a></li> + <li><a href="#img">img()</a></li> + <li><a href="#link_tag">link_tag()</a></li> + <li><a href="#nbs">nbs()</a></li> + <li><a href="#ol_and_ul">ol() and ul()</a></li> + <li><a href="#meta">meta()</a></li> + <li><a href="#doctype">doctype()</a></li> +</ul> + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('html');</code> + +<p>The following functions are available:</p> + +<h2><a name="br"></a>br()</h2> +<p>Generates line break tags (&lt;br />) based on the number you submit. Example:</p> +<code>echo br(3);</code> +<p>The above would produce: &lt;br />&lt;br />&lt;br /></p> + +<h2><a name="heading"></a>heading()</h2> +<p>Lets you create HTML &lt;h1> tags. The first parameter will contain the data, the +second the size of the heading. Example:</p> +<code>echo heading('Welcome!', 3);</code> +<p>The above would produce: &lt;h3>Welcome!&lt;/h3></p> + +<p>Additionally, in order to add attributes to the heading tag such as HTML classes, ids or inline styles, a third parameter is available.</p> +<code>echo heading('Welcome!', 3, 'class="pink"')</code> +<p>The above code produces: &lt;h3 class="pink">Welcome!<&lt;h3></p> + + +<h2><a name="img"></a>img()</h2> +<p>Lets you create HTML &lt;img /&gt; tags. The first parameter contains the image source. Example:</p> +<code>echo img('images/picture.jpg');<br /> +// gives &lt;img src=&quot;http://site.com/images/picture.jpg&quot; /&gt;</code> +<p>There is an optional second parameter that is a TRUE/FALSE value that specifics if the src should have the page specified by $config['index_page'] added to the address it creates. Presumably, this would be if you were using a media controller.</p> +<p><code>echo img('images/picture.jpg', TRUE);<br /> +// gives &lt;img src=&quot;http://site.com/index.php/images/picture.jpg&quot; alt=&quot;&quot; /&gt;</code></p> +<p>Additionally, an associative array can be passed to the img() function for complete control over all attributes and values. If an alt attribute is not provided, CodeIgniter will generate an empty string.</p> +<p><code> $image_properties = array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'src' =&gt; 'images/picture.jpg',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'alt' =&gt; 'Me, demonstrating how to eat 4 slices of pizza at one time',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'class' =&gt; 'post_images',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'width' =&gt; '200',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'height' =&gt; '200',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' =&gt; 'That was quite a night',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rel' =&gt; 'lightbox',<br /> + );<br /> + <br /> + img($image_properties);<br /> + // &lt;img src=&quot;http://site.com/index.php/images/picture.jpg&quot; alt=&quot;Me, demonstrating how to eat 4 slices of pizza at one time&quot; class=&quot;post_images&quot; width=&quot;200&quot; height=&quot;200&quot; title=&quot;That was quite a night&quot; rel=&quot;lightbox&quot; /&gt;</code></p> + +<h2><a name="link_tag"></a>link_tag()</h2> +<p>Lets you create HTML &lt;link /> tags. This is useful for stylesheet links, as well as other links. The parameters are href, with optional rel, type, title, media and index_page. index_page is a TRUE/FALSE value that specifics if the href should have the page specified by $config['index_page'] added to the address it creates.<code> +echo link_tag('css/mystyles.css');<br /> +// gives &lt;link href=&quot;http://site.com/css/mystyles.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;</code></p> +<p>Further examples:</p> + +<code> + echo link_tag('favicon.ico', 'shortcut icon', 'image/ico');<br /> + // &lt;link href=&quot;http://site.com/favicon.ico&quot; rel=&quot;shortcut icon&quot; type=&quot;image/ico&quot; /&gt; + <br /> + <br /> + echo link_tag('feed', 'alternate', 'application/rss+xml', 'My RSS Feed');<br /> + // &lt;link href=&quot;http://site.com/feed&quot; rel=&quot;alternate&quot; type=&quot;application/rss+xml&quot; title=&quot;My RSS Feed&quot; /&gt; </code> +<p>Additionally, an associative array can be passed to the link() function for complete control over all attributes and values.</p> +<p><code> + $link = array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'href' =&gt; 'css/printer.css',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rel' =&gt; 'stylesheet',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'type' =&gt; 'text/css',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'media' =&gt; 'print'<br /> + );<br /> + <br /> + echo link_tag($link);<br /> + // &lt;link href=&quot;http://site.com/css/printer.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;print&quot; /&gt;</code></p> + +<h2><a name="nbs"></a>nbs()</h2> +<p>Generates non-breaking spaces (&amp;nbsp;) based on the number you submit. Example:</p> +<code>echo nbs(3);</code> +<p>The above would produce: &amp;nbsp;&amp;nbsp;&amp;nbsp;</p> + +<h2><a name="ol_and_ul"></a>ol()&nbsp; and&nbsp; ul()</h2> + +<p>Permits you to generate ordered or unordered HTML lists from simple or multi-dimensional arrays. Example:</p> + +<code> +$this->load->helper('html');<br /> +<br /> +$list = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'red', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blue', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'green',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'yellow'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$attributes = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'class' => 'boldlist',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'id'&nbsp;&nbsp;&nbsp;&nbsp;=> 'mylist'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo ul($list, $attributes);<br /> +</code> + +<p>The above code will produce this:</p> + +<code> +&lt;ul&nbsp;class="boldlist"&nbsp;id="mylist"><br /> +&nbsp;&nbsp;&lt;li>red&lt;/li><br /> +&nbsp;&nbsp;&lt;li>blue&lt;/li><br /> +&nbsp;&nbsp;&lt;li>green&lt;/li><br /> +&nbsp;&nbsp;&lt;li>yellow&lt;/li><br /> +&lt;/ul> +</code> + +<p>Here is a more complex example, using a multi-dimensional array:</p> + +<code> +$this->load->helper('html');<br /> +<br /> +$attributes = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'class' => 'boldlist',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'id'&nbsp;&nbsp;&nbsp;&nbsp;=> 'mylist'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$list = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'colors' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'red',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blue',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'green'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'shapes' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'round', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'square',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'circles' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ellipse', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'oval', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'sphere'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'moods'&nbsp;&nbsp;&nbsp;&nbsp;=> array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'happy', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'upset' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'defeated' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'dejected',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'disheartened',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'depressed'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'annoyed',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cross',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'angry'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +<br /> +echo ul($list, $attributes);</code> + +<p>The above code will produce this:</p> + +<code> +&lt;ul&nbsp;class="boldlist"&nbsp;id="mylist"&gt;<br /> +&nbsp;&nbsp;&lt;li&gt;colors<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;red&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;blue&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;green&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br /> +&nbsp;&nbsp;&lt;/li&gt;<br /> +&nbsp;&nbsp;&lt;li&gt;shapes<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;round&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;suare&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;circles<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;elipse&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;oval&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;sphere&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br /> +&nbsp;&nbsp;&lt;/li&gt;<br /> +&nbsp;&nbsp;&lt;li&gt;moods<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;happy&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;upset<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;defeated<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;dejected&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;disheartened&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;depressed&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;annoyed&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;cross&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;angry&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/li&gt;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br /> +&nbsp;&nbsp;&lt;/li&gt;<br /> +&lt;/ul&gt; +</code> + + + +<h2><a name="meta"></a>meta()</h2> + +<p>Helps you generate meta tags. You can pass strings to the function, or simple arrays, or multidimensional ones. Examples:</p> + +<code> +echo meta('description', 'My Great site');<br /> +// Generates: &lt;meta name="description" content="My Great Site" /><br /> +<br /><br /> + +echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); // Note the third parameter. Can be "equiv" or "name"<br /> +// Generates: &lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /><br /> + +<br /><br /> + +echo meta(array('name' => 'robots', 'content' => 'no-cache'));<br /> +// Generates: &lt;meta name="robots" content="no-cache" /><br /> + +<br /><br /> + +$meta = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('name' => 'robots', 'content' => 'no-cache'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('name' => 'description', 'content' => 'My Great Site'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('name' => 'keywords', 'content' => 'love, passion, intrigue, deception'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('name' => 'robots', 'content' => 'no-cache'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('name' => 'Content-type', 'content' => 'text/html; charset=utf-8', 'type' => 'equiv')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo meta($meta); +<br /> +// Generates: <br /> +// &lt;meta name="robots" content="no-cache" /><br /> +// &lt;meta name="description" content="My Great Site" /><br /> +// &lt;meta name="keywords" content="love, passion, intrigue, deception" /><br /> +// &lt;meta name="robots" content="no-cache" /><br /> +// &lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /> +</code> + + +<h2><a name="doctype"></a>doctype()</h2> + +<p>Helps you generate document type declarations, or DTD's. XHTML 1.0 Strict is used by default, but many doctypes are available.</p> + +<code> +echo doctype();<br /> +// &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;<br /> +<br /> +echo doctype('html4-trans');<br /> +// &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt; +</code> + +<p>The following is a list of doctype choices. These are configurable, and pulled from <samp>application/config/doctypes.php</samp></p> + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> + <tr> + <th>Doctype</th> + <th>Option</th> + <th>Result</th> + </tr> + <tr> + <td class="td">XHTML 1.1</td> + <td class="td">doctype('xhtml11')</td> + <td class="td">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;</td> + </tr> + <tr> + <td class="td">XHTML 1.0 Strict</td> + <td class="td">doctype('xhtml1-strict')</td> + <td class="td">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;</td> + </tr> + <tr> + <td class="td">XHTML 1.0 Transitional</td> + <td class="td">doctype('xhtml1-trans')</td> + <td class="td">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</td> + </tr> + <tr> + <td class="td">XHTML 1.0 Frameset</td> + <td class="td">doctype('xhtml1-frame')</td> + <td class="td">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;</td> + </tr> + <tr> + <td class="td">HTML 5</td> + <td class="td">doctype('html5')</td> + <td class="td">&lt;!DOCTYPE html&gt;</td> + </tr> + <tr> + <td class="td">HTML 4 Strict</td> + <td class="td">doctype('html4-strict')</td> + <td class="td">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;</td> + </tr> + <tr> + <td class="td">HTML 4 Transitional</td> + <td class="td">doctype('html4-trans')</td> + <td class="td">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;</td> + </tr> + <tr> + <td class="td">HTML 4 Frameset</td> + <td class="td">doctype('html4-frame')</td> + <td class="td">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"&gt;</td> + </tr> +</table> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="form_helper.html">Form Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="path_helper.html"> Path Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/inflector_helper.html b/user_guide/helpers/inflector_helper.html new file mode 100755 index 0000000..e044b34 --- /dev/null +++ b/user_guide/helpers/inflector_helper.html @@ -0,0 +1,151 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Inflector Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Inflector Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Inflector Helper</h1> + +<p>The Inflector Helper file contains functions that permits you to change words to plural, singular, camel case, etc.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('inflector');</code> + +<p>The following functions are available:</p> + + +<h2>singular()</h2> + +<p>Changes a plural word to singular. Example:</p> + +<code> +$word = "dogs";<br /> +echo singular($word); // Returns "dog" +</code> + + +<h2>plural()</h2> + +<p>Changes a singular word to plural. Example:</p> + +<code> +$word = "dog";<br /> +echo plural($word); // Returns "dogs" +</code> + + +<p>To force a word to end with &quot;es&quot; use a second &quot;true&quot; argument. </p> +<code> $word = &quot;pass&quot;;<br /> +echo plural($word, TRUE); // Returns &quot;passes&quot; </code> + +<h2>camelize()</h2> +<p>Changes a string of words separated by spaces or underscores to camel case. Example:</p> + +<code> +$word = "my_dog_spot";<br /> +echo camelize($word); // Returns "myDogSpot" +</code> + + +<h2>underscore()</h2> + +<p>Takes multiple words separated by spaces and underscores them. Example:</p> + +<code> +$word = "my dog spot";<br /> +echo underscore($word); // Returns "my_dog_spot" +</code> + + +<h2>humanize()</h2> + +<p>Takes multiple words separated by underscores and adds spaces between them. Each word is capitalized. Example:</p> + +<code> +$word = "my_dog_spot";<br /> +echo humanize($word); // Returns "My Dog Spot" +</code> + + + + + + + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="html_helper.html"> HTML Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="number_helper.html">Number Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/language_helper.html b/user_guide/helpers/language_helper.html new file mode 100755 index 0000000..2c7df78 --- /dev/null +++ b/user_guide/helpers/language_helper.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Language Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> + +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Language Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Language Helper</h1> + +<p>The Language Helper file contains functions that assist in working with language files.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('language');</code> + +<p>The following functions are available:</p> + +<h2>lang('<var>language line</var>', '<var>element id</var>')</h2> + +<p>This function returns a line of text from a loaded language file with simplified syntax + that may be more desirable for view files than calling <kbd>$this-&gt;lang-&gt;line()</kbd>. + The optional second parameter will also output a form label for you. Example:</p> + +<code>echo lang('<samp>language_key</samp>', '<samp>form_item_id</samp>');<br /> +// becomes &lt;label for="form_item_id"&gt;language_key&lt;/label&gt;</code> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="date_helper.html">Date Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="download_helper.html">Download Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/number_helper.html b/user_guide/helpers/number_helper.html new file mode 100755 index 0000000..c3e4e46 --- /dev/null +++ b/user_guide/helpers/number_helper.html @@ -0,0 +1,113 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Number Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Number Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Number Helper</h1> + +<p>The Number Helper file contains functions that help you work with numeric data.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('number');</code> + +<p>The following functions are available:</p> + + +<h2>byte_format()</h2> + +<p>Formats a numbers as bytes, based on size, and adds the appropriate suffix. Examples:</p> + +<code> +echo byte_format(456); // Returns 456 Bytes<br /> +echo byte_format(4567); // Returns 4.5 KB<br /> +echo byte_format(45678); // Returns 44.6 KB<br /> +echo byte_format(456789); // Returns 447.8 KB<br /> +echo byte_format(3456789); // Returns 3.3 MB<br /> +echo byte_format(12345678912345); // Returns 1.8 GB<br /> +echo byte_format(123456789123456789); // Returns 11,228.3 TB +</code> + +<p>An optional second parameter allows you to set the precision of the result.</p> + +<code> +echo byte_format(45678, 2); // Returns 44.61 KB +</code> + +<p class="important"> +<strong>Note:</strong> +The text generated by this function is found in the following language file: language/<your_lang>/number_lang.php +</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="inflector_helper.html">Inflector Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="path_helper.html">Path Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/path_helper.html b/user_guide/helpers/path_helper.html new file mode 100755 index 0000000..1a5850e --- /dev/null +++ b/user_guide/helpers/path_helper.html @@ -0,0 +1,106 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Path Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Path Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Path Helper</h1> + +<p>The Path Helper file contains functions that permits you to work with file paths on the server.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('path');</code> + +<p>The following functions are available:</p> + + +<h2>set_realpath()</h2> + +<p>Checks to see if the path exists. This function will return a server path without symbolic links or relative directory structures. An optional second argument will cause an error to be triggered if the path cannot be resolved.</p> + +<code>$directory = '/etc/passwd';<br /> +echo set_realpath($directory);<br /> +// returns &quot;/etc/passwd&quot;<br /> +<br /> +$non_existent_directory = '/path/to/nowhere';<br /> +echo set_realpath($non_existent_directory, TRUE);<br /> +// returns an <strong>error</strong>, as the path could not be resolved +<br /><br /> +echo set_realpath($non_existent_directory, FALSE);<br /> +// returns &quot;/path/to/nowhere&quot; + + + +</code> +<h2>&nbsp;</h2> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="number_helper.html">Number Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="security_helper.html">Security Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/security_helper.html b/user_guide/helpers/security_helper.html new file mode 100755 index 0000000..297800f --- /dev/null +++ b/user_guide/helpers/security_helper.html @@ -0,0 +1,132 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Security Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Security Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Security Helper</h1> + +<p>The Security Helper file contains security related functions.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('security');</code> + +<p>The following functions are available:</p> + + +<h2>xss_clean()</h2> + +<p>Provides Cross Site Script Hack filtering. This function is an alias to the one in the +<a href="../libraries/input.html">Input class</a>. More info can be found there.</p> + + +<h2>sanitize_filename()</h2> + +<p>Provides protection against directory traversal. This function is an alias to the one in the +<a href="../libraries/security.html">Security class</a>. More info can be found there.</p> + + +<h2>do_hash()</h2> + +<p>Permits you to create SHA1 or MD5 one way hashes suitable for encrypting passwords. Will create SHA1 by default. Examples:</p> + +<code> +$str = do_hash($str); // SHA1<br /> +<br /> +$str = do_hash($str, 'md5'); // MD5 +</code> + +<p class="important"><strong>Note:</strong> This function was formerly named <kbd>dohash()</kbd>, which has been deprecated in favour of <kbd>do_hash()</kbd>.</p> + + + +<h2>strip_image_tags()</h2> + +<p>This is a security function that will strip image tags from a string. It leaves the image URL as plain text.</p> + +<code>$string = strip_image_tags($string);</code> + + +<h2>encode_php_tags()</h2> + +<p>This is a security function that converts PHP tags to entities. Note: If you use the XSS filtering function it does this automatically.</p> + +<code>$string = encode_php_tags($string);</code> + + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="path_helper.html"> Path Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="smiley_helper.html">Smiley Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/smiley_helper.html b/user_guide/helpers/smiley_helper.html new file mode 100755 index 0000000..3153b70 --- /dev/null +++ b/user_guide/helpers/smiley_helper.html @@ -0,0 +1,215 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Smiley Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Smiley Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Smiley Helper</h1> + +<p>The Smiley Helper file contains functions that let you manage smileys (emoticons).</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('smiley');</code> + +<h2>Overview</h2> + +<p>The Smiley helper has a renderer that takes plain text simileys, like <dfn>:-)</dfn> and turns +them into a image representation, like <img src="../images/smile.gif" width="19" height="19" border="0" alt="smile!" /></p> + +<p>It also lets you display a set of smiley images that when clicked will be inserted into a form field. +For example, if you have a blog that allows user commenting you can show the smileys next to the comment form. +Your users can click a desired smiley and with the help of some JavaScript it will be placed into the form field.</p> + + + +<h2>Clickable Smileys Tutorial</h2> + +<p>Here is an example demonstrating how you might create a set of clickable smileys next to a form field. This example +requires that you first download and install the smiley images, then create a controller and the View as described.</p> + +<p class="important"><strong>Important:</strong> Before you begin, please <a href="http://ellislab.com/asset/ci_download_files/smileys.zip">download the smiley images</a> and put them in +a publicly accessible place on your server. This helper also assumes you have the smiley replacement array located at +<dfn>application/config/smileys.php</dfn></p> + + +<h3>The Controller</h3> + +<p>In your <dfn>application/controllers/</dfn> folder, create a file called <kbd>smileys.php</kbd> and place the code below in it.</p> + +<p><strong>Important:</strong> Change the URL in the <dfn>get_clickable_smileys()</dfn> function below so that it points to +your <dfn>smiley</dfn> folder.</p> + +<p>You'll notice that in addition to the smiley helper we are using the <a href="../libraries/table.html">Table Class</a>.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="25"> +&lt;?php + +class Smileys extends CI_Controller { + + function __construct() + { + parent::__construct(); + } + + function index() + { + $this->load->helper('smiley'); + $this->load->library('table'); + + $image_array = get_clickable_smileys('http://example.com/images/smileys/', 'comments'); + + $col_array = $this->table->make_columns($image_array, 8); + + $data['smiley_table'] = $this->table->generate($col_array); + + $this->load->view('smiley_view', $data); + } + +} +?&gt; +</textarea> + +<p>In your <dfn>application/views/</dfn> folder, create a file called <kbd>smiley_view.php</kbd> and place this code in it:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="20"> +&lt;html> +&lt;head> +&lt;title>Smileys&lt;/title> + +&lt;?php echo smiley_js(); ?> + +&lt;/head> +&lt;body> + +&lt;form name="blog"> +&lt;textarea name="comments" id="comments" cols="40" rows="4">&lt;/textarea> +&lt;/form> + +&lt;p>Click to insert a smiley!&lt;/p> + +&lt;?php echo $smiley_table; ?> + +&lt;/body> +&lt;/html> +</textarea> + + +<p>When you have created the above controller and view, load it by visiting <dfn>http://www.example.com/index.php/smileys/</dfn></p> + + +<h3>Field Aliases</h3> + +<p>When making changes to a view it can be inconvenient to have the field id in the controller. To work around this, +you can give your smiley links a generic name that will be tied to a specific id in your view.</p> +<code>$image_array = get_smiley_links("http://example.com/images/smileys/", "comment_textarea_alias");</code> + +<p>To map the alias to the field id, pass them both into the smiley_js function:</p> +<code>$image_array = smiley_js("comment_textarea_alias", "comments");</code> + + +<h1>Function Reference</h1> + +<h2>get_clickable_smileys()</h2> + +<p>Returns an array containing your smiley images wrapped in a clickable link. You must supply the URL to your smiley folder +and a field id or field alias.</p> + +<code>$image_array = get_smiley_links("http://example.com/images/smileys/", "comment");</code> +<p class="important">Note: Usage of this function without the second parameter, in combination with js_insert_smiley has been deprecated.</p> + + +<h2>smiley_js()</h2> + +<p>Generates the JavaScript that allows the images to be clicked and inserted into a form field. +If you supplied an alias instead of an id when generating your smiley links, you need to pass the +alias and corresponding form id into the function. +This function is designed to be placed into the &lt;head&gt; area of your web page.</p> + +<code>&lt;?php echo smiley_js(); ?&gt;</code> +<p class="important">Note: This function replaces js_insert_smiley, which has been deprecated.</p> + + +<h2>parse_smileys()</h2> + +<p>Takes a string of text as input and replaces any contained plain text smileys into the image +equivalent. The first parameter must contain your string, the second must contain the URL to your smiley folder:</p> + +<code> +$str = 'Here are some simileys: :-) ;-)'; + +$str = parse_smileys($str, "http://example.com/images/smileys/"); + +echo $str; +</code> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="security_helper.html">Security Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="string_helper.html">String Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/string_helper.html b/user_guide/helpers/string_helper.html new file mode 100755 index 0000000..e1f31b8 --- /dev/null +++ b/user_guide/helpers/string_helper.html @@ -0,0 +1,189 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>String Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +String Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>String Helper</h1> + +<p>The String Helper file contains functions that assist in working with strings.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('string');</code> + +<p>The following functions are available:</p> + +<h2>random_string()</h2> + +<p>Generates a random string based on the type and length you specify. Useful for creating passwords or generating random hashes.</p> + +<p>The first parameter specifies the type of string, the second parameter specifies the length. The following choices are available:</p> + + alpha, alunum, numeric, nozero, unique, md5, encrypt and sha1 +<ul> + <li><strong>alpha</strong>:&nbsp; A string with lower and uppercase letters only.</li> + <li><strong>alnum</strong>:&nbsp; Alpha-numeric string with lower and uppercase characters.</li> + <li><strong>numeric</strong>:&nbsp; Numeric string.</li> + <li><strong>nozero</strong>:&nbsp; Numeric string with no zeros.</li> + <li><strong>unique</strong>:&nbsp; Encrypted with MD5 and uniqid(). Note: The length parameter is not available for this type. + Returns a fixed length 32 character string.</li> + <li><strong>sha1</strong>:&nbsp; An encrypted random number based on <kbd>do_hash()</kbd> from the <a href="security_helper.html">security helper</a>.</li> +</ul> + +<p>Usage example:</p> + +<code>echo random_string('alnum', 16);</code> + + +<h2>increment_string()</h2> + +<p>Increments a string by appending a number to it or increasing the number. Useful for creating "copies" or a file or duplicating database content which has unique titles or slugs.</p> + +<p>Usage example:</p> + +<code>echo increment_string('file', '_'); // "file_1"<br/> +echo increment_string('file', '-', 2); // "file-2"<br/> +echo increment_string('file-4'); // "file-5"<br/></code> + + +<h2>alternator()</h2> + +<p>Allows two or more items to be alternated between, when cycling through a loop. Example:</p> + +<code>for ($i = 0; $i < 10; $i++)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo alternator('string one', 'string two');<br /> +}<br /> +</code> + +<p>You can add as many parameters as you want, and with each iteration of your loop the next item will be returned.</p> + +<code>for ($i = 0; $i < 10; $i++)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo alternator('one', 'two', 'three', 'four', 'five');<br /> +}<br /> +</code> + +<p><strong>Note:</strong> To use multiple separate calls to this function simply call the function with no arguments to re-initialize.</p> + + + +<h2>repeater()</h2> +<p>Generates repeating copies of the data you submit. Example:</p> +<code>$string = "\n";<br /> +echo repeater($string, 30);</code> + +<p>The above would generate 30 newlines.</p> +<h2>reduce_double_slashes()</h2> +<p>Converts double slashes in a string to a single slash, except those found in http://. Example: </p> +<code>$string = &quot;http://example.com//index.php&quot;;<br /> +echo reduce_double_slashes($string); // results in &quot;http://example.com/index.php&quot;</code> +<h2>trim_slashes()</h2> +<p>Removes any leading/trailing slashes from a string. Example:<br /> + <br /> + <code>$string = &quot;/this/that/theother/&quot;;<br /> +echo trim_slashes($string); // results in this/that/theother</code></p> + + +<h2>reduce_multiples()</h2> +<p>Reduces multiple instances of a particular character occuring directly after each other. Example:</p> +<code> +$string="Fred, Bill,, Joe, Jimmy";<br /> +$string=reduce_multiples($string,","); //results in "Fred, Bill, Joe, Jimmy" +</code> +<p>The function accepts the following parameters: +<code>reduce_multiples(string: text to search in, string: character to reduce, boolean: whether to remove the character from the front and end of the string)</code> + +The first parameter contains the string in which you want to reduce the multiplies. The second parameter contains the character you want to have reduced. +The third parameter is FALSE by default; if set to TRUE it will remove occurences of the character at the beginning and the end of the string. Example: + +<code> +$string=",Fred, Bill,, Joe, Jimmy,";<br /> +$string=reduce_multiples($string, ", ", TRUE); //results in "Fred, Bill, Joe, Jimmy" +</code> +</p> + +<h2>quotes_to_entities()</h2> +<p>Converts single and double quotes in a string to the corresponding HTML entities. Example:</p> +<code>$string="Joe's \"dinner\"";<br /> +$string=quotes_to_entities($string); //results in "Joe&amp;#39;s &amp;quot;dinner&amp;quot;" +</code> + +<h2>strip_quotes()</h2> +<p>Removes single and double quotes from a string. Example:</p> +<code>$string="Joe's \"dinner\"";<br /> +$string=strip_quotes($string); //results in "Joes dinner" +</code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="smiley_helper.html">Smiley Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="text_helper.html">Text Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/text_helper.html b/user_guide/helpers/text_helper.html new file mode 100755 index 0000000..2816077 --- /dev/null +++ b/user_guide/helpers/text_helper.html @@ -0,0 +1,211 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Text Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Text Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Text Helper</h1> + +<p>The Text Helper file contains functions that assist in working with text.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('text');</code> + +<p>The following functions are available:</p> + + +<h2>word_limiter()</h2> + +<p>Truncates a string to the number of <strong>words</strong> specified. Example:</p> + +<code> +$string = "Here is a nice text string consisting of eleven words.";<br /> +<br /> +$string = word_limiter($string, 4);<br /><br /> + +// Returns: Here is a nice&#8230; +</code> + +<p>The third parameter is an optional suffix added to the string. By default it adds an ellipsis.</p> + + +<h2>character_limiter()</h2> + +<p>Truncates a string to the number of <strong>characters</strong> specified. It maintains the integrity +of words so the character count may be slightly more or less then what you specify. Example:</p> + +<code> +$string = "Here is a nice text string consisting of eleven words.";<br /> +<br /> +$string = character_limiter($string, 20);<br /><br /> + +// Returns: Here is a nice text string&#8230; +</code> + +<p>The third parameter is an optional suffix added to the string, if undeclared this helper uses an ellipsis.</p> + + + +<h2>ascii_to_entities()</h2> + +<p>Converts ASCII values to character entities, including high ASCII and MS Word characters that can cause problems when used in a web page, +so that they can be shown consistently regardless of browser settings or stored reliably in a database. +There is some dependence on your server's supported character sets, so it may not be 100% reliable in all cases, but for the most +part it should correctly identify characters outside the normal range (like accented characters). Example:</p> + +<code>$string = ascii_to_entities($string);</code> + + +<h2>entities_to_ascii()</h2> + +<p>This function does the opposite of the previous one; it turns character entities back into ASCII.</p> + +<h2>convert_accented_characters()</h2> + +<p>Transliterates high ASCII characters to low ASCII equivalents, useful when non-English characters need to be used where only standard ASCII characters are safely used, for instance, in URLs.</p> + +<code>$string = convert_accented_characters($string);</code> + +<p>This function uses a companion config file <dfn>application/config/foreign_chars.php</dfn> to define the to and from array for transliteration.</p> + +<h2>word_censor()</h2> + +<p>Enables you to censor words within a text string. The first parameter will contain the original string. The +second will contain an array of words which you disallow. The third (optional) parameter can contain a replacement value +for the words. If not specified they are replaced with pound signs: ####. Example:</p> + +<code> +$disallowed = array('darn', 'shucks', 'golly', 'phooey');<br /> +<br /> +$string = word_censor($string, $disallowed, 'Beep!');</code> + + +<h2>highlight_code()</h2> + +<p>Colorizes a string of code (PHP, HTML, etc.). Example:</p> + +<code>$string = highlight_code($string);</code> + +<p>The function uses PHP's highlight_string() function, so the colors used are the ones specified in your php.ini file.</p> + + +<h2>highlight_phrase()</h2> + +<p>Will highlight a phrase within a text string. The first parameter will contain the original string, the second will +contain the phrase you wish to highlight. The third and fourth parameters will contain the opening/closing HTML tags +you would like the phrase wrapped in. Example:</p> + +<code> +$string = "Here is a nice text string about nothing in particular.";<br /> +<br /> +$string = highlight_phrase($string, "nice text", '&lt;span style="color:#990000">', '&lt;/span>'); +</code> + +<p>The above text returns:</p> + +<p>Here is a <span style="color:#990000">nice text</span> string about nothing in particular.</p> + + + +<h2>word_wrap()</h2> + +<p>Wraps text at the specified <strong>character</strong> count while maintaining complete words. Example:</p> + +<code>$string = "Here is a simple string of text that will help us demonstrate this function.";<br /> +<br /> +echo word_wrap($string, 25);<br /> +<br /> +// Would produce:<br /> +<br /> +Here is a simple string<br /> +of text that will help<br /> +us demonstrate this<br /> +function</code> + +<h2>ellipsize()</h2> + +<p>This function will strip tags from a string, split it at a defined maximum length, and insert an ellipsis.</p> +<p>The first parameter is the string to ellipsize, the second is the number of characters in the final string. The third parameter is where in the string the ellipsis should appear from 0 - 1, left to right. For example. a value of 1 will place the ellipsis at the right of the string, .5 in the middle, and 0 at the left.</p> +<p>An optional forth parameter is the kind of ellipsis. By default, <samp>&amp;hellip;</samp> will be inserted.</p> + +<code>$str = 'this_string_is_entirely_too_long_and_might_break_my_design.jpg';<br /> +<br /> +echo ellipsize($str, 32, .5);</code> + +Produces: + +<code>this_string_is_e&hellip;ak_my_design.jpg</code> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="string_helper.html">String Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="typography_helper.html">Typography Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/typography_helper.html b/user_guide/helpers/typography_helper.html new file mode 100755 index 0000000..d072ed1 --- /dev/null +++ b/user_guide/helpers/typography_helper.html @@ -0,0 +1,112 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Typography Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Typography Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Typography Helper</h1> + +<p>The Typography Helper file contains functions that help your format text in semantically relevant ways.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('typography');</code> + +<p>The following functions are available:</p> + + +<h2>auto_typography()</h2> + +<p>Formats text so that it is semantically and typographically correct HTML. Please see the <a href="../libraries/typography.html">Typography Class</a> for more info.</p> + +<p>Usage example:</p> + +<code>$string = auto_typography($string);</code> + +<p><strong>Note:</strong> Typographic formatting can be processor intensive, particularly if you have a lot of content being formatted. +If you choose to use this function you may want to consider +<a href="../general/caching.html">caching</a> your pages.</p> + + +<h2>nl2br_except_pre()</h2> + +<p>Converts newlines to &lt;br /&gt; tags unless they appear within &lt;pre&gt; tags. +This function is identical to the native PHP <dfn>nl2br()</dfn> function, except that it ignores &lt;pre&gt; tags.</p> + +<p>Usage example:</p> + +<code>$string = nl2br_except_pre($string);</code> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="text_helper.html">Text Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="url_helper.html">URL Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/url_helper.html b/user_guide/helpers/url_helper.html new file mode 100755 index 0000000..fd58b43 --- /dev/null +++ b/user_guide/helpers/url_helper.html @@ -0,0 +1,302 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>URL Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +URL Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>URL Helper</h1> + +<p>The URL Helper file contains functions that assist in working with URLs.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('url');</code> + +<p>The following functions are available:</p> + +<h2>site_url()</h2> + +<p>Returns your site URL, as specified in your config file. The index.php file (or whatever you have set as your +site <dfn>index_page</dfn> in your config file) will be added to the URL, as will any URI segments you pass to the function, and the <dfn>url_suffix</dfn> as set in your config file.</p> + +<p>You are encouraged to use this function any time you need to generate a local URL so that your pages become more portable +in the event your URL changes.</p> + +<p>Segments can be optionally passed to the function as a string or an array. Here is a string example:</p> + +<code>echo site_url("news/local/123");</code> + +<p>The above example would return something like: http://example.com/index.php/news/local/123</p> + +<p>Here is an example of segments passed as an array:</p> + +<code> +$segments = array('news', 'local', '123');<br /> +<br /> +echo site_url($segments);</code> + + +<h2>base_url()</h2> +<p>Returns your site base URL, as specified in your config file. Example:</p> +<code>echo base_url();</code> + +<p>This function returns the same thing as site_url, without the <dfn>index_page</dfn> or <dfn>url_suffix</dfn> being appended.</p> + +<p>Also like site_url, you can supply segments as a string or an array. Here is a string example:</p> + +<code>echo base_url("blog/post/123");</code> + +<p>The above example would return something like: http://example.com/blog/post/123</p> + +<p>This is useful because unlike site_url(), you can supply a string to a file, such as an image or stylesheet. For example:</p> + +<code>echo base_url("images/icons/edit.png");</code> + +<p>This would give you something like: http://example.com/images/icons/edit.png</p> + + +<h2>current_url()</h2> +<p>Returns the full URL (including segments) of the page being currently viewed.</p> + + +<h2>uri_string()</h2> +<p>Returns the URI segments of any page that contains this function. For example, if your URL was this:</p> +<code>http://some-site.com/blog/comments/123</code> + +<p>The function would return:</p> +<code>/blog/comments/123</code> + + +<h2>index_page()</h2> +<p>Returns your site "index" page, as specified in your config file. Example:</p> +<code>echo index_page();</code> + + + +<h2>anchor()</h2> + +<p>Creates a standard HTML anchor link based on your local site URL:</p> + +<code>&lt;a href="http://example.com">Click Here&lt;/a></code> + +<p>The tag has three optional parameters:</p> + +<code>anchor(<var>uri segments</var>, <var>text</var>, <var>attributes</var>)</code> + +<p>The first parameter can contain any segments you wish appended to the URL. As with the <dfn>site_url()</dfn> function above, +segments can be a string or an array.</p> + +<p><strong>Note:</strong>&nbsp; If you are building links that are internal to your application do not include the base URL (http://...). This +will be added automatically from the information specified in your config file. Include only the URI segments you wish appended to the URL.</p> + +<p>The second segment is the text you would like the link to say. If you leave it blank, the URL will be used.</p> + +<p>The third parameter can contain a list of attributes you would like added to the link. The attributes can be a simple string or an associative array.</p> + +<p>Here are some examples:</p> + +<code>echo anchor('news/local/123', 'My News', 'title="News title"');</code> + +<p>Would produce: &lt;a href="http://example.com/index.php/news/local/123" title="News title">My News&lt;/a></p> + +<code>echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));</code> + +<p>Would produce: &lt;a href="http://example.com/index.php/news/local/123" title="The best news!">My News&lt;/a></p> + + +<h2>anchor_popup()</h2> + +<p>Nearly identical to the <dfn>anchor()</dfn> function except that it opens the URL in a new window. + +You can specify JavaScript window attributes in the third parameter to control how the window is opened. If +the third parameter is not set it will simply open a new window with your own browser settings. Here is an example +with attributes:</p> + +<code> + +$atts = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'width'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '800',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'height'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '600',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'scrollbars' => 'yes',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'status'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'yes',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'resizable'&nbsp;&nbsp;=> 'yes',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'screenx'&nbsp;&nbsp;&nbsp;&nbsp;=> '0',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'screeny'&nbsp;&nbsp;&nbsp;&nbsp;=> '0'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo anchor_popup('news/local/123', 'Click Me!', $atts);</code> + +<p>Note: The above attributes are the function defaults so you only need to set the ones that are different from what you need. +If you want the function to use all of its defaults simply pass an empty array in the third parameter:</p> + +<code>echo anchor_popup('news/local/123', 'Click Me!', array());</code> + + +<h2>mailto()</h2> + +<p>Creates a standard HTML email link. Usage example:</p> + +<code>echo mailto('me@my-site.com', 'Click Here to Contact Me');</code> + +<p>As with the <dfn>anchor()</dfn> tab above, you can set attributes using the third parameter.</p> + + +<h2>safe_mailto()</h2> + +<p>Identical to the above function except it writes an obfuscated version of the mailto tag using ordinal numbers +written with JavaScript to help prevent the email address from being harvested by spam bots.</p> + + +<h2>auto_link()</h2> + +<p>Automatically turns URLs and email addresses contained in a string into links. Example:</p> + +<code>$string = auto_link($string);</code> + +<p>The second parameter determines whether URLs and emails are converted or just one or the other. Default behavior is both +if the parameter is not specified. Email links are encoded as safe_mailto() as shown above.</p> + +<p>Converts only URLs:</p> +<code>$string = auto_link($string, 'url');</code> + +<p>Converts only Email addresses:</p> +<code>$string = auto_link($string, 'email');</code> + +<p>The third parameter determines whether links are shown in a new window. The value can be TRUE or FALSE (boolean):</p> +<code>$string = auto_link($string, 'both', TRUE);</code> + + +<h2>url_title()</h2> +<p>Takes a string as input and creates a human-friendly URL string. This is useful if, for example, you have a blog +in which you'd like to use the title of your entries in the URL. Example:</p> + +<code>$title = "What's wrong with CSS?";<br /> +<br /> +$url_title = url_title($title);<br /> +<br /> +// Produces: Whats-wrong-with-CSS +</code> + + +<p>The second parameter determines the word delimiter. By default dashes are used.</p> + +<code>$title = "What's wrong with CSS?";<br /> +<br /> +$url_title = url_title($title, '_');<br /> +<br /> +// Produces: Whats_wrong_with_CSS +</code> + +<p>The third parameter determines whether or not lowercase characters are forced. By default they are not. Options are boolean <dfn>TRUE</dfn>/<dfn>FALSE</dfn>:</p> + +<code>$title = "What's wrong with CSS?";<br /> +<br /> +$url_title = url_title($title, '_', TRUE);<br /> +<br /> +// Produces: whats_wrong_with_css +</code> + +<h3>prep_url()</h3> +<p>This function will add <kbd>http://</kbd> in the event that a scheme is missing from a URL. Pass the URL string to the function like this:</p> +<code> +$url = "example.com";<br /><br /> +$url = prep_url($url);</code> + + + + +<h2>redirect()</h2> + +<p>Does a "header redirect" to the URI specified. If you specify the full site URL that link will be build, but for local links simply providing the URI segments +to the controller you want to direct to will create the link. The function will build the URL based on your config file values.</p> + +<p>The optional second parameter allows you to choose between the "location" +method (default) or the "refresh" method. Location is faster, but on Windows servers it can sometimes be a problem. The optional third parameter allows you to send a specific HTTP Response Code - this could be used for example to create 301 redirects for search engine purposes. The default Response Code is 302. The third parameter is <em>only</em> available with 'location' redirects, and not 'refresh'. Examples:</p> + +<code>if ($logged_in == FALSE)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redirect('/login/form/', 'refresh');<br /> +}<br /> +<br /> +// with 301 redirect<br /> +redirect('/article/13', 'location', 301);</code> + +<p class="important"><strong>Note:</strong> In order for this function to work it must be used before anything is outputted +to the browser since it utilizes server headers.<br /> +<strong>Note:</strong> For very fine grained control over headers, you should use the <a href="../libraries/output.html">Output Library</a>'s set_header() function.</p> + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="typography_helper.html">Typography Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="xml_helper.html">XML Helper</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/helpers/xml_helper.html b/user_guide/helpers/xml_helper.html new file mode 100755 index 0000000..3ca9519 --- /dev/null +++ b/user_guide/helpers/xml_helper.html @@ -0,0 +1,105 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>XML Helper : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +XML Helper +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>XML Helper</h1> + +<p>The XML Helper file contains functions that assist in working with XML data.</p> + + +<h2>Loading this Helper</h2> + +<p>This helper is loaded using the following code:</p> +<code>$this->load->helper('xml');</code> + +<p>The following functions are available:</p> + +<h2>xml_convert('<var>string</var>')</h2> + +<p>Takes a string as input and converts the following reserved XML characters to entities:</p> + +<p> +Ampersands: &amp;<br /> +Less then and greater than characters: &lt; &gt;<br /> +Single and double quotes: ' &nbsp;"<br /> +Dashes: -</p> + +<p>This function ignores ampersands if they are part of existing character entities. Example:</p> + +<code>$string = xml_convert($string);</code> + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="url_helper.html">URL Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/images/appflowchart.gif b/user_guide/images/appflowchart.gif new file mode 100755 index 0000000000000000000000000000000000000000..4328e48fec536fd4f2d113940a894ca47f1aac6c GIT binary patch literal 12363 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%0Dl*XD*{06Qg*f=s36w=B(H#1`zwhmW)u0A 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 TzHv`Wpo;R$$k^e50mA<WUun@@ literal 0 HcmV?d00001 diff --git a/user_guide/images/arrow.gif b/user_guide/images/arrow.gif new file mode 100755 index 0000000000000000000000000000000000000000..9e9c79a79f1e962848ce10853005a144faea2aee GIT binary patch literal 123 zcmZ?wbhEHb<YwSx*v!fB?%lg5Po8}G^y%fxm*2j9yLa#2j~_pF?AX!T+6okBzyOLr zSr{3BT6I7&ATt<PGz{i?t~9YoFX{Mx;y7nY=LDICH9CvroOP59#qXFm6}!Iw-Qkiw Jql1CL8UVI4FH8Uc literal 0 HcmV?d00001 diff --git a/user_guide/images/ci_logo.jpg b/user_guide/images/ci_logo.jpg new file mode 100755 index 0000000000000000000000000000000000000000..3ae0eee079898922487dd362660b6f8b05942be5 GIT binary patch literal 5602 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 I<z(jn0FJd!;{X5v literal 0 HcmV?d00001 diff --git a/user_guide/images/ci_logo_flame.jpg b/user_guide/images/ci_logo_flame.jpg new file mode 100755 index 0000000000000000000000000000000000000000..17e9c586bb55d8073c4629b707b2a590334f34fc GIT binary patch literal 8589 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 literal 0 HcmV?d00001 diff --git a/user_guide/images/ci_quick_ref.png b/user_guide/images/ci_quick_ref.png new file mode 100755 index 0000000000000000000000000000000000000000..c07d6b46970bfde2affac0e50644db91414e41c0 GIT binary patch literal 94476 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 literal 0 HcmV?d00001 diff --git a/user_guide/images/codeigniter_1.7.1_helper_reference.pdf b/user_guide/images/codeigniter_1.7.1_helper_reference.pdf new file mode 100755 index 0000000000000000000000000000000000000000..85af7c83ba79a27fc075aedcb3cc0cec75656b7b GIT binary patch literal 499096 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 Ss!9M%9Lf-;rDg3vfc+B)C}kD^ literal 0 HcmV?d00001 diff --git a/user_guide/images/codeigniter_1.7.1_helper_reference.png b/user_guide/images/codeigniter_1.7.1_helper_reference.png new file mode 100755 index 0000000000000000000000000000000000000000..15a7c1576e0bc49affc6a137070b94d19d03e548 GIT binary patch literal 67388 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 Za7tKw=omW2#XInll~j`WDP|P-{{Vs3?*0G( literal 0 HcmV?d00001 diff --git a/user_guide/images/codeigniter_1.7.1_library_reference.pdf b/user_guide/images/codeigniter_1.7.1_library_reference.pdf new file mode 100755 index 0000000000000000000000000000000000000000..13cb3609772811174ecf5281173b445ad70a2bb5 GIT binary patch literal 666918 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%0ATF6E<U;#p1SHx_G9voc z5indfv0NJkD1T^9?c`UC>{d72=cEGH21gb*1^E7vo3Z{6sTE>FW+lA7v+#{WHnRK) zS;3PD!h1yX%~wp@UQF7V-n;SYHhzWENo{FgB_Cm)Ci-Q@fBf|P+WNP84e+s7l&+Nt zEy(JFF+!W}j-568xUtCfg6_aP{TKTqQBBO}N(-fTvvo9wA+I{@fPT=%Wfbop0T(yz zg}hA>cCkiBN<c8;Q%|CgH2uzwm6m=bm0od557;oQ+&#<g&bhmAU{Mt?LG}MvzUgPy z5eYcc3zq`b75p@WtoriH-@nz*(s*9n>TA`2`2GICcOh@{IZVn^>`BW9qLQC`8)aEd z9?$jOxBhh(_WcP$j_Rcg)BZQv9Y|IcSut>OcHhG!ao}r`4J|CBC!cUu8GnAxe_U8N zSGsNU09lye<^QSc1HqXI1v0WyXz_TqyZFZ$K&BN$f*o{({O><{eQ7$AZ!-`4x1u-y zZ{vVjy1?+tz~Z3bVbVCq%djtgt|Xmo08P;8M)z6YyaG^_4Hg>^{}(Ct=V0x}b~J4= z0N3qigMn!h{DItU83+YJf`UE(HO!1ZXY%0RS%ArFs`{he9G8&HZl5v-$Ekrpx__F? zB7lEYVA0x)vy@1{1s%l7qF1)!(IRE>c6?bI<bwBiZ!ecc-Dvo?ZVLkkxU<6O=J~R) zsdW{AnZZ1^^9A~*{u(O8Moqxq$-gN;Dgy*~kK`y-eSs{izW}VFPALY2ri}tX9WB7d z@M8qJ*kR9q|J*iV`PWL`+XQUA-DfN}&GIX%WX4lDI!(^?DEK?z<oXNXv!>q})wV|Z z*Nq~9*#>2S*hm$oT{fawqU)vr_FyC!v0+^3Qy?|b1?=!?ZF%{H1mEA`_urZN*0FZl zBNOuHp@t9$R*AT+zPJJ-Uz1@jo0IoE!k+69tH}zHyc!TEk#eBJE5Ax3m<;v?=rTQk zhD+?)ZU#`iMZM~DWoYwXrQ;3s*a(k*;FM_)f3A`Y1JzGtr)EFb@jSf}5fi=Y`j>=% zuQJ6Hh!JXYu9mijl~l6fz#bmyj6VJ}uq8boTP=p_>lq6&GCTt^Ah|RigBKQ`lruGJ zOqpk!jcoC2Nh?Dp_iAB=P)cR`&)VEooe|azU&uk)c&^9IY)}AYZS~c)Rw~7Wh^!3G zg5#p-3SWy>WtAD=lC(tNL)i_6Ee5w<RK-u1WPy+RQmNm<YNVt3j8=w2!k1A&4so|M z{sr$UAL(){#eD}c^583jVzvGB7XP*gsJR`u2QYi?Pk(09EUYf>s_Q;OIe7gomI59z zwyeVWK55oSrgyZy3+ish!=d7~hVO-3B<j0#1-qZCZUs)7<0TB-=5kENFUU75;+2lQ z?E-K!9BBPcz#}SRe9)fWmJYt=#ku`3n!4s6^05s<zEvH1teg}<0#d$=133@IKDsM1 zn(HXqxXjh7U11Uc=>SfPVcQgF*!~eY)=k5|-CpjqSXtbS(SB`q;M$@}Zm0|4;7-0H z#YQ5qI8u~>8`%W2AU^`Nsa-eR2#_c7PL;>03#P*1OyNJf>=o=+B;SH+^)gWBUV>3{ zxikEJFL}aYv2$3MdX57Csc=Y5;^k61A1Fa}O0xwzV!gySoav2)15i`4u0YLI&9FN@ zCNvMo1#cWv4d##!DKm|mLfd96Kp~hVysaM_iZZ>WR7V%Xy&;tr(V!D%ZXHioJ=_?o zkZ>;Gdmc!Y7%$m!Bh0Cl#Br>!xCC!ErA<zf*J}Hu`J9;-LeGEu(U};!6rI9wh%G?; zdwa0zkdR7SJ-j`RC_#ggx#E>gjxAa)RQ_`2VXN_a_sJjv!o^Hoz-*e)iB(B9suXv0 z_LS=h8-p(b;2%gZ2k9QdJgGpT_rtaoNYSOO291F%^C|{D!0eDjz(75sE$xmV<+hj` z0Z?Pa{O(JWrOMI@XoMJv!w<y@XXfp!qx}gnc@Z&EoLfZ=XV+G)<}&M*>Kp9_DOP?G zUzTf{fOgL*rTYKY?lpN;TweOg0?}C<ETw_11%@k-bdInPfnjI=l7(&+B8PDTY9bcI z=0Yg1PpW)wH?s8Y5|fg3i)x3h-yw5!s;>|4!g@>%=#`0*uk?h~?HcNHfja>)tpxEq z{3Z=_0xyBmUEbgS;ER0G97qFe=eoL_jt+o^pv^&@vJ>17*{ztrfRPLuuH#?u`1{?| zxSbI}ZKulrV6P+tla#A~=nrHKgcUv0uR!-dQwQ)gA%LANl8b~WZs(WEryAB-@Z{V# zW?`_nY45D2%__Yp(ORN61Sy*2^k%%Bw$?5FA-DeW`n0u8`dzg?)+vHT=DOin_^Mt5 zdx6WgRVn7_bshsV7{!v0@-V?hw%|8hO+6Kphn^U@Zabl%;9TIxyS%kk&<N$V5vyB5 zUQSHQ3aI*CmQa03?sA<e>RI<wqrmYT=r3mC%<i{>uk?)SIZwXwN>wJ63x)JQv;Qm| zJ7vuiZcv%KhSxG=UcAB^5V&r$DC<vj=<DfcK2_!Z_u(aN9rvK~9v7xy?dlkW?a;d( z+|@|ZQdMOpv(meU)6W;Xc{A`5$hd~y^hZRS+NGrFZ`3+;a1@+JpI&WTHaNd6nsaYo zp7x7uI0KuvHuyX+a`f?GE0M)wwlA3RscvvbX&yZuzcZ6Bm6xfx!(PJBq*AYBE2RB| z%kxmYwu`1*^Tdc4pm&>Nt}t!*L+iieEMH=4?8|Nj!lM*^?JnT%?L9f<l%N%cmv+3F zN-HCc9;KU{f^tnXimvGShI^5D)XiTG2L;6y+*gM{)ptm1m+SE(?G_OS8hY2-3t-D@ z8z+TRA)>upXHnwDt13OL0WT+})6{38{%m|iq-%5S*5y<zXm6=9LWLjuD~c$TBsEuz z0`yt+J5ukT{6)Lk8)56JL$`AEAo25|&9@mZ@~LL|`fFmvO?|FbDRf+9k0tzo|J}=f z1o1og(pNqo+}aVaIXpA6$2Sgw-vg!I2M6)BeQQ9Pyb2Y8Lr}5bH$iyfa9r1;W;z63 z`M*f@Y*2E9xNO5~{y;WqQm;g2lX_k*J+gTRJ!glvW<7v5e9lVOc4Bsce_)N}<?+(; zFU>j5sBwd-_RfZR{WVTstpi9m?ZIO0-z9Ok>Gl#Abv2c?UTi9XK{s~MQD~cCM@Kx> zu(7eyE3OF18+d$Vc&BC~d*GwLgX@+$Vx#JX8pVlofy|%^U!pYL?pB6rjQ8hLeSYJ4 z615Qw{L?hufc~`fo3!qku{*6dl>?VzqJ8at?hyA^K~si{_)PxECW|Z+_BE1uyFweB zP%J7X)OlzP$s^<fL89#Ixj$FSMK2Pdn5}({4Zpo0F9{%|T>@t|O{hVQ@&u%n(#NNI zTg4m~GQCh}G15b%jyV?w5mWk?Opm{?^jxNQylVCs3a3OptztYFXXIqjI%Y33UJyOe zj01r@DiBeK;wYOen3Q{(-*m-w+-chI#o<c?rSnsfF>uE!Y#ZoT@8KuvQlAk$37={W zwqRLhXun0Qk-peB%*ESh`fOXx;nU|lV+T^BqI%0CSzC4vBD!F$-1;OuBE8qovk+Q# zP0=bDe$p#Bq%H3T4AY}!tX5x22IhY8Hpqh->qo?KdvJc$iI0C=*X6FGG%#uJgt6i& zBJFoT3a5C)(nkxDBR)>uDMc_FTD9y)tLXv6XqGQ!VE++~@XI{uyv&gNP+Ahs(e~Fy zrO=4oWMigxD!7kaVrRBSD@tyQCM>)AoxPSWPXG2;B}8EY5f^2TBW)dZbyd(}_hw@$ z(py>J<3;uICRYa%;yIUb#3l*7|HnW_@u)U2dAj)d1ml)NJ%aru4-ZiU@zwum^}=qU zo%BV;%Y-SfR?|7_!7zs<nBsH6tDs`Tc}EI22qL1H%DUmVo~ellI>eyMlkuuI=Vxbs z=oBIKI2N4~Y7*05w^}eH-ud1Kt9xtx%?drEEzQGFbiCqh&tT}*E5NVvt|*OAv<w@< zz$;JR&wb@o@=SNdHFq{++^e)^V>>xVxP^Sef)0N^M&J7oZJ2)J=8n>>UwL$D1?R?d z&z(}Cp&0Qm9$>#U$>}oxttc|fqzGy86%J`KV`KI+$b(c`Z>kYumuF3lSSrgy0@xqr z-=)SeT6(2>A=vNLio6yO4W4@gB&Y%@F;l*>|77K$CYTm{_?hxHpavYBxi8aS2sX%6 zN}$*ODv+9dpl^IFD^^-T%WSSo0vjp{E^NI!DO+@#nJ!<_QKSF3{}2mjVkR7`?-BW& z69eweA$}OeaJ)ySYM?|CX!IbSdb*|aye=yuTba&Ih^tjngW!p9nXk#=%@S5LTUprx zjxi0<gT9VupF}nMUQ_c-z6$!LkkmFRtN4WN81;x0^>{sRnSmPDsoTtoyE4>acnLL_ z+F3S*Ap9UIbGw%1om1T2anU0?=j(##F<qeIQxfH`roU2v)Lphs44*hYAfF;KIb4r= z@RKVuY`cdxaWWf--L3x$VuIW}+9o8bhu@vp!%;QSB*7B3A92MhSh&`=+1hUl)CEXv ztK*gDbVhAUEf4rnnLOe3|CBqRbZHj!9?9V@T-5B)I-Br+!+KF|B>^?#Uj`D@y6}y< z3HX*nXeV{pt3tH^`F9JNZ`6zh<%D}pUh{Su)d+mHc7ah)V>hxl&s$aq1mz%oj9+!x zswoZXSf_915!i{MGkdI(ini?*&gOJ^{3zrKFlO;7d^&+osvoSC(&O%3BXX?MgXMOa zFY)BD#<5Hm*YeGOm@l3PkvU->Ynf4+yt?)1`WRQqk1m}FEBRVJ7+{Xl=%Yo*zjut^ zh@lM86DHs6N$q3xD8<07HcD@KcIZ#g2%n6Fe9XZXr4`*8|E|!vEcU^j<5eb;b8;Ve zmV8VR?Rn~L^DV3Z=Je_TPh9s>&-Afg119nlBx+P!lFrRW1z`RE1Y2-6YsMYj6U+&7 zTc~vl=2av&vqiZd6+|&1u0_3G?g4qNCH{prPLzzQ=H=P(=6uKBOJ5lmioTR13d{a< z^}JP?Q$c9VUo|2bFFUuorP^j0((t5e=A}^>)NtO~XnS+(D@qT&V-^pMz$=oqtYP*} zQ`=HUDL*HpT@4S72ux}icHP{W2<hC^|0rw8K;R~Uk%=<hD!EiEO-ZYz_fZDIus8nn zx7<owgj0XSz0Zy6%kCei^&x7I)D5O^x22!2=7TRq4AuEOiO0a6xy2M<_<X^@K-e+N ze3Rk8O}Rs%x$5%I2W?P8gn6~Xq0Ze4AF$-M#=uoRJuHn%F{LaFw)12OOW!<}_N~CS z07B7$ZsJ+ys<ZNW>zQb}K4d4mbchwy3%?G>lSf@=;OAmDNZr51ZmxdP7nhxbiVLh( z>q=J0M)rZzBLT06#Z8<%HOw%ICz?UlS0-PrUK@_Nn?@mpSHR<f`c&Nz$=0T$IQ4j1 zf1s?`uN2d$dlg|T{i}_fjhUfSM^$d@T~o`iiGNGqGEw%Kzhf-ntCDIHq<RR;AZ@^U z=g;Rh?|QQ@3AEJU^|`uBAPW26d0Tck|KtBvpyY#zhUy$MwviG|uW=7}UMrY`m6I`M z$64#OZnhcjXeGV}8o>ziAqL5!q^{qWs9l4=)sQb(4h2=a>9jY%jD}eSroQ+`-afyD zszWp&(eyPkfL&L=6}wQIXVP$a0H^wW6Ey7+8DI18M<Z;D#yzKMI_k&GH`{loWgt7k zd(YH*r)S>_klQI>6(M~dA?8hc-^jvgeH2(lUliuJluu~2@_ICTEV$Ei`^cYV!=VMg zW5{0bNWo93jE<g50Iu;*Hk$s)Mc*f9syrm5ctiAsWMDPNMz$KS$bH`056a|hc}n+% zYkpPd6cd*-cXZR)x0`qs*zsM`q{(xt7a8FkT)tta{F=XGe)|v{WYJi1p!W<sJo^N* z4Tu<FluU&-H_P8RcZ_-2LS%omK`E4uarGE!jiNZBO=^@XL>}gE$qmwOxb5o4Kn;)S z`j6mFL*mvhB+G)EEq9XdYj>T!@S6<w(M8p0xs#fL_sJdI3+x93#1Gq2eV_A-iv(DH z7mhjW)b_6TWck;H4$>Rl{KSwhKu8S+>{j3Gw3bL=n*V!x&{!Gp1Q-8vuR=$3DOBu) z{0(a4bEPLAxAvMWcNto}j4j;+Q(Rd6`b}(J>!M0>jDDD?jge{9$P@p5&5yc7pG5Q- zvRUDxRG|1acyMq8k3XsI-JSo-pngp!1A1|EH$ZdXcZb>9f`d6;%a(1rk2GG@4bX@M z(DOn{%L^ckQySI)TL+mD;L7!5UDk%bc-!`h-<{6?5k!~k;Ii#sB`azHeUC;o2^(s) z?v*fpc~KD`&A~*uXBrVnU(-@%I$;AI<EIw~8m-Zj1J&n#_;56|b!d{Hun_kK+3Ys) z>lyDm=PlQV?q1D1dj}ep;X0SK-`+}A#lr6Ycq>AD=5ELrb)LJ8CuN!b$6y1G_B@cK zGM1aDa`x@NXS(WM3OH^KuB54ZkJT1ec3EvIb(KDZ_MwctY<&20REug3E2(_8&V)<V zRU~xJQ2>%ED8fQ}T%qGH-JjTx#nTe7+V(FAyFk=6jC|FSXgPL^#cv^=wj7zyh(>`& z&Vu76!G#7*Z@`v4d`^{vTo5I!z&_zI{oQa#5zkh$<KoWuSH;9(23{vnW+BIB(RW#G zYPZMSCs#o2Ok*~M!Y@1i3&e@x3d5YZz*Z}wa7U{5-eyrk$MoflClIyOAg?L-6Y=zS zH8-C>{QMR331gps>>+ut%QgGdn>VQf34QBl=9yGupf!yw055b<FI)$jE(=2z<oVJ- zUur6N)a>s>*&e$zi(~0<q&G6X=JvW?a+aw-k5d6gqXF$(^f$jPnL9A!b&-GOz@sov z`cM;LleXS+dX*<;mhyK=T_bsE@SJ1KT1kLPr#c=eM1Vwi`Y#2Z+YV@2EPJyK`WJaF z!7e0Ih>fnU9jr=dP|JDi1l8|92MI6ptV;LijUaW5C}XquJ`oK&02=N;3xi%y;L%XU zcpJq)uS?b5^)>japiTb^!<szg%}IGfnX(?2ZL6xsHt|Z|tNUG%NriO5>uq6B`cXsP zr=QfC>T$}$>SomQk@f0V`mrH@hHtDGBMMJNA9n2K0i%R_q8nf$G8PGL(+ipcCLOxC zs~QNB*Ppt1IHl@t!zh>*zQ;Ar`fT<DedT}Nb5AQaIikKBcoWTsB1eF&0Lv+|3gNON zxbIpDOz=VDxxY$YeLvY<_6uiXnwFh>C4IQILs^4z^u411O;iyYh{7y;Y-iwQaEs!K zHpEYhfWK1!(scSh_ufo;UT}}gv!{O}8wE5pQ}A{7jQAECzWC4~KNAP3r!8@9#FFhT zEzewp<sc!QhS#Tv^%hab{pbDJAf2c?i`{gv5m@h4?IBpgJn(u~TzdxYrVn4XM_#t# z8XmGZjj|Txi3`*o9m1rScM3x7iyX=jwz@B9!x*S$yM)0w%`{xLop<^hzOOR0H}DLO zt??xl?e_7MV-qqz5A9E2!`U~p*}>xugzCZlt7VA|01Z+bDD#|tm!%uKqPx-_?c#HM z<GRnJ0(*-YGqfDj@tkL0gC5da^x^9(n^Iv8!Ij?*E8UIJ2c5kuyl9($F#<!|2-{h- zdTX-Fvq}fOU*t*c@WWf@_YF13Uv8}q&S!AG0XXXcNEZMkT=lann4|$vW15*1TJI+u zy(fp$d^fV$`qio>4nDs8{@tcXA^xq~)|~?zQgq88gp7B(1+dHl;%El}Ovy+lNLGwS z$YA@wKd7>&mB_13f^MZ(yP%bFe@@YQ%)pjqDS%6QZc#wJt2U=#U!5<$So=zRfLmGH z_0_ogN=%(D_`$(ayE?(&f*d9ZJchL85+Ws^<|1R@2A#C*Zn|fcJPLRW(VLtbtoR@> zOw1h$)8DNz)q7LyC~ie*gq{`k#wH?c?~~IQHSu{ql?cZ!JfyK=)|lfoKI9_E6Qw5` zmEYefMlK9?wh?0e18NKlNTsk8e>_${$tM4310$?Yg_7?yE|X?|iSc&Tyet5y`-HLi zk8l{@Egq4%Ki$sL-Eo8j0nh(Bsw6McO(y?Cy8wRL3U5-#WZvS}cHGNbz-zG~03`=i zdYE@Q3<LQwlTO_da(mwW2-KTf?{#TQOPk(;>n*QmCC(aRywmFwFA(3}q5?`H!F$J( z=OpCgPc%l?KdAtJCc;0Mz(`Fo9DDmc0p;}*-s%BxZ3|aV0GW#}PaU#<Zq%N!@=<02 z<_AAa+xe@UWS6?!ZBvduWs|S&k&Ig^#BOC0I=mCD!uAQ#so|^7E1@`Rjh0w?2?2D1 zsvSe1$*;OB;DBl2ov&1snxq!3ogNL6vvm(^ZhlXSIiH_nJfj1`!U->8;}t0L%hKEv z^-iw7@284H5}PLct_JB%Qp|F!F4?x&mWRppdPlJ&%UEp^hToluH)eA&XjsU9S*h=h zbHCQ>y8w>{p`8w<?RFz}tZ2#yG=)nt4Zl~vt(`n{D|Z@w{LEpjQMBX|CuiSq$L=4% z4pf;Iii4Q9B;6{OMEEZWiYSy%cuZ5#h#{^tKYXIs&gOB{lwrh8)qiZJ(f2}EwBXxJ zpG?rTB+jcGuC=|X*b+m0yXM|xDuL886_&Kj_Gm(PQ_kAvH-AVJWOWFQwVAg(lXhGd z>VzZT)=$sGi9UiHOzlVp>2k%38jZ=GYz#+EI@uWeCkdtSNi7V{fwJXywk4U5@N;d7 zt<X^GJW6W?zB?a8FhRO#lMO`fr(4<YUol)hqHJ$=zJz>y#nbiVm6g0eQ+%y)OPp?c zo85f`j5%Mj^rs6)?9FxrD+3R-e6^<G@rL|F5w_T(u4>>J)grn33vBqiL_O`VtS5Sk zS>;n^*-%JSX3O>`L@)v2rdrYYw1^8jiMvvGr<##1D1;0!6>2%A5S<4vUl#l@f5!S` z#M8YEIGxxOP49@w(lB9zzFn!I_)NZEAa}YX`W*Zp2Nel(fAS+f<BH5eqGtV%+v-eQ zS`|ZX@z(n{vh94=60eS0Z<RUh8ktpdaUpQJvn!Kqp8?yViJ5RaK`%J0cqr6U{h>6R zG;2~f&s9<S{UHCJ;sr?YhRj{=s%Gz#fOU=Kmq3-1E@jAkV_dHJDh))lUu(*9fkT7} zfnuk+)4*=%nsMmK$M~@<B1aLk*DLah*Vd*YOl<9VF21ug63Xdt$v~R8E3`1W*GX}@ zEphrA?wn?$#=vLEH?nx&@pgZg%sgjV^Z~~v@?5&Za-g|y*!4rd1)FR`8lS;5+uGck zZ1h_l!*g0lk##HQ!i48C6OpSg44sS@xoqrebm__fpHmNr$Xl-}<rAFr{Ev^Doa4%` z6fq^=>nW2;7a+&o2BQ`%)D)N3Nxrm}nTVLYEt#jkPpa5NKM<CC!8K_Aha8oD`Eqt& zvixIXeXw;dt+<D)tMB0xkhZ9WAU3Yt!EVIP2Bdw7A(}FJ!Hwl{TbhpwpP)e3j6}i+ zJPxys7&1dGRBqaR;@bi2kJ}JW!v*K}57~N7|DIE5oBN?x20*y`>Lg(-H$#s(J;zxn z0q;Z57}js9@@%pvK|R2{oL0TpB0Hck<Sd)xAi%m|@nUqvKXXEY&v{qCwIRNL{|cRx zsq^@;{W0Lm=@CdU_I{R#@maf2g4B#317}+W#G6Zf4;>gdGI%}{M6BMLuPf<-XZsgv z8}~nn<qOVC^V&aE-TyP5<eZuLZ`S(nRI=?qJFfvzd+~RjU44?5QAEwd*@sYK46rye zLg|?+SzxpG|L4GyfBi+_b+A;if&qvgU%^|@TkPrVGvF7Ya`tnjqox6HID_{dUW{M) zAG1b)GbHLmbiQgxK+g^%VSfQmdOkXXOi=QFp=i~@4>UHic3&#7ohN*uGXK9nI>e3G z;LPhG-y+$c0HJXr7EJ7LXKcHVC}A|2>k$9(9Ju(r`9GZg!NvDf>r7ni4`-?#ghAlL zmoP5^#0GGI<4I7B<WZZ>brimBzmJgm5qJKp+W*fuljc1@S)kYVzFEh<s#Qy32Yl`Y zi6&rK(irgk@mttY+UPP(HK}SY64>T$XhEC^NpdLN$X9P4^TK6`){*nkP}Q{m9&myO ztRe%U40<A+R%!-5vpxd=GjC5%V$UGY*KzCf^wX#>+jA@AAmg0g-K4Wl9b-u+ZD#;b zKVWtTMft&)lCSy(6kzg85v@ad#No6jI00TZ|E8yao+HumgKqjSfJKm`o<~1p&=Z*E zGy$KH*bl%nCh-Vj&0_?8*qhACU|dyUZlb}LmbP!;Uw}geqa6O3KcZTM1STmF2<f#B z{!wT{VH0L|1j?Me6y}Zxey6QInHIIfsf-nW^XinwHq~NB>Ybw3B7BO4If2tffiKjl zAw{rb3g?Yv>u+)HSpsxQ@||z<Pu7b&1yKb^CvGI*gTgn9f$0uI$OK_pxNQDLWh4#C za1T)9YPN4+y=%doh6V)`T0;D=UVcvk^P&2XwFvKgOd=qT0a6HUwy(Ua-%V61D|!s3 zkCgpfSvlO!g^}9Rbs&CrtH<#NdgLq`3JqOXov}yCGj^Yzs?>;uI^M^?dBD`V?48yZ zt|NZ?K&Rl}yYUF@5cYhBh#zjVfCrh&ta{aO#7vgT`4~9k*`Z3QN%8OzU@-M9bt|-e z)Yo<~35JdN>IJFxPKQ+PVVPmxNsdMoR3lXwg~7(r9uQ3|fdsys?$6)$VDeW`NsIhG zpb0Si3X+%i4;H3f*Bt}W(ld3wR<s5@f6vQDy&G3j{KN9H<F8+Qo0S^(?v;ch3fI4M zm0?z{@<-qkgIjd4JGIjg;3-CD&DAi`!M(0WKwz8CbUw`rN>gRpmxgcg6n1<%i?KF% zZbrluX%%<`4`@BtB!I(8Nyc)ccmqsL(Zd!oDjgv^PAz)oA|?s(Cw9Zf7V76<TncKl zdDJx(Vdr%tV2}02`nR%MY#a*akqANSNqC?7?0FrOOdr19ZfT|{?x^fg(6q{#<s@6J z0jcYJIqq+mKz=UYK40ac2rs8etXD0W7$x`ML5kxuOD+o~yU^qnaq&hc`qsI2Fy?1` zYF}dxrN*?j4e*jDo&8OuxI`6YjwhwV*NTK4K77ube##K0Q0v-~0{&<-n9?<4&RQ8v zPGcfu_yrTz)I4>c4`2%C<y#B)z+V9xo2a2qwhm};tzosQswh4X`b7u3jm0&AeQhsY zF!T&mYJpZOX8AeEP|$FXS;)>0PKWRdmJI+xXd{bw8*DX?ei}65`Gdd!)?xjUvR_!; z#xPm`v9xHSQF{8;#`D2V+g!|GW9ensVEZ7~zyJKVkj2R0d(n^_u6tC$|C&l7#krcM zHK|s^o^vKnpHKD3SNQIDBQbO{6B9ls<xU)?%by!s%ag=l#Px7WiRgvoVCR_nX&BEm z2c*m}{;p&swD`jpYSzQP)lxGg2P4VL*~WnM(!?q-hIqTT7Gufv`cEmX(RVvXC^(*6 z$zhv@#a%yuU#4WR^L?pId>>jhlZJkk)C$Jt)Sfi-KkBERexwQdw5lJK8baia<NXO& z*LexIf|`PNs`nf%O=8iRQ>~=~?AvMR1EA~S1=Ahm@4t2QzjgINO7yjpX(Pz#r)>Zc zA#=`@VYSzKa2E*#pdl^LviR-;AkBXF02so9gDhH~*+8u<-@1UHnL7fp{mo2So=hTW zJ83u0JBBq$2{v!4BJ~)&W>Qd(+MgI!Hm-fUFEdom653>>{RkBedOaYW*0CPnUKl9) z0#MEv;`d_z5ZN8@5{!*e^6HU+pzwTdd`mjZQaRG5tb6fv@#&655v^~~(hm?-?4F}B z7_}mfa|!#<D5ct9D!=gx52KV>jZ3oEHJM3HdPfC+?|wdLjr{pnKH^q})J;0n7(Jb~ zsASzb(5PbW!{VdPvM<8YsBAR!7!1>CsQ?X@7p3nUtpKz7%}5;+ViQlg2ET@C>kYL% z@&{@@UXrs-peoL;T$EqZ7TK~Wg27yWWY!XIB%%<=S{@*7)q9OeK*QVIe4}W_`Pjm? zKuA=h{aS8baK+3Z4kf4op~Rn7PO#vKxJ;D(BnI5DF(ZgVn)LcgZM11dz53C-a*ilV zlrdLmL303(mEXl_Y%g9I{s4?cnq3}u;_N@_Yz*}rp#XEcs`E$D$Y!;gNI@~hh_U1! z(hi|jEP`I$Z8o;*JNu4~Ts%<?*PW#gZytlnl@I9jv612I1mrb35Y!tBA^(P7ep=%H zbl=|*L9nm!A9Y=4v`DZwB%QI<zD=$ryM6WFY@qjH7$5^BOJNY=1w<w11R=UOFk9rQ zqy#aS*HEpVmy?k$WM{HVywz#;x|3tc)bF{$e$BEE@sZ1*_OQuiEwDO6?CFogqfv*p z;$}y)FcMMjO6BI^p`sOsRs4|<!=QvLBYLe0B#yyp?Ws*@gQ(K5!{xS+`!1rxRX0?; zMW<sq2PQt@J=|LF5|^6dA#_%){!zYEIY?oy>Bw(S_$b^iZ%~=G5GiY#$XGhE268Ll zL`4!cger)_Bs+Ch6`NE;HVpxlX%*w6UuH3DBzM)t-MbYi?=(bWVq>>?Kfmj!^au(T z0Z}Gt6hJYNokAyguX-DK8h<*cc(zp6RONB+6$#TME#zDnvtABDibsXkxqxk}ZySQX zabim!?FY|)*9_C{*(vE%b<=XkAE%W;n_F5Es2(NKZ`^5=+ukVM2~r7deA8#*YE3cz z%hsqEdAMc%4tc{4W&DQWt)u0$)Q7f~?zx(^meHalwJCob*1c}iBsuEP1PJT<SH{Qh z@0CZ}E$nN&xKw@3!O_VrLA_glz&+eSX=3nL;EH!aEti44X1(iJ%3yRgN03NOC6^;3 z6Y*;cp5e$OM<{$>gD5gOT+WibL<96$I6ZP8vF>?qsHbuFv^Vum5S#s(^S2X6f!@gw z2}izb%~6)ZRhj4ML=_lAH#~e_Uo$JCoHK~@Io0+}IVDGN3eRiBE#J1M^r$i{4C}8y zom1JQDrv3|#IDrR&LP8>QqVgg<@3#f6ZHmkr6&aIEKAcH*gu+$n4(Y5KC4QXX)TyL z#JydQT3QshgsO=De3-U0(<HtV=_}rHqap{MW?zRUeQPpuOE#%fbR+w>;ze0)HT>rs z;7U?0ffoCxjTvk#ESu9p@Uz>k!&nRi_V2QdX79a`ixh8w=iS<3Oy)6Xo%B@P`jCXn zK9!`|$cAyseXD*J<~xK@QQCYhDJ}XapjV3tpIx^sDR9Wq3*M&jKvP7GH}QC#Gt6Nj zcTSq3Cv4n)(CVl`;aQpnq;Dl}siE$wT6ZPk8JG_+ffdlsbI(Y|DoY(W#b%ZMfT+DC zjS4@M-3q?$_)&X~Y(6@C*>P2(;9K%GW5lwVy{sWE7-XZP74(_F(&<syo4^XzVPlYu z+N9O6Ou#4k3kz?sm)SyUmz41@!jA(KgdbRnJjCnr>&4yP1eb<~1P;<IeAFshTxQB+ zyg_+V$}KilsO4rA{z}v7rEoO<h@G!g6+^YipVNT9vBKgle<z?t2a+#U9Z8FQlXx4_ z>6ebwf2Q;q3Osap=4j>^%r*1Qm*kt$(~?S9M(=#xeK3md{IX>7t3I(qm3{#>3sX)k ztI>q?DS=*y4~=a}AUv}JAoaJjn|ZO?9K|`uIQ}S-r%o#%B>rZ~HAC|-PtED8vz7i% zDhlt+2tn(<LWsebN?;$3`R?0{oy#}qo}ramWhzCBc>WJtUl|bP+IG8b5D+8<1f(0J z5g59=8>D;akU>BtMv#({#-Y2rTe`ahq)SCY`rL!=_x;Xy&M)^5xAWX}<yz}XjcFmp zJ<yGP8ah$3H}XV_xhQ}zCD5X+l5bEXs?6_uU>%%P_eJ0<zvUFD^^-RGPhBtOj6!6# z-=HUR9(|u=s~Dn!J^syW`M^J-^hp|g<*{23uUeTq8T!zY^KVmb%PuC0!$pA_jYx47 zmk3mKG~vnBKtmAnV}k%E`NPY)A1=o7vNR!TYpxsF6Xm*<g*4TZZg1bbql^*XDW15) zxSEi4<$HbYV_sRL*8U}9oxuyO5+$(T6rZOdQ&^I%ij^Bj$~);Pk02Mp>_&#Ir)amc zb~NaYpf{=#DSOq%(CB$9%JEqMkU_3o^G#OUP1ga~N$?rBYsC7}KZ8OQY6GC<t>;N! zh~O$cXLe?&U)monhT7kSd6Z<F9pyhC7AsBWdQWiIjp-8Qtx_qTfO6{(D`R|{!{J@x zH$|aN6KPN@VVle}?u{~{@QI!rnAOe`3SpgH$bt-}#PaSA8mI8f5bdDJpzJ3tu3x#1 zl-V%=FQuNJCxRqq+@hdi9)B#NL6iIvJbe%(uBfYc1x+VXD@zvNbW!!%m|!_BVRBlD ziqCslq>|MTEJp@ZhF(^`qdASm6aHz#6aIlij78&B`^yVDC_0v52q$8b94@*yAnE7f zJ~;D>$V7s2;#vQPMpj*}*YYbw`tt^mak@=NICavT-RGoONAFTS!@bk9Ww({43M{9@ z!oj(Ea0gWYLl`7dJA$IWKdZ*#lwzz=GMi=&sU{abN}LWO-a&k^sCG13q)@T`ynzf* zjyhmgnBF3Hj4Z|gkeyo*kl42ox$%T#K(8alz|s7yav)Ur`=eMO!-01nX7zcjmOpld zU@O~^6@x)uqZY7tWvuTIM;V57SBOCC#%jhhMl}FWr_gko@7YgYOX8<O*g3MHmo>LC zv%_F?@qvplD_ZmCm4s3<S81TKNK*R2*ljk!_K_CtO`FXQdB5aiyA-Y6o<U@i9xm{W zk(Lcsqs?+oG7?1?rYz1@7P6glC&$}O@X?!caaB(;a}n1HX0}|PeQn<Htd+~VQ%7VH zQ#BS>!To)8E{ETJ9yVl(pPj^AOPh^1MUdEB`SnK~dR~!C0%@mv9`fR)0V^TF5H)T& zmS8%Q!Hgx}DP3`HA?G$bP+^~1co96C@DPH_XNT2Cu$YzE!2)ckG;P;}m|m1VXVea& zE}#3Ef}~oHBWM^w--0%pAD~})2Y~<Lds!Oo9@%aAZ5vT^4z@@$zj;<aHM1ijrq|S3 zS}Oxy^+<Z4ruP2MPVy+_a@SiJoen!d7H+QzQIRs%O-)TQnVXbA;*ix$J5&(BAN%I> z`hOth&dI%f)XPkwR?5EcDQ^99hw~I_LMGSiNx6~A7mb=QW3*`it;-I2p{O|3-g<kH zd$B0<L6}Tc;CSz#d-I8ag;P<z(=v7uD>t@!__Euc1J_wyEUiCNsLr8szRK0BOIo&8 zQpo8YexqfRnIu?HFbVCwyQjB;&7$5%iX@jX0xWfh#z8JDFl$Ca4o258)^bu#Q;Jl6 zQ5|{@%i((3aY3Ki4-`ZU7AP!hNN2wp=7L>8l2XHGK?Tz$F}VE{Zr?ykBm~C#^bnP1 zfkL2WMqK+w|G7LDe24fxGP3H9ecnjA-EdKcCarb<t-dflmaRFBEUm)!+L5!~<le{v zp9Y7)+okk^C$q9W*RI`hu6g7nQH#JlbET)oJ?R$(EAvS&{OMKy@6wQfX0D!FUc+_J zEO;CoWVI?UH$Xl$gy$^za=Q7wD>D#M(pO%SoKfrvtq`W4W(6x6jXAqOSks6<n7r1Z z?A$^m+w6mC{y3?@SjwbnJ=U~&m2u<Ty5wgM5H4-DXlA<G?!1Qjk>;^w$<~O+kBjZ` z0`BEG^d4<Sq{;!@#$xCVudfxBa*m|0>)Vi3tqc9;J$xQnKlV-%@MC3$fWplulT)GS zz8@@t;qGL0R0$JN`&2);!|~j-+`y`_vaq>g*Flj(>zKn?E}hRze%qFAZEcq)T!$|x zn=8hZow2OZ#UNs^t8iO41*?p6eN-$tXe!C(J$Fjsw0Ulmr@hAp0CE!?S7j-(5s!tB z58zPH*cm1{)zLEPTT52mntqoUdI$m+|HEfUVFXWX2L<#DHn8v`u2fer224ZHf3jXX zy?7_0i*mTwj~b}D<|l}ojLpiTazf=~tH&J07<&QROzfPCrckr~<r&L3Cq4B!o^~ZT zZgj}XS}ZB5T@_iR5T~OyjhQ$MSR<NQCEMeuf{^!pes4re2u<S;e$TlwA7RMpP5XzX z#@Hhn2>5+K=yq&DmT^@0!kJ9xXgEbFy)Ab3SxhyIT^F{A*vBSts4AOT0(}ov#K6qs z8pmVOC`GPl0kZP})7bSn(;6H7ZMn-Ie0bX7K-V!weXwW^m0Zr01)>g0eA1@N_viF0 zh4r(V01?Tp-T@V(bPm`3LbPR|t{7<|A)v+g7>_pMNyo5N3{&Y09^+|mf)Z>CQ6i<8 z7t&#XrPpQuv-6bnkJmPC&pOpV(|Eu5!W1XVwg*MRB)T9ps2bz9YbLlOT^SQAtyUPO zT(P7HVH^ij83B4<unL1;RsnPg8_kT=?eNs|UJoDv(j4dM4kB|9^n6C^5aHq|2U2fK zu`Bn23LnOB49nwXcz^UltSjc3ySU%Y;w+n}s6whXvjZ_$HzyrA`#9>E@hy9I5xvx; z5qc+Q1X?UHD{uKv=j8D0O5CKi>DToZMGjT^)N&@DRyn<l)ZrmA*+lbkO9!Mt3-YM+ zOF6+w=9eESPbfP{*uT{gjE^AW8>DY3A^{Z;i}Z68l@QrQWFcJ|6B)z@W@LpH{4&>J ziT$|1vcvi8bYef&-&IxTmkcXpoQR!zOooW&Wbfmvd)n#KdwPlrx^tC9fA(u+$yLau z`Jpj7p9H!lR5xZ`I$N*Ut@t+X^qZWjRMKr4YUP<gPMSjeZ}SZO_gM1ZRi>A}e5<Oo z$McAmKa~6;K<!lZzPM7CeMV7hYn(I`R?j)4NDILwF-svSQw2S)$!zwC2Y@o+1F)zJ zkvfoZ!xRj{yE<xik{D)(n>}PRDAMnB#*@1GDw|{9J(gj!E-&nb#l_a4PgE}cLe}-u z0A7YUUL_2`39C9wmN^_5TtD3v^spvQlEpjUF-NP9O3)W8z|^Vd3mSkL7TQ(e;D0lX zX4_Kt+qsJHWK!8Sg^0X7!*JNC)ETS433Wb`&Z53g*$R7UMxc<X3a(fNPa$lxr<&Nc zli{(K!tU)-+$1S-bo|QQLtXkTcQx*MEAs&mHAgvMu&_Pv%o5&~JSD6qed5`r8!&2D z_|m@cGR9Ypr;!xe7bYD3NOwjzeSgy`-)$ycv|l|T0+-{_sr;2jpQ6_-My0OdgzA}` z?Boi8xKh>f3URB@HogqD85_3mTa6iP>~U`?sT5_|PW<bO|B<CA4^iK7A3q@$OZpgQ zM8@7Us9V4}ICH-*dxq`f{p`VSmxsf`?bK%CV4J^mNmRU;;Op!?2Ye)8UY7+p<*a#@ z?ProQtwvBJ4(^QibfHAoErakpY`pjcI|KV}cfgrWo(`i_dEsFY_k*U?8WnE~<ZgU0 zfkDPu%>7C#Sl$$tKRt46ON)w^<u^6xSB3gTZLAnnD)NoDQ8x>DY>w91mXGzCLz$qG z!di^AvnnL)G|4t4cdS^yvxRdhDUQiuG9P80{Ft?`i>u=;qfweV@Q(-(hEy;<XE0FK zw=2jb2ZR_iaS#=bPmGXkhaQ1)#^&Sw;bE4ua*Z(t+x={K%Ih6!Ek4<wpBNtVXW~AW z8kAe3ew?Q^Crde;?x)B!b|-4IQk3^nXHC(`%XaS;+TfyM9nI2X=kK@ptUWbDJDo<e z%8u;it8`D?h9B;Y?Nf|dfH?A;;Hbu;o`=Kgx!tjk>8r?wu2yo)sxV3GBsq*KQ;L|H zTcwK0kV9o&-Um9isDuH4uM6N*(vgvn@$fPLb|Cg+^FnF{1yZ?BSYTQQ9i4>OPPS(S zimV~kgXeT=l4EaQ0Q03I2*!M{7+KqxYwzl+`v{)8-%ITBDb0$A9a<6nmiJ^sb3r7( zEFK7gcP}tb;OHgpjknWO2UnSzOSvKaDq{Q%(k5VtV#*24eIjq)8Ga)-82IphA@U~g z0`cu$P&7FEGC&l=tMkxM9O*pLB>{ILOUeM=Ua2g@!<Lu09K>d)mY-2+p--%h|Kp46 zM(3*@hBpjPLRX}+ZoN%@46i9;kc-)!?5(;-Ib7+-^4iICwU89AZJO0>xRFOXDkWnX z@uOe6LT093xUW1s_9AJ2r1N=f)%dZkeD3UF>#&#s!q4_+Rfnv<uF}~*HK-GonC&J~ z1v^gwU&n`SZ!D5z<8$kb_n>OmrOtax20a(7wD<@oQ1@UMOfG-nvfQz#MHi%#`xEqT z^n}#LBQQeGfn~5ZKKiGyp!S7^Vy1I77lEb?eJ0vy>u?BYA{?2U08C$kqNS}_xx4Oe z8`rc=qC&JzG29~2*nxRxdR+El$k?O>|1V|*(q*byJMBbLQ^3d{M($<W>G9@AaZ2Q7 zCQ>iR2-<^<3;`Q?>v*kgQGN(e4an1#i-Er0_|!jnrI9)2e9-Pc-BfX3gORdqsbVQR zy=+;a05r}w8-thCswj8zu<EGD>bMfkz|!on%ZQ3mFD=-ZR!9o{;C;H5Pza>U^N^L& zP>r`WIbwuR0#l=-X6#KxW1)b5MPV-B&;ot?^w-MhO+_;%5t;_Ol;8_&J3zWM*0!={ z5@Er%qi%&(qkw36amPe~6y+U0frv!n@^-<Ydp|cnO6m&HQ`g?G?Fcp*Te^Ey7yu(l zDwo0FGWCTOOv?zY7N<|#)&~C8MFdhoHuytbZl;R{lvzb35ui2u{?4SWxh4U&-$G|T z&OQ(3Du>ArI`&%t3rGBqfG}vdxsf$qJ7<u^G)RGVNx?lFy$_0`!8~;LMXc0ln>e?v ziL|H&9=wIAl6BcdC9xtx=S`F*ZC@A76kf_gIL*-wD9}T;Ti9}~Q&uEf6l}9S(WTuc zS~SK2XHd`B&0gKvrRF*}LI#Qb_x{@{yz>@UqTUX7oFThr9<@W`Tg^ux9B%V=Gu{G4 z!hJ-Y0d(BTB<1ax>vr*+j0v(i@k8{f3?X*x?*Vy`*SL@G311-;%<QOrFAGsbkLjyC z*e!GdQxkMPX4(;LcNiq@$IB=46izeXWu5YO5k)1e)3ca&MSuy50vX%oxGvTr@0t!t z4Kr9}s2A+mCy}uVpbmmG;D&-6x!lrVo-_J32Q{3BHUryk>ZM8rRFr94jHG*S<=x7a z<8i0iAOU#ywpkVUrDLk$&yuOTx2<%tMG2g6zwGaay<W}er%@3o*G-%jF}a1R>NnQ8 zyO#UG+)=u?ka?JhZURHs#YUkU1!XWB?<ky$hHF60POfY$0V)}O_w&qf{ixm6hu2hv zZU;qBr7G4&_>@mwwTI#U73kfrzVyJmecOXs2}OtIPu~)BWh*KOE03_EY>vBF?}m_n zF?*I^@E+fu_Q&tck;WS`7YS?l;<m>R5TIw$f)NG@jRD|x1U}EK+<g7h=3+@zAul7% zVj_RE6jTK3`0iV?ER<GzEN%yuHGFsVn7ij?Oiyl+-Mg3I`8$pmub5LI^ZsGn7fn?{ zo_*Zo!`Q&OuRk;mV;a2_z%yh2FW=XCFuFIr`fb(67K!LbFf)_iyB`5bC*d}MO3k}0 zOJK$d=)trZ>y&{>IaSOrs@<A9h}vdfddKN#rDOuL+<=+(u0+TSJh5b@w7RR@lT<$D zI=a?Sr;3U_rai%!$@>eB>nA21q}+bTsdEpx`F0CTDj#^c!TX~tpUHY}@iY{M2jdLf zq$fBx$TQ>!5QgL2S%kszpgf%DsGP^oju<pgqaK8_KIk@6#vC}<C~v-ZaR$0@7l2*! zYlc`7c&=wSU-~NVYblK5W>dr*7u4ls>(*Y_#xR|po`u>Lvgw-t^aPMyqE7We>42?A zkc}ekyssK4?Xtb5!teHcXGs_vY$CK9ljDlEa>CeYVg_uJCwn~$q@w)6-R+Gg=L7oj z1B!`{50TMe(!*S9|3xF|o3F<D&sQTc<NuE1D0Q?Q@zjhx?ymg|bhn^xJv#4DS`@L8 zK0{qXdm=okfb;!B0RP|PM`G=m`7qeJX}-%U(o|1;o$@qi$%FRA1Kz9-?|-fmh{pai zq{F0ias|Lu_36f+88WgDDy@6x@@5uC8+LFxBrN6pk6+_l1F#W5k1qZJOnNzwg+at} z<TcjN-hKmU3pImUNq%#$(cmIC^2z+)y>O;UUC?tZUd$b~*m#<fSVo!+2Rf?VggI$I zVBhhSFLCVdr?CoX5gQ?UICz{uP&VrV$k1G(UAIs4-N}amuJ_#Md?W~9-!&Uc65W(; zA+^yH{7t})MRx7~pdifhwX-TW51he24UqKobV8q2)@NssZJ}U(b_zLV^7=ta<lv8O z1U+E*VfvomyM8I)efj#>r|^;6qZqNekf^VF-d}In!}tGhcD+gb<O=9J6@(pwSsx<C zv~`^UQX4>ds_s?EjF^EGt=gRpk|>{F0J_izhgtP%!|2pSUt|o<oLBNa^R}pWkU&Ob z27lhne@<B5c4XU1tH?0SyaU)f;g8W|t5ZRGj00W(uV-D37CM*2=ihq@khFZIFIRU> zM@>lq{QneG!iz-diAx88a5fT)080vA4MYvtTnFfa;|mZ%z^;(YaU?x?2kpib|8Md; z5L%<8`Si4O@bND=XsqkoxZE<;8o4B_^>mc0kIIs11n_7fnCGGU%^-_}GJIIhel{NH zpS(Kma$N(fmhD^nT1fJCgr77#FlkC*5In9i4#4~6l9v=iAp}!9!I4x2|I3U1Oq#%+ zM#`siV!1l6a~K%<ogRQs+H^M&Lsyp%$XzWQ<h8&AVp}Pr!>|YGKTmgPL(ij`hhB5~ zM=bw^Qv44T1MW7$G;{)#8wioC?fasjM++#$jo(_Wa$GjA{bPPll524sA&-##22uY% zz9UZcroShIdBu3)cmzl&ko20GGTp27R%ZIF?qV<#<-5TK7-tj9fo%WTMkS0Tl7?r) zWd~;OV^GZ%pIhw#9jTeu={0DQl0Fe_HNBzJKdrlzLh|&rA6hVS^^vHk>PF(*Pq_b# zd_iIf&YKGfV*>Q~@2{Q{4MP@ABNf2||8ohzRsEOLOn;<oWtoY@<=FOs#t@)eGvguU z2&`VmxXG3R!rBl%Z*~1Q*DlbH)l$mdr=-v3&mf>%-%ks+ai3q!!1wVy#J90~e)~&y z0{!jfy7qNc322eV(LG>HfcCfn*KbUFRLT<fG9%DJ1~O?!7l0tEH3X!!57Uw81drf< zpHZ2{zZ=~aeKWA9XWN!neeL!28qgw;$e+yhO^exBwPe;;%f_Lo<o5cot{3Vc0m@PP zay%13N1z}ww`6AvB|L2njpK`033((6^SI|^U&(MJbP1H}VYP1eBuXQr=nrQwP#yue zAK*E-PApxQQHT6<IPBJwF$3la@YWP=T*D4{3vGbVtk2o<xB8iL2^5`|H}+(PA=cpr zQ-o&x2WWsZF09qU$Bb+wnkS!qjP?bFg4<>XJOWMOj#HrM8nXbGr~kHO(l4qKBhn&O zgC<z!lePKT^(9<!P`EytY>C_J*ODgRy`li3L;{-v{jl?@!OHO$KTUy0NW29gB>)6> z81_lh^u!LYn$R0m_x|{pKew9~M2=LFsSyiw{46#W!Sr>v=IjAHZmg;MpTWf^qLa~J z9FXQhpQLtW(Fg8cTjgy1$bkmWi^8-|3?X15PR%O7z?7r%JeDGuntkjy#}px3po<&= zls{=07PS@ELE<`Fu{IJVBuOX_ItIE(Y{xbt-J`))Rb>s7XmsBoC$ETsVQIj9-CU^m zrey>u00%azP`mRxi{eSOo2P+r_iZo&>0u+QBds{$&Nv~z!TlCL?1P;U7~NA2x!WwO zM&m*C874Wm;bZFP8cWU}`WTOtf9K!7W1h&fuLjZ(JyBYSdhD07=dqbh6hZ*zlBT{3 zT%zvo(o)q0(f8*-wQ3;#56_y+vVFYGY6#5JNw*w|UX)25#h$-iFJ=nR?a)$@DcvCa z;m2YSn50uVN9%hHL8_xs%h2%;wM#x)qS6k3k2nV&S!v1+!Ij+HJU-9|_z#Co3fb;| zVzc0)iRJX{B#tlaLgY*VZOnNY`w+}Fhz|SpTfV@*VS09U@}rE@KSV!)A$&^}oM3x6 zob^-<SP5z2Oj6`cV*E-I*yRK`%uF$zPlu0OVBNudwv^-JyZwZrD=T5(F>D1J3_i=w z_?N$&OFL(4y&<E6xi?-FDWau=+FvpHHWDX9I~$&1h}o%z%UPBMu#w=EAp=<r@Q3Xe zGXOzqpQ#tXPt5*-&Cd2=R1A7JD~wgqxiqR>jKpdkg5aao`9ciL=Sat<Q=6G3h2>}@ zjWy(34<OyMncMg#0(eDXi>`HbPuz0RtIl|U;-L-N%<}QAihIi9D`h_L+!9cL8M5HG zRlNxx{LX;Q#Eq@bd9VUDzUpfER2(Z{!u?iqnd<k5DszmwGue(<poY-sMEj()2vY{= zkoEaBFe{G|Uc<3QiT_$_jA1bXil0mwgmW#Nu$<{a7=gEKDdBsr!eo<JLeaBQI!J{f zzZjeJtHQk0Xn<nc0e4r<fyi=740>W4);oDTEVics19|kv5f=*3;}J!Pe*>m*ILBNV zk?fe|0_r%J#?h;MZtw8DVcKI-LoIlQ2sV!HB8j;nVMWdDMXH-|WTf#K^HKPnJ0hBO zMy3~8Eb+&AMbHlriXHwZ4`PyyI_d<efTUMJ6;1zG@V?vwxI7=ZS>laTHOrr-g19ak zd_=SELZa1zTV&fkbgC(;%3T?z&-f{x_h;9VkP~;sZXy7pgB$uK?NGUvN)o0%GwTD( znY<9ge)jkTaszyg8qS03PPN%pDVMIR2Sh8$@f#HC-@_|tvdBjUEg1pELBbnt)Bwy@ zen!GVXcF3G;Aj}n`!yY!D>7B=_ZCBN;Jur-Gy@<R{9f9hZmr+0k@1hfxWV;<`Ejt# zKrU0_I7v(i^&C`~KXe+$D*ClDDq$OFFi%eW1V%LbjG5NgN@&XwDDoeG7!`f?1r8J7 zEFifusGx#6p;S)z^zQvc^yLS-FFE?-3!cCtquP}{WxU0b=E!NVpEAf9ltfzbWgJ1} zFzS2&4>QqPvS3F{6>wyezE#aUu$C}*=8uG=U6XlzAETHWsqpssbaq>n)gmsS&=4)& z!s4gNg$bsBQGo>7{pRWRVKAcF8sDa&X2Vd1IDMd^5-TA<#cz2L#nrUpr)cc3C}Sno zq2ee3U0mEFR|UF*p`QL<)p<qjm?{P_v>fb%Ta!U`>=YpD+{GOitL_gmFuDz?7{bEV znWFJp(YvRoX-kFmyBtg$!$7uuiLE3nUr;lYnyU+0d5#Ev0szM=$3Rc>DkbKpnH?PT znEvmfLZp{>f4TCjpnD%J>6U{)Q1rkRw1dCRm!qI(hzYcOI?>0r{mgUu*p`b!C6IfQ zGBifMm2lERZ}V*xs)fl9YXMEKC=g1-0os3Eg4ttMax=z1_b3}E2*zZ)dZq|9I2n+x z2c)N`u6-#n3vHnMjuyWpM{HF>=@i-|8BNYQ{OqadT;HZmAa@wcm%_A;kU`HvR-1*- z5XDwpS6nVV0YW#Up`PCCC!#ejujd9umEgvk53{Ach^;3L5A)(Bd9+(~*kcXu%r9NL z3Axo%xneljRW@uaXqzwh;@VUA<Cf7u4(F{t(f=Gwu{W<7%;<}@sD26=SG-<yXg+?L zX;u^cK-K6(1F92wt`jK+d;pc0A!a4Dye(S!<|BfZ%qxu}eV`jWXb@sin$4-qdyhvp z5juEh07qT|I`*pIm`26`1|EL|;op@%0jQiWuW)a>0eqUdR!tT+L&Z<IL*Zd^m7e5p zbGa7m`eYgvW9W9<rM<mMj?saNXS(fmn^-F?IW1Gqbza<?@Mnj|8Dm71V|{&LOUweB zkY6aoPA;C#TD1Rh%~us&{nU1jeT#!%)IAB%*6Il}-%)k29yf=ioS(H5s=r|Tk$JWo zjaE#mKXxBD$M~&Jm=GYSU)6CfmFus$JD>2l23#St?i~ci*~cVj*FzVEmR1}$FuV9; z@m|BKl~*@?(mUHRi^N~TzwWBRHaSW28)Z~KrGR|jO!AL!q3;?KORmbS^->fm=hK3! zTb-~3kuqGom;pwqOt;MP_*iytPE|CB@O=p13CjqE$x<-?mulk%-TkMV{q~6kB%))Y z)Cp*`6kU3!qdH}06$g_|YCa?R7Qy8i7zsf;t4zfHX{2_A*L%s6B?#Je!CltzH^L$o zP)ku8z^iOLnJYfyCtkOkjcz9k_jx!JVDifPdzmJ5;KbVY$L#Tj2*xxZbo3vlUR+xG zoY@?+dR)J)MK6M<BndWnzV18ioe5Mj=(5WCbr7Nj;>%d$qv3v0wWpvgnX?fkYG?1& zy;Tg4or@h2%cs#!gNJRD&L&d1Z6TQk7B_W|h-4Exh^y~)Z;#(OH|zI-Ij!N6-A92K z^*PgT+nz~_tbYSXKehC8ixMROs|_~DV{>1Wij4-wawrwrIq$4#S^GMHz23NN*kw(@ zD?X+9Ro33x%LdH$;g~QAj102EnmKo{8$>DQ0gCxO+vk;6)oU?ndv3R$w^?euayxrs zfF2f0q*?vmSQkrsNTSkk?<*I+mszxxfys`s-u|@4JLjO%=j?01We49hQGI-Ww|`f< z=6&J)``d_8g6aE^wh4*YO|UQI7<WBy9YOI>9ODJadki2of#s`e1LznY1SEQx(8MN~ z@a&YXUOwE$%jrX$>-XxHZdRoa!^%XN@2;tD@aDgk0%}*}v9|yjNwZt5Ccj{Xp$Nz^ zhMh!=y~Kn*VH_9Bw__O*`|@kL?%@A<CrX&!S1URUBtzQ@h)Hfx(7NMqWvxtgzi70_ zFTkw7Bwf6dDaR+_p7lW3deQ8C>1w+~CX))sGh=)N4n@0K0xRs7e7dE`SM|o?nQMeB zOKiL8@i2yJ`^mEKVXiKN;AlOGcOB|BcR^8g$s0$@$g+AeWwBR1G6nujQD9qc)uli_ z|D359_)$~gak_eF?3t=`b@eMUm%%7J|G`uSBhT41%xY+Bhdhd*qDm7};>@PkbfiK* zUS*m?RaR{x96Tde)h1sn%eT)uP)4SEWehYRQ<6>CeoJ2h54ZxR>CLJpN&>m&)&+(I zTGi17L%-NKM2=@-eyzCov3CLFxEOx|9<`7<U#t6OXzOBk;Al<JAy`|krF2$N;aq$@ z*|{c7%h_1jMsFt0RYy4aaL>=>@$Uq9*;=fWjdLcl0^<NpusJMH9xgZ#TJ8Ly*`YBx z(VVAcle_rZhfZGfQL*O9zz)KuN?z?qQ%{w5JbF#7(3*)EdfOq6%!XuoBZb!N0pMo3 zRoZ9~M8@OI`uLtn(GeNW)<0!lo1NKsY026iu1@A}@gU&wcX6&JXZFhq1z$IEso)28 zMdsN6{H}&)Ym6%3=zRA4DG6!$vndT01&dAfy_euxB(EL~S3WK|$T#M{m#e(Zu<N;i zdm8Jp2p?1_7}VYwZFn$C6BpD<`$M~3K@~Le%7Rh@tU-G<5+Dx%QzqGj1yb>x(^1^- zUF5UwwK1J%@HNv=#RC|fAciTmRkSgYMHim&?ilw>|2&72j-Kao)d$kSie=5*17DgV zby~6bd+rlXhx6)+`3y1i5Os{I<aFu+jkjD(9!a&tI@&=I7N8#;GetI7@zgdejv=oT zA76jqB$rI&cjBkWtq-|BS`P7Jd0+NDDmKx3FRC88{tI+3=n-m|mH9Yo*9(2$JS;mN zvm7xY*ERUef>7hMS4pG|qkp#RF-BDYsa4`<gTigWgcef_9xxNk#^H^;kFEAF7%FS? zuaA_+jM<d=wH1weAO>wsmB&)in56^GXFz@TZCKEWoc?n3z<N($I-Ena%^E6_BEka8 zS>~Q+(6}1fM4b6Nv4=z1VOHAm^gy^-KzRehs*FCWVkqYWu+pRb4KTWy+YxtRzkbJh zUmw9ayoD0@fOE@;P=s*4{3$6)6{NHJn6GXIP9ZdV$(okwzz!)+Y$L3{BVEIb6BrO< zoL4gESW_WO8#v3G)><`u2a4n0x|}zKDloZ0vo$Vua#CF5BF66Z6<8Van}XObt|@?@ z=uwcax0?z;D)bLgL#>|`!;1!N^cW397Rw~;!HO)V1ZJM|V?SGxc%=ap`@BZlb1N4Z z){rZrGn%W-RFuUGz5k6K!U<!oy;5TaHkbYWxR{I*U?3=nmR9DBA&0Q4kL1FO6!bqU z_0_HUcidx1#|q!XzP+^kGJ%}J5uxBY1YJgtyrq?Tyxvl$<{64O_ph+Uxnr}McG)+~ z_wtlLB?Xc{S(WpEh{g&}#`+(J9a*p}5XwXYf5}T?Hpz|i-!-KJ5Yj&~B=zZVQCNAW z#pCs9>SVxo;P&rW(e}hyMlg5inoKVdc!R)x{+bYocjpIxNXraL-&m&}6olpYP%a0G z3EFYSfQXxX06h51)<+ptEc;WbSCn*2t{{D<k_{pS;wN=tVtyN}DIyNe@T9PsmcWPr z2#-_~_u6x}Lwe7OruTQ%c68Ugx8@~SpjDXy!_P(XMZUF25YCxa^2pSZ29ImiJ5FH~ zV$2?wfx7$+<q*6e0SIo|=r$M?t@`cmIh;iS(;)F)()-#UVaz2QnWQ%Nntqh<8^k{0 z?vfyr#biG51%0ycnPQaHN=7AIhzIz;CuK{D%ZE+$2PZr~VT(Ql_2`Y_@=x*CYV2Q5 z;6nZO7l(#z1wRMFrGy6T!Qf&$PHKRjQ5sSF9X0$<Za{E@`@4iJ!lF<jygch<$hZ0E z@yaXQ?C$1$Z_mhZhBpTntUsrodA`%#ndp6eKqP1Bc4}*-9RnrA99JCH$TIM5`s{H# zTw{T1BuMION8MUZ{!}Xb?IkP7S1kXHwv;eKHL-5v05zRoY?Q8#GBIK{5#7n-an$o@ zW%GE7<+h0h9YL^o&L^&H#pm3gJ4)EVD^leC%20WQS&g_wi@9&gR|L<2g25Tb33Zf} z;qt}{rlQh73{aq1=#uh?fZq4@<pNJRu@JTN;|V+E6Hxn%u;@KfmRKQS{+uw?S)rgo zVQf4!@SZK_if`0ZslDJqMPVKesvUnLr0Pq;LJUQ77aoN}g~elXf80OFK}EJm070TN z&nQ)IB#8dUAZ80;OF3lDDVvn?xLKACD3Twj5qO%A<f0kN9`gDNDX$RGe4r3`{*0_+ z&8<R^pwT940A^Kqt!04i$%(^ZGdF$Y{Qc=yd?{nX+WnL<PhxP-GVr$%o`$}>=WF{y zL?tn%9{yibugEudng<PgcW8aDU({=WWP58Igsx2Z;?QMMy5IIxF%V!PfOrNn4_6B* zglFCTw5cogUU`I_*PRjnT!lvd%~H&Wwn`rzC1q>`8ztY*s0Sw;5)seGtd58iF@m4A z1op&Q)vSH0Tu!SVsL;V=KJ>lPl-EHalY|n>U<S15z52w^9ku5<gj42s^D{RS(#yDn z57F<uX0jXfJp~;0KQqL^2jBt<bf5iV=_BsnB`~@QhU(DwIAY0Xe%jCa*><DnjCw$r zWogMw$iWoxj9ej*JS6|kHdFOt$w!rTvjuvSL<*OnSmIu^j~E1v8}h`5!`RowLevID z538ajqPGu~2`a)e;Olx>EsnYG>ii=>Rt0R!4R6m5CpTCUWm7V*OCDv0<lm_G1OCtV zK8`=|#Hl?)v;r9GMyRMHV!Sd+U&Brog+6|H5Yzj}%$%1Qhk@4QyIe+Ft~hmL?kFwm zuwKyagv=tkQU2BTWBhCk4}aY3TuJ(CUF+!p35+O-1heguPsM8Q3mP|}9DC{T*x$a; z+e-NyvT{!8V^|~Dm(#fF5V`6+RDSf!bsB9|)+uH@Wud<8cS)ogr%vQg1aVaV6sVCy z&nu0sCzdCvzCV&XeqvW{x;(JSU<G;<f5xsSn>1McJpEuvkJwvU%Kwrbeprb^0mVn~ zOYpgtJ#N8|Iu;(v6+FVCOwOB@UktG-w}R^BpXh{6lZ>o3&Gz($dqT#;Cg{aM=2aDc zJR&A{(ab&CfFYogqzT7=u0tG5aSspvaO@SyqbVuO7)M^0dux=mzfJISYjH#YUjo@; zh($jdcI>oX{uoqPl^EcKeoJt&Ebu$<Asl~wNV?>QgV+13FBEk3iB)L&2gO8lNDqjt z?eok6hz0AM3-}@iLZY6~;xcBYf~3MLwx^K&PS<A<^&if#)C-hG^zW9~x_z{^YjXK7 zWH|;LB=!+!PqmoKajUkGH?kw7fAMqj)yqV#>Y@ifBS8{gUOp|pFd^a0Xcrc?X}|m0 zG&y0AggRjDrAND1teX?x;)b({DA7%E@P;0WjcY_4%@C+d)!@YR)l~NoRY<mgK}fRi z>0?o8=D%wg6aR4b&&#8ZB5KKeMHM{O`6KoUs;^nJ$rjU*g(KV}7gC`xf9G4(E@cr4 zYGt28G@7C;+9k+rvMLGazWd(Ob>#gS$&Ue*ObAF@v9LMO>n<Dl&{Y2Q71k&aw*#Aq zY|Vj(>K}d6UFlYAwQ_=~26=tXAl-c?jNe}&(q?hZtZA8K9dm6^4t9yQyb!;UFE=QM z)J9DoaZifF67}yRyLo;fR?GNP<#&H5`C-g2q;K>7=baaa!|IRH6*8Yv4msgND#otu z_vIEXaRS`i1@v*ns@$APS+^r44FCNXke3g6z`cJBvrz>voAN(uT#8dTdH!_CFvlMn zbU8tUIfVR?uepK9(TeYzP-Ox=-O2p`2Eh(P?(Xdv>)EuXSH2Cf5q~=#P~nJsxql^g zB>;lai>Vno?~V1J%-$PE@bZ}fpa7!!NA383eD@Ma!}7Df{pdP6P<d85Qvms5#z3x$ zf=KRpAME|o=czSL|JD&O0q|<^3F?$MaQh>EZa<1opMbC>M}iBQri{6u2@Gbv>rb+; zQ(wLPczk`&;8!yjz<^p*14%q-)ISEo`L8{A!hAc?M$0YQ*0buuj%LkKHs%NTgl=q% z@XJfa)3h?N)7L<BfA|`IGaF4Q=k?V}ygvOZymwa=)k|&t<_zl!t(<e7p7@+kG+lRI zePYad50Iwof2gzcaM)(i&#9R{V73wRzGoH+u~=m>&voy97i#iLQkU>#(?B1obuoty zU2a?*e!X^%ddRpLw(-l_LU+>_{z@`#T{NUOvAWod0!Lp{v<k@S&pmWiI`NT3@^j1N zZ`MG*2G&fUa&ehG@Ge&a)hne*CyLtNjxpqhT@4h57|>Ku;q2d54-v<|K<2og4!p;< zlon>uz`i>&!vA~ZgqoO_ms@1m>GarUYsAf<&eZh|fAwSeZlcEKd+gTQ6Jr08NX0xF z;>>F^V#!^~$HxNRSjeB1e@Sst+<bn2UZBYhB$oyX+0@!{C_2yn`vF)Kpp@f6$3Yc0 z>XRn2HsNP`mV39e+zU{irGeHkxNy=h+P4v!fSq3Na1i=<K&N(lba72%2SF+6m7|J@ ztN~2RXv^l<l&PF4RpD>^npH4{r7T8yHDBhLC$q!-k4tO}ZBfZT1dJd>ja5;Ol+F7N zl{*k}DNMi{VE^4HbO04T$oNWj72&{&VdwQ?;Yis_8lFp<H!jBXz7jqrW=lJ_RTS96 ztxvi0OL>{({7|r3^Ds?39F%6%w_I4jFQCEy`wQgQ%g-z>t`0HxsPHH$mCbvQI<kU) z?-vMozh55b$7J%Ea(>$Ju;*s9=2uiC<0B?oef~-PeY?bm$|#I2p_xEiGw;O+<Jn(_ z+-6xL;<{{-cJD1hY>Iv|O=642Vx}YMz!?#sNVM?zt{15I0IyF7&7Di0hH$BdmRh3; zPPiN~ZME7D1R1EWQu^a9r?3`Xg0OB{0Ro#<HV<rwa9Ms(DlX_|?jR?w;jdCq3P^fr zfAsuR2j9S~Dz2dS=XhDQVos7&IkX5)vy;^#99cEmCy`%BG8C#|X2IFIg;4_$W~;#1 zUgL6aDOF4a(;T`bTdaVZE(*OFK)j~>KwQ>-J8vf|kftqmApII#rElOL&w?)Qo^c;# z#06Q%B4;1T4CNn3Cx~47ZE`I~Fs3o1Y%gg;vbFuIv%=AiW|YYqNgqW0_c|(Lx;@U< z3)~h4r*=2o?=UGiVeLK3fLn&i^pC^5p0JHBhNL06r|e5x82-eyhLD=r(aJS%Dt}NR z<!-D5ngnnEoK!cUOnkUabvFX5$3FG#k_zeh-nnz^y2R|*T4m@nEE;fa16<mBIdmDg zHM~*aU>t44az_I&TkXfqXZjxt$`Hfo^~4{Nay-+)&G}qZk}o#Ggkvq5wpIoj+5h4Q zoWXgwpH&m)Z4bnrJS|KKHsWwl^$}C5X0Ng-`&L`}5Zu|yCWw+l%O0W4l(duzp?Y(4 z9C918{@q4=pxySSp(OmLZ*t?s)em?KJxhjA5sSJsfy%6zOi;;>COvL?=x(n}Vi2LX z5K*;>M1G$EghwR^-9LQRt~>FTR!w*XH|w}|y|vsrw$ZaK_mzAlaCsj7ePLo-2yDxl zxFVN&NiAGDN^s!2x`8&ji&Tkm^la9Wp9+$9pV)UyKDSRWsk&RJ;>(ws>YK-DYsrAa zDg+T%L|2F;TN{`a*V4k1MbF<xjLqJEz+e)nw_E5E%_D}EPlO|y_3xGgWVONMlR|V# z<9B)fni?U3jdMpuSonK7EN<!|J<k~LS@=u4(m9E{9?|f1)Izye2ZZ6Lco~zk@*KOm z>_$0Anj1KFkgAifp#xSWS5b0LToHpEjSb`X7j|2&IUx|^ro77$>s)X}CqwHxcq+Nj z!%FU!9@Ta<$FH>HYroa;0s~Lva8v0uleRe|YChURGqXY}2ObG1+3lNR<~wV0(fG@E zagMBj@*kY1$oG7Kr)|OO`t`5liQVgO4rIVW<9vM>u0%Fq-)~Pb`00A^_?X3^mBeS` zch#W8e*R1-x!DVVt*01bYfkU=)a4AR5)ps%hLJ%$g%-CxvZG(U<c<#htVtq<CkK|v z>XEX4qbFiamv?P~78t0%V1y*Zp)&0=_dG3oxlbanM|ylctTBfh<2*rp27B}4b@OdK zk9N8gXV|#DD&8x(aNWQ{%}3*}K3_L;JaF|na^ApLFMzrm^#uJEP0wQkWcjWz{I9;R zJsf|;oO^?!z4!6;&+72(>#I+7Cv)GM;uqpb#O;q7KU_nr+plYq_ZQDMcDu03o&v%1 zpD!&fm)<<Ml9yY3Q6$J57BKqh@!bXb4IOf93$sZ+P}XZi9#e~~5$aoxNIKBi6Vvju zUjheY1`sO$9#rg9Go-kHM{m((x=gtSU8&-&%PW%!Gq_v2OLE6J_K(H$JuPec4L+68 zqFi^{SuqpKc%z!5yhfIN*Bz`+W5JKoY48{lSxTz~N-M@@Egl5Yx1V+PMKxbnlzEAn z0{!I>ATL958S>I)0Mh{a!Ki{W2R`_L2Hxv*uynQCh2C~`6@#ZHj(VB|ge>ao&6}cS zjpgR#rzjqQ;{VlJI&M)r8xWjok?p6xrKpZ~BLl5>{|_((c^02AXqV$Ul<AXnql<a; z40U+ywleChs57k?a>|F9U$F4xW)ruk7#H5J-B;szNxT}Ex3(>sT}~fte9z#?k|JD; z4{c8Nx=6%QHRDnfG0;wLd(Jz&-MPFdJX$FK^o|Dd&h_VvtN@q(W9Ry!lf(Ph<rfb< zWd+x_K;ncT2VSnnjyngMrK71qN5js9MGe#mTe@SQwrv#=^I~4-&NgC01U;WoC|O$` zsm)P^{@=H)Vf>l@V8*w~T(JK6>}Y`hvX0`r@i%N|7Jf3`^KsicTx;r>nnC3vMIXYn zN=ZCLopA2djxA%+A|zQe<zRdA$F7~uzYwtKXz)l}(>$9*oi)IYABGSy3krH?G@tWl z4i98f?7btc(++r4eKs;OR8Gu+t3BlC_+tWji-2A{11KE0#y#kJBL&9fZ8*+7s=xTd zG$Q=hDUOJ>`#0rLQYzM_aH#0zW#%_*gZ$Y*UrV5BAS1=zZfE9ULKPf)S@kzCfSZ|4 z*;<52tb$Khx@?AV(kG9dKI{EX{^WXNYb?jD9&b-5LPdC|3Or;n4Q5FK>W0C4Rd_!C zi(qKgS?M_z_qDkq5Bb9*<xFu*Xx#b|C~Fue%ssrjhwK7$$Ntewp|`|>R8+}F@b`KR zc6jH;vb-3<r}w^GX404%PgxP|bdG}6l@@NOW4b3h()@Odj~NzA&nDPU*X3ue&Zsr^ znr!Qd<sVj91_4WmhDInV`53@S*jgw+TqTbMy$1wawLy7eM;m7~jb(D#zrQo&9KP-` zQ^Jgv+P}c>w~4?ON^|mQAIs681l*4S7MuxX0<o8nn#nOy@VMmO+(0x{2cN-ma7I?Y z^sgfnnR}-a-5{2#d#cO^KPRk8pLqnA4^PA}BQGbvm(RgTY8@eCH`QAUi|Eo@Uzx>~ zJaj51vE^#2?R*ULhr$n7@oi}J_Jz+S9)x|z^nLGhqB;==^glqbZZSD7wviUT!8KOS zaE`4Qw<P+(lMf#_lQf{snUZM3oIHZ1YtbPh&J%GRI3bpget&Ee@lcfe6KQ=fiyVtQ zC5TGd0X!F(fji$H5i|HWaiMBhU7wc3FFlkSYtMVvHD0$E(J&`4!#1C@7M_Gp2vJq+ z_8(HLA16)A<{^;TKa8_|xzjb+!_E6cKsvC~3G_5`e%#pV{wE_V;9!B#%KovJ-JEtH z`t`AX@(_>1%br9jDIqyx37=@vHhW<IvLQ=qB*;#q-We)!H`*x*w9TF@Rj_T?*+eoH zyF9aXIdo@MdoYsBT%70Qc!9w;?(x9rbWsgOg?Fu|5FUP7?N@j<{7msig$|XFK>YSJ z7uNU>6(3!kqNG!oy+@@o-98oEB{az9R_M{cC|<a}Ph*A#*c=k_(O((X=664S)HSy4 zyA=@d5>UhI8#Lb%u8kV|LO3}o@2%83X4+aT(6`0k$|pxoKmrf?Ci(^Uz&?EN^|!nQ zsy?s53Vm;%%|w-DrJhf33lnyi>|J%CSJI~fQ8`a4$zgR~<;ZSF?HFdR4sK+sUE&@7 zA&he6n@3?5V)ghy`S8u*ud8qMAZg?nNP3OhsC2}-YxkbVz|U&qAnW*eeJ|fZ=(<@c ztg*2V;Yia626P4yS<h`)GE0#iG1wH60)LpVymmOedDv-<$kX6$ZOd1lGw!+D=gmlC z%&6q?US=QLb#U$HRyw5oYZ7Ev5K+>wjJ*>ir?|BTdYV<?TSv-?El&c2u`6X-(%93W zgx)QIs`P9q+>+K~6e_NCOdPgardcV!%w6N<l!)0ar0-I(F`b3a-n8^^@Alo%6hqE7 z1~JvYS7~p`{4`X0@J=#aDvQ>lOO|;JS!Ptf{`~fAeNCB7S$iE@KVS5)VSz-gR^l%! zFGoR4O7l)Um;~m?*h1n;yLzL(oXk%>o-evQ7Bq9a!q1ND6Y6-=f^yctgN<TqB!#{D zc6KIOU3M@A%25N&<p)s>Ve3M&*NSzz-bH}>+7x>Kpv^7+^vx@&FO>!}A`AKzrNjoA zY`fcWd}%Vp)Y`Uel(v5RltEj4Qoli0F_^PzJA?7HuHe6W$B%hb*qECkHXvQeBQ~Lb z^-Jiwo=Ya1#-ljFMona-AaA!2;?V=6^FNZ9prbKk0X}(1h&7RNXd9%K8k9B9amEA} z`=SJnp-z~`n!jzwD4@`%3n*fHBbzklfx7RuT0$%UHa$>M7<;zc*6q_XO+;)l#;fHn zdFgjJ#K$ZkEn)|<-Z%Sswu8_(au~8j#;QpUTk6jVNaiNmdZ~ZmW%gNuFz}7NYkh*` z9c|m%z1A~<C`A0MEf)-ClRa`(V?C)!rKnI9eut#4<$QF5kdyw)&FgH@KZlbp))bNL z?HRbI&So@#^!XLpHlE-FPGwr|e!JCml{7~pw-vSMp2*_cH`J`pi1He&vY(OlU={Hd z#pt71E(DTvuWwo}j8D*VF()+*bX2gL|Moe(%U>+&_vIn&^p@V{Y<K)U<@`>&*U_nH zFc(wn7=z6`6RM}gjj!1s_U?g0Dx^)z;@p=RztVteB^cupih4zinID$)7efo8Cf?N@ zI4}@TO;8Wwk_CROi+meFVu=q@msEoZB9G~e&haxb$ZGCfVKa1+!r)2%gLj`B2w~5P ztgFb)13!G5Cm*c1#Y&XDLL#1(E7}2GZ7h&)L?&lRSFjwkCO(|6^G%^3O>x*N6G>)Y zBeFckgT^7Z@}q-xZMTlSSBc=z-34O`==vdOY|j!Y<n|mp8AXG9Zfidi0itI~b9~4+ zgU1L(($Gr*u{$Vyir>)!NatGCVvAVKn7m-xFD6s$nPs5$)&bAwCQ4vA3jCoKalLdl z#y)4aANJ@P=exg4)<RUZAE2&#qqQHO6pMS*bsRd``>>3BAU65pM%EKFLeY{?L)7Fj zFosiUQ=yO&vuvlE|H!{f)3s|kQi&fYexZ2v+nCgd56X-JAWh>{2fH27U$gaVM@v(w zqh>la`P*3>r3+Tq<AsdI;6OSB=6uIPCIX()$7+`+Lc8P0*&KN5X!7ewv5qogttf`S zag%{U#p}Nj;vpEU<Hk0}n?9g%1op|5g@C-SNFN{Zf$R&;Eq<@TL=s)FP2cO+T64$t zuvFk78xLvwCh@5i4VnZW$uFyhKd_TWAq>|!9L{;ZAxyjqCf_nJaLu|l=ak)dVyFwv z`e!+}q>8zMmXRC-jI{nZX;CP-mE<E?%b04kp^>v!^7@_U*R<4VBD9Yrb%s7Hzv+sB zMhW_wsJ0h~>bK+S%JcG)PA`-jwK@$FstPO%%fKeTjt%cfW%=%Q>8WB~s;^Ks&~~Bh z_424W6?Mkd0t`V#U8^{=m08wQ&m}4D%@<cq785u<SJGy0B&1dpK7)>nZswg9LP4RA z>8}{<i_0VBY{NBECE6EjT1l}d^E0EF>&qy2glT`(GPULPJld4ps8*JWJub?@g`w<p z1loUkGh5iy)v>VkN@!lll}@WBMQcV~p<bBJ6iW8Mq9ofjHY(5N&(0`svf7i$pp}hk zrj~K>uL*EUQ<u3h#9+y%>*NRQ!6(F){X>c$W;=K>K7}M1`Q;>hzuA<PtX{j7T#U~< zYa6$>jyE?qLZ}`_iB{*!AO>xj<&$l3<VO4wK8}is4f(5P<#n+H;LAGs#EYCl#k%o1 z>Pcn0{<%fqE`1Bza7$`_3CMbL-~Q{^E{}!}&Z;+Jjx74T_U%sH3SfE_0w41QSMQD? zSK9U5b8P(;z;vMB`x-rT6k(kPM?Q!Q;l#)-5KhkrX6K6=&mr3#8u-^6E^im;5v`*^ za<&sGdmS8;-2BSTj1fxhGXZmjnp~tm)<IVh*m9c>Sr!?LbMhSPd`C^Fhr=geKG?ey zc6T2u1Xy}A%di-5@$9mma1EUP-;>AR+}kT^wl+3Q@J=21$A>dYaJ;Vvf9~~%sBWxi zq6_tIB9@sS!1KM-Xb>y*>rK7$-2S_dK(vJYK4qCf!Jipj8ze!Le~Qb|V``WZRGCuQ z>ua)s77QpcC;Fr8@-OtMvHwYCk0Ye>jqdZMRzrc~^HXc$rKuM0wVpnO+vnme*lhHC z_03YO)_j4X^#xC>&m8i?n~s%zupg(<&?HWqkt|52$Ws1=Ikf!FUUuDeSid5kp=Bbv z%0$iSr!cJ1C{Pu3_PjTs&Y!4)8ABEx<}=xwIbuo$sgMoc2Hgmy5@k&0-4ab(#+i>* zt2vFvhtqTQOi|8tP|z)8RvqlkAkH4_EPT@2K?vdGxK~NO-H6031_MY~p%GyTWAKM= z^M-_WVD;|*Aq}Z2DnZ6G7u;AV+}e~S@fg0>W|(VpaK|Lr%+(|_wkxtr#gOW<2jtj& z;<G!N&BJM*m-K>>!N=|I5IwB)Ea!?C(w<vyX)A9V;U~rsU4IA5q0U3P*@e?=yY!>s zJk;0_)y3r}K#M8%!OTZ$myg_E?_Vd+T=a&J+HlBYI_QVv-&IUb{K$L0iO5r~UtaWm zO)!|hM?+<{gZ$>tG~vt%{yY!n(E~uGJ?C#t37~)K1e#u7&ixuX`Pu(nT6NJyM(z`7 zob0d*myv<U0>f!BgFjRJyXn~3dv0#z&9in2bAFIMyf`=bp%I5z`&j$K_7U0gWn@%3 z?LwQ|uj%nVzZCYu6q<M^JwETaL@^&c!+0>(G8Qy(2;X^xIn;|cm!4oI3u6{08)+z- zTf$8@5g7Y>1()aRdyMgYDW|?T_stH6j{>M{qRcAy?O#dIjEViE<d#6fYASYJl)hq@ z6@mh<Nd!f(5yNXF9lPys-(alSa37$5Zt>;6u_4r;R%5Ep+h~gg(E=Wn{b%wXgPn!Y zfEu+Io}x(NjB2T_s3r$rp#v1tedVCZ5daD%uIy+reAM!ruJ(zuxqGp67puZ=zu%KG z*jTw6G}+0$k>5}WeS~}7{;-j+e%KnB*_1#3euaqVOG7;5_(1v)mC0rsfNN@k0PGJ^ z0enxox|=pvYly?g<r;=Lc*VS_eKdd!vPEnMZLWe=)p!s{gyyK!wmJ+x0uLx}Y)m`O z?G+TU2b4eEDamU?d#T?<lGVP60_Fqdula!7xLC7t5MCP)_b{bDS<&y72Z*?2)v0M% z&XI;}5ku+~->?`lO&nP!;>PpoO(@lV5smn+lej`O&>>Iw+@^6JM8e?8XodGQAMlm4 zlc)Y8*Io1{`}>zM^lv`^IK7W%Ks}lowsIc+{WIV4JmJx>I($Sl{Rwp)u_-eMjXm;I z5+2V;VKS#0AxL!>jZg3XYU)(bV417jLLf5GiruraD9G?VjC$X&9S#FDKxTq@i+zdT z=DEM!U){~Ws-mDf@CPFU{C?K>%q-%c*+~$67RuJ8h+$Sv=o<&F$Y$$84p&>fy*bo` zE1&M<58Elc7(WH@SPY#0@X_q{L8PlMWpz`_#b6ijAvyYeI0EpA_7ClGUvINZa(pf- z9usR1xCJiVauD_BUk4pP4-#|{z&rlm?I*Smq;=dfmJIi0?o8OO-W#W;eLhg;OSkxf z_xD2wWCg%8Y^0IBkR~TaI`a}F|7+*Ed=VnKYW$v#WZtu<ReNN*{H=p3L;{+;t%_f> z>=_!1pUd{>A8J0f&2*`hinuavj?p*HZY%~!IT~(WjK|ESIt<trm6;92WTEP;1ntWa zggsmDG=iDqoPS}+cXR*$&j+A=rX-1jNxi&2ft0Rn&vHa8wfWV3NH@uY2QPyHiW*Js z2|i8k@uNo?gkJ4qW%@z|<lEbz!ysi$G756|#S=q1Ou^wILSbV=p~)w1S~_rcYfr;5 z#3r|f)@gI#MI`ANNRY-SbPO&=TVL4Y=Z;SL?-Koqod5U1ff59tO5W)DnC~@XbTudt zZpg*xPUPm@sz5|TjL#O&L`9t$64yy*A14Q|+O%)~AGW?KF6!v}R>hz@1Y`i|6ak5W zLFvw+OX=<&Ku}6LB%~R-rG^Ftq@{Z(=|-g#6uAfe{o`}*eeuNy=DW{1`|Pv!T5Ge7 zt+%)uZtm~G&mPvCL5n{8N!(+(LJI<lBCkSFuL85~_WZUos+sWdMte=$#@5l#6ZKgF z=G9G{pvB9tmZY%7Lev0q@P@nf43dx9$bxDuE2TC^L<FXDY=ugF8~Xia>Fvk#E&mX$ z|GSx|D_8fXxlpmPzl1zg!Z-rlig;pdJGP>-Q!36;_&6-Os|J)5KeVp&)_Wyh+6ifg zmsn50`A32tejHP$8$=5tF<Z<XBs>8n;s3LJI;`X4{?Nr9fs1o4S{`ZP0S}1*Q%mFv z0gf8E*+yJ5_%8>8*74t>`F~oK!6)~|R}y~AN$D-}m{GK}qnjIxz1qy<Q{uvb?*ss1 z_ETD}2tn&)_|NBOg|ggjziHY5*AFmQ0RHq?FxF{jVWZ)Nrx_5b{6Fo)VBA}tPmJts z<^Tpt;mLM+*5Y)HALRPvu_yiQQ}%0>W2L?Wm*;hZ?nC(VfFDEqBe({EKjEhvb6jjI zpi`+x5vk>Qyt}r!oVW+nH@E)thWcC5&avI+Qt1L{p0;u?02OMfRTVxm86PqE`dwHD zTq&HWh(IsqcC+5a4Bcl623g$t57amODT125+U8%+(8JTrawYQeQ7UkM{ny_o)c89Z zgkI!MUbjtEiI0}7ZG&vhv$%)N-+~7~HpvuijQu?d8lPZ;Hz3{U%}tBL9QmC$3%8MK z7*-AD+{KtA*W@&+ha<<t(d@O<lJ&$(X2JH{e}DHrX%u<U3cwuWvP*UCziSa&*qJ`V zv+2r|!J2aclR#5d4)#H0^<Qe^yX^1Z-4Yh|FE0G!eKN7%qx5l)z{*v9!9!f(E9l_W z8pvVJVFFv(b)Tim`o$Qv5Kiptzr+9Ef9LwC3EGd`l-tPEg%ME0MJR48&s7|(_vU50 zLs^OltON^FLA9sH3R^pBIs*;KonO>0Q$PzfkrUSL^Nan1#Ocn5D^wE`9Fi@Dwx}pQ zUe&j3@KhHK_^#v!NYBR&%l;UL50=GzoR`Tc(BFNd;*|fBQvXsVuKR$aOz_+=M?yJ^ z%*6!D!^<-}p9nhzg2kFa1x(8HyD;~!6U+0zt3L#69JU37&MR>~sGb`(UEBXEztTNr z=4nUK3EBg$4O{*m?k9YQ1vDReG3VStz{#l|$QSo@=bHC}_ECZ0E(i^X^qYS(o&WyX zTIJ3;PeU)m_yoQDlTq-QC10;;{rSQAu*sy0eNm7svPB!8?oV`s<T1FJi$8x3cF^?C zIog84{N2^VG&c>1h|tf{QL|sabTls(Ho(_$1tPZZe!u8S<xX4Nri<Ud^;5zOr#*vy z{@%Ys700xV1kIyFS%q`;pWnBOCV>{ih$<l9CkA>jwuB6E)PBP3P*<J76dk7TRce{% zCjQb7z=i63>kM{9nKk+rMLF5F7(W%3`*{-Mf7bnOPW<U3QfHK!xa7;k<OW9+2Ri9B zH6{{{%U3`UM_*nxnTML`%1>^t`h)ICmsoQY`n<EGxe=5-BaYu%MaBF{m5Y)L<PI~e zdx{5swD`pm)!YH6fDWX$54Y*evHYs9HX_(^&Ex;&2JBQLf~iu5!$yQNmtSY1u6*{> zF3Bvpt{c1SCo2U~%1v3nbRrzoYac&i5o%5f#=KY{eW6t+zV)~~eq*L!bY#>MM{s%J z7B6BO9}z@2u2ccpRq#ijd<L1WKNkEbS?S!HB*G32L0?UUZMSe(++4!D4sJ$J_Z(($ zyay#SzEShwkNflnH%>?KZrz&LPbM74+VHK>{r7qe`CJ?Zx{S=*cHu$SH4}$dvqrAU z!%0!8jLI;rWwiv&mhsQM08v%js8o$u1v|pia7Qh=IxVNQ-j<=z@AxPA@D#}+=?SO3 zhMq^1iTRcX+Yi39gW+}_N}vroma!TnmMBDmF8tX<1P-kH0t1}zt+a~J!64s@uK{z8 zVMC%csN)T|t4seyu2Ln*B>{eWf*?FPp0L#JuID*~!5k+C0=;X-Do*^tE*r=~G`%B& zvxyB3RHWp|Ll(TpoTM>RY5o;f^nANWMB}7NnQ!RVfa<G))*XdGiPl<z0?^_loJy}_ zx6l5qcEXw5GVD;8|1K@H2Bt0+o#kPyZAQL`?`Yod!FIxTD@-e{m)&7hBh6-PF}=58 zUyFQxoyOp3CiEj(lAos`Q-m>bc#=|uNSmzwYhHa7b`JPX+Hj0?Cuxbk7`3vnX7-%a z<dyb_pl!R#!o4cts65Yhzkx@GF>8ko=jwuYm65!~*o7i5|7{zZpvRt1;~V9FaT1K6 zV1m?4Zm*oOSqI)q{|Cl5HwF(9R(8zDa!tk|4G#5+>AOT+epb$Fc}Xe`?TomG88r?s zf;t3X?u-n1*V|=#0jqs0o4wce(m1`nG+D9X`8`S{1USzdxHt~aEbXil*qe~B5W&E< zhhq^P&9x4@>@T?Z&3u4Un-;K5iT%32oa;BR1+xFba%B~NvAZ{DLV?Oi<pp~AgRA#i zb5aDzTL}|)Qo4$rZgD6kdEtX(RnIk(t&pXUbawjcx_h$evhw&b-6VQ_C@PVYCe*Ay z_Q*2nhLML0Jo!z@;jQqNbs8_5j{x>|K3GT9#ZyeruRa#Rad<?dzW}4_TjWhhnHJYF zNqwP3umTepyqxf?B?41OC3{V9VWf{W&)Lvfk4aM_AHO8R-1#?GJwFcAv&Gw<SyRIr zFXAD=EPgKh<q)c=+i-`t_qGK++ldFH_SHF{pf8Hox{gxujR&EX>|PO+rAD?P#%+o9 zyYKJ&xn8I(C06FRmNH^HjInKMvwA7U6j;qm3In%+Ji54<1+B+g%N@S}VY&_W<x(DV zPN5VCc6X0Kb>Qb)R6l!G>L=|*h3W;-LbulzKuXD{Jn_quLEYW$@Mk-wYTV|yaqk&3 zPOMr10=$ECQyM4wklc<HOsmONx#h4uzz^an@;=>38~8A$niodq7IvCoXzJx}CwK$Z z(-&pg6hP$&r1#gyA!zU!=9|(_L!od|tQ!`ewrx!$20GBL$)A}bO>GdxVtleQ&xXed z=<$u78MHWhzOtTWCF$1z@Ut!eclgwC+Yi|GN!Wrhoy%hcau~5gIN;;=jvnkkO69$! zG+(GpKr_<kTrTlc)@rMAalpC*tz~<m&64DOd$n-htH-fx*IiZVDU)guxQVR0Ul{cG zBuz;UI=M>p4QqhD_UA?wran{yyH=4@h~!39XHRJ(2n06hJnamvC1-4Z`UI$%I2ByD z-|QY$qVk=mk&ODhcZ3W4Fk$#khP3^P!wCRqMUC`KLuQ3HE+?G9@^gY-LUYqyf&DmZ z39q3W+%a)m0X}dEjJjBDL2R$(QIhJfGFyikLl`Ec!gmV9fV!;BCY-tf7JU{}teg^f zivoi@&1;FhsxuUglg73vDM$A6gZC`zNAQV>4T3e<MS!%9GLKe*Q}<cRogZW`Wo>6} zkkky?7egX8G8KRz;k4a(W=z1o-Ndp1b6%-yB!MmL)`rhp2(&aF84?1pNJ*eZn2j#P zGBYHDY9+ciC9AP_sqn+<>va!(a>67c@LFnexxj@cM+-JhiuQEVsfhxCM}Z!bu@Lm) z96W}&8h3AV4uwt(6r0>pHxSe^5O9Z}1|YnZWox^ZlU9aXOq7bKCQvKQ-PYREO&P?( z$ulFf^+ZwVU?nL~s&K`}O6+j0J)Xf@xUZtUkbC;JD|I(BFmb%2ZT;}$(Wmk4L<d9R zp?}eQ0A8RzQ4KCqyUzld57d2oX^0sbpM8`jAs!62k|!j>1JgTeUSTbfs(FC_(h~n9 z^&kbx<Cx^LRn0WSw9N+G2&3v2n}eeU?(QI)zkdREytnss+S9R7AcCaCxNV3+uJVq3 z%wWq6POQ~K6lZXVYqLAMspfNgzO7OjKB(REZwlSmXG?XhI|k*7CPN-9<!6%=fk%;) z*Dh}K81ECgJE*-nEtT%kGlsSh+sKVj?TzTqw->L=uno-}q{`B+AEU|+5@5;`Uh6wh zT#}3^i#7NUb^ao!;^9*vp`Qbr10iJYE5VyC6`$GPXX<$LDv3-CCsepb*r_EP>iD|k zL2xKyntfkb*j8`Sa1Z6bYW3u;JFTdz=JPP!`(ljU@Tnpin@{i?{}0uJAsI|80JBIy z6Rm+jERQ#vJyhFvQb-OxsHYuJC+$mkXI7xu><yl4mj>8^@_a0z1K*!tt%>}~+jMQV zM5l8#k-+%-N}qgP2u{`_g5p-TfmxLOYA+};8VH#NP2eY^zk5iCdz)mR?;_1{>F9<X z`|0dcTNV3m+s8quj9_~)&U*VZ;;WKD*qfZs)d}#TMt)s~>#LVc`PnDur)rBcl6*4s zQRrChIYeh>ioEY2wLEC0^I~d&kzXQ)394IlJS|KG!P%*}Qf27bpOYT%(6MH5!#dT` zRFX+U_>(-`nmjNC>@gu_0jhV6<|7GTx`!5-m!LedMVf_CsvDZ2_$kSUb`hXNKazZ~ z)aXbZwab)(JO6D+{?A>=uRk`8bC~q>{wHdE0nhgXY~J!Sy&ioh@dx#lf${v$w|gm* z;g$Pr0@%9#S>Zl^&L!YFmi0b#`vtEr1jd2+?MR+hd28(AX_rmSd0*YMs6hp*2bVin zoh^#>b6HVijz;83ZZ(I<{_bU|c3DpJ?a+GBn%2YGnC1yak>Z~Gabs#lQ4YQ#ze$@a z6)v(}Tl($RxT5Z42eOS(Z&GvZxB0K?65&Vmo+oMO{;XaFSXfXft^CL;?SbBB%suS_ z!;64F&%JCHLzeGQ7LO=P^aa`nLv|sPOy!u7I89$-5Zj#g4eg=ZPku9-NOmN=ICn@} zye}c}T6s*;!JbvMLgmGP4rhF?k?=;sxo4dNJ?-hJ-w5T?*ov^M0R6t`DkIeyOlci= zGwaJfvYCpud)K8GbDklAN52b`N!~>Mz-fx+c=le^!AgGBv1Z`r?Z(dLni3bIrRP?f zplb`Y_~h4cF6qlbaStx?78(|2YCT(6+fi(6+n#-|>D900rzk;cAl9G-Q`=-%Z-mI3 zc;|bqvOP1k@gCTH2*I+T$uKQQ&cX<ph<Aa{BlHW#W0Jy^e!Zhu>|oTd(OoQf@1T~d z|0KGmYfKdk+Rh(P^*G!}%bj5Kt?mDyHh=ojbZuKU^X^_zNrlOYzPYK%&bkJtuOhUr zfuk}<A;UWPoR|J{?X+D)e{&X}SK6hVAywrNKAuX`Nx;wSKfU^1CSS8cMJ*&`Oc_qp zqJ`F9=^4+)tpKvOHW})U3E;ZiGVQ7`%m{aOdYvHRnmq{1(0?dK_Y*Je1*b%PAPDmJ zJ}R;-1y5&Z>NI|P7F)Bf&(DyPTD%*@rn7EWqaD$>?-h~RV?MeUHmoqx0}qSxm!&Ve z(#)U8B*7oooZS_o6(_L3mB!r32O&3AkpI1^y`HQXR`SYTd1kW_WwoWUxF^iErM1Y- zHzB{mosFX4&~Fy-*v>gzwTu`ljH<>@3773E8;&#`dKMJlx~_no^87;F@k?=u*1y~k zJ}yhp{piJgu26z+qx%}2dd15?yr+f>Q^gGNzpFp>=&nqJwL4#0Rm0t5!W`*5`t5L5 zy>jLikyp-X#0!}jVu`c`R<rNZT*aPhE>k!S#=15aQg(Wb*(DZzVw4U`j?H<oD>5p{ zM{9xGlN7NjT1o(~t{RG!xq5TBVQ7vtO>4Z+KNcoivaBo_u2v>Mg`|1RwL)*tE$|3! zj9(pG{d7Vd)_mwjHQb|Ts3t;egI*Z%Eh)j;Dn%xvj@&9*UV-_FFjK6(+h$0=(OKRN z&*!`ncdZysMx)XS6Te!=q7of`g*LiMsuKo&M63K7Q6{yatp}ooKQd>Nl6fzO^Cdlj z5ptD&Sl}h$Yt*-x_UUi;p4!em@LyEp{2^KqCKLS`yq1IYBrsioj!EU-z7qFaYxmQ0 zqG(kBb1@@}-SK&S(#|dui22Rjjls~eSZaiPOc(VGTtZ7XS0Dm@2u&$!mbZCT!fHAX zmHYUaVnn__h6#TJ=S`)R--pKuDGL_1n4*e>qDz->Ur;UN;^u~h(uS-McUCGnXgS<i z%-=$P34Nsz?nIf};la%7!1IU%Ph8YvuCV?E>F{`Gk)xq7&KN5~F2wTa<^2JqOP99D z2J>9Gj2~7`wx!rE|9ux1R)oZ1R8Qyl2jc;r5egQG5oHUgY)WQVeuABTL0I9cOPRt} z+u|4QX~aVua}YaG@8tR-z<&ziBA-e7$~tsXjyLcvyL)!*fv1rPAk`|&a>DpM6x^}w z5?wd=v8QDUR~4vtq{_&oQ%uqM!`t}0sn0n5NWa>w(;=+4tuppZyAmN0&xF1{{#CMc zx7jW{UCdR&sM4B?`!>#6`Sv35lD$b2mjtG~dSzHMv^v%A8Ph^n_seV84*<oPj$|+% zwe!QUJkLWZ{=KkJml<(h2K?{u;M=98=)zFywbjj_IqS9siLjOj8XP5qb}4zKw>G?u zT@UQCBSeZs&o1Hf?+A$tVj*eqXA6a|1YS$Fn_!}?S@0gucw^iQkK(UZDH$Me;Cqx8 z_D~I5>w}-RO&y66vi2g*O|Iz&HkPskUB(=|aP)>%RV50)mg4ksvf=hQs=blJ@MbY_ zinh@NI~a;<lK0EI^NUK#baNyyd8Px>rz6q#c30n=IYzpgZPh`oB;0(vLEJ+^G+{>a zV4Ik>X}pCk-6cZQ=Euk+oZ8&|WG5r=&fAje{5FBAo;_2=au?Lu4Aqz4f$B#~6RHOZ znolsKW>iv^B|<Fu4L?bQmHW!I2~{i1X{Hy=6_Z{)Mj0_nct%76`DpsPjC)ghr|Q1} z$6VAk>@@{reO0#p8c;U96IC(8Z19Z~8JqTYA((%I&l_H_lIN|;F!)|EDI1>J#0DcR z(q$08uYwjlm40W#VPvC568)~!@dm}~5SdkU2wZIBPze~X#JIvHZB#QyZm0;>iN7N0 zJGwXQ+5#(l9ilEW@)PN>Fzn_KxE95E4Xbz=m!l&MbmIgj8b?<S4Xfe$3Z%^9#S?h( z51?5o3v4LW?sGO(=PQ1G=HTEHP>yDD-;@yW5A>op-a=-c=uwOQe5Q~61Vy<~s`PJ_ zEITEIir`GRQzPuKI=>uO2@IYIHNO!*O;a8Tb!vMFKIID3u<ugR%FrX+LpSBYQ?=jk z9!=*rl~Mk$)lp-7q8U}W@OCSJr6VdoOole03y-;cXyxLwm~iZPdKp%b<Sp8FuUJLW z%I_UlC7u8o0yj^u3wTEwIO>}|J3$w;hB2jNcBmL6m{m|}QB)7mpN&rr7bp{CCTx}v z)dYc?7~u$c&V(<0n?82ck%j0Ib2ViXquGd2yTVtN-P0Gpr6RPosyaWqwv$f%vv$|M z<-@WZ;z+XBAD;deM=N6Jykt4i`md!~<}!cHU@$qOB1|S`Kr<~&LR;c6#BP2+vt!CM zKUCk8y_7cWrM5zZ0+GZUjmj|e2hq$V4MX;Y0a6OQHN$YV{av*(x4Bn_?j%NOLbh9b zIjgJ)YY4@g0F5#7hrCw#b*fsgQHkXmF)HjqktN52QbvI#(Ks|&16J-~ms#dik1BS7 zqCc^yDF6+)5f4DUlyXqa0XbNMVZTHZs^%t$#%Th}1`K?2jGjsLvasazlrhO;ODi#y zUZn{#ix{Sv3&bxzsS17RiCDqMw@kx3Oja2+KTH-DBNS{0*tlx)m(-`8aLq`%C?8~1 zebg!+XsH`80>$R7RA74%W)h5hw7?PDky^BT7e?9<=|3&~v{~m(`*fHy^@lzYfuwN- z8}83~ryzHgW<(X!M|lkHP8>px7-N;$7oEqkeiue}yYlxaIb`b+=s7;yM29RH_?OzR z?c#*UT2*8n8L*nkoJ*H`^r599Q8t}}Gm=D=y!wp!Z^13T!FG~xPS6Pfkf@FS<W!NB zQF<DM!*cQiY<n47?>Ctxc+BPll=Ha{GvU+w{P6Z&C-W7Lk|Vdqtv3k-O8cDrZ+aXE z+hVj2JU~jeZS*C|oI5ezTG1SJ`0;7Sjh0x#GgtyPxs%=;Zhp5Yg?`wTTCCDkbyC2* z7Go~0a?HM6T|~$5L6LB{e~*XtPFCAUw)~5c#n%;z)WvO$E2l$sN(cP<tKT}6RGYB1 z4IcC>?t%Vh^c)<Xwf|>l;vM0w3oxdFBQI=`rCON;yaw=}#BsgwJ^ra(8mL+U(RW-5 zL=*>`IgY)DDS+WAEL84WkKmyaZ_|LXCx}Rv;b;mD#Zh(0g`_<-d}%!y%I*aQyWp7L zf@u=?5TcUg4&ZJ6AG8Tj9Qt{=y6*1hq$B+RBkiosU@alDM@zM#u-+REZ=$7g<j#Yw z7G6H|ru}~FlL%LBP%?3zjr}cJZA!w^tckR|C4(QV>;~RAN$=EMiR@@hyOy?<w@ZJP zTJG9n&KI=q<xo{cl@*oYb6n+G%<49n_UpJN<6B527S)%9WKL2q=>xeT=tU9+@jg*h z51MR02MVX6?>3ux2PEH1q-so}0?#hPd+1D^>t2>e%53z$e|nXy@lvS*?s4apj-_%< zu8X#&UKwxAL383SO1p|h3+039n*gIOi)7-PA==B}6B*;D7(^M@+zp<QdzmQMHLp>P zqj#@~8jF5j83{pKedtTlqu)6z!EIP_K1!wO<0g)|`ytP>Qiw(^Xh3XD#%0f2CtIR4 zKC!(tlKNEgd?;{O@qy#~b_`cN2i9(0{GvI++IH<7X$hOE=hcam5~dy)0l#t6cr6on zC)kgrPZcEy)z{$+*i_mowDWHx&2ZNTID|`2Mzc0U5b&j^hj2<7WUhPC0G_Do9@6{y zqw4u@b>akoiK<M%#eW}J%-!5$G2lm=kbRVJs+QP=EzX!VBU!faMDv1&9)mX;vOCU0 zmdIbt4xrkI?T=V)nR)Yf<H9m-=ui`_U(%7w3~qiTz`RZ8-pQxC#_l#o*e~Owj?_lL ze^KLFA1@)4VD29yXM5=n1txH+DHJ<h)w4wGvyVU%d`yIPteWrHj|h*prrZvbq!(U| z&$&4@xm5?4&8<LN=^)m(hRcRCO7mS^{?#@{ZQTrsqAQuYO_2k+nF!Jub6uU>5pDXa zh1}o;`AqTgYYA~rw&q}PsRJ6t%)3qnA%XGguVL|>&^OBa&q~DZeHC5EXGTCnxA`2g zb)KQl*fqySE8a50agg270w=XN)*|l<-SpcTokn&@iLq<6ii!$F=Pvo=fJnI(67gEV zTVdp0mKxch;F@(=694`)N-m9(aY^5_2J92I11>GOUS;eujm6QBUty;Gj=G5AW8MN* z!4h$T3SM0cy|#hI2EH-(rQ^efJOzS^=0ZG#wY=`4-s{E%BmZ?*@S3;<<1aO@AfbXM zL2Szg3kBj03%V$+WyTP)l2iEIM}3LS*cBx3dP{3}!s**G4LmOyF$UTiAaDYjZx028 zZa)udoF^u#en;<MZruc2m^D{;-_l}>n8YS04DTVK&nJJPv;v6WAno6tVib`AAW(qT zy{0X!Ia2|3f<>XmKsE6%fzf83gym0$@;?zvya8eKP*AH|z%D(U?Fz+Ena0A<-Ra<h ze|lC~Xm`K<WJi=!m#QbqQ;;0CV2TcP;hTjM{s|K?!#}Fic6B)}%73lr^;9Z_<UO&8 z<vU${*6^71f~u|0pH4$N9xj1Pqcz~JjS{BKv?O1`b5hpl8|udC5a|B1OaUpKYD<Zx zyT|+dnd`R~*%Nbf?wZnFJ|^|VIUSA4ndZsUe@k^T${sX!pZd!t4wK20qvma3$Dvww zGFoaEk=13Y5XWYeRF&|a0tyH>UdV5gYTdn<J0rId)-rRSmXAwo11k_{9%$B;B#raO zUQ5>c)Ga@U7gMa|Hl&IYA{BcX^-td1bXYQoEd;&^MAQ$6Gt2##JuCv04rtQ`UQRU% z6@*oCGpf&jm>Bpz7145=s@3aIY4WO+sAdsV$TxP8*!drgmIO(}7q}xkgX7o%xt-+> zI(FSfUocDePMBgH?lH$f5piLNg}KI7=y#Ru;jWD7sgRgZh<S|4TM5S($Bk5{jsCW| zXWQHbd(TLXnG&VK{i{Ue`zQ1_R|}m7UNq(!WPJIg=F8WJB|`$qqqq|`tRg7sa`TUz zvHm>|yHm^%{ewB<AAhgrYm`+k!V(xJaG@3Qk8aRbXkrLkCM{t~HY7-~KmQwawH$5B z1}S&bA2+MV>2u$y?bz{r{SAjMu^W99;QWk(tcMeX)KLI41_wT-N2W4>5sj1w|ELGK zAd$-(B;J|m?L*3;@0|UsxFyYn-;lq?pKZQTGC#@lif>)k%PWBsaCuQQv#Y*gHn$hh zAwVU$b`>NsUCzpGpvQ2k=|dMkjuBnZ8@_Mh6;7z1|Lr;;fT8d^@L}2XK4|-nM*Y@v zzz0qke38D2C!;*(04a0S(c8Oe#Gb+1uf3pr?jsFLjN>j2Q@L@f7WflEUtr2q+DSpf zlt?N#{8sM)P%5co18>AjlT#__m+lUA)=^)M@J{>IlXr`*Y1I1pX_{_ZmBy_2JBDJ| zZ;cmMKi9he23MgD&Sqn+p%6(=tNy4=*}^PB2;nYPD*Ov)?V^~MRmaet@RN;7x7%wQ z`B&OHc7g$K=JF6&!ECuuktX?dhE$zKg2-n6CmS}0+4bqsATj9?z&^wUb6Z^100SV) zQxQ3qGMw|CLo?R*l33*cruL%?X7q#-=adMMEgDUh7V~EKF&<PG*;e>$G4r@nQRWL? z%B?-}GU8z?wt2%{01K^UP{2^qLt`G{FD2p=ZTF|&FQb3?=x@?_G8;3`MupB)J&=y) zATGq!*+BxxTIIQ8g0&g0tp$SO`Cu$nrx&7S+6at{gz4c^mxf6U>~r>{@317kx;rD; zB_tRy>sB$|aA9b|Nl}IVo6YfIb!QLjg&7ON^tpJ+Y&~|7V+pdrM5GoKhYnrQASr?< z$kBQN=aw<UsrdIiZ(oDQ-noD(K7Mj3IRsB6Tc#*mUq~5XYfK1h2dOH+;n8}_!u~xU z|Ho{$darxq=5Uz`?%REI50@xM?U3@8dQC^cUR7(ey(VQ8#Pw<8d%FDvxD1r+{c&H} zR%)In^{5){$OG4gV8J44m)F0F4lEghrFQbd^ljMOW?OmE)l#8V7&f)niA7*)m<AMU z;_hzMv09PNIm!V4mFdUEkn~%}r<Bm*Qo=4Q-O%3h*lhdbOs;ai(3f&lk`d!4=|4vJ zAtik>Cv2L^9;Qe93Qa8uO<dwx*gc+aS0ETNoY*$b5P;7^#&ETL*Gh&YSP4_MkxYjY z?1$Vlt>E!Y0(kZ_sfbTTIgkh{AvQy<l+Rhb4hZX}n<4-k5CNeCB45U4o+nB(2LOL) zx1E;!KED#$g}tQ2>#=np1z5f?{?oukpE|5GFqPGDE8Ztn=&8H98%wY~HaLW7OcWK$ z*o@|beQ8I2j(oos-ulS|PQ1%)a`R0tbKi|oL)$?b;HptED3wVyJOZqi+#-=q2k0Q} zu>#}RHdNOxpfPFWLIT$#JUMN=ST8y)oRaxf%odX@J5ne^BzN(1B1>aHniEJO;2N~; zrsKGj!_3)<(~hWN87NY(P(v?^wp(QXrY|(t4lBiTeA96+p+}`-vQ@>mGU?GskZm&} zB06?pNJNlBI**Uci9tvG-njdqvsth8;5O+x%AthGp-bLI#k4;(oef(Vq@M}!XtU#S z-08ffyb_IEY)-#9!L}^P=b?Nm`$H?-jx)RTCX`07_;RuCk|99&>o~iY_{R-ws~T1T z6#|s0HM0<iw7##SZra^3+3W0vng{lM3kgvW_UejxqrRT-z5Y`*P5op#P1!^*-ZQ~p z!EuY`f<V06p8u+z{r!DMdTCQDSw)s1$DR{8A!ZV<YDW6tb++=9^f@8PkW$yj(zNvs z`<5Y^TvnyQ(6l-imVvcqqwn+6O@6k^6d4QCY^U|n94a^*<pYhGH8uDwZeGx|EDqW! z<Cv(CW4Q+`aLmC<TYvPV_LJ$AF#+y-d>eRzm65dfPBh$C$A&j-6}&m_il}ZDiFRC0 z_yPRq!4UA|XifZNh7%#vMd>pvn>nkVjd%BfoCsU2nkEgt7aSl!N~uw2a8rYk<ae4^ z2kKNxwmAzgh9d3dEFbKs;4kL>c*Y(t98e_fKfVR^Y{m&-`nia&N19#`Mjn9-$&+N1 zc$Lxt<aquvFY`tc9gaj}x3RS6E|rheRnu>3E!8>zse>fnk=3cYT<JyJ-C<0K1LYQw zzj-wK#oed9lz8!NJ}ZvP5=8M@Z3qX-L#$NX2H}!2Yzr5g*jfV>%(**h;K^M*P$xb$ zv}m{_%qfRz@$s|sG^;0OT;ZPUvRxrou<>Z#0}e_Kqp4O3eV;(Hz;>_Klly#+v})Qi ziCLiHzU2MaGTQA*L_}`^8{m%nE#dOk`MVhC)&>a3o@WowT;!~Dsdj5?CkLli+jO}( z9`Tmt9nXPbHUHz=!KBz#l977)Ss+Zuc*Ied-kf6leOO__U{0txI?nZrs$;hhF(53J zgryiF<+u!AL(n_i_B_qz{;B)S>A7KOWmW}qPL3CP9r&|aY1_`Ahuf_=_$!#4{IHN- zMNNxCi7I-ydMHrftDXp7nK88^(&Uk8kmU5H@xf<y>8oKDpvFR&Y3_{8KC&bvOTQ*o z0)F8?fB%9NV3k64s{soqvi+K75YV;&YJ3Ut^&dq6Iqe)%ambI_Ns$#|>|PR6_#%<S z10I4(i)<d%+jv#Cfp3J79Kj>b6~#Vt05a%vgjPOH8PBz)I$>`4=86l*izpfCw$q}^ zCz{(*jqBRMrq$b^&*k_U8O0O?dEi%2Tl^$v!gm}uJZxBwlz-UVU0^{%%hKKW)7>!L ztD;-FH+<9sKHc$XIFv&aXR&6ny}uh(eczpA9P8hbUz<`WcI_Ym=g%Wn|5Ecc{CvzZ z6rW5PI6PquA+~`&wAI}6LGlcsZ$+Cfr_fRq_&D$vt6f~K5Y$qW+>!RjiQOR8kl{76 zeYy}5_`EEn1?R`^wcXJnzr+J-WY|M!+^qQ0$PE<c<ukb?6&1)r%8!lb+t#jt!lG&6 zhC$e;osFG3@GPQLrm*O@wc=XgIM#O}70n<IPu@(PtLlY7XHM8Bv&<!ffUGLE#m=nK zHh3PKTQG0^;WX6TVR}zrT0_5iPP|2DPM>i8#c#kJxQ+5;gpqa$f9NkVwblIG%{Akh ziaE#jk7}X_7EX`K@oIEfva4rqh&gy46MW`*$oebJv2Q>;KL~sepud7Tl3$UIS!^yi zIKE`%d>$jOKG`=%5-hTa`bM3!F9g0Txffq(a97q*ybzYr%%1>h#xGr#iUo~P@$jHD z%Z{RJW|3ZP+6(Vl_YV>n5>M$i_?82#^I=dob`d9}D<AeF(<I4h=F=%-Dqm@HA;W9I zn2-+lM3x>^Q7?iY=6>0PriO4ck<ZmEAVdGlX5sIzrz2Jjr8n`m-ev7pljutXFx$0B z8*ruzBWnU&K5n0TJ<77JZ5ee661l%U&NL1+{?O13nzsT%rJ^Pp&d(YbaBQ`q^`Uq= z=w)2wy;t%CJA9-&3iggNp^>&Brq?c<PD|~bonxT?J*ET;kBVcDjOwduj`_)#mM~`% z=ukpi@`)Uw`cg?g!!-Xbl~$X>v2GCM21WG(y<Khj%u?l%WpSB8_Mze9eq#o%fZHN@ z#6?u0)ko0|GVJaK93+u2*RC%=`k;7acQguuu;~96?J+srvF{;$I?mD)(ZnB2etE<S zn5kKR{+%`Pea*U`fZAOV4t2`;4ivtcRy2OLOiZdGcy9`IwS834iSuuBKTviV#}{X9 zBeoxOZ)V`*yQ=5al=x9al&S?A?SMBSuw(uIb1Z|SbOgOghHl6ew7U8EdYT<UBH3$^ zkO(jPaSnP$jMLHRHNcjP`{0^##{Kn6JK0})Bt`o@Z2DkaV2W`qSNb33C8IgL#Ja@i z8)^g;EmO<`yE2i>xpj{cJk<@os<9u@D+Yl**Zq>I`O)Y7WcQ<suDOE9@^j$yVd-gB zC|jBMCw}=&q%<ad(0_ZK{ADx09(#zT_lB^E5Ewd<QWzMK8<Zb@eNJTe6%a4!9#yGE zCy9+Us_L0ZcmiVrz*hU@sWYfE$1kiIbG@ru9@l;YE-FeyOn)76|H{?=n`)W-4M6l- z695yv*zXbKDJPr*b2YJnu}Eke3AwKYkbd49o2CJ~8k}H)En;P6reG-$oW!mv=Ksx( z^u+r|f)f63s-j|`n659UY@c2FSGqGnU#C<@+_GWrI6xc=pMN5(>GNlGj#(u*uAur9 z%+K~a1BNb&+2m!w`XhD@Zy5L{svZ0Wbi29e)KEb5W25LkOpNeb0{PWaFqTk)`9B)o z|KW8K17??1L4hl|ffmZSJ!p2h*LTo;4e$UJ-z`REwfg*0uq4{e501kHhIN*%Pp_c9 zJ5mi6N5H%Vn(}rctd@G>GoY7kEKQ#`4{2O`Yy3zF=m$&t^zR47{TG-0{$GFikZZ<W zTraeR$$vEALx`=VCc$E%9dI53#xI#!fM0UGFpKZZj6;nUL>PEOrn;GV%eVMA0b#Dp zY(qO0^lvQzt8zz*K_UEoQ)e<EFV6L@dX5C=`Qk^<KM#;##CBnzze=W1qf3svpS;KF zb|NrsVFA)%2~S{mG!b-F3Lb%!p2sOo-dA8^c=teMbXGTS2aPLm-Leu4jhh3i4PC|? ziN$_rAAf^;+Q_DLC;kb&xm$;hU(j!P^EzO)8BEIi9&!Odw)6K_fJ4eitiIk0;!Rnf z_)c1qg)?*9?X(>5@2Y55;0`yGm6!WRd*yWB#FmG+B5X0>FdeaOLMTmxriWdy(W(3j zc`+N-{bfypn#7oYj#fKJKo?4TaB-D%`CMuBKmf2pLjWxU)Eg<`!3{sZdMw3}$9phK zuz=~dW2-hn`ELMT3yvu^@ZL<iIz&OGPJROanv5^o$tv{0)nTI2FU*FlgNE~B<A*!9 z!@>I?WJK7M4;zdnI3&R~X<)2ywF@j;{ME99C(-8!rZ*tI(SF}gW}QcdNmQjTCR7Bw z^3emvC$D&GYnlN;$lb>+z|N!PbD$mHe^wTZzW{D0o~K`^a_PgR_#cfAygq`K3M^ea znw(0_Cp|zUi>gSG_52>|?JEu;w(Vz|ee6b-=q<gYb1BECbPfB<R=Ye*JD4PAfo`Y~ zge<h~%+-JimHo*(NNObd%hf{2XLp>FYr3&JHV|1;WF7rk6G?4+aY@H>_4wMEXtE3N z?uQ(4>5ppw8n@?0EW*NS!YQ#sNr3{YE=_7|9C9LwJ~=wO_A70*dD6c-GLJVBa(y?C zl4NFCyk+_@dqw<peky+@{K)2{{J4g<cDp_naD@bj>&{Eh{G(PwM|WHL2vFT28Q&`t zs@yBdyc`@$>f;6Tx_!qai|axyA~K!er_p?GOvZLUtv=Jl?Rf**N`DgNl|7e%&Y#o1 z4AQ(FjSs|czecXV28dETuAM!mplVF&j`4H-9UVHmxj;yM{T+NY&M<d_8MkC5wN+)T zi%p|t4*DXr&6));algX|Kl$C&sQlMhhL;^+zuJOPl{hH2w{Zviz}tl1{)J>Zpw4yl zso)U#=wT5Qt^dGzwxx1_qAkgKgO8+-@EJq2jwexJRi6SQtQp~Pd&#dI7$}Ym^<DC> zeG5n&5!&Xa8=QN1Pag)yae@4M^5tpXza?l>jeUrRpAXUBd))kHA55<i?!d*2288eG zKC(%sfm#Cz32%@3DC8ekNBG~v5;bswu+}73LWxgdmI)LR6IWLaB)8j4NK!`yhp0b3 z5k=aVZnr|Pjd&BUM!6WJD@Mz>Tyk3(AaOm~0%ULxqO@jiQiCp>n`+hdo?AcE2&8pP zV_V5ZrXZh6Q}x{DDJ1%)fztuv+lONb%jO+~b^7I`q#a0=sm*Vg-1=jHtr>~ZE7pWE zTR!WLDimBK#+h6gdN*K-o8SjFGPGX(RC!H>Z1o;K1Lhs=-Y@#+x8veAmYW9~;yw?b zAXud;m0nSqUx`2A2sb2rJtqL3wL$Sr<e?aPc!CU^GDVxBwHJmFNlUjg`zU@rZyrXz zE&YNcJwCNvC6e6?nLG-0MX3;UuVwR%Yu_IpX}*GiAux)C3IzUuOxqu{47lTYeS4r5 zT7ipFt}64l17q^3*+kln3D8X+qa!KZZnXAuKdJp~{ljN+$zAAjuVV9N1DpBOwnN{W z@uGKBh#ObkQLu^OrBPg?IrS4xVHiUDfK|Q0daLB3EF`5wnW_+izTs$eSfk*X3M9f( zOvKzKj|i}Qa(yFNkJ=a0q;7E-Je7SqmB<||aG_%PJVBpPXq>+4T&^xFVP1mi38K*| zVz?90<)4`PA~A|(<!n-_Jmlx3{<ddWwSBO)h=}GwGVc4~v-peQ3UHND_ZGhQq6t<S zRVE)ia$4Llkh8Qhg-sp?rLx63rQ1Zoa|J@#cL5O(ZE2nkv32+ZOqj41G(<cKp(BZB z-Fjo*gc{{hnCjz*{^{GEnJ*4e-L4}TFj5WsSuJ_({RmLsn9l<~+j6V_otwin*Wi|r zDH)T`y%xMx<pTw=PRH28+2s$ptE6$Y>qFLSpjK4t&2cEecQ<%~;2T$++y~9|neb8j z*;MkgyLP7x{`s-^^j0CmB~;ShKrit~+bn==|CgRes<V~0k=QO0udXRAjw`PS!hTcV zy&+z!N?W^=wdHv@jIm~7^fUKS6l82jZy>&LfA7=PpKEI-WWnr<lqR&KC6$Z`CW>Dm zN<~~n)5%?h2hm8>ts)h&LQmpeT3pM6sFZ3kF~@s;>i)|!=T2cK*)WLYjrYT*@<wTv zch6g-VD4)<=Cy^8=2XtBX`}WKb5G`J$w3QF{t4OF#Hhz;pP+w1L_mPIn7)GUf%_~m zY*HJ`GgeF8Y_v$GhKgZ64C;^*X}>6|#!gLMC0uqS<2l@XOa*dbArK^p1$_TJpbIi* ze{FV>2%w%D2UM~OKXyNrx2%DdoRl;LgWGrhEUqVmr%3*FrImvppcb?HS`XMxZ4c#? z7kf}Vu(q(s;N4dm^o2XGOltn@&1CvI>;46;UT%<|YFT?N#m}l{H$SlGOfM0g0CyO5 zT-mcnM1X#S;*hv585pI)gEZ+;L<OJ3b)T0KW%vP;Ve%zIqfdHo(lumlAH9>Xt8nL# zR9rB}Q!CqdrdpU2D0{XgU2IXrfDytHaWj)73gRiWCy&cGThhd3lS{sv{8;-OZ%=hK z?{m%8B7H%*x{JZBR%oQfH^o3Q8vmo|k}$^yiS~e<Eco_6#~lB3^tkC%jpni8GzXZD z&dEFQLP#8s9)6auJteU^Y2kFi^l|q%6MC9gkB6UeBh5>Ht6bzguwb=^G9g&qS$#~7 zJC|DhJ-pYTkUQVaF%Jl+wt-%Qy+GViQkyMsoTX?_wp16`Tg1m24(Zw@956nIqHIqr z<9ONXEdZ{c13Hrv=q2ZsFE`WCY}u=?6|#r&wkwFK$}N&B+QCjVZye3Wr@6J^7cWs} zC4H*4a|Rg9ny4*TH7TlTPtP)~*XkO&#!`F^6%+a5b*duYm59tzMaqe@TX3k__VV?z zmx&|<(!>zOp~7W!_2aiHv<0Qqg7}qggsa_R_2ZW*(3X33)X7YK30^=fxlC3%)e2JM zJz0(|C}i?*Cz>-`q9oDr`^$N;C(~PwImaVz9tXPMVjP@O_&7!-%Mlt!q2^-1`=1~` z)$?~%@dEs++QXA{6?_qXru5U{Z6x1Pomtgy1Fv)P1W;rl+Hb%#<8K^*>!$^uT%chG z>EpW)Uc3;=^E}{M3-aaxk%d<?|6gl^l3W0`VufojVjSJB99dG)#-Z&SdjWJ!n$F_k znp64ajg#;;tqyw~%A_jK6M>^c*SSpZfZ5dPGs{OAins8np9PiCFhL{Z(1YglvLaFB zJ5w2Of1p6%eg7@7{szh7E_Yd_DrNTu1H;XUYyF;{Q?WVc)qobJTlLhW^Xf`>l31Qc zRd?#xbI%<(HO~b@ixOb&eXuy^6~dHhpS|Km6MMLK1v;{V285-|TO|uRn>@CRF-W<X zwUvn^SIRp|foI=l3&Si00@Uq$xS7Xo=zlw%-tnC>^tG46Ufz`{8&@4DoeV9FXuLC@ zZu{;%*8yr&yc%wMB9rj43R&u|VXOkz-_6-xF8s7>{v<{FPj`EzZB>%*3%}a<=>~mM zeHsH}n+TmS9jk$|x5AGDY`)yg_@jtevk}bwW3!uAeFzxn{#=PBVTI<kOE8$b2=>qa z$|#l#Px+6Z5tkY<*_vtc?>7ZlH^l>EfNlrLyjag|QKkL|3IwpLMAcFcuT%JX@Ge7k zVfm^}Ma94<aM7iZA(p7mQh|}$`0JAj25AlDs;+IbGjSpFZToAP%<0l=(y;D@(!lOa z79_TmGwRP;9VprP)>3enzMiXvIt5L#-hcQ$Y}%OlCm&)8oFEGhGP|XM_Mjh`kcb~z zd?B#1LS;S&uGJ*AD?6N9VV!k#K7JRV1wDr>Q0||cw+H?v`epE1RE&%7wzGg0W#(-2 zCy=oQozqycuYz~VrWH|@bmn$oeu%V!nSyO_M3}XOGmKOqc)l<(h*X{W3@s$6HB7-` zdLjVhXE%h7-mT{0jEX>RVeOD$yD~Sscl&mgWuU93^l}|E6Fj**3M;3p&t9zU6*DoV z7^r+|Tfx`NiFnz3;eL?Q82)`&u7SfYJpNn7=ixK$0>~~~E3_4A_B``<_=+rIyMU-G zx2Wh(I;Ow1UCk7zv)4kwa{OP}edKAlW0`$U@C$ZaAKoYWdGsa*hSM+B)eyz6{Z$PS z_TG+GZ41ulWv_b`%Xg;a;MpB@e%zuZPi=KBnk)Vi*Ege;n)u)HfQFEPOc5mFiVi9` zz5jVKXgsk*tQ1dSlDzn72>VJ^-j;7)3yuT!ukuVA2PdZ3llzt5s-HgSW-q0buRG)2 zz>6f`L6Q0Eyn-}iW79~wdN4&QIxnK-JEW_W#mKfA!z174Sav!IluTgvYPX^0a_UK1 zQ%ft%E#^ME+Zu`YO^<>U&-+}4Si0_=9$hKkx689Hi0!K@+0Em{r)AHq$$@WE^1~ld zEqt{fT^F>5On02i6VenB7}mDwQ|Zn~6v?82cBGWaG9@)#8So`P*D0j?ayVY9roX9! zz?3%G<}D5`$8uq6h-(Y8P|L(znsig-B_t{;i(g6M3Xy>>+m2`aHfVR_evkit__j{b z`lrtY@jVyq)0fj&Xs1~Pzs6nl%P7Ql51w-WwMiDA-k*vVKb-!3;H9@3&cyU;Mf~AK zM!f>(UX6U_*rMdVXGYAoxx9`(V1mZO+ug*y4RV?{drZ&HI|ec7{O}NmZ}~%5sHR*z zAsFe?P?^=VP;MIYULP<d4D$$4%;kq}3NiiDKk8W^!Y(78UKMuj27#Tfk@RFP;Di`^ zaY|SrJ5}IB`$%p%bs8;<tx!>E+7cu1ybxgemu8LM7_3a%RUT2zI5OIjup2cv%UKO@ zMQnGbB9nJR4erd9ui)j4yScNdeHMI@xe3yJeIQ8pNlTqDK{9IZ)nDHT>&9w<S5^g{ zmb9-q^g_BVVT54lc0E#Nu9h2aNnW2izz?W<Wg{PyFwGnu(<x<2I!EZy^`Y2&k8VAT z9}JgVcT`6G8fj+B|AZ*_!H17`Hi~?Z++gn$bbsZC1X;*onf}}Ew_PP?j{(&vV=8_( zjhf%HsVU9QFipXhhWUlTuKHxynE%0n?24XeYIfGc*r7ugBay@{2ZtOBEkpSS4rYTD z)_h;=N6$<lcMlfyB!3KJIuz41$MLjNk5)q|l%5ZcxjTjvXTFrHaI!G83EZ<g_>}o{ z@*s^$ZZr2K4lGrVAzCrRwX;glA;~FI=QOkgFL>U%#lx;`W~+Sok!tDTO6PLnH?N6i z>0xxtqFF;I=)9^}kU%s2Nvo|wSkTSnDjlErteCSO`<+?y)X=lOWz~ROb#6Uwk;fME zpv*&-n0yIu3Zq3nh(KxgjGwJYvPJcN8q~ps<`V28<ImD8a|4Ibz)-km2aKy=KWDfy z-}a<95Zw<y3Jlw?|Hi70l`i`}chsmvAn0=)vVj=J{{$tFemc5ZEl_3Ks01AU9kHl} zw;d5zqe^SToIC8)&_&1-4~LV{Be6`TpO2}aCQ=j_8U#${i>d@L!If|bF~9t6^R9;! zsh*I^dGV7`^w*Ima4aGVZ{Wp_ya@;x=bRatU}2HpckBGL9%kSR+BQ--K1z=$Bx<rF zC?V^M3x)60^&R0n?M%T1;EM}Rv=d*=m5ShX>LM}BJR-?Ukx?C)yySN2w2em;`#$sN zcnu-uZDeuwO*Y!FZqa|vim9u0A97UpKwDX!#v3z5jOk@~eS9Emb5rPTk@~twnC1f8 zgXW=XD$@K1d(f}$`$n~Rva<&K<$bElyJC3lNrHK2eICyVO2Y;!5-3@5hZI)#ihax$ z>QL=T&l}oC21D11qeEE!vyPv;D~{ZzoZkL|Q$EpsX)>Rz8rK1cG%!KCkJ{O#O4~=8 ziCLozsPJ&e5l;ydul=idt#96DI&TNM!s})Z#v}`zPS0y)E8_9QDYbLLVNi++%GXIw z+7aM|<~#gZG(d*WVTxre>Eo8A%Obm4+-aVl&pdGk#8$ABkl_?La}Yw*T$e9J25P^1 zwcAKt_Y?_+NRL(d5gHVT^)?Cs%wcIZl1@XwQhx}odY`Ck1uumyFD#VTbaSHBIrXY; zJ-K*F(xIIzw-ijeQF=a;1MPI})$$SoTq;%A$?u1q*gu-Oeyj`dCRzG8Pe&n&@$BLE z07HO4K_Ph{I}3^<V2=36zOfC7p=4S6G|4ndNA;X{ovfiXWgz<V&w4^*8sp6VN|pX_ zWXR9y>VuJAK#_g)g5cBv%u^DLggzctAU>;}eq!K{nD%hZI%CsC-fK~uRS+7JOrI0; zFe!?%;Cg=Nb$o`kY+~}tq(Z2pXL*cu=9dMH!`Z8!u~$=nivPF|*%rk@g&o>al6G77 zheI=9U&ntx123_#0uS`b=wnB;{xZ5>0V5jEBF0uyjJ$p-_sINkx89&(+Sh+r!DxZ~ zsYqtSaRb{$kt?{uGc2U1LNERM?gJbti`wH6qAxG!?GuMSlEbnXhBU7Gi&aZvTVIC6 zWCU(oq=uKjzF@K5PtLG783pz!X;<L+SUqIhi)<;EceF9w%wx}hq<s(i`SgM(s{5_K zIiRr5kpedjoa~4D@LbWK!Zyt8bBWu?HP{*d9ui|19K&m*#1cTd9Kzi)l-xGeE6j8F zFinn?eC>!BWY{LbW*9N?_;Ug+Aey&HDXqM9$3*LR@zfA_GI=HKG&=oC|3R>50n_v% zOZ4KtGe;R@4Q0aWQ)ltAH5e`xi!f-4C*g3sK2HAsRt2`$$c89}5Yx<BS)P-Af4z9s z=_rSMl=CV}wDEoHdk{w1Uxoo$e>Ur<`rZq5lQb&Y8&bOr9K_$;kN`3asa$##A;Cdr zcK`x9U6_s%K6`p~{NcUnudF`9ef|o{jR~i3To0Ld7J4{M-c3xT;$Z+kkiVxX1g}ys zT7&N#sq$o)mUp45!LjxS)xYJ~)8e>t7-;EUir~y>xed%Mz<5x#lEkfCYb-sAqhLkP zjo!)Hu#?S1WgS0^U&tSii60sjN`;D@&K*pus?dgB+CfW2C=`bm9QREulD>UXn@tkW zyW`|gUwB+}S=^+1*woL5a*Cj}pRQ=tuF#_vNm-R|bYr*+7U$N$4}t^3^t6EeUdx!W zRptBNe^XA?mTGo}j!{<~4kQXlq(8Pqj~d9ghOT_mU3%f>tvHL|Ju>UEsNs-<3phnU z*e4oRJedvLp20MY6CW*bHEChaAwtI`$tV;DV*42Nr%1~vovudxtdp@16M;G1B)RV) zZQ2--M0JibLATzD3Unh)rEzJNTNt7}5$_21=^cv{i(H+ySx=0h2IYgwNEzI9)f-{G zNuYn-+ceotw!6XABagB2<EmbqpRfw8tf`GjyEs-PS}7Z;@vyR^Ng(JEm4c#Tlvox7 znrK$=HgVE4?}bp2-$l@`=?#^$@8<K*@DSVg1s#H%y7qMY?jx+{D+~_XvaIGJ4feLs z%fNvt=L!Ho^Nt?8bU-7077)Nhq9T(`nBSK54o$rH&;csDW3xW1B1hI#L1Q`)X%Hf6 z65*3+%0aq5IZXg=AZ2g^q2k-1I%ytaXDME&;ax+8S_PrqgeEXCX<e{Ki5jsdYT=-* zVym7fke>JK=43J|h3#!MCdEcWALp1P(eCt;s1|}X_rBo3{a<1A2XE5)dzj3<?rRfh zRk_21*!;?9xl~Clbb%{<Xw<D@@aHD=wwNDwVNczKO%6YFBS(b7V1SXNtr6agiDANq z!qe}XxHsl*%ixvqZutXoWb{4t1!#1JhRfR2%G8dJhl0ujLxQ3F$`rn6NSeN1q&?fD zHp)smyIL{-W?l7)5_7T?e<Johy38-ab9dByz}&cd?)G<2LIVr@F7Vo=`4e{+*pvK4 z=LFP(AkZG=`7Z{#Q&l7zRj00Hj*9|cQJG|Ijd(wtL%%ijZ#v2@n%<d1<H+8%!a`V2 z9m{941S{W*mG>W*a)j!}9`GuGsh<XbkM-R;#m99*vwgVtrKnP}=xxt4axtb#Wg)`D zoB9Aw^6_fAWb1hc628Fpo4W|l=v;$O1{Q9lMHvEy%(I&s3MS_68jf%k{+L5ZWDiQ@ zCs0COn91kb1;9v&^rjq}W*>XTJ+j4|Q|lR(%yfJcHFosH{hJzogn3Wsud9)(OeYc} zXFHEBYjH^W4Azr+^VdQ+Uq8Mr$y8&!2)d6qR0p&}PR-JNA!+yue8PALUF9v&mNAp8 z&rFy<-tXr%CQ%EguJ)95l}%jjCT85%pKTJhhuD8#utI$XR6+Svs=A%uo3uEbd^lI@ zc~eCU4>)S;1>m1#sOf&-U8a;jeIQRjGhI#DIaReWLEGQ3a_W%dkOTCeQR(#^4cfN$ zaZ<k~JooB--XD|~hg=7@KEgO?;hQ-y;dLbR9zg#ey1qKD>SycP1SF(ex*JI;5s>a~ zknV0IRN_cVcOAN=4js}+*P%f{I;ACj2mRgqy!U>d=P&;dappUFX7;SL_S$Q{oRzbi ze<XtG;1xf_h7J6rlJ{NPSUshxPbE}PnB6RpFL-t69@*KZtC!Rp`I^%+sz)qcubSY0 zZ0vrofZ83qUBPL$IixOuoF0Ja9M}WPk$UE|@ymTv>#g$1MDV~Wha3wifNU{eFmv{{ z^jv124R%047!#wYLNA1LI6z%E-stViin=G80|%oMBi9`~pV+p>!o-~=X}e{pz#5eI z_4DN10mf2mLccIpy#80ekNqzU)7C&uBO*{i24lxzL$l{9YD_<Da`J0T#<CxcFPX_f zwb9+YTA_qq@^o;yeb9D6QC?C=59`$CE3+p8U2xs=;9$H`iQwrHB_}2>XO8X&@Hj8n z-rj7G(qIvO?rp_UAojrhJYdIBUDc5sSO(N6eY(e^@YND~%-2X|JjO1Zg+;V9J;?kW zNKx4<E3Iu%L&$A=GIh~(U)~)0?3ho#I(`M)hJzC%)nV_mZhh0*Bd&!;yCs`5FH56< zOp=Rl`N0CAgFsF?^x*KjvrKotixuC^P*3%WR8Sa*Z7bJp&?cyN^I?*pfB$ikAY+qS zYYc>IHF4`<?P8OXfxsf-N|+$Vin3A<e4}&oHvUXo%{w6d^5Y$ds&Ntrh4~W_%{@C2 zxC8&dlOC@5{aH)@(dYC?eLijO(3iglQjMW!w!T%DdY7dwa?8OSMw-U)J!~svZ-qY_ zdv9)2+F)sq{CpLFq?HFTCjX^PNoBJKyd>i%^-<}CttZ#{8MJ@N^i55aLblKM0E;X; zc-PbccDXY2L$`3t`muoNNhxdV!$g-#fskg2Bih#0I==X$qGq<}XxACK!gl(SFm`Rb zDf>g(>;k}mz6q}xb2!Lp3gZ`28-Wk68GZzB9h32xC)w}Q#rtEA9vqqVcjyS=WH=!^ zL-Pap<^<aJLtn(@Ka7?_aNZ8ldmzyGG~&HuwjS+U${yH82XR#3Nt|eR*=XNa9NxQ> ztGFcKsm<NPhZ(7|V4&2Ef9fH9$nJiudfP$$I$W%C@%fR3nfrue7GXxEfCn{$VDVrd zddsuk?1)E(A1ykm!po55NfzqVZ`oXxm;b%AcA#@TlCbv4wBy|-o85p0+4&jZ|K{Od zP&PHV^M6T(6gCuI#*QB!iDzbmb!}n*g+yHv9yn7<>b6I3ww1PIZi8-Do>n5-;HUd+ zO|nks`<$3lYe@-B^k0p8(VL?Q0OYY$Wxa#!Z9P(nHBM77=iE}6Kv|>Qrr^RaDz}}` zwd5PIoMXn>bGls63U<JWdynXIS<%k>6QvD{2EH}s`x74N<Zg+nF;OH1+UVW*b7P&- z1RLwRhl55Q{nbY_k>-Re*T-r@n}E{_6?>7x&bM=YJSy-bmOZ}6<%8!$deV9B%z*}+ zX9t=T8J3U2oqjwbOY__Lob1v>%e}rJ|A$X@BTuf~TklQC&({n0_DOrP#$Tlt$>|l= z;}ZRIzNxyorIG6R8E=n&N6%{gRAfbKwfz~d811C=fuzvnSrPgmp(}4_*`(NB6?}3` z5}a!P`qU_sVko|0*lpbYStpwd=4)G7R}lL`Ql0&cqkr$Ah==G_DAG}B9Kx<vK$95t z1hmz{_4?w@k*Ujs)IeQL)<XHoMVaN``*)_*HHM=(X_FLoONh&-iE@LI4CA%hqp?(F z;?mOm2WctLPp$SFAB`+@;KWN~HC^o2m4sPCJhB_m`LWgw`3H0b<w1KQK<A7%M^<JY zVKePcmo-1=$9i@y-fZeWunKF&=2sQMPIs8GSi;IZY23kLeJD}7NQ;JD#eFg>td<?G zG&zymZTU7tC5Q4m@J9k1c|%fne4#!Kqs7$95xr)nir(|aW~5#?;c|&*$$aCeuHW_L z@o(4F-a_wjJ`ot_CCq;^mLuBd@sB}Dqxj@i!z<c^>BjRMKcz`VRO+6Yz$th)59?9> zQ^>@k_L*@|P628?=%TvcZ=K1LAB<L8_p@tKXm>qZs36>dljFxc-~&C~dg_5Y-kxDn z47O^b#8u6X;)!DA*{8Co#T$&Fr}m)zM_K)>WB(D5=h<s?JjW+(Btf4)88!0No!@)+ zkVOgDrnf!{sLfKnU9V|cawSa`;^Nf@4Z-Z-4yv6b;_GIrCrXQcW>FtXbl+)Uq%4MS zjiKSEWWvFYz-E{RYsENK&@199=4IQ%*zPkh93S}9wmqt{8tet@AyS`wG=x&&wow{^ zV6}(`nfObhG>Hs@S#n-QJ`Zs`v!>i`#u&~ARm(f<wPTzySFLn;lA}m+KanCUUDrC2 z<iDnWLGw-J!F+KB%GfK0Z)H52sQKBl(PRDv@8(@Tz%oA53`*MEbJ=CHNHm=N*<sbV zlh-n!Y#6_QB{oE3vU+j{o5aZp7AqvYW#+`ZImjBF*FqdWE*S>hR*(>(m!klbU6+2z zXq1~v<0UBZqXUDs5pDv&3#D-SXtl4}V?uiGR2};ZzD?96%Pts_T9X!Pv=IHsw>!2w zc`ys_E>d!m5t>~5pWC6tFO_JYo`Vf&{q8y@GyxkWnZ5@ia+BIUkec`OY}mjjjS3Xx z?sLrRr#zX}QYJC2RuZ9$Z<bpR(zN(ms3Rm5>_=wmdgFq#-ZI7Uo)lS{^^xq6Qg*H? z(YvXrF+4GD$MpDw(Sm&(RZ%zt)fQBYueQ2VshuJ7mY@}erB0?;i}uJP?~L%t$lr0| z#Ig6wLW1HZ2g(}V=9{P8HBP2if14fLXqU=lw|zTzUV69Kpx`2=%un(NjrHS_Y${TU z>zk~QAwl+$*D0tHLI@loa-CnOKLjKZ{DM3Q&qsuEo}zIrxV^o(emS7-@2<Y*JG^w2 zcCa2$b2XW%UQ+BfeX$QK?jJ#GlLuz=kN+zC`hmjF=AL_;;GDDc_b3g<VPKZF_thKJ zR*`#WO!4wFZkDb+E4!bT9+G2yx~V<wnC<j?no}bS!iq)5F+;$LgqA*juVa?O8s~(B zDadrG@^vbqP{(~Zt?J`3)6Ui<zIqb@U();?2D01lt??Hy#1AKjrY@58gb1h-HY_G% zwHG`xg`+GXwR!XFEwwsh-+~y0d9Ok7N;>{uNeu&Fvr7?Y0+_i|cjnJOn=z>=czG{{ z1hD)h52<>R%snagwrUCZV~HtP_~MP6wh$NTl}<<svXzuX@kK^gbDEv>jWN9b_``Dj z)?P1yl&GIfgQx0)cmdZaL(!Wb6)i1hWYdQTZwTtlCf-ZTs|D;Gw{cUUzKTW2!$+l< zIQ<?e#65Br6bYk@oBv+#Qw;qu!FP@DtwTSIoN}ZnBFyhd$wl&)<-ycYjLv}89f0F| z(iwobj4;JhwYz6GlBc`Yk^$TOEFGVD^=Dd-|2-|Pu9sOF`u5dg63MW<;Rj1?EX@*p zey(1v@^<@3v-IY<kXF9i(X(%}U{V9s)_bQ)^}a>+)Pzy6`c)#Kj}8;xcS{kj#a!S1 zR`@-okq==V=1T7@P+V=jwlbr->M;r7`uX$w{q6nTYx0qwDTS(juf9xEdTP|oznWF; zD;WPQcy9;geGv~#`w`Y0kCSQ{9BP$nk91L<N)pDEVeF{bD+-C(Cdg5np32^!NI-9E zuXD#4&%#S^pTxSr#$I%ZcXtm|v}0k)?PoWe<WC6q0`pgIg_o7j(8ArScBSx{W>ITd z7R?X1CuMF@)XJ9UzR_+&kN+CPahMfCf&+<<J4!6@h{myZOB3-s>yr<mOpeSHoW>H~ z^l`m&HbpXPb30Hv+Sjg;V|F%Qdf9rb29XID=i~#btBHbdG%X){7lxV@{f^huGYH{w zw9a^wGktcZ!Br9-|I<+<zOSw*QHc0CD#9Qt%Qv@F6F1qI?ZqIwbrPl@Rdbmwrr|4t zqu+~{r!O^lXf-OU5*HF<qSCy}$K@nB_?aZ}%3l@5b2t!&)h^T}e-q(;`}plVh|=D- zFc?Q0?V3&fSzU<tX7gY7VL8HWC`HQG-1m9rKytWAoRpJVY2L?U*lgYAPi`8U98G$8 zIB=-=$<O{xQHX&NymaELyC^pVgM-o`Qn*i8gl(yXC>I6?eQ7m6zOE;GIZwrHW}!n+ zL@XmdKd(EMn-w~s+3*5;+IHD8wb)pydaMpnzjSs*7b$~jVb+b$F?wH7taq-k#<@4N z9U4?D2eq#^qkrZX-~cz#(2U7Elqv4n`I>%<!ktDmk7+Ma@X{<Jl8fu_<f`6u7$>da zj@G(fd48_dxSh`RLDRh9iNDT)jQ)TR;(Yz9GEC<9N8<(p^X?42(M~2U-c0rEc-L+z zrKg>=_quVP`S;n44VUgXZBKk1G<Syw!L_tj^|aP>`RBaP{F{+?4<Q-xWC~?>k+RlW zw&z>K#k|OKh4{?vg2-TYn}+GHi{D*r{ON1+$DFQ8xl{|lzXl+E4~&X1P65^s-~4X2 z#zu}dHWTEKg{E&8&hUou>pdI|4}7kj1slD9GVHFW_WwvOdF~o9ncl5brJO2ycbi&{ zE(gg=Kfae936__=Hkyvd7X!j@WnrO9FIN;Gd}RJtbBI4Pw!Q0Y`R5}T1DzT^*9$dP ze4e*{8xO=@gUdGJKY9sDhzPmj+}<2yici2icGfq06hqD4#sC3F7hu0wU!A+2tMW4d zcgEBIP$m*TJ{?tl=VHyq@6w%-dpFEGPlgOn&l9<b<`(~6-;?!U0e-Gd=i{61;KLC9 z6_QH*RZ-gF49v6m-Ck~u{V)s^j`SnD`F&n=e`8YAqI@P+=hx4z*fB{UlLhXXP>8|> z((wG1$7Ek;j>U2Tz6aY@0f@hFdqyxMqyL;p`{F<S+(xxGp&PYz98Z(GF@O@V=J`ib z?_Vch^INd^U=*K+2H+fzyjEwHmM+iR{3UqJ(>*<Zz9M0gHFGsVO6DfchWK4OGdBrS zT=wk7d0o$cHa>e)&AC;pQ@i9d<k`I-Q2#k2QC+C<dEg-CUu`JphFri#`_liSK<C#F z7}MATus4kR?;5;mf;TSj&%W>?G%um2-!86CC(dRCbgD_ax!RGvPJShhfyPi%wjW97 z8l=;h$A(%%bE&MG$l9Lm$o5qqZxFrf7MwjWMM?$=u0IBu5|d(Py%bFu;Dea<Qh<?s zI%hxjF2sr5SlxNctMvTXxoAh+T3X*q1k}XR^2B&cj%i{a&h3SHe6A5GTR{z0-;~l7 zV<AvI!usrEZAY(cyZpRW8EBns5Kc!=368usp+wIZr(GX7OoybWlMztLNcn?mwlv3T zHe&Y$SAos=_wwhD9%}NwKNi5h``f=gJflQ=#>LF8@)eu+8$BF<Q<p*dtDh^3yC&Aq z+BF_QBuApGru2W0?6qwA>dmG2sw#W;N~hNsX;^(o+@!fu-QDUUT^JGE=;XA1h%@i_ zE-M!mEG{1iKcV1eQg8Z4O=B$Dvh=*z97vO5bWd*sdPppzsrD_Py%GDFLxJ906uy6t zG#rjl($MR2Z~cW9>eLrViBV^G-+=5cGOnZU{GgBXxFz69Bd5kGu@;{p2QzW{+}=|1 z_xbO)LV0ht^C<J-V(A2pA477->k%M2BpQCf)W~I=r)lWbdAUm>0?96N<b52SU}UAB zK~XQ!QN_w65pd9ac2h0}luWu>YkODI9FA|t3$NART$|uH#d&*roF8rWU~m}bgQ|Ac z^U_$-(COe_Wc0xMU^sDc_*C7$eQ>>AEj{xeW%y3`Dv;|RZL}$l5Kc;#;Le=Si?bG` zI&uEz6j5NX_4-&?yEABUIAJn@DK&WgRxgQJYLiEKF|irbLk~B_k?ZknT^YONkrGv& zZ$EqV#k!FB>~YwxRWX5hF#y;pID@=5wZwu+`TM*gZL%Qy2jAcn*G?yI;mmLP1SzXy z7Z(S%DVZp-MT?W_N%<$QN_KJ~8EGxJ%v3~7nv7@PgAkL9c^E>TA}w)_G$Se?h5Tu4 z3|jgDo%5|D##PZGrBRcI--f7bBJjEANwTDFD`A`zJ9TzAo>R=xr6A5JcH2weba_dw zhM$Ej&W*fenZD?r^tY{}30ksup~=-emCPP9D4VvJQJ3s92NAFmn0hnTPTE`{csgpv z{_6l3_x{sKBMQC)MLL#S%dU)}x2Hs{<{V-^3$Qe$7vf^RhslE-AHpGZ{o$On6M@1e zo4q;u+s53BDfMAm5LsqGiC9XZioWL{d^)PL)aqZxdbe9sz)|UxpAX^jtolS+99@C> zKHR&<mk=~9{Kv(<Z~Iiq)}N!nvV#R{X=c#&SsFRg?BUsMdN{RCAw;5+(@5Q%IqJpp zXD0+NHz3O8^m<_LSQvusWs1>%Iyzz~O!CsVs?Gm=8^+WDGA^kG!q5PfUw4OK-GSi_ z$pv4jr?-1P)F;sVvF-q2mfec0R9Ok^%zm+k3{4as)jrVn8%wr}w2THWmI}A+^YZSE zD9`2A9SjLjA7<F4*~YUIOz~H@dsV&iWzwj~Zo7h*0~8(?eC<}%cw&{)Mp|r<(>Eno z`=$e=XH^Wcdtz&?K8$8HKf%5@Lo>Kh`=Z-^6tJY6!r2wfm~ob8{_!v!F@Bu|y{S4V z@22^17&89i8Nt5p>1*P*g%K?wxhm=p<8<gt5wz;&&53ijUwT`9-S;zTpCe#$;kXO8 zyMiK>zEIFOlgPZFDugAbY|Z^Sp5_2@^o9p(pF6{)l0HbOh!Z+0XN(&+usBt4#by)l z{*~<u5UXIebF&vln0n~wq-i}}A|-OZx0g=}@K)Bhl1pjfojj+F-g}{{;^}jb9}gLT zoMWv(alMG7Dg~!3JGcmkfP3Cx+`-ER>Z0~cjt?<HbJiB~oU*d4sdU54*@?8UDYt19 zwXkzpl5jVw6IV1F2naDA0F#iaFu}xMnv*S$nCAJLhqqa0{fbr0J&MLk_?C<33zr1y z$$0#n&Q)Ad^o;qUDEfvhjhxif;^OeK)w}v)lSqjcU4P{7PYfW^dqn9ox)@!d7d85T zl3>=5;0E%*w7=%Hq1u(CI`s1m9Qzm}!zg?8dj-4Grr$QG`^<%E^gg_PE(kXX$k!Ep z{GfcORraoT8&4XR5Dp*D>D*$A&*>cQN8>0>yeC4FA<(cSDaJA@Bq)4t)q*J`dkBJv zuB6G-$eO*Jr_O~sD;>rE%wmR2vW*NxUY~)rj}iDDlap~SX|gtNEA69=iAEbecJjRu z7<1G0E~Ikg_evYg6(d@oMR3aBukKXmz2y99+AfQ9f<<8mSkvfA7pHvKmQ7uifNIdB zJ%O+vpTtYbMf3iGs)o*??qomfkq;pTA5}^p6TjNROwah%Kt3-~A|A{Tg3L1AVJ}uz znNYh*85L574!>9QAml>wn9TJ>0%%ff$3&P#k{%o+(QQcIP_LTNnc%${^KN^H>h+U< zIbHYdo+z0%OB>-zl-Zo?&8R@XfX0HkimAc)^ITUkcOH;PvyQ+bqziq2-(a}VDlCZ< z84dF}6rz|ZMfJAMKKtE-neC%&SCU%7GWtvj8`v1T>5UX)|2;d}asS^}i2PYXHP16C zYHMMmd^|OrYiV-^>^8&Z@@A+Z*dI#cJfyWL5W|FcAdZ`g5Y+pG-q8b^CAlX`R%grY z0hS5tjC$GYG3NSsmKW{fbHR4jMu%Di7bQ<1d9P@*RbPHkpOa!FVa3b9vAKOrVHyi6 zgI8ecb-a@cWg5RaNmYyMF~lviK+f`W>}VKW+;B{Pb>(W&tZZ#gA<1rQ=n%0lQXx7} zi{ZR%jySkK*d$~ds{XJGqYKrhLMuC^G(9f%pqfword0J4bqnk6^cJ*A)HcQ-)m;1d zJUcrH-+Uh)_(h6CFXp5^HeA~MU7sJbkaeV`{+^D$e?qABJU9S!UN|@=J)C_2nMwWm z$yYoL*ct!LN26x9pmsO?0gZw+^Iek5_tQ%z#T4bN^=$ned+kT>(%!z{i6Y3HXAk@S zxVXSdYwU)~SAG1D+;pC&m~M6~_!|Uxo3Y$=c6}-wZZGoTS6M1+r=xRIb7`vcvYvF0 zNcMKGF<62H8wu*muo4m_vOs&T?Ga@mwI1B{Q+YHV^c1+N29TB-%bLAkT5NeXtXU(^ zLP%2Y$#yaV|Gp^bX3nLgQ|jhN6{rRv!)^!5+h3x#t!bMGKl5#t%d77<-H(efC9psy zF0E0sY2ZqYSuKtEm~Sg+YZ()kfL1261zmd>I7gg95+PLc^hqy)d`2lI?2?n`m$3n3 zNrg_#*R(Wgq-H5Pq5a$m>W%vs?Fi%BdWFJkib(zR3sx0pq;AaligT_{>sqiyk^d&7 zI2<b%z{Z?|KF5FPS-p0U09|+MQRAkEpQSl7Lmt*V;`6O8!HXTk&TS*gEKvcF+6|@v zeV&ReeHXn3S(kiCYmhe?PNiHRQ9t?1F`)YS7*^O52cxM$<3mTS?hVMlo*13uNW(t+ zz{=rGPu(2%i(otHr-d3cpt-)Kg+`d_VYR&BZrZy~T<V|IafzP})iiv>r+rv4^yC?G zy2|>eoNsHNIr!tcKA_LXL7!AS+Y0h<_ZwAGMQu-?2<^!W<tllfJr{XR82nj>4c_<x z!?_WhK1R6=Wf*)Wl>)jMzycUq5lhA}V2u!iGIWo9RjRJ!u?7~Je8gQ?4i3Jl!Joli zJecQdBSH!xpV<7uy{&4`-=MTR(hKR}*;@IznS8B|8t``h1C4;Zvwi#AXn2<fI<73a z{dW5A(_j7`MB(icVz1$lA_w6#1sSBTf4ZK7OrzU-GbH4LoLzhArM5xIvu5fo=S85Q znJOME$J-MS!4{DBorEau@Sp^}&kQok1+OY|$vb%+EeB>IeSpBlN8yhzlX)<^gU!dx zY0J?lO)_WdYAH6}_wautC917O-3V;a66dA~F?Qy>u!7w?sSh{8P}Hv}iYNk2?8T!t z31Uj*f9rm<nTkYV?Vz?^*X4Dud`6h$hEpz&Iz*yp6Tf4bp}Qa#^ae6lx7Rp@8yGd= z2l7{v*>p2%W!s0GY&+KX`}hYY#5jpxU7L*e9-%4;Q=nw`swGSos(T65Sif6N_X$Y$ zb>;G^lE<+{WHsw>U>vO%`b;;Mo}Z1zIlIyn7K||_8mr<|KbIr)7HKZ;&R5KU9KGAA zZ`AIaABO0&f1U~&pCNP8PdgRYDrfiE9Lb!G{98u$=CV_9qP_*S7pq|rG*KaWv=S8A zBL2*_nn7xgo~@CH{fz<MEDwPaPCjLh!GXot+p^FRx7I4Gs6w6cB8btNWk}53=k`)M z;507d5Sm^V|Du4i6jqJDv-ERPc|%Buj5Cyz3K-SB;0otK%aJ)Q@_wE+7x3EdRh|vr z(=F77?pKq^gsRZW;H6iS1x?ry)jgi7omRIb6sDcvM5MGDp>(&*H=cMz(Z%-2tY!-5 zWRz!sWd$vQOHI$G(5_9@L7!O?eF&*_teQd9o8DmjsmJ9RQ<z)^{rpF}W)~$q+v8)B zc<dBYn!XBrAFpxq3cm|%zX9mE*f$`@%KfL3kD_E+%r5xZd22Sd*d8Z)HUs|Ff`E#C zEoY-ie0r&1D5ObqKGF~QZT1tZ<0kg2dQuqjha%hiq9(Sr&u%D+zc#*`qEB{F0T0W; zlxA>^rw5vG9O*SY3oup??U(Yqfn}^y<Xqm~>OXoItO*($E$NVL#GN}|`o39T(LK_l z58q#y86JQU5}`Y>bE1qLi*<Hv=AGHj`c$Xed$crlKdar6F>ih^kzEur7CDd!dbdVp zfV)@mgA1t{*~ZHEUDAqG=b^|#NUe4`ZugU-PI~-rJjFrA8Z|eL%yxiXb!Mt?pn^>7 zd5av3T_6Jmq3%p6B*8;1lJiUcHX6#0x4|7QVQKBZs=6<qrP%)3yK4wA_s<Ke%3J89 zYxng@5ivxYTmnm%MRy>>-AJ(=W7Q%seXdY(v8BJdZl~kr-h7=_9wvjk=LzcDrD1)o ze#VP-dxD%R{8U1%&ztS^$wDOb(mue8&oojAoy5AYfEIz>B_6aAEaMg^D8{dGfm7E{ z$j&+GOC<~HtZ|h<))CiU4xuDoD9R?hE+e)6Vdr#j6Ce&U+g|yR?2Cs=ZB!sD1X6|A zYN79++S{_nuCrB`(XHiyc~sqky{GE5E2vq2SaLu;An&73p6Ys)?F>vYP@*psPX(1| zY(aGJAmJN6J^}76v}^H(*OaD2BgCcO)Mk?OKISghk%4Vv^%u)g>7(~9+?7;eOYHac zVpI@v`?1CEvLyzK5JmeO)|9wQi<C<Bwn0eWyfdawCgV3Jq+q68Rode@UQ<W~`6f5~ z0eE6ufTv3##r&7AARkLZQh)1bX=h_MT(sAHbm0G63O5a}_@UMD@02ZQW}9D3Op)ij z*(UTN><}7=D(ep<_wpsaneK=3?AEci;6XB#((*zzFr9HjAv^g4=x9X>NfaWRK&xmY zWfYcd)6$CDf~M>-o(f5)lIj?%RFmphvbVCd^Rip3ycE)`krb7>!;-)=iy~(eN@syS za`eX5Bk_pS;QOS9QVzr_pLA=@NymD2Q)(7Dh=x0m(>k0fKjD?NoK-YoN!P9Auz@D# znyRiz^A94ozL43-JdP*WpuUZ5Z37}9{`|3-W5LhsQMpv8wJPO>SsY9>1%hhEu2Z6c zUS?O;&)3wHIPd)gARpM2WNR^PD;q~9{6>PPE`Ax&q>QBRuoyd~#ce>x<zg(7ZlH#f z4Z?^qq8Czg(iOibkv~$+NV7l&wOng66_Tef3LtYcgW-M~r7{tDcJHh!{P@1N+BtfC z(q~i1D1nPPNeVbaDuHLJF<+o~<s*1Hq=cU9&RvX`;9H?(zaDdkr3X!{0@9Oz-O>r9 z$XsPIT#B}&sYiLaC=_j5VkwC)87xq)s?rm7rK62r@M}p`Ccjd<dp*;9hGY<ZW%ia> z-b%g~_}j*j^K(PiP&fx}s0Se&b$79`$n5O=fJeB63$<aQ7I;5GVF(*sCovC@v*LD7 z45Vm{m33p!a&Q-k22c`>70ZlhhWLrIo;DdIIQd!5hZNp?BP2KNBm~MG@|#U}RMAu+ z+~*_U1k@Q&)uBM@2DMvzx4gm$!S^XEvCg{FzwzWgz<O>t_8usiMJoox+*Ex0=(#+m z^^Y&0YqUU3rjD@l`BORNpz_K5C$)N33hIA(`j3H*6$L-vlXW|WqkM_vz!d`Jy{1zD ztHc;np`!-LbB~8_ede?nlrYbgmDm)qy|36@xnUyMeahNE2(m!v0$~Jo(k5IeE%<h2 z?R;o0xfT5kv~@D}0d}m#I4qE{d;(?gtYd|hu%adps^&qq4aGvd2)zqYsX3Q$UOcbm zQAohZW)?$t>mcjOa)#4ZLv3<E-=(VN>ad?>`preeWt6(WYk*k<-3~i_?4$bT=v%JG zu>v&MH^B#V5V4O>WgLPVT|k`MtAL0%W4B)+pH@3#d8Q#SY4b497Jx*5z_LO}B+3%k za9bA27^ffw4x83fST!wZY|6lYs`MJp@*sMQAt20Hs7AFpz!e74rj|fhN9a^i+@OwB zXH?l7Qh;)|d0bFmkb&r4DHPW1q7V^>urYad)H`+nUZnLg1rqTS?z@Jn%8lL~`F8yh zNpmqp^g05Vpq-AwGlcmHp8wIeoK5FqbB%AL1MAQ`h0D)P?UQ<J>T5k8frn#D(j?m1 z1x(r8yK^d)39uTlatZU-b;B&I5$s)Ts4kehjsTa^0vkU-$Szo`k~+5Q>*L=KBHZGI z7iabej=kxdL6wZXVWtl8Xd(o3U5o_^@*D&c3Xy#|->dig{ZyZyP|*GTCZPRKBvLKu zGA+}iEBU&d_5`S6iXjN@*gREqA#SG+VVps-BQ!n$4s}WH&%~%!%Hur45U~#93;~j^ zesoK_!xrjQ>bCCWZP#BXAq$DZWzp(eVh|z@Q`#bw>TWDMM!}+q{%G*p>i1<}_O&86 zwX<=2`VtF8AYBz6w(aVy8a|m&ridqTBPU-z{8<$Nx9_t88IHruZh!Hm^uhf4WNjg7 z<BPBqHH&^<&n%HgrQ>2_nAglaCVgShQ>BvPCJdd65>owbqW3%f=$<rzTENRCKI)`G zoZj+`K!%B2bXGgfN>>G+uApxO%4iA`zfjvBsAcueHlqMHW7*n_t-(S|VCBcPVp|DC zd{}k?>S%-VZQyMZne6;Mvz6US=&~7N_M4o&M<Op|iY<He19?}*^Sdb6aj(1^p2+TE zd?$;)&NaKwTREHPZfgkS#0}DSzqtJ@XRwZp{ga_RhRR=>G8bbTN(EZ1Zo~CZ+(&up zQ0)_HUfo@XK-T*E_WTo^evjt-TdO}wKUcc<W>NH)Y`_C007Y#oPvC@p!0Q%nRBd~E zx>l;i#TI6hvCOhQGcyi7ovd2!lFuSaC~O6h>ZdV>4GDD=p%-7_1M6ktKUT1L@r(TO zP||}oFQ8*iuyjV<JV=MtHg?GiU5lrA5Pr>pl{k(E!3Tc#F<a(2gHxj9^R>}oPX5cd z8J(67sZ|q&8pfrqyy4q=S=wMf>fOqH4O_wZXwOQ35n9l++R8;BV+(i&jiUiQo@<Qb z{h0dT`(@tJS4J9IadC>>Z%*%Z845g_?56SfF6~wt4;4elSFya?qc#;cYcjqb?`Pob z40!)OiNF^!d5=>cHUlM9u5jp{k69)Gv1lU^Lh60V^1c|Jv})0{V<niiAmY`>3T-y? zx;Qt4($ep}KCa@AP`^d?LOK^vY-BEQ?<=riES|W}%|FiH75a{qr7WTMONmY=32wC5 z#thP^d1~IFW2;iDsWTkwwY?7K_tgr9t?B-Wqw1%s^SwmX2)aW=F4MJGqqa4V^(oxb zCCl7~2Wy@PaS3jy^%6HCQMA|_VAwz7SpotMQH85?GRCVaCD<f+zvaaS+wbt=G{8zM z3e+E*S+e$))-EK|(m(FXnN$v^qy1q+Hn6raYU_q%TT#U(VeKXj$8f74@~|okjm$H8 z2TF263r<SzH)v4SJVbTK&zHMp<n4T4AS3Z<poXF`%;6hCU#5m+Lgt!6e<ux2N+4@? zm>!B`qEcCVQp#i<nNsLQ6)y$sFQx?Ep8R;;%wZYkDh9F>Xv?3gJYw5;Y$NaT)F4qI z9LuQ*rJ}7TM@8n&o)RVsdCeNk!orn9wZ#;g>X-w^CJtv_@h-*Q49RTdcG*7pNnu%X zFx550KgtTLids4?sboTk=%R1|7X`5_sH`IovR!^#P(>vc?;{Og@7FcpSxc}<E^e_9 zi+}lQS$=DJ<$BW!dciIyr(NK=*p{o%`;L@}w<y9nfIFBA`zmCM$wxm8<H29v4ERof zcJQM4z}u6bl7`RotB=U$3V=v+h^rIs9vni?&^l;<rNc*3nRO&%Tu!s7S-4E*N4aJX zNB<M$QW~TVc`t&k>g>wGz$ihN*}u*Ke_xGvB;eQA?{s=|SP~y880W3XNs$3j7BjG- zu8cYxB+^AV_i|o~c@_Fyjhf*pK_0cd)WiSfH@JS0&X*lpzdXCyk^JP(VBuAiq>1`e zjpeJe9FjDk&`d-+;2=8`UEBl2Tr@r}&Z6Vwx@jzI+e#ov&JM@hv+$R&`aP#6?5|Yv zea%S&_R-+2MfkVFQeT|5rqIc^-?!Ra`rz!0d^sNRxVm;y`<3xhhfUlM$;6HMo13N_ zVzItbK+A?wXTzoef}2AuEMn07Hm@<&;OO|%bUFQ5>oqqjdAFV%kWDeY?s?JJey=jK z$VGqo8t_FDbqP^?9EpD@G7kQ~*8xLyxi>xXv;pc%68ylAtZcwL^M{z`cP&w#K*GBw zAh)w;hReB=<<f`izaD14?%cT^4(e^YNhuD)7_$ndALe~|(%qzKt<L!AuuDj>?<D!Z zW_8CQU+mDq3uI!7vK?7uhbCoYJi#X3!HnT!0F)!y;Wp4mNY({LHE>c1o%~4r!5D3m zVm<u`v-gfnJJ#A>l?j`~lBn~a@N~HrSuo%b35=ru@5SL9|8w7uf&UF;GJz+MCUJ0# z+?~H5qWa?g503DTYc;)-l7JuT|MN4ZIp6;*%0F=be^a`Sb$?t%{*oU5W|sfj&Cu8D z{xSFX`+war>v#F~zsSyoe_5;i3Gx5vX~=`TkM~cqaz`Jl{x#wHr>h_FV~?=A-vj8y zyPvs}m4KLGu(1CB_+(`3A$-DJ<H{FxEvM_hIsx6}2&{aD2Y~PZ#0!%2zd6zWm~V0l zY2z>VvaBh&i(hNM7S0k-&j6<^!5gfV(RQsmy$o1?QefpG^?!|SbQanUb+%Iw+zo%x z=JK8*J5cV~|1pu#+56pguCh`{aBI<g^#6525THqTA?Te?)zac`A+0Y6mj27n9-cd1 z>`7z&TPr}zQYimlUwET???!-s9I(R!mYH;K&Nf!|X-=0@f1uw@|H<<Iv7+ht0BcR) zSJ{T%i1h1SMnze5EK<&z-qGNR{=f6Wfwzb0<v(ZA|122i1LHNY(U_Z1ti6VsJ<mfK zT%IIzEU?5x0sf}sH9erE2UQ>q?D#awpzqgztr~{V2{;-2y-$w8-W4`zqFh*NqXPKg zD+V&5+dWN&{Ivs;1xfR<@Tysj5)3OnTfDo??XkL1K_!06nAw5VuJLH@jfB>uqH3~( z5f*YO`OhftP4YJ)M+6$8w0(>oVQjx|cL13b2N?AO=HFoB#o@1h7SnbH)c08(>cgW> za?zylJ{?{05MGTQaJXvF;2cZv7KMVrhYej_d3-i#dSI%=v1R`xWWEUCy2XDnfq#cH zcztJ*-uU=!bWpmd&o6lcYTPLP?grFo_`~|z*1{Qkx8DK!`UjE}-P3-_aTC|(u<8o= zl2FRJGA`0HpbkKd3{9b4ns@;C%uNz2;fe3$03Ha$9mJu?O;+E>+xv~F`B{I9`S<1_ zTW$Y4XWTBO7KG?)y;OBgFzDcFI|=X2<q0|g0pV5smNtL<;zHdw50Uo+qul<oP5<7s z05HKUFHDq>;inmUEKC_+XrQ81{E9a)wC0z=tZj*U5d8ik2Hv+Wk%HLJ`~0ge>nKJS zgfW|7X}nd%bs=!|oZ?v!SeFc@W^o>e#Sg)I9)rEXm5Kt})T~K7G1V2wr-m6-dNc?b zJxZ!gF{S)?B4J8_X!E6wGR<R|9Zr1nPcvU?zqh;DaP>HMhSmXuRcUL2wPJ6tY)n!F zDf#7phDSjgsW<qrKqmt868ZMb|DFA2q|)o~f`vM0oPv(N&u8#)iy!clcgb63aq#cq zT;|6)@lP+0ajN0ioYFoJ%-N8dbDS=G6N;dI6DQnh6l#>B${U}kj#^FVp`UMf(cb+t z*xNEmn!xmBjJv7QT-dLnvM2;savqUN>>#6X;4f!A&F{X0SX4-gfdX?}V!5d4N&4_p z)5OU5?GuU#BeSM%Ak^CZ4NPz#tWys3vT5!OEiI=2&B(oE315iA!xJipuMV(0OGI;x z&nzJ0W>^YC*y#5(OB(yA93MbTn}Sib{GS^t?WOl75GG_3Iw`i|ACL!%ki{{njqVnp zP+h>_#gF;343_I{-&?*YKr@DKb2u(MQ6z^giin~$1tf$D)UxwO^iXu%gX^j$gOqm= zyg1D%C3485Re6l3BcG?Wc9<pff3+=m($j~IRHmO6gr4am`=;bcgq`5$?OLxo%Y)@- z40DOH-r=Twa{?5mDy6n{Gf~%531k}O{63eDqGJ?L-EPhX@tT_B+R$(!caEnOjSD!k zVL|nrub%S@lpP)4-Yz;)BBWUY{^P&oM&21@DfcO|mCz|-7nj<w%Z$6_7eLH~#S7%j zQBv2+b&>VI>Uu3zWP{Bkwgp^!lN@o?)4CFrca+w^eM*o;;00tfV9y&zvKM9mFqVN? zEb0N{i{eKN{ye6a@W<p2;|xa0X;Fxn!rzbNWlvUl7tSDfZ2iT~8y~l4jA1B~r0Ayc zEYy3+V~Hko^}B~@w)yi>t5J}ELt-G|+qbr+6uSG<4kNaeu$+v6dfE<f5$l_7?(eUu z8JIPEdZz^UnH~X`4&ch~E}ehhcL@a$(cVDPOaImnvbm%%vkn1un01JRp$>*x(({MP z?<=U|d2vO8=)X@&NI7F*D35PJF%Ua9Wz`YfUZ+s=3_eE@(J-NSyA5UMh!5tav9^ff z>2%b04OHvY7^^L)->$dqW3-L>B(w10&C;kR{jj~dmPyJqHHE1(SRk#`>spGoee!z0 zw>?s<3~L9QKT?qP2bC^tUN(L1&tgm}&l5wU82EdM{`)9EExZ%-lrFyw4Fi4FjX6a= zD2Q8^!0$aOwfrz4%4z!?{sTyUGLo`HaVkDA*y}j)<UuIS$^`;(zB=bDm)~<PR!~(G zQtQP<gLZopSXc5ntYQ<1p|i-n*;&Z$cP7}i!rdse2qt2qFny&_t$PhbJ{@{AUmeIu z1uN7`^-h7l%(O|}P8K^`=TO-%L14^NPL~AHqaWS7SKKu_SH&&K9A0Sl&e)OuXPyMK zPjaQOB4J@tC+J70u_E{0mdkV`fyq~o^o}*krz7vnbl!|@3HV%6r{NH;FO{Vd-qg6L zq@ZAnO8jYNi}CMSpG=FL*7r<4`4slbQr8rhQZv6yW1hYysL()z)uBN-lYj(+B2bB) zdl$1@jOrtQ4VHxrx;VZ<yx4_Ls1D8!sIUJ#rfN2(JkOBLpa}{bxE|qpTN-s3Y~T%k zBuNp-fZ4TUh-!>jyN9vzZh^}rT|LduB1q~gnrkhP#UrRcrR-_Mc%HtzzPfT?P>$c# z?J0aldg3h9++_&e$0;GB&QWh{0J&bsw|vR5*wAQN*;J?=3YWl`#|$wlcd{y*a2tCz zOcOh<k%YnV`0pd(U)hm@qR?c<YEmPQ9(qs}Li#X6{7;HUs%h`6@;bvwiQ<XWsk^1~ z@rb{MaVlQzK;3hXs;LGu7v7Nu7Qb*X-4%T9ZJB=<uB%`S{e0#*wf<NPNn5C7mZedt z6>F=%Soz3hJ7-uHxhYFQ*Y{vbzD0XRXWO=aT^TUwDleYVak$GATH7txXXB?$eA{5< zvs0f|)(Zd^(q#G9O%D3=G6MxNwzRll;I|&~U&jJybTQh7XF=htu;F|;-Lnn-h#-Cq zxOe~Vq8to4b#K}3x50RnZLAM)oqD@DWvGgzmhPX9Uc)iS7)eB^+%^4$YPwkHzD4@z z`v_Q`uBO_OsHcH@n!^l4-5_;aM9f#NotIUK=7esN?yRlo<*sn3vh~UoJ7=-{4p9W+ zE~hpAt70*X*wxlaH>}+F>$Gu3m>P@k)h&!5<SOXLgJCyE1;tEACk_>Nw8IMtSguP@ zJ*M~%ivj$k_~J!LW2hF>o+Mp2Ysisw5sMsB^3(si!ak9D@6T(Rj(rpcKy54+C*}u0 zfZCP7UtL^42{~0532J!aADmjGnyMcZ-XrSIDL*W{xAC+pkn72zg5NvBaZyHF7Yrda zzY4mqIz(McTueJd5*dvb))QhVi_Tc4e8XfTDTcsV(MfyA{(0;*j|}aEEqyu5@GAA| zap@ll%+=P3CHo&(k29YNY!8Qj=AhKPXX0Am-k5M2u3+P{T%RTdF&6UOpHwN)Zwzmx zK^(AVv5<o|lzTzQ3pECxnrUc`5$SO=z&NFllK%k_|CMutnwg;i7rOVP-o_^rn-?*3 z5+*tXi^XLc$Brrwz>e59M1IY`fo<9q{~$^rn&f=->QRHyrJjY6Yf|50F^o&QTz)_F zr^H6j{SkC=)#0O;uR;<qMdsBPd;n4#WUs8o2mcz>nS&T({=w@BMNW0f;tDuJisaMT zEzB6s$0*%dH-Ly^{((lS3w-e+{6Y~z0z-SK7nhDvY^H~|5VP7D^uzf9Yv}2rmpN-( zi!QI-d#v6@(+0rVHHaD9-e}Ukg3BatHd?C?nMYx8VE)&J@)zRD`&CF?#~zBM)@B+1 z$uLsc%*eH*Rwn=*u_Ia5#D+yA7aF^o^**#H3RE2-I-!N=j@UT_>Ay*WBG8o;88f+y ziq$kyqdMY(en$A8w+CN7$Bg4Sfzc60z=t#e0<?+ep(<E9FwQuPSMm;h4Oz5Lsq{_V zX7+{5BvS#dj#Ke#3BenKuo~~!l8gfnuN>ABX*D@licp#&W0c;t2YiT!4JE_~&OE;s z)U8IbujE|0vS9zmWPmxiYG30Qp$n$T&LHJD@=TTwj)HVHtl{=>jgkZfp~+y2;QsF+ zm~vnSe2}!HpDNrlPaGX-ap0EtzqnGWHPNCX)oNWr8NEGV<h%tZqp=4Q7a#Bs41%6l zW4MT+*F=wtL0ed*(cSEwCLT3#;#P<6t2{=cpsM<?n62s$CWK#@bV*M`Wv&1j)MT^r ziBiTVEhMt*T3lFK+7`5{cGRoY)-C-sBCs>}x+&<T$3TwDuc4<~Cs@JS+ze>{Tl9@w zKrwt-_YFSSx`NDrrfqX8TcZ`oY$ZqH00Lr&GLRW{Z7XR9E2iiBiOD##BKNF|AsJ~K zwHKxIRr5zHcZHdVZA(jP#tRB$+{n;cbfd!`i6(`9VWp&@AqhO{n>feA$(EQn!JaIO z4dfaCVI9)uW+RB3xfh{spM9R;Z3)$VcSBEg)zNIpqc7T550)-T+Ap;u!6VsxPZB&G za^ReY9v9m*5$GJ&_#q5IIWLwK(c@hEa|{5UVa^3ZD3~?&^~umA<wWepWBnwqs`H~G z1Y8O*ElUe(Tt?mhW8R-gt*IU@x;dR=#WCX>S>%bm{pxGQUaSl9!|d1SLQhQPJwkX@ zBrW(WIVR=GW*U)1?Qshuinz+AWLFa6?sEue4Ajz!tBVs8+ps0F@w!IOP?0==`e;98 zj+4mc7gaii{Fz$^gBG>1r=r}hH6x6J!c<SALe~{*9AretYl~Z<8n2lIJ;$t~qmqx{ z5Fz*&Ntl)7Ud&p8p=DQ4;tEh?m8MvA)~8J<l@^SYkv4+zjN`Tb5uO*W%B8lA%F_z+ z8y~w+4=W~0a}v|1ilvJf|M#QQIbV%GMCl=&VmRY!Am32FO^}-WVKH)6{|7)g*}?kX z!x)M%@7~5}Sb@)t#b~8Vh4i@?W3`?5Xlf`7ZLD+qScz%h3Gq$bmcC&W9w6bB|7GL( zsJQG3D3Wyy?4F`DIcn}HjPR7D6D9h29kR&5)4wNI>5X+Lx5d|Yf3T9V`j!+lDTpQ7 zWA?a7yuiyX0raFJyrIWc+~~^h*ba&~Cxh)2{+wG{s)~4VGiJd0y>iHkerjT4zqMXm z=NHI&z{5<zks0-=&|Vp2T{6ze*0UjDfG)3=ox+szzf%7UZ~D=}N~kB7ZTz~<z$+F^ zjbv<Y+&Znu`tsTLI(3fC;1Ss=e)9=i+(s;2Zf+MZf?}x4Pn1>hN&emW-)=vKEW~<Y zhf|O>>&Qn(G5ba=EJAu=u|-d-rQ$GHS(msY5|DBEM{7DAGtvz|j2)b`F&o;gYPA$I z3m#A`(x~^7>~Bvg$eX{0!hmv+gKO{u+;Oo+LtaMANVE^<zaG9~TToMO^0S{y?Kfi) zv#&6+Q;&WFfJG-uu?B=o5fJ;MDMq0>83kyRS4msyH|LtouPR0{2EkE?+1kxaVLWO1 zssptYx6uf7Z6h-ddk&5|BijTHM%23?aZ=x|E?G)`-{6?NXp|q8M4zmq1B)Hk18EQI zf8MWmFv+`xo@xfk`@PNil+sRL=pWmN(hf|nh^2p6r>0|y&(Br&;4g@;IfBa)v8@6b zeRwHPDQR)D@9()M*6KeluTNvkY{E_t8_Jkew?vgZJlKQ<J(WDoEv?1B(kzu1XAngT z9C6$7RM%M3<yn9aq4l5321NYT4<S~=TqHXHA!4<#Hks@c%jvCV6!yE?ejBeH_k=<n ze2jRe9Dg9y{Q4L&XWCF+H0cz}+CNeog<oBqTQ2C;?Lz3iX?6K%B*uxaK>Hid)xzR# zvi}U$cCk8K^=ajKPDcx|^4G3B+B|<S0{Z_PK^pgjSoCnsS!1h*iR%xW-WOD<Eb7Nc zAjETsQ8BJACUP>5RbAfx9^Rb75>>goVW@}I62^e^mM?ukoQj{D5f^uJQljtk#WriF z9mpfmx}?7>UqAzXd3l_3%mt=tzF@V$N}K52*w4RqqnDn9rDd{h;aIquORVlgqANJ) zca|M>2I$P9Kz^qT4BN<o)W6EXuYY|7pqFE1#p1Ps05>hV1CRp$B9KyiHu;eLeA_Ws zc^QwLM-<sEsG?~OKJ=~aQoc^lcf5dYu~xf1rZo<0!;jobfIh8t<?rpWc(CTmil&AR zyDZ{r9K>}NJ7QH_O<Ki;1rGlLk8VNl>oBbcCTfT{BY|s+n;3oCFIYFYUKD&9(bxCb zs(<txE`Hx*<!EXfce`x+Rcas)C*=lxvdDaj)@IDCaguuMID0@~)E#b(VM=!R<DBj3 zR**bBPEW`Il_~j@pG-F3N&f+fou}l`Z+@-S%h;#p?`u5x)|XCxS>?KIsVv&}8Vvk- zv4Nd~!`@=!1%Pb8O_1(gs96||YmN=8OxCy^(DZOln!-g<e_Vo$Ka|$}q=Q2C`Ih)# z)cXN+1(K%_S{6$$xLmpebPYFh0LK1tq&rwiOio{=gwdM|6;nS+oW@)Lv7=)0<3cIR z@c2*Cm%fyG5x!QRjKEIqL<Q}BySYx4eC6*%*kqse@1H;2SL9q#DFtn>zlofV0zBSP zQbu7mv&yFS%tZ{K!#V%LP=`+L08#3@_sfNnhzFR0_z#Tqgt+Yi9y8Ukx$QA*I?fe+ z^?N4k%)@HQ*N<&-I`j%)G(W0%%N(wL3Cg`oYqK_SKDS?FcF;@93K(JzV6=HYSS)Ro zDk9qFnv_C%`K!)w<Up_QcdRoA$6PgKCXekP0Wd(wlgRwt5dfsw3a7+nf^r<r|3s)O zs}@(lNlG*J!H7}+O-aF1ilJwTv)V#L&V`y^rK5}7RVwqwa7ve9O>YUk0yy!uVb#Y0 zvK)FGAOLpK%rgh58<FHAf+iiM(3VjHOl|PvQO@M_s|wizk}<!&;^1@!`e7UPe2_iO z-KByg`8kkQ&vQl`Jk{xobQJ99ZPMRoCERksS;1Dugcm^k$rOfecf0|Ru@c^RfJP(y zC%9d*a97DAts1}&x3btkly^x<Btg%7sm#D)h-J3$K86OK7p{KTrBGSRqooKTgh8h$ zpj@;b9i|mJFTIhhmg`H~r}&0mdbFo9%<DCqZu^X*zA%GdDD^b8`D<Rf-Hv>cvgo=% zZiTD$EZ?2a^LMM>@%m&GAiiU9)j&vo?YSqz)!{^0q*wNi0M?)0cXtXD>?&SiJ{1Ot zI|t?8WAq=R^E;?M;D<tZggL5)Ui0c^0=B4B2E!(Fe^6#K7*rNzg<t!C1$%U=RKO!K z06<=uQruNY$kl{8;bIFw<Ns#P!2cTj>MCVG3Lx}?HXe^EcploV`=|h<1Sw|+3JwM5 z=x{&_=DCVBe7e`eusYz@;OKDhjc_sd<*jSyT~$#IIs^bKe>Jv$tE2A7fUn<Q2yw+f z_VE8*&eCIB85p(2*+{xQT;Fw(%Ai)OE1zXXxBqjL;gQ<eVFB^*Yf48DK%F3fdc=9! zWY){xh$5^49;v-p*VnBI;r}1x78Klb&WMWBRnOzv=K4mvXPq*0Qb7l#^zahM?a8La z728I`9!u&3EEGVxAglb{dw}kgfUp*Mf(3tM*!-4;jDZo!8c+LeaQ-#3N18e)>#0fD zQIN@Qr&lJ_9E!?kHqzg6oxR0DoZB|K@ALyenej&aaP?+a-vbE=VO-AKL#2}VRA`WT z5E%0wXh|5nJ65=IY5^YESKkgd&!S+GenxvSC2+2{8gx5<tKse_5L3s63uyW@fTqAP z9%0Wz5$MX1eOH`VIj}p2XLzx)$W$O3oal;U9bG#Gl*|ffu8Hwf>9cEz#NUq-{rTZ+ zE+MdivjVq|1nWeJQ~ZdeLj-9arFt4`r63ifNc}?YUD*1iq3usy#&@9R20-VO^E{<k z^>2^98A)EN{Jx$k@2cF;-SqBdLhzVMj3e~5RDI=lzphP4?<@KQ&cW@AOCez>VXnQH zhx=FfWv+!=73n`8AN(=!#a^8wF*ve(tqwUb3TFCRXwu9=sLciHPnFCR_qxPXo*|rk z;z(z|>Va9qnz#P9rb=6X9Z3B?Kdyxyt4vKU<$7K*JE)345;|3y?XDN(S%$Uwdkmei z*}t0<Lp(G!LdcELuhy$#Zg6sMO<5OZNgLgCJDrQ4+t;%%pTixm=GR7FFNbWW76v`} zus$q-#uH@jwH?bGhB1!q%lXakfS0Wh5<^2VGJfRR;<01?EB?bS+S+YntD!uSwh1UY z)3;m&%UNbe5r+fLw5Y`{@Ll^Qq4nls%xe^Mr|^h;bC|YEdQi&v)a>U5FA@dkAPsuq z`W_JRV_ePUp-E7Aw~Y1KiOgXNjYc=JkRao-n$LWp>FqqPC)W;eQQR`Gz$!8XU!mQ_ zhKuEt7*Iy+eYoOCv~@JEjJ_lOc?Q|l2O|_}t#Wi<O6qMZ&;Fd!*lMn=tK)HZ7d4bu zLN7~K@`x`bgvgIE514erzk0KK2;t~<4?hyI`2uE)TqS5%iU^7df7KPT*e!1USsqbj zLRoZQm+N-m=W>OoLC+98!lGcTn`B#JblRPa0Qo6a*~<`aRI7Wn1p*5itq|KykUnD# zldT+O3=f*mZojcI9L3Gtlz%P|r>!q;Qy~xnPtHXw$j&M50LKF#5c7ZnG17=_P{^_j zs(!{kj%iaT)FfDlj_l5?ZD>oiV1qObyGc}Ll3z3L=bW7Mq;y1;5?zu+{n;wH2R8uJ zuSpD5{zOwcCNcL6{jdJ)<r_!QzIU6NDx7GTd4DKR9F7FiZBYT@T44nhxt6Z@&=l0X zaivi~LGOgE4j9H_+sp&0H>nO9^{pPAcv=y{i;jBbq_c(Q57hSbvTO<qFP>P_gPlMu z9zeRSFgkHZB9+cj3LhMNgFQBfLK-piLP0(!9h?(xf9&H_Bq^JgT$CMq^z*xjTG6+` z<U73la2Oj$jFYQ0LKNA*H&HFU6me3_qU-LvQzwnFfHNxjbl}O~gZQpk&<<e|;ig3I z)`f$N-x(p7)RRM^5l^&XwA;2rO7pqT`5>;=d*ONh$7Am_@Oe}GbN}pAV(~Ikz`xrR z@b2v!B%~H~AQhzeVXT2Vp{gHqgIOKw&Zk#g_%t8%rE#^bGy}xY2>N;1h^8c-2>JJ3 zC_Vxd!SKfjB3q=TxLU~YDquce{4VE6M!G9!=A!sL!w)LCFGb>Ds_z_rg10u&;xACu zb;rsEh37#UUsu6Kj#;-kj{|=M@*o9Gy_;NTa>+G+5qQ6;Hiv0};OxW#DyH)P*m~=@ zsJF1~cPoNON|%hH(%m_9mvo18cgY|i!Z5T-N=kRb(4mwx4Bd!yN+Y43g?m5G`+m+j z|FgIAtF`WR-`DlMq!HVpfzE!+7TVfoz>mUUf2QVRU3kOG?rA?^qR5d>%tp3rElXTZ zn564F!?dzecY^hP!S(;|H!84+kzxGs^Jo`wJ47GYO2iq68lH9hc=t8gCSktH<Np+$ z7TZ||RF%aDTr!{JKp$pW#ktg?dd?Gx$n$4w9mrh5osERAu@(x5Gn+;!)nUT<2sjtd z`-oaE`)U&~fs^KU{<|3G6pl$56AsJ~Jpi9w^j`Y$$!5i;wfoGkfvRzv@-_JSKw&3E zpyO=al$Z!M_Xo_1reknTPO$75tGLtHaqtF1+eV`gP7TLi3X5L~x(Ln@Sg>4{pJ@47 z%vALjWLY3JtNNE%!k0^n2_edMHK}#1-9Q<;ptq(gZbN^iBR&y57Pc>MP?!R*+i^xJ zdza~`cy@M>{+NwL1=$!;>bx5}uSisN)>CrU=>J6d->Y@cH?hA2*p2}lMy|jN>+qWQ z7fSHIN2V-|Usk*uyT0*QEBn$N`$dVT*M3YV(iQAQdW+O(5l?hV5KT36>o#Op28E92 zM>gS7T~U7bFBX%_Py;<XiV3z96c#@*9REJXNB_F_8kHN7UpMtx?ZE7h<E@LCWI6B- zQd>j4bU#*Tz{|EC#GcPBw?{Ii!?}~R?MsnBB`C1nWvmXD?}3~t*i0ugmYnsdSqMTk zN4Slf`x4lM5UbS*-a2l>wd?myBe=#mFy|Uk>4m%HhxK-!Z|{RExDTgKunp0dmCp`8 zfqb0M#|BI16;pPZwV`CRsN4Eo)^XzHeG0$FP_1RB4C8O}${-tsO9Q(Z+>fD|J&g?@ zd<RtvR&owxC#2>^_K5-crstZWtJl6<IeaT8Q<G0~NRbozdgaKaUFb^{hd^zCm@xHs z&y|~XgW(C>9JLZGA~4`mD@QaLeYov%i;~1MyklZgFokpF5jhBTV;ZS7V-3hvfSzNC zECTe+!z4GCipw>5URk`a!t~8!Y*DQBBFk9N?@p*MHk#C6c_hgYK4+o`8yu7z`QK}_ zC-rWF2^8l2F5!)gUrm()m&0e3f_9(Xw;#Wn@%m_vL?Qqa-~K~-yrXvQ8?C`Gl@#mE zt0i1k7UWvR3dL*RWSmA=8tqtxlaaF5Y&3?1-!z+N3o6cGg1muNlS@c%P;vvQXUS}^ zvjBJ68RZD3px?!Kygx9}z&7_31se0oUNRWqfZZ?8x>v{e`On_C*ptcXAXuSj%#^j% zQ{ef%nzKKp!k5$-RLA$SvD)~g0Rp7q=?97SU%b~$@I6?ieeCPrlx1LrcqVBv2L7|V zI?^H~=>S@c+o9@Jl+LHLLbIohX-y5;L51tLn;a3tw3M-c9#21G@Ia6q`}30c&B5^} zLXK{v5ww09DtbG__n8Np*mBo^k)Vp(fS}4EWsO_8al85r(}A8818*|Qu1851CCKrp z`eQ-(>&~NM+H@PTI^Uc>da7tprJ=+K(0R)@U=xf$b&q=KC;*$25-0KR+&648mkjY$ zrE4iZIZ7kVdpkNBY2OUWQnqMW_e9zDPbv}(^E8wu$ABncJ_)P%k$j@cW9US{B)eZW zz%c(P?H^wM`fZtFmKjc&JkPT}U~{UL%J4u~t%@5N6swBpFQ%j}y<J;g{`u%mDZ3`! zxAju#E<I{PV{=$R48@l-@130P5l+Uz;l`0^4@?Zh=sQ`=&ybb#`I-A<9-e$E_%a5$ zbI$?4i5IQ8Wp2S1peTSj$6vqp<TCeUmd<OeaLAJRI$q1G8SX~mrrGE!!IV`V*#(X` zlf^KqvUg(Kcy5SfHgo(|3U>X|MT2@~Wx@8_@~M;`4$Kjh7W>%lStgYN*T;{)k}2MS z_Hlkn(Cu%y8<rOP_;h%97(dHs7sqwp@WPJnzGJOkfM<ctyghy6oSPs`4<&m>)hg?9 z0>59*rrs!fIZ$Qkv5vjs2`#r26#P|Hqo|0_Y7}8s<w``%)cy(~G8w6T(ZOJ_TX?5r z{!HWx(tsB=U^p}M_cjaH@IG?vyi;m93m`uI-Z<=2;8jOM`VrxhcTwa1Q>)bL{B@zE zz+k2o>0nx+QWT_v19!9;F(mNg*_fbgmv3n{gj2ITGH)KW6g@a3^N*ftR1K&b)&~af zZwoT>BJCa$#g<E0b*AXOa#y5PdthU8EL6{D3SvDQZ4`%kTIG^@&l7(`BDQfVLsZ74 zjzUbY?}Ap{uhCzWQql^7L@23}*vt6cEL5iydb6*B)BUu>oea3fzc+l}V4Pyse5_Q& zpEqp__4N}4LSUBPk?%*|!}^5b7pAw%roJu~m<2FQXL^S8qd@gOEK)*iv)}j)smzg* z09kmL=36u<uUaHg<?6YTg#dMuGqyOV!s30l(&~jxr=>0K#8H_QikK`ut&e_<brDpU zvg!@QnpK};v=%&Pl(r(&<T_vD8ZMS^+LcchhePbm@YlyS0+9;?Xs>r)v4NYqLz_xa zsH(FUw-|SzxrTS{e2nI;eO`&b7}qaXom^efqUg&!59gclPfnQG%g32lpvo;07bDU1 zqYJ3@HlR=q&7_j$B}tXrMmga)wd6KD6`RR`ZN2dztFudYX?Lo;Sh>G>&wpEY-LCna zYP9;mGyV!Z`aFbU4O;@IEPbRLul}ol8Z(R_FD);I3huH!w}_>FQZ1|WE=5m|$y#)W zhkR9q)$bP%EyH|#uUVo63r?=NDy^ZnxzR^I!BaF*_s;3(2KFz=J4#KN&EO%L{}d<~ zvp%ZRRF%cot^v?I{ux&zz8tSpKaNySgXIfM1y)CXba<y+aB}@G`riEQtoLHF^|yVT z*Aj0hK!r%T^Jd5kXdaKl)|aHaPb$kYgmT9B{TB?8={>@XI*(P1Q_(WyM!$Y?769zw zrTXis_#{OWjiI#uxtiP0hZYViyzXdU@$;LO)CzJ}FJzoVYQ`&kcwpkOk!Rpasb37+ zQ5UqYE154Mz(0GRcr5#=O2D5!%14un-Y=iQh>D^;?-9f}Vx9e;T)bu$&m5wMS#7w6 z(AC7EvdPeJh_~5vQ|(B*0oz8r;a($0JY?r7#fxFSkKPI);Tld}3-PiV%dLj$I4W@a zOn;RLK6q@kW~4Lg2f6wenQ_rd(ax=TZj2URA&Vrkw2QO=XEkKprm}0soF3wlqHl*X zK390UTD~JO+-I)ML{)P&>(6Uep$z#}n1r>>(<dkqP$~GyYKi-?7iAO))vwl0cH`5e zr*qZHAu2D@6(8-l>ARa7$;#r0Rd?bSyg)EEOiz<7mt0m#{H}E|6|k9#r3`x|obqh0 ziB^nlcQfwEl1NLy&vtK($3;#b-`Z*xtvstWGx;z<m52DA%=+3bW)OR}cx^d5?TNfL zPZRCEm(BIfe!iX-y)5KP__&V)xcqqhp7$$c{>o!&LUbO^YE(>YOz7J#YkROZ*r;|> z6is%%n#_8R68)_#*tLlN38NFS6Wgm}NQ=C7U<S3kgF+T$=k0IGI+8j#kQ~|mW4&_c zgQ_&xbhweFz7!97>Rv`BXuU`mo6(<^eS-HYLZzR|zbE#=;=W)ouC~z{U7}{6hNl;| z-&njEoVmZRNc|b2O!NpjcQcQxF`2YBCi=&|F}0d<^DKI(2gq_MN!nEh+1P1GBnTKp zzTCT}?ln}!RSwUhx9&`x8<TvychW5i3wQRD(4tUI__EtPFe-IFt$CO)r<%@j!0|k5 zR^}_iynQN47mel&@4({ARs)ZKs<ZvpQ^$ujCr4T2Z#~`qYGUfl^y}cgUMXuW2;Thg zurf%>C4&Wr<Qu8^Z-~QY?AOmpw7*X`Xeq}fOgjE}7+7}B9|kF2>~jU0{hD|8hIcHP zDGU_|i0&X}ki@+Caa-b*8B){w^&zVo;mdTtdR(H**hs95yg9YH5jwcbzo+<Fepk&f zK#40pAANq?7+i2g0exxlm9vSq>#d42Q#3hEV%4cyk`2j=XU+qejf#5?*7QN=Wd4`q z;aT1T7N)Moxl)w-&(^<R_exJop3?NU;!~7uvE>?m*leAXGP(N6z5cKO(NrIk!(O^0 zCnUj^sy2bfHCEhFVp@3n>E3>F_ZwFPM|EDbI#F3OM1Sv^-7?W039LmPqs(YG1dlpM z9SZT#j=7>sNb>nuvu>Z_cWVx>uF$wN#g6axB?2-dl;eWpWJgJX1Uz}m2@RZ&$h>z4 zN=(L%!yJ(I+4oInaBue`od!UzYWDJwHJx*$3*O3Nq{TBt#mBsH`G)<@2WP;Ls`NLZ zb5bSsKuba~`qk^IKY;;eHHKQ`ag5d@@qGd<1-IJ{Qs11mM!A1Vc>opFeBfkBUUbx0 zbiPj~G?%ksersRFjt<prz*bR&FDt%Fey51jlO(uO5lV`krvZ{N1D;!;!sS_MuKlny z@1vy1mIITlf=kJ&S{5RI&^lfxw(ZxyTO%`w9CTbs#o!R9?}#24##6MfAusYs`fV>z zlY`yt`xB*hv|XbPW8jL8a(=K4JnUS=dP*Y8A@LlE5Lm4I{8RkrFj+K{S2anZE7C|Y zf9Q)!m!T{b=8vTLFOegv2YpN_*wX|l{)D-QL#9oCjDy59@!SOAq{}AfH7-{&2s^QE zr7Rc*qGre{b(=-xN(vA~N;3eR{M<Kl?V||2WP&N5_X|qjSBIY&iPMo-FOHO~WSvSf zuykuFvv2n9l9a@6VYr-9DEa1VCdJl1f2QU{l5|L#V%_(T@#0N6eG^mv2;7q^ImW?v zlD=7|gbwD5-8_}|>(8Y7N?t=(a+Kmn7NTh>?cF=cKh-W7o`ue-xSc9PsRWU>zs#4< zW7UnRBDV4T0S|%sI&`x~$f6^$3K#$6nf@XxdqWPve88q2%g@A2wb>ufc^Km?8o7VD zFMW$o3B6un*Xnz9Hjrk!#H1`Vu>@iYI7s+Xa5o7Ey3AH8HCb|FADQ|(RDJ9uw{MWa zHl!Jg#-`O?lSwUVnetB2z_X(gJsS-VuD|Yx9>j{R80Ku>jYj}_k8MI^gJRM>zF_5K zB}H;|FtpW}+hF%g5#PYX@##a$^<(n5Yt+v-FMmpmVRT8)U<mb?kv=URa+uh7;SlRb zQQdEVQ&Xuk;|JzZn6u(KIpElKl07m~uDk+FTX52}u()>nAz>Bz9><c5Cian;vA2#q zKzivG@k0BvaVq~+RNjq|E`3@8PC;FSCi10n-#^&gnbufjO`N>t>)M|-ZfoB>wmpNS z^FO-GVoxDPyefd#v%?uy1lZ)9xOn<(Ig5>~Hk*^<G?%3PB=`82kN|*S&RAw7Zy^iJ z$ToH61&ZW#%Yun@G5u~BGlTVv^lLRdHaJtuycckM=@GRo?_(?Z022<O*EzQ<CF$^> zl0e8{X38diEv~*Vw==46vIT$t_>FJTQpxFP@rowCSFc5`_1NbU^Av5V_lUk*JOw(} zk8m1lxqN*)EY^V&Z6-7YIxI)@?{kmNni=tZV}1jJda=4|0vrC#c)DVc3?{iQK2+h6 z-eVIp*?2+)o|McUS=;=WPFG*~h4B<8niR8VBJ`)vy&s9Fj*t5Ibd#)L_@e(F6zIy( zAu@r5$Zh2f7gas=`g{ESd(+u(az@^lM>%R~CeyQqNnm%Dg5H~@R8Xu=h1-v_gpWRy z@{SBsYKxTbu^xKd9)ZrC&p`nYZzJTj%0!{AO+q$Q&ruaYi>9pNNlgFAZbg#6$+L*@ z1)iS&+uL<0skPF<c<#iM^@)#BzNwLNKaT`mAtG@Pl}(uj6@N}7jtJJ(;Q1sX3331k zCvZ)FbxT{Gj<%>J{Lvag)9yGI{%Rha^ufKZ0FuI4r1-RySAep%(9~4A9eu}BwcyRx zMEwv->a61Y=P-w~F|}bi;`=928xt**>JatWsD!vkzQ|!npX{17-Akg(*R`|bT||zj zz9b``v!<l-?7XEia>R-ds)>VQcp(C^(^4<msO=d?m{eiS4Sot4b~)QtYU&U~M^`bd z3C8pTk?}jz(mi-au7M-rzG#FfRPnO133~~LyOzOO0Jr&_LEr{;wndd<`NlWx>oR7? zn(A##?$drEE+&KG+v9dVDj$*fTmU)q=p!2+R<4F;;x{}tqb}(Xr<3Kx8BK=_hcACu zeXP|1OEOb7j<X|hr-_F%iI^9Sa5TCfr115YTfQlW<>yQ&<iMRh!+i-f8(VfX4NJ6% zTHnHrcW-xZxGhWP`33$Ag+rg7G9Z-y2<$Kay8lCnSD;X&8oMSHIr-Y|#qG_G46rie z-w^W;BwPob@|!e85^YdhCyJ4@EP$W+aRPYD$)nZ=M>CJc{CF<3Hl;Q3Rc1-k(S0U+ z5Z}f1E*I6Yy~c9J<5PrpvVvd2mFPp+LPw?6_3?&oIginnCLfS0aF+^oyOhQEn_Dk- zvf|Jyv=5!M$NGT#RpoQKZ;G$PbhlCr$VdmXe~?MZofW9Q*TaoW-p^ra;Jz<)lIFY) zF;^P&2(qZtQ#gyiQ&%3<!RS`4Fs-Goy>ze|Eo#A-_N91Skg7OjR;~<92}7?OkslM! zx=p)>SwX>4aWyezKPk=bXNF+wrc~8_3_Q4&ko4zs?J8U>n&VPga2YRzD(<i~MKvPz z8&8kSuLp0|L+As%Ne6nFvqme=VGMNGP3PZPYH?Yc(Hv9(CTamy+Jb5jaVVz34x#78 zm=u1|F{Jj_3g=vjRo%N<oCQbSGiBV29~tQD+0Ei28yV{B#q;-VGXh`jr_$%tjr=#7 z9@ComWzaTzBfu{Gz9RQ&`BVVImtm&}k?nT9VEbu#&;R<l-Td?o<dtIWr8sD&ndxaB z_iL8aK5Bbf$ljiXGZsqhO^}Vd6W2&bQTKz@Mgtd^<1GV4p?*)MF}#SA8+RYEQ^pf~ zk=(ZxuMqmGsClKlRJ1@-QC-Iv?Z7@|;frr5+{tO6D_6jE(+kiZCFXBSYR!!8NcIgh z|7l#bn#otGpr*dNQGY&7e_DyxvgYM{EAlqRRb3z4qun=*NnTX}&J{;YaPThl*Mj2D zG!@<75bb|k)=+aIrT5t>!g!T-qmgv)D6Hr@dFKk}hcliRvCLx^o_DlqU$*$<>c|fk ze-!f@3zrB;fT6~q+><<RA<H(SUJmO~6$wx4bgF%2Ts<iF4Pz-d0;)#Wdz%%EUGg<} z{*@Tq=x`Cx<sqysD{L<daY36`TnqV?@%x5G+z#=1tl$pMDWv7Yw3Oz&SqVD3%YovY z2;;aE$=<2c@l55@y(poDZ2`4xCF$%fy(be*2PtRO?r|VE#Xb0ghc=qz<ewrm1+P0c zZ9#n_*mKLDPoyTjiUPl56`Va!WY_gLoFkL$*mGKG+7Y}_-aC)i4}x5YwX1wN&jPOf zcUvo+BEyW8V;J_0n}ae}V|R~V`ts&iDhby)P%L`y^>SRun$|`#6k!~_$1h2{ZzO8Q zN*5SGYZmYPbInL#X}qTFlYhxW-P$H9cVG5u!w0`I?bCm!!K4w7wT5apNMHgM^jySn znomz|dY866QC+%r0mhBXTN4`kum6nPox^F@7VmR~O8+5XNH(e;%uXaC1pWqIFnK&1 zv|FY$X7RNE$z+zK#5-ALgT@<9+P*VAq2Fs?exlm%*bo?6ox^{u)=BSreV(a=(r1`9 zCw9u|6izJP{mrHM__nm^!wC&?iPYmOepv4lsq-O~Er8=uz{)?yK1H-EO;S}HWe!_d z1$k^^%*8fd!ad;h2afNqW(7t&=ig}AoPO&vzoVAdx};s@Qi1YJK55$-ac~9G#>$;a zg{}>^qUHH#yLS0W{9hlxRF>@uc|yJ;in{kPQg5pS_oMNkBEHvtK~I=!PQUR^{2<4D zM_b>XNu*gZMZXFVl9u4;6se|#S~eExj&lkZ**erdOeZV+{F4V{2ux<p4{PCfixCtB zmn-H^vf?{&pSa6d8=pNAjbUKj^M6_@iytlOela1HBh+grdDZ2YP+sv`FAaKry7C3h zPG9QqRNwgb1igkxtCHEad_Q38H9IG-Z-)L<(~HF5)xk?lO9|7x=HiCH+%z5fRFG-` zqvc1Ad&Nmn7pK>_N_y@OD|X0Hkr-%-nhg0D!T>h6%ac>h_J$DuQ_B87ds@?GB)lLE zrw0*Jt+?0}%eTMB()K4oZbi;Uzk0HzyB@o}yIdvR?c;NPPHKA-Pu!#z&Ys9a9wI<; z8lC)hs^-g5Z}YA{$LrN^nZ9c;&=sD_kc9GFNxm!$m#>mr{sg!?A$uec=0^D~-Z^+a z4@%ffD+$ST)mG?KscECW$DHF$4A1eH%<)=;OLMZVt7eGac4@X;x%$=hput4N3)LuM zWwU{mfk8N$XMU(@u6&Iu4$@zyK$}H6=+H~2S%RvriF)<#YKz}cdEe9Sq}`yY$LPGy z)~84}zAsD}u<OGu)Ahc&7kb;f{!9!wQW*~tuaTE)-Oln$7m^8ok)1<IWx33hKWFYs z^WwatlAc$OAp^FTNgYEXMK(Szh5s(2PZ^F^AD8!O&Q)DkPg`V{0li~3TM1vr2b_rS zIkZv)T>kUH0bl}o?DU{K_Lb#AD)YNN<)$5({vWB!O<2Pju{YPdZeZCLYEh9_rj+;= zC7a;wfI0gvx>|er7Ory*(Dr@KiE)C6+7B^{n4!aLchD<=j!>J`@lG~U<4b7656I5T z;5K%I`9Zhp_4M#7*_U3-^~*u|t4nqv=OMzX7Vh1u?PREqDDlgqj1(w*o_b4Fap+)s zQu8FV7`f0&KU;)gYg;}FcUp%`nXedr_&5u|aNgR=P6_!_+FE+?cUS6q?T5@#>sl65 zn~S<I#+O*q7AEYs(=h*Ce-Ca(hnWXiff>S*8>H~QAOhLm3OiYZ$5AQ$Z#6QmIR`&v zSKMrugdYd*N;)*gLCKa)PHKMqgzE%xcq_j^eoieh803ZTz;kLQ&BV#qlNxh%6r@dV zKkflLNglEn{pU;xzw$Z2v>|fOYO;Lpj_m!XxcyIw59wIh=sz}@IC5Sx;FufRpM|be zIF@ZBl^ar_u{rKGW!!$=19MSiS^K*~m6i%c;R=tz5<MpjYs**y^UC}tlUGf)Js3P* z0h@0RNXz7l8)@BMe!5v;u@fAPF*pOFnmh@Lx7cbb6ssn`kUhB=4sfwc`KvMSC&bxb z@`jCrA;qnQ{}jX!c5$2aSiEAdy`K>;lRb9<41wOHFQ4B<bW6Stdcu!NM?TW1#)6Jj z_s_zJj`M0Qu8WOD{^MpCQp_Pkw{`H9o>i*dRB)x;6cH8k&4-NW6hvC<4Hd?5o$XL0 zhk0!LIY{2gqL*F3$4#`0omKY%cpJW_kfb&k&5{S79GUmYA?LFJ;Ur&*QgM70C#?Jm z#14`Bsl0^9y}6xaxn}n~#tEJ~)i86a5^GzWCrj(tQYWNU4~=UvS}R;zUU`nVT)<!? zts$@`5)Y-*(fBtr+h)H6PcT+NS){IGXKkD{{<;|OneygXlKTgl?-cc^c%cLdZsj0N zTnjbMJ7c5j5w}Lvcz5V2kNm@w_O&9zWpw27;U+!=H?MEdDz*Qy#P{;U{h_GQ;A#DR zmF5-qCRux1bu^8FSGnbqXO**{n~<FwQZS)Sc&&qEnmE=9Gr!bOmZ_0#_7E;&`ZF-+ zVOV#kq?uFIwal7M$cQSKWp9`{YIcx4wJs2erLsfhsFe71;#7_5&w4pfV;v#`!!c}V zsb25I7=@b@J<5WIs3#v_Y5tUD=UnQ>vBpTXSETJw+x{2^u}@eiJet|g$&Cye5-@6K zc9qS}ea+<kG*msXGO;;Vdk2eIq-ZJRld;@7amoaM<WM>yUzNDRAGqgGrg3+&DcMPU zuE_N(fYwMa@?N}dr2o?HzC+O*YW(|96=cj@UodwJgdWL~dCwoxWZJ04rqkViCtMGO zBCIj1sv}8AHO)24#^PZapgk5aTUuFY>(q<sZL9LweBkSD41)@4yyViPe*_=5{V~G@ z$J&M#JJ9{CmXB?H9-wk-k4@$??sNTlAal`S`l&K~!Uc=w4Qz`E<tS6V>{jGP1}Hr4 zrWqkcAz;2-1>%MZy5A;=NUmCmmGH@$D%MJ$n1m+n372A$KtB>DWuU!n51r48`k9yG zs?WL4peRcQ&7NqhiMST<kd|`p9Ic5hsIUe_6M9H+b&}#*@{T&z86B>+YI^u=C9%?T z)RqqF{OMBfAl$GgSl7n_%zK6eL~b9JW76onaaNP@_xjL4q>!%e1R)mz7>51i5{WM) zejS;in1|WerTG5*l}anm>#_5&V_zy@5GLY`Equyve3)rc{Z%^GFtCHjga?aD<Tn?O ztl~yZuk8KEH)=d@`4LF$#+r%7UB{EIwYqL<+%ONw=csw@AUF6>lV^XViv)b-twMqp zRoc3$g@&)e?^<qVv4QkqG=A>CqyyiNnvW+b9fO7T{k3<~_Gn8kzW!K7ppr-(DfGn- z$Y|0Qwg_=qliDT>jAd+}bHB!+PfM!&T8Nvzzosyo9|vi>&LUW+9WVCs@)dtp*Ista z9Nc@=eW79PX~vHu7RTrNT@4?q!XR)^DS5w^s_gAoyCGac*`CP=X@RYAf|w4c70n7w z*=u)t1Jam!R~Be%%8xuFeB2A_bx7U3;Vff_3wKO8A_l3LdZwn`L{k3|w5$f``R7z? zeI!}_Q|@Y(ATm;F4%6;E0o0`^|DUG{uWX+|*iR_biHjgkrVxEzeitpeQ3D-h)!k&e za;@wiLW-Qax;T~d6xZ(^<<td)42^MJztl0(jC6lU*b7c+MTsPiCJ#FfJ&CX|Kb|~+ zhK9YsO30bZW3YliL@+f!?zm>NHq@32$zF~tdNsx7a4*%s0;0x^N}N#})3SfyWt(>d z@9?wdC;cp2F=cHe%BL84!Iq5ae>!TFGpp$*>tOvp@dLY$f^m!B@63Il{?f|af+r=x z1{vdtas~H=EI0u2bBa`GIpx6A-Bm0pbwW1lOPGRZzrm}T{^MiQkoffz#jgg!O`;AD zf)3SZwL~WyvC(IL@8Y^}2@t#nmTKs}M#^!L=>7iHr!f-~18tINJ5OC+Z&bS+&Bn2J zpm?{k(pRaa@%Lu|2#Y81OK0_cw^ZJ14l!zI?f9q8@-YKo5K_&1W*7=dX(xZIc=bOX zD_j`E_B-J$t~kD_eN)-`v^6(WDe_X)PsbF)s3b%nzZ5}eF2OMeWITW=QT{|@vfmQM z9fy$|h53AM%kM5Dv{uYkkWxd)jZYe1rfjQ<(l>7#RlmSUbC4(Czf8E33$1Gdj6z|} zbgc7r@r(Ejp}l8wx?1@AkA6IX*^Zc8?Pje*L~%_X$l@(+Z)Gu?<bhna19?-v7;P6e zDg3gOh4Jb@ZA>6S`OoOT#jtjfOL|ehy_Fazvd-NcwX+%%=8$lUFX}UT^P8)=6KnIX zh~o){gX>n~ewkPFXqvEm36+Wgc97rUwp8qrVB04SbWpN8+QpT`^ZTU$>W{sWiJkqc zaLx%>e*zszadwkaZ~LELIqN{D8l^M1n`I#L%T&}Pey{+#y*>Gw9Xxd=d_&8MkW==# zAD*Y9Bo$-sP~soU5xZ#*w_%T^@tsl^Uf&4Nkp5Mh+@chOuv9G+_vwtPDXmdyqR#y~ zM*bA8WrW{>VBY#(S32Y7<_*ByuPfU>3HyxHDH_rI+UraS)R4s~%d}Qv-rtC)0XW>U zt=8f4PC*5mRJC-02XVg~Sb3veDIkX5h8tWQ>MAP=aZZ8Er!~1RGxpBNNHSaYlQP@B zm1j&eK&HEWiD!UfdNca5W9o^P-PP#vkvY~wI*Pmk-ILbOt+=4yh|p9Ww_aItRbO!$ zb7ebbGl&(-;kmsso}8JTUmzK{uCJS>WyPMROX7dMt#V)Nl&i%iPkFD3Afe_t`=lxr z1+kMBHP3llgy(9mxV{<Cg1_duS3o;u!dD!_;$@$|w^Pi^UG%(`=~Lrr0l37JRkvED zyRmL7$d;OL)>{+2_8p(TG&ZS$9v5>S2Cplivy?pYq`wm6^yCbIMA*!!?JB^Z+LLHg zIUw-iw9DPw^>WUboEqXv-iq9}Tyfego}%%tm%Sb{Z$ePMYB4W0E?<3c;+?o-^$k|j zu8T~nd~QUXu2Qcm$)D&aaF27qfS*_Pnvc=h`gC+yn=?#Is$aJVV4tyQeLw)9lRJuc z`I<KUU*TIm=ohNH+HiTBtZc+96A3$9PG=>l|Ifpue0%cKzCyvya2I^kfq31et5Wbu z`B&UlDMwimr?eh6ex@1kp}$N!MOFb0XeQPi{9HC91o|6YQjgqnx)dRqjRhyfjJzsk zF7!q_S!*Nuy;kwQ1dy!bdz^xRwBT8^Q(L5FPWQJhtSBM-;#x+31?)Nanbg*!Ysq|` zlJvQk8mXlXt}O+!Ym%w<saVxaA!nyMMe4h`xk7SS;ysfk5+GQp@|2-lL$Y8l*u;|U zJ!DEhtSM_r7s=FPoEHP$V<$xt$LH&G&(FXk@96Wo;Jy;2!TUdNGHEsQ7b&leF;@{R z<(kh52xJA(MQNKzgU$mGWq=FRVGWAMAM@*wJ-~BA&nqk`y9O}4m(*!4-wqpqfx(px zjV<A`WO%MVKHPE5T>Zt!>6b%a0Uj41g5K70)xbMtXMNMF!-&DjJTCLmgG7=9RyD*n z98c%DL;Q%mRFRbO-PNpto~TJT`r({GlhxMt<hb5Pj==+u0NX4C!RN5Mh32MC$OvvW zyMDMyM$c(mu{P%clNT7sdl$*CY7pEhyXyP~h}&yT-T#bO{?2<UeJiP@BN41`<sDD@ zI`t8#nY`?EF293N1Qw8d{4Bd-vA?Y|kIFc0|J_=fV_y;55N2}~R=bd%_gP*CQW5j7 z>%}rhZ^@Z}Nvcpx=;6Z%Ijfe?f~PSHMfRjCdFOOXs-739Qh&ladg&*7C=(5Gl=rbs zAz!GOZ4q0oTS0g4Vcw8h+AWq_B)M6W#aN~+57!{N?^0hh!dXG+Yh+AEcpR7a^yt@; zDg3%9?;xx9bJ|(rJG>Ju2xQdFw{y8;-RaC4HQgWE{Q9G8b*`M#<q-tBMbCstZ-knQ z6jZYL-kPo{r?SN$Jrb4Z_<3GErAX`TqL9J&2ZHLFfazO=jE7D8JLShb67O*or)B^T zMe;Vn;C9XZAI-M1P5n=>yx;<45!u5i4GA~}m1y9v=Z_hS$k36n;v-u!H9pPzWZ6S} zBhqM&@ZpwB+Ev!Hh71#Acj8fmbpZn9*JH;p{x!5iyXs0?2vaG&Yoia!`=O?2?Q@78 z;I4`SoQLfdw~A~K(Polcl<@Wl5Y}Udh7n3m0kI1x$p4oNLxnVyelqiybChGdU?iI7 z`j|^lzRyzsy!gpCKpeQjCX801eGUlw3|-QV)-YL&wK|}tRA<m5lAL<*|M`D~oO6B% zzRQc_>gQL&ZBPR+G&L6JC2#+E#4M8T^Srl9zZC)lQ&im|?B&$RQ1t7+f^>4ib?{=R z=YaAY0AL<U!v4eh|MioD^pbJ!NP(}eSdE;MAGPuqB!K5dSf`Q+^D{f<qzyo2Zr-{F zb^zJLm`!sli%9JJ){F5+;h*2XE(?STQA5xAyBC#&RQ_gm08h+m(7#l8yuZSCs_y)K zQa7$uU}VpsIss^<yo@B6BGfaq^riMg^gon)KbEN%$+^g6QBpaBGWgK?);#aIQ~_d; zTT5idHW2<$Qt1C>o(O7|2?=wSl)h!2ivg1iM-y#`a&+`n!5bWqSi*FRw~4+vnoB4= zI&YJW;u3Wu?z#k%DNKEkL-~KdB#s--N9)Uh4{}l^FeyHO0gT*l>X$rhMdoL)Enxiu zxhwjkuWP_nZJ7q%kp5;D+oJByo18ob$|rfw6<`$G^3B=0r8&Ul0^WBN!mq{m8i8LE zTfVz6CYjJFuQJ6_b3-;kvzm)^nXNtq9MnysvJt@Fatv%V$onR>ll`@IAdY3yK{o^_ zCBX~I^X;EJUjM$j^U>rR^7Utzfi`}AkuLP*<oYx_muAyIQU*w?>B0w8!9`ii57OqB zQdUz(fZwF#XyF-AwW?$OU#T!pB@8+N*ON3;HdZ5F52v>AX#!LybRTben7WMi<LgCQ zeq^PiWoFO!Sg2%SZMI&YdKQSg$g{5oKd~D8#P5NfBokP-NhSveRu_M`2=C#>vTuP~ zWmf~pEfn@q=I7`78o%cF6aqQ2l%LCBf}+7kLm@f;HVX;%X84{{$?<-CjXQy){lAZn zn5zjA5y!8YgyG)bwhHJy3<<Ys9cVY8RBK>N^7kiho#8qT_KZLi_ab|;zZ!#q2yI1M zVD}~StWIsfz4KJy0v7UKzXrTm!*A4_j&^1Phl)LZT`!CMEPQv2#DQuBOa1wCKQ`#8 zr2+|1FtUK$lG`5@2ui~5UI(^`#rm#*yz&-6j7t9t@R9@*9*N&KYQ6E`aW-svGZdeH zfV6&lMrDHq*E+w;6xvTMpLQI4K(N--8hD?&&!1;&ux8sA{TGGtlZy&%U1WsH&2Fu3 zZBcOS5^s8imRl-2MM~W>^s6pO2n1TAAD&C*#J7jiM$t&0;2@mLTk3N0NTYM>tkYE^ z%NZEk`$<$WX*#RzU|T?kI~oJUkd$HD`bY%gaK4sV$Akrg#1pXC3;BR6kW_xO7;8Nx zK1LfN@SpT`P!eB;WY%9gfolyVV_bshcczV}EHi+)UBo&}>AXw%P(8|&wSs<Pxog&` z<wgUqaMBFGoYzW)g9w=gIi1cjNg12V6R;*wy`oBIcVpDD@R^M!nTtO*OEowK=<X9) z0V}v_jeL#z0C?$49D&yfATj6UwTh%w4I1s={jS9+M|A7~ZJc_|**Ens5iL$P;Axl# znhB2~iAiDJLjDhhTmGtDfN2`^cs(hePBdW|0@1;MD<0p+A>jkYH`6Uvexe{^=RH_( zZmC|xT-Z?JSW|oU6JQjWrh|nuIndL6;~|zJk#{MK5ub21wLTji{;5{`%y?i#LpO&m zy$QjmElcdT_Uuk54N0Z98NM#ED0o1f%5kuiFA}mpky*JwtcmU?&z!a~H*xp^N5{EC zJq3+|vSdD;M2J<0u_nMj2?Q?yJz~5m(@l*ct}<r>B;rwfmLhY$bKoD*chq4w`VKdf zE`NS$UwRNdSAQft|4m!6caFmi>iM}wBoVbi404#MM+Ilx>YeHf&`h-01Tn%Ma{2$C z=LCl&`5O83>uy4dJp%8Q;ZoSD1I(;YoY4xf;Aim(QIkS<IGm!2S#geZ*{_}LM{ugn z_q2rH7gjQ$OZrk`h-cP1%^mZVPTEg#Da&V{TW5`D$5mq<Q-L93R3@Ye2LoVSUxjM( zyeq#=(df;rmAl8?Ux4fZ;U|ywG|2F2EWs%_T{v!1>ZrAAi*2W`sr->7-@o;~Jk9vD z)P7MqW-X3e|Fq?q8V{jt+0$P!e6f9mIP;Q9p6{ke3Bs+VJ`uM`L`ZjWuuSHYFfS$- ztW3lUvrfwV@d7gh3!qS@z$rmk8~6dUcfi{5)?BcfLo^uD-d(Z=nJau?kMghq0a@`c zc+1c$^ti3qX#TVQ<i6hq**%j?jmNE?-uDx85l;ghYc<QVQRyhYbXrw~T5En~m3-&? zuUiknOt{9fCwW~}sVoh{1wh|!bxx+ge@*9nZ3hx|U*LE%1BR-bGq9x=0lIk}@%S;g z9Zv=re*bz@tV8dz+&;C+OLN|b52IJyIaK595t0}ra>!|uWdHT`Bg*wi-L|rB`N_2g z{?MBT{iUxZdtu|Ix2DLSKsCJtFkbTyCHN?-ITc#Tm@d{e8FSzO<yEimcB<)T9tL@G zH(RcLt;mVnC5svfU0YvM=8fwpB=P4bF^Ooxbn1A{+attxDsIir{&==(>jQHg90Ngi zWivEkbK^5xdG`U0=KpZ1TR?thmL(?sa#{+cn14Sj+bq6B2Vn1*3@xCNJf7F!Alf*t z!EEEZn+)>ARKg)wU^9{L-zf(Qu=pqBWx%oV#m?Xse|6Wg`FH?%2pD0HzHhTt%@zew zKx@sS9x_M`xly=3KN}_7bnJcgfQAMzzktzhvrX)jB1xF{7+?b)F>JHVHg2``(Q!qX zq*tVd#@Fkc(^NKd6fp?zR+84ugH3TJSpAf+U62;Fzn7h;#JV}NWn!}P-6%o1T^q0B z_{Gm(pG);?R{j#9jPEp+#18SA#3$@$Ev@){1gfWJ8+nNHA9*#xm0F+$Fhnb=6;Su} z&71=T%r<=ds^Sqa*--+UsU{(BuA9$Ab?f$9q7OP+?2Ihhu6H-IPjGGi7{CGN+lnZH zCQ^ZtirG+W_x^53JY<efcA@J);1L-Zhh#1*vAhalprKL*C`(^yGMgglvoobx+d@hE z3#;41n>@j#78(h7j$dzcO>W(sCx4RQ5=rUAb^5k6DcuKsi60(Ywp*i{<38!8_GcC3 z&9+U|&@I;E)<9NjdomSx?--0$#S6Dgi8UmPNm#Rq|1f#ysw>F{ynX|+e5p;ewW)G@ z42=MM^`3&$A4)8zq2mNi%tB-j9mYq4E{B1*xK&twX);)Jgl9x#b9jNHMk!4PiSgfL z4s2zQME%W|RepgKvrLSpRbqla47Wtt{gi6mKL$w8jK`Gw=!7evwmLvJc8d(KTwYY! z&cd}I7L!wP-wxEyW>vUhu7ira%518``Kq#OXMmqzK9^&yq;sdX08)I3_#mVgfY}*s zg-IS3Ki$D~uS!lua>=@=B)FpxS<Y8J8=S@X4DP-Y?eJ?N8hbUt<f>FkviJ3Ew29M* z>kB5IQlU_%7%ewp0(tjp^$xibF|pbyNgvhd*OsfwS%e@QCeyrd;mf&EfcRnl9xh6K zCZAVZ6kcvWA`8^&8nP@tvu<Uch6iZ|f8^!JW$cA4eV>rH@&r|qj%q)DY*)Mj4mf$( zNqTxXqpv&k+>?8NNikuhwe(X{1>Uz$hppz4y?bB{bgb-lHKbV-;gSX*E9<V)GqpR- zxmywt?bdkD0w5uACDJNKn4jp0hJb>42ESi?p>7}=_7GaTV5gpXi@~#2DY&&A?b^yN zjQ_|J+CydH_gm4nACAM-7v}7FM>7$U3-P#ip3D&<O}5;{h`MOhIRwcasE^k5vqa)b z!fAGnXj1Brz?HwS{9)nK(%%c2h^JFy#(<1o_GuDwsTozvC;!eh=H_J$g~N(gtc~%A z>nl%R3#VqUrvaGMO29^R+ml5w1QtH!V*!R&X{D#w%-%fAQ&Lncwavz}fsLQFuM>}- z*5O7uC!RPp-5vei(b}S=>`(GCLD4~DX$ASaYQ3`q<e4N@@EX?l92ekL8mBo`q1tX< zYW}oedA+LUlEd~kFzs>I{BYmD@cP;R6a3f5B>^Qy#Qw8~+5c%WDGQO28@C2dp|92j z+PhVe+fk2|@ViYH)!A1HZ#$sr)@E2wzyhh}9$<?R5+;dPLlB8#0wFg;bq2URTUo%B z@O$KsVz@s;^*709kvmyV7F{azpS^kzO$L1HKfqatiLM{Nm}4%-UJ|M$TCL#En@vQr zc$eWGTWtQV;pjKhGdP^@N@M@SyVJ<KmzqEHpu`^FeYnH=Ow1vw0FU%Q`<HIC4{FFc zz2Q;!7Uxad+lSROU<A{B{+xD<=7;mgqq9F2AhdQ*AiHwphkN@Qo-b@v@)>&a%Jw+k z)_drJoHKp*uyS#E1P+B_30LH~A~~>o&`i>7KM*KB+QP>p_KkYUrC|E<<%sZRy3M=c zqT=%MgSN$srGiV&h3#^&f?~g1(TgGvdnf?c!w)-RJJySi_Oi)~#aE@gn0+?5(4KuJ z3d-|8xyeM|rB0%6`Eeuep`4P-?P2w&IMfWw`$8MXC^8&b?9%@NYH_AUPM1_GuCfY0 z>->mV;3wDcDZL;2kPDQmh|wZD^HwWQ!YXO*?Mh%K)_*d9l3FqEnts(B9jVf8fx_YD zoF8d`G3Zze(Nt$5nn-fVtqY#Dgu`q-OXN^eyY#GrX;+ozxBn$bRkO8u-+5?iKRAJ< zMwhXzT@r+GTXHS5jZeOnO`MRL?;%eZT64{Qv~9mG;#Q*6<QKuEMzx<i8`7tM)^7{K zQ1X6=w#cZ_OG-N_Ge=F7aG20PRxeMH;}6(;qtM{zxjA_6yhpgiy2}OP_)aPVEEXGF z()h?ZBMCzIq3+Cx47Ru<$VQxdxspqfh}CaBxHGPcuL3);a=0FTA$a!QD4Na2=!X-( zLH9JJb4A+ZS6FSp0BTl%^!?YBEq-!1b)b%lDfL51QgG6v@of6!st~LC^ila+=3BtM zAV>~DhC8>lTqY3vy}Hpe**i;EDi5l4c!qu%r5%5k0VqY3<5-Ocd%my6ciO`=a{_Rs zCufj2`aRiFCe;x8n%!@acLg7`yBk4k1IAc*RoOsa<x?AMs~O*gcTUyqD2p%Hxd7JC zq!vGCk3{L>BkO4Sw`#w9EF?J_-QbMLLlhUME}Rkas|R|)3K!gdP15c`uLU-0o&Jns zW(!z!xuxAHQJo@xQ)R1(x#xwCHY_KT01nHRVGt~Sn}oSCjjDi>gTart!6-s!qkPz# zV^aHRx>K>KZ(Yzr+K#etPsS@ru(@#LrW?N9t<Vq+uvyhh+{1`GQC9~x(Oy1KieaW7 z(339LY10F9Dnnup7*3S(p1%=(d4cMs=H$M8Q|^*<PpoA+I!qy|br-#9fCWqS5zMF> z0t5a<ib%Q>)X0^YC$!dm%+VM6X<-EpD&#OlsMdwepi?in^c<$izoa=T|1&iQ!=V-X zZk#6nuL2;JaVgF&Wi+fuR|rb%701nI`DgSPHv(om@xj8?f!>+xL-2HB5FJ&0<gKHX zA{&u`L9hDyVJS+x^u3lxgY|SKNIMZof>6R6jaU~Ax$BcRiVZ;C_$Lf7+H6lyHmbmm zbKkBMqLRZiF~lh8&nbNYVpE*n!nPjvAJ}k}y+_C9P3F3-=ii=zpy=YX+*h!+epGnI zv8apb;(8vmDA`1~fvw_ds*K?@`*ThottOn-JBNsc)~nfZjns0kaw?&Zt>hW<?&AfD znK*}W%E$a>s7t%~d%0@-=j1MlbO~d!9Q$xSub)R4>lh~7cBpT#cd?)fQ;3Gx^P3D( zH)kSt%Hz>_uy<#VPt}Mc=cDFS<dFmgh(wYRbub|Hj0#a#$B!l%FkpRkv?Dm@6SrOa zQbuOXlI1qqtXCX*db+S%TcmO(KBdY0e4A<LZXs_H#K2{x<4kQ+pZ*;NcqjotdFEzK z(6CcXoQOp>C8^7oaT6gfGq$FC%Rrc=%O98Wio?EB@f|q9E!Ih;`YYVEO;GAj8YhUH z%&l^CCJZzdO%$`&yP1QMY*<VAml_S`@YJa6JH(Dg>}DN74^8RiFPJTTZ-Az}hdp%= zZ)(zDk0y888U_!!ycQq-+v6>|Z0oVi)Mjc`a5P-qnvinh(mUEq+gs1A-Jg=$_0unf z7>LFmWsPrVT~SN2ZM|xMFzHsE6bYL{ENo}>g3}ki-1eO;8z9AD{IK1vI^*af1MSrJ zJm6B7=VH&)sA`${yM4d=U)(-?RVYuryB}{T#9&-N$64xI57%n0+-+WtlerLdqHS<K zUBFc%vX8bj*%Q$~IE?FtCpm^cH{YE0dNL^ni#ez}xU$%`;Hc62)RkEsdss^aggw$= zn+3tPI)a$*$py3EIu?wP(t~qMWHt!l4W(1~GvI6EoiqsMv0PUUhGl$Lpk#1!*Iu|7 zS6>pVohC<Vami?yf_-ad-<0+6U^)lU-zE7VA#44ub`G@9H^zr3v=7ZO$9&PBK#N<Z z-{=>fw7vF{zGQDXXCkDyp;X|Q`E|55(~(__7uXp|hw~7!MVwP_nbM8o7IeWSKmO>s z{|#n_nPNP<FD?X3?~XU8<_a7d8}`yp!_Ueac|+c-m_cEM<3ze-E<bhbyCPd#s^*V% z7Nk?_qO{`ceWu~qm!2v4It1r~{j`@+2I)N&5s12AQ|t`7=LXI+V5J-Yut(ExP&bSI z?zc`RMfyaNb#JO62BfRQ8YS8*9CRmS>Hei0-z^QxFu>LG*2%;c>(7%9+zIzT8(ov! zT7Y^P$6rA9OAzMK^<bD2Xls_SxEON9GEz3cO!6a={3X4d_S`~f?z$@=iLr5%LyBLH zC~7Y}8CgF!2`|;e2YfUQC=cT^rm)vtvh>5T!?NI?!9CFo%a?wc|8X;xuJO`wRBD$> zjMt<RBV<P^bzU^zNlr_$mrFkwf+hEWvalt)d4ZR|{c^5#W|h~Zcs2Gc<23e+c#Y|* z1166iZe>Iwu@ItH((|(>``S)-kktAC>+|}PC%0>2A%gD>NeA{wcLXwrm*q7}>ze}o z_D3mTPf^N)q-X|K5|i$bJnFL~sox{rod37@Yb;6n9D6b)BAXU95XyX}w)RFwXXdVI zV3%Gjq1nPg4PhCH*SY%X=-c0^E$COYp;72WBtDoL4I-%zx!{l;V*a1OX9i=$`k`1( ze0l;!kfwf2kI`!#*_6TUEWyrL;kkJF7PEkt1t**+b<aX$GBD%vUyayl;Szd2FyzD; z{7X-cc<TX;M-^BL1AiM5Cz@t|{{5T2Z;^W?>f8E4on5D3TzZFoC4F1~?!vv9S-Tbu zSF!yqteWSt_MB|J&qLm?OF?VzymB&Ky0Q1Rz$(3ZWLU#S>_cBqoCp@oNU--!mkQxe zIIZ5TCm8U|(Ivmo{*w1^H8*uR1jpUc`RJza&V^U?gZzUo-_-`#wJ56`3OuBLsjqkF zO~=@>K#7Zwh+z!QdDmPLpDa~ABbfr8-LcpS21Zyz*&4{z;m@P8oOw2^9}|0>4MHPH zyTfZ~c#M~wt&dTZ<`-BWV*MFwXJ4*Nz-()!n?mF5;@Ab1O09PeVg{@o&qj|!_y^xb z62y#uf3D=o35QTp>3Z_<)EpFl9K-6Fkb6iZNjd;K9nJN@n0|6`KyCWNDYcO{=CI}4 z!j~%6u9w+SO&sYx%;*<H!&>@VwLyh7?dSx6vkq<wZiBH>jQGOP&(Y`xUXW$_V)J*_ z!#7<&f~C){k1BR#=zPeKV;K$6P0;nl9O3tqPY!2e=Iqb%B=Di!>OmzQRf7i|jGuBs zk|Il-s4R@mA0a?eV#gvWl~G#JO|hRtlQ0Cq?saB}Ui4Od6Ne$V=#Ay&L8syT#zW`? zTXtxu!--MjwK?sNjv6=XSje;s9XJedfyk4|3@xRmKU-g1Ui^9JOuZ=Utj(N8)8gz^ zE(9!s?7cQ?Z{Xh6GSEh*&F(+37>J)N>wMP+4H!^QuX5F$h5i>|Stakz+H4;fBr@3= z729I>Ey@Vr)}fz=JUf%D%~-oM1s{}zZe^WCGwW=!E);3Taeg%6rZN0Xc{;k_-j(9x z!un5HCHEJUzCAXMr`C+gJ+_{m1<s<V1D1wQ3Bqpi7cT(*>hI^2(>Ate{SYDG>2B)o z8w3im+g-u51%`JqN`3!6|2Gl?LFEPQE!e^Pld+c?D*()!#0Nbc42y-MF~9e4el<@{ zW7V_Xe+Db0dh1D_6v99tOJ)AE7}8X)I{b#~{Q92VLjOVe7x3;6Zk3tm*1kE^`}MHh zqw<3G!XMjm{5S~`@_rx0oXAL<9fwf~%=LCHn6(nhJD!tosVC0wS*_&43XPbQE3nn0 z62m?uaa9Ppn?9jz>f1{@G&w=LwuoiGY&OrGDgBUptS^QGYG$hYVHU>gNY&na_&*ww zy%^xL<6*>{(~@a|aX;vvs4Wt(8u!+EXyU|qgl#V*lylp@6vhC1IJovckg{a6S^h~A zjaT+~kU^S_;)C@#QnJ|IhO)HaD3o*Mg<+YAxZ&Wsk%ln~<EwDyowrZV1Oysr>hzZ> z#tBIVLpeLnVk{6u)NvAaWW)d5J8x=cr27&;owGZTCufrWwZ6Y^7?&SAj8g|5KjKcu z_p$ctkjD*-#-_4PM=j9;Ygvyji7)wKH8#$y*y+mADnqv2;mhh9@E*xWI8Wo1FAFv8 zPcS4cXdA|C`}(0~ty|%vz3!<U;`l>WdT?67Xzc(vUD$~_fvUmN{GJax{(bui`rIpL zC&6#VmHd)~f4se6qDNXqNd`tw?mzq<r!)JiMFl=M$k54ZjX8_AF($Q$k)AH6l3KO? z)8P*BxQJLfb-Fr06uhVYx5-s)X@9Dg8DPr3UXrEgQHIRg4NBOMg++79s^G0GBI+yK zJ%mw~-6lwTI*)8WV;7D#8wN)lEZ&y)a*+?K&%gt^qfww^P2_)kOi>)K)aDyFR<cfM zKUZ4sDjmyNkTN1?JN_2w>@Sqr|DYoIafm(LKxR%5rH?OhdbGtbHdV0X-K7*256oG& z#7u;}b?RN8cLx)-6oxVFq<<UHx&NjCSoWQc0hz{U{m_CJJ?LL@1=qEP9fE=g`oaEd zLkx|NlC;5F8oFziP#@zw;;f8!FK#1VQ?LR(_CqoF3(E%}iQ9?J@b5^*lI7oiuu>>& zOZFem7-3yip;pd!Y~uM=ien*rAo@M2GjTghjgYK)pN?ga7Ane1mBpq%NgHx%&IXK$ zTP5G?GFs=f(jMCJW3XDT_7xQl!59n}9B0&*34mjQ_FsjJK8Qi#N599x#;v~_sXNmB zwZf(=s=4#aG%>vK*Nyp$rYjc^vtS6M!t0e*Ado1$&B!`mU%HZXu#>d>nYANb$l!nx ztgy1)=Q8kjP2BR>(`jo7%PuzZ?`DlL+4c{<aoG+$+sP_1|7K%F&iH@-yQzhUIg*yv z7|GM+<1d9tf>=Md6TUJ~WyN%ZU8=<Vsgbg18#hhJ9t%}2;<x{C(|-E^_|xneQ7Cb} zV{-ks{@;_@oCIupf6fn^XUk|qqPnBNi8f?PDM-gsxvk02l#q*AsNZVU_hO~238w_x zs-^;xqRfS+gr&rmm%R^){@&PsM@=lrDicy=ar3(~r?kk!aWeAkhV7#)Nr`OZ<3TV` z9mD{hY3yrA>Qi>-PvFEODNROhdb<gsC!eeEWIP-jjDi(5kpFCFtY=eSz}htu&_zwg znuAsBG&Vt0SX-+B&Cf3hS)m9ePIdl&=sN4LD%)mnD;9#Jgdi=Q(j_4&(%m54-3tMc z1_|lTMR&7ErCYi~8Wtr;Bl2BKpJ(rP?|poKzQ^mcxbG|Gp83r=Gn8wpS(SLNu%Ly7 z7}1C}WdG!rsH#IC1y{{zjO^pqES<`FD#jZTKR`#n-kLV|)Az2x*Q~C74cSgPr=fp$ zYLe8ag?euR$B*H1e~0wJkVD@uuVXDnpX1}%J@9RoFqQyjPfW7tV`11c+{;gc_4c1v z$7cQfo@4l2Y7P$|?0ki?MA?hWJCkg)ieT2$N`YbNM6@>sM%%PWe3T|?Wk&DDKwJ{A z)$hSf9D&B5-rSY}9i+E!qO~RKPwm!+u487y$tkNs{$y?0@WB=#vZNhJpt_7b+hFBO zyZAh{A^Y0rPqmD0HT7<@ZwunOGm`e-?q@a9GY;B>d_<nrp+Jln3;PH$Pr8mIu|9E} z;y#pTPAgZQ%X=d3{|Ob_qmT4@uNxEl?<P(BY0=j!$C_4;T*;FE@MFHuO_B;O2D<Hn zK%>z;nlu@@Hi~7&Vf^ELN`BzXGqyC`2*Se?Lgg$Lmv6<iMNbNxKbM5<OFHd*1jQ$e zVEEyK10l$VTNG}N+)odK`pJ!wz-$w|fw-GuhQQ$H+`swm!oT_MG(*LuRd7E(vv6yY z5!4l?=p)OGGk(zP?pI>arFkxfvb-KlHf;NKm<6mEDwtG%hgC5GZISdo{Wq{9RmKgD z9~l1`|03`Q0^Gw%*<hN=uhc~jzSH9A+@lLQU$NnZ04=h2Y=&CE*;#yT<;cipL_FLk z)EVizP2iWUs}Zur_xgMvWUJuWU)SqEz0=`u5WFsU?C_V}f&W=3<NO&$JBPIsh2V6D zAcZ|<!dxY=%mc;@rz2S0ci$f$YsMPoZJVRC3jC7Wuer|X*Dx0I$!Jbre1$!_W#h_@ z*PdK|+U#nt+q9<tNE7tbLClze{INx|bX)`43p@fUUk<XF>6l#wi5bjT!2eqa$l~>g zhmID9RdW{dmJfA91yS!`PqL+}YgUsq()mmqKl-10SgE<RN)7)r?`-b<&y@1DzK)JV zv-&82Ku`g@wlIpBN#%9bWp?%pzFOfBOc?(rz*+By&a8IcQF9XkN295L%5RiJwgkqf ze_4nBSW??;5{RjY7#0fQH-z#f=(Lk%x0JEqbMk$@<52Ksm3?I(MgPYBuqTy-W^1D; zcC;Os;`wm?)1n_c;>k#tnP#z@LyvN^>oPA*uU%ER_|J~lH`oPUkV0QtuDrtZeCY!7 z7znAeYzq^Xq0cuS>h+q)?<&e@h~%dYDbobg@`@i!RT$BcpAKdR3I5vH@;vv6&af&l zL0F+0vIZHkpA=`kZBKwf*nvk6tsaaLdpU2gSb@FOd_E!ShUb#Tysx_{vdpwLHEPpR z?L3YwRiz2pW)o;7O#gkF|3SZtJ60d~NrFuVfEa-%0mjAs*Rw*MMFY3SR|3;0m5=lI z%l7nD1CT!|9+=}r>jay4NphO@=&2}9s(ZQhN-;5}6HjOmu_Y;5h*u`B%o{|D0|ls7 zLZD_^AC26~2u}d#wyPv7-o&>!pvz#H-^W5TLdsv|qfh~Om1J;3rXHS-EQ;w^+(i58 z?VnY8_e4bv8CL)4n`taDRUSk^w*h~}k{c-D?eUYrMQ`uA)SW}=PV{np&~o1-Fdq(% zE@c^p(_IT#YYYqy5OWjBIPiGZ1eauKT9X?0-Z)73iK2FNUM6={x+WScg1WKN(fuyV z`+ReV|B;4|hJHhO>xL2RNoCA@b}ppJDi*u<3@qK#3)w!XjPW?E%EzS(Q&EKN@2#NM zY$Lha7%Gnr^~(#d6(K(nEL_!tkju`UuZ-584%&RxJSZri-F}c@ol1wJ<Z-LcsxmCR z8jAtP?=?{V-tPf&_%Q@(XjdmXDO2CJkzhWhjYaj{)W2Qk7?gg)Gofy>TMVkH-1MU3 zuFx--zVed3`QngKQ=`a4Ou9(Qj$?AXFp$YtQ=a-tq3JM8yqj91gDcZ2JzUbxcaWB* zWUM~5!XML3tbX^E9IO$9wJF%ABZ)eE+@39Y$lvW=hjI#~`hP+{9r5r@<!GYv=Ma9K zu}6k@-EEU<ZIQeW5N`5+<{-qC=woyx<eGeapcH(;*%$rh4QeTHDa`$50ib%$^fp|L zsm0ZPk<+S}X2|}bus%PN>7782Ra?rK=Pv@v_vHjTxh75TD)FG#hg%5np<G^`_gOu6 zPifZg!|8Nj8_iqzIFr|?%R1@QY!Vlv=Dy^79K*HiYxaU#UN3Fg*=j6!joxqMaGjJa z-8juZ8Sx$>o#w|%8#s599x;8<ut50z!@Y++ZAAh>LCZbGKoy>3QVvk$iWp_Guw1=> zewuF!WHf%1ah1|gXEADa@%?)@u>Vyg@r6N3LrKnDKM3^?--Ys%k#t6-Nw|3AvyDdN zj+H!{P5ohsRx%{Qc!?L}aHjaQisP^66vwEB5#So{^qH(x7zPGq&b{M;^wB9`IwLgq zJ`tDu*%F#P@T|0>EOW`m_-}?q68Lbb0?%h3`)v#(b+F$(Q@U$~@9LylZ)8nn=@*_f zX*z18GO}KDk}LXw(Y)i1ZVDlF$k%=;nb<%}3bttv<3Fo1apCyBAe=a!E4NJIb<xrB zQ|3#JwW8O%61YopVctI#oRmSQ)Kg`g=PT`we^+E><=pZcSe8a<7CnLGYj>)UbahoZ zZ?4D|(_+c{H;UK~GW35<bLF57ER_HJ{yk7@@`na?RS2UF#zyNC<-vzUgOEd|0d5vQ z=K+2iN79m?tuj*<<f%;|6J{b@_<t=V)$X+D5jKOMG|<#5RNbdt%6hO*Mjlo>wM;nY ze|hx!p_U5WZq_iRy2b(egoIoENHF?%cfnk{Yx&G%PngRiYU<k8KCW8X>A8KLi~E?U zSyx}R=JVpJZ8VA}OKe`88E-&w)4BPx7k+2KI49LCi5zs|zFYZfC^jh<)*R<OnGoI0 zr`6M9y5N6Q<p*vt7H#@b^yX;X+QDcVuq#S_SYb5kDLrx^wuWc%{-|N>rx(fdgKQrY zcyWCXoK_z_wt>*bL*S13x;Ok?Vu~2GKO%#p{uyfi7GZVb!W%LAT7K=FB?O0r@oX5n z3e*hkb-}aDDJ``dLM)ZYrC&CN#goaDuS{jm^3cQ;OJpq=j5*q9g)`E;l|U<V8bkS} z9ZphIouCrKdhbO<F*faY<|lZ4jss|oDZrMLW@N9Ya=eQ7m$?rbCDA_nxjO080>Fjr zw;hyVRu%H;2$8!E(31B6sGabwp?Y*jfySZ$sRHyw7Vg?^4l~O2urqD;GC|G1H%zU( z`G<`L0E<eMH;}5WwLQSc6BVzzNNi{&IZYbW7<yJhXpc*%`6ub=xo}mAQd1MEq0u6X zB9R-00bEWo1dsHDECRMll`+KojI~Vj`y$xNAW_eFEtD>w-{YPkhnSbsg@)G%faeu! zA-Os!7dl+L-Pz>U_xasr)((!`v6TU-=;CjsP>ahZNw+Aur#`4glSR;yAo!g%(=@{m z#0`m*czh|fhBBU3pNq9*Xi70vgQP28rzJh){RG(-E(pT=vb^cY#YJVz7r2Y~$oBF> z8w!ro8GGkF4gB6LiYfJ*uK;_$e@#=DSTi8DuQhv2%@!AHQ?XX%nUk81Dx>tQHd>mG z6{Al|IOSO|p;7*@F8#MaZ`%BpxZ=9;y2HDUWeRA$$Q-|x;zG)Fa_gJ8rii|V-VRG# zc90ue{RMzj*uqF4kTU)mj&w-p4eg{Tou5|NnCR}19_VmRv!9pE+OJw{4H6AqHAr=d z1nOWPYubNK6$Y(B7gcZ?whV?K=1P_-pE)kWU$5kWIMGv9(Hgp6Noh=Bc`^cyrpT3= z+upve>uTmPSi~6B1CmAF0frQtS~%zq%!X2ffqM+%&zaS6Vndo55xU5q4+M}!$3sV^ zvp0DHh@=FZfw8ut4#Idc`v6>gj7U=bD|b(GA~|Txxkhtqqv*n2uW!x_zH6)slSP$x zXYfr6w_U$X+|z?E)0F3QFtf+Zhqkx)H)-*?q*WU@N#WjS*{fRlm8KU{s0yl%$z41F ze?Gk^5-8s*^6!cy0F^w33O(VJTi05>{2VU6lhxr_NIDILm|xBWUnuCBJ}I9i23RI1 zFyq*8pp>ynzo)H|m_JlH`E+v(-OK|(-;|7^H6^dE|Dbq235tabM)>DfJPii&jV~qE zzfFjuNaOCsUBWJZJGqzYt)D0`1d1$qov$zj(wUmS+5@7O>)tb-nqerPwPaAK&?qv} zyR}qh3|%l92DNv&iw*6CF$&O;-t@xw^at{#ch>iH1=Oxl=<TX!KED1*d}Ci3xqf>~ zI(1}Z&5^`!_{LNqjw|!kl8X)S5)M8%^>xvwj!ri7ro`C1)h#p}8qwmczWa!rVAb*v zi)}0uQodLFOt)hYqi`M-o`oKKVdS+X+UqJTpi(G<q9UBe=)g32cS7C#GLB9Ss4rHD z>KLjE*=m=#O=xG1mZsC9^MmOCmP=u!C@&|WXCiygl3nbYP!bdx@T2f3O@d9tUQD3I zbPPpaq=kf@)UoBeRVXOH&Bwpq`HqUB5$3DD6bp3SWN`mVRtC^S;Dr;S=jTEm7X#m> zl%IkDc$xFun5&to^)R!vn#L;)Eg)`%K}jrKG>T0{ZW}L$riaA?yipEuAyGJTuHih& zV5ak|G`gg&wR0(jHRaWJc=|lFm3h}r?(KMJuWt#`Hkghxj?^KN#8CUzd$ZH9G@Hwu z>s>xp50??233t2*+tx7b?J9U82UvtL#EFUl75_v5MtN@(%zbgZNK+0!^r&gn5wEtb zTXfR){tYrhU~gvd+4vyLAq;vtxuKpdL2x&VLpJ8{gJQ0k?{#jUrClG;txJ0-N(ySY z*B;+x`LWuZlQWY?oT&pq4eklr!H4(D7buk8yJQZqRGvA;oilJ^p;i5c`<usI%$1+d zQIpo~1lY`xrr^AppYZ>(EiEXfir?p*lXevCvXR<jJpO$`h+PP09II)shqJ?B*mSUu z==nF@x5FMaZNJ<xt5Os&RQo;4ohj_58>jFm@tdZ=+|)Ph(j%g{2`3M|m2Gv+jsJWB zq)tb+ai?~(PMfkB0g~UgckqV88Vq6WRbvB!xrb32R?j5r`<v{|9d(8&qta%&9B?g^ zanQhB!UHG&YIX8wYOs;GKrjo}6kET{8NC0EuTAY0wwJ~ZDtUoxA}y@#R!T|zV=HLV zf~y*nj0G7TojtRuR9(bc(>_<4#aH!oc~Nz62EOmzq4e$Wt%m|CE~1wfxIa@j*q*~w z1{G7{Gn54D3aQpK)~DC2CwSEZ97=~tPrnJFn`otlT_|$MyHc)|)&ux+sS_$tX}h74 zgSsd;9f$KGW_RT?TjTybIZ)%tA+*1f`<tGw4k^E%F_vmRSS@wo)3056xJwy2ze-8d z)ZpfFFxp@mBWMbfRlj4m88BNx-q^?4{iC6lg&(7`;>lgY`f6pNrfF{n`RLhbRZk{p zCKh}2Wzd=oUURj3UwWTQnl*jUaNs9a4_wjST;&5Ixt2CH-Ys-vmAp2IV9=5Zd?mYz zYrW2=&Ycicd+$^Qk-$U<#C{pB@4S*uxt#hOXuL*}Xr}Uj7TK(RIJukkgJ@v+VJfpW zM!@ux#SCqu!3|Uu)IlSyv`xQ)1E0lY4?fnPaSzX0Tes>s59dUoiB{Jaxj4X67VF(_ zswx@FGZ1P!ptL82+sLR@u2Rd@O~S)|8aNpi*n_w-X6x>Kg@%sA(1uogODrS{R-!Fg zx9*^BE%Ud83E$Wx&@v`sqAs&z&w$V}<J{?}*Er73vkWe}Re5-@YMlwU5G^B3E(@At zXLw-h)|`qJs|0UI(kMZ7Wp`hG!7H#+296V^g&$j^xx3KO2>Be1Pnn49vWMV|-S5yH zNEPcHi$(*u!emCd+?;<kKCE50{Fy;Rp3+WuqR{-)ZPU3c<!l@H=V<N;awrM;-44Nq z1*<i^<B=P~Ix?gb@<-_U>1eT$>f}LR<38X=o#Y)sSmFoFEEJyC&wfyRCM!j7$tW6= zk@yr%Yp^TmxBl(7+i=#<&szBRDy2nJKq1enC~Nn+QI6F_m)5T9DWROcK#kL|Q}{Zi zu81oLo%@9aaK`cll5nID-8h)7rbIV%wU#V$>`c^s;i{h0mZYJ1s;{libRjraPH#=J zavoOGfR4b;HjLKt?OD?3)#Dv=Vgfk&WT1p;N`9_TszD`D;z^H33B<?dcX1%Bh*VwQ z+2F(GfYt-I+T%RRp*MoXu0bzw$}+Nf)K8BV{Y!iSoh?RzY*rkWQ&Eo6-^t!$dD?YV zq4p;9fTpua=cB^Ry#&1BlJW1uA}<S>Qcv<wSCY!`#+bV<#1;sNMPkP?FSUHf9=LGr zW>s!Ljj123t{Yuo(%Pidy$Y<j;vrPYLt@Jn(BxHb={6yy^n#2kK4A_#32ClsLFq|J zyheFIRrw{;u}D#ore6-(lq{(fzxGP-rN1?i=!rt{0`3y|(Wd4Mr8w$$PIo{zd<~R( z`V@ESUJnuDMua`*6>7kjdGim8786Ud&o@J~G{y*O-+dxfCiaY#Zp52Vt7-Dj95NM{ zAXu*Rq0Rna)T$|y&>%9@u>&y1WT)vjj!2JZH4B31c?D`D#yhVx>aXx0CuE~aflty? zAe^8$h@Gd8=>7tUoIq|fPO+3M@o7E7HK9e_c3vdcT}<8aiys#b@59S!wie>};Z|p2 z0N=sYHSolaXzLeVMcG-^yWsE3g|XogAA=0}6SSicW{a@~i1`h4mPEIVMthXmcdFFI zg-k8hO}^pa=SK<CQBi|B5?dSL4OyvV19h?D={+_^ahpb`P~oBJxBeynQY{TK|4=Q_ z4UJK9fOUIkw2Wd{P)h^z%14{@7hq$DDT=wcfb<@f5sDhmVv!y%9okf*e~TF@>U+_X zk%Hu`*>>H!I)g+QSLu^2nXW;xoeHP2tB3)wHpSm>@5f}q&C1&qF(xG$U{*Bnvt&yK zZGJDVbIxIcQ-vxc;H2$Kmo!ffTpO#1m$C!>47uOD)B&(B&p{$#zhuhUnEkwQ`uL(z zZ$xw@v8OhIwFqawlU98O!-_wM$fn?k4{#&to9u*zg&UL5wEwdqX%O?TabK=x8m{Wc z#3_KFhgAYT9m}6ztyT#KLjpQlU-b;V4s=I(uvNC8$bz^Ntdq7IW@ERZ{8?l>1**x= zvOBC+suQI;13-S7y2cx@L8mpF(P%W-fTjhimiJ9nm`{-$u{MFqPyW!t46yF<;mpk_ zB({GRUiY0R<qIc<d}MBPsuW4tUK|y8R`M72`rGetk?^8eah)WPWS!CFkJ-`A5#W48 zPoXnvsuvJyEM5$H4pP2m8caOfh1RUg#d1D$Mq0FgQ{87kJwGUGMD*@P=ad+~Xt(je zQA*~cH^Er3{Q(H<CO-bwPW*E0H_AH?^Tn)^1?wyCX9kt_D5X#EBpxCzn+4v?pS8^i zoSem4ut{OXmGeKfM}?TrE<4xO*bigb-?*alCf5@Q;EZn@8}7NY8S}K9jOaO~d&VP^ z=TC^TJj)JhKmU|qS@aZiYr~mp^C<}IEfo~xh+xyyTXK(CU90umT_x(mVU`PXhB-j) zdQnox?CcdR?TN6wWj3P!K&9r=o@|g%q*59>Z!=RdHQD3qIp!U^-s#~h@J!@2M!1!r zQ~ZQN!E?{pN(~!1!2yDqPasZmxd=!VvHi{&;|jr|e*Ea=baHC_*?f&68)k8h;fFKn z6!7&A6G<=bPl;yln2gh$JmyQ)XmAQm{kp+&7g<w?6H>5f_R`Hdo`hboWHD-@&uNN; zPLrC>OKTJ@%(v8>GoB>$00pZ=Yi38s#KI9z;H0Z~E12K4gGd|%8pW+^j_Q?t7MJ8I z9T42%#m<IrC5!r;!>$HJ03aRf`vdR9`SttVYfn`*c82NRok*6$D6Kc}J5exqRb%v< zx6&>8NTS6xs4MOk@J3smXS#~VuNU({N&;ZC@)m?;cv>HsKbK<x+Fj~aI+aK--RTHw zGVtfSbB;~R)c=r8bsqrPbcba!u8=OH`F$Y$Mzp(82H%c}tmLU_q}&tV5+XUJ*WJR| zRWPiA8!N8Xmll{M4E05fGj_TYrl&q@wxLs{zn+&TQ82y>)<?o*V*!Y@>=V!P?TB%; z)Xgf8lSopeKR;uhKM@n{Bxbx3S0EXl*~?jjXKlP7AZ;W9(967y@IJ`DYq6_)^=y=F z%Dg3<LY%yKj8~zY%CdmVkplr_XtUW|xUL#LpIizBdm71{g4HERH%Wz~n%y;vPVtS% z4vLQi%8CY6_l!%*nMN!Lisn=HLbH;q1+G*C<TM=g>eAm@01!m0q&p&l&E@cHL0xC~ zaSwuKS~6A4tkBP|VN~y09B)^WhR;15b&+|8S~0BP<I)P9Gg2q-f7HZ>wWOc_F4V_k z!4(&Xt6UMl+^})}h_j9-ufm+zD3PiXo4VslXNjsoZLGw1s?h5pWdUFe*R7$Cv46pz zhp8A=-2F8J4ygRTt{*kD7L8czH?kM|IJm~tG2$fl^2#FCr(#e?MI9ta*q^U&2l8hB zT^1LvdPFGkqDr56Qsz`xpa%1ubng`CO<B~?EDS<*w*e%uqBdNEfc)vJGUbYDdlOSn z_F;6x(f2MZo$TyOH{9@dxF+}E2G*L)ulZsnFxQ`%Sw996!jE?rWtKx1OPL-#z~S9U zoffk5-y;LdbT%~JXv$OAwT_Kf)oA2%8?#*zj9Q1!R<v{Xw0iRtw>DapFM+zfLS!z! z9|^G>ph!{s$%64gPy+`Ck4p1!p=hEM)r@y+*rQ$~ARd{_9x!e+eLWv6ovyWffpEm6 zojq@F4oRJDs0QRb9m$qI*VvniC@i+GIlj_uAt`d5T373rve+o4p_vrT@(a6>3wHjm zi-YZKr8^W;LcGC6FP?4cMfvCcv{#)~hix@G7R`fT#=pbg8VxK8N)36OFJ^&8($0pn zH4uFQfy=*6LVz+>A>3b*gl6vAsE1WlGq9nA{A_}b-cCNGaHKsz5eJ@b>Uf#X?0Bmn zPHI8SQe*1B%7u}iKr&}FoOTyvJt|8iF<cC{;j1naaHz(#8#wSxcKU%U5v9ZWUM>&5 z581U&)gS0om|@q%lo;0QOOa?K1hd0(>ok-Gn8X0)HV(2Pi|Y&Bxt|wUDSO&`lzjBz zZB5@xlL&c^RSNo$Kvd}DP4P<s+3ZbkQpxJn&FXvY(pJhKKg{7ctVdZ!T-*FFRkf7c zv}+Y5zp|7~i?Z6K!Qvc02Qu4FqWLHZ)R1k#48XOR`ljlkQ^_|WAzL375xwmG&i2%@ zyxmseqOQl*Fa_!j7E8f9NYpiy?nEK~UVC2=zKMkV;`qA`DCj&QW=lUqWo)vL(Lej; zH;a;DZM88oe$C<1I;!181&Z?B(K^%H&phD}>bIT`?y_n<m=!?J8hQ8JTyk*4tdDT{ zCDHk-&Y-)f3P;YT$xaUxJB&&h$c*_l{D9t4Fe2O)qa=XEvT{7Px73mK=B<lP`+Th@ z%jA97i|(M0j(j>PD0I_UASJ!@8u&afW<Uwzm3|9)y<%73#}$_MJT10EcqI=&%6>M_ zx}y=b{-F<b-=RHnQW`*y7P+^)8*9WdhxbG@@jai#kgX_z)mwkBQNUXq=F;q{>!8H? zs_92z4&Or`HKT{>1TYl!oK21LAj2g-mjaz;=*=0~Qkdq6g3ND(OQchX=2}l?CHkbY zlk}rtV?YFEq>j@gqZJ-nuh3Q5!J+qCD)l>AiK(qe6aLl|Ly+x`wH}Z-lC*f}8(NII z(w*MdA`CwZGe<L2C^v6FLgSJt4U&+CTA3$v$yGaYy~FTthkC=a-S~ryO50V$YRiOE zyBF-qF28bVY~c0G)eJhcuVp?gD-C!=iB>da4aB`vbA#r^s|Jc}0%EYV(~A;}Ow`6U zC9g3iU$jbPe`r3T)^|H1IXLUpa4GfGNg=TeirPg+bxyKEu(xTY)1qm9YChHlRZo45 zYS+Ki6F(MN5OZCbvhG|)o;Be+$Ean)oM3gBRmqV#V7A<lc2IO7?Epd`*_YQSHN>@( zaPhDET`yOxv_GrJ%`p*jZYdEp7%E@GeRZVbx10SS2(G56k{BjyXvS7Eg05hy#}pg= zOnvwRqRrv%#o9GW(;@(e!OG5(I2_tbWIV#fQ+?Va_3BPv1oY^c{9>{F>-D&H=5`hD z0I0UmB#?LKcAA!%$y44`lN7xj2l?h>NB7&&dyB0<KqhRPM{Q3ubq=m`^|^88NI_6? zwwHN4uGmp;DK+;i`C*2a4LEa+eE6fzXX`Y^J(E3;!|2UAY-5Tf9cAhCHq&Ouk|)2b z;7b%(q@rvWIb0Z~&piHVsQU@0Blf@^HJY8;bX&?|DqaT{aC&udBre?Zruc(PX_Gx= z3ODvByxtqFlv@jOb~mXE=0Oq9$>UGAv-%R`FQ{SSZVoP_ggU__q0^@#l3a4GXXl_0 ziCh#MW|iqqu8ORFIc%3uGj6{q6N;spU%u9FJDF!+gOA4%>-k{4%o(6~?xuC2nBD$9 z$Dkx}>-DgBNoV(W`Eh-CEk(KRaJf;|$`#YQ+M*GRQ=9@)1}$3pBW^<N=K`m$FWLgo z+S5H!h^d(UjtV`+oTAXDvLLnLxcyN&=rQ}H%A4vlsS4sg4IP$)>(s0EzSo+bHI100 zoBf5hBcex~Dh8wc<nv<HB%$WD>siM!Om_FK9D}?%oRbqs?k(2namf?~_2;(V?>2Ak zpRMR}<oC^9PJBvd7Co2}(IpoUZZH8J1<gP&RiZbx_^0H9rvY$R^Ni#Nuj=sbA825k zt&=z7EM3i!knr=`!r?(rnFdSW$V>Q5eY-3S2^ki64CoH45mBe|&zxZgHFsjgnos(r z9baSXrjUddb3(Q)KNKSx4nDSS`BUs^&5;J#o`osxaFB&3ykb`hj(NbDQU;(mlj^Jl zhf4t7Lf+Xpn&BOZVugjS^h)8g6$bIl8Ojf{9_ql~n>u3kV12cUFf7*E-i!SCF#owF zVYltRgH+^E%j<)>sm$@XW?2Uv-g`AzPpU^u9Yq}1N>hug!&sE|xY?&DEyj0>9I{vS z!`0;FEKF7wGBL|-Fj)2GI$vn<PQsW`s>A1#2N-30<5`Vw70{%dd`bx+NsPDi<3iDm z>6Y58bEAC;V~#h&A-r&#52>;9(z)#T413=!N{)-4UawC>H??`6tLY3ZJ`hU*_+Xr8 zD4E#4xVqpj6jrEEoc+DPk|or_w}8Am;^meaftyjnl(TuTf`k<3Sh#d@6)~sTJ3RIg zIUO`T-c)EnS=nHEd}N5n?$&}}#=?d_W)A@LplaszwxcyPQVJ4Q1}z8hUtStZKVph# z{~&0}|I$F5U;?XkWeZ1DApKA+wfLvktqa5LTqd>#tWGk)eDR-K^5jY;wKkwi<E&wK z17PiLEE|h2YawQVGgm!%b}I`Uc&3h_h20<T*7MSl&-Y^r;E)|zn`jNwuw-Ptg{=dA zrA4bOe<=`4syo&43^z-8e?Jv1g{}UjQQyl!9^TW(1}~GmoO&nR{3|hFi^};81Y==S zr9Q*_TSSewTpPy}#yALC>>xYs5xv%DXP4H3u`=wE9j!lr0hHx0u0S;|jX@PR(a=&i z1ElEcd6^I0it&fUiexuV^)IUUfw~?2me1)2`h9ZWjWfl)snPw}Eq|H2u}8)@FUk3b zu|Yj0cJ_y#`Ot$ca*qb4zvKzd-+XdB=#WD9MWSHij;OiRg1ZB+x&8Li(#G%?c}LT_ zueo{hu8-hZyT+CRI2P(obnkJ4O%^mAwZER_#5O+;VSJ5YW2L{ewLv_2;B>by8iCJ5 z(f!r!5qwC_Js&ll!{HL>%$P$ZOae9KR1A+l6mk*~8(@u8@gx11b(Xjws4PYbRNZ=8 z96Fl8b@zH<R(&eKwLb$y(k?-($v)#d{khSnvQMiX0B=#v_Vrju&Akk1beEB-yrAr< zuV2IKJP=Ux>wn&75Re!%OO=NXKrowrN3vjZsUQ@8Ix{6)POyZ8{~H7}VRH?xecyLV zJtiK{5^}x4xVc_;nfFQf!v(L!foB0#?^)h#3GBSPcVQnHB3*1*`0*NGobpKI{Jj7U z`!F)R5{CQvizHvI?iTi`24|hMO)lV>d%V?b>wvK|zWk3znJV0KDf#-fCc??2g7ReC zL}F%N>pg9u*-9ic`P0hRpyNenYmZo;MbHxi=a?uYH&x=}$2ZRTBFJv!g3jEBjDWl- z0F{PL4WvOO)I~w*NhTRbs%q~W0sTa)P={w}YI_?jA{nYOfg~jk=2rGT{M+qElMV1_ zp+0lcQ0;uJNAr+U1H3K52wou8flf&;zA<%J^p%0XjsUP)Vi_w^V=JDuZ&PP&91mwj zET{jj3^|H~4uX`;MxCI?r8VHSG^yF)S;y&*Sy>aJ#BNxIJ~A9Efy3x9fIW|11{(f^ zKvJL06$XVa=WjU?IOv*N-q&I}-vd>jvVVvpzzlIA07y)cO+ye4B36k9{Gb`NtD{T$ z{Mph?hBI9uS%#hW&)PUbP8BD+!())tL-1W;QmDO6R^qDLiI!i0>TH>!rQt2o!>Db= z?S$nCP2`{=CMU#EEQ9@!Pwas*fP=8}Uk4lUXP_j1GRCf<9;YMhIW&0aLmGxu!|p^x z3-(z#u=rdkM{vcEoE7=N+`ZAviv9=L^ufAA`^Jb`D!>0e$l$r({7dDGdxS+H#fW5W z?CASYbM}CZ0Py5YMgMZ7PdF841;;EKlE`V)x8By`{oW)wtK8-owOmQ_a%3`b<>5Om z$<oMRZpHuax5JL{01OlH9<~ups}|$0mNH2;Zo1^<p0bPeJX)eUYw5T5uid?I#8(95 z;SeYj)t}pp{4dw_acR{a^F9Q4_X4*E9rGgFh#MLHFLe4BBsl%EKvl{k+C=Ei^7T@* zb$Bj(bl~5i1^nUPs*L~7zk6W)((>o3H^{X@s;CPQkQ9LF0o;X*;4S}?sM=<VK%B6g zu`Li#xSFA3v}G*50^5-DuR#Xc<UvqM2C}zO6~)0cMXD0@&9n1OgSi9Jn}8l_kv)Dg zX!``1T7a?xfX=(&Jm&}C=J(1`cspNRa&L_-ZM4bj4U_|Kb+_E`*Ipf9*a=V}VMe}~ ziY|o<<zT1k?)=$u1P<9~jG&CJdNX{EW+!S<ny-Jjf|C`D79H}Xw9V}{A5eeB+M1Ch zSKzyL^6he*MKI+?mAnt!iiF`?s}BJcmqDIF!?q;gg)1}bc_@w>nYXtPZBhjPV2s5e z<NfKuKhQHEd)PoI%*mq?5!CkU)pcqV+x2zEOR?A}Fr=i&+`fS5oK)aTAH%ge0cg!Z zuKln@9C1Fe|KnltvV%knQ@ljp(BPCmP9g-sAXMIyjV>C%h_mL~Ob8}1?qAyiU|DHQ zKZzOxK-nVhg%yBMB6*}+fO?mpQXVpS?P70l1UM|fDh8o|JZ-VZGKsg@w_89~e$xk_ zUDIc<R1yX$&4{NkR{Fc;(x%#{BLwI2M5BRJ+gacjt*qKeZ~0akLu}^uwgdXUenm?w z1MhE!_+dft!{9g1h17o&3ArYe5$jA#|3UBMz%O>pQrm$X7IG5kt_=Rr-_3XqXyb!@ z-E<L<ALJvJz5u~hSQZJrPUA&6xt>VB&gILdH1LlDt7Vr!J10yw(A4#xGw$5SHCPse zmkc?A!*pySgc1L}qm^?bpym)C9Id+jz5z2x9Gw%0RQYHA*PjLowcyR}H<10l`W5yK z=hC{~`90v*QY&c`FTk0jN$o3lJOwO4j<7+!>^^<~;6@YlbNQ!}T_4@ZeWR_jUtVI^ zF%jJgRv7I2JQp?<4Uemh&YODDmbs4}s{<P5_rq6%BOie~2?iCm3EZrKL*os2ztH#I z$Hz%6T2rF8f*wq&h@wojHW%mX-#L#qS`{t;!M8pQ&bSUM?~AQcstScU$=~zC$O^xn z;xr+?X#a4K^nYPP#-z6bCt&EUFZD)5%JTctWK?4w+?|S$tfv#}*mY3n9)KBx>4NH( zeSO9&EiD5IM`ZIG=p6IK=Xxr03cM6ubSZtz(0F!Gp?5|sXbWkM-OUDPFGi`s!9U9P z$u!~_Z!9+3CRpsea|sP!W5glNw2l+2pOwEA*S-L6)DM0a!0&1Pp>nEBU2>T~YkAka zi|UN`A79`9dRD?e(&3C4u<rgpf3gTxJ8l7cZbrJBCHF*EcRNdsCXS1f`53Ie_V4pG z{aSsRTZ@-DR+^|n05V)pXyM^7u2nzuDy+=%7DLHX*&>Q>(sJy62;V#z30zrwKNyy> zmklg?3`M=F*(dE_Y&O1orz5~A(`CEO1tpHZcknYbH;%vx%l(8D#L?vvho3aNIM3Gs zTT+Q9K}M78=r!A(4<4s%rhhw&$1hkhXlAVloYz^Mf}jI*cv)!iOfy42b7oomAhz-m zrpQ0zm8q0-f<#ziFt`?EnxSAD&=jAr5p^n?XCgjT5BQO_gXtfPJYCT&;IC`D4bgD~ zwf$0cpO2T)S|E0L??jie4Bi@~ppnHDCt6ytPdOTzEU$#AZWB_ePIf)Z)u+54NL_sC z4$hw>*Z0K8X{l5t;h*RI--g?Tl{w}++tlz69#jeJ{xCrv(_)@?x_Rj%^jo!G*d!jQ zkE_-Vnl&uo>u6>WC#O<IX&Z&}{P^Wl5eiW8y#49;YoI)U&aVJ0TFQKXB$Xs|L|QER zBLJ1RbHSdTM#HnfM)y-`Yg|>Cet*RmU|9SyZz2wlBcyDi%Lfg{DiVbI!p!Fz;!=Wn z@6y6cze=@PAFOH?xXpro_>vX7U(7&Pt$$H9={#kOT7yWbN~z{MalWbU__gFXGt0M> zg=^r=A$ViDw))Zxle2j!TE@#uDReU<Zep%)burBu?;P?J25~)ERtw1q3sMs^&gMr) zx1I4Ocj)g+4CPgy5lG^)CJ1^qVn6*-V{vY>mW~+4LJC1s_U>;9dp&;j^38xP*^wTN znT3nDRkTmsSRUT@dIJAX!@zHk&LwiKSNH+EO3ok~C5$eFA&${@qKGVmCyt5RDl0Nr zWz*G^OIDTDl5-CR^+e_z0aL^U%vbgJPIM$vYG!KB+YbjHIsl9L#{ZuWB?x@O@964M zb}_xHg+Zagd5$FUJZ`5H=o3`WtF%TadiGm{c_nJ6gZE-LU+GV@qrC-1ejP!}HuH2n zLD^QUo8atks9W5}o6`_a`HjC1*l)ifRhxW8i~yUlhWAqu3MH?xYYRivsWU2uUJ|*$ z`wjXtE2gy8gh#1Om6|$!*d$iSI)kj~0f&Ohyv$~G)z>*u5>t^kpq#o0E3-HZ+VB8) z<waX6h=`?2ix-n3^rdQX(5BL&$QYBe!J5o}Z)&wsf|b^mn@;A@kl@mW=zbz*^uK-s zcujY`v_6mM6@R?@UvcYR6yiIO(W}C<*3R@YH8H|p^qaKGx(2cJX`yvQGWE0{M00q% zU$pG50+cA~l8kQ7T#{c=?YiT|)`<et(eZ0yo$)f0UC9aK&>Y<SscRkDINv~2zB;L- z-<*U!+m@}iX5GuwO`0UkXz(6ax3_-pT=!+7CqzGYbJaW0G!|e{e1>qtvjS%1*V{`+ zMb$4;8xea26x|L2+6?k@X>DOc*~9I254=Vkr!(5#fW*5|3w<`rpi}riUlipjQ5)=O zIp0FYrP(}8#b<QEJgdJ8NTDa87{p7S0;dr3tzb~1lOjN;UTkv#lxB3}gsze7UgT`{ zgA;{kct)m*_2tiO?$M{^q+L6{>wQ_Ow=?D5vnAQJye^mNZtB=UaDljeLm<1LsEx@H z2dYEhLJQZdkNP{gmYan>o4zI&tjTmi%q@-51!SOovicyBY}Yt7^3+Mhkn$e=c7Sy( z43nM6zVnK?lgi(k`@f&uvyk58Xn3D_&SNHYHI3YynS>K!?sSOee3f$gqG(ifO(3*( zE>I|&Bs4EuA(62>p<-?dR|0!ZWDyF{_<2HosI~FV6ODa3uljx)b%N6t)Bt>=Wh6mQ z0%@vGW6=49>Yo*|UY-|=pmqQTmK}V9aX>@7)D_6~M9YhmC;=EIxg)tL#~?lVzbHIo z63`y$6dqm+QG746KbZtY&~`a{1gC_fI6yS}0b)q5E8N|1K<z{CgzBGGFE(;Wz|I!$ z*J)zdkeHUqnuW~2oA^9PnD(9?v{S0QFQ6h94|8$Ww(1MIX#2$f$2*||;~aTVr$wFg zwnY5Fp00oja+p?EEX*Gh^&cM$Q0i)};xkXmfJ@HPl|TJE3yfz%`E9z4C7T883N(S_ z3KSj|CWd(vD`GH_D)$7TlbYHhIRTRF-FsSqivzycB$CVP0Mu!Y2*kDj&ieEAA9hX@ zymIiYBh(&E-R*7!w*K<R4^Q1OI+j}{>I9g|@PI0v-)V-;wfm;T=W4O*+OTIEe!2^^ zF07B;Gp3I%^Xrt;X+3^Q;@aq^6zvcTXg%tzOMTU5if1Ts-;RG^b|w~+jsM^MZSyf- zC>~YBJM5GcR*uuQCbNhfM~l;gn2R0`fu88Ch#ej!#>?y0vgwfI@1rW0>VUp@<F8bV z+0CPa5qGwKP#n=JXu%@j9BZ(7U@eCchXMQA-8Pg=6NEX|O?w>#BDxYCp0_c8am<8l zo#piBhTS@+Vi$oi-n34j?z-iV;Y-*7NeOkeU(06lAn0HqVsPW>QdpY*+}=feESTZk z4^gaxI+^6O4(^)a(pEB1$>CAIeZ}AK{6ImouG-BepM47`3zRUA7yf(y#0XU2(tZ2n zKMf148_y`UgO^Bu;@>R{I@|X`P8+b=m7LHN$5dAz2+r4Uz(VU_>3K$d$k}RR-*U1j zq%tY7hY3g7)##R$nUKaHHc5mD#ix>JX>gHR3_q7a-U0nd1vrs5ZX_}KsbZoHy-vqb zRvbZF91xUGbw(llXPo%FAPV`NenwfGj5l8Qui5N2#9>AA@`!R9&K|wPnFu-QPE8G5 z42!R=zxY|5RVPGq%i;`k%XGq-Vm;kr_Tq<`#e#K$39zgKsyRB4$=Ux_)M&D$L1@?O zJ|+}-E9VQL;ucEe>{z3<>M3D_dww{Bdm-~aCzLS8mFi8i-Bi3Yr&E<vx3Z<PR{be8 zpC(616BEUVjOJlLYQ3ClCp)j9VK&(4j+gxNgPI@9H6b=u(#xq)J0RVRs6M!vXG9Jl zyiSUx2K6&#)qLAH+~vUOMrt`xxO>aF-mX$<v4e5$oq8h>1UznG@WSo*!34fK5}M7S z(zshZ!i5X-O$&R<6WU4|wP8{p8VXG~(8}M&_l11?SzzI0ua`>4`6OWAI!G&$%`8PN zHhR^hL8ldqSg`787^#-VXKm$%?}dF-iIm}Q7S|UiG;~vxW(Xobb!xRZLKA0NJ!?Vi z_3R&ae+QJHQQ{M0I*d3|!8HSftnf#uCtIpf<;A?U+6H+!nRh>*{{B8AQCg&aD5~e} z$i?xgSI&FP`r-mPcW^PdZsi4owai_dYk>jOfQvFRlmMlfA&F0|&P5ca?qZd8I07{< z2Zy;(<F|FUPj%6*()b9Iqlm%R!qSf+N9|&LquT1xv}%~l+Zd%glVG)&XS+a9H&*ql zX2)YgUH#!0yr_)?0y@zYZws$m$PzJt2oG$l0FGJzVYj)?Qf>^@iZjPGPF#HI<W5#V z{W*^!*D(jIJX|8*_3VI}-c3q7EXg;gw$E_Ry{5X#eoQ%rSAG-4)n$WSXYS+Cwg|V8 z3sqOIF;Qiz^EpUi{1aXQzes?cKC%@awnk?AvH4e1R0p9Co`Ds-Xod;PMVEFVsydR2 z9a(0qoH;=Dpv!_&(gMvD9zCqr!mV79br`&AX~3$zrSH9oEwEuL*6{;%89UR>g|cg0 z#bIIgMMRO8ceX-7x48$du>-c3xGI*O4Tnr}G|BY=_B?>FpP8DaJdiGFKj@}vgTFPM zMkYxtbQ_>DeuU^ml8iYz3EKlH3O}I#904~u>}F6Z2Dv464OAwQ9^BAUfzrEf)k1$} zkNxj_HPSoMFGSZ4vOyKR%us+&_C~)KXolg>n1lwJ>^Y`ulLnt=4;iZEQkhLc%;l28 zpW>d&SnS>mUJyR$xj!7RNhHT7SVy;O-JTOGQDUd0&vPZo^|Xoyrll@ekXBdLXjF%~ zizCWgdp%Ji<7$#($Gc?0FJu#mNp5`ok1Uf!C@|6Zyie3?kkIFB@QrnVDDl&Js!)MW zl9F!c<J{9>`%D?HL($$@;9X9ghV802taH(ab7vp^Sjp|i5gsKOLNSpvKGo;uXo2#6 z&PHRCp88Zk-<UL^BXLHz&tQ2zCVGwT#3_T}!Y#MpLCj+Mh4bT~>nfq0NUuFWpMmux zQ?xlAN$mf~VIj)z)Dx5NP43&86pP94ajfSgBtlc)KzEo*g)lFVpT+LDuS<Y~J^VWw zxFE(n(qIm8Ka*YW1M(_UuS`61ylQ$T-r{jl)bay|?3YZO*BSAr3OY<Y)WuHnG&?jD zW)XuQhCQD2hRd0hw~q>a9Fp6Ukm~K^lH)=r;E!(jJZJV0T~~9!))RDCoqzPtw{T(` zKnS-@D(sEc*uzLFiNpKsoepp416Lsp`@HMb;{(n%`TN6t3C!o#&Q)+vM0iq;wesl- zW(bo;S?3BXgkiM=Mrus2*WY)wVfqxCamG73^Nok2_BB)N3cthnqB7H-^@vo&RaM~2 z^A?kemzPYwXNFtV(=TJH@#h(}Kk^u!|Cnj}S{){&+M-phlZrW(07i`;0}uSOi&`WI zJHWj}zZ<838<V^SO0z2*@_2xT00QKB36p-a{0vK#!hMmh@nJcelnP#6j+W$sZG`Yu zt&vP(nLurMoLV40_er3!ibKk}8J{zr7C1o$*g6FKjf96T4J65fyib<JY<ewX%PQ)| zi|s*rIz6^jI}y`j3T;*b()f9mS#miP`0<qg+Hp{PPca;^nM5GY{T}qDQL2lVwoJO} zl|3@#+b=n639mx)lEkt5`o&9*A&At7B*w_O+kCA>V)~bk0a?dA&-q3@v$n(^?f34q zG?~J9$e}ENz3m4YD(9q)lin=wzsdD&VbFNr6JAXJhHh{23Bgz1udb!hf$3Rcl*JH0 zO|o2ITda-@C`!)pKu(KqFa$r~Wzw($`W<HT5eIbg+(YGO|6!#hExuS4xf!^?ps8@o zYUK?!UHjk4d*FHXm0?vs{!HaJIlRyn7!?ABQ7-BLNf30I5xCvF2}zd^j6i%3#qbJ( z(sS9iO4xSfUGhVa?k%QPQT40Avkr>7tv4lDp%vGY)EyzLZ4LN+9B(x=;env#3?>`i zKW++;|6+YxyN77Gk*pg;Z<3=zGC?iz|Bw@hOp?HMBZ_{d%NJjF(3x93Epm*f1p-98 zBrDWj4me=J7(@H`)!85&mh|7E-CMq|f%(s4eN=xfx2wJW?AsTVa8FGvGI}%_Q9N7p zPFpDj|9m{m=VLPa9l&2{5=u{r;(EjcbyV>!J7Y`pP5)9OVjBH9zE7%E?Ia0$BCLVh zWyb_icGdr=)06Kd6KzT1r^TsCAl3wUN+Qp4f)vEvJ^pc+)svM8ED_Ln*1VH1u?3;B z2s9nV$n`!%t8kos84+?8m9{GvQZ3ZP>Tk_3A&PqhJt0j6a>>T<d*CeZZ6c(|FfiHy zCdQ#QwP!6$SjlpRJSlU)#!ELGU0r!P(wb8|A-YDHpenMStN45Zx=<=+pldK+4Ax>_ zrv!Ct8<az7|Auc?%VIG3PhpF=f)=I9KS9CfwGD}jfE+PsEDh?5I{|ta!F1+VG3=q7 zjqb)S=)7k8lspCbRN(`rV)#RsHpKR#Q=j6kNOeuCdk6{fH25N=$-=^492quylQP*F zJYHe6wE)u>DehWl;pNqgcwRDRE*pyvRy;InheByqf5qwrq-oGC#s%F&=`T!a;Sx}J zLOVg>zef#-^e*D-m8HlB-kw)In~l~$Su7uXt#}CJH%Iv{g4>g@Z(o4(45Uu?pTGT; z)%|2*2Uilf+ZtW%y-ts^Vqg!PsJ?aNhD|yj8=y*vy<wjaeX$BTj~@H-FgM0VSQ%r; z_8}djQheq_;ZH8fvNFk)<2<6ls9IYb+<r0eURmyqVjO>Uq*ePxfySo^Y$7kTb&U&a z%^YFM6NgsX&ou4&k{-J=u0!|1*d^R%#ZOP4Lto%9pOkfen3@Sg6%*g4GJG{ET_cHN zC2Y=7m}if}F!_#7t<{ZJ0O#C1lLTeO^M<w8KdP(hzQ9TJ>|mq4&TQKiFkNZJb?-Y( z`9s62eZ)Y$H5qs1`#*L}xw9|~RIL;4HV*XU>%XrXU3O{k!CN;-T%;7){P;&MP{R0Q znfbe*OBBwPldz=|&|O9T_Ub3deyCu@WJJMhnt>LI51p9AO#uN6nNLZaAXaNVU&8*L zYs@hLd8mz*pr@uGxAAB1T<9kilx<5esC!zy>dD^pPfI_pT@-xCG*ZFpgm414ltj=6 z*@DR^q-8JnuoRQ|&-ApP3J+9yLgUm{T(I(vi_266`KL=*aTVk?C=W&fIlcdq7lZsh z5Lp{j3(|T3uK>32*>oUq1`Lc8du)CI=}2?UEEP`hxryinfm08N4e7lc;Y7#p)tE`X zKy3;r32!yQr`h#?)rBj2hGDKPIM~~-fz%uF*YS2WAz3wtyMD0l{n2=x+;S?l*3K;Y zBJYFZpl(bpx0%c?okLqj=C{*D{+@*_PjtVR4pN5hANo*CX`$+3ns}{1H7pKG)bO)M zLbx`fQ^npDdIR^EqL-r{6@;VQNxB#<x7)8*+5#6?%P1}V@Puwws~sNkSgbw&3LqCL zTzOLoYDxmuq9Ts`;piu*adcP5o9ZAkKLTk}=qe+7TZls~h?x|vZM&^S0{>@r#Sm>N zJ7#{JeQc&EipEUg0;o4Rjrl7Xecc(qPr=+tP*UXkp@$2iNzvi3S`r%@6E&HNXF(VH zxfRnqWVX68V`J%*9_h{gt9kDYzsWp@$n3%~m5I!*J?OTM<}=d<5|iIK6pU+C9g+7E z^f#bOJcDLssN$q@+?Q{<QwF+akY{B<IghTK%JcL~V9I|1qwcCC`<yjuoQogwYz`XE zLR$ZbcJph$HtVC3r3K;)K4~0L5F$kSAURSOWh=S4UO#WR-M*V$M;91P{5LW8U#D`e zxeLEMT?h!}SLU*mZKV?&wO%GV1G`M1*4u_9g<-V0DQyT35~*o9Ks@<Ps{FC_GyaEE z>vd1Xlj>RwV}w!MQeuF~N}W9&ksq4F<&AFd0WNphjAiqOuZUBWLd<>aJl37?4LC}v z@m?U%WcDjgl@u;`yVCT^CH|SHZWNCRT&I^w8SUx6NxXl10A$uTppwlUf$GZHa7{r( zrR|O*RxJ=Cn@Hd_DI$H(F1X%KBtA{)UKB$7iO43CV=G>_;{Htf#Dj~8Szd=^N3&+L zPkoECvoDPK|2mNWc3^mI=Yap=OV8p<t1l77v5}9-BS5MU$nqtY%IKGf#stb9hUlsm zKY(fvvK?EoJd38IMIylNS<%bkdxYYog-#yApFcv>-ACu+!wgDM-h)(j8N{hAv9h5Q z3OdE0DphejyN=f1FlM<sXCiXY^uRc^5tf&0L)g=9(jVt-WeGERc*e2;Z0OnJZvu|6 zwvXhIq5E2bU^=M^%t323K2~TFi*&-{keb})Z~o^$7Uspf3|Z<A`}egABT~*2F+rNV z7;%Te^CS%L<95WW+fc#A3j{E=r!|!@;wG=S&`V}O<YT$;V2p&7%G#+d|F!%lNfn>; z=J$9%vE2xhC?z=07Vk`Gt%`kdk(2J=h<KxOPk~^EK=t=RuJLJmS*s`suJ#772VKE- zCnnO}CfGw5@MgD|DAWI$H?(f4zW|0jwr#MF81yNFxUS_V1~EOKc7E#OesKdzp+(}m zn;``;x_ngZ>Psk8X;;YTxH|NxRtHn9;eKx?In`TW%gLd(q~Cx}t)i6@Htke8OAp-W zGcT?ZRz$i!-ohfWTk2LAem=<b%VaiW$cBmjsopcApE*j((%1A0H=9dlZ7Kd7|LYd- zwse7R8=60v6kZA5u2#>6lj8dav+V)p2HC<$4-5{la_Mf}SSL?#I|u1TJB+rb+ihPC zT3yO|{n$nkncAW)T&CF(_c40UH*L(y1<yyLycZdz^y!}ncw7!XESL*%@olVlIjbJt zutQzPR>Z;W%CJ>xqeYnK;JoluDMySZyyw1}X@P6KU94p8kF5^|MS|K5*F!BVE4J8U zgS3Fg)Aw$5yQR70y$<U^LbO_ti5OuxRM0ME8%zGB4H}RnMa)OTJe?)&VqV>=elCg} z@=r<^kVPopidnRi)XzY68l^g=(zr7vo(^QqE)ktn@Or^|ht2fcC?h*Uw!uBj{2;b7 zWI?NT&oLnyGOiIW8eGY0&g#cZodwfp$nG=aE^cJcA+|8H)h=8`iS5`njGrFn*Ct7; zb+s8EtN*p#X;D(Xt48=e5WG&EiFMT~dF0#6Z?7LRJUDSWIKbHPI%|^Z#RPLLj%Z#Y z-sLM~O>Z}7-Vzs++vo5XY306lceBa&spY2Iam0D}n`GI;(Jueff5nKk91O?{OD+)2 z57Oe?0=+_T+NDbg4LRAS-`SpjQ6$vQb*=e?9l2kSrQaJM^_4bc+}MgskFm$I(HM5B zsmE|QK$w?nKq%QGn<M>PyStR*!`K!zmj`JYkp<}-c+_7`4X*YAbg^3p-cE<o4JrOl ze1XKtD26fledP8ilB>fV{~JiFf&MAjRVsfD_blDtGad)1jK&}Jgp-4hDNY*$Cy8t% z%f8n6s&J)`V=n52r%Cw@-0-m$vn$$c=(@ZAYVh7nu^Xp7H;J{_(e_3Ol*y5<2@C44 zO?p3*iXP_uNRYm4H}zR^)3qo>zkQL?7!+OSn}QlR%DPz^e`k@S<bU$~y>fr?jzZ89 zXCefL(=l>>szQ%%(8ai8o3Q<vq{V`G2O3dq$|Q)c2GG=OSLSw2Vc$Eiu)-bnC6eM> zH}W$*2-oD&U|cbiP8jQ7B)eRhekO%=4KLo1|2cka_u*Mm5;#zhs0FHDah)r;sln9~ zR$Dl>)nitMr{2Uw3yGj>25^!QWI@_Lo=x8;h`B6WPFlqy`p86HPw*P_@fqWx?X;Nt z$(pneAuI<S#jeAvYxv}Alb?RjA<Notj~-}C?mX2~XtmU$m05HK$LakTS5gg98tNUL z!wms#CT58-+dG!uw%AmfJj3U?e<&6<=fk2!A*9~ikCQ+j0IAF%^yLl*kp2dl#ko0< z1CQX52CW5(c_0Rk_V%LryC7SN=z#-j`Tp0l77RR{r#o-pNLSn76_C&O0I|_i+2}`n zMa!!8W8G;VjkdC~md7!rf<#RRcM_Q&S==bLYL?kAKgw}}=cUKj9i!(DcIP+=jci&t z#~Y>Sa#!-+vu-!IeAS<$bh{PB$ouOxvHL$ySto<B*mP0vwxF2}a@H>deZh3^|Hs!` zheg?Kal;mfASERrgMd;J(yfGaccXN7$xtdOEkmbtgETXMbayvO3?0&?@NSHA-t%79 z_x=0G1NW}A*Iw%vf0b?i+(Rm?8IX<0Z!R&eh_q-GAaHUf$Vem>i$R!JvDeIBaWtbj z;lIK|^$gq0h^M>CSt$j<AtUX0*1SX#4&-o;@YbRX);u{98xaapnFVC0xuaJ+Po%^4 zKV!iYeS0xL4R$8;|D$o9^?Nh@&z{=AWtwDLOmA1C4mAz=iKuYZJorSf1}P)s@q7~R z={npl@AK1_FyR7)^(7of6ivThf-Y5B#A3bIdlRvF@diKJMqq?BlmB|l^M}I44ZgGU zt`AbTIpZaU1UqS4Q&u^B&rmvBjd;d0?lbKHrYIIbZ$X#nPf7h^py5;oNGRXsB}sA7 zJ_UL4oh>4|RKvFNgQ5q>2MGjLjHd6Z=*X>fi<|+xYdedxLdaTKJoEU*%;iYKWfa?R z3CUv-2@)J+CrLSQ7Ph`q-&43!#mi_`i(~>GI=pnJ<s_#nc*5=f&z8^uW&aJi@9En( z1IXpX%wqim@98kB=6R#urOeQ0O!vNY%Zr>l*SUF9I$P^o%J+?DVRA2Ra(!ixpPSA$ zetSljU8?+26<vRngE)VV>JzO0;st%QHx@i{=|yh&tgNuVLf&r(!mnTQY75sI(F|Du z!u`sn*ohR2%Tw^LbYq5zP!9mFkt3+IP9csTfB;3E0IN^&RwEDtA42JVf0FM`k~vl@ zz2h;Cl?<%5lh~tV2GN$Qy=b5Il!}7^#zRhOp&eJ)<acNCzvmLb)kbdiG-<L7J*8|& zYNhH!AZ%8JW<G^JeWj<+1I8v-uassg(I5$K|CQ0y<yN`O0I`dn<!l@45mvP``<zmf zL}^!%Hm!nmL;&N|2aMEKDi&}Qe>!$XCoKx;9$W`20J2na-MCKiL8reZCMq@YrMF7y zbQYe7I^8D~pjz7@a8ON^TJ$7{a~Covq+7IxknoQk|M4R>RlQ9_%jH9M!uI_y2@JjC zZawkIq=k6Tw(BGbFr_N-7NIZMES&$-?f)=#YgRZa0x0}k3rm4m=u|62m`$-6L?cRO zXYZAG;--nV@vTcR?kXUH(S%8$Lhrj>_xgrma!*Qip3r*?`U*1S^rQMcP#cCdc^2~` z9uC`L#hO>`>aO{X%<;k~h_XEk-RCT|#28-QsV=ozg~Td;ca%TcSfZ-Jxf-`K2b=dx ze)jS!><wO!i;3h8iQr<m+1a&NxUh`k#y(yZ`u0lZ`u2_yv++9MK<9>wKVlh;EH+H+ z3Uc7kEC>}2)2x4@+bLK`MKw?SO0ss<kbMR<Vx_kqDBlqn-%2J$VVQtx7^v3q<!=~- z3^PBtwRDN#Z{Md_S#o}mgFpDQe!sl@xx(F9>PzdGa$PZF;tv%uy~9?!T5fTrvW$;9 zXscz!DNxXHlO67<nN#t&KID=J!t_YFM?v+w%JpZ?)@O5#^;*@HyxrngDrGq)Y9Exf z0c<627X$ohR+1CN`+{(vo}^2HrT$D58u~P<*e_fb>>?!L@wyptN8sIo>8GuGhaYRb z`d!g278aWx?(V+Oy*iY8GAlP(KH8t6-O^pH2mz)F_BlPmfw{fmcp@41x3wG(@Y)8O z=QHXd(X#?Y%sfLri2m#B05q3LS&9AVi4;B_$ldA9iqJK7ct0JeGFn-w!*0y*+|Jn& zfKj|0`JA=(a4FRjrzETKX@CHMWRO{B21dDcG&ka{S(^@I2_W&RUP~l7>>q@`u1EKq zJ19TdyJCi#K~}!L`GTk{uw+|NDkcVeaYj19ZygjT&GE5GSz~8Kl2VNZMTC>LzNKDE zY5%<{)?CW%1n`+O`tN>YaLVHmd3A5f03daf@y(b)mbV2S1B&;x`~-U*zBVrbbvzF` z51-fq(xXa>P;ql}XQsu^D8w0fyPx$qP6`q}>4ZX+9b$(^9;27AYK?)CV3vJ+x<j_I z_6w}nT6RKZ(}iSm>;#|QStiE#n<oY4=9egSm&q9ZG_;R*Am9?6e61>lkdPGE+J@}s zF7KE>Q7?m^Ag{y9U|xW5)5r5LgQto~6(p~t@F`{pZhccgEsd$_(?O%4WOp1_QyLWM zX}qykXKg|=rxa+zV~WGeYO%00>C(NIwx$(w_UlyrOqJxl-*L>;VT0K!faKi4pOMRe zpwDF5pB0j&Y4|*`P{u2fd7+=E&yAjp)Nki(dw!FZDUx9G$M$%!npfq=u&f~Vg7@ju za;z6H%reL|?&QA__Rmb-THJ~WX^!ct^^E`++O_;E{i9c+Ue3nX6<?5D|1h_3^QNd$ zDY@=*jfJSxS=#XDF%|VY6T|U+^pHP6u8NA)tyd2yrv8r&Rops{jB|$WjZA+Y2YO)| zFSzHb_AlFU6t}h7nPQC|=#)Q{VDej^zJ6lSP`;o~9?2DFeauxwJ%${hm+I;gOCXOv zuc+{gw615~06Diz4kRc5j${9kl^b?n`p#e^x-}&?R^RwriyzFWP)8s%xm=eUaLmf5 ziE*Gd$s>x<sLvoTu^*Z3>#Pefg@p7pPee(#&1kwUyldLzutgWCh{P<UkLMn@OAQPc z7KL%@n<Ag<CO#jt&bK@|F-n<9TD3HuYPL&AH4^Sz`<J`tLU<8BDvG4WHK1$w2R^%Z zP>WskusUgtT_*vb9j_d4G#aa$?ZMNHN!d&Zqlb*C&qNMYOZN%2wN0IR+rzr?aa&_X zE?E7JXi2glOiOPkLNd^C2cbPsQ6anZ3fx|i%KUucv>&NkVm3P_f9B%vm@f=WMO$rp zDqg?dx&c<<#!OyQkrLGGFrR*=qK&<<tX(;n-hvd^!CmYBkIU1w1`zg!u~e1DB;)ux zis|tE7aH-<_KuEvPC)aQhit(J&o(nsg?09EsQNT!c|^uTsvx|;TzOY&Vw_M@YObXB z*lZL=0BLnysifo7#U`^XX&)lhK?CN}RQ=cvyZ2`?b5LcYD*W#SoJ_bLF#|f4Mj0gE z-p+3hRek`^oY1IGzTvdjKbpsnmbe9IIu=dN))XO?nh_#ef<|kNLInQGYn$vaD^3WI zd!;EL>TK&mECD#!m)NYzJNI-aco_RexN%*)$G!&iew=wyF&KsK^1=L($xMb)O-`6Y zm;ZdM3)emKjKTmlde%~zrh<HRH-%n0WfXa9hI@G<iLkI%J`o0ee&~AI(3VDzb=S08 z%{7Q_NCim3RAXbj*46*TLHr^F;pfziG?$sL>~2En6HbTV-I{$fB;io%Bu4^dQ9D`x zlL_)F`e5jH0fHlytiU~u)H;8`QESf#GztKUbnvb@F?<h7D2mKVU=bI~jI}6K9nI-k zo@Phc6M*^_8!5y1c#Tfws<XFP!ML+jz4fo|%(h4Q!?rnvg>zk#$@7`cNTqTUUq&+B zo`gKrLI<ukx#W@kan9>mAcLEa(x|P{6J44kO_KFVIm~Gka@4y*D;5;#zK!TTC568J zKKJCBivWvC#`nb`3<D5(9!=ClTOfa9eF&tJLDN9;CVs<)X|1z)h{N_~B-dt|-!+#n zJ#)u&BakPi!!zz4#nOLopmbECW`m<ala}wZ91k1(WmQV|(1C_jSv0tX9tewFzx19^ z(e^0DgQl#A0J~&UVmXgFNFD6G)MhTzfC9V!dmv2P<`)$NUz@<a7W{GcFzb8XF(%S; zcL`Vkp#9xh*+2p!`R4-jOLB-;2?k#qN<{3c4!t4|vwGHjwfBfS3|fuFJW<##jOjDC zGGJdZU9<ufEuCv_><gi1s5z+P_9{694N}V}8E&<<FT~EN!Yu+adiboV@cIU(ZoIGj zo=vb*mQaxr1^=;s{vz}bC_2J=5y*+wm}k%M#Nw1`j_#6c*<q$zD8s$Y()vg~K4%?o z?*DM$mnk5*1elCY0UYV2F{e^-5$8o>gK`c>=EKj|(H^9Y()+StO^9T9)?Vail(<hy zV;4PIse$HtbYgOPEwPL%Sqpd8{0$s{)N~CC*E89qtTxW9tEc)D%(q+wVO~zgz`a1% zJHk}c%GF>Np{K^fp;!%n>zx{~yJ$3@6uHJ9n~7BFk+teyr)79lsVmR^(v)rhvCF6( zUNa?lF!);}pO#{#1E4C<`BoqN7D<PiEH}&|WD7<Xj5NE268*ALP(FT%&{zTRS<CqM zq~6PigL0(kP&4Lo7~Z5CGbQq2%d)_S*bV4<t#>YBV3J~#V7xRWkt!Eh9q{zpA1Rz5 zMdF=JtSNo})#F%_AwjKa&&mZA`KgZZw>GP5018sNTQyXv4!jI#_Oe4mA3KWc_-SO9 zH9;{5-V#@Zctmh{Kf|%SLDz34V{F6S1;px9N==q6G;><=lBP>6Gbemcl2h5r*AQMT zU)a1#EvS}v8GGtw(0G7ub?5O1Ox2}+IKaOH`vX6f*qOIOi09m|$3-Yag&2bS3|Qzr z?mXLmij*UD(<*sL{T|y-6wa~q;5n%x_O`K08C9<~^ZUZ@64crwFvUEEwKSFpJRjkH zZ5rG~I0=im0-&=y#DPxUX?}-*obehpUYX3l?KvW{fLk-6+jn6x#!{yXAQ~?O!)In{ zt(c44t_HsnYSAb%PjO3eM=#<VlF`-ioZT>;;str0W&X7+(cF&@5c;;(x3Ods`PCzR z;YXhgEzf;h@ANP&gy$D`Yj)Bw{IYO%8#XvMP}i8Qo(h3ID3ZOfs&&CGPcHaM+6u~V ze;N|M^}1b}a`1?gA0qO{Mfjcyqj{sG4yiiXEHx5644HOw8)tU(O6s|Sff%sl*D$^w zGfglGzoFqgTWD<;lVKH`RJ`0c(0f9lh#lQ*!)b7s1w&(Lp$hT@!?w8|dkw~pb^@!J z(dQa@G~z!Rel9@(V3cHtY{Y=qDbh$cAAPai+8n+1dXh^&MPsrU%YGvT)$U>tL~`oh zq;=xyU|aQB=3o4{LW4Lq&|vK-<6wYP$)3FtaGm31H+{GBc|*(5JYb24YRB$d5WuIn z33n3yBOL&qUHnHko#Y-n#M}a4t!(&r%G2894ik%;yGnf8m{cFKRyK&HreP@VCllH8 zU#|PfU^H#s$g2#>mRg7iPU9_?O~SbgrJf#Dj>kKI9JlQ-D_8D_7njJDjG)y_G5$(! z=c-n(YwwPd<SVfFEe)wEg{^8>QHNf}{qd{A1O4IW=2FnDMB=>PyB_FT6nv?*?<&!# zuxh$J;tD~dfc*`QEVYmz^}{6L0M(4HkP<*9yq*sORzF+)^}JiAH^+(^lB6;2)8y7E zO2^0HnIE3LKUpq}%oA)ZJRjWvUgN$!!XC6@7Rqlv$^+Q>!iuFO=O*(G1{B{`SGG*I z^;E(AMBI)09z_pOssUi$-#X-p5glX>dP%Xlm!of0U1Ux8XCtL2O!N~YOFyg^viplz zeIc!>5lNzAI0C}Zyaqhwj-=7;_ZS8eA>&tVI&D_`LlEcjt-wN>9slfDb~1&ECiw9l zg*_XwYu0-0g7okG4|=UT?Rnp<tM58+k$k&%AKQf*Xd?gZhdDuW$5zlI&HCttxF2(u z1J%T)W;t*8h}YXkLwgLT-_1Db%a5RDThPO^k1mJ<`;X=fOS2U^KMVQYQ3RX_)G7>4 zwH}5glGb>oMyT+^7V3c({=5H-Z?HVr=!;tY@V3OL?bv70i+t>y&vjJ(+_w~6qFgeY z)^PdcWxXo*J{APO;xepnsrgy`3^p%bm-e>HO~kImP7FC`Ru#%tl+?IfXRd6|h1ZIp z_GBToL#IOKs5WvOvth|vD_|I(%FQ}iM#3)NcoZwt3r+OH(}S+T5GHYcoC{_hV-q~9 zME0#a3qylTMoaKk&{>54uKpP1#K~b-V&E^SMF;iG7;+goeZEg$EPHJa!Xz--@8-#< zdS9sIbg=3S0ID!<K|>)4wfIMaHB0wa6a*@hBsrIg%Ok*0wf_mW1925WfzLYU$tK^m z31UL11vuzR2sW#Yw@`E%GWGk)Sz@M!IkJlt7}iVMS$GXA_Vh9~>pmvmCjK>)zXeVH zHNA`HfPLd|XQ3<gzgIR0$xy=mF*7x#P1#lf<!*5+Hwz$5&<qFSH?0H~>n{@FDvAZX zz<u4z0jwpZV~R=+ghV}w5ID4timWkBP=l3r0TR^!rP~>~UJ%ePAwo@_-Y8z{?gXeL z5;Tj`o4*$QS$!D*xE%b9OHf{YTinYI1fv?y@Goj~4O3G>fr|NN<YpRExWfJ#&}SNu zmjh5LOHU4QWu4%eynuE(vh)B0cajM*>Ms#z7NS6gqv#)e86f&^4NlY$BgJl{CY*Cn zVEiqT7zoTSUen=9zPgZOj-@3;XJ{S{o{tk22Ta%K!kOjPH!Ho(W_|+DWlc$FFr8jG zg#OqJt%$#VIwOg0@*6)5pjQ3cXW(z3{UGL|z1je>+8Elsuc*7@>%4woiioV}3wMtG zy{ZdGw4Ib<e+Ky_dwvU@$o}j0<cu(4L>uY)r3SLe+pDYJzl)W<!y822<`e|FNftD% zWCk9?qDU@MUn`cs=!^0qXzr=FWNhX^4bays4|hU;PC?2pSe>k}syP43S-CMe=wccK z_#1yu*m=FEl}294$zUDia^KOD%5p?xh9OA>yU#rE1Gi8AL|}|l6(E_Calb4mM(fV~ z(I3gI4m+WYE%Bf&oM03W2X{YUBUxS(Te@Fn#vU^P8WGgRuv54OV02T1K)1}~8vZX+ zrHWmNrBY%Ttoxv_ay}}zWiAAJu4d*{XYt>XO{tgdP?z;vfgNO?kOPV3-5_BfOhUQ* zfMQnZXWI$-5-=12c2iQ72Egy>{+Xm}7RF(NJM9_+#4A)k!eh6>ibOjeZ2k^kYfu0% zSROtzNCYndEATB2r=aM3{&MRY0ST(Uovc%j1yrgRa4cBArrW*dq)oQEy*O?yj)Nqm zy8JpzmFZ6D%K+3_e{Z*sb)xpQKnn9C1__emp>UiYKoStEj9!!%0X3}rhYVA}zrXX3 z2*O$%;B|fXsA%oZ-a&=?wvSgna`oyLj<dVj8Emtm!@cnenmdn1?EK3?ZMIgAV&L~K zS%VIKSKtANf#<a>Mv4GTfG`LI*rNd;#(#Y%w*KXE%Z&MEmB4-A$BzrZA}ieF+zyLS z<M#PpiI9-VM*<VKM_<&q%hOZvBcuT{i{6@Z^$i`@<U})oozM@j|292wnB-`blpd@Z z6~0iCCY9V_;@$a~6rU^4cUx(At`+on3j`*K#LoTp5GX}qu9O1!bMW}s0s{-B-nKie zR5;fNvcaPpeU>iLox`8i<gP7ZuBm?iD24`<wzvzvT_Vv8+VlQTSFmCYQ0Nl{{Ed3R zcl0!aw*g!wZeC|Jv+@q5A^-BY;7unO&*INXnmfWd+XmiOcq|VoOEiKJ`^&GE2B=3w z241MSFD(cg;4)ffI02&^z~kY#X6amtoNq6<Dpy>cbZuTE5&@)hO1xXBGE{{;9MtcA z(@lVCD|kUt{3A5VtTKW`*ivPX{q1wj%WHZjLG>ScW~%}paQh$)Cx&jWTYZ@q4m42P zDqoKLdP^g6L<6aAmd#C${GRmG!1__)Jc)|^t;4_rN0VD}KnIAZP^m{(m*xJti#idV zhrWwP<6@TZLV55F`DB*0s$;p20%$q9#++JxSy<G*R_vo96OBL_{MUf@+i-IEq01bi zEBF2vN?7@!;G3Pl{HDi&y*d29E$C8ITiiV5XCuI5{^*e^FGj<~k1F-040bS|xH&@` zX+aP3OxQ7+wB{sJH{(+?Q`WR-RVG-EVz}OEjAmNVt7qh*i%yy_f)BvF{(!9DCpYja z8={97)UfF9Dy?(}0G{K&&Hf)A>mebRU;m>z(!0WR;As^<7q_286FmjU#vzzcz&8Ls z+&L@YA-481Gu3Nv>XohxBN^}+q0GP;=dtAjj5@b7nY%pzd>;XTM_>_t6K#|9tOU!w z#J#u{tYB_w)irchsSxxdyHZg3FS21hV^q4JR3YqgCMx*xKp2&^1Of$cQ_x?%0H`5f zpso9f;Slt|0T^Sby}RDcJKYqW&a_gHsacLBRvPqs(dQ(0i|<35s-pLakyqa)2KcPG z1->z=1WQ`xSl;`UsKwigGk#{%pbQK=5Zs5Q6uvlrGQi(kSHrH>OB{ll%N<yvRuwm8 znur4pPHaA2Pcs!$(y?;Uv>HYL%9e)v?xp+(k4DsNwewdCrDa@rpi2#^=yfc5;LM_T z0BlnZ9b+MN_k+-y1Aqa2b64Iq5cAlWpguR@qb}Le>9>Y@O)4#YooUu~);VpKqd~?u zm;->7DDsEKH_BEFp=VyzaM9Kyly+F_Hj?(~VUwa#wgcKATj5mXga*<41;+&;9NNyH zE4A$@!sR!ldaluEJ26&U;<J)$Ei6|JDC@usH}dto3j`#nps#K@3CuWLtxH|6y<>2! z=Smx{x<C~=%uo^)Kr*U)05_xBV`sX_*{#$UZx5))KYo=i1+Erj*>zxbi%eG2GbkFr z*D<~U*m+~HL0&_vJko?HCpC(5XD3ixxd|?|QSB$bG9WN)i`B8|rcGN4Sc7gf;;d(W z-k8bnDPJeZs?UG+kWXy2N4y96iCW%v2uy`4(zoZwYfqViW64NAv6W*phS^ZeKhk+C zFrMT?>-CBC!uN0yR8qUfE{;!+fAIBg)RoJ2t`q*(pCk(cjp^pC6<mJ$dgXPp84^H< z61hRR6a*S`do}=wjF3%T)T2^2TuX}>yXIHAGe=kJ)IVVg(GzC2vp5{nEtb+}AxMv| zh^e^wK9^+e97K~$RTmvjL%ZQ;QLGM<JrWJ}JO*;SqlXQgqIOK0p~Y3AMEja!+PZGR z$EvbSPo5T&<90tT{jx$Vb_Nxw$mV#$5;ler%WFD+Ov#pQA`yMHbXBLVAqW`}nhAJ$ zVut%0wKpT1sLYRe#<;UEf7UY)bG8C32O9GJSPrm8;2tSdhs82)w5;NYGu!hNtLia| zV25UC2OiT5Y~bS=w`5@iXU!!o6T+Br;Avd}jBen<$p3~d!#?9XTFx;~Iqq?6TpF+C zcx{@p`N`E>--QkJH`0<eT}}#ZiW(@03;RV;bvqt!SbTv5X}wi;7W}GGje>OC-5&oY z+3qeZF_xxzTSv0=Ze*%JYi2(H79=Awoy-o7Cq?|Uf_qFd0!E!RU(e!p=&@1qtyVD; zhmE)WDgth-)iHIWmMh2{?b4qOKW(oz>77T4`uY`{tsJL#&aNiiy$Sh>X?`Bm&vHGM zwXrlXWSL4Q(1-`5%P(f1-oy*Ok1{(&ef>zXi3Fv#?AB7N#v8kIQ88M@&o8+ZmRUX| zN<wenZkWzXO)1LbT|MNP^Sn5&KQVt1$TzoYo1CIJ;fdG)V#7d+s`t7}ufSvV^)bjS z=Y#_((zP1{p}CH7rl3bh*zZ4XSztx+l|z8Mp=&*jHE+z=&!X9%E6gmn+oZ@cBz9mm zyk@zpM8RmBb;_tUH>mkp87IZjAlT(N!u0Wa*p*HGUAM*!o4dTAwDTjIGPVVMS_15= z+l$Uk8aE<iqU;?%w)ktiuAUYj7T9WSz^Vwp#Cs`<y;!3{I9H|vzD5?x83O_GHGX*{ ztv{}`MUAnihuLaKjF@}$UXSVW(-`uxk7mOn;^vHc7L|4Q<2z1e`wQMzFR!qRQtso9 zxy=5uHH3*@Wl{aURH_r>*U}U|jN9M{kE47;pCl0*6-j>3VSO`TW)K2j7A3Uri+nI< zz`0*hGw|b+DWyLXaDe(fR^zeJkMo~j$1l%(w~^&|s`4}OdCN@X7Re#uHM3eO8|dhN z)|h0uV{DfVLiI%6_c*hg1Zn6CNsZ`%JCVVhm3~WKVCj?lTf{SC&IU}V9}#jxJ_EE= zy~g8XdJ+9x{i1WcT#;pbBRo`2tIf_u;W{M&VPjf#qb>W#nfFl*gU8>gZ0~p%v=M~> z_?i%~Oo+gBhViVWHN5<#s?EoXm@Dzi?iE&&L3flVWaU~;8GY^R<I`hFexJA*EN9O{ zHu6eK9|@B=NvO7@0q^JRjao_5=>km-zPpR4l{S_%>JM+G<^QxP&;-&KzZvIwMg{_- zJ2_K%icJ3NX;sX1rNpI`7SK;L^RxKrKeYx$jy!txHnpT}lzi4ie+|(=*Vtb)E@g?2 z@#4PLB;*AYwSMBX+BK?H!D%@Gr^4~YEJ#fFW<hBe%cSyvcoSgzP&@&FkocB>)2W(| z<Df`*n2n`nJy+S;PLFpWhoAT(9*QLZK+xQk-#8-eyB<UY{8;>h?2~xoiV;T@2lw!e zQlZiSyd?+xaN}G8Fp}Anw7oWmfbP%do;`$#epWbtSBH9B<e6xyMs@&X1MES5dUwqP z_PTK&pHVaCiVu*W-r}yiCLvGGplQnd$>}*SSA=!8A3r-;D;yQ+VcXd1C(d`YGOS!- zIx6?TKUpB0a(SFB{w?+2_m=_xtNB<W1hg7ll2&)AE-hdjtT7OaZ$6<|$u+m%wy5de zc1vk+bLtU`Uk`gyr6x<vg$k!vP12+Kn!@d5yelJ4+fvm!;bS;XO=hGLxNKzUTUf4d zRjxDF9%CRK^<iYRMaQ0ugC>7l`o-#sO@X#Fbs_=zAm=l-d}39mt9+U9n9_5y`A3j8 z1y<(j&@hOfYd?l7(GCl7rlrFD^lCGu;72t|C^}NB<Fao$Dyu|y<4?7zXqM0t(P7&@ zzZC+My294d`Y}UtU#Nmk*m*?)73-OXch%>B>0flqER$~Nxn|W{ckCV=E=<uuA8J!T z)H;;eri?2gS}BUAt~(Yv5MDJ)_}Vli#<i7OIWUvODfU0pBMV)ll?9q5GfkV-%tx0- z-Ls)43<9I|dYgJ?6-r?`&7|dfgJkUU-n{D!hKiNXs+~>J(!*xEDE(T_l@~Mdhi5j1 zqOjPf2Qdp3Cj91jhPuu3>idx6L+08$fso=N8^-knMx$T4nJ!6A1rZhU`i|P#o;7K_ z7(`)fMH91z!-j{kcZ*fRYJ{veQ9mzfkw($fa9>HeDC?I+|BX{qxB?Z<Z<8NTq?qr0 z4rA-8XMkaLD<j+!ap$uRY#hW{UsPnL2RTK<K;ZtpBXo6ZA=54UST*%EPY?MbmV*bc zACx@6XgNIfCI8#gjCXUS$OG4jV)T>nU3g*meuj=fojn=KB34|fP*Ij@7yuP=^?6)Q zq*h_jF~5{bOs?;|ON@<5$d&Q)*Lult0%1fD(l>^K&02IuMS1PD71_NnBZU<rQB*~h zSy1Dm`4Mu_8Q^_fg~}h^_KmNME(Ell8yfST$Wne9Wy}m6YgrFTPQb-l&EO#}J!qUs zR4R2)Ix<kMNK;02#L8CAYlSko7SGIPR>Kp<713)4MYZR!x>8Ek)1T+p+zwt`c7FDF zMQm(9AsPt_*sQ-?35i^5jP73WkLoE?eWPPJq3-LMfDW_%BXpwFMRJ187-&iB!zOSz z*esUH1H|6y-sSA>Q?L)$PY0l4z~3$3n|;w_f$`%J(uY0r$%`A>d=laCpbyZyU{WVU zFs_f;zezpaI!B_~bS{(T9GyTYj3$6OI7Milo&T@h-}by#c<W)men}5YlnI^fUGCLu zh(bRaypM{_j?@K)3{KD_QkOC!o;<&+vy<K3=4ye`zVY~~TkFqV&6a*`eLjCvhLMN# z*Bunm&cSZMDh2hPGLDdaQlar44QMU~ysS7v`nDzZo@e)dt6zOEi{r{-UF72Q1pT72 zS&SmheNAk38)7PTj&FGdM`M>03AB={1kbwB#wdaW#x2E${EegG3PaRX4g~Ir1z*Av z%-HiMyZRJnBf9&j+w3=Q$KY}J=ww>ksMKR-ok;c`CG^%JvrXK?4RW(9BIoCb(2_Yz z#rvcP><%o@z4iPmV;2~25vP59|6{8U<APTxy!l$_1E`+(s<4(q5bPxbNC?NaBb8jU zP!G@RF0Euwo(&E<3Egu9HH2fXw(LmAd-yS=tteIFV82Ki=`@~PTl(23=jBX(0JZ7p zRC2k;?~@CprUQ^v8?ozJjW=cT50DB5z-xCTGk}-HX-{;df_Hs>UNls-&f8-k<_c`j zVj=A}-dDq5duzoHAYo3zDgI9pd!K`KnD>P&w&QmL+27%tR%p&-V^CQqm_G|o<=4W; zCYG_~TbpHZP?zqXj0f@)kdclvhdOJ3ayPPUtR<cmc5)<^#&*6Hipdqcv9P$s0vR}i zC$W7azx=M$@%_sVX_9QLEzMM|GkFrd(PsB#;hm+{Y=>?I;_zn*#5RQ1YpA=6>$8W} z#HLEsnx-!upH3(e-YSRP<g4%1YFF)uaOl&r<uw^>3ssaGy|1&BoIzrc>rfsu%PN}q zijMzs{5z4wcPZqTlFdy;VpW8aWo?MIjRYc`p4Wn2<}Vvl;^_#GroV_pgu91T#x5$` zn=-y7jwVr74uL>lnWP!fCpLc}drJ~4uEx*5I!hj`jC`}uAK<3K5MGoD*)UPr!FsxR zH0V{-*8Jn~VFyJFbDZ4yn6o6}r}P23)20_-uova%Vf&e(VIJ<m#Oc$8ih1ko=h~cw zmtY&vdzg!LnC2DG*Zd6)-jZ_DOqXXTw$EJK^)rZG8EPuZlZ?7`5u>^6-|XHR8nWg~ z&W=CMjxcnoAuCix(#NPyhg2rzPx5*a6CnC!)y{<>OFG$$Nf3Hx>mb8zE}ngo2t&=8 zPx_O0dL#wZ4^R#7cUcWwrxx9U)PGblxMIuTMg+6g&&TT&da_^n8-$@6>Q1QFxm%-e zN~Pa)R^k1{!ywh9CQ0=@Hus3|DVshB@|X55%=%&r)Gt~(4pWL{Mh&)9`=nu{i3CF5 z_wgxd333`2>qb^0cOTTg>+3!Vg>hEUz#tXMieo;~DUS?_mwCm=zr0aZum9{%a}wa} ziq^iHPb0fMS|RMTK<mF@RaNKG^LcdDV_v6X<vKhGtGU<3^CK$fdTt;!*$Jp;F#kNM zBiD}<E_&BfwwI(mkLj6sMDrASUXW9B<-PWrTGGpEp%%ao|N1semfoypnvNRbk*`&1 zvWk(@-PD{s&=M!i9`;poE$FBpk|8^#QUNC@oDfOW>XD_07s;+hQk}-!e*JjaDll6s z6l7*l5c&kt%ii6(xByV#o5Kb92vbrg{g1_UV;GqlHUU!45c)TedYN&_Dl!9>1t%%y zw&>6`0G~xMxL=}5;4T9+JCIqQ;<7ccGg;Nr!2%(V?JAu<*e^%FsX%a9TFv@>rG`Cc zZr;xHiS;(NVrkY=SJs;6yJ~aZ&z4P)w$fI6sJ-e8&Borza#0#_Zc1K>Ss(3O?9!f) zgF_w;23>N`3d`5gCRYUk1@KQWOapv?fQ{}KD8$7{ejdeOh%uUZa<fZ9o-2Q?r{)$1 z8;U?{woXsKo9hFmVk(+kjv^DL=T#<TbF5PzX|^@L6~c1%oQ3)b3*<Trh{te5#<&u7 zvY}Hfv2t$UIN9|b58{beS1BWUUSs|5f(#<vuq7amkBWG<(%z6`STkPWGlmB*(wggO zjyk;e3iA9!aG^}QPy8ZqhBHeHkia#bl%p=(n|h%u-4(}y^0bnySG^aR^y*AeOT<Sp z+J|nDs(w<|qzH4mTB%I|szmxabDllslLP^UiB4Ypr@o;(m?T4${renBhMtxhn(%zf z(06@r%P~tmT91_mHCVQ~>uv5))QZ3$2~lT{rIAKhG>TL2Ml!>c35OyDhXirVOqnBM zBHg3W2e}pMowMtK&rkjK7c{uHA>*AE>LU=)0(fI)14fT8E=FEwDbs~_>O7+n6~Hfx zWq^5z0V4Q$&Da)a^^fK!cdF<<WDHu}4Ubgoo@k<aph<;ky<@;o?Q$1mlKZtKQ+$b2 z4nP5A|J0TcpJivRwNMg#u{rwujV@6Uskcbl$6AjGmoBZ0oaCEX#+X-5xSJ!)Qdva~ zJrwm7^XW#^K*x|bt;tPQZL`-cjKkQ9NVe3xtJL|}Y|aj!)(WO&8<9<4EWW7~R1(#5 zH8rEg<EUD!sPEIMbCh5bD|F$5Opcsass4IG{d+N~bKVg}GOq5#zke3p5|7{@8>cVa zW_VY^Y|*RABvVEDyYegX)N)AVb#h(s#oT5ZI=+_^!4eZ`?o;eB9(#KA9>}@Od}aXC zfV3_=l!2mn>Wdm_4ZY{Rh!(5dY%+Mot`uRWNOeoFT7?Z-3T*D8`nZwJO=blzRELM^ z#3FaQz)=Zh#-*z2et#Im0Pl1O?w;MXj}%(@5Vbu|iFd{NKzK#I9@wqZq)Fl96ElAP zcD3qI+P)u*_(drnsz>PDsKcC`U}#ki)@;2f;P{KrHkNT@B~<2R)hv(rv!6nZ&QMxk zb)q~AAM${;wBUm?*!GR*T5zb7(@eZD>g|R5x66f+)ugKSiqtBrL%%=CUTHNexDm$6 zyiQh@fybn%!L~zfi&~5FrJ%THno6>e<8!@s`WNoKbd~A+FOQ0{AG7HLntf9Fs9v|g zf@=(2CVypM&gYW-4?2Z9nh9OoQp9-i)b{-<ePO;lq`Wl!)SBI@c@?TKIQ>K^&WG3n zJ)Y5|Y;*aQ*%smB@2U^;Q;RC%Fz}c<gjT^VT0e0|nyH^$U|t3?H@#PM(Ke+nDVbKD z_k7CcPf<6zP!wA?MF0+`X~b|R!bJwaN-1v%8#1cWz_cSeZ>M3Pj*1|k^PdREbX)H~ zOcYgypJ4C(+(o69uj@Y<{h_L^%P)Jvn-zn<sXy8EvA{1QjIJ2wh-pOFpBf2C4k%bi ztrAQ!{}nPT-7rn$uO6q8SyuVBXFa+6=VCy67*zYk2h~nbTLlRnAlC<)k4kUKc(j}y z8=ugQOno-!p*cG}^YQPb^Q-AB1*2ixmaT{I&SK?Iw_~=1Ri4W>d=AKuh{B)xq=3KR zEQjs)kcdhZ12->O!?UkT`=OGMi<4o?gI9e+&ZZcvHa9rbm1J7e!&#Y~$TB`EYMk5% zg*A88@YZ;1!H|Ua%~tgW*VL<NqpP|Z#r3;7dx=G{o%=IF%?hT<OR{B{IC3c=0o?iU z>Oh!b`HSQpX}sz<A&bxb$34l%U((pHbgG0`=F5uC;|m;i+mbBe3-lVYG7g%Y-xNc4 z-0z)4OZ*C*Xi=!Q&T2!?^L(cL5WKl&qxgFG)Qqf&1VgF3q(`*k{&k+D#<K!$$?9(Y z%<HF7@@yz>$B<TI*tL8e?nz$qgO$Q#U^1`bvkzTEaG-(kYIY2qF1F8)34MDauHHec zl#WBuGBSRA{CVB^(;aKK&&4(r$9Ufe22Ck^UjatFjq6Z<M!8U1jO!d3*<2Ni*^UMf z&Nl?R|ItjK3%Be&_ENQmbs!;B5tH~?Pt-;!C!qZhUb=%Lz|NE3ZNh@2tskpi7yCdC zGcXW}-eh5Z63IBJW~^ENtMF9;)hEIVT=#pt&X#4fWj8Y_X|$uLwV%#(%{3ZbUI(6| zK|P0iE|Dpsvhl*{S~*)$;W|F7D9-wemIY{C3{NoVA0?OgxJ*Ci@ymQMX<jhDlCPOD z>1=w`ZQ^*GH<dFcilUWTJ?s8b<ftl|ut26$$4vjb6alRa+@C<RR)_1W(40!#HEH;F z)n&XmfO`GcD_)kax<Wq#P9hxpQ4I&(BFvk+JgaKtmsUt344?{R_zHL{Mcg9Unb5`- zjZj~R6T>b_GPmtEB%Q#@*#@#Yhd{R`Cq$J{5WMY@Y;(x80FpK<7?WK*YJOHPCM@oW zTW8&22Y7S%oxWy#baH#lsGQckTx>I|CeIA>*WsWlvlOf-a{Gxp4QUf#9W_5<;tEqH zkKC0RkFwt<?{0m^Y>$`uoYi_||9F|QZI(iHFqU++FGCyd0gvgfNJk-U_asfOSawQE zD)NsjFbUO};23+B=$t^U<uV2<=~+=Ck9FU*&h@GiE^VF`O%f~g1MgWRBf{+J*j#j6 zZMmAEdQX`Zr}FFbYmvh1P7Y8vB)bJM=t)#=oLbn4KpA~C0}zD--ECu(J~&7RVTnk9 z_UbnE@q*^|wLz~=Q(!NtCto^A5oA2C8rqIX($d7<X88nOyDz;iA3t?eL=*t<YX|LK z8V8wqFO^br_g!su|My!p&xQ4GB(txl!5IHL19rb-UH1FF`aun4>iGRpN!{S6B>iUw zR?(kQ7VS00vc-dj6s^`qDQU3bMh!gLm@Mi@lA~O`DJvViG2!%;+59QGRVcZ^^?+G& z0tk2FXXP?(tLMKfm$bYrCD5FqY(TT=$o+r|UZ9MBdechxjt1wy({Y_!;?@;)_~!DA zz5oNxf2s6VgaBfI3?9GU2A?74dk1%amT1j4my`*iSTFX@$CkW~M4!F`H46vX^7YW) z)QX(y6^_}Sn{}X|+PsI*qrP9GE`RpQGAtLc-fMLWpVIhO^<%JgJ3o2+SY=mi&RxY_ zNG6v=oXRgP>G+~8Z$czTCrVAb%>_COu3~^>?BRoGA(>WfoMO7Rqt}<eoK6=N1eQ)g zvT$jHKe9Qjp4vEZspSO3Sg(z0=X`H1Qh`;G7!-FqZz<MiPZ_`9u?vN+QQq9nM_$iJ zw<NOc6xf#WB)fuBp^@~m+ZHaaX0#nR3)yisDs29b{h_cx1(%(O1*dT%o-Hylh)-gw zNz>M{zUkx!5BXg#)av8MzRM4RZ~=)Q6CAD|jw<g1Nq~(t{+S7Ct||%_+D!T}o$O%d zX0?8(Kz1sIU&|dw*}VMdnU^Z!O7qqBV}Pvi1wmJ6P#{(DQKEOOPuf~Leo`&;Gf8gt zKpSJ`%MFtCRWIO^iRv_-;-IKyO>kF40KD;v17cK#-RWY#XO)KpKlUkqBTo&(fCuq% zx|SUn&vnNa_xsCX(+}{PUdM*l;_7o>XLNWnm$hn4wmXwK40LJOnfFP{!;Eu<%l!!7 z3^!MOA!LcdVD?*&>>Dppd4D=BI3oL%(vrq}nyj)zE&tkY;rDwP%n14Mc1L%B^;*vT z+cN1FW+4PG`D`rfab4xbBQKObxS~*G!WN*k?19}SCm<1k)8D-tTiGaeG&mlAjB4n3 z5rI|O(rl(mn8~U8kbrJVv0**Ko|N?Te7h%sV!?t*hrOLNeJB4&;TMaAenG_in_{nv zVa`5`#kcpZLLUE67Rx<>*iew-Ss04CE0hGt!D)-CZcVyYzCM1#dKWmI$UQB^-jM5* zK#dxUvUf;}u_sunO=f*i-IN~2h&rw+m2Q7ESel}T&Z(k<MjDoj`P7=DRVUgKzjmh( zf|n%*<6Rgy+R5ju6=fOiwvNuQU>#-6d;tg%aAOBo;bKH^-mB90&&Hgti2QRf?yh<| zkN4{rIN7v}f_QrOZ#-Se3&{5!O(-^!a<cRv7wRtG3*4QJWEAuuhd<SFrKj-S!f!cJ z2;>M3sdGLz2234HD3G8mcO3TliI!|rY5=Ne+4XKemp>gZMkQ0YbYhZ@R4l|uZXPAR z*pEew)<C^%cMU2C?qnoEqqX_W(Sv><fTfMml9VlqqbR#11M3=?uM@pctpJ8@4b}pM zCAA@JzmTuSV0NBqfqSNHy^yyzsW5B-Agq1h+*e`6c$ty?y0Y;`-6Ib<&5Zjx<h?(V z7?g>->cCx8;f@{?0GFOwEGlOEAXSwAwY5<VCIJm>{gX^~lr;9t%-`8d(Lpo6a~scx zkFmGy34*2N@$d(X^O2Tf2^$rW`ve86JMU*%dHNL39r{b|w|`7CzzebaE)^}=PS-JU z@9?r(P0O!xOu>QU603dABoSR*%jdd%{ri3b^LZVOUx7`ZLUPm6p1NR47YkXAM|HkU zj*ctjx;X;7eq$e%)D*1HA71aX_KlR`><Vf&0bT^-s{72%Sffc$K8ZZoXC7^7JJTuT z**uDSvHaZBwAMV2U?_6xRWkG`l7+0Zgf&^<fb2WieQ{VWF#X0`!O@bo{W=zy1cJJ{ z#4_P-$t3sqVq&|b%3W@_bjt;fN+XxsIYu|r@R+3vituN%3g-Re3d7z*&1^_tWl`g1 z;k}DAj!dLS6cd>?54NOwKZx9*XeSiG!Uz~GyA_JZRQXP3p?cMu-|IZs!|r^}j+DA6 zQ=C<SiR&FWwmRa~G8|*DNaUhSb)>Z1k#=TllZF_z^TC>$ji)ug;q}B;%AnLs-6YPz zx_7&C8!ut>k+GPA>pfNzE)G)|*r$^FFQQmF?;s-&cWho(yhK!PtDY5&eiQP<ZVHt} zn9=LlVwS;wgFS@*ilz3(13xNdDt7`bOq|V}0I9k9-dJaFgg+%YjzP^vWCGrZK6=C& zIq#y-#lZD_RxE1>S~L<6ao3G$D$41}8w*w<QZ(YRXY89;=E@i)TG)Ph&J}7oF4E6q z4o&(h8@#(T?}vW2nZ>M9!gfB1b1}+tydc#lYBp|V)Uim{!%p^6Ot5mc_)r*t)@rm3 zoQ)l49@ESDOH?T+x4Y=~JRyM1zSk*~BVXq)e1kt$+^h(1GMMs*dpYJwVccFbE$-%U z&|S@+q2LHzZJuv?xUGS86dHhe+81gOm=^V6I_%~otUpt-kHt+wlm-V|Cyyi@RhPRJ zpBFh)q^tStcwRGZ>(<|G_a_H%1R_~&M5l@a4*XY}1DQdtc6Mi%djfYv#@KTo`24h# zm%@+>8Nm^qp^mEQ*ZZ8gT&6|{L@4^5(3q}@<kX%vd$|k-@(`c7t~M-{*=I)w&$D~B zA`oLLt*3!s934v^4-ck95l<oZHCJ=}_-rSdi&920k5Vf7sPE#$KIS>qNko2nj5Dbz zV;G<)Hn7xglT2jOkXzT&x8(KOs<62B(^eLREgJs)z;6Z>FMp+v&U9mO$J!@Y-2upz z8ls$f3%@iYhlvDMCg~zZs#x^tk!VYGYwnz|?O!=~M9tYv1|-bcEH*4?qhU1hEo_is zX(T7PF)2M$2oq7K+85QAj$<W;`rmqWoZa<$RUc|M#W5WfB!0q^v8M8qJmOSw5ZX?o zs7D&pSHEkaCWKgK(RZO7x8qX!x;a_8CUge1$@+CM{e?aJktt<01=%g6&g<fVxr+Lp zQyL?7cvI4q3`mhahthD2&$~p7SL|G?8s(5@95^hkQ#{>#IR2JR=H-o9f-VA;B9Fo! zA`E+vyyjNwz#F7F_ztH4#}v2!YL6<hqW!HtaLAgoz=)CYb(5OyE(_gjHws(xrudvQ z1ZQf(`b4Xra^2ANf5%D`pPMX2oU`Onc~wb`Wj(Cc&1uDIGNmTaJ65~dzah6UM!#P| z&@h?;=P28rIVxi-t8(6sq5;MHDtmQxF|!uzo}LPR=_GfMddRHhpT#>CJh#i*XrhMi zs0$tt^gK_v#6K*r`We%9zaBib!AlbQpQQ4)@O&>l5T0iU{74$f9zFWbY?k2Op%EJS zOYgxk$@Z*BOastW)~x9xhQ*slC+Ny{;pm{g$)<nmEAziX-AUkHR>L%Uyc1tz!Ok6p zIN)#c&)4}ZYnlW6h#Uyhxpku!r^UZ|j+USRad3?P5&6FUf2nVfrpU!pA0ExbVnZ%9 z1{$}TEX939u(6m1JSb&@%Vgb*OPzOVweQ0?%6dTW@B_wdOq5Ix96jmN#0!XU=Z@f? zF6Y0s1>!}wG8wG}uxxc+Uwl`$h@hhh<gbtJ$X<;b^At5@@<*2q-k$^PH}W5}-_^gb ztsPI_6+s2RdJVJ*98mMu%DI?lFQbFYf8k8L*eYt>3872<fBujeHfVC;HYj~hc??TS z`O1A-A~)X^?i#kc5ne`UNlr@PTL@%w3%;Md_U8Nu64=XEIF!7acC*E80XFEh#N@o! zwAT)~^)#ES!TzO0AKP`oA~eg@MDgnJ|9eD6{XqF3)jJ_)<#guY<>~ZlRN#P@{%$%4 zcZ}dpL?w1Oj<6c~(V*&&y@LSiA=8V|)F%U1=Z+(W&+n~wyu7+(<hlZ#x``JLSd)^6 zMPg0$%Fm^cA|m2+{>5lCG9%JpDewJRj>xHvw8inJ#J9&QZPOiwfEdgoaogAxF;pji z9~WSs{z&~tKwV_9b-lV?AO2dvX5uJD_3d`E&sbwGiZZp;6O4|*cDz9K!6}>j2O21X zShxx|q0+Je5rJ00b5Ihdqyxk)@;}iH>hcHT*Yn>WKR;b(ep~Bcvs<Qwo%~?-o(&#h z=9BZ4?=zLykzlNUgxvla7@$Lg0W?A4Y55o!8jq=$`(?*$>)_L)L36m9lXMZ8Yviw$ z@7nc;8_RRk9l&(++5d_Tq5K^=&t_V=A9OA14SCGldvuP-mj9n02J+wnK=&0-`K9~8 zhihqd?LUNp|M!zNhef`5^SYfL$a96;=z<L9^zui*75`~TACw+tIpiHf9`^z00|`)( z?>zc8M!0;t|8`z5lg>pc)svNIgZ&J$xSlBh;kCd}A~J+^h1rN$3a;NO$KzWIL2nN+ zdvEmF80oZlt0_bYdF6Rh=6D}r<if*CB}nu-jCe(r+BZV+f6;XRU;vEJwWXYf$M^F2 z9><9G;hL&2)H-@_sl~#yPRF|V^45x_auhqu`<Oy+tkP={lza~8Zv65si|_07l@@)N zK_ggX2}}68;UdRvRI|(zr`cQjj`9MR)rkS8I)h9s%+`+_yW)$>Z-6D{{kz1!<INP^ zU!{JTk^st%^+krhJk;A>-lsnFnP|5GJp`N^VM`dcQe%DrNopV)NvfG250O}cm0G?u zW6oNdft+3i<>v~!gSD9Z?VPpGKkU+?h7jUNr`K|KP=iF3R}I@adjx>A9EZx{07xrC zs{I%}q7Cjx3#<(OycqzKrUK$gtl=SWR5e;1NgnSG^gub${%#=93j)ol2>dVXGZwNQ zwD`QfceIc@1;0vEA4Rd@3@zVotpO*~s-aYq?>QVj50_F`PS5uTy`vM;GB};W7q{!B zWnNL6Rn9$}B3Yfx45*U3Ti<A4A=wvN*cCeT#^HXT=$N3oW+gZMU6W)>82HO%e`>7) zr1=3s9i#B-&YHl)>@aOss*!2TYvkaA|9+W5O?TNFO>BaWK0h}pOEvVL;55u;r^@L( z<Jv^e^-hQ)vfl@v3RCu(<Z7+;#et)}FW%WOhy!&ZUOCM$q0gLU9K^f#C{%MyIwDA` z3ME!YfoNF9-+3wj2s}P}v~k~-kMi1_?=u2c@3j?2wZwH}vJCvAQl(D9+jd%idN~`% zK0*)qJE;~{=1O|6W-U!wCn>tgR@TyW-aBVuv@;Y+@2+b|udu(?U?qH4MrS;$gWgi* zDr#E*jH0i@Jot^H;LqjC9{D_xC_o)Hb$G(V6#<}Yvw!~_YdyrGvhBkY07!A%c<51` z^zbgr(0Lq(7KPS0YZpC^wj-Y|Q-fKUNEBa9m!FIjV9^L<E93RwlNLU_!}5JJzTP91 zVV}ntjNtzo9<3f`GQ)E`0mO+_sj=kY1o(_zy#G$`k2)1@cW_Q6!)?`|xnz!IL38U$ z&;b?&czL~3cN8$Q^%}`rZ_DOzQ4U0BxNbrL&7kYcQ)}{-fRkH{m$*)1SJ~*I@#tv^ zquv{)nk4XVE4Tl~mi41S<e8ITaCz*THZsTg@xns|8btI7XA#f&RFTp}u(1~CB7)y< zY|gqj&+|1HrjUfR&`|)pBSP07;4XY|lm`4a((rs@6_>K)suRF$75-ZsLh$FQ4TX|h z^-;?D#zc@t#C&~f8DnPNrM)-;6<)m2P})rSL^Yyani)@v>vP!o+l>fk_}0;&TzA+E zxaAJ%0mo3dQ|#{rYNQL)2|=_>UaEb|H6|6GSP)R$uLJr4?)OUy1DN_|Iu|W#**Hb; z|L<u4Qe#1E>3lwo@}CCYVvHKIN0K8qP6A$je&<;|!tpHD1~NAssU%82Jw8~{r>8wx z^D5ADEIen#-amjt^HLA&_WHDHZkDT`7bgb|mn!2g9)kZQTd0n$+S(=j_OVB?=6af3 zT(Bzoj6qo7-1vxG6N?V^HdivRU-NKeq}%+;j+=3AX!YfXiGybj;P0gUc}i>m1=nUc z&Rqo$%B{@xS((+w=_PPXl5?p0!#r<JLKI%Y<Ydc&1Qg25`FlcM&#JrwbL#;dO`eu~ z`&w}|p!5JVar+FgfC6Sp!Vw&x!Z6ZFtLjvmn0Ov=!{OC-;%VhX&y3r7rtvG0T3{bC z%Tl7i4$IiP0Nr!22QfL2@K6bGdCmT0Tu0Zi4i<cy>@mr<WZc(c{oi=LTK2S*ykE+= z%=UK)a?P7pqu?1Herp653FZhDZ#tW;EqUu54U8OwJAcLxYhNQwKz5Y-^YU<_e;?#% zf^I@y73u&QVe8H@oX1%eM$-ZA`YgYUjG1q`wdgzK-`v6TowWSW;EEX#YtbkY+dRPT zQ<EzRU=sF7H^^XBeIyfhCw*SZkB7FrOK+C1_gJZERd#%XB{^F`_K=oZRsMCQ;$2;5 zVYI)emn{f_&iH^Nw}vs{6_H$4jR{k7VU&<_{hgCOw`U2Ds~?dkv>H#FlMU?GxhHO- zq*PYGkMB}|<uuMdBqUln-I*Ti-v@&*E8sq|E7|NL7XauPKE<+=x0K*%JpHXf<>d{o zjM>KPBMSQn9Q00GeS&KvCQnQzqM6mPX+CNd;WR~eeVU|u;yi{Vs&?(9X0S6SqHtiN zb}Cc1?}Asr!AbzMgFz_{5d)VP!%Dh8h9zS7iw-!oRDW+IAid<s<S$zXbK3l&m3N-m z-?hC}y(Os$A9w4EUeZ)s#?nf_l#TNR7sSed(R{izf&1Gfs3`%RVSxk&e7w73e!k87 z@|XMRTb&~S%Zt7}`K=*yI4Aj2h{ble066>!aT?gF1TrJ1fv$94<Lp*XndTe(4y%|1 zoa|#dB|50DsLSso#XiJ36PeCu-4~&uHPgzRbjRL`Xw~WW=PZaUGWJs;uId#P_tR2< zxXb5AVpkGFj|L}-$cDUK-+V2YsRFK6<A0c9nJJ*xl6m_U4ebdhwcaz;RJ5W{u<wmq zCbc@s*~9eHn4i@Z{}KuWX;OSwU0a7dWNLR0!vC|hJP4znp<>*v^~V5Y=_V*$a1bZc z-;N23#LXa?wO~F9mH;uXObo#7is*^LZLz*G-XSg4!j3NRThP2){`|q3s~;8J&#{Az zWwJ*LW{tw<8MBj_G57DauL~qo3pkl4orqo{jS3}LmGSB>nrr*OFZ=64wE=oHeP=`* zwuTlrRUhmz6>zJeNLIANK2#^p8df;)!(AMfKFU1>P)s;We6@z0S7K|7>xO<B$6O!V zMl{o_ijKGV)pv6t!wJ@}Uyzf{g>Bc;TY7JSP&wRs2&CLW8H1qtaPWtS_I)KH-!E_5 zZw@e>I53O~6iD!XQ}*&@4Lo2<FXw+i_XvQ;U}U?GzL7l*QPeTdQ3-Mn9<Ah#Xa9ux zxU$lzcMs+J`MML6f)#NQ@`+VvZ5J1;bP*o%6$}OCUyKpOmbLIZ9#h_X<)Gnu|D!39 z>5CHX|HIZ-M@1cW-KvNnh=9^DNH<8gK}vU*bc1wAC`w3ogLDlc&5(lBP?AHV#L%I1 z>U~Ci-|v3w-alOn;rH}8`|Q0>sjOx#==RZ^`WbzjD~ld=S<VPE91^vQ{Pwd^c)9I` zB8y#(j_wvB434E#MD=^~Kq@-MTn-=(2O47(eG{DTR}wx~tE012ufb{H<pM5dF~07t zsY>x}MfYTT`OPbpo%OhS6K6-zGd!9qgg+r3PmUIusjm_3-E2{(ybMwa*XRLX>i6$U zbu%Gko_fqwdIKzR;he8~1y73rroh^KA~yDR<<Ie+>o8w5r9O9vb9pkChA<#43aO8h zaef`#AKk=deLwNJ=3{rB(rDDS;C_ezq}BHbw#q{*b%QA~<#{3yMowjgWb`XK0K4UX zRE;bfRR4n>VNNcL*h9zu>rQGHUEj;dKOT$rq~l)UV341FhfmsPdjCE%QW7h(AF@dn z(|grO(ER!}F>9V&Jdd2-CZNyA$TTeUot|=1E;bsCC|i(>c}>_N&0XG?BLOtWG$BzE zQh~h_m^R>4_UzPc@9DqZUG}8^4tybazj%Lbt!8?0cw9cX{hH{4&<Ru1pfkh&@4)qY zc>kPo@DWyo$zKt{CWzWKg0B$vt~-W>^9Y=0yAk*Ab2RtFzs_p<LXV@BF-V5X=v<$~ z_#W?8aflkOVdYGB^S**y#E_bUkwJ@T>!R-fnE5|XE+~|ifrj7n`*{((xAvv)y9Z%i zn})}n5m~qY%&r8-YS#(_+>bS;WKN?}S_q~OS`-Oi%gbTh9JjzeH>jTjrK)o2Pdq60 zkkJJPU0@$2(oiKnWMQ$kP84i;U}m-HC-zg5^>?^i$XO@fZr;_bgZ>TUTYVuu;T^XG z)zvdWv<ZZ2s6<H&_-UiRw@p%?cMH@IB0EUkKK(gveB`@FKL%MT`EXq}KLdWOk0PZ< zpN+0vQEk|2Ze|v|DTZapedPd3?yT_`zf-UtibSt?s<FzN>1dw<Y;$*@*gV6LhF@}` zq={QRvrxe}Y{_^30Q@EjpqH7FD94y}(}==DPC3p|oG4n7AL!n=C}}(2@uzzq!~UNb zNA6gqks2*iX0-`$F_w9s^A8CrUiY9Gv#l#E2(>}cV@8v~m)WQO_sjIHcRvRF_9*>E zlW1A*E;?3bS5qVBEv@y@@A{-5YyMk1frXa#sN5Gd$U3qHz#FWEpD624O9q(oERKa< z-r@z11x%yMHKJ6oaed9a$*_5G4gd=JvX|oLJn|64Mu;cG;ML&!w~4esppF)}Pwkp& zJ24X*(CvpxoO;}6rLoRksO5;pZu3QASQ)t4-geo|$dm(1+7C9B=8-M;kg(!-$$O== ztG!vx?kzvTxYv&LQN8p7?mtWU8cAVd!XJMhTTx3-4r3ciNKNMPAf4>I!GFj9vt<7h zH>-g=)m%;pWMUUjaeqPg9k32a=lr&!!)r7eK#D1Lb<W66I~lu5gk`xiwO2*c9alME z>t=QB^%z|;ajo+ym$>B$xKht~-ZpFmvf6b?rnk8}Kl$izZ*q_l#cvvo`qDctq2R{O z3t9-da_JEZ%%-+Cp!V25F_Zc5e{PaGz*h7zT|yxRAp2n<I0H#`mwk`F-HFcIG+iM` z1QnXRbQaCp5eT=Yei2B5bSD08i&Rn9WatNuj}AF?^Z17yQG!`%*V5SRwZX{@GTW9_ z4W3n^r3lon`RjNXBlJ&VXB7&;V*V79t98D6PKDW8+be+a4HYSW>PJ-wx_QHD<|}Jo zb#%qi;ieDPyNFsFRLT)M+ma!g`WU~XE-O}sA4CIir}*guj*sPbyBizz8L$9fPKE*Z z=BOyXEU7*Z{deT971Lm&gQX~nz-#=h7ICt&j{EcJ-WT#IR~D=P--7T+;_h~UT@v%L zUge&JR_0sqr@vA7Lcitpn2u;tJ-xPISAGIUla}&X-z{tr{PF?hf>JU^+QE;WV*|U2 zyo^`6*3=<(^^><UUwifo#>Y8|?pPPdRS$M_AkA~X|CtJKfKbJU|4xOen483NybTbZ zpIlukGx|Is6$Wvgd9cEFb_j)m<Aa9*0T*`9#n>9w=(^2At+&0DFt&3Xr8(%vyP-+A zQ!Y7<+*o!0?hTYc?Z0c91JOhKUq<CK+;1DKr38|%_&;Eqx#fhPjCFKaXrm54@>V9h zn-X<cT&5u5n4>+J89$H&`g`uO93b_A1cYWmXe4r{XDfD|?C)Rti@T=s{5wa*AzCgV zkN5Wk%@d6PE}~o^T#0I)SOtP6cd$y0B+5`oQ&&xhKt*#C$O$}kn|JJUT(QEN2%3q~ zb3C2)X@;Ky5L`*h<*PlW5lOj@?ABi9H?jE>zE7yls{Z%fwET-$LE0au&A5NmJid<` z@X8A0B6^oUz=Nv6-EgLotcPHJ!*Rt!`gLPfBRQkKFzA3_HAXs(?PZ8Lp-Dr$jXeV1 zoSBEZQQ`%A*_AOt=UCC>k&vgqk3M4jP7H8f1NgNN?R2uX=S{A_vm)&ZLqY)O5Q;=B z2JKP0n(Whjy9uxu(mzH9D6y!u7$&}^^2jwvuFYw|fD>219X6bJ1&A~1JciW<$zBLU zO#^P7BI+ih4863KX3o2KN5zBH>9ubtqs2aIgc;tj8L~FKwKzKP5YT#gl*I@FzBsRe zYilEwb*iGm&uje0uW>jyAx$z-D74AQ@9Kz{Ff`=UWobt&cY%uyAT$5$>H!kWPaRdC z{Sk1z;=g`fY|*(a1`{)Zx*+I=4aTMb{atW|i($$gJ#MU2UDS}4kKL^v#uRMZFPRO` zx}*5;dG?-fMp?w}_wO#-)((kj3wrv0J`2=_>%Z?BWY+Di=H6m@K*}B=K8uTUKk<w7 z3Miqa;{JChfPc*}gVSmFxsbx8XAjHAhvB~Pt`jIM&KHi$Lg9NE!y6}EWj53g8t4r( zWOE&f)CL{;y~((bXnMvY)$ds9Ujhm<M?AYUbh*qR^4#6f7;yBDnZQD!<S5<;zsB!I zyfhw}^o4!uG5rL&04(qD8grQ4M{clF=>DJYh&NpZu{}8RRH9cu!96j~bQ}tM1&RVM zvAf>LeNPLl(EBD%7aTgPJO8w8{m7v9qx_5QJ2isxUoOw!v>oVGO{23=Q{l~Pfco~g zS0qI!q9gvCV;2?NOvdPsztmDV<L3Lh%q29Bz#%})7O};T`I!Y#3#FN>nbt0)z6Zz! z!@q0x&jtow2tE34&Y?&%Fexs13dAbjZf+t|nehy+%(nVpsBxVPoYI2inzTIJ$fFtD zzs|os*Fpql&+BD@=l=dy&f#qvd)KB#rq|7n==VW4Py%xr;$g<vPvZ#z+v%O<V;bRj z;+Fq1iT`wk{hKCq-~RM7w8ZUg_z2t1_f77jTysBcA%jm=CPdTQ<HNJNnHQi~9;n#X z>@g`lyk?1yTVkP((|~$lL5s8vQDDs=bMwLK>^juuHL}swSG%wb8sVUZv{ko5-I9vs zen#MGruY|^{8@<|0(Bo$NI1e<u5=qb;Q6{%In+d@@5EiS7kYV;%A9iE@I$PCrQ$gN z>{l404QgEOi1pmvim`tNUHd+ng826FR~p4GxM|ITjrh#w>1t(A52-8&Rpaj-jhv?( z&7>0xKS-{ha*Ut-;xkW>h*wRig6ju@ak*%1qi(~xMW`>w>y3O2Q?;_uqshC}UH?(& zul!Zkd?h<pS>QZa8!ZQi4GVylG#xgP5SAdm7!?5TVw|(#+^34$GyYI$>+_u5yi$r# zgn2HTH|Un>ZG%Lj+7eb{?l0R~DMB&pL{=`crd525Jx>)eZE;9s73QD~GTWFIQLsB; z2dqpxi%snQP&57s3L-EEtrR(H$*vSceR<m2=dJgsh7YJqzi8UxPu0W5)X-<c>Fe)j zVH&TkqsEoQ2(Z$`ICcyZOwnX4=sOKKl`LxNK(S)fyj(CF38&wg+Pu#d6eT)ic0SUR z^HFX;$Q%AWCnUH3Sso5X4aAwQ2@7DMpB78-K~opN3E+Umj7V6L6~rzzMm!UA5~z&D zb+ku17+fgk&#x$a+Dy@lZMycMFr9k~X6$d{kpHnyWe4tEdE%YTF1suz)h(vELMrHC zSwz82j33K?F<If|&!8Ov+6+fpWNV+v>nfjO*7~#D5WP$dvK9c~56>A9S#?CT9*=+< z{N*!ZMP@?@pL#hCy}qCXr5;eZDjWob2^^qP$tRf3_n<$P6ymvl7e@IRyrA<G;0%u< zTv$pG-Ru6%g9)!Q?xGVm9-<%!h*%h<J#BeCr4ERVX`0JII`0OCGjgmiU)fcG7rXx6 z-(88~!BT(qbNx|HNR&qwD(}H6>%L*1rVGR3Qz6?I`!pRsN#xo(y&->n14rXd$;0=- zm!K#zOqj@BZ1i!EKMhkeqapl|Uq_8%bviJ&nk_+{G|TcdF`#_N%)~~0d@gL<0prn0 zEKi>hTjaFO?CNKhhwEdvXj5NNTX1ohs3IWOV42ZuCM67SsZl7}YEL{Q-X4)yFaTAp zuS27y@c=QYPB!OgvMSzFpW)PXg!QJz=wI}stvPfu@a{Q>+$&SUq>jy;l;|c@3n9=S zWRti<2hPL4W;ppMB7I*#_@Qdj&n=p~5QcZp9NsQAOP_3amlUh=O1`Z;X;*4X4i|0u zq4s(sXMj`I6c{8(GFAA=PUFDq%C_>aSdnIp(2OeeXC|8)fgfa53Dx9`WOo-BGD{s+ z3RZI<Vm%Z!-)%V&Ez{x&QBSGO$H7=K$wKpt>|Ll|3tn{N-tQPfe~|z1m$_}J7mMS- zsH)nhB(P50`Tf6j;$_->VIVLKo~K5GJ_Owxtw4qlGfX|%5c{WB@EjH@t)~7n4Dx#^ zY%fuEk7;Hcv>aW{1_PN#+uaDcQYRFuf243zL%yYdP8qk3R#oZ&!ejSy-wD#B`Pnib zw2hgH_h?M|xT(`cy0X9BN7|=>IS?QMi9BRXr9-7p=18fw?%Z9PmRn?6b9*HQX9wtb zx)KyHlzEWFcO${WEy1zAb%Y=5$e}gkd$o$s-{v-!UtZlFU{lsX;FBSQ&U4@DJ7x7E zc?4c{;!YU^YhgU|>t;S`o1y*NW}x_RhJfOA1E)o_0?sYZNBvgiN81H>b|sHqRew@1 zB6@Q=s|<>6Gmk8PO7#vZ7QKQ?yUi|^w|%Iq38Kc^4(}CeCtnjk2c7vGWBP6esi<VY z(IZdVNWmq+P`j1$t>D(-?{(vS#%N(EfJ-21eg^Xfwi<ow0oOLrJ~za#vN{i+l&S|- zy9g2UmjLXOtxoqT7PKCQ-<oFWZks|~Hg<o@Nhqa~ZA1AE0S0lTk2UwF+7D?)-)(Y} zUD!pCt7|Fzcn=&-5U9e}^GA$PB-?s<Aw3m&$&sB^nHdT&Uaoq_$C&_P{{rII0nVxh z_>Qu0{aGL{DkcHuEsD>!qAq(+``rh~RienXb>5}RD<&F*Ef^Mtkg_@>99t#sXaRc} zy5^D)hKHLs&WzEiGC)ok{4csfNn9D+*a^ZdY!mwXd+dUzCgfpBbB48tBYNNpL3(%d zPl-oD^frhqiSj-jmT_&Ht1%o^h&#kXnnWw7iPm(oK=@;irRcNK`;}@Z;3fcL7NU_` z{4uY<+glKIa#i_spX!_I^H4RzVU#ZLUdhM`s>EtxumD1a0!0DhX4ootePWxmJX;e2 zj%B7MfO<!NY^{aeDfz>lI`bVaA(EjNZ1Hja<;SZv8O#`#wj$jA*m@Nd9_#F?(|PK0 zVSeTrd-bs$+hJWS)q8vQKe#4~<h1!5?1f3hQ4O3V$d7pe)}jFG6c=?q2ABsLdR5R# z(G!$5&0YTnyc*(Syfd9)DBwlf43hliNM%P_&pM|8vQ@E$m3Q4pU%c>G1ARnG>}V3+ zjBV-EJa3BXL2r+t=u<5JjEp`<e1SyQCP2Zq1fbw-`RkLYz{ByI+9pkd_U5tz%+>X| z)N5JvHgOTyodUUG0uZ4$KuKOJ+?T$y$@|2UZc;&)uR#GQcEmQj^=Xm-C0xRr{U{V3 zvOBMN$gUB+`O4wg>)qtMA)KHYNv{);#+8D{EdlDlyKZJn)Z7*vU<v+JhXMbUL0=~p zqW3fo*uGa&FNNB~0&|oBnf5c4DgQD}9?)B8h9C_<+NS-{O1b?7bk`t`PW*Cm$_bl? zq4Eb7rKju^va+>hncZJ3+v+4H-%i#(qBrcaQzCXXi%;!=#J}4V&Hsd*QZ8UteX6v~ zjz8emA0;?{J<faT;x52xb=bK?x0VK5z3n63=kYiR!eSKM1~2KeYQ~0x^y{LOQ7QKa z*vyFEabI0FL0Dj*UZrS{p6gzR0QHY)`J}WT%2zlF_0RsV^{MW;mT=`pR98Z<1U{YW zS1Pt<E5MS@(o>YKJ=j~1RWt|!bWafq_wSiS)stz1MwMgQ4=yL4?<Kv6`nDUJHlJJT zN&~<pX28_t;NAm)CZf*-9tQB+Iu))`FK}UkE;tGDs_`zWk&YUAhCQ#mRxW5<pUJu2 zed+#^taCG$jSq-lh~_`XZGFPNpZJy@tX&TzEtAi2-ByCk@W<LR+Z}cFV_`m(*$%d} ztfS@rrdy6!W0eul@08fYEIhUkwf5fQ4ifZyO-@ioHk6CQ5JK0wy2n~lV7m!6e|b;q zNiS#zCkJ?PVN)LThb}>lkW$9Zk7|))t#PGF85!*WH#sd*YkE~$?BJT}-F*ZoQjHSD z^6l~Yh4(;MuK1V5p$6~r*%;fgkDJ$Z@iuza1rPMcc=UTgv}w}G{@Q0#Lsg`RVzVej z+%XA)tQlh6o@JISPqL77_yItNfgrA58|B0d`XwP-4OrX{%A~4^DanJuMMf?c57|0u zL!~x0%%p}X_t4$P;vzf4T{IJP^OirnRG3;=R<Mwm$mh+vcdr(m1%t@-3!?Z7hoHu6 z<-Te(fcrzAC76gLB0RPTBv=!}U}cng<EuoDALh3PUYcI$3OpBy7>3E1aj+mpgIG8_ zxn(aaZuq#pu5W^G-7haE{{&p405cCoFxgq8SSAV6H$f`7qm_G*9v(`@YRpbNR-SA0 zt&d}xB?!O(rU~1fcS{6~y?zt*vo+v>denb7((of6Yies}Z-!t!W8C#}|KtP_hgF-_ zosEqt`6395Vj{NW1@O;iRK?y6rP}4DMYdS-KHy<Cxxj=EZsttq+!4t|DAY^ix;vTL zWfxzO%RrO296-2mm=B5##z{1e!&wTBX`6IBgdFjVghk6pQ>D!NnB_yj)~O&OP@DSB z$o)aXu&pd?pUACG<F=XrkaCWFVB#8EkHj?SkQz97JvNX!dH}9WY?C4nSUH3Y_=a<b zrEf4<O{SCy-iM>N+LAVSz~<ucs*eG|ZYi=KV>>I9H9xEDg7}BrJa+MNV(3SvMZ9?< z=I_2u0O@(oetA-OENvzQODnT5oak(^hvd{fox=nD#r{HNe-xd|kWORQP74Lz_wvI6 z5vKI-Vbnk0AdPl@#QEDP`MeWMp%5Z#nCmzikx=c{y-{M3xgLI~6!f0nqFTxPy?S&I z>+N{kOVyA_aJrgqV}3_v&+HF_rshE+F~hcXtdhJzIF>k0zfhPeq&fT{i)o)5NwiE9 z-;ttJ8}{56-c(Oqlsu!CnO-3L@PmcHTXXS+3rPI(!lt+C10oOiJW8x<t+;0Tw7#Gc zt>J}|CY^-U9Ttp?78}FQHjbh|GYY^iTffOwqL0h4V%Akrnf2*eDEz7xArY}Z!y&$5 z&GzP=kf5%|`z3*&eyZS`xPcW7&K7$3Z=|n>cwf^<auu?H`+SISMiSI3lh-omx>KJN zH_HON47%Uk-yXB2Lf;m^YSHDIaClJZ@QLBM-Tn1Rj$yZkVIx})$~yAizP{axv;$IM z+6<(Y*hFEEJH&ICRA!=dyK^s*R$?->)PS6F7x*l2KJ0SjxUK1*fH1|gD}to4rOsnv z)a+5R0cj9VjuEcA51yL<v4YiMQ2#?ij_%@eQw!#zirLj-z7<*NlgY2hqZaecBkm$g z27QmEupp&TFN<iQpBxRUmR5##TmEX69TCSzI+)?{^*JF7P|rONy_94TX6%KgDbUeM z1eBZ+`=3oS%QmVzCRuKq<=!(ou61CToGx%K;1X{%w8$A3p0Eq32LL%YfD;?g@)4V@ znpo84Za>7(cvKv4{z}~5EpOfz;;b;%n6XdN2sQml(nuPn$-mp&vDepnt$*@t=?4+8 z1t|An5<SiDjfC=7vN3Fwem;ZWY$i?|NRON)%C~DUQ_@A&j!(pSeVFwVd3#UQV@kVL zcUl6)E(!Dz<4tBqNV(0vuYj>A>4`%ohR@{W)oNW#ieTD1SgB6&XyM5&Fq3%vY`DA^ zb3=7+3Om0|i2368jYE&UAUz4ITPA;My2d5wSkJThT%*n2bi_}Zv8>TK7HBMcHq}7D zGp9~SZ$1TP<k#<jy(Xh-b{UIKBy;V%H$&aTR;4|a@6#V<mdJ^@sVYEGts++drH}Hn zlW8uwxMh&PVh7%6xd~te9k4C_01p^8gS140jB1@y9`kNGbfj}4kHBfK|Gctu{)FTD z6~uZ+%0Hs@rG2J;)eFNH@s2;ZEuizy%Lao4Our2l;NM2}=3j;Q@t4a->Fwc|usZjL zP4mUc?@3u?DlJi(Z4M)!A)NcS%!*$vt>}-;Hj`;hPMY5`s=eX5`8k+Q89-&JfKA`j zl^;5<u=l}RZ%{E!!TmK^{^S9+OI7T}QF)?k722!h<;85cs=M6hW3ja|)rXHZA>~L{ zp#f)lAs*rUpCE$FAW9XrCF)$Nm3N@lU08q|V@M-A<()&h9CUc8&6|O6a5hp<#JH5r zIyrH7+H?zJawA7o3Ro}zeD6N6bGnf>Fe@XDS@pv(h~3Q4hiN3E3g-6AqAO@(D^o-R zfy;0amv>q%8m|(|=^5D*qL!-gbQ@v)BD)~v{vqXP1iHox<XR56tFyr|z)EXfU8NRF zB`8fWm>uhPD};5zTIIIam-RlO72D4fO3Yhu2-ddsX7FWDx~yCDk9C6JbCq;XHvT$L zVxZynD;I}z>&(}V_uyN5=E$WsE+&N{ye^cVk<WIHVwlPE<}xRY?g>ihsD#-H3Pv&S z1=KxP+b)7e@gv=Oi1T^(Z_1SJ4S+LBpX3wn@<ZQcxJs^?({`oLA@A9ktLrpFgjrd5 zzB%Ij$Sil%QF_~q|Gj+EUswc`;KO{xCgh&(39&PLaG#BLZ8q>0HCY>GbQVt`s8Ifv zmL6``asRVne>WO~nFco8X8ZM^?iaG5VS3`hjr%2Imv^69^>mV)oN)BNS<=_FsCS`e z;|O8bd!gmYh|C&94%A8RD-SpFwhJ~QF{qnw9FHv3(1OtBIRMLqUb$ioV_p##*3J05 zdU}*3nMvFpma=^AlqU2O^XD!iY{H70enNu1xiF;dw_EOEowr59Gu+9+CJzzRwP?U{ zJmONXbNYG5t)daPGfOtf@nc0MM9=H<i#^`70Sf)6#OXH>Vkg>b!HUDfat*^|iDE>) zcyp9%YNXiA*i-uVb`>7&XndFIPkeE|&3_NpY8OAr>J%-f5zw&0i3@-uKA_5aA_5Xn z^4rHFsp@$loesK}*6>o&;*ien#c%C&iXXyT!?LBea$uV2<<C(LbEuEyXnzrcT~oPH zxSg~AG}F3zejWh@L)HZrrN~UN%!@Ti8tukU16Du-JO8#;?FY+XcYmYf<!IXcC%En^ zzx?h_)hlKz1zyK($YSGOFr6!YyXE)vkj(T}VRWJ3?X^3`LZ{ZYWnR@6z!>}BVpra? z0oN%WkK0vx=4ma@R|Vv+oS<FR+-JHgk<!Nx>-sC-?Pa5`1rb0AN*yoBe>TG`sI_`D z2z#jS;PYk?^guMalG}~ZAh)vk4fq%>4#NpB{m;PM9D(K_%;9_9WAB+EIlXoHh3aS! zjOl{#ZKM|nQz8r1aM|r-m8PqEfBmALO28(sjZO|?mtjYhwYgH@?~CESu(3jQ{#^qX zG?DT?ob;MRG1Fpui)a}8lT0qY>sS$3E)J(KQtCC|;vMG<SWutEk^7_ru`IMg99L{; z{~I^~THplSy6PC#W*s=7nZ^G`H+3sPaU+GVztGD;Z*6UqUE5Ce=sU}o7odb<PXPtK z=c>jO4S*f9d=Cp;o5b~O6An1XLCVh|-Pq~*8Cl)|YDU<0-VGwbO&Oq@&r@3|<_Nt} z9>TBKW_$ByRhHAv_w?kUFN`a&JiOjNbU3BQ|1QCGRQ4dnd6$;7^O=}NyNzxgOY)z& z+N9O_*&?<srYVa9f>6EWPv5H4m1x8z0oJac<<Q1F?9$=-QHUEGcGHamtUo$ff2ER$ zy{z!KFZfiQ*rgT`Wgsj^hpgS^Y_Qq1VM+Ts+`Vb%@p4bienzcNbK7_N0^;h}mR>zf zFP&ep{GrKLzVW9_k#xU^iEslR=(H7Kk5|m6I_#F&AoFyGEv_203m5=zgt!CS*}E<4 zgku#i9asY|$kb!y_3mUPyPHvaHdUy8W~mp{eH935814(G?CL(M>bafZN(U-e2UpRG zj~A$Mmqxb}4u%~RAY1Z!yAmu-0+8d+<fY5?g4)*3C(CwY7Er4CapO3%PflS(i=C5b zk!H1Kt@usl#fg@=y~mb-JR6B$93p-8x{1%e0K&3Zz~WQ>3`_E0n)129zBmgbI8%1{ zK$kJA&W2~$DP^lH+j0Kx#N_L_+p<Ozv2&ibouPPghr6?p^q^1#)A!Q3x9)4fb*s4+ zc{*C(%=TiZNqMX=UQajVEhOJlOmO-@(qh9mvw8}F!M3S+q_DaArrO%mcrxdHxW%fb z?%GYC49og=$Ig9Dz^m@QH!4w1L+bto@LYWX?uV6aAy%tC^Zum|pj>-ZR%w+nb?1Aw zu9|DTfTDlAuluGEih>MCL0NtG5GMN7P9v}J^%k?vM|p~yqQ3_;opC<ZQ0u*_h-9xc z$&ocw`}kw2Wtt!P&g(Y9Vf4FVhH7$0JyGk_g$ZNtBgX_c6ERM~Cl*Ct@87YqjQikL z|5A7ANgTBbuHgcvHkQ%bmlUUkHGtCxf|_bR(8+qaSGSkt{7sq$dHj8C6WZbYI3~wD z!4H9=RKoZ}cMIWL%PR8NN-grk1u<u}e3Q1-mBodGK4pWQwv?|1yO9q$sMMe`N7n1? zOIU2fqMlW6ViJb2vENFx_lH(`H_v6iZ1N(vR%6yxfpx4(9IVx%B@xxO3@HSeJg&i^ zZvKo13ew_|#8!Iipa^^cYO|oeaSOdh8rLw*Yp^@j_Z*bSCOuV<XsZL=-sn7qLV(4s zPx<Bwn@i*V=><oRR_L`PmNCN^Ncq^!fNUSKvvB%5O$f1-?)4*yWiOVzI@^z|SN2qo zVM5__W6x+U0s7;ttdO~!I-SYD@cahnmx62?G7k!gJ*3gPcGCEg9+i-hrn;vkOHvi} z>rVvnH|Z#;(oc1|jkBR8Pl&a&{3QI;r%vo-G+%h+ciR&!7t72|bc_WJy^VnIm2eLh zLp}}|8pvj3-&c;*;t5Y7fxY2N(3nUE&RIl=s+YIf^VGi#O#amRaQ7p2a@nk4*!Ad( zJx6ExaiPrO5ZlC6C*37A<bIT4qq)w_nMZ#~f3Aff#j4Qd#^hKN9BQ4k9O!aj79Rig zJ!XCN%qt^)%q1i<Jh5T^v+y{&NbYJfK`iTQHgl6Y!_SvV7(4lEDIz{CZ*^Vec_Tag z-A6RIf*pv;$o9uN-!>(#kUp@N$DDZtG~)dCc)YEBEs8)@p4;M}@lgQe>p)t);%0&9 z4Q#A{fHMgfI#Askxdppw1+XK3^5kaDS!L0c7IoHAX5(GFv%9zixIcol)ykV~7v7u4 z(Ogm$45<)6Paz)O_v%~X<v|Y=%HU?Y9@#eO?R<E?z-opwl#CJAU8s)vT!7)K!?asN zT-I*&j+2=BprNsqJAFZu&#R!yM|!l!k2@Mg25FF<>z1)s6<=ZpVfoy=mWJ(7=(Jbg zet-R)__|dTwxZ0d*JA!P!ZhG^IwSPEwvN=H|M=URuG@PYn!om@(I;>5e2AfM{R?jm zf)4k*dorX0f{a|mtm`gG4BvdAv62oa8Uhi4w1phXjvR>eS7<fKtFG&Z$_W<n)CGxR zYm2yUJrgiVY-`cHi#KW6%ujwdJo!F3{{X(A=iJz$3=4`m43dtkkeqP~Vh`J)=9e7E z6flo$25$@*nBTDQWrGZOG9Xz{H$K2JQwr1oLW2+-K`C`q1xT@iy$l^M&<A<dz<XfE zP0MjYn3&``K6(qj`e(Y+>b7$*X@|OpI@klFRIEw4LkKBfaWl7OlC{!?<zN}y({Q5n zSSNAmw*+0eAC*4TjZuFwerDZCk!TQKRkbWts{Wx&@qjZyeOe}5Rz0Qd&bN|-;%+=k zXtIj7k|{^&c87^uCCpTfq(xEUwk!eBxb7p1Dn(N^R|>8t6N)M|&*Y05#dgSMm@LnB zR9efuX<guJ4)v|yeaD4~B7U?RT^r9o+MS|=$9$bHPoI$Jt!`grhbO~LY;ExDCWHZ% zulAQG<GFV6W(BS5Ux7Ba70V%V)<8hWQxn3iTKHqbF}<Hqf+amjXtnBbDx6N}f%cT; zEPSZovH$ARQLDA#b*iFlq|p!7qv<ax!o<l+{Of)qm$iHBYTokJT+pxmG&H&~b+(Sw zt1aJo4dz}%U*g#WWjtmvw2mv@@PLyxjN<lB74gsjkP;BS`=RlkX{#PyQMwLA^BUZ1 z1ZJTZCFoq`vK<6zWq(PF=zww6J?_3|p^c8ai{8+;iRon;O+VmcJ?zYC7gf~L8fZ2t zyfe(Tx~2&suV}J#Uc~wOE0lW}*`dM*SLWbV7E@>4(_x&bxAD_q#TYQWDKL`tes;r= zytcCD6LkZBcNP2j%ZY2&-P`du`##;V#QzdPy-0Xa$l$8joUJh*mbjh56Q~jWgmX4x z%M}U{PP(SHllC+kDp0f8-vr2lBEM&HoM8;kUo{H1mF<zrSQz%_3^uQk-Rv|4GpJy< z$1V{qfWk}w!`#%?<;U8y+bGh<-WZDX!AvZMg5>jbGaIbcPeaiX=XJjd3!VfigdEyo z>8-w-VDJMygT#VcL9;jY4@#vjBMVrHGj4Uma*oAXcU_#edS;dsj;fty!~{PE3R+f* z!>b9V<s1VMrasDRN8H+i$prG1JvuMQlQ#0thu!VDZ}q&1vzwC08ECG2{&-@Z(+TO8 zb~M6}-VBNVzeZ6U5)~Cswh|r??`}9^Qf{h0{SjDXhnfihm2sAHh{_HJSpncfQ|o`0 zYn57Wx0Y6CHPwsEUK`PKmQlUIMFZ3Rt^>sTCdy?Yde0v-H<^gab_|Ebon_cjgCM%3 z8@6s<l7R~i(hOl?a)U!ecE8D*1b&Ls%TpO6LWq9J<Y#u%XpbtFenme8B)b0RyTkMe z9P6ap8A`2?SzA|aR!{91#lI~cxUIm)VjqAsdvH&LX7BR70g-|4Qxz{cRQ1{%eDD%T zg@2#7_nhZ9PQQ2aLKuVZ<}sgK%spds<cyYLu`7@xv``rcvMOC<WQ?_#pl3EL0liyx zJ{$wpD$cf1*szn7)Pn1{$$I!z#qhNxDE#{XZ>A_AVwdfD^UNGb7^Q}5I{}|v+R^F4 z<b`_~S0}(u-B|~{nunj`D#}Ird~9a7eysp3#2o5i+gvl~|9w${fy312%`a#_5?Xst zp;Re2%Et?a$pZqL!~hC|SJn7zfCHj;4I=Vo_#ZXdbMWoZmt;;qK?+Eu+~20VrIy8S zbDRI6ljzR<#D1WO@8?pk4Dr9Z>S$%Md*_;ImnzZ~H;q)k2OUr5f&0q<pTyp)6^Q}A za&g>UgWf>=eCFm}sF-Cz$g))EneF><jD1uy1nYt!!)Q1MupAXj5WPAtLeWpInonYn z$Xm`X|1o3yes7wCm@#|q!eF|&&$H$(%BP$XzroLHzR-O6rW*v*To@tLAf^%)frfA> zhBD1ZdIf_bPZC!_!v=xyIsWAZd+EddM`qE2B1&eF=U$1UK*#yTC>9cC>AK$`OiyN7 z<v_&cb{|uit5aap30OVI4Zu|I&N2h(zdJzH**7Ycxd|FX*WgDg&x4fm2P4zxPO?DX zgxaySir%+GkL*HxHu!V;3kRYn?*4jcaCsJgb#jH9n(%$N{kPk}PzNaKVuXFbkE=t3 z-aG4@8JFMR7r>-$zI!}^@61WMmVrz>09+8z9?;u*gQ**oC~YiU0g;_}BFM&lgKb&t z?%7YEv^xI@xCnM1DM9c<$ko~q`ktS^W+T@p9XH>pdof(-=B<c|kQ0)V(&Lf*sCauB z43))BZZd<1(=-^BzM;R?n0%PJ_I%<2BX3f7)#G{O>8t9JgOda$)cWM(|LAe|O`J{4 z_yE~bC=$r;!N$$_H$bA}5k)XQ&}MS|Bav|wLkMvl;z<zZfe3p9qU5{gdUtAP@!Ya? zs(3kHZby!by)_dDwYec`iJ&3<5<5*3(u&G-@0?4VkE@J_!=s<kgA;yH1^W||j=kG# zl`3MVF|Ac&*qGp;1vVr4Az}u&Qc)uY<-;#DBhHWPYZ6^*p0$1_vx^2C_02suoAt5~ zQzE!jhd5oOsS$j^TSZ%>)EEo_Yb=XZmxPeF|L&2>`w%<2MsnZiO-V6c4y-n>Q7V0h zikI63buHS;((l1&Zom}pU&_5=EUr6YmW<)CbvByu{k?g6z5EP%?&4a97|^~n<{XYg zR`>zN>Cpey0CtD9bOYW9@J%sF0JR~uHcX=v1+^Q(*9X$Y197FuSlmOvc_U*Ie%>}u z{l#%of|?&G&S2Q$aFdC<-gKSgv9RZ6tGW}V6mI0QUX;I&HHT$QF!02FjLntD;=^H6 z{)WVg9WVLL&@8e7tc|YAEgHvtB{VtNF1e|V9EqLEVwy72sv`-5pyACf{IyOOhcKrM z`)XLTHw$e)+<wMc%q^1ob)M%n&_&LE2l7<KIqPMo&U?GRflMceGa$aaFC5O``jv)f z_xGuQ?X&6<{EjzHkOi`;nZhe=g(SY)L!$MIIJWEcflcn5r@3i2{x{`@^?-<4lY(*~ zSj|SDx|WQ_t*JY?rEEG_`QeJ-&0<$v`~|-UyOrX&4wN2FVg%1$h1axXj|~GhaNS(K zcxBbQ<TyuG%?+&=9JYyCMehC4r6ZYHvU9T71CsgJb}=Xwf8LKCWK2ijnR_h&Qsb^m zAJN}oUe)3Fb|*+5Q)H0Aiki0f@k?Qa+w$-9<*~LO739vf_5Ko`C^H*l(=kZ@EvK}6 zIzWaup6ou=xhGIn7IMF#ot)>+Lr!<4qL>wJET}`?(5Pzs5Me})ORovHesRcFrl=pm z5=)c+$(j@{{7%5bHJgCRHyLYVy3UUM_|=zD(62`42UIf~K_AfZd$(}}vgWY1ym}JP zWP!L7M9BZ`1_0*9;gP=R@}56GCadQ&v8r1#OV20}VMil{CZ`Aq<*)m5fwcW5D&zKv zC=*lKe5R^&!knG6x_rEDTIf{|THplmA;l4z(DT3wf5fG|m7`-pQJyNleXJsY-GCK- z_&kt{u>8tnx>FF3045l~s#O67eX<yH80tHLTc3|JR4-%EHotU&;j#XRu~bWmQAoV3 zQY`;DvCe|+q58vYVNubfGN2^%;c*Iq%;H|{ImKMBo3+Z}RSG-S0PZ!gfOsG&Rw-cb zLHxhvpjE<7suJfJjoHo#@B<(i=3%}nfxOLTVdc?P-2}{6G7%eee2q~aEw0*CHH%x; zR9v~`{?kaVj5M~Ay%vR`yOpNWnEjZK>IjkM6Snxen@P-aPGe6x<#RlASNiDnM;+5h zd!xad{e^9>VuV>{^0L`Zn=8U#K|ES%I<i?IiCF=!A*NNr1^RuDMv|}Ta%OU}SYc3@ zU(KjDL)V3J(;WEW5ksZ=T{a%q>as~X+T59aswct_TalsU^1h;?^lK5rZ0oTnBd{6J zPq)XLkT|w1gfszYn>)L(d#4SBt<fO-+0}6~K>#nLvGFa`_)FwJuK8cVu1NRoMVjh9 zEru}P>l6CYE+`(AYg4JB<}9pWEi@rSjDpZN-ZFw&XQh~hoY;P&!q-DB8LDX%j$b~@ z*<fo@cr5btevz+P@tx!d3VTWiN6KEla1Oclmdf$zfES#_b9!wfl)r3`lit96Q;cxI z!?y}(+pLfBH~!rI{dLgJKPBQSBJS+meh}O7r<T@x0Aj2WXy~jjt^Y=)z-oTlfN+6R zS%iK6@*JqYAB&3wLkt_p_)}vwEBfD<5ZM94YdxXuMqv-d0(EWZIHqip)!n!0ENgM& zh(YK<l56lJdE=92PLAVv$&wHy;Ke|3(EMoS9Hpj?HgEo$QT?aIT$S@8O<M?C0=%GM zK?~2%<M-KOBRg%m^;q1)jU0X4&exu+Mhnk>*u_P#F_8Bj`4p=YWn;{&bS_F2na}8f z2}c1Y?3Ide?`xMQ-oUeE5=$Ru>Z9W<m)5-&y?18&dz;CuRoL5;KCxWyKH<Pt^Pbf- z$$O?`^WrK_t|{)k5dNXravK*ybNHiU4>D@+Bj|>L>eI?JeWkrI?9}V~J2(-S)Epeg zBcQ*K_5J+8%&$hR`gi}5fc`^Wj65XzIjPG*fW0M=Gnn+2Il4`RdMu3L(3b{g-LCTd z7I_qhdHngCh;akt?#oCYR7^dR0=RN5F1w}i89T%~TG6k%<H8d8nRH-sPwdih1AZ}= zm~>Y-)TmtpKyh;*%GcTGJT9zWhM8zxbH?52i?EmmS?%t2%;OiV3%PRJW$|_>lId9E zqzS$x!shpC6-5~s81yiyCOGjHnZgBNh;hAR3WGI{0+~7vIG}HZbS$_3-=*MI283>< zy|oXkRU!pXo~2QUQ8NZQxSMrh;06$^qQyOMs>pQbNGzinFS!%aPuWb{c|E`L6z2?Q z*$!>41Mn34)K0?PfL0l$Vm4zpkODoJKL+>!%0Ae3bmRtExXU#T9IW*@?{84=HY?QQ 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%0AC@m&Eafh2@{s- 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 literal 0 HcmV?d00001 diff --git a/user_guide/images/codeigniter_1.7.1_library_reference.png b/user_guide/images/codeigniter_1.7.1_library_reference.png new file mode 100755 index 0000000000000000000000000000000000000000..7f054f95f64b76e6157996aa0663b62c8cdb23cb GIT binary patch literal 111747 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 literal 0 HcmV?d00001 diff --git a/user_guide/images/file.gif b/user_guide/images/file.gif new file mode 100755 index 0000000000000000000000000000000000000000..8141e035765ada7662821335f68ff7d29de5788b GIT binary patch literal 370 zcmZ?wbhEHb<YSOvxT??a|NsAM_rIE$m_2>{^WFOoFJHa>_Wk?kFJGQKd;ak8lf8TQ z)iyRCJa}m5u3a_tjn7}aOh`(xvvUZGh;sMz{`l!rbZq>ax9@!X0-Rmk0)s;>Ev=uu zcsXg>j0KCA?%ub*v863DCvU^1E$!XCpFe-;>YGqeQ`b9TQeI(kN_yt@ox8U0+`WF| z<}KT{=NFX}msJ2A!$2ZX{K>+|z@X2d1JVcb69ZfSf$0SvI#T^7mK1r$Sj_hmI&Q4P zyY9wn&#6MY*cvxjC`hf1ST9^5^DoD2u0Y1wvKwzT8WPXHXO0qJU~g_|We^Z$5aH?R z?Ga%R6=GnSI&C_GkR*c`*Sz`j#26&S8CaLESjiwR%)rmPVI%)$24M*Xj-9)9Ge`(B fa2`B#m_bmA;l#;PC#0CpoxgCw=kgV2M+R#E(SVbV literal 0 HcmV?d00001 diff --git a/user_guide/images/folder.gif b/user_guide/images/folder.gif new file mode 100755 index 0000000000000000000000000000000000000000..fef31a60b2ff00dec181fc27cb2267878e36afaa GIT binary patch literal 570 zcmZ?wbhEHb<Y$mzc;>?p5w`Tqng2jwY@F89^E4)=f8xaV)zya^8_!Rg_<s5FTf26@ z-MRCPxq0T?xfkXyxV&!d!}aSQIXRadKK!k$Y-MHT>eFZbEnIkI(!>uNH$6Rm{MXEx zXS=)iIXjj5`!^pr@VTx1)|@%#O-(a)Y=1p__W3ny?r+=na>dHqB_&(yYB#Q0eRtxd z_sf>uJaOXpp+jGD^Hyxx@_g~)Ye$d%$j@K2VdIm{o1R%&=Pg-sea4K_d-lAaH}~S? zNypmScJABvp{aRWL&N5djy+SSo>;T`ep}nEo}OnDCmx<U?PO-=+?6Zuo;vk!(W0w; zeFuTQV;HPJ@h1x-1A`BP4#<I^IALI)-r&>J+|t_C-qG3B-P7B|FkwO`1LM@G4DC}S zI62w087EF)^O?f3Y?;fn=?m9PbXH(xVA{N8D=P<w+@`5wy27@~l1{Ab?6OOkJf-w3 z)dW2Z`It3$PZ-H_8whZTt2i?2Gxsy`n5ydVOIyp>F+VzCqGfJn;p$*7`mUcr-AmEU eyJE=#gU2VVgM@NA3XTWNU)(OBY{tdHU=0AxnagGX literal 0 HcmV?d00001 diff --git a/user_guide/images/nav_bg_darker.jpg b/user_guide/images/nav_bg_darker.jpg new file mode 100755 index 0000000000000000000000000000000000000000..816efad6a19fb8b5ec891d50a30bf4436b5bdbc2 GIT binary patch literal 445 zcmex=<NpH&0WUXCHwH!~28I+MWcdGvLC~c%IlGd9k%5JQfx!(Z^p1hgF(p4Kl_BK- zP=xXSZH5*G7G@9tk}Pa2K+Mj{!oteV!N$hU#>T<L!3hK$TwFXL03>;Nd3XdtKm-mL zSy)*)*g5#QxcEi*`1s)BL^J*$U=ZYBFk&!fW)x&#5@ci+Wc+`GArk0pW=5bZ5r7fs zE=E)#prioM%WTXDRX~3Q3Nl@05t$OoE+L4a{QoTm9-z5Qg3N*p_6$cHz#6Ty&)rQu zu<q{L0=cr+daPydvl~8dk1WvMULC_ech~90*xk1t*u1?K!}a#wb;jp;n;wMcecQor zT{@j<clp)>_dlp4NC+A5a7wVT^e{8IF*YhQ9GKX!smXvtnE{y)LUtvDUH|_k03bzC A-v9sr literal 0 HcmV?d00001 diff --git a/user_guide/images/nav_separator_darker.jpg b/user_guide/images/nav_separator_darker.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a09bd5a6aa160ee93c46df805c479d4eb2343593 GIT binary patch literal 304 zcma)$I|{-;5QhKBK3z7OETr}-B1k~Jg~rOl%EI0gd4d#PLGaOd0PzazqzPymzhQoc zk71Z}O;41IdR~Jvpy5J#A<p*e?EwS{pl0<(m^QoB22IO`(gR0G(ZMOT<Tgr5Wvtdl zYwPTYvCjDp&OG-%c2qqim9oYb&J|S%q4$3esYSG~$OJ`Xkwm0)#**Lu#?Y@pIZ&54 SSW0(zL3~+6OfWtb>GlCYt0Ig5 literal 0 HcmV?d00001 diff --git a/user_guide/images/nav_toggle_darker.jpg b/user_guide/images/nav_toggle_darker.jpg new file mode 100755 index 0000000000000000000000000000000000000000..eff33de4fa4238b691742759098cfc1827c27f39 GIT binary patch literal 1917 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 XeAF>mF?WbD{}+&GN(7y+%Etc*U-&D6 literal 0 HcmV?d00001 diff --git a/user_guide/images/reactor-bullet.png b/user_guide/images/reactor-bullet.png new file mode 100755 index 0000000000000000000000000000000000000000..89c8129a490b329f3165f32fa0781701aab417ea GIT binary patch literal 781 zcmV+o1M>WdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!pGibPR5;6} zlj}=UVI0T(J9f@?Yy$~oL?MENP<s_55<8j=#k?#_)7`z&He=XKi!yRv#z-kGv(##H zPHpPc=GK%laoJHq%)RMCwPAFzZ|CgAOcEn{;0q5A&*$@du5ke3{wIG76!;E_a;FdK zvpp$H#^e2A>4-QibtN)VXQDpczE`xXAkUjh%RI>;okxb7K@0kpyQ1k_Y(|Oe7$m(^ zNYX>mI||sUbmn+c<m#Le&eeX{US5M~t}+^~?^x|a<4hF}*!YoT8=u}L$nm5IGu=t+ z9L!Cu36!D2Ujog{8R*!Qv#Iu-h5hwCT%4+a*g~$0uam-<K;}*|sK&CQl{uILRo+uj zOcz2iRRHx=A>3<&FnE=4u#()KBS^SH8e)Qs5i!#lY=$-1gbH6VluzU=m=EP78&5vQ z-?+fFP-G2l&l_QzYealK$;1Rl?FkzXR&Jv<pn=v~#I9rjiy!8pnkdBB+E5h!vH2Zs z&o03*QH;J|Cj>@fBPNjCr#AYRyJ7UJQ0v#?)7Ott=>3<sG1xL&549^BdiQDc2Rk6B z`CZUMF*oL$(7tdPx=A_AzG_6ieU8GLKR01{dI4q5ENECkOP~(zUNfjFVrvVjw*&_H zKpN~TcTqhdhuVD-b<^codbfbK*#?vj9*4ql0y<|7?610!ZaoaDlGr-LWGi2|kG&eR zM}vpV9aN6yK|7oS)sPHI2Nw>`#-pV!7>9}>Q1jL)H6h&gkP@3nI=+F3nA~M>u#(n* z8T!#8oEw&-mED4!h4s!N@Jo3S7N&Q6%6l3}nlcd~X@>;uelvPsSkXIgg~e+^T1zSf z3SNj(5%jK~i8@b;C<CFVY6wQ4<%I<*UYM=Ou+dYcgy^ro@n7=`XV9$WdAihN00000 LNkvXXu0mjf{u*Ke literal 0 HcmV?d00001 diff --git a/user_guide/images/smile.gif b/user_guide/images/smile.gif new file mode 100755 index 0000000000000000000000000000000000000000..bf0922504edcbda115512c88240d215c18241f15 GIT binary patch literal 1156 zcmd6m{WIGK0LH)d(hIj2M{HToZP$o2Z%6CK8Rn&4+Gy7*uB(gF3N^3Sp_62*i6N`z zw9%>}#@O82&aGH?Go4E7ZS-WQqgp~}5b{m(%~$h%O)UP4J<oHWpPwI|=NLae<dY09 zzzaYCVAt-jL&WZ`jev!?MM%J3AW$U<r4o>UG^gR9fPm7G?Q|O?#7#mB6k?`K+?a)% zvk*fTYPg7k*@z(<TF)e*JOs?aO?jv>mxKy2V?GMzBVd8ea*2e$B+L#L5l|5cmDu2~ zY;dW4M?#oIxLHJ)B?u_8S*{S!75h#(34e>3%Lup}ha8cjCPykTa}@#0P?OC5rk31M z;Fg=@PP5(GYSo>@HWJazL|mVQZJfdMNpExxCS&>(Y%2xXNVXZz5{7e#{w%hYif^Y` zRt4Dhc>)yLp*$SShjhi5u^iURtcDsJe2awZNy}~2c#GWm$+FdI)gHHM`RM8iRCfYh zJBesNLv^RtXOm5<SK-Y%+;qpRyMurombp)%`3Pts5`Gn9U5sBDkAz>wqbq!5i4QK7 z8kZ}K%W}i(KI3E{{5*7NFxWT~2CBp0x#)$_0=?#*UUT2PH35zXZjT2VCxW2K5Y6bt zh2g@@mo4k_ExNxM>jSLqr#$@=?s6Xo90{1~<rs#KjQzr$f1I|Wu34K=tf&>bKj|;J zd>4BH)(3*8J3bt|{ZXTYIo$T~q>`rj^{`UR7-|e?6#F$vn2jQ4llV}h<WQrC)g)#& zOE~{_C2B_Hnoi!}4c55wh_aN~EMh7}>?Sd{zuJ4TgZ-+FGxkH=!lSaadr?aY*3+us z{!4y6=jp#^G6u4Fs$BoU9RHpS?gIfMmF<<v_O47n)gDV1u)P23Y!xu6X>3|5>wU+_ z?DoB_0ski*#9a0Pz!bpSE4B9tfU*m;yZNwKijIT^s`i6_6dCk@{C@Iy$%wjL=Ip$r z?d|-&ffwHO@NUw^>6oaT%ZuF=L$cZfoOr3~g3L1}C^+k9dXRj-+}kgrB{YbuRwYEF zi#gdmfa4XI8zk5-on_>R)rPBeoTfmaH&i?&y|&N;bXwDTtNg~^I-_<97mR4Xt3Kzv zdVg!keR>~_omhXfIxoh>%{$!H0|30+PS>aPg+$Y1Wp3}b#<owXX4%OF_~nk+xM8ZZ zD~+dcYOnF~D|y|m_06TySuQ?|L{%2Wlb$&ttr!}e`tev7btJmG>hn6^=qkVsj=SD^ zwDLevo@-%}r|(d3O~ygE`W>IhuPsr<!*?503Ew>4Jo?^Nt#YA^!Y_VEN%^g!%P=it zKB1Jzxm7PL&*(Poj0d-lCZzCG9?#_gk1jY}tEBxg!)M+&+)H6LNt2$H)83wS=RTOV Nxce^#Q9XdL{{R50L}~y4 literal 0 HcmV?d00001 diff --git a/user_guide/images/transparent.gif b/user_guide/images/transparent.gif new file mode 100755 index 0000000000000000000000000000000000000000..b7406476aa46e4d98eefacf95f6d3e8c5439e330 GIT binary patch literal 43 qcmZ?wbh9u|WMp7uXkY+=|Ns9h{$ycf01D`U_#hbuCMF+725SJnmj?g< literal 0 HcmV?d00001 diff --git a/user_guide/index.html b/user_guide/index.html new file mode 100755 index 0000000..793a7ca --- /dev/null +++ b/user_guide/index.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Welcome to CodeIgniter : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='userguide.css' /> + +<script type="text/javascript" src="nav/nav.js"></script> +<script type="text/javascript" src="nav/prototype.lite.js"></script> +<script type="text/javascript" src="nav/moo.fx.js"></script> +<script type="text/javascript" src="nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('null');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; CodeIgniter User Guide +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> + + + +<br clear="all" /> + +<div class="center"><img src="images/ci_logo_flame.jpg" width="150" height="164" border="0" alt="CodeIgniter" /></div> + + +<!-- START CONTENT --> +<div id="content"> + + + +<h2>Welcome to CodeIgniter</h2> + +<p>CodeIgniter is an Application Development Framework - a toolkit - for people who build web sites using PHP. +Its goal is to enable you to develop projects much faster than you could if you were writing code +from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and +logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by +minimizing the amount of code needed for a given task.</p> + + +<h2>Who is CodeIgniter For?</h2> + +<p>CodeIgniter is right for you if:</p> + +<ul> +<li>You want a framework with a small footprint.</li> +<li>You need exceptional performance.</li> +<li>You need broad compatibility with standard hosting accounts that run a variety of PHP versions and configurations.</li> +<li>You want a framework that requires nearly zero configuration.</li> +<li>You want a framework that does not require you to use the command line.</li> +<li>You want a framework that does not require you to adhere to restrictive coding rules.</li> +<li>You do not want to be forced to learn a templating language (although a template parser is optionally available if you desire one).</li> +<li>You eschew complexity, favoring simple solutions.</li> +<li>You need clear, thorough documentation.</li> +</ul> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p><a href="#top">Top of Page</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + + + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/downloads.html b/user_guide/installation/downloads.html new file mode 100755 index 0000000..01a4a58 --- /dev/null +++ b/user_guide/installation/downloads.html @@ -0,0 +1,120 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Downloading CodeIgniter : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Downloading CodeIgniter +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Downloading CodeIgniter</h1> + +<ul> + <li><a href="http://ellislab.com/codeigniter/download">CodeIgniter V 2.1.4 (Current version)</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_2.1.3.zip">CodeIgniter V 2.1.3</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_2.1.2.zip">CodeIgniter V 2.1.2</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_2.1.1.zip">CodeIgniter V 2.1.1</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_2.1.0.zip">CodeIgniter V 2.1.0</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_2.0.3.zip">CodeIgniter V 2.0.3</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_2.0.2.zip">CodeIgniter V 2.0.2</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_2.0.1.zip">CodeIgniter V 2.0.1</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_2.0.0.zip">CodeIgniter V 2.0.0</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.7.3.zip">CodeIgniter V 1.7.3</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.7.2.zip">CodeIgniter V 1.7.2</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.7.1.zip">CodeIgniter V 1.7.1</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.7.0.zip">CodeIgniter V 1.7.0</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.6.3.zip">CodeIgniter V 1.6.3</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.6.2.zip">CodeIgniter V 1.6.2</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.6.1.zip">CodeIgniter V 1.6.1</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.6.0.zip">CodeIgniter V 1.6.0</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.5.4.zip">CodeIgniter V 1.5.4</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.5.3.zip">CodeIgniter V 1.5.3</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.5.2.zip">CodeIgniter V 1.5.2</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.5.1.zip">CodeIgniter V 1.5.1</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.4.1.zip">CodeIgniter V 1.4.1</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.3.3.zip">CodeIgniter V 1.3.3</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.3.2.zip">CodeIgniter V 1.3.2</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.3.1.zip">CodeIgniter V 1.3.1</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.3.zip">CodeIgniter V 1.3</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.2.zip">CodeIgniter V 1.2</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.1b.zip">CodeIgniter V 1.1</a></li> + <li><a href="http://ellislab.com/asset/ci_download_files/CodeIgniter_1.0b.zip">CodeIgniter V 1.0</a></li> +</ul> + + + + +<h1 id="git">Git Server</h1> +<p><a href="http://git-scm.com/about">Git</a> is a distributed version control system.</p> + +<p>Public Git access is available at <a href="https://github.com/EllisLab/CodeIgniter">GitHub</a>. + Please note that while every effort is made to keep this code base functional, we cannot guarantee the functionality of code taken + from the tip.</p> + +<p>Beginning with version 2.0.3, stable tags are also available via GitHub, simply select the version from the Tags dropdown.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../general/credits.html">Credits</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../installation/index.html">Installation Instructions</a> +</p> +<p><a href="http://codeigniter.com/">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/index.html b/user_guide/installation/index.html new file mode 100755 index 0000000..ff9d830 --- /dev/null +++ b/user_guide/installation/index.html @@ -0,0 +1,108 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Installation Instructions : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Installation Instructions +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Installation Instructions</h1> + +<p>CodeIgniter is installed in four steps:</p> + +<ol> +<li>Unzip the package.</li> +<li>Upload the CodeIgniter folders and files to your server. Normally the index.php file will be at your root.</li> +<li>Open the <dfn>application/config/config.php</dfn> file with a text editor and set your base URL. If you intend to use encryption or sessions, set your encryption key.</li> +<li>If you intend to use a database, open the <dfn>application/config/database.php</dfn> file with a text editor and set your database settings.</li> +</ol> + +<p>If you wish to increase security by hiding the location of your CodeIgniter files you can rename the <dfn>system</dfn> and <dfn>application</dfn> folders +to something more private. If you do rename them, you must open your main <kbd>index.php</kbd> file and set the <samp>$system_folder</samp> and <samp>$application_folder</samp> +variables at the top of the file with the new name you've chosen.</p> + +<p>For the best security, both the <dfn>system</dfn> and any <dfn>application</dfn> folders should be placed above web root so that they are not directly accessible via a browser. By default, .htaccess files are included in each folder to help prevent direct access, but it is best to remove them from public access entirely in case the web server configuration changes or doesn't abide by the .htaccess.</p> + +<p>After moving them, open your main <kdb>index.php</kbd> file and set the <samp>$system_folder</samp> and <samp>$application_folder</samp> variables, preferably with a full path, e.g. '<dfn>/www/MyUser/system</dfn>'.</p> + +<p> + One additional measure to take in production environments is to disable + PHP error reporting and any other development-only functionality. In CodeIgniter, + this can be done by setting the <kbd>ENVIRONMENT</kbd> constant, which is + more fully described on the <a href="../general/security.html">security page</a>. +</p> + +<p>That's it!</p> + +<p>If you're new to CodeIgniter, please read the <a href="../overview/getting_started.html">Getting Started</a> section of the User Guide to begin learning how +to build dynamic PHP applications. Enjoy!</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../general/credits.html">Credits</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="upgrading.html">Upgrading from a Previous Version</a> +</p> + +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/troubleshooting.html b/user_guide/installation/troubleshooting.html new file mode 100755 index 0000000..85d9f7f --- /dev/null +++ b/user_guide/installation/troubleshooting.html @@ -0,0 +1,90 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Troubleshooting : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Trouble Shooting +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Troubleshooting</h1> + +<p>If you find that no matter what you put in your URL only your default page is loading, it might be that your server +does not support the PATH_INFO variable needed to serve search-engine friendly URLs. + +As a first step, open your <dfn>application/config/config.php</dfn> file and look for the <kbd>URI Protocol</kbd> +information. It will recommend that you try a couple alternate settings. If it still doesn't work after you've tried this you'll need +to force CodeIgniter to add a question mark to your URLs. To do this open your <kbd>application/config/config.php</kbd> file and change this:</p> + +<code>$config['index_page'] = "index.php";</code> + +<p>To this:</p> + +<code>$config['index_page'] = "index.php?";</code> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="upgrading.html">Upgrading from a Previous Version</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../overview/at_a_glance.html">CodeIgniter at a Glance</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_120.html b/user_guide/installation/upgrade_120.html new file mode 100755 index 0000000..38ede12 --- /dev/null +++ b/user_guide/installation/upgrade_120.html @@ -0,0 +1,92 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from Beta 1.1 to Final 1.2 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading From Beta 1.0 to Final 1.2</h1> + +<p>To upgrade to Version 1.2 please replace the following directories with the new versions:</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<ul> +<li>drivers</li> +<li>helpers</li> +<li>init</li> +<li>language</li> +<li>libraries</li> +<li>plugins</li> +<li>scaffolding</li> +</ul> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_130.html b/user_guide/installation/upgrade_130.html new file mode 100755 index 0000000..f448377 --- /dev/null +++ b/user_guide/installation/upgrade_130.html @@ -0,0 +1,203 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.2 to 1.3 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.2 to 1.3</h1> + +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.2. If you +have not upgraded to that version please do so first.</p> + + +<p>Before performing an update you should take your site offline by replacing the index.php file +with a static one.</p> + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace the following directories in your "system" folder with the new versions:</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<ul> +<li>application/<strong>models</strong>/&nbsp;&nbsp; (new for 1.3)</li> +<li>codeigniter&nbsp;&nbsp; (new for 1.3)</li> +<li>drivers</li> +<li>helpers</li> +<li>init</li> +<li>language</li> +<li>libraries</li> +<li>plugins</li> +<li>scaffolding</li> +</ul> + + +<h2>Step 2: Update your error files</h2> + +<p>Version 1.3 contains two new error templates located in <dfn>application/errors</dfn>, and for naming consistency the other error templates have +been renamed.</p> + +<p>If you <strong>have not</strong> customized any of the error templates simply +replace this folder:</p> + +<ul> +<li>application/errors/</li> +</ul> + +<p>If you <strong>have</strong> customized your error templates, rename them as follows:</p> + + +<ul> +<li>404.php&nbsp;&nbsp; =&nbsp; error_404.php</li> +<li>error.php&nbsp;&nbsp; =&nbsp; error_general.php</li> +<li>error_db.php&nbsp;&nbsp; (new)</li> +<li>error_php.php&nbsp;&nbsp; (new)</li> +</ul> + + +<h2>Step 3: Update your index.php file</h2> + +<p>Please open your main <dfn>index.php</dfn> file (located at your root). At the very bottom of the file, change this:</p> + +<code>require_once BASEPATH.'libraries/Front_controller'.EXT;</code> + +<p>To this:</p> + +<code>require_once BASEPATH.'codeigniter/CodeIgniter'.EXT;</code> + + +<h2>Step 4: Update your config.php file</h2> + +<p>Open your <dfn>application/config/config.php</dfn> file and add these new items:</p> + +<pre> +/* +|------------------------------------------------ +| URL suffix +|------------------------------------------------ +| +| This option allows you to add a suffix to all URLs. +| For example, if a URL is this: +| +| example.com/index.php/products/view/shoes +| +| You can optionally add a suffix, like ".html", +| making the page appear to be of a certain type: +| +| example.com/index.php/products/view/shoes.html +| +*/ +$config['url_suffix'] = ""; + + +/* +|------------------------------------------------ +| Enable Query Strings +|------------------------------------------------ +| +| By default CodeIgniter uses search-engine and +| human-friendly segment based URLs: +| +| example.com/who/what/where/ +| +| You can optionally enable standard query string +| based URLs: +| +| example.com?who=me&what=something&where=here +| +| Options are: TRUE or FALSE (boolean) +| +| The two other items let you set the query string "words" +| that will invoke your controllers and functions: +| example.com/index.php?c=controller&m=function +| +*/ +$config['enable_query_strings'] = FALSE; +$config['controller_trigger'] = 'c'; +$config['function_trigger'] = 'm'; +</pre> + + +<h2>Step 5: Update your database.php file</h2> + +<p>Open your <dfn>application/config/database.php</dfn> file and add these new items:</p> + +<pre> +$db['default']['dbprefix'] = ""; +$db['default']['active_r'] = TRUE; +</pre> + + +<h2>Step 6: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_131.html b/user_guide/installation/upgrade_131.html new file mode 100755 index 0000000..fa123d1 --- /dev/null +++ b/user_guide/installation/upgrade_131.html @@ -0,0 +1,102 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.3 to 1.3.1 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.3 to 1.3.1</h1> + +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3. If you +have not upgraded to that version please do so first.</p> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace the following directories in your "system" folder with the new versions:</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<ul> +<li>drivers</li> +<li>init/init_unit_test.php (new for 1.3.1)</li> +<li>language/</li> +<li>libraries</li> +<li>scaffolding</li> +</ul> + + +<h2>Step 2: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_132.html b/user_guide/installation/upgrade_132.html new file mode 100755 index 0000000..b0ab815 --- /dev/null +++ b/user_guide/installation/upgrade_132.html @@ -0,0 +1,100 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.3.1 to 1.3.2 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.3.1 to 1.3.2</h1> + +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.1. If you +have not upgraded to that version please do so first.</p> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace the following directories in your "system" folder with the new versions:</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<ul> +<li>drivers</li> +<li>init</li> +<li>libraries</li> +</ul> + + +<h2>Step 2: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_133.html b/user_guide/installation/upgrade_133.html new file mode 100755 index 0000000..badd6dc --- /dev/null +++ b/user_guide/installation/upgrade_133.html @@ -0,0 +1,112 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.3.2 to 1.3.3 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.3.2 to 1.3.3</h1> + +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.2. If you +have not upgraded to that version please do so first.</p> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace the following directories in your "system" folder with the new versions:</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<ul> +<li>codeigniter</li> +<li>drivers</li> +<li>helpers</li> +<li>init</li> +<li>libraries</li> +</ul> + + +<h2>Step 2: Update your Models</h2> + +<p>If you are <strong>NOT</strong> using CodeIgniter's <a href="../general/models.html">Models</a> feature disregard this step.</p> + +<p>As of version 1.3.3, CodeIgniter does <strong>not</strong> connect automatically to your database when a model is loaded. This +allows you greater flexibility in determining which databases you would like used with your models. If your application is not connecting +to your database prior to a model being loaded you will have to update your code. There are several options for connecting, +<a href="../general/models.html">as described here</a>.</p> + + +<h2>Step 3: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_140.html b/user_guide/installation/upgrade_140.html new file mode 100755 index 0000000..339befd --- /dev/null +++ b/user_guide/installation/upgrade_140.html @@ -0,0 +1,145 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.3.3 to 1.4.0 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.3.3 to 1.4.0</h1> + +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.3. If you +have not upgraded to that version please do so first.</p> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace the following directories in your "system" folder with the new versions:</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<ul> +<li>application/config/<strong>hooks.php</strong></li> +<li>application/config/<strong>mimes.php</strong></li> +<li>codeigniter</li> +<li>drivers</li> +<li>helpers</li> +<li>init</li> +<li>language</li> +<li>libraries</li> +<li>scaffolding</li> +</ul> + + +<h2>Step 2: Update your config.php file</h2> + +<p>Open your <dfn>application/config/config.php</dfn> file and add these new items:</p> + +<pre> + +/* +|-------------------------------------------------------------------------- +| Enable/Disable System Hooks +|-------------------------------------------------------------------------- +| +| If you would like to use the "hooks" feature you must enable it by +| setting this variable to TRUE (boolean). See the user guide for details. +| +*/ +$config['enable_hooks'] = FALSE; + + +/* +|-------------------------------------------------------------------------- +| Allowed URL Characters +|-------------------------------------------------------------------------- +| +| This lets you specify which characters are permitted within your URLs. +| When someone tries to submit a URL with disallowed characters they will +| get a warning message. +| +| As a security measure you are STRONGLY encouraged to restrict URLs to +| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_- +| +| Leave blank to allow all characters -- but only if you are insane. +| +| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!! +| +*/ +$config['permitted_uri_chars'] = 'a-z 0-9~%.:_-'; +</pre> + + +<h2>Step 3: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_141.html b/user_guide/installation/upgrade_141.html new file mode 100755 index 0000000..064fd66 --- /dev/null +++ b/user_guide/installation/upgrade_141.html @@ -0,0 +1,148 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.4.0 to 1.4.1 </td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.4.0 to 1.4.1</h1> + +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.0. If you +have not upgraded to that version please do so first.</p> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace the following directories in your "system" folder with the new versions:</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<ul> +<li>codeigniter</li> +<li>drivers</li> +<li>helpers</li> +<li>libraries</li> +</ul> + + +<h2>Step 2: Update your config.php file</h2> + +<p>Open your <dfn>application/config/config.php</dfn> file and add this new item:</p> + +<pre> + +/* +|-------------------------------------------------------------------------- +| Output Compression +|-------------------------------------------------------------------------- +| +| Enables Gzip output compression for faster page loads. When enabled, +| the output class will test whether your server supports Gzip. +| Even if it does, however, not all browsers support compression +| so enable only if you are reasonably sure your visitors can handle it. +| +| VERY IMPORTANT: If you are getting a blank page when compression is enabled it +| means you are prematurely outputting something to your browser. It could +| even be a line of whitespace at the end of one of your scripts. For +| compression to work, nothing can be sent before the output buffer is called +| by the output class. Do not "echo" any values with compression enabled. +| +*/ +$config['compress_output'] = FALSE; + +</pre> + + + +<h2>Step 3: Rename an Autoload Item</h2> + +<p>Open the following file: <dfn>application/config/autoload.php</dfn></p> + +<p>Find this array item:</p> + +<code>$autoload['core'] = array();</code> + +<p>And rename it to this:</p> + +<code>$autoload['libraries'] = array();</code> + +<p>This change was made to improve clarity since some users were not sure that their own libraries could be auto-loaded.</p> + + + + + + +<h2>Step 4: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_150.html b/user_guide/installation/upgrade_150.html new file mode 100755 index 0000000..c41e139 --- /dev/null +++ b/user_guide/installation/upgrade_150.html @@ -0,0 +1,178 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.4.1 to 1.5.0 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.4.1 to 1.5.0</h1> + +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.1. If you +have not upgraded to that version please do so first.</p> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>application/config/user_agents.php</dfn> (new file for 1.5)</li> +<li><dfn>application/config/smileys.php</dfn> (new file for 1.5)</li> +<li><dfn>codeigniter/</dfn></li> +<li><dfn>database/</dfn> (new folder for 1.5. Replaces the "drivers" folder)</li> +<li><dfn>helpers/</dfn></li> +<li><dfn>language/</dfn></li> +<li><dfn>libraries/</dfn></li> +<li><dfn>scaffolding/</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Update your database.php file</h2> + +<p>Open your <dfn>application/config/database.php</dfn> file and add these new items:</p> + +<pre> +$db['default']['cache_on'] = FALSE; +$db['default']['cachedir'] = ''; +</pre> + + + +<h2>Step 3: Update your config.php file</h2> + +<p>Open your <dfn>application/config/config.php</dfn> file and <kbd>ADD</kbd> these new items:</p> + +<pre> +/* +|-------------------------------------------------------------------------- +| Class Extension Prefix +|-------------------------------------------------------------------------- +| +| This item allows you to set the filename/classname prefix when extending +| native libraries. For more information please see the user guide: +| +| http://codeigniter.com/user_guide/general/core_classes.html +| http://codeigniter.com/user_guide/general/creating_libraries.html +| +*/ +$config['subclass_prefix'] = 'MY_'; + +/* +|-------------------------------------------------------------------------- +| Rewrite PHP Short Tags +|-------------------------------------------------------------------------- +| +| If your PHP installation does not have short tag support enabled CI +| can rewrite the tags on-the-fly, enabling you to utilize that syntax +| in your view files. Options are TRUE or FALSE (boolean) +| +*/ +$config['rewrite_short_tags'] = FALSE; +</pre> + +<p>In that same file <kbd>REMOVE</kbd> this item:</p> + + +<pre> +/* +|-------------------------------------------------------------------------- +| Enable/Disable Error Logging +|-------------------------------------------------------------------------- +| +| If you would like errors or debug messages logged set this variable to +| TRUE (boolean). Note: You must set the file permissions on the "logs" folder +| such that it is writable. +| +*/ +$config['log_errors'] = FALSE; +</pre> + +<p>Error logging is now disabled simply by setting the threshold to zero.</p> + + + +<h2>Step 4: Update your main index.php file</h2> + +<p>If you are running a stock <dfn>index.php</dfn> file simply replace your version with the new one.</p> + +<p>If your <dfn>index.php</dfn> file has internal modifications, please add your modifications to the new file and use it.</p> + + + +<h2>Step 5: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_152.html b/user_guide/installation/upgrade_152.html new file mode 100755 index 0000000..eb1ec3b --- /dev/null +++ b/user_guide/installation/upgrade_152.html @@ -0,0 +1,111 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.5.0 to 1.5.2 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.5.0 to 1.5.2</h1> + +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.5.0 or 1.5.1. If you +have not upgraded to that version please do so first.</p> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/helpers/download_helper.php</dfn></li> +<li><dfn>system/helpers/form_helper.php</dfn></li> +<li><dfn>system/libraries/Table.php</dfn></li> +<li><dfn>system/libraries/User_agent.php</dfn></li> +<li><dfn>system/libraries/Exceptions.php</dfn></li> +<li><dfn>system/libraries/Input.php</dfn></li> +<li><dfn>system/libraries/Router.php</dfn></li> +<li><dfn>system/libraries/Loader.php</dfn></li> +<li><dfn>system/libraries/Image_lib.php</dfn></li> +<li><dfn>system/language/english/unit_test_lang.php</dfn></li> +<li><dfn>system/database/DB_active_rec.php</dfn></li> +<li><dfn> system/database/drivers/mysqli/mysqli_driver.php</dfn></li> +<li><dfn>codeigniter/</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_153.html b/user_guide/installation/upgrade_153.html new file mode 100755 index 0000000..f26aa8a --- /dev/null +++ b/user_guide/installation/upgrade_153.html @@ -0,0 +1,100 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;Upgrading from 1.5.2 to 1.5.3 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.5.2 to 1.5.3</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/database/drivers</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/libraries/Input.php</dfn></li> +<li><dfn>system/libraries/Loader.php</dfn></li> +<li><dfn>system/libraries/Profiler.php</dfn></li> +<li><dfn>system/libraries/Table.php</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Update your user guide</h2> + +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_154.html b/user_guide/installation/upgrade_154.html new file mode 100755 index 0000000..d721ff2 --- /dev/null +++ b/user_guide/installation/upgrade_154.html @@ -0,0 +1,116 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.5.3 to 1.5.4 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.5.3 to 1.5.4 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.5.3 to 1.5.4</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>application/config/mimes.php</dfn></li> +<li><dfn>system/codeigniter</dfn></li> +<li><dfn>system/database</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/libraries</dfn></li> +<li><dfn>system/plugins</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Add charset to your config.php </h2> +<p>Add the following to application/config/config.php</p> +<code>/*<br /> + |--------------------------------------------------------------------------<br /> + | Default Character Set<br /> + |--------------------------------------------------------------------------<br /> + |<br /> + | This determines which character set is used by default in various methods<br /> + | that require a character set to be provided.<br /> + |<br /> + */<br /> + $config['charset'] = &quot;UTF-8&quot;;</code> + +<h2>Step 3: Autoloading language files </h2> +<p>If you want to autoload any language files, add this line to application/config/autoload.php</p> +<code>$autoload['language'] = array();</code> + +<h2>Step 4: Update your user guide</h2> +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_160.html b/user_guide/installation/upgrade_160.html new file mode 100755 index 0000000..fb11ee3 --- /dev/null +++ b/user_guide/installation/upgrade_160.html @@ -0,0 +1,125 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.5.4 to 1.6.0 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.5.4 to 1.6.0 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.5.4 to 1.6.0</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/codeigniter</dfn></li> +<li><dfn>system/database</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/libraries</dfn></li> +<li><dfn>system/plugins</dfn></li> +<li><dfn>system/language</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Add time_to_update to your config.php </h2> +<p>Add the following to application/config/config.php with the other session configuration options</p> +<p><code>$config['sess_time_to_update'] = 300;</code></p> +<h2>Step 3: Add $autoload['model']</h2> +<p>Add the following to application/config/autoload.php</p> +<p><code> /*<br /> + | -------------------------------------------------------------------<br /> + | Auto-load Model files<br /> + | -------------------------------------------------------------------<br /> + | Prototype:<br /> + |<br /> + | $autoload['model'] = array('my_model');<br /> + |<br /> + */<br /> + <br /> + $autoload['model'] = array();</code></p> +<h2>Step 4: Add to your database.php </h2> +<p>Make the following changes to your application/config/database.php file:</p> +<p>Add the following variable above the database configuration options, with <dfn>$active_group</dfn></p> +<p><code>$active_record = TRUE;</code></p> +<p>Remove the following from your database configuration options</p> +<p><code>$db['default']['active_r'] = TRUE;</code></p> +<p>Add the following to your database configuration options</p> +<p><code>$db['default']['char_set'] = &quot;utf8&quot;;<br /> +$db['default']['dbcollat'] = &quot;utf8_general_ci&quot;;</code></p> + +<h2>Step 5: Update your user guide</h2> +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_161.html b/user_guide/installation/upgrade_161.html new file mode 100755 index 0000000..7f40355 --- /dev/null +++ b/user_guide/installation/upgrade_161.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.6.0 to 1.6.1 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.6.0 to 1.6.1 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.6.0 to 1.6.1</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/codeigniter</dfn></li> +<li><dfn>system/database</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/language</dfn></li> +<li><dfn>system/libraries</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Update your user guide</h2> +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_162.html b/user_guide/installation/upgrade_162.html new file mode 100755 index 0000000..4237857 --- /dev/null +++ b/user_guide/installation/upgrade_162.html @@ -0,0 +1,106 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.6.1 to 1.6.2 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.6.1 to 1.6.2 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.6.1 to 1.6.2</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/codeigniter</dfn></li> +<li><dfn>system/database</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/language</dfn></li> +<li><dfn>system/libraries</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Encryption Key</h2> +<p>If you are using sessions, open up application/config/config.php and verify you've set an encryption key.</p> + +<h2>Step 3: Constants File</h2> +<p>Copy /application/config/constants.php to your installation, and modify if necessary.</p> +<h2>Step 4: Mimes File</h2> +<p>Replace /application/config/mimes.php with the dowloaded version. If you've added custom mime types, you'll need to re-add them.</p> +<h2>Step 5: Update your user guide</h2> +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_163.html b/user_guide/installation/upgrade_163.html new file mode 100755 index 0000000..edfa420 --- /dev/null +++ b/user_guide/installation/upgrade_163.html @@ -0,0 +1,99 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.6.2 to 1.6.3 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.6.2 to 1.6.3 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.6.2 to 1.6.3</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/codeigniter</dfn></li> +<li><dfn>system/database</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/language</dfn></li> +<li><dfn>system/libraries</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Update your user guide</h2> +<p>Please also replace your local copy of the user guide with the new version.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_170.html b/user_guide/installation/upgrade_170.html new file mode 100755 index 0000000..6fea1da --- /dev/null +++ b/user_guide/installation/upgrade_170.html @@ -0,0 +1,121 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.6.3 to 1.7.0 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.6.3 to 1.7.0 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.6.3 to 1.7.0</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/codeigniter</dfn></li> +<li><dfn>system/database</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/language</dfn></li> +<li><dfn>system/libraries</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Update your Session Table</h2> + +<p>If you are using the Session class in your application, AND if you are storing session data to a database, you must add a new column named <dfn>user_data</dfn> to your session table. +Here is an example of what this column might look like for MySQL:</p> + +<code>user_data text NOT NULL</code> + +<p>To add this column you will run a query similar to this:</p> + +<code>ALTER TABLE `ci_sessions` ADD `user_data` text NOT NULL</code> + +<p>You'll find more information regarding the new Session functionality in the <a href="../libraries/sessions.html">Session class</a> page.</p> + + +<h2>Step 3: Update your Validation Syntax</h2> + +<p>This is an <strong>optional</strong>, but recommended step, for people currently using the Validation class. CI 1.7 introduces a new <a href="../libraries/form_validation.html">Form Validation class</a>, which +deprecates the old Validation library. We have left the old one in place so that existing applications that use it will not break, but you are encouraged to +migrate to the new version as soon as possible. Please read the user guide carefully as the new library works a little differently, and has several new features.</p> + + + +<h2>Step 4: Update your user guide</h2> +<p>Please replace your local copy of the user guide with the new version, including the image files.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_171.html b/user_guide/installation/upgrade_171.html new file mode 100755 index 0000000..45347be --- /dev/null +++ b/user_guide/installation/upgrade_171.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.7.0 to 1.7.1 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.7.0 to 1.7.1 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.7.0 to 1.7.1</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/codeigniter</dfn></li> +<li><dfn>system/database</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/language</dfn></li> +<li><dfn>system/libraries</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Update your user guide</h2> +<p>Please replace your local copy of the user guide with the new version, including the image files.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_172.html b/user_guide/installation/upgrade_172.html new file mode 100755 index 0000000..cad36b1 --- /dev/null +++ b/user_guide/installation/upgrade_172.html @@ -0,0 +1,109 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.7.1 to 1.7.2 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.7.1 to 1.7.2 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.7.1 to 1.7.2</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace these files and directories in your "system" folder with the new versions:</p> + +<ul> + +<li><dfn>system/codeigniter</dfn></li> +<li><dfn>system/database</dfn></li> +<li><dfn>system/helpers</dfn></li> +<li><dfn>system/language</dfn></li> +<li><dfn>system/libraries</dfn></li> +<li><dfn>index.php</dfn></li> +</ul> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Remove header() from 404 error template</h2> +<p>If you are using header() in your 404 error template, such as the case with the default <samp>error_404.php</samp> template shown below, remove that line of code.</p> + +<code>&lt;?php header(&quot;HTTP/1.1 404 Not Found&quot;); ?&gt;</code> + +<p>404 status headers are now properly handled in the show_404() method itself.</p> + +<h2>Step 3: Confirm your system_path</h2> +<p>In your updated index.php file, confirm that the <dfn>$system_path</dfn> variable is set to your application's system folder.</p> + +<h2>Step 4: Update your user guide</h2> +<p>Please replace your local copy of the user guide with the new version, including the image files.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_200.html b/user_guide/installation/upgrade_200.html new file mode 100755 index 0000000..daf6522 --- /dev/null +++ b/user_guide/installation/upgrade_200.html @@ -0,0 +1,131 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 1.7.2 to 2.0.0 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 1.7.2 to 2.0.0 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 1.7.2 to 2.0.0</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder <strong>except</strong> your <kbd>application</kbd> folder.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Adjust get_dir_file_info() where necessary</h2> + +<p>Version 2.0.0 brings a non-backwards compatible change to <kbd>get_dir_file_info()</kbd> in the <a href="../helpers/file_helper.html">File Helper</a>. Non-backwards compatible changes are extremely rare + in CodeIgniter, but this one we feel was warranted due to how easy it was to create serious server performance issues. If you <em>need</em> + recursiveness where you are using this helper function, change such instances, setting the second parameter, <kbd>$top_level_only</kbd> to FALSE:</p> + +<code>get_dir_file_info('/path/to/directory', <kbd>FALSE</kbd>);</code> + +</p> + +<h2>Step 3: Convert your Plugins to Helpers</h2> + +<p>2.0.0 gets rid of the "Plugin" system as their functionality was identical to Helpers, but non-extensible. You will need to rename your plugin files from <var>filename_pi.php</var> to <var>filename_helper.php</var>, move them to your <kbd>helpers</kbd> folder, and change all instances of: + + <code>$this->load->plugin('foo');</code> + +to + + <code>$this->load->helper('foo');</code> + +</p> + +<h2>Step 4: Update stored encrypted data</h2> + +<p class="important"><strong>Note:</strong> If your application does not use the Encryption library, does not store Encrypted data permanently, or is on an environment that does not support Mcrypt, you may skip this step.</p> + +<p>The Encryption library has had a number of improvements, some for encryption strength and some for performance, that has an unavoidable consequence of + making it no longer possible to decode encrypted data produced by the original version of this library. To help with the transition, a new method has + been added, <kbd>encode_from_legacy()</kbd> that will decode the data with the original algorithm and return a re-encoded string using the improved methods. + This will enable you to easily replace stale encrypted data with fresh in your applications, either on the fly or en masse.</p> + +<p>Please read <a href="../libraries/encryption.html#legacy">how to use this method</a> in the Encryption library documentation.</p> + +<h2>Step 5: Remove loading calls for the compatibility helper.</h2> +<p>The compatibility helper has been removed from the CodeIgniter core. All methods in it should be natively available in supported PHP versions.</p> + +<h2>Step 6: Update Class extension</h2> +<p>All core classes are now prefixed with <kbd>CI_</kbd>. Update Models and Controllers to extend CI_Model and CI_Controller, respectively.</p> + +<h2>Step 7: Update Parent Constructor calls</h2> +<p>All native CodeIgniter classes now use the PHP 5 <kbd>__construct()</kbd> convention. Please update extended libraries to call <kbd>parent::__construct()</kbd>.</p> + +<h2>Step 8: Update your user guide</h2> +<p>Please replace your local copy of the user guide with the new version, including the image files.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_201.html b/user_guide/installation/upgrade_201.html new file mode 100755 index 0000000..1b30752 --- /dev/null +++ b/user_guide/installation/upgrade_201.html @@ -0,0 +1,105 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.0.0 to 2.0.1 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 2.0.0 to 2.0.1 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.0.0 to 2.0.1</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Replace config/mimes.php</h2> + +<p>This config file has been updated to contain more mime types, please copy it to <kbd>application/config/mimes.php</kbd>.</p> + + +<h2>Step 3: Check for forms posting to default controller</h2> + +<p> + The default behavior for <kbd>form_open()</kbd> when called with no parameters used to be to post to the default controller, but it will now just leave an empty action="" meaning the form will submit to the current URL. + If submitting to the default controller was the expected behavior it will need to be changed from: +</p> + +<code>echo form_open(); //&lt;form action="" method="post" accept-charset="utf-8"></code> + +<p>to use either a / or <kbd>base_url()</kbd>:</p> + +<code>echo form_open('/'); //&lt;form action="http://example.com/index.php/" method="post" accept-charset="utf-8"><br/> +echo form_open(base_url()); //&lt;form action="http://example.com/" method="post" accept-charset="utf-8"></code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_202.html b/user_guide/installation/upgrade_202.html new file mode 100755 index 0000000..7814de8 --- /dev/null +++ b/user_guide/installation/upgrade_202.html @@ -0,0 +1,97 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.0.1 to 2.0.2 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 2.0.1 to 2.0.2 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.0.1 to 2.0.2</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Remove loading calls for the Security Library</h2> + +<p>Security has been moved to the core and is now always loaded automatically. Make sure you remove any loading calls as they will result in PHP errors.</p> + + +<h2>Step 3: Move MY_Security</h2> + +<p>If you are overriding or extending the Security library, you will need to move it to <kbd>application/core</kbd>.</p> + +<p><samp>csrf_token_name</samp> and <samp>csrf_hash</samp> have changed to protected class properties. Please use <samp>security->get_csrf_hash()</samp> and <samp>security->get_csrf_token_name()</samp> to access those values.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_203.html b/user_guide/installation/upgrade_203.html new file mode 100755 index 0000000..4f58706 --- /dev/null +++ b/user_guide/installation/upgrade_203.html @@ -0,0 +1,121 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.0.2 to 2.0.3 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 2.0.2 to 2.0.3 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.0.2 to 2.0.3</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Update your main index.php file</h2> + +<p>If you are running a stock <dfn>index.php</dfn> file simply replace your version with the new one.</p> + +<p>If your <dfn>index.php</dfn> file has internal modifications, please add your modifications to the new file and use it.</p> + +<h2>Step 3: Replace config/user_agents.php</h2> + +<p>This config file has been updated to contain more user agent types, please copy it to <kbd>application/config/user_agents.php</kbd>.</p> + +<h2>Step 4: Change references of the EXT constant to ".php"</h2> +<p class="important"><strong>Note:</strong> The EXT Constant has been marked as deprecated, but has not been removed from the application. You are encouraged to make the changes sooner rather than later.</p> + +<h2>Step 5: Remove APPPATH.'third_party' from autoload.php</h2> + +<p>Open application/autoload.php, and look for the following:</p> + +<code>$autoload['packages'] = array(APPPATH.'third_party');</code> + +<p>If you have not chosen to load any additional packages, that line can be changed to:</p> +<code>$autoload['packages'] = array();</code> + +<p>Which should provide for nominal performance gains if not autoloading packages.</p> + +<h2>Update Sessions Database Tables</h2> + +<p>If you are using database sessions with the CI Session Library, please update your <samp>ci_sessions</samp> database table as follows:</p> + +<code> + CREATE INDEX last_activity_idx ON ci_sessions(last_activity); + ALTER TABLE ci_sessions MODIFY user_agent VARCHAR(120); +</code> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_210.html b/user_guide/installation/upgrade_210.html new file mode 100755 index 0000000..16ad69d --- /dev/null +++ b/user_guide/installation/upgrade_210.html @@ -0,0 +1,89 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.0.3 to 2.1.0 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 2.0.3 to 2.1.0 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.0.3 to 2.1.0</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Replace config/user_agents.php</h2> + +<p>This config file has been updated to contain more user agent types, please copy it to <kbd>application/config/user_agents.php</kbd>.</p> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_211.html b/user_guide/installation/upgrade_211.html new file mode 100755 index 0000000..9480be2 --- /dev/null +++ b/user_guide/installation/upgrade_211.html @@ -0,0 +1,94 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.1.0 to 2.1.1 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 2.1.0 to 2.1.1 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.1.0 to 2.1.1</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Replace config/mimes.php</h2> + +<p>This config file has been updated to contain more user mime-types, please copy it to <kbd>application/config/mimes.php</kbd>.</p> + +<h2>Step 3: Update your IP address tables:</h2> + +<p>This upgrade adds support for IPv6 IP addresses. In order to store them, you need to enlarge your <var>ip_address</var> columns to 45 characters. For example, CodeIgniter's session table will need to change:</p> + +<code>ALTER TABLE ci_sessions CHANGE ip_address ip_address varchar(45) default '0' NOT NULL</code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_212.html b/user_guide/installation/upgrade_212.html new file mode 100755 index 0000000..f71e5cf --- /dev/null +++ b/user_guide/installation/upgrade_212.html @@ -0,0 +1,84 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.1.1 to 2.1.2 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 2.1.1 to 2.1.2 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.1.1 to 2.1.2</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_213.html b/user_guide/installation/upgrade_213.html new file mode 100755 index 0000000..cd1e48c --- /dev/null +++ b/user_guide/installation/upgrade_213.html @@ -0,0 +1,84 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.1.2 to 2.1.3 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 2.1.2 to 2.1.3 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.1.2 to 2.1.3</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_214.html b/user_guide/installation/upgrade_214.html new file mode 100755 index 0000000..6e5dc99 --- /dev/null +++ b/user_guide/installation/upgrade_214.html @@ -0,0 +1,84 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.1.3 to 2.1.4 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from 2.1.3 to 2.1.4 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.1.3 to 2.1.4</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrade_b11.html b/user_guide/installation/upgrade_b11.html new file mode 100755 index 0000000..e85d5d2 --- /dev/null +++ b/user_guide/installation/upgrade_b11.html @@ -0,0 +1,144 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from Beta 1.0 to Beta 1.1 +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading From Beta 1.0 to Beta 1.1</h1> + +<p>To upgrade to Beta 1.1 please perform the following steps:</p> + +<h2>Step 1: Replace your index file</h2> + +<p>Replace your main <kbd>index.php</kbd> file with the new index.php file. Note: If you have renamed your "system" folder you will need to edit this info in the new file.</p> + +<h2>Step 2: Relocate your config folder</h2> + +<p>This version of CodeIgniter now permits multiple sets of "applications" to all share a common set of backend files. In order to enable +each application to have its own configuration values, the <kbd>config</kbd> directory must now reside +inside of your <dfn>application</dfn> folder, so please move it there.</p> + + +<h2>Step 3: Replace directories</h2> + +<p>Replace the following directories with the new versions:</p> + +<ul> +<li>drivers</li> +<li>helpers</li> +<li>init</li> +<li>libraries</li> +<li>scaffolding</li> +</ul> + + +<h2>Step 4: Add the calendar language file</h2> + +<p>There is a new language file corresponding to the new calendaring class which must be added to your language folder. Add +the following item to your version: <dfn>language/english/calendar_lang.php</dfn></p> + + +<h2>Step 5: Edit your config file</h2> + +<p>The original <kbd>application/config/config.php</kbd> file has a typo in it Open the file and look for the items related to cookies:</p> + +<code>$conf['cookie_prefix'] = "";<br /> +$conf['cookie_domain'] = "";<br /> +$conf['cookie_path'] = "/";</code> + +<p>Change the array name from <kbd>$conf</kbd> to <kbd>$config</kbd>, like this:</p> + +<code>$config['cookie_prefix'] = "";<br /> +$config['cookie_domain'] = "";<br /> +$config['cookie_path'] = "/";</code> + +<p>Lastly, add the following new item to the config file (and edit the option if needed):</p> + +<code><br /> +/*<br /> +|------------------------------------------------<br /> +| URI PROTOCOL<br /> +|------------------------------------------------<br /> +|<br /> +| This item determines which server global <br /> +| should be used to retrieve the URI string. The <br /> +| default setting of "auto" works for most servers.<br /> +| If your links do not seem to work, try one of <br /> +| the other delicious flavors:<br /> +| <br /> +| 'auto' Default - auto detects<br /> +| 'path_info' Uses the PATH_INFO <br /> +| 'query_string' Uses the QUERY_STRING<br /> +*/<br /> +<br /> +$config['uri_protocol'] = "auto";</code> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/installation/upgrading.html b/user_guide/installation/upgrading.html new file mode 100755 index 0000000..a0c241f --- /dev/null +++ b/user_guide/installation/upgrading.html @@ -0,0 +1,110 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading From a Previous Version : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Upgrading from a Previous Version +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading From a Previous Version</h1> + +<p>Please read the upgrade notes corresponding to the version you are upgrading from.</p> + +<ul> + <li><a href="upgrade_214.html">Upgrading from 2.1.3 to 2.1.4</a></li> + <li><a href="upgrade_213.html">Upgrading from 2.1.2 to 2.1.3</a></li> + <li><a href="upgrade_212.html">Upgrading from 2.1.1 to 2.1.2</a></li> + <li><a href="upgrade_211.html">Upgrading from 2.1.0 to 2.1.1</a></li> + <li><a href="upgrade_210.html">Upgrading from 2.0.3 to 2.1.0</a></li> + <li><a href="upgrade_203.html">Upgrading from 2.0.2 to 2.0.3</a></li> + <li><a href="upgrade_202.html">Upgrading from 2.0.1 to 2.0.2</a></li> + <li><a href="upgrade_201.html">Upgrading from 2.0 to 2.0.1</a></li> + <li><a href="upgrade_200.html">Upgrading from 1.7.2 to 2.0</a></li> + <li><a href="upgrade_172.html">Upgrading from 1.7.1 to 1.7.2</a></li> + <li><a href="upgrade_171.html">Upgrading from 1.7.0 to 1.7.1</a></li> + <li><a href="upgrade_170.html">Upgrading from 1.6.3 to 1.7.0</a></li> + <li><a href="upgrade_163.html">Upgrading from 1.6.2 to 1.6.3</a></li> + <li><a href="upgrade_162.html">Upgrading from 1.6.1 to 1.6.2</a></li> + <li><a href="upgrade_161.html">Upgrading from 1.6.0 to 1.6.1</a></li> + <li><a href="upgrade_160.html">Upgrading from 1.5.4 to 1.6.0</a></li> + <li><a href="upgrade_154.html">Upgrading from 1.5.3 to 1.5.4</a></li> + <li><a href="upgrade_153.html">Upgrading from 1.5.2 to 1.5.3</a></li> + <li><a href="upgrade_152.html">Upgrading from 1.5.0 or 1.5.1 to 1.5.2</a></li> + <li><a href="upgrade_150.html">Upgrading from 1.4.1 to 1.5.0</a></li> + <li><a href="upgrade_141.html">Upgrading from 1.4.0 to 1.4.1</a></li> + <li><a href="upgrade_140.html">Upgrading from 1.3.3 to 1.4.0</a></li> + <li><a href="upgrade_133.html">Upgrading from 1.3.2 to 1.3.3</a></li> + <li><a href="upgrade_132.html">Upgrading from 1.3.1 to 1.3.2</a></li> + <li><a href="upgrade_131.html">Upgrading from 1.3 to 1.3.1</a></li> + <li><a href="upgrade_130.html">Upgrading from 1.2 to 1.3</a></li> + <li><a href="upgrade_120.html">Upgrading from 1.1 to 1.2</a></li> + <li><a href="upgrade_b11.html">Upgrading from Beta 1.0 to Beta 1.1</a></li> +</ul> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation Instructions</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/benchmark.html b/user_guide/libraries/benchmark.html new file mode 100755 index 0000000..5ece98b --- /dev/null +++ b/user_guide/libraries/benchmark.html @@ -0,0 +1,198 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Benchmarking Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Benchmarking Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Benchmarking Class</h1> + +<p>CodeIgniter has a Benchmarking class that is always active, enabling the time difference between any +two marked points to be calculated.</p> + +<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> + + +<p>In addition, the benchmark is always started the moment the framework is +invoked, and ended by the output class right before sending the final view to the browser, enabling a very accurate +timing of the entire system execution to be shown.</p> + + +<h3>Table of Contents</h3> + +<ul> +<li><a href="#using">Using the Benchmark Class</a></li> +<li><a href="#profiler">Profiling Your Benchmark Points</a></li> +<li><a href="#execution">Displaying Total Execution Time</a></li> +<li><a href="#memory">Displaying Memory Consumption</a></li> +</ul> + + + +<a name="using"></a> +<h2>Using the Benchmark Class</h2> + +<p>The Benchmark class can be used within your <a href="../general/controllers.html">controllers</a>, <a href="../general/views.html">views</a>, or your <a href="../general/models.html">models</a>. The process for usage is this:</p> + +<ol> +<li>Mark a start point</li> +<li>Mark an end point</li> +<li>Run the "elapsed time" function to view the results</li> +</ol> + +<p>Here's an example using real code:</p> + +<code>$this->benchmark->mark('code_start');<br /> +<br /> +// Some code happens here<br /> +<br /> +$this->benchmark->mark('code_end');<br /> +<br /> +echo $this->benchmark->elapsed_time('code_start', 'code_end');</code> + +<p class="important"><strong>Note:</strong> The words "code_start" and "code_end" are arbitrary. They are simply words used to set two markers. You can +use any words you want, and you can set multiple sets of markers. Consider this example:</p> + +<code>$this->benchmark->mark('dog');<br /> +<br /> +// Some code happens here<br /> +<br /> +$this->benchmark->mark('cat');<br /> +<br /> +// More code happens here<br /> +<br /> +$this->benchmark->mark('bird');<br /> +<br /> +echo $this->benchmark->elapsed_time('dog', 'cat');<br /> +echo $this->benchmark->elapsed_time('cat', 'bird');<br /> +echo $this->benchmark->elapsed_time('dog', 'bird');</code> + + +<a name="profiler"></a> +<h2>Profiling Your Benchmark Points</h2> + +<p>If you want your benchmark data to be available to the +<a href="../general/profiling.html">Profiler</a> all of your marked points must be set up in pairs, and +each mark point name must end with <kbd>_start</kbd> and <kbd>_end</kbd>. +Each pair of points must otherwise be named identically. Example:</p> + +<code> +$this->benchmark->mark('my_mark<kbd>_start</kbd>');<br /> +<br /> +// Some code happens here...<br /> +<br /> +$this->benchmark->mark('my_mark<kbd>_end</kbd>'); +<br /><br /> + +$this->benchmark->mark('another_mark<kbd>_start</kbd>');<br /> +<br /> +// Some more code happens here...<br /> +<br /> +$this->benchmark->mark('another_mark<kbd>_end</kbd>'); +</code> + +<p>Please read the <a href="../general/profiling.html">Profiler page</a> for more information.</p> + + +<a name="execution"></a> +<h2>Displaying Total Execution Time</h2> + +<p>If you would like to display the total elapsed time from the moment CodeIgniter starts to the moment the final output +is sent to the browser, simply place this in one of your view templates:</p> + +<code>&lt;?php echo $this->benchmark->elapsed_time();?&gt;</code> + +<p>You'll notice that it's the same function used in the examples above to calculate the time between two point, except you are +<strong>not</strong> using any parameters. When the parameters are absent, CodeIgniter does not stop the benchmark until right before the final +output is sent to the browser. It doesn't matter where you use the function call, the timer will continue to run until the very end.</p> + +<p>An alternate way to show your elapsed time in your view files is to use this pseudo-variable, if you prefer not to use the pure PHP:</p> +<code>{elapsed_time}</code> + +<p class="important"><strong>Note:</strong> If you want to benchmark anything within your controller +functions you must set your own start/end points.</p> + +<a name="memory"></a> +<h2>Displaying Memory Consumption</h2> + +<p>If your PHP installation is configured with --enable-memory-limit, you can display the amount of memory consumed by the entire +system using the following code in one of your view file:</p> + +<code>&lt;?php echo $this->benchmark->memory_usage();?&gt;</code> +<p>Note: This function can only be used in your view files. The consumption will reflect the total memory used by the entire app.</p> + +<p>An alternate way to show your memory usage in your view files is to use this pseudo-variable, if you prefer not to use the pure PHP:</p> +<code>{memory_usage}</code> + + + + +</div> +<!-- END CONTENT --> + + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../doc_style/index.html">Writing Documentaion</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="calendar.html">Calendar Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/caching.html b/user_guide/libraries/caching.html new file mode 100755 index 0000000..95ded23 --- /dev/null +++ b/user_guide/libraries/caching.html @@ -0,0 +1,193 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Caching Driver : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="../general/drivers.html">Drivers</a> &nbsp;&#8250;&nbsp; +Caching Driver +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Caching Driver</h1> + +<p>CodeIgniter features wrappers around some of the most popular forms of fast and dynamic caching. All but file-based caching require specific server requirements, and a Fatal Exception will be thrown if server requirements are not met.</p> + +<h2>Table of Contents</h2> +<ul> + <li><a href="#example_usage" title="Example Usage">Example Usage</a></li> + <li><a href="#function_reference" title="Function Reference">Function Reference</a></li> +</ul> + +<h3>Available Drivers</h3> +<ul> + <li><a href="#apc" title="APC Cache">Alternative PHP Cache (APC) Caching</a></li> + <li><a href="#file" title="File Caching">File-based Caching</a></li> + <li><a href="#memcached" title="Memcached">Memcached Caching</a></li> + <li><a href="#dummy" title="Dummy Caching">Dummy Cache</a></li> +</ul> + +<h2 id="example_usage">Example Usage</h2> + +<p>The following example will load the cache driver, specify <a href="#apc" title="APC">APC</a> as the driver to use, and fall back to file-based caching if APC is not available in the hosting environment.</p> + +<code> +$this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file'));<br /> +<br /> +if ( ! $foo = $this->cache->get('foo'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo 'Saving to the cache!&lt;br />';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$foo = 'foobarbaz!';<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Save into the cache for 5 minutes<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->cache->save('foo', $foo, 300);<br /> +}<br /> +<br /> +echo $foo; +</code> + +<h1 id="function_reference">Function Reference</h1> + +<h2>is_supported(<var>driver</var>['string'])</h2> + +<p>This function is automatically called when accessing drivers via <samp>$this->cache->get()</samp>. However, if the individual drivers are used, make sure to call this function to ensure the driver is supported in the hosting environment.</p> + +<code> +if ($this->cache->apc->is_supported())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($data = $this->cache->apc->get('my_cache'))<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// do things.<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +} +</code> + +<h2>get(<var>id</var>['string'])</h2> + +<p>This function will attempt to fetch an item from the cache store. If the item does not exist, the function will return <samp>FALSE</samp>.</p> +<code>$foo = $this->cache->get('my_cached_item');</code> + +<h2>save(<var>id</var>['string'], <var>data</var>['mixed'], <var>ttl</var>['int'])</h2> + +<p>This function will save an item to the cache store. If saving fails, the function will return <samp>FALSE</samp>.</p> +<p>The optional third parameter (Time To Live) defaults to 60 seconds.</p> +<code>$this->cache->save('cache_item_id', 'data_to_cache');</code> + +<h2>delete(<var>id</var>['string'])</h2> + +<p>This function will delete a specific item from the cache store. If item deletion fails, the function will return <samp>FALSE</samp>.</p> +<code>$this->cache->delete('cache_item_id');</code> + +<h2>clean()</h2> + +<p>This function will 'clean' the entire cache. If the deletion of the cache files fails, the function will return <samp>FALSE</samp>.</p> + +<code>$this->cache->clean();</code> + +<h2>cache_info()</h2> + +<p>This function will return information on the entire cache.</p> + +<code>var_dump($this->cache->cache_info());</code> + +<h2>get_metadata(<var>id</var>['string'])</h2> + +<p>This function will return detailed information on a specific item in the cache.</p> + +<code>var_dump($this->cache->get_metadata('my_cached_item'));</code> + +<h1>Drivers</h1> + +<h2 id="apc">Alternative PHP Cache (APC) Caching</h2> + +<p>All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:</p> +<code>$this->load->driver('cache');<br /> + $this->cache->apc->save('foo', 'bar', 10);</code> +<p>For more information on APC, please see <a href="http://php.net/apc">http://php.net/apc</a></p> + +<h2 id="file">File-based Caching</h2> + +<p>Unlike caching from the Output Class, the driver file-based caching allows for pieces of view files to be cached. Use this with care, and make sure to benchmark your application, as a point can come where disk I/O will negate positive gains by caching.</p> + +<p>All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:</p> +<code>$this->load->driver('cache');<br /> + $this->cache->file->save('foo', 'bar', 10);</code> + +<h2 id="memcached">Memcached Caching</h2> + +<p>Multiple Memcached servers can be specified in the memcached.php configuration file, located in the <samp>application/config/</samp> directory. + +<p>All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:</p> +<code>$this->load->driver('cache');<br /> + $this->cache->memcached->save('foo', 'bar', 10);</code> + +<p>For more information on Memcached, please see <a href="http://php.net/memcached">http://php.net/memcached</a></p> + +<h2 id="dummy">Dummy Cache</h2> + +<p>This is a caching backend that will always 'miss.' It stores no data, but lets you keep your caching code in place in environments that don't support your chosen cache.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="zip.html">Zip Encoding Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../database/index.html">Database Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/calendar.html b/user_guide/libraries/calendar.html new file mode 100755 index 0000000..b42e22c --- /dev/null +++ b/user_guide/libraries/calendar.html @@ -0,0 +1,249 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Calendaring Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Calendaring Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + + + +<h1>Calendaring Class</h1> + +<p>The Calendar class enables you to dynamically create calendars. Your calendars can be formatted through the use of a calendar +template, allowing 100% control over every aspect of its design. In addition, you can pass data to your calendar cells.</p> + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the Calendar class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('calendar');</code> +<p>Once loaded, the Calendar object will be available using: <dfn>$this->calendar</dfn></p> + + +<h2>Displaying a Calendar</h2> + +<p>Here is a very simple example showing how you can display a calendar:</p> + +<code>$this->load->library('calendar');<br /> +<br /> +echo $this->calendar->generate();</code> + +<p>The above code will generate a calendar for the current month/year based on your server time. +To show a calendar for a specific month and year you will pass this information to the calendar generating function:</p> + +<code>$this->load->library('calendar');<br /> +<br /> +echo $this->calendar->generate(<kbd>2006</kbd>, <kbd>6</kbd>);</code> + +<p>The above code will generate a calendar showing the month of June in 2006. The first parameter specifies the year, the second parameter specifies the month.</p> + +<h2>Passing Data to your Calendar Cells</h2> + +<p>To add data to your calendar cells involves creating an associative array in which the keys correspond to the days +you wish to populate and the array value contains the data. The array is passed to the third parameter of the calendar +generating function. Consider this example:</p> + +<code>$this->load->library('calendar');<br /> +<br /> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp; => 'http://example.com/news/article/2006/03/',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7&nbsp; => 'http://example.com/news/article/2006/07/',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13 => 'http://example.com/news/article/2006/13/',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;26 => 'http://example.com/news/article/2006/26/'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo $this->calendar->generate(<kbd>2006</kbd>, <kbd>6</kbd>, <var>$data</var>);</code> + +<p>Using the above example, day numbers 3, 7, 13, and 26 will become links pointing to the URLs you've provided.</p> + +<p class="important"><strong>Note:</strong> By default it is assumed that your array will contain links. +In the section that explains the calendar template below you'll see how you can customize +how data passed to your cells is handled so you can pass different types of information.</p> + + +<h2>Setting Display Preferences</h2> + +<p>There are seven preferences you can set to control various aspects of the calendar. Preferences are set by passing an +array of preferences in the second parameter of the loading function. Here is an example:</p> + + +<code> +$prefs = array (<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'start_day'&nbsp;&nbsp;&nbsp; => 'saturday',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'month_type'&nbsp;&nbsp; => 'long',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'day_type'&nbsp;&nbsp;&nbsp;&nbsp; => 'short'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->load->library('calendar', $prefs);<br /> +<br /> +echo $this->calendar->generate();</code> + +<p>The above code would start the calendar on saturday, use the "long" month heading, and the "short" day names. More information +regarding preferences below.</p> + + + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +</tr><tr> +<td class="td"><strong>template</strong></td><td class="td">None</td><td class="td">None</td><td class="td">A string containing your calendar template. See the template section below.</td> +</tr><tr> +<td class="td"><strong>local_time</strong></td><td class="td">time()</td><td class="td">None</td><td class="td">A Unix timestamp corresponding to the current time.</td> +</tr><tr> +<td class="td"><strong>start_day</strong></td><td class="td">sunday</td><td class="td">Any week day (sunday, monday, tuesday, etc.)</td><td class="td">Sets the day of the week the calendar should start on.</td> +</tr><tr> +<td class="td"><strong>month_type</strong></td><td class="td">long</td><td class="td">long, short</td><td class="td">Determines what version of the month name to use in the header. long = January, short = Jan.</td> +</tr><tr> +<td class="td"><strong>day_type</strong></td><td class="td">abr</td><td class="td">long, short, abr</td><td class="td">Determines what version of the weekday names to use in the column headers. long = Sunday, short = Sun, abr = Su.</td> +</tr><tr> +<td class="td"><strong>show_next_prev</strong></td><td class="td">FALSE</td><td class="td">TRUE/FALSE (boolean)</td><td class="td">Determines whether to display links allowing you to toggle to next/previous months. See information on this feature below.</td> +</tr><tr> +<td class="td"><strong>next_prev_url</strong></td><td class="td">None</td><td class="td">A URL</td><td class="td">Sets the basepath used in the next/previous calendar links.</td> +</tr> +</table> + + + +<h2>Showing Next/Previous Month Links</h2> + +<p>To allow your calendar to dynamically increment/decrement via the next/previous links requires that you set up your calendar +code similar to this example:</p> + + +<code>$prefs = array (<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'show_next_prev'&nbsp;&nbsp;=> TRUE,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'next_prev_url'&nbsp;&nbsp; => 'http://example.com/index.php/calendar/show/'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this-&gt;load-&gt;library('calendar', $prefs);<br /> +<br /> +echo $this->calendar->generate(<var>$this->uri->segment(3)</var>, <var>$this->uri->segment(4)</var>);</code> + +<p>You'll notice a few things about the above example:</p> + +<ul> +<li>You must set the "show_next_prev" to TRUE.</li> +<li>You must supply the URL to the controller containing your calendar in the "next_prev_url" preference.</li> +<li>You must supply the "year" and "month" to the calendar generating function via the URI segments where they appear (Note: The calendar class automatically adds the year/month to the base URL you provide.).</li> +</ul> + + + +<h2>Creating a Calendar Template</h2> + +<p>By creating a calendar template you have 100% control over the design of your calendar. Each component of your +calendar will be placed within a pair of pseudo-variables as shown here:</p> + + +<code> +$prefs['template'] = '<br /><br /> +&nbsp;&nbsp;&nbsp;<dfn>{table_open}</dfn><var>&lt;table border="0" cellpadding="0" cellspacing="0"></var><dfn>{/table_open}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{heading_row_start}</dfn><var>&lt;tr></var><dfn>{/heading_row_start}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{heading_previous_cell}</dfn><var>&lt;th>&lt;a href="</var><kbd>{previous_url}</kbd><var>">&amp;lt;&amp;lt;&lt;/a>&lt;/th></var><dfn>{/heading_previous_cell}</dfn><br /> +&nbsp;&nbsp;&nbsp;<dfn>{heading_title_cell}</dfn><var>&lt;th colspan="</var><kbd>{colspan}</kbd><var>"></var><kbd>{heading}</kbd><var>&lt;/th></var><dfn>{/heading_title_cell}</dfn><br /> +&nbsp;&nbsp;&nbsp;<dfn>{heading_next_cell}</dfn><var>&lt;th>&lt;a href="</var><kbd>{next_url}</kbd><var>">&amp;gt;&amp;gt;&lt;/a>&lt;/th></var><dfn>{/heading_next_cell}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{heading_row_end}</dfn><var>&lt;/tr></var><dfn>{/heading_row_end}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{week_row_start}</dfn><var>&lt;tr></var><dfn>{/week_row_start}</dfn><br /> +&nbsp;&nbsp;&nbsp;<dfn>{week_day_cell}</dfn><var>&lt;td></var><dfn>{week_day}</dfn><var>&lt;/td></var><dfn>{/week_day_cell}</dfn><br /> +&nbsp;&nbsp;&nbsp;<dfn>{week_row_end}</dfn><var>&lt;/tr></var><dfn>{/week_row_end}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_row_start}</dfn><var>&lt;tr></var><dfn>{/cal_row_start}</dfn><br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_start}</dfn><var>&lt;td></var><dfn>{/cal_cell_start}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_content}</dfn><var>&lt;a href="</var><kbd>{content}</kbd><var>"></var><kbd>{day}</kbd><var>&lt;/a></var><dfn>{/cal_cell_content}</dfn><br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_content_today}</dfn><var>&lt;div class="highlight">&lt;a href="</var><kbd>{content}</kbd><var>"></var><kbd>{day}</kbd><var>&lt;/a>&lt;/div></var><dfn>{/cal_cell_content_today}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_no_content}</dfn><var></var><kbd>{day}</kbd><var></var><dfn>{/cal_cell_no_content}</dfn><br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_no_content_today}</dfn><var>&lt;div class="highlight"></var><kbd>{day}</kbd><var>&lt;/div></var><dfn>{/cal_cell_no_content_today}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_blank}</dfn><var>&amp;nbsp;</var><dfn>{/cal_cell_blank}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_cell_end}</dfn><var>&lt;/td></var><dfn>{/cal_cell_end}</dfn><br /> +&nbsp;&nbsp;&nbsp;<dfn>{cal_row_end}</dfn><var>&lt;/tr></var><dfn>{/cal_row_end}</dfn><br /> +<br /> +&nbsp;&nbsp;&nbsp;<dfn>{table_close}</dfn><var>&lt;/table></var><dfn>{/table_close}</dfn><br /> +';<br /> +<br /> +$this->load->library('calendar', $prefs);<br /> +<br /> +echo $this->calendar->generate();</code> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="benchmark.html">Benchmark Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="cart.html">Cart Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/cart.html b/user_guide/libraries/cart.html new file mode 100755 index 0000000..d0efa5f --- /dev/null +++ b/user_guide/libraries/cart.html @@ -0,0 +1,346 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Shopping Cart Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Shopping Cart Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Shopping Cart Class</h1> + +<p>The Cart Class permits items to be added to a session that stays active while a user is browsing your site. +These items can be retrieved and displayed in a standard "shopping cart" format, allowing the user to update the quantity or remove items from the cart.</p> + +<p>Please note that the Cart Class ONLY provides the core "cart" functionality. It does not provide shipping, credit card authorization, or other processing components.</p> + + +<h2>Initializing the Shopping Cart Class</h2> + +<p><strong>Important:</strong> The Cart class utilizes CodeIgniter's +<a href="sessions.html">Session Class</a> to save the cart information to a database, so before using the Cart class you must set up a database table +as indicated in the <a href="sessions.html">Session Documentation</a> , and set the session preferences in your <kbd>application/config/config.php</kbd> file to utilize a database.</p> + +<p>To initialize the Shopping Cart Class in your controller constructor, use the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('cart');</code> +<p>Once loaded, the Cart object will be available using: <dfn>$this->cart</dfn></p> + +<p class="important"><strong>Note:</strong> The Cart Class will load and initialize the Session Class automatically, so unless you are using sessions elsewhere in your application, you do not need to load the Session class.</p> + +<h2>Adding an Item to The Cart</h2> + +<p>To add an item to the shopping cart, simply pass an array with the product information to the <dfn>$this->cart->insert()</dfn> function, as shown below:</p> + +<code> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'id'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; => 'sku_123ABC',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'qty'&nbsp;&nbsp;&nbsp;&nbsp; => 1,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'price'&nbsp;&nbsp; => 39.95,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name'&nbsp;&nbsp;&nbsp; => 'T-Shirt',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'options' => array('Size' => 'L', 'Color' => 'Red')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> + +$this->cart->insert($data); + +</code> + +<p class="important"><strong>Important:</strong> The first four array indexes above (<dfn>id</dfn>, <dfn>qty</dfn>, <dfn>price</dfn>, and <dfn>name</dfn>) are <strong>required</strong>. +If you omit any of them the data will not be saved to the cart. The fifth index (<dfn>options</dfn>) is optional. +It is intended to be used in cases where your product has options associated with it. Use an array for options, as shown above.</p> + +<p>The five reserved indexes are:</p> + +<ul> +<li><strong>id</strong> - Each product in your store must have a unique identifier. Typically this will be an "sku" or other such identifier.</li> +<li><strong>qty</strong> - The quantity being purchased. +<li><strong>price</strong> - The price of the item. +<li><strong>name</strong> - The name of the item. +<li><strong>options</strong> - Any additional attributes that are needed to identify the product. These must be passed via an array. +</ul> + +<p>In addition to the five indexes above, there are two reserved words: <dfn>rowid</dfn> and <dfn>subtotal</dfn>. These are used internally by the Cart class, so +please do NOT use those words as index names when inserting data into the cart.</p> + +<p>Your array may contain additional data. Anything you include in your array will be stored in the session. However, it is best to standardize your data among all your products in order to make displaying the information in a table easier.</p> + +<p>The insert() method will return the $rowid if you successfully insert a single item.</p> + + +<h2>Adding Multiple Items to The Cart</h2> + +<p>By using a multi-dimensional array, as shown below, it is possible to add multiple products to the cart in one action. This is useful in cases where you wish to allow people to select from among several items on the same page.</p> + + +<code> +$data = array(<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'id'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; => 'sku_123ABC',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'qty'&nbsp;&nbsp;&nbsp;&nbsp; => 1,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'price'&nbsp;&nbsp; => 39.95,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name'&nbsp;&nbsp;&nbsp; => 'T-Shirt',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'options' => array('Size' => 'L', 'Color' => 'Red')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'id'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; => 'sku_567ZYX',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'qty'&nbsp;&nbsp;&nbsp;&nbsp; => 1,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'price'&nbsp;&nbsp; => 9.95,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name'&nbsp;&nbsp;&nbsp; => 'Coffee Mug'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'id'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; => 'sku_965QRS',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'qty'&nbsp;&nbsp;&nbsp;&nbsp; => 1,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'price'&nbsp;&nbsp; => 29.95,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name'&nbsp;&nbsp;&nbsp; => 'Shot Glass'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> + +$this->cart->insert($data); + +</code> + + + + +<h2>Displaying the Cart</h2> + +<p>To display the cart you will create a <a href="../general/views.html">view file</a> with code similar to the one shown below.</p> + +<p>Please note that this example uses the <a href="../helpers/form_helper.html">form helper</a>.</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="55"> +&lt;?php echo form_open('path/to/controller/update/function'); ?> + +&lt;table cellpadding="6" cellspacing="1" style="width:100%" border="0"> + +&lt;tr> + &lt;th>QTY&lt;/th> + &lt;th>Item Description&lt;/th> + &lt;th style="text-align:right">Item Price&lt;/th> + &lt;th style="text-align:right">Sub-Total&lt;/th> +&lt;/tr> + +&lt;?php $i = 1; ?> + +&lt;?php foreach ($this->cart->contents() as $items): ?> + + &lt;?php echo form_hidden($i.'[rowid]', $items['rowid']); ?> + + &lt;tr> + &lt;td>&lt;?php echo form_input(array('name' => $i.'[qty]', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5')); ?>&lt;/td> + &lt;td> + &lt;?php echo $items['name']; ?> + + &lt;?php if ($this->cart->has_options($items['rowid']) == TRUE): ?> + + &lt;p> + &lt;?php foreach ($this->cart->product_options($items['rowid']) as $option_name => $option_value): ?> + + &lt;strong>&lt;?php echo $option_name; ?>:&lt;/strong> &lt;?php echo $option_value; ?>&lt;br /> + + &lt;?php endforeach; ?> + &lt;/p> + + &lt;?php endif; ?> + + &lt;/td> + &lt;td style="text-align:right">&lt;?php echo $this->cart->format_number($items['price']); ?>&lt;/td> + &lt;td style="text-align:right">$&lt;?php echo $this->cart->format_number($items['subtotal']); ?>&lt;/td> + &lt;/tr> + +&lt;?php $i++; ?> + +&lt;?php endforeach; ?> + +&lt;tr> + &lt;td colspan="2">&nbsp;&lt;/td> + &lt;td class="right">&lt;strong>Total&lt;/strong>&lt;/td> + &lt;td class="right">$&lt;?php echo $this->cart->format_number($this->cart->total()); ?>&lt;/td> +&lt;/tr> + +&lt;/table> + +&lt;p>&lt;?php echo form_submit('', 'Update your Cart'); ?>&lt;/p> +</textarea> + + + + +<h2>Updating The Cart</h2> + +<p>To update the information in your cart, you must pass an array containing the <kbd>Row ID</kbd> and quantity to the <dfn>$this->cart->update()</dfn> function:</p> + +<p class="important"><strong>Note:</strong> If the quantity is set to zero, the item will be removed from the cart.</p> + +<code> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rowid' => 'b99ccdf16028f015540f341130b6d8ec',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'qty'&nbsp;&nbsp; => 3<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> + +$this->cart->update($data); +<br /><br /> +// Or a multi-dimensional array<br /><br /> +$data = array(<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rowid'&nbsp;&nbsp; => 'b99ccdf16028f015540f341130b6d8ec',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'qty'&nbsp;&nbsp;&nbsp;&nbsp; => 3<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rowid'&nbsp;&nbsp; => 'xw82g9q3r495893iajdh473990rikw23',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'qty'&nbsp;&nbsp;&nbsp;&nbsp; => 4<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rowid'&nbsp;&nbsp; => 'fh4kdkkkaoe30njgoe92rkdkkobec333',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'qty'&nbsp;&nbsp;&nbsp;&nbsp; => 2<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> + +$this->cart->update($data); + + + + +</code> + +<p><strong>What is a Row ID?</strong>&nbsp; The <kbd>row ID</kbd> is a unique identifier that is generated by the cart code when an item is added to the cart. The reason a +unique ID is created is so that identical products with different options can be managed by the cart.</p> + +<p>For example, let's say someone buys two identical t-shirts (same product ID), but in different sizes. The product ID (and other attributes) will be +identical for both sizes because it's the same shirt. The only difference will be the size. The cart must therefore have a means of identifying this +difference so that the two sizes of shirts can be managed independently. It does so by creating a unique "row ID" based on the product ID and any options associated with it.</p> + +<p>In nearly all cases, updating the cart will be something the user does via the "view cart" page, so as a developer, it is unlikely that you will ever have to concern yourself +with the "row ID", other then making sure your "view cart" page contains this information in a hidden form field, and making sure it gets passed to the update +function when the update form is submitted. Please examine the construction of the "view cart" page above for more information.</p> + + + +<p>&nbsp;<br /></p> + + +<h1>Function Reference</h1> + +<h2>$this->cart->insert();</h2> + +<p>Permits you to add items to the shopping cart, as outlined above.</p> + + +<h2>$this->cart->update();</h2> + +<p>Permits you to update items in the shopping cart, as outlined above.</p> + + +<h2>$this->cart->total();</h2> + +<p>Displays the total amount in the cart.</p> + + +<h2>$this->cart->total_items();</h2> + +<p>Displays the total number of items in the cart.</p> + + +<h2>$this->cart->contents();</h2> + +<p>Returns an array containing everything in the cart.</p> + + + +<h2>$this->cart->has_options(rowid);</h2> + +<p>Returns TRUE (boolean) if a particular row in the cart contains options. This function is designed to be used in a loop with <dfn>$this->cart->contents()</dfn>, since you must pass the <kbd>rowid</kbd> to this function, as shown in the <dfn>Displaying the Cart</dfn> example above.</p> + + +<h2>$this->cart->product_options(rowid);</h2> + +<p>Returns an array of options for a particular product. This function is designed to be used in a loop with <dfn>$this->cart->contents()</dfn>, since you must pass the <kbd>rowid</kbd> to this function, as shown in the <dfn>Displaying the Cart</dfn> example above.</p> + + + +<h2>$this->cart->destroy();</h2> + +<p>Permits you to destroy the cart. This function will likely be called when you are finished processing the customer's order.</p> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="calendar.html">Calendar Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="config.html">Config Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/config.html b/user_guide/libraries/config.html new file mode 100755 index 0000000..1fabc95 --- /dev/null +++ b/user_guide/libraries/config.html @@ -0,0 +1,222 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Config Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Config Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Config Class</h1> + +<p>The Config class provides a means to retrieve configuration preferences. These preferences can +come from the default config file (<samp>application/config/config.php</samp>) or from your own custom config files.</p> + +<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> + + +<h2>Anatomy of a Config File</h2> + +<p>By default, CodeIgniter has one primary config file, located at <samp>application/config/config.php</samp>. If you open the file using +your text editor you'll see that config items are stored in an array called <var>$config</var>.</p> + +<p>You can add your own config items to +this file, or if you prefer to keep your configuration items separate (assuming you even need config items), +simply create your own file and save it in <dfn>config</dfn> folder.</p> + +<p><strong>Note:</strong> If you do create your own config files use the same format as the primary one, storing your items in +an array called <var>$config</var>. CodeIgniter will intelligently manage these files so there will be no conflict even though +the array has the same name (assuming an array index is not named the same as another).</p> + +<h2>Loading a Config File</h2> + +<p><strong>Note:</strong> CodeIgniter automatically loads the primary config file (<samp>application/config/config.php</samp>), +so you will only need to load a config file if you have created your own.</p> + +<p>There are two ways to load a config file:</p> + +<ol><li><strong>Manual Loading</strong> + +<p>To load one of your custom config files you will use the following function within the <a href="../general/controllers.html">controller</a> that needs it:</p> + +<code>$this->config->load('<var>filename</var>');</code> + +<p>Where <var>filename</var> is the name of your config file, without the .php file extension.</p> + +<p>If you need to load multiple config files normally they will be merged into one master config array. Name collisions can occur, however, if +you have identically named array indexes in different config files. To avoid collisions you can set the second parameter to <kbd>TRUE</kbd> +and each config file will be stored in an array index corresponding to the name of the config file. Example:</p> + +<code> +// Stored in an array with this prototype: $this->config['blog_settings'] = $config<br /> +$this->config->load('<var>blog_settings</var>', <kbd>TRUE</kbd>);</code> + +<p>Please see the section entitled <dfn>Fetching Config Items</dfn> below to learn how to retrieve config items set this way.</p> + +<p>The third parameter allows you to suppress errors in the event that a config file does not exist:</p> + +<code>$this->config->load('<var>blog_settings</var>', <dfn>FALSE</dfn>, <kbd>TRUE</kbd>);</code> + +</li> +<li><strong>Auto-loading</strong> + +<p>If you find that you need a particular config file globally, you can have it loaded automatically by the system. To do this, +open the <strong>autoload.php</strong> file, located at <samp>application/config/autoload.php</samp>, and add your config file as +indicated in the file.</p> +</li> +</ol> + + +<h2>Fetching Config Items</h2> + +<p>To retrieve an item from your config file, use the following function:</p> + +<code>$this->config->item('<var>item name</var>');</code> + +<p>Where <var>item name</var> is the $config array index you want to retrieve. For example, to fetch your language choice you'll do this:</p> + +<code>$lang = $this->config->item('language');</code> + +<p>The function returns FALSE (boolean) if the item you are trying to fetch does not exist.</p> + +<p>If you are using the second parameter of the <kbd>$this->config->load</kbd> function in order to assign your config items to a specific index +you can retrieve it by specifying the index name in the second parameter of the <kbd>$this->config->item()</kbd> function. Example:</p> + +<code> +// Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"<br /> +$this->config->load('<var>blog_settings</var>', <kbd>TRUE</kbd>);<br /><br /> + +// Retrieve a config item named site_name contained within the blog_settings array<br /> +$site_name = $this->config->item('<dfn>site_name</dfn>', '<var>blog_settings</var>');<br /><br /> + +// An alternate way to specify the same item:<br /> +$blog_config = $this->config->item('<var>blog_settings</var>');<br /> +$site_name = $blog_config['site_name'];</code> + +<h2>Setting a Config Item</h2> + +<p>If you would like to dynamically set a config item or change an existing one, you can do so using:</p> + +<code>$this->config->set_item('<var>item_name</var>', '<var>item_value</var>');</code> + +<p>Where <var>item_name</var> is the $config array index you want to change, and <var>item_value</var> is its value.</p> + +<a name="environments"></a> +<h2>Environments</h2> + +<p> + You may load different configuration files depending on the current environment. + The <kbd>ENVIRONMENT</kbd> constant is defined in index.php, and is described + in detail in the <a href="../general/environments.html">Handling Environments</a> + section. +</p> + +<p> + To create an environment-specific configuration file, + create or copy a configuration file in application/config/{ENVIRONMENT}/{FILENAME}.php +</p> + +<p>For example, to create a production-only config.php, you would:</p> + +<ol> + <li>Create the directory application/config/production/</li> + <li>Copy your existing config.php into the above directory</li> + <li>Edit application/config/production/config.php so it contains your production settings</li> +</ol> + +<p> + When you set the <kbd>ENVIRONMENT</kbd> constant to 'production', the settings + for your new production-only config.php will be loaded. +</p> + +<p>You can place the following configuration files in environment-specific folders:</p> + +<ul> +<li>Default CodeIgniter configuration files</li> +<li>Your own custom configuration files</li> +</ul> + +<p><strong>Note:</strong> CodeIgniter always tries to load the configuration files for the current environment first. If the file does not exist, the global config file (i.e., the one in <samp>application/config/</samp>) is loaded. This means you are not obligated to place <strong>all</strong> of your configuration files in an environment folder &minus; only the files that change per environment.</p> + +<h2>Helper Functions</h2> + +<p>The config class has the following helper functions:</p> + +<h2>$this->config->site_url();</h2> +<p>This function retrieves the URL to your site, along with the "index" value you've specified in the config file.</p> + +<h2>$this->config->base_url();</h2> +<p>This function retrieves the URL to your site, plus an optional path such as to a stylesheet or image.</p> + +<p>The two functions above are normally accessed via the corresponding functions in the <a href="../helpers/url_helper.html">URL Helper.</a></p> + +<h2>$this->config->system_url();</h2> +<p>This function retrieves the URL to your <dfn>system folder</dfn>.</p> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="calendar.html">Calendaring Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../database/index.html">Database Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> diff --git a/user_guide/libraries/email.html b/user_guide/libraries/email.html new file mode 100755 index 0000000..d286ffe --- /dev/null +++ b/user_guide/libraries/email.html @@ -0,0 +1,307 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Email Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Email Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Email Class</h1> + +<p>CodeIgniter's robust Email Class supports the following features:</p> + + +<ul> +<li>Multiple Protocols: Mail, Sendmail, and SMTP</li> +<li>Multiple recipients</li> +<li>CC and BCCs</li> +<li>HTML or Plaintext email</li> +<li>Attachments</li> +<li>Word wrapping</li> +<li>Priorities</li> +<li>BCC Batch Mode, enabling large email lists to be broken into small BCC batches.</li> +<li>Email Debugging tools</li> +</ul> + + +<h2>Sending Email</h2> + +<p>Sending email is not only simple, but you can configure it on the fly or set your preferences in a config file.</p> + +<p>Here is a basic example demonstrating how you might send email. Note: This example assumes you are sending the email from one of your +<a href="../general/controllers.html">controllers</a>.</p> + +<code>$this->load->library('email');<br /> +<br /> +$this->email->from('your@example.com', 'Your Name');<br /> +$this->email->to('someone@example.com'); <br /> +$this->email->cc('another@another-example.com'); <br /> +$this->email->bcc('them@their-example.com'); <br /> +<br /> +$this->email->subject('Email Test');<br /> +$this->email->message('Testing the email class.'); <br /> +<br /> +$this->email->send();<br /> +<br /> +echo $this->email->print_debugger();</code> + + + + +<h2>Setting Email Preferences</h2> + +<p>There are 17 different preferences available to tailor how your email messages are sent. You can either set them manually +as described here, or automatically via preferences stored in your config file, described below:</p> + +<p>Preferences are set by passing an array of preference values to the email <dfn>initialize</dfn> function. Here is an example of how you might set some preferences:</p> + +<code>$config['protocol'] = 'sendmail';<br /> +$config['mailpath'] = '/usr/sbin/sendmail';<br /> +$config['charset'] = 'iso-8859-1';<br /> +$config['wordwrap'] = TRUE;<br /> +<br /> +$this->email->initialize($config);</code> + +<p><strong>Note:</strong> Most of the preferences have default values that will be used if you do not set them.</p + +><h3>Setting Email Preferences in a Config File</h3> + +<p>If you prefer not to set preferences using the above method, you can instead put them into a config file. +Simply create a new file called the <var>email.php</var>, add the <var>$config</var> +array in that file. Then save the file at <var>config/email.php</var> and it will be used automatically. You +will NOT need to use the <dfn>$this->email->initialize()</dfn> function if you save your preferences in a config file.</p> + + + + +<h2>Email Preferences</h2> + +<p>The following is a list of all the preferences that can be set when sending email.</p> + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +</tr><tr> +<td class="td"><strong>useragent</strong></td><td class="td">CodeIgniter</td><td class="td">None</td><td class="td">The "user agent".</td> +</tr><tr> +<td class="td"><strong>protocol</strong></td><td class="td">mail</td><td class="td">mail, sendmail, or smtp</td><td class="td">The mail sending protocol.</td> +</tr><tr> +<td class="td"><strong>mailpath</strong></td><td class="td">/usr/sbin/sendmail</td><td class="td">None</td><td class="td">The server path to Sendmail.</td> +</tr><tr> +<td class="td"><strong>smtp_host</strong></td><td class="td">No Default</td><td class="td">None</td><td class="td">SMTP Server Address.</td> +</tr><tr> +<td class="td"><strong>smtp_user</strong></td><td class="td">No Default</td><td class="td">None</td><td class="td">SMTP Username.</td> +</tr><tr> +<td class="td"><strong>smtp_pass</strong></td><td class="td">No Default</td><td class="td">None</td><td class="td">SMTP Password.</td> +</tr><tr> +<td class="td"><strong>smtp_port</strong></td><td class="td">25</td><td class="td">None</td><td class="td">SMTP Port.</td> +</tr><tr> +<td class="td"><strong>smtp_timeout</strong></td><td class="td">5</td><td class="td">None</td><td class="td">SMTP Timeout (in seconds).</td> +</tr><tr> +<td class="td"><strong>wordwrap</strong></td><td class="td">TRUE</td><td class="td">TRUE or FALSE (boolean)</td><td class="td">Enable word-wrap.</td> +</tr><tr> +<td class="td"><strong>wrapchars</strong></td><td class="td">76</td><td class="td"> </td><td class="td">Character count to wrap at.</td> +</tr><tr> +<td class="td"><strong>mailtype</strong></td><td class="td">text</td><td class="td">text or html</td><td class="td">Type of mail. If you send HTML email you must send it as a complete web page. Make sure you don't have any relative links or relative image paths otherwise they will not work.</td> +</tr><tr> +<td class="td"><strong>charset</strong></td><td class="td">utf-8</td><td class="td"></td><td class="td">Character set (utf-8, iso-8859-1, etc.).</td> +</tr><tr> +<td class="td"><strong>validate</strong></td><td class="td">FALSE</td><td class="td">TRUE or FALSE (boolean)</td><td class="td">Whether to validate the email address.</td> +</tr><tr> +<td class="td"><strong>priority</strong></td><td class="td">3</td><td class="td">1, 2, 3, 4, 5</td><td class="td">Email Priority. 1 = highest. 5 = lowest. 3 = normal.</td> +</tr> +<tr> + <td class="td"><strong>crlf</strong></td> + <td class="td">\n</td> + <td class="td">&quot;\r\n&quot; or &quot;\n&quot; or &quot;\r&quot;</td> + <td class="td">Newline character. (Use &quot;\r\n&quot; to comply with RFC 822).</td> +</tr> +<tr> +<td class="td"><strong>newline</strong></td><td class="td">\n</td> +<td class="td">"\r\n" or "\n" or &quot;\r&quot;</td><td class="td">Newline character. (Use "\r\n" to comply with RFC 822).</td> +</tr><tr> +<td class="td"><strong>bcc_batch_mode</strong></td><td class="td">FALSE</td><td class="td">TRUE or FALSE (boolean)</td><td class="td">Enable BCC Batch Mode.</td> +</tr><tr> +<td class="td"><strong>bcc_batch_size</strong></td><td class="td">200</td><td class="td">None</td><td class="td">Number of emails in each BCC batch.</td> +</tr> +</table> + + +<h2>Email Function Reference</h2> + +<h3>$this->email->from()</h3> +<p>Sets the email address and name of the person sending the email:</p> +<code>$this->email->from('<var>you@example.com</var>', '<var>Your Name</var>');</code> + +<h3>$this->email->reply_to()</h3> +<p>Sets the reply-to address. If the information is not provided the information in the "from" function is used. Example:</p> +<code>$this->email->reply_to('<var>you@example.com</var>', '<var>Your Name</var>');</code> + + +<h3>$this->email->to()</h3> +<p>Sets the email address(s) of the recipient(s). Can be a single email, a comma-delimited list or an array:</p> + +<code>$this->email->to('<var>someone@example.com</var>');</code> +<code>$this->email->to('<var>one@example.com</var>, <var>two@example.com</var>, <var>three@example.com</var>');</code> + +<code>$list = array('<var>one@example.com</var>', '<var>two@example.com</var>', '<var>three@example.com</var>');<br /> +<br /> +$this->email->to(<var>$list</var>);</code> + +<h3>$this->email->cc()</h3> +<p>Sets the CC email address(s). Just like the "to", can be a single email, a comma-delimited list or an array.</p> + +<h3>$this->email->bcc()</h3> +<p>Sets the BCC email address(s). Just like the "to", can be a single email, a comma-delimited list or an array.</p> + + +<h3>$this->email->subject()</h3> +<p>Sets the email subject:</p> +<code>$this->email->subject('<var>This is my subject</var>');</code> + +<h3>$this->email->message()</h3> +<p>Sets the email message body:</p> +<code>$this->email->message('<var>This is my message</var>');</code> + +<h3>$this->email->set_alt_message()</h3> +<p>Sets the alternative email message body:</p> +<code>$this->email->set_alt_message('<var>This is the alternative message</var>');</code> + +<p>This is an optional message string which can be used if you send HTML formatted email. It lets you specify an alternative +message with no HTML formatting which is added to the header string for people who do not accept HTML email. +If you do not set your own message CodeIgniter will extract the message from your HTML email and strip the tags.</p> + + + +<h3>$this->email->clear()</h3> +<p>Initializes all the email variables to an empty state. This function is intended for use if you run the email sending function +in a loop, permitting the data to be reset between cycles.</p> +<code>foreach ($list as $name => $address)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->email->clear();<br /><br /> + +&nbsp;&nbsp;&nbsp;&nbsp;$this->email->to($address);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->email->from('your@example.com');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->email->subject('Here is your info '.$name);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->email->message('Hi '.$name.' Here is the info you requested.');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->email->send();<br /> +}</code> + +<p>If you set the parameter to TRUE any attachments will be cleared as well:</p> + +<code>$this->email->clear(TRUE);</code> + + +<h3>$this->email->send()</h3> +<p>The Email sending function. Returns boolean TRUE or FALSE based on success or failure, enabling it to be used +conditionally:</p> + +<code>if ( ! $this->email->send())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;// Generate error<br /> +}</code> + + +<h3>$this->email->attach()</h3> +<p>Enables you to send an attachment. Put the file path/name in the first parameter. Note: Use a file path, not a URL. +For multiple attachments use the function multiple times. For example:</p> + +<code>$this->email->attach('/path/to/photo1.jpg');<br /> +$this->email->attach('/path/to/photo2.jpg');<br /> +$this->email->attach('/path/to/photo3.jpg');<br /> +<br /> +$this->email->send();</code> + + +<h3>$this->email->print_debugger()</h3> +<p>Returns a string containing any server messages, the email headers, and the email messsage. Useful for debugging.</p> + + +<h2>Overriding Word Wrapping</h2> + +<p>If you have word wrapping enabled (recommended to comply with RFC 822) and you have a very long link in your email it can +get wrapped too, causing it to become un-clickable by the person receiving it. CodeIgniter lets you manually override +word wrapping within part of your message like this:</p> + +<code>The text of your email that<br /> +gets wrapped normally.<br /> +<br /> +<var>{unwrap}</var>http://example.com/a_long_link_that_should_not_be_wrapped.html<var>{/unwrap}</var><br /> +<br /> +More text that will be<br /> +wrapped normally.</code> + +<p>Place the item you do not want word-wrapped between: <var>{unwrap}</var> <var>{/unwrap}</var></p> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../database/index.html">Database Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="encryption.html">Encryption Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/encryption.html b/user_guide/libraries/encryption.html new file mode 100755 index 0000000..cd59a6c --- /dev/null +++ b/user_guide/libraries/encryption.html @@ -0,0 +1,224 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Encryption Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Encryption Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Encryption Class</h1> + +<p>The Encryption Class provides two-way data encryption. It uses a scheme that either compiles +the message using a randomly hashed bitwise XOR encoding scheme, or is encrypted using +the Mcrypt library. If Mcrypt is not available on your server the encoded message will +still provide a reasonable degree of security for encrypted sessions or other such "light" purposes. +If Mcrypt is available, you'll be provided with a high degree of security appropriate for storage.</p> + + +<h2>Setting your Key</h2> + +<p>A <em>key</em> is a piece of information that controls the cryptographic process and permits an encrypted string to be decoded. +In fact, the key you chose will provide the <strong>only</strong> means to decode data that was encrypted with that key, +so not only must you choose the key carefully, you must never change it if you intend use it for persistent data.</p> + +<p>It goes without saying that you should guard your key carefully. +Should someone gain access to your key, the data will be easily decoded. If your server is not totally under your control +it's impossible to ensure key security so you may want to think carefully before using it for anything +that requires high security, like storing credit card numbers.</p> + +<p>To take maximum advantage of the encryption algorithm, your key should be 32 characters in length (128 bits). +The key should be as random a string as you can concoct, with numbers and uppercase and lowercase letters. +Your key should <strong>not</strong> be a simple text string. In order to be cryptographically secure it +needs to be as random as possible.</p> + +<p>Your key can be either stored in your <dfn>application/config/config.php</dfn>, or you can design your own +storage mechanism and pass the key dynamically when encoding/decoding.</p> + +<p>To save your key to your <dfn>application/config/config.php</dfn>, open the file and set:</p> +<code>$config['encryption_key'] = "YOUR KEY";</code> + + +<h2>Message Length</h2> + +<p>It's important for you to know that the encoded messages the encryption function generates will be approximately 2.6 times longer than the original +message. For example, if you encrypt the string "my super secret data", which is 21 characters in length, you'll end up +with an encoded string that is roughly 55 characters (we say "roughly" because the encoded string length increments in +64 bit clusters, so it's not exactly linear). Keep this information in mind when selecting your data storage mechanism. Cookies, +for example, can only hold 4K of information.</p> + + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the Encryption class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('encrypt');</code> +<p>Once loaded, the Encrypt library object will be available using: <dfn>$this->encrypt</dfn></p> + + +<h2>$this->encrypt->encode()</h2> + +<p>Performs the data encryption and returns it as a string. Example:</p> +<code> +$msg = 'My secret message';<br /> +<br /> +$encrypted_string = $this->encrypt->encode($msg);</code> + +<p>You can optionally pass your encryption key via the second parameter if you don't want to use the one in your config file:</p> + +<code> +$msg = 'My secret message';<br /> +$key = 'super-secret-key';<br /> +<br /> +$encrypted_string = $this->encrypt->encode($msg, $key);</code> + + +<h2>$this->encrypt->decode()</h2> + +<p>Decrypts an encoded string. Example:</p> + +<code> +$encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84';<br /> +<br /> +$plaintext_string = $this->encrypt->decode($encrypted_string);</code> + +<p>You can optionally pass your encryption key via the second parameter if you don't want to use the one in your config file:</p> + +<code> +$msg = 'My secret message';<br /> +$key = 'super-secret-key';<br /> +<br /> +$encrypted_string = $this->encrypt->decode($msg, $key);</code> + + +<h2>$this->encrypt->set_cipher();</h2> + +<p>Permits you to set an Mcrypt cipher. By default it uses <samp>MCRYPT_RIJNDAEL_256</samp>. Example:</p> +<code>$this->encrypt->set_cipher(MCRYPT_BLOWFISH);</code> +<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available ciphers</a>.</p> + +<p>If you'd like to manually test whether your server supports Mcrypt you can use:</p> +<code>echo ( ! function_exists('mcrypt_encrypt')) ? 'Nope' : 'Yup';</code> + + +<h2>$this->encrypt->set_mode();</h2> + +<p>Permits you to set an Mcrypt mode. By default it uses <samp>MCRYPT_MODE_CBC</samp>. Example:</p> +<code>$this->encrypt->set_mode(MCRYPT_MODE_CFB);</code> +<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available modes</a>.</p> + + +<h2>$this->encrypt->sha1();</h2> +<p>SHA1 encoding function. Provide a string and it will return a 160 bit one way hash. Note: SHA1, just like MD5 is non-decodable. Example:</p> +<code>$hash = $this->encrypt->sha1('Some string');</code> + +<p>Many PHP installations have SHA1 support by default so if all you need is to encode a hash it's simpler to use the native +function:</p> + +<code>$hash = sha1('Some string');</code> + +<p>If your server does not support SHA1 you can use the provided function.</p> + +<h2 id="legacy">$this->encrypt->encode_from_legacy(<kbd>$orig_data</kbd>, <kbd>$legacy_mode</kbd> = MCRYPT_MODE_ECB, <kbd>$key</kbd> = '');</h2> +<p>Enables you to re-encode data that was originally encrypted with CodeIgniter 1.x to be compatible with the Encryption library in CodeIgniter 2.x. It is only + necessary to use this method if you have encrypted data stored permanently such as in a file or database and are on a server that supports Mcrypt. "Light" use encryption + such as encrypted session data or transitory encrypted flashdata require no intervention on your part. However, existing encrypted Sessions will be + destroyed since data encrypted prior to 2.x will not be decoded.</p> + +<p class="important"><strong>Why only a method to re-encode the data instead of maintaining legacy methods for both encoding and decoding?</strong> The algorithms in + the Encryption library have improved in CodeIgniter 2.x both for performance and security, and we do not wish to encourage continued use of the older methods. + You can of course extend the Encryption library if you wish and replace the new methods with the old and retain seamless compatibility with CodeIgniter 1.x + encrypted data, but this a decision that a developer should make cautiously and deliberately, if at all.</p> + +<code>$new_data = $this->encrypt->encode_from_legacy(<kbd>$old_encrypted_string</kbd>);</code> + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> + <th>Parameter</th> + <th>Default</th> + <th>Description</th> +</tr> +<tr> + <td class="td"><strong>$orig_data</strong></td> + <td class="td">n/a</td> + <td class="td">The original encrypted data from CodeIgniter 1.x's Encryption library</td> +</tr> +<tr> + <td class="td"><strong>$legacy_mode</strong></td> + <td class="td">MCRYPT_MODE_ECB</td> + <td class="td">The Mcrypt mode that was used to generate the original encrypted data. CodeIgniter 1.x's default was MCRYPT_MODE_ECB, and it will + assume that to be the case unless overridden by this parameter.</td> +</tr> +<tr> + <td class="td"><strong>$key</strong></td> + <td class="td">n/a</td> + <td class="td">The encryption key. This it typically specified in your config file as outlined above.</td> +</tr> +</table> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="email.html">Email Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="file_uploading.html">File Uploading Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/file_uploading.html b/user_guide/libraries/file_uploading.html new file mode 100755 index 0000000..9759d0c --- /dev/null +++ b/user_guide/libraries/file_uploading.html @@ -0,0 +1,451 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>File Uploading Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +File Uploading Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>File Uploading Class</h1> + +<p>CodeIgniter's File Uploading Class permits files to be uploaded. You can set various +preferences, restricting the type and size of the files.</p> + + +<h2>The Process</h2> + +<p>Uploading a file involves the following general process:</p> + + +<ul> +<li>An upload form is displayed, allowing a user to select a file and upload it.</li> +<li>When the form is submitted, the file is uploaded to the destination you specify.</li> +<li>Along the way, the file is validated to make sure it is allowed to be uploaded based on the preferences you set.</li> +<li>Once uploaded, the user will be shown a success message.</li> +</ul> + +<p>To demonstrate this process here is brief tutorial. Afterward you'll find reference information.</p> + +<h2>Creating the Upload Form</h2> + + + +<p>Using a text editor, create a form called <dfn>upload_form.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> +folder:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="23"> +&lt;html> +&lt;head> +&lt;title>Upload Form&lt;/title> +&lt;/head> +&lt;body> + +&lt;?php echo $error;?> + +&lt;?php echo form_open_multipart('upload/do_upload');?> + +&lt;input type="file" name="userfile" size="20" /> + +&lt;br />&lt;br /> + +&lt;input type="submit" value="upload" /> + +&lt;/form> + +&lt;/body> +&lt;/html></textarea> + +<p>You'll notice we are using a form helper to create the opening form tag. File uploads require a multipart form, so the helper +creates the proper syntax for you. You'll also notice we have an $error variable. This is so we can show error messages in the event +the user does something wrong.</p> + + +<h2>The Success Page</h2> + +<p>Using a text editor, create a form called <dfn>upload_success.php</dfn>. +In it, place this code and save it to your <samp>applications/views/</samp> folder:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="20">&lt;html> +&lt;head> +&lt;title>Upload Form&lt;/title> +&lt;/head> +&lt;body> + +&lt;h3>Your file was successfully uploaded!&lt;/h3> + +&lt;ul> +&lt;?php foreach ($upload_data as $item => $value):?> +&lt;li>&lt;?php echo $item;?>: &lt;?php echo $value;?>&lt;/li> +&lt;?php endforeach; ?> +&lt;/ul> + +&lt;p>&lt;?php echo anchor('upload', 'Upload Another File!'); ?>&lt;/p> + +&lt;/body> +&lt;/html></textarea> + + +<h2>The Controller</h2> + +<p>Using a text editor, create a controller called <dfn>upload.php</dfn>. In it, place this code and save it to your <samp>applications/controllers/</samp> +folder:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="43">&lt;?php + +class Upload extends CI_Controller { + + function __construct() + { + parent::__construct(); + $this->load->helper(array('form', 'url')); + } + + function index() + { + $this->load->view('upload_form', array('error' => ' ' )); + } + + function do_upload() + { + $config['upload_path'] = './uploads/'; + $config['allowed_types'] = 'gif|jpg|png'; + $config['max_size'] = '100'; + $config['max_width'] = '1024'; + $config['max_height'] = '768'; + + $this->load->library('upload', $config); + + if ( ! $this->upload->do_upload()) + { + $error = array('error' => $this->upload->display_errors()); + + $this->load->view('upload_form', $error); + } + else + { + $data = array('upload_data' => $this->upload->data()); + + $this->load->view('upload_success', $data); + } + } +} +?&gt;</textarea> + + +<h2>The Upload Folder</h2> + +<p>You'll need a destination folder for your uploaded images. Create a folder at the root of your CodeIgniter installation called +<dfn>uploads</dfn> and set its file permissions to 777.</p> + + +<h2>Try it!</h2> + +<p>To try your form, visit your site using a URL similar to this one:</p> + +<code>example.com/index.php/<var>upload</var>/</code> + +<p>You should see an upload form. Try uploading an image file (either a jpg, gif, or png). If the path in your +controller is correct it should work.</p> + + +<p>&nbsp;</p> + +<h1>Reference Guide</h1> + + +<h2>Initializing the Upload Class</h2> + +<p>Like most other classes in CodeIgniter, the Upload class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('upload');</code> +<p>Once the Upload class is loaded, the object will be available using: <dfn>$this->upload</dfn></p> + + +<h2>Setting Preferences</h2> + +<p>Similar to other libraries, you'll control what is allowed to be upload based on your preferences. In the controller you +built above you set the following preferences:</p> + +<code>$config['upload_path'] = './uploads/';<br /> +$config['allowed_types'] = 'gif|jpg|png';<br /> +$config['max_size'] = '100';<br /> +$config['max_width'] = '1024';<br /> +$config['max_height'] = '768';<br /> +<br /> +$this->load->library('upload', $config);<br /><br /> + +// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:<br /> +$this->upload->initialize($config);</code> + +<p>The above preferences should be fairly self-explanatory. Below is a table describing all available preferences.</p> + + +<h2>Preferences</h2> + +<p>The following preferences are available. The default value indicates what will be used if you do not specify that preference.</p> + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +</tr> + +<tr> +<td class="td"><strong>upload_path</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">The path to the folder where the upload should be placed. The folder must be writable and the path can be absolute or relative.</td> +</tr> + +<tr> +<td class="td"><strong>allowed_types</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">The mime types corresponding to the types of files you allow to be uploaded. Usually the file extension can be used as the mime type. Separate multiple types with a pipe.</td> +</tr> + + +<tr> +<td class="td"><strong>file_name</strong></td> +<td class="td">None</td> +<td class="td">Desired file name</td> +<td class="td"> + <p>If set CodeIgniter will rename the uploaded file to this name. The extension provided in the file name must also be an allowed file type.</p> +</td> +</tr> + +<tr> +<td class="td"><strong>overwrite</strong></td> +<td class="td">FALSE</td> +<td class="td">TRUE/FALSE (boolean)</td> +<td class="td">If set to true, if a file with the same name as the one you are uploading exists, it will be overwritten. If set to false, a number will be appended to the filename if another with the same name exists.</td> +</tr> + + +<tr> +<td class="td"><strong>max_size</strong></td> +<td class="td">0</td> +<td class="td">None</td> +<td class="td">The maximum size (in kilobytes) that the file can be. Set to zero for no limit. Note: Most PHP installations have their own limit, as specified in the php.ini file. Usually 2 MB (or 2048 KB) by default.</td> +</tr> + +<tr> +<td class="td"><strong>max_width</strong></td> +<td class="td">0</td> +<td class="td">None</td> +<td class="td">The maximum width (in pixels) that the file can be. Set to zero for no limit.</td> +</tr> + +<tr> +<td class="td"><strong>max_height</strong></td> +<td class="td">0</td> +<td class="td">None</td> +<td class="td">The maximum height (in pixels) that the file can be. Set to zero for no limit.</td> +</tr> + +<tr> +<td class="td"><strong>max_filename</strong></td> +<td class="td">0</td> +<td class="td">None</td> +<td class="td">The maximum length that a file name can be. Set to zero for no limit.</td> +</tr> + +<tr> +<td class="td"><strong>encrypt_name</strong></td> +<td class="td">FALSE</td> +<td class="td">TRUE/FALSE (boolean)</td> +<td class="td">If set to TRUE the file name will be converted to a random encrypted string. This can be useful if you would like the file saved with a name that can not be discerned by the person uploading it.</td> +</tr> + +<tr> +<td class="td"><strong>remove_spaces</strong></td> +<td class="td">TRUE</td> +<td class="td">TRUE/FALSE (boolean)</td> +<td class="td">If set to TRUE, any spaces in the file name will be converted to underscores. This is recommended.</td> +</tr> +</table> + + +<h2>Setting preferences in a config file</h2> + +<p>If you prefer not to set preferences using the above method, you can instead put them into a config file. +Simply create a new file called the <var>upload.php</var>, add the <var>$config</var> +array in that file. Then save the file in: <var>config/upload.php</var> and it will be used automatically. You +will NOT need to use the <dfn>$this->upload->initialize</dfn> function if you save your preferences in a config file.</p> + + +<h2>Function Reference</h2> + +<p>The following functions are available</p> + + +<h2>$this->upload->do_upload()</h2> + +<p>Performs the upload based on the preferences you've set. Note: By default the upload routine expects the file to come from a form field +called <dfn>userfile</dfn>, and the form must be a "multipart type:</p> + +<code>&lt;form method="post" action="some_action" enctype="multipart/form-data" /></code> + +<p>If you would like to set your own field name simply pass its value to the <dfn>do_upload</dfn> function:</p> + +<code> +$field_name = "some_field_name";<br /> +$this->upload->do_upload($field_name)</code> + + +<h2>$this->upload->display_errors()</h2> + +<p>Retrieves any error messages if the <dfn>do_upload()</dfn> function returned false. The function does not echo automatically, it +returns the data so you can assign it however you need.</p> + +<h3>Formatting Errors</h3> +<p>By default the above function wraps any errors within &lt;p> tags. You can set your own delimiters like this:</p> + +<code>$this->upload->display_errors('<var>&lt;p></var>', '<var>&lt;/p></var>');</code> + +<h2>$this->upload->data()</h2> + +<p>This is a helper function that returns an array containing all of the data related to the file you uploaded. +Here is the array prototype:</p> + +<code>Array<br /> +(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[file_name]&nbsp;&nbsp;&nbsp;&nbsp;=> mypic.jpg<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[file_type]&nbsp;&nbsp;&nbsp;&nbsp;=> image/jpeg<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[file_path]&nbsp;&nbsp;&nbsp;&nbsp;=> /path/to/your/upload/<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[full_path]&nbsp;&nbsp;&nbsp;&nbsp;=> /path/to/your/upload/jpg.jpg<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[raw_name]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> mypic<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[orig_name]&nbsp;&nbsp;&nbsp;&nbsp;=> mypic.jpg<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[client_name]&nbsp;&nbsp;=> mypic.jpg<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[file_ext]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> .jpg<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[file_size]&nbsp;&nbsp;&nbsp;&nbsp;=> 22.2<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[is_image]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 1<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[image_width]&nbsp;&nbsp;=> 800<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[image_height] => 600<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[image_type]&nbsp;&nbsp;&nbsp;=> jpeg<br /> +&nbsp;&nbsp;&nbsp;&nbsp;[image_size_str] => width="800" height="200"<br /> +)</code> + +<h3>Explanation</h3> + +<p>Here is an explanation of the above array items.</p> + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr><th>Item</th><th>Description</th></tr> + +<tr><td class="td"><strong>file_name</strong></td> +<td class="td">The name of the file that was uploaded including the file extension.</td></tr> + +<tr><td class="td"><strong>file_type</strong></td> +<td class="td">The file's Mime type</td></tr> + +<tr><td class="td"><strong>file_path</strong></td> +<td class="td">The absolute server path to the file</td></tr> + +<tr><td class="td"><strong>full_path</strong></td> +<td class="td">The absolute server path including the file name</td></tr> + +<tr><td class="td"><strong>raw_name</strong></td> +<td class="td">The file name without the extension</td></tr> + +<tr><td class="td"><strong>orig_name</strong></td> +<td class="td">The original file name. This is only useful if you use the encrypted name option.</td></tr> + +<tr><td class="td"><strong>client_name</strong></td> +<td class="td">The file name as supplied by the client user agent, prior to any file name preparation or incrementing.</td></tr> + +<tr><td class="td"><strong>file_ext</strong></td> +<td class="td">The file extension with period</td></tr> + +<tr><td class="td"><strong>file_size</strong></td> +<td class="td">The file size in kilobytes</td></tr> + +<tr><td class="td"><strong>is_image</strong></td> +<td class="td">Whether the file is an image or not. 1 = image. 0 = not.</td></tr> + +<tr><td class="td"><strong>image_width</strong></td> +<td class="td">Image width.</td></tr> + +<tr><td class="td"><strong>image_height</strong></td> +<td class="td">Image height</td></tr> + +<tr><td class="td"><strong>image_type</strong></td> +<td class="td">Image type. Typically the file extension without the period.</td></tr> + +<tr><td class="td"><strong>image_size_str</strong></td> +<td class="td">A string containing the width and height. Useful to put into an image tag.</td></tr> + + +</table> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="encryption.html">Encryption Helper</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="form_validation.html">Form Validation Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html new file mode 100755 index 0000000..b04dac2 --- /dev/null +++ b/user_guide/libraries/form_validation.html @@ -0,0 +1,1250 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Form Validation : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Form Validation +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Form Validation</h1> + +<p>CodeIgniter provides a comprehensive form validation and data prepping class that helps minimize the amount of code you'll write.</p> + +<ul> +<li><a href="#overview">Overview</a></li> +<li><a href="#tutorial">Form Validation Tutorial</a> + + <ul> + <li><a href="#theform">The Form</a></li> + <li><a href="#thesuccesspage">The Success Page</a></li> + <li><a href="#thecontroller">The Controller</a></li> + <li><a href="#validationrules">Setting Validation Rules</a></li> + <li><a href="#validationrulesasarray">Setting Validation Rules Using an Array</a></li> + <li><a href="#cascadingrules">Cascading Rules</a></li> + <li><a href="#preppingdata">Prepping Data</a></li> + <li><a href="#repopulatingform">Re-populating the Form</a></li> + <li><a href="#callbacks">Callbacks</a></li> + <li><a href="#settingerrors">Setting Error Messages</a></li> + <li><a href="#errordelimiters">Changing the Error Delimiters</a></li> + <li><a href="#translatingfn">Translating Field Names</a></li> + <li><a href="#individualerrors">Showing Errors Individually</a></li> + <li><a href="#savingtoconfig">Saving Sets of Validation Rules to a Config File</a></li> + <li><a href="#arraysasfields">Using Arrays as Field Names</a></li> + </ul> +</li> +<li><a href="#rulereference">Rule Reference</a></li> +<li><a href="#preppingreference">Prepping Reference</a></li> +<li><a href="#functionreference">Function Reference</a></li> +<li><a href="#helperreference">Helper Reference</a></li> + +</ul> + + + + + + +<p>&nbsp;</p> + +<a name="overview"></a> +<h1>Overview</h1> + + +<p>Before explaining CodeIgniter's approach to data validation, let's describe the ideal scenario:</p> + +<ol> +<li>A form is displayed.</li> +<li>You fill it in and submit it.</li> +<li>If you submitted something invalid, or perhaps missed a required item, the form is redisplayed containing your data +along with an error message describing the problem.</li> +<li>This process continues until you have submitted a valid form.</li> +</ol> + +<p>On the receiving end, the script must:</p> + +<ol> +<li>Check for required data.</li> +<li>Verify that the data is of the correct type, and meets the correct criteria. For example, if a username is submitted +it must be validated to contain only permitted characters. It must be of a minimum length, +and not exceed a maximum length. The username can't be someone else's existing username, or perhaps even a reserved word. Etc.</li> +<li>Sanitize the data for security.</li> +<li>Pre-format the data if needed (Does the data need to be trimmed? HTML encoded? Etc.)</li> +<li>Prep the data for insertion in the database.</li> +</ol> + + +<p>Although there is nothing terribly complex about the above process, it usually requires a significant +amount of code, and to display error messages, various control structures are usually placed within the form HTML. +Form validation, while simple to create, is generally very messy and tedious to implement.</p> + +<p>&nbsp;</p> + + +<a name="tutorial"></a> +<h1>Form Validation Tutorial</h1> + +<p>What follows is a "hands on" tutorial for implementing CodeIgniters Form Validation.</p> + + +<p>In order to implement form validation you'll need three things:</p> + +<ol> +<li>A <a href="../general/views.html">View</a> file containing a form.</li> +<li>A View file containing a "success" message to be displayed upon successful submission.</li> +<li>A <a href="../general/controllers.html">controller</a> function to receive and process the submitted data.</li> +</ol> + +<p>Let's create those three things, using a member sign-up form as the example.</p> + + + +<a name="theform"></a> + +<h2>The Form</h2> + +<p>Using a text editor, create a form called <dfn>myform.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> +folder:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="30">&lt;html> +&lt;head> +&lt;title>My Form&lt;/title> +&lt;/head> +&lt;body> + +&lt;?php echo validation_errors(); ?> + +&lt;?php echo form_open('form'); ?> + +&lt;h5>Username&lt;/h5> +&lt;input type="text" name="username" value="" size="50" /> + +&lt;h5>Password&lt;/h5> +&lt;input type="text" name="password" value="" size="50" /> + +&lt;h5>Password Confirm&lt;/h5> +&lt;input type="text" name="passconf" value="" size="50" /> + +&lt;h5>Email Address&lt;/h5> +&lt;input type="text" name="email" value="" size="50" /> + +&lt;div>&lt;input type="submit" value="Submit" />&lt;/div> + +&lt;/form> + +&lt;/body> +&lt;/html> +</textarea> + + + + +<a name="thesuccesspage"></a> +<h2>The Success Page</h2> + + +<p>Using a text editor, create a form called <dfn>formsuccess.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> +folder:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="14"> +&lt;html> +&lt;head> +&lt;title>My Form&lt;/title> +&lt;/head> +&lt;body> + +&lt;h3>Your form was successfully submitted!&lt;/h3> + +&lt;p>&lt;?php echo anchor('form', 'Try it again!'); ?>&lt;/p> + +&lt;/body> +&lt;/html> +</textarea> + + + +<a name="thecontroller"></a> +<h2>The Controller</h2> + +<p>Using a text editor, create a controller called <dfn>form.php</dfn>. In it, place this code and save it to your <samp>applications/controllers/</samp> +folder:</p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="21">&lt;?php + +class Form extends CI_Controller { + + function index() + { + $this->load->helper(array('form', 'url')); + + $this->load->library('form_validation'); + + if ($this->form_validation->run() == FALSE) + { + $this->load->view('myform'); + } + else + { + $this->load->view('formsuccess'); + } + } +} +?></textarea> + + +<h2>Try it!</h2> + +<p>To try your form, visit your site using a URL similar to this one:</p> + +<code>example.com/index.php/<var>form</var>/</code> + +<p><dfn>If you submit the form you should simply see the form reload. That's because you haven't set up any validation +rules yet.</dfn></p> + +<p><strong>Since you haven't told the Form Validation class to validate anything yet, it returns <kbd>FALSE</kbd> (boolean false) by default. The <samp>run()</samp> +function only returns <kbd>TRUE</kbd> if it has successfully applied your rules without any of them failing.</strong></p> + + +<h2>Explanation</h2> + +<p>You'll notice several things about the above pages:</p> + +<p>The <dfn>form</dfn> (myform.php) is a standard web form with a couple exceptions:</p> + +<ol> +<li>It uses a <dfn>form helper</dfn> to create the form opening. +Technically, this isn't necessary. You could create the form using standard HTML. However, the benefit of using the helper +is that it generates the action URL for you, based on the URL in your config file. This makes your application more portable in the event your URLs change.</li> + +<li>At the top of the form you'll notice the following function call: +<code>&lt;?php echo validation_errors(); ?&gt;</code> + +<p>This function will return any error messages sent back by the validator. If there are no messages it returns an empty string.</p> +</li> +</ol> + +<p>The <dfn>controller</dfn> (form.php) has one function: <dfn>index()</dfn>. This function initializes the validation class and +loads the <var>form helper</var> and <var>URL helper</var> used by your view files. It also <samp>runs</samp> +the validation routine. Based on +whether the validation was successful it either presents the form or the success page.</p> + + + + +<a name="validationrules"></a> + +<h2>Setting Validation Rules</h2> + +<p>CodeIgniter lets you set as many validation rules as you need for a given field, cascading them in order, and it even lets you prep and pre-process the field data +at the same time. To set validation rules you will use the <dfn>set_rules()</dfn> function:</p> + +<code>$this->form_validation->set_rules();</code> + +<p>The above function takes <strong>three</strong> parameters as input:</p> + +<ol> + <li>The field name - the exact name you've given the form field.</li> + <li>A "human" name for this field, which will be inserted into the error message. For example, if your field is named "user" you might give it a human name of "Username". <strong>Note:</strong> If you would like the field name to be stored in a language file, please see <a href="#translatingfn">Translating Field Names</a>.</li> + <li>The validation rules for this form field.</li> +</ol> + + +<p><br />Here is an example. In your <dfn>controller</dfn> (form.php), add this code just below the validation initialization function:</p> + +<code> +$this->form_validation->set_rules('username', 'Username', 'required');<br /> +$this->form_validation->set_rules('password', 'Password', 'required');<br /> +$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');<br /> +$this->form_validation->set_rules('email', 'Email', 'required');<br /> +</code> + +<p>Your controller should now look like this:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="28">&lt;?php + +class Form extends CI_Controller { + + function index() + { + $this->load->helper(array('form', 'url')); + + $this->load->library('form_validation'); + + $this->form_validation->set_rules('username', 'Username', 'required'); + $this->form_validation->set_rules('password', 'Password', 'required'); + $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required'); + $this->form_validation->set_rules('email', 'Email', 'required'); + + if ($this->form_validation->run() == FALSE) + { + $this->load->view('myform'); + } + else + { + $this->load->view('formsuccess'); + } + } +} +?></textarea> + +<p><dfn>Now submit the form with the fields blank and you should see the error messages. +If you submit the form with all the fields populated you'll see your success page.</dfn></p> + +<p class="important"><strong>Note:</strong> The form fields are not yet being re-populated with the data when +there is an error. We'll get to that shortly.</p> + + + + +<a name="validationrulesasarray"></a> +<h2>Setting Rules Using an Array</h2> + +<p>Before moving on it should be noted that the rule setting function can be passed an array if you prefer to set all your rules in one action. +If you use this approach you must name your array keys as indicated:</p> + +<code> +$config = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field'&nbsp;&nbsp;&nbsp;=> 'username', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;=> 'Username', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules'&nbsp;&nbsp;&nbsp;=> 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field'&nbsp;&nbsp;&nbsp;=> 'password', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;=> 'Password', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules'&nbsp;&nbsp;&nbsp;=> 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field'&nbsp;&nbsp;&nbsp;=> 'passconf', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;=> 'Password Confirmation', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules'&nbsp;&nbsp;&nbsp;=> 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field'&nbsp;&nbsp;&nbsp;=> 'email', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;=> 'Email', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules'&nbsp;&nbsp;&nbsp;=> 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->form_validation->set_rules($config); +</code> + + + + + + +<a name="cascadingrules"></a> +<h2>Cascading Rules</h2> + +<p>CodeIgniter lets you pipe multiple rules together. Let's try it. Change your rules in the third parameter of rule setting function, like this:</p> + +<code> +$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]|is_unique[users.username]');<br /> +$this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]');<br /> +$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');<br /> +$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');<br /> +</code> + +<p>The above code sets the following rules:</p> + +<ol> +<li>The username field be no shorter than 5 characters and no longer than 12.</li> +<li>The password field must match the password confirmation field.</li> +<li>The email field must contain a valid email address.</li> +</ol> + +<p>Give it a try! Submit your form without the proper data and you'll see new error messages that correspond to your new rules. +There are numerous rules available which you can read about in the validation reference.</p> + + + +<a name="preppingdata"></a> +<h2>Prepping Data</h2> + +<p>In addition to the validation functions like the ones we used above, you can also prep your data in various ways. +For example, you can set up rules like this:</p> + +<code> +$this->form_validation->set_rules('username', 'Username', '<kbd>trim</kbd>|required|min_length[5]|max_length[12]|<kbd>xss_clean</kbd>');<br /> +$this->form_validation->set_rules('password', 'Password', '<kbd>trim</kbd>|required|matches[passconf]|<kbd>md5</kbd>');<br /> +$this->form_validation->set_rules('passconf', 'Password Confirmation', '<kbd>trim</kbd>|required');<br /> +$this->form_validation->set_rules('email', 'Email', '<kbd>trim</kbd>|required|valid_email');<br /> +</code> + + +<p>In the above example, we are "trimming" the fields, converting the password to MD5, and running the username through +the "xss_clean" function, which removes malicious data.</p> + +<p><strong>Any native PHP function that accepts one parameter can be used as a rule, like <dfn>htmlspecialchars</dfn>, +<dfn>trim</dfn>, <dfn>MD5</dfn>, etc.</strong></p> + +<p><strong>Note:</strong> You will generally want to use the prepping functions <strong>after</strong> +the validation rules so if there is an error, the original data will be shown in the form.</p> + + + + +<a name="repopulatingform"></a> +<h2>Re-populating the form</h2> + +<p>Thus far we have only been dealing with errors. It's time to repopulate the form field with the submitted data. CodeIgniter offers several helper functions +that permit you to do this. The one you will use most commonly is:</p> + +<code>set_value('field name')</code> + + +<p>Open your <dfn>myform.php</dfn> view file and update the <strong>value</strong> in each field using the <dfn>set_value()</dfn> function:</p> + +<p><strong>Don't forget to include each field name in the <dfn>set_value()</dfn> functions!</strong></p> + + +<textarea class="textarea" style="width:100%" cols="50" rows="30"> +&lt;html> +&lt;head> +&lt;title>My Form&lt;/title> +&lt;/head> +&lt;body> + +&lt;?php echo validation_errors(); ?> + +&lt;?php echo form_open('form'); ?> + +&lt;h5>Username&lt;/h5> +&lt;input type="text" name="username" value="&lt;?php echo set_value('username'); ?>" size="50" /> + +&lt;h5>Password&lt;/h5> +&lt;input type="text" name="password" value="&lt;?php echo set_value('password'); ?>" size="50" /> + +&lt;h5>Password Confirm&lt;/h5> +&lt;input type="text" name="passconf" value="&lt;?php echo set_value('passconf'); ?>" size="50" /> + +&lt;h5>Email Address&lt;/h5> +&lt;input type="text" name="email" value="&lt;?php echo set_value('email'); ?>" size="50" /> + +&lt;div>&lt;input type="submit" value="Submit" />&lt;/div> + +&lt;/form> + +&lt;/body> +&lt;/html> +</textarea> + + +<p><dfn>Now reload your page and submit the form so that it triggers an error. Your form fields should now be re-populated</dfn></p> + +<p class="important"><strong>Note:</strong> The <a href="#functionreference">Function Reference</a> section below contains functions that +permit you to re-populate &lt;select> menus, radio buttons, and checkboxes.</p> + + +<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function. Example:</p> + +<code>&lt;input type="text" name="<kbd>colors[]</kbd>" value="&lt;?php echo set_value('<kbd>colors[]</kbd>'); ?>" size="50" /></code> + +<p>For more info please see the <a href="#arraysasfields">Using Arrays as Field Names</a> section below.</p> + + + + + +<a name="callbacks"></a> +<h2>Callbacks: Your own Validation Functions</h2> + +<p>The validation system supports callbacks to your own validation functions. This permits you to extend the validation class +to meet your needs. For example, if you need to run a database query to see if the user is choosing a unique username, you can +create a callback function that does that. Let's create a example of this.</p> + +<p>In your controller, change the "username" rule to this:</p> + +<code>$this->form_validation->set_rules('username', 'Username', '<kbd>callback_username_check</kbd>');</code> + +<p>Then add a new function called <dfn>username_check</dfn> to your controller. Here's how your controller should now look:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="40">&lt;?php + +class Form extends CI_Controller { + + public function index() + { + $this->load->helper(array('form', 'url')); + + $this->load->library('form_validation'); + + $this->form_validation->set_rules('username', 'Username', 'callback_username_check'); + $this->form_validation->set_rules('password', 'Password', 'required'); + $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required'); + $this->form_validation->set_rules('email', 'Email', 'required|is_unique[users.email]'); + + if ($this->form_validation->run() == FALSE) + { + $this->load->view('myform'); + } + else + { + $this->load->view('formsuccess'); + } + } + + public function username_check($str) + { + if ($str == 'test') + { + $this->form_validation->set_message('username_check', 'The %s field can not be the word "test"'); + return FALSE; + } + else + { + return TRUE; + } + } + +} +?></textarea> + +<p><dfn>Reload your form and submit it with the word "test" as the username. You can see that the form field data was passed to your +callback function for you to process.</dfn></p> + +<p>To invoke a callback just put the function name in a rule, with "callback_" as the rule <strong>prefix</strong>. If you need +to receive an extra parameter in your callback function, just add it normally after the function name between square brackets, +as in: "callback_foo<strong>[bar]</strong>", then it will be passed as the second argument of your callback function.</p> + +<p><strong>Note:</strong> You can also process the form data that is passed to your callback and return it. If your callback returns anything other than a boolean TRUE/FALSE +it is assumed that the data is your newly processed form data.</p> + +<a name="settingerrors"></a> +<h2>Setting Error Messages</h2> + + +<p>All of the native error messages are located in the following language file: <dfn>language/english/form_validation_lang.php</dfn></p> + +<p>To set your own custom message you can either edit that file, or use the following function:</p> + +<code>$this->form_validation->set_message('<var>rule</var>', '<var>Error Message</var>');</code> + +<p>Where <var>rule</var> corresponds to the name of a particular rule, and <var>Error Message</var> is the text you would like displayed.</p> + +<p>If you include <dfn>%s</dfn> in your error string, it will be replaced with the "human" name you used for your field when you set your rules.</p> + +<p>In the "callback" example above, the error message was set by passing the name of the function:</p> + +<code>$this->form_validation->set_message('username_check')</code> + +<p>You can also override any error message found in the language file. For example, to change the message for the "required" rule you will do this:</p> + +<code>$this->form_validation->set_message('required', 'Your custom message here');</code> + + + +<a name="translatingfn"></a> +<h2>Translating Field Names</h2> + +<p>If you would like to store the "human" name you passed to the <dfn>set_rules()</dfn> function in a language file, and therefore make the name able to be translated, here's how:</p> + +<p>First, prefix your "human" name with <dfn>lang:</dfn>, as in this example:</p> + +<code> +$this->form_validation->set_rules('first_name', '<kbd>lang:</kbd>first_name', 'required');<br /> +</code> + +<p>Then, store the name in one of your language file arrays (without the prefix):</p> + +<code>$lang['first_name'] = 'First Name';</code> + +<p><strong>Note:</strong> If you store your array item in a language file that is not loaded automatically by CI, you'll need to remember to load it in your controller using:</p> + +<code>$this->lang->load('file_name');</code> + +<p>See the <a href="language.html">Language Class</a> page for more info regarding language files.</p> + + +<a name="errordelimiters"></a> +<h2>Changing the Error Delimiters</h2> + +<p>By default, the Form Validation class adds a paragraph tag (&lt;p&gt;) around each error message shown. You can either change these delimiters globally or +individually.</p> + +<ol> + +<li><strong>Changing delimiters Globally</strong> + +<p>To globally change the error delimiters, in your controller function, just after loading the Form Validation class, add this:</p> + +<code>$this->form_validation->set_error_delimiters('<kbd>&lt;div class="error"></kbd>', '<kbd>&lt;/div></kbd>');</code> + +<p>In this example, we've switched to using div tags.</p> + +</li> + +<li><strong>Changing delimiters Individually</strong> + +<p>Each of the two error generating functions shown in this tutorial can be supplied their own delimiters as follows:</p> + +<code>&lt;?php echo form_error('field name', '<kbd>&lt;div class="error"></kbd>', '<kbd>&lt;/div></kbd>'); ?></code> + +<p>Or:</p> + +<code>&lt;?php echo validation_errors('<kbd>&lt;div class="error"></kbd>', '<kbd>&lt;/div></kbd>'); ?></code> + +</li> +</ol> + + + + +<a name="individualerrors"></a> +<h2>Showing Errors Individually</h2> + +<p>If you prefer to show an error message next to each form field, rather than as a list, you can use the <dfn>form_error()</dfn> function.</p> + +<p>Try it! Change your form so that it looks like this:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="18"> +&lt;h5>Username&lt;/h5> +&lt;?php echo form_error('username'); ?> +&lt;input type="text" name="username" value="&lt;?php echo set_value('username'); ?>" size="50" /> + +&lt;h5>Password&lt;/h5> +&lt;?php echo form_error('password'); ?> +&lt;input type="text" name="password" value="&lt;?php echo set_value('password'); ?>" size="50" /> + +&lt;h5>Password Confirm&lt;/h5> +&lt;?php echo form_error('passconf'); ?> +&lt;input type="text" name="passconf" value="&lt;?php echo set_value('passconf'); ?>" size="50" /> + +&lt;h5>Email Address&lt;/h5> +&lt;?php echo form_error('email'); ?> +&lt;input type="text" name="email" value="&lt;?php echo set_value('email'); ?>" size="50" /> +</textarea> + +<p>If there are no errors, nothing will be shown. If there is an error, the message will appear.</p> + +<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function. Example:</p> + +<code>&lt;?php echo form_error('<kbd>options[size]</kbd>'); ?><br /> +&lt;input type="text" name="<kbd>options[size]</kbd>" value="&lt;?php echo set_value("<kbd>options[size]</kbd>"); ?>" size="50" /> +</code> + +<p>For more info please see the <a href="#arraysasfields">Using Arrays as Field Names</a> section below.</p> + + + + +<p>&nbsp;</p> + + +<a name="savingtoconfig"></a> +<h1>Saving Sets of Validation Rules to a Config File</h1> + +<p>A nice feature of the Form Validation class is that it permits you to store all your validation rules for your entire application in a config file. You +can organize these rules into "groups". These groups can either be loaded automatically when a matching controller/function is called, or +you can manually call each set as needed.</p> + +<h3>How to save your rules</h3> + +<p>To store your validation rules, simply create a file named <kbd>form_validation.php</kbd> in your <dfn>application/config/</dfn> folder. +In that file you will place an array named <kbd>$config</kbd> with your rules. As shown earlier, the validation array will have this prototype:</p> + +<code> +$config = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field'&nbsp;&nbsp;&nbsp;=> 'username', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;=> 'Username', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules'&nbsp;&nbsp;&nbsp;=> 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field'&nbsp;&nbsp;&nbsp;=> 'password', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;=> 'Password', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules'&nbsp;&nbsp;&nbsp;=> 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field'&nbsp;&nbsp;&nbsp;=> 'passconf', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;=> 'Password Confirmation', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules'&nbsp;&nbsp;&nbsp;=> 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field'&nbsp;&nbsp;&nbsp;=> 'email', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;=> 'Email', <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules'&nbsp;&nbsp;&nbsp;=> 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +</code> + +<p><dfn>Your validation rule file will be loaded automatically and used when you call the run() function.</dfn></p> + +<p class="important">Please note that you MUST name your array $config.</p> + +<h3>Creating Sets of Rules</h3> + +<p>In order to organize your rules into "sets" requires that you place them into "sub arrays". Consider the following example, showing two sets of rules. +We've arbitrarily called these two rules "signup" and "email". You can name your rules anything you want:</p> + + +<code>$config = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<kbd>signup</kbd>' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'username',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'Username',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'password',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'Password',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'passconf',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'PasswordConfirmation',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'email',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'Email',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<kbd>email</kbd>' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'emailaddress',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'EmailAddress',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required|valid_email'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'name',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'Name',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required|alpha'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'title',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'Title',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'message',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'MessageBody',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +</code> + + +<h3>Calling a Specific Rule Group</h3> + +<p>In order to call a specific group you will pass its name to the <kbd>run()</kbd> function. For example, to call the <kbd>signup</kbd> rule you will do this:</p> + +<code> +if ($this->form_validation->run('<kbd>signup</kbd>') == FALSE)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;$this->load->view('myform');<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;$this->load->view('formsuccess');<br /> +}<br /> +</code> + + + +<h3>Associating a Controller Function with a Rule Group</h3> + +<p>An alternate (and more automatic) method of calling a rule group is to name it according to the controller class/function you intend to use it with. For example, let's say you +have a controller named <kbd>Member</kbd> and a function named <kbd>signup</kbd>. Here's what your class might look like:</p> + +<code> +&lt;?php<br /><br /> +class <kbd>Member</kbd> extends CI_Controller {<br /> +<br /> +&nbsp;&nbsp;&nbsp;function <kbd>signup</kbd>()<br /> +&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->load->library('form_validation');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($this->form_validation->run() == FALSE)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->load->view('myform');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->load->view('formsuccess');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +&nbsp;&nbsp;&nbsp;}<br /> +}<br /> +?></code> + +<p>In your validation config file, you will name your rule group <kbd>member/signup</kbd>:</p> + + +<code>$config = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<kbd>member/signup</kbd>' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'username',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'Username',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'password',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'Password',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'passconf',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'PasswordConfirmation',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'field' => 'email',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label' => 'Email',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'rules' => 'required'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +</code> + +<p><dfn>When a rule group is named identically to a controller class/function it will be used automatically when the run() function is invoked from that class/function.</dfn></p> + +<p>&nbsp;</p> + + +<a name="arraysasfields"></a> +<h1>Using Arrays as Field Names</h1> + +<p>The Form Validation class supports the use of arrays as field names. Consider this example:</p> + +<code>&lt;input type="text" name="<kbd>options[]</kbd>" value="" size="50" /></code> + +<p>If you do use an array as a field name, you must use the EXACT array name in the <a href="#helperreference">Helper Functions</a> that require the field name, +and as your Validation Rule field name.</p> + +<p>For example, to set a rule for the above field you would use:</p> + +<code>$this->form_validation->set_rules('<kbd>options[]</kbd>', 'Options', 'required');</code> + +<p>Or, to show an error for the above field you would use:</p> + +<code>&lt;?php echo form_error('<kbd>options[]</kbd>'); ?></code> + +<p>Or to re-populate the field you would use:</p> + +<code>&lt;input type="text" name="<kbd>options[]</kbd>" value="<kbd>&lt;?php echo set_value('<kbd>options[]</kbd>'); ?></kbd>" size="50" /></code> + +<p>You can use multidimensional arrays as field names as well. For example:</p> + +<code>&lt;input type="text" name="<kbd>options[size]</kbd>" value="" size="50" /></code> + +<p>Or even:</p> + +<code>&lt;input type="text" name="<kbd>sports[nba][basketball]</kbd>" value="" size="50" /></code> + +<p>As with our first example, you must use the exact array name in the helper functions:</p> + +<code>&lt;?php echo form_error('<kbd>sports[nba][basketball]</kbd>'); ?></code> + +<p>If you are using checkboxes (or other fields) that have multiple options, don't forget to leave an empty bracket after each option, so that all selections will be added to the +POST array:</p> + +<code> +&lt;input type="checkbox" name="<kbd>options[]</kbd>" value="red" /><br /> +&lt;input type="checkbox" name="<kbd>options[]</kbd>" value="blue" /><br /> +&lt;input type="checkbox" name="<kbd>options[]</kbd>" value="green" /> +</code> + +<p>Or if you use a multidimensional array:</p> + +<code> +&lt;input type="checkbox" name="<kbd>options[color][]</kbd>" value="red" /><br /> +&lt;input type="checkbox" name="<kbd>options[color][]</kbd>" value="blue" /><br /> +&lt;input type="checkbox" name="<kbd>options[color][]</kbd>" value="green" /> +</code> + +<p>When you use a helper function you'll include the bracket as well:</p> + +<code>&lt;?php echo form_error('<kbd>options[color][]</kbd>'); ?></code> + + + + +<p>&nbsp;</p> + + +<a name="rulereference"></a> +<h1>Rule Reference</h1> + +<p>The following is a list of all the native rules that are available to use:</p> + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> + <tr> + <th>Rule</th> + <th>Parameter</th> + <th>Description</th> + <th>Example</th> + </tr> + + <tr> + <td class="td"><strong>required</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element is empty.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>matches</strong></td> + <td class="td">Yes</td> + <td class="td">Returns FALSE if the form element does not match the one in the parameter.</td> + <td class="td">matches[form_item]</td> + </tr> + + <tr> + <td class="td"><strong>is_unique</strong></td> + <td class="td">Yes</td> + <td class="td">Returns FALSE if the form element is not unique to the table and field name in the parameter.</td> + <td class="td">is_unique[table.field]</td> + </tr> + + <tr> + <td class="td"><strong>min_length</strong></td> + <td class="td">Yes</td> + <td class="td">Returns FALSE if the form element is shorter then the parameter value.</td> + <td class="td">min_length[6]</td> + </tr> + + <tr> + <td class="td"><strong>max_length</strong></td> + <td class="td">Yes</td> + <td class="td">Returns FALSE if the form element is longer then the parameter value.</td> + <td class="td">max_length[12]</td> + </tr> + + <tr> + <td class="td"><strong>exact_length</strong></td> + <td class="td">Yes</td> + <td class="td">Returns FALSE if the form element is not exactly the parameter value.</td> + <td class="td">exact_length[8]</td> + </tr> + + <tr> + <td class="td"><strong>greater_than</strong></td> + <td class="td">Yes</td> + <td class="td">Returns FALSE if the form element is less than the parameter value or not numeric.</td> + <td class="td">greater_than[8]</td> + </tr> + + <tr> + <td class="td"><strong>less_than</strong></td> + <td class="td">Yes</td> + <td class="td">Returns FALSE if the form element is greater than the parameter value or not numeric.</td> + <td class="td">less_than[8]</td> + </tr> + + <tr> + <td class="td"><strong>alpha</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element contains anything other than alphabetical characters.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>alpha_numeric</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element contains anything other than alpha-numeric characters.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>alpha_dash</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element contains anything other than alpha-numeric characters, underscores or dashes.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>numeric</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element contains anything other than numeric characters.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>integer</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element contains anything other than an integer.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>decimal</strong></td> + <td class="td">Yes</td> + <td class="td">Returns FALSE if the form element is not exactly the parameter value.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>is_natural</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element contains anything other than a natural number: 0, 1, 2, 3, etc.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>is_natural_no_zero</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element contains anything other than a natural number, but not zero: 1, 2, 3, etc.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>valid_email</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the form element does not contain a valid email address.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>valid_emails</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if any value provided in a comma separated list is not a valid email.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>valid_ip</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the supplied IP is not valid. Accepts an optional parameter of "IPv4" or "IPv6" to specify an IP format.</td> + <td class="td">&nbsp;</td> + </tr> + + <tr> + <td class="td"><strong>valid_base64</strong></td> + <td class="td">No</td> + <td class="td">Returns FALSE if the supplied string contains anything other than valid Base64 characters.</td> + <td class="td">&nbsp;</td> + </tr> + + +</table> + +<p><strong>Note:</strong> These rules can also be called as discrete functions. For example:</p> + +<code>$this->form_validation->required($string);</code> + +<p class="important"><strong>Note:</strong> You can also use any native PHP functions that permit one parameter.</p> + + + +<p>&nbsp;</p> + +<a name="preppingreference"></a> +<h1>Prepping Reference</h1> + +<p>The following is a list of all the prepping functions that are available to use:</p> + + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> + <tr> + <th>Name</th> + <th>Parameter</th> + <th>Description</th> + </tr><tr> + + <td class="td"><strong>xss_clean</strong></td> + <td class="td">No</td> + <td class="td">Runs the data through the XSS filtering function, described in the <a href="input.html">Input Class</a> page.</td> + </tr><tr> + + <td class="td"><strong>prep_for_form</strong></td> + <td class="td">No</td> + <td class="td">Converts special characters so that HTML data can be shown in a form field without breaking it.</td> + </tr><tr> + + <td class="td"><strong>prep_url</strong></td> + <td class="td">No</td> + <td class="td">Adds "http://" to URLs if missing.</td> + </tr><tr> + + <td class="td"><strong>strip_image_tags</strong></td> + <td class="td">No</td> + <td class="td">Strips the HTML from image tags leaving the raw URL.</td> + </tr><tr> + + <td class="td"><strong>encode_php_tags</strong></td> + <td class="td">No</td> + <td class="td">Converts PHP tags to entities.</td> + </tr> + +</table> + +<p class="important"><strong>Note:</strong> You can also use any native PHP functions that permit one parameter, +like <kbd>trim</kbd>, <kbd>htmlspecialchars</kbd>, <kbd>urldecode</kbd>, etc.</p> + + + + + + + +<p>&nbsp;</p> + +<a name="functionreference"></a> +<h1>Function Reference</h1> + +<p>The following functions are intended for use in your controller functions.</p> + +<h2>$this->form_validation->set_rules();</h2> + +<p>Permits you to set validation rules, as described in the tutorial sections above:</p> + +<ul> +<li><a href="#validationrules">Setting Validation Rules</a></li> +<li><a href="#savingtoconfig">Saving Groups of Validation Rules to a Config File</a></li> +</ul> + + +<h2>$this->form_validation->run();</h2> + +<p>Runs the validation routines. Returns boolean TRUE on success and FALSE on failure. You can optionally pass the name of the validation +group via the function, as described in: <a href="#savingtoconfig">Saving Groups of Validation Rules to a Config File</a>.</p> + + +<h2>$this->form_validation->set_message();</h2> + +<p>Permits you to set custom error messages. See <a href="#settingerrors">Setting Error Messages</a> above.</p> + + +<p>&nbsp;</p> + +<a name="helperreference"></a> +<h1>Helper Reference</h1> + +<p>The following helper functions are available for use in the view files containing your forms. Note that these are procedural functions, so they +<strong>do not</strong> require you to prepend them with $this->form_validation.</p> + +<h2>form_error()</h2> + +<p>Shows an individual error message associated with the field name supplied to the function. Example:</p> + +<code>&lt;?php echo form_error('username'); ?></code> + +<p>The error delimiters can be optionally specified. See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p> + + + +<h2>validation_errors()</h2> +<p>Shows all error messages as a string: Example:</p> + +<code>&lt;?php echo validation_errors(); ?></code> + +<p>The error delimiters can be optionally specified. See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p> + + + +<h2>set_value()</h2> + +<p>Permits you to set the value of an input form or textarea. You must supply the field name via the first parameter of the function. +The second (optional) parameter allows you to set a default value for the form. Example:</p> + +<code>&lt;input type="text" name="quantity" value="<dfn>&lt;?php echo set_value('quantity', '0'); ?></dfn>" size="50" /></code> + +<p>The above form will show "0" when loaded for the first time.</p> + +<h2>set_select()</h2> + +<p>If you use a <dfn>&lt;select></dfn> menu, this function permits you to display the menu item that was selected. The first parameter +must contain the name of the select menu, the second parameter must contain the value of +each item, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE).</p> + +<p>Example:</p> + +<code> +&lt;select name="myselect"><br /> +&lt;option value="one" <dfn>&lt;?php echo set_select('myselect', 'one', TRUE); ?></dfn> >One&lt;/option><br /> +&lt;option value="two" <dfn>&lt;?php echo set_select('myselect', 'two'); ?></dfn> >Two&lt;/option><br /> +&lt;option value="three" <dfn>&lt;?php echo set_select('myselect', 'three'); ?></dfn> >Three&lt;/option><br /> +&lt;/select> +</code> + + +<h2>set_checkbox()</h2> + +<p>Permits you to display a checkbox in the state it was submitted. The first parameter +must contain the name of the checkbox, the second parameter must contain its value, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE). Example:</p> + +<code>&lt;input type="checkbox" name="mycheck[]" value="1" <dfn>&lt;?php echo set_checkbox('mycheck[]', '1'); ?></dfn> /><br /> +&lt;input type="checkbox" name="mycheck[]" value="2" <dfn>&lt;?php echo set_checkbox('mycheck[]', '2'); ?></dfn> /></code> + + +<h2>set_radio()</h2> + +<p>Permits you to display radio buttons in the state they were submitted. This function is identical to the <strong>set_checkbox()</strong> function above.</p> + +<code>&lt;input type="radio" name="myradio" value="1" <dfn>&lt;?php echo set_radio('myradio', '1', TRUE); ?></dfn> /><br /> +&lt;input type="radio" name="myradio" value="2" <dfn>&lt;?php echo set_radio('myradio', '2'); ?></dfn> /></code> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="file_uploading.html">File Uploading Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="ftp.html">FTP Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/ftp.html b/user_guide/libraries/ftp.html new file mode 100755 index 0000000..67c0ce7 --- /dev/null +++ b/user_guide/libraries/ftp.html @@ -0,0 +1,315 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>FTP Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +FTP Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>FTP Class</h1> + +<p>CodeIgniter's FTP Class permits files to be transfered to a remote server. Remote files can also be moved, renamed, +and deleted. The FTP class also includes a "mirroring" function that permits an entire local directory to be recreated remotely via FTP.</p> + +<p class="important"><strong>Note:</strong>&nbsp; SFTP and SSL FTP protocols are not supported, only standard FTP.</p> + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the FTP class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('ftp');</code> +<p>Once loaded, the FTP object will be available using: <dfn>$this->ftp</dfn></p> + + +<h2>Usage Examples</h2> + +<p>In this example a connection is opened to the FTP server, and a local file is read and uploaded in ASCII mode. The +file permissions are set to 755.</p> + +<code> +$this->load->library('ftp');<br /> +<br /> +$config['hostname'] = 'ftp.example.com';<br /> +$config['username'] = 'your-username';<br /> +$config['password'] = 'your-password';<br /> +$config['debug'] = TRUE;<br /> +<br /> +$this->ftp->connect($config);<br /> +<br /> +$this->ftp->upload('/local/path/to/myfile.html', '/public_html/myfile.html', 'ascii', 0775);<br /> +<br /> +$this->ftp->close(); + +</code> + + +<p>In this example a list of files is retrieved from the server.</p> + +<code> +$this->load->library('ftp');<br /> +<br /> +$config['hostname'] = 'ftp.example.com';<br /> +$config['username'] = 'your-username';<br /> +$config['password'] = 'your-password';<br /> +$config['debug'] = TRUE;<br /> +<br /> +$this->ftp->connect($config);<br /> +<br /> +$list = $this->ftp->list_files('/public_html/');<br /> +<br /> +print_r($list);<br /> +<br /> +$this->ftp->close(); +</code> + +<p>In this example a local directory is mirrored on the server.</p> + + +<code> +$this->load->library('ftp');<br /> +<br /> +$config['hostname'] = 'ftp.example.com';<br /> +$config['username'] = 'your-username';<br /> +$config['password'] = 'your-password';<br /> +$config['debug'] = TRUE;<br /> +<br /> +$this->ftp->connect($config);<br /> +<br /> +$this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/');<br /> +<br /> +$this->ftp->close(); +</code> + + +<h1>Function Reference</h1> + +<h2>$this->ftp->connect()</h2> + +<p>Connects and logs into to the FTP server. Connection preferences are set by passing an array +to the function, or you can store them in a config file.</p> + + +<p>Here is an example showing how you set preferences manually:</p> + +<code> +$this->load->library('ftp');<br /> +<br /> +$config['hostname'] = 'ftp.example.com';<br /> +$config['username'] = 'your-username';<br /> +$config['password'] = 'your-password';<br /> +$config['port']&nbsp;&nbsp;&nbsp;&nbsp; = 21;<br /> +$config['passive']&nbsp;&nbsp;= FALSE;<br /> +$config['debug']&nbsp;&nbsp;&nbsp;&nbsp;= TRUE;<br /> +<br /> +$this->ftp->connect($config);<br /> +</code> + +<h3>Setting FTP Preferences in a Config File</h3> + +<p>If you prefer you can store your FTP preferences in a config file. +Simply create a new file called the <var>ftp.php</var>, add the <var>$config</var> +array in that file. Then save the file at <var>config/ftp.php</var> and it will be used automatically.</p> + +<h3>Available connection options:</h3> + + +<ul> +<li><strong>hostname</strong> - the FTP hostname. Usually something like:&nbsp; <dfn>ftp.example.com</dfn></li> +<li><strong>username</strong> - the FTP username.</li> +<li><strong>password</strong> - the FTP password.</li> +<li><strong>port</strong> - The port number. Set to <dfn>21</dfn> by default.</li> +<li><strong>debug</strong> - <kbd>TRUE/FALSE</kbd> (boolean). Whether to enable debugging to display error messages.</li> +<li><strong>passive</strong> - <kbd>TRUE/FALSE</kbd> (boolean). Whether to use passive mode. Passive is set automatically by default.</li> +</ul> + + + +<h2>$this->ftp->upload()</h2> + +<p>Uploads a file to your server. You must supply the local path and the remote path, and you can optionally set the mode and permissions. +Example:</p> + + +<code>$this->ftp->upload('/local/path/to/myfile.html', '/public_html/myfile.html', 'ascii', 0775);</code> + +<p><strong>Mode options are:</strong>&nbsp; <kbd>ascii</kbd>, <kbd>binary</kbd>, and <kbd>auto</kbd> (the default). If +<kbd>auto</kbd> is used it will base the mode on the file extension of the source file.</p> + +<p>Permissions can be passed as an <kbd>octal</kbd> value in the fourth parameter.</p> + +<h2>$this->ftp->download()</h2> + +<p>Downloads a file from your server. You must supply the remote path and the local path, and you can optionally set the mode. +Example:</p> + +<code>$this->ftp->download('/public_html/myfile.html', '/local/path/to/myfile.html', 'ascii');</code> + +<p><strong>Mode options are:</strong>&nbsp; <kbd>ascii</kbd>, <kbd>binary</kbd>, and <kbd>auto</kbd> (the default). If +<kbd>auto</kbd> is used it will base the mode on the file extension of the source file.</p> + +<p>Returns FALSE if the download does not execute successfully (including if PHP does not have permission to write the local file)</p> + + +<h2>$this->ftp->rename()</h2> +<p>Permits you to rename a file. Supply the source file name/path and the new file name/path.</p> + +<code> +// Renames green.html to blue.html<br /> +$this->ftp->rename('/public_html/foo/green.html', '/public_html/foo/blue.html'); +</code> + +<h2>$this->ftp->move()</h2> +<p>Lets you move a file. Supply the source and destination paths:</p> + +<code> +// Moves blog.html from "joe" to "fred"<br /> +$this->ftp->move('/public_html/joe/blog.html', '/public_html/fred/blog.html'); +</code> + +<p>Note: if the destination file name is different the file will be renamed.</p> + + +<h2>$this->ftp->delete_file()</h2> +<p>Lets you delete a file. Supply the source path with the file name.</p> + +<code> +$this->ftp->delete_file('/public_html/joe/blog.html'); +</code> + + +<h2>$this->ftp->delete_dir()</h2> +<p>Lets you delete a directory and everything it contains. Supply the source path to the directory with a trailing slash.</p> + +<p class="important"><strong>Important</strong>&nbsp; Be VERY careful with this function. It will recursively delete +<b>everything</b> within the supplied path, including sub-folders and all files. Make absolutely sure your path is correct. +Try using the <kbd>list_files()</kbd> function first to verify that your path is correct.</p> + +<code> +$this->ftp->delete_dir('/public_html/path/to/folder/'); +</code> + + + +<h2>$this->ftp->list_files()</h2> +<p>Permits you to retrieve a list of files on your server returned as an <dfn>array</dfn>. You must supply +the path to the desired directory.</p> + +<code> +$list = $this->ftp->list_files('/public_html/');<br /> +<br /> +print_r($list); +</code> + + +<h2>$this->ftp->mirror()</h2> + +<p>Recursively reads a local folder and everything it contains (including sub-folders) and creates a +mirror via FTP based on it. Whatever the directory structure of the original file path will be recreated on the server. +You must supply a source path and a destination path:</p> + +<code> +$this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/'); +</code> + + + +<h2>$this->ftp->mkdir()</h2> + +<p>Lets you create a directory on your server. Supply the path ending in the folder name you wish to create, with a trailing slash. +Permissions can be set by passed an <kbd>octal</kbd> value in the second parameter.</p> + +<code> +// Creates a folder named "bar"<br /> +$this->ftp->mkdir('/public_html/foo/bar/', DIR_WRITE_MODE); +</code> + + +<h2>$this->ftp->chmod()</h2> + +<p>Permits you to set file permissions. Supply the path to the file or folder you wish to alter permissions on:</p> + +<code> +// Chmod "bar" to 777<br /> +$this->ftp->chmod('/public_html/foo/bar/', DIR_WRITE_MODE); +</code> + + + + +<h2>$this->ftp->close();</h2> +<p>Closes the connection to your server. It's recommended that you use this when you are finished uploading.</p> + + + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="form_validation.html">Form Validation Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="table.html">HTML Table Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/image_lib.html b/user_guide/libraries/image_lib.html new file mode 100755 index 0000000..4f01bde --- /dev/null +++ b/user_guide/libraries/image_lib.html @@ -0,0 +1,667 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Image Manipulation Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Image Manipulation Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Image Manipulation Class</h1> + +<p>CodeIgniter's Image Manipulation class lets you perform the following actions:</p> + +<ul> +<li>Image Resizing</li> +<li>Thumbnail Creation</li> +<li>Image Cropping</li> +<li>Image Rotating</li> +<li>Image Watermarking</li> +</ul> + +<p>All three major image libraries are supported: GD/GD2, NetPBM, and ImageMagick</p> + +<p class="important"><strong>Note:</strong> Watermarking is only available using the GD/GD2 library. +In addition, even though other libraries are supported, GD is required in +order for the script to calculate the image properties. The image processing, however, will be performed with the +library you specify.</p> + + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the image class is initialized in your controller +using the <dfn>$this->load-&gt;library</dfn> function:</p> +<code>$this->load->library('image_lib');</code> + +<p>Once the library is loaded it will be ready for use. The image library object you will use to call all functions is: <dfn>$this->image_lib</dfn></p> + + +<h2>Processing an Image</h2> + +<p>Regardless of the type of processing you would like to perform (resizing, cropping, rotation, or watermarking), the general process is +identical. You will set some preferences corresponding to the action you intend to perform, then +call one of four available processing functions. For example, to create an image thumbnail you'll do this:</p> + +<code>$config['image_library'] = 'gd2';<br /> +$config['source_image'] = '/path/to/image/mypic.jpg';<br /> +$config['create_thumb'] = TRUE;<br /> +$config['maintain_ratio'] = TRUE;<br /> +$config['width'] = 75;<br /> +$config['height'] = 50;<br /> +<br /> +$this->load->library('image_lib', $config); +<br /> +<br /> +$this->image_lib->resize();</code> + +<p>The above code tells the <dfn>image_resize</dfn> function to look for an image called <em>mypic.jpg</em> +located in the <dfn>source_image</dfn> folder, then create a thumbnail that is 75 X 50 pixels using the GD2 <dfn>image_library</dfn>. +Since the <dfn>maintain_ratio</dfn> option is enabled, the thumb will be as close to the target <dfn>width</dfn> and +<dfn>height</dfn> as possible while preserving the original aspect ratio. The thumbnail will be called <em>mypic_thumb.jpg</em> +</p> + +<p class="important"><strong>Note:</strong> In order for the image class to be allowed to do any processing, the +folder containing the image files must have write permissions.</p> + +<p class="important"><strong>Note:</strong> Image processing can require a considerable amount of server memory for some operations. If you are experiencing out of memory errors while processing images you may need to limit their maximum size, and/or adjust PHP memory limits.</p> + +<h2>Processing Functions</h2> + +<p>There are four available processing functions:</p> + +<ul> +<li>$this->image_lib->resize()</li> +<li>$this->image_lib->crop()</li> +<li>$this->image_lib->rotate()</li> +<li>$this->image_lib->watermark()</li> +<li>$this-&gt;image_lib-&gt;clear()</li> +</ul> + +<p>These functions return boolean TRUE upon success and FALSE for failure. If they fail you can retrieve the +error message using this function:</p> + +<code>echo $this->image_lib->display_errors();</code> + +<p>A good practice is use the processing function conditionally, showing an error upon failure, like this:</p> + +<code>if ( ! $this->image_lib->resize())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $this->image_lib->display_errors();<br /> +}</code> + +<p>Note: You can optionally specify the HTML formatting to be applied to the errors, by submitting the opening/closing +tags in the function, like this:</p> + +<code>$this->image_lib->display_errors('<var>&lt;p></var>', '<var>&lt;/p></var>');</code> + + +<h2>Preferences</h2> + +<p>The preferences described below allow you to tailor the image processing to suit your needs.</p> + +<p>Note that not all preferences are available for every +function. For example, the x/y axis preferences are only available for image cropping. Likewise, the width and height +preferences have no effect on cropping. The "availability" column indicates which functions support a given preference.</p> + +<p>Availability Legend:</p> + +<ul> +<li><var>R</var> - Image Resizing</li> +<li><var>C</var> - Image Cropping</li> +<li><var>X</var> - Image Rotation</li> +<li><var>W</var> - Image Watermarking</li> + +</ul> + + + + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +<th>Availability</th> +</tr> + +<tr> +<td class="td"><strong>image_library</strong></td> +<td class="td">GD2</td> +<td class="td">GD, GD2, ImageMagick, NetPBM</td> +<td class="td">Sets the image library to be used.</td> +<td class="td">R, C, X, W</td> +</tr> + +<tr> +<td class="td"><strong>library_path</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">Sets the server path to your ImageMagick or NetPBM library. If you use either of those libraries you must supply the path.</td> +<td class="td">R, C, X</td> +</tr> + +<tr> +<td class="td"><strong>source_image</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">Sets the source image name/path. The path must be a relative or absolute server path, not a URL.</td> +<td class="td">R, C, S, W</td> +</tr> + +<tr> +<td class="td"><strong>dynamic_output</strong></td> +<td class="td">FALSE</td> +<td class="td">TRUE/FALSE (boolean)</td> +<td class="td">Determines whether the new image file should be written to disk or generated dynamically. Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td> +<td class="td">R, C, X, W</td> +</tr> + + +<tr> +<td class="td"><strong>quality</strong></td> +<td class="td">90%</td> +<td class="td">1 - 100%</td> +<td class="td">Sets the quality of the image. The higher the quality the larger the file size.</td> +<td class="td">R, C, X, W</td> +</tr> + + +<tr> +<td class="td"><strong>new_image</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">Sets the destination image name/path. You'll use this preference when creating an image copy. The path must be a relative or absolute server path, not a URL.</td> +<td class="td">R, C, X, W</td> +</tr> + +<tr> +<td class="td"><strong>width</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">Sets the width you would like the image set to.</td> +<td class="td">R, C </td> +</tr> + +<tr> +<td class="td"><strong>height</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">Sets the height you would like the image set to.</td> +<td class="td">R, C </td> +</tr> + +<tr> +<td class="td"><strong>create_thumb</strong></td> +<td class="td">FALSE</td> +<td class="td">TRUE/FALSE (boolean)</td> +<td class="td">Tells the image processing function to create a thumb.</td> +<td class="td">R</td> +</tr> + +<tr> +<td class="td"><strong>thumb_marker</strong></td> +<td class="td">_thumb</td> +<td class="td">None</td> +<td class="td">Specifies the thumbnail indicator. It will be inserted just before the file extension, so mypic.jpg would become mypic_thumb.jpg</td> +<td class="td">R</td> +</tr> + +<tr> +<td class="td"><strong>maintain_ratio</strong></td> +<td class="td">TRUE</td> +<td class="td">TRUE/FALSE (boolean)</td> +<td class="td">Specifies whether to maintain the original aspect ratio when resizing or use hard values.</td> +<td class="td">R, C</td> +</tr> + + +<tr> +<td class="td"><strong>master_dim</strong></td> +<td class="td">auto</td> +<td class="td">auto, width, height</td> +<td class="td">Specifies what to use as the master axis when resizing or creating thumbs. For example, let's say you want to resize an image to 100 X 75 pixels. If the source image size does not allow perfect resizing to those dimensions, this setting determines which axis should be used as the hard value. "auto" sets the axis automatically based on whether the image is taller then wider, or vice versa.</td> +<td class="td">R</td> +</tr> + + + + +<tr> +<td class="td"><strong>rotation_angle</strong></td> +<td class="td">None</td> +<td class="td">90, 180, 270, vrt, hor</td> +<td class="td">Specifies the angle of rotation when rotating images. Note that PHP rotates counter-clockwise, so a 90 degree rotation to the right must be specified as 270.</td> +<td class="td">X</td> +</tr> + +<tr> +<td class="td"><strong>x_axis</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">Sets the X coordinate in pixels for image cropping. For example, a setting of 30 will crop an image 30 pixels from the left.</td> +<td class="td">C</td> +</tr> +<tr> +<td class="td"><strong>y_axis</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">Sets the Y coordinate in pixels for image cropping. For example, a setting of 30 will crop an image 30 pixels from the top.</td> +<td class="td">C</td> +</tr> + +</table> + + +<h2>Setting preferences in a config file</h2> + +<p>If you prefer not to set preferences using the above method, you can instead put them into a config file. +Simply create a new file called <var>image_lib.php</var>, add the <var>$config</var> +array in that file. Then save the file in: <var>config/image_lib.php</var> and it will be used automatically. You +will NOT need to use the <dfn>$this->image_lib->initialize</dfn> function if you save your preferences in a config file.</p> + + +<h2>$this->image_lib->resize()</h2> + +<p>The image resizing function lets you resize the original image, create a copy (with or without resizing), +or create a thumbnail image.</p> + +<p>For practical purposes there is no difference between creating a copy and creating +a thumbnail except a thumb will have the thumbnail marker as part of the name (ie, mypic_thumb.jpg).</p> + +<p>All preferences listed in the table above are available for this function except these three: rotation_angle, x_axis, and y_axis.</p> + +<h3>Creating a Thumbnail</h3> + +<p>The resizing function will create a thumbnail file (and preserve the original) if you set this preference to TRUE:</p> + +<code>$config['create_thumb'] = TRUE;</code> + +<p>This single preference determines whether a thumbnail is created or not.</p> + +<h3>Creating a Copy</h3> + +<p>The resizing function will create a copy of the image file (and preserve the original) if you set +a path and/or a new filename using this preference:</p> + +<code>$config['new_image'] = '/path/to/new_image.jpg';</code> + +<p>Notes regarding this preference:</p> +<ul> +<li>If only the new image name is specified it will be placed in the same folder as the original</li> +<li>If only the path is specified, the new image will be placed in the destination with the same name as the original.</li> +<li>If both the path and image name are specified it will placed in its own destination and given the new name.</li> +</ul> + + +<h3>Resizing the Original Image</h3> + +<p>If neither of the two preferences listed above (create_thumb, and new_image) are used, the resizing function will instead +target the original image for processing.</p> + + +<h2>$this->image_lib->crop()</h2> + +<p>The cropping function works nearly identically to the resizing function except it requires that you set +preferences for the X and Y axis (in pixels) specifying where to crop, like this:</p> + +<code>$config['x_axis'] = '100';<br /> +$config['y_axis'] = '40';</code> + +<p>All preferences listed in the table above are available for this function except these: rotation_angle, width, height, create_thumb, new_image.</p> + +<p>Here's an example showing how you might crop an image:</p> + +<code>$config['image_library'] = 'imagemagick';<br /> +$config['library_path'] = '/usr/X11R6/bin/';<br /> +$config['source_image'] = '/path/to/image/mypic.jpg';<br /> +$config['x_axis'] = '100';<br /> +$config['y_axis'] = '60';<br /> +<br /> +$this->image_lib->initialize($config); +<br /> +<br /> +if ( ! $this->image_lib->crop())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $this->image_lib->display_errors();<br /> +}</code> + + +<p>Note: Without a visual interface it is difficult to crop images, so this function is not very useful +unless you intend to build such an interface. That's exactly what we did using for the photo +gallery module in ExpressionEngine, the CMS we develop. We added a JavaScript UI that lets the cropping +area be selected.</p> + +<h2>$this->image_lib->rotate()</h2> + +<p>The image rotation function requires that the angle of rotation be set via its preference:</p> + +<code>$config['rotation_angle'] = '90';</code> + +<p>There are 5 rotation options:</p> + +<ol> +<li>90 - rotates counter-clockwise by 90 degrees.</li> +<li>180 - rotates counter-clockwise by 180 degrees.</li> +<li>270 - rotates counter-clockwise by 270 degrees.</li> +<li>hor - flips the image horizontally.</li> +<li>vrt - flips the image vertically.</li> +</ol> + +<p>Here's an example showing how you might rotate an image:</p> + +<code>$config['image_library'] = 'netpbm';<br /> +$config['library_path'] = '/usr/bin/';<br /> +$config['source_image'] = '/path/to/image/mypic.jpg';<br /> +$config['rotation_angle'] = 'hor';<br /> +<br /> +$this->image_lib->initialize($config); +<br /> +<br /> +if ( ! $this->image_lib->rotate())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $this->image_lib->display_errors();<br /> +}</code> + + + +<h2>$this-&gt;image_lib-&gt;clear()</h2> +<p>The clear function resets all of the values used when processing an image. You will want to call this if you are processing images in a loop.</p> +<p><code>$this-&gt;image_lib-&gt;clear();</code></p> +<p>&nbsp;</p> +<h1>Image Watermarking</h1> + +<p>The Watermarking feature requires the GD/GD2 library.</p> + + +<h2>Two Types of Watermarking</h2> + +<p>There are two types of watermarking that you can use:</p> + +<ul> +<li><strong>Text</strong>: The watermark message will be generating using text, either with a True Type font that you specify, or +using the native text output that the GD library supports. If you use the True Type version your GD installation +must be compiled with True Type support (most are, but not all).</li> + +<li><strong>Overlay</strong>: The watermark message will be generated by overlaying an image (usually a transparent PNG or GIF) +containing your watermark over the source image.</li> + +</ul> + + +<h2>Watermarking an Image</h2> + +<p>Just as with the other functions (resizing, cropping, and rotating) the general process for watermarking +involves setting the preferences corresponding to the action you intend to perform, then +calling the watermark function. Here is an example:</p> + +<code> +$config['source_image'] = '/path/to/image/mypic.jpg';<br /> +$config['wm_text'] = 'Copyright 2006 - John Doe';<br /> +$config['wm_type'] = 'text';<br /> +$config['wm_font_path'] = './system/fonts/texb.ttf';<br /> +$config['wm_font_size'] = '16';<br /> +$config['wm_font_color'] = 'ffffff';<br /> +$config['wm_vrt_alignment'] = 'bottom';<br /> +$config['wm_hor_alignment'] = 'center';<br /> +$config['wm_padding'] = '20';<br /> +<br /> +$this->image_lib->initialize($config); +<br /> +<br /> +$this->image_lib->watermark();</code> + + +<p>The above example will use a 16 pixel True Type font to create the text "Copyright 2006 - John Doe". The watermark +will be positioned at the bottom/center of the image, 20 pixels from the bottom of the image.</p> + +<p class="important"><strong>Note:</strong> In order for the image class to be allowed to do any processing, the image file must have &quot;write&quot; file permissions. For example, 777.</p> + + +<h2>Watermarking Preferences</h2> + +<p>This table shown the preferences that are available for both types of watermarking (text or overlay)</p> + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +</tr> + +<tr> +<td class="td"><strong>wm_type</strong></td> +<td class="td">text</td> +<td class="td">text, overlay</td> +<td class="td">Sets the type of watermarking that should be used.</td> +</tr> + +<tr> +<td class="td"><strong>source_image</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">Sets the source image name/path. The path must be a relative or absolute server path, not a URL.</td> +</tr> + +<tr> +<td class="td"><strong>dynamic_output</strong></td> +<td class="td">FALSE</td> +<td class="td">TRUE/FALSE (boolean)</td> +<td class="td">Determines whether the new image file should be written to disk or generated dynamically. Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td> +</tr> + +<tr> +<td class="td"><strong>quality</strong></td> +<td class="td">90%</td> +<td class="td">1 - 100%</td> +<td class="td">Sets the quality of the image. The higher the quality the larger the file size.</td> +</tr> + +<tr> +<td class="td"><strong>padding</strong></td> +<td class="td">None</td> +<td class="td">A number</td> +<td class="td">The amount of padding, set in pixels, that will be applied to the watermark to set it away from the edge of your images.</td> +</tr> + +<tr> +<td class="td"><strong>wm_vrt_alignment</strong></td> +<td class="td">bottom</td> +<td class="td">top, middle, bottom</td> +<td class="td">Sets the vertical alignment for the watermark image.</td> +</tr> + +<tr> +<td class="td"><strong>wm_hor_alignment</strong></td> +<td class="td">center</td> +<td class="td">left, center, right</td> +<td class="td">Sets the horizontal alignment for the watermark image.</td> +</tr> + +<tr> +<td class="td"><strong>wm_hor_offset</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">You may specify a horizontal offset (in pixels) to apply to the watermark position. The offset normally moves the watermark to the right, except if you have your alignment set to "right" then your offset value will move the watermark toward the left of the image.</td> +</tr> + +<tr> +<td class="td"><strong>wm_vrt_offset</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">You may specify a vertical offset (in pixels) to apply to the watermark position. The offset normally moves the watermark down, except if you have your alignment set to "bottom" then your offset value will move the watermark toward the top of the image.</td> +</tr> + +</table> + + + +<h3>Text Preferences</h3> +<p>This table shown the preferences that are available for the text type of watermarking.</p> + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +</tr> + +<tr> +<td class="td"><strong>wm_text</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">The text you would like shown as the watermark. Typically this will be a copyright notice.</td> +</tr> + +<tr> +<td class="td"><strong>wm_font_path</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">The server path to the True Type Font you would like to use. If you do not use this option, the native GD font will be used.</td> +</tr> + +<tr> +<td class="td"><strong>wm_font_size</strong></td> +<td class="td">16</td> +<td class="td">None</td> +<td class="td">The size of the text. Note: If you are not using the True Type option above, the number is set using a range of 1 - 5. Otherwise, you can use any valid pixel size for the font you're using.</td> +</tr> + +<tr> +<td class="td"><strong>wm_font_color</strong></td> +<td class="td">ffffff</td> +<td class="td">None</td> +<td class="td">The font color, specified in hex. Note, you must use the full 6 character hex value (ie, 993300), rather than the three character abbreviated version (ie fff).</td> +</tr> + + +<tr> +<td class="td"><strong>wm_shadow_color</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">The color of the drop shadow, specified in hex. If you leave this blank a drop shadow will not be used. Note, you must use the full 6 character hex value (ie, 993300), rather than the three character abbreviated version (ie fff).</td> +</tr> + +<tr> +<td class="td"><strong>wm_shadow_distance</strong></td> +<td class="td">3</td> +<td class="td">None</td> +<td class="td">The distance (in pixels) from the font that the drop shadow should appear.</td> +</tr> + +</table> + + + + +<h3>Overlay Preferences</h3> +<p>This table shown the preferences that are available for the overlay type of watermarking.</p> + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +</tr> + +<tr> +<td class="td"><strong>wm_overlay_path</strong></td> +<td class="td">None</td> +<td class="td">None</td> +<td class="td">The server path to the image you wish to use as your watermark. Required only if you are using the overlay method.</td> +</tr> + +<tr> +<td class="td"><strong>wm_opacity</strong></td> +<td class="td">50</td> +<td class="td">1 - 100</td> +<td class="td">Image opacity. You may specify the opacity (i.e. transparency) of your watermark image. This allows the watermark to be faint and not completely obscure the details from the original image behind it. A 50% opacity is typical.</td> +</tr> + +<tr> +<td class="td"><strong>wm_x_transp</strong></td> +<td class="td">4</td> +<td class="td">A number</td> +<td class="td">If your watermark image is a PNG or GIF image, you may specify a color on the image to be "transparent". This setting (along with the next) will allow you to specify that color. This works by specifying the "X" and "Y" coordinate pixel (measured from the upper left) within the image that corresponds to a pixel representative of the color you want to be transparent.</td> +</tr> + +<tr> +<td class="td"><strong>wm_y_transp</strong></td> +<td class="td">4</td> +<td class="td">A number</td> +<td class="td">Along with the previous setting, this allows you to specify the coordinate to a pixel representative of the color you want to be transparent.</td> +</tr> +</table> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="table.html">HTML Table Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="input.html">Input Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/input.html b/user_guide/libraries/input.html new file mode 100755 index 0000000..f5049e1 --- /dev/null +++ b/user_guide/libraries/input.html @@ -0,0 +1,295 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Input Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Input Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Input Class</h1> + +<p>The Input Class serves two purposes:</p> + +<ol> +<li>It pre-processes global input data for security.</li> +<li>It provides some helper functions for fetching input data and pre-processing it.</li> +</ol> + +<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> + + +<h2>Security Filtering</h2> + +<p>The security filtering function is called automatically when a new <a href="../general/controllers.html">controller</a> is invoked. It does the following:</p> + +<ul> +<li>If $config['allow_get_array'] is FALSE(default is TRUE), destroys the global GET array.</li> +<li>Destroys all global variables in the event register_globals is turned on.</li> +<li>Filters the GET/POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters.</li> +<li>Provides XSS (Cross-site Scripting Hacks) filtering. This can be enabled globally, or upon request.</li> +<li>Standardizes newline characters to \n(In Windows \r\n)</li> +</ul> + + +<h2>XSS Filtering</h2> + +<p>The Input class has the ability to filter input automatically to prevent cross-site scripting attacks. If you want the filter to run automatically every time it encounters POST or COOKIE data you can enable it by opening your +<kbd>application/config/config.php</kbd> file and setting this:</p> + +<code>$config['global_xss_filtering'] = TRUE;</code> + +<p>Please refer to the <a href="security.html">Security class</a> documentation for information on using XSS Filtering in your application.</p> + + +<h2>Using POST, COOKIE, or SERVER Data</h2> + +<p>CodeIgniter comes with three helper functions that let you fetch POST, COOKIE or SERVER items. The main advantage of using the provided +functions rather than fetching an item directly ($_POST['something']) is that the functions will check to see if the item is set and +return false (boolean) if not. This lets you conveniently use data without having to test whether an item exists first. +In other words, normally you might do something like this:</p> + +<code> +if ( ! isset($_POST['something']))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$something = FALSE;<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$something = $_POST['something'];<br /> +}</code> + +<p>With CodeIgniter's built in functions you can simply do this:</p> + +<code>$something = $this->input->post('something');</code> + +<p>The three functions are:</p> + +<ul> +<li>$this->input->post()</li> +<li>$this->input->cookie()</li> +<li>$this->input->server()</li> +</ul> + +<h2>$this->input->post()</h2> + +<p>The first parameter will contain the name of the POST item you are looking for:</p> + +<code>$this->input->post('some_data');</code> + +<p>The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.</p> + +<p>The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;</p> + +<code>$this->input->post('some_data', TRUE);</code> + +<p>To return an array of all POST items call without any parameters.</p> +<p>To return all POST items and pass them through the XSS filter set the first parameter NULL while setting the second parameter to boolean;</p> +<p>The function returns FALSE (boolean) if there are no items in the POST.</p> + +<code> + $this->input->post(NULL, TRUE); // returns all POST items with XSS filter + <br /> + $this->input->post(); // returns all POST items without XSS filter +</code> + +<h2>$this->input->get()</h2> + +<p>This function is identical to the post function, only it fetches get data:</p> + +<code>$this->input->get('some_data', TRUE);</code> + +<p>To return an array of all GET items call without any parameters.</p> +<p>To return all GET items and pass them through the XSS filter set the first parameter NULL while setting the second parameter to boolean;</p> +<p>The function returns FALSE (boolean) if there are no items in the GET.</p> + +<code> + $this->input->get(NULL, TRUE); // returns all GET items with XSS filter + <br /> + $this->input->get(); // returns all GET items without XSS filtering +</code> + +<h2>$this->input->get_post()</h2> + +<p>This function will search through both the post and get streams for data, looking first in post, and then in get:</p> + +<code>$this->input->get_post('some_data', TRUE);</code> + +<h2>$this->input->cookie()</h2> + +<p>This function is identical to the post function, only it fetches cookie data:</p> + +<code>$this->input->cookie('some_data', TRUE);</code> + +<h2>$this->input->server()</h2> + +<p>This function is identical to the above functions, only it fetches server data:</p> + +<code>$this->input->server('some_data');</code> + + +<h2>$this->input->set_cookie()</h2> + +<p>Sets a cookie containing the values you specify. There are two ways to pass information to this function so that a cookie can be set: +Array Method, and Discrete Parameters:</p> + +<h4>Array Method</h4> + +<p>Using this method, an associative array is passed to the first parameter:</p> + +<code>$cookie = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'name'&nbsp;&nbsp;&nbsp;=> 'The Cookie Name',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'value'&nbsp;&nbsp;=> 'The Value',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'expire' => '86500',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'domain' => '.some-domain.com',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'path'&nbsp;&nbsp;&nbsp;=> '/',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'prefix' => 'myprefix_',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'secure' => TRUE<br /> +);<br /> +<br /> +$this->input->set_cookie($cookie); +</code> + +<p><strong>Notes:</strong></p> + +<p>Only the name and value are required. To delete a cookie set it with the expiration blank.</p> + +<p>The expiration is set in <strong>seconds</strong>, which will be added to the current time. Do not include the time, but rather only the +number of seconds from <em>now</em> that you wish the cookie to be valid. If the expiration is set to +zero the cookie will only last as long as the browser is open.</p> +<p>For site-wide cookies regardless of how your site is requested, add your URL to the <strong>domain</strong> starting with a period, like this: .your-domain.com</p> +<p>The path is usually not needed since the function sets a root path.</p> +<p>The prefix is only needed if you need to avoid name collisions with other identically named cookies for your server.</p> +<p>The secure boolean is only needed if you want to make it a secure cookie by setting it to TRUE.</p> + +<h4>Discrete Parameters</h4> + +<p>If you prefer, you can set the cookie by passing data using individual parameters:</p> + +<code>$this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure);</code> + +<h2>$this->input->cookie()</h2> + +<p>Lets you fetch a cookie. The first parameter will contain the name of the cookie you are looking for (including any prefixes):</p> + +<code>cookie('some_cookie');</code> + +<p>The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.</p> + +<p>The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;</p> + +<p><code>cookie('some_cookie', TRUE);</code></p> + + +<h2>$this->input->ip_address()</h2> +<p>Returns the IP address for the current user. If the IP address is not valid, the function will return an IP of: 0.0.0.0</p> +<code>echo $this->input->ip_address();</code> + + +<h2>$this->input->valid_ip(<var>$ip</var>)</h2> + +<p>Takes an IP address as input and returns TRUE or FALSE (boolean) if it is valid or not. Note: The $this->input->ip_address() function above +validates the IP automatically.</p> + +<code>if ( ! $this-&gt;input-&gt;valid_ip($ip))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp; echo 'Not Valid';<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp; echo 'Valid';<br /> +}</code> +<p>Accepts an optional second string parameter of "IPv4" or "IPv6" to specify an IP format. The default checks for both formats.</p> + +<h2>$this->input->user_agent()</h2> +<p>Returns the user agent (web browser) being used by the current user. Returns FALSE if it's not available.</p> +<code>echo $this->input->user_agent();</code> +<p>See the <a href="user_agent.html">User Agent Class</a> for methods which extract information from the user agent string.</p> + +<h2>$this->input->request_headers()</h2> +<p>Useful if running in a non-Apache environment where <a href="http://php.net/apache_request_headers">apache_request_headers()</a> will not be supported. Returns an array of headers.</p> + +<code>$headers = $this->input->request_headers();</code> + +<h2>$this->input->get_request_header();</h2> +<p>Returns a single member of the request headers array.</p> + +<code>$this->input->get_request_header('some-header', TRUE);</code> + + +<h2>$this->input->is_ajax_request()</h2> +<p>Checks to see if the <var>HTTP_X_REQUESTED_WITH</var> server header has been set, and returns a boolean response.</p> + + +<h2>$this->input->is_cli_request()</h2> +<p>Checks to see if the <var>STDIN</var> constant is set, which is a failsafe way to see if PHP is being run on the command line.</p> + +<code>$this->input->is_cli_request()</code> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="image_lib.html">Image Manipulation Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="loader.html">Loader Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/javascript.html b/user_guide/libraries/javascript.html new file mode 100755 index 0000000..f9d73f2 --- /dev/null +++ b/user_guide/libraries/javascript.html @@ -0,0 +1,247 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<title>JavaScript Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="../general/drivers.html">Drivers</a> &nbsp;&#8250;&nbsp; +JavaScript Driver +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<p class="important"><strong>Note:</strong> This driver is experimental. Its feature set and implementation may change in future releases.</p><br> + +<h1>Javascript Class</h1> +<p>CodeIgniter provides a library to help you with certain common functions that you may want to use with Javascript. Please note that CodeIgniter does not require the jQuery library to run, and that any scripting library will work equally well. The jQuery library is simply presented as a convenience if you choose to use it.</p> +<h2>Initializing the Class</h2> +<p>To initialize the Javascript class manually in your controller constructor, use the <dfn>$this-&gt;load-&gt;library</dfn> function. Currently, the only available library is jQuery, which will automatically be loaded like this:</p> + +<code>$this-&gt;load-&gt;library('javascript');</code> + +<p>The Javascript class also accepts parameters, <dfn>js_library_driver (string) default 'jquery'</dfn> and <dfn>autoload (bool) default TRUE</dfn>. You may override the defaults if you wish by sending an associative array:</p> + +<code>$this-&gt;load-&gt;library('javascript', array('js_library_driver' =&gt; 'scripto', 'autoload' =&gt; FALSE));</code> + +<p>Again, presently only 'jquery' is available. You may wish to set <dfn>autoload</dfn> to FALSE, though, if you do not want the jQuery library to automatically include a script tag for the main jQuery script file. This is useful if you are loading it from a location outside of CodeIgniter, or already have the script tag in your markup.</p> + +<p>Once loaded, the jQuery library object will be available using: <dfn>$this-&gt;javascript</dfn></p> +<h2>Setup and Configuration</h2> +<h3>Set these variables in your view</h3> +<p>As a Javascript library, your files must be available to your application.</p> +<p>As Javascript is a client side language, the library must be able to write content into your final output. This generally means a view. You'll need to include the following variables in the &lt;head&gt; sections of your output.</p> +<p><code>&lt;?php echo $library_src;?&gt;<br /> +&lt;?php echo $script_head;?&gt; +</code></p> +<p>$library_src, is where the actual library file will be loaded, as well as any subsequent plugin script calls; $script_head is where specific events, functions and other commands will be rendered.</p> +<h3>Set the path to the librarys with config items</h3> +<p>There are some configuration items in Javascript library. These can either be set in application/config.php, within its own config/javascript.php file, or within any controller usings the set_item() function. </p> +<p>An image to be used as an &quot;ajax loader&quot;, or progress indicator. Without one, the simple text message of &quot;loading&quot; will appear when Ajax calls need to be made.</p> +<p><code>$config['javascript_location'] = 'http://localhost/codeigniter/themes/js/jquery/';<br /> + $config['javascript_ajax_img'] = 'images/ajax-loader.gif';</code></p> +<p>If you keep your files in the same directories they were downloaded from, then you need not set this configuration items.</p> + +<h2>The jQuery Class</h2> + +<p>To initialize the jQuery class manually in your controller constructor, use the <dfn>$this-&gt;load-&gt;library</dfn> function:</p> + +<code>$this-&gt;load-&gt;library('jquery');</code> + +<p>You may send an optional parameter to determine whether or not a script tag for the main jQuery file will be automatically included when loading the library. It will be created by default. To prevent this, load the library as follows:</p> + +<code>$this-&gt;load-&gt;library('jquery', FALSE);</code> + +<p>Once loaded, the jQuery library object will be available using: <dfn>$this-&gt;jquery</dfn></p> + +<h2>jQuery Events</h2> + +<p>Events are set using the following syntax.</p> + +<p><code>$this-&gt;jquery-&gt;event('element_path', code_to_run());</code></p> + +<p>In the above example:</p> + +<ul> + <li>&quot;event&quot; is any of blur, change, click, dblclick, error, focus, hover, keydown, keyup, load, mousedown, mouseup, mouseover, mouseup, resize, scroll, or unload.</li> + <li>&quot;element_path&quot; is any valid <a href="http://docs.jquery.com/Selectors">jQuery selector</a>. Due to jQuery's unique selector syntax, this is usually an element id, or CSS selector. For example &quot;#notice_area&quot; would effect &lt;div id=&quot;notice_area&quot;&gt;, and &quot;#content a.notice&quot; would effect all anchors with a class of &quot;notice&quot; in the div with id &quot;content&quot;.</li> + <li>&quot;code_to_run()&quot; is script your write yourself, or an action such as an effect from the jQuery library below.</li> + </ul> + +<h2>Effects</h2> + +<p>The query library supports a powerful <a href="http://docs.jquery.com/Effects">Effects</a> repertoire. Before an effect can be used, it must be loaded:</p> + +<p><code>$this->jquery->effect([optional path] plugin name); +// for example +$this->jquery->effect('bounce'); +</code></p> + +<h3>hide() / show()</h3> + +<p>Each of this functions will affect the visibility of an item on your page. hide() will set an item invisible, show() will reveal it.</p> +<p><code>$this-&gt;jquery-&gt;hide(target, optional speed, optional extra information);<br /> + $this-&gt;jquery-&gt;show(target, optional speed, optional extra information);</code></p> + +<ul> + <li>&quot;target&quot; will be any valid jQuery selector or selectors.</li> + <li>&quot;speed&quot; is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> + <li>&quot;extra information&quot; is optional, and could include a callback, or other additional information.</li> +</ul> + +<h3>toggle()</h3> + +<p>toggle() will change the visibility of an item to the opposite of its current state, hiding visible elements, and revealing hidden ones.</p> +<p><code>$this-&gt;jquery-&gt;toggle(target);</code></p> +<ul> + <li>&quot;target&quot; will be any valid jQuery selector or selectors.</li> +</ul> + +<h3>animate()</h3> + +<p><code> $this-&gt;jquery-&gt;animate(target, parameters, optional speed, optional extra information);</code></p> +<ul> + <li>&quot;target&quot; will be any valid jQuery selector or selectors.</li> + <li>&quot;parameters&quot; in jQuery would generally include a series of CSS properties that you wish to change.</li> + <li>&quot;speed&quot; is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> + <li>&quot;extra information&quot; is optional, and could include a callback, or other additional information.</li> +</ul> +<p>For a full summary, see <a href="http://docs.jquery.com/Effects/animate">http://docs.jquery.com/Effects/animate</a></p> +<p>Here is an example of an animate() called on a div with an id of &quot;note&quot;, and triggered by a click using the jQuery library's click() event.</p> +<p><code> $params = array(<br /> + 'height' =&gt; 80,<br /> + 'width' =&gt; '50%',<br /> + 'marginLeft' =&gt; 125<br /> +);<br /> +$this-&gt;jquery-&gt;click('#trigger', $this-&gt;jquery-&gt;animate('#note', $params, normal));</code></p> + +<h3>fadeIn() / fadeOut()</h3> + +<p><code>$this-&gt;jquery-&gt;fadeIn(target, optional speed, optional extra information);<br /> + $this-&gt;jquery-&gt;fadeOut(target, optional speed, optional extra information);</code></p> +<ul> + <li>&quot;target&quot; will be any valid jQuery selector or selectors.</li> + <li>&quot;speed&quot; is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> + <li>&quot;extra information&quot; is optional, and could include a callback, or other additional information.</li> +</ul> + +<h3>toggleClass()</h3> + +<p>This function will add or remove a CSS class to its target.</p> +<p><code>$this-&gt;jquery-&gt;toggleClass(target, class)</code></p> +<ul> + <li>&quot;target&quot; will be any valid jQuery selector or selectors.</li> + <li>&quot;class&quot; is any CSS classname. Note that this class must be defined and available in a CSS that is already loaded.</li> + </ul> + +<h3>fadeIn() / fadeOut()</h3> + +<p>These effects cause an element(s) to disappear or reappear over time.</p> +<p><code>$this-&gt;jquery-&gt;fadeIn(target, optional speed, optional extra information);<br /> + $this-&gt;jquery-&gt;fadeOut(target, optional speed, optional extra information);</code></p> +<ul> + <li>&quot;target&quot; will be any valid jQuery selector or selectors.</li> + <li>&quot;speed&quot; is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> + <li>&quot;extra information&quot; is optional, and could include a callback, or other additional information.</li> +</ul> + +<h3>slideUp() / slideDown() / slideToggle()</h3> + +<p>These effects cause an element(s) to slide.</p> +<p><code>$this-&gt;jquery-&gt;slideUp(target, optional speed, optional extra information);<br /> + $this-&gt;jquery-&gt;slideDown(target, optional speed, optional extra information);<br /> +$this-&gt;jquery-&gt;slideToggle(target, optional speed, optional extra information);</code></p> +<ul> + <li>&quot;target&quot; will be any valid jQuery selector or selectors.</li> + <li>&quot;speed&quot; is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> + <li>&quot;extra information&quot; is optional, and could include a callback, or other additional information.</li> +</ul> + +<h2>Plugins</h2> + +<p> + +<p>Some select jQuery plugins are made available using this library.</p> + +<h3>corner()</h3> +<p>Used to add distinct corners to page elements. For full details see <a href="http://www.malsup.com/jquery/corner/">http://www.malsup.com/jquery/corner/</a></p> +<p><code>$this-&gt;jquery-&gt;corner(target, corner_style);</code></p> +<ul> + <li>&quot;target&quot; will be any valid jQuery selector or selectors.</li> + <li>&quot;corner_style&quot; is optional, and can be set to any valid style such as round, sharp, bevel, bite, dog, etc. Individual corners can be set by following the style with a space and using &quot;tl&quot; (top left), &quot;tr&quot; (top right), &quot;bl&quot; (bottom left), or &quot;br&quot; (bottom right).</li> +</ul> +<p><code>$this-&gt;jquery-&gt;corner(&quot;#note&quot;, &quot;cool tl br&quot;);</code></p> + +<h3>tablesorter()</h3> + +<p>description to come</p> + +<h3>modal()</h3> + +<p>description to come</p> + +<h3>calendar()</h3> + +<p>description to come</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../database/index.html">Database Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../helpers/array_helper.html">Array Helper</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> diff --git a/user_guide/libraries/language.html b/user_guide/libraries/language.html new file mode 100755 index 0000000..09287ff --- /dev/null +++ b/user_guide/libraries/language.html @@ -0,0 +1,137 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Language Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Language Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Language Class</h1> + +<p>The Language Class provides functions to retrieve language files and lines of text for purposes of internationalization.</p> + +<p>In your CodeIgniter system folder you'll find one called <dfn>language</dfn> containing sets of language files. You can create +your own language files as needed in order to display error and other messages in other languages.</p> + +<p>Language files are typically stored in your <dfn>system/language</dfn> directory. Alternately you can create a folder called <kbd>language</kbd> inside +your <kbd>application</kbd> folder and store them there. CodeIgniter will look first in your <dfn>application/language</dfn> +directory. If the directory does not exist or the specified language is not located there CI will instead look in your global +<dfn>system/language</dfn> folder.</p> + +<p class="important"><strong>Note:</strong>&nbsp; Each language should be stored in its own folder. For example, the English files are located at: +<dfn>system/language/english</dfn></p> + + + +<h2>Creating Language Files</h2> + +<p>Language files must be named with <kbd>_lang.php</kbd> as the file extension. For example, let's say you want to create a file +containing error messages. You might name it: <kbd>error_lang.php</kbd></p> + +<p>Within the file you will assign each line of text to an array called <var>$lang</var> with this prototype:</p> + +<code>$lang['language_key'] = "The actual message to be shown";</code> + +<p><strong>Note:</strong> It's a good practice to use a common prefix for all messages in a given file to avoid collisions with +similarly named items in other files. For example, if you are creating error messages you might prefix them with <var>error_</var></p> + +<code>$lang['<var>error</var>_email_missing'] = "You must submit an email address";<br /> +$lang['<var>error</var>_url_missing'] = "You must submit a URL";<br /> +$lang['<var>error</var>_username_missing'] = "You must submit a username";</code> + + +<h2>Loading A Language File</h2> + +<p>In order to fetch a line from a particular file you must load the file first. Loading a language file is done with the following code:</p> + +<code>$this->lang->load('<samp>filename</samp>', '<dfn>language</dfn>');</code> + +<p>Where <samp>filename</samp> is the name of the file you wish to load (without the file extension), and <dfn>language</dfn> +is the language set containing it (ie, english). If the second parameter is missing, the default language set in your +<kbd>application/config/config.php</kbd> file will be used.</p> + + +<h2>Fetching a Line of Text</h2> + +<p>Once your desired language file is loaded you can access any line of text using this function:</p> + +<code>$this->lang->line('<samp>language_key</samp>');</code> + +<p>Where <samp>language_key</samp> is the array key corresponding to the line you wish to show.</p> + +<p>Note: This function simply returns the line. It does not echo it for you.</p> + +<h3>Using language lines as form labels</h3> + +<p class="important">This feature has been deprecated from the language library and moved to the <kbd>lang()</kbd> function of the <a href="../helpers/language_helper.html">Language helper</a>.</p> + +<h2>Auto-loading Languages</h2> +<p>If you find that you need a particular language globally throughout your application, you can tell CodeIgniter to <a href="../general/autoloader.html">auto-load</a> it during system initialization. This is done by opening the application/config/autoload.php file and adding the language(s) to the autoload array.</p> +<p>&nbsp;</p> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="loader.html">Loader Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="output.html">Output Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/loader.html b/user_guide/libraries/loader.html new file mode 100755 index 0000000..1000ca8 --- /dev/null +++ b/user_guide/libraries/loader.html @@ -0,0 +1,273 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Loader Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Loader Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Loader Class</h1> + +<p>Loader, as the name suggests, is used to load elements. These elements can be libraries (classes) <a href="../general/views.html">View files</a>, +<a href="../general/helpers.html">Helpers</a>, <a href="../general/models.html">Models</a>, or your own files.</p> + +<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> + +<p>The following functions are available in this class:</p> + + +<h2>$this->load->library('<var>class_name</var>', <samp>$config</samp>, <kbd>'object name'</kbd>)</h2> + + +<p>This function is used to load core classes. Where <var>class_name</var> is the name of the class you want to load. +Note: We use the terms "class" and "library" interchangeably.</p> + +<p>For example, if you would like to send email with CodeIgniter, the first step is to load the email class within your controller:</p> + +<code>$this->load->library('email');</code> + +<p>Once loaded, the library will be ready for use, using <kbd>$this->email-></kbd><samp><em>some_function</em>()</samp>.</p> + +<p>Library files can be stored in subdirectories within the main "libraries" folder, or within your personal <dfn>application/libraries</dfn> folder. +To load a file located in a subdirectory, simply include the path, relative to the "libraries" folder. +For example, if you have file located at:</p> + +<code>libraries/flavors/chocolate.php</code> + +<p>You will load it using:</p> + +<code>$this->load->library('flavors/chocolate');</code> + +<p>You may nest the file in as many subdirectories as you want.</p> + +<p>Additionally, multiple libraries can be loaded at the same time by passing an array of libraries to the load function.</p> + +<code>$this->load->library(array('<var>email</var>', '<var>table</var>'));</code> + +<h3>Setting options</h3> + +<p>The second (optional) parameter allows you to optionally pass configuration setting. You will typically pass these as an array:</p> + +<code> +$config = array (<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'mailtype' => 'html',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'charset'&nbsp; => 'utf-8,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'priority' => '1'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->load->library('email', $config);</code> + +<p>Config options can usually also be set via a config file. Each library is explained in detail in its own page, so please read the information regarding each one you would like to use.</p> + +<p>Please take note, when multiple libraries are supplied in an array for the first parameter, each will receive the same parameter information.</p> + +<h3>Assigning a Library to a different object name</h3> + +<p>If the third (optional) parameter is blank, the library will usually be assigned to an object with the same name as the library. For example, if the library is named <dfn>Session</dfn>, it +will be assigned to a variable named <dfn>$this->session</dfn>.</p> + +<p>If you prefer to set your own class names you can pass its value to the third parameter:</p> + +<code>$this->load->library('session', '', 'my_session');<br /><br /> + +// Session class is now accessed using:<br /><br /> + +$this->my_session + +</code> + +<p>Please take note, when multiple libraries are supplied in an array for the first parameter, this parameter is discarded.</p> + + +<h2>$this->load->view('<var>file_name</var>', <samp>$data</samp>, <kbd>true/false</kbd>)</h2> + +<p>This function is used to load your View files. If you haven't read the <a href="../general/views.html">Views</a> section of the +user guide it is recommended that you do since it shows you how this function is typically used.</p> + +<p>The first parameter is required. It is the name of the view file you would like to load. &nbsp;Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p> + +<p>The second <strong>optional</strong> parameter can take +an associative array or an object as input, which it runs through the PHP <a href="http://www.php.net/extract">extract</a> function to +convert to variables that can be used in your view files. Again, read the <a href="../general/views.html">Views</a> page to learn +how this might be useful.</p> + +<p>The third <strong>optional</strong> parameter lets you change the behavior of the function so that it returns data as a string +rather than sending it to your browser. This can be useful if you want to process the data in some way. If you +set the parameter to <kbd>true</kbd> (boolean) it will return data. The default behavior is <kbd>false</kbd>, which sends it +to your browser. Remember to assign it to a variable if you want the data returned:</p> + +<code>$string = $this->load->view('<var>myfile</var>', '', <kbd>true</kbd>);</code> + + +<h2>$this-&gt;load-&gt;model('<var>Model_name</var>');</h2> +<p><code>$this-&gt;load-&gt;model('<var>Model_name</var>');</code></p> +<p>If your model is located in a sub-folder, include the relative path from your models folder. For example, if you have a model located at application/models/blog/queries.php you'll load it using:</p> +<p><code>$this-&gt;load-&gt;model('<var>blog/queries</var>');</code></p> +<p>If you would like your model assigned to a different object name you can specify it via the second parameter of the loading + function:</p> +<code> $this-&gt;load-&gt;model('<var>Model_name</var>', '<kbd>fubar</kbd>');<br /> +<br /> +$this-&gt;<kbd>fubar</kbd>-&gt;function();</code> +<h2>$this->load->database('<var>options</var>', <kbd>true/false</kbd>)</h2> +<p>This function lets you load the database class. The two parameters are <strong>optional</strong>. Please see the +<a href="../database/index.html">database</a> section for more info.</p> + + + + +<h2>$this->load->vars(<samp>$array</samp>)</h2> + +<p>This function takes an associative array as input and generates variables using the PHP <a href="http://www.php.net/extract">extract</a> function. +This function produces the same result as using the second parameter of the <dfn>$this->load->view()</dfn> function above. The reason you might +want to use this function independently is if you would like to set some global variables in the constructor of your controller +and have them become available in any view file loaded from any function. You can have multiple calls to this function. The data get cached +and merged into one array for conversion to variables. +</p> + + +<h2>$this->load->get_var(<samp>$key</samp>)</h2> + +<p>This function checks the associative array of variables available to your views. This is useful if for any reason a var is set in a library or another controller method using $this->load->vars(). +</p> + + +<h2>$this->load->helper('<var>file_name</var>')</h2> +<p>This function loads helper files, where <var>file_name</var> is the name of the file, without the <kbd>_helper.php</kbd> extension.</p> + + +<h2>$this->load->file('<var>filepath/filename</var>', <kbd>true/false</kbd>)</h2> +<p>This is a generic file loading function. Supply the filepath and name in the first parameter and it will open and read the file. +By default the data is sent to your browser, just like a View file, but if you set the second parameter to <kbd>true</kbd> (boolean) +it will instead return the data as a string.</p> + + +<h2>$this->load->language('<var>file_name</var>')</h2> +<p>This function is an alias of the <a href="language.html">language loading function</a>: $this->lang->load()</p> + +<h2>$this->load->config('<var>file_name</var>')</h2> +<p>This function is an alias of the <a href="config.html">config file loading function</a>: $this->config->load()</p> + + +<h2>Application "Packages"</h2> + +<p>An application package allows for the easy distribution of complete sets of resources in a single directory, complete with its own libraries, models, helpers, config, and language files. It is recommended that these packages be placed in the <dfn>application/third_party</dfn> folder. Below is a sample map of an package directory</p> + + +<h2>Sample Package "Foo Bar" Directory Map</h2> + +<p>The following is an example of a directory for an application package named "Foo Bar".</p> + +<code>/application/third_party/foo_bar<br /> +<br /> +config/<br /> +helpers/<br /> +language/<br /> +libraries/<br /> +models/<br /> +</code> + +<p>Whatever the purpose of the "Foo Bar" application package, it has its own config files, helpers, language files, libraries, and models. To use these resources in your controllers, you first need to tell the Loader that you are going to be loading resources from a package, by adding the package path.</p> + +<h3>$this->load->add_package_path()</h3> + +<p>Adding a package path instructs the Loader class to prepend a given path for subsequent requests for resources. As an example, the "Foo Bar" application package above has a library named <dfn>Foo_bar.php</dfn>. In our controller, we'd do the following:</p> + +<code>$this->load->add_package_path(<var>APPPATH</var>.'third_party/<var>foo_bar</var>/');<br /> +$this->load->library('foo_bar');</code> + +<h3>$this->load->remove_package_path()</h3> + +<p>When your controller is finished using resources from an application package, and particularly if you have other application packages you want to work with, you may wish to remove the package path so the Loader no longer looks in that folder for resources. To remove the last path added, simply call the method with no parameters.</p> + +<h3>$this->load->remove_package_path()</h3> + +<p>Or to remove a specific package path, specify the same path previously given to <kbd>add_package_path() for a package.</kbd>:</p> + +<code>$this->load->remove_package_path(<var>APPPATH</var>.'third_party/<var>foo_bar</var>/');</code> + +<h3>Package view files</h3> + +<p>By Default, package view files paths are set when <samp>add_package_path()</samp> is called. View paths are looped through, and once a match is encountered that view is loaded.</p> +<p>In this instance, it is possible for view naming collisions within packages to occur, and possibly the incorrect package being loaded. To ensure against this, set an optional second parameter of <var>FALSE</var> when calling <samp>add_package_path()</samp>.</p> + +<code> +$this->load->add_package_path(APPPATH.'my_app', TRUE);<br> +$this->load->view('my_app_index'); // Loads<br> +$this->load->view('welcome_message'); // Will not load the default welcome_message b/c the second param to add_package_path is TRUE<br> +<br> +// Reset things<br> +$this->load->remove_package_path(APPPATH.'my_app');<br> +<br> +// Again without the second parameter:<br> +$this->load->add_package_path(APPPATH.'my_app', TRUE);<br> +$this->load->view('my_app_index'); // Loads<br> +$this->load->view('welcome_message'); // Loads<br> +</code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="input.html">Input Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="language.html">Language Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/migration.html b/user_guide/libraries/migration.html new file mode 100755 index 0000000..018be30 --- /dev/null +++ b/user_guide/libraries/migration.html @@ -0,0 +1,176 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Migration Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='CodeIgniter Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Migration Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Migration Class</h1> + +<p>Migrations are a convenient way for you to alter your database in a structured and organized manner. You could edit fragments of SQL by hand but you would then be responsible for telling other developers that they need to go and run them. You’d also have to keep track of which changes need to be run against the production machines next time you deploy.</p> + +<p>The database table <var>migration</var> tracks which migrations have already been run so all you have to do is update your application files and call <dfn>$this->migrate->current()</dfn> to work out which migrations should be run. The current version is found in <var>config/migration.php</var>.</p> + +<h2>Create a Migration</h2> + +<p>This will be the first migration for a new site which has a blog. All migrations go in the folder <var>application/migrations/</var> and have names such as: <kbd>001_add_blog.php</kbd>.</p> + +<pre> +defined('BASEPATH') OR exit('No direct script access allowed'); + +class Migration_Add_blog extends CI_Migration { + + public function up() + { + $this->dbforge->add_field(array( + 'blog_id' => array( + 'type' => 'INT', + 'constraint' => 5, + 'unsigned' => TRUE, + 'auto_increment' => TRUE + ), + 'blog_title' => array( + 'type' => 'VARCHAR', + 'constraint' => '100', + ), + 'blog_description' => array( + 'type' => 'TEXT', + 'null' => TRUE, + ), + )); + + $this->dbforge->create_table('blog'); + } + + public function down() + { + $this->dbforge->drop_table('blog'); + } +</pre> + +<p>Then in <var>application/config/migration.php</var> set <dfn>$config['migration_version'] = 1;</dfn>. + +<h2>Usage Example</h2> + +<p>In this example some simple code is placed in <var>application/controllers/migrate.php</var> to update the schema.</p> + +<pre> +$this->load->library('migration'); + +if ( ! $this->migration->current()) +{ + show_error($this->migration->error_string()); +} +</pre> + + +<h1>Function Reference</h1> + +<h2>$this->migration->current()</h2> + +<p>The current migration is whatever is set for <dfn>$config['migration_version']</dfn> in <var>application/config/migration.php</var>.</p> + + +<h2>$this->migration->latest()</h2> + +<p>This works much the same way as current() but instead of looking for the <dfn>$config['migration_version']</dfn> the Migration class will use the very newest migration found in the filesystem.</p> + +<h2>$this->migration->version()</h2> + +<p>Version can be used to roll back changes or step forwards programmatically to specific versions. It works just like current but ignores <dfn>$config['migration_version']</dfn>.</p> + +<pre> +$this->load->library('migration'); + +$this->migration->version(5); +</pre> + +<h2>Migration Preferences</h2> + +<p>The following is a list of all the config options for migrations.</p> + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> +<th>Preference</th> +<th>Default&nbsp;Value</th> +<th>Options</th> +<th>Description</th> +</tr><tr> +<td class="td"><strong>migration_enabled</strong></td><td class="td">FALSE</td><td class="td">TRUE / FALSE</td><td class="td">Enable or disable migrations.</td> +</tr><tr> +<td class="td"><strong>migration_version</strong></td><td class="td">0</td><td class="td">None</td><td class="td">The current version your database should use.</td> +</tr><tr> +<td class="td"><strong>migration_path</strong></td><td class="td">APPPATH.'migrations/'</td><td class="td">None</td><td class="td">The path to your migrations folder.</td> +</tr> +</table> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="form_validation.html">Form Validation Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="table.html">HTML Table Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/output.html b/user_guide/libraries/output.html new file mode 100755 index 0000000..072a25d --- /dev/null +++ b/user_guide/libraries/output.html @@ -0,0 +1,177 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Output Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Output Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Output Class</h1> + +<p>The Output class is a small class with one main function: To send the finalized web page to the requesting browser. It is +also responsible for <a href="../general/caching.html">caching</a> your web pages, if you use that feature.</p> + +<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> + +<p>Under normal circumstances you won't even notice the Output class since it works transparently without your intervention. +For example, when you use the <a href="../libraries/loader.html">Loader</a> class to load a view file, it's automatically +passed to the Output class, which will be called automatically by CodeIgniter at the end of system execution. +It is possible, however, for you to manually intervene with the output if you need to, using either of the two following functions:</p> + +<h2>$this->output->set_output();</h2> + +<p>Permits you to manually set the final output string. Usage example:</p> + +<code>$this->output->set_output($data);</code> + +<p><strong>Important:</strong> If you do set your output manually, it must be the last thing done in the function you call it from. +For example, if you build a page in one of your controller functions, don't set the output until the end.</p> + + +<h2>$this->output->set_content_type();</h2> + +<p>Permits you to set the mime-type of your page so you can serve JSON data, JPEG's, XML, etc easily.</p> + +<code>$this->output<br/> +&nbsp;&nbsp;&nbsp;&nbsp;->set_content_type('application/json')<br/> +&nbsp;&nbsp;&nbsp;&nbsp;->set_output(json_encode(array('foo' => 'bar')));<br/> +<br/> +$this->output<br/> +&nbsp;&nbsp;&nbsp;&nbsp;->set_content_type('jpeg') // You could also use ".jpeg" which will have the full stop removed before looking in config/mimes.php<br/> +&nbsp;&nbsp;&nbsp;&nbsp;->set_output(file_get_contents('files/something.jpg'));</code> + +<p><strong>Important:</strong> Make sure any non-mime string you pass to this method exists in config/mimes.php or it will have no effect.</p> + + +<h2>$this->output->get_output();</h2> + +<p>Permits you to manually retrieve any output that has been sent for storage in the output class. Usage example:</p> +<code>$string = $this->output->get_output();</code> + +<p>Note that data will only be retrievable from this function if it has been previously sent to the output class by one of the +CodeIgniter functions like <var>$this->load->view()</var>.</p> + + +<h2>$this->output->append_output();</h2> + +<p>Appends data onto the output string. Usage example:</p> + +<code>$this->output->append_output($data);</code> + + + +<h2>$this->output->set_header();</h2> + +<p>Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display. Example:</p> + +<code> +$this->output->set_header("HTTP/1.0 200 OK");<br /> +$this->output->set_header("HTTP/1.1 200 OK");<br /> +$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT');<br /> +$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");<br /> +$this->output->set_header("Cache-Control: post-check=0, pre-check=0");<br /> +$this->output->set_header("Pragma: no-cache"); </code> + + +<h2>$this->output->set_status_header(<var>code</var>, '<var>text</var>');</h2> + +<p>Permits you to manually set a server status header. Example:</p> + +<code>$this->output->set_status_header('401');<br /> +// Sets the header as: Unauthorized</code> + +<p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">See here</a> for a full list of headers.</p> + +<h2>$this->output->enable_profiler();</h2> + +<p>Permits you to enable/disable the <a href="../general/profiling.html">Profiler</a>, which will display benchmark and other data +at the bottom of your pages for debugging and optimization purposes.</p> + +<p>To enable the profiler place the following function anywhere within your <a href="../general/controllers.html">Controller</a> functions:</p> +<code>$this->output->enable_profiler(TRUE);</code> + +<p>When enabled a report will be generated and inserted at the bottom of your pages.</p> + +<p>To disable the profiler you will use:</p> +<code>$this->output->enable_profiler(FALSE);</code> + +<h2>$this->output->set_profiler_sections();</h2> + +<p>Permits you to enable/disable specific sections of the Profiler when enabled. Please refer to the <a href="../general/profiling.html">Profiler</a> documentation for further information.</p> + +<h2>$this->output->cache();</h2> +<p>The CodeIgniter output library also controls caching. For more information, please see the <a href="../general/caching.html">caching documentation</a>.</p> + +<h2>Parsing Execution Variables</h2> + + <p>CodeIgniter will parse the pseudo-variables <var>{elapsed_time}</var> and <var>{memory_usage}</var> in your output by default. To disable this, set the <var>$parse_exec_vars</var> class property to <var>FALSE</var> in your controller. + + <code>$this->output->parse_exec_vars = FALSE;</code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="language.html">Language Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="pagination.html">Pagination Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/pagination.html b/user_guide/libraries/pagination.html new file mode 100755 index 0000000..5f1dde4 --- /dev/null +++ b/user_guide/libraries/pagination.html @@ -0,0 +1,233 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Pagination Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Pagination Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Pagination Class</h1> + +<p>CodeIgniter's Pagination class is very easy to use, and it is 100% customizable, either dynamically or via stored preferences.</p> + +<p>If you are not familiar with the term "pagination", it refers to links that allows you to navigate from page to page, like this:</p> + +<code><a href="#">&laquo; First</a>&nbsp;&nbsp;<a href="#">&lt;</a>&nbsp;<a href="#">1</a>&nbsp;<a href="#">2</a>&nbsp;<b>3</b>&nbsp;<a href="#">4</a>&nbsp;<a href="#">5</a>&nbsp;<a href="#">&gt;</a>&nbsp;&nbsp;<a href="#">Last &raquo;</a></code> + +<h2>Example</h2> + +<p>Here is a simple example showing how to create pagination in one of your <a href="../general/controllers.html">controller</a> functions:</p> + +<code> +$this->load->library('pagination');<br /><br /> +$config['base_url'] = 'http://example.com/index.php/test/page/';<br /> +$config['total_rows'] = 200;<br /> +$config['per_page'] = 20; +<br /><br /> +$this->pagination->initialize($config); + +<br /><br /> +echo $this->pagination->create_links();</code> + +<h3>Notes:</h3> + +<p>The <var>$config</var> array contains your configuration variables. It is passed to the <dfn>$this->pagination->initialize</dfn> function as shown above. Although there are some twenty items you can configure, at +minimum you need the three shown. Here is a description of what those items represent:</p> + +<ul> + <li><strong>base_url</strong> This is the full URL to the controller class/function containing your pagination. In the example + above, it is pointing to a controller called "Test" and a function called "page". Keep in mind that you can + <a href="../general/routing.html">re-route your URI</a> if you need a different structure.</li> + <li><strong>total_rows</strong> This number represents the total rows in the result set you are creating pagination for. + Typically this number will be the total rows that your database query returned. + </li> + <li><strong>per_page</strong> The number of items you intend to show per page. In the above example, you would be showing 20 items per page.</li> +</ul> + +<p>The <var>create_links()</var> function returns an empty string when there is no pagination to show.</p> + + +<h3>Setting preferences in a config file</h3> + +<p>If you prefer not to set preferences using the above method, you can instead put them into a config file. +Simply create a new file called <var>pagination.php</var>, add the <var>$config</var> +array in that file. Then save the file in: <var>config/pagination.php</var> and it will be used automatically. You +will NOT need to use the <dfn>$this->pagination->initialize</dfn> function if you save your preferences in a config file.</p> + + +<h2>Customizing the Pagination</h2> + +<p>The following is a list of all the preferences you can pass to the initialization function to tailor the display.</p> + + +<h4>$config['uri_segment'] = 3;</h4> + +<p>The pagination function automatically determines which segment of your URI contains the page number. If you need +something different you can specify it.</p> + +<h4>$config['num_links'] = 2;</h4> + +<p>The number of &quot;digit&quot; links you would like before and after the selected page number. For example, the number 2 + will place two digits on either side, as in the example links at the very top of this page.</p> + +<h4>$config['use_page_numbers'] = TRUE;</h4> +<p>By default, the URI segment will use the starting index for the items you are paginating. If you prefer to show the the actual page number, set this to TRUE.</p> + +<h4>$config['page_query_string'] = TRUE;</h4> +<p>By default, the pagination library assume you are using <a href="../general/urls.html">URI Segments</a>, and constructs your links something like</p> +<p><code>http://example.com/index.php/test/page/20</code></p> +<p>If you have $config['enable_query_strings'] set to TRUE your links will automatically be re-written using Query Strings. This option can also be explictly set. Using $config['page_query_string'] set to TRUE, the pagination link will become.</p> +<p><code>http://example.com/index.php?c=test&amp;m=page&amp;per_page=20</code></p> +<p>Note that &quot;per_page&quot; is the default query string passed, however can be configured using $config['query_string_segment'] = 'your_string'</p> +<h2>Adding Enclosing Markup</h2> + +<p>If you would like to surround the entire pagination with some markup you can do it with these two prefs:</p> + +<h4>$config['full_tag_open'] = '&lt;p>';</h4> +<p>The opening tag placed on the left side of the entire result.</p> + +<h4>$config['full_tag_close'] = '&lt;/p>';</h4> +<p>The closing tag placed on the right side of the entire result.</p> + + +<h2>Customizing the First Link</h2> + +<h4>$config['first_link'] = 'First';</h4> +<p>The text you would like shown in the "first" link on the left. If you do not want this link rendered, you can set its value to FALSE.</p> + +<h4>$config['first_tag_open'] = '&lt;div>';</h4> +<p>The opening tag for the "first" link.</p> + +<h4>$config['first_tag_close'] = '&lt;/div>';</h4> +<p>The closing tag for the "first" link.</p> + +<h2>Customizing the Last Link</h2> + +<h4>$config['last_link'] = 'Last';</h4> +<p>The text you would like shown in the "last" link on the right. If you do not want this link rendered, you can set its value to FALSE.</p> + +<h4>$config['last_tag_open'] = '&lt;div>';</h4> +<p>The opening tag for the "last" link.</p> + +<h4>$config['last_tag_close'] = '&lt;/div>';</h4> +<p>The closing tag for the "last" link.</p> + +<h2>Customizing the "Next" Link</h2> + +<h4>$config['next_link'] = '&amp;gt;';</h4> +<p>The text you would like shown in the "next" page link. If you do not want this link rendered, you can set its value to FALSE.</p> + +<h4>$config['next_tag_open'] = '&lt;div>';</h4> +<p>The opening tag for the "next" link.</p> + +<h4>$config['next_tag_close'] = '&lt;/div>';</h4> +<p>The closing tag for the "next" link.</p> + +<h2>Customizing the "Previous" Link</h2> + +<h4>$config['prev_link'] = '&amp;lt;';</h4> +<p>The text you would like shown in the "previous" page link. If you do not want this link rendered, you can set its value to FALSE.</p> + +<h4>$config['prev_tag_open'] = '&lt;div>';</h4> +<p>The opening tag for the "previous" link.</p> + +<h4>$config['prev_tag_close'] = '&lt;/div>';</h4> +<p>The closing tag for the "previous" link.</p> + +<h2>Customizing the "Current Page" Link</h2> + +<h4>$config['cur_tag_open'] = '&lt;b>';</h4> +<p>The opening tag for the "current" link.</p> + +<h4>$config['cur_tag_close'] = '&lt;/b>';</h4> +<p>The closing tag for the "current" link.</p> + + +<h2>Customizing the "Digit" Link</h2> + +<h4>$config['num_tag_open'] = '&lt;div>';</h4> +<p>The opening tag for the "digit" link.</p> + +<h4>$config['num_tag_close'] = '&lt;/div>';</h4> +<p>The closing tag for the "digit" link.</p> + +<h2>Hiding the Pages</h2> + +<p>If you wanted to not list the specific pages (for example, you only want "next" and "previous" links), you can suppress their rendering by adding:</p> + +<code> +$config['display_pages'] = FALSE; +</code> + + +<h2>Adding a class to every anchor</h2> + +<p>If you want to add a class attribute to every link rendered by the pagination class, you can set the config "anchor_class" equal to the classname you want.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="output.html">Output Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="sessions.html">Session Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/parser.html b/user_guide/libraries/parser.html new file mode 100755 index 0000000..0f4fce6 --- /dev/null +++ b/user_guide/libraries/parser.html @@ -0,0 +1,212 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Template Parser Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Template Parser Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + + + +<h1>Template Parser Class</h1> + +<p>The Template Parser Class enables you to parse pseudo-variables contained within your view files. It can parse simple +variables or variable tag pairs. If you've never used a template engine, pseudo-variables look like this:</p> + +<code>&lt;html&gt;<br /> +&lt;head&gt;<br /> +&lt;title&gt;<kbd>{blog_title}</kbd>&lt;/title&gt;<br /> +&lt;/head&gt;<br /> +&lt;body&gt;<br /> +<br /> +&lt;h3&gt;<kbd>{blog_heading}</kbd>&lt;/h3&gt;<br /> +<br /> +<kbd>{blog_entries}</kbd><br /> +&lt;h5&gt;<kbd>{title}</kbd>&lt;/h5&gt;<br /> +&lt;p&gt;<kbd>{body}</kbd>&lt;/p&gt;<br /> +<kbd>{/blog_entries}</kbd><br /> + +&lt;/body&gt;<br /> +&lt;/html&gt;</code> + +<p>These variables are not actual PHP variables, but rather plain text representations that allow you to eliminate +PHP from your templates (view files).</p> + +<p class="important"><strong>Note:</strong> CodeIgniter does <strong>not</strong> require you to use this class +since using pure PHP in your view pages lets them run a little faster. However, some developers prefer to use a template engine if +they work with designers who they feel would find some confusion working with PHP.</p> + +<p><strong>Also Note:</strong> The Template Parser Class is <strong>not</strong> a +full-blown template parsing solution. We've kept it very lean on purpose in order to maintain maximum performance.</p> + + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the Parser class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('parser');</code> +<p>Once loaded, the Parser library object will be available using: <dfn>$this->parser</dfn></p> + + +<p>The following functions are available in this library:</p> + +<h2>$this->parser->parse()</h2> + +<p>This method accepts a template name and data array as input, and it generates a parsed version. Example:</p> + +<code>$this->load->library('parser');<br /> +<br /> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_title' => 'My Blog Title',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_heading' => 'My Blog Heading'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->parser->parse('blog_template', $data);</code> + +<p>The first parameter contains the name of the <a href="../general/views.html">view file</a> (in this example the file would be called blog_template.php), +and the second parameter contains an associative array of data to be replaced in the template. In the above example, the +template would contain two variables: {blog_title} and {blog_heading}</p> + +<p>There is no need to "echo" or do something with the data returned by <dfn>$this->parser->parse()</dfn>. It is automatically +passed to the output class to be sent to the browser. However, if you do want the data returned instead of sent to the output class you can +pass TRUE (boolean) to the third parameter:</p> + +<code>$string = $this->parser->parse('blog_template', $data, TRUE);</code> + +<h2>$this->parser->parse_string()</h2> + +<p>This method works exactly like parse(), only accepts a string as the first parameter in place of a view file.</p> + + +<h2>Variable Pairs</h2> + +<p>The above example code allows simple variables to be replaced. What if you would like an entire block of variables to be +repeated, with each iteration containing new values? Consider the template example we showed at the top of the page:</p> + +<code>&lt;html&gt;<br /> +&lt;head&gt;<br /> +&lt;title&gt;<kbd>{blog_title}</kbd>&lt;/title&gt;<br /> +&lt;/head&gt;<br /> +&lt;body&gt;<br /> +<br /> +&lt;h3&gt;<kbd>{blog_heading}</kbd>&lt;/h3&gt;<br /> +<br /> +<kbd>{blog_entries}</kbd><br /> +&lt;h5&gt;<kbd>{title}</kbd>&lt;/h5&gt;<br /> +&lt;p&gt;<kbd>{body}</kbd>&lt;/p&gt;<br /> +<kbd>{/blog_entries}</kbd><br /> + +&lt;/body&gt;<br /> +&lt;/html&gt;</code> + +<p>In the above code you'll notice a pair of variables: <kbd>{blog_entries}</kbd> data... <kbd>{/blog_entries}</kbd>. +In a case like this, the entire chunk of data between these pairs would be repeated multiple times, corresponding +to the number of rows in a result.</p> + +<p>Parsing variable pairs is done using the identical code shown above to parse single variables, +except, you will add a multi-dimensional array corresponding to your variable pair data. +Consider this example:</p> + + +<code>$this->load->library('parser');<br /> +<br /> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_title'&nbsp;&nbsp; => 'My Blog Title',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_heading' => 'My Blog Heading',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_entries' => array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('title' => 'Title 1', 'body' => 'Body 1'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('title' => 'Title 2', 'body' => 'Body 2'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('title' => 'Title 3', 'body' => 'Body 3'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('title' => 'Title 4', 'body' => 'Body 4'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('title' => 'Title 5', 'body' => 'Body 5')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->parser->parse('blog_template', $data);</code> + +<p>If your "pair" data is coming from a database result, which is already a multi-dimensional array, you can simply +use the database result_array() function:</p> + +<code> +$query = $this->db->query("SELECT * FROM blog");<br /> +<br /> +$this->load->library('parser');<br /> +<br /> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_title'&nbsp;&nbsp; => 'My Blog Title',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_heading' => 'My Blog Heading',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_entries' => $query->result_array()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->parser->parse('blog_template', $data);</code> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="trackback.html">Trackback Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="typography.html">Typography</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/security.html b/user_guide/libraries/security.html new file mode 100755 index 0000000..8661168 --- /dev/null +++ b/user_guide/libraries/security.html @@ -0,0 +1,135 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Security Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Security Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Security Class</h1> + +<p>The Security Class contains methods that help you create a secure application, processing input data for security.</p> + +<h2>XSS Filtering</h2> + +<p>CodeIgniter comes with a Cross Site Scripting Hack prevention filter which can either run automatically to filter +all POST and COOKIE data that is encountered, or you can run it on a per item basis. By default it does <strong>not</strong> +run globally since it requires a bit of processing overhead, and since you may not need it in all cases.</p> + +<p>The XSS filter looks for commonly used techniques to trigger Javascript or other types of code that attempt to hijack cookies +or do other malicious things. If anything disallowed is encountered it is rendered safe by converting the data to character entities.</p> + +<p> +Note: This function should only be used to deal with data upon submission. It's not something that should be used for general runtime processing since it requires a fair amount of processing overhead.</p> + + +<p>To filter data through the XSS filter use this function:</p> + +<h2>$this->security->xss_clean()</h2> + +<p>Here is an usage example:</p> + +<code>$data = $this->security->xss_clean($data);</code> + +<p>If you want the filter to run automatically every time it encounters POST or COOKIE data you can enable it by opening your +<kbd>application/config/config.php</kbd> file and setting this:</p> + +<code>$config['global_xss_filtering'] = TRUE;</code> + +<p>Note: If you use the form validation class, it gives you the option of XSS filtering as well.</p> + +<p>An optional second parameter, <dfn>is_image</dfn>, allows this function to be used to test images for potential XSS attacks, useful for file upload security. When this second parameter is set to <dfn>TRUE</dfn>, instead of returning an altered string, the function returns TRUE if the image is safe, and FALSE if it contained potentially malicious information that a browser may attempt to execute.</p> + +<code>if ($this->security->xss_clean($file, TRUE) === FALSE)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;// file failed the XSS test<br /> +}</code> + + +<h2>$this->security->sanitize_filename()</h2> + +<p>When accepting filenames from user input, it is best to sanitize them to prevent directory traversal and other security related issues. To do so, use the <dfn>sanitize_filename()</dfn> method of the Security class. Here is an example:</p> + +<code>$filename = $this->security->sanitize_filename($this->input->post('filename'));</code> + +<p>If it is acceptable for the user input to include relative paths, e.g. <kbd>file/in/some/approved/folder.txt</kbd>, you can set the second optional parameter, + <samp>$relative_path</samp> to TRUE.</p> + +<code>$filename = $this->security->sanitize_filename($this->input->post('filename'), TRUE);</code> + +<!-- @todo write docs for CSRF methods --> + +<h2>Cross-site request forgery (CSRF)</h2> + +<p>You can enable csrf protection by opening your <kbd>application/config/config.php</kbd> file and setting this:</p> +<code>$config['csrf_protection'] = TRUE;</code> + +<p>If you use the <a href="../helpers/form_helper.html">form helper</a> the <var>form_open()</var> function will automatically insert a hidden csrf field in your forms.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="pagination.html">Pagination Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="sessions.html">Session Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/sessions.html b/user_guide/libraries/sessions.html new file mode 100755 index 0000000..1b7b73a --- /dev/null +++ b/user_guide/libraries/sessions.html @@ -0,0 +1,341 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Session Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Session Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Session Class</h1> + +<p>The Session class permits you maintain a user's "state" and track their activity while they browse your site. +The Session class stores session information for each user as serialized (and optionally encrypted) data in a cookie. +It can also store the session data in a database table for added security, as this permits the session ID in the +user's cookie to be matched against the stored session ID. By default only the cookie is saved. If you choose to +use the database option you'll need to create the session table as indicated below. +</p> + +<p class="important"><strong>Note:</strong> The Session class does <strong>not</strong> utilize native PHP sessions. It +generates its own session data, offering more flexibility for developers.</p> + +<p class="important"><strong>Note:</strong> Even if you are not using encrypted sessions, you must set +an <a href="./encryption.html">encryption key</a> in your config file which is used to aid in preventing session data manipulation.</p> + +<h2>Initializing a Session</h2> + +<p>Sessions will typically run globally with each page load, so the session class must either be +<a href="../general/libraries.html">initialized</a> in your +<a href="../general/controllers.html">controller</a> constructors, or it can be +<a href="../general/autoloader.html">auto-loaded</a> by the system. +For the most part the session class will run unattended in the background, so simply initializing the class +will cause it to read, create, and update sessions.</p> + + +<p>To initialize the Session class manually in your controller constructor, use the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('session');</code> +<p>Once loaded, the Sessions library object will be available using: <dfn>$this->session</dfn></p> + + +<h2>How do Sessions work?</h2> + +<p>When a page is loaded, the session class will check to see if valid session data exists in the user's session cookie. +If sessions data does <strong>not</strong> exist (or if it has expired) a new session will be created and saved in the cookie. +If a session does exist, its information will be updated and the cookie will be updated. With each update, the session_id will be regenerated.</p> + +<p>It's important for you to understand that once initialized, the Session class runs automatically. There is nothing +you need to do to cause the above behavior to happen. You can, as you'll see below, work with session data or +even add your own data to a user's session, but the process of reading, writing, and updating a session is automatic.</p> + + +<h2>What is Session Data?</h2> + +<p>A <em>session</em>, as far as CodeIgniter is concerned, is simply an array containing the following information:</p> + +<ul> +<li>The user's unique Session ID (this is a statistically random string with very strong entropy, hashed with MD5 for portability, and regenerated (by default) every five minutes)</li> +<li>The user's IP Address</li> +<li>The user's User Agent data (the first 120 characters of the browser data string)</li> +<li>The "last activity" time stamp.</li> +</ul> + +<p>The above data is stored in a cookie as a serialized array with this prototype:</p> + +<code>[array]<br /> +(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'session_id'&nbsp;&nbsp;&nbsp;&nbsp;=> random hash,<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ip_address'&nbsp;&nbsp;&nbsp;&nbsp;=> 'string - user IP address',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'user_agent'&nbsp;&nbsp;&nbsp;&nbsp;=> 'string - user agent data',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'last_activity' => timestamp<br /> +)</code> + +<p>If you have the encryption option enabled, the serialized array will be encrypted before being stored in the cookie, +making the data highly secure and impervious to being read or altered by someone. More info regarding encryption +can be <a href="encryption.html">found here</a>, although the Session class will take care of initializing +and encrypting the data automatically.</p> + +<p>Note: Session cookies are only updated every five minutes by default to reduce processor load. If you repeatedly reload a page +you'll notice that the "last activity" time only updates if five minutes or more has passed since the last time +the cookie was written. This time is configurable by changing the $config['sess_time_to_update'] line in your system/config/config.php file.</p> + +<h2>Retrieving Session Data</h2> + +<p>Any piece of information from the session array is available using the following function:</p> + +<code>$this->session->userdata('<samp>item</samp>');</code> + +<p>Where <samp>item</samp> is the array index corresponding to the item you wish to fetch. For example, to fetch the session ID you +will do this:</p> + +<code>$session_id = $this->session->userdata('<samp>session_id</samp>');</code> + +<p><strong>Note:</strong> The function returns FALSE (boolean) if the item you are trying to access does not exist.</p> + + +<h2>Adding Custom Session Data</h2> + +<p>A useful aspect of the session array is that you can add your own data to it and it will be stored in the user's cookie. +Why would you want to do this? Here's one example:</p> + +<p>Let's say a particular user logs into your site. Once authenticated, +you could add their username and email address to the session cookie, making that data globally available to you without +having to run a database query when you need it.</p> + +<p>To add your data to the session array involves passing an array containing your new data to this function:</p> + +<code>$this->session->set_userdata(<samp>$array</samp>);</code> + +<p>Where <samp>$array</samp> is an associative array containing your new data. Here's an example:</p> + + +<p><code>$newdata = array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'username'&nbsp; => 'johndoe',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'email'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'johndoe@some-site.com',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'logged_in' => TRUE<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> + <br /> + $this->session->set_userdata(<samp>$newdata</samp>);</code></p> +<p>If you want to add userdata one value at a time, set_userdata() also supports this syntax. </p> +<p><code>$this-&gt;session-&gt;set_userdata('some_name', 'some_value');</code></p> +<p class="important"><strong>Note:</strong> Cookies can only hold 4KB of data, so be careful not to exceed the capacity. The +encryption process in particular produces a longer data string than the original so keep careful track of how much data you are storing.</p> + +<h2>Retrieving All Session Data</h2> +<p>An array of all userdata can be retrieved as follows:</p> +<code>$this-&gt;session-&gt;all_userdata()</code> + +<p>And returns an associative array like the following:</p> + +<pre> +Array +( + [session_id] => 4a5a5dca22728fb0a84364eeb405b601 + [ip_address] => 127.0.0.1 + [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; + [last_activity] => 1303142623 +) +</pre> + + +<h2>Removing Session Data</h2> +<p>Just as set_userdata() can be used to add information into a session, unset_userdata() can be used to remove it, by passing the session key. For example, if you wanted to remove 'some_name' from your session information: </p> +<p><code>$this-&gt;session-&gt;unset_userdata('some_name');</code></p> +<p>This function can also be passed an associative array of items to unset.</p> +<p><code>$array_items = array('username' => '', 'email' => '');<br /> +<br /> +$this-&gt;session-&gt;unset_userdata(<samp>$array_items</samp>);</code></p> +<h2>Flashdata</h2> +<p>CodeIgniter supports &quot;flashdata&quot;, or session data that will only be available for the next server request, and are then automatically cleared. These can be very useful, and are typically used for informational or status messages (for example: &quot;record 2 deleted&quot;).</p> +<p>Note: Flash variables are prefaced with &quot;flash_&quot; so avoid this prefix in your own session names.</p> +<p>To add flashdata:</p> +<p><code>$this-&gt;session-&gt;set_flashdata('item', 'value');</code></p> +<p>You can also pass an array to set_flashdata(), in the same manner as set_userdata(). </p> +<p>To read a flashdata variable:</p> +<p><code>$this-&gt;session-&gt;flashdata('item');</code></p> +<p>If you find that you need to preserve a flashdata variable through an additional request, you can do so using the keep_flashdata() function.</p> +<p><code>$this-&gt;session-&gt;keep_flashdata('item');</code></p> +<h2>Saving Session Data to a Database</h2> +<p>While the session data array stored in the user's cookie contains a Session ID, +unless you store session data in a database there is no way to validate it. For some applications that require little or no +security, session ID validation may not be needed, but if your application requires security, validation is mandatory. Otherwise, an old session +could be restored by a user modifying their cookies.</p> + +<p>When session data is available in a database, every time a valid session is found in the user's cookie, a database +query is performed to match it. If the session ID does not match, the session is destroyed. Session IDs can never +be updated, they can only be generated when a new session is created.</p> + + +<p>In order to store sessions, you must first create a database table for this purpose. Here is the basic +prototype (for MySQL) required by the session class:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +CREATE TABLE IF NOT EXISTS `ci_sessions` ( + session_id varchar(40) DEFAULT '0' NOT NULL, + ip_address varchar(45) DEFAULT '0' NOT NULL, + user_agent varchar(120) NOT NULL, + last_activity int(10) unsigned DEFAULT 0 NOT NULL, + user_data text NOT NULL, + PRIMARY KEY (session_id), + KEY `last_activity_idx` (`last_activity`) +); +</textarea> + +<p><strong>Note:</strong> By default the table is called <dfn>ci_sessions</dfn>, but you can name it anything you want +as long as you update the <kbd>application/config/config.php</kbd> file so that it contains the name you have chosen. +Once you have created your database table you can enable the database option in your config.php file as follows:</p> + +<code>$config['sess_use_database'] = TRUE;</code> + +<p>Once enabled, the Session class will store session data in the DB.</p> + +<p>Make sure you've specified the table name in your config file as well:</p> + +<code>$config['sess_table_name'] = 'ci_sessions';</code> + +<p class="important"><strong>Note:</strong> The Session class has built-in garbage collection which clears out expired sessions so you +do not need to write your own routine to do it.</p> + + +<h2>Destroying a Session </h2> +<p>To clear the current session: </p> +<code>$this-&gt;session-&gt;sess_destroy();</code> +<p class="important"><strong>Note:</strong> This function should be the last one called, and even flash variables will no longer be available. If you only want some items destroyed and not all, use <dfn>unset_userdata()</dfn>.</p> + + + +<h2>Session Preferences</h2> +<p>You'll find the following Session related preferences in your <kbd>application/config/config.php</kbd> file:</p> + + +<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> +<tr> + <th>Preference</th> + <th>Default</th> + <th>Options</th> + <th>Description</th> +</tr> +<tr> + <td class="td"><strong>sess_cookie_name</strong></td> + <td class="td">ci_session</td> + <td class="td">None</td> + <td class="td">The name you want the session cookie saved as.</td> +</tr> +<tr> + <td class="td"><strong>sess_expiration</strong></td> + <td class="td">7200</td> + <td class="td">None</td> + <td class="td">The number of seconds you would like the session to last. The default value is 2 hours (7200 seconds). If you would like a non-expiring session set the value to zero: 0</td> +</tr> +<tr> + <td class="td"><strong>sess_expire_on_close</strong></td> + <td class="td">FALSE</td> + <td class="td">TRUE/FALSE (boolean)</td> + <td class="td">Whether to cause the session to expire automatically when the browser window is closed.</td> +</tr> +<tr> + <td class="td"><strong>sess_encrypt_cookie</strong></td> + <td class="td">FALSE</td> + <td class="td">TRUE/FALSE (boolean)</td> + <td class="td">Whether to encrypt the session data.</td> +</tr> +<tr> + <td class="td"><strong>sess_use_database</strong></td> + <td class="td">FALSE</td> + <td class="td">TRUE/FALSE (boolean)</td> + <td class="td">Whether to save the session data to a database. You must create the table before enabling this option.</td> +</tr> +<tr> + <td class="td"><strong>sess_table_name</strong></td> + <td class="td">ci_sessions</td> + <td class="td">Any valid SQL table name</td> + <td class="td">The name of the session database table.</td> +</tr> +<tr> + <td class="td"><strong>sess_time_to_update</strong></td> + <td class="td">300</td> + <td class="td">Time in seconds</td> + <td class="td">This options controls how often the session class will regenerate itself and create a new session id.</td> +</tr> +<tr> + <td class="td"><strong>sess_match_ip</strong></td> + <td class="td">FALSE</td> + <td class="td">TRUE/FALSE (boolean)</td> + <td class="td">Whether to match the user's IP address when reading the session data. Note that some ISPs dynamically + changes the IP, so if you want a non-expiring session you will likely set this to FALSE.</td> +</tr> +<tr> + <td class="td"><strong>sess_match_useragent</strong></td> + <td class="td">TRUE</td> + <td class="td">TRUE/FALSE (boolean)</td> + <td class="td">Whether to match the User Agent when reading the session data.</td> +</tr> +</table> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="security.html">Security Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="trackback.html">Trackback Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/table.html b/user_guide/libraries/table.html new file mode 100755 index 0000000..c951496 --- /dev/null +++ b/user_guide/libraries/table.html @@ -0,0 +1,315 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<title>CodeIgniter User Guide : HTML Table Class</title> + +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +HTML Table Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>HTML Table Class</h1> + +<p>The Table Class provides functions that enable you to auto-generate HTML tables from arrays or database result sets.</p> + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the Table class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('table');</code> +<p>Once loaded, the Table library object will be available using: <dfn>$this->table</dfn></p> + + +<h2>Examples</h2> + +<p>Here is an example showing how you can create a table from a multi-dimensional array. +Note that the first array index will become the table heading (or you can set your own headings using the +<dfn>set_heading()</dfn> function described in the function reference below).</p> + +<code> +$this->load->library('table');<br /> +<br /> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('Name', 'Color', 'Size'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('Fred', 'Blue', 'Small'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('Mary', 'Red', 'Large'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('John', 'Green', 'Medium') <br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +echo $this->table->generate($data); +</code> + +<p>Here is an example of a table created from a database query result. The table class will automatically generate the +headings based on the table names (or you can set your own headings using the <dfn>set_heading()</dfn> function described +in the function reference below).</p> + +<code> +$this->load->library('table');<br /> +<br /> +$query = $this->db->query("SELECT * FROM my_table");<br /> +<br /> +echo $this->table->generate($query); +</code> + + +<p>Here is an example showing how you might create a table using discrete parameters:</p> + +<code> +$this->load->library('table');<br /> +<br /> +$this->table->set_heading('Name', 'Color', 'Size');<br /> +<br /> +$this->table->add_row('Fred', 'Blue', 'Small');<br /> +$this->table->add_row('Mary', 'Red', 'Large');<br /> +$this->table->add_row('John', 'Green', 'Medium');<br /> +<br /> +echo $this->table->generate(); +</code> + +<p>Here is the same example, except instead of individual parameters, arrays are used:</p> + +<code> +$this->load->library('table');<br /> +<br /> +$this->table->set_heading(array('Name', 'Color', 'Size'));<br /> +<br /> +$this->table->add_row(array('Fred', 'Blue', 'Small'));<br /> +$this->table->add_row(array('Mary', 'Red', 'Large'));<br /> +$this->table->add_row(array('John', 'Green', 'Medium'));<br /> +<br /> +echo $this->table->generate(); +</code> + + +<h2>Changing the Look of Your Table</h2> + +<p>The Table Class permits you to set a table template with which you can specify the design of your layout. Here is the template +prototype:</p> + +<code> +$tmpl = array (<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'table_open'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;table border="0" cellpadding="4" cellspacing="0">',<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_row_start'&nbsp;&nbsp;&nbsp;=> '&lt;tr>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_row_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/tr>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_cell_start'&nbsp;&nbsp;=> '&lt;th>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_cell_end'&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/th>',<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'row_start'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;tr>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'row_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/tr>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cell_start'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;td>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cell_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/td>',<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'row_alt_start'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;tr>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'row_alt_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/tr>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cell_alt_start'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;td>',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cell_alt_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/td>',<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'table_close'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/table>'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> + +<br /> +$this->table->set_template($tmpl); +</code> + +<p class="important"><strong>Note:</strong>&nbsp; You'll notice there are two sets of "row" blocks in the template. These permit you to create alternating row colors or design elements that alternate with each +iteration of the row data.</p> + +<p>You are NOT required to submit a complete template. If you only need to change parts of the layout you can simply submit those elements. +In this example, only the table opening tag is being changed:</p> + +<code> +$tmpl = array ( 'table_open'&nbsp;&nbsp;=> '&lt;table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br /> + +<br /> +$this->table->set_template($tmpl); +</code> + +<br /> +<h1>Function Reference</h1> + +<h2>$this->table->generate()</h2> +<p>Returns a string containing the generated table. Accepts an optional parameter which can be an array or a database result object.</p> + +<h2>$this->table->set_caption()</h2> + +<p>Permits you to add a caption to the table.</p> + +<code>$this->table->set_caption('Colors');</code> + +<h2>$this->table->set_heading()</h2> + +<p>Permits you to set the table heading. You can submit an array or discrete params:</p> + +<code>$this->table->set_heading('Name', 'Color', 'Size');</code> +<code>$this->table->set_heading(array('Name', 'Color', 'Size'));</code> + +<h2>$this->table->add_row()</h2> + +<p>Permits you to add a row to your table. You can submit an array or discrete params:</p> + +<code>$this->table->add_row('Blue', 'Red', 'Green');</code> +<code>$this->table->add_row(array('Blue', 'Red', 'Green'));</code> + +<p>If you would like to set an individual cell's tag attributes, you can use an associative array for that cell. The associative key <dfn>'data'</dfn> defines the cell's data. Any other key =&gt; val pairs are added as <dfn>key='val'</dfn> attributes to the tag:</p> + +<code>$cell = array('data' => 'Blue', 'class' => 'highlight', 'colspan' => 2);<br /> +$this->table->add_row($cell, 'Red', 'Green');<br /> +<br /> +// generates<br /> +// &lt;td class='highlight' colspan='2'&gt;Blue&lt;/td&gt;&lt;td&gt;Red&lt;/td&gt;&lt;td&gt;Green&lt;/td&gt; +</code> + +<h2>$this->table->make_columns()</h2> + +<p>This function takes a one-dimensional array as input and creates +a multi-dimensional array with a depth equal to the number of +columns desired. This allows a single array with many elements to be +displayed in a table that has a fixed column count. Consider this example:</p> + +<code> +$list = array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve');<br /> +<br /> +$new_list = $this->table->make_columns($list, 3);<br /> +<br /> +$this->table->generate($new_list);<br /> +<br /> +// Generates a table with this prototype<br /> +<br /> +&lt;table border="0" cellpadding="4" cellspacing="0"&gt;<br /> +&lt;tr&gt;<br /> +&lt;td&gt;one&lt;/td&gt;&lt;td&gt;two&lt;/td&gt;&lt;td&gt;three&lt;/td&gt;<br /> +&lt;/tr&gt;&lt;tr&gt;<br /> +&lt;td&gt;four&lt;/td&gt;&lt;td&gt;five&lt;/td&gt;&lt;td&gt;six&lt;/td&gt;<br /> +&lt;/tr&gt;&lt;tr&gt;<br /> +&lt;td&gt;seven&lt;/td&gt;&lt;td&gt;eight&lt;/td&gt;&lt;td&gt;nine&lt;/td&gt;<br /> +&lt;/tr&gt;&lt;tr&gt;<br /> +&lt;td&gt;ten&lt;/td&gt;&lt;td&gt;eleven&lt;/td&gt;&lt;td&gt;twelve&lt;/td&gt;&lt;/tr&gt;<br /> +&lt;/table&gt;</code> + + + +<h2>$this->table->set_template()</h2> + +<p>Permits you to set your template. You can submit a full or partial template.</p> + +<code> +$tmpl = array ( 'table_open'&nbsp;&nbsp;=> '&lt;table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br /> + +<br /> +$this->table->set_template($tmpl); +</code> + + +<h2>$this->table->set_empty()</h2> + +<p>Let's you set a default value for use in any table cells that are empty. You might, for example, set a non-breaking space:</p> + +<code> +$this->table->set_empty("&amp;nbsp;"); +</code> + +<h2>$this->table->clear()</h2> + +<p>Lets you clear the table heading and row data. If you need to show multiple tables with different data you should +to call this function after each table has been generated to empty the previous table information. Example:</p> + +<code> +$this->load->library('table');<br /> +<br /> +$this->table->set_heading('Name', 'Color', 'Size');<br /> +$this->table->add_row('Fred', 'Blue', 'Small');<br /> +$this->table->add_row('Mary', 'Red', 'Large');<br /> +$this->table->add_row('John', 'Green', 'Medium');<br /> +<br /> +echo $this->table->generate();<br /> +<br /> +<kbd>$this->table->clear();</kbd><br /> +<br /> +$this->table->set_heading('Name', 'Day', 'Delivery');<br /> +$this->table->add_row('Fred', 'Wednesday', 'Express');<br /> +$this->table->add_row('Mary', 'Monday', 'Air');<br /> +$this->table->add_row('John', 'Saturday', 'Overnight');<br /> +<br /> +echo $this->table->generate(); +</code> + +<h2>$this->table->function</h2> + +<p>Allows you to specify a native PHP function or a valid function array object to be applied to all cell data.</p> + +<code>$this->load->library('table');<br /> +<br /> +$this->table->set_heading('Name', 'Color', 'Size');<br /> +$this->table->add_row('Fred', '&lt;strong&gt;Blue&lt;/strong&gt;', 'Small');<br /> +<br /> +$this->table->function = 'htmlspecialchars';<br /> +echo $this->table->generate();<br /> +</code> + +<p>In the above example, all cell data would be ran through PHP's <dfn>htmlspecialchars()</dfn> function, resulting in:</p> + +<code>&lt;td&gt;Fred&lt;/td&gt;&lt;td&gt;&amp;lt;strong&amp;gt;Blue&amp;lt;/strong&amp;gt;&lt;/td&gt;&lt;td&gt;Small&lt;/td&gt;</code> +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;<a href="ftp.html">&nbsp;FTP Class</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="image_lib.html">Image Manipulation Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/trackback.html b/user_guide/libraries/trackback.html new file mode 100755 index 0000000..e03aad4 --- /dev/null +++ b/user_guide/libraries/trackback.html @@ -0,0 +1,246 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Trackback Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Trackback Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Trackback Class</h1> + +<p>The Trackback Class provides functions that enable you to send and receive Trackback data.</p> + + +<p>If you are not familiar with Trackbacks you'll find more information <a href="http://en.wikipedia.org/wiki/Trackback">here</a>.</p> + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the Trackback class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('trackback');</code> +<p>Once loaded, the Trackback library object will be available using: <dfn>$this->trackback</dfn></p> + + +<h2>Sending Trackbacks</h2> + +<p>A Trackback can be sent from any of your controller functions using code similar to this example:</p> + +<code>$this->load->library('trackback');<br /> +<br /> +$tb_data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ping_url'&nbsp;&nbsp;=> 'http://example.com/trackback/456',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'url'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'http://www.my-example.com/blog/entry/123',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 'The Title of My Entry',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'excerpt'&nbsp;&nbsp;&nbsp;=> 'The entry content.',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_name' => 'My Blog Name',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'charset'&nbsp;&nbsp;&nbsp;=> 'utf-8'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +if ( ! $this->trackback->send($tb_data))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $this->trackback->display_errors();<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo 'Trackback was sent!';<br /> +}</code> + +<p>Description of array data:</p> + +<ul> +<li><strong>ping_url</strong> - The URL of the site you are sending the Trackback to. You can send Trackbacks to multiple URLs by separating each URL with a comma.</li> +<li><strong>url</strong> - The URL to YOUR site where the weblog entry can be seen.</li> +<li><strong>title</strong> - The title of your weblog entry.</li> +<li><strong>excerpt</strong> - The content of your weblog entry. Note: the Trackback class will automatically send only the first 500 characters of your entry. It will also strip all HTML.</li> +<li><strong>blog_name</strong> - The name of your weblog.</li> +<li><strong>charset</strong> - The character encoding your weblog is written in. If omitted, UTF-8 will be used.</li> +</ul> + +<p>The Trackback sending function returns TRUE/FALSE (boolean) on success or failure. If it fails, you can retrieve the error message using:</p> + +<code>$this->trackback->display_errors();</code> + + +<h2>Receiving Trackbacks</h2> + +<p>Before you can receive Trackbacks you must create a weblog. If you don't have a blog yet there's no point in continuing.</p> + +<p>Receiving Trackbacks is a little more complex than sending them, only because you will need a database table in which to store them, +and you will need to validate the incoming trackback data. You are encouraged to implement a thorough validation process to +guard against spam and duplicate data. You may also want to limit the number of Trackbacks you allow from a particular IP within +a given span of time to further curtail spam. The process of receiving a Trackback is quite simple; +the validation is what takes most of the effort.</p> + +<h2>Your Ping URL</h2> + +<p>In order to accept Trackbacks you must display a Trackback URL next to each one of your weblog entries. This will be the URL +that people will use to send you Trackbacks (we will refer to this as your "Ping URL").</p> + +<p>Your Ping URL must point to a controller function where your Trackback receiving code is located, and the URL +must contain the ID number for each particular entry, so that when the Trackback is received you'll be +able to associate it with a particular entry.</p> + +<p>For example, if your controller class is called <dfn>Trackback</dfn>, and the receiving function is called <dfn>receive</dfn>, your +Ping URLs will look something like this:</p> + +<code>http://example.com/index.php/trackback/receive/<samp>entry_id</samp></code> + +<p>Where <samp>entry_id</samp> represents the individual ID number for each of your entries.</p> + + +<h2>Creating a Trackback Table</h2> + +<p>Before you can receive Trackbacks you must create a table in which to store them. Here is a basic prototype for such a table:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="13"> +CREATE TABLE trackbacks ( + tb_id int(10) unsigned NOT NULL auto_increment, + entry_id int(10) unsigned NOT NULL default 0, + url varchar(200) NOT NULL, + title varchar(100) NOT NULL, + excerpt text NOT NULL, + blog_name varchar(100) NOT NULL, + tb_date int(10) NOT NULL, + ip_address varchar(16) NOT NULL, + PRIMARY KEY `tb_id` (`tb_id`), + KEY `entry_id` (`entry_id`) +);</textarea> + + +<p>The Trackback specification only requires four pieces of information to be sent in a Trackback (url, title, excerpt, blog_name), +but to make the data more useful we've added a few more fields in the above table schema (date, IP address, etc.).</p> + +<h2>Processing a Trackback</h2> + +<p>Here is an example showing how you will receive and process a Trackback. The following +code is intended for use within the controller function where you expect to receive Trackbacks.</p> + +<code>$this->load->library('trackback');<br /> +$this->load->database();<br /> +<br /> +if ($this->uri->segment(3) == FALSE)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->trackback->send_error("Unable to determine the entry ID");<br /> +}<br /> +<br /> +if ( ! $this->trackback->receive())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->trackback->send_error("The Trackback did not contain valid data");<br /> +}<br /> +<br /> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'tb_id'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'entry_id'&nbsp;&nbsp;&nbsp;=> $this->uri->segment(3),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'url'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> $this->trackback->data('url'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> $this->trackback->data('title'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'excerpt'&nbsp;&nbsp;&nbsp;&nbsp;=> $this->trackback->data('excerpt'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'blog_name'&nbsp;&nbsp;=> $this->trackback->data('blog_name'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'tb_date'&nbsp;&nbsp;&nbsp;&nbsp;=> time(),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ip_address' => $this->input->ip_address()<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$sql = $this->db->insert_string('trackbacks', $data);<br /> +$this->db->query($sql);<br /> +<br /> +$this->trackback->send_success();</code> + +<h4>Notes:</h4> + +<p>The entry ID number is expected in the third segment of your URL. This is based on the URI example we gave earlier:</p> + +<code>http://example.com/index.php/trackback/receive/<samp>entry_id</samp></code> + +<p>Notice the entry_id is in the third URI segment, which you can retrieve using:</p> + +<code>$this->uri->segment(3);</code> + +<p>In our Trackback receiving code above, if the third segment is missing, we will issue an error. Without a valid entry ID, there's no +reason to continue.</p> + +<p>The <dfn>$this->trackback->receive()</dfn> function is simply a validation function that looks at the incoming data +and makes sure it contains the four pieces of data that are required (url, title, excerpt, blog_name). +It returns TRUE on success and FALSE on failure. If it fails you will issue an error message.</p> + +<p>The incoming Trackback data can be retrieved using this function:</p> + +<code>$this->trackback->data('<var>item</var>')</code> + +<p>Where <var>item</var> represents one of these four pieces of info: url, title, excerpt, or blog_name</p> + +<p>If the Trackback data is successfully received, you will issue a success message using:</p> + +<code>$this->trackback->send_success();</code> + +<p class="important"><strong>Note:</strong> The above code contains no data validation, which you are encouraged to add.</p> + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="sessions.html">Session Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="parser.html">Template Parser Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/typography.html b/user_guide/libraries/typography.html new file mode 100755 index 0000000..93e0cd4 --- /dev/null +++ b/user_guide/libraries/typography.html @@ -0,0 +1,160 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Typography Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Typography Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Typography Class</h1> + +<p>The Typography Class provides functions that help you format text.</p> + + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the Typography class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('typography');</code> +<p>Once loaded, the Typography library object will be available using: <dfn>$this->typography</dfn></p> + + +<h2>auto_typography()</h2> + +<p>Formats text so that it is semantically and typographically correct HTML. Takes a string as input and returns it with +the following formatting:</p> + +<ul> +<li>Surrounds paragraphs within &lt;p&gt;&lt;/p&gt; (looks for double line breaks to identify paragraphs).</li> +<li>Single line breaks are converted to &lt;br /&gt;, except those that appear within &lt;pre&gt; tags.</li> +<li>Block level elements, like &lt;div&gt; tags, are not wrapped within paragraphs, but their contained text is if it contains paragraphs.</li> +<li>Quotes are converted to correctly facing curly quote entities, except those that appear within tags.</li> +<li>Apostrophes are converted to curly apostrophe entities.</li> +<li>Double dashes (either like -- this or like--this) are converted to em&#8212;dashes.</li> +<li>Three consecutive periods either preceding or following a word are converted to ellipsis&#8230;</li> +<li>Double spaces following sentences are converted to non-breaking spaces to mimic double spacing.</li> +</ul> + +<p>Usage example:</p> + +<code>$string = $this->typography->auto_typography($string);</code> + +<h3>Parameters</h3> + +<p>There is one optional parameters that determines whether the parser should reduce more then two consecutive line breaks down to two. Use boolean <kbd>TRUE</kbd> or <kbd>FALSE</kbd>.</p> + +<p>By default the parser does not reduce line breaks. In other words, if no parameters are submitted, it is the same as doing this:</p> + +<code>$string = $this->typography->auto_typography($string, <kbd>FALSE</kbd>);</code> + + +<p class="important"><strong>Note:</strong> Typographic formatting can be processor intensive, particularly if you have a lot of content being formatted. +If you choose to use this function you may want to consider +<a href="../general/caching.html">caching</a> your pages.</p> + + + +<h2>format_characters()</h2> + +<p>This function is similar to the <dfn>auto_typography</dfn> function above, except that it only does character conversion:</p> + +<ul> +<li>Quotes are converted to correctly facing curly quote entities, except those that appear within tags.</li> +<li>Apostrophes are converted to curly apostrophe entities.</li> +<li>Double dashes (either like -- this or like--this) are converted to em&#8212;dashes.</li> +<li>Three consecutive periods either preceding or following a word are converted to ellipsis&#8230;</li> +<li>Double spaces following sentences are converted to non-breaking spaces to mimic double spacing.</li> +</ul> + +<p>Usage example:</p> + +<code>$string = $this->typography->format_characters($string);</code> + + +<h2>nl2br_except_pre()</h2> + +<p>Converts newlines to &lt;br /&gt; tags unless they appear within &lt;pre&gt; tags. +This function is identical to the native PHP <dfn>nl2br()</dfn> function, except that it ignores &lt;pre&gt; tags.</p> + +<p>Usage example:</p> + +<code>$string = $this->typography->nl2br_except_pre($string);</code> + +<h2>protect_braced_quotes</h2> + +<p>When using the Typography library in conjunction with the Template Parser library it can often be desirable to protect single + and double quotes within curly braces. To enable this, set the <kbd>protect_braced_quotes</kbd> class property to <samp>TRUE</samp>.</p> + +<p>Usage example:</p> + +<code>$this->load->library('typography');<br /> +$this->typography->protect_braced_quotes = TRUE; +</code> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="parser.html">Template Parser</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="unit_testing.html">Unit Testing Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/unit_testing.html b/user_guide/libraries/unit_testing.html new file mode 100755 index 0000000..553d439 --- /dev/null +++ b/user_guide/libraries/unit_testing.html @@ -0,0 +1,226 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Unit Testing Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Unit Testing Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Unit Testing Class</h1> + +<p>Unit testing is an approach to software development in which tests are written for each function in your application. +If you are not familiar with the concept you might do a little googling on the subject.</p> + +<p>CodeIgniter's Unit Test class is quite simple, consisting of an evaluation function and two result functions. +It's not intended to be a full-blown test suite but rather a simple mechanism to evaluate your code +to determine if it is producing the correct data type and result. +</p> + + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the Unit Test class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('unit_test');</code> +<p>Once loaded, the Unit Test object will be available using: <dfn>$this->unit</dfn></p> + + +<h2>Running Tests</h2> + +<p>Running a test involves supplying a test and an expected result to the following function:</p> + +<h2>$this->unit->run( <var>test</var>, <var>expected result</var>, '<var>test name</var>', '<var>notes</var>');</h2> + +<p>Where <var>test</var> is the result of the code you wish to test, <var>expected result</var> is the data type you expect, +<var>test name</var> is an optional name you can give your test, and <var>notes</var> are optional notes. Example:</p> + +<code>$test = 1 + 1;<br /> +<br /> +$expected_result = 2;<br /> +<br /> +$test_name = 'Adds one plus one';<br /> +<br /> +$this->unit->run($test, $expected_result, $test_name);</code> + +<p>The expected result you supply can either be a literal match, or a data type match. Here's an example of a literal:</p> + +<code>$this->unit->run('Foo', 'Foo');</code> + +<p>Here is an example of a data type match:</p> + +<code>$this->unit->run('Foo', 'is_string');</code> + +<p>Notice the use of "is_string" in the second parameter? This tells the function to evaluate whether your test is producing a string +as the result. Here is a list of allowed comparison types:</p> + +<ul> +<li>is_object</li> +<li>is_string</li> +<li>is_bool</li> +<li>is_true</li> +<li>is_false</li> +<li>is_int</li> +<li>is_numeric</li> +<li>is_float</li> +<li>is_double</li> +<li>is_array</li> +<li>is_null</li> +</ul> + + +<h2>Generating Reports</h2> + +<p>You can either display results after each test, or your can run several tests and generate a report at the end. +To show a report directly simply echo or return the <var>run</var> function:</p> + +<code>echo $this->unit->run($test, $expected_result);</code> + +<p>To run a full report of all tests, use this:</p> + +<code>echo $this->unit->report();</code> + +<p>The report will be formatted in an HTML table for viewing. If you prefer the raw data you can retrieve an array using:</p> + +<code>echo $this->unit->result();</code> + + +<h2>Strict Mode</h2> + +<p>By default the unit test class evaluates literal matches loosely. Consider this example:</p> + +<code>$this->unit->run(1, TRUE);</code> + +<p>The test is evaluating an integer, but the expected result is a boolean. PHP, however, due to it's loose data-typing +will evaluate the above code as TRUE using a normal equality test:</p> + +<code>if (1 == TRUE) echo 'This evaluates as true';</code> + +<p>If you prefer, you can put the unit test class in to strict mode, which will compare the data type as well as the value:</p> + +<code>if (1 === TRUE) echo 'This evaluates as FALSE';</code> + +<p>To enable strict mode use this:</p> + +<code>$this->unit->use_strict(TRUE);</code> + +<h2>Enabling/Disabling Unit Testing</h2> + +<p>If you would like to leave some testing in place in your scripts, but not have it run unless you need it, you can disable +unit testing using:</p> + +<code>$this->unit->active(FALSE)</code> + +<h2>Unit Test Display</h2> + +<p>When your unit test results display, the following items show by default:</p> + +<ul> + <li>Test Name (test_name)</li> + <li>Test Datatype (test_datatype)</li> + <li>Expected Datatype (res_datatype)</li> + <li>Result (result)</li> + <li>File Name (file)</li> + <li>Line Number (line)</li> + <li>Any notes you entered for the test (notes)</li> +</ul> + +You can customize which of these items get displayed by using <kbd>$this->unit->set_items()</kbd>. For example, if you only wanted the test name and the result displayed:</p> + +<h3>Customizing displayed tests</h3> + +<code> + $this->unit->set_test_items(array('test_name', 'result')); +</code> + +<h3>Creating a Template</h3> + +<p>If you would like your test results formatted differently then the default you can set your own template. Here is an +example of a simple template. Note the required pseudo-variables:</p> + +<code> +$str = '<br /> +&lt;table border="0" cellpadding="4" cellspacing="1"><br /> +&nbsp;&nbsp;&nbsp;&nbsp;<kbd>{rows}</kbd><br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr><br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td><kbd>{item}</kbd>&lt;/td><br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td><kbd>{result}</kbd>&lt;/td><br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr><br /> +&nbsp;&nbsp;&nbsp;&nbsp;<kbd>{/rows}</kbd><br /> +&lt;/table>';<br /> +<br /> +$this->unit->set_template($str); +</code> + +<p class="important"><strong>Note:</strong> Your template must be declared <strong>before</strong> running the unit test process.</p> + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="typography.html">Typography Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="uri.html">URI Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/uri.html b/user_guide/libraries/uri.html new file mode 100755 index 0000000..2f4f34b --- /dev/null +++ b/user_guide/libraries/uri.html @@ -0,0 +1,252 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>URI Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +URI Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>URI Class</h1> + +<p>The URI Class provides functions that help you retrieve information from your URI strings. If you use URI routing, you can +also retrieve information about the re-routed segments.</p> + +<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> + +<h2>$this->uri->segment(<var>n</var>)</h2> + +<p>Permits you to retrieve a specific segment. Where <var>n</var> is the segment number you wish to retrieve. +Segments are numbered from left to right. For example, if your full URL is this:</p> + +<code>http://example.com/index.php/news/local/metro/crime_is_up</code> + +<p>The segment numbers would be this:</p> + +<ol> +<li>news</li> +<li>local</li> +<li>metro</li> +<li>crime_is_up</li> +</ol> + +<p>By default the function returns FALSE (boolean) if the segment does not exist. There is an optional second parameter that +permits you to set your own default value if the segment is missing. +For example, this would tell the function to return the number zero in the event of failure:</p> + +<code>$product_id = $this->uri->segment(3, 0);</code> + +<p>It helps avoid having to write code like this:</p> + +<code>if ($this->uri->segment(3) === FALSE)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$product_id = 0;<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$product_id = $this->uri->segment(3);<br /> +}<br /> +</code> + +<h2>$this->uri->rsegment(<var>n</var>)</h2> + +<p>This function is identical to the previous one, except that it lets you retrieve a specific segment from your +re-routed URI in the event you are using CodeIgniter's <a href="../general/routing.html">URI Routing</a> feature.</p> + + +<h2>$this->uri->slash_segment(<var>n</var>)</h2> + +<p>This function is almost identical to <dfn>$this->uri->segment()</dfn>, except it adds a trailing and/or leading slash based on the second +parameter. If the parameter is not used, a trailing slash added. Examples:</p> + +<code>$this->uri->slash_segment(<var>3</var>);<br /> +$this->uri->slash_segment(<var>3</var>, 'leading');<br /> +$this->uri->slash_segment(<var>3</var>, 'both');</code> + +<p>Returns:</p> + +<ol> +<li>segment/</li> +<li>/segment</li> +<li>/segment/</li> +</ol> + + +<h2>$this->uri->slash_rsegment(<var>n</var>)</h2> + +<p>This function is identical to the previous one, except that it lets you add slashes a specific segment from your +re-routed URI in the event you are using CodeIgniter's <a href="../general/routing.html">URI Routing</a> feature.</p> + + + +<h2>$this->uri->uri_to_assoc(<var>n</var>)</h2> + +<p>This function lets you turn URI segments into and associative array of key/value pairs. Consider this URI:</p> + +<code>index.php/user/search/name/joe/location/UK/gender/male</code> + +<p>Using this function you can turn the URI into an associative array with this prototype:</p> + +<code>[array]<br /> +(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'name' => 'joe'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'location' => 'UK'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;'gender' => 'male'<br /> +)</code> + +<p>The first parameter of the function lets you set an offset. By default it is set to <kbd>3</kbd> since your +URI will normally contain a controller/function in the first and second segments. Example:</p> + +<code> +$array = $this->uri->uri_to_assoc(3);<br /> +<br /> +echo $array['name']; +</code> + + +<p>The second parameter lets you set default key names, so that the array returned by the function will always contain expected indexes, even if missing from the URI. Example:</p> + +<code> +$default = array('name', 'gender', 'location', 'type', 'sort');<br /> +<br /> +$array = $this->uri->uri_to_assoc(3, $default);</code> + +<p>If the URI does not contain a value in your default, an array index will be set to that name, with a value of FALSE.</p> + +<p>Lastly, if a corresponding value is not found for a given key (if there is an odd number of URI segments) the value will be set to FALSE (boolean).</p> + + +<h2>$this->uri->ruri_to_assoc(<var>n</var>)</h2> + +<p>This function is identical to the previous one, except that it creates an associative array using the +re-routed URI in the event you are using CodeIgniter's <a href="../general/routing.html">URI Routing</a> feature.</p> + + +<h2>$this->uri->assoc_to_uri()</h2> + +<p>Takes an associative array as input and generates a URI string from it. The array keys will be included in the string. Example:</p> + +<code>$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red');<br /> +<br /> +$str = $this->uri->assoc_to_uri($array);<br /> +<br /> +// Produces: product/shoes/size/large/color/red +</code> + + +<h2>$this->uri->uri_string()</h2> + +<p>Returns a string with the complete URI. For example, if this is your full URL:</p> + +<code>http://example.com/index.php/news/local/345</code> + +<p>The function would return this:</p> + +<code>news/local/345</code> + + +<h2>$this->uri->ruri_string()</h2> + +<p>This function is identical to the previous one, except that it returns the +re-routed URI in the event you are using CodeIgniter's <a href="../general/routing.html">URI Routing</a> feature.</p> + + + +<h2>$this->uri->total_segments()</h2> + +<p>Returns the total number of segments.</p> + + +<h2>$this->uri->total_rsegments()</h2> + +<p>This function is identical to the previous one, except that it returns the total number of segments in your +re-routed URI in the event you are using CodeIgniter's <a href="../general/routing.html">URI Routing</a> feature.</p> + + + +<h2>$this->uri->segment_array()</h2> + +<p>Returns an array containing the URI segments. For example:</p> + +<code> +$segs = $this->uri->segment_array();<br /> +<br /> +foreach ($segs as $segment)<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $segment;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;br />';<br /> +}</code> + +<h2>$this->uri->rsegment_array()</h2> + +<p>This function is identical to the previous one, except that it returns the array of segments in your +re-routed URI in the event you are using CodeIgniter's <a href="../general/routing.html">URI Routing</a> feature.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="unit_testing.html">Unit Testing Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="user_agent.html">User Agent Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/user_agent.html b/user_guide/libraries/user_agent.html new file mode 100755 index 0000000..c3ff470 --- /dev/null +++ b/user_guide/libraries/user_agent.html @@ -0,0 +1,226 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>User Agent Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +User Agent Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>User Agent Class</h1> + +<p>The User Agent Class provides functions that help identify information about the browser, mobile device, or robot visiting your site. +In addition you can get referrer information as well as language and supported character-set information.</p> + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the User Agent class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('user_agent');</code> +<p>Once loaded, the object will be available using: <dfn>$this->agent</dfn></p> + +<h2>User Agent Definitions</h2> + +<p>The user agent name definitions are located in a config file located at: <dfn>application/config/user_agents.php</dfn>. You may add items to the +various user agent arrays if needed.</p> + +<h2>Example</h2> + +<p>When the User Agent class is initialized it will attempt to determine whether the user agent browsing your site is +a web browser, a mobile device, or a robot. It will also gather the platform information if it is available.</p> + + +<code> +$this->load->library('user_agent');<br /> +<br /> +if ($this->agent->is_browser())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$agent = $this->agent->browser().' '.$this->agent->version();<br /> +}<br /> +elseif ($this->agent->is_robot())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$agent = $this->agent->robot();<br /> +}<br /> +elseif ($this->agent->is_mobile())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$agent = $this->agent->mobile();<br /> +}<br /> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$agent = 'Unidentified User Agent';<br /> +}<br /> +<br /> +echo $agent;<br /> +<br /> +echo $this->agent->platform(); // Platform info (Windows, Linux, Mac, etc.) +</code> + + +<h1>Function Reference</h1> + + +<h2>$this->agent->is_browser()</h2> +<p>Returns TRUE/FALSE (boolean) if the user agent is a known web browser.</p> + +<code> if ($this->agent->is_browser('Safari'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo 'You are using Safari.';<br /> +}<br /> +else if ($this->agent->is_browser())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo 'You are using a browser.';<br /> +}</code> + +<p class="important"><strong>Note:</strong>&nbsp; The string "Safari" in this example is an array key in the list of browser definitions. +You can find this list in <dfn>application/config/user_agents.php</dfn> if you want to add new browsers or change the stings.</p> + +<h2>$this->agent->is_mobile()</h2> +<p>Returns TRUE/FALSE (boolean) if the user agent is a known mobile device.</p> + +<code> if ($this->agent->is_mobile('iphone'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->load->view('iphone/home');<br /> +}<br /> +else if ($this->agent->is_mobile())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->load->view('mobile/home');<br /> +}<br/> +else<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;$this->load->view('web/home');<br /> +}</code> + +<h2>$this->agent->is_robot()</h2> +<p>Returns TRUE/FALSE (boolean) if the user agent is a known robot.</p> + +<p class="important"><strong>Note:</strong>&nbsp; The user agent library only contains the most common robot +definitions. It is not a complete list of bots. There are hundreds of them so searching for each one would not be +very efficient. If you find that some bots that commonly visit your site are missing from the list you can add them to your +<dfn>application/config/user_agents.php</dfn> file.</p> + +<h2>$this->agent->is_referral()</h2> +<p>Returns TRUE/FALSE (boolean) if the user agent was referred from another site.</p> + + +<h2>$this->agent->browser()</h2> +<p>Returns a string containing the name of the web browser viewing your site.</p> + +<h2>$this->agent->version()</h2> +<p>Returns a string containing the version number of the web browser viewing your site.</p> + +<h2>$this->agent->mobile()</h2> +<p>Returns a string containing the name of the mobile device viewing your site.</p> + +<h2>$this->agent->robot()</h2> +<p>Returns a string containing the name of the robot viewing your site.</p> + +<h2>$this->agent->platform()</h2> +<p>Returns a string containing the platform viewing your site (Linux, Windows, OS X, etc.).</p> + +<h2>$this->agent->referrer()</h2> +<p>The referrer, if the user agent was referred from another site. Typically you'll test for this as follows:</p> + +<code> if ($this->agent->is_referral())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $this->agent->referrer();<br /> +}</code> + + +<h2>$this->agent->agent_string()</h2> +<p>Returns a string containing the full user agent string. Typically it will be something like this:</p> + +<code>Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2</code> + + +<h2>$this->agent->accept_lang()</h2> +<p>Lets you determine if the user agent accepts a particular language. Example:</p> + +<code>if ($this->agent->accept_lang('en'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo 'You accept English!';<br /> +}</code> + +<p class="important"><strong>Note:</strong> This function is not typically very reliable +since some browsers do not provide language info, and even among those that do, it is not always accurate. </p> + + + +<h2>$this->agent->accept_charset()</h2> +<p>Lets you determine if the user agent accepts a particular character set. Example:</p> + +<code>if ($this->agent->accept_charset('utf-8'))<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo 'You browser supports UTF-8!';<br /> +}</code> + +<p class="important"><strong>Note:</strong> This function is not typically very reliable +since some browsers do not provide character-set info, and even among those that do, it is not always accurate. </p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="uri.html">URI Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="xmlrpc.html">XML-RPC Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/xmlrpc.html b/user_guide/libraries/xmlrpc.html new file mode 100755 index 0000000..139ba68 --- /dev/null +++ b/user_guide/libraries/xmlrpc.html @@ -0,0 +1,519 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>XML-RPC and XML-RPC Server Classes : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +XML-RPC and XML-RPC Server Classes +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>XML-RPC and XML-RPC Server Classes</h1> + + +<p>CodeIgniter's XML-RPC classes permit you to send requests to another server, or set up +your own XML-RPC server to receive requests.</p> + + +<h2>What is XML-RPC?</h2> + +<p>Quite simply it is a way for two computers to communicate over the internet using XML. +One computer, which we will call the <dfn>client</dfn>, sends an XML-RPC <strong>request</strong> to +another computer, which we will call the <dfn>server</dfn>. Once the server receives and processes the request it +will send back a <strong>response</strong> to the client.</p> + +<p>For example, using the MetaWeblog API, an XML-RPC Client (usually a desktop publishing tool) will +send a request to an XML-RPC Server running on your site. This request might be a new weblog entry +being sent for publication, or it could be a request for an existing entry for editing. + +When the XML-RPC Server receives this request it will examine it to determine which class/method should be called to process the request. +Once processed, the server will then send back a response message.</p> + +<p>For detailed specifications, you can visit the <a href="http://www.xmlrpc.com/">XML-RPC</a> site.</p> + +<h2>Initializing the Class</h2> + +<p>Like most other classes in CodeIgniter, the XML-RPC and XML-RPCS classes are initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<p>To load the XML-RPC class you will use:</p> +<code>$this->load->library('xmlrpc');</code> +<p>Once loaded, the xml-rpc library object will be available using: <dfn>$this->xmlrpc</dfn></p> + +<p>To load the XML-RPC Server class you will use:</p> +<code> +$this->load->library('xmlrpc');<br /> +$this->load->library('xmlrpcs'); +</code> +<p>Once loaded, the xml-rpcs library object will be available using: <dfn>$this->xmlrpcs</dfn></p> + +<p class="important"><strong>Note:</strong>&nbsp; When using the XML-RPC Server class you must load BOTH the XML-RPC class and the XML-RPC Server class.</p> + + + +<h2>Sending XML-RPC Requests</h2> + +<p>To send a request to an XML-RPC server you must specify the following information:</p> + +<ul> +<li>The URL of the server</li> +<li>The method on the server you wish to call</li> +<li>The <em>request</em> data (explained below).</li> +</ul> + +<p>Here is a basic example that sends a simple Weblogs.com ping to the <a href="http://pingomatic.com/">Ping-o-Matic</a></p> + + +<code>$this->load->library('xmlrpc');<br /> +<br /> +$this->xmlrpc->server('http://rpc.pingomatic.com/', 80);<br /> +$this->xmlrpc->method('weblogUpdates.ping');<br /> + +<br /> +$request = array('My Photoblog', 'http://www.my-site.com/photoblog/');<br /> +$this->xmlrpc->request($request);<br /> +<br /> +if ( ! $this->xmlrpc->send_request())<br /> +{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;echo $this-&gt;xmlrpc->display_error();<br /> +}</code> + +<h3>Explanation</h3> + +<p>The above code initializes the XML-RPC class, sets the server URL and method to be called (weblogUpdates.ping). The +request (in this case, the title and URL of your site) is placed into an array for transportation, and +compiled using the request() function. +Lastly, the full request is sent. If the <dfn>send_request()</dfn> method returns false we will display the error message +sent back from the XML-RPC Server.</p> + +<h2>Anatomy of a Request</h2> + +<p>An XML-RPC <dfn>request</dfn> is simply the data you are sending to the XML-RPC server. Each piece of data in a request +is referred to as a <dfn>request parameter</dfn>. The above example has two parameters: +The URL and title of your site. When the XML-RPC server receives your request, it will look for parameters it requires.</p> + +<p>Request parameters must be placed into an array for transportation, and each parameter can be one +of seven data types (strings, numbers, dates, etc.). If your parameters are something other than strings +you will have to include the data type in the request array.</p> + +<p>Here is an example of a simple array with three parameters:</p> + +<code>$request = array('John', 'Doe', 'www.some-site.com');<br /> +$this->xmlrpc->request($request);</code> + +<p>If you use data types other than strings, or if you have several different data types, you will place +each parameter into its own array, with the data type in the second position:</p> + +<code> +$request = array (<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('John', 'string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('Doe', 'string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(FALSE, 'boolean'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(12345, 'int')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); +<br /> +$this->xmlrpc->request($request);</code> + +The <a href="#datatypes">Data Types</a> section below has a full list of data types. + + + +<h2>Creating an XML-RPC Server</h2> + +<p>An XML-RPC Server acts as a traffic cop of sorts, waiting for incoming requests and redirecting them to the +appropriate functions for processing.</p> + +<p>To create your own XML-RPC server involves initializing the XML-RPC Server class in your controller where you expect the incoming +request to appear, then setting up an array with mapping instructions so that incoming requests can be sent to the appropriate +class and method for processing.</p> + +<p>Here is an example to illustrate:</p> + +<code> +$this->load->library('xmlrpc');<br /> +$this->load->library('xmlrpcs');<br /> +<br /> +$config['functions']['<var>new_post</var>'] = array('function' => '<dfn>My_blog.new_entry</dfn>'),<br /> +$config['functions']['<var>update_post</var>'] = array('function' => '<dfn>My_blog.update_entry</dfn>');<br /> +$config['object'] = $this;<br /> +<br /> +$this->xmlrpcs->initialize($config);<br /> +$this->xmlrpcs->serve();</code> + +<p>The above example contains an array specifying two method requests that the Server allows. +The allowed methods are on the left side of the array. When either of those are received, they will be mapped to the class and method on the right.</p> + +<p>The '<var>object</var>' key is a special key that you pass an instantiated class object with, which is necessary when the method you are mapping to is not + part of the CodeIgniter super object.</p> + +<p>In other words, if an XML-RPC Client sends a request for the <var>new_post</var> method, your +server will load the <dfn>My_blog</dfn> class and call the <dfn>new_entry</dfn> function. +If the request is for the <var>update_post</var> method, your +server will load the <dfn>My_blog</dfn> class and call the <dfn>update_entry</dfn> function.</p> + +<p>The function names in the above example are arbitrary. You'll decide what they should be called on your server, +or if you are using standardized APIs, like the Blogger or MetaWeblog API, you'll use their function names.</p> + +<p>There are two additional configuration keys you may make use of when initializing the server class: <var>debug</var> can be set to TRUE in order to enable debugging, and <var>xss_clean</var> may be set to FALSE to prevent sending data through the Security library's xss_clean function. + +<h2>Processing Server Requests</h2> + +<p>When the XML-RPC Server receives a request and loads the class/method for processing, it will pass +an object to that method containing the data sent by the client.</p> + +<p>Using the above example, if the <var>new_post</var> method is requested, the server will expect a class +to exist with this prototype:</p> + +<code>class <kbd>My_blog</kbd> extends CI_Controller {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function <kbd>new_post</kbd>(<var>$request</var>)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> + <br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +} +</code> + +<p>The <var>$request</var> variable is an object compiled by the Server, which contains the data sent by the XML-RPC Client. +Using this object you will have access to the <em>request parameters</em> enabling you to process the request. When +you are done you will send a <dfn>Response</dfn> back to the Client.</p> + +<p>Below is a real-world example, using the Blogger API. One of the methods in the Blogger API is <dfn>getUserInfo()</dfn>. +Using this method, an XML-RPC Client can send the Server a username and password, in return the Server sends +back information about that particular user (nickname, user ID, email address, etc.). Here is how the processing +function might look:</p> + + +<code>class <kbd>My_blog</kbd> extends CI_Controller {<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;function <kbd>getUserInfo</kbd>(<var>$request</var>)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{<br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$username = 'smitty';<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$password = 'secretsmittypass';<br /><br /> + +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->load->library('xmlrpc');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$parameters&nbsp;=&nbsp;$request->output_parameters();<br /> +&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($parameters['1'] != $username AND $parameters['2'] != $password)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this->xmlrpc->send_error_message('100',&nbsp;'Invalid&nbsp;Access');<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$response&nbsp;=&nbsp;array(array('nickname'&nbsp;&nbsp;=>&nbsp;array('Smitty','string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'userid'&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;array('99','string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'url'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;array('http://yoursite.com','string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'email'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;array('jsmith@yoursite.com','string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'lastname'&nbsp;&nbsp;=>&nbsp;array('Smith','string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'firstname'&nbsp;=>&nbsp;array('John','string')<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'struct');<br /> +<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $this->xmlrpc->send_response($response);<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}<br /> +} +</code> + +<h3>Notes:</h3> +<p>The <dfn>output_parameters()</dfn> function retrieves an indexed array corresponding to the request parameters sent by the client. +In the above example, the output parameters will be the username and password.</p> + +<p>If the username and password sent by the client were not valid, and error message is returned using <dfn>send_error_message()</dfn>.</p> + +<p>If the operation was successful, the client will be sent back a response array containing the user's info.</p> + + +<h2>Formatting a Response</h2> + +<p>Similar to <em>Requests</em>, <em>Responses</em> must be formatted as an array. However, unlike requests, a response is an array +<strong>that contains a single item</strong>. This item can be an array with several additional arrays, but there +can be only one primary array index. In other words, the basic prototype is this:</p> + +<code>$response = array('Response data', 'array');</code> + +<p>Responses, however, usually contain multiple pieces of information. In order to accomplish this we must put the response into its own +array so that the primary array continues to contain a single piece of data. Here's an example showing how this might be accomplished:</p> + +<code> +$response = array (<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'first_name' => array('John', 'string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'last_name' => array('Doe', 'string'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'member_id' => array(123435, 'int'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'todo_list' => array(array('clean house', 'call mom', 'water plants'), 'array'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'struct'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); +</code> + +<p class="important">Notice that the above array is formatted as a <dfn>struct</dfn>. This is the most common data type for responses.</p> + +<p>As with Requests, a response can be one of the seven data types listed in the <a href="#datatypes">Data Types</a> section.</p> + + +<h2>Sending an Error Response</h2> + +<p>If you need to send the client an error response you will use the following:</p> + +<code>return $this->xmlrpc->send_error_message('123', 'Requested data not available');</code> + +<p>The first parameter is the error number while the second parameter is the error message.</p> + + + + + + +<h2>Creating Your Own Client and Server</h2> + +<p>To help you understand everything we've covered thus far, let's create a couple controllers that act as +XML-RPC Client and Server. You'll use the Client to send a request to the Server and receive a response.</p> + +<h3>The Client</h3> + +<p>Using a text editor, create a controller called <dfn>xmlrpc_client.php</dfn>. +In it, place this code and save it to your <samp>applications/controllers/</samp> folder:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="32">&lt;?php + +class Xmlrpc_client extends CI_Controller { + + function index() + { + $this->load->helper('url'); + $server_url = site_url('xmlrpc_server'); + + $this->load->library('xmlrpc'); + + $this->xmlrpc->server($server_url, 80); + $this->xmlrpc->method('Greetings'); + + $request = array('How is it going?'); + $this->xmlrpc->request($request); + + if ( ! $this->xmlrpc->send_request()) + { + echo $this->xmlrpc->display_error(); + } + else + { + echo '<pre>'; + print_r($this->xmlrpc->display_response()); + echo '</pre>'; + } + } +} +?></textarea> + +<p>Note: In the above code we are using a "url helper". You can find more information in the <a href="../general/helpers.html">Helpers Functions</a> page.</p> + +<h3>The Server</h3> + +<p>Using a text editor, create a controller called <dfn>xmlrpc_server.php</dfn>. +In it, place this code and save it to your <samp>applications/controllers/</samp> folder:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="30">&lt;?php + +class Xmlrpc_server extends CI_Controller { + + function index() + { + $this->load->library('xmlrpc'); + $this->load->library('xmlrpcs'); + + $config['functions']['Greetings'] = array('function' => 'Xmlrpc_server.process'); + + $this->xmlrpcs->initialize($config); + $this->xmlrpcs->serve(); + } + + + function process($request) + { + $parameters = $request->output_parameters(); + + $response = array( + array( + 'you_said' => $parameters['0'], + 'i_respond' => 'Not bad at all.'), + 'struct'); + + return $this->xmlrpc->send_response($response); + } +} +?></textarea> + +<h3>Try it!</h3> + +<p>Now visit the your site using a URL similar to this:</p> +<code>example.com/index.php/<var>xmlrpc_client</var>/</code> + +<p>You should now see the message you sent to the server, and its response back to you.</p> + +<p>The client you created sends a message ("How's is going?") to the server, along with a request for the "Greetings" method. +The Server receives the request and maps it to the "process" function, where a response is sent back.</p> + +<h2>Using Associative Arrays In a Request Parameter</h2> + +<p>If you wish to use an associative array in your method parameters you will need to use a struct datatype:</p> + +<code>$request = array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Param 0<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name'=&gt;'John'<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'struct'<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Param 1<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'size'=&gt;'large',<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'shape'=&gt;'round'<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'struct'<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> + $this-&gt;xmlrpc-&gt;request($request);</code> + +<p>You can retrieve the associative array when processing the request in the Server.</p> + +<code>$parameters = $request-&gt;output_parameters();<br /> + $name = $parameters['0']['name'];<br /> + $size = $parameters['1']['size'];<br /> + $size = $parameters['1']['shape']; </code> + +<h1>XML-RPC Function Reference</h1> + +<h2>$this->xmlrpc->server()</h2> +<p>Sets the URL and port number of the server to which a request is to be sent:</p> +<code>$this->xmlrpc->server('http://www.sometimes.com/pings.php', 80);</code> + +<h2>$this->xmlrpc->timeout()</h2> +<p>Set a time out period (in seconds) after which the request will be canceled:</p> +<code>$this->xmlrpc->timeout(6);</code> + +<h2>$this->xmlrpc->method()</h2> +<p>Sets the method that will be requested from the XML-RPC server:</p> +<code>$this->xmlrpc->method('<var>method</var>');</code> + +<p>Where <var>method</var> is the name of the method.</p> + +<h2>$this->xmlrpc->request()</h2> +<p>Takes an array of data and builds request to be sent to XML-RPC server:</p> +<code>$request = array(array('My Photoblog', 'string'), 'http://www.yoursite.com/photoblog/');<br /> +$this->xmlrpc->request($request);</code> + +<h2>$this->xmlrpc->send_request()</h2> +<p>The request sending function. Returns boolean TRUE or FALSE based on success for failure, enabling it to be used conditionally.</p> + +<h2>$this->xmlrpc->set_debug(TRUE);</h2> +<p>Enables debugging, which will display a variety of information and error data helpful during development.</p> + + +<h2>$this->xmlrpc->display_error()</h2> +<p>Returns an error message as a string if your request failed for some reason.</p> +<code>echo $this->xmlrpc->display_error();</code> + +<h2>$this->xmlrpc->display_response()</h2> +<p>Returns the response from the remote server once request is received. The response will typically be an associative array.</p> +<code>$this->xmlrpc->display_response();</code> + +<h2>$this->xmlrpc->send_error_message()</h2> +<p>This function lets you send an error message from your server to the client. First parameter is the error number while the second parameter +is the error message.</p> +<code>return $this->xmlrpc->send_error_message('123', 'Requested data not available');</code> + +<h2>$this->xmlrpc->send_response()</h2> +<p>Lets you send the response from your server to the client. An array of valid data values must be sent with this method.</p> +<code>$response = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'flerror' => array(FALSE, 'boolean'),<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'message' => "Thanks for the ping!"<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'struct');<br /> +return $this->xmlrpc->send_response($response);</code> + + +<a name="datatypes"></a> +<h2>Data Types</h2> + +<p>According to the <a href="http://www.xmlrpc.com/spec">XML-RPC spec</a> there are seven types +of values that you can send via XML-RPC:</p> + +<ul> +<li><em>int</em> or <em>i4</em></li> +<li><em>boolean</em></li> +<li><em>string</em></li> +<li><em>double</em></li> +<li><em>dateTime.iso8601</em></li> +<li><em>base64</em></li> +<li><em>struct</em> (contains array of values)</li> +<li><em>array</em> (contains array of values)</li> +</ul> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="user_agent.html">User Agent Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="zip.html">Zip Encoding Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/libraries/zip.html b/user_guide/libraries/zip.html new file mode 100755 index 0000000..0a03653 --- /dev/null +++ b/user_guide/libraries/zip.html @@ -0,0 +1,288 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Zip Encoding Class : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Zip Encoding Class +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Zip Encoding Class</h1> +<p>CodeIgniter's Zip Encoding Class classes permit you to create Zip archives. Archives can be downloaded to your +desktop or saved to a directory.</p> + + +<h2>Initializing the Class</h2> +<p>Like most other classes in CodeIgniter, the Zip class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p> + +<code>$this->load->library('zip');</code> +<p>Once loaded, the Zip library object will be available using: <dfn>$this->zip</dfn></p> + + +<h2>Usage Example</h2> + +<p>This example demonstrates how to compress a file, save it to a folder on your server, and download it to your desktop.</p> + +<code> +$name = 'mydata1.txt';<br /> +$data = 'A Data String!';<br /> +<br /> +$this->zip->add_data($name, $data);<br /> +<br /> +// Write the zip file to a folder on your server. Name it "my_backup.zip"<br /> +$this->zip->archive('/path/to/directory/my_backup.zip'); +<br /><br /> + // Download the file to your desktop. Name it "my_backup.zip"<br /> +$this->zip->download('my_backup.zip'); +</code> + +<h1>Function Reference</h1> + +<h2>$this->zip->add_data()</h2> + +<p>Permits you to add data to the Zip archive. The first parameter must contain the name you would like +given to the file, the second parameter must contain the file data as a string:</p> + +<code> +$name = 'my_bio.txt';<br /> +$data = 'I was born in an elevator...';<br /> +<br /> +$this->zip->add_data($name, $data); +</code> + +<p>You are allowed multiple calls to this function in order to +add several files to your archive. Example:</p> + +<code> +$name = 'mydata1.txt';<br /> +$data = 'A Data String!';<br /> +$this->zip->add_data($name, $data);<br /> +<br /> +$name = 'mydata2.txt';<br /> +$data = 'Another Data String!';<br /> +$this->zip->add_data($name, $data);<br /> +</code> + +<p>Or you can pass multiple files using an array:</p> + +<code> +$data = array(<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'mydata1.txt' => 'A Data String!',<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'mydata2.txt' => 'Another Data String!'<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br /> +<br /> +$this->zip->add_data($data);<br /> +<br /> +$this->zip->download('my_backup.zip'); +</code> + +<p>If you would like your compressed data organized into sub-folders, include the path as part of the filename:</p> + +<code> +$name = '<kbd>personal/</kbd>my_bio.txt';<br /> +$data = 'I was born in an elevator...';<br /> +<br /> +$this->zip->add_data($name, $data); +</code> + +<p>The above example will place <dfn>my_bio.txt</dfn> inside a folder called <kbd>personal</kbd>.</p> + + +<h2>$this->zip->add_dir()</h2> + +<p>Permits you to add a directory. Usually this function is unnecessary since you can place your data into folders when +using <dfn>$this->zip->add_data()</dfn>, but if you would like to create an empty folder you can do so. Example:</p> + +<code>$this->zip->add_dir('myfolder'); // Creates a folder called "myfolder"</code> + + + +<h2>$this->zip->read_file()</h2> + +<p>Permits you to compress a file that already exists somewhere on your server. Supply a file path and the zip class will +read it and add it to the archive:</p> + +<code> +$path = '/path/to/photo.jpg';<br /><br /> +$this->zip->read_file($path); +<br /><br /> + // Download the file to your desktop. Name it "my_backup.zip"<br /> +$this->zip->download('my_backup.zip'); +</code> + +<p>If you would like the Zip archive to maintain the directory structure of the file in it, pass <kbd>TRUE</kbd> (boolean) in the +second parameter. Example:</p> + + +<code> +$path = '/path/to/photo.jpg';<br /><br /> +$this->zip->read_file($path, <kbd>TRUE</kbd>); +<br /><br /> + // Download the file to your desktop. Name it "my_backup.zip"<br /> +$this->zip->download('my_backup.zip'); +</code> + +<p>In the above example, <dfn>photo.jpg</dfn> will be placed inside two folders: <kbd>path/to/</kbd></p> + + + +<h2>$this->zip->read_dir()</h2> + +<p>Permits you to compress a folder (and its contents) that already exists somewhere on your server. Supply a file path to the +directory and the zip class will recursively read it and recreate it as a Zip archive. All files contained within the +supplied path will be encoded, as will any sub-folders contained within it. Example:</p> + +<code> +$path = '/path/to/your/directory/';<br /><br /> +$this->zip->read_dir($path); +<br /><br /> + // Download the file to your desktop. Name it "my_backup.zip"<br /> +$this->zip->download('my_backup.zip'); +</code> + +<p>By default the Zip archive will place all directories listed in the first parameter inside the zip. If you want the tree preceding the target folder to be ignored +you can pass <kbd>FALSE</kbd> (boolean) in the second parameter. Example:</p> + +<code> +$path = '/path/to/your/directory/';<br /><br /> +$this->zip->read_dir($path, FALSE); +</code> + +<p>This will create a ZIP with the folder "directory" inside, then all sub-folders stored correctly inside that, but will not include the folders <samp>/path/to/your</samp>.</p> + + + + +<h2>$this->zip->archive()</h2> + +<p>Writes the Zip-encoded file to a directory on your server. Submit a valid server path ending in the file name. Make sure the +directory is writable (666 or 777 is usually OK). Example:</p> + +<code>$this->zip->archive('/path/to/folder/myarchive.zip'); // Creates a file named myarchive.zip</code> + + +<h2>$this->zip->download()</h2> + +<p>Causes the Zip file to be downloaded from your server. The function must be passed the name you would like the zip file called. +Example:</p> + +<code>$this->zip->download('latest_stuff.zip'); // File will be named "latest_stuff.zip"</code> + +<p class="important"><strong>Note:</strong>&nbsp; Do not display any data in the controller in which you call this function since it sends various server headers +that cause the download to happen and the file to be treated as binary.</p> + + +<h2>$this->zip->get_zip()</h2> + +<p>Returns the Zip-compressed file data. Generally you will not need this function unless you want to do something unique with the data. +Example:</p> + +<code> +$name = 'my_bio.txt';<br /> +$data = 'I was born in an elevator...';<br /> +<br /> +$this->zip->add_data($name, $data);<br /><br /> + +$zip_file = $this->zip->get_zip(); +</code> + + +<h2>$this->zip->clear_data()</h2> + +<p>The Zip class caches your zip data so that it doesn't need to recompile the Zip archive for each function you use above. +If, however, you need to create multiple Zips, each with different data, you can clear the cache between calls. Example:</p> + +<code> +$name = 'my_bio.txt';<br /> +$data = 'I was born in an elevator...';<br /> +<br /> +$this->zip->add_data($name, $data);<br /> +$zip_file = $this->zip->get_zip();<br /> +<br /> +<kbd>$this->zip->clear_data();</kbd> +<br /><br /> + +$name = 'photo.jpg';<br /> +$this->zip->read_file("/path/to/photo.jpg"); // Read the file's contents<br /> +<br /><br /> +$this->zip->download('myphotos.zip'); +</code> + + + + + + + + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="xmlrpc.html"> XML-RPC Class</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="caching.html">Caching Class</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/license.html b/user_guide/license.html new file mode 100755 index 0000000..c990aa2 --- /dev/null +++ b/user_guide/license.html @@ -0,0 +1,107 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter License Agreement : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='userguide.css' /> + +<script type="text/javascript" src="nav/nav.js"></script> +<script type="text/javascript" src="nav/prototype.lite.js"></script> +<script type="text/javascript" src="nav/moo.fx.js"></script> +<script type="text/javascript" src="nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('null');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> + +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +License Agreement +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + + + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>CodeIgniter License Agreement</h1> + +<p>Copyright (c) 2008 - 2011, EllisLab, Inc.<br /> +All rights reserved.</p> + +<p>This license is a legal agreement between you and EllisLab Inc. for the use of CodeIgniter Software (the "Software"). By obtaining the Software you agree to comply with the terms and conditions of this license.</p> + +<h2>Permitted Use</h2> +<p>You are permitted to use, copy, modify, and distribute the Software and its documentation, with or without modification, for any purpose, provided that the following conditions are met:</p> + +<ol> +<li>A copy of this license agreement must be included with the distribution.</li> +<li>Redistributions of source code must retain the above copyright notice in all source code files.</li> +<li>Redistributions in binary form must reproduce the above copyright notice in the documentation and/or other materials provided with the distribution.</li> +<li>Any files that have been modified must carry notices stating the nature of the change and the names of those who changed them.</li> +<li>Products derived from the Software must include an acknowledgment that they are derived from CodeIgniter in their documentation and/or other materials provided with the distribution.</li> +<li>Products derived from the Software may not be called "CodeIgniter", nor may "CodeIgniter" appear in their name, without prior written permission from EllisLab, Inc.</li> +</ol> + +<h2>Indemnity</h2> +<p>You agree to indemnify and hold harmless the authors of the Software and any contributors for any direct, indirect, incidental, or consequential third-party claims, actions or suits, as well as any related expenses, liabilities, damages, settlements or fees arising from your use or misuse of the Software, or a violation of any terms of this license.</p> + +<h2>Disclaimer of Warranty</h2> +<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF QUALITY, PERFORMANCE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.</p> + +<h2>Limitations of Liability</h2> +<p>YOU ASSUME ALL RISK ASSOCIATED WITH THE INSTALLATION AND USE OF THE SOFTWARE. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS OF THE SOFTWARE BE LIABLE FOR CLAIMS, DAMAGES OR OTHER LIABILITY ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE. LICENSE HOLDERS ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USE AND ASSUME ALL RISKS ASSOCIATED WITH ITS USE, INCLUDING BUT NOT LIMITED TO THE RISKS OF PROGRAM ERRORS, DAMAGE TO EQUIPMENT, LOSS OF DATA OR SOFTWARE PROGRAMS, OR UNAVAILABILITY OR INTERRUPTION OF OPERATIONS.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="general/requirements.html">Server Requirements</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="changelog.html">Change Log</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/nav/hacks.txt b/user_guide/nav/hacks.txt new file mode 100755 index 0000000..8c17f00 --- /dev/null +++ b/user_guide/nav/hacks.txt @@ -0,0 +1,10 @@ +I did the following hack in moo.fx.js: + +At line 79 in the toggle: function() function, I added: + +document.getElementById('nav').style.display = 'block'; + +-- Rick Ellis + + +Also removed fx.Opacity and fx.Height from moo.fx.js -- Pascal \ No newline at end of file diff --git a/user_guide/nav/moo.fx.js b/user_guide/nav/moo.fx.js new file mode 100755 index 0000000..256371d --- /dev/null +++ b/user_guide/nav/moo.fx.js @@ -0,0 +1,83 @@ +/* +moo.fx, simple effects library built with prototype.js (http://prototype.conio.net). +by Valerio Proietti (http://mad4milk.net) MIT-style LICENSE. +for more info (http://moofx.mad4milk.net). +10/24/2005 +v(1.0.2) +*/ + +//base +var fx = new Object(); +fx.Base = function(){}; +fx.Base.prototype = { + setOptions: function(options) { + this.options = { + duration: 500, + onComplete: '' + } + Object.extend(this.options, options || {}); + }, + + go: function() { + this.duration = this.options.duration; + this.startTime = (new Date).getTime(); + this.timer = setInterval (this.step.bind(this), 13); + }, + + step: function() { + var time = (new Date).getTime(); + var Tpos = (time - this.startTime) / (this.duration); + if (time >= this.duration+this.startTime) { + this.now = this.to; + clearInterval (this.timer); + this.timer = null; + if (this.options.onComplete) setTimeout(this.options.onComplete.bind(this), 10); + } + else { + this.now = ((-Math.cos(Tpos*Math.PI)/2) + 0.5) * (this.to-this.from) + this.from; + //this time-position, sinoidal transition thing is from script.aculo.us + } + this.increase(); + }, + + custom: function(from, to) { + if (this.timer != null) return; + this.from = from; + this.to = to; + this.go(); + }, + + hide: function() { + this.now = 0; + this.increase(); + }, + + clearTimer: function() { + clearInterval(this.timer); + this.timer = null; + } +} + +//stretchers +fx.Layout = Class.create(); +fx.Layout.prototype = Object.extend(new fx.Base(), { + initialize: function(el, options) { + this.el = $(el); + this.el.style.overflow = "hidden"; + this.el.iniWidth = this.el.offsetWidth; + this.el.iniHeight = this.el.offsetHeight; + this.setOptions(options); + } +}); + +fx.Height = Class.create(); +Object.extend(Object.extend(fx.Height.prototype, fx.Layout.prototype), { + increase: function() { + this.el.style.height = this.now + "px"; + }, + + toggle: function() { + if (this.el.offsetHeight > 0) this.custom(this.el.offsetHeight, 0); + else this.custom(0, this.el.scrollHeight); + } +}); diff --git a/user_guide/nav/nav.js b/user_guide/nav/nav.js new file mode 100755 index 0000000..b9b6e09 --- /dev/null +++ b/user_guide/nav/nav.js @@ -0,0 +1,156 @@ +function create_menu(basepath) +{ + var base = (basepath == 'null') ? '' : basepath; + + document.write( + '<table cellpadding="0" cellspaceing="0" border="0" style="width:98%"><tr>' + + '<td class="td" valign="top">' + + + '<ul>' + + '<li><a href="'+base+'index.html">User Guide Home</a></li>' + + '<li><a href="'+base+'toc.html">Table of Contents Page</a></li>' + + '</ul>' + + + '<h3>Basic Info</h3>' + + '<ul>' + + '<li><a href="'+base+'general/requirements.html">Server Requirements</a></li>' + + '<li><a href="'+base+'license.html">License Agreement</a></li>' + + '<li><a href="'+base+'changelog.html">Change Log</a></li>' + + '<li><a href="'+base+'general/credits.html">Credits</a></li>' + + '</ul>' + + + '<h3>Installation</h3>' + + '<ul>' + + '<li><a href="'+base+'installation/downloads.html">Downloading CodeIgniter</a></li>' + + '<li><a href="'+base+'installation/index.html">Installation Instructions</a></li>' + + '<li><a href="'+base+'installation/upgrading.html">Upgrading from a Previous Version</a></li>' + + '<li><a href="'+base+'installation/troubleshooting.html">Troubleshooting</a></li>' + + '</ul>' + + + '<h3>Introduction</h3>' + + '<ul>' + + '<li><a href="'+base+'overview/getting_started.html">Getting Started</a></li>' + + '<li><a href="'+base+'overview/at_a_glance.html">CodeIgniter at a Glance</a></li>' + + '<li><a href="'+base+'overview/cheatsheets.html">CodeIgniter Cheatsheets</a></li>' + + '<li><a href="'+base+'overview/features.html">Supported Features</a></li>' + + '<li><a href="'+base+'overview/appflow.html">Application Flow Chart</a></li>' + + '<li><a href="'+base+'overview/mvc.html">Model-View-Controller</a></li>' + + '<li><a href="'+base+'overview/goals.html">Architectural Goals</a></li>' + + '</ul>' + + + '<h3>Tutorial</h3>' + + '<ul>' + + '<li><a href="'+base+'tutorial/index.html">Introduction</a></li>' + + '<li><a href="'+base+'tutorial/static_pages.html">Static pages</a></li>' + + '<li><a href="'+base+'tutorial/news_section.html">News section</a></li>' + + '<li><a href="'+base+'tutorial/create_news_items.html">Create news items</a></li>' + + '<li><a href="'+base+'tutorial/conclusion.html">Conclusion</a></li>' + + '</ul>' + + + '</td><td class="td_sep" valign="top">' + + + '<h3>General Topics</h3>' + + '<ul>' + + '<li><a href="'+base+'general/urls.html">CodeIgniter URLs</a></li>' + + '<li><a href="'+base+'general/controllers.html">Controllers</a></li>' + + '<li><a href="'+base+'general/reserved_names.html">Reserved Names</a></li>' + + '<li><a href="'+base+'general/views.html">Views</a></li>' + + '<li><a href="'+base+'general/models.html">Models</a></li>' + + '<li><a href="'+base+'general/helpers.html">Helpers</a></li>' + + '<li><a href="'+base+'general/libraries.html">Using CodeIgniter Libraries</a></li>' + + '<li><a href="'+base+'general/creating_libraries.html">Creating Your Own Libraries</a></li>' + + '<li><a href="'+base+'general/drivers.html">Using CodeIgniter Drivers</a></li>' + + '<li><a href="'+base+'general/creating_drivers.html">Creating Your Own Drivers</a></li>' + + '<li><a href="'+base+'general/core_classes.html">Creating Core Classes</a></li>' + + '<li><a href="'+base+'general/hooks.html">Hooks - Extending the Core</a></li>' + + '<li><a href="'+base+'general/autoloader.html">Auto-loading Resources</a></li>' + + '<li><a href="'+base+'general/common_functions.html">Common Functions</a></li>' + + '<li><a href="'+base+'general/routing.html">URI Routing</a></li>' + + '<li><a href="'+base+'general/errors.html">Error Handling</a></li>' + + '<li><a href="'+base+'general/caching.html">Caching</a></li>' + + '<li><a href="'+base+'general/profiling.html">Profiling Your Application</a></li>' + + '<li><a href="'+base+'general/cli.html">Running via the CLI</a></li>' + + '<li><a href="'+base+'general/managing_apps.html">Managing Applications</a></li>' + + '<li><a href="'+base+'general/environments.html">Handling Multiple Environments</a></li>' + + '<li><a href="'+base+'general/alternative_php.html">Alternative PHP Syntax</a></li>' + + '<li><a href="'+base+'general/security.html">Security</a></li>' + + '<li><a href="'+base+'general/styleguide.html">PHP Style Guide</a></li>' + + '<li><a href="'+base+'doc_style/index.html">Writing Documentation</a></li>' + + '</ul>' + + + '<h3>Additional Resources</h3>' + + '<ul>' + + '<li><a href="http://codeigniter.com/forums/">Community Forums</a></li>' + + '<li><a href="http://codeigniter.com/wiki/">Community Wiki</a></li>' + + '</ul>' + + + '</td><td class="td_sep" valign="top">' + + + '<h3>Class Reference</h3>' + + '<ul>' + + '<li><a href="'+base+'libraries/benchmark.html">Benchmarking Class</a></li>' + + '<li><a href="'+base+'libraries/calendar.html">Calendar Class</a></li>' + + '<li><a href="'+base+'libraries/cart.html">Cart Class</a></li>' + + '<li><a href="'+base+'libraries/config.html">Config Class</a></li>' + + '<li><a href="'+base+'libraries/email.html">Email Class</a></li>' + + '<li><a href="'+base+'libraries/encryption.html">Encryption Class</a></li>' + + '<li><a href="'+base+'libraries/file_uploading.html">File Uploading Class</a></li>' + + '<li><a href="'+base+'libraries/form_validation.html">Form Validation Class</a></li>' + + '<li><a href="'+base+'libraries/ftp.html">FTP Class</a></li>' + + '<li><a href="'+base+'libraries/table.html">HTML Table Class</a></li>' + + '<li><a href="'+base+'libraries/image_lib.html">Image Manipulation Class</a></li>' + + '<li><a href="'+base+'libraries/input.html">Input Class</a></li>' + + '<li><a href="'+base+'libraries/javascript.html">Javascript Class</a></li>' + + '<li><a href="'+base+'libraries/loader.html">Loader Class</a></li>' + + '<li><a href="'+base+'libraries/language.html">Language Class</a></li>' + + '<li><a href="'+base+'libraries/migration.html">Migration Class</a></li>' + + '<li><a href="'+base+'libraries/output.html">Output Class</a></li>' + + '<li><a href="'+base+'libraries/pagination.html">Pagination Class</a></li>' + + '<li><a href="'+base+'libraries/security.html">Security Class</a></li>' + + '<li><a href="'+base+'libraries/sessions.html">Session Class</a></li>' + + '<li><a href="'+base+'libraries/trackback.html">Trackback Class</a></li>' + + '<li><a href="'+base+'libraries/parser.html">Template Parser Class</a></li>' + + '<li><a href="'+base+'libraries/typography.html">Typography Class</a></li>' + + '<li><a href="'+base+'libraries/unit_testing.html">Unit Testing Class</a></li>' + + '<li><a href="'+base+'libraries/uri.html">URI Class</a></li>' + + '<li><a href="'+base+'libraries/user_agent.html">User Agent Class</a></li>' + + '<li><a href="'+base+'libraries/xmlrpc.html">XML-RPC Class</a></li>' + + '<li><a href="'+base+'libraries/zip.html">Zip Encoding Class</a></li>' + + '</ul>' + + + '</td><td class="td_sep" valign="top">' + + + '<h3>Driver Reference</h3>' + + '<ul>' + + '<li><a href="'+base+'libraries/caching.html">Caching Class</a></li>' + + '<li><a href="'+base+'database/index.html">Database Class</a></li>' + + '<li><a href="'+base+'libraries/javascript.html">Javascript Class</a></li>' + + '</ul>' + + + '<h3>Helper Reference</h3>' + + '<ul>' + + '<li><a href="'+base+'helpers/array_helper.html">Array Helper</a></li>' + + '<li><a href="'+base+'helpers/captcha_helper.html">CAPTCHA Helper</a></li>' + + '<li><a href="'+base+'helpers/cookie_helper.html">Cookie Helper</a></li>' + + '<li><a href="'+base+'helpers/date_helper.html">Date Helper</a></li>' + + '<li><a href="'+base+'helpers/directory_helper.html">Directory Helper</a></li>' + + '<li><a href="'+base+'helpers/download_helper.html">Download Helper</a></li>' + + '<li><a href="'+base+'helpers/email_helper.html">Email Helper</a></li>' + + '<li><a href="'+base+'helpers/file_helper.html">File Helper</a></li>' + + '<li><a href="'+base+'helpers/form_helper.html">Form Helper</a></li>' + + '<li><a href="'+base+'helpers/html_helper.html">HTML Helper</a></li>' + + '<li><a href="'+base+'helpers/inflector_helper.html">Inflector Helper</a></li>' + + '<li><a href="'+base+'helpers/language_helper.html">Language Helper</a></li>' + + '<li><a href="'+base+'helpers/number_helper.html">Number Helper</a></li>' + + '<li><a href="'+base+'helpers/path_helper.html">Path Helper</a></li>' + + '<li><a href="'+base+'helpers/security_helper.html">Security Helper</a></li>' + + '<li><a href="'+base+'helpers/smiley_helper.html">Smiley Helper</a></li>' + + '<li><a href="'+base+'helpers/string_helper.html">String Helper</a></li>' + + '<li><a href="'+base+'helpers/text_helper.html">Text Helper</a></li>' + + '<li><a href="'+base+'helpers/typography_helper.html">Typography Helper</a></li>' + + '<li><a href="'+base+'helpers/url_helper.html">URL Helper</a></li>' + + '<li><a href="'+base+'helpers/xml_helper.html">XML Helper</a></li>' + + '</ul>' + + + '</td></tr></table>'); +} \ No newline at end of file diff --git a/user_guide/nav/prototype.lite.js b/user_guide/nav/prototype.lite.js new file mode 100755 index 0000000..e6c3622 --- /dev/null +++ b/user_guide/nav/prototype.lite.js @@ -0,0 +1,127 @@ +/* Prototype JavaScript framework + * (c) 2005 Sam Stephenson <sam@conio.net> + * + * Prototype is freely distributable under the terms of an MIT-style license. + * + * For details, see the Prototype web site: http://prototype.conio.net/ + * +/*--------------------------------------------------------------------------*/ + + +//note: this is a stripped down version of prototype, to be used with moo.fx by mad4milk (http://moofx.mad4milk.net). + +var Class = { + create: function() { + return function() { + this.initialize.apply(this, arguments); + } + } +} + +Object.extend = function(destination, source) { + for (property in source) { + destination[property] = source[property]; + } + return destination; +} + +Function.prototype.bind = function(object) { + var __method = this; + return function() { + return __method.apply(object, arguments); + } +} + +function $() { + var elements = new Array(); + + for (var i = 0; i < arguments.length; i++) { + var element = arguments[i]; + if (typeof element == 'string') + element = document.getElementById(element); + + if (arguments.length == 1) + return element; + + elements.push(element); + } + + return elements; +} + +//------------------------- + +document.getElementsByClassName = function(className) { + var children = document.getElementsByTagName('*') || document.all; + var elements = new Array(); + + for (var i = 0; i < children.length; i++) { + var child = children[i]; + var classNames = child.className.split(' '); + for (var j = 0; j < classNames.length; j++) { + if (classNames[j] == className) { + elements.push(child); + break; + } + } + } + + return elements; +} + +//------------------------- + +if (!window.Element) { + var Element = new Object(); +} + +Object.extend(Element, { + remove: function(element) { + element = $(element); + element.parentNode.removeChild(element); + }, + + hasClassName: function(element, className) { + element = $(element); + if (!element) + return; + var a = element.className.split(' '); + for (var i = 0; i < a.length; i++) { + if (a[i] == className) + return true; + } + return false; + }, + + addClassName: function(element, className) { + element = $(element); + Element.removeClassName(element, className); + element.className += ' ' + className; + }, + + removeClassName: function(element, className) { + element = $(element); + if (!element) + return; + var newClassName = ''; + var a = element.className.split(' '); + for (var i = 0; i < a.length; i++) { + if (a[i] != className) { + if (i > 0) + newClassName += ' '; + newClassName += a[i]; + } + } + element.className = newClassName; + }, + + // removes whitespace-only text node children + cleanWhitespace: function(element) { + element = $(element); + for (var i = 0; i < element.childNodes.length; i++) { + var node = element.childNodes[i]; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + Element.remove(node); + } + } +}); \ No newline at end of file diff --git a/user_guide/nav/user_guide_menu.js b/user_guide/nav/user_guide_menu.js new file mode 100755 index 0000000..ce5d077 --- /dev/null +++ b/user_guide/nav/user_guide_menu.js @@ -0,0 +1,4 @@ +window.onload = function() { + myHeight = new fx.Height('nav', {duration: 400}); + myHeight.hide(); +} \ No newline at end of file diff --git a/user_guide/overview/appflow.html b/user_guide/overview/appflow.html new file mode 100755 index 0000000..c2004c7 --- /dev/null +++ b/user_guide/overview/appflow.html @@ -0,0 +1,95 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Application Flow Chart : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Appflow +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Application Flow Chart</h1> + +<p>The following graphic illustrates how data flows throughout the system:</p> + +<div><img src="../images/appflowchart.gif" width="769" height="212" alt="CodeIgniter application flow"></div> + + +<ol> +<li>The index.php serves as the front controller, initializing the base resources needed to run CodeIgniter.</li> +<li>The Router examines the HTTP request to determine what should be done with it.</li> +<li>If a cache file exists, it is sent directly to the browser, bypassing the normal system execution.</li> +<li>Security. Before the application controller is loaded, the HTTP request and any user submitted data is filtered for security.</li> +<li>The Controller loads the model, core libraries, helpers, and any other resources needed to process the specific request.</li> +<li>The finalized View is rendered then sent to the web browser to be seen. If caching is enabled, the view is cached first so +that on subsequent requests it can be served.</li> +</ol> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="features.html">CodeIgniter Features</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="mvc.html">Model-View-Controller</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/overview/at_a_glance.html b/user_guide/overview/at_a_glance.html new file mode 100755 index 0000000..d51d42c --- /dev/null +++ b/user_guide/overview/at_a_glance.html @@ -0,0 +1,162 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter at a Glance : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +What is CodeIgniter? +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>CodeIgniter at a Glance</h1> + + +<h2>CodeIgniter is an Application Framework</h2> + +<p>CodeIgniter is a toolkit for people who build web applications using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code +from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and +logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by +minimizing the amount of code needed for a given task.</p> + +<h2>CodeIgniter is Free</h2> +<p>CodeIgniter is licensed under an Apache/BSD-style open source license so you can use it however you please. +For more information please read the <a href="../license.html">license agreement</a>.</p> + +<h2>CodeIgniter is Light Weight</h2> +<p>Truly light weight. The core system requires only a few very small libraries. This is in stark contrast to many frameworks that require significantly more resources. +Additional libraries are loaded dynamically upon request, based on your needs for a given process, so the base system +is very lean and quite fast. +</p> + +<h2>CodeIgniter is Fast</h2> +<p>Really fast. We challenge you to find a framework that has better performance than CodeIgniter.</p> + + +<h2>CodeIgniter Uses M-V-C</h2> +<p>CodeIgniter uses the Model-View-Controller approach, which allows great separation between logic and presentation. +This is particularly good for projects in which designers are working with your template files, as the code these file contain will be minimized. We describe MVC in more detail on its own page.</p> + +<h2>CodeIgniter Generates Clean URLs</h2> +<p>The URLs generated by CodeIgniter are clean and search-engine friendly. Rather than using the standard "query string" +approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a segment-based approach:</p> + +<code>example.com/<var>news</var>/<dfn>article</dfn>/<samp>345</samp></code> + +<p>Note: By default the index.php file is included in the URL but it can be removed using a simple .htaccess file.</p> + +<h2>CodeIgniter Packs a Punch</h2> +<p>CodeIgniter comes with full-range of libraries that enable the most commonly needed web development tasks, +like accessing a database, sending email, validating form data, maintaining sessions, manipulating images, working with XML-RPC data and +much more.</p> + +<h2>CodeIgniter is Extensible</h2> +<p>The system can be easily extended through the use of your own libraries, helpers, or through class extensions or system hooks.</p> + + +<h2>CodeIgniter Does Not Require a Template Engine</h2> +<p>Although CodeIgniter <em>does</em> come with a simple template parser that can be optionally used, it does not force you to use one. + +Template engines simply can not match the performance of native PHP, and the syntax that must be learned to use a template +engine is usually only marginally easier than learning the basics of PHP. Consider this block of PHP code:</p> + +<code>&lt;ul><br /> +<br /> +&lt;?php foreach ($addressbook as $name):?><br /> +<br /> +&lt;li>&lt;?=$name?>&lt;/li><br /> +<br /> +&lt;?php endforeach; ?><br /> +<br /> +&lt;/ul></code> + +<p>Contrast this with the pseudo-code used by a template engine:</p> + +<code>&lt;ul><br /> +<br /> +{foreach from=$addressbook item="name"}<br /> +<br /> +&lt;li>{$name}&lt;/li><br /> +<br /> +{/foreach}<br /> +<br /> +&lt;/ul></code> + +<p>Yes, the template engine example is a bit cleaner, but it comes at the price of performance, as the pseudo-code must be converted +back into PHP to run. Since one of our goals is <em>maximum performance</em>, we opted to not require the use of a template engine.</p> + + +<h2>CodeIgniter is Thoroughly Documented</h2> +<p>Programmers love to code and hate to write documentation. We're no different, of course, but +since documentation is <strong>as important</strong> as the code itself, +we are committed to doing it. Our source code is extremely clean and well commented as well.</p> + + +<h2>CodeIgniter has a Friendly Community of Users</h2> + +<p>Our growing community of users can be seen actively participating in our <a href="http://codeigniter.com/forums/">Community Forums</a>.</p> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="getting_started.html">Getting Started</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="cheatsheets.html">CodeIgniter Cheatsheets</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/overview/cheatsheets.html b/user_guide/overview/cheatsheets.html new file mode 100755 index 0000000..7284cd7 --- /dev/null +++ b/user_guide/overview/cheatsheets.html @@ -0,0 +1,83 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Cheatsheets : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +CodeIgniter Cheatsheets +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>CodeIgniter Cheatsheets</h1> + +<h2>Library Reference</h2> + +<div><a href="../images/codeigniter_1.7.1_library_reference.pdf"><img src="../images/codeigniter_1.7.1_library_reference.png" width="600" height="195" border="0" alt="CodeIgniter Library Reference" /></a></div> + +<h2>Helpers Reference</h2> +<div><a href="../images/codeigniter_1.7.1_helper_reference.pdf"><img src="../images/codeigniter_1.7.1_helper_reference.png" width="600" height="196" border="0" alt="CodeIgniter Library Reference" /></a></div> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="at_a_glance.html">CodeIgniter at a Glance</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="features.html">CodeIgniter Features</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/overview/features.html b/user_guide/overview/features.html new file mode 100755 index 0000000..aebafe6 --- /dev/null +++ b/user_guide/overview/features.html @@ -0,0 +1,118 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Features : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Features +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>CodeIgniter Features</h1> + +<p>Features in and of themselves are a very poor way to judge an application since they tell you nothing +about the user experience, or how intuitively or intelligently it is designed. Features +don't reveal anything about the quality of the code, or the performance, or the attention to detail, or security practices. +The only way to really judge an app is to try it and get to know the code. <a href="../installation/">Installing</a> +CodeIgniter is child's play so we encourage you to do just that. In the mean time here's a list of CodeIgniter's main features.</p> + +<ul> +<li>Model-View-Controller Based System</li> +<li>Extremely Light Weight</li> +<li>Full Featured database classes with support for several platforms.</li> +<li>Active Record Database Support</li> +<li>Form and Data Validation</li> +<li>Security and XSS Filtering</li> +<li>Session Management</li> +<li>Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, and Mail) and more.</li> +<li>Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM</li> +<li>File Uploading Class</li> +<li>FTP Class</li> +<li>Localization</li> +<li>Pagination</li> +<li>Data Encryption</li> +<li>Benchmarking</li> +<li>Full Page Caching</li> +<li>Error Logging</li> +<li>Application Profiling</li> +<li>Calendaring Class</li> +<li>User Agent Class</li> +<li>Zip Encoding Class</li> +<li>Template Engine Class</li> +<li>Trackback Class</li> +<li>XML-RPC Library</li> +<li>Unit Testing Class</li> +<li>Search-engine Friendly URLs</li> +<li>Flexible URI Routing</li> +<li>Support for Hooks and Class Extensions</li> +<li>Large library of "helper" functions</li> +</ul> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="cheatsheets.html">CodeIgniter Cheatsheets</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="appflow.html">Application Flow Chart</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/overview/getting_started.html b/user_guide/overview/getting_started.html new file mode 100755 index 0000000..049d29c --- /dev/null +++ b/user_guide/overview/getting_started.html @@ -0,0 +1,92 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Getting Started With CodeIgniter : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Getting Started +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Getting Started With CodeIgniter</h1> + +<p>Any software application requires some effort to learn. We've done our best to minimize the learning +curve while making the process as enjoyable as possible. +</p> + +<p>The first step is to <a href="../installation/index.html">install</a> CodeIgniter, then read +all the topics in the <strong>Introduction</strong> section of the Table of Contents.</p> + +<p>Next, read each of the <strong>General Topics</strong> pages in order. +Each topic builds on the previous one, and includes code examples that you are encouraged to try.</p> + +<p>Once you understand the basics you'll be ready to explore the <strong>Class Reference</strong> and +<strong>Helper Reference</strong> pages to learn to utilize the native libraries and helper files.</p> + +<p>Feel free to take advantage of our <a href="http://codeigniter.com/forums/">Community Forums</a> +if you have questions or problems, and +our <a href="http://codeigniter.com/wiki/">Wiki</a> to see code examples posted by other users.</p> + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="at_a_glance.html">CodeIgniter At a Glance</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/overview/goals.html b/user_guide/overview/goals.html new file mode 100755 index 0000000..ec5a418 --- /dev/null +++ b/user_guide/overview/goals.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Design and Architectural Goals : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Goals +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + + +<h2>Design and Architectural Goals</h2> + +<p>Our goal for CodeIgniter is <dfn>maximum performance, capability, and flexibility in the smallest, lightest possible package</dfn>.</p> + +<p>To meet this goal we are committed to benchmarking, re-factoring, and simplifying at every step of the development process, +rejecting anything that doesn't further the stated objective.</p> + +<p>From a technical and architectural standpoint, CodeIgniter was created with the following objectives:</p> + +<ul> +<li><strong>Dynamic Instantiation.</strong> In CodeIgniter, components are loaded and routines executed only when requested, rather than globally. No assumptions are made by the system regarding what may be needed beyond the minimal core resources, so the system is very light-weight by default. The events, as triggered by the HTTP request, and the controllers and views you design will determine what is invoked.</li> +<li><strong>Loose Coupling.</strong> Coupling is the degree to which components of a system rely on each other. The less components depend on each other the more reusable and flexible the system becomes. Our goal was a very loosely coupled system.</li> +<li><strong>Component Singularity.</strong> Singularity is the degree to which components have a narrowly focused purpose. In CodeIgniter, each class and its functions are highly autonomous in order to allow maximum usefulness.</li> +</ul> + +<p>CodeIgniter is a dynamically instantiated, loosely coupled system with high component singularity. It strives for simplicity, flexibility, and high performance in a small footprint package.</p> + + + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="mvc.html">Model-View-Controller</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="./getting_started.html">Getting Started</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/overview/index.html b/user_guide/overview/index.html new file mode 100755 index 0000000..1f38839 --- /dev/null +++ b/user_guide/overview/index.html @@ -0,0 +1,84 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Overview : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Introduction +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>CodeIgniter Overview</h1> + +<p>The following pages describe the broad concepts behind CodeIgniter:</p> + + <ul> + <li><a href="at_a_glance.html">CodeIgniter at a Glance</a></li> + <li><a href="features.html">Supported Features</a></li> + <li><a href="appflow.html">Application Flow Chart</a></li> + <li><a href="mvc.html">Introduction to the Model-View-Controller</a></li> + <li><a href="goals.html">Design and Architectural Goals</a></li> + <li><a href="package.html">Package Description</a></li> + </ul> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p><a href="#top">Top of Page</a> &nbsp;&middot;&nbsp; <a href="../index.html">User Guide Home</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/overview/mvc.html b/user_guide/overview/mvc.html new file mode 100755 index 0000000..1d98c2e --- /dev/null +++ b/user_guide/overview/mvc.html @@ -0,0 +1,100 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Model-View-Controller : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +MVC +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Model-View-Controller</h1> + +<p>CodeIgniter is based on the Model-View-Controller development pattern. + +MVC is a software approach that separates application logic from presentation. In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.</p> + +<ul> +<li>The <strong>Model</strong> represents your data structures. Typically your model classes will contain functions that help you +retrieve, insert, and update information in your database.</li> +<li>The <strong>View</strong> is the information that is being presented to a user. A View will normally be a web page, but +in CodeIgniter, a view can also be a page fragment like a header or footer. It can also be an RSS page, or any other type of "page".</li> +<li>The <strong>Controller</strong> serves as an <em>intermediary</em> between the Model, the View, +and any other resources needed to process the HTTP request and generate a web page.</li> + +</ul> + +<p>CodeIgniter has a fairly loose approach to MVC since Models are not required. +If you don't need the added separation, or find that maintaining models requires more complexity than you +want, you can ignore them and build your application minimally using Controllers and Views. CodeIgniter also +enables you to incorporate your own existing scripts, or even develop core libraries for the system, + enabling you to work in a way that makes the most sense to you.</p> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="appflow.html">Application Flow Chart</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="goals.html">Architectural Goals</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/toc.html b/user_guide/toc.html new file mode 100755 index 0000000..9c28da3 --- /dev/null +++ b/user_guide/toc.html @@ -0,0 +1,229 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Table of Contents : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='userguide.css' /> + +<script type="text/javascript" src="nav/nav.js"></script> +<script type="text/javascript" src="nav/prototype.lite.js"></script> +<script type="text/javascript" src="nav/moo.fx.js"></script> +<script type="text/javascript" src="nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('null');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> + +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Table of Contents +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Table of Contents</h1> + +<table cellpadding="0" cellspacing="10" border="0" width="100%"> +<tr> +<td valign="top" width="25%"> + +<h3>Basic Info</h3> +<ul> + <li><a href="./general/requirements.html">Server Requirements</a></li> + <li><a href="license.html">License Agreement</a></li> + <li><a href="changelog.html">Change Log</a></li> + <li><a href="./general/credits.html">Credits</a></li> +</ul> + +<h3>Installation</h3> +<ul> + <li><a href="./installation/downloads.html">Downloading CodeIgniter </a></li> + <li><a href="./installation/index.html">Installation Instructions</a></li> + <li><a href="./installation/upgrading.html">Upgrading from a Previous Version</a></li> + <li><a href="./installation/troubleshooting.html">Troubleshooting</a></li> +</ul> + +<h3>Introduction</h3> +<ul> + <li><a href="./overview/getting_started.html">Getting Started</a></li> + <li><a href="./overview/at_a_glance.html">CodeIgniter at a Glance</a></li> + <li><a href="./overview/cheatsheets.html">CodeIgniter Cheatsheets</a></li> + <li><a href="./overview/features.html">Supported Features</a></li> + <li><a href="./overview/appflow.html">Application Flow Chart</a></li> + <li><a href="./overview/mvc.html">Model-View-Controller</a></li> + <li><a href="./overview/goals.html">Architectural Goals</a></li> +</ul> + +<h3>Tutorial</h3> +<ul> + <li><a href="./tutorial/index.html">Introduction</a></li> + <li><a href="./tutorial/static_pages.html">Static pages</a></li> + <li><a href="./tutorial/news_section.html">News section</a></li> + <li><a href="./tutorial/create_news_items.html">Create news items</a></li> + <li><a href="./tutorial/conclusion.html">Conclusion</a></li> +</ul> + +</td> +<td valign="top" width="25%"> + +<h3>General Topics</h3> +<ul> + <li><a href="./general/urls.html">CodeIgniter URLs</a></li> + <li><a href="./general/controllers.html">Controllers</a></li> + <li><a href="./general/reserved_names.html">Reserved Names</a></li> + <li><a href="./general/views.html">Views</a></li> + <li><a href="./general/models.html">Models</a></li> + <li><a href="./general/helpers.html">Helpers</a></li> + <li><a href="./general/libraries.html">Using CodeIgniter Libraries</a></li> + <li><a href="./general/creating_libraries.html">Creating Your Own Libraries</a></li> + <li><a href="./general/drivers.html">Using CodeIgniter Drivers</a></li> + <li><a href="./general/creating_drivers.html">Creating Your Own Drivers</a></li> + <li><a href="./general/core_classes.html">Creating Core Classes</a></li> + <li><a href="./general/hooks.html">Hooks - Extending the Core</a></li> + <li><a href="./general/autoloader.html">Auto-loading Resources</a></li> + <li><a href="./general/common_functions.html">Common Functions</a></li> + <li><a href="./general/routing.html">URI Routing</a></li> + <li><a href="./general/errors.html">Error Handling</a></li> + <li><a href="./general/caching.html">Caching</a></li> + <li><a href="./general/profiling.html">Profiling Your Application</a></li> + <li><a href="./general/cli.html">Running via the CLI</a></li> + <li><a href="./general/managing_apps.html">Managing Applications</a></li> + <li><a href="./general/environments.html">Handling Multiple Environments</a></li> + <li><a href="./general/alternative_php.html">Alternative PHP Syntax</a></li> + <li><a href="./general/security.html">Security</a></li> + <li><a href="./general/styleguide.html">PHP Style Guide</a></li> + <li><a href="./doc_style/index.html">Writing Documentation</a></li> +</ul> + +<h3>Additional Resources</h3> + +<ul> +<li><a href="http://codeigniter.com/forums/">Community Forums</a></li> +<li><a href="http://codeigniter.com/wiki/">Community Wiki</a></li> +</ul> + +</td> +<td valign="top" width="25%"> + +<h3>Class Reference</h3> +<ul> +<li><a href="./libraries/benchmark.html">Benchmarking Class</a></li> +<li><a href="./libraries/calendar.html">Calendar Class</a></li> +<li><a href="./libraries/cart.html">Cart Class</a></li> +<li><a href="./libraries/config.html">Config Class</a></li> +<li><a href="./libraries/email.html">Email Class</a></li> +<li><a href="./libraries/encryption.html">Encryption Class</a></li> +<li><a href="./libraries/file_uploading.html">File Uploading Class</a></li> +<li><a href="./libraries/form_validation.html">Form Validation Class</a></li> +<li><a href="./libraries/ftp.html">FTP Class</a></li> +<li><a href="./libraries/table.html">HTML Table Class</a></li> +<li><a href="./libraries/image_lib.html">Image Manipulation Class</a></li> +<li><a href="./libraries/input.html">Input Class</a></li> +<li><a href="./libraries/javascript.html">Javascript Class</a></li> +<li><a href="./libraries/loader.html">Loader Class</a></li> +<li><a href="./libraries/language.html">Language Class</a></li> +<li><a href="./libraries/migration.html">Migration Class</a></li> +<li><a href="./libraries/output.html">Output Class</a></li> +<li><a href="./libraries/pagination.html">Pagination Class</a></li> +<li><a href="./libraries/security.html">Security Class</a></li> +<li><a href="./libraries/sessions.html">Session Class</a></li> +<li><a href="./libraries/trackback.html">Trackback Class</a></li> +<li><a href="./libraries/parser.html">Template Parser Class</a></li> +<li><a href="./libraries/typography.html">Typography Class</a></li> +<li><a href="./libraries/unit_testing.html">Unit Testing Class</a></li> +<li><a href="./libraries/uri.html">URI Class</a></li> +<li><a href="./libraries/user_agent.html">User Agent Class</a></li> +<li><a href="./libraries/xmlrpc.html">XML-RPC Class</a></li> +<li><a href="./libraries/zip.html">Zip Encoding Class</a></li> +</ul> + + +</td> +<td valign="top" width="25%"> + +<h3>Driver Reference</h3> +<ul> +<li><a href="./libraries/caching.html">Caching Class</a></li> +<li><a href="./database/index.html">Database Class</a></li> +<li><a href="./libraries/javascript.html">Javascript Class</a></li> +</ul> + +<h3>Helper Reference</h3> +<ul> +<li><a href="./helpers/array_helper.html">Array Helper</a></li> +<li><a href="./helpers/captcha_helper.html">CAPTCHA Helper</a></li> +<li><a href="./helpers/cookie_helper.html">Cookie Helper</a></li> +<li><a href="./helpers/date_helper.html">Date Helper</a></li> +<li><a href="./helpers/directory_helper.html">Directory Helper</a></li> +<li><a href="./helpers/download_helper.html">Download Helper</a></li> +<li><a href="./helpers/email_helper.html">Email Helper</a></li> +<li><a href="./helpers/file_helper.html">File Helper</a></li> +<li><a href="./helpers/form_helper.html">Form Helper</a></li> +<li><a href="./helpers/html_helper.html">HTML Helper</a></li> +<li><a href="./helpers/inflector_helper.html">Inflector Helper</a></li> +<li><a href="./helpers/language_helper.html">Language Helper</a></li> +<li><a href="./helpers/number_helper.html">Number Helper</a></li> +<li><a href="./helpers/path_helper.html">Path Helper</a></li> +<li><a href="./helpers/security_helper.html">Security Helper</a></li> +<li><a href="./helpers/smiley_helper.html">Smiley Helper</a></li> +<li><a href="./helpers/string_helper.html">String Helper</a></li> +<li><a href="./helpers/text_helper.html">Text Helper</a></li> +<li><a href="./helpers/typography_helper.html">Typography Helper</a></li> +<li><a href="./helpers/url_helper.html">URL Helper</a></li> +<li><a href="./helpers/xml_helper.html">XML Helper</a></li> +</ul> + + + + +</td> +</tr> +</table> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p><a href="#top">Top of Page</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + + +</body> +</html> \ No newline at end of file diff --git a/user_guide/tutorial/conclusion.html b/user_guide/tutorial/conclusion.html new file mode 100755 index 0000000..a1c9c24 --- /dev/null +++ b/user_guide/tutorial/conclusion.html @@ -0,0 +1,91 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Features : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Tutorial</a> &nbsp;&#8250;&nbsp; +Conclusion +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Tutorial - Conclusion</h1> + +<p>This tutorial did not cover all of the things you might expect of a full-fledged content management system, but it introduced you to the more important topics of routing, writing controllers, and models. We hope this tutorial gave you an insight into some of CodeIgniter's basic design patterns, which you can expand upon.</p> + +<p>Now that you've completed this tutorial, we recommend you check out the rest of the documentation. CodeIgniter is often praised because of its comprehensive documentation. Use this to your advantage and read the "Introduction" and "General Topics" sections thoroughly. You should read the class and helper references when needed.</p> + +<p>Every intermediate PHP programmer should be able to get the hang of CodeIgniter within a few days.</p> + +<p>If you still have questions about the framework or your own CodeIgniter code, you can:</p> +<ul> + <li>Check out our <a href="http://codeigniter.com/forums">forums</a></li> + <li>Visit our <a href="http://codeigniter.com/wiki/IRC">IRC chatroom</a></li> + <li>Explore the <a href="http://codeigniter.com/wiki/">Wiki</a></li> +</ul> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="create_news_items.html">Create news items</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="../general/urls.html">CodeIgniter URLs</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/tutorial/create_news_items.html b/user_guide/tutorial/create_news_items.html new file mode 100755 index 0000000..4db7fb8 --- /dev/null +++ b/user_guide/tutorial/create_news_items.html @@ -0,0 +1,179 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Features : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Tutorial</a> &nbsp;&#8250;&nbsp; +Create news items +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Tutorial - Create news items</h1> + +<p>You now know how you can read data from a database using CodeIgnite, but you haven't written any information to the database yet. In this section you'll expand your news controller and model created earlier to include this functionality.</p> + +<h2>Create a form</h2> + +<p>To input data into the database you need to create a form where you can input the information to be stored. This means you'll be needing a form with two fields, one for the title and one for the text. You'll derive the slug from our title in the model. Create the new view at <dfn>application/views/news/create.php</dfn>.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="16"> +<h2>Create a news item</h2> + +&lt;?php echo validation_errors(); ?> + +&lt;?php echo form_open('news/create') ?> + + <label for="title">Title</label> + <input type="input" name="title" /><br /> + + <label for="text">Text</label> + <textarea name="text">&lt;/textarea><br /> + + <input type="submit" name="submit" value="Create news item" /> + +&lt;/form> +</textarea> + +<p>There are only two things here that probably look unfamiliar to you: the <dfn>form_open()</dfn> function and the <dfn>validation_errors()</dfn> function.</p> + +<p>The first function is provided by the <a href="../helpers/form_helper.html">form helper</a> and renders the form element and adds extra functionality, like adding a hidden <a href="../libraries/security.html">CSFR prevention field</a>. The latter is used to report errors related to form validation.</p> + +<p>Go back to your news controller. You're going to do two things here, check whether the form was submitted and whether the submitted data passed the validation rules. You'll use the <a href="../libraries/form_validation.html">form validation</a> library to do this.</p> + +<pre> +public function create() +{ + $this->load->helper('form'); + $this->load->library('form_validation'); + + $data['title'] = 'Create a news item'; + + $this->form_validation->set_rules('title', 'Title', 'required'); + $this->form_validation->set_rules('text', 'text', 'required'); + + if ($this->form_validation->run() === FALSE) + { + $this->load->view('templates/header', $data); + $this->load->view('news/create'); + $this->load->view('templates/footer'); + + } + else + { + $this->news_model->set_news(); + $this->load->view('news/success'); + } +} +</pre> + +<p>The code above adds a lot of functionality. The first few lines load the form helper and the form validation library. After that, rules for the form validation are set. The <var>set_rules()</var> method takes three arguments; the name of the input field, the name to be used in error messages, and the rule. In this case the title and text fields are required.</p> + +<p>CodeIgniter has a powerful form validation library as demonstrated above. You can read <a href="../libraries/form_validation.html">more about this library here</a>.</p> + +<p>Continuing down, you can see a condition that checks whether the form validation ran successfully. If it did not, the form is displayed, if it was submitted <strong>and</strong> passed all the rules, the model is called. After this, a view is loaded to display a success message. Create a view at <dfn>application/view/news/success.php</dfn> and write a success message.</p> + +<h2>Model</h2> + +<p>The only thing that remains is writing a method that writes the data to the database. You'll use the Active Record class to insert the information and use the input library to get the posted data. Open up the model created earlier and add the following:</p> + +<pre> +public function set_news() +{ + $this->load->helper('url'); + + $slug = url_title($this->input->post('title'), 'dash', TRUE); + + $data = array( + 'title' => $this->input->post('title'), + 'slug' => $slug, + 'text' => $this->input->post('text') + ); + + return $this->db->insert('news', $data); +} +</pre> + +<p>This new method takes care of inserting the news item into the database. The third line contains a new function, <dfn>url_title()</dfn>. This function - provided by the <a href="../helpers/url_helper.html">URL helper</a> - strips down the string you pass it, replacing all spaces by dashes (-) and makes sure everything is in lowercase characters. This leaves you with a nice slug, perfect for creating URIs.</p> + +<p>Let's continue with preparing the record that is going to be inserted later, inside the <var>$data</var> array. Each element corresponds with a column in the database table created earlier. You might notice a new method here, namely the <dfn>post()</dfn> method from the <a href="../libraries/input.html">input library</a>. This method makes sure the data is sanitized, protecting you from nasty attacks from others. The input library is loaded by default. At last, you insert our <var>$data</var> array into our database.</p> + +<h2>Routing</h2> + +<p>Before you can start adding news items into your CodeIgniter application you have to add an extra rule to <dfn>config/routes.php</dfn> file. Make sure your file contains the following. This makes sure CodeIgniter sees 'create' as a method instead of a news item's slug.</p> + +<pre> +$route['news/create'] = 'news/create'; +$route['news/(:any)'] = 'news/view/$1'; +$route['news'] = 'news'; +$route['(:any)'] = 'pages/view/$1'; +$route['default_controller'] = 'pages/view'; +</pre> + +<p>Now point your browser to your local development environment where you installed CodeIgniter and add <dfn>index.php/news/create</dfn> to the URL. Congratulations, you just created your first CodeIgniter application! Add some news and check out the different pages you made.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="news_section.html">News section</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="conclusion.html">Conclusion</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/tutorial/hard_coded_pages.html b/user_guide/tutorial/hard_coded_pages.html new file mode 100755 index 0000000..2b5951f --- /dev/null +++ b/user_guide/tutorial/hard_coded_pages.html @@ -0,0 +1,158 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Features : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +Features +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Tutorial - Hard coded pages</h1> + +<p>The first thing we're going to do is setting up a controller to handle our hard coded pages. A controller is a class with a collection of methods that represent the different actions you can perform on a certain object. In our case, we want to be able to view a page.</p> + +<p class="important"><strong>Note:</strong> This tutorial assumes you've downloaded CodeIgniter and installed the framework in your development environment.</p> + +<p>Create a file at <dfn>application/controllers/pages.php</dfn> with the following code.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="9"> +&lt;?php +class Pages extends CI_Controller { + + public function view($page = 'home') + { + + } +} +</textarea> + +<p>If you're familiar with PHP classes you see that we create a Pages class with a view method that accepts one parameter, <var>$page</var>. Another interesting observation is that the Pages class is extending the CI_Controller class. This means that the new Pages class can access the methods and variables defined in the CI_Controller class. When you look at this class in <dfn>system/core/controller.php</dfn> you can see this class is doing something really important; assigning an instance from the CodeIgniter super object to the <var>$this</var> object. In most of your code, <var>$this</var> is the object you will use to interact with the framework.</p> + +<p>Now we've created our first method, it is time to do some basic templating. For this tutorial, we will be creating two views to acts as our footer and header. Let's create our header at <dfn>application/views/templates/header.php</dfn> and ad the following code.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="8"> +<html> +<head> + <title><?php echo $title ?> - CodeIgniter 2 Tutorial</title> +</head> +<body> + <h1>CodeIgniter 2 Tutorial</h1> + +</textarea> + +<p>Our header doesn't do anything exciting. It contains the basic HTML code that we will want to display before loading the main view. You can also see that we echo the <var>$title</var> variable, which we didn't define. We will set this variable in the Pages controller a bit later. Let's go ahead and create a footer at <dfn>application/views/templates/footer.php</dfn> that includes the following code.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="4"> +<strong>&copy; 2011</strong> +</body> +</html> +</textarea> + +<h2>Adding logic to the controller</h2> + +<p>Now we've set up the basics so we can finally do some real programming. Earlier we set up our controller with a view method. Because we don't want to write a separate method for every page, we made the view method accept one parameter, the name of the page. These hard coded pages will be located in <dfn>application/views/pages/</dfn>. Create two files in this directory named <dfn>home.php</dfn> and <dfn>about.php</dfn> and put in some HTML content.</p> + +<p>In order to load these pages we'll have to check whether these page actually exists. When the page does exist, we load the view for that pages, including the header and footer and display it to the user. If it doesn't, we show a "404 Page not found" error.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="16"> +public function view($page = 'home') +{ + + if ( ! file_exists('application/views/pages/' . $page . EXT)) + { + show_404(); + } + + $data['title'] = ucfirst($page); + + $this->load->view('templates/header', $data); + $this->load->view('pages/'.$page); + $this->load->view('templates/footer'); +} +</textarea> + +<p>The first thing we do is checking whether the page we're looking for does actually exist. We use PHP's native file_exists() to do this check and pass the path where the file is supposed to be. Next is the function show_404(), a CodeIgniter function that renders the default error page and sets the appropriate HTTP headers.</p> + +<p>In the header template you saw we were using the <var>$title</var> variable to customize our page title. This is where we define the title, but instead of assigning the value to a variable, we assign it to the title element in the <var>$data</var> array. The last thing we need to do is loading the views in the order we want them to be displayed. We also pass the <var>$data</var> array to the header view to make its elements available in the header view file.<p> + +<h2>Routing</h2> + +<p>Actually, our controller is already functioning. Point your browser to <dfn>index.php/pages/view</dfn> to see your homepage. When you visit <dfn>index.php/pages/view/about</dfn> you will see the about page, again including your header and footer. Now we're going to get rid of the pages/view part in our URI. As you may have seen, CodeIgniter does its routing by the class, method and parameter, separated by slashes.</p> + +<p>Open the routing file located at <dfn>application/config/routes.php</dfn> and add the following two lines. Remove all other code that sets any element in the <var>$route</var> array.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="3"> +$route['(:any)'] = 'pages/view/$1'; +$route['default_controller'] = 'pages/view'; +</textarea> + +<p>CodeIgniter reads its routing rules from top to bottom and routes the request to the first matching rule. These routes are stored in the <var>$route</var> array where the keys represent the incoming request and the value the path to the method, as described above.</p> + +<p>The first rule in our <var>$routes</var> array matches every request - using the wildcard operator <dfn>(:any)</dfn> - and passes the value to the view method of the pages class we created earlier. The default controller route makes sure every request to the root goes to the view method as well, which has the first parameter set to 'home' by default.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="cheatsheets.html">CodeIgniter Cheatsheets</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="appflow.html">Application Flow Chart</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/tutorial/index.html b/user_guide/tutorial/index.html new file mode 100755 index 0000000..d1da602 --- /dev/null +++ b/user_guide/tutorial/index.html @@ -0,0 +1,101 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Features : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Tutorial</a> &nbsp;&#8250;&nbsp; +Introduction +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Tutorial &minus; Introduction</h1> + +<p>This tutorial is intended to introduce you to the CodeIgniter framework and the basic principles of MVC architecture. It will show you how a basic CodeIgniter application is constructed in step-by-step fashion.</p> + +<p>In this tutorial, you will be creating a <strong>basic news application</strong>. You will begin by writing the code that can load static pages. Next, you will create a news section that reads news items from a database. Finally, you'll add a form to create news items in the database.</p> + +<p>This tutorial will primarily focus on:</p> +<ul> +<li>Model-View-Controller basics</li> +<li>Routing basics</li> +<li>Form validation</li> +<li>Performing basic database queries using &quot;Active Record&quot;</li> +</ul> + +<p>The entire tutorial is split up over several pages, each explaining a small part of the functionality of the CodeIgniter framework. You'll go through the following pages:</p> +<ul> +<li>Introduction, this page, which gives you an overview of what to expect.</li> +<li><a href="static_pages.html">Static pages</a>, which will teach you the basics of controllers, views and routing.</li> +<li><a href="news_section.html">News section</a>, where you'll start using models and will be doing some basic database operations.</li> +<li><a href="create_news_items.html">Create news items</a>, which will introduce more advanced database operations and form validation.</li> +<li><a href="conclusion.html">Conclusion</a>, which will give you some pointers on further reading and other resources.</li> +</ul> + +<p>Enjoy your exploration of the CodeIgniter framework.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="../overview/goals.html">Goals</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="static_pages.html">Static pages</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/tutorial/news_section.html b/user_guide/tutorial/news_section.html new file mode 100755 index 0000000..f8e64fc --- /dev/null +++ b/user_guide/tutorial/news_section.html @@ -0,0 +1,230 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Features : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Tutorial</a> &nbsp;&#8250;&nbsp; +News section +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Tutorial &minus; News section</h1> + +<p>In the last section, we went over some basic concepts of the framework by writing a class that includes static pages. We cleaned up the URI by adding custom routing rules. Now it's time to introduce dynamic content and start using a database.</p> + +<h2>Setting up your model</h2> + +<p>Instead of writing database operations right in the controller, queries should be placed in a model, so they can easily be reused later. Models are the place where you retrieve, insert, and update information in your database or other data stores. They represent your data.</p> + +<p>Open up the <dfn>application/models</dfn> directory and create a new file called <dfn>news_model.php</dfn> and add the following code. Make sure you've configured your database properly as described <a href="../database/configuration.html">here</a>.</p> + +<pre> +&lt;?php +class News_model extends CI_Model { + + public function __construct() + { + $this->load->database(); + } +} +</pre> + +<p>This code looks similar to the controller code that was used earlier. It creates a new model by extending CI_Model and loads the database library. This will make the database class available through the <var>$this->db</var> object.</p> + +<p>Before querying the database, a database schema has to be created. Connect to your database and run the SQL command below. Also add some seed records.</p> + +<pre> +CREATE TABLE news ( + id int(11) NOT NULL AUTO_INCREMENT, + title varchar(128) NOT NULL, + slug varchar(128) NOT NULL, + text text NOT NULL, + PRIMARY KEY (id), + KEY slug (slug) +); +</pre> + +<p>Now that the database and a model have been set up, you'll need a method to get all of our posts from our database. To do this, the database abstraction layer that is included with CodeIgniter — <a href="../database/active_record.html">Active Record</a> — is used. This makes it possible to write your 'queries' once and make them work on <a href="../general/requirements.html">all supported database systems</a>. Add the following code to your model.</p> + +<pre> +public function get_news($slug = FALSE) +{ + if ($slug === FALSE) + { + $query = $this->db->get('news'); + return $query->result_array(); + } + + $query = $this->db->get_where('news', array('slug' => $slug)); + return $query->row_array(); +} +</pre> + +<p>With this code you can perform two different queries. You can get all news records, or get a news item by its <a href="#" title="a URL friendly version of a string">slug</a>. You might have noticed that the <var>$slug</var> variable wasn't sanitized before running the query; Active Record does this for you.</p> + +<h2>Display the news</h2> + +<p>Now that the queries are written, the model should be tied to the views that are going to display the news items to the user. This could be done in our pages controller created earlier, but for the sake of clarity, a new "news" controller is defined. Create the new controller at <dfn>application/controllers/news.php</dfn>.</p> + +<pre> +&lt;?php +class News extends CI_Controller { + + public function __construct() + { + parent::__construct(); + $this->load->model('news_model'); + } + + public function index() + { + $data['news'] = $this->news_model->get_news(); + } + + public function view($slug) + { + $data['news'] = $this->news_model->get_news($slug); + } +} +</pre> + +<p>Looking at the code, you may see some similarity with the files we created earlier. First, the "__construct" method: it calls the constructor of its parent class (<dfn>CI_Controller</dfn>) and loads the model, so it can be used in all other methods in this controller.</p> + +<p>Next, there are two methods to view all news items and one for a specific news item. You can see that the <var>$slug</var> variable is passed to the model's method in the second method. The model is using this slug to identify the news item to be returned.</p> + +<p>Now the data is retrieved by the controller through our model, but nothing is displayed yet. The next thing to do is passing this data to the views.</p> + +<pre> +public function index() +{ + $data['news'] = $this->news_model->get_news(); + $data['title'] = 'News archive'; + + $this->load->view('templates/header', $data); + $this->load->view('news/index', $data); + $this->load->view('templates/footer'); +} +</pre> + +<p>The code above gets all news records from the model and assigns it to a variable. The value for the title is also assigned to the <var>$data['title']</var> element and all data is passed to the views. You now need to create a view to render the news items. Create <dfn>application/views/news/index.php</dfn> and add the next piece of code.</p> + +<pre> +&lt;?php foreach ($news as $news_item): ?&gt; + + &lt;h2&gt;&lt;?php echo $news_item['title'] ?&gt;&lt;/h2&gt; + &lt;div id="main"&gt; + &lt;?php echo $news_item['text'] ?&gt; + &lt;/div&gt; + &lt;p&gt;&lt;a href="news/&lt;?php echo $news_item['slug'] ?&gt;"&gt;View article&lt;/a&gt;&lt;/p&gt; + +&lt;?php endforeach ?&gt; +</pre> + +<p>Here, each news item is looped and displayed to the user. You can see we wrote our template in PHP mixed with HTML. If you prefer to use a template language, you can use CodeIgniter's <a href="../libraries/parser.html">Template Parser</a> class or a third party parser.</p> + +<p>The news overview page is now done, but a page to display individual news items is still absent. The model created earlier is made in such way that it can easily be used for this functionality. You only need to add some code to the controller and create a new view. Go back to the news controller and add the following lines to the file.</p> + +<pre> +public function view($slug) +{ + $data['news_item'] = $this->news_model->get_news($slug); + + if (empty($data['news_item'])) + { + show_404(); + } + + $data['title'] = $data['news_item']['title']; + + $this->load->view('templates/header', $data); + $this->load->view('news/view', $data); + $this->load->view('templates/footer'); +} +</pre> + +<p>Instead of calling the <var>get_news()</var> method without a parameter, the <var>$slug</var> variable is passed, so it will return the specific news item. The only things left to do is create the corresponding view at <dfn>application/views/news/view.php</dfn>. Put the following code in this file.</p> + +<pre> +&lt;?php +echo '&lt;h2&gt;'.$news_item['title'].'&lt;/h2&gt;'; +echo $news_item['text']; +</pre> + +<h2>Routing</h2> +<p>Because of the wildcard routing rule created earlier, you need need an extra route to view the controller that you just made. Modify your routing file (<dfn>application/config/routes.php</dfn>) so it looks as follows. This makes sure the requests reaches the news controller instead of going directly to the pages controller. The first line routes URI's with a slug to the view method in the news controller.</p> + +<pre> +$route['news/(:any)'] = 'news/view/$1'; +$route['news'] = 'news'; +$route['(:any)'] = 'pages/view/$1'; +$route['default_controller'] = 'pages/view'; +</pre> + +<p>Point your browser to your document root, followed by <dfn>index.php/news</dfn> and watch your news page.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="static_pages.html">Static pages</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="create_news_items.html">Create news items</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/tutorial/static_pages.html b/user_guide/tutorial/static_pages.html new file mode 100755 index 0000000..4b138d7 --- /dev/null +++ b/user_guide/tutorial/static_pages.html @@ -0,0 +1,206 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>CodeIgniter Features : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.1.4</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp; +<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp; +<a href="index.html">Tutorial</a> &nbsp;&#8250;&nbsp; +Static pages +</td> +<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="ellislab.com/codeigniter/user-guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + + +<h1>Tutorial &minus; Static pages</h1> + +<p class="important"><strong>Note:</strong> This tutorial assumes you've downloaded CodeIgniter and <a href="../installation/index.html">installed the framework</a> in your development environment.</p> + +<p>The first thing you're going to do is set up a <strong>controller</strong> to handle static pages. +A controller is simply a class that helps delegate work. It is the glue of your +web application.</p> + +<p>For example, when a call is made to: <code>http://example.com/news/latest/10</code> We might imagine +that there is a controller named &quot;news&quot;. The method being called on news +would be &quot;latest&quot;. The news method's job could be to grab 10 +news items, and render them on the page. Very often in MVC, you'll see URL +patterns that match: <code>http://example.com/[controller-class]/[controller-method]/[arguments]</code> +As URL schemes become more complex, this may change. But for now, this is all we will need to know.</p> + +<p>Create a file at <dfn>application/controllers/pages.php</dfn> with the following code.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +&lt;?php + +class Pages extends CI_Controller { + + public function view($page = 'home') + { + + } +} +</textarea> + +<p>You have created a class named &quot;pages&quot;, with a view method that accepts one argument named <var>$page</var>. +The pages class is extending the CI_Controller class. +This means that the new pages class can access the methods and variables defined in the CI_Controller class +(<dfn>system/core/Controller.php</dfn>).</p> + +<p>The <strong>controller is what will become the center of every request</strong> to your web application. +In very technical CodeIgniter discussions, it may be referred to as the <em>super object</em>. +Like any php class, you refer to it within your controllers as <var>$this</var>. +Referring to <var>$this</var> is how you will load libraries, views, and generally +command the framework.</p> + +<p>Now you've created your first method, it's time to make some basic page templates. +We will be creating two &quot;views&quot; (page templates) that act as our page footer and header.</p> + +<p>Create the header at <dfn>application/views/templates/header.php</dfn> and add the following code.</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="8"> +<html> +<head> + <title><?php echo $title ?> - CodeIgniter 2 Tutorial</title> +</head> +<body> + <h1>CodeIgniter 2 Tutorial</h1> + +</textarea> + +<p>The header contains the basic HTML code that you'll want to display before loading the main view, together with a heading. +It will also output the <var>$title</var> variable, which we'll define later in the controller. +Now create a footer at <dfn>application/views/templates/footer.php</dfn> that includes the following code:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="4"> +<strong>&#38;copy; 2011</strong> +</body> +</html> +</textarea> + +<h2>Adding logic to the controller</h2> + +<p>Earlier you set up a controller with a view() method. The method accepts one parameter, which is the name of the page to be loaded. +The static page templates will be located in the <dfn>application/views/pages/</dfn> directory.</p> + +<p>In that directory, create two files named <dfn>home.php</dfn> and <dfn>about.php</dfn>. +Within those files, type some text &minus; anything you'd like &minus; and save them. +If you like to be particularly un-original, try &quot;Hello World!&quot;.</p> + +<p>In order to load those pages, you'll have to check whether the requested page actually exists:</p> + +<pre> +public function view($page = 'home') +{ + + if ( ! file_exists('application/views/pages/'.$page.'.php')) + { + // Whoops, we don't have a page for that! + show_404(); + } + + $data['title'] = ucfirst($page); // Capitalize the first letter + + $this->load->view('templates/header', $data); + $this->load->view('pages/'.$page, $data); + $this->load->view('templates/footer', $data); + +} +</pre> + +<p>Now, when the page does exist, it is loaded, including the header and footer, and displayed to the user. If the page doesn't exist, a "404 Page not found" error is shown.</p> + +<p>The first line in this method checks whether the page actually exists. PHP's native <var>file_exists()</var> function is used to check whether the file is where it's expected to be. <var>show_404()</var> is a built-in CodeIgniter function that renders the default error page.</p> + +<p>In the header template, the <var>$title</var> variable was used to customize the page title. The value of title is defined in this method, but instead of assigning the value to a variable, it is assigned to the title element in the <var>$data</var> array.</p> + +<p>The last thing that has to be done is loading the views in the order they should be displayed. +The second parameter in the <var>view()</var> method is used to pass values to the view. Each value in the <var>$data</var> array is assigned to a variable with the name of its key. So the value of <var>$data['title']</var> in the controller is equivalent to $title in the view.<p> + +<h2>Routing</h2> + +<p>The controller is now functioning! Point your browser to <dfn>[your-site-url]index.php/pages/view</dfn> to see your page. When you visit <dfn>index.php/pages/view/about</dfn> you'll see the about page, again including the header and footer.</p> + +<p>Using custom routing rules, you have the power to map any URI to any controller and method, and break free from the normal convention: +<code>http://example.com/[controller-class]/[controller-method]/[arguments]</code></p> + +<p>Let's do that. Open the routing file located at <dfn>application/config/routes.php</dfn> and add the following two lines. Remove all other code that sets any element in the <var>$route</var> array.</p> + +<pre> +$route['default_controller'] = 'pages/view'; +$route['(:any)'] = 'pages/view/$1'; +</pre> + +<p>CodeIgniter reads its routing rules from top to bottom and routes the request to the first matching rule. Each rule is a regular expression +(left-side) mapped to a controller and method name separated by slashes (right-side). +When a request comes in, CodeIgniter looks for the first match, and calls the appropriate controller and method, possibly with arguments.</p> + +<p>More information about routing can be found in the URI Routing <a href="../general/routing.html">documentation</a>.</p> + +<p>Here, the second rule in the <var>$routes</var> array matches <strong>any</strong> request using the wildcard string <dfn>(:any)</dfn>. +and passes the parameter to the view() method of the pages class.</p> + +<p>Now visit <dfn>index.php/about</dfn>. Did it get routed correctly to the <var>view()</var> method +in the pages controller? Awesome!</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic:&nbsp;&nbsp;<a href="index.html">Introduction</a> +&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; +Next Topic:&nbsp;&nbsp;<a href="news_section.html">News section</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html> \ No newline at end of file diff --git a/user_guide/userguide.css b/user_guide/userguide.css new file mode 100755 index 0000000..f93ff0d --- /dev/null +++ b/user_guide/userguide.css @@ -0,0 +1,415 @@ +body { + margin: 0; + padding: 0; + font-family: Lucida Grande, Verdana, Geneva, Sans-serif; + font-size: 14px; + color: #333; + background-color: #fff; +} + +a { + color: #0134c5; + background-color: transparent; + text-decoration: none; + font-weight: normal; + outline-style: none; +} +a:visited { + color: #0134c5; + background-color: transparent; + text-decoration: none; + outline-style: none; +} +a:hover { + color: #000; + text-decoration: none; + background-color: transparent; + outline-style: none; +} + +#breadcrumb { + float: left; + background-color: transparent; + margin: 10px 0 0 42px; + padding: 0; + font-size: 10px; + color: #666; +} +#breadcrumb_right { + float: right; + width: 175px; + background-color: transparent; + padding: 8px 8px 3px 0; + text-align: right; + font-size: 10px; + color: #666; +} +#nav { + background-color: #494949; + margin: 0; + padding: 0; +} +#nav2 { + background: #fff url(images/nav_bg_darker.jpg) repeat-x left top; + padding: 0 310px 0 0; + margin: 0; + text-align: right; +} +#nav_inner { + background-color: transparent; + padding: 8px 12px 0 20px; + margin: 0; + font-family: Lucida Grande, Verdana, Geneva, Sans-serif; + font-size: 11px; +} + +#nav_inner h3 { + font-size: 12px; + color: #fff; + margin: 0; + padding: 0; +} + +#nav_inner .td_sep { + background: transparent url(images/nav_separator_darker.jpg) repeat-y left top; + width: 25%; + padding: 0 0 0 20px; +} +#nav_inner .td { + width: 25%; +} +#nav_inner p { + color: #eee; + background-color: transparent; + padding:0; + margin: 0 0 10px 0; +} +#nav_inner ul { + list-style-image: url(images/arrow.gif); + padding: 0 0 0 18px; + margin: 8px 0 12px 0; +} +#nav_inner li { + padding: 0; + margin: 0 0 4px 0; +} + +#nav_inner a { + color: #eee; + background-color: transparent; + text-decoration: none; + font-weight: normal; + outline-style: none; +} + +#nav_inner a:visited { + color: #eee; + background-color: transparent; + text-decoration: none; + outline-style: none; +} + +#nav_inner a:hover { + color: #ccc; + text-decoration: none; + background-color: transparent; + outline-style: none; +} + +#masthead { + margin: 0 40px 0 35px; + padding: 0 0 0 6px; + border-bottom: 1px solid #999; +} + +#masthead h1 { +background-color: transparent; +color: #e13300; +font-size: 18px; +font-weight: normal; +margin: 0; +padding: 0 0 6px 0; +} + +#searchbox { + background-color: transparent; + padding: 6px 40px 0 0; + text-align: right; + font-size: 10px; + color: #666; +} + +#img_welcome { + border-bottom: 1px solid #D0D0D0; + margin: 0 40px 0 40px; + padding: 0; + text-align: center; +} + +#content { + margin: 20px 40px 0 40px; + padding: 0; +} + +#content p { + margin: 12px 20px 12px 0; +} + +#content h1 { +color: #e13300; +border-bottom: 1px solid #666; +background-color: transparent; +font-weight: normal; +font-size: 24px; +margin: 0 0 20px 0; +padding: 3px 0 7px 3px; +} + +#content h2 { + background-color: transparent; + border-bottom: 1px solid #999; + color: #000; + font-size: 18px; + font-weight: bold; + margin: 28px 0 16px 0; + padding: 5px 0 6px 0; +} + +#content h3 { + background-color: transparent; + color: #333; + font-size: 16px; + font-weight: bold; + margin: 16px 0 15px 0; + padding: 0 0 0 0; +} + +#content h4 { + background-color: transparent; + color: #444; + font-size: 14px; + font-weight: bold; + margin: 22px 0 0 0; + padding: 0 0 0 0; +} + +#content img { + margin: auto; + padding: 0; +} + +#content code { + font-family: Monaco, Verdana, Sans-serif; + font-size: 12px; + background-color: #f9f9f9; + border: 1px solid #D0D0D0; + color: #002166; + display: block; + margin: 14px 0 14px 0; + padding: 12px 10px 12px 10px; +} + +#content pre { + font-family: Monaco, Verdana, Sans-serif; + font-size: 12px; + background-color: #f9f9f9; + border: 1px solid #D0D0D0; + color: #002166; + display: block; + margin: 14px 0 14px 0; + padding: 12px 10px 12px 10px; +} + +#content .path { + background-color: #EBF3EC; + border: 1px solid #99BC99; + color: #005702; + text-align: center; + margin: 0 0 14px 0; + padding: 5px 10px 5px 8px; +} + +#content dfn { + font-family: Lucida Grande, Verdana, Geneva, Sans-serif; + color: #00620C; + font-weight: bold; + font-style: normal; +} +#content var { + font-family: Lucida Grande, Verdana, Geneva, Sans-serif; + color: #8F5B00; + font-weight: bold; + font-style: normal; +} +#content samp { + font-family: Lucida Grande, Verdana, Geneva, Sans-serif; + color: #480091; + font-weight: bold; + font-style: normal; +} +#content kbd { + font-family: Lucida Grande, Verdana, Geneva, Sans-serif; + color: #A70000; + font-weight: bold; + font-style: normal; +} + +#content ul { + list-style-image: url(images/arrow.gif); + margin: 10px 0 12px 0; +} + +li.reactor { + list-style-image: url(images/reactor-bullet.png); +} +#content li { + margin-bottom: 9px; +} + +#content li p { + margin-left: 0; + margin-right: 0; +} + +#content .tableborder { + border: 1px solid #999; +} +#content th { + font-weight: bold; + text-align: left; + font-size: 12px; + background-color: #666; + color: #fff; + padding: 4px; +} + +#content .td { + font-weight: normal; + font-size: 12px; + padding: 6px; + background-color: #f3f3f3; +} + +#content .tdpackage { + font-weight: normal; + font-size: 12px; +} + +#content .important { + background: #FBE6F2; + border: 1px solid #D893A1; + color: #333; + margin: 10px 0 5px 0; + padding: 10px; +} + +#content .important p { + margin: 6px 0 8px 0; + padding: 0; +} + +#content .important .leftpad { + margin: 6px 0 8px 0; + padding-left: 20px; +} + +#content .critical { + background: #FBE6F2; + border: 1px solid #E68F8F; + color: #333; + margin: 10px 0 5px 0; + padding: 10px; +} + +#content .critical p { + margin: 5px 0 6px 0; + padding: 0; +} + + +#footer { +background-color: transparent; +font-size: 10px; +padding: 16px 0 15px 0; +margin: 20px 0 0 0; +text-align: center; +} + +#footer p { + font-size: 10px; + color: #999; + text-align: center; +} +#footer address { + font-style: normal; +} + +.center { + text-align: center; +} + +img { + padding:0; + border: 0; + margin: 0; +} + +.nopad { + padding:0; + border: 0; + margin: 0; +} + + +form { + margin: 0; + padding: 0; +} + +.input { + font-family: Lucida Grande, Verdana, Geneva, Sans-serif; + font-size: 11px; + color: #333; + border: 1px solid #B3B4BD; + width: 100%; + font-size: 11px; + height: 1.5em; + padding: 0; + margin: 0; +} + +.textarea { + font-family: Lucida Grande, Verdana, Geneva, Sans-serif; + font-size: 14px; + color: #143270; + background-color: #f9f9f9; + border: 1px solid #B3B4BD; + width: 100%; + padding: 6px; + margin: 0; +} + +.select { + background-color: #fff; + font-size: 11px; + font-weight: normal; + color: #333; + padding: 0; + margin: 0 0 3px 0; +} + +.checkbox { + background-color: transparent; + padding: 0; + border: 0; +} + +.submit { + background-color: #000; + color: #fff; + font-weight: normal; + font-size: 10px; + border: 1px solid #fff; + margin: 0; + padding: 1px 5px 2px 5px; +} \ No newline at end of file